diff options
3537 files changed, 139975 insertions, 135915 deletions
diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..15dd92ecd --- /dev/null +++ b/.editorconfig @@ -0,0 +1,21 @@ +# http://editorconfig.org/ + +root = true + +[*] +end_of_line = lf +insert_final_newline = false +charset = utf-8 + +[*.{go,scss}] +indent_style = tab + +[*.{js,jsx,json,html}] +indent_style = space +indent_size = 4 + +[web/react/package.json] +indent_size = 2 + +[Makefile] +indent_style = tab diff --git a/.gitignore b/.gitignore index fc9076e69..dab6b8373 100644 --- a/.gitignore +++ b/.gitignore @@ -6,9 +6,13 @@ dist npm-debug.log web/static/js/bundle*.js +web/static/js/bundle*.js.map web/static/js/libs*.js -model/version.go -model/version.go.bak + +# Build Targets +.prepare +.prepare-go +.prepare-jsx # Compiled Object files, Static and Dynamic libs (Shared Objects) *.o @@ -39,7 +43,12 @@ _testmain.go *npm-debug.log* # Vim temporary files -*.swp +[._]*.s[a-w][a-z] +[._]s[a-w][a-z] +*.un~ +Session.vim +.netrwhist +*~ # Build files *bundle.js diff --git a/.travis.yml b/.travis.yml index 1af940d21..c88267206 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,42 +1,25 @@ -language: go -go: -- 1.4.2 -- 1.5.1 +language: generic +sudo: required +services: +- docker env: - TRAVIS_DB=mysql - TRAVIS_DB=postgres before_install: -- gem install compass -- sudo apt-get update -qq -- sudo apt-get remove mysql-common mysql-server-5.5 mysql-server-core-5.5 mysql-client-5.5 - mysql-client-core-5.5 -- sudo apt-get autoremove -- sudo apt-get install libaio1 -- wget -O mysql-5.6.17.deb http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.17-debian6.0-x86_64.deb -- sudo dpkg -i mysql-5.6.17.deb -- sudo cp /opt/mysql/server-5.6/support-files/mysql.server /etc/init.d/mysql.server -- sudo ln -s /opt/mysql/server-5.6/bin/* /usr/bin/ -- sudo sed -i'' 's/table_cache/table_open_cache/' /etc/mysql/my.cnf -- sudo sed -i'' 's/log_slow_queries/slow_query_log/' /etc/mysql/my.cnf -- sudo sed -i'' 's/basedir[^=]\+=.*$/basedir = \/opt\/mysql\/server-5.6/' /etc/mysql/my.cnf -- sudo /etc/init.d/mysql.server start -- sudo pip install mkdocs -install: -- export PATH=$PATH:$HOME/gopath/bin -- go get github.com/tools/godep -#- godep restore -before_script: -- mysql -e "CREATE DATABASE IF NOT EXISTS mattermost_test ;" -uroot -- mysql -e "CREATE USER 'mmuser'@'%' IDENTIFIED BY 'mostest' ;" -uroot -- mysql -e "GRANT ALL ON mattermost_test.* TO 'mmuser'@'%' ;" -uroot -- psql -c "create database mattermost_test ;" -U postgres -- psql -c "create user mmuser with password 'mostest' ;" -U postgres -- psql -c 'grant all privileges on database "mattermost_test" to mmuser ;' -U postgres -services: -- redis-server + - docker run --name mattermost-mysql -e MYSQL_ROOT_PASSWORD=mostest -e MYSQL_USER=mmuser -e MYSQL_PASSWORD=mostest -e MYSQL_DATABASE=mattermost_test -d mysql:5.7 + - docker run --name mattermost-postgres -e POSTGRES_USER=mmuser -e POSTGRES_PASSWORD=mostest -d postgres:9.4 + - sleep 10 + - docker exec mattermost-postgres psql -c 'create database mattermost_test ;' -U postgres + - docker exec mattermost-postgres psql -c 'grant all privileges on database "mattermost_test" to mmuser ;' -U postgres +script: make dist-travis addons: hosts: - 127.0.0.1 dockerhost +before_deploy: + - sudo rm -rf dist/mattermost + - sudo chown `whoami` dist/mattermost.tar.gz + - sudo chmod 777 dist/mattermost.tar.gz + - rvm 1.9.3 do gem install mime-types -v 2.6.2 deploy: # Github releases, builds only on tags - provider: releases @@ -47,10 +30,9 @@ deploy: on: repo: mattermost/platform tags: true - go: 1.4.2 condition: $TRAVIS_DB = mysql -# S3 deploy for master docker image. (latest compiled bits) +# S3 deploy for latest master - provider: s3 access_key_id: AKIAJCO3KJYEGWJIKDIQ secret_access_key: @@ -64,22 +46,4 @@ deploy: on: repo: mattermost/platform branch: master - go: 1.4.2 - condition: $TRAVIS_DB = mysql - -# S3 deploy for documentation - - provider: s3 - access_key_id: AKIAJCO3KJYEGWJIKDIQ - secret_access_key: - secure: p66X2tJBmKgtcVyPtGgkAwW29IiRojqGA39RjCJkIWNTJ0e/9JvBOiMS2c4a7I4aOads38rsthwdaigBWagDWNH7bGsEZN7B0TszZuFAuU+XGjU5A66MIOfFfzbUg8AnByysr+XG5/bknFIrP/XhM2fbRr6gbYrFUK7TNkpgjFs5u3BzUrz2iTAV8uOpSJqKSnaf0pTZk1EywOK/X8W8ViIjc7Di3FzQcqIW9K3D27N+3rVsv8SRT1hWASVlnG6aThqqebiM8FCGCzAYVgQb3h3Wu8JT5fIz7Qo7A6siVRwNBwWwzP8HkGoinEK32Wsj/fDXk27vjpFQO/+9sV0xfcTbIZA6MnuYWF4rHOT59KcshCWCD3V0FopX57p/dtOzM9+6lxIctAT++izxWoZit/5c5A4633iY1d+RMeTko1POix6MSlxPMRHZUFwSXROgFuWWRpyD6TlUTCST9/wTTd0WDPklAAiYcnuEPW3qCnw0r0xkrA4AwWUXqXdAIwDt5bA27KcjRyY4Fofv9NxH09BNuBTXNPrvnYPZMmaKrv+HOX3NFTreuV6+5LJdhYUxYSBvSWo1jeWIQ5Q9RUdTU0PqmKpMhJKbKey/S4gxCXHg2HR8DwLCcbIZcvneF9yPEAT71YA6zpLKoPVSwWwH97huKSzjpic/RUfFXQOcgCQ= - bucket: docs.mattermost.org - local_dir: documentation-html - acl: public_read - region: us-east-1 - skip_cleanup: true - detect_encoding: true - on: - repo: mattermost/platform - branch: master - go: 1.4.2 condition: $TRAVIS_DB = mysql diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e423557d..a9dad1798 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,113 @@ # Mattermost Changelog -## Release v1.2.0 +## UNDER DEVELOPMENT Release v1.3.0 -- **Final release anticipated:** 2015-11-16 +The "UNDER DEVELOPMENT" section of the Mattermost changelog appears in the product's `master` branch to note key changes committed to master and are on their way to the next stable release. When a stable release is pushed the "UNDER DEVELOPMENT" heading is removed from the final changelog of the release. + +- **Release candidate anticipated:** 2015-12-10 +- **Final release anticipated:** 2015-12-16 + +### New Features + +Authentication +- Documented unofficial GitHub SSO support using GitLab UI + +Archives +- Added permalink feature that lets users link to a post in the message archives +- Added ability to "Jump" to archives from a search result + +Account Settings +- Added "Preview pre-release features" setting, to allow user to preview early features ahead of their official release +- Added "Display font" setting, so users can select which font to use + +Messaging & Comments +- Added in-line previews for links from select websites and for URLs pointing to an image (enabled via Account Settings -> Advanced -> Preview pre-release features) +- Added emoji autocomplete + +Extras +- Added `/loadtest url` tool for manually [testing text processing](https://github.com/mattermost/platform/tree/master/doc/developer/tests) + +### Improvements + +Performance +- Updated getProfiles service to return less data +- Refactored several modals to use React-Boostrap +- Refactored the center channel + +Messaging & Comments +- Added "Help" link for messaging +- Removed the @all mention +- Added Markdown support for task lists +- Added ability to preview a Markdown message before sending (enabled via Account Settings -> Advanced -> Preview pre-release features) + +Onboarding +- Added various small improvements to the tutorial + +User Interface +- Visually combined sequential messages from the same user +- Added ability to rename "Town Square" +- Teammate name display option now applies to messages and comments +- Menus and search improved on mobile UI +- Switched to Emoji One style emojis + +#### Bug Fixes + +- Fixed bug where the member list only showed "20" members for channels with more than 20 members +- Fixed bug where the channel sidebar didn't order correctly on Postgres databases +- Fixed bug where search results did not highlight when searching with quotation marks, wildcard, or in: and from: modifiers +- Fixed bug with the cancel button not properly resetting the text in some account settings fields +- Fixed bug where editing a post to be empty caused a 404 error +- Fixed bug where logging out did not work properly on IE11 +- Fixed issue where refreshing the page with the right hand sidebar open caused "..." to show up in place of usernames +- Fixed issue where invite to channel modal did not update properly when switching between channels + +### Compatibility + +#### Config.json Changes from v1.2 to v1.3 + +Multiple settings were added to [`config.json`](./config/config.json). These options can be modified in the System Console, or manually updated in the existing config.json file. This is a list of changes and their new default values in a fresh install: +- Under `EmailSettings` in `config.json`: + - Removed: `"ApplePushServer": ""` which is replaced with `SendPushNotifications` and `PushNotificationServer` + - Removed: `"ApplePushCertPublic": ""` which is replaced with `SendPushNotifications` and `PushNotificationServer` + - Removed: `"ApplePushCertPrivate": ""` which is replaced with `SendPushNotifications` and `PushNotificationServer` + - Added: `"SendPushNotifications": false` to control whether mobile push notifications are sent to the server specified in `PushNotificationServer` + - Added: `"PushNotificationServer": ""` to specify the address of the proxy server that re-sends push notifications to their respective services like APNS (Apple Push Notification Services) + +#### Known Issues + +- When navigating to a page with new messages as well as message containing inline images added via markdown, the channel may move up and down while loading the inline images +- Microsoft Edge does not yet support drag and drop +- Media files of type .avi .mkv .wmv .mov .flv .mp4a do not play properly +- No scroll bar in center channel +- Pasting images into text box fails to upload on Firefox, Safari, and IE11 +- Slack import @mentions break +- Usernames containing a "." do not get mention notifications + +#### Contributors + +Many thanks to our external contributors. In no particular order: + +- [florianorben](https://github.com/florianorben) +- [npcode](https://github.com/npcode) +- [42wim](https://github.com/42wim) +- [cifvts](https://github.com/cifvts) +- [rompic](https://github.com/rompic) +- [jdhoek](https://github.com/jdhoek) +- [Tsynapse](https://github.com/Tsynapse) +- [alexgaribay](https://github.com/alexgaribay) +- [vladikoff](https://github.com/vladikoff) +- [jonathanwiesel](https://github.com/jonathanwiesel) +- [tamtamchik](https://github.com/tamtamchik) + +## Release v1.2.1 + +- **Released:** 2015-11-16 + +### Security Notice + +Mattermost v1.2.1 is a bug fix release addressing a security issue in v1.2.0 affecting a newly introduced outgoing webhooks feature. Specifically, in v1.2.0 there was a check missing from outgoing webhooks, so a team member creating outgoing webhooks could in theory find a way to listen to messages in private channels containing popular words like "a", "the", "at", etc. For added security, Mattermost v1.2.1 now installs with incoming and outgoing webhooks disabled by default. + +To limit the impact of this security issue, Mattermost v1.2.0 has been removed from the source repo. It is recommended that anyone who's installed v1.2.0 upgrade to v1.2.1 via [the procedure described in the Mattermost Upgrade Guide](https://github.com/mattermost/platform/blob/master/doc/install/Upgrade-Guide.md). ### Release Highlights @@ -10,7 +115,7 @@ - Mattermost users can now interact with external applications using [outgoing webhooks](https://github.com/mattermost/platform/blob/master/doc/integrations/webhooks/Outgoing-Webhooks.md) - An [application template](https://github.com/mattermost/mattermost-integration-giphy) demonstrating user queries sent to the Giphy search engine via Mattermost webhooks now available -- A community application, [Matterbrige](https://github.com/42wim/matterbridge?files=1), shows how to use webhooks to connect Mattermost with IRC +- A community application, [Matterbridge](https://github.com/42wim/matterbridge?files=1), shows how to use webhooks to connect Mattermost with IRC #### Search Scope Modifiers @@ -19,7 +124,7 @@ #### Syntax Highlighting -- Syntax highlight for code blocks now available for `Diff, Apache, Makefile, HTTP, JSON, Markdown, Java, CSS, nginx, ObjectiveC, Python, XML, Perl, Bash, PHP, Coffee, C, SQL, Go, Ruby, Java, and ini` +- Syntax highlight for code blocks now available for `Diff, Apache, Makefile, HTTP, JSON, Markdown, JavaScript, CSS, nginx, ObjectiveC, Python, XML, Perl, Bash, PHP, Coffee, C, SQL, Go, Ruby, Java, and ini` #### Usability Improvements @@ -79,13 +184,14 @@ System Console - New statistics page - Configurable option to create an account directly from team page -#### Bug Fixes +#### Bug Fixes - Various fixes to theme colors - Fixed issue with the centre channel scroll position jumping when right hand side was opened and closed - Added support for simultaneous login to different teams in different browser tabs - Incoming webhooks no longer disrupted when channel is deleted - You can now paste a Mattermost incoming webhook URL into the same field designed for a Slack URL and integrations will work + ### Compatibility - IE 11 new minimum version for IE, since IE 10 share fell below 5% on desktop @@ -98,7 +204,8 @@ Multiple settings were added to [`config.json`](./config/config.json). These opt - Added: `"RestrictTeamNames": true` to control whether team names can contain reserved words like www, admin, support, test, etc. - Added: `"EnableTeamListing": false` to control whether teams can be listed on the root page of the site - Under `ServiceSettings` in `config.json` - - Added: `EnableOutgoingWebhooks": false` to control whether outgoing webhooks are enabled + - Added: `"EnableOutgoingWebhooks": false` to control whether outgoing webhooks are enabled + - Changed: `"EnableIncomingWebhooks": true` to `"EnableIncomingWebhooks": false` to turn incoming webhooks off by default, to increase security of default install. Documentation updated to enable webhooks before use. #### Database Changes from v1.1 to v1.2 @@ -153,6 +260,10 @@ Many thanks to our external contributors. In no particular order: - [yuvipanda](https://github.com/yuvipanda) - [toyorg](https://github.com/toyorg) +## Release v1.2.0 (Redacted Release) + +- **Final release:** 2015-11-16 (**Note:** This release was removed from public availability and replaced by v1.2.1 owing to a security issue with the new outgoing webhooks feature. See v1.2.1 Release Notes for details). + ## Release v1.1.1 (Bug Fix Release) Released 2015-10-20 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bd571efed..41a8f9375 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,6 +11,7 @@ Thank you for your interest in contributing to Mattermost. This guide provides a 2. These projects are intended to be a straight forward first pull requests from new contributors - If you don't find something appropriate for your interests, please see the full list of tickets [Accepting Pull Requests](https://mattermost.atlassian.net/issues/?filter=10101) - Also, feel free to fix bugs you find, or items in GitHub issues that the core team has approved, but not yet added to Jira + - For feature ideas, please discuss on the [feature ideas forum](http://www.mattermost.org/feature-requests/) before beginning work 3. If you have any questions at all about a ticket, there are several options to ask: 1. Start a topic in the [Mattermost forum](http://forum.mattermost.org/) @@ -30,12 +31,16 @@ git checkout -b <branch name> 1. Please review the [Mattermost Style Guide](doc/developer/Style-Guide.md) prior to making changes - To keep code clean and well structured, Mattermost uses ESLint to check that pull requests adhere to style guidelines for React. Code will need to follow Mattermost's React style guidelines in order to pass the automated build tests when a pull request is submitted + To keep code clean and well structured, Mattermost uses ESLint to check that pull requests adhere to style guidelines for React. In addition all code is run through the official go formatter tool gofmt. Code will need to follow Mattermost's React style guidelines and the golang official style guide in order to pass the automated build tests when a pull request is submitted. 2. Please make sure to thoroughly test your change before submitting a pull request + For any changes to text processing, please run the text processing tests found in the [/tests](https://github.com/mattermost/platform/tree/master/doc/developer/tests) folder in GitHub. + Please review the ["Fast, Obvious, Forgiving" experience design principles](http://www.mattermost.org/design-principles/) for Mattermost and check that your feature meets the criteria. Also, for any changes to user interface or help text, please read the changes out loud, as a quick and easy way to catch any inconsitencies +3. For new server-side funcitonality, please include test cases that verify the code performs as you have intended + ## Submitting a Pull Request @@ -44,9 +49,14 @@ git checkout -b <branch name> 2. When you submit your pull request please make it against `master` and include the Ticket ID at the beginning of your pull request comment, followed by a colon - For example, for a ticket ID `PLT-394` start your comment with: `PLT-394:`. See [previously closed pull requests](https://github.com/mattermost/platform/pulls?q=is%3Apr+is%3Aclosed) for examples + - All pull requests must have a ticket ID so the issue can be tracked and tested properly. If there is no existing ticket in Jira, please [file a bug in GitHub](http://www.mattermost.org/filing-issues/) or a [feature idea you're proposing to implement](http://www.mattermost.org/feature-requests/) so a Jira ticket can be created + +3. Please include a comment on the pull request describing the changes + + For new features visible in the UI, please make sure there are enough details explaining how the feature is expected to work. This will be used when testing and writing help documentation. -3. Once submitted, your pull request will be checked via an automated build process and will be reviewed by at least two members of the Mattermost core team, who may either accept the PR or follow-up with feedback. It would then get merged into `master` for the next release +4. Once submitted, your pull request will be checked via an automated build process and will be reviewed by at least two members of the Mattermost core team, who may either accept the PR or follow-up with feedback. It would then get merged into `master` for the next release 1. If the build fails, check the error log to narrow down the reason 2. Sometimes one of the multiple build tests will randomly fail due to issues in Travis CI so if you see just one build failure and no clear error message it may be a random issue. Add a comment so the reviewer for your change can re-run the build for you, or close the PR and re-submit and that typically clears the issue -4. If you've included your mailing address in Step 1, you'll be receiving a [Limited Edition Mattermost Mug](http://forum.mattermost.org/t/limited-edition-mattermost-mugs/143) as a thank you gift after your first pull request has been accepted +5. If you've included your mailing address in Step 1, you'll be receiving a [Limited Edition Mattermost Mug](http://forum.mattermost.org/t/limited-edition-mattermost-mugs/143) as a thank you gift after your first pull request has been accepted diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index 7c80558c4..0ec79e0a6 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -1,18 +1,8 @@ { "ImportPath": "github.com/mattermost/platform", - "GoVersion": "go1.4.2", + "GoVersion": "go1.5.1", "Deps": [ { - "ImportPath": "code.google.com/p/go-uuid/uuid", - "Comment": "null-15", - "Rev": "35bc42037350f0078e3c974c6ea690f1926603ab" - }, - { - "ImportPath": "code.google.com/p/go.crypto/bcrypt", - "Comment": "null-236", - "Rev": "69e2a90ed92d03812364aeb947b7068dc42e561e" - }, - { "ImportPath": "code.google.com/p/log4go", "Comment": "go.weekly.2012-02-22-1", "Rev": "c3294304d93f48a37d3bed1d382882a9c2989f99" @@ -23,43 +13,47 @@ }, { "ImportPath": "github.com/braintree/manners", - "Comment": "0.3.1-2-g5280e25", - "Rev": "5280e250f2795914acbeb2bf3b55dd5a2d1fba52" + "Comment": "0.4.0-9-g3fdfada", + "Rev": "3fdfadabc96863ceec055bd73ab1e80324e72706" + }, + { + "ImportPath": "github.com/davecgh/go-spew/spew", + "Rev": "5215b55f46b2b919f50a1df0eaa5886afe4e3b3d" }, { "ImportPath": "github.com/disintegration/imaging", - "Rev": "493653de80c32beeae336f3a3a3a125e7603459b" + "Rev": "546cb3c5137b3f1232e123a26aa033aade6b3066" }, { "ImportPath": "github.com/garyburd/redigo/internal", - "Rev": "a47585eaae68b1d14b02940d2af1b9194f3caa9c" + "Rev": "6ece6e0a09f28cc399b21550cbf37ab39ba63cce" }, { "ImportPath": "github.com/garyburd/redigo/redis", - "Rev": "a47585eaae68b1d14b02940d2af1b9194f3caa9c" + "Rev": "6ece6e0a09f28cc399b21550cbf37ab39ba63cce" }, { "ImportPath": "github.com/go-gorp/gorp", - "Comment": "v1.7-65-g3c15f67", - "Rev": "3c15f6739b94dc357e2797a7297a2853ec79f4fa" + "Comment": "v1.7-146-gc391a3d", + "Rev": "c391a3da75cf2003f4bf4763d0b5755c4500aef1" }, { "ImportPath": "github.com/go-sql-driver/mysql", - "Comment": "v1.2-97-g0cc29e9", - "Rev": "0cc29e9fe8e25c2c58cf47bcab566e029bbaa88b" + "Comment": "v1.2-125-gd512f20", + "Rev": "d512f204a577a4ab037a1816604c48c9c13210be" }, { "ImportPath": "github.com/goamz/goamz/aws", - "Rev": "ad637a587dd8314770a1084481dd7b5d4fa1232f" + "Rev": "be371d06631a6ea076cccefc6654fa5c29be074d" }, { "ImportPath": "github.com/goamz/goamz/s3", - "Rev": "ad637a587dd8314770a1084481dd7b5d4fa1232f" + "Rev": "be371d06631a6ea076cccefc6654fa5c29be074d" }, { "ImportPath": "github.com/golang/freetype", - "Comment": "release-116-g41fa49a", - "Rev": "41fa49aa5b23cc7c4082c9aaaf2da41e195602d9" + "Comment": "release-120-gf29eb11", + "Rev": "f29eb116deb328d02ee5c573f02d442ca67d5532" }, { "ImportPath": "github.com/golang/groupcache/lru", @@ -67,25 +61,33 @@ }, { "ImportPath": "github.com/gorilla/context", - "Rev": "215affda49addc4c8ef7e2534915df2c8c35c6cd" + "Rev": "1c83b3eabd45b6d76072b66b746c20815fb2872d" }, { "ImportPath": "github.com/gorilla/mux", - "Rev": "94903de8c98a68d8b4483c529b26a5d146e386a2" + "Rev": "9c068cf16d982f8bd444b8c352acbeec34c4fe5b" }, { "ImportPath": "github.com/gorilla/websocket", - "Rev": "6fd0f867fef40c540fa05c59f86396de10a632a6" + "Rev": "361d4c0ffd78338ebe0a9e6320cdbe115d7dc026" }, { "ImportPath": "github.com/lib/pq", - "Comment": "go1.0-cutoff-56-gdc50b6a", - "Rev": "dc50b6ad2d3ee836442cf3389009c7cd1e64bb43" + "Comment": "go1.0-cutoff-61-g83c4f41", + "Rev": "83c4f410d0aed80a0f44bac6a576a7f2435791f3" }, { "ImportPath": "github.com/mssola/user_agent", - "Comment": "v0.4.1-4-ga163d6a", - "Rev": "a163d6a569f1cd264d2f8b2bf3c5d04ace5995eb" + "Comment": "v0.4.1-5-g783ec61", + "Rev": "783ec61292aee3fc2f442ce740aa491e4849b794" + }, + { + "ImportPath": "github.com/pborman/uuid", + "Rev": "cccd189d45f7ac3368a0d127efb7f4d08ae0b655" + }, + { + "ImportPath": "github.com/pmezard/go-difflib/difflib", + "Rev": "d8ed2627bdf02c080bf22230dbb337003b7aba2d" }, { "ImportPath": "github.com/rwcarlsen/goexif/exif", @@ -97,27 +99,29 @@ }, { "ImportPath": "github.com/stretchr/objx", - "Rev": "cbeaeb16a013161a98496fad62933b1d21786672" + "Rev": "1a9d0bb9f541897e62256577b352fdbc1fb4fd94" }, { "ImportPath": "github.com/stretchr/testify/assert", - "Rev": "dab07ac62d4905d3e48d17dc549c684ac3b7c15a" + "Comment": "v1.0-83-gd797d25", + "Rev": "d797d25e0fa6d53be3b1a216d24e868d6a1912ef" }, { "ImportPath": "github.com/stretchr/testify/mock", - "Rev": "dab07ac62d4905d3e48d17dc549c684ac3b7c15a" - }, - { - "ImportPath": "github.com/throttled/throttled", - "Rev": "fe4c91d601f05354c8a7feba917ab9d3b634f68d" + "Comment": "v1.0-83-gd797d25", + "Rev": "d797d25e0fa6d53be3b1a216d24e868d6a1912ef" }, { "ImportPath": "github.com/vaughan0/go-ini", "Rev": "a98ad7ee00ec53921f08832bc06ecf7fd600e6a1" }, { + "ImportPath": "golang.org/x/crypto/bcrypt", + "Rev": "beef0f4390813b96e8e68fd78570396d0f4751fc" + }, + { "ImportPath": "golang.org/x/crypto/blowfish", - "Rev": "74f810a0152f4c50a16195f6b9ff44afc35594e8" + "Rev": "beef0f4390813b96e8e68fd78570396d0f4751fc" }, { "ImportPath": "golang.org/x/image/bmp", @@ -137,8 +141,13 @@ }, { "ImportPath": "gopkg.in/fsnotify.v1", - "Comment": "v1.2.0", - "Rev": "96c060f6a6b7e0d6f75fddd10efeaca3e5d1bcb0" + "Comment": "v1.2.5", + "Rev": "2cdd39bd6129c6a49c74fb07fb9d77ba1271c572" + }, + { + "ImportPath": "gopkg.in/throttled/throttled.v1", + "Comment": "v1.0.0", + "Rev": "74e328a1af88a9b54f9eca1397d74ad98572a6df" } ] } diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/00changelog.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/00changelog.i Binary files differdeleted file mode 100644 index d3a831105..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/00changelog.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/branch b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/branch deleted file mode 100644 index 4ad96d515..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/branch +++ /dev/null @@ -1 +0,0 @@ -default diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/cache/branch2-served b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/cache/branch2-served deleted file mode 100644 index 6174932c9..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/cache/branch2-served +++ /dev/null @@ -1,2 +0,0 @@ -46c3056cafbb4da11c4087a892c7d2bfa4224a8f 128 -46c3056cafbb4da11c4087a892c7d2bfa4224a8f o default diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/cache/rbc-names-v1 b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/cache/rbc-names-v1 deleted file mode 100644 index 331d858ce..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/cache/rbc-names-v1 +++ /dev/null @@ -1 +0,0 @@ -default
\ No newline at end of file diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/cache/rbc-revs-v1 b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/cache/rbc-revs-v1 Binary files differdeleted file mode 100644 index 64a5a8919..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/cache/rbc-revs-v1 +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/dirstate b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/dirstate Binary files differdeleted file mode 100644 index 287a04c00..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/dirstate +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/hgrc b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/hgrc deleted file mode 100644 index 80ecd0d07..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/hgrc +++ /dev/null @@ -1,14 +0,0 @@ -# example repository config (see "hg help config" for more info) -[paths] -default = https://code.google.com/p/freetype-go/ - -# path aliases to other clones of this repo in URLs or filesystem paths -# (see "hg help config.paths" for more info) -# -# default-push = ssh://jdoe@example.net/hg/jdoes-fork -# my-fork = ssh://jdoe@example.net/hg/jdoes-fork -# my-clone = /home/jdoe/jdoes-clone - -[ui] -# name and email (local to this repository, optional), e.g. -# username = Jane Doe <jdoe@example.com> diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/requires b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/requires deleted file mode 100644 index f634f664b..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/requires +++ /dev/null @@ -1,4 +0,0 @@ -dotencode -fncache -revlogv1 -store diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/00changelog.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/00changelog.i Binary files differdeleted file mode 100644 index 34de69c66..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/00changelog.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/00manifest.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/00manifest.i Binary files differdeleted file mode 100644 index 15c762eb9..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/00manifest.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/_a_u_t_h_o_r_s.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/_a_u_t_h_o_r_s.i Binary files differdeleted file mode 100644 index d858d830d..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/_a_u_t_h_o_r_s.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/_c_o_n_t_r_i_b_u_t_o_r_s.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/_c_o_n_t_r_i_b_u_t_o_r_s.i Binary files differdeleted file mode 100644 index 1f846fcef..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/_c_o_n_t_r_i_b_u_t_o_r_s.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/_l_i_c_e_n_s_e.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/_l_i_c_e_n_s_e.i Binary files differdeleted file mode 100644 index 05755354f..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/_l_i_c_e_n_s_e.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/_makefile.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/_makefile.i Binary files differdeleted file mode 100644 index e8e036fbd..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/_makefile.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/_r_e_a_d_m_e.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/_r_e_a_d_m_e.i Binary files differdeleted file mode 100644 index 4a603beb9..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/_r_e_a_d_m_e.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/cmd/print-glyph-points/main.c.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/cmd/print-glyph-points/main.c.i Binary files differdeleted file mode 100644 index 13c63587e..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/cmd/print-glyph-points/main.c.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/example/freetype/main.go.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/example/freetype/main.go.i Binary files differdeleted file mode 100644 index d2584c152..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/example/freetype/main.go.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/example/gamma/main.go.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/example/gamma/main.go.i Binary files differdeleted file mode 100644 index eac5254a2..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/example/gamma/main.go.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/example/raster/main.go.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/example/raster/main.go.i Binary files differdeleted file mode 100644 index 4d01e34c8..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/example/raster/main.go.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/example/round/main.go.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/example/round/main.go.i Binary files differdeleted file mode 100644 index 299fdaa53..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/example/round/main.go.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/example/truetype/main.go.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/example/truetype/main.go.i Binary files differdeleted file mode 100644 index 46e52a81a..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/example/truetype/main.go.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/_makefile.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/_makefile.i Binary files differdeleted file mode 100644 index 70234dfce..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/_makefile.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/freetype.go.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/freetype.go.i Binary files differdeleted file mode 100644 index 6fb8e7dc0..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/freetype.go.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/freetype__test.go.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/freetype__test.go.i Binary files differdeleted file mode 100644 index dd8ab50a1..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/freetype__test.go.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/raster/_makefile.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/raster/_makefile.i Binary files differdeleted file mode 100644 index 24004c15c..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/raster/_makefile.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/raster/geom.go.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/raster/geom.go.i Binary files differdeleted file mode 100644 index 4ca1d55a4..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/raster/geom.go.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/raster/paint.go.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/raster/paint.go.i Binary files differdeleted file mode 100644 index cf08d5b30..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/raster/paint.go.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/raster/raster.go.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/raster/raster.go.i Binary files differdeleted file mode 100644 index 8f53ce4a2..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/raster/raster.go.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/raster/stroke.go.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/raster/stroke.go.i Binary files differdeleted file mode 100644 index 68f043976..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/raster/stroke.go.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/truetype/_makefile.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/truetype/_makefile.i Binary files differdeleted file mode 100644 index 69e150e47..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/truetype/_makefile.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/truetype/glyph.go.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/truetype/glyph.go.i Binary files differdeleted file mode 100644 index ab82aa808..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/truetype/glyph.go.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/truetype/hint.go.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/truetype/hint.go.i Binary files differdeleted file mode 100644 index 5a3604467..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/truetype/hint.go.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/truetype/hint__test.go.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/truetype/hint__test.go.i Binary files differdeleted file mode 100644 index 641156043..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/truetype/hint__test.go.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/truetype/opcodes.go.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/truetype/opcodes.go.i Binary files differdeleted file mode 100644 index 545ed292d..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/truetype/opcodes.go.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/truetype/truetype.go.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/truetype/truetype.go.i Binary files differdeleted file mode 100644 index bc5767490..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/truetype/truetype.go.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/truetype/truetype__test.go.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/truetype/truetype__test.go.i Binary files differdeleted file mode 100644 index 081d0e081..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/freetype/truetype/truetype__test.go.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/lib/codereview/codereview.cfg.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/lib/codereview/codereview.cfg.i Binary files differdeleted file mode 100644 index b54d8298c..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/lib/codereview/codereview.cfg.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/licenses/ftl.txt.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/licenses/ftl.txt.i Binary files differdeleted file mode 100644 index a7e008de0..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/licenses/ftl.txt.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/licenses/gpl.txt.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/licenses/gpl.txt.i Binary files differdeleted file mode 100644 index b93cd7a36..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/licenses/gpl.txt.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/_c_o_p_y_i_n_g.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/_c_o_p_y_i_n_g.i Binary files differdeleted file mode 100644 index d9b475a61..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/_c_o_p_y_i_n_g.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/_r_e_a_d_m_e.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/_r_e_a_d_m_e.i Binary files differdeleted file mode 100644 index 21fc2a4c0..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/_r_e_a_d_m_e.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luximr.ttf.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luximr.ttf.i Binary files differdeleted file mode 100644 index 5bc4dcd90..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luximr.ttf.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luximr.ttx.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luximr.ttx.i Binary files differdeleted file mode 100644 index 65810f58c..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luximr.ttx.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luxirr.ttf.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luxirr.ttf.i Binary files differdeleted file mode 100644 index df299bfa9..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luxirr.ttf.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luxirr.ttx.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luxirr.ttx.i Binary files differdeleted file mode 100644 index 2608a88fd..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luxirr.ttx.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luxisr-12pt-sans-hinting.txt.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luxisr-12pt-sans-hinting.txt.i Binary files differdeleted file mode 100644 index d5f1c5b5e..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luxisr-12pt-sans-hinting.txt.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luxisr-12pt-with-hinting.txt.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luxisr-12pt-with-hinting.txt.i Binary files differdeleted file mode 100644 index 36a010557..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luxisr-12pt-with-hinting.txt.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luxisr.ttf.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luxisr.ttf.i Binary files differdeleted file mode 100644 index 9ac471847..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luxisr.ttf.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luxisr.ttx.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luxisr.ttx.i Binary files differdeleted file mode 100644 index a8b16ae34..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/luxi-fonts/luxisr.ttx.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/_c_o_p_y_i_n_g.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/_c_o_p_y_i_n_g.i Binary files differdeleted file mode 100644 index 00af38223..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/_c_o_p_y_i_n_g.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/_r_e_a_d_m_e.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/_r_e_a_d_m_e.i Binary files differdeleted file mode 100644 index 5130dccb7..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/_r_e_a_d_m_e.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luximr.ttf.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luximr.ttf.i Binary files differdeleted file mode 100644 index 00d6fdfd0..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luximr.ttf.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luximr.ttx.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luximr.ttx.i Binary files differdeleted file mode 100644 index 72aa2de8e..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luximr.ttx.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luxirr.ttf.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luxirr.ttf.i Binary files differdeleted file mode 100644 index f69ff25c8..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luxirr.ttf.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luxirr.ttx.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luxirr.ttx.i Binary files differdeleted file mode 100644 index 69c7d2055..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luxirr.ttx.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luxisr-12pt-sans-hinting.txt.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luxisr-12pt-sans-hinting.txt.i Binary files differdeleted file mode 100644 index 8233fd6bf..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luxisr-12pt-sans-hinting.txt.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luxisr-12pt-with-hinting.txt.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luxisr-12pt-with-hinting.txt.i Binary files differdeleted file mode 100644 index 882e45367..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luxisr-12pt-with-hinting.txt.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luxisr.ttf.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luxisr.ttf.i Binary files differdeleted file mode 100644 index cc452cabb..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luxisr.ttf.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luxisr.ttx.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luxisr.ttx.i Binary files differdeleted file mode 100644 index 0f78316c3..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/luxisr.ttx.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/make-other-hinting-txts.sh.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/make-other-hinting-txts.sh.i Binary files differdeleted file mode 100644 index 617ff0123..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/testdata/make-other-hinting-txts.sh.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/~2ehgignore.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/~2ehgignore.i Binary files differdeleted file mode 100644 index cf67e9d7a..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/~2ehgignore.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/~2ehgtags.i b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/~2ehgtags.i Binary files differdeleted file mode 100644 index 51d867337..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/data/~2ehgtags.i +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/fncache b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/fncache deleted file mode 100644 index d139235fa..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/fncache +++ /dev/null @@ -1,52 +0,0 @@ -data/testdata/luxisr.ttf.i -data/testdata/luximr.ttx.i -data/freetype/raster/geom.go.i -data/AUTHORS.i -data/CONTRIBUTORS.i -data/freetype/truetype/Makefile.i -data/testdata/luxisr-12pt-with-hinting.txt.i -data/luxi-fonts/luxisr-12pt-sans-hinting.txt.i -data/example/freetype/main.go.i -data/luxi-fonts/luxirr.ttf.i -data/testdata/COPYING.i -data/example/gamma/main.go.i -data/freetype/Makefile.i -data/testdata/luxirr.ttx.i -data/freetype/freetype_test.go.i -data/example/truetype/main.go.i -data/Makefile.i -data/freetype/freetype.go.i -data/luxi-fonts/luximr.ttx.i -data/example/round/main.go.i -data/freetype/raster/paint.go.i -data/luxi-fonts/luximr.ttf.i -data/luxi-fonts/luxisr.ttx.i -data/example/raster/main.go.i -data/lib/codereview/codereview.cfg.i -data/testdata/luximr.ttf.i -data/luxi-fonts/README.i -data/testdata/luxisr.ttx.i -data/luxi-fonts/luxisr-12pt-with-hinting.txt.i -data/freetype/truetype/hint_test.go.i -data/testdata/make-other-hinting-txts.sh.i -data/luxi-fonts/COPYING.i -data/licenses/ftl.txt.i -data/freetype/truetype/opcodes.go.i -data/.hgignore.i -data/freetype/truetype/truetype.go.i -data/testdata/luxirr.ttf.i -data/freetype/truetype/truetype_test.go.i -data/LICENSE.i -data/freetype/raster/stroke.go.i -data/luxi-fonts/luxirr.ttx.i -data/licenses/gpl.txt.i -data/freetype/raster/raster.go.i -data/freetype/truetype/hint.go.i -data/testdata/luxisr-12pt-sans-hinting.txt.i -data/.hgtags.i -data/README.i -data/freetype/raster/Makefile.i -data/testdata/README.i -data/luxi-fonts/luxisr.ttf.i -data/cmd/print-glyph-points/main.c.i -data/freetype/truetype/glyph.go.i diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/phaseroots b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/phaseroots deleted file mode 100644 index e69de29bb..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/phaseroots +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/undo b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/undo Binary files differdeleted file mode 100644 index 02a42df5e..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/undo +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/undo.backupfiles b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/undo.backupfiles Binary files differdeleted file mode 100644 index ce173ce78..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/undo.backupfiles +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/undo.phaseroots b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/undo.phaseroots deleted file mode 100644 index e69de29bb..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/store/undo.phaseroots +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/undo.bookmarks b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/undo.bookmarks deleted file mode 100644 index e69de29bb..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/undo.bookmarks +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/undo.branch b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/undo.branch deleted file mode 100644 index 331d858ce..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/undo.branch +++ /dev/null @@ -1 +0,0 @@ -default
\ No newline at end of file diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/undo.desc b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/undo.desc deleted file mode 100644 index be91031a1..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/undo.desc +++ /dev/null @@ -1,3 +0,0 @@ -0 -pull -https://code.google.com/p/freetype-go/ diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/undo.dirstate b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/undo.dirstate deleted file mode 100644 index e69de29bb..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hg/undo.dirstate +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hgignore b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hgignore deleted file mode 100644 index 111fafbcd..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hgignore +++ /dev/null @@ -1,35 +0,0 @@ -syntax:glob -.DS_Store -.git -.gitignore -*.[568ao] -*.a[568o] -*.so -*.pyc -._* -.nfs.* -[568a].out -*~ -*.orig -*.rej -*.exe -.*.swp -core -*.cgo*.go -*.cgo*.c -_cgo_* -_obj -_test -_testmain.go -build.out -test.out -goinstall.log -last-change -VERSION.cache -out.png - -syntax:regexp -^bin/ -^pkg/ -^src/cmd/(.*)/6?\1$ -^.*/core.[0-9]*$ diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hgtags b/Godeps/_workspace/src/code.google.com/p/freetype-go/.hgtags deleted file mode 100644 index 243c80deb..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/.hgtags +++ /dev/null @@ -1 +0,0 @@ -96d0c07904d187405d9f34a3654ce06b0238f31d release diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/AUTHORS b/Godeps/_workspace/src/code.google.com/p/freetype-go/AUTHORS deleted file mode 100644 index 5d8b8a6b7..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/AUTHORS +++ /dev/null @@ -1,17 +0,0 @@ -# This is the official list of Freetype-Go authors for copyright purposes. -# This file is distinct from the CONTRIBUTORS files. -# See the latter for an explanation. -# -# Freetype-Go is derived from Freetype, which is written in C. The latter -# is copyright 1996-2010 David Turner, Robert Wilhelm, and Werner Lemberg. - -# Names should be added to this file as -# Name or Organization <email address> -# The email address is not required for organizations. - -# Please keep the list sorted. - -Google Inc. -Jeff R. Allen <jra@nella.org> -Rémy Oudompheng <oudomphe@phare.normalesup.org> -Roger Peppe <rogpeppe@gmail.com> diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/CONTRIBUTORS b/Godeps/_workspace/src/code.google.com/p/freetype-go/CONTRIBUTORS deleted file mode 100644 index 32cb6753b..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/CONTRIBUTORS +++ /dev/null @@ -1,35 +0,0 @@ -# This is the official list of people who can contribute -# (and typically have contributed) code to the Freetype-Go repository. -# The AUTHORS file lists the copyright holders; this file -# lists people. For example, Google employees are listed here -# but not in AUTHORS, because Google holds the copyright. -# -# The submission process automatically checks to make sure -# that people submitting code are listed in this file (by email address). -# -# Names should be added to this file only after verifying that -# the individual or the individual's organization has agreed to -# the appropriate Contributor License Agreement, found here: -# -# http://code.google.com/legal/individual-cla-v1.0.html -# http://code.google.com/legal/corporate-cla-v1.0.html -# -# The agreement for individuals can be filled out on the web. -# -# When adding J Random Contributor's name to this file, -# either J's name or J's organization's name should be -# added to the AUTHORS file, depending on whether the -# individual or corporate CLA was used. - -# Names should be added to this file like so: -# Name <email address> - -# Please keep the list sorted. - -Andrew Gerrand <adg@golang.org> -Jeff R. Allen <jra@nella.org> <jeff.allen@gmail.com> -Nigel Tao <nigeltao@golang.org> -Rémy Oudompheng <oudomphe@phare.normalesup.org> <remyoudompheng@gmail.com> -Rob Pike <r@golang.org> -Roger Peppe <rogpeppe@gmail.com> -Russ Cox <rsc@golang.org> diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/LICENSE b/Godeps/_workspace/src/code.google.com/p/freetype-go/LICENSE deleted file mode 100644 index e854ba5db..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/LICENSE +++ /dev/null @@ -1,12 +0,0 @@ -Use of the Freetype-Go software is subject to your choice of exactly one of -the following two licenses: - * The FreeType License, which is similar to the original BSD license with - an advertising clause, or - * The GNU General Public License (GPL), version 2 or later. - -The text of these licenses are available in the licenses/ftl.txt and the -licenses/gpl.txt files respectively. They are also available at -http://freetype.sourceforge.net/license.html - -The Luxi fonts in the testdata directory are licensed separately. See the -testdata/COPYING file for details. diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/README b/Godeps/_workspace/src/code.google.com/p/freetype-go/README deleted file mode 100644 index 90fefd5f6..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/README +++ /dev/null @@ -1,22 +0,0 @@ -This is a port of the Freetype font rasterizer (www.freetype.org) to the Go -programming language (golang.org). - -To download and install from source: -$ go get code.google.com/p/freetype-go/freetype - -It is an incomplete port: - * It only supports TrueType fonts, and not Type 1 fonts nor bitmap fonts. - * It only supports the Unicode encoding. - -There are also some implementation differences: - * It uses a 24.8 fixed point co-ordinate system everywhere internally, - as opposed to the original Freetype's mix of 26.6 (or 10.6 for 16-bit - systems) in some places, and 24.8 in the "smooth" rasterizer. - -Freetype-Go is derived from Freetype, which is written in C. Freetype is -copyright 1996-2010 David Turner, Robert Wilhelm, and Werner Lemberg. -Freetype-Go is copyright The Freetype-Go Authors, who are listed in the -AUTHORS file. - -The Freetype-Go homepage is http://code.google.com/p/freetype-go/ - diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/cmd/print-glyph-points/main.c b/Godeps/_workspace/src/code.google.com/p/freetype-go/cmd/print-glyph-points/main.c deleted file mode 100644 index 6e821e892..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/cmd/print-glyph-points/main.c +++ /dev/null @@ -1,87 +0,0 @@ -/* -gcc main.c -I/usr/include/freetype2 -lfreetype && ./a.out 12 ../../testdata/luxisr.ttf with_hinting -*/ - -#include <stdio.h> -#include <ft2build.h> -#include FT_FREETYPE_H - -void usage(char** argv) { - fprintf(stderr, "usage: %s font_size font_file [with_hinting|sans_hinting]\n", argv[0]); -} - -int main(int argc, char** argv) { - FT_Error error; - FT_Library library; - FT_Face face; - FT_Glyph_Metrics* m; - FT_Outline* o; - FT_Int major, minor, patch; - int i, j, font_size, no_hinting; - - if (argc != 4) { - usage(argv); - return 1; - } - font_size = atoi(argv[1]); - if (font_size <= 0) { - fprintf(stderr, "invalid font_size\n"); - usage(argv); - return 1; - } - if (!strcmp(argv[3], "with_hinting")) { - no_hinting = 0; - } else if (!strcmp(argv[3], "sans_hinting")) { - no_hinting = 1; - } else { - fprintf(stderr, "neither \"with_hinting\" nor \"sans_hinting\"\n"); - usage(argv); - return 1; - }; - error = FT_Init_FreeType(&library); - if (error) { - fprintf(stderr, "FT_Init_FreeType: error #%d\n", error); - return 1; - } - FT_Library_Version(library, &major, &minor, &patch); - printf("freetype version %d.%d.%d\n", major, minor, patch); - error = FT_New_Face(library, argv[2], 0, &face); - if (error) { - fprintf(stderr, "FT_New_Face: error #%d\n", error); - return 1; - } - error = FT_Set_Char_Size(face, 0, font_size*64, 0, 0); - if (error) { - fprintf(stderr, "FT_Set_Char_Size: error #%d\n", error); - return 1; - } - for (i = 0; i < face->num_glyphs; i++) { - error = FT_Load_Glyph(face, i, no_hinting ? FT_LOAD_NO_HINTING : FT_LOAD_DEFAULT); - if (error) { - fprintf(stderr, "FT_Load_Glyph: glyph %d: error #%d\n", i, error); - return 1; - } - if (face->glyph->format != FT_GLYPH_FORMAT_OUTLINE) { - fprintf(stderr, "glyph format for glyph %d is not FT_GLYPH_FORMAT_OUTLINE\n", i); - return 1; - } - m = &face->glyph->metrics; - /* Print what Go calls the AdvanceWidth, and then: XMin, YMin, XMax, YMax. */ - printf("%ld %ld %ld %ld %ld;", - m->horiAdvance, - m->horiBearingX, - m->horiBearingY - m->height, - m->horiBearingX + m->width, - m->horiBearingY); - /* Print the glyph points. */ - o = &face->glyph->outline; - for (j = 0; j < o->n_points; j++) { - if (j != 0) { - printf(", "); - } - printf("%ld %ld %d", o->points[j].x, o->points[j].y, o->tags[j] & 0x01); - } - printf("\n"); - } - return 0; -} diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/example/freetype/main.go b/Godeps/_workspace/src/code.google.com/p/freetype-go/example/freetype/main.go deleted file mode 100644 index 83b8c3e5e..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/example/freetype/main.go +++ /dev/null @@ -1,143 +0,0 @@ -// Copyright 2010 The Freetype-Go Authors. All rights reserved. -// Use of this source code is governed by your choice of either the -// FreeType License or the GNU General Public License version 2 (or -// any later version), both of which can be found in the LICENSE file. - -package main - -import ( - "bufio" - "flag" - "fmt" - "image" - "image/color" - "image/draw" - "image/png" - "io/ioutil" - "log" - "os" - - "code.google.com/p/freetype-go/freetype" -) - -var ( - dpi = flag.Float64("dpi", 72, "screen resolution in Dots Per Inch") - fontfile = flag.String("fontfile", "../../testdata/luxisr.ttf", "filename of the ttf font") - hinting = flag.String("hinting", "none", "none | full") - size = flag.Float64("size", 12, "font size in points") - spacing = flag.Float64("spacing", 1.5, "line spacing (e.g. 2 means double spaced)") - wonb = flag.Bool("whiteonblack", false, "white text on a black background") -) - -var text = []string{ - "’Twas brillig, and the slithy toves", - "Did gyre and gimble in the wabe;", - "All mimsy were the borogoves,", - "And the mome raths outgrabe.", - "", - "“Beware the Jabberwock, my son!", - "The jaws that bite, the claws that catch!", - "Beware the Jubjub bird, and shun", - "The frumious Bandersnatch!â€", - "", - "He took his vorpal sword in hand:", - "Long time the manxome foe he sought—", - "So rested he by the Tumtum tree,", - "And stood awhile in thought.", - "", - "And as in uffish thought he stood,", - "The Jabberwock, with eyes of flame,", - "Came whiffling through the tulgey wood,", - "And burbled as it came!", - "", - "One, two! One, two! and through and through", - "The vorpal blade went snicker-snack!", - "He left it dead, and with its head", - "He went galumphing back.", - "", - "“And hast thou slain the Jabberwock?", - "Come to my arms, my beamish boy!", - "O frabjous day! Callooh! Callay!â€", - "He chortled in his joy.", - "", - "’Twas brillig, and the slithy toves", - "Did gyre and gimble in the wabe;", - "All mimsy were the borogoves,", - "And the mome raths outgrabe.", -} - -func main() { - flag.Parse() - - // Read the font data. - fontBytes, err := ioutil.ReadFile(*fontfile) - if err != nil { - log.Println(err) - return - } - font, err := freetype.ParseFont(fontBytes) - if err != nil { - log.Println(err) - return - } - - // Initialize the context. - fg, bg := image.Black, image.White - ruler := color.RGBA{0xdd, 0xdd, 0xdd, 0xff} - if *wonb { - fg, bg = image.White, image.Black - ruler = color.RGBA{0x22, 0x22, 0x22, 0xff} - } - rgba := image.NewRGBA(image.Rect(0, 0, 640, 480)) - draw.Draw(rgba, rgba.Bounds(), bg, image.ZP, draw.Src) - c := freetype.NewContext() - c.SetDPI(*dpi) - c.SetFont(font) - c.SetFontSize(*size) - c.SetClip(rgba.Bounds()) - c.SetDst(rgba) - c.SetSrc(fg) - switch *hinting { - default: - c.SetHinting(freetype.NoHinting) - case "full": - c.SetHinting(freetype.FullHinting) - } - - // Draw the guidelines. - for i := 0; i < 200; i++ { - rgba.Set(10, 10+i, ruler) - rgba.Set(10+i, 10, ruler) - } - - // Draw the text. - pt := freetype.Pt(10, 10+int(c.PointToFix32(*size)>>8)) - for _, s := range text { - _, err = c.DrawString(s, pt) - if err != nil { - log.Println(err) - return - } - pt.Y += c.PointToFix32(*size * *spacing) - } - - // Save that RGBA image to disk. - f, err := os.Create("out.png") - if err != nil { - log.Println(err) - os.Exit(1) - } - defer f.Close() - b := bufio.NewWriter(f) - err = png.Encode(b, rgba) - if err != nil { - log.Println(err) - os.Exit(1) - } - err = b.Flush() - if err != nil { - log.Println(err) - os.Exit(1) - } - fmt.Println("Wrote out.png OK.") -} diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/example/gamma/main.go b/Godeps/_workspace/src/code.google.com/p/freetype-go/example/gamma/main.go deleted file mode 100644 index 4bf7e3309..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/example/gamma/main.go +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2010 The Freetype-Go Authors. All rights reserved. -// Use of this source code is governed by your choice of either the -// FreeType License or the GNU General Public License version 2 (or -// any later version), both of which can be found in the LICENSE file. - -package main - -import ( - "bufio" - "fmt" - "image" - "image/draw" - "image/png" - "log" - "os" - - "code.google.com/p/freetype-go/freetype/raster" -) - -func p(x, y int) raster.Point { - return raster.Point{ - X: raster.Fix32(x * 256), - Y: raster.Fix32(y * 256), - } -} - -func main() { - // Draw a rounded corner that is one pixel wide. - r := raster.NewRasterizer(50, 50) - r.Start(p(5, 5)) - r.Add1(p(5, 25)) - r.Add2(p(5, 45), p(25, 45)) - r.Add1(p(45, 45)) - r.Add1(p(45, 44)) - r.Add1(p(26, 44)) - r.Add2(p(6, 44), p(6, 24)) - r.Add1(p(6, 5)) - r.Add1(p(5, 5)) - - // Rasterize that curve multiple times at different gammas. - const ( - w = 600 - h = 200 - ) - rgba := image.NewRGBA(image.Rect(0, 0, w, h)) - draw.Draw(rgba, image.Rect(0, 0, w, h/2), image.Black, image.ZP, draw.Src) - draw.Draw(rgba, image.Rect(0, h/2, w, h), image.White, image.ZP, draw.Src) - mask := image.NewAlpha(image.Rect(0, 0, 50, 50)) - painter := raster.NewAlphaSrcPainter(mask) - gammas := []float64{1.0 / 10.0, 1.0 / 3.0, 1.0 / 2.0, 2.0 / 3.0, 4.0 / 5.0, 1.0, 5.0 / 4.0, 3.0 / 2.0, 2.0, 3.0, 10.0} - for i, g := range gammas { - draw.Draw(mask, mask.Bounds(), image.Transparent, image.ZP, draw.Src) - r.Rasterize(raster.NewGammaCorrectionPainter(painter, g)) - x, y := 50*i+25, 25 - draw.DrawMask(rgba, image.Rect(x, y, x+50, y+50), image.White, image.ZP, mask, image.ZP, draw.Over) - y += 100 - draw.DrawMask(rgba, image.Rect(x, y, x+50, y+50), image.Black, image.ZP, mask, image.ZP, draw.Over) - } - - // Save that RGBA image to disk. - f, err := os.Create("out.png") - if err != nil { - log.Println(err) - os.Exit(1) - } - defer f.Close() - b := bufio.NewWriter(f) - err = png.Encode(b, rgba) - if err != nil { - log.Println(err) - os.Exit(1) - } - err = b.Flush() - if err != nil { - log.Println(err) - os.Exit(1) - } - fmt.Println("Wrote out.png OK.") -} diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/example/raster/main.go b/Godeps/_workspace/src/code.google.com/p/freetype-go/example/raster/main.go deleted file mode 100644 index 5e6c9815d..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/example/raster/main.go +++ /dev/null @@ -1,178 +0,0 @@ -// Copyright 2010 The Freetype-Go Authors. All rights reserved. -// Use of this source code is governed by your choice of either the -// FreeType License or the GNU General Public License version 2 (or -// any later version), both of which can be found in the LICENSE file. - -package main - -import ( - "bufio" - "fmt" - "image" - "image/color" - "image/draw" - "image/png" - "log" - "os" - - "code.google.com/p/freetype-go/freetype/raster" -) - -type node struct { - x, y, degree int -} - -// These contours "outside" and "inside" are from the `A' glyph from the Droid -// Serif Regular font. - -var outside = []node{ - node{414, 489, 1}, - node{336, 274, 2}, - node{327, 250, 0}, - node{322, 226, 2}, - node{317, 203, 0}, - node{317, 186, 2}, - node{317, 134, 0}, - node{350, 110, 2}, - node{384, 86, 0}, - node{453, 86, 1}, - node{500, 86, 1}, - node{500, 0, 1}, - node{0, 0, 1}, - node{0, 86, 1}, - node{39, 86, 2}, - node{69, 86, 0}, - node{90, 92, 2}, - node{111, 99, 0}, - node{128, 117, 2}, - node{145, 135, 0}, - node{160, 166, 2}, - node{176, 197, 0}, - node{195, 246, 1}, - node{649, 1462, 1}, - node{809, 1462, 1}, - node{1272, 195, 2}, - node{1284, 163, 0}, - node{1296, 142, 2}, - node{1309, 121, 0}, - node{1326, 108, 2}, - node{1343, 96, 0}, - node{1365, 91, 2}, - node{1387, 86, 0}, - node{1417, 86, 1}, - node{1444, 86, 1}, - node{1444, 0, 1}, - node{881, 0, 1}, - node{881, 86, 1}, - node{928, 86, 2}, - node{1051, 86, 0}, - node{1051, 184, 2}, - node{1051, 201, 0}, - node{1046, 219, 2}, - node{1042, 237, 0}, - node{1034, 260, 1}, - node{952, 489, 1}, - node{414, 489, -1}, -} - -var inside = []node{ - node{686, 1274, 1}, - node{453, 592, 1}, - node{915, 592, 1}, - node{686, 1274, -1}, -} - -func p(n node) raster.Point { - x, y := 20+n.x/4, 380-n.y/4 - return raster.Point{ - X: raster.Fix32(x * 256), - Y: raster.Fix32(y * 256), - } -} - -func contour(r *raster.Rasterizer, ns []node) { - if len(ns) == 0 { - return - } - i := 0 - r.Start(p(ns[i])) - for { - switch ns[i].degree { - case -1: - // -1 signifies end-of-contour. - return - case 1: - i += 1 - r.Add1(p(ns[i])) - case 2: - i += 2 - r.Add2(p(ns[i-1]), p(ns[i])) - default: - panic("bad degree") - } - } -} - -func showNodes(m *image.RGBA, ns []node) { - for _, n := range ns { - p := p(n) - x, y := int(p.X)/256, int(p.Y)/256 - if !(image.Point{x, y}).In(m.Bounds()) { - continue - } - var c color.Color - switch n.degree { - case 0: - c = color.RGBA{0, 255, 255, 255} - case 1: - c = color.RGBA{255, 0, 0, 255} - case 2: - c = color.RGBA{255, 0, 0, 255} - } - if c != nil { - m.Set(x, y, c) - } - } -} - -func main() { - // Rasterize the contours to a mask image. - const ( - w = 400 - h = 400 - ) - r := raster.NewRasterizer(w, h) - contour(r, outside) - contour(r, inside) - mask := image.NewAlpha(image.Rect(0, 0, w, h)) - p := raster.NewAlphaSrcPainter(mask) - r.Rasterize(p) - - // Draw the mask image (in gray) onto an RGBA image. - rgba := image.NewRGBA(image.Rect(0, 0, w, h)) - gray := image.NewUniform(color.Alpha{0x1f}) - draw.Draw(rgba, rgba.Bounds(), image.Black, image.ZP, draw.Src) - draw.DrawMask(rgba, rgba.Bounds(), gray, image.ZP, mask, image.ZP, draw.Over) - showNodes(rgba, outside) - showNodes(rgba, inside) - - // Save that RGBA image to disk. - f, err := os.Create("out.png") - if err != nil { - log.Println(err) - os.Exit(1) - } - defer f.Close() - b := bufio.NewWriter(f) - err = png.Encode(b, rgba) - if err != nil { - log.Println(err) - os.Exit(1) - } - err = b.Flush() - if err != nil { - log.Println(err) - os.Exit(1) - } - fmt.Println("Wrote out.png OK.") -} diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/example/round/main.go b/Godeps/_workspace/src/code.google.com/p/freetype-go/example/round/main.go deleted file mode 100644 index e2435f9a2..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/example/round/main.go +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright 2010 The Freetype-Go Authors. All rights reserved. -// Use of this source code is governed by your choice of either the -// FreeType License or the GNU General Public License version 2 (or -// any later version), both of which can be found in the LICENSE file. - -// This program visualizes the quadratic approximation to the circle, used to -// implement round joins when stroking paths. The approximation is used in the -// stroking code for arcs between 0 and 45 degrees, but is visualized here -// between 0 and 90 degrees. The discrepancy between the approximation and the -// true circle is clearly visible at angles above 65 degrees. -package main - -import ( - "bufio" - "fmt" - "image" - "image/color" - "image/draw" - "image/png" - "log" - "math" - "os" - - "code.google.com/p/freetype-go/freetype/raster" -) - -func main() { - const ( - n = 17 - r = 256 * 80 - ) - s := raster.Fix32(r * math.Sqrt(2) / 2) - t := raster.Fix32(r * math.Tan(math.Pi/8)) - - m := image.NewRGBA(image.Rect(0, 0, 800, 600)) - draw.Draw(m, m.Bounds(), image.NewUniform(color.RGBA{63, 63, 63, 255}), image.ZP, draw.Src) - mp := raster.NewRGBAPainter(m) - mp.SetColor(image.Black) - z := raster.NewRasterizer(800, 600) - - for i := 0; i < n; i++ { - cx := raster.Fix32(25600 + 51200*(i%4)) - cy := raster.Fix32(2560 + 32000*(i/4)) - c := raster.Point{X: cx, Y: cy} - theta := math.Pi * (0.5 + 0.5*float64(i)/(n-1)) - dx := raster.Fix32(r * math.Cos(theta)) - dy := raster.Fix32(r * math.Sin(theta)) - d := raster.Point{X: dx, Y: dy} - // Draw a quarter-circle approximated by two quadratic segments, - // with each segment spanning 45 degrees. - z.Start(c) - z.Add1(c.Add(raster.Point{X: r, Y: 0})) - z.Add2(c.Add(raster.Point{X: r, Y: t}), c.Add(raster.Point{X: s, Y: s})) - z.Add2(c.Add(raster.Point{X: t, Y: r}), c.Add(raster.Point{X: 0, Y: r})) - // Add another quadratic segment whose angle ranges between 0 and 90 degrees. - // For an explanation of the magic constants 22, 150, 181 and 256, read the - // comments in the freetype/raster package. - dot := 256 * d.Dot(raster.Point{X: 0, Y: r}) / (r * r) - multiple := raster.Fix32(150 - 22*(dot-181)/(256-181)) - z.Add2(c.Add(raster.Point{X: dx, Y: r + dy}.Mul(multiple)), c.Add(d)) - // Close the curve. - z.Add1(c) - } - z.Rasterize(mp) - - for i := 0; i < n; i++ { - cx := raster.Fix32(25600 + 51200*(i%4)) - cy := raster.Fix32(2560 + 32000*(i/4)) - for j := 0; j < n; j++ { - theta := math.Pi * float64(j) / (n - 1) - dx := raster.Fix32(r * math.Cos(theta)) - dy := raster.Fix32(r * math.Sin(theta)) - m.Set(int((cx+dx)/256), int((cy+dy)/256), color.RGBA{255, 255, 0, 255}) - } - } - - // Save that RGBA image to disk. - f, err := os.Create("out.png") - if err != nil { - log.Println(err) - os.Exit(1) - } - defer f.Close() - b := bufio.NewWriter(f) - err = png.Encode(b, m) - if err != nil { - log.Println(err) - os.Exit(1) - } - err = b.Flush() - if err != nil { - log.Println(err) - os.Exit(1) - } - fmt.Println("Wrote out.png OK.") -} diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/example/truetype/main.go b/Godeps/_workspace/src/code.google.com/p/freetype-go/example/truetype/main.go deleted file mode 100644 index 747694b61..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/example/truetype/main.go +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2010 The Freetype-Go Authors. All rights reserved. -// Use of this source code is governed by your choice of either the -// FreeType License or the GNU General Public License version 2 (or -// any later version), both of which can be found in the LICENSE file. - -package main - -import ( - "flag" - "fmt" - "io/ioutil" - "log" - - "code.google.com/p/freetype-go/freetype/truetype" -) - -var fontfile = flag.String("fontfile", "../../testdata/luxisr.ttf", "filename of the ttf font") - -func printBounds(b truetype.Bounds) { - fmt.Printf("XMin:%d YMin:%d XMax:%d YMax:%d\n", b.XMin, b.YMin, b.XMax, b.YMax) -} - -func printGlyph(g *truetype.GlyphBuf) { - printBounds(g.B) - fmt.Print("Points:\n---\n") - e := 0 - for i, p := range g.Point { - fmt.Printf("%4d, %4d", p.X, p.Y) - if p.Flags&0x01 != 0 { - fmt.Print(" on\n") - } else { - fmt.Print(" off\n") - } - if i+1 == int(g.End[e]) { - fmt.Print("---\n") - e++ - } - } -} - -func main() { - flag.Parse() - fmt.Printf("Loading fontfile %q\n", *fontfile) - b, err := ioutil.ReadFile(*fontfile) - if err != nil { - log.Println(err) - return - } - font, err := truetype.Parse(b) - if err != nil { - log.Println(err) - return - } - fupe := font.FUnitsPerEm() - printBounds(font.Bounds(fupe)) - fmt.Printf("FUnitsPerEm:%d\n\n", fupe) - - c0, c1 := 'A', 'V' - - i0 := font.Index(c0) - hm := font.HMetric(fupe, i0) - g := truetype.NewGlyphBuf() - err = g.Load(font, fupe, i0, truetype.NoHinting) - if err != nil { - log.Println(err) - return - } - fmt.Printf("'%c' glyph\n", c0) - fmt.Printf("AdvanceWidth:%d LeftSideBearing:%d\n", hm.AdvanceWidth, hm.LeftSideBearing) - printGlyph(g) - i1 := font.Index(c1) - fmt.Printf("\n'%c', '%c' Kerning:%d\n", c0, c1, font.Kerning(fupe, i0, i1)) -} diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/freetype.go b/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/freetype.go deleted file mode 100644 index f53efd4ff..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/freetype.go +++ /dev/null @@ -1,349 +0,0 @@ -// Copyright 2010 The Freetype-Go Authors. All rights reserved. -// Use of this source code is governed by your choice of either the -// FreeType License or the GNU General Public License version 2 (or -// any later version), both of which can be found in the LICENSE file. - -// The freetype package provides a convenient API to draw text onto an image. -// Use the freetype/raster and freetype/truetype packages for lower level -// control over rasterization and TrueType parsing. -package freetype - -import ( - "errors" - "image" - "image/draw" - - "code.google.com/p/freetype-go/freetype/raster" - "code.google.com/p/freetype-go/freetype/truetype" -) - -// These constants determine the size of the glyph cache. The cache is keyed -// primarily by the glyph index modulo nGlyphs, and secondarily by sub-pixel -// position for the mask image. Sub-pixel positions are quantized to -// nXFractions possible values in both the x and y directions. -const ( - nGlyphs = 256 - nXFractions = 4 - nYFractions = 1 -) - -// An entry in the glyph cache is keyed explicitly by the glyph index and -// implicitly by the quantized x and y fractional offset. It maps to a mask -// image and an offset. -type cacheEntry struct { - valid bool - glyph truetype.Index - advanceWidth raster.Fix32 - mask *image.Alpha - offset image.Point -} - -// ParseFont just calls the Parse function from the freetype/truetype package. -// It is provided here so that code that imports this package doesn't need -// to also include the freetype/truetype package. -func ParseFont(b []byte) (*truetype.Font, error) { - return truetype.Parse(b) -} - -// Pt converts from a co-ordinate pair measured in pixels to a raster.Point -// co-ordinate pair measured in raster.Fix32 units. -func Pt(x, y int) raster.Point { - return raster.Point{ - X: raster.Fix32(x << 8), - Y: raster.Fix32(y << 8), - } -} - -// Hinting is the policy for snapping a glyph's contours to pixel boundaries. -type Hinting int32 - -const ( - // NoHinting means to not perform any hinting. - NoHinting = Hinting(truetype.NoHinting) - // FullHinting means to use the font's hinting instructions. - FullHinting = Hinting(truetype.FullHinting) -) - -// A Context holds the state for drawing text in a given font and size. -type Context struct { - r *raster.Rasterizer - font *truetype.Font - glyphBuf *truetype.GlyphBuf - // clip is the clip rectangle for drawing. - clip image.Rectangle - // dst and src are the destination and source images for drawing. - dst draw.Image - src image.Image - // fontSize and dpi are used to calculate scale. scale is the number of - // 26.6 fixed point units in 1 em. hinting is the hinting policy. - fontSize, dpi float64 - scale int32 - hinting Hinting - // cache is the glyph cache. - cache [nGlyphs * nXFractions * nYFractions]cacheEntry -} - -// PointToFix32 converts the given number of points (as in ``a 12 point font'') -// into fixed point units. -func (c *Context) PointToFix32(x float64) raster.Fix32 { - return raster.Fix32(x * float64(c.dpi) * (256.0 / 72.0)) -} - -// drawContour draws the given closed contour with the given offset. -func (c *Context) drawContour(ps []truetype.Point, dx, dy raster.Fix32) { - if len(ps) == 0 { - return - } - - // The low bit of each point's Flags value is whether the point is on the - // curve. Truetype fonts only have quadratic Bézier curves, not cubics. - // Thus, two consecutive off-curve points imply an on-curve point in the - // middle of those two. - // - // See http://chanae.walon.org/pub/ttf/ttf_glyphs.htm for more details. - - // ps[0] is a truetype.Point measured in FUnits and positive Y going - // upwards. start is the same thing measured in fixed point units and - // positive Y going downwards, and offset by (dx, dy). - start := raster.Point{ - X: dx + raster.Fix32(ps[0].X<<2), - Y: dy - raster.Fix32(ps[0].Y<<2), - } - others := []truetype.Point(nil) - if ps[0].Flags&0x01 != 0 { - others = ps[1:] - } else { - last := raster.Point{ - X: dx + raster.Fix32(ps[len(ps)-1].X<<2), - Y: dy - raster.Fix32(ps[len(ps)-1].Y<<2), - } - if ps[len(ps)-1].Flags&0x01 != 0 { - start = last - others = ps[:len(ps)-1] - } else { - start = raster.Point{ - X: (start.X + last.X) / 2, - Y: (start.Y + last.Y) / 2, - } - others = ps - } - } - c.r.Start(start) - q0, on0 := start, true - for _, p := range others { - q := raster.Point{ - X: dx + raster.Fix32(p.X<<2), - Y: dy - raster.Fix32(p.Y<<2), - } - on := p.Flags&0x01 != 0 - if on { - if on0 { - c.r.Add1(q) - } else { - c.r.Add2(q0, q) - } - } else { - if on0 { - // No-op. - } else { - mid := raster.Point{ - X: (q0.X + q.X) / 2, - Y: (q0.Y + q.Y) / 2, - } - c.r.Add2(q0, mid) - } - } - q0, on0 = q, on - } - // Close the curve. - if on0 { - c.r.Add1(start) - } else { - c.r.Add2(q0, start) - } -} - -// rasterize returns the advance width, glyph mask and integer-pixel offset -// to render the given glyph at the given sub-pixel offsets. -// The 24.8 fixed point arguments fx and fy must be in the range [0, 1). -func (c *Context) rasterize(glyph truetype.Index, fx, fy raster.Fix32) ( - raster.Fix32, *image.Alpha, image.Point, error) { - - if err := c.glyphBuf.Load(c.font, c.scale, glyph, truetype.Hinting(c.hinting)); err != nil { - return 0, nil, image.Point{}, err - } - // Calculate the integer-pixel bounds for the glyph. - xmin := int(fx+raster.Fix32(c.glyphBuf.B.XMin<<2)) >> 8 - ymin := int(fy-raster.Fix32(c.glyphBuf.B.YMax<<2)) >> 8 - xmax := int(fx+raster.Fix32(c.glyphBuf.B.XMax<<2)+0xff) >> 8 - ymax := int(fy-raster.Fix32(c.glyphBuf.B.YMin<<2)+0xff) >> 8 - if xmin > xmax || ymin > ymax { - return 0, nil, image.Point{}, errors.New("freetype: negative sized glyph") - } - // A TrueType's glyph's nodes can have negative co-ordinates, but the - // rasterizer clips anything left of x=0 or above y=0. xmin and ymin - // are the pixel offsets, based on the font's FUnit metrics, that let - // a negative co-ordinate in TrueType space be non-negative in - // rasterizer space. xmin and ymin are typically <= 0. - fx += raster.Fix32(-xmin << 8) - fy += raster.Fix32(-ymin << 8) - // Rasterize the glyph's vectors. - c.r.Clear() - e0 := 0 - for _, e1 := range c.glyphBuf.End { - c.drawContour(c.glyphBuf.Point[e0:e1], fx, fy) - e0 = e1 - } - a := image.NewAlpha(image.Rect(0, 0, xmax-xmin, ymax-ymin)) - c.r.Rasterize(raster.NewAlphaSrcPainter(a)) - return raster.Fix32(c.glyphBuf.AdvanceWidth << 2), a, image.Point{xmin, ymin}, nil -} - -// glyph returns the advance width, glyph mask and integer-pixel offset to -// render the given glyph at the given sub-pixel point. It is a cache for the -// rasterize method. Unlike rasterize, p's co-ordinates do not have to be in -// the range [0, 1). -func (c *Context) glyph(glyph truetype.Index, p raster.Point) ( - raster.Fix32, *image.Alpha, image.Point, error) { - - // Split p.X and p.Y into their integer and fractional parts. - ix, fx := int(p.X>>8), p.X&0xff - iy, fy := int(p.Y>>8), p.Y&0xff - // Calculate the index t into the cache array. - tg := int(glyph) % nGlyphs - tx := int(fx) / (256 / nXFractions) - ty := int(fy) / (256 / nYFractions) - t := ((tg*nXFractions)+tx)*nYFractions + ty - // Check for a cache hit. - if e := c.cache[t]; e.valid && e.glyph == glyph { - return e.advanceWidth, e.mask, e.offset.Add(image.Point{ix, iy}), nil - } - // Rasterize the glyph and put the result into the cache. - advanceWidth, mask, offset, err := c.rasterize(glyph, fx, fy) - if err != nil { - return 0, nil, image.Point{}, err - } - c.cache[t] = cacheEntry{true, glyph, advanceWidth, mask, offset} - return advanceWidth, mask, offset.Add(image.Point{ix, iy}), nil -} - -// DrawString draws s at p and returns p advanced by the text extent. The text -// is placed so that the left edge of the em square of the first character of s -// and the baseline intersect at p. The majority of the affected pixels will be -// above and to the right of the point, but some may be below or to the left. -// For example, drawing a string that starts with a 'J' in an italic font may -// affect pixels below and left of the point. -// p is a raster.Point and can therefore represent sub-pixel positions. -func (c *Context) DrawString(s string, p raster.Point) (raster.Point, error) { - if c.font == nil { - return raster.Point{}, errors.New("freetype: DrawText called with a nil font") - } - prev, hasPrev := truetype.Index(0), false - for _, rune := range s { - index := c.font.Index(rune) - if hasPrev { - kern := raster.Fix32(c.font.Kerning(c.scale, prev, index)) << 2 - if c.hinting != NoHinting { - kern = (kern + 128) &^ 255 - } - p.X += kern - } - advanceWidth, mask, offset, err := c.glyph(index, p) - if err != nil { - return raster.Point{}, err - } - p.X += advanceWidth - glyphRect := mask.Bounds().Add(offset) - dr := c.clip.Intersect(glyphRect) - if !dr.Empty() { - mp := image.Point{0, dr.Min.Y - glyphRect.Min.Y} - draw.DrawMask(c.dst, dr, c.src, image.ZP, mask, mp, draw.Over) - } - prev, hasPrev = index, true - } - return p, nil -} - -// recalc recalculates scale and bounds values from the font size, screen -// resolution and font metrics, and invalidates the glyph cache. -func (c *Context) recalc() { - c.scale = int32(c.fontSize * c.dpi * (64.0 / 72.0)) - if c.font == nil { - c.r.SetBounds(0, 0) - } else { - // Set the rasterizer's bounds to be big enough to handle the largest glyph. - b := c.font.Bounds(c.scale) - xmin := +int(b.XMin) >> 6 - ymin := -int(b.YMax) >> 6 - xmax := +int(b.XMax+63) >> 6 - ymax := -int(b.YMin-63) >> 6 - c.r.SetBounds(xmax-xmin, ymax-ymin) - } - for i := range c.cache { - c.cache[i] = cacheEntry{} - } -} - -// SetDPI sets the screen resolution in dots per inch. -func (c *Context) SetDPI(dpi float64) { - if c.dpi == dpi { - return - } - c.dpi = dpi - c.recalc() -} - -// SetFont sets the font used to draw text. -func (c *Context) SetFont(font *truetype.Font) { - if c.font == font { - return - } - c.font = font - c.recalc() -} - -// SetFontSize sets the font size in points (as in ``a 12 point font''). -func (c *Context) SetFontSize(fontSize float64) { - if c.fontSize == fontSize { - return - } - c.fontSize = fontSize - c.recalc() -} - -// SetHinting sets the hinting policy. -func (c *Context) SetHinting(hinting Hinting) { - c.hinting = hinting - for i := range c.cache { - c.cache[i] = cacheEntry{} - } -} - -// SetDst sets the destination image for draw operations. -func (c *Context) SetDst(dst draw.Image) { - c.dst = dst -} - -// SetSrc sets the source image for draw operations. This is typically an -// image.Uniform. -func (c *Context) SetSrc(src image.Image) { - c.src = src -} - -// SetClip sets the clip rectangle for drawing. -func (c *Context) SetClip(clip image.Rectangle) { - c.clip = clip -} - -// TODO(nigeltao): implement Context.SetGamma. - -// NewContext creates a new Context. -func NewContext() *Context { - return &Context{ - r: raster.NewRasterizer(0, 0), - glyphBuf: truetype.NewGlyphBuf(), - fontSize: 12, - dpi: 72, - scale: 12 << 6, - } -} diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/freetype_test.go b/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/freetype_test.go deleted file mode 100644 index 39f56b36d..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/freetype_test.go +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2012 The Freetype-Go Authors. All rights reserved. -// Use of this source code is governed by your choice of either the -// FreeType License or the GNU General Public License version 2 (or -// any later version), both of which can be found in the LICENSE file. - -package freetype - -import ( - "image" - "image/draw" - "io/ioutil" - "runtime" - "strings" - "testing" -) - -func BenchmarkDrawString(b *testing.B) { - data, err := ioutil.ReadFile("../licenses/gpl.txt") - if err != nil { - b.Fatal(err) - } - lines := strings.Split(string(data), "\n") - - data, err = ioutil.ReadFile("../testdata/luxisr.ttf") - if err != nil { - b.Fatal(err) - } - font, err := ParseFont(data) - if err != nil { - b.Fatal(err) - } - - dst := image.NewRGBA(image.Rect(0, 0, 800, 600)) - draw.Draw(dst, dst.Bounds(), image.White, image.ZP, draw.Src) - - c := NewContext() - c.SetDst(dst) - c.SetClip(dst.Bounds()) - c.SetSrc(image.Black) - c.SetFont(font) - - var ms runtime.MemStats - runtime.ReadMemStats(&ms) - mallocs := ms.Mallocs - - b.ResetTimer() - for i := 0; i < b.N; i++ { - for j, line := range lines { - _, err := c.DrawString(line, Pt(0, (j*16)%600)) - if err != nil { - b.Fatal(err) - } - } - } - b.StopTimer() - runtime.ReadMemStats(&ms) - mallocs = ms.Mallocs - mallocs - b.Logf("%d iterations, %d mallocs per iteration\n", b.N, int(mallocs)/b.N) -} diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/raster/geom.go b/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/raster/geom.go deleted file mode 100644 index 63c86e6ab..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/raster/geom.go +++ /dev/null @@ -1,280 +0,0 @@ -// Copyright 2010 The Freetype-Go Authors. All rights reserved. -// Use of this source code is governed by your choice of either the -// FreeType License or the GNU General Public License version 2 (or -// any later version), both of which can be found in the LICENSE file. - -package raster - -import ( - "fmt" - "math" -) - -// A Fix32 is a 24.8 fixed point number. -type Fix32 int32 - -// A Fix64 is a 48.16 fixed point number. -type Fix64 int64 - -// String returns a human-readable representation of a 24.8 fixed point number. -// For example, the number one-and-a-quarter becomes "1:064". -func (x Fix32) String() string { - if x < 0 { - x = -x - return fmt.Sprintf("-%d:%03d", int32(x/256), int32(x%256)) - } - return fmt.Sprintf("%d:%03d", int32(x/256), int32(x%256)) -} - -// String returns a human-readable representation of a 48.16 fixed point number. -// For example, the number one-and-a-quarter becomes "1:16384". -func (x Fix64) String() string { - if x < 0 { - x = -x - return fmt.Sprintf("-%d:%05d", int64(x/65536), int64(x%65536)) - } - return fmt.Sprintf("%d:%05d", int64(x/65536), int64(x%65536)) -} - -// maxAbs returns the maximum of abs(a) and abs(b). -func maxAbs(a, b Fix32) Fix32 { - if a < 0 { - a = -a - } - if b < 0 { - b = -b - } - if a < b { - return b - } - return a -} - -// A Point represents a two-dimensional point or vector, in 24.8 fixed point -// format. -type Point struct { - X, Y Fix32 -} - -// String returns a human-readable representation of a Point. -func (p Point) String() string { - return "(" + p.X.String() + ", " + p.Y.String() + ")" -} - -// Add returns the vector p + q. -func (p Point) Add(q Point) Point { - return Point{p.X + q.X, p.Y + q.Y} -} - -// Sub returns the vector p - q. -func (p Point) Sub(q Point) Point { - return Point{p.X - q.X, p.Y - q.Y} -} - -// Mul returns the vector k * p. -func (p Point) Mul(k Fix32) Point { - return Point{p.X * k / 256, p.Y * k / 256} -} - -// Neg returns the vector -p, or equivalently p rotated by 180 degrees. -func (p Point) Neg() Point { - return Point{-p.X, -p.Y} -} - -// Dot returns the dot product p·q. -func (p Point) Dot(q Point) Fix64 { - px, py := int64(p.X), int64(p.Y) - qx, qy := int64(q.X), int64(q.Y) - return Fix64(px*qx + py*qy) -} - -// Len returns the length of the vector p. -func (p Point) Len() Fix32 { - // TODO(nigeltao): use fixed point math. - x := float64(p.X) - y := float64(p.Y) - return Fix32(math.Sqrt(x*x + y*y)) -} - -// Norm returns the vector p normalized to the given length, or the zero Point -// if p is degenerate. -func (p Point) Norm(length Fix32) Point { - d := p.Len() - if d == 0 { - return Point{} - } - s, t := int64(length), int64(d) - x := int64(p.X) * s / t - y := int64(p.Y) * s / t - return Point{Fix32(x), Fix32(y)} -} - -// Rot45CW returns the vector p rotated clockwise by 45 degrees. -// Note that the Y-axis grows downwards, so {1, 0}.Rot45CW is {1/√2, 1/√2}. -func (p Point) Rot45CW() Point { - // 181/256 is approximately 1/√2, or sin(Ï€/4). - px, py := int64(p.X), int64(p.Y) - qx := (+px - py) * 181 / 256 - qy := (+px + py) * 181 / 256 - return Point{Fix32(qx), Fix32(qy)} -} - -// Rot90CW returns the vector p rotated clockwise by 90 degrees. -// Note that the Y-axis grows downwards, so {1, 0}.Rot90CW is {0, 1}. -func (p Point) Rot90CW() Point { - return Point{-p.Y, p.X} -} - -// Rot135CW returns the vector p rotated clockwise by 135 degrees. -// Note that the Y-axis grows downwards, so {1, 0}.Rot135CW is {-1/√2, 1/√2}. -func (p Point) Rot135CW() Point { - // 181/256 is approximately 1/√2, or sin(Ï€/4). - px, py := int64(p.X), int64(p.Y) - qx := (-px - py) * 181 / 256 - qy := (+px - py) * 181 / 256 - return Point{Fix32(qx), Fix32(qy)} -} - -// Rot45CCW returns the vector p rotated counter-clockwise by 45 degrees. -// Note that the Y-axis grows downwards, so {1, 0}.Rot45CCW is {1/√2, -1/√2}. -func (p Point) Rot45CCW() Point { - // 181/256 is approximately 1/√2, or sin(Ï€/4). - px, py := int64(p.X), int64(p.Y) - qx := (+px + py) * 181 / 256 - qy := (-px + py) * 181 / 256 - return Point{Fix32(qx), Fix32(qy)} -} - -// Rot90CCW returns the vector p rotated counter-clockwise by 90 degrees. -// Note that the Y-axis grows downwards, so {1, 0}.Rot90CCW is {0, -1}. -func (p Point) Rot90CCW() Point { - return Point{p.Y, -p.X} -} - -// Rot135CCW returns the vector p rotated counter-clockwise by 135 degrees. -// Note that the Y-axis grows downwards, so {1, 0}.Rot135CCW is {-1/√2, -1/√2}. -func (p Point) Rot135CCW() Point { - // 181/256 is approximately 1/√2, or sin(Ï€/4). - px, py := int64(p.X), int64(p.Y) - qx := (-px + py) * 181 / 256 - qy := (-px - py) * 181 / 256 - return Point{Fix32(qx), Fix32(qy)} -} - -// An Adder accumulates points on a curve. -type Adder interface { - // Start starts a new curve at the given point. - Start(a Point) - // Add1 adds a linear segment to the current curve. - Add1(b Point) - // Add2 adds a quadratic segment to the current curve. - Add2(b, c Point) - // Add3 adds a cubic segment to the current curve. - Add3(b, c, d Point) -} - -// A Path is a sequence of curves, and a curve is a start point followed by a -// sequence of linear, quadratic or cubic segments. -type Path []Fix32 - -// String returns a human-readable representation of a Path. -func (p Path) String() string { - s := "" - for i := 0; i < len(p); { - if i != 0 { - s += " " - } - switch p[i] { - case 0: - s += "S0" + fmt.Sprint([]Fix32(p[i+1:i+3])) - i += 4 - case 1: - s += "A1" + fmt.Sprint([]Fix32(p[i+1:i+3])) - i += 4 - case 2: - s += "A2" + fmt.Sprint([]Fix32(p[i+1:i+5])) - i += 6 - case 3: - s += "A3" + fmt.Sprint([]Fix32(p[i+1:i+7])) - i += 8 - default: - panic("freetype/raster: bad path") - } - } - return s -} - -// Clear cancels any previous calls to p.Start or p.AddXxx. -func (p *Path) Clear() { - *p = (*p)[:0] -} - -// Start starts a new curve at the given point. -func (p *Path) Start(a Point) { - *p = append(*p, 0, a.X, a.Y, 0) -} - -// Add1 adds a linear segment to the current curve. -func (p *Path) Add1(b Point) { - *p = append(*p, 1, b.X, b.Y, 1) -} - -// Add2 adds a quadratic segment to the current curve. -func (p *Path) Add2(b, c Point) { - *p = append(*p, 2, b.X, b.Y, c.X, c.Y, 2) -} - -// Add3 adds a cubic segment to the current curve. -func (p *Path) Add3(b, c, d Point) { - *p = append(*p, 3, b.X, b.Y, c.X, c.Y, d.X, d.Y, 3) -} - -// AddPath adds the Path q to p. -func (p *Path) AddPath(q Path) { - *p = append(*p, q...) -} - -// AddStroke adds a stroked Path. -func (p *Path) AddStroke(q Path, width Fix32, cr Capper, jr Joiner) { - Stroke(p, q, width, cr, jr) -} - -// firstPoint returns the first point in a non-empty Path. -func (p Path) firstPoint() Point { - return Point{p[1], p[2]} -} - -// lastPoint returns the last point in a non-empty Path. -func (p Path) lastPoint() Point { - return Point{p[len(p)-3], p[len(p)-2]} -} - -// addPathReversed adds q reversed to p. -// For example, if q consists of a linear segment from A to B followed by a -// quadratic segment from B to C to D, then the values of q looks like: -// index: 01234567890123 -// value: 0AA01BB12CCDD2 -// So, when adding q backwards to p, we want to Add2(C, B) followed by Add1(A). -func addPathReversed(p Adder, q Path) { - if len(q) == 0 { - return - } - i := len(q) - 1 - for { - switch q[i] { - case 0: - return - case 1: - i -= 4 - p.Add1(Point{q[i-2], q[i-1]}) - case 2: - i -= 6 - p.Add2(Point{q[i+2], q[i+3]}, Point{q[i-2], q[i-1]}) - case 3: - i -= 8 - p.Add3(Point{q[i+4], q[i+5]}, Point{q[i+2], q[i+3]}, Point{q[i-2], q[i-1]}) - default: - panic("freetype/raster: bad path") - } - } -} diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/raster/paint.go b/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/raster/paint.go deleted file mode 100644 index 13cccc192..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/raster/paint.go +++ /dev/null @@ -1,292 +0,0 @@ -// Copyright 2010 The Freetype-Go Authors. All rights reserved. -// Use of this source code is governed by your choice of either the -// FreeType License or the GNU General Public License version 2 (or -// any later version), both of which can be found in the LICENSE file. - -package raster - -import ( - "image" - "image/color" - "image/draw" - "math" -) - -// A Span is a horizontal segment of pixels with constant alpha. X0 is an -// inclusive bound and X1 is exclusive, the same as for slices. A fully -// opaque Span has A == 1<<32 - 1. -type Span struct { - Y, X0, X1 int - A uint32 -} - -// A Painter knows how to paint a batch of Spans. Rasterization may involve -// Painting multiple batches, and done will be true for the final batch. -// The Spans' Y values are monotonically increasing during a rasterization. -// Paint may use all of ss as scratch space during the call. -type Painter interface { - Paint(ss []Span, done bool) -} - -// The PainterFunc type adapts an ordinary function to the Painter interface. -type PainterFunc func(ss []Span, done bool) - -// Paint just delegates the call to f. -func (f PainterFunc) Paint(ss []Span, done bool) { f(ss, done) } - -// An AlphaOverPainter is a Painter that paints Spans onto an image.Alpha -// using the Over Porter-Duff composition operator. -type AlphaOverPainter struct { - Image *image.Alpha -} - -// Paint satisfies the Painter interface by painting ss onto an image.Alpha. -func (r AlphaOverPainter) Paint(ss []Span, done bool) { - b := r.Image.Bounds() - for _, s := range ss { - if s.Y < b.Min.Y { - continue - } - if s.Y >= b.Max.Y { - return - } - if s.X0 < b.Min.X { - s.X0 = b.Min.X - } - if s.X1 > b.Max.X { - s.X1 = b.Max.X - } - if s.X0 >= s.X1 { - continue - } - base := (s.Y-r.Image.Rect.Min.Y)*r.Image.Stride - r.Image.Rect.Min.X - p := r.Image.Pix[base+s.X0 : base+s.X1] - a := int(s.A >> 24) - for i, c := range p { - v := int(c) - p[i] = uint8((v*255 + (255-v)*a) / 255) - } - } -} - -// NewAlphaOverPainter creates a new AlphaOverPainter for the given image. -func NewAlphaOverPainter(m *image.Alpha) AlphaOverPainter { - return AlphaOverPainter{m} -} - -// An AlphaSrcPainter is a Painter that paints Spans onto an image.Alpha -// using the Src Porter-Duff composition operator. -type AlphaSrcPainter struct { - Image *image.Alpha -} - -// Paint satisfies the Painter interface by painting ss onto an image.Alpha. -func (r AlphaSrcPainter) Paint(ss []Span, done bool) { - b := r.Image.Bounds() - for _, s := range ss { - if s.Y < b.Min.Y { - continue - } - if s.Y >= b.Max.Y { - return - } - if s.X0 < b.Min.X { - s.X0 = b.Min.X - } - if s.X1 > b.Max.X { - s.X1 = b.Max.X - } - if s.X0 >= s.X1 { - continue - } - base := (s.Y-r.Image.Rect.Min.Y)*r.Image.Stride - r.Image.Rect.Min.X - p := r.Image.Pix[base+s.X0 : base+s.X1] - color := uint8(s.A >> 24) - for i := range p { - p[i] = color - } - } -} - -// NewAlphaSrcPainter creates a new AlphaSrcPainter for the given image. -func NewAlphaSrcPainter(m *image.Alpha) AlphaSrcPainter { - return AlphaSrcPainter{m} -} - -type RGBAPainter struct { - // The image to compose onto. - Image *image.RGBA - // The Porter-Duff composition operator. - Op draw.Op - // The 16-bit color to paint the spans. - cr, cg, cb, ca uint32 -} - -// Paint satisfies the Painter interface by painting ss onto an image.RGBA. -func (r *RGBAPainter) Paint(ss []Span, done bool) { - b := r.Image.Bounds() - for _, s := range ss { - if s.Y < b.Min.Y { - continue - } - if s.Y >= b.Max.Y { - return - } - if s.X0 < b.Min.X { - s.X0 = b.Min.X - } - if s.X1 > b.Max.X { - s.X1 = b.Max.X - } - if s.X0 >= s.X1 { - continue - } - // This code is similar to drawGlyphOver in $GOROOT/src/pkg/image/draw/draw.go. - ma := s.A >> 16 - const m = 1<<16 - 1 - i0 := (s.Y-r.Image.Rect.Min.Y)*r.Image.Stride + (s.X0-r.Image.Rect.Min.X)*4 - i1 := i0 + (s.X1-s.X0)*4 - if r.Op == draw.Over { - for i := i0; i < i1; i += 4 { - dr := uint32(r.Image.Pix[i+0]) - dg := uint32(r.Image.Pix[i+1]) - db := uint32(r.Image.Pix[i+2]) - da := uint32(r.Image.Pix[i+3]) - a := (m - (r.ca * ma / m)) * 0x101 - r.Image.Pix[i+0] = uint8((dr*a + r.cr*ma) / m >> 8) - r.Image.Pix[i+1] = uint8((dg*a + r.cg*ma) / m >> 8) - r.Image.Pix[i+2] = uint8((db*a + r.cb*ma) / m >> 8) - r.Image.Pix[i+3] = uint8((da*a + r.ca*ma) / m >> 8) - } - } else { - for i := i0; i < i1; i += 4 { - r.Image.Pix[i+0] = uint8(r.cr * ma / m >> 8) - r.Image.Pix[i+1] = uint8(r.cg * ma / m >> 8) - r.Image.Pix[i+2] = uint8(r.cb * ma / m >> 8) - r.Image.Pix[i+3] = uint8(r.ca * ma / m >> 8) - } - } - } -} - -// SetColor sets the color to paint the spans. -func (r *RGBAPainter) SetColor(c color.Color) { - r.cr, r.cg, r.cb, r.ca = c.RGBA() -} - -// NewRGBAPainter creates a new RGBAPainter for the given image. -func NewRGBAPainter(m *image.RGBA) *RGBAPainter { - return &RGBAPainter{Image: m} -} - -// A MonochromePainter wraps another Painter, quantizing each Span's alpha to -// be either fully opaque or fully transparent. -type MonochromePainter struct { - Painter Painter - y, x0, x1 int -} - -// Paint delegates to the wrapped Painter after quantizing each Span's alpha -// value and merging adjacent fully opaque Spans. -func (m *MonochromePainter) Paint(ss []Span, done bool) { - // We compact the ss slice, discarding any Spans whose alpha quantizes to zero. - j := 0 - for _, s := range ss { - if s.A >= 1<<31 { - if m.y == s.Y && m.x1 == s.X0 { - m.x1 = s.X1 - } else { - ss[j] = Span{m.y, m.x0, m.x1, 1<<32 - 1} - j++ - m.y, m.x0, m.x1 = s.Y, s.X0, s.X1 - } - } - } - if done { - // Flush the accumulated Span. - finalSpan := Span{m.y, m.x0, m.x1, 1<<32 - 1} - if j < len(ss) { - ss[j] = finalSpan - j++ - m.Painter.Paint(ss[:j], true) - } else if j == len(ss) { - m.Painter.Paint(ss, false) - if cap(ss) > 0 { - ss = ss[:1] - } else { - ss = make([]Span, 1) - } - ss[0] = finalSpan - m.Painter.Paint(ss, true) - } else { - panic("unreachable") - } - // Reset the accumulator, so that this Painter can be re-used. - m.y, m.x0, m.x1 = 0, 0, 0 - } else { - m.Painter.Paint(ss[:j], false) - } -} - -// NewMonochromePainter creates a new MonochromePainter that wraps the given -// Painter. -func NewMonochromePainter(p Painter) *MonochromePainter { - return &MonochromePainter{Painter: p} -} - -// A GammaCorrectionPainter wraps another Painter, performing gamma-correction -// on each Span's alpha value. -type GammaCorrectionPainter struct { - // The wrapped Painter. - Painter Painter - // Precomputed alpha values for linear interpolation, with fully opaque == 1<<16-1. - a [256]uint16 - // Whether gamma correction is a no-op. - gammaIsOne bool -} - -// Paint delegates to the wrapped Painter after performing gamma-correction -// on each Span. -func (g *GammaCorrectionPainter) Paint(ss []Span, done bool) { - if !g.gammaIsOne { - const ( - M = 0x1010101 // 255*M == 1<<32-1 - N = 0x8080 // N = M>>9, and N < 1<<16-1 - ) - for i, s := range ss { - if s.A == 0 || s.A == 1<<32-1 { - continue - } - p, q := s.A/M, (s.A%M)>>9 - // The resultant alpha is a linear interpolation of g.a[p] and g.a[p+1]. - a := uint32(g.a[p])*(N-q) + uint32(g.a[p+1])*q - a = (a + N/2) / N - // Convert the alpha from 16-bit (which is g.a's range) to 32-bit. - a |= a << 16 - ss[i].A = a - } - } - g.Painter.Paint(ss, done) -} - -// SetGamma sets the gamma value. -func (g *GammaCorrectionPainter) SetGamma(gamma float64) { - if gamma == 1.0 { - g.gammaIsOne = true - return - } - g.gammaIsOne = false - for i := 0; i < 256; i++ { - a := float64(i) / 0xff - a = math.Pow(a, gamma) - g.a[i] = uint16(0xffff * a) - } -} - -// NewGammaCorrectionPainter creates a new GammaCorrectionPainter that wraps -// the given Painter. -func NewGammaCorrectionPainter(p Painter, gamma float64) *GammaCorrectionPainter { - g := &GammaCorrectionPainter{Painter: p} - g.SetGamma(gamma) - return g -} diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/raster/raster.go b/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/raster/raster.go deleted file mode 100644 index 45af7eaa2..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/raster/raster.go +++ /dev/null @@ -1,579 +0,0 @@ -// Copyright 2010 The Freetype-Go Authors. All rights reserved. -// Use of this source code is governed by your choice of either the -// FreeType License or the GNU General Public License version 2 (or -// any later version), both of which can be found in the LICENSE file. - -// The raster package provides an anti-aliasing 2-D rasterizer. -// -// It is part of the larger Freetype-Go suite of font-related packages, -// but the raster package is not specific to font rasterization, and can -// be used standalone without any other Freetype-Go package. -// -// Rasterization is done by the same area/coverage accumulation algorithm -// as the Freetype "smooth" module, and the Anti-Grain Geometry library. -// A description of the area/coverage algorithm is at -// http://projects.tuxee.net/cl-vectors/section-the-cl-aa-algorithm -package raster - -import ( - "strconv" -) - -// A cell is part of a linked list (for a given yi co-ordinate) of accumulated -// area/coverage for the pixel at (xi, yi). -type cell struct { - xi int - area, cover int - next int -} - -type Rasterizer struct { - // If false, the default behavior is to use the even-odd winding fill - // rule during Rasterize. - UseNonZeroWinding bool - // An offset (in pixels) to the painted spans. - Dx, Dy int - - // The width of the Rasterizer. The height is implicit in len(cellIndex). - width int - // splitScaleN is the scaling factor used to determine how many times - // to decompose a quadratic or cubic segment into a linear approximation. - splitScale2, splitScale3 int - - // The current pen position. - a Point - // The current cell and its area/coverage being accumulated. - xi, yi int - area, cover int - - // Saved cells. - cell []cell - // Linked list of cells, one per row. - cellIndex []int - // Buffers. - cellBuf [256]cell - cellIndexBuf [64]int - spanBuf [64]Span -} - -// findCell returns the index in r.cell for the cell corresponding to -// (r.xi, r.yi). The cell is created if necessary. -func (r *Rasterizer) findCell() int { - if r.yi < 0 || r.yi >= len(r.cellIndex) { - return -1 - } - xi := r.xi - if xi < 0 { - xi = -1 - } else if xi > r.width { - xi = r.width - } - i, prev := r.cellIndex[r.yi], -1 - for i != -1 && r.cell[i].xi <= xi { - if r.cell[i].xi == xi { - return i - } - i, prev = r.cell[i].next, i - } - c := len(r.cell) - if c == cap(r.cell) { - buf := make([]cell, c, 4*c) - copy(buf, r.cell) - r.cell = buf[0 : c+1] - } else { - r.cell = r.cell[0 : c+1] - } - r.cell[c] = cell{xi, 0, 0, i} - if prev == -1 { - r.cellIndex[r.yi] = c - } else { - r.cell[prev].next = c - } - return c -} - -// saveCell saves any accumulated r.area/r.cover for (r.xi, r.yi). -func (r *Rasterizer) saveCell() { - if r.area != 0 || r.cover != 0 { - i := r.findCell() - if i != -1 { - r.cell[i].area += r.area - r.cell[i].cover += r.cover - } - r.area = 0 - r.cover = 0 - } -} - -// setCell sets the (xi, yi) cell that r is accumulating area/coverage for. -func (r *Rasterizer) setCell(xi, yi int) { - if r.xi != xi || r.yi != yi { - r.saveCell() - r.xi, r.yi = xi, yi - } -} - -// scan accumulates area/coverage for the yi'th scanline, going from -// x0 to x1 in the horizontal direction (in 24.8 fixed point co-ordinates) -// and from y0f to y1f fractional vertical units within that scanline. -func (r *Rasterizer) scan(yi int, x0, y0f, x1, y1f Fix32) { - // Break the 24.8 fixed point X co-ordinates into integral and fractional parts. - x0i := int(x0) / 256 - x0f := x0 - Fix32(256*x0i) - x1i := int(x1) / 256 - x1f := x1 - Fix32(256*x1i) - - // A perfectly horizontal scan. - if y0f == y1f { - r.setCell(x1i, yi) - return - } - dx, dy := x1-x0, y1f-y0f - // A single cell scan. - if x0i == x1i { - r.area += int((x0f + x1f) * dy) - r.cover += int(dy) - return - } - // There are at least two cells. Apart from the first and last cells, - // all intermediate cells go through the full width of the cell, - // or 256 units in 24.8 fixed point format. - var ( - p, q, edge0, edge1 Fix32 - xiDelta int - ) - if dx > 0 { - p, q = (256-x0f)*dy, dx - edge0, edge1, xiDelta = 0, 256, 1 - } else { - p, q = x0f*dy, -dx - edge0, edge1, xiDelta = 256, 0, -1 - } - yDelta, yRem := p/q, p%q - if yRem < 0 { - yDelta -= 1 - yRem += q - } - // Do the first cell. - xi, y := x0i, y0f - r.area += int((x0f + edge1) * yDelta) - r.cover += int(yDelta) - xi, y = xi+xiDelta, y+yDelta - r.setCell(xi, yi) - if xi != x1i { - // Do all the intermediate cells. - p = 256 * (y1f - y + yDelta) - fullDelta, fullRem := p/q, p%q - if fullRem < 0 { - fullDelta -= 1 - fullRem += q - } - yRem -= q - for xi != x1i { - yDelta = fullDelta - yRem += fullRem - if yRem >= 0 { - yDelta += 1 - yRem -= q - } - r.area += int(256 * yDelta) - r.cover += int(yDelta) - xi, y = xi+xiDelta, y+yDelta - r.setCell(xi, yi) - } - } - // Do the last cell. - yDelta = y1f - y - r.area += int((edge0 + x1f) * yDelta) - r.cover += int(yDelta) -} - -// Start starts a new curve at the given point. -func (r *Rasterizer) Start(a Point) { - r.setCell(int(a.X/256), int(a.Y/256)) - r.a = a -} - -// Add1 adds a linear segment to the current curve. -func (r *Rasterizer) Add1(b Point) { - x0, y0 := r.a.X, r.a.Y - x1, y1 := b.X, b.Y - dx, dy := x1-x0, y1-y0 - // Break the 24.8 fixed point Y co-ordinates into integral and fractional parts. - y0i := int(y0) / 256 - y0f := y0 - Fix32(256*y0i) - y1i := int(y1) / 256 - y1f := y1 - Fix32(256*y1i) - - if y0i == y1i { - // There is only one scanline. - r.scan(y0i, x0, y0f, x1, y1f) - - } else if dx == 0 { - // This is a vertical line segment. We avoid calling r.scan and instead - // manipulate r.area and r.cover directly. - var ( - edge0, edge1 Fix32 - yiDelta int - ) - if dy > 0 { - edge0, edge1, yiDelta = 0, 256, 1 - } else { - edge0, edge1, yiDelta = 256, 0, -1 - } - x0i, yi := int(x0)/256, y0i - x0fTimes2 := (int(x0) - (256 * x0i)) * 2 - // Do the first pixel. - dcover := int(edge1 - y0f) - darea := int(x0fTimes2 * dcover) - r.area += darea - r.cover += dcover - yi += yiDelta - r.setCell(x0i, yi) - // Do all the intermediate pixels. - dcover = int(edge1 - edge0) - darea = int(x0fTimes2 * dcover) - for yi != y1i { - r.area += darea - r.cover += dcover - yi += yiDelta - r.setCell(x0i, yi) - } - // Do the last pixel. - dcover = int(y1f - edge0) - darea = int(x0fTimes2 * dcover) - r.area += darea - r.cover += dcover - - } else { - // There are at least two scanlines. Apart from the first and last scanlines, - // all intermediate scanlines go through the full height of the row, or 256 - // units in 24.8 fixed point format. - var ( - p, q, edge0, edge1 Fix32 - yiDelta int - ) - if dy > 0 { - p, q = (256-y0f)*dx, dy - edge0, edge1, yiDelta = 0, 256, 1 - } else { - p, q = y0f*dx, -dy - edge0, edge1, yiDelta = 256, 0, -1 - } - xDelta, xRem := p/q, p%q - if xRem < 0 { - xDelta -= 1 - xRem += q - } - // Do the first scanline. - x, yi := x0, y0i - r.scan(yi, x, y0f, x+xDelta, edge1) - x, yi = x+xDelta, yi+yiDelta - r.setCell(int(x)/256, yi) - if yi != y1i { - // Do all the intermediate scanlines. - p = 256 * dx - fullDelta, fullRem := p/q, p%q - if fullRem < 0 { - fullDelta -= 1 - fullRem += q - } - xRem -= q - for yi != y1i { - xDelta = fullDelta - xRem += fullRem - if xRem >= 0 { - xDelta += 1 - xRem -= q - } - r.scan(yi, x, edge0, x+xDelta, edge1) - x, yi = x+xDelta, yi+yiDelta - r.setCell(int(x)/256, yi) - } - } - // Do the last scanline. - r.scan(yi, x, edge0, x1, y1f) - } - // The next lineTo starts from b. - r.a = b -} - -// Add2 adds a quadratic segment to the current curve. -func (r *Rasterizer) Add2(b, c Point) { - // Calculate nSplit (the number of recursive decompositions) based on how `curvy' it is. - // Specifically, how much the middle point b deviates from (a+c)/2. - dev := maxAbs(r.a.X-2*b.X+c.X, r.a.Y-2*b.Y+c.Y) / Fix32(r.splitScale2) - nsplit := 0 - for dev > 0 { - dev /= 4 - nsplit++ - } - // dev is 32-bit, and nsplit++ every time we shift off 2 bits, so maxNsplit is 16. - const maxNsplit = 16 - if nsplit > maxNsplit { - panic("freetype/raster: Add2 nsplit too large: " + strconv.Itoa(nsplit)) - } - // Recursively decompose the curve nSplit levels deep. - var ( - pStack [2*maxNsplit + 3]Point - sStack [maxNsplit + 1]int - i int - ) - sStack[0] = nsplit - pStack[0] = c - pStack[1] = b - pStack[2] = r.a - for i >= 0 { - s := sStack[i] - p := pStack[2*i:] - if s > 0 { - // Split the quadratic curve p[:3] into an equivalent set of two shorter curves: - // p[:3] and p[2:5]. The new p[4] is the old p[2], and p[0] is unchanged. - mx := p[1].X - p[4].X = p[2].X - p[3].X = (p[4].X + mx) / 2 - p[1].X = (p[0].X + mx) / 2 - p[2].X = (p[1].X + p[3].X) / 2 - my := p[1].Y - p[4].Y = p[2].Y - p[3].Y = (p[4].Y + my) / 2 - p[1].Y = (p[0].Y + my) / 2 - p[2].Y = (p[1].Y + p[3].Y) / 2 - // The two shorter curves have one less split to do. - sStack[i] = s - 1 - sStack[i+1] = s - 1 - i++ - } else { - // Replace the level-0 quadratic with a two-linear-piece approximation. - midx := (p[0].X + 2*p[1].X + p[2].X) / 4 - midy := (p[0].Y + 2*p[1].Y + p[2].Y) / 4 - r.Add1(Point{midx, midy}) - r.Add1(p[0]) - i-- - } - } -} - -// Add3 adds a cubic segment to the current curve. -func (r *Rasterizer) Add3(b, c, d Point) { - // Calculate nSplit (the number of recursive decompositions) based on how `curvy' it is. - dev2 := maxAbs(r.a.X-3*(b.X+c.X)+d.X, r.a.Y-3*(b.Y+c.Y)+d.Y) / Fix32(r.splitScale2) - dev3 := maxAbs(r.a.X-2*b.X+d.X, r.a.Y-2*b.Y+d.Y) / Fix32(r.splitScale3) - nsplit := 0 - for dev2 > 0 || dev3 > 0 { - dev2 /= 8 - dev3 /= 4 - nsplit++ - } - // devN is 32-bit, and nsplit++ every time we shift off 2 bits, so maxNsplit is 16. - const maxNsplit = 16 - if nsplit > maxNsplit { - panic("freetype/raster: Add3 nsplit too large: " + strconv.Itoa(nsplit)) - } - // Recursively decompose the curve nSplit levels deep. - var ( - pStack [3*maxNsplit + 4]Point - sStack [maxNsplit + 1]int - i int - ) - sStack[0] = nsplit - pStack[0] = d - pStack[1] = c - pStack[2] = b - pStack[3] = r.a - for i >= 0 { - s := sStack[i] - p := pStack[3*i:] - if s > 0 { - // Split the cubic curve p[:4] into an equivalent set of two shorter curves: - // p[:4] and p[3:7]. The new p[6] is the old p[3], and p[0] is unchanged. - m01x := (p[0].X + p[1].X) / 2 - m12x := (p[1].X + p[2].X) / 2 - m23x := (p[2].X + p[3].X) / 2 - p[6].X = p[3].X - p[5].X = m23x - p[1].X = m01x - p[2].X = (m01x + m12x) / 2 - p[4].X = (m12x + m23x) / 2 - p[3].X = (p[2].X + p[4].X) / 2 - m01y := (p[0].Y + p[1].Y) / 2 - m12y := (p[1].Y + p[2].Y) / 2 - m23y := (p[2].Y + p[3].Y) / 2 - p[6].Y = p[3].Y - p[5].Y = m23y - p[1].Y = m01y - p[2].Y = (m01y + m12y) / 2 - p[4].Y = (m12y + m23y) / 2 - p[3].Y = (p[2].Y + p[4].Y) / 2 - // The two shorter curves have one less split to do. - sStack[i] = s - 1 - sStack[i+1] = s - 1 - i++ - } else { - // Replace the level-0 cubic with a two-linear-piece approximation. - midx := (p[0].X + 3*(p[1].X+p[2].X) + p[3].X) / 8 - midy := (p[0].Y + 3*(p[1].Y+p[2].Y) + p[3].Y) / 8 - r.Add1(Point{midx, midy}) - r.Add1(p[0]) - i-- - } - } -} - -// AddPath adds the given Path. -func (r *Rasterizer) AddPath(p Path) { - for i := 0; i < len(p); { - switch p[i] { - case 0: - r.Start(Point{p[i+1], p[i+2]}) - i += 4 - case 1: - r.Add1(Point{p[i+1], p[i+2]}) - i += 4 - case 2: - r.Add2(Point{p[i+1], p[i+2]}, Point{p[i+3], p[i+4]}) - i += 6 - case 3: - r.Add3(Point{p[i+1], p[i+2]}, Point{p[i+3], p[i+4]}, Point{p[i+5], p[i+6]}) - i += 8 - default: - panic("freetype/raster: bad path") - } - } -} - -// AddStroke adds a stroked Path. -func (r *Rasterizer) AddStroke(q Path, width Fix32, cr Capper, jr Joiner) { - Stroke(r, q, width, cr, jr) -} - -// Converts an area value to a uint32 alpha value. A completely filled pixel -// corresponds to an area of 256*256*2, and an alpha of 1<<32-1. The -// conversion of area values greater than this depends on the winding rule: -// even-odd or non-zero. -func (r *Rasterizer) areaToAlpha(area int) uint32 { - // The C Freetype implementation (version 2.3.12) does "alpha := area>>1" without - // the +1. Round-to-nearest gives a more symmetric result than round-down. - // The C implementation also returns 8-bit alpha, not 32-bit alpha. - a := (area + 1) >> 1 - if a < 0 { - a = -a - } - alpha := uint32(a) - if r.UseNonZeroWinding { - if alpha > 0xffff { - alpha = 0xffff - } - } else { - alpha &= 0x1ffff - if alpha > 0x10000 { - alpha = 0x20000 - alpha - } else if alpha == 0x10000 { - alpha = 0x0ffff - } - } - alpha |= alpha << 16 - return alpha -} - -// Rasterize converts r's accumulated curves into Spans for p. The Spans -// passed to p are non-overlapping, and sorted by Y and then X. They all -// have non-zero width (and 0 <= X0 < X1 <= r.width) and non-zero A, except -// for the final Span, which has Y, X0, X1 and A all equal to zero. -func (r *Rasterizer) Rasterize(p Painter) { - r.saveCell() - s := 0 - for yi := 0; yi < len(r.cellIndex); yi++ { - xi, cover := 0, 0 - for c := r.cellIndex[yi]; c != -1; c = r.cell[c].next { - if cover != 0 && r.cell[c].xi > xi { - alpha := r.areaToAlpha(cover * 256 * 2) - if alpha != 0 { - xi0, xi1 := xi, r.cell[c].xi - if xi0 < 0 { - xi0 = 0 - } - if xi1 >= r.width { - xi1 = r.width - } - if xi0 < xi1 { - r.spanBuf[s] = Span{yi + r.Dy, xi0 + r.Dx, xi1 + r.Dx, alpha} - s++ - } - } - } - cover += r.cell[c].cover - alpha := r.areaToAlpha(cover*256*2 - r.cell[c].area) - xi = r.cell[c].xi + 1 - if alpha != 0 { - xi0, xi1 := r.cell[c].xi, xi - if xi0 < 0 { - xi0 = 0 - } - if xi1 >= r.width { - xi1 = r.width - } - if xi0 < xi1 { - r.spanBuf[s] = Span{yi + r.Dy, xi0 + r.Dx, xi1 + r.Dx, alpha} - s++ - } - } - if s > len(r.spanBuf)-2 { - p.Paint(r.spanBuf[:s], false) - s = 0 - } - } - } - p.Paint(r.spanBuf[:s], true) -} - -// Clear cancels any previous calls to r.Start or r.AddXxx. -func (r *Rasterizer) Clear() { - r.a = Point{} - r.xi = 0 - r.yi = 0 - r.area = 0 - r.cover = 0 - r.cell = r.cell[:0] - for i := 0; i < len(r.cellIndex); i++ { - r.cellIndex[i] = -1 - } -} - -// SetBounds sets the maximum width and height of the rasterized image and -// calls Clear. The width and height are in pixels, not Fix32 units. -func (r *Rasterizer) SetBounds(width, height int) { - if width < 0 { - width = 0 - } - if height < 0 { - height = 0 - } - // Use the same ssN heuristic as the C Freetype implementation. - // The C implementation uses the values 32, 16, but those are in - // 26.6 fixed point units, and we use 24.8 fixed point everywhere. - ss2, ss3 := 128, 64 - if width > 24 || height > 24 { - ss2, ss3 = 2*ss2, 2*ss3 - if width > 120 || height > 120 { - ss2, ss3 = 2*ss2, 2*ss3 - } - } - r.width = width - r.splitScale2 = ss2 - r.splitScale3 = ss3 - r.cell = r.cellBuf[:0] - if height > len(r.cellIndexBuf) { - r.cellIndex = make([]int, height) - } else { - r.cellIndex = r.cellIndexBuf[:height] - } - r.Clear() -} - -// NewRasterizer creates a new Rasterizer with the given bounds. -func NewRasterizer(width, height int) *Rasterizer { - r := new(Rasterizer) - r.SetBounds(width, height) - return r -} diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/raster/stroke.go b/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/raster/stroke.go deleted file mode 100644 index d49b1cee9..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/raster/stroke.go +++ /dev/null @@ -1,466 +0,0 @@ -// Copyright 2010 The Freetype-Go Authors. All rights reserved. -// Use of this source code is governed by your choice of either the -// FreeType License or the GNU General Public License version 2 (or -// any later version), both of which can be found in the LICENSE file. - -package raster - -// Two points are considered practically equal if the square of the distance -// between them is less than one quarter (i.e. 16384 / 65536 in Fix64). -const epsilon = 16384 - -// A Capper signifies how to begin or end a stroked path. -type Capper interface { - // Cap adds a cap to p given a pivot point and the normal vector of a - // terminal segment. The normal's length is half of the stroke width. - Cap(p Adder, halfWidth Fix32, pivot, n1 Point) -} - -// The CapperFunc type adapts an ordinary function to be a Capper. -type CapperFunc func(Adder, Fix32, Point, Point) - -func (f CapperFunc) Cap(p Adder, halfWidth Fix32, pivot, n1 Point) { - f(p, halfWidth, pivot, n1) -} - -// A Joiner signifies how to join interior nodes of a stroked path. -type Joiner interface { - // Join adds a join to the two sides of a stroked path given a pivot - // point and the normal vectors of the trailing and leading segments. - // Both normals have length equal to half of the stroke width. - Join(lhs, rhs Adder, halfWidth Fix32, pivot, n0, n1 Point) -} - -// The JoinerFunc type adapts an ordinary function to be a Joiner. -type JoinerFunc func(lhs, rhs Adder, halfWidth Fix32, pivot, n0, n1 Point) - -func (f JoinerFunc) Join(lhs, rhs Adder, halfWidth Fix32, pivot, n0, n1 Point) { - f(lhs, rhs, halfWidth, pivot, n0, n1) -} - -// RoundCapper adds round caps to a stroked path. -var RoundCapper Capper = CapperFunc(roundCapper) - -func roundCapper(p Adder, halfWidth Fix32, pivot, n1 Point) { - // The cubic Bézier approximation to a circle involves the magic number - // (√2 - 1) * 4/3, which is approximately 141/256. - const k = 141 - e := n1.Rot90CCW() - side := pivot.Add(e) - start, end := pivot.Sub(n1), pivot.Add(n1) - d, e := n1.Mul(k), e.Mul(k) - p.Add3(start.Add(e), side.Sub(d), side) - p.Add3(side.Add(d), end.Add(e), end) -} - -// ButtCapper adds butt caps to a stroked path. -var ButtCapper Capper = CapperFunc(buttCapper) - -func buttCapper(p Adder, halfWidth Fix32, pivot, n1 Point) { - p.Add1(pivot.Add(n1)) -} - -// SquareCapper adds square caps to a stroked path. -var SquareCapper Capper = CapperFunc(squareCapper) - -func squareCapper(p Adder, halfWidth Fix32, pivot, n1 Point) { - e := n1.Rot90CCW() - side := pivot.Add(e) - p.Add1(side.Sub(n1)) - p.Add1(side.Add(n1)) - p.Add1(pivot.Add(n1)) -} - -// RoundJoiner adds round joins to a stroked path. -var RoundJoiner Joiner = JoinerFunc(roundJoiner) - -func roundJoiner(lhs, rhs Adder, haflWidth Fix32, pivot, n0, n1 Point) { - dot := n0.Rot90CW().Dot(n1) - if dot >= 0 { - addArc(lhs, pivot, n0, n1) - rhs.Add1(pivot.Sub(n1)) - } else { - lhs.Add1(pivot.Add(n1)) - addArc(rhs, pivot, n0.Neg(), n1.Neg()) - } -} - -// BevelJoiner adds bevel joins to a stroked path. -var BevelJoiner Joiner = JoinerFunc(bevelJoiner) - -func bevelJoiner(lhs, rhs Adder, haflWidth Fix32, pivot, n0, n1 Point) { - lhs.Add1(pivot.Add(n1)) - rhs.Add1(pivot.Sub(n1)) -} - -// addArc adds a circular arc from pivot+n0 to pivot+n1 to p. The shorter of -// the two possible arcs is taken, i.e. the one spanning <= 180 degrees. -// The two vectors n0 and n1 must be of equal length. -func addArc(p Adder, pivot, n0, n1 Point) { - // r2 is the square of the length of n0. - r2 := n0.Dot(n0) - if r2 < epsilon { - // The arc radius is so small that we collapse to a straight line. - p.Add1(pivot.Add(n1)) - return - } - // We approximate the arc by 0, 1, 2 or 3 45-degree quadratic segments plus - // a final quadratic segment from s to n1. Each 45-degree segment has control - // points {1, 0}, {1, tan(Ï€/8)} and {1/√2, 1/√2} suitably scaled, rotated and - // translated. tan(Ï€/8) is approximately 106/256. - const tpo8 = 106 - var s Point - // We determine which octant the angle between n0 and n1 is in via three dot products. - // m0, m1 and m2 are n0 rotated clockwise by 45, 90 and 135 degrees. - m0 := n0.Rot45CW() - m1 := n0.Rot90CW() - m2 := m0.Rot90CW() - if m1.Dot(n1) >= 0 { - if n0.Dot(n1) >= 0 { - if m2.Dot(n1) <= 0 { - // n1 is between 0 and 45 degrees clockwise of n0. - s = n0 - } else { - // n1 is between 45 and 90 degrees clockwise of n0. - p.Add2(pivot.Add(n0).Add(m1.Mul(tpo8)), pivot.Add(m0)) - s = m0 - } - } else { - pm1, n0t := pivot.Add(m1), n0.Mul(tpo8) - p.Add2(pivot.Add(n0).Add(m1.Mul(tpo8)), pivot.Add(m0)) - p.Add2(pm1.Add(n0t), pm1) - if m0.Dot(n1) >= 0 { - // n1 is between 90 and 135 degrees clockwise of n0. - s = m1 - } else { - // n1 is between 135 and 180 degrees clockwise of n0. - p.Add2(pm1.Sub(n0t), pivot.Add(m2)) - s = m2 - } - } - } else { - if n0.Dot(n1) >= 0 { - if m0.Dot(n1) >= 0 { - // n1 is between 0 and 45 degrees counter-clockwise of n0. - s = n0 - } else { - // n1 is between 45 and 90 degrees counter-clockwise of n0. - p.Add2(pivot.Add(n0).Sub(m1.Mul(tpo8)), pivot.Sub(m2)) - s = m2.Neg() - } - } else { - pm1, n0t := pivot.Sub(m1), n0.Mul(tpo8) - p.Add2(pivot.Add(n0).Sub(m1.Mul(tpo8)), pivot.Sub(m2)) - p.Add2(pm1.Add(n0t), pm1) - if m2.Dot(n1) <= 0 { - // n1 is between 90 and 135 degrees counter-clockwise of n0. - s = m1.Neg() - } else { - // n1 is between 135 and 180 degrees counter-clockwise of n0. - p.Add2(pm1.Sub(n0t), pivot.Sub(m0)) - s = m0.Neg() - } - } - } - // The final quadratic segment has two endpoints s and n1 and the middle - // control point is a multiple of s.Add(n1), i.e. it is on the angle bisector - // of those two points. The multiple ranges between 128/256 and 150/256 as - // the angle between s and n1 ranges between 0 and 45 degrees. - // When the angle is 0 degrees (i.e. s and n1 are coincident) then s.Add(n1) - // is twice s and so the middle control point of the degenerate quadratic - // segment should be half s.Add(n1), and half = 128/256. - // When the angle is 45 degrees then 150/256 is the ratio of the lengths of - // the two vectors {1, tan(Ï€/8)} and {1 + 1/√2, 1/√2}. - // d is the normalized dot product between s and n1. Since the angle ranges - // between 0 and 45 degrees then d ranges between 256/256 and 181/256. - d := 256 * s.Dot(n1) / r2 - multiple := Fix32(150 - 22*(d-181)/(256-181)) - p.Add2(pivot.Add(s.Add(n1).Mul(multiple)), pivot.Add(n1)) -} - -// midpoint returns the midpoint of two Points. -func midpoint(a, b Point) Point { - return Point{(a.X + b.X) / 2, (a.Y + b.Y) / 2} -} - -// angleGreaterThan45 returns whether the angle between two vectors is more -// than 45 degrees. -func angleGreaterThan45(v0, v1 Point) bool { - v := v0.Rot45CCW() - return v.Dot(v1) < 0 || v.Rot90CW().Dot(v1) < 0 -} - -// interpolate returns the point (1-t)*a + t*b. -func interpolate(a, b Point, t Fix64) Point { - s := 65536 - t - x := s*Fix64(a.X) + t*Fix64(b.X) - y := s*Fix64(a.Y) + t*Fix64(b.Y) - return Point{Fix32(x >> 16), Fix32(y >> 16)} -} - -// curviest2 returns the value of t for which the quadratic parametric curve -// (1-t)²*a + 2*t*(1-t).b + t²*c has maximum curvature. -// -// The curvature of the parametric curve f(t) = (x(t), y(t)) is -// |x′y″-y′x″| / (x′²+y′²)^(3/2). -// -// Let d = b-a and e = c-2*b+a, so that f′(t) = 2*d+2*e*t and f″(t) = 2*e. -// The curvature's numerator is (2*dx+2*ex*t)*(2*ey)-(2*dy+2*ey*t)*(2*ex), -// which simplifies to 4*dx*ey-4*dy*ex, which is constant with respect to t. -// -// Thus, curvature is extreme where the denominator is extreme, i.e. where -// (x′²+y′²) is extreme. The first order condition is that -// 2*x′*x″+2*y′*y″ = 0, or (dx+ex*t)*ex + (dy+ey*t)*ey = 0. -// Solving for t gives t = -(dx*ex+dy*ey) / (ex*ex+ey*ey). -func curviest2(a, b, c Point) Fix64 { - dx := int64(b.X - a.X) - dy := int64(b.Y - a.Y) - ex := int64(c.X - 2*b.X + a.X) - ey := int64(c.Y - 2*b.Y + a.Y) - if ex == 0 && ey == 0 { - return 32768 - } - return Fix64(-65536 * (dx*ex + dy*ey) / (ex*ex + ey*ey)) -} - -// A stroker holds state for stroking a path. -type stroker struct { - // p is the destination that records the stroked path. - p Adder - // u is the half-width of the stroke. - u Fix32 - // cr and jr specify how to end and connect path segments. - cr Capper - jr Joiner - // r is the reverse path. Stroking a path involves constructing two - // parallel paths 2*u apart. The first path is added immediately to p, - // the second path is accumulated in r and eventually added in reverse. - r Path - // a is the most recent segment point. anorm is the segment normal of - // length u at that point. - a, anorm Point -} - -// addNonCurvy2 adds a quadratic segment to the stroker, where the segment -// defined by (k.a, b, c) achieves maximum curvature at either k.a or c. -func (k *stroker) addNonCurvy2(b, c Point) { - // We repeatedly divide the segment at its middle until it is straight - // enough to approximate the stroke by just translating the control points. - // ds and ps are stacks of depths and points. t is the top of the stack. - const maxDepth = 5 - var ( - ds [maxDepth + 1]int - ps [2*maxDepth + 3]Point - t int - ) - // Initially the ps stack has one quadratic segment of depth zero. - ds[0] = 0 - ps[2] = k.a - ps[1] = b - ps[0] = c - anorm := k.anorm - var cnorm Point - - for { - depth := ds[t] - a := ps[2*t+2] - b := ps[2*t+1] - c := ps[2*t+0] - ab := b.Sub(a) - bc := c.Sub(b) - abIsSmall := ab.Dot(ab) < Fix64(1<<16) - bcIsSmall := bc.Dot(bc) < Fix64(1<<16) - if abIsSmall && bcIsSmall { - // Approximate the segment by a circular arc. - cnorm = bc.Norm(k.u).Rot90CCW() - mac := midpoint(a, c) - addArc(k.p, mac, anorm, cnorm) - addArc(&k.r, mac, anorm.Neg(), cnorm.Neg()) - } else if depth < maxDepth && angleGreaterThan45(ab, bc) { - // Divide the segment in two and push both halves on the stack. - mab := midpoint(a, b) - mbc := midpoint(b, c) - t++ - ds[t+0] = depth + 1 - ds[t-1] = depth + 1 - ps[2*t+2] = a - ps[2*t+1] = mab - ps[2*t+0] = midpoint(mab, mbc) - ps[2*t-1] = mbc - continue - } else { - // Translate the control points. - bnorm := c.Sub(a).Norm(k.u).Rot90CCW() - cnorm = bc.Norm(k.u).Rot90CCW() - k.p.Add2(b.Add(bnorm), c.Add(cnorm)) - k.r.Add2(b.Sub(bnorm), c.Sub(cnorm)) - } - if t == 0 { - k.a, k.anorm = c, cnorm - return - } - t-- - anorm = cnorm - } - panic("unreachable") -} - -// Add1 adds a linear segment to the stroker. -func (k *stroker) Add1(b Point) { - bnorm := b.Sub(k.a).Norm(k.u).Rot90CCW() - if len(k.r) == 0 { - k.p.Start(k.a.Add(bnorm)) - k.r.Start(k.a.Sub(bnorm)) - } else { - k.jr.Join(k.p, &k.r, k.u, k.a, k.anorm, bnorm) - } - k.p.Add1(b.Add(bnorm)) - k.r.Add1(b.Sub(bnorm)) - k.a, k.anorm = b, bnorm -} - -// Add2 adds a quadratic segment to the stroker. -func (k *stroker) Add2(b, c Point) { - ab := b.Sub(k.a) - bc := c.Sub(b) - abnorm := ab.Norm(k.u).Rot90CCW() - if len(k.r) == 0 { - k.p.Start(k.a.Add(abnorm)) - k.r.Start(k.a.Sub(abnorm)) - } else { - k.jr.Join(k.p, &k.r, k.u, k.a, k.anorm, abnorm) - } - - // Approximate nearly-degenerate quadratics by linear segments. - abIsSmall := ab.Dot(ab) < epsilon - bcIsSmall := bc.Dot(bc) < epsilon - if abIsSmall || bcIsSmall { - acnorm := c.Sub(k.a).Norm(k.u).Rot90CCW() - k.p.Add1(c.Add(acnorm)) - k.r.Add1(c.Sub(acnorm)) - k.a, k.anorm = c, acnorm - return - } - - // The quadratic segment (k.a, b, c) has a point of maximum curvature. - // If this occurs at an end point, we process the segment as a whole. - t := curviest2(k.a, b, c) - if t <= 0 || t >= 65536 { - k.addNonCurvy2(b, c) - return - } - - // Otherwise, we perform a de Casteljau decomposition at the point of - // maximum curvature and process the two straighter parts. - mab := interpolate(k.a, b, t) - mbc := interpolate(b, c, t) - mabc := interpolate(mab, mbc, t) - - // If the vectors ab and bc are close to being in opposite directions, - // then the decomposition can become unstable, so we approximate the - // quadratic segment by two linear segments joined by an arc. - bcnorm := bc.Norm(k.u).Rot90CCW() - if abnorm.Dot(bcnorm) < -Fix64(k.u)*Fix64(k.u)*2047/2048 { - pArc := abnorm.Dot(bc) < 0 - - k.p.Add1(mabc.Add(abnorm)) - if pArc { - z := abnorm.Rot90CW() - addArc(k.p, mabc, abnorm, z) - addArc(k.p, mabc, z, bcnorm) - } - k.p.Add1(mabc.Add(bcnorm)) - k.p.Add1(c.Add(bcnorm)) - - k.r.Add1(mabc.Sub(abnorm)) - if !pArc { - z := abnorm.Rot90CW() - addArc(&k.r, mabc, abnorm.Neg(), z) - addArc(&k.r, mabc, z, bcnorm.Neg()) - } - k.r.Add1(mabc.Sub(bcnorm)) - k.r.Add1(c.Sub(bcnorm)) - - k.a, k.anorm = c, bcnorm - return - } - - // Process the decomposed parts. - k.addNonCurvy2(mab, mabc) - k.addNonCurvy2(mbc, c) -} - -// Add3 adds a cubic segment to the stroker. -func (k *stroker) Add3(b, c, d Point) { - panic("freetype/raster: stroke unimplemented for cubic segments") -} - -// stroke adds the stroked Path q to p, where q consists of exactly one curve. -func (k *stroker) stroke(q Path) { - // Stroking is implemented by deriving two paths each k.u apart from q. - // The left-hand-side path is added immediately to k.p; the right-hand-side - // path is accumulated in k.r. Once we've finished adding the LHS to k.p, - // we add the RHS in reverse order. - k.r = make(Path, 0, len(q)) - k.a = Point{q[1], q[2]} - for i := 4; i < len(q); { - switch q[i] { - case 1: - k.Add1(Point{q[i+1], q[i+2]}) - i += 4 - case 2: - k.Add2(Point{q[i+1], q[i+2]}, Point{q[i+3], q[i+4]}) - i += 6 - case 3: - k.Add3(Point{q[i+1], q[i+2]}, Point{q[i+3], q[i+4]}, Point{q[i+5], q[i+6]}) - i += 8 - default: - panic("freetype/raster: bad path") - } - } - if len(k.r) == 0 { - return - } - // TODO(nigeltao): if q is a closed curve then we should join the first and - // last segments instead of capping them. - k.cr.Cap(k.p, k.u, q.lastPoint(), k.anorm.Neg()) - addPathReversed(k.p, k.r) - pivot := q.firstPoint() - k.cr.Cap(k.p, k.u, pivot, pivot.Sub(Point{k.r[1], k.r[2]})) -} - -// Stroke adds q stroked with the given width to p. The result is typically -// self-intersecting and should be rasterized with UseNonZeroWinding. -// cr and jr may be nil, which defaults to a RoundCapper or RoundJoiner. -func Stroke(p Adder, q Path, width Fix32, cr Capper, jr Joiner) { - if len(q) == 0 { - return - } - if cr == nil { - cr = RoundCapper - } - if jr == nil { - jr = RoundJoiner - } - if q[0] != 0 { - panic("freetype/raster: bad path") - } - s := stroker{p: p, u: width / 2, cr: cr, jr: jr} - i := 0 - for j := 4; j < len(q); { - switch q[j] { - case 0: - s.stroke(q[i:j]) - i, j = j, j+4 - case 1: - j += 4 - case 2: - j += 6 - case 3: - j += 8 - default: - panic("freetype/raster: bad path") - } - } - s.stroke(q[i:]) -} diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/truetype/glyph.go b/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/truetype/glyph.go deleted file mode 100644 index b5f327851..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/truetype/glyph.go +++ /dev/null @@ -1,530 +0,0 @@ -// Copyright 2010 The Freetype-Go Authors. All rights reserved. -// Use of this source code is governed by your choice of either the -// FreeType License or the GNU General Public License version 2 (or -// any later version), both of which can be found in the LICENSE file. - -package truetype - -// Hinting is the policy for snapping a glyph's contours to pixel boundaries. -type Hinting int32 - -const ( - // NoHinting means to not perform any hinting. - NoHinting Hinting = iota - // FullHinting means to use the font's hinting instructions. - FullHinting - - // TODO: implement VerticalHinting. -) - -// A Point is a co-ordinate pair plus whether it is ``on'' a contour or an -// ``off'' control point. -type Point struct { - X, Y int32 - // The Flags' LSB means whether or not this Point is ``on'' the contour. - // Other bits are reserved for internal use. - Flags uint32 -} - -// A GlyphBuf holds a glyph's contours. A GlyphBuf can be re-used to load a -// series of glyphs from a Font. -type GlyphBuf struct { - // AdvanceWidth is the glyph's advance width. - AdvanceWidth int32 - // B is the glyph's bounding box. - B Bounds - // Point contains all Points from all contours of the glyph. If - // hinting was used to load a glyph then Unhinted contains those - // Points before they were hinted, and InFontUnits contains those - // Points before they were hinted and scaled. - Point, Unhinted, InFontUnits []Point - // End is the point indexes of the end point of each countour. The - // length of End is the number of contours in the glyph. The i'th - // contour consists of points Point[End[i-1]:End[i]], where End[-1] - // is interpreted to mean zero. - End []int - - font *Font - scale int32 - hinting Hinting - hinter hinter - // phantomPoints are the co-ordinates of the synthetic phantom points - // used for hinting and bounding box calculations. - phantomPoints [4]Point - // pp1x is the X co-ordinate of the first phantom point. The '1' is - // using 1-based indexing; pp1x is almost always phantomPoints[0].X. - // TODO: eliminate this and consistently use phantomPoints[0].X. - pp1x int32 - // metricsSet is whether the glyph's metrics have been set yet. For a - // compound glyph, a sub-glyph may override the outer glyph's metrics. - metricsSet bool - // tmp is a scratch buffer. - tmp []Point -} - -// Flags for decoding a glyph's contours. These flags are documented at -// http://developer.apple.com/fonts/TTRefMan/RM06/Chap6glyf.html. -const ( - flagOnCurve = 1 << iota - flagXShortVector - flagYShortVector - flagRepeat - flagPositiveXShortVector - flagPositiveYShortVector - - // The remaining flags are for internal use. - flagTouchedX - flagTouchedY -) - -// The same flag bits (0x10 and 0x20) are overloaded to have two meanings, -// dependent on the value of the flag{X,Y}ShortVector bits. -const ( - flagThisXIsSame = flagPositiveXShortVector - flagThisYIsSame = flagPositiveYShortVector -) - -// Load loads a glyph's contours from a Font, overwriting any previously -// loaded contours for this GlyphBuf. scale is the number of 26.6 fixed point -// units in 1 em, i is the glyph index, and h is the hinting policy. -func (g *GlyphBuf) Load(f *Font, scale int32, i Index, h Hinting) error { - g.Point = g.Point[:0] - g.Unhinted = g.Unhinted[:0] - g.InFontUnits = g.InFontUnits[:0] - g.End = g.End[:0] - g.font = f - g.hinting = h - g.scale = scale - g.pp1x = 0 - g.phantomPoints = [4]Point{} - g.metricsSet = false - - if h != NoHinting { - if err := g.hinter.init(f, scale); err != nil { - return err - } - } - if err := g.load(0, i, true); err != nil { - return err - } - // TODO: this selection of either g.pp1x or g.phantomPoints[0].X isn't ideal, - // and should be cleaned up once we have all the testScaling tests passing, - // plus additional tests for Freetype-Go's bounding boxes matching C Freetype's. - pp1x := g.pp1x - if h != NoHinting { - pp1x = g.phantomPoints[0].X - } - if pp1x != 0 { - for i := range g.Point { - g.Point[i].X -= pp1x - } - } - - advanceWidth := g.phantomPoints[1].X - g.phantomPoints[0].X - if h != NoHinting { - if len(f.hdmx) >= 8 { - if n := u32(f.hdmx, 4); n > 3+uint32(i) { - for hdmx := f.hdmx[8:]; uint32(len(hdmx)) >= n; hdmx = hdmx[n:] { - if int32(hdmx[0]) == scale>>6 { - advanceWidth = int32(hdmx[2+i]) << 6 - break - } - } - } - } - advanceWidth = (advanceWidth + 32) &^ 63 - } - g.AdvanceWidth = advanceWidth - - // Set g.B to the 'control box', which is the bounding box of the Bézier - // curves' control points. This is easier to calculate, no smaller than - // and often equal to the tightest possible bounding box of the curves - // themselves. This approach is what C Freetype does. We can't just scale - // the nominal bounding box in the glyf data as the hinting process and - // phantom point adjustment may move points outside of that box. - if len(g.Point) == 0 { - g.B = Bounds{} - } else { - p := g.Point[0] - g.B.XMin = p.X - g.B.XMax = p.X - g.B.YMin = p.Y - g.B.YMax = p.Y - for _, p := range g.Point[1:] { - if g.B.XMin > p.X { - g.B.XMin = p.X - } else if g.B.XMax < p.X { - g.B.XMax = p.X - } - if g.B.YMin > p.Y { - g.B.YMin = p.Y - } else if g.B.YMax < p.Y { - g.B.YMax = p.Y - } - } - // Snap the box to the grid, if hinting is on. - if h != NoHinting { - g.B.XMin &^= 63 - g.B.YMin &^= 63 - g.B.XMax += 63 - g.B.XMax &^= 63 - g.B.YMax += 63 - g.B.YMax &^= 63 - } - } - return nil -} - -func (g *GlyphBuf) load(recursion int32, i Index, useMyMetrics bool) (err error) { - // The recursion limit here is arbitrary, but defends against malformed glyphs. - if recursion >= 32 { - return UnsupportedError("excessive compound glyph recursion") - } - // Find the relevant slice of g.font.glyf. - var g0, g1 uint32 - if g.font.locaOffsetFormat == locaOffsetFormatShort { - g0 = 2 * uint32(u16(g.font.loca, 2*int(i))) - g1 = 2 * uint32(u16(g.font.loca, 2*int(i)+2)) - } else { - g0 = u32(g.font.loca, 4*int(i)) - g1 = u32(g.font.loca, 4*int(i)+4) - } - - // Decode the contour count and nominal bounding box, from the first - // 10 bytes of the glyf data. boundsYMin and boundsXMax, at offsets 4 - // and 6, are unused. - glyf, ne, boundsXMin, boundsYMax := []byte(nil), 0, int32(0), int32(0) - if g0+10 <= g1 { - glyf = g.font.glyf[g0:g1] - ne = int(int16(u16(glyf, 0))) - boundsXMin = int32(int16(u16(glyf, 2))) - boundsYMax = int32(int16(u16(glyf, 8))) - } - - // Create the phantom points. - uhm, pp1x := g.font.unscaledHMetric(i), int32(0) - uvm := g.font.unscaledVMetric(i, boundsYMax) - g.phantomPoints = [4]Point{ - {X: boundsXMin - uhm.LeftSideBearing}, - {X: boundsXMin - uhm.LeftSideBearing + uhm.AdvanceWidth}, - {X: uhm.AdvanceWidth / 2, Y: boundsYMax + uvm.TopSideBearing}, - {X: uhm.AdvanceWidth / 2, Y: boundsYMax + uvm.TopSideBearing - uvm.AdvanceHeight}, - } - if len(glyf) == 0 { - g.addPhantomsAndScale(len(g.Point), len(g.Point), true, true) - copy(g.phantomPoints[:], g.Point[len(g.Point)-4:]) - g.Point = g.Point[:len(g.Point)-4] - return nil - } - - // Load and hint the contours. - if ne < 0 { - if ne != -1 { - // http://developer.apple.com/fonts/TTRefMan/RM06/Chap6glyf.html says that - // "the values -2, -3, and so forth, are reserved for future use." - return UnsupportedError("negative number of contours") - } - pp1x = g.font.scale(g.scale * (boundsXMin - uhm.LeftSideBearing)) - if err := g.loadCompound(recursion, uhm, i, glyf, useMyMetrics); err != nil { - return err - } - } else { - np0, ne0 := len(g.Point), len(g.End) - program := g.loadSimple(glyf, ne) - g.addPhantomsAndScale(np0, np0, true, true) - pp1x = g.Point[len(g.Point)-4].X - if g.hinting != NoHinting { - if len(program) != 0 { - err := g.hinter.run( - program, - g.Point[np0:], - g.Unhinted[np0:], - g.InFontUnits[np0:], - g.End[ne0:], - ) - if err != nil { - return err - } - } - // Drop the four phantom points. - g.InFontUnits = g.InFontUnits[:len(g.InFontUnits)-4] - g.Unhinted = g.Unhinted[:len(g.Unhinted)-4] - } - if useMyMetrics { - copy(g.phantomPoints[:], g.Point[len(g.Point)-4:]) - } - g.Point = g.Point[:len(g.Point)-4] - if np0 != 0 { - // The hinting program expects the []End values to be indexed relative - // to the inner glyph, not the outer glyph, so we delay adding np0 until - // after the hinting program (if any) has run. - for i := ne0; i < len(g.End); i++ { - g.End[i] += np0 - } - } - } - if useMyMetrics && !g.metricsSet { - g.metricsSet = true - g.pp1x = pp1x - } - return nil -} - -// loadOffset is the initial offset for loadSimple and loadCompound. The first -// 10 bytes are the number of contours and the bounding box. -const loadOffset = 10 - -func (g *GlyphBuf) loadSimple(glyf []byte, ne int) (program []byte) { - offset := loadOffset - for i := 0; i < ne; i++ { - g.End = append(g.End, 1+int(u16(glyf, offset))) - offset += 2 - } - - // Note the TrueType hinting instructions. - instrLen := int(u16(glyf, offset)) - offset += 2 - program = glyf[offset : offset+instrLen] - offset += instrLen - - np0 := len(g.Point) - np1 := np0 + int(g.End[len(g.End)-1]) - - // Decode the flags. - for i := np0; i < np1; { - c := uint32(glyf[offset]) - offset++ - g.Point = append(g.Point, Point{Flags: c}) - i++ - if c&flagRepeat != 0 { - count := glyf[offset] - offset++ - for ; count > 0; count-- { - g.Point = append(g.Point, Point{Flags: c}) - i++ - } - } - } - - // Decode the co-ordinates. - var x int16 - for i := np0; i < np1; i++ { - f := g.Point[i].Flags - if f&flagXShortVector != 0 { - dx := int16(glyf[offset]) - offset++ - if f&flagPositiveXShortVector == 0 { - x -= dx - } else { - x += dx - } - } else if f&flagThisXIsSame == 0 { - x += int16(u16(glyf, offset)) - offset += 2 - } - g.Point[i].X = int32(x) - } - var y int16 - for i := np0; i < np1; i++ { - f := g.Point[i].Flags - if f&flagYShortVector != 0 { - dy := int16(glyf[offset]) - offset++ - if f&flagPositiveYShortVector == 0 { - y -= dy - } else { - y += dy - } - } else if f&flagThisYIsSame == 0 { - y += int16(u16(glyf, offset)) - offset += 2 - } - g.Point[i].Y = int32(y) - } - - return program -} - -func (g *GlyphBuf) loadCompound(recursion int32, uhm HMetric, i Index, - glyf []byte, useMyMetrics bool) error { - - // Flags for decoding a compound glyph. These flags are documented at - // http://developer.apple.com/fonts/TTRefMan/RM06/Chap6glyf.html. - const ( - flagArg1And2AreWords = 1 << iota - flagArgsAreXYValues - flagRoundXYToGrid - flagWeHaveAScale - flagUnused - flagMoreComponents - flagWeHaveAnXAndYScale - flagWeHaveATwoByTwo - flagWeHaveInstructions - flagUseMyMetrics - flagOverlapCompound - ) - np0, ne0 := len(g.Point), len(g.End) - offset := loadOffset - for { - flags := u16(glyf, offset) - component := Index(u16(glyf, offset+2)) - dx, dy, transform, hasTransform := int32(0), int32(0), [4]int32{}, false - if flags&flagArg1And2AreWords != 0 { - dx = int32(int16(u16(glyf, offset+4))) - dy = int32(int16(u16(glyf, offset+6))) - offset += 8 - } else { - dx = int32(int16(int8(glyf[offset+4]))) - dy = int32(int16(int8(glyf[offset+5]))) - offset += 6 - } - if flags&flagArgsAreXYValues == 0 { - return UnsupportedError("compound glyph transform vector") - } - if flags&(flagWeHaveAScale|flagWeHaveAnXAndYScale|flagWeHaveATwoByTwo) != 0 { - hasTransform = true - switch { - case flags&flagWeHaveAScale != 0: - transform[0] = int32(int16(u16(glyf, offset+0))) - transform[3] = transform[0] - offset += 2 - case flags&flagWeHaveAnXAndYScale != 0: - transform[0] = int32(int16(u16(glyf, offset+0))) - transform[3] = int32(int16(u16(glyf, offset+2))) - offset += 4 - case flags&flagWeHaveATwoByTwo != 0: - transform[0] = int32(int16(u16(glyf, offset+0))) - transform[1] = int32(int16(u16(glyf, offset+2))) - transform[2] = int32(int16(u16(glyf, offset+4))) - transform[3] = int32(int16(u16(glyf, offset+6))) - offset += 8 - } - } - savedPP := g.phantomPoints - np0 := len(g.Point) - componentUMM := useMyMetrics && (flags&flagUseMyMetrics != 0) - if err := g.load(recursion+1, component, componentUMM); err != nil { - return err - } - if flags&flagUseMyMetrics == 0 { - g.phantomPoints = savedPP - } - if hasTransform { - for j := np0; j < len(g.Point); j++ { - p := &g.Point[j] - newX := int32((int64(p.X)*int64(transform[0])+1<<13)>>14) + - int32((int64(p.Y)*int64(transform[2])+1<<13)>>14) - newY := int32((int64(p.X)*int64(transform[1])+1<<13)>>14) + - int32((int64(p.Y)*int64(transform[3])+1<<13)>>14) - p.X, p.Y = newX, newY - } - } - dx = g.font.scale(g.scale * dx) - dy = g.font.scale(g.scale * dy) - if flags&flagRoundXYToGrid != 0 { - dx = (dx + 32) &^ 63 - dy = (dy + 32) &^ 63 - } - for j := np0; j < len(g.Point); j++ { - p := &g.Point[j] - p.X += dx - p.Y += dy - } - // TODO: also adjust g.InFontUnits and g.Unhinted? - if flags&flagMoreComponents == 0 { - break - } - } - - instrLen := 0 - if g.hinting != NoHinting && offset+2 <= len(glyf) { - instrLen = int(u16(glyf, offset)) - offset += 2 - } - - g.addPhantomsAndScale(np0, len(g.Point), false, instrLen > 0) - points, ends := g.Point[np0:], g.End[ne0:] - g.Point = g.Point[:len(g.Point)-4] - for j := range points { - points[j].Flags &^= flagTouchedX | flagTouchedY - } - - if instrLen == 0 { - if !g.metricsSet { - copy(g.phantomPoints[:], points[len(points)-4:]) - } - return nil - } - - // Hint the compound glyph. - program := glyf[offset : offset+instrLen] - // Temporarily adjust the ends to be relative to this compound glyph. - if np0 != 0 { - for i := range ends { - ends[i] -= np0 - } - } - // Hinting instructions of a composite glyph completely refer to the - // (already) hinted subglyphs. - g.tmp = append(g.tmp[:0], points...) - if err := g.hinter.run(program, points, g.tmp, g.tmp, ends); err != nil { - return err - } - if np0 != 0 { - for i := range ends { - ends[i] += np0 - } - } - if !g.metricsSet { - copy(g.phantomPoints[:], points[len(points)-4:]) - } - return nil -} - -func (g *GlyphBuf) addPhantomsAndScale(np0, np1 int, simple, adjust bool) { - // Add the four phantom points. - g.Point = append(g.Point, g.phantomPoints[:]...) - // Scale the points. - if simple && g.hinting != NoHinting { - g.InFontUnits = append(g.InFontUnits, g.Point[np1:]...) - } - for i := np1; i < len(g.Point); i++ { - p := &g.Point[i] - p.X = g.font.scale(g.scale * p.X) - p.Y = g.font.scale(g.scale * p.Y) - } - if g.hinting == NoHinting { - return - } - // Round the 1st phantom point to the grid, shifting all other points equally. - // Note that "all other points" starts from np0, not np1. - // TODO: delete this adjustment and the np0/np1 distinction, when - // we update the compatibility tests to C Freetype 2.5.3. - // See http://git.savannah.gnu.org/cgit/freetype/freetype2.git/commit/?id=05c786d990390a7ca18e62962641dac740bacb06 - if adjust { - pp1x := g.Point[len(g.Point)-4].X - if dx := ((pp1x + 32) &^ 63) - pp1x; dx != 0 { - for i := np0; i < len(g.Point); i++ { - g.Point[i].X += dx - } - } - } - if simple { - g.Unhinted = append(g.Unhinted, g.Point[np1:]...) - } - // Round the 2nd and 4th phantom point to the grid. - p := &g.Point[len(g.Point)-3] - p.X = (p.X + 32) &^ 63 - p = &g.Point[len(g.Point)-1] - p.Y = (p.Y + 32) &^ 63 -} - -// TODO: is this necessary? The zero-valued GlyphBuf is perfectly usable. - -// NewGlyphBuf returns a newly allocated GlyphBuf. -func NewGlyphBuf() *GlyphBuf { - return &GlyphBuf{ - Point: make([]Point, 0, 256), - End: make([]int, 0, 32), - } -} diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/truetype/hint.go b/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/truetype/hint.go deleted file mode 100644 index 26c631436..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/truetype/hint.go +++ /dev/null @@ -1,1764 +0,0 @@ -// Copyright 2012 The Freetype-Go Authors. All rights reserved. -// Use of this source code is governed by your choice of either the -// FreeType License or the GNU General Public License version 2 (or -// any later version), both of which can be found in the LICENSE file. - -package truetype - -// This file implements a Truetype bytecode interpreter. -// The opcodes are described at https://developer.apple.com/fonts/TTRefMan/RM05/Chap5.html - -import ( - "errors" - "math" -) - -const ( - twilightZone = 0 - glyphZone = 1 - numZone = 2 -) - -type pointType uint32 - -const ( - current pointType = 0 - unhinted pointType = 1 - inFontUnits pointType = 2 - numPointType = 3 -) - -// callStackEntry is a bytecode call stack entry. -type callStackEntry struct { - program []byte - pc int - loopCount int32 -} - -// hinter implements bytecode hinting. A hinter can be re-used to hint a series -// of glyphs from a Font. -type hinter struct { - stack, store []int32 - - // functions is a map from function number to bytecode. - functions map[int32][]byte - - // font and scale are the font and scale last used for this hinter. - // Changing the font will require running the new font's fpgm bytecode. - // Changing either will require running the font's prep bytecode. - font *Font - scale int32 - - // gs and defaultGS are the current and default graphics state. The - // default graphics state is the global default graphics state after - // the font's fpgm and prep programs have been run. - gs, defaultGS graphicsState - - // points and ends are the twilight zone's points, glyph's points - // and glyph's contour boundaries. - points [numZone][numPointType][]Point - ends []int - - // scaledCVT is the lazily initialized scaled Control Value Table. - scaledCVTInitialized bool - scaledCVT []f26dot6 -} - -// graphicsState is described at https://developer.apple.com/fonts/TTRefMan/RM04/Chap4.html -type graphicsState struct { - // Projection vector, freedom vector and dual projection vector. - pv, fv, dv [2]f2dot14 - // Reference points and zone pointers. - rp, zp [3]int32 - // Control Value / Single Width Cut-In. - controlValueCutIn, singleWidthCutIn, singleWidth f26dot6 - // Delta base / shift. - deltaBase, deltaShift int32 - // Minimum distance. - minDist f26dot6 - // Loop count. - loop int32 - // Rounding policy. - roundPeriod, roundPhase, roundThreshold f26dot6 - roundSuper45 bool - // Auto-flip. - autoFlip bool -} - -var globalDefaultGS = graphicsState{ - pv: [2]f2dot14{0x4000, 0}, // Unit vector along the X axis. - fv: [2]f2dot14{0x4000, 0}, - dv: [2]f2dot14{0x4000, 0}, - zp: [3]int32{1, 1, 1}, - controlValueCutIn: (17 << 6) / 16, // 17/16 as an f26dot6. - deltaBase: 9, - deltaShift: 3, - minDist: 1 << 6, // 1 as an f26dot6. - loop: 1, - roundPeriod: 1 << 6, // 1 as an f26dot6. - roundThreshold: 1 << 5, // 1/2 as an f26dot6. - roundSuper45: false, - autoFlip: true, -} - -func resetTwilightPoints(f *Font, p []Point) []Point { - if n := int(f.maxTwilightPoints) + 4; n <= cap(p) { - p = p[:n] - for i := range p { - p[i] = Point{} - } - } else { - p = make([]Point, n) - } - return p -} - -func (h *hinter) init(f *Font, scale int32) error { - h.points[twilightZone][0] = resetTwilightPoints(f, h.points[twilightZone][0]) - h.points[twilightZone][1] = resetTwilightPoints(f, h.points[twilightZone][1]) - h.points[twilightZone][2] = resetTwilightPoints(f, h.points[twilightZone][2]) - - rescale := h.scale != scale - if h.font != f { - h.font, rescale = f, true - if h.functions == nil { - h.functions = make(map[int32][]byte) - } else { - for k := range h.functions { - delete(h.functions, k) - } - } - - if x := int(f.maxStackElements); x > len(h.stack) { - x += 255 - x &^= 255 - h.stack = make([]int32, x) - } - if x := int(f.maxStorage); x > len(h.store) { - x += 15 - x &^= 15 - h.store = make([]int32, x) - } - if len(f.fpgm) != 0 { - if err := h.run(f.fpgm, nil, nil, nil, nil); err != nil { - return err - } - } - } - - if rescale { - h.scale = scale - h.scaledCVTInitialized = false - - h.defaultGS = globalDefaultGS - - if len(f.prep) != 0 { - if err := h.run(f.prep, nil, nil, nil, nil); err != nil { - return err - } - h.defaultGS = h.gs - // The MS rasterizer doesn't allow the following graphics state - // variables to be modified by the CVT program. - h.defaultGS.pv = globalDefaultGS.pv - h.defaultGS.fv = globalDefaultGS.fv - h.defaultGS.dv = globalDefaultGS.dv - h.defaultGS.rp = globalDefaultGS.rp - h.defaultGS.zp = globalDefaultGS.zp - h.defaultGS.loop = globalDefaultGS.loop - } - } - return nil -} - -func (h *hinter) run(program []byte, pCurrent, pUnhinted, pInFontUnits []Point, ends []int) error { - h.gs = h.defaultGS - h.points[glyphZone][current] = pCurrent - h.points[glyphZone][unhinted] = pUnhinted - h.points[glyphZone][inFontUnits] = pInFontUnits - h.ends = ends - - if len(program) > 50000 { - return errors.New("truetype: hinting: too many instructions") - } - var ( - steps, pc, top int - opcode uint8 - - callStack [32]callStackEntry - callStackTop int - ) - - for 0 <= pc && pc < len(program) { - steps++ - if steps == 100000 { - return errors.New("truetype: hinting: too many steps") - } - opcode = program[pc] - if top < int(popCount[opcode]) { - return errors.New("truetype: hinting: stack underflow") - } - switch opcode { - - case opSVTCA0: - h.gs.pv = [2]f2dot14{0, 0x4000} - h.gs.fv = [2]f2dot14{0, 0x4000} - h.gs.dv = [2]f2dot14{0, 0x4000} - - case opSVTCA1: - h.gs.pv = [2]f2dot14{0x4000, 0} - h.gs.fv = [2]f2dot14{0x4000, 0} - h.gs.dv = [2]f2dot14{0x4000, 0} - - case opSPVTCA0: - h.gs.pv = [2]f2dot14{0, 0x4000} - h.gs.dv = [2]f2dot14{0, 0x4000} - - case opSPVTCA1: - h.gs.pv = [2]f2dot14{0x4000, 0} - h.gs.dv = [2]f2dot14{0x4000, 0} - - case opSFVTCA0: - h.gs.fv = [2]f2dot14{0, 0x4000} - - case opSFVTCA1: - h.gs.fv = [2]f2dot14{0x4000, 0} - - case opSPVTL0, opSPVTL1, opSFVTL0, opSFVTL1: - top -= 2 - p1 := h.point(0, current, h.stack[top+0]) - p2 := h.point(0, current, h.stack[top+1]) - if p1 == nil || p2 == nil { - return errors.New("truetype: hinting: point out of range") - } - dx := f2dot14(p1.X - p2.X) - dy := f2dot14(p1.Y - p2.Y) - if dx == 0 && dy == 0 { - dx = 0x4000 - } else if opcode&1 != 0 { - // Counter-clockwise rotation. - dx, dy = -dy, dx - } - v := normalize(dx, dy) - if opcode < opSFVTL0 { - h.gs.pv = v - h.gs.dv = v - } else { - h.gs.fv = v - } - - case opSPVFS: - top -= 2 - h.gs.pv = normalize(f2dot14(h.stack[top]), f2dot14(h.stack[top+1])) - h.gs.dv = h.gs.pv - - case opSFVFS: - top -= 2 - h.gs.fv = normalize(f2dot14(h.stack[top]), f2dot14(h.stack[top+1])) - - case opGPV: - if top+1 >= len(h.stack) { - return errors.New("truetype: hinting: stack overflow") - } - h.stack[top+0] = int32(h.gs.pv[0]) - h.stack[top+1] = int32(h.gs.pv[1]) - top += 2 - - case opGFV: - if top+1 >= len(h.stack) { - return errors.New("truetype: hinting: stack overflow") - } - h.stack[top+0] = int32(h.gs.fv[0]) - h.stack[top+1] = int32(h.gs.fv[1]) - top += 2 - - case opSFVTPV: - h.gs.fv = h.gs.pv - - case opISECT: - top -= 5 - p := h.point(2, current, h.stack[top+0]) - a0 := h.point(1, current, h.stack[top+1]) - a1 := h.point(1, current, h.stack[top+2]) - b0 := h.point(0, current, h.stack[top+3]) - b1 := h.point(0, current, h.stack[top+4]) - if p == nil || a0 == nil || a1 == nil || b0 == nil || b1 == nil { - return errors.New("truetype: hinting: point out of range") - } - - dbx := b1.X - b0.X - dby := b1.Y - b0.Y - dax := a1.X - a0.X - day := a1.Y - a0.Y - dx := b0.X - a0.X - dy := b0.Y - a0.Y - discriminant := mulDiv(int64(dax), int64(-dby), 0x40) + - mulDiv(int64(day), int64(dbx), 0x40) - dotProduct := mulDiv(int64(dax), int64(dbx), 0x40) + - mulDiv(int64(day), int64(dby), 0x40) - // The discriminant above is actually a cross product of vectors - // da and db. Together with the dot product, they can be used as - // surrogates for sine and cosine of the angle between the vectors. - // Indeed, - // dotproduct = |da||db|cos(angle) - // discriminant = |da||db|sin(angle) - // We use these equations to reject grazing intersections by - // thresholding abs(tan(angle)) at 1/19, corresponding to 3 degrees. - absDisc, absDotP := discriminant, dotProduct - if absDisc < 0 { - absDisc = -absDisc - } - if absDotP < 0 { - absDotP = -absDotP - } - if 19*absDisc > absDotP { - val := mulDiv(int64(dx), int64(-dby), 0x40) + - mulDiv(int64(dy), int64(dbx), 0x40) - rx := mulDiv(val, int64(dax), discriminant) - ry := mulDiv(val, int64(day), discriminant) - p.X = a0.X + int32(rx) - p.Y = a0.Y + int32(ry) - } else { - p.X = (a0.X + a1.X + b0.X + b1.X) / 4 - p.Y = (a0.Y + a1.Y + b0.Y + b1.Y) / 4 - } - p.Flags |= flagTouchedX | flagTouchedY - - case opSRP0, opSRP1, opSRP2: - top-- - h.gs.rp[opcode-opSRP0] = h.stack[top] - - case opSZP0, opSZP1, opSZP2: - top-- - h.gs.zp[opcode-opSZP0] = h.stack[top] - - case opSZPS: - top-- - h.gs.zp[0] = h.stack[top] - h.gs.zp[1] = h.stack[top] - h.gs.zp[2] = h.stack[top] - - case opSLOOP: - top-- - if h.stack[top] <= 0 { - return errors.New("truetype: hinting: invalid data") - } - h.gs.loop = h.stack[top] - - case opRTG: - h.gs.roundPeriod = 1 << 6 - h.gs.roundPhase = 0 - h.gs.roundThreshold = 1 << 5 - h.gs.roundSuper45 = false - - case opRTHG: - h.gs.roundPeriod = 1 << 6 - h.gs.roundPhase = 1 << 5 - h.gs.roundThreshold = 1 << 5 - h.gs.roundSuper45 = false - - case opSMD: - top-- - h.gs.minDist = f26dot6(h.stack[top]) - - case opELSE: - opcode = 1 - goto ifelse - - case opJMPR: - top-- - pc += int(h.stack[top]) - continue - - case opSCVTCI: - top-- - h.gs.controlValueCutIn = f26dot6(h.stack[top]) - - case opSSWCI: - top-- - h.gs.singleWidthCutIn = f26dot6(h.stack[top]) - - case opSSW: - top-- - h.gs.singleWidth = f26dot6(h.font.scale(h.scale * h.stack[top])) - - case opDUP: - if top >= len(h.stack) { - return errors.New("truetype: hinting: stack overflow") - } - h.stack[top] = h.stack[top-1] - top++ - - case opPOP: - top-- - - case opCLEAR: - top = 0 - - case opSWAP: - h.stack[top-1], h.stack[top-2] = h.stack[top-2], h.stack[top-1] - - case opDEPTH: - if top >= len(h.stack) { - return errors.New("truetype: hinting: stack overflow") - } - h.stack[top] = int32(top) - top++ - - case opCINDEX, opMINDEX: - x := int(h.stack[top-1]) - if x <= 0 || x >= top { - return errors.New("truetype: hinting: invalid data") - } - h.stack[top-1] = h.stack[top-1-x] - if opcode == opMINDEX { - copy(h.stack[top-1-x:top-1], h.stack[top-x:top]) - top-- - } - - case opALIGNPTS: - top -= 2 - p := h.point(1, current, h.stack[top]) - q := h.point(0, current, h.stack[top+1]) - if p == nil || q == nil { - return errors.New("truetype: hinting: point out of range") - } - d := dotProduct(f26dot6(q.X-p.X), f26dot6(q.Y-p.Y), h.gs.pv) / 2 - h.move(p, +d, true) - h.move(q, -d, true) - - case opUTP: - top-- - p := h.point(0, current, h.stack[top]) - if p == nil { - return errors.New("truetype: hinting: point out of range") - } - p.Flags &^= flagTouchedX | flagTouchedY - - case opLOOPCALL, opCALL: - if callStackTop >= len(callStack) { - return errors.New("truetype: hinting: call stack overflow") - } - top-- - f, ok := h.functions[h.stack[top]] - if !ok { - return errors.New("truetype: hinting: undefined function") - } - callStack[callStackTop] = callStackEntry{program, pc, 1} - if opcode == opLOOPCALL { - top-- - if h.stack[top] == 0 { - break - } - callStack[callStackTop].loopCount = h.stack[top] - } - callStackTop++ - program, pc = f, 0 - continue - - case opFDEF: - // Save all bytecode up until the next ENDF. - startPC := pc + 1 - fdefloop: - for { - pc++ - if pc >= len(program) { - return errors.New("truetype: hinting: unbalanced FDEF") - } - switch program[pc] { - case opFDEF: - return errors.New("truetype: hinting: nested FDEF") - case opENDF: - top-- - h.functions[h.stack[top]] = program[startPC : pc+1] - break fdefloop - default: - var ok bool - pc, ok = skipInstructionPayload(program, pc) - if !ok { - return errors.New("truetype: hinting: unbalanced FDEF") - } - } - } - - case opENDF: - if callStackTop == 0 { - return errors.New("truetype: hinting: call stack underflow") - } - callStackTop-- - callStack[callStackTop].loopCount-- - if callStack[callStackTop].loopCount != 0 { - callStackTop++ - pc = 0 - continue - } - program, pc = callStack[callStackTop].program, callStack[callStackTop].pc - - case opMDAP0, opMDAP1: - top-- - i := h.stack[top] - p := h.point(0, current, i) - if p == nil { - return errors.New("truetype: hinting: point out of range") - } - distance := f26dot6(0) - if opcode == opMDAP1 { - distance = dotProduct(f26dot6(p.X), f26dot6(p.Y), h.gs.pv) - // TODO: metrics compensation. - distance = h.round(distance) - distance - } - h.move(p, distance, true) - h.gs.rp[0] = i - h.gs.rp[1] = i - - case opIUP0, opIUP1: - iupY, mask := opcode == opIUP0, uint32(flagTouchedX) - if iupY { - mask = flagTouchedY - } - prevEnd := 0 - for _, end := range h.ends { - for i := prevEnd; i < end; i++ { - for i < end && h.points[glyphZone][current][i].Flags&mask == 0 { - i++ - } - if i == end { - break - } - firstTouched, curTouched := i, i - i++ - for ; i < end; i++ { - if h.points[glyphZone][current][i].Flags&mask != 0 { - h.iupInterp(iupY, curTouched+1, i-1, curTouched, i) - curTouched = i - } - } - if curTouched == firstTouched { - h.iupShift(iupY, prevEnd, end, curTouched) - } else { - h.iupInterp(iupY, curTouched+1, end-1, curTouched, firstTouched) - if firstTouched > 0 { - h.iupInterp(iupY, prevEnd, firstTouched-1, curTouched, firstTouched) - } - } - } - prevEnd = end - } - - case opSHP0, opSHP1: - if top < int(h.gs.loop) { - return errors.New("truetype: hinting: stack underflow") - } - _, _, d, ok := h.displacement(opcode&1 == 0) - if !ok { - return errors.New("truetype: hinting: point out of range") - } - for ; h.gs.loop != 0; h.gs.loop-- { - top-- - p := h.point(2, current, h.stack[top]) - if p == nil { - return errors.New("truetype: hinting: point out of range") - } - h.move(p, d, true) - } - h.gs.loop = 1 - - case opSHC0, opSHC1: - top-- - zonePointer, i, d, ok := h.displacement(opcode&1 == 0) - if !ok { - return errors.New("truetype: hinting: point out of range") - } - if h.gs.zp[2] == 0 { - // TODO: implement this when we have a glyph that does this. - return errors.New("hinting: unimplemented SHC instruction") - } - contour := h.stack[top] - if contour < 0 || len(ends) <= int(contour) { - return errors.New("truetype: hinting: contour out of range") - } - j0, j1 := int32(0), int32(h.ends[contour]) - if contour > 0 { - j0 = int32(h.ends[contour-1]) - } - move := h.gs.zp[zonePointer] != h.gs.zp[2] - for j := j0; j < j1; j++ { - if move || j != i { - h.move(h.point(2, current, j), d, true) - } - } - - case opSHZ0, opSHZ1: - top-- - zonePointer, i, d, ok := h.displacement(opcode&1 == 0) - if !ok { - return errors.New("truetype: hinting: point out of range") - } - - // As per C Freetype, SHZ doesn't move the phantom points, or mark - // the points as touched. - limit := int32(len(h.points[h.gs.zp[2]][current])) - if h.gs.zp[2] == glyphZone { - limit -= 4 - } - for j := int32(0); j < limit; j++ { - if i != j || h.gs.zp[zonePointer] != h.gs.zp[2] { - h.move(h.point(2, current, j), d, false) - } - } - - case opSHPIX: - top-- - d := f26dot6(h.stack[top]) - if top < int(h.gs.loop) { - return errors.New("truetype: hinting: stack underflow") - } - for ; h.gs.loop != 0; h.gs.loop-- { - top-- - p := h.point(2, current, h.stack[top]) - if p == nil { - return errors.New("truetype: hinting: point out of range") - } - h.move(p, d, true) - } - h.gs.loop = 1 - - case opIP: - if top < int(h.gs.loop) { - return errors.New("truetype: hinting: stack underflow") - } - pointType := inFontUnits - twilight := h.gs.zp[0] == 0 || h.gs.zp[1] == 0 || h.gs.zp[2] == 0 - if twilight { - pointType = unhinted - } - p := h.point(1, pointType, h.gs.rp[2]) - oldP := h.point(0, pointType, h.gs.rp[1]) - oldRange := dotProduct(f26dot6(p.X-oldP.X), f26dot6(p.Y-oldP.Y), h.gs.dv) - - p = h.point(1, current, h.gs.rp[2]) - curP := h.point(0, current, h.gs.rp[1]) - curRange := dotProduct(f26dot6(p.X-curP.X), f26dot6(p.Y-curP.Y), h.gs.pv) - for ; h.gs.loop != 0; h.gs.loop-- { - top-- - i := h.stack[top] - p = h.point(2, pointType, i) - oldDist := dotProduct(f26dot6(p.X-oldP.X), f26dot6(p.Y-oldP.Y), h.gs.dv) - p = h.point(2, current, i) - curDist := dotProduct(f26dot6(p.X-curP.X), f26dot6(p.Y-curP.Y), h.gs.pv) - newDist := f26dot6(0) - if oldDist != 0 { - if oldRange != 0 { - newDist = f26dot6(mulDiv(int64(oldDist), int64(curRange), int64(oldRange))) - } else { - newDist = -oldDist - } - } - h.move(p, newDist-curDist, true) - } - h.gs.loop = 1 - - case opMSIRP0, opMSIRP1: - top -= 2 - i := h.stack[top] - distance := f26dot6(h.stack[top+1]) - - // TODO: special case h.gs.zp[1] == 0 in C Freetype. - ref := h.point(0, current, h.gs.rp[0]) - p := h.point(1, current, i) - if ref == nil || p == nil { - return errors.New("truetype: hinting: point out of range") - } - curDist := dotProduct(f26dot6(p.X-ref.X), f26dot6(p.Y-ref.Y), h.gs.pv) - - // Set-RP0 bit. - if opcode == opMSIRP1 { - h.gs.rp[0] = i - } - h.gs.rp[1] = h.gs.rp[0] - h.gs.rp[2] = i - - // Move the point. - h.move(p, distance-curDist, true) - - case opALIGNRP: - if top < int(h.gs.loop) { - return errors.New("truetype: hinting: stack underflow") - } - ref := h.point(0, current, h.gs.rp[0]) - if ref == nil { - return errors.New("truetype: hinting: point out of range") - } - for ; h.gs.loop != 0; h.gs.loop-- { - top-- - p := h.point(1, current, h.stack[top]) - if p == nil { - return errors.New("truetype: hinting: point out of range") - } - h.move(p, -dotProduct(f26dot6(p.X-ref.X), f26dot6(p.Y-ref.Y), h.gs.pv), true) - } - h.gs.loop = 1 - - case opRTDG: - h.gs.roundPeriod = 1 << 5 - h.gs.roundPhase = 0 - h.gs.roundThreshold = 1 << 4 - h.gs.roundSuper45 = false - - case opMIAP0, opMIAP1: - top -= 2 - i := h.stack[top] - distance := h.getScaledCVT(h.stack[top+1]) - if h.gs.zp[0] == 0 { - p := h.point(0, unhinted, i) - q := h.point(0, current, i) - p.X = int32((int64(distance) * int64(h.gs.fv[0])) >> 14) - p.Y = int32((int64(distance) * int64(h.gs.fv[1])) >> 14) - *q = *p - } - p := h.point(0, current, i) - oldDist := dotProduct(f26dot6(p.X), f26dot6(p.Y), h.gs.pv) - if opcode == opMIAP1 { - if (distance - oldDist).abs() > h.gs.controlValueCutIn { - distance = oldDist - } - // TODO: metrics compensation. - distance = h.round(distance) - } - h.move(p, distance-oldDist, true) - h.gs.rp[0] = i - h.gs.rp[1] = i - - case opNPUSHB: - opcode = 0 - goto push - - case opNPUSHW: - opcode = 0x80 - goto push - - case opWS: - top -= 2 - i := int(h.stack[top]) - if i < 0 || len(h.store) <= i { - return errors.New("truetype: hinting: invalid data") - } - h.store[i] = h.stack[top+1] - - case opRS: - i := int(h.stack[top-1]) - if i < 0 || len(h.store) <= i { - return errors.New("truetype: hinting: invalid data") - } - h.stack[top-1] = h.store[i] - - case opWCVTP: - top -= 2 - h.setScaledCVT(h.stack[top], f26dot6(h.stack[top+1])) - - case opRCVT: - h.stack[top-1] = int32(h.getScaledCVT(h.stack[top-1])) - - case opGC0, opGC1: - i := h.stack[top-1] - if opcode == opGC0 { - p := h.point(2, current, i) - h.stack[top-1] = int32(dotProduct(f26dot6(p.X), f26dot6(p.Y), h.gs.pv)) - } else { - p := h.point(2, unhinted, i) - // Using dv as per C Freetype. - h.stack[top-1] = int32(dotProduct(f26dot6(p.X), f26dot6(p.Y), h.gs.dv)) - } - - case opSCFS: - top -= 2 - i := h.stack[top] - p := h.point(2, current, i) - if p == nil { - return errors.New("truetype: hinting: point out of range") - } - c := dotProduct(f26dot6(p.X), f26dot6(p.Y), h.gs.pv) - h.move(p, f26dot6(h.stack[top+1])-c, true) - if h.gs.zp[2] != 0 { - break - } - q := h.point(2, unhinted, i) - if q == nil { - return errors.New("truetype: hinting: point out of range") - } - q.X = p.X - q.Y = p.Y - - case opMD0, opMD1: - top-- - pt, v, scale := pointType(0), [2]f2dot14{}, false - if opcode == opMD0 { - pt = current - v = h.gs.pv - } else if h.gs.zp[0] == 0 || h.gs.zp[1] == 0 { - pt = unhinted - v = h.gs.dv - } else { - pt = inFontUnits - v = h.gs.dv - scale = true - } - p := h.point(0, pt, h.stack[top-1]) - q := h.point(1, pt, h.stack[top]) - if p == nil || q == nil { - return errors.New("truetype: hinting: point out of range") - } - d := int32(dotProduct(f26dot6(p.X-q.X), f26dot6(p.Y-q.Y), v)) - if scale { - d = int32(int64(d*h.scale) / int64(h.font.fUnitsPerEm)) - } - h.stack[top-1] = d - - case opMPPEM, opMPS: - if top >= len(h.stack) { - return errors.New("truetype: hinting: stack overflow") - } - // For MPS, point size should be irrelevant; we return the PPEM. - h.stack[top] = h.scale >> 6 - top++ - - case opFLIPON, opFLIPOFF: - h.gs.autoFlip = opcode == opFLIPON - - case opDEBUG: - // No-op. - - case opLT: - top-- - h.stack[top-1] = bool2int32(h.stack[top-1] < h.stack[top]) - - case opLTEQ: - top-- - h.stack[top-1] = bool2int32(h.stack[top-1] <= h.stack[top]) - - case opGT: - top-- - h.stack[top-1] = bool2int32(h.stack[top-1] > h.stack[top]) - - case opGTEQ: - top-- - h.stack[top-1] = bool2int32(h.stack[top-1] >= h.stack[top]) - - case opEQ: - top-- - h.stack[top-1] = bool2int32(h.stack[top-1] == h.stack[top]) - - case opNEQ: - top-- - h.stack[top-1] = bool2int32(h.stack[top-1] != h.stack[top]) - - case opODD, opEVEN: - i := h.round(f26dot6(h.stack[top-1])) >> 6 - h.stack[top-1] = int32(i&1) ^ int32(opcode-opODD) - - case opIF: - top-- - if h.stack[top] == 0 { - opcode = 0 - goto ifelse - } - - case opEIF: - // No-op. - - case opAND: - top-- - h.stack[top-1] = bool2int32(h.stack[top-1] != 0 && h.stack[top] != 0) - - case opOR: - top-- - h.stack[top-1] = bool2int32(h.stack[top-1]|h.stack[top] != 0) - - case opNOT: - h.stack[top-1] = bool2int32(h.stack[top-1] == 0) - - case opDELTAP1: - goto delta - - case opSDB: - top-- - h.gs.deltaBase = h.stack[top] - - case opSDS: - top-- - h.gs.deltaShift = h.stack[top] - - case opADD: - top-- - h.stack[top-1] += h.stack[top] - - case opSUB: - top-- - h.stack[top-1] -= h.stack[top] - - case opDIV: - top-- - if h.stack[top] == 0 { - return errors.New("truetype: hinting: division by zero") - } - h.stack[top-1] = int32(f26dot6(h.stack[top-1]).div(f26dot6(h.stack[top]))) - - case opMUL: - top-- - h.stack[top-1] = int32(f26dot6(h.stack[top-1]).mul(f26dot6(h.stack[top]))) - - case opABS: - if h.stack[top-1] < 0 { - h.stack[top-1] = -h.stack[top-1] - } - - case opNEG: - h.stack[top-1] = -h.stack[top-1] - - case opFLOOR: - h.stack[top-1] &^= 63 - - case opCEILING: - h.stack[top-1] += 63 - h.stack[top-1] &^= 63 - - case opROUND00, opROUND01, opROUND10, opROUND11: - // The four flavors of opROUND are equivalent. See the comment below on - // opNROUND for the rationale. - h.stack[top-1] = int32(h.round(f26dot6(h.stack[top-1]))) - - case opNROUND00, opNROUND01, opNROUND10, opNROUND11: - // No-op. The spec says to add one of four "compensations for the engine - // characteristics", to cater for things like "different dot-size printers". - // https://developer.apple.com/fonts/TTRefMan/RM02/Chap2.html#engine_compensation - // This code does not implement engine compensation, as we don't expect to - // be used to output on dot-matrix printers. - - case opWCVTF: - top -= 2 - h.setScaledCVT(h.stack[top], f26dot6(h.font.scale(h.scale*h.stack[top+1]))) - - case opDELTAP2, opDELTAP3, opDELTAC1, opDELTAC2, opDELTAC3: - goto delta - - case opSROUND, opS45ROUND: - top-- - switch (h.stack[top] >> 6) & 0x03 { - case 0: - h.gs.roundPeriod = 1 << 5 - case 1, 3: - h.gs.roundPeriod = 1 << 6 - case 2: - h.gs.roundPeriod = 1 << 7 - } - h.gs.roundSuper45 = opcode == opS45ROUND - if h.gs.roundSuper45 { - // The spec says to multiply by √2, but the C Freetype code says 1/√2. - // We go with 1/√2. - h.gs.roundPeriod *= 46341 - h.gs.roundPeriod /= 65536 - } - h.gs.roundPhase = h.gs.roundPeriod * f26dot6((h.stack[top]>>4)&0x03) / 4 - if x := h.stack[top] & 0x0f; x != 0 { - h.gs.roundThreshold = h.gs.roundPeriod * f26dot6(x-4) / 8 - } else { - h.gs.roundThreshold = h.gs.roundPeriod - 1 - } - - case opJROT: - top -= 2 - if h.stack[top+1] != 0 { - pc += int(h.stack[top]) - continue - } - - case opJROF: - top -= 2 - if h.stack[top+1] == 0 { - pc += int(h.stack[top]) - continue - } - - case opROFF: - h.gs.roundPeriod = 0 - h.gs.roundPhase = 0 - h.gs.roundThreshold = 0 - h.gs.roundSuper45 = false - - case opRUTG: - h.gs.roundPeriod = 1 << 6 - h.gs.roundPhase = 0 - h.gs.roundThreshold = 1<<6 - 1 - h.gs.roundSuper45 = false - - case opRDTG: - h.gs.roundPeriod = 1 << 6 - h.gs.roundPhase = 0 - h.gs.roundThreshold = 0 - h.gs.roundSuper45 = false - - case opSANGW, opAA: - // These ops are "anachronistic" and no longer used. - top-- - - case opFLIPPT: - if top < int(h.gs.loop) { - return errors.New("truetype: hinting: stack underflow") - } - points := h.points[glyphZone][current] - for ; h.gs.loop != 0; h.gs.loop-- { - top-- - i := h.stack[top] - if i < 0 || len(points) <= int(i) { - return errors.New("truetype: hinting: point out of range") - } - points[i].Flags ^= flagOnCurve - } - h.gs.loop = 1 - - case opFLIPRGON, opFLIPRGOFF: - top -= 2 - i, j, points := h.stack[top], h.stack[top+1], h.points[glyphZone][current] - if i < 0 || len(points) <= int(i) || j < 0 || len(points) <= int(j) { - return errors.New("truetype: hinting: point out of range") - } - for ; i <= j; i++ { - if opcode == opFLIPRGON { - points[i].Flags |= flagOnCurve - } else { - points[i].Flags &^= flagOnCurve - } - } - - case opSCANCTRL: - // We do not support dropout control, as we always rasterize grayscale glyphs. - top-- - - case opSDPVTL0, opSDPVTL1: - top -= 2 - for i := 0; i < 2; i++ { - pt := unhinted - if i != 0 { - pt = current - } - p := h.point(1, pt, h.stack[top]) - q := h.point(2, pt, h.stack[top+1]) - if p == nil || q == nil { - return errors.New("truetype: hinting: point out of range") - } - dx := f2dot14(p.X - q.X) - dy := f2dot14(p.Y - q.Y) - if dx == 0 && dy == 0 { - dx = 0x4000 - } else if opcode&1 != 0 { - // Counter-clockwise rotation. - dx, dy = -dy, dx - } - if i == 0 { - h.gs.dv = normalize(dx, dy) - } else { - h.gs.pv = normalize(dx, dy) - } - } - - case opGETINFO: - res := int32(0) - if h.stack[top-1]&(1<<0) != 0 { - // Set the engine version. We hard-code this to 35, the same as - // the C freetype code, which says that "Version~35 corresponds - // to MS rasterizer v.1.7 as used e.g. in Windows~98". - res |= 35 - } - if h.stack[top-1]&(1<<5) != 0 { - // Set that we support grayscale. - res |= 1 << 12 - } - // We set no other bits, as we do not support rotated or stretched glyphs. - h.stack[top-1] = res - - case opIDEF: - // IDEF is for ancient versions of the bytecode interpreter, and is no longer used. - return errors.New("truetype: hinting: unsupported IDEF instruction") - - case opROLL: - h.stack[top-1], h.stack[top-3], h.stack[top-2] = - h.stack[top-3], h.stack[top-2], h.stack[top-1] - - case opMAX: - top-- - if h.stack[top-1] < h.stack[top] { - h.stack[top-1] = h.stack[top] - } - - case opMIN: - top-- - if h.stack[top-1] > h.stack[top] { - h.stack[top-1] = h.stack[top] - } - - case opSCANTYPE: - // We do not support dropout control, as we always rasterize grayscale glyphs. - top-- - - case opINSTCTRL: - // TODO: support instruction execution control? It seems rare, and even when - // nominally used (e.g. Source Sans Pro), it seems conditional on extreme or - // unusual rasterization conditions. For example, the code snippet at - // https://developer.apple.com/fonts/TTRefMan/RM05/Chap5.html#INSTCTRL - // uses INSTCTRL when grid-fitting a rotated or stretched glyph, but - // freetype-go does not support rotated or stretched glyphs. - top -= 2 - - default: - if opcode < opPUSHB000 { - return errors.New("truetype: hinting: unrecognized instruction") - } - - if opcode < opMDRP00000 { - // PUSHxxxx opcode. - - if opcode < opPUSHW000 { - opcode -= opPUSHB000 - 1 - } else { - opcode -= opPUSHW000 - 1 - 0x80 - } - goto push - } - - if opcode < opMIRP00000 { - // MDRPxxxxx opcode. - - top-- - i := h.stack[top] - ref := h.point(0, current, h.gs.rp[0]) - p := h.point(1, current, i) - if ref == nil || p == nil { - return errors.New("truetype: hinting: point out of range") - } - - oldDist := f26dot6(0) - if h.gs.zp[0] == 0 || h.gs.zp[1] == 0 { - p0 := h.point(1, unhinted, i) - p1 := h.point(0, unhinted, h.gs.rp[0]) - oldDist = dotProduct(f26dot6(p0.X-p1.X), f26dot6(p0.Y-p1.Y), h.gs.dv) - } else { - p0 := h.point(1, inFontUnits, i) - p1 := h.point(0, inFontUnits, h.gs.rp[0]) - oldDist = dotProduct(f26dot6(p0.X-p1.X), f26dot6(p0.Y-p1.Y), h.gs.dv) - oldDist = f26dot6(h.font.scale(h.scale * int32(oldDist))) - } - - // Single-width cut-in test. - if x := (oldDist - h.gs.singleWidth).abs(); x < h.gs.singleWidthCutIn { - if oldDist >= 0 { - oldDist = +h.gs.singleWidth - } else { - oldDist = -h.gs.singleWidth - } - } - - // Rounding bit. - // TODO: metrics compensation. - distance := oldDist - if opcode&0x04 != 0 { - distance = h.round(oldDist) - } - - // Minimum distance bit. - if opcode&0x08 != 0 { - if oldDist >= 0 { - if distance < h.gs.minDist { - distance = h.gs.minDist - } - } else { - if distance > -h.gs.minDist { - distance = -h.gs.minDist - } - } - } - - // Set-RP0 bit. - h.gs.rp[1] = h.gs.rp[0] - h.gs.rp[2] = i - if opcode&0x10 != 0 { - h.gs.rp[0] = i - } - - // Move the point. - oldDist = dotProduct(f26dot6(p.X-ref.X), f26dot6(p.Y-ref.Y), h.gs.pv) - h.move(p, distance-oldDist, true) - - } else { - // MIRPxxxxx opcode. - - top -= 2 - i := h.stack[top] - cvtDist := h.getScaledCVT(h.stack[top+1]) - if (cvtDist - h.gs.singleWidth).abs() < h.gs.singleWidthCutIn { - if cvtDist >= 0 { - cvtDist = +h.gs.singleWidth - } else { - cvtDist = -h.gs.singleWidth - } - } - - if h.gs.zp[1] == 0 { - // TODO: implement once we have a .ttf file that triggers - // this, so that we can step through C's freetype. - return errors.New("truetype: hinting: unimplemented twilight point adjustment") - } - - ref := h.point(0, unhinted, h.gs.rp[0]) - p := h.point(1, unhinted, i) - if ref == nil || p == nil { - return errors.New("truetype: hinting: point out of range") - } - oldDist := dotProduct(f26dot6(p.X-ref.X), f26dot6(p.Y-ref.Y), h.gs.dv) - - ref = h.point(0, current, h.gs.rp[0]) - p = h.point(1, current, i) - if ref == nil || p == nil { - return errors.New("truetype: hinting: point out of range") - } - curDist := dotProduct(f26dot6(p.X-ref.X), f26dot6(p.Y-ref.Y), h.gs.pv) - - if h.gs.autoFlip && oldDist^cvtDist < 0 { - cvtDist = -cvtDist - } - - // Rounding bit. - // TODO: metrics compensation. - distance := cvtDist - if opcode&0x04 != 0 { - // The CVT value is only used if close enough to oldDist. - if (h.gs.zp[0] == h.gs.zp[1]) && - ((cvtDist - oldDist).abs() > h.gs.controlValueCutIn) { - - distance = oldDist - } - distance = h.round(distance) - } - - // Minimum distance bit. - if opcode&0x08 != 0 { - if oldDist >= 0 { - if distance < h.gs.minDist { - distance = h.gs.minDist - } - } else { - if distance > -h.gs.minDist { - distance = -h.gs.minDist - } - } - } - - // Set-RP0 bit. - h.gs.rp[1] = h.gs.rp[0] - h.gs.rp[2] = i - if opcode&0x10 != 0 { - h.gs.rp[0] = i - } - - // Move the point. - h.move(p, distance-curDist, true) - } - } - pc++ - continue - - ifelse: - // Skip past bytecode until the next ELSE (if opcode == 0) or the - // next EIF (for all opcodes). Opcode == 0 means that we have come - // from an IF. Opcode == 1 means that we have come from an ELSE. - { - ifelseloop: - for depth := 0; ; { - pc++ - if pc >= len(program) { - return errors.New("truetype: hinting: unbalanced IF or ELSE") - } - switch program[pc] { - case opIF: - depth++ - case opELSE: - if depth == 0 && opcode == 0 { - break ifelseloop - } - case opEIF: - depth-- - if depth < 0 { - break ifelseloop - } - default: - var ok bool - pc, ok = skipInstructionPayload(program, pc) - if !ok { - return errors.New("truetype: hinting: unbalanced IF or ELSE") - } - } - } - pc++ - continue - } - - push: - // Push n elements from the program to the stack, where n is the low 7 bits of - // opcode. If the low 7 bits are zero, then n is the next byte from the program. - // The high bit being 0 means that the elements are zero-extended bytes. - // The high bit being 1 means that the elements are sign-extended words. - { - width := 1 - if opcode&0x80 != 0 { - opcode &^= 0x80 - width = 2 - } - if opcode == 0 { - pc++ - if pc >= len(program) { - return errors.New("truetype: hinting: insufficient data") - } - opcode = program[pc] - } - pc++ - if top+int(opcode) > len(h.stack) { - return errors.New("truetype: hinting: stack overflow") - } - if pc+width*int(opcode) > len(program) { - return errors.New("truetype: hinting: insufficient data") - } - for ; opcode > 0; opcode-- { - if width == 1 { - h.stack[top] = int32(program[pc]) - } else { - h.stack[top] = int32(int8(program[pc]))<<8 | int32(program[pc+1]) - } - top++ - pc += width - } - continue - } - - delta: - { - if opcode >= opDELTAC1 && !h.scaledCVTInitialized { - h.initializeScaledCVT() - } - top-- - n := h.stack[top] - if int32(top) < 2*n { - return errors.New("truetype: hinting: stack underflow") - } - for ; n > 0; n-- { - top -= 2 - b := h.stack[top] - c := (b & 0xf0) >> 4 - switch opcode { - case opDELTAP2, opDELTAC2: - c += 16 - case opDELTAP3, opDELTAC3: - c += 32 - } - c += h.gs.deltaBase - if ppem := (h.scale + 1<<5) >> 6; ppem != c { - continue - } - b = (b & 0x0f) - 8 - if b >= 0 { - b++ - } - b = b * 64 / (1 << uint32(h.gs.deltaShift)) - if opcode >= opDELTAC1 { - a := h.stack[top+1] - if a < 0 || len(h.scaledCVT) <= int(a) { - return errors.New("truetype: hinting: index out of range") - } - h.scaledCVT[a] += f26dot6(b) - } else { - p := h.point(0, current, h.stack[top+1]) - if p == nil { - return errors.New("truetype: hinting: point out of range") - } - h.move(p, f26dot6(b), true) - } - } - pc++ - continue - } - } - return nil -} - -func (h *hinter) initializeScaledCVT() { - h.scaledCVTInitialized = true - if n := len(h.font.cvt) / 2; n <= cap(h.scaledCVT) { - h.scaledCVT = h.scaledCVT[:n] - } else { - if n < 32 { - n = 32 - } - h.scaledCVT = make([]f26dot6, len(h.font.cvt)/2, n) - } - for i := range h.scaledCVT { - unscaled := uint16(h.font.cvt[2*i])<<8 | uint16(h.font.cvt[2*i+1]) - h.scaledCVT[i] = f26dot6(h.font.scale(h.scale * int32(int16(unscaled)))) - } -} - -// getScaledCVT returns the scaled value from the font's Control Value Table. -func (h *hinter) getScaledCVT(i int32) f26dot6 { - if !h.scaledCVTInitialized { - h.initializeScaledCVT() - } - if i < 0 || len(h.scaledCVT) <= int(i) { - return 0 - } - return h.scaledCVT[i] -} - -// setScaledCVT overrides the scaled value from the font's Control Value Table. -func (h *hinter) setScaledCVT(i int32, v f26dot6) { - if !h.scaledCVTInitialized { - h.initializeScaledCVT() - } - if i < 0 || len(h.scaledCVT) <= int(i) { - return - } - h.scaledCVT[i] = v -} - -func (h *hinter) point(zonePointer uint32, pt pointType, i int32) *Point { - points := h.points[h.gs.zp[zonePointer]][pt] - if i < 0 || len(points) <= int(i) { - return nil - } - return &points[i] -} - -func (h *hinter) move(p *Point, distance f26dot6, touch bool) { - fvx := int64(h.gs.fv[0]) - pvx := int64(h.gs.pv[0]) - if fvx == 0x4000 && pvx == 0x4000 { - p.X += int32(distance) - if touch { - p.Flags |= flagTouchedX - } - return - } - - fvy := int64(h.gs.fv[1]) - pvy := int64(h.gs.pv[1]) - if fvy == 0x4000 && pvy == 0x4000 { - p.Y += int32(distance) - if touch { - p.Flags |= flagTouchedY - } - return - } - - fvDotPv := (fvx*pvx + fvy*pvy) >> 14 - - if fvx != 0 { - p.X += int32(mulDiv(fvx, int64(distance), fvDotPv)) - if touch { - p.Flags |= flagTouchedX - } - } - - if fvy != 0 { - p.Y += int32(mulDiv(fvy, int64(distance), fvDotPv)) - if touch { - p.Flags |= flagTouchedY - } - } -} - -func (h *hinter) iupInterp(interpY bool, p1, p2, ref1, ref2 int) { - if p1 > p2 { - return - } - if ref1 >= len(h.points[glyphZone][current]) || - ref2 >= len(h.points[glyphZone][current]) { - return - } - - var ifu1, ifu2 int32 - if interpY { - ifu1 = h.points[glyphZone][inFontUnits][ref1].Y - ifu2 = h.points[glyphZone][inFontUnits][ref2].Y - } else { - ifu1 = h.points[glyphZone][inFontUnits][ref1].X - ifu2 = h.points[glyphZone][inFontUnits][ref2].X - } - if ifu1 > ifu2 { - ifu1, ifu2 = ifu2, ifu1 - ref1, ref2 = ref2, ref1 - } - - var unh1, unh2, delta1, delta2 int32 - if interpY { - unh1 = h.points[glyphZone][unhinted][ref1].Y - unh2 = h.points[glyphZone][unhinted][ref2].Y - delta1 = h.points[glyphZone][current][ref1].Y - unh1 - delta2 = h.points[glyphZone][current][ref2].Y - unh2 - } else { - unh1 = h.points[glyphZone][unhinted][ref1].X - unh2 = h.points[glyphZone][unhinted][ref2].X - delta1 = h.points[glyphZone][current][ref1].X - unh1 - delta2 = h.points[glyphZone][current][ref2].X - unh2 - } - - var xy, ifuXY int32 - if ifu1 == ifu2 { - for i := p1; i <= p2; i++ { - if interpY { - xy = h.points[glyphZone][unhinted][i].Y - } else { - xy = h.points[glyphZone][unhinted][i].X - } - - if xy <= unh1 { - xy += delta1 - } else { - xy += delta2 - } - - if interpY { - h.points[glyphZone][current][i].Y = xy - } else { - h.points[glyphZone][current][i].X = xy - } - } - return - } - - scale, scaleOK := int64(0), false - for i := p1; i <= p2; i++ { - if interpY { - xy = h.points[glyphZone][unhinted][i].Y - ifuXY = h.points[glyphZone][inFontUnits][i].Y - } else { - xy = h.points[glyphZone][unhinted][i].X - ifuXY = h.points[glyphZone][inFontUnits][i].X - } - - if xy <= unh1 { - xy += delta1 - } else if xy >= unh2 { - xy += delta2 - } else { - if !scaleOK { - scaleOK = true - scale = mulDiv(int64(unh2+delta2-unh1-delta1), 0x10000, int64(ifu2-ifu1)) - } - numer := int64(ifuXY-ifu1) * scale - if numer >= 0 { - numer += 0x8000 - } else { - numer -= 0x8000 - } - xy = unh1 + delta1 + int32(numer/0x10000) - } - - if interpY { - h.points[glyphZone][current][i].Y = xy - } else { - h.points[glyphZone][current][i].X = xy - } - } -} - -func (h *hinter) iupShift(interpY bool, p1, p2, p int) { - var delta int32 - if interpY { - delta = h.points[glyphZone][current][p].Y - h.points[glyphZone][unhinted][p].Y - } else { - delta = h.points[glyphZone][current][p].X - h.points[glyphZone][unhinted][p].X - } - if delta == 0 { - return - } - for i := p1; i < p2; i++ { - if i == p { - continue - } - if interpY { - h.points[glyphZone][current][i].Y += delta - } else { - h.points[glyphZone][current][i].X += delta - } - } -} - -func (h *hinter) displacement(useZP1 bool) (zonePointer uint32, i int32, d f26dot6, ok bool) { - zonePointer, i = uint32(0), h.gs.rp[1] - if useZP1 { - zonePointer, i = 1, h.gs.rp[2] - } - p := h.point(zonePointer, current, i) - q := h.point(zonePointer, unhinted, i) - if p == nil || q == nil { - return 0, 0, 0, false - } - d = dotProduct(f26dot6(p.X-q.X), f26dot6(p.Y-q.Y), h.gs.pv) - return zonePointer, i, d, true -} - -// skipInstructionPayload increments pc by the extra data that follows a -// variable length PUSHB or PUSHW instruction. -func skipInstructionPayload(program []byte, pc int) (newPC int, ok bool) { - switch program[pc] { - case opNPUSHB: - pc++ - if pc >= len(program) { - return 0, false - } - pc += int(program[pc]) - case opNPUSHW: - pc++ - if pc >= len(program) { - return 0, false - } - pc += 2 * int(program[pc]) - case opPUSHB000, opPUSHB001, opPUSHB010, opPUSHB011, - opPUSHB100, opPUSHB101, opPUSHB110, opPUSHB111: - pc += int(program[pc] - (opPUSHB000 - 1)) - case opPUSHW000, opPUSHW001, opPUSHW010, opPUSHW011, - opPUSHW100, opPUSHW101, opPUSHW110, opPUSHW111: - pc += 2 * int(program[pc]-(opPUSHW000-1)) - } - return pc, true -} - -// f2dot14 is a 2.14 fixed point number. -type f2dot14 int16 - -func normalize(x, y f2dot14) [2]f2dot14 { - fx, fy := float64(x), float64(y) - l := 0x4000 / math.Hypot(fx, fy) - fx *= l - if fx >= 0 { - fx += 0.5 - } else { - fx -= 0.5 - } - fy *= l - if fy >= 0 { - fy += 0.5 - } else { - fy -= 0.5 - } - return [2]f2dot14{f2dot14(fx), f2dot14(fy)} -} - -// f26dot6 is a 26.6 fixed point number. -type f26dot6 int32 - -// abs returns abs(x) in 26.6 fixed point arithmetic. -func (x f26dot6) abs() f26dot6 { - if x < 0 { - return -x - } - return x -} - -// div returns x/y in 26.6 fixed point arithmetic. -func (x f26dot6) div(y f26dot6) f26dot6 { - return f26dot6((int64(x) << 6) / int64(y)) -} - -// mul returns x*y in 26.6 fixed point arithmetic. -func (x f26dot6) mul(y f26dot6) f26dot6 { - return f26dot6((int64(x)*int64(y) + 1<<5) >> 6) -} - -// dotProduct returns the dot product of [x, y] and q. It is almost the same as -// px := int64(x) -// py := int64(y) -// qx := int64(q[0]) -// qy := int64(q[1]) -// return f26dot6((px*qx + py*qy + 1<<13) >> 14) -// except that the computation is done with 32-bit integers to produce exactly -// the same rounding behavior as C Freetype. -func dotProduct(x, y f26dot6, q [2]f2dot14) f26dot6 { - // Compute x*q[0] as 64-bit value. - l := uint32((int32(x) & 0xFFFF) * int32(q[0])) - m := (int32(x) >> 16) * int32(q[0]) - - lo1 := l + (uint32(m) << 16) - hi1 := (m >> 16) + (int32(l) >> 31) + bool2int32(lo1 < l) - - // Compute y*q[1] as 64-bit value. - l = uint32((int32(y) & 0xFFFF) * int32(q[1])) - m = (int32(y) >> 16) * int32(q[1]) - - lo2 := l + (uint32(m) << 16) - hi2 := (m >> 16) + (int32(l) >> 31) + bool2int32(lo2 < l) - - // Add them. - lo := lo1 + lo2 - hi := hi1 + hi2 + bool2int32(lo < lo1) - - // Divide the result by 2^14 with rounding. - s := hi >> 31 - l = lo + uint32(s) - hi += s + bool2int32(l < lo) - lo = l - - l = lo + 0x2000 - hi += bool2int32(l < lo) - - return f26dot6((uint32(hi) << 18) | (l >> 14)) -} - -// mulDiv returns x*y/z, rounded to the nearest integer. -func mulDiv(x, y, z int64) int64 { - xy := x * y - if z < 0 { - xy, z = -xy, -z - } - if xy >= 0 { - xy += z / 2 - } else { - xy -= z / 2 - } - return xy / z -} - -// round rounds the given number. The rounding algorithm is described at -// https://developer.apple.com/fonts/TTRefMan/RM02/Chap2.html#rounding -func (h *hinter) round(x f26dot6) f26dot6 { - if h.gs.roundPeriod == 0 { - // Rounding is off. - return x - } - if x >= 0 { - ret := x - h.gs.roundPhase + h.gs.roundThreshold - if h.gs.roundSuper45 { - ret /= h.gs.roundPeriod - ret *= h.gs.roundPeriod - } else { - ret &= -h.gs.roundPeriod - } - if x != 0 && ret < 0 { - ret = 0 - } - return ret + h.gs.roundPhase - } - ret := -x - h.gs.roundPhase + h.gs.roundThreshold - if h.gs.roundSuper45 { - ret /= h.gs.roundPeriod - ret *= h.gs.roundPeriod - } else { - ret &= -h.gs.roundPeriod - } - if ret < 0 { - ret = 0 - } - return -ret - h.gs.roundPhase -} - -func bool2int32(b bool) int32 { - if b { - return 1 - } - return 0 -} diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/truetype/hint_test.go b/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/truetype/hint_test.go deleted file mode 100644 index c8b8d604d..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/truetype/hint_test.go +++ /dev/null @@ -1,673 +0,0 @@ -// Copyright 2012 The Freetype-Go Authors. All rights reserved. -// Use of this source code is governed by your choice of either the -// FreeType License or the GNU General Public License version 2 (or -// any later version), both of which can be found in the LICENSE file. - -package truetype - -import ( - "reflect" - "strings" - "testing" -) - -func TestBytecode(t *testing.T) { - testCases := []struct { - desc string - prog []byte - want []int32 - errStr string - }{ - { - "underflow", - []byte{ - opDUP, - }, - nil, - "underflow", - }, - { - "infinite loop", - []byte{ - opPUSHW000, // [-1] - 0xff, - 0xff, - opDUP, // [-1, -1] - opJMPR, // [-1] - }, - nil, - "too many steps", - }, - { - "unbalanced if/else", - []byte{ - opPUSHB000, // [0] - 0, - opIF, - }, - nil, - "unbalanced", - }, - { - "vector set/gets", - []byte{ - opSVTCA1, // [] - opGPV, // [0x4000, 0] - opSVTCA0, // [0x4000, 0] - opGFV, // [0x4000, 0, 0, 0x4000] - opNEG, // [0x4000, 0, 0, -0x4000] - opSPVFS, // [0x4000, 0] - opSFVTPV, // [0x4000, 0] - opPUSHB000, // [0x4000, 0, 1] - 1, - opGFV, // [0x4000, 0, 1, 0, -0x4000] - opPUSHB000, // [0x4000, 0, 1, 0, -0x4000, 2] - 2, - }, - []int32{0x4000, 0, 1, 0, -0x4000, 2}, - "", - }, - { - "jumps", - []byte{ - opPUSHB001, // [10, 2] - 10, - 2, - opJMPR, // [10] - opDUP, // not executed - opDUP, // [10, 10] - opPUSHB010, // [10, 10, 20, 2, 1] - 20, - 2, - 1, - opJROT, // [10, 10, 20] - opDUP, // not executed - opDUP, // [10, 10, 20, 20] - opPUSHB010, // [10, 10, 20, 20, 30, 2, 1] - 30, - 2, - 1, - opJROF, // [10, 10, 20, 20, 30] - opDUP, // [10, 10, 20, 20, 30, 30] - opDUP, // [10, 10, 20, 20, 30, 30, 30] - }, - []int32{10, 10, 20, 20, 30, 30, 30}, - "", - }, - { - "stack ops", - []byte{ - opPUSHB010, // [10, 20, 30] - 10, - 20, - 30, - opCLEAR, // [] - opPUSHB010, // [40, 50, 60] - 40, - 50, - 60, - opSWAP, // [40, 60, 50] - opDUP, // [40, 60, 50, 50] - opDUP, // [40, 60, 50, 50, 50] - opPOP, // [40, 60, 50, 50] - opDEPTH, // [40, 60, 50, 50, 4] - opCINDEX, // [40, 60, 50, 50, 40] - opPUSHB000, // [40, 60, 50, 50, 40, 4] - 4, - opMINDEX, // [40, 50, 50, 40, 60] - }, - []int32{40, 50, 50, 40, 60}, - "", - }, - { - "push ops", - []byte{ - opPUSHB000, // [255] - 255, - opPUSHW001, // [255, -2, 253] - 255, - 254, - 0, - 253, - opNPUSHB, // [1, -2, 253, 1, 2] - 2, - 1, - 2, - opNPUSHW, // [1, -2, 253, 1, 2, 0x0405, 0x0607, 0x0809] - 3, - 4, - 5, - 6, - 7, - 8, - 9, - }, - []int32{255, -2, 253, 1, 2, 0x0405, 0x0607, 0x0809}, - "", - }, - { - "store ops", - []byte{ - opPUSHB011, // [1, 22, 3, 44] - 1, - 22, - 3, - 44, - opWS, // [1, 22] - opWS, // [] - opPUSHB000, // [3] - 3, - opRS, // [44] - }, - []int32{44}, - "", - }, - { - "comparison ops", - []byte{ - opPUSHB001, // [10, 20] - 10, - 20, - opLT, // [1] - opPUSHB001, // [1, 10, 20] - 10, - 20, - opLTEQ, // [1, 1] - opPUSHB001, // [1, 1, 10, 20] - 10, - 20, - opGT, // [1, 1, 0] - opPUSHB001, // [1, 1, 0, 10, 20] - 10, - 20, - opGTEQ, // [1, 1, 0, 0] - opEQ, // [1, 1, 1] - opNEQ, // [1, 0] - }, - []int32{1, 0}, - "", - }, - { - "odd/even", - // Calculate odd(2+31/64), odd(2+32/64), even(2), even(1). - []byte{ - opPUSHB000, // [159] - 159, - opODD, // [0] - opPUSHB000, // [0, 160] - 160, - opODD, // [0, 1] - opPUSHB000, // [0, 1, 128] - 128, - opEVEN, // [0, 1, 1] - opPUSHB000, // [0, 1, 1, 64] - 64, - opEVEN, // [0, 1, 1, 0] - }, - []int32{0, 1, 1, 0}, - "", - }, - { - "if true", - []byte{ - opPUSHB001, // [255, 1] - 255, - 1, - opIF, - opPUSHB000, // [255, 2] - 2, - opEIF, - opPUSHB000, // [255, 2, 254] - 254, - }, - []int32{255, 2, 254}, - "", - }, - { - "if false", - []byte{ - opPUSHB001, // [255, 0] - 255, - 0, - opIF, - opPUSHB000, // [255] - 2, - opEIF, - opPUSHB000, // [255, 254] - 254, - }, - []int32{255, 254}, - "", - }, - { - "if/else true", - []byte{ - opPUSHB000, // [1] - 1, - opIF, - opPUSHB000, // [2] - 2, - opELSE, - opPUSHB000, // not executed - 3, - opEIF, - }, - []int32{2}, - "", - }, - { - "if/else false", - []byte{ - opPUSHB000, // [0] - 0, - opIF, - opPUSHB000, // not executed - 2, - opELSE, - opPUSHB000, // [3] - 3, - opEIF, - }, - []int32{3}, - "", - }, - { - "if/else true if/else false", - // 0x58 is the opcode for opIF. The literal 0x58s below are pushed data. - []byte{ - opPUSHB010, // [255, 0, 1] - 255, - 0, - 1, - opIF, - opIF, - opPUSHB001, // not executed - 0x58, - 0x58, - opELSE, - opPUSHW000, // [255, 0x5858] - 0x58, - 0x58, - opEIF, - opELSE, - opIF, - opNPUSHB, // not executed - 3, - 0x58, - 0x58, - 0x58, - opELSE, - opNPUSHW, // not executed - 2, - 0x58, - 0x58, - 0x58, - 0x58, - opEIF, - opEIF, - opPUSHB000, // [255, 0x5858, 254] - 254, - }, - []int32{255, 0x5858, 254}, - "", - }, - { - "if/else false if/else true", - // 0x58 is the opcode for opIF. The literal 0x58s below are pushed data. - []byte{ - opPUSHB010, // [255, 1, 0] - 255, - 1, - 0, - opIF, - opIF, - opPUSHB001, // not executed - 0x58, - 0x58, - opELSE, - opPUSHW000, // not executed - 0x58, - 0x58, - opEIF, - opELSE, - opIF, - opNPUSHB, // [255, 0x58, 0x58, 0x58] - 3, - 0x58, - 0x58, - 0x58, - opELSE, - opNPUSHW, // not executed - 2, - 0x58, - 0x58, - 0x58, - 0x58, - opEIF, - opEIF, - opPUSHB000, // [255, 0x58, 0x58, 0x58, 254] - 254, - }, - []int32{255, 0x58, 0x58, 0x58, 254}, - "", - }, - { - "logical ops", - []byte{ - opPUSHB010, // [0, 10, 20] - 0, - 10, - 20, - opAND, // [0, 1] - opOR, // [1] - opNOT, // [0] - }, - []int32{0}, - "", - }, - { - "arithmetic ops", - // Calculate abs((-(1 - (2*3)))/2 + 1/64). - // The answer is 5/2 + 1/64 in ideal numbers, or 161 in 26.6 fixed point math. - []byte{ - opPUSHB010, // [64, 128, 192] - 1 << 6, - 2 << 6, - 3 << 6, - opMUL, // [64, 384] - opSUB, // [-320] - opNEG, // [320] - opPUSHB000, // [320, 128] - 2 << 6, - opDIV, // [160] - opPUSHB000, // [160, 1] - 1, - opADD, // [161] - opABS, // [161] - }, - []int32{161}, - "", - }, - { - "floor, ceiling", - []byte{ - opPUSHB000, // [96] - 96, - opFLOOR, // [64] - opPUSHB000, // [64, 96] - 96, - opCEILING, // [64, 128] - }, - []int32{64, 128}, - "", - }, - { - "rounding", - // Round 1.40625 (which is 90/64) under various rounding policies. - // See figure 20 of https://developer.apple.com/fonts/TTRefMan/RM02/Chap2.html#rounding - []byte{ - opROFF, // [] - opPUSHB000, // [90] - 90, - opROUND00, // [90] - opRTG, // [90] - opPUSHB000, // [90, 90] - 90, - opROUND00, // [90, 64] - opRTHG, // [90, 64] - opPUSHB000, // [90, 64, 90] - 90, - opROUND00, // [90, 64, 96] - opRDTG, // [90, 64, 96] - opPUSHB000, // [90, 64, 96, 90] - 90, - opROUND00, // [90, 64, 96, 64] - opRUTG, // [90, 64, 96, 64] - opPUSHB000, // [90, 64, 96, 64, 90] - 90, - opROUND00, // [90, 64, 96, 64, 128] - opRTDG, // [90, 64, 96, 64, 128] - opPUSHB000, // [90, 64, 96, 64, 128, 90] - 90, - opROUND00, // [90, 64, 96, 64, 128, 96] - }, - []int32{90, 64, 96, 64, 128, 96}, - "", - }, - { - "super-rounding", - // See figure 20 of https://developer.apple.com/fonts/TTRefMan/RM02/Chap2.html#rounding - // and the sign preservation steps of the "Order of rounding operations" section. - []byte{ - opPUSHB000, // [0x58] - 0x58, - opSROUND, // [] - opPUSHW000, // [-81] - 0xff, - 0xaf, - opROUND00, // [-80] - opPUSHW000, // [-80, -80] - 0xff, - 0xb0, - opROUND00, // [-80, -80] - opPUSHW000, // [-80, -80, -17] - 0xff, - 0xef, - opROUND00, // [-80, -80, -16] - opPUSHW000, // [-80, -80, -16, -16] - 0xff, - 0xf0, - opROUND00, // [-80, -80, -16, -16] - opPUSHB000, // [-80, -80, -16, -16, 0] - 0, - opROUND00, // [-80, -80, -16, -16, 16] - opPUSHB000, // [-80, -80, -16, -16, 16, 16] - 16, - opROUND00, // [-80, -80, -16, -16, 16, 16] - opPUSHB000, // [-80, -80, -16, -16, 16, 16, 47] - 47, - opROUND00, // [-80, -80, -16, -16, 16, 16, 16] - opPUSHB000, // [-80, -80, -16, -16, 16, 16, 16, 48] - 48, - opROUND00, // [-80, -80, -16, -16, 16, 16, 16, 80] - }, - []int32{-80, -80, -16, -16, 16, 16, 16, 80}, - "", - }, - { - "roll", - []byte{ - opPUSHB010, // [1, 2, 3] - 1, - 2, - 3, - opROLL, // [2, 3, 1] - }, - []int32{2, 3, 1}, - "", - }, - { - "max/min", - []byte{ - opPUSHW001, // [-2, -3] - 0xff, - 0xfe, - 0xff, - 0xfd, - opMAX, // [-2] - opPUSHW001, // [-2, -4, -5] - 0xff, - 0xfc, - 0xff, - 0xfb, - opMIN, // [-2, -5] - }, - []int32{-2, -5}, - "", - }, - { - "functions", - []byte{ - opPUSHB011, // [3, 7, 0, 3] - 3, - 7, - 0, - 3, - - opFDEF, // Function #3 (not called) - opPUSHB000, - 98, - opENDF, - - opFDEF, // Function #0 - opDUP, - opADD, - opENDF, - - opFDEF, // Function #7 - opPUSHB001, - 10, - 0, - opCALL, - opDUP, - opENDF, - - opFDEF, // Function #3 (again) - opPUSHB000, - 99, - opENDF, - - opPUSHB001, // [2, 0] - 2, - 0, - opCALL, // [4] - opPUSHB000, // [4, 3] - 3, - opLOOPCALL, // [99, 99, 99, 99] - opPUSHB000, // [99, 99, 99, 99, 7] - 7, - opCALL, // [99, 99, 99, 99, 20, 20] - }, - []int32{99, 99, 99, 99, 20, 20}, - "", - }, - } - - for _, tc := range testCases { - h := &hinter{} - h.init(&Font{ - maxStorage: 32, - maxStackElements: 100, - }, 768) - err, errStr := h.run(tc.prog, nil, nil, nil, nil), "" - if err != nil { - errStr = err.Error() - } - if tc.errStr != "" { - if errStr == "" { - t.Errorf("%s: got no error, want %q", tc.desc, tc.errStr) - } else if !strings.Contains(errStr, tc.errStr) { - t.Errorf("%s: got error %q, want one containing %q", tc.desc, errStr, tc.errStr) - } - continue - } - if errStr != "" { - t.Errorf("%s: got error %q, want none", tc.desc, errStr) - continue - } - got := h.stack[:len(tc.want)] - if !reflect.DeepEqual(got, tc.want) { - t.Errorf("%s: got %v, want %v", tc.desc, got, tc.want) - continue - } - } -} - -// TestMove tests that the hinter.move method matches the output of the C -// Freetype implementation. -func TestMove(t *testing.T) { - h, p := hinter{}, Point{} - testCases := []struct { - pvX, pvY, fvX, fvY f2dot14 - wantX, wantY int32 - }{ - {+0x4000, +0x0000, +0x4000, +0x0000, +1000, +0}, - {+0x4000, +0x0000, -0x4000, +0x0000, +1000, +0}, - {-0x4000, +0x0000, +0x4000, +0x0000, -1000, +0}, - {-0x4000, +0x0000, -0x4000, +0x0000, -1000, +0}, - {+0x0000, +0x4000, +0x0000, +0x4000, +0, +1000}, - {+0x0000, +0x4000, +0x0000, -0x4000, +0, +1000}, - {+0x4000, +0x0000, +0x2d41, +0x2d41, +1000, +1000}, - {+0x4000, +0x0000, -0x2d41, +0x2d41, +1000, -1000}, - {+0x4000, +0x0000, +0x2d41, -0x2d41, +1000, -1000}, - {+0x4000, +0x0000, -0x2d41, -0x2d41, +1000, +1000}, - {-0x4000, +0x0000, +0x2d41, +0x2d41, -1000, -1000}, - {-0x4000, +0x0000, -0x2d41, +0x2d41, -1000, +1000}, - {-0x4000, +0x0000, +0x2d41, -0x2d41, -1000, +1000}, - {-0x4000, +0x0000, -0x2d41, -0x2d41, -1000, -1000}, - {+0x376d, +0x2000, +0x2d41, +0x2d41, +732, +732}, - {-0x376d, +0x2000, +0x2d41, +0x2d41, -2732, -2732}, - {+0x376d, +0x2000, +0x2d41, -0x2d41, +2732, -2732}, - {-0x376d, +0x2000, +0x2d41, -0x2d41, -732, +732}, - {-0x376d, -0x2000, +0x2d41, +0x2d41, -732, -732}, - {+0x376d, +0x2000, +0x4000, +0x0000, +1155, +0}, - {+0x376d, +0x2000, +0x0000, +0x4000, +0, +2000}, - } - for _, tc := range testCases { - p = Point{} - h.gs.pv = [2]f2dot14{tc.pvX, tc.pvY} - h.gs.fv = [2]f2dot14{tc.fvX, tc.fvY} - h.move(&p, 1000, true) - tx := p.Flags&flagTouchedX != 0 - ty := p.Flags&flagTouchedY != 0 - wantTX := tc.fvX != 0 - wantTY := tc.fvY != 0 - if p.X != tc.wantX || p.Y != tc.wantY || tx != wantTX || ty != wantTY { - t.Errorf("pv=%v, fv=%v\ngot %d, %d, %t, %t\nwant %d, %d, %t, %t", - h.gs.pv, h.gs.fv, p.X, p.Y, tx, ty, tc.wantX, tc.wantY, wantTX, wantTY) - continue - } - - // Check that p is aligned with the freedom vector. - a := int64(p.X) * int64(tc.fvY) - b := int64(p.Y) * int64(tc.fvX) - if a != b { - t.Errorf("pv=%v, fv=%v, p=%v not aligned with fv", h.gs.pv, h.gs.fv, p) - continue - } - - // Check that the projected p is 1000 away from the origin. - dotProd := (int64(p.X)*int64(tc.pvX) + int64(p.Y)*int64(tc.pvY) + 1<<13) >> 14 - if dotProd != 1000 { - t.Errorf("pv=%v, fv=%v, p=%v not 1000 from origin", h.gs.pv, h.gs.fv, p) - continue - } - } -} - -// TestNormalize tests that the normalize function matches the output of the C -// Freetype implementation. -func TestNormalize(t *testing.T) { - testCases := [][2]f2dot14{ - {-15895, 3974}, - {-15543, 5181}, - {-14654, 7327}, - {-11585, 11585}, - {0, 16384}, - {11585, 11585}, - {14654, 7327}, - {15543, 5181}, - {15895, 3974}, - {16066, 3213}, - {16161, 2694}, - {16219, 2317}, - {16257, 2032}, - {16284, 1809}, - } - for i, want := range testCases { - got := normalize(f2dot14(i)-4, 1) - if got != want { - t.Errorf("i=%d: got %v, want %v", i, got, want) - } - } -} diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/truetype/opcodes.go b/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/truetype/opcodes.go deleted file mode 100644 index 1880e1e63..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/truetype/opcodes.go +++ /dev/null @@ -1,289 +0,0 @@ -// Copyright 2012 The Freetype-Go Authors. All rights reserved. -// Use of this source code is governed by your choice of either the -// FreeType License or the GNU General Public License version 2 (or -// any later version), both of which can be found in the LICENSE file. - -package truetype - -// The Truetype opcodes are summarized at -// https://developer.apple.com/fonts/TTRefMan/RM07/appendixA.html - -const ( - opSVTCA0 = 0x00 // Set freedom and projection Vectors To Coordinate Axis - opSVTCA1 = 0x01 // . - opSPVTCA0 = 0x02 // Set Projection Vector To Coordinate Axis - opSPVTCA1 = 0x03 // . - opSFVTCA0 = 0x04 // Set Freedom Vector to Coordinate Axis - opSFVTCA1 = 0x05 // . - opSPVTL0 = 0x06 // Set Projection Vector To Line - opSPVTL1 = 0x07 // . - opSFVTL0 = 0x08 // Set Freedom Vector To Line - opSFVTL1 = 0x09 // . - opSPVFS = 0x0a // Set Projection Vector From Stack - opSFVFS = 0x0b // Set Freedom Vector From Stack - opGPV = 0x0c // Get Projection Vector - opGFV = 0x0d // Get Freedom Vector - opSFVTPV = 0x0e // Set Freedom Vector To Projection Vector - opISECT = 0x0f // moves point p to the InterSECTion of two lines - opSRP0 = 0x10 // Set Reference Point 0 - opSRP1 = 0x11 // Set Reference Point 1 - opSRP2 = 0x12 // Set Reference Point 2 - opSZP0 = 0x13 // Set Zone Pointer 0 - opSZP1 = 0x14 // Set Zone Pointer 1 - opSZP2 = 0x15 // Set Zone Pointer 2 - opSZPS = 0x16 // Set Zone PointerS - opSLOOP = 0x17 // Set LOOP variable - opRTG = 0x18 // Round To Grid - opRTHG = 0x19 // Round To Half Grid - opSMD = 0x1a // Set Minimum Distance - opELSE = 0x1b // ELSE clause - opJMPR = 0x1c // JuMP Relative - opSCVTCI = 0x1d // Set Control Value Table Cut-In - opSSWCI = 0x1e // Set Single Width Cut-In - opSSW = 0x1f // Set Single Width - opDUP = 0x20 // DUPlicate top stack element - opPOP = 0x21 // POP top stack element - opCLEAR = 0x22 // CLEAR the stack - opSWAP = 0x23 // SWAP the top two elements on the stack - opDEPTH = 0x24 // DEPTH of the stack - opCINDEX = 0x25 // Copy the INDEXed element to the top of the stack - opMINDEX = 0x26 // Move the INDEXed element to the top of the stack - opALIGNPTS = 0x27 // ALIGN PoinTS - op_0x28 = 0x28 // deprecated - opUTP = 0x29 // UnTouch Point - opLOOPCALL = 0x2a // LOOP and CALL function - opCALL = 0x2b // CALL function - opFDEF = 0x2c // Function DEFinition - opENDF = 0x2d // END Function definition - opMDAP0 = 0x2e // Move Direct Absolute Point - opMDAP1 = 0x2f // . - opIUP0 = 0x30 // Interpolate Untouched Points through the outline - opIUP1 = 0x31 // . - opSHP0 = 0x32 // SHift Point using reference point - opSHP1 = 0x33 // . - opSHC0 = 0x34 // SHift Contour using reference point - opSHC1 = 0x35 // . - opSHZ0 = 0x36 // SHift Zone using reference point - opSHZ1 = 0x37 // . - opSHPIX = 0x38 // SHift point by a PIXel amount - opIP = 0x39 // Interpolate Point - opMSIRP0 = 0x3a // Move Stack Indirect Relative Point - opMSIRP1 = 0x3b // . - opALIGNRP = 0x3c // ALIGN to Reference Point - opRTDG = 0x3d // Round To Double Grid - opMIAP0 = 0x3e // Move Indirect Absolute Point - opMIAP1 = 0x3f // . - opNPUSHB = 0x40 // PUSH N Bytes - opNPUSHW = 0x41 // PUSH N Words - opWS = 0x42 // Write Store - opRS = 0x43 // Read Store - opWCVTP = 0x44 // Write Control Value Table in Pixel units - opRCVT = 0x45 // Read Control Value Table entry - opGC0 = 0x46 // Get Coordinate projected onto the projection vector - opGC1 = 0x47 // . - opSCFS = 0x48 // Sets Coordinate From the Stack using projection vector and freedom vector - opMD0 = 0x49 // Measure Distance - opMD1 = 0x4a // . - opMPPEM = 0x4b // Measure Pixels Per EM - opMPS = 0x4c // Measure Point Size - opFLIPON = 0x4d // set the auto FLIP Boolean to ON - opFLIPOFF = 0x4e // set the auto FLIP Boolean to OFF - opDEBUG = 0x4f // DEBUG call - opLT = 0x50 // Less Than - opLTEQ = 0x51 // Less Than or EQual - opGT = 0x52 // Greater Than - opGTEQ = 0x53 // Greater Than or EQual - opEQ = 0x54 // EQual - opNEQ = 0x55 // Not EQual - opODD = 0x56 // ODD - opEVEN = 0x57 // EVEN - opIF = 0x58 // IF test - opEIF = 0x59 // End IF - opAND = 0x5a // logical AND - opOR = 0x5b // logical OR - opNOT = 0x5c // logical NOT - opDELTAP1 = 0x5d // DELTA exception P1 - opSDB = 0x5e // Set Delta Base in the graphics state - opSDS = 0x5f // Set Delta Shift in the graphics state - opADD = 0x60 // ADD - opSUB = 0x61 // SUBtract - opDIV = 0x62 // DIVide - opMUL = 0x63 // MULtiply - opABS = 0x64 // ABSolute value - opNEG = 0x65 // NEGate - opFLOOR = 0x66 // FLOOR - opCEILING = 0x67 // CEILING - opROUND00 = 0x68 // ROUND value - opROUND01 = 0x69 // . - opROUND10 = 0x6a // . - opROUND11 = 0x6b // . - opNROUND00 = 0x6c // No ROUNDing of value - opNROUND01 = 0x6d // . - opNROUND10 = 0x6e // . - opNROUND11 = 0x6f // . - opWCVTF = 0x70 // Write Control Value Table in Funits - opDELTAP2 = 0x71 // DELTA exception P2 - opDELTAP3 = 0x72 // DELTA exception P3 - opDELTAC1 = 0x73 // DELTA exception C1 - opDELTAC2 = 0x74 // DELTA exception C2 - opDELTAC3 = 0x75 // DELTA exception C3 - opSROUND = 0x76 // Super ROUND - opS45ROUND = 0x77 // Super ROUND 45 degrees - opJROT = 0x78 // Jump Relative On True - opJROF = 0x79 // Jump Relative On False - opROFF = 0x7a // Round OFF - op_0x7b = 0x7b // deprecated - opRUTG = 0x7c // Round Up To Grid - opRDTG = 0x7d // Round Down To Grid - opSANGW = 0x7e // Set ANGle Weight - opAA = 0x7f // Adjust Angle - opFLIPPT = 0x80 // FLIP PoinT - opFLIPRGON = 0x81 // FLIP RanGe ON - opFLIPRGOFF = 0x82 // FLIP RanGe OFF - op_0x83 = 0x83 // deprecated - op_0x84 = 0x84 // deprecated - opSCANCTRL = 0x85 // SCAN conversion ConTRoL - opSDPVTL0 = 0x86 // Set Dual Projection Vector To Line - opSDPVTL1 = 0x87 // . - opGETINFO = 0x88 // GET INFOrmation - opIDEF = 0x89 // Instruction DEFinition - opROLL = 0x8a // ROLL the top three stack elements - opMAX = 0x8b // MAXimum of top two stack elements - opMIN = 0x8c // MINimum of top two stack elements - opSCANTYPE = 0x8d // SCANTYPE - opINSTCTRL = 0x8e // INSTRuction execution ConTRoL - op_0x8f = 0x8f - op_0x90 = 0x90 - op_0x91 = 0x91 - op_0x92 = 0x92 - op_0x93 = 0x93 - op_0x94 = 0x94 - op_0x95 = 0x95 - op_0x96 = 0x96 - op_0x97 = 0x97 - op_0x98 = 0x98 - op_0x99 = 0x99 - op_0x9a = 0x9a - op_0x9b = 0x9b - op_0x9c = 0x9c - op_0x9d = 0x9d - op_0x9e = 0x9e - op_0x9f = 0x9f - op_0xa0 = 0xa0 - op_0xa1 = 0xa1 - op_0xa2 = 0xa2 - op_0xa3 = 0xa3 - op_0xa4 = 0xa4 - op_0xa5 = 0xa5 - op_0xa6 = 0xa6 - op_0xa7 = 0xa7 - op_0xa8 = 0xa8 - op_0xa9 = 0xa9 - op_0xaa = 0xaa - op_0xab = 0xab - op_0xac = 0xac - op_0xad = 0xad - op_0xae = 0xae - op_0xaf = 0xaf - opPUSHB000 = 0xb0 // PUSH Bytes - opPUSHB001 = 0xb1 // . - opPUSHB010 = 0xb2 // . - opPUSHB011 = 0xb3 // . - opPUSHB100 = 0xb4 // . - opPUSHB101 = 0xb5 // . - opPUSHB110 = 0xb6 // . - opPUSHB111 = 0xb7 // . - opPUSHW000 = 0xb8 // PUSH Words - opPUSHW001 = 0xb9 // . - opPUSHW010 = 0xba // . - opPUSHW011 = 0xbb // . - opPUSHW100 = 0xbc // . - opPUSHW101 = 0xbd // . - opPUSHW110 = 0xbe // . - opPUSHW111 = 0xbf // . - opMDRP00000 = 0xc0 // Move Direct Relative Point - opMDRP00001 = 0xc1 // . - opMDRP00010 = 0xc2 // . - opMDRP00011 = 0xc3 // . - opMDRP00100 = 0xc4 // . - opMDRP00101 = 0xc5 // . - opMDRP00110 = 0xc6 // . - opMDRP00111 = 0xc7 // . - opMDRP01000 = 0xc8 // . - opMDRP01001 = 0xc9 // . - opMDRP01010 = 0xca // . - opMDRP01011 = 0xcb // . - opMDRP01100 = 0xcc // . - opMDRP01101 = 0xcd // . - opMDRP01110 = 0xce // . - opMDRP01111 = 0xcf // . - opMDRP10000 = 0xd0 // . - opMDRP10001 = 0xd1 // . - opMDRP10010 = 0xd2 // . - opMDRP10011 = 0xd3 // . - opMDRP10100 = 0xd4 // . - opMDRP10101 = 0xd5 // . - opMDRP10110 = 0xd6 // . - opMDRP10111 = 0xd7 // . - opMDRP11000 = 0xd8 // . - opMDRP11001 = 0xd9 // . - opMDRP11010 = 0xda // . - opMDRP11011 = 0xdb // . - opMDRP11100 = 0xdc // . - opMDRP11101 = 0xdd // . - opMDRP11110 = 0xde // . - opMDRP11111 = 0xdf // . - opMIRP00000 = 0xe0 // Move Indirect Relative Point - opMIRP00001 = 0xe1 // . - opMIRP00010 = 0xe2 // . - opMIRP00011 = 0xe3 // . - opMIRP00100 = 0xe4 // . - opMIRP00101 = 0xe5 // . - opMIRP00110 = 0xe6 // . - opMIRP00111 = 0xe7 // . - opMIRP01000 = 0xe8 // . - opMIRP01001 = 0xe9 // . - opMIRP01010 = 0xea // . - opMIRP01011 = 0xeb // . - opMIRP01100 = 0xec // . - opMIRP01101 = 0xed // . - opMIRP01110 = 0xee // . - opMIRP01111 = 0xef // . - opMIRP10000 = 0xf0 // . - opMIRP10001 = 0xf1 // . - opMIRP10010 = 0xf2 // . - opMIRP10011 = 0xf3 // . - opMIRP10100 = 0xf4 // . - opMIRP10101 = 0xf5 // . - opMIRP10110 = 0xf6 // . - opMIRP10111 = 0xf7 // . - opMIRP11000 = 0xf8 // . - opMIRP11001 = 0xf9 // . - opMIRP11010 = 0xfa // . - opMIRP11011 = 0xfb // . - opMIRP11100 = 0xfc // . - opMIRP11101 = 0xfd // . - opMIRP11110 = 0xfe // . - opMIRP11111 = 0xff // . -) - -// popCount is the number of stack elements that each opcode pops. -var popCount = [256]uint8{ - // 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f - 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 5, // 0x00 - 0x0f - 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, // 0x10 - 0x1f - 1, 1, 0, 2, 0, 1, 1, 2, 0, 1, 2, 1, 1, 0, 1, 1, // 0x20 - 0x2f - 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 2, 2, 0, 0, 2, 2, // 0x30 - 0x3f - 0, 0, 2, 1, 2, 1, 1, 1, 2, 2, 2, 0, 0, 0, 0, 0, // 0x40 - 0x4f - 2, 2, 2, 2, 2, 2, 1, 1, 1, 0, 2, 2, 1, 1, 1, 1, // 0x50 - 0x5f - 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x60 - 0x6f - 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 0, 0, 0, 0, 1, 1, // 0x70 - 0x7f - 0, 2, 2, 0, 0, 1, 2, 2, 1, 1, 3, 2, 2, 1, 2, 0, // 0x80 - 0x8f - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x90 - 0x9f - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0xa0 - 0xaf - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0xb0 - 0xbf - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0xc0 - 0xcf - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0xd0 - 0xdf - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // 0xe0 - 0xef - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // 0xf0 - 0xff -} diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/truetype/truetype.go b/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/truetype/truetype.go deleted file mode 100644 index 96ceef547..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/truetype/truetype.go +++ /dev/null @@ -1,554 +0,0 @@ -// Copyright 2010 The Freetype-Go Authors. All rights reserved. -// Use of this source code is governed by your choice of either the -// FreeType License or the GNU General Public License version 2 (or -// any later version), both of which can be found in the LICENSE file. - -// Package truetype provides a parser for the TTF and TTC file formats. -// Those formats are documented at http://developer.apple.com/fonts/TTRefMan/ -// and http://www.microsoft.com/typography/otspec/ -// -// Some of a font's methods provide lengths or co-ordinates, e.g. bounds, font -// metrics and control points. All these methods take a scale parameter, which -// is the number of device units in 1 em. For example, if 1 em is 10 pixels and -// 1 pixel is 64 units, then scale is 640. If the device space involves pixels, -// 64 units per pixel is recommended, since that is what the bytecode hinter -// uses when snapping point co-ordinates to the pixel grid. -// -// To measure a TrueType font in ideal FUnit space, use scale equal to -// font.FUnitsPerEm(). -package truetype - -import ( - "fmt" -) - -// An Index is a Font's index of a rune. -type Index uint16 - -// A Bounds holds the co-ordinate range of one or more glyphs. -// The endpoints are inclusive. -type Bounds struct { - XMin, YMin, XMax, YMax int32 -} - -// An HMetric holds the horizontal metrics of a single glyph. -type HMetric struct { - AdvanceWidth, LeftSideBearing int32 -} - -// A VMetric holds the vertical metrics of a single glyph. -type VMetric struct { - AdvanceHeight, TopSideBearing int32 -} - -// A FormatError reports that the input is not a valid TrueType font. -type FormatError string - -func (e FormatError) Error() string { - return "freetype: invalid TrueType format: " + string(e) -} - -// An UnsupportedError reports that the input uses a valid but unimplemented -// TrueType feature. -type UnsupportedError string - -func (e UnsupportedError) Error() string { - return "freetype: unsupported TrueType feature: " + string(e) -} - -// u32 returns the big-endian uint32 at b[i:]. -func u32(b []byte, i int) uint32 { - return uint32(b[i])<<24 | uint32(b[i+1])<<16 | uint32(b[i+2])<<8 | uint32(b[i+3]) -} - -// u16 returns the big-endian uint16 at b[i:]. -func u16(b []byte, i int) uint16 { - return uint16(b[i])<<8 | uint16(b[i+1]) -} - -// readTable returns a slice of the TTF data given by a table's directory entry. -func readTable(ttf []byte, offsetLength []byte) ([]byte, error) { - offset := int(u32(offsetLength, 0)) - if offset < 0 { - return nil, FormatError(fmt.Sprintf("offset too large: %d", uint32(offset))) - } - length := int(u32(offsetLength, 4)) - if length < 0 { - return nil, FormatError(fmt.Sprintf("length too large: %d", uint32(length))) - } - end := offset + length - if end < 0 || end > len(ttf) { - return nil, FormatError(fmt.Sprintf("offset + length too large: %d", uint32(offset)+uint32(length))) - } - return ttf[offset:end], nil -} - -const ( - locaOffsetFormatUnknown int = iota - locaOffsetFormatShort - locaOffsetFormatLong -) - -// A cm holds a parsed cmap entry. -type cm struct { - start, end, delta, offset uint32 -} - -// A Font represents a Truetype font. -type Font struct { - // Tables sliced from the TTF data. The different tables are documented - // at http://developer.apple.com/fonts/TTRefMan/RM06/Chap6.html - cmap, cvt, fpgm, glyf, hdmx, head, hhea, hmtx, kern, loca, maxp, os2, prep, vmtx []byte - - cmapIndexes []byte - - // Cached values derived from the raw ttf data. - cm []cm - locaOffsetFormat int - nGlyph, nHMetric, nKern int - fUnitsPerEm int32 - bounds Bounds - // Values from the maxp section. - maxTwilightPoints, maxStorage, maxFunctionDefs, maxStackElements uint16 -} - -func (f *Font) parseCmap() error { - const ( - cmapFormat4 = 4 - cmapFormat12 = 12 - languageIndependent = 0 - - // A 32-bit encoding consists of a most-significant 16-bit Platform ID and a - // least-significant 16-bit Platform Specific ID. The magic numbers are - // specified at https://www.microsoft.com/typography/otspec/name.htm - unicodeEncoding = 0x00000003 // PID = 0 (Unicode), PSID = 3 (Unicode 2.0) - microsoftSymbolEncoding = 0x00030000 // PID = 3 (Microsoft), PSID = 0 (Symbol) - microsoftUCS2Encoding = 0x00030001 // PID = 3 (Microsoft), PSID = 1 (UCS-2) - microsoftUCS4Encoding = 0x0003000a // PID = 3 (Microsoft), PSID = 10 (UCS-4) - ) - - if len(f.cmap) < 4 { - return FormatError("cmap too short") - } - nsubtab := int(u16(f.cmap, 2)) - if len(f.cmap) < 8*nsubtab+4 { - return FormatError("cmap too short") - } - offset, found, x := 0, false, 4 - for i := 0; i < nsubtab; i++ { - // We read the 16-bit Platform ID and 16-bit Platform Specific ID as a single uint32. - // All values are big-endian. - pidPsid, o := u32(f.cmap, x), u32(f.cmap, x+4) - x += 8 - // We prefer the Unicode cmap encoding. Failing to find that, we fall - // back onto the Microsoft cmap encoding. - if pidPsid == unicodeEncoding { - offset, found = int(o), true - break - - } else if pidPsid == microsoftSymbolEncoding || - pidPsid == microsoftUCS2Encoding || - pidPsid == microsoftUCS4Encoding { - - offset, found = int(o), true - // We don't break out of the for loop, so that Unicode can override Microsoft. - } - } - if !found { - return UnsupportedError("cmap encoding") - } - if offset <= 0 || offset > len(f.cmap) { - return FormatError("bad cmap offset") - } - - cmapFormat := u16(f.cmap, offset) - switch cmapFormat { - case cmapFormat4: - language := u16(f.cmap, offset+4) - if language != languageIndependent { - return UnsupportedError(fmt.Sprintf("language: %d", language)) - } - segCountX2 := int(u16(f.cmap, offset+6)) - if segCountX2%2 == 1 { - return FormatError(fmt.Sprintf("bad segCountX2: %d", segCountX2)) - } - segCount := segCountX2 / 2 - offset += 14 - f.cm = make([]cm, segCount) - for i := 0; i < segCount; i++ { - f.cm[i].end = uint32(u16(f.cmap, offset)) - offset += 2 - } - offset += 2 - for i := 0; i < segCount; i++ { - f.cm[i].start = uint32(u16(f.cmap, offset)) - offset += 2 - } - for i := 0; i < segCount; i++ { - f.cm[i].delta = uint32(u16(f.cmap, offset)) - offset += 2 - } - for i := 0; i < segCount; i++ { - f.cm[i].offset = uint32(u16(f.cmap, offset)) - offset += 2 - } - f.cmapIndexes = f.cmap[offset:] - return nil - - case cmapFormat12: - if u16(f.cmap, offset+2) != 0 { - return FormatError(fmt.Sprintf("cmap format: % x", f.cmap[offset:offset+4])) - } - length := u32(f.cmap, offset+4) - language := u32(f.cmap, offset+8) - if language != languageIndependent { - return UnsupportedError(fmt.Sprintf("language: %d", language)) - } - nGroups := u32(f.cmap, offset+12) - if length != 12*nGroups+16 { - return FormatError("inconsistent cmap length") - } - offset += 16 - f.cm = make([]cm, nGroups) - for i := uint32(0); i < nGroups; i++ { - f.cm[i].start = u32(f.cmap, offset+0) - f.cm[i].end = u32(f.cmap, offset+4) - f.cm[i].delta = u32(f.cmap, offset+8) - f.cm[i].start - offset += 12 - } - return nil - } - return UnsupportedError(fmt.Sprintf("cmap format: %d", cmapFormat)) -} - -func (f *Font) parseHead() error { - if len(f.head) != 54 { - return FormatError(fmt.Sprintf("bad head length: %d", len(f.head))) - } - f.fUnitsPerEm = int32(u16(f.head, 18)) - f.bounds.XMin = int32(int16(u16(f.head, 36))) - f.bounds.YMin = int32(int16(u16(f.head, 38))) - f.bounds.XMax = int32(int16(u16(f.head, 40))) - f.bounds.YMax = int32(int16(u16(f.head, 42))) - switch i := u16(f.head, 50); i { - case 0: - f.locaOffsetFormat = locaOffsetFormatShort - case 1: - f.locaOffsetFormat = locaOffsetFormatLong - default: - return FormatError(fmt.Sprintf("bad indexToLocFormat: %d", i)) - } - return nil -} - -func (f *Font) parseHhea() error { - if len(f.hhea) != 36 { - return FormatError(fmt.Sprintf("bad hhea length: %d", len(f.hhea))) - } - f.nHMetric = int(u16(f.hhea, 34)) - if 4*f.nHMetric+2*(f.nGlyph-f.nHMetric) != len(f.hmtx) { - return FormatError(fmt.Sprintf("bad hmtx length: %d", len(f.hmtx))) - } - return nil -} - -func (f *Font) parseKern() error { - // Apple's TrueType documentation (http://developer.apple.com/fonts/TTRefMan/RM06/Chap6kern.html) says: - // "Previous versions of the 'kern' table defined both the version and nTables fields in the header - // as UInt16 values and not UInt32 values. Use of the older format on the Mac OS is discouraged - // (although AAT can sense an old kerning table and still make correct use of it). Microsoft - // Windows still uses the older format for the 'kern' table and will not recognize the newer one. - // Fonts targeted for the Mac OS only should use the new format; fonts targeted for both the Mac OS - // and Windows should use the old format." - // Since we expect that almost all fonts aim to be Windows-compatible, we only parse the "older" format, - // just like the C Freetype implementation. - if len(f.kern) == 0 { - if f.nKern != 0 { - return FormatError("bad kern table length") - } - return nil - } - if len(f.kern) < 18 { - return FormatError("kern data too short") - } - version, offset := u16(f.kern, 0), 2 - if version != 0 { - return UnsupportedError(fmt.Sprintf("kern version: %d", version)) - } - n, offset := u16(f.kern, offset), offset+2 - if n != 1 { - return UnsupportedError(fmt.Sprintf("kern nTables: %d", n)) - } - offset += 2 - length, offset := int(u16(f.kern, offset)), offset+2 - coverage, offset := u16(f.kern, offset), offset+2 - if coverage != 0x0001 { - // We only support horizontal kerning. - return UnsupportedError(fmt.Sprintf("kern coverage: 0x%04x", coverage)) - } - f.nKern, offset = int(u16(f.kern, offset)), offset+2 - if 6*f.nKern != length-14 { - return FormatError("bad kern table length") - } - return nil -} - -func (f *Font) parseMaxp() error { - if len(f.maxp) != 32 { - return FormatError(fmt.Sprintf("bad maxp length: %d", len(f.maxp))) - } - f.nGlyph = int(u16(f.maxp, 4)) - f.maxTwilightPoints = u16(f.maxp, 16) - f.maxStorage = u16(f.maxp, 18) - f.maxFunctionDefs = u16(f.maxp, 20) - f.maxStackElements = u16(f.maxp, 24) - return nil -} - -// scale returns x divided by f.fUnitsPerEm, rounded to the nearest integer. -func (f *Font) scale(x int32) int32 { - if x >= 0 { - x += f.fUnitsPerEm / 2 - } else { - x -= f.fUnitsPerEm / 2 - } - return x / f.fUnitsPerEm -} - -// Bounds returns the union of a Font's glyphs' bounds. -func (f *Font) Bounds(scale int32) Bounds { - b := f.bounds - b.XMin = f.scale(scale * b.XMin) - b.YMin = f.scale(scale * b.YMin) - b.XMax = f.scale(scale * b.XMax) - b.YMax = f.scale(scale * b.YMax) - return b -} - -// FUnitsPerEm returns the number of FUnits in a Font's em-square's side. -func (f *Font) FUnitsPerEm() int32 { - return f.fUnitsPerEm -} - -// Index returns a Font's index for the given rune. -func (f *Font) Index(x rune) Index { - c := uint32(x) - for i, j := 0, len(f.cm); i < j; { - h := i + (j-i)/2 - cm := &f.cm[h] - if c < cm.start { - j = h - } else if cm.end < c { - i = h + 1 - } else if cm.offset == 0 { - return Index(c + cm.delta) - } else { - offset := int(cm.offset) + 2*(h-len(f.cm)+int(c-cm.start)) - return Index(u16(f.cmapIndexes, offset)) - } - } - return 0 -} - -// unscaledHMetric returns the unscaled horizontal metrics for the glyph with -// the given index. -func (f *Font) unscaledHMetric(i Index) (h HMetric) { - j := int(i) - if j < 0 || f.nGlyph <= j { - return HMetric{} - } - if j >= f.nHMetric { - p := 4 * (f.nHMetric - 1) - return HMetric{ - AdvanceWidth: int32(u16(f.hmtx, p)), - LeftSideBearing: int32(int16(u16(f.hmtx, p+2*(j-f.nHMetric)+4))), - } - } - return HMetric{ - AdvanceWidth: int32(u16(f.hmtx, 4*j)), - LeftSideBearing: int32(int16(u16(f.hmtx, 4*j+2))), - } -} - -// HMetric returns the horizontal metrics for the glyph with the given index. -func (f *Font) HMetric(scale int32, i Index) HMetric { - h := f.unscaledHMetric(i) - h.AdvanceWidth = f.scale(scale * h.AdvanceWidth) - h.LeftSideBearing = f.scale(scale * h.LeftSideBearing) - return h -} - -// unscaledVMetric returns the unscaled vertical metrics for the glyph with -// the given index. yMax is the top of the glyph's bounding box. -func (f *Font) unscaledVMetric(i Index, yMax int32) (v VMetric) { - j := int(i) - if j < 0 || f.nGlyph <= j { - return VMetric{} - } - if 4*j+4 <= len(f.vmtx) { - return VMetric{ - AdvanceHeight: int32(u16(f.vmtx, 4*j)), - TopSideBearing: int32(int16(u16(f.vmtx, 4*j+2))), - } - } - // The OS/2 table has grown over time. - // https://developer.apple.com/fonts/TTRefMan/RM06/Chap6OS2.html - // says that it was originally 68 bytes. Optional fields, including - // the ascender and descender, are described at - // http://www.microsoft.com/typography/otspec/os2.htm - if len(f.os2) >= 72 { - sTypoAscender := int32(int16(u16(f.os2, 68))) - sTypoDescender := int32(int16(u16(f.os2, 70))) - return VMetric{ - AdvanceHeight: sTypoAscender - sTypoDescender, - TopSideBearing: sTypoAscender - yMax, - } - } - return VMetric{ - AdvanceHeight: f.fUnitsPerEm, - TopSideBearing: 0, - } -} - -// VMetric returns the vertical metrics for the glyph with the given index. -func (f *Font) VMetric(scale int32, i Index) VMetric { - // TODO: should 0 be bounds.YMax? - v := f.unscaledVMetric(i, 0) - v.AdvanceHeight = f.scale(scale * v.AdvanceHeight) - v.TopSideBearing = f.scale(scale * v.TopSideBearing) - return v -} - -// Kerning returns the kerning for the given glyph pair. -func (f *Font) Kerning(scale int32, i0, i1 Index) int32 { - if f.nKern == 0 { - return 0 - } - g := uint32(i0)<<16 | uint32(i1) - lo, hi := 0, f.nKern - for lo < hi { - i := (lo + hi) / 2 - ig := u32(f.kern, 18+6*i) - if ig < g { - lo = i + 1 - } else if ig > g { - hi = i - } else { - return f.scale(scale * int32(int16(u16(f.kern, 22+6*i)))) - } - } - return 0 -} - -// Parse returns a new Font for the given TTF or TTC data. -// -// For TrueType Collections, the first font in the collection is parsed. -func Parse(ttf []byte) (font *Font, err error) { - return parse(ttf, 0) -} - -func parse(ttf []byte, offset int) (font *Font, err error) { - if len(ttf)-offset < 12 { - err = FormatError("TTF data is too short") - return - } - originalOffset := offset - magic, offset := u32(ttf, offset), offset+4 - switch magic { - case 0x00010000: - // No-op. - case 0x74746366: // "ttcf" as a big-endian uint32. - if originalOffset != 0 { - err = FormatError("recursive TTC") - return - } - ttcVersion, offset := u32(ttf, offset), offset+4 - if ttcVersion != 0x00010000 { - // TODO: support TTC version 2.0, once I have such a .ttc file to test with. - err = FormatError("bad TTC version") - return - } - numFonts, offset := int(u32(ttf, offset)), offset+4 - if numFonts <= 0 { - err = FormatError("bad number of TTC fonts") - return - } - if len(ttf[offset:])/4 < numFonts { - err = FormatError("TTC offset table is too short") - return - } - // TODO: provide an API to select which font in a TrueType collection to return, - // not just the first one. This may require an API to parse a TTC's name tables, - // so users of this package can select the font in a TTC by name. - offset = int(u32(ttf, offset)) - if offset <= 0 || offset > len(ttf) { - err = FormatError("bad TTC offset") - return - } - return parse(ttf, offset) - default: - err = FormatError("bad TTF version") - return - } - n, offset := int(u16(ttf, offset)), offset+2 - if len(ttf) < 16*n+12 { - err = FormatError("TTF data is too short") - return - } - f := new(Font) - // Assign the table slices. - for i := 0; i < n; i++ { - x := 16*i + 12 - switch string(ttf[x : x+4]) { - case "cmap": - f.cmap, err = readTable(ttf, ttf[x+8:x+16]) - case "cvt ": - f.cvt, err = readTable(ttf, ttf[x+8:x+16]) - case "fpgm": - f.fpgm, err = readTable(ttf, ttf[x+8:x+16]) - case "glyf": - f.glyf, err = readTable(ttf, ttf[x+8:x+16]) - case "hdmx": - f.hdmx, err = readTable(ttf, ttf[x+8:x+16]) - case "head": - f.head, err = readTable(ttf, ttf[x+8:x+16]) - case "hhea": - f.hhea, err = readTable(ttf, ttf[x+8:x+16]) - case "hmtx": - f.hmtx, err = readTable(ttf, ttf[x+8:x+16]) - case "kern": - f.kern, err = readTable(ttf, ttf[x+8:x+16]) - case "loca": - f.loca, err = readTable(ttf, ttf[x+8:x+16]) - case "maxp": - f.maxp, err = readTable(ttf, ttf[x+8:x+16]) - case "OS/2": - f.os2, err = readTable(ttf, ttf[x+8:x+16]) - case "prep": - f.prep, err = readTable(ttf, ttf[x+8:x+16]) - case "vmtx": - f.vmtx, err = readTable(ttf, ttf[x+8:x+16]) - } - if err != nil { - return - } - } - // Parse and sanity-check the TTF data. - if err = f.parseHead(); err != nil { - return - } - if err = f.parseMaxp(); err != nil { - return - } - if err = f.parseCmap(); err != nil { - return - } - if err = f.parseKern(); err != nil { - return - } - if err = f.parseHhea(); err != nil { - return - } - font = f - return -} diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/truetype/truetype_test.go b/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/truetype/truetype_test.go deleted file mode 100644 index 9ef6ec8d2..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/freetype/truetype/truetype_test.go +++ /dev/null @@ -1,366 +0,0 @@ -// Copyright 2012 The Freetype-Go Authors. All rights reserved. -// Use of this source code is governed by your choice of either the -// FreeType License or the GNU General Public License version 2 (or -// any later version), both of which can be found in the LICENSE file. - -package truetype - -import ( - "bufio" - "fmt" - "io" - "io/ioutil" - "os" - "strconv" - "strings" - "testing" -) - -func parseTestdataFont(name string) (font *Font, testdataIsOptional bool, err error) { - b, err := ioutil.ReadFile(fmt.Sprintf("../../testdata/%s.ttf", name)) - if err != nil { - // The "x-foo" fonts are optional tests, as they are not checked - // in for copyright or file size reasons. - return nil, strings.HasPrefix(name, "x-"), fmt.Errorf("%s: ReadFile: %v", name, err) - } - font, err = Parse(b) - if err != nil { - return nil, true, fmt.Errorf("%s: Parse: %v", name, err) - } - return font, false, nil -} - -// TestParse tests that the luxisr.ttf metrics and glyphs are parsed correctly. -// The numerical values can be manually verified by examining luxisr.ttx. -func TestParse(t *testing.T) { - font, _, err := parseTestdataFont("luxisr") - if err != nil { - t.Fatal(err) - } - if got, want := font.FUnitsPerEm(), int32(2048); got != want { - t.Errorf("FUnitsPerEm: got %v, want %v", got, want) - } - fupe := font.FUnitsPerEm() - if got, want := font.Bounds(fupe), (Bounds{-441, -432, 2024, 2033}); got != want { - t.Errorf("Bounds: got %v, want %v", got, want) - } - - i0 := font.Index('A') - i1 := font.Index('V') - if i0 != 36 || i1 != 57 { - t.Fatalf("Index: i0, i1 = %d, %d, want 36, 57", i0, i1) - } - if got, want := font.HMetric(fupe, i0), (HMetric{1366, 19}); got != want { - t.Errorf("HMetric: got %v, want %v", got, want) - } - if got, want := font.VMetric(fupe, i0), (VMetric{2465, 553}); got != want { - t.Errorf("VMetric: got %v, want %v", got, want) - } - if got, want := font.Kerning(fupe, i0, i1), int32(-144); got != want { - t.Errorf("Kerning: got %v, want %v", got, want) - } - - g := NewGlyphBuf() - err = g.Load(font, fupe, i0, NoHinting) - if err != nil { - t.Fatalf("Load: %v", err) - } - g0 := &GlyphBuf{ - B: g.B, - Point: g.Point, - End: g.End, - } - g1 := &GlyphBuf{ - B: Bounds{19, 0, 1342, 1480}, - Point: []Point{ - {19, 0, 51}, - {581, 1480, 1}, - {789, 1480, 51}, - {1342, 0, 1}, - {1116, 0, 35}, - {962, 410, 3}, - {368, 410, 33}, - {214, 0, 3}, - {428, 566, 19}, - {904, 566, 33}, - {667, 1200, 3}, - }, - End: []int{8, 11}, - } - if got, want := fmt.Sprint(g0), fmt.Sprint(g1); got != want { - t.Errorf("GlyphBuf:\ngot %v\nwant %v", got, want) - } -} - -func TestIndex(t *testing.T) { - testCases := map[string]map[rune]Index{ - "luxisr": { - ' ': 3, - '!': 4, - 'A': 36, - 'V': 57, - 'É': 101, - 'fl': 193, - '\u22c5': 385, - 'ä¸': 0, - }, - - // The x-etc test cases use those versions of the .ttf files provided - // by Ubuntu 14.04. See testdata/make-other-hinting-txts.sh for details. - - "x-arial-bold": { - ' ': 3, - '+': 14, - '0': 19, - '_': 66, - 'w': 90, - '~': 97, - 'Ä': 98, - 'fl': 192, - '½': 242, - 'σ': 305, - 'λ': 540, - 'ỹ': 1275, - '\u04e9': 1319, - 'ä¸': 0, - }, - "x-deja-vu-sans-oblique": { - ' ': 3, - '*': 13, - 'Å’': 276, - 'ω': 861, - '‡': 2571, - '⊕': 3110, - 'fl': 4728, - '\ufb03': 4729, - '\ufffd': 4813, - // TODO: '\U0001f640': ???, - 'ä¸': 0, - }, - "x-droid-sans-japanese": { - ' ': 0, - '\u3000': 3, - '\u3041': 25, - '\u30fe': 201, - '\uff61': 202, - '\uff67': 208, - '\uff9e': 263, - '\uff9f': 264, - '\u4e00': 265, - '\u557e': 1000, - '\u61b6': 2024, - '\u6ede': 3177, - '\u7505': 3555, - '\u81e3': 4602, - '\u81e5': 4603, - '\u81e7': 4604, - '\u81e8': 4605, - '\u81ea': 4606, - '\u81ed': 4607, - '\u81f3': 4608, - '\u81f4': 4609, - '\u91c7': 5796, - '\u9fa0': 6620, - '\u203e': 12584, - }, - "x-times-new-roman": { - ' ': 3, - ':': 29, - 'fl': 192, - 'Ä¿': 273, - 'â™ ': 388, - 'Å–': 451, - 'Σ': 520, - '\u200D': 745, - 'Ẽ': 1216, - '\u04e9': 1319, - 'ä¸': 0, - }, - } - for name, wants := range testCases { - font, testdataIsOptional, err := parseTestdataFont(name) - if err != nil { - if testdataIsOptional { - t.Log(err) - } else { - t.Fatal(err) - } - continue - } - for r, want := range wants { - if got := font.Index(r); got != want { - t.Errorf("%s: Index of %q, aka %U: got %d, want %d", name, r, r, got, want) - } - } - } -} - -type scalingTestData struct { - advanceWidth int32 - bounds Bounds - points []Point -} - -// scalingTestParse parses a line of points like -// 213 -22 -111 236 555;-22 -111 1, 178 555 1, 236 555 1, 36 -111 1 -// The line will not have a trailing "\n". -func scalingTestParse(line string) (ret scalingTestData) { - next := func(s string) (string, int32) { - t, i := "", strings.Index(s, " ") - if i != -1 { - s, t = s[:i], s[i+1:] - } - x, _ := strconv.Atoi(s) - return t, int32(x) - } - - i := strings.Index(line, ";") - prefix, line := line[:i], line[i+1:] - - prefix, ret.advanceWidth = next(prefix) - prefix, ret.bounds.XMin = next(prefix) - prefix, ret.bounds.YMin = next(prefix) - prefix, ret.bounds.XMax = next(prefix) - prefix, ret.bounds.YMax = next(prefix) - - ret.points = make([]Point, 0, 1+strings.Count(line, ",")) - for len(line) > 0 { - s := line - if i := strings.Index(line, ","); i != -1 { - s, line = line[:i], line[i+1:] - for len(line) > 0 && line[0] == ' ' { - line = line[1:] - } - } else { - line = "" - } - s, x := next(s) - s, y := next(s) - s, f := next(s) - ret.points = append(ret.points, Point{X: x, Y: y, Flags: uint32(f)}) - } - return ret -} - -// scalingTestEquals is equivalent to, but faster than, calling -// reflect.DeepEquals(a, b), and also returns the index of the first non-equal -// element. It also treats a nil []Point and an empty non-nil []Point as equal. -// a and b must have equal length. -func scalingTestEquals(a, b []Point) (index int, equals bool) { - for i, p := range a { - if p != b[i] { - return i, false - } - } - return 0, true -} - -var scalingTestCases = []struct { - name string - size int32 -}{ - {"luxisr", 12}, - {"x-arial-bold", 11}, - {"x-deja-vu-sans-oblique", 17}, - {"x-droid-sans-japanese", 9}, - {"x-times-new-roman", 13}, -} - -func testScaling(t *testing.T, h Hinting) { - for _, tc := range scalingTestCases { - font, testdataIsOptional, err := parseTestdataFont(tc.name) - if err != nil { - if testdataIsOptional { - t.Log(err) - } else { - t.Error(err) - } - continue - } - hintingStr := "sans" - if h != NoHinting { - hintingStr = "with" - } - f, err := os.Open(fmt.Sprintf( - "../../testdata/%s-%dpt-%s-hinting.txt", tc.name, tc.size, hintingStr)) - if err != nil { - t.Errorf("%s: Open: %v", tc.name, err) - continue - } - defer f.Close() - - wants := []scalingTestData{} - scanner := bufio.NewScanner(f) - if scanner.Scan() { - major, minor, patch := 0, 0, 0 - _, err := fmt.Sscanf(scanner.Text(), "freetype version %d.%d.%d", &major, &minor, &patch) - if err != nil { - t.Errorf("%s: version information: %v", tc.name, err) - } - if (major < 2) || (major == 2 && minor < 5) || (major == 2 && minor == 5 && patch < 1) { - t.Errorf("%s: need freetype version >= 2.5.1.\n"+ - "Try setting LD_LIBRARY_PATH=/path/to/freetype_built_from_src/objs/.libs/\n"+ - "and re-running testdata/make-other-hinting-txts.sh", - tc.name) - continue - } - } else { - t.Errorf("%s: no version information", tc.name) - continue - } - for scanner.Scan() { - wants = append(wants, scalingTestParse(scanner.Text())) - } - if err := scanner.Err(); err != nil && err != io.EOF { - t.Errorf("%s: Scanner: %v", tc.name, err) - continue - } - - glyphBuf := NewGlyphBuf() - for i, want := range wants { - if err = glyphBuf.Load(font, tc.size*64, Index(i), h); err != nil { - t.Errorf("%s: glyph #%d: Load: %v", tc.name, i, err) - continue - } - got := scalingTestData{ - advanceWidth: glyphBuf.AdvanceWidth, - bounds: glyphBuf.B, - points: glyphBuf.Point, - } - - if got.advanceWidth != want.advanceWidth { - t.Errorf("%s: glyph #%d advance width:\ngot %v\nwant %v", - tc.name, i, got.advanceWidth, want.advanceWidth) - continue - } - - if got.bounds != want.bounds { - t.Errorf("%s: glyph #%d bounds:\ngot %v\nwant %v", - tc.name, i, got.bounds, want.bounds) - continue - } - - for i := range got.points { - got.points[i].Flags &= 0x01 - } - if len(got.points) != len(want.points) { - t.Errorf("%s: glyph #%d:\ngot %v\nwant %v\ndifferent slice lengths: %d versus %d", - tc.name, i, got.points, want.points, len(got.points), len(want.points)) - continue - } - if j, equals := scalingTestEquals(got.points, want.points); !equals { - t.Errorf("%s: glyph #%d:\ngot %v\nwant %v\nat index %d: %v versus %v", - tc.name, i, got.points, want.points, j, got.points[j], want.points[j]) - continue - } - } - } -} - -func TestScalingSansHinting(t *testing.T) { - testScaling(t, NoHinting) -} - -func TestScalingWithHinting(t *testing.T) { - testScaling(t, FullHinting) -} diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/lib/codereview/codereview.cfg b/Godeps/_workspace/src/code.google.com/p/freetype-go/lib/codereview/codereview.cfg deleted file mode 100644 index 2801ebf8d..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/lib/codereview/codereview.cfg +++ /dev/null @@ -1 +0,0 @@ -defaultcc: golang-codereviews@googlegroups.com diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/licenses/ftl.txt b/Godeps/_workspace/src/code.google.com/p/freetype-go/licenses/ftl.txt deleted file mode 100644 index bbaba33f4..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/licenses/ftl.txt +++ /dev/null @@ -1,169 +0,0 @@ - The FreeType Project LICENSE - ---------------------------- - - 2006-Jan-27 - - Copyright 1996-2002, 2006 by - David Turner, Robert Wilhelm, and Werner Lemberg - - - -Introduction -============ - - The FreeType Project is distributed in several archive packages; - some of them may contain, in addition to the FreeType font engine, - various tools and contributions which rely on, or relate to, the - FreeType Project. - - This license applies to all files found in such packages, and - which do not fall under their own explicit license. The license - affects thus the FreeType font engine, the test programs, - documentation and makefiles, at the very least. - - This license was inspired by the BSD, Artistic, and IJG - (Independent JPEG Group) licenses, which all encourage inclusion - and use of free software in commercial and freeware products - alike. As a consequence, its main points are that: - - o We don't promise that this software works. However, we will be - interested in any kind of bug reports. (`as is' distribution) - - o You can use this software for whatever you want, in parts or - full form, without having to pay us. (`royalty-free' usage) - - o You may not pretend that you wrote this software. If you use - it, or only parts of it, in a program, you must acknowledge - somewhere in your documentation that you have used the - FreeType code. (`credits') - - We specifically permit and encourage the inclusion of this - software, with or without modifications, in commercial products. - We disclaim all warranties covering The FreeType Project and - assume no liability related to The FreeType Project. - - - Finally, many people asked us for a preferred form for a - credit/disclaimer to use in compliance with this license. We thus - encourage you to use the following text: - - """ - Portions of this software are copyright © <year> The FreeType - Project (www.freetype.org). All rights reserved. - """ - - Please replace <year> with the value from the FreeType version you - actually use. - - -Legal Terms -=========== - -0. Definitions --------------- - - Throughout this license, the terms `package', `FreeType Project', - and `FreeType archive' refer to the set of files originally - distributed by the authors (David Turner, Robert Wilhelm, and - Werner Lemberg) as the `FreeType Project', be they named as alpha, - beta or final release. - - `You' refers to the licensee, or person using the project, where - `using' is a generic term including compiling the project's source - code as well as linking it to form a `program' or `executable'. - This program is referred to as `a program using the FreeType - engine'. - - This license applies to all files distributed in the original - FreeType Project, including all source code, binaries and - documentation, unless otherwise stated in the file in its - original, unmodified form as distributed in the original archive. - If you are unsure whether or not a particular file is covered by - this license, you must contact us to verify this. - - The FreeType Project is copyright (C) 1996-2000 by David Turner, - Robert Wilhelm, and Werner Lemberg. All rights reserved except as - specified below. - -1. No Warranty --------------- - - THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS - BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO - USE, OF THE FREETYPE PROJECT. - -2. Redistribution ------------------ - - This license grants a worldwide, royalty-free, perpetual and - irrevocable right and license to use, execute, perform, compile, - display, copy, create derivative works of, distribute and - sublicense the FreeType Project (in both source and object code - forms) and derivative works thereof for any purpose; and to - authorize others to exercise some or all of the rights granted - herein, subject to the following conditions: - - o Redistribution of source code must retain this license file - (`FTL.TXT') unaltered; any additions, deletions or changes to - the original files must be clearly indicated in accompanying - documentation. The copyright notices of the unaltered, - original files must be preserved in all copies of source - files. - - o Redistribution in binary form must provide a disclaimer that - states that the software is based in part of the work of the - FreeType Team, in the distribution documentation. We also - encourage you to put an URL to the FreeType web page in your - documentation, though this isn't mandatory. - - These conditions apply to any software derived from or based on - the FreeType Project, not just the unmodified files. If you use - our work, you must acknowledge us. However, no fee need be paid - to us. - -3. Advertising --------------- - - Neither the FreeType authors and contributors nor you shall use - the name of the other for commercial, advertising, or promotional - purposes without specific prior written permission. - - We suggest, but do not require, that you use one or more of the - following phrases to refer to this software in your documentation - or advertising materials: `FreeType Project', `FreeType Engine', - `FreeType library', or `FreeType Distribution'. - - As you have not signed this license, you are not required to - accept it. However, as the FreeType Project is copyrighted - material, only this license, or another one contracted with the - authors, grants you the right to use, distribute, and modify it. - Therefore, by using, distributing, or modifying the FreeType - Project, you indicate that you understand and accept all the terms - of this license. - -4. Contacts ------------ - - There are two mailing lists related to FreeType: - - o freetype@nongnu.org - - Discusses general use and applications of FreeType, as well as - future and wanted additions to the library and distribution. - If you are looking for support, start in this list if you - haven't found anything to help you in the documentation. - - o freetype-devel@nongnu.org - - Discusses bugs, as well as engine internals, design issues, - specific licenses, porting, etc. - - Our home page can be found at - - http://www.freetype.org - - ---- end of FTL.TXT --- diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/licenses/gpl.txt b/Godeps/_workspace/src/code.google.com/p/freetype-go/licenses/gpl.txt deleted file mode 100644 index b2fe7b6af..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/licenses/gpl.txt +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - <signature of Ty Coon>, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/COPYING b/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/COPYING deleted file mode 100644 index 78c606533..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/COPYING +++ /dev/null @@ -1,42 +0,0 @@ -Luxi fonts copyright (c) 2001 by Bigelow & Holmes Inc. Luxi font -instruction code copyright (c) 2001 by URW++ GmbH. All Rights -Reserved. Luxi is a registered trademark of Bigelow & Holmes Inc. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of these Fonts and associated documentation files (the "Font -Software"), to deal in the Font Software, including without -limitation the rights to use, copy, merge, publish, distribute, -sublicense, and/or sell copies of the Font Software, and to permit -persons to whom the Font Software is furnished to do so, subject to -the following conditions: - -The above copyright and trademark notices and this permission notice -shall be included in all copies of one or more of the Font Software. - -The Font Software may not be modified, altered, or added to, and in -particular the designs of glyphs or characters in the Fonts may not -be modified nor may additional glyphs or characters be added to the -Fonts. This License becomes null and void when the Fonts or Font -Software have been modified. - -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL -BIGELOW & HOLMES INC. OR URW++ GMBH. BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, -INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF -CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR -INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT -SOFTWARE. - -Except as contained in this notice, the names of Bigelow & Holmes -Inc. and URW++ GmbH. shall not be used in advertising or otherwise to -promote the sale, use or other dealings in this Font Software without -prior written authorization from Bigelow & Holmes Inc. and URW++ GmbH. - -For further information, contact: - -info@urwpp.de -or -design@bigelowandholmes.com diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/README b/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/README deleted file mode 100644 index bae438269..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/README +++ /dev/null @@ -1,13 +0,0 @@ -The luxi*.ttf and COPYING files in this directory were copied from the X.org -project, specifically -http://xorg.freedesktop.org/releases/individual/font/font-bh-ttf-1.0.0.tar.bz2 - -There are three Luxi fonts: sans (s), serif (r) and monospaced (m). For example, -luxisr.ttf is Luxi Sans. The 'r' here means regular, as opposed to bold. - -The *.ttx files in this directory were generated from the *.ttf files -by the ttx command-line tool. -http://www.letterror.com/code/ttx/index.html - -The *-hinting.txt files in this directory were generated from the *.ttf files -by the ../cmd/print-glyph-points command-line tool. diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luximr.ttf b/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luximr.ttf Binary files differdeleted file mode 100644 index 6ad6e1266..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luximr.ttf +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luximr.ttx b/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luximr.ttx deleted file mode 100644 index e60ebca45..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luximr.ttx +++ /dev/null @@ -1,24616 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="2.4"> - - <GlyphOrder> - <!-- The 'id' attribute is only for humans; it is ignored when parsed. --> - <GlyphID id="0" name=".notdef"/> - <GlyphID id="1" name=".notdef#1"/> - <GlyphID id="2" name=".notdef#2"/> - <GlyphID id="3" name="space"/> - <GlyphID id="4" name="exclam"/> - <GlyphID id="5" name="quotedbl"/> - <GlyphID id="6" name="numbersign"/> - <GlyphID id="7" name="dollar"/> - <GlyphID id="8" name="percent"/> - <GlyphID id="9" name="ampersand"/> - <GlyphID id="10" name="quotesingle"/> - <GlyphID id="11" name="parenleft"/> - <GlyphID id="12" name="parenright"/> - <GlyphID id="13" name="asterisk"/> - <GlyphID id="14" name="plus"/> - <GlyphID id="15" name="comma"/> - <GlyphID id="16" name="hyphen"/> - <GlyphID id="17" name="period"/> - <GlyphID id="18" name="slash"/> - <GlyphID id="19" name="zero"/> - <GlyphID id="20" name="one"/> - <GlyphID id="21" name="two"/> - <GlyphID id="22" name="three"/> - <GlyphID id="23" name="four"/> - <GlyphID id="24" name="five"/> - <GlyphID id="25" name="six"/> - <GlyphID id="26" name="seven"/> - <GlyphID id="27" name="eight"/> - <GlyphID id="28" name="nine"/> - <GlyphID id="29" name="colon"/> - <GlyphID id="30" name="semicolon"/> - <GlyphID id="31" name="less"/> - <GlyphID id="32" name="equal"/> - <GlyphID id="33" name="greater"/> - <GlyphID id="34" name="question"/> - <GlyphID id="35" name="at"/> - <GlyphID id="36" name="A"/> - <GlyphID id="37" name="B"/> - <GlyphID id="38" name="C"/> - <GlyphID id="39" name="D"/> - <GlyphID id="40" name="E"/> - <GlyphID id="41" name="F"/> - <GlyphID id="42" name="G"/> - <GlyphID id="43" name="H"/> - <GlyphID id="44" name="I"/> - <GlyphID id="45" name="J"/> - <GlyphID id="46" name="K"/> - <GlyphID id="47" name="L"/> - <GlyphID id="48" name="M"/> - <GlyphID id="49" name="N"/> - <GlyphID id="50" name="O"/> - <GlyphID id="51" name="P"/> - <GlyphID id="52" name="Q"/> - <GlyphID id="53" name="R"/> - <GlyphID id="54" name="S"/> - <GlyphID id="55" name="T"/> - <GlyphID id="56" name="U"/> - <GlyphID id="57" name="V"/> - <GlyphID id="58" name="W"/> - <GlyphID id="59" name="X"/> - <GlyphID id="60" name="Y"/> - <GlyphID id="61" name="Z"/> - <GlyphID id="62" name="bracketleft"/> - <GlyphID id="63" name="backslash"/> - <GlyphID id="64" name="bracketright"/> - <GlyphID id="65" name="asciicircum"/> - <GlyphID id="66" name="underscore"/> - <GlyphID id="67" name="grave"/> - <GlyphID id="68" name="a"/> - <GlyphID id="69" name="b"/> - <GlyphID id="70" name="c"/> - <GlyphID id="71" name="d"/> - <GlyphID id="72" name="e"/> - <GlyphID id="73" name="f"/> - <GlyphID id="74" name="g"/> - <GlyphID id="75" name="h"/> - <GlyphID id="76" name="i"/> - <GlyphID id="77" name="j"/> - <GlyphID id="78" name="k"/> - <GlyphID id="79" name="l"/> - <GlyphID id="80" name="m"/> - <GlyphID id="81" name="n"/> - <GlyphID id="82" name="o"/> - <GlyphID id="83" name="p"/> - <GlyphID id="84" name="q"/> - <GlyphID id="85" name="r"/> - <GlyphID id="86" name="s"/> - <GlyphID id="87" name="t"/> - <GlyphID id="88" name="u"/> - <GlyphID id="89" name="v"/> - <GlyphID id="90" name="w"/> - <GlyphID id="91" name="x"/> - <GlyphID id="92" name="y"/> - <GlyphID id="93" name="z"/> - <GlyphID id="94" name="braceleft"/> - <GlyphID id="95" name="bar"/> - <GlyphID id="96" name="braceright"/> - <GlyphID id="97" name="asciitilde"/> - <GlyphID id="98" name="Adieresis"/> - <GlyphID id="99" name="Aring"/> - <GlyphID id="100" name="Ccedilla"/> - <GlyphID id="101" name="Eacute"/> - <GlyphID id="102" name="Ntilde"/> - <GlyphID id="103" name="Odieresis"/> - <GlyphID id="104" name="Udieresis"/> - <GlyphID id="105" name="aacute"/> - <GlyphID id="106" name="agrave"/> - <GlyphID id="107" name="acircumflex"/> - <GlyphID id="108" name="adieresis"/> - <GlyphID id="109" name="atilde"/> - <GlyphID id="110" name="aring"/> - <GlyphID id="111" name="ccedilla"/> - <GlyphID id="112" name="eacute"/> - <GlyphID id="113" name="egrave"/> - <GlyphID id="114" name="ecircumflex"/> - <GlyphID id="115" name="edieresis"/> - <GlyphID id="116" name="iacute"/> - <GlyphID id="117" name="igrave"/> - <GlyphID id="118" name="icircumflex"/> - <GlyphID id="119" name="idieresis"/> - <GlyphID id="120" name="ntilde"/> - <GlyphID id="121" name="oacute"/> - <GlyphID id="122" name="ograve"/> - <GlyphID id="123" name="ocircumflex"/> - <GlyphID id="124" name="odieresis"/> - <GlyphID id="125" name="otilde"/> - <GlyphID id="126" name="uacute"/> - <GlyphID id="127" name="ugrave"/> - <GlyphID id="128" name="ucircumflex"/> - <GlyphID id="129" name="udieresis"/> - <GlyphID id="130" name="dagger"/> - <GlyphID id="131" name="degree"/> - <GlyphID id="132" name="cent"/> - <GlyphID id="133" name="sterling"/> - <GlyphID id="134" name="section"/> - <GlyphID id="135" name="bullet"/> - <GlyphID id="136" name="paragraph"/> - <GlyphID id="137" name="germandbls"/> - <GlyphID id="138" name="registered"/> - <GlyphID id="139" name="copyright"/> - <GlyphID id="140" name="trademark"/> - <GlyphID id="141" name="acute"/> - <GlyphID id="142" name="dieresis"/> - <GlyphID id="143" name=".notdef#3"/> - <GlyphID id="144" name="AE"/> - <GlyphID id="145" name="Oslash"/> - <GlyphID id="146" name=".notdef#4"/> - <GlyphID id="147" name="plusminus"/> - <GlyphID id="148" name=".notdef#5"/> - <GlyphID id="149" name=".notdef#6"/> - <GlyphID id="150" name="yen"/> - <GlyphID id="151" name="mu"/> - <GlyphID id="152" name=".notdef#7"/> - <GlyphID id="153" name=".notdef#8"/> - <GlyphID id="154" name=".notdef#9"/> - <GlyphID id="155" name=".notdef#10"/> - <GlyphID id="156" name=".notdef#11"/> - <GlyphID id="157" name="ordfeminine"/> - <GlyphID id="158" name="ordmasculine"/> - <GlyphID id="159" name=".notdef#12"/> - <GlyphID id="160" name="ae"/> - <GlyphID id="161" name="oslash"/> - <GlyphID id="162" name="questiondown"/> - <GlyphID id="163" name="exclamdown"/> - <GlyphID id="164" name="logicalnot"/> - <GlyphID id="165" name=".notdef#13"/> - <GlyphID id="166" name="florin"/> - <GlyphID id="167" name=".notdef#14"/> - <GlyphID id="168" name=".notdef#15"/> - <GlyphID id="169" name="guillemotleft"/> - <GlyphID id="170" name="guillemotright"/> - <GlyphID id="171" name="ellipsis"/> - <GlyphID id="172" name=".notdef#16"/> - <GlyphID id="173" name="Agrave"/> - <GlyphID id="174" name="Atilde"/> - <GlyphID id="175" name="Otilde"/> - <GlyphID id="176" name="OE"/> - <GlyphID id="177" name="oe"/> - <GlyphID id="178" name="endash"/> - <GlyphID id="179" name="emdash"/> - <GlyphID id="180" name="quotedblleft"/> - <GlyphID id="181" name="quotedblright"/> - <GlyphID id="182" name="quoteleft"/> - <GlyphID id="183" name="quoteright"/> - <GlyphID id="184" name="divide"/> - <GlyphID id="185" name=".notdef#17"/> - <GlyphID id="186" name="ydieresis"/> - <GlyphID id="187" name="Ydieresis"/> - <GlyphID id="188" name="fraction"/> - <GlyphID id="189" name="currency"/> - <GlyphID id="190" name="guilsinglleft"/> - <GlyphID id="191" name="guilsinglright"/> - <GlyphID id="192" name="fi"/> - <GlyphID id="193" name="fl"/> - <GlyphID id="194" name="daggerdbl"/> - <GlyphID id="195" name="periodcentered"/> - <GlyphID id="196" name="quotesinglbase"/> - <GlyphID id="197" name="quotedblbase"/> - <GlyphID id="198" name="perthousand"/> - <GlyphID id="199" name="Acircumflex"/> - <GlyphID id="200" name="Ecircumflex"/> - <GlyphID id="201" name="Aacute"/> - <GlyphID id="202" name="Edieresis"/> - <GlyphID id="203" name="Egrave"/> - <GlyphID id="204" name="Iacute"/> - <GlyphID id="205" name="Icircumflex"/> - <GlyphID id="206" name="Idieresis"/> - <GlyphID id="207" name="Igrave"/> - <GlyphID id="208" name="Oacute"/> - <GlyphID id="209" name="Ocircumflex"/> - <GlyphID id="210" name="Euro"/> - <GlyphID id="211" name="Ograve"/> - <GlyphID id="212" name="Uacute"/> - <GlyphID id="213" name="Ucircumflex"/> - <GlyphID id="214" name="Ugrave"/> - <GlyphID id="215" name="dotlessi"/> - <GlyphID id="216" name="circumflex"/> - <GlyphID id="217" name="tilde"/> - <GlyphID id="218" name="macron"/> - <GlyphID id="219" name="breve"/> - <GlyphID id="220" name="dotaccent"/> - <GlyphID id="221" name="ring"/> - <GlyphID id="222" name="cedilla"/> - <GlyphID id="223" name="hungarumlaut"/> - <GlyphID id="224" name="ogonek"/> - <GlyphID id="225" name="caron"/> - <GlyphID id="226" name="Euro#1"/> - <GlyphID id="227" name="nonbreakingspace"/> - <GlyphID id="228" name="brokenbar"/> - <GlyphID id="229" name="sfthyphen"/> - <GlyphID id="230" name="macron#1"/> - <GlyphID id="231" name="twosuperior"/> - <GlyphID id="232" name="threesuperior"/> - <GlyphID id="233" name="periodcentered#1"/> - <GlyphID id="234" name="onesuperior"/> - <GlyphID id="235" name="onequarter"/> - <GlyphID id="236" name="onehalf"/> - <GlyphID id="237" name="threequarters"/> - <GlyphID id="238" name="Eth"/> - <GlyphID id="239" name="multiply"/> - <GlyphID id="240" name="Yacute"/> - <GlyphID id="241" name="Thorn"/> - <GlyphID id="242" name="eth"/> - <GlyphID id="243" name="yacute"/> - <GlyphID id="244" name="thorn"/> - <GlyphID id="245" name="Amacron"/> - <GlyphID id="246" name="amacron"/> - <GlyphID id="247" name="Abreve"/> - <GlyphID id="248" name="abreve"/> - <GlyphID id="249" name="Aogonek"/> - <GlyphID id="250" name="aogonek"/> - <GlyphID id="251" name="Cacute"/> - <GlyphID id="252" name="cacute"/> - <GlyphID id="253" name="Ccircumflex"/> - <GlyphID id="254" name="ccircumflex"/> - <GlyphID id="255" name="Cdotaccent"/> - <GlyphID id="256" name="cdotaccent"/> - <GlyphID id="257" name="Ccaron"/> - <GlyphID id="258" name="ccaron"/> - <GlyphID id="259" name="Dcaron"/> - <GlyphID id="260" name="dcaron"/> - <GlyphID id="261" name="Dcroat"/> - <GlyphID id="262" name="dcroat"/> - <GlyphID id="263" name="Emacron"/> - <GlyphID id="264" name="emacron"/> - <GlyphID id="265" name="Ebreve"/> - <GlyphID id="266" name="ebreve"/> - <GlyphID id="267" name="Edotaccent"/> - <GlyphID id="268" name="edotaccent"/> - <GlyphID id="269" name="Eogonek"/> - <GlyphID id="270" name="eogonek"/> - <GlyphID id="271" name="Ecaron"/> - <GlyphID id="272" name="ecaron"/> - <GlyphID id="273" name="Gcircumflex"/> - <GlyphID id="274" name="gcircumflex"/> - <GlyphID id="275" name="Gbreve"/> - <GlyphID id="276" name="gbreve"/> - <GlyphID id="277" name="Gdotaccent"/> - <GlyphID id="278" name="gdotaccent"/> - <GlyphID id="279" name="Gcommaaccent"/> - <GlyphID id="280" name="gcommaaccent"/> - <GlyphID id="281" name="Hcircumflex"/> - <GlyphID id="282" name="hcircumflex"/> - <GlyphID id="283" name="Hbar"/> - <GlyphID id="284" name="hbar"/> - <GlyphID id="285" name="Itilde"/> - <GlyphID id="286" name="itilde"/> - <GlyphID id="287" name="Imacron"/> - <GlyphID id="288" name="imacron"/> - <GlyphID id="289" name="Ibreve"/> - <GlyphID id="290" name="ibreve"/> - <GlyphID id="291" name="Iogonek"/> - <GlyphID id="292" name="iogonek"/> - <GlyphID id="293" name="Idotaccent"/> - <GlyphID id="294" name="IJ"/> - <GlyphID id="295" name="ij"/> - <GlyphID id="296" name="Jcircumflex"/> - <GlyphID id="297" name="jcircumflex"/> - <GlyphID id="298" name="Kcommaaccent"/> - <GlyphID id="299" name="kcommaaccent"/> - <GlyphID id="300" name="kgreenlandic"/> - <GlyphID id="301" name="Lacute"/> - <GlyphID id="302" name="lacute"/> - <GlyphID id="303" name="Lcommaaccent"/> - <GlyphID id="304" name="lcommaaccent"/> - <GlyphID id="305" name="Lcaron"/> - <GlyphID id="306" name="lcaron"/> - <GlyphID id="307" name="Ldot"/> - <GlyphID id="308" name="ldot"/> - <GlyphID id="309" name="Lslash"/> - <GlyphID id="310" name="lslash"/> - <GlyphID id="311" name="Nacute"/> - <GlyphID id="312" name="nacute"/> - <GlyphID id="313" name="Ncommaaccent"/> - <GlyphID id="314" name="ncommaaccent"/> - <GlyphID id="315" name="Ncaron"/> - <GlyphID id="316" name="ncaron"/> - <GlyphID id="317" name="napostrophe"/> - <GlyphID id="318" name="Eng"/> - <GlyphID id="319" name="eng"/> - <GlyphID id="320" name="Omacron"/> - <GlyphID id="321" name="omacron"/> - <GlyphID id="322" name="Obreve"/> - <GlyphID id="323" name="obreve"/> - <GlyphID id="324" name="Ohungarumlaut"/> - <GlyphID id="325" name="ohungarumlaut"/> - <GlyphID id="326" name="Racute"/> - <GlyphID id="327" name="racute"/> - <GlyphID id="328" name="Rcommaaccent"/> - <GlyphID id="329" name="rcommaaccent"/> - <GlyphID id="330" name="Rcaron"/> - <GlyphID id="331" name="rcaron"/> - <GlyphID id="332" name="Sacute"/> - <GlyphID id="333" name="sacute"/> - <GlyphID id="334" name="Scircumflex"/> - <GlyphID id="335" name="scircumflex"/> - <GlyphID id="336" name="Scedilla"/> - <GlyphID id="337" name="scedilla"/> - <GlyphID id="338" name="Scaron"/> - <GlyphID id="339" name="scaron"/> - <GlyphID id="340" name="Tcommaaccent"/> - <GlyphID id="341" name="tcommaaccent"/> - <GlyphID id="342" name="Tcaron"/> - <GlyphID id="343" name="tcaron"/> - <GlyphID id="344" name="Tbar"/> - <GlyphID id="345" name="tbar"/> - <GlyphID id="346" name="Utilde"/> - <GlyphID id="347" name="utilde"/> - <GlyphID id="348" name="Umacron"/> - <GlyphID id="349" name="umacron"/> - <GlyphID id="350" name="Ubreve"/> - <GlyphID id="351" name="ubreve"/> - <GlyphID id="352" name="Uring"/> - <GlyphID id="353" name="uring"/> - <GlyphID id="354" name="Uhungarumlaut"/> - <GlyphID id="355" name="uhungarumlaut"/> - <GlyphID id="356" name="Uogonek"/> - <GlyphID id="357" name="uogonek"/> - <GlyphID id="358" name="Wcircumflex"/> - <GlyphID id="359" name="wcircumflex"/> - <GlyphID id="360" name="Ycircumflex"/> - <GlyphID id="361" name="ycircumflex"/> - <GlyphID id="362" name="Zacute"/> - <GlyphID id="363" name="zacute"/> - <GlyphID id="364" name="Zdotaccent"/> - <GlyphID id="365" name="zdotaccent"/> - <GlyphID id="366" name="Zcaron"/> - <GlyphID id="367" name="zcaron"/> - <GlyphID id="368" name="longs"/> - <GlyphID id="369" name="Scommaaccent"/> - <GlyphID id="370" name="scommaaccent"/> - <GlyphID id="371" name="Tcommabelow"/> - <GlyphID id="372" name="tcommabelow"/> - <GlyphID id="373" name="Unterkomma"/> - <GlyphID id="374" name="semicolon#1"/> - <GlyphID id="375" name="anoteleia"/> - <GlyphID id="376" name="hyphen#1"/> - <GlyphID id="377" name="nbhyphen"/> - <GlyphID id="378" name="figuredash"/> - <GlyphID id="379" name="afii00208"/> - <GlyphID id="380" name="quotereversed"/> - <GlyphID id="381" name="radicalex"/> - <GlyphID id="382" name="estimated"/> - <GlyphID id="383" name="minus"/> - <GlyphID id="384" name="fraction#1"/> - <GlyphID id="385" name="dotmath"/> - <GlyphID id="386" name="fi#1"/> - <GlyphID id="387" name="fl#1"/> - <GlyphID id="388" name="foursuperiour"/> - <GlyphID id="389" name="onesuperiour"/> - <GlyphID id="390" name="twosuperiour"/> - <GlyphID id="391" name="threesuperiour"/> - <GlyphID id="392" name="foursuperiour#1"/> - <GlyphID id="393" name="dotlessj"/> - <GlyphID id="394" name=".notdef#18"/> - </GlyphOrder> - - <head> - <!-- Most of this table will be recalculated by the compiler --> - <tableVersion value="1.0"/> - <fontRevision value="1.19999694824"/> - <checkSumAdjustment value="0x4e0d8101"/> - <magicNumber value="0x5f0f3cf5"/> - <flags value="00000000 00001111"/> - <unitsPerEm value="2048"/> - <created value="Fri Oct 12 14:05:57 2001"/> - <modified value="Fri Oct 12 10:47:54 2001"/> - <xMin value="0"/> - <yMin value="-432"/> - <xMax value="1229"/> - <yMax value="2033"/> - <macStyle value="00000000 00000000"/> - <lowestRecPPEM value="12"/> - <fontDirectionHint value="2"/> - <indexToLocFormat value="0"/> - <glyphDataFormat value="0"/> - </head> - - <hhea> - <tableVersion value="1.0"/> - <ascent value="2033"/> - <descent value="-432"/> - <lineGap value="0"/> - <advanceWidthMax value="1229"/> - <minLeftSideBearing value="0"/> - <minRightSideBearing value="0"/> - <xMaxExtent value="1229"/> - <caretSlopeRise value="1"/> - <caretSlopeRun value="0"/> - <caretOffset value="0"/> - <reserved0 value="0"/> - <reserved1 value="0"/> - <reserved2 value="0"/> - <reserved3 value="0"/> - <metricDataFormat value="0"/> - <numberOfHMetrics value="395"/> - </hhea> - - <maxp> - <!-- Most of this table will be recalculated by the compiler --> - <tableVersion value="0x10000"/> - <numGlyphs value="395"/> - <maxPoints value="79"/> - <maxContours value="7"/> - <maxCompositePoints value="85"/> - <maxCompositeContours value="4"/> - <maxZones value="2"/> - <maxTwilightPoints value="4"/> - <maxStorage value="0"/> - <maxFunctionDefs value="15"/> - <maxInstructionDefs value="0"/> - <maxStackElements value="2048"/> - <maxSizeOfInstructions value="197"/> - <maxComponentElements value="2"/> - <maxComponentDepth value="1"/> - </maxp> - - <OS_2> - <version value="2"/> - <xAvgCharWidth value="1229"/> - <usWeightClass value="400"/> - <usWidthClass value="5"/> - <fsType value="00000000 00000000"/> - <ySubscriptXSize value="1434"/> - <ySubscriptYSize value="1331"/> - <ySubscriptXOffset value="0"/> - <ySubscriptYOffset value="283"/> - <ySuperscriptXSize value="1434"/> - <ySuperscriptYSize value="1331"/> - <ySuperscriptXOffset value="0"/> - <ySuperscriptYOffset value="977"/> - <yStrikeoutSize value="0"/> - <yStrikeoutPosition value="0"/> - <sFamilyClass value="1285"/> - <panose> - <bFamilyType value="2"/> - <bSerifStyle value="6"/> - <bWeight value="6"/> - <bProportion value="9"/> - <bContrast value="5"/> - <bStrokeVariation value="0"/> - <bArmStyle value="0"/> - <bLetterForm value="0"/> - <bMidline value="0"/> - <bXHeight value="0"/> - </panose> - <ulUnicodeRange1 value="00000000 00000000 00000000 00000111"/> - <ulUnicodeRange2 value="00000000 00000000 00000000 00000010"/> - <ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/> - <ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/> - <achVendID value="B&H "/> - <fsSelection value="00000000 01000000"/> - <fsFirstCharIndex value="32"/> - <fsLastCharIndex value="64258"/> - <sTypoAscender value="1604"/> - <sTypoDescender value="-420"/> - <sTypoLineGap value="167"/> - <usWinAscent value="1935"/> - <usWinDescent value="432"/> - <ulCodePageRange1 value="00000000 00000000 00000000 10010011"/> - <ulCodePageRange2 value="00000000 00000000 00000000 00000000"/> - <sxHeight value="0"/> - <sCapHeight value="0"/> - <usDefaultChar value="0"/> - <usBreakChar value="0"/> - <usMaxContex value="0"/> - </OS_2> - - <hmtx> - <mtx name=".notdef" width="1229" lsb="123"/> - <mtx name=".notdef#1" width="0" lsb="0"/> - <mtx name=".notdef#10" width="1229" lsb="0"/> - <mtx name=".notdef#11" width="1229" lsb="0"/> - <mtx name=".notdef#12" width="1229" lsb="0"/> - <mtx name=".notdef#13" width="1229" lsb="0"/> - <mtx name=".notdef#14" width="1229" lsb="0"/> - <mtx name=".notdef#15" width="1229" lsb="0"/> - <mtx name=".notdef#16" width="1229" lsb="0"/> - <mtx name=".notdef#17" width="1229" lsb="0"/> - <mtx name=".notdef#18" width="1229" lsb="0"/> - <mtx name=".notdef#2" width="1229" lsb="0"/> - <mtx name=".notdef#3" width="1229" lsb="0"/> - <mtx name=".notdef#4" width="1229" lsb="0"/> - <mtx name=".notdef#5" width="1229" lsb="0"/> - <mtx name=".notdef#6" width="1229" lsb="0"/> - <mtx name=".notdef#7" width="1229" lsb="0"/> - <mtx name=".notdef#8" width="1229" lsb="0"/> - <mtx name=".notdef#9" width="1229" lsb="0"/> - <mtx name="A" width="1229" lsb="25"/> - <mtx name="AE" width="1229" lsb="12"/> - <mtx name="Aacute" width="1229" lsb="25"/> - <mtx name="Abreve" width="1229" lsb="25"/> - <mtx name="Acircumflex" width="1229" lsb="25"/> - <mtx name="Adieresis" width="1229" lsb="25"/> - <mtx name="Agrave" width="1229" lsb="25"/> - <mtx name="Amacron" width="1229" lsb="25"/> - <mtx name="Aogonek" width="1229" lsb="25"/> - <mtx name="Aring" width="1229" lsb="25"/> - <mtx name="Atilde" width="1229" lsb="25"/> - <mtx name="B" width="1229" lsb="74"/> - <mtx name="C" width="1229" lsb="123"/> - <mtx name="Cacute" width="1229" lsb="123"/> - <mtx name="Ccaron" width="1229" lsb="123"/> - <mtx name="Ccedilla" width="1229" lsb="123"/> - <mtx name="Ccircumflex" width="1229" lsb="123"/> - <mtx name="Cdotaccent" width="1229" lsb="123"/> - <mtx name="D" width="1229" lsb="49"/> - <mtx name="Dcaron" width="1229" lsb="49"/> - <mtx name="Dcroat" width="1229" lsb="49"/> - <mtx name="E" width="1229" lsb="74"/> - <mtx name="Eacute" width="1229" lsb="74"/> - <mtx name="Ebreve" width="1229" lsb="74"/> - <mtx name="Ecaron" width="1229" lsb="74"/> - <mtx name="Ecircumflex" width="1229" lsb="74"/> - <mtx name="Edieresis" width="1229" lsb="74"/> - <mtx name="Edotaccent" width="1229" lsb="74"/> - <mtx name="Egrave" width="1229" lsb="74"/> - <mtx name="Emacron" width="1229" lsb="74"/> - <mtx name="Eng" width="1229" lsb="74"/> - <mtx name="Eogonek" width="1229" lsb="74"/> - <mtx name="Eth" width="1229" lsb="49"/> - <mtx name="Euro" width="1229" lsb="6"/> - <mtx name="Euro#1" width="1229" lsb="6"/> - <mtx name="F" width="1229" lsb="111"/> - <mtx name="G" width="1229" lsb="74"/> - <mtx name="Gbreve" width="1229" lsb="74"/> - <mtx name="Gcircumflex" width="1229" lsb="74"/> - <mtx name="Gcommaaccent" width="1229" lsb="74"/> - <mtx name="Gdotaccent" width="1229" lsb="74"/> - <mtx name="H" width="1229" lsb="62"/> - <mtx name="Hbar" width="1229" lsb="37"/> - <mtx name="Hcircumflex" width="1229" lsb="62"/> - <mtx name="I" width="1229" lsb="160"/> - <mtx name="IJ" width="1229" lsb="45"/> - <mtx name="Iacute" width="1229" lsb="160"/> - <mtx name="Ibreve" width="1229" lsb="160"/> - <mtx name="Icircumflex" width="1229" lsb="160"/> - <mtx name="Idieresis" width="1229" lsb="160"/> - <mtx name="Idotaccent" width="1229" lsb="160"/> - <mtx name="Igrave" width="1229" lsb="160"/> - <mtx name="Imacron" width="1229" lsb="160"/> - <mtx name="Iogonek" width="1229" lsb="160"/> - <mtx name="Itilde" width="1229" lsb="160"/> - <mtx name="J" width="1229" lsb="111"/> - <mtx name="Jcircumflex" width="1229" lsb="111"/> - <mtx name="K" width="1229" lsb="74"/> - <mtx name="Kcommaaccent" width="1229" lsb="74"/> - <mtx name="L" width="1229" lsb="86"/> - <mtx name="Lacute" width="1229" lsb="86"/> - <mtx name="Lcaron" width="1229" lsb="86"/> - <mtx name="Lcommaaccent" width="1229" lsb="86"/> - <mtx name="Ldot" width="1229" lsb="86"/> - <mtx name="Lslash" width="1229" lsb="86"/> - <mtx name="M" width="1229" lsb="25"/> - <mtx name="N" width="1229" lsb="74"/> - <mtx name="Nacute" width="1229" lsb="74"/> - <mtx name="Ncaron" width="1229" lsb="74"/> - <mtx name="Ncommaaccent" width="1229" lsb="74"/> - <mtx name="Ntilde" width="1229" lsb="74"/> - <mtx name="O" width="1229" lsb="62"/> - <mtx name="OE" width="1229" lsb="37"/> - <mtx name="Oacute" width="1229" lsb="62"/> - <mtx name="Obreve" width="1229" lsb="62"/> - <mtx name="Ocircumflex" width="1229" lsb="62"/> - <mtx name="Odieresis" width="1229" lsb="62"/> - <mtx name="Ograve" width="1229" lsb="62"/> - <mtx name="Ohungarumlaut" width="1229" lsb="62"/> - <mtx name="Omacron" width="1229" lsb="62"/> - <mtx name="Oslash" width="1229" lsb="62"/> - <mtx name="Otilde" width="1229" lsb="62"/> - <mtx name="P" width="1229" lsb="86"/> - <mtx name="Q" width="1229" lsb="62"/> - <mtx name="R" width="1229" lsb="86"/> - <mtx name="Racute" width="1229" lsb="86"/> - <mtx name="Rcaron" width="1229" lsb="86"/> - <mtx name="Rcommaaccent" width="1229" lsb="86"/> - <mtx name="S" width="1229" lsb="151"/> - <mtx name="Sacute" width="1229" lsb="151"/> - <mtx name="Scaron" width="1229" lsb="151"/> - <mtx name="Scedilla" width="1229" lsb="151"/> - <mtx name="Scircumflex" width="1229" lsb="151"/> - <mtx name="Scommaaccent" width="1229" lsb="151"/> - <mtx name="T" width="1229" lsb="62"/> - <mtx name="Tbar" width="1229" lsb="62"/> - <mtx name="Tcaron" width="1229" lsb="62"/> - <mtx name="Tcommaaccent" width="1229" lsb="62"/> - <mtx name="Tcommabelow" width="1229" lsb="62"/> - <mtx name="Thorn" width="1229" lsb="86"/> - <mtx name="U" width="1229" lsb="62"/> - <mtx name="Uacute" width="1229" lsb="62"/> - <mtx name="Ubreve" width="1229" lsb="62"/> - <mtx name="Ucircumflex" width="1229" lsb="62"/> - <mtx name="Udieresis" width="1229" lsb="62"/> - <mtx name="Ugrave" width="1229" lsb="62"/> - <mtx name="Uhungarumlaut" width="1229" lsb="62"/> - <mtx name="Umacron" width="1229" lsb="62"/> - <mtx name="Unterkomma" width="1229" lsb="464"/> - <mtx name="Uogonek" width="1229" lsb="62"/> - <mtx name="Uring" width="1229" lsb="62"/> - <mtx name="Utilde" width="1229" lsb="62"/> - <mtx name="V" width="1229" lsb="26"/> - <mtx name="W" width="1229" lsb="23"/> - <mtx name="Wcircumflex" width="1229" lsb="23"/> - <mtx name="X" width="1229" lsb="49"/> - <mtx name="Y" width="1229" lsb="27"/> - <mtx name="Yacute" width="1229" lsb="27"/> - <mtx name="Ycircumflex" width="1229" lsb="27"/> - <mtx name="Ydieresis" width="1229" lsb="27"/> - <mtx name="Z" width="1229" lsb="148"/> - <mtx name="Zacute" width="1229" lsb="148"/> - <mtx name="Zcaron" width="1229" lsb="148"/> - <mtx name="Zdotaccent" width="1229" lsb="148"/> - <mtx name="a" width="1229" lsb="148"/> - <mtx name="aacute" width="1229" lsb="148"/> - <mtx name="abreve" width="1229" lsb="148"/> - <mtx name="acircumflex" width="1229" lsb="148"/> - <mtx name="acute" width="1229" lsb="392"/> - <mtx name="adieresis" width="1229" lsb="148"/> - <mtx name="ae" width="1229" lsb="37"/> - <mtx name="afii00208" width="1229" lsb="0"/> - <mtx name="agrave" width="1229" lsb="148"/> - <mtx name="amacron" width="1229" lsb="148"/> - <mtx name="ampersand" width="1229" lsb="57"/> - <mtx name="anoteleia" width="1229" lsb="491"/> - <mtx name="aogonek" width="1229" lsb="148"/> - <mtx name="aring" width="1229" lsb="148"/> - <mtx name="asciicircum" width="1229" lsb="146"/> - <mtx name="asciitilde" width="1229" lsb="121"/> - <mtx name="asterisk" width="1229" lsb="161"/> - <mtx name="at" width="1229" lsb="87"/> - <mtx name="atilde" width="1229" lsb="148"/> - <mtx name="b" width="1229" lsb="62"/> - <mtx name="backslash" width="1229" lsb="99"/> - <mtx name="bar" width="1229" lsb="540"/> - <mtx name="braceleft" width="1229" lsb="183"/> - <mtx name="braceright" width="1229" lsb="227"/> - <mtx name="bracketleft" width="1229" lsb="395"/> - <mtx name="bracketright" width="1229" lsb="291"/> - <mtx name="breve" width="1229" lsb="269"/> - <mtx name="brokenbar" width="1229" lsb="540"/> - <mtx name="bullet" width="1229" lsb="318"/> - <mtx name="c" width="1229" lsb="148"/> - <mtx name="cacute" width="1229" lsb="148"/> - <mtx name="caron" width="1229" lsb="248"/> - <mtx name="ccaron" width="1229" lsb="148"/> - <mtx name="ccedilla" width="1229" lsb="148"/> - <mtx name="ccircumflex" width="1229" lsb="148"/> - <mtx name="cdotaccent" width="1229" lsb="148"/> - <mtx name="cedilla" width="1229" lsb="441"/> - <mtx name="cent" width="1229" lsb="173"/> - <mtx name="circumflex" width="1229" lsb="248"/> - <mtx name="colon" width="1229" lsb="466"/> - <mtx name="comma" width="1229" lsb="466"/> - <mtx name="copyright" width="1229" lsb="62"/> - <mtx name="currency" width="1229" lsb="85"/> - <mtx name="d" width="1229" lsb="111"/> - <mtx name="dagger" width="1229" lsb="170"/> - <mtx name="daggerdbl" width="1229" lsb="170"/> - <mtx name="dcaron" width="1229" lsb="111"/> - <mtx name="dcroat" width="1229" lsb="111"/> - <mtx name="degree" width="1229" lsb="318"/> - <mtx name="dieresis" width="1229" lsb="281"/> - <mtx name="divide" width="1229" lsb="99"/> - <mtx name="dollar" width="1229" lsb="143"/> - <mtx name="dotaccent" width="1229" lsb="516"/> - <mtx name="dotlessi" width="1229" lsb="148"/> - <mtx name="dotlessj" width="1229" lsb="159"/> - <mtx name="dotmath" width="1229" lsb="491"/> - <mtx name="e" width="1229" lsb="123"/> - <mtx name="eacute" width="1229" lsb="123"/> - <mtx name="ebreve" width="1229" lsb="123"/> - <mtx name="ecaron" width="1229" lsb="123"/> - <mtx name="ecircumflex" width="1229" lsb="123"/> - <mtx name="edieresis" width="1229" lsb="123"/> - <mtx name="edotaccent" width="1229" lsb="123"/> - <mtx name="egrave" width="1229" lsb="123"/> - <mtx name="eight" width="1229" lsb="120"/> - <mtx name="ellipsis" width="1229" lsb="81"/> - <mtx name="emacron" width="1229" lsb="123"/> - <mtx name="emdash" width="1229" lsb="0"/> - <mtx name="endash" width="1229" lsb="121"/> - <mtx name="eng" width="1229" lsb="69"/> - <mtx name="eogonek" width="1229" lsb="123"/> - <mtx name="equal" width="1229" lsb="99"/> - <mtx name="estimated" width="1229" lsb="123"/> - <mtx name="eth" width="1229" lsb="111"/> - <mtx name="exclam" width="1229" lsb="491"/> - <mtx name="exclamdown" width="1229" lsb="491"/> - <mtx name="f" width="1229" lsb="148"/> - <mtx name="fi" width="1229" lsb="69"/> - <mtx name="fi#1" width="1229" lsb="69"/> - <mtx name="figuredash" width="1229" lsb="121"/> - <mtx name="five" width="1229" lsb="249"/> - <mtx name="fl" width="1229" lsb="69"/> - <mtx name="fl#1" width="1229" lsb="69"/> - <mtx name="florin" width="1229" lsb="84"/> - <mtx name="four" width="1229" lsb="84"/> - <mtx name="foursuperiour" width="1229" lsb="284"/> - <mtx name="foursuperiour#1" width="1229" lsb="155"/> - <mtx name="fraction" width="1229" lsb="155"/> - <mtx name="fraction#1" width="1229" lsb="155"/> - <mtx name="g" width="1229" lsb="86"/> - <mtx name="gbreve" width="1229" lsb="86"/> - <mtx name="gcircumflex" width="1229" lsb="86"/> - <mtx name="gcommaaccent" width="1229" lsb="86"/> - <mtx name="gdotaccent" width="1229" lsb="86"/> - <mtx name="germandbls" width="1229" lsb="62"/> - <mtx name="grave" width="1229" lsb="392"/> - <mtx name="greater" width="1229" lsb="99"/> - <mtx name="guillemotleft" width="1229" lsb="82"/> - <mtx name="guillemotright" width="1229" lsb="123"/> - <mtx name="guilsinglleft" width="1229" lsb="234"/> - <mtx name="guilsinglright" width="1229" lsb="283"/> - <mtx name="h" width="1229" lsb="69"/> - <mtx name="hbar" width="1229" lsb="69"/> - <mtx name="hcircumflex" width="1229" lsb="69"/> - <mtx name="hungarumlaut" width="1229" lsb="223"/> - <mtx name="hyphen" width="1229" lsb="148"/> - <mtx name="hyphen#1" width="1229" lsb="148"/> - <mtx name="i" width="1229" lsb="148"/> - <mtx name="iacute" width="1229" lsb="148"/> - <mtx name="ibreve" width="1229" lsb="148"/> - <mtx name="icircumflex" width="1229" lsb="148"/> - <mtx name="idieresis" width="1229" lsb="148"/> - <mtx name="igrave" width="1229" lsb="148"/> - <mtx name="ij" width="1229" lsb="57"/> - <mtx name="imacron" width="1229" lsb="148"/> - <mtx name="iogonek" width="1229" lsb="148"/> - <mtx name="itilde" width="1229" lsb="148"/> - <mtx name="j" width="1229" lsb="159"/> - <mtx name="jcircumflex" width="1229" lsb="159"/> - <mtx name="k" width="1229" lsb="74"/> - <mtx name="kcommaaccent" width="1229" lsb="74"/> - <mtx name="kgreenlandic" width="1229" lsb="74"/> - <mtx name="l" width="1229" lsb="148"/> - <mtx name="lacute" width="1229" lsb="148"/> - <mtx name="lcaron" width="1229" lsb="123"/> - <mtx name="lcommaaccent" width="1229" lsb="148"/> - <mtx name="ldot" width="1229" lsb="123"/> - <mtx name="less" width="1229" lsb="99"/> - <mtx name="logicalnot" width="1229" lsb="99"/> - <mtx name="longs" width="1229" lsb="148"/> - <mtx name="lslash" width="1229" lsb="148"/> - <mtx name="m" width="1229" lsb="26"/> - <mtx name="macron" width="1229" lsb="269"/> - <mtx name="macron#1" width="1229" lsb="0"/> - <mtx name="minus" width="1229" lsb="99"/> - <mtx name="mu" width="1229" lsb="68"/> - <mtx name="multiply" width="1229" lsb="99"/> - <mtx name="n" width="1229" lsb="69"/> - <mtx name="nacute" width="1229" lsb="69"/> - <mtx name="napostrophe" width="1229" lsb="8"/> - <mtx name="nbhyphen" width="1229" lsb="148"/> - <mtx name="ncaron" width="1229" lsb="69"/> - <mtx name="ncommaaccent" width="1229" lsb="69"/> - <mtx name="nine" width="1229" lsb="96"/> - <mtx name="nonbreakingspace" width="1229" lsb="0"/> - <mtx name="ntilde" width="1229" lsb="69"/> - <mtx name="numbersign" width="1229" lsb="41"/> - <mtx name="o" width="1229" lsb="111"/> - <mtx name="oacute" width="1229" lsb="111"/> - <mtx name="obreve" width="1229" lsb="111"/> - <mtx name="ocircumflex" width="1229" lsb="111"/> - <mtx name="odieresis" width="1229" lsb="111"/> - <mtx name="oe" width="1229" lsb="49"/> - <mtx name="ogonek" width="1229" lsb="444"/> - <mtx name="ograve" width="1229" lsb="111"/> - <mtx name="ohungarumlaut" width="1229" lsb="111"/> - <mtx name="omacron" width="1229" lsb="111"/> - <mtx name="one" width="1229" lsb="112"/> - <mtx name="onehalf" width="1229" lsb="43"/> - <mtx name="onequarter" width="1229" lsb="43"/> - <mtx name="onesuperior" width="1229" lsb="266"/> - <mtx name="onesuperiour" width="1229" lsb="407"/> - <mtx name="ordfeminine" width="1229" lsb="136"/> - <mtx name="ordmasculine" width="1229" lsb="148"/> - <mtx name="oslash" width="1229" lsb="111"/> - <mtx name="otilde" width="1229" lsb="111"/> - <mtx name="p" width="1229" lsb="62"/> - <mtx name="paragraph" width="1229" lsb="100"/> - <mtx name="parenleft" width="1229" lsb="321"/> - <mtx name="parenright" width="1229" lsb="247"/> - <mtx name="percent" width="1229" lsb="21"/> - <mtx name="period" width="1229" lsb="466"/> - <mtx name="periodcentered" width="1229" lsb="491"/> - <mtx name="periodcentered#1" width="1229" lsb="491"/> - <mtx name="perthousand" width="1229" lsb="12"/> - <mtx name="plus" width="1229" lsb="99"/> - <mtx name="plusminus" width="1229" lsb="99"/> - <mtx name="q" width="1229" lsb="111"/> - <mtx name="question" width="1229" lsb="202"/> - <mtx name="questiondown" width="1229" lsb="151"/> - <mtx name="quotedbl" width="1229" lsb="244"/> - <mtx name="quotedblbase" width="1229" lsb="257"/> - <mtx name="quotedblleft" width="1229" lsb="232"/> - <mtx name="quotedblright" width="1229" lsb="257"/> - <mtx name="quoteleft" width="1229" lsb="454"/> - <mtx name="quotereversed" width="1229" lsb="0"/> - <mtx name="quoteright" width="1229" lsb="479"/> - <mtx name="quotesinglbase" width="1229" lsb="479"/> - <mtx name="quotesingle" width="1229" lsb="466"/> - <mtx name="r" width="1229" lsb="74"/> - <mtx name="racute" width="1229" lsb="74"/> - <mtx name="radicalex" width="1229" lsb="0"/> - <mtx name="rcaron" width="1229" lsb="74"/> - <mtx name="rcommaaccent" width="1229" lsb="74"/> - <mtx name="registered" width="1229" lsb="62"/> - <mtx name="ring" width="1229" lsb="388"/> - <mtx name="s" width="1229" lsb="173"/> - <mtx name="sacute" width="1229" lsb="173"/> - <mtx name="scaron" width="1229" lsb="173"/> - <mtx name="scedilla" width="1229" lsb="173"/> - <mtx name="scircumflex" width="1229" lsb="173"/> - <mtx name="scommaaccent" width="1229" lsb="173"/> - <mtx name="section" width="1229" lsb="154"/> - <mtx name="semicolon" width="1229" lsb="466"/> - <mtx name="semicolon#1" width="1229" lsb="466"/> - <mtx name="seven" width="1229" lsb="145"/> - <mtx name="sfthyphen" width="1229" lsb="148"/> - <mtx name="six" width="1229" lsb="122"/> - <mtx name="slash" width="1229" lsb="99"/> - <mtx name="space" width="1229" lsb="0"/> - <mtx name="sterling" width="1229" lsb="149"/> - <mtx name="t" width="1229" lsb="119"/> - <mtx name="tbar" width="1229" lsb="119"/> - <mtx name="tcaron" width="1229" lsb="119"/> - <mtx name="tcommaaccent" width="1229" lsb="119"/> - <mtx name="tcommabelow" width="1229" lsb="119"/> - <mtx name="thorn" width="1229" lsb="62"/> - <mtx name="three" width="1229" lsb="185"/> - <mtx name="threequarters" width="1229" lsb="37"/> - <mtx name="threesuperior" width="1229" lsb="263"/> - <mtx name="threesuperiour" width="1229" lsb="365"/> - <mtx name="tilde" width="1229" lsb="281"/> - <mtx name="trademark" width="1229" lsb="43"/> - <mtx name="two" width="1229" lsb="133"/> - <mtx name="twosuperior" width="1229" lsb="257"/> - <mtx name="twosuperiour" width="1229" lsb="361"/> - <mtx name="u" width="1229" lsb="68"/> - <mtx name="uacute" width="1229" lsb="68"/> - <mtx name="ubreve" width="1229" lsb="68"/> - <mtx name="ucircumflex" width="1229" lsb="68"/> - <mtx name="udieresis" width="1229" lsb="68"/> - <mtx name="ugrave" width="1229" lsb="68"/> - <mtx name="uhungarumlaut" width="1229" lsb="68"/> - <mtx name="umacron" width="1229" lsb="68"/> - <mtx name="underscore" width="1229" lsb="0"/> - <mtx name="uogonek" width="1229" lsb="68"/> - <mtx name="uring" width="1229" lsb="68"/> - <mtx name="utilde" width="1229" lsb="68"/> - <mtx name="v" width="1229" lsb="55"/> - <mtx name="w" width="1229" lsb="23"/> - <mtx name="wcircumflex" width="1229" lsb="23"/> - <mtx name="x" width="1229" lsb="59"/> - <mtx name="y" width="1229" lsb="55"/> - <mtx name="yacute" width="1229" lsb="55"/> - <mtx name="ycircumflex" width="1229" lsb="55"/> - <mtx name="ydieresis" width="1229" lsb="55"/> - <mtx name="yen" width="1229" lsb="49"/> - <mtx name="z" width="1229" lsb="123"/> - <mtx name="zacute" width="1229" lsb="123"/> - <mtx name="zcaron" width="1229" lsb="123"/> - <mtx name="zdotaccent" width="1229" lsb="123"/> - <mtx name="zero" width="1229" lsb="96"/> - </hmtx> - - <cmap> - <tableVersion version="0"/> - <cmap_format_0 platformID="1" platEncID="0" language="0"> - <map code="0x0" name=".notdef#1"/> - <map code="0x1" name=".notdef"/> - <map code="0x2" name=".notdef"/> - <map code="0x3" name=".notdef"/> - <map code="0x4" name=".notdef"/> - <map code="0x5" name=".notdef"/> - <map code="0x6" name=".notdef"/> - <map code="0x7" name=".notdef"/> - <map code="0x8" name=".notdef#1"/> - <map code="0x9" name="space"/> - <map code="0xa" name=".notdef"/> - <map code="0xb" name=".notdef"/> - <map code="0xc" name=".notdef"/> - <map code="0xd" name=".notdef#2"/> - <map code="0xe" name=".notdef"/> - <map code="0xf" name=".notdef"/> - <map code="0x10" name=".notdef"/> - <map code="0x11" name=".notdef"/> - <map code="0x12" name=".notdef"/> - <map code="0x13" name=".notdef"/> - <map code="0x14" name=".notdef"/> - <map code="0x15" name=".notdef"/> - <map code="0x16" name=".notdef"/> - <map code="0x17" name=".notdef"/> - <map code="0x18" name=".notdef"/> - <map code="0x19" name=".notdef"/> - <map code="0x1a" name=".notdef"/> - <map code="0x1b" name=".notdef"/> - <map code="0x1c" name=".notdef"/> - <map code="0x1d" name=".notdef#1"/> - <map code="0x1e" name=".notdef"/> - <map code="0x1f" name=".notdef"/> - <map code="0x20" name="space"/> - <map code="0x21" name="exclam"/> - <map code="0x22" name="quotedbl"/> - <map code="0x23" name="numbersign"/> - <map code="0x24" name="dollar"/> - <map code="0x25" name="percent"/> - <map code="0x26" name="ampersand"/> - <map code="0x27" name="quotesingle"/> - <map code="0x28" name="parenleft"/> - <map code="0x29" name="parenright"/> - <map code="0x2a" name="asterisk"/> - <map code="0x2b" name="plus"/> - <map code="0x2c" name="comma"/> - <map code="0x2d" name="hyphen"/> - <map code="0x2e" name="period"/> - <map code="0x2f" name="slash"/> - <map code="0x30" name="zero"/> - <map code="0x31" name="one"/> - <map code="0x32" name="two"/> - <map code="0x33" name="three"/> - <map code="0x34" name="four"/> - <map code="0x35" name="five"/> - <map code="0x36" name="six"/> - <map code="0x37" name="seven"/> - <map code="0x38" name="eight"/> - <map code="0x39" name="nine"/> - <map code="0x3a" name="colon"/> - <map code="0x3b" name="semicolon"/> - <map code="0x3c" name="less"/> - <map code="0x3d" name="equal"/> - <map code="0x3e" name="greater"/> - <map code="0x3f" name="question"/> - <map code="0x40" name="at"/> - <map code="0x41" name="A"/> - <map code="0x42" name="B"/> - <map code="0x43" name="C"/> - <map code="0x44" name="D"/> - <map code="0x45" name="E"/> - <map code="0x46" name="F"/> - <map code="0x47" name="G"/> - <map code="0x48" name="H"/> - <map code="0x49" name="I"/> - <map code="0x4a" name="J"/> - <map code="0x4b" name="K"/> - <map code="0x4c" name="L"/> - <map code="0x4d" name="M"/> - <map code="0x4e" name="N"/> - <map code="0x4f" name="O"/> - <map code="0x50" name="P"/> - <map code="0x51" name="Q"/> - <map code="0x52" name="R"/> - <map code="0x53" name="S"/> - <map code="0x54" name="T"/> - <map code="0x55" name="U"/> - <map code="0x56" name="V"/> - <map code="0x57" name="W"/> - <map code="0x58" name="X"/> - <map code="0x59" name="Y"/> - <map code="0x5a" name="Z"/> - <map code="0x5b" name="bracketleft"/> - <map code="0x5c" name="backslash"/> - <map code="0x5d" name="bracketright"/> - <map code="0x5e" name="asciicircum"/> - <map code="0x5f" name="underscore"/> - <map code="0x60" name="grave"/> - <map code="0x61" name="a"/> - <map code="0x62" name="b"/> - <map code="0x63" name="c"/> - <map code="0x64" name="d"/> - <map code="0x65" name="e"/> - <map code="0x66" name="f"/> - <map code="0x67" name="g"/> - <map code="0x68" name="h"/> - <map code="0x69" name="i"/> - <map code="0x6a" name="j"/> - <map code="0x6b" name="k"/> - <map code="0x6c" name="l"/> - <map code="0x6d" name="m"/> - <map code="0x6e" name="n"/> - <map code="0x6f" name="o"/> - <map code="0x70" name="p"/> - <map code="0x71" name="q"/> - <map code="0x72" name="r"/> - <map code="0x73" name="s"/> - <map code="0x74" name="t"/> - <map code="0x75" name="u"/> - <map code="0x76" name="v"/> - <map code="0x77" name="w"/> - <map code="0x78" name="x"/> - <map code="0x79" name="y"/> - <map code="0x7a" name="z"/> - <map code="0x7b" name="braceleft"/> - <map code="0x7c" name="bar"/> - <map code="0x7d" name="braceright"/> - <map code="0x7e" name="asciitilde"/> - <map code="0x7f" name=".notdef"/> - <map code="0x80" name="Adieresis"/> - <map code="0x81" name="Aring"/> - <map code="0x82" name="Ccedilla"/> - <map code="0x83" name="Eacute"/> - <map code="0x84" name="Ntilde"/> - <map code="0x85" name="Odieresis"/> - <map code="0x86" name="Udieresis"/> - <map code="0x87" name="aacute"/> - <map code="0x88" name="agrave"/> - <map code="0x89" name="acircumflex"/> - <map code="0x8a" name="adieresis"/> - <map code="0x8b" name="atilde"/> - <map code="0x8c" name="aring"/> - <map code="0x8d" name="ccedilla"/> - <map code="0x8e" name="eacute"/> - <map code="0x8f" name="egrave"/> - <map code="0x90" name="ecircumflex"/> - <map code="0x91" name="edieresis"/> - <map code="0x92" name="iacute"/> - <map code="0x93" name="igrave"/> - <map code="0x94" name="icircumflex"/> - <map code="0x95" name="idieresis"/> - <map code="0x96" name="ntilde"/> - <map code="0x97" name="oacute"/> - <map code="0x98" name="ograve"/> - <map code="0x99" name="ocircumflex"/> - <map code="0x9a" name="odieresis"/> - <map code="0x9b" name="otilde"/> - <map code="0x9c" name="uacute"/> - <map code="0x9d" name="ugrave"/> - <map code="0x9e" name="ucircumflex"/> - <map code="0x9f" name="udieresis"/> - <map code="0xa0" name="dagger"/> - <map code="0xa1" name="degree"/> - <map code="0xa2" name="cent"/> - <map code="0xa3" name="sterling"/> - <map code="0xa4" name="section"/> - <map code="0xa5" name="bullet"/> - <map code="0xa6" name="paragraph"/> - <map code="0xa7" name="germandbls"/> - <map code="0xa8" name="registered"/> - <map code="0xa9" name="copyright"/> - <map code="0xaa" name="trademark"/> - <map code="0xab" name="acute"/> - <map code="0xac" name="dieresis"/> - <map code="0xad" name=".notdef"/> - <map code="0xae" name="AE"/> - <map code="0xaf" name="Oslash"/> - <map code="0xb0" name=".notdef"/> - <map code="0xb1" name="plusminus"/> - <map code="0xb2" name=".notdef"/> - <map code="0xb3" name=".notdef"/> - <map code="0xb4" name="yen"/> - <map code="0xb5" name="mu"/> - <map code="0xb6" name=".notdef"/> - <map code="0xb7" name=".notdef"/> - <map code="0xb8" name=".notdef"/> - <map code="0xb9" name=".notdef"/> - <map code="0xba" name=".notdef"/> - <map code="0xbb" name="ordfeminine"/> - <map code="0xbc" name="ordmasculine"/> - <map code="0xbd" name=".notdef"/> - <map code="0xbe" name="ae"/> - <map code="0xbf" name="oslash"/> - <map code="0xc0" name="questiondown"/> - <map code="0xc1" name="exclamdown"/> - <map code="0xc2" name="logicalnot"/> - <map code="0xc3" name=".notdef"/> - <map code="0xc4" name="florin"/> - <map code="0xc5" name=".notdef"/> - <map code="0xc6" name=".notdef"/> - <map code="0xc7" name="guillemotleft"/> - <map code="0xc8" name="guillemotright"/> - <map code="0xc9" name="ellipsis"/> - <map code="0xca" name=".notdef#16"/> - <map code="0xcb" name="Agrave"/> - <map code="0xcc" name="Atilde"/> - <map code="0xcd" name="Otilde"/> - <map code="0xce" name="OE"/> - <map code="0xcf" name="oe"/> - <map code="0xd0" name="endash"/> - <map code="0xd1" name="emdash"/> - <map code="0xd2" name="quotedblleft"/> - <map code="0xd3" name="quotedblright"/> - <map code="0xd4" name="quoteleft"/> - <map code="0xd5" name="quoteright"/> - <map code="0xd6" name="divide"/> - <map code="0xd7" name=".notdef"/> - <map code="0xd8" name="ydieresis"/> - <map code="0xd9" name="Ydieresis"/> - <map code="0xda" name="fraction"/> - <map code="0xdb" name="currency"/> - <map code="0xdc" name="guilsinglleft"/> - <map code="0xdd" name="guilsinglright"/> - <map code="0xde" name="fi"/> - <map code="0xdf" name="fl"/> - <map code="0xe0" name="daggerdbl"/> - <map code="0xe1" name="periodcentered"/> - <map code="0xe2" name="quotesinglbase"/> - <map code="0xe3" name="quotedblbase"/> - <map code="0xe4" name="perthousand"/> - <map code="0xe5" name="Acircumflex"/> - <map code="0xe6" name="Ecircumflex"/> - <map code="0xe7" name="Aacute"/> - <map code="0xe8" name="Edieresis"/> - <map code="0xe9" name="Egrave"/> - <map code="0xea" name="Iacute"/> - <map code="0xeb" name="Icircumflex"/> - <map code="0xec" name="Idieresis"/> - <map code="0xed" name="Igrave"/> - <map code="0xee" name="Oacute"/> - <map code="0xef" name="Ocircumflex"/> - <map code="0xf0" name="Euro"/> - <map code="0xf1" name="Ograve"/> - <map code="0xf2" name="Uacute"/> - <map code="0xf3" name="Ucircumflex"/> - <map code="0xf4" name="Ugrave"/> - <map code="0xf5" name="dotlessi"/> - <map code="0xf6" name="circumflex"/> - <map code="0xf7" name="tilde"/> - <map code="0xf8" name="macron"/> - <map code="0xf9" name="breve"/> - <map code="0xfa" name="dotaccent"/> - <map code="0xfb" name="ring"/> - <map code="0xfc" name="cedilla"/> - <map code="0xfd" name="hungarumlaut"/> - <map code="0xfe" name="ogonek"/> - <map code="0xff" name="caron"/> - </cmap_format_0> - <cmap_format_4 platformID="3" platEncID="1" language="0"> - <map code="0x20" name="space"/><!-- SPACE --> - <map code="0x21" name="exclam"/><!-- EXCLAMATION MARK --> - <map code="0x22" name="quotedbl"/><!-- QUOTATION MARK --> - <map code="0x23" name="numbersign"/><!-- NUMBER SIGN --> - <map code="0x24" name="dollar"/><!-- DOLLAR SIGN --> - <map code="0x25" name="percent"/><!-- PERCENT SIGN --> - <map code="0x26" name="ampersand"/><!-- AMPERSAND --> - <map code="0x27" name="quotesingle"/><!-- APOSTROPHE --> - <map code="0x28" name="parenleft"/><!-- LEFT PARENTHESIS --> - <map code="0x29" name="parenright"/><!-- RIGHT PARENTHESIS --> - <map code="0x2a" name="asterisk"/><!-- ASTERISK --> - <map code="0x2b" name="plus"/><!-- PLUS SIGN --> - <map code="0x2c" name="comma"/><!-- COMMA --> - <map code="0x2d" name="hyphen"/><!-- HYPHEN-MINUS --> - <map code="0x2e" name="period"/><!-- FULL STOP --> - <map code="0x2f" name="slash"/><!-- SOLIDUS --> - <map code="0x30" name="zero"/><!-- DIGIT ZERO --> - <map code="0x31" name="one"/><!-- DIGIT ONE --> - <map code="0x32" name="two"/><!-- DIGIT TWO --> - <map code="0x33" name="three"/><!-- DIGIT THREE --> - <map code="0x34" name="four"/><!-- DIGIT FOUR --> - <map code="0x35" name="five"/><!-- DIGIT FIVE --> - <map code="0x36" name="six"/><!-- DIGIT SIX --> - <map code="0x37" name="seven"/><!-- DIGIT SEVEN --> - <map code="0x38" name="eight"/><!-- DIGIT EIGHT --> - <map code="0x39" name="nine"/><!-- DIGIT NINE --> - <map code="0x3a" name="colon"/><!-- COLON --> - <map code="0x3b" name="semicolon"/><!-- SEMICOLON --> - <map code="0x3c" name="less"/><!-- LESS-THAN SIGN --> - <map code="0x3d" name="equal"/><!-- EQUALS SIGN --> - <map code="0x3e" name="greater"/><!-- GREATER-THAN SIGN --> - <map code="0x3f" name="question"/><!-- QUESTION MARK --> - <map code="0x40" name="at"/><!-- COMMERCIAL AT --> - <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A --> - <map code="0x42" name="B"/><!-- LATIN CAPITAL LETTER B --> - <map code="0x43" name="C"/><!-- LATIN CAPITAL LETTER C --> - <map code="0x44" name="D"/><!-- LATIN CAPITAL LETTER D --> - <map code="0x45" name="E"/><!-- LATIN CAPITAL LETTER E --> - <map code="0x46" name="F"/><!-- LATIN CAPITAL LETTER F --> - <map code="0x47" name="G"/><!-- LATIN CAPITAL LETTER G --> - <map code="0x48" name="H"/><!-- LATIN CAPITAL LETTER H --> - <map code="0x49" name="I"/><!-- LATIN CAPITAL LETTER I --> - <map code="0x4a" name="J"/><!-- LATIN CAPITAL LETTER J --> - <map code="0x4b" name="K"/><!-- LATIN CAPITAL LETTER K --> - <map code="0x4c" name="L"/><!-- LATIN CAPITAL LETTER L --> - <map code="0x4d" name="M"/><!-- LATIN CAPITAL LETTER M --> - <map code="0x4e" name="N"/><!-- LATIN CAPITAL LETTER N --> - <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O --> - <map code="0x50" name="P"/><!-- LATIN CAPITAL LETTER P --> - <map code="0x51" name="Q"/><!-- LATIN CAPITAL LETTER Q --> - <map code="0x52" name="R"/><!-- LATIN CAPITAL LETTER R --> - <map code="0x53" name="S"/><!-- LATIN CAPITAL LETTER S --> - <map code="0x54" name="T"/><!-- LATIN CAPITAL LETTER T --> - <map code="0x55" name="U"/><!-- LATIN CAPITAL LETTER U --> - <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V --> - <map code="0x57" name="W"/><!-- LATIN CAPITAL LETTER W --> - <map code="0x58" name="X"/><!-- LATIN CAPITAL LETTER X --> - <map code="0x59" name="Y"/><!-- LATIN CAPITAL LETTER Y --> - <map code="0x5a" name="Z"/><!-- LATIN CAPITAL LETTER Z --> - <map code="0x5b" name="bracketleft"/><!-- LEFT SQUARE BRACKET --> - <map code="0x5c" name="backslash"/><!-- REVERSE SOLIDUS --> - <map code="0x5d" name="bracketright"/><!-- RIGHT SQUARE BRACKET --> - <map code="0x5e" name="asciicircum"/><!-- CIRCUMFLEX ACCENT --> - <map code="0x5f" name="underscore"/><!-- LOW LINE --> - <map code="0x60" name="grave"/><!-- GRAVE ACCENT --> - <map code="0x61" name="a"/><!-- LATIN SMALL LETTER A --> - <map code="0x62" name="b"/><!-- LATIN SMALL LETTER B --> - <map code="0x63" name="c"/><!-- LATIN SMALL LETTER C --> - <map code="0x64" name="d"/><!-- LATIN SMALL LETTER D --> - <map code="0x65" name="e"/><!-- LATIN SMALL LETTER E --> - <map code="0x66" name="f"/><!-- LATIN SMALL LETTER F --> - <map code="0x67" name="g"/><!-- LATIN SMALL LETTER G --> - <map code="0x68" name="h"/><!-- LATIN SMALL LETTER H --> - <map code="0x69" name="i"/><!-- LATIN SMALL LETTER I --> - <map code="0x6a" name="j"/><!-- LATIN SMALL LETTER J --> - <map code="0x6b" name="k"/><!-- LATIN SMALL LETTER K --> - <map code="0x6c" name="l"/><!-- LATIN SMALL LETTER L --> - <map code="0x6d" name="m"/><!-- LATIN SMALL LETTER M --> - <map code="0x6e" name="n"/><!-- LATIN SMALL LETTER N --> - <map code="0x6f" name="o"/><!-- LATIN SMALL LETTER O --> - <map code="0x70" name="p"/><!-- LATIN SMALL LETTER P --> - <map code="0x71" name="q"/><!-- LATIN SMALL LETTER Q --> - <map code="0x72" name="r"/><!-- LATIN SMALL LETTER R --> - <map code="0x73" name="s"/><!-- LATIN SMALL LETTER S --> - <map code="0x74" name="t"/><!-- LATIN SMALL LETTER T --> - <map code="0x75" name="u"/><!-- LATIN SMALL LETTER U --> - <map code="0x76" name="v"/><!-- LATIN SMALL LETTER V --> - <map code="0x77" name="w"/><!-- LATIN SMALL LETTER W --> - <map code="0x78" name="x"/><!-- LATIN SMALL LETTER X --> - <map code="0x79" name="y"/><!-- LATIN SMALL LETTER Y --> - <map code="0x7a" name="z"/><!-- LATIN SMALL LETTER Z --> - <map code="0x7b" name="braceleft"/><!-- LEFT CURLY BRACKET --> - <map code="0x7c" name="bar"/><!-- VERTICAL LINE --> - <map code="0x7d" name="braceright"/><!-- RIGHT CURLY BRACKET --> - <map code="0x7e" name="asciitilde"/><!-- TILDE --> - <map code="0x80" name="Euro#1"/><!-- <control> --> - <map code="0xa0" name="nonbreakingspace"/><!-- NO-BREAK SPACE --> - <map code="0xa1" name="exclamdown"/><!-- INVERTED EXCLAMATION MARK --> - <map code="0xa2" name="cent"/><!-- CENT SIGN --> - <map code="0xa3" name="sterling"/><!-- POUND SIGN --> - <map code="0xa4" name="currency"/><!-- CURRENCY SIGN --> - <map code="0xa5" name="yen"/><!-- YEN SIGN --> - <map code="0xa6" name="brokenbar"/><!-- BROKEN BAR --> - <map code="0xa7" name="section"/><!-- SECTION SIGN --> - <map code="0xa8" name="dieresis"/><!-- DIAERESIS --> - <map code="0xa9" name="copyright"/><!-- COPYRIGHT SIGN --> - <map code="0xaa" name="ordfeminine"/><!-- FEMININE ORDINAL INDICATOR --> - <map code="0xab" name="guillemotleft"/><!-- LEFT-POINTING DOUBLE ANGLE QUOTATION MARK --> - <map code="0xac" name="logicalnot"/><!-- NOT SIGN --> - <map code="0xad" name="sfthyphen"/><!-- SOFT HYPHEN --> - <map code="0xae" name="registered"/><!-- REGISTERED SIGN --> - <map code="0xaf" name="macron#1"/><!-- MACRON --> - <map code="0xb0" name="degree"/><!-- DEGREE SIGN --> - <map code="0xb1" name="plusminus"/><!-- PLUS-MINUS SIGN --> - <map code="0xb2" name="twosuperior"/><!-- SUPERSCRIPT TWO --> - <map code="0xb3" name="threesuperior"/><!-- SUPERSCRIPT THREE --> - <map code="0xb4" name="acute"/><!-- ACUTE ACCENT --> - <map code="0xb5" name="mu"/><!-- MICRO SIGN --> - <map code="0xb6" name="paragraph"/><!-- PILCROW SIGN --> - <map code="0xb7" name="periodcentered#1"/><!-- MIDDLE DOT --> - <map code="0xb8" name="cedilla"/><!-- CEDILLA --> - <map code="0xb9" name="onesuperior"/><!-- SUPERSCRIPT ONE --> - <map code="0xba" name="ordmasculine"/><!-- MASCULINE ORDINAL INDICATOR --> - <map code="0xbb" name="guillemotright"/><!-- RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK --> - <map code="0xbc" name="onequarter"/><!-- VULGAR FRACTION ONE QUARTER --> - <map code="0xbd" name="onehalf"/><!-- VULGAR FRACTION ONE HALF --> - <map code="0xbe" name="threequarters"/><!-- VULGAR FRACTION THREE QUARTERS --> - <map code="0xbf" name="questiondown"/><!-- INVERTED QUESTION MARK --> - <map code="0xc0" name="Agrave"/><!-- LATIN CAPITAL LETTER A WITH GRAVE --> - <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE --> - <map code="0xc2" name="Acircumflex"/><!-- LATIN CAPITAL LETTER A WITH CIRCUMFLEX --> - <map code="0xc3" name="Atilde"/><!-- LATIN CAPITAL LETTER A WITH TILDE --> - <map code="0xc4" name="Adieresis"/><!-- LATIN CAPITAL LETTER A WITH DIAERESIS --> - <map code="0xc5" name="Aring"/><!-- LATIN CAPITAL LETTER A WITH RING ABOVE --> - <map code="0xc6" name="AE"/><!-- LATIN CAPITAL LETTER AE --> - <map code="0xc7" name="Ccedilla"/><!-- LATIN CAPITAL LETTER C WITH CEDILLA --> - <map code="0xc8" name="Egrave"/><!-- LATIN CAPITAL LETTER E WITH GRAVE --> - <map code="0xc9" name="Eacute"/><!-- LATIN CAPITAL LETTER E WITH ACUTE --> - <map code="0xca" name="Ecircumflex"/><!-- LATIN CAPITAL LETTER E WITH CIRCUMFLEX --> - <map code="0xcb" name="Edieresis"/><!-- LATIN CAPITAL LETTER E WITH DIAERESIS --> - <map code="0xcc" name="Igrave"/><!-- LATIN CAPITAL LETTER I WITH GRAVE --> - <map code="0xcd" name="Iacute"/><!-- LATIN CAPITAL LETTER I WITH ACUTE --> - <map code="0xce" name="Icircumflex"/><!-- LATIN CAPITAL LETTER I WITH CIRCUMFLEX --> - <map code="0xcf" name="Idieresis"/><!-- LATIN CAPITAL LETTER I WITH DIAERESIS --> - <map code="0xd0" name="Eth"/><!-- LATIN CAPITAL LETTER ETH --> - <map code="0xd1" name="Ntilde"/><!-- LATIN CAPITAL LETTER N WITH TILDE --> - <map code="0xd2" name="Ograve"/><!-- LATIN CAPITAL LETTER O WITH GRAVE --> - <map code="0xd3" name="Oacute"/><!-- LATIN CAPITAL LETTER O WITH ACUTE --> - <map code="0xd4" name="Ocircumflex"/><!-- LATIN CAPITAL LETTER O WITH CIRCUMFLEX --> - <map code="0xd5" name="Otilde"/><!-- LATIN CAPITAL LETTER O WITH TILDE --> - <map code="0xd6" name="Odieresis"/><!-- LATIN CAPITAL LETTER O WITH DIAERESIS --> - <map code="0xd7" name="multiply"/><!-- MULTIPLICATION SIGN --> - <map code="0xd8" name="Oslash"/><!-- LATIN CAPITAL LETTER O WITH STROKE --> - <map code="0xd9" name="Ugrave"/><!-- LATIN CAPITAL LETTER U WITH GRAVE --> - <map code="0xda" name="Uacute"/><!-- LATIN CAPITAL LETTER U WITH ACUTE --> - <map code="0xdb" name="Ucircumflex"/><!-- LATIN CAPITAL LETTER U WITH CIRCUMFLEX --> - <map code="0xdc" name="Udieresis"/><!-- LATIN CAPITAL LETTER U WITH DIAERESIS --> - <map code="0xdd" name="Yacute"/><!-- LATIN CAPITAL LETTER Y WITH ACUTE --> - <map code="0xde" name="Thorn"/><!-- LATIN CAPITAL LETTER THORN --> - <map code="0xdf" name="germandbls"/><!-- LATIN SMALL LETTER SHARP S --> - <map code="0xe0" name="agrave"/><!-- LATIN SMALL LETTER A WITH GRAVE --> - <map code="0xe1" name="aacute"/><!-- LATIN SMALL LETTER A WITH ACUTE --> - <map code="0xe2" name="acircumflex"/><!-- LATIN SMALL LETTER A WITH CIRCUMFLEX --> - <map code="0xe3" name="atilde"/><!-- LATIN SMALL LETTER A WITH TILDE --> - <map code="0xe4" name="adieresis"/><!-- LATIN SMALL LETTER A WITH DIAERESIS --> - <map code="0xe5" name="aring"/><!-- LATIN SMALL LETTER A WITH RING ABOVE --> - <map code="0xe6" name="ae"/><!-- LATIN SMALL LETTER AE --> - <map code="0xe7" name="ccedilla"/><!-- LATIN SMALL LETTER C WITH CEDILLA --> - <map code="0xe8" name="egrave"/><!-- LATIN SMALL LETTER E WITH GRAVE --> - <map code="0xe9" name="eacute"/><!-- LATIN SMALL LETTER E WITH ACUTE --> - <map code="0xea" name="ecircumflex"/><!-- LATIN SMALL LETTER E WITH CIRCUMFLEX --> - <map code="0xeb" name="edieresis"/><!-- LATIN SMALL LETTER E WITH DIAERESIS --> - <map code="0xec" name="igrave"/><!-- LATIN SMALL LETTER I WITH GRAVE --> - <map code="0xed" name="iacute"/><!-- LATIN SMALL LETTER I WITH ACUTE --> - <map code="0xee" name="icircumflex"/><!-- LATIN SMALL LETTER I WITH CIRCUMFLEX --> - <map code="0xef" name="idieresis"/><!-- LATIN SMALL LETTER I WITH DIAERESIS --> - <map code="0xf0" name="eth"/><!-- LATIN SMALL LETTER ETH --> - <map code="0xf1" name="ntilde"/><!-- LATIN SMALL LETTER N WITH TILDE --> - <map code="0xf2" name="ograve"/><!-- LATIN SMALL LETTER O WITH GRAVE --> - <map code="0xf3" name="oacute"/><!-- LATIN SMALL LETTER O WITH ACUTE --> - <map code="0xf4" name="ocircumflex"/><!-- LATIN SMALL LETTER O WITH CIRCUMFLEX --> - <map code="0xf5" name="otilde"/><!-- LATIN SMALL LETTER O WITH TILDE --> - <map code="0xf6" name="odieresis"/><!-- LATIN SMALL LETTER O WITH DIAERESIS --> - <map code="0xf7" name="divide"/><!-- DIVISION SIGN --> - <map code="0xf8" name="oslash"/><!-- LATIN SMALL LETTER O WITH STROKE --> - <map code="0xf9" name="ugrave"/><!-- LATIN SMALL LETTER U WITH GRAVE --> - <map code="0xfa" name="uacute"/><!-- LATIN SMALL LETTER U WITH ACUTE --> - <map code="0xfb" name="ucircumflex"/><!-- LATIN SMALL LETTER U WITH CIRCUMFLEX --> - <map code="0xfc" name="udieresis"/><!-- LATIN SMALL LETTER U WITH DIAERESIS --> - <map code="0xfd" name="yacute"/><!-- LATIN SMALL LETTER Y WITH ACUTE --> - <map code="0xfe" name="thorn"/><!-- LATIN SMALL LETTER THORN --> - <map code="0xff" name="ydieresis"/><!-- LATIN SMALL LETTER Y WITH DIAERESIS --> - <map code="0x100" name="Amacron"/><!-- LATIN CAPITAL LETTER A WITH MACRON --> - <map code="0x101" name="amacron"/><!-- LATIN SMALL LETTER A WITH MACRON --> - <map code="0x102" name="Abreve"/><!-- LATIN CAPITAL LETTER A WITH BREVE --> - <map code="0x103" name="abreve"/><!-- LATIN SMALL LETTER A WITH BREVE --> - <map code="0x104" name="Aogonek"/><!-- LATIN CAPITAL LETTER A WITH OGONEK --> - <map code="0x105" name="aogonek"/><!-- LATIN SMALL LETTER A WITH OGONEK --> - <map code="0x106" name="Cacute"/><!-- LATIN CAPITAL LETTER C WITH ACUTE --> - <map code="0x107" name="cacute"/><!-- LATIN SMALL LETTER C WITH ACUTE --> - <map code="0x108" name="Ccircumflex"/><!-- LATIN CAPITAL LETTER C WITH CIRCUMFLEX --> - <map code="0x109" name="ccircumflex"/><!-- LATIN SMALL LETTER C WITH CIRCUMFLEX --> - <map code="0x10a" name="Cdotaccent"/><!-- LATIN CAPITAL LETTER C WITH DOT ABOVE --> - <map code="0x10b" name="cdotaccent"/><!-- LATIN SMALL LETTER C WITH DOT ABOVE --> - <map code="0x10c" name="Ccaron"/><!-- LATIN CAPITAL LETTER C WITH CARON --> - <map code="0x10d" name="ccaron"/><!-- LATIN SMALL LETTER C WITH CARON --> - <map code="0x10e" name="Dcaron"/><!-- LATIN CAPITAL LETTER D WITH CARON --> - <map code="0x10f" name="dcaron"/><!-- LATIN SMALL LETTER D WITH CARON --> - <map code="0x110" name="Dcroat"/><!-- LATIN CAPITAL LETTER D WITH STROKE --> - <map code="0x111" name="dcroat"/><!-- LATIN SMALL LETTER D WITH STROKE --> - <map code="0x112" name="Emacron"/><!-- LATIN CAPITAL LETTER E WITH MACRON --> - <map code="0x113" name="emacron"/><!-- LATIN SMALL LETTER E WITH MACRON --> - <map code="0x114" name="Ebreve"/><!-- LATIN CAPITAL LETTER E WITH BREVE --> - <map code="0x115" name="ebreve"/><!-- LATIN SMALL LETTER E WITH BREVE --> - <map code="0x116" name="Edotaccent"/><!-- LATIN CAPITAL LETTER E WITH DOT ABOVE --> - <map code="0x117" name="edotaccent"/><!-- LATIN SMALL LETTER E WITH DOT ABOVE --> - <map code="0x118" name="Eogonek"/><!-- LATIN CAPITAL LETTER E WITH OGONEK --> - <map code="0x119" name="eogonek"/><!-- LATIN SMALL LETTER E WITH OGONEK --> - <map code="0x11a" name="Ecaron"/><!-- LATIN CAPITAL LETTER E WITH CARON --> - <map code="0x11b" name="ecaron"/><!-- LATIN SMALL LETTER E WITH CARON --> - <map code="0x11c" name="Gcircumflex"/><!-- LATIN CAPITAL LETTER G WITH CIRCUMFLEX --> - <map code="0x11d" name="gcircumflex"/><!-- LATIN SMALL LETTER G WITH CIRCUMFLEX --> - <map code="0x11e" name="Gbreve"/><!-- LATIN CAPITAL LETTER G WITH BREVE --> - <map code="0x11f" name="gbreve"/><!-- LATIN SMALL LETTER G WITH BREVE --> - <map code="0x120" name="Gdotaccent"/><!-- LATIN CAPITAL LETTER G WITH DOT ABOVE --> - <map code="0x121" name="gdotaccent"/><!-- LATIN SMALL LETTER G WITH DOT ABOVE --> - <map code="0x122" name="Gcommaaccent"/><!-- LATIN CAPITAL LETTER G WITH CEDILLA --> - <map code="0x123" name="gcommaaccent"/><!-- LATIN SMALL LETTER G WITH CEDILLA --> - <map code="0x124" name="Hcircumflex"/><!-- LATIN CAPITAL LETTER H WITH CIRCUMFLEX --> - <map code="0x125" name="hcircumflex"/><!-- LATIN SMALL LETTER H WITH CIRCUMFLEX --> - <map code="0x126" name="Hbar"/><!-- LATIN CAPITAL LETTER H WITH STROKE --> - <map code="0x127" name="hbar"/><!-- LATIN SMALL LETTER H WITH STROKE --> - <map code="0x128" name="Itilde"/><!-- LATIN CAPITAL LETTER I WITH TILDE --> - <map code="0x129" name="itilde"/><!-- LATIN SMALL LETTER I WITH TILDE --> - <map code="0x12a" name="Imacron"/><!-- LATIN CAPITAL LETTER I WITH MACRON --> - <map code="0x12b" name="imacron"/><!-- LATIN SMALL LETTER I WITH MACRON --> - <map code="0x12c" name="Ibreve"/><!-- LATIN CAPITAL LETTER I WITH BREVE --> - <map code="0x12d" name="ibreve"/><!-- LATIN SMALL LETTER I WITH BREVE --> - <map code="0x12e" name="Iogonek"/><!-- LATIN CAPITAL LETTER I WITH OGONEK --> - <map code="0x12f" name="iogonek"/><!-- LATIN SMALL LETTER I WITH OGONEK --> - <map code="0x130" name="Idotaccent"/><!-- LATIN CAPITAL LETTER I WITH DOT ABOVE --> - <map code="0x131" name="dotlessi"/><!-- LATIN SMALL LETTER DOTLESS I --> - <map code="0x132" name="IJ"/><!-- LATIN CAPITAL LIGATURE IJ --> - <map code="0x133" name="ij"/><!-- LATIN SMALL LIGATURE IJ --> - <map code="0x134" name="Jcircumflex"/><!-- LATIN CAPITAL LETTER J WITH CIRCUMFLEX --> - <map code="0x135" name="jcircumflex"/><!-- LATIN SMALL LETTER J WITH CIRCUMFLEX --> - <map code="0x136" name="Kcommaaccent"/><!-- LATIN CAPITAL LETTER K WITH CEDILLA --> - <map code="0x137" name="kcommaaccent"/><!-- LATIN SMALL LETTER K WITH CEDILLA --> - <map code="0x138" name="kgreenlandic"/><!-- LATIN SMALL LETTER KRA --> - <map code="0x139" name="Lacute"/><!-- LATIN CAPITAL LETTER L WITH ACUTE --> - <map code="0x13a" name="lacute"/><!-- LATIN SMALL LETTER L WITH ACUTE --> - <map code="0x13b" name="Lcommaaccent"/><!-- LATIN CAPITAL LETTER L WITH CEDILLA --> - <map code="0x13c" name="lcommaaccent"/><!-- LATIN SMALL LETTER L WITH CEDILLA --> - <map code="0x13d" name="Lcaron"/><!-- LATIN CAPITAL LETTER L WITH CARON --> - <map code="0x13e" name="lcaron"/><!-- LATIN SMALL LETTER L WITH CARON --> - <map code="0x13f" name="Ldot"/><!-- LATIN CAPITAL LETTER L WITH MIDDLE DOT --> - <map code="0x140" name="ldot"/><!-- LATIN SMALL LETTER L WITH MIDDLE DOT --> - <map code="0x141" name="Lslash"/><!-- LATIN CAPITAL LETTER L WITH STROKE --> - <map code="0x142" name="lslash"/><!-- LATIN SMALL LETTER L WITH STROKE --> - <map code="0x143" name="Nacute"/><!-- LATIN CAPITAL LETTER N WITH ACUTE --> - <map code="0x144" name="nacute"/><!-- LATIN SMALL LETTER N WITH ACUTE --> - <map code="0x145" name="Ncommaaccent"/><!-- LATIN CAPITAL LETTER N WITH CEDILLA --> - <map code="0x146" name="ncommaaccent"/><!-- LATIN SMALL LETTER N WITH CEDILLA --> - <map code="0x147" name="Ncaron"/><!-- LATIN CAPITAL LETTER N WITH CARON --> - <map code="0x148" name="ncaron"/><!-- LATIN SMALL LETTER N WITH CARON --> - <map code="0x149" name="napostrophe"/><!-- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE --> - <map code="0x14a" name="Eng"/><!-- LATIN CAPITAL LETTER ENG --> - <map code="0x14b" name="eng"/><!-- LATIN SMALL LETTER ENG --> - <map code="0x14c" name="Omacron"/><!-- LATIN CAPITAL LETTER O WITH MACRON --> - <map code="0x14d" name="omacron"/><!-- LATIN SMALL LETTER O WITH MACRON --> - <map code="0x14e" name="Obreve"/><!-- LATIN CAPITAL LETTER O WITH BREVE --> - <map code="0x14f" name="obreve"/><!-- LATIN SMALL LETTER O WITH BREVE --> - <map code="0x150" name="Ohungarumlaut"/><!-- LATIN CAPITAL LETTER O WITH DOUBLE ACUTE --> - <map code="0x151" name="ohungarumlaut"/><!-- LATIN SMALL LETTER O WITH DOUBLE ACUTE --> - <map code="0x152" name="OE"/><!-- LATIN CAPITAL LIGATURE OE --> - <map code="0x153" name="oe"/><!-- LATIN SMALL LIGATURE OE --> - <map code="0x154" name="Racute"/><!-- LATIN CAPITAL LETTER R WITH ACUTE --> - <map code="0x155" name="racute"/><!-- LATIN SMALL LETTER R WITH ACUTE --> - <map code="0x156" name="Rcommaaccent"/><!-- LATIN CAPITAL LETTER R WITH CEDILLA --> - <map code="0x157" name="rcommaaccent"/><!-- LATIN SMALL LETTER R WITH CEDILLA --> - <map code="0x158" name="Rcaron"/><!-- LATIN CAPITAL LETTER R WITH CARON --> - <map code="0x159" name="rcaron"/><!-- LATIN SMALL LETTER R WITH CARON --> - <map code="0x15a" name="Sacute"/><!-- LATIN CAPITAL LETTER S WITH ACUTE --> - <map code="0x15b" name="sacute"/><!-- LATIN SMALL LETTER S WITH ACUTE --> - <map code="0x15c" name="Scircumflex"/><!-- LATIN CAPITAL LETTER S WITH CIRCUMFLEX --> - <map code="0x15d" name="scircumflex"/><!-- LATIN SMALL LETTER S WITH CIRCUMFLEX --> - <map code="0x15e" name="Scedilla"/><!-- LATIN CAPITAL LETTER S WITH CEDILLA --> - <map code="0x15f" name="scedilla"/><!-- LATIN SMALL LETTER S WITH CEDILLA --> - <map code="0x160" name="Scaron"/><!-- LATIN CAPITAL LETTER S WITH CARON --> - <map code="0x161" name="scaron"/><!-- LATIN SMALL LETTER S WITH CARON --> - <map code="0x162" name="Tcommaaccent"/><!-- LATIN CAPITAL LETTER T WITH CEDILLA --> - <map code="0x163" name="tcommaaccent"/><!-- LATIN SMALL LETTER T WITH CEDILLA --> - <map code="0x164" name="Tcaron"/><!-- LATIN CAPITAL LETTER T WITH CARON --> - <map code="0x165" name="tcaron"/><!-- LATIN SMALL LETTER T WITH CARON --> - <map code="0x166" name="Tbar"/><!-- LATIN CAPITAL LETTER T WITH STROKE --> - <map code="0x167" name="tbar"/><!-- LATIN SMALL LETTER T WITH STROKE --> - <map code="0x168" name="Utilde"/><!-- LATIN CAPITAL LETTER U WITH TILDE --> - <map code="0x169" name="utilde"/><!-- LATIN SMALL LETTER U WITH TILDE --> - <map code="0x16a" name="Umacron"/><!-- LATIN CAPITAL LETTER U WITH MACRON --> - <map code="0x16b" name="umacron"/><!-- LATIN SMALL LETTER U WITH MACRON --> - <map code="0x16c" name="Ubreve"/><!-- LATIN CAPITAL LETTER U WITH BREVE --> - <map code="0x16d" name="ubreve"/><!-- LATIN SMALL LETTER U WITH BREVE --> - <map code="0x16e" name="Uring"/><!-- LATIN CAPITAL LETTER U WITH RING ABOVE --> - <map code="0x16f" name="uring"/><!-- LATIN SMALL LETTER U WITH RING ABOVE --> - <map code="0x170" name="Uhungarumlaut"/><!-- LATIN CAPITAL LETTER U WITH DOUBLE ACUTE --> - <map code="0x171" name="uhungarumlaut"/><!-- LATIN SMALL LETTER U WITH DOUBLE ACUTE --> - <map code="0x172" name="Uogonek"/><!-- LATIN CAPITAL LETTER U WITH OGONEK --> - <map code="0x173" name="uogonek"/><!-- LATIN SMALL LETTER U WITH OGONEK --> - <map code="0x174" name="Wcircumflex"/><!-- LATIN CAPITAL LETTER W WITH CIRCUMFLEX --> - <map code="0x175" name="wcircumflex"/><!-- LATIN SMALL LETTER W WITH CIRCUMFLEX --> - <map code="0x176" name="Ycircumflex"/><!-- LATIN CAPITAL LETTER Y WITH CIRCUMFLEX --> - <map code="0x177" name="ycircumflex"/><!-- LATIN SMALL LETTER Y WITH CIRCUMFLEX --> - <map code="0x178" name="Ydieresis"/><!-- LATIN CAPITAL LETTER Y WITH DIAERESIS --> - <map code="0x179" name="Zacute"/><!-- LATIN CAPITAL LETTER Z WITH ACUTE --> - <map code="0x17a" name="zacute"/><!-- LATIN SMALL LETTER Z WITH ACUTE --> - <map code="0x17b" name="Zdotaccent"/><!-- LATIN CAPITAL LETTER Z WITH DOT ABOVE --> - <map code="0x17c" name="zdotaccent"/><!-- LATIN SMALL LETTER Z WITH DOT ABOVE --> - <map code="0x17d" name="Zcaron"/><!-- LATIN CAPITAL LETTER Z WITH CARON --> - <map code="0x17e" name="zcaron"/><!-- LATIN SMALL LETTER Z WITH CARON --> - <map code="0x17f" name="longs"/><!-- LATIN SMALL LETTER LONG S --> - <map code="0x192" name="florin"/><!-- LATIN SMALL LETTER F WITH HOOK --> - <map code="0x218" name="Scommaaccent"/><!-- LATIN CAPITAL LETTER S WITH COMMA BELOW --> - <map code="0x219" name="scommaaccent"/><!-- LATIN SMALL LETTER S WITH COMMA BELOW --> - <map code="0x21a" name="Tcommabelow"/><!-- LATIN CAPITAL LETTER T WITH COMMA BELOW --> - <map code="0x21b" name="tcommabelow"/><!-- LATIN SMALL LETTER T WITH COMMA BELOW --> - <map code="0x2c6" name="circumflex"/><!-- MODIFIER LETTER CIRCUMFLEX ACCENT --> - <map code="0x2c7" name="caron"/><!-- CARON --> - <map code="0x2c9" name="macron"/><!-- MODIFIER LETTER MACRON --> - <map code="0x2d8" name="breve"/><!-- BREVE --> - <map code="0x2d9" name="dotaccent"/><!-- DOT ABOVE --> - <map code="0x2da" name="ring"/><!-- RING ABOVE --> - <map code="0x2db" name="ogonek"/><!-- OGONEK --> - <map code="0x2dc" name="tilde"/><!-- SMALL TILDE --> - <map code="0x2dd" name="hungarumlaut"/><!-- DOUBLE ACUTE ACCENT --> - <map code="0x326" name="Unterkomma"/><!-- COMBINING COMMA BELOW --> - <map code="0x37e" name="semicolon#1"/><!-- GREEK QUESTION MARK --> - <map code="0x387" name="anoteleia"/><!-- GREEK ANO TELEIA --> - <map code="0x2010" name="hyphen#1"/><!-- HYPHEN --> - <map code="0x2011" name="nbhyphen"/><!-- NON-BREAKING HYPHEN --> - <map code="0x2012" name="figuredash"/><!-- FIGURE DASH --> - <map code="0x2013" name="endash"/><!-- EN DASH --> - <map code="0x2014" name="emdash"/><!-- EM DASH --> - <map code="0x2015" name="afii00208"/><!-- HORIZONTAL BAR --> - <map code="0x2018" name="quoteleft"/><!-- LEFT SINGLE QUOTATION MARK --> - <map code="0x2019" name="quoteright"/><!-- RIGHT SINGLE QUOTATION MARK --> - <map code="0x201a" name="quotesinglbase"/><!-- SINGLE LOW-9 QUOTATION MARK --> - <map code="0x201b" name="quotereversed"/><!-- SINGLE HIGH-REVERSED-9 QUOTATION MARK --> - <map code="0x201c" name="quotedblleft"/><!-- LEFT DOUBLE QUOTATION MARK --> - <map code="0x201d" name="quotedblright"/><!-- RIGHT DOUBLE QUOTATION MARK --> - <map code="0x201e" name="quotedblbase"/><!-- DOUBLE LOW-9 QUOTATION MARK --> - <map code="0x2020" name="dagger"/><!-- DAGGER --> - <map code="0x2021" name="daggerdbl"/><!-- DOUBLE DAGGER --> - <map code="0x2022" name="bullet"/><!-- BULLET --> - <map code="0x2026" name="ellipsis"/><!-- HORIZONTAL ELLIPSIS --> - <map code="0x2030" name="perthousand"/><!-- PER MILLE SIGN --> - <map code="0x2039" name="guilsinglleft"/><!-- SINGLE LEFT-POINTING ANGLE QUOTATION MARK --> - <map code="0x203a" name="guilsinglright"/><!-- SINGLE RIGHT-POINTING ANGLE QUOTATION MARK --> - <map code="0x203e" name="radicalex"/><!-- OVERLINE --> - <map code="0x2044" name="fraction"/><!-- FRACTION SLASH --> - <map code="0x20ac" name="Euro"/><!-- EURO SIGN --> - <map code="0x2122" name="trademark"/><!-- TRADE MARK SIGN --> - <map code="0x212e" name="estimated"/><!-- ESTIMATED SYMBOL --> - <map code="0x2212" name="minus"/><!-- MINUS SIGN --> - <map code="0x2215" name="fraction#1"/><!-- DIVISION SLASH --> - <map code="0x2219" name="periodcentered"/><!-- BULLET OPERATOR --> - <map code="0x22c5" name="dotmath"/><!-- DOT OPERATOR --> - <map code="0xea01" name="fi#1"/><!-- Private Use --> - <map code="0xea02" name="fl#1"/><!-- Private Use --> - <map code="0xf001" name="fi"/><!-- Private Use --> - <map code="0xf002" name="fl"/><!-- Private Use --> - <map code="0xf004" name="foursuperiour"/><!-- Private Use --> - <map code="0xf005" name="onesuperiour"/><!-- Private Use --> - <map code="0xf006" name="twosuperiour"/><!-- Private Use --> - <map code="0xf007" name="threesuperiour"/><!-- Private Use --> - <map code="0xf008" name="foursuperiour#1"/><!-- Private Use --> - <map code="0xf6be" name="dotlessj"/><!-- Private Use --> - <map code="0xfb01" name="fi"/><!-- LATIN SMALL LIGATURE FI --> - <map code="0xfb02" name="fl"/><!-- LATIN SMALL LIGATURE FL --> - </cmap_format_4> - </cmap> - - <fpgm> - <assembly> - NPUSHB[ ] /* 15 values pushed */ - 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - FDEF[ ] - SLOOP[ ] - MDAP[1] - ALIGNRP[ ] - ENDF[ ] - FDEF[ ] - MDAP[1] - ALIGNRP[ ] - ENDF[ ] - FDEF[ ] - SRP1[ ] - SRP2[ ] - IP[ ] - ENDF[ ] - FDEF[ ] - SRP1[ ] - SRP2[ ] - SLOOP[ ] - IP[ ] - ENDF[ ] - FDEF[ ] - SRP0[ ] - SLOOP[ ] - MIRP[11101] - ALIGNRP[ ] - ENDF[ ] - FDEF[ ] - SRP0[ ] - SLOOP[ ] - MIRP[10100] - ALIGNRP[ ] - ENDF[ ] - FDEF[ ] - SRP0[ ] - SLOOP[ ] - MDRP[11101] - ALIGNRP[ ] - ENDF[ ] - FDEF[ ] - SRP0[ ] - SLOOP[ ] - MDRP[10100] - ALIGNRP[ ] - ENDF[ ] - FDEF[ ] - SRP0[ ] - MIRP[11101] - ENDF[ ] - FDEF[ ] - SRP0[ ] - MIRP[10100] - ENDF[ ] - FDEF[ ] - SRP0[ ] - MDRP[11101] - ENDF[ ] - FDEF[ ] - SRP0[ ] - MDRP[10100] - ENDF[ ] - FDEF[ ] - MDRP[00100] - ENDF[ ] - FDEF[ ] - MDRP[00000] - ENDF[ ] - FDEF[ ] - SVTCA[0] - NPUSHB[ ] /* 10 values pushed */ - 1 0 0 1 1 2 2 3 3 0 - SZPS[ ] - MIAP[1] - MIAP[1] - MIAP[1] - MIAP[1] - SZPS[ ] - ENDF[ ] - </assembly> - </fpgm> - - <prep> - <assembly> - PUSHB[ ] /* 2 values pushed */ - 48 1 - PUSHW[ ] /* 1 value pushed */ - 329 - RTG[ ] - SCANCTRL[ ] - SCANTYPE[ ] - SCVTCI[ ] - </assembly> - </prep> - - <cvt> - <cv index="0" value="1480"/> - <cv index="1" value="1086"/> - <cv index="2" value="0"/> - <cv index="3" value="-512"/> - <cv index="4" value="247"/> - <cv index="5" value="121"/> - <cv index="6" value="125"/> - <cv index="7" value="147"/> - <cv index="8" value="299"/> - <cv index="9" value="224"/> - <cv index="10" value="200"/> - <cv index="11" value="210"/> - <cv index="12" value="174"/> - <cv index="13" value="179"/> - <cv index="14" value="145"/> - <cv index="15" value="171"/> - <cv index="16" value="149"/> - <cv index="17" value="96"/> - <cv index="18" value="102"/> - <cv index="19" value="188"/> - <cv index="20" value="138"/> - <cv index="21" value="97"/> - <cv index="22" value="172"/> - <cv index="23" value="36"/> - <cv index="24" value="203"/> - <cv index="25" value="131"/> - <cv index="26" value="230"/> - <cv index="27" value="186"/> - <cv index="28" value="196"/> - <cv index="29" value="22"/> - <cv index="30" value="157"/> - <cv index="31" value="114"/> - <cv index="32" value="87"/> - <cv index="33" value="101"/> - <cv index="34" value="162"/> - <cv index="35" value="155"/> - <cv index="36" value="213"/> - <cv index="37" value="176"/> - <cv index="38" value="152"/> - <cv index="39" value="212"/> - <cv index="40" value="113"/> - </cvt> - - <loca> - <!-- The 'loca' table will be calculated by the compiler --> - </loca> - - <glyf> - - <!-- The xMin, yMin, xMax and yMax values - will be recalculated by the compiler. --> - - <TTGlyph name=".notdef" xMin="123" yMin="0" xMax="1106" yMax="1480"> - <contour> - <pt x="123" y="0" on="1"/> - <pt x="123" y="1480" on="1"/> - <pt x="1106" y="1480" on="1"/> - <pt x="1106" y="0" on="1"/> - </contour> - <contour> - <pt x="983" y="123" on="1"/> - <pt x="983" y="1357" on="1"/> - <pt x="246" y="1357" on="1"/> - <pt x="246" y="123" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 16 values pushed */ - 5 6 2 1 4 7 3 0 5 4 2 3 6 7 1 0 - MDAP[1] - ALIGNRP[ ] - MDRP[11100] - ALIGNRP[ ] - MDAP[1] - ALIGNRP[ ] - MDRP[11100] - ALIGNRP[ ] - SVTCA[0] - MDAP[1] - ALIGNRP[ ] - MDRP[11100] - ALIGNRP[ ] - MDAP[1] - ALIGNRP[ ] - MDRP[11100] - ALIGNRP[ ] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name=".notdef#1"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#10"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#11"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#12"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#13"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#14"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#15"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#16"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#17"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#18"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#2"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#3"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#4"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#5"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#6"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#7"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#8"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#9"/><!-- contains no outline data --> - - <TTGlyph name="A" xMin="25" yMin="0" xMax="1203" yMax="1480"> - <contour> - <pt x="327" y="444" on="1"/> - <pt x="228" y="123" on="1"/> - <pt x="371" y="123" on="1"/> - <pt x="371" y="0" on="1"/> - <pt x="25" y="0" on="1"/> - <pt x="25" y="123" on="1"/> - <pt x="99" y="123" on="1"/> - <pt x="520" y="1480" on="1"/> - <pt x="709" y="1480" on="1"/> - <pt x="1129" y="123" on="1"/> - <pt x="1203" y="123" on="1"/> - <pt x="1203" y="0" on="1"/> - <pt x="766" y="0" on="1"/> - <pt x="766" y="123" on="1"/> - <pt x="923" y="123" on="1"/> - <pt x="823" y="444" on="1"/> - </contour> - <contour> - <pt x="366" y="568" on="1"/> - <pt x="785" y="568" on="1"/> - <pt x="577" y="1243" on="1"/> - <pt x="575" y="1243" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 62 values pushed */ - 19 18 2 7 16 3 0 0 17 16 6 1 0 14 13 10 9 6 5 2 1 6 7 3 2 - 4 48 200 15 0 1 12 11 4 3 3 2 0 8 7 0 14 19 18 17 16 15 14 13 12 - 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="AE" xMin="12" yMin="0" xMax="1217" yMax="1480"> - <contour> - <pt x="824" y="703" on="1"/> - <pt x="824" y="123" on="1"/> - <pt x="1093" y="123" on="1"/> - <pt x="1093" y="333" on="1"/> - <pt x="1217" y="333" on="1"/> - <pt x="1217" y="0" on="1"/> - <pt x="528" y="0" on="1"/> - <pt x="528" y="123" on="1"/> - <pt x="639" y="123" on="1"/> - <pt x="639" y="419" on="1"/> - <pt x="310" y="419" on="1"/> - <pt x="183" y="123" on="1"/> - <pt x="304" y="123" on="1"/> - <pt x="304" y="0" on="1"/> - <pt x="12" y="0" on="1"/> - <pt x="12" y="123" on="1"/> - <pt x="56" y="123" on="1"/> - <pt x="639" y="1480" on="1"/> - <pt x="1198" y="1480" on="1"/> - <pt x="1198" y="1166" on="1"/> - <pt x="1075" y="1166" on="1"/> - <pt x="1075" y="1357" on="1"/> - <pt x="824" y="1357" on="1"/> - <pt x="824" y="827" on="1"/> - <pt x="1001" y="827" on="1"/> - <pt x="1001" y="950" on="1"/> - <pt x="1124" y="950" on="1"/> - <pt x="1124" y="580" on="1"/> - <pt x="1001" y="580" on="1"/> - <pt x="1001" y="703" on="1"/> - </contour> - <contour> - <pt x="363" y="543" on="1"/> - <pt x="639" y="543" on="1"/> - <pt x="639" y="1180" on="1"/> - <pt x="638" y="1180" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 133 values pushed */ - 33 32 26 25 20 19 6 21 23 3 28 27 2 0 30 3 4 3 2 9 1 3 0 0 22 - 21 6 1 17 29 0 6 1 23 31 30 6 1 9 16 15 12 11 8 7 2 1 6 7 5 - 4 4 48 200 24 23 1 10 9 1 14 13 6 5 3 3 0 18 17 0 14 29 28 25 24 - 4 20 0 3 33 30 16 15 14 13 12 11 10 7 6 11 13 8 0 0 3 2 6 1 4 - 21 20 6 1 18 32 31 17 9 8 19 4 0 3 4 48 200 5 4 1 19 18 1 27 26 - 1 23 22 1 0 3 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Aacute" xMin="25" yMin="0" xMax="1203" yMax="1925"> - <contour> - <pt x="327" y="444" on="1"/> - <pt x="228" y="123" on="1"/> - <pt x="371" y="123" on="1"/> - <pt x="371" y="0" on="1"/> - <pt x="25" y="0" on="1"/> - <pt x="25" y="123" on="1"/> - <pt x="99" y="123" on="1"/> - <pt x="520" y="1480" on="1"/> - <pt x="709" y="1480" on="1"/> - <pt x="1129" y="123" on="1"/> - <pt x="1203" y="123" on="1"/> - <pt x="1203" y="0" on="1"/> - <pt x="766" y="0" on="1"/> - <pt x="766" y="123" on="1"/> - <pt x="923" y="123" on="1"/> - <pt x="823" y="444" on="1"/> - </contour> - <contour> - <pt x="366" y="568" on="1"/> - <pt x="785" y="568" on="1"/> - <pt x="577" y="1243" on="1"/> - <pt x="575" y="1243" on="1"/> - </contour> - <contour> - <pt x="491" y="1604" on="1"/> - <pt x="707" y="1925" on="1"/> - <pt x="935" y="1925" on="1"/> - <pt x="614" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 75 values pushed */ - 23 20 2 21 7 3 19 18 2 7 16 3 0 0 17 16 6 1 0 14 13 10 9 6 5 - 2 1 6 7 3 2 4 48 200 22 21 1 15 0 1 12 11 4 3 3 3 0 8 7 0 - 14 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Abreve" xMin="25" yMin="0" xMax="1203" yMax="1925"> - <contour> - <pt x="327" y="444" on="1"/> - <pt x="228" y="123" on="1"/> - <pt x="371" y="123" on="1"/> - <pt x="371" y="0" on="1"/> - <pt x="25" y="0" on="1"/> - <pt x="25" y="123" on="1"/> - <pt x="99" y="123" on="1"/> - <pt x="520" y="1480" on="1"/> - <pt x="709" y="1480" on="1"/> - <pt x="1129" y="123" on="1"/> - <pt x="1203" y="123" on="1"/> - <pt x="1203" y="0" on="1"/> - <pt x="766" y="0" on="1"/> - <pt x="766" y="123" on="1"/> - <pt x="923" y="123" on="1"/> - <pt x="823" y="444" on="1"/> - </contour> - <contour> - <pt x="366" y="568" on="1"/> - <pt x="785" y="568" on="1"/> - <pt x="577" y="1243" on="1"/> - <pt x="575" y="1243" on="1"/> - </contour> - <contour> - <pt x="269" y="1925" on="1"/> - <pt x="392" y="1925" on="1"/> - <pt x="440" y="1777" on="0"/> - <pt x="614" y="1777" on="1"/> - <pt x="789" y="1777" on="0"/> - <pt x="837" y="1925" on="1"/> - <pt x="960" y="1925" on="1"/> - <pt x="937" y="1836" on="0"/> - <pt x="911" y="1790" on="1"/> - <pt x="820" y="1635" on="0"/> - <pt x="618" y="1635" on="1"/> - <pt x="466" y="1635" on="0"/> - <pt x="377" y="1716" on="1"/> - <pt x="322" y="1765" on="0"/> - <pt x="294" y="1837" on="1"/> - <pt x="283" y="1866" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 81 values pushed */ - 0 0 23 14 30 48 200 19 18 2 7 16 3 26 25 21 20 4 13 30 7 0 0 17 16 - 6 1 0 14 13 10 9 6 5 2 1 6 7 3 2 4 48 200 15 0 1 12 11 4 3 - 3 2 0 8 7 0 14 26 25 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 - 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Acircumflex" xMin="25" yMin="0" xMax="1203" yMax="1925"> - <contour> - <pt x="327" y="444" on="1"/> - <pt x="228" y="123" on="1"/> - <pt x="371" y="123" on="1"/> - <pt x="371" y="0" on="1"/> - <pt x="25" y="0" on="1"/> - <pt x="25" y="123" on="1"/> - <pt x="99" y="123" on="1"/> - <pt x="520" y="1480" on="1"/> - <pt x="709" y="1480" on="1"/> - <pt x="1129" y="123" on="1"/> - <pt x="1203" y="123" on="1"/> - <pt x="1203" y="0" on="1"/> - <pt x="766" y="0" on="1"/> - <pt x="766" y="123" on="1"/> - <pt x="923" y="123" on="1"/> - <pt x="823" y="444" on="1"/> - </contour> - <contour> - <pt x="366" y="568" on="1"/> - <pt x="785" y="568" on="1"/> - <pt x="577" y="1243" on="1"/> - <pt x="575" y="1243" on="1"/> - </contour> - <contour> - <pt x="249" y="1604" on="1"/> - <pt x="505" y="1925" on="1"/> - <pt x="724" y="1925" on="1"/> - <pt x="980" y="1604" on="1"/> - <pt x="857" y="1604" on="1"/> - <pt x="616" y="1806" on="1"/> - <pt x="613" y="1806" on="1"/> - <pt x="372" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 83 values pushed */ - 27 26 25 24 23 20 6 21 7 3 19 18 2 7 16 3 0 0 17 16 6 1 0 14 13 - 10 9 6 5 2 1 6 7 3 2 4 48 200 22 21 1 15 0 1 12 11 4 3 3 3 - 0 8 7 0 14 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 - 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Adieresis" xMin="25" yMin="0" xMax="1203" yMax="1801"> - <contour> - <pt x="327" y="444" on="1"/> - <pt x="228" y="123" on="1"/> - <pt x="371" y="123" on="1"/> - <pt x="371" y="0" on="1"/> - <pt x="25" y="0" on="1"/> - <pt x="25" y="123" on="1"/> - <pt x="99" y="123" on="1"/> - <pt x="520" y="1480" on="1"/> - <pt x="709" y="1480" on="1"/> - <pt x="1129" y="123" on="1"/> - <pt x="1203" y="123" on="1"/> - <pt x="1203" y="0" on="1"/> - <pt x="766" y="0" on="1"/> - <pt x="766" y="123" on="1"/> - <pt x="923" y="123" on="1"/> - <pt x="823" y="444" on="1"/> - </contour> - <contour> - <pt x="366" y="568" on="1"/> - <pt x="785" y="568" on="1"/> - <pt x="577" y="1243" on="1"/> - <pt x="575" y="1243" on="1"/> - </contour> - <contour> - <pt x="281" y="1604" on="1"/> - <pt x="281" y="1801" on="1"/> - <pt x="478" y="1801" on="1"/> - <pt x="478" y="1604" on="1"/> - </contour> - <contour> - <pt x="750" y="1604" on="1"/> - <pt x="750" y="1801" on="1"/> - <pt x="947" y="1801" on="1"/> - <pt x="947" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 116 values pushed */ - 19 18 2 7 16 3 0 0 27 24 23 20 10 3 21 17 16 6 1 0 14 13 10 9 6 - 5 2 1 6 7 3 3 4 48 200 26 25 22 21 3 15 0 1 12 11 4 3 3 3 0 - 8 7 0 14 17 15 14 13 12 5 26 24 3 19 18 8 7 4 24 22 3 16 3 2 0 - 4 22 20 3 11 10 9 3 13 26 6 5 4 1 4 13 20 0 0 25 24 10 1 26 23 - 22 10 1 20 2 4 48 200 27 26 1 21 20 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Agrave" xMin="25" yMin="0" xMax="1203" yMax="1925"> - <contour> - <pt x="327" y="444" on="1"/> - <pt x="228" y="123" on="1"/> - <pt x="371" y="123" on="1"/> - <pt x="371" y="0" on="1"/> - <pt x="25" y="0" on="1"/> - <pt x="25" y="123" on="1"/> - <pt x="99" y="123" on="1"/> - <pt x="520" y="1480" on="1"/> - <pt x="709" y="1480" on="1"/> - <pt x="1129" y="123" on="1"/> - <pt x="1203" y="123" on="1"/> - <pt x="1203" y="0" on="1"/> - <pt x="766" y="0" on="1"/> - <pt x="766" y="123" on="1"/> - <pt x="923" y="123" on="1"/> - <pt x="823" y="444" on="1"/> - </contour> - <contour> - <pt x="366" y="568" on="1"/> - <pt x="785" y="568" on="1"/> - <pt x="577" y="1243" on="1"/> - <pt x="575" y="1243" on="1"/> - </contour> - <contour> - <pt x="738" y="1604" on="1"/> - <pt x="615" y="1604" on="1"/> - <pt x="294" y="1925" on="1"/> - <pt x="522" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 75 values pushed */ - 21 20 2 22 7 3 19 18 2 7 16 3 0 0 17 16 6 1 0 14 13 10 9 6 5 - 2 1 6 7 3 2 4 48 200 23 22 1 15 0 1 12 11 4 3 3 3 0 8 7 0 - 14 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Amacron" xMin="25" yMin="0" xMax="1203" yMax="1728"> - <contour> - <pt x="327" y="444" on="1"/> - <pt x="228" y="123" on="1"/> - <pt x="371" y="123" on="1"/> - <pt x="371" y="0" on="1"/> - <pt x="25" y="0" on="1"/> - <pt x="25" y="123" on="1"/> - <pt x="99" y="123" on="1"/> - <pt x="520" y="1480" on="1"/> - <pt x="709" y="1480" on="1"/> - <pt x="1129" y="123" on="1"/> - <pt x="1203" y="123" on="1"/> - <pt x="1203" y="0" on="1"/> - <pt x="766" y="0" on="1"/> - <pt x="766" y="123" on="1"/> - <pt x="923" y="123" on="1"/> - <pt x="823" y="444" on="1"/> - </contour> - <contour> - <pt x="366" y="568" on="1"/> - <pt x="785" y="568" on="1"/> - <pt x="577" y="1243" on="1"/> - <pt x="575" y="1243" on="1"/> - </contour> - <contour> - <pt x="259" y="1604" on="1"/> - <pt x="259" y="1728" on="1"/> - <pt x="950" y="1728" on="1"/> - <pt x="950" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 74 values pushed */ - 19 18 2 7 16 3 0 0 23 20 6 1 21 17 16 6 1 0 14 13 10 9 6 5 2 - 1 6 7 3 3 4 48 200 22 21 1 15 0 1 12 11 4 3 3 3 0 8 7 0 14 - 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Aogonek" xMin="25" yMin="-370" xMax="1203" yMax="1480"> - <contour> - <pt x="327" y="444" on="1"/> - <pt x="228" y="123" on="1"/> - <pt x="371" y="123" on="1"/> - <pt x="371" y="0" on="1"/> - <pt x="25" y="0" on="1"/> - <pt x="25" y="123" on="1"/> - <pt x="99" y="123" on="1"/> - <pt x="520" y="1480" on="1"/> - <pt x="709" y="1480" on="1"/> - <pt x="1129" y="123" on="1"/> - <pt x="1203" y="123" on="1"/> - <pt x="1203" y="0" on="1"/> - <pt x="766" y="0" on="1"/> - <pt x="766" y="123" on="1"/> - <pt x="923" y="123" on="1"/> - <pt x="823" y="444" on="1"/> - </contour> - <contour> - <pt x="366" y="568" on="1"/> - <pt x="785" y="568" on="1"/> - <pt x="577" y="1243" on="1"/> - <pt x="575" y="1243" on="1"/> - </contour> - <contour> - <pt x="920" y="0" on="1"/> - <pt x="1027" y="0" on="1"/> - <pt x="898" y="-81" on="0"/> - <pt x="898" y="-179" on="1"/> - <pt x="898" y="-275" on="0"/> - <pt x="1013" y="-275" on="1"/> - <pt x="1067" y="-275" on="0"/> - <pt x="1104" y="-260" on="1"/> - <pt x="1104" y="-341" on="1"/> - <pt x="1042" y="-370" on="0"/> - <pt x="964" y="-370" on="1"/> - <pt x="762" y="-370" on="0"/> - <pt x="762" y="-213" on="1"/> - <pt x="762" y="-90" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 87 values pushed */ - 0 0 25 17 30 48 200 19 18 2 7 16 3 28 27 30 3 0 0 17 16 6 1 0 14 - 13 10 9 6 5 2 1 6 7 3 2 4 48 200 15 0 1 21 20 12 11 4 3 5 2 - 0 8 7 0 14 0 0 23 20 32 48 200 32 28 27 21 20 19 18 17 16 15 14 13 12 - 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Aring" xMin="25" yMin="0" xMax="1203" yMax="1935"> - <contour> - <pt x="327" y="444" on="1"/> - <pt x="228" y="123" on="1"/> - <pt x="371" y="123" on="1"/> - <pt x="371" y="0" on="1"/> - <pt x="25" y="0" on="1"/> - <pt x="25" y="123" on="1"/> - <pt x="99" y="123" on="1"/> - <pt x="520" y="1480" on="1"/> - <pt x="709" y="1480" on="1"/> - <pt x="1129" y="123" on="1"/> - <pt x="1203" y="123" on="1"/> - <pt x="1203" y="0" on="1"/> - <pt x="766" y="0" on="1"/> - <pt x="766" y="123" on="1"/> - <pt x="923" y="123" on="1"/> - <pt x="823" y="444" on="1"/> - </contour> - <contour> - <pt x="366" y="568" on="1"/> - <pt x="785" y="568" on="1"/> - <pt x="577" y="1243" on="1"/> - <pt x="575" y="1243" on="1"/> - </contour> - <contour> - <pt x="615" y="1935" on="1"/> - <pt x="709" y="1935" on="0"/> - <pt x="775" y="1869" on="1"/> - <pt x="842" y="1803" on="0"/> - <pt x="842" y="1709" on="1"/> - <pt x="842" y="1612" on="0"/> - <pt x="775" y="1547" on="1"/> - <pt x="709" y="1481" on="0"/> - <pt x="613" y="1481" on="1"/> - <pt x="530" y="1481" on="0"/> - <pt x="468" y="1535" on="1"/> - <pt x="388" y="1604" on="0"/> - <pt x="388" y="1708" on="1"/> - <pt x="388" y="1802" on="0"/> - <pt x="455" y="1868" on="1"/> - <pt x="521" y="1935" on="0"/> - </contour> - <contour> - <pt x="615" y="1848" on="1"/> - <pt x="557" y="1848" on="0"/> - <pt x="516" y="1808" on="1"/> - <pt x="474" y="1767" on="0"/> - <pt x="474" y="1709" on="1"/> - <pt x="474" y="1650" on="0"/> - <pt x="515" y="1609" on="1"/> - <pt x="556" y="1567" on="0"/> - <pt x="613" y="1567" on="1"/> - <pt x="667" y="1567" on="0"/> - <pt x="706" y="1600" on="1"/> - <pt x="756" y="1643" on="0"/> - <pt x="756" y="1709" on="1"/> - <pt x="756" y="1767" on="0"/> - <pt x="714" y="1808" on="1"/> - <pt x="673" y="1848" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 88 values pushed */ - 0 0 44 32 28 36 32 20 48 200 28 0 19 18 2 7 16 3 20 7 0 0 17 16 6 - 1 0 14 13 10 9 6 5 2 1 6 7 3 2 4 48 200 15 0 1 12 11 4 3 3 - 2 0 8 7 0 14 0 0 48 32 24 40 32 32 48 200 32 24 19 18 17 16 15 14 13 - 12 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Atilde" xMin="25" yMin="0" xMax="1203" yMax="1839"> - <contour> - <pt x="327" y="444" on="1"/> - <pt x="228" y="123" on="1"/> - <pt x="371" y="123" on="1"/> - <pt x="371" y="0" on="1"/> - <pt x="25" y="0" on="1"/> - <pt x="25" y="123" on="1"/> - <pt x="99" y="123" on="1"/> - <pt x="520" y="1480" on="1"/> - <pt x="709" y="1480" on="1"/> - <pt x="1129" y="123" on="1"/> - <pt x="1203" y="123" on="1"/> - <pt x="1203" y="0" on="1"/> - <pt x="766" y="0" on="1"/> - <pt x="766" y="123" on="1"/> - <pt x="923" y="123" on="1"/> - <pt x="823" y="444" on="1"/> - </contour> - <contour> - <pt x="366" y="568" on="1"/> - <pt x="785" y="568" on="1"/> - <pt x="577" y="1243" on="1"/> - <pt x="575" y="1243" on="1"/> - </contour> - <contour> - <pt x="281" y="1604" on="1"/> - <pt x="287" y="1699" on="0"/> - <pt x="312" y="1749" on="1"/> - <pt x="357" y="1839" on="0"/> - <pt x="466" y="1839" on="1"/> - <pt x="538" y="1839" on="0"/> - <pt x="601" y="1800" on="1"/> - <pt x="661" y="1763" on="1"/> - <pt x="723" y="1725" on="0"/> - <pt x="757" y="1725" on="1"/> - <pt x="825" y="1725" on="0"/> - <pt x="836" y="1839" on="1"/> - <pt x="947" y="1839" on="1"/> - <pt x="940" y="1745" on="0"/> - <pt x="915" y="1695" on="1"/> - <pt x="869" y="1604" on="0"/> - <pt x="762" y="1604" on="1"/> - <pt x="689" y="1604" on="0"/> - <pt x="626" y="1643" on="1"/> - <pt x="566" y="1680" on="1"/> - <pt x="506" y="1717" on="0"/> - <pt x="470" y="1717" on="1"/> - <pt x="402" y="1717" on="0"/> - <pt x="391" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 85 values pushed */ - 0 0 41 5 24 29 5 36 48 200 19 18 2 7 16 3 43 32 31 20 4 13 36 24 7 - 0 0 17 16 6 1 0 14 13 10 9 6 5 2 1 6 7 3 2 4 48 200 15 0 1 - 12 11 4 3 3 2 0 8 7 0 14 43 32 31 20 19 18 17 16 15 14 13 12 11 10 - 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="B" xMin="74" yMin="0" xMax="1112" yMax="1480"> - <contour> - <pt x="247" y="123" on="1"/> - <pt x="247" y="1357" on="1"/> - <pt x="74" y="1357" on="1"/> - <pt x="74" y="1480" on="1"/> - <pt x="692" y="1480" on="1"/> - <pt x="1066" y="1480" on="0"/> - <pt x="1066" y="1155" on="1"/> - <pt x="1066" y="987" on="0"/> - <pt x="964" y="882" on="1"/> - <pt x="904" y="819" on="0"/> - <pt x="790" y="771" on="1"/> - <pt x="888" y="745" on="0"/> - <pt x="938" y="715" on="1"/> - <pt x="1112" y="610" on="0"/> - <pt x="1112" y="377" on="1"/> - <pt x="1112" y="0" on="0"/> - <pt x="668" y="0" on="1"/> - <pt x="74" y="0" on="1"/> - <pt x="74" y="123" on="1"/> - </contour> - <contour> - <pt x="444" y="123" on="1"/> - <pt x="607" y="123" on="1"/> - <pt x="902" y="123" on="0"/> - <pt x="902" y="384" on="1"/> - <pt x="902" y="532" on="0"/> - <pt x="805" y="618" on="1"/> - <pt x="709" y="703" on="0"/> - <pt x="541" y="703" on="1"/> - <pt x="444" y="703" on="1"/> - </contour> - <contour> - <pt x="444" y="827" on="1"/> - <pt x="542" y="827" on="1"/> - <pt x="855" y="827" on="0"/> - <pt x="855" y="1139" on="1"/> - <pt x="855" y="1357" on="0"/> - <pt x="644" y="1357" on="1"/> - <pt x="444" y="1357" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 83 values pushed */ - 29 28 27 26 10 5 1 0 3 0 0 34 33 2 1 6 3 3 20 19 18 0 6 3 16 - 2 4 48 200 17 16 1 0 4 3 0 14 0 0 31 39 6 22 39 14 48 200 33 29 26 - 20 16 10 4 7 13 14 6 19 18 17 3 2 4 13 0 0 0 34 28 27 19 10 3 0 - 1 4 48 200 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="C" xMin="123" yMin="-37" xMax="1127" yMax="1517"> - <contour> - <pt x="1127" y="74" on="1"/> - <pt x="920" y="-37" on="0"/> - <pt x="739" y="-37" on="1"/> - <pt x="450" y="-37" on="0"/> - <pt x="287" y="169" on="1"/> - <pt x="123" y="375" on="0"/> - <pt x="123" y="748" on="1"/> - <pt x="123" y="1117" on="0"/> - <pt x="279" y="1317" on="1"/> - <pt x="435" y="1517" on="0"/> - <pt x="725" y="1517" on="1"/> - <pt x="889" y="1517" on="0"/> - <pt x="1106" y="1453" on="1"/> - <pt x="1106" y="1110" on="1"/> - <pt x="983" y="1110" on="1"/> - <pt x="954" y="1341" on="1"/> - <pt x="841" y="1394" on="0"/> - <pt x="730" y="1394" on="1"/> - <pt x="543" y="1394" on="0"/> - <pt x="439" y="1218" on="1"/> - <pt x="336" y="1043" on="0"/> - <pt x="336" y="734" on="1"/> - <pt x="336" y="435" on="0"/> - <pt x="450" y="267" on="1"/> - <pt x="563" y="99" on="0"/> - <pt x="763" y="99" on="1"/> - <pt x="941" y="99" on="0"/> - <pt x="1127" y="234" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 55 values pushed */ - 0 0 25 20 2 17 5 10 48 200 10 0 2 2 1 1 27 15 14 13 12 0 6 0 2 - 3 0 0 14 0 0 21 39 6 48 200 15 14 6 12 0 0 13 12 29 1 0 1 5 48 - 200 27 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Cacute" xMin="123" yMin="-37" xMax="1127" yMax="1925"> - <contour> - <pt x="1127" y="74" on="1"/> - <pt x="920" y="-37" on="0"/> - <pt x="739" y="-37" on="1"/> - <pt x="450" y="-37" on="0"/> - <pt x="287" y="169" on="1"/> - <pt x="123" y="375" on="0"/> - <pt x="123" y="748" on="1"/> - <pt x="123" y="1117" on="0"/> - <pt x="279" y="1317" on="1"/> - <pt x="435" y="1517" on="0"/> - <pt x="725" y="1517" on="1"/> - <pt x="889" y="1517" on="0"/> - <pt x="1106" y="1453" on="1"/> - <pt x="1106" y="1110" on="1"/> - <pt x="983" y="1110" on="1"/> - <pt x="954" y="1341" on="1"/> - <pt x="841" y="1394" on="0"/> - <pt x="730" y="1394" on="1"/> - <pt x="543" y="1394" on="0"/> - <pt x="439" y="1218" on="1"/> - <pt x="336" y="1043" on="0"/> - <pt x="336" y="734" on="1"/> - <pt x="336" y="435" on="0"/> - <pt x="450" y="267" on="1"/> - <pt x="563" y="99" on="0"/> - <pt x="763" y="99" on="1"/> - <pt x="941" y="99" on="0"/> - <pt x="1127" y="234" on="1"/> - </contour> - <contour> - <pt x="591" y="1604" on="1"/> - <pt x="807" y="1925" on="1"/> - <pt x="1035" y="1925" on="1"/> - <pt x="714" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 73 values pushed */ - 0 0 25 20 2 17 5 10 48 200 10 0 2 2 1 31 28 2 29 0 3 0 1 1 27 - 15 14 13 12 0 6 0 2 3 0 0 30 29 1 0 14 0 0 21 39 6 48 200 31 30 - 29 28 15 14 6 13 6 12 0 0 13 12 29 1 0 1 5 48 200 27 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ccaron" xMin="123" yMin="-37" xMax="1127" yMax="1925"> - <contour> - <pt x="1127" y="74" on="1"/> - <pt x="920" y="-37" on="0"/> - <pt x="739" y="-37" on="1"/> - <pt x="450" y="-37" on="0"/> - <pt x="287" y="169" on="1"/> - <pt x="123" y="375" on="0"/> - <pt x="123" y="748" on="1"/> - <pt x="123" y="1117" on="0"/> - <pt x="279" y="1317" on="1"/> - <pt x="435" y="1517" on="0"/> - <pt x="725" y="1517" on="1"/> - <pt x="889" y="1517" on="0"/> - <pt x="1106" y="1453" on="1"/> - <pt x="1106" y="1110" on="1"/> - <pt x="983" y="1110" on="1"/> - <pt x="954" y="1341" on="1"/> - <pt x="841" y="1394" on="0"/> - <pt x="730" y="1394" on="1"/> - <pt x="543" y="1394" on="0"/> - <pt x="439" y="1218" on="1"/> - <pt x="336" y="1043" on="0"/> - <pt x="336" y="734" on="1"/> - <pt x="336" y="435" on="0"/> - <pt x="450" y="267" on="1"/> - <pt x="563" y="99" on="0"/> - <pt x="763" y="99" on="1"/> - <pt x="941" y="99" on="0"/> - <pt x="1127" y="234" on="1"/> - </contour> - <contour> - <pt x="1080" y="1925" on="1"/> - <pt x="823" y="1604" on="1"/> - <pt x="605" y="1604" on="1"/> - <pt x="348" y="1925" on="1"/> - <pt x="472" y="1925" on="1"/> - <pt x="713" y="1723" on="1"/> - <pt x="715" y="1723" on="1"/> - <pt x="957" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 78 values pushed */ - 0 0 25 20 2 17 5 10 48 200 10 0 2 2 1 1 27 15 14 13 12 0 6 0 2 - 3 0 0 35 34 33 32 31 28 6 13 29 30 29 1 0 14 0 0 21 39 6 48 200 35 - 34 33 32 31 30 29 28 15 14 10 13 6 12 0 0 13 12 29 1 0 1 5 48 200 27 - 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ccedilla" xMin="123" yMin="-432" xMax="1127" yMax="1517"> - <contour> - <pt x="1127" y="74" on="1"/> - <pt x="920" y="-37" on="0"/> - <pt x="739" y="-37" on="1"/> - <pt x="450" y="-37" on="0"/> - <pt x="287" y="169" on="1"/> - <pt x="123" y="375" on="0"/> - <pt x="123" y="748" on="1"/> - <pt x="123" y="1117" on="0"/> - <pt x="279" y="1317" on="1"/> - <pt x="435" y="1517" on="0"/> - <pt x="725" y="1517" on="1"/> - <pt x="889" y="1517" on="0"/> - <pt x="1106" y="1453" on="1"/> - <pt x="1106" y="1110" on="1"/> - <pt x="983" y="1110" on="1"/> - <pt x="954" y="1341" on="1"/> - <pt x="841" y="1394" on="0"/> - <pt x="730" y="1394" on="1"/> - <pt x="542" y="1394" on="0"/> - <pt x="439" y="1218" on="1"/> - <pt x="336" y="1042" on="0"/> - <pt x="336" y="734" on="1"/> - <pt x="336" y="436" on="0"/> - <pt x="450" y="267" on="1"/> - <pt x="563" y="99" on="0"/> - <pt x="763" y="99" on="1"/> - <pt x="941" y="99" on="0"/> - <pt x="1127" y="234" on="1"/> - </contour> - <contour> - <pt x="669" y="0" on="1"/> - <pt x="766" y="0" on="1"/> - <pt x="706" y="-109" on="1"/> - <pt x="778" y="-111" on="0"/> - <pt x="830" y="-148" on="1"/> - <pt x="900" y="-197" on="0"/> - <pt x="900" y="-269" on="1"/> - <pt x="900" y="-337" on="0"/> - <pt x="841" y="-384" on="1"/> - <pt x="782" y="-432" on="0"/> - <pt x="697" y="-432" on="1"/> - <pt x="630" y="-432" on="0"/> - <pt x="553" y="-411" on="1"/> - <pt x="553" y="-330" on="1"/> - <pt x="603" y="-345" on="0"/> - <pt x="657" y="-345" on="1"/> - <pt x="761" y="-345" on="0"/> - <pt x="761" y="-271" on="1"/> - <pt x="761" y="-178" on="0"/> - <pt x="574" y="-175" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 82 values pushed */ - 0 0 43 32 38 25 20 2 17 5 10 48 200 10 0 2 2 1 1 27 15 14 13 12 0 - 6 0 2 3 0 0 1 47 41 40 30 29 28 6 13 38 2 0 14 0 0 45 20 34 21 - 39 6 48 200 47 41 40 30 29 28 15 14 8 13 34 6 12 0 0 13 12 29 1 0 1 - 5 48 200 27 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ccircumflex" xMin="123" yMin="-37" xMax="1127" yMax="1925"> - <contour> - <pt x="1127" y="74" on="1"/> - <pt x="920" y="-37" on="0"/> - <pt x="739" y="-37" on="1"/> - <pt x="450" y="-37" on="0"/> - <pt x="287" y="169" on="1"/> - <pt x="123" y="375" on="0"/> - <pt x="123" y="748" on="1"/> - <pt x="123" y="1117" on="0"/> - <pt x="279" y="1317" on="1"/> - <pt x="435" y="1517" on="0"/> - <pt x="725" y="1517" on="1"/> - <pt x="889" y="1517" on="0"/> - <pt x="1106" y="1453" on="1"/> - <pt x="1106" y="1110" on="1"/> - <pt x="983" y="1110" on="1"/> - <pt x="954" y="1341" on="1"/> - <pt x="841" y="1394" on="0"/> - <pt x="730" y="1394" on="1"/> - <pt x="543" y="1394" on="0"/> - <pt x="439" y="1218" on="1"/> - <pt x="336" y="1043" on="0"/> - <pt x="336" y="734" on="1"/> - <pt x="336" y="435" on="0"/> - <pt x="450" y="267" on="1"/> - <pt x="563" y="99" on="0"/> - <pt x="763" y="99" on="1"/> - <pt x="941" y="99" on="0"/> - <pt x="1127" y="234" on="1"/> - </contour> - <contour> - <pt x="348" y="1604" on="1"/> - <pt x="604" y="1925" on="1"/> - <pt x="823" y="1925" on="1"/> - <pt x="1079" y="1604" on="1"/> - <pt x="956" y="1604" on="1"/> - <pt x="715" y="1806" on="1"/> - <pt x="712" y="1806" on="1"/> - <pt x="471" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 81 values pushed */ - 0 0 25 20 2 17 5 10 48 200 10 0 2 2 1 35 34 33 32 31 28 6 29 0 3 - 0 1 1 27 15 14 13 12 0 6 0 2 3 0 0 30 29 1 0 14 0 0 21 39 6 - 48 200 35 34 33 32 31 30 29 28 15 14 10 13 6 12 0 0 13 12 29 1 0 1 5 - 48 200 27 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Cdotaccent" xMin="123" yMin="-37" xMax="1127" yMax="1801"> - <contour> - <pt x="1127" y="74" on="1"/> - <pt x="920" y="-37" on="0"/> - <pt x="739" y="-37" on="1"/> - <pt x="450" y="-37" on="0"/> - <pt x="287" y="169" on="1"/> - <pt x="123" y="375" on="0"/> - <pt x="123" y="748" on="1"/> - <pt x="123" y="1117" on="0"/> - <pt x="279" y="1317" on="1"/> - <pt x="435" y="1517" on="0"/> - <pt x="725" y="1517" on="1"/> - <pt x="889" y="1517" on="0"/> - <pt x="1106" y="1453" on="1"/> - <pt x="1106" y="1110" on="1"/> - <pt x="983" y="1110" on="1"/> - <pt x="954" y="1341" on="1"/> - <pt x="841" y="1394" on="0"/> - <pt x="730" y="1394" on="1"/> - <pt x="543" y="1394" on="0"/> - <pt x="439" y="1218" on="1"/> - <pt x="336" y="1043" on="0"/> - <pt x="336" y="734" on="1"/> - <pt x="336" y="435" on="0"/> - <pt x="450" y="267" on="1"/> - <pt x="563" y="99" on="0"/> - <pt x="763" y="99" on="1"/> - <pt x="941" y="99" on="0"/> - <pt x="1127" y="234" on="1"/> - </contour> - <contour> - <pt x="615" y="1604" on="1"/> - <pt x="615" y="1801" on="1"/> - <pt x="812" y="1801" on="1"/> - <pt x="812" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 85 values pushed */ - 0 0 25 20 2 17 5 10 48 200 10 0 2 2 1 1 27 15 14 13 12 0 6 0 2 - 3 0 0 0 0 31 28 10 1 29 1 4 48 200 30 29 1 0 14 0 0 21 39 6 48 - 200 15 14 2 12 30 3 6 28 0 0 31 30 10 1 28 1 4 13 12 29 1 0 1 5 - 48 200 29 28 1 27 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="D" xMin="49" yMin="0" xMax="1167" yMax="1480"> - <contour> - <pt x="49" y="0" on="1"/> - <pt x="49" y="123" on="1"/> - <pt x="197" y="123" on="1"/> - <pt x="197" y="1357" on="1"/> - <pt x="49" y="1357" on="1"/> - <pt x="49" y="1480" on="1"/> - <pt x="559" y="1480" on="1"/> - <pt x="1167" y="1480" on="0"/> - <pt x="1167" y="775" on="1"/> - <pt x="1167" y="419" on="0"/> - <pt x="1007" y="209" on="1"/> - <pt x="847" y="0" on="0"/> - <pt x="577" y="0" on="1"/> - </contour> - <contour> - <pt x="395" y="123" on="1"/> - <pt x="513" y="123" on="1"/> - <pt x="954" y="123" on="0"/> - <pt x="954" y="754" on="1"/> - <pt x="954" y="1063" on="0"/> - <pt x="843" y="1210" on="1"/> - <pt x="731" y="1357" on="0"/> - <pt x="499" y="1357" on="1"/> - <pt x="395" y="1357" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 65 values pushed */ - 0 0 21 20 4 3 6 3 5 14 13 2 1 6 3 0 2 4 48 200 12 0 1 0 6 - 5 0 14 0 0 16 39 8 48 200 20 14 12 6 4 13 8 13 5 4 1 0 4 13 2 - 0 0 21 13 10 1 2 1 4 48 200 3 2 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Dcaron" xMin="49" yMin="0" xMax="1167" yMax="1925"> - <contour> - <pt x="49" y="0" on="1"/> - <pt x="49" y="123" on="1"/> - <pt x="197" y="123" on="1"/> - <pt x="197" y="1357" on="1"/> - <pt x="49" y="1357" on="1"/> - <pt x="49" y="1480" on="1"/> - <pt x="559" y="1480" on="1"/> - <pt x="1167" y="1480" on="0"/> - <pt x="1167" y="775" on="1"/> - <pt x="1167" y="419" on="0"/> - <pt x="1007" y="209" on="1"/> - <pt x="847" y="0" on="0"/> - <pt x="577" y="0" on="1"/> - </contour> - <contour> - <pt x="395" y="123" on="1"/> - <pt x="513" y="123" on="1"/> - <pt x="954" y="123" on="0"/> - <pt x="954" y="754" on="1"/> - <pt x="954" y="1063" on="0"/> - <pt x="843" y="1210" on="1"/> - <pt x="731" y="1357" on="0"/> - <pt x="499" y="1357" on="1"/> - <pt x="395" y="1357" on="1"/> - </contour> - <contour> - <pt x="919" y="1925" on="1"/> - <pt x="662" y="1604" on="1"/> - <pt x="444" y="1604" on="1"/> - <pt x="187" y="1925" on="1"/> - <pt x="311" y="1925" on="1"/> - <pt x="552" y="1723" on="1"/> - <pt x="554" y="1723" on="1"/> - <pt x="796" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 89 values pushed */ - 29 28 27 26 25 22 6 13 23 0 0 21 20 4 3 6 3 5 14 13 2 1 6 3 0 - 2 4 48 200 24 23 1 12 0 1 2 0 6 5 0 14 0 0 16 39 8 48 200 26 13 - 2 2 29 28 27 24 23 22 20 14 12 6 10 13 8 13 25 5 4 1 0 5 13 2 0 - 0 21 13 10 1 2 1 4 48 200 3 2 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Dcroat" xMin="49" yMin="0" xMax="1167" yMax="1480"> - <contour> - <pt x="49" y="0" on="1"/> - <pt x="49" y="123" on="1"/> - <pt x="197" y="123" on="1"/> - <pt x="197" y="716" on="1"/> - <pt x="49" y="716" on="1"/> - <pt x="49" y="839" on="1"/> - <pt x="197" y="839" on="1"/> - <pt x="197" y="1357" on="1"/> - <pt x="49" y="1357" on="1"/> - <pt x="49" y="1480" on="1"/> - <pt x="558" y="1480" on="1"/> - <pt x="1167" y="1480" on="0"/> - <pt x="1167" y="776" on="1"/> - <pt x="1167" y="419" on="0"/> - <pt x="1007" y="209" on="1"/> - <pt x="847" y="0" on="0"/> - <pt x="577" y="0" on="1"/> - </contour> - <contour> - <pt x="394" y="1357" on="1"/> - <pt x="394" y="839" on="1"/> - <pt x="666" y="839" on="1"/> - <pt x="666" y="716" on="1"/> - <pt x="394" y="716" on="1"/> - <pt x="394" y="123" on="1"/> - <pt x="513" y="123" on="1"/> - <pt x="954" y="123" on="0"/> - <pt x="954" y="754" on="1"/> - <pt x="954" y="1062" on="0"/> - <pt x="842" y="1210" on="1"/> - <pt x="730" y="1357" on="0"/> - <pt x="499" y="1357" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 86 values pushed */ - 0 0 29 17 8 7 6 3 9 21 20 4 3 6 3 5 23 22 2 1 6 3 0 3 4 - 48 200 19 18 6 5 3 16 0 1 2 0 10 9 0 14 0 0 25 39 12 48 200 29 23 - 20 19 16 10 6 13 12 17 9 8 5 4 1 0 6 13 2 0 0 22 21 18 17 10 3 - 2 1 4 48 200 7 6 3 2 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="E" xMin="74" yMin="0" xMax="1106" yMax="1480"> - <contour> - <pt x="74" y="0" on="1"/> - <pt x="74" y="123" on="1"/> - <pt x="259" y="123" on="1"/> - <pt x="259" y="1357" on="1"/> - <pt x="74" y="1357" on="1"/> - <pt x="74" y="1480" on="1"/> - <pt x="1056" y="1480" on="1"/> - <pt x="1056" y="1123" on="1"/> - <pt x="933" y="1123" on="1"/> - <pt x="933" y="1357" on="1"/> - <pt x="457" y="1357" on="1"/> - <pt x="457" y="814" on="1"/> - <pt x="748" y="814" on="1"/> - <pt x="748" y="938" on="1"/> - <pt x="871" y="938" on="1"/> - <pt x="871" y="567" on="1"/> - <pt x="748" y="567" on="1"/> - <pt x="748" y="691" on="1"/> - <pt x="457" y="691" on="1"/> - <pt x="457" y="136" on="1"/> - <pt x="982" y="136" on="1"/> - <pt x="982" y="383" on="1"/> - <pt x="1106" y="383" on="1"/> - <pt x="1106" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 108 values pushed */ - 14 13 8 7 4 3 11 3 22 21 16 15 4 17 19 3 0 0 10 9 4 3 6 3 5 - 18 17 6 1 11 20 19 20 1 0 2 1 6 1 0 4 4 48 200 12 11 1 23 0 1 - 2 0 6 5 0 14 17 16 13 12 4 14 10 3 5 4 1 0 4 13 2 0 0 21 20 - 6 1 22 9 8 6 1 6 19 18 11 10 10 3 2 3 4 48 200 23 22 1 7 6 1 - 15 14 1 3 2 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Eacute" xMin="74" yMin="0" xMax="1106" yMax="1925"> - <contour> - <pt x="74" y="0" on="1"/> - <pt x="74" y="123" on="1"/> - <pt x="259" y="123" on="1"/> - <pt x="259" y="1357" on="1"/> - <pt x="74" y="1357" on="1"/> - <pt x="74" y="1480" on="1"/> - <pt x="1056" y="1480" on="1"/> - <pt x="1056" y="1123" on="1"/> - <pt x="933" y="1123" on="1"/> - <pt x="933" y="1357" on="1"/> - <pt x="457" y="1357" on="1"/> - <pt x="457" y="814" on="1"/> - <pt x="748" y="814" on="1"/> - <pt x="748" y="938" on="1"/> - <pt x="871" y="938" on="1"/> - <pt x="871" y="567" on="1"/> - <pt x="748" y="567" on="1"/> - <pt x="748" y="691" on="1"/> - <pt x="457" y="691" on="1"/> - <pt x="457" y="136" on="1"/> - <pt x="982" y="136" on="1"/> - <pt x="982" y="383" on="1"/> - <pt x="1106" y="383" on="1"/> - <pt x="1106" y="0" on="1"/> - </contour> - <contour> - <pt x="481" y="1604" on="1"/> - <pt x="697" y="1925" on="1"/> - <pt x="925" y="1925" on="1"/> - <pt x="604" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 124 values pushed */ - 27 24 2 25 5 3 14 13 8 7 4 3 11 3 22 21 16 15 4 17 19 3 0 0 10 - 9 4 3 6 3 5 18 17 6 1 11 20 19 20 1 0 2 1 6 1 0 4 4 48 200 - 26 25 1 12 11 1 23 0 1 3 0 6 5 0 14 26 8 14 2 27 25 24 17 16 13 - 12 7 14 10 3 5 4 1 0 4 13 2 0 0 21 20 6 1 22 9 8 6 1 6 19 - 18 11 10 10 3 2 3 4 48 200 23 22 1 7 6 1 15 14 1 3 2 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ebreve" xMin="74" yMin="0" xMax="1106" yMax="1925"> - <contour> - <pt x="74" y="0" on="1"/> - <pt x="74" y="123" on="1"/> - <pt x="259" y="123" on="1"/> - <pt x="259" y="1357" on="1"/> - <pt x="74" y="1357" on="1"/> - <pt x="74" y="1480" on="1"/> - <pt x="1056" y="1480" on="1"/> - <pt x="1056" y="1123" on="1"/> - <pt x="933" y="1123" on="1"/> - <pt x="933" y="1357" on="1"/> - <pt x="457" y="1357" on="1"/> - <pt x="457" y="814" on="1"/> - <pt x="748" y="814" on="1"/> - <pt x="748" y="938" on="1"/> - <pt x="871" y="938" on="1"/> - <pt x="871" y="567" on="1"/> - <pt x="748" y="567" on="1"/> - <pt x="748" y="691" on="1"/> - <pt x="457" y="691" on="1"/> - <pt x="457" y="136" on="1"/> - <pt x="982" y="136" on="1"/> - <pt x="982" y="383" on="1"/> - <pt x="1106" y="383" on="1"/> - <pt x="1106" y="0" on="1"/> - </contour> - <contour> - <pt x="259" y="1925" on="1"/> - <pt x="382" y="1925" on="1"/> - <pt x="430" y="1777" on="0"/> - <pt x="604" y="1777" on="1"/> - <pt x="779" y="1777" on="0"/> - <pt x="827" y="1925" on="1"/> - <pt x="950" y="1925" on="1"/> - <pt x="927" y="1836" on="0"/> - <pt x="901" y="1790" on="1"/> - <pt x="810" y="1635" on="0"/> - <pt x="608" y="1635" on="1"/> - <pt x="456" y="1635" on="0"/> - <pt x="367" y="1716" on="1"/> - <pt x="312" y="1765" on="0"/> - <pt x="284" y="1837" on="1"/> - <pt x="273" y="1866" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 133 values pushed */ - 0 0 27 14 34 48 200 14 13 8 7 4 3 11 3 22 21 16 15 4 17 19 3 30 29 - 25 24 4 13 34 5 0 0 10 9 4 3 6 3 5 18 17 6 1 11 20 19 20 1 0 - 2 1 6 1 0 4 4 48 200 12 11 1 23 0 1 2 0 6 5 0 14 30 20 8 2 - 29 17 16 13 12 5 14 10 3 25 10 2 2 5 4 1 0 4 13 2 0 0 21 20 6 - 1 22 9 8 6 1 6 19 18 11 10 10 3 2 3 4 48 200 23 22 1 7 6 1 15 - 14 1 24 3 2 2 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ecaron" xMin="74" yMin="0" xMax="1106" yMax="1925"> - <contour> - <pt x="74" y="0" on="1"/> - <pt x="74" y="123" on="1"/> - <pt x="259" y="123" on="1"/> - <pt x="259" y="1357" on="1"/> - <pt x="74" y="1357" on="1"/> - <pt x="74" y="1480" on="1"/> - <pt x="1056" y="1480" on="1"/> - <pt x="1056" y="1123" on="1"/> - <pt x="933" y="1123" on="1"/> - <pt x="933" y="1357" on="1"/> - <pt x="457" y="1357" on="1"/> - <pt x="457" y="814" on="1"/> - <pt x="748" y="814" on="1"/> - <pt x="748" y="938" on="1"/> - <pt x="871" y="938" on="1"/> - <pt x="871" y="567" on="1"/> - <pt x="748" y="567" on="1"/> - <pt x="748" y="691" on="1"/> - <pt x="457" y="691" on="1"/> - <pt x="457" y="136" on="1"/> - <pt x="982" y="136" on="1"/> - <pt x="982" y="383" on="1"/> - <pt x="1106" y="383" on="1"/> - <pt x="1106" y="0" on="1"/> - </contour> - <contour> - <pt x="957" y="1925" on="1"/> - <pt x="700" y="1604" on="1"/> - <pt x="482" y="1604" on="1"/> - <pt x="225" y="1925" on="1"/> - <pt x="349" y="1925" on="1"/> - <pt x="590" y="1723" on="1"/> - <pt x="592" y="1723" on="1"/> - <pt x="834" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 134 values pushed */ - 14 13 8 7 4 3 11 3 22 21 16 15 4 17 19 3 31 30 29 28 27 24 6 13 25 - 0 0 10 9 4 3 6 3 5 18 17 6 1 11 20 19 20 1 0 2 1 6 1 0 4 - 4 48 200 26 25 1 12 11 1 23 0 1 3 0 6 5 0 14 24 20 8 2 31 30 29 - 26 25 17 16 13 12 9 14 10 3 28 10 2 2 27 5 4 1 0 5 13 2 0 0 21 - 20 6 1 22 9 8 6 1 6 19 18 11 10 10 3 2 3 4 48 200 23 22 1 7 6 - 1 15 14 1 3 2 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ecircumflex" xMin="74" yMin="0" xMax="1106" yMax="1925"> - <contour> - <pt x="74" y="0" on="1"/> - <pt x="74" y="123" on="1"/> - <pt x="259" y="123" on="1"/> - <pt x="259" y="1357" on="1"/> - <pt x="74" y="1357" on="1"/> - <pt x="74" y="1480" on="1"/> - <pt x="1056" y="1480" on="1"/> - <pt x="1056" y="1123" on="1"/> - <pt x="933" y="1123" on="1"/> - <pt x="933" y="1357" on="1"/> - <pt x="457" y="1357" on="1"/> - <pt x="457" y="814" on="1"/> - <pt x="748" y="814" on="1"/> - <pt x="748" y="938" on="1"/> - <pt x="871" y="938" on="1"/> - <pt x="871" y="567" on="1"/> - <pt x="748" y="567" on="1"/> - <pt x="748" y="691" on="1"/> - <pt x="457" y="691" on="1"/> - <pt x="457" y="136" on="1"/> - <pt x="982" y="136" on="1"/> - <pt x="982" y="383" on="1"/> - <pt x="1106" y="383" on="1"/> - <pt x="1106" y="0" on="1"/> - </contour> - <contour> - <pt x="259" y="1604" on="1"/> - <pt x="515" y="1925" on="1"/> - <pt x="734" y="1925" on="1"/> - <pt x="990" y="1604" on="1"/> - <pt x="867" y="1604" on="1"/> - <pt x="626" y="1806" on="1"/> - <pt x="623" y="1806" on="1"/> - <pt x="382" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 135 values pushed */ - 31 30 29 28 27 24 6 25 5 3 14 13 8 7 4 3 11 3 22 21 16 15 4 17 19 - 3 0 0 10 9 4 3 6 3 5 18 17 6 1 11 20 19 20 1 0 2 1 6 1 0 - 4 4 48 200 26 25 1 12 11 1 23 0 1 3 0 6 5 0 14 27 6 20 2 30 29 - 28 26 25 17 16 13 12 9 14 10 3 31 10 2 2 5 4 1 0 4 13 2 0 0 21 - 20 6 1 22 9 8 6 1 6 19 18 11 10 10 3 2 3 4 48 200 23 22 1 7 6 - 1 15 14 1 24 3 2 2 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Edieresis" xMin="74" yMin="0" xMax="1106" yMax="1801"> - <contour> - <pt x="74" y="0" on="1"/> - <pt x="74" y="123" on="1"/> - <pt x="259" y="123" on="1"/> - <pt x="259" y="1357" on="1"/> - <pt x="74" y="1357" on="1"/> - <pt x="74" y="1480" on="1"/> - <pt x="1056" y="1480" on="1"/> - <pt x="1056" y="1123" on="1"/> - <pt x="933" y="1123" on="1"/> - <pt x="933" y="1357" on="1"/> - <pt x="457" y="1357" on="1"/> - <pt x="457" y="814" on="1"/> - <pt x="748" y="814" on="1"/> - <pt x="748" y="938" on="1"/> - <pt x="871" y="938" on="1"/> - <pt x="871" y="567" on="1"/> - <pt x="748" y="567" on="1"/> - <pt x="748" y="691" on="1"/> - <pt x="457" y="691" on="1"/> - <pt x="457" y="136" on="1"/> - <pt x="982" y="136" on="1"/> - <pt x="982" y="383" on="1"/> - <pt x="1106" y="383" on="1"/> - <pt x="1106" y="0" on="1"/> - </contour> - <contour> - <pt x="259" y="1604" on="1"/> - <pt x="259" y="1801" on="1"/> - <pt x="456" y="1801" on="1"/> - <pt x="456" y="1604" on="1"/> - </contour> - <contour> - <pt x="728" y="1604" on="1"/> - <pt x="728" y="1801" on="1"/> - <pt x="925" y="1801" on="1"/> - <pt x="925" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 135 values pushed */ - 14 13 8 7 4 3 11 3 22 21 16 15 4 17 19 3 0 0 31 28 27 24 10 3 25 - 10 9 4 3 6 3 5 18 17 6 1 11 20 19 20 1 0 2 1 6 1 0 5 4 48 - 200 30 29 26 25 3 12 11 1 23 0 1 3 0 6 5 0 14 17 16 13 12 4 14 28 - 3 5 4 1 0 4 13 2 0 0 29 28 10 1 30 27 26 10 1 2 21 20 6 1 22 - 9 8 6 1 6 19 18 11 10 10 3 2 5 4 48 200 31 30 1 23 22 1 7 6 1 - 15 14 1 25 24 3 2 3 5 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Edotaccent" xMin="74" yMin="0" xMax="1106" yMax="1801"> - <contour> - <pt x="74" y="0" on="1"/> - <pt x="74" y="123" on="1"/> - <pt x="259" y="123" on="1"/> - <pt x="259" y="1357" on="1"/> - <pt x="74" y="1357" on="1"/> - <pt x="74" y="1480" on="1"/> - <pt x="1056" y="1480" on="1"/> - <pt x="1056" y="1123" on="1"/> - <pt x="933" y="1123" on="1"/> - <pt x="933" y="1357" on="1"/> - <pt x="457" y="1357" on="1"/> - <pt x="457" y="814" on="1"/> - <pt x="748" y="814" on="1"/> - <pt x="748" y="938" on="1"/> - <pt x="871" y="938" on="1"/> - <pt x="871" y="567" on="1"/> - <pt x="748" y="567" on="1"/> - <pt x="748" y="691" on="1"/> - <pt x="457" y="691" on="1"/> - <pt x="457" y="136" on="1"/> - <pt x="982" y="136" on="1"/> - <pt x="982" y="383" on="1"/> - <pt x="1106" y="383" on="1"/> - <pt x="1106" y="0" on="1"/> - </contour> - <contour> - <pt x="543" y="1604" on="1"/> - <pt x="543" y="1801" on="1"/> - <pt x="740" y="1801" on="1"/> - <pt x="740" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 124 values pushed */ - 14 13 8 7 4 3 11 3 22 21 16 15 4 17 19 3 0 0 27 24 10 1 25 10 9 - 4 3 6 3 5 18 17 6 1 11 20 19 20 1 0 2 1 6 1 0 5 4 48 200 26 - 25 1 12 11 1 23 0 1 3 0 6 5 0 14 17 16 13 12 4 14 26 3 5 4 1 - 0 4 13 2 0 0 27 26 10 1 24 21 20 6 1 22 9 8 6 1 6 19 18 11 10 - 10 3 2 4 4 48 200 25 24 1 23 22 1 7 6 1 15 14 1 3 2 1 5 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Egrave" xMin="74" yMin="0" xMax="1106" yMax="1925"> - <contour> - <pt x="74" y="0" on="1"/> - <pt x="74" y="123" on="1"/> - <pt x="259" y="123" on="1"/> - <pt x="259" y="1357" on="1"/> - <pt x="74" y="1357" on="1"/> - <pt x="74" y="1480" on="1"/> - <pt x="1056" y="1480" on="1"/> - <pt x="1056" y="1123" on="1"/> - <pt x="933" y="1123" on="1"/> - <pt x="933" y="1357" on="1"/> - <pt x="457" y="1357" on="1"/> - <pt x="457" y="814" on="1"/> - <pt x="748" y="814" on="1"/> - <pt x="748" y="938" on="1"/> - <pt x="871" y="938" on="1"/> - <pt x="871" y="567" on="1"/> - <pt x="748" y="567" on="1"/> - <pt x="748" y="691" on="1"/> - <pt x="457" y="691" on="1"/> - <pt x="457" y="136" on="1"/> - <pt x="982" y="136" on="1"/> - <pt x="982" y="383" on="1"/> - <pt x="1106" y="383" on="1"/> - <pt x="1106" y="0" on="1"/> - </contour> - <contour> - <pt x="740" y="1604" on="1"/> - <pt x="617" y="1604" on="1"/> - <pt x="296" y="1925" on="1"/> - <pt x="524" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 124 values pushed */ - 25 24 2 26 5 3 14 13 8 7 4 3 11 3 22 21 16 15 4 17 19 3 0 0 10 - 9 4 3 6 3 5 18 17 6 1 11 20 19 20 1 0 2 1 6 1 0 4 4 48 200 - 27 26 1 12 11 1 23 0 1 3 0 6 5 0 14 27 25 24 17 16 13 12 7 14 10 - 3 26 10 2 2 5 4 1 0 4 13 2 0 0 21 20 6 1 22 9 8 6 1 6 19 - 18 11 10 10 3 2 3 4 48 200 23 22 1 7 6 1 15 14 1 3 2 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Emacron" xMin="74" yMin="0" xMax="1106" yMax="1728"> - <contour> - <pt x="74" y="0" on="1"/> - <pt x="74" y="123" on="1"/> - <pt x="259" y="123" on="1"/> - <pt x="259" y="1357" on="1"/> - <pt x="74" y="1357" on="1"/> - <pt x="74" y="1480" on="1"/> - <pt x="1056" y="1480" on="1"/> - <pt x="1056" y="1123" on="1"/> - <pt x="933" y="1123" on="1"/> - <pt x="933" y="1357" on="1"/> - <pt x="457" y="1357" on="1"/> - <pt x="457" y="814" on="1"/> - <pt x="748" y="814" on="1"/> - <pt x="748" y="938" on="1"/> - <pt x="871" y="938" on="1"/> - <pt x="871" y="567" on="1"/> - <pt x="748" y="567" on="1"/> - <pt x="748" y="691" on="1"/> - <pt x="457" y="691" on="1"/> - <pt x="457" y="136" on="1"/> - <pt x="982" y="136" on="1"/> - <pt x="982" y="383" on="1"/> - <pt x="1106" y="383" on="1"/> - <pt x="1106" y="0" on="1"/> - </contour> - <contour> - <pt x="284" y="1604" on="1"/> - <pt x="284" y="1728" on="1"/> - <pt x="975" y="1728" on="1"/> - <pt x="975" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 128 values pushed */ - 14 13 8 7 4 3 11 3 22 21 16 15 4 17 19 3 0 0 27 24 6 1 25 10 9 - 4 3 6 3 5 18 17 6 1 11 20 19 20 1 0 2 1 6 1 0 5 4 48 200 26 - 25 1 12 11 1 23 0 1 3 0 6 5 0 14 27 26 2 20 8 3 17 16 13 12 4 - 14 10 3 25 24 2 10 2 3 5 4 1 0 4 13 2 0 0 21 20 6 1 22 9 8 - 6 1 6 19 18 11 10 10 3 2 3 4 48 200 23 22 1 7 6 1 15 14 1 3 2 - 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Eng" xMin="74" yMin="-296" xMax="1155" yMax="1480"> - <contour> - <pt x="74" y="0" on="1"/> - <pt x="74" y="123" on="1"/> - <pt x="185" y="123" on="1"/> - <pt x="185" y="1357" on="1"/> - <pt x="74" y="1357" on="1"/> - <pt x="74" y="1480" on="1"/> - <pt x="308" y="1480" on="1"/> - <pt x="918" y="405" on="1"/> - <pt x="920" y="405" on="1"/> - <pt x="920" y="1357" on="1"/> - <pt x="810" y="1357" on="1"/> - <pt x="810" y="1480" on="1"/> - <pt x="1155" y="1480" on="1"/> - <pt x="1155" y="1357" on="1"/> - <pt x="1044" y="1357" on="1"/> - <pt x="1044" y="0" on="1"/> - <pt x="1044" y="-134" on="0"/> - <pt x="964" y="-215" on="1"/> - <pt x="885" y="-296" on="0"/> - <pt x="752" y="-296" on="1"/> - <pt x="664" y="-296" on="0"/> - <pt x="536" y="-259" on="1"/> - <pt x="536" y="-49" on="1"/> - <pt x="659" y="-49" on="1"/> - <pt x="672" y="-167" on="1"/> - <pt x="736" y="-198" on="0"/> - <pt x="783" y="-198" on="1"/> - <pt x="845" y="-198" on="0"/> - <pt x="880" y="-158" on="1"/> - <pt x="922" y="-111" on="0"/> - <pt x="922" y="-26" on="1"/> - <pt x="922" y="-19" on="0"/> - <pt x="921" y="-10" on="1"/> - <pt x="920" y="0" on="1"/> - <pt x="311" y="1076" on="1"/> - <pt x="308" y="1076" on="1"/> - <pt x="308" y="123" on="1"/> - <pt x="419" y="123" on="1"/> - <pt x="419" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 108 values pushed */ - 0 0 26 17 19 48 200 37 36 35 34 14 13 10 9 8 7 4 3 2 1 14 5 0 3 - 24 23 22 21 4 13 19 0 38 33 15 0 3 0 12 11 6 5 0 3 14 30 30 14 8 - 2 24 23 11 10 7 5 8 21 3 38 37 34 3 21 6 3 13 12 2 13 14 5 4 1 - 0 4 13 2 0 0 33 9 8 6 2 14 36 35 6 6 2 2 2 4 48 200 15 14 1 - 22 21 1 3 2 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MDAP[1] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Eogonek" xMin="74" yMin="-370" xMax="1106" yMax="1480"> - <contour> - <pt x="74" y="0" on="1"/> - <pt x="74" y="123" on="1"/> - <pt x="259" y="123" on="1"/> - <pt x="259" y="1357" on="1"/> - <pt x="74" y="1357" on="1"/> - <pt x="74" y="1480" on="1"/> - <pt x="1056" y="1480" on="1"/> - <pt x="1056" y="1123" on="1"/> - <pt x="933" y="1123" on="1"/> - <pt x="933" y="1357" on="1"/> - <pt x="457" y="1357" on="1"/> - <pt x="457" y="814" on="1"/> - <pt x="748" y="814" on="1"/> - <pt x="748" y="938" on="1"/> - <pt x="871" y="938" on="1"/> - <pt x="871" y="567" on="1"/> - <pt x="748" y="567" on="1"/> - <pt x="748" y="691" on="1"/> - <pt x="457" y="691" on="1"/> - <pt x="457" y="136" on="1"/> - <pt x="982" y="136" on="1"/> - <pt x="982" y="383" on="1"/> - <pt x="1106" y="383" on="1"/> - <pt x="1106" y="0" on="1"/> - </contour> - <contour> - <pt x="860" y="0" on="1"/> - <pt x="967" y="0" on="1"/> - <pt x="838" y="-81" on="0"/> - <pt x="838" y="-179" on="1"/> - <pt x="838" y="-275" on="0"/> - <pt x="953" y="-275" on="1"/> - <pt x="1007" y="-275" on="0"/> - <pt x="1044" y="-260" on="1"/> - <pt x="1044" y="-341" on="1"/> - <pt x="982" y="-370" on="0"/> - <pt x="904" y="-370" on="1"/> - <pt x="702" y="-370" on="0"/> - <pt x="702" y="-213" on="1"/> - <pt x="702" y="-90" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 141 values pushed */ - 0 0 29 17 34 48 200 14 13 8 7 4 3 11 3 22 21 16 15 4 17 19 3 32 31 - 34 0 0 0 10 9 4 3 6 3 5 18 17 6 1 11 20 19 20 1 0 2 1 6 1 - 0 4 4 48 200 12 11 1 25 24 23 0 3 2 0 6 5 0 14 0 0 27 20 36 48 - 200 32 31 2 6 20 3 25 20 8 2 36 36 24 17 16 13 12 6 14 10 3 5 4 1 - 0 4 13 2 0 0 21 20 6 1 22 9 8 6 1 6 19 18 11 10 10 3 2 3 4 - 48 200 23 22 1 7 6 1 15 14 1 3 2 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MDAP[1] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Eth" xMin="49" yMin="0" xMax="1167" yMax="1480"> - <contour> - <pt x="49" y="0" on="1"/> - <pt x="49" y="123" on="1"/> - <pt x="197" y="123" on="1"/> - <pt x="197" y="716" on="1"/> - <pt x="49" y="716" on="1"/> - <pt x="49" y="839" on="1"/> - <pt x="197" y="839" on="1"/> - <pt x="197" y="1357" on="1"/> - <pt x="49" y="1357" on="1"/> - <pt x="49" y="1480" on="1"/> - <pt x="558" y="1480" on="1"/> - <pt x="1167" y="1480" on="0"/> - <pt x="1167" y="776" on="1"/> - <pt x="1167" y="419" on="0"/> - <pt x="1007" y="209" on="1"/> - <pt x="847" y="0" on="0"/> - <pt x="577" y="0" on="1"/> - </contour> - <contour> - <pt x="394" y="1357" on="1"/> - <pt x="394" y="839" on="1"/> - <pt x="666" y="839" on="1"/> - <pt x="666" y="716" on="1"/> - <pt x="394" y="716" on="1"/> - <pt x="394" y="123" on="1"/> - <pt x="513" y="123" on="1"/> - <pt x="954" y="123" on="0"/> - <pt x="954" y="754" on="1"/> - <pt x="954" y="1062" on="0"/> - <pt x="842" y="1210" on="1"/> - <pt x="730" y="1357" on="0"/> - <pt x="499" y="1357" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 86 values pushed */ - 0 0 29 17 8 7 6 3 9 21 20 4 3 6 3 5 23 22 2 1 6 3 0 3 4 - 48 200 19 18 6 5 3 16 0 1 2 0 10 9 0 14 0 0 25 39 12 48 200 29 23 - 20 19 16 10 6 13 12 17 9 8 5 4 1 0 6 13 2 0 0 22 21 18 17 10 3 - 2 1 4 48 200 7 6 3 2 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Euro" xMin="6" yMin="-37" xMax="1127" yMax="1517"> - <contour> - <pt x="127" y="857" on="1"/> - <pt x="6" y="857" on="1"/> - <pt x="57" y="981" on="1"/> - <pt x="143" y="981" on="1"/> - <pt x="182" y="1150" on="0"/> - <pt x="230" y="1236" on="1"/> - <pt x="385" y="1517" on="0"/> - <pt x="725" y="1517" on="1"/> - <pt x="889" y="1517" on="0"/> - <pt x="1106" y="1453" on="1"/> - <pt x="1106" y="1172" on="1"/> - <pt x="983" y="1172" on="1"/> - <pt x="954" y="1341" on="1"/> - <pt x="841" y="1394" on="0"/> - <pt x="729" y="1394" on="1"/> - <pt x="536" y="1394" on="0"/> - <pt x="438" y="1222" on="1"/> - <pt x="389" y="1137" on="0"/> - <pt x="359" y="981" on="1"/> - <pt x="1027" y="981" on="1"/> - <pt x="976" y="857" on="1"/> - <pt x="341" y="857" on="1"/> - <pt x="337" y="802" on="0"/> - <pt x="337" y="785" on="1"/> - <pt x="336" y="761" on="0"/> - <pt x="335" y="757" on="1"/> - <pt x="334" y="743" on="0"/> - <pt x="335" y="739" on="1"/> - <pt x="336" y="734" on="0"/> - <pt x="336" y="733" on="1"/> - <pt x="338" y="660" on="1"/> - <pt x="894" y="660" on="1"/> - <pt x="843" y="537" on="1"/> - <pt x="351" y="537" on="1"/> - <pt x="377" y="399" on="0"/> - <pt x="415" y="320" on="1"/> - <pt x="521" y="99" on="0"/> - <pt x="762" y="99" on="1"/> - <pt x="942" y="99" on="0"/> - <pt x="1127" y="234" on="1"/> - <pt x="1127" y="74" on="1"/> - <pt x="920" y="-37" on="0"/> - <pt x="740" y="-37" on="1"/> - <pt x="501" y="-37" on="0"/> - <pt x="348" y="104" on="1"/> - <pt x="242" y="202" on="0"/> - <pt x="186" y="357" on="1"/> - <pt x="165" y="416" on="0"/> - <pt x="139" y="537" on="1"/> - <pt x="6" y="537" on="1"/> - <pt x="57" y="660" on="1"/> - <pt x="125" y="660" on="1"/> - <pt x="123" y="748" on="1"/> - <pt x="121" y="759" on="1"/> - <pt x="121" y="760" on="0"/> - <pt x="123" y="768" on="1"/> - <pt x="124" y="772" on="0"/> - <pt x="124" y="791" on="1"/> - <pt x="123" y="797" on="0"/> - <pt x="125" y="815" on="1"/> - <pt x="126" y="840" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 114 values pushed */ - 0 0 37 20 42 14 5 7 48 200 42 2 7 0 1 12 11 10 9 4 0 2 3 0 52 - 0 30 2 1 40 39 2 32 2 3 0 0 0 21 20 1 0 6 3 2 49 48 33 32 6 - 3 30 2 4 48 200 19 18 3 2 3 51 50 31 30 3 2 0 14 0 0 27 36 53 48 - 200 52 51 50 49 48 33 32 31 30 21 20 19 18 12 11 3 2 1 0 19 13 53 9 0 - 0 10 9 29 1 39 1 5 48 200 40 39 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Euro#1" xMin="6" yMin="-37" xMax="1127" yMax="1517"> - <contour> - <pt x="127" y="857" on="1"/> - <pt x="6" y="857" on="1"/> - <pt x="57" y="981" on="1"/> - <pt x="143" y="981" on="1"/> - <pt x="182" y="1150" on="0"/> - <pt x="230" y="1236" on="1"/> - <pt x="385" y="1517" on="0"/> - <pt x="725" y="1517" on="1"/> - <pt x="889" y="1517" on="0"/> - <pt x="1106" y="1453" on="1"/> - <pt x="1106" y="1172" on="1"/> - <pt x="983" y="1172" on="1"/> - <pt x="954" y="1341" on="1"/> - <pt x="841" y="1394" on="0"/> - <pt x="729" y="1394" on="1"/> - <pt x="536" y="1394" on="0"/> - <pt x="438" y="1222" on="1"/> - <pt x="389" y="1137" on="0"/> - <pt x="359" y="981" on="1"/> - <pt x="1027" y="981" on="1"/> - <pt x="976" y="857" on="1"/> - <pt x="341" y="857" on="1"/> - <pt x="337" y="802" on="0"/> - <pt x="337" y="785" on="1"/> - <pt x="336" y="761" on="0"/> - <pt x="335" y="757" on="1"/> - <pt x="334" y="743" on="0"/> - <pt x="335" y="739" on="1"/> - <pt x="336" y="734" on="0"/> - <pt x="336" y="733" on="1"/> - <pt x="338" y="660" on="1"/> - <pt x="894" y="660" on="1"/> - <pt x="843" y="537" on="1"/> - <pt x="351" y="537" on="1"/> - <pt x="377" y="399" on="0"/> - <pt x="415" y="320" on="1"/> - <pt x="521" y="99" on="0"/> - <pt x="762" y="99" on="1"/> - <pt x="942" y="99" on="0"/> - <pt x="1127" y="234" on="1"/> - <pt x="1127" y="74" on="1"/> - <pt x="920" y="-37" on="0"/> - <pt x="740" y="-37" on="1"/> - <pt x="501" y="-37" on="0"/> - <pt x="348" y="104" on="1"/> - <pt x="242" y="202" on="0"/> - <pt x="186" y="357" on="1"/> - <pt x="165" y="416" on="0"/> - <pt x="139" y="537" on="1"/> - <pt x="6" y="537" on="1"/> - <pt x="57" y="660" on="1"/> - <pt x="125" y="660" on="1"/> - <pt x="123" y="748" on="1"/> - <pt x="121" y="759" on="1"/> - <pt x="121" y="760" on="0"/> - <pt x="123" y="768" on="1"/> - <pt x="124" y="772" on="0"/> - <pt x="124" y="791" on="1"/> - <pt x="123" y="797" on="0"/> - <pt x="125" y="815" on="1"/> - <pt x="126" y="840" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 114 values pushed */ - 0 0 37 20 42 14 5 7 48 200 42 2 7 0 1 12 11 10 9 4 0 2 3 0 52 - 0 30 2 1 40 39 2 32 2 3 0 0 0 21 20 1 0 6 3 2 49 48 33 32 6 - 3 30 2 4 48 200 19 18 3 2 3 51 50 31 30 3 2 0 14 0 0 27 36 53 48 - 200 52 51 50 49 48 33 32 31 30 21 20 19 18 12 11 3 2 1 0 19 13 53 9 0 - 0 10 9 29 1 39 1 5 48 200 40 39 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="F" xMin="111" yMin="0" xMax="1136" yMax="1480"> - <contour> - <pt x="530" y="123" on="1"/> - <pt x="802" y="123" on="1"/> - <pt x="802" y="0" on="1"/> - <pt x="111" y="0" on="1"/> - <pt x="111" y="123" on="1"/> - <pt x="333" y="123" on="1"/> - <pt x="333" y="1357" on="1"/> - <pt x="111" y="1357" on="1"/> - <pt x="111" y="1480" on="1"/> - <pt x="1136" y="1480" on="1"/> - <pt x="1136" y="1110" on="1"/> - <pt x="1013" y="1110" on="1"/> - <pt x="1013" y="1357" on="1"/> - <pt x="530" y="1357" on="1"/> - <pt x="530" y="777" on="1"/> - <pt x="828" y="777" on="1"/> - <pt x="828" y="901" on="1"/> - <pt x="951" y="901" on="1"/> - <pt x="951" y="530" on="1"/> - <pt x="828" y="530" on="1"/> - <pt x="828" y="654" on="1"/> - <pt x="530" y="654" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 97 values pushed */ - 17 16 11 10 4 6 14 3 19 18 2 20 0 3 0 0 13 12 7 6 6 3 8 21 20 - 6 1 14 5 4 1 0 6 3 2 3 4 48 200 15 14 1 3 2 1 2 0 9 8 0 - 14 20 19 16 15 2 1 6 17 0 3 8 7 4 3 4 13 5 0 0 12 11 6 1 9 - 21 14 13 0 10 3 5 2 4 48 200 10 9 1 18 17 1 6 5 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="G" xMin="74" yMin="-37" xMax="1081" yMax="1518"> - <contour> - <pt x="1081" y="74" on="1"/> - <pt x="899" y="-37" on="0"/> - <pt x="698" y="-37" on="1"/> - <pt x="402" y="-37" on="0"/> - <pt x="238" y="169" on="1"/> - <pt x="74" y="374" on="0"/> - <pt x="74" y="747" on="1"/> - <pt x="74" y="1120" on="0"/> - <pt x="231" y="1319" on="1"/> - <pt x="389" y="1518" on="0"/> - <pt x="688" y="1518" on="1"/> - <pt x="861" y="1518" on="0"/> - <pt x="1057" y="1456" on="1"/> - <pt x="1057" y="1110" on="1"/> - <pt x="934" y="1110" on="1"/> - <pt x="905" y="1341" on="1"/> - <pt x="791" y="1395" on="0"/> - <pt x="692" y="1395" on="1"/> - <pt x="287" y="1395" on="0"/> - <pt x="287" y="737" on="1"/> - <pt x="287" y="430" on="0"/> - <pt x="402" y="264" on="1"/> - <pt x="517" y="99" on="0"/> - <pt x="721" y="99" on="1"/> - <pt x="799" y="99" on="0"/> - <pt x="883" y="131" on="1"/> - <pt x="883" y="537" on="1"/> - <pt x="711" y="537" on="1"/> - <pt x="711" y="660" on="1"/> - <pt x="1081" y="660" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 84 values pushed */ - 0 0 23 20 2 17 5 10 48 200 10 0 2 2 1 15 14 13 12 4 0 28 3 0 1 - 25 0 2 26 2 3 0 0 0 27 26 6 1 28 1 4 48 200 29 28 1 0 14 0 0 - 19 39 6 48 200 15 14 2 12 25 3 28 27 6 25 0 0 26 25 10 1 0 1 4 48 - 200 29 0 1 13 12 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Gbreve" xMin="74" yMin="-37" xMax="1081" yMax="1925"> - <contour> - <pt x="1081" y="74" on="1"/> - <pt x="899" y="-37" on="0"/> - <pt x="698" y="-37" on="1"/> - <pt x="402" y="-37" on="0"/> - <pt x="238" y="169" on="1"/> - <pt x="74" y="374" on="0"/> - <pt x="74" y="747" on="1"/> - <pt x="74" y="1120" on="0"/> - <pt x="231" y="1319" on="1"/> - <pt x="389" y="1518" on="0"/> - <pt x="688" y="1518" on="1"/> - <pt x="861" y="1518" on="0"/> - <pt x="1057" y="1456" on="1"/> - <pt x="1057" y="1110" on="1"/> - <pt x="934" y="1110" on="1"/> - <pt x="905" y="1341" on="1"/> - <pt x="791" y="1395" on="0"/> - <pt x="692" y="1395" on="1"/> - <pt x="287" y="1395" on="0"/> - <pt x="287" y="737" on="1"/> - <pt x="287" y="430" on="0"/> - <pt x="402" y="264" on="1"/> - <pt x="517" y="99" on="0"/> - <pt x="721" y="99" on="1"/> - <pt x="799" y="99" on="0"/> - <pt x="883" y="131" on="1"/> - <pt x="883" y="537" on="1"/> - <pt x="711" y="537" on="1"/> - <pt x="711" y="660" on="1"/> - <pt x="1081" y="660" on="1"/> - </contour> - <contour> - <pt x="320" y="1925" on="1"/> - <pt x="443" y="1925" on="1"/> - <pt x="491" y="1777" on="0"/> - <pt x="665" y="1777" on="1"/> - <pt x="840" y="1777" on="0"/> - <pt x="888" y="1925" on="1"/> - <pt x="1011" y="1925" on="1"/> - <pt x="988" y="1836" on="0"/> - <pt x="962" y="1790" on="1"/> - <pt x="871" y="1635" on="0"/> - <pt x="670" y="1635" on="1"/> - <pt x="517" y="1635" on="0"/> - <pt x="428" y="1716" on="1"/> - <pt x="373" y="1765" on="0"/> - <pt x="345" y="1837" on="1"/> - <pt x="334" y="1866" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 103 values pushed */ - 0 0 33 14 40 23 20 2 17 5 10 48 200 10 0 2 2 1 15 14 13 12 4 0 28 - 3 0 1 25 0 2 26 2 3 0 1 36 35 31 30 4 13 40 0 0 0 0 27 26 6 - 1 28 1 4 48 200 29 28 1 0 14 0 0 19 39 6 48 200 36 35 15 14 4 12 25 - 3 31 30 28 27 4 13 6 25 0 0 26 25 10 1 0 1 4 48 200 29 0 1 13 12 - 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Gcircumflex" xMin="74" yMin="-37" xMax="1081" yMax="1925"> - <contour> - <pt x="1081" y="74" on="1"/> - <pt x="899" y="-37" on="0"/> - <pt x="698" y="-37" on="1"/> - <pt x="402" y="-37" on="0"/> - <pt x="238" y="169" on="1"/> - <pt x="74" y="374" on="0"/> - <pt x="74" y="747" on="1"/> - <pt x="74" y="1120" on="0"/> - <pt x="231" y="1319" on="1"/> - <pt x="389" y="1518" on="0"/> - <pt x="688" y="1518" on="1"/> - <pt x="861" y="1518" on="0"/> - <pt x="1057" y="1456" on="1"/> - <pt x="1057" y="1110" on="1"/> - <pt x="934" y="1110" on="1"/> - <pt x="905" y="1341" on="1"/> - <pt x="791" y="1395" on="0"/> - <pt x="692" y="1395" on="1"/> - <pt x="287" y="1395" on="0"/> - <pt x="287" y="737" on="1"/> - <pt x="287" y="430" on="0"/> - <pt x="402" y="264" on="1"/> - <pt x="517" y="99" on="0"/> - <pt x="721" y="99" on="1"/> - <pt x="799" y="99" on="0"/> - <pt x="883" y="131" on="1"/> - <pt x="883" y="537" on="1"/> - <pt x="711" y="537" on="1"/> - <pt x="711" y="660" on="1"/> - <pt x="1081" y="660" on="1"/> - </contour> - <contour> - <pt x="299" y="1604" on="1"/> - <pt x="555" y="1925" on="1"/> - <pt x="774" y="1925" on="1"/> - <pt x="1030" y="1604" on="1"/> - <pt x="907" y="1604" on="1"/> - <pt x="666" y="1806" on="1"/> - <pt x="663" y="1806" on="1"/> - <pt x="422" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 110 values pushed */ - 0 0 23 20 2 17 5 10 48 200 10 0 2 2 1 37 36 35 34 33 30 6 31 0 3 - 0 1 15 14 13 12 4 0 28 3 0 1 25 0 2 26 2 3 0 0 0 27 26 6 1 - 28 1 4 48 200 32 31 1 29 28 1 2 0 14 0 0 19 39 6 48 200 34 33 15 14 - 4 12 25 3 37 36 35 32 31 30 28 27 8 13 6 25 0 0 26 25 10 1 0 1 4 - 48 200 29 0 1 13 12 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Gcommaaccent" xMin="74" yMin="-432" xMax="1081" yMax="1518"> - <contour> - <pt x="1081" y="74" on="1"/> - <pt x="899" y="-37" on="0"/> - <pt x="698" y="-37" on="1"/> - <pt x="402" y="-37" on="0"/> - <pt x="238" y="169" on="1"/> - <pt x="74" y="374" on="0"/> - <pt x="74" y="747" on="1"/> - <pt x="74" y="1120" on="0"/> - <pt x="231" y="1319" on="1"/> - <pt x="389" y="1518" on="0"/> - <pt x="688" y="1518" on="1"/> - <pt x="860" y="1518" on="0"/> - <pt x="1057" y="1456" on="1"/> - <pt x="1057" y="1110" on="1"/> - <pt x="934" y="1110" on="1"/> - <pt x="905" y="1341" on="1"/> - <pt x="791" y="1395" on="0"/> - <pt x="691" y="1395" on="1"/> - <pt x="287" y="1395" on="0"/> - <pt x="287" y="737" on="1"/> - <pt x="287" y="430" on="0"/> - <pt x="402" y="264" on="1"/> - <pt x="517" y="99" on="0"/> - <pt x="721" y="99" on="1"/> - <pt x="799" y="99" on="0"/> - <pt x="883" y="131" on="1"/> - <pt x="883" y="537" on="1"/> - <pt x="711" y="537" on="1"/> - <pt x="711" y="660" on="1"/> - <pt x="1081" y="660" on="1"/> - </contour> - <contour> - <pt x="528" y="-421" on="1"/> - <pt x="528" y="-336" on="1"/> - <pt x="585" y="-345" on="0"/> - <pt x="625" y="-345" on="1"/> - <pt x="734" y="-345" on="0"/> - <pt x="734" y="-278" on="1"/> - <pt x="734" y="-204" on="0"/> - <pt x="577" y="-188" on="1"/> - <pt x="577" y="-111" on="1"/> - <pt x="711" y="-114" on="0"/> - <pt x="777" y="-143" on="1"/> - <pt x="870" y="-185" on="0"/> - <pt x="870" y="-280" on="1"/> - <pt x="870" y="-432" on="0"/> - <pt x="652" y="-432" on="1"/> - <pt x="594" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 107 values pushed */ - 0 0 33 32 44 23 20 2 17 5 10 48 200 10 0 2 2 1 15 14 13 12 4 0 28 - 3 0 1 25 0 2 26 2 3 0 1 38 37 31 30 4 13 44 2 0 0 0 27 26 6 - 1 28 1 4 48 200 29 28 1 0 14 0 0 35 20 42 19 39 6 48 200 15 14 2 12 - 25 3 38 37 31 30 28 27 6 13 42 6 25 0 0 26 25 10 1 0 1 4 48 200 29 - 0 1 13 12 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Gdotaccent" xMin="74" yMin="-37" xMax="1081" yMax="1801"> - <contour> - <pt x="1081" y="74" on="1"/> - <pt x="899" y="-37" on="0"/> - <pt x="698" y="-37" on="1"/> - <pt x="402" y="-37" on="0"/> - <pt x="238" y="169" on="1"/> - <pt x="74" y="374" on="0"/> - <pt x="74" y="747" on="1"/> - <pt x="74" y="1120" on="0"/> - <pt x="231" y="1319" on="1"/> - <pt x="389" y="1518" on="0"/> - <pt x="688" y="1518" on="1"/> - <pt x="861" y="1518" on="0"/> - <pt x="1057" y="1456" on="1"/> - <pt x="1057" y="1110" on="1"/> - <pt x="934" y="1110" on="1"/> - <pt x="905" y="1341" on="1"/> - <pt x="791" y="1395" on="0"/> - <pt x="692" y="1395" on="1"/> - <pt x="287" y="1395" on="0"/> - <pt x="287" y="737" on="1"/> - <pt x="287" y="430" on="0"/> - <pt x="402" y="264" on="1"/> - <pt x="517" y="99" on="0"/> - <pt x="721" y="99" on="1"/> - <pt x="799" y="99" on="0"/> - <pt x="883" y="131" on="1"/> - <pt x="883" y="537" on="1"/> - <pt x="711" y="537" on="1"/> - <pt x="711" y="660" on="1"/> - <pt x="1081" y="660" on="1"/> - </contour> - <contour> - <pt x="566" y="1604" on="1"/> - <pt x="566" y="1801" on="1"/> - <pt x="763" y="1801" on="1"/> - <pt x="763" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 105 values pushed */ - 0 0 23 20 2 17 5 10 48 200 10 0 2 2 1 15 14 13 12 4 0 28 3 0 1 - 25 0 2 26 2 3 0 0 0 33 30 10 1 31 27 26 6 1 28 2 4 48 200 32 31 - 1 29 28 1 2 0 14 0 0 19 39 6 48 200 15 14 2 12 25 3 28 27 2 32 30 - 3 6 30 0 0 33 32 10 1 30 26 25 10 1 0 2 4 48 200 31 30 1 29 0 1 - 13 12 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="H" xMin="62" yMin="0" xMax="1168" yMax="1480"> - <contour> - <pt x="370" y="703" on="1"/> - <pt x="370" y="123" on="1"/> - <pt x="469" y="123" on="1"/> - <pt x="469" y="0" on="1"/> - <pt x="62" y="0" on="1"/> - <pt x="62" y="123" on="1"/> - <pt x="173" y="123" on="1"/> - <pt x="173" y="1357" on="1"/> - <pt x="62" y="1357" on="1"/> - <pt x="62" y="1480" on="1"/> - <pt x="469" y="1480" on="1"/> - <pt x="469" y="1357" on="1"/> - <pt x="370" y="1357" on="1"/> - <pt x="370" y="827" on="1"/> - <pt x="859" y="827" on="1"/> - <pt x="859" y="1357" on="1"/> - <pt x="760" y="1357" on="1"/> - <pt x="760" y="1480" on="1"/> - <pt x="1168" y="1480" on="1"/> - <pt x="1168" y="1357" on="1"/> - <pt x="1057" y="1357" on="1"/> - <pt x="1057" y="123" on="1"/> - <pt x="1168" y="123" on="1"/> - <pt x="1168" y="0" on="1"/> - <pt x="760" y="0" on="1"/> - <pt x="760" y="123" on="1"/> - <pt x="859" y="123" on="1"/> - <pt x="859" y="703" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 106 values pushed */ - 20 19 16 15 12 11 8 7 8 9 13 3 26 25 22 21 6 5 2 1 8 0 3 3 0 - 0 27 0 6 1 13 1 4 48 200 14 13 1 24 23 4 3 3 2 0 18 17 10 9 0 - 3 14 25 24 17 16 11 10 3 2 8 14 0 3 23 22 19 18 4 13 20 9 8 5 4 - 4 13 6 0 0 27 26 15 14 10 3 20 13 12 1 0 10 3 6 2 4 48 200 21 20 - 1 7 6 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Hbar" xMin="37" yMin="0" xMax="1192" yMax="1480"> - <contour> - <pt x="370" y="827" on="1"/> - <pt x="859" y="827" on="1"/> - <pt x="859" y="1086" on="1"/> - <pt x="370" y="1086" on="1"/> - </contour> - <contour> - <pt x="62" y="0" on="1"/> - <pt x="62" y="123" on="1"/> - <pt x="173" y="123" on="1"/> - <pt x="173" y="1086" on="1"/> - <pt x="37" y="1086" on="1"/> - <pt x="37" y="1184" on="1"/> - <pt x="173" y="1184" on="1"/> - <pt x="173" y="1357" on="1"/> - <pt x="62" y="1357" on="1"/> - <pt x="62" y="1480" on="1"/> - <pt x="469" y="1480" on="1"/> - <pt x="469" y="1357" on="1"/> - <pt x="370" y="1357" on="1"/> - <pt x="370" y="1185" on="1"/> - <pt x="859" y="1185" on="1"/> - <pt x="859" y="1357" on="1"/> - <pt x="760" y="1357" on="1"/> - <pt x="760" y="1480" on="1"/> - <pt x="1168" y="1480" on="1"/> - <pt x="1168" y="1357" on="1"/> - <pt x="1057" y="1357" on="1"/> - <pt x="1057" y="1184" on="1"/> - <pt x="1192" y="1184" on="1"/> - <pt x="1192" y="1086" on="1"/> - <pt x="1057" y="1086" on="1"/> - <pt x="1057" y="123" on="1"/> - <pt x="1168" y="123" on="1"/> - <pt x="1168" y="0" on="1"/> - <pt x="760" y="0" on="1"/> - <pt x="760" y="123" on="1"/> - <pt x="859" y="123" on="1"/> - <pt x="859" y="703" on="1"/> - <pt x="370" y="703" on="1"/> - <pt x="370" y="123" on="1"/> - <pt x="469" y="123" on="1"/> - <pt x="469" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 143 values pushed */ - 24 23 20 19 16 15 12 11 8 13 17 3 26 25 10 9 4 17 2 3 38 37 34 33 30 - 29 6 5 8 35 4 3 18 17 1 36 35 1 39 32 31 4 3 1 0 1 4 0 22 21 - 14 13 0 3 28 27 8 7 3 2 1 5 14 39 38 33 32 21 20 15 14 8 1 0 3 - 31 30 27 26 23 22 6 13 24 13 12 9 8 5 4 6 13 6 0 0 35 34 19 18 2 - 1 10 5 24 37 36 17 16 3 0 10 5 6 2 4 48 200 29 28 25 24 3 11 10 7 - 6 3 35 34 19 18 2 1 5 37 36 17 16 3 0 5 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Hcircumflex" xMin="62" yMin="0" xMax="1168" yMax="1925"> - <contour> - <pt x="370" y="703" on="1"/> - <pt x="370" y="123" on="1"/> - <pt x="469" y="123" on="1"/> - <pt x="469" y="0" on="1"/> - <pt x="62" y="0" on="1"/> - <pt x="62" y="123" on="1"/> - <pt x="173" y="123" on="1"/> - <pt x="173" y="1357" on="1"/> - <pt x="62" y="1357" on="1"/> - <pt x="62" y="1480" on="1"/> - <pt x="469" y="1480" on="1"/> - <pt x="469" y="1357" on="1"/> - <pt x="370" y="1357" on="1"/> - <pt x="370" y="827" on="1"/> - <pt x="859" y="827" on="1"/> - <pt x="859" y="1357" on="1"/> - <pt x="760" y="1357" on="1"/> - <pt x="760" y="1480" on="1"/> - <pt x="1168" y="1480" on="1"/> - <pt x="1168" y="1357" on="1"/> - <pt x="1057" y="1357" on="1"/> - <pt x="1057" y="123" on="1"/> - <pt x="1168" y="123" on="1"/> - <pt x="1168" y="0" on="1"/> - <pt x="760" y="0" on="1"/> - <pt x="760" y="123" on="1"/> - <pt x="859" y="123" on="1"/> - <pt x="859" y="703" on="1"/> - </contour> - <contour> - <pt x="249" y="1604" on="1"/> - <pt x="505" y="1925" on="1"/> - <pt x="724" y="1925" on="1"/> - <pt x="980" y="1604" on="1"/> - <pt x="857" y="1604" on="1"/> - <pt x="616" y="1806" on="1"/> - <pt x="613" y="1806" on="1"/> - <pt x="372" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 133 values pushed */ - 35 34 33 32 31 28 6 29 9 3 20 19 16 15 12 11 8 7 8 9 13 3 26 25 22 - 21 6 5 2 1 8 0 3 3 0 0 27 0 6 1 13 1 4 48 200 30 29 1 14 13 - 1 24 23 4 3 3 3 0 18 17 10 9 0 3 14 31 20 14 2 35 34 33 32 30 29 - 25 24 17 16 11 10 3 2 14 14 0 3 28 0 6 2 23 22 19 18 4 13 20 9 8 - 5 4 4 13 6 0 0 27 26 15 14 10 3 20 13 12 1 0 10 3 6 2 4 48 200 - 21 20 1 7 6 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="I" xMin="160" yMin="0" xMax="1068" yMax="1480"> - <contour> - <pt x="160" y="0" on="1"/> - <pt x="160" y="123" on="1"/> - <pt x="515" y="123" on="1"/> - <pt x="515" y="1357" on="1"/> - <pt x="160" y="1357" on="1"/> - <pt x="160" y="1480" on="1"/> - <pt x="1068" y="1480" on="1"/> - <pt x="1068" y="1357" on="1"/> - <pt x="713" y="1357" on="1"/> - <pt x="713" y="123" on="1"/> - <pt x="1068" y="123" on="1"/> - <pt x="1068" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 57 values pushed */ - 0 0 8 7 4 3 6 3 5 10 9 2 1 6 3 0 2 4 48 200 11 0 1 0 6 - 5 0 14 11 10 7 6 4 13 8 5 4 1 0 4 13 2 0 0 9 8 10 1 2 1 - 4 48 200 3 2 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="IJ" xMin="45" yMin="-37" xMax="1131" yMax="1480"> - <contour> - <pt x="45" y="0" on="1"/> - <pt x="45" y="123" on="1"/> - <pt x="144" y="123" on="1"/> - <pt x="144" y="1357" on="1"/> - <pt x="45" y="1357" on="1"/> - <pt x="45" y="1480" on="1"/> - <pt x="440" y="1480" on="1"/> - <pt x="440" y="1357" on="1"/> - <pt x="341" y="1357" on="1"/> - <pt x="341" y="123" on="1"/> - <pt x="440" y="123" on="1"/> - <pt x="440" y="0" on="1"/> - </contour> - <contour> - <pt x="563" y="-19" on="1"/> - <pt x="563" y="197" on="1"/> - <pt x="687" y="197" on="1"/> - <pt x="699" y="108" on="1"/> - <pt x="729" y="86" on="0"/> - <pt x="762" y="86" on="1"/> - <pt x="933" y="86" on="0"/> - <pt x="933" y="410" on="1"/> - <pt x="933" y="1357" on="1"/> - <pt x="736" y="1357" on="1"/> - <pt x="736" y="1480" on="1"/> - <pt x="1131" y="1480" on="1"/> - <pt x="1131" y="533" on="1"/> - <pt x="1131" y="226" on="0"/> - <pt x="1034" y="105" on="1"/> - <pt x="920" y="-37" on="0"/> - <pt x="711" y="-37" on="1"/> - <pt x="652" y="-37" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 100 values pushed */ - 0 0 17 5 28 48 200 28 2 24 19 15 14 13 10 9 2 1 9 3 0 3 12 0 0 - 0 21 20 8 7 4 3 6 5 5 1 4 48 200 11 0 1 0 23 22 6 5 0 3 14 - 22 21 15 14 4 19 12 3 11 10 7 6 4 12 8 3 5 4 1 0 4 13 2 0 0 - 20 19 10 1 23 9 8 10 1 2 2 4 48 200 24 23 1 13 12 1 3 2 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Iacute" xMin="160" yMin="0" xMax="1068" yMax="1925"> - <contour> - <pt x="160" y="0" on="1"/> - <pt x="160" y="123" on="1"/> - <pt x="515" y="123" on="1"/> - <pt x="515" y="1357" on="1"/> - <pt x="160" y="1357" on="1"/> - <pt x="160" y="1480" on="1"/> - <pt x="1068" y="1480" on="1"/> - <pt x="1068" y="1357" on="1"/> - <pt x="713" y="1357" on="1"/> - <pt x="713" y="123" on="1"/> - <pt x="1068" y="123" on="1"/> - <pt x="1068" y="0" on="1"/> - </contour> - <contour> - <pt x="515" y="1604" on="1"/> - <pt x="731" y="1925" on="1"/> - <pt x="959" y="1925" on="1"/> - <pt x="638" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 74 values pushed */ - 15 12 2 13 5 3 0 0 8 7 4 3 6 3 5 10 9 2 1 6 3 0 2 4 48 - 200 14 13 1 11 0 1 2 0 6 5 0 14 15 8 2 2 14 13 11 10 7 6 6 13 - 8 5 4 1 0 4 13 2 0 0 9 8 10 1 2 1 4 48 200 12 3 2 2 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ibreve" xMin="160" yMin="0" xMax="1068" yMax="1925"> - <contour> - <pt x="160" y="0" on="1"/> - <pt x="160" y="123" on="1"/> - <pt x="515" y="123" on="1"/> - <pt x="515" y="1357" on="1"/> - <pt x="160" y="1357" on="1"/> - <pt x="160" y="1480" on="1"/> - <pt x="1068" y="1480" on="1"/> - <pt x="1068" y="1357" on="1"/> - <pt x="713" y="1357" on="1"/> - <pt x="713" y="123" on="1"/> - <pt x="1068" y="123" on="1"/> - <pt x="1068" y="0" on="1"/> - </contour> - <contour> - <pt x="269" y="1925" on="1"/> - <pt x="392" y="1925" on="1"/> - <pt x="440" y="1777" on="0"/> - <pt x="614" y="1777" on="1"/> - <pt x="789" y="1777" on="0"/> - <pt x="837" y="1925" on="1"/> - <pt x="960" y="1925" on="1"/> - <pt x="937" y="1836" on="0"/> - <pt x="911" y="1790" on="1"/> - <pt x="820" y="1635" on="0"/> - <pt x="618" y="1635" on="1"/> - <pt x="466" y="1635" on="0"/> - <pt x="377" y="1716" on="1"/> - <pt x="322" y="1765" on="0"/> - <pt x="294" y="1837" on="1"/> - <pt x="283" y="1866" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 76 values pushed */ - 0 0 15 14 22 48 200 18 17 13 12 4 13 22 5 0 0 8 7 4 3 6 3 5 10 - 9 2 1 6 3 0 2 4 48 200 11 0 1 0 6 5 0 14 18 17 11 10 7 6 6 - 13 8 13 12 5 4 1 0 6 13 2 0 0 9 8 10 1 2 1 4 48 200 3 2 1 - 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Icircumflex" xMin="160" yMin="0" xMax="1068" yMax="1925"> - <contour> - <pt x="160" y="0" on="1"/> - <pt x="160" y="123" on="1"/> - <pt x="515" y="123" on="1"/> - <pt x="515" y="1357" on="1"/> - <pt x="160" y="1357" on="1"/> - <pt x="160" y="1480" on="1"/> - <pt x="1068" y="1480" on="1"/> - <pt x="1068" y="1357" on="1"/> - <pt x="713" y="1357" on="1"/> - <pt x="713" y="123" on="1"/> - <pt x="1068" y="123" on="1"/> - <pt x="1068" y="0" on="1"/> - </contour> - <contour> - <pt x="248" y="1604" on="1"/> - <pt x="504" y="1925" on="1"/> - <pt x="723" y="1925" on="1"/> - <pt x="979" y="1604" on="1"/> - <pt x="856" y="1604" on="1"/> - <pt x="615" y="1806" on="1"/> - <pt x="612" y="1806" on="1"/> - <pt x="371" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 83 values pushed */ - 19 18 17 16 15 12 6 13 5 3 0 0 8 7 4 3 6 3 5 10 9 2 1 6 3 - 0 2 4 48 200 14 13 1 11 0 1 2 0 6 5 0 14 18 17 2 8 2 3 16 15 - 14 11 10 7 6 7 13 8 19 13 12 5 4 1 0 7 13 2 0 0 9 8 10 1 2 - 1 4 48 200 3 2 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Idieresis" xMin="160" yMin="0" xMax="1068" yMax="1801"> - <contour> - <pt x="160" y="0" on="1"/> - <pt x="160" y="123" on="1"/> - <pt x="515" y="123" on="1"/> - <pt x="515" y="1357" on="1"/> - <pt x="160" y="1357" on="1"/> - <pt x="160" y="1480" on="1"/> - <pt x="1068" y="1480" on="1"/> - <pt x="1068" y="1357" on="1"/> - <pt x="713" y="1357" on="1"/> - <pt x="713" y="123" on="1"/> - <pt x="1068" y="123" on="1"/> - <pt x="1068" y="0" on="1"/> - </contour> - <contour> - <pt x="281" y="1604" on="1"/> - <pt x="281" y="1801" on="1"/> - <pt x="478" y="1801" on="1"/> - <pt x="478" y="1604" on="1"/> - </contour> - <contour> - <pt x="750" y="1604" on="1"/> - <pt x="750" y="1801" on="1"/> - <pt x="947" y="1801" on="1"/> - <pt x="947" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 87 values pushed */ - 0 0 19 16 15 12 10 3 13 8 7 4 3 6 3 5 10 9 2 1 6 3 0 3 4 - 48 200 18 17 14 13 3 11 0 1 2 0 6 5 0 14 11 10 7 6 4 13 18 5 4 - 1 0 4 13 12 0 0 17 16 10 1 18 15 14 10 1 12 9 8 10 1 2 3 4 48 - 200 19 18 1 13 12 1 3 2 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Idotaccent" xMin="160" yMin="0" xMax="1068" yMax="1801"> - <contour> - <pt x="160" y="0" on="1"/> - <pt x="160" y="123" on="1"/> - <pt x="515" y="123" on="1"/> - <pt x="515" y="1357" on="1"/> - <pt x="160" y="1357" on="1"/> - <pt x="160" y="1480" on="1"/> - <pt x="1068" y="1480" on="1"/> - <pt x="1068" y="1357" on="1"/> - <pt x="713" y="1357" on="1"/> - <pt x="713" y="123" on="1"/> - <pt x="1068" y="123" on="1"/> - <pt x="1068" y="0" on="1"/> - </contour> - <contour> - <pt x="515" y="1604" on="1"/> - <pt x="515" y="1801" on="1"/> - <pt x="712" y="1801" on="1"/> - <pt x="712" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 73 values pushed */ - 0 0 15 12 10 1 13 8 7 4 3 6 3 5 10 9 2 1 6 3 0 3 4 48 200 - 14 13 1 11 0 1 2 0 6 5 0 14 11 10 7 6 4 13 8 5 4 1 0 4 13 - 2 0 0 15 14 10 1 2 9 8 10 1 2 2 4 48 200 13 12 3 2 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Igrave" xMin="160" yMin="0" xMax="1068" yMax="1925"> - <contour> - <pt x="160" y="0" on="1"/> - <pt x="160" y="123" on="1"/> - <pt x="515" y="123" on="1"/> - <pt x="515" y="1357" on="1"/> - <pt x="160" y="1357" on="1"/> - <pt x="160" y="1480" on="1"/> - <pt x="1068" y="1480" on="1"/> - <pt x="1068" y="1357" on="1"/> - <pt x="713" y="1357" on="1"/> - <pt x="713" y="123" on="1"/> - <pt x="1068" y="123" on="1"/> - <pt x="1068" y="0" on="1"/> - </contour> - <contour> - <pt x="712" y="1604" on="1"/> - <pt x="589" y="1604" on="1"/> - <pt x="268" y="1925" on="1"/> - <pt x="496" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 75 values pushed */ - 13 12 2 14 5 3 0 0 8 7 4 3 6 3 5 10 9 2 1 6 3 0 2 4 48 - 200 15 14 1 11 0 1 2 0 6 5 0 14 13 12 2 8 2 3 11 10 7 6 4 13 - 8 15 14 5 4 1 0 6 13 2 0 0 9 8 10 1 2 1 4 48 200 3 2 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Imacron" xMin="160" yMin="0" xMax="1068" yMax="1728"> - <contour> - <pt x="160" y="0" on="1"/> - <pt x="160" y="123" on="1"/> - <pt x="515" y="123" on="1"/> - <pt x="515" y="1357" on="1"/> - <pt x="160" y="1357" on="1"/> - <pt x="160" y="1480" on="1"/> - <pt x="1068" y="1480" on="1"/> - <pt x="1068" y="1357" on="1"/> - <pt x="713" y="1357" on="1"/> - <pt x="713" y="123" on="1"/> - <pt x="1068" y="123" on="1"/> - <pt x="1068" y="0" on="1"/> - </contour> - <contour> - <pt x="269" y="1604" on="1"/> - <pt x="269" y="1728" on="1"/> - <pt x="960" y="1728" on="1"/> - <pt x="960" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 70 values pushed */ - 0 0 15 12 6 1 13 8 7 4 3 6 3 5 10 9 2 1 6 3 0 3 4 48 200 - 14 13 1 11 0 1 2 0 6 5 0 14 15 14 11 10 7 6 6 13 8 13 12 5 4 - 1 0 6 13 2 0 0 9 8 10 1 2 1 4 48 200 3 2 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Iogonek" xMin="160" yMin="-370" xMax="1068" yMax="1480"> - <contour> - <pt x="160" y="0" on="1"/> - <pt x="160" y="123" on="1"/> - <pt x="515" y="123" on="1"/> - <pt x="515" y="1357" on="1"/> - <pt x="160" y="1357" on="1"/> - <pt x="160" y="1480" on="1"/> - <pt x="1068" y="1480" on="1"/> - <pt x="1068" y="1357" on="1"/> - <pt x="713" y="1357" on="1"/> - <pt x="713" y="123" on="1"/> - <pt x="1068" y="123" on="1"/> - <pt x="1068" y="0" on="1"/> - </contour> - <contour> - <pt x="785" y="0" on="1"/> - <pt x="892" y="0" on="1"/> - <pt x="763" y="-81" on="0"/> - <pt x="763" y="-179" on="1"/> - <pt x="763" y="-275" on="0"/> - <pt x="878" y="-275" on="1"/> - <pt x="932" y="-275" on="0"/> - <pt x="969" y="-260" on="1"/> - <pt x="969" y="-341" on="1"/> - <pt x="907" y="-370" on="0"/> - <pt x="830" y="-370" on="1"/> - <pt x="627" y="-370" on="0"/> - <pt x="627" y="-213" on="1"/> - <pt x="627" y="-90" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 86 values pushed */ - 0 0 17 17 22 48 200 20 19 22 0 0 0 8 7 4 3 6 3 5 10 9 2 1 6 - 3 0 2 4 48 200 13 12 11 0 3 0 6 5 0 14 0 0 15 20 24 48 200 24 24 - 8 2 2 20 19 13 12 11 10 7 6 8 13 8 5 4 1 0 4 13 2 0 0 9 8 - 10 1 2 1 4 48 200 3 2 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Itilde" xMin="160" yMin="0" xMax="1068" yMax="1839"> - <contour> - <pt x="160" y="0" on="1"/> - <pt x="160" y="123" on="1"/> - <pt x="515" y="123" on="1"/> - <pt x="515" y="1357" on="1"/> - <pt x="160" y="1357" on="1"/> - <pt x="160" y="1480" on="1"/> - <pt x="1068" y="1480" on="1"/> - <pt x="1068" y="1357" on="1"/> - <pt x="713" y="1357" on="1"/> - <pt x="713" y="123" on="1"/> - <pt x="1068" y="123" on="1"/> - <pt x="1068" y="0" on="1"/> - </contour> - <contour> - <pt x="281" y="1604" on="1"/> - <pt x="287" y="1699" on="0"/> - <pt x="312" y="1749" on="1"/> - <pt x="357" y="1839" on="0"/> - <pt x="466" y="1839" on="1"/> - <pt x="538" y="1839" on="0"/> - <pt x="601" y="1800" on="1"/> - <pt x="661" y="1763" on="1"/> - <pt x="723" y="1725" on="0"/> - <pt x="757" y="1725" on="1"/> - <pt x="825" y="1725" on="0"/> - <pt x="836" y="1839" on="1"/> - <pt x="947" y="1839" on="1"/> - <pt x="940" y="1745" on="0"/> - <pt x="915" y="1695" on="1"/> - <pt x="869" y="1604" on="0"/> - <pt x="762" y="1604" on="1"/> - <pt x="689" y="1604" on="0"/> - <pt x="626" y="1643" on="1"/> - <pt x="566" y="1680" on="1"/> - <pt x="506" y="1717" on="0"/> - <pt x="470" y="1717" on="1"/> - <pt x="402" y="1717" on="0"/> - <pt x="391" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 80 values pushed */ - 0 0 33 5 16 21 5 28 48 200 35 24 23 12 4 13 28 16 5 0 0 8 7 4 3 - 6 3 5 10 9 2 1 6 3 0 2 4 48 200 11 0 1 0 6 5 0 14 24 23 11 - 10 7 6 6 13 8 35 12 5 4 1 0 6 13 2 0 0 9 8 10 1 2 1 4 48 - 200 3 2 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="J" xMin="111" yMin="-37" xMax="1143" yMax="1480"> - <contour> - <pt x="111" y="31" on="1"/> - <pt x="111" y="444" on="1"/> - <pt x="234" y="444" on="1"/> - <pt x="273" y="135" on="1"/> - <pt x="386" y="86" on="0"/> - <pt x="467" y="86" on="1"/> - <pt x="583" y="86" on="0"/> - <pt x="634" y="141" on="1"/> - <pt x="686" y="195" on="0"/> - <pt x="686" y="322" on="1"/> - <pt x="686" y="1357" on="1"/> - <pt x="291" y="1357" on="1"/> - <pt x="291" y="1480" on="1"/> - <pt x="1143" y="1480" on="1"/> - <pt x="1143" y="1357" on="1"/> - <pt x="883" y="1357" on="1"/> - <pt x="883" y="362" on="1"/> - <pt x="883" y="148" on="0"/> - <pt x="791" y="56" on="1"/> - <pt x="699" y="-37" on="0"/> - <pt x="487" y="-37" on="1"/> - <pt x="329" y="-37" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 70 values pushed */ - 0 0 5 5 20 48 200 20 2 1 16 9 3 2 1 0 6 10 2 3 0 0 0 15 14 - 11 10 6 3 12 1 4 48 200 13 12 0 14 12 11 3 2 4 9 0 3 14 13 2 13 - 15 0 0 10 9 10 1 15 1 4 48 200 16 15 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Jcircumflex" xMin="111" yMin="-37" xMax="1143" yMax="1925"> - <contour> - <pt x="111" y="31" on="1"/> - <pt x="111" y="444" on="1"/> - <pt x="234" y="444" on="1"/> - <pt x="273" y="135" on="1"/> - <pt x="386" y="86" on="0"/> - <pt x="467" y="86" on="1"/> - <pt x="583" y="86" on="0"/> - <pt x="634" y="141" on="1"/> - <pt x="686" y="195" on="0"/> - <pt x="686" y="322" on="1"/> - <pt x="686" y="1357" on="1"/> - <pt x="291" y="1357" on="1"/> - <pt x="291" y="1480" on="1"/> - <pt x="1143" y="1480" on="1"/> - <pt x="1143" y="1357" on="1"/> - <pt x="883" y="1357" on="1"/> - <pt x="883" y="362" on="1"/> - <pt x="883" y="148" on="0"/> - <pt x="791" y="56" on="1"/> - <pt x="699" y="-37" on="0"/> - <pt x="487" y="-37" on="1"/> - <pt x="329" y="-37" on="0"/> - </contour> - <contour> - <pt x="351" y="1604" on="1"/> - <pt x="607" y="1925" on="1"/> - <pt x="826" y="1925" on="1"/> - <pt x="1082" y="1604" on="1"/> - <pt x="959" y="1604" on="1"/> - <pt x="718" y="1806" on="1"/> - <pt x="715" y="1806" on="1"/> - <pt x="474" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 96 values pushed */ - 0 0 5 5 20 48 200 20 2 29 28 27 26 25 22 6 23 12 3 1 16 9 3 2 1 - 0 6 10 2 3 0 0 0 15 14 11 10 6 3 12 1 4 48 200 24 23 1 0 13 12 - 0 14 28 27 24 3 15 9 3 29 23 22 12 11 3 2 7 9 0 3 26 25 14 13 4 - 13 15 0 0 10 9 10 1 15 1 4 48 200 16 15 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="K" xMin="74" yMin="0" xMax="1197" yMax="1480"> - <contour> - <pt x="74" y="0" on="1"/> - <pt x="74" y="123" on="1"/> - <pt x="204" y="123" on="1"/> - <pt x="204" y="1357" on="1"/> - <pt x="74" y="1357" on="1"/> - <pt x="74" y="1480" on="1"/> - <pt x="506" y="1480" on="1"/> - <pt x="506" y="1357" on="1"/> - <pt x="401" y="1357" on="1"/> - <pt x="401" y="756" on="1"/> - <pt x="408" y="756" on="1"/> - <pt x="838" y="1357" on="1"/> - <pt x="727" y="1357" on="1"/> - <pt x="727" y="1480" on="1"/> - <pt x="1083" y="1480" on="1"/> - <pt x="1083" y="1357" on="1"/> - <pt x="991" y="1357" on="1"/> - <pt x="594" y="811" on="1"/> - <pt x="1123" y="123" on="1"/> - <pt x="1197" y="123" on="1"/> - <pt x="1197" y="0" on="1"/> - <pt x="772" y="0" on="1"/> - <pt x="772" y="123" on="1"/> - <pt x="883" y="123" on="1"/> - <pt x="408" y="740" on="1"/> - <pt x="401" y="740" on="1"/> - <pt x="401" y="123" on="1"/> - <pt x="524" y="123" on="1"/> - <pt x="524" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 84 values pushed */ - 27 26 25 24 23 22 19 18 17 16 15 12 11 10 9 8 7 4 3 2 1 21 5 0 3 - 28 21 20 0 3 0 14 13 6 5 0 3 14 28 27 24 23 22 21 20 19 18 17 16 15 - 14 13 12 11 10 7 6 19 13 8 5 4 1 0 4 13 2 0 0 26 25 9 8 10 3 - 2 1 4 48 200 3 2 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Kcommaaccent" xMin="74" yMin="-432" xMax="1197" yMax="1480"> - <contour> - <pt x="74" y="0" on="1"/> - <pt x="74" y="123" on="1"/> - <pt x="204" y="123" on="1"/> - <pt x="204" y="1357" on="1"/> - <pt x="74" y="1357" on="1"/> - <pt x="74" y="1480" on="1"/> - <pt x="506" y="1480" on="1"/> - <pt x="506" y="1357" on="1"/> - <pt x="401" y="1357" on="1"/> - <pt x="401" y="756" on="1"/> - <pt x="408" y="756" on="1"/> - <pt x="838" y="1357" on="1"/> - <pt x="727" y="1357" on="1"/> - <pt x="727" y="1480" on="1"/> - <pt x="1083" y="1480" on="1"/> - <pt x="1083" y="1357" on="1"/> - <pt x="991" y="1357" on="1"/> - <pt x="594" y="811" on="1"/> - <pt x="1123" y="123" on="1"/> - <pt x="1197" y="123" on="1"/> - <pt x="1197" y="0" on="1"/> - <pt x="772" y="0" on="1"/> - <pt x="772" y="123" on="1"/> - <pt x="883" y="123" on="1"/> - <pt x="408" y="740" on="1"/> - <pt x="401" y="740" on="1"/> - <pt x="401" y="123" on="1"/> - <pt x="524" y="123" on="1"/> - <pt x="524" y="0" on="1"/> - </contour> - <contour> - <pt x="512" y="-421" on="1"/> - <pt x="512" y="-336" on="1"/> - <pt x="569" y="-345" on="0"/> - <pt x="609" y="-345" on="1"/> - <pt x="718" y="-345" on="0"/> - <pt x="718" y="-278" on="1"/> - <pt x="718" y="-205" on="0"/> - <pt x="561" y="-188" on="1"/> - <pt x="561" y="-111" on="1"/> - <pt x="695" y="-114" on="0"/> - <pt x="761" y="-143" on="1"/> - <pt x="854" y="-185" on="0"/> - <pt x="854" y="-280" on="1"/> - <pt x="854" y="-432" on="0"/> - <pt x="636" y="-432" on="1"/> - <pt x="578" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 111 values pushed */ - 0 0 32 32 43 48 200 27 26 25 24 23 22 19 18 17 16 15 12 11 10 9 8 7 4 - 3 2 1 21 5 0 3 37 36 30 29 4 13 43 0 28 21 20 0 3 0 14 13 6 5 - 0 3 14 0 0 34 20 41 48 200 37 36 30 29 28 27 24 23 22 21 20 19 18 17 16 - 15 14 13 12 11 10 7 6 23 13 41 8 5 4 1 0 4 13 2 0 0 26 25 9 8 - 10 3 2 1 4 48 200 3 2 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="L" xMin="86" yMin="0" xMax="1151" yMax="1480"> - <contour> - <pt x="1151" y="0" on="1"/> - <pt x="86" y="0" on="1"/> - <pt x="86" y="123" on="1"/> - <pt x="333" y="123" on="1"/> - <pt x="333" y="1357" on="1"/> - <pt x="86" y="1357" on="1"/> - <pt x="86" y="1480" on="1"/> - <pt x="765" y="1480" on="1"/> - <pt x="765" y="1357" on="1"/> - <pt x="530" y="1357" on="1"/> - <pt x="530" y="136" on="1"/> - <pt x="1028" y="136" on="1"/> - <pt x="1028" y="481" on="1"/> - <pt x="1151" y="481" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 74 values pushed */ - 13 12 2 4 10 3 0 0 9 8 5 4 6 3 6 11 10 20 1 0 3 2 6 1 0 - 3 4 48 200 1 0 1 0 7 6 0 14 8 7 2 11 9 3 6 5 2 1 4 13 3 - 0 0 12 11 6 1 0 10 9 10 1 3 2 4 48 200 13 0 1 4 3 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Lacute" xMin="86" yMin="0" xMax="1151" yMax="1925"> - <contour> - <pt x="1151" y="0" on="1"/> - <pt x="86" y="0" on="1"/> - <pt x="86" y="123" on="1"/> - <pt x="333" y="123" on="1"/> - <pt x="333" y="1357" on="1"/> - <pt x="86" y="1357" on="1"/> - <pt x="86" y="1480" on="1"/> - <pt x="765" y="1480" on="1"/> - <pt x="765" y="1357" on="1"/> - <pt x="530" y="1357" on="1"/> - <pt x="530" y="136" on="1"/> - <pt x="1028" y="136" on="1"/> - <pt x="1028" y="481" on="1"/> - <pt x="1151" y="481" on="1"/> - </contour> - <contour> - <pt x="407" y="1604" on="1"/> - <pt x="623" y="1925" on="1"/> - <pt x="851" y="1925" on="1"/> - <pt x="530" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 91 values pushed */ - 17 14 2 15 6 3 13 12 2 4 10 3 0 0 9 8 5 4 6 3 6 11 10 20 1 - 0 3 2 6 1 0 3 4 48 200 16 15 1 1 0 1 2 0 7 6 0 14 16 15 8 - 7 4 11 9 3 14 9 3 2 6 5 2 1 4 13 3 0 0 12 11 6 1 0 17 10 - 9 10 2 3 2 4 48 200 13 0 1 4 3 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Lcaron" xMin="86" yMin="0" xMax="1151" yMax="1480"> - <contour> - <pt x="1151" y="0" on="1"/> - <pt x="86" y="0" on="1"/> - <pt x="86" y="123" on="1"/> - <pt x="333" y="123" on="1"/> - <pt x="333" y="1357" on="1"/> - <pt x="86" y="1357" on="1"/> - <pt x="86" y="1480" on="1"/> - <pt x="765" y="1480" on="1"/> - <pt x="765" y="1357" on="1"/> - <pt x="530" y="1357" on="1"/> - <pt x="530" y="136" on="1"/> - <pt x="1028" y="136" on="1"/> - <pt x="1028" y="481" on="1"/> - <pt x="1151" y="481" on="1"/> - </contour> - <contour> - <pt x="937" y="1026" on="1"/> - <pt x="937" y="1085" on="1"/> - <pt x="1013" y="1106" on="0"/> - <pt x="1013" y="1266" on="1"/> - <pt x="1013" y="1283" on="1"/> - <pt x="937" y="1283" on="1"/> - <pt x="937" y="1480" on="1"/> - <pt x="1134" y="1480" on="1"/> - <pt x="1134" y="1309" on="1"/> - <pt x="1133" y="1047" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 99 values pushed */ - 22 19 18 17 15 14 13 12 8 4 10 3 0 0 9 8 5 4 6 3 6 11 10 20 1 - 0 3 2 6 1 0 3 4 48 200 1 0 1 0 21 20 7 6 0 3 14 18 17 2 11 - 14 3 8 7 2 14 9 3 6 5 2 1 4 13 3 0 0 20 19 15 14 10 3 21 12 - 11 6 1 0 10 9 10 1 3 3 4 48 200 22 21 1 13 0 1 4 3 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Lcommaaccent" xMin="86" yMin="-432" xMax="1151" yMax="1480"> - <contour> - <pt x="1151" y="0" on="1"/> - <pt x="86" y="0" on="1"/> - <pt x="86" y="123" on="1"/> - <pt x="333" y="123" on="1"/> - <pt x="333" y="1357" on="1"/> - <pt x="86" y="1357" on="1"/> - <pt x="86" y="1480" on="1"/> - <pt x="765" y="1480" on="1"/> - <pt x="765" y="1357" on="1"/> - <pt x="530" y="1357" on="1"/> - <pt x="530" y="136" on="1"/> - <pt x="1028" y="136" on="1"/> - <pt x="1028" y="481" on="1"/> - <pt x="1151" y="481" on="1"/> - </contour> - <contour> - <pt x="518" y="-421" on="1"/> - <pt x="518" y="-336" on="1"/> - <pt x="575" y="-345" on="0"/> - <pt x="615" y="-345" on="1"/> - <pt x="724" y="-345" on="0"/> - <pt x="724" y="-278" on="1"/> - <pt x="724" y="-205" on="0"/> - <pt x="567" y="-188" on="1"/> - <pt x="567" y="-111" on="1"/> - <pt x="701" y="-114" on="0"/> - <pt x="767" y="-143" on="1"/> - <pt x="860" y="-185" on="0"/> - <pt x="860" y="-280" on="1"/> - <pt x="860" y="-432" on="0"/> - <pt x="642" y="-432" on="1"/> - <pt x="584" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 106 values pushed */ - 0 0 17 32 28 48 200 13 12 2 4 10 3 22 21 15 14 4 13 28 0 0 0 9 8 - 5 4 6 3 6 11 10 20 1 0 3 2 6 1 0 3 4 48 200 1 0 1 0 7 6 - 0 14 0 0 19 20 26 48 200 26 26 22 21 8 7 5 11 9 3 15 14 2 9 3 3 - 6 5 2 1 4 13 3 0 0 12 11 6 1 0 10 9 10 1 3 2 4 48 200 13 0 - 1 4 3 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ldot" xMin="86" yMin="0" xMax="1151" yMax="1480"> - <contour> - <pt x="1151" y="0" on="1"/> - <pt x="86" y="0" on="1"/> - <pt x="86" y="123" on="1"/> - <pt x="333" y="123" on="1"/> - <pt x="333" y="1357" on="1"/> - <pt x="86" y="1357" on="1"/> - <pt x="86" y="1480" on="1"/> - <pt x="765" y="1480" on="1"/> - <pt x="765" y="1357" on="1"/> - <pt x="530" y="1357" on="1"/> - <pt x="530" y="136" on="1"/> - <pt x="1028" y="136" on="1"/> - <pt x="1028" y="481" on="1"/> - <pt x="1151" y="481" on="1"/> - </contour> - <contour> - <pt x="954" y="740" on="1"/> - <pt x="954" y="937" on="1"/> - <pt x="1151" y="937" on="1"/> - <pt x="1151" y="740" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 90 values pushed */ - 13 12 2 14 10 3 0 0 17 14 10 1 15 9 8 5 4 6 3 6 11 10 20 1 0 - 3 2 6 1 0 4 4 48 200 16 15 1 1 0 1 2 0 7 6 0 14 8 7 2 14 - 9 3 6 5 2 1 4 13 3 0 0 15 14 10 1 0 12 11 6 1 0 10 9 10 1 - 3 3 4 48 200 17 16 13 0 3 4 3 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Lslash" xMin="86" yMin="0" xMax="1151" yMax="1480"> - <contour> - <pt x="86" y="0" on="1"/> - <pt x="86" y="123" on="1"/> - <pt x="333" y="123" on="1"/> - <pt x="333" y="652" on="1"/> - <pt x="86" y="528" on="1"/> - <pt x="86" y="666" on="1"/> - <pt x="333" y="790" on="1"/> - <pt x="333" y="1357" on="1"/> - <pt x="86" y="1357" on="1"/> - <pt x="86" y="1480" on="1"/> - <pt x="765" y="1480" on="1"/> - <pt x="765" y="1357" on="1"/> - <pt x="530" y="1357" on="1"/> - <pt x="530" y="888" on="1"/> - <pt x="826" y="1036" on="1"/> - <pt x="826" y="899" on="1"/> - <pt x="530" y="750" on="1"/> - <pt x="530" y="136" on="1"/> - <pt x="1028" y="136" on="1"/> - <pt x="1028" y="481" on="1"/> - <pt x="1151" y="481" on="1"/> - <pt x="1151" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 89 values pushed */ - 20 19 16 15 14 13 6 5 4 3 10 7 17 3 0 0 12 11 8 7 6 3 9 18 17 - 20 1 0 2 1 6 1 0 3 4 48 200 21 0 1 0 10 9 0 14 11 10 2 14 12 - 3 0 0 19 18 6 1 20 17 16 13 12 10 3 2 2 4 48 200 21 20 1 15 14 1 - 7 6 3 2 3 9 8 5 4 1 0 5 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="M" xMin="25" yMin="0" xMax="1204" yMax="1480"> - <contour> - <pt x="25" y="0" on="1"/> - <pt x="25" y="123" on="1"/> - <pt x="111" y="123" on="1"/> - <pt x="111" y="1357" on="1"/> - <pt x="25" y="1357" on="1"/> - <pt x="25" y="1480" on="1"/> - <pt x="310" y="1480" on="1"/> - <pt x="616" y="462" on="1"/> - <pt x="618" y="462" on="1"/> - <pt x="935" y="1480" on="1"/> - <pt x="1204" y="1480" on="1"/> - <pt x="1204" y="1357" on="1"/> - <pt x="1118" y="1357" on="1"/> - <pt x="1118" y="123" on="1"/> - <pt x="1204" y="123" on="1"/> - <pt x="1204" y="0" on="1"/> - <pt x="884" y="0" on="1"/> - <pt x="884" y="123" on="1"/> - <pt x="956" y="123" on="1"/> - <pt x="956" y="1128" on="1"/> - <pt x="954" y="1128" on="1"/> - <pt x="663" y="194" on="1"/> - <pt x="528" y="194" on="1"/> - <pt x="237" y="1166" on="1"/> - <pt x="235" y="1166" on="1"/> - <pt x="235" y="123" on="1"/> - <pt x="321" y="123" on="1"/> - <pt x="321" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 91 values pushed */ - 26 25 24 23 22 21 20 19 18 17 14 13 12 11 8 7 4 3 2 1 20 5 0 3 27 - 16 15 0 3 0 10 9 6 5 0 3 14 27 26 23 22 21 20 17 16 9 8 7 6 12 - 18 24 3 15 14 11 10 4 13 12 5 4 1 0 4 13 2 0 0 19 18 34 1 12 25 - 24 6 1 2 2 4 48 200 13 12 1 3 2 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="N" xMin="74" yMin="0" xMax="1155" yMax="1480"> - <contour> - <pt x="74" y="0" on="1"/> - <pt x="74" y="123" on="1"/> - <pt x="185" y="123" on="1"/> - <pt x="185" y="1357" on="1"/> - <pt x="74" y="1357" on="1"/> - <pt x="74" y="1480" on="1"/> - <pt x="308" y="1480" on="1"/> - <pt x="918" y="405" on="1"/> - <pt x="920" y="405" on="1"/> - <pt x="920" y="1357" on="1"/> - <pt x="810" y="1357" on="1"/> - <pt x="810" y="1480" on="1"/> - <pt x="1155" y="1480" on="1"/> - <pt x="1155" y="1357" on="1"/> - <pt x="1044" y="1357" on="1"/> - <pt x="1044" y="0" on="1"/> - <pt x="920" y="0" on="1"/> - <pt x="311" y="1076" on="1"/> - <pt x="308" y="1076" on="1"/> - <pt x="308" y="123" on="1"/> - <pt x="419" y="123" on="1"/> - <pt x="419" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 79 values pushed */ - 20 19 18 17 14 13 10 9 8 7 4 3 2 1 14 5 0 3 21 16 15 0 3 0 12 - 11 6 5 0 3 14 21 20 17 11 10 7 6 8 6 3 13 12 2 13 14 5 4 1 0 - 4 13 2 0 0 16 9 8 6 2 14 19 18 6 6 2 2 2 4 48 200 15 14 1 3 - 2 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Nacute" xMin="74" yMin="0" xMax="1155" yMax="1925"> - <contour> - <pt x="74" y="0" on="1"/> - <pt x="74" y="123" on="1"/> - <pt x="185" y="123" on="1"/> - <pt x="185" y="1357" on="1"/> - <pt x="74" y="1357" on="1"/> - <pt x="74" y="1480" on="1"/> - <pt x="308" y="1480" on="1"/> - <pt x="918" y="405" on="1"/> - <pt x="920" y="405" on="1"/> - <pt x="920" y="1357" on="1"/> - <pt x="810" y="1357" on="1"/> - <pt x="810" y="1480" on="1"/> - <pt x="1155" y="1480" on="1"/> - <pt x="1155" y="1357" on="1"/> - <pt x="1044" y="1357" on="1"/> - <pt x="1044" y="0" on="1"/> - <pt x="920" y="0" on="1"/> - <pt x="311" y="1076" on="1"/> - <pt x="308" y="1076" on="1"/> - <pt x="308" y="123" on="1"/> - <pt x="419" y="123" on="1"/> - <pt x="419" y="0" on="1"/> - </contour> - <contour> - <pt x="493" y="1604" on="1"/> - <pt x="709" y="1925" on="1"/> - <pt x="937" y="1925" on="1"/> - <pt x="616" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 96 values pushed */ - 25 22 2 23 5 3 20 19 18 17 14 13 10 9 8 7 4 3 2 1 14 5 0 3 24 - 23 1 21 16 15 0 3 2 0 12 11 6 5 0 3 14 24 14 8 2 25 23 22 21 20 - 17 11 10 7 9 8 6 3 13 12 2 13 14 5 4 1 0 4 13 2 0 0 16 9 8 - 6 2 14 19 18 6 6 2 2 2 4 48 200 15 14 1 3 2 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ncaron" xMin="74" yMin="0" xMax="1155" yMax="1925"> - <contour> - <pt x="74" y="0" on="1"/> - <pt x="74" y="123" on="1"/> - <pt x="185" y="123" on="1"/> - <pt x="185" y="1357" on="1"/> - <pt x="74" y="1357" on="1"/> - <pt x="74" y="1480" on="1"/> - <pt x="308" y="1480" on="1"/> - <pt x="918" y="405" on="1"/> - <pt x="920" y="405" on="1"/> - <pt x="920" y="1357" on="1"/> - <pt x="810" y="1357" on="1"/> - <pt x="810" y="1480" on="1"/> - <pt x="1155" y="1480" on="1"/> - <pt x="1155" y="1357" on="1"/> - <pt x="1044" y="1357" on="1"/> - <pt x="1044" y="0" on="1"/> - <pt x="920" y="0" on="1"/> - <pt x="311" y="1076" on="1"/> - <pt x="308" y="1076" on="1"/> - <pt x="308" y="123" on="1"/> - <pt x="419" y="123" on="1"/> - <pt x="419" y="0" on="1"/> - </contour> - <contour> - <pt x="981" y="1925" on="1"/> - <pt x="724" y="1604" on="1"/> - <pt x="506" y="1604" on="1"/> - <pt x="249" y="1925" on="1"/> - <pt x="373" y="1925" on="1"/> - <pt x="614" y="1723" on="1"/> - <pt x="616" y="1723" on="1"/> - <pt x="858" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 106 values pushed */ - 20 19 18 17 14 13 10 9 8 7 4 3 2 1 14 5 0 3 29 28 27 26 25 22 6 - 13 23 24 23 1 21 16 15 0 3 2 0 12 11 6 5 0 3 14 22 14 8 2 29 28 - 27 26 24 23 21 20 17 11 10 7 12 8 6 3 25 6 2 2 13 12 2 13 14 5 4 - 1 0 4 13 2 0 0 16 9 8 6 2 14 19 18 6 6 2 2 2 4 48 200 15 14 - 1 3 2 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ncommaaccent" xMin="74" yMin="-432" xMax="1155" yMax="1480"> - <contour> - <pt x="74" y="0" on="1"/> - <pt x="74" y="123" on="1"/> - <pt x="185" y="123" on="1"/> - <pt x="185" y="1357" on="1"/> - <pt x="74" y="1357" on="1"/> - <pt x="74" y="1480" on="1"/> - <pt x="308" y="1480" on="1"/> - <pt x="918" y="405" on="1"/> - <pt x="920" y="405" on="1"/> - <pt x="920" y="1357" on="1"/> - <pt x="810" y="1357" on="1"/> - <pt x="810" y="1480" on="1"/> - <pt x="1155" y="1480" on="1"/> - <pt x="1155" y="1357" on="1"/> - <pt x="1044" y="1357" on="1"/> - <pt x="1044" y="0" on="1"/> - <pt x="920" y="0" on="1"/> - <pt x="311" y="1076" on="1"/> - <pt x="308" y="1076" on="1"/> - <pt x="308" y="123" on="1"/> - <pt x="419" y="123" on="1"/> - <pt x="419" y="0" on="1"/> - </contour> - <contour> - <pt x="481" y="-421" on="1"/> - <pt x="481" y="-336" on="1"/> - <pt x="538" y="-345" on="0"/> - <pt x="578" y="-345" on="1"/> - <pt x="687" y="-345" on="0"/> - <pt x="687" y="-278" on="1"/> - <pt x="687" y="-205" on="0"/> - <pt x="530" y="-188" on="1"/> - <pt x="530" y="-111" on="1"/> - <pt x="664" y="-114" on="0"/> - <pt x="730" y="-143" on="1"/> - <pt x="823" y="-185" on="0"/> - <pt x="823" y="-280" on="1"/> - <pt x="823" y="-432" on="0"/> - <pt x="605" y="-432" on="1"/> - <pt x="547" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 107 values pushed */ - 0 0 25 32 36 48 200 20 19 18 17 14 13 10 9 8 7 4 3 2 1 14 5 0 3 - 30 29 23 22 4 13 36 0 21 16 15 0 3 0 12 11 6 5 0 3 14 0 0 27 20 - 34 48 200 34 34 30 29 23 22 21 20 17 11 10 7 11 8 6 3 13 12 2 13 14 5 - 4 1 0 4 13 2 0 0 16 9 8 6 2 14 19 18 6 6 2 2 2 4 48 200 15 - 14 1 3 2 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ntilde" xMin="74" yMin="0" xMax="1155" yMax="1839"> - <contour> - <pt x="74" y="0" on="1"/> - <pt x="74" y="123" on="1"/> - <pt x="185" y="123" on="1"/> - <pt x="185" y="1357" on="1"/> - <pt x="74" y="1357" on="1"/> - <pt x="74" y="1480" on="1"/> - <pt x="308" y="1480" on="1"/> - <pt x="918" y="405" on="1"/> - <pt x="920" y="405" on="1"/> - <pt x="920" y="1357" on="1"/> - <pt x="810" y="1357" on="1"/> - <pt x="810" y="1480" on="1"/> - <pt x="1155" y="1480" on="1"/> - <pt x="1155" y="1357" on="1"/> - <pt x="1044" y="1357" on="1"/> - <pt x="1044" y="0" on="1"/> - <pt x="920" y="0" on="1"/> - <pt x="311" y="1076" on="1"/> - <pt x="308" y="1076" on="1"/> - <pt x="308" y="123" on="1"/> - <pt x="419" y="123" on="1"/> - <pt x="419" y="0" on="1"/> - </contour> - <contour> - <pt x="271" y="1604" on="1"/> - <pt x="277" y="1699" on="0"/> - <pt x="302" y="1749" on="1"/> - <pt x="347" y="1839" on="0"/> - <pt x="456" y="1839" on="1"/> - <pt x="528" y="1839" on="0"/> - <pt x="591" y="1800" on="1"/> - <pt x="651" y="1763" on="1"/> - <pt x="713" y="1725" on="0"/> - <pt x="747" y="1725" on="1"/> - <pt x="816" y="1725" on="0"/> - <pt x="826" y="1839" on="1"/> - <pt x="937" y="1839" on="1"/> - <pt x="930" y="1745" on="0"/> - <pt x="905" y="1695" on="1"/> - <pt x="859" y="1604" on="0"/> - <pt x="752" y="1604" on="1"/> - <pt x="679" y="1604" on="0"/> - <pt x="616" y="1643" on="1"/> - <pt x="556" y="1680" on="1"/> - <pt x="496" y="1717" on="0"/> - <pt x="460" y="1717" on="1"/> - <pt x="392" y="1717" on="0"/> - <pt x="381" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 108 values pushed */ - 0 0 43 5 26 31 5 38 48 200 20 19 18 17 14 13 10 9 8 7 4 3 2 1 14 - 5 0 3 45 34 33 22 4 13 38 26 5 21 16 15 0 3 0 12 11 6 5 0 3 14 - 34 14 8 2 45 33 21 20 17 11 10 7 8 8 6 3 22 6 2 2 13 12 2 13 14 - 5 4 1 0 4 13 2 0 0 16 9 8 6 2 14 19 18 6 6 2 2 2 4 48 200 - 15 14 1 3 2 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="O" xMin="62" yMin="-37" xMax="1168" yMax="1517"> - <contour> - <pt x="615" y="1517" on="1"/> - <pt x="858" y="1517" on="0"/> - <pt x="1013" y="1301" on="1"/> - <pt x="1168" y="1085" on="0"/> - <pt x="1168" y="742" on="1"/> - <pt x="1168" y="394" on="0"/> - <pt x="1013" y="179" on="1"/> - <pt x="858" y="-37" on="0"/> - <pt x="608" y="-37" on="1"/> - <pt x="394" y="-37" on="0"/> - <pt x="249" y="138" on="1"/> - <pt x="62" y="363" on="0"/> - <pt x="62" y="741" on="1"/> - <pt x="62" y="1084" on="0"/> - <pt x="216" y="1300" on="1"/> - <pt x="371" y="1517" on="0"/> - </contour> - <contour> - <pt x="615" y="1394" on="1"/> - <pt x="454" y="1394" on="0"/> - <pt x="365" y="1222" on="1"/> - <pt x="275" y="1049" on="0"/> - <pt x="275" y="740" on="1"/> - <pt x="275" y="434" on="0"/> - <pt x="364" y="260" on="1"/> - <pt x="452" y="86" on="0"/> - <pt x="614" y="86" on="1"/> - <pt x="776" y="86" on="0"/> - <pt x="860" y="236" on="1"/> - <pt x="955" y="405" on="0"/> - <pt x="955" y="738" on="1"/> - <pt x="955" y="1051" on="0"/> - <pt x="865" y="1222" on="1"/> - <pt x="774" y="1394" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 27 values pushed */ - 0 0 24 5 8 16 5 0 48 200 8 2 0 0 14 0 0 28 39 4 20 39 12 48 200 - 12 4 - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="OE" xMin="37" yMin="-37" xMax="1167" yMax="1518"> - <contour> - <pt x="609" y="0" on="1"/> - <pt x="609" y="74" on="1"/> - <pt x="549" y="-37" on="0"/> - <pt x="436" y="-37" on="1"/> - <pt x="252" y="-37" on="0"/> - <pt x="145" y="170" on="1"/> - <pt x="37" y="377" on="0"/> - <pt x="37" y="740" on="1"/> - <pt x="37" y="1101" on="0"/> - <pt x="144" y="1310" on="1"/> - <pt x="251" y="1518" on="0"/> - <pt x="435" y="1518" on="1"/> - <pt x="552" y="1518" on="0"/> - <pt x="609" y="1406" on="1"/> - <pt x="609" y="1480" on="1"/> - <pt x="1142" y="1480" on="1"/> - <pt x="1142" y="1166" on="1"/> - <pt x="1019" y="1166" on="1"/> - <pt x="1019" y="1357" on="1"/> - <pt x="800" y="1357" on="1"/> - <pt x="800" y="827" on="1"/> - <pt x="945" y="827" on="1"/> - <pt x="945" y="950" on="1"/> - <pt x="1056" y="950" on="1"/> - <pt x="1056" y="580" on="1"/> - <pt x="945" y="580" on="1"/> - <pt x="945" y="703" on="1"/> - <pt x="800" y="703" on="1"/> - <pt x="800" y="136" on="1"/> - <pt x="1044" y="136" on="1"/> - <pt x="1044" y="370" on="1"/> - <pt x="1167" y="370" on="1"/> - <pt x="1167" y="0" on="1"/> - </contour> - <contour> - <pt x="609" y="364" on="1"/> - <pt x="609" y="1117" on="1"/> - <pt x="609" y="1395" on="0"/> - <pt x="460" y="1395" on="1"/> - <pt x="237" y="1395" on="0"/> - <pt x="237" y="746" on="1"/> - <pt x="237" y="396" on="0"/> - <pt x="289" y="240" on="1"/> - <pt x="340" y="86" on="0"/> - <pt x="457" y="86" on="1"/> - <pt x="609" y="86" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 131 values pushed */ - 0 0 42 5 3 36 5 11 48 200 11 0 3 2 13 14 18 2 34 23 22 17 16 5 18 - 20 3 33 31 30 25 24 5 26 28 3 1 28 0 2 0 0 19 18 6 1 14 27 26 6 - 1 20 29 28 20 1 0 3 4 48 200 21 20 1 32 0 1 2 0 15 14 0 14 0 0 - 38 24 7 48 200 26 25 22 21 4 17 19 3 7 0 0 0 30 29 6 1 31 18 17 6 - 1 15 34 33 14 13 1 0 19 5 19 3 4 48 200 32 31 1 16 15 1 24 23 1 28 - 27 20 19 3 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Oacute" xMin="62" yMin="-37" xMax="1168" yMax="1925"> - <contour> - <pt x="615" y="1517" on="1"/> - <pt x="858" y="1517" on="0"/> - <pt x="1013" y="1301" on="1"/> - <pt x="1168" y="1085" on="0"/> - <pt x="1168" y="742" on="1"/> - <pt x="1168" y="394" on="0"/> - <pt x="1013" y="179" on="1"/> - <pt x="858" y="-37" on="0"/> - <pt x="608" y="-37" on="1"/> - <pt x="394" y="-37" on="0"/> - <pt x="249" y="138" on="1"/> - <pt x="62" y="363" on="0"/> - <pt x="62" y="741" on="1"/> - <pt x="62" y="1084" on="0"/> - <pt x="216" y="1300" on="1"/> - <pt x="371" y="1517" on="0"/> - </contour> - <contour> - <pt x="615" y="1394" on="1"/> - <pt x="454" y="1394" on="0"/> - <pt x="365" y="1222" on="1"/> - <pt x="275" y="1049" on="0"/> - <pt x="275" y="740" on="1"/> - <pt x="275" y="434" on="0"/> - <pt x="364" y="260" on="1"/> - <pt x="452" y="86" on="0"/> - <pt x="614" y="86" on="1"/> - <pt x="776" y="86" on="0"/> - <pt x="860" y="236" on="1"/> - <pt x="955" y="405" on="0"/> - <pt x="955" y="738" on="1"/> - <pt x="955" y="1051" on="0"/> - <pt x="865" y="1222" on="1"/> - <pt x="774" y="1394" on="0"/> - </contour> - <contour> - <pt x="491" y="1604" on="1"/> - <pt x="707" y="1925" on="1"/> - <pt x="935" y="1925" on="1"/> - <pt x="614" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 43 values pushed */ - 0 0 24 5 8 16 5 0 48 200 8 2 0 0 1 35 32 2 33 0 3 0 34 33 1 - 0 14 0 0 28 39 4 20 39 12 48 200 35 34 33 32 12 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Obreve" xMin="62" yMin="-37" xMax="1168" yMax="1925"> - <contour> - <pt x="615" y="1517" on="1"/> - <pt x="858" y="1517" on="0"/> - <pt x="1013" y="1301" on="1"/> - <pt x="1168" y="1085" on="0"/> - <pt x="1168" y="742" on="1"/> - <pt x="1168" y="394" on="0"/> - <pt x="1013" y="179" on="1"/> - <pt x="858" y="-37" on="0"/> - <pt x="608" y="-37" on="1"/> - <pt x="394" y="-37" on="0"/> - <pt x="249" y="138" on="1"/> - <pt x="62" y="363" on="0"/> - <pt x="62" y="741" on="1"/> - <pt x="62" y="1084" on="0"/> - <pt x="216" y="1300" on="1"/> - <pt x="371" y="1517" on="0"/> - </contour> - <contour> - <pt x="615" y="1394" on="1"/> - <pt x="454" y="1394" on="0"/> - <pt x="365" y="1222" on="1"/> - <pt x="275" y="1049" on="0"/> - <pt x="275" y="740" on="1"/> - <pt x="275" y="434" on="0"/> - <pt x="364" y="260" on="1"/> - <pt x="452" y="86" on="0"/> - <pt x="614" y="86" on="1"/> - <pt x="776" y="86" on="0"/> - <pt x="860" y="236" on="1"/> - <pt x="955" y="405" on="0"/> - <pt x="955" y="738" on="1"/> - <pt x="955" y="1051" on="0"/> - <pt x="865" y="1222" on="1"/> - <pt x="774" y="1394" on="0"/> - </contour> - <contour> - <pt x="269" y="1925" on="1"/> - <pt x="392" y="1925" on="1"/> - <pt x="440" y="1777" on="0"/> - <pt x="614" y="1777" on="1"/> - <pt x="789" y="1777" on="0"/> - <pt x="837" y="1925" on="1"/> - <pt x="960" y="1925" on="1"/> - <pt x="937" y="1836" on="0"/> - <pt x="911" y="1790" on="1"/> - <pt x="820" y="1635" on="0"/> - <pt x="618" y="1635" on="1"/> - <pt x="466" y="1635" on="0"/> - <pt x="377" y="1716" on="1"/> - <pt x="322" y="1765" on="0"/> - <pt x="294" y="1837" on="1"/> - <pt x="283" y="1866" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 44 values pushed */ - 0 0 35 14 42 24 5 8 16 5 0 48 200 8 2 0 0 1 38 37 33 32 4 13 42 - 0 0 14 0 0 28 36 4 20 36 12 48 200 38 37 33 32 12 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ocircumflex" xMin="62" yMin="-37" xMax="1168" yMax="1925"> - <contour> - <pt x="615" y="1517" on="1"/> - <pt x="858" y="1517" on="0"/> - <pt x="1013" y="1301" on="1"/> - <pt x="1168" y="1085" on="0"/> - <pt x="1168" y="742" on="1"/> - <pt x="1168" y="394" on="0"/> - <pt x="1013" y="179" on="1"/> - <pt x="858" y="-37" on="0"/> - <pt x="608" y="-37" on="1"/> - <pt x="394" y="-37" on="0"/> - <pt x="249" y="138" on="1"/> - <pt x="62" y="363" on="0"/> - <pt x="62" y="741" on="1"/> - <pt x="62" y="1084" on="0"/> - <pt x="216" y="1300" on="1"/> - <pt x="371" y="1517" on="0"/> - </contour> - <contour> - <pt x="615" y="1394" on="1"/> - <pt x="454" y="1394" on="0"/> - <pt x="365" y="1222" on="1"/> - <pt x="275" y="1049" on="0"/> - <pt x="275" y="740" on="1"/> - <pt x="275" y="434" on="0"/> - <pt x="364" y="260" on="1"/> - <pt x="452" y="86" on="0"/> - <pt x="614" y="86" on="1"/> - <pt x="776" y="86" on="0"/> - <pt x="860" y="236" on="1"/> - <pt x="955" y="405" on="0"/> - <pt x="955" y="738" on="1"/> - <pt x="955" y="1051" on="0"/> - <pt x="865" y="1222" on="1"/> - <pt x="774" y="1394" on="0"/> - </contour> - <contour> - <pt x="249" y="1604" on="1"/> - <pt x="505" y="1925" on="1"/> - <pt x="724" y="1925" on="1"/> - <pt x="980" y="1604" on="1"/> - <pt x="857" y="1604" on="1"/> - <pt x="616" y="1806" on="1"/> - <pt x="613" y="1806" on="1"/> - <pt x="372" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 51 values pushed */ - 0 0 24 5 8 16 5 0 48 200 8 2 0 0 1 39 38 37 36 35 32 6 33 0 3 - 0 34 33 1 0 14 0 0 28 39 4 20 39 12 48 200 39 38 37 36 35 34 33 32 12 - 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Odieresis" xMin="62" yMin="-37" xMax="1168" yMax="1801"> - <contour> - <pt x="615" y="1517" on="1"/> - <pt x="858" y="1517" on="0"/> - <pt x="1013" y="1301" on="1"/> - <pt x="1168" y="1085" on="0"/> - <pt x="1168" y="742" on="1"/> - <pt x="1168" y="394" on="0"/> - <pt x="1013" y="179" on="1"/> - <pt x="858" y="-37" on="0"/> - <pt x="608" y="-37" on="1"/> - <pt x="394" y="-37" on="0"/> - <pt x="249" y="138" on="1"/> - <pt x="62" y="363" on="0"/> - <pt x="62" y="741" on="1"/> - <pt x="62" y="1084" on="0"/> - <pt x="216" y="1300" on="1"/> - <pt x="371" y="1517" on="0"/> - </contour> - <contour> - <pt x="615" y="1394" on="1"/> - <pt x="454" y="1394" on="0"/> - <pt x="365" y="1222" on="1"/> - <pt x="275" y="1049" on="0"/> - <pt x="275" y="740" on="1"/> - <pt x="275" y="434" on="0"/> - <pt x="364" y="260" on="1"/> - <pt x="452" y="86" on="0"/> - <pt x="614" y="86" on="1"/> - <pt x="776" y="86" on="0"/> - <pt x="860" y="236" on="1"/> - <pt x="955" y="405" on="0"/> - <pt x="955" y="738" on="1"/> - <pt x="955" y="1051" on="0"/> - <pt x="865" y="1222" on="1"/> - <pt x="774" y="1394" on="0"/> - </contour> - <contour> - <pt x="282" y="1604" on="1"/> - <pt x="282" y="1801" on="1"/> - <pt x="479" y="1801" on="1"/> - <pt x="479" y="1604" on="1"/> - </contour> - <contour> - <pt x="751" y="1604" on="1"/> - <pt x="751" y="1801" on="1"/> - <pt x="948" y="1801" on="1"/> - <pt x="948" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 72 values pushed */ - 0 0 24 5 8 16 5 0 48 200 8 2 0 0 0 0 39 36 35 32 10 3 33 1 4 - 48 200 38 37 34 33 3 0 14 0 0 28 39 4 20 39 12 48 200 4 38 12 32 0 0 - 37 36 10 1 38 35 34 10 1 32 2 4 48 200 39 38 1 33 32 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ograve" xMin="62" yMin="-37" xMax="1168" yMax="1925"> - <contour> - <pt x="615" y="1517" on="1"/> - <pt x="858" y="1517" on="0"/> - <pt x="1013" y="1301" on="1"/> - <pt x="1168" y="1085" on="0"/> - <pt x="1168" y="742" on="1"/> - <pt x="1168" y="394" on="0"/> - <pt x="1013" y="179" on="1"/> - <pt x="858" y="-37" on="0"/> - <pt x="608" y="-37" on="1"/> - <pt x="394" y="-37" on="0"/> - <pt x="249" y="138" on="1"/> - <pt x="62" y="363" on="0"/> - <pt x="62" y="741" on="1"/> - <pt x="62" y="1084" on="0"/> - <pt x="216" y="1300" on="1"/> - <pt x="371" y="1517" on="0"/> - </contour> - <contour> - <pt x="615" y="1394" on="1"/> - <pt x="454" y="1394" on="0"/> - <pt x="365" y="1222" on="1"/> - <pt x="275" y="1049" on="0"/> - <pt x="275" y="740" on="1"/> - <pt x="275" y="434" on="0"/> - <pt x="364" y="260" on="1"/> - <pt x="452" y="86" on="0"/> - <pt x="614" y="86" on="1"/> - <pt x="776" y="86" on="0"/> - <pt x="860" y="236" on="1"/> - <pt x="955" y="405" on="0"/> - <pt x="955" y="738" on="1"/> - <pt x="955" y="1051" on="0"/> - <pt x="865" y="1222" on="1"/> - <pt x="774" y="1394" on="0"/> - </contour> - <contour> - <pt x="738" y="1604" on="1"/> - <pt x="615" y="1604" on="1"/> - <pt x="294" y="1925" on="1"/> - <pt x="522" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 43 values pushed */ - 0 0 24 5 8 16 5 0 48 200 8 2 0 0 1 33 32 2 34 0 3 0 35 34 1 - 0 14 0 0 28 39 4 20 39 12 48 200 35 34 33 32 12 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ohungarumlaut" xMin="62" yMin="-37" xMax="1168" yMax="1925"> - <contour> - <pt x="615" y="1517" on="1"/> - <pt x="858" y="1517" on="0"/> - <pt x="1013" y="1301" on="1"/> - <pt x="1168" y="1085" on="0"/> - <pt x="1168" y="742" on="1"/> - <pt x="1168" y="394" on="0"/> - <pt x="1013" y="179" on="1"/> - <pt x="858" y="-37" on="0"/> - <pt x="608" y="-37" on="1"/> - <pt x="394" y="-37" on="0"/> - <pt x="249" y="138" on="1"/> - <pt x="62" y="363" on="0"/> - <pt x="62" y="741" on="1"/> - <pt x="62" y="1084" on="0"/> - <pt x="216" y="1300" on="1"/> - <pt x="371" y="1517" on="0"/> - </contour> - <contour> - <pt x="615" y="1394" on="1"/> - <pt x="454" y="1394" on="0"/> - <pt x="365" y="1222" on="1"/> - <pt x="275" y="1049" on="0"/> - <pt x="275" y="740" on="1"/> - <pt x="275" y="434" on="0"/> - <pt x="364" y="260" on="1"/> - <pt x="452" y="86" on="0"/> - <pt x="614" y="86" on="1"/> - <pt x="776" y="86" on="0"/> - <pt x="860" y="236" on="1"/> - <pt x="955" y="405" on="0"/> - <pt x="955" y="738" on="1"/> - <pt x="955" y="1051" on="0"/> - <pt x="865" y="1222" on="1"/> - <pt x="774" y="1394" on="0"/> - </contour> - <contour> - <pt x="313" y="1604" on="1"/> - <pt x="553" y="1925" on="1"/> - <pt x="745" y="1925" on="1"/> - <pt x="424" y="1604" on="1"/> - </contour> - <contour> - <pt x="664" y="1604" on="1"/> - <pt x="905" y="1925" on="1"/> - <pt x="1096" y="1925" on="1"/> - <pt x="775" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 51 values pushed */ - 0 0 24 5 8 16 5 0 48 200 8 2 0 0 1 39 36 35 32 4 33 0 3 0 38 - 37 34 33 3 0 14 0 0 28 39 4 20 39 12 48 200 39 38 37 36 35 34 33 32 12 - 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Omacron" xMin="62" yMin="-37" xMax="1168" yMax="1728"> - <contour> - <pt x="615" y="1517" on="1"/> - <pt x="858" y="1517" on="0"/> - <pt x="1013" y="1301" on="1"/> - <pt x="1168" y="1085" on="0"/> - <pt x="1168" y="742" on="1"/> - <pt x="1168" y="394" on="0"/> - <pt x="1013" y="179" on="1"/> - <pt x="858" y="-37" on="0"/> - <pt x="608" y="-37" on="1"/> - <pt x="394" y="-37" on="0"/> - <pt x="249" y="138" on="1"/> - <pt x="62" y="363" on="0"/> - <pt x="62" y="741" on="1"/> - <pt x="62" y="1084" on="0"/> - <pt x="216" y="1300" on="1"/> - <pt x="371" y="1517" on="0"/> - </contour> - <contour> - <pt x="615" y="1394" on="1"/> - <pt x="454" y="1394" on="0"/> - <pt x="365" y="1222" on="1"/> - <pt x="275" y="1049" on="0"/> - <pt x="275" y="740" on="1"/> - <pt x="275" y="434" on="0"/> - <pt x="364" y="260" on="1"/> - <pt x="452" y="86" on="0"/> - <pt x="614" y="86" on="1"/> - <pt x="776" y="86" on="0"/> - <pt x="860" y="236" on="1"/> - <pt x="955" y="405" on="0"/> - <pt x="955" y="738" on="1"/> - <pt x="955" y="1051" on="0"/> - <pt x="865" y="1222" on="1"/> - <pt x="774" y="1394" on="0"/> - </contour> - <contour> - <pt x="269" y="1604" on="1"/> - <pt x="269" y="1728" on="1"/> - <pt x="960" y="1728" on="1"/> - <pt x="960" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 46 values pushed */ - 0 0 24 5 8 16 5 0 48 200 8 2 0 0 0 0 35 32 6 1 33 1 4 48 200 - 34 33 1 0 14 0 0 28 39 4 20 39 12 48 200 35 34 33 32 12 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Oslash" xMin="62" yMin="-37" xMax="1168" yMax="1517"> - <contour> - <pt x="321" y="371" on="1"/> - <pt x="865" y="1225" on="1"/> - <pt x="774" y="1394" on="0"/> - <pt x="616" y="1394" on="1"/> - <pt x="453" y="1394" on="0"/> - <pt x="364" y="1222" on="1"/> - <pt x="275" y="1049" on="0"/> - <pt x="275" y="742" on="1"/> - <pt x="275" y="545" on="0"/> - </contour> - <contour> - <pt x="364" y="254" on="1"/> - <pt x="457" y="86" on="0"/> - <pt x="613" y="86" on="1"/> - <pt x="776" y="86" on="0"/> - <pt x="865" y="258" on="1"/> - <pt x="955" y="431" on="0"/> - <pt x="955" y="738" on="1"/> - <pt x="955" y="937" on="0"/> - <pt x="908" y="1110" on="1"/> - </contour> - <contour> - <pt x="62" y="-37" on="1"/> - <pt x="206" y="190" on="1"/> - <pt x="62" y="432" on="0"/> - <pt x="62" y="739" on="1"/> - <pt x="62" y="1083" on="0"/> - <pt x="216" y="1300" on="1"/> - <pt x="370" y="1517" on="0"/> - <pt x="613" y="1517" on="1"/> - <pt x="799" y="1517" on="0"/> - <pt x="958" y="1371" on="1"/> - <pt x="1051" y="1517" on="1"/> - <pt x="1168" y="1517" on="1"/> - <pt x="1023" y="1290" on="1"/> - <pt x="1168" y="1048" on="0"/> - <pt x="1168" y="740" on="1"/> - <pt x="1168" y="398" on="0"/> - <pt x="1014" y="181" on="1"/> - <pt x="860" y="-37" on="0"/> - <pt x="616" y="-37" on="1"/> - <pt x="431" y="-37" on="0"/> - <pt x="272" y="110" on="1"/> - <pt x="179" y="-37" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 61 values pushed */ - 36 2 25 0 3 1 1 30 27 17 3 1 5 0 1 3 0 0 11 1 1 38 19 11 9 - 0 5 1 2 3 0 0 1 29 28 2 13 0 0 1 39 18 2 0 14 39 38 32 30 29 - 28 27 21 19 18 17 15 9 7 1 0 - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MDAP[1] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MDAP[1] - MIAP[1] - MIAP[1] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Otilde" xMin="62" yMin="-37" xMax="1168" yMax="1839"> - <contour> - <pt x="615" y="1517" on="1"/> - <pt x="858" y="1517" on="0"/> - <pt x="1013" y="1301" on="1"/> - <pt x="1168" y="1085" on="0"/> - <pt x="1168" y="742" on="1"/> - <pt x="1168" y="394" on="0"/> - <pt x="1013" y="179" on="1"/> - <pt x="858" y="-37" on="0"/> - <pt x="608" y="-37" on="1"/> - <pt x="394" y="-37" on="0"/> - <pt x="249" y="138" on="1"/> - <pt x="62" y="363" on="0"/> - <pt x="62" y="741" on="1"/> - <pt x="62" y="1084" on="0"/> - <pt x="216" y="1300" on="1"/> - <pt x="371" y="1517" on="0"/> - </contour> - <contour> - <pt x="615" y="1394" on="1"/> - <pt x="454" y="1394" on="0"/> - <pt x="365" y="1222" on="1"/> - <pt x="275" y="1049" on="0"/> - <pt x="275" y="740" on="1"/> - <pt x="275" y="434" on="0"/> - <pt x="364" y="260" on="1"/> - <pt x="452" y="86" on="0"/> - <pt x="614" y="86" on="1"/> - <pt x="776" y="86" on="0"/> - <pt x="860" y="236" on="1"/> - <pt x="955" y="405" on="0"/> - <pt x="955" y="738" on="1"/> - <pt x="955" y="1051" on="0"/> - <pt x="865" y="1222" on="1"/> - <pt x="774" y="1394" on="0"/> - </contour> - <contour> - <pt x="282" y="1604" on="1"/> - <pt x="288" y="1699" on="0"/> - <pt x="313" y="1749" on="1"/> - <pt x="358" y="1839" on="0"/> - <pt x="467" y="1839" on="1"/> - <pt x="539" y="1839" on="0"/> - <pt x="602" y="1800" on="1"/> - <pt x="662" y="1763" on="1"/> - <pt x="724" y="1725" on="0"/> - <pt x="758" y="1725" on="1"/> - <pt x="826" y="1725" on="0"/> - <pt x="837" y="1839" on="1"/> - <pt x="948" y="1839" on="1"/> - <pt x="941" y="1745" on="0"/> - <pt x="916" y="1695" on="1"/> - <pt x="870" y="1604" on="0"/> - <pt x="763" y="1604" on="1"/> - <pt x="690" y="1604" on="0"/> - <pt x="627" y="1643" on="1"/> - <pt x="567" y="1680" on="1"/> - <pt x="507" y="1717" on="0"/> - <pt x="471" y="1717" on="1"/> - <pt x="403" y="1717" on="0"/> - <pt x="392" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 48 values pushed */ - 0 0 53 5 36 41 5 48 24 5 8 16 5 0 48 200 8 2 0 0 1 55 44 43 32 - 4 13 48 36 0 0 14 0 0 28 39 4 20 39 12 48 200 55 44 43 32 12 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="P" xMin="86" yMin="0" xMax="1124" yMax="1480"> - <contour> - <pt x="481" y="598" on="1"/> - <pt x="481" y="123" on="1"/> - <pt x="765" y="123" on="1"/> - <pt x="765" y="0" on="1"/> - <pt x="86" y="0" on="1"/> - <pt x="86" y="123" on="1"/> - <pt x="283" y="123" on="1"/> - <pt x="283" y="1357" on="1"/> - <pt x="86" y="1357" on="1"/> - <pt x="86" y="1480" on="1"/> - <pt x="747" y="1480" on="1"/> - <pt x="1124" y="1480" on="0"/> - <pt x="1124" y="1119" on="1"/> - <pt x="1124" y="878" on="0"/> - <pt x="984" y="738" on="1"/> - <pt x="844" y="598" on="0"/> - <pt x="599" y="598" on="1"/> - </contour> - <contour> - <pt x="481" y="722" on="1"/> - <pt x="592" y="722" on="1"/> - <pt x="914" y="722" on="0"/> - <pt x="914" y="1089" on="1"/> - <pt x="914" y="1357" on="0"/> - <pt x="682" y="1357" on="1"/> - <pt x="481" y="1357" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 77 values pushed */ - 18 17 16 0 4 7 1 3 0 0 23 22 8 7 6 3 9 6 5 2 1 6 3 3 2 - 4 48 200 4 3 1 0 10 9 0 14 0 0 20 39 12 48 200 22 18 16 10 3 2 6 - 13 12 0 9 8 5 4 4 13 6 0 0 23 17 1 0 10 3 6 1 4 48 200 7 6 - 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Q" xMin="62" yMin="-321" xMax="1223" yMax="1517"> - <contour> - <pt x="615" y="-37" on="1"/> - <pt x="459" y="-12" on="0"/> - <pt x="376" y="29" on="1"/> - <pt x="276" y="78" on="0"/> - <pt x="198" y="205" on="1"/> - <pt x="62" y="428" on="0"/> - <pt x="62" y="740" on="1"/> - <pt x="62" y="1083" on="0"/> - <pt x="216" y="1300" on="1"/> - <pt x="370" y="1517" on="0"/> - <pt x="615" y="1517" on="1"/> - <pt x="859" y="1517" on="0"/> - <pt x="1013" y="1300" on="1"/> - <pt x="1168" y="1083" on="0"/> - <pt x="1168" y="741" on="1"/> - <pt x="1168" y="421" on="0"/> - <pt x="1034" y="209" on="1"/> - <pt x="943" y="66" on="0"/> - <pt x="789" y="-2" on="1"/> - <pt x="951" y="-103" on="0"/> - <pt x="1223" y="-163" on="1"/> - <pt x="1154" y="-248" on="0"/> - <pt x="1055" y="-321" on="1"/> - <pt x="846" y="-242" on="0"/> - </contour> - <contour> - <pt x="615" y="1394" on="1"/> - <pt x="454" y="1394" on="0"/> - <pt x="365" y="1222" on="1"/> - <pt x="275" y="1050" on="0"/> - <pt x="275" y="740" on="1"/> - <pt x="275" y="434" on="0"/> - <pt x="364" y="260" on="1"/> - <pt x="452" y="86" on="0"/> - <pt x="614" y="86" on="1"/> - <pt x="776" y="86" on="0"/> - <pt x="860" y="236" on="1"/> - <pt x="955" y="405" on="0"/> - <pt x="955" y="738" on="1"/> - <pt x="955" y="1051" on="0"/> - <pt x="865" y="1223" on="1"/> - <pt x="774" y="1394" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 36 values pushed */ - 0 0 24 5 10 48 200 10 0 1 22 20 18 0 4 13 32 0 0 14 0 0 36 39 14 - 28 39 6 48 200 22 20 18 14 6 0 - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="R" xMin="86" yMin="0" xMax="1204" yMax="1480"> - <contour> - <pt x="86" y="0" on="1"/> - <pt x="86" y="123" on="1"/> - <pt x="216" y="123" on="1"/> - <pt x="216" y="1357" on="1"/> - <pt x="86" y="1357" on="1"/> - <pt x="86" y="1480" on="1"/> - <pt x="673" y="1480" on="1"/> - <pt x="849" y="1480" on="0"/> - <pt x="950" y="1383" on="1"/> - <pt x="1052" y="1286" on="0"/> - <pt x="1052" y="1118" on="1"/> - <pt x="1052" y="965" on="0"/> - <pt x="960" y="847" on="1"/> - <pt x="906" y="779" on="0"/> - <pt x="803" y="709" on="1"/> - <pt x="1116" y="123" on="1"/> - <pt x="1204" y="123" on="1"/> - <pt x="1204" y="0" on="1"/> - <pt x="951" y="0" on="1"/> - <pt x="612" y="648" on="1"/> - <pt x="413" y="648" on="1"/> - <pt x="413" y="123" on="1"/> - <pt x="543" y="123" on="1"/> - <pt x="543" y="0" on="1"/> - </contour> - <contour> - <pt x="413" y="771" on="1"/> - <pt x="512" y="771" on="1"/> - <pt x="842" y="771" on="0"/> - <pt x="842" y="1096" on="1"/> - <pt x="842" y="1357" on="0"/> - <pt x="592" y="1357" on="1"/> - <pt x="413" y="1357" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 90 values pushed */ - 25 24 14 3 3 19 3 22 21 16 15 2 1 6 19 0 3 0 0 30 29 4 3 6 3 - 5 1 4 48 200 20 19 1 23 18 17 0 3 2 0 6 5 0 14 0 0 27 39 10 48 - 200 29 25 23 22 19 18 17 16 15 14 6 11 13 10 20 5 4 1 0 4 13 2 0 0 - 30 24 21 20 10 3 2 1 4 48 200 3 2 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Racute" xMin="86" yMin="0" xMax="1204" yMax="1925"> - <contour> - <pt x="86" y="0" on="1"/> - <pt x="86" y="123" on="1"/> - <pt x="216" y="123" on="1"/> - <pt x="216" y="1357" on="1"/> - <pt x="86" y="1357" on="1"/> - <pt x="86" y="1480" on="1"/> - <pt x="673" y="1480" on="1"/> - <pt x="849" y="1480" on="0"/> - <pt x="950" y="1383" on="1"/> - <pt x="1052" y="1286" on="0"/> - <pt x="1052" y="1118" on="1"/> - <pt x="1052" y="965" on="0"/> - <pt x="960" y="847" on="1"/> - <pt x="906" y="779" on="0"/> - <pt x="803" y="709" on="1"/> - <pt x="1116" y="123" on="1"/> - <pt x="1204" y="123" on="1"/> - <pt x="1204" y="0" on="1"/> - <pt x="951" y="0" on="1"/> - <pt x="612" y="648" on="1"/> - <pt x="413" y="648" on="1"/> - <pt x="413" y="123" on="1"/> - <pt x="543" y="123" on="1"/> - <pt x="543" y="0" on="1"/> - </contour> - <contour> - <pt x="413" y="771" on="1"/> - <pt x="512" y="771" on="1"/> - <pt x="842" y="771" on="0"/> - <pt x="842" y="1096" on="1"/> - <pt x="842" y="1357" on="0"/> - <pt x="592" y="1357" on="1"/> - <pt x="413" y="1357" on="1"/> - </contour> - <contour> - <pt x="450" y="1604" on="1"/> - <pt x="666" y="1925" on="1"/> - <pt x="894" y="1925" on="1"/> - <pt x="573" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 103 values pushed */ - 34 31 2 32 5 3 25 24 14 3 3 19 3 22 21 16 15 2 1 6 19 0 3 0 0 - 30 29 4 3 6 3 5 1 4 48 200 33 32 1 20 19 1 23 18 17 0 3 3 0 6 - 5 0 14 0 0 27 39 10 48 200 34 33 32 31 29 25 23 22 19 18 17 16 15 14 6 - 15 13 10 20 5 4 1 0 4 13 2 0 0 30 24 21 20 10 3 2 1 4 48 200 3 - 2 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Rcaron" xMin="86" yMin="0" xMax="1204" yMax="1925"> - <contour> - <pt x="86" y="0" on="1"/> - <pt x="86" y="123" on="1"/> - <pt x="216" y="123" on="1"/> - <pt x="216" y="1357" on="1"/> - <pt x="86" y="1357" on="1"/> - <pt x="86" y="1480" on="1"/> - <pt x="673" y="1480" on="1"/> - <pt x="849" y="1480" on="0"/> - <pt x="950" y="1383" on="1"/> - <pt x="1052" y="1286" on="0"/> - <pt x="1052" y="1118" on="1"/> - <pt x="1052" y="965" on="0"/> - <pt x="960" y="847" on="1"/> - <pt x="906" y="779" on="0"/> - <pt x="803" y="709" on="1"/> - <pt x="1116" y="123" on="1"/> - <pt x="1204" y="123" on="1"/> - <pt x="1204" y="0" on="1"/> - <pt x="951" y="0" on="1"/> - <pt x="612" y="648" on="1"/> - <pt x="413" y="648" on="1"/> - <pt x="413" y="123" on="1"/> - <pt x="543" y="123" on="1"/> - <pt x="543" y="0" on="1"/> - </contour> - <contour> - <pt x="413" y="771" on="1"/> - <pt x="512" y="771" on="1"/> - <pt x="842" y="771" on="0"/> - <pt x="842" y="1096" on="1"/> - <pt x="842" y="1357" on="0"/> - <pt x="592" y="1357" on="1"/> - <pt x="413" y="1357" on="1"/> - </contour> - <contour> - <pt x="925" y="1925" on="1"/> - <pt x="668" y="1604" on="1"/> - <pt x="450" y="1604" on="1"/> - <pt x="193" y="1925" on="1"/> - <pt x="317" y="1925" on="1"/> - <pt x="558" y="1723" on="1"/> - <pt x="560" y="1723" on="1"/> - <pt x="802" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 113 values pushed */ - 25 24 14 3 3 19 3 22 21 16 15 2 1 6 19 0 3 38 37 36 35 34 31 6 13 - 32 0 0 30 29 4 3 6 3 5 1 4 48 200 33 32 1 20 19 1 23 18 17 0 3 - 3 0 6 5 0 14 0 0 27 39 10 48 200 35 20 2 2 38 37 36 33 32 31 29 25 - 23 22 19 18 17 16 15 14 6 17 13 10 20 34 5 4 1 0 5 13 2 0 0 30 24 - 21 20 10 3 2 1 4 48 200 3 2 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Rcommaaccent" xMin="86" yMin="-432" xMax="1204" yMax="1480"> - <contour> - <pt x="86" y="0" on="1"/> - <pt x="86" y="123" on="1"/> - <pt x="216" y="123" on="1"/> - <pt x="216" y="1357" on="1"/> - <pt x="86" y="1357" on="1"/> - <pt x="86" y="1480" on="1"/> - <pt x="673" y="1480" on="1"/> - <pt x="849" y="1480" on="0"/> - <pt x="950" y="1383" on="1"/> - <pt x="1052" y="1286" on="0"/> - <pt x="1052" y="1118" on="1"/> - <pt x="1052" y="965" on="0"/> - <pt x="960" y="847" on="1"/> - <pt x="906" y="779" on="0"/> - <pt x="803" y="709" on="1"/> - <pt x="1116" y="123" on="1"/> - <pt x="1204" y="123" on="1"/> - <pt x="1204" y="0" on="1"/> - <pt x="951" y="0" on="1"/> - <pt x="612" y="648" on="1"/> - <pt x="413" y="648" on="1"/> - <pt x="413" y="123" on="1"/> - <pt x="543" y="123" on="1"/> - <pt x="543" y="0" on="1"/> - </contour> - <contour> - <pt x="413" y="771" on="1"/> - <pt x="512" y="771" on="1"/> - <pt x="842" y="771" on="0"/> - <pt x="842" y="1096" on="1"/> - <pt x="842" y="1357" on="0"/> - <pt x="592" y="1357" on="1"/> - <pt x="413" y="1357" on="1"/> - </contour> - <contour> - <pt x="542" y="-421" on="1"/> - <pt x="542" y="-336" on="1"/> - <pt x="599" y="-345" on="0"/> - <pt x="639" y="-345" on="1"/> - <pt x="748" y="-345" on="0"/> - <pt x="748" y="-278" on="1"/> - <pt x="748" y="-205" on="0"/> - <pt x="591" y="-188" on="1"/> - <pt x="591" y="-111" on="1"/> - <pt x="725" y="-114" on="0"/> - <pt x="791" y="-143" on="1"/> - <pt x="884" y="-185" on="0"/> - <pt x="884" y="-280" on="1"/> - <pt x="884" y="-432" on="0"/> - <pt x="666" y="-432" on="1"/> - <pt x="607" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 113 values pushed */ - 0 0 34 32 45 48 200 25 24 14 3 3 19 3 22 21 16 15 2 1 6 19 0 3 39 - 38 32 31 4 13 45 0 0 0 30 29 4 3 6 3 5 1 4 48 200 20 19 1 23 18 - 17 0 3 2 0 6 5 0 14 0 0 36 20 43 27 39 10 48 200 39 38 32 31 29 25 - 23 22 19 18 17 16 15 14 6 15 13 43 10 20 5 4 1 0 4 13 2 0 0 30 24 - 21 20 10 3 2 1 4 48 200 3 2 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="S" xMin="151" yMin="-37" xMax="1091" yMax="1517"> - <contour> - <pt x="151" y="61" on="1"/> - <pt x="151" y="419" on="1"/> - <pt x="275" y="419" on="1"/> - <pt x="299" y="185" on="1"/> - <pt x="486" y="86" on="0"/> - <pt x="610" y="86" on="1"/> - <pt x="737" y="86" on="0"/> - <pt x="816" y="165" on="1"/> - <pt x="895" y="243" on="0"/> - <pt x="895" y="365" on="1"/> - <pt x="895" y="522" on="0"/> - <pt x="695" y="626" on="1"/> - <pt x="505" y="725" on="1"/> - <pt x="316" y="823" on="0"/> - <pt x="249" y="906" on="1"/> - <pt x="183" y="986" on="0"/> - <pt x="183" y="1123" on="1"/> - <pt x="183" y="1517" on="0"/> - <pt x="631" y="1517" on="1"/> - <pt x="814" y="1517" on="0"/> - <pt x="1006" y="1444" on="1"/> - <pt x="1006" y="1086" on="1"/> - <pt x="883" y="1086" on="1"/> - <pt x="858" y="1320" on="1"/> - <pt x="733" y="1394" on="0"/> - <pt x="616" y="1394" on="1"/> - <pt x="375" y="1394" on="0"/> - <pt x="375" y="1148" on="1"/> - <pt x="375" y="1047" on="0"/> - <pt x="431" y="999" on="1"/> - <pt x="480" y="957" on="0"/> - <pt x="606" y="889" on="1"/> - <pt x="775" y="798" on="1"/> - <pt x="970" y="693" on="0"/> - <pt x="1030" y="620" on="1"/> - <pt x="1091" y="546" on="0"/> - <pt x="1091" y="413" on="1"/> - <pt x="1091" y="209" on="0"/> - <pt x="957" y="86" on="1"/> - <pt x="822" y="-37" on="0"/> - <pt x="598" y="-37" on="1"/> - <pt x="393" y="-37" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 61 values pushed */ - 0 0 25 5 18 5 5 40 48 200 40 2 18 0 1 1 23 22 21 20 3 2 1 0 8 - 0 2 3 0 0 14 0 0 27 19 16 9 28 36 48 200 16 23 22 16 3 2 5 20 0 - 3 36 20 21 20 1 1 0 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Sacute" xMin="151" yMin="-37" xMax="1091" yMax="1925"> - <contour> - <pt x="151" y="61" on="1"/> - <pt x="151" y="419" on="1"/> - <pt x="275" y="419" on="1"/> - <pt x="299" y="185" on="1"/> - <pt x="486" y="86" on="0"/> - <pt x="610" y="86" on="1"/> - <pt x="737" y="86" on="0"/> - <pt x="816" y="165" on="1"/> - <pt x="895" y="243" on="0"/> - <pt x="895" y="365" on="1"/> - <pt x="895" y="522" on="0"/> - <pt x="695" y="626" on="1"/> - <pt x="505" y="725" on="1"/> - <pt x="316" y="823" on="0"/> - <pt x="249" y="906" on="1"/> - <pt x="183" y="986" on="0"/> - <pt x="183" y="1123" on="1"/> - <pt x="183" y="1517" on="0"/> - <pt x="631" y="1517" on="1"/> - <pt x="814" y="1517" on="0"/> - <pt x="1006" y="1444" on="1"/> - <pt x="1006" y="1086" on="1"/> - <pt x="883" y="1086" on="1"/> - <pt x="858" y="1320" on="1"/> - <pt x="733" y="1394" on="0"/> - <pt x="616" y="1394" on="1"/> - <pt x="375" y="1394" on="0"/> - <pt x="375" y="1148" on="1"/> - <pt x="375" y="1047" on="0"/> - <pt x="431" y="999" on="1"/> - <pt x="480" y="957" on="0"/> - <pt x="606" y="889" on="1"/> - <pt x="775" y="798" on="1"/> - <pt x="970" y="693" on="0"/> - <pt x="1030" y="620" on="1"/> - <pt x="1091" y="546" on="0"/> - <pt x="1091" y="413" on="1"/> - <pt x="1091" y="209" on="0"/> - <pt x="957" y="86" on="1"/> - <pt x="822" y="-37" on="0"/> - <pt x="598" y="-37" on="1"/> - <pt x="393" y="-37" on="0"/> - </contour> - <contour> - <pt x="509" y="1604" on="1"/> - <pt x="725" y="1925" on="1"/> - <pt x="953" y="1925" on="1"/> - <pt x="632" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 77 values pushed */ - 0 0 25 5 18 5 5 40 48 200 40 2 18 0 1 45 42 2 43 0 3 0 1 1 23 - 22 21 20 3 2 1 0 8 0 2 3 0 0 44 43 1 0 14 0 0 27 19 16 9 28 - 36 48 200 16 45 44 43 42 23 22 16 3 2 9 20 0 3 36 20 21 20 1 1 0 1 - 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Scaron" xMin="151" yMin="-37" xMax="1091" yMax="1925"> - <contour> - <pt x="151" y="61" on="1"/> - <pt x="151" y="419" on="1"/> - <pt x="275" y="419" on="1"/> - <pt x="299" y="185" on="1"/> - <pt x="486" y="86" on="0"/> - <pt x="610" y="86" on="1"/> - <pt x="737" y="86" on="0"/> - <pt x="816" y="165" on="1"/> - <pt x="895" y="243" on="0"/> - <pt x="895" y="365" on="1"/> - <pt x="895" y="522" on="0"/> - <pt x="695" y="626" on="1"/> - <pt x="505" y="725" on="1"/> - <pt x="316" y="823" on="0"/> - <pt x="249" y="906" on="1"/> - <pt x="183" y="986" on="0"/> - <pt x="183" y="1123" on="1"/> - <pt x="183" y="1517" on="0"/> - <pt x="631" y="1517" on="1"/> - <pt x="814" y="1517" on="0"/> - <pt x="1006" y="1444" on="1"/> - <pt x="1006" y="1086" on="1"/> - <pt x="883" y="1086" on="1"/> - <pt x="858" y="1320" on="1"/> - <pt x="733" y="1394" on="0"/> - <pt x="616" y="1394" on="1"/> - <pt x="375" y="1394" on="0"/> - <pt x="375" y="1148" on="1"/> - <pt x="375" y="1047" on="0"/> - <pt x="431" y="999" on="1"/> - <pt x="480" y="957" on="0"/> - <pt x="606" y="889" on="1"/> - <pt x="775" y="798" on="1"/> - <pt x="970" y="693" on="0"/> - <pt x="1030" y="620" on="1"/> - <pt x="1091" y="546" on="0"/> - <pt x="1091" y="413" on="1"/> - <pt x="1091" y="209" on="0"/> - <pt x="957" y="86" on="1"/> - <pt x="822" y="-37" on="0"/> - <pt x="598" y="-37" on="1"/> - <pt x="393" y="-37" on="0"/> - </contour> - <contour> - <pt x="999" y="1925" on="1"/> - <pt x="742" y="1604" on="1"/> - <pt x="524" y="1604" on="1"/> - <pt x="267" y="1925" on="1"/> - <pt x="391" y="1925" on="1"/> - <pt x="632" y="1723" on="1"/> - <pt x="634" y="1723" on="1"/> - <pt x="876" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 82 values pushed */ - 0 0 25 5 18 5 5 40 48 200 40 2 18 0 1 1 23 22 21 20 3 2 1 0 8 - 0 2 3 0 0 49 48 47 46 45 42 6 13 43 44 43 1 0 14 0 0 27 19 16 9 - 28 36 48 200 16 49 48 47 46 45 44 43 42 23 22 16 3 2 13 20 0 3 36 20 21 - 20 1 1 0 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Scedilla" xMin="151" yMin="-432" xMax="1091" yMax="1517"> - <contour> - <pt x="151" y="61" on="1"/> - <pt x="151" y="419" on="1"/> - <pt x="275" y="419" on="1"/> - <pt x="299" y="185" on="1"/> - <pt x="486" y="86" on="0"/> - <pt x="610" y="86" on="1"/> - <pt x="737" y="86" on="0"/> - <pt x="816" y="165" on="1"/> - <pt x="895" y="243" on="0"/> - <pt x="895" y="365" on="1"/> - <pt x="895" y="522" on="0"/> - <pt x="695" y="626" on="1"/> - <pt x="505" y="725" on="1"/> - <pt x="316" y="823" on="0"/> - <pt x="249" y="906" on="1"/> - <pt x="183" y="986" on="0"/> - <pt x="183" y="1123" on="1"/> - <pt x="183" y="1517" on="0"/> - <pt x="632" y="1517" on="1"/> - <pt x="814" y="1517" on="0"/> - <pt x="1006" y="1444" on="1"/> - <pt x="1006" y="1086" on="1"/> - <pt x="883" y="1086" on="1"/> - <pt x="858" y="1320" on="1"/> - <pt x="733" y="1394" on="0"/> - <pt x="616" y="1394" on="1"/> - <pt x="375" y="1394" on="0"/> - <pt x="375" y="1148" on="1"/> - <pt x="375" y="1047" on="0"/> - <pt x="431" y="999" on="1"/> - <pt x="480" y="957" on="0"/> - <pt x="606" y="889" on="1"/> - <pt x="775" y="798" on="1"/> - <pt x="970" y="693" on="0"/> - <pt x="1030" y="620" on="1"/> - <pt x="1091" y="546" on="0"/> - <pt x="1091" y="413" on="1"/> - <pt x="1091" y="209" on="0"/> - <pt x="957" y="86" on="1"/> - <pt x="823" y="-37" on="0"/> - <pt x="598" y="-37" on="1"/> - <pt x="393" y="-37" on="0"/> - </contour> - <contour> - <pt x="554" y="0" on="1"/> - <pt x="651" y="0" on="1"/> - <pt x="591" y="-109" on="1"/> - <pt x="663" y="-111" on="0"/> - <pt x="715" y="-148" on="1"/> - <pt x="785" y="-197" on="0"/> - <pt x="785" y="-269" on="1"/> - <pt x="785" y="-337" on="0"/> - <pt x="726" y="-384" on="1"/> - <pt x="668" y="-432" on="0"/> - <pt x="581" y="-432" on="1"/> - <pt x="514" y="-432" on="0"/> - <pt x="438" y="-411" on="1"/> - <pt x="438" y="-330" on="1"/> - <pt x="488" y="-345" on="0"/> - <pt x="542" y="-345" on="1"/> - <pt x="646" y="-345" on="0"/> - <pt x="646" y="-271" on="1"/> - <pt x="646" y="-178" on="0"/> - <pt x="459" y="-175" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 87 values pushed */ - 0 0 57 32 52 25 5 18 5 5 40 48 200 40 2 18 0 1 1 23 22 21 20 3 2 - 1 0 8 0 2 3 0 0 1 61 55 54 44 43 42 6 13 52 2 0 14 0 0 59 20 - 48 27 19 16 9 28 36 48 200 48 16 61 55 54 48 44 43 42 23 22 16 3 2 12 20 - 0 3 36 20 21 20 1 1 0 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Scircumflex" xMin="151" yMin="-37" xMax="1091" yMax="1925"> - <contour> - <pt x="151" y="61" on="1"/> - <pt x="151" y="419" on="1"/> - <pt x="275" y="419" on="1"/> - <pt x="299" y="185" on="1"/> - <pt x="486" y="86" on="0"/> - <pt x="610" y="86" on="1"/> - <pt x="737" y="86" on="0"/> - <pt x="816" y="165" on="1"/> - <pt x="895" y="243" on="0"/> - <pt x="895" y="365" on="1"/> - <pt x="895" y="522" on="0"/> - <pt x="695" y="626" on="1"/> - <pt x="505" y="725" on="1"/> - <pt x="316" y="823" on="0"/> - <pt x="249" y="906" on="1"/> - <pt x="183" y="986" on="0"/> - <pt x="183" y="1123" on="1"/> - <pt x="183" y="1517" on="0"/> - <pt x="631" y="1517" on="1"/> - <pt x="814" y="1517" on="0"/> - <pt x="1006" y="1444" on="1"/> - <pt x="1006" y="1086" on="1"/> - <pt x="883" y="1086" on="1"/> - <pt x="858" y="1320" on="1"/> - <pt x="733" y="1394" on="0"/> - <pt x="616" y="1394" on="1"/> - <pt x="375" y="1394" on="0"/> - <pt x="375" y="1148" on="1"/> - <pt x="375" y="1047" on="0"/> - <pt x="431" y="999" on="1"/> - <pt x="480" y="957" on="0"/> - <pt x="606" y="889" on="1"/> - <pt x="775" y="798" on="1"/> - <pt x="970" y="693" on="0"/> - <pt x="1030" y="620" on="1"/> - <pt x="1091" y="546" on="0"/> - <pt x="1091" y="413" on="1"/> - <pt x="1091" y="209" on="0"/> - <pt x="957" y="86" on="1"/> - <pt x="822" y="-37" on="0"/> - <pt x="598" y="-37" on="1"/> - <pt x="393" y="-37" on="0"/> - </contour> - <contour> - <pt x="267" y="1604" on="1"/> - <pt x="523" y="1925" on="1"/> - <pt x="742" y="1925" on="1"/> - <pt x="998" y="1604" on="1"/> - <pt x="875" y="1604" on="1"/> - <pt x="634" y="1806" on="1"/> - <pt x="631" y="1806" on="1"/> - <pt x="390" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 85 values pushed */ - 0 0 25 5 18 5 5 40 48 200 40 2 18 0 1 49 48 47 46 45 42 6 43 0 3 - 0 1 1 23 22 21 20 3 2 1 0 8 0 2 3 0 0 44 43 1 0 14 0 0 27 - 19 16 9 28 36 48 200 16 49 48 47 46 45 44 43 42 23 22 16 3 2 13 20 0 3 - 36 20 21 20 1 1 0 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Scommaaccent" xMin="151" yMin="-432" xMax="1091" yMax="1517"> - <contour> - <pt x="151" y="61" on="1"/> - <pt x="151" y="419" on="1"/> - <pt x="275" y="419" on="1"/> - <pt x="299" y="185" on="1"/> - <pt x="486" y="86" on="0"/> - <pt x="610" y="86" on="1"/> - <pt x="737" y="86" on="0"/> - <pt x="816" y="165" on="1"/> - <pt x="895" y="243" on="0"/> - <pt x="895" y="365" on="1"/> - <pt x="895" y="522" on="0"/> - <pt x="695" y="626" on="1"/> - <pt x="505" y="725" on="1"/> - <pt x="316" y="823" on="0"/> - <pt x="249" y="906" on="1"/> - <pt x="183" y="986" on="0"/> - <pt x="183" y="1123" on="1"/> - <pt x="183" y="1517" on="0"/> - <pt x="632" y="1517" on="1"/> - <pt x="814" y="1517" on="0"/> - <pt x="1006" y="1444" on="1"/> - <pt x="1006" y="1086" on="1"/> - <pt x="883" y="1086" on="1"/> - <pt x="858" y="1320" on="1"/> - <pt x="733" y="1394" on="0"/> - <pt x="616" y="1394" on="1"/> - <pt x="375" y="1394" on="0"/> - <pt x="375" y="1148" on="1"/> - <pt x="375" y="1047" on="0"/> - <pt x="431" y="999" on="1"/> - <pt x="480" y="957" on="0"/> - <pt x="606" y="889" on="1"/> - <pt x="775" y="798" on="1"/> - <pt x="970" y="693" on="0"/> - <pt x="1030" y="620" on="1"/> - <pt x="1091" y="546" on="0"/> - <pt x="1091" y="413" on="1"/> - <pt x="1091" y="209" on="0"/> - <pt x="957" y="86" on="1"/> - <pt x="823" y="-37" on="0"/> - <pt x="598" y="-37" on="1"/> - <pt x="393" y="-37" on="0"/> - </contour> - <contour> - <pt x="484" y="-421" on="1"/> - <pt x="484" y="-336" on="1"/> - <pt x="541" y="-345" on="0"/> - <pt x="581" y="-345" on="1"/> - <pt x="690" y="-345" on="0"/> - <pt x="690" y="-278" on="1"/> - <pt x="690" y="-205" on="0"/> - <pt x="533" y="-188" on="1"/> - <pt x="533" y="-111" on="1"/> - <pt x="667" y="-114" on="0"/> - <pt x="733" y="-143" on="1"/> - <pt x="826" y="-185" on="0"/> - <pt x="826" y="-280" on="1"/> - <pt x="826" y="-432" on="0"/> - <pt x="608" y="-432" on="1"/> - <pt x="550" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 83 values pushed */ - 0 0 45 32 56 25 5 18 5 5 40 48 200 40 2 18 0 1 1 23 22 21 20 3 2 - 1 0 8 0 2 3 0 0 1 50 49 43 42 4 13 56 2 0 14 0 0 47 20 54 27 - 19 16 9 28 36 48 200 54 16 54 50 49 43 42 23 22 16 3 2 10 20 0 3 36 20 - 21 20 1 1 0 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="T" xMin="62" yMin="0" xMax="1168" yMax="1480"> - <contour> - <pt x="257" y="0" on="1"/> - <pt x="257" y="123" on="1"/> - <pt x="516" y="123" on="1"/> - <pt x="516" y="1357" on="1"/> - <pt x="185" y="1357" on="1"/> - <pt x="185" y="1086" on="1"/> - <pt x="62" y="1086" on="1"/> - <pt x="62" y="1480" on="1"/> - <pt x="1168" y="1480" on="1"/> - <pt x="1168" y="1086" on="1"/> - <pt x="1044" y="1086" on="1"/> - <pt x="1044" y="1357" on="1"/> - <pt x="714" y="1357" on="1"/> - <pt x="714" y="123" on="1"/> - <pt x="973" y="123" on="1"/> - <pt x="973" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 80 values pushed */ - 10 9 6 5 4 3 1 3 0 0 12 11 4 3 6 3 7 14 13 2 1 6 3 0 2 - 4 48 200 15 0 1 0 8 7 0 14 15 14 2 10 12 3 1 0 2 2 4 3 0 0 - 11 10 6 1 8 13 12 10 1 2 5 4 6 1 6 3 4 48 200 9 8 1 3 2 1 - 7 6 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Tbar" xMin="62" yMin="0" xMax="1168" yMax="1480"> - <contour> - <pt x="257" y="0" on="1"/> - <pt x="257" y="123" on="1"/> - <pt x="516" y="123" on="1"/> - <pt x="516" y="716" on="1"/> - <pt x="220" y="716" on="1"/> - <pt x="220" y="814" on="1"/> - <pt x="516" y="814" on="1"/> - <pt x="516" y="1357" on="1"/> - <pt x="185" y="1357" on="1"/> - <pt x="185" y="1086" on="1"/> - <pt x="62" y="1086" on="1"/> - <pt x="62" y="1480" on="1"/> - <pt x="1168" y="1480" on="1"/> - <pt x="1168" y="1086" on="1"/> - <pt x="1044" y="1086" on="1"/> - <pt x="1044" y="1357" on="1"/> - <pt x="714" y="1357" on="1"/> - <pt x="714" y="814" on="1"/> - <pt x="1010" y="814" on="1"/> - <pt x="1010" y="716" on="1"/> - <pt x="714" y="716" on="1"/> - <pt x="714" y="123" on="1"/> - <pt x="973" y="123" on="1"/> - <pt x="973" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 101 values pushed */ - 14 13 10 9 4 7 5 3 0 0 16 15 8 7 6 3 11 20 19 4 3 33 3 5 22 - 21 2 1 6 3 0 3 4 48 200 18 17 6 5 3 23 0 1 2 0 12 11 0 14 23 - 22 19 18 4 14 16 3 5 4 1 0 4 2 8 3 0 0 15 14 6 1 12 21 20 17 - 16 10 3 2 9 8 6 1 10 3 4 48 200 13 12 1 7 6 3 2 3 11 10 1 3 - 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Tcaron" xMin="62" yMin="0" xMax="1168" yMax="1925"> - <contour> - <pt x="257" y="0" on="1"/> - <pt x="257" y="123" on="1"/> - <pt x="516" y="123" on="1"/> - <pt x="516" y="1357" on="1"/> - <pt x="185" y="1357" on="1"/> - <pt x="185" y="1086" on="1"/> - <pt x="62" y="1086" on="1"/> - <pt x="62" y="1480" on="1"/> - <pt x="1168" y="1480" on="1"/> - <pt x="1168" y="1086" on="1"/> - <pt x="1044" y="1086" on="1"/> - <pt x="1044" y="1357" on="1"/> - <pt x="714" y="1357" on="1"/> - <pt x="714" y="123" on="1"/> - <pt x="973" y="123" on="1"/> - <pt x="973" y="0" on="1"/> - </contour> - <contour> - <pt x="981" y="1925" on="1"/> - <pt x="724" y="1604" on="1"/> - <pt x="506" y="1604" on="1"/> - <pt x="249" y="1925" on="1"/> - <pt x="373" y="1925" on="1"/> - <pt x="614" y="1723" on="1"/> - <pt x="616" y="1723" on="1"/> - <pt x="858" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 105 values pushed */ - 10 9 6 5 4 3 1 3 23 22 21 20 19 16 6 13 17 0 0 12 11 4 3 6 3 - 7 14 13 2 1 6 3 0 2 4 48 200 18 17 1 15 0 1 2 0 8 7 0 14 23 - 17 16 15 14 5 10 12 3 22 21 2 12 2 3 20 19 18 1 0 5 2 4 3 0 0 - 11 10 6 1 8 13 12 10 1 2 5 4 6 1 6 3 4 48 200 9 8 1 3 2 1 - 7 6 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Tcommaaccent" xMin="62" yMin="-432" xMax="1168" yMax="1480"> - <contour> - <pt x="257" y="0" on="1"/> - <pt x="257" y="123" on="1"/> - <pt x="516" y="123" on="1"/> - <pt x="516" y="1357" on="1"/> - <pt x="185" y="1357" on="1"/> - <pt x="185" y="1086" on="1"/> - <pt x="62" y="1086" on="1"/> - <pt x="62" y="1480" on="1"/> - <pt x="1168" y="1480" on="1"/> - <pt x="1168" y="1086" on="1"/> - <pt x="1044" y="1086" on="1"/> - <pt x="1044" y="1357" on="1"/> - <pt x="714" y="1357" on="1"/> - <pt x="714" y="123" on="1"/> - <pt x="973" y="123" on="1"/> - <pt x="973" y="0" on="1"/> - </contour> - <contour> - <pt x="592" y="0" on="1"/> - <pt x="689" y="0" on="1"/> - <pt x="629" y="-109" on="1"/> - <pt x="701" y="-111" on="0"/> - <pt x="753" y="-148" on="1"/> - <pt x="823" y="-197" on="0"/> - <pt x="823" y="-269" on="1"/> - <pt x="823" y="-337" on="0"/> - <pt x="764" y="-384" on="1"/> - <pt x="705" y="-432" on="0"/> - <pt x="620" y="-432" on="1"/> - <pt x="552" y="-432" on="0"/> - <pt x="476" y="-411" on="1"/> - <pt x="476" y="-330" on="1"/> - <pt x="526" y="-345" on="0"/> - <pt x="580" y="-345" on="1"/> - <pt x="684" y="-345" on="0"/> - <pt x="684" y="-271" on="1"/> - <pt x="684" y="-178" on="0"/> - <pt x="497" y="-175" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 116 values pushed */ - 0 0 31 32 26 48 200 10 9 6 5 4 3 1 3 35 29 28 18 4 13 26 0 0 0 - 12 11 4 3 6 3 7 14 13 2 1 6 3 0 2 4 48 200 17 16 15 0 3 0 8 - 7 0 14 0 0 33 20 22 48 200 22 22 15 14 3 10 12 3 18 17 16 3 12 2 3 - 35 29 28 1 0 5 2 4 3 0 0 11 10 6 1 8 13 12 10 1 2 5 4 6 1 - 6 3 4 48 200 9 8 1 3 2 1 7 6 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Tcommabelow" xMin="62" yMin="-432" xMax="1168" yMax="1480"> - <contour> - <pt x="257" y="0" on="1"/> - <pt x="257" y="123" on="1"/> - <pt x="516" y="123" on="1"/> - <pt x="516" y="1357" on="1"/> - <pt x="185" y="1357" on="1"/> - <pt x="185" y="1086" on="1"/> - <pt x="62" y="1086" on="1"/> - <pt x="62" y="1480" on="1"/> - <pt x="1168" y="1480" on="1"/> - <pt x="1168" y="1086" on="1"/> - <pt x="1044" y="1086" on="1"/> - <pt x="1044" y="1357" on="1"/> - <pt x="714" y="1357" on="1"/> - <pt x="714" y="123" on="1"/> - <pt x="973" y="123" on="1"/> - <pt x="973" y="0" on="1"/> - </contour> - <contour> - <pt x="472" y="-421" on="1"/> - <pt x="472" y="-336" on="1"/> - <pt x="529" y="-345" on="0"/> - <pt x="569" y="-345" on="1"/> - <pt x="678" y="-345" on="0"/> - <pt x="678" y="-278" on="1"/> - <pt x="678" y="-205" on="0"/> - <pt x="521" y="-188" on="1"/> - <pt x="521" y="-111" on="1"/> - <pt x="655" y="-114" on="0"/> - <pt x="721" y="-143" on="1"/> - <pt x="814" y="-185" on="0"/> - <pt x="814" y="-280" on="1"/> - <pt x="814" y="-432" on="0"/> - <pt x="596" y="-432" on="1"/> - <pt x="538" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 112 values pushed */ - 0 0 19 32 30 48 200 10 9 6 5 4 3 1 3 24 23 17 16 4 13 30 0 0 0 - 12 11 4 3 6 3 7 14 13 2 1 6 3 0 2 4 48 200 15 0 1 0 8 7 0 - 14 0 0 21 20 28 48 200 28 28 15 14 3 10 12 3 24 23 2 12 2 3 17 16 1 - 0 4 2 4 3 0 0 11 10 6 1 8 13 12 10 1 2 5 4 6 1 6 3 4 48 - 200 9 8 1 3 2 1 7 6 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Thorn" xMin="86" yMin="0" xMax="1124" yMax="1480"> - <contour> - <pt x="481" y="1191" on="1"/> - <pt x="670" y="1191" on="1"/> - <pt x="1124" y="1191" on="0"/> - <pt x="1124" y="829" on="1"/> - <pt x="1124" y="588" on="0"/> - <pt x="955" y="449" on="1"/> - <pt x="787" y="309" on="0"/> - <pt x="492" y="309" on="1"/> - <pt x="481" y="309" on="1"/> - <pt x="481" y="123" on="1"/> - <pt x="678" y="123" on="1"/> - <pt x="678" y="0" on="1"/> - <pt x="86" y="0" on="1"/> - <pt x="86" y="123" on="1"/> - <pt x="283" y="123" on="1"/> - <pt x="283" y="1357" on="1"/> - <pt x="86" y="1357" on="1"/> - <pt x="86" y="1480" on="1"/> - <pt x="678" y="1480" on="1"/> - <pt x="678" y="1357" on="1"/> - <pt x="481" y="1357" on="1"/> - </contour> - <contour> - <pt x="481" y="432" on="1"/> - <pt x="493" y="432" on="1"/> - <pt x="694" y="432" on="0"/> - <pt x="804" y="528" on="1"/> - <pt x="914" y="623" on="0"/> - <pt x="914" y="796" on="1"/> - <pt x="914" y="1067" on="0"/> - <pt x="592" y="1067" on="1"/> - <pt x="481" y="1067" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 87 values pushed */ - 29 28 22 21 8 7 6 0 9 3 0 0 20 19 16 15 6 3 17 14 13 10 9 6 3 - 11 2 4 48 200 1 0 1 12 11 1 2 0 18 17 0 14 0 0 26 39 3 48 200 28 - 22 19 18 11 10 7 1 8 13 3 0 17 16 13 12 4 13 14 0 0 29 21 20 9 8 - 0 10 5 14 1 4 48 200 15 14 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="U" xMin="62" yMin="-37" xMax="1168" yMax="1480"> - <contour> - <pt x="185" y="1357" on="1"/> - <pt x="62" y="1357" on="1"/> - <pt x="62" y="1480" on="1"/> - <pt x="519" y="1480" on="1"/> - <pt x="519" y="1357" on="1"/> - <pt x="383" y="1357" on="1"/> - <pt x="383" y="523" on="1"/> - <pt x="383" y="313" on="0"/> - <pt x="455" y="200" on="1"/> - <pt x="526" y="86" on="0"/> - <pt x="656" y="86" on="1"/> - <pt x="921" y="86" on="0"/> - <pt x="921" y="532" on="1"/> - <pt x="921" y="1357" on="1"/> - <pt x="785" y="1357" on="1"/> - <pt x="785" y="1480" on="1"/> - <pt x="1168" y="1480" on="1"/> - <pt x="1168" y="1357" on="1"/> - <pt x="1044" y="1357" on="1"/> - <pt x="1044" y="496" on="1"/> - <pt x="1044" y="244" on="0"/> - <pt x="933" y="104" on="1"/> - <pt x="823" y="-37" on="0"/> - <pt x="621" y="-37" on="1"/> - <pt x="185" y="-37" on="0"/> - <pt x="185" y="550" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 74 values pushed */ - 0 0 10 5 23 48 200 23 2 1 25 19 18 17 14 13 12 6 5 4 1 0 12 2 2 - 3 0 16 15 3 2 0 3 14 15 14 4 3 4 12 5 3 17 16 2 13 18 2 1 0 - 0 0 13 12 6 1 18 6 5 10 1 0 2 4 48 200 19 18 1 25 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Uacute" xMin="62" yMin="-37" xMax="1168" yMax="1925"> - <contour> - <pt x="185" y="1357" on="1"/> - <pt x="62" y="1357" on="1"/> - <pt x="62" y="1480" on="1"/> - <pt x="519" y="1480" on="1"/> - <pt x="519" y="1357" on="1"/> - <pt x="383" y="1357" on="1"/> - <pt x="383" y="523" on="1"/> - <pt x="383" y="313" on="0"/> - <pt x="455" y="200" on="1"/> - <pt x="526" y="86" on="0"/> - <pt x="656" y="86" on="1"/> - <pt x="921" y="86" on="0"/> - <pt x="921" y="532" on="1"/> - <pt x="921" y="1357" on="1"/> - <pt x="785" y="1357" on="1"/> - <pt x="785" y="1480" on="1"/> - <pt x="1168" y="1480" on="1"/> - <pt x="1168" y="1357" on="1"/> - <pt x="1044" y="1357" on="1"/> - <pt x="1044" y="496" on="1"/> - <pt x="1044" y="244" on="0"/> - <pt x="933" y="104" on="1"/> - <pt x="823" y="-37" on="0"/> - <pt x="621" y="-37" on="1"/> - <pt x="185" y="-37" on="0"/> - <pt x="185" y="550" on="1"/> - </contour> - <contour> - <pt x="528" y="1604" on="1"/> - <pt x="744" y="1925" on="1"/> - <pt x="972" y="1925" on="1"/> - <pt x="651" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 91 values pushed */ - 0 0 10 5 23 48 200 23 2 29 26 2 27 2 3 1 25 19 18 17 14 13 12 6 5 - 4 1 0 12 2 2 3 0 28 27 1 0 16 15 3 2 0 3 14 28 18 12 2 29 27 - 26 15 14 4 3 7 12 5 3 17 16 2 13 18 2 1 0 0 0 13 12 6 1 18 6 - 5 10 1 0 2 4 48 200 19 18 1 25 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ubreve" xMin="62" yMin="-37" xMax="1168" yMax="1925"> - <contour> - <pt x="185" y="1357" on="1"/> - <pt x="62" y="1357" on="1"/> - <pt x="62" y="1480" on="1"/> - <pt x="519" y="1480" on="1"/> - <pt x="519" y="1357" on="1"/> - <pt x="383" y="1357" on="1"/> - <pt x="383" y="523" on="1"/> - <pt x="383" y="313" on="0"/> - <pt x="455" y="200" on="1"/> - <pt x="526" y="86" on="0"/> - <pt x="656" y="86" on="1"/> - <pt x="921" y="86" on="0"/> - <pt x="921" y="532" on="1"/> - <pt x="921" y="1357" on="1"/> - <pt x="785" y="1357" on="1"/> - <pt x="785" y="1480" on="1"/> - <pt x="1168" y="1480" on="1"/> - <pt x="1168" y="1357" on="1"/> - <pt x="1044" y="1357" on="1"/> - <pt x="1044" y="496" on="1"/> - <pt x="1044" y="244" on="0"/> - <pt x="933" y="104" on="1"/> - <pt x="823" y="-37" on="0"/> - <pt x="621" y="-37" on="1"/> - <pt x="185" y="-37" on="0"/> - <pt x="185" y="550" on="1"/> - </contour> - <contour> - <pt x="306" y="1925" on="1"/> - <pt x="429" y="1925" on="1"/> - <pt x="477" y="1777" on="0"/> - <pt x="651" y="1777" on="1"/> - <pt x="826" y="1777" on="0"/> - <pt x="874" y="1925" on="1"/> - <pt x="997" y="1925" on="1"/> - <pt x="974" y="1836" on="0"/> - <pt x="948" y="1790" on="1"/> - <pt x="857" y="1635" on="0"/> - <pt x="655" y="1635" on="1"/> - <pt x="503" y="1635" on="0"/> - <pt x="414" y="1716" on="1"/> - <pt x="359" y="1765" on="0"/> - <pt x="331" y="1837" on="1"/> - <pt x="320" y="1866" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 95 values pushed */ - 0 0 29 14 36 10 5 23 48 200 23 2 1 25 19 18 17 14 13 12 6 5 4 1 0 - 12 2 2 3 0 32 31 27 26 4 13 36 2 16 15 3 2 0 3 14 32 18 12 2 31 - 27 15 14 4 3 6 12 5 3 26 5 0 2 17 16 2 13 18 2 1 0 0 0 13 12 - 6 1 18 6 5 10 1 0 2 4 48 200 19 18 1 25 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ucircumflex" xMin="62" yMin="-37" xMax="1168" yMax="1925"> - <contour> - <pt x="185" y="1357" on="1"/> - <pt x="62" y="1357" on="1"/> - <pt x="62" y="1480" on="1"/> - <pt x="519" y="1480" on="1"/> - <pt x="519" y="1357" on="1"/> - <pt x="383" y="1357" on="1"/> - <pt x="383" y="523" on="1"/> - <pt x="383" y="313" on="0"/> - <pt x="455" y="200" on="1"/> - <pt x="526" y="86" on="0"/> - <pt x="656" y="86" on="1"/> - <pt x="921" y="86" on="0"/> - <pt x="921" y="532" on="1"/> - <pt x="921" y="1357" on="1"/> - <pt x="785" y="1357" on="1"/> - <pt x="785" y="1480" on="1"/> - <pt x="1168" y="1480" on="1"/> - <pt x="1168" y="1357" on="1"/> - <pt x="1044" y="1357" on="1"/> - <pt x="1044" y="496" on="1"/> - <pt x="1044" y="244" on="0"/> - <pt x="933" y="104" on="1"/> - <pt x="823" y="-37" on="0"/> - <pt x="621" y="-37" on="1"/> - <pt x="185" y="-37" on="0"/> - <pt x="185" y="550" on="1"/> - </contour> - <contour> - <pt x="286" y="1604" on="1"/> - <pt x="542" y="1925" on="1"/> - <pt x="761" y="1925" on="1"/> - <pt x="1017" y="1604" on="1"/> - <pt x="894" y="1604" on="1"/> - <pt x="653" y="1806" on="1"/> - <pt x="650" y="1806" on="1"/> - <pt x="409" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 102 values pushed */ - 0 0 10 5 23 48 200 23 2 33 32 31 30 29 26 6 27 2 3 1 25 19 18 17 14 - 13 12 6 5 4 1 0 12 2 2 3 0 28 27 1 0 16 15 3 2 0 3 14 29 18 - 12 2 33 32 31 30 28 27 15 14 4 3 10 12 5 3 26 5 0 2 17 16 2 13 18 - 2 1 0 0 0 13 12 6 1 18 6 5 10 1 0 2 4 48 200 19 18 1 25 0 1 - 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Udieresis" xMin="62" yMin="-37" xMax="1168" yMax="1801"> - <contour> - <pt x="185" y="1357" on="1"/> - <pt x="62" y="1357" on="1"/> - <pt x="62" y="1480" on="1"/> - <pt x="519" y="1480" on="1"/> - <pt x="519" y="1357" on="1"/> - <pt x="383" y="1357" on="1"/> - <pt x="383" y="523" on="1"/> - <pt x="383" y="313" on="0"/> - <pt x="455" y="200" on="1"/> - <pt x="526" y="86" on="0"/> - <pt x="656" y="86" on="1"/> - <pt x="921" y="86" on="0"/> - <pt x="921" y="532" on="1"/> - <pt x="921" y="1357" on="1"/> - <pt x="785" y="1357" on="1"/> - <pt x="785" y="1480" on="1"/> - <pt x="1168" y="1480" on="1"/> - <pt x="1168" y="1357" on="1"/> - <pt x="1044" y="1357" on="1"/> - <pt x="1044" y="496" on="1"/> - <pt x="1044" y="244" on="0"/> - <pt x="933" y="104" on="1"/> - <pt x="823" y="-37" on="0"/> - <pt x="621" y="-37" on="1"/> - <pt x="185" y="-37" on="0"/> - <pt x="185" y="550" on="1"/> - </contour> - <contour> - <pt x="319" y="1604" on="1"/> - <pt x="319" y="1801" on="1"/> - <pt x="516" y="1801" on="1"/> - <pt x="516" y="1604" on="1"/> - </contour> - <contour> - <pt x="788" y="1604" on="1"/> - <pt x="788" y="1801" on="1"/> - <pt x="985" y="1801" on="1"/> - <pt x="985" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 109 values pushed */ - 0 0 10 5 23 48 200 23 2 1 25 19 18 17 14 13 12 6 5 4 1 0 12 2 2 - 3 0 0 0 33 30 29 26 10 3 27 1 4 48 200 32 31 28 27 3 0 16 15 3 2 - 0 3 14 15 14 4 3 4 30 28 3 17 16 2 13 18 2 1 0 0 0 31 30 10 1 - 32 29 28 10 1 26 13 12 6 1 18 6 5 10 1 0 4 4 48 200 33 32 1 27 26 - 1 19 18 1 25 0 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ugrave" xMin="62" yMin="-37" xMax="1168" yMax="1925"> - <contour> - <pt x="185" y="1357" on="1"/> - <pt x="62" y="1357" on="1"/> - <pt x="62" y="1480" on="1"/> - <pt x="519" y="1480" on="1"/> - <pt x="519" y="1357" on="1"/> - <pt x="383" y="1357" on="1"/> - <pt x="383" y="523" on="1"/> - <pt x="383" y="313" on="0"/> - <pt x="455" y="200" on="1"/> - <pt x="526" y="86" on="0"/> - <pt x="656" y="86" on="1"/> - <pt x="921" y="86" on="0"/> - <pt x="921" y="532" on="1"/> - <pt x="921" y="1357" on="1"/> - <pt x="785" y="1357" on="1"/> - <pt x="785" y="1480" on="1"/> - <pt x="1168" y="1480" on="1"/> - <pt x="1168" y="1357" on="1"/> - <pt x="1044" y="1357" on="1"/> - <pt x="1044" y="496" on="1"/> - <pt x="1044" y="244" on="0"/> - <pt x="933" y="104" on="1"/> - <pt x="823" y="-37" on="0"/> - <pt x="621" y="-37" on="1"/> - <pt x="185" y="-37" on="0"/> - <pt x="185" y="550" on="1"/> - </contour> - <contour> - <pt x="775" y="1604" on="1"/> - <pt x="652" y="1604" on="1"/> - <pt x="331" y="1925" on="1"/> - <pt x="559" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 91 values pushed */ - 0 0 10 5 23 48 200 23 2 27 26 2 28 2 3 1 25 19 18 17 14 13 12 6 5 - 4 1 0 12 2 2 3 0 29 28 1 0 16 15 3 2 0 3 14 29 27 26 15 14 4 - 3 7 12 5 3 28 5 0 2 17 16 2 13 18 2 1 0 0 0 13 12 6 1 18 6 - 5 10 1 0 2 4 48 200 19 18 1 25 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Uhungarumlaut" xMin="62" yMin="-37" xMax="1168" yMax="1925"> - <contour> - <pt x="185" y="1357" on="1"/> - <pt x="62" y="1357" on="1"/> - <pt x="62" y="1480" on="1"/> - <pt x="519" y="1480" on="1"/> - <pt x="519" y="1357" on="1"/> - <pt x="383" y="1357" on="1"/> - <pt x="383" y="523" on="1"/> - <pt x="383" y="313" on="0"/> - <pt x="455" y="200" on="1"/> - <pt x="526" y="86" on="0"/> - <pt x="656" y="86" on="1"/> - <pt x="921" y="86" on="0"/> - <pt x="921" y="532" on="1"/> - <pt x="921" y="1357" on="1"/> - <pt x="785" y="1357" on="1"/> - <pt x="785" y="1480" on="1"/> - <pt x="1168" y="1480" on="1"/> - <pt x="1168" y="1357" on="1"/> - <pt x="1044" y="1357" on="1"/> - <pt x="1044" y="496" on="1"/> - <pt x="1044" y="244" on="0"/> - <pt x="933" y="104" on="1"/> - <pt x="823" y="-37" on="0"/> - <pt x="621" y="-37" on="1"/> - <pt x="185" y="-37" on="0"/> - <pt x="185" y="550" on="1"/> - </contour> - <contour> - <pt x="384" y="1604" on="1"/> - <pt x="624" y="1925" on="1"/> - <pt x="816" y="1925" on="1"/> - <pt x="495" y="1604" on="1"/> - </contour> - <contour> - <pt x="735" y="1604" on="1"/> - <pt x="976" y="1925" on="1"/> - <pt x="1167" y="1925" on="1"/> - <pt x="846" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 99 values pushed */ - 0 0 10 5 23 48 200 23 2 33 30 29 26 4 27 2 3 1 25 19 18 17 14 13 12 - 6 5 4 1 0 12 2 2 3 0 32 31 28 27 3 0 16 15 3 2 0 3 14 31 18 - 12 2 33 30 29 28 27 26 15 14 4 3 10 12 5 3 32 17 16 3 13 18 2 1 0 - 0 0 13 12 6 1 18 6 5 10 1 0 2 4 48 200 19 18 1 25 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Umacron" xMin="62" yMin="-37" xMax="1168" yMax="1728"> - <contour> - <pt x="185" y="1357" on="1"/> - <pt x="62" y="1357" on="1"/> - <pt x="62" y="1480" on="1"/> - <pt x="519" y="1480" on="1"/> - <pt x="519" y="1357" on="1"/> - <pt x="383" y="1357" on="1"/> - <pt x="383" y="523" on="1"/> - <pt x="383" y="313" on="0"/> - <pt x="455" y="200" on="1"/> - <pt x="526" y="86" on="0"/> - <pt x="656" y="86" on="1"/> - <pt x="921" y="86" on="0"/> - <pt x="921" y="532" on="1"/> - <pt x="921" y="1357" on="1"/> - <pt x="785" y="1357" on="1"/> - <pt x="785" y="1480" on="1"/> - <pt x="1168" y="1480" on="1"/> - <pt x="1168" y="1357" on="1"/> - <pt x="1044" y="1357" on="1"/> - <pt x="1044" y="496" on="1"/> - <pt x="1044" y="244" on="0"/> - <pt x="933" y="104" on="1"/> - <pt x="823" y="-37" on="0"/> - <pt x="621" y="-37" on="1"/> - <pt x="185" y="-37" on="0"/> - <pt x="185" y="550" on="1"/> - </contour> - <contour> - <pt x="303" y="1604" on="1"/> - <pt x="303" y="1728" on="1"/> - <pt x="994" y="1728" on="1"/> - <pt x="994" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 101 values pushed */ - 0 0 10 5 23 48 200 23 2 1 25 19 18 17 14 13 12 6 5 4 1 0 12 2 2 - 3 0 0 0 29 26 6 1 27 1 4 48 200 28 27 1 0 16 15 3 2 0 3 14 29 - 28 2 18 12 3 15 14 4 3 4 12 5 3 27 26 2 5 0 3 17 16 2 13 18 2 - 1 0 0 0 13 12 6 1 18 6 5 10 1 0 2 4 48 200 19 18 1 25 0 1 2 - 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Unterkomma" xMin="464" yMin="-432" xMax="806" yMax="-111"> - <contour> - <pt x="464" y="-421" on="1"/> - <pt x="464" y="-336" on="1"/> - <pt x="521" y="-345" on="0"/> - <pt x="561" y="-345" on="1"/> - <pt x="670" y="-345" on="0"/> - <pt x="670" y="-278" on="1"/> - <pt x="670" y="-205" on="0"/> - <pt x="513" y="-188" on="1"/> - <pt x="513" y="-111" on="1"/> - <pt x="647" y="-114" on="0"/> - <pt x="713" y="-143" on="1"/> - <pt x="806" y="-185" on="0"/> - <pt x="806" y="-280" on="1"/> - <pt x="806" y="-432" on="0"/> - <pt x="588" y="-432" on="1"/> - <pt x="530" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 25 values pushed */ - 0 0 3 32 14 48 200 14 8 7 1 0 14 0 0 5 20 12 48 200 12 8 7 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Uogonek" xMin="62" yMin="-370" xMax="1168" yMax="1480"> - <contour> - <pt x="185" y="1357" on="1"/> - <pt x="62" y="1357" on="1"/> - <pt x="62" y="1480" on="1"/> - <pt x="519" y="1480" on="1"/> - <pt x="519" y="1357" on="1"/> - <pt x="383" y="1357" on="1"/> - <pt x="383" y="523" on="1"/> - <pt x="383" y="313" on="0"/> - <pt x="455" y="200" on="1"/> - <pt x="526" y="86" on="0"/> - <pt x="656" y="86" on="1"/> - <pt x="921" y="86" on="0"/> - <pt x="921" y="532" on="1"/> - <pt x="921" y="1357" on="1"/> - <pt x="785" y="1357" on="1"/> - <pt x="785" y="1480" on="1"/> - <pt x="1168" y="1480" on="1"/> - <pt x="1168" y="1357" on="1"/> - <pt x="1044" y="1357" on="1"/> - <pt x="1044" y="496" on="1"/> - <pt x="1044" y="244" on="0"/> - <pt x="933" y="104" on="1"/> - <pt x="823" y="-37" on="0"/> - <pt x="621" y="-37" on="1"/> - <pt x="185" y="-37" on="0"/> - <pt x="185" y="550" on="1"/> - </contour> - <contour> - <pt x="686" y="0" on="1"/> - <pt x="793" y="0" on="1"/> - <pt x="664" y="-81" on="0"/> - <pt x="664" y="-179" on="1"/> - <pt x="664" y="-275" on="0"/> - <pt x="779" y="-275" on="1"/> - <pt x="833" y="-275" on="0"/> - <pt x="870" y="-260" on="1"/> - <pt x="870" y="-341" on="1"/> - <pt x="808" y="-370" on="0"/> - <pt x="730" y="-370" on="1"/> - <pt x="528" y="-370" on="0"/> - <pt x="528" y="-213" on="1"/> - <pt x="528" y="-90" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 100 values pushed */ - 0 0 31 17 36 10 5 23 48 200 23 2 1 25 19 18 17 14 13 12 6 5 4 1 0 - 12 2 2 3 0 1 34 33 27 26 4 13 36 2 0 16 15 3 2 0 3 14 0 0 29 - 20 38 48 200 38 38 34 33 27 26 15 14 4 3 9 12 5 3 17 16 2 13 18 2 1 - 0 0 0 13 12 6 1 18 6 5 10 1 0 2 4 48 200 19 18 1 25 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Uring" xMin="62" yMin="-37" xMax="1168" yMax="2033"> - <contour> - <pt x="185" y="1357" on="1"/> - <pt x="62" y="1357" on="1"/> - <pt x="62" y="1480" on="1"/> - <pt x="519" y="1480" on="1"/> - <pt x="519" y="1357" on="1"/> - <pt x="383" y="1357" on="1"/> - <pt x="383" y="523" on="1"/> - <pt x="383" y="313" on="0"/> - <pt x="455" y="200" on="1"/> - <pt x="526" y="86" on="0"/> - <pt x="656" y="86" on="1"/> - <pt x="921" y="86" on="0"/> - <pt x="921" y="532" on="1"/> - <pt x="921" y="1357" on="1"/> - <pt x="785" y="1357" on="1"/> - <pt x="785" y="1480" on="1"/> - <pt x="1168" y="1480" on="1"/> - <pt x="1168" y="1357" on="1"/> - <pt x="1044" y="1357" on="1"/> - <pt x="1044" y="496" on="1"/> - <pt x="1044" y="244" on="0"/> - <pt x="933" y="104" on="1"/> - <pt x="823" y="-37" on="0"/> - <pt x="621" y="-37" on="1"/> - <pt x="185" y="-37" on="0"/> - <pt x="185" y="550" on="1"/> - </contour> - <contour> - <pt x="606" y="2033" on="1"/> - <pt x="700" y="2033" on="0"/> - <pt x="766" y="1967" on="1"/> - <pt x="833" y="1901" on="0"/> - <pt x="833" y="1807" on="1"/> - <pt x="833" y="1710" on="0"/> - <pt x="766" y="1645" on="1"/> - <pt x="700" y="1579" on="0"/> - <pt x="604" y="1579" on="1"/> - <pt x="521" y="1579" on="0"/> - <pt x="459" y="1633" on="1"/> - <pt x="379" y="1703" on="0"/> - <pt x="379" y="1806" on="1"/> - <pt x="379" y="1900" on="0"/> - <pt x="446" y="1966" on="1"/> - <pt x="512" y="2033" on="0"/> - </contour> - <contour> - <pt x="606" y="1946" on="1"/> - <pt x="549" y="1946" on="0"/> - <pt x="507" y="1905" on="1"/> - <pt x="465" y="1865" on="0"/> - <pt x="465" y="1806" on="1"/> - <pt x="465" y="1748" on="0"/> - <pt x="506" y="1707" on="1"/> - <pt x="548" y="1665" on="0"/> - <pt x="604" y="1665" on="1"/> - <pt x="658" y="1665" on="0"/> - <pt x="697" y="1698" on="1"/> - <pt x="747" y="1741" on="0"/> - <pt x="747" y="1807" on="1"/> - <pt x="747" y="1865" on="0"/> - <pt x="705" y="1905" on="1"/> - <pt x="664" y="1946" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 100 values pushed */ - 0 0 50 32 34 42 32 26 10 5 23 48 200 23 2 1 25 19 18 17 14 13 12 6 5 - 4 1 0 12 2 2 3 0 34 26 2 16 15 3 2 0 3 14 0 0 54 32 30 46 32 - 38 48 200 30 30 15 14 4 3 5 12 5 3 38 38 5 0 2 17 16 2 13 18 2 1 - 0 0 0 13 12 6 1 18 6 5 10 1 0 2 4 48 200 19 18 1 25 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MDAP[1] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Utilde" xMin="62" yMin="-37" xMax="1168" yMax="1839"> - <contour> - <pt x="185" y="1357" on="1"/> - <pt x="62" y="1357" on="1"/> - <pt x="62" y="1480" on="1"/> - <pt x="519" y="1480" on="1"/> - <pt x="519" y="1357" on="1"/> - <pt x="383" y="1357" on="1"/> - <pt x="383" y="523" on="1"/> - <pt x="383" y="313" on="0"/> - <pt x="455" y="200" on="1"/> - <pt x="526" y="86" on="0"/> - <pt x="656" y="86" on="1"/> - <pt x="921" y="86" on="0"/> - <pt x="921" y="532" on="1"/> - <pt x="921" y="1357" on="1"/> - <pt x="785" y="1357" on="1"/> - <pt x="785" y="1480" on="1"/> - <pt x="1168" y="1480" on="1"/> - <pt x="1168" y="1357" on="1"/> - <pt x="1044" y="1357" on="1"/> - <pt x="1044" y="496" on="1"/> - <pt x="1044" y="244" on="0"/> - <pt x="933" y="104" on="1"/> - <pt x="823" y="-37" on="0"/> - <pt x="621" y="-37" on="1"/> - <pt x="185" y="-37" on="0"/> - <pt x="185" y="550" on="1"/> - </contour> - <contour> - <pt x="284" y="1604" on="1"/> - <pt x="290" y="1699" on="0"/> - <pt x="315" y="1749" on="1"/> - <pt x="360" y="1839" on="0"/> - <pt x="469" y="1839" on="1"/> - <pt x="541" y="1839" on="0"/> - <pt x="604" y="1800" on="1"/> - <pt x="664" y="1763" on="1"/> - <pt x="726" y="1725" on="0"/> - <pt x="760" y="1725" on="1"/> - <pt x="828" y="1725" on="0"/> - <pt x="839" y="1839" on="1"/> - <pt x="950" y="1839" on="1"/> - <pt x="943" y="1745" on="0"/> - <pt x="918" y="1695" on="1"/> - <pt x="872" y="1604" on="0"/> - <pt x="765" y="1604" on="1"/> - <pt x="692" y="1604" on="0"/> - <pt x="629" y="1643" on="1"/> - <pt x="569" y="1680" on="1"/> - <pt x="509" y="1717" on="0"/> - <pt x="473" y="1717" on="1"/> - <pt x="405" y="1717" on="0"/> - <pt x="394" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 99 values pushed */ - 0 0 47 5 30 35 5 42 10 5 23 48 200 23 2 1 25 19 18 17 14 13 12 6 5 - 4 1 0 12 2 2 3 0 49 38 37 26 4 13 42 30 2 16 15 3 2 0 3 14 38 - 18 12 2 49 37 15 14 4 3 6 12 5 3 26 5 0 2 17 16 2 13 18 2 1 0 - 0 0 13 12 6 1 18 6 5 10 1 0 2 4 48 200 19 18 1 25 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="V" xMin="26" yMin="0" xMax="1204" yMax="1480"> - <contour> - <pt x="520" y="0" on="1"/> - <pt x="100" y="1357" on="1"/> - <pt x="26" y="1357" on="1"/> - <pt x="26" y="1480" on="1"/> - <pt x="463" y="1480" on="1"/> - <pt x="463" y="1357" on="1"/> - <pt x="306" y="1357" on="1"/> - <pt x="652" y="237" on="1"/> - <pt x="654" y="237" on="1"/> - <pt x="1001" y="1357" on="1"/> - <pt x="858" y="1357" on="1"/> - <pt x="858" y="1480" on="1"/> - <pt x="1204" y="1480" on="1"/> - <pt x="1204" y="1357" on="1"/> - <pt x="1130" y="1357" on="1"/> - <pt x="709" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 50 values pushed */ - 8 7 2 1 0 3 0 0 14 13 10 9 6 5 2 1 6 7 3 1 4 48 200 15 0 - 1 0 12 11 4 3 0 3 14 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="W" xMin="23" yMin="0" xMax="1207" yMax="1480"> - <contour> - <pt x="242" y="0" on="1"/> - <pt x="72" y="1357" on="1"/> - <pt x="23" y="1357" on="1"/> - <pt x="23" y="1480" on="1"/> - <pt x="332" y="1480" on="1"/> - <pt x="332" y="1357" on="1"/> - <pt x="234" y="1357" on="1"/> - <pt x="368" y="281" on="1"/> - <pt x="370" y="281" on="1"/> - <pt x="556" y="1258" on="1"/> - <pt x="712" y="1258" on="1"/> - <pt x="896" y="285" on="1"/> - <pt x="899" y="285" on="1"/> - <pt x="1033" y="1357" on="1"/> - <pt x="934" y="1357" on="1"/> - <pt x="934" y="1480" on="1"/> - <pt x="1207" y="1480" on="1"/> - <pt x="1207" y="1357" on="1"/> - <pt x="1157" y="1357" on="1"/> - <pt x="987" y="0" on="1"/> - <pt x="799" y="0" on="1"/> - <pt x="617" y="974" on="1"/> - <pt x="615" y="974" on="1"/> - <pt x="431" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 63 values pushed */ - 18 17 14 13 6 5 2 1 8 3 9 3 22 21 12 11 8 7 6 9 0 3 10 9 1 - 23 20 19 0 3 2 0 16 15 4 3 0 3 14 23 22 21 20 19 18 17 16 15 14 13 - 12 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Wcircumflex" xMin="23" yMin="0" xMax="1207" yMax="1925"> - <contour> - <pt x="242" y="0" on="1"/> - <pt x="72" y="1357" on="1"/> - <pt x="23" y="1357" on="1"/> - <pt x="23" y="1480" on="1"/> - <pt x="332" y="1480" on="1"/> - <pt x="332" y="1357" on="1"/> - <pt x="234" y="1357" on="1"/> - <pt x="368" y="281" on="1"/> - <pt x="370" y="281" on="1"/> - <pt x="556" y="1258" on="1"/> - <pt x="712" y="1258" on="1"/> - <pt x="896" y="285" on="1"/> - <pt x="899" y="285" on="1"/> - <pt x="1033" y="1357" on="1"/> - <pt x="934" y="1357" on="1"/> - <pt x="934" y="1480" on="1"/> - <pt x="1207" y="1480" on="1"/> - <pt x="1207" y="1357" on="1"/> - <pt x="1157" y="1357" on="1"/> - <pt x="987" y="0" on="1"/> - <pt x="799" y="0" on="1"/> - <pt x="617" y="974" on="1"/> - <pt x="615" y="974" on="1"/> - <pt x="431" y="0" on="1"/> - </contour> - <contour> - <pt x="267" y="1604" on="1"/> - <pt x="523" y="1925" on="1"/> - <pt x="742" y="1925" on="1"/> - <pt x="998" y="1604" on="1"/> - <pt x="875" y="1604" on="1"/> - <pt x="634" y="1806" on="1"/> - <pt x="631" y="1806" on="1"/> - <pt x="390" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 84 values pushed */ - 31 30 29 28 27 24 6 25 3 3 18 17 14 13 6 5 2 1 8 3 9 3 22 21 12 - 11 8 7 6 9 0 3 26 25 1 10 9 1 23 20 19 0 3 3 0 16 15 4 3 0 - 3 14 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 - 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="X" xMin="49" yMin="0" xMax="1179" yMax="1480"> - <contour> - <pt x="49" y="0" on="1"/> - <pt x="49" y="123" on="1"/> - <pt x="160" y="123" on="1"/> - <pt x="510" y="730" on="1"/> - <pt x="148" y="1357" on="1"/> - <pt x="49" y="1357" on="1"/> - <pt x="49" y="1480" on="1"/> - <pt x="469" y="1480" on="1"/> - <pt x="469" y="1357" on="1"/> - <pt x="369" y="1357" on="1"/> - <pt x="657" y="857" on="1"/> - <pt x="946" y="1357" on="1"/> - <pt x="818" y="1357" on="1"/> - <pt x="818" y="1480" on="1"/> - <pt x="1179" y="1480" on="1"/> - <pt x="1179" y="1357" on="1"/> - <pt x="1074" y="1357" on="1"/> - <pt x="721" y="746" on="1"/> - <pt x="1081" y="123" on="1"/> - <pt x="1179" y="123" on="1"/> - <pt x="1179" y="0" on="1"/> - <pt x="736" y="0" on="1"/> - <pt x="736" y="123" on="1"/> - <pt x="860" y="123" on="1"/> - <pt x="574" y="619" on="1"/> - <pt x="288" y="123" on="1"/> - <pt x="442" y="123" on="1"/> - <pt x="442" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 74 values pushed */ - 24 17 16 15 12 11 10 9 8 5 4 3 12 6 1 3 0 0 26 25 23 22 19 18 2 - 1 6 7 0 1 4 48 200 27 21 20 0 3 0 14 13 7 6 0 3 14 27 26 25 24 - 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Y" xMin="27" yMin="0" xMax="1201" yMax="1480"> - <contour> - <pt x="294" y="0" on="1"/> - <pt x="294" y="123" on="1"/> - <pt x="516" y="123" on="1"/> - <pt x="516" y="660" on="1"/> - <pt x="113" y="1357" on="1"/> - <pt x="27" y="1357" on="1"/> - <pt x="27" y="1480" on="1"/> - <pt x="490" y="1480" on="1"/> - <pt x="490" y="1357" on="1"/> - <pt x="341" y="1357" on="1"/> - <pt x="656" y="813" on="1"/> - <pt x="658" y="813" on="1"/> - <pt x="973" y="1357" on="1"/> - <pt x="825" y="1357" on="1"/> - <pt x="825" y="1480" on="1"/> - <pt x="1201" y="1480" on="1"/> - <pt x="1201" y="1357" on="1"/> - <pt x="1115" y="1357" on="1"/> - <pt x="713" y="661" on="1"/> - <pt x="713" y="123" on="1"/> - <pt x="935" y="123" on="1"/> - <pt x="935" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 86 values pushed */ - 18 11 10 3 4 4 1 3 0 0 17 16 13 12 9 8 5 4 6 7 6 20 19 2 1 - 6 3 0 2 4 48 200 21 0 1 0 15 14 7 6 0 3 14 11 10 2 18 2 3 21 - 20 17 16 15 14 13 12 8 13 18 9 8 7 6 5 4 1 0 8 13 2 0 0 19 18 - 10 1 2 1 4 48 200 3 2 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Yacute" xMin="27" yMin="0" xMax="1201" yMax="1925"> - <contour> - <pt x="294" y="0" on="1"/> - <pt x="294" y="123" on="1"/> - <pt x="516" y="123" on="1"/> - <pt x="516" y="660" on="1"/> - <pt x="113" y="1357" on="1"/> - <pt x="27" y="1357" on="1"/> - <pt x="27" y="1480" on="1"/> - <pt x="490" y="1480" on="1"/> - <pt x="490" y="1357" on="1"/> - <pt x="341" y="1357" on="1"/> - <pt x="656" y="813" on="1"/> - <pt x="658" y="813" on="1"/> - <pt x="973" y="1357" on="1"/> - <pt x="825" y="1357" on="1"/> - <pt x="825" y="1480" on="1"/> - <pt x="1201" y="1480" on="1"/> - <pt x="1201" y="1357" on="1"/> - <pt x="1115" y="1357" on="1"/> - <pt x="713" y="661" on="1"/> - <pt x="713" y="123" on="1"/> - <pt x="935" y="123" on="1"/> - <pt x="935" y="0" on="1"/> - </contour> - <contour> - <pt x="534" y="1604" on="1"/> - <pt x="750" y="1925" on="1"/> - <pt x="978" y="1925" on="1"/> - <pt x="657" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 100 values pushed */ - 25 22 2 23 6 3 18 11 10 3 4 4 1 3 0 0 17 16 13 12 9 8 5 4 6 - 7 6 20 19 2 1 6 3 0 2 4 48 200 24 23 1 21 0 1 2 0 15 14 7 6 - 0 3 14 25 22 11 10 4 18 2 3 24 23 21 20 17 16 15 14 13 12 10 13 18 9 - 8 7 6 5 4 1 0 8 13 2 0 0 19 18 10 1 2 1 4 48 200 3 2 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ycircumflex" xMin="27" yMin="0" xMax="1201" yMax="1925"> - <contour> - <pt x="294" y="0" on="1"/> - <pt x="294" y="123" on="1"/> - <pt x="516" y="123" on="1"/> - <pt x="516" y="660" on="1"/> - <pt x="113" y="1357" on="1"/> - <pt x="27" y="1357" on="1"/> - <pt x="27" y="1480" on="1"/> - <pt x="490" y="1480" on="1"/> - <pt x="490" y="1357" on="1"/> - <pt x="341" y="1357" on="1"/> - <pt x="656" y="813" on="1"/> - <pt x="658" y="813" on="1"/> - <pt x="973" y="1357" on="1"/> - <pt x="825" y="1357" on="1"/> - <pt x="825" y="1480" on="1"/> - <pt x="1201" y="1480" on="1"/> - <pt x="1201" y="1357" on="1"/> - <pt x="1115" y="1357" on="1"/> - <pt x="713" y="661" on="1"/> - <pt x="713" y="123" on="1"/> - <pt x="935" y="123" on="1"/> - <pt x="935" y="0" on="1"/> - </contour> - <contour> - <pt x="291" y="1604" on="1"/> - <pt x="547" y="1925" on="1"/> - <pt x="766" y="1925" on="1"/> - <pt x="1022" y="1604" on="1"/> - <pt x="899" y="1604" on="1"/> - <pt x="658" y="1806" on="1"/> - <pt x="655" y="1806" on="1"/> - <pt x="414" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 108 values pushed */ - 29 28 27 26 25 22 6 23 6 3 18 11 10 3 4 4 1 3 0 0 17 16 13 12 9 - 8 5 4 6 7 6 20 19 2 1 6 3 0 2 4 48 200 24 23 1 21 0 1 2 0 - 15 14 7 6 0 3 14 28 27 23 11 10 5 18 2 3 26 25 24 21 20 17 16 15 14 - 13 12 11 13 18 29 22 9 8 7 6 5 4 1 0 10 13 2 0 0 19 18 10 1 2 - 1 4 48 200 3 2 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ydieresis" xMin="27" yMin="0" xMax="1201" yMax="1801"> - <contour> - <pt x="294" y="0" on="1"/> - <pt x="294" y="123" on="1"/> - <pt x="516" y="123" on="1"/> - <pt x="516" y="660" on="1"/> - <pt x="113" y="1357" on="1"/> - <pt x="27" y="1357" on="1"/> - <pt x="27" y="1480" on="1"/> - <pt x="490" y="1480" on="1"/> - <pt x="490" y="1357" on="1"/> - <pt x="341" y="1357" on="1"/> - <pt x="656" y="813" on="1"/> - <pt x="658" y="813" on="1"/> - <pt x="973" y="1357" on="1"/> - <pt x="825" y="1357" on="1"/> - <pt x="825" y="1480" on="1"/> - <pt x="1201" y="1480" on="1"/> - <pt x="1201" y="1357" on="1"/> - <pt x="1115" y="1357" on="1"/> - <pt x="713" y="661" on="1"/> - <pt x="713" y="123" on="1"/> - <pt x="935" y="123" on="1"/> - <pt x="935" y="0" on="1"/> - </contour> - <contour> - <pt x="324" y="1604" on="1"/> - <pt x="324" y="1801" on="1"/> - <pt x="521" y="1801" on="1"/> - <pt x="521" y="1604" on="1"/> - </contour> - <contour> - <pt x="793" y="1604" on="1"/> - <pt x="793" y="1801" on="1"/> - <pt x="990" y="1801" on="1"/> - <pt x="990" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 124 values pushed */ - 18 11 10 3 4 4 1 3 0 0 29 26 25 22 10 3 23 17 16 13 12 9 8 5 4 - 6 7 6 20 19 2 1 6 3 0 3 4 48 200 28 27 24 23 3 21 0 1 2 0 15 - 14 7 6 0 3 14 21 20 14 13 12 5 28 26 3 11 10 2 18 24 3 9 8 7 3 - 2 22 3 17 16 15 3 13 28 6 5 4 1 0 5 13 22 0 0 27 26 10 1 28 25 - 24 10 1 22 19 18 10 1 2 3 4 48 200 29 28 1 23 22 1 3 2 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Z" xMin="148" yMin="0" xMax="1081" yMax="1480"> - <contour> - <pt x="148" y="0" on="1"/> - <pt x="148" y="136" on="1"/> - <pt x="848" y="1357" on="1"/> - <pt x="290" y="1357" on="1"/> - <pt x="290" y="1086" on="1"/> - <pt x="167" y="1086" on="1"/> - <pt x="167" y="1480" on="1"/> - <pt x="1068" y="1480" on="1"/> - <pt x="1068" y="1357" on="1"/> - <pt x="368" y="136" on="1"/> - <pt x="957" y="136" on="1"/> - <pt x="957" y="432" on="1"/> - <pt x="1081" y="432" on="1"/> - <pt x="1081" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 73 values pushed */ - 12 11 5 4 4 2 1 3 0 0 8 3 2 6 2 6 10 9 1 20 2 0 2 4 48 - 200 13 0 1 0 7 6 0 14 8 7 2 12 10 3 9 2 2 10 3 3 1 0 5 0 - 0 11 10 6 1 12 4 3 6 1 5 2 4 48 200 13 12 1 6 5 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Zacute" xMin="148" yMin="0" xMax="1081" yMax="1925"> - <contour> - <pt x="148" y="0" on="1"/> - <pt x="148" y="136" on="1"/> - <pt x="848" y="1357" on="1"/> - <pt x="290" y="1357" on="1"/> - <pt x="290" y="1086" on="1"/> - <pt x="167" y="1086" on="1"/> - <pt x="167" y="1480" on="1"/> - <pt x="1068" y="1480" on="1"/> - <pt x="1068" y="1357" on="1"/> - <pt x="368" y="136" on="1"/> - <pt x="957" y="136" on="1"/> - <pt x="957" y="432" on="1"/> - <pt x="1081" y="432" on="1"/> - <pt x="1081" y="0" on="1"/> - </contour> - <contour> - <pt x="491" y="1604" on="1"/> - <pt x="707" y="1925" on="1"/> - <pt x="935" y="1925" on="1"/> - <pt x="614" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 87 values pushed */ - 17 14 2 15 6 3 12 11 5 4 4 2 1 3 0 0 8 3 2 6 2 6 10 9 1 - 20 2 0 2 4 48 200 16 15 1 13 0 1 2 0 7 6 0 14 8 7 2 12 10 3 - 17 16 15 14 9 2 6 10 3 3 1 0 5 0 0 11 10 6 1 12 4 3 6 1 5 - 2 4 48 200 13 12 1 6 5 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Zcaron" xMin="148" yMin="0" xMax="1081" yMax="1925"> - <contour> - <pt x="148" y="0" on="1"/> - <pt x="148" y="136" on="1"/> - <pt x="848" y="1357" on="1"/> - <pt x="290" y="1357" on="1"/> - <pt x="290" y="1086" on="1"/> - <pt x="167" y="1086" on="1"/> - <pt x="167" y="1480" on="1"/> - <pt x="1068" y="1480" on="1"/> - <pt x="1068" y="1357" on="1"/> - <pt x="368" y="136" on="1"/> - <pt x="957" y="136" on="1"/> - <pt x="957" y="432" on="1"/> - <pt x="1081" y="432" on="1"/> - <pt x="1081" y="0" on="1"/> - </contour> - <contour> - <pt x="980" y="1925" on="1"/> - <pt x="723" y="1604" on="1"/> - <pt x="505" y="1604" on="1"/> - <pt x="248" y="1925" on="1"/> - <pt x="372" y="1925" on="1"/> - <pt x="613" y="1723" on="1"/> - <pt x="615" y="1723" on="1"/> - <pt x="857" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 97 values pushed */ - 12 11 5 4 4 2 1 3 21 20 19 18 17 14 6 13 15 0 0 8 3 2 6 2 6 - 10 9 1 20 2 0 2 4 48 200 16 15 1 13 0 1 2 0 7 6 0 14 14 8 7 - 3 12 10 3 21 20 19 18 16 15 9 2 8 10 3 3 17 3 5 2 1 0 5 0 0 - 11 10 6 1 12 4 3 6 1 5 2 4 48 200 13 12 1 6 5 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Zdotaccent" xMin="148" yMin="0" xMax="1081" yMax="1801"> - <contour> - <pt x="148" y="0" on="1"/> - <pt x="148" y="136" on="1"/> - <pt x="848" y="1357" on="1"/> - <pt x="290" y="1357" on="1"/> - <pt x="290" y="1086" on="1"/> - <pt x="167" y="1086" on="1"/> - <pt x="167" y="1480" on="1"/> - <pt x="1068" y="1480" on="1"/> - <pt x="1068" y="1357" on="1"/> - <pt x="368" y="136" on="1"/> - <pt x="957" y="136" on="1"/> - <pt x="957" y="432" on="1"/> - <pt x="1081" y="432" on="1"/> - <pt x="1081" y="0" on="1"/> - </contour> - <contour> - <pt x="516" y="1604" on="1"/> - <pt x="516" y="1801" on="1"/> - <pt x="713" y="1801" on="1"/> - <pt x="713" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 92 values pushed */ - 12 11 5 4 4 2 1 3 0 0 17 14 10 1 15 8 3 2 6 2 6 10 9 1 20 - 2 0 3 4 48 200 16 15 1 13 0 1 2 0 7 6 0 14 8 7 2 12 10 3 2 - 10 16 2 9 14 3 2 1 0 5 0 0 17 16 10 1 14 11 10 6 1 12 4 3 6 - 1 5 3 4 48 200 15 14 1 13 12 1 6 5 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="a" xMin="148" yMin="-25" xMax="1167" yMax="1111"> - <contour> - <pt x="834" y="119" on="1"/> - <pt x="661" y="-25" on="0"/> - <pt x="483" y="-25" on="1"/> - <pt x="330" y="-25" on="0"/> - <pt x="239" y="61" on="1"/> - <pt x="148" y="146" on="0"/> - <pt x="148" y="293" on="1"/> - <pt x="148" y="483" on="0"/> - <pt x="290" y="569" on="1"/> - <pt x="432" y="654" on="0"/> - <pt x="749" y="654" on="1"/> - <pt x="834" y="654" on="1"/> - <pt x="834" y="822" on="1"/> - <pt x="834" y="987" on="0"/> - <pt x="630" y="987" on="1"/> - <pt x="527" y="987" on="0"/> - <pt x="373" y="929" on="1"/> - <pt x="348" y="802" on="1"/> - <pt x="225" y="802" on="1"/> - <pt x="225" y="1018" on="1"/> - <pt x="454" y="1111" on="0"/> - <pt x="692" y="1111" on="1"/> - <pt x="881" y="1111" on="0"/> - <pt x="956" y="1046" on="1"/> - <pt x="1031" y="980" on="0"/> - <pt x="1031" y="819" on="1"/> - <pt x="1031" y="123" on="1"/> - <pt x="1167" y="123" on="1"/> - <pt x="1167" y="0" on="1"/> - <pt x="854" y="0" on="1"/> - </contour> - <contour> - <pt x="834" y="278" on="1"/> - <pt x="834" y="531" on="1"/> - <pt x="781" y="531" on="1"/> - <pt x="551" y="531" on="0"/> - <pt x="454" y="479" on="1"/> - <pt x="358" y="427" on="0"/> - <pt x="358" y="301" on="1"/> - <pt x="358" y="123" on="0"/> - <pt x="544" y="123" on="1"/> - <pt x="691" y="123" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 87 values pushed */ - 0 0 38 14 2 14 5 21 48 200 21 1 2 2 1 32 31 30 27 26 25 19 18 17 16 - 12 11 10 0 14 1 28 3 0 29 28 1 0 14 0 0 36 39 6 48 200 29 25 0 2 - 32 17 16 10 4 0 18 3 28 27 2 13 25 6 18 0 0 31 30 12 11 0 10 4 25 - 1 4 48 200 26 25 1 19 18 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="aacute" xMin="148" yMin="-25" xMax="1167" yMax="1604"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="160" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="abreve" xMin="148" yMin="-25" xMax="1167" yMax="1579"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="breve" x="12" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="acircumflex" xMin="148" yMin="-25" xMax="1167" yMax="1604"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="circumflex" x="27" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="acute" xMin="392" yMin="1283" xMax="836" yMax="1604"> - <contour> - <pt x="392" y="1283" on="1"/> - <pt x="608" y="1604" on="1"/> - <pt x="836" y="1604" on="1"/> - <pt x="515" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 12 values pushed */ - 3 0 1 2 1 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="adieresis" xMin="148" yMin="-25" xMax="1167" yMax="1480"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="dieresis" x="35" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ae" xMin="37" yMin="-25" xMax="1192" yMax="1110"> - <contour> - <pt x="589" y="154" on="1"/> - <pt x="552" y="73" on="0"/> - <pt x="508" y="33" on="1"/> - <pt x="443" y="-25" on="0"/> - <pt x="347" y="-25" on="1"/> - <pt x="216" y="-25" on="0"/> - <pt x="127" y="70" on="1"/> - <pt x="37" y="164" on="0"/> - <pt x="37" y="307" on="1"/> - <pt x="37" y="475" on="0"/> - <pt x="154" y="571" on="1"/> - <pt x="270" y="666" on="0"/> - <pt x="476" y="666" on="1"/> - <pt x="519" y="666" on="1"/> - <pt x="519" y="807" on="1"/> - <pt x="519" y="917" on="0"/> - <pt x="498" y="952" on="1"/> - <pt x="476" y="987" on="0"/> - <pt x="408" y="987" on="1"/> - <pt x="345" y="987" on="0"/> - <pt x="284" y="947" on="1"/> - <pt x="259" y="811" on="1"/> - <pt x="136" y="811" on="1"/> - <pt x="136" y="1043" on="1"/> - <pt x="289" y="1110" on="0"/> - <pt x="434" y="1110" on="1"/> - <pt x="531" y="1110" on="0"/> - <pt x="592" y="1062" on="1"/> - <pt x="628" y="1033" on="0"/> - <pt x="658" y="979" on="1"/> - <pt x="736" y="1110" on="0"/> - <pt x="879" y="1110" on="1"/> - <pt x="1025" y="1110" on="0"/> - <pt x="1106" y="974" on="1"/> - <pt x="1186" y="838" on="0"/> - <pt x="1186" y="592" on="1"/> - <pt x="1186" y="543" on="1"/> - <pt x="704" y="543" on="1"/> - <pt x="707" y="492" on="1"/> - <pt x="729" y="123" on="0"/> - <pt x="948" y="123" on="1"/> - <pt x="1032" y="123" on="0"/> - <pt x="1192" y="191" on="1"/> - <pt x="1192" y="43" on="1"/> - <pt x="1016" y="-25" on="0"/> - <pt x="885" y="-25" on="1"/> - <pt x="719" y="-25" on="0"/> - </contour> - <contour> - <pt x="519" y="228" on="1"/> - <pt x="519" y="543" on="1"/> - <pt x="488" y="543" on="1"/> - <pt x="241" y="543" on="0"/> - <pt x="241" y="315" on="1"/> - <pt x="241" y="136" on="0"/> - <pt x="382" y="136" on="1"/> - <pt x="467" y="136" on="0"/> - </contour> - <contour> - <pt x="704" y="666" on="1"/> - <pt x="984" y="666" on="1"/> - <pt x="981" y="844" on="0"/> - <pt x="949" y="916" on="1"/> - <pt x="918" y="987" on="0"/> - <pt x="859" y="987" on="1"/> - <pt x="725" y="987" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 111 values pushed */ - 0 0 60 5 31 53 30 4 40 14 45 18 5 25 48 200 45 2 31 1 25 1 4 2 1 - 29 23 22 21 20 14 6 1 12 3 0 35 12 36 2 1 47 43 42 0 4 36 2 3 0 - 0 0 49 48 37 36 6 3 12 1 4 48 200 56 55 13 12 3 0 14 0 0 51 24 8 - 48 200 56 55 37 36 35 29 0 7 42 13 3 49 21 20 12 4 13 22 3 8 22 43 42 - 1 48 47 14 13 3 23 22 1 3 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="afii00208" xMin="0" yMin="543" xMax="1229" yMax="666"> - <contour> - <pt x="0" y="543" on="1"/> - <pt x="0" y="666" on="1"/> - <pt x="1229" y="666" on="1"/> - <pt x="1229" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 0 0 3 0 6 1 1 1 4 48 200 2 1 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="agrave" xMin="148" yMin="-25" xMax="1167" yMax="1604"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="grave" x="-38" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="amacron" xMin="148" yMin="-25" xMax="1167" yMax="1407"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="macron" x="22" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ampersand" xMin="57" yMin="-37" xMax="1192" yMax="1518"> - <contour> - <pt x="928" y="0" on="1"/> - <pt x="834" y="110" on="1"/> - <pt x="653" y="-37" on="0"/> - <pt x="478" y="-37" on="1"/> - <pt x="290" y="-37" on="0"/> - <pt x="174" y="88" on="1"/> - <pt x="57" y="213" on="0"/> - <pt x="57" y="413" on="1"/> - <pt x="57" y="591" on="0"/> - <pt x="164" y="728" on="1"/> - <pt x="226" y="808" on="0"/> - <pt x="345" y="889" on="1"/> - <pt x="273" y="1056" on="0"/> - <pt x="273" y="1188" on="1"/> - <pt x="273" y="1340" on="0"/> - <pt x="357" y="1429" on="1"/> - <pt x="441" y="1518" on="0"/> - <pt x="588" y="1518" on="1"/> - <pt x="740" y="1518" on="0"/> - <pt x="814" y="1436" on="1"/> - <pt x="878" y="1365" on="0"/> - <pt x="878" y="1240" on="1"/> - <pt x="878" y="1095" on="0"/> - <pt x="767" y="979" on="1"/> - <pt x="700" y="909" on="0"/> - <pt x="572" y="836" on="1"/> - <pt x="745" y="504" on="0"/> - <pt x="879" y="332" on="1"/> - <pt x="968" y="451" on="0"/> - <pt x="969" y="632" on="1"/> - <pt x="967" y="691" on="1"/> - <pt x="868" y="691" on="1"/> - <pt x="868" y="814" on="1"/> - <pt x="1192" y="814" on="1"/> - <pt x="1192" y="691" on="1"/> - <pt x="1120" y="691" on="1"/> - <pt x="1111" y="527" on="0"/> - <pt x="1079" y="440" on="1"/> - <pt x="1048" y="352" on="0"/> - <pt x="958" y="240" on="1"/> - <pt x="1068" y="123" on="1"/> - <pt x="1192" y="123" on="1"/> - <pt x="1192" y="0" on="1"/> - </contour> - <contour> - <pt x="757" y="208" on="1"/> - <pt x="580" y="433" on="0"/> - <pt x="405" y="785" on="1"/> - <pt x="236" y="654" on="0"/> - <pt x="236" y="441" on="1"/> - <pt x="236" y="287" on="0"/> - <pt x="311" y="199" on="1"/> - <pt x="386" y="110" on="0"/> - <pt x="515" y="110" on="1"/> - <pt x="639" y="110" on="0"/> - </contour> - <contour> - <pt x="518" y="938" on="1"/> - <pt x="599" y="992" on="0"/> - <pt x="640" y="1047" on="1"/> - <pt x="699" y="1127" on="0"/> - <pt x="699" y="1232" on="1"/> - <pt x="699" y="1394" on="0"/> - <pt x="584" y="1394" on="1"/> - <pt x="452" y="1394" on="0"/> - <pt x="452" y="1198" on="1"/> - <pt x="452" y="1059" on="0"/> - <pt x="511" y="950" on="1"/> - <pt x="513" y="946" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 83 values pushed */ - 0 0 59 5 17 51 14 3 48 200 17 0 3 2 1 53 25 11 3 0 32 3 0 45 43 - 41 40 39 35 34 31 30 29 27 1 12 32 0 3 33 32 1 42 0 1 2 0 14 0 0 - 61 13 13 57 13 21 47 13 7 48 200 53 45 43 42 41 40 39 35 34 33 32 31 30 29 - 27 25 21 13 11 7 1 0 - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="anoteleia" xMin="491" yMin="419" xMax="738" yMax="666"> - <contour> - <pt x="491" y="419" on="1"/> - <pt x="491" y="666" on="1"/> - <pt x="738" y="666" on="1"/> - <pt x="738" y="419" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 31 values pushed */ - 0 0 2 1 4 1 0 1 4 48 200 3 0 1 0 14 0 0 3 2 4 1 0 1 4 - 48 200 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="aogonek" xMin="148" yMin="-370" xMax="1167" yMax="1111"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="ogonek" x="282" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="aring" xMin="148" yMin="-25" xMax="1167" yMax="1737"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="ring" x="61" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="asciicircum" xMin="146" yMin="543" xMax="1084" yMax="1480"> - <contour> - <pt x="146" y="543" on="1"/> - <pt x="615" y="1480" on="1"/> - <pt x="1084" y="543" on="1"/> - <pt x="918" y="543" on="1"/> - <pt x="615" y="1149" on="1"/> - <pt x="311" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 18 values pushed */ - 4 1 2 13 0 5 3 2 0 3 0 14 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="asciitilde" xMin="121" yMin="412" xMax="1108" yMax="772"> - <contour> - <pt x="269" y="444" on="1"/> - <pt x="121" y="444" on="1"/> - <pt x="124" y="550" on="0"/> - <pt x="143" y="605" on="1"/> - <pt x="201" y="772" on="0"/> - <pt x="386" y="772" on="1"/> - <pt x="484" y="772" on="0"/> - <pt x="585" y="703" on="1"/> - <pt x="697" y="626" on="1"/> - <pt x="764" y="580" on="1"/> - <pt x="793" y="560" on="0"/> - <pt x="839" y="560" on="1"/> - <pt x="956" y="560" on="0"/> - <pt x="960" y="740" on="1"/> - <pt x="1108" y="740" on="1"/> - <pt x="1105" y="634" on="0"/> - <pt x="1086" y="579" on="1"/> - <pt x="1028" y="412" on="0"/> - <pt x="843" y="412" on="1"/> - <pt x="744" y="412" on="0"/> - <pt x="644" y="481" on="1"/> - <pt x="532" y="558" on="1"/> - <pt x="465" y="604" on="1"/> - <pt x="436" y="624" on="0"/> - <pt x="389" y="624" on="1"/> - <pt x="273" y="624" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 27 values pushed */ - 0 0 24 16 5 11 16 18 48 200 5 13 18 0 14 13 1 1 0 1 2 0 14 14 13 - 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="asterisk" xMin="161" yMin="614" xMax="1068" yMax="1480"> - <contour> - <pt x="459" y="615" on="1"/> - <pt x="288" y="720" on="1"/> - <pt x="523" y="991" on="1"/> - <pt x="545" y="951" on="0"/> - <pt x="599" y="937" on="1"/> - </contour> - <contour> - <pt x="161" y="1073" on="1"/> - <pt x="219" y="1263" on="1"/> - <pt x="541" y="1112" on="1"/> - <pt x="511" y="1080" on="0"/> - <pt x="511" y="1044" on="1"/> - <pt x="511" y="1036" on="0"/> - <pt x="513" y="1021" on="1"/> - </contour> - <contour> - <pt x="563" y="1129" on="1"/> - <pt x="518" y="1480" on="1"/> - <pt x="715" y="1480" on="1"/> - <pt x="664" y="1129" on="1"/> - <pt x="629" y="1142" on="0"/> - <pt x="614" y="1142" on="1"/> - <pt x="597" y="1142" on="0"/> - </contour> - <contour> - <pt x="687" y="1111" on="1"/> - <pt x="1011" y="1264" on="1"/> - <pt x="1068" y="1071" on="1"/> - <pt x="716" y="1023" on="1"/> - <pt x="716" y="1026" on="0"/> - <pt x="717" y="1031" on="1"/> - <pt x="717" y="1034" on="1"/> - <pt x="717" y="1037" on="1"/> - <pt x="717" y="1081" on="0"/> - </contour> - <contour> - <pt x="783" y="614" on="1"/> - <pt x="622" y="936" on="1"/> - <pt x="673" y="942" on="0"/> - <pt x="702" y="986" on="1"/> - <pt x="946" y="728" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 57 values pushed */ - 17 1 32 31 29 28 26 25 24 22 21 20 19 17 15 12 11 7 6 5 4 2 1 0 22 - 13 2 3 0 14 13 0 14 32 31 29 28 26 25 24 22 21 20 19 15 14 13 12 11 9 - 7 6 5 4 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MDAP[1] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="at" xMin="87" yMin="-37" xMax="1186" yMax="1517"> - <contour> - <pt x="945" y="12" on="1"/> - <pt x="794" y="-37" on="0"/> - <pt x="691" y="-37" on="1"/> - <pt x="415" y="-37" on="0"/> - <pt x="251" y="166" on="1"/> - <pt x="87" y="369" on="0"/> - <pt x="87" y="719" on="1"/> - <pt x="87" y="1074" on="0"/> - <pt x="249" y="1296" on="1"/> - <pt x="411" y="1517" on="0"/> - <pt x="675" y="1517" on="1"/> - <pt x="1068" y="1517" on="0"/> - <pt x="1068" y="1042" on="1"/> - <pt x="1068" y="414" on="1"/> - <pt x="1186" y="414" on="1"/> - <pt x="1186" y="291" on="1"/> - <pt x="945" y="291" on="1"/> - <pt x="945" y="658" on="1"/> - <pt x="920" y="658" on="1"/> - <pt x="882" y="499" on="0"/> - <pt x="816" y="406" on="1"/> - <pt x="730" y="284" on="0"/> - <pt x="621" y="284" on="1"/> - <pt x="517" y="284" on="0"/> - <pt x="451" y="388" on="1"/> - <pt x="384" y="492" on="0"/> - <pt x="384" y="654" on="1"/> - <pt x="384" y="873" on="0"/> - <pt x="498" y="1025" on="1"/> - <pt x="612" y="1178" on="0"/> - <pt x="776" y="1178" on="1"/> - <pt x="840" y="1178" on="0"/> - <pt x="936" y="1152" on="1"/> - <pt x="907" y="1287" on="0"/> - <pt x="833" y="1343" on="1"/> - <pt x="767" y="1394" on="0"/> - <pt x="663" y="1394" on="1"/> - <pt x="459" y="1394" on="0"/> - <pt x="335" y="1212" on="1"/> - <pt x="210" y="1029" on="0"/> - <pt x="210" y="733" on="1"/> - <pt x="210" y="436" on="0"/> - <pt x="343" y="261" on="1"/> - <pt x="475" y="86" on="0"/> - <pt x="694" y="86" on="1"/> - <pt x="811" y="86" on="0"/> - <pt x="945" y="150" on="1"/> - </contour> - <contour> - <pt x="945" y="927" on="1"/> - <pt x="945" y="1038" on="1"/> - <pt x="862" y="1086" on="0"/> - <pt x="794" y="1086" on="1"/> - <pt x="673" y="1086" on="0"/> - <pt x="603" y="974" on="1"/> - <pt x="532" y="862" on="0"/> - <pt x="532" y="674" on="1"/> - <pt x="532" y="565" on="0"/> - <pt x="563" y="495" on="1"/> - <pt x="593" y="426" on="0"/> - <pt x="639" y="426" on="1"/> - <pt x="709" y="426" on="0"/> - <pt x="783" y="551" on="1"/> - <pt x="855" y="672" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 90 values pushed */ - 0 0 58 14 22 50 17 30 44 5 2 36 5 10 48 200 10 0 2 2 30 1 48 47 32 - 30 18 17 14 13 12 9 0 15 3 0 22 1 46 22 0 3 15 2 3 0 16 15 1 0 - 14 0 0 54 16 26 40 6 6 48 200 15 14 2 13 12 32 18 26 6 0 0 0 48 47 - 46 17 16 0 6 5 12 1 4 48 200 13 12 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MDAP[1] - SZP1[ ] - CALL[ ] - SZP1[ ] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="atilde" xMin="148" yMin="-25" xMax="1167" yMax="1518"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="tilde" x="22" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="b" xMin="62" yMin="-25" xMax="1118" yMax="1579"> - <contour> - <pt x="383" y="0" on="1"/> - <pt x="185" y="0" on="1"/> - <pt x="185" y="1456" on="1"/> - <pt x="62" y="1456" on="1"/> - <pt x="62" y="1579" on="1"/> - <pt x="383" y="1579" on="1"/> - <pt x="383" y="864" on="1"/> - <pt x="458" y="975" on="0"/> - <pt x="529" y="1030" on="1"/> - <pt x="631" y="1110" on="0"/> - <pt x="749" y="1110" on="1"/> - <pt x="914" y="1110" on="0"/> - <pt x="1016" y="967" on="1"/> - <pt x="1118" y="823" on="0"/> - <pt x="1118" y="588" on="1"/> - <pt x="1118" y="302" on="0"/> - <pt x="983" y="139" on="1"/> - <pt x="849" y="-25" on="0"/> - <pt x="614" y="-25" on="1"/> - <pt x="526" y="-25" on="0"/> - </contour> - <contour> - <pt x="383" y="146" on="1"/> - <pt x="519" y="123" on="0"/> - <pt x="595" y="123" on="1"/> - <pt x="762" y="123" on="0"/> - <pt x="835" y="230" on="1"/> - <pt x="908" y="337" on="0"/> - <pt x="908" y="578" on="1"/> - <pt x="908" y="950" on="0"/> - <pt x="694" y="950" on="1"/> - <pt x="530" y="950" on="0"/> - <pt x="383" y="716" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 70 values pushed */ - 0 0 28 30 10 22 14 18 48 200 18 2 10 1 1 3 2 2 4 1 3 0 1 30 20 - 6 3 1 0 3 0 5 4 1 1 0 1 2 0 14 0 0 26 39 14 48 200 14 0 4 - 3 1 0 0 30 20 6 5 0 10 4 1 1 4 48 200 2 1 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="backslash" xMin="99" yMin="-296" xMax="1131" yMax="1579"> - <contour> - <pt x="1131" y="-296" on="1"/> - <pt x="967" y="-296" on="1"/> - <pt x="99" y="1579" on="1"/> - <pt x="262" y="1579" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 13 values pushed */ - 3 2 1 1 0 1 2 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="bar" xMin="540" yMin="-296" xMax="688" yMax="1579"> - <contour> - <pt x="540" y="-296" on="1"/> - <pt x="540" y="1579" on="1"/> - <pt x="688" y="1579" on="1"/> - <pt x="688" y="-296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 24 values pushed */ - 2 1 1 3 0 1 2 0 14 0 0 3 2 16 1 0 1 4 48 200 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="braceleft" xMin="183" yMin="-296" xMax="1002" yMax="1579"> - <contour> - <pt x="1002" y="-296" on="1"/> - <pt x="871" y="-296" on="1"/> - <pt x="699" y="-296" on="0"/> - <pt x="590" y="-201" on="1"/> - <pt x="480" y="-106" on="0"/> - <pt x="480" y="47" on="1"/> - <pt x="480" y="100" on="0"/> - <pt x="493" y="176" on="1"/> - <pt x="514" y="297" on="1"/> - <pt x="522" y="344" on="0"/> - <pt x="522" y="387" on="1"/> - <pt x="522" y="580" on="0"/> - <pt x="295" y="580" on="1"/> - <pt x="183" y="580" on="1"/> - <pt x="183" y="703" on="1"/> - <pt x="295" y="703" on="1"/> - <pt x="522" y="703" on="0"/> - <pt x="522" y="900" on="1"/> - <pt x="522" y="939" on="0"/> - <pt x="514" y="986" on="1"/> - <pt x="493" y="1107" on="1"/> - <pt x="480" y="1183" on="0"/> - <pt x="480" y="1241" on="1"/> - <pt x="480" y="1390" on="0"/> - <pt x="591" y="1485" on="1"/> - <pt x="701" y="1579" on="0"/> - <pt x="871" y="1579" on="1"/> - <pt x="1002" y="1579" on="1"/> - <pt x="1002" y="1456" on="1"/> - <pt x="943" y="1456" on="1"/> - <pt x="665" y="1456" on="0"/> - <pt x="665" y="1249" on="1"/> - <pt x="665" y="1209" on="0"/> - <pt x="673" y="1163" on="1"/> - <pt x="695" y="1038" on="1"/> - <pt x="703" y="992" on="0"/> - <pt x="703" y="954" on="1"/> - <pt x="703" y="825" on="0"/> - <pt x="625" y="737" on="1"/> - <pt x="579" y="686" on="0"/> - <pt x="493" y="642" on="1"/> - <pt x="587" y="594" on="0"/> - <pt x="634" y="536" on="1"/> - <pt x="702" y="451" on="0"/> - <pt x="702" y="326" on="1"/> - <pt x="702" y="285" on="0"/> - <pt x="695" y="245" on="1"/> - <pt x="673" y="120" on="1"/> - <pt x="665" y="74" on="0"/> - <pt x="665" y="29" on="1"/> - <pt x="665" y="-173" on="0"/> - <pt x="943" y="-173" on="1"/> - <pt x="1002" y="-173" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 47 values pushed */ - 52 51 40 29 28 27 26 15 14 13 12 1 0 14 0 0 49 19 5 31 19 22 17 13 36 - 10 13 44 48 200 52 51 44 40 36 29 28 27 26 22 15 14 13 12 5 1 0 - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="braceright" xMin="227" yMin="-296" xMax="1046" yMax="1579"> - <contour> - <pt x="227" y="1579" on="1"/> - <pt x="358" y="1579" on="1"/> - <pt x="530" y="1579" on="0"/> - <pt x="639" y="1484" on="1"/> - <pt x="749" y="1388" on="0"/> - <pt x="749" y="1237" on="1"/> - <pt x="749" y="1182" on="0"/> - <pt x="736" y="1107" on="1"/> - <pt x="715" y="986" on="1"/> - <pt x="707" y="940" on="0"/> - <pt x="707" y="896" on="1"/> - <pt x="707" y="703" on="0"/> - <pt x="934" y="703" on="1"/> - <pt x="1046" y="703" on="1"/> - <pt x="1046" y="580" on="1"/> - <pt x="934" y="580" on="1"/> - <pt x="707" y="580" on="0"/> - <pt x="707" y="383" on="1"/> - <pt x="707" y="342" on="0"/> - <pt x="715" y="297" on="1"/> - <pt x="736" y="177" on="1"/> - <pt x="749" y="103" on="0"/> - <pt x="749" y="42" on="1"/> - <pt x="749" y="-106" on="0"/> - <pt x="638" y="-201" on="1"/> - <pt x="528" y="-296" on="0"/> - <pt x="358" y="-296" on="1"/> - <pt x="227" y="-296" on="1"/> - <pt x="227" y="-173" on="1"/> - <pt x="286" y="-173" on="1"/> - <pt x="564" y="-173" on="0"/> - <pt x="564" y="33" on="1"/> - <pt x="564" y="75" on="0"/> - <pt x="556" y="120" on="1"/> - <pt x="534" y="245" on="1"/> - <pt x="527" y="285" on="0"/> - <pt x="527" y="330" on="1"/> - <pt x="527" y="458" on="0"/> - <pt x="604" y="546" on="1"/> - <pt x="649" y="597" on="0"/> - <pt x="736" y="642" on="1"/> - <pt x="643" y="690" on="0"/> - <pt x="596" y="748" on="1"/> - <pt x="527" y="833" on="0"/> - <pt x="527" y="957" on="1"/> - <pt x="527" y="998" on="0"/> - <pt x="534" y="1038" on="1"/> - <pt x="556" y="1163" on="1"/> - <pt x="564" y="1208" on="0"/> - <pt x="564" y="1254" on="1"/> - <pt x="564" y="1456" on="0"/> - <pt x="286" y="1456" on="1"/> - <pt x="227" y="1456" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 47 values pushed */ - 52 51 40 29 28 27 26 15 14 13 12 1 0 14 0 0 49 19 5 31 19 22 17 13 36 - 10 13 44 48 200 52 51 44 40 36 29 28 27 26 22 15 14 13 12 5 1 0 - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="bracketleft" xMin="395" yMin="-296" xMax="938" yMax="1579"> - <contour> - <pt x="395" y="-296" on="1"/> - <pt x="395" y="1579" on="1"/> - <pt x="938" y="1579" on="1"/> - <pt x="938" y="1456" on="1"/> - <pt x="568" y="1456" on="1"/> - <pt x="568" y="-173" on="1"/> - <pt x="938" y="-173" on="1"/> - <pt x="938" y="-296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 47 values pushed */ - 0 0 4 3 6 1 1 6 5 6 1 0 2 4 48 200 2 1 1 7 0 1 2 0 14 - 7 6 3 2 4 13 4 0 0 5 4 12 1 0 1 4 48 200 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="bracketright" xMin="291" yMin="-296" xMax="834" yMax="1579"> - <contour> - <pt x="834" y="-296" on="1"/> - <pt x="291" y="-296" on="1"/> - <pt x="291" y="-173" on="1"/> - <pt x="661" y="-173" on="1"/> - <pt x="661" y="1456" on="1"/> - <pt x="291" y="1456" on="1"/> - <pt x="291" y="1579" on="1"/> - <pt x="834" y="1579" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 47 values pushed */ - 0 0 5 4 6 1 6 3 2 6 1 0 2 4 48 200 7 6 1 1 0 1 2 0 14 - 6 5 2 1 4 13 3 0 0 4 3 12 1 0 1 4 48 200 7 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="breve" xMin="269" yMin="1289" xMax="960" yMax="1579"> - <contour> - <pt x="269" y="1579" on="1"/> - <pt x="392" y="1579" on="1"/> - <pt x="440" y="1431" on="0"/> - <pt x="614" y="1431" on="1"/> - <pt x="789" y="1431" on="0"/> - <pt x="837" y="1579" on="1"/> - <pt x="960" y="1579" on="1"/> - <pt x="937" y="1490" on="0"/> - <pt x="911" y="1444" on="1"/> - <pt x="820" y="1289" on="0"/> - <pt x="618" y="1289" on="1"/> - <pt x="466" y="1289" on="0"/> - <pt x="377" y="1370" on="1"/> - <pt x="322" y="1419" on="0"/> - <pt x="294" y="1491" on="1"/> - <pt x="283" y="1520" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 17 values pushed */ - 0 0 3 14 10 48 200 10 6 5 1 0 14 6 5 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="brokenbar" xMin="540" yMin="-296" xMax="688" yMax="1579"> - <contour> - <pt x="540" y="-296" on="1"/> - <pt x="540" y="444" on="1"/> - <pt x="688" y="444" on="1"/> - <pt x="688" y="-296" on="1"/> - </contour> - <contour> - <pt x="540" y="839" on="1"/> - <pt x="540" y="1579" on="1"/> - <pt x="688" y="1579" on="1"/> - <pt x="688" y="839" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 34 values pushed */ - 6 5 1 7 4 1 2 1 1 3 0 1 4 0 14 0 0 7 6 3 2 16 3 0 1 - 4 48 200 5 4 1 0 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="bullet" xMin="318" yMin="518" xMax="910" yMax="1110"> - <contour> - <pt x="614" y="1110" on="1"/> - <pt x="737" y="1110" on="0"/> - <pt x="823" y="1023" on="1"/> - <pt x="910" y="937" on="0"/> - <pt x="910" y="815" on="1"/> - <pt x="910" y="690" on="0"/> - <pt x="823" y="604" on="1"/> - <pt x="737" y="518" on="0"/> - <pt x="612" y="518" on="1"/> - <pt x="503" y="518" on="0"/> - <pt x="423" y="588" on="1"/> - <pt x="318" y="679" on="0"/> - <pt x="318" y="814" on="1"/> - <pt x="318" y="937" on="0"/> - <pt x="405" y="1023" on="1"/> - <pt x="492" y="1110" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 15 values pushed */ - 0 0 0 8 48 200 8 14 0 0 4 12 48 200 12 - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="c" xMin="148" yMin="-25" xMax="1031" yMax="1110"> - <contour> - <pt x="1031" y="46" on="1"/> - <pt x="883" y="-25" on="0"/> - <pt x="693" y="-25" on="1"/> - <pt x="441" y="-25" on="0"/> - <pt x="294" y="133" on="1"/> - <pt x="148" y="291" on="0"/> - <pt x="148" y="555" on="1"/> - <pt x="148" y="815" on="0"/> - <pt x="291" y="962" on="1"/> - <pt x="434" y="1110" on="0"/> - <pt x="690" y="1110" on="1"/> - <pt x="862" y="1110" on="0"/> - <pt x="1019" y="1056" on="1"/> - <pt x="1019" y="711" on="1"/> - <pt x="895" y="711" on="1"/> - <pt x="863" y="943" on="1"/> - <pt x="753" y="987" on="0"/> - <pt x="680" y="987" on="1"/> - <pt x="534" y="987" on="0"/> - <pt x="448" y="869" on="1"/> - <pt x="361" y="751" on="0"/> - <pt x="361" y="552" on="1"/> - <pt x="361" y="349" on="0"/> - <pt x="459" y="236" on="1"/> - <pt x="556" y="123" on="0"/> - <pt x="729" y="123" on="1"/> - <pt x="866" y="123" on="0"/> - <pt x="1031" y="200" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 48 values pushed */ - 0 0 25 14 2 17 5 10 48 200 10 1 2 2 1 1 27 15 14 13 12 0 6 1 2 - 3 0 0 14 0 0 21 39 6 48 200 15 14 6 12 27 0 1 13 12 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="cacute" xMin="148" yMin="-25" xMax="1031" yMax="1604"> - <component glyphName="c" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="164" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="caron" xMin="248" yMin="1283" xMax="980" yMax="1604"> - <contour> - <pt x="980" y="1604" on="1"/> - <pt x="723" y="1283" on="1"/> - <pt x="505" y="1283" on="1"/> - <pt x="248" y="1604" on="1"/> - <pt x="372" y="1604" on="1"/> - <pt x="613" y="1402" on="1"/> - <pt x="615" y="1402" on="1"/> - <pt x="857" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 22 values pushed */ - 7 6 5 4 3 0 6 13 1 2 1 1 0 14 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ccaron" xMin="148" yMin="-25" xMax="1046" yMax="1604"> - <component glyphName="c" x="0" y="0" flags="0x4"/> - <component glyphName="caron" x="66" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ccedilla" xMin="148" yMin="-432" xMax="1031" yMax="1110"> - <component glyphName="c" x="0" y="0" flags="0x4"/> - <component glyphName="cedilla" x="53" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ccircumflex" xMin="148" yMin="-25" xMax="1045" yMax="1604"> - <contour> - <pt x="1031" y="46" on="1"/> - <pt x="883" y="-25" on="0"/> - <pt x="693" y="-25" on="1"/> - <pt x="441" y="-25" on="0"/> - <pt x="294" y="133" on="1"/> - <pt x="148" y="291" on="0"/> - <pt x="148" y="555" on="1"/> - <pt x="148" y="815" on="0"/> - <pt x="291" y="962" on="1"/> - <pt x="434" y="1110" on="0"/> - <pt x="690" y="1110" on="1"/> - <pt x="862" y="1110" on="0"/> - <pt x="1019" y="1056" on="1"/> - <pt x="1019" y="711" on="1"/> - <pt x="895" y="711" on="1"/> - <pt x="863" y="943" on="1"/> - <pt x="753" y="987" on="0"/> - <pt x="680" y="987" on="1"/> - <pt x="534" y="987" on="0"/> - <pt x="448" y="869" on="1"/> - <pt x="361" y="751" on="0"/> - <pt x="361" y="552" on="1"/> - <pt x="361" y="349" on="0"/> - <pt x="459" y="236" on="1"/> - <pt x="556" y="123" on="0"/> - <pt x="729" y="123" on="1"/> - <pt x="866" y="123" on="0"/> - <pt x="1031" y="200" on="1"/> - </contour> - <contour> - <pt x="314" y="1283" on="1"/> - <pt x="570" y="1604" on="1"/> - <pt x="789" y="1604" on="1"/> - <pt x="1045" y="1283" on="1"/> - <pt x="922" y="1283" on="1"/> - <pt x="681" y="1485" on="1"/> - <pt x="678" y="1485" on="1"/> - <pt x="437" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 75 values pushed */ - 0 0 25 14 2 17 5 10 48 200 10 1 2 2 1 35 34 33 32 31 28 6 29 1 3 - 0 1 1 27 15 14 13 12 0 6 1 2 3 0 0 30 29 1 0 14 0 0 21 39 6 - 48 200 31 0 35 34 33 32 30 29 28 15 14 9 13 6 12 27 0 1 13 12 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="cdotaccent" xMin="148" yMin="-25" xMax="1031" yMax="1480"> - <contour> - <pt x="1031" y="46" on="1"/> - <pt x="883" y="-25" on="0"/> - <pt x="693" y="-25" on="1"/> - <pt x="441" y="-25" on="0"/> - <pt x="294" y="133" on="1"/> - <pt x="148" y="291" on="0"/> - <pt x="148" y="555" on="1"/> - <pt x="148" y="815" on="0"/> - <pt x="291" y="962" on="1"/> - <pt x="434" y="1110" on="0"/> - <pt x="690" y="1110" on="1"/> - <pt x="862" y="1110" on="0"/> - <pt x="1019" y="1056" on="1"/> - <pt x="1019" y="711" on="1"/> - <pt x="895" y="711" on="1"/> - <pt x="863" y="943" on="1"/> - <pt x="753" y="987" on="0"/> - <pt x="680" y="987" on="1"/> - <pt x="534" y="987" on="0"/> - <pt x="448" y="869" on="1"/> - <pt x="361" y="751" on="0"/> - <pt x="361" y="552" on="1"/> - <pt x="361" y="349" on="0"/> - <pt x="459" y="236" on="1"/> - <pt x="556" y="123" on="0"/> - <pt x="729" y="123" on="1"/> - <pt x="866" y="123" on="0"/> - <pt x="1031" y="200" on="1"/> - </contour> - <contour> - <pt x="581" y="1283" on="1"/> - <pt x="581" y="1480" on="1"/> - <pt x="778" y="1480" on="1"/> - <pt x="778" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 80 values pushed */ - 0 0 25 14 2 17 5 10 48 200 10 1 2 2 1 1 27 15 14 13 12 0 6 1 2 - 3 0 0 0 0 31 28 10 1 29 1 4 48 200 30 29 0 14 0 0 21 39 6 48 200 - 15 14 2 12 30 3 6 28 0 0 31 30 10 1 28 1 4 48 200 29 28 1 27 0 1 - 13 12 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="cedilla" xMin="441" yMin="-432" xMax="788" yMax="0"> - <contour> - <pt x="557" y="0" on="1"/> - <pt x="654" y="0" on="1"/> - <pt x="594" y="-109" on="1"/> - <pt x="666" y="-111" on="0"/> - <pt x="718" y="-148" on="1"/> - <pt x="788" y="-197" on="0"/> - <pt x="788" y="-269" on="1"/> - <pt x="788" y="-337" on="0"/> - <pt x="729" y="-384" on="1"/> - <pt x="671" y="-432" on="0"/> - <pt x="584" y="-432" on="1"/> - <pt x="517" y="-432" on="0"/> - <pt x="441" y="-411" on="1"/> - <pt x="441" y="-330" on="1"/> - <pt x="491" y="-345" on="0"/> - <pt x="545" y="-345" on="1"/> - <pt x="649" y="-345" on="0"/> - <pt x="649" y="-271" on="1"/> - <pt x="649" y="-178" on="0"/> - <pt x="462" y="-175" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 29 values pushed */ - 0 0 15 32 10 48 200 19 13 12 10 2 1 0 14 0 0 17 20 6 48 200 19 13 12 - 6 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="cent" xMin="173" yMin="0" xMax="1061" yMax="1480"> - <contour> - <pt x="629" y="0" on="1"/> - <pt x="629" y="179" on="1"/> - <pt x="428" y="204" on="0"/> - <pt x="317" y="320" on="1"/> - <pt x="173" y="469" on="0"/> - <pt x="173" y="737" on="1"/> - <pt x="173" y="1020" on="0"/> - <pt x="330" y="1172" on="1"/> - <pt x="439" y="1278" on="0"/> - <pt x="629" y="1305" on="1"/> - <pt x="629" y="1480" on="1"/> - <pt x="753" y="1480" on="1"/> - <pt x="753" y="1308" on="1"/> - <pt x="909" y="1295" on="0"/> - <pt x="1049" y="1258" on="1"/> - <pt x="1049" y="938" on="1"/> - <pt x="926" y="938" on="1"/> - <pt x="901" y="1147" on="1"/> - <pt x="830" y="1184" on="0"/> - <pt x="753" y="1184" on="1"/> - <pt x="753" y="305" on="1"/> - <pt x="869" y="305" on="0"/> - <pt x="1061" y="376" on="1"/> - <pt x="1061" y="234" on="1"/> - <pt x="915" y="183" on="0"/> - <pt x="753" y="173" on="1"/> - <pt x="753" y="0" on="1"/> - </contour> - <contour> - <pt x="629" y="317" on="1"/> - <pt x="629" y="1179" on="1"/> - <pt x="563" y="1157" on="0"/> - <pt x="529" y="1131" on="1"/> - <pt x="383" y="1021" on="0"/> - <pt x="383" y="734" on="1"/> - <pt x="383" y="512" on="0"/> - <pt x="474" y="406" on="1"/> - <pt x="512" y="361" on="0"/> - <pt x="560" y="339" on="1"/> - <pt x="583" y="329" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 64 values pushed */ - 28 27 26 25 23 22 20 19 17 16 15 14 12 11 10 9 1 0 14 0 0 32 39 5 48 - 200 17 16 2 14 11 3 5 0 0 0 28 27 10 9 1 0 6 5 11 1 4 48 200 23 - 22 1 15 14 1 26 25 20 19 12 11 5 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="circumflex" xMin="248" yMin="1283" xMax="979" yMax="1604"> - <contour> - <pt x="248" y="1283" on="1"/> - <pt x="504" y="1604" on="1"/> - <pt x="723" y="1604" on="1"/> - <pt x="979" y="1283" on="1"/> - <pt x="856" y="1283" on="1"/> - <pt x="615" y="1485" on="1"/> - <pt x="612" y="1485" on="1"/> - <pt x="371" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 22 values pushed */ - 7 6 5 4 3 0 6 13 1 2 1 1 0 14 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="colon" xMin="466" yMin="0" xMax="762" yMax="1086"> - <contour> - <pt x="466" y="0" on="1"/> - <pt x="466" y="296" on="1"/> - <pt x="762" y="296" on="1"/> - <pt x="762" y="0" on="1"/> - </contour> - <contour> - <pt x="466" y="790" on="1"/> - <pt x="466" y="1086" on="1"/> - <pt x="762" y="1086" on="1"/> - <pt x="762" y="790" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 43 values pushed */ - 0 0 7 4 8 1 5 2 1 8 1 0 2 4 48 200 3 0 1 0 6 5 1 14 0 - 0 7 6 3 2 8 3 0 1 4 48 200 5 4 1 0 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="comma" xMin="466" yMin="-321" xMax="762" yMax="296"> - <contour> - <pt x="466" y="0" on="1"/> - <pt x="466" y="296" on="1"/> - <pt x="762" y="296" on="1"/> - <pt x="762" y="116" on="1"/> - <pt x="760" y="-302" on="0"/> - <pt x="466" y="-321" on="1"/> - <pt x="466" y="-222" on="1"/> - <pt x="541" y="-210" on="0"/> - <pt x="563" y="-155" on="1"/> - <pt x="583" y="-107" on="0"/> - <pt x="589" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 34 values pushed */ - 10 6 5 3 0 5 13 1 2 1 1 0 14 10 2 0 2 0 0 3 2 8 1 0 1 - 4 48 200 6 5 1 0 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="copyright" xMin="62" yMin="-37" xMax="1168" yMax="1517"> - <contour> - <pt x="615" y="1517" on="1"/> - <pt x="864" y="1517" on="0"/> - <pt x="1016" y="1304" on="1"/> - <pt x="1168" y="1091" on="0"/> - <pt x="1168" y="742" on="1"/> - <pt x="1168" y="386" on="0"/> - <pt x="1016" y="175" on="1"/> - <pt x="864" y="-37" on="0"/> - <pt x="606" y="-37" on="1"/> - <pt x="388" y="-37" on="0"/> - <pt x="245" y="136" on="1"/> - <pt x="62" y="357" on="0"/> - <pt x="62" y="740" on="1"/> - <pt x="62" y="1092" on="0"/> - <pt x="214" y="1304" on="1"/> - <pt x="366" y="1517" on="0"/> - </contour> - <contour> - <pt x="615" y="1406" on="1"/> - <pt x="423" y="1406" on="0"/> - <pt x="304" y="1222" on="1"/> - <pt x="185" y="1038" on="0"/> - <pt x="185" y="741" on="1"/> - <pt x="185" y="445" on="0"/> - <pt x="303" y="260" on="1"/> - <pt x="421" y="74" on="0"/> - <pt x="611" y="74" on="1"/> - <pt x="785" y="74" on="0"/> - <pt x="899" y="221" on="1"/> - <pt x="1044" y="407" on="0"/> - <pt x="1044" y="742" on="1"/> - <pt x="1044" y="1039" on="0"/> - <pt x="925" y="1222" on="1"/> - <pt x="805" y="1406" on="0"/> - </contour> - <contour> - <pt x="872" y="344" on="1"/> - <pt x="852" y="336" on="1"/> - <pt x="737" y="290" on="0"/> - <pt x="651" y="290" on="1"/> - <pt x="491" y="290" on="0"/> - <pt x="389" y="413" on="1"/> - <pt x="286" y="536" on="0"/> - <pt x="286" y="733" on="1"/> - <pt x="286" y="932" on="0"/> - <pt x="386" y="1055" on="1"/> - <pt x="485" y="1178" on="0"/> - <pt x="650" y="1178" on="1"/> - <pt x="743" y="1178" on="0"/> - <pt x="852" y="1151" on="1"/> - <pt x="868" y="1147" on="1"/> - <pt x="868" y="962" on="1"/> - <pt x="783" y="962" on="1"/> - <pt x="783" y="1055" on="1"/> - <pt x="710" y="1080" on="0"/> - <pt x="654" y="1080" on="1"/> - <pt x="544" y="1080" on="0"/> - <pt x="477" y="986" on="1"/> - <pt x="409" y="892" on="0"/> - <pt x="409" y="741" on="1"/> - <pt x="409" y="586" on="0"/> - <pt x="482" y="494" on="1"/> - <pt x="555" y="401" on="0"/> - <pt x="679" y="401" on="1"/> - <pt x="776" y="401" on="0"/> - <pt x="872" y="451" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 67 values pushed */ - 0 0 59 40 35 51 17 43 24 40 8 16 40 0 48 200 8 2 0 0 43 35 1 1 61 - 49 48 47 46 43 35 32 8 0 2 3 0 0 14 0 0 55 6 39 28 6 4 20 6 12 - 48 200 61 32 2 13 4 46 49 48 39 12 46 47 46 1 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MDAP[1] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="currency" xMin="85" yMin="141" xMax="1143" yMax="1200"> - <contour> - <pt x="347" y="316" on="1"/> - <pt x="172" y="141" on="1"/> - <pt x="85" y="228" on="1"/> - <pt x="259" y="403" on="1"/> - <pt x="170" y="528" on="0"/> - <pt x="170" y="670" on="1"/> - <pt x="170" y="814" on="0"/> - <pt x="259" y="938" on="1"/> - <pt x="85" y="1112" on="1"/> - <pt x="172" y="1200" on="1"/> - <pt x="347" y="1025" on="1"/> - <pt x="477" y="1115" on="0"/> - <pt x="614" y="1115" on="1"/> - <pt x="751" y="1115" on="0"/> - <pt x="881" y="1025" on="1"/> - <pt x="1056" y="1200" on="1"/> - <pt x="1143" y="1112" on="1"/> - <pt x="968" y="938" on="1"/> - <pt x="1058" y="813" on="0"/> - <pt x="1058" y="670" on="1"/> - <pt x="1058" y="528" on="0"/> - <pt x="968" y="403" on="1"/> - <pt x="1143" y="229" on="1"/> - <pt x="1056" y="141" on="1"/> - <pt x="881" y="316" on="1"/> - <pt x="751" y="226" on="0"/> - <pt x="614" y="226" on="1"/> - <pt x="477" y="226" on="0"/> - </contour> - <contour> - <pt x="614" y="967" on="1"/> - <pt x="490" y="967" on="0"/> - <pt x="404" y="881" on="1"/> - <pt x="318" y="796" on="0"/> - <pt x="318" y="674" on="1"/> - <pt x="318" y="559" on="0"/> - <pt x="387" y="477" on="1"/> - <pt x="475" y="374" on="0"/> - <pt x="615" y="374" on="1"/> - <pt x="739" y="374" on="0"/> - <pt x="824" y="460" on="1"/> - <pt x="910" y="546" on="0"/> - <pt x="910" y="671" on="1"/> - <pt x="910" y="795" on="0"/> - <pt x="824" y="881" on="1"/> - <pt x="739" y="967" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 68 values pushed */ - 0 0 36 14 26 28 14 12 48 200 12 1 1 16 15 9 8 4 13 1 0 1 24 23 22 - 21 17 14 10 7 3 2 1 0 12 13 26 1 0 14 0 0 40 16 19 32 16 5 48 200 - 24 23 22 21 19 17 16 15 14 10 9 8 7 5 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="d" xMin="111" yMin="-25" xMax="1167" yMax="1579"> - <contour> - <pt x="846" y="1456" on="1"/> - <pt x="600" y="1456" on="1"/> - <pt x="600" y="1579" on="1"/> - <pt x="1044" y="1579" on="1"/> - <pt x="1044" y="123" on="1"/> - <pt x="1167" y="123" on="1"/> - <pt x="1167" y="0" on="1"/> - <pt x="846" y="0" on="1"/> - <pt x="846" y="222" on="1"/> - <pt x="771" y="111" on="0"/> - <pt x="701" y="55" on="1"/> - <pt x="599" y="-25" on="0"/> - <pt x="480" y="-25" on="1"/> - <pt x="315" y="-25" on="0"/> - <pt x="213" y="119" on="1"/> - <pt x="111" y="262" on="0"/> - <pt x="111" y="498" on="1"/> - <pt x="111" y="783" on="0"/> - <pt x="246" y="946" on="1"/> - <pt x="380" y="1110" on="0"/> - <pt x="618" y="1110" on="1"/> - <pt x="705" y="1110" on="0"/> - <pt x="846" y="1086" on="1"/> - </contour> - <contour> - <pt x="846" y="939" on="1"/> - <pt x="710" y="962" on="0"/> - <pt x="633" y="962" on="1"/> - <pt x="468" y="962" on="0"/> - <pt x="394" y="855" on="1"/> - <pt x="321" y="748" on="0"/> - <pt x="321" y="510" on="1"/> - <pt x="321" y="136" on="0"/> - <pt x="535" y="136" on="1"/> - <pt x="699" y="136" on="0"/> - <pt x="846" y="370" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 81 values pushed */ - 0 0 31 30 12 25 14 20 48 200 20 1 12 2 1 33 23 22 8 5 4 6 1 6 3 - 0 0 0 1 0 6 1 2 1 4 48 200 3 2 1 7 6 1 2 0 14 0 0 29 39 - 16 48 200 6 5 2 13 3 2 1 16 0 0 0 33 23 22 8 7 0 10 5 3 1 4 - 48 200 4 3 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dagger" xMin="170" yMin="-296" xMax="1058" yMax="1480"> - <contour> - <pt x="515" y="-296" on="1"/> - <pt x="540" y="827" on="1"/> - <pt x="170" y="814" on="1"/> - <pt x="170" y="962" on="1"/> - <pt x="540" y="950" on="1"/> - <pt x="515" y="1480" on="1"/> - <pt x="713" y="1480" on="1"/> - <pt x="688" y="950" on="1"/> - <pt x="1058" y="962" on="1"/> - <pt x="1058" y="814" on="1"/> - <pt x="688" y="827" on="1"/> - <pt x="713" y="-296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 42 values pushed */ - 1 10 9 8 7 4 3 2 1 8 5 2 3 0 11 0 1 0 6 5 0 14 11 10 7 - 6 5 4 1 0 8 8 2 3 9 8 1 3 2 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="daggerdbl" xMin="170" yMin="-296" xMax="1058" yMax="1480"> - <contour> - <pt x="515" y="-296" on="1"/> - <pt x="540" y="234" on="1"/> - <pt x="170" y="222" on="1"/> - <pt x="170" y="370" on="1"/> - <pt x="540" y="358" on="1"/> - <pt x="540" y="827" on="1"/> - <pt x="170" y="814" on="1"/> - <pt x="170" y="962" on="1"/> - <pt x="540" y="950" on="1"/> - <pt x="515" y="1480" on="1"/> - <pt x="713" y="1480" on="1"/> - <pt x="688" y="950" on="1"/> - <pt x="1058" y="962" on="1"/> - <pt x="1058" y="814" on="1"/> - <pt x="688" y="827" on="1"/> - <pt x="688" y="358" on="1"/> - <pt x="1058" y="370" on="1"/> - <pt x="1058" y="222" on="1"/> - <pt x="688" y="234" on="1"/> - <pt x="713" y="-296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 72 values pushed */ - 1 18 17 16 15 14 13 12 11 8 7 6 5 4 3 2 1 16 9 2 3 0 19 0 1 - 0 10 9 0 14 19 10 2 12 11 3 9 0 2 1 2 3 0 0 18 15 14 11 14 3 - 1 1 4 48 200 17 16 13 12 3 8 5 4 1 3 7 6 3 2 3 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dcaron" xMin="111" yMin="-25" xMax="1229" yMax="1579"> - <contour> - <pt x="753" y="0" on="1"/> - <pt x="753" y="222" on="1"/> - <pt x="691" y="111" on="0"/> - <pt x="630" y="55" on="1"/> - <pt x="542" y="-25" on="0"/> - <pt x="435" y="-25" on="1"/> - <pt x="290" y="-25" on="0"/> - <pt x="201" y="119" on="1"/> - <pt x="111" y="263" on="0"/> - <pt x="111" y="498" on="1"/> - <pt x="111" y="782" on="0"/> - <pt x="229" y="946" on="1"/> - <pt x="346" y="1110" on="0"/> - <pt x="554" y="1110" on="1"/> - <pt x="634" y="1110" on="0"/> - <pt x="753" y="1086" on="1"/> - <pt x="753" y="1456" on="1"/> - <pt x="537" y="1456" on="1"/> - <pt x="537" y="1579" on="1"/> - <pt x="950" y="1579" on="1"/> - <pt x="950" y="123" on="1"/> - <pt x="1058" y="123" on="1"/> - <pt x="1058" y="0" on="1"/> - </contour> - <contour> - <pt x="753" y="939" on="1"/> - <pt x="645" y="963" on="0"/> - <pt x="574" y="963" on="1"/> - <pt x="433" y="963" on="0"/> - <pt x="376" y="858" on="1"/> - <pt x="318" y="751" on="0"/> - <pt x="318" y="502" on="1"/> - <pt x="318" y="136" on="0"/> - <pt x="490" y="136" on="1"/> - <pt x="644" y="136" on="0"/> - <pt x="753" y="370" on="1"/> - </contour> - <contour> - <pt x="1031" y="1125" on="1"/> - <pt x="1031" y="1184" on="1"/> - <pt x="1108" y="1205" on="0"/> - <pt x="1108" y="1365" on="1"/> - <pt x="1108" y="1382" on="1"/> - <pt x="1031" y="1382" on="1"/> - <pt x="1031" y="1579" on="1"/> - <pt x="1229" y="1579" on="1"/> - <pt x="1229" y="1408" on="1"/> - <pt x="1228" y="1146" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 109 values pushed */ - 0 0 31 30 5 25 14 13 48 200 13 1 5 2 1 42 39 38 37 35 34 6 16 1 3 - 0 1 33 23 21 20 15 1 6 1 0 3 0 0 0 17 16 6 1 18 1 4 48 200 41 - 40 19 18 3 22 0 1 2 0 14 0 0 29 39 9 48 200 38 37 22 21 4 41 34 3 - 18 17 9 0 0 0 40 39 35 34 10 3 41 33 23 16 15 1 0 10 5 19 2 4 48 - 200 42 41 1 20 19 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dcroat" xMin="111" yMin="-25" xMax="1167" yMax="1579"> - <contour> - <pt x="846" y="0" on="1"/> - <pt x="846" y="222" on="1"/> - <pt x="771" y="111" on="0"/> - <pt x="701" y="55" on="1"/> - <pt x="599" y="-25" on="0"/> - <pt x="480" y="-25" on="1"/> - <pt x="315" y="-25" on="0"/> - <pt x="213" y="119" on="1"/> - <pt x="111" y="262" on="0"/> - <pt x="111" y="498" on="1"/> - <pt x="111" y="783" on="0"/> - <pt x="246" y="946" on="1"/> - <pt x="380" y="1110" on="0"/> - <pt x="618" y="1110" on="1"/> - <pt x="705" y="1110" on="0"/> - <pt x="846" y="1086" on="1"/> - <pt x="846" y="1221" on="1"/> - <pt x="526" y="1221" on="1"/> - <pt x="526" y="1345" on="1"/> - <pt x="846" y="1345" on="1"/> - <pt x="846" y="1456" on="1"/> - <pt x="600" y="1456" on="1"/> - <pt x="600" y="1579" on="1"/> - <pt x="1044" y="1579" on="1"/> - <pt x="1044" y="1345" on="1"/> - <pt x="1167" y="1345" on="1"/> - <pt x="1167" y="1221" on="1"/> - <pt x="1044" y="1221" on="1"/> - <pt x="1044" y="123" on="1"/> - <pt x="1167" y="123" on="1"/> - <pt x="1167" y="0" on="1"/> - </contour> - <contour> - <pt x="846" y="939" on="1"/> - <pt x="710" y="962" on="0"/> - <pt x="633" y="962" on="1"/> - <pt x="468" y="962" on="0"/> - <pt x="394" y="855" on="1"/> - <pt x="321" y="748" on="0"/> - <pt x="321" y="510" on="1"/> - <pt x="321" y="136" on="0"/> - <pt x="535" y="136" on="1"/> - <pt x="699" y="136" on="0"/> - <pt x="846" y="370" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 103 values pushed */ - 0 0 39 30 5 33 14 13 48 200 13 1 5 2 1 41 31 29 28 15 1 6 1 0 3 - 0 0 0 21 20 6 1 22 27 26 17 16 6 3 18 2 4 48 200 23 22 1 25 24 19 - 18 3 30 0 1 3 0 14 0 0 37 39 9 48 200 30 29 26 25 4 13 23 22 21 18 - 17 4 13 9 0 0 0 41 31 20 19 16 15 1 0 10 7 23 1 4 48 200 28 27 24 - 23 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="degree" xMin="318" yMin="925" xMax="910" yMax="1517"> - <contour> - <pt x="614" y="1517" on="1"/> - <pt x="735" y="1517" on="0"/> - <pt x="823" y="1430" on="1"/> - <pt x="910" y="1344" on="0"/> - <pt x="910" y="1222" on="1"/> - <pt x="910" y="1098" on="0"/> - <pt x="823" y="1012" on="1"/> - <pt x="735" y="925" on="0"/> - <pt x="610" y="925" on="1"/> - <pt x="504" y="925" on="0"/> - <pt x="423" y="995" on="1"/> - <pt x="318" y="1087" on="0"/> - <pt x="318" y="1221" on="1"/> - <pt x="318" y="1344" on="0"/> - <pt x="405" y="1430" on="1"/> - <pt x="493" y="1517" on="0"/> - </contour> - <contour> - <pt x="614" y="1394" on="1"/> - <pt x="543" y="1394" on="0"/> - <pt x="492" y="1343" on="1"/> - <pt x="441" y="1293" on="0"/> - <pt x="441" y="1222" on="1"/> - <pt x="441" y="1151" on="0"/> - <pt x="492" y="1100" on="1"/> - <pt x="542" y="1049" on="0"/> - <pt x="612" y="1049" on="1"/> - <pt x="677" y="1049" on="0"/> - <pt x="725" y="1090" on="1"/> - <pt x="787" y="1142" on="0"/> - <pt x="787" y="1222" on="1"/> - <pt x="787" y="1293" on="0"/> - <pt x="736" y="1343" on="1"/> - <pt x="685" y="1394" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 29 values pushed */ - 0 0 24 5 8 16 5 0 48 200 0 0 1 8 0 0 14 0 0 28 6 4 20 6 12 - 48 200 12 4 - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dieresis" xMin="281" yMin="1283" xMax="947" yMax="1480"> - <contour> - <pt x="281" y="1283" on="1"/> - <pt x="281" y="1480" on="1"/> - <pt x="478" y="1480" on="1"/> - <pt x="478" y="1283" on="1"/> - </contour> - <contour> - <pt x="750" y="1283" on="1"/> - <pt x="750" y="1480" on="1"/> - <pt x="947" y="1480" on="1"/> - <pt x="947" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 44 values pushed */ - 0 0 7 4 3 0 10 3 1 1 4 48 200 6 5 2 1 0 3 14 0 0 5 4 10 - 1 6 3 2 10 1 0 2 4 48 200 7 6 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="divide" xMin="99" yMin="0" xMax="1130" yMax="1234"> - <contour> - <pt x="99" y="543" on="1"/> - <pt x="99" y="691" on="1"/> - <pt x="1130" y="691" on="1"/> - <pt x="1130" y="543" on="1"/> - </contour> - <contour> - <pt x="491" y="0" on="1"/> - <pt x="491" y="247" on="1"/> - <pt x="738" y="247" on="1"/> - <pt x="738" y="0" on="1"/> - </contour> - <contour> - <pt x="491" y="987" on="1"/> - <pt x="491" y="1234" on="1"/> - <pt x="738" y="1234" on="1"/> - <pt x="738" y="987" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 59 values pushed */ - 0 0 11 8 4 1 9 6 5 4 1 4 3 0 7 1 1 3 4 48 200 10 9 1 7 - 4 1 2 1 1 3 0 14 0 0 11 10 7 6 4 3 4 1 4 48 200 9 8 5 4 - 3 3 2 1 1 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dollar" xMin="143" yMin="-123" xMax="1031" yMax="1604"> - <contour> - <pt x="525" y="-123" on="1"/> - <pt x="525" y="0" on="1"/> - <pt x="323" y="16" on="0"/> - <pt x="143" y="86" on="1"/> - <pt x="143" y="385" on="1"/> - <pt x="266" y="385" on="1"/> - <pt x="291" y="187" on="1"/> - <pt x="415" y="131" on="0"/> - <pt x="525" y="123" on="1"/> - <pt x="525" y="698" on="1"/> - <pt x="435" y="751" on="1"/> - <pt x="180" y="901" on="0"/> - <pt x="180" y="1123" on="1"/> - <pt x="180" y="1297" on="0"/> - <pt x="309" y="1396" on="1"/> - <pt x="399" y="1465" on="0"/> - <pt x="550" y="1480" on="1"/> - <pt x="550" y="1604" on="1"/> - <pt x="674" y="1604" on="1"/> - <pt x="674" y="1480" on="1"/> - <pt x="835" y="1479" on="0"/> - <pt x="1002" y="1408" on="1"/> - <pt x="1002" y="1124" on="1"/> - <pt x="879" y="1124" on="1"/> - <pt x="854" y="1322" on="1"/> - <pt x="767" y="1357" on="0"/> - <pt x="695" y="1357" on="1"/> - <pt x="674" y="1357" on="1"/> - <pt x="674" y="823" on="1"/> - <pt x="761" y="776" on="1"/> - <pt x="911" y="695" on="0"/> - <pt x="971" y="613" on="1"/> - <pt x="1031" y="531" on="0"/> - <pt x="1031" y="409" on="1"/> - <pt x="1031" y="212" on="0"/> - <pt x="893" y="95" on="1"/> - <pt x="800" y="15" on="0"/> - <pt x="649" y="0" on="1"/> - <pt x="649" y="-123" on="1"/> - </contour> - <contour> - <pt x="649" y="123" on="1"/> - <pt x="730" y="132" on="0"/> - <pt x="782" y="192" on="1"/> - <pt x="852" y="272" on="0"/> - <pt x="852" y="388" on="1"/> - <pt x="852" y="520" on="0"/> - <pt x="716" y="597" on="1"/> - <pt x="649" y="635" on="1"/> - </contour> - <contour> - <pt x="550" y="891" on="1"/> - <pt x="550" y="1357" on="1"/> - <pt x="445" y="1331" on="0"/> - <pt x="400" y="1271" on="1"/> - <pt x="358" y="1216" on="0"/> - <pt x="358" y="1133" on="1"/> - <pt x="358" y="1003" on="0"/> - <pt x="497" y="922" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 91 values pushed */ - 48 47 46 39 38 37 28 27 26 24 23 22 21 19 18 17 16 9 8 6 5 4 3 1 0 - 14 0 0 52 13 12 43 13 33 48 200 26 24 23 3 21 18 3 12 12 6 5 3 0 3 - 3 33 21 0 0 28 27 19 18 6 3 16 46 39 38 37 6 3 0 2 4 48 200 22 21 - 1 48 47 17 16 3 9 8 1 0 3 4 3 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dotaccent" xMin="516" yMin="1283" xMax="713" yMax="1480"> - <contour> - <pt x="516" y="1283" on="1"/> - <pt x="516" y="1480" on="1"/> - <pt x="713" y="1480" on="1"/> - <pt x="713" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 30 values pushed */ - 0 0 3 0 10 1 1 1 4 48 200 2 1 0 14 0 0 3 2 10 1 0 1 4 48 - 200 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dotlessi" xMin="148" yMin="0" xMax="1105" yMax="1086"> - <contour> - <pt x="148" y="0" on="1"/> - <pt x="148" y="123" on="1"/> - <pt x="538" y="123" on="1"/> - <pt x="538" y="962" on="1"/> - <pt x="148" y="962" on="1"/> - <pt x="148" y="1086" on="1"/> - <pt x="735" y="1086" on="1"/> - <pt x="735" y="123" on="1"/> - <pt x="1105" y="123" on="1"/> - <pt x="1105" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 53 values pushed */ - 0 0 4 3 6 1 5 8 7 2 1 6 3 0 2 4 48 200 9 0 1 0 6 5 1 - 14 9 8 2 13 6 5 4 1 0 4 13 2 0 0 7 6 10 1 2 1 4 48 200 3 - 2 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dotlessj" xMin="159" yMin="-420" xMax="903" yMax="1086"> - <contour> - <pt x="159" y="-344" on="1"/> - <pt x="159" y="-25" on="1"/> - <pt x="282" y="-25" on="1"/> - <pt x="313" y="-243" on="1"/> - <pt x="381" y="-296" on="0"/> - <pt x="460" y="-296" on="1"/> - <pt x="592" y="-296" on="0"/> - <pt x="648" y="-200" on="1"/> - <pt x="705" y="-104" on="0"/> - <pt x="705" y="127" on="1"/> - <pt x="705" y="962" on="1"/> - <pt x="261" y="962" on="1"/> - <pt x="261" y="1086" on="1"/> - <pt x="903" y="1086" on="1"/> - <pt x="903" y="66" on="1"/> - <pt x="903" y="-164" on="0"/> - <pt x="790" y="-292" on="1"/> - <pt x="677" y="-420" on="0"/> - <pt x="476" y="-420" on="1"/> - <pt x="337" y="-420" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 67 values pushed */ - 0 0 5 5 18 48 200 1 14 9 2 10 2 3 0 1 3 2 1 0 4 13 18 2 0 - 0 0 11 10 6 1 12 1 4 48 200 13 12 1 14 12 11 3 2 4 9 0 3 0 0 - 10 9 10 1 13 1 4 48 200 14 13 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dotmath" xMin="491" yMin="419" xMax="738" yMax="666"> - <contour> - <pt x="491" y="419" on="1"/> - <pt x="491" y="666" on="1"/> - <pt x="738" y="666" on="1"/> - <pt x="738" y="419" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 31 values pushed */ - 0 0 2 1 4 1 0 1 4 48 200 3 0 1 0 14 0 0 3 2 4 1 0 1 4 - 48 200 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="e" xMin="123" yMin="-25" xMax="1105" yMax="1110"> - <contour> - <pt x="1105" y="506" on="1"/> - <pt x="334" y="506" on="1"/> - <pt x="348" y="389" on="0"/> - <pt x="375" y="329" on="1"/> - <pt x="466" y="123" on="0"/> - <pt x="727" y="123" on="1"/> - <pt x="888" y="123" on="0"/> - <pt x="1076" y="210" on="1"/> - <pt x="1076" y="62" on="1"/> - <pt x="901" y="-25" on="0"/> - <pt x="701" y="-25" on="1"/> - <pt x="442" y="-25" on="0"/> - <pt x="282" y="134" on="1"/> - <pt x="123" y="293" on="0"/> - <pt x="123" y="551" on="1"/> - <pt x="123" y="802" on="0"/> - <pt x="271" y="956" on="1"/> - <pt x="418" y="1110" on="0"/> - <pt x="660" y="1110" on="1"/> - <pt x="1105" y="1110" on="0"/> - <pt x="1105" y="567" on="1"/> - </contour> - <contour> - <pt x="336" y="629" on="1"/> - <pt x="895" y="629" on="1"/> - <pt x="895" y="675" on="1"/> - <pt x="895" y="987" on="0"/> - <pt x="646" y="987" on="1"/> - <pt x="492" y="987" on="0"/> - <pt x="408" y="864" on="1"/> - <pt x="349" y="778" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 65 values pushed */ - 0 0 25 5 18 5 14 10 48 200 18 1 10 2 1 23 1 21 2 0 20 21 0 2 1 - 8 7 2 0 2 3 0 0 0 1 0 6 1 21 1 4 48 200 22 21 1 0 14 20 0 - 2 13 7 23 22 21 1 4 13 14 7 8 7 1 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="eacute" xMin="123" yMin="-25" xMax="1105" yMax="1604"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="133" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ebreve" xMin="123" yMin="-25" xMax="1105" yMax="1579"> - <contour> - <pt x="1105" y="506" on="1"/> - <pt x="334" y="506" on="1"/> - <pt x="348" y="389" on="0"/> - <pt x="375" y="329" on="1"/> - <pt x="466" y="123" on="0"/> - <pt x="727" y="123" on="1"/> - <pt x="888" y="123" on="0"/> - <pt x="1076" y="210" on="1"/> - <pt x="1076" y="62" on="1"/> - <pt x="901" y="-25" on="0"/> - <pt x="701" y="-25" on="1"/> - <pt x="442" y="-25" on="0"/> - <pt x="282" y="134" on="1"/> - <pt x="123" y="293" on="0"/> - <pt x="123" y="551" on="1"/> - <pt x="123" y="802" on="0"/> - <pt x="271" y="956" on="1"/> - <pt x="418" y="1110" on="0"/> - <pt x="660" y="1110" on="1"/> - <pt x="1105" y="1110" on="0"/> - <pt x="1105" y="567" on="1"/> - </contour> - <contour> - <pt x="336" y="629" on="1"/> - <pt x="895" y="629" on="1"/> - <pt x="895" y="675" on="1"/> - <pt x="895" y="987" on="0"/> - <pt x="646" y="987" on="1"/> - <pt x="492" y="987" on="0"/> - <pt x="408" y="864" on="1"/> - <pt x="349" y="778" on="0"/> - </contour> - <contour> - <pt x="303" y="1579" on="1"/> - <pt x="426" y="1579" on="1"/> - <pt x="474" y="1431" on="0"/> - <pt x="648" y="1431" on="1"/> - <pt x="823" y="1431" on="0"/> - <pt x="871" y="1579" on="1"/> - <pt x="994" y="1579" on="1"/> - <pt x="971" y="1490" on="0"/> - <pt x="945" y="1444" on="1"/> - <pt x="854" y="1289" on="0"/> - <pt x="652" y="1289" on="1"/> - <pt x="500" y="1289" on="0"/> - <pt x="411" y="1370" on="1"/> - <pt x="356" y="1419" on="0"/> - <pt x="328" y="1491" on="1"/> - <pt x="317" y="1520" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 82 values pushed */ - 0 0 32 14 39 25 5 18 5 14 10 48 200 18 1 10 2 1 23 1 21 2 0 20 21 - 0 2 1 8 7 2 0 2 3 0 1 35 34 30 29 4 13 39 1 0 0 0 1 0 6 - 1 21 1 4 48 200 22 21 1 0 14 20 0 2 13 7 35 34 30 29 23 22 21 1 8 - 13 14 7 8 7 1 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ecaron" xMin="123" yMin="-25" xMax="1105" yMax="1604"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="caron" x="35" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ecircumflex" xMin="123" yMin="-25" xMax="1105" yMax="1604"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="circumflex" x="35" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="edieresis" xMin="123" yMin="-25" xMax="1105" yMax="1480"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="dieresis" x="34" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="edotaccent" xMin="123" yMin="-25" xMax="1105" yMax="1480"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="dotaccent" x="34" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="egrave" xMin="123" yMin="-25" xMax="1105" yMax="1604"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="grave" x="-64" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="eight" xMin="120" yMin="-37" xMax="1113" yMax="1517"> - <contour> - <pt x="413" y="803" on="1"/> - <pt x="360" y="843" on="1"/> - <pt x="188" y="973" on="0"/> - <pt x="188" y="1145" on="1"/> - <pt x="188" y="1307" on="0"/> - <pt x="313" y="1412" on="1"/> - <pt x="437" y="1517" on="0"/> - <pt x="634" y="1517" on="1"/> - <pt x="821" y="1517" on="0"/> - <pt x="936" y="1426" on="1"/> - <pt x="1051" y="1335" on="0"/> - <pt x="1051" y="1185" on="1"/> - <pt x="1051" y="1067" on="0"/> - <pt x="993" y="988" on="1"/> - <pt x="949" y="929" on="0"/> - <pt x="844" y="835" on="1"/> - <pt x="797" y="793" on="1"/> - <pt x="865" y="747" on="1"/> - <pt x="1009" y="650" on="0"/> - <pt x="1061" y="572" on="1"/> - <pt x="1113" y="495" on="0"/> - <pt x="1113" y="381" on="1"/> - <pt x="1113" y="195" on="0"/> - <pt x="974" y="79" on="1"/> - <pt x="835" y="-37" on="0"/> - <pt x="611" y="-37" on="1"/> - <pt x="387" y="-37" on="0"/> - <pt x="254" y="75" on="1"/> - <pt x="120" y="187" on="0"/> - <pt x="120" y="372" on="1"/> - <pt x="120" y="596" on="0"/> - <pt x="358" y="764" on="1"/> - </contour> - <contour> - <pt x="682" y="862" on="1"/> - <pt x="866" y="1031" on="0"/> - <pt x="866" y="1174" on="1"/> - <pt x="866" y="1280" on="0"/> - <pt x="802" y="1337" on="1"/> - <pt x="737" y="1394" on="0"/> - <pt x="612" y="1394" on="1"/> - <pt x="503" y="1394" on="0"/> - <pt x="437" y="1334" on="1"/> - <pt x="372" y="1275" on="0"/> - <pt x="372" y="1184" on="1"/> - <pt x="372" y="1087" on="0"/> - <pt x="499" y="990" on="1"/> - <pt x="597" y="915" on="1"/> - </contour> - <contour> - <pt x="512" y="743" on="1"/> - <pt x="399" y="620" on="0"/> - <pt x="360" y="552" on="1"/> - <pt x="317" y="477" on="0"/> - <pt x="317" y="377" on="1"/> - <pt x="317" y="249" on="0"/> - <pt x="404" y="168" on="1"/> - <pt x="491" y="86" on="0"/> - <pt x="626" y="86" on="1"/> - <pt x="751" y="86" on="0"/> - <pt x="827" y="158" on="1"/> - <pt x="903" y="229" on="0"/> - <pt x="903" y="345" on="1"/> - <pt x="903" y="427" on="0"/> - <pt x="864" y="480" on="1"/> - <pt x="827" y="532" on="0"/> - <pt x="714" y="608" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 53 values pushed */ - 0 0 54 5 25 38 5 7 48 200 25 2 7 0 1 1 46 45 32 16 0 5 0 2 3 - 0 0 14 0 0 58 39 21 50 28 29 42 19 3 34 19 11 48 200 46 45 32 29 21 16 - 11 3 0 - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ellipsis" xMin="81" yMin="0" xMax="1147" yMax="247"> - <contour> - <pt x="81" y="0" on="1"/> - <pt x="81" y="247" on="1"/> - <pt x="328" y="247" on="1"/> - <pt x="328" y="0" on="1"/> - </contour> - <contour> - <pt x="491" y="0" on="1"/> - <pt x="491" y="247" on="1"/> - <pt x="737" y="247" on="1"/> - <pt x="737" y="0" on="1"/> - </contour> - <contour> - <pt x="900" y="0" on="1"/> - <pt x="900" y="247" on="1"/> - <pt x="1147" y="247" on="1"/> - <pt x="1147" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 56 values pushed */ - 0 0 10 9 6 5 2 1 4 5 0 1 4 48 200 11 8 7 4 3 0 5 0 14 0 - 0 9 8 4 1 10 7 6 4 1 4 3 2 4 1 0 3 4 48 200 11 10 1 5 4 - 1 1 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="emacron" xMin="123" yMin="-25" xMax="1105" yMax="1407"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="macron" x="34" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="emdash" xMin="0" yMin="543" xMax="1229" yMax="666"> - <contour> - <pt x="0" y="543" on="1"/> - <pt x="0" y="666" on="1"/> - <pt x="1229" y="666" on="1"/> - <pt x="1229" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 0 0 3 0 6 1 1 1 4 48 200 2 1 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="endash" xMin="121" yMin="543" xMax="1108" yMax="691"> - <contour> - <pt x="121" y="543" on="1"/> - <pt x="121" y="691" on="1"/> - <pt x="1108" y="691" on="1"/> - <pt x="1108" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 24 values pushed */ - 0 0 3 0 7 1 1 1 4 48 200 2 1 1 0 14 3 2 1 1 0 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="eng" xMin="69" yMin="-420" xMax="1045" yMax="1110"> - <contour> - <pt x="69" y="0" on="1"/> - <pt x="69" y="123" on="1"/> - <pt x="192" y="123" on="1"/> - <pt x="192" y="962" on="1"/> - <pt x="69" y="962" on="1"/> - <pt x="69" y="1086" on="1"/> - <pt x="390" y="1086" on="1"/> - <pt x="390" y="876" on="1"/> - <pt x="459" y="981" on="0"/> - <pt x="527" y="1034" on="1"/> - <pt x="623" y="1110" on="0"/> - <pt x="742" y="1110" on="1"/> - <pt x="1043" y="1110" on="0"/> - <pt x="1043" y="722" on="1"/> - <pt x="1044" y="11" on="1"/> - <pt x="1045" y="-420" on="0"/> - <pt x="681" y="-420" on="1"/> - <pt x="585" y="-420" on="0"/> - <pt x="458" y="-383" on="1"/> - <pt x="458" y="-173" on="1"/> - <pt x="581" y="-173" on="1"/> - <pt x="593" y="-290" on="1"/> - <pt x="657" y="-321" on="0"/> - <pt x="704" y="-321" on="1"/> - <pt x="846" y="-321" on="0"/> - <pt x="846" y="-82" on="1"/> - <pt x="846" y="701" on="1"/> - <pt x="846" y="956" on="0"/> - <pt x="683" y="956" on="1"/> - <pt x="533" y="956" on="0"/> - <pt x="390" y="704" on="1"/> - <pt x="390" y="123" on="1"/> - <pt x="501" y="123" on="1"/> - <pt x="501" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 81 values pushed */ - 0 0 28 30 11 23 17 16 48 200 11 1 32 31 30 26 7 4 3 2 1 9 5 0 3 - 25 21 20 19 18 5 13 16 0 33 0 1 0 6 5 1 14 33 32 21 20 4 25 18 3 - 5 4 1 0 4 13 2 0 0 31 30 7 6 10 3 2 1 4 48 200 26 25 1 19 18 - 1 3 2 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="eogonek" xMin="123" yMin="-370" xMax="1105" yMax="1110"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="ogonek" x="148" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="equal" xMin="99" yMin="346" xMax="1130" yMax="888"> - <contour> - <pt x="99" y="346" on="1"/> - <pt x="99" y="494" on="1"/> - <pt x="1130" y="494" on="1"/> - <pt x="1130" y="346" on="1"/> - </contour> - <contour> - <pt x="99" y="740" on="1"/> - <pt x="99" y="888" on="1"/> - <pt x="1130" y="888" on="1"/> - <pt x="1130" y="740" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 37 values pushed */ - 0 0 7 4 7 1 5 2 1 7 1 0 2 4 48 200 6 5 1 3 0 1 2 0 14 - 7 6 3 2 3 5 4 1 0 3 2 0 - LOOPCALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="estimated" xMin="123" yMin="-25" xMax="1105" yMax="1110"> - <contour> - <pt x="1105" y="506" on="1"/> - <pt x="334" y="506" on="1"/> - <pt x="348" y="389" on="0"/> - <pt x="375" y="329" on="1"/> - <pt x="466" y="123" on="0"/> - <pt x="727" y="123" on="1"/> - <pt x="888" y="123" on="0"/> - <pt x="1076" y="210" on="1"/> - <pt x="1076" y="62" on="1"/> - <pt x="901" y="-25" on="0"/> - <pt x="701" y="-25" on="1"/> - <pt x="442" y="-25" on="0"/> - <pt x="282" y="134" on="1"/> - <pt x="123" y="293" on="0"/> - <pt x="123" y="551" on="1"/> - <pt x="123" y="802" on="0"/> - <pt x="271" y="956" on="1"/> - <pt x="418" y="1110" on="0"/> - <pt x="660" y="1110" on="1"/> - <pt x="1105" y="1110" on="0"/> - <pt x="1105" y="567" on="1"/> - </contour> - <contour> - <pt x="336" y="629" on="1"/> - <pt x="895" y="629" on="1"/> - <pt x="895" y="675" on="1"/> - <pt x="895" y="987" on="0"/> - <pt x="646" y="987" on="1"/> - <pt x="492" y="987" on="0"/> - <pt x="408" y="864" on="1"/> - <pt x="349" y="778" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 65 values pushed */ - 0 0 25 5 18 5 14 10 48 200 18 1 10 2 1 23 1 21 2 0 20 21 0 2 1 - 8 7 2 0 2 3 0 0 0 1 0 6 1 21 1 4 48 200 22 21 1 0 14 20 0 - 2 13 7 23 22 21 1 4 13 14 7 8 7 1 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="eth" xMin="111" yMin="-25" xMax="1119" yMax="1614"> - <contour> - <pt x="779" y="1039" on="1"/> - <pt x="658" y="1216" on="0"/> - <pt x="552" y="1291" on="1"/> - <pt x="271" y="1098" on="1"/> - <pt x="197" y="1202" on="1"/> - <pt x="440" y="1366" on="1"/> - <pt x="308" y="1456" on="0"/> - <pt x="114" y="1456" on="1"/> - <pt x="114" y="1579" on="1"/> - <pt x="141" y="1579" on="1"/> - <pt x="395" y="1579" on="0"/> - <pt x="588" y="1467" on="1"/> - <pt x="811" y="1614" on="1"/> - <pt x="882" y="1514" on="1"/> - <pt x="707" y="1395" on="1"/> - <pt x="877" y="1258" on="0"/> - <pt x="982" y="1068" on="1"/> - <pt x="1119" y="819" on="0"/> - <pt x="1119" y="568" on="1"/> - <pt x="1119" y="306" on="0"/> - <pt x="980" y="141" on="1"/> - <pt x="841" y="-25" on="0"/> - <pt x="618" y="-25" on="1"/> - <pt x="399" y="-25" on="0"/> - <pt x="255" y="133" on="1"/> - <pt x="111" y="291" on="0"/> - <pt x="111" y="532" on="1"/> - <pt x="111" y="771" on="0"/> - <pt x="250" y="928" on="1"/> - <pt x="388" y="1086" on="0"/> - <pt x="592" y="1086" on="1"/> - <pt x="687" y="1086" on="0"/> - </contour> - <contour> - <pt x="615" y="962" on="1"/> - <pt x="488" y="962" on="0"/> - <pt x="405" y="839" on="1"/> - <pt x="321" y="715" on="0"/> - <pt x="321" y="531" on="1"/> - <pt x="321" y="346" on="0"/> - <pt x="405" y="222" on="1"/> - <pt x="488" y="99" on="0"/> - <pt x="615" y="99" on="1"/> - <pt x="740" y="99" on="0"/> - <pt x="824" y="221" on="1"/> - <pt x="909" y="344" on="0"/> - <pt x="909" y="526" on="1"/> - <pt x="909" y="696" on="0"/> - <pt x="840" y="814" on="1"/> - <pt x="754" y="962" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 71 values pushed */ - 0 0 40 5 22 32 5 30 48 200 30 1 22 2 1 1 14 11 7 5 4 3 2 7 0 - 1 3 0 0 1 1 0 1 2 2 0 0 1 13 12 9 8 4 13 0 0 14 0 0 44 - 39 18 36 39 26 48 200 26 18 14 13 12 11 9 8 7 5 4 3 2 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="exclam" xMin="491" yMin="0" xMax="738" yMax="1480"> - <contour> - <pt x="491" y="0" on="1"/> - <pt x="491" y="222" on="1"/> - <pt x="738" y="222" on="1"/> - <pt x="738" y="0" on="1"/> - </contour> - <contour> - <pt x="553" y="419" on="1"/> - <pt x="516" y="1086" on="1"/> - <pt x="516" y="1480" on="1"/> - <pt x="713" y="1480" on="1"/> - <pt x="713" y="1086" on="1"/> - <pt x="676" y="419" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 57 values pushed */ - 9 8 5 4 4 6 1 3 0 0 2 1 9 1 0 1 4 48 200 3 0 1 0 7 6 - 0 14 9 4 2 7 5 3 0 0 8 7 10 1 5 3 2 4 1 0 2 4 48 200 6 - 5 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="exclamdown" xMin="491" yMin="-395" xMax="738" yMax="1086"> - <contour> - <pt x="738" y="1086" on="1"/> - <pt x="738" y="864" on="1"/> - <pt x="491" y="864" on="1"/> - <pt x="491" y="1086" on="1"/> - </contour> - <contour> - <pt x="676" y="666" on="1"/> - <pt x="713" y="0" on="1"/> - <pt x="713" y="-395" on="1"/> - <pt x="516" y="-395" on="1"/> - <pt x="516" y="0" on="1"/> - <pt x="553" y="666" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 65 values pushed */ - 1 9 4 2 1 2 3 0 1 8 5 2 2 6 3 0 0 0 2 1 9 1 0 1 4 - 48 200 7 6 1 0 3 0 1 14 9 4 2 5 7 3 0 0 6 5 10 1 7 1 0 - 4 1 2 2 4 48 200 8 7 1 3 2 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="f" xMin="148" yMin="0" xMax="1167" yMax="1604"> - <contour> - <pt x="148" y="0" on="1"/> - <pt x="148" y="123" on="1"/> - <pt x="419" y="123" on="1"/> - <pt x="419" y="925" on="1"/> - <pt x="148" y="925" on="1"/> - <pt x="148" y="1061" on="1"/> - <pt x="419" y="1061" on="1"/> - <pt x="419" y="1179" on="1"/> - <pt x="419" y="1404" on="0"/> - <pt x="510" y="1504" on="1"/> - <pt x="601" y="1604" on="0"/> - <pt x="803" y="1604" on="1"/> - <pt x="974" y="1604" on="0"/> - <pt x="1167" y="1524" on="1"/> - <pt x="1167" y="1277" on="1"/> - <pt x="1044" y="1277" on="1"/> - <pt x="1013" y="1433" on="1"/> - <pt x="912" y="1480" on="0"/> - <pt x="829" y="1480" on="1"/> - <pt x="710" y="1480" on="0"/> - <pt x="664" y="1420" on="1"/> - <pt x="617" y="1360" on="0"/> - <pt x="617" y="1201" on="1"/> - <pt x="617" y="1061" on="1"/> - <pt x="1061" y="1061" on="1"/> - <pt x="1061" y="925" on="1"/> - <pt x="617" y="925" on="1"/> - <pt x="617" y="123" on="1"/> - <pt x="987" y="123" on="1"/> - <pt x="987" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 88 values pushed */ - 0 0 18 5 11 48 200 22 16 15 14 13 7 6 13 11 5 0 0 26 25 4 3 20 3 - 5 28 27 2 1 6 3 0 2 4 48 200 24 23 6 5 3 29 0 1 2 0 14 29 28 - 25 24 16 15 6 13 22 3 5 4 1 0 4 13 2 0 0 27 26 23 22 10 3 2 1 - 4 48 200 14 13 1 7 6 3 2 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="fi" xMin="69" yMin="0" xMax="1167" yMax="1604"> - <contour> - <pt x="69" y="0" on="1"/> - <pt x="69" y="123" on="1"/> - <pt x="192" y="123" on="1"/> - <pt x="192" y="938" on="1"/> - <pt x="75" y="938" on="1"/> - <pt x="75" y="1073" on="1"/> - <pt x="192" y="1073" on="1"/> - <pt x="192" y="1247" on="1"/> - <pt x="192" y="1410" on="0"/> - <pt x="278" y="1507" on="1"/> - <pt x="365" y="1604" on="0"/> - <pt x="508" y="1604" on="1"/> - <pt x="602" y="1604" on="0"/> - <pt x="723" y="1555" on="1"/> - <pt x="723" y="1345" on="1"/> - <pt x="600" y="1345" on="1"/> - <pt x="575" y="1468" on="1"/> - <pt x="539" y="1487" on="0"/> - <pt x="510" y="1487" on="1"/> - <pt x="390" y="1487" on="0"/> - <pt x="390" y="1301" on="1"/> - <pt x="390" y="1073" on="1"/> - <pt x="1044" y="1073" on="1"/> - <pt x="1044" y="123" on="1"/> - <pt x="1167" y="123" on="1"/> - <pt x="1167" y="0" on="1"/> - <pt x="748" y="0" on="1"/> - <pt x="748" y="123" on="1"/> - <pt x="846" y="123" on="1"/> - <pt x="846" y="938" on="1"/> - <pt x="390" y="938" on="1"/> - <pt x="390" y="123" on="1"/> - <pt x="501" y="123" on="1"/> - <pt x="501" y="0" on="1"/> - </contour> - <contour> - <pt x="846" y="1345" on="1"/> - <pt x="846" y="1542" on="1"/> - <pt x="1044" y="1542" on="1"/> - <pt x="1044" y="1345" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 129 values pushed */ - 0 0 18 40 11 48 200 16 35 14 2 20 7 2 14 5 3 32 31 28 27 24 23 2 1 - 8 3 0 3 13 11 35 0 0 37 34 15 14 10 3 35 30 29 4 3 20 3 5 2 4 - 48 200 36 35 1 22 21 6 5 3 33 26 25 0 3 3 0 14 27 26 2 28 13 3 33 - 32 16 15 4 13 20 3 25 24 2 13 22 5 4 1 0 4 13 2 0 0 35 34 29 28 - 10 3 22 31 30 21 20 10 3 2 2 4 48 200 37 36 23 22 3 14 13 1 7 6 3 - 2 3 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - CALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="fi#1" xMin="69" yMin="0" xMax="1167" yMax="1604"> - <contour> - <pt x="69" y="0" on="1"/> - <pt x="69" y="123" on="1"/> - <pt x="192" y="123" on="1"/> - <pt x="192" y="938" on="1"/> - <pt x="75" y="938" on="1"/> - <pt x="75" y="1073" on="1"/> - <pt x="192" y="1073" on="1"/> - <pt x="192" y="1247" on="1"/> - <pt x="192" y="1410" on="0"/> - <pt x="278" y="1507" on="1"/> - <pt x="365" y="1604" on="0"/> - <pt x="508" y="1604" on="1"/> - <pt x="602" y="1604" on="0"/> - <pt x="723" y="1555" on="1"/> - <pt x="723" y="1345" on="1"/> - <pt x="600" y="1345" on="1"/> - <pt x="575" y="1468" on="1"/> - <pt x="539" y="1487" on="0"/> - <pt x="510" y="1487" on="1"/> - <pt x="390" y="1487" on="0"/> - <pt x="390" y="1301" on="1"/> - <pt x="390" y="1073" on="1"/> - <pt x="1044" y="1073" on="1"/> - <pt x="1044" y="123" on="1"/> - <pt x="1167" y="123" on="1"/> - <pt x="1167" y="0" on="1"/> - <pt x="748" y="0" on="1"/> - <pt x="748" y="123" on="1"/> - <pt x="846" y="123" on="1"/> - <pt x="846" y="938" on="1"/> - <pt x="390" y="938" on="1"/> - <pt x="390" y="123" on="1"/> - <pt x="501" y="123" on="1"/> - <pt x="501" y="0" on="1"/> - </contour> - <contour> - <pt x="846" y="1345" on="1"/> - <pt x="846" y="1542" on="1"/> - <pt x="1044" y="1542" on="1"/> - <pt x="1044" y="1345" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 129 values pushed */ - 0 0 18 40 11 48 200 16 35 14 2 20 7 2 14 5 3 32 31 28 27 24 23 2 1 - 8 3 0 3 13 11 35 0 0 37 34 15 14 10 3 35 30 29 4 3 20 3 5 2 4 - 48 200 36 35 1 22 21 6 5 3 33 26 25 0 3 3 0 14 27 26 2 28 13 3 33 - 32 16 15 4 13 20 3 25 24 2 13 22 5 4 1 0 4 13 2 0 0 35 34 29 28 - 10 3 22 31 30 21 20 10 3 2 2 4 48 200 37 36 23 22 3 14 13 1 7 6 3 - 2 3 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - CALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="figuredash" xMin="121" yMin="543" xMax="1108" yMax="691"> - <contour> - <pt x="121" y="543" on="1"/> - <pt x="121" y="691" on="1"/> - <pt x="1108" y="691" on="1"/> - <pt x="1108" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 24 values pushed */ - 0 0 3 0 7 1 1 1 4 48 200 2 1 1 0 14 3 2 1 1 0 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="five" xMin="249" yMin="-37" xMax="1076" yMax="1480"> - <contour> - <pt x="249" y="0" on="1"/> - <pt x="249" y="321" on="1"/> - <pt x="372" y="321" on="1"/> - <pt x="397" y="123" on="1"/> - <pt x="489" y="86" on="0"/> - <pt x="556" y="86" on="1"/> - <pt x="689" y="86" on="0"/> - <pt x="777" y="184" on="1"/> - <pt x="866" y="283" on="0"/> - <pt x="866" y="433" on="1"/> - <pt x="866" y="600" on="0"/> - <pt x="747" y="699" on="1"/> - <pt x="628" y="797" on="0"/> - <pt x="427" y="797" on="1"/> - <pt x="362" y="797" on="0"/> - <pt x="280" y="783" on="1"/> - <pt x="280" y="1480" on="1"/> - <pt x="1045" y="1480" on="1"/> - <pt x="1045" y="1308" on="1"/> - <pt x="425" y="1308" on="1"/> - <pt x="425" y="916" on="1"/> - <pt x="474" y="919" on="0"/> - <pt x="500" y="919" on="1"/> - <pt x="761" y="919" on="0"/> - <pt x="918" y="788" on="1"/> - <pt x="1076" y="658" on="0"/> - <pt x="1076" y="440" on="1"/> - <pt x="1076" y="232" on="0"/> - <pt x="930" y="98" on="1"/> - <pt x="784" y="-37" on="0"/> - <pt x="559" y="-37" on="1"/> - <pt x="444" y="-37" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 81 values pushed */ - 0 0 13 5 22 5 5 30 48 200 30 2 22 1 22 20 15 3 2 1 6 18 2 3 0 - 1 0 2 0 0 0 19 18 22 1 16 1 4 48 200 17 16 0 14 0 0 9 39 26 48 - 200 3 2 2 19 15 3 26 17 0 0 20 19 14 1 15 1 4 48 200 18 17 1 16 15 - 1 1 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MDAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="fl" xMin="69" yMin="0" xMax="1167" yMax="1604"> - <contour> - <pt x="390" y="1061" on="1"/> - <pt x="686" y="1061" on="1"/> - <pt x="686" y="925" on="1"/> - <pt x="390" y="925" on="1"/> - <pt x="390" y="123" on="1"/> - <pt x="501" y="123" on="1"/> - <pt x="501" y="0" on="1"/> - <pt x="69" y="0" on="1"/> - <pt x="69" y="123" on="1"/> - <pt x="192" y="123" on="1"/> - <pt x="192" y="925" on="1"/> - <pt x="75" y="925" on="1"/> - <pt x="75" y="1061" on="1"/> - <pt x="192" y="1061" on="1"/> - <pt x="192" y="1247" on="1"/> - <pt x="192" y="1604" on="0"/> - <pt x="588" y="1604" on="1"/> - <pt x="674" y="1604" on="0"/> - <pt x="784" y="1588" on="1"/> - <pt x="846" y="1579" on="1"/> - <pt x="1043" y="1579" on="1"/> - <pt x="1043" y="123" on="1"/> - <pt x="1167" y="123" on="1"/> - <pt x="1167" y="0" on="1"/> - <pt x="748" y="0" on="1"/> - <pt x="748" y="123" on="1"/> - <pt x="846" y="123" on="1"/> - <pt x="846" y="1450" on="1"/> - <pt x="711" y="1487" on="0"/> - <pt x="597" y="1487" on="1"/> - <pt x="480" y="1487" on="0"/> - <pt x="434" y="1447" on="1"/> - <pt x="390" y="1407" on="0"/> - <pt x="390" y="1301" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 108 values pushed */ - 0 0 29 40 16 48 200 33 27 14 3 19 0 3 26 25 22 21 9 8 5 4 8 2 6 - 3 16 19 0 0 11 10 3 2 20 3 0 1 4 48 200 20 19 1 13 12 1 0 3 24 - 23 7 6 3 3 0 14 25 24 6 5 2 1 6 19 0 3 23 22 2 13 20 12 11 8 - 7 4 13 9 0 0 27 26 19 10 2 20 33 4 3 0 10 3 9 2 4 48 200 21 20 - 1 14 13 10 9 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="fl#1" xMin="69" yMin="0" xMax="1167" yMax="1604"> - <contour> - <pt x="390" y="1061" on="1"/> - <pt x="686" y="1061" on="1"/> - <pt x="686" y="925" on="1"/> - <pt x="390" y="925" on="1"/> - <pt x="390" y="123" on="1"/> - <pt x="501" y="123" on="1"/> - <pt x="501" y="0" on="1"/> - <pt x="69" y="0" on="1"/> - <pt x="69" y="123" on="1"/> - <pt x="192" y="123" on="1"/> - <pt x="192" y="925" on="1"/> - <pt x="75" y="925" on="1"/> - <pt x="75" y="1061" on="1"/> - <pt x="192" y="1061" on="1"/> - <pt x="192" y="1247" on="1"/> - <pt x="192" y="1604" on="0"/> - <pt x="588" y="1604" on="1"/> - <pt x="674" y="1604" on="0"/> - <pt x="784" y="1588" on="1"/> - <pt x="846" y="1579" on="1"/> - <pt x="1043" y="1579" on="1"/> - <pt x="1043" y="123" on="1"/> - <pt x="1167" y="123" on="1"/> - <pt x="1167" y="0" on="1"/> - <pt x="748" y="0" on="1"/> - <pt x="748" y="123" on="1"/> - <pt x="846" y="123" on="1"/> - <pt x="846" y="1450" on="1"/> - <pt x="711" y="1487" on="0"/> - <pt x="597" y="1487" on="1"/> - <pt x="480" y="1487" on="0"/> - <pt x="434" y="1447" on="1"/> - <pt x="390" y="1407" on="0"/> - <pt x="390" y="1301" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 108 values pushed */ - 0 0 29 40 16 48 200 33 27 14 3 19 0 3 26 25 22 21 9 8 5 4 8 2 6 - 3 16 19 0 0 11 10 3 2 20 3 0 1 4 48 200 20 19 1 13 12 1 0 3 24 - 23 7 6 3 3 0 14 25 24 6 5 2 1 6 19 0 3 23 22 2 13 20 12 11 8 - 7 4 13 9 0 0 27 26 19 10 2 20 33 4 3 0 10 3 9 2 4 48 200 21 20 - 1 14 13 10 9 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="florin" xMin="84" yMin="-296" xMax="1081" yMax="1517"> - <contour> - <pt x="84" y="-296" on="1"/> - <pt x="288" y="728" on="1"/> - <pt x="116" y="728" on="1"/> - <pt x="116" y="851" on="1"/> - <pt x="313" y="851" on="1"/> - <pt x="340" y="990" on="1"/> - <pt x="443" y="1517" on="0"/> - <pt x="892" y="1517" on="1"/> - <pt x="971" y="1517" on="0"/> - <pt x="1081" y="1499" on="1"/> - <pt x="1081" y="1166" on="1"/> - <pt x="958" y="1166" on="1"/> - <pt x="933" y="1363" on="1"/> - <pt x="853" y="1388" on="0"/> - <pt x="805" y="1388" on="1"/> - <pt x="618" y="1388" on="0"/> - <pt x="555" y="1076" on="1"/> - <pt x="510" y="851" on="1"/> - <pt x="754" y="851" on="1"/> - <pt x="754" y="728" on="1"/> - <pt x="486" y="728" on="1"/> - <pt x="282" y="-296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 65 values pushed */ - 0 0 14 25 7 48 200 7 0 1 12 11 10 3 0 3 3 0 1 9 0 0 0 0 20 - 19 2 1 6 3 3 1 4 48 200 18 17 4 3 3 21 0 1 2 0 14 21 20 19 18 - 17 12 11 4 3 2 1 0 12 13 9 10 9 1 0 - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="four" xMin="84" yMin="0" xMax="1132" yMax="1480"> - <contour> - <pt x="738" y="419" on="1"/> - <pt x="84" y="419" on="1"/> - <pt x="84" y="568" on="1"/> - <pt x="713" y="1480" on="1"/> - <pt x="910" y="1480" on="1"/> - <pt x="910" y="568" on="1"/> - <pt x="1132" y="568" on="1"/> - <pt x="1132" y="419" on="1"/> - <pt x="910" y="419" on="1"/> - <pt x="910" y="123" on="1"/> - <pt x="1108" y="123" on="1"/> - <pt x="1108" y="0" on="1"/> - <pt x="466" y="0" on="1"/> - <pt x="466" y="123" on="1"/> - <pt x="738" y="123" on="1"/> - </contour> - <contour> - <pt x="238" y="568" on="1"/> - <pt x="738" y="568" on="1"/> - <pt x="738" y="1292" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 79 values pushed */ - 17 3 2 2 0 0 16 15 6 5 2 7 4 0 14 13 10 9 6 3 11 2 4 48 200 - 8 7 1 0 3 12 11 1 2 0 4 3 0 14 11 10 2 6 4 3 15 13 12 3 4 - 0 1 3 0 0 17 16 14 0 12 3 4 1 4 48 200 7 6 1 9 8 5 4 3 2 - 1 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="foursuperiour" xMin="284" yMin="728" xMax="918" yMax="1517"> - <contour> - <pt x="807" y="728" on="1"/> - <pt x="659" y="728" on="1"/> - <pt x="659" y="907" on="1"/> - <pt x="284" y="907" on="1"/> - <pt x="284" y="1030" on="1"/> - <pt x="654" y="1517" on="1"/> - <pt x="807" y="1517" on="1"/> - <pt x="807" y="1030" on="1"/> - <pt x="918" y="1030" on="1"/> - <pt x="918" y="907" on="1"/> - <pt x="807" y="907" on="1"/> - </contour> - <contour> - <pt x="422" y="1030" on="1"/> - <pt x="659" y="1030" on="1"/> - <pt x="659" y="1339" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 63 values pushed */ - 13 5 4 2 0 0 10 9 3 2 6 3 4 1 4 48 200 6 5 1 12 11 8 7 4 - 4 1 0 1 3 0 14 9 8 2 13 0 11 5 4 3 4 13 1 0 0 13 12 2 1 - 16 3 0 1 4 48 200 10 7 6 0 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="foursuperiour#1" xMin="155" yMin="-37" xMax="1073" yMax="1517"> - <contour> - <pt x="155" y="-37" on="1"/> - <pt x="932" y="1517" on="1"/> - <pt x="1073" y="1517" on="1"/> - <pt x="293" y="-37" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 13 values pushed */ - 2 1 1 3 0 1 2 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="fraction" xMin="155" yMin="-37" xMax="1073" yMax="1517"> - <contour> - <pt x="155" y="-37" on="1"/> - <pt x="932" y="1517" on="1"/> - <pt x="1073" y="1517" on="1"/> - <pt x="293" y="-37" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 13 values pushed */ - 2 1 1 3 0 1 2 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="fraction#1" xMin="155" yMin="-37" xMax="1073" yMax="1517"> - <contour> - <pt x="155" y="-37" on="1"/> - <pt x="932" y="1517" on="1"/> - <pt x="1073" y="1517" on="1"/> - <pt x="293" y="-37" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 13 values pushed */ - 2 1 1 3 0 1 2 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="g" xMin="86" yMin="-420" xMax="1160" yMax="1111"> - <contour> - <pt x="266" y="13" on="1"/> - <pt x="172" y="72" on="0"/> - <pt x="172" y="152" on="1"/> - <pt x="172" y="239" on="0"/> - <pt x="288" y="345" on="1"/> - <pt x="324" y="378" on="1"/> - <pt x="233" y="433" on="0"/> - <pt x="187" y="495" on="1"/> - <pt x="120" y="587" on="0"/> - <pt x="120" y="713" on="1"/> - <pt x="120" y="893" on="0"/> - <pt x="243" y="1001" on="1"/> - <pt x="365" y="1110" on="0"/> - <pt x="565" y="1110" on="1"/> - <pt x="663" y="1110" on="0"/> - <pt x="752" y="1078" on="1"/> - <pt x="1160" y="1111" on="1"/> - <pt x="1101" y="933" on="1"/> - <pt x="897" y="965" on="1"/> - <pt x="1000" y="833" on="0"/> - <pt x="1000" y="704" on="1"/> - <pt x="1000" y="538" on="0"/> - <pt x="875" y="428" on="1"/> - <pt x="749" y="318" on="0"/> - <pt x="561" y="318" on="1"/> - <pt x="508" y="318" on="0"/> - <pt x="441" y="331" on="1"/> - <pt x="402" y="297" on="1"/> - <pt x="342" y="245" on="0"/> - <pt x="342" y="204" on="1"/> - <pt x="342" y="148" on="0"/> - <pt x="481" y="148" on="1"/> - <pt x="794" y="148" on="1"/> - <pt x="1104" y="148" on="0"/> - <pt x="1104" y="-86" on="1"/> - <pt x="1104" y="-420" on="0"/> - <pt x="539" y="-420" on="1"/> - <pt x="86" y="-420" on="0"/> - <pt x="86" y="-203" on="1"/> - <pt x="86" y="-106" on="0"/> - <pt x="210" y="-24" on="1"/> - </contour> - <contour> - <pt x="404" y="0" on="1"/> - <pt x="364" y="-30" on="1"/> - <pt x="283" y="-91" on="0"/> - <pt x="283" y="-165" on="1"/> - <pt x="283" y="-296" on="0"/> - <pt x="564" y="-296" on="1"/> - <pt x="720" y="-296" on="0"/> - <pt x="813" y="-247" on="1"/> - <pt x="906" y="-199" on="0"/> - <pt x="906" y="-119" on="1"/> - <pt x="906" y="0" on="0"/> - <pt x="728" y="0" on="1"/> - </contour> - <contour> - <pt x="567" y="987" on="1"/> - <pt x="458" y="987" on="0"/> - <pt x="388" y="906" on="1"/> - <pt x="317" y="825" on="0"/> - <pt x="317" y="703" on="1"/> - <pt x="317" y="586" on="0"/> - <pt x="386" y="514" on="1"/> - <pt x="455" y="441" on="0"/> - <pt x="564" y="441" on="1"/> - <pt x="673" y="441" on="0"/> - <pt x="744" y="516" on="1"/> - <pt x="815" y="590" on="0"/> - <pt x="815" y="708" on="1"/> - <pt x="815" y="819" on="0"/> - <pt x="759" y="893" on="1"/> - <pt x="687" y="987" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 89 values pushed */ - 0 0 61 5 24 53 5 13 46 5 36 48 200 13 1 24 1 26 24 18 17 15 5 6 1 - 31 3 0 0 31 41 2 1 16 1 0 36 41 0 0 32 31 7 1 41 1 4 48 200 52 - 41 1 0 14 0 0 65 19 20 57 28 9 50 28 34 44 28 38 29 15 2 48 200 52 41 - 38 34 32 31 26 20 18 17 16 15 9 5 2 0 - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SZP0[ ] - SRP0[ ] - MDRP[00000] - SZP0[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MDAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="gbreve" xMin="86" yMin="-420" xMax="1160" yMax="1579"> - <component glyphName="g" x="0" y="0" flags="0x4"/> - <component glyphName="breve" x="-54" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="gcircumflex" xMin="86" yMin="-420" xMax="1160" yMax="1604"> - <contour> - <pt x="266" y="13" on="1"/> - <pt x="172" y="72" on="0"/> - <pt x="172" y="152" on="1"/> - <pt x="172" y="239" on="0"/> - <pt x="288" y="345" on="1"/> - <pt x="324" y="378" on="1"/> - <pt x="233" y="433" on="0"/> - <pt x="187" y="495" on="1"/> - <pt x="120" y="587" on="0"/> - <pt x="120" y="713" on="1"/> - <pt x="120" y="893" on="0"/> - <pt x="243" y="1001" on="1"/> - <pt x="365" y="1110" on="0"/> - <pt x="565" y="1110" on="1"/> - <pt x="663" y="1110" on="0"/> - <pt x="752" y="1078" on="1"/> - <pt x="1160" y="1111" on="1"/> - <pt x="1101" y="933" on="1"/> - <pt x="897" y="965" on="1"/> - <pt x="1000" y="833" on="0"/> - <pt x="1000" y="704" on="1"/> - <pt x="1000" y="538" on="0"/> - <pt x="875" y="428" on="1"/> - <pt x="749" y="318" on="0"/> - <pt x="561" y="318" on="1"/> - <pt x="508" y="318" on="0"/> - <pt x="441" y="331" on="1"/> - <pt x="402" y="297" on="1"/> - <pt x="342" y="245" on="0"/> - <pt x="342" y="204" on="1"/> - <pt x="342" y="148" on="0"/> - <pt x="481" y="148" on="1"/> - <pt x="794" y="148" on="1"/> - <pt x="1104" y="148" on="0"/> - <pt x="1104" y="-86" on="1"/> - <pt x="1104" y="-420" on="0"/> - <pt x="539" y="-420" on="1"/> - <pt x="86" y="-420" on="0"/> - <pt x="86" y="-203" on="1"/> - <pt x="86" y="-106" on="0"/> - <pt x="210" y="-24" on="1"/> - </contour> - <contour> - <pt x="404" y="0" on="1"/> - <pt x="364" y="-30" on="1"/> - <pt x="283" y="-91" on="0"/> - <pt x="283" y="-165" on="1"/> - <pt x="283" y="-296" on="0"/> - <pt x="564" y="-296" on="1"/> - <pt x="720" y="-296" on="0"/> - <pt x="813" y="-247" on="1"/> - <pt x="906" y="-199" on="0"/> - <pt x="906" y="-119" on="1"/> - <pt x="906" y="0" on="0"/> - <pt x="728" y="0" on="1"/> - </contour> - <contour> - <pt x="567" y="987" on="1"/> - <pt x="458" y="987" on="0"/> - <pt x="388" y="906" on="1"/> - <pt x="317" y="825" on="0"/> - <pt x="317" y="703" on="1"/> - <pt x="317" y="586" on="0"/> - <pt x="386" y="514" on="1"/> - <pt x="455" y="441" on="0"/> - <pt x="564" y="441" on="1"/> - <pt x="673" y="441" on="0"/> - <pt x="744" y="516" on="1"/> - <pt x="815" y="590" on="0"/> - <pt x="815" y="708" on="1"/> - <pt x="815" y="819" on="0"/> - <pt x="759" y="893" on="1"/> - <pt x="687" y="987" on="0"/> - </contour> - <contour> - <pt x="202" y="1283" on="1"/> - <pt x="458" y="1604" on="1"/> - <pt x="677" y="1604" on="1"/> - <pt x="933" y="1283" on="1"/> - <pt x="810" y="1283" on="1"/> - <pt x="569" y="1485" on="1"/> - <pt x="566" y="1485" on="1"/> - <pt x="325" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 110 values pushed */ - 0 0 61 5 24 53 5 13 46 5 36 48 200 13 1 1 76 75 74 73 72 69 16 7 70 - 1 3 0 24 1 26 24 18 17 15 5 6 1 31 3 0 0 31 41 2 36 41 0 0 32 - 31 7 1 41 1 4 48 200 71 70 1 52 41 1 2 0 14 0 0 65 19 20 57 28 9 - 50 28 34 44 28 38 29 15 2 48 200 76 75 74 73 72 71 70 69 52 41 38 34 32 31 - 26 20 18 17 16 15 9 5 2 0 - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MDAP[1] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="gcommaaccent" xMin="86" yMin="-420" xMax="1160" yMax="1737"> - <contour> - <pt x="266" y="13" on="1"/> - <pt x="172" y="72" on="0"/> - <pt x="172" y="152" on="1"/> - <pt x="172" y="239" on="0"/> - <pt x="288" y="345" on="1"/> - <pt x="324" y="378" on="1"/> - <pt x="233" y="433" on="0"/> - <pt x="187" y="495" on="1"/> - <pt x="120" y="587" on="0"/> - <pt x="120" y="713" on="1"/> - <pt x="120" y="893" on="0"/> - <pt x="243" y="1001" on="1"/> - <pt x="365" y="1110" on="0"/> - <pt x="565" y="1110" on="1"/> - <pt x="663" y="1110" on="0"/> - <pt x="752" y="1078" on="1"/> - <pt x="1160" y="1111" on="1"/> - <pt x="1101" y="933" on="1"/> - <pt x="897" y="965" on="1"/> - <pt x="1000" y="833" on="0"/> - <pt x="1000" y="704" on="1"/> - <pt x="1000" y="538" on="0"/> - <pt x="875" y="428" on="1"/> - <pt x="749" y="318" on="0"/> - <pt x="561" y="318" on="1"/> - <pt x="508" y="318" on="0"/> - <pt x="441" y="331" on="1"/> - <pt x="402" y="297" on="1"/> - <pt x="342" y="245" on="0"/> - <pt x="342" y="204" on="1"/> - <pt x="342" y="148" on="0"/> - <pt x="481" y="148" on="1"/> - <pt x="794" y="148" on="1"/> - <pt x="1104" y="148" on="0"/> - <pt x="1104" y="-86" on="1"/> - <pt x="1104" y="-420" on="0"/> - <pt x="539" y="-420" on="1"/> - <pt x="86" y="-420" on="0"/> - <pt x="86" y="-203" on="1"/> - <pt x="86" y="-106" on="0"/> - <pt x="210" y="-24" on="1"/> - </contour> - <contour> - <pt x="404" y="0" on="1"/> - <pt x="364" y="-30" on="1"/> - <pt x="283" y="-91" on="0"/> - <pt x="283" y="-165" on="1"/> - <pt x="283" y="-296" on="0"/> - <pt x="564" y="-296" on="1"/> - <pt x="720" y="-296" on="0"/> - <pt x="813" y="-247" on="1"/> - <pt x="906" y="-199" on="0"/> - <pt x="906" y="-119" on="1"/> - <pt x="906" y="0" on="0"/> - <pt x="728" y="0" on="1"/> - </contour> - <contour> - <pt x="567" y="987" on="1"/> - <pt x="458" y="987" on="0"/> - <pt x="388" y="906" on="1"/> - <pt x="317" y="825" on="0"/> - <pt x="317" y="703" on="1"/> - <pt x="317" y="586" on="0"/> - <pt x="386" y="514" on="1"/> - <pt x="455" y="441" on="0"/> - <pt x="564" y="441" on="1"/> - <pt x="673" y="441" on="0"/> - <pt x="744" y="516" on="1"/> - <pt x="815" y="590" on="0"/> - <pt x="815" y="708" on="1"/> - <pt x="815" y="819" on="0"/> - <pt x="759" y="893" on="1"/> - <pt x="687" y="987" on="0"/> - </contour> - <contour> - <pt x="659" y="1737" on="1"/> - <pt x="659" y="1678" on="1"/> - <pt x="582" y="1657" on="0"/> - <pt x="582" y="1497" on="1"/> - <pt x="582" y="1480" on="1"/> - <pt x="659" y="1480" on="1"/> - <pt x="659" y="1283" on="1"/> - <pt x="461" y="1283" on="1"/> - <pt x="461" y="1454" on="1"/> - <pt x="462" y="1716" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 135 values pushed */ - 0 0 61 5 24 53 5 13 46 5 36 48 200 13 1 1 16 75 1 2 0 24 1 26 24 - 18 17 15 5 6 1 31 3 0 0 31 41 2 77 74 73 72 70 69 6 13 75 36 41 0 - 0 32 31 7 1 41 1 4 48 200 76 75 1 52 41 1 2 0 14 0 0 65 19 20 57 - 28 9 50 28 34 44 28 38 29 15 2 48 200 73 72 31 3 69 76 3 52 32 18 17 16 - 15 6 13 34 20 69 41 26 5 0 4 13 38 9 2 3 12 76 0 0 75 74 70 69 10 - 3 76 1 4 48 200 77 76 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MDAP[1] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="gdotaccent" xMin="86" yMin="-420" xMax="1160" yMax="1480"> - <contour> - <pt x="266" y="13" on="1"/> - <pt x="172" y="72" on="0"/> - <pt x="172" y="152" on="1"/> - <pt x="172" y="239" on="0"/> - <pt x="288" y="345" on="1"/> - <pt x="324" y="378" on="1"/> - <pt x="233" y="433" on="0"/> - <pt x="187" y="495" on="1"/> - <pt x="120" y="587" on="0"/> - <pt x="120" y="713" on="1"/> - <pt x="120" y="893" on="0"/> - <pt x="243" y="1001" on="1"/> - <pt x="365" y="1110" on="0"/> - <pt x="565" y="1110" on="1"/> - <pt x="663" y="1110" on="0"/> - <pt x="752" y="1078" on="1"/> - <pt x="1160" y="1111" on="1"/> - <pt x="1101" y="933" on="1"/> - <pt x="897" y="965" on="1"/> - <pt x="1000" y="833" on="0"/> - <pt x="1000" y="704" on="1"/> - <pt x="1000" y="538" on="0"/> - <pt x="875" y="428" on="1"/> - <pt x="749" y="318" on="0"/> - <pt x="561" y="318" on="1"/> - <pt x="508" y="318" on="0"/> - <pt x="441" y="331" on="1"/> - <pt x="402" y="297" on="1"/> - <pt x="342" y="245" on="0"/> - <pt x="342" y="204" on="1"/> - <pt x="342" y="148" on="0"/> - <pt x="481" y="148" on="1"/> - <pt x="794" y="148" on="1"/> - <pt x="1104" y="148" on="0"/> - <pt x="1104" y="-86" on="1"/> - <pt x="1104" y="-420" on="0"/> - <pt x="539" y="-420" on="1"/> - <pt x="86" y="-420" on="0"/> - <pt x="86" y="-203" on="1"/> - <pt x="86" y="-106" on="0"/> - <pt x="210" y="-24" on="1"/> - </contour> - <contour> - <pt x="404" y="0" on="1"/> - <pt x="364" y="-30" on="1"/> - <pt x="283" y="-91" on="0"/> - <pt x="283" y="-165" on="1"/> - <pt x="283" y="-296" on="0"/> - <pt x="564" y="-296" on="1"/> - <pt x="720" y="-296" on="0"/> - <pt x="813" y="-247" on="1"/> - <pt x="906" y="-199" on="0"/> - <pt x="906" y="-119" on="1"/> - <pt x="906" y="0" on="0"/> - <pt x="728" y="0" on="1"/> - </contour> - <contour> - <pt x="567" y="987" on="1"/> - <pt x="458" y="987" on="0"/> - <pt x="388" y="906" on="1"/> - <pt x="317" y="825" on="0"/> - <pt x="317" y="703" on="1"/> - <pt x="317" y="586" on="0"/> - <pt x="386" y="514" on="1"/> - <pt x="455" y="441" on="0"/> - <pt x="564" y="441" on="1"/> - <pt x="673" y="441" on="0"/> - <pt x="744" y="516" on="1"/> - <pt x="815" y="590" on="0"/> - <pt x="815" y="708" on="1"/> - <pt x="815" y="819" on="0"/> - <pt x="759" y="893" on="1"/> - <pt x="687" y="987" on="0"/> - </contour> - <contour> - <pt x="461" y="1283" on="1"/> - <pt x="461" y="1480" on="1"/> - <pt x="658" y="1480" on="1"/> - <pt x="658" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 125 values pushed */ - 0 0 61 5 24 53 5 13 46 5 36 48 200 13 1 1 16 69 1 2 0 24 1 26 24 - 18 17 15 5 6 1 31 3 0 0 31 41 2 36 41 0 0 72 69 10 1 70 32 31 7 - 1 41 2 4 48 200 52 41 1 0 71 70 0 14 0 0 65 19 20 57 28 9 50 28 34 - 44 28 38 29 15 2 48 200 31 71 69 2 52 32 18 17 16 15 6 13 34 20 71 41 26 - 5 0 4 13 38 9 2 3 12 69 0 0 72 71 10 1 69 1 4 48 200 70 69 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MDAP[1] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="germandbls" xMin="62" yMin="-25" xMax="1193" yMax="1604"> - <contour> - <pt x="62" y="0" on="1"/> - <pt x="62" y="123" on="1"/> - <pt x="197" y="123" on="1"/> - <pt x="197" y="1103" on="1"/> - <pt x="197" y="1293" on="0"/> - <pt x="219" y="1373" on="1"/> - <pt x="241" y="1453" on="0"/> - <pt x="309" y="1512" on="1"/> - <pt x="415" y="1604" on="0"/> - <pt x="609" y="1604" on="1"/> - <pt x="789" y="1604" on="0"/> - <pt x="897" y="1539" on="1"/> - <pt x="1005" y="1474" on="0"/> - <pt x="1005" y="1363" on="1"/> - <pt x="1005" y="1245" on="0"/> - <pt x="880" y="1142" on="1"/> - <pt x="750" y="1035" on="1"/> - <pt x="682" y="979" on="0"/> - <pt x="682" y="913" on="1"/> - <pt x="682" y="844" on="0"/> - <pt x="806" y="751" on="1"/> - <pt x="941" y="650" on="1"/> - <pt x="1104" y="528" on="0"/> - <pt x="1147" y="468" on="1"/> - <pt x="1193" y="403" on="0"/> - <pt x="1193" y="300" on="1"/> - <pt x="1193" y="155" on="0"/> - <pt x="1099" y="65" on="1"/> - <pt x="1005" y="-25" on="0"/> - <pt x="847" y="-25" on="1"/> - <pt x="733" y="-25" on="0"/> - <pt x="604" y="12" on="1"/> - <pt x="604" y="290" on="1"/> - <pt x="715" y="290" on="1"/> - <pt x="740" y="142" on="1"/> - <pt x="812" y="99" on="0"/> - <pt x="875" y="99" on="1"/> - <pt x="1026" y="99" on="0"/> - <pt x="1026" y="250" on="1"/> - <pt x="1026" y="357" on="0"/> - <pt x="916" y="439" on="1"/> - <pt x="817" y="513" on="1"/> - <pt x="693" y="606" on="1"/> - <pt x="572" y="697" on="0"/> - <pt x="538" y="742" on="1"/> - <pt x="503" y="789" on="0"/> - <pt x="503" y="854" on="1"/> - <pt x="503" y="961" on="0"/> - <pt x="606" y="1065" on="1"/> - <pt x="704" y="1164" on="1"/> - <pt x="808" y="1269" on="0"/> - <pt x="808" y="1359" on="1"/> - <pt x="808" y="1481" on="0"/> - <pt x="618" y="1481" on="1"/> - <pt x="496" y="1481" on="0"/> - <pt x="445" y="1430" on="1"/> - <pt x="395" y="1380" on="0"/> - <pt x="395" y="1256" on="1"/> - <pt x="395" y="123" on="1"/> - <pt x="518" y="123" on="1"/> - <pt x="518" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 81 values pushed */ - 0 0 53 5 9 36 5 29 48 200 29 2 59 58 57 34 33 32 31 3 2 1 10 13 9 - 0 60 0 1 0 14 0 0 51 28 13 38 15 25 18 13 46 48 200 46 60 59 46 3 31 - 57 3 34 33 2 13 25 13 31 1 0 2 0 0 58 57 10 1 2 1 4 48 200 32 31 - 1 3 2 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="grave" xMin="392" yMin="1283" xMax="836" yMax="1604"> - <contour> - <pt x="836" y="1283" on="1"/> - <pt x="713" y="1283" on="1"/> - <pt x="392" y="1604" on="1"/> - <pt x="620" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 12 values pushed */ - 1 0 2 3 2 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="greater" xMin="99" yMin="0" xMax="1131" yMax="1234"> - <contour> - <pt x="99" y="0" on="1"/> - <pt x="99" y="173" on="1"/> - <pt x="842" y="617" on="1"/> - <pt x="99" y="1061" on="1"/> - <pt x="99" y="1234" on="1"/> - <pt x="1131" y="617" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 18 values pushed */ - 5 4 3 2 1 0 14 5 2 2 13 0 4 3 1 0 3 0 - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="guillemotleft" xMin="82" yMin="99" xMax="1106" yMax="987"> - <contour> - <pt x="1106" y="185" on="1"/> - <pt x="1020" y="99" on="1"/> - <pt x="575" y="543" on="1"/> - <pt x="1020" y="987" on="1"/> - <pt x="1106" y="901" on="1"/> - <pt x="822" y="543" on="1"/> - </contour> - <contour> - <pt x="613" y="185" on="1"/> - <pt x="526" y="99" on="1"/> - <pt x="82" y="543" on="1"/> - <pt x="526" y="987" on="1"/> - <pt x="613" y="901" on="1"/> - <pt x="329" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 25 values pushed */ - 11 10 9 8 7 6 5 4 3 2 1 0 14 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="guillemotright" xMin="123" yMin="99" xMax="1147" yMax="987"> - <contour> - <pt x="123" y="185" on="1"/> - <pt x="407" y="543" on="1"/> - <pt x="123" y="901" on="1"/> - <pt x="209" y="987" on="1"/> - <pt x="653" y="543" on="1"/> - <pt x="209" y="99" on="1"/> - </contour> - <contour> - <pt x="616" y="185" on="1"/> - <pt x="900" y="543" on="1"/> - <pt x="616" y="901" on="1"/> - <pt x="703" y="987" on="1"/> - <pt x="1147" y="543" on="1"/> - <pt x="703" y="99" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 25 values pushed */ - 11 10 9 8 7 6 5 4 3 2 1 0 14 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="guilsinglleft" xMin="234" yMin="99" xMax="946" yMax="987"> - <contour> - <pt x="946" y="901" on="1"/> - <pt x="508" y="543" on="1"/> - <pt x="946" y="185" on="1"/> - <pt x="860" y="99" on="1"/> - <pt x="234" y="543" on="1"/> - <pt x="860" y="987" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 13 values pushed */ - 5 4 3 2 1 0 14 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="guilsinglright" xMin="283" yMin="99" xMax="995" yMax="987"> - <contour> - <pt x="283" y="185" on="1"/> - <pt x="721" y="543" on="1"/> - <pt x="283" y="901" on="1"/> - <pt x="369" y="987" on="1"/> - <pt x="995" y="543" on="1"/> - <pt x="369" y="99" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 13 values pushed */ - 5 4 3 2 1 0 14 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="h" xMin="69" yMin="0" xMax="1167" yMax="1579"> - <contour> - <pt x="69" y="0" on="1"/> - <pt x="69" y="123" on="1"/> - <pt x="192" y="123" on="1"/> - <pt x="192" y="1456" on="1"/> - <pt x="69" y="1456" on="1"/> - <pt x="69" y="1579" on="1"/> - <pt x="390" y="1579" on="1"/> - <pt x="390" y="876" on="1"/> - <pt x="459" y="981" on="0"/> - <pt x="527" y="1034" on="1"/> - <pt x="623" y="1110" on="0"/> - <pt x="742" y="1110" on="1"/> - <pt x="1043" y="1110" on="0"/> - <pt x="1043" y="722" on="1"/> - <pt x="1043" y="123" on="1"/> - <pt x="1167" y="123" on="1"/> - <pt x="1167" y="0" on="1"/> - <pt x="747" y="0" on="1"/> - <pt x="747" y="123" on="1"/> - <pt x="846" y="123" on="1"/> - <pt x="846" y="701" on="1"/> - <pt x="846" y="956" on="0"/> - <pt x="683" y="956" on="1"/> - <pt x="533" y="956" on="0"/> - <pt x="390" y="704" on="1"/> - <pt x="390" y="123" on="1"/> - <pt x="501" y="123" on="1"/> - <pt x="501" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 92 values pushed */ - 0 0 22 30 11 48 200 11 1 1 4 3 2 5 1 3 0 1 26 25 24 20 19 18 15 - 14 13 7 2 1 12 1 0 3 0 6 5 1 27 17 16 0 3 2 0 14 27 26 18 17 - 4 19 6 3 16 15 2 13 13 5 4 1 0 4 13 2 0 0 20 19 10 1 13 25 24 - 7 6 10 3 2 2 4 48 200 14 13 1 3 2 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="hbar" xMin="69" yMin="0" xMax="1167" yMax="1579"> - <contour> - <pt x="390" y="876" on="1"/> - <pt x="459" y="981" on="0"/> - <pt x="527" y="1034" on="1"/> - <pt x="623" y="1110" on="0"/> - <pt x="742" y="1110" on="1"/> - <pt x="1043" y="1110" on="0"/> - <pt x="1043" y="722" on="1"/> - <pt x="1043" y="123" on="1"/> - <pt x="1167" y="123" on="1"/> - <pt x="1167" y="0" on="1"/> - <pt x="747" y="0" on="1"/> - <pt x="747" y="123" on="1"/> - <pt x="846" y="123" on="1"/> - <pt x="846" y="701" on="1"/> - <pt x="846" y="956" on="0"/> - <pt x="683" y="956" on="1"/> - <pt x="533" y="956" on="0"/> - <pt x="390" y="704" on="1"/> - <pt x="390" y="123" on="1"/> - <pt x="501" y="123" on="1"/> - <pt x="501" y="0" on="1"/> - <pt x="69" y="0" on="1"/> - <pt x="69" y="123" on="1"/> - <pt x="192" y="123" on="1"/> - <pt x="192" y="1234" on="1"/> - <pt x="69" y="1234" on="1"/> - <pt x="69" y="1332" on="1"/> - <pt x="192" y="1332" on="1"/> - <pt x="192" y="1456" on="1"/> - <pt x="69" y="1456" on="1"/> - <pt x="69" y="1579" on="1"/> - <pt x="390" y="1579" on="1"/> - <pt x="390" y="1332" on="1"/> - <pt x="686" y="1332" on="1"/> - <pt x="686" y="1234" on="1"/> - <pt x="390" y="1234" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 116 values pushed */ - 0 0 15 30 4 48 200 4 1 29 28 2 30 26 3 1 23 22 19 18 17 13 12 11 8 - 7 6 0 12 1 9 3 0 0 0 35 34 25 24 33 3 26 1 4 48 200 31 30 1 33 - 32 27 26 3 21 20 10 9 3 3 0 14 34 33 20 19 11 10 6 12 0 3 9 8 2 - 13 6 30 29 26 25 22 21 6 13 23 0 0 13 12 10 1 6 35 32 31 18 17 0 10 - 5 23 2 4 48 200 7 6 1 28 27 24 23 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="hcircumflex" xMin="69" yMin="0" xMax="1167" yMax="1999"> - <contour> - <pt x="69" y="0" on="1"/> - <pt x="69" y="123" on="1"/> - <pt x="192" y="123" on="1"/> - <pt x="192" y="1456" on="1"/> - <pt x="69" y="1456" on="1"/> - <pt x="69" y="1579" on="1"/> - <pt x="390" y="1579" on="1"/> - <pt x="390" y="876" on="1"/> - <pt x="459" y="981" on="0"/> - <pt x="527" y="1034" on="1"/> - <pt x="623" y="1110" on="0"/> - <pt x="742" y="1110" on="1"/> - <pt x="1043" y="1110" on="0"/> - <pt x="1043" y="722" on="1"/> - <pt x="1043" y="123" on="1"/> - <pt x="1167" y="123" on="1"/> - <pt x="1167" y="0" on="1"/> - <pt x="747" y="0" on="1"/> - <pt x="747" y="123" on="1"/> - <pt x="846" y="123" on="1"/> - <pt x="846" y="701" on="1"/> - <pt x="846" y="956" on="0"/> - <pt x="683" y="956" on="1"/> - <pt x="533" y="956" on="0"/> - <pt x="390" y="704" on="1"/> - <pt x="390" y="123" on="1"/> - <pt x="501" y="123" on="1"/> - <pt x="501" y="0" on="1"/> - </contour> - <contour> - <pt x="254" y="1678" on="1"/> - <pt x="510" y="1999" on="1"/> - <pt x="729" y="1999" on="1"/> - <pt x="985" y="1678" on="1"/> - <pt x="862" y="1678" on="1"/> - <pt x="621" y="1880" on="1"/> - <pt x="618" y="1880" on="1"/> - <pt x="377" y="1678" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 121 values pushed */ - 0 0 22 35 11 48 200 11 1 35 34 33 32 31 28 6 29 5 3 1 4 3 2 5 1 - 3 0 1 26 25 24 20 19 18 15 14 13 7 2 1 12 1 0 3 0 30 29 1 6 5 - 1 27 17 16 0 3 3 0 14 32 31 2 13 19 3 34 33 30 29 27 26 18 17 8 19 - 6 3 35 28 2 6 2 3 16 15 2 13 13 5 4 1 0 4 13 2 0 0 20 19 10 - 1 13 25 24 7 6 10 3 2 2 4 48 200 14 13 1 3 2 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="hungarumlaut" xMin="223" yMin="1283" xMax="1006" yMax="1604"> - <contour> - <pt x="223" y="1283" on="1"/> - <pt x="463" y="1604" on="1"/> - <pt x="655" y="1604" on="1"/> - <pt x="334" y="1283" on="1"/> - </contour> - <contour> - <pt x="574" y="1283" on="1"/> - <pt x="815" y="1604" on="1"/> - <pt x="1006" y="1604" on="1"/> - <pt x="685" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 22 values pushed */ - 7 4 3 0 4 13 1 6 5 2 1 3 0 14 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="hyphen" xMin="148" yMin="543" xMax="1081" yMax="691"> - <contour> - <pt x="148" y="543" on="1"/> - <pt x="148" y="691" on="1"/> - <pt x="1081" y="691" on="1"/> - <pt x="1081" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 24 values pushed */ - 0 0 3 0 7 1 1 1 4 48 200 2 1 1 0 14 3 2 1 1 0 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="hyphen#1" xMin="148" yMin="543" xMax="1081" yMax="691"> - <contour> - <pt x="148" y="543" on="1"/> - <pt x="148" y="691" on="1"/> - <pt x="1081" y="691" on="1"/> - <pt x="1081" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 24 values pushed */ - 0 0 3 0 7 1 1 1 4 48 200 2 1 1 0 14 3 2 1 1 0 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="i" xMin="148" yMin="0" xMax="1105" yMax="1579"> - <contour> - <pt x="148" y="0" on="1"/> - <pt x="148" y="123" on="1"/> - <pt x="538" y="123" on="1"/> - <pt x="538" y="962" on="1"/> - <pt x="148" y="962" on="1"/> - <pt x="148" y="1086" on="1"/> - <pt x="735" y="1086" on="1"/> - <pt x="735" y="123" on="1"/> - <pt x="1105" y="123" on="1"/> - <pt x="1105" y="0" on="1"/> - </contour> - <contour> - <pt x="528" y="1332" on="1"/> - <pt x="528" y="1579" on="1"/> - <pt x="750" y="1579" on="1"/> - <pt x="750" y="1332" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 71 values pushed */ - 0 0 13 10 4 1 11 4 3 6 1 5 8 7 2 1 6 3 0 3 4 48 200 12 11 - 1 9 0 1 2 0 6 5 1 14 9 8 2 13 12 5 4 1 0 4 13 10 0 0 13 - 12 9 1 10 7 6 10 1 2 2 4 48 200 11 10 1 3 2 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="iacute" xMin="148" yMin="0" xMax="1105" yMax="1604"> - <component glyphName="dotlessi" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="146" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ibreve" xMin="148" yMin="0" xMax="1105" yMax="1579"> - <contour> - <pt x="148" y="0" on="1"/> - <pt x="148" y="123" on="1"/> - <pt x="538" y="123" on="1"/> - <pt x="538" y="962" on="1"/> - <pt x="148" y="962" on="1"/> - <pt x="148" y="1086" on="1"/> - <pt x="735" y="1086" on="1"/> - <pt x="735" y="123" on="1"/> - <pt x="1105" y="123" on="1"/> - <pt x="1105" y="0" on="1"/> - </contour> - <contour> - <pt x="279" y="1579" on="1"/> - <pt x="402" y="1579" on="1"/> - <pt x="450" y="1431" on="0"/> - <pt x="624" y="1431" on="1"/> - <pt x="799" y="1431" on="0"/> - <pt x="847" y="1579" on="1"/> - <pt x="970" y="1579" on="1"/> - <pt x="948" y="1490" on="0"/> - <pt x="921" y="1444" on="1"/> - <pt x="830" y="1289" on="0"/> - <pt x="629" y="1289" on="1"/> - <pt x="476" y="1289" on="0"/> - <pt x="387" y="1370" on="1"/> - <pt x="332" y="1419" on="0"/> - <pt x="304" y="1491" on="1"/> - <pt x="293" y="1520" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 72 values pushed */ - 0 0 13 14 20 48 200 16 15 11 10 4 13 20 5 0 0 4 3 6 1 5 8 7 2 - 1 6 3 0 2 4 48 200 9 0 1 0 6 5 1 14 16 15 9 8 4 13 6 11 10 - 5 4 1 0 6 13 2 0 0 7 6 10 1 2 1 4 48 200 3 2 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="icircumflex" xMin="148" yMin="0" xMax="1105" yMax="1604"> - <component glyphName="dotlessi" x="0" y="0" flags="0x4"/> - <component glyphName="circumflex" x="23" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="idieresis" xMin="148" yMin="0" xMax="1105" yMax="1480"> - <contour> - <pt x="148" y="0" on="1"/> - <pt x="148" y="123" on="1"/> - <pt x="538" y="123" on="1"/> - <pt x="538" y="962" on="1"/> - <pt x="148" y="962" on="1"/> - <pt x="148" y="1086" on="1"/> - <pt x="735" y="1086" on="1"/> - <pt x="735" y="123" on="1"/> - <pt x="1105" y="123" on="1"/> - <pt x="1105" y="0" on="1"/> - </contour> - <contour> - <pt x="303" y="1283" on="1"/> - <pt x="303" y="1480" on="1"/> - <pt x="500" y="1480" on="1"/> - <pt x="500" y="1283" on="1"/> - </contour> - <contour> - <pt x="772" y="1283" on="1"/> - <pt x="772" y="1480" on="1"/> - <pt x="969" y="1480" on="1"/> - <pt x="969" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 83 values pushed */ - 0 0 17 14 13 10 10 3 11 4 3 6 1 5 8 7 2 1 6 3 0 3 4 48 200 - 9 0 1 0 16 15 12 11 0 3 6 5 1 14 9 8 2 13 16 5 4 1 0 4 13 - 10 0 0 15 14 10 1 16 13 12 10 1 10 7 6 10 1 2 3 4 48 200 17 16 1 - 11 10 1 3 2 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="igrave" xMin="148" yMin="0" xMax="1105" yMax="1604"> - <component glyphName="dotlessi" x="0" y="0" flags="0x4"/> - <component glyphName="grave" x="-101" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ij" xMin="57" yMin="-420" xMax="1056" yMax="1579"> - <contour> - <pt x="57" y="0" on="1"/> - <pt x="57" y="123" on="1"/> - <pt x="205" y="123" on="1"/> - <pt x="205" y="962" on="1"/> - <pt x="57" y="962" on="1"/> - <pt x="57" y="1086" on="1"/> - <pt x="402" y="1086" on="1"/> - <pt x="402" y="123" on="1"/> - <pt x="550" y="123" on="1"/> - <pt x="550" y="0" on="1"/> - </contour> - <contour> - <pt x="1056" y="1086" on="1"/> - <pt x="1056" y="11" on="1"/> - <pt x="1056" y="-420" on="0"/> - <pt x="693" y="-420" on="1"/> - <pt x="599" y="-420" on="0"/> - <pt x="470" y="-383" on="1"/> - <pt x="470" y="-173" on="1"/> - <pt x="594" y="-173" on="1"/> - <pt x="606" y="-290" on="1"/> - <pt x="669" y="-321" on="0"/> - <pt x="716" y="-321" on="1"/> - <pt x="859" y="-321" on="0"/> - <pt x="859" y="-82" on="1"/> - <pt x="859" y="962" on="1"/> - <pt x="662" y="962" on="1"/> - <pt x="662" y="1086" on="1"/> - </contour> - <contour> - <pt x="180" y="1332" on="1"/> - <pt x="180" y="1579" on="1"/> - <pt x="402" y="1579" on="1"/> - <pt x="402" y="1332" on="1"/> - </contour> - <contour> - <pt x="834" y="1332" on="1"/> - <pt x="834" y="1579" on="1"/> - <pt x="1056" y="1579" on="1"/> - <pt x="1056" y="1332" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 120 values pushed */ - 0 0 20 17 13 48 200 11 1 0 2 22 18 17 16 15 5 13 13 0 0 0 33 30 29 - 26 4 3 27 24 23 4 3 6 3 5 8 7 2 1 6 3 0 3 4 48 200 32 31 28 - 27 3 9 0 1 2 0 25 10 6 5 1 3 14 25 24 18 17 9 8 6 30 15 3 5 - 4 1 0 4 13 26 0 0 31 30 9 1 10 23 22 10 1 10 29 28 7 6 10 3 2 - 3 4 48 200 27 26 1 33 32 11 10 3 16 15 1 3 2 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="imacron" xMin="148" yMin="0" xMax="1105" yMax="1407"> - <component glyphName="dotlessi" x="0" y="0" flags="0x4"/> - <component glyphName="macron" x="-22" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="iogonek" xMin="148" yMin="-370" xMax="1105" yMax="1579"> - <component glyphName="i" x="0" y="0" flags="0x4"/> - <component glyphName="ogonek" x="221" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="itilde" xMin="148" yMin="0" xMax="1105" yMax="1518"> - <contour> - <pt x="148" y="0" on="1"/> - <pt x="148" y="123" on="1"/> - <pt x="538" y="123" on="1"/> - <pt x="538" y="962" on="1"/> - <pt x="148" y="962" on="1"/> - <pt x="148" y="1086" on="1"/> - <pt x="735" y="1086" on="1"/> - <pt x="735" y="123" on="1"/> - <pt x="1105" y="123" on="1"/> - <pt x="1105" y="0" on="1"/> - </contour> - <contour> - <pt x="247" y="1283" on="1"/> - <pt x="253" y="1377" on="0"/> - <pt x="278" y="1427" on="1"/> - <pt x="323" y="1518" on="0"/> - <pt x="432" y="1518" on="1"/> - <pt x="504" y="1518" on="0"/> - <pt x="567" y="1479" on="1"/> - <pt x="627" y="1442" on="1"/> - <pt x="689" y="1404" on="0"/> - <pt x="723" y="1404" on="1"/> - <pt x="791" y="1404" on="0"/> - <pt x="802" y="1518" on="1"/> - <pt x="913" y="1518" on="1"/> - <pt x="906" y="1424" on="0"/> - <pt x="881" y="1374" on="1"/> - <pt x="835" y="1283" on="0"/> - <pt x="728" y="1283" on="1"/> - <pt x="655" y="1283" on="0"/> - <pt x="592" y="1322" on="1"/> - <pt x="532" y="1359" on="1"/> - <pt x="472" y="1396" on="0"/> - <pt x="436" y="1396" on="1"/> - <pt x="368" y="1396" on="0"/> - <pt x="357" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 86 values pushed */ - 0 0 31 5 14 19 5 26 48 200 14 0 26 1 33 26 10 3 0 5 3 0 1 22 21 - 2 13 0 0 0 0 4 3 6 1 5 8 7 2 1 6 3 0 2 4 48 200 9 0 1 - 0 6 5 1 14 22 21 9 8 4 13 6 33 10 5 4 1 0 6 13 2 0 0 7 6 - 10 1 2 1 4 48 200 3 2 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MDAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="j" xMin="159" yMin="-420" xMax="915" yMax="1579"> - <contour> - <pt x="159" y="-344" on="1"/> - <pt x="159" y="-25" on="1"/> - <pt x="282" y="-25" on="1"/> - <pt x="313" y="-243" on="1"/> - <pt x="381" y="-296" on="0"/> - <pt x="460" y="-296" on="1"/> - <pt x="592" y="-296" on="0"/> - <pt x="648" y="-200" on="1"/> - <pt x="705" y="-104" on="0"/> - <pt x="705" y="127" on="1"/> - <pt x="705" y="962" on="1"/> - <pt x="261" y="962" on="1"/> - <pt x="261" y="1086" on="1"/> - <pt x="903" y="1086" on="1"/> - <pt x="903" y="66" on="1"/> - <pt x="903" y="-164" on="0"/> - <pt x="790" y="-292" on="1"/> - <pt x="677" y="-420" on="0"/> - <pt x="476" y="-420" on="1"/> - <pt x="337" y="-420" on="0"/> - </contour> - <contour> - <pt x="693" y="1332" on="1"/> - <pt x="693" y="1579" on="1"/> - <pt x="915" y="1579" on="1"/> - <pt x="915" y="1332" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 84 values pushed */ - 0 0 5 5 18 48 200 1 14 9 2 10 2 3 0 1 3 2 1 0 4 13 18 2 0 - 0 0 23 20 4 1 21 11 10 6 1 12 2 4 48 200 22 21 1 0 13 12 1 14 12 - 11 3 2 4 20 0 3 0 0 21 20 9 1 22 10 9 10 1 13 2 4 48 200 23 22 - 1 14 13 1 1 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="jcircumflex" xMin="159" yMin="-420" xMax="1092" yMax="1604"> - <contour> - <pt x="159" y="-344" on="1"/> - <pt x="159" y="-25" on="1"/> - <pt x="282" y="-25" on="1"/> - <pt x="313" y="-243" on="1"/> - <pt x="381" y="-296" on="0"/> - <pt x="460" y="-296" on="1"/> - <pt x="592" y="-296" on="0"/> - <pt x="648" y="-200" on="1"/> - <pt x="705" y="-104" on="0"/> - <pt x="705" y="127" on="1"/> - <pt x="705" y="962" on="1"/> - <pt x="261" y="962" on="1"/> - <pt x="261" y="1086" on="1"/> - <pt x="903" y="1086" on="1"/> - <pt x="903" y="66" on="1"/> - <pt x="903" y="-164" on="0"/> - <pt x="790" y="-292" on="1"/> - <pt x="677" y="-420" on="0"/> - <pt x="476" y="-420" on="1"/> - <pt x="337" y="-420" on="0"/> - </contour> - <contour> - <pt x="360" y="1283" on="1"/> - <pt x="617" y="1604" on="1"/> - <pt x="835" y="1604" on="1"/> - <pt x="1092" y="1283" on="1"/> - <pt x="968" y="1283" on="1"/> - <pt x="727" y="1485" on="1"/> - <pt x="725" y="1485" on="1"/> - <pt x="484" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 96 values pushed */ - 0 0 5 5 18 48 200 27 26 25 24 23 20 6 21 12 3 1 14 9 2 10 2 3 0 - 1 3 2 1 0 4 13 18 2 0 0 0 11 10 6 1 12 1 4 48 200 22 21 1 0 - 13 12 1 14 26 25 22 3 13 9 3 27 21 20 12 11 3 2 7 9 0 3 24 23 2 - 13 13 0 0 10 9 10 1 13 1 4 48 200 14 13 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="k" xMin="74" yMin="0" xMax="1176" yMax="1579"> - <contour> - <pt x="821" y="0" on="1"/> - <pt x="821" y="123" on="1"/> - <pt x="419" y="524" on="1"/> - <pt x="395" y="524" on="1"/> - <pt x="395" y="123" on="1"/> - <pt x="494" y="123" on="1"/> - <pt x="494" y="0" on="1"/> - <pt x="74" y="0" on="1"/> - <pt x="74" y="123" on="1"/> - <pt x="197" y="123" on="1"/> - <pt x="197" y="1456" on="1"/> - <pt x="74" y="1456" on="1"/> - <pt x="74" y="1579" on="1"/> - <pt x="395" y="1579" on="1"/> - <pt x="395" y="592" on="1"/> - <pt x="419" y="592" on="1"/> - <pt x="777" y="962" on="1"/> - <pt x="661" y="962" on="1"/> - <pt x="661" y="1086" on="1"/> - <pt x="1093" y="1086" on="1"/> - <pt x="1093" y="962" on="1"/> - <pt x="952" y="962" on="1"/> - <pt x="589" y="600" on="1"/> - <pt x="1077" y="123" on="1"/> - <pt x="1176" y="123" on="1"/> - <pt x="1176" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 92 values pushed */ - 11 10 2 12 18 3 24 23 22 15 14 9 8 5 4 3 2 1 12 16 0 3 0 0 21 - 20 17 16 6 3 18 1 4 48 200 13 12 1 25 7 6 0 3 2 0 19 18 1 14 25 - 24 23 22 21 20 19 18 17 16 15 6 5 2 1 0 16 13 3 12 11 8 7 4 13 9 - 0 0 14 13 4 3 10 3 9 1 4 48 200 10 9 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="kcommaaccent" xMin="74" yMin="-432" xMax="1176" yMax="1579"> - <component glyphName="k" x="0" y="0" flags="0x4"/> - <component glyphName="Unterkomma" x="29" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="kgreenlandic" xMin="74" yMin="0" xMax="1176" yMax="1086"> - <contour> - <pt x="821" y="0" on="1"/> - <pt x="821" y="123" on="1"/> - <pt x="419" y="524" on="1"/> - <pt x="395" y="524" on="1"/> - <pt x="395" y="123" on="1"/> - <pt x="494" y="123" on="1"/> - <pt x="494" y="0" on="1"/> - <pt x="74" y="0" on="1"/> - <pt x="74" y="123" on="1"/> - <pt x="197" y="123" on="1"/> - <pt x="197" y="962" on="1"/> - <pt x="74" y="962" on="1"/> - <pt x="74" y="1086" on="1"/> - <pt x="395" y="1086" on="1"/> - <pt x="395" y="592" on="1"/> - <pt x="419" y="592" on="1"/> - <pt x="777" y="962" on="1"/> - <pt x="661" y="962" on="1"/> - <pt x="661" y="1086" on="1"/> - <pt x="1093" y="1086" on="1"/> - <pt x="1093" y="962" on="1"/> - <pt x="952" y="962" on="1"/> - <pt x="589" y="600" on="1"/> - <pt x="1077" y="123" on="1"/> - <pt x="1176" y="123" on="1"/> - <pt x="1176" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 87 values pushed */ - 24 23 22 15 14 9 8 5 4 3 2 1 12 10 0 3 0 0 21 20 17 16 11 10 6 - 5 12 1 4 48 200 25 7 6 0 3 0 19 18 13 12 1 3 14 25 24 23 22 21 20 - 19 18 17 16 15 6 5 2 1 0 16 13 3 12 11 8 7 4 13 9 0 0 14 13 4 - 3 10 3 9 1 4 48 200 10 9 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="l" xMin="148" yMin="0" xMax="1105" yMax="1579"> - <contour> - <pt x="148" y="0" on="1"/> - <pt x="148" y="123" on="1"/> - <pt x="538" y="123" on="1"/> - <pt x="538" y="1456" on="1"/> - <pt x="148" y="1456" on="1"/> - <pt x="148" y="1579" on="1"/> - <pt x="735" y="1579" on="1"/> - <pt x="735" y="123" on="1"/> - <pt x="1105" y="123" on="1"/> - <pt x="1105" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 54 values pushed */ - 0 0 4 3 6 1 5 8 7 2 1 6 3 0 2 4 48 200 6 5 1 9 0 1 2 - 0 14 9 8 2 13 6 5 4 1 0 4 13 2 0 0 7 6 10 1 2 1 4 48 200 - 3 2 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="lacute" xMin="148" yMin="0" xMax="1105" yMax="1999"> - <component glyphName="l" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="146" y="395" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="lcaron" xMin="123" yMin="0" xMax="1105" yMax="1579"> - <contour> - <pt x="123" y="0" on="1"/> - <pt x="123" y="123" on="1"/> - <pt x="513" y="123" on="1"/> - <pt x="513" y="1456" on="1"/> - <pt x="123" y="1456" on="1"/> - <pt x="123" y="1579" on="1"/> - <pt x="710" y="1579" on="1"/> - <pt x="710" y="123" on="1"/> - <pt x="1080" y="123" on="1"/> - <pt x="1080" y="0" on="1"/> - </contour> - <contour> - <pt x="908" y="1125" on="1"/> - <pt x="908" y="1184" on="1"/> - <pt x="984" y="1205" on="0"/> - <pt x="984" y="1365" on="1"/> - <pt x="984" y="1382" on="1"/> - <pt x="908" y="1382" on="1"/> - <pt x="908" y="1579" on="1"/> - <pt x="1105" y="1579" on="1"/> - <pt x="1105" y="1408" on="1"/> - <pt x="1104" y="1146" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 80 values pushed */ - 18 15 14 13 11 10 6 3 1 3 0 0 4 3 6 1 5 8 7 2 1 6 3 0 2 - 4 48 200 17 16 6 5 3 9 0 1 2 0 14 14 13 9 8 4 17 10 3 5 4 1 - 0 4 13 2 0 0 16 15 11 10 10 3 17 7 6 10 1 2 2 4 48 200 18 17 1 - 3 2 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="lcommaaccent" xMin="148" yMin="-432" xMax="1105" yMax="1579"> - <component glyphName="l" x="0" y="0" flags="0x4"/> - <component glyphName="Unterkomma" x="37" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ldot" xMin="123" yMin="0" xMax="1228" yMax="1579"> - <contour> - <pt x="123" y="0" on="1"/> - <pt x="123" y="123" on="1"/> - <pt x="513" y="123" on="1"/> - <pt x="513" y="1456" on="1"/> - <pt x="123" y="1456" on="1"/> - <pt x="123" y="1579" on="1"/> - <pt x="710" y="1579" on="1"/> - <pt x="710" y="123" on="1"/> - <pt x="1080" y="123" on="1"/> - <pt x="1080" y="0" on="1"/> - </contour> - <contour> - <pt x="1031" y="666" on="1"/> - <pt x="1031" y="863" on="1"/> - <pt x="1228" y="863" on="1"/> - <pt x="1228" y="666" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 72 values pushed */ - 0 0 13 10 10 1 11 4 3 6 1 5 8 7 2 1 6 3 0 3 4 48 200 12 11 - 1 6 5 1 9 0 1 3 0 14 9 8 2 12 10 3 5 4 1 0 4 13 2 0 0 - 11 10 10 1 12 7 6 10 1 2 2 4 48 200 13 12 1 3 2 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="less" xMin="99" yMin="0" xMax="1131" yMax="1234"> - <contour> - <pt x="1131" y="0" on="1"/> - <pt x="99" y="617" on="1"/> - <pt x="1131" y="1234" on="1"/> - <pt x="1131" y="1061" on="1"/> - <pt x="388" y="617" on="1"/> - <pt x="1131" y="173" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 16 values pushed */ - 5 4 3 2 1 0 14 4 1 0 5 3 2 0 3 0 - CALL[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="logicalnot" xMin="99" yMin="197" xMax="1130" yMax="691"> - <contour> - <pt x="982" y="197" on="1"/> - <pt x="982" y="543" on="1"/> - <pt x="99" y="543" on="1"/> - <pt x="99" y="691" on="1"/> - <pt x="1130" y="691" on="1"/> - <pt x="1130" y="543" on="1"/> - <pt x="1130" y="543" on="1"/> - <pt x="1130" y="197" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 43 values pushed */ - 0 0 6 5 2 1 16 3 3 1 4 48 200 4 3 1 7 0 1 2 0 14 0 0 1 - 0 16 1 4 1 4 48 200 7 6 5 4 3 3 2 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="longs" xMin="148" yMin="0" xMax="1167" yMax="1604"> - <contour> - <pt x="148" y="0" on="1"/> - <pt x="148" y="123" on="1"/> - <pt x="419" y="123" on="1"/> - <pt x="419" y="925" on="1"/> - <pt x="148" y="925" on="1"/> - <pt x="148" y="1061" on="1"/> - <pt x="419" y="1061" on="1"/> - <pt x="419" y="1179" on="1"/> - <pt x="419" y="1404" on="0"/> - <pt x="510" y="1504" on="1"/> - <pt x="601" y="1604" on="0"/> - <pt x="803" y="1604" on="1"/> - <pt x="974" y="1604" on="0"/> - <pt x="1167" y="1524" on="1"/> - <pt x="1167" y="1277" on="1"/> - <pt x="1044" y="1277" on="1"/> - <pt x="1013" y="1433" on="1"/> - <pt x="912" y="1480" on="0"/> - <pt x="829" y="1480" on="1"/> - <pt x="710" y="1480" on="0"/> - <pt x="664" y="1420" on="1"/> - <pt x="617" y="1360" on="0"/> - <pt x="617" y="1201" on="1"/> - <pt x="617" y="123" on="1"/> - <pt x="987" y="123" on="1"/> - <pt x="987" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 80 values pushed */ - 0 0 18 5 11 48 200 22 16 15 14 13 7 6 13 11 5 0 0 4 3 20 1 5 24 - 23 2 1 6 3 0 2 4 48 200 6 5 1 25 0 1 2 0 14 25 24 16 15 4 13 - 22 3 5 4 1 0 4 13 2 0 0 23 22 10 1 2 1 4 48 200 14 13 1 7 6 - 3 2 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="lslash" xMin="148" yMin="0" xMax="1105" yMax="1579"> - <contour> - <pt x="148" y="0" on="1"/> - <pt x="148" y="123" on="1"/> - <pt x="538" y="123" on="1"/> - <pt x="538" y="728" on="1"/> - <pt x="247" y="583" on="1"/> - <pt x="247" y="721" on="1"/> - <pt x="538" y="866" on="1"/> - <pt x="538" y="1456" on="1"/> - <pt x="148" y="1456" on="1"/> - <pt x="148" y="1579" on="1"/> - <pt x="735" y="1579" on="1"/> - <pt x="735" y="965" on="1"/> - <pt x="1026" y="1110" on="1"/> - <pt x="1026" y="973" on="1"/> - <pt x="735" y="827" on="1"/> - <pt x="735" y="123" on="1"/> - <pt x="1105" y="123" on="1"/> - <pt x="1105" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 77 values pushed */ - 14 13 12 11 6 5 4 3 8 7 1 3 0 0 8 7 6 1 9 16 15 2 1 6 3 - 0 2 4 48 200 10 9 1 17 0 1 2 0 14 17 16 2 13 12 9 8 1 0 4 13 - 4 0 0 15 14 11 10 10 3 2 1 4 48 200 13 12 1 7 6 3 2 3 5 4 1 - 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="m" xMin="26" yMin="0" xMax="1204" yMax="1110"> - <contour> - <pt x="26" y="0" on="1"/> - <pt x="26" y="123" on="1"/> - <pt x="100" y="123" on="1"/> - <pt x="100" y="962" on="1"/> - <pt x="26" y="962" on="1"/> - <pt x="26" y="1086" on="1"/> - <pt x="279" y="1086" on="1"/> - <pt x="279" y="879" on="1"/> - <pt x="346" y="1009" on="0"/> - <pt x="389" y="1055" on="1"/> - <pt x="441" y="1110" on="0"/> - <pt x="517" y="1110" on="1"/> - <pt x="617" y="1110" on="0"/> - <pt x="663" y="1017" on="1"/> - <pt x="687" y="969" on="0"/> - <pt x="698" y="879" on="1"/> - <pt x="740" y="983" on="0"/> - <pt x="787" y="1035" on="1"/> - <pt x="853" y="1110" on="0"/> - <pt x="943" y="1110" on="1"/> - <pt x="1130" y="1110" on="0"/> - <pt x="1130" y="837" on="1"/> - <pt x="1130" y="123" on="1"/> - <pt x="1204" y="123" on="1"/> - <pt x="1204" y="0" on="1"/> - <pt x="951" y="0" on="1"/> - <pt x="951" y="752" on="1"/> - <pt x="951" y="956" on="0"/> - <pt x="886" y="956" on="1"/> - <pt x="838" y="956" on="0"/> - <pt x="779" y="870" on="1"/> - <pt x="748" y="825" on="0"/> - <pt x="731" y="783" on="1"/> - <pt x="705" y="718" on="0"/> - <pt x="705" y="691" on="1"/> - <pt x="705" y="123" on="1"/> - <pt x="779" y="123" on="1"/> - <pt x="779" y="0" on="1"/> - <pt x="526" y="0" on="1"/> - <pt x="526" y="798" on="1"/> - <pt x="526" y="956" on="0"/> - <pt x="460" y="956" on="1"/> - <pt x="373" y="956" on="0"/> - <pt x="279" y="691" on="1"/> - <pt x="279" y="123" on="1"/> - <pt x="353" y="123" on="1"/> - <pt x="353" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 109 values pushed */ - 0 0 41 30 11 28 30 19 48 200 19 1 11 1 45 44 43 39 36 35 34 26 23 22 21 - 15 7 4 3 2 1 17 5 0 3 46 38 37 25 24 0 5 0 6 5 1 14 37 36 2 - 25 34 3 15 34 38 2 46 45 2 38 6 3 24 23 2 13 21 5 4 1 0 4 13 2 - 0 0 26 25 12 1 21 35 34 12 1 38 44 43 7 6 12 3 2 3 4 48 200 22 21 - 1 39 38 1 3 2 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="macron" xMin="269" yMin="1283" xMax="960" yMax="1407"> - <contour> - <pt x="269" y="1283" on="1"/> - <pt x="269" y="1407" on="1"/> - <pt x="960" y="1407" on="1"/> - <pt x="960" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 0 0 3 0 6 1 1 1 4 48 200 2 1 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="macron#1" xMin="0" yMin="1456" xMax="1229" yMax="1604"> - <contour> - <pt x="0" y="1604" on="1"/> - <pt x="1229" y="1604" on="1"/> - <pt x="1229" y="1456" on="1"/> - <pt x="0" y="1456" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 24 values pushed */ - 0 0 3 2 16 1 0 1 4 48 200 1 0 1 0 14 2 1 1 3 0 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="minus" xMin="99" yMin="543" xMax="1130" yMax="691"> - <contour> - <pt x="99" y="543" on="1"/> - <pt x="99" y="691" on="1"/> - <pt x="1130" y="691" on="1"/> - <pt x="1130" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 24 values pushed */ - 0 0 3 0 7 1 1 1 4 48 200 2 1 1 0 14 3 2 1 1 0 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="mu" xMin="68" yMin="-395" xMax="1166" yMax="1086"> - <contour> - <pt x="191" y="962" on="1"/> - <pt x="68" y="962" on="1"/> - <pt x="68" y="1086" on="1"/> - <pt x="389" y="1086" on="1"/> - <pt x="389" y="385" on="1"/> - <pt x="389" y="130" on="0"/> - <pt x="552" y="130" on="1"/> - <pt x="701" y="130" on="0"/> - <pt x="845" y="382" on="1"/> - <pt x="845" y="962" on="1"/> - <pt x="734" y="962" on="1"/> - <pt x="734" y="1086" on="1"/> - <pt x="1043" y="1086" on="1"/> - <pt x="1043" y="123" on="1"/> - <pt x="1166" y="123" on="1"/> - <pt x="1166" y="0" on="1"/> - <pt x="845" y="0" on="1"/> - <pt x="845" y="209" on="1"/> - <pt x="767" y="89" on="0"/> - <pt x="700" y="37" on="1"/> - <pt x="620" y="-25" on="0"/> - <pt x="499" y="-25" on="1"/> - <pt x="449" y="-25" on="0"/> - <pt x="389" y="-10" on="1"/> - <pt x="389" y="-395" on="1"/> - <pt x="191" y="-395" on="1"/> - <pt x="191" y="363" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 85 values pushed */ - 0 0 6 30 21 48 200 21 2 26 17 14 13 10 9 8 4 1 0 10 2 15 3 23 15 - 24 2 16 15 1 25 24 1 2 0 12 11 3 2 1 3 14 11 10 2 8 3 3 15 14 - 2 13 12 2 1 0 0 0 17 16 9 8 10 3 12 24 23 4 3 10 3 0 2 4 48 - 200 13 12 1 26 25 0 2 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="multiply" xMin="99" yMin="0" xMax="1131" yMax="1032"> - <contour> - <pt x="99" y="105" on="1"/> - <pt x="510" y="516" on="1"/> - <pt x="99" y="927" on="1"/> - <pt x="204" y="1032" on="1"/> - <pt x="615" y="620" on="1"/> - <pt x="1026" y="1032" on="1"/> - <pt x="1131" y="927" on="1"/> - <pt x="719" y="516" on="1"/> - <pt x="1131" y="105" on="1"/> - <pt x="1026" y="0" on="1"/> - <pt x="615" y="411" on="1"/> - <pt x="204" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 33 values pushed */ - 1 10 8 7 6 5 4 3 2 1 0 10 13 2 0 1 11 9 2 0 14 11 10 9 8 - 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="n" xMin="69" yMin="0" xMax="1167" yMax="1110"> - <contour> - <pt x="69" y="0" on="1"/> - <pt x="69" y="123" on="1"/> - <pt x="192" y="123" on="1"/> - <pt x="192" y="962" on="1"/> - <pt x="69" y="962" on="1"/> - <pt x="69" y="1086" on="1"/> - <pt x="390" y="1086" on="1"/> - <pt x="390" y="876" on="1"/> - <pt x="459" y="981" on="0"/> - <pt x="527" y="1034" on="1"/> - <pt x="623" y="1110" on="0"/> - <pt x="742" y="1110" on="1"/> - <pt x="1043" y="1110" on="0"/> - <pt x="1043" y="722" on="1"/> - <pt x="1043" y="123" on="1"/> - <pt x="1167" y="123" on="1"/> - <pt x="1167" y="0" on="1"/> - <pt x="747" y="0" on="1"/> - <pt x="747" y="123" on="1"/> - <pt x="846" y="123" on="1"/> - <pt x="846" y="701" on="1"/> - <pt x="846" y="956" on="0"/> - <pt x="683" y="956" on="1"/> - <pt x="533" y="956" on="0"/> - <pt x="390" y="704" on="1"/> - <pt x="390" y="123" on="1"/> - <pt x="501" y="123" on="1"/> - <pt x="501" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 83 values pushed */ - 0 0 22 30 11 48 200 11 1 26 25 24 20 19 18 15 14 13 7 4 3 2 1 14 5 - 0 3 27 17 16 0 3 0 6 5 1 14 27 26 18 17 4 19 6 3 16 15 2 13 13 - 5 4 1 0 4 13 2 0 0 20 19 10 1 13 25 24 7 6 10 3 2 2 4 48 200 - 14 13 1 3 2 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="nacute" xMin="69" yMin="0" xMax="1167" yMax="1604"> - <component glyphName="n" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="96" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="napostrophe" xMin="8" yMin="0" xMax="1168" yMax="1579"> - <contour> - <pt x="70" y="0" on="1"/> - <pt x="70" y="123" on="1"/> - <pt x="193" y="123" on="1"/> - <pt x="193" y="962" on="1"/> - <pt x="70" y="962" on="1"/> - <pt x="70" y="1086" on="1"/> - <pt x="391" y="1086" on="1"/> - <pt x="391" y="876" on="1"/> - <pt x="460" y="981" on="0"/> - <pt x="528" y="1034" on="1"/> - <pt x="624" y="1110" on="0"/> - <pt x="743" y="1110" on="1"/> - <pt x="1044" y="1110" on="0"/> - <pt x="1044" y="722" on="1"/> - <pt x="1044" y="123" on="1"/> - <pt x="1168" y="123" on="1"/> - <pt x="1168" y="0" on="1"/> - <pt x="748" y="0" on="1"/> - <pt x="748" y="123" on="1"/> - <pt x="847" y="123" on="1"/> - <pt x="847" y="701" on="1"/> - <pt x="847" y="956" on="0"/> - <pt x="684" y="956" on="1"/> - <pt x="534" y="956" on="0"/> - <pt x="391" y="704" on="1"/> - <pt x="391" y="123" on="1"/> - <pt x="502" y="123" on="1"/> - <pt x="502" y="0" on="1"/> - </contour> - <contour> - <pt x="8" y="1125" on="1"/> - <pt x="8" y="1184" on="1"/> - <pt x="84" y="1205" on="0"/> - <pt x="84" y="1365" on="1"/> - <pt x="84" y="1382" on="1"/> - <pt x="8" y="1382" on="1"/> - <pt x="8" y="1579" on="1"/> - <pt x="205" y="1579" on="1"/> - <pt x="205" y="1408" on="1"/> - <pt x="204" y="1146" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 110 values pushed */ - 0 0 22 30 11 48 200 11 1 36 33 32 31 29 28 6 34 5 3 26 25 24 20 19 18 - 15 14 13 7 4 3 2 1 14 5 0 3 35 34 1 27 17 16 0 3 2 0 6 5 1 - 14 27 26 18 17 4 19 6 3 32 31 5 4 1 0 6 2 28 3 16 15 2 13 13 0 - 0 36 35 10 1 28 20 19 10 1 13 25 24 7 6 10 3 2 3 4 48 200 34 33 29 - 28 3 14 13 1 3 2 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="nbhyphen" xMin="148" yMin="543" xMax="1081" yMax="691"> - <contour> - <pt x="148" y="543" on="1"/> - <pt x="148" y="691" on="1"/> - <pt x="1081" y="691" on="1"/> - <pt x="1081" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 24 values pushed */ - 0 0 3 0 7 1 1 1 4 48 200 2 1 1 0 14 3 2 1 1 0 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ncaron" xMin="69" yMin="0" xMax="1167" yMax="1604"> - <component glyphName="n" x="0" y="0" flags="0x4"/> - <component glyphName="caron" x="-16" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ncommaaccent" xMin="69" yMin="-432" xMax="1167" yMax="1110"> - <component glyphName="n" x="0" y="0" flags="0x4"/> - <component glyphName="Unterkomma" x="24" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="nine" xMin="96" yMin="-37" xMax="1106" yMax="1517"> - <contour> - <pt x="893" y="707" on="1"/> - <pt x="829" y="620" on="0"/> - <pt x="759" y="576" on="1"/> - <pt x="656" y="512" on="0"/> - <pt x="521" y="512" on="1"/> - <pt x="331" y="512" on="0"/> - <pt x="214" y="646" on="1"/> - <pt x="96" y="779" on="0"/> - <pt x="96" y="994" on="1"/> - <pt x="96" y="1226" on="0"/> - <pt x="233" y="1371" on="1"/> - <pt x="370" y="1517" on="0"/> - <pt x="586" y="1517" on="1"/> - <pt x="830" y="1517" on="0"/> - <pt x="968" y="1319" on="1"/> - <pt x="1106" y="1121" on="0"/> - <pt x="1106" y="770" on="1"/> - <pt x="1106" y="385" on="0"/> - <pt x="943" y="174" on="1"/> - <pt x="780" y="-37" on="0"/> - <pt x="490" y="-37" on="1"/> - <pt x="362" y="-37" on="0"/> - <pt x="164" y="34" on="1"/> - <pt x="164" y="351" on="1"/> - <pt x="287" y="351" on="1"/> - <pt x="311" y="141" on="1"/> - <pt x="397" y="86" on="0"/> - <pt x="489" y="86" on="1"/> - <pt x="703" y="86" on="0"/> - <pt x="813" y="302" on="1"/> - <pt x="890" y="453" on="0"/> - </contour> - <contour> - <pt x="560" y="1394" on="1"/> - <pt x="450" y="1394" on="0"/> - <pt x="382" y="1315" on="1"/> - <pt x="296" y="1215" on="0"/> - <pt x="296" y="1017" on="1"/> - <pt x="296" y="641" on="0"/> - <pt x="559" y="641" on="1"/> - <pt x="693" y="641" on="0"/> - <pt x="786" y="744" on="1"/> - <pt x="878" y="846" on="0"/> - <pt x="878" y="1000" on="1"/> - <pt x="878" y="1160" on="0"/> - <pt x="784" y="1277" on="1"/> - <pt x="690" y="1394" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 56 values pushed */ - 0 0 37 25 4 31 5 12 27 5 20 48 200 20 2 12 0 4 1 1 25 24 23 22 4 - 0 6 0 2 3 0 0 14 0 0 41 26 16 35 24 8 48 200 25 24 0 3 13 16 22 - 8 22 23 22 1 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="nonbreakingspace"/><!-- contains no outline data --> - - <TTGlyph name="ntilde" xMin="69" yMin="0" xMax="1167" yMax="1518"> - <component glyphName="n" x="0" y="0" flags="0x4"/> - <component glyphName="tilde" x="-2" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="numbersign" xMin="41" yMin="0" xMax="1189" yMax="1480"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="276" y="444" on="1"/> - <pt x="41" y="444" on="1"/> - <pt x="72" y="568" on="1"/> - <pt x="307" y="568" on="1"/> - <pt x="393" y="913" on="1"/> - <pt x="109" y="913" on="1"/> - <pt x="140" y="1036" on="1"/> - <pt x="424" y="1036" on="1"/> - <pt x="535" y="1480" on="1"/> - <pt x="671" y="1480" on="1"/> - <pt x="560" y="1036" on="1"/> - <pt x="819" y="1036" on="1"/> - <pt x="930" y="1480" on="1"/> - <pt x="1066" y="1480" on="1"/> - <pt x="955" y="1036" on="1"/> - <pt x="1189" y="1036" on="1"/> - <pt x="1158" y="913" on="1"/> - <pt x="924" y="913" on="1"/> - <pt x="837" y="568" on="1"/> - <pt x="1121" y="568" on="1"/> - <pt x="1090" y="444" on="1"/> - <pt x="807" y="444" on="1"/> - <pt x="696" y="0" on="1"/> - <pt x="560" y="0" on="1"/> - <pt x="671" y="444" on="1"/> - <pt x="412" y="444" on="1"/> - <pt x="301" y="0" on="1"/> - </contour> - <contour> - <pt x="442" y="568" on="1"/> - <pt x="702" y="568" on="1"/> - <pt x="788" y="913" on="1"/> - <pt x="529" y="913" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 87 values pushed */ - 14 13 10 9 4 13 7 27 24 23 0 4 13 1 0 0 31 30 18 17 6 5 6 5 7 - 29 28 20 19 4 3 6 5 1 2 4 48 200 16 15 12 11 8 7 5 26 25 22 21 2 - 1 5 2 0 14 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 - 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="o" xMin="111" yMin="-25" xMax="1118" yMax="1110"> - <contour> - <pt x="614" y="1110" on="1"/> - <pt x="849" y="1110" on="0"/> - <pt x="983" y="959" on="1"/> - <pt x="1118" y="808" on="0"/> - <pt x="1118" y="544" on="1"/> - <pt x="1118" y="276" on="0"/> - <pt x="983" y="126" on="1"/> - <pt x="848" y="-25" on="0"/> - <pt x="606" y="-25" on="1"/> - <pt x="401" y="-25" on="0"/> - <pt x="272" y="100" on="1"/> - <pt x="111" y="255" on="0"/> - <pt x="111" y="543" on="1"/> - <pt x="111" y="808" on="0"/> - <pt x="246" y="959" on="1"/> - <pt x="381" y="1110" on="0"/> - </contour> - <contour> - <pt x="614" y="987" on="1"/> - <pt x="324" y="987" on="0"/> - <pt x="324" y="545" on="1"/> - <pt x="324" y="99" on="0"/> - <pt x="614" y="99" on="1"/> - <pt x="905" y="99" on="0"/> - <pt x="905" y="545" on="1"/> - <pt x="905" y="987" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 27 values pushed */ - 0 0 20 5 8 16 5 0 48 200 8 2 0 1 14 0 0 22 39 4 18 39 12 48 200 - 12 4 - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="oacute" xMin="111" yMin="-25" xMax="1118" yMax="1604"> - <component glyphName="o" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="99" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="obreve" xMin="111" yMin="-25" xMax="1118" yMax="1579"> - <contour> - <pt x="614" y="1110" on="1"/> - <pt x="849" y="1110" on="0"/> - <pt x="983" y="959" on="1"/> - <pt x="1118" y="808" on="0"/> - <pt x="1118" y="544" on="1"/> - <pt x="1118" y="276" on="0"/> - <pt x="983" y="126" on="1"/> - <pt x="848" y="-25" on="0"/> - <pt x="606" y="-25" on="1"/> - <pt x="401" y="-25" on="0"/> - <pt x="272" y="100" on="1"/> - <pt x="111" y="255" on="0"/> - <pt x="111" y="543" on="1"/> - <pt x="111" y="808" on="0"/> - <pt x="246" y="959" on="1"/> - <pt x="381" y="1110" on="0"/> - </contour> - <contour> - <pt x="614" y="987" on="1"/> - <pt x="324" y="987" on="0"/> - <pt x="324" y="545" on="1"/> - <pt x="324" y="99" on="0"/> - <pt x="614" y="99" on="1"/> - <pt x="905" y="99" on="0"/> - <pt x="905" y="545" on="1"/> - <pt x="905" y="987" on="0"/> - </contour> - <contour> - <pt x="269" y="1579" on="1"/> - <pt x="392" y="1579" on="1"/> - <pt x="440" y="1431" on="0"/> - <pt x="614" y="1431" on="1"/> - <pt x="789" y="1431" on="0"/> - <pt x="837" y="1579" on="1"/> - <pt x="960" y="1579" on="1"/> - <pt x="937" y="1490" on="0"/> - <pt x="911" y="1444" on="1"/> - <pt x="820" y="1289" on="0"/> - <pt x="618" y="1289" on="1"/> - <pt x="466" y="1289" on="0"/> - <pt x="377" y="1370" on="1"/> - <pt x="322" y="1419" on="0"/> - <pt x="294" y="1491" on="1"/> - <pt x="283" y="1520" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 44 values pushed */ - 0 0 27 14 34 20 5 8 16 5 0 48 200 8 2 0 1 1 30 29 25 24 4 13 34 - 1 0 14 0 0 22 36 4 18 36 12 48 200 30 29 25 24 12 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ocircumflex" xMin="111" yMin="-25" xMax="1118" yMax="1604"> - <component glyphName="o" x="0" y="0" flags="0x4"/> - <component glyphName="circumflex" x="1" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="odieresis" xMin="111" yMin="-25" xMax="1118" yMax="1480"> - <component glyphName="o" x="0" y="0" flags="0x4"/> - <component glyphName="dieresis" x="0" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="oe" xMin="49" yMin="-25" xMax="1179" yMax="1111"> - <contour> - <pt x="647" y="118" on="1"/> - <pt x="564" y="-25" on="0"/> - <pt x="413" y="-25" on="1"/> - <pt x="249" y="-25" on="0"/> - <pt x="149" y="131" on="1"/> - <pt x="49" y="287" on="0"/> - <pt x="49" y="542" on="1"/> - <pt x="49" y="797" on="0"/> - <pt x="150" y="954" on="1"/> - <pt x="250" y="1110" on="0"/> - <pt x="416" y="1110" on="1"/> - <pt x="574" y="1110" on="0"/> - <pt x="663" y="951" on="1"/> - <pt x="749" y="1111" on="0"/> - <pt x="893" y="1111" on="1"/> - <pt x="1179" y="1111" on="0"/> - <pt x="1179" y="607" on="1"/> - <pt x="1179" y="531" on="1"/> - <pt x="735" y="531" on="1"/> - <pt x="735" y="515" on="1"/> - <pt x="735" y="123" on="0"/> - <pt x="951" y="123" on="1"/> - <pt x="1051" y="123" on="0"/> - <pt x="1179" y="210" on="1"/> - <pt x="1179" y="56" on="1"/> - <pt x="1027" y="-25" on="0"/> - <pt x="903" y="-25" on="1"/> - <pt x="745" y="-25" on="0"/> - </contour> - <contour> - <pt x="421" y="987" on="1"/> - <pt x="240" y="987" on="0"/> - <pt x="240" y="541" on="1"/> - <pt x="240" y="99" on="0"/> - <pt x="421" y="99" on="1"/> - <pt x="517" y="99" on="0"/> - <pt x="542" y="224" on="1"/> - <pt x="562" y="324" on="0"/> - <pt x="562" y="538" on="1"/> - <pt x="562" y="785" on="0"/> - <pt x="537" y="882" on="1"/> - <pt x="511" y="987" on="0"/> - </contour> - <contour> - <pt x="736" y="654" on="1"/> - <pt x="994" y="654" on="1"/> - <pt x="994" y="716" on="1"/> - <pt x="994" y="987" on="0"/> - <pt x="882" y="987" on="1"/> - <pt x="741" y="987" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 87 values pushed */ - 0 0 44 5 14 32 5 2 28 5 10 21 14 26 48 200 26 2 14 1 10 1 2 2 1 - 42 12 2 1 40 3 0 16 40 17 2 1 24 23 19 0 4 17 2 3 0 0 0 18 17 - 6 1 40 1 4 48 200 41 40 1 0 14 0 0 30 19 6 48 200 42 41 40 19 18 12 - 0 7 13 36 6 16 24 23 17 16 3 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ogonek" xMin="444" yMin="-370" xMax="786" yMax="0"> - <contour> - <pt x="602" y="0" on="1"/> - <pt x="709" y="0" on="1"/> - <pt x="580" y="-81" on="0"/> - <pt x="580" y="-179" on="1"/> - <pt x="580" y="-275" on="0"/> - <pt x="695" y="-275" on="1"/> - <pt x="749" y="-275" on="0"/> - <pt x="786" y="-260" on="1"/> - <pt x="786" y="-341" on="1"/> - <pt x="724" y="-370" on="0"/> - <pt x="646" y="-370" on="1"/> - <pt x="444" y="-370" on="0"/> - <pt x="444" y="-213" on="1"/> - <pt x="444" y="-90" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 25 values pushed */ - 0 0 5 17 10 48 200 10 8 7 1 0 14 0 0 3 20 12 48 200 12 8 7 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ograve" xMin="111" yMin="-25" xMax="1118" yMax="1604"> - <component glyphName="o" x="0" y="0" flags="0x4"/> - <component glyphName="grave" x="-98" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ohungarumlaut" xMin="111" yMin="-25" xMax="1118" yMax="1604"> - <component glyphName="o" x="0" y="0" flags="0x4"/> - <component glyphName="hungarumlaut" x="102" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="omacron" xMin="111" yMin="-25" xMax="1118" yMax="1407"> - <component glyphName="o" x="0" y="0" flags="0x4"/> - <component glyphName="macron" x="0" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="one" xMin="112" yMin="0" xMax="1198" yMax="1517"> - <contour> - <pt x="112" y="0" on="1"/> - <pt x="112" y="123" on="1"/> - <pt x="556" y="123" on="1"/> - <pt x="556" y="1313" on="1"/> - <pt x="112" y="1202" on="1"/> - <pt x="112" y="1325" on="1"/> - <pt x="753" y="1517" on="1"/> - <pt x="754" y="123" on="1"/> - <pt x="1198" y="123" on="1"/> - <pt x="1198" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 43 values pushed */ - 6 5 4 3 4 13 1 0 0 8 7 2 1 6 3 0 1 4 48 200 9 0 1 0 14 - 9 8 7 6 4 13 2 5 4 1 0 4 13 2 3 2 1 0 - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="onehalf" xMin="43" yMin="-37" xMax="1167" yMax="1517"> - <contour> - <pt x="73" y="-37" on="1"/> - <pt x="851" y="1517" on="1"/> - <pt x="992" y="1517" on="1"/> - <pt x="211" y="-37" on="1"/> - </contour> - <contour> - <pt x="661" y="0" on="1"/> - <pt x="661" y="154" on="1"/> - <pt x="705" y="242" on="0"/> - <pt x="823" y="328" on="1"/> - <pt x="853" y="350" on="0"/> - <pt x="868" y="362" on="1"/> - <pt x="901" y="393" on="1"/> - <pt x="957" y="440" on="1"/> - <pt x="1006" y="481" on="0"/> - <pt x="1006" y="556" on="1"/> - <pt x="1006" y="679" on="0"/> - <pt x="878" y="679" on="1"/> - <pt x="834" y="679" on="0"/> - <pt x="772" y="650" on="1"/> - <pt x="772" y="582" on="1"/> - <pt x="661" y="582" on="1"/> - <pt x="661" y="740" on="1"/> - <pt x="769" y="790" on="0"/> - <pt x="890" y="790" on="1"/> - <pt x="1167" y="790" on="0"/> - <pt x="1167" y="575" on="1"/> - <pt x="1167" y="449" on="0"/> - <pt x="1029" y="344" on="1"/> - <pt x="996" y="319" on="1"/> - <pt x="996" y="319" on="1"/> - <pt x="995" y="318" on="1"/> - <pt x="995" y="318" on="0"/> - <pt x="993" y="317" on="1"/> - <pt x="991" y="316" on="0"/> - <pt x="987" y="313" on="1"/> - <pt x="979" y="307" on="0"/> - <pt x="960" y="294" on="1"/> - <pt x="850" y="223" on="0"/> - <pt x="824" y="148" on="1"/> - <pt x="1167" y="148" on="1"/> - <pt x="1167" y="0" on="1"/> - </contour> - <contour> - <pt x="203" y="728" on="1"/> - <pt x="203" y="1345" on="1"/> - <pt x="43" y="1291" on="1"/> - <pt x="43" y="1415" on="1"/> - <pt x="351" y="1517" on="1"/> - <pt x="351" y="728" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 108 values pushed */ - 0 0 15 22 48 200 22 43 42 41 22 20 5 1 40 3 28 27 19 18 17 10 5 7 40 - 37 3 0 0 38 37 16 1 4 1 4 48 200 45 40 1 39 4 1 44 2 1 2 3 0 - 1 4 0 14 0 0 13 34 24 48 200 37 28 27 18 17 10 2 1 8 24 4 3 3 44 - 40 2 43 42 0 3 13 40 0 0 45 44 16 1 40 1 4 48 200 41 40 1 39 38 24 - 2 20 19 5 4 3 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="onequarter" xMin="43" yMin="-37" xMax="1167" yMax="1517"> - <contour> - <pt x="203" y="728" on="1"/> - <pt x="203" y="1345" on="1"/> - <pt x="43" y="1291" on="1"/> - <pt x="43" y="1415" on="1"/> - <pt x="351" y="1517" on="1"/> - <pt x="351" y="728" on="1"/> - </contour> - <contour> - <pt x="86" y="-37" on="1"/> - <pt x="863" y="1517" on="1"/> - <pt x="1004" y="1517" on="1"/> - <pt x="223" y="-37" on="1"/> - </contour> - <contour> - <pt x="1056" y="0" on="1"/> - <pt x="907" y="0" on="1"/> - <pt x="907" y="179" on="1"/> - <pt x="533" y="179" on="1"/> - <pt x="533" y="302" on="1"/> - <pt x="903" y="790" on="1"/> - <pt x="1056" y="790" on="1"/> - <pt x="1056" y="302" on="1"/> - <pt x="1167" y="302" on="1"/> - <pt x="1167" y="179" on="1"/> - <pt x="1056" y="179" on="1"/> - </contour> - <contour> - <pt x="671" y="302" on="1"/> - <pt x="907" y="302" on="1"/> - <pt x="907" y="611" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 105 values pushed */ - 3 2 1 3 4 15 3 23 0 14 2 0 0 22 21 18 17 14 6 4 12 1 4 48 200 - 16 15 1 20 19 13 12 3 11 10 1 8 7 4 2 9 6 1 5 0 1 6 0 14 8 - 10 11 2 21 15 14 13 7 5 11 4 3 9 4 0 2 19 18 2 13 10 6 3 2 3 - 13 0 0 0 23 22 12 11 16 3 10 5 4 16 1 0 2 4 48 200 20 17 16 10 3 - 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="onesuperior" xMin="266" yMin="728" xMax="963" yMax="1517"> - <contour> - <pt x="266" y="728" on="1"/> - <pt x="266" y="851" on="1"/> - <pt x="528" y="851" on="1"/> - <pt x="528" y="1345" on="1"/> - <pt x="266" y="1295" on="1"/> - <pt x="266" y="1419" on="1"/> - <pt x="701" y="1517" on="1"/> - <pt x="701" y="851" on="1"/> - <pt x="963" y="851" on="1"/> - <pt x="963" y="728" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 52 values pushed */ - 6 5 4 3 4 13 1 0 0 9 0 6 1 1 1 4 48 200 8 7 2 1 3 0 14 - 9 8 2 13 6 5 4 1 0 4 13 2 0 0 7 6 37 1 2 1 4 48 200 3 2 - 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="onesuperiour" xMin="407" yMin="728" xMax="715" yMax="1517"> - <contour> - <pt x="567" y="728" on="1"/> - <pt x="567" y="1345" on="1"/> - <pt x="407" y="1291" on="1"/> - <pt x="407" y="1415" on="1"/> - <pt x="715" y="1517" on="1"/> - <pt x="715" y="728" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 30 values pushed */ - 4 3 2 1 4 13 0 5 0 1 0 14 3 2 0 0 0 1 0 16 1 4 1 4 48 - 200 5 4 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ordfeminine" xMin="136" yMin="715" xMax="1116" yMax="1517"> - <contour> - <pt x="765" y="817" on="1"/> - <pt x="606" y="715" on="0"/> - <pt x="455" y="715" on="1"/> - <pt x="312" y="715" on="0"/> - <pt x="224" y="774" on="1"/> - <pt x="136" y="833" on="0"/> - <pt x="136" y="932" on="1"/> - <pt x="136" y="1195" on="0"/> - <pt x="687" y="1195" on="1"/> - <pt x="765" y="1195" on="1"/> - <pt x="765" y="1250" on="1"/> - <pt x="765" y="1328" on="0"/> - <pt x="718" y="1361" on="1"/> - <pt x="672" y="1394" on="0"/> - <pt x="565" y="1394" on="1"/> - <pt x="478" y="1394" on="0"/> - <pt x="353" y="1352" on="1"/> - <pt x="353" y="1269" on="1"/> - <pt x="204" y="1269" on="1"/> - <pt x="204" y="1458" on="1"/> - <pt x="455" y="1517" on="0"/> - <pt x="597" y="1517" on="1"/> - <pt x="774" y="1517" on="0"/> - <pt x="856" y="1463" on="1"/> - <pt x="938" y="1409" on="0"/> - <pt x="938" y="1287" on="1"/> - <pt x="938" y="856" on="1"/> - <pt x="1116" y="856" on="1"/> - <pt x="1116" y="733" on="1"/> - <pt x="790" y="733" on="1"/> - </contour> - <contour> - <pt x="765" y="933" on="1"/> - <pt x="765" y="1078" on="1"/> - <pt x="725" y="1078" on="1"/> - <pt x="322" y="1078" on="0"/> - <pt x="322" y="937" on="1"/> - <pt x="322" y="839" on="0"/> - <pt x="491" y="839" on="1"/> - <pt x="627" y="839" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 105 values pushed */ - 0 0 36 5 2 14 5 21 48 200 21 0 1 25 19 16 3 0 17 3 0 32 31 30 10 - 9 8 6 17 26 3 0 26 28 2 2 28 0 0 29 28 6 1 26 1 4 48 200 18 17 - 1 27 26 1 2 0 14 0 0 34 19 6 48 200 29 25 0 2 32 17 16 8 4 0 18 - 3 28 27 2 13 25 6 18 0 0 31 30 10 9 0 12 4 25 1 4 48 200 26 25 1 - 19 18 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ordmasculine" xMin="148" yMin="716" xMax="1081" yMax="1517"> - <contour> - <pt x="614" y="1517" on="1"/> - <pt x="829" y="1517" on="0"/> - <pt x="955" y="1409" on="1"/> - <pt x="1081" y="1301" on="0"/> - <pt x="1081" y="1116" on="1"/> - <pt x="1081" y="930" on="0"/> - <pt x="955" y="823" on="1"/> - <pt x="828" y="716" on="0"/> - <pt x="607" y="716" on="1"/> - <pt x="418" y="716" on="0"/> - <pt x="298" y="805" on="1"/> - <pt x="148" y="916" on="0"/> - <pt x="148" y="1117" on="1"/> - <pt x="148" y="1301" on="0"/> - <pt x="274" y="1409" on="1"/> - <pt x="400" y="1517" on="0"/> - </contour> - <contour> - <pt x="614" y="1394" on="1"/> - <pt x="491" y="1394" on="0"/> - <pt x="412" y="1316" on="1"/> - <pt x="333" y="1237" on="0"/> - <pt x="333" y="1117" on="1"/> - <pt x="333" y="996" on="0"/> - <pt x="412" y="918" on="1"/> - <pt x="490" y="839" on="0"/> - <pt x="612" y="839" on="1"/> - <pt x="724" y="839" on="0"/> - <pt x="800" y="902" on="1"/> - <pt x="896" y="982" on="0"/> - <pt x="896" y="1117" on="1"/> - <pt x="896" y="1238" on="0"/> - <pt x="816" y="1316" on="1"/> - <pt x="736" y="1394" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 29 values pushed */ - 0 0 24 5 8 16 5 0 48 200 0 0 1 8 0 0 14 0 0 28 19 4 20 19 12 - 48 200 12 4 - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="oslash" xMin="111" yMin="-25" xMax="1118" yMax="1110"> - <contour> - <pt x="111" y="-25" on="1"/> - <pt x="238" y="139" on="1"/> - <pt x="111" y="311" on="0"/> - <pt x="111" y="545" on="1"/> - <pt x="111" y="809" on="0"/> - <pt x="246" y="960" on="1"/> - <pt x="381" y="1110" on="0"/> - <pt x="620" y="1110" on="1"/> - <pt x="799" y="1110" on="0"/> - <pt x="921" y="1018" on="1"/> - <pt x="993" y="1110" on="1"/> - <pt x="1118" y="1110" on="1"/> - <pt x="991" y="947" on="1"/> - <pt x="1118" y="775" on="0"/> - <pt x="1118" y="540" on="1"/> - <pt x="1118" y="276" on="0"/> - <pt x="983" y="126" on="1"/> - <pt x="848" y="-25" on="0"/> - <pt x="608" y="-25" on="1"/> - <pt x="428" y="-25" on="0"/> - <pt x="308" y="68" on="1"/> - <pt x="236" y="-25" on="1"/> - </contour> - <contour> - <pt x="822" y="891" on="1"/> - <pt x="727" y="987" on="0"/> - <pt x="614" y="987" on="1"/> - <pt x="324" y="987" on="0"/> - <pt x="324" y="542" on="1"/> - <pt x="324" y="392" on="0"/> - <pt x="357" y="292" on="1"/> - </contour> - <contour> - <pt x="408" y="196" on="1"/> - <pt x="494" y="99" on="0"/> - <pt x="614" y="99" on="1"/> - <pt x="905" y="99" on="0"/> - <pt x="905" y="542" on="1"/> - <pt x="905" y="690" on="0"/> - <pt x="872" y="794" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 67 values pushed */ - 0 0 31 5 18 24 5 7 48 200 18 2 7 1 1 1 35 29 28 22 20 12 9 1 8 - 1 2 3 0 0 1 11 10 2 13 1 0 1 21 0 2 0 14 0 0 33 39 14 26 39 - 3 48 200 35 29 28 22 21 20 14 12 11 10 9 3 1 0 - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="otilde" xMin="111" yMin="-25" xMax="1118" yMax="1518"> - <component glyphName="o" x="0" y="0" flags="0x4"/> - <component glyphName="tilde" x="1" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="p" xMin="62" yMin="-395" xMax="1118" yMax="1110"> - <contour> - <pt x="383" y="-272" on="1"/> - <pt x="630" y="-272" on="1"/> - <pt x="630" y="-395" on="1"/> - <pt x="62" y="-395" on="1"/> - <pt x="62" y="-272" on="1"/> - <pt x="185" y="-272" on="1"/> - <pt x="185" y="962" on="1"/> - <pt x="62" y="962" on="1"/> - <pt x="62" y="1086" on="1"/> - <pt x="383" y="1086" on="1"/> - <pt x="383" y="864" on="1"/> - <pt x="458" y="975" on="0"/> - <pt x="529" y="1030" on="1"/> - <pt x="631" y="1110" on="0"/> - <pt x="749" y="1110" on="1"/> - <pt x="914" y="1110" on="0"/> - <pt x="1016" y="967" on="1"/> - <pt x="1118" y="823" on="0"/> - <pt x="1118" y="588" on="1"/> - <pt x="1118" y="302" on="0"/> - <pt x="983" y="139" on="1"/> - <pt x="849" y="-25" on="0"/> - <pt x="614" y="-25" on="1"/> - <pt x="526" y="-25" on="0"/> - <pt x="383" y="0" on="1"/> - </contour> - <contour> - <pt x="383" y="146" on="1"/> - <pt x="519" y="123" on="0"/> - <pt x="595" y="123" on="1"/> - <pt x="762" y="123" on="0"/> - <pt x="835" y="230" on="1"/> - <pt x="908" y="337" on="0"/> - <pt x="908" y="577" on="1"/> - <pt x="908" y="950" on="0"/> - <pt x="694" y="950" on="1"/> - <pt x="530" y="950" on="0"/> - <pt x="383" y="716" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 91 values pushed */ - 0 0 33 30 14 27 14 22 48 200 22 2 14 1 1 35 25 10 7 6 5 8 2 3 0 - 1 24 2 0 2 0 0 0 5 4 1 0 6 3 2 1 4 48 200 3 2 1 0 9 8 - 1 14 0 0 31 39 18 48 200 2 1 2 13 18 0 8 7 4 3 4 13 5 0 0 35 - 25 24 10 9 0 10 5 5 1 4 48 200 6 5 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="paragraph" xMin="100" yMin="-296" xMax="970" yMax="1493"> - <contour> - <pt x="550" y="-296" on="1"/> - <pt x="550" y="740" on="1"/> - <pt x="406" y="757" on="0"/> - <pt x="331" y="790" on="1"/> - <pt x="100" y="889" on="0"/> - <pt x="100" y="1154" on="1"/> - <pt x="100" y="1493" on="0"/> - <pt x="457" y="1493" on="1"/> - <pt x="495" y="1493" on="0"/> - <pt x="554" y="1488" on="1"/> - <pt x="624" y="1482" on="1"/> - <pt x="644" y="1480" on="0"/> - <pt x="679" y="1480" on="1"/> - <pt x="970" y="1480" on="1"/> - <pt x="970" y="-296" on="1"/> - <pt x="846" y="-296" on="1"/> - <pt x="846" y="1357" on="1"/> - <pt x="674" y="1357" on="1"/> - <pt x="674" y="-296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 62 values pushed */ - 7 0 1 1 16 2 2 0 1 18 15 14 0 4 13 2 0 0 0 17 16 6 1 12 1 - 4 48 200 13 12 0 14 12 15 17 2 5 0 0 0 16 15 6 1 13 1 0 6 1 17 - 2 4 48 200 14 13 1 18 17 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="parenleft" xMin="321" yMin="-296" xMax="982" yMax="1579"> - <contour> - <pt x="982" y="-296" on="1"/> - <pt x="830" y="-266" on="0"/> - <pt x="720" y="-194" on="1"/> - <pt x="537" y="-74" on="0"/> - <pt x="426" y="155" on="1"/> - <pt x="321" y="372" on="0"/> - <pt x="321" y="642" on="1"/> - <pt x="321" y="1061" on="0"/> - <pt x="569" y="1344" on="1"/> - <pt x="668" y="1457" on="0"/> - <pt x="794" y="1519" on="1"/> - <pt x="872" y="1557" on="0"/> - <pt x="982" y="1579" on="1"/> - <pt x="982" y="1456" on="1"/> - <pt x="790" y="1398" on="0"/> - <pt x="678" y="1224" on="1"/> - <pt x="531" y="996" on="0"/> - <pt x="531" y="642" on="1"/> - <pt x="531" y="269" on="0"/> - <pt x="692" y="38" on="1"/> - <pt x="801" y="-118" on="0"/> - <pt x="982" y="-173" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 17 values pushed */ - 21 13 12 0 14 0 0 17 39 6 48 200 21 13 12 6 0 - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="parenright" xMin="247" yMin="-296" xMax="908" yMax="1579"> - <contour> - <pt x="247" y="-296" on="1"/> - <pt x="247" y="-173" on="1"/> - <pt x="440" y="-115" on="0"/> - <pt x="552" y="59" on="1"/> - <pt x="699" y="287" on="0"/> - <pt x="699" y="642" on="1"/> - <pt x="699" y="1014" on="0"/> - <pt x="538" y="1245" on="1"/> - <pt x="429" y="1401" on="0"/> - <pt x="247" y="1456" on="1"/> - <pt x="247" y="1579" on="1"/> - <pt x="400" y="1549" on="0"/> - <pt x="510" y="1477" on="1"/> - <pt x="693" y="1357" on="0"/> - <pt x="803" y="1128" on="1"/> - <pt x="908" y="912" on="0"/> - <pt x="908" y="642" on="1"/> - <pt x="908" y="221" on="0"/> - <pt x="661" y="-61" on="1"/> - <pt x="561" y="-174" on="0"/> - <pt x="436" y="-236" on="1"/> - <pt x="358" y="-274" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 17 values pushed */ - 10 9 1 0 14 0 0 5 39 16 48 200 16 10 9 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="percent" xMin="21" yMin="-37" xMax="1207" yMax="1517"> - <contour> - <pt x="61" y="-37" on="1"/> - <pt x="1034" y="1517" on="1"/> - <pt x="1166" y="1517" on="1"/> - <pt x="190" y="-37" on="1"/> - </contour> - <contour> - <pt x="285" y="1480" on="1"/> - <pt x="404" y="1480" on="0"/> - <pt x="476" y="1379" on="1"/> - <pt x="549" y="1277" on="0"/> - <pt x="549" y="1111" on="1"/> - <pt x="549" y="942" on="0"/> - <pt x="476" y="841" on="1"/> - <pt x="404" y="740" on="0"/> - <pt x="281" y="740" on="1"/> - <pt x="177" y="740" on="0"/> - <pt x="108" y="823" on="1"/> - <pt x="21" y="928" on="0"/> - <pt x="21" y="1110" on="1"/> - <pt x="21" y="1278" on="0"/> - <pt x="94" y="1379" on="1"/> - <pt x="166" y="1480" on="0"/> - </contour> - <contour> - <pt x="285" y="1357" on="1"/> - <pt x="157" y="1357" on="0"/> - <pt x="157" y="1110" on="1"/> - <pt x="157" y="864" on="0"/> - <pt x="285" y="864" on="1"/> - <pt x="413" y="864" on="0"/> - <pt x="413" y="1111" on="1"/> - <pt x="413" y="1357" on="0"/> - </contour> - <contour> - <pt x="943" y="740" on="1"/> - <pt x="1062" y="740" on="0"/> - <pt x="1134" y="639" on="1"/> - <pt x="1207" y="538" on="0"/> - <pt x="1207" y="372" on="1"/> - <pt x="1207" y="202" on="0"/> - <pt x="1134" y="101" on="1"/> - <pt x="1061" y="0" on="0"/> - <pt x="941" y="0" on="1"/> - <pt x="835" y="0" on="0"/> - <pt x="766" y="82" on="1"/> - <pt x="679" y="187" on="0"/> - <pt x="679" y="371" on="1"/> - <pt x="679" y="538" on="0"/> - <pt x="752" y="639" on="1"/> - <pt x="824" y="740" on="0"/> - </contour> - <contour> - <pt x="943" y="617" on="1"/> - <pt x="815" y="617" on="0"/> - <pt x="815" y="372" on="1"/> - <pt x="815" y="123" on="0"/> - <pt x="943" y="123" on="1"/> - <pt x="1072" y="123" on="0"/> - <pt x="1072" y="370" on="1"/> - <pt x="1072" y="617" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 69 values pushed */ - 0 0 48 5 36 44 5 28 24 5 12 20 5 4 48 200 36 2 4 0 28 12 1 1 28 - 12 2 0 2 3 0 0 1 2 1 2 13 0 0 1 3 0 2 0 14 0 0 50 20 32 - 46 20 40 26 20 8 22 20 16 48 200 40 32 16 8 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MDAP[1] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="period" xMin="466" yMin="0" xMax="762" yMax="296"> - <contour> - <pt x="466" y="0" on="1"/> - <pt x="466" y="296" on="1"/> - <pt x="762" y="296" on="1"/> - <pt x="762" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 31 values pushed */ - 0 0 2 1 8 1 0 1 4 48 200 3 0 1 0 14 0 0 3 2 8 1 0 1 4 - 48 200 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="periodcentered" xMin="491" yMin="419" xMax="738" yMax="666"> - <contour> - <pt x="491" y="419" on="1"/> - <pt x="491" y="666" on="1"/> - <pt x="738" y="666" on="1"/> - <pt x="738" y="419" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 31 values pushed */ - 0 0 2 1 4 1 0 1 4 48 200 3 0 1 0 14 0 0 3 2 4 1 0 1 4 - 48 200 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="periodcentered#1" xMin="491" yMin="419" xMax="738" yMax="666"> - <contour> - <pt x="491" y="419" on="1"/> - <pt x="491" y="666" on="1"/> - <pt x="738" y="666" on="1"/> - <pt x="738" y="419" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 31 values pushed */ - 0 0 2 1 4 1 0 1 4 48 200 3 0 1 0 14 0 0 3 2 4 1 0 1 4 - 48 200 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="perthousand" xMin="12" yMin="0" xMax="1217" yMax="1480"> - <contour> - <pt x="196" y="1476" on="1"/> - <pt x="279" y="1476" on="0"/> - <pt x="329" y="1391" on="1"/> - <pt x="380" y="1307" on="0"/> - <pt x="380" y="1169" on="1"/> - <pt x="380" y="1027" on="0"/> - <pt x="329" y="943" on="1"/> - <pt x="279" y="859" on="0"/> - <pt x="194" y="859" on="1"/> - <pt x="121" y="859" on="0"/> - <pt x="73" y="927" on="1"/> - <pt x="12" y="1014" on="0"/> - <pt x="12" y="1168" on="1"/> - <pt x="12" y="1306" on="0"/> - <pt x="63" y="1391" on="1"/> - <pt x="113" y="1476" on="0"/> - </contour> - <contour> - <pt x="196" y="1383" on="1"/> - <pt x="108" y="1383" on="0"/> - <pt x="108" y="1168" on="1"/> - <pt x="108" y="952" on="0"/> - <pt x="199" y="952" on="1"/> - <pt x="285" y="952" on="0"/> - <pt x="285" y="1168" on="1"/> - <pt x="285" y="1383" on="0"/> - </contour> - <contour> - <pt x="28" y="0" on="1"/> - <pt x="645" y="1480" on="1"/> - <pt x="748" y="1480" on="1"/> - <pt x="129" y="0" on="1"/> - </contour> - <contour> - <pt x="578" y="617" on="1"/> - <pt x="661" y="617" on="0"/> - <pt x="711" y="532" on="1"/> - <pt x="762" y="448" on="0"/> - <pt x="762" y="309" on="1"/> - <pt x="762" y="168" on="0"/> - <pt x="711" y="84" on="1"/> - <pt x="661" y="0" on="0"/> - <pt x="576" y="0" on="1"/> - <pt x="503" y="0" on="0"/> - <pt x="455" y="68" on="1"/> - <pt x="394" y="155" on="0"/> - <pt x="394" y="309" on="1"/> - <pt x="394" y="448" on="0"/> - <pt x="445" y="532" on="1"/> - <pt x="495" y="617" on="0"/> - </contour> - <contour> - <pt x="578" y="524" on="1"/> - <pt x="489" y="524" on="0"/> - <pt x="489" y="309" on="1"/> - <pt x="489" y="93" on="0"/> - <pt x="580" y="93" on="1"/> - <pt x="666" y="93" on="0"/> - <pt x="666" y="310" on="1"/> - <pt x="666" y="524" on="0"/> - </contour> - <contour> - <pt x="1033" y="617" on="1"/> - <pt x="1115" y="617" on="0"/> - <pt x="1166" y="532" on="1"/> - <pt x="1217" y="448" on="0"/> - <pt x="1217" y="309" on="1"/> - <pt x="1217" y="168" on="0"/> - <pt x="1166" y="84" on="1"/> - <pt x="1116" y="0" on="0"/> - <pt x="1031" y="0" on="1"/> - <pt x="958" y="0" on="0"/> - <pt x="910" y="68" on="1"/> - <pt x="849" y="155" on="0"/> - <pt x="849" y="309" on="1"/> - <pt x="849" y="448" on="0"/> - <pt x="900" y="532" on="1"/> - <pt x="951" y="617" on="0"/> - </contour> - <contour> - <pt x="1033" y="524" on="1"/> - <pt x="944" y="524" on="0"/> - <pt x="944" y="310" on="1"/> - <pt x="944" y="93" on="0"/> - <pt x="1035" y="93" on="1"/> - <pt x="1121" y="93" on="0"/> - <pt x="1121" y="309" on="1"/> - <pt x="1121" y="524" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 82 values pushed */ - 0 0 72 17 60 68 17 52 48 17 36 44 17 28 20 17 8 16 17 0 48 200 60 2 36 - 2 0 0 52 28 8 1 1 52 28 26 25 8 5 0 2 3 0 0 1 27 24 2 0 14 - 0 0 74 21 56 70 21 64 50 21 32 46 21 40 22 21 4 18 21 12 48 200 64 56 40 - 32 27 26 25 24 12 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MDAP[1] - MDAP[1] - MDAP[1] - MIAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="plus" xMin="99" yMin="101" xMax="1130" yMax="1133"> - <contour> - <pt x="541" y="101" on="1"/> - <pt x="541" y="543" on="1"/> - <pt x="99" y="543" on="1"/> - <pt x="99" y="691" on="1"/> - <pt x="541" y="691" on="1"/> - <pt x="541" y="1133" on="1"/> - <pt x="689" y="1133" on="1"/> - <pt x="689" y="691" on="1"/> - <pt x="1130" y="691" on="1"/> - <pt x="1130" y="543" on="1"/> - <pt x="689" y="543" on="1"/> - <pt x="689" y="101" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 53 values pushed */ - 0 0 10 9 2 1 7 3 3 1 4 48 200 6 5 1 8 7 4 3 3 11 0 1 3 - 0 14 0 0 11 10 7 6 14 3 0 1 4 48 200 9 8 1 5 4 1 0 3 3 2 - 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="plusminus" xMin="99" yMin="0" xMax="1130" yMax="1234"> - <contour> - <pt x="541" y="296" on="1"/> - <pt x="541" y="691" on="1"/> - <pt x="99" y="691" on="1"/> - <pt x="99" y="839" on="1"/> - <pt x="541" y="839" on="1"/> - <pt x="541" y="1234" on="1"/> - <pt x="689" y="1234" on="1"/> - <pt x="689" y="839" on="1"/> - <pt x="1130" y="839" on="1"/> - <pt x="1130" y="691" on="1"/> - <pt x="689" y="691" on="1"/> - <pt x="689" y="296" on="1"/> - </contour> - <contour> - <pt x="1130" y="0" on="1"/> - <pt x="99" y="0" on="1"/> - <pt x="99" y="148" on="1"/> - <pt x="1130" y="148" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 65 values pushed */ - 0 0 15 14 7 1 12 10 9 2 1 7 3 3 2 4 48 200 13 12 1 6 5 1 8 - 7 4 3 3 11 0 1 4 0 14 0 0 11 10 7 6 14 3 0 1 4 48 200 15 12 - 9 8 3 5 4 1 0 3 14 13 3 2 3 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="q" xMin="111" yMin="-395" xMax="1167" yMax="1110"> - <contour> - <pt x="846" y="222" on="1"/> - <pt x="771" y="111" on="0"/> - <pt x="701" y="55" on="1"/> - <pt x="599" y="-25" on="0"/> - <pt x="480" y="-25" on="1"/> - <pt x="315" y="-25" on="0"/> - <pt x="213" y="119" on="1"/> - <pt x="111" y="262" on="0"/> - <pt x="111" y="498" on="1"/> - <pt x="111" y="783" on="0"/> - <pt x="246" y="946" on="1"/> - <pt x="380" y="1110" on="0"/> - <pt x="619" y="1110" on="1"/> - <pt x="846" y="1086" on="1"/> - <pt x="1044" y="1086" on="1"/> - <pt x="1044" y="-272" on="1"/> - <pt x="1167" y="-272" on="1"/> - <pt x="1167" y="-395" on="1"/> - <pt x="600" y="-395" on="1"/> - <pt x="600" y="-271" on="1"/> - <pt x="846" y="-271" on="1"/> - </contour> - <contour> - <pt x="846" y="939" on="1"/> - <pt x="710" y="962" on="0"/> - <pt x="633" y="962" on="1"/> - <pt x="468" y="962" on="0"/> - <pt x="394" y="855" on="1"/> - <pt x="321" y="748" on="0"/> - <pt x="321" y="509" on="1"/> - <pt x="321" y="136" on="0"/> - <pt x="535" y="136" on="1"/> - <pt x="699" y="136" on="0"/> - <pt x="846" y="370" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 82 values pushed */ - 0 0 29 30 4 23 14 12 48 200 12 1 4 2 1 31 21 0 3 13 2 3 0 16 15 - 2 19 17 3 0 0 20 19 6 1 17 1 4 48 200 18 17 1 0 14 13 1 14 0 0 - 27 39 8 48 200 17 16 2 13 14 19 18 8 0 0 0 31 21 20 13 0 10 4 14 1 - 4 48 200 15 14 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="question" xMin="202" yMin="0" xMax="1079" yMax="1517"> - <contour> - <pt x="415" y="0" on="1"/> - <pt x="415" y="222" on="1"/> - <pt x="662" y="222" on="1"/> - <pt x="662" y="0" on="1"/> - </contour> - <contour> - <pt x="440" y="419" on="1"/> - <pt x="440" y="478" on="1"/> - <pt x="440" y="720" on="0"/> - <pt x="659" y="876" on="1"/> - <pt x="726" y="923" on="1"/> - <pt x="869" y="1023" on="0"/> - <pt x="869" y="1162" on="1"/> - <pt x="869" y="1268" on="0"/> - <pt x="798" y="1331" on="1"/> - <pt x="728" y="1394" on="0"/> - <pt x="604" y="1394" on="1"/> - <pt x="480" y="1394" on="0"/> - <pt x="350" y="1332" on="1"/> - <pt x="326" y="1073" on="1"/> - <pt x="202" y="1073" on="1"/> - <pt x="202" y="1450" on="1"/> - <pt x="420" y="1517" on="0"/> - <pt x="613" y="1517" on="1"/> - <pt x="1079" y="1517" on="0"/> - <pt x="1079" y="1180" on="1"/> - <pt x="1079" y="1014" on="0"/> - <pt x="932" y="904" on="1"/> - <pt x="876" y="862" on="1"/> - <pt x="873" y="860" on="0"/> - <pt x="864" y="853" on="1"/> - <pt x="855" y="847" on="0"/> - <pt x="847" y="841" on="1"/> - <pt x="834" y="833" on="0"/> - <pt x="814" y="819" on="1"/> - <pt x="719" y="754" on="0"/> - <pt x="682" y="703" on="1"/> - <pt x="637" y="647" on="0"/> - <pt x="637" y="481" on="1"/> - <pt x="637" y="419" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 85 values pushed */ - 0 0 14 5 21 48 200 21 0 1 36 34 19 18 17 16 5 7 0 4 3 0 0 0 2 - 1 9 1 0 1 4 48 200 37 4 1 3 0 1 2 0 14 0 0 10 39 23 48 200 37 - 36 5 4 4 2 0 3 17 16 2 0 18 3 34 23 2 0 0 3 2 4 1 0 1 4 - 48 200 19 18 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="questiondown" xMin="151" yMin="-432" xMax="1027" yMax="1086"> - <contour> - <pt x="814" y="1086" on="1"/> - <pt x="814" y="863" on="1"/> - <pt x="568" y="863" on="1"/> - <pt x="568" y="1086" on="1"/> - </contour> - <contour> - <pt x="790" y="666" on="1"/> - <pt x="790" y="607" on="1"/> - <pt x="790" y="367" on="0"/> - <pt x="570" y="210" on="1"/> - <pt x="503" y="162" on="1"/> - <pt x="361" y="61" on="0"/> - <pt x="361" y="-76" on="1"/> - <pt x="361" y="-183" on="0"/> - <pt x="432" y="-246" on="1"/> - <pt x="502" y="-309" on="0"/> - <pt x="626" y="-309" on="1"/> - <pt x="750" y="-309" on="0"/> - <pt x="879" y="-247" on="1"/> - <pt x="904" y="12" on="1"/> - <pt x="1027" y="12" on="1"/> - <pt x="1027" y="-364" on="1"/> - <pt x="807" y="-432" on="0"/> - <pt x="618" y="-432" on="1"/> - <pt x="151" y="-432" on="0"/> - <pt x="151" y="-94" on="1"/> - <pt x="151" y="71" on="0"/> - <pt x="297" y="181" on="1"/> - <pt x="354" y="224" on="1"/> - <pt x="371" y="237" on="0"/> - <pt x="416" y="267" on="1"/> - <pt x="509" y="331" on="0"/> - <pt x="547" y="383" on="1"/> - <pt x="592" y="439" on="0"/> - <pt x="592" y="604" on="1"/> - <pt x="592" y="666" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 86 values pushed */ - 0 0 14 5 21 48 200 1 32 30 18 17 5 5 4 2 3 0 1 19 16 21 2 0 0 - 0 2 1 9 1 0 1 4 48 200 33 4 1 0 3 0 1 14 0 0 10 39 23 48 200 - 17 16 2 18 0 3 33 32 5 4 4 0 2 3 30 23 2 0 0 1 0 4 1 2 1 - 4 48 200 19 18 1 3 2 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quotedbl" xMin="244" yMin="1036" xMax="984" yMax="1579"> - <contour> - <pt x="293" y="1036" on="1"/> - <pt x="244" y="1579" on="1"/> - <pt x="491" y="1579" on="1"/> - <pt x="441" y="1036" on="1"/> - </contour> - <contour> - <pt x="787" y="1036" on="1"/> - <pt x="738" y="1579" on="1"/> - <pt x="984" y="1579" on="1"/> - <pt x="935" y="1036" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 21 values pushed */ - 6 5 2 1 3 7 4 3 0 3 2 0 14 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quotedblbase" xMin="257" yMin="-296" xMax="997" yMax="247"> - <contour> - <pt x="997" y="247" on="1"/> - <pt x="997" y="-2" on="1"/> - <pt x="996" y="-283" on="0"/> - <pt x="750" y="-296" on="1"/> - <pt x="750" y="-197" on="1"/> - <pt x="855" y="-176" on="0"/> - <pt x="855" y="-56" on="1"/> - <pt x="855" y="0" on="1"/> - <pt x="750" y="0" on="1"/> - <pt x="750" y="247" on="1"/> - </contour> - <contour> - <pt x="504" y="247" on="1"/> - <pt x="504" y="-2" on="1"/> - <pt x="503" y="-283" on="0"/> - <pt x="257" y="-296" on="1"/> - <pt x="257" y="-197" on="1"/> - <pt x="362" y="-176" on="0"/> - <pt x="362" y="-56" on="1"/> - <pt x="362" y="0" on="1"/> - <pt x="257" y="0" on="1"/> - <pt x="257" y="247" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 62 values pushed */ - 18 17 16 14 13 11 8 7 6 4 3 1 12 13 0 19 10 9 0 3 0 14 7 6 2 - 0 3 3 17 16 2 10 13 3 0 0 11 10 4 1 13 9 8 4 3 4 3 0 2 4 - 48 200 19 18 14 13 3 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quotedblleft" xMin="232" yMin="1036" xMax="972" yMax="1579"> - <contour> - <pt x="232" y="1036" on="1"/> - <pt x="232" y="1285" on="1"/> - <pt x="233" y="1566" on="0"/> - <pt x="479" y="1579" on="1"/> - <pt x="479" y="1480" on="1"/> - <pt x="374" y="1459" on="0"/> - <pt x="374" y="1339" on="1"/> - <pt x="374" y="1283" on="1"/> - <pt x="479" y="1283" on="1"/> - <pt x="479" y="1036" on="1"/> - </contour> - <contour> - <pt x="726" y="1036" on="1"/> - <pt x="726" y="1285" on="1"/> - <pt x="727" y="1566" on="0"/> - <pt x="972" y="1579" on="1"/> - <pt x="972" y="1480" on="1"/> - <pt x="867" y="1459" on="0"/> - <pt x="867" y="1339" on="1"/> - <pt x="867" y="1283" on="1"/> - <pt x="972" y="1283" on="1"/> - <pt x="972" y="1036" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 62 values pushed */ - 18 17 16 14 13 11 8 7 6 4 3 1 12 13 0 19 10 9 0 3 0 14 17 16 2 - 13 10 3 7 6 2 3 0 3 0 0 11 10 4 1 13 9 8 4 3 4 3 0 2 4 - 48 200 19 18 14 13 3 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quotedblright" xMin="257" yMin="1036" xMax="997" yMax="1579"> - <contour> - <pt x="997" y="1579" on="1"/> - <pt x="997" y="1330" on="1"/> - <pt x="996" y="1049" on="0"/> - <pt x="750" y="1036" on="1"/> - <pt x="750" y="1135" on="1"/> - <pt x="855" y="1156" on="0"/> - <pt x="855" y="1276" on="1"/> - <pt x="855" y="1332" on="1"/> - <pt x="750" y="1332" on="1"/> - <pt x="750" y="1579" on="1"/> - </contour> - <contour> - <pt x="504" y="1579" on="1"/> - <pt x="504" y="1330" on="1"/> - <pt x="503" y="1049" on="0"/> - <pt x="257" y="1036" on="1"/> - <pt x="257" y="1135" on="1"/> - <pt x="362" y="1156" on="0"/> - <pt x="362" y="1276" on="1"/> - <pt x="362" y="1332" on="1"/> - <pt x="257" y="1332" on="1"/> - <pt x="257" y="1579" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 62 values pushed */ - 18 17 16 14 13 11 8 7 6 4 3 1 12 13 0 19 10 9 0 3 0 14 7 6 2 - 0 3 3 17 16 2 10 13 3 0 0 11 10 4 1 13 9 8 4 3 4 3 0 2 4 - 48 200 19 18 14 13 3 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quoteleft" xMin="454" yMin="962" xMax="750" yMax="1579"> - <contour> - <pt x="750" y="1258" on="1"/> - <pt x="750" y="962" on="1"/> - <pt x="454" y="962" on="1"/> - <pt x="454" y="1142" on="1"/> - <pt x="456" y="1560" on="0"/> - <pt x="750" y="1579" on="1"/> - <pt x="750" y="1480" on="1"/> - <pt x="675" y="1468" on="0"/> - <pt x="653" y="1413" on="1"/> - <pt x="633" y="1365" on="0"/> - <pt x="627" y="1258" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 34 values pushed */ - 10 6 5 3 0 5 13 1 2 1 1 0 14 10 0 2 2 0 0 6 5 1 0 8 3 - 2 1 4 48 200 3 2 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quotereversed"/><!-- contains no outline data --> - - <TTGlyph name="quoteright" xMin="479" yMin="962" xMax="775" yMax="1579"> - <contour> - <pt x="479" y="1283" on="1"/> - <pt x="479" y="1579" on="1"/> - <pt x="775" y="1579" on="1"/> - <pt x="775" y="1399" on="1"/> - <pt x="773" y="980" on="0"/> - <pt x="479" y="962" on="1"/> - <pt x="479" y="1061" on="1"/> - <pt x="554" y="1073" on="0"/> - <pt x="576" y="1128" on="1"/> - <pt x="596" y="1176" on="0"/> - <pt x="602" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 34 values pushed */ - 10 6 5 3 0 5 13 1 2 1 1 0 14 10 2 0 2 0 0 3 2 8 1 0 1 - 4 48 200 6 5 1 0 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quotesinglbase" xMin="479" yMin="-321" xMax="775" yMax="296"> - <contour> - <pt x="479" y="0" on="1"/> - <pt x="479" y="296" on="1"/> - <pt x="775" y="296" on="1"/> - <pt x="775" y="116" on="1"/> - <pt x="773" y="-302" on="0"/> - <pt x="479" y="-321" on="1"/> - <pt x="479" y="-222" on="1"/> - <pt x="554" y="-210" on="0"/> - <pt x="576" y="-155" on="1"/> - <pt x="596" y="-107" on="0"/> - <pt x="602" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 34 values pushed */ - 10 6 5 3 0 5 13 1 2 1 1 0 14 10 2 0 2 0 0 3 2 8 1 0 1 - 4 48 200 6 5 1 0 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quotesingle" xMin="466" yMin="962" xMax="762" yMax="1579"> - <contour> - <pt x="540" y="962" on="1"/> - <pt x="466" y="1579" on="1"/> - <pt x="762" y="1579" on="1"/> - <pt x="688" y="962" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 13 values pushed */ - 2 1 1 3 0 1 2 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="r" xMin="74" yMin="0" xMax="1106" yMax="1110"> - <contour> - <pt x="530" y="702" on="1"/> - <pt x="530" y="123" on="1"/> - <pt x="899" y="123" on="1"/> - <pt x="899" y="0" on="1"/> - <pt x="74" y="0" on="1"/> - <pt x="74" y="123" on="1"/> - <pt x="333" y="123" on="1"/> - <pt x="333" y="962" on="1"/> - <pt x="74" y="962" on="1"/> - <pt x="74" y="1086" on="1"/> - <pt x="530" y="1086" on="1"/> - <pt x="530" y="875" on="1"/> - <pt x="604" y="981" on="0"/> - <pt x="671" y="1034" on="1"/> - <pt x="767" y="1110" on="0"/> - <pt x="878" y="1110" on="1"/> - <pt x="996" y="1110" on="0"/> - <pt x="1106" y="1042" on="1"/> - <pt x="1106" y="714" on="1"/> - <pt x="982" y="714" on="1"/> - <pt x="962" y="902" on="1"/> - <pt x="906" y="938" on="0"/> - <pt x="844" y="938" on="1"/> - <pt x="660" y="938" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 84 values pushed */ - 0 0 22 22 15 48 200 15 1 17 9 7 2 20 19 18 11 0 5 7 1 3 0 0 8 - 7 6 1 9 6 5 2 1 6 3 3 2 4 48 200 4 3 1 0 10 9 1 14 20 19 - 3 2 4 17 0 3 9 8 5 4 4 13 6 0 0 11 10 1 0 10 3 6 1 4 48 - 200 18 17 1 7 6 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="racute" xMin="74" yMin="0" xMax="1106" yMax="1604"> - <component glyphName="r" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="40" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="radicalex" xMin="0" yMin="1456" xMax="1229" yMax="1604"> - <contour> - <pt x="0" y="1604" on="1"/> - <pt x="1229" y="1604" on="1"/> - <pt x="1229" y="1456" on="1"/> - <pt x="0" y="1456" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 24 values pushed */ - 0 0 3 2 16 1 0 1 4 48 200 1 0 1 0 14 2 1 1 3 0 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="rcaron" xMin="74" yMin="0" xMax="1106" yMax="1604"> - <component glyphName="r" x="0" y="0" flags="0x4"/> - <component glyphName="caron" x="-24" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="rcommaaccent" xMin="74" yMin="-432" xMax="1106" yMax="1110"> - <component glyphName="r" x="0" y="0" flags="0x4"/> - <component glyphName="Unterkomma" x="-32" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="registered" xMin="62" yMin="-37" xMax="1168" yMax="1517"> - <contour> - <pt x="615" y="1517" on="1"/> - <pt x="864" y="1517" on="0"/> - <pt x="1016" y="1304" on="1"/> - <pt x="1168" y="1091" on="0"/> - <pt x="1168" y="742" on="1"/> - <pt x="1168" y="386" on="0"/> - <pt x="1016" y="175" on="1"/> - <pt x="864" y="-37" on="0"/> - <pt x="606" y="-37" on="1"/> - <pt x="388" y="-37" on="0"/> - <pt x="245" y="136" on="1"/> - <pt x="62" y="357" on="0"/> - <pt x="62" y="740" on="1"/> - <pt x="62" y="1092" on="0"/> - <pt x="214" y="1304" on="1"/> - <pt x="366" y="1517" on="0"/> - </contour> - <contour> - <pt x="615" y="1406" on="1"/> - <pt x="423" y="1406" on="0"/> - <pt x="304" y="1222" on="1"/> - <pt x="185" y="1038" on="0"/> - <pt x="185" y="741" on="1"/> - <pt x="185" y="445" on="0"/> - <pt x="303" y="260" on="1"/> - <pt x="421" y="74" on="0"/> - <pt x="611" y="74" on="1"/> - <pt x="785" y="74" on="0"/> - <pt x="899" y="221" on="1"/> - <pt x="1044" y="407" on="0"/> - <pt x="1044" y="742" on="1"/> - <pt x="1044" y="1039" on="0"/> - <pt x="925" y="1222" on="1"/> - <pt x="805" y="1406" on="0"/> - </contour> - <contour> - <pt x="364" y="317" on="1"/> - <pt x="364" y="388" on="1"/> - <pt x="426" y="388" on="1"/> - <pt x="426" y="1093" on="1"/> - <pt x="364" y="1093" on="1"/> - <pt x="364" y="1163" on="1"/> - <pt x="636" y="1163" on="1"/> - <pt x="853" y="1163" on="0"/> - <pt x="853" y="957" on="1"/> - <pt x="853" y="804" on="0"/> - <pt x="704" y="723" on="1"/> - <pt x="889" y="388" on="1"/> - <pt x="914" y="388" on="1"/> - <pt x="914" y="317" on="1"/> - <pt x="795" y="317" on="1"/> - <pt x="601" y="687" on="1"/> - <pt x="537" y="687" on="1"/> - <pt x="537" y="388" on="1"/> - <pt x="611" y="388" on="1"/> - <pt x="611" y="317" on="1"/> - </contour> - <contour> - <pt x="537" y="758" on="1"/> - <pt x="544" y="758" on="1"/> - <pt x="729" y="758" on="0"/> - <pt x="729" y="946" on="1"/> - <pt x="729" y="1028" on="0"/> - <pt x="695" y="1060" on="1"/> - <pt x="661" y="1093" on="0"/> - <pt x="574" y="1093" on="1"/> - <pt x="537" y="1093" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 97 values pushed */ - 0 0 24 40 8 16 40 0 48 200 8 2 0 0 60 59 53 52 50 49 48 47 44 43 42 - 36 35 34 33 15 37 32 3 38 37 1 51 46 45 32 3 2 0 14 0 0 55 6 40 28 - 6 4 20 6 12 48 200 59 53 51 50 47 46 45 44 43 42 38 11 13 40 4 48 37 36 - 33 32 4 13 12 34 0 0 60 52 49 48 3 34 1 6 48 200 35 34 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ring" xMin="388" yMin="1283" xMax="842" yMax="1737"> - <contour> - <pt x="615" y="1737" on="1"/> - <pt x="709" y="1737" on="0"/> - <pt x="775" y="1671" on="1"/> - <pt x="842" y="1605" on="0"/> - <pt x="842" y="1511" on="1"/> - <pt x="842" y="1414" on="0"/> - <pt x="775" y="1349" on="1"/> - <pt x="709" y="1283" on="0"/> - <pt x="613" y="1283" on="1"/> - <pt x="530" y="1283" on="0"/> - <pt x="468" y="1337" on="1"/> - <pt x="388" y="1406" on="0"/> - <pt x="388" y="1510" on="1"/> - <pt x="388" y="1604" on="0"/> - <pt x="455" y="1670" on="1"/> - <pt x="522" y="1737" on="0"/> - </contour> - <contour> - <pt x="615" y="1650" on="1"/> - <pt x="557" y="1650" on="0"/> - <pt x="516" y="1609" on="1"/> - <pt x="474" y="1569" on="0"/> - <pt x="474" y="1510" on="1"/> - <pt x="474" y="1452" on="0"/> - <pt x="515" y="1411" on="1"/> - <pt x="556" y="1369" on="0"/> - <pt x="614" y="1369" on="1"/> - <pt x="667" y="1369" on="0"/> - <pt x="706" y="1402" on="1"/> - <pt x="756" y="1445" on="0"/> - <pt x="756" y="1511" on="1"/> - <pt x="756" y="1569" on="0"/> - <pt x="714" y="1609" on="1"/> - <pt x="672" y="1650" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 25 values pushed */ - 0 0 24 32 8 16 32 0 48 200 8 0 14 0 0 28 32 4 20 32 12 48 200 12 4 - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="s" xMin="173" yMin="-25" xMax="1088" yMax="1111"> - <contour> - <pt x="173" y="61" on="1"/> - <pt x="173" y="358" on="1"/> - <pt x="296" y="358" on="1"/> - <pt x="321" y="175" on="1"/> - <pt x="517" y="99" on="0"/> - <pt x="654" y="99" on="1"/> - <pt x="892" y="99" on="0"/> - <pt x="892" y="267" on="1"/> - <pt x="892" y="333" on="0"/> - <pt x="852" y="369" on="1"/> - <pt x="812" y="406" on="0"/> - <pt x="709" y="433" on="1"/> - <pt x="505" y="487" on="1"/> - <pt x="334" y="532" on="0"/> - <pt x="256" y="605" on="1"/> - <pt x="179" y="676" on="0"/> - <pt x="179" y="794" on="1"/> - <pt x="179" y="1111" on="0"/> - <pt x="611" y="1111" on="1"/> - <pt x="832" y="1111" on="0"/> - <pt x="1013" y="1039" on="1"/> - <pt x="1013" y="753" on="1"/> - <pt x="890" y="753" on="1"/> - <pt x="865" y="934" on="1"/> - <pt x="756" y="987" on="0"/> - <pt x="610" y="987" on="1"/> - <pt x="500" y="987" on="0"/> - <pt x="439" y="952" on="1"/> - <pt x="367" y="911" on="0"/> - <pt x="367" y="826" on="1"/> - <pt x="367" y="714" on="0"/> - <pt x="573" y="660" on="1"/> - <pt x="775" y="607" on="1"/> - <pt x="943" y="563" on="0"/> - <pt x="1016" y="495" on="1"/> - <pt x="1088" y="428" on="0"/> - <pt x="1088" y="313" on="1"/> - <pt x="1088" y="156" on="0"/> - <pt x="965" y="66" on="1"/> - <pt x="842" y="-25" on="0"/> - <pt x="622" y="-25" on="1"/> - <pt x="396" y="-25" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 61 values pushed */ - 0 0 25 5 18 5 5 40 48 200 40 2 18 1 1 1 23 22 21 20 3 2 1 0 8 - 1 2 3 0 0 14 0 0 29 19 16 7 28 36 48 200 16 23 22 16 3 2 5 20 0 - 3 36 20 21 20 1 1 0 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="sacute" xMin="173" yMin="-25" xMax="1088" yMax="1604"> - <component glyphName="s" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="113" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="scaron" xMin="173" yMin="-25" xMax="1088" yMax="1604"> - <component glyphName="s" x="0" y="0" flags="0x4"/> - <component glyphName="caron" x="15" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="scedilla" xMin="173" yMin="-432" xMax="1088" yMax="1111"> - <component glyphName="s" x="0" y="0" flags="0x4"/> - <component glyphName="cedilla" x="26" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="scircumflex" xMin="173" yMin="-25" xMax="1088" yMax="1604"> - <contour> - <pt x="173" y="61" on="1"/> - <pt x="173" y="358" on="1"/> - <pt x="296" y="358" on="1"/> - <pt x="321" y="175" on="1"/> - <pt x="517" y="99" on="0"/> - <pt x="654" y="99" on="1"/> - <pt x="892" y="99" on="0"/> - <pt x="892" y="267" on="1"/> - <pt x="892" y="333" on="0"/> - <pt x="852" y="369" on="1"/> - <pt x="812" y="406" on="0"/> - <pt x="709" y="433" on="1"/> - <pt x="505" y="487" on="1"/> - <pt x="334" y="532" on="0"/> - <pt x="256" y="605" on="1"/> - <pt x="179" y="676" on="0"/> - <pt x="179" y="794" on="1"/> - <pt x="179" y="1111" on="0"/> - <pt x="611" y="1111" on="1"/> - <pt x="832" y="1111" on="0"/> - <pt x="1013" y="1039" on="1"/> - <pt x="1013" y="753" on="1"/> - <pt x="890" y="753" on="1"/> - <pt x="865" y="934" on="1"/> - <pt x="756" y="987" on="0"/> - <pt x="610" y="987" on="1"/> - <pt x="500" y="987" on="0"/> - <pt x="439" y="952" on="1"/> - <pt x="367" y="911" on="0"/> - <pt x="367" y="826" on="1"/> - <pt x="367" y="714" on="0"/> - <pt x="573" y="660" on="1"/> - <pt x="775" y="607" on="1"/> - <pt x="943" y="563" on="0"/> - <pt x="1016" y="495" on="1"/> - <pt x="1088" y="428" on="0"/> - <pt x="1088" y="313" on="1"/> - <pt x="1088" y="156" on="0"/> - <pt x="965" y="66" on="1"/> - <pt x="842" y="-25" on="0"/> - <pt x="622" y="-25" on="1"/> - <pt x="396" y="-25" on="0"/> - </contour> - <contour> - <pt x="263" y="1283" on="1"/> - <pt x="519" y="1604" on="1"/> - <pt x="738" y="1604" on="1"/> - <pt x="994" y="1283" on="1"/> - <pt x="871" y="1283" on="1"/> - <pt x="630" y="1485" on="1"/> - <pt x="627" y="1485" on="1"/> - <pt x="386" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 85 values pushed */ - 0 0 25 5 18 5 5 40 48 200 40 2 18 1 1 49 48 47 46 45 42 6 43 1 3 - 0 1 1 23 22 21 20 3 2 1 0 8 1 2 3 0 0 44 43 1 0 14 0 0 29 - 19 16 7 28 36 48 200 16 49 48 47 46 45 44 43 42 23 22 16 3 2 13 20 0 3 - 36 20 21 20 1 1 0 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="scommaaccent" xMin="173" yMin="-432" xMax="1088" yMax="1111"> - <component glyphName="s" x="0" y="0" flags="0x4"/> - <component glyphName="Unterkomma" x="42" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="section" xMin="154" yMin="-333" xMax="1073" yMax="1518"> - <contour> - <pt x="154" y="-259" on="1"/> - <pt x="154" y="62" on="1"/> - <pt x="277" y="62" on="1"/> - <pt x="302" y="-148" on="1"/> - <pt x="462" y="-210" on="0"/> - <pt x="617" y="-210" on="1"/> - <pt x="749" y="-210" on="0"/> - <pt x="825" y="-154" on="1"/> - <pt x="900" y="-99" on="0"/> - <pt x="900" y="-6" on="1"/> - <pt x="900" y="77" on="0"/> - <pt x="831" y="125" on="1"/> - <pt x="778" y="163" on="0"/> - <pt x="668" y="206" on="1"/> - <pt x="422" y="302" on="1"/> - <pt x="160" y="404" on="0"/> - <pt x="160" y="622" on="1"/> - <pt x="160" y="776" on="0"/> - <pt x="304" y="912" on="1"/> - <pt x="166" y="1013" on="0"/> - <pt x="166" y="1158" on="1"/> - <pt x="166" y="1330" on="0"/> - <pt x="298" y="1424" on="1"/> - <pt x="429" y="1518" on="0"/> - <pt x="673" y="1518" on="1"/> - <pt x="830" y="1518" on="0"/> - <pt x="1018" y="1474" on="1"/> - <pt x="1018" y="1154" on="1"/> - <pt x="894" y="1154" on="1"/> - <pt x="870" y="1357" on="1"/> - <pt x="740" y="1394" on="0"/> - <pt x="630" y="1394" on="1"/> - <pt x="498" y="1394" on="0"/> - <pt x="424" y="1352" on="1"/> - <pt x="339" y="1303" on="0"/> - <pt x="339" y="1202" on="1"/> - <pt x="339" y="1118" on="0"/> - <pt x="426" y="1054" on="1"/> - <pt x="477" y="1018" on="0"/> - <pt x="565" y="984" on="1"/> - <pt x="771" y="905" on="1"/> - <pt x="1048" y="799" on="0"/> - <pt x="1048" y="571" on="1"/> - <pt x="1048" y="426" on="0"/> - <pt x="919" y="281" on="1"/> - <pt x="1073" y="170" on="0"/> - <pt x="1073" y="13" on="1"/> - <pt x="1073" y="-145" on="0"/> - <pt x="945" y="-239" on="1"/> - <pt x="817" y="-333" on="0"/> - <pt x="590" y="-333" on="1"/> - <pt x="360" y="-333" on="0"/> - </contour> - <contour> - <pt x="811" y="344" on="1"/> - <pt x="900" y="442" on="0"/> - <pt x="900" y="533" on="1"/> - <pt x="900" y="664" on="0"/> - <pt x="714" y="732" on="1"/> - <pt x="458" y="826" on="1"/> - <pt x="410" y="845" on="1"/> - <pt x="327" y="757" on="0"/> - <pt x="327" y="672" on="1"/> - <pt x="327" y="541" on="0"/> - <pt x="491" y="474" on="1"/> - <pt x="760" y="365" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 74 values pushed */ - 0 0 31 5 24 5 5 50 48 200 24 0 1 58 52 44 29 28 27 26 18 3 2 1 0 - 12 13 50 0 0 14 0 0 60 15 16 54 16 42 35 15 20 9 15 46 48 200 20 16 58 - 52 44 29 28 20 18 16 3 2 10 26 0 3 46 42 26 27 26 1 1 0 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - CALL[ ] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="semicolon" xMin="466" yMin="-321" xMax="762" yMax="1086"> - <contour> - <pt x="466" y="0" on="1"/> - <pt x="466" y="296" on="1"/> - <pt x="762" y="296" on="1"/> - <pt x="762" y="116" on="1"/> - <pt x="760" y="-302" on="0"/> - <pt x="466" y="-321" on="1"/> - <pt x="466" y="-222" on="1"/> - <pt x="541" y="-210" on="0"/> - <pt x="563" y="-155" on="1"/> - <pt x="583" y="-107" on="0"/> - <pt x="589" y="0" on="1"/> - </contour> - <contour> - <pt x="466" y="790" on="1"/> - <pt x="466" y="1086" on="1"/> - <pt x="762" y="1086" on="1"/> - <pt x="762" y="790" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 59 values pushed */ - 1 3 1 2 2 0 1 10 6 5 0 4 13 2 0 0 0 14 11 8 1 12 1 4 48 - 200 2 1 1 0 13 12 1 14 10 2 0 2 0 0 14 13 3 2 8 3 0 1 4 48 - 200 12 11 6 5 1 0 5 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="semicolon#1" xMin="466" yMin="-321" xMax="762" yMax="1086"> - <contour> - <pt x="466" y="0" on="1"/> - <pt x="466" y="296" on="1"/> - <pt x="762" y="296" on="1"/> - <pt x="762" y="116" on="1"/> - <pt x="760" y="-302" on="0"/> - <pt x="466" y="-321" on="1"/> - <pt x="466" y="-222" on="1"/> - <pt x="541" y="-210" on="0"/> - <pt x="563" y="-155" on="1"/> - <pt x="583" y="-107" on="0"/> - <pt x="589" y="0" on="1"/> - </contour> - <contour> - <pt x="466" y="790" on="1"/> - <pt x="466" y="1086" on="1"/> - <pt x="762" y="1086" on="1"/> - <pt x="762" y="790" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 59 values pushed */ - 1 3 1 2 2 0 1 10 6 5 0 4 13 2 0 0 0 14 11 8 1 12 1 4 48 - 200 2 1 1 0 13 12 1 14 10 2 0 2 0 0 14 13 3 2 8 3 0 1 4 48 - 200 12 11 6 5 1 0 5 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="seven" xMin="145" yMin="0" xMax="1058" yMax="1480"> - <contour> - <pt x="264" y="0" on="1"/> - <pt x="325" y="432" on="0"/> - <pt x="671" y="949" on="1"/> - <pt x="796" y="1133" on="1"/> - <pt x="905" y="1295" on="1"/> - <pt x="145" y="1295" on="1"/> - <pt x="145" y="1480" on="1"/> - <pt x="1058" y="1480" on="1"/> - <pt x="1058" y="1295" on="1"/> - <pt x="971" y="1176" on="1"/> - <pt x="716" y="824" on="0"/> - <pt x="595" y="465" on="1"/> - <pt x="512" y="215" on="0"/> - <pt x="511" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 35 values pushed */ - 0 0 8 5 4 27 2 6 1 4 48 200 13 0 1 0 7 6 0 14 13 4 0 3 7 - 5 3 8 7 1 6 5 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="sfthyphen" xMin="148" yMin="543" xMax="1081" yMax="691"> - <contour> - <pt x="148" y="543" on="1"/> - <pt x="148" y="691" on="1"/> - <pt x="1081" y="691" on="1"/> - <pt x="1081" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 24 values pushed */ - 0 0 3 0 7 1 1 1 4 48 200 2 1 1 0 14 3 2 1 1 0 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="six" xMin="122" yMin="-37" xMax="1132" yMax="1517"> - <contour> - <pt x="335" y="773" on="1"/> - <pt x="399" y="861" on="0"/> - <pt x="469" y="905" on="1"/> - <pt x="572" y="969" on="0"/> - <pt x="706" y="969" on="1"/> - <pt x="896" y="969" on="0"/> - <pt x="1014" y="835" on="1"/> - <pt x="1132" y="702" on="0"/> - <pt x="1132" y="486" on="1"/> - <pt x="1132" y="255" on="0"/> - <pt x="995" y="109" on="1"/> - <pt x="858" y="-37" on="0"/> - <pt x="642" y="-37" on="1"/> - <pt x="398" y="-37" on="0"/> - <pt x="260" y="161" on="1"/> - <pt x="122" y="360" on="0"/> - <pt x="122" y="710" on="1"/> - <pt x="122" y="1095" on="0"/> - <pt x="285" y="1306" on="1"/> - <pt x="448" y="1517" on="0"/> - <pt x="738" y="1517" on="1"/> - <pt x="866" y="1517" on="0"/> - <pt x="1064" y="1446" on="1"/> - <pt x="1064" y="1129" on="1"/> - <pt x="940" y="1129" on="1"/> - <pt x="917" y="1339" on="1"/> - <pt x="830" y="1394" on="0"/> - <pt x="739" y="1394" on="1"/> - <pt x="524" y="1394" on="0"/> - <pt x="415" y="1178" on="1"/> - <pt x="338" y="1027" on="0"/> - </contour> - <contour> - <pt x="669" y="839" on="1"/> - <pt x="534" y="839" on="0"/> - <pt x="442" y="736" on="1"/> - <pt x="350" y="634" on="0"/> - <pt x="350" y="480" on="1"/> - <pt x="350" y="320" on="0"/> - <pt x="443" y="203" on="1"/> - <pt x="536" y="86" on="0"/> - <pt x="667" y="86" on="1"/> - <pt x="778" y="86" on="0"/> - <pt x="846" y="165" on="1"/> - <pt x="932" y="265" on="0"/> - <pt x="932" y="463" on="1"/> - <pt x="932" y="839" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 56 values pushed */ - 0 0 39 5 12 31 25 4 27 5 20 48 200 20 0 12 2 4 1 1 25 24 23 22 4 - 0 6 0 2 3 0 0 14 0 0 43 24 8 35 26 16 48 200 8 22 25 24 0 3 13 - 16 22 23 22 1 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="slash" xMin="99" yMin="-296" xMax="1131" yMax="1579"> - <contour> - <pt x="99" y="-296" on="1"/> - <pt x="967" y="1579" on="1"/> - <pt x="1131" y="1579" on="1"/> - <pt x="262" y="-296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 13 values pushed */ - 2 1 1 3 0 1 2 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="space"/><!-- contains no outline data --> - - <TTGlyph name="sterling" xMin="149" yMin="0" xMax="1043" yMax="1517"> - <contour> - <pt x="149" y="0" on="1"/> - <pt x="149" y="179" on="1"/> - <pt x="351" y="249" on="0"/> - <pt x="353" y="511" on="1"/> - <pt x="353" y="728" on="1"/> - <pt x="180" y="728" on="1"/> - <pt x="180" y="851" on="1"/> - <pt x="353" y="851" on="1"/> - <pt x="353" y="1110" on="1"/> - <pt x="353" y="1298" on="0"/> - <pt x="458" y="1407" on="1"/> - <pt x="563" y="1517" on="0"/> - <pt x="746" y="1517" on="1"/> - <pt x="874" y="1517" on="0"/> - <pt x="1028" y="1468" on="1"/> - <pt x="1028" y="1160" on="1"/> - <pt x="905" y="1160" on="1"/> - <pt x="880" y="1369" on="1"/> - <pt x="800" y="1394" on="0"/> - <pt x="740" y="1394" on="1"/> - <pt x="550" y="1394" on="0"/> - <pt x="550" y="1191" on="1"/> - <pt x="550" y="851" on="1"/> - <pt x="815" y="851" on="1"/> - <pt x="815" y="728" on="1"/> - <pt x="550" y="728" on="1"/> - <pt x="550" y="559" on="1"/> - <pt x="549" y="305" on="0"/> - <pt x="368" y="173" on="1"/> - <pt x="1043" y="173" on="1"/> - <pt x="1043" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 104 values pushed */ - 0 0 19 5 12 48 200 12 0 1 21 17 16 15 14 8 6 0 6 3 0 26 3 1 3 - 4 28 3 0 0 25 24 5 4 6 3 6 29 28 22 1 0 2 4 48 200 23 22 7 6 - 3 30 0 1 2 0 14 24 23 17 16 4 14 21 3 28 21 3 2 6 5 2 3 0 3 - 0 0 26 25 22 21 10 3 3 1 4 48 200 30 29 1 15 14 1 8 7 4 3 3 1 - 0 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="t" xMin="119" yMin="-25" xMax="1032" yMax="1332"> - <contour> - <pt x="1032" y="61" on="1"/> - <pt x="867" y="-25" on="0"/> - <pt x="696" y="-25" on="1"/> - <pt x="535" y="-25" on="0"/> - <pt x="466" y="50" on="1"/> - <pt x="397" y="124" on="0"/> - <pt x="397" y="299" on="1"/> - <pt x="397" y="925" on="1"/> - <pt x="119" y="925" on="1"/> - <pt x="119" y="1061" on="1"/> - <pt x="397" y="1061" on="1"/> - <pt x="397" y="1332" on="1"/> - <pt x="594" y="1332" on="1"/> - <pt x="594" y="1061" on="1"/> - <pt x="1020" y="1061" on="1"/> - <pt x="1020" y="925" on="1"/> - <pt x="594" y="925" on="1"/> - <pt x="594" y="388" on="1"/> - <pt x="594" y="228" on="0"/> - <pt x="626" y="176" on="1"/> - <pt x="658" y="123" on="0"/> - <pt x="753" y="123" on="1"/> - <pt x="859" y="123" on="0"/> - <pt x="1032" y="200" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 75 values pushed */ - 0 0 21 14 2 48 200 2 2 1 23 17 6 0 4 7 2 3 0 0 0 16 15 8 7 - 20 3 9 1 4 48 200 12 11 1 14 13 10 9 3 2 0 14 15 14 2 0 12 3 9 - 8 6 0 0 17 16 13 12 10 3 6 1 4 48 200 23 0 1 11 10 7 6 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="tbar" xMin="119" yMin="-25" xMax="1032" yMax="1332"> - <contour> - <pt x="1032" y="200" on="1"/> - <pt x="1032" y="61" on="1"/> - <pt x="867" y="-25" on="0"/> - <pt x="696" y="-25" on="1"/> - <pt x="535" y="-25" on="0"/> - <pt x="466" y="50" on="1"/> - <pt x="397" y="124" on="0"/> - <pt x="397" y="299" on="1"/> - <pt x="397" y="605" on="1"/> - <pt x="168" y="605" on="1"/> - <pt x="168" y="703" on="1"/> - <pt x="397" y="703" on="1"/> - <pt x="397" y="925" on="1"/> - <pt x="119" y="925" on="1"/> - <pt x="119" y="1061" on="1"/> - <pt x="397" y="1061" on="1"/> - <pt x="397" y="1332" on="1"/> - <pt x="594" y="1332" on="1"/> - <pt x="594" y="1061" on="1"/> - <pt x="1020" y="1061" on="1"/> - <pt x="1020" y="925" on="1"/> - <pt x="594" y="925" on="1"/> - <pt x="594" y="703" on="1"/> - <pt x="896" y="703" on="1"/> - <pt x="896" y="605" on="1"/> - <pt x="594" y="605" on="1"/> - <pt x="594" y="388" on="1"/> - <pt x="594" y="228" on="0"/> - <pt x="626" y="176" on="1"/> - <pt x="658" y="123" on="0"/> - <pt x="753" y="123" on="1"/> - <pt x="859" y="123" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 97 values pushed */ - 0 0 30 14 3 48 200 3 2 1 26 7 1 0 4 8 2 3 0 0 0 21 20 13 12 - 20 3 14 25 24 9 8 33 3 10 2 4 48 200 17 16 1 19 18 15 14 3 23 22 11 - 10 3 3 0 14 24 23 20 19 4 0 17 3 14 13 10 9 4 13 7 0 0 26 25 22 - 21 18 17 10 5 7 1 4 48 200 1 0 1 16 15 12 11 8 7 5 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="tcaron" xMin="119" yMin="-25" xMax="1032" yMax="1688"> - <contour> - <pt x="1032" y="61" on="1"/> - <pt x="867" y="-25" on="0"/> - <pt x="696" y="-25" on="1"/> - <pt x="535" y="-25" on="0"/> - <pt x="466" y="50" on="1"/> - <pt x="397" y="124" on="0"/> - <pt x="397" y="299" on="1"/> - <pt x="397" y="925" on="1"/> - <pt x="119" y="925" on="1"/> - <pt x="119" y="1061" on="1"/> - <pt x="397" y="1061" on="1"/> - <pt x="397" y="1332" on="1"/> - <pt x="594" y="1332" on="1"/> - <pt x="594" y="1061" on="1"/> - <pt x="1020" y="1061" on="1"/> - <pt x="1020" y="925" on="1"/> - <pt x="594" y="925" on="1"/> - <pt x="594" y="388" on="1"/> - <pt x="594" y="228" on="0"/> - <pt x="626" y="176" on="1"/> - <pt x="658" y="123" on="0"/> - <pt x="753" y="123" on="1"/> - <pt x="859" y="123" on="0"/> - <pt x="1032" y="200" on="1"/> - </contour> - <contour> - <pt x="767" y="1234" on="1"/> - <pt x="767" y="1293" on="1"/> - <pt x="843" y="1314" on="0"/> - <pt x="843" y="1474" on="1"/> - <pt x="843" y="1491" on="1"/> - <pt x="767" y="1491" on="1"/> - <pt x="767" y="1688" on="1"/> - <pt x="964" y="1688" on="1"/> - <pt x="964" y="1517" on="1"/> - <pt x="963" y="1255" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 108 values pushed */ - 0 0 21 14 2 48 200 2 2 32 29 28 27 4 30 11 3 25 24 2 11 9 3 1 23 - 17 6 0 4 7 2 3 0 0 0 16 15 8 7 20 3 9 1 4 48 200 31 30 1 12 - 11 1 14 13 10 9 3 3 0 14 15 14 2 0 31 3 28 27 2 31 24 3 9 8 6 - 0 0 30 29 25 24 10 3 31 17 16 13 12 10 3 6 2 4 48 200 32 31 1 23 0 - 1 11 10 7 6 3 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - CALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="tcommaaccent" xMin="119" yMin="-432" xMax="1032" yMax="1332"> - <contour> - <pt x="1032" y="61" on="1"/> - <pt x="867" y="-25" on="0"/> - <pt x="696" y="-25" on="1"/> - <pt x="535" y="-25" on="0"/> - <pt x="466" y="50" on="1"/> - <pt x="397" y="124" on="0"/> - <pt x="397" y="299" on="1"/> - <pt x="397" y="925" on="1"/> - <pt x="119" y="925" on="1"/> - <pt x="119" y="1061" on="1"/> - <pt x="397" y="1061" on="1"/> - <pt x="397" y="1332" on="1"/> - <pt x="594" y="1332" on="1"/> - <pt x="594" y="1061" on="1"/> - <pt x="1020" y="1061" on="1"/> - <pt x="1020" y="925" on="1"/> - <pt x="594" y="925" on="1"/> - <pt x="594" y="388" on="1"/> - <pt x="594" y="228" on="0"/> - <pt x="626" y="176" on="1"/> - <pt x="658" y="123" on="0"/> - <pt x="753" y="123" on="1"/> - <pt x="860" y="123" on="0"/> - <pt x="1032" y="200" on="1"/> - </contour> - <contour> - <pt x="627" y="0" on="1"/> - <pt x="724" y="0" on="1"/> - <pt x="664" y="-109" on="1"/> - <pt x="736" y="-111" on="0"/> - <pt x="788" y="-148" on="1"/> - <pt x="858" y="-197" on="0"/> - <pt x="858" y="-269" on="1"/> - <pt x="858" y="-337" on="0"/> - <pt x="799" y="-384" on="1"/> - <pt x="741" y="-432" on="0"/> - <pt x="654" y="-432" on="1"/> - <pt x="587" y="-432" on="0"/> - <pt x="511" y="-411" on="1"/> - <pt x="511" y="-330" on="1"/> - <pt x="561" y="-345" on="0"/> - <pt x="615" y="-345" on="1"/> - <pt x="719" y="-345" on="0"/> - <pt x="719" y="-271" on="1"/> - <pt x="719" y="-178" on="0"/> - <pt x="532" y="-175" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 109 values pushed */ - 0 0 39 32 34 21 14 2 48 200 2 2 1 23 17 6 0 4 7 2 3 0 1 43 37 - 36 26 25 24 6 13 34 2 0 0 0 16 15 8 7 20 3 9 1 4 48 200 12 11 1 - 14 13 10 9 3 2 0 14 0 0 41 20 30 48 200 30 30 26 25 24 15 14 6 0 12 - 3 43 37 36 3 12 6 3 9 8 6 0 0 17 16 13 12 10 3 6 1 4 48 200 23 - 0 1 11 10 7 6 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - CALL[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="tcommabelow" xMin="119" yMin="-432" xMax="1032" yMax="1332"> - <component glyphName="t" x="0" y="0" flags="0x4"/> - <component glyphName="Unterkomma" x="62" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="thorn" xMin="62" yMin="-395" xMax="1118" yMax="1579"> - <contour> - <pt x="185" y="-272" on="1"/> - <pt x="185" y="1456" on="1"/> - <pt x="62" y="1456" on="1"/> - <pt x="62" y="1579" on="1"/> - <pt x="383" y="1579" on="1"/> - <pt x="383" y="864" on="1"/> - <pt x="458" y="975" on="0"/> - <pt x="529" y="1030" on="1"/> - <pt x="631" y="1110" on="0"/> - <pt x="749" y="1110" on="1"/> - <pt x="914" y="1110" on="0"/> - <pt x="1016" y="967" on="1"/> - <pt x="1118" y="823" on="0"/> - <pt x="1118" y="588" on="1"/> - <pt x="1118" y="302" on="0"/> - <pt x="983" y="139" on="1"/> - <pt x="849" y="-25" on="0"/> - <pt x="614" y="-25" on="1"/> - <pt x="526" y="-25" on="0"/> - <pt x="383" y="0" on="1"/> - <pt x="383" y="-272" on="1"/> - <pt x="630" y="-272" on="1"/> - <pt x="630" y="-395" on="1"/> - <pt x="62" y="-395" on="1"/> - <pt x="62" y="-272" on="1"/> - </contour> - <contour> - <pt x="383" y="146" on="1"/> - <pt x="518" y="123" on="0"/> - <pt x="591" y="123" on="1"/> - <pt x="908" y="123" on="0"/> - <pt x="908" y="591" on="1"/> - <pt x="908" y="950" on="0"/> - <pt x="694" y="950" on="1"/> - <pt x="530" y="950" on="0"/> - <pt x="383" y="716" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 100 values pushed */ - 0 0 31 30 9 27 14 17 48 200 17 2 9 1 1 2 1 2 3 1 3 0 1 1 33 - 25 5 3 1 2 3 0 0 1 19 2 0 2 0 0 0 24 21 20 0 6 3 22 1 4 - 48 200 4 3 1 23 22 1 2 0 14 0 0 29 39 13 48 200 22 21 2 13 13 4 24 - 23 3 2 4 13 0 0 0 33 25 20 19 5 4 10 5 0 1 4 48 200 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="three" xMin="185" yMin="-37" xMax="1081" yMax="1517"> - <contour> - <pt x="185" y="10" on="1"/> - <pt x="185" y="384" on="1"/> - <pt x="308" y="384" on="1"/> - <pt x="333" y="138" on="1"/> - <pt x="419" y="86" on="0"/> - <pt x="538" y="86" on="1"/> - <pt x="691" y="86" on="0"/> - <pt x="781" y="173" on="1"/> - <pt x="871" y="260" on="0"/> - <pt x="871" y="409" on="1"/> - <pt x="871" y="728" on="0"/> - <pt x="455" y="728" on="1"/> - <pt x="320" y="728" on="1"/> - <pt x="320" y="851" on="1"/> - <pt x="434" y="851" on="1"/> - <pt x="829" y="851" on="0"/> - <pt x="829" y="1147" on="1"/> - <pt x="829" y="1261" on="0"/> - <pt x="756" y="1327" on="1"/> - <pt x="684" y="1394" on="0"/> - <pt x="557" y="1394" on="1"/> - <pt x="439" y="1394" on="0"/> - <pt x="355" y="1355" on="1"/> - <pt x="343" y="1146" on="1"/> - <pt x="219" y="1146" on="1"/> - <pt x="219" y="1464" on="1"/> - <pt x="412" y="1517" on="0"/> - <pt x="577" y="1517" on="1"/> - <pt x="1030" y="1517" on="0"/> - <pt x="1030" y="1164" on="1"/> - <pt x="1030" y="1001" on="0"/> - <pt x="925" y="901" on="1"/> - <pt x="861" y="842" on="0"/> - <pt x="742" y="798" on="1"/> - <pt x="847" y="767" on="0"/> - <pt x="902" y="733" on="1"/> - <pt x="1081" y="622" on="0"/> - <pt x="1081" y="399" on="1"/> - <pt x="1081" y="205" on="0"/> - <pt x="943" y="84" on="1"/> - <pt x="805" y="-37" on="0"/> - <pt x="576" y="-37" on="1"/> - <pt x="421" y="-37" on="0"/> - <pt x="270" y="-7" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 75 values pushed */ - 0 0 20 5 27 5 5 41 48 200 41 2 27 0 1 1 33 25 24 23 22 14 13 12 11 - 3 2 1 0 13 0 2 3 0 0 14 0 0 16 24 29 9 39 37 48 200 33 23 22 14 - 13 12 11 3 2 9 13 37 29 24 0 0 25 24 23 1 0 1 5 48 200 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="threequarters" xMin="37" yMin="-37" xMax="1205" yMax="1518"> - <contour> - <pt x="173" y="-37" on="1"/> - <pt x="950" y="1517" on="1"/> - <pt x="1091" y="1517" on="1"/> - <pt x="311" y="-37" on="1"/> - </contour> - <contour> - <pt x="37" y="752" on="1"/> - <pt x="37" y="916" on="1"/> - <pt x="148" y="916" on="1"/> - <pt x="148" y="854" on="1"/> - <pt x="195" y="827" on="0"/> - <pt x="256" y="827" on="1"/> - <pt x="380" y="827" on="0"/> - <pt x="380" y="946" on="1"/> - <pt x="380" y="1076" on="0"/> - <pt x="197" y="1076" on="1"/> - <pt x="161" y="1076" on="1"/> - <pt x="161" y="1187" on="1"/> - <pt x="200" y="1187" on="1"/> - <pt x="380" y="1187" on="0"/> - <pt x="380" y="1304" on="1"/> - <pt x="380" y="1406" on="0"/> - <pt x="260" y="1406" on="1"/> - <pt x="198" y="1406" on="0"/> - <pt x="148" y="1375" on="1"/> - <pt x="148" y="1313" on="1"/> - <pt x="37" y="1313" on="1"/> - <pt x="37" y="1469" on="1"/> - <pt x="177" y="1518" on="0"/> - <pt x="283" y="1518" on="1"/> - <pt x="531" y="1518" on="0"/> - <pt x="531" y="1334" on="1"/> - <pt x="531" y="1204" on="0"/> - <pt x="355" y="1129" on="1"/> - <pt x="529" y="1084" on="0"/> - <pt x="529" y="941" on="1"/> - <pt x="529" y="836" on="0"/> - <pt x="452" y="776" on="1"/> - <pt x="375" y="715" on="0"/> - <pt x="244" y="715" on="1"/> - <pt x="165" y="715" on="0"/> - <pt x="61" y="745" on="1"/> - </contour> - <contour> - <pt x="1094" y="0" on="1"/> - <pt x="945" y="0" on="1"/> - <pt x="945" y="179" on="1"/> - <pt x="571" y="179" on="1"/> - <pt x="571" y="302" on="1"/> - <pt x="941" y="790" on="1"/> - <pt x="1094" y="790" on="1"/> - <pt x="1094" y="302" on="1"/> - <pt x="1205" y="302" on="1"/> - <pt x="1205" y="179" on="1"/> - <pt x="1094" y="179" on="1"/> - </contour> - <contour> - <pt x="709" y="302" on="1"/> - <pt x="945" y="302" on="1"/> - <pt x="945" y="611" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 139 values pushed */ - 0 0 20 31 27 9 31 37 48 200 31 25 24 23 22 16 15 14 13 7 6 5 12 1 45 - 3 37 53 37 4 3 45 44 3 27 1 0 0 52 51 48 47 44 6 4 42 1 4 48 200 - 46 45 1 50 49 43 42 3 41 40 1 2 1 1 3 0 1 5 0 14 0 0 18 38 29 - 11 38 33 48 200 2 1 2 40 41 3 33 29 51 45 44 43 33 31 29 23 22 16 15 14 - 13 7 6 3 0 17 41 4 3 49 48 2 13 40 0 0 53 52 42 41 16 3 40 1 4 - 48 200 50 47 46 40 3 25 24 5 4 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MDAP[1] - MDAP[1] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="threesuperior" xMin="263" yMin="715" xMax="966" yMax="1518"> - <contour> - <pt x="263" y="752" on="1"/> - <pt x="263" y="925" on="1"/> - <pt x="386" y="925" on="1"/> - <pt x="398" y="857" on="1"/> - <pt x="468" y="839" on="0"/> - <pt x="561" y="839" on="1"/> - <pt x="787" y="839" on="0"/> - <pt x="787" y="943" on="1"/> - <pt x="787" y="1027" on="0"/> - <pt x="691" y="1050" on="1"/> - <pt x="618" y="1067" on="0"/> - <pt x="465" y="1067" on="1"/> - <pt x="374" y="1067" on="1"/> - <pt x="374" y="1191" on="1"/> - <pt x="469" y="1191" on="1"/> - <pt x="659" y="1191" on="0"/> - <pt x="723" y="1213" on="1"/> - <pt x="787" y="1234" on="0"/> - <pt x="787" y="1296" on="1"/> - <pt x="787" y="1394" on="0"/> - <pt x="595" y="1394" on="1"/> - <pt x="477" y="1394" on="0"/> - <pt x="398" y="1364" on="1"/> - <pt x="386" y="1283" on="1"/> - <pt x="263" y="1283" on="1"/> - <pt x="263" y="1468" on="1"/> - <pt x="433" y="1518" on="0"/> - <pt x="606" y="1518" on="1"/> - <pt x="966" y="1518" on="0"/> - <pt x="966" y="1326" on="1"/> - <pt x="966" y="1196" on="0"/> - <pt x="754" y="1126" on="1"/> - <pt x="966" y="1080" on="0"/> - <pt x="966" y="933" on="1"/> - <pt x="966" y="715" on="0"/> - <pt x="577" y="715" on="1"/> - <pt x="431" y="715" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 56 values pushed */ - 0 0 20 6 27 5 6 35 48 200 35 31 27 25 24 23 22 14 13 12 11 3 2 1 0 - 14 0 0 18 13 29 7 13 33 48 200 31 23 22 14 13 12 11 3 2 9 13 33 29 0 - 25 24 1 0 3 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="threesuperiour" xMin="365" yMin="715" xMax="858" yMax="1518"> - <contour> - <pt x="365" y="752" on="1"/> - <pt x="365" y="916" on="1"/> - <pt x="476" y="916" on="1"/> - <pt x="476" y="854" on="1"/> - <pt x="524" y="827" on="0"/> - <pt x="583" y="827" on="1"/> - <pt x="707" y="827" on="0"/> - <pt x="707" y="946" on="1"/> - <pt x="707" y="1076" on="0"/> - <pt x="525" y="1076" on="1"/> - <pt x="488" y="1076" on="1"/> - <pt x="488" y="1187" on="1"/> - <pt x="528" y="1187" on="1"/> - <pt x="707" y="1187" on="0"/> - <pt x="707" y="1303" on="1"/> - <pt x="707" y="1406" on="0"/> - <pt x="588" y="1406" on="1"/> - <pt x="527" y="1406" on="0"/> - <pt x="476" y="1375" on="1"/> - <pt x="476" y="1313" on="1"/> - <pt x="365" y="1313" on="1"/> - <pt x="365" y="1469" on="1"/> - <pt x="505" y="1518" on="0"/> - <pt x="611" y="1518" on="1"/> - <pt x="858" y="1518" on="0"/> - <pt x="858" y="1334" on="1"/> - <pt x="858" y="1204" on="0"/> - <pt x="682" y="1129" on="1"/> - <pt x="785" y="1102" on="0"/> - <pt x="825" y="1048" on="1"/> - <pt x="857" y="1004" on="0"/> - <pt x="857" y="941" on="1"/> - <pt x="857" y="836" on="0"/> - <pt x="780" y="776" on="1"/> - <pt x="704" y="715" on="0"/> - <pt x="572" y="715" on="1"/> - <pt x="487" y="715" on="0"/> - <pt x="388" y="745" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 56 values pushed */ - 0 0 16 31 23 5 31 35 48 200 35 27 23 21 20 19 18 12 11 10 9 3 2 1 0 - 14 0 0 14 38 25 7 38 31 48 200 27 19 18 12 11 10 9 3 2 9 13 31 25 0 - 21 20 1 0 3 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="tilde" xMin="281" yMin="1283" xMax="947" yMax="1518"> - <contour> - <pt x="281" y="1283" on="1"/> - <pt x="287" y="1377" on="0"/> - <pt x="312" y="1428" on="1"/> - <pt x="357" y="1518" on="0"/> - <pt x="466" y="1518" on="1"/> - <pt x="538" y="1518" on="0"/> - <pt x="601" y="1479" on="1"/> - <pt x="661" y="1442" on="1"/> - <pt x="723" y="1404" on="0"/> - <pt x="757" y="1404" on="1"/> - <pt x="825" y="1404" on="0"/> - <pt x="836" y="1518" on="1"/> - <pt x="947" y="1518" on="1"/> - <pt x="940" y="1424" on="0"/> - <pt x="915" y="1374" on="1"/> - <pt x="869" y="1283" on="0"/> - <pt x="762" y="1283" on="1"/> - <pt x="689" y="1283" on="0"/> - <pt x="626" y="1322" on="1"/> - <pt x="566" y="1359" on="1"/> - <pt x="506" y="1396" on="0"/> - <pt x="470" y="1396" on="1"/> - <pt x="402" y="1396" on="0"/> - <pt x="391" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 30 values pushed */ - 0 0 21 5 4 9 5 16 48 200 4 0 1 12 11 2 13 0 0 1 23 0 16 0 0 - 14 23 12 11 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="trademark" xMin="43" yMin="740" xMax="1196" yMax="1480"> - <contour> - <pt x="142" y="740" on="1"/> - <pt x="142" y="833" on="1"/> - <pt x="219" y="833" on="1"/> - <pt x="219" y="1388" on="1"/> - <pt x="132" y="1388" on="1"/> - <pt x="132" y="1289" on="1"/> - <pt x="43" y="1289" on="1"/> - <pt x="43" y="1480" on="1"/> - <pt x="506" y="1480" on="1"/> - <pt x="506" y="1289" on="1"/> - <pt x="417" y="1289" on="1"/> - <pt x="417" y="1388" on="1"/> - <pt x="330" y="1388" on="1"/> - <pt x="330" y="833" on="1"/> - <pt x="407" y="833" on="1"/> - <pt x="407" y="740" on="1"/> - </contour> - <contour> - <pt x="555" y="740" on="1"/> - <pt x="555" y="833" on="1"/> - <pt x="613" y="833" on="1"/> - <pt x="613" y="1388" on="1"/> - <pt x="555" y="1388" on="1"/> - <pt x="555" y="1480" on="1"/> - <pt x="767" y="1480" on="1"/> - <pt x="889" y="1037" on="1"/> - <pt x="995" y="1480" on="1"/> - <pt x="1196" y="1480" on="1"/> - <pt x="1196" y="1388" on="1"/> - <pt x="1138" y="1388" on="1"/> - <pt x="1138" y="833" on="1"/> - <pt x="1196" y="833" on="1"/> - <pt x="1196" y="740" on="1"/> - <pt x="1033" y="740" on="1"/> - <pt x="1033" y="1319" on="1"/> - <pt x="1032" y="1319" on="1"/> - <pt x="916" y="876" on="1"/> - <pt x="829" y="876" on="1"/> - <pt x="714" y="1289" on="1"/> - <pt x="712" y="1289" on="1"/> - <pt x="712" y="740" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 129 values pushed */ - 37 36 35 34 33 32 29 28 27 26 23 20 19 18 17 14 13 12 11 10 9 6 5 4 3 - 2 1 27 7 0 3 38 31 30 16 15 0 5 0 25 24 22 21 8 7 0 5 14 36 35 - 34 33 24 23 22 7 31 37 3 21 20 17 16 4 18 8 3 15 14 11 10 4 8 12 3 - 5 4 1 0 4 2 6 3 30 29 26 25 4 13 27 0 0 32 31 18 1 27 38 37 18 - 1 18 2 4 13 12 1 2 1 6 48 200 28 27 1 19 18 1 9 8 1 3 2 1 7 - 6 1 5 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="two" xMin="133" yMin="0" xMax="1108" yMax="1517"> - <contour> - <pt x="133" y="0" on="1"/> - <pt x="133" y="173" on="1"/> - <pt x="243" y="359" on="0"/> - <pt x="391" y="493" on="1"/> - <pt x="494" y="586" on="1"/> - <pt x="616" y="698" on="1"/> - <pt x="854" y="916" on="0"/> - <pt x="854" y="1119" on="1"/> - <pt x="854" y="1244" on="0"/> - <pt x="778" y="1319" on="1"/> - <pt x="703" y="1394" on="0"/> - <pt x="577" y="1394" on="1"/> - <pt x="459" y="1394" on="0"/> - <pt x="318" y="1308" on="1"/> - <pt x="294" y="1073" on="1"/> - <pt x="170" y="1073" on="1"/> - <pt x="170" y="1423" on="1"/> - <pt x="416" y="1517" on="0"/> - <pt x="616" y="1517" on="1"/> - <pt x="823" y="1517" on="0"/> - <pt x="944" y="1409" on="1"/> - <pt x="1064" y="1302" on="0"/> - <pt x="1064" y="1118" on="1"/> - <pt x="1064" y="986" on="0"/> - <pt x="1009" y="889" on="1"/> - <pt x="952" y="788" on="0"/> - <pt x="808" y="668" on="1"/> - <pt x="723" y="597" on="1"/> - <pt x="503" y="411" on="0"/> - <pt x="441" y="329" on="1"/> - <pt x="385" y="257" on="0"/> - <pt x="356" y="173" on="1"/> - <pt x="1108" y="173" on="1"/> - <pt x="1108" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 63 values pushed */ - 0 0 11 5 18 48 200 18 0 1 16 15 14 13 4 0 1 3 0 0 0 32 31 1 22 - 2 0 1 4 48 200 33 0 1 0 14 0 0 7 39 22 48 200 22 31 22 14 13 4 32 - 15 3 33 32 1 16 15 1 1 0 1 3 0 - LOOPCALL[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="twosuperior" xMin="257" yMin="728" xMax="972" yMax="1518"> - <contour> - <pt x="257" y="728" on="1"/> - <pt x="257" y="876" on="1"/> - <pt x="298" y="971" on="0"/> - <pt x="364" y="1015" on="1"/> - <pt x="424" y="1055" on="0"/> - <pt x="551" y="1105" on="1"/> - <pt x="647" y="1143" on="1"/> - <pt x="781" y="1196" on="0"/> - <pt x="781" y="1278" on="1"/> - <pt x="781" y="1394" on="0"/> - <pt x="589" y="1394" on="1"/> - <pt x="475" y="1394" on="0"/> - <pt x="392" y="1357" on="1"/> - <pt x="380" y="1265" on="1"/> - <pt x="257" y="1265" on="1"/> - <pt x="257" y="1468" on="1"/> - <pt x="294" y="1477" on="1"/> - <pt x="462" y="1518" on="0"/> - <pt x="592" y="1518" on="1"/> - <pt x="960" y="1518" on="0"/> - <pt x="960" y="1295" on="1"/> - <pt x="960" y="1138" on="0"/> - <pt x="752" y="1062" on="1"/> - <pt x="670" y="1032" on="1"/> - <pt x="490" y="966" on="0"/> - <pt x="460" y="876" on="1"/> - <pt x="972" y="876" on="1"/> - <pt x="972" y="728" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 58 values pushed */ - 0 0 10 6 18 48 200 15 14 13 12 4 13 18 1 0 0 27 0 16 1 1 1 4 48 - 200 26 25 1 2 0 14 0 0 8 13 20 48 200 20 25 20 13 12 4 26 0 3 27 26 - 1 15 14 1 0 3 2 0 - LOOPCALL[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="twosuperiour" xMin="361" yMin="728" xMax="867" yMax="1517"> - <contour> - <pt x="361" y="728" on="1"/> - <pt x="361" y="882" on="1"/> - <pt x="405" y="970" on="0"/> - <pt x="523" y="1056" on="1"/> - <pt x="553" y="1078" on="0"/> - <pt x="568" y="1090" on="1"/> - <pt x="601" y="1120" on="1"/> - <pt x="657" y="1167" on="1"/> - <pt x="706" y="1208" on="0"/> - <pt x="706" y="1283" on="1"/> - <pt x="706" y="1406" on="0"/> - <pt x="578" y="1406" on="1"/> - <pt x="534" y="1406" on="0"/> - <pt x="472" y="1377" on="1"/> - <pt x="472" y="1310" on="1"/> - <pt x="361" y="1310" on="1"/> - <pt x="361" y="1468" on="1"/> - <pt x="471" y="1517" on="0"/> - <pt x="590" y="1517" on="1"/> - <pt x="867" y="1517" on="0"/> - <pt x="867" y="1302" on="1"/> - <pt x="867" y="1173" on="0"/> - <pt x="730" y="1072" on="1"/> - <pt x="696" y="1047" on="1"/> - <pt x="696" y="1047" on="1"/> - <pt x="695" y="1046" on="1"/> - <pt x="693" y="1045" on="1"/> - <pt x="691" y="1044" on="0"/> - <pt x="679" y="1035" on="1"/> - <pt x="660" y="1022" on="1"/> - <pt x="550" y="948" on="0"/> - <pt x="524" y="876" on="1"/> - <pt x="867" y="876" on="1"/> - <pt x="867" y="728" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 60 values pushed */ - 0 0 11 18 48 200 24 23 16 15 14 13 1 7 13 18 31 0 0 33 0 16 1 31 1 - 4 48 200 32 31 1 0 14 0 0 9 34 20 48 200 31 24 23 14 13 5 20 0 3 33 - 32 20 2 16 15 1 0 3 2 0 - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="u" xMin="68" yMin="-25" xMax="1166" yMax="1086"> - <contour> - <pt x="734" y="1086" on="1"/> - <pt x="1043" y="1086" on="1"/> - <pt x="1043" y="123" on="1"/> - <pt x="1166" y="123" on="1"/> - <pt x="1166" y="0" on="1"/> - <pt x="845" y="0" on="1"/> - <pt x="845" y="209" on="1"/> - <pt x="776" y="104" on="0"/> - <pt x="708" y="51" on="1"/> - <pt x="612" y="-25" on="0"/> - <pt x="493" y="-25" on="1"/> - <pt x="191" y="-25" on="0"/> - <pt x="191" y="363" on="1"/> - <pt x="191" y="962" on="1"/> - <pt x="68" y="962" on="1"/> - <pt x="68" y="1086" on="1"/> - <pt x="389" y="1086" on="1"/> - <pt x="389" y="385" on="1"/> - <pt x="389" y="130" on="0"/> - <pt x="552" y="130" on="1"/> - <pt x="701" y="130" on="0"/> - <pt x="845" y="382" on="1"/> - <pt x="845" y="962" on="1"/> - <pt x="734" y="962" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 74 values pushed */ - 0 0 19 30 10 48 200 10 2 23 22 21 17 14 13 12 6 3 2 10 0 4 3 5 4 - 1 0 16 15 1 0 1 3 14 23 0 2 5 16 3 4 3 2 13 1 15 14 12 0 0 - 22 21 6 5 10 3 1 17 16 10 1 12 2 4 48 200 2 1 1 13 12 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="uacute" xMin="68" yMin="-25" xMax="1166" yMax="1604"> - <component glyphName="u" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="101" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ubreve" xMin="68" yMin="-25" xMax="1166" yMax="1579"> - <contour> - <pt x="734" y="1086" on="1"/> - <pt x="1043" y="1086" on="1"/> - <pt x="1043" y="123" on="1"/> - <pt x="1166" y="123" on="1"/> - <pt x="1166" y="0" on="1"/> - <pt x="845" y="0" on="1"/> - <pt x="845" y="209" on="1"/> - <pt x="776" y="104" on="0"/> - <pt x="708" y="51" on="1"/> - <pt x="612" y="-25" on="0"/> - <pt x="493" y="-25" on="1"/> - <pt x="191" y="-25" on="0"/> - <pt x="191" y="363" on="1"/> - <pt x="191" y="962" on="1"/> - <pt x="68" y="962" on="1"/> - <pt x="68" y="1086" on="1"/> - <pt x="389" y="1086" on="1"/> - <pt x="389" y="385" on="1"/> - <pt x="389" y="130" on="0"/> - <pt x="552" y="130" on="1"/> - <pt x="701" y="130" on="0"/> - <pt x="845" y="382" on="1"/> - <pt x="845" y="962" on="1"/> - <pt x="734" y="962" on="1"/> - </contour> - <contour> - <pt x="265" y="1579" on="1"/> - <pt x="388" y="1579" on="1"/> - <pt x="436" y="1431" on="0"/> - <pt x="610" y="1431" on="1"/> - <pt x="785" y="1431" on="0"/> - <pt x="833" y="1579" on="1"/> - <pt x="956" y="1579" on="1"/> - <pt x="933" y="1490" on="0"/> - <pt x="907" y="1444" on="1"/> - <pt x="816" y="1289" on="0"/> - <pt x="615" y="1289" on="1"/> - <pt x="462" y="1289" on="0"/> - <pt x="373" y="1370" on="1"/> - <pt x="318" y="1419" on="0"/> - <pt x="290" y="1491" on="1"/> - <pt x="279" y="1520" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 96 values pushed */ - 0 0 27 14 34 19 30 10 48 200 10 2 23 22 21 17 14 13 12 6 3 2 10 0 4 - 3 30 29 25 24 4 13 34 0 5 4 1 0 16 15 1 0 1 3 14 30 1 5 2 29 - 23 0 3 5 16 3 25 24 2 16 12 3 4 3 2 13 1 15 14 12 0 0 22 21 6 - 5 10 3 1 17 16 10 1 12 2 4 48 200 2 1 1 13 12 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ucircumflex" xMin="68" yMin="-25" xMax="1166" yMax="1604"> - <component glyphName="u" x="0" y="0" flags="0x4"/> - <component glyphName="circumflex" x="3" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="udieresis" xMin="68" yMin="-25" xMax="1166" yMax="1480"> - <component glyphName="u" x="0" y="0" flags="0x4"/> - <component glyphName="dieresis" x="3" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ugrave" xMin="68" yMin="-25" xMax="1166" yMax="1604"> - <component glyphName="u" x="0" y="0" flags="0x4"/> - <component glyphName="grave" x="-96" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="uhungarumlaut" xMin="68" yMin="-25" xMax="1166" yMax="1604"> - <component glyphName="u" x="0" y="0" flags="0x4"/> - <component glyphName="hungarumlaut" x="92" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="umacron" xMin="68" yMin="-25" xMax="1166" yMax="1407"> - <component glyphName="u" x="0" y="0" flags="0x4"/> - <component glyphName="macron" x="-4" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="underscore" xMin="0" yMin="-148" xMax="1229" yMax="0"> - <contour> - <pt x="0" y="0" on="1"/> - <pt x="1229" y="0" on="1"/> - <pt x="1229" y="-148" on="1"/> - <pt x="0" y="-148" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 24 values pushed */ - 0 0 3 2 16 1 0 1 4 48 200 1 0 1 0 14 2 1 1 3 0 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="uogonek" xMin="68" yMin="-370" xMax="1166" yMax="1086"> - <component glyphName="u" x="0" y="0" flags="0x4"/> - <component glyphName="ogonek" x="331" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="uring" xMin="68" yMin="-25" xMax="1166" yMax="1737"> - <component glyphName="u" x="0" y="0" flags="0x4"/> - <component glyphName="ring" x="-4" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="utilde" xMin="68" yMin="-25" xMax="1166" yMax="1518"> - <contour> - <pt x="734" y="1086" on="1"/> - <pt x="1043" y="1086" on="1"/> - <pt x="1043" y="123" on="1"/> - <pt x="1166" y="123" on="1"/> - <pt x="1166" y="0" on="1"/> - <pt x="845" y="0" on="1"/> - <pt x="845" y="209" on="1"/> - <pt x="776" y="104" on="0"/> - <pt x="708" y="51" on="1"/> - <pt x="612" y="-25" on="0"/> - <pt x="493" y="-25" on="1"/> - <pt x="191" y="-25" on="0"/> - <pt x="191" y="363" on="1"/> - <pt x="191" y="962" on="1"/> - <pt x="68" y="962" on="1"/> - <pt x="68" y="1086" on="1"/> - <pt x="389" y="1086" on="1"/> - <pt x="389" y="385" on="1"/> - <pt x="389" y="130" on="0"/> - <pt x="552" y="130" on="1"/> - <pt x="701" y="130" on="0"/> - <pt x="845" y="382" on="1"/> - <pt x="845" y="962" on="1"/> - <pt x="734" y="962" on="1"/> - </contour> - <contour> - <pt x="278" y="1283" on="1"/> - <pt x="284" y="1378" on="0"/> - <pt x="309" y="1428" on="1"/> - <pt x="354" y="1518" on="0"/> - <pt x="463" y="1518" on="1"/> - <pt x="535" y="1518" on="0"/> - <pt x="598" y="1479" on="1"/> - <pt x="658" y="1442" on="1"/> - <pt x="720" y="1404" on="0"/> - <pt x="754" y="1404" on="1"/> - <pt x="822" y="1404" on="0"/> - <pt x="833" y="1518" on="1"/> - <pt x="944" y="1518" on="1"/> - <pt x="937" y="1424" on="0"/> - <pt x="912" y="1374" on="1"/> - <pt x="866" y="1283" on="0"/> - <pt x="759" y="1283" on="1"/> - <pt x="686" y="1283" on="0"/> - <pt x="623" y="1322" on="1"/> - <pt x="563" y="1359" on="1"/> - <pt x="503" y="1396" on="0"/> - <pt x="467" y="1396" on="1"/> - <pt x="399" y="1396" on="0"/> - <pt x="388" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 110 values pushed */ - 0 0 45 5 28 33 5 40 19 30 10 48 200 28 0 10 2 40 1 47 40 24 3 0 0 - 3 0 23 22 21 17 14 13 12 6 3 2 10 0 4 3 1 36 35 2 13 0 0 5 4 - 1 0 16 15 1 0 1 3 14 36 1 5 2 35 23 0 3 5 16 3 47 24 2 16 12 - 3 4 3 2 13 1 15 14 12 0 0 22 21 6 5 10 3 1 17 16 10 1 12 2 4 - 48 200 2 1 1 13 12 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="v" xMin="55" yMin="0" xMax="1173" yMax="1086"> - <contour> - <pt x="514" y="0" on="1"/> - <pt x="129" y="962" on="1"/> - <pt x="55" y="962" on="1"/> - <pt x="55" y="1086" on="1"/> - <pt x="502" y="1086" on="1"/> - <pt x="502" y="962" on="1"/> - <pt x="342" y="962" on="1"/> - <pt x="653" y="184" on="1"/> - <pt x="655" y="184" on="1"/> - <pt x="966" y="962" on="1"/> - <pt x="806" y="962" on="1"/> - <pt x="806" y="1086" on="1"/> - <pt x="1173" y="1086" on="1"/> - <pt x="1173" y="962" on="1"/> - <pt x="1099" y="962" on="1"/> - <pt x="714" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 50 values pushed */ - 8 7 2 1 0 3 0 0 14 13 10 9 6 5 2 1 6 7 3 1 4 48 200 15 0 - 1 0 12 11 4 3 1 3 14 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="w" xMin="23" yMin="0" xMax="1207" yMax="1086"> - <contour> - <pt x="242" y="0" on="1"/> - <pt x="72" y="962" on="1"/> - <pt x="23" y="962" on="1"/> - <pt x="23" y="1086" on="1"/> - <pt x="334" y="1086" on="1"/> - <pt x="334" y="962" on="1"/> - <pt x="248" y="962" on="1"/> - <pt x="377" y="238" on="1"/> - <pt x="379" y="238" on="1"/> - <pt x="556" y="923" on="1"/> - <pt x="723" y="923" on="1"/> - <pt x="901" y="235" on="1"/> - <pt x="903" y="235" on="1"/> - <pt x="1033" y="962" on="1"/> - <pt x="935" y="962" on="1"/> - <pt x="935" y="1086" on="1"/> - <pt x="1207" y="1086" on="1"/> - <pt x="1207" y="962" on="1"/> - <pt x="1158" y="962" on="1"/> - <pt x="988" y="0" on="1"/> - <pt x="795" y="0" on="1"/> - <pt x="616" y="703" on="1"/> - <pt x="614" y="703" on="1"/> - <pt x="432" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 63 values pushed */ - 18 17 14 13 6 5 2 1 8 3 9 3 22 21 12 11 8 7 6 9 0 3 10 9 1 - 23 20 19 0 3 2 0 16 15 4 3 1 3 14 23 22 21 20 19 18 17 16 15 14 13 - 12 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="wcircumflex" xMin="23" yMin="0" xMax="1207" yMax="1604"> - <contour> - <pt x="242" y="0" on="1"/> - <pt x="72" y="962" on="1"/> - <pt x="23" y="962" on="1"/> - <pt x="23" y="1086" on="1"/> - <pt x="334" y="1086" on="1"/> - <pt x="334" y="962" on="1"/> - <pt x="248" y="962" on="1"/> - <pt x="377" y="238" on="1"/> - <pt x="379" y="238" on="1"/> - <pt x="556" y="923" on="1"/> - <pt x="723" y="923" on="1"/> - <pt x="901" y="235" on="1"/> - <pt x="903" y="235" on="1"/> - <pt x="1033" y="962" on="1"/> - <pt x="935" y="962" on="1"/> - <pt x="935" y="1086" on="1"/> - <pt x="1207" y="1086" on="1"/> - <pt x="1207" y="962" on="1"/> - <pt x="1158" y="962" on="1"/> - <pt x="988" y="0" on="1"/> - <pt x="795" y="0" on="1"/> - <pt x="616" y="703" on="1"/> - <pt x="614" y="703" on="1"/> - <pt x="432" y="0" on="1"/> - </contour> - <contour> - <pt x="268" y="1283" on="1"/> - <pt x="524" y="1604" on="1"/> - <pt x="743" y="1604" on="1"/> - <pt x="999" y="1283" on="1"/> - <pt x="876" y="1283" on="1"/> - <pt x="635" y="1485" on="1"/> - <pt x="632" y="1485" on="1"/> - <pt x="391" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 84 values pushed */ - 31 30 29 28 27 24 6 25 3 3 18 17 14 13 6 5 2 1 8 3 9 3 22 21 12 - 11 8 7 6 9 0 3 26 25 1 10 9 1 23 20 19 0 3 3 0 16 15 4 3 1 - 3 14 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 - 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="x" xMin="59" yMin="0" xMax="1189" yMax="1086"> - <contour> - <pt x="59" y="0" on="1"/> - <pt x="59" y="123" on="1"/> - <pt x="182" y="123" on="1"/> - <pt x="513" y="543" on="1"/> - <pt x="182" y="962" on="1"/> - <pt x="59" y="962" on="1"/> - <pt x="59" y="1086" on="1"/> - <pt x="497" y="1086" on="1"/> - <pt x="497" y="962" on="1"/> - <pt x="410" y="962" on="1"/> - <pt x="671" y="631" on="1"/> - <pt x="931" y="962" on="1"/> - <pt x="828" y="962" on="1"/> - <pt x="828" y="1086" on="1"/> - <pt x="1189" y="1086" on="1"/> - <pt x="1189" y="962" on="1"/> - <pt x="1072" y="962" on="1"/> - <pt x="741" y="542" on="1"/> - <pt x="1071" y="123" on="1"/> - <pt x="1189" y="123" on="1"/> - <pt x="1189" y="0" on="1"/> - <pt x="744" y="0" on="1"/> - <pt x="744" y="123" on="1"/> - <pt x="843" y="123" on="1"/> - <pt x="590" y="444" on="1"/> - <pt x="338" y="123" on="1"/> - <pt x="438" y="123" on="1"/> - <pt x="438" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 65 values pushed */ - 26 25 24 23 22 19 18 17 16 15 12 11 10 9 8 5 4 3 2 1 20 6 0 3 27 - 21 20 0 3 0 14 13 7 6 1 3 14 27 26 25 24 23 22 21 20 19 18 17 16 15 - 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="y" xMin="55" yMin="-395" xMax="1173" yMax="1086"> - <contour> - <pt x="514" y="0" on="1"/> - <pt x="129" y="962" on="1"/> - <pt x="55" y="962" on="1"/> - <pt x="55" y="1086" on="1"/> - <pt x="502" y="1086" on="1"/> - <pt x="502" y="962" on="1"/> - <pt x="342" y="962" on="1"/> - <pt x="653" y="184" on="1"/> - <pt x="655" y="184" on="1"/> - <pt x="966" y="962" on="1"/> - <pt x="806" y="962" on="1"/> - <pt x="806" y="1086" on="1"/> - <pt x="1173" y="1086" on="1"/> - <pt x="1173" y="962" on="1"/> - <pt x="1099" y="962" on="1"/> - <pt x="714" y="0" on="1"/> - <pt x="606" y="-271" on="1"/> - <pt x="754" y="-271" on="1"/> - <pt x="754" y="-395" on="1"/> - <pt x="275" y="-395" on="1"/> - <pt x="275" y="-271" on="1"/> - <pt x="473" y="-271" on="1"/> - <pt x="581" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 73 values pushed */ - 1 8 7 2 1 2 3 0 1 22 0 2 2 16 3 0 0 0 14 13 10 9 6 5 2 - 1 6 7 3 21 20 17 16 6 3 18 2 4 48 200 19 18 1 0 12 11 4 3 1 3 - 14 22 21 20 19 18 17 16 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="yacute" xMin="55" yMin="-395" xMax="1173" yMax="1604"> - <component glyphName="y" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="139" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ycircumflex" xMin="55" yMin="-395" xMax="1173" yMax="1604"> - <contour> - <pt x="514" y="0" on="1"/> - <pt x="129" y="962" on="1"/> - <pt x="55" y="962" on="1"/> - <pt x="55" y="1086" on="1"/> - <pt x="502" y="1086" on="1"/> - <pt x="502" y="962" on="1"/> - <pt x="342" y="962" on="1"/> - <pt x="653" y="184" on="1"/> - <pt x="655" y="184" on="1"/> - <pt x="966" y="962" on="1"/> - <pt x="806" y="962" on="1"/> - <pt x="806" y="1086" on="1"/> - <pt x="1173" y="1086" on="1"/> - <pt x="1173" y="962" on="1"/> - <pt x="1099" y="962" on="1"/> - <pt x="714" y="0" on="1"/> - <pt x="606" y="-271" on="1"/> - <pt x="754" y="-271" on="1"/> - <pt x="754" y="-395" on="1"/> - <pt x="275" y="-395" on="1"/> - <pt x="275" y="-271" on="1"/> - <pt x="473" y="-271" on="1"/> - <pt x="581" y="0" on="1"/> - </contour> - <contour> - <pt x="288" y="1283" on="1"/> - <pt x="544" y="1604" on="1"/> - <pt x="763" y="1604" on="1"/> - <pt x="1019" y="1283" on="1"/> - <pt x="896" y="1283" on="1"/> - <pt x="655" y="1485" on="1"/> - <pt x="652" y="1485" on="1"/> - <pt x="411" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 95 values pushed */ - 30 29 28 27 26 23 6 24 3 3 1 8 7 2 1 2 3 0 1 22 0 2 2 16 3 - 0 0 0 14 13 10 9 6 5 2 1 6 7 3 21 20 17 16 6 3 18 2 4 48 200 - 25 24 1 19 18 1 2 0 12 11 4 3 1 3 14 30 29 28 27 26 25 24 23 22 21 - 20 19 18 17 16 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ydieresis" xMin="55" yMin="-395" xMax="1173" yMax="1480"> - <component glyphName="y" x="0" y="0" flags="0x4"/> - <component glyphName="dieresis" x="40" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="yen" xMin="49" yMin="0" xMax="1179" yMax="1480"> - <contour> - <pt x="294" y="0" on="1"/> - <pt x="294" y="123" on="1"/> - <pt x="516" y="123" on="1"/> - <pt x="516" y="407" on="1"/> - <pt x="171" y="407" on="1"/> - <pt x="171" y="531" on="1"/> - <pt x="516" y="531" on="1"/> - <pt x="516" y="660" on="1"/> - <pt x="470" y="740" on="1"/> - <pt x="171" y="740" on="1"/> - <pt x="171" y="864" on="1"/> - <pt x="400" y="864" on="1"/> - <pt x="115" y="1357" on="1"/> - <pt x="49" y="1357" on="1"/> - <pt x="49" y="1480" on="1"/> - <pt x="490" y="1480" on="1"/> - <pt x="490" y="1357" on="1"/> - <pt x="341" y="1357" on="1"/> - <pt x="656" y="813" on="1"/> - <pt x="658" y="813" on="1"/> - <pt x="973" y="1357" on="1"/> - <pt x="825" y="1357" on="1"/> - <pt x="825" y="1480" on="1"/> - <pt x="1179" y="1480" on="1"/> - <pt x="1179" y="1357" on="1"/> - <pt x="1115" y="1357" on="1"/> - <pt x="830" y="864" on="1"/> - <pt x="1059" y="864" on="1"/> - <pt x="1059" y="740" on="1"/> - <pt x="759" y="740" on="1"/> - <pt x="713" y="661" on="1"/> - <pt x="713" y="531" on="1"/> - <pt x="1059" y="531" on="1"/> - <pt x="1059" y="407" on="1"/> - <pt x="713" y="407" on="1"/> - <pt x="713" y="123" on="1"/> - <pt x="935" y="123" on="1"/> - <pt x="935" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 131 values pushed */ - 19 18 2 10 8 3 30 7 2 8 5 3 0 0 25 24 21 20 17 16 13 12 6 7 14 - 29 28 9 8 6 3 10 32 31 6 5 6 3 3 36 35 2 1 6 3 0 4 4 48 200 - 27 26 11 10 3 34 33 4 3 3 37 0 1 3 0 23 22 15 14 0 3 14 19 18 2 - 30 2 3 37 36 33 32 29 28 27 26 25 24 23 22 21 20 14 13 30 17 16 15 14 13 - 12 11 10 9 8 5 4 1 0 14 13 2 0 0 35 34 31 30 10 3 2 1 4 48 200 - 7 6 3 2 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="z" xMin="123" yMin="0" xMax="1093" yMax="1086"> - <contour> - <pt x="123" y="0" on="1"/> - <pt x="123" y="142" on="1"/> - <pt x="818" y="962" on="1"/> - <pt x="283" y="962" on="1"/> - <pt x="283" y="765" on="1"/> - <pt x="160" y="765" on="1"/> - <pt x="160" y="1086" on="1"/> - <pt x="1056" y="1086" on="1"/> - <pt x="1056" y="962" on="1"/> - <pt x="361" y="142" on="1"/> - <pt x="969" y="142" on="1"/> - <pt x="969" y="345" on="1"/> - <pt x="1093" y="345" on="1"/> - <pt x="1093" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 73 values pushed */ - 12 11 5 4 4 2 1 3 0 0 8 3 2 6 2 6 10 9 1 7 2 0 2 4 48 - 200 13 0 1 0 7 6 1 14 8 7 2 12 10 3 9 2 2 10 3 3 0 0 11 10 - 6 1 12 4 3 6 1 5 2 4 48 200 13 12 1 6 5 1 1 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="zacute" xMin="123" yMin="0" xMax="1093" yMax="1604"> - <component glyphName="z" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="93" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="zcaron" xMin="123" yMin="0" xMax="1093" yMax="1604"> - <component glyphName="z" x="0" y="0" flags="0x4"/> - <component glyphName="caron" x="-6" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="zdotaccent" xMin="123" yMin="0" xMax="1093" yMax="1480"> - <component glyphName="z" x="0" y="0" flags="0x4"/> - <component glyphName="dotaccent" x="-7" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="zero" xMin="96" yMin="-37" xMax="1132" yMax="1517"> - <contour> - <pt x="614" y="1517" on="1"/> - <pt x="854" y="1517" on="0"/> - <pt x="993" y="1309" on="1"/> - <pt x="1132" y="1102" on="0"/> - <pt x="1132" y="742" on="1"/> - <pt x="1132" y="376" on="0"/> - <pt x="993" y="170" on="1"/> - <pt x="854" y="-37" on="0"/> - <pt x="606" y="-37" on="1"/> - <pt x="395" y="-37" on="0"/> - <pt x="263" y="132" on="1"/> - <pt x="96" y="346" on="0"/> - <pt x="96" y="741" on="1"/> - <pt x="96" y="1102" on="0"/> - <pt x="235" y="1309" on="1"/> - <pt x="374" y="1517" on="0"/> - </contour> - <contour> - <pt x="614" y="1394" on="1"/> - <pt x="467" y="1394" on="0"/> - <pt x="388" y="1224" on="1"/> - <pt x="309" y="1053" on="0"/> - <pt x="309" y="742" on="1"/> - <pt x="309" y="431" on="0"/> - <pt x="388" y="258" on="1"/> - <pt x="466" y="86" on="0"/> - <pt x="613" y="86" on="1"/> - <pt x="920" y="86" on="0"/> - <pt x="920" y="740" on="1"/> - <pt x="920" y="1057" on="0"/> - <pt x="841" y="1225" on="1"/> - <pt x="761" y="1394" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 27 values pushed */ - 0 0 24 5 8 16 5 0 48 200 8 2 0 0 14 0 0 26 39 4 20 39 12 48 200 - 12 4 - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - </glyf> - - <name> - <namerecord nameID="0" platformID="1" platEncID="0" langID="0x0"> - Copyright (c) 2001 by Bigelow & Holmes Inc. Instructions copyright (c) 2001 by URW++. - </namerecord> - <namerecord nameID="1" platformID="1" platEncID="0" langID="0x0"> - Luxi Mono - </namerecord> - <namerecord nameID="2" platformID="1" platEncID="0" langID="0x0"> - Regular - </namerecord> - <namerecord nameID="3" platformID="1" platEncID="0" langID="0x0"> - Luxi Mono Regular: B&H - </namerecord> - <namerecord nameID="4" platformID="1" platEncID="0" langID="0x0"> - Luxi Mono Regular - </namerecord> - <namerecord nameID="5" platformID="1" platEncID="0" langID="0x0"> - 1.2 : October 12, 2001 - </namerecord> - <namerecord nameID="6" platformID="1" platEncID="0" langID="0x0"> - LuxiMono - </namerecord> - <namerecord nameID="7" platformID="1" platEncID="0" langID="0x0"> - Luxi is a registered trademark of Bigelow & Holmes Inc. - </namerecord> - <namerecord nameID="8" platformID="1" platEncID="0" langID="0x0"> - Bigelow & Holmes Inc. - </namerecord> - <namerecord nameID="9" platformID="1" platEncID="0" langID="0x0"> - Kris Holmes and Charles Bigelow - </namerecord> - <namerecord nameID="11" platformID="1" platEncID="0" langID="0x0"> - http://www.urwpp.de - </namerecord> - <namerecord nameID="12" platformID="1" platEncID="0" langID="0x0"> - design@bigelowandholmes.com - </namerecord> - <namerecord nameID="0" platformID="3" platEncID="1" langID="0x409"> - Copyright (c) 2001 by Bigelow & Holmes Inc. Instructions copyright (c) 2001 by URW++. - </namerecord> - <namerecord nameID="1" platformID="3" platEncID="1" langID="0x409"> - Luxi Mono - </namerecord> - <namerecord nameID="2" platformID="3" platEncID="1" langID="0x409"> - Regular - </namerecord> - <namerecord nameID="3" platformID="3" platEncID="1" langID="0x409"> - Luxi Mono Regular: B&H - </namerecord> - <namerecord nameID="4" platformID="3" platEncID="1" langID="0x409"> - Luxi Mono Regular - </namerecord> - <namerecord nameID="5" platformID="3" platEncID="1" langID="0x409"> - 1.2 : October 12, 2001 - </namerecord> - <namerecord nameID="6" platformID="3" platEncID="1" langID="0x409"> - LuxiMono - </namerecord> - <namerecord nameID="7" platformID="3" platEncID="1" langID="0x409"> - Luxi is a registered trademark of Bigelow & Holmes Inc. - </namerecord> - <namerecord nameID="8" platformID="3" platEncID="1" langID="0x409"> - Bigelow & Holmes Inc. - </namerecord> - <namerecord nameID="9" platformID="3" platEncID="1" langID="0x409"> - Kris Holmes and Charles Bigelow - </namerecord> - <namerecord nameID="11" platformID="3" platEncID="1" langID="0x409"> - http://www.urwpp.de - </namerecord> - <namerecord nameID="12" platformID="3" platEncID="1" langID="0x409"> - design@bigelowandholmes.com - </namerecord> - </name> - - <post> - <formatType value="2.0"/> - <italicAngle value="0.0"/> - <underlinePosition value="0"/> - <underlineThickness value="0"/> - <isFixedPitch value="1"/> - <minMemType42 value="0"/> - <maxMemType42 value="0"/> - <minMemType1 value="0"/> - <maxMemType1 value="0"/> - <psNames> - <!-- This file uses unique glyph names based on the information - found in the 'post' table. Since these names might not be unique, - we have to invent artificial names in case of clashes. In order to - be able to retain the original information, we need a name to - ps name mapping for those cases where they differ. That's what - you see below. - --> - <psName name=".notdef#1" psName=".notdef"/> - <psName name=".notdef#10" psName=".notdef"/> - <psName name=".notdef#11" psName=".notdef"/> - <psName name=".notdef#12" psName=".notdef"/> - <psName name=".notdef#13" psName=".notdef"/> - <psName name=".notdef#14" psName=".notdef"/> - <psName name=".notdef#15" psName=".notdef"/> - <psName name=".notdef#16" psName=".notdef"/> - <psName name=".notdef#17" psName=".notdef"/> - <psName name=".notdef#18" psName=".notdef"/> - <psName name=".notdef#2" psName=".notdef"/> - <psName name=".notdef#3" psName=".notdef"/> - <psName name=".notdef#4" psName=".notdef"/> - <psName name=".notdef#5" psName=".notdef"/> - <psName name=".notdef#6" psName=".notdef"/> - <psName name=".notdef#7" psName=".notdef"/> - <psName name=".notdef#8" psName=".notdef"/> - <psName name=".notdef#9" psName=".notdef"/> - <psName name="Euro#1" psName="Euro"/> - <psName name="fi#1" psName="fi"/> - <psName name="fl#1" psName="fl"/> - <psName name="foursuperiour#1" psName="foursuperiour"/> - <psName name="fraction#1" psName="fraction"/> - <psName name="hyphen#1" psName="hyphen"/> - <psName name="macron#1" psName="macron"/> - <psName name="periodcentered#1" psName="periodcentered"/> - <psName name="semicolon#1" psName="semicolon"/> - </psNames> - <extraNames> - <!-- following are the name that are not taken from the standard Mac glyph order --> - <psName name="fraction"/> - <psName name="fl"/> - <psName name="Euro"/> - <psName name="tilde"/> - <psName name="macron"/> - <psName name="Euro"/> - <psName name="sfthyphen"/> - <psName name="periodcentered"/> - <psName name="Amacron"/> - <psName name="amacron"/> - <psName name="Abreve"/> - <psName name="abreve"/> - <psName name="Aogonek"/> - <psName name="aogonek"/> - <psName name="Ccircumflex"/> - <psName name="ccircumflex"/> - <psName name="Cdotaccent"/> - <psName name="cdotaccent"/> - <psName name="Dcaron"/> - <psName name="dcaron"/> - <psName name="Dcroat"/> - <psName name="dcroat"/> - <psName name="Emacron"/> - <psName name="emacron"/> - <psName name="Ebreve"/> - <psName name="ebreve"/> - <psName name="Edotaccent"/> - <psName name="edotaccent"/> - <psName name="Eogonek"/> - <psName name="eogonek"/> - <psName name="Ecaron"/> - <psName name="ecaron"/> - <psName name="Gcircumflex"/> - <psName name="gcircumflex"/> - <psName name="Gdotaccent"/> - <psName name="gdotaccent"/> - <psName name="Gcommaaccent"/> - <psName name="gcommaaccent"/> - <psName name="Hcircumflex"/> - <psName name="hcircumflex"/> - <psName name="Hbar"/> - <psName name="hbar"/> - <psName name="Itilde"/> - <psName name="itilde"/> - <psName name="Imacron"/> - <psName name="imacron"/> - <psName name="Ibreve"/> - <psName name="ibreve"/> - <psName name="Iogonek"/> - <psName name="iogonek"/> - <psName name="IJ"/> - <psName name="ij"/> - <psName name="Jcircumflex"/> - <psName name="jcircumflex"/> - <psName name="Kcommaaccent"/> - <psName name="kcommaaccent"/> - <psName name="kgreenlandic"/> - <psName name="Lacute"/> - <psName name="lacute"/> - <psName name="Lcommaaccent"/> - <psName name="lcommaaccent"/> - <psName name="Lcaron"/> - <psName name="lcaron"/> - <psName name="Ldot"/> - <psName name="ldot"/> - <psName name="Nacute"/> - <psName name="nacute"/> - <psName name="Ncommaaccent"/> - <psName name="ncommaaccent"/> - <psName name="Ncaron"/> - <psName name="ncaron"/> - <psName name="napostrophe"/> - <psName name="Eng"/> - <psName name="eng"/> - <psName name="Omacron"/> - <psName name="omacron"/> - <psName name="Obreve"/> - <psName name="obreve"/> - <psName name="Ohungarumlaut"/> - <psName name="ohungarumlaut"/> - <psName name="Racute"/> - <psName name="racute"/> - <psName name="Rcommaaccent"/> - <psName name="rcommaaccent"/> - <psName name="Rcaron"/> - <psName name="rcaron"/> - <psName name="Sacute"/> - <psName name="sacute"/> - <psName name="Scircumflex"/> - <psName name="scircumflex"/> - <psName name="Tcommaaccent"/> - <psName name="tcommaaccent"/> - <psName name="Tcaron"/> - <psName name="tcaron"/> - <psName name="Tbar"/> - <psName name="tbar"/> - <psName name="Utilde"/> - <psName name="utilde"/> - <psName name="Umacron"/> - <psName name="umacron"/> - <psName name="Ubreve"/> - <psName name="ubreve"/> - <psName name="Uring"/> - <psName name="uring"/> - <psName name="Uhungarumlaut"/> - <psName name="uhungarumlaut"/> - <psName name="Uogonek"/> - <psName name="uogonek"/> - <psName name="Wcircumflex"/> - <psName name="wcircumflex"/> - <psName name="Ycircumflex"/> - <psName name="ycircumflex"/> - <psName name="Zacute"/> - <psName name="zacute"/> - <psName name="Zdotaccent"/> - <psName name="zdotaccent"/> - <psName name="longs"/> - <psName name="Scommaaccent"/> - <psName name="scommaaccent"/> - <psName name="Tcommabelow"/> - <psName name="tcommabelow"/> - <psName name="Unterkomma"/> - <psName name="semicolon"/> - <psName name="anoteleia"/> - <psName name="hyphen"/> - <psName name="nbhyphen"/> - <psName name="figuredash"/> - <psName name="afii00208"/> - <psName name="quotereversed"/> - <psName name="radicalex"/> - <psName name="estimated"/> - <psName name="dotmath"/> - <psName name="fi"/> - <psName name="fl"/> - <psName name="foursuperiour"/> - <psName name="onesuperiour"/> - <psName name="twosuperiour"/> - <psName name="threesuperiour"/> - <psName name="foursuperiour"/> - <psName name="dotlessj"/> - </extraNames> - </post> - - <gasp> - <gaspRange rangeMaxPPEM="8" rangeGaspBehavior="2"/> - <gaspRange rangeMaxPPEM="16" rangeGaspBehavior="1"/> - <gaspRange rangeMaxPPEM="65535" rangeGaspBehavior="3"/> - </gasp> - - <vhea> - <tableVersion value="1.0"/> - <ascent value="2033"/> - <descent value="432"/> - <lineGap value="0"/> - <advanceHeightMax value="2465"/> - <minTopSideBearing value="0"/> - <minBottomSideBearing value="0"/> - <yMaxExtent value="2465"/> - <caretSlopeRise value="0"/> - <caretSlopeRun value="1"/> - <reserved0 value="0"/> - <reserved1 value="0"/> - <reserved2 value="0"/> - <reserved3 value="0"/> - <reserved4 value="0"/> - <metricDataFormat value="0"/> - <numberOfVMetrics value="395"/> - </vhea> - - <vmtx> - <mtx name=".notdef" height="2465" tsb="553"/> - <mtx name=".notdef#1" height="0" tsb="0"/> - <mtx name=".notdef#10" height="2465" tsb="0"/> - <mtx name=".notdef#11" height="2465" tsb="0"/> - <mtx name=".notdef#12" height="2465" tsb="0"/> - <mtx name=".notdef#13" height="2465" tsb="0"/> - <mtx name=".notdef#14" height="2465" tsb="0"/> - <mtx name=".notdef#15" height="2465" tsb="0"/> - <mtx name=".notdef#16" height="1229" tsb="0"/> - <mtx name=".notdef#17" height="2465" tsb="0"/> - <mtx name=".notdef#18" height="2465" tsb="0"/> - <mtx name=".notdef#2" height="2465" tsb="0"/> - <mtx name=".notdef#3" height="2465" tsb="0"/> - <mtx name=".notdef#4" height="2465" tsb="0"/> - <mtx name=".notdef#5" height="2465" tsb="0"/> - <mtx name=".notdef#6" height="2465" tsb="0"/> - <mtx name=".notdef#7" height="2465" tsb="0"/> - <mtx name=".notdef#8" height="2465" tsb="0"/> - <mtx name=".notdef#9" height="2465" tsb="0"/> - <mtx name="A" height="2465" tsb="553"/> - <mtx name="AE" height="2465" tsb="553"/> - <mtx name="Aacute" height="2465" tsb="108"/> - <mtx name="Abreve" height="2465" tsb="108"/> - <mtx name="Acircumflex" height="2465" tsb="108"/> - <mtx name="Adieresis" height="2465" tsb="232"/> - <mtx name="Agrave" height="2465" tsb="108"/> - <mtx name="Amacron" height="2465" tsb="305"/> - <mtx name="Aogonek" height="2465" tsb="553"/> - <mtx name="Aring" height="2465" tsb="98"/> - <mtx name="Atilde" height="2465" tsb="194"/> - <mtx name="B" height="2465" tsb="553"/> - <mtx name="C" height="2465" tsb="516"/> - <mtx name="Cacute" height="2465" tsb="108"/> - <mtx name="Ccaron" height="2465" tsb="108"/> - <mtx name="Ccedilla" height="2465" tsb="516"/> - <mtx name="Ccircumflex" height="2465" tsb="108"/> - <mtx name="Cdotaccent" height="2465" tsb="232"/> - <mtx name="D" height="2465" tsb="553"/> - <mtx name="Dcaron" height="2465" tsb="108"/> - <mtx name="Dcroat" height="2465" tsb="553"/> - <mtx name="E" height="2465" tsb="553"/> - <mtx name="Eacute" height="2465" tsb="108"/> - <mtx name="Ebreve" height="2465" tsb="108"/> - <mtx name="Ecaron" height="2465" tsb="108"/> - <mtx name="Ecircumflex" height="2465" tsb="108"/> - <mtx name="Edieresis" height="2465" tsb="232"/> - <mtx name="Edotaccent" height="2465" tsb="232"/> - <mtx name="Egrave" height="2465" tsb="108"/> - <mtx name="Emacron" height="2465" tsb="305"/> - <mtx name="Eng" height="2465" tsb="553"/> - <mtx name="Eogonek" height="2465" tsb="553"/> - <mtx name="Eth" height="2465" tsb="553"/> - <mtx name="Euro" height="2465" tsb="516"/> - <mtx name="Euro#1" height="2465" tsb="516"/> - <mtx name="F" height="2465" tsb="553"/> - <mtx name="G" height="2465" tsb="515"/> - <mtx name="Gbreve" height="2465" tsb="108"/> - <mtx name="Gcircumflex" height="2465" tsb="108"/> - <mtx name="Gcommaaccent" height="2465" tsb="515"/> - <mtx name="Gdotaccent" height="2465" tsb="232"/> - <mtx name="H" height="2465" tsb="553"/> - <mtx name="Hbar" height="2465" tsb="553"/> - <mtx name="Hcircumflex" height="2465" tsb="108"/> - <mtx name="I" height="2465" tsb="553"/> - <mtx name="IJ" height="2465" tsb="553"/> - <mtx name="Iacute" height="2465" tsb="108"/> - <mtx name="Ibreve" height="2465" tsb="108"/> - <mtx name="Icircumflex" height="2465" tsb="108"/> - <mtx name="Idieresis" height="2465" tsb="232"/> - <mtx name="Idotaccent" height="2465" tsb="232"/> - <mtx name="Igrave" height="2465" tsb="108"/> - <mtx name="Imacron" height="2465" tsb="305"/> - <mtx name="Iogonek" height="2465" tsb="553"/> - <mtx name="Itilde" height="2465" tsb="194"/> - <mtx name="J" height="2465" tsb="553"/> - <mtx name="Jcircumflex" height="2465" tsb="108"/> - <mtx name="K" height="2465" tsb="553"/> - <mtx name="Kcommaaccent" height="2465" tsb="553"/> - <mtx name="L" height="2465" tsb="553"/> - <mtx name="Lacute" height="2465" tsb="108"/> - <mtx name="Lcaron" height="2465" tsb="553"/> - <mtx name="Lcommaaccent" height="2465" tsb="553"/> - <mtx name="Ldot" height="2465" tsb="553"/> - <mtx name="Lslash" height="2465" tsb="553"/> - <mtx name="M" height="2465" tsb="553"/> - <mtx name="N" height="2465" tsb="553"/> - <mtx name="Nacute" height="2465" tsb="108"/> - <mtx name="Ncaron" height="2465" tsb="108"/> - <mtx name="Ncommaaccent" height="2465" tsb="553"/> - <mtx name="Ntilde" height="2465" tsb="194"/> - <mtx name="O" height="2465" tsb="516"/> - <mtx name="OE" height="2465" tsb="515"/> - <mtx name="Oacute" height="2465" tsb="108"/> - <mtx name="Obreve" height="2465" tsb="108"/> - <mtx name="Ocircumflex" height="2465" tsb="108"/> - <mtx name="Odieresis" height="2465" tsb="232"/> - <mtx name="Ograve" height="2465" tsb="108"/> - <mtx name="Ohungarumlaut" height="2465" tsb="108"/> - <mtx name="Omacron" height="2465" tsb="305"/> - <mtx name="Oslash" height="2465" tsb="516"/> - <mtx name="Otilde" height="2465" tsb="194"/> - <mtx name="P" height="2465" tsb="553"/> - <mtx name="Q" height="2465" tsb="516"/> - <mtx name="R" height="2465" tsb="553"/> - <mtx name="Racute" height="2465" tsb="108"/> - <mtx name="Rcaron" height="2465" tsb="108"/> - <mtx name="Rcommaaccent" height="2465" tsb="553"/> - <mtx name="S" height="2465" tsb="516"/> - <mtx name="Sacute" height="2465" tsb="108"/> - <mtx name="Scaron" height="2465" tsb="108"/> - <mtx name="Scedilla" height="2465" tsb="516"/> - <mtx name="Scircumflex" height="2465" tsb="108"/> - <mtx name="Scommaaccent" height="2465" tsb="516"/> - <mtx name="T" height="2465" tsb="553"/> - <mtx name="Tbar" height="2465" tsb="553"/> - <mtx name="Tcaron" height="2465" tsb="108"/> - <mtx name="Tcommaaccent" height="2465" tsb="553"/> - <mtx name="Tcommabelow" height="2465" tsb="553"/> - <mtx name="Thorn" height="2465" tsb="553"/> - <mtx name="U" height="2465" tsb="553"/> - <mtx name="Uacute" height="2465" tsb="108"/> - <mtx name="Ubreve" height="2465" tsb="108"/> - <mtx name="Ucircumflex" height="2465" tsb="108"/> - <mtx name="Udieresis" height="2465" tsb="232"/> - <mtx name="Ugrave" height="2465" tsb="108"/> - <mtx name="Uhungarumlaut" height="2465" tsb="108"/> - <mtx name="Umacron" height="2465" tsb="305"/> - <mtx name="Unterkomma" height="2465" tsb="2144"/> - <mtx name="Uogonek" height="2465" tsb="553"/> - <mtx name="Uring" height="2465" tsb="0"/> - <mtx name="Utilde" height="2465" tsb="194"/> - <mtx name="V" height="2465" tsb="553"/> - <mtx name="W" height="2465" tsb="553"/> - <mtx name="Wcircumflex" height="2465" tsb="108"/> - <mtx name="X" height="2465" tsb="553"/> - <mtx name="Y" height="2465" tsb="553"/> - <mtx name="Yacute" height="2465" tsb="108"/> - <mtx name="Ycircumflex" height="2465" tsb="108"/> - <mtx name="Ydieresis" height="2465" tsb="232"/> - <mtx name="Z" height="2465" tsb="553"/> - <mtx name="Zacute" height="2465" tsb="108"/> - <mtx name="Zcaron" height="2465" tsb="108"/> - <mtx name="Zdotaccent" height="2465" tsb="232"/> - <mtx name="a" height="2465" tsb="922"/> - <mtx name="aacute" height="2465" tsb="429"/> - <mtx name="abreve" height="2465" tsb="454"/> - <mtx name="acircumflex" height="2465" tsb="429"/> - <mtx name="acute" height="2465" tsb="429"/> - <mtx name="adieresis" height="2465" tsb="553"/> - <mtx name="ae" height="2465" tsb="923"/> - <mtx name="afii00208" height="2465" tsb="1367"/> - <mtx name="agrave" height="2465" tsb="429"/> - <mtx name="amacron" height="2465" tsb="626"/> - <mtx name="ampersand" height="2465" tsb="515"/> - <mtx name="anoteleia" height="2465" tsb="1367"/> - <mtx name="aogonek" height="2465" tsb="922"/> - <mtx name="aring" height="2465" tsb="296"/> - <mtx name="asciicircum" height="2465" tsb="553"/> - <mtx name="asciitilde" height="2465" tsb="1261"/> - <mtx name="asterisk" height="2465" tsb="553"/> - <mtx name="at" height="2465" tsb="516"/> - <mtx name="atilde" height="2465" tsb="515"/> - <mtx name="b" height="2465" tsb="454"/> - <mtx name="backslash" height="2465" tsb="454"/> - <mtx name="bar" height="2465" tsb="454"/> - <mtx name="braceleft" height="2465" tsb="454"/> - <mtx name="braceright" height="2465" tsb="454"/> - <mtx name="bracketleft" height="2465" tsb="454"/> - <mtx name="bracketright" height="2465" tsb="454"/> - <mtx name="breve" height="2465" tsb="454"/> - <mtx name="brokenbar" height="2465" tsb="454"/> - <mtx name="bullet" height="2465" tsb="923"/> - <mtx name="c" height="2465" tsb="923"/> - <mtx name="cacute" height="2465" tsb="429"/> - <mtx name="caron" height="2465" tsb="429"/> - <mtx name="ccaron" height="2465" tsb="429"/> - <mtx name="ccedilla" height="2465" tsb="923"/> - <mtx name="ccircumflex" height="2465" tsb="429"/> - <mtx name="cdotaccent" height="2465" tsb="553"/> - <mtx name="cedilla" height="2465" tsb="2033"/> - <mtx name="cent" height="2465" tsb="553"/> - <mtx name="circumflex" height="2465" tsb="429"/> - <mtx name="colon" height="2465" tsb="947"/> - <mtx name="comma" height="2465" tsb="1737"/> - <mtx name="copyright" height="2465" tsb="516"/> - <mtx name="currency" height="2465" tsb="833"/> - <mtx name="d" height="2465" tsb="454"/> - <mtx name="dagger" height="2465" tsb="553"/> - <mtx name="daggerdbl" height="2465" tsb="553"/> - <mtx name="dcaron" height="2465" tsb="454"/> - <mtx name="dcroat" height="2465" tsb="454"/> - <mtx name="degree" height="2465" tsb="516"/> - <mtx name="dieresis" height="2465" tsb="553"/> - <mtx name="divide" height="2465" tsb="799"/> - <mtx name="dollar" height="2465" tsb="429"/> - <mtx name="dotaccent" height="2465" tsb="553"/> - <mtx name="dotlessi" height="2465" tsb="947"/> - <mtx name="dotlessj" height="2465" tsb="947"/> - <mtx name="dotmath" height="2465" tsb="1367"/> - <mtx name="e" height="2465" tsb="923"/> - <mtx name="eacute" height="2465" tsb="429"/> - <mtx name="ebreve" height="2465" tsb="454"/> - <mtx name="ecaron" height="2465" tsb="429"/> - <mtx name="ecircumflex" height="2465" tsb="429"/> - <mtx name="edieresis" height="2465" tsb="553"/> - <mtx name="edotaccent" height="2465" tsb="553"/> - <mtx name="egrave" height="2465" tsb="429"/> - <mtx name="eight" height="2465" tsb="516"/> - <mtx name="ellipsis" height="2465" tsb="1786"/> - <mtx name="emacron" height="2465" tsb="626"/> - <mtx name="emdash" height="2465" tsb="1367"/> - <mtx name="endash" height="2465" tsb="1342"/> - <mtx name="eng" height="2465" tsb="923"/> - <mtx name="eogonek" height="2465" tsb="923"/> - <mtx name="equal" height="2465" tsb="1145"/> - <mtx name="estimated" height="2465" tsb="923"/> - <mtx name="eth" height="2465" tsb="419"/> - <mtx name="exclam" height="2465" tsb="553"/> - <mtx name="exclamdown" height="2465" tsb="947"/> - <mtx name="f" height="2465" tsb="429"/> - <mtx name="fi" height="2465" tsb="429"/> - <mtx name="fi#1" height="2465" tsb="429"/> - <mtx name="figuredash" height="2465" tsb="1342"/> - <mtx name="five" height="2465" tsb="553"/> - <mtx name="fl" height="2465" tsb="429"/> - <mtx name="fl#1" height="2465" tsb="429"/> - <mtx name="florin" height="2465" tsb="516"/> - <mtx name="four" height="2465" tsb="553"/> - <mtx name="foursuperiour" height="2465" tsb="516"/> - <mtx name="foursuperiour#1" height="2465" tsb="516"/> - <mtx name="fraction" height="2465" tsb="516"/> - <mtx name="fraction#1" height="2465" tsb="516"/> - <mtx name="g" height="2465" tsb="922"/> - <mtx name="gbreve" height="2465" tsb="454"/> - <mtx name="gcircumflex" height="2465" tsb="429"/> - <mtx name="gcommaaccent" height="2465" tsb="296"/> - <mtx name="gdotaccent" height="2465" tsb="553"/> - <mtx name="germandbls" height="2465" tsb="429"/> - <mtx name="grave" height="2465" tsb="429"/> - <mtx name="greater" height="2465" tsb="799"/> - <mtx name="guillemotleft" height="2465" tsb="1046"/> - <mtx name="guillemotright" height="2465" tsb="1046"/> - <mtx name="guilsinglleft" height="2465" tsb="1046"/> - <mtx name="guilsinglright" height="2465" tsb="1046"/> - <mtx name="h" height="2465" tsb="454"/> - <mtx name="hbar" height="2465" tsb="454"/> - <mtx name="hcircumflex" height="2465" tsb="34"/> - <mtx name="hungarumlaut" height="2465" tsb="429"/> - <mtx name="hyphen" height="2465" tsb="1342"/> - <mtx name="hyphen#1" height="2465" tsb="1342"/> - <mtx name="i" height="2465" tsb="454"/> - <mtx name="iacute" height="2465" tsb="429"/> - <mtx name="ibreve" height="2465" tsb="454"/> - <mtx name="icircumflex" height="2465" tsb="429"/> - <mtx name="idieresis" height="2465" tsb="553"/> - <mtx name="igrave" height="2465" tsb="429"/> - <mtx name="ij" height="2465" tsb="454"/> - <mtx name="imacron" height="2465" tsb="626"/> - <mtx name="iogonek" height="2465" tsb="454"/> - <mtx name="itilde" height="2465" tsb="515"/> - <mtx name="j" height="2465" tsb="454"/> - <mtx name="jcircumflex" height="2465" tsb="429"/> - <mtx name="k" height="2465" tsb="454"/> - <mtx name="kcommaaccent" height="2465" tsb="454"/> - <mtx name="kgreenlandic" height="2465" tsb="947"/> - <mtx name="l" height="2465" tsb="454"/> - <mtx name="lacute" height="2465" tsb="34"/> - <mtx name="lcaron" height="2465" tsb="454"/> - <mtx name="lcommaaccent" height="2465" tsb="454"/> - <mtx name="ldot" height="2465" tsb="454"/> - <mtx name="less" height="2465" tsb="799"/> - <mtx name="logicalnot" height="2465" tsb="1342"/> - <mtx name="longs" height="2465" tsb="429"/> - <mtx name="lslash" height="2465" tsb="454"/> - <mtx name="m" height="2465" tsb="923"/> - <mtx name="macron" height="2465" tsb="626"/> - <mtx name="macron#1" height="2465" tsb="429"/> - <mtx name="minus" height="2465" tsb="1342"/> - <mtx name="mu" height="2465" tsb="947"/> - <mtx name="multiply" height="2465" tsb="1001"/> - <mtx name="n" height="2465" tsb="923"/> - <mtx name="nacute" height="2465" tsb="429"/> - <mtx name="napostrophe" height="2465" tsb="454"/> - <mtx name="nbhyphen" height="2465" tsb="1342"/> - <mtx name="ncaron" height="2465" tsb="429"/> - <mtx name="ncommaaccent" height="2465" tsb="923"/> - <mtx name="nine" height="2465" tsb="516"/> - <mtx name="nonbreakingspace" height="2465" tsb="2033"/> - <mtx name="ntilde" height="2465" tsb="515"/> - <mtx name="numbersign" height="2465" tsb="553"/> - <mtx name="o" height="2465" tsb="923"/> - <mtx name="oacute" height="2465" tsb="429"/> - <mtx name="obreve" height="2465" tsb="454"/> - <mtx name="ocircumflex" height="2465" tsb="429"/> - <mtx name="odieresis" height="2465" tsb="553"/> - <mtx name="oe" height="2465" tsb="922"/> - <mtx name="ogonek" height="2465" tsb="2033"/> - <mtx name="ograve" height="2465" tsb="429"/> - <mtx name="ohungarumlaut" height="2465" tsb="429"/> - <mtx name="omacron" height="2465" tsb="626"/> - <mtx name="one" height="2465" tsb="516"/> - <mtx name="onehalf" height="2465" tsb="516"/> - <mtx name="onequarter" height="2465" tsb="516"/> - <mtx name="onesuperior" height="2465" tsb="516"/> - <mtx name="onesuperiour" height="2465" tsb="516"/> - <mtx name="ordfeminine" height="2465" tsb="516"/> - <mtx name="ordmasculine" height="2465" tsb="516"/> - <mtx name="oslash" height="2465" tsb="923"/> - <mtx name="otilde" height="2465" tsb="515"/> - <mtx name="p" height="2465" tsb="923"/> - <mtx name="paragraph" height="2465" tsb="540"/> - <mtx name="parenleft" height="2465" tsb="454"/> - <mtx name="parenright" height="2465" tsb="454"/> - <mtx name="percent" height="2465" tsb="516"/> - <mtx name="period" height="2465" tsb="1737"/> - <mtx name="periodcentered" height="2465" tsb="1367"/> - <mtx name="periodcentered#1" height="2465" tsb="1367"/> - <mtx name="perthousand" height="2465" tsb="553"/> - <mtx name="plus" height="2465" tsb="900"/> - <mtx name="plusminus" height="2465" tsb="799"/> - <mtx name="q" height="2465" tsb="923"/> - <mtx name="question" height="2465" tsb="516"/> - <mtx name="questiondown" height="2465" tsb="947"/> - <mtx name="quotedbl" height="2465" tsb="454"/> - <mtx name="quotedblbase" height="2465" tsb="1786"/> - <mtx name="quotedblleft" height="2465" tsb="454"/> - <mtx name="quotedblright" height="2465" tsb="454"/> - <mtx name="quoteleft" height="2465" tsb="454"/> - <mtx name="quotereversed" height="2465" tsb="2033"/> - <mtx name="quoteright" height="2465" tsb="454"/> - <mtx name="quotesinglbase" height="2465" tsb="1737"/> - <mtx name="quotesingle" height="2465" tsb="454"/> - <mtx name="r" height="2465" tsb="923"/> - <mtx name="racute" height="2465" tsb="429"/> - <mtx name="radicalex" height="2465" tsb="429"/> - <mtx name="rcaron" height="2465" tsb="429"/> - <mtx name="rcommaaccent" height="2465" tsb="923"/> - <mtx name="registered" height="2465" tsb="516"/> - <mtx name="ring" height="2465" tsb="296"/> - <mtx name="s" height="2465" tsb="922"/> - <mtx name="sacute" height="2465" tsb="429"/> - <mtx name="scaron" height="2465" tsb="429"/> - <mtx name="scedilla" height="2465" tsb="922"/> - <mtx name="scircumflex" height="2465" tsb="429"/> - <mtx name="scommaaccent" height="2465" tsb="922"/> - <mtx name="section" height="2465" tsb="515"/> - <mtx name="semicolon" height="2465" tsb="947"/> - <mtx name="semicolon#1" height="2465" tsb="947"/> - <mtx name="seven" height="2465" tsb="553"/> - <mtx name="sfthyphen" height="2465" tsb="1342"/> - <mtx name="six" height="2465" tsb="516"/> - <mtx name="slash" height="2465" tsb="454"/> - <mtx name="space" height="2465" tsb="2033"/> - <mtx name="sterling" height="2465" tsb="516"/> - <mtx name="t" height="2465" tsb="701"/> - <mtx name="tbar" height="2465" tsb="701"/> - <mtx name="tcaron" height="2465" tsb="345"/> - <mtx name="tcommaaccent" height="2465" tsb="701"/> - <mtx name="tcommabelow" height="2465" tsb="701"/> - <mtx name="thorn" height="2465" tsb="454"/> - <mtx name="three" height="2465" tsb="516"/> - <mtx name="threequarters" height="2465" tsb="515"/> - <mtx name="threesuperior" height="2465" tsb="515"/> - <mtx name="threesuperiour" height="2465" tsb="515"/> - <mtx name="tilde" height="2465" tsb="515"/> - <mtx name="trademark" height="2465" tsb="553"/> - <mtx name="two" height="2465" tsb="516"/> - <mtx name="twosuperior" height="2465" tsb="515"/> - <mtx name="twosuperiour" height="2465" tsb="516"/> - <mtx name="u" height="2465" tsb="947"/> - <mtx name="uacute" height="2465" tsb="429"/> - <mtx name="ubreve" height="2465" tsb="454"/> - <mtx name="ucircumflex" height="2465" tsb="429"/> - <mtx name="udieresis" height="2465" tsb="553"/> - <mtx name="ugrave" height="2465" tsb="429"/> - <mtx name="uhungarumlaut" height="2465" tsb="429"/> - <mtx name="umacron" height="2465" tsb="626"/> - <mtx name="underscore" height="2465" tsb="2033"/> - <mtx name="uogonek" height="2465" tsb="947"/> - <mtx name="uring" height="2465" tsb="296"/> - <mtx name="utilde" height="2465" tsb="515"/> - <mtx name="v" height="2465" tsb="947"/> - <mtx name="w" height="2465" tsb="947"/> - <mtx name="wcircumflex" height="2465" tsb="429"/> - <mtx name="x" height="2465" tsb="947"/> - <mtx name="y" height="2465" tsb="947"/> - <mtx name="yacute" height="2465" tsb="429"/> - <mtx name="ycircumflex" height="2465" tsb="429"/> - <mtx name="ydieresis" height="2465" tsb="553"/> - <mtx name="yen" height="2465" tsb="553"/> - <mtx name="z" height="2465" tsb="947"/> - <mtx name="zacute" height="2465" tsb="429"/> - <mtx name="zcaron" height="2465" tsb="429"/> - <mtx name="zdotaccent" height="2465" tsb="553"/> - <mtx name="zero" height="2465" tsb="516"/> - </vmtx> - -</ttFont> diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luxirr.ttf b/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luxirr.ttf Binary files differdeleted file mode 100644 index daa8ad8cc..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luxirr.ttf +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luxirr.ttx b/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luxirr.ttx deleted file mode 100644 index 27191d0a7..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luxirr.ttx +++ /dev/null @@ -1,30264 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="2.4"> - - <GlyphOrder> - <!-- The 'id' attribute is only for humans; it is ignored when parsed. --> - <GlyphID id="0" name=".notdef"/> - <GlyphID id="1" name=".notdef#1"/> - <GlyphID id="2" name=".notdef#2"/> - <GlyphID id="3" name="space"/> - <GlyphID id="4" name="exclam"/> - <GlyphID id="5" name="quotedbl"/> - <GlyphID id="6" name="numbersign"/> - <GlyphID id="7" name="dollar"/> - <GlyphID id="8" name="percent"/> - <GlyphID id="9" name="ampersand"/> - <GlyphID id="10" name="quotesingle"/> - <GlyphID id="11" name="parenleft"/> - <GlyphID id="12" name="parenright"/> - <GlyphID id="13" name="asterisk"/> - <GlyphID id="14" name="plus"/> - <GlyphID id="15" name="comma"/> - <GlyphID id="16" name="hyphen"/> - <GlyphID id="17" name="period"/> - <GlyphID id="18" name="slash"/> - <GlyphID id="19" name="zero"/> - <GlyphID id="20" name="one"/> - <GlyphID id="21" name="two"/> - <GlyphID id="22" name="three"/> - <GlyphID id="23" name="four"/> - <GlyphID id="24" name="five"/> - <GlyphID id="25" name="six"/> - <GlyphID id="26" name="seven"/> - <GlyphID id="27" name="eight"/> - <GlyphID id="28" name="nine"/> - <GlyphID id="29" name="colon"/> - <GlyphID id="30" name="semicolon"/> - <GlyphID id="31" name="less"/> - <GlyphID id="32" name="equal"/> - <GlyphID id="33" name="greater"/> - <GlyphID id="34" name="question"/> - <GlyphID id="35" name="at"/> - <GlyphID id="36" name="A"/> - <GlyphID id="37" name="B"/> - <GlyphID id="38" name="C"/> - <GlyphID id="39" name="D"/> - <GlyphID id="40" name="E"/> - <GlyphID id="41" name="F"/> - <GlyphID id="42" name="G"/> - <GlyphID id="43" name="H"/> - <GlyphID id="44" name="I"/> - <GlyphID id="45" name="J"/> - <GlyphID id="46" name="K"/> - <GlyphID id="47" name="L"/> - <GlyphID id="48" name="M"/> - <GlyphID id="49" name="N"/> - <GlyphID id="50" name="O"/> - <GlyphID id="51" name="P"/> - <GlyphID id="52" name="Q"/> - <GlyphID id="53" name="R"/> - <GlyphID id="54" name="S"/> - <GlyphID id="55" name="T"/> - <GlyphID id="56" name="U"/> - <GlyphID id="57" name="V"/> - <GlyphID id="58" name="W"/> - <GlyphID id="59" name="X"/> - <GlyphID id="60" name="Y"/> - <GlyphID id="61" name="Z"/> - <GlyphID id="62" name="bracketleft"/> - <GlyphID id="63" name="backslash"/> - <GlyphID id="64" name="bracketright"/> - <GlyphID id="65" name="asciicircum"/> - <GlyphID id="66" name="underscore"/> - <GlyphID id="67" name="grave"/> - <GlyphID id="68" name="a"/> - <GlyphID id="69" name="b"/> - <GlyphID id="70" name="c"/> - <GlyphID id="71" name="d"/> - <GlyphID id="72" name="e"/> - <GlyphID id="73" name="f"/> - <GlyphID id="74" name="g"/> - <GlyphID id="75" name="h"/> - <GlyphID id="76" name="i"/> - <GlyphID id="77" name="j"/> - <GlyphID id="78" name="k"/> - <GlyphID id="79" name="l"/> - <GlyphID id="80" name="m"/> - <GlyphID id="81" name="n"/> - <GlyphID id="82" name="o"/> - <GlyphID id="83" name="p"/> - <GlyphID id="84" name="q"/> - <GlyphID id="85" name="r"/> - <GlyphID id="86" name="s"/> - <GlyphID id="87" name="t"/> - <GlyphID id="88" name="u"/> - <GlyphID id="89" name="v"/> - <GlyphID id="90" name="w"/> - <GlyphID id="91" name="x"/> - <GlyphID id="92" name="y"/> - <GlyphID id="93" name="z"/> - <GlyphID id="94" name="braceleft"/> - <GlyphID id="95" name="bar"/> - <GlyphID id="96" name="braceright"/> - <GlyphID id="97" name="asciitilde"/> - <GlyphID id="98" name="Adieresis"/> - <GlyphID id="99" name="Aring"/> - <GlyphID id="100" name="Ccedilla"/> - <GlyphID id="101" name="Eacute"/> - <GlyphID id="102" name="Ntilde"/> - <GlyphID id="103" name="Odieresis"/> - <GlyphID id="104" name="Udieresis"/> - <GlyphID id="105" name="aacute"/> - <GlyphID id="106" name="agrave"/> - <GlyphID id="107" name="acircumflex"/> - <GlyphID id="108" name="adieresis"/> - <GlyphID id="109" name="atilde"/> - <GlyphID id="110" name="aring"/> - <GlyphID id="111" name="ccedilla"/> - <GlyphID id="112" name="eacute"/> - <GlyphID id="113" name="egrave"/> - <GlyphID id="114" name="ecircumflex"/> - <GlyphID id="115" name="edieresis"/> - <GlyphID id="116" name="iacute"/> - <GlyphID id="117" name="igrave"/> - <GlyphID id="118" name="icircumflex"/> - <GlyphID id="119" name="idieresis"/> - <GlyphID id="120" name="ntilde"/> - <GlyphID id="121" name="oacute"/> - <GlyphID id="122" name="ograve"/> - <GlyphID id="123" name="ocircumflex"/> - <GlyphID id="124" name="odieresis"/> - <GlyphID id="125" name="otilde"/> - <GlyphID id="126" name="uacute"/> - <GlyphID id="127" name="ugrave"/> - <GlyphID id="128" name="ucircumflex"/> - <GlyphID id="129" name="udieresis"/> - <GlyphID id="130" name="dagger"/> - <GlyphID id="131" name="degree"/> - <GlyphID id="132" name="cent"/> - <GlyphID id="133" name="sterling"/> - <GlyphID id="134" name="section"/> - <GlyphID id="135" name="bullet"/> - <GlyphID id="136" name="paragraph"/> - <GlyphID id="137" name="germandbls"/> - <GlyphID id="138" name="registered"/> - <GlyphID id="139" name="copyright"/> - <GlyphID id="140" name="trademark"/> - <GlyphID id="141" name="acute"/> - <GlyphID id="142" name="dieresis"/> - <GlyphID id="143" name=".notdef#3"/> - <GlyphID id="144" name="AE"/> - <GlyphID id="145" name="Oslash"/> - <GlyphID id="146" name=".notdef#4"/> - <GlyphID id="147" name="plusminus"/> - <GlyphID id="148" name=".notdef#5"/> - <GlyphID id="149" name=".notdef#6"/> - <GlyphID id="150" name="yen"/> - <GlyphID id="151" name="mu"/> - <GlyphID id="152" name=".notdef#7"/> - <GlyphID id="153" name=".notdef#8"/> - <GlyphID id="154" name=".notdef#9"/> - <GlyphID id="155" name=".notdef#10"/> - <GlyphID id="156" name=".notdef#11"/> - <GlyphID id="157" name="ordfeminine"/> - <GlyphID id="158" name="ordmasculine"/> - <GlyphID id="159" name=".notdef#12"/> - <GlyphID id="160" name="ae"/> - <GlyphID id="161" name="oslash"/> - <GlyphID id="162" name="questiondown"/> - <GlyphID id="163" name="exclamdown"/> - <GlyphID id="164" name="logicalnot"/> - <GlyphID id="165" name=".notdef#13"/> - <GlyphID id="166" name="florin"/> - <GlyphID id="167" name=".notdef#14"/> - <GlyphID id="168" name=".notdef#15"/> - <GlyphID id="169" name="guillemotleft"/> - <GlyphID id="170" name="guillemotright"/> - <GlyphID id="171" name="ellipsis"/> - <GlyphID id="172" name=".notdef#16"/> - <GlyphID id="173" name="Agrave"/> - <GlyphID id="174" name="Atilde"/> - <GlyphID id="175" name="Otilde"/> - <GlyphID id="176" name="OE"/> - <GlyphID id="177" name="oe"/> - <GlyphID id="178" name="endash"/> - <GlyphID id="179" name="emdash"/> - <GlyphID id="180" name="quotedblleft"/> - <GlyphID id="181" name="quotedblright"/> - <GlyphID id="182" name="quoteleft"/> - <GlyphID id="183" name="quoteright"/> - <GlyphID id="184" name="divide"/> - <GlyphID id="185" name=".notdef#17"/> - <GlyphID id="186" name="ydieresis"/> - <GlyphID id="187" name="Ydieresis"/> - <GlyphID id="188" name="fraction"/> - <GlyphID id="189" name="currency"/> - <GlyphID id="190" name="guilsinglleft"/> - <GlyphID id="191" name="guilsinglright"/> - <GlyphID id="192" name="fi"/> - <GlyphID id="193" name="fl"/> - <GlyphID id="194" name="daggerdbl"/> - <GlyphID id="195" name="periodcentered"/> - <GlyphID id="196" name="quotesinglbase"/> - <GlyphID id="197" name="quotedblbase"/> - <GlyphID id="198" name="perthousand"/> - <GlyphID id="199" name="Acircumflex"/> - <GlyphID id="200" name="Ecircumflex"/> - <GlyphID id="201" name="Aacute"/> - <GlyphID id="202" name="Edieresis"/> - <GlyphID id="203" name="Egrave"/> - <GlyphID id="204" name="Iacute"/> - <GlyphID id="205" name="Icircumflex"/> - <GlyphID id="206" name="Idieresis"/> - <GlyphID id="207" name="Igrave"/> - <GlyphID id="208" name="Oacute"/> - <GlyphID id="209" name="Ocircumflex"/> - <GlyphID id="210" name="Euro"/> - <GlyphID id="211" name="Ograve"/> - <GlyphID id="212" name="Uacute"/> - <GlyphID id="213" name="Ucircumflex"/> - <GlyphID id="214" name="Ugrave"/> - <GlyphID id="215" name="dotlessi"/> - <GlyphID id="216" name="circumflex"/> - <GlyphID id="217" name="tilde"/> - <GlyphID id="218" name="macron"/> - <GlyphID id="219" name="breve"/> - <GlyphID id="220" name="dotaccent"/> - <GlyphID id="221" name="ring"/> - <GlyphID id="222" name="cedilla"/> - <GlyphID id="223" name="hungarumlaut"/> - <GlyphID id="224" name="ogonek"/> - <GlyphID id="225" name="caron"/> - <GlyphID id="226" name="Euro#1"/> - <GlyphID id="227" name="nonbreakingspace"/> - <GlyphID id="228" name="brokenbar"/> - <GlyphID id="229" name="sfthyphen"/> - <GlyphID id="230" name="macron#1"/> - <GlyphID id="231" name="twosuperior"/> - <GlyphID id="232" name="threesuperior"/> - <GlyphID id="233" name="periodcentered#1"/> - <GlyphID id="234" name="onesuperior"/> - <GlyphID id="235" name="onequarter"/> - <GlyphID id="236" name="onehalf"/> - <GlyphID id="237" name="threequarters"/> - <GlyphID id="238" name="Eth"/> - <GlyphID id="239" name="multiply"/> - <GlyphID id="240" name="Yacute"/> - <GlyphID id="241" name="Thorn"/> - <GlyphID id="242" name="eth"/> - <GlyphID id="243" name="yacute"/> - <GlyphID id="244" name="thorn"/> - <GlyphID id="245" name="Amacron"/> - <GlyphID id="246" name="amacron"/> - <GlyphID id="247" name="Abreve"/> - <GlyphID id="248" name="abreve"/> - <GlyphID id="249" name="Aogonek"/> - <GlyphID id="250" name="aogonek"/> - <GlyphID id="251" name="Cacute"/> - <GlyphID id="252" name="cacute"/> - <GlyphID id="253" name="Ccircumflex"/> - <GlyphID id="254" name="ccircumflex"/> - <GlyphID id="255" name="Cdotaccent"/> - <GlyphID id="256" name="cdotaccent"/> - <GlyphID id="257" name="Ccaron"/> - <GlyphID id="258" name="ccaron"/> - <GlyphID id="259" name="Dcaron"/> - <GlyphID id="260" name="dcaron"/> - <GlyphID id="261" name="Dcroat"/> - <GlyphID id="262" name="dcroat"/> - <GlyphID id="263" name="Emacron"/> - <GlyphID id="264" name="emacron"/> - <GlyphID id="265" name="Ebreve"/> - <GlyphID id="266" name="ebreve"/> - <GlyphID id="267" name="Edotaccent"/> - <GlyphID id="268" name="edotaccent"/> - <GlyphID id="269" name="Eogonek"/> - <GlyphID id="270" name="eogonek"/> - <GlyphID id="271" name="Ecaron"/> - <GlyphID id="272" name="ecaron"/> - <GlyphID id="273" name="Gcircumflex"/> - <GlyphID id="274" name="gcircumflex"/> - <GlyphID id="275" name="Gbreve"/> - <GlyphID id="276" name="gbreve"/> - <GlyphID id="277" name="Gdotaccent"/> - <GlyphID id="278" name="gdotaccent"/> - <GlyphID id="279" name="Gcommaaccent"/> - <GlyphID id="280" name="gcommaaccent"/> - <GlyphID id="281" name="Hcircumflex"/> - <GlyphID id="282" name="hcircumflex"/> - <GlyphID id="283" name="Hbar"/> - <GlyphID id="284" name="hbar"/> - <GlyphID id="285" name="Itilde"/> - <GlyphID id="286" name="itilde"/> - <GlyphID id="287" name="Imacron"/> - <GlyphID id="288" name="imacron"/> - <GlyphID id="289" name="Ibreve"/> - <GlyphID id="290" name="ibreve"/> - <GlyphID id="291" name="Iogonek"/> - <GlyphID id="292" name="iogonek"/> - <GlyphID id="293" name="Idotaccent"/> - <GlyphID id="294" name="IJ"/> - <GlyphID id="295" name="ij"/> - <GlyphID id="296" name="Jcircumflex"/> - <GlyphID id="297" name="jcircumflex"/> - <GlyphID id="298" name="Kcommaaccent"/> - <GlyphID id="299" name="kcommaaccent"/> - <GlyphID id="300" name="kgreenlandic"/> - <GlyphID id="301" name="Lacute"/> - <GlyphID id="302" name="lacute"/> - <GlyphID id="303" name="Lcommaaccent"/> - <GlyphID id="304" name="lcommaaccent"/> - <GlyphID id="305" name="Lcaron"/> - <GlyphID id="306" name="lcaron"/> - <GlyphID id="307" name="Ldot"/> - <GlyphID id="308" name="ldot"/> - <GlyphID id="309" name="Lslash"/> - <GlyphID id="310" name="lslash"/> - <GlyphID id="311" name="Nacute"/> - <GlyphID id="312" name="nacute"/> - <GlyphID id="313" name="Ncommaaccent"/> - <GlyphID id="314" name="ncommaaccent"/> - <GlyphID id="315" name="Ncaron"/> - <GlyphID id="316" name="ncaron"/> - <GlyphID id="317" name="napostrophe"/> - <GlyphID id="318" name="Eng"/> - <GlyphID id="319" name="eng"/> - <GlyphID id="320" name="Omacron"/> - <GlyphID id="321" name="omacron"/> - <GlyphID id="322" name="Obreve"/> - <GlyphID id="323" name="obreve"/> - <GlyphID id="324" name="Ohungarumlaut"/> - <GlyphID id="325" name="ohungarumlaut"/> - <GlyphID id="326" name="Racute"/> - <GlyphID id="327" name="racute"/> - <GlyphID id="328" name="Rcommaaccent"/> - <GlyphID id="329" name="rcommaaccent"/> - <GlyphID id="330" name="Rcaron"/> - <GlyphID id="331" name="rcaron"/> - <GlyphID id="332" name="Sacute"/> - <GlyphID id="333" name="sacute"/> - <GlyphID id="334" name="Scircumflex"/> - <GlyphID id="335" name="scircumflex"/> - <GlyphID id="336" name="Scedilla"/> - <GlyphID id="337" name="scedilla"/> - <GlyphID id="338" name="Scaron"/> - <GlyphID id="339" name="scaron"/> - <GlyphID id="340" name="Tcommaaccent"/> - <GlyphID id="341" name="tcommaaccent"/> - <GlyphID id="342" name="Tcaron"/> - <GlyphID id="343" name="tcaron"/> - <GlyphID id="344" name="Tbar"/> - <GlyphID id="345" name="tbar"/> - <GlyphID id="346" name="Utilde"/> - <GlyphID id="347" name="utilde"/> - <GlyphID id="348" name="Umacron"/> - <GlyphID id="349" name="umacron"/> - <GlyphID id="350" name="Ubreve"/> - <GlyphID id="351" name="ubreve"/> - <GlyphID id="352" name="Uring"/> - <GlyphID id="353" name="uring"/> - <GlyphID id="354" name="Uhungarumlaut"/> - <GlyphID id="355" name="uhungarumlaut"/> - <GlyphID id="356" name="Uogonek"/> - <GlyphID id="357" name="uogonek"/> - <GlyphID id="358" name="Wcircumflex"/> - <GlyphID id="359" name="wcircumflex"/> - <GlyphID id="360" name="Ycircumflex"/> - <GlyphID id="361" name="ycircumflex"/> - <GlyphID id="362" name="Zacute"/> - <GlyphID id="363" name="zacute"/> - <GlyphID id="364" name="Zdotaccent"/> - <GlyphID id="365" name="zdotaccent"/> - <GlyphID id="366" name="Zcaron"/> - <GlyphID id="367" name="zcaron"/> - <GlyphID id="368" name="longs"/> - <GlyphID id="369" name="Scommaaccent"/> - <GlyphID id="370" name="scommaaccent"/> - <GlyphID id="371" name="Tcommabelow"/> - <GlyphID id="372" name="tcommabelow"/> - <GlyphID id="373" name="Unterkomma"/> - <GlyphID id="374" name="semicolon#1"/> - <GlyphID id="375" name="anoteleia"/> - <GlyphID id="376" name="hyphen#1"/> - <GlyphID id="377" name="nbhyphen"/> - <GlyphID id="378" name="figuredash"/> - <GlyphID id="379" name="afii00208"/> - <GlyphID id="380" name="quotereversed"/> - <GlyphID id="381" name="radicalex"/> - <GlyphID id="382" name="estimated"/> - <GlyphID id="383" name="minus"/> - <GlyphID id="384" name="fraction#1"/> - <GlyphID id="385" name="dotmath"/> - <GlyphID id="386" name="fi#1"/> - <GlyphID id="387" name="fl#1"/> - <GlyphID id="388" name="foursuperiour"/> - <GlyphID id="389" name="dotlessj"/> - <GlyphID id="390" name=".notdef#18"/> - </GlyphOrder> - - <head> - <!-- Most of this table will be recalculated by the compiler --> - <tableVersion value="1.0"/> - <fontRevision value="1.19999694824"/> - <checkSumAdjustment value="0xc0d96d6c"/> - <magicNumber value="0x5f0f3cf5"/> - <flags value="00000000 00001111"/> - <unitsPerEm value="2048"/> - <created value="Fri Oct 12 14:06:14 2001"/> - <modified value="Fri Oct 12 10:57:50 2001"/> - <xMin value="-416"/> - <yMin value="-432"/> - <xMax value="2014"/> - <yMax value="2033"/> - <macStyle value="00000000 00000000"/> - <lowestRecPPEM value="12"/> - <fontDirectionHint value="2"/> - <indexToLocFormat value="0"/> - <glyphDataFormat value="0"/> - </head> - - <hhea> - <tableVersion value="1.0"/> - <ascent value="2033"/> - <descent value="-432"/> - <lineGap value="0"/> - <advanceWidthMax value="2048"/> - <minLeftSideBearing value="-416"/> - <minRightSideBearing value="-417"/> - <xMaxExtent value="2014"/> - <caretSlopeRise value="1"/> - <caretSlopeRun value="0"/> - <caretOffset value="0"/> - <reserved0 value="0"/> - <reserved1 value="0"/> - <reserved2 value="0"/> - <reserved3 value="0"/> - <metricDataFormat value="0"/> - <numberOfHMetrics value="391"/> - </hhea> - - <maxp> - <!-- Most of this table will be recalculated by the compiler --> - <tableVersion value="0x10000"/> - <numGlyphs value="391"/> - <maxPoints value="90"/> - <maxContours value="7"/> - <maxCompositePoints value="86"/> - <maxCompositeContours value="4"/> - <maxZones value="2"/> - <maxTwilightPoints value="4"/> - <maxStorage value="0"/> - <maxFunctionDefs value="15"/> - <maxInstructionDefs value="0"/> - <maxStackElements value="2048"/> - <maxSizeOfInstructions value="204"/> - <maxComponentElements value="2"/> - <maxComponentDepth value="1"/> - </maxp> - - <OS_2> - <version value="2"/> - <xAvgCharWidth value="821"/> - <usWeightClass value="400"/> - <usWidthClass value="5"/> - <fsType value="00000000 00000000"/> - <ySubscriptXSize value="1434"/> - <ySubscriptYSize value="1331"/> - <ySubscriptXOffset value="0"/> - <ySubscriptYOffset value="283"/> - <ySuperscriptXSize value="1434"/> - <ySuperscriptYSize value="1331"/> - <ySuperscriptXOffset value="0"/> - <ySuperscriptYOffset value="977"/> - <yStrikeoutSize value="0"/> - <yStrikeoutPosition value="0"/> - <sFamilyClass value="5"/> - <panose> - <bFamilyType value="2"/> - <bSerifStyle value="2"/> - <bWeight value="6"/> - <bProportion value="3"/> - <bContrast value="7"/> - <bStrokeVariation value="0"/> - <bArmStyle value="0"/> - <bLetterForm value="0"/> - <bMidline value="0"/> - <bXHeight value="0"/> - </panose> - <ulUnicodeRange1 value="00000000 00000000 00000000 00000111"/> - <ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/> - <ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/> - <ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/> - <achVendID value="B&H "/> - <fsSelection value="00000000 01000000"/> - <fsFirstCharIndex value="32"/> - <fsLastCharIndex value="64258"/> - <sTypoAscender value="1604"/> - <sTypoDescender value="-420"/> - <sTypoLineGap value="167"/> - <usWinAscent value="1934"/> - <usWinDescent value="432"/> - <ulCodePageRange1 value="00000000 00000000 00000000 10010011"/> - <ulCodePageRange2 value="00000000 00000000 00000000 00000000"/> - <sxHeight value="0"/> - <sCapHeight value="0"/> - <usDefaultChar value="0"/> - <usBreakChar value="0"/> - <usMaxContex value="0"/> - </OS_2> - - <hmtx> - <mtx name=".notdef" width="512" lsb="51"/> - <mtx name=".notdef#1" width="0" lsb="0"/> - <mtx name=".notdef#10" width="512" lsb="0"/> - <mtx name=".notdef#11" width="512" lsb="0"/> - <mtx name=".notdef#12" width="512" lsb="0"/> - <mtx name=".notdef#13" width="512" lsb="0"/> - <mtx name=".notdef#14" width="512" lsb="0"/> - <mtx name=".notdef#15" width="512" lsb="0"/> - <mtx name=".notdef#16" width="1024" lsb="0"/> - <mtx name=".notdef#17" width="512" lsb="0"/> - <mtx name=".notdef#18" width="512" lsb="0"/> - <mtx name=".notdef#2" width="512" lsb="0"/> - <mtx name=".notdef#3" width="512" lsb="0"/> - <mtx name=".notdef#4" width="512" lsb="0"/> - <mtx name=".notdef#5" width="512" lsb="0"/> - <mtx name=".notdef#6" width="512" lsb="0"/> - <mtx name=".notdef#7" width="512" lsb="0"/> - <mtx name=".notdef#8" width="512" lsb="0"/> - <mtx name=".notdef#9" width="512" lsb="0"/> - <mtx name="A" width="1479" lsb="0"/> - <mtx name="AE" width="1821" lsb="0"/> - <mtx name="Aacute" width="1479" lsb="0"/> - <mtx name="Abreve" width="1479" lsb="0"/> - <mtx name="Acircumflex" width="1479" lsb="0"/> - <mtx name="Adieresis" width="1479" lsb="0"/> - <mtx name="Agrave" width="1479" lsb="0"/> - <mtx name="Amacron" width="1479" lsb="0"/> - <mtx name="Aogonek" width="1479" lsb="0"/> - <mtx name="Aring" width="1479" lsb="0"/> - <mtx name="Atilde" width="1479" lsb="0"/> - <mtx name="B" width="1366" lsb="47"/> - <mtx name="C" width="1366" lsb="80"/> - <mtx name="Cacute" width="1366" lsb="80"/> - <mtx name="Ccaron" width="1366" lsb="80"/> - <mtx name="Ccedilla" width="1366" lsb="80"/> - <mtx name="Ccircumflex" width="1366" lsb="80"/> - <mtx name="Cdotaccent" width="1366" lsb="80"/> - <mtx name="D" width="1479" lsb="41"/> - <mtx name="Dcaron" width="1479" lsb="41"/> - <mtx name="Dcroat" width="1479" lsb="41"/> - <mtx name="E" width="1251" lsb="43"/> - <mtx name="Eacute" width="1251" lsb="43"/> - <mtx name="Ebreve" width="1251" lsb="43"/> - <mtx name="Ecaron" width="1251" lsb="43"/> - <mtx name="Ecircumflex" width="1251" lsb="43"/> - <mtx name="Edieresis" width="1251" lsb="43"/> - <mtx name="Edotaccent" width="1251" lsb="43"/> - <mtx name="Egrave" width="1251" lsb="43"/> - <mtx name="Emacron" width="1251" lsb="43"/> - <mtx name="Eng" width="1479" lsb="43"/> - <mtx name="Eogonek" width="1251" lsb="43"/> - <mtx name="Eth" width="1479" lsb="41"/> - <mtx name="Euro" width="1024" lsb="0"/> - <mtx name="Euro#1" width="1024" lsb="0"/> - <mtx name="F" width="1139" lsb="43"/> - <mtx name="G" width="1479" lsb="85"/> - <mtx name="Gbreve" width="1479" lsb="85"/> - <mtx name="Gcircumflex" width="1479" lsb="85"/> - <mtx name="Gcommaaccent" width="1479" lsb="85"/> - <mtx name="Gdotaccent" width="1479" lsb="85"/> - <mtx name="H" width="1479" lsb="41"/> - <mtx name="Hbar" width="1479" lsb="41"/> - <mtx name="Hcircumflex" width="1479" lsb="41"/> - <mtx name="I" width="682" lsb="51"/> - <mtx name="IJ" width="1451" lsb="51"/> - <mtx name="Iacute" width="682" lsb="51"/> - <mtx name="Ibreve" width="682" lsb="8"/> - <mtx name="Icircumflex" width="682" lsb="-11"/> - <mtx name="Idieresis" width="682" lsb="51"/> - <mtx name="Idotaccent" width="682" lsb="51"/> - <mtx name="Igrave" width="682" lsb="39"/> - <mtx name="Imacron" width="682" lsb="20"/> - <mtx name="Iogonek" width="682" lsb="51"/> - <mtx name="Itilde" width="682" lsb="8"/> - <mtx name="J" width="797" lsb="0"/> - <mtx name="Jcircumflex" width="797" lsb="0"/> - <mtx name="K" width="1479" lsb="56"/> - <mtx name="Kcommaaccent" width="1479" lsb="56"/> - <mtx name="L" width="1251" lsb="56"/> - <mtx name="Lacute" width="1251" lsb="56"/> - <mtx name="Lcaron" width="1251" lsb="56"/> - <mtx name="Lcommaaccent" width="1251" lsb="56"/> - <mtx name="Ldot" width="1251" lsb="56"/> - <mtx name="Lslash" width="1251" lsb="56"/> - <mtx name="M" width="1821" lsb="48"/> - <mtx name="N" width="1479" lsb="43"/> - <mtx name="Nacute" width="1479" lsb="43"/> - <mtx name="Ncaron" width="1479" lsb="43"/> - <mtx name="Ncommaaccent" width="1479" lsb="43"/> - <mtx name="Ntilde" width="1479" lsb="43"/> - <mtx name="O" width="1479" lsb="80"/> - <mtx name="OE" width="1821" lsb="80"/> - <mtx name="Oacute" width="1479" lsb="80"/> - <mtx name="Obreve" width="1479" lsb="80"/> - <mtx name="Ocircumflex" width="1479" lsb="80"/> - <mtx name="Odieresis" width="1479" lsb="80"/> - <mtx name="Ograve" width="1479" lsb="80"/> - <mtx name="Ohungarumlaut" width="1479" lsb="80"/> - <mtx name="Omacron" width="1479" lsb="80"/> - <mtx name="Oslash" width="1479" lsb="80"/> - <mtx name="Otilde" width="1479" lsb="80"/> - <mtx name="P" width="1139" lsb="31"/> - <mtx name="Q" width="1479" lsb="80"/> - <mtx name="R" width="1366" lsb="31"/> - <mtx name="Racute" width="1366" lsb="31"/> - <mtx name="Rcaron" width="1366" lsb="31"/> - <mtx name="Rcommaaccent" width="1366" lsb="31"/> - <mtx name="S" width="1139" lsb="119"/> - <mtx name="Sacute" width="1139" lsb="119"/> - <mtx name="Scaron" width="1139" lsb="119"/> - <mtx name="Scedilla" width="1139" lsb="119"/> - <mtx name="Scircumflex" width="1139" lsb="119"/> - <mtx name="Scommaaccent" width="1139" lsb="119"/> - <mtx name="T" width="1251" lsb="31"/> - <mtx name="Tbar" width="1251" lsb="31"/> - <mtx name="Tcaron" width="1251" lsb="31"/> - <mtx name="Tcommaaccent" width="1251" lsb="31"/> - <mtx name="Tcommabelow" width="1251" lsb="31"/> - <mtx name="Thorn" width="1139" lsb="43"/> - <mtx name="U" width="1479" lsb="19"/> - <mtx name="Uacute" width="1479" lsb="19"/> - <mtx name="Ubreve" width="1479" lsb="19"/> - <mtx name="Ucircumflex" width="1479" lsb="19"/> - <mtx name="Udieresis" width="1479" lsb="19"/> - <mtx name="Ugrave" width="1479" lsb="19"/> - <mtx name="Uhungarumlaut" width="1479" lsb="19"/> - <mtx name="Umacron" width="1479" lsb="19"/> - <mtx name="Unterkomma" width="682" lsb="170"/> - <mtx name="Uogonek" width="1479" lsb="19"/> - <mtx name="Uring" width="1479" lsb="19"/> - <mtx name="Utilde" width="1479" lsb="19"/> - <mtx name="V" width="1479" lsb="0"/> - <mtx name="W" width="1933" lsb="0"/> - <mtx name="Wcircumflex" width="1933" lsb="0"/> - <mtx name="X" width="1479" lsb="12"/> - <mtx name="Y" width="1479" lsb="0"/> - <mtx name="Yacute" width="1479" lsb="0"/> - <mtx name="Ycircumflex" width="1479" lsb="0"/> - <mtx name="Ydieresis" width="1479" lsb="0"/> - <mtx name="Z" width="1251" lsb="92"/> - <mtx name="Zacute" width="1251" lsb="92"/> - <mtx name="Zcaron" width="1251" lsb="92"/> - <mtx name="Zdotaccent" width="1251" lsb="92"/> - <mtx name="a" width="909" lsb="75"/> - <mtx name="aacute" width="909" lsb="75"/> - <mtx name="abreve" width="909" lsb="75"/> - <mtx name="acircumflex" width="909" lsb="75"/> - <mtx name="acute" width="682" lsb="91"/> - <mtx name="adieresis" width="909" lsb="75"/> - <mtx name="ae" width="1366" lsb="75"/> - <mtx name="afii00208" width="2048" lsb="99"/> - <mtx name="agrave" width="909" lsb="75"/> - <mtx name="amacron" width="909" lsb="75"/> - <mtx name="ampersand" width="1593" lsb="99"/> - <mtx name="anoteleia" width="512" lsb="133"/> - <mtx name="aogonek" width="909" lsb="75"/> - <mtx name="aring" width="909" lsb="75"/> - <mtx name="asciicircum" width="960" lsb="36"/> - <mtx name="asciitilde" width="1108" lsb="60"/> - <mtx name="asterisk" width="1024" lsb="120"/> - <mtx name="at" width="1886" lsb="140"/> - <mtx name="atilde" width="909" lsb="75"/> - <mtx name="b" width="1024" lsb="0"/> - <mtx name="backslash" width="569" lsb="-30"/> - <mtx name="bar" width="410" lsb="156"/> - <mtx name="braceleft" width="983" lsb="148"/> - <mtx name="braceright" width="983" lsb="222"/> - <mtx name="bracketleft" width="682" lsb="185"/> - <mtx name="bracketright" width="682" lsb="93"/> - <mtx name="breve" width="682" lsb="8"/> - <mtx name="brokenbar" width="410" lsb="156"/> - <mtx name="bullet" width="717" lsb="81"/> - <mtx name="c" width="909" lsb="68"/> - <mtx name="cacute" width="909" lsb="68"/> - <mtx name="caron" width="682" lsb="-10"/> - <mtx name="ccaron" width="909" lsb="68"/> - <mtx name="ccedilla" width="909" lsb="68"/> - <mtx name="ccircumflex" width="909" lsb="68"/> - <mtx name="cdotaccent" width="909" lsb="68"/> - <mtx name="cedilla" width="682" lsb="168"/> - <mtx name="cent" width="1024" lsb="123"/> - <mtx name="circumflex" width="682" lsb="-10"/> - <mtx name="colon" width="569" lsb="161"/> - <mtx name="comma" width="512" lsb="133"/> - <mtx name="copyright" width="1556" lsb="87"/> - <mtx name="currency" width="1024" lsb="130"/> - <mtx name="d" width="1024" lsb="68"/> - <mtx name="dagger" width="1024" lsb="80"/> - <mtx name="daggerdbl" width="1024" lsb="80"/> - <mtx name="dcaron" width="1324" lsb="68"/> - <mtx name="dcroat" width="1024" lsb="68"/> - <mtx name="degree" width="819" lsb="114"/> - <mtx name="dieresis" width="682" lsb="57"/> - <mtx name="divide" width="1155" lsb="84"/> - <mtx name="dollar" width="1024" lsb="80"/> - <mtx name="dotaccent" width="682" lsb="242"/> - <mtx name="dotlessi" width="569" lsb="47"/> - <mtx name="dotlessj" width="569" lsb="-78"/> - <mtx name="dotmath" width="512" lsb="133"/> - <mtx name="e" width="909" lsb="68"/> - <mtx name="eacute" width="909" lsb="68"/> - <mtx name="ebreve" width="909" lsb="68"/> - <mtx name="ecaron" width="909" lsb="68"/> - <mtx name="ecircumflex" width="909" lsb="68"/> - <mtx name="edieresis" width="909" lsb="68"/> - <mtx name="edotaccent" width="909" lsb="68"/> - <mtx name="egrave" width="909" lsb="68"/> - <mtx name="eight" width="1024" lsb="40"/> - <mtx name="ellipsis" width="2048" lsb="243"/> - <mtx name="emacron" width="909" lsb="68"/> - <mtx name="emdash" width="2048" lsb="99"/> - <mtx name="endash" width="1024" lsb="86"/> - <mtx name="eng" width="1024" lsb="37"/> - <mtx name="eogonek" width="909" lsb="68"/> - <mtx name="equal" width="1155" lsb="84"/> - <mtx name="estimated" width="909" lsb="68"/> - <mtx name="eth" width="1024" lsb="17"/> - <mtx name="exclam" width="682" lsb="242"/> - <mtx name="exclamdown" width="682" lsb="242"/> - <mtx name="f" width="682" lsb="37"/> - <mtx name="fi" width="1139" lsb="37"/> - <mtx name="fi#1" width="1139" lsb="37"/> - <mtx name="figuredash" width="1024" lsb="86"/> - <mtx name="five" width="1024" lsb="130"/> - <mtx name="fl" width="1139" lsb="37"/> - <mtx name="fl#1" width="1139" lsb="37"/> - <mtx name="florin" width="1024" lsb="12"/> - <mtx name="four" width="1024" lsb="25"/> - <mtx name="foursuperiour" width="614" lsb="31"/> - <mtx name="fraction" width="342" lsb="-416"/> - <mtx name="fraction#1" width="342" lsb="-416"/> - <mtx name="g" width="1024" lsb="53"/> - <mtx name="gbreve" width="1024" lsb="53"/> - <mtx name="gcircumflex" width="1024" lsb="53"/> - <mtx name="gcommaaccent" width="1024" lsb="53"/> - <mtx name="gdotaccent" width="1024" lsb="53"/> - <mtx name="germandbls" width="1024" lsb="27"/> - <mtx name="grave" width="682" lsb="91"/> - <mtx name="greater" width="1155" lsb="84"/> - <mtx name="guillemotleft" width="1024" lsb="74"/> - <mtx name="guillemotright" width="1024" lsb="86"/> - <mtx name="guilsinglleft" width="682" lsb="86"/> - <mtx name="guilsinglright" width="682" lsb="123"/> - <mtx name="h" width="1024" lsb="37"/> - <mtx name="hbar" width="1024" lsb="37"/> - <mtx name="hcircumflex" width="1024" lsb="37"/> - <mtx name="hungarumlaut" width="682" lsb="-5"/> - <mtx name="hyphen" width="682" lsb="82"/> - <mtx name="hyphen#1" width="682" lsb="82"/> - <mtx name="i" width="569" lsb="47"/> - <mtx name="iacute" width="569" lsb="47"/> - <mtx name="ibreve" width="569" lsb="-42"/> - <mtx name="icircumflex" width="569" lsb="-61"/> - <mtx name="idieresis" width="569" lsb="7"/> - <mtx name="igrave" width="569" lsb="7"/> - <mtx name="ij" width="1131" lsb="47"/> - <mtx name="imacron" width="569" lsb="-40"/> - <mtx name="iogonek" width="569" lsb="47"/> - <mtx name="itilde" width="569" lsb="-55"/> - <mtx name="j" width="569" lsb="-78"/> - <mtx name="jcircumflex" width="569" lsb="-78"/> - <mtx name="k" width="1024" lsb="31"/> - <mtx name="kcommaaccent" width="1024" lsb="31"/> - <mtx name="kgreenlandic" width="1024" lsb="37"/> - <mtx name="l" width="569" lsb="47"/> - <mtx name="lacute" width="569" lsb="47"/> - <mtx name="lcaron" width="832" lsb="47"/> - <mtx name="lcommaaccent" width="569" lsb="47"/> - <mtx name="ldot" width="704" lsb="47"/> - <mtx name="less" width="1155" lsb="84"/> - <mtx name="logicalnot" width="1155" lsb="84"/> - <mtx name="longs" width="569" lsb="37"/> - <mtx name="lslash" width="569" lsb="47"/> - <mtx name="m" width="1593" lsb="37"/> - <mtx name="macron" width="682" lsb="20"/> - <mtx name="macron#1" width="1024" lsb="99"/> - <mtx name="minus" width="1628" lsb="222"/> - <mtx name="mu" width="1024" lsb="12"/> - <mtx name="multiply" width="1155" lsb="84"/> - <mtx name="n" width="1024" lsb="37"/> - <mtx name="nacute" width="1024" lsb="37"/> - <mtx name="napostrophe" width="1237" lsb="25"/> - <mtx name="nbhyphen" width="682" lsb="82"/> - <mtx name="ncaron" width="1024" lsb="37"/> - <mtx name="ncommaaccent" width="1024" lsb="37"/> - <mtx name="nine" width="1024" lsb="37"/> - <mtx name="nonbreakingspace" width="512" lsb="0"/> - <mtx name="ntilde" width="1024" lsb="37"/> - <mtx name="numbersign" width="1024" lsb="0"/> - <mtx name="o" width="1024" lsb="62"/> - <mtx name="oacute" width="1024" lsb="62"/> - <mtx name="obreve" width="1024" lsb="62"/> - <mtx name="ocircumflex" width="1024" lsb="62"/> - <mtx name="odieresis" width="1024" lsb="62"/> - <mtx name="oe" width="1479" lsb="62"/> - <mtx name="ogonek" width="682" lsb="156"/> - <mtx name="ograve" width="1024" lsb="62"/> - <mtx name="ohungarumlaut" width="1024" lsb="62"/> - <mtx name="omacron" width="1024" lsb="62"/> - <mtx name="one" width="1024" lsb="130"/> - <mtx name="onehalf" width="1536" lsb="173"/> - <mtx name="onequarter" width="1536" lsb="173"/> - <mtx name="onesuperior" width="614" lsb="136"/> - <mtx name="ordfeminine" width="565" lsb="25"/> - <mtx name="ordmasculine" width="635" lsb="25"/> - <mtx name="oslash" width="1024" lsb="62"/> - <mtx name="otilde" width="1024" lsb="62"/> - <mtx name="p" width="1024" lsb="0"/> - <mtx name="paragraph" width="928" lsb="15"/> - <mtx name="parenleft" width="682" lsb="116"/> - <mtx name="parenright" width="682" lsb="104"/> - <mtx name="percent" width="1706" lsb="120"/> - <mtx name="period" width="512" lsb="133"/> - <mtx name="periodcentered" width="512" lsb="133"/> - <mtx name="periodcentered#1" width="512" lsb="133"/> - <mtx name="perthousand" width="2048" lsb="34"/> - <mtx name="plus" width="1155" lsb="84"/> - <mtx name="plusminus" width="1155" lsb="84"/> - <mtx name="q" width="1024" lsb="68"/> - <mtx name="question" width="909" lsb="51"/> - <mtx name="questiondown" width="909" lsb="51"/> - <mtx name="quotedbl" width="836" lsb="146"/> - <mtx name="quotedblbase" width="909" lsb="146"/> - <mtx name="quotedblleft" width="909" lsb="122"/> - <mtx name="quotedblright" width="909" lsb="146"/> - <mtx name="quoteleft" width="682" lsb="205"/> - <mtx name="quotereversed" width="512" lsb="0"/> - <mtx name="quoteright" width="682" lsb="230"/> - <mtx name="quotesinglbase" width="682" lsb="230"/> - <mtx name="quotesingle" width="369" lsb="61"/> - <mtx name="r" width="682" lsb="31"/> - <mtx name="racute" width="682" lsb="31"/> - <mtx name="radicalex" width="1024" lsb="99"/> - <mtx name="rcaron" width="682" lsb="-12"/> - <mtx name="rcommaaccent" width="682" lsb="31"/> - <mtx name="registered" width="1556" lsb="87"/> - <mtx name="ring" width="682" lsb="114"/> - <mtx name="s" width="797" lsb="95"/> - <mtx name="sacute" width="797" lsb="95"/> - <mtx name="scaron" width="797" lsb="66"/> - <mtx name="scedilla" width="797" lsb="95"/> - <mtx name="scircumflex" width="797" lsb="62"/> - <mtx name="scommaaccent" width="797" lsb="95"/> - <mtx name="section" width="1024" lsb="75"/> - <mtx name="semicolon" width="569" lsb="161"/> - <mtx name="semicolon#1" width="569" lsb="161"/> - <mtx name="seven" width="1024" lsb="108"/> - <mtx name="sfthyphen" width="682" lsb="82"/> - <mtx name="six" width="1024" lsb="49"/> - <mtx name="slash" width="569" lsb="-30"/> - <mtx name="space" width="512" lsb="0"/> - <mtx name="sterling" width="1024" lsb="74"/> - <mtx name="t" width="569" lsb="25"/> - <mtx name="tbar" width="569" lsb="25"/> - <mtx name="tcaron" width="666" lsb="25"/> - <mtx name="tcommaaccent" width="569" lsb="25"/> - <mtx name="tcommabelow" width="569" lsb="25"/> - <mtx name="thorn" width="1024" lsb="0"/> - <mtx name="three" width="1024" lsb="93"/> - <mtx name="threequarters" width="1536" lsb="173"/> - <mtx name="threesuperior" width="614" lsb="86"/> - <mtx name="tilde" width="682" lsb="8"/> - <mtx name="trademark" width="2007" lsb="140"/> - <mtx name="two" width="1024" lsb="68"/> - <mtx name="twosuperior" width="614" lsb="86"/> - <mtx name="u" width="1024" lsb="12"/> - <mtx name="uacute" width="1024" lsb="12"/> - <mtx name="ubreve" width="1024" lsb="12"/> - <mtx name="ucircumflex" width="1024" lsb="12"/> - <mtx name="udieresis" width="1024" lsb="12"/> - <mtx name="ugrave" width="1024" lsb="12"/> - <mtx name="uhungarumlaut" width="1024" lsb="12"/> - <mtx name="umacron" width="1024" lsb="12"/> - <mtx name="underscore" width="1024" lsb="0"/> - <mtx name="uogonek" width="1024" lsb="12"/> - <mtx name="uring" width="1024" lsb="12"/> - <mtx name="utilde" width="1024" lsb="12"/> - <mtx name="v" width="1024" lsb="0"/> - <mtx name="w" width="1479" lsb="0"/> - <mtx name="wcircumflex" width="1479" lsb="0"/> - <mtx name="x" width="1024" lsb="0"/> - <mtx name="y" width="1024" lsb="0"/> - <mtx name="yacute" width="1024" lsb="0"/> - <mtx name="ycircumflex" width="1024" lsb="0"/> - <mtx name="ydieresis" width="1024" lsb="0"/> - <mtx name="yen" width="1024" lsb="0"/> - <mtx name="z" width="909" lsb="62"/> - <mtx name="zacute" width="909" lsb="62"/> - <mtx name="zcaron" width="909" lsb="62"/> - <mtx name="zdotaccent" width="909" lsb="62"/> - <mtx name="zero" width="1024" lsb="56"/> - </hmtx> - - <cmap> - <tableVersion version="0"/> - <cmap_format_0 platformID="1" platEncID="0" language="0"> - <map code="0x0" name=".notdef#1"/> - <map code="0x1" name=".notdef"/> - <map code="0x2" name=".notdef"/> - <map code="0x3" name=".notdef"/> - <map code="0x4" name=".notdef"/> - <map code="0x5" name=".notdef"/> - <map code="0x6" name=".notdef"/> - <map code="0x7" name=".notdef"/> - <map code="0x8" name=".notdef#1"/> - <map code="0x9" name="space"/> - <map code="0xa" name=".notdef"/> - <map code="0xb" name=".notdef"/> - <map code="0xc" name=".notdef"/> - <map code="0xd" name=".notdef#2"/> - <map code="0xe" name=".notdef"/> - <map code="0xf" name=".notdef"/> - <map code="0x10" name=".notdef"/> - <map code="0x11" name=".notdef"/> - <map code="0x12" name=".notdef"/> - <map code="0x13" name=".notdef"/> - <map code="0x14" name=".notdef"/> - <map code="0x15" name=".notdef"/> - <map code="0x16" name=".notdef"/> - <map code="0x17" name=".notdef"/> - <map code="0x18" name=".notdef"/> - <map code="0x19" name=".notdef"/> - <map code="0x1a" name=".notdef"/> - <map code="0x1b" name=".notdef"/> - <map code="0x1c" name=".notdef"/> - <map code="0x1d" name=".notdef#1"/> - <map code="0x1e" name=".notdef"/> - <map code="0x1f" name=".notdef"/> - <map code="0x20" name="space"/> - <map code="0x21" name="exclam"/> - <map code="0x22" name="quotedbl"/> - <map code="0x23" name="numbersign"/> - <map code="0x24" name="dollar"/> - <map code="0x25" name="percent"/> - <map code="0x26" name="ampersand"/> - <map code="0x27" name="quotesingle"/> - <map code="0x28" name="parenleft"/> - <map code="0x29" name="parenright"/> - <map code="0x2a" name="asterisk"/> - <map code="0x2b" name="plus"/> - <map code="0x2c" name="comma"/> - <map code="0x2d" name="hyphen"/> - <map code="0x2e" name="period"/> - <map code="0x2f" name="slash"/> - <map code="0x30" name="zero"/> - <map code="0x31" name="one"/> - <map code="0x32" name="two"/> - <map code="0x33" name="three"/> - <map code="0x34" name="four"/> - <map code="0x35" name="five"/> - <map code="0x36" name="six"/> - <map code="0x37" name="seven"/> - <map code="0x38" name="eight"/> - <map code="0x39" name="nine"/> - <map code="0x3a" name="colon"/> - <map code="0x3b" name="semicolon"/> - <map code="0x3c" name="less"/> - <map code="0x3d" name="equal"/> - <map code="0x3e" name="greater"/> - <map code="0x3f" name="question"/> - <map code="0x40" name="at"/> - <map code="0x41" name="A"/> - <map code="0x42" name="B"/> - <map code="0x43" name="C"/> - <map code="0x44" name="D"/> - <map code="0x45" name="E"/> - <map code="0x46" name="F"/> - <map code="0x47" name="G"/> - <map code="0x48" name="H"/> - <map code="0x49" name="I"/> - <map code="0x4a" name="J"/> - <map code="0x4b" name="K"/> - <map code="0x4c" name="L"/> - <map code="0x4d" name="M"/> - <map code="0x4e" name="N"/> - <map code="0x4f" name="O"/> - <map code="0x50" name="P"/> - <map code="0x51" name="Q"/> - <map code="0x52" name="R"/> - <map code="0x53" name="S"/> - <map code="0x54" name="T"/> - <map code="0x55" name="U"/> - <map code="0x56" name="V"/> - <map code="0x57" name="W"/> - <map code="0x58" name="X"/> - <map code="0x59" name="Y"/> - <map code="0x5a" name="Z"/> - <map code="0x5b" name="bracketleft"/> - <map code="0x5c" name="backslash"/> - <map code="0x5d" name="bracketright"/> - <map code="0x5e" name="asciicircum"/> - <map code="0x5f" name="underscore"/> - <map code="0x60" name="grave"/> - <map code="0x61" name="a"/> - <map code="0x62" name="b"/> - <map code="0x63" name="c"/> - <map code="0x64" name="d"/> - <map code="0x65" name="e"/> - <map code="0x66" name="f"/> - <map code="0x67" name="g"/> - <map code="0x68" name="h"/> - <map code="0x69" name="i"/> - <map code="0x6a" name="j"/> - <map code="0x6b" name="k"/> - <map code="0x6c" name="l"/> - <map code="0x6d" name="m"/> - <map code="0x6e" name="n"/> - <map code="0x6f" name="o"/> - <map code="0x70" name="p"/> - <map code="0x71" name="q"/> - <map code="0x72" name="r"/> - <map code="0x73" name="s"/> - <map code="0x74" name="t"/> - <map code="0x75" name="u"/> - <map code="0x76" name="v"/> - <map code="0x77" name="w"/> - <map code="0x78" name="x"/> - <map code="0x79" name="y"/> - <map code="0x7a" name="z"/> - <map code="0x7b" name="braceleft"/> - <map code="0x7c" name="bar"/> - <map code="0x7d" name="braceright"/> - <map code="0x7e" name="asciitilde"/> - <map code="0x7f" name=".notdef"/> - <map code="0x80" name="Adieresis"/> - <map code="0x81" name="Aring"/> - <map code="0x82" name="Ccedilla"/> - <map code="0x83" name="Eacute"/> - <map code="0x84" name="Ntilde"/> - <map code="0x85" name="Odieresis"/> - <map code="0x86" name="Udieresis"/> - <map code="0x87" name="aacute"/> - <map code="0x88" name="agrave"/> - <map code="0x89" name="acircumflex"/> - <map code="0x8a" name="adieresis"/> - <map code="0x8b" name="atilde"/> - <map code="0x8c" name="aring"/> - <map code="0x8d" name="ccedilla"/> - <map code="0x8e" name="eacute"/> - <map code="0x8f" name="egrave"/> - <map code="0x90" name="ecircumflex"/> - <map code="0x91" name="edieresis"/> - <map code="0x92" name="iacute"/> - <map code="0x93" name="igrave"/> - <map code="0x94" name="icircumflex"/> - <map code="0x95" name="idieresis"/> - <map code="0x96" name="ntilde"/> - <map code="0x97" name="oacute"/> - <map code="0x98" name="ograve"/> - <map code="0x99" name="ocircumflex"/> - <map code="0x9a" name="odieresis"/> - <map code="0x9b" name="otilde"/> - <map code="0x9c" name="uacute"/> - <map code="0x9d" name="ugrave"/> - <map code="0x9e" name="ucircumflex"/> - <map code="0x9f" name="udieresis"/> - <map code="0xa0" name="dagger"/> - <map code="0xa1" name="degree"/> - <map code="0xa2" name="cent"/> - <map code="0xa3" name="sterling"/> - <map code="0xa4" name="section"/> - <map code="0xa5" name="bullet"/> - <map code="0xa6" name="paragraph"/> - <map code="0xa7" name="germandbls"/> - <map code="0xa8" name="registered"/> - <map code="0xa9" name="copyright"/> - <map code="0xaa" name="trademark"/> - <map code="0xab" name="acute"/> - <map code="0xac" name="dieresis"/> - <map code="0xad" name=".notdef"/> - <map code="0xae" name="AE"/> - <map code="0xaf" name="Oslash"/> - <map code="0xb0" name=".notdef"/> - <map code="0xb1" name="plusminus"/> - <map code="0xb2" name=".notdef"/> - <map code="0xb3" name=".notdef"/> - <map code="0xb4" name="yen"/> - <map code="0xb5" name="mu"/> - <map code="0xb6" name=".notdef"/> - <map code="0xb7" name=".notdef"/> - <map code="0xb8" name=".notdef"/> - <map code="0xb9" name=".notdef"/> - <map code="0xba" name=".notdef"/> - <map code="0xbb" name="ordfeminine"/> - <map code="0xbc" name="ordmasculine"/> - <map code="0xbd" name=".notdef"/> - <map code="0xbe" name="ae"/> - <map code="0xbf" name="oslash"/> - <map code="0xc0" name="questiondown"/> - <map code="0xc1" name="exclamdown"/> - <map code="0xc2" name="logicalnot"/> - <map code="0xc3" name=".notdef"/> - <map code="0xc4" name="florin"/> - <map code="0xc5" name=".notdef"/> - <map code="0xc6" name=".notdef"/> - <map code="0xc7" name="guillemotleft"/> - <map code="0xc8" name="guillemotright"/> - <map code="0xc9" name="ellipsis"/> - <map code="0xca" name=".notdef#16"/> - <map code="0xcb" name="Agrave"/> - <map code="0xcc" name="Atilde"/> - <map code="0xcd" name="Otilde"/> - <map code="0xce" name="OE"/> - <map code="0xcf" name="oe"/> - <map code="0xd0" name="endash"/> - <map code="0xd1" name="emdash"/> - <map code="0xd2" name="quotedblleft"/> - <map code="0xd3" name="quotedblright"/> - <map code="0xd4" name="quoteleft"/> - <map code="0xd5" name="quoteright"/> - <map code="0xd6" name="divide"/> - <map code="0xd7" name=".notdef"/> - <map code="0xd8" name="ydieresis"/> - <map code="0xd9" name="Ydieresis"/> - <map code="0xda" name="fraction"/> - <map code="0xdb" name="currency"/> - <map code="0xdc" name="guilsinglleft"/> - <map code="0xdd" name="guilsinglright"/> - <map code="0xde" name="fi"/> - <map code="0xdf" name="fl"/> - <map code="0xe0" name="daggerdbl"/> - <map code="0xe1" name="periodcentered"/> - <map code="0xe2" name="quotesinglbase"/> - <map code="0xe3" name="quotedblbase"/> - <map code="0xe4" name="perthousand"/> - <map code="0xe5" name="Acircumflex"/> - <map code="0xe6" name="Ecircumflex"/> - <map code="0xe7" name="Aacute"/> - <map code="0xe8" name="Edieresis"/> - <map code="0xe9" name="Egrave"/> - <map code="0xea" name="Iacute"/> - <map code="0xeb" name="Icircumflex"/> - <map code="0xec" name="Idieresis"/> - <map code="0xed" name="Igrave"/> - <map code="0xee" name="Oacute"/> - <map code="0xef" name="Ocircumflex"/> - <map code="0xf0" name="Euro"/> - <map code="0xf1" name="Ograve"/> - <map code="0xf2" name="Uacute"/> - <map code="0xf3" name="Ucircumflex"/> - <map code="0xf4" name="Ugrave"/> - <map code="0xf5" name="dotlessi"/> - <map code="0xf6" name="circumflex"/> - <map code="0xf7" name="tilde"/> - <map code="0xf8" name="macron"/> - <map code="0xf9" name="breve"/> - <map code="0xfa" name="dotaccent"/> - <map code="0xfb" name="ring"/> - <map code="0xfc" name="cedilla"/> - <map code="0xfd" name="hungarumlaut"/> - <map code="0xfe" name="ogonek"/> - <map code="0xff" name="caron"/> - </cmap_format_0> - <cmap_format_4 platformID="3" platEncID="1" language="0"> - <map code="0x20" name="space"/><!-- SPACE --> - <map code="0x21" name="exclam"/><!-- EXCLAMATION MARK --> - <map code="0x22" name="quotedbl"/><!-- QUOTATION MARK --> - <map code="0x23" name="numbersign"/><!-- NUMBER SIGN --> - <map code="0x24" name="dollar"/><!-- DOLLAR SIGN --> - <map code="0x25" name="percent"/><!-- PERCENT SIGN --> - <map code="0x26" name="ampersand"/><!-- AMPERSAND --> - <map code="0x27" name="quotesingle"/><!-- APOSTROPHE --> - <map code="0x28" name="parenleft"/><!-- LEFT PARENTHESIS --> - <map code="0x29" name="parenright"/><!-- RIGHT PARENTHESIS --> - <map code="0x2a" name="asterisk"/><!-- ASTERISK --> - <map code="0x2b" name="plus"/><!-- PLUS SIGN --> - <map code="0x2c" name="comma"/><!-- COMMA --> - <map code="0x2d" name="hyphen"/><!-- HYPHEN-MINUS --> - <map code="0x2e" name="period"/><!-- FULL STOP --> - <map code="0x2f" name="slash"/><!-- SOLIDUS --> - <map code="0x30" name="zero"/><!-- DIGIT ZERO --> - <map code="0x31" name="one"/><!-- DIGIT ONE --> - <map code="0x32" name="two"/><!-- DIGIT TWO --> - <map code="0x33" name="three"/><!-- DIGIT THREE --> - <map code="0x34" name="four"/><!-- DIGIT FOUR --> - <map code="0x35" name="five"/><!-- DIGIT FIVE --> - <map code="0x36" name="six"/><!-- DIGIT SIX --> - <map code="0x37" name="seven"/><!-- DIGIT SEVEN --> - <map code="0x38" name="eight"/><!-- DIGIT EIGHT --> - <map code="0x39" name="nine"/><!-- DIGIT NINE --> - <map code="0x3a" name="colon"/><!-- COLON --> - <map code="0x3b" name="semicolon"/><!-- SEMICOLON --> - <map code="0x3c" name="less"/><!-- LESS-THAN SIGN --> - <map code="0x3d" name="equal"/><!-- EQUALS SIGN --> - <map code="0x3e" name="greater"/><!-- GREATER-THAN SIGN --> - <map code="0x3f" name="question"/><!-- QUESTION MARK --> - <map code="0x40" name="at"/><!-- COMMERCIAL AT --> - <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A --> - <map code="0x42" name="B"/><!-- LATIN CAPITAL LETTER B --> - <map code="0x43" name="C"/><!-- LATIN CAPITAL LETTER C --> - <map code="0x44" name="D"/><!-- LATIN CAPITAL LETTER D --> - <map code="0x45" name="E"/><!-- LATIN CAPITAL LETTER E --> - <map code="0x46" name="F"/><!-- LATIN CAPITAL LETTER F --> - <map code="0x47" name="G"/><!-- LATIN CAPITAL LETTER G --> - <map code="0x48" name="H"/><!-- LATIN CAPITAL LETTER H --> - <map code="0x49" name="I"/><!-- LATIN CAPITAL LETTER I --> - <map code="0x4a" name="J"/><!-- LATIN CAPITAL LETTER J --> - <map code="0x4b" name="K"/><!-- LATIN CAPITAL LETTER K --> - <map code="0x4c" name="L"/><!-- LATIN CAPITAL LETTER L --> - <map code="0x4d" name="M"/><!-- LATIN CAPITAL LETTER M --> - <map code="0x4e" name="N"/><!-- LATIN CAPITAL LETTER N --> - <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O --> - <map code="0x50" name="P"/><!-- LATIN CAPITAL LETTER P --> - <map code="0x51" name="Q"/><!-- LATIN CAPITAL LETTER Q --> - <map code="0x52" name="R"/><!-- LATIN CAPITAL LETTER R --> - <map code="0x53" name="S"/><!-- LATIN CAPITAL LETTER S --> - <map code="0x54" name="T"/><!-- LATIN CAPITAL LETTER T --> - <map code="0x55" name="U"/><!-- LATIN CAPITAL LETTER U --> - <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V --> - <map code="0x57" name="W"/><!-- LATIN CAPITAL LETTER W --> - <map code="0x58" name="X"/><!-- LATIN CAPITAL LETTER X --> - <map code="0x59" name="Y"/><!-- LATIN CAPITAL LETTER Y --> - <map code="0x5a" name="Z"/><!-- LATIN CAPITAL LETTER Z --> - <map code="0x5b" name="bracketleft"/><!-- LEFT SQUARE BRACKET --> - <map code="0x5c" name="backslash"/><!-- REVERSE SOLIDUS --> - <map code="0x5d" name="bracketright"/><!-- RIGHT SQUARE BRACKET --> - <map code="0x5e" name="asciicircum"/><!-- CIRCUMFLEX ACCENT --> - <map code="0x5f" name="underscore"/><!-- LOW LINE --> - <map code="0x60" name="grave"/><!-- GRAVE ACCENT --> - <map code="0x61" name="a"/><!-- LATIN SMALL LETTER A --> - <map code="0x62" name="b"/><!-- LATIN SMALL LETTER B --> - <map code="0x63" name="c"/><!-- LATIN SMALL LETTER C --> - <map code="0x64" name="d"/><!-- LATIN SMALL LETTER D --> - <map code="0x65" name="e"/><!-- LATIN SMALL LETTER E --> - <map code="0x66" name="f"/><!-- LATIN SMALL LETTER F --> - <map code="0x67" name="g"/><!-- LATIN SMALL LETTER G --> - <map code="0x68" name="h"/><!-- LATIN SMALL LETTER H --> - <map code="0x69" name="i"/><!-- LATIN SMALL LETTER I --> - <map code="0x6a" name="j"/><!-- LATIN SMALL LETTER J --> - <map code="0x6b" name="k"/><!-- LATIN SMALL LETTER K --> - <map code="0x6c" name="l"/><!-- LATIN SMALL LETTER L --> - <map code="0x6d" name="m"/><!-- LATIN SMALL LETTER M --> - <map code="0x6e" name="n"/><!-- LATIN SMALL LETTER N --> - <map code="0x6f" name="o"/><!-- LATIN SMALL LETTER O --> - <map code="0x70" name="p"/><!-- LATIN SMALL LETTER P --> - <map code="0x71" name="q"/><!-- LATIN SMALL LETTER Q --> - <map code="0x72" name="r"/><!-- LATIN SMALL LETTER R --> - <map code="0x73" name="s"/><!-- LATIN SMALL LETTER S --> - <map code="0x74" name="t"/><!-- LATIN SMALL LETTER T --> - <map code="0x75" name="u"/><!-- LATIN SMALL LETTER U --> - <map code="0x76" name="v"/><!-- LATIN SMALL LETTER V --> - <map code="0x77" name="w"/><!-- LATIN SMALL LETTER W --> - <map code="0x78" name="x"/><!-- LATIN SMALL LETTER X --> - <map code="0x79" name="y"/><!-- LATIN SMALL LETTER Y --> - <map code="0x7a" name="z"/><!-- LATIN SMALL LETTER Z --> - <map code="0x7b" name="braceleft"/><!-- LEFT CURLY BRACKET --> - <map code="0x7c" name="bar"/><!-- VERTICAL LINE --> - <map code="0x7d" name="braceright"/><!-- RIGHT CURLY BRACKET --> - <map code="0x7e" name="asciitilde"/><!-- TILDE --> - <map code="0x80" name="Euro#1"/><!-- <control> --> - <map code="0xa0" name="nonbreakingspace"/><!-- NO-BREAK SPACE --> - <map code="0xa1" name="exclamdown"/><!-- INVERTED EXCLAMATION MARK --> - <map code="0xa2" name="cent"/><!-- CENT SIGN --> - <map code="0xa3" name="sterling"/><!-- POUND SIGN --> - <map code="0xa4" name="currency"/><!-- CURRENCY SIGN --> - <map code="0xa5" name="yen"/><!-- YEN SIGN --> - <map code="0xa6" name="brokenbar"/><!-- BROKEN BAR --> - <map code="0xa7" name="section"/><!-- SECTION SIGN --> - <map code="0xa8" name="dieresis"/><!-- DIAERESIS --> - <map code="0xa9" name="copyright"/><!-- COPYRIGHT SIGN --> - <map code="0xaa" name="ordfeminine"/><!-- FEMININE ORDINAL INDICATOR --> - <map code="0xab" name="guillemotleft"/><!-- LEFT-POINTING DOUBLE ANGLE QUOTATION MARK --> - <map code="0xac" name="logicalnot"/><!-- NOT SIGN --> - <map code="0xad" name="sfthyphen"/><!-- SOFT HYPHEN --> - <map code="0xae" name="registered"/><!-- REGISTERED SIGN --> - <map code="0xaf" name="macron#1"/><!-- MACRON --> - <map code="0xb0" name="degree"/><!-- DEGREE SIGN --> - <map code="0xb1" name="plusminus"/><!-- PLUS-MINUS SIGN --> - <map code="0xb2" name="twosuperior"/><!-- SUPERSCRIPT TWO --> - <map code="0xb3" name="threesuperior"/><!-- SUPERSCRIPT THREE --> - <map code="0xb4" name="acute"/><!-- ACUTE ACCENT --> - <map code="0xb5" name="mu"/><!-- MICRO SIGN --> - <map code="0xb6" name="paragraph"/><!-- PILCROW SIGN --> - <map code="0xb7" name="periodcentered#1"/><!-- MIDDLE DOT --> - <map code="0xb8" name="cedilla"/><!-- CEDILLA --> - <map code="0xb9" name="onesuperior"/><!-- SUPERSCRIPT ONE --> - <map code="0xba" name="ordmasculine"/><!-- MASCULINE ORDINAL INDICATOR --> - <map code="0xbb" name="guillemotright"/><!-- RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK --> - <map code="0xbc" name="onequarter"/><!-- VULGAR FRACTION ONE QUARTER --> - <map code="0xbd" name="onehalf"/><!-- VULGAR FRACTION ONE HALF --> - <map code="0xbe" name="threequarters"/><!-- VULGAR FRACTION THREE QUARTERS --> - <map code="0xbf" name="questiondown"/><!-- INVERTED QUESTION MARK --> - <map code="0xc0" name="Agrave"/><!-- LATIN CAPITAL LETTER A WITH GRAVE --> - <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE --> - <map code="0xc2" name="Acircumflex"/><!-- LATIN CAPITAL LETTER A WITH CIRCUMFLEX --> - <map code="0xc3" name="Atilde"/><!-- LATIN CAPITAL LETTER A WITH TILDE --> - <map code="0xc4" name="Adieresis"/><!-- LATIN CAPITAL LETTER A WITH DIAERESIS --> - <map code="0xc5" name="Aring"/><!-- LATIN CAPITAL LETTER A WITH RING ABOVE --> - <map code="0xc6" name="AE"/><!-- LATIN CAPITAL LETTER AE --> - <map code="0xc7" name="Ccedilla"/><!-- LATIN CAPITAL LETTER C WITH CEDILLA --> - <map code="0xc8" name="Egrave"/><!-- LATIN CAPITAL LETTER E WITH GRAVE --> - <map code="0xc9" name="Eacute"/><!-- LATIN CAPITAL LETTER E WITH ACUTE --> - <map code="0xca" name="Ecircumflex"/><!-- LATIN CAPITAL LETTER E WITH CIRCUMFLEX --> - <map code="0xcb" name="Edieresis"/><!-- LATIN CAPITAL LETTER E WITH DIAERESIS --> - <map code="0xcc" name="Igrave"/><!-- LATIN CAPITAL LETTER I WITH GRAVE --> - <map code="0xcd" name="Iacute"/><!-- LATIN CAPITAL LETTER I WITH ACUTE --> - <map code="0xce" name="Icircumflex"/><!-- LATIN CAPITAL LETTER I WITH CIRCUMFLEX --> - <map code="0xcf" name="Idieresis"/><!-- LATIN CAPITAL LETTER I WITH DIAERESIS --> - <map code="0xd0" name="Eth"/><!-- LATIN CAPITAL LETTER ETH --> - <map code="0xd1" name="Ntilde"/><!-- LATIN CAPITAL LETTER N WITH TILDE --> - <map code="0xd2" name="Ograve"/><!-- LATIN CAPITAL LETTER O WITH GRAVE --> - <map code="0xd3" name="Oacute"/><!-- LATIN CAPITAL LETTER O WITH ACUTE --> - <map code="0xd4" name="Ocircumflex"/><!-- LATIN CAPITAL LETTER O WITH CIRCUMFLEX --> - <map code="0xd5" name="Otilde"/><!-- LATIN CAPITAL LETTER O WITH TILDE --> - <map code="0xd6" name="Odieresis"/><!-- LATIN CAPITAL LETTER O WITH DIAERESIS --> - <map code="0xd7" name="multiply"/><!-- MULTIPLICATION SIGN --> - <map code="0xd8" name="Oslash"/><!-- LATIN CAPITAL LETTER O WITH STROKE --> - <map code="0xd9" name="Ugrave"/><!-- LATIN CAPITAL LETTER U WITH GRAVE --> - <map code="0xda" name="Uacute"/><!-- LATIN CAPITAL LETTER U WITH ACUTE --> - <map code="0xdb" name="Ucircumflex"/><!-- LATIN CAPITAL LETTER U WITH CIRCUMFLEX --> - <map code="0xdc" name="Udieresis"/><!-- LATIN CAPITAL LETTER U WITH DIAERESIS --> - <map code="0xdd" name="Yacute"/><!-- LATIN CAPITAL LETTER Y WITH ACUTE --> - <map code="0xde" name="Thorn"/><!-- LATIN CAPITAL LETTER THORN --> - <map code="0xdf" name="germandbls"/><!-- LATIN SMALL LETTER SHARP S --> - <map code="0xe0" name="agrave"/><!-- LATIN SMALL LETTER A WITH GRAVE --> - <map code="0xe1" name="aacute"/><!-- LATIN SMALL LETTER A WITH ACUTE --> - <map code="0xe2" name="acircumflex"/><!-- LATIN SMALL LETTER A WITH CIRCUMFLEX --> - <map code="0xe3" name="atilde"/><!-- LATIN SMALL LETTER A WITH TILDE --> - <map code="0xe4" name="adieresis"/><!-- LATIN SMALL LETTER A WITH DIAERESIS --> - <map code="0xe5" name="aring"/><!-- LATIN SMALL LETTER A WITH RING ABOVE --> - <map code="0xe6" name="ae"/><!-- LATIN SMALL LETTER AE --> - <map code="0xe7" name="ccedilla"/><!-- LATIN SMALL LETTER C WITH CEDILLA --> - <map code="0xe8" name="egrave"/><!-- LATIN SMALL LETTER E WITH GRAVE --> - <map code="0xe9" name="eacute"/><!-- LATIN SMALL LETTER E WITH ACUTE --> - <map code="0xea" name="ecircumflex"/><!-- LATIN SMALL LETTER E WITH CIRCUMFLEX --> - <map code="0xeb" name="edieresis"/><!-- LATIN SMALL LETTER E WITH DIAERESIS --> - <map code="0xec" name="igrave"/><!-- LATIN SMALL LETTER I WITH GRAVE --> - <map code="0xed" name="iacute"/><!-- LATIN SMALL LETTER I WITH ACUTE --> - <map code="0xee" name="icircumflex"/><!-- LATIN SMALL LETTER I WITH CIRCUMFLEX --> - <map code="0xef" name="idieresis"/><!-- LATIN SMALL LETTER I WITH DIAERESIS --> - <map code="0xf0" name="eth"/><!-- LATIN SMALL LETTER ETH --> - <map code="0xf1" name="ntilde"/><!-- LATIN SMALL LETTER N WITH TILDE --> - <map code="0xf2" name="ograve"/><!-- LATIN SMALL LETTER O WITH GRAVE --> - <map code="0xf3" name="oacute"/><!-- LATIN SMALL LETTER O WITH ACUTE --> - <map code="0xf4" name="ocircumflex"/><!-- LATIN SMALL LETTER O WITH CIRCUMFLEX --> - <map code="0xf5" name="otilde"/><!-- LATIN SMALL LETTER O WITH TILDE --> - <map code="0xf6" name="odieresis"/><!-- LATIN SMALL LETTER O WITH DIAERESIS --> - <map code="0xf7" name="divide"/><!-- DIVISION SIGN --> - <map code="0xf8" name="oslash"/><!-- LATIN SMALL LETTER O WITH STROKE --> - <map code="0xf9" name="ugrave"/><!-- LATIN SMALL LETTER U WITH GRAVE --> - <map code="0xfa" name="uacute"/><!-- LATIN SMALL LETTER U WITH ACUTE --> - <map code="0xfb" name="ucircumflex"/><!-- LATIN SMALL LETTER U WITH CIRCUMFLEX --> - <map code="0xfc" name="udieresis"/><!-- LATIN SMALL LETTER U WITH DIAERESIS --> - <map code="0xfd" name="yacute"/><!-- LATIN SMALL LETTER Y WITH ACUTE --> - <map code="0xfe" name="thorn"/><!-- LATIN SMALL LETTER THORN --> - <map code="0xff" name="ydieresis"/><!-- LATIN SMALL LETTER Y WITH DIAERESIS --> - <map code="0x100" name="Amacron"/><!-- LATIN CAPITAL LETTER A WITH MACRON --> - <map code="0x101" name="amacron"/><!-- LATIN SMALL LETTER A WITH MACRON --> - <map code="0x102" name="Abreve"/><!-- LATIN CAPITAL LETTER A WITH BREVE --> - <map code="0x103" name="abreve"/><!-- LATIN SMALL LETTER A WITH BREVE --> - <map code="0x104" name="Aogonek"/><!-- LATIN CAPITAL LETTER A WITH OGONEK --> - <map code="0x105" name="aogonek"/><!-- LATIN SMALL LETTER A WITH OGONEK --> - <map code="0x106" name="Cacute"/><!-- LATIN CAPITAL LETTER C WITH ACUTE --> - <map code="0x107" name="cacute"/><!-- LATIN SMALL LETTER C WITH ACUTE --> - <map code="0x108" name="Ccircumflex"/><!-- LATIN CAPITAL LETTER C WITH CIRCUMFLEX --> - <map code="0x109" name="ccircumflex"/><!-- LATIN SMALL LETTER C WITH CIRCUMFLEX --> - <map code="0x10a" name="Cdotaccent"/><!-- LATIN CAPITAL LETTER C WITH DOT ABOVE --> - <map code="0x10b" name="cdotaccent"/><!-- LATIN SMALL LETTER C WITH DOT ABOVE --> - <map code="0x10c" name="Ccaron"/><!-- LATIN CAPITAL LETTER C WITH CARON --> - <map code="0x10d" name="ccaron"/><!-- LATIN SMALL LETTER C WITH CARON --> - <map code="0x10e" name="Dcaron"/><!-- LATIN CAPITAL LETTER D WITH CARON --> - <map code="0x10f" name="dcaron"/><!-- LATIN SMALL LETTER D WITH CARON --> - <map code="0x110" name="Dcroat"/><!-- LATIN CAPITAL LETTER D WITH STROKE --> - <map code="0x111" name="dcroat"/><!-- LATIN SMALL LETTER D WITH STROKE --> - <map code="0x112" name="Emacron"/><!-- LATIN CAPITAL LETTER E WITH MACRON --> - <map code="0x113" name="emacron"/><!-- LATIN SMALL LETTER E WITH MACRON --> - <map code="0x114" name="Ebreve"/><!-- LATIN CAPITAL LETTER E WITH BREVE --> - <map code="0x115" name="ebreve"/><!-- LATIN SMALL LETTER E WITH BREVE --> - <map code="0x116" name="Edotaccent"/><!-- LATIN CAPITAL LETTER E WITH DOT ABOVE --> - <map code="0x117" name="edotaccent"/><!-- LATIN SMALL LETTER E WITH DOT ABOVE --> - <map code="0x118" name="Eogonek"/><!-- LATIN CAPITAL LETTER E WITH OGONEK --> - <map code="0x119" name="eogonek"/><!-- LATIN SMALL LETTER E WITH OGONEK --> - <map code="0x11a" name="Ecaron"/><!-- LATIN CAPITAL LETTER E WITH CARON --> - <map code="0x11b" name="ecaron"/><!-- LATIN SMALL LETTER E WITH CARON --> - <map code="0x11c" name="Gcircumflex"/><!-- LATIN CAPITAL LETTER G WITH CIRCUMFLEX --> - <map code="0x11d" name="gcircumflex"/><!-- LATIN SMALL LETTER G WITH CIRCUMFLEX --> - <map code="0x11e" name="Gbreve"/><!-- LATIN CAPITAL LETTER G WITH BREVE --> - <map code="0x11f" name="gbreve"/><!-- LATIN SMALL LETTER G WITH BREVE --> - <map code="0x120" name="Gdotaccent"/><!-- LATIN CAPITAL LETTER G WITH DOT ABOVE --> - <map code="0x121" name="gdotaccent"/><!-- LATIN SMALL LETTER G WITH DOT ABOVE --> - <map code="0x122" name="Gcommaaccent"/><!-- LATIN CAPITAL LETTER G WITH CEDILLA --> - <map code="0x123" name="gcommaaccent"/><!-- LATIN SMALL LETTER G WITH CEDILLA --> - <map code="0x124" name="Hcircumflex"/><!-- LATIN CAPITAL LETTER H WITH CIRCUMFLEX --> - <map code="0x125" name="hcircumflex"/><!-- LATIN SMALL LETTER H WITH CIRCUMFLEX --> - <map code="0x126" name="Hbar"/><!-- LATIN CAPITAL LETTER H WITH STROKE --> - <map code="0x127" name="hbar"/><!-- LATIN SMALL LETTER H WITH STROKE --> - <map code="0x128" name="Itilde"/><!-- LATIN CAPITAL LETTER I WITH TILDE --> - <map code="0x129" name="itilde"/><!-- LATIN SMALL LETTER I WITH TILDE --> - <map code="0x12a" name="Imacron"/><!-- LATIN CAPITAL LETTER I WITH MACRON --> - <map code="0x12b" name="imacron"/><!-- LATIN SMALL LETTER I WITH MACRON --> - <map code="0x12c" name="Ibreve"/><!-- LATIN CAPITAL LETTER I WITH BREVE --> - <map code="0x12d" name="ibreve"/><!-- LATIN SMALL LETTER I WITH BREVE --> - <map code="0x12e" name="Iogonek"/><!-- LATIN CAPITAL LETTER I WITH OGONEK --> - <map code="0x12f" name="iogonek"/><!-- LATIN SMALL LETTER I WITH OGONEK --> - <map code="0x130" name="Idotaccent"/><!-- LATIN CAPITAL LETTER I WITH DOT ABOVE --> - <map code="0x131" name="dotlessi"/><!-- LATIN SMALL LETTER DOTLESS I --> - <map code="0x132" name="IJ"/><!-- LATIN CAPITAL LIGATURE IJ --> - <map code="0x133" name="ij"/><!-- LATIN SMALL LIGATURE IJ --> - <map code="0x134" name="Jcircumflex"/><!-- LATIN CAPITAL LETTER J WITH CIRCUMFLEX --> - <map code="0x135" name="jcircumflex"/><!-- LATIN SMALL LETTER J WITH CIRCUMFLEX --> - <map code="0x136" name="Kcommaaccent"/><!-- LATIN CAPITAL LETTER K WITH CEDILLA --> - <map code="0x137" name="kcommaaccent"/><!-- LATIN SMALL LETTER K WITH CEDILLA --> - <map code="0x138" name="kgreenlandic"/><!-- LATIN SMALL LETTER KRA --> - <map code="0x139" name="Lacute"/><!-- LATIN CAPITAL LETTER L WITH ACUTE --> - <map code="0x13a" name="lacute"/><!-- LATIN SMALL LETTER L WITH ACUTE --> - <map code="0x13b" name="Lcommaaccent"/><!-- LATIN CAPITAL LETTER L WITH CEDILLA --> - <map code="0x13c" name="lcommaaccent"/><!-- LATIN SMALL LETTER L WITH CEDILLA --> - <map code="0x13d" name="Lcaron"/><!-- LATIN CAPITAL LETTER L WITH CARON --> - <map code="0x13e" name="lcaron"/><!-- LATIN SMALL LETTER L WITH CARON --> - <map code="0x13f" name="Ldot"/><!-- LATIN CAPITAL LETTER L WITH MIDDLE DOT --> - <map code="0x140" name="ldot"/><!-- LATIN SMALL LETTER L WITH MIDDLE DOT --> - <map code="0x141" name="Lslash"/><!-- LATIN CAPITAL LETTER L WITH STROKE --> - <map code="0x142" name="lslash"/><!-- LATIN SMALL LETTER L WITH STROKE --> - <map code="0x143" name="Nacute"/><!-- LATIN CAPITAL LETTER N WITH ACUTE --> - <map code="0x144" name="nacute"/><!-- LATIN SMALL LETTER N WITH ACUTE --> - <map code="0x145" name="Ncommaaccent"/><!-- LATIN CAPITAL LETTER N WITH CEDILLA --> - <map code="0x146" name="ncommaaccent"/><!-- LATIN SMALL LETTER N WITH CEDILLA --> - <map code="0x147" name="Ncaron"/><!-- LATIN CAPITAL LETTER N WITH CARON --> - <map code="0x148" name="ncaron"/><!-- LATIN SMALL LETTER N WITH CARON --> - <map code="0x149" name="napostrophe"/><!-- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE --> - <map code="0x14a" name="Eng"/><!-- LATIN CAPITAL LETTER ENG --> - <map code="0x14b" name="eng"/><!-- LATIN SMALL LETTER ENG --> - <map code="0x14c" name="Omacron"/><!-- LATIN CAPITAL LETTER O WITH MACRON --> - <map code="0x14d" name="omacron"/><!-- LATIN SMALL LETTER O WITH MACRON --> - <map code="0x14e" name="Obreve"/><!-- LATIN CAPITAL LETTER O WITH BREVE --> - <map code="0x14f" name="obreve"/><!-- LATIN SMALL LETTER O WITH BREVE --> - <map code="0x150" name="Ohungarumlaut"/><!-- LATIN CAPITAL LETTER O WITH DOUBLE ACUTE --> - <map code="0x151" name="ohungarumlaut"/><!-- LATIN SMALL LETTER O WITH DOUBLE ACUTE --> - <map code="0x152" name="OE"/><!-- LATIN CAPITAL LIGATURE OE --> - <map code="0x153" name="oe"/><!-- LATIN SMALL LIGATURE OE --> - <map code="0x154" name="Racute"/><!-- LATIN CAPITAL LETTER R WITH ACUTE --> - <map code="0x155" name="racute"/><!-- LATIN SMALL LETTER R WITH ACUTE --> - <map code="0x156" name="Rcommaaccent"/><!-- LATIN CAPITAL LETTER R WITH CEDILLA --> - <map code="0x157" name="rcommaaccent"/><!-- LATIN SMALL LETTER R WITH CEDILLA --> - <map code="0x158" name="Rcaron"/><!-- LATIN CAPITAL LETTER R WITH CARON --> - <map code="0x159" name="rcaron"/><!-- LATIN SMALL LETTER R WITH CARON --> - <map code="0x15a" name="Sacute"/><!-- LATIN CAPITAL LETTER S WITH ACUTE --> - <map code="0x15b" name="sacute"/><!-- LATIN SMALL LETTER S WITH ACUTE --> - <map code="0x15c" name="Scircumflex"/><!-- LATIN CAPITAL LETTER S WITH CIRCUMFLEX --> - <map code="0x15d" name="scircumflex"/><!-- LATIN SMALL LETTER S WITH CIRCUMFLEX --> - <map code="0x15e" name="Scedilla"/><!-- LATIN CAPITAL LETTER S WITH CEDILLA --> - <map code="0x15f" name="scedilla"/><!-- LATIN SMALL LETTER S WITH CEDILLA --> - <map code="0x160" name="Scaron"/><!-- LATIN CAPITAL LETTER S WITH CARON --> - <map code="0x161" name="scaron"/><!-- LATIN SMALL LETTER S WITH CARON --> - <map code="0x162" name="Tcommaaccent"/><!-- LATIN CAPITAL LETTER T WITH CEDILLA --> - <map code="0x163" name="tcommaaccent"/><!-- LATIN SMALL LETTER T WITH CEDILLA --> - <map code="0x164" name="Tcaron"/><!-- LATIN CAPITAL LETTER T WITH CARON --> - <map code="0x165" name="tcaron"/><!-- LATIN SMALL LETTER T WITH CARON --> - <map code="0x166" name="Tbar"/><!-- LATIN CAPITAL LETTER T WITH STROKE --> - <map code="0x167" name="tbar"/><!-- LATIN SMALL LETTER T WITH STROKE --> - <map code="0x168" name="Utilde"/><!-- LATIN CAPITAL LETTER U WITH TILDE --> - <map code="0x169" name="utilde"/><!-- LATIN SMALL LETTER U WITH TILDE --> - <map code="0x16a" name="Umacron"/><!-- LATIN CAPITAL LETTER U WITH MACRON --> - <map code="0x16b" name="umacron"/><!-- LATIN SMALL LETTER U WITH MACRON --> - <map code="0x16c" name="Ubreve"/><!-- LATIN CAPITAL LETTER U WITH BREVE --> - <map code="0x16d" name="ubreve"/><!-- LATIN SMALL LETTER U WITH BREVE --> - <map code="0x16e" name="Uring"/><!-- LATIN CAPITAL LETTER U WITH RING ABOVE --> - <map code="0x16f" name="uring"/><!-- LATIN SMALL LETTER U WITH RING ABOVE --> - <map code="0x170" name="Uhungarumlaut"/><!-- LATIN CAPITAL LETTER U WITH DOUBLE ACUTE --> - <map code="0x171" name="uhungarumlaut"/><!-- LATIN SMALL LETTER U WITH DOUBLE ACUTE --> - <map code="0x172" name="Uogonek"/><!-- LATIN CAPITAL LETTER U WITH OGONEK --> - <map code="0x173" name="uogonek"/><!-- LATIN SMALL LETTER U WITH OGONEK --> - <map code="0x174" name="Wcircumflex"/><!-- LATIN CAPITAL LETTER W WITH CIRCUMFLEX --> - <map code="0x175" name="wcircumflex"/><!-- LATIN SMALL LETTER W WITH CIRCUMFLEX --> - <map code="0x176" name="Ycircumflex"/><!-- LATIN CAPITAL LETTER Y WITH CIRCUMFLEX --> - <map code="0x177" name="ycircumflex"/><!-- LATIN SMALL LETTER Y WITH CIRCUMFLEX --> - <map code="0x178" name="Ydieresis"/><!-- LATIN CAPITAL LETTER Y WITH DIAERESIS --> - <map code="0x179" name="Zacute"/><!-- LATIN CAPITAL LETTER Z WITH ACUTE --> - <map code="0x17a" name="zacute"/><!-- LATIN SMALL LETTER Z WITH ACUTE --> - <map code="0x17b" name="Zdotaccent"/><!-- LATIN CAPITAL LETTER Z WITH DOT ABOVE --> - <map code="0x17c" name="zdotaccent"/><!-- LATIN SMALL LETTER Z WITH DOT ABOVE --> - <map code="0x17d" name="Zcaron"/><!-- LATIN CAPITAL LETTER Z WITH CARON --> - <map code="0x17e" name="zcaron"/><!-- LATIN SMALL LETTER Z WITH CARON --> - <map code="0x17f" name="longs"/><!-- LATIN SMALL LETTER LONG S --> - <map code="0x192" name="florin"/><!-- LATIN SMALL LETTER F WITH HOOK --> - <map code="0x218" name="Scommaaccent"/><!-- LATIN CAPITAL LETTER S WITH COMMA BELOW --> - <map code="0x219" name="scommaaccent"/><!-- LATIN SMALL LETTER S WITH COMMA BELOW --> - <map code="0x21a" name="Tcommabelow"/><!-- LATIN CAPITAL LETTER T WITH COMMA BELOW --> - <map code="0x21b" name="tcommabelow"/><!-- LATIN SMALL LETTER T WITH COMMA BELOW --> - <map code="0x2c6" name="circumflex"/><!-- MODIFIER LETTER CIRCUMFLEX ACCENT --> - <map code="0x2c7" name="caron"/><!-- CARON --> - <map code="0x2c9" name="macron"/><!-- MODIFIER LETTER MACRON --> - <map code="0x2d8" name="breve"/><!-- BREVE --> - <map code="0x2d9" name="dotaccent"/><!-- DOT ABOVE --> - <map code="0x2da" name="ring"/><!-- RING ABOVE --> - <map code="0x2db" name="ogonek"/><!-- OGONEK --> - <map code="0x2dc" name="tilde"/><!-- SMALL TILDE --> - <map code="0x2dd" name="hungarumlaut"/><!-- DOUBLE ACUTE ACCENT --> - <map code="0x326" name="Unterkomma"/><!-- COMBINING COMMA BELOW --> - <map code="0x37e" name="semicolon#1"/><!-- GREEK QUESTION MARK --> - <map code="0x387" name="anoteleia"/><!-- GREEK ANO TELEIA --> - <map code="0x2010" name="hyphen#1"/><!-- HYPHEN --> - <map code="0x2011" name="nbhyphen"/><!-- NON-BREAKING HYPHEN --> - <map code="0x2012" name="figuredash"/><!-- FIGURE DASH --> - <map code="0x2013" name="endash"/><!-- EN DASH --> - <map code="0x2014" name="emdash"/><!-- EM DASH --> - <map code="0x2015" name="afii00208"/><!-- HORIZONTAL BAR --> - <map code="0x2018" name="quoteleft"/><!-- LEFT SINGLE QUOTATION MARK --> - <map code="0x2019" name="quoteright"/><!-- RIGHT SINGLE QUOTATION MARK --> - <map code="0x201a" name="quotesinglbase"/><!-- SINGLE LOW-9 QUOTATION MARK --> - <map code="0x201b" name="quotereversed"/><!-- SINGLE HIGH-REVERSED-9 QUOTATION MARK --> - <map code="0x201c" name="quotedblleft"/><!-- LEFT DOUBLE QUOTATION MARK --> - <map code="0x201d" name="quotedblright"/><!-- RIGHT DOUBLE QUOTATION MARK --> - <map code="0x201e" name="quotedblbase"/><!-- DOUBLE LOW-9 QUOTATION MARK --> - <map code="0x2020" name="dagger"/><!-- DAGGER --> - <map code="0x2021" name="daggerdbl"/><!-- DOUBLE DAGGER --> - <map code="0x2022" name="bullet"/><!-- BULLET --> - <map code="0x2026" name="ellipsis"/><!-- HORIZONTAL ELLIPSIS --> - <map code="0x2030" name="perthousand"/><!-- PER MILLE SIGN --> - <map code="0x2039" name="guilsinglleft"/><!-- SINGLE LEFT-POINTING ANGLE QUOTATION MARK --> - <map code="0x203a" name="guilsinglright"/><!-- SINGLE RIGHT-POINTING ANGLE QUOTATION MARK --> - <map code="0x203e" name="radicalex"/><!-- OVERLINE --> - <map code="0x2044" name="fraction"/><!-- FRACTION SLASH --> - <map code="0x20ac" name="Euro"/><!-- EURO SIGN --> - <map code="0x2122" name="trademark"/><!-- TRADE MARK SIGN --> - <map code="0x212e" name="estimated"/><!-- ESTIMATED SYMBOL --> - <map code="0x2212" name="minus"/><!-- MINUS SIGN --> - <map code="0x2215" name="fraction#1"/><!-- DIVISION SLASH --> - <map code="0x2219" name="periodcentered"/><!-- BULLET OPERATOR --> - <map code="0x22c5" name="dotmath"/><!-- DOT OPERATOR --> - <map code="0xea01" name="fi#1"/><!-- Private Use --> - <map code="0xea02" name="fl#1"/><!-- Private Use --> - <map code="0xf001" name="fi"/><!-- Private Use --> - <map code="0xf002" name="fl"/><!-- Private Use --> - <map code="0xf004" name="foursuperiour"/><!-- Private Use --> - <map code="0xf6be" name="dotlessj"/><!-- Private Use --> - <map code="0xfb01" name="fi"/><!-- LATIN SMALL LIGATURE FI --> - <map code="0xfb02" name="fl"/><!-- LATIN SMALL LIGATURE FL --> - </cmap_format_4> - </cmap> - - <fpgm> - <assembly> - NPUSHB[ ] /* 15 values pushed */ - 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - FDEF[ ] - SLOOP[ ] - MDAP[1] - ALIGNRP[ ] - ENDF[ ] - FDEF[ ] - MDAP[1] - ALIGNRP[ ] - ENDF[ ] - FDEF[ ] - SRP1[ ] - SRP2[ ] - IP[ ] - ENDF[ ] - FDEF[ ] - SRP1[ ] - SRP2[ ] - SLOOP[ ] - IP[ ] - ENDF[ ] - FDEF[ ] - SRP0[ ] - SLOOP[ ] - MIRP[11101] - ALIGNRP[ ] - ENDF[ ] - FDEF[ ] - SRP0[ ] - SLOOP[ ] - MIRP[10100] - ALIGNRP[ ] - ENDF[ ] - FDEF[ ] - SRP0[ ] - SLOOP[ ] - MDRP[11101] - ALIGNRP[ ] - ENDF[ ] - FDEF[ ] - SRP0[ ] - SLOOP[ ] - MDRP[10100] - ALIGNRP[ ] - ENDF[ ] - FDEF[ ] - SRP0[ ] - MIRP[11101] - ENDF[ ] - FDEF[ ] - SRP0[ ] - MIRP[10100] - ENDF[ ] - FDEF[ ] - SRP0[ ] - MDRP[11101] - ENDF[ ] - FDEF[ ] - SRP0[ ] - MDRP[10100] - ENDF[ ] - FDEF[ ] - MDRP[00100] - ENDF[ ] - FDEF[ ] - MDRP[00000] - ENDF[ ] - FDEF[ ] - SVTCA[0] - NPUSHB[ ] /* 10 values pushed */ - 1 0 0 1 1 2 2 3 3 0 - SZPS[ ] - MIAP[1] - MIAP[1] - MIAP[1] - MIAP[1] - SZPS[ ] - ENDF[ ] - </assembly> - </fpgm> - - <prep> - <assembly> - PUSHB[ ] /* 2 values pushed */ - 48 1 - PUSHW[ ] /* 1 value pushed */ - 329 - RTG[ ] - SCANCTRL[ ] - SCANTYPE[ ] - SCVTCI[ ] - </assembly> - </prep> - - <cvt> - <cv index="0" value="1480"/> - <cv index="1" value="1086"/> - <cv index="2" value="0"/> - <cv index="3" value="-512"/> - <cv index="4" value="196"/> - <cv index="5" value="200"/> - <cv index="6" value="247"/> - <cv index="7" value="84"/> - <cv index="8" value="87"/> - <cv index="9" value="101"/> - <cv index="10" value="212"/> - <cv index="11" value="63"/> - <cv index="12" value="125"/> - <cv index="13" value="172"/> - <cv index="14" value="65"/> - <cv index="15" value="114"/> - <cv index="16" value="183"/> - <cv index="17" value="70"/> - <cv index="18" value="171"/> - <cv index="19" value="149"/> - <cv index="20" value="140"/> - <cv index="21" value="77"/> - <cv index="22" value="121"/> - <cv index="23" value="138"/> - <cv index="24" value="159"/> - <cv index="25" value="53"/> - <cv index="26" value="165"/> - <cv index="27" value="285"/> - <cv index="28" value="186"/> - <cv index="29" value="128"/> - <cv index="30" value="193"/> - <cv index="31" value="145"/> - <cv index="32" value="210"/> - <cv index="33" value="220"/> - <cv index="34" value="230"/> - <cv index="35" value="94"/> - <cv index="36" value="227"/> - <cv index="37" value="213"/> - <cv index="38" value="68"/> - <cv index="39" value="131"/> - <cv index="40" value="217"/> - <cv index="41" value="104"/> - <cv index="42" value="80"/> - <cv index="43" value="108"/> - <cv index="44" value="126"/> - <cv index="45" value="39"/> - <cv index="46" value="90"/> - <cv index="47" value="147"/> - <cv index="48" value="135"/> - </cvt> - - <loca> - <!-- The 'loca' table will be calculated by the compiler --> - </loca> - - <glyf> - - <!-- The xMin, yMin, xMax and yMax values - will be recalculated by the compiler. --> - - <TTGlyph name=".notdef" xMin="51" yMin="0" xMax="461" yMax="1480"> - <contour> - <pt x="51" y="0" on="1"/> - <pt x="51" y="1480" on="1"/> - <pt x="461" y="1480" on="1"/> - <pt x="461" y="0" on="1"/> - </contour> - <contour> - <pt x="410" y="51" on="1"/> - <pt x="410" y="1429" on="1"/> - <pt x="102" y="1429" on="1"/> - <pt x="102" y="51" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 16 values pushed */ - 5 6 2 1 4 7 3 0 5 4 2 3 6 7 1 0 - MDAP[1] - ALIGNRP[ ] - MDRP[11100] - ALIGNRP[ ] - MDAP[1] - ALIGNRP[ ] - MDRP[11100] - ALIGNRP[ ] - SVTCA[0] - MDAP[1] - ALIGNRP[ ] - MDRP[11100] - ALIGNRP[ ] - MDAP[1] - ALIGNRP[ ] - MDRP[11100] - ALIGNRP[ ] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name=".notdef#1"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#10"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#11"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#12"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#13"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#14"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#15"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#16"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#17"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#18"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#2"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#3"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#4"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#5"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#6"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#7"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#8"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#9"/><!-- contains no outline data --> - - <TTGlyph name="A" xMin="0" yMin="0" xMax="1479" yMax="1499"> - <contour> - <pt x="0" y="0" on="1"/> - <pt x="0" y="62" on="1"/> - <pt x="22" y="63" on="1"/> - <pt x="86" y="67" on="0"/> - <pt x="102" y="87" on="1"/> - <pt x="117" y="103" on="0"/> - <pt x="139" y="154" on="1"/> - <pt x="185" y="259" on="1"/> - <pt x="706" y="1499" on="1"/> - <pt x="776" y="1499" on="1"/> - <pt x="1295" y="252" on="1"/> - <pt x="1345" y="149" on="1"/> - <pt x="1385" y="67" on="0"/> - <pt x="1457" y="63" on="1"/> - <pt x="1479" y="62" on="1"/> - <pt x="1479" y="0" on="1"/> - <pt x="990" y="0" on="1"/> - <pt x="990" y="62" on="1"/> - <pt x="1008" y="62" on="1"/> - <pt x="1111" y="62" on="0"/> - <pt x="1111" y="106" on="1"/> - <pt x="1111" y="160" on="0"/> - <pt x="1069" y="259" on="1"/> - <pt x="986" y="456" on="1"/> - <pt x="352" y="456" on="1"/> - <pt x="267" y="259" on="1"/> - <pt x="250" y="220" on="0"/> - <pt x="245" y="205" on="1"/> - <pt x="223" y="135" on="1"/> - <pt x="217" y="116" on="0"/> - <pt x="217" y="102" on="1"/> - <pt x="217" y="62" on="0"/> - <pt x="309" y="62" on="1"/> - <pt x="325" y="62" on="1"/> - <pt x="325" y="0" on="1"/> - </contour> - <contour> - <pt x="385" y="537" on="1"/> - <pt x="950" y="537" on="1"/> - <pt x="669" y="1211" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 61 values pushed */ - 33 32 18 17 14 10 7 1 8 23 0 3 37 9 8 3 13 35 0 0 24 23 7 1 35 - 1 4 48 84 36 35 1 34 16 15 0 3 2 0 14 37 36 35 34 33 32 30 24 23 20 - 18 17 16 15 14 10 9 8 7 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="AE" xMin="0" yMin="0" xMax="1771" yMax="1480"> - <contour> - <pt x="0" y="0" on="1"/> - <pt x="0" y="62" on="1"/> - <pt x="17" y="63" on="1"/> - <pt x="78" y="68" on="0"/> - <pt x="128" y="151" on="1"/> - <pt x="194" y="258" on="1"/> - <pt x="938" y="1480" on="1"/> - <pt x="1716" y="1480" on="1"/> - <pt x="1716" y="1221" on="1"/> - <pt x="1605" y="1221" on="1"/> - <pt x="1604" y="1240" on="1"/> - <pt x="1598" y="1324" on="1"/> - <pt x="1597" y="1380" on="0"/> - <pt x="1580" y="1390" on="1"/> - <pt x="1563" y="1399" on="0"/> - <pt x="1525" y="1399" on="1"/> - <pt x="1422" y="1400" on="1"/> - <pt x="1151" y="1400" on="1"/> - <pt x="1151" y="808" on="1"/> - <pt x="1379" y="808" on="1"/> - <pt x="1442" y="811" on="1"/> - <pt x="1490" y="812" on="0"/> - <pt x="1500" y="823" on="1"/> - <pt x="1507" y="833" on="0"/> - <pt x="1510" y="859" on="1"/> - <pt x="1511" y="866" on="1"/> - <pt x="1510" y="873" on="1"/> - <pt x="1512" y="878" on="0"/> - <pt x="1512" y="883" on="1"/> - <pt x="1512" y="897" on="1"/> - <pt x="1513" y="913" on="1"/> - <pt x="1515" y="931" on="1"/> - <pt x="1607" y="931" on="1"/> - <pt x="1607" y="605" on="1"/> - <pt x="1515" y="605" on="1"/> - <pt x="1513" y="623" on="1"/> - <pt x="1506" y="708" on="0"/> - <pt x="1482" y="717" on="1"/> - <pt x="1457" y="728" on="0"/> - <pt x="1379" y="728" on="1"/> - <pt x="1151" y="728" on="1"/> - <pt x="1151" y="259" on="1"/> - <pt x="1152" y="123" on="0"/> - <pt x="1191" y="105" on="1"/> - <pt x="1227" y="86" on="0"/> - <pt x="1321" y="86" on="1"/> - <pt x="1427" y="86" on="1"/> - <pt x="1568" y="92" on="1"/> - <pt x="1651" y="93" on="0"/> - <pt x="1656" y="162" on="1"/> - <pt x="1659" y="253" on="1"/> - <pt x="1660" y="271" on="1"/> - <pt x="1771" y="271" on="1"/> - <pt x="1771" y="0" on="1"/> - <pt x="756" y="0" on="1"/> - <pt x="756" y="62" on="1"/> - <pt x="774" y="63" on="1"/> - <pt x="842" y="68" on="1"/> - <pt x="910" y="73" on="0"/> - <pt x="921" y="95" on="1"/> - <pt x="932" y="115" on="0"/> - <pt x="935" y="160" on="1"/> - <pt x="941" y="259" on="1"/> - <pt x="941" y="456" on="1"/> - <pt x="403" y="456" on="1"/> - <pt x="281" y="258" on="1"/> - <pt x="255" y="215" on="0"/> - <pt x="235" y="179" on="1"/> - <pt x="229" y="167" on="1"/> - <pt x="219" y="150" on="0"/> - <pt x="212" y="138" on="1"/> - <pt x="205" y="125" on="1"/> - <pt x="204" y="122" on="0"/> - <pt x="202" y="120" on="1"/> - <pt x="192" y="105" on="0"/> - <pt x="192" y="91" on="1"/> - <pt x="192" y="65" on="0"/> - <pt x="265" y="65" on="1"/> - <pt x="269" y="65" on="1"/> - <pt x="274" y="65" on="0"/> - <pt x="288" y="64" on="1"/> - <pt x="306" y="64" on="1"/> - <pt x="328" y="63" on="1"/> - <pt x="351" y="62" on="1"/> - <pt x="351" y="0" on="1"/> - </contour> - <contour> - <pt x="455" y="537" on="1"/> - <pt x="941" y="537" on="1"/> - <pt x="941" y="1338" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 147 values pushed */ - 87 32 31 29 28 11 9 8 8 16 18 3 34 33 2 39 85 3 83 81 80 78 77 62 55 - 52 51 49 47 46 45 41 1 15 63 0 3 0 0 17 16 21 1 6 40 39 21 1 18 64 - 63 7 1 85 3 4 48 84 19 18 1 86 85 1 84 54 53 0 3 3 0 7 6 0 14 - 51 49 2 7 32 3 26 25 47 46 45 39 34 31 29 28 26 25 19 16 11 9 14 32 17 - 3 85 84 83 81 80 78 77 64 55 54 6 1 0 13 13 75 62 0 0 87 86 63 62 32 - 3 17 1 4 48 196 53 52 1 8 7 1 33 32 1 41 40 18 17 3 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - MDAP[1] - MDAP[1] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Aacute" xMin="0" yMin="0" xMax="1479" yMax="1925"> - <contour> - <pt x="0" y="0" on="1"/> - <pt x="0" y="62" on="1"/> - <pt x="22" y="63" on="1"/> - <pt x="86" y="67" on="0"/> - <pt x="102" y="87" on="1"/> - <pt x="117" y="103" on="0"/> - <pt x="139" y="154" on="1"/> - <pt x="185" y="259" on="1"/> - <pt x="706" y="1499" on="1"/> - <pt x="776" y="1499" on="1"/> - <pt x="1295" y="252" on="1"/> - <pt x="1345" y="149" on="1"/> - <pt x="1385" y="67" on="0"/> - <pt x="1457" y="63" on="1"/> - <pt x="1479" y="62" on="1"/> - <pt x="1479" y="0" on="1"/> - <pt x="990" y="0" on="1"/> - <pt x="990" y="62" on="1"/> - <pt x="1008" y="62" on="1"/> - <pt x="1111" y="62" on="0"/> - <pt x="1111" y="106" on="1"/> - <pt x="1111" y="160" on="0"/> - <pt x="1069" y="259" on="1"/> - <pt x="986" y="456" on="1"/> - <pt x="352" y="456" on="1"/> - <pt x="267" y="259" on="1"/> - <pt x="250" y="220" on="0"/> - <pt x="245" y="205" on="1"/> - <pt x="223" y="135" on="1"/> - <pt x="217" y="116" on="0"/> - <pt x="217" y="102" on="1"/> - <pt x="217" y="62" on="0"/> - <pt x="309" y="62" on="1"/> - <pt x="325" y="62" on="1"/> - <pt x="325" y="0" on="1"/> - </contour> - <contour> - <pt x="385" y="537" on="1"/> - <pt x="950" y="537" on="1"/> - <pt x="669" y="1211" on="1"/> - </contour> - <contour> - <pt x="613" y="1604" on="1"/> - <pt x="854" y="1925" on="1"/> - <pt x="1113" y="1925" on="1"/> - <pt x="706" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 71 values pushed */ - 41 38 37 9 8 5 39 35 3 33 32 18 17 14 10 7 1 8 23 0 3 0 0 24 23 - 7 1 35 1 4 48 84 40 39 1 36 35 1 34 16 15 0 3 3 0 14 41 40 39 38 - 37 36 35 34 33 32 30 24 23 20 18 17 16 15 14 10 9 8 7 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Abreve" xMin="0" yMin="0" xMax="1479" yMax="1925"> - <contour> - <pt x="0" y="0" on="1"/> - <pt x="0" y="62" on="1"/> - <pt x="22" y="63" on="1"/> - <pt x="86" y="67" on="0"/> - <pt x="102" y="87" on="1"/> - <pt x="117" y="103" on="0"/> - <pt x="139" y="154" on="1"/> - <pt x="185" y="259" on="1"/> - <pt x="706" y="1499" on="1"/> - <pt x="776" y="1499" on="1"/> - <pt x="1295" y="252" on="1"/> - <pt x="1345" y="149" on="1"/> - <pt x="1385" y="67" on="0"/> - <pt x="1457" y="63" on="1"/> - <pt x="1479" y="62" on="1"/> - <pt x="1479" y="0" on="1"/> - <pt x="990" y="0" on="1"/> - <pt x="990" y="62" on="1"/> - <pt x="1008" y="62" on="1"/> - <pt x="1111" y="62" on="0"/> - <pt x="1111" y="106" on="1"/> - <pt x="1111" y="160" on="0"/> - <pt x="1069" y="259" on="1"/> - <pt x="986" y="456" on="1"/> - <pt x="352" y="456" on="1"/> - <pt x="267" y="259" on="1"/> - <pt x="250" y="220" on="0"/> - <pt x="245" y="205" on="1"/> - <pt x="223" y="135" on="1"/> - <pt x="217" y="116" on="0"/> - <pt x="217" y="102" on="1"/> - <pt x="217" y="62" on="0"/> - <pt x="309" y="62" on="1"/> - <pt x="325" y="62" on="1"/> - <pt x="325" y="0" on="1"/> - </contour> - <contour> - <pt x="385" y="537" on="1"/> - <pt x="950" y="537" on="1"/> - <pt x="669" y="1211" on="1"/> - </contour> - <contour> - <pt x="408" y="1925" on="1"/> - <pt x="473" y="1925" on="1"/> - <pt x="500" y="1835" on="0"/> - <pt x="560" y="1793" on="1"/> - <pt x="628" y="1746" on="0"/> - <pt x="741" y="1746" on="1"/> - <pt x="867" y="1746" on="0"/> - <pt x="937" y="1805" on="1"/> - <pt x="985" y="1845" on="0"/> - <pt x="1010" y="1925" on="1"/> - <pt x="1074" y="1925" on="1"/> - <pt x="1055" y="1790" on="0"/> - <pt x="983" y="1709" on="1"/> - <pt x="889" y="1604" on="0"/> - <pt x="741" y="1604" on="1"/> - <pt x="587" y="1604" on="0"/> - <pt x="492" y="1719" on="1"/> - <pt x="427" y="1797" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 77 values pushed */ - 0 0 43 20 52 48 84 33 32 18 17 14 10 7 1 8 23 0 3 48 47 39 38 37 9 - 8 7 13 52 35 0 0 24 23 7 1 35 1 4 48 84 36 35 1 34 16 15 0 3 2 - 0 14 48 47 39 38 37 36 35 34 33 32 30 24 23 20 18 17 16 15 14 10 9 8 7 - 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Acircumflex" xMin="0" yMin="0" xMax="1479" yMax="1925"> - <contour> - <pt x="0" y="0" on="1"/> - <pt x="0" y="62" on="1"/> - <pt x="22" y="63" on="1"/> - <pt x="86" y="67" on="0"/> - <pt x="102" y="87" on="1"/> - <pt x="117" y="103" on="0"/> - <pt x="139" y="154" on="1"/> - <pt x="185" y="259" on="1"/> - <pt x="706" y="1499" on="1"/> - <pt x="776" y="1499" on="1"/> - <pt x="1295" y="252" on="1"/> - <pt x="1345" y="149" on="1"/> - <pt x="1385" y="67" on="0"/> - <pt x="1457" y="63" on="1"/> - <pt x="1479" y="62" on="1"/> - <pt x="1479" y="0" on="1"/> - <pt x="990" y="0" on="1"/> - <pt x="990" y="62" on="1"/> - <pt x="1008" y="62" on="1"/> - <pt x="1111" y="62" on="0"/> - <pt x="1111" y="106" on="1"/> - <pt x="1111" y="160" on="0"/> - <pt x="1069" y="259" on="1"/> - <pt x="986" y="456" on="1"/> - <pt x="352" y="456" on="1"/> - <pt x="267" y="259" on="1"/> - <pt x="250" y="220" on="0"/> - <pt x="245" y="205" on="1"/> - <pt x="223" y="135" on="1"/> - <pt x="217" y="116" on="0"/> - <pt x="217" y="102" on="1"/> - <pt x="217" y="62" on="0"/> - <pt x="309" y="62" on="1"/> - <pt x="325" y="62" on="1"/> - <pt x="325" y="0" on="1"/> - </contour> - <contour> - <pt x="385" y="537" on="1"/> - <pt x="950" y="537" on="1"/> - <pt x="669" y="1211" on="1"/> - </contour> - <contour> - <pt x="389" y="1604" on="1"/> - <pt x="630" y="1925" on="1"/> - <pt x="852" y="1925" on="1"/> - <pt x="1092" y="1604" on="1"/> - <pt x="1006" y="1604" on="1"/> - <pt x="741" y="1826" on="1"/> - <pt x="475" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 77 values pushed */ - 44 43 42 41 38 37 9 8 8 39 35 3 33 32 18 17 14 10 7 1 8 23 0 3 0 - 0 24 23 7 1 35 1 4 48 84 40 39 1 36 35 1 34 16 15 0 3 3 0 14 44 - 43 42 41 40 39 38 37 36 35 34 33 32 30 24 23 20 18 17 16 15 14 10 9 8 7 - 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Adieresis" xMin="0" yMin="0" xMax="1479" yMax="1777"> - <contour> - <pt x="0" y="0" on="1"/> - <pt x="0" y="62" on="1"/> - <pt x="22" y="63" on="1"/> - <pt x="86" y="67" on="0"/> - <pt x="102" y="87" on="1"/> - <pt x="117" y="103" on="0"/> - <pt x="139" y="154" on="1"/> - <pt x="185" y="259" on="1"/> - <pt x="706" y="1499" on="1"/> - <pt x="776" y="1499" on="1"/> - <pt x="1295" y="252" on="1"/> - <pt x="1345" y="149" on="1"/> - <pt x="1385" y="67" on="0"/> - <pt x="1457" y="63" on="1"/> - <pt x="1479" y="62" on="1"/> - <pt x="1479" y="0" on="1"/> - <pt x="990" y="0" on="1"/> - <pt x="990" y="62" on="1"/> - <pt x="1008" y="62" on="1"/> - <pt x="1111" y="62" on="0"/> - <pt x="1111" y="106" on="1"/> - <pt x="1111" y="160" on="0"/> - <pt x="1069" y="259" on="1"/> - <pt x="986" y="456" on="1"/> - <pt x="352" y="456" on="1"/> - <pt x="267" y="259" on="1"/> - <pt x="250" y="220" on="0"/> - <pt x="245" y="205" on="1"/> - <pt x="223" y="135" on="1"/> - <pt x="217" y="116" on="0"/> - <pt x="217" y="102" on="1"/> - <pt x="217" y="62" on="0"/> - <pt x="309" y="62" on="1"/> - <pt x="325" y="62" on="1"/> - <pt x="325" y="0" on="1"/> - </contour> - <contour> - <pt x="385" y="537" on="1"/> - <pt x="950" y="537" on="1"/> - <pt x="669" y="1211" on="1"/> - </contour> - <contour> - <pt x="457" y="1604" on="1"/> - <pt x="457" y="1777" on="1"/> - <pt x="630" y="1777" on="1"/> - <pt x="630" y="1604" on="1"/> - </contour> - <contour> - <pt x="852" y="1604" on="1"/> - <pt x="852" y="1777" on="1"/> - <pt x="1025" y="1777" on="1"/> - <pt x="1025" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 112 values pushed */ - 37 9 8 3 38 35 3 33 32 18 17 14 10 7 1 8 23 0 3 0 0 45 42 41 38 - 13 3 39 24 23 7 1 35 2 4 48 84 44 43 40 39 3 36 35 1 34 16 15 0 3 - 3 0 14 36 23 18 17 16 5 44 42 3 37 9 8 3 42 40 3 15 14 10 3 13 20 - 44 35 34 33 32 24 7 1 0 8 13 30 38 0 0 43 42 13 1 44 41 40 13 1 38 - 2 4 48 196 45 44 1 39 38 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Agrave" xMin="0" yMin="0" xMax="1479" yMax="1925"> - <contour> - <pt x="0" y="0" on="1"/> - <pt x="0" y="62" on="1"/> - <pt x="22" y="63" on="1"/> - <pt x="86" y="67" on="0"/> - <pt x="102" y="87" on="1"/> - <pt x="117" y="103" on="0"/> - <pt x="139" y="154" on="1"/> - <pt x="185" y="259" on="1"/> - <pt x="706" y="1499" on="1"/> - <pt x="776" y="1499" on="1"/> - <pt x="1295" y="252" on="1"/> - <pt x="1345" y="149" on="1"/> - <pt x="1385" y="67" on="0"/> - <pt x="1457" y="63" on="1"/> - <pt x="1479" y="62" on="1"/> - <pt x="1479" y="0" on="1"/> - <pt x="990" y="0" on="1"/> - <pt x="990" y="62" on="1"/> - <pt x="1008" y="62" on="1"/> - <pt x="1111" y="62" on="0"/> - <pt x="1111" y="106" on="1"/> - <pt x="1111" y="160" on="0"/> - <pt x="1069" y="259" on="1"/> - <pt x="986" y="456" on="1"/> - <pt x="352" y="456" on="1"/> - <pt x="267" y="259" on="1"/> - <pt x="250" y="220" on="0"/> - <pt x="245" y="205" on="1"/> - <pt x="223" y="135" on="1"/> - <pt x="217" y="116" on="0"/> - <pt x="217" y="102" on="1"/> - <pt x="217" y="62" on="0"/> - <pt x="309" y="62" on="1"/> - <pt x="325" y="62" on="1"/> - <pt x="325" y="0" on="1"/> - </contour> - <contour> - <pt x="385" y="537" on="1"/> - <pt x="950" y="537" on="1"/> - <pt x="669" y="1211" on="1"/> - </contour> - <contour> - <pt x="874" y="1604" on="1"/> - <pt x="781" y="1604" on="1"/> - <pt x="374" y="1925" on="1"/> - <pt x="633" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 71 values pushed */ - 39 38 37 9 8 5 40 35 3 33 32 18 17 14 10 7 1 8 23 0 3 0 0 24 23 - 7 1 35 1 4 48 84 41 40 1 36 35 1 34 16 15 0 3 3 0 14 41 40 39 38 - 37 36 35 34 33 32 30 24 23 20 18 17 16 15 14 10 9 8 7 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Amacron" xMin="0" yMin="0" xMax="1479" yMax="1727"> - <contour> - <pt x="0" y="0" on="1"/> - <pt x="0" y="62" on="1"/> - <pt x="22" y="63" on="1"/> - <pt x="86" y="67" on="0"/> - <pt x="102" y="87" on="1"/> - <pt x="117" y="103" on="0"/> - <pt x="139" y="154" on="1"/> - <pt x="185" y="259" on="1"/> - <pt x="706" y="1499" on="1"/> - <pt x="776" y="1499" on="1"/> - <pt x="1295" y="252" on="1"/> - <pt x="1345" y="149" on="1"/> - <pt x="1385" y="67" on="0"/> - <pt x="1457" y="63" on="1"/> - <pt x="1479" y="62" on="1"/> - <pt x="1479" y="0" on="1"/> - <pt x="990" y="0" on="1"/> - <pt x="990" y="62" on="1"/> - <pt x="1008" y="62" on="1"/> - <pt x="1111" y="62" on="0"/> - <pt x="1111" y="106" on="1"/> - <pt x="1111" y="160" on="0"/> - <pt x="1069" y="259" on="1"/> - <pt x="986" y="456" on="1"/> - <pt x="352" y="456" on="1"/> - <pt x="267" y="259" on="1"/> - <pt x="250" y="220" on="0"/> - <pt x="245" y="205" on="1"/> - <pt x="223" y="135" on="1"/> - <pt x="217" y="116" on="0"/> - <pt x="217" y="102" on="1"/> - <pt x="217" y="62" on="0"/> - <pt x="309" y="62" on="1"/> - <pt x="325" y="62" on="1"/> - <pt x="325" y="0" on="1"/> - </contour> - <contour> - <pt x="385" y="537" on="1"/> - <pt x="950" y="537" on="1"/> - <pt x="669" y="1211" on="1"/> - </contour> - <contour> - <pt x="420" y="1604" on="1"/> - <pt x="420" y="1727" on="1"/> - <pt x="1062" y="1727" on="1"/> - <pt x="1062" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 74 values pushed */ - 37 9 8 3 38 35 3 33 32 18 17 14 10 7 1 8 23 0 3 0 0 41 38 12 1 - 39 24 23 7 1 35 2 4 48 84 40 39 1 36 35 1 34 16 15 0 3 3 0 14 41 - 40 39 38 37 36 35 34 33 32 30 24 23 20 18 17 16 15 14 10 9 8 7 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Aogonek" xMin="0" yMin="-370" xMax="1479" yMax="1499"> - <contour> - <pt x="0" y="0" on="1"/> - <pt x="0" y="62" on="1"/> - <pt x="22" y="63" on="1"/> - <pt x="86" y="67" on="0"/> - <pt x="102" y="87" on="1"/> - <pt x="117" y="103" on="0"/> - <pt x="139" y="154" on="1"/> - <pt x="185" y="259" on="1"/> - <pt x="706" y="1499" on="1"/> - <pt x="776" y="1499" on="1"/> - <pt x="1295" y="252" on="1"/> - <pt x="1345" y="149" on="1"/> - <pt x="1385" y="67" on="0"/> - <pt x="1457" y="63" on="1"/> - <pt x="1479" y="62" on="1"/> - <pt x="1479" y="0" on="1"/> - <pt x="990" y="0" on="1"/> - <pt x="990" y="62" on="1"/> - <pt x="1008" y="62" on="1"/> - <pt x="1111" y="62" on="0"/> - <pt x="1111" y="106" on="1"/> - <pt x="1111" y="160" on="0"/> - <pt x="1069" y="259" on="1"/> - <pt x="986" y="456" on="1"/> - <pt x="352" y="456" on="1"/> - <pt x="267" y="259" on="1"/> - <pt x="250" y="220" on="0"/> - <pt x="245" y="205" on="1"/> - <pt x="223" y="135" on="1"/> - <pt x="217" y="116" on="0"/> - <pt x="217" y="102" on="1"/> - <pt x="217" y="62" on="0"/> - <pt x="309" y="62" on="1"/> - <pt x="325" y="62" on="1"/> - <pt x="325" y="0" on="1"/> - </contour> - <contour> - <pt x="385" y="537" on="1"/> - <pt x="950" y="537" on="1"/> - <pt x="669" y="1211" on="1"/> - </contour> - <contour> - <pt x="1454" y="-273" on="1"/> - <pt x="1454" y="-341" on="1"/> - <pt x="1383" y="-370" on="0"/> - <pt x="1305" y="-370" on="1"/> - <pt x="1085" y="-370" on="0"/> - <pt x="1085" y="-211" on="1"/> - <pt x="1085" y="-90" on="0"/> - <pt x="1243" y="0" on="1"/> - <pt x="1350" y="0" on="1"/> - <pt x="1221" y="-81" on="0"/> - <pt x="1221" y="-182" on="1"/> - <pt x="1221" y="-289" on="0"/> - <pt x="1354" y="-289" on="1"/> - <pt x="1405" y="-289" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 86 values pushed */ - 0 0 50 7 41 48 84 33 32 18 17 14 10 7 1 8 23 0 3 37 9 8 3 13 35 - 39 38 41 0 0 0 24 23 7 1 35 1 4 48 84 36 35 1 46 45 34 16 15 0 5 - 2 0 14 0 0 48 48 43 48 196 46 45 43 39 38 37 36 35 34 33 32 30 24 23 20 - 18 17 16 15 14 10 9 8 7 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Aring" xMin="0" yMin="0" xMax="1479" yMax="1934"> - <contour> - <pt x="0" y="0" on="1"/> - <pt x="0" y="62" on="1"/> - <pt x="22" y="63" on="1"/> - <pt x="86" y="67" on="0"/> - <pt x="102" y="87" on="1"/> - <pt x="117" y="103" on="0"/> - <pt x="139" y="154" on="1"/> - <pt x="185" y="259" on="1"/> - <pt x="706" y="1499" on="1"/> - <pt x="776" y="1499" on="1"/> - <pt x="1295" y="252" on="1"/> - <pt x="1345" y="149" on="1"/> - <pt x="1385" y="67" on="0"/> - <pt x="1457" y="63" on="1"/> - <pt x="1479" y="62" on="1"/> - <pt x="1479" y="0" on="1"/> - <pt x="990" y="0" on="1"/> - <pt x="990" y="62" on="1"/> - <pt x="1008" y="62" on="1"/> - <pt x="1111" y="62" on="0"/> - <pt x="1111" y="106" on="1"/> - <pt x="1111" y="160" on="0"/> - <pt x="1069" y="259" on="1"/> - <pt x="986" y="456" on="1"/> - <pt x="352" y="456" on="1"/> - <pt x="267" y="259" on="1"/> - <pt x="250" y="220" on="0"/> - <pt x="245" y="205" on="1"/> - <pt x="223" y="135" on="1"/> - <pt x="217" y="116" on="0"/> - <pt x="217" y="102" on="1"/> - <pt x="217" y="62" on="0"/> - <pt x="309" y="62" on="1"/> - <pt x="325" y="62" on="1"/> - <pt x="325" y="0" on="1"/> - </contour> - <contour> - <pt x="385" y="537" on="1"/> - <pt x="950" y="537" on="1"/> - <pt x="669" y="1211" on="1"/> - </contour> - <contour> - <pt x="741" y="1934" on="1"/> - <pt x="835" y="1934" on="0"/> - <pt x="901" y="1868" on="1"/> - <pt x="968" y="1802" on="0"/> - <pt x="968" y="1708" on="1"/> - <pt x="968" y="1612" on="0"/> - <pt x="901" y="1546" on="1"/> - <pt x="835" y="1480" on="0"/> - <pt x="739" y="1480" on="1"/> - <pt x="656" y="1480" on="0"/> - <pt x="594" y="1534" on="1"/> - <pt x="514" y="1603" on="0"/> - <pt x="514" y="1707" on="1"/> - <pt x="514" y="1802" on="0"/> - <pt x="580" y="1868" on="1"/> - <pt x="646" y="1934" on="0"/> - </contour> - <contour> - <pt x="741" y="1866" on="1"/> - <pt x="675" y="1866" on="0"/> - <pt x="628" y="1819" on="1"/> - <pt x="582" y="1773" on="0"/> - <pt x="582" y="1708" on="1"/> - <pt x="582" y="1642" on="0"/> - <pt x="628" y="1595" on="1"/> - <pt x="674" y="1548" on="0"/> - <pt x="739" y="1548" on="1"/> - <pt x="800" y="1548" on="0"/> - <pt x="844" y="1585" on="1"/> - <pt x="900" y="1633" on="0"/> - <pt x="900" y="1708" on="1"/> - <pt x="900" y="1774" on="0"/> - <pt x="853" y="1820" on="1"/> - <pt x="806" y="1866" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 93 values pushed */ - 0 0 62 17 46 54 17 38 48 84 46 0 1 37 0 35 2 0 33 32 18 17 14 10 7 - 1 8 23 0 3 1 9 8 2 13 38 0 0 0 0 24 23 7 1 35 1 4 48 84 36 - 35 1 34 16 15 0 3 2 0 14 0 0 66 17 42 58 17 50 48 196 50 42 37 36 35 - 34 33 32 30 24 23 20 18 17 16 15 14 10 9 8 7 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Atilde" xMin="0" yMin="0" xMax="1479" yMax="1839"> - <contour> - <pt x="0" y="0" on="1"/> - <pt x="0" y="62" on="1"/> - <pt x="22" y="63" on="1"/> - <pt x="86" y="67" on="0"/> - <pt x="102" y="87" on="1"/> - <pt x="117" y="103" on="0"/> - <pt x="139" y="154" on="1"/> - <pt x="185" y="259" on="1"/> - <pt x="706" y="1499" on="1"/> - <pt x="776" y="1499" on="1"/> - <pt x="1295" y="252" on="1"/> - <pt x="1345" y="149" on="1"/> - <pt x="1385" y="67" on="0"/> - <pt x="1457" y="63" on="1"/> - <pt x="1479" y="62" on="1"/> - <pt x="1479" y="0" on="1"/> - <pt x="990" y="0" on="1"/> - <pt x="990" y="62" on="1"/> - <pt x="1008" y="62" on="1"/> - <pt x="1111" y="62" on="0"/> - <pt x="1111" y="106" on="1"/> - <pt x="1111" y="160" on="0"/> - <pt x="1069" y="259" on="1"/> - <pt x="986" y="456" on="1"/> - <pt x="352" y="456" on="1"/> - <pt x="267" y="259" on="1"/> - <pt x="250" y="220" on="0"/> - <pt x="245" y="205" on="1"/> - <pt x="223" y="135" on="1"/> - <pt x="217" y="116" on="0"/> - <pt x="217" y="102" on="1"/> - <pt x="217" y="62" on="0"/> - <pt x="309" y="62" on="1"/> - <pt x="325" y="62" on="1"/> - <pt x="325" y="0" on="1"/> - </contour> - <contour> - <pt x="385" y="537" on="1"/> - <pt x="950" y="537" on="1"/> - <pt x="669" y="1211" on="1"/> - </contour> - <contour> - <pt x="408" y="1604" on="1"/> - <pt x="435" y="1744" on="0"/> - <pt x="504" y="1797" on="1"/> - <pt x="558" y="1839" on="0"/> - <pt x="635" y="1839" on="1"/> - <pt x="700" y="1839" on="0"/> - <pt x="753" y="1801" on="1"/> - <pt x="788" y="1776" on="1"/> - <pt x="840" y="1739" on="0"/> - <pt x="894" y="1739" on="1"/> - <pt x="989" y="1739" on="0"/> - <pt x="1012" y="1838" on="1"/> - <pt x="1074" y="1838" on="1"/> - <pt x="1046" y="1699" on="0"/> - <pt x="978" y="1646" on="1"/> - <pt x="924" y="1604" on="0"/> - <pt x="847" y="1604" on="1"/> - <pt x="784" y="1604" on="0"/> - <pt x="729" y="1642" on="1"/> - <pt x="694" y="1666" on="1"/> - <pt x="639" y="1704" on="0"/> - <pt x="588" y="1704" on="1"/> - <pt x="499" y="1704" on="0"/> - <pt x="470" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 81 values pushed */ - 0 0 59 20 42 47 20 54 48 84 33 32 18 17 14 10 7 1 8 23 0 3 61 50 49 - 38 37 9 8 7 13 54 42 35 0 0 24 23 7 1 35 1 4 48 84 36 35 1 34 16 - 15 0 3 2 0 14 61 50 49 38 37 36 35 34 33 32 30 24 23 20 18 17 16 15 14 - 10 9 8 7 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="B" xMin="47" yMin="0" xMax="1245" yMax="1480"> - <contour> - <pt x="788" y="767" on="1"/> - <pt x="968" y="742" on="0"/> - <pt x="1066" y="687" on="1"/> - <pt x="1245" y="586" on="0"/> - <pt x="1245" y="371" on="1"/> - <pt x="1245" y="202" on="0"/> - <pt x="1130" y="103" on="1"/> - <pt x="1010" y="0" on="0"/> - <pt x="676" y="0" on="1"/> - <pt x="47" y="0" on="1"/> - <pt x="47" y="62" on="1"/> - <pt x="66" y="63" on="1"/> - <pt x="133" y="68" on="1"/> - <pt x="209" y="74" on="0"/> - <pt x="219" y="115" on="1"/> - <pt x="232" y="177" on="0"/> - <pt x="232" y="259" on="1"/> - <pt x="232" y="1221" on="1"/> - <pt x="232" y="1280" on="0"/> - <pt x="225" y="1333" on="1"/> - <pt x="219" y="1372" on="0"/> - <pt x="211" y="1384" on="1"/> - <pt x="193" y="1410" on="0"/> - <pt x="133" y="1413" on="1"/> - <pt x="66" y="1417" on="1"/> - <pt x="47" y="1419" on="1"/> - <pt x="47" y="1480" on="1"/> - <pt x="705" y="1480" on="1"/> - <pt x="932" y="1480" on="0"/> - <pt x="1016" y="1437" on="1"/> - <pt x="1184" y="1351" on="0"/> - <pt x="1184" y="1150" on="1"/> - <pt x="1184" y="995" on="0"/> - <pt x="1091" y="899" on="1"/> - <pt x="1025" y="830" on="0"/> - <pt x="913" y="795" on="1"/> - <pt x="872" y="782" on="0"/> - </contour> - <contour> - <pt x="439" y="734" on="1"/> - <pt x="439" y="259" on="1"/> - <pt x="442" y="172" on="1"/> - <pt x="445" y="97" on="0"/> - <pt x="493" y="82" on="1"/> - <pt x="537" y="68" on="0"/> - <pt x="637" y="68" on="1"/> - <pt x="1026" y="68" on="0"/> - <pt x="1026" y="368" on="1"/> - <pt x="1026" y="591" on="0"/> - <pt x="857" y="670" on="1"/> - <pt x="726" y="731" on="0"/> - </contour> - <contour> - <pt x="439" y="802" on="1"/> - <pt x="550" y="802" on="1"/> - <pt x="775" y="802" on="0"/> - <pt x="871" y="877" on="1"/> - <pt x="968" y="952" on="0"/> - <pt x="968" y="1129" on="1"/> - <pt x="968" y="1312" on="0"/> - <pt x="853" y="1367" on="1"/> - <pt x="757" y="1413" on="0"/> - <pt x="539" y="1413" on="1"/> - <pt x="439" y="1413" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 66 values pushed */ - 17 26 16 9 43 59 58 50 49 43 38 37 0 8 26 8 3 9 8 1 0 27 26 0 14 - 0 0 54 10 31 45 33 4 48 196 26 17 9 16 58 50 27 8 0 5 13 31 4 37 0 - 0 59 49 38 37 32 3 16 1 4 48 196 17 16 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - MDAP[1] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="C" xMin="80" yMin="-37" xMax="1269" yMax="1517"> - <contour> - <pt x="1269" y="79" on="1"/> - <pt x="1060" y="-37" on="0"/> - <pt x="809" y="-37" on="1"/> - <pt x="472" y="-37" on="0"/> - <pt x="276" y="173" on="1"/> - <pt x="80" y="383" on="0"/> - <pt x="80" y="745" on="1"/> - <pt x="80" y="1105" on="0"/> - <pt x="268" y="1311" on="1"/> - <pt x="455" y="1517" on="0"/> - <pt x="789" y="1517" on="1"/> - <pt x="996" y="1517" on="0"/> - <pt x="1244" y="1443" on="1"/> - <pt x="1244" y="1160" on="1"/> - <pt x="1120" y="1160" on="1"/> - <pt x="1119" y="1180" on="1"/> - <pt x="1119" y="1185" on="0"/> - <pt x="1118" y="1212" on="1"/> - <pt x="1118" y="1223" on="1"/> - <pt x="1118" y="1233" on="1"/> - <pt x="1118" y="1239" on="1"/> - <pt x="1118" y="1326" on="0"/> - <pt x="1049" y="1381" on="1"/> - <pt x="963" y="1450" on="0"/> - <pt x="806" y="1450" on="1"/> - <pt x="573" y="1450" on="0"/> - <pt x="440" y="1261" on="1"/> - <pt x="308" y="1073" on="0"/> - <pt x="308" y="750" on="1"/> - <pt x="308" y="425" on="0"/> - <pt x="462" y="243" on="1"/> - <pt x="615" y="62" on="0"/> - <pt x="880" y="62" on="1"/> - <pt x="1057" y="62" on="0"/> - <pt x="1269" y="175" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 57 values pushed */ - 0 0 32 9 2 24 17 10 48 84 10 0 2 2 1 1 34 20 19 18 17 14 13 12 0 - 9 0 2 3 0 0 14 0 0 28 34 6 48 196 34 0 2 13 12 20 19 18 17 14 5 - 13 6 12 13 12 1 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Cacute" xMin="80" yMin="-37" xMax="1269" yMax="1925"> - <contour> - <pt x="1269" y="79" on="1"/> - <pt x="1060" y="-37" on="0"/> - <pt x="809" y="-37" on="1"/> - <pt x="472" y="-37" on="0"/> - <pt x="276" y="173" on="1"/> - <pt x="80" y="383" on="0"/> - <pt x="80" y="745" on="1"/> - <pt x="80" y="1105" on="0"/> - <pt x="268" y="1311" on="1"/> - <pt x="455" y="1517" on="0"/> - <pt x="789" y="1517" on="1"/> - <pt x="996" y="1517" on="0"/> - <pt x="1244" y="1443" on="1"/> - <pt x="1244" y="1160" on="1"/> - <pt x="1120" y="1160" on="1"/> - <pt x="1119" y="1180" on="1"/> - <pt x="1119" y="1185" on="0"/> - <pt x="1118" y="1212" on="1"/> - <pt x="1118" y="1223" on="1"/> - <pt x="1118" y="1233" on="1"/> - <pt x="1118" y="1239" on="1"/> - <pt x="1118" y="1326" on="0"/> - <pt x="1049" y="1381" on="1"/> - <pt x="963" y="1450" on="0"/> - <pt x="806" y="1450" on="1"/> - <pt x="573" y="1450" on="0"/> - <pt x="440" y="1261" on="1"/> - <pt x="308" y="1073" on="0"/> - <pt x="308" y="750" on="1"/> - <pt x="308" y="425" on="0"/> - <pt x="462" y="243" on="1"/> - <pt x="615" y="62" on="0"/> - <pt x="880" y="62" on="1"/> - <pt x="1057" y="62" on="0"/> - <pt x="1269" y="175" on="1"/> - </contour> - <contour> - <pt x="703" y="1604" on="1"/> - <pt x="944" y="1925" on="1"/> - <pt x="1203" y="1925" on="1"/> - <pt x="796" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 73 values pushed */ - 0 0 32 9 2 24 17 10 48 84 10 0 2 2 1 38 35 2 36 0 3 0 1 1 34 - 20 19 18 17 14 13 12 0 9 0 2 3 0 0 37 36 1 0 14 0 0 28 34 6 48 - 196 34 0 2 13 12 38 37 36 35 20 19 18 17 14 9 13 6 12 13 12 1 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ccaron" xMin="80" yMin="-37" xMax="1269" yMax="1925"> - <contour> - <pt x="1269" y="79" on="1"/> - <pt x="1060" y="-37" on="0"/> - <pt x="809" y="-37" on="1"/> - <pt x="472" y="-37" on="0"/> - <pt x="276" y="173" on="1"/> - <pt x="80" y="383" on="0"/> - <pt x="80" y="745" on="1"/> - <pt x="80" y="1105" on="0"/> - <pt x="268" y="1311" on="1"/> - <pt x="455" y="1517" on="0"/> - <pt x="789" y="1517" on="1"/> - <pt x="996" y="1517" on="0"/> - <pt x="1244" y="1443" on="1"/> - <pt x="1244" y="1160" on="1"/> - <pt x="1120" y="1160" on="1"/> - <pt x="1119" y="1180" on="1"/> - <pt x="1119" y="1185" on="0"/> - <pt x="1118" y="1212" on="1"/> - <pt x="1118" y="1223" on="1"/> - <pt x="1118" y="1233" on="1"/> - <pt x="1118" y="1239" on="1"/> - <pt x="1118" y="1326" on="0"/> - <pt x="1049" y="1381" on="1"/> - <pt x="963" y="1450" on="0"/> - <pt x="806" y="1450" on="1"/> - <pt x="573" y="1450" on="0"/> - <pt x="440" y="1261" on="1"/> - <pt x="308" y="1073" on="0"/> - <pt x="308" y="750" on="1"/> - <pt x="308" y="425" on="0"/> - <pt x="462" y="243" on="1"/> - <pt x="615" y="62" on="0"/> - <pt x="880" y="62" on="1"/> - <pt x="1057" y="62" on="0"/> - <pt x="1269" y="175" on="1"/> - </contour> - <contour> - <pt x="1146" y="1925" on="1"/> - <pt x="906" y="1604" on="1"/> - <pt x="684" y="1604" on="1"/> - <pt x="443" y="1925" on="1"/> - <pt x="529" y="1925" on="1"/> - <pt x="795" y="1703" on="1"/> - <pt x="1060" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 76 values pushed */ - 0 0 32 9 2 24 17 10 48 84 10 0 2 2 1 1 34 20 19 18 17 14 13 12 0 - 9 0 2 3 0 0 41 40 39 38 35 5 13 36 37 36 1 0 14 0 0 28 34 6 48 - 196 34 0 2 13 12 41 40 39 38 37 36 35 20 19 18 17 14 12 13 6 12 13 12 1 - 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ccedilla" xMin="80" yMin="-432" xMax="1269" yMax="1517"> - <contour> - <pt x="1269" y="79" on="1"/> - <pt x="1058" y="-37" on="0"/> - <pt x="809" y="-37" on="1"/> - <pt x="472" y="-37" on="0"/> - <pt x="276" y="173" on="1"/> - <pt x="80" y="383" on="0"/> - <pt x="80" y="745" on="1"/> - <pt x="80" y="1105" on="0"/> - <pt x="268" y="1311" on="1"/> - <pt x="455" y="1517" on="0"/> - <pt x="789" y="1517" on="1"/> - <pt x="996" y="1517" on="0"/> - <pt x="1244" y="1443" on="1"/> - <pt x="1244" y="1160" on="1"/> - <pt x="1120" y="1160" on="1"/> - <pt x="1119" y="1180" on="1"/> - <pt x="1119" y="1185" on="0"/> - <pt x="1118" y="1212" on="1"/> - <pt x="1118" y="1223" on="1"/> - <pt x="1118" y="1233" on="1"/> - <pt x="1118" y="1239" on="1"/> - <pt x="1118" y="1326" on="0"/> - <pt x="1049" y="1381" on="1"/> - <pt x="963" y="1450" on="0"/> - <pt x="806" y="1450" on="1"/> - <pt x="572" y="1450" on="0"/> - <pt x="440" y="1261" on="1"/> - <pt x="308" y="1072" on="0"/> - <pt x="308" y="750" on="1"/> - <pt x="308" y="425" on="0"/> - <pt x="462" y="243" on="1"/> - <pt x="615" y="62" on="0"/> - <pt x="880" y="62" on="1"/> - <pt x="1057" y="62" on="0"/> - <pt x="1269" y="175" on="1"/> - </contour> - <contour> - <pt x="619" y="-411" on="1"/> - <pt x="619" y="-343" on="1"/> - <pt x="681" y="-359" on="0"/> - <pt x="720" y="-359" on="1"/> - <pt x="827" y="-359" on="0"/> - <pt x="827" y="-277" on="1"/> - <pt x="827" y="-179" on="0"/> - <pt x="640" y="-175" on="1"/> - <pt x="735" y="0" on="1"/> - <pt x="814" y="0" on="1"/> - <pt x="748" y="-119" on="1"/> - <pt x="965" y="-138" on="0"/> - <pt x="965" y="-266" on="1"/> - <pt x="965" y="-336" on="0"/> - <pt x="907" y="-384" on="1"/> - <pt x="850" y="-432" on="0"/> - <pt x="763" y="-432" on="1"/> - <pt x="695" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 82 values pushed */ - 0 0 38 17 51 32 9 2 24 17 10 48 84 10 0 2 2 1 1 34 20 19 18 17 14 - 13 12 0 9 0 2 3 0 0 1 45 44 43 42 36 35 6 13 51 2 0 14 0 0 40 - 48 47 28 34 6 48 196 34 0 2 13 12 45 44 43 42 36 35 20 19 18 17 14 11 13 - 47 6 12 13 12 1 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ccircumflex" xMin="80" yMin="-37" xMax="1269" yMax="1925"> - <contour> - <pt x="1269" y="79" on="1"/> - <pt x="1060" y="-37" on="0"/> - <pt x="809" y="-37" on="1"/> - <pt x="472" y="-37" on="0"/> - <pt x="276" y="173" on="1"/> - <pt x="80" y="383" on="0"/> - <pt x="80" y="745" on="1"/> - <pt x="80" y="1105" on="0"/> - <pt x="268" y="1311" on="1"/> - <pt x="455" y="1517" on="0"/> - <pt x="789" y="1517" on="1"/> - <pt x="996" y="1517" on="0"/> - <pt x="1244" y="1443" on="1"/> - <pt x="1244" y="1160" on="1"/> - <pt x="1120" y="1160" on="1"/> - <pt x="1119" y="1180" on="1"/> - <pt x="1119" y="1185" on="0"/> - <pt x="1118" y="1212" on="1"/> - <pt x="1118" y="1223" on="1"/> - <pt x="1118" y="1233" on="1"/> - <pt x="1118" y="1239" on="1"/> - <pt x="1118" y="1326" on="0"/> - <pt x="1049" y="1381" on="1"/> - <pt x="963" y="1450" on="0"/> - <pt x="806" y="1450" on="1"/> - <pt x="573" y="1450" on="0"/> - <pt x="440" y="1261" on="1"/> - <pt x="308" y="1073" on="0"/> - <pt x="308" y="750" on="1"/> - <pt x="308" y="425" on="0"/> - <pt x="462" y="243" on="1"/> - <pt x="615" y="62" on="0"/> - <pt x="880" y="62" on="1"/> - <pt x="1057" y="62" on="0"/> - <pt x="1269" y="175" on="1"/> - </contour> - <contour> - <pt x="443" y="1604" on="1"/> - <pt x="684" y="1925" on="1"/> - <pt x="906" y="1925" on="1"/> - <pt x="1146" y="1604" on="1"/> - <pt x="1060" y="1604" on="1"/> - <pt x="795" y="1826" on="1"/> - <pt x="529" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 79 values pushed */ - 0 0 32 9 2 24 17 10 48 84 10 0 2 2 1 41 40 39 38 35 5 36 0 3 0 - 1 1 34 20 19 18 17 14 13 12 0 9 0 2 3 0 0 37 36 1 0 14 0 0 28 - 34 6 48 196 34 0 2 13 12 41 40 39 38 37 36 35 20 19 18 17 14 12 13 6 12 - 13 12 1 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Cdotaccent" xMin="80" yMin="-37" xMax="1269" yMax="1801"> - <contour> - <pt x="1269" y="79" on="1"/> - <pt x="1060" y="-37" on="0"/> - <pt x="809" y="-37" on="1"/> - <pt x="472" y="-37" on="0"/> - <pt x="276" y="173" on="1"/> - <pt x="80" y="383" on="0"/> - <pt x="80" y="745" on="1"/> - <pt x="80" y="1105" on="0"/> - <pt x="268" y="1311" on="1"/> - <pt x="455" y="1517" on="0"/> - <pt x="789" y="1517" on="1"/> - <pt x="996" y="1517" on="0"/> - <pt x="1244" y="1443" on="1"/> - <pt x="1244" y="1160" on="1"/> - <pt x="1120" y="1160" on="1"/> - <pt x="1119" y="1180" on="1"/> - <pt x="1119" y="1185" on="0"/> - <pt x="1118" y="1212" on="1"/> - <pt x="1118" y="1223" on="1"/> - <pt x="1118" y="1233" on="1"/> - <pt x="1118" y="1239" on="1"/> - <pt x="1118" y="1326" on="0"/> - <pt x="1049" y="1381" on="1"/> - <pt x="963" y="1450" on="0"/> - <pt x="806" y="1450" on="1"/> - <pt x="573" y="1450" on="0"/> - <pt x="440" y="1261" on="1"/> - <pt x="308" y="1073" on="0"/> - <pt x="308" y="750" on="1"/> - <pt x="308" y="425" on="0"/> - <pt x="462" y="243" on="1"/> - <pt x="615" y="62" on="0"/> - <pt x="880" y="62" on="1"/> - <pt x="1057" y="62" on="0"/> - <pt x="1269" y="175" on="1"/> - </contour> - <contour> - <pt x="696" y="1604" on="1"/> - <pt x="696" y="1801" on="1"/> - <pt x="893" y="1801" on="1"/> - <pt x="893" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 89 values pushed */ - 0 0 32 9 2 24 17 10 48 84 10 0 2 2 1 1 34 20 19 18 17 14 13 12 0 - 9 0 2 3 0 0 0 0 38 35 5 1 36 1 4 48 84 37 36 1 0 14 0 0 28 - 34 6 48 196 20 19 18 17 14 5 12 37 3 34 0 2 13 12 6 35 0 0 36 35 4 - 1 37 1 4 48 196 38 37 1 13 12 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="D" xMin="41" yMin="0" xMax="1399" yMax="1489"> - <contour> - <pt x="465" y="1480" on="1"/> - <pt x="536" y="1481" on="1"/> - <pt x="608" y="1484" on="1"/> - <pt x="680" y="1485" on="1"/> - <pt x="989" y="1489" on="0"/> - <pt x="1176" y="1335" on="1"/> - <pt x="1399" y="1152" on="0"/> - <pt x="1399" y="772" on="1"/> - <pt x="1399" y="414" on="0"/> - <pt x="1208" y="207" on="1"/> - <pt x="1017" y="0" on="0"/> - <pt x="687" y="0" on="1"/> - <pt x="41" y="0" on="1"/> - <pt x="41" y="62" on="1"/> - <pt x="60" y="63" on="1"/> - <pt x="127" y="68" on="1"/> - <pt x="203" y="74" on="0"/> - <pt x="213" y="115" on="1"/> - <pt x="226" y="177" on="0"/> - <pt x="226" y="259" on="1"/> - <pt x="226" y="1221" on="1"/> - <pt x="226" y="1280" on="0"/> - <pt x="219" y="1333" on="1"/> - <pt x="213" y="1372" on="0"/> - <pt x="205" y="1384" on="1"/> - <pt x="187" y="1410" on="0"/> - <pt x="127" y="1413" on="1"/> - <pt x="60" y="1417" on="1"/> - <pt x="41" y="1419" on="1"/> - <pt x="41" y="1480" on="1"/> - </contour> - <contour> - <pt x="436" y="1413" on="1"/> - <pt x="436" y="259" on="1"/> - <pt x="440" y="181" on="1"/> - <pt x="444" y="110" on="0"/> - <pt x="498" y="87" on="1"/> - <pt x="544" y="68" on="0"/> - <pt x="638" y="68" on="1"/> - <pt x="894" y="68" on="0"/> - <pt x="1032" y="243" on="1"/> - <pt x="1171" y="419" on="0"/> - <pt x="1171" y="743" on="1"/> - <pt x="1171" y="1098" on="0"/> - <pt x="1021" y="1256" on="1"/> - <pt x="871" y="1413" on="0"/> - <pt x="532" y="1413" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 54 values pushed */ - 20 29 19 12 36 44 36 31 30 4 0 11 3 12 11 1 0 29 0 0 14 0 0 40 34 - 7 48 196 29 20 12 19 44 11 0 3 13 7 30 0 0 31 30 32 1 19 1 4 48 196 - 20 19 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - MDAP[1] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Dcaron" xMin="41" yMin="0" xMax="1399" yMax="1925"> - <contour> - <pt x="465" y="1480" on="1"/> - <pt x="536" y="1481" on="1"/> - <pt x="608" y="1484" on="1"/> - <pt x="680" y="1485" on="1"/> - <pt x="989" y="1489" on="0"/> - <pt x="1176" y="1335" on="1"/> - <pt x="1399" y="1152" on="0"/> - <pt x="1399" y="772" on="1"/> - <pt x="1399" y="414" on="0"/> - <pt x="1208" y="207" on="1"/> - <pt x="1017" y="0" on="0"/> - <pt x="687" y="0" on="1"/> - <pt x="41" y="0" on="1"/> - <pt x="41" y="62" on="1"/> - <pt x="60" y="63" on="1"/> - <pt x="127" y="68" on="1"/> - <pt x="203" y="74" on="0"/> - <pt x="213" y="115" on="1"/> - <pt x="226" y="177" on="0"/> - <pt x="226" y="259" on="1"/> - <pt x="226" y="1221" on="1"/> - <pt x="226" y="1280" on="0"/> - <pt x="219" y="1333" on="1"/> - <pt x="213" y="1372" on="0"/> - <pt x="205" y="1384" on="1"/> - <pt x="187" y="1410" on="0"/> - <pt x="127" y="1413" on="1"/> - <pt x="60" y="1417" on="1"/> - <pt x="41" y="1419" on="1"/> - <pt x="41" y="1480" on="1"/> - </contour> - <contour> - <pt x="436" y="1413" on="1"/> - <pt x="436" y="259" on="1"/> - <pt x="440" y="181" on="1"/> - <pt x="444" y="110" on="0"/> - <pt x="498" y="87" on="1"/> - <pt x="544" y="68" on="0"/> - <pt x="638" y="68" on="1"/> - <pt x="894" y="68" on="0"/> - <pt x="1032" y="243" on="1"/> - <pt x="1171" y="419" on="0"/> - <pt x="1171" y="743" on="1"/> - <pt x="1171" y="1098" on="0"/> - <pt x="1021" y="1256" on="1"/> - <pt x="871" y="1413" on="0"/> - <pt x="532" y="1413" on="1"/> - </contour> - <contour> - <pt x="1046" y="1925" on="1"/> - <pt x="806" y="1604" on="1"/> - <pt x="584" y="1604" on="1"/> - <pt x="343" y="1925" on="1"/> - <pt x="429" y="1925" on="1"/> - <pt x="695" y="1703" on="1"/> - <pt x="960" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 77 values pushed */ - 20 29 19 12 36 44 36 31 30 4 0 11 3 51 50 49 48 45 5 13 46 47 46 1 12 - 11 1 2 0 29 0 0 14 0 0 40 34 7 48 196 29 20 12 19 49 48 2 30 19 3 - 51 50 47 46 45 44 11 0 8 13 7 30 0 0 31 30 32 1 19 1 4 48 196 20 19 - 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MDAP[1] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Dcroat" xMin="41" yMin="0" xMax="1399" yMax="1489"> - <contour> - <pt x="226" y="716" on="1"/> - <pt x="41" y="716" on="1"/> - <pt x="41" y="783" on="1"/> - <pt x="226" y="783" on="1"/> - <pt x="226" y="1221" on="1"/> - <pt x="226" y="1280" on="0"/> - <pt x="219" y="1333" on="1"/> - <pt x="213" y="1372" on="0"/> - <pt x="205" y="1384" on="1"/> - <pt x="187" y="1410" on="0"/> - <pt x="127" y="1413" on="1"/> - <pt x="60" y="1417" on="1"/> - <pt x="41" y="1419" on="1"/> - <pt x="41" y="1480" on="1"/> - <pt x="465" y="1480" on="1"/> - <pt x="536" y="1481" on="1"/> - <pt x="608" y="1484" on="1"/> - <pt x="680" y="1485" on="1"/> - <pt x="989" y="1489" on="0"/> - <pt x="1176" y="1335" on="1"/> - <pt x="1399" y="1151" on="0"/> - <pt x="1399" y="772" on="1"/> - <pt x="1399" y="414" on="0"/> - <pt x="1208" y="207" on="1"/> - <pt x="1017" y="0" on="0"/> - <pt x="687" y="0" on="1"/> - <pt x="41" y="0" on="1"/> - <pt x="41" y="62" on="1"/> - <pt x="60" y="63" on="1"/> - <pt x="127" y="68" on="1"/> - <pt x="203" y="74" on="0"/> - <pt x="213" y="115" on="1"/> - <pt x="226" y="177" on="0"/> - <pt x="226" y="259" on="1"/> - </contour> - <contour> - <pt x="436" y="716" on="1"/> - <pt x="436" y="259" on="1"/> - <pt x="440" y="181" on="1"/> - <pt x="444" y="110" on="0"/> - <pt x="498" y="87" on="1"/> - <pt x="544" y="68" on="0"/> - <pt x="638" y="68" on="1"/> - <pt x="894" y="68" on="0"/> - <pt x="1032" y="243" on="1"/> - <pt x="1171" y="419" on="0"/> - <pt x="1171" y="743" on="1"/> - <pt x="1171" y="1098" on="0"/> - <pt x="1021" y="1256" on="1"/> - <pt x="871" y="1413" on="0"/> - <pt x="532" y="1413" on="1"/> - <pt x="436" y="1413" on="1"/> - <pt x="436" y="783" on="1"/> - <pt x="781" y="783" on="1"/> - <pt x="781" y="716" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 86 values pushed */ - 33 26 4 13 49 48 2 13 2 3 40 40 35 2 0 25 3 0 0 52 34 1 0 14 3 - 2 1 4 48 84 51 50 3 2 3 26 25 1 2 0 14 13 0 14 0 0 44 34 21 48 - 196 26 33 13 4 52 51 48 25 14 5 13 21 34 2 1 0 0 0 50 49 35 34 32 3 - 0 1 4 48 196 33 4 3 0 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[1] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="E" xMin="43" yMin="0" xMax="1202" yMax="1480"> - <contour> - <pt x="1146" y="1480" on="1"/> - <pt x="1146" y="1221" on="1"/> - <pt x="1035" y="1221" on="1"/> - <pt x="1034" y="1240" on="1"/> - <pt x="1029" y="1324" on="1"/> - <pt x="1028" y="1379" on="0"/> - <pt x="1010" y="1390" on="1"/> - <pt x="993" y="1399" on="0"/> - <pt x="956" y="1399" on="1"/> - <pt x="853" y="1400" on="1"/> - <pt x="438" y="1400" on="1"/> - <pt x="438" y="808" on="1"/> - <pt x="801" y="809" on="1"/> - <pt x="864" y="811" on="1"/> - <pt x="917" y="812" on="0"/> - <pt x="925" y="827" on="1"/> - <pt x="933" y="840" on="0"/> - <pt x="933" y="872" on="1"/> - <pt x="933" y="884" on="0"/> - <pt x="935" y="913" on="1"/> - <pt x="936" y="931" on="1"/> - <pt x="1017" y="931" on="1"/> - <pt x="1017" y="605" on="1"/> - <pt x="936" y="605" on="1"/> - <pt x="935" y="623" on="1"/> - <pt x="929" y="710" on="0"/> - <pt x="905" y="717" on="1"/> - <pt x="880" y="728" on="0"/> - <pt x="801" y="728" on="1"/> - <pt x="438" y="728" on="1"/> - <pt x="438" y="259" on="1"/> - <pt x="438" y="123" on="0"/> - <pt x="478" y="105" on="1"/> - <pt x="514" y="86" on="0"/> - <pt x="608" y="86" on="1"/> - <pt x="858" y="86" on="1"/> - <pt x="1005" y="86" on="0"/> - <pt x="1043" y="100" on="1"/> - <pt x="1083" y="113" on="0"/> - <pt x="1086" y="162" on="1"/> - <pt x="1090" y="253" on="1"/> - <pt x="1091" y="271" on="1"/> - <pt x="1202" y="271" on="1"/> - <pt x="1202" y="0" on="1"/> - <pt x="43" y="0" on="1"/> - <pt x="43" y="62" on="1"/> - <pt x="62" y="63" on="1"/> - <pt x="129" y="68" on="1"/> - <pt x="205" y="74" on="0"/> - <pt x="215" y="115" on="1"/> - <pt x="228" y="177" on="0"/> - <pt x="228" y="259" on="1"/> - <pt x="228" y="1221" on="1"/> - <pt x="228" y="1280" on="0"/> - <pt x="221" y="1333" on="1"/> - <pt x="215" y="1372" on="0"/> - <pt x="207" y="1384" on="1"/> - <pt x="189" y="1410" on="0"/> - <pt x="129" y="1413" on="1"/> - <pt x="62" y="1417" on="1"/> - <pt x="43" y="1419" on="1"/> - <pt x="43" y="1480" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 101 values pushed */ - 52 61 51 44 21 20 12 11 2 1 6 9 28 3 42 41 30 26 23 22 6 28 34 3 0 - 0 10 9 21 1 0 35 34 7 1 43 2 4 48 84 29 28 1 44 43 1 2 0 61 0 - 0 14 61 52 44 51 41 2 2 0 21 3 35 34 28 26 23 20 12 9 8 21 10 3 0 - 0 30 29 11 10 32 3 51 1 4 48 196 43 42 1 1 0 1 22 21 1 52 51 1 4 - 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Eacute" xMin="43" yMin="0" xMax="1202" yMax="1925"> - <contour> - <pt x="1146" y="1480" on="1"/> - <pt x="1146" y="1221" on="1"/> - <pt x="1035" y="1221" on="1"/> - <pt x="1034" y="1240" on="1"/> - <pt x="1029" y="1324" on="1"/> - <pt x="1028" y="1379" on="0"/> - <pt x="1010" y="1390" on="1"/> - <pt x="993" y="1399" on="0"/> - <pt x="956" y="1399" on="1"/> - <pt x="853" y="1400" on="1"/> - <pt x="438" y="1400" on="1"/> - <pt x="438" y="808" on="1"/> - <pt x="801" y="809" on="1"/> - <pt x="864" y="811" on="1"/> - <pt x="917" y="812" on="0"/> - <pt x="925" y="827" on="1"/> - <pt x="933" y="840" on="0"/> - <pt x="933" y="872" on="1"/> - <pt x="933" y="884" on="0"/> - <pt x="935" y="913" on="1"/> - <pt x="936" y="931" on="1"/> - <pt x="1017" y="931" on="1"/> - <pt x="1017" y="605" on="1"/> - <pt x="936" y="605" on="1"/> - <pt x="935" y="623" on="1"/> - <pt x="929" y="710" on="0"/> - <pt x="905" y="717" on="1"/> - <pt x="880" y="728" on="0"/> - <pt x="801" y="728" on="1"/> - <pt x="438" y="728" on="1"/> - <pt x="438" y="259" on="1"/> - <pt x="438" y="123" on="0"/> - <pt x="478" y="105" on="1"/> - <pt x="514" y="86" on="0"/> - <pt x="608" y="86" on="1"/> - <pt x="858" y="86" on="1"/> - <pt x="1005" y="86" on="0"/> - <pt x="1043" y="100" on="1"/> - <pt x="1083" y="113" on="0"/> - <pt x="1086" y="162" on="1"/> - <pt x="1090" y="253" on="1"/> - <pt x="1091" y="271" on="1"/> - <pt x="1202" y="271" on="1"/> - <pt x="1202" y="0" on="1"/> - <pt x="43" y="0" on="1"/> - <pt x="43" y="62" on="1"/> - <pt x="62" y="63" on="1"/> - <pt x="129" y="68" on="1"/> - <pt x="205" y="74" on="0"/> - <pt x="215" y="115" on="1"/> - <pt x="228" y="177" on="0"/> - <pt x="228" y="259" on="1"/> - <pt x="228" y="1221" on="1"/> - <pt x="228" y="1280" on="0"/> - <pt x="221" y="1333" on="1"/> - <pt x="215" y="1372" on="0"/> - <pt x="207" y="1384" on="1"/> - <pt x="189" y="1410" on="0"/> - <pt x="129" y="1413" on="1"/> - <pt x="62" y="1417" on="1"/> - <pt x="43" y="1419" on="1"/> - <pt x="43" y="1480" on="1"/> - </contour> - <contour> - <pt x="413" y="1604" on="1"/> - <pt x="654" y="1925" on="1"/> - <pt x="913" y="1925" on="1"/> - <pt x="506" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 117 values pushed */ - 52 61 51 44 65 62 2 63 0 3 21 20 12 11 2 1 6 9 28 3 42 41 30 26 23 - 22 6 28 34 3 0 0 10 9 21 1 0 35 34 7 1 43 2 4 48 84 64 63 1 29 - 28 1 44 43 1 3 0 61 0 0 14 61 52 44 51 41 2 2 0 21 3 65 64 63 35 - 34 28 26 23 20 12 9 11 21 10 3 62 10 51 2 0 0 30 29 11 10 32 3 51 1 - 4 48 196 43 42 1 1 0 1 22 21 1 52 51 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ebreve" xMin="43" yMin="0" xMax="1202" yMax="1925"> - <contour> - <pt x="1146" y="1480" on="1"/> - <pt x="1146" y="1221" on="1"/> - <pt x="1035" y="1221" on="1"/> - <pt x="1034" y="1240" on="1"/> - <pt x="1029" y="1324" on="1"/> - <pt x="1028" y="1379" on="0"/> - <pt x="1010" y="1390" on="1"/> - <pt x="993" y="1399" on="0"/> - <pt x="956" y="1399" on="1"/> - <pt x="853" y="1400" on="1"/> - <pt x="438" y="1400" on="1"/> - <pt x="438" y="808" on="1"/> - <pt x="801" y="809" on="1"/> - <pt x="864" y="811" on="1"/> - <pt x="917" y="812" on="0"/> - <pt x="925" y="827" on="1"/> - <pt x="933" y="840" on="0"/> - <pt x="933" y="872" on="1"/> - <pt x="933" y="884" on="0"/> - <pt x="935" y="913" on="1"/> - <pt x="936" y="931" on="1"/> - <pt x="1017" y="931" on="1"/> - <pt x="1017" y="605" on="1"/> - <pt x="936" y="605" on="1"/> - <pt x="935" y="623" on="1"/> - <pt x="929" y="710" on="0"/> - <pt x="905" y="717" on="1"/> - <pt x="880" y="728" on="0"/> - <pt x="801" y="728" on="1"/> - <pt x="438" y="728" on="1"/> - <pt x="438" y="259" on="1"/> - <pt x="438" y="123" on="0"/> - <pt x="478" y="105" on="1"/> - <pt x="514" y="86" on="0"/> - <pt x="608" y="86" on="1"/> - <pt x="858" y="86" on="1"/> - <pt x="1005" y="86" on="0"/> - <pt x="1043" y="100" on="1"/> - <pt x="1083" y="113" on="0"/> - <pt x="1086" y="162" on="1"/> - <pt x="1090" y="253" on="1"/> - <pt x="1091" y="271" on="1"/> - <pt x="1202" y="271" on="1"/> - <pt x="1202" y="0" on="1"/> - <pt x="43" y="0" on="1"/> - <pt x="43" y="62" on="1"/> - <pt x="62" y="63" on="1"/> - <pt x="129" y="68" on="1"/> - <pt x="205" y="74" on="0"/> - <pt x="215" y="115" on="1"/> - <pt x="228" y="177" on="0"/> - <pt x="228" y="259" on="1"/> - <pt x="228" y="1221" on="1"/> - <pt x="228" y="1280" on="0"/> - <pt x="221" y="1333" on="1"/> - <pt x="215" y="1372" on="0"/> - <pt x="207" y="1384" on="1"/> - <pt x="189" y="1410" on="0"/> - <pt x="129" y="1413" on="1"/> - <pt x="62" y="1417" on="1"/> - <pt x="43" y="1419" on="1"/> - <pt x="43" y="1480" on="1"/> - </contour> - <contour> - <pt x="315" y="1925" on="1"/> - <pt x="380" y="1925" on="1"/> - <pt x="407" y="1835" on="0"/> - <pt x="467" y="1793" on="1"/> - <pt x="535" y="1746" on="0"/> - <pt x="648" y="1746" on="1"/> - <pt x="774" y="1746" on="0"/> - <pt x="844" y="1805" on="1"/> - <pt x="893" y="1845" on="0"/> - <pt x="917" y="1925" on="1"/> - <pt x="981" y="1925" on="1"/> - <pt x="962" y="1790" on="0"/> - <pt x="890" y="1709" on="1"/> - <pt x="796" y="1604" on="0"/> - <pt x="648" y="1604" on="1"/> - <pt x="494" y="1604" on="0"/> - <pt x="399" y="1719" on="1"/> - <pt x="334" y="1797" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 124 values pushed */ - 0 0 67 20 76 48 84 52 61 51 44 21 20 12 11 2 1 6 9 28 3 42 41 30 26 - 23 22 6 28 34 3 72 71 63 62 4 13 76 0 0 0 10 9 21 1 0 35 34 7 1 - 43 2 4 48 84 29 28 1 44 43 1 2 0 61 0 0 14 61 52 44 51 41 2 2 0 - 21 3 72 71 35 34 28 26 23 20 12 9 10 21 10 3 63 62 2 10 51 3 0 0 30 - 29 11 10 32 3 51 1 4 48 196 43 42 1 1 0 1 22 21 1 52 51 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ecaron" xMin="43" yMin="0" xMax="1202" yMax="1925"> - <contour> - <pt x="1146" y="1480" on="1"/> - <pt x="1146" y="1221" on="1"/> - <pt x="1035" y="1221" on="1"/> - <pt x="1034" y="1240" on="1"/> - <pt x="1029" y="1324" on="1"/> - <pt x="1028" y="1379" on="0"/> - <pt x="1010" y="1390" on="1"/> - <pt x="993" y="1399" on="0"/> - <pt x="956" y="1399" on="1"/> - <pt x="853" y="1400" on="1"/> - <pt x="438" y="1400" on="1"/> - <pt x="438" y="808" on="1"/> - <pt x="801" y="809" on="1"/> - <pt x="864" y="811" on="1"/> - <pt x="917" y="812" on="0"/> - <pt x="925" y="827" on="1"/> - <pt x="933" y="840" on="0"/> - <pt x="933" y="872" on="1"/> - <pt x="933" y="884" on="0"/> - <pt x="935" y="913" on="1"/> - <pt x="936" y="931" on="1"/> - <pt x="1017" y="931" on="1"/> - <pt x="1017" y="605" on="1"/> - <pt x="936" y="605" on="1"/> - <pt x="935" y="623" on="1"/> - <pt x="929" y="710" on="0"/> - <pt x="905" y="717" on="1"/> - <pt x="880" y="728" on="0"/> - <pt x="801" y="728" on="1"/> - <pt x="438" y="728" on="1"/> - <pt x="438" y="259" on="1"/> - <pt x="438" y="123" on="0"/> - <pt x="478" y="105" on="1"/> - <pt x="514" y="86" on="0"/> - <pt x="608" y="86" on="1"/> - <pt x="858" y="86" on="1"/> - <pt x="1005" y="86" on="0"/> - <pt x="1043" y="100" on="1"/> - <pt x="1083" y="113" on="0"/> - <pt x="1086" y="162" on="1"/> - <pt x="1090" y="253" on="1"/> - <pt x="1091" y="271" on="1"/> - <pt x="1202" y="271" on="1"/> - <pt x="1202" y="0" on="1"/> - <pt x="43" y="0" on="1"/> - <pt x="43" y="62" on="1"/> - <pt x="62" y="63" on="1"/> - <pt x="129" y="68" on="1"/> - <pt x="205" y="74" on="0"/> - <pt x="215" y="115" on="1"/> - <pt x="228" y="177" on="0"/> - <pt x="228" y="259" on="1"/> - <pt x="228" y="1221" on="1"/> - <pt x="228" y="1280" on="0"/> - <pt x="221" y="1333" on="1"/> - <pt x="215" y="1372" on="0"/> - <pt x="207" y="1384" on="1"/> - <pt x="189" y="1410" on="0"/> - <pt x="129" y="1413" on="1"/> - <pt x="62" y="1417" on="1"/> - <pt x="43" y="1419" on="1"/> - <pt x="43" y="1480" on="1"/> - </contour> - <contour> - <pt x="1024" y="1925" on="1"/> - <pt x="784" y="1604" on="1"/> - <pt x="562" y="1604" on="1"/> - <pt x="321" y="1925" on="1"/> - <pt x="407" y="1925" on="1"/> - <pt x="673" y="1703" on="1"/> - <pt x="938" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 123 values pushed */ - 52 61 51 44 21 20 12 11 2 1 6 9 28 3 42 41 30 26 23 22 6 28 34 3 68 - 67 66 65 62 5 13 63 0 0 10 9 21 1 0 35 34 7 1 43 2 4 48 84 64 63 - 1 29 28 1 44 43 1 3 0 61 0 0 14 61 52 44 51 62 41 2 3 0 21 3 68 - 67 64 63 35 34 28 26 23 20 12 9 12 21 10 3 66 65 2 10 51 3 0 0 30 29 - 11 10 32 3 51 1 4 48 196 43 42 1 1 0 1 22 21 1 52 51 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ecircumflex" xMin="43" yMin="0" xMax="1202" yMax="1925"> - <contour> - <pt x="1146" y="1480" on="1"/> - <pt x="1146" y="1221" on="1"/> - <pt x="1035" y="1221" on="1"/> - <pt x="1034" y="1240" on="1"/> - <pt x="1029" y="1324" on="1"/> - <pt x="1028" y="1379" on="0"/> - <pt x="1010" y="1390" on="1"/> - <pt x="993" y="1399" on="0"/> - <pt x="956" y="1399" on="1"/> - <pt x="853" y="1400" on="1"/> - <pt x="438" y="1400" on="1"/> - <pt x="438" y="808" on="1"/> - <pt x="801" y="809" on="1"/> - <pt x="864" y="811" on="1"/> - <pt x="917" y="812" on="0"/> - <pt x="925" y="827" on="1"/> - <pt x="933" y="840" on="0"/> - <pt x="933" y="872" on="1"/> - <pt x="933" y="884" on="0"/> - <pt x="935" y="913" on="1"/> - <pt x="936" y="931" on="1"/> - <pt x="1017" y="931" on="1"/> - <pt x="1017" y="605" on="1"/> - <pt x="936" y="605" on="1"/> - <pt x="935" y="623" on="1"/> - <pt x="929" y="710" on="0"/> - <pt x="905" y="717" on="1"/> - <pt x="880" y="728" on="0"/> - <pt x="801" y="728" on="1"/> - <pt x="438" y="728" on="1"/> - <pt x="438" y="259" on="1"/> - <pt x="438" y="123" on="0"/> - <pt x="478" y="105" on="1"/> - <pt x="514" y="86" on="0"/> - <pt x="608" y="86" on="1"/> - <pt x="858" y="86" on="1"/> - <pt x="1005" y="86" on="0"/> - <pt x="1043" y="100" on="1"/> - <pt x="1083" y="113" on="0"/> - <pt x="1086" y="162" on="1"/> - <pt x="1090" y="253" on="1"/> - <pt x="1091" y="271" on="1"/> - <pt x="1202" y="271" on="1"/> - <pt x="1202" y="0" on="1"/> - <pt x="43" y="0" on="1"/> - <pt x="43" y="62" on="1"/> - <pt x="62" y="63" on="1"/> - <pt x="129" y="68" on="1"/> - <pt x="205" y="74" on="0"/> - <pt x="215" y="115" on="1"/> - <pt x="228" y="177" on="0"/> - <pt x="228" y="259" on="1"/> - <pt x="228" y="1221" on="1"/> - <pt x="228" y="1280" on="0"/> - <pt x="221" y="1333" on="1"/> - <pt x="215" y="1372" on="0"/> - <pt x="207" y="1384" on="1"/> - <pt x="189" y="1410" on="0"/> - <pt x="129" y="1413" on="1"/> - <pt x="62" y="1417" on="1"/> - <pt x="43" y="1419" on="1"/> - <pt x="43" y="1480" on="1"/> - </contour> - <contour> - <pt x="265" y="1604" on="1"/> - <pt x="506" y="1925" on="1"/> - <pt x="728" y="1925" on="1"/> - <pt x="968" y="1604" on="1"/> - <pt x="882" y="1604" on="1"/> - <pt x="617" y="1826" on="1"/> - <pt x="351" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 124 values pushed */ - 52 61 51 44 68 67 66 65 62 5 63 0 3 21 20 12 11 2 1 6 9 28 3 42 41 - 30 26 23 22 6 28 34 3 0 0 10 9 21 1 0 35 34 7 1 43 2 4 48 84 64 - 63 1 29 28 1 44 43 1 3 0 61 0 0 14 61 52 44 51 41 2 2 0 21 3 67 - 66 65 64 63 35 34 28 26 23 20 12 9 13 21 10 3 68 62 2 10 51 3 0 0 30 - 29 11 10 32 3 51 1 4 48 196 43 42 1 1 0 1 22 21 1 52 51 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Edieresis" xMin="43" yMin="0" xMax="1202" yMax="1777"> - <contour> - <pt x="1146" y="1480" on="1"/> - <pt x="1146" y="1221" on="1"/> - <pt x="1035" y="1221" on="1"/> - <pt x="1034" y="1240" on="1"/> - <pt x="1029" y="1324" on="1"/> - <pt x="1028" y="1379" on="0"/> - <pt x="1010" y="1390" on="1"/> - <pt x="993" y="1399" on="0"/> - <pt x="956" y="1399" on="1"/> - <pt x="853" y="1400" on="1"/> - <pt x="438" y="1400" on="1"/> - <pt x="438" y="808" on="1"/> - <pt x="801" y="809" on="1"/> - <pt x="864" y="811" on="1"/> - <pt x="917" y="812" on="0"/> - <pt x="925" y="827" on="1"/> - <pt x="933" y="840" on="0"/> - <pt x="933" y="872" on="1"/> - <pt x="933" y="884" on="0"/> - <pt x="935" y="913" on="1"/> - <pt x="936" y="931" on="1"/> - <pt x="1017" y="931" on="1"/> - <pt x="1017" y="605" on="1"/> - <pt x="936" y="605" on="1"/> - <pt x="935" y="623" on="1"/> - <pt x="929" y="710" on="0"/> - <pt x="905" y="717" on="1"/> - <pt x="880" y="728" on="0"/> - <pt x="801" y="728" on="1"/> - <pt x="438" y="728" on="1"/> - <pt x="438" y="259" on="1"/> - <pt x="438" y="123" on="0"/> - <pt x="478" y="105" on="1"/> - <pt x="514" y="86" on="0"/> - <pt x="608" y="86" on="1"/> - <pt x="858" y="86" on="1"/> - <pt x="1005" y="86" on="0"/> - <pt x="1043" y="100" on="1"/> - <pt x="1083" y="113" on="0"/> - <pt x="1086" y="162" on="1"/> - <pt x="1090" y="253" on="1"/> - <pt x="1091" y="271" on="1"/> - <pt x="1202" y="271" on="1"/> - <pt x="1202" y="0" on="1"/> - <pt x="43" y="0" on="1"/> - <pt x="43" y="62" on="1"/> - <pt x="62" y="63" on="1"/> - <pt x="129" y="68" on="1"/> - <pt x="205" y="74" on="0"/> - <pt x="215" y="115" on="1"/> - <pt x="228" y="177" on="0"/> - <pt x="228" y="259" on="1"/> - <pt x="228" y="1221" on="1"/> - <pt x="228" y="1280" on="0"/> - <pt x="221" y="1333" on="1"/> - <pt x="215" y="1372" on="0"/> - <pt x="207" y="1384" on="1"/> - <pt x="189" y="1410" on="0"/> - <pt x="129" y="1413" on="1"/> - <pt x="62" y="1417" on="1"/> - <pt x="43" y="1419" on="1"/> - <pt x="43" y="1480" on="1"/> - </contour> - <contour> - <pt x="326" y="1604" on="1"/> - <pt x="326" y="1777" on="1"/> - <pt x="499" y="1777" on="1"/> - <pt x="499" y="1604" on="1"/> - </contour> - <contour> - <pt x="721" y="1604" on="1"/> - <pt x="721" y="1777" on="1"/> - <pt x="894" y="1777" on="1"/> - <pt x="894" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 136 values pushed */ - 52 61 51 44 21 20 12 11 2 1 6 9 28 3 42 41 30 26 23 22 6 28 34 3 0 - 0 69 66 65 62 13 3 63 10 9 21 1 0 35 34 7 1 43 3 4 48 84 68 67 64 - 63 3 29 28 1 44 43 1 3 0 61 0 0 14 61 52 44 51 41 2 2 0 21 3 26 - 23 20 3 21 68 3 35 28 12 9 4 68 66 3 34 66 64 2 0 0 67 66 13 1 68 - 65 64 13 1 62 30 29 11 10 32 3 51 3 4 48 196 69 68 1 63 62 1 43 42 1 - 1 0 1 22 21 1 52 51 1 6 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Edotaccent" xMin="43" yMin="0" xMax="1202" yMax="1801"> - <contour> - <pt x="1146" y="1480" on="1"/> - <pt x="1146" y="1221" on="1"/> - <pt x="1035" y="1221" on="1"/> - <pt x="1034" y="1240" on="1"/> - <pt x="1029" y="1324" on="1"/> - <pt x="1028" y="1379" on="0"/> - <pt x="1010" y="1390" on="1"/> - <pt x="993" y="1399" on="0"/> - <pt x="956" y="1399" on="1"/> - <pt x="853" y="1400" on="1"/> - <pt x="438" y="1400" on="1"/> - <pt x="438" y="808" on="1"/> - <pt x="801" y="809" on="1"/> - <pt x="864" y="811" on="1"/> - <pt x="917" y="812" on="0"/> - <pt x="925" y="827" on="1"/> - <pt x="933" y="840" on="0"/> - <pt x="933" y="872" on="1"/> - <pt x="933" y="884" on="0"/> - <pt x="935" y="913" on="1"/> - <pt x="936" y="931" on="1"/> - <pt x="1017" y="931" on="1"/> - <pt x="1017" y="605" on="1"/> - <pt x="936" y="605" on="1"/> - <pt x="935" y="623" on="1"/> - <pt x="929" y="710" on="0"/> - <pt x="905" y="717" on="1"/> - <pt x="880" y="728" on="0"/> - <pt x="801" y="728" on="1"/> - <pt x="438" y="728" on="1"/> - <pt x="438" y="259" on="1"/> - <pt x="438" y="123" on="0"/> - <pt x="478" y="105" on="1"/> - <pt x="514" y="86" on="0"/> - <pt x="608" y="86" on="1"/> - <pt x="858" y="86" on="1"/> - <pt x="1005" y="86" on="0"/> - <pt x="1043" y="100" on="1"/> - <pt x="1083" y="113" on="0"/> - <pt x="1086" y="162" on="1"/> - <pt x="1090" y="253" on="1"/> - <pt x="1091" y="271" on="1"/> - <pt x="1202" y="271" on="1"/> - <pt x="1202" y="0" on="1"/> - <pt x="43" y="0" on="1"/> - <pt x="43" y="62" on="1"/> - <pt x="62" y="63" on="1"/> - <pt x="129" y="68" on="1"/> - <pt x="205" y="74" on="0"/> - <pt x="215" y="115" on="1"/> - <pt x="228" y="177" on="0"/> - <pt x="228" y="259" on="1"/> - <pt x="228" y="1221" on="1"/> - <pt x="228" y="1280" on="0"/> - <pt x="221" y="1333" on="1"/> - <pt x="215" y="1372" on="0"/> - <pt x="207" y="1384" on="1"/> - <pt x="189" y="1410" on="0"/> - <pt x="129" y="1413" on="1"/> - <pt x="62" y="1417" on="1"/> - <pt x="43" y="1419" on="1"/> - <pt x="43" y="1480" on="1"/> - </contour> - <contour> - <pt x="536" y="1604" on="1"/> - <pt x="536" y="1801" on="1"/> - <pt x="733" y="1801" on="1"/> - <pt x="733" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 120 values pushed */ - 52 61 51 44 21 20 12 11 2 1 6 9 28 3 42 41 30 26 23 22 6 28 34 3 0 - 0 65 62 5 1 63 10 9 21 1 0 35 34 7 1 43 3 4 48 84 64 63 1 29 28 - 1 44 43 1 3 0 61 0 0 14 61 52 44 51 41 2 2 0 21 3 35 28 26 23 20 - 12 9 7 21 64 3 34 64 62 2 0 0 65 64 4 1 62 30 29 11 10 32 3 51 2 - 4 48 196 63 62 1 43 42 1 1 0 1 22 21 1 52 51 1 5 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Egrave" xMin="43" yMin="0" xMax="1202" yMax="1925"> - <contour> - <pt x="1146" y="1480" on="1"/> - <pt x="1146" y="1221" on="1"/> - <pt x="1035" y="1221" on="1"/> - <pt x="1034" y="1240" on="1"/> - <pt x="1029" y="1324" on="1"/> - <pt x="1028" y="1379" on="0"/> - <pt x="1010" y="1390" on="1"/> - <pt x="993" y="1399" on="0"/> - <pt x="956" y="1399" on="1"/> - <pt x="853" y="1400" on="1"/> - <pt x="438" y="1400" on="1"/> - <pt x="438" y="808" on="1"/> - <pt x="801" y="809" on="1"/> - <pt x="864" y="811" on="1"/> - <pt x="917" y="812" on="0"/> - <pt x="925" y="827" on="1"/> - <pt x="933" y="840" on="0"/> - <pt x="933" y="872" on="1"/> - <pt x="933" y="884" on="0"/> - <pt x="935" y="913" on="1"/> - <pt x="936" y="931" on="1"/> - <pt x="1017" y="931" on="1"/> - <pt x="1017" y="605" on="1"/> - <pt x="936" y="605" on="1"/> - <pt x="935" y="623" on="1"/> - <pt x="929" y="710" on="0"/> - <pt x="905" y="717" on="1"/> - <pt x="880" y="728" on="0"/> - <pt x="801" y="728" on="1"/> - <pt x="438" y="728" on="1"/> - <pt x="438" y="259" on="1"/> - <pt x="438" y="123" on="0"/> - <pt x="478" y="105" on="1"/> - <pt x="514" y="86" on="0"/> - <pt x="608" y="86" on="1"/> - <pt x="858" y="86" on="1"/> - <pt x="1005" y="86" on="0"/> - <pt x="1043" y="100" on="1"/> - <pt x="1083" y="113" on="0"/> - <pt x="1086" y="162" on="1"/> - <pt x="1090" y="253" on="1"/> - <pt x="1091" y="271" on="1"/> - <pt x="1202" y="271" on="1"/> - <pt x="1202" y="0" on="1"/> - <pt x="43" y="0" on="1"/> - <pt x="43" y="62" on="1"/> - <pt x="62" y="63" on="1"/> - <pt x="129" y="68" on="1"/> - <pt x="205" y="74" on="0"/> - <pt x="215" y="115" on="1"/> - <pt x="228" y="177" on="0"/> - <pt x="228" y="259" on="1"/> - <pt x="228" y="1221" on="1"/> - <pt x="228" y="1280" on="0"/> - <pt x="221" y="1333" on="1"/> - <pt x="215" y="1372" on="0"/> - <pt x="207" y="1384" on="1"/> - <pt x="189" y="1410" on="0"/> - <pt x="129" y="1413" on="1"/> - <pt x="62" y="1417" on="1"/> - <pt x="43" y="1419" on="1"/> - <pt x="43" y="1480" on="1"/> - </contour> - <contour> - <pt x="792" y="1604" on="1"/> - <pt x="699" y="1604" on="1"/> - <pt x="292" y="1925" on="1"/> - <pt x="551" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 117 values pushed */ - 52 61 51 44 63 62 2 64 0 3 21 20 12 11 2 1 6 9 28 3 42 41 30 26 23 - 22 6 28 34 3 0 0 10 9 21 1 0 35 34 7 1 43 2 4 48 84 65 64 1 29 - 28 1 44 43 1 3 0 61 0 0 14 61 52 44 51 41 2 2 0 21 3 65 63 62 35 - 34 28 26 23 20 12 9 11 21 10 3 64 10 51 2 0 0 30 29 11 10 32 3 51 1 - 4 48 196 43 42 1 1 0 1 22 21 1 52 51 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Emacron" xMin="43" yMin="0" xMax="1202" yMax="1727"> - <contour> - <pt x="1146" y="1480" on="1"/> - <pt x="1146" y="1221" on="1"/> - <pt x="1035" y="1221" on="1"/> - <pt x="1034" y="1240" on="1"/> - <pt x="1029" y="1324" on="1"/> - <pt x="1028" y="1379" on="0"/> - <pt x="1010" y="1390" on="1"/> - <pt x="993" y="1399" on="0"/> - <pt x="956" y="1399" on="1"/> - <pt x="853" y="1400" on="1"/> - <pt x="438" y="1400" on="1"/> - <pt x="438" y="808" on="1"/> - <pt x="801" y="809" on="1"/> - <pt x="864" y="811" on="1"/> - <pt x="917" y="812" on="0"/> - <pt x="925" y="827" on="1"/> - <pt x="933" y="840" on="0"/> - <pt x="933" y="872" on="1"/> - <pt x="933" y="884" on="0"/> - <pt x="935" y="913" on="1"/> - <pt x="936" y="931" on="1"/> - <pt x="1017" y="931" on="1"/> - <pt x="1017" y="605" on="1"/> - <pt x="936" y="605" on="1"/> - <pt x="935" y="623" on="1"/> - <pt x="929" y="710" on="0"/> - <pt x="905" y="717" on="1"/> - <pt x="880" y="728" on="0"/> - <pt x="801" y="728" on="1"/> - <pt x="438" y="728" on="1"/> - <pt x="438" y="259" on="1"/> - <pt x="438" y="123" on="0"/> - <pt x="478" y="105" on="1"/> - <pt x="514" y="86" on="0"/> - <pt x="608" y="86" on="1"/> - <pt x="858" y="86" on="1"/> - <pt x="1005" y="86" on="0"/> - <pt x="1043" y="100" on="1"/> - <pt x="1083" y="113" on="0"/> - <pt x="1086" y="162" on="1"/> - <pt x="1090" y="253" on="1"/> - <pt x="1091" y="271" on="1"/> - <pt x="1202" y="271" on="1"/> - <pt x="1202" y="0" on="1"/> - <pt x="43" y="0" on="1"/> - <pt x="43" y="62" on="1"/> - <pt x="62" y="63" on="1"/> - <pt x="129" y="68" on="1"/> - <pt x="205" y="74" on="0"/> - <pt x="215" y="115" on="1"/> - <pt x="228" y="177" on="0"/> - <pt x="228" y="259" on="1"/> - <pt x="228" y="1221" on="1"/> - <pt x="228" y="1280" on="0"/> - <pt x="221" y="1333" on="1"/> - <pt x="215" y="1372" on="0"/> - <pt x="207" y="1384" on="1"/> - <pt x="189" y="1410" on="0"/> - <pt x="129" y="1413" on="1"/> - <pt x="62" y="1417" on="1"/> - <pt x="43" y="1419" on="1"/> - <pt x="43" y="1480" on="1"/> - </contour> - <contour> - <pt x="339" y="1604" on="1"/> - <pt x="339" y="1727" on="1"/> - <pt x="981" y="1727" on="1"/> - <pt x="981" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 117 values pushed */ - 52 61 51 44 21 20 12 11 2 1 6 9 28 3 42 41 30 26 23 22 6 28 34 3 0 - 0 65 62 12 1 63 10 9 21 1 0 35 34 7 1 43 3 4 48 84 64 63 1 29 28 - 1 44 43 1 3 0 61 0 0 14 61 52 44 51 41 2 2 0 21 3 65 64 35 34 28 - 26 23 20 12 9 10 21 10 3 63 62 2 10 51 3 0 0 30 29 11 10 32 3 51 1 - 4 48 196 43 42 1 1 0 1 22 21 1 52 51 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Eng" xMin="43" yMin="-296" xMax="1435" yMax="1480"> - <contour> - <pt x="43" y="0" on="1"/> - <pt x="43" y="62" on="1"/> - <pt x="62" y="63" on="1"/> - <pt x="130" y="68" on="1"/> - <pt x="194" y="73" on="0"/> - <pt x="229" y="140" on="0"/> - <pt x="229" y="259" on="1"/> - <pt x="229" y="1221" on="1"/> - <pt x="230" y="1335" on="0"/> - <pt x="211" y="1377" on="1"/> - <pt x="196" y="1409" on="0"/> - <pt x="130" y="1413" on="1"/> - <pt x="62" y="1417" on="1"/> - <pt x="43" y="1419" on="1"/> - <pt x="43" y="1480" on="1"/> - <pt x="376" y="1480" on="1"/> - <pt x="1159" y="331" on="1"/> - <pt x="1159" y="1221" on="1"/> - <pt x="1153" y="1320" on="1"/> - <pt x="1149" y="1384" on="0"/> - <pt x="1130" y="1397" on="1"/> - <pt x="1112" y="1410" on="0"/> - <pt x="1061" y="1413" on="1"/> - <pt x="993" y="1417" on="1"/> - <pt x="974" y="1419" on="1"/> - <pt x="974" y="1480" on="1"/> - <pt x="1435" y="1480" on="1"/> - <pt x="1435" y="1419" on="1"/> - <pt x="1417" y="1417" on="1"/> - <pt x="1349" y="1413" on="1"/> - <pt x="1281" y="1408" on="0"/> - <pt x="1270" y="1386" on="1"/> - <pt x="1259" y="1367" on="0"/> - <pt x="1256" y="1320" on="1"/> - <pt x="1250" y="1221" on="1"/> - <pt x="1250" y="0" on="1"/> - <pt x="1250" y="-134" on="0"/> - <pt x="1171" y="-215" on="1"/> - <pt x="1092" y="-296" on="0"/> - <pt x="956" y="-296" on="1"/> - <pt x="864" y="-296" on="0"/> - <pt x="742" y="-270" on="1"/> - <pt x="742" y="-26" on="1"/> - <pt x="853" y="-26" on="1"/> - <pt x="854" y="-47" on="1"/> - <pt x="854" y="-53" on="0"/> - <pt x="856" y="-72" on="1"/> - <pt x="857" y="-84" on="0"/> - <pt x="857" y="-91" on="1"/> - <pt x="858" y="-107" on="1"/> - <pt x="858" y="-111" on="0"/> - <pt x="858" y="-119" on="1"/> - <pt x="858" y="-222" on="0"/> - <pt x="983" y="-222" on="1"/> - <pt x="1152" y="-222" on="0"/> - <pt x="1152" y="-10" on="1"/> - <pt x="1152" y="0" on="1"/> - <pt x="322" y="1220" on="1"/> - <pt x="322" y="259" on="1"/> - <pt x="321" y="144" on="0"/> - <pt x="340" y="104" on="1"/> - <pt x="355" y="72" on="0"/> - <pt x="421" y="68" on="1"/> - <pt x="489" y="63" on="1"/> - <pt x="508" y="62" on="1"/> - <pt x="508" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 97 values pushed */ - 0 0 53 21 39 48 84 7 14 64 58 57 34 27 24 17 16 6 1 10 14 0 3 55 43 - 42 41 4 13 39 0 65 56 35 0 3 0 26 25 15 14 0 3 14 14 7 56 55 43 25 - 24 5 16 41 3 65 64 15 3 41 57 3 27 26 2 13 34 1 0 6 0 0 17 16 35 - 1 34 58 57 35 1 6 2 4 48 196 35 34 1 42 41 1 7 6 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Eogonek" xMin="43" yMin="-370" xMax="1202" yMax="1480"> - <contour> - <pt x="1146" y="1480" on="1"/> - <pt x="1146" y="1221" on="1"/> - <pt x="1035" y="1221" on="1"/> - <pt x="1034" y="1240" on="1"/> - <pt x="1029" y="1324" on="1"/> - <pt x="1028" y="1379" on="0"/> - <pt x="1010" y="1390" on="1"/> - <pt x="993" y="1399" on="0"/> - <pt x="956" y="1399" on="1"/> - <pt x="853" y="1400" on="1"/> - <pt x="438" y="1400" on="1"/> - <pt x="438" y="808" on="1"/> - <pt x="801" y="809" on="1"/> - <pt x="864" y="811" on="1"/> - <pt x="917" y="812" on="0"/> - <pt x="925" y="828" on="1"/> - <pt x="933" y="841" on="0"/> - <pt x="933" y="872" on="1"/> - <pt x="933" y="884" on="0"/> - <pt x="935" y="913" on="1"/> - <pt x="936" y="931" on="1"/> - <pt x="1017" y="931" on="1"/> - <pt x="1017" y="605" on="1"/> - <pt x="936" y="605" on="1"/> - <pt x="935" y="623" on="1"/> - <pt x="929" y="710" on="0"/> - <pt x="905" y="717" on="1"/> - <pt x="880" y="728" on="0"/> - <pt x="801" y="728" on="1"/> - <pt x="438" y="728" on="1"/> - <pt x="438" y="259" on="1"/> - <pt x="438" y="123" on="0"/> - <pt x="478" y="105" on="1"/> - <pt x="514" y="86" on="0"/> - <pt x="608" y="86" on="1"/> - <pt x="858" y="86" on="1"/> - <pt x="1005" y="86" on="0"/> - <pt x="1043" y="100" on="1"/> - <pt x="1083" y="113" on="0"/> - <pt x="1086" y="162" on="1"/> - <pt x="1090" y="253" on="1"/> - <pt x="1091" y="271" on="1"/> - <pt x="1202" y="271" on="1"/> - <pt x="1202" y="0" on="1"/> - <pt x="43" y="0" on="1"/> - <pt x="43" y="62" on="1"/> - <pt x="62" y="63" on="1"/> - <pt x="129" y="68" on="1"/> - <pt x="205" y="74" on="0"/> - <pt x="215" y="115" on="1"/> - <pt x="228" y="177" on="0"/> - <pt x="228" y="259" on="1"/> - <pt x="228" y="1221" on="1"/> - <pt x="228" y="1280" on="0"/> - <pt x="221" y="1333" on="1"/> - <pt x="215" y="1372" on="0"/> - <pt x="207" y="1384" on="1"/> - <pt x="189" y="1410" on="0"/> - <pt x="129" y="1413" on="1"/> - <pt x="62" y="1417" on="1"/> - <pt x="43" y="1419" on="1"/> - <pt x="43" y="1480" on="1"/> - </contour> - <contour> - <pt x="1140" y="-273" on="1"/> - <pt x="1140" y="-341" on="1"/> - <pt x="1069" y="-370" on="0"/> - <pt x="991" y="-370" on="1"/> - <pt x="771" y="-370" on="0"/> - <pt x="771" y="-211" on="1"/> - <pt x="771" y="-89" on="0"/> - <pt x="929" y="0" on="1"/> - <pt x="1036" y="0" on="1"/> - <pt x="907" y="-80" on="0"/> - <pt x="907" y="-182" on="1"/> - <pt x="907" y="-289" on="0"/> - <pt x="1040" y="-289" on="1"/> - <pt x="1091" y="-289" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 127 values pushed */ - 0 0 74 7 65 48 84 52 61 51 44 21 20 12 11 2 1 6 9 28 3 42 41 30 26 - 23 22 6 28 34 3 63 62 65 43 0 0 10 9 21 1 0 35 34 7 1 43 2 4 48 - 84 29 28 1 70 69 44 43 3 2 0 61 0 0 14 0 0 72 48 67 48 196 61 52 44 - 51 70 63 62 41 2 5 0 21 3 67 69 67 35 34 28 26 23 20 12 9 10 21 10 3 - 0 0 30 29 11 10 32 3 51 1 4 48 196 43 42 1 1 0 1 22 21 1 52 51 1 - 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[1] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Eth" xMin="41" yMin="0" xMax="1399" yMax="1489"> - <contour> - <pt x="226" y="716" on="1"/> - <pt x="41" y="716" on="1"/> - <pt x="41" y="783" on="1"/> - <pt x="226" y="783" on="1"/> - <pt x="226" y="1221" on="1"/> - <pt x="226" y="1280" on="0"/> - <pt x="219" y="1333" on="1"/> - <pt x="213" y="1372" on="0"/> - <pt x="205" y="1384" on="1"/> - <pt x="187" y="1410" on="0"/> - <pt x="127" y="1413" on="1"/> - <pt x="60" y="1417" on="1"/> - <pt x="41" y="1419" on="1"/> - <pt x="41" y="1480" on="1"/> - <pt x="465" y="1480" on="1"/> - <pt x="536" y="1481" on="1"/> - <pt x="608" y="1484" on="1"/> - <pt x="680" y="1485" on="1"/> - <pt x="989" y="1489" on="0"/> - <pt x="1176" y="1335" on="1"/> - <pt x="1399" y="1151" on="0"/> - <pt x="1399" y="772" on="1"/> - <pt x="1399" y="414" on="0"/> - <pt x="1208" y="207" on="1"/> - <pt x="1017" y="0" on="0"/> - <pt x="687" y="0" on="1"/> - <pt x="41" y="0" on="1"/> - <pt x="41" y="62" on="1"/> - <pt x="60" y="63" on="1"/> - <pt x="127" y="68" on="1"/> - <pt x="203" y="74" on="0"/> - <pt x="213" y="115" on="1"/> - <pt x="226" y="177" on="0"/> - <pt x="226" y="259" on="1"/> - </contour> - <contour> - <pt x="436" y="716" on="1"/> - <pt x="436" y="259" on="1"/> - <pt x="440" y="181" on="1"/> - <pt x="444" y="110" on="0"/> - <pt x="498" y="87" on="1"/> - <pt x="544" y="68" on="0"/> - <pt x="638" y="68" on="1"/> - <pt x="894" y="68" on="0"/> - <pt x="1032" y="243" on="1"/> - <pt x="1171" y="419" on="0"/> - <pt x="1171" y="743" on="1"/> - <pt x="1171" y="1098" on="0"/> - <pt x="1021" y="1256" on="1"/> - <pt x="871" y="1413" on="0"/> - <pt x="532" y="1413" on="1"/> - <pt x="436" y="1413" on="1"/> - <pt x="436" y="783" on="1"/> - <pt x="781" y="783" on="1"/> - <pt x="781" y="716" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 86 values pushed */ - 33 26 4 13 49 48 2 13 2 3 40 40 35 2 0 25 3 0 0 52 34 1 0 14 3 - 2 1 4 48 84 51 50 3 2 3 26 25 1 2 0 14 13 0 14 0 0 44 34 21 48 - 196 26 33 13 4 52 51 48 25 14 5 13 21 34 2 1 0 0 0 50 49 35 34 32 3 - 0 1 4 48 196 33 4 3 0 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[1] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Euro" xMin="0" yMin="-37" xMax="967" yMax="1517"> - <contour> - <pt x="0" y="580" on="1"/> - <pt x="26" y="642" on="1"/> - <pt x="122" y="642" on="1"/> - <pt x="119" y="698" on="0"/> - <pt x="119" y="733" on="1"/> - <pt x="119" y="759" on="0"/> - <pt x="121" y="809" on="1"/> - <pt x="122" y="837" on="0"/> - <pt x="123" y="851" on="1"/> - <pt x="0" y="851" on="1"/> - <pt x="26" y="913" on="1"/> - <pt x="130" y="913" on="1"/> - <pt x="155" y="1070" on="0"/> - <pt x="184" y="1151" on="1"/> - <pt x="315" y="1517" on="0"/> - <pt x="669" y="1517" on="1"/> - <pt x="824" y="1517" on="0"/> - <pt x="967" y="1443" on="1"/> - <pt x="967" y="1184" on="1"/> - <pt x="868" y="1184" on="1"/> - <pt x="867" y="1239" on="1"/> - <pt x="863" y="1450" on="0"/> - <pt x="679" y="1450" on="1"/> - <pt x="510" y="1450" on="0"/> - <pt x="415" y="1270" on="1"/> - <pt x="347" y="1142" on="0"/> - <pt x="325" y="913" on="1"/> - <pt x="854" y="913" on="1"/> - <pt x="828" y="851" on="1"/> - <pt x="320" y="851" on="1"/> - <pt x="316" y="786" on="0"/> - <pt x="316" y="733" on="1"/> - <pt x="316" y="724" on="0"/> - <pt x="317" y="692" on="1"/> - <pt x="318" y="664" on="0"/> - <pt x="319" y="642" on="1"/> - <pt x="741" y="642" on="1"/> - <pt x="716" y="580" on="1"/> - <pt x="324" y="580" on="1"/> - <pt x="404" y="62" on="0"/> - <pt x="719" y="62" on="1"/> - <pt x="836" y="62" on="0"/> - <pt x="957" y="138" on="1"/> - <pt x="957" y="45" on="1"/> - <pt x="834" y="-37" on="0"/> - <pt x="674" y="-37" on="1"/> - <pt x="421" y="-37" on="0"/> - <pt x="272" y="174" on="1"/> - <pt x="167" y="323" on="0"/> - <pt x="129" y="580" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 98 values pushed */ - 0 0 40 9 45 22 38 15 48 84 45 2 15 0 1 19 18 17 3 0 10 3 0 1 43 - 42 2 0 2 3 0 0 0 29 28 9 8 11 3 10 49 38 37 0 11 3 1 2 4 48 - 84 27 26 11 10 3 36 35 2 1 3 2 0 14 0 0 31 5 4 48 196 49 43 42 38 - 37 36 35 29 28 27 26 19 11 10 9 8 2 1 0 19 13 4 17 18 17 1 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Euro#1" xMin="0" yMin="-37" xMax="967" yMax="1517"> - <contour> - <pt x="0" y="580" on="1"/> - <pt x="26" y="642" on="1"/> - <pt x="122" y="642" on="1"/> - <pt x="119" y="698" on="0"/> - <pt x="119" y="733" on="1"/> - <pt x="119" y="759" on="0"/> - <pt x="121" y="809" on="1"/> - <pt x="122" y="837" on="0"/> - <pt x="123" y="851" on="1"/> - <pt x="0" y="851" on="1"/> - <pt x="26" y="913" on="1"/> - <pt x="130" y="913" on="1"/> - <pt x="155" y="1070" on="0"/> - <pt x="184" y="1151" on="1"/> - <pt x="315" y="1517" on="0"/> - <pt x="669" y="1517" on="1"/> - <pt x="824" y="1517" on="0"/> - <pt x="967" y="1443" on="1"/> - <pt x="967" y="1184" on="1"/> - <pt x="868" y="1184" on="1"/> - <pt x="867" y="1239" on="1"/> - <pt x="863" y="1450" on="0"/> - <pt x="679" y="1450" on="1"/> - <pt x="510" y="1450" on="0"/> - <pt x="415" y="1270" on="1"/> - <pt x="347" y="1142" on="0"/> - <pt x="325" y="913" on="1"/> - <pt x="854" y="913" on="1"/> - <pt x="828" y="851" on="1"/> - <pt x="320" y="851" on="1"/> - <pt x="316" y="786" on="0"/> - <pt x="316" y="733" on="1"/> - <pt x="316" y="724" on="0"/> - <pt x="317" y="692" on="1"/> - <pt x="318" y="664" on="0"/> - <pt x="319" y="642" on="1"/> - <pt x="741" y="642" on="1"/> - <pt x="716" y="580" on="1"/> - <pt x="324" y="580" on="1"/> - <pt x="404" y="62" on="0"/> - <pt x="719" y="62" on="1"/> - <pt x="836" y="62" on="0"/> - <pt x="957" y="138" on="1"/> - <pt x="957" y="45" on="1"/> - <pt x="834" y="-37" on="0"/> - <pt x="674" y="-37" on="1"/> - <pt x="421" y="-37" on="0"/> - <pt x="272" y="174" on="1"/> - <pt x="167" y="323" on="0"/> - <pt x="129" y="580" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 98 values pushed */ - 0 0 40 9 45 22 38 15 48 84 45 2 15 0 1 19 18 17 3 0 10 3 0 1 43 - 42 2 0 2 3 0 0 0 29 28 9 8 11 3 10 49 38 37 0 11 3 1 2 4 48 - 84 27 26 11 10 3 36 35 2 1 3 2 0 14 0 0 31 5 4 48 196 49 43 42 38 - 37 36 35 29 28 27 26 19 11 10 9 8 2 1 0 19 13 4 17 18 17 1 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="F" xMin="43" yMin="0" xMax="1058" yMax="1480"> - <contour> - <pt x="1058" y="1480" on="1"/> - <pt x="1058" y="1221" on="1"/> - <pt x="947" y="1221" on="1"/> - <pt x="946" y="1240" on="1"/> - <pt x="941" y="1324" on="1"/> - <pt x="940" y="1380" on="0"/> - <pt x="922" y="1390" on="1"/> - <pt x="905" y="1399" on="0"/> - <pt x="868" y="1399" on="1"/> - <pt x="765" y="1400" on="1"/> - <pt x="438" y="1400" on="1"/> - <pt x="438" y="799" on="1"/> - <pt x="725" y="799" on="1"/> - <pt x="788" y="801" on="1"/> - <pt x="839" y="802" on="0"/> - <pt x="848" y="815" on="1"/> - <pt x="855" y="827" on="0"/> - <pt x="857" y="857" on="1"/> - <pt x="858" y="878" on="1"/> - <pt x="860" y="903" on="1"/> - <pt x="861" y="921" on="1"/> - <pt x="941" y="921" on="1"/> - <pt x="941" y="594" on="1"/> - <pt x="861" y="594" on="1"/> - <pt x="860" y="613" on="1"/> - <pt x="854" y="701" on="0"/> - <pt x="829" y="708" on="1"/> - <pt x="803" y="718" on="0"/> - <pt x="725" y="718" on="1"/> - <pt x="438" y="718" on="1"/> - <pt x="438" y="259" on="1"/> - <pt x="438" y="123" on="0"/> - <pt x="467" y="95" on="1"/> - <pt x="491" y="68" on="0"/> - <pt x="551" y="68" on="1"/> - <pt x="553" y="68" on="1"/> - <pt x="569" y="67" on="0"/> - <pt x="629" y="63" on="1"/> - <pt x="648" y="62" on="1"/> - <pt x="648" y="0" on="1"/> - <pt x="43" y="0" on="1"/> - <pt x="43" y="62" on="1"/> - <pt x="62" y="63" on="1"/> - <pt x="129" y="68" on="1"/> - <pt x="205" y="74" on="0"/> - <pt x="215" y="115" on="1"/> - <pt x="228" y="177" on="0"/> - <pt x="228" y="259" on="1"/> - <pt x="228" y="1221" on="1"/> - <pt x="228" y="1280" on="0"/> - <pt x="221" y="1333" on="1"/> - <pt x="215" y="1372" on="0"/> - <pt x="207" y="1384" on="1"/> - <pt x="189" y="1410" on="0"/> - <pt x="129" y="1413" on="1"/> - <pt x="62" y="1417" on="1"/> - <pt x="43" y="1419" on="1"/> - <pt x="43" y="1480" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 91 values pushed */ - 48 57 47 40 30 39 21 20 2 1 4 9 11 3 23 22 2 28 39 3 0 0 10 9 21 - 1 0 29 28 7 1 11 2 4 48 84 12 11 1 40 39 1 2 0 57 0 0 14 57 48 - 40 47 39 30 2 0 21 2 28 23 20 12 9 5 21 10 3 0 0 30 29 11 10 32 3 - 47 1 4 48 196 1 0 1 22 21 1 48 47 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="G" xMin="85" yMin="-37" xMax="1458" yMax="1518"> - <contour> - <pt x="1285" y="36" on="1"/> - <pt x="994" y="-37" on="0"/> - <pt x="805" y="-37" on="1"/> - <pt x="475" y="-37" on="0"/> - <pt x="280" y="175" on="1"/> - <pt x="85" y="386" on="0"/> - <pt x="85" y="745" on="1"/> - <pt x="85" y="1112" on="0"/> - <pt x="275" y="1315" on="1"/> - <pt x="464" y="1518" on="0"/> - <pt x="815" y="1518" on="1"/> - <pt x="1047" y="1518" on="0"/> - <pt x="1282" y="1441" on="1"/> - <pt x="1282" y="1172" on="1"/> - <pt x="1171" y="1172" on="1"/> - <pt x="1170" y="1192" on="1"/> - <pt x="1168" y="1217" on="0"/> - <pt x="1168" y="1242" on="1"/> - <pt x="1168" y="1249" on="1"/> - <pt x="1168" y="1333" on="0"/> - <pt x="1094" y="1385" on="1"/> - <pt x="1001" y="1450" on="0"/> - <pt x="825" y="1450" on="1"/> - <pt x="575" y="1450" on="0"/> - <pt x="444" y="1263" on="1"/> - <pt x="313" y="1077" on="0"/> - <pt x="313" y="733" on="1"/> - <pt x="313" y="386" on="0"/> - <pt x="475" y="214" on="1"/> - <pt x="633" y="47" on="0"/> - <pt x="864" y="47" on="1"/> - <pt x="948" y="47" on="0"/> - <pt x="1076" y="80" on="1"/> - <pt x="1076" y="371" on="1"/> - <pt x="1077" y="487" on="0"/> - <pt x="1058" y="527" on="1"/> - <pt x="1043" y="557" on="0"/> - <pt x="977" y="562" on="1"/> - <pt x="909" y="568" on="1"/> - <pt x="891" y="569" on="1"/> - <pt x="891" y="630" on="1"/> - <pt x="1458" y="630" on="1"/> - <pt x="1458" y="569" on="1"/> - <pt x="1440" y="568" on="1"/> - <pt x="1384" y="562" on="1"/> - <pt x="1317" y="556" on="0"/> - <pt x="1305" y="535" on="1"/> - <pt x="1294" y="516" on="0"/> - <pt x="1291" y="470" on="1"/> - <pt x="1285" y="371" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 84 values pushed */ - 0 0 30 7 2 22 17 10 48 84 10 0 2 2 1 18 17 14 13 12 5 0 40 3 0 - 1 49 42 39 33 32 0 6 40 2 3 0 41 40 1 0 14 0 0 26 34 6 48 196 18 - 17 14 3 12 32 3 42 41 2 13 0 40 39 6 32 0 0 33 32 32 1 0 1 4 48 - 196 49 0 1 13 12 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Gbreve" xMin="85" yMin="-37" xMax="1458" yMax="1925"> - <contour> - <pt x="1285" y="36" on="1"/> - <pt x="994" y="-37" on="0"/> - <pt x="805" y="-37" on="1"/> - <pt x="475" y="-37" on="0"/> - <pt x="280" y="175" on="1"/> - <pt x="85" y="386" on="0"/> - <pt x="85" y="745" on="1"/> - <pt x="85" y="1112" on="0"/> - <pt x="275" y="1315" on="1"/> - <pt x="464" y="1518" on="0"/> - <pt x="815" y="1518" on="1"/> - <pt x="1047" y="1518" on="0"/> - <pt x="1282" y="1441" on="1"/> - <pt x="1282" y="1172" on="1"/> - <pt x="1171" y="1172" on="1"/> - <pt x="1170" y="1192" on="1"/> - <pt x="1168" y="1217" on="0"/> - <pt x="1168" y="1242" on="1"/> - <pt x="1168" y="1249" on="1"/> - <pt x="1168" y="1333" on="0"/> - <pt x="1094" y="1385" on="1"/> - <pt x="1001" y="1450" on="0"/> - <pt x="825" y="1450" on="1"/> - <pt x="575" y="1450" on="0"/> - <pt x="444" y="1263" on="1"/> - <pt x="313" y="1077" on="0"/> - <pt x="313" y="733" on="1"/> - <pt x="313" y="386" on="0"/> - <pt x="475" y="214" on="1"/> - <pt x="633" y="47" on="0"/> - <pt x="864" y="47" on="1"/> - <pt x="948" y="47" on="0"/> - <pt x="1076" y="80" on="1"/> - <pt x="1076" y="371" on="1"/> - <pt x="1077" y="487" on="0"/> - <pt x="1058" y="527" on="1"/> - <pt x="1043" y="557" on="0"/> - <pt x="977" y="562" on="1"/> - <pt x="909" y="568" on="1"/> - <pt x="891" y="569" on="1"/> - <pt x="891" y="630" on="1"/> - <pt x="1458" y="630" on="1"/> - <pt x="1458" y="569" on="1"/> - <pt x="1440" y="568" on="1"/> - <pt x="1384" y="562" on="1"/> - <pt x="1317" y="556" on="0"/> - <pt x="1305" y="535" on="1"/> - <pt x="1294" y="516" on="0"/> - <pt x="1291" y="470" on="1"/> - <pt x="1285" y="371" on="1"/> - </contour> - <contour> - <pt x="488" y="1925" on="1"/> - <pt x="553" y="1925" on="1"/> - <pt x="580" y="1835" on="0"/> - <pt x="640" y="1793" on="1"/> - <pt x="708" y="1746" on="0"/> - <pt x="821" y="1746" on="1"/> - <pt x="947" y="1746" on="0"/> - <pt x="1017" y="1805" on="1"/> - <pt x="1066" y="1845" on="0"/> - <pt x="1090" y="1925" on="1"/> - <pt x="1154" y="1925" on="1"/> - <pt x="1135" y="1790" on="0"/> - <pt x="1063" y="1709" on="1"/> - <pt x="969" y="1604" on="0"/> - <pt x="821" y="1604" on="1"/> - <pt x="667" y="1604" on="0"/> - <pt x="572" y="1719" on="1"/> - <pt x="507" y="1796" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 103 values pushed */ - 0 0 55 20 64 30 7 2 22 17 10 48 84 10 0 2 2 1 18 17 14 13 12 5 0 - 40 3 0 1 49 42 39 33 32 0 6 40 2 3 0 1 60 59 51 50 4 13 64 0 0 - 41 40 1 0 14 0 0 26 34 6 48 196 60 59 18 17 14 5 12 32 3 42 41 2 13 - 0 51 50 40 39 4 13 6 32 0 0 33 32 32 1 0 1 4 48 196 49 0 1 13 12 - 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Gcircumflex" xMin="85" yMin="-37" xMax="1458" yMax="1925"> - <contour> - <pt x="1285" y="36" on="1"/> - <pt x="994" y="-37" on="0"/> - <pt x="805" y="-37" on="1"/> - <pt x="475" y="-37" on="0"/> - <pt x="280" y="175" on="1"/> - <pt x="85" y="386" on="0"/> - <pt x="85" y="745" on="1"/> - <pt x="85" y="1112" on="0"/> - <pt x="275" y="1315" on="1"/> - <pt x="464" y="1518" on="0"/> - <pt x="815" y="1518" on="1"/> - <pt x="1047" y="1518" on="0"/> - <pt x="1282" y="1441" on="1"/> - <pt x="1282" y="1172" on="1"/> - <pt x="1171" y="1172" on="1"/> - <pt x="1170" y="1192" on="1"/> - <pt x="1168" y="1217" on="0"/> - <pt x="1168" y="1242" on="1"/> - <pt x="1168" y="1249" on="1"/> - <pt x="1168" y="1333" on="0"/> - <pt x="1094" y="1385" on="1"/> - <pt x="1001" y="1450" on="0"/> - <pt x="825" y="1450" on="1"/> - <pt x="575" y="1450" on="0"/> - <pt x="444" y="1263" on="1"/> - <pt x="313" y="1077" on="0"/> - <pt x="313" y="733" on="1"/> - <pt x="313" y="386" on="0"/> - <pt x="475" y="214" on="1"/> - <pt x="633" y="47" on="0"/> - <pt x="864" y="47" on="1"/> - <pt x="948" y="47" on="0"/> - <pt x="1076" y="80" on="1"/> - <pt x="1076" y="371" on="1"/> - <pt x="1077" y="487" on="0"/> - <pt x="1058" y="527" on="1"/> - <pt x="1043" y="557" on="0"/> - <pt x="977" y="562" on="1"/> - <pt x="909" y="568" on="1"/> - <pt x="891" y="569" on="1"/> - <pt x="891" y="630" on="1"/> - <pt x="1458" y="630" on="1"/> - <pt x="1458" y="569" on="1"/> - <pt x="1440" y="568" on="1"/> - <pt x="1384" y="562" on="1"/> - <pt x="1317" y="556" on="0"/> - <pt x="1305" y="535" on="1"/> - <pt x="1294" y="516" on="0"/> - <pt x="1291" y="470" on="1"/> - <pt x="1285" y="371" on="1"/> - </contour> - <contour> - <pt x="469" y="1604" on="1"/> - <pt x="710" y="1925" on="1"/> - <pt x="932" y="1925" on="1"/> - <pt x="1172" y="1604" on="1"/> - <pt x="1086" y="1604" on="1"/> - <pt x="821" y="1826" on="1"/> - <pt x="555" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 108 values pushed */ - 0 0 30 7 2 22 17 10 48 84 10 0 2 2 1 56 55 54 53 50 5 51 0 3 0 - 1 18 17 14 13 12 5 0 40 3 0 1 49 42 39 33 32 0 6 40 2 3 0 52 51 - 1 41 40 1 2 0 14 0 0 26 34 6 48 196 54 53 18 17 14 5 12 32 3 42 41 - 2 13 0 56 55 52 51 50 40 39 7 13 6 32 0 0 33 32 32 1 0 1 4 48 196 - 49 0 1 13 12 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Gcommaaccent" xMin="85" yMin="-432" xMax="1458" yMax="1518"> - <contour> - <pt x="1285" y="36" on="1"/> - <pt x="994" y="-37" on="0"/> - <pt x="805" y="-37" on="1"/> - <pt x="475" y="-37" on="0"/> - <pt x="280" y="175" on="1"/> - <pt x="85" y="386" on="0"/> - <pt x="85" y="745" on="1"/> - <pt x="85" y="1112" on="0"/> - <pt x="275" y="1315" on="1"/> - <pt x="464" y="1518" on="0"/> - <pt x="815" y="1518" on="1"/> - <pt x="1047" y="1518" on="0"/> - <pt x="1282" y="1441" on="1"/> - <pt x="1282" y="1172" on="1"/> - <pt x="1171" y="1172" on="1"/> - <pt x="1170" y="1192" on="1"/> - <pt x="1168" y="1217" on="0"/> - <pt x="1168" y="1242" on="1"/> - <pt x="1168" y="1249" on="1"/> - <pt x="1168" y="1333" on="0"/> - <pt x="1094" y="1385" on="1"/> - <pt x="1001" y="1450" on="0"/> - <pt x="825" y="1450" on="1"/> - <pt x="575" y="1450" on="0"/> - <pt x="444" y="1263" on="1"/> - <pt x="313" y="1077" on="0"/> - <pt x="313" y="733" on="1"/> - <pt x="313" y="386" on="0"/> - <pt x="475" y="214" on="1"/> - <pt x="633" y="47" on="0"/> - <pt x="864" y="47" on="1"/> - <pt x="948" y="47" on="0"/> - <pt x="1076" y="80" on="1"/> - <pt x="1076" y="371" on="1"/> - <pt x="1077" y="486" on="0"/> - <pt x="1058" y="527" on="1"/> - <pt x="1042" y="557" on="0"/> - <pt x="977" y="562" on="1"/> - <pt x="909" y="568" on="1"/> - <pt x="891" y="569" on="1"/> - <pt x="891" y="630" on="1"/> - <pt x="1458" y="630" on="1"/> - <pt x="1458" y="569" on="1"/> - <pt x="1440" y="568" on="1"/> - <pt x="1384" y="562" on="1"/> - <pt x="1317" y="556" on="0"/> - <pt x="1305" y="535" on="1"/> - <pt x="1294" y="516" on="0"/> - <pt x="1291" y="470" on="1"/> - <pt x="1285" y="371" on="1"/> - </contour> - <contour> - <pt x="614" y="-421" on="1"/> - <pt x="614" y="-349" on="1"/> - <pt x="663" y="-359" on="0"/> - <pt x="718" y="-359" on="1"/> - <pt x="821" y="-359" on="0"/> - <pt x="821" y="-279" on="1"/> - <pt x="821" y="-190" on="0"/> - <pt x="663" y="-175" on="1"/> - <pt x="663" y="-111" on="1"/> - <pt x="798" y="-114" on="0"/> - <pt x="863" y="-143" on="1"/> - <pt x="956" y="-185" on="0"/> - <pt x="956" y="-280" on="1"/> - <pt x="956" y="-432" on="0"/> - <pt x="739" y="-432" on="1"/> - <pt x="679" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 107 values pushed */ - 0 0 53 17 64 30 7 2 22 17 10 48 84 10 0 2 2 1 18 17 14 13 12 5 0 - 40 3 0 1 49 42 39 33 32 0 6 40 2 3 0 1 58 57 51 50 4 13 64 2 0 - 41 40 1 0 14 0 0 55 48 62 26 34 6 48 196 18 17 14 3 12 32 3 42 41 2 - 13 0 58 57 51 50 40 39 6 13 62 6 32 0 0 33 32 32 1 0 1 4 48 196 49 - 0 1 13 12 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Gdotaccent" xMin="85" yMin="-37" xMax="1458" yMax="1801"> - <contour> - <pt x="1285" y="36" on="1"/> - <pt x="994" y="-37" on="0"/> - <pt x="805" y="-37" on="1"/> - <pt x="475" y="-37" on="0"/> - <pt x="280" y="175" on="1"/> - <pt x="85" y="386" on="0"/> - <pt x="85" y="745" on="1"/> - <pt x="85" y="1112" on="0"/> - <pt x="275" y="1315" on="1"/> - <pt x="464" y="1518" on="0"/> - <pt x="815" y="1518" on="1"/> - <pt x="1047" y="1518" on="0"/> - <pt x="1282" y="1441" on="1"/> - <pt x="1282" y="1172" on="1"/> - <pt x="1171" y="1172" on="1"/> - <pt x="1170" y="1192" on="1"/> - <pt x="1168" y="1217" on="0"/> - <pt x="1168" y="1242" on="1"/> - <pt x="1168" y="1249" on="1"/> - <pt x="1168" y="1333" on="0"/> - <pt x="1094" y="1385" on="1"/> - <pt x="1001" y="1450" on="0"/> - <pt x="825" y="1450" on="1"/> - <pt x="575" y="1450" on="0"/> - <pt x="444" y="1263" on="1"/> - <pt x="313" y="1077" on="0"/> - <pt x="313" y="733" on="1"/> - <pt x="313" y="386" on="0"/> - <pt x="475" y="214" on="1"/> - <pt x="633" y="47" on="0"/> - <pt x="864" y="47" on="1"/> - <pt x="948" y="47" on="0"/> - <pt x="1076" y="80" on="1"/> - <pt x="1076" y="371" on="1"/> - <pt x="1077" y="487" on="0"/> - <pt x="1058" y="527" on="1"/> - <pt x="1043" y="557" on="0"/> - <pt x="977" y="562" on="1"/> - <pt x="909" y="568" on="1"/> - <pt x="891" y="569" on="1"/> - <pt x="891" y="630" on="1"/> - <pt x="1458" y="630" on="1"/> - <pt x="1458" y="569" on="1"/> - <pt x="1440" y="568" on="1"/> - <pt x="1384" y="562" on="1"/> - <pt x="1317" y="556" on="0"/> - <pt x="1305" y="535" on="1"/> - <pt x="1294" y="516" on="0"/> - <pt x="1291" y="470" on="1"/> - <pt x="1285" y="371" on="1"/> - </contour> - <contour> - <pt x="722" y="1604" on="1"/> - <pt x="722" y="1801" on="1"/> - <pt x="919" y="1801" on="1"/> - <pt x="919" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 111 values pushed */ - 0 0 30 7 2 22 17 10 48 84 10 0 2 2 1 18 17 14 13 12 5 0 40 3 0 - 1 49 42 39 33 32 0 6 40 2 3 0 0 0 53 50 5 1 51 1 4 48 84 52 51 - 1 41 40 1 2 0 14 0 0 26 34 6 48 196 18 17 14 3 12 32 3 40 39 2 52 - 50 3 42 41 2 13 0 6 50 0 0 53 52 4 1 50 33 32 32 1 0 2 4 48 196 - 51 50 1 49 0 1 13 12 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="H" xMin="41" yMin="0" xMax="1438" yMax="1480"> - <contour> - <pt x="436" y="812" on="1"/> - <pt x="1043" y="812" on="1"/> - <pt x="1043" y="1221" on="1"/> - <pt x="1043" y="1280" on="0"/> - <pt x="1036" y="1333" on="1"/> - <pt x="1030" y="1372" on="0"/> - <pt x="1022" y="1384" on="1"/> - <pt x="1003" y="1409" on="0"/> - <pt x="945" y="1413" on="1"/> - <pt x="877" y="1417" on="1"/> - <pt x="858" y="1419" on="1"/> - <pt x="858" y="1480" on="1"/> - <pt x="1438" y="1480" on="1"/> - <pt x="1438" y="1419" on="1"/> - <pt x="1420" y="1417" on="1"/> - <pt x="1352" y="1413" on="1"/> - <pt x="1277" y="1408" on="0"/> - <pt x="1267" y="1366" on="1"/> - <pt x="1252" y="1305" on="0"/> - <pt x="1253" y="1221" on="1"/> - <pt x="1253" y="259" on="1"/> - <pt x="1253" y="203" on="0"/> - <pt x="1261" y="147" on="1"/> - <pt x="1268" y="96" on="0"/> - <pt x="1293" y="82" on="1"/> - <pt x="1314" y="71" on="0"/> - <pt x="1352" y="68" on="1"/> - <pt x="1420" y="63" on="1"/> - <pt x="1438" y="62" on="1"/> - <pt x="1438" y="0" on="1"/> - <pt x="858" y="0" on="1"/> - <pt x="858" y="62" on="1"/> - <pt x="877" y="63" on="1"/> - <pt x="945" y="68" on="1"/> - <pt x="1020" y="74" on="0"/> - <pt x="1030" y="115" on="1"/> - <pt x="1043" y="177" on="0"/> - <pt x="1043" y="259" on="1"/> - <pt x="1043" y="726" on="1"/> - <pt x="436" y="726" on="1"/> - <pt x="436" y="259" on="1"/> - <pt x="436" y="200" on="0"/> - <pt x="443" y="147" on="1"/> - <pt x="449" y="109" on="0"/> - <pt x="457" y="97" on="1"/> - <pt x="476" y="72" on="0"/> - <pt x="534" y="68" on="1"/> - <pt x="602" y="63" on="1"/> - <pt x="621" y="62" on="1"/> - <pt x="621" y="0" on="1"/> - <pt x="41" y="0" on="1"/> - <pt x="41" y="62" on="1"/> - <pt x="60" y="63" on="1"/> - <pt x="128" y="68" on="1"/> - <pt x="192" y="73" on="0"/> - <pt x="226" y="139" on="0"/> - <pt x="226" y="259" on="1"/> - <pt x="226" y="1221" on="1"/> - <pt x="226" y="1280" on="0"/> - <pt x="219" y="1333" on="1"/> - <pt x="213" y="1372" on="0"/> - <pt x="205" y="1384" on="1"/> - <pt x="186" y="1409" on="0"/> - <pt x="128" y="1413" on="1"/> - <pt x="60" y="1417" on="1"/> - <pt x="41" y="1419" on="1"/> - <pt x="41" y="1480" on="1"/> - <pt x="621" y="1480" on="1"/> - <pt x="621" y="1419" on="1"/> - <pt x="602" y="1417" on="1"/> - <pt x="534" y="1413" on="1"/> - <pt x="459" y="1408" on="0"/> - <pt x="449" y="1366" on="1"/> - <pt x="436" y="1302" on="0"/> - <pt x="436" y="1221" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 88 values pushed */ - 74 67 57 66 56 50 40 49 37 30 20 29 19 12 2 11 0 0 39 38 7 1 0 1 4 - 48 84 1 0 1 50 49 30 29 3 2 0 67 66 12 11 0 3 14 67 74 66 57 50 56 - 49 40 30 37 29 20 12 19 11 2 0 0 38 37 2 1 32 3 19 74 40 39 0 32 3 - 56 2 4 48 196 20 19 1 57 56 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Hbar" xMin="41" yMin="0" xMax="1438" yMax="1480"> - <contour> - <pt x="1043" y="726" on="1"/> - <pt x="436" y="726" on="1"/> - <pt x="436" y="259" on="1"/> - <pt x="436" y="200" on="0"/> - <pt x="443" y="147" on="1"/> - <pt x="449" y="109" on="0"/> - <pt x="457" y="97" on="1"/> - <pt x="476" y="72" on="0"/> - <pt x="534" y="68" on="1"/> - <pt x="602" y="63" on="1"/> - <pt x="621" y="62" on="1"/> - <pt x="621" y="0" on="1"/> - <pt x="41" y="0" on="1"/> - <pt x="41" y="62" on="1"/> - <pt x="60" y="63" on="1"/> - <pt x="128" y="68" on="1"/> - <pt x="192" y="73" on="0"/> - <pt x="226" y="139" on="0"/> - <pt x="226" y="259" on="1"/> - <pt x="226" y="1086" on="1"/> - <pt x="41" y="1086" on="1"/> - <pt x="41" y="1160" on="1"/> - <pt x="226" y="1160" on="1"/> - <pt x="226" y="1221" on="1"/> - <pt x="226" y="1280" on="0"/> - <pt x="219" y="1333" on="1"/> - <pt x="213" y="1372" on="0"/> - <pt x="205" y="1384" on="1"/> - <pt x="186" y="1409" on="0"/> - <pt x="128" y="1413" on="1"/> - <pt x="60" y="1417" on="1"/> - <pt x="41" y="1419" on="1"/> - <pt x="41" y="1480" on="1"/> - <pt x="621" y="1480" on="1"/> - <pt x="621" y="1419" on="1"/> - <pt x="602" y="1417" on="1"/> - <pt x="534" y="1413" on="1"/> - <pt x="459" y="1408" on="0"/> - <pt x="449" y="1366" on="1"/> - <pt x="436" y="1302" on="0"/> - <pt x="436" y="1221" on="1"/> - <pt x="436" y="1160" on="1"/> - <pt x="1043" y="1160" on="1"/> - <pt x="1043" y="1221" on="1"/> - <pt x="1043" y="1280" on="0"/> - <pt x="1036" y="1333" on="1"/> - <pt x="1030" y="1372" on="0"/> - <pt x="1022" y="1384" on="1"/> - <pt x="1003" y="1409" on="0"/> - <pt x="945" y="1413" on="1"/> - <pt x="877" y="1417" on="1"/> - <pt x="858" y="1419" on="1"/> - <pt x="858" y="1480" on="1"/> - <pt x="1438" y="1480" on="1"/> - <pt x="1438" y="1419" on="1"/> - <pt x="1420" y="1417" on="1"/> - <pt x="1352" y="1413" on="1"/> - <pt x="1277" y="1408" on="0"/> - <pt x="1267" y="1366" on="1"/> - <pt x="1252" y="1305" on="0"/> - <pt x="1253" y="1221" on="1"/> - <pt x="1253" y="1160" on="1"/> - <pt x="1438" y="1160" on="1"/> - <pt x="1438" y="1086" on="1"/> - <pt x="1253" y="1086" on="1"/> - <pt x="1253" y="259" on="1"/> - <pt x="1253" y="203" on="0"/> - <pt x="1261" y="147" on="1"/> - <pt x="1268" y="96" on="0"/> - <pt x="1293" y="82" on="1"/> - <pt x="1314" y="71" on="0"/> - <pt x="1352" y="68" on="1"/> - <pt x="1420" y="63" on="1"/> - <pt x="1438" y="62" on="1"/> - <pt x="1438" y="0" on="1"/> - <pt x="858" y="0" on="1"/> - <pt x="858" y="62" on="1"/> - <pt x="877" y="63" on="1"/> - <pt x="945" y="68" on="1"/> - <pt x="1020" y="74" on="0"/> - <pt x="1030" y="115" on="1"/> - <pt x="1043" y="177" on="0"/> - <pt x="1043" y="259" on="1"/> - </contour> - <contour> - <pt x="436" y="812" on="1"/> - <pt x="1043" y="812" on="1"/> - <pt x="1043" y="1086" on="1"/> - <pt x="436" y="1086" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 121 values pushed */ - 82 75 65 74 60 53 43 52 40 33 23 32 18 12 2 11 0 0 62 61 42 41 22 21 21 - 5 19 1 0 7 1 83 2 4 48 84 84 83 1 75 74 12 11 3 2 0 53 52 33 32 - 0 3 86 85 64 63 20 19 1 5 14 75 82 74 65 53 60 52 43 33 40 32 23 12 18 - 11 2 63 62 2 13 60 21 20 18 0 0 85 84 82 43 42 0 32 5 60 86 83 41 40 - 2 1 32 5 18 2 4 48 196 65 64 61 60 3 23 22 19 18 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Hcircumflex" xMin="41" yMin="0" xMax="1438" yMax="1925"> - <contour> - <pt x="436" y="812" on="1"/> - <pt x="1043" y="812" on="1"/> - <pt x="1043" y="1221" on="1"/> - <pt x="1043" y="1280" on="0"/> - <pt x="1036" y="1333" on="1"/> - <pt x="1030" y="1372" on="0"/> - <pt x="1022" y="1384" on="1"/> - <pt x="1003" y="1409" on="0"/> - <pt x="945" y="1413" on="1"/> - <pt x="877" y="1417" on="1"/> - <pt x="858" y="1419" on="1"/> - <pt x="858" y="1480" on="1"/> - <pt x="1438" y="1480" on="1"/> - <pt x="1438" y="1419" on="1"/> - <pt x="1420" y="1417" on="1"/> - <pt x="1352" y="1413" on="1"/> - <pt x="1277" y="1408" on="0"/> - <pt x="1267" y="1366" on="1"/> - <pt x="1252" y="1305" on="0"/> - <pt x="1253" y="1221" on="1"/> - <pt x="1253" y="259" on="1"/> - <pt x="1253" y="203" on="0"/> - <pt x="1261" y="147" on="1"/> - <pt x="1268" y="96" on="0"/> - <pt x="1293" y="82" on="1"/> - <pt x="1314" y="71" on="0"/> - <pt x="1352" y="68" on="1"/> - <pt x="1420" y="63" on="1"/> - <pt x="1438" y="62" on="1"/> - <pt x="1438" y="0" on="1"/> - <pt x="858" y="0" on="1"/> - <pt x="858" y="62" on="1"/> - <pt x="877" y="63" on="1"/> - <pt x="945" y="68" on="1"/> - <pt x="1020" y="74" on="0"/> - <pt x="1030" y="115" on="1"/> - <pt x="1043" y="177" on="0"/> - <pt x="1043" y="259" on="1"/> - <pt x="1043" y="726" on="1"/> - <pt x="436" y="726" on="1"/> - <pt x="436" y="259" on="1"/> - <pt x="436" y="200" on="0"/> - <pt x="443" y="147" on="1"/> - <pt x="449" y="109" on="0"/> - <pt x="457" y="97" on="1"/> - <pt x="476" y="72" on="0"/> - <pt x="534" y="68" on="1"/> - <pt x="602" y="63" on="1"/> - <pt x="621" y="62" on="1"/> - <pt x="621" y="0" on="1"/> - <pt x="41" y="0" on="1"/> - <pt x="41" y="62" on="1"/> - <pt x="60" y="63" on="1"/> - <pt x="128" y="68" on="1"/> - <pt x="192" y="73" on="0"/> - <pt x="226" y="139" on="0"/> - <pt x="226" y="259" on="1"/> - <pt x="226" y="1221" on="1"/> - <pt x="226" y="1280" on="0"/> - <pt x="219" y="1333" on="1"/> - <pt x="213" y="1372" on="0"/> - <pt x="205" y="1384" on="1"/> - <pt x="186" y="1409" on="0"/> - <pt x="128" y="1413" on="1"/> - <pt x="60" y="1417" on="1"/> - <pt x="41" y="1419" on="1"/> - <pt x="41" y="1480" on="1"/> - <pt x="621" y="1480" on="1"/> - <pt x="621" y="1419" on="1"/> - <pt x="602" y="1417" on="1"/> - <pt x="534" y="1413" on="1"/> - <pt x="459" y="1408" on="0"/> - <pt x="449" y="1366" on="1"/> - <pt x="436" y="1302" on="0"/> - <pt x="436" y="1221" on="1"/> - </contour> - <contour> - <pt x="388" y="1604" on="1"/> - <pt x="629" y="1925" on="1"/> - <pt x="851" y="1925" on="1"/> - <pt x="1091" y="1604" on="1"/> - <pt x="1005" y="1604" on="1"/> - <pt x="740" y="1826" on="1"/> - <pt x="474" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 117 values pushed */ - 74 67 57 66 56 50 40 49 37 30 20 29 19 12 2 11 81 80 79 78 75 5 76 11 3 - 0 0 39 38 7 1 0 1 4 48 84 77 76 1 1 0 1 50 49 30 29 3 3 0 67 - 66 12 11 0 3 14 67 74 66 57 50 56 49 40 30 37 29 20 12 19 11 2 78 19 1 - 2 81 80 79 77 76 5 1 0 3 75 0 56 2 0 0 38 37 2 1 32 3 19 74 40 - 39 0 32 3 56 2 4 48 196 20 19 1 57 56 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="I" xMin="51" yMin="0" xMax="631" yMax="1480"> - <contour> - <pt x="236" y="259" on="1"/> - <pt x="236" y="1221" on="1"/> - <pt x="236" y="1280" on="0"/> - <pt x="229" y="1333" on="1"/> - <pt x="223" y="1372" on="0"/> - <pt x="215" y="1384" on="1"/> - <pt x="197" y="1410" on="0"/> - <pt x="137" y="1413" on="1"/> - <pt x="70" y="1417" on="1"/> - <pt x="51" y="1419" on="1"/> - <pt x="51" y="1480" on="1"/> - <pt x="631" y="1480" on="1"/> - <pt x="631" y="1419" on="1"/> - <pt x="612" y="1417" on="1"/> - <pt x="544" y="1413" on="1"/> - <pt x="469" y="1408" on="0"/> - <pt x="459" y="1366" on="1"/> - <pt x="446" y="1302" on="0"/> - <pt x="446" y="1221" on="1"/> - <pt x="446" y="259" on="1"/> - <pt x="446" y="200" on="0"/> - <pt x="453" y="147" on="1"/> - <pt x="459" y="109" on="0"/> - <pt x="467" y="97" on="1"/> - <pt x="486" y="72" on="0"/> - <pt x="544" y="68" on="1"/> - <pt x="612" y="63" on="1"/> - <pt x="631" y="62" on="1"/> - <pt x="631" y="0" on="1"/> - <pt x="51" y="0" on="1"/> - <pt x="51" y="62" on="1"/> - <pt x="70" y="63" on="1"/> - <pt x="137" y="68" on="1"/> - <pt x="213" y="74" on="0"/> - <pt x="223" y="115" on="1"/> - <pt x="236" y="177" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 39 values pushed */ - 0 29 19 28 18 11 1 10 29 28 1 0 11 10 0 14 29 0 28 19 11 18 10 1 0 - 0 19 18 32 1 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="IJ" xMin="51" yMin="-297" xMax="1420" yMax="1480"> - <component glyphName="I" x="0" y="0" flags="0x4"/> - <component glyphName="J" x="654" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="Iacute" xMin="51" yMin="0" xMax="637" yMax="1925"> - <contour> - <pt x="236" y="259" on="1"/> - <pt x="236" y="1221" on="1"/> - <pt x="236" y="1280" on="0"/> - <pt x="229" y="1333" on="1"/> - <pt x="223" y="1372" on="0"/> - <pt x="215" y="1384" on="1"/> - <pt x="197" y="1410" on="0"/> - <pt x="137" y="1413" on="1"/> - <pt x="70" y="1417" on="1"/> - <pt x="51" y="1419" on="1"/> - <pt x="51" y="1480" on="1"/> - <pt x="631" y="1480" on="1"/> - <pt x="631" y="1419" on="1"/> - <pt x="612" y="1417" on="1"/> - <pt x="544" y="1413" on="1"/> - <pt x="469" y="1408" on="0"/> - <pt x="459" y="1366" on="1"/> - <pt x="446" y="1302" on="0"/> - <pt x="446" y="1221" on="1"/> - <pt x="446" y="259" on="1"/> - <pt x="446" y="200" on="0"/> - <pt x="453" y="147" on="1"/> - <pt x="459" y="109" on="0"/> - <pt x="467" y="97" on="1"/> - <pt x="486" y="72" on="0"/> - <pt x="544" y="68" on="1"/> - <pt x="612" y="63" on="1"/> - <pt x="631" y="62" on="1"/> - <pt x="631" y="0" on="1"/> - <pt x="51" y="0" on="1"/> - <pt x="51" y="62" on="1"/> - <pt x="70" y="63" on="1"/> - <pt x="137" y="68" on="1"/> - <pt x="213" y="74" on="0"/> - <pt x="223" y="115" on="1"/> - <pt x="236" y="177" on="0"/> - </contour> - <contour> - <pt x="137" y="1604" on="1"/> - <pt x="378" y="1925" on="1"/> - <pt x="637" y="1925" on="1"/> - <pt x="230" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 58 values pushed */ - 0 29 19 28 18 11 1 10 39 36 2 37 10 3 38 37 1 29 28 1 2 0 11 10 0 - 14 29 0 28 19 11 18 10 1 37 18 0 2 38 18 39 36 0 0 0 19 18 32 1 0 - 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ibreve" xMin="8" yMin="0" xMax="674" yMax="1925"> - <contour> - <pt x="236" y="259" on="1"/> - <pt x="236" y="1221" on="1"/> - <pt x="236" y="1280" on="0"/> - <pt x="229" y="1333" on="1"/> - <pt x="223" y="1372" on="0"/> - <pt x="215" y="1384" on="1"/> - <pt x="197" y="1410" on="0"/> - <pt x="137" y="1413" on="1"/> - <pt x="70" y="1417" on="1"/> - <pt x="51" y="1419" on="1"/> - <pt x="51" y="1480" on="1"/> - <pt x="631" y="1480" on="1"/> - <pt x="631" y="1419" on="1"/> - <pt x="612" y="1417" on="1"/> - <pt x="544" y="1413" on="1"/> - <pt x="469" y="1408" on="0"/> - <pt x="459" y="1366" on="1"/> - <pt x="446" y="1302" on="0"/> - <pt x="446" y="1221" on="1"/> - <pt x="446" y="259" on="1"/> - <pt x="446" y="200" on="0"/> - <pt x="453" y="147" on="1"/> - <pt x="459" y="109" on="0"/> - <pt x="467" y="97" on="1"/> - <pt x="486" y="72" on="0"/> - <pt x="544" y="68" on="1"/> - <pt x="612" y="63" on="1"/> - <pt x="631" y="62" on="1"/> - <pt x="631" y="0" on="1"/> - <pt x="51" y="0" on="1"/> - <pt x="51" y="62" on="1"/> - <pt x="70" y="63" on="1"/> - <pt x="137" y="68" on="1"/> - <pt x="213" y="74" on="0"/> - <pt x="223" y="115" on="1"/> - <pt x="236" y="177" on="0"/> - </contour> - <contour> - <pt x="8" y="1925" on="1"/> - <pt x="73" y="1925" on="1"/> - <pt x="100" y="1835" on="0"/> - <pt x="160" y="1793" on="1"/> - <pt x="228" y="1746" on="0"/> - <pt x="341" y="1746" on="1"/> - <pt x="467" y="1746" on="0"/> - <pt x="537" y="1805" on="1"/> - <pt x="586" y="1845" on="0"/> - <pt x="610" y="1925" on="1"/> - <pt x="674" y="1925" on="1"/> - <pt x="655" y="1790" on="0"/> - <pt x="583" y="1709" on="1"/> - <pt x="489" y="1604" on="0"/> - <pt x="341" y="1604" on="1"/> - <pt x="187" y="1604" on="0"/> - <pt x="92" y="1719" on="1"/> - <pt x="27" y="1797" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 62 values pushed */ - 0 0 41 20 50 48 84 0 29 19 28 18 11 1 10 46 45 37 36 4 13 50 10 29 28 - 1 0 11 10 0 14 29 0 28 19 11 18 10 1 46 45 2 13 18 37 36 0 0 0 19 - 18 37 1 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Icircumflex" xMin="-11" yMin="0" xMax="692" yMax="1925"> - <contour> - <pt x="236" y="259" on="1"/> - <pt x="236" y="1221" on="1"/> - <pt x="236" y="1280" on="0"/> - <pt x="229" y="1333" on="1"/> - <pt x="223" y="1372" on="0"/> - <pt x="215" y="1384" on="1"/> - <pt x="197" y="1410" on="0"/> - <pt x="137" y="1413" on="1"/> - <pt x="70" y="1417" on="1"/> - <pt x="51" y="1419" on="1"/> - <pt x="51" y="1480" on="1"/> - <pt x="631" y="1480" on="1"/> - <pt x="631" y="1419" on="1"/> - <pt x="612" y="1417" on="1"/> - <pt x="544" y="1413" on="1"/> - <pt x="469" y="1408" on="0"/> - <pt x="459" y="1366" on="1"/> - <pt x="446" y="1302" on="0"/> - <pt x="446" y="1221" on="1"/> - <pt x="446" y="259" on="1"/> - <pt x="446" y="200" on="0"/> - <pt x="453" y="147" on="1"/> - <pt x="459" y="109" on="0"/> - <pt x="467" y="97" on="1"/> - <pt x="486" y="72" on="0"/> - <pt x="544" y="68" on="1"/> - <pt x="612" y="63" on="1"/> - <pt x="631" y="62" on="1"/> - <pt x="631" y="0" on="1"/> - <pt x="51" y="0" on="1"/> - <pt x="51" y="62" on="1"/> - <pt x="70" y="63" on="1"/> - <pt x="137" y="68" on="1"/> - <pt x="213" y="74" on="0"/> - <pt x="223" y="115" on="1"/> - <pt x="236" y="177" on="0"/> - </contour> - <contour> - <pt x="-11" y="1604" on="1"/> - <pt x="230" y="1925" on="1"/> - <pt x="452" y="1925" on="1"/> - <pt x="692" y="1604" on="1"/> - <pt x="606" y="1604" on="1"/> - <pt x="341" y="1826" on="1"/> - <pt x="75" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 68 values pushed */ - 0 29 19 28 18 11 1 10 42 41 40 39 36 5 37 10 3 38 37 1 29 28 1 2 0 - 11 10 0 14 29 0 28 19 11 18 10 1 41 18 0 2 40 39 38 3 13 18 42 37 36 - 3 13 0 0 0 19 18 32 1 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Idieresis" xMin="51" yMin="0" xMax="631" yMax="1777"> - <contour> - <pt x="236" y="259" on="1"/> - <pt x="236" y="1221" on="1"/> - <pt x="236" y="1280" on="0"/> - <pt x="229" y="1333" on="1"/> - <pt x="223" y="1372" on="0"/> - <pt x="215" y="1384" on="1"/> - <pt x="197" y="1410" on="0"/> - <pt x="137" y="1413" on="1"/> - <pt x="70" y="1417" on="1"/> - <pt x="51" y="1419" on="1"/> - <pt x="51" y="1480" on="1"/> - <pt x="631" y="1480" on="1"/> - <pt x="631" y="1419" on="1"/> - <pt x="612" y="1417" on="1"/> - <pt x="544" y="1413" on="1"/> - <pt x="469" y="1408" on="0"/> - <pt x="459" y="1366" on="1"/> - <pt x="446" y="1302" on="0"/> - <pt x="446" y="1221" on="1"/> - <pt x="446" y="259" on="1"/> - <pt x="446" y="200" on="0"/> - <pt x="453" y="147" on="1"/> - <pt x="459" y="109" on="0"/> - <pt x="467" y="97" on="1"/> - <pt x="486" y="72" on="0"/> - <pt x="544" y="68" on="1"/> - <pt x="612" y="63" on="1"/> - <pt x="631" y="62" on="1"/> - <pt x="631" y="0" on="1"/> - <pt x="51" y="0" on="1"/> - <pt x="51" y="62" on="1"/> - <pt x="70" y="63" on="1"/> - <pt x="137" y="68" on="1"/> - <pt x="213" y="74" on="0"/> - <pt x="223" y="115" on="1"/> - <pt x="236" y="177" on="0"/> - </contour> - <contour> - <pt x="57" y="1604" on="1"/> - <pt x="57" y="1777" on="1"/> - <pt x="230" y="1777" on="1"/> - <pt x="230" y="1604" on="1"/> - </contour> - <contour> - <pt x="452" y="1604" on="1"/> - <pt x="452" y="1777" on="1"/> - <pt x="625" y="1777" on="1"/> - <pt x="625" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 75 values pushed */ - 0 29 19 28 18 11 1 10 0 0 43 40 39 36 13 3 37 1 4 48 84 42 41 38 37 - 3 29 28 1 2 0 11 10 0 14 29 0 28 19 11 18 10 1 0 0 41 40 13 1 42 - 39 38 13 1 36 19 18 32 1 0 3 4 48 196 43 42 1 37 36 1 1 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Idotaccent" xMin="51" yMin="0" xMax="631" yMax="1801"> - <contour> - <pt x="236" y="259" on="1"/> - <pt x="236" y="1221" on="1"/> - <pt x="236" y="1280" on="0"/> - <pt x="229" y="1333" on="1"/> - <pt x="223" y="1372" on="0"/> - <pt x="215" y="1384" on="1"/> - <pt x="197" y="1410" on="0"/> - <pt x="137" y="1413" on="1"/> - <pt x="70" y="1417" on="1"/> - <pt x="51" y="1419" on="1"/> - <pt x="51" y="1480" on="1"/> - <pt x="631" y="1480" on="1"/> - <pt x="631" y="1419" on="1"/> - <pt x="612" y="1417" on="1"/> - <pt x="544" y="1413" on="1"/> - <pt x="469" y="1408" on="0"/> - <pt x="459" y="1366" on="1"/> - <pt x="446" y="1302" on="0"/> - <pt x="446" y="1221" on="1"/> - <pt x="446" y="259" on="1"/> - <pt x="446" y="200" on="0"/> - <pt x="453" y="147" on="1"/> - <pt x="459" y="109" on="0"/> - <pt x="467" y="97" on="1"/> - <pt x="486" y="72" on="0"/> - <pt x="544" y="68" on="1"/> - <pt x="612" y="63" on="1"/> - <pt x="631" y="62" on="1"/> - <pt x="631" y="0" on="1"/> - <pt x="51" y="0" on="1"/> - <pt x="51" y="62" on="1"/> - <pt x="70" y="63" on="1"/> - <pt x="137" y="68" on="1"/> - <pt x="213" y="74" on="0"/> - <pt x="223" y="115" on="1"/> - <pt x="236" y="177" on="0"/> - </contour> - <contour> - <pt x="242" y="1604" on="1"/> - <pt x="242" y="1801" on="1"/> - <pt x="439" y="1801" on="1"/> - <pt x="439" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 63 values pushed */ - 0 29 19 28 18 11 1 10 0 0 39 36 5 1 37 1 4 48 84 38 37 1 29 28 1 - 2 0 11 10 0 14 29 0 28 19 11 18 10 1 0 0 39 38 4 1 36 19 18 32 1 - 0 2 4 48 196 37 36 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Igrave" xMin="39" yMin="0" xMax="631" yMax="1925"> - <contour> - <pt x="236" y="259" on="1"/> - <pt x="236" y="1221" on="1"/> - <pt x="236" y="1280" on="0"/> - <pt x="229" y="1333" on="1"/> - <pt x="223" y="1372" on="0"/> - <pt x="215" y="1384" on="1"/> - <pt x="197" y="1410" on="0"/> - <pt x="137" y="1413" on="1"/> - <pt x="70" y="1417" on="1"/> - <pt x="51" y="1419" on="1"/> - <pt x="51" y="1480" on="1"/> - <pt x="631" y="1480" on="1"/> - <pt x="631" y="1419" on="1"/> - <pt x="612" y="1417" on="1"/> - <pt x="544" y="1413" on="1"/> - <pt x="469" y="1408" on="0"/> - <pt x="459" y="1366" on="1"/> - <pt x="446" y="1302" on="0"/> - <pt x="446" y="1221" on="1"/> - <pt x="446" y="259" on="1"/> - <pt x="446" y="200" on="0"/> - <pt x="453" y="147" on="1"/> - <pt x="459" y="109" on="0"/> - <pt x="467" y="97" on="1"/> - <pt x="486" y="72" on="0"/> - <pt x="544" y="68" on="1"/> - <pt x="612" y="63" on="1"/> - <pt x="631" y="62" on="1"/> - <pt x="631" y="0" on="1"/> - <pt x="51" y="0" on="1"/> - <pt x="51" y="62" on="1"/> - <pt x="70" y="63" on="1"/> - <pt x="137" y="68" on="1"/> - <pt x="213" y="74" on="0"/> - <pt x="223" y="115" on="1"/> - <pt x="236" y="177" on="0"/> - </contour> - <contour> - <pt x="539" y="1604" on="1"/> - <pt x="446" y="1604" on="1"/> - <pt x="39" y="1925" on="1"/> - <pt x="298" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 58 values pushed */ - 0 29 19 28 18 11 1 10 37 36 2 38 10 3 39 38 1 29 28 1 2 0 11 10 0 - 14 29 0 28 19 11 18 10 1 39 18 0 2 36 18 38 0 0 0 37 19 18 32 2 0 - 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Imacron" xMin="20" yMin="0" xMax="662" yMax="1727"> - <contour> - <pt x="236" y="259" on="1"/> - <pt x="236" y="1221" on="1"/> - <pt x="236" y="1280" on="0"/> - <pt x="229" y="1333" on="1"/> - <pt x="223" y="1372" on="0"/> - <pt x="215" y="1384" on="1"/> - <pt x="197" y="1410" on="0"/> - <pt x="137" y="1413" on="1"/> - <pt x="70" y="1417" on="1"/> - <pt x="51" y="1419" on="1"/> - <pt x="51" y="1480" on="1"/> - <pt x="631" y="1480" on="1"/> - <pt x="631" y="1419" on="1"/> - <pt x="612" y="1417" on="1"/> - <pt x="544" y="1413" on="1"/> - <pt x="469" y="1408" on="0"/> - <pt x="459" y="1366" on="1"/> - <pt x="446" y="1302" on="0"/> - <pt x="446" y="1221" on="1"/> - <pt x="446" y="259" on="1"/> - <pt x="446" y="200" on="0"/> - <pt x="453" y="147" on="1"/> - <pt x="459" y="109" on="0"/> - <pt x="467" y="97" on="1"/> - <pt x="486" y="72" on="0"/> - <pt x="544" y="68" on="1"/> - <pt x="612" y="63" on="1"/> - <pt x="631" y="62" on="1"/> - <pt x="631" y="0" on="1"/> - <pt x="51" y="0" on="1"/> - <pt x="51" y="62" on="1"/> - <pt x="70" y="63" on="1"/> - <pt x="137" y="68" on="1"/> - <pt x="213" y="74" on="0"/> - <pt x="223" y="115" on="1"/> - <pt x="236" y="177" on="0"/> - </contour> - <contour> - <pt x="20" y="1604" on="1"/> - <pt x="20" y="1727" on="1"/> - <pt x="662" y="1727" on="1"/> - <pt x="662" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 62 values pushed */ - 0 29 19 28 18 11 1 10 0 0 39 36 12 1 37 1 4 48 84 38 37 1 29 28 1 - 2 0 11 10 0 14 29 0 28 19 11 18 10 1 39 38 2 13 18 37 36 0 0 0 19 - 18 32 1 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Iogonek" xMin="51" yMin="-370" xMax="631" yMax="1480"> - <contour> - <pt x="236" y="259" on="1"/> - <pt x="236" y="1221" on="1"/> - <pt x="236" y="1280" on="0"/> - <pt x="229" y="1333" on="1"/> - <pt x="223" y="1372" on="0"/> - <pt x="215" y="1384" on="1"/> - <pt x="197" y="1410" on="0"/> - <pt x="137" y="1413" on="1"/> - <pt x="70" y="1417" on="1"/> - <pt x="51" y="1419" on="1"/> - <pt x="51" y="1480" on="1"/> - <pt x="631" y="1480" on="1"/> - <pt x="631" y="1419" on="1"/> - <pt x="612" y="1417" on="1"/> - <pt x="544" y="1413" on="1"/> - <pt x="469" y="1408" on="0"/> - <pt x="459" y="1366" on="1"/> - <pt x="446" y="1302" on="0"/> - <pt x="446" y="1221" on="1"/> - <pt x="446" y="259" on="1"/> - <pt x="446" y="200" on="0"/> - <pt x="453" y="147" on="1"/> - <pt x="459" y="109" on="0"/> - <pt x="467" y="97" on="1"/> - <pt x="486" y="72" on="0"/> - <pt x="544" y="68" on="1"/> - <pt x="612" y="63" on="1"/> - <pt x="631" y="62" on="1"/> - <pt x="631" y="0" on="1"/> - <pt x="51" y="0" on="1"/> - <pt x="51" y="62" on="1"/> - <pt x="70" y="63" on="1"/> - <pt x="137" y="68" on="1"/> - <pt x="213" y="74" on="0"/> - <pt x="223" y="115" on="1"/> - <pt x="236" y="177" on="0"/> - </contour> - <contour> - <pt x="581" y="-273" on="1"/> - <pt x="581" y="-341" on="1"/> - <pt x="510" y="-370" on="0"/> - <pt x="432" y="-370" on="1"/> - <pt x="212" y="-370" on="0"/> - <pt x="212" y="-211" on="1"/> - <pt x="212" y="-89" on="0"/> - <pt x="370" y="0" on="1"/> - <pt x="477" y="0" on="1"/> - <pt x="348" y="-80" on="0"/> - <pt x="348" y="-182" on="1"/> - <pt x="348" y="-289" on="0"/> - <pt x="481" y="-289" on="1"/> - <pt x="532" y="-289" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 71 values pushed */ - 0 0 48 7 39 48 84 0 29 19 28 18 11 1 10 37 36 39 28 44 43 29 28 3 0 - 11 10 0 14 0 0 46 48 41 48 196 29 0 28 19 11 18 10 1 43 18 0 2 44 37 - 36 3 13 18 41 0 0 0 19 18 32 1 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Itilde" xMin="8" yMin="0" xMax="674" yMax="1839"> - <contour> - <pt x="236" y="259" on="1"/> - <pt x="236" y="1221" on="1"/> - <pt x="236" y="1280" on="0"/> - <pt x="229" y="1333" on="1"/> - <pt x="223" y="1372" on="0"/> - <pt x="215" y="1384" on="1"/> - <pt x="197" y="1410" on="0"/> - <pt x="137" y="1413" on="1"/> - <pt x="70" y="1417" on="1"/> - <pt x="51" y="1419" on="1"/> - <pt x="51" y="1480" on="1"/> - <pt x="631" y="1480" on="1"/> - <pt x="631" y="1419" on="1"/> - <pt x="612" y="1417" on="1"/> - <pt x="544" y="1413" on="1"/> - <pt x="469" y="1408" on="0"/> - <pt x="459" y="1366" on="1"/> - <pt x="446" y="1302" on="0"/> - <pt x="446" y="1221" on="1"/> - <pt x="446" y="259" on="1"/> - <pt x="446" y="200" on="0"/> - <pt x="453" y="147" on="1"/> - <pt x="459" y="109" on="0"/> - <pt x="467" y="97" on="1"/> - <pt x="486" y="72" on="0"/> - <pt x="544" y="68" on="1"/> - <pt x="612" y="63" on="1"/> - <pt x="631" y="62" on="1"/> - <pt x="631" y="0" on="1"/> - <pt x="51" y="0" on="1"/> - <pt x="51" y="62" on="1"/> - <pt x="70" y="63" on="1"/> - <pt x="137" y="68" on="1"/> - <pt x="213" y="74" on="0"/> - <pt x="223" y="115" on="1"/> - <pt x="236" y="177" on="0"/> - </contour> - <contour> - <pt x="8" y="1604" on="1"/> - <pt x="35" y="1744" on="0"/> - <pt x="104" y="1797" on="1"/> - <pt x="158" y="1839" on="0"/> - <pt x="235" y="1839" on="1"/> - <pt x="300" y="1839" on="0"/> - <pt x="353" y="1801" on="1"/> - <pt x="388" y="1776" on="1"/> - <pt x="440" y="1739" on="0"/> - <pt x="494" y="1739" on="1"/> - <pt x="589" y="1739" on="0"/> - <pt x="612" y="1838" on="1"/> - <pt x="674" y="1838" on="1"/> - <pt x="646" y="1699" on="0"/> - <pt x="578" y="1646" on="1"/> - <pt x="524" y="1604" on="0"/> - <pt x="447" y="1604" on="1"/> - <pt x="384" y="1604" on="0"/> - <pt x="329" y="1642" on="1"/> - <pt x="294" y="1666" on="1"/> - <pt x="239" y="1704" on="0"/> - <pt x="187" y="1704" on="1"/> - <pt x="99" y="1704" on="0"/> - <pt x="70" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 66 values pushed */ - 0 0 57 20 40 45 20 52 48 84 0 29 19 28 18 11 1 10 59 48 47 36 4 13 52 - 40 10 29 28 1 0 11 10 0 14 29 0 28 19 11 18 10 1 48 47 2 13 18 59 36 - 0 0 0 19 18 37 1 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="J" xMin="0" yMin="-297" xMax="766" yMax="1480"> - <contour> - <pt x="0" y="-276" on="1"/> - <pt x="0" y="-46" on="1"/> - <pt x="117" y="-46" on="1"/> - <pt x="119" y="-70" on="1"/> - <pt x="127" y="-160" on="0"/> - <pt x="147" y="-185" on="1"/> - <pt x="171" y="-215" on="0"/> - <pt x="234" y="-215" on="1"/> - <pt x="333" y="-215" on="0"/> - <pt x="353" y="-124" on="1"/> - <pt x="371" y="-45" on="0"/> - <pt x="371" y="148" on="1"/> - <pt x="371" y="1221" on="1"/> - <pt x="372" y="1340" on="0"/> - <pt x="354" y="1377" on="1"/> - <pt x="339" y="1409" on="0"/> - <pt x="273" y="1413" on="1"/> - <pt x="205" y="1417" on="1"/> - <pt x="186" y="1419" on="1"/> - <pt x="186" y="1480" on="1"/> - <pt x="766" y="1480" on="1"/> - <pt x="766" y="1419" on="1"/> - <pt x="747" y="1417" on="1"/> - <pt x="680" y="1413" on="1"/> - <pt x="612" y="1408" on="0"/> - <pt x="601" y="1386" on="1"/> - <pt x="590" y="1366" on="0"/> - <pt x="587" y="1320" on="1"/> - <pt x="581" y="1221" on="1"/> - <pt x="581" y="270" on="1"/> - <pt x="581" y="-35" on="0"/> - <pt x="482" y="-156" on="1"/> - <pt x="366" y="-297" on="0"/> - <pt x="159" y="-297" on="1"/> - <pt x="97" y="-297" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 62 values pushed */ - 0 0 7 7 33 48 84 12 19 1 29 28 21 11 4 19 2 3 0 1 2 1 0 3 13 - 33 2 0 20 19 0 14 19 12 2 11 0 2 21 20 2 13 28 0 0 29 28 32 1 11 - 1 4 48 196 12 11 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Jcircumflex" xMin="0" yMin="-297" xMax="827" yMax="1925"> - <contour> - <pt x="0" y="-276" on="1"/> - <pt x="0" y="-46" on="1"/> - <pt x="117" y="-46" on="1"/> - <pt x="119" y="-70" on="1"/> - <pt x="127" y="-160" on="0"/> - <pt x="147" y="-185" on="1"/> - <pt x="171" y="-215" on="0"/> - <pt x="234" y="-215" on="1"/> - <pt x="333" y="-215" on="0"/> - <pt x="353" y="-124" on="1"/> - <pt x="371" y="-45" on="0"/> - <pt x="371" y="148" on="1"/> - <pt x="371" y="1221" on="1"/> - <pt x="372" y="1340" on="0"/> - <pt x="354" y="1377" on="1"/> - <pt x="339" y="1409" on="0"/> - <pt x="273" y="1413" on="1"/> - <pt x="205" y="1417" on="1"/> - <pt x="186" y="1419" on="1"/> - <pt x="186" y="1480" on="1"/> - <pt x="766" y="1480" on="1"/> - <pt x="766" y="1419" on="1"/> - <pt x="747" y="1417" on="1"/> - <pt x="680" y="1413" on="1"/> - <pt x="612" y="1408" on="0"/> - <pt x="601" y="1386" on="1"/> - <pt x="590" y="1366" on="0"/> - <pt x="587" y="1320" on="1"/> - <pt x="581" y="1221" on="1"/> - <pt x="581" y="270" on="1"/> - <pt x="581" y="-35" on="0"/> - <pt x="482" y="-156" on="1"/> - <pt x="366" y="-297" on="0"/> - <pt x="159" y="-297" on="1"/> - <pt x="97" y="-297" on="0"/> - </contour> - <contour> - <pt x="124" y="1604" on="1"/> - <pt x="365" y="1925" on="1"/> - <pt x="587" y="1925" on="1"/> - <pt x="827" y="1604" on="1"/> - <pt x="741" y="1604" on="1"/> - <pt x="476" y="1826" on="1"/> - <pt x="210" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 86 values pushed */ - 0 0 7 7 33 48 84 12 19 41 40 39 38 35 5 36 19 3 1 29 28 21 11 4 19 - 2 3 0 1 2 1 0 3 13 33 2 0 37 36 1 0 20 19 0 14 19 12 40 28 11 - 2 41 36 35 2 4 11 0 3 39 38 37 21 20 5 13 28 0 0 29 28 32 1 11 1 - 4 48 196 12 11 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="K" xMin="56" yMin="0" xMax="1463" yMax="1480"> - <contour> - <pt x="451" y="754" on="1"/> - <pt x="899" y="1221" on="1"/> - <pt x="950" y="1275" on="0"/> - <pt x="983" y="1322" on="1"/> - <pt x="1018" y="1371" on="0"/> - <pt x="1036" y="1387" on="1"/> - <pt x="1046" y="1397" on="0"/> - <pt x="1046" y="1402" on="1"/> - <pt x="1046" y="1416" on="0"/> - <pt x="990" y="1417" on="1"/> - <pt x="901" y="1419" on="1"/> - <pt x="883" y="1419" on="1"/> - <pt x="883" y="1480" on="1"/> - <pt x="1339" y="1480" on="1"/> - <pt x="1339" y="1419" on="1"/> - <pt x="1322" y="1417" on="1"/> - <pt x="1261" y="1416" on="1"/> - <pt x="1207" y="1416" on="0"/> - <pt x="1160" y="1377" on="1"/> - <pt x="1115" y="1341" on="0"/> - <pt x="996" y="1220" on="1"/> - <pt x="618" y="835" on="1"/> - <pt x="1136" y="258" on="1"/> - <pt x="1240" y="150" on="1"/> - <pt x="1303" y="84" on="0"/> - <pt x="1334" y="76" on="1"/> - <pt x="1365" y="67" on="0"/> - <pt x="1442" y="63" on="1"/> - <pt x="1463" y="62" on="1"/> - <pt x="1463" y="0" on="1"/> - <pt x="858" y="0" on="1"/> - <pt x="858" y="62" on="1"/> - <pt x="876" y="62" on="1"/> - <pt x="1000" y="62" on="0"/> - <pt x="1000" y="86" on="1"/> - <pt x="1000" y="120" on="0"/> - <pt x="876" y="262" on="1"/> - <pt x="451" y="748" on="1"/> - <pt x="451" y="259" on="1"/> - <pt x="456" y="160" on="1"/> - <pt x="458" y="90" on="0"/> - <pt x="484" y="79" on="1"/> - <pt x="510" y="69" on="0"/> - <pt x="593" y="63" on="1"/> - <pt x="611" y="62" on="1"/> - <pt x="611" y="0" on="1"/> - <pt x="56" y="0" on="1"/> - <pt x="56" y="62" on="1"/> - <pt x="75" y="63" on="1"/> - <pt x="142" y="68" on="1"/> - <pt x="218" y="74" on="0"/> - <pt x="228" y="115" on="1"/> - <pt x="241" y="177" on="0"/> - <pt x="241" y="259" on="1"/> - <pt x="241" y="1221" on="1"/> - <pt x="241" y="1280" on="0"/> - <pt x="234" y="1333" on="1"/> - <pt x="228" y="1372" on="0"/> - <pt x="220" y="1384" on="1"/> - <pt x="202" y="1410" on="0"/> - <pt x="142" y="1413" on="1"/> - <pt x="75" y="1417" on="1"/> - <pt x="56" y="1419" on="1"/> - <pt x="56" y="1480" on="1"/> - <pt x="636" y="1480" on="1"/> - <pt x="636" y="1419" on="1"/> - <pt x="617" y="1417" on="1"/> - <pt x="549" y="1413" on="1"/> - <pt x="474" y="1408" on="0"/> - <pt x="464" y="1366" on="1"/> - <pt x="451" y="1302" on="0"/> - <pt x="451" y="1221" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 77 values pushed */ - 71 64 54 63 53 46 44 38 37 32 31 28 22 21 14 11 10 0 12 12 29 3 46 45 30 - 29 3 0 64 63 13 12 0 3 14 64 71 63 54 46 53 45 44 32 31 30 29 28 22 21 - 14 13 12 11 10 14 13 34 7 0 0 0 71 38 37 0 32 3 53 1 4 48 196 54 53 - 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Kcommaaccent" xMin="56" yMin="-432" xMax="1463" yMax="1480"> - <contour> - <pt x="451" y="754" on="1"/> - <pt x="899" y="1221" on="1"/> - <pt x="950" y="1274" on="0"/> - <pt x="983" y="1322" on="1"/> - <pt x="1018" y="1371" on="0"/> - <pt x="1036" y="1387" on="1"/> - <pt x="1046" y="1397" on="0"/> - <pt x="1046" y="1402" on="1"/> - <pt x="1046" y="1416" on="0"/> - <pt x="990" y="1417" on="1"/> - <pt x="901" y="1419" on="1"/> - <pt x="883" y="1419" on="1"/> - <pt x="883" y="1480" on="1"/> - <pt x="1339" y="1480" on="1"/> - <pt x="1339" y="1419" on="1"/> - <pt x="1322" y="1417" on="1"/> - <pt x="1261" y="1416" on="1"/> - <pt x="1207" y="1416" on="0"/> - <pt x="1160" y="1377" on="1"/> - <pt x="1115" y="1341" on="0"/> - <pt x="996" y="1220" on="1"/> - <pt x="618" y="835" on="1"/> - <pt x="1136" y="258" on="1"/> - <pt x="1240" y="150" on="1"/> - <pt x="1303" y="84" on="0"/> - <pt x="1334" y="76" on="1"/> - <pt x="1365" y="67" on="0"/> - <pt x="1442" y="63" on="1"/> - <pt x="1463" y="62" on="1"/> - <pt x="1463" y="0" on="1"/> - <pt x="858" y="0" on="1"/> - <pt x="858" y="62" on="1"/> - <pt x="876" y="62" on="1"/> - <pt x="1000" y="62" on="0"/> - <pt x="1000" y="86" on="1"/> - <pt x="1000" y="120" on="0"/> - <pt x="876" y="262" on="1"/> - <pt x="451" y="748" on="1"/> - <pt x="451" y="259" on="1"/> - <pt x="456" y="160" on="1"/> - <pt x="458" y="90" on="0"/> - <pt x="484" y="79" on="1"/> - <pt x="510" y="69" on="0"/> - <pt x="593" y="63" on="1"/> - <pt x="611" y="62" on="1"/> - <pt x="611" y="0" on="1"/> - <pt x="56" y="0" on="1"/> - <pt x="56" y="62" on="1"/> - <pt x="75" y="63" on="1"/> - <pt x="142" y="68" on="1"/> - <pt x="218" y="74" on="0"/> - <pt x="228" y="115" on="1"/> - <pt x="241" y="177" on="0"/> - <pt x="241" y="259" on="1"/> - <pt x="241" y="1221" on="1"/> - <pt x="241" y="1280" on="0"/> - <pt x="234" y="1333" on="1"/> - <pt x="228" y="1372" on="0"/> - <pt x="220" y="1384" on="1"/> - <pt x="202" y="1410" on="0"/> - <pt x="142" y="1413" on="1"/> - <pt x="75" y="1417" on="1"/> - <pt x="56" y="1419" on="1"/> - <pt x="56" y="1480" on="1"/> - <pt x="636" y="1480" on="1"/> - <pt x="636" y="1419" on="1"/> - <pt x="617" y="1417" on="1"/> - <pt x="549" y="1413" on="1"/> - <pt x="474" y="1408" on="0"/> - <pt x="464" y="1366" on="1"/> - <pt x="451" y="1302" on="0"/> - <pt x="451" y="1221" on="1"/> - </contour> - <contour> - <pt x="562" y="-421" on="1"/> - <pt x="562" y="-349" on="1"/> - <pt x="611" y="-359" on="0"/> - <pt x="666" y="-359" on="1"/> - <pt x="769" y="-359" on="0"/> - <pt x="769" y="-279" on="1"/> - <pt x="769" y="-190" on="0"/> - <pt x="611" y="-175" on="1"/> - <pt x="611" y="-111" on="1"/> - <pt x="745" y="-114" on="0"/> - <pt x="811" y="-143" on="1"/> - <pt x="904" y="-185" on="0"/> - <pt x="904" y="-280" on="1"/> - <pt x="904" y="-432" on="0"/> - <pt x="687" y="-432" on="1"/> - <pt x="628" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 106 values pushed */ - 0 0 75 17 86 48 84 71 64 54 63 53 46 44 38 37 32 31 28 22 21 14 11 10 0 - 12 12 29 3 80 79 73 72 4 13 86 29 46 45 30 29 3 0 64 63 13 12 0 3 14 - 0 0 77 48 84 48 196 64 71 63 54 46 53 80 79 73 72 45 44 32 31 30 29 28 22 - 21 14 13 12 11 10 18 13 84 34 7 3 12 0 0 0 71 38 37 0 32 3 53 1 4 - 48 196 54 53 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="L" xMin="56" yMin="0" xMax="1203" yMax="1480"> - <contour> - <pt x="1096" y="276" on="1"/> - <pt x="1098" y="296" on="1"/> - <pt x="1203" y="296" on="1"/> - <pt x="1203" y="0" on="1"/> - <pt x="56" y="0" on="1"/> - <pt x="56" y="62" on="1"/> - <pt x="75" y="63" on="1"/> - <pt x="142" y="68" on="1"/> - <pt x="218" y="74" on="0"/> - <pt x="228" y="115" on="1"/> - <pt x="241" y="177" on="0"/> - <pt x="241" y="259" on="1"/> - <pt x="241" y="1221" on="1"/> - <pt x="241" y="1280" on="0"/> - <pt x="234" y="1333" on="1"/> - <pt x="228" y="1372" on="0"/> - <pt x="220" y="1384" on="1"/> - <pt x="202" y="1410" on="0"/> - <pt x="142" y="1413" on="1"/> - <pt x="75" y="1417" on="1"/> - <pt x="56" y="1419" on="1"/> - <pt x="56" y="1480" on="1"/> - <pt x="636" y="1480" on="1"/> - <pt x="636" y="1419" on="1"/> - <pt x="617" y="1417" on="1"/> - <pt x="549" y="1413" on="1"/> - <pt x="474" y="1408" on="0"/> - <pt x="464" y="1366" on="1"/> - <pt x="451" y="1302" on="0"/> - <pt x="451" y="1221" on="1"/> - <pt x="451" y="259" on="1"/> - <pt x="451" y="108" on="0"/> - <pt x="478" y="101" on="1"/> - <pt x="509" y="86" on="0"/> - <pt x="623" y="86" on="1"/> - <pt x="859" y="86" on="1"/> - <pt x="1001" y="86" on="0"/> - <pt x="1046" y="103" on="1"/> - <pt x="1092" y="121" on="0"/> - <pt x="1094" y="175" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 66 values pushed */ - 29 22 12 21 11 4 32 30 2 1 4 21 34 3 0 0 35 34 7 1 3 1 4 48 84 - 4 3 1 0 22 21 0 14 22 29 21 12 4 11 35 34 32 1 4 2 29 3 0 0 30 - 29 32 1 11 1 4 48 196 3 2 1 12 11 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Lacute" xMin="56" yMin="0" xMax="1203" yMax="1925"> - <contour> - <pt x="1096" y="276" on="1"/> - <pt x="1098" y="296" on="1"/> - <pt x="1203" y="296" on="1"/> - <pt x="1203" y="0" on="1"/> - <pt x="56" y="0" on="1"/> - <pt x="56" y="62" on="1"/> - <pt x="75" y="63" on="1"/> - <pt x="142" y="68" on="1"/> - <pt x="218" y="74" on="0"/> - <pt x="228" y="115" on="1"/> - <pt x="241" y="177" on="0"/> - <pt x="241" y="259" on="1"/> - <pt x="241" y="1221" on="1"/> - <pt x="241" y="1280" on="0"/> - <pt x="234" y="1333" on="1"/> - <pt x="228" y="1372" on="0"/> - <pt x="220" y="1384" on="1"/> - <pt x="202" y="1410" on="0"/> - <pt x="142" y="1413" on="1"/> - <pt x="75" y="1417" on="1"/> - <pt x="56" y="1419" on="1"/> - <pt x="56" y="1480" on="1"/> - <pt x="636" y="1480" on="1"/> - <pt x="636" y="1419" on="1"/> - <pt x="617" y="1417" on="1"/> - <pt x="549" y="1413" on="1"/> - <pt x="474" y="1408" on="0"/> - <pt x="464" y="1366" on="1"/> - <pt x="451" y="1302" on="0"/> - <pt x="451" y="1221" on="1"/> - <pt x="451" y="259" on="1"/> - <pt x="451" y="108" on="0"/> - <pt x="478" y="101" on="1"/> - <pt x="509" y="86" on="0"/> - <pt x="623" y="86" on="1"/> - <pt x="859" y="86" on="1"/> - <pt x="1001" y="86" on="0"/> - <pt x="1046" y="103" on="1"/> - <pt x="1092" y="121" on="0"/> - <pt x="1094" y="175" on="1"/> - </contour> - <contour> - <pt x="309" y="1604" on="1"/> - <pt x="550" y="1925" on="1"/> - <pt x="809" y="1925" on="1"/> - <pt x="402" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 84 values pushed */ - 29 22 12 21 11 4 43 40 2 41 21 3 32 30 2 1 4 21 34 3 0 0 35 34 7 - 1 3 1 4 48 84 42 41 1 4 3 1 2 0 22 21 0 14 22 29 21 12 4 11 42 - 41 35 34 32 1 6 2 29 3 43 40 2 29 11 3 0 0 30 29 32 1 11 1 4 48 - 196 3 2 1 12 11 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Lcaron" xMin="56" yMin="0" xMax="1203" yMax="1480"> - <contour> - <pt x="1096" y="276" on="1"/> - <pt x="1098" y="296" on="1"/> - <pt x="1203" y="296" on="1"/> - <pt x="1203" y="0" on="1"/> - <pt x="56" y="0" on="1"/> - <pt x="56" y="62" on="1"/> - <pt x="75" y="63" on="1"/> - <pt x="142" y="68" on="1"/> - <pt x="218" y="74" on="0"/> - <pt x="228" y="115" on="1"/> - <pt x="241" y="177" on="0"/> - <pt x="241" y="259" on="1"/> - <pt x="241" y="1221" on="1"/> - <pt x="241" y="1280" on="0"/> - <pt x="234" y="1333" on="1"/> - <pt x="228" y="1372" on="0"/> - <pt x="220" y="1384" on="1"/> - <pt x="202" y="1410" on="0"/> - <pt x="142" y="1413" on="1"/> - <pt x="75" y="1417" on="1"/> - <pt x="56" y="1419" on="1"/> - <pt x="56" y="1480" on="1"/> - <pt x="636" y="1480" on="1"/> - <pt x="636" y="1419" on="1"/> - <pt x="617" y="1417" on="1"/> - <pt x="549" y="1413" on="1"/> - <pt x="474" y="1408" on="0"/> - <pt x="464" y="1366" on="1"/> - <pt x="451" y="1302" on="0"/> - <pt x="451" y="1221" on="1"/> - <pt x="451" y="259" on="1"/> - <pt x="451" y="108" on="0"/> - <pt x="478" y="101" on="1"/> - <pt x="509" y="86" on="0"/> - <pt x="623" y="86" on="1"/> - <pt x="859" y="86" on="1"/> - <pt x="1001" y="86" on="0"/> - <pt x="1046" y="103" on="1"/> - <pt x="1092" y="121" on="0"/> - <pt x="1094" y="175" on="1"/> - </contour> - <contour> - <pt x="888" y="1283" on="1"/> - <pt x="809" y="1283" on="1"/> - <pt x="809" y="1480" on="1"/> - <pt x="1006" y="1480" on="1"/> - <pt x="1006" y="1309" on="1"/> - <pt x="1006" y="1146" on="0"/> - <pt x="944" y="1081" on="1"/> - <pt x="897" y="1032" on="0"/> - <pt x="809" y="1026" on="1"/> - <pt x="809" y="1076" on="1"/> - <pt x="888" y="1082" on="0"/> - <pt x="888" y="1231" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 94 values pushed */ - 29 22 12 21 11 4 51 49 48 44 41 40 32 30 2 1 10 21 34 3 0 0 35 34 7 - 1 3 1 4 48 84 4 3 1 0 43 42 22 21 0 3 14 22 29 21 12 4 11 1 2 - 43 2 51 40 35 3 43 41 3 34 32 2 41 29 3 0 0 49 48 42 41 4 3 43 30 - 29 32 1 11 2 4 48 196 44 43 1 3 2 1 12 11 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Lcommaaccent" xMin="56" yMin="-432" xMax="1203" yMax="1480"> - <contour> - <pt x="1096" y="276" on="1"/> - <pt x="1098" y="296" on="1"/> - <pt x="1203" y="296" on="1"/> - <pt x="1203" y="0" on="1"/> - <pt x="56" y="0" on="1"/> - <pt x="56" y="62" on="1"/> - <pt x="75" y="63" on="1"/> - <pt x="142" y="68" on="1"/> - <pt x="218" y="74" on="0"/> - <pt x="228" y="115" on="1"/> - <pt x="241" y="177" on="0"/> - <pt x="241" y="259" on="1"/> - <pt x="241" y="1221" on="1"/> - <pt x="241" y="1280" on="0"/> - <pt x="234" y="1333" on="1"/> - <pt x="228" y="1372" on="0"/> - <pt x="220" y="1384" on="1"/> - <pt x="202" y="1410" on="0"/> - <pt x="142" y="1413" on="1"/> - <pt x="75" y="1417" on="1"/> - <pt x="56" y="1419" on="1"/> - <pt x="56" y="1480" on="1"/> - <pt x="636" y="1480" on="1"/> - <pt x="636" y="1419" on="1"/> - <pt x="617" y="1417" on="1"/> - <pt x="549" y="1413" on="1"/> - <pt x="474" y="1408" on="0"/> - <pt x="464" y="1366" on="1"/> - <pt x="451" y="1302" on="0"/> - <pt x="451" y="1221" on="1"/> - <pt x="451" y="259" on="1"/> - <pt x="451" y="108" on="0"/> - <pt x="478" y="101" on="1"/> - <pt x="509" y="86" on="0"/> - <pt x="623" y="86" on="1"/> - <pt x="859" y="86" on="1"/> - <pt x="1001" y="86" on="0"/> - <pt x="1046" y="103" on="1"/> - <pt x="1092" y="121" on="0"/> - <pt x="1094" y="175" on="1"/> - </contour> - <contour> - <pt x="451" y="-421" on="1"/> - <pt x="451" y="-349" on="1"/> - <pt x="500" y="-359" on="0"/> - <pt x="555" y="-359" on="1"/> - <pt x="658" y="-359" on="0"/> - <pt x="658" y="-279" on="1"/> - <pt x="658" y="-190" on="0"/> - <pt x="500" y="-175" on="1"/> - <pt x="500" y="-111" on="1"/> - <pt x="634" y="-114" on="0"/> - <pt x="700" y="-143" on="1"/> - <pt x="793" y="-185" on="0"/> - <pt x="793" y="-280" on="1"/> - <pt x="793" y="-432" on="0"/> - <pt x="576" y="-432" on="1"/> - <pt x="517" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 94 values pushed */ - 0 0 43 17 54 48 84 29 22 12 21 11 4 32 30 2 1 4 21 34 3 48 47 41 40 - 4 13 54 3 0 0 35 34 7 1 3 1 4 48 84 4 3 1 0 22 21 0 14 0 0 - 45 48 52 48 196 22 29 21 12 4 11 52 52 48 47 35 34 32 1 7 2 29 3 0 0 - 41 40 30 29 32 3 11 1 4 48 196 3 2 1 12 11 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[1] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ldot" xMin="56" yMin="0" xMax="1203" yMax="1480"> - <contour> - <pt x="1096" y="276" on="1"/> - <pt x="1098" y="296" on="1"/> - <pt x="1203" y="296" on="1"/> - <pt x="1203" y="0" on="1"/> - <pt x="56" y="0" on="1"/> - <pt x="56" y="62" on="1"/> - <pt x="75" y="63" on="1"/> - <pt x="142" y="68" on="1"/> - <pt x="218" y="74" on="0"/> - <pt x="228" y="115" on="1"/> - <pt x="241" y="177" on="0"/> - <pt x="241" y="259" on="1"/> - <pt x="241" y="1221" on="1"/> - <pt x="241" y="1280" on="0"/> - <pt x="234" y="1333" on="1"/> - <pt x="228" y="1372" on="0"/> - <pt x="220" y="1384" on="1"/> - <pt x="202" y="1410" on="0"/> - <pt x="142" y="1413" on="1"/> - <pt x="75" y="1417" on="1"/> - <pt x="56" y="1419" on="1"/> - <pt x="56" y="1480" on="1"/> - <pt x="636" y="1480" on="1"/> - <pt x="636" y="1419" on="1"/> - <pt x="617" y="1417" on="1"/> - <pt x="549" y="1413" on="1"/> - <pt x="474" y="1408" on="0"/> - <pt x="464" y="1366" on="1"/> - <pt x="451" y="1302" on="0"/> - <pt x="451" y="1221" on="1"/> - <pt x="451" y="259" on="1"/> - <pt x="451" y="108" on="0"/> - <pt x="478" y="101" on="1"/> - <pt x="509" y="86" on="0"/> - <pt x="623" y="86" on="1"/> - <pt x="859" y="86" on="1"/> - <pt x="1001" y="86" on="0"/> - <pt x="1046" y="103" on="1"/> - <pt x="1092" y="121" on="0"/> - <pt x="1094" y="175" on="1"/> - </contour> - <contour> - <pt x="870" y="642" on="1"/> - <pt x="870" y="839" on="1"/> - <pt x="1067" y="839" on="1"/> - <pt x="1067" y="642" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 86 values pushed */ - 29 22 12 21 11 4 32 30 2 1 4 40 34 3 0 0 43 40 5 1 41 35 34 7 1 - 3 2 4 48 84 42 41 1 4 3 1 2 0 22 21 0 14 22 29 21 12 4 11 1 2 - 42 2 35 34 32 3 40 29 3 0 0 41 40 4 1 42 30 29 32 1 11 2 4 48 196 - 43 42 1 3 2 1 12 11 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Lslash" xMin="56" yMin="0" xMax="1203" yMax="1480"> - <contour> - <pt x="241" y="748" on="1"/> - <pt x="56" y="641" on="1"/> - <pt x="56" y="726" on="1"/> - <pt x="241" y="833" on="1"/> - <pt x="241" y="1221" on="1"/> - <pt x="241" y="1280" on="0"/> - <pt x="234" y="1333" on="1"/> - <pt x="228" y="1372" on="0"/> - <pt x="220" y="1384" on="1"/> - <pt x="202" y="1410" on="0"/> - <pt x="142" y="1413" on="1"/> - <pt x="75" y="1417" on="1"/> - <pt x="56" y="1419" on="1"/> - <pt x="56" y="1480" on="1"/> - <pt x="636" y="1480" on="1"/> - <pt x="636" y="1419" on="1"/> - <pt x="617" y="1417" on="1"/> - <pt x="549" y="1413" on="1"/> - <pt x="474" y="1408" on="0"/> - <pt x="464" y="1366" on="1"/> - <pt x="451" y="1302" on="0"/> - <pt x="451" y="1221" on="1"/> - <pt x="451" y="954" on="1"/> - <pt x="722" y="1110" on="1"/> - <pt x="722" y="1025" on="1"/> - <pt x="451" y="869" on="1"/> - <pt x="451" y="259" on="1"/> - <pt x="451" y="108" on="0"/> - <pt x="478" y="101" on="1"/> - <pt x="509" y="86" on="0"/> - <pt x="623" y="86" on="1"/> - <pt x="859" y="86" on="1"/> - <pt x="1001" y="86" on="0"/> - <pt x="1046" y="103" on="1"/> - <pt x="1092" y="121" on="0"/> - <pt x="1094" y="175" on="1"/> - <pt x="1096" y="276" on="1"/> - <pt x="1098" y="296" on="1"/> - <pt x="1203" y="296" on="1"/> - <pt x="1203" y="0" on="1"/> - <pt x="56" y="0" on="1"/> - <pt x="56" y="62" on="1"/> - <pt x="75" y="63" on="1"/> - <pt x="142" y="68" on="1"/> - <pt x="218" y="74" on="0"/> - <pt x="228" y="115" on="1"/> - <pt x="241" y="177" on="0"/> - <pt x="241" y="259" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 83 values pushed */ - 47 40 21 14 4 13 38 37 28 26 25 24 23 22 3 2 1 0 12 13 30 3 0 0 31 - 30 7 1 39 1 4 48 84 40 39 1 0 14 13 0 14 40 47 14 21 13 4 37 31 30 - 28 24 23 6 38 21 3 2 1 0 0 0 26 25 22 21 32 3 0 1 4 48 196 39 38 - 1 47 4 3 0 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="M" xMin="48" yMin="0" xMax="1773" yMax="1480"> - <contour> - <pt x="461" y="1480" on="1"/> - <pt x="934" y="389" on="1"/> - <pt x="1400" y="1480" on="1"/> - <pt x="1773" y="1480" on="1"/> - <pt x="1773" y="1419" on="1"/> - <pt x="1754" y="1417" on="1"/> - <pt x="1686" y="1413" on="1"/> - <pt x="1618" y="1408" on="0"/> - <pt x="1607" y="1386" on="1"/> - <pt x="1597" y="1366" on="0"/> - <pt x="1594" y="1320" on="1"/> - <pt x="1588" y="1221" on="1"/> - <pt x="1588" y="259" on="1"/> - <pt x="1594" y="160" on="1"/> - <pt x="1598" y="93" on="0"/> - <pt x="1620" y="82" on="1"/> - <pt x="1639" y="71" on="0"/> - <pt x="1686" y="68" on="1"/> - <pt x="1754" y="63" on="1"/> - <pt x="1773" y="62" on="1"/> - <pt x="1773" y="0" on="1"/> - <pt x="1209" y="0" on="1"/> - <pt x="1209" y="62" on="1"/> - <pt x="1227" y="63" on="1"/> - <pt x="1294" y="68" on="1"/> - <pt x="1361" y="73" on="0"/> - <pt x="1372" y="95" on="1"/> - <pt x="1383" y="114" on="0"/> - <pt x="1386" y="160" on="1"/> - <pt x="1392" y="259" on="1"/> - <pt x="1392" y="1276" on="1"/> - <pt x="901" y="118" on="1"/> - <pt x="828" y="118" on="1"/> - <pt x="343" y="1231" on="1"/> - <pt x="343" y="259" on="1"/> - <pt x="343" y="203" on="0"/> - <pt x="351" y="147" on="1"/> - <pt x="358" y="96" on="0"/> - <pt x="383" y="82" on="1"/> - <pt x="404" y="71" on="0"/> - <pt x="442" y="68" on="1"/> - <pt x="510" y="63" on="1"/> - <pt x="528" y="62" on="1"/> - <pt x="528" y="0" on="1"/> - <pt x="48" y="0" on="1"/> - <pt x="48" y="62" on="1"/> - <pt x="67" y="63" on="1"/> - <pt x="135" y="68" on="1"/> - <pt x="199" y="73" on="0"/> - <pt x="233" y="139" on="0"/> - <pt x="233" y="259" on="1"/> - <pt x="234" y="1221" on="1"/> - <pt x="235" y="1335" on="0"/> - <pt x="216" y="1377" on="1"/> - <pt x="201" y="1409" on="0"/> - <pt x="135" y="1413" on="1"/> - <pt x="67" y="1417" on="1"/> - <pt x="48" y="1419" on="1"/> - <pt x="48" y="1480" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 83 values pushed */ - 51 58 50 44 34 43 33 32 31 30 29 22 19 12 11 4 1 11 0 20 3 44 43 21 20 - 3 0 58 3 2 0 0 3 14 58 51 44 50 43 34 2 11 29 2 32 31 22 21 1 0 - 6 29 33 3 20 19 4 3 4 13 11 51 50 33 0 0 30 29 4 1 11 1 4 48 196 - 12 11 1 34 33 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="N" xMin="43" yMin="-20" xMax="1435" yMax="1480"> - <contour> - <pt x="376" y="1480" on="1"/> - <pt x="1159" y="331" on="1"/> - <pt x="1159" y="1221" on="1"/> - <pt x="1153" y="1320" on="1"/> - <pt x="1149" y="1387" on="0"/> - <pt x="1127" y="1399" on="1"/> - <pt x="1107" y="1410" on="0"/> - <pt x="1061" y="1413" on="1"/> - <pt x="993" y="1417" on="1"/> - <pt x="974" y="1419" on="1"/> - <pt x="974" y="1480" on="1"/> - <pt x="1435" y="1480" on="1"/> - <pt x="1435" y="1419" on="1"/> - <pt x="1417" y="1417" on="1"/> - <pt x="1349" y="1413" on="1"/> - <pt x="1281" y="1409" on="0"/> - <pt x="1270" y="1386" on="1"/> - <pt x="1259" y="1366" on="0"/> - <pt x="1256" y="1320" on="1"/> - <pt x="1250" y="1221" on="1"/> - <pt x="1250" y="-20" on="1"/> - <pt x="1180" y="-20" on="1"/> - <pt x="322" y="1220" on="1"/> - <pt x="322" y="259" on="1"/> - <pt x="321" y="144" on="0"/> - <pt x="340" y="104" on="1"/> - <pt x="355" y="72" on="0"/> - <pt x="421" y="68" on="1"/> - <pt x="489" y="63" on="1"/> - <pt x="508" y="62" on="1"/> - <pt x="508" y="0" on="1"/> - <pt x="43" y="0" on="1"/> - <pt x="43" y="62" on="1"/> - <pt x="62" y="63" on="1"/> - <pt x="130" y="68" on="1"/> - <pt x="194" y="73" on="0"/> - <pt x="229" y="140" on="0"/> - <pt x="229" y="259" on="1"/> - <pt x="229" y="1221" on="1"/> - <pt x="230" y="1336" on="0"/> - <pt x="211" y="1377" on="1"/> - <pt x="196" y="1409" on="0"/> - <pt x="130" y="1413" on="1"/> - <pt x="62" y="1417" on="1"/> - <pt x="43" y="1419" on="1"/> - <pt x="43" y="1480" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 76 values pushed */ - 38 45 37 31 23 30 22 19 12 9 2 1 6 0 30 3 21 20 30 31 30 1 0 45 11 - 10 0 0 3 14 45 38 31 37 30 23 21 19 1 2 10 9 0 3 1 22 3 12 11 2 - 13 19 0 0 2 1 35 1 19 23 22 35 1 37 2 4 48 196 20 19 1 38 37 1 2 - 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Nacute" xMin="43" yMin="-20" xMax="1435" yMax="1925"> - <contour> - <pt x="376" y="1480" on="1"/> - <pt x="1159" y="331" on="1"/> - <pt x="1159" y="1221" on="1"/> - <pt x="1153" y="1320" on="1"/> - <pt x="1149" y="1387" on="0"/> - <pt x="1127" y="1399" on="1"/> - <pt x="1107" y="1410" on="0"/> - <pt x="1061" y="1413" on="1"/> - <pt x="993" y="1417" on="1"/> - <pt x="974" y="1419" on="1"/> - <pt x="974" y="1480" on="1"/> - <pt x="1435" y="1480" on="1"/> - <pt x="1435" y="1419" on="1"/> - <pt x="1417" y="1417" on="1"/> - <pt x="1349" y="1413" on="1"/> - <pt x="1281" y="1409" on="0"/> - <pt x="1270" y="1386" on="1"/> - <pt x="1259" y="1366" on="0"/> - <pt x="1256" y="1320" on="1"/> - <pt x="1250" y="1221" on="1"/> - <pt x="1250" y="-20" on="1"/> - <pt x="1180" y="-20" on="1"/> - <pt x="322" y="1220" on="1"/> - <pt x="322" y="259" on="1"/> - <pt x="321" y="144" on="0"/> - <pt x="340" y="104" on="1"/> - <pt x="355" y="72" on="0"/> - <pt x="421" y="68" on="1"/> - <pt x="489" y="63" on="1"/> - <pt x="508" y="62" on="1"/> - <pt x="508" y="0" on="1"/> - <pt x="43" y="0" on="1"/> - <pt x="43" y="62" on="1"/> - <pt x="62" y="63" on="1"/> - <pt x="130" y="68" on="1"/> - <pt x="194" y="73" on="0"/> - <pt x="229" y="140" on="0"/> - <pt x="229" y="259" on="1"/> - <pt x="229" y="1221" on="1"/> - <pt x="230" y="1336" on="0"/> - <pt x="211" y="1377" on="1"/> - <pt x="196" y="1409" on="0"/> - <pt x="130" y="1413" on="1"/> - <pt x="62" y="1417" on="1"/> - <pt x="43" y="1419" on="1"/> - <pt x="43" y="1480" on="1"/> - </contour> - <contour> - <pt x="646" y="1604" on="1"/> - <pt x="887" y="1925" on="1"/> - <pt x="1146" y="1925" on="1"/> - <pt x="739" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 90 values pushed */ - 38 45 37 31 23 30 49 46 2 47 0 3 22 19 12 9 2 1 6 0 30 3 21 20 30 - 48 47 1 31 30 1 2 0 45 11 10 0 0 3 14 45 38 31 37 30 23 21 19 1 2 - 49 48 47 46 10 9 0 7 1 22 3 12 11 2 13 19 0 0 2 1 35 1 19 23 22 - 35 1 37 2 4 48 196 20 19 1 38 37 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ncaron" xMin="43" yMin="-20" xMax="1435" yMax="1925"> - <contour> - <pt x="376" y="1480" on="1"/> - <pt x="1159" y="331" on="1"/> - <pt x="1159" y="1221" on="1"/> - <pt x="1153" y="1320" on="1"/> - <pt x="1149" y="1387" on="0"/> - <pt x="1127" y="1399" on="1"/> - <pt x="1107" y="1410" on="0"/> - <pt x="1061" y="1413" on="1"/> - <pt x="993" y="1417" on="1"/> - <pt x="974" y="1419" on="1"/> - <pt x="974" y="1480" on="1"/> - <pt x="1435" y="1480" on="1"/> - <pt x="1435" y="1419" on="1"/> - <pt x="1417" y="1417" on="1"/> - <pt x="1349" y="1413" on="1"/> - <pt x="1281" y="1409" on="0"/> - <pt x="1270" y="1386" on="1"/> - <pt x="1259" y="1366" on="0"/> - <pt x="1256" y="1320" on="1"/> - <pt x="1250" y="1221" on="1"/> - <pt x="1250" y="-20" on="1"/> - <pt x="1180" y="-20" on="1"/> - <pt x="322" y="1220" on="1"/> - <pt x="322" y="259" on="1"/> - <pt x="321" y="144" on="0"/> - <pt x="340" y="104" on="1"/> - <pt x="355" y="72" on="0"/> - <pt x="421" y="68" on="1"/> - <pt x="489" y="63" on="1"/> - <pt x="508" y="62" on="1"/> - <pt x="508" y="0" on="1"/> - <pt x="43" y="0" on="1"/> - <pt x="43" y="62" on="1"/> - <pt x="62" y="63" on="1"/> - <pt x="130" y="68" on="1"/> - <pt x="194" y="73" on="0"/> - <pt x="229" y="140" on="0"/> - <pt x="229" y="259" on="1"/> - <pt x="229" y="1221" on="1"/> - <pt x="230" y="1336" on="0"/> - <pt x="211" y="1377" on="1"/> - <pt x="196" y="1409" on="0"/> - <pt x="130" y="1413" on="1"/> - <pt x="62" y="1417" on="1"/> - <pt x="43" y="1419" on="1"/> - <pt x="43" y="1480" on="1"/> - </contour> - <contour> - <pt x="1073" y="1925" on="1"/> - <pt x="833" y="1604" on="1"/> - <pt x="611" y="1604" on="1"/> - <pt x="370" y="1925" on="1"/> - <pt x="456" y="1925" on="1"/> - <pt x="722" y="1703" on="1"/> - <pt x="987" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 95 values pushed */ - 38 45 37 31 23 30 22 19 12 9 2 1 6 0 30 3 52 51 50 49 46 5 13 47 21 - 20 30 48 47 1 31 30 1 2 0 45 11 10 0 0 3 14 45 38 31 37 30 23 21 19 - 1 2 52 51 50 49 48 47 46 10 9 0 10 1 22 3 12 11 2 13 19 0 0 2 1 - 35 1 19 23 22 35 1 37 2 4 48 196 20 19 1 38 37 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ncommaaccent" xMin="43" yMin="-432" xMax="1435" yMax="1480"> - <contour> - <pt x="376" y="1480" on="1"/> - <pt x="1159" y="331" on="1"/> - <pt x="1159" y="1221" on="1"/> - <pt x="1153" y="1320" on="1"/> - <pt x="1150" y="1384" on="0"/> - <pt x="1130" y="1397" on="1"/> - <pt x="1112" y="1410" on="0"/> - <pt x="1061" y="1413" on="1"/> - <pt x="993" y="1417" on="1"/> - <pt x="974" y="1419" on="1"/> - <pt x="974" y="1480" on="1"/> - <pt x="1435" y="1480" on="1"/> - <pt x="1435" y="1419" on="1"/> - <pt x="1417" y="1417" on="1"/> - <pt x="1349" y="1413" on="1"/> - <pt x="1281" y="1408" on="0"/> - <pt x="1270" y="1386" on="1"/> - <pt x="1259" y="1367" on="0"/> - <pt x="1256" y="1320" on="1"/> - <pt x="1250" y="1221" on="1"/> - <pt x="1250" y="-20" on="1"/> - <pt x="1180" y="-20" on="1"/> - <pt x="322" y="1220" on="1"/> - <pt x="322" y="259" on="1"/> - <pt x="321" y="144" on="0"/> - <pt x="340" y="104" on="1"/> - <pt x="355" y="72" on="0"/> - <pt x="421" y="68" on="1"/> - <pt x="489" y="63" on="1"/> - <pt x="508" y="62" on="1"/> - <pt x="508" y="0" on="1"/> - <pt x="43" y="0" on="1"/> - <pt x="43" y="62" on="1"/> - <pt x="62" y="63" on="1"/> - <pt x="130" y="68" on="1"/> - <pt x="194" y="73" on="0"/> - <pt x="229" y="140" on="0"/> - <pt x="229" y="259" on="1"/> - <pt x="229" y="1221" on="1"/> - <pt x="230" y="1335" on="0"/> - <pt x="211" y="1377" on="1"/> - <pt x="196" y="1409" on="0"/> - <pt x="130" y="1413" on="1"/> - <pt x="62" y="1417" on="1"/> - <pt x="43" y="1419" on="1"/> - <pt x="43" y="1480" on="1"/> - </contour> - <contour> - <pt x="582" y="-421" on="1"/> - <pt x="582" y="-349" on="1"/> - <pt x="631" y="-359" on="0"/> - <pt x="686" y="-359" on="1"/> - <pt x="789" y="-359" on="0"/> - <pt x="789" y="-279" on="1"/> - <pt x="789" y="-190" on="0"/> - <pt x="631" y="-175" on="1"/> - <pt x="631" y="-111" on="1"/> - <pt x="765" y="-114" on="0"/> - <pt x="831" y="-143" on="1"/> - <pt x="924" y="-185" on="0"/> - <pt x="924" y="-280" on="1"/> - <pt x="924" y="-432" on="0"/> - <pt x="707" y="-432" on="1"/> - <pt x="647" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 103 values pushed */ - 0 0 49 17 60 48 84 38 45 37 31 23 30 22 19 12 9 2 1 6 0 30 3 54 53 - 47 46 21 20 6 13 60 30 31 30 1 0 45 11 10 0 0 3 14 0 0 51 48 58 48 - 196 45 38 31 37 30 23 21 19 1 2 58 58 54 53 47 46 10 9 0 8 1 22 3 12 - 11 2 13 19 0 0 2 1 35 1 19 23 22 35 1 37 2 4 48 196 20 19 1 38 37 - 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MDAP[1] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ntilde" xMin="43" yMin="-20" xMax="1435" yMax="1839"> - <contour> - <pt x="376" y="1480" on="1"/> - <pt x="1159" y="331" on="1"/> - <pt x="1159" y="1221" on="1"/> - <pt x="1153" y="1320" on="1"/> - <pt x="1149" y="1387" on="0"/> - <pt x="1127" y="1399" on="1"/> - <pt x="1107" y="1410" on="0"/> - <pt x="1061" y="1413" on="1"/> - <pt x="993" y="1417" on="1"/> - <pt x="974" y="1419" on="1"/> - <pt x="974" y="1480" on="1"/> - <pt x="1435" y="1480" on="1"/> - <pt x="1435" y="1419" on="1"/> - <pt x="1417" y="1417" on="1"/> - <pt x="1349" y="1413" on="1"/> - <pt x="1281" y="1409" on="0"/> - <pt x="1270" y="1386" on="1"/> - <pt x="1259" y="1366" on="0"/> - <pt x="1256" y="1320" on="1"/> - <pt x="1250" y="1221" on="1"/> - <pt x="1250" y="-20" on="1"/> - <pt x="1180" y="-20" on="1"/> - <pt x="322" y="1220" on="1"/> - <pt x="322" y="259" on="1"/> - <pt x="321" y="144" on="0"/> - <pt x="340" y="104" on="1"/> - <pt x="355" y="72" on="0"/> - <pt x="421" y="68" on="1"/> - <pt x="489" y="63" on="1"/> - <pt x="508" y="62" on="1"/> - <pt x="508" y="0" on="1"/> - <pt x="43" y="0" on="1"/> - <pt x="43" y="62" on="1"/> - <pt x="62" y="63" on="1"/> - <pt x="130" y="68" on="1"/> - <pt x="194" y="73" on="0"/> - <pt x="229" y="140" on="0"/> - <pt x="229" y="259" on="1"/> - <pt x="229" y="1221" on="1"/> - <pt x="230" y="1336" on="0"/> - <pt x="211" y="1377" on="1"/> - <pt x="196" y="1409" on="0"/> - <pt x="130" y="1413" on="1"/> - <pt x="62" y="1417" on="1"/> - <pt x="43" y="1419" on="1"/> - <pt x="43" y="1480" on="1"/> - </contour> - <contour> - <pt x="425" y="1604" on="1"/> - <pt x="452" y="1744" on="0"/> - <pt x="521" y="1797" on="1"/> - <pt x="574" y="1839" on="0"/> - <pt x="652" y="1839" on="1"/> - <pt x="717" y="1839" on="0"/> - <pt x="770" y="1801" on="1"/> - <pt x="805" y="1776" on="1"/> - <pt x="857" y="1739" on="0"/> - <pt x="911" y="1739" on="1"/> - <pt x="1007" y="1739" on="0"/> - <pt x="1029" y="1838" on="1"/> - <pt x="1091" y="1838" on="1"/> - <pt x="1063" y="1699" on="0"/> - <pt x="995" y="1646" on="1"/> - <pt x="941" y="1604" on="0"/> - <pt x="864" y="1604" on="1"/> - <pt x="801" y="1604" on="0"/> - <pt x="746" y="1642" on="1"/> - <pt x="711" y="1666" on="1"/> - <pt x="656" y="1704" on="0"/> - <pt x="604" y="1704" on="1"/> - <pt x="516" y="1704" on="0"/> - <pt x="487" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 99 values pushed */ - 0 0 67 20 50 55 20 62 48 84 38 45 37 31 23 30 22 19 12 9 2 1 6 0 30 - 3 69 58 57 46 4 13 62 50 0 21 20 30 31 30 1 0 45 11 10 0 0 3 14 45 - 38 31 37 30 23 21 19 1 2 69 58 57 46 10 9 0 7 1 22 3 12 11 2 13 19 - 0 0 2 1 35 1 19 23 22 35 1 37 2 4 48 196 20 19 1 38 37 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="O" xMin="80" yMin="-37" xMax="1398" yMax="1517"> - <contour> - <pt x="739" y="1517" on="1"/> - <pt x="1044" y="1517" on="0"/> - <pt x="1221" y="1309" on="1"/> - <pt x="1398" y="1101" on="0"/> - <pt x="1398" y="742" on="1"/> - <pt x="1398" y="377" on="0"/> - <pt x="1220" y="170" on="1"/> - <pt x="1043" y="-37" on="0"/> - <pt x="729" y="-37" on="1"/> - <pt x="461" y="-37" on="0"/> - <pt x="292" y="133" on="1"/> - <pt x="80" y="347" on="0"/> - <pt x="80" y="740" on="1"/> - <pt x="80" y="1100" on="0"/> - <pt x="257" y="1308" on="1"/> - <pt x="435" y="1517" on="0"/> - </contour> - <contour> - <pt x="739" y="1450" on="1"/> - <pt x="538" y="1450" on="0"/> - <pt x="423" y="1261" on="1"/> - <pt x="308" y="1072" on="0"/> - <pt x="308" y="741" on="1"/> - <pt x="308" y="413" on="0"/> - <pt x="422" y="222" on="1"/> - <pt x="536" y="31" on="0"/> - <pt x="734" y="31" on="1"/> - <pt x="918" y="31" on="0"/> - <pt x="1030" y="182" on="1"/> - <pt x="1170" y="371" on="0"/> - <pt x="1170" y="743" on="1"/> - <pt x="1170" y="1074" on="0"/> - <pt x="1055" y="1261" on="1"/> - <pt x="939" y="1450" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 27 values pushed */ - 0 0 24 17 8 16 17 0 48 84 8 2 0 0 14 0 0 28 34 4 20 34 12 48 196 - 12 4 - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="OE" xMin="80" yMin="-37" xMax="1771" yMax="1517"> - <contour> - <pt x="973" y="1408" on="1"/> - <pt x="973" y="1480" on="1"/> - <pt x="1715" y="1480" on="1"/> - <pt x="1715" y="1221" on="1"/> - <pt x="1604" y="1221" on="1"/> - <pt x="1603" y="1240" on="1"/> - <pt x="1601" y="1274" on="1"/> - <pt x="1598" y="1311" on="0"/> - <pt x="1598" y="1321" on="1"/> - <pt x="1598" y="1324" on="1"/> - <pt x="1598" y="1378" on="0"/> - <pt x="1581" y="1389" on="1"/> - <pt x="1566" y="1399" on="0"/> - <pt x="1525" y="1399" on="1"/> - <pt x="1422" y="1400" on="1"/> - <pt x="1198" y="1400" on="1"/> - <pt x="1198" y="808" on="1"/> - <pt x="1382" y="809" on="1"/> - <pt x="1445" y="811" on="1"/> - <pt x="1495" y="812" on="0"/> - <pt x="1504" y="825" on="1"/> - <pt x="1512" y="836" on="0"/> - <pt x="1514" y="867" on="1"/> - <pt x="1514" y="869" on="1"/> - <pt x="1514" y="871" on="1"/> - <pt x="1515" y="881" on="1"/> - <pt x="1515" y="885" on="0"/> - <pt x="1516" y="895" on="1"/> - <pt x="1517" y="911" on="0"/> - <pt x="1517" y="913" on="1"/> - <pt x="1518" y="931" on="1"/> - <pt x="1610" y="931" on="1"/> - <pt x="1610" y="605" on="1"/> - <pt x="1518" y="605" on="1"/> - <pt x="1517" y="623" on="1"/> - <pt x="1511" y="711" on="0"/> - <pt x="1486" y="717" on="1"/> - <pt x="1461" y="728" on="0"/> - <pt x="1382" y="728" on="1"/> - <pt x="1198" y="728" on="1"/> - <pt x="1198" y="259" on="1"/> - <pt x="1198" y="122" on="0"/> - <pt x="1238" y="105" on="1"/> - <pt x="1274" y="86" on="0"/> - <pt x="1369" y="86" on="1"/> - <pt x="1466" y="86" on="1"/> - <pt x="1567" y="92" on="1"/> - <pt x="1650" y="97" on="0"/> - <pt x="1655" y="162" on="1"/> - <pt x="1658" y="234" on="1"/> - <pt x="1660" y="253" on="1"/> - <pt x="1771" y="253" on="1"/> - <pt x="1771" y="0" on="1"/> - <pt x="973" y="0" on="1"/> - <pt x="973" y="73" on="1"/> - <pt x="904" y="15" on="0"/> - <pt x="856" y="-6" on="1"/> - <pt x="828" y="-19" on="0"/> - <pt x="786" y="-26" on="1"/> - <pt x="721" y="-37" on="0"/> - <pt x="681" y="-37" on="1"/> - <pt x="629" y="-37" on="0"/> - <pt x="524" y="-12" on="1"/> - <pt x="379" y="23" on="0"/> - <pt x="281" y="134" on="1"/> - <pt x="80" y="363" on="0"/> - <pt x="80" y="741" on="1"/> - <pt x="80" y="1091" on="0"/> - <pt x="246" y="1304" on="1"/> - <pt x="411" y="1517" on="0"/> - <pt x="678" y="1517" on="1"/> - <pt x="842" y="1517" on="0"/> - </contour> - <contour> - <pt x="973" y="610" on="1"/> - <pt x="973" y="870" on="1"/> - <pt x="973" y="1190" on="0"/> - <pt x="910" y="1320" on="1"/> - <pt x="848" y="1450" on="0"/> - <pt x="694" y="1450" on="1"/> - <pt x="516" y="1450" on="0"/> - <pt x="410" y="1255" on="1"/> - <pt x="303" y="1060" on="0"/> - <pt x="303" y="740" on="1"/> - <pt x="303" y="420" on="0"/> - <pt x="410" y="226" on="1"/> - <pt x="516" y="31" on="0"/> - <pt x="694" y="31" on="1"/> - <pt x="864" y="31" on="0"/> - <pt x="924" y="194" on="1"/> - <pt x="973" y="327" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 133 values pushed */ - 0 0 85 17 60 77 17 70 48 84 70 0 60 2 0 1 14 2 73 31 30 24 23 22 16 - 9 8 4 3 11 14 38 3 72 54 51 50 45 44 42 40 36 33 32 11 38 52 3 0 0 - 15 14 21 1 1 1 4 48 84 39 38 1 53 52 1 2 0 2 1 0 14 0 0 81 33 - 66 48 196 50 2 31 2 45 44 42 38 36 33 30 24 23 22 14 9 8 4 14 31 15 3 - 66 0 0 0 73 72 54 53 1 0 36 5 15 1 4 48 196 52 51 1 3 2 1 32 31 - 1 40 39 16 15 3 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Oacute" xMin="80" yMin="-37" xMax="1398" yMax="1925"> - <contour> - <pt x="739" y="1517" on="1"/> - <pt x="1044" y="1517" on="0"/> - <pt x="1221" y="1309" on="1"/> - <pt x="1398" y="1101" on="0"/> - <pt x="1398" y="742" on="1"/> - <pt x="1398" y="377" on="0"/> - <pt x="1220" y="170" on="1"/> - <pt x="1043" y="-37" on="0"/> - <pt x="729" y="-37" on="1"/> - <pt x="461" y="-37" on="0"/> - <pt x="292" y="133" on="1"/> - <pt x="80" y="347" on="0"/> - <pt x="80" y="740" on="1"/> - <pt x="80" y="1100" on="0"/> - <pt x="257" y="1308" on="1"/> - <pt x="435" y="1517" on="0"/> - </contour> - <contour> - <pt x="739" y="1450" on="1"/> - <pt x="538" y="1450" on="0"/> - <pt x="423" y="1261" on="1"/> - <pt x="308" y="1072" on="0"/> - <pt x="308" y="741" on="1"/> - <pt x="308" y="413" on="0"/> - <pt x="422" y="222" on="1"/> - <pt x="536" y="31" on="0"/> - <pt x="734" y="31" on="1"/> - <pt x="918" y="31" on="0"/> - <pt x="1030" y="182" on="1"/> - <pt x="1170" y="371" on="0"/> - <pt x="1170" y="743" on="1"/> - <pt x="1170" y="1074" on="0"/> - <pt x="1055" y="1261" on="1"/> - <pt x="939" y="1450" on="0"/> - </contour> - <contour> - <pt x="585" y="1604" on="1"/> - <pt x="826" y="1925" on="1"/> - <pt x="1085" y="1925" on="1"/> - <pt x="678" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 43 values pushed */ - 0 0 24 17 8 16 17 0 48 84 8 2 0 0 1 35 32 2 33 0 3 0 34 33 1 - 0 14 0 0 28 34 4 20 34 12 48 196 35 34 33 32 12 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Obreve" xMin="80" yMin="-37" xMax="1398" yMax="1925"> - <contour> - <pt x="739" y="1517" on="1"/> - <pt x="1044" y="1517" on="0"/> - <pt x="1221" y="1309" on="1"/> - <pt x="1398" y="1101" on="0"/> - <pt x="1398" y="742" on="1"/> - <pt x="1398" y="377" on="0"/> - <pt x="1220" y="170" on="1"/> - <pt x="1043" y="-37" on="0"/> - <pt x="729" y="-37" on="1"/> - <pt x="461" y="-37" on="0"/> - <pt x="292" y="133" on="1"/> - <pt x="80" y="347" on="0"/> - <pt x="80" y="740" on="1"/> - <pt x="80" y="1100" on="0"/> - <pt x="257" y="1308" on="1"/> - <pt x="435" y="1517" on="0"/> - </contour> - <contour> - <pt x="739" y="1450" on="1"/> - <pt x="538" y="1450" on="0"/> - <pt x="423" y="1261" on="1"/> - <pt x="308" y="1072" on="0"/> - <pt x="308" y="741" on="1"/> - <pt x="308" y="413" on="0"/> - <pt x="422" y="222" on="1"/> - <pt x="536" y="31" on="0"/> - <pt x="734" y="31" on="1"/> - <pt x="918" y="31" on="0"/> - <pt x="1030" y="182" on="1"/> - <pt x="1170" y="371" on="0"/> - <pt x="1170" y="743" on="1"/> - <pt x="1170" y="1074" on="0"/> - <pt x="1055" y="1261" on="1"/> - <pt x="939" y="1450" on="0"/> - </contour> - <contour> - <pt x="406" y="1925" on="1"/> - <pt x="471" y="1925" on="1"/> - <pt x="498" y="1835" on="0"/> - <pt x="558" y="1793" on="1"/> - <pt x="626" y="1746" on="0"/> - <pt x="739" y="1746" on="1"/> - <pt x="865" y="1746" on="0"/> - <pt x="935" y="1805" on="1"/> - <pt x="984" y="1845" on="0"/> - <pt x="1008" y="1925" on="1"/> - <pt x="1072" y="1925" on="1"/> - <pt x="1053" y="1790" on="0"/> - <pt x="981" y="1709" on="1"/> - <pt x="887" y="1604" on="0"/> - <pt x="739" y="1604" on="1"/> - <pt x="585" y="1604" on="0"/> - <pt x="490" y="1719" on="1"/> - <pt x="425" y="1796" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 44 values pushed */ - 0 0 37 20 46 24 38 8 16 38 0 48 84 8 2 0 0 1 42 41 33 32 4 13 46 - 0 0 14 0 0 28 34 4 20 34 12 48 196 42 41 33 32 12 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ocircumflex" xMin="80" yMin="-37" xMax="1398" yMax="1925"> - <contour> - <pt x="739" y="1517" on="1"/> - <pt x="1044" y="1517" on="0"/> - <pt x="1221" y="1309" on="1"/> - <pt x="1398" y="1101" on="0"/> - <pt x="1398" y="742" on="1"/> - <pt x="1398" y="377" on="0"/> - <pt x="1220" y="170" on="1"/> - <pt x="1043" y="-37" on="0"/> - <pt x="729" y="-37" on="1"/> - <pt x="461" y="-37" on="0"/> - <pt x="292" y="133" on="1"/> - <pt x="80" y="347" on="0"/> - <pt x="80" y="740" on="1"/> - <pt x="80" y="1100" on="0"/> - <pt x="257" y="1308" on="1"/> - <pt x="435" y="1517" on="0"/> - </contour> - <contour> - <pt x="739" y="1450" on="1"/> - <pt x="538" y="1450" on="0"/> - <pt x="423" y="1261" on="1"/> - <pt x="308" y="1072" on="0"/> - <pt x="308" y="741" on="1"/> - <pt x="308" y="413" on="0"/> - <pt x="422" y="222" on="1"/> - <pt x="536" y="31" on="0"/> - <pt x="734" y="31" on="1"/> - <pt x="918" y="31" on="0"/> - <pt x="1030" y="182" on="1"/> - <pt x="1170" y="371" on="0"/> - <pt x="1170" y="743" on="1"/> - <pt x="1170" y="1074" on="0"/> - <pt x="1055" y="1261" on="1"/> - <pt x="939" y="1450" on="0"/> - </contour> - <contour> - <pt x="388" y="1604" on="1"/> - <pt x="629" y="1925" on="1"/> - <pt x="851" y="1925" on="1"/> - <pt x="1091" y="1604" on="1"/> - <pt x="1005" y="1604" on="1"/> - <pt x="740" y="1826" on="1"/> - <pt x="474" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 49 values pushed */ - 0 0 24 17 8 16 17 0 48 84 8 2 0 0 1 38 37 36 35 32 5 33 0 3 0 - 34 33 1 0 14 0 0 28 34 4 20 34 12 48 196 38 37 36 35 34 33 32 12 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Odieresis" xMin="80" yMin="-37" xMax="1398" yMax="1777"> - <contour> - <pt x="739" y="1517" on="1"/> - <pt x="1044" y="1517" on="0"/> - <pt x="1221" y="1309" on="1"/> - <pt x="1398" y="1101" on="0"/> - <pt x="1398" y="742" on="1"/> - <pt x="1398" y="377" on="0"/> - <pt x="1220" y="170" on="1"/> - <pt x="1043" y="-37" on="0"/> - <pt x="729" y="-37" on="1"/> - <pt x="461" y="-37" on="0"/> - <pt x="292" y="133" on="1"/> - <pt x="80" y="347" on="0"/> - <pt x="80" y="740" on="1"/> - <pt x="80" y="1100" on="0"/> - <pt x="257" y="1308" on="1"/> - <pt x="435" y="1517" on="0"/> - </contour> - <contour> - <pt x="739" y="1450" on="1"/> - <pt x="538" y="1450" on="0"/> - <pt x="423" y="1261" on="1"/> - <pt x="308" y="1072" on="0"/> - <pt x="308" y="741" on="1"/> - <pt x="308" y="413" on="0"/> - <pt x="422" y="222" on="1"/> - <pt x="536" y="31" on="0"/> - <pt x="734" y="31" on="1"/> - <pt x="918" y="31" on="0"/> - <pt x="1030" y="182" on="1"/> - <pt x="1170" y="371" on="0"/> - <pt x="1170" y="743" on="1"/> - <pt x="1170" y="1074" on="0"/> - <pt x="1055" y="1261" on="1"/> - <pt x="939" y="1450" on="0"/> - </contour> - <contour> - <pt x="455" y="1604" on="1"/> - <pt x="455" y="1777" on="1"/> - <pt x="628" y="1777" on="1"/> - <pt x="628" y="1604" on="1"/> - </contour> - <contour> - <pt x="850" y="1604" on="1"/> - <pt x="850" y="1777" on="1"/> - <pt x="1023" y="1777" on="1"/> - <pt x="1023" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 72 values pushed */ - 0 0 24 17 8 16 17 0 48 84 8 2 0 0 0 0 39 36 35 32 13 3 33 1 4 - 48 84 38 37 34 33 3 0 14 0 0 28 34 4 20 34 12 48 196 4 38 12 32 0 0 - 37 36 13 1 38 35 34 13 1 32 2 4 48 196 39 38 1 33 32 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ograve" xMin="80" yMin="-37" xMax="1398" yMax="1925"> - <contour> - <pt x="739" y="1517" on="1"/> - <pt x="1044" y="1517" on="0"/> - <pt x="1221" y="1309" on="1"/> - <pt x="1398" y="1101" on="0"/> - <pt x="1398" y="742" on="1"/> - <pt x="1398" y="377" on="0"/> - <pt x="1220" y="170" on="1"/> - <pt x="1043" y="-37" on="0"/> - <pt x="729" y="-37" on="1"/> - <pt x="461" y="-37" on="0"/> - <pt x="292" y="133" on="1"/> - <pt x="80" y="347" on="0"/> - <pt x="80" y="740" on="1"/> - <pt x="80" y="1100" on="0"/> - <pt x="257" y="1308" on="1"/> - <pt x="435" y="1517" on="0"/> - </contour> - <contour> - <pt x="739" y="1450" on="1"/> - <pt x="538" y="1450" on="0"/> - <pt x="423" y="1261" on="1"/> - <pt x="308" y="1072" on="0"/> - <pt x="308" y="741" on="1"/> - <pt x="308" y="413" on="0"/> - <pt x="422" y="222" on="1"/> - <pt x="536" y="31" on="0"/> - <pt x="734" y="31" on="1"/> - <pt x="918" y="31" on="0"/> - <pt x="1030" y="182" on="1"/> - <pt x="1170" y="371" on="0"/> - <pt x="1170" y="743" on="1"/> - <pt x="1170" y="1074" on="0"/> - <pt x="1055" y="1261" on="1"/> - <pt x="939" y="1450" on="0"/> - </contour> - <contour> - <pt x="893" y="1604" on="1"/> - <pt x="800" y="1604" on="1"/> - <pt x="393" y="1925" on="1"/> - <pt x="652" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 43 values pushed */ - 0 0 24 17 8 16 17 0 48 84 8 2 0 0 1 33 32 2 34 0 3 0 35 34 1 - 0 14 0 0 28 34 4 20 34 12 48 196 35 34 33 32 12 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ohungarumlaut" xMin="80" yMin="-37" xMax="1398" yMax="1925"> - <contour> - <pt x="739" y="1517" on="1"/> - <pt x="1044" y="1517" on="0"/> - <pt x="1221" y="1309" on="1"/> - <pt x="1398" y="1101" on="0"/> - <pt x="1398" y="742" on="1"/> - <pt x="1398" y="377" on="0"/> - <pt x="1220" y="170" on="1"/> - <pt x="1043" y="-37" on="0"/> - <pt x="729" y="-37" on="1"/> - <pt x="461" y="-37" on="0"/> - <pt x="292" y="133" on="1"/> - <pt x="80" y="347" on="0"/> - <pt x="80" y="740" on="1"/> - <pt x="80" y="1100" on="0"/> - <pt x="257" y="1308" on="1"/> - <pt x="435" y="1517" on="0"/> - </contour> - <contour> - <pt x="739" y="1450" on="1"/> - <pt x="538" y="1450" on="0"/> - <pt x="423" y="1261" on="1"/> - <pt x="308" y="1072" on="0"/> - <pt x="308" y="741" on="1"/> - <pt x="308" y="413" on="0"/> - <pt x="422" y="222" on="1"/> - <pt x="536" y="31" on="0"/> - <pt x="734" y="31" on="1"/> - <pt x="918" y="31" on="0"/> - <pt x="1030" y="182" on="1"/> - <pt x="1170" y="371" on="0"/> - <pt x="1170" y="743" on="1"/> - <pt x="1170" y="1074" on="0"/> - <pt x="1055" y="1261" on="1"/> - <pt x="939" y="1450" on="0"/> - </contour> - <contour> - <pt x="492" y="1604" on="1"/> - <pt x="706" y="1925" on="1"/> - <pt x="875" y="1925" on="1"/> - <pt x="554" y="1604" on="1"/> - </contour> - <contour> - <pt x="801" y="1604" on="1"/> - <pt x="1014" y="1925" on="1"/> - <pt x="1183" y="1925" on="1"/> - <pt x="862" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 51 values pushed */ - 0 0 24 17 8 16 17 0 48 84 8 2 0 0 1 39 36 35 32 4 33 0 3 0 38 - 37 34 33 3 0 14 0 0 28 34 4 20 34 12 48 196 39 38 37 36 35 34 33 32 12 - 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Omacron" xMin="80" yMin="-37" xMax="1398" yMax="1727"> - <contour> - <pt x="739" y="1517" on="1"/> - <pt x="1044" y="1517" on="0"/> - <pt x="1221" y="1309" on="1"/> - <pt x="1398" y="1101" on="0"/> - <pt x="1398" y="742" on="1"/> - <pt x="1398" y="377" on="0"/> - <pt x="1220" y="170" on="1"/> - <pt x="1043" y="-37" on="0"/> - <pt x="729" y="-37" on="1"/> - <pt x="461" y="-37" on="0"/> - <pt x="292" y="133" on="1"/> - <pt x="80" y="347" on="0"/> - <pt x="80" y="740" on="1"/> - <pt x="80" y="1100" on="0"/> - <pt x="257" y="1308" on="1"/> - <pt x="435" y="1517" on="0"/> - </contour> - <contour> - <pt x="739" y="1450" on="1"/> - <pt x="538" y="1450" on="0"/> - <pt x="423" y="1261" on="1"/> - <pt x="308" y="1072" on="0"/> - <pt x="308" y="741" on="1"/> - <pt x="308" y="413" on="0"/> - <pt x="422" y="222" on="1"/> - <pt x="536" y="31" on="0"/> - <pt x="734" y="31" on="1"/> - <pt x="918" y="31" on="0"/> - <pt x="1030" y="182" on="1"/> - <pt x="1170" y="371" on="0"/> - <pt x="1170" y="743" on="1"/> - <pt x="1170" y="1074" on="0"/> - <pt x="1055" y="1261" on="1"/> - <pt x="939" y="1450" on="0"/> - </contour> - <contour> - <pt x="418" y="1604" on="1"/> - <pt x="418" y="1727" on="1"/> - <pt x="1060" y="1727" on="1"/> - <pt x="1060" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 46 values pushed */ - 0 0 24 17 8 16 17 0 48 84 8 2 0 0 0 0 35 32 12 1 33 1 4 48 84 - 34 33 1 0 14 0 0 28 34 4 20 34 12 48 196 35 34 33 32 12 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Oslash" xMin="80" yMin="-37" xMax="1398" yMax="1517"> - <contour> - <pt x="80" y="-37" on="1"/> - <pt x="253" y="181" on="1"/> - <pt x="176" y="282" on="0"/> - <pt x="137" y="387" on="1"/> - <pt x="80" y="542" on="0"/> - <pt x="80" y="741" on="1"/> - <pt x="80" y="1101" on="0"/> - <pt x="257" y="1309" on="1"/> - <pt x="434" y="1517" on="0"/> - <pt x="739" y="1517" on="1"/> - <pt x="994" y="1517" on="0"/> - <pt x="1178" y="1352" on="1"/> - <pt x="1309" y="1517" on="1"/> - <pt x="1398" y="1517" on="1"/> - <pt x="1226" y="1298" on="1"/> - <pt x="1303" y="1198" on="0"/> - <pt x="1341" y="1094" on="1"/> - <pt x="1398" y="938" on="0"/> - <pt x="1398" y="739" on="1"/> - <pt x="1398" y="380" on="0"/> - <pt x="1221" y="172" on="1"/> - <pt x="1044" y="-37" on="0"/> - <pt x="739" y="-37" on="1"/> - <pt x="485" y="-37" on="0"/> - <pt x="305" y="124" on="1"/> - <pt x="179" y="-37" on="1"/> - </contour> - <contour> - <pt x="407" y="254" on="1"/> - <pt x="463" y="154" on="0"/> - <pt x="526" y="104" on="1"/> - <pt x="617" y="31" on="0"/> - <pt x="739" y="31" on="1"/> - <pt x="940" y="31" on="0"/> - <pt x="1055" y="220" on="1"/> - <pt x="1170" y="409" on="0"/> - <pt x="1170" y="738" on="1"/> - <pt x="1170" y="973" on="0"/> - <pt x="1107" y="1147" on="1"/> - </contour> - <contour> - <pt x="1074" y="1220" on="1"/> - <pt x="1017" y="1323" on="0"/> - <pt x="954" y="1374" on="1"/> - <pt x="862" y="1450" on="0"/> - <pt x="738" y="1450" on="1"/> - <pt x="538" y="1450" on="0"/> - <pt x="423" y="1261" on="1"/> - <pt x="308" y="1072" on="0"/> - <pt x="308" y="744" on="1"/> - <pt x="308" y="505" on="0"/> - <pt x="371" y="332" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 67 values pushed */ - 0 0 41 17 9 30 17 22 48 84 22 2 9 0 1 1 47 37 36 26 24 14 11 1 8 - 0 2 3 0 0 1 13 12 2 13 0 0 1 25 0 2 0 14 0 0 45 34 5 34 34 - 18 48 196 47 37 36 26 25 24 18 14 13 12 11 5 1 0 - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Otilde" xMin="80" yMin="-37" xMax="1398" yMax="1839"> - <contour> - <pt x="739" y="1517" on="1"/> - <pt x="1044" y="1517" on="0"/> - <pt x="1221" y="1309" on="1"/> - <pt x="1398" y="1101" on="0"/> - <pt x="1398" y="742" on="1"/> - <pt x="1398" y="377" on="0"/> - <pt x="1220" y="170" on="1"/> - <pt x="1043" y="-37" on="0"/> - <pt x="729" y="-37" on="1"/> - <pt x="461" y="-37" on="0"/> - <pt x="292" y="133" on="1"/> - <pt x="80" y="347" on="0"/> - <pt x="80" y="740" on="1"/> - <pt x="80" y="1100" on="0"/> - <pt x="257" y="1308" on="1"/> - <pt x="435" y="1517" on="0"/> - </contour> - <contour> - <pt x="739" y="1450" on="1"/> - <pt x="538" y="1450" on="0"/> - <pt x="423" y="1261" on="1"/> - <pt x="308" y="1072" on="0"/> - <pt x="308" y="741" on="1"/> - <pt x="308" y="413" on="0"/> - <pt x="422" y="222" on="1"/> - <pt x="536" y="31" on="0"/> - <pt x="734" y="31" on="1"/> - <pt x="918" y="31" on="0"/> - <pt x="1030" y="182" on="1"/> - <pt x="1170" y="371" on="0"/> - <pt x="1170" y="743" on="1"/> - <pt x="1170" y="1074" on="0"/> - <pt x="1055" y="1261" on="1"/> - <pt x="939" y="1450" on="0"/> - </contour> - <contour> - <pt x="406" y="1604" on="1"/> - <pt x="433" y="1743" on="0"/> - <pt x="502" y="1797" on="1"/> - <pt x="555" y="1839" on="0"/> - <pt x="633" y="1839" on="1"/> - <pt x="698" y="1839" on="0"/> - <pt x="751" y="1801" on="1"/> - <pt x="786" y="1776" on="1"/> - <pt x="838" y="1739" on="0"/> - <pt x="892" y="1739" on="1"/> - <pt x="988" y="1739" on="0"/> - <pt x="1010" y="1838" on="1"/> - <pt x="1072" y="1838" on="1"/> - <pt x="1044" y="1699" on="0"/> - <pt x="976" y="1646" on="1"/> - <pt x="922" y="1604" on="0"/> - <pt x="845" y="1604" on="1"/> - <pt x="782" y="1604" on="0"/> - <pt x="727" y="1642" on="1"/> - <pt x="692" y="1666" on="1"/> - <pt x="637" y="1704" on="0"/> - <pt x="585" y="1704" on="1"/> - <pt x="497" y="1704" on="0"/> - <pt x="468" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 48 values pushed */ - 0 0 53 20 36 41 20 48 24 17 8 16 17 0 48 84 8 2 0 0 1 55 44 43 32 - 4 13 48 36 0 0 14 0 0 28 34 4 20 34 12 48 196 55 44 43 32 12 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="P" xMin="31" yMin="0" xMax="1108" yMax="1492"> - <contour> - <pt x="462" y="1480" on="1"/> - <pt x="608" y="1485" on="1"/> - <pt x="676" y="1487" on="1"/> - <pt x="836" y="1492" on="0"/> - <pt x="947" y="1427" on="1"/> - <pt x="1108" y="1333" on="0"/> - <pt x="1108" y="1095" on="1"/> - <pt x="1108" y="617" on="0"/> - <pt x="478" y="617" on="1"/> - <pt x="424" y="617" on="1"/> - <pt x="424" y="259" on="1"/> - <pt x="423" y="144" on="0"/> - <pt x="442" y="104" on="1"/> - <pt x="457" y="72" on="0"/> - <pt x="523" y="68" on="1"/> - <pt x="591" y="63" on="1"/> - <pt x="634" y="62" on="1"/> - <pt x="634" y="0" on="1"/> - <pt x="31" y="0" on="1"/> - <pt x="31" y="62" on="1"/> - <pt x="50" y="63" on="1"/> - <pt x="117" y="68" on="1"/> - <pt x="193" y="74" on="0"/> - <pt x="203" y="115" on="1"/> - <pt x="216" y="177" on="0"/> - <pt x="216" y="259" on="1"/> - <pt x="216" y="1221" on="1"/> - <pt x="216" y="1280" on="0"/> - <pt x="209" y="1333" on="1"/> - <pt x="203" y="1372" on="0"/> - <pt x="195" y="1384" on="1"/> - <pt x="177" y="1410" on="0"/> - <pt x="117" y="1413" on="1"/> - <pt x="50" y="1417" on="1"/> - <pt x="31" y="1419" on="1"/> - <pt x="31" y="1480" on="1"/> - </contour> - <contour> - <pt x="424" y="685" on="1"/> - <pt x="490" y="685" on="1"/> - <pt x="886" y="685" on="0"/> - <pt x="886" y="1091" on="1"/> - <pt x="886" y="1265" on="0"/> - <pt x="810" y="1339" on="1"/> - <pt x="735" y="1413" on="0"/> - <pt x="559" y="1413" on="1"/> - <pt x="424" y="1413" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 62 values pushed */ - 26 35 25 18 10 17 44 43 37 36 9 8 6 0 17 3 18 17 1 0 35 0 0 14 0 - 0 39 33 6 48 196 35 26 18 25 17 10 43 37 8 0 4 13 6 9 0 0 44 36 10 - 9 32 3 25 1 4 48 196 26 25 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Q" xMin="80" yMin="-298" xMax="1711" yMax="1517"> - <contour> - <pt x="1711" y="-174" on="1"/> - <pt x="1463" y="-298" on="1"/> - <pt x="1211" y="-224" on="0"/> - <pt x="926" y="-49" on="1"/> - <pt x="885" y="-24" on="1"/> - <pt x="809" y="-37" on="0"/> - <pt x="739" y="-37" on="1"/> - <pt x="434" y="-37" on="0"/> - <pt x="257" y="171" on="1"/> - <pt x="80" y="380" on="0"/> - <pt x="80" y="740" on="1"/> - <pt x="80" y="1099" on="0"/> - <pt x="257" y="1308" on="1"/> - <pt x="434" y="1517" on="0"/> - <pt x="739" y="1517" on="1"/> - <pt x="1045" y="1517" on="0"/> - <pt x="1222" y="1308" on="1"/> - <pt x="1398" y="1100" on="0"/> - <pt x="1398" y="740" on="1"/> - <pt x="1398" y="413" on="0"/> - <pt x="1247" y="204" on="1"/> - <pt x="1145" y="62" on="0"/> - <pt x="974" y="1" on="1"/> - <pt x="1211" y="-136" on="0"/> - </contour> - <contour> - <pt x="740" y="1450" on="1"/> - <pt x="540" y="1450" on="0"/> - <pt x="424" y="1262" on="1"/> - <pt x="308" y="1074" on="0"/> - <pt x="308" y="748" on="1"/> - <pt x="308" y="442" on="0"/> - <pt x="403" y="256" on="1"/> - <pt x="518" y="31" on="0"/> - <pt x="740" y="31" on="1"/> - <pt x="941" y="31" on="0"/> - <pt x="1056" y="220" on="1"/> - <pt x="1170" y="409" on="0"/> - <pt x="1170" y="740" on="1"/> - <pt x="1170" y="1073" on="0"/> - <pt x="1056" y="1261" on="1"/> - <pt x="940" y="1450" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 47 values pushed */ - 0 0 32 17 6 24 17 14 48 84 14 0 6 2 1 1 22 0 2 2 0 0 1 4 1 - 0 3 13 2 0 14 0 0 36 34 18 28 34 10 48 196 22 18 10 4 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="R" xMin="31" yMin="0" xMax="1354" yMax="1492"> - <contour> - <pt x="387" y="1480" on="1"/> - <pt x="485" y="1482" on="1"/> - <pt x="567" y="1485" on="1"/> - <pt x="647" y="1487" on="1"/> - <pt x="827" y="1492" on="0"/> - <pt x="948" y="1423" on="1"/> - <pt x="1106" y="1332" on="0"/> - <pt x="1106" y="1112" on="1"/> - <pt x="1106" y="924" on="0"/> - <pt x="993" y="811" on="1"/> - <pt x="926" y="745" on="0"/> - <pt x="800" y="697" on="1"/> - <pt x="1090" y="261" on="1"/> - <pt x="1183" y="132" on="1"/> - <pt x="1226" y="71" on="0"/> - <pt x="1291" y="66" on="1"/> - <pt x="1333" y="63" on="1"/> - <pt x="1354" y="62" on="1"/> - <pt x="1354" y="0" on="1"/> - <pt x="1001" y="0" on="1"/> - <pt x="597" y="651" on="1"/> - <pt x="426" y="651" on="1"/> - <pt x="426" y="259" on="1"/> - <pt x="431" y="160" on="1"/> - <pt x="433" y="90" on="0"/> - <pt x="459" y="79" on="1"/> - <pt x="485" y="69" on="0"/> - <pt x="568" y="63" on="1"/> - <pt x="586" y="62" on="1"/> - <pt x="586" y="0" on="1"/> - <pt x="31" y="0" on="1"/> - <pt x="31" y="62" on="1"/> - <pt x="50" y="63" on="1"/> - <pt x="117" y="68" on="1"/> - <pt x="193" y="74" on="0"/> - <pt x="203" y="115" on="1"/> - <pt x="216" y="177" on="0"/> - <pt x="216" y="259" on="1"/> - <pt x="216" y="1221" on="1"/> - <pt x="216" y="1280" on="0"/> - <pt x="209" y="1333" on="1"/> - <pt x="203" y="1372" on="0"/> - <pt x="195" y="1384" on="1"/> - <pt x="177" y="1410" on="0"/> - <pt x="117" y="1413" on="1"/> - <pt x="50" y="1417" on="1"/> - <pt x="31" y="1419" on="1"/> - <pt x="31" y="1480" on="1"/> - </contour> - <contour> - <pt x="426" y="719" on="1"/> - <pt x="500" y="719" on="1"/> - <pt x="890" y="719" on="0"/> - <pt x="890" y="1094" on="1"/> - <pt x="890" y="1266" on="0"/> - <pt x="817" y="1340" on="1"/> - <pt x="744" y="1413" on="0"/> - <pt x="568" y="1413" on="1"/> - <pt x="426" y="1413" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 82 values pushed */ - 38 47 37 30 49 48 11 3 55 20 3 28 22 17 12 4 20 18 3 56 55 1 21 20 1 - 30 29 19 18 3 3 0 47 0 0 14 0 0 51 10 7 48 196 47 38 30 37 0 21 37 - 2 55 49 29 28 20 19 18 17 12 11 10 13 7 21 0 0 56 48 22 21 32 3 37 1 - 4 48 196 38 37 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Racute" xMin="31" yMin="0" xMax="1354" yMax="1925"> - <contour> - <pt x="387" y="1480" on="1"/> - <pt x="485" y="1482" on="1"/> - <pt x="567" y="1485" on="1"/> - <pt x="647" y="1487" on="1"/> - <pt x="827" y="1492" on="0"/> - <pt x="948" y="1423" on="1"/> - <pt x="1106" y="1332" on="0"/> - <pt x="1106" y="1112" on="1"/> - <pt x="1106" y="924" on="0"/> - <pt x="993" y="811" on="1"/> - <pt x="926" y="745" on="0"/> - <pt x="800" y="697" on="1"/> - <pt x="1090" y="261" on="1"/> - <pt x="1183" y="132" on="1"/> - <pt x="1226" y="71" on="0"/> - <pt x="1291" y="66" on="1"/> - <pt x="1333" y="63" on="1"/> - <pt x="1354" y="62" on="1"/> - <pt x="1354" y="0" on="1"/> - <pt x="1001" y="0" on="1"/> - <pt x="597" y="651" on="1"/> - <pt x="426" y="651" on="1"/> - <pt x="426" y="259" on="1"/> - <pt x="431" y="160" on="1"/> - <pt x="433" y="90" on="0"/> - <pt x="459" y="79" on="1"/> - <pt x="485" y="69" on="0"/> - <pt x="568" y="63" on="1"/> - <pt x="586" y="62" on="1"/> - <pt x="586" y="0" on="1"/> - <pt x="31" y="0" on="1"/> - <pt x="31" y="62" on="1"/> - <pt x="50" y="63" on="1"/> - <pt x="117" y="68" on="1"/> - <pt x="193" y="74" on="0"/> - <pt x="203" y="115" on="1"/> - <pt x="216" y="177" on="0"/> - <pt x="216" y="259" on="1"/> - <pt x="216" y="1221" on="1"/> - <pt x="216" y="1280" on="0"/> - <pt x="209" y="1333" on="1"/> - <pt x="203" y="1372" on="0"/> - <pt x="195" y="1384" on="1"/> - <pt x="177" y="1410" on="0"/> - <pt x="117" y="1413" on="1"/> - <pt x="50" y="1417" on="1"/> - <pt x="31" y="1419" on="1"/> - <pt x="31" y="1480" on="1"/> - </contour> - <contour> - <pt x="426" y="719" on="1"/> - <pt x="500" y="719" on="1"/> - <pt x="890" y="719" on="0"/> - <pt x="890" y="1094" on="1"/> - <pt x="890" y="1266" on="0"/> - <pt x="817" y="1340" on="1"/> - <pt x="744" y="1413" on="0"/> - <pt x="568" y="1413" on="1"/> - <pt x="426" y="1413" on="1"/> - </contour> - <contour> - <pt x="463" y="1604" on="1"/> - <pt x="704" y="1925" on="1"/> - <pt x="963" y="1925" on="1"/> - <pt x="556" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 95 values pushed */ - 38 47 37 30 60 57 2 58 0 3 49 48 11 3 55 20 3 28 22 17 12 4 20 18 3 - 59 58 1 56 55 1 21 20 1 30 29 19 18 3 4 0 47 0 0 14 0 0 51 10 7 - 48 196 47 38 30 37 0 21 37 2 60 59 58 57 55 49 29 28 20 19 18 17 12 11 14 - 13 7 21 0 0 56 48 22 21 32 3 37 1 4 48 196 38 37 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Rcaron" xMin="31" yMin="0" xMax="1354" yMax="1925"> - <contour> - <pt x="387" y="1480" on="1"/> - <pt x="485" y="1482" on="1"/> - <pt x="567" y="1485" on="1"/> - <pt x="647" y="1487" on="1"/> - <pt x="827" y="1492" on="0"/> - <pt x="948" y="1423" on="1"/> - <pt x="1106" y="1332" on="0"/> - <pt x="1106" y="1112" on="1"/> - <pt x="1106" y="924" on="0"/> - <pt x="993" y="811" on="1"/> - <pt x="926" y="745" on="0"/> - <pt x="800" y="697" on="1"/> - <pt x="1090" y="261" on="1"/> - <pt x="1183" y="132" on="1"/> - <pt x="1226" y="71" on="0"/> - <pt x="1291" y="66" on="1"/> - <pt x="1333" y="63" on="1"/> - <pt x="1354" y="62" on="1"/> - <pt x="1354" y="0" on="1"/> - <pt x="1001" y="0" on="1"/> - <pt x="597" y="651" on="1"/> - <pt x="426" y="651" on="1"/> - <pt x="426" y="259" on="1"/> - <pt x="431" y="160" on="1"/> - <pt x="433" y="90" on="0"/> - <pt x="459" y="79" on="1"/> - <pt x="485" y="69" on="0"/> - <pt x="568" y="63" on="1"/> - <pt x="586" y="62" on="1"/> - <pt x="586" y="0" on="1"/> - <pt x="31" y="0" on="1"/> - <pt x="31" y="62" on="1"/> - <pt x="50" y="63" on="1"/> - <pt x="117" y="68" on="1"/> - <pt x="193" y="74" on="0"/> - <pt x="203" y="115" on="1"/> - <pt x="216" y="177" on="0"/> - <pt x="216" y="259" on="1"/> - <pt x="216" y="1221" on="1"/> - <pt x="216" y="1280" on="0"/> - <pt x="209" y="1333" on="1"/> - <pt x="203" y="1372" on="0"/> - <pt x="195" y="1384" on="1"/> - <pt x="177" y="1410" on="0"/> - <pt x="117" y="1413" on="1"/> - <pt x="50" y="1417" on="1"/> - <pt x="31" y="1419" on="1"/> - <pt x="31" y="1480" on="1"/> - </contour> - <contour> - <pt x="426" y="719" on="1"/> - <pt x="500" y="719" on="1"/> - <pt x="890" y="719" on="0"/> - <pt x="890" y="1094" on="1"/> - <pt x="890" y="1266" on="0"/> - <pt x="817" y="1340" on="1"/> - <pt x="744" y="1413" on="0"/> - <pt x="568" y="1413" on="1"/> - <pt x="426" y="1413" on="1"/> - </contour> - <contour> - <pt x="938" y="1925" on="1"/> - <pt x="698" y="1604" on="1"/> - <pt x="476" y="1604" on="1"/> - <pt x="235" y="1925" on="1"/> - <pt x="321" y="1925" on="1"/> - <pt x="587" y="1703" on="1"/> - <pt x="852" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 101 values pushed */ - 38 47 37 30 49 48 11 3 55 20 3 28 22 17 12 4 20 18 3 63 62 61 60 57 5 - 13 58 59 58 1 56 55 1 21 20 1 30 29 19 18 3 4 0 47 0 0 14 0 0 51 - 10 7 48 196 47 38 30 37 61 60 0 3 21 37 3 63 62 59 58 57 55 49 29 28 20 - 19 18 17 12 11 15 13 7 21 0 0 56 48 22 21 32 3 37 1 4 48 196 38 37 1 - 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Rcommaaccent" xMin="31" yMin="-432" xMax="1354" yMax="1491"> - <contour> - <pt x="387" y="1480" on="1"/> - <pt x="485" y="1482" on="1"/> - <pt x="567" y="1485" on="1"/> - <pt x="647" y="1487" on="1"/> - <pt x="828" y="1491" on="0"/> - <pt x="948" y="1423" on="1"/> - <pt x="1106" y="1332" on="0"/> - <pt x="1106" y="1112" on="1"/> - <pt x="1106" y="924" on="0"/> - <pt x="993" y="811" on="1"/> - <pt x="926" y="745" on="0"/> - <pt x="800" y="697" on="1"/> - <pt x="1090" y="261" on="1"/> - <pt x="1183" y="132" on="1"/> - <pt x="1226" y="71" on="0"/> - <pt x="1291" y="66" on="1"/> - <pt x="1333" y="63" on="1"/> - <pt x="1354" y="62" on="1"/> - <pt x="1354" y="0" on="1"/> - <pt x="1001" y="0" on="1"/> - <pt x="597" y="651" on="1"/> - <pt x="426" y="651" on="1"/> - <pt x="426" y="259" on="1"/> - <pt x="431" y="160" on="1"/> - <pt x="433" y="90" on="0"/> - <pt x="459" y="79" on="1"/> - <pt x="485" y="69" on="0"/> - <pt x="568" y="63" on="1"/> - <pt x="586" y="62" on="1"/> - <pt x="586" y="0" on="1"/> - <pt x="31" y="0" on="1"/> - <pt x="31" y="62" on="1"/> - <pt x="50" y="63" on="1"/> - <pt x="117" y="68" on="1"/> - <pt x="193" y="74" on="0"/> - <pt x="203" y="115" on="1"/> - <pt x="216" y="177" on="0"/> - <pt x="216" y="259" on="1"/> - <pt x="216" y="1221" on="1"/> - <pt x="216" y="1280" on="0"/> - <pt x="209" y="1333" on="1"/> - <pt x="203" y="1372" on="0"/> - <pt x="195" y="1384" on="1"/> - <pt x="177" y="1410" on="0"/> - <pt x="117" y="1413" on="1"/> - <pt x="50" y="1417" on="1"/> - <pt x="31" y="1419" on="1"/> - <pt x="31" y="1480" on="1"/> - </contour> - <contour> - <pt x="426" y="719" on="1"/> - <pt x="500" y="719" on="1"/> - <pt x="890" y="719" on="0"/> - <pt x="890" y="1094" on="1"/> - <pt x="890" y="1266" on="0"/> - <pt x="817" y="1340" on="1"/> - <pt x="744" y="1413" on="0"/> - <pt x="568" y="1413" on="1"/> - <pt x="426" y="1413" on="1"/> - </contour> - <contour> - <pt x="574" y="-421" on="1"/> - <pt x="574" y="-349" on="1"/> - <pt x="623" y="-359" on="0"/> - <pt x="678" y="-359" on="1"/> - <pt x="781" y="-359" on="0"/> - <pt x="781" y="-279" on="1"/> - <pt x="781" y="-190" on="0"/> - <pt x="623" y="-175" on="1"/> - <pt x="623" y="-111" on="1"/> - <pt x="757" y="-114" on="0"/> - <pt x="823" y="-143" on="1"/> - <pt x="916" y="-185" on="0"/> - <pt x="916" y="-280" on="1"/> - <pt x="916" y="-432" on="0"/> - <pt x="699" y="-432" on="1"/> - <pt x="640" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 105 values pushed */ - 0 0 60 17 71 48 84 38 47 37 30 49 48 11 3 55 20 3 28 22 17 12 4 20 18 - 3 65 64 58 57 4 13 71 18 56 55 1 21 20 1 30 29 19 18 3 3 0 47 0 0 - 14 0 0 62 48 69 51 10 7 48 196 47 38 30 37 0 21 37 2 65 64 58 57 55 49 - 29 28 20 19 18 17 12 11 14 13 69 7 21 0 0 56 48 22 21 32 3 37 1 4 48 - 196 38 37 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="S" xMin="119" yMin="-37" xMax="1045" yMax="1517"> - <contour> - <pt x="119" y="30" on="1"/> - <pt x="119" y="315" on="1"/> - <pt x="224" y="315" on="1"/> - <pt x="225" y="297" on="1"/> - <pt x="227" y="257" on="0"/> - <pt x="228" y="228" on="1"/> - <pt x="228" y="222" on="1"/> - <pt x="228" y="147" on="0"/> - <pt x="297" y="99" on="1"/> - <pt x="386" y="37" on="0"/> - <pt x="542" y="37" on="1"/> - <pt x="835" y="37" on="0"/> - <pt x="835" y="319" on="1"/> - <pt x="835" y="437" on="0"/> - <pt x="790" y="498" on="1"/> - <pt x="746" y="558" on="0"/> - <pt x="602" y="636" on="1"/> - <pt x="470" y="707" on="1"/> - <pt x="130" y="890" on="0"/> - <pt x="130" y="1129" on="1"/> - <pt x="130" y="1298" on="0"/> - <pt x="255" y="1408" on="1"/> - <pt x="379" y="1517" on="0"/> - <pt x="581" y="1517" on="1"/> - <pt x="741" y="1517" on="0"/> - <pt x="962" y="1454" on="1"/> - <pt x="962" y="1191" on="1"/> - <pt x="851" y="1191" on="1"/> - <pt x="850" y="1208" on="1"/> - <pt x="847" y="1248" on="0"/> - <pt x="846" y="1281" on="1"/> - <pt x="846" y="1287" on="1"/> - <pt x="846" y="1364" on="0"/> - <pt x="797" y="1403" on="1"/> - <pt x="739" y="1450" on="0"/> - <pt x="596" y="1450" on="1"/> - <pt x="332" y="1450" on="0"/> - <pt x="332" y="1196" on="1"/> - <pt x="332" y="1093" on="0"/> - <pt x="376" y="1033" on="1"/> - <pt x="419" y="973" on="0"/> - <pt x="544" y="906" on="1"/> - <pt x="676" y="835" on="1"/> - <pt x="891" y="719" on="0"/> - <pt x="968" y="626" on="1"/> - <pt x="1045" y="534" on="0"/> - <pt x="1045" y="392" on="1"/> - <pt x="1045" y="206" on="0"/> - <pt x="906" y="84" on="1"/> - <pt x="768" y="-37" on="0"/> - <pt x="536" y="-37" on="1"/> - <pt x="304" y="-37" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 65 values pushed */ - 0 0 35 17 23 10 21 50 48 84 50 2 23 0 1 1 31 30 27 26 25 6 5 2 1 - 0 10 0 2 3 0 0 14 0 0 37 5 19 12 10 46 48 196 19 31 30 27 19 6 5 - 2 7 25 0 3 46 25 26 25 1 1 0 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Sacute" xMin="119" yMin="-37" xMax="1045" yMax="1925"> - <contour> - <pt x="119" y="30" on="1"/> - <pt x="119" y="315" on="1"/> - <pt x="224" y="315" on="1"/> - <pt x="225" y="297" on="1"/> - <pt x="227" y="257" on="0"/> - <pt x="228" y="228" on="1"/> - <pt x="228" y="222" on="1"/> - <pt x="228" y="147" on="0"/> - <pt x="297" y="99" on="1"/> - <pt x="386" y="37" on="0"/> - <pt x="542" y="37" on="1"/> - <pt x="835" y="37" on="0"/> - <pt x="835" y="319" on="1"/> - <pt x="835" y="437" on="0"/> - <pt x="790" y="498" on="1"/> - <pt x="746" y="558" on="0"/> - <pt x="602" y="636" on="1"/> - <pt x="470" y="707" on="1"/> - <pt x="130" y="890" on="0"/> - <pt x="130" y="1129" on="1"/> - <pt x="130" y="1298" on="0"/> - <pt x="255" y="1408" on="1"/> - <pt x="379" y="1517" on="0"/> - <pt x="581" y="1517" on="1"/> - <pt x="741" y="1517" on="0"/> - <pt x="962" y="1454" on="1"/> - <pt x="962" y="1191" on="1"/> - <pt x="851" y="1191" on="1"/> - <pt x="850" y="1208" on="1"/> - <pt x="847" y="1248" on="0"/> - <pt x="846" y="1281" on="1"/> - <pt x="846" y="1287" on="1"/> - <pt x="846" y="1364" on="0"/> - <pt x="797" y="1403" on="1"/> - <pt x="739" y="1450" on="0"/> - <pt x="596" y="1450" on="1"/> - <pt x="332" y="1450" on="0"/> - <pt x="332" y="1196" on="1"/> - <pt x="332" y="1093" on="0"/> - <pt x="376" y="1033" on="1"/> - <pt x="419" y="973" on="0"/> - <pt x="544" y="906" on="1"/> - <pt x="676" y="835" on="1"/> - <pt x="891" y="719" on="0"/> - <pt x="968" y="626" on="1"/> - <pt x="1045" y="534" on="0"/> - <pt x="1045" y="392" on="1"/> - <pt x="1045" y="206" on="0"/> - <pt x="906" y="84" on="1"/> - <pt x="768" y="-37" on="0"/> - <pt x="536" y="-37" on="1"/> - <pt x="304" y="-37" on="0"/> - </contour> - <contour> - <pt x="482" y="1604" on="1"/> - <pt x="723" y="1925" on="1"/> - <pt x="982" y="1925" on="1"/> - <pt x="575" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 81 values pushed */ - 0 0 35 17 23 10 21 50 48 84 50 2 23 0 1 55 52 2 53 0 3 0 1 1 31 - 30 27 26 25 6 5 2 1 0 10 0 2 3 0 0 54 53 1 0 14 0 0 37 5 19 - 12 10 46 48 196 19 55 53 52 31 30 27 19 6 5 2 10 25 0 3 54 46 25 26 25 - 1 1 0 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Scaron" xMin="119" yMin="-37" xMax="1045" yMax="1925"> - <contour> - <pt x="119" y="30" on="1"/> - <pt x="119" y="315" on="1"/> - <pt x="224" y="315" on="1"/> - <pt x="225" y="297" on="1"/> - <pt x="227" y="257" on="0"/> - <pt x="228" y="228" on="1"/> - <pt x="228" y="222" on="1"/> - <pt x="228" y="147" on="0"/> - <pt x="297" y="99" on="1"/> - <pt x="386" y="37" on="0"/> - <pt x="542" y="37" on="1"/> - <pt x="835" y="37" on="0"/> - <pt x="835" y="319" on="1"/> - <pt x="835" y="437" on="0"/> - <pt x="790" y="498" on="1"/> - <pt x="746" y="558" on="0"/> - <pt x="602" y="636" on="1"/> - <pt x="470" y="707" on="1"/> - <pt x="130" y="890" on="0"/> - <pt x="130" y="1129" on="1"/> - <pt x="130" y="1298" on="0"/> - <pt x="255" y="1408" on="1"/> - <pt x="379" y="1517" on="0"/> - <pt x="581" y="1517" on="1"/> - <pt x="741" y="1517" on="0"/> - <pt x="962" y="1454" on="1"/> - <pt x="962" y="1191" on="1"/> - <pt x="851" y="1191" on="1"/> - <pt x="850" y="1208" on="1"/> - <pt x="847" y="1248" on="0"/> - <pt x="846" y="1281" on="1"/> - <pt x="846" y="1287" on="1"/> - <pt x="846" y="1364" on="0"/> - <pt x="797" y="1403" on="1"/> - <pt x="739" y="1450" on="0"/> - <pt x="596" y="1450" on="1"/> - <pt x="332" y="1450" on="0"/> - <pt x="332" y="1196" on="1"/> - <pt x="332" y="1093" on="0"/> - <pt x="376" y="1033" on="1"/> - <pt x="419" y="973" on="0"/> - <pt x="544" y="906" on="1"/> - <pt x="676" y="835" on="1"/> - <pt x="891" y="719" on="0"/> - <pt x="968" y="626" on="1"/> - <pt x="1045" y="534" on="0"/> - <pt x="1045" y="392" on="1"/> - <pt x="1045" y="206" on="0"/> - <pt x="906" y="84" on="1"/> - <pt x="768" y="-37" on="0"/> - <pt x="536" y="-37" on="1"/> - <pt x="304" y="-37" on="0"/> - </contour> - <contour> - <pt x="926" y="1925" on="1"/> - <pt x="686" y="1604" on="1"/> - <pt x="464" y="1604" on="1"/> - <pt x="223" y="1925" on="1"/> - <pt x="309" y="1925" on="1"/> - <pt x="575" y="1703" on="1"/> - <pt x="840" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 84 values pushed */ - 0 0 35 17 23 10 21 50 48 84 50 2 23 0 1 1 31 30 27 26 25 6 5 2 1 - 0 10 0 2 3 0 0 58 57 56 55 52 5 13 53 54 53 1 0 14 0 0 37 5 19 - 12 10 46 48 196 19 58 57 56 55 54 53 52 31 30 27 19 6 5 2 14 25 0 3 46 - 25 26 25 1 1 0 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Scedilla" xMin="119" yMin="-432" xMax="1045" yMax="1517"> - <contour> - <pt x="119" y="30" on="1"/> - <pt x="119" y="315" on="1"/> - <pt x="224" y="315" on="1"/> - <pt x="225" y="297" on="1"/> - <pt x="227" y="257" on="0"/> - <pt x="228" y="228" on="1"/> - <pt x="228" y="222" on="1"/> - <pt x="228" y="147" on="0"/> - <pt x="297" y="99" on="1"/> - <pt x="386" y="37" on="0"/> - <pt x="542" y="37" on="1"/> - <pt x="835" y="37" on="0"/> - <pt x="835" y="319" on="1"/> - <pt x="835" y="437" on="0"/> - <pt x="790" y="498" on="1"/> - <pt x="746" y="558" on="0"/> - <pt x="602" y="636" on="1"/> - <pt x="470" y="707" on="1"/> - <pt x="130" y="890" on="0"/> - <pt x="130" y="1129" on="1"/> - <pt x="130" y="1299" on="0"/> - <pt x="255" y="1408" on="1"/> - <pt x="379" y="1517" on="0"/> - <pt x="581" y="1517" on="1"/> - <pt x="741" y="1517" on="0"/> - <pt x="962" y="1454" on="1"/> - <pt x="962" y="1191" on="1"/> - <pt x="851" y="1191" on="1"/> - <pt x="850" y="1208" on="1"/> - <pt x="847" y="1248" on="0"/> - <pt x="846" y="1281" on="1"/> - <pt x="846" y="1287" on="1"/> - <pt x="846" y="1364" on="0"/> - <pt x="797" y="1403" on="1"/> - <pt x="739" y="1450" on="0"/> - <pt x="596" y="1450" on="1"/> - <pt x="332" y="1450" on="0"/> - <pt x="332" y="1196" on="1"/> - <pt x="332" y="1093" on="0"/> - <pt x="376" y="1033" on="1"/> - <pt x="419" y="973" on="0"/> - <pt x="544" y="906" on="1"/> - <pt x="676" y="835" on="1"/> - <pt x="891" y="719" on="0"/> - <pt x="968" y="626" on="1"/> - <pt x="1045" y="534" on="0"/> - <pt x="1045" y="392" on="1"/> - <pt x="1045" y="206" on="0"/> - <pt x="906" y="84" on="1"/> - <pt x="768" y="-37" on="0"/> - <pt x="536" y="-37" on="1"/> - <pt x="304" y="-37" on="0"/> - </contour> - <contour> - <pt x="402" y="-411" on="1"/> - <pt x="402" y="-343" on="1"/> - <pt x="464" y="-359" on="0"/> - <pt x="503" y="-359" on="1"/> - <pt x="610" y="-359" on="0"/> - <pt x="610" y="-277" on="1"/> - <pt x="610" y="-179" on="0"/> - <pt x="423" y="-175" on="1"/> - <pt x="518" y="0" on="1"/> - <pt x="597" y="0" on="1"/> - <pt x="531" y="-119" on="1"/> - <pt x="748" y="-138" on="0"/> - <pt x="748" y="-266" on="1"/> - <pt x="748" y="-336" on="0"/> - <pt x="690" y="-384" on="1"/> - <pt x="633" y="-432" on="0"/> - <pt x="546" y="-432" on="1"/> - <pt x="478" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 91 values pushed */ - 0 0 55 17 68 35 17 23 10 21 50 48 84 50 2 23 0 1 1 31 30 27 26 25 6 - 5 2 1 0 10 0 2 3 0 0 1 62 61 60 59 53 52 6 13 68 2 0 14 0 0 - 57 48 64 37 5 19 12 10 46 48 196 64 19 64 62 61 60 59 53 52 31 30 27 19 6 - 5 2 14 25 0 3 46 25 26 25 1 1 0 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Scircumflex" xMin="119" yMin="-37" xMax="1045" yMax="1925"> - <contour> - <pt x="119" y="30" on="1"/> - <pt x="119" y="315" on="1"/> - <pt x="224" y="315" on="1"/> - <pt x="225" y="297" on="1"/> - <pt x="227" y="257" on="0"/> - <pt x="228" y="228" on="1"/> - <pt x="228" y="222" on="1"/> - <pt x="228" y="147" on="0"/> - <pt x="297" y="99" on="1"/> - <pt x="386" y="37" on="0"/> - <pt x="542" y="37" on="1"/> - <pt x="835" y="37" on="0"/> - <pt x="835" y="319" on="1"/> - <pt x="835" y="437" on="0"/> - <pt x="790" y="498" on="1"/> - <pt x="746" y="558" on="0"/> - <pt x="602" y="636" on="1"/> - <pt x="470" y="707" on="1"/> - <pt x="130" y="890" on="0"/> - <pt x="130" y="1129" on="1"/> - <pt x="130" y="1298" on="0"/> - <pt x="255" y="1408" on="1"/> - <pt x="379" y="1517" on="0"/> - <pt x="581" y="1517" on="1"/> - <pt x="741" y="1517" on="0"/> - <pt x="962" y="1454" on="1"/> - <pt x="962" y="1191" on="1"/> - <pt x="851" y="1191" on="1"/> - <pt x="850" y="1208" on="1"/> - <pt x="847" y="1248" on="0"/> - <pt x="846" y="1281" on="1"/> - <pt x="846" y="1287" on="1"/> - <pt x="846" y="1364" on="0"/> - <pt x="797" y="1403" on="1"/> - <pt x="739" y="1450" on="0"/> - <pt x="596" y="1450" on="1"/> - <pt x="332" y="1450" on="0"/> - <pt x="332" y="1196" on="1"/> - <pt x="332" y="1093" on="0"/> - <pt x="376" y="1033" on="1"/> - <pt x="419" y="973" on="0"/> - <pt x="544" y="906" on="1"/> - <pt x="676" y="835" on="1"/> - <pt x="891" y="719" on="0"/> - <pt x="968" y="626" on="1"/> - <pt x="1045" y="534" on="0"/> - <pt x="1045" y="392" on="1"/> - <pt x="1045" y="206" on="0"/> - <pt x="906" y="84" on="1"/> - <pt x="768" y="-37" on="0"/> - <pt x="536" y="-37" on="1"/> - <pt x="304" y="-37" on="0"/> - </contour> - <contour> - <pt x="223" y="1604" on="1"/> - <pt x="464" y="1925" on="1"/> - <pt x="686" y="1925" on="1"/> - <pt x="926" y="1604" on="1"/> - <pt x="840" y="1604" on="1"/> - <pt x="575" y="1826" on="1"/> - <pt x="309" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 87 values pushed */ - 0 0 35 17 23 10 21 50 48 84 50 2 23 0 1 58 57 56 55 52 5 53 0 3 0 - 1 1 31 30 27 26 25 6 5 2 1 0 10 0 2 3 0 0 54 53 1 0 14 0 0 - 37 5 19 12 10 46 48 196 19 58 57 56 55 54 53 52 31 30 27 19 6 5 2 14 25 - 0 3 46 25 26 25 1 1 0 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Scommaaccent" xMin="119" yMin="-432" xMax="1045" yMax="1517"> - <contour> - <pt x="119" y="30" on="1"/> - <pt x="119" y="315" on="1"/> - <pt x="224" y="315" on="1"/> - <pt x="225" y="297" on="1"/> - <pt x="227" y="257" on="0"/> - <pt x="228" y="228" on="1"/> - <pt x="228" y="222" on="1"/> - <pt x="228" y="147" on="0"/> - <pt x="297" y="99" on="1"/> - <pt x="386" y="37" on="0"/> - <pt x="542" y="37" on="1"/> - <pt x="835" y="37" on="0"/> - <pt x="835" y="319" on="1"/> - <pt x="835" y="437" on="0"/> - <pt x="790" y="498" on="1"/> - <pt x="746" y="558" on="0"/> - <pt x="602" y="636" on="1"/> - <pt x="470" y="707" on="1"/> - <pt x="130" y="890" on="0"/> - <pt x="130" y="1129" on="1"/> - <pt x="130" y="1299" on="0"/> - <pt x="255" y="1408" on="1"/> - <pt x="379" y="1517" on="0"/> - <pt x="581" y="1517" on="1"/> - <pt x="741" y="1517" on="0"/> - <pt x="962" y="1454" on="1"/> - <pt x="962" y="1191" on="1"/> - <pt x="851" y="1191" on="1"/> - <pt x="850" y="1208" on="1"/> - <pt x="847" y="1248" on="0"/> - <pt x="846" y="1281" on="1"/> - <pt x="846" y="1287" on="1"/> - <pt x="846" y="1364" on="0"/> - <pt x="797" y="1403" on="1"/> - <pt x="739" y="1450" on="0"/> - <pt x="596" y="1450" on="1"/> - <pt x="332" y="1450" on="0"/> - <pt x="332" y="1196" on="1"/> - <pt x="332" y="1093" on="0"/> - <pt x="376" y="1033" on="1"/> - <pt x="419" y="973" on="0"/> - <pt x="544" y="906" on="1"/> - <pt x="676" y="835" on="1"/> - <pt x="891" y="719" on="0"/> - <pt x="968" y="626" on="1"/> - <pt x="1045" y="534" on="0"/> - <pt x="1045" y="392" on="1"/> - <pt x="1045" y="206" on="0"/> - <pt x="906" y="84" on="1"/> - <pt x="768" y="-37" on="0"/> - <pt x="536" y="-37" on="1"/> - <pt x="304" y="-37" on="0"/> - </contour> - <contour> - <pt x="442" y="-421" on="1"/> - <pt x="442" y="-349" on="1"/> - <pt x="491" y="-359" on="0"/> - <pt x="546" y="-359" on="1"/> - <pt x="649" y="-359" on="0"/> - <pt x="649" y="-279" on="1"/> - <pt x="649" y="-190" on="0"/> - <pt x="491" y="-175" on="1"/> - <pt x="491" y="-111" on="1"/> - <pt x="625" y="-114" on="0"/> - <pt x="691" y="-143" on="1"/> - <pt x="784" y="-185" on="0"/> - <pt x="784" y="-280" on="1"/> - <pt x="784" y="-432" on="0"/> - <pt x="567" y="-432" on="1"/> - <pt x="507" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 87 values pushed */ - 0 0 55 17 66 35 17 23 10 21 50 48 84 50 2 23 0 1 1 31 30 27 26 25 6 - 5 2 1 0 10 0 2 3 0 0 1 60 59 53 52 4 13 66 2 0 14 0 0 57 48 - 64 37 5 19 12 10 46 48 196 64 19 64 60 59 53 52 31 30 27 19 6 5 2 12 25 - 0 3 46 25 26 25 1 1 0 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="T" xMin="31" yMin="0" xMax="1221" yMax="1480"> - <contour> - <pt x="521" y="1400" on="1"/> - <pt x="325" y="1400" on="1"/> - <pt x="222" y="1395" on="1"/> - <pt x="158" y="1394" on="0"/> - <pt x="148" y="1371" on="1"/> - <pt x="140" y="1352" on="0"/> - <pt x="140" y="1301" on="1"/> - <pt x="140" y="1287" on="1"/> - <pt x="139" y="1270" on="1"/> - <pt x="139" y="1236" on="0"/> - <pt x="138" y="1230" on="1"/> - <pt x="136" y="1209" on="1"/> - <pt x="31" y="1209" on="1"/> - <pt x="31" y="1480" on="1"/> - <pt x="1221" y="1480" on="1"/> - <pt x="1221" y="1209" on="1"/> - <pt x="1116" y="1209" on="1"/> - <pt x="1115" y="1230" on="1"/> - <pt x="1114" y="1253" on="0"/> - <pt x="1113" y="1287" on="1"/> - <pt x="1113" y="1303" on="1"/> - <pt x="1114" y="1366" on="0"/> - <pt x="1098" y="1381" on="1"/> - <pt x="1083" y="1395" on="0"/> - <pt x="1031" y="1395" on="1"/> - <pt x="928" y="1400" on="1"/> - <pt x="731" y="1400" on="1"/> - <pt x="731" y="259" on="1"/> - <pt x="731" y="203" on="0"/> - <pt x="739" y="147" on="1"/> - <pt x="746" y="96" on="0"/> - <pt x="771" y="82" on="1"/> - <pt x="792" y="71" on="0"/> - <pt x="830" y="68" on="1"/> - <pt x="898" y="63" on="1"/> - <pt x="941" y="62" on="1"/> - <pt x="941" y="0" on="1"/> - <pt x="312" y="0" on="1"/> - <pt x="312" y="62" on="1"/> - <pt x="355" y="63" on="1"/> - <pt x="423" y="68" on="1"/> - <pt x="498" y="74" on="0"/> - <pt x="508" y="115" on="1"/> - <pt x="521" y="177" on="0"/> - <pt x="521" y="259" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 81 values pushed */ - 44 37 27 36 24 20 19 16 15 12 11 7 6 9 0 36 3 0 0 26 25 1 0 21 3 - 13 1 4 48 84 37 36 1 0 14 13 0 14 37 44 36 27 25 24 20 19 16 5 14 26 - 3 11 7 6 1 4 0 12 3 0 0 27 26 32 1 0 1 4 48 196 15 14 1 44 0 - 1 13 12 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Tbar" xMin="31" yMin="0" xMax="1221" yMax="1480"> - <contour> - <pt x="521" y="715" on="1"/> - <pt x="218" y="715" on="1"/> - <pt x="218" y="789" on="1"/> - <pt x="521" y="789" on="1"/> - <pt x="521" y="1400" on="1"/> - <pt x="325" y="1400" on="1"/> - <pt x="222" y="1395" on="1"/> - <pt x="158" y="1394" on="0"/> - <pt x="148" y="1371" on="1"/> - <pt x="140" y="1352" on="0"/> - <pt x="140" y="1301" on="1"/> - <pt x="140" y="1287" on="1"/> - <pt x="139" y="1270" on="1"/> - <pt x="139" y="1236" on="0"/> - <pt x="138" y="1230" on="1"/> - <pt x="136" y="1209" on="1"/> - <pt x="31" y="1209" on="1"/> - <pt x="31" y="1480" on="1"/> - <pt x="1221" y="1480" on="1"/> - <pt x="1221" y="1209" on="1"/> - <pt x="1116" y="1209" on="1"/> - <pt x="1115" y="1230" on="1"/> - <pt x="1114" y="1253" on="0"/> - <pt x="1113" y="1287" on="1"/> - <pt x="1113" y="1303" on="1"/> - <pt x="1114" y="1366" on="0"/> - <pt x="1098" y="1381" on="1"/> - <pt x="1083" y="1395" on="0"/> - <pt x="1031" y="1395" on="1"/> - <pt x="928" y="1400" on="1"/> - <pt x="731" y="1400" on="1"/> - <pt x="731" y="789" on="1"/> - <pt x="1034" y="789" on="1"/> - <pt x="1034" y="715" on="1"/> - <pt x="731" y="715" on="1"/> - <pt x="731" y="259" on="1"/> - <pt x="731" y="203" on="0"/> - <pt x="739" y="147" on="1"/> - <pt x="746" y="96" on="0"/> - <pt x="771" y="82" on="1"/> - <pt x="792" y="71" on="0"/> - <pt x="830" y="68" on="1"/> - <pt x="898" y="63" on="1"/> - <pt x="941" y="62" on="1"/> - <pt x="941" y="0" on="1"/> - <pt x="312" y="0" on="1"/> - <pt x="312" y="62" on="1"/> - <pt x="355" y="63" on="1"/> - <pt x="423" y="68" on="1"/> - <pt x="498" y="74" on="0"/> - <pt x="508" y="115" on="1"/> - <pt x="521" y="177" on="0"/> - <pt x="521" y="259" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 102 values pushed */ - 52 45 35 44 28 24 23 20 19 16 15 11 10 9 4 2 3 0 0 30 29 5 4 21 3 - 17 34 33 1 0 21 3 2 2 4 48 84 32 31 3 2 3 45 44 1 2 0 18 17 0 - 14 45 52 44 35 33 32 29 28 24 23 20 7 18 30 3 15 11 10 5 2 1 6 0 16 - 3 0 0 35 34 31 30 32 3 0 1 4 48 196 19 18 1 52 4 3 0 3 17 16 1 - 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Tcaron" xMin="31" yMin="0" xMax="1221" yMax="1925"> - <contour> - <pt x="521" y="1400" on="1"/> - <pt x="325" y="1400" on="1"/> - <pt x="222" y="1395" on="1"/> - <pt x="158" y="1394" on="0"/> - <pt x="148" y="1371" on="1"/> - <pt x="140" y="1352" on="0"/> - <pt x="140" y="1301" on="1"/> - <pt x="140" y="1287" on="1"/> - <pt x="139" y="1270" on="1"/> - <pt x="139" y="1236" on="0"/> - <pt x="138" y="1230" on="1"/> - <pt x="136" y="1209" on="1"/> - <pt x="31" y="1209" on="1"/> - <pt x="31" y="1480" on="1"/> - <pt x="1221" y="1480" on="1"/> - <pt x="1221" y="1209" on="1"/> - <pt x="1116" y="1209" on="1"/> - <pt x="1115" y="1230" on="1"/> - <pt x="1114" y="1253" on="0"/> - <pt x="1113" y="1287" on="1"/> - <pt x="1113" y="1303" on="1"/> - <pt x="1114" y="1366" on="0"/> - <pt x="1098" y="1381" on="1"/> - <pt x="1083" y="1395" on="0"/> - <pt x="1031" y="1395" on="1"/> - <pt x="928" y="1400" on="1"/> - <pt x="731" y="1400" on="1"/> - <pt x="731" y="259" on="1"/> - <pt x="731" y="203" on="0"/> - <pt x="739" y="147" on="1"/> - <pt x="746" y="96" on="0"/> - <pt x="771" y="82" on="1"/> - <pt x="792" y="71" on="0"/> - <pt x="830" y="68" on="1"/> - <pt x="898" y="63" on="1"/> - <pt x="941" y="62" on="1"/> - <pt x="941" y="0" on="1"/> - <pt x="312" y="0" on="1"/> - <pt x="312" y="62" on="1"/> - <pt x="355" y="63" on="1"/> - <pt x="423" y="68" on="1"/> - <pt x="498" y="74" on="0"/> - <pt x="508" y="115" on="1"/> - <pt x="521" y="177" on="0"/> - <pt x="521" y="259" on="1"/> - </contour> - <contour> - <pt x="978" y="1925" on="1"/> - <pt x="738" y="1604" on="1"/> - <pt x="516" y="1604" on="1"/> - <pt x="275" y="1925" on="1"/> - <pt x="361" y="1925" on="1"/> - <pt x="627" y="1703" on="1"/> - <pt x="892" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 103 values pushed */ - 44 37 27 36 24 20 19 16 15 12 11 7 6 9 0 36 3 51 50 49 48 45 5 13 46 - 0 0 26 25 1 0 21 3 13 1 4 48 84 47 46 1 37 36 1 2 0 14 13 0 14 - 37 44 36 27 51 46 45 25 24 20 19 16 8 14 26 3 50 26 0 2 49 48 47 11 7 - 6 1 7 0 12 3 0 0 27 26 32 1 0 1 4 48 196 15 14 1 44 0 1 13 12 - 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Tcommaaccent" xMin="31" yMin="-432" xMax="1221" yMax="1480"> - <contour> - <pt x="521" y="1400" on="1"/> - <pt x="325" y="1400" on="1"/> - <pt x="222" y="1395" on="1"/> - <pt x="158" y="1394" on="0"/> - <pt x="148" y="1371" on="1"/> - <pt x="140" y="1352" on="0"/> - <pt x="140" y="1301" on="1"/> - <pt x="140" y="1287" on="1"/> - <pt x="139" y="1270" on="1"/> - <pt x="139" y="1236" on="0"/> - <pt x="138" y="1230" on="1"/> - <pt x="136" y="1209" on="1"/> - <pt x="31" y="1209" on="1"/> - <pt x="31" y="1480" on="1"/> - <pt x="1221" y="1480" on="1"/> - <pt x="1221" y="1209" on="1"/> - <pt x="1116" y="1209" on="1"/> - <pt x="1115" y="1230" on="1"/> - <pt x="1114" y="1253" on="0"/> - <pt x="1113" y="1287" on="1"/> - <pt x="1113" y="1303" on="1"/> - <pt x="1114" y="1366" on="0"/> - <pt x="1098" y="1381" on="1"/> - <pt x="1083" y="1395" on="0"/> - <pt x="1031" y="1395" on="1"/> - <pt x="928" y="1400" on="1"/> - <pt x="731" y="1400" on="1"/> - <pt x="731" y="259" on="1"/> - <pt x="731" y="203" on="0"/> - <pt x="739" y="147" on="1"/> - <pt x="744" y="109" on="0"/> - <pt x="753" y="97" on="1"/> - <pt x="772" y="72" on="0"/> - <pt x="830" y="68" on="1"/> - <pt x="898" y="63" on="1"/> - <pt x="941" y="62" on="1"/> - <pt x="941" y="0" on="1"/> - <pt x="312" y="0" on="1"/> - <pt x="312" y="62" on="1"/> - <pt x="355" y="63" on="1"/> - <pt x="423" y="68" on="1"/> - <pt x="498" y="74" on="0"/> - <pt x="508" y="115" on="1"/> - <pt x="521" y="177" on="0"/> - <pt x="521" y="259" on="1"/> - </contour> - <contour> - <pt x="484" y="-411" on="1"/> - <pt x="484" y="-343" on="1"/> - <pt x="546" y="-359" on="0"/> - <pt x="585" y="-359" on="1"/> - <pt x="692" y="-359" on="0"/> - <pt x="692" y="-277" on="1"/> - <pt x="692" y="-179" on="0"/> - <pt x="505" y="-175" on="1"/> - <pt x="600" y="0" on="1"/> - <pt x="679" y="0" on="1"/> - <pt x="613" y="-119" on="1"/> - <pt x="830" y="-138" on="0"/> - <pt x="830" y="-266" on="1"/> - <pt x="830" y="-336" on="0"/> - <pt x="772" y="-384" on="1"/> - <pt x="715" y="-432" on="0"/> - <pt x="628" y="-432" on="1"/> - <pt x="560" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 117 values pushed */ - 0 0 48 17 61 48 84 44 37 27 36 24 20 19 16 15 12 11 7 6 9 0 36 3 55 - 52 46 45 4 13 61 36 0 0 26 25 1 0 21 3 13 1 4 48 84 54 53 37 36 3 - 0 14 13 0 14 0 0 50 48 57 48 196 37 44 36 27 57 57 25 24 20 19 16 6 14 - 26 3 55 54 53 3 26 0 3 52 46 45 11 7 6 1 7 0 12 3 0 0 27 26 32 - 1 0 1 4 48 196 15 14 1 44 0 1 13 12 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MDAP[1] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Tcommabelow" xMin="31" yMin="-432" xMax="1221" yMax="1480"> - <contour> - <pt x="521" y="1400" on="1"/> - <pt x="325" y="1400" on="1"/> - <pt x="222" y="1395" on="1"/> - <pt x="158" y="1394" on="0"/> - <pt x="148" y="1371" on="1"/> - <pt x="140" y="1352" on="0"/> - <pt x="140" y="1301" on="1"/> - <pt x="140" y="1287" on="1"/> - <pt x="139" y="1270" on="1"/> - <pt x="139" y="1236" on="0"/> - <pt x="138" y="1230" on="1"/> - <pt x="136" y="1209" on="1"/> - <pt x="31" y="1209" on="1"/> - <pt x="31" y="1480" on="1"/> - <pt x="1221" y="1480" on="1"/> - <pt x="1221" y="1209" on="1"/> - <pt x="1116" y="1209" on="1"/> - <pt x="1115" y="1230" on="1"/> - <pt x="1114" y="1253" on="0"/> - <pt x="1113" y="1287" on="1"/> - <pt x="1113" y="1303" on="1"/> - <pt x="1114" y="1366" on="0"/> - <pt x="1098" y="1381" on="1"/> - <pt x="1083" y="1395" on="0"/> - <pt x="1031" y="1395" on="1"/> - <pt x="928" y="1400" on="1"/> - <pt x="731" y="1400" on="1"/> - <pt x="731" y="259" on="1"/> - <pt x="731" y="203" on="0"/> - <pt x="739" y="147" on="1"/> - <pt x="744" y="109" on="0"/> - <pt x="753" y="97" on="1"/> - <pt x="772" y="72" on="0"/> - <pt x="830" y="68" on="1"/> - <pt x="898" y="63" on="1"/> - <pt x="941" y="62" on="1"/> - <pt x="941" y="0" on="1"/> - <pt x="312" y="0" on="1"/> - <pt x="312" y="62" on="1"/> - <pt x="355" y="63" on="1"/> - <pt x="423" y="68" on="1"/> - <pt x="498" y="74" on="0"/> - <pt x="508" y="115" on="1"/> - <pt x="521" y="177" on="0"/> - <pt x="521" y="259" on="1"/> - </contour> - <contour> - <pt x="472" y="-421" on="1"/> - <pt x="472" y="-349" on="1"/> - <pt x="521" y="-359" on="0"/> - <pt x="576" y="-359" on="1"/> - <pt x="679" y="-359" on="0"/> - <pt x="679" y="-279" on="1"/> - <pt x="679" y="-190" on="0"/> - <pt x="521" y="-175" on="1"/> - <pt x="521" y="-111" on="1"/> - <pt x="655" y="-114" on="0"/> - <pt x="721" y="-143" on="1"/> - <pt x="814" y="-185" on="0"/> - <pt x="814" y="-280" on="1"/> - <pt x="814" y="-432" on="0"/> - <pt x="597" y="-432" on="1"/> - <pt x="538" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 109 values pushed */ - 0 0 48 38 59 48 84 44 37 27 36 24 20 19 16 15 12 11 7 6 9 0 36 3 53 - 52 46 45 4 13 59 36 0 0 26 25 1 0 42 3 13 1 4 48 84 37 36 1 0 14 - 13 0 14 0 0 50 23 57 48 196 37 44 36 27 57 57 25 24 20 19 16 6 14 26 3 - 46 45 11 7 6 1 6 0 12 3 0 0 27 26 37 1 0 1 4 48 196 15 14 1 53 - 52 44 0 3 13 12 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MDAP[1] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Thorn" xMin="43" yMin="0" xMax="1077" yMax="1480"> - <contour> - <pt x="438" y="1178" on="1"/> - <pt x="543" y="1179" on="1"/> - <pt x="800" y="1181" on="0"/> - <pt x="930" y="1104" on="1"/> - <pt x="1077" y="1016" on="0"/> - <pt x="1077" y="791" on="1"/> - <pt x="1077" y="315" on="0"/> - <pt x="443" y="315" on="1"/> - <pt x="438" y="315" on="1"/> - <pt x="438" y="259" on="1"/> - <pt x="438" y="200" on="0"/> - <pt x="445" y="147" on="1"/> - <pt x="451" y="109" on="0"/> - <pt x="459" y="97" on="1"/> - <pt x="478" y="72" on="0"/> - <pt x="536" y="68" on="1"/> - <pt x="604" y="63" on="1"/> - <pt x="623" y="62" on="1"/> - <pt x="623" y="0" on="1"/> - <pt x="43" y="0" on="1"/> - <pt x="43" y="62" on="1"/> - <pt x="62" y="63" on="1"/> - <pt x="129" y="68" on="1"/> - <pt x="205" y="74" on="0"/> - <pt x="215" y="115" on="1"/> - <pt x="228" y="177" on="0"/> - <pt x="228" y="259" on="1"/> - <pt x="228" y="1221" on="1"/> - <pt x="228" y="1280" on="0"/> - <pt x="221" y="1333" on="1"/> - <pt x="215" y="1372" on="0"/> - <pt x="207" y="1384" on="1"/> - <pt x="189" y="1410" on="0"/> - <pt x="129" y="1413" on="1"/> - <pt x="62" y="1417" on="1"/> - <pt x="43" y="1419" on="1"/> - <pt x="43" y="1480" on="1"/> - <pt x="623" y="1480" on="1"/> - <pt x="623" y="1419" on="1"/> - <pt x="604" y="1417" on="1"/> - <pt x="536" y="1413" on="1"/> - <pt x="461" y="1408" on="0"/> - <pt x="451" y="1366" on="1"/> - <pt x="438" y="1302" on="0"/> - <pt x="438" y="1221" on="1"/> - </contour> - <contour> - <pt x="438" y="382" on="1"/> - <pt x="455" y="382" on="1"/> - <pt x="647" y="382" on="0"/> - <pt x="751" y="489" on="1"/> - <pt x="855" y="596" on="0"/> - <pt x="855" y="791" on="1"/> - <pt x="855" y="959" on="0"/> - <pt x="769" y="1035" on="1"/> - <pt x="683" y="1110" on="0"/> - <pt x="494" y="1110" on="1"/> - <pt x="438" y="1110" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 68 values pushed */ - 44 37 27 36 26 19 9 18 55 54 46 45 8 7 0 7 36 18 3 19 18 1 0 37 36 - 0 14 0 0 50 33 5 48 196 37 44 36 27 19 26 18 9 54 46 7 3 13 5 0 0 - 0 55 45 44 9 8 0 32 5 26 1 4 48 196 27 26 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="U" xMin="19" yMin="-37" xMax="1456" yMax="1480"> - <contour> - <pt x="602" y="1480" on="1"/> - <pt x="602" y="1419" on="1"/> - <pt x="584" y="1417" on="1"/> - <pt x="516" y="1413" on="1"/> - <pt x="448" y="1408" on="0"/> - <pt x="437" y="1386" on="1"/> - <pt x="426" y="1367" on="0"/> - <pt x="423" y="1320" on="1"/> - <pt x="417" y="1221" on="1"/> - <pt x="417" y="588" on="1"/> - <pt x="417" y="360" on="0"/> - <pt x="429" y="290" on="1"/> - <pt x="441" y="219" on="0"/> - <pt x="490" y="156" on="1"/> - <pt x="587" y="31" on="0"/> - <pt x="779" y="31" on="1"/> - <pt x="978" y="31" on="0"/> - <pt x="1087" y="160" on="1"/> - <pt x="1143" y="227" on="0"/> - <pt x="1156" y="319" on="1"/> - <pt x="1167" y="397" on="0"/> - <pt x="1167" y="544" on="1"/> - <pt x="1167" y="1221" on="1"/> - <pt x="1168" y="1335" on="0"/> - <pt x="1149" y="1377" on="1"/> - <pt x="1134" y="1409" on="0"/> - <pt x="1068" y="1413" on="1"/> - <pt x="1000" y="1417" on="1"/> - <pt x="982" y="1419" on="1"/> - <pt x="982" y="1480" on="1"/> - <pt x="1456" y="1480" on="1"/> - <pt x="1456" y="1419" on="1"/> - <pt x="1437" y="1417" on="1"/> - <pt x="1369" y="1413" on="1"/> - <pt x="1294" y="1408" on="0"/> - <pt x="1284" y="1366" on="1"/> - <pt x="1271" y="1302" on="0"/> - <pt x="1271" y="1221" on="1"/> - <pt x="1271" y="601" on="1"/> - <pt x="1271" y="394" on="0"/> - <pt x="1248" y="299" on="1"/> - <pt x="1224" y="201" on="0"/> - <pt x="1156" y="120" on="1"/> - <pt x="1023" y="-37" on="0"/> - <pt x="750" y="-37" on="1"/> - <pt x="204" y="-37" on="0"/> - <pt x="204" y="554" on="1"/> - <pt x="204" y="1221" on="1"/> - <pt x="204" y="1280" on="0"/> - <pt x="197" y="1333" on="1"/> - <pt x="191" y="1372" on="0"/> - <pt x="183" y="1384" on="1"/> - <pt x="165" y="1410" on="0"/> - <pt x="105" y="1413" on="1"/> - <pt x="38" y="1417" on="1"/> - <pt x="19" y="1419" on="1"/> - <pt x="19" y="1480" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 70 values pushed */ - 0 0 15 17 44 48 84 44 2 47 56 37 30 22 29 1 46 38 21 9 8 1 6 0 2 - 3 0 56 30 29 0 0 3 14 56 47 30 37 29 22 1 0 2 21 8 3 0 0 22 21 - 9 1 37 9 8 32 1 46 2 4 48 196 38 37 1 47 46 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Uacute" xMin="19" yMin="-37" xMax="1456" yMax="1925"> - <contour> - <pt x="602" y="1480" on="1"/> - <pt x="602" y="1419" on="1"/> - <pt x="584" y="1417" on="1"/> - <pt x="516" y="1413" on="1"/> - <pt x="448" y="1408" on="0"/> - <pt x="437" y="1386" on="1"/> - <pt x="426" y="1367" on="0"/> - <pt x="423" y="1320" on="1"/> - <pt x="417" y="1221" on="1"/> - <pt x="417" y="588" on="1"/> - <pt x="417" y="360" on="0"/> - <pt x="429" y="290" on="1"/> - <pt x="441" y="219" on="0"/> - <pt x="490" y="156" on="1"/> - <pt x="587" y="31" on="0"/> - <pt x="779" y="31" on="1"/> - <pt x="978" y="31" on="0"/> - <pt x="1087" y="160" on="1"/> - <pt x="1143" y="227" on="0"/> - <pt x="1156" y="319" on="1"/> - <pt x="1167" y="397" on="0"/> - <pt x="1167" y="544" on="1"/> - <pt x="1167" y="1221" on="1"/> - <pt x="1168" y="1335" on="0"/> - <pt x="1149" y="1377" on="1"/> - <pt x="1134" y="1409" on="0"/> - <pt x="1068" y="1413" on="1"/> - <pt x="1000" y="1417" on="1"/> - <pt x="982" y="1419" on="1"/> - <pt x="982" y="1480" on="1"/> - <pt x="1456" y="1480" on="1"/> - <pt x="1456" y="1419" on="1"/> - <pt x="1437" y="1417" on="1"/> - <pt x="1369" y="1413" on="1"/> - <pt x="1294" y="1408" on="0"/> - <pt x="1284" y="1366" on="1"/> - <pt x="1271" y="1302" on="0"/> - <pt x="1271" y="1221" on="1"/> - <pt x="1271" y="601" on="1"/> - <pt x="1271" y="394" on="0"/> - <pt x="1248" y="299" on="1"/> - <pt x="1224" y="201" on="0"/> - <pt x="1156" y="120" on="1"/> - <pt x="1023" y="-37" on="0"/> - <pt x="750" y="-37" on="1"/> - <pt x="204" y="-37" on="0"/> - <pt x="204" y="554" on="1"/> - <pt x="204" y="1221" on="1"/> - <pt x="204" y="1280" on="0"/> - <pt x="197" y="1333" on="1"/> - <pt x="191" y="1372" on="0"/> - <pt x="183" y="1384" on="1"/> - <pt x="165" y="1410" on="0"/> - <pt x="105" y="1413" on="1"/> - <pt x="38" y="1417" on="1"/> - <pt x="19" y="1419" on="1"/> - <pt x="19" y="1480" on="1"/> - </contour> - <contour> - <pt x="650" y="1604" on="1"/> - <pt x="891" y="1925" on="1"/> - <pt x="1150" y="1925" on="1"/> - <pt x="743" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 84 values pushed */ - 0 0 15 17 44 48 84 44 2 47 56 37 30 22 29 60 57 2 58 0 3 1 46 38 21 - 9 8 1 6 0 2 3 0 59 58 1 0 56 30 29 0 0 3 14 56 47 30 37 29 22 - 60 59 58 57 1 0 6 21 8 3 0 0 22 21 9 1 37 9 8 32 1 46 2 4 48 - 196 38 37 1 47 46 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ubreve" xMin="19" yMin="-37" xMax="1456" yMax="1925"> - <contour> - <pt x="602" y="1480" on="1"/> - <pt x="602" y="1419" on="1"/> - <pt x="584" y="1417" on="1"/> - <pt x="516" y="1413" on="1"/> - <pt x="448" y="1408" on="0"/> - <pt x="437" y="1386" on="1"/> - <pt x="426" y="1367" on="0"/> - <pt x="423" y="1320" on="1"/> - <pt x="417" y="1221" on="1"/> - <pt x="417" y="588" on="1"/> - <pt x="417" y="360" on="0"/> - <pt x="429" y="290" on="1"/> - <pt x="441" y="219" on="0"/> - <pt x="490" y="156" on="1"/> - <pt x="587" y="31" on="0"/> - <pt x="779" y="31" on="1"/> - <pt x="978" y="31" on="0"/> - <pt x="1087" y="160" on="1"/> - <pt x="1143" y="227" on="0"/> - <pt x="1156" y="319" on="1"/> - <pt x="1167" y="397" on="0"/> - <pt x="1167" y="544" on="1"/> - <pt x="1167" y="1221" on="1"/> - <pt x="1168" y="1335" on="0"/> - <pt x="1149" y="1377" on="1"/> - <pt x="1134" y="1409" on="0"/> - <pt x="1068" y="1413" on="1"/> - <pt x="1000" y="1417" on="1"/> - <pt x="982" y="1419" on="1"/> - <pt x="982" y="1480" on="1"/> - <pt x="1456" y="1480" on="1"/> - <pt x="1456" y="1419" on="1"/> - <pt x="1437" y="1417" on="1"/> - <pt x="1369" y="1413" on="1"/> - <pt x="1294" y="1408" on="0"/> - <pt x="1284" y="1366" on="1"/> - <pt x="1271" y="1302" on="0"/> - <pt x="1271" y="1221" on="1"/> - <pt x="1271" y="601" on="1"/> - <pt x="1271" y="394" on="0"/> - <pt x="1248" y="299" on="1"/> - <pt x="1224" y="201" on="0"/> - <pt x="1156" y="120" on="1"/> - <pt x="1023" y="-37" on="0"/> - <pt x="750" y="-37" on="1"/> - <pt x="204" y="-37" on="0"/> - <pt x="204" y="554" on="1"/> - <pt x="204" y="1221" on="1"/> - <pt x="204" y="1280" on="0"/> - <pt x="197" y="1333" on="1"/> - <pt x="191" y="1372" on="0"/> - <pt x="183" y="1384" on="1"/> - <pt x="165" y="1410" on="0"/> - <pt x="105" y="1413" on="1"/> - <pt x="38" y="1417" on="1"/> - <pt x="19" y="1419" on="1"/> - <pt x="19" y="1480" on="1"/> - </contour> - <contour> - <pt x="442" y="1925" on="1"/> - <pt x="507" y="1925" on="1"/> - <pt x="534" y="1835" on="0"/> - <pt x="594" y="1793" on="1"/> - <pt x="662" y="1746" on="0"/> - <pt x="775" y="1746" on="1"/> - <pt x="901" y="1746" on="0"/> - <pt x="971" y="1805" on="1"/> - <pt x="1020" y="1845" on="0"/> - <pt x="1044" y="1925" on="1"/> - <pt x="1108" y="1925" on="1"/> - <pt x="1089" y="1790" on="0"/> - <pt x="1017" y="1709" on="1"/> - <pt x="923" y="1604" on="0"/> - <pt x="775" y="1604" on="1"/> - <pt x="621" y="1604" on="0"/> - <pt x="526" y="1719" on="1"/> - <pt x="461" y="1797" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 85 values pushed */ - 0 0 62 20 71 15 38 44 48 84 44 2 47 56 37 30 22 29 1 46 38 21 9 8 1 - 6 0 2 3 0 67 66 58 57 4 13 71 0 56 30 29 0 0 3 14 56 47 30 37 29 - 22 67 66 58 57 1 0 6 21 8 3 0 0 22 21 41 1 37 9 8 37 1 46 2 4 - 48 196 38 37 1 47 46 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ucircumflex" xMin="19" yMin="-37" xMax="1456" yMax="1925"> - <contour> - <pt x="602" y="1480" on="1"/> - <pt x="602" y="1419" on="1"/> - <pt x="584" y="1417" on="1"/> - <pt x="516" y="1413" on="1"/> - <pt x="448" y="1408" on="0"/> - <pt x="437" y="1386" on="1"/> - <pt x="426" y="1367" on="0"/> - <pt x="423" y="1320" on="1"/> - <pt x="417" y="1221" on="1"/> - <pt x="417" y="588" on="1"/> - <pt x="417" y="360" on="0"/> - <pt x="429" y="290" on="1"/> - <pt x="441" y="219" on="0"/> - <pt x="490" y="156" on="1"/> - <pt x="587" y="31" on="0"/> - <pt x="779" y="31" on="1"/> - <pt x="978" y="31" on="0"/> - <pt x="1087" y="160" on="1"/> - <pt x="1143" y="227" on="0"/> - <pt x="1156" y="319" on="1"/> - <pt x="1167" y="397" on="0"/> - <pt x="1167" y="544" on="1"/> - <pt x="1167" y="1221" on="1"/> - <pt x="1168" y="1335" on="0"/> - <pt x="1149" y="1377" on="1"/> - <pt x="1134" y="1409" on="0"/> - <pt x="1068" y="1413" on="1"/> - <pt x="1000" y="1417" on="1"/> - <pt x="982" y="1419" on="1"/> - <pt x="982" y="1480" on="1"/> - <pt x="1456" y="1480" on="1"/> - <pt x="1456" y="1419" on="1"/> - <pt x="1437" y="1417" on="1"/> - <pt x="1369" y="1413" on="1"/> - <pt x="1294" y="1408" on="0"/> - <pt x="1284" y="1366" on="1"/> - <pt x="1271" y="1302" on="0"/> - <pt x="1271" y="1221" on="1"/> - <pt x="1271" y="601" on="1"/> - <pt x="1271" y="394" on="0"/> - <pt x="1248" y="299" on="1"/> - <pt x="1224" y="201" on="0"/> - <pt x="1156" y="120" on="1"/> - <pt x="1023" y="-37" on="0"/> - <pt x="750" y="-37" on="1"/> - <pt x="204" y="-37" on="0"/> - <pt x="204" y="554" on="1"/> - <pt x="204" y="1221" on="1"/> - <pt x="204" y="1280" on="0"/> - <pt x="197" y="1333" on="1"/> - <pt x="191" y="1372" on="0"/> - <pt x="183" y="1384" on="1"/> - <pt x="165" y="1410" on="0"/> - <pt x="105" y="1413" on="1"/> - <pt x="38" y="1417" on="1"/> - <pt x="19" y="1419" on="1"/> - <pt x="19" y="1480" on="1"/> - </contour> - <contour> - <pt x="440" y="1604" on="1"/> - <pt x="681" y="1925" on="1"/> - <pt x="903" y="1925" on="1"/> - <pt x="1143" y="1604" on="1"/> - <pt x="1057" y="1604" on="1"/> - <pt x="792" y="1826" on="1"/> - <pt x="526" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 90 values pushed */ - 0 0 15 17 44 48 84 44 2 47 56 37 30 22 29 63 62 61 60 57 5 58 0 3 1 - 46 38 21 9 8 1 6 0 2 3 0 59 58 1 0 56 30 29 0 0 3 14 56 47 30 - 37 29 22 63 62 61 60 59 58 57 1 0 9 21 8 3 0 0 22 21 9 1 37 9 8 - 32 1 46 2 4 48 196 38 37 1 47 46 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Udieresis" xMin="19" yMin="-37" xMax="1456" yMax="1777"> - <contour> - <pt x="602" y="1480" on="1"/> - <pt x="602" y="1419" on="1"/> - <pt x="584" y="1417" on="1"/> - <pt x="516" y="1413" on="1"/> - <pt x="448" y="1408" on="0"/> - <pt x="437" y="1386" on="1"/> - <pt x="426" y="1367" on="0"/> - <pt x="423" y="1320" on="1"/> - <pt x="417" y="1221" on="1"/> - <pt x="417" y="588" on="1"/> - <pt x="417" y="360" on="0"/> - <pt x="429" y="290" on="1"/> - <pt x="441" y="219" on="0"/> - <pt x="490" y="156" on="1"/> - <pt x="587" y="31" on="0"/> - <pt x="779" y="31" on="1"/> - <pt x="978" y="31" on="0"/> - <pt x="1087" y="160" on="1"/> - <pt x="1143" y="227" on="0"/> - <pt x="1156" y="319" on="1"/> - <pt x="1167" y="397" on="0"/> - <pt x="1167" y="544" on="1"/> - <pt x="1167" y="1221" on="1"/> - <pt x="1168" y="1335" on="0"/> - <pt x="1149" y="1377" on="1"/> - <pt x="1134" y="1409" on="0"/> - <pt x="1068" y="1413" on="1"/> - <pt x="1000" y="1417" on="1"/> - <pt x="982" y="1419" on="1"/> - <pt x="982" y="1480" on="1"/> - <pt x="1456" y="1480" on="1"/> - <pt x="1456" y="1419" on="1"/> - <pt x="1437" y="1417" on="1"/> - <pt x="1369" y="1413" on="1"/> - <pt x="1294" y="1408" on="0"/> - <pt x="1284" y="1366" on="1"/> - <pt x="1271" y="1302" on="0"/> - <pt x="1271" y="1221" on="1"/> - <pt x="1271" y="601" on="1"/> - <pt x="1271" y="394" on="0"/> - <pt x="1248" y="299" on="1"/> - <pt x="1224" y="201" on="0"/> - <pt x="1156" y="120" on="1"/> - <pt x="1023" y="-37" on="0"/> - <pt x="750" y="-37" on="1"/> - <pt x="204" y="-37" on="0"/> - <pt x="204" y="554" on="1"/> - <pt x="204" y="1221" on="1"/> - <pt x="204" y="1280" on="0"/> - <pt x="197" y="1333" on="1"/> - <pt x="191" y="1372" on="0"/> - <pt x="183" y="1384" on="1"/> - <pt x="165" y="1410" on="0"/> - <pt x="105" y="1413" on="1"/> - <pt x="38" y="1417" on="1"/> - <pt x="19" y="1419" on="1"/> - <pt x="19" y="1480" on="1"/> - </contour> - <contour> - <pt x="508" y="1604" on="1"/> - <pt x="508" y="1777" on="1"/> - <pt x="681" y="1777" on="1"/> - <pt x="681" y="1604" on="1"/> - </contour> - <contour> - <pt x="903" y="1604" on="1"/> - <pt x="903" y="1777" on="1"/> - <pt x="1076" y="1777" on="1"/> - <pt x="1076" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 105 values pushed */ - 0 0 15 17 44 48 84 44 2 47 56 37 30 22 29 1 46 38 21 9 8 1 6 0 2 - 3 0 0 0 64 61 60 57 13 3 58 1 4 48 84 63 62 59 58 3 0 56 30 29 0 - 0 3 14 56 47 30 37 29 22 1 0 2 59 57 3 0 0 62 61 13 1 63 60 59 13 - 1 57 22 21 9 1 37 9 8 32 1 46 4 4 48 196 64 63 1 58 57 1 38 37 1 - 47 46 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ugrave" xMin="19" yMin="-37" xMax="1456" yMax="1925"> - <contour> - <pt x="602" y="1480" on="1"/> - <pt x="602" y="1419" on="1"/> - <pt x="584" y="1417" on="1"/> - <pt x="516" y="1413" on="1"/> - <pt x="448" y="1408" on="0"/> - <pt x="437" y="1386" on="1"/> - <pt x="426" y="1367" on="0"/> - <pt x="423" y="1320" on="1"/> - <pt x="417" y="1221" on="1"/> - <pt x="417" y="588" on="1"/> - <pt x="417" y="360" on="0"/> - <pt x="429" y="290" on="1"/> - <pt x="441" y="219" on="0"/> - <pt x="490" y="156" on="1"/> - <pt x="587" y="31" on="0"/> - <pt x="779" y="31" on="1"/> - <pt x="978" y="31" on="0"/> - <pt x="1087" y="160" on="1"/> - <pt x="1143" y="227" on="0"/> - <pt x="1156" y="319" on="1"/> - <pt x="1167" y="397" on="0"/> - <pt x="1167" y="544" on="1"/> - <pt x="1167" y="1221" on="1"/> - <pt x="1168" y="1335" on="0"/> - <pt x="1149" y="1377" on="1"/> - <pt x="1134" y="1409" on="0"/> - <pt x="1068" y="1413" on="1"/> - <pt x="1000" y="1417" on="1"/> - <pt x="982" y="1419" on="1"/> - <pt x="982" y="1480" on="1"/> - <pt x="1456" y="1480" on="1"/> - <pt x="1456" y="1419" on="1"/> - <pt x="1437" y="1417" on="1"/> - <pt x="1369" y="1413" on="1"/> - <pt x="1294" y="1408" on="0"/> - <pt x="1284" y="1366" on="1"/> - <pt x="1271" y="1302" on="0"/> - <pt x="1271" y="1221" on="1"/> - <pt x="1271" y="601" on="1"/> - <pt x="1271" y="394" on="0"/> - <pt x="1248" y="299" on="1"/> - <pt x="1224" y="201" on="0"/> - <pt x="1156" y="120" on="1"/> - <pt x="1023" y="-37" on="0"/> - <pt x="750" y="-37" on="1"/> - <pt x="204" y="-37" on="0"/> - <pt x="204" y="554" on="1"/> - <pt x="204" y="1221" on="1"/> - <pt x="204" y="1280" on="0"/> - <pt x="197" y="1333" on="1"/> - <pt x="191" y="1372" on="0"/> - <pt x="183" y="1384" on="1"/> - <pt x="165" y="1410" on="0"/> - <pt x="105" y="1413" on="1"/> - <pt x="38" y="1417" on="1"/> - <pt x="19" y="1419" on="1"/> - <pt x="19" y="1480" on="1"/> - </contour> - <contour> - <pt x="934" y="1604" on="1"/> - <pt x="841" y="1604" on="1"/> - <pt x="434" y="1925" on="1"/> - <pt x="693" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 84 values pushed */ - 0 0 15 17 44 48 84 44 2 47 56 37 30 22 29 58 57 2 59 0 3 1 46 38 21 - 9 8 1 6 0 2 3 0 60 59 1 0 56 30 29 0 0 3 14 56 47 30 37 29 22 - 60 59 58 57 1 0 6 21 8 3 0 0 22 21 9 1 37 9 8 32 1 46 2 4 48 - 196 38 37 1 47 46 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Uhungarumlaut" xMin="19" yMin="-37" xMax="1456" yMax="1925"> - <contour> - <pt x="602" y="1480" on="1"/> - <pt x="602" y="1419" on="1"/> - <pt x="584" y="1417" on="1"/> - <pt x="516" y="1413" on="1"/> - <pt x="448" y="1408" on="0"/> - <pt x="437" y="1386" on="1"/> - <pt x="426" y="1367" on="0"/> - <pt x="423" y="1320" on="1"/> - <pt x="417" y="1221" on="1"/> - <pt x="417" y="588" on="1"/> - <pt x="417" y="360" on="0"/> - <pt x="429" y="290" on="1"/> - <pt x="441" y="219" on="0"/> - <pt x="490" y="156" on="1"/> - <pt x="587" y="31" on="0"/> - <pt x="779" y="31" on="1"/> - <pt x="978" y="31" on="0"/> - <pt x="1087" y="160" on="1"/> - <pt x="1143" y="227" on="0"/> - <pt x="1156" y="319" on="1"/> - <pt x="1167" y="397" on="0"/> - <pt x="1167" y="544" on="1"/> - <pt x="1167" y="1221" on="1"/> - <pt x="1168" y="1335" on="0"/> - <pt x="1149" y="1377" on="1"/> - <pt x="1134" y="1409" on="0"/> - <pt x="1068" y="1413" on="1"/> - <pt x="1000" y="1417" on="1"/> - <pt x="982" y="1419" on="1"/> - <pt x="982" y="1480" on="1"/> - <pt x="1456" y="1480" on="1"/> - <pt x="1456" y="1419" on="1"/> - <pt x="1437" y="1417" on="1"/> - <pt x="1369" y="1413" on="1"/> - <pt x="1294" y="1408" on="0"/> - <pt x="1284" y="1366" on="1"/> - <pt x="1271" y="1302" on="0"/> - <pt x="1271" y="1221" on="1"/> - <pt x="1271" y="601" on="1"/> - <pt x="1271" y="394" on="0"/> - <pt x="1248" y="299" on="1"/> - <pt x="1224" y="201" on="0"/> - <pt x="1156" y="120" on="1"/> - <pt x="1023" y="-37" on="0"/> - <pt x="750" y="-37" on="1"/> - <pt x="204" y="-37" on="0"/> - <pt x="204" y="554" on="1"/> - <pt x="204" y="1221" on="1"/> - <pt x="204" y="1280" on="0"/> - <pt x="197" y="1333" on="1"/> - <pt x="191" y="1372" on="0"/> - <pt x="183" y="1384" on="1"/> - <pt x="165" y="1410" on="0"/> - <pt x="105" y="1413" on="1"/> - <pt x="38" y="1417" on="1"/> - <pt x="19" y="1419" on="1"/> - <pt x="19" y="1480" on="1"/> - </contour> - <contour> - <pt x="565" y="1604" on="1"/> - <pt x="779" y="1925" on="1"/> - <pt x="948" y="1925" on="1"/> - <pt x="627" y="1604" on="1"/> - </contour> - <contour> - <pt x="874" y="1604" on="1"/> - <pt x="1087" y="1925" on="1"/> - <pt x="1256" y="1925" on="1"/> - <pt x="935" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 95 values pushed */ - 0 0 15 17 44 48 84 44 2 47 56 37 30 22 29 64 61 60 57 4 58 0 3 1 46 - 38 21 9 8 1 6 0 2 3 0 63 62 59 58 3 0 56 30 29 0 0 3 14 56 47 - 30 37 29 22 63 37 21 2 64 62 61 60 59 58 57 1 0 9 21 8 3 0 0 22 21 - 9 1 37 9 8 32 1 46 2 4 48 196 38 37 1 47 46 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Umacron" xMin="19" yMin="-37" xMax="1456" yMax="1727"> - <contour> - <pt x="602" y="1480" on="1"/> - <pt x="602" y="1419" on="1"/> - <pt x="584" y="1417" on="1"/> - <pt x="516" y="1413" on="1"/> - <pt x="448" y="1408" on="0"/> - <pt x="437" y="1386" on="1"/> - <pt x="426" y="1367" on="0"/> - <pt x="423" y="1320" on="1"/> - <pt x="417" y="1221" on="1"/> - <pt x="417" y="588" on="1"/> - <pt x="417" y="360" on="0"/> - <pt x="429" y="290" on="1"/> - <pt x="441" y="219" on="0"/> - <pt x="490" y="156" on="1"/> - <pt x="587" y="31" on="0"/> - <pt x="779" y="31" on="1"/> - <pt x="978" y="31" on="0"/> - <pt x="1087" y="160" on="1"/> - <pt x="1143" y="227" on="0"/> - <pt x="1156" y="319" on="1"/> - <pt x="1167" y="397" on="0"/> - <pt x="1167" y="544" on="1"/> - <pt x="1167" y="1221" on="1"/> - <pt x="1168" y="1335" on="0"/> - <pt x="1149" y="1377" on="1"/> - <pt x="1134" y="1409" on="0"/> - <pt x="1068" y="1413" on="1"/> - <pt x="1000" y="1417" on="1"/> - <pt x="982" y="1419" on="1"/> - <pt x="982" y="1480" on="1"/> - <pt x="1456" y="1480" on="1"/> - <pt x="1456" y="1419" on="1"/> - <pt x="1437" y="1417" on="1"/> - <pt x="1369" y="1413" on="1"/> - <pt x="1294" y="1408" on="0"/> - <pt x="1284" y="1366" on="1"/> - <pt x="1271" y="1302" on="0"/> - <pt x="1271" y="1221" on="1"/> - <pt x="1271" y="601" on="1"/> - <pt x="1271" y="394" on="0"/> - <pt x="1248" y="299" on="1"/> - <pt x="1224" y="201" on="0"/> - <pt x="1156" y="120" on="1"/> - <pt x="1023" y="-37" on="0"/> - <pt x="750" y="-37" on="1"/> - <pt x="204" y="-37" on="0"/> - <pt x="204" y="554" on="1"/> - <pt x="204" y="1221" on="1"/> - <pt x="204" y="1280" on="0"/> - <pt x="197" y="1333" on="1"/> - <pt x="191" y="1372" on="0"/> - <pt x="183" y="1384" on="1"/> - <pt x="165" y="1410" on="0"/> - <pt x="105" y="1413" on="1"/> - <pt x="38" y="1417" on="1"/> - <pt x="19" y="1419" on="1"/> - <pt x="19" y="1480" on="1"/> - </contour> - <contour> - <pt x="470" y="1604" on="1"/> - <pt x="470" y="1727" on="1"/> - <pt x="1112" y="1727" on="1"/> - <pt x="1112" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 89 values pushed */ - 0 0 15 17 44 48 84 44 2 47 56 37 30 22 29 1 46 38 21 9 8 1 6 0 2 - 3 0 0 0 60 57 12 1 58 1 4 48 84 59 58 1 0 56 30 29 0 0 3 14 56 - 47 30 37 29 22 60 59 58 57 1 0 6 21 8 3 0 0 22 21 9 1 37 9 8 32 - 1 46 2 4 48 196 38 37 1 47 46 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Unterkomma" xMin="170" yMin="-432" xMax="512" yMax="-111"> - <contour> - <pt x="170" y="-421" on="1"/> - <pt x="170" y="-349" on="1"/> - <pt x="219" y="-359" on="0"/> - <pt x="274" y="-359" on="1"/> - <pt x="377" y="-359" on="0"/> - <pt x="377" y="-279" on="1"/> - <pt x="377" y="-190" on="0"/> - <pt x="219" y="-175" on="1"/> - <pt x="219" y="-111" on="1"/> - <pt x="353" y="-114" on="0"/> - <pt x="419" y="-143" on="1"/> - <pt x="512" y="-185" on="0"/> - <pt x="512" y="-280" on="1"/> - <pt x="512" y="-432" on="0"/> - <pt x="295" y="-432" on="1"/> - <pt x="236" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 25 values pushed */ - 0 0 3 17 14 48 84 14 8 7 1 0 14 0 0 5 48 12 48 196 12 8 7 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Uogonek" xMin="19" yMin="-370" xMax="1456" yMax="1480"> - <contour> - <pt x="602" y="1480" on="1"/> - <pt x="602" y="1419" on="1"/> - <pt x="584" y="1417" on="1"/> - <pt x="516" y="1413" on="1"/> - <pt x="448" y="1408" on="0"/> - <pt x="437" y="1386" on="1"/> - <pt x="426" y="1365" on="0"/> - <pt x="423" y="1320" on="1"/> - <pt x="417" y="1221" on="1"/> - <pt x="417" y="588" on="1"/> - <pt x="417" y="360" on="0"/> - <pt x="429" y="290" on="1"/> - <pt x="441" y="219" on="0"/> - <pt x="490" y="156" on="1"/> - <pt x="587" y="31" on="0"/> - <pt x="779" y="31" on="1"/> - <pt x="978" y="31" on="0"/> - <pt x="1087" y="160" on="1"/> - <pt x="1143" y="227" on="0"/> - <pt x="1156" y="319" on="1"/> - <pt x="1167" y="397" on="0"/> - <pt x="1167" y="544" on="1"/> - <pt x="1167" y="1221" on="1"/> - <pt x="1168" y="1335" on="0"/> - <pt x="1149" y="1377" on="1"/> - <pt x="1134" y="1409" on="0"/> - <pt x="1068" y="1413" on="1"/> - <pt x="1000" y="1417" on="1"/> - <pt x="982" y="1419" on="1"/> - <pt x="982" y="1480" on="1"/> - <pt x="1456" y="1480" on="1"/> - <pt x="1456" y="1419" on="1"/> - <pt x="1437" y="1417" on="1"/> - <pt x="1369" y="1413" on="1"/> - <pt x="1294" y="1408" on="0"/> - <pt x="1284" y="1366" on="1"/> - <pt x="1271" y="1302" on="0"/> - <pt x="1271" y="1221" on="1"/> - <pt x="1271" y="601" on="1"/> - <pt x="1271" y="395" on="0"/> - <pt x="1248" y="299" on="1"/> - <pt x="1224" y="201" on="0"/> - <pt x="1156" y="120" on="1"/> - <pt x="1023" y="-37" on="0"/> - <pt x="750" y="-37" on="1"/> - <pt x="204" y="-37" on="0"/> - <pt x="204" y="554" on="1"/> - <pt x="204" y="1221" on="1"/> - <pt x="204" y="1280" on="0"/> - <pt x="197" y="1333" on="1"/> - <pt x="191" y="1372" on="0"/> - <pt x="183" y="1384" on="1"/> - <pt x="165" y="1410" on="0"/> - <pt x="105" y="1413" on="1"/> - <pt x="38" y="1417" on="1"/> - <pt x="19" y="1419" on="1"/> - <pt x="19" y="1480" on="1"/> - </contour> - <contour> - <pt x="1034" y="-273" on="1"/> - <pt x="1034" y="-341" on="1"/> - <pt x="963" y="-370" on="0"/> - <pt x="885" y="-370" on="1"/> - <pt x="665" y="-370" on="0"/> - <pt x="665" y="-211" on="1"/> - <pt x="665" y="-90" on="0"/> - <pt x="823" y="0" on="1"/> - <pt x="930" y="0" on="1"/> - <pt x="801" y="-80" on="0"/> - <pt x="801" y="-182" on="1"/> - <pt x="801" y="-289" on="0"/> - <pt x="934" y="-289" on="1"/> - <pt x="985" y="-289" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 96 values pushed */ - 0 0 69 7 60 15 17 44 48 84 44 2 47 56 37 30 22 29 1 46 38 21 9 8 1 - 6 0 2 3 0 1 65 64 58 57 4 13 60 2 0 56 30 29 0 0 3 14 0 0 67 - 48 62 48 196 56 47 30 37 29 22 62 65 64 62 58 57 1 0 7 21 8 3 0 0 22 - 21 9 1 37 9 8 32 1 46 2 4 48 196 38 37 1 47 46 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[1] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Uring" xMin="19" yMin="-37" xMax="1456" yMax="2033"> - <contour> - <pt x="602" y="1480" on="1"/> - <pt x="602" y="1419" on="1"/> - <pt x="584" y="1417" on="1"/> - <pt x="516" y="1413" on="1"/> - <pt x="448" y="1408" on="0"/> - <pt x="437" y="1386" on="1"/> - <pt x="426" y="1367" on="0"/> - <pt x="423" y="1320" on="1"/> - <pt x="417" y="1221" on="1"/> - <pt x="417" y="588" on="1"/> - <pt x="417" y="360" on="0"/> - <pt x="429" y="290" on="1"/> - <pt x="441" y="219" on="0"/> - <pt x="490" y="156" on="1"/> - <pt x="587" y="31" on="0"/> - <pt x="779" y="31" on="1"/> - <pt x="978" y="31" on="0"/> - <pt x="1087" y="160" on="1"/> - <pt x="1143" y="227" on="0"/> - <pt x="1156" y="319" on="1"/> - <pt x="1167" y="397" on="0"/> - <pt x="1167" y="544" on="1"/> - <pt x="1167" y="1221" on="1"/> - <pt x="1168" y="1335" on="0"/> - <pt x="1149" y="1377" on="1"/> - <pt x="1134" y="1409" on="0"/> - <pt x="1068" y="1413" on="1"/> - <pt x="1000" y="1417" on="1"/> - <pt x="982" y="1419" on="1"/> - <pt x="982" y="1480" on="1"/> - <pt x="1456" y="1480" on="1"/> - <pt x="1456" y="1419" on="1"/> - <pt x="1437" y="1417" on="1"/> - <pt x="1369" y="1413" on="1"/> - <pt x="1294" y="1408" on="0"/> - <pt x="1284" y="1366" on="1"/> - <pt x="1271" y="1302" on="0"/> - <pt x="1271" y="1221" on="1"/> - <pt x="1271" y="601" on="1"/> - <pt x="1271" y="394" on="0"/> - <pt x="1248" y="299" on="1"/> - <pt x="1224" y="201" on="0"/> - <pt x="1156" y="120" on="1"/> - <pt x="1023" y="-37" on="0"/> - <pt x="750" y="-37" on="1"/> - <pt x="204" y="-37" on="0"/> - <pt x="204" y="554" on="1"/> - <pt x="204" y="1221" on="1"/> - <pt x="204" y="1280" on="0"/> - <pt x="197" y="1333" on="1"/> - <pt x="191" y="1372" on="0"/> - <pt x="183" y="1384" on="1"/> - <pt x="165" y="1410" on="0"/> - <pt x="105" y="1413" on="1"/> - <pt x="38" y="1417" on="1"/> - <pt x="19" y="1419" on="1"/> - <pt x="19" y="1480" on="1"/> - </contour> - <contour> - <pt x="782" y="2033" on="1"/> - <pt x="876" y="2033" on="0"/> - <pt x="942" y="1967" on="1"/> - <pt x="1009" y="1901" on="0"/> - <pt x="1009" y="1807" on="1"/> - <pt x="1009" y="1711" on="0"/> - <pt x="942" y="1645" on="1"/> - <pt x="875" y="1579" on="0"/> - <pt x="780" y="1579" on="1"/> - <pt x="696" y="1579" on="0"/> - <pt x="635" y="1633" on="1"/> - <pt x="555" y="1702" on="0"/> - <pt x="555" y="1806" on="1"/> - <pt x="555" y="1901" on="0"/> - <pt x="621" y="1967" on="1"/> - <pt x="687" y="2033" on="0"/> - </contour> - <contour> - <pt x="782" y="1965" on="1"/> - <pt x="716" y="1965" on="0"/> - <pt x="670" y="1919" on="1"/> - <pt x="623" y="1872" on="0"/> - <pt x="623" y="1807" on="1"/> - <pt x="623" y="1741" on="0"/> - <pt x="669" y="1694" on="1"/> - <pt x="715" y="1647" on="0"/> - <pt x="780" y="1647" on="1"/> - <pt x="841" y="1647" on="0"/> - <pt x="885" y="1684" on="1"/> - <pt x="941" y="1733" on="0"/> - <pt x="941" y="1807" on="1"/> - <pt x="941" y="1873" on="0"/> - <pt x="894" y="1919" on="1"/> - <pt x="847" y="1965" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 93 values pushed */ - 0 0 81 17 65 73 17 57 15 17 44 48 84 44 2 47 56 37 30 22 29 1 46 38 21 - 9 8 1 6 0 2 3 0 65 57 0 56 30 29 0 0 3 14 0 0 85 17 61 77 17 - 69 48 196 56 47 30 37 29 22 69 61 69 61 1 0 4 21 8 3 0 0 22 21 9 1 - 37 9 8 32 1 46 2 4 48 196 38 37 1 47 46 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[1] - MDAP[1] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - SZP0[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Utilde" xMin="19" yMin="-37" xMax="1456" yMax="1839"> - <contour> - <pt x="602" y="1480" on="1"/> - <pt x="602" y="1419" on="1"/> - <pt x="584" y="1417" on="1"/> - <pt x="516" y="1413" on="1"/> - <pt x="448" y="1408" on="0"/> - <pt x="437" y="1386" on="1"/> - <pt x="426" y="1367" on="0"/> - <pt x="423" y="1320" on="1"/> - <pt x="417" y="1221" on="1"/> - <pt x="417" y="588" on="1"/> - <pt x="417" y="360" on="0"/> - <pt x="429" y="290" on="1"/> - <pt x="441" y="219" on="0"/> - <pt x="490" y="156" on="1"/> - <pt x="587" y="31" on="0"/> - <pt x="779" y="31" on="1"/> - <pt x="978" y="31" on="0"/> - <pt x="1087" y="160" on="1"/> - <pt x="1143" y="227" on="0"/> - <pt x="1156" y="319" on="1"/> - <pt x="1167" y="397" on="0"/> - <pt x="1167" y="544" on="1"/> - <pt x="1167" y="1221" on="1"/> - <pt x="1168" y="1335" on="0"/> - <pt x="1149" y="1377" on="1"/> - <pt x="1134" y="1409" on="0"/> - <pt x="1068" y="1413" on="1"/> - <pt x="1000" y="1417" on="1"/> - <pt x="982" y="1419" on="1"/> - <pt x="982" y="1480" on="1"/> - <pt x="1456" y="1480" on="1"/> - <pt x="1456" y="1419" on="1"/> - <pt x="1437" y="1417" on="1"/> - <pt x="1369" y="1413" on="1"/> - <pt x="1294" y="1408" on="0"/> - <pt x="1284" y="1366" on="1"/> - <pt x="1271" y="1302" on="0"/> - <pt x="1271" y="1221" on="1"/> - <pt x="1271" y="601" on="1"/> - <pt x="1271" y="394" on="0"/> - <pt x="1248" y="299" on="1"/> - <pt x="1224" y="201" on="0"/> - <pt x="1156" y="120" on="1"/> - <pt x="1023" y="-37" on="0"/> - <pt x="750" y="-37" on="1"/> - <pt x="204" y="-37" on="0"/> - <pt x="204" y="554" on="1"/> - <pt x="204" y="1221" on="1"/> - <pt x="204" y="1280" on="0"/> - <pt x="197" y="1333" on="1"/> - <pt x="191" y="1372" on="0"/> - <pt x="183" y="1384" on="1"/> - <pt x="165" y="1410" on="0"/> - <pt x="105" y="1413" on="1"/> - <pt x="38" y="1417" on="1"/> - <pt x="19" y="1419" on="1"/> - <pt x="19" y="1480" on="1"/> - </contour> - <contour> - <pt x="442" y="1604" on="1"/> - <pt x="469" y="1744" on="0"/> - <pt x="538" y="1797" on="1"/> - <pt x="591" y="1839" on="0"/> - <pt x="669" y="1839" on="1"/> - <pt x="734" y="1839" on="0"/> - <pt x="787" y="1801" on="1"/> - <pt x="822" y="1776" on="1"/> - <pt x="874" y="1739" on="0"/> - <pt x="928" y="1739" on="1"/> - <pt x="1023" y="1739" on="0"/> - <pt x="1046" y="1838" on="1"/> - <pt x="1108" y="1838" on="1"/> - <pt x="1080" y="1699" on="0"/> - <pt x="1012" y="1646" on="1"/> - <pt x="958" y="1604" on="0"/> - <pt x="881" y="1604" on="1"/> - <pt x="818" y="1604" on="0"/> - <pt x="763" y="1642" on="1"/> - <pt x="728" y="1666" on="1"/> - <pt x="673" y="1704" on="0"/> - <pt x="622" y="1704" on="1"/> - <pt x="533" y="1704" on="0"/> - <pt x="504" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 89 values pushed */ - 0 0 78 20 61 66 20 73 15 38 44 48 84 44 2 47 56 37 30 22 29 1 46 38 21 - 9 8 1 6 0 2 3 0 80 69 68 57 4 13 73 61 0 56 30 29 0 0 3 14 56 - 47 30 37 29 22 80 69 68 57 1 0 6 21 8 3 0 0 22 21 41 1 37 9 8 37 - 1 46 2 4 48 196 38 37 1 47 46 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="V" xMin="0" yMin="-19" xMax="1479" yMax="1480"> - <contour> - <pt x="724" y="-19" on="1"/> - <pt x="193" y="1216" on="1"/> - <pt x="137" y="1342" on="1"/> - <pt x="113" y="1398" on="0"/> - <pt x="91" y="1406" on="1"/> - <pt x="68" y="1414" on="0"/> - <pt x="21" y="1417" on="1"/> - <pt x="0" y="1419" on="1"/> - <pt x="0" y="1480" on="1"/> - <pt x="543" y="1480" on="1"/> - <pt x="543" y="1419" on="1"/> - <pt x="522" y="1419" on="1"/> - <pt x="367" y="1419" on="0"/> - <pt x="367" y="1380" on="1"/> - <pt x="367" y="1366" on="0"/> - <pt x="401" y="1283" on="1"/> - <pt x="428" y="1216" on="1"/> - <pt x="828" y="284" on="1"/> - <pt x="1210" y="1217" on="1"/> - <pt x="1230" y="1268" on="1"/> - <pt x="1262" y="1349" on="0"/> - <pt x="1262" y="1376" on="1"/> - <pt x="1262" y="1415" on="0"/> - <pt x="1193" y="1417" on="1"/> - <pt x="1117" y="1419" on="1"/> - <pt x="1095" y="1419" on="1"/> - <pt x="1095" y="1480" on="1"/> - <pt x="1479" y="1480" on="1"/> - <pt x="1479" y="1419" on="1"/> - <pt x="1457" y="1417" on="1"/> - <pt x="1394" y="1413" on="0"/> - <pt x="1377" y="1396" on="1"/> - <pt x="1359" y="1380" on="0"/> - <pt x="1341" y="1335" on="1"/> - <pt x="1294" y="1217" on="1"/> - <pt x="792" y="-19" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 44 values pushed */ - 1 28 25 24 17 16 11 10 7 1 9 8 2 3 0 1 35 0 2 0 27 26 9 8 0 - 3 14 35 28 27 26 25 24 21 17 16 13 11 10 9 8 7 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="W" xMin="0" yMin="-19" xMax="1933" yMax="1480"> - <contour> - <pt x="524" y="-19" on="1"/> - <pt x="188" y="1215" on="1"/> - <pt x="155" y="1336" on="0"/> - <pt x="153" y="1347" on="1"/> - <pt x="138" y="1416" on="0"/> - <pt x="80" y="1416" on="1"/> - <pt x="22" y="1417" on="1"/> - <pt x="0" y="1419" on="1"/> - <pt x="0" y="1480" on="1"/> - <pt x="536" y="1480" on="1"/> - <pt x="536" y="1419" on="1"/> - <pt x="516" y="1419" on="1"/> - <pt x="462" y="1417" on="1"/> - <pt x="368" y="1414" on="0"/> - <pt x="368" y="1363" on="1"/> - <pt x="368" y="1323" on="0"/> - <pt x="397" y="1215" on="1"/> - <pt x="630" y="354" on="1"/> - <pt x="990" y="1462" on="1"/> - <pt x="1060" y="1462" on="1"/> - <pt x="1382" y="323" on="1"/> - <pt x="1658" y="1214" on="1"/> - <pt x="1701" y="1352" on="0"/> - <pt x="1701" y="1383" on="1"/> - <pt x="1701" y="1415" on="0"/> - <pt x="1613" y="1417" on="1"/> - <pt x="1545" y="1419" on="1"/> - <pt x="1526" y="1419" on="1"/> - <pt x="1526" y="1480" on="1"/> - <pt x="1933" y="1480" on="1"/> - <pt x="1933" y="1419" on="1"/> - <pt x="1916" y="1417" on="1"/> - <pt x="1856" y="1415" on="1"/> - <pt x="1796" y="1413" on="0"/> - <pt x="1777" y="1352" on="1"/> - <pt x="1734" y="1215" on="1"/> - <pt x="1352" y="-19" on="1"/> - <pt x="1285" y="-19" on="1"/> - <pt x="963" y="1120" on="1"/> - <pt x="593" y="-19" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 62 values pushed */ - 1 38 30 27 26 19 18 11 10 7 9 8 1 3 0 1 1 20 17 2 1 2 3 0 0 - 1 39 37 36 0 4 13 2 0 29 28 9 8 0 3 14 39 38 37 36 30 29 28 27 26 - 23 20 19 18 17 14 11 10 9 8 7 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Wcircumflex" xMin="0" yMin="-19" xMax="1933" yMax="1925"> - <contour> - <pt x="524" y="-19" on="1"/> - <pt x="188" y="1215" on="1"/> - <pt x="155" y="1336" on="0"/> - <pt x="153" y="1347" on="1"/> - <pt x="138" y="1416" on="0"/> - <pt x="80" y="1416" on="1"/> - <pt x="22" y="1417" on="1"/> - <pt x="0" y="1419" on="1"/> - <pt x="0" y="1480" on="1"/> - <pt x="536" y="1480" on="1"/> - <pt x="536" y="1419" on="1"/> - <pt x="516" y="1419" on="1"/> - <pt x="462" y="1417" on="1"/> - <pt x="368" y="1414" on="0"/> - <pt x="368" y="1363" on="1"/> - <pt x="368" y="1323" on="0"/> - <pt x="397" y="1215" on="1"/> - <pt x="630" y="354" on="1"/> - <pt x="990" y="1462" on="1"/> - <pt x="1060" y="1462" on="1"/> - <pt x="1382" y="323" on="1"/> - <pt x="1658" y="1214" on="1"/> - <pt x="1701" y="1352" on="0"/> - <pt x="1701" y="1383" on="1"/> - <pt x="1701" y="1415" on="0"/> - <pt x="1613" y="1417" on="1"/> - <pt x="1545" y="1419" on="1"/> - <pt x="1526" y="1419" on="1"/> - <pt x="1526" y="1480" on="1"/> - <pt x="1933" y="1480" on="1"/> - <pt x="1933" y="1419" on="1"/> - <pt x="1916" y="1417" on="1"/> - <pt x="1856" y="1415" on="1"/> - <pt x="1796" y="1413" on="0"/> - <pt x="1777" y="1352" on="1"/> - <pt x="1734" y="1215" on="1"/> - <pt x="1352" y="-19" on="1"/> - <pt x="1285" y="-19" on="1"/> - <pt x="963" y="1120" on="1"/> - <pt x="593" y="-19" on="1"/> - </contour> - <contour> - <pt x="679" y="1604" on="1"/> - <pt x="920" y="1925" on="1"/> - <pt x="1142" y="1925" on="1"/> - <pt x="1382" y="1604" on="1"/> - <pt x="1296" y="1604" on="1"/> - <pt x="1031" y="1826" on="1"/> - <pt x="765" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 82 values pushed */ - 46 45 44 43 40 5 41 8 3 1 38 30 27 26 19 18 11 10 7 9 8 1 3 0 1 - 1 20 17 2 1 2 3 0 0 1 39 37 36 0 4 13 2 0 42 41 1 0 29 28 9 - 8 0 3 14 46 45 44 43 42 41 40 39 38 37 36 30 29 28 27 26 23 20 19 18 17 - 14 11 10 9 8 7 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="X" xMin="12" yMin="0" xMax="1466" yMax="1480"> - <contour> - <pt x="12" y="0" on="1"/> - <pt x="12" y="62" on="1"/> - <pt x="26" y="63" on="1"/> - <pt x="69" y="66" on="1"/> - <pt x="132" y="72" on="0"/> - <pt x="187" y="144" on="1"/> - <pt x="278" y="261" on="1"/> - <pt x="633" y="729" on="1"/> - <pt x="302" y="1222" on="1"/> - <pt x="222" y="1333" on="1"/> - <pt x="167" y="1411" on="0"/> - <pt x="107" y="1415" on="1"/> - <pt x="57" y="1417" on="1"/> - <pt x="36" y="1419" on="1"/> - <pt x="36" y="1480" on="1"/> - <pt x="619" y="1480" on="1"/> - <pt x="619" y="1419" on="1"/> - <pt x="601" y="1419" on="1"/> - <pt x="531" y="1418" on="1"/> - <pt x="456" y="1417" on="0"/> - <pt x="456" y="1386" on="1"/> - <pt x="456" y="1370" on="0"/> - <pt x="501" y="1310" on="1"/> - <pt x="509" y="1300" on="0"/> - <pt x="536" y="1258" on="1"/> - <pt x="560" y="1223" on="1"/> - <pt x="801" y="859" on="1"/> - <pt x="1091" y="1223" on="1"/> - <pt x="1200" y="1360" on="0"/> - <pt x="1200" y="1391" on="1"/> - <pt x="1200" y="1414" on="0"/> - <pt x="1138" y="1417" on="1"/> - <pt x="1089" y="1419" on="1"/> - <pt x="1070" y="1419" on="1"/> - <pt x="1070" y="1480" on="1"/> - <pt x="1441" y="1480" on="1"/> - <pt x="1441" y="1419" on="1"/> - <pt x="1417" y="1417" on="1"/> - <pt x="1325" y="1411" on="0"/> - <pt x="1264" y="1326" on="1"/> - <pt x="1229" y="1279" on="0"/> - <pt x="1184" y="1223" on="1"/> - <pt x="855" y="814" on="1"/> - <pt x="1220" y="261" on="1"/> - <pt x="1307" y="137" on="1"/> - <pt x="1351" y="71" on="0"/> - <pt x="1394" y="66" on="1"/> - <pt x="1447" y="63" on="1"/> - <pt x="1466" y="62" on="1"/> - <pt x="1466" y="0" on="1"/> - <pt x="899" y="0" on="1"/> - <pt x="899" y="62" on="1"/> - <pt x="916" y="62" on="1"/> - <pt x="977" y="63" on="1"/> - <pt x="1064" y="64" on="0"/> - <pt x="1064" y="99" on="1"/> - <pt x="1064" y="122" on="0"/> - <pt x="1023" y="181" on="1"/> - <pt x="968" y="260" on="1"/> - <pt x="691" y="676" on="1"/> - <pt x="376" y="261" on="1"/> - <pt x="358" y="237" on="1"/> - <pt x="342" y="216" on="1"/> - <pt x="331" y="202" on="1"/> - <pt x="321" y="189" on="1"/> - <pt x="265" y="115" on="0"/> - <pt x="265" y="95" on="1"/> - <pt x="265" y="64" on="0"/> - <pt x="345" y="63" on="1"/> - <pt x="405" y="62" on="1"/> - <pt x="426" y="62" on="1"/> - <pt x="426" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 67 values pushed */ - 70 69 59 58 52 51 48 43 42 36 33 32 26 17 16 13 8 7 1 19 14 0 3 71 50 - 49 0 3 0 35 34 15 14 0 3 14 71 70 69 66 59 58 55 52 51 50 49 48 43 42 - 36 35 34 33 32 29 26 20 17 16 15 14 13 8 7 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Y" xMin="0" yMin="0" xMax="1478" yMax="1480"> - <contour> - <pt x="627" y="656" on="1"/> - <pt x="252" y="1215" on="1"/> - <pt x="193" y="1303" on="1"/> - <pt x="124" y="1408" on="0"/> - <pt x="77" y="1415" on="1"/> - <pt x="19" y="1417" on="1"/> - <pt x="0" y="1419" on="1"/> - <pt x="0" y="1480" on="1"/> - <pt x="573" y="1480" on="1"/> - <pt x="573" y="1419" on="1"/> - <pt x="554" y="1419" on="1"/> - <pt x="483" y="1417" on="1"/> - <pt x="409" y="1415" on="0"/> - <pt x="409" y="1380" on="1"/> - <pt x="409" y="1351" on="0"/> - <pt x="457" y="1281" on="1"/> - <pt x="502" y="1215" on="1"/> - <pt x="816" y="748" on="1"/> - <pt x="1131" y="1214" on="1"/> - <pt x="1226" y="1354" on="0"/> - <pt x="1226" y="1389" on="1"/> - <pt x="1226" y="1414" on="0"/> - <pt x="1143" y="1417" on="1"/> - <pt x="1087" y="1419" on="1"/> - <pt x="1069" y="1419" on="1"/> - <pt x="1069" y="1480" on="1"/> - <pt x="1478" y="1480" on="1"/> - <pt x="1478" y="1419" on="1"/> - <pt x="1459" y="1417" on="1"/> - <pt x="1458" y="1417" on="0"/> - <pt x="1453" y="1418" on="1"/> - <pt x="1450" y="1415" on="0"/> - <pt x="1447" y="1415" on="1"/> - <pt x="1426" y="1416" on="1"/> - <pt x="1353" y="1419" on="0"/> - <pt x="1297" y="1333" on="1"/> - <pt x="1295" y="1329" on="0"/> - <pt x="1288" y="1319" on="1"/> - <pt x="1282" y="1310" on="0"/> - <pt x="1275" y="1301" on="1"/> - <pt x="1246" y="1258" on="0"/> - <pt x="1217" y="1215" on="1"/> - <pt x="837" y="656" on="1"/> - <pt x="837" y="259" on="1"/> - <pt x="836" y="140" on="0"/> - <pt x="854" y="104" on="1"/> - <pt x="869" y="72" on="0"/> - <pt x="935" y="68" on="1"/> - <pt x="1003" y="63" on="1"/> - <pt x="1022" y="62" on="1"/> - <pt x="1022" y="0" on="1"/> - <pt x="442" y="0" on="1"/> - <pt x="442" y="62" on="1"/> - <pt x="460" y="63" on="1"/> - <pt x="528" y="68" on="1"/> - <pt x="603" y="74" on="0"/> - <pt x="613" y="115" on="1"/> - <pt x="627" y="175" on="0"/> - <pt x="627" y="259" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 77 values pushed */ - 58 51 43 50 33 32 30 42 33 32 30 27 24 23 17 10 9 6 4 0 13 7 50 3 51 - 50 1 0 26 25 8 7 0 3 14 51 58 50 43 17 42 0 2 27 26 25 24 23 5 13 - 20 42 10 9 8 7 6 4 6 13 13 0 0 0 43 42 32 1 0 1 4 48 196 58 0 - 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - MDAP[1] - MDAP[1] - MDAP[1] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Yacute" xMin="0" yMin="0" xMax="1478" yMax="1925"> - <contour> - <pt x="627" y="656" on="1"/> - <pt x="252" y="1215" on="1"/> - <pt x="193" y="1303" on="1"/> - <pt x="124" y="1408" on="0"/> - <pt x="77" y="1415" on="1"/> - <pt x="19" y="1417" on="1"/> - <pt x="0" y="1419" on="1"/> - <pt x="0" y="1480" on="1"/> - <pt x="573" y="1480" on="1"/> - <pt x="573" y="1419" on="1"/> - <pt x="554" y="1419" on="1"/> - <pt x="483" y="1417" on="1"/> - <pt x="409" y="1415" on="0"/> - <pt x="409" y="1380" on="1"/> - <pt x="409" y="1351" on="0"/> - <pt x="457" y="1281" on="1"/> - <pt x="502" y="1215" on="1"/> - <pt x="816" y="748" on="1"/> - <pt x="1131" y="1214" on="1"/> - <pt x="1226" y="1354" on="0"/> - <pt x="1226" y="1389" on="1"/> - <pt x="1226" y="1414" on="0"/> - <pt x="1143" y="1417" on="1"/> - <pt x="1087" y="1419" on="1"/> - <pt x="1069" y="1419" on="1"/> - <pt x="1069" y="1480" on="1"/> - <pt x="1478" y="1480" on="1"/> - <pt x="1478" y="1419" on="1"/> - <pt x="1459" y="1417" on="1"/> - <pt x="1458" y="1417" on="0"/> - <pt x="1453" y="1418" on="1"/> - <pt x="1450" y="1415" on="0"/> - <pt x="1447" y="1415" on="1"/> - <pt x="1426" y="1416" on="1"/> - <pt x="1353" y="1419" on="0"/> - <pt x="1297" y="1333" on="1"/> - <pt x="1295" y="1329" on="0"/> - <pt x="1288" y="1319" on="1"/> - <pt x="1282" y="1310" on="0"/> - <pt x="1275" y="1301" on="1"/> - <pt x="1246" y="1258" on="0"/> - <pt x="1217" y="1215" on="1"/> - <pt x="837" y="656" on="1"/> - <pt x="837" y="259" on="1"/> - <pt x="836" y="140" on="0"/> - <pt x="854" y="104" on="1"/> - <pt x="869" y="72" on="0"/> - <pt x="935" y="68" on="1"/> - <pt x="1003" y="63" on="1"/> - <pt x="1022" y="62" on="1"/> - <pt x="1022" y="0" on="1"/> - <pt x="442" y="0" on="1"/> - <pt x="442" y="62" on="1"/> - <pt x="460" y="63" on="1"/> - <pt x="528" y="68" on="1"/> - <pt x="603" y="74" on="0"/> - <pt x="613" y="115" on="1"/> - <pt x="627" y="175" on="0"/> - <pt x="627" y="259" on="1"/> - </contour> - <contour> - <pt x="649" y="1604" on="1"/> - <pt x="890" y="1925" on="1"/> - <pt x="1149" y="1925" on="1"/> - <pt x="742" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 92 values pushed */ - 58 51 43 50 62 59 2 60 7 3 33 32 30 42 33 32 30 27 24 23 17 10 9 6 4 - 0 13 7 50 3 61 60 1 51 50 1 2 0 26 25 8 7 0 3 14 51 58 50 43 62 - 59 17 3 42 0 3 61 60 27 26 25 24 23 7 13 20 42 10 9 8 7 6 4 6 13 - 13 0 0 0 43 42 32 1 0 1 4 48 196 58 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - MDAP[1] - MDAP[1] - MDAP[1] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ycircumflex" xMin="0" yMin="0" xMax="1478" yMax="1925"> - <contour> - <pt x="627" y="656" on="1"/> - <pt x="252" y="1215" on="1"/> - <pt x="193" y="1303" on="1"/> - <pt x="124" y="1408" on="0"/> - <pt x="77" y="1415" on="1"/> - <pt x="19" y="1417" on="1"/> - <pt x="0" y="1419" on="1"/> - <pt x="0" y="1480" on="1"/> - <pt x="573" y="1480" on="1"/> - <pt x="573" y="1419" on="1"/> - <pt x="554" y="1419" on="1"/> - <pt x="483" y="1417" on="1"/> - <pt x="409" y="1415" on="0"/> - <pt x="409" y="1380" on="1"/> - <pt x="409" y="1351" on="0"/> - <pt x="457" y="1281" on="1"/> - <pt x="502" y="1215" on="1"/> - <pt x="816" y="748" on="1"/> - <pt x="1131" y="1214" on="1"/> - <pt x="1226" y="1354" on="0"/> - <pt x="1226" y="1389" on="1"/> - <pt x="1226" y="1414" on="0"/> - <pt x="1143" y="1417" on="1"/> - <pt x="1087" y="1419" on="1"/> - <pt x="1069" y="1419" on="1"/> - <pt x="1069" y="1480" on="1"/> - <pt x="1478" y="1480" on="1"/> - <pt x="1478" y="1419" on="1"/> - <pt x="1459" y="1417" on="1"/> - <pt x="1458" y="1417" on="0"/> - <pt x="1453" y="1418" on="1"/> - <pt x="1450" y="1415" on="0"/> - <pt x="1447" y="1415" on="1"/> - <pt x="1426" y="1416" on="1"/> - <pt x="1353" y="1419" on="0"/> - <pt x="1297" y="1333" on="1"/> - <pt x="1295" y="1329" on="0"/> - <pt x="1288" y="1319" on="1"/> - <pt x="1282" y="1310" on="0"/> - <pt x="1275" y="1301" on="1"/> - <pt x="1246" y="1258" on="0"/> - <pt x="1217" y="1215" on="1"/> - <pt x="837" y="656" on="1"/> - <pt x="837" y="259" on="1"/> - <pt x="836" y="140" on="0"/> - <pt x="854" y="104" on="1"/> - <pt x="869" y="72" on="0"/> - <pt x="935" y="68" on="1"/> - <pt x="1003" y="63" on="1"/> - <pt x="1022" y="62" on="1"/> - <pt x="1022" y="0" on="1"/> - <pt x="442" y="0" on="1"/> - <pt x="442" y="62" on="1"/> - <pt x="460" y="63" on="1"/> - <pt x="528" y="68" on="1"/> - <pt x="603" y="74" on="0"/> - <pt x="613" y="115" on="1"/> - <pt x="627" y="175" on="0"/> - <pt x="627" y="259" on="1"/> - </contour> - <contour> - <pt x="469" y="1604" on="1"/> - <pt x="710" y="1925" on="1"/> - <pt x="932" y="1925" on="1"/> - <pt x="1172" y="1604" on="1"/> - <pt x="1086" y="1604" on="1"/> - <pt x="821" y="1826" on="1"/> - <pt x="555" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 98 values pushed */ - 58 51 43 50 65 64 63 62 59 5 60 7 3 33 32 30 42 33 32 30 27 24 23 17 10 - 9 6 4 0 13 7 50 3 61 60 1 51 50 1 2 0 26 25 8 7 0 3 14 51 58 - 50 43 64 60 17 3 42 0 3 63 62 61 27 26 25 24 23 8 13 20 42 65 59 10 9 - 8 7 6 4 8 13 13 0 0 0 43 42 32 1 0 1 4 48 196 58 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - MDAP[1] - MDAP[1] - MDAP[1] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ydieresis" xMin="0" yMin="0" xMax="1478" yMax="1777"> - <contour> - <pt x="627" y="656" on="1"/> - <pt x="252" y="1215" on="1"/> - <pt x="193" y="1303" on="1"/> - <pt x="124" y="1408" on="0"/> - <pt x="77" y="1415" on="1"/> - <pt x="19" y="1417" on="1"/> - <pt x="0" y="1419" on="1"/> - <pt x="0" y="1480" on="1"/> - <pt x="573" y="1480" on="1"/> - <pt x="573" y="1419" on="1"/> - <pt x="554" y="1419" on="1"/> - <pt x="483" y="1417" on="1"/> - <pt x="409" y="1415" on="0"/> - <pt x="409" y="1380" on="1"/> - <pt x="409" y="1351" on="0"/> - <pt x="457" y="1281" on="1"/> - <pt x="502" y="1215" on="1"/> - <pt x="816" y="748" on="1"/> - <pt x="1131" y="1214" on="1"/> - <pt x="1226" y="1354" on="0"/> - <pt x="1226" y="1389" on="1"/> - <pt x="1226" y="1414" on="0"/> - <pt x="1143" y="1417" on="1"/> - <pt x="1087" y="1419" on="1"/> - <pt x="1069" y="1419" on="1"/> - <pt x="1069" y="1480" on="1"/> - <pt x="1478" y="1480" on="1"/> - <pt x="1478" y="1419" on="1"/> - <pt x="1459" y="1417" on="1"/> - <pt x="1458" y="1417" on="0"/> - <pt x="1453" y="1418" on="1"/> - <pt x="1450" y="1415" on="0"/> - <pt x="1447" y="1415" on="1"/> - <pt x="1426" y="1416" on="1"/> - <pt x="1353" y="1419" on="0"/> - <pt x="1297" y="1333" on="1"/> - <pt x="1295" y="1329" on="0"/> - <pt x="1288" y="1319" on="1"/> - <pt x="1282" y="1310" on="0"/> - <pt x="1275" y="1301" on="1"/> - <pt x="1246" y="1258" on="0"/> - <pt x="1217" y="1215" on="1"/> - <pt x="837" y="656" on="1"/> - <pt x="837" y="259" on="1"/> - <pt x="836" y="140" on="0"/> - <pt x="854" y="104" on="1"/> - <pt x="869" y="72" on="0"/> - <pt x="935" y="68" on="1"/> - <pt x="1003" y="63" on="1"/> - <pt x="1022" y="62" on="1"/> - <pt x="1022" y="0" on="1"/> - <pt x="442" y="0" on="1"/> - <pt x="442" y="62" on="1"/> - <pt x="460" y="63" on="1"/> - <pt x="528" y="68" on="1"/> - <pt x="603" y="74" on="0"/> - <pt x="613" y="115" on="1"/> - <pt x="627" y="175" on="0"/> - <pt x="627" y="259" on="1"/> - </contour> - <contour> - <pt x="537" y="1604" on="1"/> - <pt x="537" y="1777" on="1"/> - <pt x="710" y="1777" on="1"/> - <pt x="710" y="1604" on="1"/> - </contour> - <contour> - <pt x="932" y="1604" on="1"/> - <pt x="932" y="1777" on="1"/> - <pt x="1105" y="1777" on="1"/> - <pt x="1105" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 121 values pushed */ - 58 51 43 50 33 32 30 42 33 32 30 27 24 23 17 10 9 6 4 0 13 7 50 3 0 - 0 66 63 62 59 13 3 60 1 4 48 84 65 64 61 60 3 51 50 1 2 0 26 25 8 - 7 0 3 14 51 58 50 43 25 24 23 3 65 63 3 17 42 61 2 10 9 8 3 0 59 - 3 27 26 2 13 20 65 7 6 4 3 13 13 59 0 0 64 63 13 1 65 62 61 13 1 - 59 43 42 32 1 0 3 4 48 196 66 65 1 60 59 1 58 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[1] - MDAP[1] - MDAP[1] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Z" xMin="92" yMin="0" xMax="1129" yMax="1480"> - <contour> - <pt x="92" y="0" on="1"/> - <pt x="92" y="80" on="1"/> - <pt x="887" y="1400" on="1"/> - <pt x="436" y="1400" on="1"/> - <pt x="327" y="1396" on="1"/> - <pt x="263" y="1395" on="0"/> - <pt x="252" y="1377" on="1"/> - <pt x="242" y="1360" on="0"/> - <pt x="242" y="1322" on="1"/> - <pt x="239" y="1209" on="1"/> - <pt x="237" y="1184" on="1"/> - <pt x="126" y="1184" on="1"/> - <pt x="126" y="1480" on="1"/> - <pt x="1122" y="1480" on="1"/> - <pt x="1122" y="1413" on="1"/> - <pt x="331" y="93" on="1"/> - <pt x="779" y="93" on="1"/> - <pt x="945" y="99" on="1"/> - <pt x="1008" y="100" on="0"/> - <pt x="1012" y="165" on="1"/> - <pt x="1016" y="265" on="1"/> - <pt x="1017" y="284" on="1"/> - <pt x="1129" y="284" on="1"/> - <pt x="1129" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 63 values pushed */ - 14 12 2 2 22 21 11 10 4 2 15 3 1 15 0 2 0 0 3 2 21 1 12 16 15 - 35 1 0 2 4 48 84 23 0 1 0 13 12 0 14 21 16 15 14 13 10 3 2 8 22 - 11 3 1 0 11 23 22 1 12 11 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Zacute" xMin="92" yMin="0" xMax="1129" yMax="1925"> - <contour> - <pt x="92" y="0" on="1"/> - <pt x="92" y="80" on="1"/> - <pt x="887" y="1400" on="1"/> - <pt x="436" y="1400" on="1"/> - <pt x="327" y="1396" on="1"/> - <pt x="263" y="1395" on="0"/> - <pt x="252" y="1377" on="1"/> - <pt x="242" y="1360" on="0"/> - <pt x="242" y="1322" on="1"/> - <pt x="239" y="1209" on="1"/> - <pt x="237" y="1184" on="1"/> - <pt x="126" y="1184" on="1"/> - <pt x="126" y="1480" on="1"/> - <pt x="1122" y="1480" on="1"/> - <pt x="1122" y="1413" on="1"/> - <pt x="331" y="93" on="1"/> - <pt x="779" y="93" on="1"/> - <pt x="945" y="99" on="1"/> - <pt x="1008" y="100" on="0"/> - <pt x="1012" y="165" on="1"/> - <pt x="1016" y="265" on="1"/> - <pt x="1017" y="284" on="1"/> - <pt x="1129" y="284" on="1"/> - <pt x="1129" y="0" on="1"/> - </contour> - <contour> - <pt x="510" y="1604" on="1"/> - <pt x="751" y="1925" on="1"/> - <pt x="1010" y="1925" on="1"/> - <pt x="603" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 77 values pushed */ - 27 24 2 25 12 3 14 12 2 2 22 21 11 10 4 2 15 3 1 15 0 2 0 0 3 - 2 21 1 12 16 15 35 1 0 2 4 48 84 26 25 1 23 0 1 2 0 13 12 0 14 - 27 26 25 24 21 16 15 14 13 10 3 2 12 22 11 3 1 0 11 23 22 1 12 11 1 - 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Zcaron" xMin="92" yMin="0" xMax="1129" yMax="1925"> - <contour> - <pt x="92" y="0" on="1"/> - <pt x="92" y="80" on="1"/> - <pt x="887" y="1400" on="1"/> - <pt x="436" y="1400" on="1"/> - <pt x="327" y="1396" on="1"/> - <pt x="263" y="1395" on="0"/> - <pt x="252" y="1377" on="1"/> - <pt x="242" y="1360" on="0"/> - <pt x="242" y="1322" on="1"/> - <pt x="239" y="1209" on="1"/> - <pt x="237" y="1184" on="1"/> - <pt x="126" y="1184" on="1"/> - <pt x="126" y="1480" on="1"/> - <pt x="1122" y="1480" on="1"/> - <pt x="1122" y="1413" on="1"/> - <pt x="331" y="93" on="1"/> - <pt x="779" y="93" on="1"/> - <pt x="945" y="99" on="1"/> - <pt x="1008" y="100" on="0"/> - <pt x="1012" y="165" on="1"/> - <pt x="1016" y="265" on="1"/> - <pt x="1017" y="284" on="1"/> - <pt x="1129" y="284" on="1"/> - <pt x="1129" y="0" on="1"/> - </contour> - <contour> - <pt x="979" y="1925" on="1"/> - <pt x="739" y="1604" on="1"/> - <pt x="517" y="1604" on="1"/> - <pt x="276" y="1925" on="1"/> - <pt x="362" y="1925" on="1"/> - <pt x="628" y="1703" on="1"/> - <pt x="893" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 82 values pushed */ - 14 12 2 2 22 21 11 10 4 2 15 3 1 15 0 2 30 29 28 27 24 5 13 25 0 - 0 3 2 21 1 12 16 15 35 1 0 2 4 48 84 26 25 1 23 0 1 2 0 13 12 - 0 14 30 29 28 27 26 25 24 21 16 15 14 13 10 3 2 15 22 11 3 1 0 11 23 - 22 1 12 11 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Zdotaccent" xMin="92" yMin="0" xMax="1129" yMax="1801"> - <contour> - <pt x="92" y="0" on="1"/> - <pt x="92" y="80" on="1"/> - <pt x="887" y="1400" on="1"/> - <pt x="436" y="1400" on="1"/> - <pt x="327" y="1396" on="1"/> - <pt x="263" y="1395" on="0"/> - <pt x="252" y="1377" on="1"/> - <pt x="242" y="1360" on="0"/> - <pt x="242" y="1322" on="1"/> - <pt x="239" y="1209" on="1"/> - <pt x="237" y="1184" on="1"/> - <pt x="126" y="1184" on="1"/> - <pt x="126" y="1480" on="1"/> - <pt x="1122" y="1480" on="1"/> - <pt x="1122" y="1413" on="1"/> - <pt x="331" y="93" on="1"/> - <pt x="779" y="93" on="1"/> - <pt x="945" y="99" on="1"/> - <pt x="1008" y="100" on="0"/> - <pt x="1012" y="165" on="1"/> - <pt x="1016" y="265" on="1"/> - <pt x="1017" y="284" on="1"/> - <pt x="1129" y="284" on="1"/> - <pt x="1129" y="0" on="1"/> - </contour> - <contour> - <pt x="512" y="1604" on="1"/> - <pt x="512" y="1801" on="1"/> - <pt x="709" y="1801" on="1"/> - <pt x="709" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 90 values pushed */ - 14 12 2 2 22 21 11 10 4 2 15 3 1 15 0 2 0 0 27 24 5 1 25 3 2 - 21 1 12 16 15 35 1 0 3 4 48 84 26 25 1 23 0 1 2 0 13 12 0 14 21 - 16 14 13 2 5 22 26 3 15 10 3 3 24 11 3 1 0 11 0 0 27 26 4 1 24 - 1 4 48 196 25 24 1 23 22 1 12 11 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="a" xMin="75" yMin="-25" xMax="904" yMax="1110"> - <contour> - <pt x="629" y="149" on="1"/> - <pt x="513" y="-25" on="0"/> - <pt x="344" y="-25" on="1"/> - <pt x="221" y="-25" on="0"/> - <pt x="148" y="55" on="1"/> - <pt x="75" y="136" on="0"/> - <pt x="75" y="273" on="1"/> - <pt x="75" y="642" on="0"/> - <pt x="543" y="642" on="1"/> - <pt x="584" y="642" on="1"/> - <pt x="584" y="777" on="1"/> - <pt x="584" y="940" on="0"/> - <pt x="558" y="986" on="1"/> - <pt x="532" y="1034" on="0"/> - <pt x="445" y="1034" on="1"/> - <pt x="361" y="1034" on="0"/> - <pt x="327" y="996" on="1"/> - <pt x="293" y="958" on="0"/> - <pt x="293" y="863" on="1"/> - <pt x="293" y="845" on="1"/> - <pt x="157" y="845" on="1"/> - <pt x="157" y="1019" on="1"/> - <pt x="305" y="1110" on="0"/> - <pt x="473" y="1110" on="1"/> - <pt x="639" y="1110" on="0"/> - <pt x="710" y="1036" on="1"/> - <pt x="781" y="962" on="0"/> - <pt x="781" y="785" on="1"/> - <pt x="781" y="301" on="1"/> - <pt x="781" y="156" on="0"/> - <pt x="794" y="110" on="1"/> - <pt x="807" y="65" on="0"/> - <pt x="847" y="65" on="1"/> - <pt x="863" y="65" on="0"/> - <pt x="898" y="74" on="1"/> - <pt x="904" y="0" on="1"/> - <pt x="828" y="-25" on="0"/> - <pt x="792" y="-25" on="1"/> - <pt x="668" y="-25" on="0"/> - </contour> - <contour> - <pt x="584" y="171" on="1"/> - <pt x="584" y="580" on="1"/> - <pt x="538" y="580" on="1"/> - <pt x="288" y="580" on="0"/> - <pt x="288" y="312" on="1"/> - <pt x="288" y="93" on="0"/> - <pt x="431" y="93" on="1"/> - <pt x="503" y="93" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 87 values pushed */ - 0 0 45 22 2 14 21 23 48 84 37 2 23 1 2 2 28 35 1 1 41 40 39 27 21 - 20 19 18 10 9 8 0 12 1 2 3 0 0 1 35 2 0 14 0 0 43 10 6 48 196 - 35 28 0 27 9 2 41 19 18 8 4 9 20 3 6 20 0 0 40 39 10 9 4 3 27 - 1 4 48 196 28 27 1 21 20 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SRP0[ ] - MDRP[00000] - MIAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="aacute" xMin="75" yMin="-25" xMax="904" yMax="1604"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="192" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="abreve" xMin="75" yMin="-25" xMax="904" yMax="1604"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="breve" x="133" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="acircumflex" xMin="75" yMin="-25" xMax="904" yMax="1604"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="circumflex" x="133" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="acute" xMin="91" yMin="1283" xMax="591" yMax="1604"> - <contour> - <pt x="91" y="1283" on="1"/> - <pt x="332" y="1604" on="1"/> - <pt x="591" y="1604" on="1"/> - <pt x="184" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 12 values pushed */ - 3 0 1 2 1 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="adieresis" xMin="75" yMin="-25" xMax="904" yMax="1456"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="dieresis" x="134" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ae" xMin="75" yMin="-25" xMax="1304" yMax="1111"> - <contour> - <pt x="649" y="181" on="1"/> - <pt x="582" y="71" on="0"/> - <pt x="525" y="27" on="1"/> - <pt x="457" y="-25" on="0"/> - <pt x="347" y="-25" on="1"/> - <pt x="221" y="-25" on="0"/> - <pt x="148" y="55" on="1"/> - <pt x="75" y="136" on="0"/> - <pt x="75" y="273" on="1"/> - <pt x="75" y="642" on="0"/> - <pt x="542" y="642" on="1"/> - <pt x="583" y="642" on="1"/> - <pt x="583" y="777" on="1"/> - <pt x="583" y="939" on="0"/> - <pt x="558" y="986" on="1"/> - <pt x="533" y="1034" on="0"/> - <pt x="445" y="1034" on="1"/> - <pt x="361" y="1034" on="0"/> - <pt x="326" y="996" on="1"/> - <pt x="292" y="958" on="0"/> - <pt x="292" y="863" on="1"/> - <pt x="292" y="845" on="1"/> - <pt x="156" y="845" on="1"/> - <pt x="156" y="1019" on="1"/> - <pt x="304" y="1110" on="0"/> - <pt x="469" y="1110" on="1"/> - <pt x="643" y="1110" on="0"/> - <pt x="732" y="1009" on="1"/> - <pt x="848" y="1111" on="0"/> - <pt x="975" y="1111" on="1"/> - <pt x="1304" y="1111" on="0"/> - <pt x="1304" y="605" on="1"/> - <pt x="1304" y="586" on="1"/> - <pt x="781" y="586" on="1"/> - <pt x="785" y="348" on="0"/> - <pt x="838" y="233" on="1"/> - <pt x="910" y="75" on="0"/> - <pt x="1067" y="75" on="1"/> - <pt x="1159" y="75" on="0"/> - <pt x="1304" y="150" on="1"/> - <pt x="1304" y="49" on="1"/> - <pt x="1158" y="-25" on="0"/> - <pt x="1029" y="-25" on="1"/> - <pt x="890" y="-25" on="0"/> - <pt x="780" y="51" on="1"/> - <pt x="715" y="96" on="0"/> - </contour> - <contour> - <pt x="583" y="171" on="1"/> - <pt x="583" y="580" on="1"/> - <pt x="538" y="580" on="1"/> - <pt x="288" y="580" on="0"/> - <pt x="288" y="312" on="1"/> - <pt x="288" y="93" on="0"/> - <pt x="431" y="93" on="1"/> - <pt x="502" y="93" on="0"/> - </contour> - <contour> - <pt x="781" y="648" on="1"/> - <pt x="1095" y="648" on="1"/> - <pt x="1095" y="692" on="1"/> - <pt x="1095" y="890" on="0"/> - <pt x="1067" y="966" on="1"/> - <pt x="1038" y="1043" on="0"/> - <pt x="963" y="1043" on="1"/> - <pt x="864" y="1043" on="0"/> - <pt x="818" y="925" on="1"/> - <pt x="784" y="837" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 112 values pushed */ - 0 0 60 17 29 52 22 4 37 9 42 16 21 25 48 84 42 2 29 1 25 1 4 2 1 - 56 27 23 22 21 20 12 7 1 54 3 0 31 11 10 3 54 32 3 1 48 47 46 40 39 - 0 6 32 2 3 0 0 0 33 32 14 1 54 1 4 48 84 55 54 1 0 14 0 0 50 - 10 8 48 196 48 21 20 10 4 11 22 3 56 55 54 40 39 33 32 31 27 0 10 13 11 - 8 22 47 46 12 11 3 23 22 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="afii00208" xMin="99" yMin="543" xMax="1950" yMax="642"> - <contour> - <pt x="99" y="543" on="1"/> - <pt x="99" y="642" on="1"/> - <pt x="1950" y="642" on="1"/> - <pt x="1950" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 0 0 3 0 9 1 1 1 4 48 84 2 1 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="agrave" xMin="75" yMin="-25" xMax="904" yMax="1604"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="grave" x="75" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="amacron" xMin="75" yMin="-25" xMax="904" yMax="1406"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="macron" x="120" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ampersand" xMin="99" yMin="-37" xMax="1541" yMax="1518"> - <contour> - <pt x="1152" y="0" on="1"/> - <pt x="1058" y="103" on="1"/> - <pt x="833" y="-37" on="0"/> - <pt x="618" y="-37" on="1"/> - <pt x="394" y="-37" on="0"/> - <pt x="246" y="97" on="1"/> - <pt x="99" y="231" on="0"/> - <pt x="99" y="437" on="1"/> - <pt x="99" y="632" on="0"/> - <pt x="238" y="756" on="1"/> - <pt x="322" y="830" on="0"/> - <pt x="482" y="888" on="1"/> - <pt x="358" y="1058" on="0"/> - <pt x="358" y="1193" on="1"/> - <pt x="358" y="1339" on="0"/> - <pt x="460" y="1428" on="1"/> - <pt x="562" y="1518" on="0"/> - <pt x="736" y="1518" on="1"/> - <pt x="908" y="1518" on="0"/> - <pt x="1006" y="1439" on="1"/> - <pt x="1105" y="1361" on="0"/> - <pt x="1105" y="1224" on="1"/> - <pt x="1105" y="1066" on="0"/> - <pt x="971" y="963" on="1"/> - <pt x="890" y="901" on="0"/> - <pt x="736" y="851" on="1"/> - <pt x="791" y="777" on="1"/> - <pt x="932" y="584" on="1"/> - <pt x="1077" y="389" on="1"/> - <pt x="1152" y="286" on="1"/> - <pt x="1242" y="417" on="0"/> - <pt x="1242" y="603" on="1"/> - <pt x="1240" y="660" on="1"/> - <pt x="1239" y="719" on="0"/> - <pt x="1175" y="719" on="1"/> - <pt x="1163" y="719" on="0"/> - <pt x="1125" y="722" on="1"/> - <pt x="1091" y="724" on="1"/> - <pt x="1072" y="725" on="1"/> - <pt x="1072" y="786" on="1"/> - <pt x="1541" y="786" on="1"/> - <pt x="1541" y="725" on="1"/> - <pt x="1520" y="724" on="1"/> - <pt x="1440" y="720" on="1"/> - <pt x="1398" y="718" on="0"/> - <pt x="1391" y="698" on="1"/> - <pt x="1384" y="680" on="0"/> - <pt x="1384" y="641" on="1"/> - <pt x="1384" y="472" on="0"/> - <pt x="1198" y="236" on="1"/> - <pt x="1203" y="231" on="1"/> - <pt x="1209" y="224" on="1"/> - <pt x="1219" y="214" on="0"/> - <pt x="1225" y="207" on="1"/> - <pt x="1228" y="204" on="1"/> - <pt x="1240" y="192" on="1"/> - <pt x="1252" y="178" on="0"/> - <pt x="1269" y="161" on="1"/> - <pt x="1301" y="127" on="0"/> - <pt x="1321" y="110" on="1"/> - <pt x="1368" y="72" on="0"/> - <pt x="1424" y="69" on="1"/> - <pt x="1515" y="63" on="1"/> - <pt x="1528" y="62" on="1"/> - <pt x="1528" y="0" on="1"/> - </contour> - <contour> - <pt x="1013" y="155" on="1"/> - <pt x="775" y="432" on="0"/> - <pt x="513" y="835" on="1"/> - <pt x="417" y="787" on="0"/> - <pt x="368" y="724" on="1"/> - <pt x="297" y="633" on="0"/> - <pt x="297" y="494" on="1"/> - <pt x="297" y="306" on="0"/> - <pt x="414" y="191" on="1"/> - <pt x="531" y="75" on="0"/> - <pt x="723" y="75" on="1"/> - <pt x="879" y="75" on="0"/> - </contour> - <contour> - <pt x="702" y="896" on="1"/> - <pt x="800" y="961" on="0"/> - <pt x="848" y="1028" on="1"/> - <pt x="920" y="1125" on="0"/> - <pt x="920" y="1250" on="1"/> - <pt x="920" y="1450" on="0"/> - <pt x="742" y="1450" on="1"/> - <pt x="656" y="1450" on="0"/> - <pt x="606" y="1396" on="1"/> - <pt x="555" y="1343" on="0"/> - <pt x="555" y="1254" on="1"/> - <pt x="555" y="1116" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 77 values pushed */ - 0 0 83 17 17 75 15 3 48 84 17 0 3 2 1 77 67 25 11 4 0 39 3 0 65 - 63 49 41 38 31 29 1 8 39 0 3 40 39 1 64 0 1 2 0 14 0 0 87 5 13 - 81 16 21 71 5 7 48 196 77 67 65 64 63 49 41 40 39 38 31 29 25 21 13 11 7 - 1 0 - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="anoteleia" xMin="133" yMin="491" xMax="380" yMax="738"> - <contour> - <pt x="133" y="491" on="1"/> - <pt x="133" y="738" on="1"/> - <pt x="380" y="738" on="1"/> - <pt x="380" y="491" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 31 values pushed */ - 0 0 3 0 6 1 1 1 4 48 84 2 1 1 0 14 0 0 3 2 6 1 0 1 4 - 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="aogonek" xMin="75" yMin="-370" xMax="917" yMax="1110"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="ogonek" x="392" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="aring" xMin="75" yMin="-25" xMax="904" yMax="1737"> - <contour> - <pt x="629" y="149" on="1"/> - <pt x="513" y="-25" on="0"/> - <pt x="344" y="-25" on="1"/> - <pt x="221" y="-25" on="0"/> - <pt x="148" y="55" on="1"/> - <pt x="75" y="136" on="0"/> - <pt x="75" y="273" on="1"/> - <pt x="75" y="642" on="0"/> - <pt x="543" y="642" on="1"/> - <pt x="584" y="642" on="1"/> - <pt x="584" y="777" on="1"/> - <pt x="584" y="940" on="0"/> - <pt x="558" y="986" on="1"/> - <pt x="532" y="1034" on="0"/> - <pt x="445" y="1034" on="1"/> - <pt x="361" y="1034" on="0"/> - <pt x="327" y="996" on="1"/> - <pt x="293" y="958" on="0"/> - <pt x="293" y="863" on="1"/> - <pt x="293" y="845" on="1"/> - <pt x="157" y="845" on="1"/> - <pt x="157" y="1019" on="1"/> - <pt x="305" y="1110" on="0"/> - <pt x="473" y="1110" on="1"/> - <pt x="639" y="1110" on="0"/> - <pt x="710" y="1036" on="1"/> - <pt x="781" y="962" on="0"/> - <pt x="781" y="785" on="1"/> - <pt x="781" y="301" on="1"/> - <pt x="781" y="156" on="0"/> - <pt x="794" y="110" on="1"/> - <pt x="807" y="65" on="0"/> - <pt x="847" y="65" on="1"/> - <pt x="863" y="65" on="0"/> - <pt x="898" y="74" on="1"/> - <pt x="904" y="0" on="1"/> - <pt x="828" y="-25" on="0"/> - <pt x="792" y="-25" on="1"/> - <pt x="668" y="-25" on="0"/> - </contour> - <contour> - <pt x="584" y="171" on="1"/> - <pt x="584" y="580" on="1"/> - <pt x="538" y="580" on="1"/> - <pt x="288" y="580" on="0"/> - <pt x="288" y="312" on="1"/> - <pt x="288" y="93" on="0"/> - <pt x="431" y="93" on="1"/> - <pt x="503" y="93" on="0"/> - </contour> - <contour> - <pt x="475" y="1737" on="1"/> - <pt x="569" y="1737" on="0"/> - <pt x="635" y="1671" on="1"/> - <pt x="702" y="1605" on="0"/> - <pt x="702" y="1511" on="1"/> - <pt x="702" y="1415" on="0"/> - <pt x="635" y="1349" on="1"/> - <pt x="569" y="1283" on="0"/> - <pt x="473" y="1283" on="1"/> - <pt x="390" y="1283" on="0"/> - <pt x="328" y="1337" on="1"/> - <pt x="248" y="1406" on="0"/> - <pt x="248" y="1510" on="1"/> - <pt x="248" y="1605" on="0"/> - <pt x="314" y="1671" on="1"/> - <pt x="381" y="1737" on="0"/> - </contour> - <contour> - <pt x="475" y="1669" on="1"/> - <pt x="409" y="1669" on="0"/> - <pt x="363" y="1623" on="1"/> - <pt x="316" y="1576" on="0"/> - <pt x="316" y="1511" on="1"/> - <pt x="316" y="1445" on="0"/> - <pt x="362" y="1398" on="1"/> - <pt x="409" y="1351" on="0"/> - <pt x="473" y="1351" on="1"/> - <pt x="534" y="1351" on="0"/> - <pt x="578" y="1388" on="1"/> - <pt x="634" y="1436" on="0"/> - <pt x="634" y="1511" on="1"/> - <pt x="634" y="1577" on="0"/> - <pt x="588" y="1623" on="1"/> - <pt x="541" y="1669" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 109 values pushed */ - 0 0 71 17 55 63 17 47 45 22 2 14 21 23 48 84 37 2 23 1 2 2 28 35 1 - 1 41 40 39 27 21 20 19 18 10 9 8 0 12 1 2 3 0 0 1 55 47 1 0 1 - 35 2 0 14 0 0 75 17 51 67 17 59 43 10 6 48 196 35 28 51 51 0 2 27 9 - 3 59 59 41 19 18 8 5 9 20 3 6 20 0 0 40 39 10 9 4 3 27 1 4 48 - 196 28 27 1 21 20 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - CALL[ ] - MDAP[1] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - SZP0[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SRP0[ ] - MDRP[00000] - MIAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="asciicircum" xMin="36" yMin="592" xMax="924" yMax="1480"> - <contour> - <pt x="36" y="592" on="1"/> - <pt x="480" y="1480" on="1"/> - <pt x="924" y="592" on="1"/> - <pt x="797" y="592" on="1"/> - <pt x="480" y="1224" on="1"/> - <pt x="162" y="592" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 13 values pushed */ - 5 4 3 2 1 0 14 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="asciitilde" xMin="60" yMin="421" xMax="1047" yMax="763"> - <contour> - <pt x="122" y="444" on="1"/> - <pt x="60" y="444" on="1"/> - <pt x="70" y="583" on="0"/> - <pt x="115" y="656" on="1"/> - <pt x="181" y="763" on="0"/> - <pt x="324" y="763" on="1"/> - <pt x="447" y="763" on="0"/> - <pt x="582" y="648" on="1"/> - <pt x="622" y="614" on="1"/> - <pt x="728" y="524" on="0"/> - <pt x="813" y="524" on="1"/> - <pt x="899" y="524" on="0"/> - <pt x="950" y="605" on="1"/> - <pt x="984" y="659" on="0"/> - <pt x="985" y="740" on="1"/> - <pt x="1047" y="740" on="1"/> - <pt x="1037" y="600" on="0"/> - <pt x="992" y="528" on="1"/> - <pt x="926" y="421" on="0"/> - <pt x="783" y="421" on="1"/> - <pt x="660" y="421" on="0"/> - <pt x="525" y="536" on="1"/> - <pt x="485" y="570" on="1"/> - <pt x="378" y="661" on="0"/> - <pt x="294" y="661" on="1"/> - <pt x="208" y="661" on="0"/> - <pt x="157" y="580" on="1"/> - <pt x="123" y="526" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 21 values pushed */ - 0 0 24 41 5 10 41 19 48 84 19 15 14 5 1 0 14 15 14 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="asterisk" xMin="120" yMin="734" xMax="905" yMax="1480"> - <contour> - <pt x="577" y="1152" on="1"/> - <pt x="859" y="1282" on="1"/> - <pt x="905" y="1142" on="1"/> - <pt x="600" y="1081" on="1"/> - <pt x="601" y="1085" on="0"/> - <pt x="601" y="1090" on="1"/> - <pt x="601" y="1094" on="1"/> - <pt x="601" y="1097" on="1"/> - <pt x="601" y="1126" on="0"/> - </contour> - <contour> - <pt x="589" y="1049" on="1"/> - <pt x="801" y="821" on="1"/> - <pt x="681" y="734" on="1"/> - <pt x="530" y="1005" on="1"/> - <pt x="570" y="1015" on="0"/> - </contour> - <contour> - <pt x="495" y="1005" on="1"/> - <pt x="344" y="734" on="1"/> - <pt x="224" y="821" on="1"/> - <pt x="435" y="1049" on="1"/> - <pt x="457" y="1013" on="0"/> - </contour> - <contour> - <pt x="425" y="1081" on="1"/> - <pt x="120" y="1142" on="1"/> - <pt x="166" y="1282" on="1"/> - <pt x="448" y="1152" on="1"/> - <pt x="424" y="1125" on="0"/> - <pt x="424" y="1097" on="1"/> - <pt x="424" y="1094" on="1"/> - <pt x="424" y="1090" on="1"/> - <pt x="425" y="1085" on="0"/> - </contour> - <contour> - <pt x="476" y="1172" on="1"/> - <pt x="438" y="1480" on="1"/> - <pt x="586" y="1480" on="1"/> - <pt x="549" y="1172" on="1"/> - <pt x="526" y="1181" on="0"/> - <pt x="512" y="1181" on="1"/> - <pt x="498" y="1181" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 70 values pushed */ - 33 1 33 31 28 26 25 24 22 21 20 7 6 5 2 1 0 15 29 1 3 0 1 1 19 - 17 16 15 14 12 11 10 9 3 10 1 2 3 0 0 30 29 0 14 31 30 29 28 26 25 - 24 22 21 20 19 17 16 15 14 12 11 10 9 7 6 5 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MDAP[1] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="at" xMin="140" yMin="-37" xMax="1747" yMax="1517"> - <contour> - <pt x="1151" y="44" on="1"/> - <pt x="969" y="-37" on="0"/> - <pt x="802" y="-37" on="1"/> - <pt x="517" y="-37" on="0"/> - <pt x="329" y="137" on="1"/> - <pt x="140" y="310" on="0"/> - <pt x="140" y="580" on="1"/> - <pt x="140" y="913" on="0"/> - <pt x="386" y="1195" on="1"/> - <pt x="668" y="1517" on="0"/> - <pt x="1080" y="1517" on="1"/> - <pt x="1367" y="1517" on="0"/> - <pt x="1557" y="1337" on="1"/> - <pt x="1747" y="1158" on="0"/> - <pt x="1747" y="889" on="1"/> - <pt x="1747" y="651" on="0"/> - <pt x="1597" y="473" on="1"/> - <pt x="1448" y="295" on="0"/> - <pt x="1247" y="295" on="1"/> - <pt x="1073" y="295" on="0"/> - <pt x="1073" y="435" on="1"/> - <pt x="1073" y="475" on="0"/> - <pt x="1082" y="507" on="1"/> - <pt x="1106" y="593" on="1"/> - <pt x="1115" y="635" on="1"/> - <pt x="1094" y="635" on="1"/> - <pt x="1000" y="480" on="0"/> - <pt x="922" y="404" on="1"/> - <pt x="812" y="296" on="0"/> - <pt x="703" y="296" on="1"/> - <pt x="524" y="296" on="0"/> - <pt x="524" y="529" on="1"/> - <pt x="524" y="766" on="0"/> - <pt x="690" y="970" on="1"/> - <pt x="856" y="1173" on="0"/> - <pt x="1051" y="1173" on="1"/> - <pt x="1093" y="1173" on="0"/> - <pt x="1133" y="1162" on="1"/> - <pt x="1214" y="1140" on="1"/> - <pt x="1216" y="1139" on="0"/> - <pt x="1220" y="1138" on="1"/> - <pt x="1224" y="1137" on="1"/> - <pt x="1229" y="1136" on="1"/> - <pt x="1237" y="1134" on="0"/> - <pt x="1241" y="1133" on="1"/> - <pt x="1336" y="1133" on="1"/> - <pt x="1220" y="560" on="1"/> - <pt x="1209" y="506" on="0"/> - <pt x="1209" y="463" on="1"/> - <pt x="1209" y="370" on="0"/> - <pt x="1311" y="370" on="1"/> - <pt x="1450" y="370" on="0"/> - <pt x="1567" y="537" on="1"/> - <pt x="1685" y="705" on="0"/> - <pt x="1685" y="901" on="1"/> - <pt x="1685" y="1136" on="0"/> - <pt x="1509" y="1296" on="1"/> - <pt x="1332" y="1456" on="0"/> - <pt x="1075" y="1456" on="1"/> - <pt x="740" y="1456" on="0"/> - <pt x="471" y="1189" on="1"/> - <pt x="202" y="922" on="0"/> - <pt x="202" y="592" on="1"/> - <pt x="202" y="343" on="0"/> - <pt x="372" y="184" on="1"/> - <pt x="542" y="25" on="0"/> - <pt x="801" y="25" on="1"/> - <pt x="956" y="25" on="0"/> - <pt x="1129" y="100" on="1"/> - </contour> - <contour> - <pt x="1124" y="819" on="1"/> - <pt x="1166" y="1030" on="1"/> - <pt x="1081" y="1073" on="0"/> - <pt x="989" y="1073" on="1"/> - <pt x="850" y="1073" on="0"/> - <pt x="760" y="931" on="1"/> - <pt x="669" y="789" on="0"/> - <pt x="669" y="581" on="1"/> - <pt x="669" y="419" on="0"/> - <pt x="760" y="419" on="1"/> - <pt x="836" y="419" on="0"/> - <pt x="926" y="519" on="1"/> - <pt x="1011" y="615" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 76 values pushed */ - 0 0 78 22 29 72 9 35 66 11 2 58 11 10 50 21 18 48 84 10 0 2 2 35 29 - 18 1 1 70 69 68 45 44 35 29 25 24 23 18 0 12 0 2 3 0 0 14 0 0 76 - 47 31 62 11 6 54 11 14 48 48 20 48 196 70 69 68 45 44 31 25 24 23 20 14 6 - 0 - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MDAP[1] - MDAP[1] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="atilde" xMin="75" yMin="-25" xMax="904" yMax="1518"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="tilde" x="119" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="b" xMin="0" yMin="-25" xMax="956" yMax="1579"> - <contour> - <pt x="121" y="-12" on="1"/> - <pt x="121" y="1320" on="1"/> - <pt x="119" y="1419" on="1"/> - <pt x="119" y="1487" on="0"/> - <pt x="94" y="1501" on="1"/> - <pt x="72" y="1513" on="0"/> - <pt x="19" y="1516" on="1"/> - <pt x="0" y="1517" on="1"/> - <pt x="0" y="1579" on="1"/> - <pt x="318" y="1579" on="1"/> - <pt x="318" y="907" on="1"/> - <pt x="377" y="999" on="0"/> - <pt x="432" y="1044" on="1"/> - <pt x="512" y="1110" on="0"/> - <pt x="610" y="1110" on="1"/> - <pt x="770" y="1110" on="0"/> - <pt x="863" y="968" on="1"/> - <pt x="956" y="826" on="0"/> - <pt x="956" y="575" on="1"/> - <pt x="956" y="293" on="0"/> - <pt x="835" y="134" on="1"/> - <pt x="714" y="-25" on="0"/> - <pt x="503" y="-25" on="1"/> - <pt x="429" y="-25" on="0"/> - <pt x="318" y="0" on="1"/> - </contour> - <contour> - <pt x="318" y="77" on="1"/> - <pt x="399" y="54" on="0"/> - <pt x="449" y="54" on="1"/> - <pt x="585" y="54" on="0"/> - <pt x="664" y="181" on="1"/> - <pt x="743" y="308" on="0"/> - <pt x="743" y="536" on="1"/> - <pt x="743" y="983" on="0"/> - <pt x="542" y="983" on="1"/> - <pt x="449" y="983" on="0"/> - <pt x="318" y="837" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 73 values pushed */ - 0 0 33 29 14 27 21 22 48 84 22 2 14 1 1 7 1 2 8 1 3 0 1 1 35 - 25 10 3 1 2 3 0 0 1 24 0 2 0 9 8 1 0 14 0 0 31 10 18 48 196 - 18 9 8 7 0 0 0 35 25 24 10 9 4 4 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="backslash" xMin="-30" yMin="-296" xMax="600" yMax="1481"> - <contour> - <pt x="600" y="-296" on="1"/> - <pt x="496" y="-296" on="1"/> - <pt x="-30" y="1481" on="1"/> - <pt x="74" y="1481" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 9 values pushed */ - 3 2 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="bar" xMin="156" yMin="-296" xMax="255" yMax="1579"> - <contour> - <pt x="156" y="-296" on="1"/> - <pt x="156" y="1579" on="1"/> - <pt x="255" y="1579" on="1"/> - <pt x="255" y="-296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 3 2 1 0 14 0 0 3 2 9 1 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="braceleft" xMin="148" yMin="-296" xMax="761" yMax="1579"> - <contour> - <pt x="148" y="611" on="1"/> - <pt x="148" y="672" on="1"/> - <pt x="226" y="672" on="1"/> - <pt x="407" y="672" on="0"/> - <pt x="407" y="840" on="1"/> - <pt x="407" y="882" on="0"/> - <pt x="393" y="953" on="1"/> - <pt x="383" y="1003" on="1"/> - <pt x="365" y="1100" on="1"/> - <pt x="346" y="1202" on="0"/> - <pt x="346" y="1268" on="1"/> - <pt x="346" y="1403" on="0"/> - <pt x="446" y="1491" on="1"/> - <pt x="546" y="1579" on="0"/> - <pt x="701" y="1579" on="1"/> - <pt x="761" y="1579" on="1"/> - <pt x="761" y="1517" on="1"/> - <pt x="701" y="1517" on="1"/> - <pt x="506" y="1517" on="0"/> - <pt x="506" y="1349" on="1"/> - <pt x="506" y="1313" on="0"/> - <pt x="513" y="1286" on="1"/> - <pt x="525" y="1239" on="1"/> - <pt x="539" y="1169" on="1"/> - <pt x="557" y="1079" on="0"/> - <pt x="557" y="990" on="1"/> - <pt x="557" y="835" on="0"/> - <pt x="476" y="740" on="1"/> - <pt x="428" y="685" on="0"/> - <pt x="337" y="642" on="1"/> - <pt x="435" y="595" on="0"/> - <pt x="485" y="532" on="1"/> - <pt x="557" y="439" on="0"/> - <pt x="557" y="291" on="1"/> - <pt x="557" y="202" on="0"/> - <pt x="539" y="114" on="1"/> - <pt x="525" y="45" on="1"/> - <pt x="513" y="-2" on="1"/> - <pt x="506" y="-29" on="0"/> - <pt x="506" y="-69" on="1"/> - <pt x="506" y="-234" on="0"/> - <pt x="701" y="-234" on="1"/> - <pt x="761" y="-234" on="1"/> - <pt x="761" y="-296" on="1"/> - <pt x="701" y="-296" on="1"/> - <pt x="546" y="-296" on="0"/> - <pt x="446" y="-208" on="1"/> - <pt x="346" y="-120" on="0"/> - <pt x="346" y="17" on="1"/> - <pt x="346" y="81" on="0"/> - <pt x="365" y="183" on="1"/> - <pt x="383" y="280" on="1"/> - <pt x="393" y="330" on="1"/> - <pt x="407" y="401" on="0"/> - <pt x="407" y="443" on="1"/> - <pt x="407" y="611" on="0"/> - <pt x="226" y="611" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 45 values pushed */ - 56 44 43 42 41 29 22 17 16 15 14 2 1 0 14 0 0 39 24 48 19 24 10 48 196 - 56 54 48 44 43 42 41 33 29 25 22 17 16 15 14 10 4 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="braceright" xMin="222" yMin="-296" xMax="835" yMax="1579"> - <contour> - <pt x="835" y="672" on="1"/> - <pt x="835" y="611" on="1"/> - <pt x="758" y="611" on="1"/> - <pt x="576" y="611" on="0"/> - <pt x="576" y="444" on="1"/> - <pt x="576" y="399" on="0"/> - <pt x="590" y="330" on="1"/> - <pt x="600" y="280" on="1"/> - <pt x="618" y="183" on="1"/> - <pt x="638" y="74" on="0"/> - <pt x="638" y="16" on="1"/> - <pt x="638" y="-120" on="0"/> - <pt x="538" y="-208" on="1"/> - <pt x="438" y="-296" on="0"/> - <pt x="283" y="-296" on="1"/> - <pt x="222" y="-296" on="1"/> - <pt x="222" y="-234" on="1"/> - <pt x="282" y="-234" on="1"/> - <pt x="478" y="-234" on="0"/> - <pt x="478" y="-68" on="1"/> - <pt x="478" y="-34" on="0"/> - <pt x="470" y="-2" on="1"/> - <pt x="458" y="45" on="1"/> - <pt x="445" y="114" on="1"/> - <pt x="427" y="209" on="0"/> - <pt x="427" y="293" on="1"/> - <pt x="427" y="448" on="0"/> - <pt x="508" y="543" on="1"/> - <pt x="556" y="598" on="0"/> - <pt x="647" y="642" on="1"/> - <pt x="549" y="688" on="0"/> - <pt x="499" y="752" on="1"/> - <pt x="427" y="844" on="0"/> - <pt x="427" y="992" on="1"/> - <pt x="427" y="1073" on="0"/> - <pt x="445" y="1169" on="1"/> - <pt x="458" y="1239" on="1"/> - <pt x="470" y="1286" on="1"/> - <pt x="478" y="1318" on="0"/> - <pt x="478" y="1352" on="1"/> - <pt x="478" y="1517" on="0"/> - <pt x="282" y="1517" on="1"/> - <pt x="222" y="1517" on="1"/> - <pt x="222" y="1579" on="1"/> - <pt x="283" y="1579" on="1"/> - <pt x="438" y="1579" on="0"/> - <pt x="538" y="1491" on="1"/> - <pt x="638" y="1403" on="0"/> - <pt x="638" y="1266" on="1"/> - <pt x="638" y="1209" on="0"/> - <pt x="618" y="1100" on="1"/> - <pt x="600" y="1003" on="1"/> - <pt x="590" y="953" on="1"/> - <pt x="576" y="884" on="0"/> - <pt x="576" y="840" on="1"/> - <pt x="576" y="672" on="0"/> - <pt x="758" y="672" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 47 values pushed */ - 56 44 43 42 41 36 29 22 17 16 15 14 2 1 0 14 0 0 39 24 48 19 24 10 48 - 196 56 54 48 44 43 42 41 36 33 29 25 22 17 16 15 14 10 4 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="bracketleft" xMin="185" yMin="-296" xMax="589" yMax="1579"> - <contour> - <pt x="185" y="-296" on="1"/> - <pt x="185" y="1579" on="1"/> - <pt x="589" y="1579" on="1"/> - <pt x="589" y="1517" on="1"/> - <pt x="358" y="1517" on="1"/> - <pt x="358" y="-234" on="1"/> - <pt x="589" y="-234" on="1"/> - <pt x="589" y="-296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 47 values pushed */ - 0 0 4 3 14 1 1 6 5 14 1 0 2 4 48 84 2 1 1 7 0 1 2 0 14 - 7 6 3 2 4 13 4 0 0 5 4 13 1 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="bracketright" xMin="93" yMin="-296" xMax="497" yMax="1579"> - <contour> - <pt x="93" y="-296" on="1"/> - <pt x="93" y="-234" on="1"/> - <pt x="325" y="-234" on="1"/> - <pt x="325" y="1517" on="1"/> - <pt x="93" y="1517" on="1"/> - <pt x="93" y="1579" on="1"/> - <pt x="497" y="1579" on="1"/> - <pt x="497" y="-296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 47 values pushed */ - 0 0 4 3 14 1 5 2 1 14 1 0 2 4 48 84 6 5 1 7 0 1 2 0 14 - 5 4 1 0 4 13 2 0 0 3 2 13 1 6 1 4 48 196 7 6 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="breve" xMin="8" yMin="1283" xMax="674" yMax="1604"> - <contour> - <pt x="8" y="1604" on="1"/> - <pt x="73" y="1604" on="1"/> - <pt x="100" y="1514" on="0"/> - <pt x="160" y="1472" on="1"/> - <pt x="228" y="1425" on="0"/> - <pt x="341" y="1425" on="1"/> - <pt x="467" y="1425" on="0"/> - <pt x="537" y="1484" on="1"/> - <pt x="586" y="1524" on="0"/> - <pt x="610" y="1604" on="1"/> - <pt x="674" y="1604" on="1"/> - <pt x="655" y="1469" on="0"/> - <pt x="583" y="1388" on="1"/> - <pt x="489" y="1283" on="0"/> - <pt x="341" y="1283" on="1"/> - <pt x="187" y="1283" on="0"/> - <pt x="92" y="1398" on="1"/> - <pt x="27" y="1476" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 17 values pushed */ - 0 0 5 20 14 48 84 14 10 9 1 0 14 10 9 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="brokenbar" xMin="156" yMin="-296" xMax="255" yMax="1579"> - <contour> - <pt x="156" y="-296" on="1"/> - <pt x="156" y="444" on="1"/> - <pt x="255" y="444" on="1"/> - <pt x="255" y="-296" on="1"/> - </contour> - <contour> - <pt x="156" y="839" on="1"/> - <pt x="156" y="1579" on="1"/> - <pt x="255" y="1579" on="1"/> - <pt x="255" y="839" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 28 values pushed */ - 7 6 5 4 3 2 1 0 14 0 0 7 6 3 2 9 3 0 1 4 48 196 5 4 1 - 0 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="bullet" xMin="81" yMin="555" xMax="636" yMax="1110"> - <contour> - <pt x="359" y="1110" on="1"/> - <pt x="474" y="1110" on="0"/> - <pt x="555" y="1028" on="1"/> - <pt x="636" y="946" on="0"/> - <pt x="636" y="831" on="1"/> - <pt x="636" y="717" on="0"/> - <pt x="554" y="636" on="1"/> - <pt x="472" y="555" on="0"/> - <pt x="354" y="555" on="1"/> - <pt x="255" y="555" on="0"/> - <pt x="179" y="621" on="1"/> - <pt x="81" y="707" on="0"/> - <pt x="81" y="833" on="1"/> - <pt x="81" y="948" on="0"/> - <pt x="163" y="1029" on="1"/> - <pt x="244" y="1110" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 15 values pushed */ - 0 0 0 8 48 84 8 14 0 0 4 12 48 196 12 - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="c" xMin="68" yMin="-25" xMax="848" yMax="1110"> - <contour> - <pt x="848" y="37" on="1"/> - <pt x="696" y="-25" on="0"/> - <pt x="568" y="-25" on="1"/> - <pt x="350" y="-25" on="0"/> - <pt x="209" y="137" on="1"/> - <pt x="68" y="298" on="0"/> - <pt x="68" y="550" on="1"/> - <pt x="68" y="800" on="0"/> - <pt x="202" y="955" on="1"/> - <pt x="336" y="1110" on="0"/> - <pt x="557" y="1110" on="1"/> - <pt x="689" y="1110" on="0"/> - <pt x="848" y="1061" on="1"/> - <pt x="848" y="802" on="1"/> - <pt x="724" y="802" on="1"/> - <pt x="724" y="820" on="1"/> - <pt x="724" y="1043" on="0"/> - <pt x="557" y="1043" on="1"/> - <pt x="434" y="1043" on="0"/> - <pt x="359" y="914" on="1"/> - <pt x="284" y="786" on="0"/> - <pt x="284" y="577" on="1"/> - <pt x="284" y="339" on="0"/> - <pt x="377" y="206" on="1"/> - <pt x="470" y="73" on="0"/> - <pt x="632" y="73" on="1"/> - <pt x="710" y="73" on="0"/> - <pt x="848" y="123" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 46 values pushed */ - 0 0 25 9 2 17 17 10 48 84 10 1 2 2 1 1 27 15 14 13 12 0 6 1 2 - 3 0 0 14 0 0 21 10 6 48 196 15 14 6 0 27 13 12 0 3 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="cacute" xMin="68" yMin="-25" xMax="907" yMax="1604"> - <component glyphName="c" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="316" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="caron" xMin="-10" yMin="1283" xMax="693" yMax="1604"> - <contour> - <pt x="693" y="1604" on="1"/> - <pt x="453" y="1283" on="1"/> - <pt x="231" y="1283" on="1"/> - <pt x="-10" y="1604" on="1"/> - <pt x="76" y="1604" on="1"/> - <pt x="342" y="1382" on="1"/> - <pt x="607" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 6 5 4 3 0 5 13 1 2 1 1 0 14 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ccaron" xMin="68" yMin="-25" xMax="909" yMax="1604"> - <component glyphName="c" x="0" y="0" flags="0x4"/> - <component glyphName="caron" x="216" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ccedilla" xMin="68" yMin="-432" xMax="848" yMax="1110"> - <component glyphName="c" x="0" y="0" flags="0x4"/> - <component glyphName="cedilla" x="198" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ccircumflex" xMin="68" yMin="-25" xMax="909" yMax="1604"> - <contour> - <pt x="848" y="37" on="1"/> - <pt x="696" y="-25" on="0"/> - <pt x="568" y="-25" on="1"/> - <pt x="350" y="-25" on="0"/> - <pt x="209" y="137" on="1"/> - <pt x="68" y="298" on="0"/> - <pt x="68" y="550" on="1"/> - <pt x="68" y="800" on="0"/> - <pt x="202" y="955" on="1"/> - <pt x="336" y="1110" on="0"/> - <pt x="557" y="1110" on="1"/> - <pt x="689" y="1110" on="0"/> - <pt x="848" y="1061" on="1"/> - <pt x="848" y="802" on="1"/> - <pt x="724" y="802" on="1"/> - <pt x="724" y="820" on="1"/> - <pt x="724" y="1043" on="0"/> - <pt x="557" y="1043" on="1"/> - <pt x="434" y="1043" on="0"/> - <pt x="359" y="914" on="1"/> - <pt x="284" y="786" on="0"/> - <pt x="284" y="577" on="1"/> - <pt x="284" y="339" on="0"/> - <pt x="377" y="206" on="1"/> - <pt x="470" y="73" on="0"/> - <pt x="632" y="73" on="1"/> - <pt x="710" y="73" on="0"/> - <pt x="848" y="123" on="1"/> - </contour> - <contour> - <pt x="206" y="1283" on="1"/> - <pt x="447" y="1604" on="1"/> - <pt x="669" y="1604" on="1"/> - <pt x="909" y="1283" on="1"/> - <pt x="823" y="1283" on="1"/> - <pt x="558" y="1505" on="1"/> - <pt x="292" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 78 values pushed */ - 0 0 25 9 2 17 17 10 48 84 10 1 2 2 1 33 29 0 2 0 1 1 34 32 31 - 28 4 0 1 3 0 0 1 1 27 15 14 13 12 0 6 1 2 3 0 0 30 29 1 0 - 14 0 0 21 10 6 48 196 31 0 34 33 32 30 29 28 15 14 8 13 6 0 27 13 12 - 0 3 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="cdotaccent" xMin="68" yMin="-25" xMax="848" yMax="1480"> - <contour> - <pt x="848" y="37" on="1"/> - <pt x="696" y="-25" on="0"/> - <pt x="568" y="-25" on="1"/> - <pt x="350" y="-25" on="0"/> - <pt x="209" y="137" on="1"/> - <pt x="68" y="298" on="0"/> - <pt x="68" y="550" on="1"/> - <pt x="68" y="800" on="0"/> - <pt x="202" y="955" on="1"/> - <pt x="336" y="1110" on="0"/> - <pt x="557" y="1110" on="1"/> - <pt x="689" y="1110" on="0"/> - <pt x="848" y="1061" on="1"/> - <pt x="848" y="802" on="1"/> - <pt x="724" y="802" on="1"/> - <pt x="724" y="820" on="1"/> - <pt x="724" y="1043" on="0"/> - <pt x="557" y="1043" on="1"/> - <pt x="434" y="1043" on="0"/> - <pt x="359" y="914" on="1"/> - <pt x="284" y="786" on="0"/> - <pt x="284" y="577" on="1"/> - <pt x="284" y="339" on="0"/> - <pt x="377" y="206" on="1"/> - <pt x="470" y="73" on="0"/> - <pt x="632" y="73" on="1"/> - <pt x="710" y="73" on="0"/> - <pt x="848" y="123" on="1"/> - </contour> - <contour> - <pt x="463" y="1283" on="1"/> - <pt x="463" y="1480" on="1"/> - <pt x="660" y="1480" on="1"/> - <pt x="660" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 79 values pushed */ - 0 0 25 9 2 17 17 10 48 84 10 1 2 2 1 1 27 15 14 13 12 0 6 1 2 - 3 0 0 0 0 31 28 5 1 29 1 4 48 84 30 29 0 14 0 0 21 10 6 48 196 - 15 14 2 0 30 3 6 28 0 0 29 28 4 1 30 1 4 48 196 31 30 1 27 13 12 - 0 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="cedilla" xMin="168" yMin="-432" xMax="514" yMax="0"> - <contour> - <pt x="168" y="-411" on="1"/> - <pt x="168" y="-343" on="1"/> - <pt x="230" y="-359" on="0"/> - <pt x="269" y="-359" on="1"/> - <pt x="376" y="-359" on="0"/> - <pt x="376" y="-277" on="1"/> - <pt x="376" y="-179" on="0"/> - <pt x="189" y="-175" on="1"/> - <pt x="284" y="0" on="1"/> - <pt x="363" y="0" on="1"/> - <pt x="297" y="-119" on="1"/> - <pt x="394" y="-127" on="0"/> - <pt x="441" y="-152" on="1"/> - <pt x="514" y="-189" on="0"/> - <pt x="514" y="-266" on="1"/> - <pt x="514" y="-336" on="0"/> - <pt x="456" y="-384" on="1"/> - <pt x="399" y="-432" on="0"/> - <pt x="312" y="-432" on="1"/> - <pt x="244" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 29 values pushed */ - 0 0 3 17 18 48 84 18 10 9 8 7 1 0 14 0 0 5 48 14 48 196 14 10 9 - 8 7 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="cent" xMin="123" yMin="0" xMax="962" yMax="1480"> - <contour> - <pt x="598" y="0" on="1"/> - <pt x="598" y="176" on="1"/> - <pt x="402" y="198" on="0"/> - <pt x="282" y="322" on="1"/> - <pt x="123" y="484" on="0"/> - <pt x="123" y="751" on="1"/> - <pt x="123" y="1011" on="0"/> - <pt x="260" y="1154" on="1"/> - <pt x="340" y="1238" on="0"/> - <pt x="455" y="1276" on="1"/> - <pt x="503" y="1292" on="0"/> - <pt x="598" y="1308" on="1"/> - <pt x="598" y="1480" on="1"/> - <pt x="660" y="1480" on="1"/> - <pt x="660" y="1313" on="1"/> - <pt x="820" y="1299" on="0"/> - <pt x="962" y="1252" on="1"/> - <pt x="962" y="999" on="1"/> - <pt x="851" y="999" on="1"/> - <pt x="850" y="1018" on="1"/> - <pt x="848" y="1043" on="1"/> - <pt x="848" y="1053" on="0"/> - <pt x="847" y="1063" on="1"/> - <pt x="846" y="1074" on="1"/> - <pt x="846" y="1083" on="0"/> - <pt x="846" y="1091" on="1"/> - <pt x="844" y="1169" on="0"/> - <pt x="806" y="1201" on="1"/> - <pt x="766" y="1234" on="0"/> - <pt x="660" y="1242" on="1"/> - <pt x="660" y="273" on="1"/> - <pt x="692" y="270" on="0"/> - <pt x="709" y="270" on="1"/> - <pt x="800" y="270" on="0"/> - <pt x="962" y="331" on="1"/> - <pt x="962" y="234" on="1"/> - <pt x="825" y="181" on="0"/> - <pt x="660" y="171" on="1"/> - <pt x="660" y="0" on="1"/> - </contour> - <contour> - <pt x="598" y="280" on="1"/> - <pt x="598" y="1243" on="1"/> - <pt x="535" y="1225" on="0"/> - <pt x="504" y="1205" on="1"/> - <pt x="333" y="1093" on="0"/> - <pt x="333" y="733" on="1"/> - <pt x="333" y="497" on="0"/> - <pt x="429" y="382" on="1"/> - <pt x="471" y="332" on="0"/> - <pt x="523" y="307" on="1"/> - <pt x="548" y="295" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 61 values pushed */ - 40 39 38 37 35 34 32 30 29 18 17 16 14 13 12 11 1 0 14 0 0 44 10 5 48 - 196 18 16 13 2 5 0 0 0 40 39 12 11 1 0 11 5 13 1 4 48 196 35 34 17 - 16 3 38 37 30 29 14 13 5 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="circumflex" xMin="-10" yMin="1283" xMax="693" yMax="1604"> - <contour> - <pt x="-10" y="1283" on="1"/> - <pt x="231" y="1604" on="1"/> - <pt x="453" y="1604" on="1"/> - <pt x="693" y="1283" on="1"/> - <pt x="607" y="1283" on="1"/> - <pt x="342" y="1505" on="1"/> - <pt x="76" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 27 values pushed */ - 1 5 1 0 2 0 1 6 4 3 0 4 13 0 0 2 1 1 0 14 6 5 4 3 2 - 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="colon" xMin="161" yMin="0" xMax="408" yMax="1086"> - <contour> - <pt x="161" y="0" on="1"/> - <pt x="161" y="247" on="1"/> - <pt x="408" y="247" on="1"/> - <pt x="408" y="0" on="1"/> - </contour> - <contour> - <pt x="161" y="839" on="1"/> - <pt x="161" y="1086" on="1"/> - <pt x="408" y="1086" on="1"/> - <pt x="408" y="839" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 43 values pushed */ - 0 0 7 4 6 1 5 2 1 6 1 0 2 4 48 84 3 0 1 0 6 5 1 14 0 - 0 7 6 3 2 6 3 0 1 4 48 196 5 4 1 0 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="comma" xMin="133" yMin="-321" xMax="380" yMax="247"> - <contour> - <pt x="232" y="0" on="1"/> - <pt x="133" y="0" on="1"/> - <pt x="133" y="247" on="1"/> - <pt x="380" y="247" on="1"/> - <pt x="380" y="32" on="1"/> - <pt x="380" y="-107" on="0"/> - <pt x="363" y="-151" on="1"/> - <pt x="341" y="-216" on="0"/> - <pt x="270" y="-270" on="1"/> - <pt x="210" y="-317" on="0"/> - <pt x="133" y="-321" on="1"/> - <pt x="133" y="-259" on="1"/> - <pt x="232" y="-251" on="0"/> - <pt x="232" y="-65" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 37 values pushed */ - 13 11 10 4 1 0 6 13 2 3 2 1 0 14 13 0 2 3 1 3 0 0 4 3 6 - 1 1 1 4 48 196 11 10 2 1 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="copyright" xMin="87" yMin="49" xMax="1469" yMax="1431"> - <contour> - <pt x="779" y="1431" on="1"/> - <pt x="1063" y="1431" on="0"/> - <pt x="1266" y="1229" on="1"/> - <pt x="1469" y="1027" on="0"/> - <pt x="1469" y="741" on="1"/> - <pt x="1469" y="452" on="0"/> - <pt x="1265" y="251" on="1"/> - <pt x="1062" y="49" on="0"/> - <pt x="770" y="49" on="1"/> - <pt x="519" y="49" on="0"/> - <pt x="331" y="213" on="1"/> - <pt x="87" y="426" on="0"/> - <pt x="87" y="740" on="1"/> - <pt x="87" y="1027" on="0"/> - <pt x="290" y="1229" on="1"/> - <pt x="493" y="1431" on="0"/> - </contour> - <contour> - <pt x="778" y="1369" on="1"/> - <pt x="518" y="1369" on="0"/> - <pt x="334" y="1185" on="1"/> - <pt x="149" y="1001" on="0"/> - <pt x="149" y="740" on="1"/> - <pt x="149" y="483" on="0"/> - <pt x="333" y="297" on="1"/> - <pt x="516" y="111" on="0"/> - <pt x="773" y="111" on="1"/> - <pt x="1010" y="111" on="0"/> - <pt x="1184" y="259" on="1"/> - <pt x="1407" y="450" on="0"/> - <pt x="1407" y="742" on="1"/> - <pt x="1407" y="1002" on="0"/> - <pt x="1222" y="1185" on="1"/> - <pt x="1037" y="1369" on="0"/> - </contour> - <contour> - <pt x="1071" y="364" on="1"/> - <pt x="939" y="313" on="0"/> - <pt x="800" y="313" on="1"/> - <pt x="594" y="313" on="0"/> - <pt x="480" y="426" on="1"/> - <pt x="365" y="539" on="0"/> - <pt x="365" y="741" on="1"/> - <pt x="365" y="944" on="0"/> - <pt x="477" y="1056" on="1"/> - <pt x="589" y="1168" on="0"/> - <pt x="796" y="1168" on="1"/> - <pt x="916" y="1168" on="0"/> - <pt x="1057" y="1132" on="1"/> - <pt x="1057" y="964" on="1"/> - <pt x="975" y="964" on="1"/> - <pt x="975" y="974" on="1"/> - <pt x="975" y="1049" on="0"/> - <pt x="934" y="1081" on="1"/> - <pt x="893" y="1113" on="0"/> - <pt x="799" y="1113" on="1"/> - <pt x="545" y="1113" on="0"/> - <pt x="545" y="745" on="1"/> - <pt x="545" y="381" on="0"/> - <pt x="834" y="381" on="1"/> - <pt x="936" y="381" on="0"/> - <pt x="1071" y="442" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 67 values pushed */ - 0 0 55 17 34 51 25 42 24 11 8 16 11 0 48 84 8 2 0 0 42 34 1 1 57 - 47 46 45 44 42 34 32 8 0 2 3 0 0 14 0 0 53 16 38 28 11 4 20 11 12 - 48 196 57 32 2 13 4 44 47 46 38 12 44 45 44 1 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MDAP[1] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="currency" xMin="130" yMin="414" xMax="893" yMax="1178"> - <contour> - <pt x="322" y="545" on="1"/> - <pt x="192" y="414" on="1"/> - <pt x="130" y="476" on="1"/> - <pt x="261" y="607" on="1"/> - <pt x="197" y="695" on="0"/> - <pt x="197" y="796" on="1"/> - <pt x="197" y="898" on="0"/> - <pt x="261" y="985" on="1"/> - <pt x="130" y="1116" on="1"/> - <pt x="192" y="1178" on="1"/> - <pt x="322" y="1047" on="1"/> - <pt x="415" y="1110" on="0"/> - <pt x="512" y="1110" on="1"/> - <pt x="609" y="1110" on="0"/> - <pt x="701" y="1047" on="1"/> - <pt x="832" y="1178" on="1"/> - <pt x="893" y="1116" on="1"/> - <pt x="762" y="985" on="1"/> - <pt x="826" y="897" on="0"/> - <pt x="826" y="796" on="1"/> - <pt x="826" y="695" on="0"/> - <pt x="762" y="607" on="1"/> - <pt x="893" y="476" on="1"/> - <pt x="832" y="414" on="1"/> - <pt x="701" y="545" on="1"/> - <pt x="610" y="482" on="0"/> - <pt x="512" y="482" on="1"/> - <pt x="415" y="482" on="0"/> - </contour> - <contour> - <pt x="512" y="1012" on="1"/> - <pt x="422" y="1012" on="0"/> - <pt x="359" y="950" on="1"/> - <pt x="296" y="887" on="0"/> - <pt x="296" y="799" on="1"/> - <pt x="296" y="716" on="0"/> - <pt x="346" y="656" on="1"/> - <pt x="410" y="580" on="0"/> - <pt x="512" y="580" on="1"/> - <pt x="603" y="580" on="0"/> - <pt x="665" y="643" on="1"/> - <pt x="727" y="705" on="0"/> - <pt x="727" y="796" on="1"/> - <pt x="727" y="887" on="0"/> - <pt x="664" y="949" on="1"/> - <pt x="601" y="1012" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 68 values pushed */ - 0 0 36 9 26 28 9 12 48 84 12 1 1 16 15 9 8 4 13 1 0 1 24 23 22 - 21 17 14 10 7 3 2 1 0 12 13 26 1 0 14 0 0 40 9 19 32 9 5 48 196 - 24 23 22 21 19 17 16 15 14 10 9 8 7 5 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="d" xMin="68" yMin="-25" xMax="1024" yMax="1579"> - <contour> - <pt x="706" y="0" on="1"/> - <pt x="706" y="179" on="1"/> - <pt x="648" y="87" on="0"/> - <pt x="592" y="41" on="1"/> - <pt x="512" y="-25" on="0"/> - <pt x="414" y="-25" on="1"/> - <pt x="254" y="-25" on="0"/> - <pt x="161" y="118" on="1"/> - <pt x="68" y="260" on="0"/> - <pt x="68" y="510" on="1"/> - <pt x="68" y="793" on="0"/> - <pt x="189" y="951" on="1"/> - <pt x="310" y="1110" on="0"/> - <pt x="523" y="1110" on="1"/> - <pt x="597" y="1110" on="0"/> - <pt x="706" y="1086" on="1"/> - <pt x="706" y="1320" on="1"/> - <pt x="704" y="1419" on="1"/> - <pt x="703" y="1488" on="0"/> - <pt x="679" y="1501" on="1"/> - <pt x="657" y="1513" on="0"/> - <pt x="604" y="1516" on="1"/> - <pt x="585" y="1517" on="1"/> - <pt x="585" y="1579" on="1"/> - <pt x="903" y="1579" on="1"/> - <pt x="903" y="259" on="1"/> - <pt x="905" y="160" on="1"/> - <pt x="905" y="92" on="0"/> - <pt x="930" y="78" on="1"/> - <pt x="953" y="66" on="0"/> - <pt x="1006" y="63" on="1"/> - <pt x="1024" y="62" on="1"/> - <pt x="1024" y="0" on="1"/> - </contour> - <contour> - <pt x="706" y="1008" on="1"/> - <pt x="626" y="1032" on="0"/> - <pt x="576" y="1032" on="1"/> - <pt x="439" y="1032" on="0"/> - <pt x="360" y="905" on="1"/> - <pt x="281" y="778" on="0"/> - <pt x="281" y="550" on="1"/> - <pt x="281" y="103" on="0"/> - <pt x="482" y="103" on="1"/> - <pt x="576" y="103" on="0"/> - <pt x="706" y="248" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 78 values pushed */ - 0 0 41 29 5 35 21 13 48 84 13 1 5 2 1 22 16 2 23 1 3 0 1 43 33 - 31 25 15 1 6 1 0 3 0 24 23 1 32 0 1 2 0 14 0 0 39 10 9 48 196 - 32 31 2 13 24 23 22 9 0 0 0 43 33 16 15 1 0 4 5 24 1 4 48 196 25 - 24 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dagger" xMin="80" yMin="-296" xMax="944" yMax="1480"> - <contour> - <pt x="413" y="-296" on="1"/> - <pt x="462" y="857" on="1"/> - <pt x="80" y="814" on="1"/> - <pt x="80" y="962" on="1"/> - <pt x="462" y="919" on="1"/> - <pt x="413" y="1480" on="1"/> - <pt x="610" y="1480" on="1"/> - <pt x="561" y="919" on="1"/> - <pt x="944" y="962" on="1"/> - <pt x="944" y="814" on="1"/> - <pt x="561" y="857" on="1"/> - <pt x="610" y="-296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 42 values pushed */ - 1 10 9 8 7 4 3 2 1 8 5 2 3 0 11 0 1 0 6 5 0 14 11 10 7 - 6 5 4 1 0 8 8 2 3 9 8 1 3 2 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="daggerdbl" xMin="80" yMin="-296" xMax="944" yMax="1480"> - <contour> - <pt x="413" y="-296" on="1"/> - <pt x="462" y="265" on="1"/> - <pt x="80" y="222" on="1"/> - <pt x="80" y="370" on="1"/> - <pt x="462" y="327" on="1"/> - <pt x="462" y="857" on="1"/> - <pt x="80" y="814" on="1"/> - <pt x="80" y="962" on="1"/> - <pt x="462" y="919" on="1"/> - <pt x="413" y="1480" on="1"/> - <pt x="610" y="1480" on="1"/> - <pt x="561" y="919" on="1"/> - <pt x="944" y="962" on="1"/> - <pt x="944" y="814" on="1"/> - <pt x="561" y="857" on="1"/> - <pt x="561" y="327" on="1"/> - <pt x="944" y="370" on="1"/> - <pt x="944" y="222" on="1"/> - <pt x="561" y="265" on="1"/> - <pt x="610" y="-296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 72 values pushed */ - 1 18 17 16 15 14 13 12 11 8 7 6 5 4 3 2 1 16 9 2 3 0 19 0 1 - 0 10 9 0 14 19 10 2 12 11 3 9 0 2 1 2 3 0 0 18 15 14 11 9 3 - 1 1 4 48 196 17 16 13 12 3 8 5 4 1 3 7 6 3 2 3 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dcaron" xMin="68" yMin="-25" xMax="1298" yMax="1579"> - <contour> - <pt x="706" y="179" on="1"/> - <pt x="648" y="87" on="0"/> - <pt x="592" y="41" on="1"/> - <pt x="512" y="-25" on="0"/> - <pt x="414" y="-25" on="1"/> - <pt x="254" y="-25" on="0"/> - <pt x="161" y="118" on="1"/> - <pt x="68" y="260" on="0"/> - <pt x="68" y="510" on="1"/> - <pt x="68" y="793" on="0"/> - <pt x="189" y="951" on="1"/> - <pt x="310" y="1110" on="0"/> - <pt x="523" y="1110" on="1"/> - <pt x="597" y="1110" on="0"/> - <pt x="706" y="1086" on="1"/> - <pt x="706" y="1320" on="1"/> - <pt x="704" y="1419" on="1"/> - <pt x="703" y="1488" on="0"/> - <pt x="679" y="1501" on="1"/> - <pt x="657" y="1513" on="0"/> - <pt x="604" y="1516" on="1"/> - <pt x="585" y="1517" on="1"/> - <pt x="585" y="1579" on="1"/> - <pt x="903" y="1579" on="1"/> - <pt x="903" y="259" on="1"/> - <pt x="905" y="160" on="1"/> - <pt x="905" y="92" on="0"/> - <pt x="930" y="78" on="1"/> - <pt x="953" y="66" on="0"/> - <pt x="1006" y="63" on="1"/> - <pt x="1024" y="62" on="1"/> - <pt x="1024" y="0" on="1"/> - <pt x="706" y="0" on="1"/> - </contour> - <contour> - <pt x="706" y="1008" on="1"/> - <pt x="626" y="1032" on="0"/> - <pt x="576" y="1032" on="1"/> - <pt x="439" y="1032" on="0"/> - <pt x="360" y="905" on="1"/> - <pt x="281" y="778" on="0"/> - <pt x="281" y="550" on="1"/> - <pt x="281" y="103" on="0"/> - <pt x="482" y="103" on="1"/> - <pt x="576" y="103" on="0"/> - <pt x="706" y="248" on="1"/> - </contour> - <contour> - <pt x="1180" y="1382" on="1"/> - <pt x="1101" y="1382" on="1"/> - <pt x="1101" y="1579" on="1"/> - <pt x="1298" y="1579" on="1"/> - <pt x="1298" y="1408" on="1"/> - <pt x="1298" y="1245" on="0"/> - <pt x="1236" y="1180" on="1"/> - <pt x="1188" y="1131" on="0"/> - <pt x="1101" y="1125" on="1"/> - <pt x="1101" y="1175" on="1"/> - <pt x="1180" y="1181" on="0"/> - <pt x="1180" y="1330" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 104 values pushed */ - 0 0 41 29 4 35 21 12 48 84 12 1 4 2 1 55 53 52 48 45 44 21 15 8 22 - 1 3 0 1 43 33 30 24 14 0 6 1 31 3 0 47 46 23 22 3 32 31 1 2 0 - 14 0 0 39 10 8 48 196 55 44 2 47 45 3 31 30 2 45 23 3 22 21 8 0 0 - 0 53 52 46 45 4 3 47 43 33 32 15 14 0 4 5 23 2 4 48 196 48 47 1 24 - 23 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dcroat" xMin="68" yMin="-25" xMax="1024" yMax="1579"> - <contour> - <pt x="706" y="0" on="1"/> - <pt x="706" y="179" on="1"/> - <pt x="648" y="87" on="0"/> - <pt x="592" y="41" on="1"/> - <pt x="512" y="-25" on="0"/> - <pt x="414" y="-25" on="1"/> - <pt x="254" y="-25" on="0"/> - <pt x="161" y="118" on="1"/> - <pt x="68" y="260" on="0"/> - <pt x="68" y="510" on="1"/> - <pt x="68" y="793" on="0"/> - <pt x="189" y="951" on="1"/> - <pt x="310" y="1110" on="0"/> - <pt x="523" y="1110" on="1"/> - <pt x="597" y="1110" on="0"/> - <pt x="706" y="1086" on="1"/> - <pt x="706" y="1246" on="1"/> - <pt x="410" y="1246" on="1"/> - <pt x="410" y="1308" on="1"/> - <pt x="706" y="1308" on="1"/> - <pt x="706" y="1320" on="1"/> - <pt x="704" y="1419" on="1"/> - <pt x="703" y="1488" on="0"/> - <pt x="679" y="1501" on="1"/> - <pt x="657" y="1513" on="0"/> - <pt x="604" y="1516" on="1"/> - <pt x="585" y="1517" on="1"/> - <pt x="585" y="1579" on="1"/> - <pt x="903" y="1579" on="1"/> - <pt x="903" y="1308" on="1"/> - <pt x="1024" y="1308" on="1"/> - <pt x="1024" y="1246" on="1"/> - <pt x="903" y="1246" on="1"/> - <pt x="903" y="259" on="1"/> - <pt x="905" y="160" on="1"/> - <pt x="905" y="92" on="0"/> - <pt x="930" y="78" on="1"/> - <pt x="953" y="66" on="0"/> - <pt x="1006" y="63" on="1"/> - <pt x="1024" y="62" on="1"/> - <pt x="1024" y="0" on="1"/> - </contour> - <contour> - <pt x="706" y="1008" on="1"/> - <pt x="626" y="1032" on="0"/> - <pt x="576" y="1032" on="1"/> - <pt x="439" y="1032" on="0"/> - <pt x="360" y="905" on="1"/> - <pt x="281" y="778" on="0"/> - <pt x="281" y="550" on="1"/> - <pt x="281" y="103" on="0"/> - <pt x="482" y="103" on="1"/> - <pt x="576" y="103" on="0"/> - <pt x="706" y="248" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 104 values pushed */ - 0 0 49 29 5 43 21 13 48 84 13 1 5 2 26 20 2 27 18 3 1 51 41 39 33 - 15 1 6 1 0 3 0 0 0 32 31 17 16 14 3 18 1 4 48 84 28 27 1 30 29 - 19 18 3 40 0 1 3 0 14 0 0 47 10 9 48 196 40 39 31 30 4 13 28 27 26 - 18 17 4 13 9 0 0 0 51 41 20 19 16 15 1 0 4 7 28 1 4 48 196 33 32 - 29 28 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="degree" xMin="114" yMin="925" xMax="706" yMax="1517"> - <contour> - <pt x="410" y="1517" on="1"/> - <pt x="531" y="1517" on="0"/> - <pt x="619" y="1430" on="1"/> - <pt x="706" y="1344" on="0"/> - <pt x="706" y="1222" on="1"/> - <pt x="706" y="1098" on="0"/> - <pt x="619" y="1012" on="1"/> - <pt x="531" y="925" on="0"/> - <pt x="406" y="925" on="1"/> - <pt x="300" y="925" on="0"/> - <pt x="219" y="995" on="1"/> - <pt x="114" y="1087" on="0"/> - <pt x="114" y="1221" on="1"/> - <pt x="114" y="1344" on="0"/> - <pt x="201" y="1430" on="1"/> - <pt x="289" y="1517" on="0"/> - </contour> - <contour> - <pt x="410" y="1431" on="1"/> - <pt x="323" y="1431" on="0"/> - <pt x="262" y="1370" on="1"/> - <pt x="200" y="1308" on="0"/> - <pt x="200" y="1221" on="1"/> - <pt x="200" y="1136" on="0"/> - <pt x="262" y="1074" on="1"/> - <pt x="323" y="1012" on="0"/> - <pt x="409" y="1012" on="1"/> - <pt x="488" y="1012" on="0"/> - <pt x="546" y="1062" on="1"/> - <pt x="620" y="1125" on="0"/> - <pt x="620" y="1222" on="1"/> - <pt x="620" y="1309" on="0"/> - <pt x="558" y="1370" on="1"/> - <pt x="496" y="1431" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 28 values pushed */ - 0 0 24 8 16 7 0 48 84 0 0 1 8 0 0 14 0 0 28 8 4 20 8 12 48 - 196 12 4 - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MDRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dieresis" xMin="57" yMin="1283" xMax="625" yMax="1456"> - <contour> - <pt x="57" y="1283" on="1"/> - <pt x="57" y="1456" on="1"/> - <pt x="230" y="1456" on="1"/> - <pt x="230" y="1283" on="1"/> - </contour> - <contour> - <pt x="452" y="1283" on="1"/> - <pt x="452" y="1456" on="1"/> - <pt x="625" y="1456" on="1"/> - <pt x="625" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 44 values pushed */ - 0 0 7 4 3 0 13 3 1 1 4 48 84 6 5 2 1 3 0 14 0 0 5 4 13 - 1 6 3 2 13 1 0 2 4 48 196 7 6 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="divide" xMin="84" yMin="99" xMax="1071" yMax="1086"> - <contour> - <pt x="479" y="99" on="1"/> - <pt x="479" y="296" on="1"/> - <pt x="676" y="296" on="1"/> - <pt x="676" y="99" on="1"/> - </contour> - <contour> - <pt x="84" y="543" on="1"/> - <pt x="84" y="642" on="1"/> - <pt x="1071" y="642" on="1"/> - <pt x="1071" y="543" on="1"/> - </contour> - <contour> - <pt x="479" y="888" on="1"/> - <pt x="479" y="1086" on="1"/> - <pt x="676" y="1086" on="1"/> - <pt x="676" y="888" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 60 values pushed */ - 0 0 11 8 5 1 9 7 4 9 1 5 2 1 5 1 0 3 4 48 84 6 5 1 3 - 0 1 2 0 10 9 1 14 7 6 2 13 2 5 4 0 0 0 11 10 3 2 4 3 0 - 1 4 48 196 9 8 1 0 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dollar" xMin="80" yMin="-123" xMax="931" yMax="1604"> - <contour> - <pt x="495" y="-123" on="1"/> - <pt x="495" y="0" on="1"/> - <pt x="283" y="0" on="0"/> - <pt x="80" y="86" on="1"/> - <pt x="80" y="333" on="1"/> - <pt x="191" y="333" on="1"/> - <pt x="192" y="315" on="1"/> - <pt x="194" y="279" on="0"/> - <pt x="195" y="253" on="1"/> - <pt x="195" y="247" on="1"/> - <pt x="195" y="166" on="0"/> - <pt x="267" y="116" on="1"/> - <pt x="340" y="65" on="0"/> - <pt x="456" y="65" on="1"/> - <pt x="495" y="66" on="1"/> - <pt x="495" y="673" on="1"/> - <pt x="303" y="785" on="0"/> - <pt x="224" y="875" on="1"/> - <pt x="129" y="981" on="0"/> - <pt x="129" y="1130" on="1"/> - <pt x="129" y="1271" on="0"/> - <pt x="213" y="1360" on="1"/> - <pt x="275" y="1425" on="0"/> - <pt x="379" y="1460" on="1"/> - <pt x="417" y="1472" on="0"/> - <pt x="495" y="1487" on="1"/> - <pt x="495" y="1604" on="1"/> - <pt x="556" y="1604" on="1"/> - <pt x="557" y="1485" on="1"/> - <pt x="728" y="1477" on="0"/> - <pt x="913" y="1408" on="1"/> - <pt x="913" y="1178" on="1"/> - <pt x="802" y="1178" on="1"/> - <pt x="801" y="1197" on="1"/> - <pt x="799" y="1220" on="1"/> - <pt x="799" y="1225" on="0"/> - <pt x="798" y="1238" on="1"/> - <pt x="797" y="1253" on="0"/> - <pt x="797" y="1258" on="1"/> - <pt x="797" y="1262" on="1"/> - <pt x="797" y="1326" on="0"/> - <pt x="748" y="1366" on="1"/> - <pt x="687" y="1417" on="0"/> - <pt x="576" y="1417" on="1"/> - <pt x="557" y="1417" on="1"/> - <pt x="557" y="837" on="1"/> - <pt x="581" y="822" on="1"/> - <pt x="610" y="803" on="1"/> - <pt x="632" y="789" on="1"/> - <pt x="662" y="770" on="1"/> - <pt x="826" y="665" on="0"/> - <pt x="874" y="603" on="1"/> - <pt x="931" y="530" on="0"/> - <pt x="931" y="412" on="1"/> - <pt x="931" y="228" on="0"/> - <pt x="799" y="110" on="1"/> - <pt x="709" y="29" on="0"/> - <pt x="557" y="-3" on="1"/> - <pt x="557" y="-123" on="1"/> - </contour> - <contour> - <pt x="557" y="78" on="1"/> - <pt x="648" y="110" on="0"/> - <pt x="693" y="162" on="1"/> - <pt x="759" y="237" on="0"/> - <pt x="759" y="357" on="1"/> - <pt x="759" y="506" on="0"/> - <pt x="603" y="607" on="1"/> - <pt x="557" y="637" on="1"/> - </contour> - <contour> - <pt x="495" y="879" on="1"/> - <pt x="495" y="1410" on="1"/> - <pt x="414" y="1397" on="0"/> - <pt x="365" y="1343" on="1"/> - <pt x="301" y="1273" on="0"/> - <pt x="301" y="1167" on="1"/> - <pt x="301" y="1012" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 94 values pushed */ - 68 67 66 59 58 57 45 44 43 39 38 32 31 30 28 27 26 25 15 14 9 8 5 4 3 - 1 0 14 0 0 72 18 19 63 18 53 48 196 43 39 38 32 4 30 28 3 27 28 0 2 - 19 19 9 8 5 4 0 3 3 53 30 0 0 66 59 58 57 45 44 28 11 6 0 1 4 - 48 196 31 30 1 68 67 26 25 15 14 1 0 7 4 3 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dotaccent" xMin="242" yMin="1283" xMax="439" yMax="1480"> - <contour> - <pt x="242" y="1283" on="1"/> - <pt x="242" y="1480" on="1"/> - <pt x="439" y="1480" on="1"/> - <pt x="439" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 30 values pushed */ - 0 0 3 0 5 1 1 1 4 48 84 2 1 0 14 0 0 3 2 4 1 0 1 4 48 - 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dotlessi" xMin="47" yMin="0" xMax="536" yMax="1086"> - <contour> - <pt x="536" y="62" on="1"/> - <pt x="536" y="0" on="1"/> - <pt x="47" y="0" on="1"/> - <pt x="47" y="62" on="1"/> - <pt x="66" y="63" on="1"/> - <pt x="174" y="70" on="0"/> - <pt x="180" y="87" on="1"/> - <pt x="191" y="106" on="0"/> - <pt x="191" y="160" on="1"/> - <pt x="193" y="259" on="1"/> - <pt x="193" y="827" on="1"/> - <pt x="191" y="925" on="1"/> - <pt x="190" y="999" on="0"/> - <pt x="169" y="1007" on="1"/> - <pt x="149" y="1018" on="0"/> - <pt x="66" y="1023" on="1"/> - <pt x="47" y="1024" on="1"/> - <pt x="47" y="1086" on="1"/> - <pt x="390" y="1086" on="1"/> - <pt x="390" y="259" on="1"/> - <pt x="392" y="160" on="1"/> - <pt x="393" y="86" on="0"/> - <pt x="414" y="78" on="1"/> - <pt x="435" y="68" on="0"/> - <pt x="517" y="63" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 49 values pushed */ - 19 16 13 10 9 6 3 0 8 17 1 3 2 1 1 0 18 17 1 14 1 0 2 13 18 - 17 16 13 6 3 2 6 13 9 0 0 19 18 4 1 9 1 4 48 196 10 9 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dotlessj" xMin="-78" yMin="-419" xMax="459" yMax="1086"> - <contour> - <pt x="-78" y="-380" on="1"/> - <pt x="-78" y="-136" on="1"/> - <pt x="21" y="-136" on="1"/> - <pt x="22" y="-154" on="1"/> - <pt x="26" y="-272" on="0"/> - <pt x="47" y="-311" on="1"/> - <pt x="72" y="-358" on="0"/> - <pt x="133" y="-358" on="1"/> - <pt x="262" y="-358" on="0"/> - <pt x="262" y="-185" on="1"/> - <pt x="262" y="-82" on="1"/> - <pt x="262" y="827" on="1"/> - <pt x="260" y="925" on="1"/> - <pt x="260" y="993" on="0"/> - <pt x="235" y="1007" on="1"/> - <pt x="214" y="1019" on="0"/> - <pt x="159" y="1023" on="1"/> - <pt x="141" y="1024" on="1"/> - <pt x="141" y="1086" on="1"/> - <pt x="459" y="1086" on="1"/> - <pt x="459" y="12" on="1"/> - <pt x="459" y="-419" on="0"/> - <pt x="127" y="-419" on="1"/> - <pt x="51" y="-419" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 58 values pushed */ - 0 0 7 11 22 48 84 1 20 17 11 3 18 2 3 0 1 10 9 2 1 0 5 13 22 - 2 0 19 18 1 14 18 17 2 3 9 0 3 0 0 11 10 9 4 2 19 1 4 48 196 - 20 19 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dotmath" xMin="133" yMin="491" xMax="380" yMax="738"> - <contour> - <pt x="133" y="491" on="1"/> - <pt x="133" y="738" on="1"/> - <pt x="380" y="738" on="1"/> - <pt x="380" y="491" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 31 values pushed */ - 0 0 3 0 6 1 1 1 4 48 84 2 1 1 0 14 0 0 3 2 6 1 0 1 4 - 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="e" xMin="68" yMin="-25" xMax="848" yMax="1110"> - <contour> - <pt x="848" y="49" on="1"/> - <pt x="682" y="-25" on="0"/> - <pt x="542" y="-25" on="1"/> - <pt x="322" y="-25" on="0"/> - <pt x="195" y="124" on="1"/> - <pt x="68" y="273" on="0"/> - <pt x="68" y="536" on="1"/> - <pt x="68" y="796" on="0"/> - <pt x="185" y="953" on="1"/> - <pt x="301" y="1110" on="0"/> - <pt x="496" y="1110" on="1"/> - <pt x="677" y="1110" on="0"/> - <pt x="763" y="988" on="1"/> - <pt x="848" y="866" on="0"/> - <pt x="848" y="605" on="1"/> - <pt x="848" y="586" on="1"/> - <pt x="284" y="586" on="1"/> - <pt x="287" y="442" on="0"/> - <pt x="302" y="368" on="1"/> - <pt x="362" y="75" on="0"/> - <pt x="600" y="75" on="1"/> - <pt x="722" y="75" on="0"/> - <pt x="848" y="150" on="1"/> - </contour> - <contour> - <pt x="284" y="648" on="1"/> - <pt x="638" y="648" on="1"/> - <pt x="639" y="692" on="1"/> - <pt x="643" y="869" on="0"/> - <pt x="611" y="957" on="1"/> - <pt x="580" y="1043" on="0"/> - <pt x="486" y="1043" on="1"/> - <pt x="382" y="1043" on="0"/> - <pt x="325" y="901" on="1"/> - <pt x="286" y="803" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 50 values pushed */ - 0 0 29 17 10 20 9 2 48 84 10 1 2 2 14 23 15 2 1 22 0 2 15 2 3 - 0 0 0 16 15 14 1 23 1 4 48 84 24 23 1 0 14 24 23 22 16 15 14 6 0 - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="eacute" xMin="68" yMin="-25" xMax="848" yMax="1604"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="211" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ebreve" xMin="68" yMin="-25" xMax="848" yMax="1604"> - <contour> - <pt x="848" y="49" on="1"/> - <pt x="682" y="-25" on="0"/> - <pt x="542" y="-25" on="1"/> - <pt x="322" y="-25" on="0"/> - <pt x="195" y="124" on="1"/> - <pt x="68" y="273" on="0"/> - <pt x="68" y="536" on="1"/> - <pt x="68" y="796" on="0"/> - <pt x="185" y="953" on="1"/> - <pt x="301" y="1110" on="0"/> - <pt x="496" y="1110" on="1"/> - <pt x="677" y="1110" on="0"/> - <pt x="763" y="988" on="1"/> - <pt x="848" y="866" on="0"/> - <pt x="848" y="605" on="1"/> - <pt x="848" y="586" on="1"/> - <pt x="284" y="586" on="1"/> - <pt x="287" y="442" on="0"/> - <pt x="302" y="368" on="1"/> - <pt x="362" y="75" on="0"/> - <pt x="600" y="75" on="1"/> - <pt x="722" y="75" on="0"/> - <pt x="848" y="150" on="1"/> - </contour> - <contour> - <pt x="284" y="648" on="1"/> - <pt x="638" y="648" on="1"/> - <pt x="639" y="692" on="1"/> - <pt x="643" y="869" on="0"/> - <pt x="611" y="957" on="1"/> - <pt x="580" y="1043" on="0"/> - <pt x="486" y="1043" on="1"/> - <pt x="382" y="1043" on="0"/> - <pt x="325" y="901" on="1"/> - <pt x="286" y="803" on="0"/> - </contour> - <contour> - <pt x="160" y="1604" on="1"/> - <pt x="225" y="1604" on="1"/> - <pt x="252" y="1514" on="0"/> - <pt x="312" y="1472" on="1"/> - <pt x="380" y="1425" on="0"/> - <pt x="493" y="1425" on="1"/> - <pt x="619" y="1425" on="0"/> - <pt x="689" y="1484" on="1"/> - <pt x="737" y="1523" on="0"/> - <pt x="762" y="1604" on="1"/> - <pt x="826" y="1604" on="1"/> - <pt x="807" y="1469" on="0"/> - <pt x="735" y="1388" on="1"/> - <pt x="640" y="1283" on="0"/> - <pt x="493" y="1283" on="1"/> - <pt x="340" y="1283" on="0"/> - <pt x="244" y="1398" on="1"/> - <pt x="179" y="1475" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 67 values pushed */ - 0 0 38 20 47 29 17 10 20 9 2 48 84 10 1 2 2 14 23 15 2 1 22 0 2 - 15 2 3 0 1 43 42 34 33 4 13 47 1 0 0 0 16 15 14 1 23 1 4 48 84 - 24 23 1 0 14 43 42 34 33 24 23 22 16 15 14 6 0 - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ecaron" xMin="68" yMin="-25" xMax="848" yMax="1604"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="caron" x="152" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ecircumflex" xMin="68" yMin="-25" xMax="848" yMax="1604"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="circumflex" x="152" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="edieresis" xMin="68" yMin="-25" xMax="848" yMax="1456"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="dieresis" x="153" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="edotaccent" xMin="68" yMin="-25" xMax="848" yMax="1480"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="dotaccent" x="153" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="egrave" xMin="68" yMin="-25" xMax="848" yMax="1604"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="grave" x="94" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="eight" xMin="40" yMin="-37" xMax="977" yMax="1518"> - <contour> - <pt x="342" y="797" on="1"/> - <pt x="222" y="881" on="0"/> - <pt x="173" y="949" on="1"/> - <pt x="114" y="1029" on="0"/> - <pt x="114" y="1148" on="1"/> - <pt x="114" y="1317" on="0"/> - <pt x="223" y="1417" on="1"/> - <pt x="331" y="1518" on="0"/> - <pt x="517" y="1518" on="1"/> - <pt x="698" y="1518" on="0"/> - <pt x="807" y="1430" on="1"/> - <pt x="916" y="1342" on="0"/> - <pt x="916" y="1196" on="1"/> - <pt x="916" y="1062" on="0"/> - <pt x="811" y="952" on="1"/> - <pt x="747" y="886" on="0"/> - <pt x="627" y="816" on="1"/> - <pt x="677" y="787" on="1"/> - <pt x="843" y="691" on="0"/> - <pt x="911" y="599" on="1"/> - <pt x="977" y="510" on="0"/> - <pt x="977" y="383" on="1"/> - <pt x="977" y="204" on="0"/> - <pt x="840" y="84" on="1"/> - <pt x="703" y="-37" on="0"/> - <pt x="500" y="-37" on="1"/> - <pt x="301" y="-37" on="0"/> - <pt x="171" y="76" on="1"/> - <pt x="40" y="188" on="0"/> - <pt x="40" y="364" on="1"/> - <pt x="40" y="541" on="0"/> - <pt x="152" y="664" on="1"/> - <pt x="218" y="735" on="0"/> - </contour> - <contour> - <pt x="569" y="850" on="1"/> - <pt x="743" y="986" on="0"/> - <pt x="743" y="1187" on="1"/> - <pt x="743" y="1304" on="0"/> - <pt x="675" y="1377" on="1"/> - <pt x="608" y="1450" on="0"/> - <pt x="505" y="1450" on="1"/> - <pt x="407" y="1450" on="0"/> - <pt x="347" y="1386" on="1"/> - <pt x="286" y="1323" on="0"/> - <pt x="286" y="1219" on="1"/> - <pt x="286" y="1107" on="0"/> - <pt x="344" y="1042" on="1"/> - <pt x="392" y="988" on="0"/> - <pt x="510" y="896" on="1"/> - </contour> - <contour> - <pt x="386" y="754" on="1"/> - <pt x="237" y="607" on="0"/> - <pt x="237" y="388" on="1"/> - <pt x="237" y="225" on="0"/> - <pt x="315" y="128" on="1"/> - <pt x="392" y="31" on="0"/> - <pt x="520" y="31" on="1"/> - <pt x="630" y="31" on="0"/> - <pt x="705" y="116" on="1"/> - <pt x="780" y="200" on="0"/> - <pt x="780" y="321" on="1"/> - <pt x="780" y="442" on="0"/> - <pt x="700" y="523" on="1"/> - <pt x="637" y="588" on="0"/> - <pt x="501" y="678" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 51 values pushed */ - 0 0 54 17 25 39 17 8 48 84 25 2 8 0 1 1 48 33 16 0 4 0 2 3 0 - 0 14 0 0 58 5 21 50 5 29 43 18 4 35 18 12 48 196 48 33 29 21 16 12 4 - 0 - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ellipsis" xMin="243" yMin="0" xMax="1806" yMax="197"> - <contour> - <pt x="243" y="0" on="1"/> - <pt x="243" y="197" on="1"/> - <pt x="440" y="197" on="1"/> - <pt x="440" y="0" on="1"/> - </contour> - <contour> - <pt x="926" y="0" on="1"/> - <pt x="926" y="197" on="1"/> - <pt x="1123" y="197" on="1"/> - <pt x="1123" y="0" on="1"/> - </contour> - <contour> - <pt x="1608" y="0" on="1"/> - <pt x="1608" y="197" on="1"/> - <pt x="1806" y="197" on="1"/> - <pt x="1806" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 56 values pushed */ - 0 0 10 9 6 5 2 1 5 5 0 1 4 48 84 11 8 7 4 3 0 5 0 14 0 - 0 9 8 4 1 10 7 6 4 1 4 3 2 4 1 0 3 4 48 196 11 10 1 5 4 - 1 1 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="emacron" xMin="68" yMin="-25" xMax="848" yMax="1406"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="macron" x="153" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="emdash" xMin="99" yMin="543" xMax="1950" yMax="642"> - <contour> - <pt x="99" y="543" on="1"/> - <pt x="99" y="642" on="1"/> - <pt x="1950" y="642" on="1"/> - <pt x="1950" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 0 0 3 0 9 1 1 1 4 48 84 2 1 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="endash" xMin="86" yMin="543" xMax="937" yMax="666"> - <contour> - <pt x="86" y="543" on="1"/> - <pt x="86" y="666" on="1"/> - <pt x="937" y="666" on="1"/> - <pt x="937" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 0 0 3 0 12 1 1 1 4 48 84 2 1 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="eng" xMin="37" yMin="-419" xMax="897" yMax="1110"> - <contour> - <pt x="37" y="0" on="1"/> - <pt x="37" y="62" on="1"/> - <pt x="56" y="63" on="1"/> - <pt x="129" y="67" on="0"/> - <pt x="142" y="89" on="1"/> - <pt x="155" y="108" on="0"/> - <pt x="156" y="160" on="1"/> - <pt x="158" y="259" on="1"/> - <pt x="158" y="827" on="1"/> - <pt x="156" y="925" on="1"/> - <pt x="156" y="993" on="0"/> - <pt x="131" y="1007" on="1"/> - <pt x="110" y="1019" on="0"/> - <pt x="56" y="1023" on="1"/> - <pt x="37" y="1024" on="1"/> - <pt x="37" y="1086" on="1"/> - <pt x="356" y="1086" on="1"/> - <pt x="356" y="907" on="1"/> - <pt x="420" y="999" on="0"/> - <pt x="480" y="1044" on="1"/> - <pt x="566" y="1110" on="0"/> - <pt x="667" y="1110" on="1"/> - <pt x="791" y="1110" on="0"/> - <pt x="844" y="1032" on="1"/> - <pt x="897" y="954" on="0"/> - <pt x="897" y="765" on="1"/> - <pt x="897" y="12" on="1"/> - <pt x="897" y="-419" on="0"/> - <pt x="536" y="-419" on="1"/> - <pt x="438" y="-419" on="0"/> - <pt x="311" y="-380" on="1"/> - <pt x="311" y="-136" on="1"/> - <pt x="422" y="-136" on="1"/> - <pt x="423" y="-154" on="1"/> - <pt x="428" y="-277" on="0"/> - <pt x="451" y="-314" on="1"/> - <pt x="478" y="-358" on="0"/> - <pt x="550" y="-358" on="1"/> - <pt x="700" y="-358" on="0"/> - <pt x="700" y="-185" on="1"/> - <pt x="700" y="-82" on="1"/> - <pt x="700" y="734" on="1"/> - <pt x="697" y="811" on="1"/> - <pt x="694" y="900" on="0"/> - <pt x="672" y="937" on="1"/> - <pt x="647" y="981" on="0"/> - <pt x="592" y="981" on="1"/> - <pt x="476" y="981" on="0"/> - <pt x="356" y="840" on="1"/> - <pt x="356" y="259" on="1"/> - <pt x="357" y="160" on="1"/> - <pt x="358" y="91" on="0"/> - <pt x="383" y="78" on="1"/> - <pt x="405" y="66" on="0"/> - <pt x="458" y="63" on="1"/> - <pt x="477" y="62" on="1"/> - <pt x="477" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 88 values pushed */ - 0 0 46 29 21 37 11 28 48 84 21 1 55 49 48 41 26 25 17 14 8 7 1 11 15 - 0 3 40 39 32 31 30 5 13 28 0 56 0 1 0 16 15 1 14 56 55 32 3 39 16 - 3 15 14 1 0 4 13 7 0 0 41 40 39 4 2 25 49 48 17 16 4 3 7 2 4 - 48 196 26 25 1 31 30 1 8 7 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="eogonek" xMin="68" yMin="-370" xMax="848" yMax="1110"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="ogonek" x="281" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="equal" xMin="84" yMin="358" xMax="1071" yMax="827"> - <contour> - <pt x="84" y="358" on="1"/> - <pt x="84" y="456" on="1"/> - <pt x="1071" y="456" on="1"/> - <pt x="1071" y="358" on="1"/> - </contour> - <contour> - <pt x="84" y="728" on="1"/> - <pt x="84" y="827" on="1"/> - <pt x="1071" y="827" on="1"/> - <pt x="1071" y="728" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 33 values pushed */ - 0 0 7 4 9 1 5 2 1 9 1 0 2 4 48 84 6 5 1 3 0 1 2 0 14 - 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="estimated" xMin="68" yMin="-25" xMax="848" yMax="1110"> - <contour> - <pt x="848" y="49" on="1"/> - <pt x="682" y="-25" on="0"/> - <pt x="542" y="-25" on="1"/> - <pt x="322" y="-25" on="0"/> - <pt x="195" y="124" on="1"/> - <pt x="68" y="273" on="0"/> - <pt x="68" y="536" on="1"/> - <pt x="68" y="796" on="0"/> - <pt x="185" y="953" on="1"/> - <pt x="301" y="1110" on="0"/> - <pt x="496" y="1110" on="1"/> - <pt x="677" y="1110" on="0"/> - <pt x="763" y="988" on="1"/> - <pt x="848" y="866" on="0"/> - <pt x="848" y="605" on="1"/> - <pt x="848" y="586" on="1"/> - <pt x="284" y="586" on="1"/> - <pt x="287" y="442" on="0"/> - <pt x="302" y="368" on="1"/> - <pt x="362" y="75" on="0"/> - <pt x="600" y="75" on="1"/> - <pt x="722" y="75" on="0"/> - <pt x="848" y="150" on="1"/> - </contour> - <contour> - <pt x="284" y="648" on="1"/> - <pt x="638" y="648" on="1"/> - <pt x="639" y="692" on="1"/> - <pt x="643" y="869" on="0"/> - <pt x="611" y="957" on="1"/> - <pt x="580" y="1043" on="0"/> - <pt x="486" y="1043" on="1"/> - <pt x="382" y="1043" on="0"/> - <pt x="325" y="901" on="1"/> - <pt x="286" y="803" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 50 values pushed */ - 0 0 29 17 10 20 9 2 48 84 10 1 2 2 14 23 15 2 1 22 0 2 15 2 3 - 0 0 0 16 15 14 1 23 1 4 48 84 24 23 1 0 14 24 23 22 16 15 14 6 0 - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="eth" xMin="17" yMin="-25" xMax="962" yMax="1585"> - <contour> - <pt x="597" y="1078" on="1"/> - <pt x="530" y="1184" on="0"/> - <pt x="399" y="1317" on="1"/> - <pt x="107" y="1119" on="1"/> - <pt x="71" y="1172" on="1"/> - <pt x="350" y="1357" on="1"/> - <pt x="193" y="1492" on="0"/> - <pt x="17" y="1507" on="1"/> - <pt x="17" y="1579" on="1"/> - <pt x="265" y="1579" on="0"/> - <pt x="479" y="1444" on="1"/> - <pt x="689" y="1585" on="1"/> - <pt x="724" y="1535" on="1"/> - <pt x="527" y="1404" on="1"/> - <pt x="646" y="1317" on="0"/> - <pt x="711" y="1248" on="1"/> - <pt x="962" y="979" on="0"/> - <pt x="962" y="586" on="1"/> - <pt x="962" y="298" on="0"/> - <pt x="843" y="137" on="1"/> - <pt x="725" y="-25" on="0"/> - <pt x="511" y="-25" on="1"/> - <pt x="307" y="-25" on="0"/> - <pt x="184" y="127" on="1"/> - <pt x="62" y="279" on="0"/> - <pt x="62" y="531" on="1"/> - <pt x="62" y="781" on="0"/> - <pt x="184" y="933" on="1"/> - <pt x="307" y="1086" on="0"/> - <pt x="503" y="1086" on="1"/> - <pt x="542" y="1086" on="0"/> - </contour> - <contour> - <pt x="511" y="1018" on="1"/> - <pt x="406" y="1018" on="0"/> - <pt x="342" y="884" on="1"/> - <pt x="277" y="750" on="0"/> - <pt x="277" y="531" on="1"/> - <pt x="277" y="311" on="0"/> - <pt x="342" y="177" on="1"/> - <pt x="406" y="43" on="0"/> - <pt x="512" y="43" on="1"/> - <pt x="617" y="43" on="0"/> - <pt x="681" y="176" on="1"/> - <pt x="746" y="310" on="0"/> - <pt x="746" y="525" on="1"/> - <pt x="746" y="729" on="0"/> - <pt x="693" y="859" on="1"/> - <pt x="628" y="1018" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 69 values pushed */ - 0 0 39 17 21 31 17 29 48 84 29 1 21 2 1 1 13 10 5 4 3 2 6 0 1 - 3 0 0 1 1 0 1 2 2 0 0 1 12 11 8 7 4 13 0 0 14 0 0 43 10 - 17 35 10 25 48 196 25 17 13 12 11 10 8 7 5 4 3 2 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="exclam" xMin="242" yMin="0" xMax="439" yMax="1480"> - <contour> - <pt x="242" y="0" on="1"/> - <pt x="242" y="197" on="1"/> - <pt x="439" y="197" on="1"/> - <pt x="439" y="0" on="1"/> - </contour> - <contour> - <pt x="310" y="395" on="1"/> - <pt x="242" y="1184" on="1"/> - <pt x="242" y="1480" on="1"/> - <pt x="439" y="1480" on="1"/> - <pt x="439" y="1184" on="1"/> - <pt x="372" y="395" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 52 values pushed */ - 9 8 5 4 4 6 1 3 0 0 2 1 5 1 0 1 4 48 84 3 0 1 0 7 6 - 0 14 9 4 2 2 0 3 0 0 8 7 3 2 4 3 0 1 4 48 196 6 5 1 0 - 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="exclamdown" xMin="242" yMin="-395" xMax="439" yMax="1086"> - <contour> - <pt x="439" y="1086" on="1"/> - <pt x="439" y="888" on="1"/> - <pt x="242" y="888" on="1"/> - <pt x="242" y="1086" on="1"/> - </contour> - <contour> - <pt x="372" y="691" on="1"/> - <pt x="439" y="-99" on="1"/> - <pt x="439" y="-395" on="1"/> - <pt x="242" y="-395" on="1"/> - <pt x="242" y="-99" on="1"/> - <pt x="310" y="691" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 60 values pushed */ - 1 9 4 2 1 2 3 0 1 8 5 2 2 6 3 0 0 0 2 1 5 1 0 1 4 - 48 84 7 6 1 0 3 0 1 14 9 4 2 0 2 3 0 0 6 5 1 0 4 3 2 - 1 4 48 196 8 7 3 2 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="f" xMin="37" yMin="0" xMax="719" yMax="1604"> - <contour> - <pt x="55" y="0" on="1"/> - <pt x="55" y="62" on="1"/> - <pt x="74" y="63" on="1"/> - <pt x="151" y="68" on="0"/> - <pt x="163" y="92" on="1"/> - <pt x="174" y="112" on="0"/> - <pt x="174" y="160" on="1"/> - <pt x="176" y="259" on="1"/> - <pt x="176" y="999" on="1"/> - <pt x="37" y="999" on="1"/> - <pt x="37" y="1086" on="1"/> - <pt x="176" y="1086" on="1"/> - <pt x="176" y="1138" on="1"/> - <pt x="176" y="1401" on="0"/> - <pt x="245" y="1502" on="1"/> - <pt x="314" y="1604" on="0"/> - <pt x="489" y="1604" on="1"/> - <pt x="617" y="1604" on="0"/> - <pt x="719" y="1530" on="1"/> - <pt x="719" y="1295" on="1"/> - <pt x="608" y="1295" on="1"/> - <pt x="607" y="1314" on="1"/> - <pt x="605" y="1353" on="0"/> - <pt x="604" y="1380" on="1"/> - <pt x="604" y="1385" on="1"/> - <pt x="604" y="1540" on="0"/> - <pt x="496" y="1540" on="1"/> - <pt x="376" y="1540" on="0"/> - <pt x="374" y="1357" on="1"/> - <pt x="373" y="1257" on="1"/> - <pt x="373" y="1086" on="1"/> - <pt x="596" y="1086" on="1"/> - <pt x="596" y="1005" on="1"/> - <pt x="373" y="1005" on="1"/> - <pt x="373" y="259" on="1"/> - <pt x="375" y="160" on="1"/> - <pt x="376" y="88" on="0"/> - <pt x="408" y="75" on="1"/> - <pt x="434" y="63" on="0"/> - <pt x="500" y="63" on="1"/> - <pt x="544" y="62" on="1"/> - <pt x="544" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 95 values pushed */ - 0 0 26 11 16 48 84 40 34 7 1 4 8 0 3 29 24 23 20 19 18 12 7 13 16 - 10 0 0 33 32 7 1 10 1 4 9 8 1 10 1 6 48 84 41 0 1 0 31 30 11 - 10 1 3 14 41 40 32 31 24 23 20 7 18 29 3 10 9 1 0 4 13 7 0 0 34 - 33 30 29 4 3 7 1 4 48 196 19 18 1 12 11 8 7 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="fi" xMin="37" yMin="0" xMax="1104" yMax="1604"> - <contour> - <pt x="786" y="1283" on="1"/> - <pt x="786" y="1480" on="1"/> - <pt x="959" y="1480" on="1"/> - <pt x="959" y="1283" on="1"/> - </contour> - <contour> - <pt x="55" y="0" on="1"/> - <pt x="55" y="62" on="1"/> - <pt x="74" y="63" on="1"/> - <pt x="151" y="68" on="0"/> - <pt x="163" y="92" on="1"/> - <pt x="174" y="112" on="0"/> - <pt x="174" y="160" on="1"/> - <pt x="176" y="259" on="1"/> - <pt x="176" y="999" on="1"/> - <pt x="37" y="999" on="1"/> - <pt x="37" y="1086" on="1"/> - <pt x="176" y="1086" on="1"/> - <pt x="176" y="1138" on="1"/> - <pt x="176" y="1394" on="0"/> - <pt x="243" y="1499" on="1"/> - <pt x="311" y="1604" on="0"/> - <pt x="471" y="1604" on="1"/> - <pt x="585" y="1604" on="0"/> - <pt x="687" y="1530" on="1"/> - <pt x="687" y="1308" on="1"/> - <pt x="576" y="1308" on="1"/> - <pt x="575" y="1324" on="1"/> - <pt x="574" y="1357" on="0"/> - <pt x="573" y="1375" on="1"/> - <pt x="573" y="1383" on="0"/> - <pt x="573" y="1386" on="1"/> - <pt x="573" y="1540" on="0"/> - <pt x="480" y="1540" on="1"/> - <pt x="376" y="1540" on="0"/> - <pt x="374" y="1357" on="1"/> - <pt x="373" y="1257" on="1"/> - <pt x="373" y="1086" on="1"/> - <pt x="959" y="1086" on="1"/> - <pt x="959" y="259" on="1"/> - <pt x="961" y="160" on="1"/> - <pt x="962" y="86" on="0"/> - <pt x="983" y="78" on="1"/> - <pt x="1003" y="68" on="0"/> - <pt x="1086" y="63" on="1"/> - <pt x="1104" y="62" on="1"/> - <pt x="1104" y="0" on="1"/> - <pt x="616" y="0" on="1"/> - <pt x="616" y="62" on="1"/> - <pt x="678" y="63" on="1"/> - <pt x="759" y="63" on="0"/> - <pt x="760" y="160" on="1"/> - <pt x="761" y="259" on="1"/> - <pt x="761" y="1005" on="1"/> - <pt x="373" y="1005" on="1"/> - <pt x="373" y="259" on="1"/> - <pt x="375" y="160" on="1"/> - <pt x="376" y="88" on="0"/> - <pt x="408" y="75" on="1"/> - <pt x="434" y="63" on="0"/> - <pt x="500" y="63" on="1"/> - <pt x="544" y="62" on="1"/> - <pt x="544" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 138 values pushed */ - 0 0 31 11 20 48 84 49 45 24 23 2 1 0 3 34 16 2 0 14 3 59 53 50 43 - 37 11 5 7 12 4 3 22 20 1 0 0 52 51 7 1 14 1 4 13 12 1 14 1 6 - 3 0 5 1 1 1 4 48 84 60 45 44 4 3 0 36 35 15 14 1 3 2 1 0 14 - 45 49 49 50 22 2 60 59 24 3 22 34 3 44 43 2 13 2 14 13 5 4 4 13 11 - 0 0 51 50 4 1 2 53 52 35 34 4 3 11 1 0 13 1 2 3 4 48 196 23 22 - 1 16 15 12 11 3 37 36 3 2 3 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - LOOPCALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="fi#1" xMin="37" yMin="0" xMax="1104" yMax="1604"> - <contour> - <pt x="786" y="1283" on="1"/> - <pt x="786" y="1480" on="1"/> - <pt x="959" y="1480" on="1"/> - <pt x="959" y="1283" on="1"/> - </contour> - <contour> - <pt x="55" y="0" on="1"/> - <pt x="55" y="62" on="1"/> - <pt x="74" y="63" on="1"/> - <pt x="151" y="68" on="0"/> - <pt x="163" y="92" on="1"/> - <pt x="174" y="112" on="0"/> - <pt x="174" y="160" on="1"/> - <pt x="176" y="259" on="1"/> - <pt x="176" y="999" on="1"/> - <pt x="37" y="999" on="1"/> - <pt x="37" y="1086" on="1"/> - <pt x="176" y="1086" on="1"/> - <pt x="176" y="1138" on="1"/> - <pt x="176" y="1394" on="0"/> - <pt x="243" y="1499" on="1"/> - <pt x="311" y="1604" on="0"/> - <pt x="471" y="1604" on="1"/> - <pt x="585" y="1604" on="0"/> - <pt x="687" y="1530" on="1"/> - <pt x="687" y="1308" on="1"/> - <pt x="576" y="1308" on="1"/> - <pt x="575" y="1324" on="1"/> - <pt x="574" y="1357" on="0"/> - <pt x="573" y="1375" on="1"/> - <pt x="573" y="1383" on="0"/> - <pt x="573" y="1386" on="1"/> - <pt x="573" y="1540" on="0"/> - <pt x="480" y="1540" on="1"/> - <pt x="376" y="1540" on="0"/> - <pt x="374" y="1357" on="1"/> - <pt x="373" y="1257" on="1"/> - <pt x="373" y="1086" on="1"/> - <pt x="959" y="1086" on="1"/> - <pt x="959" y="259" on="1"/> - <pt x="961" y="160" on="1"/> - <pt x="962" y="86" on="0"/> - <pt x="983" y="78" on="1"/> - <pt x="1003" y="68" on="0"/> - <pt x="1086" y="63" on="1"/> - <pt x="1104" y="62" on="1"/> - <pt x="1104" y="0" on="1"/> - <pt x="616" y="0" on="1"/> - <pt x="616" y="62" on="1"/> - <pt x="678" y="63" on="1"/> - <pt x="759" y="63" on="0"/> - <pt x="760" y="160" on="1"/> - <pt x="761" y="259" on="1"/> - <pt x="761" y="1005" on="1"/> - <pt x="373" y="1005" on="1"/> - <pt x="373" y="259" on="1"/> - <pt x="375" y="160" on="1"/> - <pt x="376" y="88" on="0"/> - <pt x="408" y="75" on="1"/> - <pt x="434" y="63" on="0"/> - <pt x="500" y="63" on="1"/> - <pt x="544" y="62" on="1"/> - <pt x="544" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 138 values pushed */ - 0 0 31 11 20 48 84 49 45 24 23 2 1 0 3 34 16 2 0 14 3 59 53 50 43 - 37 11 5 7 12 4 3 22 20 1 0 0 52 51 7 1 14 1 4 13 12 1 14 1 6 - 3 0 5 1 1 1 4 48 84 60 45 44 4 3 0 36 35 15 14 1 3 2 1 0 14 - 45 49 49 50 22 2 60 59 24 3 22 34 3 44 43 2 13 2 14 13 5 4 4 13 11 - 0 0 51 50 4 1 2 53 52 35 34 4 3 11 1 0 13 1 2 3 4 48 196 23 22 - 1 16 15 12 11 3 37 36 3 2 3 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - LOOPCALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="figuredash" xMin="86" yMin="543" xMax="937" yMax="666"> - <contour> - <pt x="86" y="543" on="1"/> - <pt x="86" y="666" on="1"/> - <pt x="937" y="666" on="1"/> - <pt x="937" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 0 0 3 0 12 1 1 1 4 48 84 2 1 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="five" xMin="130" yMin="-37" xMax="907" yMax="1480"> - <contour> - <pt x="130" y="-3" on="1"/> - <pt x="130" y="247" on="1"/> - <pt x="229" y="247" on="1"/> - <pt x="230" y="223" on="1"/> - <pt x="232" y="147" on="1"/> - <pt x="235" y="25" on="0"/> - <pt x="406" y="25" on="1"/> - <pt x="541" y="25" on="0"/> - <pt x="619" y="134" on="1"/> - <pt x="697" y="244" on="0"/> - <pt x="697" y="421" on="1"/> - <pt x="697" y="820" on="0"/> - <pt x="192" y="820" on="1"/> - <pt x="155" y="820" on="1"/> - <pt x="155" y="1480" on="1"/> - <pt x="876" y="1480" on="1"/> - <pt x="876" y="1308" on="1"/> - <pt x="216" y="1308" on="1"/> - <pt x="216" y="894" on="1"/> - <pt x="308" y="894" on="1"/> - <pt x="592" y="894" on="0"/> - <pt x="749" y="769" on="1"/> - <pt x="907" y="644" on="0"/> - <pt x="907" y="420" on="1"/> - <pt x="907" y="210" on="0"/> - <pt x="764" y="87" on="1"/> - <pt x="621" y="-37" on="0"/> - <pt x="384" y="-37" on="1"/> - <pt x="270" y="-37" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 81 values pushed */ - 0 0 6 11 27 48 84 27 2 1 19 18 13 12 2 1 6 16 2 3 0 1 0 2 0 - 0 0 17 16 13 1 14 1 4 48 84 15 14 0 14 0 0 10 10 23 48 196 19 2 2 - 15 17 3 12 17 13 2 23 15 0 0 18 17 11 1 13 1 4 48 196 16 15 1 14 13 - 1 1 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="fl" xMin="37" yMin="0" xMax="1104" yMax="1604"> - <contour> - <pt x="55" y="0" on="1"/> - <pt x="55" y="62" on="1"/> - <pt x="74" y="63" on="1"/> - <pt x="151" y="68" on="0"/> - <pt x="163" y="92" on="1"/> - <pt x="174" y="112" on="0"/> - <pt x="174" y="160" on="1"/> - <pt x="176" y="259" on="1"/> - <pt x="176" y="999" on="1"/> - <pt x="37" y="999" on="1"/> - <pt x="37" y="1086" on="1"/> - <pt x="176" y="1086" on="1"/> - <pt x="176" y="1138" on="1"/> - <pt x="176" y="1313" on="0"/> - <pt x="192" y="1384" on="1"/> - <pt x="208" y="1457" on="0"/> - <pt x="260" y="1514" on="1"/> - <pt x="342" y="1604" on="0"/> - <pt x="468" y="1604" on="1"/> - <pt x="518" y="1604" on="0"/> - <pt x="632" y="1579" on="1"/> - <pt x="959" y="1579" on="1"/> - <pt x="959" y="259" on="1"/> - <pt x="961" y="160" on="1"/> - <pt x="962" y="86" on="0"/> - <pt x="983" y="78" on="1"/> - <pt x="1003" y="68" on="0"/> - <pt x="1086" y="63" on="1"/> - <pt x="1104" y="62" on="1"/> - <pt x="1104" y="0" on="1"/> - <pt x="616" y="0" on="1"/> - <pt x="616" y="62" on="1"/> - <pt x="678" y="63" on="1"/> - <pt x="759" y="63" on="0"/> - <pt x="760" y="160" on="1"/> - <pt x="761" y="259" on="1"/> - <pt x="761" y="1437" on="1"/> - <pt x="604" y="1540" on="0"/> - <pt x="486" y="1540" on="1"/> - <pt x="376" y="1540" on="0"/> - <pt x="374" y="1357" on="1"/> - <pt x="373" y="1257" on="1"/> - <pt x="373" y="1086" on="1"/> - <pt x="546" y="1086" on="1"/> - <pt x="546" y="1005" on="1"/> - <pt x="373" y="1005" on="1"/> - <pt x="373" y="259" on="1"/> - <pt x="375" y="160" on="1"/> - <pt x="376" y="88" on="0"/> - <pt x="408" y="75" on="1"/> - <pt x="434" y="63" on="0"/> - <pt x="500" y="63" on="1"/> - <pt x="544" y="62" on="1"/> - <pt x="544" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 115 values pushed */ - 0 0 38 11 18 48 84 34 30 41 36 12 3 20 10 3 52 46 35 28 22 7 1 7 8 - 0 3 18 20 0 0 45 44 7 1 10 1 4 9 8 1 10 1 6 48 84 21 20 1 53 - 30 29 0 3 2 0 43 42 11 10 1 3 14 30 34 53 52 44 43 34 20 6 35 41 3 - 29 28 2 13 21 10 9 1 0 4 13 7 0 0 36 35 4 1 21 46 45 42 41 4 3 - 7 2 4 48 196 22 21 1 12 11 8 7 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="fl#1" xMin="37" yMin="0" xMax="1104" yMax="1604"> - <contour> - <pt x="55" y="0" on="1"/> - <pt x="55" y="62" on="1"/> - <pt x="74" y="63" on="1"/> - <pt x="151" y="68" on="0"/> - <pt x="163" y="92" on="1"/> - <pt x="174" y="112" on="0"/> - <pt x="174" y="160" on="1"/> - <pt x="176" y="259" on="1"/> - <pt x="176" y="999" on="1"/> - <pt x="37" y="999" on="1"/> - <pt x="37" y="1086" on="1"/> - <pt x="176" y="1086" on="1"/> - <pt x="176" y="1138" on="1"/> - <pt x="176" y="1313" on="0"/> - <pt x="192" y="1384" on="1"/> - <pt x="208" y="1457" on="0"/> - <pt x="260" y="1514" on="1"/> - <pt x="342" y="1604" on="0"/> - <pt x="468" y="1604" on="1"/> - <pt x="518" y="1604" on="0"/> - <pt x="632" y="1579" on="1"/> - <pt x="959" y="1579" on="1"/> - <pt x="959" y="259" on="1"/> - <pt x="961" y="160" on="1"/> - <pt x="962" y="86" on="0"/> - <pt x="983" y="78" on="1"/> - <pt x="1003" y="68" on="0"/> - <pt x="1086" y="63" on="1"/> - <pt x="1104" y="62" on="1"/> - <pt x="1104" y="0" on="1"/> - <pt x="616" y="0" on="1"/> - <pt x="616" y="62" on="1"/> - <pt x="678" y="63" on="1"/> - <pt x="759" y="63" on="0"/> - <pt x="760" y="160" on="1"/> - <pt x="761" y="259" on="1"/> - <pt x="761" y="1437" on="1"/> - <pt x="604" y="1540" on="0"/> - <pt x="486" y="1540" on="1"/> - <pt x="376" y="1540" on="0"/> - <pt x="374" y="1357" on="1"/> - <pt x="373" y="1257" on="1"/> - <pt x="373" y="1086" on="1"/> - <pt x="546" y="1086" on="1"/> - <pt x="546" y="1005" on="1"/> - <pt x="373" y="1005" on="1"/> - <pt x="373" y="259" on="1"/> - <pt x="375" y="160" on="1"/> - <pt x="376" y="88" on="0"/> - <pt x="408" y="75" on="1"/> - <pt x="434" y="63" on="0"/> - <pt x="500" y="63" on="1"/> - <pt x="544" y="62" on="1"/> - <pt x="544" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 115 values pushed */ - 0 0 38 11 18 48 84 34 30 41 36 12 3 20 10 3 52 46 35 28 22 7 1 7 8 - 0 3 18 20 0 0 45 44 7 1 10 1 4 9 8 1 10 1 6 48 84 21 20 1 53 - 30 29 0 3 2 0 43 42 11 10 1 3 14 30 34 53 52 44 43 34 20 6 35 41 3 - 29 28 2 13 21 10 9 1 0 4 13 7 0 0 36 35 4 1 21 46 45 42 41 4 3 - 7 2 4 48 196 22 21 1 12 11 8 7 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="florin" xMin="12" yMin="-296" xMax="949" yMax="1505"> - <contour> - <pt x="12" y="-296" on="1"/> - <pt x="218" y="740" on="1"/> - <pt x="16" y="740" on="1"/> - <pt x="16" y="802" on="1"/> - <pt x="230" y="802" on="1"/> - <pt x="254" y="922" on="1"/> - <pt x="308" y="1196" on="0"/> - <pt x="446" y="1351" on="1"/> - <pt x="583" y="1505" on="0"/> - <pt x="772" y="1505" on="1"/> - <pt x="852" y="1505" on="0"/> - <pt x="949" y="1475" on="1"/> - <pt x="949" y="1246" on="1"/> - <pt x="851" y="1246" on="1"/> - <pt x="848" y="1293" on="0"/> - <pt x="847" y="1320" on="1"/> - <pt x="842" y="1444" on="0"/> - <pt x="723" y="1444" on="1"/> - <pt x="605" y="1444" on="0"/> - <pt x="552" y="1316" on="1"/> - <pt x="509" y="1212" on="0"/> - <pt x="463" y="979" on="1"/> - <pt x="428" y="802" on="1"/> - <pt x="678" y="802" on="1"/> - <pt x="678" y="740" on="1"/> - <pt x="415" y="740" on="1"/> - <pt x="209" y="-296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 60 values pushed */ - 0 0 17 11 9 48 84 9 0 1 13 12 11 3 0 3 3 0 0 0 25 24 2 1 14 - 3 3 1 4 48 84 23 22 4 3 3 26 0 1 2 0 14 26 25 24 23 22 13 4 3 - 2 1 0 11 13 11 12 11 1 0 - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="four" xMin="25" yMin="0" xMax="975" yMax="1505"> - <contour> - <pt x="630" y="419" on="1"/> - <pt x="25" y="419" on="1"/> - <pt x="25" y="518" on="1"/> - <pt x="692" y="1505" on="1"/> - <pt x="803" y="1505" on="1"/> - <pt x="803" y="568" on="1"/> - <pt x="975" y="568" on="1"/> - <pt x="975" y="419" on="1"/> - <pt x="803" y="419" on="1"/> - <pt x="803" y="259" on="1"/> - <pt x="809" y="160" on="1"/> - <pt x="813" y="94" on="0"/> - <pt x="834" y="84" on="1"/> - <pt x="852" y="73" on="0"/> - <pt x="901" y="68" on="1"/> - <pt x="944" y="63" on="1"/> - <pt x="963" y="62" on="1"/> - <pt x="963" y="0" on="1"/> - <pt x="445" y="0" on="1"/> - <pt x="445" y="62" on="1"/> - <pt x="463" y="63" on="1"/> - <pt x="542" y="68" on="1"/> - <pt x="605" y="73" on="0"/> - <pt x="618" y="124" on="1"/> - <pt x="630" y="166" on="0"/> - <pt x="630" y="259" on="1"/> - </contour> - <contour> - <pt x="136" y="568" on="1"/> - <pt x="630" y="568" on="1"/> - <pt x="630" y="1299" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 83 values pushed */ - 25 18 2 5 0 2 16 9 2 0 17 3 28 4 3 3 13 5 0 0 27 26 6 5 19 - 3 0 1 4 48 84 8 7 1 0 3 18 17 1 2 0 14 18 25 17 16 2 6 4 3 - 3 4 0 2 26 2 1 3 13 0 0 0 28 27 25 0 13 3 4 1 4 48 196 7 6 - 1 9 8 5 4 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="foursuperiour" xMin="31" yMin="772" xMax="582" yMax="1522"> - <contour> - <pt x="284" y="772" on="1"/> - <pt x="284" y="810" on="1"/> - <pt x="293" y="811" on="1"/> - <pt x="343" y="812" on="0"/> - <pt x="357" y="819" on="1"/> - <pt x="372" y="828" on="0"/> - <pt x="374" y="859" on="1"/> - <pt x="377" y="909" on="1"/> - <pt x="377" y="977" on="1"/> - <pt x="31" y="977" on="1"/> - <pt x="31" y="1043" on="1"/> - <pt x="399" y="1522" on="1"/> - <pt x="490" y="1522" on="1"/> - <pt x="490" y="1066" on="1"/> - <pt x="582" y="1066" on="1"/> - <pt x="582" y="977" on="1"/> - <pt x="490" y="977" on="1"/> - <pt x="490" y="909" on="1"/> - <pt x="493" y="859" on="1"/> - <pt x="495" y="824" on="0"/> - <pt x="515" y="817" on="1"/> - <pt x="531" y="812" on="0"/> - <pt x="567" y="811" on="1"/> - <pt x="576" y="810" on="1"/> - <pt x="576" y="772" on="1"/> - </contour> - <contour> - <pt x="97" y="1066" on="1"/> - <pt x="377" y="1066" on="1"/> - <pt x="377" y="1429" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 80 values pushed */ - 10 13 8 2 23 17 7 1 4 8 0 3 27 12 11 3 13 13 0 0 16 15 9 8 46 - 3 13 1 4 48 84 26 25 14 13 3 24 0 1 2 0 14 11 12 7 2 24 23 15 14 - 4 13 12 25 10 9 1 0 5 13 7 0 0 27 26 8 7 15 3 12 1 4 48 196 17 - 16 13 12 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="fraction" xMin="-416" yMin="-37" xMax="759" yMax="1517"> - <contour> - <pt x="-416" y="-37" on="1"/> - <pt x="672" y="1517" on="1"/> - <pt x="759" y="1517" on="1"/> - <pt x="-330" y="-37" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 9 values pushed */ - 3 2 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="fraction#1" xMin="-416" yMin="-37" xMax="759" yMax="1517"> - <contour> - <pt x="-416" y="-37" on="1"/> - <pt x="672" y="1517" on="1"/> - <pt x="759" y="1517" on="1"/> - <pt x="-330" y="-37" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 9 values pushed */ - 3 2 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="g" xMin="53" yMin="-419" xMax="991" yMax="1110"> - <contour> - <pt x="258" y="42" on="1"/> - <pt x="145" y="96" on="0"/> - <pt x="145" y="182" on="1"/> - <pt x="145" y="266" on="0"/> - <pt x="300" y="367" on="1"/> - <pt x="326" y="384" on="1"/> - <pt x="231" y="432" on="0"/> - <pt x="183" y="497" on="1"/> - <pt x="114" y="589" on="0"/> - <pt x="114" y="732" on="1"/> - <pt x="114" y="908" on="0"/> - <pt x="209" y="1009" on="1"/> - <pt x="303" y="1110" on="0"/> - <pt x="462" y="1110" on="1"/> - <pt x="539" y="1110" on="0"/> - <pt x="640" y="1070" on="1"/> - <pt x="991" y="1098" on="1"/> - <pt x="940" y="978" on="1"/> - <pt x="702" y="1020" on="1"/> - <pt x="830" y="889" on="0"/> - <pt x="830" y="731" on="1"/> - <pt x="830" y="569" on="0"/> - <pt x="728" y="456" on="1"/> - <pt x="626" y="342" on="0"/> - <pt x="481" y="342" on="1"/> - <pt x="437" y="342" on="0"/> - <pt x="394" y="360" on="1"/> - <pt x="318" y="298" on="0"/> - <pt x="318" y="243" on="1"/> - <pt x="318" y="195" on="0"/> - <pt x="369" y="183" on="1"/> - <pt x="410" y="173" on="0"/> - <pt x="499" y="173" on="1"/> - <pt x="561" y="173" on="1"/> - <pt x="757" y="173" on="0"/> - <pt x="845" y="114" on="1"/> - <pt x="933" y="55" on="0"/> - <pt x="933" y="-73" on="1"/> - <pt x="933" y="-225" on="0"/> - <pt x="795" y="-322" on="1"/> - <pt x="658" y="-419" on="0"/> - <pt x="446" y="-419" on="1"/> - <pt x="269" y="-419" on="0"/> - <pt x="161" y="-354" on="1"/> - <pt x="53" y="-289" on="0"/> - <pt x="53" y="-183" on="1"/> - <pt x="53" y="-51" on="0"/> - </contour> - <contour> - <pt x="472" y="1043" on="1"/> - <pt x="312" y="1043" on="0"/> - <pt x="312" y="731" on="1"/> - <pt x="312" y="410" on="0"/> - <pt x="472" y="410" on="1"/> - <pt x="633" y="410" on="0"/> - <pt x="633" y="725" on="1"/> - <pt x="633" y="1043" on="0"/> - </contour> - <contour> - <pt x="310" y="25" on="1"/> - <pt x="248" y="-38" on="0"/> - <pt x="248" y="-144" on="1"/> - <pt x="248" y="-238" on="0"/> - <pt x="313" y="-295" on="1"/> - <pt x="379" y="-352" on="0"/> - <pt x="480" y="-352" on="1"/> - <pt x="589" y="-352" on="0"/> - <pt x="665" y="-284" on="1"/> - <pt x="741" y="-217" on="0"/> - <pt x="741" y="-123" on="1"/> - <pt x="741" y="25" on="0"/> - <pt x="541" y="25" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 75 values pushed */ - 0 0 61 17 41 51 17 24 47 17 13 48 84 13 1 24 1 33 32 26 24 18 17 15 5 - 0 9 1 55 3 0 1 16 1 0 41 55 67 55 1 0 14 0 0 65 30 37 57 30 45 - 53 5 20 49 5 9 48 196 67 55 45 37 33 32 28 26 20 18 17 16 15 9 5 2 0 - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - SZP0[ ] - SRP0[ ] - MDRP[00000] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MDAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="gbreve" xMin="53" yMin="-419" xMax="991" yMax="1604"> - <component glyphName="g" x="0" y="0" flags="0x4"/> - <component glyphName="breve" x="127" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="gcircumflex" xMin="53" yMin="-419" xMax="991" yMax="1604"> - <contour> - <pt x="258" y="42" on="1"/> - <pt x="145" y="96" on="0"/> - <pt x="145" y="182" on="1"/> - <pt x="145" y="266" on="0"/> - <pt x="300" y="367" on="1"/> - <pt x="326" y="384" on="1"/> - <pt x="231" y="432" on="0"/> - <pt x="183" y="497" on="1"/> - <pt x="114" y="589" on="0"/> - <pt x="114" y="732" on="1"/> - <pt x="114" y="908" on="0"/> - <pt x="209" y="1009" on="1"/> - <pt x="303" y="1110" on="0"/> - <pt x="462" y="1110" on="1"/> - <pt x="539" y="1110" on="0"/> - <pt x="640" y="1070" on="1"/> - <pt x="991" y="1098" on="1"/> - <pt x="940" y="978" on="1"/> - <pt x="702" y="1020" on="1"/> - <pt x="830" y="889" on="0"/> - <pt x="830" y="731" on="1"/> - <pt x="830" y="569" on="0"/> - <pt x="728" y="456" on="1"/> - <pt x="626" y="342" on="0"/> - <pt x="481" y="342" on="1"/> - <pt x="437" y="342" on="0"/> - <pt x="394" y="360" on="1"/> - <pt x="318" y="298" on="0"/> - <pt x="318" y="243" on="1"/> - <pt x="318" y="195" on="0"/> - <pt x="369" y="183" on="1"/> - <pt x="410" y="173" on="0"/> - <pt x="499" y="173" on="1"/> - <pt x="561" y="173" on="1"/> - <pt x="757" y="173" on="0"/> - <pt x="845" y="114" on="1"/> - <pt x="933" y="55" on="0"/> - <pt x="933" y="-73" on="1"/> - <pt x="933" y="-225" on="0"/> - <pt x="795" y="-322" on="1"/> - <pt x="658" y="-419" on="0"/> - <pt x="446" y="-419" on="1"/> - <pt x="269" y="-419" on="0"/> - <pt x="161" y="-354" on="1"/> - <pt x="53" y="-289" on="0"/> - <pt x="53" y="-183" on="1"/> - <pt x="53" y="-51" on="0"/> - </contour> - <contour> - <pt x="472" y="1043" on="1"/> - <pt x="312" y="1043" on="0"/> - <pt x="312" y="731" on="1"/> - <pt x="312" y="410" on="0"/> - <pt x="472" y="410" on="1"/> - <pt x="633" y="410" on="0"/> - <pt x="633" y="725" on="1"/> - <pt x="633" y="1043" on="0"/> - </contour> - <contour> - <pt x="310" y="25" on="1"/> - <pt x="248" y="-38" on="0"/> - <pt x="248" y="-144" on="1"/> - <pt x="248" y="-238" on="0"/> - <pt x="313" y="-295" on="1"/> - <pt x="379" y="-352" on="0"/> - <pt x="480" y="-352" on="1"/> - <pt x="589" y="-352" on="0"/> - <pt x="665" y="-284" on="1"/> - <pt x="741" y="-217" on="0"/> - <pt x="741" y="-123" on="1"/> - <pt x="741" y="25" on="0"/> - <pt x="541" y="25" on="1"/> - </contour> - <contour> - <pt x="141" y="1283" on="1"/> - <pt x="382" y="1604" on="1"/> - <pt x="604" y="1604" on="1"/> - <pt x="844" y="1283" on="1"/> - <pt x="758" y="1283" on="1"/> - <pt x="493" y="1505" on="1"/> - <pt x="227" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 101 values pushed */ - 0 0 61 17 41 51 17 24 47 17 13 48 84 13 1 1 73 69 0 2 0 1 1 74 72 - 71 68 16 5 0 1 3 0 0 24 1 33 32 26 24 18 17 15 5 0 9 1 55 3 0 - 41 55 70 69 1 67 55 1 2 0 14 0 0 65 30 37 57 30 45 53 5 20 49 5 9 - 48 196 74 73 72 71 70 69 68 67 55 45 37 33 32 28 26 20 18 17 16 15 9 5 2 - 0 - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - SZP1[ ] - CALL[ ] - SZP1[ ] - MDAP[1] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="gcommaaccent" xMin="53" yMin="-419" xMax="991" yMax="1737"> - <contour> - <pt x="258" y="42" on="1"/> - <pt x="145" y="96" on="0"/> - <pt x="145" y="182" on="1"/> - <pt x="145" y="266" on="0"/> - <pt x="300" y="367" on="1"/> - <pt x="326" y="384" on="1"/> - <pt x="231" y="432" on="0"/> - <pt x="183" y="497" on="1"/> - <pt x="114" y="589" on="0"/> - <pt x="114" y="732" on="1"/> - <pt x="114" y="908" on="0"/> - <pt x="209" y="1009" on="1"/> - <pt x="303" y="1110" on="0"/> - <pt x="462" y="1110" on="1"/> - <pt x="539" y="1110" on="0"/> - <pt x="640" y="1070" on="1"/> - <pt x="991" y="1098" on="1"/> - <pt x="940" y="978" on="1"/> - <pt x="702" y="1020" on="1"/> - <pt x="830" y="889" on="0"/> - <pt x="830" y="731" on="1"/> - <pt x="830" y="569" on="0"/> - <pt x="728" y="456" on="1"/> - <pt x="626" y="342" on="0"/> - <pt x="481" y="342" on="1"/> - <pt x="437" y="342" on="0"/> - <pt x="394" y="360" on="1"/> - <pt x="318" y="298" on="0"/> - <pt x="318" y="243" on="1"/> - <pt x="318" y="195" on="0"/> - <pt x="369" y="183" on="1"/> - <pt x="410" y="173" on="0"/> - <pt x="499" y="173" on="1"/> - <pt x="561" y="173" on="1"/> - <pt x="757" y="173" on="0"/> - <pt x="845" y="114" on="1"/> - <pt x="933" y="55" on="0"/> - <pt x="933" y="-73" on="1"/> - <pt x="933" y="-225" on="0"/> - <pt x="795" y="-322" on="1"/> - <pt x="658" y="-419" on="0"/> - <pt x="446" y="-419" on="1"/> - <pt x="269" y="-419" on="0"/> - <pt x="161" y="-354" on="1"/> - <pt x="53" y="-289" on="0"/> - <pt x="53" y="-183" on="1"/> - <pt x="53" y="-51" on="0"/> - </contour> - <contour> - <pt x="472" y="1043" on="1"/> - <pt x="312" y="1043" on="0"/> - <pt x="312" y="731" on="1"/> - <pt x="312" y="410" on="0"/> - <pt x="472" y="410" on="1"/> - <pt x="633" y="410" on="0"/> - <pt x="633" y="725" on="1"/> - <pt x="633" y="1043" on="0"/> - </contour> - <contour> - <pt x="310" y="25" on="1"/> - <pt x="248" y="-38" on="0"/> - <pt x="248" y="-144" on="1"/> - <pt x="248" y="-238" on="0"/> - <pt x="313" y="-295" on="1"/> - <pt x="379" y="-352" on="0"/> - <pt x="480" y="-352" on="1"/> - <pt x="589" y="-352" on="0"/> - <pt x="665" y="-284" on="1"/> - <pt x="741" y="-217" on="0"/> - <pt x="741" y="-123" on="1"/> - <pt x="741" y="25" on="0"/> - <pt x="541" y="25" on="1"/> - </contour> - <contour> - <pt x="487" y="1480" on="1"/> - <pt x="566" y="1480" on="1"/> - <pt x="566" y="1283" on="1"/> - <pt x="369" y="1283" on="1"/> - <pt x="369" y="1455" on="1"/> - <pt x="369" y="1616" on="0"/> - <pt x="431" y="1682" on="1"/> - <pt x="478" y="1732" on="0"/> - <pt x="566" y="1737" on="1"/> - <pt x="566" y="1688" on="1"/> - <pt x="487" y="1681" on="0"/> - <pt x="487" y="1532" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 121 values pushed */ - 0 0 61 17 41 51 17 24 47 17 13 48 84 13 1 1 16 70 1 2 0 24 1 33 32 - 26 24 18 17 15 5 0 9 1 55 3 0 79 77 76 72 69 68 6 13 70 41 55 71 70 - 1 67 55 1 2 0 14 0 0 65 30 37 57 30 45 53 5 20 49 5 9 48 196 79 68 - 67 33 32 26 6 69 71 3 18 17 16 15 4 13 37 20 69 55 5 0 3 13 45 28 9 - 2 4 12 71 0 0 77 76 70 69 4 3 71 1 4 48 196 72 71 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - SRP0[ ] - LOOPCALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MDAP[1] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="gdotaccent" xMin="53" yMin="-419" xMax="991" yMax="1480"> - <contour> - <pt x="258" y="42" on="1"/> - <pt x="145" y="96" on="0"/> - <pt x="145" y="182" on="1"/> - <pt x="145" y="266" on="0"/> - <pt x="300" y="367" on="1"/> - <pt x="326" y="384" on="1"/> - <pt x="231" y="432" on="0"/> - <pt x="183" y="497" on="1"/> - <pt x="114" y="589" on="0"/> - <pt x="114" y="732" on="1"/> - <pt x="114" y="908" on="0"/> - <pt x="209" y="1009" on="1"/> - <pt x="303" y="1110" on="0"/> - <pt x="462" y="1110" on="1"/> - <pt x="539" y="1110" on="0"/> - <pt x="640" y="1070" on="1"/> - <pt x="991" y="1098" on="1"/> - <pt x="940" y="978" on="1"/> - <pt x="702" y="1020" on="1"/> - <pt x="830" y="889" on="0"/> - <pt x="830" y="731" on="1"/> - <pt x="830" y="569" on="0"/> - <pt x="728" y="456" on="1"/> - <pt x="626" y="342" on="0"/> - <pt x="481" y="342" on="1"/> - <pt x="437" y="342" on="0"/> - <pt x="394" y="360" on="1"/> - <pt x="318" y="298" on="0"/> - <pt x="318" y="243" on="1"/> - <pt x="318" y="195" on="0"/> - <pt x="369" y="183" on="1"/> - <pt x="410" y="173" on="0"/> - <pt x="499" y="173" on="1"/> - <pt x="561" y="173" on="1"/> - <pt x="757" y="173" on="0"/> - <pt x="845" y="114" on="1"/> - <pt x="933" y="55" on="0"/> - <pt x="933" y="-73" on="1"/> - <pt x="933" y="-225" on="0"/> - <pt x="795" y="-322" on="1"/> - <pt x="658" y="-419" on="0"/> - <pt x="446" y="-419" on="1"/> - <pt x="269" y="-419" on="0"/> - <pt x="161" y="-354" on="1"/> - <pt x="53" y="-289" on="0"/> - <pt x="53" y="-183" on="1"/> - <pt x="53" y="-51" on="0"/> - </contour> - <contour> - <pt x="472" y="1043" on="1"/> - <pt x="312" y="1043" on="0"/> - <pt x="312" y="731" on="1"/> - <pt x="312" y="410" on="0"/> - <pt x="472" y="410" on="1"/> - <pt x="633" y="410" on="0"/> - <pt x="633" y="725" on="1"/> - <pt x="633" y="1043" on="0"/> - </contour> - <contour> - <pt x="310" y="25" on="1"/> - <pt x="248" y="-38" on="0"/> - <pt x="248" y="-144" on="1"/> - <pt x="248" y="-238" on="0"/> - <pt x="313" y="-295" on="1"/> - <pt x="379" y="-352" on="0"/> - <pt x="480" y="-352" on="1"/> - <pt x="589" y="-352" on="0"/> - <pt x="665" y="-284" on="1"/> - <pt x="741" y="-217" on="0"/> - <pt x="741" y="-123" on="1"/> - <pt x="741" y="25" on="0"/> - <pt x="541" y="25" on="1"/> - </contour> - <contour> - <pt x="369" y="1283" on="1"/> - <pt x="369" y="1480" on="1"/> - <pt x="566" y="1480" on="1"/> - <pt x="566" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 120 values pushed */ - 0 0 61 17 41 51 17 24 47 17 13 48 84 13 1 1 16 68 1 2 0 24 1 33 32 - 26 24 18 17 15 5 0 9 1 55 3 0 1 41 2 0 0 0 71 68 5 1 69 1 4 - 48 84 67 55 1 0 70 69 0 14 0 0 65 30 37 57 30 45 53 5 20 49 5 9 48 - 196 67 33 32 26 4 70 68 3 18 17 16 15 4 13 37 20 70 55 5 0 3 13 45 28 - 9 2 4 12 68 0 0 71 70 4 1 68 1 4 48 196 69 68 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MDAP[1] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="germandbls" xMin="27" yMin="-25" xMax="993" yMax="1604"> - <contour> - <pt x="530" y="4" on="1"/> - <pt x="530" y="228" on="1"/> - <pt x="617" y="228" on="1"/> - <pt x="618" y="210" on="1"/> - <pt x="622" y="139" on="1"/> - <pt x="628" y="36" on="0"/> - <pt x="712" y="36" on="1"/> - <pt x="765" y="36" on="0"/> - <pt x="799" y="84" on="1"/> - <pt x="833" y="133" on="0"/> - <pt x="833" y="204" on="1"/> - <pt x="833" y="313" on="0"/> - <pt x="712" y="451" on="1"/> - <pt x="597" y="582" on="1"/> - <pt x="451" y="749" on="0"/> - <pt x="451" y="835" on="1"/> - <pt x="451" y="911" on="0"/> - <pt x="535" y="1017" on="1"/> - <pt x="562" y="1051" on="1"/> - <pt x="641" y="1151" on="0"/> - <pt x="641" y="1304" on="1"/> - <pt x="641" y="1542" on="0"/> - <pt x="490" y="1542" on="1"/> - <pt x="391" y="1542" on="0"/> - <pt x="365" y="1445" on="1"/> - <pt x="345" y="1371" on="0"/> - <pt x="345" y="1216" on="1"/> - <pt x="345" y="259" on="1"/> - <pt x="350" y="159" on="1"/> - <pt x="351" y="96" on="0"/> - <pt x="370" y="80" on="1"/> - <pt x="389" y="66" on="0"/> - <pt x="438" y="63" on="1"/> - <pt x="456" y="62" on="1"/> - <pt x="456" y="0" on="1"/> - <pt x="27" y="0" on="1"/> - <pt x="27" y="62" on="1"/> - <pt x="45" y="63" on="1"/> - <pt x="120" y="67" on="0"/> - <pt x="132" y="89" on="1"/> - <pt x="145" y="108" on="0"/> - <pt x="146" y="160" on="1"/> - <pt x="148" y="259" on="1"/> - <pt x="148" y="1112" on="1"/> - <pt x="148" y="1383" on="0"/> - <pt x="226" y="1493" on="1"/> - <pt x="305" y="1604" on="0"/> - <pt x="497" y="1604" on="1"/> - <pt x="649" y="1604" on="0"/> - <pt x="737" y="1536" on="1"/> - <pt x="826" y="1469" on="0"/> - <pt x="826" y="1358" on="1"/> - <pt x="826" y="1252" on="0"/> - <pt x="693" y="1108" on="1"/> - <pt x="656" y="1068" on="1"/> - <pt x="623" y="1034" on="1"/> - <pt x="579" y="989" on="0"/> - <pt x="579" y="939" on="1"/> - <pt x="579" y="882" on="0"/> - <pt x="642" y="812" on="1"/> - <pt x="701" y="746" on="1"/> - <pt x="803" y="630" on="1"/> - <pt x="926" y="490" on="0"/> - <pt x="959" y="430" on="1"/> - <pt x="993" y="367" on="0"/> - <pt x="993" y="282" on="1"/> - <pt x="993" y="154" on="0"/> - <pt x="908" y="64" on="1"/> - <pt x="823" y="-25" on="0"/> - <pt x="701" y="-25" on="1"/> - <pt x="645" y="-25" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 77 values pushed */ - 0 0 22 11 47 6 11 69 48 84 69 2 43 42 36 33 27 26 2 1 0 9 13 47 34 - 35 34 1 0 14 0 0 20 16 51 10 24 65 48 196 15 34 33 15 3 0 26 3 2 65 - 57 51 3 12 0 36 35 42 0 0 27 26 4 1 42 1 4 48 196 1 0 1 43 42 1 - 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - MDRP[00000] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="grave" xMin="91" yMin="1283" xMax="591" yMax="1604"> - <contour> - <pt x="591" y="1283" on="1"/> - <pt x="498" y="1283" on="1"/> - <pt x="91" y="1604" on="1"/> - <pt x="350" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 12 values pushed */ - 1 0 2 3 2 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="greater" xMin="84" yMin="99" xMax="1071" yMax="1086"> - <contour> - <pt x="84" y="1086" on="1"/> - <pt x="1071" y="592" on="1"/> - <pt x="84" y="99" on="1"/> - <pt x="84" y="209" on="1"/> - <pt x="848" y="591" on="1"/> - <pt x="848" y="593" on="1"/> - <pt x="84" y="976" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 15 values pushed */ - 6 5 4 3 2 1 0 14 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="guillemotleft" xMin="74" yMin="111" xMax="938" yMax="975"> - <contour> - <pt x="547" y="936" on="1"/> - <pt x="273" y="543" on="1"/> - <pt x="547" y="151" on="1"/> - <pt x="497" y="111" on="1"/> - <pt x="74" y="543" on="1"/> - <pt x="497" y="975" on="1"/> - </contour> - <contour> - <pt x="938" y="936" on="1"/> - <pt x="664" y="543" on="1"/> - <pt x="938" y="151" on="1"/> - <pt x="888" y="111" on="1"/> - <pt x="465" y="543" on="1"/> - <pt x="888" y="975" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 25 values pushed */ - 11 10 9 8 7 6 5 4 3 2 1 0 14 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="guillemotright" xMin="86" yMin="111" xMax="950" yMax="975"> - <contour> - <pt x="477" y="149" on="1"/> - <pt x="750" y="543" on="1"/> - <pt x="477" y="934" on="1"/> - <pt x="527" y="975" on="1"/> - <pt x="950" y="543" on="1"/> - <pt x="527" y="111" on="1"/> - </contour> - <contour> - <pt x="86" y="149" on="1"/> - <pt x="359" y="543" on="1"/> - <pt x="86" y="934" on="1"/> - <pt x="136" y="975" on="1"/> - <pt x="559" y="543" on="1"/> - <pt x="136" y="111" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 25 values pushed */ - 11 10 9 8 7 6 5 4 3 2 1 0 14 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="guilsinglleft" xMin="86" yMin="111" xMax="559" yMax="975"> - <contour> - <pt x="559" y="936" on="1"/> - <pt x="285" y="543" on="1"/> - <pt x="559" y="151" on="1"/> - <pt x="509" y="111" on="1"/> - <pt x="86" y="543" on="1"/> - <pt x="509" y="975" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 13 values pushed */ - 5 4 3 2 1 0 14 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="guilsinglright" xMin="123" yMin="111" xMax="596" yMax="975"> - <contour> - <pt x="123" y="149" on="1"/> - <pt x="396" y="543" on="1"/> - <pt x="123" y="934" on="1"/> - <pt x="173" y="975" on="1"/> - <pt x="596" y="543" on="1"/> - <pt x="173" y="111" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 13 values pushed */ - 5 4 3 2 1 0 14 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="h" xMin="37" yMin="0" xMax="1018" yMax="1579"> - <contour> - <pt x="37" y="0" on="1"/> - <pt x="37" y="62" on="1"/> - <pt x="56" y="63" on="1"/> - <pt x="129" y="67" on="0"/> - <pt x="142" y="89" on="1"/> - <pt x="155" y="108" on="0"/> - <pt x="156" y="160" on="1"/> - <pt x="158" y="259" on="1"/> - <pt x="158" y="1320" on="1"/> - <pt x="156" y="1419" on="1"/> - <pt x="156" y="1487" on="0"/> - <pt x="131" y="1501" on="1"/> - <pt x="109" y="1513" on="0"/> - <pt x="56" y="1516" on="1"/> - <pt x="37" y="1517" on="1"/> - <pt x="37" y="1579" on="1"/> - <pt x="356" y="1579" on="1"/> - <pt x="356" y="907" on="1"/> - <pt x="420" y="999" on="0"/> - <pt x="480" y="1044" on="1"/> - <pt x="566" y="1110" on="0"/> - <pt x="667" y="1110" on="1"/> - <pt x="791" y="1110" on="0"/> - <pt x="844" y="1032" on="1"/> - <pt x="897" y="954" on="0"/> - <pt x="897" y="765" on="1"/> - <pt x="897" y="259" on="1"/> - <pt x="899" y="160" on="1"/> - <pt x="899" y="92" on="0"/> - <pt x="924" y="78" on="1"/> - <pt x="946" y="66" on="0"/> - <pt x="1000" y="63" on="1"/> - <pt x="1018" y="62" on="1"/> - <pt x="1018" y="0" on="1"/> - <pt x="579" y="0" on="1"/> - <pt x="579" y="62" on="1"/> - <pt x="598" y="63" on="1"/> - <pt x="675" y="68" on="0"/> - <pt x="687" y="92" on="1"/> - <pt x="698" y="112" on="0"/> - <pt x="698" y="160" on="1"/> - <pt x="700" y="259" on="1"/> - <pt x="700" y="734" on="1"/> - <pt x="697" y="811" on="1"/> - <pt x="694" y="900" on="0"/> - <pt x="672" y="937" on="1"/> - <pt x="647" y="981" on="0"/> - <pt x="592" y="981" on="1"/> - <pt x="477" y="981" on="0"/> - <pt x="356" y="840" on="1"/> - <pt x="356" y="259" on="1"/> - <pt x="357" y="160" on="1"/> - <pt x="358" y="91" on="0"/> - <pt x="383" y="78" on="1"/> - <pt x="405" y="66" on="0"/> - <pt x="458" y="63" on="1"/> - <pt x="477" y="62" on="1"/> - <pt x="477" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 94 values pushed */ - 0 0 47 29 21 48 84 21 1 51 57 1 14 8 2 15 1 3 0 1 50 49 42 41 35 - 32 26 25 17 7 1 11 1 0 3 0 16 15 1 57 34 33 0 3 2 0 14 57 51 51 - 35 34 3 41 16 3 33 32 2 13 25 15 14 1 0 4 13 7 0 0 42 41 4 1 25 - 50 49 17 16 4 3 7 2 4 48 196 26 25 1 8 7 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - CALL[ ] - LOOPCALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="hbar" xMin="37" yMin="0" xMax="1018" yMax="1579"> - <contour> - <pt x="37" y="0" on="1"/> - <pt x="37" y="62" on="1"/> - <pt x="56" y="63" on="1"/> - <pt x="129" y="67" on="0"/> - <pt x="142" y="89" on="1"/> - <pt x="155" y="108" on="0"/> - <pt x="156" y="160" on="1"/> - <pt x="158" y="259" on="1"/> - <pt x="158" y="1246" on="1"/> - <pt x="37" y="1246" on="1"/> - <pt x="37" y="1308" on="1"/> - <pt x="158" y="1308" on="1"/> - <pt x="158" y="1320" on="1"/> - <pt x="156" y="1419" on="1"/> - <pt x="156" y="1487" on="0"/> - <pt x="131" y="1501" on="1"/> - <pt x="109" y="1513" on="0"/> - <pt x="56" y="1516" on="1"/> - <pt x="37" y="1517" on="1"/> - <pt x="37" y="1579" on="1"/> - <pt x="356" y="1579" on="1"/> - <pt x="356" y="1308" on="1"/> - <pt x="666" y="1308" on="1"/> - <pt x="666" y="1246" on="1"/> - <pt x="356" y="1246" on="1"/> - <pt x="356" y="907" on="1"/> - <pt x="420" y="999" on="0"/> - <pt x="480" y="1044" on="1"/> - <pt x="566" y="1110" on="0"/> - <pt x="667" y="1110" on="1"/> - <pt x="791" y="1110" on="0"/> - <pt x="844" y="1032" on="1"/> - <pt x="897" y="954" on="0"/> - <pt x="897" y="765" on="1"/> - <pt x="897" y="259" on="1"/> - <pt x="899" y="160" on="1"/> - <pt x="899" y="92" on="0"/> - <pt x="924" y="78" on="1"/> - <pt x="946" y="66" on="0"/> - <pt x="1000" y="63" on="1"/> - <pt x="1018" y="62" on="1"/> - <pt x="1018" y="0" on="1"/> - <pt x="579" y="0" on="1"/> - <pt x="579" y="62" on="1"/> - <pt x="598" y="63" on="1"/> - <pt x="675" y="68" on="0"/> - <pt x="687" y="92" on="1"/> - <pt x="698" y="112" on="0"/> - <pt x="698" y="160" on="1"/> - <pt x="700" y="259" on="1"/> - <pt x="700" y="734" on="1"/> - <pt x="697" y="811" on="1"/> - <pt x="694" y="900" on="0"/> - <pt x="672" y="937" on="1"/> - <pt x="647" y="981" on="0"/> - <pt x="592" y="981" on="1"/> - <pt x="477" y="981" on="0"/> - <pt x="356" y="840" on="1"/> - <pt x="356" y="259" on="1"/> - <pt x="357" y="160" on="1"/> - <pt x="358" y="91" on="0"/> - <pt x="383" y="78" on="1"/> - <pt x="405" y="66" on="0"/> - <pt x="458" y="63" on="1"/> - <pt x="477" y="62" on="1"/> - <pt x="477" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 118 values pushed */ - 0 0 55 29 29 48 84 29 1 59 65 18 12 2 19 10 3 1 58 57 50 49 43 40 34 - 33 25 7 1 11 1 0 3 0 0 0 24 23 9 8 14 3 10 1 4 48 84 20 19 1 - 22 21 11 10 3 65 42 41 0 3 3 0 14 65 59 59 43 42 23 22 5 49 20 3 41 - 40 2 13 33 19 18 10 9 1 0 6 13 7 0 0 50 49 4 1 33 58 57 25 24 21 - 20 4 5 7 2 4 48 196 34 33 1 12 11 8 7 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="hcircumflex" xMin="37" yMin="0" xMax="1018" yMax="1999"> - <contour> - <pt x="37" y="0" on="1"/> - <pt x="37" y="62" on="1"/> - <pt x="56" y="63" on="1"/> - <pt x="129" y="67" on="0"/> - <pt x="142" y="89" on="1"/> - <pt x="155" y="108" on="0"/> - <pt x="156" y="160" on="1"/> - <pt x="158" y="259" on="1"/> - <pt x="158" y="1320" on="1"/> - <pt x="156" y="1419" on="1"/> - <pt x="156" y="1487" on="0"/> - <pt x="131" y="1501" on="1"/> - <pt x="109" y="1513" on="0"/> - <pt x="56" y="1516" on="1"/> - <pt x="37" y="1517" on="1"/> - <pt x="37" y="1579" on="1"/> - <pt x="356" y="1579" on="1"/> - <pt x="356" y="907" on="1"/> - <pt x="420" y="999" on="0"/> - <pt x="480" y="1044" on="1"/> - <pt x="566" y="1110" on="0"/> - <pt x="667" y="1110" on="1"/> - <pt x="791" y="1110" on="0"/> - <pt x="844" y="1032" on="1"/> - <pt x="897" y="954" on="0"/> - <pt x="897" y="765" on="1"/> - <pt x="897" y="259" on="1"/> - <pt x="899" y="160" on="1"/> - <pt x="899" y="92" on="0"/> - <pt x="924" y="78" on="1"/> - <pt x="946" y="66" on="0"/> - <pt x="1000" y="63" on="1"/> - <pt x="1018" y="62" on="1"/> - <pt x="1018" y="0" on="1"/> - <pt x="579" y="0" on="1"/> - <pt x="579" y="62" on="1"/> - <pt x="598" y="63" on="1"/> - <pt x="675" y="68" on="0"/> - <pt x="687" y="92" on="1"/> - <pt x="698" y="112" on="0"/> - <pt x="698" y="160" on="1"/> - <pt x="700" y="259" on="1"/> - <pt x="700" y="734" on="1"/> - <pt x="697" y="811" on="1"/> - <pt x="694" y="900" on="0"/> - <pt x="672" y="937" on="1"/> - <pt x="647" y="981" on="0"/> - <pt x="592" y="981" on="1"/> - <pt x="477" y="981" on="0"/> - <pt x="356" y="840" on="1"/> - <pt x="356" y="259" on="1"/> - <pt x="357" y="160" on="1"/> - <pt x="358" y="91" on="0"/> - <pt x="383" y="78" on="1"/> - <pt x="405" y="66" on="0"/> - <pt x="458" y="63" on="1"/> - <pt x="477" y="62" on="1"/> - <pt x="477" y="0" on="1"/> - </contour> - <contour> - <pt x="171" y="1678" on="1"/> - <pt x="412" y="1999" on="1"/> - <pt x="634" y="1999" on="1"/> - <pt x="874" y="1678" on="1"/> - <pt x="788" y="1678" on="1"/> - <pt x="523" y="1900" on="1"/> - <pt x="257" y="1678" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 121 values pushed */ - 0 0 47 39 21 48 84 21 1 51 57 64 63 62 61 58 5 59 15 3 1 14 8 2 15 - 1 3 0 1 50 49 42 41 35 32 26 25 17 7 1 11 1 0 3 0 60 59 1 16 15 - 1 57 34 33 0 3 3 0 14 57 51 62 61 2 25 41 3 63 60 59 51 35 34 6 41 - 16 3 64 58 2 16 7 3 33 32 2 13 25 15 14 1 0 4 13 7 0 0 42 41 5 - 1 25 50 49 17 16 5 3 7 2 4 48 196 26 25 1 8 7 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - CALL[ ] - LOOPCALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="hungarumlaut" xMin="-5" yMin="1283" xMax="686" yMax="1604"> - <contour> - <pt x="-5" y="1283" on="1"/> - <pt x="209" y="1604" on="1"/> - <pt x="378" y="1604" on="1"/> - <pt x="57" y="1283" on="1"/> - </contour> - <contour> - <pt x="304" y="1283" on="1"/> - <pt x="517" y="1604" on="1"/> - <pt x="686" y="1604" on="1"/> - <pt x="365" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 22 values pushed */ - 7 4 3 0 4 13 1 6 5 2 1 3 0 14 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="hyphen" xMin="82" yMin="543" xMax="600" yMax="666"> - <contour> - <pt x="82" y="543" on="1"/> - <pt x="82" y="666" on="1"/> - <pt x="600" y="666" on="1"/> - <pt x="600" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 0 0 3 0 12 1 1 1 4 48 84 2 1 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="hyphen#1" xMin="82" yMin="543" xMax="600" yMax="666"> - <contour> - <pt x="82" y="543" on="1"/> - <pt x="82" y="666" on="1"/> - <pt x="600" y="666" on="1"/> - <pt x="600" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 0 0 3 0 12 1 1 1 4 48 84 2 1 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="i" xMin="47" yMin="0" xMax="536" yMax="1480"> - <contour> - <pt x="193" y="1283" on="1"/> - <pt x="193" y="1480" on="1"/> - <pt x="390" y="1480" on="1"/> - <pt x="390" y="1283" on="1"/> - </contour> - <contour> - <pt x="47" y="0" on="1"/> - <pt x="47" y="62" on="1"/> - <pt x="66" y="63" on="1"/> - <pt x="174" y="70" on="0"/> - <pt x="180" y="87" on="1"/> - <pt x="191" y="106" on="0"/> - <pt x="191" y="160" on="1"/> - <pt x="193" y="259" on="1"/> - <pt x="193" y="827" on="1"/> - <pt x="191" y="925" on="1"/> - <pt x="190" y="999" on="0"/> - <pt x="169" y="1007" on="1"/> - <pt x="149" y="1018" on="0"/> - <pt x="66" y="1023" on="1"/> - <pt x="47" y="1024" on="1"/> - <pt x="47" y="1086" on="1"/> - <pt x="390" y="1086" on="1"/> - <pt x="390" y="259" on="1"/> - <pt x="392" y="160" on="1"/> - <pt x="393" y="86" on="0"/> - <pt x="414" y="78" on="1"/> - <pt x="435" y="68" on="0"/> - <pt x="517" y="63" on="1"/> - <pt x="536" y="62" on="1"/> - <pt x="536" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 67 values pushed */ - 27 21 18 15 12 11 8 5 8 19 4 3 0 0 3 0 5 1 1 1 4 48 84 28 4 - 1 0 20 19 1 2 1 0 14 28 27 2 13 2 19 18 15 8 5 4 6 13 0 0 0 - 21 20 3 2 4 3 0 1 4 48 196 12 11 1 0 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="iacute" xMin="47" yMin="0" xMax="576" yMax="1604"> - <component glyphName="dotlessi" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="-15" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ibreve" xMin="-42" yMin="0" xMax="624" yMax="1604"> - <contour> - <pt x="535" y="62" on="1"/> - <pt x="535" y="0" on="1"/> - <pt x="46" y="0" on="1"/> - <pt x="46" y="62" on="1"/> - <pt x="65" y="63" on="1"/> - <pt x="173" y="70" on="0"/> - <pt x="179" y="87" on="1"/> - <pt x="189" y="106" on="0"/> - <pt x="190" y="160" on="1"/> - <pt x="192" y="259" on="1"/> - <pt x="192" y="827" on="1"/> - <pt x="190" y="925" on="1"/> - <pt x="189" y="999" on="0"/> - <pt x="168" y="1007" on="1"/> - <pt x="149" y="1018" on="0"/> - <pt x="65" y="1023" on="1"/> - <pt x="46" y="1024" on="1"/> - <pt x="46" y="1086" on="1"/> - <pt x="389" y="1086" on="1"/> - <pt x="389" y="259" on="1"/> - <pt x="391" y="160" on="1"/> - <pt x="392" y="85" on="0"/> - <pt x="414" y="78" on="1"/> - <pt x="437" y="68" on="0"/> - <pt x="516" y="63" on="1"/> - </contour> - <contour> - <pt x="-42" y="1604" on="1"/> - <pt x="23" y="1604" on="1"/> - <pt x="50" y="1514" on="0"/> - <pt x="110" y="1472" on="1"/> - <pt x="178" y="1425" on="0"/> - <pt x="291" y="1425" on="1"/> - <pt x="417" y="1425" on="0"/> - <pt x="487" y="1484" on="1"/> - <pt x="536" y="1524" on="0"/> - <pt x="560" y="1604" on="1"/> - <pt x="624" y="1604" on="1"/> - <pt x="605" y="1469" on="0"/> - <pt x="533" y="1388" on="1"/> - <pt x="439" y="1283" on="0"/> - <pt x="291" y="1283" on="1"/> - <pt x="137" y="1283" on="0"/> - <pt x="42" y="1398" on="1"/> - <pt x="-23" y="1476" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 66 values pushed */ - 0 0 30 20 39 48 84 19 16 13 10 9 3 0 7 17 1 3 35 34 26 25 4 13 39 - 17 2 1 1 0 18 17 1 14 35 34 1 0 4 13 18 26 25 17 16 13 3 2 7 13 - 9 0 0 19 18 4 1 9 1 4 48 196 10 9 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="icircumflex" xMin="-61" yMin="0" xMax="642" yMax="1604"> - <component glyphName="dotlessi" x="-1" y="0" flags="0x4"/> - <component glyphName="circumflex" x="-51" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="idieresis" xMin="7" yMin="0" xMax="575" yMax="1456"> - <contour> - <pt x="535" y="62" on="1"/> - <pt x="535" y="0" on="1"/> - <pt x="46" y="0" on="1"/> - <pt x="46" y="62" on="1"/> - <pt x="65" y="63" on="1"/> - <pt x="173" y="70" on="0"/> - <pt x="179" y="87" on="1"/> - <pt x="189" y="106" on="0"/> - <pt x="190" y="160" on="1"/> - <pt x="192" y="259" on="1"/> - <pt x="192" y="827" on="1"/> - <pt x="190" y="925" on="1"/> - <pt x="189" y="999" on="0"/> - <pt x="168" y="1007" on="1"/> - <pt x="149" y="1018" on="0"/> - <pt x="65" y="1023" on="1"/> - <pt x="46" y="1024" on="1"/> - <pt x="46" y="1086" on="1"/> - <pt x="389" y="1086" on="1"/> - <pt x="389" y="259" on="1"/> - <pt x="391" y="160" on="1"/> - <pt x="392" y="86" on="0"/> - <pt x="414" y="78" on="1"/> - <pt x="437" y="68" on="0"/> - <pt x="516" y="63" on="1"/> - </contour> - <contour> - <pt x="7" y="1283" on="1"/> - <pt x="7" y="1456" on="1"/> - <pt x="180" y="1456" on="1"/> - <pt x="180" y="1283" on="1"/> - </contour> - <contour> - <pt x="402" y="1283" on="1"/> - <pt x="402" y="1456" on="1"/> - <pt x="575" y="1456" on="1"/> - <pt x="575" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 85 values pushed */ - 19 16 13 10 9 3 0 7 17 1 3 0 0 32 29 28 25 13 3 26 1 4 48 84 31 - 30 27 26 3 2 1 1 2 0 18 17 1 14 1 0 2 31 29 3 17 16 13 3 2 5 - 27 25 3 0 0 30 29 13 1 31 28 27 13 1 25 19 18 4 1 9 3 4 48 196 32 - 31 1 26 25 1 10 9 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="igrave" xMin="7" yMin="0" xMax="535" yMax="1604"> - <component glyphName="dotlessi" x="-1" y="0" flags="0x4"/> - <component glyphName="grave" x="-84" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ij" xMin="47" yMin="-419" xMax="1021" yMax="1480"> - <component glyphName="i" x="0" y="0" flags="0x4"/> - <component glyphName="j" x="562" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="imacron" xMin="-40" yMin="0" xMax="602" yMax="1406"> - <component glyphName="dotlessi" x="-1" y="0" flags="0x4"/> - <component glyphName="macron" x="-60" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="iogonek" xMin="47" yMin="-370" xMax="536" yMax="1480"> - <component glyphName="i" x="0" y="0" flags="0x4"/> - <component glyphName="ogonek" x="-39" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="itilde" xMin="-55" yMin="0" xMax="611" yMax="1518"> - <contour> - <pt x="535" y="62" on="1"/> - <pt x="535" y="0" on="1"/> - <pt x="46" y="0" on="1"/> - <pt x="46" y="62" on="1"/> - <pt x="65" y="63" on="1"/> - <pt x="173" y="70" on="0"/> - <pt x="179" y="87" on="1"/> - <pt x="189" y="106" on="0"/> - <pt x="190" y="160" on="1"/> - <pt x="192" y="259" on="1"/> - <pt x="192" y="827" on="1"/> - <pt x="190" y="925" on="1"/> - <pt x="189" y="999" on="0"/> - <pt x="168" y="1007" on="1"/> - <pt x="149" y="1018" on="0"/> - <pt x="65" y="1023" on="1"/> - <pt x="46" y="1024" on="1"/> - <pt x="46" y="1086" on="1"/> - <pt x="389" y="1086" on="1"/> - <pt x="389" y="259" on="1"/> - <pt x="391" y="160" on="1"/> - <pt x="392" y="86" on="0"/> - <pt x="414" y="78" on="1"/> - <pt x="437" y="68" on="0"/> - <pt x="516" y="63" on="1"/> - </contour> - <contour> - <pt x="-55" y="1283" on="1"/> - <pt x="-28" y="1423" on="0"/> - <pt x="41" y="1476" on="1"/> - <pt x="95" y="1518" on="0"/> - <pt x="172" y="1518" on="1"/> - <pt x="237" y="1518" on="0"/> - <pt x="290" y="1480" on="1"/> - <pt x="325" y="1455" on="1"/> - <pt x="377" y="1418" on="0"/> - <pt x="431" y="1418" on="1"/> - <pt x="527" y="1418" on="0"/> - <pt x="549" y="1517" on="1"/> - <pt x="611" y="1517" on="1"/> - <pt x="583" y="1378" on="0"/> - <pt x="515" y="1325" on="1"/> - <pt x="461" y="1283" on="0"/> - <pt x="384" y="1283" on="1"/> - <pt x="321" y="1283" on="0"/> - <pt x="266" y="1321" on="1"/> - <pt x="231" y="1345" on="1"/> - <pt x="176" y="1383" on="0"/> - <pt x="124" y="1383" on="1"/> - <pt x="36" y="1383" on="0"/> - <pt x="7" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 80 values pushed */ - 0 0 46 20 29 34 20 41 48 84 29 0 41 1 48 41 25 3 0 17 3 0 19 16 13 - 10 9 3 0 7 17 1 3 1 37 36 2 13 0 0 2 1 1 0 18 17 1 14 37 36 - 1 0 4 13 18 48 25 17 16 13 3 2 7 13 9 0 0 19 18 5 1 9 1 4 48 - 196 10 9 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MDAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="j" xMin="-78" yMin="-419" xMax="459" yMax="1480"> - <contour> - <pt x="-78" y="-380" on="1"/> - <pt x="-78" y="-136" on="1"/> - <pt x="21" y="-136" on="1"/> - <pt x="22" y="-154" on="1"/> - <pt x="26" y="-268" on="0"/> - <pt x="47" y="-306" on="1"/> - <pt x="72" y="-352" on="0"/> - <pt x="133" y="-352" on="1"/> - <pt x="262" y="-352" on="0"/> - <pt x="262" y="-185" on="1"/> - <pt x="262" y="-82" on="1"/> - <pt x="262" y="827" on="1"/> - <pt x="260" y="925" on="1"/> - <pt x="260" y="993" on="0"/> - <pt x="235" y="1007" on="1"/> - <pt x="214" y="1019" on="0"/> - <pt x="159" y="1023" on="1"/> - <pt x="141" y="1024" on="1"/> - <pt x="141" y="1086" on="1"/> - <pt x="459" y="1086" on="1"/> - <pt x="459" y="12" on="1"/> - <pt x="459" y="-419" on="0"/> - <pt x="127" y="-419" on="1"/> - <pt x="51" y="-419" on="0"/> - </contour> - <contour> - <pt x="262" y="1283" on="1"/> - <pt x="262" y="1480" on="1"/> - <pt x="459" y="1480" on="1"/> - <pt x="459" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 76 values pushed */ - 0 0 7 17 22 48 84 1 20 17 11 3 18 2 3 0 1 10 9 2 1 0 5 13 22 - 2 0 0 0 27 24 5 1 25 1 4 48 84 26 25 0 19 18 1 14 18 17 2 3 9 - 0 3 0 0 25 24 11 10 9 4 4 19 1 4 48 196 27 26 20 19 3 1 0 1 2 - 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - MIAP[1] - ALIGNRP[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="jcircumflex" xMin="-78" yMin="-419" xMax="656" yMax="1604"> - <contour> - <pt x="-78" y="-380" on="1"/> - <pt x="-78" y="-136" on="1"/> - <pt x="21" y="-136" on="1"/> - <pt x="22" y="-154" on="1"/> - <pt x="26" y="-268" on="0"/> - <pt x="47" y="-306" on="1"/> - <pt x="72" y="-352" on="0"/> - <pt x="133" y="-352" on="1"/> - <pt x="262" y="-352" on="0"/> - <pt x="262" y="-185" on="1"/> - <pt x="262" y="-82" on="1"/> - <pt x="262" y="827" on="1"/> - <pt x="260" y="925" on="1"/> - <pt x="260" y="993" on="0"/> - <pt x="235" y="1007" on="1"/> - <pt x="214" y="1019" on="0"/> - <pt x="159" y="1023" on="1"/> - <pt x="141" y="1024" on="1"/> - <pt x="141" y="1086" on="1"/> - <pt x="459" y="1086" on="1"/> - <pt x="459" y="12" on="1"/> - <pt x="459" y="-419" on="0"/> - <pt x="127" y="-419" on="1"/> - <pt x="51" y="-419" on="0"/> - </contour> - <contour> - <pt x="-47" y="1283" on="1"/> - <pt x="194" y="1604" on="1"/> - <pt x="416" y="1604" on="1"/> - <pt x="656" y="1283" on="1"/> - <pt x="570" y="1283" on="1"/> - <pt x="305" y="1505" on="1"/> - <pt x="40" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 92 values pushed */ - 0 0 7 17 22 48 84 1 29 25 0 2 0 1 30 28 27 24 4 0 18 3 0 1 20 - 17 11 3 18 2 3 0 1 10 9 2 1 0 5 13 22 2 0 26 25 1 0 19 18 1 - 14 29 26 2 19 9 3 30 25 24 18 17 2 6 9 0 3 28 27 2 13 19 0 0 20 - 19 4 1 9 1 4 48 196 11 10 9 2 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="k" xMin="31" yMin="0" xMax="1024" yMax="1579"> - <contour> - <pt x="31" y="0" on="1"/> - <pt x="31" y="62" on="1"/> - <pt x="50" y="63" on="1"/> - <pt x="123" y="67" on="0"/> - <pt x="136" y="89" on="1"/> - <pt x="149" y="108" on="0"/> - <pt x="150" y="160" on="1"/> - <pt x="152" y="259" on="1"/> - <pt x="152" y="1320" on="1"/> - <pt x="150" y="1419" on="1"/> - <pt x="150" y="1487" on="0"/> - <pt x="125" y="1501" on="1"/> - <pt x="103" y="1513" on="0"/> - <pt x="50" y="1516" on="1"/> - <pt x="31" y="1517" on="1"/> - <pt x="31" y="1579" on="1"/> - <pt x="349" y="1579" on="1"/> - <pt x="349" y="583" on="1"/> - <pt x="396" y="583" on="1"/> - <pt x="586" y="825" on="1"/> - <pt x="664" y="925" on="1"/> - <pt x="704" y="979" on="1"/> - <pt x="717" y="996" on="0"/> - <pt x="717" y="1005" on="1"/> - <pt x="717" y="1022" on="0"/> - <pt x="683" y="1022" on="1"/> - <pt x="678" y="1022" on="1"/> - <pt x="673" y="1022" on="1"/> - <pt x="667" y="1022" on="1"/> - <pt x="661" y="1023" on="1"/> - <pt x="651" y="1023" on="0"/> - <pt x="640" y="1024" on="1"/> - <pt x="632" y="1024" on="1"/> - <pt x="631" y="1024" on="1"/> - <pt x="609" y="1024" on="1"/> - <pt x="609" y="1086" on="1"/> - <pt x="946" y="1086" on="1"/> - <pt x="946" y="1024" on="1"/> - <pt x="928" y="1023" on="1"/> - <pt x="840" y="1018" on="0"/> - <pt x="819" y="998" on="1"/> - <pt x="796" y="980" on="0"/> - <pt x="757" y="928" on="1"/> - <pt x="686" y="835" on="1"/> - <pt x="539" y="640" on="1"/> - <pt x="811" y="253" on="1"/> - <pt x="896" y="132" on="0"/> - <pt x="930" y="98" on="1"/> - <pt x="964" y="66" on="0"/> - <pt x="1005" y="63" on="1"/> - <pt x="1024" y="62" on="1"/> - <pt x="1024" y="0" on="1"/> - <pt x="769" y="0" on="1"/> - <pt x="396" y="534" on="1"/> - <pt x="349" y="534" on="1"/> - <pt x="349" y="259" on="1"/> - <pt x="351" y="160" on="1"/> - <pt x="352" y="91" on="0"/> - <pt x="376" y="78" on="1"/> - <pt x="398" y="66" on="0"/> - <pt x="452" y="63" on="1"/> - <pt x="470" y="62" on="1"/> - <pt x="470" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 90 values pushed */ - 14 8 2 15 35 3 61 55 54 53 50 44 37 34 33 32 31 28 27 26 25 18 17 7 1 - 19 35 0 3 16 15 1 62 52 51 0 3 2 0 36 35 1 14 62 61 53 52 51 50 44 - 37 36 35 34 33 32 31 28 27 26 25 18 19 13 23 16 15 14 1 0 4 13 7 0 0 - 55 54 17 16 4 3 7 1 4 48 196 8 7 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="kcommaaccent" xMin="31" yMin="-432" xMax="1024" yMax="1579"> - <component glyphName="k" x="0" y="0" flags="0x4"/> - <component glyphName="Unterkomma" x="276" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="kgreenlandic" xMin="37" yMin="0" xMax="1024" yMax="1086"> - <contour> - <pt x="476" y="62" on="1"/> - <pt x="476" y="0" on="1"/> - <pt x="37" y="0" on="1"/> - <pt x="37" y="62" on="1"/> - <pt x="56" y="63" on="1"/> - <pt x="129" y="67" on="0"/> - <pt x="142" y="89" on="1"/> - <pt x="155" y="108" on="0"/> - <pt x="156" y="160" on="1"/> - <pt x="158" y="259" on="1"/> - <pt x="158" y="827" on="1"/> - <pt x="156" y="925" on="1"/> - <pt x="156" y="993" on="0"/> - <pt x="131" y="1007" on="1"/> - <pt x="111" y="1019" on="0"/> - <pt x="56" y="1023" on="1"/> - <pt x="37" y="1024" on="1"/> - <pt x="37" y="1086" on="1"/> - <pt x="355" y="1086" on="1"/> - <pt x="355" y="583" on="1"/> - <pt x="402" y="583" on="1"/> - <pt x="592" y="825" on="1"/> - <pt x="670" y="925" on="1"/> - <pt x="710" y="979" on="1"/> - <pt x="723" y="996" on="0"/> - <pt x="723" y="1005" on="1"/> - <pt x="723" y="1022" on="0"/> - <pt x="689" y="1022" on="1"/> - <pt x="684" y="1022" on="1"/> - <pt x="679" y="1022" on="1"/> - <pt x="673" y="1022" on="1"/> - <pt x="667" y="1023" on="1"/> - <pt x="657" y="1023" on="0"/> - <pt x="646" y="1024" on="1"/> - <pt x="638" y="1024" on="1"/> - <pt x="637" y="1024" on="1"/> - <pt x="615" y="1024" on="1"/> - <pt x="615" y="1086" on="1"/> - <pt x="952" y="1086" on="1"/> - <pt x="952" y="1024" on="1"/> - <pt x="934" y="1023" on="1"/> - <pt x="846" y="1018" on="0"/> - <pt x="825" y="998" on="1"/> - <pt x="802" y="980" on="0"/> - <pt x="763" y="928" on="1"/> - <pt x="692" y="835" on="1"/> - <pt x="545" y="640" on="1"/> - <pt x="817" y="253" on="1"/> - <pt x="949" y="64" on="0"/> - <pt x="1011" y="62" on="1"/> - <pt x="1024" y="62" on="1"/> - <pt x="1024" y="0" on="1"/> - <pt x="775" y="0" on="1"/> - <pt x="402" y="534" on="1"/> - <pt x="355" y="534" on="1"/> - <pt x="355" y="259" on="1"/> - <pt x="357" y="160" on="1"/> - <pt x="358" y="91" on="0"/> - <pt x="382" y="78" on="1"/> - <pt x="404" y="66" on="0"/> - <pt x="458" y="63" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 87 values pushed */ - 55 54 53 50 49 46 39 36 35 34 33 30 29 28 27 20 19 16 10 9 3 0 22 17 1 - 3 52 51 2 1 3 0 38 37 18 17 1 3 14 53 52 51 50 49 46 39 38 37 36 35 - 34 33 30 29 28 27 20 1 0 20 13 25 18 17 16 3 2 4 13 9 0 0 55 54 19 - 18 4 3 9 1 4 48 196 10 9 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="l" xMin="47" yMin="0" xMax="536" yMax="1579"> - <contour> - <pt x="47" y="0" on="1"/> - <pt x="47" y="62" on="1"/> - <pt x="66" y="63" on="1"/> - <pt x="174" y="70" on="0"/> - <pt x="180" y="87" on="1"/> - <pt x="191" y="106" on="0"/> - <pt x="191" y="160" on="1"/> - <pt x="193" y="259" on="1"/> - <pt x="193" y="1320" on="1"/> - <pt x="191" y="1419" on="1"/> - <pt x="190" y="1493" on="0"/> - <pt x="169" y="1501" on="1"/> - <pt x="148" y="1511" on="0"/> - <pt x="66" y="1516" on="1"/> - <pt x="47" y="1517" on="1"/> - <pt x="47" y="1579" on="1"/> - <pt x="390" y="1579" on="1"/> - <pt x="390" y="259" on="1"/> - <pt x="392" y="160" on="1"/> - <pt x="393" y="86" on="0"/> - <pt x="414" y="78" on="1"/> - <pt x="435" y="68" on="0"/> - <pt x="517" y="63" on="1"/> - <pt x="536" y="62" on="1"/> - <pt x="536" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 48 values pushed */ - 23 17 14 8 7 4 1 7 15 0 3 16 15 1 24 0 1 2 0 14 24 23 2 13 16 - 15 14 4 1 0 5 13 7 0 0 17 16 4 1 7 1 4 48 196 8 7 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - LOOPCALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="lacute" xMin="47" yMin="0" xMax="576" yMax="1999"> - <component glyphName="l" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="-15" y="395" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="lcaron" xMin="47" yMin="0" xMax="785" yMax="1579"> - <contour> - <pt x="536" y="62" on="1"/> - <pt x="536" y="0" on="1"/> - <pt x="47" y="0" on="1"/> - <pt x="47" y="62" on="1"/> - <pt x="66" y="63" on="1"/> - <pt x="174" y="70" on="0"/> - <pt x="180" y="87" on="1"/> - <pt x="191" y="106" on="0"/> - <pt x="191" y="160" on="1"/> - <pt x="193" y="259" on="1"/> - <pt x="193" y="1320" on="1"/> - <pt x="191" y="1419" on="1"/> - <pt x="190" y="1493" on="0"/> - <pt x="169" y="1501" on="1"/> - <pt x="148" y="1511" on="0"/> - <pt x="66" y="1516" on="1"/> - <pt x="47" y="1517" on="1"/> - <pt x="47" y="1579" on="1"/> - <pt x="390" y="1579" on="1"/> - <pt x="390" y="259" on="1"/> - <pt x="392" y="160" on="1"/> - <pt x="393" y="86" on="0"/> - <pt x="414" y="78" on="1"/> - <pt x="435" y="68" on="0"/> - <pt x="517" y="63" on="1"/> - </contour> - <contour> - <pt x="667" y="1382" on="1"/> - <pt x="588" y="1382" on="1"/> - <pt x="588" y="1579" on="1"/> - <pt x="785" y="1579" on="1"/> - <pt x="785" y="1408" on="1"/> - <pt x="785" y="1245" on="0"/> - <pt x="723" y="1180" on="1"/> - <pt x="675" y="1131" on="0"/> - <pt x="588" y="1125" on="1"/> - <pt x="588" y="1175" on="1"/> - <pt x="667" y="1181" on="0"/> - <pt x="667" y="1330" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 74 values pushed */ - 36 34 33 29 26 25 19 16 10 9 6 3 0 13 17 1 3 28 27 18 17 3 2 1 1 - 2 0 14 36 25 2 28 26 3 1 0 2 26 18 3 17 16 6 3 2 5 13 9 0 0 - 34 33 27 26 4 3 28 19 18 4 1 9 2 4 48 196 29 28 1 10 9 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="lcommaaccent" xMin="47" yMin="-432" xMax="536" yMax="1579"> - <component glyphName="l" x="0" y="0" flags="0x4"/> - <component glyphName="Unterkomma" x="-26" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ldot" xMin="47" yMin="0" xMax="742" yMax="1579"> - <contour> - <pt x="536" y="62" on="1"/> - <pt x="536" y="0" on="1"/> - <pt x="47" y="0" on="1"/> - <pt x="47" y="62" on="1"/> - <pt x="66" y="63" on="1"/> - <pt x="174" y="70" on="0"/> - <pt x="180" y="87" on="1"/> - <pt x="191" y="106" on="0"/> - <pt x="191" y="160" on="1"/> - <pt x="193" y="259" on="1"/> - <pt x="193" y="1320" on="1"/> - <pt x="191" y="1419" on="1"/> - <pt x="190" y="1493" on="0"/> - <pt x="169" y="1501" on="1"/> - <pt x="148" y="1511" on="0"/> - <pt x="66" y="1516" on="1"/> - <pt x="47" y="1517" on="1"/> - <pt x="47" y="1579" on="1"/> - <pt x="390" y="1579" on="1"/> - <pt x="390" y="259" on="1"/> - <pt x="392" y="160" on="1"/> - <pt x="393" y="86" on="0"/> - <pt x="414" y="78" on="1"/> - <pt x="435" y="68" on="0"/> - <pt x="517" y="63" on="1"/> - </contour> - <contour> - <pt x="545" y="691" on="1"/> - <pt x="545" y="888" on="1"/> - <pt x="742" y="888" on="1"/> - <pt x="742" y="691" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 76 values pushed */ - 16 10 2 17 26 3 19 9 6 3 0 5 25 1 3 0 0 28 25 5 1 26 1 4 48 - 84 27 26 1 18 17 1 2 1 1 3 0 14 1 0 2 25 18 3 17 16 6 3 2 5 - 13 9 0 0 26 25 4 1 27 19 18 4 1 9 2 4 48 196 28 27 1 10 9 1 2 - 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="less" xMin="84" yMin="99" xMax="1071" yMax="1086"> - <contour> - <pt x="1071" y="99" on="1"/> - <pt x="84" y="592" on="1"/> - <pt x="1071" y="1086" on="1"/> - <pt x="1071" y="975" on="1"/> - <pt x="307" y="593" on="1"/> - <pt x="307" y="591" on="1"/> - <pt x="1071" y="209" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 15 values pushed */ - 6 5 4 3 2 1 0 14 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="logicalnot" xMin="84" yMin="296" xMax="1022" yMax="790"> - <contour> - <pt x="923" y="296" on="1"/> - <pt x="923" y="691" on="1"/> - <pt x="84" y="691" on="1"/> - <pt x="84" y="790" on="1"/> - <pt x="1022" y="790" on="1"/> - <pt x="1022" y="691" on="1"/> - <pt x="1022" y="691" on="1"/> - <pt x="1022" y="296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 41 values pushed */ - 7 0 1 0 0 6 5 2 1 9 3 3 1 4 48 84 4 3 1 0 14 3 2 0 0 - 0 1 0 9 1 4 1 4 48 196 7 6 5 4 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="longs" xMin="37" yMin="0" xMax="719" yMax="1604"> - <contour> - <pt x="176" y="999" on="1"/> - <pt x="37" y="999" on="1"/> - <pt x="37" y="1086" on="1"/> - <pt x="176" y="1086" on="1"/> - <pt x="176" y="1138" on="1"/> - <pt x="176" y="1401" on="0"/> - <pt x="245" y="1502" on="1"/> - <pt x="314" y="1604" on="0"/> - <pt x="489" y="1604" on="1"/> - <pt x="617" y="1604" on="0"/> - <pt x="719" y="1530" on="1"/> - <pt x="719" y="1295" on="1"/> - <pt x="608" y="1295" on="1"/> - <pt x="607" y="1314" on="1"/> - <pt x="605" y="1353" on="0"/> - <pt x="604" y="1380" on="1"/> - <pt x="604" y="1385" on="1"/> - <pt x="604" y="1540" on="0"/> - <pt x="496" y="1540" on="1"/> - <pt x="376" y="1540" on="0"/> - <pt x="374" y="1357" on="1"/> - <pt x="373" y="1257" on="1"/> - <pt x="373" y="259" on="1"/> - <pt x="375" y="160" on="1"/> - <pt x="376" y="88" on="0"/> - <pt x="408" y="75" on="1"/> - <pt x="434" y="63" on="0"/> - <pt x="500" y="63" on="1"/> - <pt x="544" y="62" on="1"/> - <pt x="544" y="0" on="1"/> - <pt x="55" y="0" on="1"/> - <pt x="55" y="62" on="1"/> - <pt x="74" y="63" on="1"/> - <pt x="151" y="68" on="0"/> - <pt x="163" y="92" on="1"/> - <pt x="174" y="112" on="0"/> - <pt x="174" y="160" on="1"/> - <pt x="176" y="259" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 82 values pushed */ - 0 0 18 38 8 48 84 37 31 28 22 4 0 29 3 21 16 15 12 11 10 4 7 13 8 - 2 0 0 1 0 8 1 2 1 4 48 84 30 29 1 0 3 2 1 14 29 28 16 15 12 - 5 10 21 3 31 30 2 1 4 13 0 0 0 22 21 5 1 0 1 4 48 196 11 10 1 - 37 4 3 0 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="lslash" xMin="47" yMin="0" xMax="536" yMax="1579"> - <contour> - <pt x="47" y="0" on="1"/> - <pt x="47" y="62" on="1"/> - <pt x="66" y="63" on="1"/> - <pt x="174" y="70" on="0"/> - <pt x="180" y="87" on="1"/> - <pt x="191" y="106" on="0"/> - <pt x="191" y="160" on="1"/> - <pt x="193" y="259" on="1"/> - <pt x="193" y="783" on="1"/> - <pt x="47" y="699" on="1"/> - <pt x="47" y="784" on="1"/> - <pt x="193" y="868" on="1"/> - <pt x="193" y="1320" on="1"/> - <pt x="191" y="1419" on="1"/> - <pt x="190" y="1493" on="0"/> - <pt x="169" y="1501" on="1"/> - <pt x="148" y="1511" on="0"/> - <pt x="66" y="1516" on="1"/> - <pt x="47" y="1517" on="1"/> - <pt x="47" y="1579" on="1"/> - <pt x="390" y="1579" on="1"/> - <pt x="390" y="982" on="1"/> - <pt x="536" y="1066" on="1"/> - <pt x="536" y="981" on="1"/> - <pt x="390" y="897" on="1"/> - <pt x="390" y="259" on="1"/> - <pt x="392" y="160" on="1"/> - <pt x="393" y="86" on="0"/> - <pt x="414" y="78" on="1"/> - <pt x="435" y="68" on="0"/> - <pt x="517" y="63" on="1"/> - <pt x="536" y="62" on="1"/> - <pt x="536" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 64 values pushed */ - 31 25 24 23 22 21 18 12 11 10 9 8 7 4 1 15 19 0 3 20 19 1 32 0 1 - 2 0 14 32 31 23 22 4 13 20 19 18 10 9 4 1 0 7 13 7 0 0 25 24 21 - 20 4 3 7 1 4 48 196 12 11 8 7 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - LOOPCALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="m" xMin="37" yMin="0" xMax="1584" yMax="1110"> - <contour> - <pt x="37" y="0" on="1"/> - <pt x="37" y="62" on="1"/> - <pt x="56" y="63" on="1"/> - <pt x="129" y="67" on="0"/> - <pt x="142" y="89" on="1"/> - <pt x="155" y="108" on="0"/> - <pt x="156" y="160" on="1"/> - <pt x="158" y="259" on="1"/> - <pt x="158" y="827" on="1"/> - <pt x="156" y="925" on="1"/> - <pt x="156" y="993" on="0"/> - <pt x="131" y="1007" on="1"/> - <pt x="111" y="1019" on="0"/> - <pt x="56" y="1023" on="1"/> - <pt x="37" y="1024" on="1"/> - <pt x="37" y="1086" on="1"/> - <pt x="355" y="1086" on="1"/> - <pt x="355" y="907" on="1"/> - <pt x="420" y="999" on="0"/> - <pt x="480" y="1044" on="1"/> - <pt x="566" y="1110" on="0"/> - <pt x="667" y="1110" on="1"/> - <pt x="764" y="1110" on="0"/> - <pt x="826" y="1056" on="1"/> - <pt x="880" y="1009" on="0"/> - <pt x="909" y="904" on="1"/> - <pt x="972" y="997" on="0"/> - <pt x="1033" y="1043" on="1"/> - <pt x="1120" y="1110" on="0"/> - <pt x="1226" y="1110" on="1"/> - <pt x="1356" y="1110" on="0"/> - <pt x="1409" y="1033" on="1"/> - <pt x="1463" y="956" on="0"/> - <pt x="1463" y="765" on="1"/> - <pt x="1463" y="259" on="1"/> - <pt x="1465" y="160" on="1"/> - <pt x="1466" y="91" on="0"/> - <pt x="1490" y="78" on="1"/> - <pt x="1512" y="66" on="0"/> - <pt x="1566" y="63" on="1"/> - <pt x="1584" y="62" on="1"/> - <pt x="1584" y="0" on="1"/> - <pt x="1145" y="0" on="1"/> - <pt x="1145" y="62" on="1"/> - <pt x="1164" y="63" on="1"/> - <pt x="1237" y="67" on="0"/> - <pt x="1251" y="89" on="1"/> - <pt x="1263" y="109" on="0"/> - <pt x="1264" y="160" on="1"/> - <pt x="1266" y="259" on="1"/> - <pt x="1266" y="734" on="1"/> - <pt x="1264" y="811" on="1"/> - <pt x="1262" y="894" on="0"/> - <pt x="1240" y="933" on="1"/> - <pt x="1212" y="981" on="0"/> - <pt x="1151" y="981" on="1"/> - <pt x="1031" y="981" on="0"/> - <pt x="909" y="840" on="1"/> - <pt x="909" y="259" on="1"/> - <pt x="911" y="160" on="1"/> - <pt x="911" y="91" on="0"/> - <pt x="936" y="78" on="1"/> - <pt x="958" y="66" on="0"/> - <pt x="1012" y="63" on="1"/> - <pt x="1030" y="62" on="1"/> - <pt x="1030" y="0" on="1"/> - <pt x="591" y="0" on="1"/> - <pt x="591" y="62" on="1"/> - <pt x="610" y="63" on="1"/> - <pt x="683" y="68" on="0"/> - <pt x="696" y="89" on="1"/> - <pt x="709" y="109" on="0"/> - <pt x="710" y="160" on="1"/> - <pt x="712" y="259" on="1"/> - <pt x="712" y="734" on="1"/> - <pt x="710" y="811" on="1"/> - <pt x="708" y="895" on="0"/> - <pt x="685" y="934" on="1"/> - <pt x="658" y="981" on="0"/> - <pt x="598" y="981" on="1"/> - <pt x="477" y="981" on="0"/> - <pt x="355" y="840" on="1"/> - <pt x="355" y="259" on="1"/> - <pt x="357" y="160" on="1"/> - <pt x="358" y="91" on="0"/> - <pt x="382" y="78" on="1"/> - <pt x="404" y="66" on="0"/> - <pt x="458" y="63" on="1"/> - <pt x="476" y="62" on="1"/> - <pt x="476" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 114 values pushed */ - 0 0 79 29 21 55 29 29 48 84 29 1 21 1 88 82 81 74 73 67 64 58 57 50 49 - 43 40 34 33 25 17 14 8 7 1 21 15 0 3 89 66 65 42 41 0 5 0 16 15 1 - 14 65 64 43 42 4 49 25 3 89 88 67 66 4 73 16 3 41 40 2 13 33 15 14 1 - 0 4 13 7 0 0 50 49 4 1 33 58 57 25 4 2 73 82 81 17 16 4 3 7 3 - 4 48 196 34 33 1 74 73 1 8 7 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="macron" xMin="20" yMin="1283" xMax="662" yMax="1406"> - <contour> - <pt x="20" y="1283" on="1"/> - <pt x="20" y="1406" on="1"/> - <pt x="662" y="1406" on="1"/> - <pt x="662" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 0 0 3 0 12 1 1 1 4 48 84 2 1 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="macron#1" xMin="99" yMin="1480" xMax="926" yMax="1604"> - <contour> - <pt x="99" y="1480" on="1"/> - <pt x="99" y="1604" on="1"/> - <pt x="926" y="1604" on="1"/> - <pt x="926" y="1480" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 0 0 3 0 12 1 1 1 4 48 84 2 1 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="minus" xMin="222" yMin="543" xMax="1406" yMax="642"> - <contour> - <pt x="222" y="543" on="1"/> - <pt x="222" y="642" on="1"/> - <pt x="1406" y="642" on="1"/> - <pt x="1406" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 0 0 3 0 9 1 1 1 4 48 84 2 1 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="mu" xMin="12" yMin="-296" xMax="993" yMax="1086"> - <contour> - <pt x="331" y="-22" on="1"/> - <pt x="331" y="-296" on="1"/> - <pt x="133" y="-296" on="1"/> - <pt x="133" y="321" on="1"/> - <pt x="133" y="827" on="1"/> - <pt x="131" y="925" on="1"/> - <pt x="131" y="993" on="0"/> - <pt x="106" y="1007" on="1"/> - <pt x="86" y="1019" on="0"/> - <pt x="31" y="1023" on="1"/> - <pt x="12" y="1024" on="1"/> - <pt x="12" y="1086" on="1"/> - <pt x="331" y="1086" on="1"/> - <pt x="331" y="352" on="1"/> - <pt x="333" y="274" on="1"/> - <pt x="335" y="188" on="0"/> - <pt x="357" y="150" on="1"/> - <pt x="383" y="105" on="0"/> - <pt x="439" y="105" on="1"/> - <pt x="554" y="105" on="0"/> - <pt x="675" y="245" on="1"/> - <pt x="675" y="827" on="1"/> - <pt x="673" y="925" on="1"/> - <pt x="672" y="994" on="0"/> - <pt x="648" y="1007" on="1"/> - <pt x="627" y="1019" on="0"/> - <pt x="573" y="1023" on="1"/> - <pt x="554" y="1024" on="1"/> - <pt x="554" y="1086" on="1"/> - <pt x="872" y="1086" on="1"/> - <pt x="872" y="259" on="1"/> - <pt x="874" y="160" on="1"/> - <pt x="874" y="92" on="0"/> - <pt x="899" y="78" on="1"/> - <pt x="921" y="66" on="0"/> - <pt x="974" y="63" on="1"/> - <pt x="993" y="62" on="1"/> - <pt x="993" y="0" on="1"/> - <pt x="675" y="0" on="1"/> - <pt x="675" y="179" on="1"/> - <pt x="533" y="-25" on="0"/> - <pt x="368" y="-25" on="1"/> - <pt x="352" y="-25" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 85 values pushed */ - 0 0 18 29 41 48 84 41 2 39 36 30 27 21 20 13 10 4 3 10 11 37 3 0 37 - 1 2 38 37 1 2 1 1 2 0 29 28 12 11 1 3 14 28 27 2 20 0 3 37 36 - 2 13 29 11 10 2 0 0 39 38 21 20 4 3 29 13 12 1 0 4 3 2 2 4 48 - 196 30 29 1 4 3 2 2 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="multiply" xMin="84" yMin="99" xMax="1071" yMax="1086"> - <contour> - <pt x="84" y="169" on="1"/> - <pt x="507" y="592" on="1"/> - <pt x="84" y="1016" on="1"/> - <pt x="153" y="1086" on="1"/> - <pt x="577" y="662" on="1"/> - <pt x="1001" y="1086" on="1"/> - <pt x="1071" y="1016" on="1"/> - <pt x="647" y="592" on="1"/> - <pt x="1071" y="169" on="1"/> - <pt x="1001" y="99" on="1"/> - <pt x="577" y="523" on="1"/> - <pt x="154" y="99" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 30 values pushed */ - 1 11 10 9 8 7 6 5 4 3 2 1 0 12 13 1 0 14 11 10 9 8 7 6 5 - 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="n" xMin="37" yMin="0" xMax="1018" yMax="1110"> - <contour> - <pt x="37" y="0" on="1"/> - <pt x="37" y="62" on="1"/> - <pt x="56" y="63" on="1"/> - <pt x="129" y="67" on="0"/> - <pt x="142" y="89" on="1"/> - <pt x="155" y="108" on="0"/> - <pt x="156" y="160" on="1"/> - <pt x="158" y="259" on="1"/> - <pt x="158" y="827" on="1"/> - <pt x="156" y="925" on="1"/> - <pt x="156" y="993" on="0"/> - <pt x="131" y="1007" on="1"/> - <pt x="111" y="1019" on="0"/> - <pt x="56" y="1023" on="1"/> - <pt x="37" y="1024" on="1"/> - <pt x="37" y="1086" on="1"/> - <pt x="356" y="1086" on="1"/> - <pt x="356" y="907" on="1"/> - <pt x="420" y="999" on="0"/> - <pt x="480" y="1044" on="1"/> - <pt x="566" y="1110" on="0"/> - <pt x="667" y="1110" on="1"/> - <pt x="791" y="1110" on="0"/> - <pt x="844" y="1032" on="1"/> - <pt x="897" y="954" on="0"/> - <pt x="897" y="765" on="1"/> - <pt x="897" y="259" on="1"/> - <pt x="899" y="160" on="1"/> - <pt x="899" y="92" on="0"/> - <pt x="924" y="78" on="1"/> - <pt x="946" y="66" on="0"/> - <pt x="1000" y="63" on="1"/> - <pt x="1018" y="62" on="1"/> - <pt x="1018" y="0" on="1"/> - <pt x="579" y="0" on="1"/> - <pt x="579" y="62" on="1"/> - <pt x="598" y="63" on="1"/> - <pt x="675" y="68" on="0"/> - <pt x="687" y="92" on="1"/> - <pt x="698" y="112" on="0"/> - <pt x="698" y="160" on="1"/> - <pt x="700" y="259" on="1"/> - <pt x="700" y="734" on="1"/> - <pt x="697" y="811" on="1"/> - <pt x="694" y="900" on="0"/> - <pt x="672" y="937" on="1"/> - <pt x="647" y="981" on="0"/> - <pt x="592" y="981" on="1"/> - <pt x="477" y="981" on="0"/> - <pt x="356" y="840" on="1"/> - <pt x="356" y="259" on="1"/> - <pt x="357" y="160" on="1"/> - <pt x="358" y="91" on="0"/> - <pt x="383" y="78" on="1"/> - <pt x="405" y="66" on="0"/> - <pt x="458" y="63" on="1"/> - <pt x="477" y="62" on="1"/> - <pt x="477" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 85 values pushed */ - 0 0 47 29 21 48 84 21 1 51 57 50 49 42 41 35 32 26 25 17 14 8 7 1 13 - 15 0 3 57 34 33 0 3 0 16 15 1 14 57 51 51 35 34 3 41 16 3 33 32 2 - 13 25 15 14 1 0 4 13 7 0 0 42 41 4 1 25 50 49 17 16 4 3 7 2 4 - 48 196 26 25 1 8 7 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="nacute" xMin="37" yMin="0" xMax="1018" yMax="1604"> - <component glyphName="n" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="271" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="napostrophe" xMin="25" yMin="0" xMax="1230" yMax="1579"> - <contour> - <pt x="249" y="0" on="1"/> - <pt x="249" y="62" on="1"/> - <pt x="268" y="63" on="1"/> - <pt x="341" y="68" on="0"/> - <pt x="354" y="89" on="1"/> - <pt x="367" y="109" on="0"/> - <pt x="368" y="160" on="1"/> - <pt x="370" y="259" on="1"/> - <pt x="370" y="827" on="1"/> - <pt x="368" y="925" on="1"/> - <pt x="367" y="994" on="0"/> - <pt x="343" y="1007" on="1"/> - <pt x="322" y="1019" on="0"/> - <pt x="268" y="1023" on="1"/> - <pt x="249" y="1024" on="1"/> - <pt x="249" y="1086" on="1"/> - <pt x="568" y="1086" on="1"/> - <pt x="568" y="907" on="1"/> - <pt x="632" y="998" on="0"/> - <pt x="692" y="1044" on="1"/> - <pt x="777" y="1110" on="0"/> - <pt x="879" y="1110" on="1"/> - <pt x="1003" y="1110" on="0"/> - <pt x="1056" y="1032" on="1"/> - <pt x="1109" y="954" on="0"/> - <pt x="1109" y="765" on="1"/> - <pt x="1109" y="259" on="1"/> - <pt x="1111" y="160" on="1"/> - <pt x="1112" y="91" on="0"/> - <pt x="1136" y="78" on="1"/> - <pt x="1158" y="66" on="0"/> - <pt x="1212" y="63" on="1"/> - <pt x="1230" y="62" on="1"/> - <pt x="1230" y="0" on="1"/> - <pt x="791" y="0" on="1"/> - <pt x="791" y="62" on="1"/> - <pt x="810" y="63" on="1"/> - <pt x="883" y="68" on="0"/> - <pt x="897" y="89" on="1"/> - <pt x="909" y="109" on="0"/> - <pt x="910" y="160" on="1"/> - <pt x="912" y="259" on="1"/> - <pt x="912" y="734" on="1"/> - <pt x="909" y="811" on="1"/> - <pt x="906" y="900" on="0"/> - <pt x="884" y="937" on="1"/> - <pt x="859" y="981" on="0"/> - <pt x="804" y="981" on="1"/> - <pt x="689" y="981" on="0"/> - <pt x="568" y="840" on="1"/> - <pt x="568" y="259" on="1"/> - <pt x="569" y="160" on="1"/> - <pt x="570" y="91" on="0"/> - <pt x="595" y="78" on="1"/> - <pt x="617" y="66" on="0"/> - <pt x="670" y="63" on="1"/> - <pt x="689" y="62" on="1"/> - <pt x="689" y="0" on="1"/> - </contour> - <contour> - <pt x="104" y="1382" on="1"/> - <pt x="25" y="1382" on="1"/> - <pt x="25" y="1579" on="1"/> - <pt x="222" y="1579" on="1"/> - <pt x="222" y="1408" on="1"/> - <pt x="222" y="1245" on="0"/> - <pt x="160" y="1180" on="1"/> - <pt x="113" y="1131" on="0"/> - <pt x="25" y="1125" on="1"/> - <pt x="25" y="1175" on="1"/> - <pt x="104" y="1181" on="0"/> - <pt x="104" y="1330" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 116 values pushed */ - 0 0 47 29 21 48 84 21 1 51 57 69 67 66 62 59 58 6 60 15 3 50 49 42 41 - 35 32 26 25 17 14 8 7 1 13 15 0 3 61 60 1 57 34 33 0 3 2 0 16 15 - 1 14 57 51 51 35 34 3 41 16 3 15 14 1 0 4 7 61 3 69 58 2 61 59 3 - 33 32 2 13 25 0 0 62 61 4 1 59 42 41 4 1 25 50 49 17 16 4 3 7 3 - 4 48 196 67 66 60 59 3 26 25 1 8 7 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="nbhyphen" xMin="82" yMin="543" xMax="600" yMax="666"> - <contour> - <pt x="82" y="543" on="1"/> - <pt x="82" y="666" on="1"/> - <pt x="600" y="666" on="1"/> - <pt x="600" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 0 0 3 0 12 1 1 1 4 48 84 2 1 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ncaron" xMin="37" yMin="0" xMax="1018" yMax="1604"> - <component glyphName="n" x="0" y="0" flags="0x4"/> - <component glyphName="caron" x="162" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ncommaaccent" xMin="37" yMin="-432" xMax="1018" yMax="1110"> - <component glyphName="n" x="0" y="0" flags="0x4"/> - <component glyphName="Unterkomma" x="233" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="nine" xMin="37" yMin="-37" xMax="975" yMax="1518"> - <contour> - <pt x="764" y="723" on="1"/> - <pt x="713" y="637" on="0"/> - <pt x="654" y="593" on="1"/> - <pt x="568" y="530" on="0"/> - <pt x="449" y="530" on="1"/> - <pt x="269" y="530" on="0"/> - <pt x="153" y="659" on="1"/> - <pt x="37" y="789" on="0"/> - <pt x="37" y="993" on="1"/> - <pt x="37" y="1216" on="0"/> - <pt x="171" y="1367" on="1"/> - <pt x="305" y="1518" on="0"/> - <pt x="502" y="1518" on="1"/> - <pt x="721" y="1518" on="0"/> - <pt x="848" y="1320" on="1"/> - <pt x="975" y="1121" on="0"/> - <pt x="975" y="779" on="1"/> - <pt x="975" y="402" on="0"/> - <pt x="827" y="183" on="1"/> - <pt x="679" y="-37" on="0"/> - <pt x="416" y="-37" on="1"/> - <pt x="251" y="-37" on="0"/> - <pt x="120" y="29" on="1"/> - <pt x="120" y="253" on="1"/> - <pt x="219" y="253" on="1"/> - <pt x="220" y="232" on="1"/> - <pt x="225" y="120" on="0"/> - <pt x="270" y="75" on="1"/> - <pt x="313" y="31" on="0"/> - <pt x="412" y="31" on="1"/> - <pt x="600" y="31" on="0"/> - <pt x="694" y="269" on="1"/> - <pt x="761" y="439" on="0"/> - </contour> - <contour> - <pt x="472" y="1450" on="1"/> - <pt x="364" y="1450" on="0"/> - <pt x="301" y="1333" on="1"/> - <pt x="237" y="1215" on="0"/> - <pt x="237" y="1018" on="1"/> - <pt x="237" y="600" on="0"/> - <pt x="499" y="600" on="1"/> - <pt x="610" y="600" on="0"/> - <pt x="684" y="695" on="1"/> - <pt x="759" y="791" on="0"/> - <pt x="759" y="940" on="1"/> - <pt x="759" y="1128" on="0"/> - <pt x="691" y="1271" on="1"/> - <pt x="606" y="1450" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 54 values pushed */ - 0 0 39 17 4 33 17 12 29 17 20 48 84 20 2 12 0 4 1 1 24 23 22 4 0 - 5 0 2 3 0 0 14 0 0 43 10 16 37 5 8 48 196 24 0 2 13 16 22 8 22 - 23 22 1 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="nonbreakingspace"/><!-- contains no outline data --> - - <TTGlyph name="ntilde" xMin="37" yMin="0" xMax="1018" yMax="1518"> - <component glyphName="n" x="0" y="0" flags="0x4"/> - <component glyphName="tilde" x="175" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="numbersign" xMin="0" yMin="0" xMax="1024" yMax="1480"> - <contour> - <pt x="93" y="0" on="1"/> - <pt x="207" y="456" on="1"/> - <pt x="0" y="456" on="1"/> - <pt x="19" y="555" on="1"/> - <pt x="232" y="555" on="1"/> - <pt x="324" y="925" on="1"/> - <pt x="93" y="925" on="1"/> - <pt x="112" y="1024" on="1"/> - <pt x="349" y="1024" on="1"/> - <pt x="463" y="1480" on="1"/> - <pt x="566" y="1480" on="1"/> - <pt x="451" y="1024" on="1"/> - <pt x="715" y="1024" on="1"/> - <pt x="829" y="1480" on="1"/> - <pt x="932" y="1480" on="1"/> - <pt x="818" y="1024" on="1"/> - <pt x="1024" y="1024" on="1"/> - <pt x="1006" y="925" on="1"/> - <pt x="793" y="925" on="1"/> - <pt x="701" y="555" on="1"/> - <pt x="931" y="555" on="1"/> - <pt x="913" y="456" on="1"/> - <pt x="676" y="456" on="1"/> - <pt x="562" y="0" on="1"/> - <pt x="459" y="0" on="1"/> - <pt x="573" y="456" on="1"/> - <pt x="310" y="456" on="1"/> - <pt x="195" y="0" on="1"/> - </contour> - <contour> - <pt x="334" y="555" on="1"/> - <pt x="598" y="555" on="1"/> - <pt x="690" y="925" on="1"/> - <pt x="427" y="925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 87 values pushed */ - 14 13 10 9 4 13 7 27 24 23 0 4 13 1 0 0 31 30 18 17 6 5 9 5 7 - 26 25 22 21 2 1 9 5 3 2 4 48 84 16 15 12 11 8 7 5 29 28 20 19 4 - 3 5 2 0 14 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 - 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="o" xMin="62" yMin="-25" xMax="962" yMax="1110"> - <contour> - <pt x="512" y="1110" on="1"/> - <pt x="719" y="1110" on="0"/> - <pt x="840" y="957" on="1"/> - <pt x="962" y="805" on="0"/> - <pt x="962" y="544" on="1"/> - <pt x="962" y="279" on="0"/> - <pt x="840" y="127" on="1"/> - <pt x="719" y="-25" on="0"/> - <pt x="506" y="-25" on="1"/> - <pt x="324" y="-25" on="0"/> - <pt x="209" y="99" on="1"/> - <pt x="62" y="257" on="0"/> - <pt x="62" y="543" on="1"/> - <pt x="62" y="805" on="0"/> - <pt x="183" y="957" on="1"/> - <pt x="305" y="1110" on="0"/> - </contour> - <contour> - <pt x="512" y="1043" on="1"/> - <pt x="404" y="1043" on="0"/> - <pt x="341" y="908" on="1"/> - <pt x="278" y="772" on="0"/> - <pt x="278" y="538" on="1"/> - <pt x="278" y="43" on="0"/> - <pt x="517" y="43" on="1"/> - <pt x="607" y="43" on="0"/> - <pt x="667" y="147" on="1"/> - <pt x="747" y="286" on="0"/> - <pt x="747" y="545" on="1"/> - <pt x="747" y="772" on="0"/> - <pt x="683" y="908" on="1"/> - <pt x="620" y="1043" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 27 values pushed */ - 0 0 22 17 8 16 17 0 48 84 8 2 0 1 14 0 0 26 10 4 20 10 12 48 196 - 12 4 - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="oacute" xMin="62" yMin="-25" xMax="962" yMax="1604"> - <component glyphName="o" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="255" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="obreve" xMin="62" yMin="-25" xMax="962" yMax="1604"> - <contour> - <pt x="512" y="1110" on="1"/> - <pt x="719" y="1110" on="0"/> - <pt x="840" y="957" on="1"/> - <pt x="962" y="805" on="0"/> - <pt x="962" y="544" on="1"/> - <pt x="962" y="279" on="0"/> - <pt x="840" y="127" on="1"/> - <pt x="719" y="-25" on="0"/> - <pt x="506" y="-25" on="1"/> - <pt x="324" y="-25" on="0"/> - <pt x="209" y="99" on="1"/> - <pt x="62" y="257" on="0"/> - <pt x="62" y="543" on="1"/> - <pt x="62" y="805" on="0"/> - <pt x="183" y="957" on="1"/> - <pt x="305" y="1110" on="0"/> - </contour> - <contour> - <pt x="512" y="1043" on="1"/> - <pt x="404" y="1043" on="0"/> - <pt x="341" y="908" on="1"/> - <pt x="278" y="772" on="0"/> - <pt x="278" y="538" on="1"/> - <pt x="278" y="43" on="0"/> - <pt x="517" y="43" on="1"/> - <pt x="607" y="43" on="0"/> - <pt x="667" y="147" on="1"/> - <pt x="747" y="286" on="0"/> - <pt x="747" y="545" on="1"/> - <pt x="747" y="772" on="0"/> - <pt x="683" y="908" on="1"/> - <pt x="620" y="1043" on="0"/> - </contour> - <contour> - <pt x="179" y="1604" on="1"/> - <pt x="244" y="1604" on="1"/> - <pt x="271" y="1514" on="0"/> - <pt x="331" y="1472" on="1"/> - <pt x="399" y="1425" on="0"/> - <pt x="512" y="1425" on="1"/> - <pt x="638" y="1425" on="0"/> - <pt x="708" y="1484" on="1"/> - <pt x="756" y="1523" on="0"/> - <pt x="781" y="1604" on="1"/> - <pt x="845" y="1604" on="1"/> - <pt x="826" y="1469" on="0"/> - <pt x="754" y="1388" on="1"/> - <pt x="659" y="1283" on="0"/> - <pt x="512" y="1283" on="1"/> - <pt x="359" y="1283" on="0"/> - <pt x="263" y="1398" on="1"/> - <pt x="198" y="1475" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 44 values pushed */ - 0 0 35 20 44 22 38 8 16 38 0 48 84 8 2 0 1 1 40 39 31 30 4 13 44 - 1 0 14 0 0 26 40 4 20 40 12 48 196 40 39 31 30 12 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ocircumflex" xMin="62" yMin="-25" xMax="962" yMax="1604"> - <component glyphName="o" x="0" y="0" flags="0x4"/> - <component glyphName="circumflex" x="171" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="odieresis" xMin="62" yMin="-25" xMax="962" yMax="1456"> - <component glyphName="o" x="0" y="0" flags="0x4"/> - <component glyphName="dieresis" x="172" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="oe" xMin="62" yMin="-25" xMax="1417" yMax="1110"> - <contour> - <pt x="790" y="927" on="1"/> - <pt x="906" y="1109" on="0"/> - <pt x="1071" y="1109" on="1"/> - <pt x="1234" y="1109" on="0"/> - <pt x="1325" y="977" on="1"/> - <pt x="1417" y="845" on="0"/> - <pt x="1417" y="603" on="1"/> - <pt x="1417" y="585" on="1"/> - <pt x="904" y="585" on="1"/> - <pt x="909" y="345" on="0"/> - <pt x="960" y="230" on="1"/> - <pt x="1031" y="74" on="0"/> - <pt x="1184" y="74" on="1"/> - <pt x="1284" y="74" on="0"/> - <pt x="1417" y="146" on="1"/> - <pt x="1417" y="46" on="1"/> - <pt x="1268" y="-25" on="0"/> - <pt x="1144" y="-25" on="1"/> - <pt x="1008" y="-25" on="0"/> - <pt x="907" y="54" on="1"/> - <pt x="847" y="100" on="0"/> - <pt x="790" y="188" on="1"/> - <pt x="718" y="71" on="0"/> - <pt x="664" y="27" on="1"/> - <pt x="600" y="-25" on="0"/> - <pt x="495" y="-25" on="1"/> - <pt x="304" y="-25" on="0"/> - <pt x="183" y="134" on="1"/> - <pt x="62" y="292" on="0"/> - <pt x="62" y="543" on="1"/> - <pt x="62" y="791" on="0"/> - <pt x="183" y="951" on="1"/> - <pt x="303" y="1110" on="0"/> - <pt x="491" y="1110" on="1"/> - <pt x="614" y="1110" on="0"/> - <pt x="698" y="1042" on="1"/> - <pt x="747" y="1003" on="0"/> - </contour> - <contour> - <pt x="500" y="1047" on="1"/> - <pt x="273" y="1047" on="0"/> - <pt x="273" y="532" on="1"/> - <pt x="273" y="38" on="0"/> - <pt x="503" y="38" on="1"/> - <pt x="629" y="38" on="0"/> - <pt x="665" y="197" on="1"/> - <pt x="692" y="317" on="0"/> - <pt x="692" y="550" on="1"/> - <pt x="692" y="823" on="0"/> - <pt x="649" y="934" on="1"/> - <pt x="606" y="1047" on="0"/> - </contour> - <contour> - <pt x="905" y="648" on="1"/> - <pt x="1207" y="648" on="1"/> - <pt x="1207" y="692" on="1"/> - <pt x="1207" y="1049" on="0"/> - <pt x="1064" y="1049" on="1"/> - <pt x="973" y="1049" on="0"/> - <pt x="935" y="919" on="1"/> - <pt x="907" y="827" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 80 values pushed */ - 0 0 53 11 2 41 11 25 37 11 33 12 9 17 48 84 33 1 25 2 17 2 2 1 1 - 51 0 2 1 49 3 0 6 49 7 2 1 21 15 14 3 7 2 3 0 0 0 8 7 14 - 1 49 1 4 48 84 50 49 1 0 14 0 0 39 10 29 48 196 51 50 49 45 29 21 15 - 14 8 7 6 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ogonek" xMin="156" yMin="-370" xMax="525" yMax="0"> - <contour> - <pt x="525" y="-273" on="1"/> - <pt x="525" y="-341" on="1"/> - <pt x="454" y="-370" on="0"/> - <pt x="376" y="-370" on="1"/> - <pt x="156" y="-370" on="0"/> - <pt x="156" y="-211" on="1"/> - <pt x="156" y="-89" on="0"/> - <pt x="314" y="0" on="1"/> - <pt x="421" y="0" on="1"/> - <pt x="292" y="-80" on="0"/> - <pt x="292" y="-182" on="1"/> - <pt x="292" y="-289" on="0"/> - <pt x="425" y="-289" on="1"/> - <pt x="476" y="-289" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 25 values pushed */ - 0 0 12 7 3 48 84 8 7 3 1 0 14 0 0 10 48 5 48 196 8 7 5 1 0 - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ograve" xMin="62" yMin="-25" xMax="962" yMax="1604"> - <component glyphName="o" x="0" y="0" flags="0x4"/> - <component glyphName="grave" x="88" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ohungarumlaut" xMin="62" yMin="-25" xMax="962" yMax="1604"> - <component glyphName="o" x="0" y="0" flags="0x4"/> - <component glyphName="hungarumlaut" x="258" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="omacron" xMin="62" yMin="-25" xMax="962" yMax="1406"> - <component glyphName="o" x="0" y="0" flags="0x4"/> - <component glyphName="macron" x="171" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="one" xMin="130" yMin="0" xMax="895" yMax="1493"> - <contour> - <pt x="611" y="1493" on="1"/> - <pt x="611" y="259" on="1"/> - <pt x="617" y="160" on="1"/> - <pt x="622" y="89" on="0"/> - <pt x="666" y="75" on="1"/> - <pt x="701" y="63" on="0"/> - <pt x="778" y="63" on="1"/> - <pt x="895" y="62" on="1"/> - <pt x="895" y="0" on="1"/> - <pt x="130" y="0" on="1"/> - <pt x="130" y="62" on="1"/> - <pt x="247" y="63" on="1"/> - <pt x="296" y="64" on="0"/> - <pt x="357" y="74" on="1"/> - <pt x="384" y="80" on="0"/> - <pt x="392" y="92" on="1"/> - <pt x="414" y="129" on="0"/> - <pt x="414" y="259" on="1"/> - <pt x="414" y="1177" on="1"/> - <pt x="408" y="1278" on="1"/> - <pt x="404" y="1349" on="0"/> - <pt x="367" y="1349" on="1"/> - <pt x="338" y="1349" on="0"/> - <pt x="229" y="1329" on="1"/> - <pt x="130" y="1311" on="1"/> - <pt x="130" y="1373" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 42 values pushed */ - 17 9 25 24 18 7 1 0 6 13 21 8 9 8 1 0 14 9 17 8 7 2 13 0 25 - 24 17 0 0 1 0 4 1 17 1 4 48 196 18 17 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="onehalf" xMin="173" yMin="-37" xMax="1388" yMax="1517"> - <contour> - <pt x="173" y="-37" on="1"/> - <pt x="1261" y="1517" on="1"/> - <pt x="1347" y="1517" on="1"/> - <pt x="259" y="-37" on="1"/> - </contour> - <contour> - <pt x="173" y="772" on="1"/> - <pt x="173" y="810" on="1"/> - <pt x="207" y="811" on="1"/> - <pt x="252" y="815" on="1"/> - <pt x="295" y="818" on="0"/> - <pt x="302" y="840" on="1"/> - <pt x="309" y="859" on="0"/> - <pt x="309" y="909" on="1"/> - <pt x="309" y="1344" on="1"/> - <pt x="306" y="1395" on="1"/> - <pt x="304" y="1431" on="0"/> - <pt x="285" y="1431" on="1"/> - <pt x="269" y="1431" on="0"/> - <pt x="216" y="1421" on="1"/> - <pt x="173" y="1413" on="1"/> - <pt x="173" y="1453" on="1"/> - <pt x="432" y="1517" on="1"/> - <pt x="432" y="909" on="1"/> - <pt x="432" y="848" on="0"/> - <pt x="442" y="831" on="1"/> - <pt x="451" y="816" on="0"/> - <pt x="490" y="814" on="1"/> - <pt x="534" y="811" on="1"/> - <pt x="568" y="810" on="1"/> - <pt x="568" y="772" on="1"/> - </contour> - <contour> - <pt x="918" y="0" on="1"/> - <pt x="918" y="49" on="1"/> - <pt x="959" y="165" on="0"/> - <pt x="1070" y="267" on="1"/> - <pt x="1111" y="305" on="1"/> - <pt x="1258" y="441" on="0"/> - <pt x="1258" y="562" on="1"/> - <pt x="1258" y="718" on="0"/> - <pt x="1121" y="718" on="1"/> - <pt x="1061" y="718" on="0"/> - <pt x="995" y="669" on="1"/> - <pt x="995" y="579" on="1"/> - <pt x="936" y="579" on="1"/> - <pt x="936" y="715" on="1"/> - <pt x="1045" y="758" on="0"/> - <pt x="1145" y="758" on="1"/> - <pt x="1253" y="758" on="0"/> - <pt x="1321" y="702" on="1"/> - <pt x="1388" y="646" on="0"/> - <pt x="1388" y="560" on="1"/> - <pt x="1388" y="452" on="0"/> - <pt x="1257" y="356" on="1"/> - <pt x="1226" y="334" on="0"/> - <pt x="1202" y="318" on="1"/> - <pt x="1152" y="281" on="1"/> - <pt x="1040" y="199" on="0"/> - <pt x="1030" y="105" on="1"/> - <pt x="1386" y="105" on="1"/> - <pt x="1386" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 106 values pushed */ - 0 0 37 45 44 48 84 44 44 42 41 40 39 5 4 55 3 30 55 29 2 27 21 20 19 - 18 12 11 5 2 1 10 13 15 4 3 0 29 0 0 56 55 43 1 29 1 4 48 84 57 - 29 1 28 4 1 2 0 14 0 0 35 44 48 48 196 57 56 55 42 41 40 39 30 29 28 - 27 2 1 13 13 48 20 19 18 5 4 3 0 6 13 11 0 0 21 20 12 1 11 1 4 - 48 196 12 11 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="onequarter" xMin="173" yMin="-37" xMax="1364" yMax="1517"> - <contour> - <pt x="173" y="-37" on="1"/> - <pt x="1261" y="1517" on="1"/> - <pt x="1347" y="1517" on="1"/> - <pt x="259" y="-37" on="1"/> - </contour> - <contour> - <pt x="1065" y="0" on="1"/> - <pt x="1065" y="39" on="1"/> - <pt x="1075" y="39" on="1"/> - <pt x="1125" y="39" on="0"/> - <pt x="1139" y="48" on="1"/> - <pt x="1153" y="57" on="0"/> - <pt x="1155" y="88" on="1"/> - <pt x="1158" y="137" on="1"/> - <pt x="1158" y="205" on="1"/> - <pt x="813" y="205" on="1"/> - <pt x="813" y="271" on="1"/> - <pt x="1181" y="751" on="1"/> - <pt x="1271" y="751" on="1"/> - <pt x="1271" y="294" on="1"/> - <pt x="1364" y="294" on="1"/> - <pt x="1364" y="205" on="1"/> - <pt x="1271" y="205" on="1"/> - <pt x="1271" y="137" on="1"/> - <pt x="1274" y="88" on="1"/> - <pt x="1276" y="52" on="0"/> - <pt x="1297" y="45" on="1"/> - <pt x="1313" y="39" on="0"/> - <pt x="1348" y="39" on="1"/> - <pt x="1358" y="39" on="1"/> - <pt x="1358" y="0" on="1"/> - </contour> - <contour> - <pt x="878" y="294" on="1"/> - <pt x="1158" y="294" on="1"/> - <pt x="1158" y="658" on="1"/> - </contour> - <contour> - <pt x="173" y="772" on="1"/> - <pt x="173" y="810" on="1"/> - <pt x="207" y="811" on="1"/> - <pt x="252" y="815" on="1"/> - <pt x="295" y="818" on="0"/> - <pt x="302" y="840" on="1"/> - <pt x="309" y="859" on="0"/> - <pt x="309" y="909" on="1"/> - <pt x="309" y="1344" on="1"/> - <pt x="306" y="1395" on="1"/> - <pt x="304" y="1431" on="0"/> - <pt x="285" y="1431" on="1"/> - <pt x="269" y="1431" on="0"/> - <pt x="216" y="1421" on="1"/> - <pt x="173" y="1413" on="1"/> - <pt x="173" y="1453" on="1"/> - <pt x="432" y="1517" on="1"/> - <pt x="432" y="909" on="1"/> - <pt x="432" y="848" on="0"/> - <pt x="442" y="831" on="1"/> - <pt x="451" y="816" on="0"/> - <pt x="490" y="814" on="1"/> - <pt x="534" y="811" on="1"/> - <pt x="568" y="810" on="1"/> - <pt x="568" y="772" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 129 values pushed */ - 31 16 15 3 32 17 3 14 17 12 2 27 26 21 11 6 5 6 12 4 3 55 49 48 47 - 46 40 39 33 2 1 10 13 43 32 3 0 4 0 0 30 29 18 17 46 3 12 1 4 48 - 84 56 32 1 20 19 13 12 3 28 4 1 3 0 14 15 1 2 16 11 3 56 55 29 14 - 13 6 5 4 8 11 48 3 28 27 26 19 18 2 6 13 16 47 46 33 32 3 0 6 13 - 39 0 0 49 48 12 1 39 31 30 12 11 15 3 16 2 4 48 196 40 39 1 21 20 17 - 16 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="onesuperior" xMin="136" yMin="772" xMax="531" yMax="1517"> - <contour> - <pt x="136" y="772" on="1"/> - <pt x="136" y="810" on="1"/> - <pt x="170" y="811" on="1"/> - <pt x="215" y="815" on="1"/> - <pt x="258" y="818" on="0"/> - <pt x="265" y="840" on="1"/> - <pt x="272" y="860" on="0"/> - <pt x="272" y="909" on="1"/> - <pt x="272" y="1344" on="1"/> - <pt x="269" y="1395" on="1"/> - <pt x="267" y="1431" on="0"/> - <pt x="248" y="1431" on="1"/> - <pt x="234" y="1431" on="0"/> - <pt x="179" y="1421" on="1"/> - <pt x="136" y="1413" on="1"/> - <pt x="136" y="1453" on="1"/> - <pt x="395" y="1517" on="1"/> - <pt x="395" y="909" on="1"/> - <pt x="395" y="848" on="0"/> - <pt x="405" y="831" on="1"/> - <pt x="414" y="816" on="0"/> - <pt x="453" y="814" on="1"/> - <pt x="497" y="811" on="1"/> - <pt x="531" y="810" on="1"/> - <pt x="531" y="772" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 44 values pushed */ - 23 17 16 15 14 8 7 1 8 13 11 0 24 0 1 0 14 24 23 2 13 16 15 14 1 - 0 4 13 7 0 0 17 16 12 1 7 1 4 48 196 8 7 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ordfeminine" xMin="25" yMin="830" xMax="561" yMax="1517"> - <contour> - <pt x="363" y="925" on="1"/> - <pt x="282" y="830" on="0"/> - <pt x="193" y="830" on="1"/> - <pt x="25" y="830" on="0"/> - <pt x="25" y="1007" on="1"/> - <pt x="25" y="1222" on="0"/> - <pt x="317" y="1222" on="1"/> - <pt x="363" y="1222" on="1"/> - <pt x="363" y="1283" on="1"/> - <pt x="363" y="1388" on="0"/> - <pt x="341" y="1426" on="1"/> - <pt x="318" y="1465" on="0"/> - <pt x="257" y="1465" on="1"/> - <pt x="161" y="1465" on="0"/> - <pt x="161" y="1356" on="1"/> - <pt x="161" y="1338" on="1"/> - <pt x="59" y="1338" on="1"/> - <pt x="59" y="1462" on="1"/> - <pt x="157" y="1517" on="0"/> - <pt x="276" y="1517" on="1"/> - <pt x="401" y="1517" on="0"/> - <pt x="450" y="1466" on="1"/> - <pt x="499" y="1416" on="0"/> - <pt x="499" y="1283" on="1"/> - <pt x="499" y="1024" on="1"/> - <pt x="499" y="919" on="0"/> - <pt x="539" y="919" on="1"/> - <pt x="547" y="919" on="0"/> - <pt x="561" y="922" on="1"/> - <pt x="561" y="866" on="1"/> - <pt x="512" y="830" on="0"/> - <pt x="466" y="830" on="1"/> - <pt x="392" y="830" on="0"/> - </contour> - <contour> - <pt x="363" y="989" on="1"/> - <pt x="363" y="1171" on="1"/> - <pt x="326" y="1171" on="1"/> - <pt x="173" y="1171" on="0"/> - <pt x="173" y="1018" on="1"/> - <pt x="173" y="915" on="0"/> - <pt x="249" y="915" on="1"/> - <pt x="300" y="915" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 78 values pushed */ - 0 0 39 7 2 12 25 19 48 84 19 0 1 35 34 33 29 28 24 23 17 16 15 14 8 - 7 6 0 15 13 31 26 2 3 12 0 0 14 0 0 37 47 4 48 196 29 28 2 13 23 - 35 17 16 15 14 6 6 13 4 0 0 0 34 33 8 7 0 23 4 23 1 4 48 196 24 - 23 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - LOOPCALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ordmasculine" xMin="25" yMin="830" xMax="611" yMax="1517"> - <contour> - <pt x="318" y="1517" on="1"/> - <pt x="451" y="1517" on="0"/> - <pt x="531" y="1424" on="1"/> - <pt x="611" y="1331" on="0"/> - <pt x="611" y="1174" on="1"/> - <pt x="611" y="1015" on="0"/> - <pt x="531" y="923" on="1"/> - <pt x="450" y="830" on="0"/> - <pt x="314" y="830" on="1"/> - <pt x="197" y="830" on="0"/> - <pt x="121" y="906" on="1"/> - <pt x="25" y="1002" on="0"/> - <pt x="25" y="1174" on="1"/> - <pt x="25" y="1331" on="0"/> - <pt x="105" y="1424" on="1"/> - <pt x="184" y="1517" on="0"/> - </contour> - <contour> - <pt x="318" y="1465" on="1"/> - <pt x="182" y="1465" on="0"/> - <pt x="182" y="1174" on="1"/> - <pt x="182" y="883" on="0"/> - <pt x="322" y="883" on="1"/> - <pt x="453" y="883" on="0"/> - <pt x="453" y="1168" on="1"/> - <pt x="453" y="1465" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 29 values pushed */ - 0 0 20 25 8 16 25 0 48 84 0 0 1 8 0 0 14 0 0 22 24 4 18 24 12 - 48 196 12 4 - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="oslash" xMin="62" yMin="-25" xMax="963" yMax="1110"> - <contour> - <pt x="62" y="-25" on="1"/> - <pt x="177" y="138" on="1"/> - <pt x="62" y="310" on="0"/> - <pt x="62" y="544" on="1"/> - <pt x="62" y="804" on="0"/> - <pt x="183" y="957" on="1"/> - <pt x="304" y="1110" on="0"/> - <pt x="511" y="1110" on="1"/> - <pt x="677" y="1110" on="0"/> - <pt x="795" y="1008" on="1"/> - <pt x="867" y="1110" on="1"/> - <pt x="963" y="1110" on="1"/> - <pt x="847" y="948" on="1"/> - <pt x="963" y="776" on="0"/> - <pt x="963" y="540" on="1"/> - <pt x="963" y="281" on="0"/> - <pt x="841" y="128" on="1"/> - <pt x="720" y="-25" on="0"/> - <pt x="513" y="-25" on="1"/> - <pt x="347" y="-25" on="0"/> - <pt x="230" y="77" on="1"/> - <pt x="158" y="-25" on="1"/> - </contour> - <contour> - <pt x="698" y="873" on="1"/> - <pt x="638" y="1043" on="0"/> - <pt x="513" y="1043" on="1"/> - <pt x="404" y="1043" on="0"/> - <pt x="341" y="907" on="1"/> - <pt x="278" y="772" on="0"/> - <pt x="278" y="547" on="1"/> - <pt x="278" y="439" on="0"/> - <pt x="301" y="312" on="1"/> - </contour> - <contour> - <pt x="326" y="213" on="1"/> - <pt x="386" y="43" on="0"/> - <pt x="512" y="43" on="1"/> - <pt x="621" y="43" on="0"/> - <pt x="684" y="179" on="1"/> - <pt x="747" y="315" on="0"/> - <pt x="747" y="541" on="1"/> - <pt x="747" y="644" on="0"/> - <pt x="724" y="773" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 67 values pushed */ - 0 0 33 17 18 24 17 7 48 84 18 2 7 1 1 1 39 31 30 22 20 12 9 1 8 - 1 2 3 0 0 1 11 10 2 13 1 0 1 21 0 2 0 14 0 0 37 10 14 28 10 - 3 48 196 39 31 30 22 21 20 14 12 11 10 9 3 1 0 - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="otilde" xMin="62" yMin="-25" xMax="962" yMax="1518"> - <component glyphName="o" x="0" y="0" flags="0x4"/> - <component glyphName="tilde" x="171" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="p" xMin="0" yMin="-395" xMax="956" yMax="1110"> - <contour> - <pt x="0" y="-395" on="1"/> - <pt x="0" y="-333" on="1"/> - <pt x="19" y="-332" on="1"/> - <pt x="92" y="-328" on="0"/> - <pt x="105" y="-306" on="1"/> - <pt x="118" y="-287" on="0"/> - <pt x="119" y="-235" on="1"/> - <pt x="121" y="-136" on="1"/> - <pt x="121" y="827" on="1"/> - <pt x="119" y="925" on="1"/> - <pt x="119" y="993" on="0"/> - <pt x="94" y="1007" on="1"/> - <pt x="74" y="1019" on="0"/> - <pt x="19" y="1023" on="1"/> - <pt x="0" y="1024" on="1"/> - <pt x="0" y="1086" on="1"/> - <pt x="318" y="1086" on="1"/> - <pt x="318" y="907" on="1"/> - <pt x="376" y="998" on="0"/> - <pt x="432" y="1044" on="1"/> - <pt x="512" y="1110" on="0"/> - <pt x="610" y="1110" on="1"/> - <pt x="770" y="1110" on="0"/> - <pt x="863" y="968" on="1"/> - <pt x="956" y="826" on="0"/> - <pt x="956" y="575" on="1"/> - <pt x="956" y="293" on="0"/> - <pt x="835" y="134" on="1"/> - <pt x="714" y="-25" on="0"/> - <pt x="503" y="-25" on="1"/> - <pt x="429" y="-25" on="0"/> - <pt x="318" y="0" on="1"/> - <pt x="318" y="-136" on="1"/> - <pt x="320" y="-235" on="1"/> - <pt x="321" y="-304" on="0"/> - <pt x="345" y="-317" on="1"/> - <pt x="367" y="-329" on="0"/> - <pt x="421" y="-332" on="1"/> - <pt x="439" y="-333" on="1"/> - <pt x="439" y="-395" on="1"/> - </contour> - <contour> - <pt x="318" y="77" on="1"/> - <pt x="399" y="54" on="0"/> - <pt x="449" y="54" on="1"/> - <pt x="585" y="54" on="0"/> - <pt x="664" y="181" on="1"/> - <pt x="743" y="308" on="0"/> - <pt x="743" y="536" on="1"/> - <pt x="743" y="983" on="0"/> - <pt x="542" y="983" on="1"/> - <pt x="449" y="983" on="0"/> - <pt x="318" y="837" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 83 values pushed */ - 0 0 48 29 21 42 21 29 48 84 29 2 21 1 1 50 40 17 14 8 5 15 2 3 0 - 1 38 32 31 7 1 5 2 0 3 0 39 0 1 0 16 15 1 14 0 0 46 10 25 48 - 196 39 38 2 13 25 16 15 14 1 0 4 13 7 0 0 50 40 32 31 17 16 4 5 7 - 1 4 48 196 8 7 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="paragraph" xMin="15" yMin="-296" xMax="805" yMax="1489"> - <contour> - <pt x="484" y="-296" on="1"/> - <pt x="484" y="740" on="1"/> - <pt x="291" y="744" on="0"/> - <pt x="171" y="834" on="1"/> - <pt x="15" y="951" on="0"/> - <pt x="15" y="1159" on="1"/> - <pt x="15" y="1362" on="0"/> - <pt x="150" y="1440" on="1"/> - <pt x="233" y="1489" on="0"/> - <pt x="360" y="1487" on="1"/> - <pt x="431" y="1486" on="1"/> - <pt x="536" y="1482" on="1"/> - <pt x="653" y="1480" on="1"/> - <pt x="805" y="1480" on="1"/> - <pt x="805" y="-296" on="1"/> - <pt x="731" y="-296" on="1"/> - <pt x="731" y="1382" on="1"/> - <pt x="558" y="1382" on="1"/> - <pt x="558" y="-296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 60 values pushed */ - 1 1 16 2 2 0 1 18 15 14 0 4 13 2 0 0 0 17 16 9 1 12 1 4 48 - 84 13 12 0 14 12 15 17 2 5 0 0 0 16 15 21 1 13 1 0 21 1 17 2 4 - 48 196 14 13 1 18 17 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="parenleft" xMin="116" yMin="-296" xMax="579" yMax="1579"> - <contour> - <pt x="579" y="-234" on="1"/> - <pt x="579" y="-296" on="1"/> - <pt x="384" y="-169" on="0"/> - <pt x="268" y="38" on="1"/> - <pt x="116" y="312" on="0"/> - <pt x="116" y="643" on="1"/> - <pt x="116" y="983" on="0"/> - <pt x="286" y="1271" on="1"/> - <pt x="398" y="1462" on="0"/> - <pt x="579" y="1579" on="1"/> - <pt x="579" y="1517" on="1"/> - <pt x="440" y="1355" on="0"/> - <pt x="382" y="1195" on="1"/> - <pt x="313" y="1003" on="0"/> - <pt x="313" y="642" on="1"/> - <pt x="313" y="266" on="0"/> - <pt x="389" y="70" on="1"/> - <pt x="447" y="-81" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 17 values pushed */ - 10 9 1 0 14 0 0 14 5 5 48 196 10 9 5 1 0 - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="parenright" xMin="104" yMin="-296" xMax="567" yMax="1579"> - <contour> - <pt x="104" y="1517" on="1"/> - <pt x="104" y="1579" on="1"/> - <pt x="299" y="1452" on="0"/> - <pt x="415" y="1245" on="1"/> - <pt x="567" y="971" on="0"/> - <pt x="567" y="640" on="1"/> - <pt x="567" y="299" on="0"/> - <pt x="397" y="12" on="1"/> - <pt x="285" y="-178" on="0"/> - <pt x="104" y="-296" on="1"/> - <pt x="104" y="-234" on="1"/> - <pt x="244" y="-72" on="0"/> - <pt x="300" y="88" on="1"/> - <pt x="369" y="280" on="0"/> - <pt x="369" y="639" on="1"/> - <pt x="369" y="1016" on="0"/> - <pt x="293" y="1214" on="1"/> - <pt x="236" y="1363" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 17 values pushed */ - 10 9 1 0 14 0 0 14 5 5 48 196 10 9 5 1 0 - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="percent" xMin="120" yMin="-37" xMax="1585" yMax="1517"> - <contour> - <pt x="195" y="-37" on="1"/> - <pt x="1385" y="1517" on="1"/> - <pt x="1509" y="1517" on="1"/> - <pt x="320" y="-37" on="1"/> - </contour> - <contour> - <pt x="435" y="1480" on="1"/> - <pt x="573" y="1480" on="0"/> - <pt x="661" y="1377" on="1"/> - <pt x="749" y="1274" on="0"/> - <pt x="749" y="1110" on="1"/> - <pt x="749" y="945" on="0"/> - <pt x="660" y="843" on="1"/> - <pt x="571" y="740" on="0"/> - <pt x="430" y="740" on="1"/> - <pt x="309" y="740" on="0"/> - <pt x="226" y="824" on="1"/> - <pt x="120" y="931" on="0"/> - <pt x="120" y="1110" on="1"/> - <pt x="120" y="1273" on="0"/> - <pt x="208" y="1376" on="1"/> - <pt x="296" y="1480" on="0"/> - </contour> - <contour> - <pt x="434" y="1419" on="1"/> - <pt x="268" y="1419" on="0"/> - <pt x="268" y="1111" on="1"/> - <pt x="268" y="802" on="0"/> - <pt x="433" y="802" on="1"/> - <pt x="601" y="802" on="0"/> - <pt x="601" y="1116" on="1"/> - <pt x="601" y="1419" on="0"/> - </contour> - <contour> - <pt x="1270" y="740" on="1"/> - <pt x="1409" y="740" on="0"/> - <pt x="1497" y="636" on="1"/> - <pt x="1585" y="533" on="0"/> - <pt x="1585" y="370" on="1"/> - <pt x="1585" y="205" on="0"/> - <pt x="1496" y="103" on="1"/> - <pt x="1407" y="0" on="0"/> - <pt x="1266" y="0" on="1"/> - <pt x="1144" y="0" on="0"/> - <pt x="1062" y="84" on="1"/> - <pt x="956" y="192" on="0"/> - <pt x="956" y="370" on="1"/> - <pt x="956" y="533" on="0"/> - <pt x="1044" y="636" on="1"/> - <pt x="1132" y="740" on="0"/> - </contour> - <contour> - <pt x="1270" y="679" on="1"/> - <pt x="1104" y="679" on="0"/> - <pt x="1104" y="370" on="1"/> - <pt x="1104" y="61" on="0"/> - <pt x="1269" y="61" on="1"/> - <pt x="1437" y="61" on="0"/> - <pt x="1437" y="374" on="1"/> - <pt x="1437" y="679" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 69 values pushed */ - 0 0 48 11 36 44 11 28 24 11 12 20 11 4 48 84 36 2 4 0 28 12 1 1 28 - 12 2 0 2 3 0 0 1 2 1 2 13 0 0 1 3 0 2 0 14 0 0 50 47 32 - 46 47 40 26 47 8 22 47 16 48 196 40 32 16 8 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MDAP[1] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="period" xMin="133" yMin="0" xMax="380" yMax="247"> - <contour> - <pt x="133" y="0" on="1"/> - <pt x="133" y="247" on="1"/> - <pt x="380" y="247" on="1"/> - <pt x="380" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 31 values pushed */ - 0 0 2 1 6 1 0 1 4 48 84 3 0 1 0 14 0 0 3 2 6 1 0 1 4 - 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="periodcentered" xMin="133" yMin="491" xMax="380" yMax="738"> - <contour> - <pt x="133" y="491" on="1"/> - <pt x="133" y="738" on="1"/> - <pt x="380" y="738" on="1"/> - <pt x="380" y="491" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 31 values pushed */ - 0 0 3 0 6 1 1 1 4 48 84 2 1 1 0 14 0 0 3 2 6 1 0 1 4 - 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="periodcentered#1" xMin="133" yMin="491" xMax="380" yMax="738"> - <contour> - <pt x="133" y="491" on="1"/> - <pt x="133" y="738" on="1"/> - <pt x="380" y="738" on="1"/> - <pt x="380" y="491" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 31 values pushed */ - 0 0 3 0 6 1 1 1 4 48 84 2 1 1 0 14 0 0 3 2 6 1 0 1 4 - 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="perthousand" xMin="34" yMin="-37" xMax="2014" yMax="1517"> - <contour> - <pt x="349" y="1480" on="1"/> - <pt x="487" y="1480" on="0"/> - <pt x="575" y="1377" on="1"/> - <pt x="663" y="1273" on="0"/> - <pt x="663" y="1111" on="1"/> - <pt x="663" y="945" on="0"/> - <pt x="575" y="843" on="1"/> - <pt x="487" y="740" on="0"/> - <pt x="345" y="740" on="1"/> - <pt x="224" y="740" on="0"/> - <pt x="140" y="824" on="1"/> - <pt x="34" y="932" on="0"/> - <pt x="34" y="1110" on="1"/> - <pt x="34" y="1273" on="0"/> - <pt x="122" y="1376" on="1"/> - <pt x="210" y="1480" on="0"/> - </contour> - <contour> - <pt x="349" y="1419" on="1"/> - <pt x="182" y="1419" on="0"/> - <pt x="182" y="1111" on="1"/> - <pt x="182" y="802" on="0"/> - <pt x="347" y="802" on="1"/> - <pt x="515" y="802" on="0"/> - <pt x="515" y="1112" on="1"/> - <pt x="515" y="1419" on="0"/> - </contour> - <contour> - <pt x="972" y="740" on="1"/> - <pt x="1110" y="740" on="0"/> - <pt x="1198" y="636" on="1"/> - <pt x="1286" y="532" on="0"/> - <pt x="1286" y="370" on="1"/> - <pt x="1286" y="205" on="0"/> - <pt x="1198" y="103" on="1"/> - <pt x="1110" y="0" on="0"/> - <pt x="968" y="0" on="1"/> - <pt x="847" y="0" on="0"/> - <pt x="763" y="84" on="1"/> - <pt x="657" y="192" on="0"/> - <pt x="657" y="370" on="1"/> - <pt x="657" y="532" on="0"/> - <pt x="745" y="636" on="1"/> - <pt x="834" y="740" on="0"/> - </contour> - <contour> - <pt x="972" y="679" on="1"/> - <pt x="805" y="679" on="0"/> - <pt x="805" y="371" on="1"/> - <pt x="805" y="61" on="0"/> - <pt x="971" y="61" on="1"/> - <pt x="1138" y="61" on="0"/> - <pt x="1138" y="371" on="1"/> - <pt x="1138" y="679" on="0"/> - </contour> - <contour> - <pt x="1700" y="740" on="1"/> - <pt x="1838" y="740" on="0"/> - <pt x="1926" y="636" on="1"/> - <pt x="2014" y="532" on="0"/> - <pt x="2014" y="370" on="1"/> - <pt x="2014" y="205" on="0"/> - <pt x="1926" y="103" on="1"/> - <pt x="1838" y="0" on="0"/> - <pt x="1696" y="0" on="1"/> - <pt x="1575" y="0" on="0"/> - <pt x="1491" y="84" on="1"/> - <pt x="1385" y="192" on="0"/> - <pt x="1385" y="370" on="1"/> - <pt x="1385" y="532" on="0"/> - <pt x="1473" y="636" on="1"/> - <pt x="1562" y="740" on="0"/> - </contour> - <contour> - <pt x="1700" y="679" on="1"/> - <pt x="1533" y="679" on="0"/> - <pt x="1533" y="371" on="1"/> - <pt x="1533" y="61" on="0"/> - <pt x="1698" y="61" on="1"/> - <pt x="1866" y="61" on="0"/> - <pt x="1866" y="375" on="1"/> - <pt x="1866" y="679" on="0"/> - </contour> - <contour> - <pt x="73" y="-37" on="1"/> - <pt x="1162" y="1517" on="1"/> - <pt x="1248" y="1517" on="1"/> - <pt x="160" y="-37" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 87 values pushed */ - 0 0 68 11 56 64 11 48 44 11 32 40 11 24 20 11 8 16 11 0 48 84 56 2 32 - 2 0 0 48 24 8 1 1 48 24 8 3 0 2 3 0 0 1 74 73 2 13 0 0 1 - 75 72 2 0 14 0 0 70 47 52 66 47 60 46 47 28 42 47 36 22 47 4 18 47 12 - 48 196 75 74 73 72 60 52 36 28 12 4 - MDAP[1] - MDAP[1] - MDAP[1] - MDAP[1] - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MDAP[1] - MDAP[1] - MDAP[1] - MIAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="plus" xMin="84" yMin="99" xMax="1071" yMax="1086"> - <contour> - <pt x="528" y="99" on="1"/> - <pt x="528" y="543" on="1"/> - <pt x="84" y="543" on="1"/> - <pt x="84" y="642" on="1"/> - <pt x="528" y="642" on="1"/> - <pt x="528" y="1086" on="1"/> - <pt x="627" y="1086" on="1"/> - <pt x="627" y="642" on="1"/> - <pt x="1071" y="642" on="1"/> - <pt x="1071" y="543" on="1"/> - <pt x="627" y="543" on="1"/> - <pt x="627" y="99" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 55 values pushed */ - 6 5 2 13 3 11 0 1 0 0 10 9 2 1 9 3 3 1 4 48 84 8 7 4 3 - 3 0 14 9 8 2 13 6 3 2 0 0 0 11 10 7 6 9 3 0 1 4 48 196 5 - 4 1 0 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="plusminus" xMin="84" yMin="0" xMax="1071" yMax="1184"> - <contour> - <pt x="84" y="0" on="1"/> - <pt x="84" y="99" on="1"/> - <pt x="1071" y="99" on="1"/> - <pt x="1071" y="0" on="1"/> - </contour> - <contour> - <pt x="528" y="296" on="1"/> - <pt x="528" y="691" on="1"/> - <pt x="84" y="691" on="1"/> - <pt x="84" y="790" on="1"/> - <pt x="528" y="790" on="1"/> - <pt x="528" y="1184" on="1"/> - <pt x="627" y="1184" on="1"/> - <pt x="627" y="790" on="1"/> - <pt x="1071" y="790" on="1"/> - <pt x="1071" y="691" on="1"/> - <pt x="627" y="691" on="1"/> - <pt x="627" y="296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 73 values pushed */ - 15 4 2 5 1 3 10 9 2 13 7 0 0 14 13 6 5 9 3 7 2 1 9 1 0 - 2 4 48 84 12 11 8 7 3 3 0 1 2 0 14 13 12 3 2 4 13 10 7 6 1 - 0 4 13 4 0 0 15 14 11 10 9 3 4 1 4 48 196 9 8 5 4 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="q" xMin="68" yMin="-395" xMax="1024" yMax="1110"> - <contour> - <pt x="585" y="-395" on="1"/> - <pt x="585" y="-333" on="1"/> - <pt x="604" y="-332" on="1"/> - <pt x="677" y="-327" on="0"/> - <pt x="690" y="-306" on="1"/> - <pt x="703" y="-286" on="0"/> - <pt x="704" y="-235" on="1"/> - <pt x="706" y="-136" on="1"/> - <pt x="706" y="179" on="1"/> - <pt x="648" y="87" on="0"/> - <pt x="592" y="41" on="1"/> - <pt x="512" y="-25" on="0"/> - <pt x="414" y="-25" on="1"/> - <pt x="254" y="-25" on="0"/> - <pt x="161" y="118" on="1"/> - <pt x="68" y="260" on="0"/> - <pt x="68" y="510" on="1"/> - <pt x="68" y="793" on="0"/> - <pt x="189" y="951" on="1"/> - <pt x="310" y="1110" on="0"/> - <pt x="523" y="1110" on="1"/> - <pt x="597" y="1110" on="0"/> - <pt x="706" y="1086" on="1"/> - <pt x="903" y="1086" on="1"/> - <pt x="903" y="-136" on="1"/> - <pt x="905" y="-235" on="1"/> - <pt x="905" y="-303" on="0"/> - <pt x="930" y="-317" on="1"/> - <pt x="952" y="-329" on="0"/> - <pt x="1006" y="-332" on="1"/> - <pt x="1024" y="-333" on="1"/> - <pt x="1024" y="-395" on="1"/> - </contour> - <contour> - <pt x="706" y="1008" on="1"/> - <pt x="626" y="1032" on="0"/> - <pt x="576" y="1032" on="1"/> - <pt x="439" y="1032" on="0"/> - <pt x="360" y="905" on="1"/> - <pt x="281" y="777" on="0"/> - <pt x="281" y="551" on="1"/> - <pt x="281" y="103" on="0"/> - <pt x="482" y="103" on="1"/> - <pt x="576" y="103" on="0"/> - <pt x="706" y="248" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 75 values pushed */ - 0 0 40 29 12 34 21 20 48 84 20 1 12 2 1 42 32 8 3 22 2 3 0 1 30 - 24 7 1 4 2 0 3 0 31 0 1 0 23 22 1 14 0 0 38 10 16 48 196 31 30 - 2 13 23 1 0 16 7 0 0 42 32 22 8 7 4 4 23 1 4 48 196 24 23 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="question" xMin="51" yMin="0" xMax="851" yMax="1517"> - <contour> - <pt x="271" y="0" on="1"/> - <pt x="271" y="197" on="1"/> - <pt x="468" y="197" on="1"/> - <pt x="468" y="0" on="1"/> - </contour> - <contour> - <pt x="271" y="395" on="1"/> - <pt x="271" y="413" on="1"/> - <pt x="271" y="617" on="0"/> - <pt x="413" y="758" on="1"/> - <pt x="453" y="798" on="1"/> - <pt x="641" y="986" on="0"/> - <pt x="641" y="1184" on="1"/> - <pt x="641" y="1309" on="0"/> - <pt x="569" y="1382" on="1"/> - <pt x="498" y="1456" on="0"/> - <pt x="371" y="1456" on="1"/> - <pt x="161" y="1456" on="0"/> - <pt x="155" y="1305" on="1"/> - <pt x="151" y="1198" on="1"/> - <pt x="150" y="1177" on="1"/> - <pt x="51" y="1177" on="1"/> - <pt x="51" y="1451" on="1"/> - <pt x="248" y="1517" on="0"/> - <pt x="413" y="1517" on="1"/> - <pt x="610" y="1517" on="0"/> - <pt x="731" y="1427" on="1"/> - <pt x="851" y="1338" on="0"/> - <pt x="851" y="1194" on="1"/> - <pt x="851" y="1029" on="0"/> - <pt x="641" y="868" on="1"/> - <pt x="595" y="832" on="0"/> - <pt x="577" y="815" on="1"/> - <pt x="540" y="781" on="1"/> - <pt x="468" y="715" on="0"/> - <pt x="468" y="532" on="1"/> - <pt x="468" y="395" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 81 values pushed */ - 0 0 14 11 22 48 84 22 0 1 33 20 19 18 5 5 0 4 3 0 0 0 2 1 5 - 1 0 1 4 48 84 34 4 1 3 0 1 2 0 14 0 0 10 10 26 48 196 18 0 19 - 2 26 2 0 0 34 33 3 2 4 3 0 1 4 48 196 34 33 3 2 3 20 19 1 5 - 4 1 0 3 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="questiondown" xMin="51" yMin="-37" xMax="851" yMax="1480"> - <contour> - <pt x="631" y="1480" on="1"/> - <pt x="631" y="1283" on="1"/> - <pt x="433" y="1283" on="1"/> - <pt x="433" y="1480" on="1"/> - </contour> - <contour> - <pt x="631" y="1086" on="1"/> - <pt x="631" y="1067" on="1"/> - <pt x="631" y="864" on="0"/> - <pt x="488" y="722" on="1"/> - <pt x="448" y="683" on="1"/> - <pt x="261" y="500" on="0"/> - <pt x="261" y="297" on="1"/> - <pt x="261" y="172" on="0"/> - <pt x="333" y="99" on="1"/> - <pt x="404" y="25" on="0"/> - <pt x="531" y="25" on="1"/> - <pt x="739" y="25" on="0"/> - <pt x="746" y="176" on="1"/> - <pt x="751" y="282" on="1"/> - <pt x="752" y="303" on="1"/> - <pt x="851" y="303" on="1"/> - <pt x="851" y="30" on="1"/> - <pt x="658" y="-37" on="0"/> - <pt x="488" y="-37" on="1"/> - <pt x="291" y="-37" on="0"/> - <pt x="171" y="53" on="1"/> - <pt x="51" y="142" on="0"/> - <pt x="51" y="286" on="1"/> - <pt x="51" y="396" on="0"/> - <pt x="139" y="500" on="1"/> - <pt x="181" y="550" on="0"/> - <pt x="261" y="613" on="1"/> - <pt x="305" y="647" on="0"/> - <pt x="325" y="666" on="1"/> - <pt x="361" y="700" on="1"/> - <pt x="433" y="767" on="0"/> - <pt x="433" y="948" on="1"/> - <pt x="433" y="1086" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 74 values pushed */ - 0 0 14 11 22 48 84 22 2 1 35 20 19 18 5 5 4 2 3 0 0 0 2 1 5 - 1 0 1 4 48 84 36 4 1 3 0 0 14 0 0 10 10 26 48 196 18 19 0 2 26 - 2 0 0 5 4 1 0 4 3 2 1 4 48 196 20 19 1 36 35 3 2 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - MIAP[1] - ALIGNRP[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quotedbl" xMin="146" yMin="1086" xMax="689" yMax="1579"> - <contour> - <pt x="214" y="1086" on="1"/> - <pt x="146" y="1579" on="1"/> - <pt x="343" y="1579" on="1"/> - <pt x="276" y="1086" on="1"/> - </contour> - <contour> - <pt x="559" y="1086" on="1"/> - <pt x="491" y="1579" on="1"/> - <pt x="689" y="1579" on="1"/> - <pt x="621" y="1086" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 22 values pushed */ - 7 4 3 0 4 13 1 6 5 2 1 3 0 14 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quotedblbase" xMin="146" yMin="-321" xMax="788" yMax="247"> - <contour> - <pt x="639" y="0" on="1"/> - <pt x="541" y="0" on="1"/> - <pt x="541" y="247" on="1"/> - <pt x="788" y="247" on="1"/> - <pt x="788" y="32" on="1"/> - <pt x="788" y="-107" on="0"/> - <pt x="771" y="-151" on="1"/> - <pt x="750" y="-213" on="0"/> - <pt x="678" y="-270" on="1"/> - <pt x="618" y="-317" on="0"/> - <pt x="541" y="-321" on="1"/> - <pt x="541" y="-259" on="1"/> - <pt x="639" y="-251" on="0"/> - <pt x="639" y="-65" on="1"/> - </contour> - <contour> - <pt x="245" y="0" on="1"/> - <pt x="146" y="0" on="1"/> - <pt x="146" y="247" on="1"/> - <pt x="393" y="247" on="1"/> - <pt x="393" y="32" on="1"/> - <pt x="393" y="-107" on="0"/> - <pt x="376" y="-151" on="1"/> - <pt x="354" y="-216" on="0"/> - <pt x="283" y="-270" on="1"/> - <pt x="223" y="-317" on="0"/> - <pt x="146" y="-321" on="1"/> - <pt x="146" y="-259" on="1"/> - <pt x="245" y="-251" on="0"/> - <pt x="245" y="-65" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 62 values pushed */ - 27 25 24 18 15 14 13 11 10 4 1 0 12 13 2 17 16 3 2 3 0 14 13 0 2 - 3 1 3 27 14 2 17 15 3 0 0 18 17 6 1 15 11 10 2 1 6 3 3 2 4 - 48 196 25 24 16 15 3 4 3 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quotedblleft" xMin="122" yMin="1012" xMax="764" yMax="1579"> - <contour> - <pt x="270" y="1258" on="1"/> - <pt x="369" y="1258" on="1"/> - <pt x="369" y="1012" on="1"/> - <pt x="122" y="1012" on="1"/> - <pt x="122" y="1226" on="1"/> - <pt x="122" y="1367" on="0"/> - <pt x="138" y="1410" on="1"/> - <pt x="160" y="1474" on="0"/> - <pt x="232" y="1529" on="1"/> - <pt x="292" y="1575" on="0"/> - <pt x="369" y="1579" on="1"/> - <pt x="369" y="1517" on="1"/> - <pt x="270" y="1509" on="0"/> - <pt x="270" y="1323" on="1"/> - </contour> - <contour> - <pt x="665" y="1258" on="1"/> - <pt x="764" y="1258" on="1"/> - <pt x="764" y="1012" on="1"/> - <pt x="517" y="1012" on="1"/> - <pt x="517" y="1226" on="1"/> - <pt x="517" y="1368" on="0"/> - <pt x="533" y="1409" on="1"/> - <pt x="556" y="1476" on="0"/> - <pt x="627" y="1529" on="1"/> - <pt x="687" y="1574" on="0"/> - <pt x="764" y="1579" on="1"/> - <pt x="764" y="1517" on="1"/> - <pt x="665" y="1509" on="0"/> - <pt x="665" y="1323" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 62 values pushed */ - 27 25 24 18 15 14 13 11 10 4 1 0 12 13 2 17 16 3 2 3 0 14 27 14 2 - 15 17 3 13 0 2 1 3 3 0 0 18 17 6 1 15 11 10 2 1 6 3 3 2 4 - 48 196 25 24 16 15 3 4 3 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quotedblright" xMin="146" yMin="1012" xMax="788" yMax="1579"> - <contour> - <pt x="639" y="1332" on="1"/> - <pt x="541" y="1332" on="1"/> - <pt x="541" y="1579" on="1"/> - <pt x="788" y="1579" on="1"/> - <pt x="788" y="1365" on="1"/> - <pt x="788" y="1226" on="0"/> - <pt x="771" y="1181" on="1"/> - <pt x="750" y="1118" on="0"/> - <pt x="678" y="1062" on="1"/> - <pt x="618" y="1017" on="0"/> - <pt x="541" y="1012" on="1"/> - <pt x="541" y="1073" on="1"/> - <pt x="639" y="1082" on="0"/> - <pt x="639" y="1268" on="1"/> - </contour> - <contour> - <pt x="245" y="1332" on="1"/> - <pt x="146" y="1332" on="1"/> - <pt x="146" y="1579" on="1"/> - <pt x="393" y="1579" on="1"/> - <pt x="393" y="1365" on="1"/> - <pt x="393" y="1226" on="0"/> - <pt x="376" y="1181" on="1"/> - <pt x="353" y="1115" on="0"/> - <pt x="283" y="1062" on="1"/> - <pt x="223" y="1017" on="0"/> - <pt x="146" y="1012" on="1"/> - <pt x="146" y="1073" on="1"/> - <pt x="245" y="1082" on="0"/> - <pt x="245" y="1268" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 62 values pushed */ - 27 25 24 18 15 14 13 11 10 4 1 0 12 13 2 17 16 3 2 3 0 14 13 0 2 - 3 1 3 27 14 2 17 15 3 0 0 18 17 6 1 15 11 10 2 1 6 3 3 2 4 - 48 196 25 24 16 15 3 4 3 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quoteleft" xMin="205" yMin="1012" xMax="452" yMax="1579"> - <contour> - <pt x="353" y="1258" on="1"/> - <pt x="452" y="1258" on="1"/> - <pt x="452" y="1012" on="1"/> - <pt x="205" y="1012" on="1"/> - <pt x="205" y="1226" on="1"/> - <pt x="205" y="1367" on="0"/> - <pt x="221" y="1410" on="1"/> - <pt x="243" y="1474" on="0"/> - <pt x="315" y="1529" on="1"/> - <pt x="375" y="1575" on="0"/> - <pt x="452" y="1579" on="1"/> - <pt x="452" y="1517" on="1"/> - <pt x="353" y="1509" on="0"/> - <pt x="353" y="1323" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 37 values pushed */ - 13 11 10 4 1 0 6 13 2 3 2 1 0 14 13 0 2 1 3 3 0 0 11 10 2 - 1 6 3 3 1 4 48 196 4 3 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quotereversed"/><!-- contains no outline data --> - - <TTGlyph name="quoteright" xMin="230" yMin="1012" xMax="477" yMax="1579"> - <contour> - <pt x="329" y="1332" on="1"/> - <pt x="230" y="1332" on="1"/> - <pt x="230" y="1579" on="1"/> - <pt x="477" y="1579" on="1"/> - <pt x="477" y="1365" on="1"/> - <pt x="477" y="1226" on="0"/> - <pt x="460" y="1181" on="1"/> - <pt x="437" y="1115" on="0"/> - <pt x="367" y="1062" on="1"/> - <pt x="307" y="1017" on="0"/> - <pt x="230" y="1012" on="1"/> - <pt x="230" y="1073" on="1"/> - <pt x="329" y="1082" on="0"/> - <pt x="329" y="1268" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 37 values pushed */ - 13 11 10 4 1 0 6 13 2 3 2 1 0 14 13 0 2 3 1 3 0 0 4 3 6 - 1 1 1 4 48 196 11 10 2 1 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quotesinglbase" xMin="230" yMin="-321" xMax="477" yMax="247"> - <contour> - <pt x="329" y="0" on="1"/> - <pt x="230" y="0" on="1"/> - <pt x="230" y="247" on="1"/> - <pt x="477" y="247" on="1"/> - <pt x="477" y="32" on="1"/> - <pt x="477" y="-107" on="0"/> - <pt x="460" y="-151" on="1"/> - <pt x="438" y="-216" on="0"/> - <pt x="367" y="-270" on="1"/> - <pt x="307" y="-317" on="0"/> - <pt x="230" y="-321" on="1"/> - <pt x="230" y="-259" on="1"/> - <pt x="329" y="-251" on="0"/> - <pt x="329" y="-65" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 37 values pushed */ - 13 11 10 4 1 0 6 13 2 3 2 1 0 14 13 0 2 3 1 3 0 0 4 3 6 - 1 1 1 4 48 196 11 10 2 1 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quotesingle" xMin="61" yMin="1036" xMax="308" yMax="1579"> - <contour> - <pt x="154" y="1036" on="1"/> - <pt x="61" y="1579" on="1"/> - <pt x="308" y="1579" on="1"/> - <pt x="215" y="1036" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 12 values pushed */ - 3 0 1 2 1 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="r" xMin="31" yMin="0" xMax="670" yMax="1110"> - <contour> - <pt x="31" y="0" on="1"/> - <pt x="31" y="62" on="1"/> - <pt x="50" y="63" on="1"/> - <pt x="123" y="67" on="0"/> - <pt x="136" y="89" on="1"/> - <pt x="149" y="108" on="0"/> - <pt x="150" y="160" on="1"/> - <pt x="152" y="259" on="1"/> - <pt x="152" y="827" on="1"/> - <pt x="150" y="925" on="1"/> - <pt x="150" y="993" on="0"/> - <pt x="125" y="1007" on="1"/> - <pt x="105" y="1019" on="0"/> - <pt x="50" y="1023" on="1"/> - <pt x="31" y="1024" on="1"/> - <pt x="31" y="1086" on="1"/> - <pt x="349" y="1086" on="1"/> - <pt x="349" y="907" on="1"/> - <pt x="458" y="1110" on="0"/> - <pt x="609" y="1110" on="1"/> - <pt x="640" y="1110" on="0"/> - <pt x="670" y="1099" on="1"/> - <pt x="670" y="802" on="1"/> - <pt x="578" y="802" on="1"/> - <pt x="576" y="820" on="1"/> - <pt x="575" y="827" on="1"/> - <pt x="575" y="833" on="0"/> - <pt x="574" y="845" on="1"/> - <pt x="574" y="852" on="0"/> - <pt x="573" y="862" on="1"/> - <pt x="569" y="939" on="0"/> - <pt x="517" y="939" on="1"/> - <pt x="435" y="939" on="0"/> - <pt x="349" y="814" on="1"/> - <pt x="349" y="259" on="1"/> - <pt x="351" y="160" on="1"/> - <pt x="352" y="91" on="0"/> - <pt x="376" y="78" on="1"/> - <pt x="398" y="66" on="0"/> - <pt x="452" y="63" on="1"/> - <pt x="470" y="62" on="1"/> - <pt x="470" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 68 values pushed */ - 0 0 31 13 19 48 84 19 1 40 34 33 23 22 17 14 8 7 1 10 15 0 3 21 15 - 41 0 1 0 16 15 1 14 41 40 23 3 21 16 3 15 14 1 0 4 13 7 0 0 34 - 33 17 16 4 3 7 1 4 48 196 22 21 1 8 7 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="racute" xMin="31" yMin="0" xMax="671" yMax="1604"> - <component glyphName="r" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="80" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="radicalex" xMin="99" yMin="1480" xMax="926" yMax="1604"> - <contour> - <pt x="99" y="1480" on="1"/> - <pt x="99" y="1604" on="1"/> - <pt x="926" y="1604" on="1"/> - <pt x="926" y="1480" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 0 0 3 0 12 1 1 1 4 48 84 2 1 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="rcaron" xMin="-12" yMin="0" xMax="691" yMax="1604"> - <component glyphName="r" x="-1" y="0" flags="0x4"/> - <component glyphName="caron" x="-2" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="rcommaaccent" xMin="31" yMin="-432" xMax="670" yMax="1110"> - <component glyphName="r" x="0" y="0" flags="0x4"/> - <component glyphName="Unterkomma" x="-18" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="registered" xMin="87" yMin="49" xMax="1469" yMax="1431"> - <contour> - <pt x="779" y="1431" on="1"/> - <pt x="1063" y="1431" on="0"/> - <pt x="1266" y="1229" on="1"/> - <pt x="1469" y="1027" on="0"/> - <pt x="1469" y="741" on="1"/> - <pt x="1469" y="452" on="0"/> - <pt x="1265" y="251" on="1"/> - <pt x="1062" y="49" on="0"/> - <pt x="770" y="49" on="1"/> - <pt x="519" y="49" on="0"/> - <pt x="331" y="213" on="1"/> - <pt x="87" y="426" on="0"/> - <pt x="87" y="740" on="1"/> - <pt x="87" y="1027" on="0"/> - <pt x="290" y="1229" on="1"/> - <pt x="493" y="1431" on="0"/> - </contour> - <contour> - <pt x="778" y="1369" on="1"/> - <pt x="518" y="1369" on="0"/> - <pt x="334" y="1185" on="1"/> - <pt x="149" y="1001" on="0"/> - <pt x="149" y="740" on="1"/> - <pt x="149" y="483" on="0"/> - <pt x="333" y="297" on="1"/> - <pt x="516" y="111" on="0"/> - <pt x="773" y="111" on="1"/> - <pt x="1010" y="111" on="0"/> - <pt x="1184" y="259" on="1"/> - <pt x="1407" y="450" on="0"/> - <pt x="1407" y="742" on="1"/> - <pt x="1407" y="1002" on="0"/> - <pt x="1222" y="1185" on="1"/> - <pt x="1037" y="1369" on="0"/> - </contour> - <contour> - <pt x="692" y="683" on="1"/> - <pt x="692" y="486" on="1"/> - <pt x="694" y="432" on="1"/> - <pt x="695" y="394" on="0"/> - <pt x="707" y="388" on="1"/> - <pt x="721" y="382" on="0"/> - <pt x="759" y="379" on="1"/> - <pt x="759" y="327" on="1"/> - <pt x="455" y="327" on="1"/> - <pt x="455" y="379" on="1"/> - <pt x="482" y="381" on="1"/> - <pt x="525" y="385" on="0"/> - <pt x="526" y="432" on="1"/> - <pt x="529" y="486" on="1"/> - <pt x="529" y="982" on="1"/> - <pt x="526" y="1036" on="1"/> - <pt x="525" y="1082" on="0"/> - <pt x="482" y="1087" on="1"/> - <pt x="455" y="1090" on="1"/> - <pt x="455" y="1141" on="1"/> - <pt x="678" y="1141" on="1"/> - <pt x="729" y="1142" on="1"/> - <pt x="778" y="1144" on="1"/> - <pt x="827" y="1145" on="1"/> - <pt x="927" y="1147" on="0"/> - <pt x="993" y="1109" on="1"/> - <pt x="1080" y="1059" on="0"/> - <pt x="1080" y="937" on="1"/> - <pt x="1080" y="775" on="0"/> - <pt x="923" y="706" on="1"/> - <pt x="1082" y="485" on="1"/> - <pt x="1126" y="429" on="1"/> - <pt x="1155" y="391" on="0"/> - <pt x="1179" y="384" on="1"/> - <pt x="1179" y="327" on="1"/> - <pt x="987" y="327" on="1"/> - <pt x="761" y="683" on="1"/> - </contour> - <contour> - <pt x="692" y="738" on="1"/> - <pt x="722" y="738" on="1"/> - <pt x="909" y="738" on="0"/> - <pt x="909" y="926" on="1"/> - <pt x="909" y="1087" on="0"/> - <pt x="753" y="1087" on="1"/> - <pt x="692" y="1087" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 101 values pushed */ - 0 0 24 11 8 16 11 0 48 84 8 2 0 0 75 74 70 69 68 65 62 61 50 46 45 - 41 38 33 32 15 51 39 3 52 51 1 67 66 40 39 3 2 0 14 0 0 72 18 59 28 - 11 4 20 11 12 48 196 52 32 45 2 74 70 68 67 66 65 62 61 39 38 10 13 59 4 - 32 51 50 41 40 4 13 12 45 0 0 75 69 33 32 26 3 45 1 4 48 196 46 45 1 - 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ring" xMin="114" yMin="1283" xMax="568" yMax="1737"> - <contour> - <pt x="341" y="1737" on="1"/> - <pt x="435" y="1737" on="0"/> - <pt x="501" y="1671" on="1"/> - <pt x="568" y="1605" on="0"/> - <pt x="568" y="1511" on="1"/> - <pt x="568" y="1415" on="0"/> - <pt x="501" y="1349" on="1"/> - <pt x="435" y="1283" on="0"/> - <pt x="339" y="1283" on="1"/> - <pt x="256" y="1283" on="0"/> - <pt x="194" y="1337" on="1"/> - <pt x="114" y="1406" on="0"/> - <pt x="114" y="1510" on="1"/> - <pt x="114" y="1605" on="0"/> - <pt x="180" y="1671" on="1"/> - <pt x="246" y="1737" on="0"/> - </contour> - <contour> - <pt x="341" y="1669" on="1"/> - <pt x="275" y="1669" on="0"/> - <pt x="229" y="1623" on="1"/> - <pt x="182" y="1576" on="0"/> - <pt x="182" y="1511" on="1"/> - <pt x="182" y="1445" on="0"/> - <pt x="228" y="1398" on="1"/> - <pt x="275" y="1351" on="0"/> - <pt x="339" y="1351" on="1"/> - <pt x="400" y="1351" on="0"/> - <pt x="444" y="1388" on="1"/> - <pt x="500" y="1437" on="0"/> - <pt x="500" y="1511" on="1"/> - <pt x="500" y="1577" on="0"/> - <pt x="453" y="1623" on="1"/> - <pt x="407" y="1669" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 25 values pushed */ - 0 0 24 17 8 16 17 0 48 84 8 0 14 0 0 28 17 4 20 17 12 48 196 12 4 - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="s" xMin="95" yMin="-25" xMax="733" yMax="1110"> - <contour> - <pt x="95" y="56" on="1"/> - <pt x="95" y="307" on="1"/> - <pt x="194" y="307" on="1"/> - <pt x="195" y="289" on="1"/> - <pt x="198" y="218" on="1"/> - <pt x="205" y="43" on="0"/> - <pt x="374" y="43" on="1"/> - <pt x="536" y="43" on="0"/> - <pt x="536" y="232" on="1"/> - <pt x="536" y="325" on="0"/> - <pt x="498" y="368" on="1"/> - <pt x="467" y="405" on="0"/> - <pt x="390" y="456" on="1"/> - <pt x="332" y="495" on="1"/> - <pt x="189" y="591" on="0"/> - <pt x="145" y="653" on="1"/> - <pt x="101" y="715" on="0"/> - <pt x="101" y="819" on="1"/> - <pt x="101" y="1110" on="0"/> - <pt x="411" y="1110" on="1"/> - <pt x="536" y="1110" on="0"/> - <pt x="656" y="1049" on="1"/> - <pt x="656" y="814" on="1"/> - <pt x="558" y="814" on="1"/> - <pt x="558" y="832" on="1"/> - <pt x="558" y="1043" on="0"/> - <pt x="426" y="1043" on="1"/> - <pt x="286" y="1043" on="0"/> - <pt x="286" y="881" on="1"/> - <pt x="286" y="761" on="0"/> - <pt x="378" y="701" on="1"/> - <pt x="464" y="645" on="1"/> - <pt x="520" y="607" on="1"/> - <pt x="652" y="518" on="0"/> - <pt x="692" y="458" on="1"/> - <pt x="733" y="398" on="0"/> - <pt x="733" y="294" on="1"/> - <pt x="733" y="141" on="0"/> - <pt x="644" y="58" on="1"/> - <pt x="554" y="-25" on="0"/> - <pt x="395" y="-25" on="1"/> - <pt x="256" y="-25" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 59 values pushed */ - 0 0 26 17 19 6 17 40 48 84 40 2 19 1 1 1 24 23 22 21 2 1 0 7 1 - 2 3 0 0 14 0 0 28 16 17 8 5 36 48 196 17 24 23 17 2 4 21 0 3 36 - 21 22 21 1 1 0 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="sacute" xMin="95" yMin="-25" xMax="776" yMax="1604"> - <component glyphName="s" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="185" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="scaron" xMin="66" yMin="-25" xMax="769" yMax="1604"> - <component glyphName="s" x="0" y="0" flags="0x4"/> - <component glyphName="caron" x="76" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="scedilla" xMin="95" yMin="-432" xMax="733" yMax="1110"> - <component glyphName="s" x="0" y="0" flags="0x4"/> - <component glyphName="cedilla" x="70" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="scircumflex" xMin="62" yMin="-25" xMax="765" yMax="1604"> - <contour> - <pt x="94" y="56" on="1"/> - <pt x="94" y="307" on="1"/> - <pt x="193" y="307" on="1"/> - <pt x="194" y="289" on="1"/> - <pt x="197" y="218" on="1"/> - <pt x="204" y="43" on="0"/> - <pt x="373" y="43" on="1"/> - <pt x="535" y="43" on="0"/> - <pt x="535" y="231" on="1"/> - <pt x="535" y="326" on="0"/> - <pt x="498" y="368" on="1"/> - <pt x="465" y="405" on="0"/> - <pt x="389" y="456" on="1"/> - <pt x="331" y="495" on="1"/> - <pt x="189" y="591" on="0"/> - <pt x="144" y="653" on="1"/> - <pt x="100" y="715" on="0"/> - <pt x="100" y="819" on="1"/> - <pt x="100" y="1110" on="0"/> - <pt x="410" y="1110" on="1"/> - <pt x="536" y="1110" on="0"/> - <pt x="655" y="1049" on="1"/> - <pt x="655" y="814" on="1"/> - <pt x="557" y="814" on="1"/> - <pt x="557" y="832" on="1"/> - <pt x="557" y="1043" on="0"/> - <pt x="425" y="1043" on="1"/> - <pt x="285" y="1043" on="0"/> - <pt x="285" y="881" on="1"/> - <pt x="285" y="761" on="0"/> - <pt x="377" y="701" on="1"/> - <pt x="463" y="645" on="1"/> - <pt x="519" y="607" on="1"/> - <pt x="652" y="517" on="0"/> - <pt x="691" y="458" on="1"/> - <pt x="732" y="398" on="0"/> - <pt x="732" y="294" on="1"/> - <pt x="732" y="141" on="0"/> - <pt x="643" y="58" on="1"/> - <pt x="554" y="-25" on="0"/> - <pt x="394" y="-25" on="1"/> - <pt x="255" y="-25" on="0"/> - </contour> - <contour> - <pt x="62" y="1283" on="1"/> - <pt x="303" y="1604" on="1"/> - <pt x="525" y="1604" on="1"/> - <pt x="765" y="1283" on="1"/> - <pt x="679" y="1283" on="1"/> - <pt x="414" y="1505" on="1"/> - <pt x="148" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 91 values pushed */ - 0 0 26 17 19 6 17 40 48 84 40 2 19 1 1 47 43 0 2 0 1 1 48 46 45 - 42 4 0 1 3 0 0 1 1 24 23 22 21 2 1 0 7 1 2 3 0 0 44 43 1 - 0 14 0 0 28 16 17 8 5 36 48 196 17 48 47 44 43 24 23 17 2 8 21 0 3 - 46 45 2 13 36 21 42 0 22 21 1 1 0 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="scommaaccent" xMin="95" yMin="-432" xMax="733" yMax="1110"> - <component glyphName="s" x="0" y="0" flags="0x4"/> - <component glyphName="Unterkomma" x="79" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="section" xMin="75" yMin="-321" xMax="962" yMax="1517"> - <contour> - <pt x="75" y="-258" on="1"/> - <pt x="75" y="-37" on="1"/> - <pt x="174" y="-37" on="1"/> - <pt x="175" y="-56" on="1"/> - <pt x="178" y="-104" on="1"/> - <pt x="182" y="-170" on="0"/> - <pt x="276" y="-215" on="1"/> - <pt x="368" y="-260" on="0"/> - <pt x="498" y="-260" on="1"/> - <pt x="628" y="-260" on="0"/> - <pt x="708" y="-192" on="1"/> - <pt x="788" y="-125" on="0"/> - <pt x="788" y="-19" on="1"/> - <pt x="788" y="67" on="0"/> - <pt x="724" y="113" on="1"/> - <pt x="671" y="150" on="0"/> - <pt x="556" y="198" on="1"/> - <pt x="449" y="243" on="1"/> - <pt x="249" y="327" on="0"/> - <pt x="167" y="406" on="1"/> - <pt x="86" y="485" on="0"/> - <pt x="86" y="595" on="1"/> - <pt x="86" y="746" on="0"/> - <pt x="257" y="889" on="1"/> - <pt x="182" y="931" on="0"/> - <pt x="144" y="979" on="1"/> - <pt x="89" y="1050" on="0"/> - <pt x="89" y="1150" on="1"/> - <pt x="89" y="1318" on="0"/> - <pt x="218" y="1417" on="1"/> - <pt x="348" y="1517" on="0"/> - <pt x="570" y="1517" on="1"/> - <pt x="735" y="1517" on="0"/> - <pt x="914" y="1461" on="1"/> - <pt x="914" y="1234" on="1"/> - <pt x="816" y="1234" on="1"/> - <pt x="814" y="1252" on="1"/> - <pt x="812" y="1313" on="1"/> - <pt x="810" y="1376" on="0"/> - <pt x="735" y="1416" on="1"/> - <pt x="661" y="1456" on="0"/> - <pt x="551" y="1456" on="1"/> - <pt x="422" y="1456" on="0"/> - <pt x="342" y="1386" on="1"/> - <pt x="263" y="1317" on="0"/> - <pt x="263" y="1206" on="1"/> - <pt x="263" y="1128" on="0"/> - <pt x="308" y="1081" on="1"/> - <pt x="354" y="1031" on="0"/> - <pt x="468" y="984" on="1"/> - <pt x="575" y="940" on="1"/> - <pt x="801" y="847" on="0"/> - <pt x="873" y="778" on="1"/> - <pt x="943" y="710" on="0"/> - <pt x="943" y="589" on="1"/> - <pt x="943" y="437" on="0"/> - <pt x="782" y="291" on="1"/> - <pt x="863" y="244" on="0"/> - <pt x="903" y="194" on="1"/> - <pt x="962" y="121" on="0"/> - <pt x="962" y="23" on="1"/> - <pt x="962" y="-137" on="0"/> - <pt x="838" y="-229" on="1"/> - <pt x="714" y="-321" on="0"/> - <pt x="490" y="-321" on="1"/> - <pt x="303" y="-321" on="0"/> - </contour> - <contour> - <pt x="728" y="329" on="1"/> - <pt x="793" y="422" on="0"/> - <pt x="793" y="510" on="1"/> - <pt x="793" y="634" on="0"/> - <pt x="652" y="697" on="1"/> - <pt x="443" y="791" on="1"/> - <pt x="304" y="852" on="1"/> - <pt x="253" y="759" on="0"/> - <pt x="253" y="685" on="1"/> - <pt x="253" y="572" on="0"/> - <pt x="337" y="514" on="1"/> - <pt x="410" y="464" on="0"/> - <pt x="589" y="388" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 70 values pushed */ - 0 0 41 11 31 8 11 64 48 84 31 0 1 72 66 56 35 34 33 23 2 1 0 10 13 - 64 0 0 14 0 0 74 18 21 68 47 54 45 18 27 12 18 60 48 196 27 21 72 66 56 - 35 27 23 21 2 8 33 0 3 60 54 33 34 33 1 1 0 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - CALL[ ] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="semicolon" xMin="161" yMin="-321" xMax="408" yMax="1086"> - <contour> - <pt x="260" y="0" on="1"/> - <pt x="161" y="0" on="1"/> - <pt x="161" y="247" on="1"/> - <pt x="408" y="247" on="1"/> - <pt x="408" y="32" on="1"/> - <pt x="408" y="-107" on="0"/> - <pt x="391" y="-151" on="1"/> - <pt x="369" y="-216" on="0"/> - <pt x="298" y="-270" on="1"/> - <pt x="238" y="-317" on="0"/> - <pt x="161" y="-321" on="1"/> - <pt x="161" y="-259" on="1"/> - <pt x="260" y="-251" on="0"/> - <pt x="260" y="-65" on="1"/> - </contour> - <contour> - <pt x="161" y="839" on="1"/> - <pt x="161" y="1086" on="1"/> - <pt x="408" y="1086" on="1"/> - <pt x="408" y="839" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 62 values pushed */ - 1 4 2 2 2 0 1 13 11 10 1 0 5 13 2 0 0 0 17 14 6 1 15 1 4 - 48 84 3 2 1 0 16 15 1 14 13 0 2 3 1 3 0 0 17 16 4 3 6 3 1 - 1 4 48 196 15 14 11 10 2 1 5 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="semicolon#1" xMin="161" yMin="-321" xMax="408" yMax="1086"> - <contour> - <pt x="260" y="0" on="1"/> - <pt x="161" y="0" on="1"/> - <pt x="161" y="247" on="1"/> - <pt x="408" y="247" on="1"/> - <pt x="408" y="32" on="1"/> - <pt x="408" y="-107" on="0"/> - <pt x="391" y="-151" on="1"/> - <pt x="369" y="-216" on="0"/> - <pt x="298" y="-270" on="1"/> - <pt x="238" y="-317" on="0"/> - <pt x="161" y="-321" on="1"/> - <pt x="161" y="-259" on="1"/> - <pt x="260" y="-251" on="0"/> - <pt x="260" y="-65" on="1"/> - </contour> - <contour> - <pt x="161" y="839" on="1"/> - <pt x="161" y="1086" on="1"/> - <pt x="408" y="1086" on="1"/> - <pt x="408" y="839" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 62 values pushed */ - 1 4 2 2 2 0 1 13 11 10 1 0 5 13 2 0 0 0 17 14 6 1 15 1 4 - 48 84 3 2 1 0 16 15 1 14 13 0 2 3 1 3 0 0 17 16 4 3 6 3 1 - 1 4 48 196 15 14 11 10 2 1 5 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="seven" xMin="108" yMin="0" xMax="996" yMax="1480"> - <contour> - <pt x="182" y="0" on="1"/> - <pt x="268" y="469" on="0"/> - <pt x="731" y="1095" on="1"/> - <pt x="879" y="1295" on="1"/> - <pt x="108" y="1295" on="1"/> - <pt x="108" y="1480" on="1"/> - <pt x="996" y="1480" on="1"/> - <pt x="996" y="1351" on="1"/> - <pt x="746" y="1010" on="0"/> - <pt x="590" y="648" on="1"/> - <pt x="434" y="285" on="0"/> - <pt x="416" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 35 values pushed */ - 7 5 3 2 0 0 4 3 28 1 5 1 4 48 84 11 0 1 0 6 5 0 14 11 7 - 6 3 0 5 13 4 5 4 1 0 - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="sfthyphen" xMin="82" yMin="543" xMax="600" yMax="666"> - <contour> - <pt x="82" y="543" on="1"/> - <pt x="82" y="666" on="1"/> - <pt x="600" y="666" on="1"/> - <pt x="600" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 0 0 3 0 12 1 1 1 4 48 84 2 1 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="six" xMin="49" yMin="-37" xMax="987" yMax="1518"> - <contour> - <pt x="259" y="757" on="1"/> - <pt x="311" y="843" on="0"/> - <pt x="370" y="887" on="1"/> - <pt x="455" y="950" on="0"/> - <pt x="575" y="950" on="1"/> - <pt x="755" y="950" on="0"/> - <pt x="871" y="821" on="1"/> - <pt x="987" y="692" on="0"/> - <pt x="987" y="488" on="1"/> - <pt x="987" y="264" on="0"/> - <pt x="853" y="114" on="1"/> - <pt x="720" y="-37" on="0"/> - <pt x="522" y="-37" on="1"/> - <pt x="303" y="-37" on="0"/> - <pt x="176" y="161" on="1"/> - <pt x="49" y="358" on="0"/> - <pt x="49" y="700" on="1"/> - <pt x="49" y="1078" on="0"/> - <pt x="197" y="1298" on="1"/> - <pt x="345" y="1518" on="0"/> - <pt x="608" y="1518" on="1"/> - <pt x="772" y="1518" on="0"/> - <pt x="904" y="1452" on="1"/> - <pt x="904" y="1227" on="1"/> - <pt x="805" y="1227" on="1"/> - <pt x="804" y="1248" on="1"/> - <pt x="799" y="1359" on="0"/> - <pt x="754" y="1405" on="1"/> - <pt x="710" y="1450" on="0"/> - <pt x="611" y="1450" on="1"/> - <pt x="424" y="1450" on="0"/> - <pt x="329" y="1212" on="1"/> - <pt x="262" y="1043" on="0"/> - </contour> - <contour> - <pt x="525" y="880" on="1"/> - <pt x="413" y="880" on="0"/> - <pt x="339" y="785" on="1"/> - <pt x="265" y="691" on="0"/> - <pt x="265" y="542" on="1"/> - <pt x="265" y="352" on="0"/> - <pt x="333" y="210" on="1"/> - <pt x="419" y="31" on="0"/> - <pt x="551" y="31" on="1"/> - <pt x="659" y="31" on="0"/> - <pt x="722" y="148" on="1"/> - <pt x="786" y="265" on="0"/> - <pt x="786" y="463" on="1"/> - <pt x="786" y="880" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 52 values pushed */ - 0 0 41 17 12 33 17 4 29 17 20 48 84 20 0 12 2 4 1 1 24 23 22 4 0 - 5 0 2 3 0 0 14 0 0 45 5 8 37 10 16 48 196 8 22 24 0 16 22 23 22 - 1 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="slash" xMin="-30" yMin="-296" xMax="600" yMax="1481"> - <contour> - <pt x="-30" y="-296" on="1"/> - <pt x="496" y="1481" on="1"/> - <pt x="600" y="1481" on="1"/> - <pt x="74" y="-296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 9 values pushed */ - 3 2 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="space"/><!-- contains no outline data --> - - <TTGlyph name="sterling" xMin="74" yMin="0" xMax="925" yMax="1505"> - <contour> - <pt x="74" y="0" on="1"/> - <pt x="74" y="148" on="1"/> - <pt x="198" y="181" on="0"/> - <pt x="241" y="263" on="1"/> - <pt x="284" y="344" on="0"/> - <pt x="284" y="547" on="1"/> - <pt x="284" y="740" on="1"/> - <pt x="111" y="740" on="1"/> - <pt x="111" y="802" on="1"/> - <pt x="284" y="802" on="1"/> - <pt x="284" y="1024" on="1"/> - <pt x="284" y="1505" on="0"/> - <pt x="653" y="1505" on="1"/> - <pt x="786" y="1505" on="0"/> - <pt x="925" y="1435" on="1"/> - <pt x="925" y="1221" on="1"/> - <pt x="827" y="1221" on="1"/> - <pt x="825" y="1240" on="1"/> - <pt x="822" y="1314" on="1"/> - <pt x="817" y="1444" on="0"/> - <pt x="663" y="1444" on="1"/> - <pt x="547" y="1444" on="0"/> - <pt x="511" y="1363" on="1"/> - <pt x="481" y="1294" on="0"/> - <pt x="481" y="1138" on="1"/> - <pt x="481" y="802" on="1"/> - <pt x="716" y="802" on="1"/> - <pt x="716" y="740" on="1"/> - <pt x="481" y="740" on="1"/> - <pt x="481" y="586" on="1"/> - <pt x="481" y="306" on="0"/> - <pt x="199" y="148" on="1"/> - <pt x="925" y="148" on="1"/> - <pt x="925" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 98 values pushed */ - 0 0 20 11 12 48 84 12 0 1 24 16 15 14 10 5 0 8 3 0 29 5 2 6 1 - 3 0 0 28 27 7 6 14 3 8 32 31 1 19 2 0 2 4 48 84 26 25 9 8 3 - 33 0 1 2 0 14 27 26 16 3 14 24 3 31 8 7 3 5 0 3 0 0 29 28 25 - 24 4 3 5 1 4 48 196 33 32 15 14 3 10 9 6 5 3 1 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="t" xMin="25" yMin="-25" xMax="558" yMax="1332"> - <contour> - <pt x="136" y="999" on="1"/> - <pt x="25" y="999" on="1"/> - <pt x="25" y="1086" on="1"/> - <pt x="136" y="1086" on="1"/> - <pt x="136" y="1283" on="1"/> - <pt x="334" y="1332" on="1"/> - <pt x="334" y="1086" on="1"/> - <pt x="558" y="1086" on="1"/> - <pt x="558" y="999" on="1"/> - <pt x="334" y="999" on="1"/> - <pt x="334" y="313" on="1"/> - <pt x="334" y="226" on="1"/> - <pt x="334" y="55" on="0"/> - <pt x="438" y="55" on="1"/> - <pt x="477" y="55" on="0"/> - <pt x="533" y="86" on="1"/> - <pt x="533" y="6" on="1"/> - <pt x="455" y="-25" on="0"/> - <pt x="389" y="-25" on="1"/> - <pt x="251" y="-25" on="0"/> - <pt x="193" y="56" on="1"/> - <pt x="136" y="137" on="0"/> - <pt x="136" y="339" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 67 values pushed */ - 18 2 11 16 1 22 16 10 3 0 2 3 0 5 4 2 13 2 0 0 9 8 1 0 3 - 2 1 6 48 84 7 6 3 2 1 3 14 16 11 8 7 2 13 5 2 1 0 0 0 11 - 10 9 6 5 4 4 0 1 4 48 196 22 4 3 0 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - MIAP[1] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="tbar" xMin="25" yMin="-25" xMax="558" yMax="1332"> - <contour> - <pt x="136" y="617" on="1"/> - <pt x="25" y="617" on="1"/> - <pt x="25" y="691" on="1"/> - <pt x="136" y="691" on="1"/> - <pt x="136" y="999" on="1"/> - <pt x="25" y="999" on="1"/> - <pt x="25" y="1086" on="1"/> - <pt x="136" y="1086" on="1"/> - <pt x="136" y="1283" on="1"/> - <pt x="334" y="1332" on="1"/> - <pt x="334" y="1086" on="1"/> - <pt x="558" y="1086" on="1"/> - <pt x="558" y="999" on="1"/> - <pt x="334" y="999" on="1"/> - <pt x="334" y="691" on="1"/> - <pt x="558" y="691" on="1"/> - <pt x="558" y="617" on="1"/> - <pt x="334" y="617" on="1"/> - <pt x="334" y="313" on="1"/> - <pt x="334" y="226" on="1"/> - <pt x="334" y="55" on="0"/> - <pt x="438" y="55" on="1"/> - <pt x="477" y="55" on="0"/> - <pt x="533" y="86" on="1"/> - <pt x="533" y="6" on="1"/> - <pt x="455" y="-25" on="0"/> - <pt x="389" y="-25" on="1"/> - <pt x="251" y="-25" on="0"/> - <pt x="193" y="56" on="1"/> - <pt x="136" y="137" on="0"/> - <pt x="136" y="339" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 92 values pushed */ - 26 2 19 24 1 30 24 18 3 0 2 3 0 9 8 2 13 6 0 0 13 12 5 4 3 - 6 1 6 17 16 1 0 21 3 2 1 4 48 84 15 14 3 2 3 0 11 10 7 6 1 - 3 14 24 19 16 15 12 11 4 13 9 6 5 2 1 4 13 0 0 0 19 18 17 14 13 - 10 9 4 6 0 1 4 48 196 30 8 7 4 3 0 5 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - MIAP[1] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="tcaron" xMin="25" yMin="-25" xMax="679" yMax="1688"> - <contour> - <pt x="136" y="999" on="1"/> - <pt x="25" y="999" on="1"/> - <pt x="25" y="1086" on="1"/> - <pt x="136" y="1086" on="1"/> - <pt x="136" y="1283" on="1"/> - <pt x="334" y="1332" on="1"/> - <pt x="334" y="1086" on="1"/> - <pt x="558" y="1086" on="1"/> - <pt x="558" y="999" on="1"/> - <pt x="334" y="999" on="1"/> - <pt x="334" y="313" on="1"/> - <pt x="334" y="226" on="1"/> - <pt x="334" y="55" on="0"/> - <pt x="438" y="55" on="1"/> - <pt x="477" y="55" on="0"/> - <pt x="533" y="86" on="1"/> - <pt x="533" y="6" on="1"/> - <pt x="455" y="-25" on="0"/> - <pt x="389" y="-25" on="1"/> - <pt x="251" y="-25" on="0"/> - <pt x="193" y="56" on="1"/> - <pt x="136" y="137" on="0"/> - <pt x="136" y="339" on="1"/> - </contour> - <contour> - <pt x="561" y="1491" on="1"/> - <pt x="482" y="1491" on="1"/> - <pt x="482" y="1688" on="1"/> - <pt x="679" y="1688" on="1"/> - <pt x="679" y="1517" on="1"/> - <pt x="679" y="1354" on="0"/> - <pt x="617" y="1289" on="1"/> - <pt x="570" y="1240" on="0"/> - <pt x="482" y="1234" on="1"/> - <pt x="482" y="1284" on="1"/> - <pt x="561" y="1290" on="0"/> - <pt x="561" y="1439" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 92 values pushed */ - 18 2 11 16 34 32 31 27 24 23 5 4 8 25 2 3 1 22 16 10 3 0 2 3 0 - 0 0 9 8 1 0 3 2 1 6 48 84 26 25 1 0 7 6 3 2 1 3 14 16 11 - 34 23 8 7 4 26 24 3 2 1 0 0 0 32 31 25 24 4 3 26 11 10 9 6 5 - 4 4 0 2 4 48 196 27 26 1 22 4 3 0 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - CALL[ ] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - MIAP[1] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="tcommaaccent" xMin="25" yMin="-432" xMax="558" yMax="1332"> - <contour> - <pt x="136" y="999" on="1"/> - <pt x="25" y="999" on="1"/> - <pt x="25" y="1086" on="1"/> - <pt x="136" y="1086" on="1"/> - <pt x="136" y="1283" on="1"/> - <pt x="334" y="1332" on="1"/> - <pt x="334" y="1086" on="1"/> - <pt x="558" y="1086" on="1"/> - <pt x="558" y="999" on="1"/> - <pt x="334" y="999" on="1"/> - <pt x="334" y="313" on="1"/> - <pt x="334" y="226" on="1"/> - <pt x="334" y="55" on="0"/> - <pt x="438" y="55" on="1"/> - <pt x="477" y="55" on="0"/> - <pt x="533" y="86" on="1"/> - <pt x="533" y="6" on="1"/> - <pt x="455" y="-25" on="0"/> - <pt x="389" y="-25" on="1"/> - <pt x="251" y="-25" on="0"/> - <pt x="193" y="56" on="1"/> - <pt x="136" y="137" on="0"/> - <pt x="136" y="339" on="1"/> - </contour> - <contour> - <pt x="186" y="-411" on="1"/> - <pt x="186" y="-343" on="1"/> - <pt x="248" y="-359" on="0"/> - <pt x="287" y="-359" on="1"/> - <pt x="394" y="-359" on="0"/> - <pt x="394" y="-277" on="1"/> - <pt x="394" y="-179" on="0"/> - <pt x="207" y="-175" on="1"/> - <pt x="302" y="0" on="1"/> - <pt x="381" y="0" on="1"/> - <pt x="315" y="-119" on="1"/> - <pt x="411" y="-127" on="0"/> - <pt x="460" y="-152" on="1"/> - <pt x="532" y="-189" on="0"/> - <pt x="532" y="-266" on="1"/> - <pt x="532" y="-336" on="0"/> - <pt x="474" y="-384" on="1"/> - <pt x="417" y="-432" on="0"/> - <pt x="330" y="-432" on="1"/> - <pt x="262" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 104 values pushed */ - 0 0 26 17 41 48 84 18 2 11 16 1 22 16 10 3 0 2 3 0 5 4 2 13 2 - 1 33 32 31 30 24 23 6 13 41 2 0 0 0 9 8 1 0 3 2 1 6 48 84 7 - 6 3 2 1 3 14 0 0 28 48 37 48 196 16 11 33 31 30 24 23 5 5 0 3 32 - 8 7 3 13 37 5 2 1 0 0 0 11 10 9 6 5 4 4 0 1 4 48 196 22 4 - 3 0 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="tcommabelow" xMin="25" yMin="-432" xMax="558" yMax="1332"> - <component glyphName="t" x="0" y="0" flags="0x4"/> - <component glyphName="Unterkomma" x="-9" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="thorn" xMin="0" yMin="-395" xMax="956" yMax="1579"> - <contour> - <pt x="0" y="-395" on="1"/> - <pt x="0" y="-333" on="1"/> - <pt x="19" y="-332" on="1"/> - <pt x="92" y="-328" on="0"/> - <pt x="105" y="-306" on="1"/> - <pt x="118" y="-286" on="0"/> - <pt x="119" y="-234" on="1"/> - <pt x="121" y="-136" on="1"/> - <pt x="119" y="1426" on="1"/> - <pt x="119" y="1489" on="0"/> - <pt x="93" y="1501" on="1"/> - <pt x="71" y="1513" on="0"/> - <pt x="19" y="1516" on="1"/> - <pt x="0" y="1517" on="1"/> - <pt x="0" y="1579" on="1"/> - <pt x="318" y="1579" on="1"/> - <pt x="318" y="907" on="1"/> - <pt x="376" y="999" on="0"/> - <pt x="432" y="1044" on="1"/> - <pt x="512" y="1110" on="0"/> - <pt x="610" y="1110" on="1"/> - <pt x="769" y="1110" on="0"/> - <pt x="863" y="968" on="1"/> - <pt x="956" y="826" on="0"/> - <pt x="956" y="575" on="1"/> - <pt x="956" y="293" on="0"/> - <pt x="835" y="134" on="1"/> - <pt x="714" y="-25" on="0"/> - <pt x="503" y="-25" on="1"/> - <pt x="429" y="-25" on="0"/> - <pt x="318" y="0" on="1"/> - <pt x="318" y="-136" on="1"/> - <pt x="320" y="-235" on="1"/> - <pt x="321" y="-304" on="0"/> - <pt x="345" y="-317" on="1"/> - <pt x="367" y="-329" on="0"/> - <pt x="421" y="-332" on="1"/> - <pt x="439" y="-333" on="1"/> - <pt x="439" y="-395" on="1"/> - </contour> - <contour> - <pt x="318" y="77" on="1"/> - <pt x="399" y="54" on="0"/> - <pt x="449" y="54" on="1"/> - <pt x="585" y="54" on="0"/> - <pt x="664" y="181" on="1"/> - <pt x="743" y="308" on="0"/> - <pt x="743" y="536" on="1"/> - <pt x="743" y="983" on="0"/> - <pt x="542" y="983" on="1"/> - <pt x="449" y="983" on="0"/> - <pt x="318" y="837" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 80 values pushed */ - 0 0 47 29 20 41 21 28 48 84 28 2 20 1 1 13 14 1 2 0 1 1 49 39 16 - 3 1 2 3 0 0 1 37 31 30 7 1 5 2 0 3 0 15 14 1 38 0 1 2 0 - 14 0 0 45 10 24 48 196 38 37 2 13 24 15 14 13 7 1 0 5 13 15 49 39 31 - 30 16 15 5 0 - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="three" xMin="93" yMin="-37" xMax="910" yMax="1517"> - <contour> - <pt x="93" y="10" on="1"/> - <pt x="93" y="271" on="1"/> - <pt x="191" y="271" on="1"/> - <pt x="192" y="249" on="1"/> - <pt x="195" y="182" on="1"/> - <pt x="198" y="113" on="0"/> - <pt x="261" y="72" on="1"/> - <pt x="324" y="31" on="0"/> - <pt x="422" y="31" on="1"/> - <pt x="550" y="31" on="0"/> - <pt x="625" y="128" on="1"/> - <pt x="700" y="226" on="0"/> - <pt x="700" y="388" on="1"/> - <pt x="700" y="565" on="0"/> - <pt x="606" y="662" on="1"/> - <pt x="512" y="759" on="0"/> - <pt x="338" y="759" on="1"/> - <pt x="228" y="759" on="1"/> - <pt x="228" y="820" on="1"/> - <pt x="294" y="820" on="1"/> - <pt x="669" y="820" on="0"/> - <pt x="669" y="1155" on="1"/> - <pt x="669" y="1450" on="0"/> - <pt x="418" y="1450" on="1"/> - <pt x="334" y="1450" on="0"/> - <pt x="270" y="1419" on="1"/> - <pt x="235" y="1402" on="0"/> - <pt x="222" y="1363" on="1"/> - <pt x="212" y="1331" on="0"/> - <pt x="204" y="1249" on="1"/> - <pt x="202" y="1234" on="1"/> - <pt x="104" y="1234" on="1"/> - <pt x="104" y="1460" on="1"/> - <pt x="271" y="1517" on="0"/> - <pt x="428" y="1517" on="1"/> - <pt x="634" y="1517" on="0"/> - <pt x="750" y="1427" on="1"/> - <pt x="866" y="1336" on="0"/> - <pt x="866" y="1176" on="1"/> - <pt x="866" y="1018" on="0"/> - <pt x="753" y="914" on="1"/> - <pt x="686" y="852" on="0"/> - <pt x="555" y="800" on="1"/> - <pt x="668" y="769" on="0"/> - <pt x="726" y="734" on="1"/> - <pt x="910" y="624" on="0"/> - <pt x="910" y="404" on="1"/> - <pt x="910" y="203" on="0"/> - <pt x="778" y="83" on="1"/> - <pt x="646" y="-37" on="0"/> - <pt x="417" y="-37" on="1"/> - <pt x="254" y="-37" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 64 values pushed */ - 0 0 23 17 34 8 17 50 48 84 50 2 34 0 1 1 42 32 31 30 19 18 17 16 2 - 1 0 11 0 2 3 0 0 14 0 0 21 5 38 12 10 46 48 196 42 30 19 18 17 16 - 2 7 13 46 38 31 32 31 1 1 0 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="threequarters" xMin="173" yMin="-37" xMax="1364" yMax="1517"> - <contour> - <pt x="173" y="-37" on="1"/> - <pt x="1261" y="1517" on="1"/> - <pt x="1347" y="1517" on="1"/> - <pt x="259" y="-37" on="1"/> - </contour> - <contour> - <pt x="1065" y="0" on="1"/> - <pt x="1065" y="39" on="1"/> - <pt x="1075" y="39" on="1"/> - <pt x="1126" y="39" on="0"/> - <pt x="1139" y="48" on="1"/> - <pt x="1153" y="56" on="0"/> - <pt x="1155" y="88" on="1"/> - <pt x="1158" y="137" on="1"/> - <pt x="1158" y="205" on="1"/> - <pt x="813" y="205" on="1"/> - <pt x="813" y="271" on="1"/> - <pt x="1181" y="751" on="1"/> - <pt x="1271" y="751" on="1"/> - <pt x="1271" y="294" on="1"/> - <pt x="1364" y="294" on="1"/> - <pt x="1364" y="205" on="1"/> - <pt x="1271" y="205" on="1"/> - <pt x="1271" y="137" on="1"/> - <pt x="1274" y="88" on="1"/> - <pt x="1276" y="52" on="0"/> - <pt x="1297" y="45" on="1"/> - <pt x="1313" y="39" on="0"/> - <pt x="1348" y="39" on="1"/> - <pt x="1358" y="39" on="1"/> - <pt x="1358" y="0" on="1"/> - </contour> - <contour> - <pt x="878" y="294" on="1"/> - <pt x="1158" y="294" on="1"/> - <pt x="1158" y="658" on="1"/> - </contour> - <contour> - <pt x="173" y="766" on="1"/> - <pt x="173" y="901" on="1"/> - <pt x="232" y="901" on="1"/> - <pt x="232" y="891" on="1"/> - <pt x="233" y="881" on="1"/> - <pt x="233" y="872" on="1"/> - <pt x="234" y="865" on="0"/> - <pt x="234" y="861" on="1"/> - <pt x="234" y="858" on="1"/> - <pt x="234" y="779" on="0"/> - <pt x="353" y="779" on="1"/> - <pt x="502" y="779" on="0"/> - <pt x="502" y="951" on="1"/> - <pt x="502" y="1133" on="0"/> - <pt x="297" y="1133" on="1"/> - <pt x="241" y="1133" on="1"/> - <pt x="241" y="1172" on="1"/> - <pt x="279" y="1172" on="1"/> - <pt x="483" y="1172" on="0"/> - <pt x="483" y="1334" on="1"/> - <pt x="483" y="1479" on="0"/> - <pt x="352" y="1479" on="1"/> - <pt x="246" y="1479" on="0"/> - <pt x="242" y="1415" on="1"/> - <pt x="239" y="1370" on="1"/> - <pt x="238" y="1362" on="1"/> - <pt x="178" y="1362" on="1"/> - <pt x="178" y="1487" on="1"/> - <pt x="273" y="1517" on="0"/> - <pt x="371" y="1517" on="1"/> - <pt x="606" y="1517" on="0"/> - <pt x="606" y="1344" on="1"/> - <pt x="606" y="1214" on="0"/> - <pt x="446" y="1158" on="1"/> - <pt x="630" y="1110" on="0"/> - <pt x="630" y="959" on="1"/> - <pt x="630" y="858" on="0"/> - <pt x="558" y="800" on="1"/> - <pt x="486" y="741" on="0"/> - <pt x="358" y="741" on="1"/> - <pt x="260" y="741" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 150 values pushed */ - 0 0 53 45 61 42 45 71 48 84 14 17 12 2 27 26 21 11 6 5 6 12 4 3 65 - 59 58 57 49 48 47 46 40 39 37 36 35 34 33 32 31 16 15 2 1 21 13 71 61 17 - 3 0 4 0 0 30 29 18 17 46 3 12 1 4 48 84 20 19 13 12 3 28 4 1 2 - 0 14 0 0 51 44 63 44 44 67 48 196 15 1 2 16 11 3 28 27 26 19 18 2 6 - 13 16 65 59 58 57 49 48 47 46 40 39 37 36 35 34 33 32 29 14 13 6 5 4 3 - 0 24 13 67 63 11 0 0 31 30 12 11 15 3 16 1 4 48 196 21 20 17 16 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="threesuperior" xMin="86" yMin="741" xMax="543" yMax="1517"> - <contour> - <pt x="86" y="766" on="1"/> - <pt x="86" y="901" on="1"/> - <pt x="145" y="901" on="1"/> - <pt x="145" y="891" on="1"/> - <pt x="146" y="881" on="1"/> - <pt x="146" y="872" on="1"/> - <pt x="147" y="865" on="0"/> - <pt x="147" y="861" on="1"/> - <pt x="147" y="858" on="1"/> - <pt x="147" y="779" on="0"/> - <pt x="267" y="779" on="1"/> - <pt x="415" y="779" on="0"/> - <pt x="415" y="951" on="1"/> - <pt x="415" y="1133" on="0"/> - <pt x="210" y="1133" on="1"/> - <pt x="154" y="1133" on="1"/> - <pt x="154" y="1172" on="1"/> - <pt x="192" y="1172" on="1"/> - <pt x="396" y="1172" on="0"/> - <pt x="396" y="1334" on="1"/> - <pt x="396" y="1479" on="0"/> - <pt x="265" y="1479" on="1"/> - <pt x="159" y="1479" on="0"/> - <pt x="155" y="1415" on="1"/> - <pt x="152" y="1370" on="1"/> - <pt x="151" y="1362" on="1"/> - <pt x="91" y="1362" on="1"/> - <pt x="91" y="1487" on="1"/> - <pt x="192" y="1517" on="0"/> - <pt x="284" y="1517" on="1"/> - <pt x="519" y="1517" on="0"/> - <pt x="519" y="1344" on="1"/> - <pt x="519" y="1215" on="0"/> - <pt x="359" y="1158" on="1"/> - <pt x="466" y="1130" on="0"/> - <pt x="508" y="1073" on="1"/> - <pt x="543" y="1026" on="0"/> - <pt x="543" y="959" on="1"/> - <pt x="543" y="858" on="0"/> - <pt x="471" y="800" on="1"/> - <pt x="400" y="741" on="0"/> - <pt x="271" y="741" on="1"/> - <pt x="173" y="741" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 57 values pushed */ - 0 0 21 45 29 10 45 41 48 84 41 33 29 27 26 25 17 16 15 14 8 7 5 4 3 - 2 1 0 14 0 0 19 44 31 12 44 37 48 196 37 33 31 27 26 25 17 16 15 14 8 - 7 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="tilde" xMin="8" yMin="1283" xMax="674" yMax="1518"> - <contour> - <pt x="8" y="1283" on="1"/> - <pt x="35" y="1423" on="0"/> - <pt x="104" y="1476" on="1"/> - <pt x="158" y="1518" on="0"/> - <pt x="235" y="1518" on="1"/> - <pt x="300" y="1518" on="0"/> - <pt x="353" y="1480" on="1"/> - <pt x="388" y="1455" on="1"/> - <pt x="440" y="1418" on="0"/> - <pt x="494" y="1418" on="1"/> - <pt x="590" y="1418" on="0"/> - <pt x="612" y="1517" on="1"/> - <pt x="674" y="1517" on="1"/> - <pt x="646" y="1378" on="0"/> - <pt x="578" y="1325" on="1"/> - <pt x="524" y="1283" on="0"/> - <pt x="447" y="1283" on="1"/> - <pt x="384" y="1283" on="0"/> - <pt x="329" y="1321" on="1"/> - <pt x="294" y="1345" on="1"/> - <pt x="239" y="1383" on="0"/> - <pt x="187" y="1383" on="1"/> - <pt x="100" y="1383" on="0"/> - <pt x="70" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 30 values pushed */ - 0 0 21 20 4 9 20 16 48 84 4 0 1 12 11 2 13 0 0 1 23 0 16 0 0 - 14 23 12 11 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="trademark" xMin="140" yMin="728" xMax="1867" yMax="1480"> - <contour> - <pt x="411" y="1419" on="1"/> - <pt x="226" y="1419" on="1"/> - <pt x="226" y="1283" on="1"/> - <pt x="140" y="1283" on="1"/> - <pt x="140" y="1480" on="1"/> - <pt x="819" y="1480" on="1"/> - <pt x="819" y="1283" on="1"/> - <pt x="732" y="1283" on="1"/> - <pt x="732" y="1419" on="1"/> - <pt x="547" y="1419" on="1"/> - <pt x="547" y="790" on="1"/> - <pt x="671" y="790" on="1"/> - <pt x="671" y="728" on="1"/> - <pt x="288" y="728" on="1"/> - <pt x="288" y="790" on="1"/> - <pt x="411" y="790" on="1"/> - </contour> - <contour> - <pt x="1358" y="795" on="1"/> - <pt x="1127" y="1413" on="1"/> - <pt x="1127" y="728" on="1"/> - <pt x="905" y="728" on="1"/> - <pt x="905" y="790" on="1"/> - <pt x="1028" y="790" on="1"/> - <pt x="1028" y="1419" on="1"/> - <pt x="893" y="1419" on="1"/> - <pt x="893" y="1480" on="1"/> - <pt x="1249" y="1480" on="1"/> - <pt x="1414" y="1038" on="1"/> - <pt x="1567" y="1480" on="1"/> - <pt x="1867" y="1480" on="1"/> - <pt x="1867" y="1419" on="1"/> - <pt x="1744" y="1419" on="1"/> - <pt x="1744" y="790" on="1"/> - <pt x="1867" y="790" on="1"/> - <pt x="1867" y="728" on="1"/> - <pt x="1608" y="728" on="1"/> - <pt x="1608" y="1413" on="1"/> - <pt x="1395" y="795" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 133 values pushed */ - 36 35 32 31 26 21 20 17 16 15 14 11 10 7 6 3 2 17 0 12 3 0 0 30 29 - 23 22 9 8 1 0 14 7 4 1 4 48 84 34 33 19 18 13 12 5 0 28 27 25 24 - 5 4 0 5 14 36 27 26 25 16 5 34 17 3 24 23 20 19 4 21 5 3 12 11 8 - 7 4 5 9 3 14 13 2 1 4 0 3 3 33 32 29 28 4 13 30 0 0 35 34 23 - 1 30 22 21 9 1 17 10 9 23 1 0 3 4 48 196 31 30 1 18 17 1 6 5 1 - 15 0 1 4 3 1 5 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="two" xMin="68" yMin="0" xMax="906" yMax="1518"> - <contour> - <pt x="68" y="0" on="1"/> - <pt x="68" y="99" on="1"/> - <pt x="103" y="253" on="0"/> - <pt x="178" y="354" on="1"/> - <pt x="246" y="447" on="0"/> - <pt x="400" y="599" on="1"/> - <pt x="463" y="662" on="1"/> - <pt x="605" y="805" on="0"/> - <pt x="649" y="893" on="1"/> - <pt x="697" y="989" on="0"/> - <pt x="697" y="1129" on="1"/> - <pt x="697" y="1450" on="0"/> - <pt x="444" y="1450" on="1"/> - <pt x="346" y="1450" on="0"/> - <pt x="272" y="1400" on="1"/> - <pt x="240" y="1379" on="0"/> - <pt x="230" y="1358" on="1"/> - <pt x="206" y="1306" on="0"/> - <pt x="201" y="1182" on="1"/> - <pt x="200" y="1157" on="1"/> - <pt x="101" y="1157" on="1"/> - <pt x="101" y="1427" on="1"/> - <pt x="290" y="1518" on="0"/> - <pt x="480" y="1518" on="1"/> - <pt x="906" y="1518" on="0"/> - <pt x="906" y="1137" on="1"/> - <pt x="906" y="999" on="0"/> - <pt x="841" y="913" on="1"/> - <pt x="791" y="847" on="0"/> - <pt x="661" y="729" on="1"/> - <pt x="561" y="638" on="1"/> - <pt x="497" y="580" on="1"/> - <pt x="338" y="437" on="0"/> - <pt x="286" y="343" on="1"/> - <pt x="244" y="268" on="0"/> - <pt x="229" y="173" on="1"/> - <pt x="900" y="173" on="1"/> - <pt x="900" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 64 values pushed */ - 0 0 12 17 23 48 84 23 0 1 21 20 19 3 0 35 3 0 1 35 0 2 0 0 36 - 35 13 1 0 1 4 48 84 37 0 1 0 14 0 0 10 10 25 48 196 35 19 2 36 20 - 3 25 36 1 0 20 37 36 1 21 20 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - MDRP[00100] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="twosuperior" xMin="86" yMin="759" xMax="556" yMax="1518"> - <contour> - <pt x="86" y="759" on="1"/> - <pt x="86" y="809" on="1"/> - <pt x="127" y="925" on="0"/> - <pt x="238" y="1026" on="1"/> - <pt x="279" y="1064" on="1"/> - <pt x="426" y="1200" on="0"/> - <pt x="426" y="1322" on="1"/> - <pt x="426" y="1477" on="0"/> - <pt x="289" y="1477" on="1"/> - <pt x="228" y="1477" on="0"/> - <pt x="163" y="1428" on="1"/> - <pt x="163" y="1338" on="1"/> - <pt x="104" y="1338" on="1"/> - <pt x="104" y="1474" on="1"/> - <pt x="214" y="1518" on="0"/> - <pt x="313" y="1518" on="1"/> - <pt x="422" y="1518" on="0"/> - <pt x="489" y="1462" on="1"/> - <pt x="556" y="1406" on="0"/> - <pt x="556" y="1319" on="1"/> - <pt x="556" y="1247" on="0"/> - <pt x="503" y="1185" on="1"/> - <pt x="473" y="1148" on="0"/> - <pt x="404" y="1100" on="1"/> - <pt x="383" y="1086" on="0"/> - <pt x="370" y="1077" on="1"/> - <pt x="320" y="1040" on="1"/> - <pt x="208" y="957" on="0"/> - <pt x="198" y="864" on="1"/> - <pt x="554" y="864" on="1"/> - <pt x="554" y="759" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 52 values pushed */ - 0 0 8 45 15 48 84 1 28 0 2 13 12 11 10 4 13 15 28 0 0 30 0 43 1 - 28 1 4 48 84 29 28 1 0 14 0 0 6 44 19 48 196 30 29 28 19 13 12 11 10 - 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="u" xMin="12" yMin="-25" xMax="993" yMax="1086"> - <contour> - <pt x="675" y="0" on="1"/> - <pt x="675" y="179" on="1"/> - <pt x="611" y="87" on="0"/> - <pt x="551" y="41" on="1"/> - <pt x="466" y="-25" on="0"/> - <pt x="364" y="-25" on="1"/> - <pt x="240" y="-25" on="0"/> - <pt x="186" y="53" on="1"/> - <pt x="133" y="131" on="0"/> - <pt x="133" y="321" on="1"/> - <pt x="133" y="827" on="1"/> - <pt x="131" y="925" on="1"/> - <pt x="131" y="993" on="0"/> - <pt x="106" y="1007" on="1"/> - <pt x="86" y="1019" on="0"/> - <pt x="31" y="1023" on="1"/> - <pt x="12" y="1024" on="1"/> - <pt x="12" y="1086" on="1"/> - <pt x="331" y="1086" on="1"/> - <pt x="331" y="352" on="1"/> - <pt x="333" y="274" on="1"/> - <pt x="335" y="188" on="0"/> - <pt x="357" y="150" on="1"/> - <pt x="383" y="105" on="0"/> - <pt x="439" y="105" on="1"/> - <pt x="554" y="105" on="0"/> - <pt x="675" y="245" on="1"/> - <pt x="675" y="827" on="1"/> - <pt x="673" y="925" on="1"/> - <pt x="672" y="994" on="0"/> - <pt x="648" y="1007" on="1"/> - <pt x="627" y="1019" on="0"/> - <pt x="573" y="1023" on="1"/> - <pt x="554" y="1024" on="1"/> - <pt x="554" y="1086" on="1"/> - <pt x="872" y="1086" on="1"/> - <pt x="872" y="259" on="1"/> - <pt x="874" y="160" on="1"/> - <pt x="874" y="92" on="0"/> - <pt x="899" y="78" on="1"/> - <pt x="922" y="66" on="0"/> - <pt x="974" y="63" on="1"/> - <pt x="993" y="62" on="1"/> - <pt x="993" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 74 values pushed */ - 0 0 24 29 5 48 84 5 2 42 36 33 27 26 19 16 10 9 1 10 17 0 3 43 0 - 1 0 35 34 18 17 1 3 14 34 33 2 0 18 3 43 42 2 13 35 17 16 9 0 0 - 27 26 1 0 4 3 35 19 18 4 1 9 2 4 48 196 36 35 1 10 9 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="uacute" xMin="12" yMin="-25" xMax="993" yMax="1604"> - <component glyphName="u" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="196" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ubreve" xMin="12" yMin="-25" xMax="993" yMax="1604"> - <contour> - <pt x="675" y="0" on="1"/> - <pt x="675" y="179" on="1"/> - <pt x="611" y="87" on="0"/> - <pt x="551" y="41" on="1"/> - <pt x="466" y="-25" on="0"/> - <pt x="364" y="-25" on="1"/> - <pt x="240" y="-25" on="0"/> - <pt x="186" y="53" on="1"/> - <pt x="133" y="131" on="0"/> - <pt x="133" y="321" on="1"/> - <pt x="133" y="827" on="1"/> - <pt x="131" y="925" on="1"/> - <pt x="131" y="993" on="0"/> - <pt x="106" y="1007" on="1"/> - <pt x="86" y="1019" on="0"/> - <pt x="31" y="1023" on="1"/> - <pt x="12" y="1024" on="1"/> - <pt x="12" y="1086" on="1"/> - <pt x="331" y="1086" on="1"/> - <pt x="331" y="352" on="1"/> - <pt x="333" y="274" on="1"/> - <pt x="335" y="188" on="0"/> - <pt x="357" y="150" on="1"/> - <pt x="383" y="105" on="0"/> - <pt x="439" y="105" on="1"/> - <pt x="554" y="105" on="0"/> - <pt x="675" y="245" on="1"/> - <pt x="675" y="827" on="1"/> - <pt x="673" y="925" on="1"/> - <pt x="672" y="994" on="0"/> - <pt x="648" y="1007" on="1"/> - <pt x="627" y="1019" on="0"/> - <pt x="573" y="1023" on="1"/> - <pt x="554" y="1024" on="1"/> - <pt x="554" y="1086" on="1"/> - <pt x="872" y="1086" on="1"/> - <pt x="872" y="259" on="1"/> - <pt x="874" y="160" on="1"/> - <pt x="874" y="92" on="0"/> - <pt x="899" y="78" on="1"/> - <pt x="922" y="66" on="0"/> - <pt x="974" y="63" on="1"/> - <pt x="993" y="62" on="1"/> - <pt x="993" y="0" on="1"/> - </contour> - <contour> - <pt x="146" y="1604" on="1"/> - <pt x="211" y="1604" on="1"/> - <pt x="238" y="1514" on="0"/> - <pt x="298" y="1472" on="1"/> - <pt x="366" y="1425" on="0"/> - <pt x="479" y="1425" on="1"/> - <pt x="605" y="1425" on="0"/> - <pt x="675" y="1484" on="1"/> - <pt x="724" y="1524" on="0"/> - <pt x="748" y="1604" on="1"/> - <pt x="812" y="1604" on="1"/> - <pt x="793" y="1469" on="0"/> - <pt x="721" y="1388" on="1"/> - <pt x="626" y="1283" on="0"/> - <pt x="479" y="1283" on="1"/> - <pt x="325" y="1283" on="0"/> - <pt x="230" y="1398" on="1"/> - <pt x="165" y="1476" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 97 values pushed */ - 0 0 49 20 58 24 29 5 48 84 5 2 42 36 33 27 26 19 16 10 9 1 10 17 0 - 3 54 53 45 44 4 13 58 17 43 0 1 0 35 34 18 17 1 3 14 54 53 2 35 0 - 3 34 33 2 0 18 3 45 44 2 18 9 3 43 42 2 13 35 17 16 9 0 0 27 26 - 1 0 4 3 35 19 18 4 1 9 2 4 48 196 36 35 1 10 9 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ucircumflex" xMin="12" yMin="-25" xMax="993" yMax="1604"> - <component glyphName="u" x="0" y="0" flags="0x4"/> - <component glyphName="circumflex" x="143" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="udieresis" xMin="12" yMin="-25" xMax="993" yMax="1456"> - <component glyphName="u" x="0" y="0" flags="0x4"/> - <component glyphName="dieresis" x="162" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ugrave" xMin="12" yMin="-25" xMax="993" yMax="1604"> - <component glyphName="u" x="0" y="0" flags="0x4"/> - <component glyphName="grave" x="78" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="uhungarumlaut" xMin="12" yMin="-25" xMax="993" yMax="1604"> - <component glyphName="u" x="0" y="0" flags="0x4"/> - <component glyphName="hungarumlaut" x="249" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="umacron" xMin="12" yMin="-25" xMax="993" yMax="1406"> - <component glyphName="u" x="0" y="0" flags="0x4"/> - <component glyphName="macron" x="161" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="underscore" xMin="0" yMin="-123" xMax="1024" yMax="0"> - <contour> - <pt x="0" y="-123" on="1"/> - <pt x="0" y="0" on="1"/> - <pt x="1024" y="0" on="1"/> - <pt x="1024" y="-123" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 0 0 3 0 12 1 1 1 4 48 84 2 1 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="uogonek" xMin="12" yMin="-370" xMax="993" yMax="1086"> - <component glyphName="u" x="0" y="0" flags="0x4"/> - <component glyphName="ogonek" x="419" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="uring" xMin="12" yMin="-25" xMax="993" yMax="1737"> - <contour> - <pt x="675" y="0" on="1"/> - <pt x="675" y="179" on="1"/> - <pt x="611" y="87" on="0"/> - <pt x="551" y="41" on="1"/> - <pt x="466" y="-25" on="0"/> - <pt x="364" y="-25" on="1"/> - <pt x="240" y="-25" on="0"/> - <pt x="186" y="53" on="1"/> - <pt x="133" y="131" on="0"/> - <pt x="133" y="321" on="1"/> - <pt x="133" y="827" on="1"/> - <pt x="131" y="925" on="1"/> - <pt x="131" y="993" on="0"/> - <pt x="106" y="1007" on="1"/> - <pt x="86" y="1019" on="0"/> - <pt x="31" y="1023" on="1"/> - <pt x="12" y="1024" on="1"/> - <pt x="12" y="1086" on="1"/> - <pt x="331" y="1086" on="1"/> - <pt x="331" y="352" on="1"/> - <pt x="333" y="274" on="1"/> - <pt x="335" y="188" on="0"/> - <pt x="357" y="150" on="1"/> - <pt x="383" y="105" on="0"/> - <pt x="439" y="105" on="1"/> - <pt x="554" y="105" on="0"/> - <pt x="675" y="245" on="1"/> - <pt x="675" y="827" on="1"/> - <pt x="673" y="925" on="1"/> - <pt x="672" y="994" on="0"/> - <pt x="648" y="1007" on="1"/> - <pt x="627" y="1019" on="0"/> - <pt x="573" y="1023" on="1"/> - <pt x="554" y="1024" on="1"/> - <pt x="554" y="1086" on="1"/> - <pt x="872" y="1086" on="1"/> - <pt x="872" y="259" on="1"/> - <pt x="874" y="160" on="1"/> - <pt x="874" y="92" on="0"/> - <pt x="899" y="78" on="1"/> - <pt x="922" y="66" on="0"/> - <pt x="974" y="63" on="1"/> - <pt x="993" y="62" on="1"/> - <pt x="993" y="0" on="1"/> - </contour> - <contour> - <pt x="491" y="1737" on="1"/> - <pt x="585" y="1737" on="0"/> - <pt x="651" y="1671" on="1"/> - <pt x="718" y="1605" on="0"/> - <pt x="718" y="1511" on="1"/> - <pt x="718" y="1415" on="0"/> - <pt x="651" y="1349" on="1"/> - <pt x="584" y="1283" on="0"/> - <pt x="489" y="1283" on="1"/> - <pt x="405" y="1283" on="0"/> - <pt x="344" y="1337" on="1"/> - <pt x="264" y="1407" on="0"/> - <pt x="264" y="1510" on="1"/> - <pt x="264" y="1605" on="0"/> - <pt x="330" y="1671" on="1"/> - <pt x="396" y="1737" on="0"/> - </contour> - <contour> - <pt x="491" y="1669" on="1"/> - <pt x="425" y="1669" on="0"/> - <pt x="378" y="1623" on="1"/> - <pt x="332" y="1576" on="0"/> - <pt x="332" y="1511" on="1"/> - <pt x="332" y="1445" on="0"/> - <pt x="378" y="1398" on="1"/> - <pt x="424" y="1351" on="0"/> - <pt x="489" y="1351" on="1"/> - <pt x="550" y="1351" on="0"/> - <pt x="594" y="1388" on="1"/> - <pt x="650" y="1437" on="0"/> - <pt x="650" y="1511" on="1"/> - <pt x="650" y="1577" on="0"/> - <pt x="603" y="1623" on="1"/> - <pt x="556" y="1669" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 103 values pushed */ - 0 0 68 17 52 60 17 44 24 29 5 48 84 5 2 42 36 33 27 26 19 16 10 9 1 - 10 17 0 3 52 44 17 43 0 1 0 35 34 18 17 1 3 14 0 0 72 17 48 64 17 - 56 48 196 48 48 35 0 2 34 33 2 0 18 3 56 56 18 9 2 43 42 2 13 35 17 - 16 9 0 0 27 26 1 0 4 3 35 19 18 4 1 9 2 4 48 196 36 35 1 10 9 - 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MDAP[1] - CALL[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="utilde" xMin="12" yMin="-25" xMax="993" yMax="1518"> - <contour> - <pt x="675" y="0" on="1"/> - <pt x="675" y="179" on="1"/> - <pt x="611" y="87" on="0"/> - <pt x="551" y="41" on="1"/> - <pt x="466" y="-25" on="0"/> - <pt x="364" y="-25" on="1"/> - <pt x="240" y="-25" on="0"/> - <pt x="186" y="53" on="1"/> - <pt x="133" y="131" on="0"/> - <pt x="133" y="321" on="1"/> - <pt x="133" y="827" on="1"/> - <pt x="131" y="925" on="1"/> - <pt x="131" y="993" on="0"/> - <pt x="106" y="1007" on="1"/> - <pt x="86" y="1019" on="0"/> - <pt x="31" y="1023" on="1"/> - <pt x="12" y="1024" on="1"/> - <pt x="12" y="1086" on="1"/> - <pt x="331" y="1086" on="1"/> - <pt x="331" y="352" on="1"/> - <pt x="333" y="274" on="1"/> - <pt x="335" y="188" on="0"/> - <pt x="357" y="150" on="1"/> - <pt x="383" y="105" on="0"/> - <pt x="439" y="105" on="1"/> - <pt x="554" y="105" on="0"/> - <pt x="675" y="245" on="1"/> - <pt x="675" y="827" on="1"/> - <pt x="673" y="925" on="1"/> - <pt x="672" y="994" on="0"/> - <pt x="648" y="1007" on="1"/> - <pt x="627" y="1019" on="0"/> - <pt x="573" y="1023" on="1"/> - <pt x="554" y="1024" on="1"/> - <pt x="554" y="1086" on="1"/> - <pt x="872" y="1086" on="1"/> - <pt x="872" y="259" on="1"/> - <pt x="874" y="160" on="1"/> - <pt x="874" y="92" on="0"/> - <pt x="899" y="78" on="1"/> - <pt x="922" y="66" on="0"/> - <pt x="974" y="63" on="1"/> - <pt x="993" y="62" on="1"/> - <pt x="993" y="0" on="1"/> - </contour> - <contour> - <pt x="158" y="1283" on="1"/> - <pt x="185" y="1423" on="0"/> - <pt x="254" y="1476" on="1"/> - <pt x="308" y="1518" on="0"/> - <pt x="385" y="1518" on="1"/> - <pt x="450" y="1518" on="0"/> - <pt x="503" y="1480" on="1"/> - <pt x="538" y="1455" on="1"/> - <pt x="590" y="1418" on="0"/> - <pt x="644" y="1418" on="1"/> - <pt x="739" y="1418" on="0"/> - <pt x="762" y="1517" on="1"/> - <pt x="824" y="1517" on="1"/> - <pt x="796" y="1378" on="0"/> - <pt x="728" y="1325" on="1"/> - <pt x="674" y="1283" on="0"/> - <pt x="597" y="1283" on="1"/> - <pt x="534" y="1283" on="0"/> - <pt x="479" y="1321" on="1"/> - <pt x="444" y="1345" on="1"/> - <pt x="389" y="1383" on="0"/> - <pt x="337" y="1383" on="1"/> - <pt x="249" y="1383" on="0"/> - <pt x="220" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 111 values pushed */ - 0 0 65 20 48 53 20 60 24 29 5 48 84 48 0 5 2 60 1 67 60 44 3 0 17 - 3 0 42 36 33 27 26 19 16 10 9 1 10 17 0 3 1 56 55 2 13 0 0 43 0 - 1 0 35 34 18 17 1 3 14 56 55 2 35 0 3 34 33 2 0 18 3 67 44 2 18 - 9 3 43 42 2 13 35 17 16 9 0 0 27 26 1 0 4 3 35 19 18 4 1 9 2 - 4 48 196 36 35 1 10 9 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="v" xMin="0" yMin="-12" xMax="1024" yMax="1086"> - <contour> - <pt x="493" y="-12" on="1"/> - <pt x="156" y="820" on="1"/> - <pt x="76" y="1019" on="0"/> - <pt x="18" y="1023" on="1"/> - <pt x="0" y="1024" on="1"/> - <pt x="0" y="1086" on="1"/> - <pt x="438" y="1086" on="1"/> - <pt x="438" y="1024" on="1"/> - <pt x="418" y="1024" on="1"/> - <pt x="389" y="1023" on="1"/> - <pt x="311" y="1020" on="0"/> - <pt x="311" y="982" on="1"/> - <pt x="311" y="964" on="0"/> - <pt x="341" y="891" on="1"/> - <pt x="371" y="818" on="1"/> - <pt x="591" y="272" on="1"/> - <pt x="795" y="817" on="1"/> - <pt x="821" y="884" on="1"/> - <pt x="852" y="964" on="0"/> - <pt x="852" y="982" on="1"/> - <pt x="852" y="1024" on="0"/> - <pt x="758" y="1024" on="1"/> - <pt x="736" y="1024" on="1"/> - <pt x="736" y="1086" on="1"/> - <pt x="1024" y="1086" on="1"/> - <pt x="1024" y="1024" on="1"/> - <pt x="1007" y="1023" on="1"/> - <pt x="946" y="1018" on="0"/> - <pt x="912" y="931" on="1"/> - <pt x="867" y="817" on="1"/> - <pt x="553" y="-12" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 40 values pushed */ - 1 25 22 21 15 8 7 4 7 5 2 3 0 1 30 0 2 0 24 23 6 5 1 3 14 - 30 25 24 23 22 21 19 15 11 8 7 6 5 4 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="w" xMin="0" yMin="-12" xMax="1479" yMax="1086"> - <contour> - <pt x="382" y="-12" on="1"/> - <pt x="152" y="827" on="1"/> - <pt x="118" y="950" on="0"/> - <pt x="95" y="985" on="1"/> - <pt x="72" y="1020" on="0"/> - <pt x="19" y="1023" on="1"/> - <pt x="0" y="1024" on="1"/> - <pt x="0" y="1086" on="1"/> - <pt x="445" y="1086" on="1"/> - <pt x="445" y="1024" on="1"/> - <pt x="424" y="1024" on="1"/> - <pt x="322" y="1024" on="0"/> - <pt x="322" y="977" on="1"/> - <pt x="322" y="943" on="0"/> - <pt x="354" y="827" on="1"/> - <pt x="493" y="323" on="1"/> - <pt x="757" y="1080" on="1"/> - <pt x="823" y="1080" on="1"/> - <pt x="1098" y="284" on="1"/> - <pt x="1259" y="827" on="1"/> - <pt x="1276" y="885" on="1"/> - <pt x="1295" y="954" on="1"/> - <pt x="1300" y="971" on="0"/> - <pt x="1300" y="979" on="1"/> - <pt x="1300" y="1021" on="0"/> - <pt x="1224" y="1023" on="1"/> - <pt x="1195" y="1024" on="1"/> - <pt x="1173" y="1024" on="1"/> - <pt x="1173" y="1086" on="1"/> - <pt x="1479" y="1086" on="1"/> - <pt x="1478" y="1024" on="1"/> - <pt x="1456" y="1023" on="1"/> - <pt x="1386" y="1019" on="0"/> - <pt x="1352" y="908" on="1"/> - <pt x="1327" y="827" on="1"/> - <pt x="1069" y="-12" on="1"/> - <pt x="1014" y="-12" on="1"/> - <pt x="727" y="801" on="1"/> - <pt x="443" y="-12" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 54 values pushed */ - 1 37 30 27 26 18 17 16 15 10 9 6 11 7 2 3 0 1 38 36 35 0 4 13 2 - 0 29 28 8 7 1 3 14 38 37 36 35 30 29 28 27 26 23 18 17 16 15 12 10 9 - 8 7 6 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="wcircumflex" xMin="0" yMin="-12" xMax="1479" yMax="1604"> - <contour> - <pt x="382" y="-12" on="1"/> - <pt x="152" y="827" on="1"/> - <pt x="118" y="950" on="0"/> - <pt x="95" y="985" on="1"/> - <pt x="72" y="1020" on="0"/> - <pt x="19" y="1023" on="1"/> - <pt x="0" y="1024" on="1"/> - <pt x="0" y="1086" on="1"/> - <pt x="445" y="1086" on="1"/> - <pt x="445" y="1024" on="1"/> - <pt x="424" y="1024" on="1"/> - <pt x="322" y="1024" on="0"/> - <pt x="322" y="977" on="1"/> - <pt x="322" y="943" on="0"/> - <pt x="354" y="827" on="1"/> - <pt x="493" y="323" on="1"/> - <pt x="757" y="1080" on="1"/> - <pt x="823" y="1080" on="1"/> - <pt x="1098" y="284" on="1"/> - <pt x="1259" y="827" on="1"/> - <pt x="1276" y="885" on="1"/> - <pt x="1295" y="954" on="1"/> - <pt x="1300" y="971" on="0"/> - <pt x="1300" y="979" on="1"/> - <pt x="1300" y="1021" on="0"/> - <pt x="1224" y="1023" on="1"/> - <pt x="1195" y="1024" on="1"/> - <pt x="1173" y="1024" on="1"/> - <pt x="1173" y="1086" on="1"/> - <pt x="1479" y="1086" on="1"/> - <pt x="1478" y="1024" on="1"/> - <pt x="1456" y="1023" on="1"/> - <pt x="1386" y="1019" on="0"/> - <pt x="1352" y="908" on="1"/> - <pt x="1327" y="827" on="1"/> - <pt x="1069" y="-12" on="1"/> - <pt x="1014" y="-12" on="1"/> - <pt x="727" y="801" on="1"/> - <pt x="443" y="-12" on="1"/> - </contour> - <contour> - <pt x="458" y="1283" on="1"/> - <pt x="699" y="1604" on="1"/> - <pt x="921" y="1604" on="1"/> - <pt x="1161" y="1283" on="1"/> - <pt x="1075" y="1283" on="1"/> - <pt x="810" y="1505" on="1"/> - <pt x="544" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 81 values pushed */ - 1 44 40 0 2 0 1 45 43 42 39 4 0 7 3 0 1 37 30 27 26 18 17 16 15 - 10 9 6 11 7 2 3 0 1 38 36 35 0 4 13 2 0 41 40 1 0 29 28 8 7 - 1 3 14 45 44 43 42 41 40 39 38 37 36 35 30 29 28 27 26 23 18 17 16 15 12 - 10 9 8 7 6 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="x" xMin="0" yMin="0" xMax="1024" yMax="1086"> - <contour> - <pt x="6" y="0" on="1"/> - <pt x="6" y="62" on="1"/> - <pt x="22" y="63" on="1"/> - <pt x="86" y="68" on="0"/> - <pt x="135" y="138" on="1"/> - <pt x="218" y="256" on="1"/> - <pt x="406" y="523" on="1"/> - <pt x="219" y="824" on="1"/> - <pt x="127" y="971" on="0"/> - <pt x="103" y="995" on="1"/> - <pt x="79" y="1019" on="0"/> - <pt x="18" y="1023" on="1"/> - <pt x="0" y="1024" on="1"/> - <pt x="0" y="1086" on="1"/> - <pt x="492" y="1086" on="1"/> - <pt x="492" y="1024" on="1"/> - <pt x="472" y="1024" on="1"/> - <pt x="431" y="1022" on="1"/> - <pt x="363" y="1019" on="0"/> - <pt x="363" y="989" on="1"/> - <pt x="363" y="978" on="0"/> - <pt x="377" y="955" on="1"/> - <pt x="379" y="951" on="1"/> - <pt x="386" y="941" on="0"/> - <pt x="396" y="922" on="1"/> - <pt x="404" y="909" on="1"/> - <pt x="420" y="878" on="0"/> - <pt x="454" y="824" on="1"/> - <pt x="576" y="627" on="1"/> - <pt x="693" y="819" on="1"/> - <pt x="744" y="909" on="1"/> - <pt x="783" y="978" on="0"/> - <pt x="783" y="993" on="1"/> - <pt x="783" y="1022" on="0"/> - <pt x="729" y="1023" on="1"/> - <pt x="692" y="1024" on="1"/> - <pt x="669" y="1024" on="1"/> - <pt x="669" y="1086" on="1"/> - <pt x="987" y="1086" on="1"/> - <pt x="987" y="1024" on="1"/> - <pt x="967" y="1023" on="1"/> - <pt x="901" y="1018" on="0"/> - <pt x="871" y="978" on="1"/> - <pt x="842" y="943" on="0"/> - <pt x="768" y="824" on="1"/> - <pt x="613" y="570" on="1"/> - <pt x="805" y="258" on="1"/> - <pt x="879" y="137" on="0"/> - <pt x="916" y="101" on="1"/> - <pt x="952" y="67" on="0"/> - <pt x="1008" y="63" on="1"/> - <pt x="1024" y="62" on="1"/> - <pt x="1024" y="0" on="1"/> - <pt x="530" y="0" on="1"/> - <pt x="530" y="62" on="1"/> - <pt x="548" y="62" on="1"/> - <pt x="594" y="63" on="1"/> - <pt x="668" y="64" on="0"/> - <pt x="668" y="91" on="1"/> - <pt x="668" y="101" on="0"/> - <pt x="650" y="126" on="1"/> - <pt x="639" y="142" on="0"/> - <pt x="620" y="179" on="1"/> - <pt x="602" y="213" on="0"/> - <pt x="575" y="257" on="1"/> - <pt x="441" y="469" on="1"/> - <pt x="292" y="257" on="1"/> - <pt x="260" y="212" on="0"/> - <pt x="247" y="186" on="1"/> - <pt x="217" y="130" on="1"/> - <pt x="203" y="104" on="0"/> - <pt x="203" y="94" on="1"/> - <pt x="203" y="65" on="0"/> - <pt x="278" y="63" on="1"/> - <pt x="316" y="62" on="1"/> - <pt x="339" y="62" on="1"/> - <pt x="339" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 63 values pushed */ - 75 74 65 55 54 51 45 39 36 35 29 28 16 15 12 6 1 17 13 0 3 76 53 52 0 - 3 0 38 37 14 13 1 3 14 76 75 74 71 65 58 55 54 53 52 51 45 39 38 37 36 - 35 32 29 28 19 16 15 14 13 12 6 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="y" xMin="0" yMin="-395" xMax="1024" yMax="1086"> - <contour> - <pt x="487" y="0" on="1"/> - <pt x="156" y="820" on="1"/> - <pt x="76" y="1020" on="0"/> - <pt x="17" y="1023" on="1"/> - <pt x="0" y="1024" on="1"/> - <pt x="0" y="1086" on="1"/> - <pt x="437" y="1086" on="1"/> - <pt x="437" y="1024" on="1"/> - <pt x="418" y="1024" on="1"/> - <pt x="389" y="1023" on="1"/> - <pt x="310" y="1020" on="0"/> - <pt x="310" y="982" on="1"/> - <pt x="310" y="961" on="0"/> - <pt x="340" y="891" on="1"/> - <pt x="371" y="818" on="1"/> - <pt x="591" y="272" on="1"/> - <pt x="794" y="817" on="1"/> - <pt x="820" y="884" on="1"/> - <pt x="851" y="964" on="0"/> - <pt x="851" y="982" on="1"/> - <pt x="851" y="1024" on="0"/> - <pt x="758" y="1024" on="1"/> - <pt x="736" y="1024" on="1"/> - <pt x="736" y="1086" on="1"/> - <pt x="1024" y="1086" on="1"/> - <pt x="1024" y="1024" on="1"/> - <pt x="1007" y="1023" on="1"/> - <pt x="945" y="1019" on="0"/> - <pt x="911" y="931" on="1"/> - <pt x="867" y="817" on="1"/> - <pt x="411" y="-395" on="1"/> - <pt x="162" y="-395" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 46 values pushed */ - 1 25 22 21 15 8 7 4 7 5 2 3 0 1 0 2 30 2 0 31 30 1 0 24 23 - 6 5 1 3 14 31 30 25 24 23 22 21 19 15 11 8 7 6 5 4 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="yacute" xMin="0" yMin="-395" xMax="1024" yMax="1604"> - <component glyphName="y" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="309" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ycircumflex" xMin="0" yMin="-395" xMax="1024" yMax="1604"> - <contour> - <pt x="487" y="0" on="1"/> - <pt x="156" y="820" on="1"/> - <pt x="76" y="1020" on="0"/> - <pt x="17" y="1023" on="1"/> - <pt x="0" y="1024" on="1"/> - <pt x="0" y="1086" on="1"/> - <pt x="437" y="1086" on="1"/> - <pt x="437" y="1024" on="1"/> - <pt x="418" y="1024" on="1"/> - <pt x="389" y="1023" on="1"/> - <pt x="310" y="1020" on="0"/> - <pt x="310" y="982" on="1"/> - <pt x="310" y="961" on="0"/> - <pt x="340" y="891" on="1"/> - <pt x="371" y="818" on="1"/> - <pt x="591" y="272" on="1"/> - <pt x="794" y="817" on="1"/> - <pt x="820" y="884" on="1"/> - <pt x="851" y="964" on="0"/> - <pt x="851" y="982" on="1"/> - <pt x="851" y="1024" on="0"/> - <pt x="758" y="1024" on="1"/> - <pt x="736" y="1024" on="1"/> - <pt x="736" y="1086" on="1"/> - <pt x="1024" y="1086" on="1"/> - <pt x="1024" y="1024" on="1"/> - <pt x="1007" y="1023" on="1"/> - <pt x="945" y="1019" on="0"/> - <pt x="911" y="931" on="1"/> - <pt x="867" y="817" on="1"/> - <pt x="411" y="-395" on="1"/> - <pt x="162" y="-395" on="1"/> - </contour> - <contour> - <pt x="235" y="1283" on="1"/> - <pt x="476" y="1604" on="1"/> - <pt x="698" y="1604" on="1"/> - <pt x="938" y="1283" on="1"/> - <pt x="852" y="1283" on="1"/> - <pt x="587" y="1505" on="1"/> - <pt x="321" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 73 values pushed */ - 1 37 33 0 2 0 1 38 36 35 32 4 0 5 3 0 1 25 22 21 15 8 7 4 7 - 5 2 3 0 1 0 2 30 2 0 34 33 1 31 30 1 2 0 24 23 6 5 1 3 14 - 38 37 36 35 34 33 32 31 30 25 24 23 22 21 19 15 11 8 7 6 5 4 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ydieresis" xMin="0" yMin="-395" xMax="1024" yMax="1456"> - <component glyphName="y" x="0" y="0" flags="0x4"/> - <component glyphName="dieresis" x="250" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="yen" xMin="0" yMin="0" xMax="1024" yMax="1480"> - <contour> - <pt x="414" y="395" on="1"/> - <pt x="105" y="395" on="1"/> - <pt x="105" y="456" on="1"/> - <pt x="414" y="456" on="1"/> - <pt x="414" y="666" on="1"/> - <pt x="105" y="666" on="1"/> - <pt x="105" y="728" on="1"/> - <pt x="414" y="728" on="1"/> - <pt x="219" y="1182" on="1"/> - <pt x="152" y="1338" on="0"/> - <pt x="103" y="1378" on="1"/> - <pt x="62" y="1413" on="0"/> - <pt x="0" y="1417" on="1"/> - <pt x="0" y="1480" on="1"/> - <pt x="502" y="1480" on="1"/> - <pt x="502" y="1419" on="1"/> - <pt x="493" y="1419" on="0"/> - <pt x="478" y="1418" on="1"/> - <pt x="467" y="1418" on="1"/> - <pt x="455" y="1418" on="1"/> - <pt x="376" y="1418" on="0"/> - <pt x="376" y="1376" on="1"/> - <pt x="376" y="1349" on="0"/> - <pt x="399" y="1291" on="1"/> - <pt x="573" y="854" on="1"/> - <pt x="768" y="1312" on="1"/> - <pt x="787" y="1357" on="0"/> - <pt x="787" y="1385" on="1"/> - <pt x="787" y="1421" on="0"/> - <pt x="734" y="1418" on="1"/> - <pt x="726" y="1418" on="1"/> - <pt x="720" y="1417" on="1"/> - <pt x="709" y="1417" on="1"/> - <pt x="700" y="1417" on="1"/> - <pt x="683" y="1418" on="0"/> - <pt x="665" y="1419" on="1"/> - <pt x="665" y="1480" on="1"/> - <pt x="1024" y="1480" on="1"/> - <pt x="1024" y="1417" on="1"/> - <pt x="933" y="1409" on="0"/> - <pt x="897" y="1360" on="1"/> - <pt x="861" y="1314" on="0"/> - <pt x="804" y="1179" on="1"/> - <pt x="611" y="728" on="1"/> - <pt x="920" y="728" on="1"/> - <pt x="920" y="666" on="1"/> - <pt x="611" y="666" on="1"/> - <pt x="611" y="456" on="1"/> - <pt x="920" y="456" on="1"/> - <pt x="920" y="395" on="1"/> - <pt x="611" y="395" on="1"/> - <pt x="611" y="259" on="1"/> - <pt x="611" y="202" on="0"/> - <pt x="619" y="147" on="1"/> - <pt x="626" y="96" on="0"/> - <pt x="651" y="82" on="1"/> - <pt x="673" y="71" on="0"/> - <pt x="710" y="68" on="1"/> - <pt x="778" y="63" on="1"/> - <pt x="796" y="62" on="1"/> - <pt x="796" y="0" on="1"/> - <pt x="229" y="0" on="1"/> - <pt x="229" y="62" on="1"/> - <pt x="247" y="63" on="1"/> - <pt x="315" y="68" on="1"/> - <pt x="390" y="74" on="0"/> - <pt x="400" y="115" on="1"/> - <pt x="414" y="175" on="0"/> - <pt x="414" y="259" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 119 values pushed */ - 68 61 51 60 32 29 38 35 32 29 24 19 18 17 15 12 10 13 6 3 0 0 46 45 5 - 4 14 3 6 48 47 3 2 14 3 0 2 4 48 84 44 43 7 6 3 50 49 1 0 3 - 61 60 1 3 0 37 36 14 13 0 3 14 61 68 60 51 24 19 18 17 15 14 6 43 0 - 3 49 48 45 44 38 37 36 35 8 13 27 43 13 12 6 5 2 1 6 13 21 0 0 0 - 51 50 47 46 43 4 4 0 1 4 48 196 68 7 4 3 0 4 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[1] - MDAP[1] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="z" xMin="62" yMin="0" xMax="846" yMax="1086"> - <contour> - <pt x="62" y="0" on="1"/> - <pt x="62" y="62" on="1"/> - <pt x="590" y="1018" on="1"/> - <pt x="396" y="1018" on="1"/> - <pt x="300" y="1017" on="1"/> - <pt x="218" y="1017" on="0"/> - <pt x="207" y="991" on="1"/> - <pt x="197" y="972" on="0"/> - <pt x="198" y="926" on="1"/> - <pt x="198" y="913" on="1"/> - <pt x="198" y="900" on="1"/> - <pt x="197" y="875" on="0"/> - <pt x="197" y="869" on="1"/> - <pt x="195" y="848" on="1"/> - <pt x="90" y="848" on="1"/> - <pt x="90" y="1086" on="1"/> - <pt x="819" y="1086" on="1"/> - <pt x="819" y="1024" on="1"/> - <pt x="294" y="74" on="1"/> - <pt x="536" y="74" on="1"/> - <pt x="657" y="79" on="1"/> - <pt x="739" y="80" on="0"/> - <pt x="740" y="151" on="1"/> - <pt x="740" y="226" on="1"/> - <pt x="741" y="250" on="1"/> - <pt x="846" y="250" on="1"/> - <pt x="846" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 73 values pushed */ - 17 15 2 2 25 24 23 22 14 13 10 9 8 9 2 18 3 1 18 0 2 0 0 3 2 - 14 1 15 19 18 21 1 0 2 4 48 84 26 0 1 0 16 15 1 14 24 23 22 19 18 - 17 16 13 10 9 8 3 2 13 25 14 3 1 0 14 26 25 1 15 14 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="zacute" xMin="62" yMin="0" xMax="846" yMax="1604"> - <component glyphName="z" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="234" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="zcaron" xMin="62" yMin="0" xMax="846" yMax="1604"> - <component glyphName="z" x="0" y="0" flags="0x4"/> - <component glyphName="caron" x="115" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="zdotaccent" xMin="62" yMin="0" xMax="846" yMax="1480"> - <component glyphName="z" x="0" y="0" flags="0x4"/> - <component glyphName="dotaccent" x="113" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="zero" xMin="56" yMin="-37" xMax="969" yMax="1517"> - <contour> - <pt x="512" y="1517" on="1"/> - <pt x="712" y="1517" on="0"/> - <pt x="840" y="1300" on="1"/> - <pt x="969" y="1082" on="0"/> - <pt x="969" y="743" on="1"/> - <pt x="969" y="397" on="0"/> - <pt x="841" y="180" on="1"/> - <pt x="713" y="-37" on="0"/> - <pt x="506" y="-37" on="1"/> - <pt x="332" y="-37" on="0"/> - <pt x="211" y="138" on="1"/> - <pt x="56" y="363" on="0"/> - <pt x="56" y="741" on="1"/> - <pt x="56" y="1083" on="0"/> - <pt x="184" y="1299" on="1"/> - <pt x="312" y="1517" on="0"/> - </contour> - <contour> - <pt x="512" y="1456" on="1"/> - <pt x="265" y="1456" on="0"/> - <pt x="265" y="743" on="1"/> - <pt x="265" y="25" on="0"/> - <pt x="519" y="25" on="1"/> - <pt x="759" y="25" on="0"/> - <pt x="759" y="755" on="1"/> - <pt x="759" y="1016" on="0"/> - <pt x="712" y="1233" on="1"/> - <pt x="688" y="1343" on="0"/> - <pt x="623" y="1408" on="1"/> - <pt x="576" y="1456" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 27 values pushed */ - 0 0 20 11 8 16 11 0 48 84 8 2 0 0 14 0 0 22 10 4 18 10 12 48 196 - 12 4 - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - </glyf> - - <kern> - <version value="0"/> - <kernsubtable coverage="1" format="0"> - <pair l="A" r="C" v="-106"/> - <pair l="A" r="Ccedilla" v="-115"/> - <pair l="A" r="G" v="-107"/> - <pair l="A" r="O" v="-96"/> - <pair l="A" r="Odieresis" v="-96"/> - <pair l="A" r="Q" v="-95"/> - <pair l="A" r="T" v="-78"/> - <pair l="A" r="U" v="-111"/> - <pair l="A" r="Uacute" v="-111"/> - <pair l="A" r="Ucircumflex" v="-111"/> - <pair l="A" r="Udieresis" v="-111"/> - <pair l="A" r="Ugrave" v="-111"/> - <pair l="A" r="V" v="-239"/> - <pair l="A" r="W" v="-172"/> - <pair l="A" r="Y" v="-143"/> - <pair l="A" r="a" v="-1"/> - <pair l="A" r="b" v="7"/> - <pair l="A" r="c" v="-71"/> - <pair l="A" r="ccedilla" v="-87"/> - <pair l="A" r="comma" v="10"/> - <pair l="A" r="d" v="-32"/> - <pair l="A" r="e" v="-61"/> - <pair l="A" r="g" v="-11"/> - <pair l="A" r="guillemotleft" v="-108"/> - <pair l="A" r="guilsinglleft" v="-114"/> - <pair l="A" r="hyphen" v="-61"/> - <pair l="A" r="o" v="-50"/> - <pair l="A" r="period" v="10"/> - <pair l="A" r="q" v="-32"/> - <pair l="A" r="quotedblright" v="-216"/> - <pair l="A" r="quoteright" v="-258"/> - <pair l="A" r="t" v="-24"/> - <pair l="A" r="u" v="-19"/> - <pair l="A" r="v" v="-149"/> - <pair l="A" r="w" v="-112"/> - <pair l="A" r="y" v="-150"/> - <pair l="Aacute" r="C" v="-106"/> - <pair l="Aacute" r="G" v="-107"/> - <pair l="Aacute" r="O" v="-96"/> - <pair l="Aacute" r="Q" v="-95"/> - <pair l="Aacute" r="T" v="-78"/> - <pair l="Aacute" r="U" v="-111"/> - <pair l="Aacute" r="V" v="-239"/> - <pair l="Aacute" r="W" v="-172"/> - <pair l="Aacute" r="Y" v="-143"/> - <pair l="Aacute" r="a" v="-1"/> - <pair l="Aacute" r="b" v="7"/> - <pair l="Aacute" r="c" v="-71"/> - <pair l="Aacute" r="comma" v="10"/> - <pair l="Aacute" r="d" v="-32"/> - <pair l="Aacute" r="e" v="-61"/> - <pair l="Aacute" r="g" v="-11"/> - <pair l="Aacute" r="guillemotleft" v="-108"/> - <pair l="Aacute" r="guilsinglleft" v="-114"/> - <pair l="Aacute" r="hyphen" v="-61"/> - <pair l="Aacute" r="o" v="-50"/> - <pair l="Aacute" r="period" v="10"/> - <pair l="Aacute" r="q" v="-32"/> - <pair l="Aacute" r="quoteright" v="-258"/> - <pair l="Aacute" r="t" v="-24"/> - <pair l="Aacute" r="u" v="-19"/> - <pair l="Aacute" r="v" v="-149"/> - <pair l="Aacute" r="w" v="-112"/> - <pair l="Aacute" r="y" v="-150"/> - <pair l="Acircumflex" r="C" v="-106"/> - <pair l="Acircumflex" r="G" v="-107"/> - <pair l="Acircumflex" r="O" v="-96"/> - <pair l="Acircumflex" r="Q" v="-95"/> - <pair l="Acircumflex" r="T" v="-78"/> - <pair l="Acircumflex" r="U" v="-111"/> - <pair l="Acircumflex" r="V" v="-239"/> - <pair l="Acircumflex" r="W" v="-172"/> - <pair l="Acircumflex" r="Y" v="-143"/> - <pair l="Acircumflex" r="comma" v="10"/> - <pair l="Acircumflex" r="period" v="10"/> - <pair l="Adieresis" r="C" v="-106"/> - <pair l="Adieresis" r="G" v="-107"/> - <pair l="Adieresis" r="O" v="-96"/> - <pair l="Adieresis" r="Q" v="-95"/> - <pair l="Adieresis" r="T" v="-78"/> - <pair l="Adieresis" r="U" v="-111"/> - <pair l="Adieresis" r="V" v="-239"/> - <pair l="Adieresis" r="W" v="-172"/> - <pair l="Adieresis" r="Y" v="-143"/> - <pair l="Adieresis" r="a" v="-1"/> - <pair l="Adieresis" r="b" v="7"/> - <pair l="Adieresis" r="c" v="-71"/> - <pair l="Adieresis" r="comma" v="10"/> - <pair l="Adieresis" r="d" v="-32"/> - <pair l="Adieresis" r="g" v="-11"/> - <pair l="Adieresis" r="guillemotleft" v="-108"/> - <pair l="Adieresis" r="guilsinglleft" v="-114"/> - <pair l="Adieresis" r="hyphen" v="-61"/> - <pair l="Adieresis" r="o" v="-50"/> - <pair l="Adieresis" r="period" v="10"/> - <pair l="Adieresis" r="q" v="-32"/> - <pair l="Adieresis" r="quotedblright" v="-216"/> - <pair l="Adieresis" r="quoteright" v="-258"/> - <pair l="Adieresis" r="t" v="-24"/> - <pair l="Adieresis" r="u" v="-19"/> - <pair l="Adieresis" r="v" v="-149"/> - <pair l="Adieresis" r="w" v="-112"/> - <pair l="Adieresis" r="y" v="-150"/> - <pair l="Agrave" r="C" v="-106"/> - <pair l="Agrave" r="G" v="-107"/> - <pair l="Agrave" r="O" v="-96"/> - <pair l="Agrave" r="Q" v="-95"/> - <pair l="Agrave" r="T" v="-78"/> - <pair l="Agrave" r="U" v="-111"/> - <pair l="Agrave" r="V" v="-239"/> - <pair l="Agrave" r="W" v="-172"/> - <pair l="Agrave" r="Y" v="-143"/> - <pair l="Agrave" r="comma" v="10"/> - <pair l="Agrave" r="period" v="10"/> - <pair l="Aring" r="C" v="-106"/> - <pair l="Aring" r="G" v="-107"/> - <pair l="Aring" r="O" v="-96"/> - <pair l="Aring" r="Q" v="-95"/> - <pair l="Aring" r="T" v="-78"/> - <pair l="Aring" r="U" v="-111"/> - <pair l="Aring" r="V" v="-239"/> - <pair l="Aring" r="W" v="-172"/> - <pair l="Aring" r="Y" v="-143"/> - <pair l="Aring" r="a" v="-1"/> - <pair l="Aring" r="b" v="7"/> - <pair l="Aring" r="c" v="-71"/> - <pair l="Aring" r="comma" v="10"/> - <pair l="Aring" r="d" v="-32"/> - <pair l="Aring" r="e" v="-61"/> - <pair l="Aring" r="g" v="-11"/> - <pair l="Aring" r="guillemotleft" v="-108"/> - <pair l="Aring" r="guilsinglleft" v="-114"/> - <pair l="Aring" r="hyphen" v="-61"/> - <pair l="Aring" r="o" v="-50"/> - <pair l="Aring" r="period" v="10"/> - <pair l="Aring" r="q" v="-32"/> - <pair l="Aring" r="quotedblright" v="-216"/> - <pair l="Aring" r="quoteright" v="-258"/> - <pair l="Aring" r="t" v="-24"/> - <pair l="Aring" r="u" v="-19"/> - <pair l="Aring" r="v" v="-149"/> - <pair l="Aring" r="w" v="-112"/> - <pair l="Aring" r="y" v="-150"/> - <pair l="Atilde" r="C" v="-106"/> - <pair l="Atilde" r="G" v="-107"/> - <pair l="Atilde" r="O" v="-96"/> - <pair l="Atilde" r="Q" v="-95"/> - <pair l="Atilde" r="T" v="-78"/> - <pair l="Atilde" r="U" v="-111"/> - <pair l="Atilde" r="V" v="-239"/> - <pair l="Atilde" r="W" v="-172"/> - <pair l="Atilde" r="Y" v="-143"/> - <pair l="Atilde" r="comma" v="10"/> - <pair l="Atilde" r="period" v="10"/> - <pair l="B" r="A" v="-53"/> - <pair l="B" r="AE" v="-53"/> - <pair l="B" r="Aacute" v="-53"/> - <pair l="B" r="Acircumflex" v="-53"/> - <pair l="B" r="Adieresis" v="-53"/> - <pair l="B" r="Aring" v="-53"/> - <pair l="B" r="Atilde" v="-53"/> - <pair l="B" r="O" v="-38"/> - <pair l="B" r="OE" v="-37"/> - <pair l="B" r="Oacute" v="-38"/> - <pair l="B" r="Ocircumflex" v="-38"/> - <pair l="B" r="Odieresis" v="-38"/> - <pair l="B" r="Ograve" v="-38"/> - <pair l="B" r="Oslash" v="-32"/> - <pair l="B" r="V" v="-62"/> - <pair l="B" r="W" v="-62"/> - <pair l="B" r="Y" v="-62"/> - <pair l="C" r="A" v="22"/> - <pair l="C" r="AE" v="22"/> - <pair l="C" r="Aacute" v="22"/> - <pair l="C" r="Adieresis" v="22"/> - <pair l="C" r="Aring" v="22"/> - <pair l="C" r="H" v="2"/> - <pair l="C" r="K" v="-5"/> - <pair l="C" r="O" v="-62"/> - <pair l="C" r="Oacute" v="-62"/> - <pair l="C" r="Odieresis" v="-62"/> - <pair l="Ccedilla" r="A" v="13"/> - <pair l="D" r="A" v="-114"/> - <pair l="D" r="Aacute" v="-114"/> - <pair l="D" r="Acircumflex" v="-114"/> - <pair l="D" r="Adieresis" v="-114"/> - <pair l="D" r="Agrave" v="-114"/> - <pair l="D" r="Aring" v="-114"/> - <pair l="D" r="Atilde" v="-114"/> - <pair l="D" r="J" v="-124"/> - <pair l="D" r="T" v="-27"/> - <pair l="D" r="V" v="-97"/> - <pair l="D" r="W" v="-93"/> - <pair l="D" r="X" v="-115"/> - <pair l="D" r="Y" v="-97"/> - <pair l="F" r="A" v="-167"/> - <pair l="F" r="Aacute" v="-167"/> - <pair l="F" r="Acircumflex" v="-167"/> - <pair l="F" r="Adieresis" v="-167"/> - <pair l="F" r="Agrave" v="-167"/> - <pair l="F" r="Aring" v="-167"/> - <pair l="F" r="Atilde" v="-167"/> - <pair l="F" r="J" v="-55"/> - <pair l="F" r="O" v="-57"/> - <pair l="F" r="Odieresis" v="-57"/> - <pair l="F" r="a" v="-108"/> - <pair l="F" r="aacute" v="-108"/> - <pair l="F" r="adieresis" v="-67"/> - <pair l="F" r="ae" v="-108"/> - <pair l="F" r="aring" v="-98"/> - <pair l="F" r="comma" v="-164"/> - <pair l="F" r="e" v="-64"/> - <pair l="F" r="eacute" v="-64"/> - <pair l="F" r="hyphen" v="-10"/> - <pair l="F" r="i" v="-68"/> - <pair l="F" r="j" v="-102"/> - <pair l="F" r="o" v="-61"/> - <pair l="F" r="oacute" v="-61"/> - <pair l="F" r="odieresis" v="-61"/> - <pair l="F" r="oe" v="-61"/> - <pair l="F" r="oslash" v="-61"/> - <pair l="F" r="period" v="-165"/> - <pair l="F" r="r" v="-91"/> - <pair l="F" r="u" v="-81"/> - <pair l="G" r="A" v="-19"/> - <pair l="G" r="AE" v="-19"/> - <pair l="G" r="Aacute" v="-19"/> - <pair l="G" r="Acircumflex" v="-19"/> - <pair l="G" r="Adieresis" v="-19"/> - <pair l="G" r="Agrave" v="-19"/> - <pair l="G" r="Aring" v="-19"/> - <pair l="G" r="Atilde" v="-19"/> - <pair l="G" r="T" v="-36"/> - <pair l="G" r="V" v="-21"/> - <pair l="G" r="W" v="-21"/> - <pair l="G" r="Y" v="-21"/> - <pair l="J" r="A" v="-35"/> - <pair l="J" r="AE" v="-35"/> - <pair l="J" r="Adieresis" v="-35"/> - <pair l="J" r="Aring" v="-35"/> - <pair l="K" r="C" v="-114"/> - <pair l="K" r="G" v="-115"/> - <pair l="K" r="O" v="-104"/> - <pair l="K" r="OE" v="-97"/> - <pair l="K" r="Oacute" v="-104"/> - <pair l="K" r="Odieresis" v="-104"/> - <pair l="K" r="S" v="10"/> - <pair l="K" r="T" v="-8"/> - <pair l="K" r="a" v="-9"/> - <pair l="K" r="adieresis" v="-9"/> - <pair l="K" r="ae" v="-9"/> - <pair l="K" r="aring" v="-9"/> - <pair l="K" r="e" v="-69"/> - <pair l="K" r="hyphen" v="-221"/> - <pair l="K" r="o" v="-58"/> - <pair l="K" r="oacute" v="-58"/> - <pair l="K" r="odieresis" v="-58"/> - <pair l="K" r="u" v="-27"/> - <pair l="K" r="udieresis" v="-27"/> - <pair l="K" r="y" v="-168"/> - <pair l="L" r="A" v="54"/> - <pair l="L" r="AE" v="54"/> - <pair l="L" r="Aacute" v="54"/> - <pair l="L" r="Adieresis" v="54"/> - <pair l="L" r="Aring" v="54"/> - <pair l="L" r="C" v="-40"/> - <pair l="L" r="Ccedilla" v="-46"/> - <pair l="L" r="G" v="-41"/> - <pair l="L" r="O" v="-33"/> - <pair l="L" r="Oacute" v="-33"/> - <pair l="L" r="Ocircumflex" v="-33"/> - <pair l="L" r="Odieresis" v="-33"/> - <pair l="L" r="Ograve" v="-33"/> - <pair l="L" r="Otilde" v="-33"/> - <pair l="L" r="S" v="-5"/> - <pair l="L" r="T" v="-101"/> - <pair l="L" r="U" v="-65"/> - <pair l="L" r="Udieresis" v="-65"/> - <pair l="L" r="V" v="-229"/> - <pair l="L" r="W" v="-164"/> - <pair l="L" r="Y" v="-166"/> - <pair l="L" r="hyphen" v="-63"/> - <pair l="L" r="quotedblright" v="-298"/> - <pair l="L" r="quoteright" v="-340"/> - <pair l="L" r="u" v="-21"/> - <pair l="L" r="udieresis" v="-21"/> - <pair l="L" r="y" v="-139"/> - <pair l="N" r="A" v="-37"/> - <pair l="N" r="AE" v="-37"/> - <pair l="N" r="Aacute" v="-37"/> - <pair l="N" r="Adieresis" v="-37"/> - <pair l="N" r="Aring" v="-37"/> - <pair l="N" r="C" v="-50"/> - <pair l="N" r="Ccedilla" v="-50"/> - <pair l="N" r="G" v="-53"/> - <pair l="N" r="O" v="-48"/> - <pair l="N" r="Oacute" v="-48"/> - <pair l="N" r="Odieresis" v="-48"/> - <pair l="N" r="a" v="-69"/> - <pair l="N" r="aacute" v="-69"/> - <pair l="N" r="adieresis" v="-49"/> - <pair l="N" r="ae" v="-69"/> - <pair l="N" r="aring" v="-69"/> - <pair l="N" r="comma" v="-37"/> - <pair l="N" r="e" v="-53"/> - <pair l="N" r="eacute" v="-53"/> - <pair l="N" r="o" v="-50"/> - <pair l="N" r="oacute" v="-50"/> - <pair l="N" r="odieresis" v="-50"/> - <pair l="N" r="oslash" v="-43"/> - <pair l="N" r="period" v="-38"/> - <pair l="N" r="u" v="-49"/> - <pair l="N" r="udieresis" v="-49"/> - <pair l="O" r="A" v="-95"/> - <pair l="O" r="AE" v="-95"/> - <pair l="O" r="Aacute" v="-95"/> - <pair l="O" r="Adieresis" v="-95"/> - <pair l="O" r="Aring" v="-95"/> - <pair l="O" r="T" v="-27"/> - <pair l="O" r="V" v="-89"/> - <pair l="O" r="W" v="-89"/> - <pair l="O" r="X" v="-101"/> - <pair l="O" r="Y" v="-89"/> - <pair l="Oacute" r="A" v="-95"/> - <pair l="Oacute" r="T" v="-27"/> - <pair l="Oacute" r="V" v="-89"/> - <pair l="Oacute" r="W" v="-89"/> - <pair l="Oacute" r="Y" v="-89"/> - <pair l="Ocircumflex" r="T" v="-27"/> - <pair l="Ocircumflex" r="V" v="-89"/> - <pair l="Ocircumflex" r="Y" v="-89"/> - <pair l="Odieresis" r="A" v="-95"/> - <pair l="Odieresis" r="T" v="-27"/> - <pair l="Odieresis" r="V" v="-89"/> - <pair l="Odieresis" r="W" v="-89"/> - <pair l="Odieresis" r="X" v="-101"/> - <pair l="Odieresis" r="Y" v="-89"/> - <pair l="Ograve" r="T" v="-27"/> - <pair l="Ograve" r="V" v="-89"/> - <pair l="Ograve" r="Y" v="-89"/> - <pair l="Oslash" r="A" v="-96"/> - <pair l="Otilde" r="T" v="-27"/> - <pair l="Otilde" r="V" v="-89"/> - <pair l="Otilde" r="Y" v="-89"/> - <pair l="P" r="A" v="-174"/> - <pair l="P" r="AE" v="-174"/> - <pair l="P" r="Aacute" v="-174"/> - <pair l="P" r="Adieresis" v="-174"/> - <pair l="P" r="Aring" v="-174"/> - <pair l="P" r="J" v="-86"/> - <pair l="P" r="a" v="-26"/> - <pair l="P" r="aacute" v="-26"/> - <pair l="P" r="adieresis" v="-26"/> - <pair l="P" r="ae" v="-26"/> - <pair l="P" r="aring" v="-26"/> - <pair l="P" r="comma" v="-208"/> - <pair l="P" r="e" v="-33"/> - <pair l="P" r="eacute" v="-33"/> - <pair l="P" r="hyphen" v="-46"/> - <pair l="P" r="o" v="-30"/> - <pair l="P" r="oacute" v="-30"/> - <pair l="P" r="odieresis" v="-30"/> - <pair l="P" r="oe" v="-32"/> - <pair l="P" r="oslash" v="-30"/> - <pair l="P" r="period" v="-209"/> - <pair l="R" r="C" v="-99"/> - <pair l="R" r="Ccedilla" v="-99"/> - <pair l="R" r="G" v="-102"/> - <pair l="R" r="O" v="-96"/> - <pair l="R" r="OE" v="-94"/> - <pair l="R" r="Oacute" v="-96"/> - <pair l="R" r="Odieresis" v="-96"/> - <pair l="R" r="T" v="-70"/> - <pair l="R" r="U" v="-116"/> - <pair l="R" r="Udieresis" v="-116"/> - <pair l="R" r="V" v="-108"/> - <pair l="R" r="W" v="-108"/> - <pair l="R" r="Y" v="-108"/> - <pair l="R" r="a" v="-6"/> - <pair l="R" r="aacute" v="-6"/> - <pair l="R" r="adieresis" v="-6"/> - <pair l="R" r="ae" v="-6"/> - <pair l="R" r="aring" v="-6"/> - <pair l="R" r="e" v="-66"/> - <pair l="R" r="eacute" v="-66"/> - <pair l="R" r="hyphen" v="-128"/> - <pair l="R" r="o" v="-56"/> - <pair l="R" r="oacute" v="-56"/> - <pair l="R" r="odieresis" v="-56"/> - <pair l="R" r="oe" v="-58"/> - <pair l="R" r="u" v="-25"/> - <pair l="R" r="uacute" v="-25"/> - <pair l="R" r="udieresis" v="-25"/> - <pair l="R" r="y" v="-62"/> - <pair l="S" r="A" v="-43"/> - <pair l="S" r="AE" v="-43"/> - <pair l="S" r="Aacute" v="-43"/> - <pair l="S" r="Adieresis" v="-43"/> - <pair l="S" r="Aring" v="-43"/> - <pair l="S" r="T" v="-26"/> - <pair l="S" r="V" v="-10"/> - <pair l="S" r="W" v="-10"/> - <pair l="S" r="Y" v="-10"/> - <pair l="S" r="t" v="-40"/> - <pair l="T" r="A" v="-77"/> - <pair l="T" r="AE" v="-77"/> - <pair l="T" r="Aacute" v="-77"/> - <pair l="T" r="Acircumflex" v="-77"/> - <pair l="T" r="Adieresis" v="-77"/> - <pair l="T" r="Agrave" v="-77"/> - <pair l="T" r="Aring" v="-77"/> - <pair l="T" r="Atilde" v="-77"/> - <pair l="T" r="C" v="-28"/> - <pair l="T" r="G" v="-31"/> - <pair l="T" r="J" v="-30"/> - <pair l="T" r="O" v="-27"/> - <pair l="T" r="OE" v="-24"/> - <pair l="T" r="Oacute" v="-27"/> - <pair l="T" r="Ocircumflex" v="-27"/> - <pair l="T" r="Odieresis" v="-27"/> - <pair l="T" r="Ograve" v="-27"/> - <pair l="T" r="Oslash" v="-27"/> - <pair l="T" r="Otilde" v="-27"/> - <pair l="T" r="S" v="-4"/> - <pair l="T" r="V" v="63"/> - <pair l="T" r="W" v="63"/> - <pair l="T" r="Y" v="63"/> - <pair l="T" r="a" v="-155"/> - <pair l="T" r="ae" v="-155"/> - <pair l="T" r="c" v="-198"/> - <pair l="T" r="colon" v="-157"/> - <pair l="T" r="comma" v="-143"/> - <pair l="T" r="e" v="-192"/> - <pair l="T" r="g" v="-166"/> - <pair l="T" r="guillemotleft" v="-218"/> - <pair l="T" r="guilsinglleft" v="-224"/> - <pair l="T" r="hyphen" v="-155"/> - <pair l="T" r="i" v="-42"/> - <pair l="T" r="j" v="-77"/> - <pair l="T" r="o" v="-189"/> - <pair l="T" r="oslash" v="-129"/> - <pair l="T" r="period" v="-143"/> - <pair l="T" r="r" v="-101"/> - <pair l="T" r="s" v="-133"/> - <pair l="T" r="semicolon" v="-157"/> - <pair l="T" r="u" v="-174"/> - <pair l="T" r="v" v="-190"/> - <pair l="T" r="w" v="-190"/> - <pair l="T" r="y" v="-190"/> - <pair l="U" r="A" v="-106"/> - <pair l="U" r="AE" v="-106"/> - <pair l="U" r="Aacute" v="-106"/> - <pair l="U" r="Acircumflex" v="-106"/> - <pair l="U" r="Adieresis" v="-106"/> - <pair l="U" r="Aring" v="-106"/> - <pair l="U" r="Atilde" v="-106"/> - <pair l="U" r="comma" v="-66"/> - <pair l="U" r="m" v="-54"/> - <pair l="U" r="n" v="-54"/> - <pair l="U" r="p" v="-35"/> - <pair l="U" r="period" v="-61"/> - <pair l="U" r="r" v="-51"/> - <pair l="Uacute" r="A" v="-106"/> - <pair l="Uacute" r="comma" v="-66"/> - <pair l="Uacute" r="m" v="-54"/> - <pair l="Uacute" r="n" v="-54"/> - <pair l="Uacute" r="p" v="-35"/> - <pair l="Uacute" r="period" v="-61"/> - <pair l="Uacute" r="r" v="-51"/> - <pair l="Ucircumflex" r="A" v="-106"/> - <pair l="Udieresis" r="A" v="-106"/> - <pair l="Udieresis" r="b" v="38"/> - <pair l="Udieresis" r="comma" v="-66"/> - <pair l="Udieresis" r="m" v="-54"/> - <pair l="Udieresis" r="n" v="-54"/> - <pair l="Udieresis" r="p" v="-35"/> - <pair l="Udieresis" r="period" v="-61"/> - <pair l="Udieresis" r="r" v="-51"/> - <pair l="Ugrave" r="A" v="-106"/> - <pair l="V" r="A" v="-229"/> - <pair l="V" r="AE" v="-248"/> - <pair l="V" r="Aacute" v="-229"/> - <pair l="V" r="Acircumflex" v="-229"/> - <pair l="V" r="Adieresis" v="-229"/> - <pair l="V" r="Agrave" v="-229"/> - <pair l="V" r="Aring" v="-229"/> - <pair l="V" r="Atilde" v="-229"/> - <pair l="V" r="C" v="-93"/> - <pair l="V" r="G" v="-96"/> - <pair l="V" r="O" v="-92"/> - <pair l="V" r="Oacute" v="-92"/> - <pair l="V" r="Ocircumflex" v="-92"/> - <pair l="V" r="Odieresis" v="-92"/> - <pair l="V" r="Ograve" v="-92"/> - <pair l="V" r="Oslash" v="-89"/> - <pair l="V" r="Otilde" v="-92"/> - <pair l="V" r="S" v="-43"/> - <pair l="V" r="T" v="61"/> - <pair l="V" r="a" v="-140"/> - <pair l="V" r="ae" v="-140"/> - <pair l="V" r="colon" v="-125"/> - <pair l="V" r="comma" v="-215"/> - <pair l="V" r="e" v="-156"/> - <pair l="V" r="g" v="-149"/> - <pair l="V" r="guillemotleft" v="-184"/> - <pair l="V" r="guilsinglleft" v="-190"/> - <pair l="V" r="hyphen" v="-113"/> - <pair l="V" r="i" v="-28"/> - <pair l="V" r="o" v="-153"/> - <pair l="V" r="oslash" v="-153"/> - <pair l="V" r="period" v="-214"/> - <pair l="V" r="r" v="-65"/> - <pair l="V" r="semicolon" v="-121"/> - <pair l="V" r="u" v="-59"/> - <pair l="V" r="y" v="-53"/> - <pair l="W" r="A" v="-200"/> - <pair l="W" r="AE" v="-200"/> - <pair l="W" r="Aacute" v="-200"/> - <pair l="W" r="Acircumflex" v="-200"/> - <pair l="W" r="Adieresis" v="-200"/> - <pair l="W" r="Agrave" v="-200"/> - <pair l="W" r="Aring" v="-200"/> - <pair l="W" r="Atilde" v="-200"/> - <pair l="W" r="C" v="-93"/> - <pair l="W" r="G" v="-97"/> - <pair l="W" r="O" v="-92"/> - <pair l="W" r="Oacute" v="-92"/> - <pair l="W" r="Ocircumflex" v="-92"/> - <pair l="W" r="Odieresis" v="-92"/> - <pair l="W" r="Ograve" v="-92"/> - <pair l="W" r="Oslash" v="-89"/> - <pair l="W" r="Otilde" v="-92"/> - <pair l="W" r="S" v="-44"/> - <pair l="W" r="T" v="61"/> - <pair l="W" r="a" v="-137"/> - <pair l="W" r="ae" v="-137"/> - <pair l="W" r="colon" v="-124"/> - <pair l="W" r="comma" v="-175"/> - <pair l="W" r="e" v="-141"/> - <pair l="W" r="g" v="-143"/> - <pair l="W" r="guillemotleft" v="-160"/> - <pair l="W" r="guilsinglleft" v="-166"/> - <pair l="W" r="hyphen" v="-91"/> - <pair l="W" r="i" v="-28"/> - <pair l="W" r="o" v="-137"/> - <pair l="W" r="oslash" v="-131"/> - <pair l="W" r="period" v="-174"/> - <pair l="W" r="r" v="-65"/> - <pair l="W" r="semicolon" v="-121"/> - <pair l="W" r="u" v="-59"/> - <pair l="W" r="y" v="-53"/> - <pair l="X" r="C" v="-111"/> - <pair l="X" r="O" v="-102"/> - <pair l="X" r="Odieresis" v="-102"/> - <pair l="X" r="Q" v="-101"/> - <pair l="X" r="a" v="-7"/> - <pair l="X" r="e" v="-67"/> - <pair l="X" r="hyphen" v="-138"/> - <pair l="X" r="o" v="-57"/> - <pair l="X" r="u" v="-25"/> - <pair l="X" r="y" v="-138"/> - <pair l="Y" r="A" v="-150"/> - <pair l="Y" r="AE" v="-150"/> - <pair l="Y" r="Aacute" v="-150"/> - <pair l="Y" r="Acircumflex" v="-150"/> - <pair l="Y" r="Adieresis" v="-150"/> - <pair l="Y" r="Agrave" v="-150"/> - <pair l="Y" r="Aring" v="-150"/> - <pair l="Y" r="Atilde" v="-150"/> - <pair l="Y" r="C" v="-92"/> - <pair l="Y" r="G" v="-96"/> - <pair l="Y" r="O" v="-92"/> - <pair l="Y" r="Oacute" v="-92"/> - <pair l="Y" r="Ocircumflex" v="-92"/> - <pair l="Y" r="Odieresis" v="-92"/> - <pair l="Y" r="Ograve" v="-92"/> - <pair l="Y" r="Oslash" v="-89"/> - <pair l="Y" r="Otilde" v="-92"/> - <pair l="Y" r="S" v="-43"/> - <pair l="Y" r="T" v="61"/> - <pair l="Y" r="a" v="-202"/> - <pair l="Y" r="ae" v="-202"/> - <pair l="Y" r="colon" v="-181"/> - <pair l="Y" r="comma" v="-217"/> - <pair l="Y" r="e" v="-224"/> - <pair l="Y" r="g" v="-218"/> - <pair l="Y" r="guillemotleft" v="-279"/> - <pair l="Y" r="guilsinglleft" v="-285"/> - <pair l="Y" r="hyphen" v="-211"/> - <pair l="Y" r="i" v="-28"/> - <pair l="Y" r="o" v="-220"/> - <pair l="Y" r="oslash" v="-203"/> - <pair l="Y" r="p" v="-102"/> - <pair l="Y" r="period" v="-217"/> - <pair l="Y" r="semicolon" v="-174"/> - <pair l="Y" r="u" v="-115"/> - <pair l="Y" r="v" v="-109"/> - <pair l="Z" r="v" v="-96"/> - <pair l="Z" r="y" v="-96"/> - <pair l="a" r="j" v="-73"/> - <pair l="a" r="quoteright" v="-84"/> - <pair l="a" r="v" v="-28"/> - <pair l="a" r="w" v="-28"/> - <pair l="a" r="y" v="-28"/> - <pair l="aacute" r="v" v="-28"/> - <pair l="aacute" r="w" v="-28"/> - <pair l="aacute" r="y" v="-28"/> - <pair l="adieresis" r="v" v="-28"/> - <pair l="adieresis" r="w" v="-28"/> - <pair l="adieresis" r="y" v="-28"/> - <pair l="ae" r="v" v="-20"/> - <pair l="ae" r="w" v="-20"/> - <pair l="ae" r="y" v="-20"/> - <pair l="agrave" r="v" v="-28"/> - <pair l="agrave" r="w" v="-28"/> - <pair l="agrave" r="y" v="-28"/> - <pair l="aring" r="v" v="-28"/> - <pair l="aring" r="w" v="-28"/> - <pair l="aring" r="y" v="-28"/> - <pair l="b" r="v" v="-36"/> - <pair l="b" r="w" v="-36"/> - <pair l="b" r="y" v="-36"/> - <pair l="c" r="h" v="11"/> - <pair l="c" r="k" v="14"/> - <pair l="comma" r="one" v="-51"/> - <pair l="comma" r="quotedblright" v="-84"/> - <pair l="comma" r="quoteright" v="-126"/> - <pair l="e" r="quoteright" v="-65"/> - <pair l="e" r="t" v="-26"/> - <pair l="e" r="v" v="-21"/> - <pair l="e" r="w" v="-21"/> - <pair l="e" r="x" v="27"/> - <pair l="e" r="y" v="-21"/> - <pair l="eacute" r="v" v="-21"/> - <pair l="eacute" r="w" v="-21"/> - <pair l="eacute" r="y" v="-21"/> - <pair l="ecircumflex" r="v" v="-21"/> - <pair l="ecircumflex" r="w" v="-21"/> - <pair l="ecircumflex" r="y" v="-21"/> - <pair l="eight" r="four" v="41"/> - <pair l="eight" r="one" v="-48"/> - <pair l="eight" r="seven" v="-34"/> - <pair l="f" r="a" v="-60"/> - <pair l="f" r="aacute" v="-60"/> - <pair l="f" r="adieresis" v="-16"/> - <pair l="f" r="ae" v="-60"/> - <pair l="f" r="aring" v="-45"/> - <pair l="f" r="e" v="-90"/> - <pair l="f" r="eacute" v="-77"/> - <pair l="f" r="f" v="0"/> - <pair l="f" r="i" v="-5"/> - <pair l="f" r="j" v="-52"/> - <pair l="f" r="l" v="55"/> - <pair l="f" r="o" v="-87"/> - <pair l="f" r="oacute" v="-87"/> - <pair l="f" r="odieresis" v="-35"/> - <pair l="f" r="oe" v="-89"/> - <pair l="f" r="oslash" v="-52"/> - <pair l="f" r="quoteright" v="-26"/> - <pair l="f" r="s" v="-51"/> - <pair l="f" r="t" v="11"/> - <pair l="five" r="four" v="7"/> - <pair l="five" r="one" v="-60"/> - <pair l="five" r="seven" v="-49"/> - <pair l="four" r="four" v="41"/> - <pair l="four" r="one" v="-16"/> - <pair l="four" r="seven" v="-43"/> - <pair l="g" r="a" v="-53"/> - <pair l="g" r="adieresis" v="-53"/> - <pair l="g" r="ae" v="-53"/> - <pair l="g" r="aring" v="-53"/> - <pair l="g" r="e" v="-77"/> - <pair l="g" r="eacute" v="-77"/> - <pair l="g" r="l" v="-11"/> - <pair l="g" r="oacute" v="-73"/> - <pair l="g" r="odieresis" v="-73"/> - <pair l="g" r="r" v="22"/> - <pair l="guillemotright" r="A" v="-105"/> - <pair l="guillemotright" r="AE" v="-136"/> - <pair l="guillemotright" r="Aacute" v="-105"/> - <pair l="guillemotright" r="Adieresis" v="-105"/> - <pair l="guillemotright" r="Aring" v="-105"/> - <pair l="guillemotright" r="T" v="-218"/> - <pair l="guillemotright" r="V" v="-195"/> - <pair l="guillemotright" r="W" v="-141"/> - <pair l="guillemotright" r="Y" v="-271"/> - <pair l="guilsinglright" r="A" v="-110"/> - <pair l="guilsinglright" r="AE" v="-141"/> - <pair l="guilsinglright" r="Aacute" v="-110"/> - <pair l="guilsinglright" r="Adieresis" v="-110"/> - <pair l="guilsinglright" r="Aring" v="-110"/> - <pair l="guilsinglright" r="T" v="-223"/> - <pair l="guilsinglright" r="V" v="-200"/> - <pair l="guilsinglright" r="W" v="-146"/> - <pair l="guilsinglright" r="Y" v="-276"/> - <pair l="h" r="quoteright" v="-80"/> - <pair l="h" r="y" v="-23"/> - <pair l="hyphen" r="A" v="-58"/> - <pair l="hyphen" r="AE" v="-96"/> - <pair l="hyphen" r="Aacute" v="-58"/> - <pair l="hyphen" r="Adieresis" v="-58"/> - <pair l="hyphen" r="Aring" v="-58"/> - <pair l="hyphen" r="T" v="-154"/> - <pair l="hyphen" r="V" v="-122"/> - <pair l="hyphen" r="W" v="-71"/> - <pair l="hyphen" r="Y" v="-202"/> - <pair l="i" r="T" v="-35"/> - <pair l="i" r="j" v="-86"/> - <pair l="k" r="a" v="-9"/> - <pair l="k" r="aacute" v="-9"/> - <pair l="k" r="adieresis" v="-9"/> - <pair l="k" r="ae" v="-9"/> - <pair l="k" r="aring" v="-9"/> - <pair l="k" r="comma" v="2"/> - <pair l="k" r="e" v="-69"/> - <pair l="k" r="eacute" v="-69"/> - <pair l="k" r="g" v="-19"/> - <pair l="k" r="hyphen" v="-134"/> - <pair l="k" r="o" v="-58"/> - <pair l="k" r="oacute" v="-58"/> - <pair l="k" r="odieresis" v="-58"/> - <pair l="k" r="period" v="2"/> - <pair l="k" r="s" v="12"/> - <pair l="k" r="u" v="15"/> - <pair l="k" r="udieresis" v="15"/> - <pair l="l" r="v" v="-29"/> - <pair l="l" r="y" v="-29"/> - <pair l="m" r="p" v="-6"/> - <pair l="m" r="v" v="-25"/> - <pair l="m" r="w" v="-25"/> - <pair l="m" r="y" v="-25"/> - <pair l="n" r="T" v="-89"/> - <pair l="n" r="p" v="-3"/> - <pair l="n" r="quoteright" v="-80"/> - <pair l="n" r="v" v="-23"/> - <pair l="n" r="w" v="-23"/> - <pair l="n" r="y" v="-23"/> - <pair l="nine" r="four" v="30"/> - <pair l="nine" r="one" v="-67"/> - <pair l="nine" r="seven" v="-50"/> - <pair l="o" r="T" v="-190"/> - <pair l="o" r="quoteright" v="-88"/> - <pair l="o" r="t" v="-18"/> - <pair l="o" r="v" v="-54"/> - <pair l="o" r="w" v="-54"/> - <pair l="o" r="x" v="-54"/> - <pair l="o" r="y" v="-54"/> - <pair l="oacute" r="v" v="-54"/> - <pair l="oacute" r="w" v="-54"/> - <pair l="oacute" r="y" v="-54"/> - <pair l="ocircumflex" r="t" v="-18"/> - <pair l="odieresis" r="t" v="-18"/> - <pair l="odieresis" r="v" v="-54"/> - <pair l="odieresis" r="w" v="-54"/> - <pair l="odieresis" r="x" v="-54"/> - <pair l="odieresis" r="y" v="-54"/> - <pair l="ograve" r="v" v="-54"/> - <pair l="ograve" r="w" v="-54"/> - <pair l="ograve" r="y" v="-54"/> - <pair l="one" r="comma" v="-52"/> - <pair l="one" r="eight" v="-72"/> - <pair l="one" r="five" v="-50"/> - <pair l="one" r="four" v="-139"/> - <pair l="one" r="nine" v="-46"/> - <pair l="one" r="one" v="-50"/> - <pair l="one" r="period" v="-52"/> - <pair l="one" r="seven" v="-78"/> - <pair l="one" r="six" v="-109"/> - <pair l="one" r="three" v="-32"/> - <pair l="one" r="two" v="-20"/> - <pair l="one" r="zero" v="-112"/> - <pair l="p" r="t" v="-17"/> - <pair l="p" r="y" v="-36"/> - <pair l="period" r="one" v="-51"/> - <pair l="period" r="quotedblright" v="-86"/> - <pair l="period" r="quoteright" v="-128"/> - <pair l="q" r="c" v="-20"/> - <pair l="q" r="u" v="-6"/> - <pair l="quotedblbase" r="A" v="18"/> - <pair l="quotedblbase" r="AE" v="18"/> - <pair l="quotedblbase" r="T" v="-137"/> - <pair l="quotedblbase" r="V" v="-223"/> - <pair l="quotedblbase" r="W" v="-143"/> - <pair l="quotedblbase" r="Y" v="-202"/> - <pair l="quotedblleft" r="A" v="-217"/> - <pair l="quotedblleft" r="AE" v="-306"/> - <pair l="quotedblleft" r="Aacute" v="-217"/> - <pair l="quotedblleft" r="Adieresis" v="-217"/> - <pair l="quotedblleft" r="Aring" v="-217"/> - <pair l="quotedblleft" r="T" v="-9"/> - <pair l="quotedblleft" r="V" v="-10"/> - <pair l="quotedblleft" r="W" v="-10"/> - <pair l="quotedblleft" r="Y" v="-10"/> - <pair l="quotedblright" r="A" v="-210"/> - <pair l="quotedblright" r="AE" v="-303"/> - <pair l="quotedblright" r="Aacute" v="-210"/> - <pair l="quotedblright" r="Adieresis" v="-210"/> - <pair l="quotedblright" r="Aring" v="-210"/> - <pair l="quotedblright" r="T" v="2"/> - <pair l="quotedblright" r="V" v="18"/> - <pair l="quotedblright" r="W" v="18"/> - <pair l="quotedblright" r="Y" v="18"/> - <pair l="quoteleft" r="A" v="-258"/> - <pair l="quoteleft" r="AE" v="-347"/> - <pair l="quoteleft" r="Aacute" v="-258"/> - <pair l="quoteleft" r="Adieresis" v="-258"/> - <pair l="quoteleft" r="Aring" v="-258"/> - <pair l="quoteleft" r="T" v="-51"/> - <pair l="quoteleft" r="V" v="-52"/> - <pair l="quoteleft" r="W" v="-52"/> - <pair l="quoteleft" r="Y" v="-52"/> - <pair l="quoteright" r="A" v="-251"/> - <pair l="quoteright" r="AE" v="-344"/> - <pair l="quoteright" r="Aacute" v="-251"/> - <pair l="quoteright" r="Adieresis" v="-251"/> - <pair l="quoteright" r="Aring" v="-251"/> - <pair l="quoteright" r="comma" v="-136"/> - <pair l="quoteright" r="d" v="-101"/> - <pair l="quoteright" r="o" v="-96"/> - <pair l="quoteright" r="period" v="-138"/> - <pair l="quoteright" r="r" v="-64"/> - <pair l="quoteright" r="s" v="-79"/> - <pair l="quoteright" r="t" v="-61"/> - <pair l="quoteright" r="v" v="-50"/> - <pair l="quoteright" r="w" v="-50"/> - <pair l="quoteright" r="y" v="-50"/> - <pair l="r" r="a" v="-23"/> - <pair l="r" r="aacute" v="-23"/> - <pair l="r" r="acircumflex" v="-23"/> - <pair l="r" r="adieresis" v="-23"/> - <pair l="r" r="ae" v="-23"/> - <pair l="r" r="agrave" v="-23"/> - <pair l="r" r="aring" v="-23"/> - <pair l="r" r="c" v="2"/> - <pair l="r" r="ccedilla" v="6"/> - <pair l="r" r="colon" v="-16"/> - <pair l="r" r="comma" v="-97"/> - <pair l="r" r="d" v="3"/> - <pair l="r" r="e" v="4"/> - <pair l="r" r="eacute" v="4"/> - <pair l="r" r="ecircumflex" v="4"/> - <pair l="r" r="egrave" v="4"/> - <pair l="r" r="f" v="36"/> - <pair l="r" r="g" v="-2"/> - <pair l="r" r="h" v="-24"/> - <pair l="r" r="hyphen" v="-87"/> - <pair l="r" r="i" v="31"/> - <pair l="r" r="j" v="-15"/> - <pair l="r" r="k" v="-21"/> - <pair l="r" r="l" v="-41"/> - <pair l="r" r="m" v="36"/> - <pair l="r" r="n" v="36"/> - <pair l="r" r="o" v="7"/> - <pair l="r" r="oacute" v="7"/> - <pair l="r" r="ocircumflex" v="7"/> - <pair l="r" r="odieresis" v="7"/> - <pair l="r" r="oe" v="6"/> - <pair l="r" r="ograve" v="7"/> - <pair l="r" r="oslash" v="7"/> - <pair l="r" r="p" v="54"/> - <pair l="r" r="period" v="-97"/> - <pair l="r" r="q" v="3"/> - <pair l="r" r="quoteright" v="-18"/> - <pair l="r" r="r" v="39"/> - <pair l="r" r="s" v="4"/> - <pair l="r" r="semicolon" v="-16"/> - <pair l="r" r="t" v="42"/> - <pair l="r" r="u" v="48"/> - <pair l="r" r="v" v="54"/> - <pair l="r" r="w" v="54"/> - <pair l="r" r="x" v="54"/> - <pair l="r" r="y" v="54"/> - <pair l="r" r="z" v="9"/> - <pair l="s" r="quoteright" v="-97"/> - <pair l="s" r="t" v="-22"/> - <pair l="seven" r="colon" v="-111"/> - <pair l="seven" r="comma" v="-205"/> - <pair l="seven" r="eight" v="-13"/> - <pair l="seven" r="five" v="-13"/> - <pair l="seven" r="four" v="-174"/> - <pair l="seven" r="one" v="0"/> - <pair l="seven" r="period" v="-206"/> - <pair l="seven" r="seven" v="10"/> - <pair l="seven" r="six" v="-45"/> - <pair l="seven" r="three" v="12"/> - <pair l="seven" r="two" v="13"/> - <pair l="six" r="four" v="47"/> - <pair l="six" r="one" v="-46"/> - <pair l="six" r="seven" v="-35"/> - <pair l="t" r="S" v="-2"/> - <pair l="t" r="a" v="-18"/> - <pair l="t" r="aacute" v="-18"/> - <pair l="t" r="adieresis" v="-18"/> - <pair l="t" r="ae" v="-18"/> - <pair l="t" r="aring" v="-18"/> - <pair l="t" r="colon" v="-16"/> - <pair l="t" r="e" v="-52"/> - <pair l="t" r="eacute" v="-52"/> - <pair l="t" r="h" v="24"/> - <pair l="t" r="o" v="-49"/> - <pair l="t" r="oacute" v="-49"/> - <pair l="t" r="odieresis" v="-49"/> - <pair l="t" r="quoteright" v="-50"/> - <pair l="t" r="semicolon" v="-16"/> - <pair l="three" r="four" v="9"/> - <pair l="three" r="one" v="-74"/> - <pair l="three" r="seven" v="-60"/> - <pair l="two" r="four" v="-114"/> - <pair l="two" r="one" v="-48"/> - <pair l="two" r="seven" v="-42"/> - <pair l="u" r="quoteright" v="-80"/> - <pair l="v" r="a" v="-18"/> - <pair l="v" r="aacute" v="-18"/> - <pair l="v" r="acircumflex" v="-18"/> - <pair l="v" r="adieresis" v="-18"/> - <pair l="v" r="ae" v="-18"/> - <pair l="v" r="agrave" v="-18"/> - <pair l="v" r="aring" v="-18"/> - <pair l="v" r="atilde" v="-18"/> - <pair l="v" r="c" v="-67"/> - <pair l="v" r="colon" v="-11"/> - <pair l="v" r="comma" v="-142"/> - <pair l="v" r="e" v="-55"/> - <pair l="v" r="eacute" v="-55"/> - <pair l="v" r="ecircumflex" v="-55"/> - <pair l="v" r="egrave" v="-55"/> - <pair l="v" r="g" v="-36"/> - <pair l="v" r="hyphen" v="-40"/> - <pair l="v" r="l" v="-36"/> - <pair l="v" r="o" v="-53"/> - <pair l="v" r="oacute" v="-53"/> - <pair l="v" r="odieresis" v="-53"/> - <pair l="v" r="ograve" v="-53"/> - <pair l="v" r="oslash" v="-53"/> - <pair l="v" r="period" v="-143"/> - <pair l="v" r="s" v="-16"/> - <pair l="v" r="semicolon" v="-11"/> - <pair l="w" r="a" v="-19"/> - <pair l="w" r="aacute" v="-19"/> - <pair l="w" r="acircumflex" v="-19"/> - <pair l="w" r="adieresis" v="-19"/> - <pair l="w" r="ae" v="-19"/> - <pair l="w" r="agrave" v="-19"/> - <pair l="w" r="aring" v="-19"/> - <pair l="w" r="atilde" v="-19"/> - <pair l="w" r="c" v="-68"/> - <pair l="w" r="colon" v="-12"/> - <pair l="w" r="comma" v="-120"/> - <pair l="w" r="e" v="-56"/> - <pair l="w" r="eacute" v="-56"/> - <pair l="w" r="ecircumflex" v="-56"/> - <pair l="w" r="egrave" v="-56"/> - <pair l="w" r="g" v="-37"/> - <pair l="w" r="hyphen" v="-32"/> - <pair l="w" r="l" v="-37"/> - <pair l="w" r="o" v="-54"/> - <pair l="w" r="oacute" v="-54"/> - <pair l="w" r="odieresis" v="-54"/> - <pair l="w" r="ograve" v="-54"/> - <pair l="w" r="oslash" v="-54"/> - <pair l="w" r="period" v="-121"/> - <pair l="w" r="s" v="-17"/> - <pair l="w" r="semicolon" v="-12"/> - <pair l="x" r="a" v="-9"/> - <pair l="x" r="c" v="-77"/> - <pair l="x" r="e" v="-69"/> - <pair l="x" r="eacute" v="-69"/> - <pair l="x" r="o" v="-59"/> - <pair l="x" r="q" v="-40"/> - <pair l="y" r="a" v="-18"/> - <pair l="y" r="aacute" v="-18"/> - <pair l="y" r="acircumflex" v="-18"/> - <pair l="y" r="adieresis" v="-18"/> - <pair l="y" r="ae" v="-18"/> - <pair l="y" r="agrave" v="-18"/> - <pair l="y" r="aring" v="-18"/> - <pair l="y" r="atilde" v="-18"/> - <pair l="y" r="c" v="-67"/> - <pair l="y" r="colon" v="-11"/> - <pair l="y" r="comma" v="-142"/> - <pair l="y" r="e" v="-55"/> - <pair l="y" r="eacute" v="-55"/> - <pair l="y" r="ecircumflex" v="-55"/> - <pair l="y" r="egrave" v="-55"/> - <pair l="y" r="g" v="-36"/> - <pair l="y" r="hyphen" v="-39"/> - <pair l="y" r="l" v="-36"/> - <pair l="y" r="o" v="-53"/> - <pair l="y" r="oacute" v="-53"/> - <pair l="y" r="odieresis" v="-53"/> - <pair l="y" r="ograve" v="-53"/> - <pair l="y" r="oslash" v="-53"/> - <pair l="y" r="period" v="-142"/> - <pair l="y" r="s" v="-16"/> - <pair l="y" r="semicolon" v="-11"/> - <pair l="zero" r="four" v="30"/> - <pair l="zero" r="one" v="-78"/> - <pair l="zero" r="seven" v="-60"/> - </kernsubtable> - </kern> - - <name> - <namerecord nameID="0" platformID="1" platEncID="0" langID="0x0"> - Copyright (c) 2001 by Bigelow & Holmes Inc. Instructions copyright (c) 2001 by URW++. - </namerecord> - <namerecord nameID="1" platformID="1" platEncID="0" langID="0x0"> - Luxi Serif - </namerecord> - <namerecord nameID="2" platformID="1" platEncID="0" langID="0x0"> - Regular - </namerecord> - <namerecord nameID="3" platformID="1" platEncID="0" langID="0x0"> - Luxi Serif Regular: B&H - </namerecord> - <namerecord nameID="4" platformID="1" platEncID="0" langID="0x0"> - Luxi Serif Regular - </namerecord> - <namerecord nameID="5" platformID="1" platEncID="0" langID="0x0"> - 1.2 : October 12, 2001 - </namerecord> - <namerecord nameID="6" platformID="1" platEncID="0" langID="0x0"> - LuxiSerif - </namerecord> - <namerecord nameID="7" platformID="1" platEncID="0" langID="0x0"> - Luxi is a registered trademark of Bigelow & Holmes Inc. - </namerecord> - <namerecord nameID="8" platformID="1" platEncID="0" langID="0x0"> - Bigelow & Holmes Inc. - </namerecord> - <namerecord nameID="9" platformID="1" platEncID="0" langID="0x0"> - Kris Holmes and Charles Bigelow - </namerecord> - <namerecord nameID="11" platformID="1" platEncID="0" langID="0x0"> - http://www.urwpp.de - </namerecord> - <namerecord nameID="12" platformID="1" platEncID="0" langID="0x0"> - design@bigelowandholmes.com - </namerecord> - <namerecord nameID="0" platformID="3" platEncID="1" langID="0x409"> - Copyright (c) 2001 by Bigelow & Holmes Inc. Instructions copyright (c) 2001 by URW++. - </namerecord> - <namerecord nameID="1" platformID="3" platEncID="1" langID="0x409"> - Luxi Serif - </namerecord> - <namerecord nameID="2" platformID="3" platEncID="1" langID="0x409"> - Regular - </namerecord> - <namerecord nameID="3" platformID="3" platEncID="1" langID="0x409"> - Luxi Serif Regular: B&H - </namerecord> - <namerecord nameID="4" platformID="3" platEncID="1" langID="0x409"> - Luxi Serif Regular - </namerecord> - <namerecord nameID="5" platformID="3" platEncID="1" langID="0x409"> - 1.2 : October 12, 2001 - </namerecord> - <namerecord nameID="6" platformID="3" platEncID="1" langID="0x409"> - LuxiSerif - </namerecord> - <namerecord nameID="7" platformID="3" platEncID="1" langID="0x409"> - Luxi is a registered trademark of Bigelow & Holmes Inc. - </namerecord> - <namerecord nameID="8" platformID="3" platEncID="1" langID="0x409"> - Bigelow & Holmes Inc. - </namerecord> - <namerecord nameID="9" platformID="3" platEncID="1" langID="0x409"> - Kris Holmes and Charles Bigelow - </namerecord> - <namerecord nameID="11" platformID="3" platEncID="1" langID="0x409"> - http://www.urwpp.de - </namerecord> - <namerecord nameID="12" platformID="3" platEncID="1" langID="0x409"> - design@bigelowandholmes.com - </namerecord> - </name> - - <post> - <formatType value="2.0"/> - <italicAngle value="0.0"/> - <underlinePosition value="0"/> - <underlineThickness value="0"/> - <isFixedPitch value="0"/> - <minMemType42 value="0"/> - <maxMemType42 value="0"/> - <minMemType1 value="0"/> - <maxMemType1 value="0"/> - <psNames> - <!-- This file uses unique glyph names based on the information - found in the 'post' table. Since these names might not be unique, - we have to invent artificial names in case of clashes. In order to - be able to retain the original information, we need a name to - ps name mapping for those cases where they differ. That's what - you see below. - --> - <psName name=".notdef#1" psName=".notdef"/> - <psName name=".notdef#10" psName=".notdef"/> - <psName name=".notdef#11" psName=".notdef"/> - <psName name=".notdef#12" psName=".notdef"/> - <psName name=".notdef#13" psName=".notdef"/> - <psName name=".notdef#14" psName=".notdef"/> - <psName name=".notdef#15" psName=".notdef"/> - <psName name=".notdef#16" psName=".notdef"/> - <psName name=".notdef#17" psName=".notdef"/> - <psName name=".notdef#18" psName=".notdef"/> - <psName name=".notdef#2" psName=".notdef"/> - <psName name=".notdef#3" psName=".notdef"/> - <psName name=".notdef#4" psName=".notdef"/> - <psName name=".notdef#5" psName=".notdef"/> - <psName name=".notdef#6" psName=".notdef"/> - <psName name=".notdef#7" psName=".notdef"/> - <psName name=".notdef#8" psName=".notdef"/> - <psName name=".notdef#9" psName=".notdef"/> - <psName name="Euro#1" psName="Euro"/> - <psName name="fi#1" psName="fi"/> - <psName name="fl#1" psName="fl"/> - <psName name="fraction#1" psName="fraction"/> - <psName name="hyphen#1" psName="hyphen"/> - <psName name="macron#1" psName="macron"/> - <psName name="periodcentered#1" psName="periodcentered"/> - <psName name="semicolon#1" psName="semicolon"/> - </psNames> - <extraNames> - <!-- following are the name that are not taken from the standard Mac glyph order --> - <psName name="fraction"/> - <psName name="fi"/> - <psName name="Euro"/> - <psName name="tilde"/> - <psName name="macron"/> - <psName name="Euro"/> - <psName name="sfthyphen"/> - <psName name="periodcentered"/> - <psName name="Amacron"/> - <psName name="amacron"/> - <psName name="Abreve"/> - <psName name="abreve"/> - <psName name="Aogonek"/> - <psName name="aogonek"/> - <psName name="Ccircumflex"/> - <psName name="ccircumflex"/> - <psName name="Cdotaccent"/> - <psName name="cdotaccent"/> - <psName name="Dcaron"/> - <psName name="dcaron"/> - <psName name="Dcroat"/> - <psName name="dcroat"/> - <psName name="Emacron"/> - <psName name="emacron"/> - <psName name="Ebreve"/> - <psName name="ebreve"/> - <psName name="Edotaccent"/> - <psName name="edotaccent"/> - <psName name="Eogonek"/> - <psName name="eogonek"/> - <psName name="Ecaron"/> - <psName name="ecaron"/> - <psName name="Gcircumflex"/> - <psName name="gcircumflex"/> - <psName name="Gdotaccent"/> - <psName name="gdotaccent"/> - <psName name="Gcommaaccent"/> - <psName name="gcommaaccent"/> - <psName name="Hcircumflex"/> - <psName name="hcircumflex"/> - <psName name="Hbar"/> - <psName name="hbar"/> - <psName name="Itilde"/> - <psName name="itilde"/> - <psName name="Imacron"/> - <psName name="imacron"/> - <psName name="Ibreve"/> - <psName name="ibreve"/> - <psName name="Iogonek"/> - <psName name="iogonek"/> - <psName name="IJ"/> - <psName name="ij"/> - <psName name="Jcircumflex"/> - <psName name="jcircumflex"/> - <psName name="Kcommaaccent"/> - <psName name="kcommaaccent"/> - <psName name="kgreenlandic"/> - <psName name="Lacute"/> - <psName name="lacute"/> - <psName name="Lcommaaccent"/> - <psName name="lcommaaccent"/> - <psName name="Lcaron"/> - <psName name="lcaron"/> - <psName name="Ldot"/> - <psName name="ldot"/> - <psName name="Nacute"/> - <psName name="nacute"/> - <psName name="Ncommaaccent"/> - <psName name="ncommaaccent"/> - <psName name="Ncaron"/> - <psName name="ncaron"/> - <psName name="napostrophe"/> - <psName name="Eng"/> - <psName name="eng"/> - <psName name="Omacron"/> - <psName name="omacron"/> - <psName name="Obreve"/> - <psName name="obreve"/> - <psName name="Ohungarumlaut"/> - <psName name="ohungarumlaut"/> - <psName name="Racute"/> - <psName name="racute"/> - <psName name="Rcommaaccent"/> - <psName name="rcommaaccent"/> - <psName name="Rcaron"/> - <psName name="rcaron"/> - <psName name="Sacute"/> - <psName name="sacute"/> - <psName name="Scircumflex"/> - <psName name="scircumflex"/> - <psName name="Tcommaaccent"/> - <psName name="tcommaaccent"/> - <psName name="Tcaron"/> - <psName name="tcaron"/> - <psName name="Tbar"/> - <psName name="tbar"/> - <psName name="Utilde"/> - <psName name="utilde"/> - <psName name="Umacron"/> - <psName name="umacron"/> - <psName name="Ubreve"/> - <psName name="ubreve"/> - <psName name="Uring"/> - <psName name="uring"/> - <psName name="Uhungarumlaut"/> - <psName name="uhungarumlaut"/> - <psName name="Uogonek"/> - <psName name="uogonek"/> - <psName name="Wcircumflex"/> - <psName name="wcircumflex"/> - <psName name="Ycircumflex"/> - <psName name="ycircumflex"/> - <psName name="Zacute"/> - <psName name="zacute"/> - <psName name="Zdotaccent"/> - <psName name="zdotaccent"/> - <psName name="longs"/> - <psName name="Scommaaccent"/> - <psName name="scommaaccent"/> - <psName name="Tcommabelow"/> - <psName name="tcommabelow"/> - <psName name="Unterkomma"/> - <psName name="semicolon"/> - <psName name="anoteleia"/> - <psName name="hyphen"/> - <psName name="nbhyphen"/> - <psName name="figuredash"/> - <psName name="afii00208"/> - <psName name="quotereversed"/> - <psName name="radicalex"/> - <psName name="estimated"/> - <psName name="dotmath"/> - <psName name="fi"/> - <psName name="fl"/> - <psName name="foursuperiour"/> - <psName name="dotlessj"/> - </extraNames> - </post> - - <gasp> - <gaspRange rangeMaxPPEM="8" rangeGaspBehavior="2"/> - <gaspRange rangeMaxPPEM="16" rangeGaspBehavior="1"/> - <gaspRange rangeMaxPPEM="65535" rangeGaspBehavior="3"/> - </gasp> - - <vhea> - <tableVersion value="1.0"/> - <ascent value="2033"/> - <descent value="432"/> - <lineGap value="0"/> - <advanceHeightMax value="2465"/> - <minTopSideBearing value="0"/> - <minBottomSideBearing value="0"/> - <yMaxExtent value="2465"/> - <caretSlopeRise value="0"/> - <caretSlopeRun value="1"/> - <reserved0 value="0"/> - <reserved1 value="0"/> - <reserved2 value="0"/> - <reserved3 value="0"/> - <reserved4 value="0"/> - <metricDataFormat value="0"/> - <numberOfVMetrics value="391"/> - </vhea> - - <vmtx> - <mtx name=".notdef" height="2465" tsb="553"/> - <mtx name=".notdef#1" height="0" tsb="0"/> - <mtx name=".notdef#10" height="2465" tsb="0"/> - <mtx name=".notdef#11" height="2465" tsb="0"/> - <mtx name=".notdef#12" height="2465" tsb="0"/> - <mtx name=".notdef#13" height="2465" tsb="0"/> - <mtx name=".notdef#14" height="2465" tsb="0"/> - <mtx name=".notdef#15" height="2465" tsb="0"/> - <mtx name=".notdef#16" height="1024" tsb="0"/> - <mtx name=".notdef#17" height="2465" tsb="0"/> - <mtx name=".notdef#18" height="2465" tsb="0"/> - <mtx name=".notdef#2" height="2465" tsb="0"/> - <mtx name=".notdef#3" height="2465" tsb="0"/> - <mtx name=".notdef#4" height="2465" tsb="0"/> - <mtx name=".notdef#5" height="2465" tsb="0"/> - <mtx name=".notdef#6" height="2465" tsb="0"/> - <mtx name=".notdef#7" height="2465" tsb="0"/> - <mtx name=".notdef#8" height="2465" tsb="0"/> - <mtx name=".notdef#9" height="2465" tsb="0"/> - <mtx name="A" height="2465" tsb="534"/> - <mtx name="AE" height="2465" tsb="553"/> - <mtx name="Aacute" height="2465" tsb="108"/> - <mtx name="Abreve" height="2465" tsb="108"/> - <mtx name="Acircumflex" height="2465" tsb="108"/> - <mtx name="Adieresis" height="2465" tsb="256"/> - <mtx name="Agrave" height="2465" tsb="108"/> - <mtx name="Amacron" height="2465" tsb="306"/> - <mtx name="Aogonek" height="2465" tsb="534"/> - <mtx name="Aring" height="2465" tsb="99"/> - <mtx name="Atilde" height="2465" tsb="194"/> - <mtx name="B" height="2465" tsb="553"/> - <mtx name="C" height="2465" tsb="516"/> - <mtx name="Cacute" height="2465" tsb="108"/> - <mtx name="Ccaron" height="2465" tsb="108"/> - <mtx name="Ccedilla" height="2465" tsb="516"/> - <mtx name="Ccircumflex" height="2465" tsb="108"/> - <mtx name="Cdotaccent" height="2465" tsb="232"/> - <mtx name="D" height="2465" tsb="544"/> - <mtx name="Dcaron" height="2465" tsb="108"/> - <mtx name="Dcroat" height="2465" tsb="544"/> - <mtx name="E" height="2465" tsb="553"/> - <mtx name="Eacute" height="2465" tsb="108"/> - <mtx name="Ebreve" height="2465" tsb="108"/> - <mtx name="Ecaron" height="2465" tsb="108"/> - <mtx name="Ecircumflex" height="2465" tsb="108"/> - <mtx name="Edieresis" height="2465" tsb="256"/> - <mtx name="Edotaccent" height="2465" tsb="232"/> - <mtx name="Egrave" height="2465" tsb="108"/> - <mtx name="Emacron" height="2465" tsb="306"/> - <mtx name="Eng" height="2465" tsb="553"/> - <mtx name="Eogonek" height="2465" tsb="553"/> - <mtx name="Eth" height="2465" tsb="544"/> - <mtx name="Euro" height="2465" tsb="516"/> - <mtx name="Euro#1" height="2465" tsb="516"/> - <mtx name="F" height="2465" tsb="553"/> - <mtx name="G" height="2465" tsb="515"/> - <mtx name="Gbreve" height="2465" tsb="108"/> - <mtx name="Gcircumflex" height="2465" tsb="108"/> - <mtx name="Gcommaaccent" height="2465" tsb="515"/> - <mtx name="Gdotaccent" height="2465" tsb="232"/> - <mtx name="H" height="2465" tsb="553"/> - <mtx name="Hbar" height="2465" tsb="553"/> - <mtx name="Hcircumflex" height="2465" tsb="108"/> - <mtx name="I" height="2465" tsb="553"/> - <mtx name="IJ" height="2465" tsb="553"/> - <mtx name="Iacute" height="2465" tsb="108"/> - <mtx name="Ibreve" height="2465" tsb="108"/> - <mtx name="Icircumflex" height="2465" tsb="108"/> - <mtx name="Idieresis" height="2465" tsb="256"/> - <mtx name="Idotaccent" height="2465" tsb="232"/> - <mtx name="Igrave" height="2465" tsb="108"/> - <mtx name="Imacron" height="2465" tsb="306"/> - <mtx name="Iogonek" height="2465" tsb="553"/> - <mtx name="Itilde" height="2465" tsb="194"/> - <mtx name="J" height="2465" tsb="553"/> - <mtx name="Jcircumflex" height="2465" tsb="108"/> - <mtx name="K" height="2465" tsb="553"/> - <mtx name="Kcommaaccent" height="2465" tsb="553"/> - <mtx name="L" height="2465" tsb="553"/> - <mtx name="Lacute" height="2465" tsb="108"/> - <mtx name="Lcaron" height="2465" tsb="553"/> - <mtx name="Lcommaaccent" height="2465" tsb="553"/> - <mtx name="Ldot" height="2465" tsb="553"/> - <mtx name="Lslash" height="2465" tsb="553"/> - <mtx name="M" height="2465" tsb="553"/> - <mtx name="N" height="2465" tsb="553"/> - <mtx name="Nacute" height="2465" tsb="108"/> - <mtx name="Ncaron" height="2465" tsb="108"/> - <mtx name="Ncommaaccent" height="2465" tsb="553"/> - <mtx name="Ntilde" height="2465" tsb="194"/> - <mtx name="O" height="2465" tsb="516"/> - <mtx name="OE" height="2465" tsb="516"/> - <mtx name="Oacute" height="2465" tsb="108"/> - <mtx name="Obreve" height="2465" tsb="108"/> - <mtx name="Ocircumflex" height="2465" tsb="108"/> - <mtx name="Odieresis" height="2465" tsb="256"/> - <mtx name="Ograve" height="2465" tsb="108"/> - <mtx name="Ohungarumlaut" height="2465" tsb="108"/> - <mtx name="Omacron" height="2465" tsb="306"/> - <mtx name="Oslash" height="2465" tsb="516"/> - <mtx name="Otilde" height="2465" tsb="194"/> - <mtx name="P" height="2465" tsb="541"/> - <mtx name="Q" height="2465" tsb="516"/> - <mtx name="R" height="2465" tsb="541"/> - <mtx name="Racute" height="2465" tsb="108"/> - <mtx name="Rcaron" height="2465" tsb="108"/> - <mtx name="Rcommaaccent" height="2465" tsb="542"/> - <mtx name="S" height="2465" tsb="516"/> - <mtx name="Sacute" height="2465" tsb="108"/> - <mtx name="Scaron" height="2465" tsb="108"/> - <mtx name="Scedilla" height="2465" tsb="516"/> - <mtx name="Scircumflex" height="2465" tsb="108"/> - <mtx name="Scommaaccent" height="2465" tsb="516"/> - <mtx name="T" height="2465" tsb="553"/> - <mtx name="Tbar" height="2465" tsb="553"/> - <mtx name="Tcaron" height="2465" tsb="108"/> - <mtx name="Tcommaaccent" height="2465" tsb="553"/> - <mtx name="Tcommabelow" height="2465" tsb="553"/> - <mtx name="Thorn" height="2465" tsb="553"/> - <mtx name="U" height="2465" tsb="553"/> - <mtx name="Uacute" height="2465" tsb="108"/> - <mtx name="Ubreve" height="2465" tsb="108"/> - <mtx name="Ucircumflex" height="2465" tsb="108"/> - <mtx name="Udieresis" height="2465" tsb="256"/> - <mtx name="Ugrave" height="2465" tsb="108"/> - <mtx name="Uhungarumlaut" height="2465" tsb="108"/> - <mtx name="Umacron" height="2465" tsb="306"/> - <mtx name="Unterkomma" height="2465" tsb="2144"/> - <mtx name="Uogonek" height="2465" tsb="553"/> - <mtx name="Uring" height="2465" tsb="0"/> - <mtx name="Utilde" height="2465" tsb="194"/> - <mtx name="V" height="2465" tsb="553"/> - <mtx name="W" height="2465" tsb="553"/> - <mtx name="Wcircumflex" height="2465" tsb="108"/> - <mtx name="X" height="2465" tsb="553"/> - <mtx name="Y" height="2465" tsb="553"/> - <mtx name="Yacute" height="2465" tsb="108"/> - <mtx name="Ycircumflex" height="2465" tsb="108"/> - <mtx name="Ydieresis" height="2465" tsb="256"/> - <mtx name="Z" height="2465" tsb="553"/> - <mtx name="Zacute" height="2465" tsb="108"/> - <mtx name="Zcaron" height="2465" tsb="108"/> - <mtx name="Zdotaccent" height="2465" tsb="232"/> - <mtx name="a" height="2465" tsb="923"/> - <mtx name="aacute" height="2465" tsb="429"/> - <mtx name="abreve" height="2465" tsb="429"/> - <mtx name="acircumflex" height="2465" tsb="429"/> - <mtx name="acute" height="2465" tsb="429"/> - <mtx name="adieresis" height="2465" tsb="577"/> - <mtx name="ae" height="2465" tsb="922"/> - <mtx name="afii00208" height="2465" tsb="1391"/> - <mtx name="agrave" height="2465" tsb="429"/> - <mtx name="amacron" height="2465" tsb="627"/> - <mtx name="ampersand" height="2465" tsb="515"/> - <mtx name="anoteleia" height="2465" tsb="1295"/> - <mtx name="aogonek" height="2465" tsb="923"/> - <mtx name="aring" height="2465" tsb="296"/> - <mtx name="asciicircum" height="2465" tsb="553"/> - <mtx name="asciitilde" height="2465" tsb="1270"/> - <mtx name="asterisk" height="2465" tsb="553"/> - <mtx name="at" height="2465" tsb="516"/> - <mtx name="atilde" height="2465" tsb="515"/> - <mtx name="b" height="2465" tsb="454"/> - <mtx name="backslash" height="2465" tsb="552"/> - <mtx name="bar" height="2465" tsb="454"/> - <mtx name="braceleft" height="2465" tsb="454"/> - <mtx name="braceright" height="2465" tsb="454"/> - <mtx name="bracketleft" height="2465" tsb="454"/> - <mtx name="bracketright" height="2465" tsb="454"/> - <mtx name="breve" height="2465" tsb="429"/> - <mtx name="brokenbar" height="2465" tsb="454"/> - <mtx name="bullet" height="2465" tsb="923"/> - <mtx name="c" height="2465" tsb="923"/> - <mtx name="cacute" height="2465" tsb="429"/> - <mtx name="caron" height="2465" tsb="429"/> - <mtx name="ccaron" height="2465" tsb="429"/> - <mtx name="ccedilla" height="2465" tsb="923"/> - <mtx name="ccircumflex" height="2465" tsb="429"/> - <mtx name="cdotaccent" height="2465" tsb="553"/> - <mtx name="cedilla" height="2465" tsb="2033"/> - <mtx name="cent" height="2465" tsb="553"/> - <mtx name="circumflex" height="2465" tsb="429"/> - <mtx name="colon" height="2465" tsb="947"/> - <mtx name="comma" height="2465" tsb="1786"/> - <mtx name="copyright" height="2465" tsb="602"/> - <mtx name="currency" height="2465" tsb="855"/> - <mtx name="d" height="2465" tsb="454"/> - <mtx name="dagger" height="2465" tsb="553"/> - <mtx name="daggerdbl" height="2465" tsb="553"/> - <mtx name="dcaron" height="2465" tsb="454"/> - <mtx name="dcroat" height="2465" tsb="454"/> - <mtx name="degree" height="2465" tsb="516"/> - <mtx name="dieresis" height="2465" tsb="577"/> - <mtx name="divide" height="2465" tsb="947"/> - <mtx name="dollar" height="2465" tsb="429"/> - <mtx name="dotaccent" height="2465" tsb="553"/> - <mtx name="dotlessi" height="2465" tsb="947"/> - <mtx name="dotlessj" height="2465" tsb="947"/> - <mtx name="dotmath" height="2465" tsb="1295"/> - <mtx name="e" height="2465" tsb="923"/> - <mtx name="eacute" height="2465" tsb="429"/> - <mtx name="ebreve" height="2465" tsb="429"/> - <mtx name="ecaron" height="2465" tsb="429"/> - <mtx name="ecircumflex" height="2465" tsb="429"/> - <mtx name="edieresis" height="2465" tsb="577"/> - <mtx name="edotaccent" height="2465" tsb="553"/> - <mtx name="egrave" height="2465" tsb="429"/> - <mtx name="eight" height="2465" tsb="515"/> - <mtx name="ellipsis" height="2465" tsb="1836"/> - <mtx name="emacron" height="2465" tsb="627"/> - <mtx name="emdash" height="2465" tsb="1391"/> - <mtx name="endash" height="2465" tsb="1367"/> - <mtx name="eng" height="2465" tsb="923"/> - <mtx name="eogonek" height="2465" tsb="923"/> - <mtx name="equal" height="2465" tsb="1206"/> - <mtx name="estimated" height="2465" tsb="923"/> - <mtx name="eth" height="2465" tsb="448"/> - <mtx name="exclam" height="2465" tsb="553"/> - <mtx name="exclamdown" height="2465" tsb="947"/> - <mtx name="f" height="2465" tsb="429"/> - <mtx name="fi" height="2465" tsb="429"/> - <mtx name="fi#1" height="2465" tsb="429"/> - <mtx name="figuredash" height="2465" tsb="1367"/> - <mtx name="five" height="2465" tsb="553"/> - <mtx name="fl" height="2465" tsb="429"/> - <mtx name="fl#1" height="2465" tsb="429"/> - <mtx name="florin" height="2465" tsb="528"/> - <mtx name="four" height="2465" tsb="528"/> - <mtx name="foursuperiour" height="2465" tsb="511"/> - <mtx name="fraction" height="2465" tsb="516"/> - <mtx name="fraction#1" height="2465" tsb="516"/> - <mtx name="g" height="2465" tsb="923"/> - <mtx name="gbreve" height="2465" tsb="429"/> - <mtx name="gcircumflex" height="2465" tsb="429"/> - <mtx name="gcommaaccent" height="2465" tsb="296"/> - <mtx name="gdotaccent" height="2465" tsb="553"/> - <mtx name="germandbls" height="2465" tsb="429"/> - <mtx name="grave" height="2465" tsb="429"/> - <mtx name="greater" height="2465" tsb="947"/> - <mtx name="guillemotleft" height="2465" tsb="1058"/> - <mtx name="guillemotright" height="2465" tsb="1058"/> - <mtx name="guilsinglleft" height="2465" tsb="1058"/> - <mtx name="guilsinglright" height="2465" tsb="1058"/> - <mtx name="h" height="2465" tsb="454"/> - <mtx name="hbar" height="2465" tsb="454"/> - <mtx name="hcircumflex" height="2465" tsb="34"/> - <mtx name="hungarumlaut" height="2465" tsb="429"/> - <mtx name="hyphen" height="2465" tsb="1367"/> - <mtx name="hyphen#1" height="2465" tsb="1367"/> - <mtx name="i" height="2465" tsb="553"/> - <mtx name="iacute" height="2465" tsb="429"/> - <mtx name="ibreve" height="2465" tsb="429"/> - <mtx name="icircumflex" height="2465" tsb="429"/> - <mtx name="idieresis" height="2465" tsb="577"/> - <mtx name="igrave" height="2465" tsb="429"/> - <mtx name="ij" height="2465" tsb="553"/> - <mtx name="imacron" height="2465" tsb="627"/> - <mtx name="iogonek" height="2465" tsb="553"/> - <mtx name="itilde" height="2465" tsb="515"/> - <mtx name="j" height="2465" tsb="553"/> - <mtx name="jcircumflex" height="2465" tsb="429"/> - <mtx name="k" height="2465" tsb="454"/> - <mtx name="kcommaaccent" height="2465" tsb="454"/> - <mtx name="kgreenlandic" height="2465" tsb="947"/> - <mtx name="l" height="2465" tsb="454"/> - <mtx name="lacute" height="2465" tsb="34"/> - <mtx name="lcaron" height="2465" tsb="454"/> - <mtx name="lcommaaccent" height="2465" tsb="454"/> - <mtx name="ldot" height="2465" tsb="454"/> - <mtx name="less" height="2465" tsb="947"/> - <mtx name="logicalnot" height="2465" tsb="1243"/> - <mtx name="longs" height="2465" tsb="429"/> - <mtx name="lslash" height="2465" tsb="454"/> - <mtx name="m" height="2465" tsb="923"/> - <mtx name="macron" height="2465" tsb="627"/> - <mtx name="macron#1" height="2465" tsb="429"/> - <mtx name="minus" height="2465" tsb="1391"/> - <mtx name="mu" height="2465" tsb="947"/> - <mtx name="multiply" height="2465" tsb="947"/> - <mtx name="n" height="2465" tsb="923"/> - <mtx name="nacute" height="2465" tsb="429"/> - <mtx name="napostrophe" height="2465" tsb="454"/> - <mtx name="nbhyphen" height="2465" tsb="1367"/> - <mtx name="ncaron" height="2465" tsb="429"/> - <mtx name="ncommaaccent" height="2465" tsb="923"/> - <mtx name="nine" height="2465" tsb="515"/> - <mtx name="nonbreakingspace" height="2465" tsb="2033"/> - <mtx name="ntilde" height="2465" tsb="515"/> - <mtx name="numbersign" height="2465" tsb="553"/> - <mtx name="o" height="2465" tsb="923"/> - <mtx name="oacute" height="2465" tsb="429"/> - <mtx name="obreve" height="2465" tsb="429"/> - <mtx name="ocircumflex" height="2465" tsb="429"/> - <mtx name="odieresis" height="2465" tsb="577"/> - <mtx name="oe" height="2465" tsb="923"/> - <mtx name="ogonek" height="2465" tsb="2033"/> - <mtx name="ograve" height="2465" tsb="429"/> - <mtx name="ohungarumlaut" height="2465" tsb="429"/> - <mtx name="omacron" height="2465" tsb="627"/> - <mtx name="one" height="2465" tsb="540"/> - <mtx name="onehalf" height="2465" tsb="516"/> - <mtx name="onequarter" height="2465" tsb="516"/> - <mtx name="onesuperior" height="2465" tsb="516"/> - <mtx name="ordfeminine" height="2465" tsb="516"/> - <mtx name="ordmasculine" height="2465" tsb="516"/> - <mtx name="oslash" height="2465" tsb="923"/> - <mtx name="otilde" height="2465" tsb="515"/> - <mtx name="p" height="2465" tsb="923"/> - <mtx name="paragraph" height="2465" tsb="544"/> - <mtx name="parenleft" height="2465" tsb="454"/> - <mtx name="parenright" height="2465" tsb="454"/> - <mtx name="percent" height="2465" tsb="516"/> - <mtx name="period" height="2465" tsb="1786"/> - <mtx name="periodcentered" height="2465" tsb="1295"/> - <mtx name="periodcentered#1" height="2465" tsb="1295"/> - <mtx name="perthousand" height="2465" tsb="516"/> - <mtx name="plus" height="2465" tsb="947"/> - <mtx name="plusminus" height="2465" tsb="849"/> - <mtx name="q" height="2465" tsb="923"/> - <mtx name="question" height="2465" tsb="516"/> - <mtx name="questiondown" height="2465" tsb="553"/> - <mtx name="quotedbl" height="2465" tsb="454"/> - <mtx name="quotedblbase" height="2465" tsb="1786"/> - <mtx name="quotedblleft" height="2465" tsb="454"/> - <mtx name="quotedblright" height="2465" tsb="454"/> - <mtx name="quoteleft" height="2465" tsb="454"/> - <mtx name="quotereversed" height="2465" tsb="2033"/> - <mtx name="quoteright" height="2465" tsb="454"/> - <mtx name="quotesinglbase" height="2465" tsb="1786"/> - <mtx name="quotesingle" height="2465" tsb="454"/> - <mtx name="r" height="2465" tsb="923"/> - <mtx name="racute" height="2465" tsb="429"/> - <mtx name="radicalex" height="2465" tsb="429"/> - <mtx name="rcaron" height="2465" tsb="429"/> - <mtx name="rcommaaccent" height="2465" tsb="923"/> - <mtx name="registered" height="2465" tsb="602"/> - <mtx name="ring" height="2465" tsb="296"/> - <mtx name="s" height="2465" tsb="923"/> - <mtx name="sacute" height="2465" tsb="429"/> - <mtx name="scaron" height="2465" tsb="429"/> - <mtx name="scedilla" height="2465" tsb="923"/> - <mtx name="scircumflex" height="2465" tsb="429"/> - <mtx name="scommaaccent" height="2465" tsb="923"/> - <mtx name="section" height="2465" tsb="516"/> - <mtx name="semicolon" height="2465" tsb="947"/> - <mtx name="semicolon#1" height="2465" tsb="947"/> - <mtx name="seven" height="2465" tsb="553"/> - <mtx name="sfthyphen" height="2465" tsb="1367"/> - <mtx name="six" height="2465" tsb="515"/> - <mtx name="slash" height="2465" tsb="552"/> - <mtx name="space" height="2465" tsb="2033"/> - <mtx name="sterling" height="2465" tsb="528"/> - <mtx name="t" height="2465" tsb="701"/> - <mtx name="tbar" height="2465" tsb="701"/> - <mtx name="tcaron" height="2465" tsb="345"/> - <mtx name="tcommaaccent" height="2465" tsb="701"/> - <mtx name="tcommabelow" height="2465" tsb="701"/> - <mtx name="thorn" height="2465" tsb="454"/> - <mtx name="three" height="2465" tsb="516"/> - <mtx name="threequarters" height="2465" tsb="516"/> - <mtx name="threesuperior" height="2465" tsb="516"/> - <mtx name="tilde" height="2465" tsb="515"/> - <mtx name="trademark" height="2465" tsb="553"/> - <mtx name="two" height="2465" tsb="515"/> - <mtx name="twosuperior" height="2465" tsb="515"/> - <mtx name="u" height="2465" tsb="947"/> - <mtx name="uacute" height="2465" tsb="429"/> - <mtx name="ubreve" height="2465" tsb="429"/> - <mtx name="ucircumflex" height="2465" tsb="429"/> - <mtx name="udieresis" height="2465" tsb="577"/> - <mtx name="ugrave" height="2465" tsb="429"/> - <mtx name="uhungarumlaut" height="2465" tsb="429"/> - <mtx name="umacron" height="2465" tsb="627"/> - <mtx name="underscore" height="2465" tsb="2033"/> - <mtx name="uogonek" height="2465" tsb="947"/> - <mtx name="uring" height="2465" tsb="296"/> - <mtx name="utilde" height="2465" tsb="515"/> - <mtx name="v" height="2465" tsb="947"/> - <mtx name="w" height="2465" tsb="947"/> - <mtx name="wcircumflex" height="2465" tsb="429"/> - <mtx name="x" height="2465" tsb="947"/> - <mtx name="y" height="2465" tsb="947"/> - <mtx name="yacute" height="2465" tsb="429"/> - <mtx name="ycircumflex" height="2465" tsb="429"/> - <mtx name="ydieresis" height="2465" tsb="577"/> - <mtx name="yen" height="2465" tsb="553"/> - <mtx name="z" height="2465" tsb="947"/> - <mtx name="zacute" height="2465" tsb="429"/> - <mtx name="zcaron" height="2465" tsb="429"/> - <mtx name="zdotaccent" height="2465" tsb="553"/> - <mtx name="zero" height="2465" tsb="516"/> - </vmtx> - -</ttFont> diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luxisr-12pt-sans-hinting.txt b/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luxisr-12pt-sans-hinting.txt deleted file mode 100644 index e2761641d..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luxisr-12pt-sans-hinting.txt +++ /dev/null @@ -1,392 +0,0 @@ -freetype version 2.5.1 -213 21 0 192 555;21 0 1, 21 555 1, 192 555 1, 192 0 1, 171 21 1, 171 534 1, 43 534 1, 43 21 1 -0 0 0 0 0; -213 0 0 0 0; -213 0 0 0 0; -213 70 0 144 555;70 0 1, 70 74 1, 144 74 1, 144 0 1, 79 148 1, 70 444 1, 70 555 1, 144 555 1, 144 444 1, 135 148 1 -273 35 407 238 592;44 407 1, 35 592 1, 108 592 1, 99 407 1, 173 407 1, 164 592 1, 238 592 1, 229 407 1 -427 9 0 418 555;47 0 1, 89 167 1, 9 167 1, 18 213 1, 100 213 1, 133 342 1, 44 342 1, 54 389 1, 144 389 1, 186 555 1, 234 555 1, 192 389 1, 291 389 1, 332 555 1, 380 555 1, 339 389 1, 418 389 1, 409 342 1, 327 342 1, 294 213 1, 383 213 1, 374 167 1, 283 167 1, 242 0 1, 194 0 1, 235 167 1, 137 167 1, 95 0 1, 148 213 1, 247 213 1, 279 342 1, 180 342 1 -427 39 -46 353 602;187 -46 1, 187 0 1, 121 0 0, 39 31 1, 39 95 1, 123 56 0, 187 56 1, 187 255 1, 117 298 0, 88 330 1, 55 368 0, 55 422 1, 55 486 0, 103 524 1, 135 550 0, 187 555 1, 187 602 1, 224 602 1, 224 555 1, 278 555 0, 344 530 1, 344 470 1, 273 501 0, 224 504 1, 224 307 1, 228 304 1, 238 298 0, 247 293 1, 251 290 1, 299 262 0, 322 237 1, 353 205 0, 353 155 1, 353 87 0, 308 42 1, 276 12 0, 224 0 1, 224 -46 1, 224 60 1, 288 85 0, 288 144 1, 288 175 0, 270 195 1, 257 210 0, 224 233 1, 187 331 1, 187 502 1, 120 479 0, 120 425 1, 120 376 0 -683 42 -14 641 569;94 -14 1, 531 569 1, 589 569 1, 152 -14 1, 161 555 1, 216 555 0, 248 518 1, 280 480 0, 280 416 1, 280 352 0, 248 315 1, 216 278 0, 161 278 1, 106 278 0, 74 315 1, 42 353 0, 42 418 1, 42 475 0, 68 511 1, 101 555 0, 161 518 1, 134 518 0, 117 491 1, 100 462 0, 100 419 1, 100 375 0, 114 348 1, 131 315 0, 161 315 1, 189 315 0, 206 343 1, 222 371 0, 222 416 1, 222 462 0, 206 490 1, 188 518 0, 522 278 1, 577 278 0, 609 240 1, 641 203 0, 641 139 1, 641 75 0, 609 38 1, 577 0 0, 522 0 1, 467 0 0, 435 38 1, 403 75 0, 403 141 1, 403 198 0, 429 233 1, 462 278 0, 522 241 1, 494 241 0, 477 213 1, 461 185 0, 461 141 1, 461 98 0, 474 71 1, 491 37 0, 522 37 1, 549 37 0, 566 65 1, 583 93 0, 583 139 1, 583 185 0, 566 213 1, 549 241 0 -512 21 -14 485 569;384 0 1, 357 33 1, 282 -14 0, 214 -14 1, 132 -14 0, 77 37 1, 21 88 0, 21 166 1, 21 243 0, 69 290 1, 98 318 0, 152 339 1, 119 400 0, 119 445 1, 119 501 0, 153 535 1, 188 569 0, 247 569 1, 303 569 0, 336 539 1, 368 508 0, 368 457 1, 368 401 0, 325 360 1, 298 335 0, 248 312 1, 311 198 0, 373 123 1, 410 171 0, 410 265 1, 410 295 1, 483 295 1, 483 165 0, 408 83 1, 441 41 0, 485 0 1, 325 76 1, 251 160 0, 178 296 1, 141 279 0, 123 257 1, 95 225 0, 95 179 1, 95 122 0, 134 82 1, 172 42 0, 226 42 1, 268 42 0, 220 359 1, 256 374 0, 273 392 1, 299 419 0, 299 456 1, 299 513 0, 246 513 1, 191 513 0, 191 453 1, 191 416 0, 217 365 1 -147 27 389 120 592;45 389 1, 27 592 1, 120 592 1, 101 389 1 -256 49 -111 225 592;225 -60 1, 225 -111 1, 150 -58 0, 107 21 1, 49 123 0, 49 241 1, 49 364 0, 111 470 1, 154 542 0, 225 592 1, 225 541 1, 174 485 0, 152 426 1, 123 353 0, 123 241 1, 123 124 0, 154 48 1, 177 -7 0 -256 31 -111 207 592;31 541 1, 31 592 1, 106 539 0, 150 461 1, 207 359 0, 207 241 1, 207 117 0, 144 12 1, 102 -60 0, 31 -111 1, 31 -60 1, 81 -3 0, 104 56 1, 132 129 0, 132 241 1, 132 357 0, 101 433 1, 79 487 0 -299 15 282 284 555;267 483 1, 284 431 1, 180 406 1, 180 407 1, 180 411 0, 180 411 1, 180 411 1, 180 427 0, 170 437 1, 255 314 1, 210 282 1, 152 382 1, 170 384 0, 178 401 1, 88 282 1, 43 314 1, 120 401 1, 128 384 0, 147 382 1, 15 431 1, 32 483 1, 129 437 1, 118 427 0, 118 411 1, 118 411 1, 118 411 0, 118 409 1, 119 408 1, 119 407 0, 119 406 1, 122 555 1, 177 555 1, 165 440 1, 157 444 0, 149 444 1, 141 444 0, 133 440 1 -449 39 37 409 407;196 37 1, 196 194 1, 39 194 1, 39 250 1, 196 250 1, 196 407 1, 252 407 1, 252 250 1, 409 250 1, 409 194 1, 252 194 1, 252 37 1 -213 60 -120 153 93;60 -120 1, 60 -93 1, 96 -83 0, 96 -8 1, 96 0 1, 60 0 1, 60 93 1, 153 93 1, 153 12 1, 153 -110 0 -256 33 194 223 250;33 194 1, 33 250 1, 223 250 1, 223 194 1 -213 60 0 153 93;60 0 1, 60 93 1, 153 93 1, 153 0 1 -213 -22 -111 236 555;-22 -111 1, 178 555 1, 236 555 1, 36 -111 1 -427 30 -14 397 569;213 569 1, 298 569 0, 347 491 1, 397 413 0, 397 279 1, 397 142 0, 347 64 1, 298 -14 0, 211 -14 1, 137 -14 0, 90 50 1, 30 130 0, 30 278 1, 30 413 0, 80 491 1, 129 569 0, 213 513 1, 163 513 0, 136 452 1, 109 390 0, 109 278 1, 109 167 0, 136 104 1, 163 42 0, 214 42 1, 260 42 0, 285 87 1, 318 148 0, 318 279 1, 318 392 0, 291 452 1, 263 513 0 -427 86 0 383 569;86 0 1, 86 56 1, 197 56 1, 197 494 1, 86 466 1, 86 523 1, 272 569 1, 272 56 1, 383 56 1, 383 0 1 -427 38 0 353 569;38 0 1, 38 65 1, 64 125 0, 125 188 1, 165 230 1, 202 267 1, 274 341 0, 274 415 1, 274 468 0, 246 493 1, 224 514 0, 184 514 1, 132 514 0, 52 469 1, 52 534 1, 128 569 0, 194 569 1, 267 569 0, 310 527 1, 353 485 0, 353 413 1, 353 364 0, 331 326 1, 308 287 0, 247 233 1, 221 209 1, 143 139 0, 128 65 1, 350 65 1, 350 0 1 -427 57 -14 362 569;57 4 1, 57 73 1, 60 72 1, 70 68 0, 74 67 1, 115 52 0, 129 48 1, 154 42 0, 174 42 1, 230 42 0, 258 73 1, 283 100 0, 283 150 1, 283 208 0, 245 239 1, 208 270 0, 138 270 1, 109 270 1, 109 320 1, 134 320 1, 199 321 0, 234 350 1, 270 379 0, 270 430 1, 270 513 0, 180 513 1, 134 513 0, 65 482 1, 65 547 1, 133 569 0, 185 569 1, 275 569 0, 315 526 1, 344 494 0, 344 441 1, 344 381 0, 302 343 1, 277 320 0, 228 301 1, 271 290 0, 293 277 1, 362 237 0, 362 153 1, 362 77 0, 312 32 1, 263 -14 0, 181 -14 1, 137 -14 0 -427 12 0 402 555;258 0 1, 258 157 1, 12 157 1, 12 213 1, 258 555 1, 327 555 1, 327 218 1, 402 218 1, 402 157 1, 327 157 1, 327 0 1, 84 218 1, 263 218 1, 263 464 1 -427 61 -14 362 555;61 -2 1, 61 64 1, 118 42 0, 166 42 1, 221 42 0, 252 74 1, 284 107 0, 284 162 1, 284 288 0, 113 288 1, 92 288 0, 71 285 1, 71 555 1, 351 555 1, 351 491 1, 135 491 1, 135 344 1, 234 343 0, 291 304 1, 362 255 0, 362 159 1, 362 78 0, 308 32 1, 253 -14 0, 158 -14 1, 116 -14 0 -427 32 -14 385 569;112 292 1, 164 356 0, 238 356 1, 306 356 0, 346 310 1, 385 264 0, 385 182 1, 385 92 0, 339 39 1, 292 -14 0, 214 -14 1, 129 -14 0, 80 59 1, 32 132 0, 32 260 1, 32 405 0, 90 487 1, 148 569 0, 251 569 1, 298 569 0, 355 548 1, 355 484 1, 287 514 0, 249 514 1, 166 514 0, 133 431 1, 120 398 0, 115 357 1, 113 335 0, 218 303 1, 172 303 0, 143 271 1, 114 239 0, 114 183 1, 114 122 0, 144 82 1, 174 42 0, 221 42 1, 312 42 0, 312 167 1, 312 303 0 -427 51 0 407 555;83 0 1, 94 65 0, 114 112 1, 134 159 0, 185 242 1, 337 486 1, 51 486 1, 51 555 1, 407 555 1, 407 486 1, 194 171 0, 168 0 1 -427 37 -14 408 569;147 302 1, 111 329 0, 92 353 1, 66 389 0, 66 429 1, 66 491 0, 112 530 1, 158 569 0, 233 569 1, 302 569 0, 344 536 1, 386 503 0, 386 449 1, 386 400 0, 349 357 1, 326 331 0, 283 302 1, 339 273 0, 368 243 1, 408 199 0, 408 143 1, 408 74 0, 356 30 1, 303 -14 0, 219 -14 1, 137 -14 0, 87 28 1, 37 69 0, 37 138 1, 37 198 0, 78 245 1, 102 274 0, 242 326 1, 319 379 0, 319 437 1, 319 472 0, 294 492 1, 268 513 0, 225 513 1, 183 513 0, 158 494 1, 133 474 0, 133 441 1, 133 402 0, 176 368 1, 197 351 0, 188 272 1, 146 240 0, 130 216 1, 111 189 0, 111 149 1, 111 101 0, 142 71 1, 173 42 0, 223 42 1, 271 42 0, 302 67 1, 332 92 0, 332 132 1, 332 168 0, 309 192 1, 289 212 0, 240 241 1 -427 32 -14 385 569;305 263 1, 253 199 0, 179 199 1, 110 199 0, 71 245 1, 32 292 0, 32 373 1, 32 463 0, 78 516 1, 124 569 0, 202 569 1, 288 569 0, 336 496 1, 385 423 0, 385 296 1, 385 150 0, 327 68 1, 269 -14 0, 166 -14 1, 118 -14 0, 61 7 1, 61 71 1, 130 42 0, 168 42 1, 251 42 0, 284 125 1, 297 158 0, 302 198 1, 304 220 0, 196 513 1, 104 513 0, 104 389 1, 104 252 0, 198 252 1, 245 252 0, 273 284 1, 302 317 0, 302 372 1, 302 433 0, 273 473 1, 243 513 0 -213 70 0 144 407;70 0 1, 70 74 1, 144 74 1, 144 0 1, 70 333 1, 70 407 1, 144 407 1, 144 333 1 -213 70 -120 144 407;70 -120 1, 70 -93 1, 96 -79 0, 96 -9 1, 96 0 1, 70 0 1, 70 74 1, 144 74 1, 144 12 1, 143 -102 0, 70 333 1, 70 407 1, 144 407 1, 144 333 1 -449 39 37 409 407;409 37 1, 39 222 1, 409 407 1, 409 345 1, 164 222 1, 164 222 1, 409 99 1 -449 39 125 409 319;39 125 1, 39 180 1, 409 180 1, 409 125 1, 39 264 1, 39 319 1, 409 319 1, 409 264 1 -449 39 37 409 407;39 407 1, 409 222 1, 39 37 1, 39 99 1, 284 222 1, 284 222 1, 39 345 1 -427 52 0 380 569;141 0 1, 141 74 1, 215 74 1, 215 0 1, 141 148 1, 141 168 1, 141 260 0, 202 308 1, 236 334 1, 302 385 0, 302 440 1, 302 513 0, 199 513 1, 136 513 0, 52 486 1, 52 548 1, 135 569 0, 204 569 1, 281 569 0, 324 544 1, 380 512 0, 380 441 1, 380 371 0, 309 327 1, 278 308 1, 241 285 0, 228 260 1, 215 236 0, 215 189 1, 215 148 1 -780 95 -14 692 569;470 17 1, 400 -14 0, 336 -14 1, 232 -14 0, 164 51 1, 95 116 0, 95 218 1, 95 356 0, 201 462 1, 306 569 0, 445 569 1, 551 569 0, 621 501 1, 692 434 0, 692 333 1, 692 241 0, 635 176 1, 578 111 0, 498 111 1, 435 111 0, 435 154 1, 435 169 0, 443 194 1, 458 241 1, 453 241 1, 422 182 0, 393 153 1, 352 111 0, 307 111 1, 236 111 0, 236 196 1, 236 290 0, 297 366 1, 357 442 0, 434 442 1, 443 442 0, 458 441 1, 462 441 0, 467 440 1, 482 440 0, 492 440 1, 543 440 1, 496 201 1, 494 190 0, 494 178 1, 494 153 0, 522 153 1, 572 153 0, 611 206 1, 650 260 0, 650 328 1, 650 414 0, 590 471 1, 531 528 0, 440 528 1, 321 528 0, 229 434 1, 137 341 0, 137 222 1, 137 135 0, 195 82 1, 252 28 0, 342 28 1, 400 28 0, 456 55 1, 462 312 1, 477 386 1, 442 398 0, 417 398 1, 364 398 0, 329 344 1, 294 291 0, 294 213 1, 294 157 0, 324 157 1, 374 157 0 -512 7 0 503 555;7 0 1, 218 555 1, 296 555 1, 503 0 1, 419 0 1, 361 154 1, 138 154 1, 80 0 1, 161 212 1, 339 212 1, 250 450 1 -512 62 0 462 555;62 0 1, 62 555 1, 240 555 1, 349 555 0, 394 527 1, 440 498 0, 440 431 1, 440 369 0, 395 330 1, 368 307 0, 317 289 1, 382 270 0, 415 242 1, 462 202 0, 462 138 1, 462 80 0, 423 41 1, 396 13 0, 353 6 1, 318 0 0, 259 0 1, 141 59 1, 199 59 1, 309 59 0, 344 75 1, 378 92 0, 378 144 1, 378 201 0, 334 231 1, 289 261 0, 205 261 1, 141 261 1, 141 311 1, 208 311 1, 359 311 0, 359 417 1, 359 471 0, 315 485 1, 282 496 0, 213 496 1, 141 496 1 -555 44 -14 507 569;507 29 1, 421 -14 0, 323 -14 1, 186 -14 0, 115 60 1, 44 135 0, 44 277 1, 44 419 0, 116 494 1, 189 569 0, 327 569 1, 404 569 0, 506 545 1, 506 471 1, 390 510 0, 323 510 1, 228 510 0, 178 450 1, 128 390 0, 128 278 1, 128 167 0, 182 108 1, 235 48 0, 332 48 1, 414 48 0, 507 96 1 -555 62 0 520 555;62 0 1, 62 555 1, 240 555 1, 520 555 0, 520 290 1, 520 152 0, 447 76 1, 374 0 0, 241 0 1, 141 59 1, 235 59 1, 435 59 0, 435 281 1, 435 412 0, 356 466 1, 333 482 0, 301 488 1, 263 496 0, 199 496 1, 141 496 1 -512 72 0 491 555;72 0 1, 72 555 1, 474 555 1, 474 496 1, 150 496 1, 150 318 1, 437 318 1, 437 260 1, 150 260 1, 150 59 1, 491 59 1, 491 0 1 -469 72 0 449 555;72 0 1, 72 555 1, 449 555 1, 449 496 1, 150 496 1, 150 310 1, 411 310 1, 411 252 1, 150 252 1, 150 0 1 -597 35 -14 527 569;527 258 1, 527 15 1, 424 -14 0, 327 -14 1, 35 -14 0, 35 276 1, 35 417 0, 110 493 1, 186 569 0, 329 569 1, 421 569 0, 526 544 1, 526 471 1, 406 510 0, 326 510 1, 119 510 0, 119 279 1, 119 165 0, 176 105 1, 233 45 0, 338 45 1, 381 45 0, 449 59 1, 449 200 1, 356 200 1, 356 258 1 -555 62 0 492 555;62 0 1, 62 555 1, 141 555 1, 141 321 1, 414 321 1, 414 555 1, 492 555 1, 492 0 1, 414 0 1, 414 262 1, 141 262 1, 141 0 1 -213 68 0 146 555;68 0 1, 68 555 1, 146 555 1, 146 0 1 -384 18 -111 315 555;18 -87 1, 18 -19 1, 83 -48 0, 138 -48 1, 203 -48 0, 221 -18 1, 236 7 0, 236 68 1, 236 555 1, 315 555 1, 315 70 1, 315 -111 0, 135 -111 1, 74 -111 0 -512 72 0 494 555;72 0 1, 72 555 1, 146 555 1, 146 282 1, 376 555 1, 455 555 1, 232 290 1, 494 0 1, 394 0 1, 146 281 1, 146 0 1 -427 62 0 413 555;62 0 1, 62 555 1, 141 555 1, 141 59 1, 413 59 1, 413 0 1 -640 62 0 578 555;62 0 1, 62 555 1, 171 555 1, 324 126 1, 480 555 1, 578 555 1, 578 0 1, 504 0 1, 504 451 1, 353 37 1, 277 37 1, 130 453 1, 130 0 1 -555 62 0 492 555;62 0 1, 62 555 1, 139 555 1, 425 126 1, 425 555 1, 492 555 1, 492 0 1, 415 0 1, 129 429 1, 129 0 1 -597 35 -14 563 569;299 569 1, 419 569 0, 491 490 1, 563 410 0, 563 278 1, 563 144 0, 491 65 1, 419 -14 0, 295 -14 1, 189 -14 0, 121 51 1, 35 132 0, 35 278 1, 35 411 0, 107 490 1, 179 569 0, 299 510 1, 214 510 0, 167 449 1, 119 388 0, 119 278 1, 119 169 0, 167 107 1, 213 45 0, 297 45 1, 375 45 0, 421 95 1, 479 156 0, 479 278 1, 479 388 0, 431 449 1, 383 510 0 -512 63 0 494 555;63 0 1, 63 555 1, 280 555 1, 366 555 0, 403 545 1, 441 535 0, 465 507 1, 494 471 0, 494 408 1, 494 221 0, 257 221 1, 141 221 1, 141 0 1, 141 280 1, 254 280 1, 411 280 0, 411 404 1, 411 464 0, 370 481 1, 335 496 0, 255 496 1, 141 496 1 -597 35 -111 615 569;615 -48 1, 565 -111 1, 434 -68 0, 346 -10 1, 307 -14 0, 287 -14 1, 177 -14 0, 106 68 1, 35 149 0, 35 278 1, 35 410 0, 107 489 1, 178 569 0, 298 569 1, 419 569 0, 491 489 1, 563 410 0, 563 277 1, 563 160 0, 509 87 1, 488 58 0, 460 38 1, 446 27 0, 418 11 1, 510 -30 0, 297 510 1, 214 510 0, 167 448 1, 119 387 0, 119 278 1, 119 169 0, 167 107 1, 214 45 0, 297 45 1, 382 45 0, 430 106 1, 479 167 0, 479 275 1, 479 376 0, 440 436 1, 392 510 0 -555 62 0 538 555;62 0 1, 62 555 1, 294 555 1, 465 555 0, 465 417 1, 465 350 0, 423 306 1, 399 281 0, 353 260 1, 538 0 1, 441 0 1, 283 235 1, 141 235 1, 141 0 1, 141 294 1, 229 294 1, 309 294 0, 346 321 1, 384 350 0, 384 408 1, 384 456 0, 353 476 1, 323 496 0, 253 496 1, 141 496 1 -512 45 -14 466 569;45 20 1, 45 98 1, 156 45 0, 264 45 1, 385 45 0, 385 135 1, 385 181 0, 352 203 1, 326 220 0, 269 239 1, 193 264 1, 48 311 0, 48 421 1, 48 569 0, 251 569 1, 338 569 0, 432 545 1, 432 473 1, 334 510 0, 246 510 1, 124 510 0, 124 427 1, 124 394 0, 147 374 1, 171 354 0, 230 334 1, 308 309 1, 395 281 0, 431 244 1, 466 207 0, 466 146 1, 466 72 0, 411 29 1, 357 -14 0, 261 -14 1, 167 -14 0 -469 8 0 461 555;195 0 1, 195 496 1, 8 496 1, 8 555 1, 461 555 1, 461 496 1, 274 496 1, 274 0 1 -555 62 -14 492 555;62 555 1, 141 555 1, 141 205 1, 141 146 0, 151 118 1, 160 90 0, 187 71 1, 225 45 0, 288 45 1, 363 45 0, 393 80 1, 423 115 0, 423 202 1, 423 555 1, 492 555 1, 492 203 1, 492 129 0, 477 91 1, 463 52 0, 423 24 1, 370 -14 0, 281 -14 1, 168 -14 0, 115 39 1, 62 91 0, 62 206 1 -512 14 0 508 555;228 0 1, 14 555 1, 95 555 1, 272 99 1, 441 555 1, 508 555 1, 302 0 1 -725 9 0 716 555;152 0 1, 9 555 1, 85 555 1, 199 117 1, 329 555 1, 405 555 1, 530 121 1, 651 555 1, 716 555 1, 560 0 1, 482 0 1, 358 428 1, 230 0 1 -512 11 0 502 555;11 0 1, 215 276 1, 20 555 1, 113 555 1, 263 339 1, 423 555 1, 498 555 1, 299 289 1, 502 0 1, 409 0 1, 251 224 1, 85 0 1 -512 11 0 501 555;210 0 1, 210 231 1, 11 555 1, 101 555 1, 259 298 1, 428 555 1, 501 555 1, 289 233 1, 289 0 1 -469 38 0 431 555;38 0 1, 38 63 1, 336 496 1, 56 496 1, 56 555 1, 431 555 1, 431 496 1, 132 63 1, 431 63 1, 431 0 1 -213 56 -111 204 592;56 -111 1, 56 592 1, 204 592 1, 204 537 1, 121 537 1, 121 -56 1, 204 -56 1, 204 -111 1 -213 -22 -111 236 555;236 -111 1, 178 -111 1, -22 555 1, 36 555 1 -213 10 -111 158 592;158 592 1, 158 -111 1, 10 -111 1, 10 -56 1, 93 -56 1, 93 537 1, 10 537 1, 10 592 1 -360 14 222 347 555;180 431 1, 75 222 1, 14 222 1, 180 555 1, 347 222 1, 284 222 1 -427 0 -56 427 0;0 -56 1, 0 0 1, 427 0 1, 427 -56 1 -256 40 481 216 602;216 481 1, 160 481 1, 40 602 1, 125 602 1 -427 36 -9 412 416;290 52 1, 221 -9 0, 155 -9 1, 102 -9 0, 69 22 1, 36 53 0, 36 102 1, 36 241 0, 262 241 1, 279 241 1, 279 290 1, 279 361 0, 201 361 1, 140 361 0, 71 325 1, 71 386 1, 148 416 0, 215 416 1, 287 416 0, 320 386 1, 353 356 0, 353 290 1, 353 105 1, 353 42 0, 392 42 1, 398 42 0, 407 44 1, 412 3 1, 384 -9 0, 357 -9 1, 332 -9 0, 315 5 1, 299 19 0, 279 92 1, 279 197 1, 255 198 1, 233 199 0, 205 195 1, 112 182 0, 112 114 1, 112 51 0, 180 51 1, 227 51 0 -427 58 -9 395 592;132 264 1, 132 56 1, 183 46 0, 209 46 1, 315 46 0, 315 207 1, 315 275 0, 294 313 1, 273 352 0, 238 352 1, 191 352 0, 132 331 1, 153 369 0, 176 389 1, 209 416 0, 254 416 1, 317 416 0, 356 361 1, 395 306 0, 395 215 1, 395 108 0, 344 49 1, 294 -9 0, 203 -9 1, 168 -9 0, 132 0 1, 58 -5 1, 58 592 1, 132 592 1 -384 32 -9 347 416;347 12 1, 279 -9 0, 219 -9 1, 135 -9 0, 84 50 1, 32 109 0, 32 204 1, 32 303 0, 85 360 1, 137 416 0, 231 416 1, 278 416 0, 343 403 1, 343 341 1, 281 360 0, 245 360 1, 116 360 0, 116 204 1, 116 130 0, 149 90 1, 182 50 0, 242 50 1, 287 50 0, 347 76 1 -427 32 -9 369 592;295 143 1, 295 351 1, 243 361 0, 218 361 1, 112 361 0, 112 200 1, 112 133 0, 133 94 1, 154 56 0, 189 56 1, 236 56 0, 295 76 1, 274 38 0, 251 18 1, 218 -9 0, 173 -9 1, 110 -9 0, 71 46 1, 32 101 0, 32 193 1, 32 299 0, 83 358 1, 133 416 0, 224 416 1, 259 416 0, 295 407 1, 295 592 1, 369 592 1, 369 0 1, 295 0 1 -427 32 -9 383 416;307 248 1, 306 284 0, 299 303 1, 280 361 0, 215 361 1, 169 361 0, 143 334 1, 117 308 0, 111 248 1, 380 72 1, 380 13 1, 304 -9 0, 240 -9 1, 145 -9 0, 89 50 1, 32 109 0, 32 209 1, 32 304 0, 82 360 1, 132 416 0, 216 416 1, 314 416 0, 354 347 1, 383 296 0, 382 215 1, 382 192 1, 110 192 1, 114 147 0, 125 124 1, 158 47 0, 256 47 1, 312 47 0 -213 12 0 236 602;66 0 1, 66 352 1, 12 352 1, 12 407 1, 66 407 1, 66 456 1, 66 602 0, 181 602 1, 206 602 0, 236 592 1, 236 533 1, 209 546 0, 189 546 1, 162 546 0, 151 528 1, 140 510 0, 140 464 1, 140 407 1, 213 407 1, 213 352 1, 140 352 1, 140 0 1 -427 35 -158 372 416;298 162 1, 298 351 1, 245 361 0, 222 361 1, 115 361 0, 115 215 1, 115 150 0, 136 112 1, 157 74 0, 192 74 1, 239 74 0, 298 95 1, 277 57 0, 254 37 1, 221 9 0, 176 9 1, 113 9 0, 74 64 1, 35 119 0, 35 207 1, 35 306 0, 85 361 1, 135 416 0, 226 416 1, 261 416 0, 298 407 1, 372 407 1, 372 111 1, 372 15 0, 362 -31 1, 334 -158 0, 174 -158 1, 106 -158 0, 38 -135 1, 38 -71 1, 118 -102 0, 173 -102 1, 298 -102 0, 298 31 1 -427 58 0 374 592;58 0 1, 58 592 1, 132 592 1, 132 331 1, 159 369 0, 186 388 1, 224 416 0, 270 416 1, 374 416 0, 374 293 1, 374 0 1, 300 0 1, 300 269 1, 300 318 0, 290 335 1, 279 353 0, 251 353 1, 190 353 0, 132 264 1, 132 0 1 -171 48 0 122 555;48 0 1, 48 407 1, 122 407 1, 122 0 1, 48 481 1, 48 555 1, 122 555 1, 122 481 1 -171 -58 -157 124 555;-58 -145 1, -58 -87 1, -28 -102 0, -2 -102 1, 35 -102 0, 43 -74 1, 50 -51 0, 50 0 1, 50 407 1, 124 407 1, 124 0 1, 124 -157 0, 4 -157 1, -29 -157 0, 50 481 1, 50 555 1, 124 555 1, 124 481 1 -384 58 0 377 592;58 0 1, 58 592 1, 132 592 1, 132 210 1, 268 407 1, 339 407 1, 209 215 1, 377 0 1, 287 0 1, 132 209 1, 132 0 1 -171 48 0 122 592;48 0 1, 48 592 1, 122 592 1, 122 0 1 -640 58 0 587 416;58 0 1, 58 407 1, 132 407 1, 132 331 1, 164 380 0, 185 397 1, 210 416 0, 249 416 1, 298 416 0, 329 385 1, 346 366 0, 359 331 1, 392 380 0, 413 397 1, 437 416 0, 477 416 1, 587 416 0, 587 296 1, 587 0 1, 513 0 1, 512 285 1, 512 355 0, 458 355 1, 410 355 0, 359 273 1, 359 0 1, 285 0 1, 285 285 1, 285 355 0, 231 355 1, 183 355 0, 132 273 1, 132 0 1 -427 58 0 374 416;58 0 1, 58 407 1, 132 407 1, 132 331 1, 159 369 0, 186 388 1, 224 416 0, 270 416 1, 374 416 0, 374 293 1, 374 0 1, 300 0 1, 300 269 1, 300 318 0, 290 335 1, 279 353 0, 251 353 1, 190 353 0, 132 264 1, 132 0 1 -427 32 -9 395 416;213 416 1, 297 416 0, 346 359 1, 395 303 0, 395 204 1, 395 104 0, 346 47 1, 297 -9 0, 211 -9 1, 137 -9 0, 91 38 1, 32 96 0, 32 204 1, 32 302 0, 81 359 1, 130 416 0, 213 361 1, 112 361 0, 112 204 1, 112 46 0, 213 46 1, 315 46 0, 315 205 1, 315 361 0 -427 58 -148 395 416;132 -148 1, 58 -148 1, 58 407 1, 132 407 1, 132 331 1, 153 369 0, 176 389 1, 209 416 0, 254 416 1, 317 416 0, 356 361 1, 395 306 0, 395 215 1, 395 108 0, 344 49 1, 294 -9 0, 203 -9 1, 168 -9 0, 132 0 1, 132 264 1, 132 56 1, 183 46 0, 209 46 1, 315 46 0, 315 207 1, 315 275 0, 294 313 1, 273 352 0, 238 352 1, 191 352 0 -427 32 -148 369 416;295 407 1, 369 407 1, 369 -148 1, 295 -148 1, 295 76 1, 274 38 0, 251 18 1, 218 -9 0, 173 -9 1, 110 -9 0, 71 46 1, 32 101 0, 32 193 1, 32 299 0, 83 358 1, 133 416 0, 224 416 1, 259 416 0, 295 143 1, 295 351 1, 243 361 0, 218 361 1, 112 361 0, 112 200 1, 112 133 0, 133 94 1, 154 56 0, 189 56 1, 236 56 0 -256 58 0 251 416;58 0 1, 58 407 1, 132 407 1, 132 331 1, 148 369 0, 166 389 1, 193 416 0, 230 416 1, 237 416 0, 251 414 1, 251 345 1, 231 352 0, 219 352 1, 178 352 0, 132 269 1, 132 0 1 -384 44 -9 341 416;44 14 1, 44 82 1, 118 46 0, 181 46 1, 266 46 0, 266 106 1, 266 147 0, 207 167 1, 141 189 1, 46 220 0, 46 303 1, 46 416 0, 201 416 1, 246 416 0, 309 404 1, 309 342 1, 253 361 0, 196 361 1, 119 361 0, 119 310 1, 119 273 0, 172 256 1, 231 237 1, 341 201 0, 341 113 1, 341 57 0, 297 24 1, 254 -9 0, 178 -9 1, 119 -9 0 -213 11 -9 210 488;199 -2 1, 176 -9 0, 156 -9 1, 57 -9 0, 57 113 1, 57 352 1, 11 352 1, 11 407 1, 57 407 1, 57 481 1, 131 488 1, 131 407 1, 210 407 1, 210 352 1, 131 352 1, 131 126 1, 131 78 0, 139 62 1, 147 46 0, 174 46 1, 188 46 0, 199 50 1 -427 53 -9 369 407;295 0 1, 295 76 1, 268 38 0, 242 19 1, 203 -9 0, 157 -9 1, 53 -9 0, 53 115 1, 53 407 1, 127 407 1, 127 139 1, 127 90 0, 137 72 1, 148 54 0, 176 54 1, 237 54 0, 295 143 1, 295 407 1, 369 407 1, 369 0 1 -384 7 0 380 407;152 0 1, 7 407 1, 82 407 1, 195 90 1, 314 407 1, 380 407 1, 225 0 1 -555 4 0 549 407;102 0 1, 4 407 1, 77 407 1, 150 101 1, 244 407 1, 318 407 1, 400 99 1, 486 407 1, 549 407 1, 435 0 1, 361 0 1, 275 315 1, 177 0 1 -384 11 0 372 407;11 0 1, 143 215 1, 15 407 1, 101 407 1, 203 255 1, 294 407 1, 362 407 1, 238 202 1, 372 0 1, 287 0 1, 177 164 1, 79 0 1 -384 7 -148 380 407;152 0 1, 7 407 1, 82 407 1, 193 95 1, 314 407 1, 380 407 1, 164 -148 1, 87 -148 1 -384 28 0 356 407;28 0 1, 28 56 1, 261 352 1, 39 352 1, 39 407 1, 352 407 1, 352 352 1, 119 56 1, 356 56 1, 356 0 1 -257 9 -111 213 592;9 269 1, 32 269 1, 90 269 0, 90 330 1, 90 354 0, 84 381 1, 77 414 1, 69 447 0, 69 476 1, 69 537 0, 120 569 1, 156 591 0, 213 592 1, 213 537 1, 193 537 1, 167 537 0, 151 524 1, 134 510 0, 134 490 1, 134 482 0, 139 455 1, 145 416 1, 149 391 0, 149 361 1, 149 290 0, 94 241 1, 149 192 0, 149 120 1, 149 90 0, 145 65 1, 139 27 1, 134 -1 0, 134 -9 1, 134 -29 0, 151 -42 1, 168 -56 0, 193 -56 1, 213 -56 1, 213 -111 1, 153 -110 0, 117 -85 1, 69 -53 0, 69 6 1, 69 35 0, 77 67 1, 84 100 1, 90 127 0, 90 152 1, 90 213 0, 32 213 1, 9 213 1 -200 72 -111 128 592;72 -111 1, 72 592 1, 128 592 1, 128 -111 1 -257 44 -111 247 592;247 213 1, 224 213 1, 167 213 0, 167 152 1, 167 124 0, 173 100 1, 180 67 1, 187 36 0, 187 6 1, 187 -56 0, 135 -88 1, 100 -110 0, 44 -111 1, 44 -56 1, 63 -56 1, 89 -56 0, 105 -42 1, 122 -29 0, 122 -9 1, 122 1 0, 118 27 1, 111 65 1, 107 88 0, 107 120 1, 107 192 0, 162 241 1, 137 263 0, 125 285 1, 107 318 0, 107 361 1, 107 393 0, 111 416 1, 118 455 1, 122 480 0, 122 491 1, 122 510 0, 105 524 1, 88 537 0, 63 537 1, 44 537 1, 44 592 1, 104 591 0, 140 566 1, 187 534 0, 187 475 1, 187 445 0, 180 414 1, 173 381 1, 167 357 0, 167 329 1, 167 269 0, 224 269 1, 247 269 1 -449 39 155 409 290;95 167 1, 39 167 1, 40 206 0, 47 227 1, 69 290 0, 139 290 1, 176 290 0, 213 264 1, 255 235 1, 280 218 1, 291 210 0, 309 210 1, 352 210 0, 354 278 1, 409 278 1, 408 238 0, 401 217 1, 379 155 0, 310 155 1, 273 155 0, 235 180 1, 193 209 1, 168 227 1, 157 234 0, 140 234 1, 96 234 0 -512 7 0 503 666;7 0 1, 218 555 1, 296 555 1, 503 0 1, 419 0 1, 361 154 1, 138 154 1, 80 0 1, 161 212 1, 339 212 1, 250 450 1, 150 602 1, 150 666 1, 215 666 1, 215 602 1, 299 602 1, 299 666 1, 363 666 1, 363 602 1 -512 7 0 503 726;7 0 1, 218 555 1, 296 555 1, 503 0 1, 419 0 1, 361 154 1, 138 154 1, 80 0 1, 161 212 1, 339 212 1, 250 450 1, 257 726 1, 292 726 0, 317 701 1, 342 676 0, 342 641 1, 342 605 0, 317 580 1, 292 555 0, 256 555 1, 225 555 0, 202 576 1, 172 602 0, 172 641 1, 172 676 0, 197 701 1, 222 726 0, 257 693 1, 235 693 0, 219 678 1, 204 663 0, 204 641 1, 204 619 0, 219 603 1, 235 588 0, 256 588 1, 276 588 0, 291 600 1, 310 616 0, 310 641 1, 310 663 0, 294 678 1, 279 693 0 -555 44 -162 507 569;507 29 1, 421 -14 0, 323 -14 1, 186 -14 0, 115 60 1, 44 135 0, 44 277 1, 44 419 0, 116 494 1, 189 569 0, 327 569 1, 404 569 0, 506 545 1, 506 471 1, 390 510 0, 323 510 1, 228 510 0, 178 450 1, 128 390 0, 128 278 1, 128 167 0, 182 108 1, 235 48 0, 332 48 1, 414 48 0, 507 96 1, 288 0 1, 324 0 1, 302 -41 1, 329 -42 0, 348 -56 1, 374 -74 0, 374 -101 1, 374 -126 0, 352 -144 1, 330 -162 0, 298 -162 1, 273 -162 0, 244 -154 1, 244 -124 1, 263 -129 0, 283 -129 1, 322 -129 0, 322 -102 1, 322 -67 0, 252 -66 1 -512 72 0 491 722;72 0 1, 72 555 1, 474 555 1, 474 496 1, 150 496 1, 150 318 1, 437 318 1, 437 260 1, 150 260 1, 150 59 1, 491 59 1, 491 0 1, 224 602 1, 315 722 1, 400 722 1, 280 602 1 -555 62 0 492 689;62 0 1, 62 555 1, 139 555 1, 425 126 1, 425 555 1, 492 555 1, 492 0 1, 415 0 1, 129 429 1, 129 0 1, 162 602 1, 165 637 0, 174 656 1, 191 689 0, 232 689 1, 259 689 0, 282 675 1, 305 661 1, 326 648 0, 337 648 1, 362 648 0, 366 689 1, 412 689 1, 409 654 0, 400 635 1, 383 602 0, 342 602 1, 315 602 0, 292 616 1, 269 630 1, 249 643 0, 237 643 1, 212 643 0, 208 602 1 -597 35 -14 563 666;299 569 1, 418 569 0, 491 490 1, 563 410 0, 563 278 1, 563 144 0, 491 65 1, 418 -14 0, 295 -14 1, 189 -14 0, 120 51 1, 35 132 0, 35 278 1, 35 411 0, 107 490 1, 179 569 0, 299 510 1, 213 510 0, 166 449 1, 119 388 0, 119 278 1, 119 169 0, 166 107 1, 213 45 0, 297 45 1, 374 45 0, 420 95 1, 478 156 0, 478 278 1, 478 388 0, 431 449 1, 383 510 0, 192 602 1, 192 666 1, 257 666 1, 257 602 1, 340 602 1, 340 666 1, 405 666 1, 405 602 1 -555 62 -14 492 666;62 555 1, 141 555 1, 141 205 1, 141 146 0, 151 118 1, 160 90 0, 187 71 1, 225 45 0, 288 45 1, 363 45 0, 393 80 1, 423 115 0, 423 202 1, 423 555 1, 492 555 1, 492 203 1, 492 129 0, 477 91 1, 463 52 0, 423 24 1, 370 -14 0, 281 -14 1, 168 -14 0, 115 39 1, 62 91 0, 62 206 1, 176 602 1, 176 666 1, 240 666 1, 240 602 1, 324 602 1, 324 666 1, 389 666 1, 389 602 1 -427 36 -9 412 602;290 52 1, 221 -9 0, 155 -9 1, 102 -9 0, 69 22 1, 36 53 0, 36 102 1, 36 241 0, 262 241 1, 279 241 1, 279 290 1, 279 361 0, 201 361 1, 140 361 0, 71 325 1, 71 386 1, 148 416 0, 215 416 1, 287 416 0, 320 386 1, 353 356 0, 353 290 1, 353 105 1, 353 42 0, 392 42 1, 398 42 0, 407 44 1, 412 3 1, 384 -9 0, 357 -9 1, 332 -9 0, 315 5 1, 299 19 0, 279 92 1, 279 197 1, 255 198 1, 233 199 0, 205 195 1, 112 182 0, 112 114 1, 112 51 0, 180 51 1, 227 51 0, 168 481 1, 259 602 1, 344 602 1, 224 481 1 -427 36 -9 412 602;290 52 1, 221 -9 0, 155 -9 1, 102 -9 0, 69 22 1, 36 53 0, 36 102 1, 36 241 0, 262 241 1, 279 241 1, 279 290 1, 279 361 0, 201 361 1, 140 361 0, 71 325 1, 71 386 1, 148 416 0, 215 416 1, 287 416 0, 320 386 1, 353 356 0, 353 290 1, 353 105 1, 353 42 0, 392 42 1, 398 42 0, 407 44 1, 412 3 1, 384 -9 0, 357 -9 1, 332 -9 0, 315 5 1, 299 19 0, 279 92 1, 279 197 1, 255 198 1, 233 199 0, 205 195 1, 112 182 0, 112 114 1, 112 51 0, 180 51 1, 227 51 0, 280 481 1, 224 481 1, 104 602 1, 189 602 1 -427 36 -9 412 602;290 52 1, 221 -9 0, 155 -9 1, 102 -9 0, 69 22 1, 36 53 0, 36 102 1, 36 241 0, 262 241 1, 279 241 1, 279 290 1, 279 361 0, 201 361 1, 140 361 0, 71 325 1, 71 386 1, 148 416 0, 215 416 1, 287 416 0, 320 386 1, 353 356 0, 353 290 1, 353 105 1, 353 42 0, 392 42 1, 398 42 0, 407 44 1, 412 3 1, 384 -9 0, 357 -9 1, 332 -9 0, 315 5 1, 299 19 0, 279 92 1, 279 197 1, 255 198 1, 233 199 0, 205 195 1, 112 182 0, 112 114 1, 112 51 0, 180 51 1, 227 51 0, 61 481 1, 151 602 1, 233 602 1, 323 481 1, 268 481 1, 192 557 1, 192 557 1, 116 481 1 -427 36 -9 412 546;290 52 1, 221 -9 0, 155 -9 1, 102 -9 0, 69 22 1, 36 53 0, 36 102 1, 36 241 0, 262 241 1, 279 241 1, 279 290 1, 279 361 0, 201 361 1, 140 361 0, 71 325 1, 71 386 1, 148 416 0, 215 416 1, 287 416 0, 320 386 1, 353 356 0, 353 290 1, 353 105 1, 353 42 0, 392 42 1, 398 42 0, 407 44 1, 412 3 1, 384 -9 0, 357 -9 1, 332 -9 0, 315 5 1, 299 19 0, 279 92 1, 279 197 1, 255 198 1, 233 199 0, 205 195 1, 112 182 0, 112 114 1, 112 51 0, 180 51 1, 227 51 0, 85 481 1, 85 546 1, 150 546 1, 150 481 1, 234 481 1, 234 546 1, 298 546 1, 298 481 1 -427 36 -9 412 569;290 52 1, 221 -9 0, 155 -9 1, 102 -9 0, 69 22 1, 36 53 0, 36 102 1, 36 241 0, 262 241 1, 279 241 1, 279 290 1, 279 361 0, 201 361 1, 140 361 0, 71 325 1, 71 386 1, 148 416 0, 215 416 1, 287 416 0, 320 386 1, 353 356 0, 353 290 1, 353 105 1, 353 42 0, 392 42 1, 398 42 0, 407 44 1, 412 3 1, 384 -9 0, 357 -9 1, 332 -9 0, 315 5 1, 299 19 0, 279 92 1, 279 197 1, 255 198 1, 233 199 0, 205 195 1, 112 182 0, 112 114 1, 112 51 0, 180 51 1, 227 51 0, 67 481 1, 70 516 0, 79 535 1, 96 569 0, 137 569 1, 164 569 0, 187 555 1, 210 541 1, 231 528 0, 242 528 1, 267 528 0, 271 569 1, 317 569 1, 314 534 0, 305 515 1, 288 481 0, 247 481 1, 220 481 0, 197 496 1, 174 510 1, 154 522 0, 142 522 1, 117 522 0, 113 481 1 -427 36 -9 412 651;290 52 1, 221 -9 0, 155 -9 1, 102 -9 0, 69 22 1, 36 53 0, 36 102 1, 36 241 0, 262 241 1, 279 241 1, 279 290 1, 279 361 0, 201 361 1, 140 361 0, 71 325 1, 71 386 1, 148 416 0, 215 416 1, 287 416 0, 320 386 1, 353 356 0, 353 290 1, 353 105 1, 353 42 0, 392 42 1, 398 42 0, 407 44 1, 412 3 1, 384 -9 0, 357 -9 1, 332 -9 0, 315 5 1, 299 19 0, 279 92 1, 279 197 1, 255 198 1, 233 199 0, 205 195 1, 112 182 0, 112 114 1, 112 51 0, 180 51 1, 227 51 0, 192 651 1, 227 651 0, 252 627 1, 277 602 0, 277 567 1, 277 531 0, 252 506 1, 227 481 0, 191 481 1, 160 481 0, 137 501 1, 107 527 0, 107 566 1, 107 602 0, 132 626 1, 156 651 0, 192 619 1, 170 619 0, 154 603 1, 139 588 0, 139 566 1, 139 545 0, 154 529 1, 170 513 0, 191 513 1, 211 513 0, 226 526 1, 245 542 0, 245 567 1, 245 588 0, 229 603 1, 214 619 0 -384 32 -162 347 416;347 12 1, 279 -9 0, 219 -9 1, 135 -9 0, 84 50 1, 32 109 0, 32 204 1, 32 303 0, 85 360 1, 137 416 0, 231 416 1, 278 416 0, 343 403 1, 343 341 1, 281 360 0, 245 360 1, 116 360 0, 116 204 1, 116 130 0, 149 90 1, 182 50 0, 242 50 1, 287 50 0, 347 76 1, 235 0 1, 271 0 1, 248 -41 1, 275 -42 0, 295 -56 1, 321 -74 0, 321 -101 1, 321 -126 0, 299 -144 1, 277 -162 0, 245 -162 1, 220 -162 0, 191 -154 1, 191 -124 1, 210 -129 0, 230 -129 1, 269 -129 0, 269 -102 1, 269 -67 0, 199 -66 1 -427 32 -9 383 602;307 248 1, 306 284 0, 299 303 1, 280 361 0, 215 361 1, 169 361 0, 143 334 1, 117 308 0, 111 248 1, 380 72 1, 380 13 1, 304 -9 0, 240 -9 1, 145 -9 0, 89 50 1, 32 109 0, 32 209 1, 32 304 0, 82 360 1, 132 416 0, 216 416 1, 314 416 0, 354 347 1, 383 296 0, 382 215 1, 382 192 1, 110 192 1, 114 147 0, 125 124 1, 158 47 0, 256 47 1, 312 47 0, 168 481 1, 259 602 1, 344 602 1, 224 481 1 -427 32 -9 383 602;307 248 1, 306 284 0, 299 303 1, 280 361 0, 215 361 1, 169 361 0, 143 334 1, 117 308 0, 111 248 1, 380 72 1, 380 13 1, 304 -9 0, 240 -9 1, 145 -9 0, 89 50 1, 32 109 0, 32 209 1, 32 304 0, 82 360 1, 132 416 0, 216 416 1, 314 416 0, 354 347 1, 383 296 0, 382 215 1, 382 192 1, 110 192 1, 114 147 0, 125 124 1, 158 47 0, 256 47 1, 312 47 0, 280 481 1, 224 481 1, 104 602 1, 189 602 1 -427 32 -9 383 602;307 248 1, 306 284 0, 299 303 1, 280 361 0, 215 361 1, 169 361 0, 143 334 1, 117 308 0, 111 248 1, 380 72 1, 380 13 1, 304 -9 0, 240 -9 1, 145 -9 0, 89 50 1, 32 109 0, 32 209 1, 32 304 0, 82 360 1, 132 416 0, 216 416 1, 314 416 0, 354 347 1, 383 296 0, 382 215 1, 382 192 1, 110 192 1, 114 147 0, 125 124 1, 158 47 0, 256 47 1, 312 47 0, 61 481 1, 151 602 1, 233 602 1, 323 481 1, 268 481 1, 192 557 1, 192 557 1, 116 481 1 -427 32 -9 383 546;307 248 1, 306 284 0, 299 303 1, 280 361 0, 215 361 1, 169 361 0, 143 334 1, 117 308 0, 111 248 1, 380 72 1, 380 13 1, 304 -9 0, 240 -9 1, 145 -9 0, 89 50 1, 32 109 0, 32 209 1, 32 304 0, 82 360 1, 132 416 0, 216 416 1, 314 416 0, 354 347 1, 383 296 0, 382 215 1, 382 192 1, 110 192 1, 114 147 0, 125 124 1, 158 47 0, 256 47 1, 312 47 0, 85 481 1, 85 546 1, 150 546 1, 150 481 1, 234 481 1, 234 546 1, 298 546 1, 298 481 1 -171 40 0 216 602;48 0 1, 48 407 1, 122 407 1, 122 0 1, 40 481 1, 131 602 1, 216 602 1, 96 481 1 -171 -24 0 152 602;48 0 1, 48 407 1, 122 407 1, 122 0 1, 152 481 1, 96 481 1, -24 602 1, 61 602 1 -171 -67 0 195 602;48 0 1, 48 407 1, 122 407 1, 122 0 1, -67 481 1, 23 602 1, 105 602 1, 195 481 1, 140 481 1, 64 557 1, 64 557 1, -12 481 1 -171 -21 0 192 546;48 0 1, 48 407 1, 122 407 1, 122 0 1, -21 481 1, -21 546 1, 44 546 1, 44 481 1, 127 481 1, 127 546 1, 192 546 1, 192 481 1 -427 58 0 374 569;58 0 1, 58 407 1, 132 407 1, 132 331 1, 159 369 0, 186 388 1, 224 416 0, 270 416 1, 374 416 0, 374 293 1, 374 0 1, 300 0 1, 300 269 1, 300 318 0, 290 335 1, 279 353 0, 251 353 1, 190 353 0, 132 264 1, 132 0 1, 67 481 1, 70 516 0, 79 535 1, 96 569 0, 137 569 1, 164 569 0, 187 555 1, 210 541 1, 231 528 0, 242 528 1, 267 528 0, 271 569 1, 317 569 1, 314 534 0, 305 515 1, 288 481 0, 247 481 1, 220 481 0, 197 496 1, 174 510 1, 154 522 0, 142 522 1, 117 522 0, 113 481 1 -427 32 -9 395 602;213 416 1, 297 416 0, 346 359 1, 395 303 0, 395 204 1, 395 104 0, 346 47 1, 297 -9 0, 211 -9 1, 137 -9 0, 91 38 1, 32 96 0, 32 204 1, 32 302 0, 81 359 1, 130 416 0, 213 361 1, 112 361 0, 112 204 1, 112 46 0, 213 46 1, 315 46 0, 315 205 1, 315 361 0, 168 481 1, 259 602 1, 344 602 1, 224 481 1 -427 32 -9 395 602;213 416 1, 297 416 0, 346 359 1, 395 303 0, 395 204 1, 395 104 0, 346 47 1, 297 -9 0, 211 -9 1, 137 -9 0, 91 38 1, 32 96 0, 32 204 1, 32 302 0, 81 359 1, 130 416 0, 213 361 1, 112 361 0, 112 204 1, 112 46 0, 213 46 1, 315 46 0, 315 205 1, 315 361 0, 280 481 1, 224 481 1, 104 602 1, 189 602 1 -427 32 -9 395 602;213 416 1, 297 416 0, 346 359 1, 395 303 0, 395 204 1, 395 104 0, 346 47 1, 297 -9 0, 211 -9 1, 137 -9 0, 91 38 1, 32 96 0, 32 204 1, 32 302 0, 81 359 1, 130 416 0, 213 361 1, 112 361 0, 112 204 1, 112 46 0, 213 46 1, 315 46 0, 315 205 1, 315 361 0, 61 481 1, 151 602 1, 233 602 1, 323 481 1, 268 481 1, 192 557 1, 192 557 1, 116 481 1 -427 32 -9 395 546;213 416 1, 297 416 0, 346 359 1, 395 303 0, 395 204 1, 395 104 0, 346 47 1, 297 -9 0, 211 -9 1, 137 -9 0, 91 38 1, 32 96 0, 32 204 1, 32 302 0, 81 359 1, 130 416 0, 213 361 1, 112 361 0, 112 204 1, 112 46 0, 213 46 1, 315 46 0, 315 205 1, 315 361 0, 85 481 1, 85 546 1, 150 546 1, 150 481 1, 234 481 1, 234 546 1, 298 546 1, 298 481 1 -427 32 -9 395 569;213 416 1, 297 416 0, 346 359 1, 395 303 0, 395 204 1, 395 104 0, 346 47 1, 297 -9 0, 211 -9 1, 137 -9 0, 91 38 1, 32 96 0, 32 204 1, 32 302 0, 81 359 1, 130 416 0, 213 361 1, 112 361 0, 112 204 1, 112 46 0, 213 46 1, 315 46 0, 315 205 1, 315 361 0, 67 481 1, 70 516 0, 79 535 1, 96 569 0, 137 569 1, 164 569 0, 187 555 1, 210 541 1, 231 528 0, 242 528 1, 267 528 0, 271 569 1, 317 569 1, 314 534 0, 305 515 1, 288 481 0, 247 481 1, 220 481 0, 197 496 1, 174 510 1, 154 522 0, 142 522 1, 117 522 0, 113 481 1 -427 53 -9 369 602;295 0 1, 295 76 1, 268 38 0, 242 19 1, 203 -9 0, 157 -9 1, 53 -9 0, 53 115 1, 53 407 1, 127 407 1, 127 139 1, 127 90 0, 137 72 1, 148 54 0, 176 54 1, 237 54 0, 295 143 1, 295 407 1, 369 407 1, 369 0 1, 168 481 1, 259 602 1, 344 602 1, 224 481 1 -427 53 -9 369 602;295 0 1, 295 76 1, 268 38 0, 242 19 1, 203 -9 0, 157 -9 1, 53 -9 0, 53 115 1, 53 407 1, 127 407 1, 127 139 1, 127 90 0, 137 72 1, 148 54 0, 176 54 1, 237 54 0, 295 143 1, 295 407 1, 369 407 1, 369 0 1, 280 481 1, 224 481 1, 104 602 1, 189 602 1 -427 53 -9 369 602;295 0 1, 295 76 1, 268 38 0, 242 19 1, 203 -9 0, 157 -9 1, 53 -9 0, 53 115 1, 53 407 1, 127 407 1, 127 139 1, 127 90 0, 137 72 1, 148 54 0, 176 54 1, 237 54 0, 295 143 1, 295 407 1, 369 407 1, 369 0 1, 61 481 1, 151 602 1, 233 602 1, 323 481 1, 268 481 1, 192 557 1, 192 557 1, 116 481 1 -427 53 -9 369 546;295 0 1, 295 76 1, 268 38 0, 242 19 1, 203 -9 0, 157 -9 1, 53 -9 0, 53 115 1, 53 407 1, 127 407 1, 127 139 1, 127 90 0, 137 72 1, 148 54 0, 176 54 1, 237 54 0, 295 143 1, 295 407 1, 369 407 1, 369 0 1, 85 481 1, 85 546 1, 150 546 1, 150 481 1, 234 481 1, 234 546 1, 298 546 1, 298 481 1 -427 56 -111 371 555;177 -111 1, 186 315 1, 56 305 1, 56 361 1, 186 352 1, 177 555 1, 251 555 1, 241 352 1, 371 361 1, 371 305 1, 241 315 1, 251 -111 1 -307 43 347 265 569;154 569 1, 199 569 0, 232 536 1, 265 504 0, 265 458 1, 265 412 0, 232 380 1, 199 347 0, 152 347 1, 113 347 0, 82 373 1, 43 408 0, 43 458 1, 43 504 0, 75 536 1, 108 569 0, 154 523 1, 127 523 0, 108 504 1, 89 485 0, 89 458 1, 89 432 0, 108 413 1, 127 393 0, 153 393 1, 177 393 0, 195 409 1, 219 428 0, 219 458 1, 219 485 0, 200 504 1, 180 523 0 -427 65 0 380 555;237 0 1, 237 65 1, 166 74 0, 123 120 1, 65 181 0, 65 278 1, 65 379 0, 124 435 1, 165 475 0, 237 486 1, 237 555 1, 274 555 1, 274 486 1, 324 483 0, 380 468 1, 380 406 1, 314 429 0, 274 432 1, 274 117 1, 325 117 0, 380 143 1, 380 87 1, 324 65 0, 274 65 1, 274 0 1, 237 429 1, 215 426 0, 203 420 1, 146 390 0, 146 277 1, 146 199 0, 180 158 1, 200 135 0, 237 122 1 -427 45 0 362 569;45 0 1, 45 65 1, 124 90 0, 124 183 1, 124 269 1, 57 269 1, 57 324 1, 124 324 1, 124 405 1, 124 485 0, 162 527 1, 200 569 0, 272 569 1, 310 569 0, 357 558 1, 357 495 1, 308 513 0, 269 513 1, 198 513 0, 198 427 1, 198 324 1, 279 324 1, 279 269 1, 198 269 1, 198 221 1, 198 153 0, 180 120 1, 166 92 0, 133 65 1, 362 65 1, 362 0 1 -427 48 -125 379 569;48 -98 1, 48 -30 1, 142 -69 0, 203 -69 1, 250 -69 0, 281 -51 1, 311 -32 0, 311 -1 1, 311 27 0, 288 43 1, 270 56 0, 225 75 1, 159 104 1, 50 150 0, 50 230 1, 50 284 0, 105 342 1, 52 379 0, 52 434 1, 52 494 0, 101 531 1, 149 569 0, 229 569 1, 284 569 0, 358 551 1, 358 491 1, 280 513 0, 228 513 1, 179 513 0, 149 494 1, 119 475 0, 119 445 1, 119 404 0, 185 377 1, 236 357 1, 314 325 0, 343 296 1, 373 266 0, 373 221 1, 373 168 0, 317 104 1, 379 66 0, 379 3 1, 379 -56 0, 329 -90 1, 279 -125 0, 196 -125 1, 138 -125 0, 281 128 1, 308 166 0, 308 200 1, 308 228 0, 290 245 1, 272 263 0, 226 282 1, 143 317 1, 115 282 0, 115 249 1, 115 198 0, 201 162 1 -269 30 208 239 416;135 416 1, 178 416 0, 208 386 1, 239 355 0, 239 312 1, 239 269 0, 208 239 1, 177 208 0, 133 208 1, 96 208 0, 67 233 1, 30 265 0, 30 312 1, 30 356 0, 61 386 1, 92 416 0 -413 33 -111 338 555;190 -111 1, 190 278 1, 122 284 0, 83 316 1, 33 358 0, 33 433 1, 33 499 0, 69 527 1, 105 555 0, 190 555 1, 338 555 1, 338 -111 1, 292 -111 1, 292 509 1, 237 509 1, 237 -111 1 -469 48 -9 437 602;48 0 1, 48 432 1, 48 527 0, 83 564 1, 117 602 0, 206 602 1, 349 602 0, 349 500 1, 349 451 0, 300 399 1, 261 357 0, 261 337 1, 261 312 0, 303 281 1, 372 230 1, 437 182 0, 437 111 1, 437 -9 0, 296 -9 1, 234 -9 0, 183 11 1, 183 76 1, 253 46 0, 296 46 1, 368 46 0, 368 104 1, 368 141 0, 324 174 1, 244 236 1, 195 273 0, 195 315 1, 195 351 0, 238 407 1, 275 455 0, 275 487 1, 275 546 0, 201 546 1, 157 546 0, 140 528 1, 122 509 0, 122 463 1, 122 0 1 -566 6 0 561 555;283 555 1, 398 555 0, 479 474 1, 561 393 0, 561 278 1, 561 162 0, 479 81 1, 398 0 0, 280 0 1, 179 0 0, 104 66 1, 6 152 0, 6 278 1, 6 393 0, 87 474 1, 169 555 0, 283 516 1, 185 516 0, 115 446 1, 45 376 0, 45 278 1, 45 181 0, 115 110 1, 184 40 0, 281 40 1, 370 40 0, 437 96 1, 521 168 0, 521 278 1, 521 376 0, 451 446 1, 381 516 0, 192 126 1, 192 426 1, 286 426 1, 377 426 0, 377 353 1, 377 301 0, 324 266 1, 415 126 1, 359 126 1, 278 252 1, 240 252 1, 240 126 1, 237 289 1, 251 289 1, 330 289 0, 330 347 1, 330 396 0, 264 396 1, 237 396 1 -566 6 0 561 555;283 555 1, 398 555 0, 479 474 1, 561 393 0, 561 278 1, 561 162 0, 479 81 1, 398 0 0, 280 0 1, 179 0 0, 104 66 1, 6 152 0, 6 278 1, 6 393 0, 87 474 1, 169 555 0, 283 516 1, 185 516 0, 115 446 1, 45 376 0, 45 278 1, 45 181 0, 115 110 1, 184 40 0, 281 40 1, 370 40 0, 437 96 1, 521 168 0, 521 278 1, 521 376 0, 451 446 1, 381 516 0, 384 137 1, 333 119 0, 293 119 1, 226 119 0, 183 163 1, 140 207 0, 140 276 1, 140 348 0, 182 391 1, 224 434 0, 295 434 1, 332 434 0, 375 425 1, 384 423 1, 384 379 1, 336 399 0, 298 399 1, 251 399 0, 222 365 1, 193 332 0, 193 277 1, 193 222 0, 223 191 1, 253 159 0, 303 159 1, 343 159 0, 384 181 1 -768 83 278 662 555;176 278 1, 176 509 1, 83 509 1, 83 555 1, 333 555 1, 333 509 1, 240 509 1, 240 278 1, 380 278 1, 380 555 1, 467 555 1, 525 395 1, 582 555 1, 662 555 1, 662 278 1, 597 278 1, 597 479 1, 536 301 1, 491 301 1, 430 463 1, 430 278 1 -256 40 481 216 602;40 481 1, 131 602 1, 216 602 1, 96 481 1 -256 21 481 234 546;21 481 1, 21 546 1, 86 546 1, 86 481 1, 170 481 1, 170 546 1, 234 546 1, 234 481 1 -213 0 0 0 0; -768 7 0 746 555;224 213 1, 381 213 1, 381 460 1, 7 0 1, 360 555 1, 730 555 1, 730 496 1, 459 496 1, 459 318 1, 693 318 1, 693 260 1, 459 260 1, 459 59 1, 746 59 1, 746 0 1, 381 0 1, 381 155 1, 187 155 1, 89 0 1 -597 35 -14 563 569;39 -14 1, 104 69 1, 74 107 0, 58 146 1, 35 204 0, 35 278 1, 35 410 0, 107 490 1, 179 569 0, 298 569 1, 389 569 0, 459 519 1, 498 569 1, 563 569 1, 496 484 1, 525 446 0, 541 407 1, 563 350 0, 563 277 1, 563 144 0, 491 65 1, 419 -14 0, 299 -14 1, 211 -14 0, 142 34 1, 104 -14 1, 184 88 1, 233 45 0, 299 45 1, 384 45 0, 431 106 1, 479 167 0, 479 276 1, 479 363 0, 448 423 1, 416 465 1, 366 510 0, 299 510 1, 214 510 0, 167 449 1, 119 388 0, 119 279 1, 119 190 0, 152 129 1 -213 0 0 0 0; -449 39 0 409 444;196 111 1, 196 250 1, 39 250 1, 39 305 1, 196 305 1, 196 444 1, 252 444 1, 252 305 1, 409 305 1, 409 250 1, 252 250 1, 252 111 1, 39 0 1, 39 56 1, 409 56 1, 409 0 1 -213 0 0 0 0; -213 0 0 0 0; -427 9 0 404 555;170 0 1, 170 129 1, 59 129 1, 59 176 1, 170 176 1, 170 231 1, 59 231 1, 59 278 1, 170 278 1, 9 555 1, 95 555 1, 216 346 1, 216 346 1, 338 555 1, 404 555 1, 244 278 1, 355 278 1, 355 231 1, 244 231 1, 244 176 1, 355 176 1, 355 129 1, 244 129 1, 244 0 1 -427 53 -148 369 407;53 407 1, 127 407 1, 127 139 1, 127 90 0, 137 72 1, 148 54 0, 176 54 1, 237 54 0, 295 143 1, 295 407 1, 369 407 1, 369 0 1, 295 0 1, 295 76 1, 236 -7 0, 176 -7 1, 152 -7 0, 127 9 1, 127 -148 1, 53 -148 1 -213 0 0 0 0; -213 0 0 0 0; -213 0 0 0 0; -213 0 0 0 0; -213 0 0 0 0; -284 32 308 267 569;182 343 1, 144 308 0, 105 308 1, 74 308 0, 53 328 1, 32 348 0, 32 378 1, 32 464 0, 161 464 1, 179 464 1, 179 490 1, 179 531 0, 133 531 1, 97 531 0, 54 509 1, 54 551 1, 102 569 0, 144 569 1, 234 569 0, 234 492 1, 234 380 1, 234 345 0, 255 346 1, 257 346 1, 258 346 0, 261 346 1, 263 346 0, 265 347 1, 267 315 1, 248 308 0, 231 308 1, 194 308 0, 184 343 1, 179 374 1, 179 431 1, 164 431 1, 88 431 0, 88 385 1, 88 350 0, 124 350 1, 150 350 0 -281 28 308 252 569;140 569 1, 192 569 0, 222 534 1, 252 499 0, 252 439 1, 252 378 0, 222 343 1, 192 308 0, 139 308 1, 93 308 0, 64 337 1, 28 373 0, 28 439 1, 28 499 0, 58 534 1, 89 569 0, 140 531 1, 87 531 0, 87 439 1, 87 347 0, 140 347 1, 194 347 0, 194 440 1, 194 531 0 -213 0 0 0 0; -683 36 -9 638 416;288 92 1, 288 197 1, 260 198 1, 235 199 0, 207 195 1, 110 181 0, 110 114 1, 110 51 0, 184 51 1, 236 51 0, 344 369 1, 400 416 0, 472 416 1, 638 416 0, 638 215 1, 638 192 1, 360 192 1, 365 148 0, 375 125 1, 408 47 0, 512 47 1, 568 47 0, 636 72 1, 636 13 1, 559 -9 0, 494 -9 1, 423 -9 0, 374 23 1, 347 41 0, 322 77 1, 279 31 0, 248 12 1, 211 -9 0, 160 -9 1, 104 -9 0, 70 21 1, 36 53 0, 36 102 1, 36 241 0, 270 241 1, 288 241 1, 288 290 1, 288 329 0, 269 345 1, 251 361 0, 205 361 1, 141 361 0, 71 325 1, 71 386 1, 148 416 0, 218 416 1, 303 416 0, 364 248 1, 564 248 1, 563 284 0, 556 302 1, 536 361 0, 469 361 1, 422 361 0, 396 333 1, 371 308 0 -469 54 -9 416 416;131 22 1, 108 -9 1, 54 -9 1, 99 53 1, 54 116 0, 54 204 1, 54 303 0, 102 360 1, 151 416 0, 236 416 1, 296 416 0, 339 385 1, 362 416 1, 416 416 1, 371 354 1, 416 291 0, 416 203 1, 416 105 0, 367 48 1, 319 -9 0, 234 -9 1, 174 -9 0, 169 75 1, 170 75 1, 185 59 0, 198 53 1, 215 46 0, 234 46 1, 336 46 0, 336 204 1, 336 251 0, 325 291 1, 301 332 1, 300 333 1, 272 361 0, 235 361 1, 134 361 0, 134 205 1, 134 152 0, 145 116 1 -469 69 -162 398 407;309 407 1, 309 333 1, 235 333 1, 235 407 1, 309 259 1, 309 239 1, 309 147 0, 248 99 1, 214 73 1, 148 22 0, 148 -33 1, 148 -107 0, 251 -107 1, 314 -107 0, 398 -78 1, 398 -141 1, 316 -162 0, 246 -162 1, 169 -162 0, 125 -137 1, 69 -105 0, 69 -34 1, 69 36 0, 141 81 1, 171 99 1, 209 122 0, 222 147 1, 235 171 0, 235 218 1, 235 259 1 -256 91 -148 165 407;165 407 1, 165 333 1, 91 333 1, 91 407 1, 156 259 1, 165 -37 1, 165 -148 1, 91 -148 1, 91 -37 1, 100 259 1 -449 32 111 402 333;32 278 1, 32 333 1, 402 333 1, 402 111 1, 347 111 1, 347 278 1 -213 0 0 0 0; -427 18 -111 384 569;18 -111 1, 94 269 1, 32 269 1, 32 324 1, 105 324 1, 113 363 1, 154 569 0, 300 569 1, 339 569 0, 384 558 1, 373 500 1, 332 514 0, 299 514 1, 218 514 0, 195 398 1, 180 324 1, 251 324 1, 251 269 1, 169 269 1, 94 -111 1 -213 0 0 0 0; -213 0 0 0 0; -427 43 37 376 370;376 342 1, 265 204 1, 376 65 1, 339 37 1, 191 204 1, 339 370 1, 228 342 1, 117 204 1, 228 65 1, 191 37 1, 43 204 1, 191 370 1 -427 51 37 384 370;51 65 1, 162 204 1, 51 342 1, 88 370 1, 236 204 1, 88 37 1, 199 65 1, 310 204 1, 199 342 1, 236 370 1, 384 204 1, 236 37 1 -768 93 0 676 74;93 0 1, 93 74 1, 167 74 1, 167 0 1, 347 0 1, 347 74 1, 421 74 1, 421 0 1, 602 0 1, 602 74 1, 676 74 1, 676 0 1 -427 0 0 0 0; -512 7 0 503 722;7 0 1, 218 555 1, 296 555 1, 503 0 1, 419 0 1, 361 154 1, 138 154 1, 80 0 1, 161 212 1, 339 212 1, 250 450 1, 312 602 1, 257 602 1, 137 722 1, 222 722 1 -512 7 0 503 689;7 0 1, 218 555 1, 296 555 1, 503 0 1, 419 0 1, 361 154 1, 138 154 1, 80 0 1, 161 212 1, 339 212 1, 250 450 1, 132 602 1, 135 636 0, 144 656 1, 161 689 0, 202 689 1, 229 689 0, 252 675 1, 275 661 1, 296 648 0, 307 648 1, 332 648 0, 336 689 1, 382 689 1, 379 654 0, 370 635 1, 353 602 0, 312 602 1, 285 602 0, 262 616 1, 239 630 1, 219 643 0, 207 643 1, 182 643 0, 178 602 1 -597 35 -14 563 689;299 569 1, 418 569 0, 491 490 1, 563 410 0, 563 278 1, 563 144 0, 491 65 1, 418 -14 0, 295 -14 1, 189 -14 0, 120 51 1, 35 132 0, 35 278 1, 35 411 0, 107 490 1, 179 569 0, 299 510 1, 213 510 0, 166 449 1, 119 388 0, 119 278 1, 119 169 0, 166 107 1, 213 45 0, 297 45 1, 374 45 0, 420 95 1, 478 156 0, 478 278 1, 478 388 0, 431 449 1, 383 510 0, 174 602 1, 176 636 0, 186 656 1, 203 689 0, 244 689 1, 271 689 0, 294 675 1, 316 661 1, 338 648 0, 349 648 1, 373 648 0, 377 689 1, 423 689 1, 421 654 0, 411 635 1, 395 602 0, 354 602 1, 327 602 0, 303 616 1, 281 630 1, 260 643 0, 248 643 1, 224 643 0, 220 602 1 -768 35 -14 747 569;423 0 1, 423 22 1, 362 -14 0, 291 -14 1, 176 -14 0, 105 66 1, 35 147 0, 35 278 1, 35 411 0, 106 490 1, 177 569 0, 294 569 1, 363 569 0, 423 534 1, 423 555 1, 730 555 1, 730 496 1, 502 496 1, 502 318 1, 693 318 1, 693 260 1, 502 260 1, 502 59 1, 747 59 1, 747 0 1, 423 213 1, 423 342 1, 423 430 0, 393 470 1, 363 510 0, 296 510 1, 212 510 0, 165 449 1, 119 388 0, 119 278 1, 119 167 0, 165 106 1, 213 45 0, 296 45 1, 423 45 0 -725 32 -9 680 416;371 341 1, 395 375 0, 422 392 1, 461 416 0, 516 416 1, 612 416 0, 650 348 1, 678 297 0, 680 192 1, 412 192 1, 419 120 0, 447 87 1, 481 46 0, 560 46 1, 618 46 0, 680 73 1, 680 14 1, 608 -9 0, 542 -9 1, 474 -9 0, 434 12 1, 404 29 0, 373 65 1, 350 32 0, 323 15 1, 283 -9 0, 227 -9 1, 138 -9 0, 85 48 1, 32 106 0, 32 204 1, 32 302 0, 86 359 1, 138 416 0, 228 416 1, 287 416 0, 327 388 1, 350 372 0, 228 361 1, 111 361 0, 111 205 1, 111 137 0, 134 98 1, 163 46 0, 229 46 1, 337 46 0, 337 204 1, 337 276 0, 314 315 1, 288 361 0, 414 243 1, 601 243 1, 600 291 0, 588 317 1, 567 361 0, 514 361 1, 462 361 0, 437 321 1, 420 295 0 -427 38 204 390 250;38 204 1, 38 250 1, 390 250 1, 390 204 1 -768 37 204 731 241;37 204 1, 37 241 1, 731 241 1, 731 204 1 -256 21 398 225 592;225 592 1, 225 564 1, 198 551 0, 198 480 1, 198 472 1, 225 472 1, 225 398 1, 151 398 1, 151 460 1, 151 573 0, 95 592 1, 95 564 1, 69 551 0, 69 480 1, 69 472 1, 95 472 1, 95 398 1, 21 398 1, 21 460 1, 22 573 0 -256 31 398 234 592;31 398 1, 31 426 1, 57 440 0, 57 510 1, 57 518 1, 31 518 1, 31 592 1, 105 592 1, 105 530 1, 104 417 0, 160 398 1, 160 426 1, 187 440 0, 187 510 1, 187 518 1, 160 518 1, 160 592 1, 234 592 1, 234 530 1, 234 417 0 -171 35 380 127 592;127 592 1, 127 564 1, 91 554 0, 91 480 1, 91 472 1, 127 472 1, 127 380 1, 35 380 1, 35 460 1, 35 582 0 -171 44 380 136 592;44 380 1, 44 407 1, 80 417 0, 80 492 1, 80 500 1, 44 500 1, 44 592 1, 136 592 1, 136 512 1, 136 389 0 -449 39 0 409 444;39 194 1, 39 250 1, 409 250 1, 409 194 1, 178 352 1, 178 444 1, 270 444 1, 270 352 1, 178 0 1, 178 93 1, 270 93 1, 270 0 1 -213 0 0 0 0; -384 7 -148 380 546;152 0 1, 7 407 1, 82 407 1, 193 95 1, 314 407 1, 380 407 1, 164 -148 1, 87 -148 1, 85 481 1, 85 546 1, 150 546 1, 150 481 1, 234 481 1, 234 546 1, 298 546 1, 298 481 1 -512 11 0 501 666;210 0 1, 210 231 1, 11 555 1, 101 555 1, 259 298 1, 428 555 1, 501 555 1, 289 233 1, 289 0 1, 158 602 1, 158 666 1, 223 666 1, 223 602 1, 306 602 1, 306 666 1, 371 666 1, 371 602 1 -128 -165 -14 293 569;-165 -14 1, 243 569 1, 293 569 1, -114 -14 1 -427 46 110 381 446;137 168 1, 78 110 1, 46 143 1, 104 201 1, 80 240 0, 80 278 1, 80 315 0, 104 354 1, 46 413 1, 78 446 1, 137 387 1, 174 411 0, 213 411 1, 253 411 0, 290 387 1, 348 446 1, 381 413 1, 323 354 1, 347 315 0, 347 278 1, 347 240 0, 323 201 1, 381 143 1, 348 110 1, 290 168 1, 253 144 0, 213 144 1, 174 144 0, 213 365 1, 177 365 0, 152 339 1, 126 314 0, 126 277 1, 126 241 0, 152 216 1, 176 191 0, 212 191 1, 246 191 0, 270 211 1, 300 237 0, 300 278 1, 300 314 0, 275 339 1, 250 365 0 -256 28 37 213 370;213 342 1, 102 204 1, 213 65 1, 176 37 1, 28 204 1, 176 370 1 -256 43 37 228 370;43 65 1, 154 204 1, 43 342 1, 80 370 1, 228 204 1, 80 37 1 -384 12 0 336 602;66 0 1, 66 352 1, 12 352 1, 12 407 1, 66 407 1, 66 456 1, 66 602 0, 181 602 1, 206 602 0, 236 592 1, 236 533 1, 209 546 0, 189 546 1, 162 546 0, 151 528 1, 140 510 0, 140 464 1, 140 407 1, 336 407 1, 336 0 1, 262 0 1, 262 352 1, 140 352 1, 140 0 1, 262 481 1, 262 555 1, 336 555 1, 336 481 1 -384 12 0 336 602;66 0 1, 66 352 1, 12 352 1, 12 407 1, 66 407 1, 66 456 1, 66 602 0, 179 602 1, 262 592 1, 336 592 1, 336 0 1, 262 0 1, 262 537 1, 246 540 1, 214 546 0, 192 546 1, 159 546 0, 148 524 1, 140 505 0, 140 464 1, 140 407 1, 206 407 1, 206 352 1, 140 352 1, 140 0 1 -427 56 -111 371 555;177 -111 1, 186 93 1, 56 83 1, 56 139 1, 186 129 1, 186 315 1, 56 305 1, 56 361 1, 186 352 1, 177 555 1, 251 555 1, 241 352 1, 371 361 1, 371 305 1, 241 315 1, 241 129 1, 371 139 1, 371 83 1, 241 93 1, 251 -111 1 -213 60 184 153 277;60 184 1, 60 277 1, 153 277 1, 153 184 1 -171 39 -111 132 93;39 -111 1, 39 -83 1, 75 -73 0, 75 -8 1, 75 0 1, 39 0 1, 39 93 1, 132 93 1, 132 12 1, 131 -101 0 -256 26 -120 230 74;26 -120 1, 26 -93 1, 53 -79 0, 53 -9 1, 53 0 1, 26 0 1, 26 74 1, 100 74 1, 100 12 1, 100 -102 0, 156 -120 1, 156 -93 1, 182 -78 0, 182 -9 1, 182 0 1, 156 0 1, 156 74 1, 230 74 1, 230 12 1, 230 -102 0 -768 9 -14 759 569;128 555 1, 181 555 0, 213 518 1, 245 480 0, 245 417 1, 245 352 0, 213 315 1, 182 278 0, 126 278 1, 78 278 0, 48 308 1, 9 347 0, 9 416 1, 9 480 0, 41 518 1, 74 555 0, 127 518 1, 65 518 0, 65 417 1, 65 315 0, 128 315 1, 190 315 0, 190 416 1, 190 463 0, 173 491 1, 156 518 0, 377 278 1, 431 278 0, 463 240 1, 495 203 0, 495 139 1, 495 74 0, 463 37 1, 431 0 0, 376 0 1, 328 0 0, 297 30 1, 259 69 0, 259 139 1, 259 203 0, 291 240 1, 323 278 0, 377 241 1, 315 241 0, 315 139 1, 315 37 0, 377 37 1, 440 37 0, 440 138 1, 440 186 0, 423 213 1, 405 241 0, 641 278 1, 695 278 0, 727 240 1, 759 203 0, 759 140 1, 759 74 0, 727 37 1, 695 0 0, 640 0 1, 592 0 0, 561 31 1, 523 69 0, 523 139 1, 523 203 0, 555 240 1, 587 278 0, 640 241 1, 578 241 0, 578 139 1, 578 37 0, 641 37 1, 704 37 0, 704 139 1, 704 186 0, 686 213 1, 669 241 0, 23 -14 1, 431 569 1, 482 569 1, 74 -14 1 -512 7 0 503 722;7 0 1, 218 555 1, 296 555 1, 503 0 1, 419 0 1, 361 154 1, 138 154 1, 80 0 1, 161 212 1, 339 212 1, 250 450 1, 126 602 1, 216 722 1, 298 722 1, 388 602 1, 333 602 1, 257 677 1, 257 677 1, 181 602 1 -512 72 0 491 722;72 0 1, 72 555 1, 474 555 1, 474 496 1, 150 496 1, 150 318 1, 437 318 1, 437 260 1, 150 260 1, 150 59 1, 491 59 1, 491 0 1, 150 602 1, 240 722 1, 322 722 1, 412 602 1, 357 602 1, 281 677 1, 281 677 1, 205 602 1 -512 7 0 503 722;7 0 1, 218 555 1, 296 555 1, 503 0 1, 419 0 1, 361 154 1, 138 154 1, 80 0 1, 161 212 1, 339 212 1, 250 450 1, 201 602 1, 292 722 1, 377 722 1, 257 602 1 -512 72 0 491 666;72 0 1, 72 555 1, 474 555 1, 474 496 1, 150 496 1, 150 318 1, 437 318 1, 437 260 1, 150 260 1, 150 59 1, 491 59 1, 491 0 1, 169 602 1, 169 666 1, 234 666 1, 234 602 1, 317 602 1, 317 666 1, 382 666 1, 382 602 1 -512 72 0 491 722;72 0 1, 72 555 1, 474 555 1, 474 496 1, 150 496 1, 150 318 1, 437 318 1, 437 260 1, 150 260 1, 150 59 1, 491 59 1, 491 0 1, 335 602 1, 280 602 1, 159 722 1, 245 722 1 -213 51 0 227 722;68 0 1, 68 555 1, 146 555 1, 146 0 1, 51 602 1, 142 722 1, 227 722 1, 107 602 1 -213 -24 0 238 722;68 0 1, 68 555 1, 146 555 1, 146 0 1, -24 602 1, 66 722 1, 148 722 1, 238 602 1, 183 602 1, 107 677 1, 107 677 1, 31 602 1 -213 0 0 213 666;68 0 1, 68 555 1, 146 555 1, 146 0 1, 0 602 1, 0 666 1, 65 666 1, 65 602 1, 149 602 1, 149 666 1, 213 666 1, 213 602 1 -213 -14 0 162 722;68 0 1, 68 555 1, 146 555 1, 146 0 1, 162 602 1, 107 602 1, -14 722 1, 72 722 1 -597 35 -14 563 722;299 569 1, 418 569 0, 491 490 1, 563 410 0, 563 278 1, 563 144 0, 491 65 1, 418 -14 0, 295 -14 1, 189 -14 0, 120 51 1, 35 132 0, 35 278 1, 35 411 0, 107 490 1, 179 569 0, 299 510 1, 213 510 0, 166 449 1, 119 388 0, 119 278 1, 119 169 0, 166 107 1, 213 45 0, 297 45 1, 374 45 0, 420 95 1, 478 156 0, 478 278 1, 478 388 0, 431 449 1, 383 510 0, 243 602 1, 333 722 1, 419 722 1, 299 602 1 -597 35 -14 563 722;299 569 1, 418 569 0, 491 490 1, 563 410 0, 563 278 1, 563 144 0, 491 65 1, 418 -14 0, 295 -14 1, 189 -14 0, 120 51 1, 35 132 0, 35 278 1, 35 411 0, 107 490 1, 179 569 0, 299 510 1, 213 510 0, 166 449 1, 119 388 0, 119 278 1, 119 169 0, 166 107 1, 213 45 0, 297 45 1, 374 45 0, 420 95 1, 478 156 0, 478 278 1, 478 388 0, 431 449 1, 383 510 0, 167 602 1, 258 722 1, 339 722 1, 430 602 1, 374 602 1, 299 677 1, 298 677 1, 223 602 1 -427 0 -14 405 568;141 201 1, 156 141 0, 178 108 1, 218 48 0, 290 48 1, 337 48 0, 405 75 1, 405 10 1, 332 -14 0, 281 -14 1, 194 -14 0, 140 38 1, 101 74 0, 82 134 1, 75 156 0, 66 201 1, 0 201 1, 19 248 1, 61 248 1, 60 276 1, 60 277 0, 60 284 1, 61 300 0, 62 321 1, 0 321 1, 19 368 1, 69 368 1, 84 430 0, 102 462 1, 161 568 0, 293 568 1, 341 568 0, 405 552 1, 405 483 1, 342 510 0, 294 510 1, 228 510 0, 188 462 1, 166 434 0, 154 400 1, 149 386 0, 144 368 1, 356 368 1, 337 321 1, 136 321 1, 134 294 0, 134 276 1, 135 248 1, 307 248 1, 288 201 1 -597 35 -14 563 722;299 569 1, 418 569 0, 491 490 1, 563 410 0, 563 278 1, 563 144 0, 491 65 1, 418 -14 0, 295 -14 1, 189 -14 0, 120 51 1, 35 132 0, 35 278 1, 35 411 0, 107 490 1, 179 569 0, 299 510 1, 213 510 0, 166 449 1, 119 388 0, 119 278 1, 119 169 0, 166 107 1, 213 45 0, 297 45 1, 374 45 0, 420 95 1, 478 156 0, 478 278 1, 478 388 0, 431 449 1, 383 510 0, 354 602 1, 299 602 1, 178 722 1, 264 722 1 -555 62 -14 492 722;62 555 1, 141 555 1, 141 205 1, 141 146 0, 151 118 1, 160 90 0, 187 71 1, 225 45 0, 288 45 1, 363 45 0, 393 80 1, 423 115 0, 423 202 1, 423 555 1, 492 555 1, 492 203 1, 492 129 0, 477 91 1, 463 52 0, 423 24 1, 370 -14 0, 281 -14 1, 168 -14 0, 115 39 1, 62 91 0, 62 206 1, 227 602 1, 317 722 1, 402 722 1, 282 602 1 -555 62 -14 492 722;62 555 1, 141 555 1, 141 205 1, 141 146 0, 151 118 1, 160 90 0, 187 71 1, 225 45 0, 288 45 1, 363 45 0, 393 80 1, 423 115 0, 423 202 1, 423 555 1, 492 555 1, 492 203 1, 492 129 0, 477 91 1, 463 52 0, 423 24 1, 370 -14 0, 281 -14 1, 168 -14 0, 115 39 1, 62 91 0, 62 206 1, 151 602 1, 241 722 1, 323 722 1, 413 602 1, 358 602 1, 282 677 1, 282 677 1, 206 602 1 -555 62 -14 492 722;62 555 1, 141 555 1, 141 205 1, 141 146 0, 151 118 1, 160 90 0, 187 71 1, 225 45 0, 288 45 1, 363 45 0, 393 80 1, 423 115 0, 423 202 1, 423 555 1, 492 555 1, 492 203 1, 492 129 0, 477 91 1, 463 52 0, 423 24 1, 370 -14 0, 281 -14 1, 168 -14 0, 115 39 1, 62 91 0, 62 206 1, 338 602 1, 282 602 1, 162 722 1, 247 722 1 -171 48 0 122 407;48 0 1, 48 407 1, 122 407 1, 122 0 1 -256 -3 481 259 602;-3 481 1, 87 602 1, 169 602 1, 259 481 1, 204 481 1, 128 557 1, 128 557 1, 52 481 1 -256 3 481 253 569;3 481 1, 6 516 0, 15 535 1, 32 569 0, 73 569 1, 100 569 0, 123 555 1, 146 541 1, 167 528 0, 178 528 1, 203 528 0, 207 569 1, 253 569 1, 250 534 0, 241 515 1, 224 481 0, 183 481 1, 156 481 0, 133 496 1, 110 510 1, 90 522 0, 78 522 1, 53 522 0, 49 481 1 -256 8 481 248 537;8 481 1, 8 537 1, 248 537 1, 248 481 1 -256 3 481 253 602;3 602 1, 49 602 1, 57 566 0, 77 551 1, 97 537 0, 128 537 1, 163 537 0, 183 555 1, 200 570 0, 207 602 1, 253 602 1, 247 551 0, 219 521 1, 184 481 0, 128 481 1, 69 481 0, 33 524 1, 9 554 0 -256 91 481 165 555;91 481 1, 91 555 1, 165 555 1, 165 481 1 -256 43 481 213 651;128 651 1, 163 651 0, 188 627 1, 213 602 0, 213 567 1, 213 531 0, 188 506 1, 163 481 0, 127 481 1, 96 481 0, 73 501 1, 43 527 0, 43 566 1, 43 602 0, 68 626 1, 92 651 0, 128 619 1, 106 619 0, 90 603 1, 75 588 0, 75 566 1, 75 545 0, 90 529 1, 106 513 0, 127 513 1, 147 513 0, 162 526 1, 181 542 0, 181 567 1, 181 588 0, 165 603 1, 150 619 0 -256 63 -162 193 0;107 0 1, 143 0 1, 120 -41 1, 147 -42 0, 167 -56 1, 193 -74 0, 193 -101 1, 193 -126 0, 171 -144 1, 149 -162 0, 117 -162 1, 92 -162 0, 63 -154 1, 63 -124 1, 82 -129 0, 102 -129 1, 141 -129 0, 141 -102 1, 141 -67 0, 71 -66 1 -256 -19 481 275 602;-19 481 1, 71 602 1, 143 602 1, 23 481 1, 113 481 1, 203 602 1, 275 602 1, 155 481 1 -256 64 -139 192 0;123 0 1, 163 0 1, 115 -30 0, 115 -67 1, 115 -103 0, 158 -103 1, 178 -103 0, 192 -98 1, 192 -128 1, 169 -139 0, 140 -139 1, 64 -139 0, 64 -80 1, 64 -34 0 -256 -3 481 259 602;259 602 1, 169 481 1, 87 481 1, -3 602 1, 52 602 1, 128 526 1, 128 526 1, 204 602 1 -427 0 -14 405 568;141 201 1, 156 141 0, 178 108 1, 218 48 0, 290 48 1, 337 48 0, 405 75 1, 405 10 1, 332 -14 0, 281 -14 1, 194 -14 0, 140 38 1, 101 74 0, 82 134 1, 75 156 0, 66 201 1, 0 201 1, 19 248 1, 61 248 1, 60 276 1, 60 277 0, 60 284 1, 61 300 0, 62 321 1, 0 321 1, 19 368 1, 69 368 1, 84 430 0, 102 462 1, 161 568 0, 293 568 1, 341 568 0, 405 552 1, 405 483 1, 342 510 0, 294 510 1, 228 510 0, 188 462 1, 166 434 0, 154 400 1, 149 386 0, 144 368 1, 356 368 1, 337 321 1, 136 321 1, 134 294 0, 134 276 1, 135 248 1, 307 248 1, 288 201 1 -213 0 0 0 0; -200 72 -111 128 592;72 -111 1, 72 167 1, 128 167 1, 128 -111 1, 72 315 1, 72 592 1, 128 592 1, 128 315 1 -256 33 194 223 250;33 194 1, 33 250 1, 223 250 1, 223 194 1 -427 37 546 390 602;37 546 1, 37 602 1, 390 602 1, 390 546 1 -256 28 222 240 564;28 222 1, 28 268 1, 53 312 0, 96 350 1, 122 373 1, 181 425 0, 181 471 1, 181 525 0, 120 525 1, 85 525 0, 36 500 1, 36 543 1, 85 564 0, 130 564 1, 179 564 0, 210 538 1, 240 513 0, 240 473 1, 240 420 0, 171 363 1, 151 346 1, 101 305 0, 92 268 1, 238 268 1, 238 222 1 -256 28 214 234 564;32 507 1, 32 549 1, 75 564 0, 117 564 1, 223 564 0, 223 486 1, 223 450 0, 197 426 1, 182 413 0, 151 402 1, 199 389 0, 218 364 1, 234 343 0, 234 312 1, 234 267 0, 201 240 1, 169 214 0, 112 214 1, 74 214 0, 28 225 1, 28 270 1, 78 251 0, 108 251 1, 175 251 0, 175 312 1, 175 381 0, 78 381 1, 59 381 1, 59 416 1, 75 416 1, 167 416 0, 167 478 1, 167 526 0, 108 526 1, 74 526 0 -213 60 184 153 277;60 184 1, 60 277 1, 153 277 1, 153 184 1 -256 46 222 176 564;120 222 1, 120 507 1, 46 488 1, 46 531 1, 176 564 1, 176 222 1 -641 44 -14 594 569;117 222 1, 117 507 1, 44 488 1, 44 531 1, 173 564 1, 173 222 1, 497 0 1, 497 91 1, 344 91 1, 344 133 1, 495 333 1, 548 333 1, 548 135 1, 594 135 1, 594 91 1, 548 91 1, 548 0 1, 393 135 1, 497 135 1, 497 271 1, 72 -14 1, 480 569 1, 530 569 1, 122 -14 1 -641 44 -14 594 569;382 0 1, 382 46 1, 406 88 0, 450 128 1, 477 151 1, 535 203 0, 535 249 1, 535 303 0, 475 303 1, 440 303 0, 390 278 1, 390 321 1, 440 341 0, 485 341 1, 534 341 0, 564 316 1, 594 291 0, 594 250 1, 594 196 0, 525 140 1, 505 124 1, 455 83 0, 447 46 1, 593 46 1, 593 0 1, 53 -14 1, 461 569 1, 512 569 1, 104 -14 1, 117 222 1, 117 507 1, 44 488 1, 44 531 1, 173 564 1, 173 222 1 -641 42 -14 599 569;46 507 1, 46 549 1, 89 564 0, 131 564 1, 237 564 0, 237 486 1, 237 450 0, 211 426 1, 195 413 0, 165 402 1, 213 389 0, 232 364 1, 248 343 0, 248 312 1, 248 267 0, 215 240 1, 183 214 0, 126 214 1, 87 214 0, 42 225 1, 42 270 1, 92 251 0, 122 251 1, 189 251 0, 189 312 1, 189 381 0, 92 381 1, 72 381 1, 72 416 1, 89 416 1, 180 416 0, 180 478 1, 180 526 0, 122 526 1, 88 526 0, 502 0 1, 502 91 1, 349 91 1, 349 133 1, 500 333 1, 552 333 1, 552 135 1, 599 135 1, 599 91 1, 552 91 1, 552 0 1, 398 135 1, 502 135 1, 502 271 1, 107 -14 1, 515 569 1, 565 569 1, 157 -14 1 -555 2 0 520 555;62 0 1, 62 255 1, 2 255 1, 2 314 1, 62 314 1, 62 555 1, 240 555 1, 520 555 0, 520 290 1, 520 152 0, 447 76 1, 374 0 0, 241 0 1, 141 59 1, 235 59 1, 435 59 0, 435 281 1, 435 412 0, 356 466 1, 333 482 0, 301 488 1, 263 496 0, 199 496 1, 141 496 1, 141 314 1, 266 314 1, 266 255 1, 141 255 1 -449 44 42 404 402;44 81 1, 185 222 1, 44 363 1, 84 402 1, 224 261 1, 365 402 1, 404 363 1, 264 222 1, 404 81 1, 365 42 1, 224 183 1, 84 42 1 -512 11 0 501 722;210 0 1, 210 231 1, 11 555 1, 101 555 1, 259 298 1, 428 555 1, 501 555 1, 289 233 1, 289 0 1, 204 602 1, 294 722 1, 380 722 1, 259 602 1 -512 63 0 494 555;63 0 1, 63 555 1, 141 555 1, 141 450 1, 280 450 1, 366 450 0, 403 440 1, 441 431 0, 465 402 1, 494 366 0, 494 304 1, 494 116 0, 257 116 1, 141 116 1, 141 0 1, 141 175 1, 254 175 1, 411 175 0, 411 299 1, 411 359 0, 370 376 1, 335 391 0, 255 391 1, 141 391 1 -427 32 -9 395 629;47 538 1, 47 594 1, 122 594 0, 183 565 1, 241 629 1, 270 596 1, 222 542 1, 269 506 0, 294 478 1, 395 366 0, 395 206 1, 395 105 0, 347 48 1, 299 -9 0, 216 -9 1, 132 -9 0, 82 48 1, 32 105 0, 32 201 1, 32 297 0, 81 352 1, 129 407 0, 214 407 1, 234 407 0, 259 402 1, 230 456 0, 177 494 1, 122 432 1, 92 465 1, 140 518 1, 102 538 0, 212 352 1, 165 352 0, 138 312 1, 111 272 0, 111 199 1, 111 46 0, 214 46 1, 316 46 0, 316 199 1, 316 352 0 -384 7 -148 380 602;152 0 1, 7 407 1, 82 407 1, 193 95 1, 314 407 1, 380 407 1, 164 -148 1, 87 -148 1, 168 481 1, 259 602 1, 344 602 1, 224 481 1 -427 58 -148 395 592;132 -148 1, 58 -148 1, 58 592 1, 132 592 1, 132 331 1, 153 369 0, 176 389 1, 209 416 0, 254 416 1, 317 416 0, 356 361 1, 395 306 0, 395 215 1, 395 108 0, 344 49 1, 294 -9 0, 203 -9 1, 168 -9 0, 132 0 1, 132 264 1, 132 56 1, 183 46 0, 209 46 1, 315 46 0, 315 207 1, 315 275 0, 294 313 1, 273 352 0, 238 352 1, 191 352 0 -514 8 0 504 657;8 0 1, 219 555 1, 297 555 1, 504 0 1, 419 0 1, 362 154 1, 139 154 1, 81 0 1, 161 212 1, 340 212 1, 251 450 1, 137 602 1, 137 657 1, 378 657 1, 378 602 1 -432 36 -9 412 537;290 52 1, 221 -9 0, 155 -9 1, 102 -9 0, 69 22 1, 36 53 0, 36 102 1, 36 241 0, 262 241 1, 279 241 1, 279 290 1, 279 361 0, 201 361 1, 140 361 0, 71 325 1, 71 386 1, 148 416 0, 215 416 1, 287 416 0, 320 386 1, 353 356 0, 353 290 1, 353 105 1, 353 42 0, 392 42 1, 398 42 0, 407 44 1, 412 3 1, 384 -9 0, 357 -9 1, 332 -9 0, 315 5 1, 299 19 0, 279 92 1, 279 197 1, 255 198 1, 233 199 0, 205 195 1, 112 182 0, 112 114 1, 112 51 0, 180 51 1, 227 51 0, 72 481 1, 72 537 1, 312 537 1, 312 481 1 -514 8 0 504 722;8 0 1, 219 555 1, 297 555 1, 504 0 1, 419 0 1, 362 154 1, 139 154 1, 81 0 1, 161 212 1, 340 212 1, 251 450 1, 133 722 1, 179 722 1, 187 687 0, 207 672 1, 227 657 0, 258 657 1, 293 657 0, 313 675 1, 329 690 0, 336 722 1, 383 722 1, 377 672 0, 349 641 1, 314 602 0, 258 602 1, 199 602 0, 163 645 1, 139 674 0 -432 36 -9 412 602;290 52 1, 221 -9 0, 155 -9 1, 102 -9 0, 69 22 1, 36 53 0, 36 102 1, 36 241 0, 262 241 1, 279 241 1, 279 290 1, 279 361 0, 201 361 1, 140 361 0, 71 325 1, 71 386 1, 148 416 0, 215 416 1, 287 416 0, 320 386 1, 353 356 0, 353 290 1, 353 105 1, 353 42 0, 392 42 1, 398 42 0, 407 44 1, 412 3 1, 384 -9 0, 357 -9 1, 332 -9 0, 315 5 1, 299 19 0, 279 92 1, 279 197 1, 255 198 1, 233 199 0, 205 195 1, 112 182 0, 112 114 1, 112 51 0, 180 51 1, 227 51 0, 67 602 1, 113 602 1, 121 566 0, 141 551 1, 161 537 0, 192 537 1, 227 537 0, 247 555 1, 264 570 0, 271 602 1, 317 602 1, 311 551 0, 283 521 1, 248 481 0, 192 481 1, 133 481 0, 97 524 1, 73 554 0 -512 7 -139 503 555;7 0 1, 218 555 1, 296 555 1, 503 0 1, 419 0 1, 361 154 1, 138 154 1, 80 0 1, 161 212 1, 339 212 1, 250 450 1, 419 0 1, 459 0 1, 411 -30 0, 411 -67 1, 411 -103 0, 454 -103 1, 474 -103 0, 488 -98 1, 488 -128 1, 464 -139 0, 435 -139 1, 359 -139 0, 359 -80 1, 359 -34 0 -427 36 -139 412 416;290 52 1, 221 -9 0, 155 -9 1, 102 -9 0, 69 22 1, 36 53 0, 36 102 1, 36 241 0, 262 241 1, 279 241 1, 279 290 1, 279 361 0, 201 361 1, 140 361 0, 71 325 1, 71 386 1, 148 416 0, 215 416 1, 287 416 0, 320 386 1, 353 356 0, 353 290 1, 353 105 1, 353 42 0, 392 42 1, 398 42 0, 407 44 1, 412 3 1, 384 -9 0, 357 -9 1, 332 -9 0, 315 5 1, 299 19 0, 279 92 1, 279 197 1, 255 198 1, 233 199 0, 205 195 1, 112 182 0, 112 114 1, 112 51 0, 180 51 1, 227 51 0, 315 0 1, 355 0 1, 307 -30 0, 307 -67 1, 307 -103 0, 350 -103 1, 370 -103 0, 384 -98 1, 384 -128 1, 361 -139 0, 332 -139 1, 256 -139 0, 256 -80 1, 256 -34 0 -555 44 -14 507 722;507 29 1, 421 -14 0, 323 -14 1, 186 -14 0, 115 60 1, 44 135 0, 44 277 1, 44 419 0, 116 494 1, 189 569 0, 327 569 1, 404 569 0, 506 545 1, 506 471 1, 390 510 0, 323 510 1, 228 510 0, 178 450 1, 128 390 0, 128 278 1, 128 167 0, 182 108 1, 235 48 0, 332 48 1, 414 48 0, 507 96 1, 264 602 1, 355 722 1, 440 722 1, 320 602 1 -384 32 -9 347 602;347 12 1, 279 -9 0, 219 -9 1, 135 -9 0, 84 50 1, 32 109 0, 32 204 1, 32 303 0, 85 360 1, 137 416 0, 231 416 1, 278 416 0, 343 403 1, 343 341 1, 281 360 0, 245 360 1, 116 360 0, 116 204 1, 116 130 0, 149 90 1, 182 50 0, 242 50 1, 287 50 0, 347 76 1, 168 481 1, 259 602 1, 344 602 1, 224 481 1 -555 44 -14 507 722;507 29 1, 421 -14 0, 323 -14 1, 186 -14 0, 115 60 1, 44 135 0, 44 277 1, 44 419 0, 116 494 1, 189 569 0, 327 569 1, 404 569 0, 506 545 1, 506 471 1, 390 510 0, 323 510 1, 228 510 0, 178 450 1, 128 390 0, 128 278 1, 128 167 0, 182 108 1, 235 48 0, 332 48 1, 414 48 0, 507 96 1, 189 602 1, 279 722 1, 361 722 1, 451 602 1, 396 602 1, 320 677 1, 320 677 1, 244 602 1 -384 32 -9 359 602;347 12 1, 279 -9 0, 219 -9 1, 135 -9 0, 84 50 1, 32 109 0, 32 204 1, 32 303 0, 85 360 1, 137 416 0, 231 416 1, 278 416 0, 343 403 1, 343 341 1, 281 360 0, 245 360 1, 116 360 0, 116 204 1, 116 130 0, 149 90 1, 182 50 0, 242 50 1, 287 50 0, 347 76 1, 96 481 1, 187 602 1, 269 602 1, 359 481 1, 303 481 1, 228 557 1, 227 557 1, 152 481 1 -555 44 -14 507 675;507 29 1, 421 -14 0, 323 -14 1, 186 -14 0, 115 60 1, 44 135 0, 44 277 1, 44 419 0, 116 494 1, 189 569 0, 327 569 1, 404 569 0, 506 545 1, 506 471 1, 390 510 0, 323 510 1, 228 510 0, 178 450 1, 128 390 0, 128 278 1, 128 167 0, 182 108 1, 235 48 0, 332 48 1, 414 48 0, 507 96 1, 283 602 1, 283 675 1, 357 675 1, 357 602 1 -384 32 -9 347 555;347 12 1, 279 -9 0, 219 -9 1, 135 -9 0, 84 50 1, 32 109 0, 32 204 1, 32 303 0, 85 360 1, 137 416 0, 231 416 1, 278 416 0, 343 403 1, 343 341 1, 281 360 0, 245 360 1, 116 360 0, 116 204 1, 116 130 0, 149 90 1, 182 50 0, 242 50 1, 287 50 0, 347 76 1, 191 481 1, 191 555 1, 264 555 1, 264 481 1 -555 44 -14 507 722;507 29 1, 421 -14 0, 323 -14 1, 186 -14 0, 115 60 1, 44 135 0, 44 277 1, 44 419 0, 116 494 1, 189 569 0, 327 569 1, 404 569 0, 506 545 1, 506 471 1, 390 510 0, 323 510 1, 228 510 0, 178 450 1, 128 390 0, 128 278 1, 128 167 0, 182 108 1, 235 48 0, 332 48 1, 414 48 0, 507 96 1, 451 722 1, 361 602 1, 279 602 1, 189 722 1, 244 722 1, 320 646 1, 320 646 1, 396 722 1 -384 32 -9 387 602;347 12 1, 279 -9 0, 219 -9 1, 135 -9 0, 84 50 1, 32 109 0, 32 204 1, 32 303 0, 85 360 1, 137 416 0, 231 416 1, 278 416 0, 343 403 1, 343 341 1, 281 360 0, 245 360 1, 116 360 0, 116 204 1, 116 130 0, 149 90 1, 182 50 0, 242 50 1, 287 50 0, 347 76 1, 387 602 1, 297 481 1, 215 481 1, 125 602 1, 180 602 1, 256 526 1, 256 526 1, 332 602 1 -555 62 0 520 722;62 0 1, 62 555 1, 240 555 1, 520 555 0, 520 290 1, 520 152 0, 447 76 1, 374 0 0, 241 0 1, 141 59 1, 235 59 1, 435 59 0, 435 281 1, 435 412 0, 356 466 1, 333 482 0, 301 488 1, 263 496 0, 199 496 1, 141 496 1, 387 722 1, 297 602 1, 215 602 1, 125 722 1, 180 722 1, 255 646 1, 256 646 1, 332 722 1 -472 32 -9 472 592;295 143 1, 295 351 1, 243 361 0, 218 361 1, 112 361 0, 112 200 1, 112 133 0, 133 94 1, 154 56 0, 189 56 1, 236 56 0, 295 76 1, 274 38 0, 251 18 1, 218 -9 0, 173 -9 1, 110 -9 0, 71 46 1, 32 101 0, 32 193 1, 32 299 0, 83 358 1, 133 416 0, 224 416 1, 259 416 0, 295 407 1, 295 592 1, 369 592 1, 369 0 1, 295 0 1, 398 422 1, 398 444 1, 427 452 0, 427 512 1, 427 518 1, 398 518 1, 398 592 1, 472 592 1, 472 528 1, 472 430 0 -555 2 0 520 555;62 0 1, 62 255 1, 2 255 1, 2 314 1, 62 314 1, 62 555 1, 240 555 1, 520 555 0, 520 290 1, 520 152 0, 447 76 1, 374 0 0, 241 0 1, 141 59 1, 235 59 1, 435 59 0, 435 281 1, 435 412 0, 356 466 1, 333 482 0, 301 488 1, 263 496 0, 199 496 1, 141 496 1, 141 314 1, 266 314 1, 266 255 1, 141 255 1 -427 32 -9 425 592;295 472 1, 175 472 1, 175 518 1, 295 518 1, 295 592 1, 369 592 1, 369 518 1, 425 518 1, 425 472 1, 369 472 1, 369 0 1, 295 0 1, 295 76 1, 274 38 0, 251 18 1, 218 -9 0, 173 -9 1, 110 -9 0, 71 46 1, 32 101 0, 32 193 1, 32 299 0, 83 358 1, 133 416 0, 224 416 1, 259 416 0, 295 407 1, 295 143 1, 295 351 1, 243 361 0, 218 361 1, 112 361 0, 112 200 1, 112 133 0, 133 94 1, 154 56 0, 189 56 1, 236 56 0 -512 72 0 491 657;72 0 1, 72 555 1, 474 555 1, 474 496 1, 150 496 1, 150 318 1, 437 318 1, 437 260 1, 150 260 1, 150 59 1, 491 59 1, 491 0 1, 150 602 1, 150 657 1, 391 657 1, 391 602 1 -427 32 -9 383 537;307 248 1, 306 284 0, 299 303 1, 280 361 0, 215 361 1, 169 361 0, 143 334 1, 117 308 0, 111 248 1, 380 72 1, 380 13 1, 304 -9 0, 240 -9 1, 145 -9 0, 89 50 1, 32 109 0, 32 209 1, 32 304 0, 82 360 1, 132 416 0, 216 416 1, 314 416 0, 354 347 1, 383 296 0, 382 215 1, 382 192 1, 110 192 1, 114 147 0, 125 124 1, 158 47 0, 256 47 1, 312 47 0, 72 481 1, 72 537 1, 312 537 1, 312 481 1 -512 72 0 491 722;72 0 1, 72 555 1, 474 555 1, 474 496 1, 150 496 1, 150 318 1, 437 318 1, 437 260 1, 150 260 1, 150 59 1, 491 59 1, 491 0 1, 152 722 1, 198 722 1, 206 687 0, 226 672 1, 245 657 0, 276 657 1, 312 657 0, 332 675 1, 348 690 0, 355 722 1, 401 722 1, 395 672 0, 368 641 1, 333 602 0, 276 602 1, 218 602 0, 182 645 1, 158 674 0 -427 32 -9 383 602;307 248 1, 306 284 0, 299 303 1, 280 361 0, 215 361 1, 169 361 0, 143 334 1, 117 308 0, 111 248 1, 380 72 1, 380 13 1, 304 -9 0, 240 -9 1, 145 -9 0, 89 50 1, 32 109 0, 32 209 1, 32 304 0, 82 360 1, 132 416 0, 216 416 1, 314 416 0, 354 347 1, 383 296 0, 382 215 1, 382 192 1, 110 192 1, 114 147 0, 125 124 1, 158 47 0, 256 47 1, 312 47 0, 89 602 1, 135 602 1, 143 567 0, 163 551 1, 182 537 0, 213 537 1, 249 537 0, 269 555 1, 285 570 0, 292 602 1, 338 602 1, 332 551 0, 305 521 1, 269 481 0, 213 481 1, 155 481 0, 119 524 1, 95 553 0 -512 72 0 491 675;72 0 1, 72 555 1, 474 555 1, 474 496 1, 150 496 1, 150 318 1, 437 318 1, 437 260 1, 150 260 1, 150 59 1, 491 59 1, 491 0 1, 238 602 1, 238 675 1, 312 675 1, 312 602 1 -427 32 -9 383 555;307 248 1, 306 284 0, 299 303 1, 280 361 0, 215 361 1, 169 361 0, 143 334 1, 117 308 0, 111 248 1, 380 72 1, 380 13 1, 304 -9 0, 240 -9 1, 145 -9 0, 89 50 1, 32 109 0, 32 209 1, 32 304 0, 82 360 1, 132 416 0, 216 416 1, 314 416 0, 354 347 1, 383 296 0, 382 215 1, 382 192 1, 110 192 1, 114 147 0, 125 124 1, 158 47 0, 256 47 1, 312 47 0, 155 481 1, 155 555 1, 229 555 1, 229 481 1 -512 72 -139 491 555;72 0 1, 72 555 1, 474 555 1, 474 496 1, 150 496 1, 150 318 1, 437 318 1, 437 260 1, 150 260 1, 150 59 1, 491 59 1, 491 0 1, 403 0 1, 443 0 1, 395 -30 0, 395 -67 1, 395 -103 0, 438 -103 1, 458 -103 0, 472 -98 1, 472 -128 1, 449 -139 0, 420 -139 1, 344 -139 0, 344 -80 1, 344 -34 0 -427 32 -139 383 416;307 248 1, 306 284 0, 299 303 1, 280 361 0, 215 361 1, 169 361 0, 143 334 1, 117 308 0, 111 248 1, 380 72 1, 380 13 1, 304 -9 0, 240 -9 1, 145 -9 0, 89 50 1, 32 109 0, 32 209 1, 32 304 0, 82 360 1, 132 416 0, 216 416 1, 314 416 0, 354 347 1, 383 296 0, 382 215 1, 382 192 1, 110 192 1, 114 147 0, 125 124 1, 158 47 0, 256 47 1, 312 47 0, 251 0 1, 291 0 1, 243 -30 0, 243 -67 1, 243 -103 0, 286 -103 1, 306 -103 0, 320 -98 1, 320 -128 1, 297 -139 0, 268 -139 1, 192 -139 0, 192 -80 1, 192 -34 0 -512 72 0 491 722;72 0 1, 72 555 1, 474 555 1, 474 496 1, 150 496 1, 150 318 1, 437 318 1, 437 260 1, 150 260 1, 150 59 1, 491 59 1, 491 0 1, 406 722 1, 315 602 1, 234 602 1, 143 722 1, 199 722 1, 274 646 1, 275 646 1, 350 722 1 -427 32 -9 383 602;307 248 1, 306 284 0, 299 303 1, 280 361 0, 215 361 1, 169 361 0, 143 334 1, 117 308 0, 111 248 1, 380 72 1, 380 13 1, 304 -9 0, 240 -9 1, 145 -9 0, 89 50 1, 32 109 0, 32 209 1, 32 304 0, 82 360 1, 132 416 0, 216 416 1, 314 416 0, 354 347 1, 383 296 0, 382 215 1, 382 192 1, 110 192 1, 114 147 0, 125 124 1, 158 47 0, 256 47 1, 312 47 0, 323 602 1, 233 481 1, 151 481 1, 61 602 1, 116 602 1, 192 526 1, 192 526 1, 268 602 1 -597 35 -14 527 722;527 258 1, 527 15 1, 424 -14 0, 327 -14 1, 35 -14 0, 35 276 1, 35 417 0, 110 493 1, 186 569 0, 329 569 1, 421 569 0, 526 544 1, 526 471 1, 406 510 0, 326 510 1, 119 510 0, 119 279 1, 119 165 0, 176 105 1, 233 45 0, 338 45 1, 381 45 0, 449 59 1, 449 200 1, 356 200 1, 356 258 1, 194 602 1, 284 722 1, 366 722 1, 456 602 1, 401 602 1, 326 677 1, 325 677 1, 249 602 1 -427 35 -158 372 602;298 162 1, 298 351 1, 245 361 0, 222 361 1, 115 361 0, 115 215 1, 115 150 0, 136 112 1, 157 74 0, 192 74 1, 239 74 0, 298 95 1, 277 57 0, 254 37 1, 221 9 0, 176 9 1, 113 9 0, 74 64 1, 35 119 0, 35 207 1, 35 306 0, 85 361 1, 135 416 0, 226 416 1, 261 416 0, 298 407 1, 372 407 1, 372 111 1, 372 15 0, 362 -31 1, 334 -158 0, 174 -158 1, 106 -158 0, 38 -135 1, 38 -71 1, 118 -102 0, 173 -102 1, 298 -102 0, 298 31 1, 93 481 1, 184 602 1, 266 602 1, 356 481 1, 300 481 1, 225 557 1, 224 557 1, 149 481 1 -597 35 -14 527 722;527 258 1, 527 15 1, 424 -14 0, 327 -14 1, 35 -14 0, 35 276 1, 35 417 0, 110 493 1, 186 569 0, 329 569 1, 421 569 0, 526 544 1, 526 471 1, 406 510 0, 326 510 1, 119 510 0, 119 279 1, 119 165 0, 176 105 1, 233 45 0, 338 45 1, 381 45 0, 449 59 1, 449 200 1, 356 200 1, 356 258 1, 200 722 1, 246 722 1, 254 687 0, 275 672 1, 294 657 0, 325 657 1, 360 657 0, 381 675 1, 397 690 0, 404 722 1, 450 722 1, 444 672 0, 417 641 1, 381 602 0, 325 602 1, 266 602 0, 231 645 1, 206 674 0 -427 35 -158 381 602;298 162 1, 298 351 1, 245 361 0, 222 361 1, 115 361 0, 115 215 1, 115 150 0, 136 112 1, 157 74 0, 192 74 1, 239 74 0, 298 95 1, 277 57 0, 254 37 1, 221 9 0, 176 9 1, 113 9 0, 74 64 1, 35 119 0, 35 207 1, 35 306 0, 85 361 1, 135 416 0, 226 416 1, 261 416 0, 298 407 1, 372 407 1, 372 111 1, 372 15 0, 362 -31 1, 334 -158 0, 174 -158 1, 106 -158 0, 38 -135 1, 38 -71 1, 118 -102 0, 173 -102 1, 298 -102 0, 298 31 1, 131 602 1, 177 602 1, 185 566 0, 205 551 1, 225 537 0, 256 537 1, 291 537 0, 311 555 1, 328 570 0, 335 602 1, 381 602 1, 375 551 0, 347 521 1, 312 481 0, 256 481 1, 197 481 0, 161 524 1, 137 554 0 -597 35 -14 527 675;527 258 1, 527 15 1, 424 -14 0, 327 -14 1, 35 -14 0, 35 276 1, 35 417 0, 110 493 1, 186 569 0, 329 569 1, 421 569 0, 526 544 1, 526 471 1, 406 510 0, 326 510 1, 119 510 0, 119 279 1, 119 165 0, 176 105 1, 233 45 0, 338 45 1, 381 45 0, 449 59 1, 449 200 1, 356 200 1, 356 258 1, 288 602 1, 288 675 1, 362 675 1, 362 602 1 -427 35 -158 372 555;298 162 1, 298 351 1, 245 361 0, 222 361 1, 115 361 0, 115 215 1, 115 150 0, 136 112 1, 157 74 0, 192 74 1, 239 74 0, 298 95 1, 277 57 0, 254 37 1, 221 9 0, 176 9 1, 113 9 0, 74 64 1, 35 119 0, 35 207 1, 35 306 0, 85 361 1, 135 416 0, 226 416 1, 261 416 0, 298 407 1, 372 407 1, 372 111 1, 372 15 0, 362 -31 1, 334 -158 0, 174 -158 1, 106 -158 0, 38 -135 1, 38 -71 1, 118 -102 0, 173 -102 1, 298 -102 0, 298 31 1, 183 481 1, 183 555 1, 257 555 1, 257 481 1 -597 35 -162 527 569;527 258 1, 527 15 1, 423 -14 0, 327 -14 1, 35 -14 0, 35 276 1, 35 417 0, 110 493 1, 186 569 0, 329 569 1, 421 569 0, 526 544 1, 526 471 1, 406 510 0, 326 510 1, 119 510 0, 119 279 1, 119 165 0, 176 105 1, 233 45 0, 338 45 1, 381 45 0, 449 59 1, 449 200 1, 356 200 1, 356 258 1, 263 -158 1, 263 -126 1, 284 -129 0, 299 -129 1, 340 -129 0, 340 -104 1, 340 -77 0, 281 -71 1, 281 -42 1, 331 -43 0, 356 -54 1, 391 -69 0, 391 -105 1, 391 -162 0, 309 -162 1, 287 -162 0 -427 35 -158 372 651;298 162 1, 298 351 1, 245 361 0, 222 361 1, 115 361 0, 115 215 1, 115 150 0, 136 112 1, 157 74 0, 192 74 1, 239 74 0, 298 95 1, 277 57 0, 254 37 1, 221 9 0, 176 9 1, 113 9 0, 74 64 1, 35 119 0, 35 207 1, 35 306 0, 85 361 1, 135 416 0, 226 416 1, 261 416 0, 298 407 1, 372 407 1, 372 111 1, 372 15 0, 362 -31 1, 334 -158 0, 174 -158 1, 106 -158 0, 38 -135 1, 38 -71 1, 118 -102 0, 173 -102 1, 298 -102 0, 298 31 1, 257 651 1, 257 629 1, 228 621 0, 228 561 1, 228 555 1, 257 555 1, 257 481 1, 183 481 1, 183 545 1, 183 644 0 -555 62 0 492 722;62 0 1, 62 555 1, 141 555 1, 141 321 1, 414 321 1, 414 555 1, 492 555 1, 492 0 1, 414 0 1, 414 262 1, 141 262 1, 141 0 1, 146 602 1, 236 722 1, 318 722 1, 408 602 1, 353 602 1, 278 677 1, 277 677 1, 201 602 1 -427 58 0 374 750;58 0 1, 58 592 1, 132 592 1, 132 331 1, 159 369 0, 186 388 1, 224 416 0, 270 416 1, 374 416 0, 374 293 1, 374 0 1, 300 0 1, 300 269 1, 300 318 0, 290 335 1, 279 353 0, 251 353 1, 190 353 0, 132 264 1, 132 0 1, 86 629 1, 176 750 1, 258 750 1, 348 629 1, 293 629 1, 217 705 1, 216 705 1, 141 629 1 -555 6 0 548 555;141 321 1, 414 321 1, 414 416 1, 141 416 1, 62 0 1, 62 416 1, 6 416 1, 6 463 1, 62 463 1, 62 555 1, 141 555 1, 141 463 1, 414 463 1, 414 555 1, 492 555 1, 492 463 1, 548 463 1, 548 416 1, 492 416 1, 492 0 1, 414 0 1, 414 262 1, 141 262 1, 141 0 1 -427 2 0 374 592;58 0 1, 58 472 1, 2 472 1, 2 518 1, 58 518 1, 58 592 1, 132 592 1, 132 518 1, 243 518 1, 243 472 1, 132 472 1, 132 331 1, 159 369 0, 186 388 1, 224 416 0, 270 416 1, 374 416 0, 374 293 1, 374 0 1, 300 0 1, 300 269 1, 300 318 0, 290 335 1, 279 353 0, 251 353 1, 190 353 0, 132 264 1, 132 0 1 -213 -18 0 232 689;68 0 1, 68 555 1, 146 555 1, 146 0 1, -18 602 1, -15 636 0, -6 656 1, 11 689 0, 52 689 1, 79 689 0, 102 675 1, 125 661 1, 146 648 0, 157 648 1, 182 648 0, 186 689 1, 232 689 1, 229 654 0, 220 635 1, 203 602 0, 162 602 1, 135 602 0, 112 616 1, 89 630 1, 69 643 0, 57 643 1, 32 643 0, 28 602 1 -171 -40 0 210 569;48 0 1, 48 407 1, 122 407 1, 122 0 1, -40 481 1, -37 516 0, -28 535 1, -11 569 0, 30 569 1, 57 569 0, 80 555 1, 103 541 1, 124 528 0, 135 528 1, 160 528 0, 164 569 1, 210 569 1, 207 534 0, 198 515 1, 181 481 0, 141 481 1, 114 481 0, 90 496 1, 68 510 1, 47 522 0, 35 522 1, 11 522 0, 6 481 1 -213 -14 0 227 657;68 0 1, 68 555 1, 146 555 1, 146 0 1, -14 602 1, -14 657 1, 227 657 1, 227 602 1 -171 -56 0 184 537;48 0 1, 48 407 1, 122 407 1, 122 0 1, -56 481 1, -56 537 1, 184 537 1, 184 481 1 -213 -18 0 232 722;68 0 1, 68 555 1, 146 555 1, 146 0 1, -18 722 1, 28 722 1, 36 687 0, 56 672 1, 76 657 0, 107 657 1, 142 657 0, 162 675 1, 179 690 0, 186 722 1, 232 722 1, 226 672 0, 198 641 1, 163 602 0, 107 602 1, 48 602 0, 12 645 1, -12 674 0 -171 -40 0 210 602;48 0 1, 48 407 1, 122 407 1, 122 0 1, -40 602 1, 6 602 1, 14 566 0, 35 551 1, 54 537 0, 85 537 1, 120 537 0, 141 555 1, 157 570 0, 164 602 1, 210 602 1, 204 551 0, 177 521 1, 141 481 0, 85 481 1, 26 481 0, -9 524 1, -34 554 0 -213 45 -139 173 555;68 0 1, 68 555 1, 146 555 1, 146 0 1, 104 0 1, 144 0 1, 96 -30 0, 96 -67 1, 96 -103 0, 140 -103 1, 159 -103 0, 173 -98 1, 173 -128 1, 150 -139 0, 121 -139 1, 45 -139 0, 45 -80 1, 45 -34 0 -171 0 -139 128 555;48 0 1, 48 407 1, 122 407 1, 122 0 1, 48 481 1, 48 555 1, 122 555 1, 122 481 1, 59 0 1, 99 0 1, 51 -30 0, 51 -67 1, 51 -103 0, 94 -103 1, 114 -103 0, 128 -98 1, 128 -128 1, 105 -139 0, 76 -139 1, 0 -139 0, 0 -80 1, 0 -34 0 -213 68 0 146 675;68 0 1, 68 555 1, 146 555 1, 146 0 1, 70 602 1, 70 675 1, 144 675 1, 144 602 1 -564 68 -111 507 555;68 0 1, 68 555 1, 146 555 1, 146 0 1, 210 -87 1, 210 -19 1, 275 -48 0, 330 -48 1, 395 -48 0, 413 -18 1, 428 7 0, 428 68 1, 428 555 1, 507 555 1, 507 70 1, 507 -111 0, 327 -111 1, 266 -111 0 -341 48 -157 316 555;48 0 1, 48 407 1, 122 407 1, 122 0 1, 48 481 1, 48 555 1, 122 555 1, 122 481 1, 134 -145 1, 134 -87 1, 164 -102 0, 190 -102 1, 227 -102 0, 235 -74 1, 242 -51 0, 242 0 1, 242 407 1, 316 407 1, 316 0 1, 316 -157 0, 196 -157 1, 163 -157 0, 242 481 1, 242 555 1, 316 555 1, 316 481 1 -384 18 -111 398 722;18 -87 1, 18 -19 1, 83 -48 0, 138 -48 1, 203 -48 0, 221 -18 1, 236 7 0, 236 68 1, 236 555 1, 315 555 1, 315 70 1, 315 -111 0, 135 -111 1, 74 -111 0, 135 602 1, 226 722 1, 308 722 1, 398 602 1, 342 602 1, 267 677 1, 266 677 1, 191 602 1 -171 -58 -157 212 602;-58 -145 1, -58 -87 1, -28 -102 0, -2 -102 1, 35 -102 0, 43 -74 1, 50 -51 0, 50 0 1, 50 407 1, 124 407 1, 124 0 1, 124 -157 0, 4 -157 1, -29 -157 0, -50 481 1, 40 602 1, 122 602 1, 212 481 1, 156 481 1, 81 557 1, 80 557 1, 5 481 1 -512 72 -162 494 555;72 0 1, 72 555 1, 146 555 1, 146 282 1, 376 555 1, 455 555 1, 232 290 1, 494 0 1, 394 0 1, 146 281 1, 146 0 1, 183 -158 1, 183 -126 1, 204 -129 0, 219 -129 1, 260 -129 0, 260 -104 1, 260 -77 0, 201 -71 1, 201 -42 1, 251 -43 0, 276 -54 1, 311 -69 0, 311 -105 1, 311 -162 0, 230 -162 1, 207 -162 0 -384 58 -162 377 592;58 0 1, 58 592 1, 132 592 1, 132 210 1, 268 407 1, 339 407 1, 209 215 1, 377 0 1, 287 0 1, 132 209 1, 132 0 1, 128 -158 1, 128 -126 1, 149 -129 0, 164 -129 1, 205 -129 0, 205 -104 1, 205 -77 0, 146 -71 1, 146 -42 1, 196 -43 0, 221 -54 1, 256 -69 0, 256 -105 1, 256 -162 0, 175 -162 1, 153 -162 0 -384 58 0 377 407;58 0 1, 58 407 1, 132 407 1, 132 210 1, 268 407 1, 339 407 1, 209 215 1, 377 0 1, 287 0 1, 132 209 1, 132 0 1 -427 62 0 413 722;62 0 1, 62 555 1, 141 555 1, 141 59 1, 413 59 1, 413 0 1, 66 602 1, 157 722 1, 242 722 1, 122 602 1 -171 40 0 216 730;48 0 1, 48 592 1, 122 592 1, 122 0 1, 40 609 1, 131 730 1, 216 730 1, 96 609 1 -427 62 -162 413 555;62 0 1, 62 555 1, 141 555 1, 141 59 1, 413 59 1, 413 0 1, 168 -158 1, 168 -126 1, 190 -129 0, 205 -129 1, 246 -129 0, 246 -104 1, 246 -77 0, 187 -71 1, 187 -42 1, 237 -43 0, 262 -54 1, 297 -69 0, 297 -105 1, 297 -162 0, 215 -162 1, 193 -162 0 -171 0 -162 128 592;48 0 1, 48 592 1, 122 592 1, 122 0 1, 0 -158 1, 0 -126 1, 21 -129 0, 36 -129 1, 77 -129 0, 77 -104 1, 77 -77 0, 18 -71 1, 18 -42 1, 68 -43 0, 93 -54 1, 128 -69 0, 128 -105 1, 128 -162 0, 47 -162 1, 25 -162 0 -427 62 0 413 555;62 0 1, 62 555 1, 141 555 1, 141 59 1, 413 59 1, 413 0 1, 252 385 1, 252 407 1, 280 415 0, 280 475 1, 280 481 1, 252 481 1, 252 555 1, 326 555 1, 326 491 1, 325 393 0 -224 48 0 229 592;48 0 1, 48 592 1, 122 592 1, 122 0 1, 155 422 1, 155 444 1, 183 452 0, 183 512 1, 183 518 1, 155 518 1, 155 592 1, 229 592 1, 229 528 1, 228 430 0 -427 62 0 413 555;62 0 1, 62 555 1, 141 555 1, 141 59 1, 413 59 1, 413 0 1, 279 241 1, 279 315 1, 353 315 1, 353 241 1 -257 48 0 252 592;48 0 1, 48 592 1, 122 592 1, 122 0 1, 178 241 1, 178 315 1, 252 315 1, 252 241 1 -427 6 0 413 555;62 0 1, 62 260 1, 6 230 1, 6 293 1, 62 323 1, 62 555 1, 141 555 1, 141 366 1, 233 416 1, 233 353 1, 141 303 1, 141 59 1, 413 59 1, 413 0 1 -171 -3 0 173 592;48 0 1, 48 270 1, -3 243 1, -3 305 1, 48 333 1, 48 592 1, 123 592 1, 123 374 1, 173 399 1, 173 338 1, 123 311 1, 123 0 1 -555 62 0 492 722;62 0 1, 62 555 1, 139 555 1, 425 126 1, 425 555 1, 492 555 1, 492 0 1, 415 0 1, 129 429 1, 129 0 1, 222 602 1, 312 722 1, 398 722 1, 277 602 1 -427 58 0 374 602;58 0 1, 58 407 1, 132 407 1, 132 331 1, 159 369 0, 186 388 1, 224 416 0, 270 416 1, 374 416 0, 374 293 1, 374 0 1, 300 0 1, 300 269 1, 300 318 0, 290 335 1, 279 353 0, 251 353 1, 190 353 0, 132 264 1, 132 0 1, 168 481 1, 259 602 1, 344 602 1, 224 481 1 -555 62 -162 492 555;62 0 1, 62 555 1, 139 555 1, 425 126 1, 425 555 1, 492 555 1, 492 0 1, 415 0 1, 129 429 1, 129 0 1, 194 -158 1, 194 -126 1, 216 -129 0, 231 -129 1, 272 -129 0, 272 -104 1, 272 -77 0, 213 -71 1, 213 -42 1, 263 -43 0, 288 -54 1, 323 -69 0, 323 -105 1, 323 -162 0, 241 -162 1, 219 -162 0 -427 58 -162 374 416;58 0 1, 58 407 1, 132 407 1, 132 331 1, 159 369 0, 186 388 1, 224 416 0, 270 416 1, 374 416 0, 374 293 1, 374 0 1, 300 0 1, 300 269 1, 300 318 0, 290 335 1, 279 353 0, 251 353 1, 190 353 0, 132 264 1, 132 0 1, 128 -158 1, 128 -126 1, 149 -129 0, 164 -129 1, 205 -129 0, 205 -104 1, 205 -77 0, 146 -71 1, 146 -42 1, 196 -43 0, 221 -54 1, 256 -69 0, 256 -105 1, 256 -162 0, 175 -162 1, 153 -162 0 -555 62 0 492 722;62 0 1, 62 555 1, 139 555 1, 425 126 1, 425 555 1, 492 555 1, 492 0 1, 415 0 1, 129 429 1, 129 0 1, 408 722 1, 318 602 1, 236 602 1, 146 722 1, 201 722 1, 277 646 1, 278 646 1, 353 722 1 -427 58 0 374 602;58 0 1, 58 407 1, 132 407 1, 132 331 1, 159 369 0, 186 388 1, 224 416 0, 270 416 1, 374 416 0, 374 293 1, 374 0 1, 300 0 1, 300 269 1, 300 318 0, 290 335 1, 279 353 0, 251 353 1, 190 353 0, 132 264 1, 132 0 1, 323 602 1, 233 481 1, 151 481 1, 61 602 1, 116 602 1, 192 526 1, 192 526 1, 268 602 1 -464 0 0 411 592;95 0 1, 95 407 1, 168 407 1, 168 331 1, 196 369 0, 222 388 1, 261 416 0, 307 416 1, 411 416 0, 411 293 1, 411 0 1, 336 0 1, 336 269 1, 336 318 0, 326 335 1, 315 353 0, 287 353 1, 227 353 0, 168 264 1, 168 0 1, 0 422 1, 0 444 1, 29 452 0, 29 512 1, 29 518 1, 0 518 1, 0 592 1, 74 592 1, 74 528 1, 74 430 0 -555 62 -158 492 555;62 0 1, 62 555 1, 139 555 1, 425 126 1, 425 555 1, 492 555 1, 492 -35 1, 492 -158 0, 373 -158 1, 345 -158 0, 317 -150 1, 317 -92 1, 341 -102 0, 369 -102 1, 425 -102 0, 425 -21 1, 425 -15 1, 129 429 1, 129 0 1 -427 58 -158 374 416;58 0 1, 58 407 1, 132 407 1, 132 331 1, 159 369 0, 186 388 1, 224 416 0, 270 416 1, 374 416 0, 374 293 1, 374 -35 1, 374 -158 0, 255 -158 1, 227 -158 0, 198 -150 1, 198 -92 1, 222 -102 0, 244 -102 1, 300 -102 0, 300 -21 1, 300 269 1, 300 318 0, 290 335 1, 279 353 0, 251 353 1, 190 353 0, 132 264 1, 132 0 1 -597 35 -14 563 657;299 569 1, 419 569 0, 491 490 1, 563 410 0, 563 278 1, 563 144 0, 491 65 1, 419 -14 0, 295 -14 1, 189 -14 0, 121 51 1, 35 132 0, 35 278 1, 35 411 0, 107 490 1, 179 569 0, 299 510 1, 214 510 0, 167 449 1, 119 388 0, 119 278 1, 119 169 0, 167 107 1, 213 45 0, 297 45 1, 375 45 0, 421 95 1, 479 156 0, 479 278 1, 479 388 0, 431 449 1, 383 510 0, 179 602 1, 179 657 1, 419 657 1, 419 602 1 -427 32 -9 395 537;213 416 1, 297 416 0, 346 359 1, 395 303 0, 395 204 1, 395 104 0, 346 47 1, 297 -9 0, 211 -9 1, 137 -9 0, 91 38 1, 32 96 0, 32 204 1, 32 302 0, 81 359 1, 130 416 0, 213 361 1, 112 361 0, 112 204 1, 112 46 0, 213 46 1, 315 46 0, 315 205 1, 315 361 0, 72 481 1, 72 537 1, 312 537 1, 312 481 1 -597 35 -14 563 722;299 569 1, 419 569 0, 491 490 1, 563 410 0, 563 278 1, 563 144 0, 491 65 1, 419 -14 0, 295 -14 1, 189 -14 0, 121 51 1, 35 132 0, 35 278 1, 35 411 0, 107 490 1, 179 569 0, 299 510 1, 214 510 0, 167 449 1, 119 388 0, 119 278 1, 119 169 0, 167 107 1, 213 45 0, 297 45 1, 375 45 0, 421 95 1, 479 156 0, 479 278 1, 479 388 0, 431 449 1, 383 510 0, 174 722 1, 220 722 1, 228 687 0, 248 672 1, 268 657 0, 299 657 1, 334 657 0, 354 675 1, 371 690 0, 378 722 1, 424 722 1, 418 672 0, 390 641 1, 355 602 0, 299 602 1, 240 602 0, 204 645 1, 180 674 0 -427 32 -9 395 602;213 416 1, 297 416 0, 346 359 1, 395 303 0, 395 204 1, 395 104 0, 346 47 1, 297 -9 0, 211 -9 1, 137 -9 0, 91 38 1, 32 96 0, 32 204 1, 32 302 0, 81 359 1, 130 416 0, 213 361 1, 112 361 0, 112 204 1, 112 46 0, 213 46 1, 315 46 0, 315 205 1, 315 361 0, 89 602 1, 135 602 1, 143 567 0, 163 551 1, 182 537 0, 213 537 1, 249 537 0, 269 555 1, 285 570 0, 292 602 1, 338 602 1, 332 551 0, 305 521 1, 269 481 0, 213 481 1, 155 481 0, 119 524 1, 95 553 0 -597 35 -14 563 722;299 569 1, 419 569 0, 491 490 1, 563 410 0, 563 278 1, 563 144 0, 491 65 1, 419 -14 0, 295 -14 1, 189 -14 0, 121 51 1, 35 132 0, 35 278 1, 35 411 0, 107 490 1, 179 569 0, 299 510 1, 214 510 0, 167 449 1, 119 388 0, 119 278 1, 119 169 0, 167 107 1, 213 45 0, 297 45 1, 375 45 0, 421 95 1, 479 156 0, 479 278 1, 479 388 0, 431 449 1, 383 510 0, 212 602 1, 303 722 1, 374 722 1, 254 602 1, 344 602 1, 434 722 1, 506 722 1, 386 602 1 -427 32 -9 403 602;213 416 1, 297 416 0, 346 359 1, 395 303 0, 395 204 1, 395 104 0, 346 47 1, 297 -9 0, 211 -9 1, 137 -9 0, 91 38 1, 32 96 0, 32 204 1, 32 302 0, 81 359 1, 130 416 0, 213 361 1, 112 361 0, 112 204 1, 112 46 0, 213 46 1, 315 46 0, 315 205 1, 315 361 0, 109 481 1, 199 602 1, 271 602 1, 151 481 1, 241 481 1, 331 602 1, 403 602 1, 283 481 1 -555 62 0 538 722;62 0 1, 62 555 1, 294 555 1, 465 555 0, 465 417 1, 465 350 0, 423 306 1, 399 281 0, 353 260 1, 538 0 1, 441 0 1, 283 235 1, 141 235 1, 141 0 1, 141 294 1, 229 294 1, 309 294 0, 346 321 1, 384 350 0, 384 408 1, 384 456 0, 353 476 1, 323 496 0, 253 496 1, 141 496 1, 196 602 1, 287 722 1, 372 722 1, 252 602 1 -256 58 0 280 602;58 0 1, 58 407 1, 132 407 1, 132 331 1, 148 369 0, 166 389 1, 193 416 0, 230 416 1, 237 416 0, 251 414 1, 251 345 1, 231 352 0, 219 352 1, 178 352 0, 132 269 1, 132 0 1, 104 481 1, 195 602 1, 280 602 1, 160 481 1 -555 62 -162 538 555;62 0 1, 62 555 1, 294 555 1, 465 555 0, 465 417 1, 465 350 0, 423 306 1, 399 281 0, 353 260 1, 538 0 1, 441 0 1, 283 235 1, 141 235 1, 141 0 1, 141 294 1, 229 294 1, 309 294 0, 346 321 1, 384 350 0, 384 408 1, 384 456 0, 353 476 1, 323 496 0, 253 496 1, 141 496 1, 196 -158 1, 196 -126 1, 218 -129 0, 233 -129 1, 274 -129 0, 274 -104 1, 274 -77 0, 215 -71 1, 215 -42 1, 265 -43 0, 290 -54 1, 324 -69 0, 324 -105 1, 324 -162 0, 243 -162 1, 221 -162 0 -256 58 -162 251 416;58 0 1, 58 407 1, 132 407 1, 132 331 1, 148 369 0, 166 389 1, 193 416 0, 230 416 1, 237 416 0, 251 414 1, 251 345 1, 231 352 0, 219 352 1, 178 352 0, 132 269 1, 132 0 1, 64 -158 1, 64 -126 1, 85 -129 0, 100 -129 1, 141 -129 0, 141 -104 1, 141 -77 0, 82 -71 1, 82 -42 1, 132 -43 0, 157 -54 1, 192 -69 0, 192 -105 1, 192 -162 0, 111 -162 1, 89 -162 0 -555 62 0 538 722;62 0 1, 62 555 1, 294 555 1, 465 555 0, 465 417 1, 465 350 0, 423 306 1, 399 281 0, 353 260 1, 538 0 1, 441 0 1, 283 235 1, 141 235 1, 141 0 1, 141 294 1, 229 294 1, 309 294 0, 346 321 1, 384 350 0, 384 408 1, 384 456 0, 353 476 1, 323 496 0, 253 496 1, 141 496 1, 368 722 1, 278 602 1, 196 602 1, 106 722 1, 161 722 1, 237 646 1, 237 646 1, 313 722 1 -256 -3 0 259 602;58 0 1, 58 407 1, 132 407 1, 132 331 1, 148 369 0, 166 389 1, 193 416 0, 230 416 1, 237 416 0, 251 414 1, 251 345 1, 231 352 0, 219 352 1, 178 352 0, 132 269 1, 132 0 1, 259 602 1, 169 481 1, 87 481 1, -3 602 1, 52 602 1, 128 526 1, 128 526 1, 204 602 1 -512 45 -14 466 722;45 20 1, 45 98 1, 156 45 0, 264 45 1, 385 45 0, 385 135 1, 385 181 0, 352 203 1, 326 220 0, 269 239 1, 193 264 1, 48 311 0, 48 421 1, 48 569 0, 251 569 1, 338 569 0, 432 545 1, 432 473 1, 334 510 0, 246 510 1, 124 510 0, 124 427 1, 124 394 0, 147 374 1, 171 354 0, 230 334 1, 308 309 1, 395 281 0, 431 244 1, 466 207 0, 466 146 1, 466 72 0, 411 29 1, 357 -14 0, 261 -14 1, 167 -14 0, 196 602 1, 287 722 1, 372 722 1, 252 602 1 -384 44 -9 344 602;44 14 1, 44 82 1, 118 46 0, 181 46 1, 266 46 0, 266 106 1, 266 147 0, 207 167 1, 141 189 1, 46 220 0, 46 303 1, 46 416 0, 201 416 1, 246 416 0, 309 404 1, 309 342 1, 253 361 0, 196 361 1, 119 361 0, 119 310 1, 119 273 0, 172 256 1, 231 237 1, 341 201 0, 341 113 1, 341 57 0, 297 24 1, 254 -9 0, 178 -9 1, 119 -9 0, 168 481 1, 259 602 1, 344 602 1, 224 481 1 -512 45 -14 466 722;45 20 1, 45 98 1, 156 45 0, 264 45 1, 385 45 0, 385 135 1, 385 181 0, 352 203 1, 326 220 0, 269 239 1, 193 264 1, 48 311 0, 48 421 1, 48 569 0, 251 569 1, 338 569 0, 432 545 1, 432 473 1, 334 510 0, 246 510 1, 124 510 0, 124 427 1, 124 394 0, 147 374 1, 171 354 0, 230 334 1, 308 309 1, 395 281 0, 431 244 1, 466 207 0, 466 146 1, 466 72 0, 411 29 1, 357 -14 0, 261 -14 1, 167 -14 0, 120 602 1, 211 722 1, 293 722 1, 383 602 1, 327 602 1, 252 677 1, 251 677 1, 176 602 1 -384 44 -9 341 602;44 14 1, 44 82 1, 118 46 0, 181 46 1, 266 46 0, 266 106 1, 266 147 0, 207 167 1, 141 189 1, 46 220 0, 46 303 1, 46 416 0, 201 416 1, 246 416 0, 309 404 1, 309 342 1, 253 361 0, 196 361 1, 119 361 0, 119 310 1, 119 273 0, 172 256 1, 231 237 1, 341 201 0, 341 113 1, 341 57 0, 297 24 1, 254 -9 0, 178 -9 1, 119 -9 0, 75 481 1, 165 602 1, 247 602 1, 337 481 1, 282 481 1, 206 557 1, 206 557 1, 130 481 1 -512 45 -162 466 569;45 20 1, 45 98 1, 156 45 0, 264 45 1, 385 45 0, 385 135 1, 385 181 0, 352 203 1, 326 220 0, 269 239 1, 193 264 1, 48 311 0, 48 421 1, 48 569 0, 251 569 1, 338 569 0, 432 545 1, 432 473 1, 334 510 0, 246 510 1, 124 510 0, 124 427 1, 124 394 0, 147 374 1, 171 354 0, 230 334 1, 308 309 1, 395 281 0, 431 244 1, 466 207 0, 466 147 1, 466 72 0, 411 29 1, 357 -14 0, 261 -14 1, 167 -14 0, 225 0 1, 262 0 1, 239 -41 1, 266 -42 0, 286 -56 1, 312 -74 0, 312 -101 1, 312 -126 0, 290 -144 1, 268 -162 0, 236 -162 1, 211 -162 0, 182 -154 1, 182 -124 1, 201 -129 0, 221 -129 1, 260 -129 0, 260 -102 1, 260 -67 0, 190 -66 1 -384 44 -162 341 416;44 14 1, 44 82 1, 118 46 0, 181 46 1, 266 46 0, 266 106 1, 266 147 0, 207 167 1, 141 189 1, 46 220 0, 46 303 1, 46 416 0, 201 416 1, 246 416 0, 309 404 1, 309 342 1, 253 361 0, 196 361 1, 119 361 0, 119 310 1, 119 273 0, 172 256 1, 231 237 1, 341 201 0, 341 113 1, 341 57 0, 297 24 1, 254 -9 0, 178 -9 1, 119 -9 0, 171 0 1, 207 0 1, 184 -41 1, 211 -42 0, 231 -56 1, 257 -74 0, 257 -101 1, 257 -126 0, 235 -144 1, 213 -162 0, 181 -162 1, 156 -162 0, 127 -154 1, 127 -124 1, 146 -129 0, 166 -129 1, 205 -129 0, 205 -102 1, 205 -67 0, 135 -66 1 -512 45 -14 466 722;45 20 1, 45 98 1, 156 45 0, 264 45 1, 385 45 0, 385 135 1, 385 181 0, 352 203 1, 326 220 0, 269 239 1, 193 264 1, 48 311 0, 48 421 1, 48 569 0, 251 569 1, 338 569 0, 432 545 1, 432 473 1, 334 510 0, 246 510 1, 124 510 0, 124 427 1, 124 394 0, 147 374 1, 171 354 0, 230 334 1, 308 309 1, 395 281 0, 431 244 1, 466 207 0, 466 146 1, 466 72 0, 411 29 1, 357 -14 0, 261 -14 1, 167 -14 0, 383 722 1, 293 602 1, 211 602 1, 120 722 1, 176 722 1, 251 646 1, 252 646 1, 327 722 1 -384 44 -9 341 602;44 14 1, 44 82 1, 118 46 0, 181 46 1, 266 46 0, 266 106 1, 266 147 0, 207 167 1, 141 189 1, 46 220 0, 46 303 1, 46 416 0, 201 416 1, 246 416 0, 309 404 1, 309 342 1, 253 361 0, 196 361 1, 119 361 0, 119 310 1, 119 273 0, 172 256 1, 231 237 1, 341 201 0, 341 113 1, 341 57 0, 297 24 1, 254 -9 0, 178 -9 1, 119 -9 0, 323 602 1, 233 481 1, 151 481 1, 61 602 1, 116 602 1, 192 526 1, 192 526 1, 268 602 1 -469 8 -162 461 555;195 0 1, 195 496 1, 8 496 1, 8 555 1, 461 555 1, 461 496 1, 274 496 1, 274 0 1, 220 0 1, 256 0 1, 234 -41 1, 261 -42 0, 280 -56 1, 306 -74 0, 306 -101 1, 306 -126 0, 285 -144 1, 263 -162 0, 230 -162 1, 205 -162 0, 176 -154 1, 176 -124 1, 195 -129 0, 215 -129 1, 254 -129 0, 254 -102 1, 254 -67 0, 184 -66 1 -213 11 -162 210 488;199 -2 1, 176 -9 0, 156 -9 1, 57 -9 0, 57 113 1, 57 352 1, 11 352 1, 11 407 1, 57 407 1, 57 481 1, 131 488 1, 131 407 1, 210 407 1, 210 352 1, 131 352 1, 131 126 1, 131 78 0, 139 62 1, 147 46 0, 174 46 1, 188 46 0, 199 50 1, 112 0 1, 149 0 1, 126 -41 1, 153 -42 0, 173 -56 1, 199 -74 0, 199 -101 1, 199 -126 0, 177 -144 1, 155 -162 0, 123 -162 1, 97 -162 0, 69 -154 1, 69 -124 1, 87 -129 0, 108 -129 1, 147 -129 0, 147 -102 1, 147 -67 0, 77 -66 1 -469 8 0 461 722;195 0 1, 195 496 1, 8 496 1, 8 555 1, 461 555 1, 461 496 1, 274 496 1, 274 0 1, 366 722 1, 275 602 1, 194 602 1, 103 722 1, 159 722 1, 234 646 1, 235 646 1, 310 722 1 -288 11 -9 270 633;199 -2 1, 176 -9 0, 156 -9 1, 57 -9 0, 57 113 1, 57 352 1, 11 352 1, 11 407 1, 57 407 1, 57 481 1, 131 488 1, 131 407 1, 210 407 1, 210 352 1, 131 352 1, 131 126 1, 131 78 0, 139 62 1, 147 46 0, 174 46 1, 188 46 0, 199 50 1, 196 463 1, 196 485 1, 224 493 0, 224 553 1, 224 559 1, 196 559 1, 196 633 1, 270 633 1, 270 569 1, 269 471 0 -469 8 0 461 555;195 0 1, 195 268 1, 81 268 1, 81 324 1, 195 324 1, 195 496 1, 8 496 1, 8 555 1, 461 555 1, 461 496 1, 274 496 1, 274 324 1, 387 324 1, 387 268 1, 274 268 1, 274 0 1 -213 11 -9 210 488;57 213 1, 11 213 1, 11 259 1, 57 259 1, 57 352 1, 11 352 1, 11 407 1, 57 407 1, 57 481 1, 131 488 1, 131 407 1, 210 407 1, 210 352 1, 131 352 1, 131 259 1, 210 259 1, 210 213 1, 131 213 1, 131 126 1, 131 78 0, 139 62 1, 147 46 0, 174 46 1, 188 46 0, 199 50 1, 199 -2 1, 176 -9 0, 156 -9 1, 57 -9 0, 57 113 1 -555 62 -14 492 689;62 555 1, 141 555 1, 141 205 1, 141 146 0, 151 118 1, 160 90 0, 187 71 1, 225 45 0, 288 45 1, 363 45 0, 393 80 1, 423 115 0, 423 202 1, 423 555 1, 492 555 1, 492 203 1, 492 129 0, 477 91 1, 463 52 0, 423 24 1, 370 -14 0, 281 -14 1, 168 -14 0, 115 39 1, 62 91 0, 62 206 1, 157 602 1, 160 636 0, 169 656 1, 186 689 0, 227 689 1, 254 689 0, 277 675 1, 300 661 1, 321 648 0, 332 648 1, 357 648 0, 361 689 1, 407 689 1, 404 654 0, 395 635 1, 378 602 0, 338 602 1, 311 602 0, 287 616 1, 264 630 1, 244 643 0, 232 643 1, 207 643 0, 203 602 1 -427 53 -9 369 569;295 0 1, 295 76 1, 268 38 0, 242 19 1, 203 -9 0, 157 -9 1, 53 -9 0, 53 115 1, 53 407 1, 127 407 1, 127 139 1, 127 90 0, 137 72 1, 148 54 0, 176 54 1, 237 54 0, 295 143 1, 295 407 1, 369 407 1, 369 0 1, 86 481 1, 89 516 0, 98 535 1, 116 569 0, 156 569 1, 183 569 0, 206 555 1, 229 541 1, 250 528 0, 261 528 1, 286 528 0, 290 569 1, 336 569 1, 333 534 0, 324 515 1, 307 481 0, 267 481 1, 240 481 0, 216 496 1, 194 510 1, 173 522 0, 161 522 1, 137 522 0, 132 481 1 -555 62 -14 492 657;62 555 1, 141 555 1, 141 205 1, 141 146 0, 151 118 1, 160 90 0, 187 71 1, 225 45 0, 288 45 1, 363 45 0, 393 80 1, 423 115 0, 423 202 1, 423 555 1, 492 555 1, 492 203 1, 492 129 0, 477 91 1, 463 52 0, 423 24 1, 370 -14 0, 281 -14 1, 168 -14 0, 115 39 1, 62 91 0, 62 206 1, 162 602 1, 162 657 1, 402 657 1, 402 602 1 -427 53 -9 369 537;295 0 1, 295 76 1, 268 38 0, 242 19 1, 203 -9 0, 157 -9 1, 53 -9 0, 53 115 1, 53 407 1, 127 407 1, 127 139 1, 127 90 0, 137 72 1, 148 54 0, 176 54 1, 237 54 0, 295 143 1, 295 407 1, 369 407 1, 369 0 1, 72 481 1, 72 537 1, 312 537 1, 312 481 1 -555 62 -14 492 722;62 555 1, 141 555 1, 141 205 1, 141 146 0, 151 118 1, 160 90 0, 187 71 1, 225 45 0, 288 45 1, 363 45 0, 393 80 1, 423 115 0, 423 202 1, 423 555 1, 492 555 1, 492 203 1, 492 129 0, 477 91 1, 463 52 0, 423 24 1, 370 -14 0, 281 -14 1, 168 -14 0, 115 39 1, 62 91 0, 62 206 1, 157 722 1, 203 722 1, 211 687 0, 231 672 1, 251 657 0, 282 657 1, 317 657 0, 338 675 1, 354 690 0, 361 722 1, 407 722 1, 401 672 0, 374 641 1, 338 602 0, 282 602 1, 223 602 0, 188 645 1, 163 674 0 -427 53 -9 369 602;295 0 1, 295 76 1, 268 38 0, 242 19 1, 203 -9 0, 157 -9 1, 53 -9 0, 53 115 1, 53 407 1, 127 407 1, 127 139 1, 127 90 0, 137 72 1, 148 54 0, 176 54 1, 237 54 0, 295 143 1, 295 407 1, 369 407 1, 369 0 1, 86 602 1, 132 602 1, 140 567 0, 161 551 1, 180 537 0, 211 537 1, 246 537 0, 267 555 1, 283 570 0, 290 602 1, 336 602 1, 330 551 0, 303 521 1, 267 481 0, 211 481 1, 152 481 0, 117 524 1, 93 553 0 -555 62 -14 492 762;62 555 1, 141 555 1, 141 205 1, 141 146 0, 151 118 1, 160 90 0, 187 71 1, 225 45 0, 288 45 1, 363 45 0, 393 80 1, 423 115 0, 423 202 1, 423 555 1, 492 555 1, 492 203 1, 492 129 0, 477 91 1, 463 52 0, 423 24 1, 370 -14 0, 281 -14 1, 168 -14 0, 115 39 1, 62 91 0, 62 206 1, 282 762 1, 317 762 0, 342 738 1, 367 713 0, 367 678 1, 367 642 0, 342 617 1, 317 592 0, 281 592 1, 250 592 0, 227 612 1, 197 638 0, 197 677 1, 197 713 0, 222 737 1, 247 762 0, 282 730 1, 260 730 0, 245 714 1, 229 699 0, 229 677 1, 229 656 0, 245 640 1, 260 624 0, 281 624 1, 302 624 0, 316 637 1, 335 653 0, 335 678 1, 335 699 0, 319 714 1, 304 730 0 -427 53 -9 369 651;295 0 1, 295 76 1, 268 38 0, 242 19 1, 203 -9 0, 157 -9 1, 53 -9 0, 53 115 1, 53 407 1, 127 407 1, 127 139 1, 127 90 0, 137 72 1, 148 54 0, 176 54 1, 237 54 0, 295 143 1, 295 407 1, 369 407 1, 369 0 1, 192 651 1, 227 651 0, 252 627 1, 277 602 0, 277 567 1, 277 531 0, 252 506 1, 227 481 0, 191 481 1, 160 481 0, 137 501 1, 107 527 0, 107 566 1, 107 602 0, 132 626 1, 156 651 0, 192 619 1, 170 619 0, 154 603 1, 139 588 0, 139 566 1, 139 545 0, 154 529 1, 170 513 0, 191 513 1, 211 513 0, 226 526 1, 245 542 0, 245 567 1, 245 588 0, 229 603 1, 214 619 0 -555 62 -14 492 722;62 555 1, 141 555 1, 141 205 1, 141 146 0, 151 118 1, 160 90 0, 187 71 1, 225 45 0, 288 45 1, 363 45 0, 393 80 1, 423 115 0, 423 202 1, 423 555 1, 492 555 1, 492 203 1, 492 129 0, 477 91 1, 463 52 0, 423 24 1, 370 -14 0, 281 -14 1, 168 -14 0, 115 39 1, 62 91 0, 62 206 1, 187 602 1, 278 722 1, 349 722 1, 229 602 1, 319 602 1, 409 722 1, 481 722 1, 361 602 1 -427 53 -9 403 602;295 0 1, 295 76 1, 268 38 0, 242 19 1, 203 -9 0, 157 -9 1, 53 -9 0, 53 115 1, 53 407 1, 127 407 1, 127 139 1, 127 90 0, 137 72 1, 148 54 0, 176 54 1, 237 54 0, 295 143 1, 295 407 1, 369 407 1, 369 0 1, 109 481 1, 199 602 1, 271 602 1, 151 481 1, 241 481 1, 331 602 1, 403 602 1, 283 481 1 -555 62 -139 492 555;62 555 1, 141 555 1, 141 205 1, 141 146 0, 151 118 1, 160 90 0, 187 71 1, 225 45 0, 288 45 1, 363 45 0, 393 80 1, 423 115 0, 423 202 1, 423 555 1, 492 555 1, 492 203 1, 492 129 0, 477 91 1, 463 52 0, 423 24 1, 370 -14 0, 281 -14 1, 168 -14 0, 115 39 1, 62 91 0, 62 206 1, 300 0 1, 340 0 1, 292 -30 0, 292 -67 1, 292 -103 0, 335 -103 1, 355 -103 0, 369 -98 1, 369 -128 1, 346 -139 0, 317 -139 1, 241 -139 0, 241 -80 1, 241 -34 0 -427 53 -139 384 407;295 0 1, 295 76 1, 268 38 0, 242 19 1, 203 -9 0, 157 -9 1, 53 -9 0, 53 115 1, 53 407 1, 127 407 1, 127 139 1, 127 90 0, 137 72 1, 148 54 0, 176 54 1, 237 54 0, 295 143 1, 295 407 1, 369 407 1, 369 0 1, 315 0 1, 355 0 1, 307 -30 0, 307 -67 1, 307 -103 0, 350 -103 1, 370 -103 0, 384 -98 1, 384 -128 1, 361 -139 0, 332 -139 1, 256 -139 0, 256 -80 1, 256 -34 0 -725 9 0 716 722;152 0 1, 9 555 1, 85 555 1, 199 117 1, 329 555 1, 405 555 1, 530 121 1, 651 555 1, 716 555 1, 560 0 1, 482 0 1, 358 428 1, 230 0 1, 236 602 1, 326 722 1, 408 722 1, 498 602 1, 443 602 1, 367 677 1, 366 677 1, 291 602 1 -555 4 0 549 602;102 0 1, 4 407 1, 77 407 1, 150 101 1, 244 407 1, 318 407 1, 400 99 1, 486 407 1, 549 407 1, 435 0 1, 361 0 1, 275 315 1, 177 0 1, 149 481 1, 240 602 1, 321 602 1, 412 481 1, 356 481 1, 281 557 1, 280 557 1, 205 481 1 -512 11 0 501 722;210 0 1, 210 231 1, 11 555 1, 101 555 1, 259 298 1, 428 555 1, 501 555 1, 289 233 1, 289 0 1, 134 602 1, 224 722 1, 306 722 1, 396 602 1, 341 602 1, 265 677 1, 264 677 1, 189 602 1 -384 7 -148 380 602;152 0 1, 7 407 1, 82 407 1, 193 95 1, 314 407 1, 380 407 1, 164 -148 1, 87 -148 1, 67 481 1, 157 602 1, 239 602 1, 329 481 1, 274 481 1, 198 557 1, 198 557 1, 122 481 1 -469 38 0 431 722;38 0 1, 38 63 1, 336 496 1, 56 496 1, 56 555 1, 431 555 1, 431 496 1, 132 63 1, 431 63 1, 431 0 1, 179 602 1, 269 722 1, 355 722 1, 234 602 1 -384 28 0 356 602;28 0 1, 28 56 1, 261 352 1, 39 352 1, 39 407 1, 352 407 1, 352 352 1, 119 56 1, 356 56 1, 356 0 1, 168 481 1, 259 602 1, 344 602 1, 224 481 1 -469 38 0 431 675;38 0 1, 38 63 1, 336 496 1, 56 496 1, 56 555 1, 431 555 1, 431 496 1, 132 63 1, 431 63 1, 431 0 1, 202 602 1, 202 675 1, 276 675 1, 276 602 1 -384 28 0 356 555;28 0 1, 28 56 1, 261 352 1, 39 352 1, 39 407 1, 352 407 1, 352 352 1, 119 56 1, 356 56 1, 356 0 1, 155 481 1, 155 555 1, 229 555 1, 229 481 1 -469 38 0 431 722;38 0 1, 38 63 1, 336 496 1, 56 496 1, 56 555 1, 431 555 1, 431 496 1, 132 63 1, 431 63 1, 431 0 1, 370 722 1, 280 602 1, 198 602 1, 108 722 1, 163 722 1, 239 646 1, 239 646 1, 315 722 1 -384 28 0 356 602;28 0 1, 28 56 1, 261 352 1, 39 352 1, 39 407 1, 352 407 1, 352 352 1, 119 56 1, 356 56 1, 356 0 1, 323 602 1, 233 481 1, 151 481 1, 61 602 1, 116 602 1, 192 526 1, 192 526 1, 268 602 1 -171 3 0 192 602;54 0 1, 54 352 1, 3 352 1, 3 407 1, 54 407 1, 54 456 1, 54 525 0, 84 563 1, 114 602 0, 167 602 1, 175 602 0, 192 600 1, 192 545 1, 181 546 0, 175 546 1, 128 546 0, 128 464 1, 128 0 1 -512 45 -162 466 569;45 20 1, 45 98 1, 156 45 0, 264 45 1, 385 45 0, 385 135 1, 385 181 0, 352 203 1, 326 220 0, 269 239 1, 193 264 1, 48 311 0, 48 421 1, 48 569 0, 251 569 1, 338 569 0, 432 545 1, 432 473 1, 334 510 0, 246 510 1, 124 510 0, 124 427 1, 124 394 0, 147 374 1, 171 354 0, 230 334 1, 308 309 1, 395 281 0, 431 244 1, 466 207 0, 466 147 1, 466 72 0, 411 29 1, 357 -14 0, 261 -14 1, 167 -14 0, 197 -158 1, 197 -126 1, 218 -129 0, 233 -129 1, 274 -129 0, 274 -104 1, 274 -77 0, 215 -71 1, 215 -42 1, 265 -43 0, 290 -54 1, 325 -69 0, 325 -105 1, 325 -162 0, 243 -162 1, 221 -162 0 -384 44 -162 341 416;44 14 1, 44 82 1, 118 46 0, 181 46 1, 266 46 0, 266 106 1, 266 147 0, 207 167 1, 141 189 1, 46 220 0, 46 303 1, 46 416 0, 201 416 1, 246 416 0, 309 404 1, 309 342 1, 253 361 0, 196 361 1, 119 361 0, 119 310 1, 119 273 0, 172 256 1, 231 237 1, 341 201 0, 341 113 1, 341 57 0, 297 24 1, 254 -9 0, 178 -9 1, 119 -9 0, 128 -158 1, 128 -126 1, 149 -129 0, 164 -129 1, 205 -129 0, 205 -104 1, 205 -77 0, 146 -71 1, 146 -42 1, 196 -43 0, 221 -54 1, 256 -69 0, 256 -105 1, 256 -162 0, 175 -162 1, 153 -162 0 -469 8 -162 461 555;195 0 1, 195 496 1, 8 496 1, 8 555 1, 461 555 1, 461 496 1, 274 496 1, 274 0 1, 177 -158 1, 177 -126 1, 198 -129 0, 213 -129 1, 254 -129 0, 254 -104 1, 254 -77 0, 195 -71 1, 195 -42 1, 245 -43 0, 270 -54 1, 305 -69 0, 305 -105 1, 305 -162 0, 224 -162 1, 201 -162 0 -213 11 -162 210 488;199 -2 1, 176 -9 0, 156 -9 1, 57 -9 0, 57 113 1, 57 352 1, 11 352 1, 11 407 1, 57 407 1, 57 481 1, 131 488 1, 131 407 1, 210 407 1, 210 352 1, 131 352 1, 131 126 1, 131 78 0, 139 62 1, 147 46 0, 174 46 1, 188 46 0, 199 50 1, 64 -158 1, 64 -126 1, 85 -129 0, 100 -129 1, 141 -129 0, 141 -104 1, 141 -77 0, 82 -71 1, 82 -42 1, 132 -43 0, 157 -54 1, 192 -69 0, 192 -105 1, 192 -162 0, 111 -162 1, 89 -162 0 -256 64 -162 192 -42;64 -158 1, 64 -126 1, 85 -129 0, 100 -129 1, 141 -129 0, 141 -104 1, 141 -77 0, 82 -71 1, 82 -42 1, 132 -43 0, 157 -54 1, 192 -69 0, 192 -105 1, 192 -162 0, 111 -162 1, 89 -162 0 -213 70 -120 144 407;70 -120 1, 70 -93 1, 96 -79 0, 96 -9 1, 96 0 1, 70 0 1, 70 74 1, 144 74 1, 144 12 1, 143 -102 0, 70 333 1, 70 407 1, 144 407 1, 144 333 1 -213 60 184 153 277;60 184 1, 60 277 1, 153 277 1, 153 184 1 -256 33 194 223 250;33 194 1, 33 250 1, 223 250 1, 223 194 1 -256 33 194 223 250;33 194 1, 33 250 1, 223 250 1, 223 194 1 -427 38 204 390 250;38 204 1, 38 250 1, 390 250 1, 390 204 1 -768 37 204 731 241;37 204 1, 37 241 1, 731 241 1, 731 204 1 -213 0 0 0 0; -427 37 546 390 602;37 546 1, 37 602 1, 390 602 1, 390 546 1 -427 32 -9 383 416;307 248 1, 306 284 0, 299 303 1, 280 361 0, 215 361 1, 169 361 0, 143 334 1, 117 308 0, 111 248 1, 380 72 1, 380 13 1, 304 -9 0, 240 -9 1, 145 -9 0, 89 50 1, 32 109 0, 32 209 1, 32 304 0, 82 360 1, 132 416 0, 216 416 1, 314 416 0, 354 347 1, 383 296 0, 382 215 1, 382 192 1, 110 192 1, 114 147 0, 125 124 1, 158 47 0, 256 47 1, 312 47 0 -449 39 194 409 250;39 194 1, 39 250 1, 409 250 1, 409 194 1 -128 -165 -14 293 569;-165 -14 1, 243 569 1, 293 569 1, -114 -14 1 -213 60 184 153 277;60 184 1, 60 277 1, 153 277 1, 153 184 1 -384 12 0 336 602;66 0 1, 66 352 1, 12 352 1, 12 407 1, 66 407 1, 66 456 1, 66 602 0, 181 602 1, 206 602 0, 236 592 1, 236 533 1, 209 546 0, 189 546 1, 162 546 0, 151 528 1, 140 510 0, 140 464 1, 140 407 1, 336 407 1, 336 0 1, 262 0 1, 262 352 1, 140 352 1, 140 0 1, 262 481 1, 262 555 1, 336 555 1, 336 481 1 -384 12 0 336 602;66 0 1, 66 352 1, 12 352 1, 12 407 1, 66 407 1, 66 456 1, 66 602 0, 179 602 1, 262 592 1, 336 592 1, 336 0 1, 262 0 1, 262 537 1, 246 540 1, 214 546 0, 192 546 1, 159 546 0, 148 524 1, 140 505 0, 140 464 1, 140 407 1, 206 407 1, 206 352 1, 140 352 1, 140 0 1 -256 1 222 251 555;154 222 1, 154 313 1, 1 313 1, 1 356 1, 152 555 1, 205 555 1, 205 357 1, 251 357 1, 251 313 1, 205 313 1, 205 222 1, 50 357 1, 154 357 1, 154 493 1 -171 -58 -157 124 407;-58 -145 1, -58 -87 1, -28 -102 0, -2 -102 1, 35 -102 0, 43 -74 1, 50 -51 0, 50 0 1, 50 407 1, 124 407 1, 124 0 1, 124 -157 0, 4 -157 1, -29 -157 0 -213 0 0 0 0; diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luxisr-12pt-with-hinting.txt b/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luxisr-12pt-with-hinting.txt deleted file mode 100644 index 9c30f6773..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luxisr-12pt-with-hinting.txt +++ /dev/null @@ -1,392 +0,0 @@ -freetype version 2.5.1 -192 0 0 192 576;0 0 1, 0 576 1, 192 576 1, 192 0 1, 128 64 1, 128 512 1, 64 512 1, 64 64 1 -0 0 0 0 0; -192 0 0 0 0; -192 0 0 0 0; -192 64 0 128 576;64 0 1, 64 64 1, 128 64 1, 128 0 1, 72 128 1, 64 454 1, 64 576 1, 128 576 1, 128 454 1, 120 128 1 -256 0 384 256 576;44 384 1, 35 576 1, 108 576 1, 99 384 1, 173 384 1, 164 576 1, 238 576 1, 229 384 1 -448 0 0 448 576;47 25 1, 89 192 1, 9 192 1, 18 256 1, 100 256 1, 133 320 1, 44 320 1, 54 384 1, 144 384 1, 186 551 1, 234 551 1, 192 384 1, 291 384 1, 332 551 1, 380 551 1, 339 384 1, 418 384 1, 409 320 1, 327 320 1, 294 256 1, 383 256 1, 374 192 1, 283 192 1, 242 25 1, 194 25 1, 235 192 1, 137 192 1, 95 25 1, 148 256 1, 247 256 1, 279 320 1, 180 320 1 -448 64 -64 320 640;192 -46 1, 192 0 1, 135 0 0, 64 31 1, 64 95 1, 137 56 0, 192 56 1, 192 255 1, 124 298 0, 96 331 1, 64 368 0, 64 422 1, 64 486 0, 110 524 1, 142 550 0, 192 555 1, 192 602 1, 256 602 1, 256 555 1, 285 555 0, 320 530 1, 320 470 1, 282 500 0, 256 504 1, 256 307 1, 258 304 1, 263 298 0, 267 293 1, 270 290 1, 293 262 0, 305 237 1, 320 205 0, 320 155 1, 320 87 0, 297 42 1, 282 12 0, 256 0 1, 256 -46 1, 256 60 1, 256 85 0, 256 144 1, 256 175 0, 256 195 1, 256 210 0, 256 233 1, 192 331 1, 192 502 1, 128 479 0, 128 425 1, 128 376 0 -704 64 0 640 576;94 0 1, 531 576 1, 589 576 1, 152 0 1, 160 576 1, 204 576 0, 230 542 1, 256 507 0, 256 448 1, 256 389 0, 230 355 1, 204 320 0, 160 320 1, 115 320 0, 90 355 1, 64 389 0, 64 450 1, 64 502 0, 85 535 1, 112 576 0, 160 512 1, 146 512 0, 137 495 1, 128 477 0, 128 449 1, 128 422 0, 135 405 1, 144 384 0, 160 384 1, 174 384 0, 183 402 1, 192 419 0, 192 448 1, 192 477 0, 183 494 1, 174 512 0, 512 320 1, 571 320 0, 606 277 1, 640 234 0, 640 160 1, 640 86 0, 606 43 1, 571 0 0, 512 0 1, 453 0 0, 418 43 1, 384 86 0, 384 162 1, 384 228 0, 412 269 1, 448 320 0, 512 256 1, 483 256 0, 466 230 1, 448 203 0, 448 162 1, 448 122 0, 462 96 1, 480 64 0, 512 64 1, 541 64 0, 558 91 1, 576 117 0, 576 160 1, 576 203 0, 558 229 1, 541 256 0 -512 0 0 512 576;384 0 1, 357 35 1, 277 0 0, 205 0 1, 118 0 0, 59 52 1, 0 105 0, 0 185 1, 0 264 0, 56 313 1, 89 341 0, 152 363 1, 128 420 0, 128 461 1, 128 513 0, 163 545 1, 199 576 0, 260 576 1, 317 576 0, 351 548 1, 384 519 0, 384 472 1, 384 419 0, 335 381 1, 305 358 0, 248 337 1, 311 214 0, 373 133 1, 410 185 0, 410 287 1, 410 320 1, 483 320 1, 483 179 0, 408 90 1, 441 44 0, 485 0 1, 325 82 1, 251 173 0, 178 321 1, 127 303 0, 102 281 1, 64 249 0, 64 203 1, 64 145 0, 107 104 1, 151 64 0, 212 64 1, 260 64 0, 220 383 1, 266 396 0, 288 411 1, 320 433 0, 320 464 1, 320 512 0, 258 512 1, 192 512 0, 192 461 1, 192 431 0, 217 388 1 -128 0 384 128 576;45 384 1, 27 576 1, 120 576 1, 101 384 1 -256 64 -128 256 640;225 -60 1, 225 -111 1, 156 -58 0, 117 21 1, 64 123 0, 64 241 1, 64 364 0, 121 469 1, 160 541 0, 225 592 1, 225 541 1, 177 485 0, 155 426 1, 128 353 0, 128 241 1, 128 124 0, 158 48 1, 180 -7 0 -256 0 -128 192 640;31 541 1, 31 592 1, 100 539 0, 140 460 1, 192 358 0, 192 241 1, 192 117 0, 135 12 1, 96 -60 0, 31 -111 1, 31 -60 1, 79 -3 0, 101 55 1, 128 129 0, 128 241 1, 128 357 0, 98 433 1, 77 487 0 -320 0 256 320 576;267 483 1, 284 415 1, 180 383 1, 180 384 1, 180 389 0, 192 390 1, 192 390 1, 192 411 0, 170 423 1, 255 296 1, 210 266 1, 152 360 1, 171 362 0, 178 378 1, 88 266 1, 43 296 1, 120 378 1, 128 362 0, 147 360 1, 15 415 1, 32 483 1, 129 423 1, 118 410 0, 118 389 1, 118 389 1, 118 389 0, 118 387 1, 119 386 1, 119 384 0, 119 383 1, 122 576 1, 177 576 1, 165 427 1, 157 448 0, 149 448 1, 140 448 0, 133 427 1 -448 64 64 384 384;192 64 1, 192 192 1, 64 192 1, 64 256 1, 192 256 1, 192 384 1, 256 384 1, 256 256 1, 384 256 1, 384 192 1, 256 192 1, 256 64 1 -192 64 -192 128 64;64 -149 1, 64 -121 1, 89 -111 0, 89 -36 1, 89 -29 1, 64 -29 1, 64 64 1, 128 64 1, 128 -16 1, 128 -139 0 -256 64 192 192 256;64 192 1, 64 256 1, 192 256 1, 192 192 1 -192 64 0 128 64;64 0 1, 64 64 1, 128 64 1, 128 0 1 -192 -64 -128 256 576;-22 -128 1, 178 576 1, 236 576 1, 36 -128 1 -448 0 0 384 576;192 576 1, 280 576 0, 332 499 1, 384 422 0, 384 289 1, 384 154 0, 332 77 1, 280 0 0, 190 0 1, 112 0 0, 63 63 1, 0 142 0, 0 289 1, 0 422 0, 52 499 1, 104 576 0, 192 512 1, 130 512 0, 97 454 1, 64 395 0, 64 288 1, 64 183 0, 97 123 1, 130 64 0, 192 64 1, 248 64 0, 279 107 1, 320 165 0, 320 289 1, 320 397 0, 287 454 1, 252 512 0 -448 64 0 384 640;64 0 1, 64 64 1, 192 64 1, 192 502 1, 64 474 1, 64 531 1, 256 577 1, 256 64 1, 384 64 1, 384 0 1 -448 64 0 320 576;64 0 1, 64 64 1, 85 124 0, 134 187 1, 167 228 1, 197 266 1, 256 339 0, 256 414 1, 256 466 0, 232 491 1, 213 512 0, 178 512 1, 133 512 0, 64 486 1, 64 554 1, 129 576 0, 185 576 1, 247 576 0, 283 533 1, 320 490 0, 320 418 1, 320 368 0, 301 330 1, 282 290 0, 230 234 1, 208 211 1, 142 139 0, 129 64 1, 320 64 1, 320 0 1 -448 64 0 384 576;64 4 1, 64 76 1, 67 76 1, 78 74 0, 83 74 1, 129 68 0, 146 66 1, 173 64 0, 196 64 1, 260 64 0, 292 94 1, 320 119 0, 320 167 1, 320 222 0, 272 251 1, 225 280 0, 137 280 1, 108 280 1, 108 332 1, 131 332 1, 191 333 0, 223 360 1, 256 387 0, 256 435 1, 256 512 0, 172 512 1, 129 512 0, 64 500 1, 64 568 1, 126 576 0, 174 576 1, 257 576 0, 293 534 1, 320 502 0, 320 450 1, 320 391 0, 287 353 1, 267 331 0, 228 312 1, 278 301 0, 303 288 1, 384 248 0, 384 165 1, 384 90 0, 332 45 1, 279 0 0, 194 0 1, 148 0 0 -448 0 0 384 576;256 0 1, 256 128 1, 0 128 1, 0 187 1, 256 576 1, 320 576 1, 320 192 1, 384 192 1, 384 128 1, 320 128 1, 320 0 1, 75 192 1, 256 192 1, 256 473 1 -448 64 -64 320 576;64 -2 1, 64 67 1, 113 64 0, 154 64 1, 202 64 0, 229 98 1, 256 132 0, 256 189 1, 256 320 0, 102 320 1, 83 320 0, 64 297 1, 64 576 1, 320 576 1, 320 512 1, 128 512 1, 128 359 1, 212 357 0, 259 319 1, 320 269 0, 320 173 1, 320 92 0, 274 46 1, 227 0 0, 146 0 1, 111 0 0 -448 64 0 384 576;141 303 1, 187 384 0, 253 384 1, 314 384 0, 349 336 1, 384 288 0, 384 203 1, 384 110 0, 342 55 1, 300 0 0, 229 0 1, 152 0 0, 108 72 1, 64 144 0, 64 270 1, 64 414 0, 121 495 1, 179 576 0, 281 576 1, 327 576 0, 384 569 1, 384 502 1, 316 512 0, 278 512 1, 195 512 0, 162 434 1, 149 403 0, 144 364 1, 142 344 0, 229 320 1, 184 320 0, 156 288 1, 128 257 0, 128 203 1, 128 143 0, 157 103 1, 185 64 0, 231 64 1, 320 64 0, 320 187 1, 320 320 0 -448 64 0 384 576;93 0 1, 103 68 0, 121 118 1, 139 168 0, 185 255 1, 321 512 1, 64 512 1, 64 576 1, 384 576 1, 384 512 1, 192 180 0, 169 0 1 -448 64 0 384 576;147 313 1, 110 339 0, 91 363 1, 64 398 0, 64 438 1, 64 499 0, 110 537 1, 156 576 0, 230 576 1, 299 576 0, 342 543 1, 384 511 0, 384 457 1, 384 410 0, 347 367 1, 325 341 0, 283 313 1, 328 284 0, 351 254 1, 384 211 0, 384 155 1, 384 87 0, 338 43 1, 293 0 0, 221 0 1, 150 0 0, 107 41 1, 64 82 0, 64 150 1, 64 210 0, 94 257 1, 113 285 0, 242 338 1, 320 387 0, 320 441 1, 320 473 0, 294 493 1, 267 512 0, 222 512 1, 180 512 0, 154 494 1, 128 476 0, 128 445 1, 128 409 0, 173 378 1, 195 362 0, 188 282 1, 156 252 0, 143 229 1, 128 204 0, 128 165 1, 128 120 0, 155 92 1, 181 64 0, 225 64 1, 267 64 0, 293 88 1, 320 111 0, 320 149 1, 320 183 0, 298 206 1, 280 225 0, 236 253 1 -448 64 0 384 576;308 273 1, 262 192 0, 195 192 1, 134 192 0, 99 240 1, 64 288 0, 64 373 1, 64 466 0, 106 521 1, 148 576 0, 218 576 1, 296 576 0, 340 504 1, 384 432 0, 384 306 1, 384 162 0, 327 81 1, 269 0 0, 168 0 1, 120 0 0, 64 7 1, 64 74 1, 133 64 0, 171 64 1, 254 64 0, 287 143 1, 300 173 0, 305 212 1, 307 232 0, 217 512 1, 128 512 0, 128 390 1, 128 256 0, 219 256 1, 264 256 0, 292 288 1, 320 320 0, 320 374 1, 320 433 0, 291 473 1, 262 512 0 -192 64 0 128 384;64 0 1, 64 64 1, 128 64 1, 128 0 1, 64 320 1, 64 384 1, 128 384 1, 128 320 1 -192 64 -128 128 384;64 -120 1, 64 -93 1, 87 -79 0, 87 -9 1, 87 0 1, 64 0 1, 64 64 1, 128 64 1, 128 10 1, 128 -102 0, 64 320 1, 64 384 1, 128 384 1, 128 320 1 -448 0 0 384 448;384 37 1, 14 222 1, 384 407 1, 384 345 1, 139 222 1, 139 222 1, 384 99 1 -448 64 128 384 320;64 128 1, 64 192 1, 384 192 1, 384 128 1, 64 256 1, 64 320 1, 384 320 1, 384 256 1 -448 64 0 448 448;64 407 1, 434 222 1, 64 37 1, 64 99 1, 309 222 1, 309 222 1, 64 345 1 -448 64 0 384 576;128 0 1, 128 64 1, 192 64 1, 192 0 1, 128 128 1, 128 150 1, 128 246 0, 201 297 1, 241 324 1, 320 377 0, 320 435 1, 320 512 0, 215 512 1, 150 512 0, 64 500 1, 64 568 1, 145 576 0, 213 576 1, 287 576 0, 330 550 1, 384 515 0, 384 441 1, 384 366 0, 301 319 1, 266 299 1, 222 275 0, 207 248 1, 192 222 0, 192 173 1, 192 128 1 -768 64 0 704 576;470 17 1, 394 0 0, 325 0 1, 213 0 0, 138 64 1, 64 129 0, 64 229 1, 64 365 0, 177 471 1, 291 576 0, 439 576 1, 553 576 0, 628 510 1, 704 444 0, 704 346 1, 704 255 0, 647 191 1, 591 128 0, 511 128 1, 448 128 0, 448 167 1, 448 180 0, 451 202 1, 458 245 1, 453 245 1, 424 192 0, 398 166 1, 361 128 0, 320 128 1, 256 128 0, 256 210 1, 256 301 0, 312 374 1, 368 448 0, 439 448 1, 447 448 0, 461 448 1, 465 448 0, 469 448 1, 483 448 0, 492 448 1, 543 448 1, 513 235 1, 512 225 0, 512 215 1, 512 192 0, 536 192 1, 576 192 0, 608 237 1, 640 283 0, 640 341 1, 640 415 0, 581 463 1, 521 512 0, 430 512 1, 312 512 0, 220 428 1, 128 344 0, 128 238 1, 128 160 0, 188 112 1, 247 64 0, 339 64 1, 398 64 0, 456 56 1, 462 318 1, 477 393 1, 447 384 0, 426 384 1, 380 384 0, 350 341 1, 320 298 0, 320 237 1, 320 192 0, 345 192 1, 387 192 0 -512 0 0 512 576;7 0 1, 218 576 1, 296 576 1, 503 0 1, 419 0 1, 361 128 1, 138 128 1, 80 0 1, 161 192 1, 339 192 1, 250 458 1 -512 64 0 448 576;64 0 1, 64 576 1, 227 576 1, 348 576 0, 398 546 1, 448 516 0, 448 443 1, 448 377 0, 396 336 1, 364 311 0, 304 292 1, 369 272 0, 401 244 1, 448 204 0, 448 140 1, 448 80 0, 410 41 1, 383 13 0, 340 6 1, 305 0 0, 247 0 1, 128 64 1, 186 64 1, 308 64 0, 346 80 1, 384 95 0, 384 144 1, 384 199 0, 335 227 1, 285 256 0, 192 256 1, 128 256 1, 128 320 1, 195 320 1, 384 320 0, 384 430 1, 384 486 0, 330 501 1, 288 512 0, 201 512 1, 128 512 1 -576 64 0 512 576;512 30 1, 429 0 0, 334 0 1, 202 0 0, 133 73 1, 64 147 0, 64 287 1, 64 427 0, 134 502 1, 205 576 0, 338 576 1, 413 576 0, 512 566 1, 512 489 1, 394 512 0, 326 512 1, 230 512 0, 179 454 1, 128 396 0, 128 287 1, 128 180 0, 182 122 1, 237 64 0, 335 64 1, 417 64 0, 512 100 1 -576 64 0 512 576;64 0 1, 64 576 1, 227 576 1, 512 576 0, 512 301 1, 512 158 0, 438 79 1, 364 0 0, 228 0 1, 128 64 1, 223 64 1, 448 64 0, 448 292 1, 448 426 0, 360 481 1, 335 497 0, 299 504 1, 257 512 0, 186 512 1, 128 512 1 -512 64 0 512 576;64 0 1, 64 576 1, 448 576 1, 448 512 1, 128 512 1, 128 320 1, 448 320 1, 448 256 1, 128 256 1, 128 64 1, 512 64 1, 512 0 1 -448 64 0 448 576;64 0 1, 64 576 1, 448 576 1, 448 512 1, 128 512 1, 128 320 1, 384 320 1, 384 256 1, 128 256 1, 128 0 1 -576 64 0 512 576;512 256 1, 512 14 1, 418 0 0, 330 0 1, 64 0 0, 64 286 1, 64 426 0, 133 501 1, 202 576 0, 332 576 1, 416 576 0, 512 564 1, 512 485 1, 398 512 0, 323 512 1, 128 512 0, 128 289 1, 128 180 0, 183 122 1, 238 64 0, 340 64 1, 382 64 0, 448 57 1, 448 192 1, 384 192 1, 384 256 1 -576 64 0 512 576;64 0 1, 64 576 1, 128 576 1, 128 320 1, 448 320 1, 448 576 1, 512 576 1, 512 0 1, 448 0 1, 448 256 1, 128 256 1, 128 0 1 -192 64 0 128 576;64 0 1, 64 576 1, 128 576 1, 128 0 1 -384 0 -128 320 576;0 -87 1, 0 -19 1, 75 -64 0, 141 -64 1, 216 -64 0, 238 -29 1, 256 0 0, 256 71 1, 256 576 1, 320 576 1, 320 73 1, 320 -128 0, 125 -128 1, 60 -128 0 -512 64 0 512 576;64 0 1, 64 576 1, 128 576 1, 128 293 1, 359 576 1, 438 576 1, 214 301 1, 476 0 1, 377 0 1, 128 292 1, 128 0 1 -448 64 0 384 576;64 0 1, 64 576 1, 128 576 1, 128 64 1, 384 64 1, 384 0 1 -640 64 0 576 576;64 0 1, 64 576 1, 170 576 1, 327 151 1, 487 576 1, 576 576 1, 576 0 1, 512 0 1, 512 473 1, 357 64 1, 279 64 1, 128 475 1, 128 0 1 -576 64 0 512 576;64 0 1, 64 576 1, 138 576 1, 448 131 1, 448 576 1, 512 576 1, 512 0 1, 437 0 1, 128 445 1, 128 0 1 -576 64 0 576 576;320 576 1, 436 576 0, 506 498 1, 576 419 0, 576 289 1, 576 156 0, 506 78 1, 436 0 0, 316 0 1, 214 0 0, 147 64 1, 64 145 0, 64 288 1, 64 420 0, 134 498 1, 204 576 0, 320 512 1, 229 512 0, 179 453 1, 128 394 0, 128 288 1, 128 183 0, 179 124 1, 229 64 0, 318 64 1, 401 64 0, 450 112 1, 512 171 0, 512 289 1, 512 394 0, 461 453 1, 410 512 0 -512 64 0 512 576;64 0 1, 64 576 1, 267 576 1, 365 576 0, 408 565 1, 451 553 0, 478 520 1, 512 479 0, 512 408 1, 512 192 0, 244 192 1, 128 192 1, 128 0 1, 128 256 1, 240 256 1, 448 256 0, 448 402 1, 448 473 0, 394 494 1, 348 512 0, 242 512 1, 128 512 1 -576 64 -128 640 576;615 -48 1, 565 -111 1, 434 -68 0, 346 -10 1, 311 0 0, 293 0 1, 193 0 0, 128 81 1, 64 161 0, 64 289 1, 64 419 0, 133 497 1, 203 576 0, 319 576 1, 436 576 0, 506 495 1, 576 415 0, 576 280 1, 576 162 0, 517 87 1, 494 58 0, 464 38 1, 449 27 0, 418 11 1, 510 -30 0, 318 512 1, 229 512 0, 179 452 1, 128 393 0, 128 288 1, 128 183 0, 179 124 1, 229 64 0, 318 64 1, 409 64 0, 460 123 1, 512 181 0, 512 286 1, 512 383 0, 471 441 1, 420 512 0 -576 64 0 576 576;64 0 1, 64 576 1, 281 576 1, 448 576 0, 448 439 1, 448 372 0, 408 329 1, 384 303 0, 340 283 1, 525 0 1, 428 0 1, 271 256 1, 128 256 1, 128 0 1, 128 320 1, 216 320 1, 303 320 0, 343 346 1, 384 373 0, 384 429 1, 384 474 0, 351 493 1, 318 512 0, 241 512 1, 128 512 1 -512 64 0 512 576;64 21 1, 64 102 1, 189 64 0, 311 64 1, 448 64 0, 448 152 1, 448 197 0, 410 218 1, 381 235 0, 315 253 1, 229 278 1, 64 324 0, 64 431 1, 64 576 0, 267 576 1, 355 576 0, 448 566 1, 448 491 1, 347 512 0, 255 512 1, 128 512 0, 128 431 1, 128 399 0, 154 379 1, 180 359 0, 247 340 1, 334 316 1, 432 288 0, 472 252 1, 512 216 0, 512 156 1, 512 84 0, 454 42 1, 396 0 0, 294 0 1, 193 0 0 -448 0 0 448 576;192 0 1, 192 512 1, 0 512 1, 0 576 1, 448 576 1, 448 512 1, 256 512 1, 256 0 1 -576 64 0 512 576;64 576 1, 128 576 1, 128 213 1, 128 158 0, 139 132 1, 150 106 0, 180 88 1, 223 64 0, 295 64 1, 379 64 0, 414 97 1, 448 129 0, 448 210 1, 448 576 1, 512 576 1, 512 211 1, 512 139 0, 497 102 1, 482 64 0, 440 37 1, 385 0 0, 292 0 1, 174 0 0, 119 51 1, 64 102 0, 64 214 1 -512 0 0 512 576;228 0 1, 14 576 1, 95 576 1, 272 103 1, 441 576 1, 508 576 1, 302 0 1 -704 0 0 768 576;152 0 1, 9 576 1, 85 576 1, 199 121 1, 329 576 1, 405 576 1, 530 125 1, 651 576 1, 716 576 1, 560 0 1, 482 0 1, 358 444 1, 230 0 1 -512 0 0 512 576;11 0 1, 215 286 1, 20 576 1, 113 576 1, 263 352 1, 423 576 1, 498 576 1, 299 300 1, 502 0 1, 409 0 1, 251 233 1, 85 0 1 -512 -64 0 512 576;192 0 1, 192 240 1, -7 576 1, 83 576 1, 232 309 1, 395 576 1, 468 576 1, 256 242 1, 256 0 1 -448 64 0 448 576;64 0 1, 64 64 1, 351 512 1, 64 512 1, 64 576 1, 448 576 1, 448 512 1, 142 64 1, 448 64 1, 448 0 1 -192 64 -128 192 576;64 -128 1, 64 576 1, 192 576 1, 192 512 1, 128 512 1, 128 -64 1, 192 -64 1, 192 -128 1 -192 -64 -128 256 576;236 -128 1, 178 -128 1, -22 576 1, 36 576 1 -192 0 -128 128 576;128 576 1, 128 -128 1, 0 -128 1, 0 -64 1, 64 -64 1, 64 512 1, 0 512 1, 0 576 1 -384 0 192 384 576;180 401 1, 75 192 1, 14 192 1, 180 525 1, 347 192 1, 284 192 1 -448 0 -64 448 0;0 -64 1, 0 0 1, 448 0 1, 448 -64 1 -256 0 512 256 576;216 512 1, 160 512 1, 40 576 1, 125 576 1 -448 0 0 448 384;329 49 1, 239 0 0, 155 0 1, 86 0 0, 43 28 1, 0 57 0, 0 101 1, 0 227 0, 299 227 1, 320 227 1, 320 274 1, 320 320 0, 224 320 1, 149 320 0, 64 307 1, 64 364 1, 151 384 0, 228 384 1, 309 384 0, 347 358 1, 384 331 0, 384 274 1, 384 99 1, 384 64 0, 423 64 1, 428 64 0, 437 42 1, 443 3 1, 417 0 0, 392 0 1, 368 0 0, 352 11 1, 337 23 0, 320 87 1, 320 186 1, 283 187 1, 248 188 0, 206 184 1, 64 173 0, 64 116 1, 64 64 0, 168 64 1, 240 64 0 -448 64 -64 384 576;128 249 1, 128 53 1, 182 64 0, 209 64 1, 320 64 0, 320 199 1, 320 256 0, 298 288 1, 276 320 0, 239 320 1, 190 320 0, 128 312 1, 148 344 0, 171 361 1, 204 384 0, 247 384 1, 308 384 0, 346 334 1, 384 285 0, 384 202 1, 384 106 0, 335 53 1, 286 0 0, 197 0 1, 164 0 0, 128 0 1, 64 -5 1, 64 576 1, 128 576 1 -384 0 0 320 384;320 11 1, 251 0 0, 190 0 1, 104 0 0, 52 53 1, 0 107 0, 0 192 1, 0 282 0, 54 333 1, 108 384 0, 205 384 1, 254 384 0, 320 380 1, 320 322 1, 251 320 0, 209 320 1, 64 320 0, 64 191 1, 64 130 0, 101 97 1, 137 64 0, 203 64 1, 253 64 0, 320 72 1 -448 64 0 384 576;320 135 1, 320 331 1, 265 320 0, 239 320 1, 128 320 0, 128 185 1, 128 129 0, 150 96 1, 172 64 0, 209 64 1, 258 64 0, 320 72 1, 300 40 0, 277 23 1, 245 0 0, 201 0 1, 140 0 0, 102 50 1, 64 100 0, 64 182 1, 64 278 0, 113 331 1, 162 384 0, 251 384 1, 285 384 0, 320 384 1, 320 576 1, 384 576 1, 384 0 1, 320 0 1 -448 64 0 448 384;311 256 1, 310 277 0, 303 287 1, 284 320 0, 219 320 1, 173 320 0, 147 305 1, 121 290 0, 115 256 1, 384 72 1, 384 13 1, 314 0 0, 256 0 1, 168 0 0, 116 53 1, 64 107 0, 64 197 1, 64 283 0, 110 333 1, 156 384 0, 234 384 1, 323 384 0, 360 325 1, 387 281 0, 386 212 1, 386 192 1, 114 192 1, 119 153 0, 129 132 1, 162 64 0, 260 64 1, 316 64 0 -192 0 0 256 576;64 0 1, 64 320 1, 0 320 1, 0 384 1, 64 384 1, 64 433 1, 64 576 0, 194 576 1, 221 576 0, 256 569 1, 256 510 1, 219 512 0, 193 512 1, 157 512 0, 142 496 1, 128 481 0, 128 441 1, 128 384 1, 192 384 1, 192 320 1, 128 320 1, 128 0 1 -448 64 -192 384 384;320 153 1, 320 331 1, 265 320 0, 240 320 1, 128 320 0, 128 190 1, 128 132 0, 150 98 1, 172 64 0, 209 64 1, 258 64 0, 320 90 1, 300 50 0, 277 29 1, 245 0 0, 202 0 1, 140 0 0, 102 52 1, 64 103 0, 64 186 1, 64 280 0, 113 332 1, 162 384 0, 250 384 1, 285 384 0, 320 384 1, 384 384 1, 384 105 1, 384 22 0, 374 -18 1, 348 -128 0, 194 -128 1, 130 -128 0, 64 -135 1, 64 -71 1, 143 -64 0, 198 -64 1, 320 -64 0, 320 29 1 -448 64 0 384 576;64 0 1, 64 576 1, 128 576 1, 128 312 1, 157 344 0, 185 360 1, 226 384 0, 275 384 1, 384 384 0, 384 276 1, 384 0 1, 320 0 1, 320 254 1, 320 293 0, 308 306 1, 296 320 0, 264 320 1, 194 320 0, 128 249 1, 128 0 1 -192 64 0 128 576;64 0 1, 64 384 1, 128 384 1, 128 0 1, 64 512 1, 64 576 1, 128 576 1, 128 512 1 -192 -64 -192 128 576;-64 -145 1, -64 -87 1, -28 -64 0, 3 -64 1, 46 -64 0, 56 -47 1, 64 -32 0, 64 0 1, 64 384 1, 128 384 1, 128 0 1, 128 -128 0, 2 -128 1, -33 -128 0, 64 512 1, 64 576 1, 128 576 1, 128 512 1 -384 64 0 384 576;64 0 1, 64 576 1, 128 576 1, 128 198 1, 265 384 1, 335 384 1, 205 203 1, 374 0 1, 284 0 1, 128 197 1, 128 0 1 -192 64 0 128 576;64 0 1, 64 576 1, 128 576 1, 128 0 1 -640 64 0 576 384;64 0 1, 64 384 1, 128 384 1, 128 312 1, 156 353 0, 173 368 1, 194 384 0, 227 384 1, 268 384 0, 294 357 1, 309 342 0, 320 312 1, 357 354 0, 380 368 1, 408 384 0, 453 384 1, 576 384 0, 576 279 1, 576 0 1, 493 0 1, 493 257 1, 493 320 0, 432 320 1, 378 320 0, 320 257 1, 320 0 1, 256 0 1, 256 268 1, 256 320 0, 211 320 1, 171 320 0, 128 257 1, 128 0 1 -448 64 0 384 384;64 0 1, 64 384 1, 128 384 1, 128 312 1, 157 344 0, 185 360 1, 226 384 0, 275 384 1, 384 384 0, 384 276 1, 384 0 1, 320 0 1, 320 253 1, 320 292 0, 308 306 1, 296 320 0, 264 320 1, 194 320 0, 128 249 1, 128 0 1 -448 64 0 384 384;224 384 1, 298 384 0, 341 333 1, 384 281 0, 384 193 1, 384 102 0, 341 51 1, 298 0 0, 222 0 1, 156 0 0, 116 42 1, 64 95 0, 64 192 1, 64 281 0, 107 333 1, 150 384 0, 224 320 1, 128 320 0, 128 192 1, 128 64 0, 224 64 1, 320 64 0, 320 193 1, 320 320 0 -448 64 -128 384 384;128 -128 1, 64 -128 1, 64 384 1, 128 384 1, 128 312 1, 148 344 0, 171 361 1, 203 384 0, 247 384 1, 308 384 0, 346 334 1, 384 285 0, 384 202 1, 384 106 0, 335 53 1, 286 0 0, 197 0 1, 164 0 0, 128 0 1, 128 249 1, 128 53 1, 182 64 0, 209 64 1, 320 64 0, 320 199 1, 320 256 0, 298 288 1, 276 320 0, 239 320 1, 190 320 0 -448 64 -128 384 384;320 384 1, 384 384 1, 384 -128 1, 320 -128 1, 320 72 1, 300 40 0, 277 23 1, 245 0 0, 201 0 1, 140 0 0, 102 50 1, 64 100 0, 64 182 1, 64 278 0, 113 331 1, 162 384 0, 251 384 1, 285 384 0, 320 135 1, 320 331 1, 265 320 0, 239 320 1, 128 320 0, 128 185 1, 128 129 0, 150 96 1, 172 64 0, 209 64 1, 258 64 0 -256 64 0 256 448;64 0 1, 64 384 1, 128 384 1, 128 312 1, 145 345 0, 165 361 1, 194 384 0, 233 384 1, 241 384 0, 256 391 1, 256 326 1, 235 320 0, 222 320 1, 178 320 0, 128 253 1, 128 0 1 -384 64 0 320 384;64 13 1, 64 77 1, 128 64 0, 183 64 1, 256 64 0, 256 116 1, 256 152 0, 204 168 1, 147 187 1, 64 214 0, 64 286 1, 64 384 0, 215 384 1, 258 384 0, 320 381 1, 320 323 1, 263 320 0, 206 320 1, 128 320 0, 128 276 1, 128 244 0, 174 230 1, 225 213 1, 320 182 0, 320 106 1, 320 57 0, 283 29 1, 245 0 0, 180 0 1, 129 0 0 -192 0 -64 192 512;192 -2 1, 172 0 0, 154 0 1, 64 0 0, 64 103 1, 64 320 1, 0 320 1, 0 384 1, 64 384 1, 64 458 1, 128 465 1, 128 384 1, 192 384 1, 192 320 1, 128 320 1, 128 115 1, 128 84 0, 136 74 1, 144 64 0, 168 64 1, 182 64 0, 192 45 1 -448 64 0 384 384;320 0 1, 320 72 1, 291 40 0, 263 24 1, 222 0 0, 174 0 1, 64 0 0, 64 108 1, 64 384 1, 128 384 1, 128 131 1, 128 92 0, 140 78 1, 152 64 0, 184 64 1, 254 64 0, 320 135 1, 320 384 1, 384 384 1, 384 0 1 -384 0 0 384 384;152 0 1, 7 384 1, 82 384 1, 195 85 1, 314 384 1, 380 384 1, 225 0 1 -576 0 0 576 384;102 0 1, 4 384 1, 77 384 1, 150 95 1, 244 384 1, 318 384 1, 400 94 1, 486 384 1, 549 384 1, 435 0 1, 361 0 1, 275 297 1, 177 0 1 -384 0 0 384 384;11 0 1, 143 203 1, 15 384 1, 101 384 1, 203 240 1, 294 384 1, 362 384 1, 238 191 1, 372 0 1, 287 0 1, 177 154 1, 79 0 1 -384 0 -128 384 384;152 0 1, 7 384 1, 82 384 1, 193 90 1, 314 384 1, 380 384 1, 164 -128 1, 87 -128 1 -384 0 0 384 384;0 0 1, 0 64 1, 291 320 1, 64 320 1, 64 384 1, 384 384 1, 384 320 1, 145 64 1, 384 64 1, 384 0 1 -256 0 -128 192 640;0 269 1, 22 269 1, 64 269 0, 64 330 1, 64 354 0, 64 382 1, 64 414 1, 64 447 0, 64 476 1, 64 537 0, 109 569 1, 141 591 0, 192 592 1, 192 537 1, 173 537 1, 153 537 0, 141 524 1, 128 510 0, 128 490 1, 128 483 0, 128 455 1, 128 417 1, 128 391 0, 128 361 1, 128 290 0, 80 241 1, 128 192 0, 128 120 1, 128 90 0, 128 65 1, 128 26 1, 128 -1 0, 128 -9 1, 128 -29 0, 141 -43 1, 154 -56 0, 173 -56 1, 192 -56 1, 192 -111 1, 139 -110 0, 106 -85 1, 64 -52 0, 64 6 1, 64 35 0, 64 67 1, 64 100 1, 64 127 0, 64 152 1, 64 213 0, 22 213 1, 0 213 1 -192 64 -128 128 576;64 -128 1, 64 576 1, 128 576 1, 128 -128 1 -256 64 -128 256 640;256 213 1, 234 213 1, 192 213 0, 192 152 1, 192 124 0, 192 100 1, 192 67 1, 192 36 0, 192 6 1, 192 -55 0, 146 -88 1, 114 -110 0, 64 -111 1, 64 -56 1, 82 -56 1, 102 -56 0, 115 -43 1, 128 -29 0, 128 -9 1, 128 1 0, 128 26 1, 128 65 1, 128 88 0, 128 120 1, 128 192 0, 176 241 1, 154 263 0, 144 285 1, 128 318 0, 128 361 1, 128 393 0, 128 417 1, 128 455 1, 128 480 0, 128 491 1, 128 510 0, 115 524 1, 102 537 0, 82 537 1, 64 537 1, 64 592 1, 117 591 0, 150 566 1, 192 534 0, 192 475 1, 192 445 0, 192 414 1, 192 382 1, 192 357 0, 192 329 1, 192 269 0, 234 269 1, 256 269 1 -448 0 192 448 256;95 192 1, 39 192 1, 40 213 0, 47 223 1, 69 256 0, 139 256 1, 176 256 0, 214 256 1, 256 256 1, 280 256 1, 291 256 0, 309 256 1, 352 256 0, 354 256 1, 409 256 1, 408 235 0, 401 225 1, 379 192 0, 310 192 1, 273 192 0, 235 192 1, 193 192 1, 168 192 1, 158 192 0, 140 192 1, 96 192 0 -512 -64 0 576 640;-15 0 1, 196 576 1, 316 576 1, 524 0 1, 439 0 1, 381 128 1, 116 128 1, 58 0 1, 138 192 1, 360 192 1, 246 458 1, 128 576 1, 128 640 1, 192 640 1, 192 576 1, 320 576 1, 320 640 1, 384 640 1, 384 576 1 -512 0 0 512 768;7 0 1, 218 576 1, 296 576 1, 503 0 1, 419 0 1, 361 128 1, 138 128 1, 80 0 1, 161 192 1, 339 192 1, 250 458 1, 256 768 1, 283 768 0, 301 740 1, 320 712 0, 320 672 1, 320 632 0, 301 604 1, 282 576 0, 255 576 1, 232 576 0, 215 599 1, 192 628 0, 192 672 1, 192 712 0, 211 740 1, 229 768 0, 256 704 1, 256 704 0, 256 695 1, 256 686 0, 256 672 1, 256 659 0, 256 650 1, 256 640 0, 256 640 1, 256 640 0, 256 648 1, 256 657 0, 256 672 1, 256 686 0, 256 695 1, 256 704 0 -576 64 -192 512 576;512 30 1, 429 0 0, 334 0 1, 202 0 0, 133 73 1, 64 147 0, 64 287 1, 64 427 0, 134 502 1, 205 576 0, 338 576 1, 413 576 0, 512 566 1, 512 489 1, 394 512 0, 326 512 1, 230 512 0, 179 454 1, 128 396 0, 128 287 1, 128 180 0, 182 122 1, 237 64 0, 335 64 1, 417 64 0, 512 100 1, 293 0 1, 330 0 1, 307 -41 1, 336 -42 0, 356 -59 1, 384 -82 0, 384 -116 1, 384 -148 0, 361 -170 1, 338 -192 0, 306 -192 1, 280 -192 0, 250 -154 1, 250 -124 1, 267 -128 0, 285 -128 1, 320 -128 0, 320 -101 1, 320 -67 0, 258 -66 1 -512 64 0 512 704;64 0 1, 64 576 1, 448 576 1, 448 512 1, 128 512 1, 128 320 1, 448 320 1, 448 256 1, 128 256 1, 128 64 1, 512 64 1, 512 0 1, 211 576 1, 311 704 1, 407 704 1, 273 576 1 -576 64 0 512 768;64 0 1, 64 576 1, 138 576 1, 448 131 1, 448 576 1, 512 576 1, 512 0 1, 437 0 1, 128 445 1, 128 0 1, 163 623 1, 166 656 0, 176 673 1, 195 704 0, 239 704 1, 268 704 0, 293 704 1, 318 704 1, 341 704 0, 353 704 1, 380 704 0, 384 710 1, 434 710 1, 431 682 0, 421 667 1, 403 640 0, 359 640 1, 329 640 0, 304 640 1, 279 640 1, 257 640 0, 244 640 1, 217 640 0, 213 623 1 -576 64 0 512 640;288 576 1, 389 576 0, 451 498 1, 512 419 0, 512 289 1, 512 156 0, 451 78 1, 389 0 0, 285 0 1, 195 0 0, 137 64 1, 64 145 0, 64 288 1, 64 420 0, 125 498 1, 186 576 0, 288 512 1, 212 512 0, 170 453 1, 128 394 0, 128 288 1, 128 183 0, 170 124 1, 212 64 0, 286 64 1, 355 64 0, 397 112 1, 448 171 0, 448 289 1, 448 394 0, 406 453 1, 363 512 0, 192 576 1, 192 640 1, 256 640 1, 256 576 1, 320 576 1, 320 640 1, 384 640 1, 384 576 1 -576 64 0 512 640;64 576 1, 128 576 1, 128 213 1, 128 158 0, 139 132 1, 150 106 0, 180 88 1, 223 64 0, 295 64 1, 379 64 0, 414 97 1, 448 129 0, 448 210 1, 448 576 1, 512 576 1, 512 211 1, 512 139 0, 497 102 1, 482 64 0, 440 37 1, 385 0 0, 292 0 1, 174 0 0, 119 51 1, 64 102 0, 64 214 1, 192 576 1, 192 640 1, 256 640 1, 256 576 1, 320 576 1, 320 640 1, 384 640 1, 384 576 1 -448 0 0 448 576;329 49 1, 239 0 0, 155 0 1, 86 0 0, 43 28 1, 0 57 0, 0 101 1, 0 227 0, 299 227 1, 320 227 1, 320 274 1, 320 320 0, 224 320 1, 149 320 0, 64 307 1, 64 364 1, 151 384 0, 228 384 1, 309 384 0, 347 358 1, 384 331 0, 384 274 1, 384 99 1, 384 64 0, 423 64 1, 428 64 0, 437 42 1, 443 3 1, 417 0 0, 392 0 1, 368 0 0, 352 11 1, 337 23 0, 320 87 1, 320 186 1, 283 187 1, 248 188 0, 206 184 1, 64 173 0, 64 116 1, 64 64 0, 168 64 1, 240 64 0, 168 512 1, 259 576 1, 344 576 1, 224 512 1 -448 0 0 448 576;329 49 1, 239 0 0, 155 0 1, 86 0 0, 43 28 1, 0 57 0, 0 101 1, 0 227 0, 299 227 1, 320 227 1, 320 274 1, 320 320 0, 224 320 1, 149 320 0, 64 307 1, 64 364 1, 151 384 0, 228 384 1, 309 384 0, 347 358 1, 384 331 0, 384 274 1, 384 99 1, 384 64 0, 423 64 1, 428 64 0, 437 42 1, 443 3 1, 417 0 0, 392 0 1, 368 0 0, 352 11 1, 337 23 0, 320 87 1, 320 186 1, 283 187 1, 248 188 0, 206 184 1, 64 173 0, 64 116 1, 64 64 0, 168 64 1, 240 64 0, 280 512 1, 224 512 1, 104 576 1, 189 576 1 -448 0 0 448 576;329 49 1, 239 0 0, 155 0 1, 86 0 0, 43 28 1, 0 57 0, 0 101 1, 0 227 0, 299 227 1, 320 227 1, 320 274 1, 320 320 0, 224 320 1, 149 320 0, 64 307 1, 64 364 1, 151 384 0, 228 384 1, 309 384 0, 347 358 1, 384 331 0, 384 274 1, 384 99 1, 384 64 0, 423 64 1, 428 64 0, 437 42 1, 443 3 1, 417 0 0, 392 0 1, 368 0 0, 352 11 1, 337 23 0, 320 87 1, 320 186 1, 283 187 1, 248 188 0, 206 184 1, 64 173 0, 64 116 1, 64 64 0, 168 64 1, 240 64 0, 61 512 1, 151 576 1, 233 576 1, 323 512 1, 268 512 1, 192 552 1, 192 552 1, 116 512 1 -448 0 0 448 576;329 49 1, 239 0 0, 155 0 1, 86 0 0, 43 28 1, 0 57 0, 0 101 1, 0 227 0, 299 227 1, 320 227 1, 320 274 1, 320 320 0, 224 320 1, 149 320 0, 64 307 1, 64 364 1, 151 384 0, 228 384 1, 309 384 0, 347 358 1, 384 331 0, 384 274 1, 384 99 1, 384 64 0, 423 64 1, 428 64 0, 437 42 1, 443 3 1, 417 0 0, 392 0 1, 368 0 0, 352 11 1, 337 23 0, 320 87 1, 320 186 1, 283 187 1, 248 188 0, 206 184 1, 64 173 0, 64 116 1, 64 64 0, 168 64 1, 240 64 0, 64 512 1, 64 576 1, 128 576 1, 128 512 1, 256 512 1, 256 576 1, 320 576 1, 320 512 1 -448 0 0 448 640;329 49 1, 239 0 0, 155 0 1, 86 0 0, 43 28 1, 0 57 0, 0 101 1, 0 227 0, 299 227 1, 320 227 1, 320 274 1, 320 320 0, 224 320 1, 149 320 0, 64 307 1, 64 364 1, 151 384 0, 228 384 1, 309 384 0, 347 358 1, 384 331 0, 384 274 1, 384 99 1, 384 64 0, 423 64 1, 428 64 0, 437 42 1, 443 3 1, 417 0 0, 392 0 1, 368 0 0, 352 11 1, 337 23 0, 320 87 1, 320 186 1, 283 187 1, 248 188 0, 206 184 1, 64 173 0, 64 116 1, 64 64 0, 168 64 1, 240 64 0, 67 502 1, 70 531 0, 79 548 1, 96 576 0, 137 576 1, 164 576 0, 187 576 1, 210 576 1, 231 576 0, 242 576 1, 267 576 0, 271 590 1, 317 590 1, 314 559 0, 305 542 1, 288 512 0, 247 512 1, 220 512 0, 197 512 1, 174 512 1, 154 512 0, 142 512 1, 117 512 0, 113 502 1 -448 0 0 448 640;329 49 1, 239 0 0, 155 0 1, 86 0 0, 43 28 1, 0 57 0, 0 101 1, 0 227 0, 299 227 1, 320 227 1, 320 274 1, 320 320 0, 224 320 1, 149 320 0, 64 307 1, 64 364 1, 151 384 0, 228 384 1, 309 384 0, 347 358 1, 384 331 0, 384 274 1, 384 99 1, 384 64 0, 423 64 1, 428 64 0, 437 42 1, 443 3 1, 417 0 0, 392 0 1, 368 0 0, 352 11 1, 337 23 0, 320 87 1, 320 186 1, 283 187 1, 248 188 0, 206 184 1, 64 173 0, 64 116 1, 64 64 0, 168 64 1, 240 64 0, 192 640 1, 219 640 0, 237 621 1, 256 603 0, 256 576 1, 256 549 0, 237 531 1, 219 512 0, 191 512 1, 168 512 0, 151 527 1, 128 547 0, 128 576 1, 128 603 0, 147 621 1, 165 640 0, 192 576 1, 192 576 0, 192 576 1, 192 576 0, 192 576 1, 192 576 0, 192 576 1, 192 576 0, 192 576 1, 192 576 0, 192 576 1, 192 576 0, 192 576 1, 192 576 0, 192 576 1, 192 576 0 -384 0 -192 320 384;320 11 1, 251 0 0, 190 0 1, 104 0 0, 52 53 1, 0 107 0, 0 192 1, 0 282 0, 54 333 1, 108 384 0, 205 384 1, 254 384 0, 320 380 1, 320 322 1, 251 320 0, 209 320 1, 64 320 0, 64 191 1, 64 130 0, 101 97 1, 137 64 0, 203 64 1, 253 64 0, 320 72 1, 235 0 1, 271 0 1, 248 -41 1, 275 -42 0, 294 -59 1, 320 -82 0, 320 -116 1, 320 -148 0, 298 -170 1, 277 -192 0, 244 -192 1, 219 -192 0, 191 -154 1, 191 -124 1, 207 -128 0, 224 -128 1, 256 -128 0, 256 -101 1, 256 -67 0, 199 -66 1 -448 64 0 448 576;311 256 1, 310 277 0, 303 287 1, 284 320 0, 219 320 1, 173 320 0, 147 305 1, 121 290 0, 115 256 1, 384 72 1, 384 13 1, 314 0 0, 256 0 1, 168 0 0, 116 53 1, 64 107 0, 64 197 1, 64 283 0, 110 333 1, 156 384 0, 234 384 1, 323 384 0, 360 325 1, 387 281 0, 386 212 1, 386 192 1, 114 192 1, 119 153 0, 129 132 1, 162 64 0, 260 64 1, 316 64 0, 168 512 1, 259 576 1, 344 576 1, 224 512 1 -448 64 0 448 576;311 256 1, 310 277 0, 303 287 1, 284 320 0, 219 320 1, 173 320 0, 147 305 1, 121 290 0, 115 256 1, 384 72 1, 384 13 1, 314 0 0, 256 0 1, 168 0 0, 116 53 1, 64 107 0, 64 197 1, 64 283 0, 110 333 1, 156 384 0, 234 384 1, 323 384 0, 360 325 1, 387 281 0, 386 212 1, 386 192 1, 114 192 1, 119 153 0, 129 132 1, 162 64 0, 260 64 1, 316 64 0, 280 512 1, 224 512 1, 104 576 1, 189 576 1 -448 0 0 448 576;311 256 1, 310 277 0, 303 287 1, 284 320 0, 219 320 1, 173 320 0, 147 305 1, 121 290 0, 115 256 1, 384 72 1, 384 13 1, 314 0 0, 256 0 1, 168 0 0, 116 53 1, 64 107 0, 64 197 1, 64 283 0, 110 333 1, 156 384 0, 234 384 1, 323 384 0, 360 325 1, 387 281 0, 386 212 1, 386 192 1, 114 192 1, 119 153 0, 129 132 1, 162 64 0, 260 64 1, 316 64 0, 61 512 1, 151 576 1, 233 576 1, 323 512 1, 268 512 1, 192 552 1, 192 552 1, 116 512 1 -448 64 0 448 576;311 256 1, 310 277 0, 303 287 1, 284 320 0, 219 320 1, 173 320 0, 147 305 1, 121 290 0, 115 256 1, 384 72 1, 384 13 1, 314 0 0, 256 0 1, 168 0 0, 116 53 1, 64 107 0, 64 197 1, 64 283 0, 110 333 1, 156 384 0, 234 384 1, 323 384 0, 360 325 1, 387 281 0, 386 212 1, 386 192 1, 114 192 1, 119 153 0, 129 132 1, 162 64 0, 260 64 1, 316 64 0, 64 512 1, 64 576 1, 128 576 1, 128 512 1, 256 512 1, 256 576 1, 320 576 1, 320 512 1 -192 0 0 256 576;64 0 1, 64 384 1, 128 384 1, 128 0 1, 40 512 1, 131 576 1, 216 576 1, 96 512 1 -192 -64 0 192 576;64 0 1, 64 384 1, 128 384 1, 128 0 1, 152 512 1, 96 512 1, -24 576 1, 61 576 1 -192 -128 0 256 576;64 0 1, 64 384 1, 128 384 1, 128 0 1, -67 512 1, 23 576 1, 105 576 1, 195 512 1, 140 512 1, 64 552 1, 64 552 1, -12 512 1 -192 0 0 192 576;64 0 1, 64 384 1, 128 384 1, 128 0 1, 0 512 1, 0 576 1, 64 576 1, 64 512 1, 128 512 1, 128 576 1, 192 576 1, 192 512 1 -448 64 0 384 640;64 0 1, 64 384 1, 128 384 1, 128 312 1, 157 344 0, 185 360 1, 226 384 0, 275 384 1, 384 384 0, 384 276 1, 384 0 1, 320 0 1, 320 253 1, 320 292 0, 308 306 1, 296 320 0, 264 320 1, 194 320 0, 128 249 1, 128 0 1, 67 502 1, 70 531 0, 79 548 1, 96 576 0, 137 576 1, 164 576 0, 187 576 1, 210 576 1, 231 576 0, 242 576 1, 267 576 0, 271 590 1, 317 590 1, 314 559 0, 305 542 1, 288 512 0, 247 512 1, 220 512 0, 197 512 1, 174 512 1, 154 512 0, 142 512 1, 117 512 0, 113 502 1 -448 64 0 384 576;224 384 1, 298 384 0, 341 333 1, 384 281 0, 384 193 1, 384 102 0, 341 51 1, 298 0 0, 222 0 1, 156 0 0, 116 42 1, 64 95 0, 64 192 1, 64 281 0, 107 333 1, 150 384 0, 224 320 1, 128 320 0, 128 192 1, 128 64 0, 224 64 1, 320 64 0, 320 193 1, 320 320 0, 168 512 1, 259 576 1, 344 576 1, 224 512 1 -448 64 0 384 576;224 384 1, 298 384 0, 341 333 1, 384 281 0, 384 193 1, 384 102 0, 341 51 1, 298 0 0, 222 0 1, 156 0 0, 116 42 1, 64 95 0, 64 192 1, 64 281 0, 107 333 1, 150 384 0, 224 320 1, 128 320 0, 128 192 1, 128 64 0, 224 64 1, 320 64 0, 320 193 1, 320 320 0, 280 512 1, 224 512 1, 104 576 1, 189 576 1 -448 0 0 384 576;224 384 1, 298 384 0, 341 333 1, 384 281 0, 384 193 1, 384 102 0, 341 51 1, 298 0 0, 222 0 1, 156 0 0, 116 42 1, 64 95 0, 64 192 1, 64 281 0, 107 333 1, 150 384 0, 224 320 1, 128 320 0, 128 192 1, 128 64 0, 224 64 1, 320 64 0, 320 193 1, 320 320 0, 61 512 1, 151 576 1, 233 576 1, 323 512 1, 268 512 1, 192 552 1, 192 552 1, 116 512 1 -448 64 0 384 576;224 384 1, 298 384 0, 341 333 1, 384 281 0, 384 193 1, 384 102 0, 341 51 1, 298 0 0, 222 0 1, 156 0 0, 116 42 1, 64 95 0, 64 192 1, 64 281 0, 107 333 1, 150 384 0, 224 320 1, 128 320 0, 128 192 1, 128 64 0, 224 64 1, 320 64 0, 320 193 1, 320 320 0, 64 512 1, 64 576 1, 128 576 1, 128 512 1, 256 512 1, 256 576 1, 320 576 1, 320 512 1 -448 64 0 384 640;224 384 1, 298 384 0, 341 333 1, 384 281 0, 384 193 1, 384 102 0, 341 51 1, 298 0 0, 222 0 1, 156 0 0, 116 42 1, 64 95 0, 64 192 1, 64 281 0, 107 333 1, 150 384 0, 224 320 1, 128 320 0, 128 192 1, 128 64 0, 224 64 1, 320 64 0, 320 193 1, 320 320 0, 67 502 1, 70 531 0, 79 548 1, 96 576 0, 137 576 1, 164 576 0, 187 576 1, 210 576 1, 231 576 0, 242 576 1, 267 576 0, 271 590 1, 317 590 1, 314 559 0, 305 542 1, 288 512 0, 247 512 1, 220 512 0, 197 512 1, 174 512 1, 154 512 0, 142 512 1, 117 512 0, 113 502 1 -448 64 0 384 576;320 0 1, 320 72 1, 291 40 0, 263 24 1, 222 0 0, 174 0 1, 64 0 0, 64 108 1, 64 384 1, 128 384 1, 128 131 1, 128 92 0, 140 78 1, 152 64 0, 184 64 1, 254 64 0, 320 135 1, 320 384 1, 384 384 1, 384 0 1, 168 512 1, 259 576 1, 344 576 1, 224 512 1 -448 64 0 384 576;320 0 1, 320 72 1, 291 40 0, 263 24 1, 222 0 0, 174 0 1, 64 0 0, 64 108 1, 64 384 1, 128 384 1, 128 131 1, 128 92 0, 140 78 1, 152 64 0, 184 64 1, 254 64 0, 320 135 1, 320 384 1, 384 384 1, 384 0 1, 280 512 1, 224 512 1, 104 576 1, 189 576 1 -448 0 0 384 576;320 0 1, 320 72 1, 291 40 0, 263 24 1, 222 0 0, 174 0 1, 64 0 0, 64 108 1, 64 384 1, 128 384 1, 128 131 1, 128 92 0, 140 78 1, 152 64 0, 184 64 1, 254 64 0, 320 135 1, 320 384 1, 384 384 1, 384 0 1, 61 512 1, 151 576 1, 233 576 1, 323 512 1, 268 512 1, 192 552 1, 192 552 1, 116 512 1 -448 64 0 384 576;320 0 1, 320 72 1, 291 40 0, 263 24 1, 222 0 0, 174 0 1, 64 0 0, 64 108 1, 64 384 1, 128 384 1, 128 131 1, 128 92 0, 140 78 1, 152 64 0, 184 64 1, 254 64 0, 320 135 1, 320 384 1, 384 384 1, 384 0 1, 64 512 1, 64 576 1, 128 576 1, 128 512 1, 256 512 1, 256 576 1, 320 576 1, 320 512 1 -448 64 -128 384 576;186 -128 1, 196 327 1, 64 317 1, 64 375 1, 196 365 1, 186 576 1, 262 576 1, 252 365 1, 384 375 1, 384 317 1, 252 327 1, 262 -128 1 -320 64 384 256 576;160 576 1, 199 576 0, 228 548 1, 256 520 0, 256 480 1, 256 440 0, 228 412 1, 199 384 0, 159 384 1, 124 384 0, 98 407 1, 64 437 0, 64 480 1, 64 520 0, 92 548 1, 121 576 0, 160 512 1, 147 512 0, 137 503 1, 128 493 0, 128 480 1, 128 467 0, 137 457 1, 147 448 0, 160 448 1, 172 448 0, 181 456 1, 192 465 0, 192 480 1, 192 493 0, 183 503 1, 173 512 0 -448 0 0 384 576;192 0 1, 192 65 1, 113 74 0, 65 120 1, 0 181 0, 0 278 1, 0 379 0, 66 436 1, 112 475 0, 192 486 1, 192 555 1, 256 555 1, 256 486 1, 316 484 0, 384 468 1, 384 406 1, 304 428 0, 256 432 1, 256 117 1, 317 117 0, 384 143 1, 384 87 1, 317 65 0, 256 65 1, 256 0 1, 192 429 1, 161 426 0, 145 420 1, 64 390 0, 64 277 1, 64 199 0, 112 159 1, 140 136 0, 192 122 1 -448 64 0 384 640;64 0 1, 64 64 1, 128 88 0, 128 176 1, 128 256 1, 64 256 1, 64 320 1, 128 320 1, 128 410 1, 128 491 0, 170 533 1, 211 576 0, 291 576 1, 333 576 0, 384 579 1, 384 510 1, 325 512 0, 277 512 1, 192 512 0, 192 434 1, 192 320 1, 256 320 1, 256 256 1, 192 256 1, 192 211 1, 192 147 0, 176 116 1, 164 89 0, 136 64 1, 384 64 1, 384 0 1 -448 64 -128 384 576;64 -77 1, 64 -9 1, 155 -64 0, 214 -64 1, 260 -64 0, 290 -45 1, 320 -25 0, 320 7 1, 320 36 0, 298 52 1, 279 66 0, 235 86 1, 170 116 1, 64 164 0, 64 247 1, 64 303 0, 123 363 1, 64 398 0, 64 449 1, 64 506 0, 115 541 1, 166 576 0, 249 576 1, 306 576 0, 384 572 1, 384 512 1, 301 512 0, 245 512 1, 192 512 0, 160 494 1, 128 476 0, 128 447 1, 128 409 0, 194 383 1, 246 364 1, 324 334 0, 354 306 1, 384 278 0, 384 236 1, 384 186 0, 342 125 1, 384 83 0, 384 14 1, 384 -51 0, 335 -89 1, 287 -128 0, 207 -128 1, 151 -128 0, 304 149 1, 320 187 0, 320 221 1, 320 249 0, 303 266 1, 285 284 0, 241 303 1, 161 338 1, 128 302 0, 128 270 1, 128 219 0, 220 183 1 -256 0 192 192 384;96 384 1, 136 384 0, 164 356 1, 192 327 0, 192 287 1, 192 248 0, 164 220 1, 135 192 0, 94 192 1, 60 192 0, 34 215 1, 0 245 0, 0 288 1, 0 328 0, 28 356 1, 56 384 0 -384 64 -128 320 576;192 -111 1, 192 280 1, 136 287 0, 105 321 1, 64 366 0, 64 446 1, 64 516 0, 93 546 1, 123 576 0, 192 576 1, 320 576 1, 320 -111 1, 256 -111 1, 256 512 1, 256 512 1, 256 -111 1 -448 64 0 448 576;64 0 1, 64 432 1, 64 513 0, 100 545 1, 138 576 0, 232 576 1, 384 576 0, 384 480 1, 384 434 0, 313 385 1, 256 345 0, 256 327 1, 256 303 0, 302 274 1, 377 225 1, 448 180 0, 448 113 1, 448 0 0, 306 0 1, 244 0 0, 192 11 1, 192 76 1, 265 64 0, 310 64 1, 384 64 0, 384 115 1, 384 149 0, 336 179 1, 246 234 1, 192 267 0, 192 305 1, 192 337 0, 261 387 1, 320 430 0, 320 459 1, 320 512 0, 227 512 1, 172 512 0, 150 501 1, 128 490 0, 128 463 1, 128 0 1 -576 0 0 576 576;288 576 1, 407 576 0, 492 492 1, 576 407 0, 576 288 1, 576 168 0, 491 84 1, 407 0 0, 284 0 1, 180 0 0, 102 68 1, 0 157 0, 0 288 1, 0 407 0, 84 492 1, 169 576 0, 288 512 1, 196 512 0, 130 446 1, 64 380 0, 64 288 1, 64 197 0, 129 130 1, 195 64 0, 285 64 1, 370 64 0, 432 117 1, 512 185 0, 512 288 1, 512 381 0, 446 446 1, 380 512 0, 192 128 1, 192 448 1, 302 448 1, 384 448 0, 384 370 1, 384 315 0, 340 277 1, 431 128 1, 375 128 1, 294 262 1, 256 262 1, 256 128 1, 256 301 1, 267 301 1, 320 301 0, 320 363 1, 320 415 0, 280 415 1, 256 415 1 -576 0 0 576 576;288 576 1, 407 576 0, 492 492 1, 576 407 0, 576 288 1, 576 168 0, 491 84 1, 407 0 0, 284 0 1, 180 0 0, 102 68 1, 0 157 0, 0 288 1, 0 407 0, 84 492 1, 169 576 0, 288 512 1, 196 512 0, 130 446 1, 64 380 0, 64 288 1, 64 197 0, 129 130 1, 195 64 0, 285 64 1, 370 64 0, 432 117 1, 512 185 0, 512 288 1, 512 381 0, 446 446 1, 380 512 0, 384 142 1, 330 128 0, 288 128 1, 218 128 0, 173 173 1, 128 217 0, 128 288 1, 128 360 0, 172 404 1, 216 448 0, 291 448 1, 329 448 0, 375 441 1, 384 439 1, 384 393 1, 335 384 0, 297 384 1, 250 384 0, 221 357 1, 192 330 0, 192 287 1, 192 243 0, 222 218 1, 252 192 0, 303 192 1, 342 192 0, 384 188 1 -768 64 256 640 576;192 256 1, 192 512 1, 99 512 1, 99 576 1, 341 576 1, 341 512 1, 256 512 1, 256 256 1, 384 256 1, 384 576 1, 476 576 1, 521 372 1, 564 576 1, 640 576 1, 640 256 1, 576 256 1, 576 474 1, 529 279 1, 495 279 1, 448 454 1, 448 256 1 -256 0 512 256 576;40 512 1, 131 576 1, 216 576 1, 96 512 1 -256 0 512 256 576;0 512 1, 0 576 1, 64 576 1, 64 512 1, 192 512 1, 192 576 1, 256 576 1, 256 512 1 -192 0 0 0 0; -768 0 0 768 576;227 192 1, 384 192 1, 384 473 1, 10 0 1, 363 576 1, 704 576 1, 704 512 1, 448 512 1, 448 320 1, 704 320 1, 704 256 1, 448 256 1, 448 64 1, 768 64 1, 768 0 1, 384 0 1, 384 128 1, 190 128 1, 92 0 1 -576 0 0 576 576;39 0 1, 104 65 1, 86 104 0, 77 144 1, 64 203 0, 64 279 1, 64 414 0, 131 495 1, 198 576 0, 309 576 1, 394 576 0, 459 529 1, 498 576 1, 563 576 1, 496 484 1, 531 447 0, 550 409 1, 576 353 0, 576 283 1, 576 154 0, 502 77 1, 428 0 0, 304 0 1, 213 0 0, 142 32 1, 104 0 1, 184 83 1, 238 64 0, 312 64 1, 406 64 0, 459 119 1, 512 174 0, 512 273 1, 512 351 0, 448 405 1, 416 459 1, 367 512 0, 302 512 1, 220 512 0, 174 449 1, 128 387 0, 128 275 1, 128 184 0, 152 122 1 -192 0 0 0 0; -448 64 0 384 448;192 128 1, 192 256 1, 64 256 1, 64 320 1, 192 320 1, 192 448 1, 256 448 1, 256 320 1, 384 320 1, 384 256 1, 256 256 1, 256 128 1, 64 0 1, 64 64 1, 384 64 1, 384 0 1 -192 0 0 0 0; -192 0 0 0 0; -448 0 0 448 576;192 0 1, 192 128 1, 81 128 1, 81 192 1, 192 192 1, 192 192 1, 81 192 1, 81 256 1, 192 256 1, 31 576 1, 117 576 1, 232 335 1, 232 335 1, 350 576 1, 416 576 1, 256 256 1, 367 256 1, 367 192 1, 256 192 1, 256 192 1, 367 192 1, 367 128 1, 256 128 1, 256 0 1 -448 64 -128 384 384;64 384 1, 128 384 1, 128 131 1, 128 92 0, 140 78 1, 152 64 0, 184 64 1, 254 64 0, 320 135 1, 320 384 1, 384 384 1, 384 0 1, 320 0 1, 320 72 1, 252 0 0, 184 0 1, 156 0 0, 128 9 1, 128 -128 1, 64 -128 1 -192 0 0 0 0; -192 0 0 0 0; -192 0 0 0 0; -192 0 0 0 0; -192 0 0 0 0; -256 64 320 320 576;196 364 1, 162 320 0, 129 320 1, 100 320 0, 82 341 1, 64 363 0, 64 394 1, 64 485 0, 174 485 1, 192 485 1, 192 511 1, 192 512 0, 147 512 1, 110 512 0, 68 530 1, 68 572 1, 118 576 0, 161 576 1, 256 576 0, 256 513 1, 256 401 1, 256 383 0, 276 384 1, 279 384 1, 280 384 0, 282 384 1, 284 384 0, 286 368 1, 289 336 1, 268 320 0, 250 320 1, 209 320 0, 198 364 1, 192 395 1, 192 452 1, 178 452 1, 128 452 0, 128 413 1, 128 384 0, 154 384 1, 172 384 0 -256 0 320 256 576;128 576 1, 187 576 0, 222 542 1, 256 507 0, 256 449 1, 256 389 0, 222 354 1, 187 320 0, 127 320 1, 74 320 0, 41 348 1, 0 384 0, 0 448 1, 0 507 0, 35 541 1, 69 576 0, 128 512 1, 64 512 0, 64 448 1, 64 384 0, 128 384 1, 192 384 0, 192 449 1, 192 512 0 -192 0 0 0 0; -704 0 0 704 384;320 92 1, 320 198 1, 290 199 1, 263 200 0, 233 196 1, 128 183 0, 128 121 1, 128 64 0, 208 64 1, 264 64 0, 371 353 1, 423 384 0, 489 384 1, 642 384 0, 642 218 1, 642 192 1, 387 192 1, 391 153 0, 400 133 1, 431 64 0, 526 64 1, 578 64 0, 640 72 1, 640 13 1, 569 0 0, 510 0 1, 444 0 0, 399 29 1, 374 45 0, 351 77 1, 298 36 0, 260 19 1, 215 0 0, 153 0 1, 84 0 0, 42 30 1, 0 61 0, 0 110 1, 0 248 0, 300 248 1, 320 248 1, 320 290 1, 320 307 0, 298 313 1, 277 320 0, 223 320 1, 147 320 0, 64 318 1, 64 367 1, 151 384 0, 230 384 1, 325 384 0, 390 256 1, 574 256 1, 573 276 0, 567 287 1, 549 320 0, 487 320 1, 444 320 0, 419 305 1, 396 290 0 -448 0 0 448 448;131 21 1, 108 0 1, 54 0 1, 99 50 1, 64 108 0, 64 189 1, 64 280 0, 111 332 1, 158 384 0, 240 384 1, 298 384 0, 339 363 1, 362 448 1, 416 448 1, 371 334 1, 448 276 0, 448 196 1, 448 105 0, 394 53 1, 340 0 0, 246 0 1, 180 0 0, 169 71 1, 170 71 1, 190 67 0, 207 66 1, 229 64 0, 253 64 1, 384 64 0, 384 200 1, 384 241 0, 325 275 1, 301 313 1, 300 313 1, 271 320 0, 233 320 1, 128 320 0, 128 186 1, 128 140 0, 145 109 1 -448 64 -192 384 384;320 384 1, 320 320 1, 256 320 1, 256 384 1, 320 256 1, 320 236 1, 320 139 0, 247 89 1, 207 62 1, 128 7 0, 128 -50 1, 128 -128 0, 234 -128 1, 298 -128 0, 384 -78 1, 384 -141 1, 304 -192 0, 236 -192 1, 161 -192 0, 118 -165 1, 64 -131 0, 64 -55 1, 64 21 0, 147 68 1, 182 88 1, 226 113 0, 241 139 1, 256 166 0, 256 215 1, 256 256 1 -256 64 -128 128 384;128 384 1, 128 320 1, 64 320 1, 64 384 1, 120 256 1, 128 -32 1, 128 -128 1, 64 -128 1, 64 -32 1, 72 256 1 -448 64 128 384 320;64 256 1, 64 320 1, 384 320 1, 384 128 1, 320 128 1, 320 256 1 -192 0 0 0 0; -448 0 -128 448 640;51 -128 1, 118 256 1, 64 256 1, 64 320 1, 128 320 1, 135 361 1, 174 576 0, 310 576 1, 346 576 0, 389 579 1, 378 515 1, 339 512 0, 307 512 1, 230 512 0, 208 394 1, 194 320 1, 256 320 1, 256 256 1, 184 256 1, 118 -128 1 -192 0 0 0 0; -192 0 0 0 0; -448 0 0 384 384;376 342 1, 265 204 1, 376 65 1, 339 37 1, 191 204 1, 339 370 1, 228 342 1, 117 204 1, 228 65 1, 191 37 1, 43 204 1, 191 370 1 -448 0 0 384 384;51 65 1, 162 204 1, 51 342 1, 88 370 1, 236 204 1, 88 37 1, 199 65 1, 310 204 1, 199 342 1, 236 370 1, 384 204 1, 236 37 1 -768 64 0 704 64;64 0 1, 64 64 1, 128 64 1, 128 0 1, 320 0 1, 320 64 1, 384 64 1, 384 0 1, 640 0 1, 640 64 1, 704 64 1, 704 0 1 -448 0 0 0 0; -512 0 0 512 704;7 0 1, 218 576 1, 296 576 1, 503 0 1, 419 0 1, 361 128 1, 138 128 1, 80 0 1, 161 192 1, 339 192 1, 250 458 1, 312 576 1, 257 576 1, 137 704 1, 222 704 1 -512 0 0 512 768;7 0 1, 218 576 1, 296 576 1, 503 0 1, 419 0 1, 361 128 1, 138 128 1, 80 0 1, 161 192 1, 339 192 1, 250 458 1, 132 623 1, 135 655 0, 144 673 1, 161 704 0, 202 704 1, 229 704 0, 252 704 1, 275 704 1, 296 704 0, 307 704 1, 332 704 0, 336 710 1, 382 710 1, 379 682 0, 370 667 1, 353 640 0, 312 640 1, 285 640 0, 262 640 1, 239 640 1, 219 640 0, 207 640 1, 182 640 0, 178 623 1 -576 64 0 576 768;320 576 1, 436 576 0, 506 498 1, 576 419 0, 576 289 1, 576 156 0, 506 78 1, 436 0 0, 316 0 1, 214 0 0, 147 64 1, 64 145 0, 64 288 1, 64 420 0, 134 498 1, 204 576 0, 320 512 1, 229 512 0, 179 453 1, 128 394 0, 128 288 1, 128 183 0, 179 124 1, 229 64 0, 318 64 1, 401 64 0, 450 112 1, 512 171 0, 512 289 1, 512 394 0, 461 453 1, 410 512 0, 174 623 1, 177 655 0, 186 673 1, 203 704 0, 244 704 1, 271 704 0, 294 704 1, 316 704 1, 337 704 0, 349 704 1, 373 704 0, 377 710 1, 423 710 1, 420 682 0, 411 667 1, 394 640 0, 354 640 1, 327 640 0, 303 640 1, 281 640 1, 260 640 0, 248 640 1, 224 640 0, 220 623 1 -768 64 0 768 576;448 0 1, 448 24 1, 387 0 0, 317 0 1, 203 0 0, 134 79 1, 64 159 0, 64 288 1, 64 420 0, 134 498 1, 204 576 0, 320 576 1, 388 576 0, 448 553 1, 448 576 1, 704 576 1, 704 512 1, 512 512 1, 512 320 1, 704 320 1, 704 256 1, 512 256 1, 512 64 1, 768 64 1, 768 0 1, 448 212 1, 448 345 1, 448 433 0, 416 472 1, 384 512 0, 314 512 1, 226 512 0, 177 453 1, 128 394 0, 128 288 1, 128 182 0, 177 123 1, 227 64 0, 314 64 1, 448 64 0 -704 64 0 704 384;396 332 1, 420 355 0, 447 367 1, 486 384 0, 540 384 1, 637 384 0, 675 325 1, 703 282 0, 704 192 1, 437 192 1, 444 129 0, 471 100 1, 506 64 0, 585 64 1, 643 64 0, 704 73 1, 704 14 1, 632 0 0, 566 0 1, 499 0 0, 459 19 1, 429 33 0, 398 65 1, 376 36 0, 349 22 1, 310 0 0, 255 0 1, 168 0 0, 116 52 1, 64 104 0, 64 192 1, 64 281 0, 116 332 1, 168 384 0, 256 384 1, 313 384 0, 353 364 1, 375 353 0, 261 320 1, 128 320 0, 128 193 1, 128 138 0, 154 106 1, 187 64 0, 262 64 1, 384 64 0, 384 192 1, 384 251 0, 359 283 1, 329 320 0, 439 256 1, 625 256 1, 624 282 0, 612 296 1, 592 320 0, 539 320 1, 487 320 0, 462 299 1, 445 284 0 -448 0 192 448 256;38 192 1, 38 256 1, 390 256 1, 390 192 1 -768 0 192 768 256;37 192 1, 37 256 1, 731 256 1, 731 192 1 -256 0 384 256 640;256 578 1, 256 551 1, 233 537 0, 233 467 1, 233 458 1, 256 458 1, 256 384 1, 192 384 1, 192 446 1, 192 559 0, 64 578 1, 64 551 1, 41 537 0, 41 467 1, 41 458 1, 64 458 1, 64 384 1, 0 384 1, 0 446 1, 0 559 0 -256 0 320 256 576;0 382 1, 0 409 1, 23 423 0, 23 493 1, 23 502 1, 0 502 1, 0 576 1, 64 576 1, 64 514 1, 64 401 0, 192 382 1, 192 409 1, 215 423 0, 215 493 1, 215 502 1, 192 502 1, 192 576 1, 256 576 1, 256 514 1, 256 401 0 -192 64 384 128 640;128 597 1, 128 569 1, 103 559 0, 103 484 1, 103 476 1, 128 476 1, 128 384 1, 64 384 1, 64 464 1, 64 586 0 -192 64 320 128 576;64 363 1, 64 391 1, 89 401 0, 89 476 1, 89 483 1, 64 483 1, 64 576 1, 128 576 1, 128 496 1, 128 372 0 -448 64 0 384 448;64 192 1, 64 256 1, 384 256 1, 384 192 1, 192 384 1, 192 448 1, 256 448 1, 256 384 1, 192 0 1, 192 64 1, 256 64 1, 256 0 1 -192 0 0 0 0; -384 0 -128 384 576;152 0 1, 7 384 1, 82 384 1, 193 90 1, 314 384 1, 380 384 1, 164 -128 1, 87 -128 1, 64 512 1, 64 576 1, 128 576 1, 128 512 1, 256 512 1, 256 576 1, 320 576 1, 320 512 1 -512 -64 0 576 640;192 0 1, 192 240 1, -19 576 1, 71 576 1, 227 309 1, 441 576 1, 514 576 1, 256 242 1, 256 0 1, 128 576 1, 128 640 1, 192 640 1, 192 576 1, 320 576 1, 320 640 1, 384 640 1, 384 576 1 -128 -192 -64 320 576;-165 -14 1, 243 569 1, 293 569 1, -114 -14 1 -448 0 64 384 448;137 145 1, 78 87 1, 46 120 1, 104 178 1, 64 217 0, 64 255 1, 64 292 0, 104 331 1, 46 390 1, 78 423 1, 137 364 1, 174 384 0, 214 384 1, 253 384 0, 290 364 1, 348 423 1, 381 390 1, 323 331 1, 320 292 0, 320 255 1, 320 217 0, 323 178 1, 381 120 1, 348 87 1, 290 145 1, 253 128 0, 214 128 1, 174 128 0, 192 320 1, 165 320 0, 146 302 1, 128 283 0, 128 256 1, 128 229 0, 146 211 1, 165 192 0, 191 192 1, 216 192 0, 233 207 1, 256 226 0, 256 256 1, 256 283 0, 238 302 1, 219 320 0 -256 0 0 256 384;213 342 1, 102 204 1, 213 65 1, 176 37 1, 28 204 1, 176 370 1 -256 0 0 256 384;43 65 1, 154 204 1, 43 342 1, 80 370 1, 228 204 1, 80 37 1 -384 0 0 320 640;64 0 1, 64 320 1, 0 320 1, 0 384 1, 64 384 1, 64 468 1, 64 640 0, 194 640 1, 221 640 0, 256 613 1, 256 557 1, 219 576 0, 193 576 1, 157 576 0, 142 555 1, 128 534 0, 128 482 1, 128 384 1, 320 384 1, 320 0 1, 256 0 1, 256 320 1, 128 320 1, 128 0 1, 256 512 1, 256 576 1, 320 576 1, 320 512 1 -384 0 0 320 576;64 0 1, 64 320 1, 0 320 1, 0 384 1, 64 384 1, 64 435 1, 64 576 0, 175 576 1, 256 576 1, 320 576 1, 320 0 1, 256 0 1, 256 518 1, 240 516 1, 206 512 0, 183 512 1, 148 512 0, 137 493 1, 128 477 0, 128 443 1, 128 384 1, 192 384 1, 192 320 1, 128 320 1, 128 0 1 -448 64 -128 384 576;183 -128 1, 192 97 1, 64 86 1, 64 144 1, 192 134 1, 192 327 1, 64 317 1, 64 375 1, 192 365 1, 183 576 1, 265 576 1, 256 365 1, 384 375 1, 384 317 1, 256 327 1, 256 134 1, 384 144 1, 384 86 1, 256 97 1, 265 -128 1 -192 64 192 128 256;64 192 1, 64 256 1, 128 256 1, 128 192 1 -192 64 -192 128 64;64 -140 1, 64 -112 1, 89 -102 0, 89 -36 1, 89 -29 1, 64 -29 1, 64 64 1, 128 64 1, 128 -16 1, 128 -130 0 -256 0 -192 256 64;0 -130 1, 0 -103 1, 23 -89 0, 23 -19 1, 23 -10 1, 0 -10 1, 0 64 1, 64 64 1, 64 2 1, 64 -111 0, 192 -130 1, 192 -103 1, 215 -89 0, 215 -19 1, 215 -10 1, 192 -10 1, 192 64 1, 256 64 1, 256 2 1, 256 -111 0 -768 0 -64 768 640;128 576 1, 186 576 0, 221 541 1, 256 507 0, 256 448 1, 256 388 0, 221 354 1, 187 320 0, 126 320 1, 75 320 0, 42 348 1, 0 384 0, 0 448 1, 0 507 0, 35 541 1, 70 576 0, 127 512 1, 64 512 0, 64 448 1, 64 384 0, 128 384 1, 192 384 0, 192 448 1, 192 477 0, 175 495 1, 157 512 0, 384 320 1, 443 320 0, 477 277 1, 512 234 0, 512 160 1, 512 86 0, 477 43 1, 443 0 0, 383 0 1, 330 0 0, 298 35 1, 256 80 0, 256 160 1, 256 234 0, 291 277 1, 326 320 0, 383 256 1, 320 256 0, 320 160 1, 320 64 0, 384 64 1, 448 64 0, 448 159 1, 448 204 0, 431 230 1, 413 256 0, 640 320 1, 699 320 0, 733 277 1, 768 234 0, 768 161 1, 768 86 0, 733 43 1, 698 0 0, 639 0 1, 587 0 0, 553 35 1, 512 80 0, 512 160 1, 512 234 0, 547 277 1, 581 320 0, 639 256 1, 576 256 0, 576 160 1, 576 64 0, 640 64 1, 704 64 0, 704 160 1, 704 204 0, 686 230 1, 669 256 0, 23 -14 1, 431 590 1, 482 590 1, 74 -14 1 -512 0 0 512 704;7 0 1, 218 576 1, 296 576 1, 503 0 1, 419 0 1, 361 128 1, 138 128 1, 80 0 1, 161 192 1, 339 192 1, 250 458 1, 126 576 1, 216 704 1, 298 704 1, 388 576 1, 333 576 1, 257 657 1, 257 657 1, 181 576 1 -512 64 0 512 704;64 0 1, 64 576 1, 448 576 1, 448 512 1, 128 512 1, 128 320 1, 448 320 1, 448 256 1, 128 256 1, 128 64 1, 512 64 1, 512 0 1, 127 576 1, 228 704 1, 319 704 1, 420 576 1, 358 576 1, 274 657 1, 273 657 1, 189 576 1 -512 0 0 512 704;7 0 1, 218 576 1, 296 576 1, 503 0 1, 419 0 1, 361 128 1, 138 128 1, 80 0 1, 161 192 1, 339 192 1, 250 458 1, 201 576 1, 292 704 1, 377 704 1, 257 576 1 -512 64 0 512 640;64 0 1, 64 576 1, 448 576 1, 448 512 1, 128 512 1, 128 320 1, 448 320 1, 448 256 1, 128 256 1, 128 64 1, 512 64 1, 512 0 1, 192 576 1, 192 640 1, 256 640 1, 256 576 1, 320 576 1, 320 640 1, 384 640 1, 384 576 1 -512 64 0 512 704;64 0 1, 64 576 1, 448 576 1, 448 512 1, 128 512 1, 128 320 1, 448 320 1, 448 256 1, 128 256 1, 128 64 1, 512 64 1, 512 0 1, 334 576 1, 273 576 1, 138 704 1, 234 704 1 -192 0 0 256 704;64 0 1, 64 576 1, 128 576 1, 128 0 1, 48 576 1, 124 704 1, 209 704 1, 96 576 1 -192 -64 0 256 704;64 0 1, 64 576 1, 128 576 1, 128 0 1, -28 576 1, 62 704 1, 130 704 1, 220 576 1, 164 576 1, 96 657 1, 96 657 1, 28 576 1 -192 0 0 192 640;64 0 1, 64 576 1, 128 576 1, 128 0 1, 0 576 1, 0 640 1, 64 640 1, 64 576 1, 128 576 1, 128 640 1, 192 640 1, 192 576 1 -192 -64 0 192 704;64 0 1, 64 576 1, 128 576 1, 128 0 1, 144 576 1, 96 576 1, -17 704 1, 68 704 1 -576 64 0 576 704;320 576 1, 436 576 0, 506 498 1, 576 419 0, 576 289 1, 576 156 0, 506 78 1, 436 0 0, 316 0 1, 214 0 0, 147 64 1, 64 145 0, 64 288 1, 64 420 0, 134 498 1, 204 576 0, 320 512 1, 229 512 0, 179 453 1, 128 394 0, 128 288 1, 128 183 0, 179 124 1, 229 64 0, 318 64 1, 401 64 0, 450 112 1, 512 171 0, 512 289 1, 512 394 0, 461 453 1, 410 512 0, 243 576 1, 333 704 1, 419 704 1, 299 576 1 -576 64 0 576 704;320 576 1, 436 576 0, 506 498 1, 576 419 0, 576 289 1, 576 156 0, 506 78 1, 436 0 0, 316 0 1, 214 0 0, 147 64 1, 64 145 0, 64 288 1, 64 420 0, 134 498 1, 204 576 0, 320 512 1, 229 512 0, 179 453 1, 128 394 0, 128 288 1, 128 183 0, 179 124 1, 229 64 0, 318 64 1, 401 64 0, 450 112 1, 512 171 0, 512 289 1, 512 394 0, 461 453 1, 410 512 0, 167 576 1, 258 704 1, 339 704 1, 430 576 1, 374 576 1, 299 657 1, 298 657 1, 223 576 1 -448 -64 0 384 576;121 192 1, 136 142 0, 158 114 1, 198 64 0, 269 64 1, 316 64 0, 384 72 1, 384 10 1, 311 0 0, 260 0 1, 173 0 0, 119 46 1, 81 78 0, 62 132 1, 55 151 0, 46 192 1, -21 192 1, -2 256 1, 40 256 1, 39 280 1, 39 282 0, 39 288 1, 40 302 0, 41 320 1, -21 320 1, -2 384 1, 48 384 1, 63 444 0, 81 474 1, 140 576 0, 273 576 1, 320 576 0, 384 573 1, 384 502 1, 321 512 0, 273 512 1, 207 512 0, 168 469 1, 145 444 0, 133 413 1, 128 401 0, 123 384 1, 336 384 1, 316 320 1, 115 320 1, 113 296 0, 113 281 1, 114 256 1, 286 256 1, 267 192 1 -576 64 0 576 704;320 576 1, 436 576 0, 506 498 1, 576 419 0, 576 289 1, 576 156 0, 506 78 1, 436 0 0, 316 0 1, 214 0 0, 147 64 1, 64 145 0, 64 288 1, 64 420 0, 134 498 1, 204 576 0, 320 512 1, 229 512 0, 179 453 1, 128 394 0, 128 288 1, 128 183 0, 179 124 1, 229 64 0, 318 64 1, 401 64 0, 450 112 1, 512 171 0, 512 289 1, 512 394 0, 461 453 1, 410 512 0, 354 576 1, 299 576 1, 178 704 1, 264 704 1 -576 64 0 512 704;64 576 1, 128 576 1, 128 213 1, 128 158 0, 139 132 1, 150 106 0, 180 88 1, 223 64 0, 295 64 1, 379 64 0, 414 97 1, 448 129 0, 448 210 1, 448 576 1, 512 576 1, 512 211 1, 512 139 0, 497 102 1, 482 64 0, 440 37 1, 385 0 0, 292 0 1, 174 0 0, 119 51 1, 64 102 0, 64 214 1, 225 576 1, 328 704 1, 425 704 1, 288 576 1 -576 64 0 512 704;64 576 1, 128 576 1, 128 213 1, 128 158 0, 139 132 1, 150 106 0, 180 88 1, 223 64 0, 295 64 1, 379 64 0, 414 97 1, 448 129 0, 448 210 1, 448 576 1, 512 576 1, 512 211 1, 512 139 0, 497 102 1, 482 64 0, 440 37 1, 385 0 0, 292 0 1, 174 0 0, 119 51 1, 64 102 0, 64 214 1, 139 576 1, 242 704 1, 334 704 1, 437 576 1, 374 576 1, 288 657 1, 288 657 1, 202 576 1 -576 64 0 512 704;64 576 1, 128 576 1, 128 213 1, 128 158 0, 139 132 1, 150 106 0, 180 88 1, 223 64 0, 295 64 1, 379 64 0, 414 97 1, 448 129 0, 448 210 1, 448 576 1, 512 576 1, 512 211 1, 512 139 0, 497 102 1, 482 64 0, 440 37 1, 385 0 0, 292 0 1, 174 0 0, 119 51 1, 64 102 0, 64 214 1, 351 576 1, 288 576 1, 151 704 1, 248 704 1 -192 64 0 128 384;64 0 1, 64 384 1, 128 384 1, 128 0 1 -256 -64 512 320 576;-3 512 1, 87 576 1, 169 576 1, 259 512 1, 204 512 1, 128 552 1, 128 552 1, 52 512 1 -256 0 448 256 640;3 502 1, 6 531 0, 15 548 1, 32 576 0, 73 576 1, 100 576 0, 123 576 1, 146 576 1, 167 576 0, 178 576 1, 203 576 0, 207 590 1, 253 590 1, 250 559 0, 241 542 1, 224 512 0, 183 512 1, 156 512 0, 133 512 1, 110 512 1, 90 512 0, 78 512 1, 53 512 0, 49 502 1 -256 0 448 256 512;0 448 1, 0 512 1, 256 512 1, 256 448 1 -256 0 512 256 640;3 602 1, 49 602 1, 57 588 0, 77 582 1, 97 576 0, 128 576 1, 163 576 0, 184 583 1, 200 589 0, 207 602 1, 253 602 1, 247 564 0, 220 542 1, 184 512 0, 128 512 1, 69 512 0, 33 544 1, 9 566 0 -256 64 512 128 576;64 512 1, 64 576 1, 128 576 1, 128 512 1 -256 64 512 192 640;128 640 1, 155 640 0, 173 621 1, 192 603 0, 192 576 1, 192 549 0, 173 531 1, 155 512 0, 127 512 1, 104 512 0, 87 527 1, 64 547 0, 64 576 1, 64 603 0, 83 621 1, 101 640 0, 128 576 1, 128 576 0, 128 576 1, 128 576 0, 128 576 1, 128 576 0, 128 576 1, 128 576 0, 128 576 1, 128 576 0, 128 576 1, 128 576 0, 128 576 1, 128 576 0, 128 576 1, 128 576 0 -256 0 -192 192 0;107 0 1, 143 0 1, 120 -41 1, 147 -42 0, 166 -59 1, 192 -82 0, 192 -116 1, 192 -148 0, 170 -170 1, 149 -192 0, 116 -192 1, 91 -192 0, 63 -154 1, 63 -124 1, 79 -128 0, 96 -128 1, 128 -128 0, 128 -101 1, 128 -67 0, 71 -66 1 -256 -64 448 320 576;-19 456 1, 71 576 1, 143 576 1, 23 456 1, 113 456 1, 203 576 1, 275 576 1, 155 456 1 -256 64 -128 192 0;123 0 1, 163 0 1, 128 -19 0, 128 -42 1, 128 -64 0, 164 -64 1, 180 -64 0, 192 -98 1, 192 -128 1, 169 -128 0, 140 -128 1, 64 -128 0, 64 -73 1, 64 -31 0 -256 -64 512 320 576;259 576 1, 169 512 1, 87 512 1, -3 576 1, 52 576 1, 128 536 1, 128 536 1, 204 576 1 -448 -64 0 384 576;121 192 1, 136 142 0, 158 114 1, 198 64 0, 269 64 1, 316 64 0, 384 72 1, 384 10 1, 311 0 0, 260 0 1, 173 0 0, 119 46 1, 81 78 0, 62 132 1, 55 151 0, 46 192 1, -21 192 1, -2 256 1, 40 256 1, 39 280 1, 39 282 0, 39 288 1, 40 302 0, 41 320 1, -21 320 1, -2 384 1, 48 384 1, 63 444 0, 81 474 1, 140 576 0, 273 576 1, 320 576 0, 384 573 1, 384 502 1, 321 512 0, 273 512 1, 207 512 0, 168 469 1, 145 444 0, 133 413 1, 128 401 0, 123 384 1, 336 384 1, 316 320 1, 115 320 1, 113 296 0, 113 281 1, 114 256 1, 286 256 1, 267 192 1 -192 0 0 0 0; -192 64 -128 128 576;64 -128 1, 64 192 1, 128 192 1, 128 -128 1, 64 320 1, 64 576 1, 128 576 1, 128 320 1 -256 64 192 192 256;64 192 1, 64 256 1, 192 256 1, 192 192 1 -448 64 512 384 576;64 512 1, 64 576 1, 384 576 1, 384 512 1 -256 0 192 256 576;28 192 1, 28 256 1, 55 300 0, 101 338 1, 129 361 1, 192 412 0, 192 458 1, 192 512 0, 127 512 1, 89 512 0, 36 488 1, 36 532 1, 89 576 0, 138 576 1, 191 576 0, 224 548 1, 256 521 0, 256 477 1, 256 421 0, 179 359 1, 157 341 1, 102 296 0, 92 256 1, 238 256 1, 238 192 1 -256 0 192 256 576;32 507 1, 32 549 1, 68 576 0, 103 576 1, 192 576 0, 192 492 1, 192 454 0, 177 429 1, 168 414 0, 151 402 1, 212 388 0, 236 360 1, 256 336 0, 256 302 1, 256 251 0, 220 222 1, 184 192 0, 121 192 1, 79 192 0, 28 225 1, 28 270 1, 84 256 0, 117 256 1, 192 256 0, 192 314 1, 192 381 0, 78 381 1, 59 381 1, 59 416 1, 75 416 1, 128 416 0, 128 470 1, 128 512 0, 86 512 1, 62 512 0 -192 64 192 128 256;64 192 1, 64 256 1, 128 256 1, 128 192 1 -256 0 192 192 576;128 192 1, 128 477 1, 54 458 1, 54 501 1, 192 534 1, 192 192 1 -640 0 -64 640 576;128 192 1, 128 494 1, 54 475 1, 54 518 1, 192 551 1, 192 192 1, 512 -27 1, 512 64 1, 361 64 1, 361 126 1, 511 320 1, 576 320 1, 576 128 1, 622 128 1, 622 64 1, 576 64 1, 576 -27 1, 409 128 1, 512 128 1, 512 249 1, 82 -41 1, 495 556 1, 554 556 1, 134 -41 1 -640 0 -64 640 576;401 0 1, 401 64 1, 428 95 0, 479 125 1, 509 143 1, 576 181 0, 576 215 1, 576 256 0, 507 256 1, 467 256 0, 410 248 1, 410 291 1, 466 320 0, 516 320 1, 572 320 0, 606 298 1, 640 276 0, 640 241 1, 640 194 0, 559 146 1, 535 132 1, 476 96 0, 466 64 1, 612 64 1, 612 0 1, 63 -14 1, 480 539 1, 531 539 1, 114 -14 1, 128 192 1, 128 477 1, 54 458 1, 54 501 1, 192 534 1, 192 192 1 -640 0 -64 640 576;56 494 1, 56 536 1, 101 576 0, 145 576 1, 256 576 0, 256 486 1, 256 444 0, 227 418 1, 209 402 0, 175 389 1, 222 376 0, 241 349 1, 256 327 0, 256 295 1, 256 247 0, 224 220 1, 192 192 0, 135 192 1, 97 192 0, 52 215 1, 52 259 1, 100 256 0, 128 256 1, 192 256 0, 192 308 1, 192 368 0, 102 368 1, 83 368 1, 83 403 1, 99 403 1, 192 403 0, 192 465 1, 192 512 0, 133 512 1, 99 512 0, 512 -27 1, 512 64 1, 359 64 1, 359 126 1, 510 320 1, 576 320 1, 576 128 1, 623 128 1, 623 64 1, 576 64 1, 576 -27 1, 408 128 1, 512 128 1, 512 260 1, 117 -41 1, 528 556 1, 589 556 1, 167 -41 1 -576 0 0 512 576;64 0 1, 64 256 1, 0 256 1, 0 320 1, 64 320 1, 64 576 1, 229 576 1, 512 576 0, 512 301 1, 512 158 0, 438 79 1, 365 0 0, 231 0 1, 128 64 1, 225 64 1, 448 64 0, 448 292 1, 448 426 0, 361 481 1, 336 497 0, 300 504 1, 258 512 0, 188 512 1, 128 512 1, 128 320 1, 256 320 1, 256 256 1, 128 256 1 -448 0 0 448 384;44 58 1, 185 199 1, 44 340 1, 84 379 1, 224 238 1, 365 379 1, 404 340 1, 264 199 1, 404 58 1, 365 19 1, 224 160 1, 84 19 1 -512 -64 0 512 704;192 0 1, 192 240 1, -7 576 1, 83 576 1, 232 309 1, 395 576 1, 468 576 1, 256 242 1, 256 0 1, 185 576 1, 261 704 1, 346 704 1, 232 576 1 -512 64 0 512 576;64 0 1, 64 576 1, 128 576 1, 128 448 1, 267 448 1, 365 448 0, 408 438 1, 451 429 0, 478 401 1, 512 367 0, 512 308 1, 512 128 0, 244 128 1, 128 128 1, 128 0 1, 128 192 1, 240 192 1, 448 192 0, 448 302 1, 448 355 0, 394 371 1, 348 384 0, 242 384 1, 128 384 1 -448 64 0 384 704;64 554 1, 64 615 1, 139 615 0, 200 586 1, 258 650 1, 287 617 1, 238 559 1, 278 523 0, 299 494 1, 384 380 0, 384 219 1, 384 116 0, 342 58 1, 299 0 0, 226 0 1, 152 0 0, 108 53 1, 64 105 0, 64 194 1, 64 283 0, 110 333 1, 155 384 0, 234 384 1, 253 384 0, 276 379 1, 247 449 0, 194 497 1, 138 416 1, 109 459 1, 157 528 1, 119 554 0, 223 320 1, 178 320 0, 153 287 1, 128 253 0, 128 192 1, 128 64 0, 224 64 1, 320 64 0, 320 192 1, 320 320 0 -384 0 -128 384 576;152 0 1, 7 384 1, 82 384 1, 193 90 1, 314 384 1, 380 384 1, 164 -128 1, 87 -128 1, 168 512 1, 259 576 1, 344 576 1, 224 512 1 -448 64 -128 384 576;128 -128 1, 64 -128 1, 64 576 1, 128 576 1, 128 312 1, 148 344 0, 171 361 1, 203 384 0, 247 384 1, 308 384 0, 346 334 1, 384 285 0, 384 202 1, 384 106 0, 335 53 1, 286 0 0, 197 0 1, 164 0 0, 128 0 1, 128 249 1, 128 53 1, 182 64 0, 209 64 1, 320 64 0, 320 199 1, 320 256 0, 298 288 1, 276 320 0, 239 320 1, 190 320 0 -512 -64 0 512 640;-1 0 1, 215 576 1, 297 576 1, 510 0 1, 425 0 1, 366 128 1, 130 128 1, 72 0 1, 154 192 1, 343 192 1, 249 458 1, 128 576 1, 128 640 1, 384 640 1, 384 576 1 -448 0 0 448 512;329 49 1, 239 0 0, 155 0 1, 86 0 0, 43 28 1, 0 57 0, 0 101 1, 0 227 0, 299 227 1, 320 227 1, 320 274 1, 320 320 0, 224 320 1, 149 320 0, 64 307 1, 64 364 1, 151 384 0, 228 384 1, 309 384 0, 347 358 1, 384 331 0, 384 274 1, 384 99 1, 384 64 0, 423 64 1, 428 64 0, 437 42 1, 443 3 1, 417 0 0, 392 0 1, 368 0 0, 352 11 1, 337 23 0, 320 87 1, 320 186 1, 283 187 1, 248 188 0, 206 184 1, 64 173 0, 64 116 1, 64 64 0, 168 64 1, 240 64 0, 64 448 1, 64 512 1, 320 512 1, 320 448 1 -512 0 0 512 768;8 0 1, 219 576 1, 297 576 1, 504 0 1, 419 0 1, 362 128 1, 139 128 1, 81 0 1, 161 192 1, 340 192 1, 251 458 1, 133 743 1, 179 743 1, 187 722 0, 207 713 1, 226 704 0, 258 704 1, 293 704 0, 313 715 1, 329 724 0, 336 743 1, 383 743 1, 377 700 0, 350 674 1, 314 640 0, 258 640 1, 199 640 0, 163 677 1, 139 702 0 -448 0 0 448 640;329 49 1, 239 0 0, 155 0 1, 86 0 0, 43 28 1, 0 57 0, 0 101 1, 0 227 0, 299 227 1, 320 227 1, 320 274 1, 320 320 0, 224 320 1, 149 320 0, 64 307 1, 64 364 1, 151 384 0, 228 384 1, 309 384 0, 347 358 1, 384 331 0, 384 274 1, 384 99 1, 384 64 0, 423 64 1, 428 64 0, 437 42 1, 443 3 1, 417 0 0, 392 0 1, 368 0 0, 352 11 1, 337 23 0, 320 87 1, 320 186 1, 283 187 1, 248 188 0, 206 184 1, 64 173 0, 64 116 1, 64 64 0, 168 64 1, 240 64 0, 67 602 1, 113 602 1, 121 588 0, 141 582 1, 161 576 0, 192 576 1, 227 576 0, 248 583 1, 264 589 0, 271 602 1, 317 602 1, 311 564 0, 284 542 1, 248 512 0, 192 512 1, 133 512 0, 97 544 1, 73 566 0 -512 0 -128 512 576;7 0 1, 218 576 1, 296 576 1, 503 0 1, 419 0 1, 361 128 1, 138 128 1, 80 0 1, 161 192 1, 339 192 1, 250 458 1, 419 0 1, 459 0 1, 448 -19 0, 448 -42 1, 448 -64 0, 470 -64 1, 481 -64 0, 488 -98 1, 488 -128 1, 469 -128 0, 446 -128 1, 384 -128 0, 384 -73 1, 384 -31 0 -448 0 -128 448 384;329 49 1, 239 0 0, 155 0 1, 86 0 0, 43 28 1, 0 57 0, 0 101 1, 0 227 0, 299 227 1, 320 227 1, 320 274 1, 320 320 0, 224 320 1, 149 320 0, 64 307 1, 64 364 1, 151 384 0, 228 384 1, 309 384 0, 347 358 1, 384 331 0, 384 274 1, 384 99 1, 384 64 0, 423 64 1, 428 64 0, 437 42 1, 443 3 1, 417 0 0, 392 0 1, 368 0 0, 352 11 1, 337 23 0, 320 87 1, 320 186 1, 283 187 1, 248 188 0, 206 184 1, 64 173 0, 64 116 1, 64 64 0, 168 64 1, 240 64 0, 315 0 1, 355 0 1, 320 -19 0, 320 -42 1, 320 -64 0, 356 -64 1, 372 -64 0, 384 -98 1, 384 -128 1, 361 -128 0, 332 -128 1, 256 -128 0, 256 -73 1, 256 -31 0 -576 64 0 512 704;512 30 1, 429 0 0, 334 0 1, 202 0 0, 133 73 1, 64 147 0, 64 287 1, 64 427 0, 134 502 1, 205 576 0, 338 576 1, 413 576 0, 512 566 1, 512 489 1, 394 512 0, 326 512 1, 230 512 0, 179 454 1, 128 396 0, 128 287 1, 128 180 0, 182 122 1, 237 64 0, 335 64 1, 417 64 0, 512 100 1, 270 576 1, 360 704 1, 446 704 1, 326 576 1 -384 0 0 384 576;320 11 1, 251 0 0, 190 0 1, 104 0 0, 52 53 1, 0 107 0, 0 192 1, 0 282 0, 54 333 1, 108 384 0, 205 384 1, 254 384 0, 320 380 1, 320 322 1, 251 320 0, 209 320 1, 64 320 0, 64 191 1, 64 130 0, 101 97 1, 137 64 0, 203 64 1, 253 64 0, 320 72 1, 168 512 1, 259 576 1, 344 576 1, 224 512 1 -576 64 0 512 704;512 30 1, 429 0 0, 334 0 1, 202 0 0, 133 73 1, 64 147 0, 64 287 1, 64 427 0, 134 502 1, 205 576 0, 338 576 1, 413 576 0, 512 566 1, 512 489 1, 394 512 0, 326 512 1, 230 512 0, 179 454 1, 128 396 0, 128 287 1, 128 180 0, 182 122 1, 237 64 0, 335 64 1, 417 64 0, 512 100 1, 194 576 1, 285 704 1, 366 704 1, 457 576 1, 401 576 1, 326 657 1, 325 657 1, 250 576 1 -384 0 0 384 576;320 11 1, 251 0 0, 190 0 1, 104 0 0, 52 53 1, 0 107 0, 0 192 1, 0 282 0, 54 333 1, 108 384 0, 205 384 1, 254 384 0, 320 380 1, 320 322 1, 251 320 0, 209 320 1, 64 320 0, 64 191 1, 64 130 0, 101 97 1, 137 64 0, 203 64 1, 253 64 0, 320 72 1, 74 512 1, 164 576 1, 246 576 1, 332 512 1, 281 512 1, 205 552 1, 204 552 1, 129 512 1 -576 64 0 512 704;512 30 1, 429 0 0, 334 0 1, 202 0 0, 133 73 1, 64 147 0, 64 287 1, 64 427 0, 134 502 1, 205 576 0, 338 576 1, 413 576 0, 512 566 1, 512 489 1, 394 512 0, 326 512 1, 230 512 0, 179 454 1, 128 396 0, 128 287 1, 128 180 0, 182 122 1, 237 64 0, 335 64 1, 417 64 0, 512 100 1, 320 640 1, 320 704 1, 384 704 1, 384 640 1 -384 64 0 320 576;320 11 1, 265 0 0, 216 0 1, 148 0 0, 106 53 1, 64 107 0, 64 192 1, 64 282 0, 107 333 1, 150 384 0, 228 384 1, 267 384 0, 320 380 1, 320 322 1, 268 320 0, 237 320 1, 128 320 0, 128 191 1, 128 130 0, 156 97 1, 183 64 0, 232 64 1, 270 64 0, 320 72 1, 192 512 1, 192 576 1, 256 576 1, 256 512 1 -576 64 0 512 704;512 30 1, 429 0 0, 334 0 1, 202 0 0, 133 73 1, 64 147 0, 64 287 1, 64 427 0, 134 502 1, 205 576 0, 338 576 1, 413 576 0, 512 566 1, 512 489 1, 394 512 0, 326 512 1, 230 512 0, 179 454 1, 128 396 0, 128 287 1, 128 180 0, 182 122 1, 237 64 0, 335 64 1, 417 64 0, 512 100 1, 457 704 1, 366 576 1, 285 576 1, 194 704 1, 250 704 1, 325 623 1, 326 623 1, 401 704 1 -384 0 0 448 576;320 11 1, 251 0 0, 190 0 1, 104 0 0, 52 53 1, 0 107 0, 0 192 1, 0 282 0, 54 333 1, 108 384 0, 205 384 1, 254 384 0, 320 380 1, 320 322 1, 251 320 0, 209 320 1, 64 320 0, 64 191 1, 64 130 0, 101 97 1, 137 64 0, 203 64 1, 253 64 0, 320 72 1, 387 576 1, 297 512 1, 215 512 1, 125 576 1, 180 576 1, 256 536 1, 256 536 1, 332 576 1 -576 64 0 512 704;64 0 1, 64 576 1, 227 576 1, 512 576 0, 512 301 1, 512 158 0, 438 79 1, 364 0 0, 228 0 1, 128 64 1, 223 64 1, 448 64 0, 448 292 1, 448 426 0, 360 481 1, 335 497 0, 299 504 1, 257 512 0, 186 512 1, 128 512 1, 374 704 1, 284 576 1, 202 576 1, 115 704 1, 167 704 1, 243 623 1, 244 623 1, 319 704 1 -448 64 0 448 576;320 135 1, 320 331 1, 265 320 0, 239 320 1, 128 320 0, 128 185 1, 128 129 0, 150 96 1, 172 64 0, 209 64 1, 258 64 0, 320 72 1, 300 40 0, 277 23 1, 245 0 0, 201 0 1, 140 0 0, 102 50 1, 64 100 0, 64 182 1, 64 278 0, 113 331 1, 162 384 0, 251 384 1, 285 384 0, 320 384 1, 320 576 1, 384 576 1, 384 0 1, 320 0 1, 384 400 1, 384 422 1, 409 430 0, 409 493 1, 409 499 1, 384 499 1, 384 576 1, 448 576 1, 448 510 1, 448 408 0 -576 0 0 512 576;64 0 1, 64 256 1, 0 256 1, 0 320 1, 64 320 1, 64 576 1, 229 576 1, 512 576 0, 512 301 1, 512 158 0, 438 79 1, 365 0 0, 231 0 1, 128 64 1, 225 64 1, 448 64 0, 448 292 1, 448 426 0, 361 481 1, 336 497 0, 300 504 1, 258 512 0, 188 512 1, 128 512 1, 128 320 1, 256 320 1, 256 256 1, 128 256 1 -448 64 0 448 576;320 448 1, 200 448 1, 200 512 1, 320 512 1, 320 576 1, 384 576 1, 384 512 1, 440 512 1, 440 448 1, 384 448 1, 384 0 1, 320 0 1, 320 72 1, 300 40 0, 277 23 1, 245 0 0, 201 0 1, 140 0 0, 102 50 1, 64 100 0, 64 182 1, 64 278 0, 113 331 1, 162 384 0, 251 384 1, 285 384 0, 320 384 1, 320 135 1, 320 331 1, 265 320 0, 239 320 1, 128 320 0, 128 185 1, 128 129 0, 150 96 1, 172 64 0, 209 64 1, 258 64 0 -512 64 0 512 640;64 0 1, 64 576 1, 448 576 1, 448 512 1, 128 512 1, 128 320 1, 448 320 1, 448 256 1, 128 256 1, 128 64 1, 512 64 1, 512 0 1, 128 576 1, 128 640 1, 384 640 1, 384 576 1 -448 64 0 448 512;311 256 1, 310 277 0, 303 287 1, 284 320 0, 219 320 1, 173 320 0, 147 305 1, 121 290 0, 115 256 1, 384 72 1, 384 13 1, 314 0 0, 256 0 1, 168 0 0, 116 53 1, 64 107 0, 64 197 1, 64 283 0, 110 333 1, 156 384 0, 234 384 1, 323 384 0, 360 325 1, 387 281 0, 386 212 1, 386 192 1, 114 192 1, 119 153 0, 129 132 1, 162 64 0, 260 64 1, 316 64 0, 64 448 1, 64 512 1, 320 512 1, 320 448 1 -512 64 0 512 768;64 0 1, 64 576 1, 448 576 1, 448 512 1, 128 512 1, 128 320 1, 448 320 1, 448 256 1, 128 256 1, 128 64 1, 512 64 1, 512 0 1, 129 743 1, 181 743 1, 190 722 0, 212 713 1, 234 704 0, 269 704 1, 308 704 0, 331 715 1, 349 724 0, 357 743 1, 408 743 1, 401 700 0, 371 674 1, 331 640 0, 268 640 1, 203 640 0, 163 677 1, 136 702 0 -448 64 0 448 640;311 256 1, 310 277 0, 303 287 1, 284 320 0, 219 320 1, 173 320 0, 147 305 1, 121 290 0, 115 256 1, 384 72 1, 384 13 1, 314 0 0, 256 0 1, 168 0 0, 116 53 1, 64 107 0, 64 197 1, 64 283 0, 110 333 1, 156 384 0, 234 384 1, 323 384 0, 360 325 1, 387 281 0, 386 212 1, 386 192 1, 114 192 1, 119 153 0, 129 132 1, 162 64 0, 260 64 1, 316 64 0, 93 579 1, 139 579 1, 147 543 0, 167 527 1, 186 512 0, 218 512 1, 253 512 0, 273 531 1, 289 546 0, 296 579 1, 342 579 1, 336 524 0, 309 491 1, 273 448 0, 217 448 1, 159 448 0, 123 495 1, 99 526 0 -512 64 0 512 704;64 0 1, 64 576 1, 448 576 1, 448 512 1, 128 512 1, 128 320 1, 448 320 1, 448 256 1, 128 256 1, 128 64 1, 512 64 1, 512 0 1, 256 640 1, 256 704 1, 320 704 1, 320 640 1 -448 64 0 448 576;311 256 1, 310 277 0, 303 287 1, 284 320 0, 219 320 1, 173 320 0, 147 305 1, 121 290 0, 115 256 1, 384 72 1, 384 13 1, 314 0 0, 256 0 1, 168 0 0, 116 53 1, 64 107 0, 64 197 1, 64 283 0, 110 333 1, 156 384 0, 234 384 1, 323 384 0, 360 325 1, 387 281 0, 386 212 1, 386 192 1, 114 192 1, 119 153 0, 129 132 1, 162 64 0, 260 64 1, 316 64 0, 128 512 1, 128 576 1, 192 576 1, 192 512 1 -512 64 -128 512 576;64 0 1, 64 576 1, 448 576 1, 448 512 1, 128 512 1, 128 320 1, 448 320 1, 448 256 1, 128 256 1, 128 64 1, 512 64 1, 512 0 1, 410 0 1, 448 0 1, 384 -19 0, 384 -42 1, 384 -64 0, 420 -64 1, 436 -64 0, 448 -98 1, 448 -128 1, 425 -128 0, 396 -128 1, 320 -128 0, 320 -73 1, 320 -31 0 -448 64 -128 448 384;311 256 1, 310 277 0, 303 287 1, 284 320 0, 219 320 1, 173 320 0, 147 305 1, 121 290 0, 115 256 1, 384 72 1, 384 13 1, 314 0 0, 256 0 1, 168 0 0, 116 53 1, 64 107 0, 64 197 1, 64 283 0, 110 333 1, 156 384 0, 234 384 1, 323 384 0, 360 325 1, 387 281 0, 386 212 1, 386 192 1, 114 192 1, 119 153 0, 129 132 1, 162 64 0, 260 64 1, 316 64 0, 251 0 1, 291 0 1, 256 -19 0, 256 -42 1, 256 -64 0, 292 -64 1, 308 -64 0, 320 -98 1, 320 -128 1, 297 -128 0, 268 -128 1, 192 -128 0, 192 -73 1, 192 -31 0 -512 64 0 512 704;64 0 1, 64 576 1, 448 576 1, 448 512 1, 128 512 1, 128 320 1, 448 320 1, 448 256 1, 128 256 1, 128 64 1, 512 64 1, 512 0 1, 413 704 1, 312 576 1, 221 576 1, 122 704 1, 182 704 1, 266 623 1, 267 623 1, 351 704 1 -448 0 0 448 576;311 256 1, 310 277 0, 303 287 1, 284 320 0, 219 320 1, 173 320 0, 147 305 1, 121 290 0, 115 256 1, 384 72 1, 384 13 1, 314 0 0, 256 0 1, 168 0 0, 116 53 1, 64 107 0, 64 197 1, 64 283 0, 110 333 1, 156 384 0, 234 384 1, 323 384 0, 360 325 1, 387 281 0, 386 212 1, 386 192 1, 114 192 1, 119 153 0, 129 132 1, 162 64 0, 260 64 1, 316 64 0, 323 576 1, 233 512 1, 151 512 1, 61 576 1, 116 576 1, 192 536 1, 192 536 1, 268 576 1 -576 64 0 512 704;512 256 1, 512 14 1, 418 0 0, 330 0 1, 64 0 0, 64 286 1, 64 426 0, 133 501 1, 202 576 0, 332 576 1, 416 576 0, 512 564 1, 512 485 1, 398 512 0, 323 512 1, 128 512 0, 128 289 1, 128 180 0, 183 122 1, 238 64 0, 340 64 1, 382 64 0, 448 57 1, 448 192 1, 384 192 1, 384 256 1, 222 576 1, 312 704 1, 391 704 1, 454 576 1, 415 576 1, 354 657 1, 353 657 1, 277 576 1 -448 64 -192 384 576;320 153 1, 320 331 1, 265 320 0, 240 320 1, 128 320 0, 128 190 1, 128 132 0, 150 98 1, 172 64 0, 209 64 1, 258 64 0, 320 90 1, 300 50 0, 277 29 1, 245 0 0, 202 0 1, 140 0 0, 102 52 1, 64 103 0, 64 186 1, 64 280 0, 113 332 1, 162 384 0, 250 384 1, 285 384 0, 320 384 1, 384 384 1, 384 105 1, 384 22 0, 374 -18 1, 348 -128 0, 194 -128 1, 130 -128 0, 64 -135 1, 64 -71 1, 143 -64 0, 198 -64 1, 320 -64 0, 320 29 1, 119 512 1, 208 576 1, 288 576 1, 370 512 1, 322 512 1, 248 552 1, 248 552 1, 174 512 1 -576 64 0 512 768;512 256 1, 512 14 1, 418 0 0, 330 0 1, 64 0 0, 64 286 1, 64 426 0, 133 501 1, 202 576 0, 332 576 1, 416 576 0, 512 564 1, 512 485 1, 398 512 0, 323 512 1, 128 512 0, 128 289 1, 128 180 0, 183 122 1, 238 64 0, 340 64 1, 382 64 0, 448 57 1, 448 192 1, 384 192 1, 384 256 1, 228 743 1, 274 743 1, 281 722 0, 300 713 1, 317 704 0, 345 704 1, 378 704 0, 396 715 1, 411 724 0, 417 743 1, 449 743 1, 444 700 0, 419 674 1, 388 640 0, 339 640 1, 286 640 0, 255 677 1, 233 702 0 -448 64 -192 384 640;320 153 1, 320 331 1, 265 320 0, 240 320 1, 128 320 0, 128 190 1, 128 132 0, 150 98 1, 172 64 0, 209 64 1, 258 64 0, 320 90 1, 300 50 0, 277 29 1, 245 0 0, 202 0 1, 140 0 0, 102 52 1, 64 103 0, 64 186 1, 64 280 0, 113 332 1, 162 384 0, 250 384 1, 285 384 0, 320 384 1, 384 384 1, 384 105 1, 384 22 0, 374 -18 1, 348 -128 0, 194 -128 1, 130 -128 0, 64 -135 1, 64 -71 1, 143 -64 0, 198 -64 1, 320 -64 0, 320 29 1, 131 602 1, 177 602 1, 185 588 0, 205 582 1, 225 576 0, 256 576 1, 291 576 0, 312 583 1, 328 589 0, 335 602 1, 381 602 1, 375 564 0, 348 542 1, 312 512 0, 256 512 1, 197 512 0, 161 544 1, 137 566 0 -576 64 0 512 704;512 256 1, 512 14 1, 418 0 0, 330 0 1, 64 0 0, 64 286 1, 64 426 0, 133 501 1, 202 576 0, 332 576 1, 416 576 0, 512 564 1, 512 485 1, 398 512 0, 323 512 1, 128 512 0, 128 289 1, 128 180 0, 183 122 1, 238 64 0, 340 64 1, 382 64 0, 448 57 1, 448 192 1, 384 192 1, 384 256 1, 320 640 1, 320 704 1, 384 704 1, 384 640 1 -448 64 -192 384 576;320 153 1, 320 331 1, 265 320 0, 240 320 1, 128 320 0, 128 190 1, 128 132 0, 150 98 1, 172 64 0, 209 64 1, 258 64 0, 320 90 1, 300 50 0, 277 29 1, 245 0 0, 202 0 1, 140 0 0, 102 52 1, 64 103 0, 64 186 1, 64 280 0, 113 332 1, 162 384 0, 250 384 1, 285 384 0, 320 384 1, 384 384 1, 384 105 1, 384 22 0, 374 -18 1, 348 -128 0, 194 -128 1, 130 -128 0, 64 -135 1, 64 -71 1, 143 -64 0, 198 -64 1, 320 -64 0, 320 29 1, 192 512 1, 192 576 1, 256 576 1, 256 512 1 -576 64 -192 512 576;512 256 1, 512 14 1, 417 0 0, 330 0 1, 64 0 0, 64 286 1, 64 426 0, 133 501 1, 202 576 0, 332 576 1, 416 576 0, 512 564 1, 512 485 1, 398 512 0, 323 512 1, 128 512 0, 128 289 1, 128 180 0, 183 122 1, 238 64 0, 340 64 1, 382 64 0, 448 57 1, 448 192 1, 384 192 1, 384 256 1, 291 -158 1, 291 -126 1, 299 -128 0, 305 -128 1, 320 -128 0, 320 -104 1, 320 -77 0, 309 -71 1, 309 -42 1, 343 -43 0, 360 -57 1, 384 -77 0, 384 -121 1, 384 -192 0, 325 -192 1, 309 -192 0 -448 64 -192 384 704;320 153 1, 320 331 1, 265 320 0, 240 320 1, 128 320 0, 128 190 1, 128 132 0, 150 98 1, 172 64 0, 209 64 1, 258 64 0, 320 90 1, 300 50 0, 277 29 1, 245 0 0, 202 0 1, 140 0 0, 102 52 1, 64 103 0, 64 186 1, 64 280 0, 113 332 1, 162 384 0, 250 384 1, 285 384 0, 320 384 1, 384 384 1, 384 105 1, 384 22 0, 374 -18 1, 348 -128 0, 194 -128 1, 130 -128 0, 64 -135 1, 64 -71 1, 143 -64 0, 198 -64 1, 320 -64 0, 320 29 1, 256 682 1, 256 660 1, 231 652 0, 231 592 1, 231 586 1, 256 586 1, 256 512 1, 192 512 1, 192 576 1, 192 674 0 -576 64 0 512 704;64 0 1, 64 576 1, 128 576 1, 128 320 1, 448 320 1, 448 576 1, 512 576 1, 512 0 1, 448 0 1, 448 256 1, 128 256 1, 128 0 1, 134 576 1, 240 704 1, 336 704 1, 441 576 1, 376 576 1, 288 657 1, 287 657 1, 199 576 1 -448 64 0 384 768;64 0 1, 64 576 1, 128 576 1, 128 312 1, 157 344 0, 185 360 1, 226 384 0, 275 384 1, 384 384 0, 384 276 1, 384 0 1, 320 0 1, 320 254 1, 320 293 0, 308 306 1, 296 320 0, 264 320 1, 194 320 0, 128 249 1, 128 0 1, 88 640 1, 179 768 1, 272 768 1, 362 640 1, 312 640 1, 226 721 1, 225 721 1, 139 640 1 -576 0 0 576 576;128 320 1, 448 320 1, 448 384 1, 128 384 1, 64 0 1, 64 384 1, 8 384 1, 8 448 1, 64 448 1, 64 576 1, 128 576 1, 128 448 1, 448 448 1, 448 576 1, 512 576 1, 512 448 1, 568 448 1, 568 384 1, 512 384 1, 512 0 1, 448 0 1, 448 256 1, 128 256 1, 128 0 1 -448 0 0 384 576;64 0 1, 64 448 1, 8 448 1, 8 512 1, 64 512 1, 64 576 1, 128 576 1, 128 512 1, 255 512 1, 255 448 1, 128 448 1, 128 312 1, 157 344 0, 185 360 1, 226 384 0, 275 384 1, 384 384 0, 384 276 1, 384 0 1, 320 0 1, 320 254 1, 320 293 0, 308 306 1, 296 320 0, 264 320 1, 194 320 0, 128 249 1, 128 0 1 -192 -64 0 256 768;64 0 1, 64 576 1, 128 576 1, 128 0 1, -22 623 1, -20 655 0, -11 673 1, 5 704 0, 43 704 1, 68 704 0, 89 704 1, 110 704 1, 130 704 0, 141 704 1, 163 704 0, 167 710 1, 214 710 1, 212 682 0, 203 667 1, 187 640 0, 150 640 1, 125 640 0, 103 640 1, 82 640 1, 63 640 0, 51 640 1, 29 640 0, 25 623 1 -192 -64 0 256 640;64 0 1, 64 384 1, 128 384 1, 128 0 1, -24 480 1, -21 518 0, -13 539 1, 4 576 0, 43 576 1, 69 576 0, 90 576 1, 112 576 1, 132 576 0, 143 576 1, 166 576 0, 170 590 1, 216 590 1, 213 559 0, 205 542 1, 188 512 0, 150 512 1, 124 512 0, 102 512 1, 80 512 1, 61 512 0, 49 512 1, 26 512 0, 22 480 1 -192 0 0 256 640;64 0 1, 64 576 1, 128 576 1, 128 0 1, 0 576 1, 0 640 1, 256 640 1, 256 576 1 -192 -64 0 192 512;64 0 1, 64 384 1, 128 384 1, 128 0 1, -64 448 1, -64 512 1, 192 512 1, 192 448 1 -192 -64 0 256 768;64 0 1, 64 576 1, 128 576 1, 128 0 1, -22 743 1, 25 743 1, 32 722 0, 50 713 1, 68 704 0, 96 704 1, 128 704 0, 146 715 1, 161 724 0, 167 743 1, 214 743 1, 208 700 0, 182 674 1, 149 640 0, 96 640 1, 40 640 0, 7 677 1, -16 702 0 -192 -64 0 256 640;64 0 1, 64 384 1, 128 384 1, 128 0 1, -24 578 1, 22 578 1, 29 542 0, 48 527 1, 67 512 0, 96 512 1, 129 512 0, 148 531 1, 163 546 0, 170 578 1, 216 578 1, 210 524 0, 184 491 1, 150 448 0, 96 448 1, 39 448 0, 5 495 1, -18 526 0 -192 64 -128 192 576;64 0 1, 64 576 1, 128 576 1, 128 0 1, 94 0 1, 126 0 1, 128 -19 0, 128 -42 1, 128 -64 0, 143 -64 1, 150 -64 0, 155 -98 1, 155 -128 1, 139 -128 0, 118 -128 1, 64 -128 0, 64 -73 1, 64 -31 0 -192 0 -128 128 576;64 0 1, 64 384 1, 128 384 1, 128 0 1, 64 512 1, 64 576 1, 128 576 1, 128 512 1, 59 0 1, 99 0 1, 64 -19 0, 64 -42 1, 64 -64 0, 100 -64 1, 116 -64 0, 128 -98 1, 128 -128 1, 105 -128 0, 76 -128 1, 0 -128 0, 0 -73 1, 0 -31 0 -192 64 0 128 704;64 0 1, 64 576 1, 128 576 1, 128 0 1, 64 640 1, 64 704 1, 128 704 1, 128 640 1 -576 64 -128 512 576;64 0 1, 64 576 1, 128 576 1, 128 0 1, 192 -87 1, 192 -19 1, 267 -64 0, 333 -64 1, 408 -64 0, 430 -29 1, 448 0 0, 448 71 1, 448 576 1, 512 576 1, 512 73 1, 512 -128 0, 317 -128 1, 252 -128 0 -320 64 -192 320 576;64 0 1, 64 384 1, 128 384 1, 128 0 1, 64 512 1, 64 576 1, 128 576 1, 128 512 1, 128 -145 1, 128 -87 1, 164 -64 0, 195 -64 1, 238 -64 0, 248 -47 1, 256 -32 0, 256 0 1, 256 384 1, 320 384 1, 320 0 1, 320 -128 0, 194 -128 1, 159 -128 0, 256 512 1, 256 576 1, 320 576 1, 320 512 1 -384 0 -128 448 704;0 -87 1, 0 -19 1, 75 -64 0, 141 -64 1, 216 -64 0, 238 -29 1, 256 0 0, 256 71 1, 256 576 1, 320 576 1, 320 73 1, 320 -128 0, 125 -128 1, 60 -128 0, 137 576 1, 244 704 1, 314 704 1, 403 576 1, 347 576 1, 281 657 1, 280 657 1, 203 576 1 -192 -64 -192 256 576;-64 -145 1, -64 -87 1, -28 -64 0, 3 -64 1, 46 -64 0, 56 -47 1, 64 -32 0, 64 0 1, 64 384 1, 128 384 1, 128 0 1, 128 -128 0, 2 -128 1, -33 -128 0, -55 512 1, 52 576 1, 126 576 1, 216 512 1, 160 512 1, 91 552 1, 90 552 1, 11 512 1 -512 64 -192 512 576;64 0 1, 64 576 1, 128 576 1, 128 293 1, 359 576 1, 438 576 1, 214 301 1, 476 0 1, 377 0 1, 128 292 1, 128 0 1, 165 -158 1, 165 -126 1, 190 -128 0, 208 -128 1, 256 -128 0, 256 -104 1, 256 -77 0, 184 -71 1, 184 -42 1, 246 -43 0, 277 -57 1, 320 -77 0, 320 -121 1, 320 -192 0, 222 -192 1, 195 -192 0 -384 64 -192 384 576;64 0 1, 64 576 1, 128 576 1, 128 198 1, 265 384 1, 335 384 1, 205 203 1, 374 0 1, 284 0 1, 128 197 1, 128 0 1, 128 -158 1, 128 -126 1, 146 -128 0, 158 -128 1, 192 -128 0, 192 -104 1, 192 -77 0, 146 -71 1, 146 -42 1, 196 -43 0, 221 -57 1, 256 -77 0, 256 -121 1, 256 -192 0, 175 -192 1, 153 -192 0 -384 64 0 384 384;64 0 1, 64 384 1, 128 384 1, 128 198 1, 265 384 1, 335 384 1, 205 203 1, 374 0 1, 284 0 1, 128 197 1, 128 0 1 -448 64 0 384 704;64 0 1, 64 576 1, 128 576 1, 128 64 1, 384 64 1, 384 0 1, 68 576 1, 143 704 1, 224 704 1, 113 576 1 -192 0 0 256 704;64 0 1, 64 576 1, 128 576 1, 128 0 1, 40 640 1, 131 704 1, 216 704 1, 96 640 1 -448 64 -192 384 576;64 0 1, 64 576 1, 128 576 1, 128 64 1, 384 64 1, 384 0 1, 154 -158 1, 154 -126 1, 164 -128 0, 172 -128 1, 192 -128 0, 192 -104 1, 192 -77 0, 171 -71 1, 171 -42 1, 210 -43 0, 229 -57 1, 256 -77 0, 256 -121 1, 256 -192 0, 191 -192 1, 174 -192 0 -192 0 -192 128 576;64 0 1, 64 576 1, 128 576 1, 128 0 1, 0 -158 1, 0 -126 1, 18 -128 0, 30 -128 1, 64 -128 0, 64 -104 1, 64 -77 0, 18 -71 1, 18 -42 1, 68 -43 0, 93 -57 1, 128 -77 0, 128 -121 1, 128 -192 0, 47 -192 1, 25 -192 0 -448 64 0 384 576;64 0 1, 64 576 1, 128 576 1, 128 64 1, 384 64 1, 384 0 1, 256 400 1, 256 423 1, 281 431 0, 281 493 1, 281 500 1, 256 500 1, 256 576 1, 320 576 1, 320 510 1, 320 408 0 -256 64 0 256 576;64 0 1, 64 576 1, 128 576 1, 128 0 1, 192 410 1, 192 432 1, 217 440 0, 217 498 1, 217 504 1, 192 504 1, 192 576 1, 256 576 1, 256 514 1, 256 418 0 -448 64 0 384 576;64 0 1, 64 576 1, 128 576 1, 128 64 1, 384 64 1, 384 0 1, 320 256 1, 320 320 1, 384 320 1, 384 256 1 -256 64 0 256 576;64 0 1, 64 576 1, 128 576 1, 128 0 1, 192 256 1, 192 320 1, 256 320 1, 256 256 1 -448 0 0 384 576;64 0 1, 64 271 1, 0 240 1, 0 305 1, 64 337 1, 64 576 1, 128 576 1, 128 381 1, 256 433 1, 256 367 1, 128 316 1, 128 64 1, 384 64 1, 384 0 1 -192 0 0 192 576;64 0 1, 64 263 1, 0 237 1, 0 297 1, 64 324 1, 64 576 1, 128 576 1, 128 364 1, 192 388 1, 192 329 1, 128 303 1, 128 0 1 -576 64 0 512 704;64 0 1, 64 576 1, 138 576 1, 448 131 1, 448 576 1, 512 576 1, 512 0 1, 437 0 1, 128 445 1, 128 0 1, 228 576 1, 326 704 1, 418 704 1, 288 576 1 -448 64 0 384 576;64 0 1, 64 384 1, 128 384 1, 128 312 1, 157 344 0, 185 360 1, 226 384 0, 275 384 1, 384 384 0, 384 276 1, 384 0 1, 320 0 1, 320 253 1, 320 292 0, 308 306 1, 296 320 0, 264 320 1, 194 320 0, 128 249 1, 128 0 1, 168 512 1, 259 576 1, 344 576 1, 224 512 1 -576 64 -192 512 576;64 0 1, 64 576 1, 138 576 1, 448 131 1, 448 576 1, 512 576 1, 512 0 1, 437 0 1, 128 445 1, 128 0 1, 198 -158 1, 198 -126 1, 214 -128 0, 225 -128 1, 256 -128 0, 256 -104 1, 256 -77 0, 218 -71 1, 218 -42 1, 265 -43 0, 288 -57 1, 320 -77 0, 320 -121 1, 320 -192 0, 243 -192 1, 222 -192 0 -448 64 -192 384 384;64 0 1, 64 384 1, 128 384 1, 128 312 1, 157 344 0, 185 360 1, 226 384 0, 275 384 1, 384 384 0, 384 276 1, 384 0 1, 320 0 1, 320 253 1, 320 292 0, 308 306 1, 296 320 0, 264 320 1, 194 320 0, 128 249 1, 128 0 1, 128 -158 1, 128 -126 1, 146 -128 0, 158 -128 1, 192 -128 0, 192 -104 1, 192 -77 0, 146 -71 1, 146 -42 1, 196 -43 0, 221 -57 1, 256 -77 0, 256 -121 1, 256 -192 0, 175 -192 1, 153 -192 0 -576 64 0 512 704;64 0 1, 64 576 1, 138 576 1, 448 131 1, 448 576 1, 512 576 1, 512 0 1, 437 0 1, 128 445 1, 128 0 1, 430 704 1, 332 576 1, 244 576 1, 146 704 1, 206 704 1, 288 623 1, 288 623 1, 370 704 1 -448 0 0 384 576;64 0 1, 64 384 1, 128 384 1, 128 312 1, 157 344 0, 185 360 1, 226 384 0, 275 384 1, 384 384 0, 384 276 1, 384 0 1, 320 0 1, 320 253 1, 320 292 0, 308 306 1, 296 320 0, 264 320 1, 194 320 0, 128 249 1, 128 0 1, 323 576 1, 233 512 1, 151 512 1, 61 576 1, 116 576 1, 192 536 1, 192 536 1, 268 576 1 -448 0 0 384 576;64 0 1, 64 384 1, 128 384 1, 128 312 1, 157 344 0, 185 360 1, 226 384 0, 275 384 1, 384 384 0, 384 276 1, 384 0 1, 320 0 1, 320 253 1, 320 292 0, 308 306 1, 296 320 0, 264 320 1, 194 320 0, 128 249 1, 128 0 1, 0 399 1, 0 422 1, 25 430 0, 25 493 1, 25 499 1, 0 499 1, 0 576 1, 64 576 1, 64 509 1, 64 407 0 -576 64 -192 512 576;64 0 1, 64 576 1, 138 576 1, 448 131 1, 448 576 1, 512 576 1, 512 -35 1, 512 -128 0, 382 -128 1, 352 -128 0, 320 -150 1, 320 -92 1, 349 -64 0, 382 -64 1, 448 -64 0, 448 -21 1, 448 -15 1, 128 445 1, 128 0 1 -448 64 -192 384 384;64 0 1, 64 384 1, 128 384 1, 128 312 1, 157 344 0, 185 360 1, 226 384 0, 275 384 1, 384 384 0, 384 276 1, 384 -35 1, 384 -128 0, 254 -128 1, 224 -128 0, 192 -150 1, 192 -92 1, 223 -64 0, 250 -64 1, 320 -64 0, 320 -21 1, 320 253 1, 320 292 0, 308 306 1, 296 320 0, 264 320 1, 194 320 0, 128 249 1, 128 0 1 -576 64 0 576 640;320 576 1, 436 576 0, 506 498 1, 576 419 0, 576 289 1, 576 156 0, 506 78 1, 436 0 0, 316 0 1, 214 0 0, 147 64 1, 64 145 0, 64 288 1, 64 420 0, 134 498 1, 204 576 0, 320 512 1, 229 512 0, 179 453 1, 128 394 0, 128 288 1, 128 183 0, 179 124 1, 229 64 0, 318 64 1, 401 64 0, 450 112 1, 512 171 0, 512 289 1, 512 394 0, 461 453 1, 410 512 0, 192 576 1, 192 640 1, 448 640 1, 448 576 1 -448 64 0 384 512;224 384 1, 298 384 0, 341 333 1, 384 281 0, 384 193 1, 384 102 0, 341 51 1, 298 0 0, 222 0 1, 156 0 0, 116 42 1, 64 95 0, 64 192 1, 64 281 0, 107 333 1, 150 384 0, 224 320 1, 128 320 0, 128 192 1, 128 64 0, 224 64 1, 320 64 0, 320 193 1, 320 320 0, 64 448 1, 64 512 1, 320 512 1, 320 448 1 -576 64 0 576 768;320 576 1, 436 576 0, 506 498 1, 576 419 0, 576 289 1, 576 156 0, 506 78 1, 436 0 0, 316 0 1, 214 0 0, 147 64 1, 64 145 0, 64 288 1, 64 420 0, 134 498 1, 204 576 0, 320 512 1, 229 512 0, 179 453 1, 128 394 0, 128 288 1, 128 183 0, 179 124 1, 229 64 0, 318 64 1, 401 64 0, 450 112 1, 512 171 0, 512 289 1, 512 394 0, 461 453 1, 410 512 0, 174 743 1, 220 743 1, 228 722 0, 248 713 1, 268 704 0, 299 704 1, 334 704 0, 355 715 1, 371 724 0, 378 743 1, 424 743 1, 418 700 0, 391 674 1, 355 640 0, 299 640 1, 240 640 0, 204 677 1, 180 702 0 -448 64 0 384 640;224 384 1, 298 384 0, 341 333 1, 384 281 0, 384 193 1, 384 102 0, 341 51 1, 298 0 0, 222 0 1, 156 0 0, 116 42 1, 64 95 0, 64 192 1, 64 281 0, 107 333 1, 150 384 0, 224 320 1, 128 320 0, 128 192 1, 128 64 0, 224 64 1, 320 64 0, 320 193 1, 320 320 0, 89 579 1, 135 579 1, 143 543 0, 163 527 1, 182 512 0, 214 512 1, 249 512 0, 269 531 1, 285 546 0, 292 579 1, 338 579 1, 332 524 0, 305 491 1, 269 448 0, 213 448 1, 155 448 0, 119 495 1, 95 526 0 -576 64 0 576 704;320 576 1, 436 576 0, 506 498 1, 576 419 0, 576 289 1, 576 156 0, 506 78 1, 436 0 0, 316 0 1, 214 0 0, 147 64 1, 64 145 0, 64 288 1, 64 420 0, 134 498 1, 204 576 0, 320 512 1, 229 512 0, 179 453 1, 128 394 0, 128 288 1, 128 183 0, 179 124 1, 229 64 0, 318 64 1, 401 64 0, 450 112 1, 512 171 0, 512 289 1, 512 394 0, 461 453 1, 410 512 0, 212 612 1, 303 704 1, 374 704 1, 254 612 1, 344 612 1, 434 704 1, 506 704 1, 386 612 1 -448 64 0 448 576;224 384 1, 298 384 0, 341 333 1, 384 281 0, 384 193 1, 384 102 0, 341 51 1, 298 0 0, 222 0 1, 156 0 0, 116 42 1, 64 95 0, 64 192 1, 64 281 0, 107 333 1, 150 384 0, 224 320 1, 128 320 0, 128 192 1, 128 64 0, 224 64 1, 320 64 0, 320 193 1, 320 320 0, 109 456 1, 199 576 1, 271 576 1, 151 456 1, 241 456 1, 331 576 1, 403 576 1, 283 456 1 -576 64 0 576 704;64 0 1, 64 576 1, 281 576 1, 448 576 0, 448 439 1, 448 372 0, 408 329 1, 384 303 0, 340 283 1, 525 0 1, 428 0 1, 271 256 1, 128 256 1, 128 0 1, 128 320 1, 216 320 1, 303 320 0, 343 346 1, 384 373 0, 384 429 1, 384 474 0, 351 493 1, 318 512 0, 241 512 1, 128 512 1, 184 576 1, 274 704 1, 359 704 1, 239 576 1 -256 64 0 320 576;64 0 1, 64 384 1, 128 384 1, 128 312 1, 145 345 0, 165 361 1, 194 384 0, 233 384 1, 241 384 0, 256 391 1, 256 326 1, 235 320 0, 222 320 1, 178 320 0, 128 253 1, 128 0 1, 104 512 1, 195 576 1, 280 576 1, 160 512 1 -576 64 -192 576 576;64 0 1, 64 576 1, 281 576 1, 448 576 0, 448 439 1, 448 372 0, 408 329 1, 384 303 0, 340 283 1, 525 0 1, 428 0 1, 271 256 1, 128 256 1, 128 0 1, 128 320 1, 216 320 1, 303 320 0, 343 346 1, 384 373 0, 384 429 1, 384 474 0, 351 493 1, 318 512 0, 241 512 1, 128 512 1, 184 -158 1, 184 -126 1, 204 -128 0, 218 -128 1, 256 -128 0, 256 -104 1, 256 -77 0, 202 -71 1, 202 -42 1, 256 -43 0, 283 -57 1, 320 -77 0, 320 -121 1, 320 -192 0, 234 -192 1, 210 -192 0 -256 64 -192 256 448;64 0 1, 64 384 1, 128 384 1, 128 312 1, 145 345 0, 165 361 1, 194 384 0, 233 384 1, 241 384 0, 256 391 1, 256 326 1, 235 320 0, 222 320 1, 178 320 0, 128 253 1, 128 0 1, 64 -158 1, 64 -126 1, 82 -128 0, 94 -128 1, 128 -128 0, 128 -104 1, 128 -77 0, 82 -71 1, 82 -42 1, 132 -43 0, 157 -57 1, 192 -77 0, 192 -121 1, 192 -192 0, 111 -192 1, 89 -192 0 -576 64 0 576 704;64 0 1, 64 576 1, 281 576 1, 448 576 0, 448 439 1, 448 372 0, 408 329 1, 384 303 0, 340 283 1, 525 0 1, 428 0 1, 271 256 1, 128 256 1, 128 0 1, 128 320 1, 216 320 1, 303 320 0, 343 346 1, 384 373 0, 384 429 1, 384 474 0, 351 493 1, 318 512 0, 241 512 1, 128 512 1, 356 704 1, 265 576 1, 184 576 1, 100 704 1, 149 704 1, 224 623 1, 225 623 1, 300 704 1 -256 -64 0 320 576;64 0 1, 64 384 1, 128 384 1, 128 312 1, 145 345 0, 165 361 1, 194 384 0, 233 384 1, 241 384 0, 256 391 1, 256 326 1, 235 320 0, 222 320 1, 178 320 0, 128 253 1, 128 0 1, 259 576 1, 169 512 1, 87 512 1, -3 576 1, 52 576 1, 128 536 1, 128 536 1, 204 576 1 -512 64 0 512 704;64 21 1, 64 102 1, 189 64 0, 311 64 1, 448 64 0, 448 152 1, 448 197 0, 410 218 1, 381 235 0, 315 253 1, 229 278 1, 64 324 0, 64 431 1, 64 576 0, 267 576 1, 355 576 0, 448 566 1, 448 491 1, 347 512 0, 255 512 1, 128 512 0, 128 431 1, 128 399 0, 154 379 1, 180 359 0, 247 340 1, 334 316 1, 432 288 0, 472 252 1, 512 216 0, 512 156 1, 512 84 0, 454 42 1, 396 0 0, 294 0 1, 193 0 0, 214 576 1, 304 704 1, 389 704 1, 269 576 1 -384 64 0 384 576;64 13 1, 64 77 1, 128 64 0, 183 64 1, 256 64 0, 256 116 1, 256 152 0, 204 168 1, 147 187 1, 64 214 0, 64 286 1, 64 384 0, 215 384 1, 258 384 0, 320 381 1, 320 323 1, 263 320 0, 206 320 1, 128 320 0, 128 276 1, 128 244 0, 174 230 1, 225 213 1, 320 182 0, 320 106 1, 320 57 0, 283 29 1, 245 0 0, 180 0 1, 129 0 0, 168 512 1, 259 576 1, 344 576 1, 224 512 1 -512 64 0 512 704;64 21 1, 64 102 1, 189 64 0, 311 64 1, 448 64 0, 448 152 1, 448 197 0, 410 218 1, 381 235 0, 315 253 1, 229 278 1, 64 324 0, 64 431 1, 64 576 0, 267 576 1, 355 576 0, 448 566 1, 448 491 1, 347 512 0, 255 512 1, 128 512 0, 128 431 1, 128 399 0, 154 379 1, 180 359 0, 247 340 1, 334 316 1, 432 288 0, 472 252 1, 512 216 0, 512 156 1, 512 84 0, 454 42 1, 396 0 0, 294 0 1, 193 0 0, 139 576 1, 229 704 1, 310 704 1, 400 576 1, 344 576 1, 270 657 1, 269 657 1, 194 576 1 -384 64 0 384 576;64 13 1, 64 77 1, 128 64 0, 183 64 1, 256 64 0, 256 116 1, 256 152 0, 204 168 1, 147 187 1, 64 214 0, 64 286 1, 64 384 0, 215 384 1, 258 384 0, 320 381 1, 320 323 1, 263 320 0, 206 320 1, 128 320 0, 128 276 1, 128 244 0, 174 230 1, 225 213 1, 320 182 0, 320 106 1, 320 57 0, 283 29 1, 245 0 0, 180 0 1, 129 0 0, 94 512 1, 181 576 1, 260 576 1, 348 512 1, 293 512 1, 221 552 1, 220 552 1, 147 512 1 -512 64 -192 512 576;64 21 1, 64 102 1, 189 64 0, 311 64 1, 448 64 0, 448 152 1, 448 197 0, 410 218 1, 381 235 0, 315 253 1, 229 278 1, 64 324 0, 64 431 1, 64 576 0, 267 576 1, 355 576 0, 448 566 1, 448 491 1, 347 512 0, 255 512 1, 128 512 0, 128 431 1, 128 399 0, 154 379 1, 180 359 0, 247 340 1, 334 316 1, 432 288 0, 472 252 1, 512 216 0, 512 157 1, 512 84 0, 454 42 1, 396 0 0, 294 0 1, 193 0 0, 243 0 1, 279 0 1, 257 -41 1, 280 -42 0, 297 -59 1, 320 -82 0, 320 -116 1, 320 -148 0, 300 -170 1, 279 -192 0, 250 -192 1, 227 -192 0, 200 -154 1, 200 -124 1, 213 -128 0, 228 -128 1, 256 -128 0, 256 -101 1, 256 -67 0, 208 -66 1 -384 64 -192 320 384;64 13 1, 64 77 1, 128 64 0, 183 64 1, 256 64 0, 256 116 1, 256 152 0, 204 168 1, 147 187 1, 64 214 0, 64 286 1, 64 384 0, 215 384 1, 258 384 0, 320 381 1, 320 323 1, 263 320 0, 206 320 1, 128 320 0, 128 276 1, 128 244 0, 174 230 1, 225 213 1, 320 182 0, 320 106 1, 320 57 0, 283 29 1, 245 0 0, 180 0 1, 129 0 0, 171 0 1, 207 0 1, 184 -41 1, 211 -42 0, 230 -59 1, 256 -82 0, 256 -116 1, 256 -148 0, 234 -170 1, 213 -192 0, 180 -192 1, 155 -192 0, 127 -154 1, 127 -124 1, 143 -128 0, 160 -128 1, 192 -128 0, 192 -101 1, 192 -67 0, 135 -66 1 -512 64 0 512 704;64 21 1, 64 102 1, 189 64 0, 311 64 1, 448 64 0, 448 152 1, 448 197 0, 410 218 1, 381 235 0, 315 253 1, 229 278 1, 64 324 0, 64 431 1, 64 576 0, 267 576 1, 355 576 0, 448 566 1, 448 491 1, 347 512 0, 255 512 1, 128 512 0, 128 431 1, 128 399 0, 154 379 1, 180 359 0, 247 340 1, 334 316 1, 432 288 0, 472 252 1, 512 216 0, 512 156 1, 512 84 0, 454 42 1, 396 0 0, 294 0 1, 193 0 0, 400 704 1, 310 576 1, 229 576 1, 139 704 1, 194 704 1, 269 623 1, 270 623 1, 344 704 1 -384 0 0 384 576;64 13 1, 64 77 1, 128 64 0, 183 64 1, 256 64 0, 256 116 1, 256 152 0, 204 168 1, 147 187 1, 64 214 0, 64 286 1, 64 384 0, 215 384 1, 258 384 0, 320 381 1, 320 323 1, 263 320 0, 206 320 1, 128 320 0, 128 276 1, 128 244 0, 174 230 1, 225 213 1, 320 182 0, 320 106 1, 320 57 0, 283 29 1, 245 0 0, 180 0 1, 129 0 0, 323 576 1, 233 512 1, 151 512 1, 61 576 1, 116 576 1, 192 536 1, 192 536 1, 268 576 1 -448 0 -192 448 576;192 0 1, 192 512 1, 0 512 1, 0 576 1, 448 576 1, 448 512 1, 256 512 1, 256 0 1, 212 0 1, 242 0 1, 223 -41 1, 259 -42 0, 285 -59 1, 320 -82 0, 320 -115 1, 320 -148 0, 295 -170 1, 270 -192 0, 234 -192 1, 205 -192 0, 173 -154 1, 173 -124 1, 193 -128 0, 214 -128 1, 256 -128 0, 256 -101 1, 256 -67 0, 181 -66 1 -192 0 -192 192 512;192 -2 1, 172 0 0, 154 0 1, 64 0 0, 64 103 1, 64 320 1, 0 320 1, 0 384 1, 64 384 1, 64 458 1, 128 465 1, 128 384 1, 192 384 1, 192 320 1, 128 320 1, 128 115 1, 128 84 0, 136 74 1, 144 64 0, 168 64 1, 182 64 0, 192 45 1, 112 0 1, 145 0 1, 124 -41 1, 149 -42 0, 167 -59 1, 192 -82 0, 192 -115 1, 192 -148 0, 172 -170 1, 152 -192 0, 123 -192 1, 100 -192 0, 74 -154 1, 74 -124 1, 87 -128 0, 101 -128 1, 128 -128 0, 128 -101 1, 128 -67 0, 81 -66 1 -448 0 0 448 704;192 0 1, 192 512 1, 0 512 1, 0 576 1, 448 576 1, 448 512 1, 256 512 1, 256 0 1, 350 704 1, 258 576 1, 190 576 1, 98 704 1, 155 704 1, 224 623 1, 224 623 1, 293 704 1 -320 0 -64 256 640;192 -2 1, 172 0 0, 154 0 1, 64 0 0, 64 103 1, 64 320 1, 0 320 1, 0 384 1, 64 384 1, 64 468 1, 128 476 1, 128 384 1, 192 384 1, 192 320 1, 128 320 1, 128 115 1, 128 84 0, 136 74 1, 144 64 0, 168 64 1, 182 64 0, 192 45 1, 192 447 1, 192 472 1, 208 481 0, 208 549 1, 208 556 1, 192 556 1, 192 640 1, 256 640 1, 256 567 1, 256 456 0 -448 0 0 448 576;192 0 1, 192 256 1, 64 256 1, 64 320 1, 192 320 1, 192 512 1, 0 512 1, 0 576 1, 448 576 1, 448 512 1, 256 512 1, 256 320 1, 384 320 1, 384 256 1, 256 256 1, 256 0 1 -192 0 -64 192 512;64 192 1, 0 192 1, 0 256 1, 64 256 1, 64 320 1, 0 320 1, 0 384 1, 64 384 1, 64 458 1, 128 465 1, 128 384 1, 192 384 1, 192 320 1, 128 320 1, 128 256 1, 192 256 1, 192 192 1, 128 192 1, 128 114 1, 128 84 0, 136 74 1, 144 64 0, 168 64 1, 182 64 0, 192 45 1, 192 -2 1, 172 0 0, 154 0 1, 64 0 0, 64 102 1 -576 64 0 512 768;64 576 1, 128 576 1, 128 213 1, 128 158 0, 139 132 1, 150 106 0, 180 88 1, 223 64 0, 295 64 1, 379 64 0, 414 97 1, 448 129 0, 448 210 1, 448 576 1, 512 576 1, 512 211 1, 512 139 0, 497 102 1, 482 64 0, 440 37 1, 385 0 0, 292 0 1, 174 0 0, 119 51 1, 64 102 0, 64 214 1, 146 623 1, 149 655 0, 160 673 1, 179 704 0, 226 704 1, 256 704 0, 282 704 1, 308 704 1, 332 704 0, 345 704 1, 372 704 0, 377 710 1, 430 710 1, 427 682 0, 416 667 1, 397 640 0, 351 640 1, 321 640 0, 294 640 1, 268 640 1, 245 640 0, 231 640 1, 204 640 0, 199 623 1 -448 64 0 384 640;320 0 1, 320 72 1, 291 40 0, 263 24 1, 222 0 0, 174 0 1, 64 0 0, 64 108 1, 64 384 1, 128 384 1, 128 131 1, 128 92 0, 140 78 1, 152 64 0, 184 64 1, 254 64 0, 320 135 1, 320 384 1, 384 384 1, 384 0 1, 93 480 1, 96 519 0, 106 539 1, 125 576 0, 169 576 1, 198 576 0, 223 576 1, 248 576 1, 271 576 0, 283 576 1, 310 576 0, 314 590 1, 355 590 1, 352 559 0, 342 542 1, 324 512 0, 280 512 1, 250 512 0, 225 512 1, 200 512 1, 178 512 0, 165 512 1, 138 512 0, 134 480 1 -576 64 0 512 640;64 576 1, 128 576 1, 128 213 1, 128 158 0, 139 132 1, 150 106 0, 180 88 1, 223 64 0, 295 64 1, 379 64 0, 414 97 1, 448 129 0, 448 210 1, 448 576 1, 512 576 1, 512 211 1, 512 139 0, 497 102 1, 482 64 0, 440 37 1, 385 0 0, 292 0 1, 174 0 0, 119 51 1, 64 102 0, 64 214 1, 192 576 1, 192 640 1, 384 640 1, 384 576 1 -448 64 0 384 512;320 0 1, 320 72 1, 291 40 0, 263 24 1, 222 0 0, 174 0 1, 64 0 0, 64 108 1, 64 384 1, 128 384 1, 128 131 1, 128 92 0, 140 78 1, 152 64 0, 184 64 1, 254 64 0, 320 135 1, 320 384 1, 384 384 1, 384 0 1, 64 448 1, 64 512 1, 320 512 1, 320 448 1 -576 64 0 512 768;64 576 1, 128 576 1, 128 213 1, 128 158 0, 139 132 1, 150 106 0, 180 88 1, 223 64 0, 295 64 1, 379 64 0, 414 97 1, 448 129 0, 448 210 1, 448 576 1, 512 576 1, 512 211 1, 512 139 0, 497 102 1, 482 64 0, 440 37 1, 385 0 0, 292 0 1, 174 0 0, 119 51 1, 64 102 0, 64 214 1, 146 743 1, 199 743 1, 208 722 0, 231 713 1, 253 704 0, 288 704 1, 328 704 0, 351 715 1, 369 724 0, 377 743 1, 430 743 1, 423 700 0, 392 674 1, 352 640 0, 288 640 1, 221 640 0, 181 677 1, 153 702 0 -448 64 0 384 640;320 0 1, 320 72 1, 291 40 0, 263 24 1, 222 0 0, 174 0 1, 64 0 0, 64 108 1, 64 384 1, 128 384 1, 128 131 1, 128 92 0, 140 78 1, 152 64 0, 184 64 1, 254 64 0, 320 135 1, 320 384 1, 384 384 1, 384 0 1, 93 578 1, 134 578 1, 143 543 0, 166 527 1, 188 512 0, 224 512 1, 264 512 0, 287 531 1, 306 546 0, 314 578 1, 355 578 1, 349 524 0, 320 491 1, 283 448 0, 224 448 1, 162 448 0, 125 495 1, 100 526 0 -576 64 0 512 768;64 576 1, 128 576 1, 128 213 1, 128 158 0, 139 132 1, 150 106 0, 180 88 1, 223 64 0, 295 64 1, 379 64 0, 414 97 1, 448 129 0, 448 210 1, 448 576 1, 512 576 1, 512 211 1, 512 139 0, 497 102 1, 482 64 0, 440 37 1, 385 0 0, 292 0 1, 174 0 0, 119 51 1, 64 102 0, 64 214 1, 288 768 1, 328 768 0, 356 749 1, 384 731 0, 384 704 1, 384 677 0, 356 659 1, 328 640 0, 287 640 1, 252 640 0, 226 655 1, 192 675 0, 192 704 1, 192 731 0, 220 749 1, 248 768 0, 288 704 1, 275 704 0, 265 704 1, 256 704 0, 256 704 1, 256 704 0, 265 704 1, 275 704 0, 288 704 1, 300 704 0, 309 704 1, 320 704 0, 320 704 1, 320 704 0, 310 704 1, 301 704 0 -448 64 0 384 640;320 0 1, 320 72 1, 291 40 0, 263 24 1, 222 0 0, 174 0 1, 64 0 0, 64 108 1, 64 384 1, 128 384 1, 128 131 1, 128 92 0, 140 78 1, 152 64 0, 184 64 1, 254 64 0, 320 135 1, 320 384 1, 384 384 1, 384 0 1, 192 640 1, 219 640 0, 237 621 1, 256 603 0, 256 576 1, 256 549 0, 237 531 1, 219 512 0, 191 512 1, 168 512 0, 151 527 1, 128 547 0, 128 576 1, 128 603 0, 147 621 1, 165 640 0, 192 576 1, 192 576 0, 192 576 1, 192 576 0, 192 576 1, 192 576 0, 192 576 1, 192 576 0, 192 576 1, 192 576 0, 192 576 1, 192 576 0, 192 576 1, 192 576 0, 192 576 1, 192 576 0 -576 64 0 512 704;64 576 1, 128 576 1, 128 213 1, 128 158 0, 139 132 1, 150 106 0, 180 88 1, 223 64 0, 295 64 1, 379 64 0, 414 97 1, 448 129 0, 448 210 1, 448 576 1, 512 576 1, 512 211 1, 512 139 0, 497 102 1, 482 64 0, 440 37 1, 385 0 0, 292 0 1, 174 0 0, 119 51 1, 64 102 0, 64 214 1, 180 612 1, 283 704 1, 364 704 1, 228 612 1, 330 612 1, 432 704 1, 502 704 1, 377 612 1 -448 64 0 448 576;320 0 1, 320 72 1, 291 40 0, 263 24 1, 222 0 0, 174 0 1, 64 0 0, 64 108 1, 64 384 1, 128 384 1, 128 131 1, 128 92 0, 140 78 1, 152 64 0, 184 64 1, 254 64 0, 320 135 1, 320 384 1, 384 384 1, 384 0 1, 109 456 1, 199 576 1, 271 576 1, 151 456 1, 241 456 1, 331 576 1, 403 576 1, 283 456 1 -576 64 -128 512 576;64 576 1, 128 576 1, 128 213 1, 128 158 0, 139 132 1, 150 106 0, 180 88 1, 223 64 0, 295 64 1, 379 64 0, 414 97 1, 448 129 0, 448 210 1, 448 576 1, 512 576 1, 512 211 1, 512 139 0, 497 102 1, 482 64 0, 440 37 1, 385 0 0, 292 0 1, 174 0 0, 119 51 1, 64 102 0, 64 214 1, 308 0 1, 354 0 1, 320 -19 0, 320 -42 1, 320 -64 0, 358 -64 1, 375 -64 0, 387 -98 1, 387 -128 1, 363 -128 0, 333 -128 1, 256 -128 0, 256 -73 1, 256 -31 0 -448 64 -128 384 384;320 0 1, 320 72 1, 291 40 0, 263 24 1, 222 0 0, 174 0 1, 64 0 0, 64 108 1, 64 384 1, 128 384 1, 128 131 1, 128 92 0, 140 78 1, 152 64 0, 184 64 1, 254 64 0, 320 135 1, 320 384 1, 384 384 1, 384 0 1, 315 0 1, 355 0 1, 320 -19 0, 320 -42 1, 320 -64 0, 356 -64 1, 372 -64 0, 384 -98 1, 384 -128 1, 361 -128 0, 332 -128 1, 256 -128 0, 256 -73 1, 256 -31 0 -704 0 0 768 704;152 0 1, 9 576 1, 85 576 1, 199 121 1, 329 576 1, 405 576 1, 530 125 1, 651 576 1, 716 576 1, 560 0 1, 482 0 1, 358 444 1, 230 0 1, 236 576 1, 326 704 1, 408 704 1, 498 576 1, 443 576 1, 367 657 1, 366 657 1, 291 576 1 -576 0 0 576 576;102 0 1, 4 384 1, 77 384 1, 150 95 1, 244 384 1, 318 384 1, 400 94 1, 486 384 1, 549 384 1, 435 0 1, 361 0 1, 275 297 1, 177 0 1, 149 512 1, 240 576 1, 321 576 1, 412 512 1, 356 512 1, 281 552 1, 280 552 1, 205 512 1 -512 -64 0 512 704;192 0 1, 192 240 1, -7 576 1, 83 576 1, 232 309 1, 395 576 1, 468 576 1, 256 242 1, 256 0 1, 115 576 1, 203 704 1, 273 704 1, 363 576 1, 307 576 1, 236 657 1, 236 657 1, 171 576 1 -384 0 -128 384 576;152 0 1, 7 384 1, 82 384 1, 193 90 1, 314 384 1, 380 384 1, 164 -128 1, 87 -128 1, 67 512 1, 157 576 1, 239 576 1, 329 512 1, 274 512 1, 198 552 1, 198 552 1, 122 512 1 -448 64 0 448 704;64 0 1, 64 64 1, 351 512 1, 64 512 1, 64 576 1, 448 576 1, 448 512 1, 142 64 1, 448 64 1, 448 0 1, 190 576 1, 283 704 1, 370 704 1, 247 576 1 -384 0 0 384 576;0 0 1, 0 64 1, 291 320 1, 64 320 1, 64 384 1, 384 384 1, 384 320 1, 145 64 1, 384 64 1, 384 0 1, 168 512 1, 259 576 1, 344 576 1, 224 512 1 -448 64 0 448 704;64 0 1, 64 64 1, 331 512 1, 64 512 1, 64 576 1, 448 576 1, 448 512 1, 131 64 1, 448 64 1, 448 0 1, 192 640 1, 192 704 1, 256 704 1, 256 640 1 -384 0 0 384 576;0 0 1, 0 64 1, 291 320 1, 64 320 1, 64 384 1, 384 384 1, 384 320 1, 145 64 1, 384 64 1, 384 0 1, 128 512 1, 128 576 1, 192 576 1, 192 512 1 -448 64 0 448 704;64 0 1, 64 64 1, 351 512 1, 64 512 1, 64 576 1, 448 576 1, 448 512 1, 142 64 1, 448 64 1, 448 0 1, 386 704 1, 293 576 1, 209 576 1, 117 704 1, 174 704 1, 251 623 1, 252 623 1, 329 704 1 -384 0 0 384 576;0 0 1, 0 64 1, 291 320 1, 64 320 1, 64 384 1, 384 384 1, 384 320 1, 145 64 1, 384 64 1, 384 0 1, 323 576 1, 233 512 1, 151 512 1, 61 576 1, 116 576 1, 192 536 1, 192 536 1, 268 576 1 -192 0 0 192 640;64 0 1, 64 352 1, 0 352 1, 0 407 1, 64 407 1, 64 456 1, 64 513 0, 91 544 1, 119 576 0, 169 576 1, 176 576 0, 192 600 1, 192 545 1, 181 512 0, 175 512 1, 128 512 0, 128 464 1, 128 0 1 -512 64 -192 512 576;64 21 1, 64 102 1, 189 64 0, 311 64 1, 448 64 0, 448 152 1, 448 197 0, 410 218 1, 381 235 0, 315 253 1, 229 278 1, 64 324 0, 64 431 1, 64 576 0, 267 576 1, 355 576 0, 448 566 1, 448 491 1, 347 512 0, 255 512 1, 128 512 0, 128 431 1, 128 399 0, 154 379 1, 180 359 0, 247 340 1, 334 316 1, 432 288 0, 472 252 1, 512 216 0, 512 157 1, 512 84 0, 454 42 1, 396 0 0, 294 0 1, 193 0 0, 214 -158 1, 214 -126 1, 226 -128 0, 234 -128 1, 256 -128 0, 256 -104 1, 256 -77 0, 233 -71 1, 233 -42 1, 273 -43 0, 292 -57 1, 320 -77 0, 320 -121 1, 320 -192 0, 253 -192 1, 234 -192 0 -384 64 -192 320 384;64 13 1, 64 77 1, 128 64 0, 183 64 1, 256 64 0, 256 116 1, 256 152 0, 204 168 1, 147 187 1, 64 214 0, 64 286 1, 64 384 0, 215 384 1, 258 384 0, 320 381 1, 320 323 1, 263 320 0, 206 320 1, 128 320 0, 128 276 1, 128 244 0, 174 230 1, 225 213 1, 320 182 0, 320 106 1, 320 57 0, 283 29 1, 245 0 0, 180 0 1, 129 0 0, 128 -158 1, 128 -126 1, 146 -128 0, 158 -128 1, 192 -128 0, 192 -104 1, 192 -77 0, 146 -71 1, 146 -42 1, 196 -43 0, 221 -57 1, 256 -77 0, 256 -121 1, 256 -192 0, 175 -192 1, 153 -192 0 -448 0 -192 448 576;192 0 1, 192 512 1, 0 512 1, 0 576 1, 448 576 1, 448 512 1, 256 512 1, 256 0 1, 173 -158 1, 173 -126 1, 196 -128 0, 212 -128 1, 256 -128 0, 256 -104 1, 256 -77 0, 192 -71 1, 192 -42 1, 251 -43 0, 279 -57 1, 320 -77 0, 320 -121 1, 320 -192 0, 227 -192 1, 201 -192 0 -192 0 -192 192 512;192 -2 1, 172 0 0, 154 0 1, 64 0 0, 64 103 1, 64 320 1, 0 320 1, 0 384 1, 64 384 1, 64 458 1, 128 465 1, 128 384 1, 192 384 1, 192 320 1, 128 320 1, 128 115 1, 128 84 0, 136 74 1, 144 64 0, 168 64 1, 182 64 0, 192 45 1, 64 -158 1, 64 -126 1, 82 -128 0, 94 -128 1, 128 -128 0, 128 -104 1, 128 -77 0, 82 -71 1, 82 -42 1, 132 -43 0, 157 -57 1, 192 -77 0, 192 -121 1, 192 -192 0, 111 -192 1, 89 -192 0 -256 64 -192 192 0;64 -158 1, 64 -126 1, 82 -128 0, 94 -128 1, 128 -128 0, 128 -104 1, 128 -77 0, 82 -71 1, 82 -42 1, 132 -43 0, 157 -57 1, 192 -77 0, 192 -121 1, 192 -192 0, 111 -192 1, 89 -192 0 -192 64 -128 128 384;64 -120 1, 64 -93 1, 87 -79 0, 87 -9 1, 87 0 1, 64 0 1, 64 64 1, 128 64 1, 128 10 1, 128 -102 0, 64 320 1, 64 384 1, 128 384 1, 128 320 1 -192 64 192 128 256;64 192 1, 64 256 1, 128 256 1, 128 192 1 -256 64 192 192 256;64 192 1, 64 256 1, 192 256 1, 192 192 1 -256 64 192 192 256;64 192 1, 64 256 1, 192 256 1, 192 192 1 -448 0 192 448 256;38 192 1, 38 256 1, 390 256 1, 390 192 1 -768 0 192 768 256;37 192 1, 37 256 1, 731 256 1, 731 192 1 -192 0 0 0 0; -448 64 512 384 576;64 512 1, 64 576 1, 384 576 1, 384 512 1 -448 64 0 448 384;311 256 1, 310 277 0, 303 287 1, 284 320 0, 219 320 1, 173 320 0, 147 305 1, 121 290 0, 115 256 1, 384 72 1, 384 13 1, 314 0 0, 256 0 1, 168 0 0, 116 53 1, 64 107 0, 64 197 1, 64 283 0, 110 333 1, 156 384 0, 234 384 1, 323 384 0, 360 325 1, 387 281 0, 386 212 1, 386 192 1, 114 192 1, 119 153 0, 129 132 1, 162 64 0, 260 64 1, 316 64 0 -448 64 192 384 256;64 192 1, 64 256 1, 384 256 1, 384 192 1 -128 -192 -64 320 576;-165 -14 1, 243 569 1, 293 569 1, -114 -14 1 -192 64 192 128 256;64 192 1, 64 256 1, 128 256 1, 128 192 1 -384 0 0 320 640;64 0 1, 64 320 1, 0 320 1, 0 384 1, 64 384 1, 64 468 1, 64 640 0, 194 640 1, 221 640 0, 256 613 1, 256 557 1, 219 576 0, 193 576 1, 157 576 0, 142 555 1, 128 534 0, 128 482 1, 128 384 1, 320 384 1, 320 0 1, 256 0 1, 256 320 1, 128 320 1, 128 0 1, 256 512 1, 256 576 1, 320 576 1, 320 512 1 -384 0 0 320 576;64 0 1, 64 320 1, 0 320 1, 0 384 1, 64 384 1, 64 435 1, 64 576 0, 175 576 1, 256 576 1, 320 576 1, 320 0 1, 256 0 1, 256 518 1, 240 516 1, 206 512 0, 183 512 1, 148 512 0, 137 493 1, 128 477 0, 128 443 1, 128 384 1, 192 384 1, 192 320 1, 128 320 1, 128 0 1 -256 -64 192 256 576;128 229 1, 128 320 1, -25 320 1, -25 382 1, 126 576 1, 192 576 1, 192 384 1, 238 384 1, 238 320 1, 192 320 1, 192 229 1, 24 384 1, 128 384 1, 128 516 1 -192 -64 -192 128 384;-64 -145 1, -64 -87 1, -28 -64 0, 3 -64 1, 46 -64 0, 56 -47 1, 64 -32 0, 64 0 1, 64 384 1, 128 384 1, 128 0 1, 128 -128 0, 2 -128 1, -33 -128 0 -192 0 0 0 0; diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luxisr.ttf b/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luxisr.ttf Binary files differdeleted file mode 100644 index c47fd20be..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luxisr.ttf +++ /dev/null diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luxisr.ttx b/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luxisr.ttx deleted file mode 100644 index 98eea53e4..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/luxisr.ttx +++ /dev/null @@ -1,22503 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="2.4"> - - <GlyphOrder> - <!-- The 'id' attribute is only for humans; it is ignored when parsed. --> - <GlyphID id="0" name=".notdef"/> - <GlyphID id="1" name=".notdef#1"/> - <GlyphID id="2" name=".notdef#2"/> - <GlyphID id="3" name="space"/> - <GlyphID id="4" name="exclam"/> - <GlyphID id="5" name="quotedbl"/> - <GlyphID id="6" name="numbersign"/> - <GlyphID id="7" name="dollar"/> - <GlyphID id="8" name="percent"/> - <GlyphID id="9" name="ampersand"/> - <GlyphID id="10" name="quotesingle"/> - <GlyphID id="11" name="parenleft"/> - <GlyphID id="12" name="parenright"/> - <GlyphID id="13" name="asterisk"/> - <GlyphID id="14" name="plus"/> - <GlyphID id="15" name="comma"/> - <GlyphID id="16" name="hyphen"/> - <GlyphID id="17" name="period"/> - <GlyphID id="18" name="slash"/> - <GlyphID id="19" name="zero"/> - <GlyphID id="20" name="one"/> - <GlyphID id="21" name="two"/> - <GlyphID id="22" name="three"/> - <GlyphID id="23" name="four"/> - <GlyphID id="24" name="five"/> - <GlyphID id="25" name="six"/> - <GlyphID id="26" name="seven"/> - <GlyphID id="27" name="eight"/> - <GlyphID id="28" name="nine"/> - <GlyphID id="29" name="colon"/> - <GlyphID id="30" name="semicolon"/> - <GlyphID id="31" name="less"/> - <GlyphID id="32" name="equal"/> - <GlyphID id="33" name="greater"/> - <GlyphID id="34" name="question"/> - <GlyphID id="35" name="at"/> - <GlyphID id="36" name="A"/> - <GlyphID id="37" name="B"/> - <GlyphID id="38" name="C"/> - <GlyphID id="39" name="D"/> - <GlyphID id="40" name="E"/> - <GlyphID id="41" name="F"/> - <GlyphID id="42" name="G"/> - <GlyphID id="43" name="H"/> - <GlyphID id="44" name="I"/> - <GlyphID id="45" name="J"/> - <GlyphID id="46" name="K"/> - <GlyphID id="47" name="L"/> - <GlyphID id="48" name="M"/> - <GlyphID id="49" name="N"/> - <GlyphID id="50" name="O"/> - <GlyphID id="51" name="P"/> - <GlyphID id="52" name="Q"/> - <GlyphID id="53" name="R"/> - <GlyphID id="54" name="S"/> - <GlyphID id="55" name="T"/> - <GlyphID id="56" name="U"/> - <GlyphID id="57" name="V"/> - <GlyphID id="58" name="W"/> - <GlyphID id="59" name="X"/> - <GlyphID id="60" name="Y"/> - <GlyphID id="61" name="Z"/> - <GlyphID id="62" name="bracketleft"/> - <GlyphID id="63" name="backslash"/> - <GlyphID id="64" name="bracketright"/> - <GlyphID id="65" name="asciicircum"/> - <GlyphID id="66" name="underscore"/> - <GlyphID id="67" name="grave"/> - <GlyphID id="68" name="a"/> - <GlyphID id="69" name="b"/> - <GlyphID id="70" name="c"/> - <GlyphID id="71" name="d"/> - <GlyphID id="72" name="e"/> - <GlyphID id="73" name="f"/> - <GlyphID id="74" name="g"/> - <GlyphID id="75" name="h"/> - <GlyphID id="76" name="i"/> - <GlyphID id="77" name="j"/> - <GlyphID id="78" name="k"/> - <GlyphID id="79" name="l"/> - <GlyphID id="80" name="m"/> - <GlyphID id="81" name="n"/> - <GlyphID id="82" name="o"/> - <GlyphID id="83" name="p"/> - <GlyphID id="84" name="q"/> - <GlyphID id="85" name="r"/> - <GlyphID id="86" name="s"/> - <GlyphID id="87" name="t"/> - <GlyphID id="88" name="u"/> - <GlyphID id="89" name="v"/> - <GlyphID id="90" name="w"/> - <GlyphID id="91" name="x"/> - <GlyphID id="92" name="y"/> - <GlyphID id="93" name="z"/> - <GlyphID id="94" name="braceleft"/> - <GlyphID id="95" name="bar"/> - <GlyphID id="96" name="braceright"/> - <GlyphID id="97" name="asciitilde"/> - <GlyphID id="98" name="Adieresis"/> - <GlyphID id="99" name="Aring"/> - <GlyphID id="100" name="Ccedilla"/> - <GlyphID id="101" name="Eacute"/> - <GlyphID id="102" name="Ntilde"/> - <GlyphID id="103" name="Odieresis"/> - <GlyphID id="104" name="Udieresis"/> - <GlyphID id="105" name="aacute"/> - <GlyphID id="106" name="agrave"/> - <GlyphID id="107" name="acircumflex"/> - <GlyphID id="108" name="adieresis"/> - <GlyphID id="109" name="atilde"/> - <GlyphID id="110" name="aring"/> - <GlyphID id="111" name="ccedilla"/> - <GlyphID id="112" name="eacute"/> - <GlyphID id="113" name="egrave"/> - <GlyphID id="114" name="ecircumflex"/> - <GlyphID id="115" name="edieresis"/> - <GlyphID id="116" name="iacute"/> - <GlyphID id="117" name="igrave"/> - <GlyphID id="118" name="icircumflex"/> - <GlyphID id="119" name="idieresis"/> - <GlyphID id="120" name="ntilde"/> - <GlyphID id="121" name="oacute"/> - <GlyphID id="122" name="ograve"/> - <GlyphID id="123" name="ocircumflex"/> - <GlyphID id="124" name="odieresis"/> - <GlyphID id="125" name="otilde"/> - <GlyphID id="126" name="uacute"/> - <GlyphID id="127" name="ugrave"/> - <GlyphID id="128" name="ucircumflex"/> - <GlyphID id="129" name="udieresis"/> - <GlyphID id="130" name="dagger"/> - <GlyphID id="131" name="degree"/> - <GlyphID id="132" name="cent"/> - <GlyphID id="133" name="sterling"/> - <GlyphID id="134" name="section"/> - <GlyphID id="135" name="bullet"/> - <GlyphID id="136" name="paragraph"/> - <GlyphID id="137" name="germandbls"/> - <GlyphID id="138" name="registered"/> - <GlyphID id="139" name="copyright"/> - <GlyphID id="140" name="trademark"/> - <GlyphID id="141" name="acute"/> - <GlyphID id="142" name="dieresis"/> - <GlyphID id="143" name=".notdef#3"/> - <GlyphID id="144" name="AE"/> - <GlyphID id="145" name="Oslash"/> - <GlyphID id="146" name=".notdef#4"/> - <GlyphID id="147" name="plusminus"/> - <GlyphID id="148" name=".notdef#5"/> - <GlyphID id="149" name=".notdef#6"/> - <GlyphID id="150" name="yen"/> - <GlyphID id="151" name="mu"/> - <GlyphID id="152" name=".notdef#7"/> - <GlyphID id="153" name=".notdef#8"/> - <GlyphID id="154" name=".notdef#9"/> - <GlyphID id="155" name=".notdef#10"/> - <GlyphID id="156" name=".notdef#11"/> - <GlyphID id="157" name="ordfeminine"/> - <GlyphID id="158" name="ordmasculine"/> - <GlyphID id="159" name=".notdef#12"/> - <GlyphID id="160" name="ae"/> - <GlyphID id="161" name="oslash"/> - <GlyphID id="162" name="questiondown"/> - <GlyphID id="163" name="exclamdown"/> - <GlyphID id="164" name="logicalnot"/> - <GlyphID id="165" name=".notdef#13"/> - <GlyphID id="166" name="florin"/> - <GlyphID id="167" name=".notdef#14"/> - <GlyphID id="168" name=".notdef#15"/> - <GlyphID id="169" name="guillemotleft"/> - <GlyphID id="170" name="guillemotright"/> - <GlyphID id="171" name="ellipsis"/> - <GlyphID id="172" name=".notdef#16"/> - <GlyphID id="173" name="Agrave"/> - <GlyphID id="174" name="Atilde"/> - <GlyphID id="175" name="Otilde"/> - <GlyphID id="176" name="OE"/> - <GlyphID id="177" name="oe"/> - <GlyphID id="178" name="endash"/> - <GlyphID id="179" name="emdash"/> - <GlyphID id="180" name="quotedblleft"/> - <GlyphID id="181" name="quotedblright"/> - <GlyphID id="182" name="quoteleft"/> - <GlyphID id="183" name="quoteright"/> - <GlyphID id="184" name="divide"/> - <GlyphID id="185" name=".notdef#17"/> - <GlyphID id="186" name="ydieresis"/> - <GlyphID id="187" name="Ydieresis"/> - <GlyphID id="188" name="fraction"/> - <GlyphID id="189" name="currency"/> - <GlyphID id="190" name="guilsinglleft"/> - <GlyphID id="191" name="guilsinglright"/> - <GlyphID id="192" name="fi"/> - <GlyphID id="193" name="fl"/> - <GlyphID id="194" name="daggerdbl"/> - <GlyphID id="195" name="periodcentered"/> - <GlyphID id="196" name="quotesinglbase"/> - <GlyphID id="197" name="quotedblbase"/> - <GlyphID id="198" name="perthousand"/> - <GlyphID id="199" name="Acircumflex"/> - <GlyphID id="200" name="Ecircumflex"/> - <GlyphID id="201" name="Aacute"/> - <GlyphID id="202" name="Edieresis"/> - <GlyphID id="203" name="Egrave"/> - <GlyphID id="204" name="Iacute"/> - <GlyphID id="205" name="Icircumflex"/> - <GlyphID id="206" name="Idieresis"/> - <GlyphID id="207" name="Igrave"/> - <GlyphID id="208" name="Oacute"/> - <GlyphID id="209" name="Ocircumflex"/> - <GlyphID id="210" name="Euro"/> - <GlyphID id="211" name="Ograve"/> - <GlyphID id="212" name="Uacute"/> - <GlyphID id="213" name="Ucircumflex"/> - <GlyphID id="214" name="Ugrave"/> - <GlyphID id="215" name="dotlessi"/> - <GlyphID id="216" name="circumflex"/> - <GlyphID id="217" name="tilde"/> - <GlyphID id="218" name="macron"/> - <GlyphID id="219" name="breve"/> - <GlyphID id="220" name="dotaccent"/> - <GlyphID id="221" name="ring"/> - <GlyphID id="222" name="cedilla"/> - <GlyphID id="223" name="hungarumlaut"/> - <GlyphID id="224" name="ogonek"/> - <GlyphID id="225" name="caron"/> - <GlyphID id="226" name="Euro#1"/> - <GlyphID id="227" name="nonbreakingspace"/> - <GlyphID id="228" name="brokenbar"/> - <GlyphID id="229" name="sfthyphen"/> - <GlyphID id="230" name="macron#1"/> - <GlyphID id="231" name="twosuperior"/> - <GlyphID id="232" name="threesuperior"/> - <GlyphID id="233" name="periodcentered#1"/> - <GlyphID id="234" name="onesuperior"/> - <GlyphID id="235" name="onequarter"/> - <GlyphID id="236" name="onehalf"/> - <GlyphID id="237" name="threequarters"/> - <GlyphID id="238" name="Eth"/> - <GlyphID id="239" name="multiply"/> - <GlyphID id="240" name="Yacute"/> - <GlyphID id="241" name="Thorn"/> - <GlyphID id="242" name="eth"/> - <GlyphID id="243" name="yacute"/> - <GlyphID id="244" name="thorn"/> - <GlyphID id="245" name="Amacron"/> - <GlyphID id="246" name="amacron"/> - <GlyphID id="247" name="Abreve"/> - <GlyphID id="248" name="abreve"/> - <GlyphID id="249" name="Aogonek"/> - <GlyphID id="250" name="aogonek"/> - <GlyphID id="251" name="Cacute"/> - <GlyphID id="252" name="cacute"/> - <GlyphID id="253" name="Ccircumflex"/> - <GlyphID id="254" name="ccircumflex"/> - <GlyphID id="255" name="Cdotaccent"/> - <GlyphID id="256" name="cdotaccent"/> - <GlyphID id="257" name="Ccaron"/> - <GlyphID id="258" name="ccaron"/> - <GlyphID id="259" name="Dcaron"/> - <GlyphID id="260" name="dcaron"/> - <GlyphID id="261" name="Dcroat"/> - <GlyphID id="262" name="dcroat"/> - <GlyphID id="263" name="Emacron"/> - <GlyphID id="264" name="emacron"/> - <GlyphID id="265" name="Ebreve"/> - <GlyphID id="266" name="ebreve"/> - <GlyphID id="267" name="Edotaccent"/> - <GlyphID id="268" name="edotaccent"/> - <GlyphID id="269" name="Eogonek"/> - <GlyphID id="270" name="eogonek"/> - <GlyphID id="271" name="Ecaron"/> - <GlyphID id="272" name="ecaron"/> - <GlyphID id="273" name="Gcircumflex"/> - <GlyphID id="274" name="gcircumflex"/> - <GlyphID id="275" name="Gbreve"/> - <GlyphID id="276" name="gbreve"/> - <GlyphID id="277" name="Gdotaccent"/> - <GlyphID id="278" name="gdotaccent"/> - <GlyphID id="279" name="Gcommaaccent"/> - <GlyphID id="280" name="gcommaaccent"/> - <GlyphID id="281" name="Hcircumflex"/> - <GlyphID id="282" name="hcircumflex"/> - <GlyphID id="283" name="Hbar"/> - <GlyphID id="284" name="hbar"/> - <GlyphID id="285" name="Itilde"/> - <GlyphID id="286" name="itilde"/> - <GlyphID id="287" name="Imacron"/> - <GlyphID id="288" name="imacron"/> - <GlyphID id="289" name="Ibreve"/> - <GlyphID id="290" name="ibreve"/> - <GlyphID id="291" name="Iogonek"/> - <GlyphID id="292" name="iogonek"/> - <GlyphID id="293" name="Idotaccent"/> - <GlyphID id="294" name="IJ"/> - <GlyphID id="295" name="ij"/> - <GlyphID id="296" name="Jcircumflex"/> - <GlyphID id="297" name="jcircumflex"/> - <GlyphID id="298" name="Kcommaaccent"/> - <GlyphID id="299" name="kcommaaccent"/> - <GlyphID id="300" name="kgreenlandic"/> - <GlyphID id="301" name="Lacute"/> - <GlyphID id="302" name="lacute"/> - <GlyphID id="303" name="Lcommaaccent"/> - <GlyphID id="304" name="lcommaaccent"/> - <GlyphID id="305" name="Lcaron"/> - <GlyphID id="306" name="lcaron"/> - <GlyphID id="307" name="Ldot"/> - <GlyphID id="308" name="ldot"/> - <GlyphID id="309" name="Lslash"/> - <GlyphID id="310" name="lslash"/> - <GlyphID id="311" name="Nacute"/> - <GlyphID id="312" name="nacute"/> - <GlyphID id="313" name="Ncommaaccent"/> - <GlyphID id="314" name="ncommaaccent"/> - <GlyphID id="315" name="Ncaron"/> - <GlyphID id="316" name="ncaron"/> - <GlyphID id="317" name="napostrophe"/> - <GlyphID id="318" name="Eng"/> - <GlyphID id="319" name="eng"/> - <GlyphID id="320" name="Omacron"/> - <GlyphID id="321" name="omacron"/> - <GlyphID id="322" name="Obreve"/> - <GlyphID id="323" name="obreve"/> - <GlyphID id="324" name="Ohungarumlaut"/> - <GlyphID id="325" name="ohungarumlaut"/> - <GlyphID id="326" name="Racute"/> - <GlyphID id="327" name="racute"/> - <GlyphID id="328" name="Rcommaaccent"/> - <GlyphID id="329" name="rcommaaccent"/> - <GlyphID id="330" name="Rcaron"/> - <GlyphID id="331" name="rcaron"/> - <GlyphID id="332" name="Sacute"/> - <GlyphID id="333" name="sacute"/> - <GlyphID id="334" name="Scircumflex"/> - <GlyphID id="335" name="scircumflex"/> - <GlyphID id="336" name="Scedilla"/> - <GlyphID id="337" name="scedilla"/> - <GlyphID id="338" name="Scaron"/> - <GlyphID id="339" name="scaron"/> - <GlyphID id="340" name="Tcommaaccent"/> - <GlyphID id="341" name="tcommaaccent"/> - <GlyphID id="342" name="Tcaron"/> - <GlyphID id="343" name="tcaron"/> - <GlyphID id="344" name="Tbar"/> - <GlyphID id="345" name="tbar"/> - <GlyphID id="346" name="Utilde"/> - <GlyphID id="347" name="utilde"/> - <GlyphID id="348" name="Umacron"/> - <GlyphID id="349" name="umacron"/> - <GlyphID id="350" name="Ubreve"/> - <GlyphID id="351" name="ubreve"/> - <GlyphID id="352" name="Uring"/> - <GlyphID id="353" name="uring"/> - <GlyphID id="354" name="Uhungarumlaut"/> - <GlyphID id="355" name="uhungarumlaut"/> - <GlyphID id="356" name="Uogonek"/> - <GlyphID id="357" name="uogonek"/> - <GlyphID id="358" name="Wcircumflex"/> - <GlyphID id="359" name="wcircumflex"/> - <GlyphID id="360" name="Ycircumflex"/> - <GlyphID id="361" name="ycircumflex"/> - <GlyphID id="362" name="Zacute"/> - <GlyphID id="363" name="zacute"/> - <GlyphID id="364" name="Zdotaccent"/> - <GlyphID id="365" name="zdotaccent"/> - <GlyphID id="366" name="Zcaron"/> - <GlyphID id="367" name="zcaron"/> - <GlyphID id="368" name="longs"/> - <GlyphID id="369" name="Scommaaccent"/> - <GlyphID id="370" name="scommaaccent"/> - <GlyphID id="371" name="Tcommabelow"/> - <GlyphID id="372" name="tcommabelow"/> - <GlyphID id="373" name="Unterkomma"/> - <GlyphID id="374" name="semicolon#1"/> - <GlyphID id="375" name="anoteleia"/> - <GlyphID id="376" name="hyphen#1"/> - <GlyphID id="377" name="nbhyphen"/> - <GlyphID id="378" name="figuredash"/> - <GlyphID id="379" name="afii00208"/> - <GlyphID id="380" name="quotereversed"/> - <GlyphID id="381" name="radicalex"/> - <GlyphID id="382" name="estimated"/> - <GlyphID id="383" name="minus"/> - <GlyphID id="384" name="fraction#1"/> - <GlyphID id="385" name="dotmath"/> - <GlyphID id="386" name="fi#1"/> - <GlyphID id="387" name="fl#1"/> - <GlyphID id="388" name="foursuperiour"/> - <GlyphID id="389" name="dotlessj"/> - <GlyphID id="390" name=".notdef#18"/> - </GlyphOrder> - - <head> - <!-- Most of this table will be recalculated by the compiler --> - <tableVersion value="1.0"/> - <fontRevision value="1.19999694824"/> - <checkSumAdjustment value="0x78bacbf6"/> - <magicNumber value="0x5f0f3cf5"/> - <flags value="00000000 00001111"/> - <unitsPerEm value="2048"/> - <created value="Fri Oct 12 14:06:12 2001"/> - <modified value="Fri Oct 12 11:04:28 2001"/> - <xMin value="-441"/> - <yMin value="-432"/> - <xMax value="2024"/> - <yMax value="2033"/> - <macStyle value="00000000 00000000"/> - <lowestRecPPEM value="12"/> - <fontDirectionHint value="2"/> - <indexToLocFormat value="0"/> - <glyphDataFormat value="0"/> - </head> - - <hhea> - <tableVersion value="1.0"/> - <ascent value="2033"/> - <descent value="-432"/> - <lineGap value="0"/> - <advanceWidthMax value="2079"/> - <minLeftSideBearing value="-441"/> - <minRightSideBearing value="-440"/> - <xMaxExtent value="2024"/> - <caretSlopeRise value="1"/> - <caretSlopeRun value="0"/> - <caretOffset value="0"/> - <reserved0 value="0"/> - <reserved1 value="0"/> - <reserved2 value="0"/> - <reserved3 value="0"/> - <metricDataFormat value="0"/> - <numberOfHMetrics value="391"/> - </hhea> - - <maxp> - <!-- Most of this table will be recalculated by the compiler --> - <tableVersion value="0x10000"/> - <numGlyphs value="391"/> - <maxPoints value="82"/> - <maxContours value="7"/> - <maxCompositePoints value="75"/> - <maxCompositeContours value="4"/> - <maxZones value="2"/> - <maxTwilightPoints value="4"/> - <maxStorage value="0"/> - <maxFunctionDefs value="15"/> - <maxInstructionDefs value="0"/> - <maxStackElements value="2048"/> - <maxSizeOfInstructions value="183"/> - <maxComponentElements value="2"/> - <maxComponentDepth value="1"/> - </maxp> - - <OS_2> - <version value="2"/> - <xAvgCharWidth value="904"/> - <usWeightClass value="400"/> - <usWidthClass value="5"/> - <fsType value="00000000 00000000"/> - <ySubscriptXSize value="1434"/> - <ySubscriptYSize value="1331"/> - <ySubscriptXOffset value="0"/> - <ySubscriptYOffset value="283"/> - <ySuperscriptXSize value="1434"/> - <ySuperscriptYSize value="1331"/> - <ySuperscriptXOffset value="0"/> - <ySuperscriptYOffset value="977"/> - <yStrikeoutSize value="0"/> - <yStrikeoutPosition value="0"/> - <sFamilyClass value="2048"/> - <panose> - <bFamilyType value="2"/> - <bSerifStyle value="11"/> - <bWeight value="6"/> - <bProportion value="0"/> - <bContrast value="0"/> - <bStrokeVariation value="0"/> - <bArmStyle value="0"/> - <bLetterForm value="0"/> - <bMidline value="0"/> - <bXHeight value="0"/> - </panose> - <ulUnicodeRange1 value="00000000 00000000 00000000 00000111"/> - <ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/> - <ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/> - <ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/> - <achVendID value="B&H "/> - <fsSelection value="00000000 01000000"/> - <fsFirstCharIndex value="32"/> - <fsLastCharIndex value="64258"/> - <sTypoAscender value="1604"/> - <sTypoDescender value="-420"/> - <sTypoLineGap value="167"/> - <usWinAscent value="1935"/> - <usWinDescent value="432"/> - <ulCodePageRange1 value="00000000 00000000 00000000 10010011"/> - <ulCodePageRange2 value="00000000 00000000 00000000 00000000"/> - <sxHeight value="0"/> - <sCapHeight value="0"/> - <usDefaultChar value="0"/> - <usBreakChar value="0"/> - <usMaxContex value="0"/> - </OS_2> - - <hmtx> - <mtx name=".notdef" width="569" lsb="57"/> - <mtx name=".notdef#1" width="0" lsb="0"/> - <mtx name=".notdef#10" width="569" lsb="0"/> - <mtx name=".notdef#11" width="569" lsb="0"/> - <mtx name=".notdef#12" width="569" lsb="0"/> - <mtx name=".notdef#13" width="569" lsb="0"/> - <mtx name=".notdef#14" width="569" lsb="0"/> - <mtx name=".notdef#15" width="569" lsb="0"/> - <mtx name=".notdef#16" width="1139" lsb="0"/> - <mtx name=".notdef#17" width="569" lsb="0"/> - <mtx name=".notdef#18" width="569" lsb="0"/> - <mtx name=".notdef#2" width="569" lsb="0"/> - <mtx name=".notdef#3" width="569" lsb="0"/> - <mtx name=".notdef#4" width="569" lsb="0"/> - <mtx name=".notdef#5" width="569" lsb="0"/> - <mtx name=".notdef#6" width="569" lsb="0"/> - <mtx name=".notdef#7" width="569" lsb="0"/> - <mtx name=".notdef#8" width="569" lsb="0"/> - <mtx name=".notdef#9" width="569" lsb="0"/> - <mtx name="A" width="1366" lsb="19"/> - <mtx name="AE" width="2048" lsb="19"/> - <mtx name="Aacute" width="1366" lsb="19"/> - <mtx name="Abreve" width="1371" lsb="21"/> - <mtx name="Acircumflex" width="1366" lsb="19"/> - <mtx name="Adieresis" width="1366" lsb="19"/> - <mtx name="Agrave" width="1366" lsb="19"/> - <mtx name="Amacron" width="1371" lsb="21"/> - <mtx name="Aogonek" width="1366" lsb="19"/> - <mtx name="Aring" width="1366" lsb="19"/> - <mtx name="Atilde" width="1366" lsb="19"/> - <mtx name="B" width="1366" lsb="165"/> - <mtx name="C" width="1479" lsb="116"/> - <mtx name="Cacute" width="1479" lsb="116"/> - <mtx name="Ccaron" width="1479" lsb="116"/> - <mtx name="Ccedilla" width="1479" lsb="116"/> - <mtx name="Ccircumflex" width="1479" lsb="116"/> - <mtx name="Cdotaccent" width="1479" lsb="116"/> - <mtx name="D" width="1479" lsb="165"/> - <mtx name="Dcaron" width="1479" lsb="165"/> - <mtx name="Dcroat" width="1479" lsb="5"/> - <mtx name="E" width="1366" lsb="191"/> - <mtx name="Eacute" width="1366" lsb="191"/> - <mtx name="Ebreve" width="1366" lsb="191"/> - <mtx name="Ecaron" width="1366" lsb="191"/> - <mtx name="Ecircumflex" width="1366" lsb="191"/> - <mtx name="Edieresis" width="1366" lsb="191"/> - <mtx name="Edotaccent" width="1366" lsb="191"/> - <mtx name="Egrave" width="1366" lsb="191"/> - <mtx name="Emacron" width="1366" lsb="191"/> - <mtx name="Eng" width="1479" lsb="165"/> - <mtx name="Eogonek" width="1366" lsb="191"/> - <mtx name="Eth" width="1479" lsb="5"/> - <mtx name="Euro" width="1139" lsb="0"/> - <mtx name="Euro#1" width="1139" lsb="0"/> - <mtx name="F" width="1251" lsb="191"/> - <mtx name="G" width="1593" lsb="93"/> - <mtx name="Gbreve" width="1593" lsb="93"/> - <mtx name="Gcircumflex" width="1593" lsb="93"/> - <mtx name="Gcommaaccent" width="1593" lsb="93"/> - <mtx name="Gdotaccent" width="1593" lsb="93"/> - <mtx name="H" width="1479" lsb="165"/> - <mtx name="Hbar" width="1479" lsb="17"/> - <mtx name="Hcircumflex" width="1479" lsb="165"/> - <mtx name="I" width="569" lsb="180"/> - <mtx name="IJ" width="1505" lsb="180"/> - <mtx name="Iacute" width="569" lsb="137"/> - <mtx name="Ibreve" width="569" lsb="-48"/> - <mtx name="Icircumflex" width="569" lsb="-65"/> - <mtx name="Idieresis" width="569" lsb="1"/> - <mtx name="Idotaccent" width="569" lsb="180"/> - <mtx name="Igrave" width="569" lsb="-36"/> - <mtx name="Imacron" width="569" lsb="-36"/> - <mtx name="Iogonek" width="569" lsb="120"/> - <mtx name="Itilde" width="569" lsb="-48"/> - <mtx name="J" width="1024" lsb="49"/> - <mtx name="Jcircumflex" width="1024" lsb="49"/> - <mtx name="K" width="1366" lsb="191"/> - <mtx name="Kcommaaccent" width="1366" lsb="191"/> - <mtx name="L" width="1139" lsb="165"/> - <mtx name="Lacute" width="1139" lsb="165"/> - <mtx name="Lcaron" width="1139" lsb="165"/> - <mtx name="Lcommaaccent" width="1139" lsb="165"/> - <mtx name="Ldot" width="1139" lsb="165"/> - <mtx name="Lslash" width="1139" lsb="17"/> - <mtx name="M" width="1706" lsb="165"/> - <mtx name="N" width="1479" lsb="165"/> - <mtx name="Nacute" width="1479" lsb="165"/> - <mtx name="Ncaron" width="1479" lsb="165"/> - <mtx name="Ncommaaccent" width="1479" lsb="165"/> - <mtx name="Ntilde" width="1479" lsb="165"/> - <mtx name="O" width="1593" lsb="93"/> - <mtx name="OE" width="2048" lsb="93"/> - <mtx name="Oacute" width="1593" lsb="92"/> - <mtx name="Obreve" width="1593" lsb="93"/> - <mtx name="Ocircumflex" width="1593" lsb="92"/> - <mtx name="Odieresis" width="1593" lsb="92"/> - <mtx name="Ograve" width="1593" lsb="92"/> - <mtx name="Ohungarumlaut" width="1593" lsb="93"/> - <mtx name="Omacron" width="1593" lsb="93"/> - <mtx name="Oslash" width="1593" lsb="93"/> - <mtx name="Otilde" width="1593" lsb="92"/> - <mtx name="P" width="1366" lsb="167"/> - <mtx name="Q" width="1593" lsb="93"/> - <mtx name="R" width="1479" lsb="165"/> - <mtx name="Racute" width="1479" lsb="165"/> - <mtx name="Rcaron" width="1479" lsb="165"/> - <mtx name="Rcommaaccent" width="1479" lsb="165"/> - <mtx name="S" width="1366" lsb="120"/> - <mtx name="Sacute" width="1366" lsb="120"/> - <mtx name="Scaron" width="1366" lsb="120"/> - <mtx name="Scedilla" width="1366" lsb="120"/> - <mtx name="Scircumflex" width="1366" lsb="120"/> - <mtx name="Scommaaccent" width="1366" lsb="120"/> - <mtx name="T" width="1251" lsb="20"/> - <mtx name="Tbar" width="1251" lsb="20"/> - <mtx name="Tcaron" width="1251" lsb="20"/> - <mtx name="Tcommaaccent" width="1251" lsb="20"/> - <mtx name="Tcommabelow" width="1251" lsb="20"/> - <mtx name="Thorn" width="1366" lsb="167"/> - <mtx name="U" width="1479" lsb="166"/> - <mtx name="Uacute" width="1479" lsb="166"/> - <mtx name="Ubreve" width="1479" lsb="166"/> - <mtx name="Ucircumflex" width="1479" lsb="166"/> - <mtx name="Udieresis" width="1479" lsb="166"/> - <mtx name="Ugrave" width="1479" lsb="166"/> - <mtx name="Uhungarumlaut" width="1479" lsb="166"/> - <mtx name="Umacron" width="1479" lsb="166"/> - <mtx name="Unterkomma" width="682" lsb="170"/> - <mtx name="Uogonek" width="1479" lsb="166"/> - <mtx name="Uring" width="1479" lsb="166"/> - <mtx name="Utilde" width="1479" lsb="166"/> - <mtx name="V" width="1366" lsb="36"/> - <mtx name="W" width="1933" lsb="25"/> - <mtx name="Wcircumflex" width="1933" lsb="25"/> - <mtx name="X" width="1366" lsb="28"/> - <mtx name="Y" width="1366" lsb="30"/> - <mtx name="Yacute" width="1366" lsb="30"/> - <mtx name="Ycircumflex" width="1366" lsb="30"/> - <mtx name="Ydieresis" width="1366" lsb="30"/> - <mtx name="Z" width="1251" lsb="101"/> - <mtx name="Zacute" width="1251" lsb="101"/> - <mtx name="Zcaron" width="1251" lsb="101"/> - <mtx name="Zdotaccent" width="1251" lsb="101"/> - <mtx name="a" width="1139" lsb="95"/> - <mtx name="aacute" width="1139" lsb="95"/> - <mtx name="abreve" width="1153" lsb="105"/> - <mtx name="acircumflex" width="1139" lsb="95"/> - <mtx name="acute" width="682" lsb="107"/> - <mtx name="adieresis" width="1139" lsb="95"/> - <mtx name="ae" width="1821" lsb="95"/> - <mtx name="afii00208" width="2048" lsb="99"/> - <mtx name="agrave" width="1139" lsb="95"/> - <mtx name="amacron" width="1153" lsb="105"/> - <mtx name="ampersand" width="1366" lsb="56"/> - <mtx name="anoteleia" width="569" lsb="161"/> - <mtx name="aogonek" width="1139" lsb="95"/> - <mtx name="aring" width="1139" lsb="95"/> - <mtx name="asciicircum" width="960" lsb="36"/> - <mtx name="asciitilde" width="1196" lsb="104"/> - <mtx name="asterisk" width="797" lsb="39"/> - <mtx name="at" width="2079" lsb="253"/> - <mtx name="atilde" width="1139" lsb="95"/> - <mtx name="b" width="1139" lsb="154"/> - <mtx name="backslash" width="569" lsb="-59"/> - <mtx name="bar" width="532" lsb="192"/> - <mtx name="braceleft" width="684" lsb="25"/> - <mtx name="braceright" width="684" lsb="116"/> - <mtx name="bracketleft" width="569" lsb="149"/> - <mtx name="bracketright" width="569" lsb="26"/> - <mtx name="breve" width="682" lsb="8"/> - <mtx name="brokenbar" width="532" lsb="192"/> - <mtx name="bullet" width="717" lsb="81"/> - <mtx name="c" width="1024" lsb="86"/> - <mtx name="cacute" width="1024" lsb="86"/> - <mtx name="caron" width="682" lsb="-9"/> - <mtx name="ccaron" width="1024" lsb="86"/> - <mtx name="ccedilla" width="1024" lsb="86"/> - <mtx name="ccircumflex" width="1024" lsb="86"/> - <mtx name="cdotaccent" width="1024" lsb="86"/> - <mtx name="cedilla" width="682" lsb="168"/> - <mtx name="cent" width="1139" lsb="173"/> - <mtx name="circumflex" width="682" lsb="-9"/> - <mtx name="colon" width="569" lsb="186"/> - <mtx name="comma" width="569" lsb="161"/> - <mtx name="copyright" width="1509" lsb="15"/> - <mtx name="currency" width="1139" lsb="122"/> - <mtx name="d" width="1139" lsb="86"/> - <mtx name="dagger" width="1139" lsb="150"/> - <mtx name="daggerdbl" width="1139" lsb="150"/> - <mtx name="dcaron" width="1259" lsb="86"/> - <mtx name="dcroat" width="1139" lsb="86"/> - <mtx name="degree" width="819" lsb="114"/> - <mtx name="dieresis" width="682" lsb="57"/> - <mtx name="divide" width="1196" lsb="104"/> - <mtx name="dollar" width="1139" lsb="103"/> - <mtx name="dotaccent" width="682" lsb="242"/> - <mtx name="dotlessi" width="455" lsb="129"/> - <mtx name="dotlessj" width="455" lsb="-155"/> - <mtx name="dotmath" width="569" lsb="161"/> - <mtx name="e" width="1139" lsb="86"/> - <mtx name="eacute" width="1139" lsb="86"/> - <mtx name="ebreve" width="1139" lsb="86"/> - <mtx name="ecaron" width="1139" lsb="86"/> - <mtx name="ecircumflex" width="1139" lsb="86"/> - <mtx name="edieresis" width="1139" lsb="86"/> - <mtx name="edotaccent" width="1139" lsb="86"/> - <mtx name="egrave" width="1139" lsb="86"/> - <mtx name="eight" width="1139" lsb="99"/> - <mtx name="ellipsis" width="2048" lsb="247"/> - <mtx name="emacron" width="1139" lsb="86"/> - <mtx name="emdash" width="2048" lsb="99"/> - <mtx name="endash" width="1139" lsb="101"/> - <mtx name="eng" width="1139" lsb="154"/> - <mtx name="eogonek" width="1139" lsb="86"/> - <mtx name="equal" width="1196" lsb="104"/> - <mtx name="estimated" width="1139" lsb="86"/> - <mtx name="eth" width="1139" lsb="86"/> - <mtx name="exclam" width="569" lsb="186"/> - <mtx name="exclamdown" width="682" lsb="242"/> - <mtx name="f" width="569" lsb="31"/> - <mtx name="fi" width="1024" lsb="31"/> - <mtx name="fi#1" width="1024" lsb="31"/> - <mtx name="figuredash" width="1139" lsb="101"/> - <mtx name="five" width="1139" lsb="163"/> - <mtx name="fl" width="1024" lsb="31"/> - <mtx name="fl#1" width="1024" lsb="31"/> - <mtx name="florin" width="1139" lsb="49"/> - <mtx name="four" width="1139" lsb="31"/> - <mtx name="foursuperiour" width="682" lsb="3"/> - <mtx name="fraction" width="342" lsb="-441"/> - <mtx name="fraction#1" width="342" lsb="-441"/> - <mtx name="g" width="1139" lsb="93"/> - <mtx name="gbreve" width="1139" lsb="93"/> - <mtx name="gcircumflex" width="1139" lsb="93"/> - <mtx name="gcommaaccent" width="1139" lsb="93"/> - <mtx name="gdotaccent" width="1139" lsb="93"/> - <mtx name="germandbls" width="1251" lsb="129"/> - <mtx name="grave" width="682" lsb="106"/> - <mtx name="greater" width="1196" lsb="104"/> - <mtx name="guillemotleft" width="1139" lsb="115"/> - <mtx name="guillemotright" width="1139" lsb="136"/> - <mtx name="guilsinglleft" width="682" lsb="74"/> - <mtx name="guilsinglright" width="682" lsb="114"/> - <mtx name="h" width="1139" lsb="154"/> - <mtx name="hbar" width="1139" lsb="6"/> - <mtx name="hcircumflex" width="1139" lsb="154"/> - <mtx name="hungarumlaut" width="682" lsb="-51"/> - <mtx name="hyphen" width="682" lsb="88"/> - <mtx name="hyphen#1" width="682" lsb="88"/> - <mtx name="i" width="455" lsb="129"/> - <mtx name="iacute" width="455" lsb="79"/> - <mtx name="ibreve" width="455" lsb="-106"/> - <mtx name="icircumflex" width="455" lsb="-123"/> - <mtx name="idieresis" width="455" lsb="-56"/> - <mtx name="igrave" width="455" lsb="-94"/> - <mtx name="ij" width="909" lsb="129"/> - <mtx name="imacron" width="455" lsb="-94"/> - <mtx name="iogonek" width="455" lsb="61"/> - <mtx name="itilde" width="455" lsb="-106"/> - <mtx name="j" width="455" lsb="-155"/> - <mtx name="jcircumflex" width="455" lsb="-155"/> - <mtx name="k" width="1024" lsb="154"/> - <mtx name="kcommaaccent" width="1024" lsb="154"/> - <mtx name="kgreenlandic" width="1024" lsb="154"/> - <mtx name="l" width="455" lsb="129"/> - <mtx name="lacute" width="455" lsb="79"/> - <mtx name="lcaron" width="597" lsb="129"/> - <mtx name="lcommaaccent" width="455" lsb="79"/> - <mtx name="ldot" width="684" lsb="129"/> - <mtx name="less" width="1196" lsb="104"/> - <mtx name="logicalnot" width="1196" lsb="86"/> - <mtx name="longs" width="455" lsb="8"/> - <mtx name="lslash" width="455" lsb="-7"/> - <mtx name="m" width="1706" lsb="154"/> - <mtx name="macron" width="682" lsb="20"/> - <mtx name="macron#1" width="1139" lsb="99"/> - <mtx name="minus" width="1196" lsb="104"/> - <mtx name="mu" width="1139" lsb="142"/> - <mtx name="multiply" width="1196" lsb="118"/> - <mtx name="n" width="1139" lsb="154"/> - <mtx name="nacute" width="1139" lsb="154"/> - <mtx name="napostrophe" width="1237" lsb="0"/> - <mtx name="nbhyphen" width="682" lsb="88"/> - <mtx name="ncaron" width="1139" lsb="154"/> - <mtx name="ncommaaccent" width="1139" lsb="154"/> - <mtx name="nine" width="1139" lsb="84"/> - <mtx name="nonbreakingspace" width="569" lsb="0"/> - <mtx name="ntilde" width="1139" lsb="154"/> - <mtx name="numbersign" width="1139" lsb="25"/> - <mtx name="o" width="1139" lsb="86"/> - <mtx name="oacute" width="1139" lsb="86"/> - <mtx name="obreve" width="1139" lsb="86"/> - <mtx name="ocircumflex" width="1139" lsb="86"/> - <mtx name="odieresis" width="1139" lsb="86"/> - <mtx name="oe" width="1933" lsb="86"/> - <mtx name="ogonek" width="682" lsb="170"/> - <mtx name="ograve" width="1139" lsb="86"/> - <mtx name="ohungarumlaut" width="1139" lsb="86"/> - <mtx name="omacron" width="1139" lsb="86"/> - <mtx name="one" width="1139" lsb="230"/> - <mtx name="onehalf" width="1708" lsb="116"/> - <mtx name="onequarter" width="1708" lsb="116"/> - <mtx name="onesuperior" width="682" lsb="123"/> - <mtx name="ordfeminine" width="758" lsb="86"/> - <mtx name="ordmasculine" width="748" lsb="74"/> - <mtx name="oslash" width="1251" lsb="143"/> - <mtx name="otilde" width="1139" lsb="86"/> - <mtx name="p" width="1139" lsb="154"/> - <mtx name="paragraph" width="1100" lsb="88"/> - <mtx name="parenleft" width="682" lsb="131"/> - <mtx name="parenright" width="682" lsb="82"/> - <mtx name="percent" width="1821" lsb="112"/> - <mtx name="period" width="569" lsb="161"/> - <mtx name="periodcentered" width="569" lsb="161"/> - <mtx name="periodcentered#1" width="569" lsb="161"/> - <mtx name="perthousand" width="2048" lsb="25"/> - <mtx name="plus" width="1196" lsb="104"/> - <mtx name="plusminus" width="1196" lsb="104"/> - <mtx name="q" width="1139" lsb="86"/> - <mtx name="question" width="1139" lsb="138"/> - <mtx name="questiondown" width="1251" lsb="185"/> - <mtx name="quotedbl" width="727" lsb="92"/> - <mtx name="quotedblbase" width="682" lsb="70"/> - <mtx name="quotedblleft" width="682" lsb="57"/> - <mtx name="quotedblright" width="682" lsb="82"/> - <mtx name="quoteleft" width="455" lsb="92"/> - <mtx name="quotereversed" width="569" lsb="0"/> - <mtx name="quoteright" width="455" lsb="116"/> - <mtx name="quotesinglbase" width="455" lsb="104"/> - <mtx name="quotesingle" width="391" lsb="72"/> - <mtx name="r" width="682" lsb="154"/> - <mtx name="racute" width="682" lsb="154"/> - <mtx name="radicalex" width="1139" lsb="99"/> - <mtx name="rcaron" width="682" lsb="2"/> - <mtx name="rcommaaccent" width="682" lsb="154"/> - <mtx name="registered" width="1509" lsb="15"/> - <mtx name="ring" width="682" lsb="114"/> - <mtx name="s" width="1024" lsb="116"/> - <mtx name="sacute" width="1024" lsb="116"/> - <mtx name="scaron" width="1024" lsb="116"/> - <mtx name="scedilla" width="1024" lsb="116"/> - <mtx name="scircumflex" width="1024" lsb="116"/> - <mtx name="scommaaccent" width="1024" lsb="116"/> - <mtx name="section" width="1139" lsb="129"/> - <mtx name="semicolon" width="569" lsb="186"/> - <mtx name="semicolon#1" width="569" lsb="186"/> - <mtx name="seven" width="1139" lsb="136"/> - <mtx name="sfthyphen" width="682" lsb="88"/> - <mtx name="six" width="1139" lsb="84"/> - <mtx name="slash" width="569" lsb="-59"/> - <mtx name="space" width="569" lsb="0"/> - <mtx name="sterling" width="1139" lsb="121"/> - <mtx name="t" width="569" lsb="29"/> - <mtx name="tbar" width="569" lsb="29"/> - <mtx name="tcaron" width="768" lsb="29"/> - <mtx name="tcommaaccent" width="569" lsb="29"/> - <mtx name="tcommabelow" width="569" lsb="29"/> - <mtx name="thorn" width="1139" lsb="154"/> - <mtx name="three" width="1139" lsb="153"/> - <mtx name="threequarters" width="1708" lsb="111"/> - <mtx name="threesuperior" width="682" lsb="74"/> - <mtx name="tilde" width="682" lsb="8"/> - <mtx name="trademark" width="2048" lsb="222"/> - <mtx name="two" width="1139" lsb="102"/> - <mtx name="twosuperior" width="682" lsb="74"/> - <mtx name="u" width="1139" lsb="142"/> - <mtx name="uacute" width="1139" lsb="142"/> - <mtx name="ubreve" width="1139" lsb="142"/> - <mtx name="ucircumflex" width="1139" lsb="142"/> - <mtx name="udieresis" width="1139" lsb="142"/> - <mtx name="ugrave" width="1139" lsb="142"/> - <mtx name="uhungarumlaut" width="1139" lsb="142"/> - <mtx name="umacron" width="1139" lsb="142"/> - <mtx name="underscore" width="1139" lsb="0"/> - <mtx name="uogonek" width="1139" lsb="142"/> - <mtx name="uring" width="1139" lsb="142"/> - <mtx name="utilde" width="1139" lsb="142"/> - <mtx name="v" width="1024" lsb="19"/> - <mtx name="w" width="1479" lsb="11"/> - <mtx name="wcircumflex" width="1479" lsb="11"/> - <mtx name="x" width="1024" lsb="28"/> - <mtx name="y" width="1024" lsb="19"/> - <mtx name="yacute" width="1024" lsb="19"/> - <mtx name="ycircumflex" width="1024" lsb="19"/> - <mtx name="ydieresis" width="1024" lsb="19"/> - <mtx name="yen" width="1139" lsb="25"/> - <mtx name="z" width="1024" lsb="74"/> - <mtx name="zacute" width="1024" lsb="74"/> - <mtx name="zcaron" width="1024" lsb="74"/> - <mtx name="zdotaccent" width="1024" lsb="74"/> - <mtx name="zero" width="1139" lsb="80"/> - </hmtx> - - <cmap> - <tableVersion version="0"/> - <cmap_format_0 platformID="1" platEncID="0" language="0"> - <map code="0x0" name=".notdef#1"/> - <map code="0x1" name=".notdef"/> - <map code="0x2" name=".notdef"/> - <map code="0x3" name=".notdef"/> - <map code="0x4" name=".notdef"/> - <map code="0x5" name=".notdef"/> - <map code="0x6" name=".notdef"/> - <map code="0x7" name=".notdef"/> - <map code="0x8" name=".notdef#1"/> - <map code="0x9" name="space"/> - <map code="0xa" name=".notdef"/> - <map code="0xb" name=".notdef"/> - <map code="0xc" name=".notdef"/> - <map code="0xd" name=".notdef#2"/> - <map code="0xe" name=".notdef"/> - <map code="0xf" name=".notdef"/> - <map code="0x10" name=".notdef"/> - <map code="0x11" name=".notdef"/> - <map code="0x12" name=".notdef"/> - <map code="0x13" name=".notdef"/> - <map code="0x14" name=".notdef"/> - <map code="0x15" name=".notdef"/> - <map code="0x16" name=".notdef"/> - <map code="0x17" name=".notdef"/> - <map code="0x18" name=".notdef"/> - <map code="0x19" name=".notdef"/> - <map code="0x1a" name=".notdef"/> - <map code="0x1b" name=".notdef"/> - <map code="0x1c" name=".notdef"/> - <map code="0x1d" name=".notdef#1"/> - <map code="0x1e" name=".notdef"/> - <map code="0x1f" name=".notdef"/> - <map code="0x20" name="space"/> - <map code="0x21" name="exclam"/> - <map code="0x22" name="quotedbl"/> - <map code="0x23" name="numbersign"/> - <map code="0x24" name="dollar"/> - <map code="0x25" name="percent"/> - <map code="0x26" name="ampersand"/> - <map code="0x27" name="quotesingle"/> - <map code="0x28" name="parenleft"/> - <map code="0x29" name="parenright"/> - <map code="0x2a" name="asterisk"/> - <map code="0x2b" name="plus"/> - <map code="0x2c" name="comma"/> - <map code="0x2d" name="hyphen"/> - <map code="0x2e" name="period"/> - <map code="0x2f" name="slash"/> - <map code="0x30" name="zero"/> - <map code="0x31" name="one"/> - <map code="0x32" name="two"/> - <map code="0x33" name="three"/> - <map code="0x34" name="four"/> - <map code="0x35" name="five"/> - <map code="0x36" name="six"/> - <map code="0x37" name="seven"/> - <map code="0x38" name="eight"/> - <map code="0x39" name="nine"/> - <map code="0x3a" name="colon"/> - <map code="0x3b" name="semicolon"/> - <map code="0x3c" name="less"/> - <map code="0x3d" name="equal"/> - <map code="0x3e" name="greater"/> - <map code="0x3f" name="question"/> - <map code="0x40" name="at"/> - <map code="0x41" name="A"/> - <map code="0x42" name="B"/> - <map code="0x43" name="C"/> - <map code="0x44" name="D"/> - <map code="0x45" name="E"/> - <map code="0x46" name="F"/> - <map code="0x47" name="G"/> - <map code="0x48" name="H"/> - <map code="0x49" name="I"/> - <map code="0x4a" name="J"/> - <map code="0x4b" name="K"/> - <map code="0x4c" name="L"/> - <map code="0x4d" name="M"/> - <map code="0x4e" name="N"/> - <map code="0x4f" name="O"/> - <map code="0x50" name="P"/> - <map code="0x51" name="Q"/> - <map code="0x52" name="R"/> - <map code="0x53" name="S"/> - <map code="0x54" name="T"/> - <map code="0x55" name="U"/> - <map code="0x56" name="V"/> - <map code="0x57" name="W"/> - <map code="0x58" name="X"/> - <map code="0x59" name="Y"/> - <map code="0x5a" name="Z"/> - <map code="0x5b" name="bracketleft"/> - <map code="0x5c" name="backslash"/> - <map code="0x5d" name="bracketright"/> - <map code="0x5e" name="asciicircum"/> - <map code="0x5f" name="underscore"/> - <map code="0x60" name="grave"/> - <map code="0x61" name="a"/> - <map code="0x62" name="b"/> - <map code="0x63" name="c"/> - <map code="0x64" name="d"/> - <map code="0x65" name="e"/> - <map code="0x66" name="f"/> - <map code="0x67" name="g"/> - <map code="0x68" name="h"/> - <map code="0x69" name="i"/> - <map code="0x6a" name="j"/> - <map code="0x6b" name="k"/> - <map code="0x6c" name="l"/> - <map code="0x6d" name="m"/> - <map code="0x6e" name="n"/> - <map code="0x6f" name="o"/> - <map code="0x70" name="p"/> - <map code="0x71" name="q"/> - <map code="0x72" name="r"/> - <map code="0x73" name="s"/> - <map code="0x74" name="t"/> - <map code="0x75" name="u"/> - <map code="0x76" name="v"/> - <map code="0x77" name="w"/> - <map code="0x78" name="x"/> - <map code="0x79" name="y"/> - <map code="0x7a" name="z"/> - <map code="0x7b" name="braceleft"/> - <map code="0x7c" name="bar"/> - <map code="0x7d" name="braceright"/> - <map code="0x7e" name="asciitilde"/> - <map code="0x7f" name=".notdef"/> - <map code="0x80" name="Adieresis"/> - <map code="0x81" name="Aring"/> - <map code="0x82" name="Ccedilla"/> - <map code="0x83" name="Eacute"/> - <map code="0x84" name="Ntilde"/> - <map code="0x85" name="Odieresis"/> - <map code="0x86" name="Udieresis"/> - <map code="0x87" name="aacute"/> - <map code="0x88" name="agrave"/> - <map code="0x89" name="acircumflex"/> - <map code="0x8a" name="adieresis"/> - <map code="0x8b" name="atilde"/> - <map code="0x8c" name="aring"/> - <map code="0x8d" name="ccedilla"/> - <map code="0x8e" name="eacute"/> - <map code="0x8f" name="egrave"/> - <map code="0x90" name="ecircumflex"/> - <map code="0x91" name="edieresis"/> - <map code="0x92" name="iacute"/> - <map code="0x93" name="igrave"/> - <map code="0x94" name="icircumflex"/> - <map code="0x95" name="idieresis"/> - <map code="0x96" name="ntilde"/> - <map code="0x97" name="oacute"/> - <map code="0x98" name="ograve"/> - <map code="0x99" name="ocircumflex"/> - <map code="0x9a" name="odieresis"/> - <map code="0x9b" name="otilde"/> - <map code="0x9c" name="uacute"/> - <map code="0x9d" name="ugrave"/> - <map code="0x9e" name="ucircumflex"/> - <map code="0x9f" name="udieresis"/> - <map code="0xa0" name="dagger"/> - <map code="0xa1" name="degree"/> - <map code="0xa2" name="cent"/> - <map code="0xa3" name="sterling"/> - <map code="0xa4" name="section"/> - <map code="0xa5" name="bullet"/> - <map code="0xa6" name="paragraph"/> - <map code="0xa7" name="germandbls"/> - <map code="0xa8" name="registered"/> - <map code="0xa9" name="copyright"/> - <map code="0xaa" name="trademark"/> - <map code="0xab" name="acute"/> - <map code="0xac" name="dieresis"/> - <map code="0xad" name=".notdef"/> - <map code="0xae" name="AE"/> - <map code="0xaf" name="Oslash"/> - <map code="0xb0" name=".notdef"/> - <map code="0xb1" name="plusminus"/> - <map code="0xb2" name=".notdef"/> - <map code="0xb3" name=".notdef"/> - <map code="0xb4" name="yen"/> - <map code="0xb5" name="mu"/> - <map code="0xb6" name=".notdef"/> - <map code="0xb7" name=".notdef"/> - <map code="0xb8" name=".notdef"/> - <map code="0xb9" name=".notdef"/> - <map code="0xba" name=".notdef"/> - <map code="0xbb" name="ordfeminine"/> - <map code="0xbc" name="ordmasculine"/> - <map code="0xbd" name=".notdef"/> - <map code="0xbe" name="ae"/> - <map code="0xbf" name="oslash"/> - <map code="0xc0" name="questiondown"/> - <map code="0xc1" name="exclamdown"/> - <map code="0xc2" name="logicalnot"/> - <map code="0xc3" name=".notdef"/> - <map code="0xc4" name="florin"/> - <map code="0xc5" name=".notdef"/> - <map code="0xc6" name=".notdef"/> - <map code="0xc7" name="guillemotleft"/> - <map code="0xc8" name="guillemotright"/> - <map code="0xc9" name="ellipsis"/> - <map code="0xca" name=".notdef#16"/> - <map code="0xcb" name="Agrave"/> - <map code="0xcc" name="Atilde"/> - <map code="0xcd" name="Otilde"/> - <map code="0xce" name="OE"/> - <map code="0xcf" name="oe"/> - <map code="0xd0" name="endash"/> - <map code="0xd1" name="emdash"/> - <map code="0xd2" name="quotedblleft"/> - <map code="0xd3" name="quotedblright"/> - <map code="0xd4" name="quoteleft"/> - <map code="0xd5" name="quoteright"/> - <map code="0xd6" name="divide"/> - <map code="0xd7" name=".notdef"/> - <map code="0xd8" name="ydieresis"/> - <map code="0xd9" name="Ydieresis"/> - <map code="0xda" name="fraction"/> - <map code="0xdb" name="currency"/> - <map code="0xdc" name="guilsinglleft"/> - <map code="0xdd" name="guilsinglright"/> - <map code="0xde" name="fi"/> - <map code="0xdf" name="fl"/> - <map code="0xe0" name="daggerdbl"/> - <map code="0xe1" name="periodcentered"/> - <map code="0xe2" name="quotesinglbase"/> - <map code="0xe3" name="quotedblbase"/> - <map code="0xe4" name="perthousand"/> - <map code="0xe5" name="Acircumflex"/> - <map code="0xe6" name="Ecircumflex"/> - <map code="0xe7" name="Aacute"/> - <map code="0xe8" name="Edieresis"/> - <map code="0xe9" name="Egrave"/> - <map code="0xea" name="Iacute"/> - <map code="0xeb" name="Icircumflex"/> - <map code="0xec" name="Idieresis"/> - <map code="0xed" name="Igrave"/> - <map code="0xee" name="Oacute"/> - <map code="0xef" name="Ocircumflex"/> - <map code="0xf0" name="Euro"/> - <map code="0xf1" name="Ograve"/> - <map code="0xf2" name="Uacute"/> - <map code="0xf3" name="Ucircumflex"/> - <map code="0xf4" name="Ugrave"/> - <map code="0xf5" name="dotlessi"/> - <map code="0xf6" name="circumflex"/> - <map code="0xf7" name="tilde"/> - <map code="0xf8" name="macron"/> - <map code="0xf9" name="breve"/> - <map code="0xfa" name="dotaccent"/> - <map code="0xfb" name="ring"/> - <map code="0xfc" name="cedilla"/> - <map code="0xfd" name="hungarumlaut"/> - <map code="0xfe" name="ogonek"/> - <map code="0xff" name="caron"/> - </cmap_format_0> - <cmap_format_4 platformID="3" platEncID="1" language="0"> - <map code="0x20" name="space"/><!-- SPACE --> - <map code="0x21" name="exclam"/><!-- EXCLAMATION MARK --> - <map code="0x22" name="quotedbl"/><!-- QUOTATION MARK --> - <map code="0x23" name="numbersign"/><!-- NUMBER SIGN --> - <map code="0x24" name="dollar"/><!-- DOLLAR SIGN --> - <map code="0x25" name="percent"/><!-- PERCENT SIGN --> - <map code="0x26" name="ampersand"/><!-- AMPERSAND --> - <map code="0x27" name="quotesingle"/><!-- APOSTROPHE --> - <map code="0x28" name="parenleft"/><!-- LEFT PARENTHESIS --> - <map code="0x29" name="parenright"/><!-- RIGHT PARENTHESIS --> - <map code="0x2a" name="asterisk"/><!-- ASTERISK --> - <map code="0x2b" name="plus"/><!-- PLUS SIGN --> - <map code="0x2c" name="comma"/><!-- COMMA --> - <map code="0x2d" name="hyphen"/><!-- HYPHEN-MINUS --> - <map code="0x2e" name="period"/><!-- FULL STOP --> - <map code="0x2f" name="slash"/><!-- SOLIDUS --> - <map code="0x30" name="zero"/><!-- DIGIT ZERO --> - <map code="0x31" name="one"/><!-- DIGIT ONE --> - <map code="0x32" name="two"/><!-- DIGIT TWO --> - <map code="0x33" name="three"/><!-- DIGIT THREE --> - <map code="0x34" name="four"/><!-- DIGIT FOUR --> - <map code="0x35" name="five"/><!-- DIGIT FIVE --> - <map code="0x36" name="six"/><!-- DIGIT SIX --> - <map code="0x37" name="seven"/><!-- DIGIT SEVEN --> - <map code="0x38" name="eight"/><!-- DIGIT EIGHT --> - <map code="0x39" name="nine"/><!-- DIGIT NINE --> - <map code="0x3a" name="colon"/><!-- COLON --> - <map code="0x3b" name="semicolon"/><!-- SEMICOLON --> - <map code="0x3c" name="less"/><!-- LESS-THAN SIGN --> - <map code="0x3d" name="equal"/><!-- EQUALS SIGN --> - <map code="0x3e" name="greater"/><!-- GREATER-THAN SIGN --> - <map code="0x3f" name="question"/><!-- QUESTION MARK --> - <map code="0x40" name="at"/><!-- COMMERCIAL AT --> - <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A --> - <map code="0x42" name="B"/><!-- LATIN CAPITAL LETTER B --> - <map code="0x43" name="C"/><!-- LATIN CAPITAL LETTER C --> - <map code="0x44" name="D"/><!-- LATIN CAPITAL LETTER D --> - <map code="0x45" name="E"/><!-- LATIN CAPITAL LETTER E --> - <map code="0x46" name="F"/><!-- LATIN CAPITAL LETTER F --> - <map code="0x47" name="G"/><!-- LATIN CAPITAL LETTER G --> - <map code="0x48" name="H"/><!-- LATIN CAPITAL LETTER H --> - <map code="0x49" name="I"/><!-- LATIN CAPITAL LETTER I --> - <map code="0x4a" name="J"/><!-- LATIN CAPITAL LETTER J --> - <map code="0x4b" name="K"/><!-- LATIN CAPITAL LETTER K --> - <map code="0x4c" name="L"/><!-- LATIN CAPITAL LETTER L --> - <map code="0x4d" name="M"/><!-- LATIN CAPITAL LETTER M --> - <map code="0x4e" name="N"/><!-- LATIN CAPITAL LETTER N --> - <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O --> - <map code="0x50" name="P"/><!-- LATIN CAPITAL LETTER P --> - <map code="0x51" name="Q"/><!-- LATIN CAPITAL LETTER Q --> - <map code="0x52" name="R"/><!-- LATIN CAPITAL LETTER R --> - <map code="0x53" name="S"/><!-- LATIN CAPITAL LETTER S --> - <map code="0x54" name="T"/><!-- LATIN CAPITAL LETTER T --> - <map code="0x55" name="U"/><!-- LATIN CAPITAL LETTER U --> - <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V --> - <map code="0x57" name="W"/><!-- LATIN CAPITAL LETTER W --> - <map code="0x58" name="X"/><!-- LATIN CAPITAL LETTER X --> - <map code="0x59" name="Y"/><!-- LATIN CAPITAL LETTER Y --> - <map code="0x5a" name="Z"/><!-- LATIN CAPITAL LETTER Z --> - <map code="0x5b" name="bracketleft"/><!-- LEFT SQUARE BRACKET --> - <map code="0x5c" name="backslash"/><!-- REVERSE SOLIDUS --> - <map code="0x5d" name="bracketright"/><!-- RIGHT SQUARE BRACKET --> - <map code="0x5e" name="asciicircum"/><!-- CIRCUMFLEX ACCENT --> - <map code="0x5f" name="underscore"/><!-- LOW LINE --> - <map code="0x60" name="grave"/><!-- GRAVE ACCENT --> - <map code="0x61" name="a"/><!-- LATIN SMALL LETTER A --> - <map code="0x62" name="b"/><!-- LATIN SMALL LETTER B --> - <map code="0x63" name="c"/><!-- LATIN SMALL LETTER C --> - <map code="0x64" name="d"/><!-- LATIN SMALL LETTER D --> - <map code="0x65" name="e"/><!-- LATIN SMALL LETTER E --> - <map code="0x66" name="f"/><!-- LATIN SMALL LETTER F --> - <map code="0x67" name="g"/><!-- LATIN SMALL LETTER G --> - <map code="0x68" name="h"/><!-- LATIN SMALL LETTER H --> - <map code="0x69" name="i"/><!-- LATIN SMALL LETTER I --> - <map code="0x6a" name="j"/><!-- LATIN SMALL LETTER J --> - <map code="0x6b" name="k"/><!-- LATIN SMALL LETTER K --> - <map code="0x6c" name="l"/><!-- LATIN SMALL LETTER L --> - <map code="0x6d" name="m"/><!-- LATIN SMALL LETTER M --> - <map code="0x6e" name="n"/><!-- LATIN SMALL LETTER N --> - <map code="0x6f" name="o"/><!-- LATIN SMALL LETTER O --> - <map code="0x70" name="p"/><!-- LATIN SMALL LETTER P --> - <map code="0x71" name="q"/><!-- LATIN SMALL LETTER Q --> - <map code="0x72" name="r"/><!-- LATIN SMALL LETTER R --> - <map code="0x73" name="s"/><!-- LATIN SMALL LETTER S --> - <map code="0x74" name="t"/><!-- LATIN SMALL LETTER T --> - <map code="0x75" name="u"/><!-- LATIN SMALL LETTER U --> - <map code="0x76" name="v"/><!-- LATIN SMALL LETTER V --> - <map code="0x77" name="w"/><!-- LATIN SMALL LETTER W --> - <map code="0x78" name="x"/><!-- LATIN SMALL LETTER X --> - <map code="0x79" name="y"/><!-- LATIN SMALL LETTER Y --> - <map code="0x7a" name="z"/><!-- LATIN SMALL LETTER Z --> - <map code="0x7b" name="braceleft"/><!-- LEFT CURLY BRACKET --> - <map code="0x7c" name="bar"/><!-- VERTICAL LINE --> - <map code="0x7d" name="braceright"/><!-- RIGHT CURLY BRACKET --> - <map code="0x7e" name="asciitilde"/><!-- TILDE --> - <map code="0x80" name="Euro#1"/><!-- <control> --> - <map code="0xa0" name="nonbreakingspace"/><!-- NO-BREAK SPACE --> - <map code="0xa1" name="exclamdown"/><!-- INVERTED EXCLAMATION MARK --> - <map code="0xa2" name="cent"/><!-- CENT SIGN --> - <map code="0xa3" name="sterling"/><!-- POUND SIGN --> - <map code="0xa4" name="currency"/><!-- CURRENCY SIGN --> - <map code="0xa5" name="yen"/><!-- YEN SIGN --> - <map code="0xa6" name="brokenbar"/><!-- BROKEN BAR --> - <map code="0xa7" name="section"/><!-- SECTION SIGN --> - <map code="0xa8" name="dieresis"/><!-- DIAERESIS --> - <map code="0xa9" name="copyright"/><!-- COPYRIGHT SIGN --> - <map code="0xaa" name="ordfeminine"/><!-- FEMININE ORDINAL INDICATOR --> - <map code="0xab" name="guillemotleft"/><!-- LEFT-POINTING DOUBLE ANGLE QUOTATION MARK --> - <map code="0xac" name="logicalnot"/><!-- NOT SIGN --> - <map code="0xad" name="sfthyphen"/><!-- SOFT HYPHEN --> - <map code="0xae" name="registered"/><!-- REGISTERED SIGN --> - <map code="0xaf" name="macron#1"/><!-- MACRON --> - <map code="0xb0" name="degree"/><!-- DEGREE SIGN --> - <map code="0xb1" name="plusminus"/><!-- PLUS-MINUS SIGN --> - <map code="0xb2" name="twosuperior"/><!-- SUPERSCRIPT TWO --> - <map code="0xb3" name="threesuperior"/><!-- SUPERSCRIPT THREE --> - <map code="0xb4" name="acute"/><!-- ACUTE ACCENT --> - <map code="0xb5" name="mu"/><!-- MICRO SIGN --> - <map code="0xb6" name="paragraph"/><!-- PILCROW SIGN --> - <map code="0xb7" name="periodcentered#1"/><!-- MIDDLE DOT --> - <map code="0xb8" name="cedilla"/><!-- CEDILLA --> - <map code="0xb9" name="onesuperior"/><!-- SUPERSCRIPT ONE --> - <map code="0xba" name="ordmasculine"/><!-- MASCULINE ORDINAL INDICATOR --> - <map code="0xbb" name="guillemotright"/><!-- RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK --> - <map code="0xbc" name="onequarter"/><!-- VULGAR FRACTION ONE QUARTER --> - <map code="0xbd" name="onehalf"/><!-- VULGAR FRACTION ONE HALF --> - <map code="0xbe" name="threequarters"/><!-- VULGAR FRACTION THREE QUARTERS --> - <map code="0xbf" name="questiondown"/><!-- INVERTED QUESTION MARK --> - <map code="0xc0" name="Agrave"/><!-- LATIN CAPITAL LETTER A WITH GRAVE --> - <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE --> - <map code="0xc2" name="Acircumflex"/><!-- LATIN CAPITAL LETTER A WITH CIRCUMFLEX --> - <map code="0xc3" name="Atilde"/><!-- LATIN CAPITAL LETTER A WITH TILDE --> - <map code="0xc4" name="Adieresis"/><!-- LATIN CAPITAL LETTER A WITH DIAERESIS --> - <map code="0xc5" name="Aring"/><!-- LATIN CAPITAL LETTER A WITH RING ABOVE --> - <map code="0xc6" name="AE"/><!-- LATIN CAPITAL LETTER AE --> - <map code="0xc7" name="Ccedilla"/><!-- LATIN CAPITAL LETTER C WITH CEDILLA --> - <map code="0xc8" name="Egrave"/><!-- LATIN CAPITAL LETTER E WITH GRAVE --> - <map code="0xc9" name="Eacute"/><!-- LATIN CAPITAL LETTER E WITH ACUTE --> - <map code="0xca" name="Ecircumflex"/><!-- LATIN CAPITAL LETTER E WITH CIRCUMFLEX --> - <map code="0xcb" name="Edieresis"/><!-- LATIN CAPITAL LETTER E WITH DIAERESIS --> - <map code="0xcc" name="Igrave"/><!-- LATIN CAPITAL LETTER I WITH GRAVE --> - <map code="0xcd" name="Iacute"/><!-- LATIN CAPITAL LETTER I WITH ACUTE --> - <map code="0xce" name="Icircumflex"/><!-- LATIN CAPITAL LETTER I WITH CIRCUMFLEX --> - <map code="0xcf" name="Idieresis"/><!-- LATIN CAPITAL LETTER I WITH DIAERESIS --> - <map code="0xd0" name="Eth"/><!-- LATIN CAPITAL LETTER ETH --> - <map code="0xd1" name="Ntilde"/><!-- LATIN CAPITAL LETTER N WITH TILDE --> - <map code="0xd2" name="Ograve"/><!-- LATIN CAPITAL LETTER O WITH GRAVE --> - <map code="0xd3" name="Oacute"/><!-- LATIN CAPITAL LETTER O WITH ACUTE --> - <map code="0xd4" name="Ocircumflex"/><!-- LATIN CAPITAL LETTER O WITH CIRCUMFLEX --> - <map code="0xd5" name="Otilde"/><!-- LATIN CAPITAL LETTER O WITH TILDE --> - <map code="0xd6" name="Odieresis"/><!-- LATIN CAPITAL LETTER O WITH DIAERESIS --> - <map code="0xd7" name="multiply"/><!-- MULTIPLICATION SIGN --> - <map code="0xd8" name="Oslash"/><!-- LATIN CAPITAL LETTER O WITH STROKE --> - <map code="0xd9" name="Ugrave"/><!-- LATIN CAPITAL LETTER U WITH GRAVE --> - <map code="0xda" name="Uacute"/><!-- LATIN CAPITAL LETTER U WITH ACUTE --> - <map code="0xdb" name="Ucircumflex"/><!-- LATIN CAPITAL LETTER U WITH CIRCUMFLEX --> - <map code="0xdc" name="Udieresis"/><!-- LATIN CAPITAL LETTER U WITH DIAERESIS --> - <map code="0xdd" name="Yacute"/><!-- LATIN CAPITAL LETTER Y WITH ACUTE --> - <map code="0xde" name="Thorn"/><!-- LATIN CAPITAL LETTER THORN --> - <map code="0xdf" name="germandbls"/><!-- LATIN SMALL LETTER SHARP S --> - <map code="0xe0" name="agrave"/><!-- LATIN SMALL LETTER A WITH GRAVE --> - <map code="0xe1" name="aacute"/><!-- LATIN SMALL LETTER A WITH ACUTE --> - <map code="0xe2" name="acircumflex"/><!-- LATIN SMALL LETTER A WITH CIRCUMFLEX --> - <map code="0xe3" name="atilde"/><!-- LATIN SMALL LETTER A WITH TILDE --> - <map code="0xe4" name="adieresis"/><!-- LATIN SMALL LETTER A WITH DIAERESIS --> - <map code="0xe5" name="aring"/><!-- LATIN SMALL LETTER A WITH RING ABOVE --> - <map code="0xe6" name="ae"/><!-- LATIN SMALL LETTER AE --> - <map code="0xe7" name="ccedilla"/><!-- LATIN SMALL LETTER C WITH CEDILLA --> - <map code="0xe8" name="egrave"/><!-- LATIN SMALL LETTER E WITH GRAVE --> - <map code="0xe9" name="eacute"/><!-- LATIN SMALL LETTER E WITH ACUTE --> - <map code="0xea" name="ecircumflex"/><!-- LATIN SMALL LETTER E WITH CIRCUMFLEX --> - <map code="0xeb" name="edieresis"/><!-- LATIN SMALL LETTER E WITH DIAERESIS --> - <map code="0xec" name="igrave"/><!-- LATIN SMALL LETTER I WITH GRAVE --> - <map code="0xed" name="iacute"/><!-- LATIN SMALL LETTER I WITH ACUTE --> - <map code="0xee" name="icircumflex"/><!-- LATIN SMALL LETTER I WITH CIRCUMFLEX --> - <map code="0xef" name="idieresis"/><!-- LATIN SMALL LETTER I WITH DIAERESIS --> - <map code="0xf0" name="eth"/><!-- LATIN SMALL LETTER ETH --> - <map code="0xf1" name="ntilde"/><!-- LATIN SMALL LETTER N WITH TILDE --> - <map code="0xf2" name="ograve"/><!-- LATIN SMALL LETTER O WITH GRAVE --> - <map code="0xf3" name="oacute"/><!-- LATIN SMALL LETTER O WITH ACUTE --> - <map code="0xf4" name="ocircumflex"/><!-- LATIN SMALL LETTER O WITH CIRCUMFLEX --> - <map code="0xf5" name="otilde"/><!-- LATIN SMALL LETTER O WITH TILDE --> - <map code="0xf6" name="odieresis"/><!-- LATIN SMALL LETTER O WITH DIAERESIS --> - <map code="0xf7" name="divide"/><!-- DIVISION SIGN --> - <map code="0xf8" name="oslash"/><!-- LATIN SMALL LETTER O WITH STROKE --> - <map code="0xf9" name="ugrave"/><!-- LATIN SMALL LETTER U WITH GRAVE --> - <map code="0xfa" name="uacute"/><!-- LATIN SMALL LETTER U WITH ACUTE --> - <map code="0xfb" name="ucircumflex"/><!-- LATIN SMALL LETTER U WITH CIRCUMFLEX --> - <map code="0xfc" name="udieresis"/><!-- LATIN SMALL LETTER U WITH DIAERESIS --> - <map code="0xfd" name="yacute"/><!-- LATIN SMALL LETTER Y WITH ACUTE --> - <map code="0xfe" name="thorn"/><!-- LATIN SMALL LETTER THORN --> - <map code="0xff" name="ydieresis"/><!-- LATIN SMALL LETTER Y WITH DIAERESIS --> - <map code="0x100" name="Amacron"/><!-- LATIN CAPITAL LETTER A WITH MACRON --> - <map code="0x101" name="amacron"/><!-- LATIN SMALL LETTER A WITH MACRON --> - <map code="0x102" name="Abreve"/><!-- LATIN CAPITAL LETTER A WITH BREVE --> - <map code="0x103" name="abreve"/><!-- LATIN SMALL LETTER A WITH BREVE --> - <map code="0x104" name="Aogonek"/><!-- LATIN CAPITAL LETTER A WITH OGONEK --> - <map code="0x105" name="aogonek"/><!-- LATIN SMALL LETTER A WITH OGONEK --> - <map code="0x106" name="Cacute"/><!-- LATIN CAPITAL LETTER C WITH ACUTE --> - <map code="0x107" name="cacute"/><!-- LATIN SMALL LETTER C WITH ACUTE --> - <map code="0x108" name="Ccircumflex"/><!-- LATIN CAPITAL LETTER C WITH CIRCUMFLEX --> - <map code="0x109" name="ccircumflex"/><!-- LATIN SMALL LETTER C WITH CIRCUMFLEX --> - <map code="0x10a" name="Cdotaccent"/><!-- LATIN CAPITAL LETTER C WITH DOT ABOVE --> - <map code="0x10b" name="cdotaccent"/><!-- LATIN SMALL LETTER C WITH DOT ABOVE --> - <map code="0x10c" name="Ccaron"/><!-- LATIN CAPITAL LETTER C WITH CARON --> - <map code="0x10d" name="ccaron"/><!-- LATIN SMALL LETTER C WITH CARON --> - <map code="0x10e" name="Dcaron"/><!-- LATIN CAPITAL LETTER D WITH CARON --> - <map code="0x10f" name="dcaron"/><!-- LATIN SMALL LETTER D WITH CARON --> - <map code="0x110" name="Dcroat"/><!-- LATIN CAPITAL LETTER D WITH STROKE --> - <map code="0x111" name="dcroat"/><!-- LATIN SMALL LETTER D WITH STROKE --> - <map code="0x112" name="Emacron"/><!-- LATIN CAPITAL LETTER E WITH MACRON --> - <map code="0x113" name="emacron"/><!-- LATIN SMALL LETTER E WITH MACRON --> - <map code="0x114" name="Ebreve"/><!-- LATIN CAPITAL LETTER E WITH BREVE --> - <map code="0x115" name="ebreve"/><!-- LATIN SMALL LETTER E WITH BREVE --> - <map code="0x116" name="Edotaccent"/><!-- LATIN CAPITAL LETTER E WITH DOT ABOVE --> - <map code="0x117" name="edotaccent"/><!-- LATIN SMALL LETTER E WITH DOT ABOVE --> - <map code="0x118" name="Eogonek"/><!-- LATIN CAPITAL LETTER E WITH OGONEK --> - <map code="0x119" name="eogonek"/><!-- LATIN SMALL LETTER E WITH OGONEK --> - <map code="0x11a" name="Ecaron"/><!-- LATIN CAPITAL LETTER E WITH CARON --> - <map code="0x11b" name="ecaron"/><!-- LATIN SMALL LETTER E WITH CARON --> - <map code="0x11c" name="Gcircumflex"/><!-- LATIN CAPITAL LETTER G WITH CIRCUMFLEX --> - <map code="0x11d" name="gcircumflex"/><!-- LATIN SMALL LETTER G WITH CIRCUMFLEX --> - <map code="0x11e" name="Gbreve"/><!-- LATIN CAPITAL LETTER G WITH BREVE --> - <map code="0x11f" name="gbreve"/><!-- LATIN SMALL LETTER G WITH BREVE --> - <map code="0x120" name="Gdotaccent"/><!-- LATIN CAPITAL LETTER G WITH DOT ABOVE --> - <map code="0x121" name="gdotaccent"/><!-- LATIN SMALL LETTER G WITH DOT ABOVE --> - <map code="0x122" name="Gcommaaccent"/><!-- LATIN CAPITAL LETTER G WITH CEDILLA --> - <map code="0x123" name="gcommaaccent"/><!-- LATIN SMALL LETTER G WITH CEDILLA --> - <map code="0x124" name="Hcircumflex"/><!-- LATIN CAPITAL LETTER H WITH CIRCUMFLEX --> - <map code="0x125" name="hcircumflex"/><!-- LATIN SMALL LETTER H WITH CIRCUMFLEX --> - <map code="0x126" name="Hbar"/><!-- LATIN CAPITAL LETTER H WITH STROKE --> - <map code="0x127" name="hbar"/><!-- LATIN SMALL LETTER H WITH STROKE --> - <map code="0x128" name="Itilde"/><!-- LATIN CAPITAL LETTER I WITH TILDE --> - <map code="0x129" name="itilde"/><!-- LATIN SMALL LETTER I WITH TILDE --> - <map code="0x12a" name="Imacron"/><!-- LATIN CAPITAL LETTER I WITH MACRON --> - <map code="0x12b" name="imacron"/><!-- LATIN SMALL LETTER I WITH MACRON --> - <map code="0x12c" name="Ibreve"/><!-- LATIN CAPITAL LETTER I WITH BREVE --> - <map code="0x12d" name="ibreve"/><!-- LATIN SMALL LETTER I WITH BREVE --> - <map code="0x12e" name="Iogonek"/><!-- LATIN CAPITAL LETTER I WITH OGONEK --> - <map code="0x12f" name="iogonek"/><!-- LATIN SMALL LETTER I WITH OGONEK --> - <map code="0x130" name="Idotaccent"/><!-- LATIN CAPITAL LETTER I WITH DOT ABOVE --> - <map code="0x131" name="dotlessi"/><!-- LATIN SMALL LETTER DOTLESS I --> - <map code="0x132" name="IJ"/><!-- LATIN CAPITAL LIGATURE IJ --> - <map code="0x133" name="ij"/><!-- LATIN SMALL LIGATURE IJ --> - <map code="0x134" name="Jcircumflex"/><!-- LATIN CAPITAL LETTER J WITH CIRCUMFLEX --> - <map code="0x135" name="jcircumflex"/><!-- LATIN SMALL LETTER J WITH CIRCUMFLEX --> - <map code="0x136" name="Kcommaaccent"/><!-- LATIN CAPITAL LETTER K WITH CEDILLA --> - <map code="0x137" name="kcommaaccent"/><!-- LATIN SMALL LETTER K WITH CEDILLA --> - <map code="0x138" name="kgreenlandic"/><!-- LATIN SMALL LETTER KRA --> - <map code="0x139" name="Lacute"/><!-- LATIN CAPITAL LETTER L WITH ACUTE --> - <map code="0x13a" name="lacute"/><!-- LATIN SMALL LETTER L WITH ACUTE --> - <map code="0x13b" name="Lcommaaccent"/><!-- LATIN CAPITAL LETTER L WITH CEDILLA --> - <map code="0x13c" name="lcommaaccent"/><!-- LATIN SMALL LETTER L WITH CEDILLA --> - <map code="0x13d" name="Lcaron"/><!-- LATIN CAPITAL LETTER L WITH CARON --> - <map code="0x13e" name="lcaron"/><!-- LATIN SMALL LETTER L WITH CARON --> - <map code="0x13f" name="Ldot"/><!-- LATIN CAPITAL LETTER L WITH MIDDLE DOT --> - <map code="0x140" name="ldot"/><!-- LATIN SMALL LETTER L WITH MIDDLE DOT --> - <map code="0x141" name="Lslash"/><!-- LATIN CAPITAL LETTER L WITH STROKE --> - <map code="0x142" name="lslash"/><!-- LATIN SMALL LETTER L WITH STROKE --> - <map code="0x143" name="Nacute"/><!-- LATIN CAPITAL LETTER N WITH ACUTE --> - <map code="0x144" name="nacute"/><!-- LATIN SMALL LETTER N WITH ACUTE --> - <map code="0x145" name="Ncommaaccent"/><!-- LATIN CAPITAL LETTER N WITH CEDILLA --> - <map code="0x146" name="ncommaaccent"/><!-- LATIN SMALL LETTER N WITH CEDILLA --> - <map code="0x147" name="Ncaron"/><!-- LATIN CAPITAL LETTER N WITH CARON --> - <map code="0x148" name="ncaron"/><!-- LATIN SMALL LETTER N WITH CARON --> - <map code="0x149" name="napostrophe"/><!-- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE --> - <map code="0x14a" name="Eng"/><!-- LATIN CAPITAL LETTER ENG --> - <map code="0x14b" name="eng"/><!-- LATIN SMALL LETTER ENG --> - <map code="0x14c" name="Omacron"/><!-- LATIN CAPITAL LETTER O WITH MACRON --> - <map code="0x14d" name="omacron"/><!-- LATIN SMALL LETTER O WITH MACRON --> - <map code="0x14e" name="Obreve"/><!-- LATIN CAPITAL LETTER O WITH BREVE --> - <map code="0x14f" name="obreve"/><!-- LATIN SMALL LETTER O WITH BREVE --> - <map code="0x150" name="Ohungarumlaut"/><!-- LATIN CAPITAL LETTER O WITH DOUBLE ACUTE --> - <map code="0x151" name="ohungarumlaut"/><!-- LATIN SMALL LETTER O WITH DOUBLE ACUTE --> - <map code="0x152" name="OE"/><!-- LATIN CAPITAL LIGATURE OE --> - <map code="0x153" name="oe"/><!-- LATIN SMALL LIGATURE OE --> - <map code="0x154" name="Racute"/><!-- LATIN CAPITAL LETTER R WITH ACUTE --> - <map code="0x155" name="racute"/><!-- LATIN SMALL LETTER R WITH ACUTE --> - <map code="0x156" name="Rcommaaccent"/><!-- LATIN CAPITAL LETTER R WITH CEDILLA --> - <map code="0x157" name="rcommaaccent"/><!-- LATIN SMALL LETTER R WITH CEDILLA --> - <map code="0x158" name="Rcaron"/><!-- LATIN CAPITAL LETTER R WITH CARON --> - <map code="0x159" name="rcaron"/><!-- LATIN SMALL LETTER R WITH CARON --> - <map code="0x15a" name="Sacute"/><!-- LATIN CAPITAL LETTER S WITH ACUTE --> - <map code="0x15b" name="sacute"/><!-- LATIN SMALL LETTER S WITH ACUTE --> - <map code="0x15c" name="Scircumflex"/><!-- LATIN CAPITAL LETTER S WITH CIRCUMFLEX --> - <map code="0x15d" name="scircumflex"/><!-- LATIN SMALL LETTER S WITH CIRCUMFLEX --> - <map code="0x15e" name="Scedilla"/><!-- LATIN CAPITAL LETTER S WITH CEDILLA --> - <map code="0x15f" name="scedilla"/><!-- LATIN SMALL LETTER S WITH CEDILLA --> - <map code="0x160" name="Scaron"/><!-- LATIN CAPITAL LETTER S WITH CARON --> - <map code="0x161" name="scaron"/><!-- LATIN SMALL LETTER S WITH CARON --> - <map code="0x162" name="Tcommaaccent"/><!-- LATIN CAPITAL LETTER T WITH CEDILLA --> - <map code="0x163" name="tcommaaccent"/><!-- LATIN SMALL LETTER T WITH CEDILLA --> - <map code="0x164" name="Tcaron"/><!-- LATIN CAPITAL LETTER T WITH CARON --> - <map code="0x165" name="tcaron"/><!-- LATIN SMALL LETTER T WITH CARON --> - <map code="0x166" name="Tbar"/><!-- LATIN CAPITAL LETTER T WITH STROKE --> - <map code="0x167" name="tbar"/><!-- LATIN SMALL LETTER T WITH STROKE --> - <map code="0x168" name="Utilde"/><!-- LATIN CAPITAL LETTER U WITH TILDE --> - <map code="0x169" name="utilde"/><!-- LATIN SMALL LETTER U WITH TILDE --> - <map code="0x16a" name="Umacron"/><!-- LATIN CAPITAL LETTER U WITH MACRON --> - <map code="0x16b" name="umacron"/><!-- LATIN SMALL LETTER U WITH MACRON --> - <map code="0x16c" name="Ubreve"/><!-- LATIN CAPITAL LETTER U WITH BREVE --> - <map code="0x16d" name="ubreve"/><!-- LATIN SMALL LETTER U WITH BREVE --> - <map code="0x16e" name="Uring"/><!-- LATIN CAPITAL LETTER U WITH RING ABOVE --> - <map code="0x16f" name="uring"/><!-- LATIN SMALL LETTER U WITH RING ABOVE --> - <map code="0x170" name="Uhungarumlaut"/><!-- LATIN CAPITAL LETTER U WITH DOUBLE ACUTE --> - <map code="0x171" name="uhungarumlaut"/><!-- LATIN SMALL LETTER U WITH DOUBLE ACUTE --> - <map code="0x172" name="Uogonek"/><!-- LATIN CAPITAL LETTER U WITH OGONEK --> - <map code="0x173" name="uogonek"/><!-- LATIN SMALL LETTER U WITH OGONEK --> - <map code="0x174" name="Wcircumflex"/><!-- LATIN CAPITAL LETTER W WITH CIRCUMFLEX --> - <map code="0x175" name="wcircumflex"/><!-- LATIN SMALL LETTER W WITH CIRCUMFLEX --> - <map code="0x176" name="Ycircumflex"/><!-- LATIN CAPITAL LETTER Y WITH CIRCUMFLEX --> - <map code="0x177" name="ycircumflex"/><!-- LATIN SMALL LETTER Y WITH CIRCUMFLEX --> - <map code="0x178" name="Ydieresis"/><!-- LATIN CAPITAL LETTER Y WITH DIAERESIS --> - <map code="0x179" name="Zacute"/><!-- LATIN CAPITAL LETTER Z WITH ACUTE --> - <map code="0x17a" name="zacute"/><!-- LATIN SMALL LETTER Z WITH ACUTE --> - <map code="0x17b" name="Zdotaccent"/><!-- LATIN CAPITAL LETTER Z WITH DOT ABOVE --> - <map code="0x17c" name="zdotaccent"/><!-- LATIN SMALL LETTER Z WITH DOT ABOVE --> - <map code="0x17d" name="Zcaron"/><!-- LATIN CAPITAL LETTER Z WITH CARON --> - <map code="0x17e" name="zcaron"/><!-- LATIN SMALL LETTER Z WITH CARON --> - <map code="0x17f" name="longs"/><!-- LATIN SMALL LETTER LONG S --> - <map code="0x192" name="florin"/><!-- LATIN SMALL LETTER F WITH HOOK --> - <map code="0x218" name="Scommaaccent"/><!-- LATIN CAPITAL LETTER S WITH COMMA BELOW --> - <map code="0x219" name="scommaaccent"/><!-- LATIN SMALL LETTER S WITH COMMA BELOW --> - <map code="0x21a" name="Tcommabelow"/><!-- LATIN CAPITAL LETTER T WITH COMMA BELOW --> - <map code="0x21b" name="tcommabelow"/><!-- LATIN SMALL LETTER T WITH COMMA BELOW --> - <map code="0x2c6" name="circumflex"/><!-- MODIFIER LETTER CIRCUMFLEX ACCENT --> - <map code="0x2c7" name="caron"/><!-- CARON --> - <map code="0x2c9" name="macron"/><!-- MODIFIER LETTER MACRON --> - <map code="0x2d8" name="breve"/><!-- BREVE --> - <map code="0x2d9" name="dotaccent"/><!-- DOT ABOVE --> - <map code="0x2da" name="ring"/><!-- RING ABOVE --> - <map code="0x2db" name="ogonek"/><!-- OGONEK --> - <map code="0x2dc" name="tilde"/><!-- SMALL TILDE --> - <map code="0x2dd" name="hungarumlaut"/><!-- DOUBLE ACUTE ACCENT --> - <map code="0x326" name="Unterkomma"/><!-- COMBINING COMMA BELOW --> - <map code="0x37e" name="semicolon#1"/><!-- GREEK QUESTION MARK --> - <map code="0x387" name="anoteleia"/><!-- GREEK ANO TELEIA --> - <map code="0x2010" name="hyphen#1"/><!-- HYPHEN --> - <map code="0x2011" name="nbhyphen"/><!-- NON-BREAKING HYPHEN --> - <map code="0x2012" name="figuredash"/><!-- FIGURE DASH --> - <map code="0x2013" name="endash"/><!-- EN DASH --> - <map code="0x2014" name="emdash"/><!-- EM DASH --> - <map code="0x2015" name="afii00208"/><!-- HORIZONTAL BAR --> - <map code="0x2018" name="quoteleft"/><!-- LEFT SINGLE QUOTATION MARK --> - <map code="0x2019" name="quoteright"/><!-- RIGHT SINGLE QUOTATION MARK --> - <map code="0x201a" name="quotesinglbase"/><!-- SINGLE LOW-9 QUOTATION MARK --> - <map code="0x201b" name="quotereversed"/><!-- SINGLE HIGH-REVERSED-9 QUOTATION MARK --> - <map code="0x201c" name="quotedblleft"/><!-- LEFT DOUBLE QUOTATION MARK --> - <map code="0x201d" name="quotedblright"/><!-- RIGHT DOUBLE QUOTATION MARK --> - <map code="0x201e" name="quotedblbase"/><!-- DOUBLE LOW-9 QUOTATION MARK --> - <map code="0x2020" name="dagger"/><!-- DAGGER --> - <map code="0x2021" name="daggerdbl"/><!-- DOUBLE DAGGER --> - <map code="0x2022" name="bullet"/><!-- BULLET --> - <map code="0x2026" name="ellipsis"/><!-- HORIZONTAL ELLIPSIS --> - <map code="0x2030" name="perthousand"/><!-- PER MILLE SIGN --> - <map code="0x2039" name="guilsinglleft"/><!-- SINGLE LEFT-POINTING ANGLE QUOTATION MARK --> - <map code="0x203a" name="guilsinglright"/><!-- SINGLE RIGHT-POINTING ANGLE QUOTATION MARK --> - <map code="0x203e" name="radicalex"/><!-- OVERLINE --> - <map code="0x2044" name="fraction"/><!-- FRACTION SLASH --> - <map code="0x20ac" name="Euro"/><!-- EURO SIGN --> - <map code="0x2122" name="trademark"/><!-- TRADE MARK SIGN --> - <map code="0x212e" name="estimated"/><!-- ESTIMATED SYMBOL --> - <map code="0x2212" name="minus"/><!-- MINUS SIGN --> - <map code="0x2215" name="fraction#1"/><!-- DIVISION SLASH --> - <map code="0x2219" name="periodcentered"/><!-- BULLET OPERATOR --> - <map code="0x22c5" name="dotmath"/><!-- DOT OPERATOR --> - <map code="0xea01" name="fi#1"/><!-- Private Use --> - <map code="0xea02" name="fl#1"/><!-- Private Use --> - <map code="0xf001" name="fi"/><!-- Private Use --> - <map code="0xf002" name="fl"/><!-- Private Use --> - <map code="0xf004" name="foursuperiour"/><!-- Private Use --> - <map code="0xf6be" name="dotlessj"/><!-- Private Use --> - <map code="0xfb01" name="fi"/><!-- LATIN SMALL LIGATURE FI --> - <map code="0xfb02" name="fl"/><!-- LATIN SMALL LIGATURE FL --> - </cmap_format_4> - </cmap> - - <fpgm> - <assembly> - NPUSHB[ ] /* 15 values pushed */ - 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - FDEF[ ] - SLOOP[ ] - MDAP[1] - ALIGNRP[ ] - ENDF[ ] - FDEF[ ] - MDAP[1] - ALIGNRP[ ] - ENDF[ ] - FDEF[ ] - SRP1[ ] - SRP2[ ] - IP[ ] - ENDF[ ] - FDEF[ ] - SRP1[ ] - SRP2[ ] - SLOOP[ ] - IP[ ] - ENDF[ ] - FDEF[ ] - SRP0[ ] - SLOOP[ ] - MIRP[11101] - ALIGNRP[ ] - ENDF[ ] - FDEF[ ] - SRP0[ ] - SLOOP[ ] - MIRP[10100] - ALIGNRP[ ] - ENDF[ ] - FDEF[ ] - SRP0[ ] - SLOOP[ ] - MDRP[11101] - ALIGNRP[ ] - ENDF[ ] - FDEF[ ] - SRP0[ ] - SLOOP[ ] - MDRP[10100] - ALIGNRP[ ] - ENDF[ ] - FDEF[ ] - SRP0[ ] - MIRP[11101] - ENDF[ ] - FDEF[ ] - SRP0[ ] - MIRP[10100] - ENDF[ ] - FDEF[ ] - SRP0[ ] - MDRP[11101] - ENDF[ ] - FDEF[ ] - SRP0[ ] - MDRP[10100] - ENDF[ ] - FDEF[ ] - MDRP[00100] - ENDF[ ] - FDEF[ ] - MDRP[00000] - ENDF[ ] - FDEF[ ] - SVTCA[0] - NPUSHB[ ] /* 10 values pushed */ - 1 0 0 1 1 2 2 3 3 0 - SZPS[ ] - MIAP[1] - MIAP[1] - MIAP[1] - MIAP[1] - SZPS[ ] - ENDF[ ] - </assembly> - </fpgm> - - <prep> - <assembly> - PUSHB[ ] /* 2 values pushed */ - 48 1 - PUSHW[ ] /* 1 value pushed */ - 329 - RTG[ ] - SCANCTRL[ ] - SCANTYPE[ ] - SCVTCI[ ] - </assembly> - </prep> - - <cvt> - <cv index="0" value="1480"/> - <cv index="1" value="1086"/> - <cv index="2" value="0"/> - <cv index="3" value="-512"/> - <cv index="4" value="196"/> - <cv index="5" value="200"/> - <cv index="6" value="125"/> - <cv index="7" value="149"/> - <cv index="8" value="247"/> - <cv index="9" value="213"/> - <cv index="10" value="150"/> - <cv index="11" value="101"/> - <cv index="12" value="196"/> - <cv index="13" value="172"/> - <cv index="14" value="181"/> - <cv index="15" value="157"/> - <cv index="16" value="113"/> - <cv index="17" value="109"/> - <cv index="18" value="133"/> - <cv index="19" value="121"/> - <cv index="20" value="104"/> - <cv index="21" value="97"/> - <cv index="22" value="138"/> - <cv index="23" value="22"/> - <cv index="24" value="183"/> - <cv index="25" value="140"/> - <cv index="26" value="224"/> - <cv index="27" value="186"/> - <cv index="28" value="206"/> - <cv index="29" value="160"/> - <cv index="30" value="171"/> - <cv index="31" value="135"/> - <cv index="32" value="87"/> - <cv index="33" value="210"/> - <cv index="34" value="167"/> - <cv index="35" value="155"/> - <cv index="36" value="227"/> - <cv index="37" value="159"/> - <cv index="38" value="119"/> - <cv index="39" value="152"/> - <cv index="40" value="149"/> - <cv index="41" value="195"/> - <cv index="42" value="137"/> - <cv index="43" value="205"/> - <cv index="44" value="89"/> - <cv index="45" value="165"/> - </cvt> - - <loca> - <!-- The 'loca' table will be calculated by the compiler --> - </loca> - - <glyf> - - <!-- The xMin, yMin, xMax and yMax values - will be recalculated by the compiler. --> - - <TTGlyph name=".notdef" xMin="57" yMin="0" xMax="512" yMax="1480"> - <contour> - <pt x="57" y="0" on="1"/> - <pt x="57" y="1480" on="1"/> - <pt x="512" y="1480" on="1"/> - <pt x="512" y="0" on="1"/> - </contour> - <contour> - <pt x="455" y="57" on="1"/> - <pt x="455" y="1423" on="1"/> - <pt x="114" y="1423" on="1"/> - <pt x="114" y="57" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 16 values pushed */ - 5 6 2 1 4 7 3 0 5 4 2 3 6 7 1 0 - MDAP[1] - ALIGNRP[ ] - MDRP[11100] - ALIGNRP[ ] - MDAP[1] - ALIGNRP[ ] - MDRP[11100] - ALIGNRP[ ] - SVTCA[0] - MDAP[1] - ALIGNRP[ ] - MDRP[11100] - ALIGNRP[ ] - MDAP[1] - ALIGNRP[ ] - MDRP[11100] - ALIGNRP[ ] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name=".notdef#1"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#10"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#11"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#12"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#13"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#14"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#15"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#16"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#17"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#18"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#2"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#3"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#4"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#5"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#6"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#7"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#8"/><!-- contains no outline data --> - - <TTGlyph name=".notdef#9"/><!-- contains no outline data --> - - <TTGlyph name="A" xMin="19" yMin="0" xMax="1342" yMax="1480"> - <contour> - <pt x="19" y="0" on="1"/> - <pt x="581" y="1480" on="1"/> - <pt x="789" y="1480" on="1"/> - <pt x="1342" y="0" on="1"/> - <pt x="1116" y="0" on="1"/> - <pt x="962" y="410" on="1"/> - <pt x="368" y="410" on="1"/> - <pt x="214" y="0" on="1"/> - </contour> - <contour> - <pt x="428" y="566" on="1"/> - <pt x="904" y="566" on="1"/> - <pt x="667" y="1200" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 40 values pushed */ - 10 1 8 2 0 0 9 8 15 1 5 1 4 48 196 6 5 1 7 4 3 0 3 2 0 - 2 1 0 14 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="AE" xMin="19" yMin="0" xMax="1990" yMax="1480"> - <contour> - <pt x="597" y="569" on="1"/> - <pt x="1015" y="569" on="1"/> - <pt x="1015" y="1227" on="1"/> - </contour> - <contour> - <pt x="19" y="0" on="1"/> - <pt x="959" y="1480" on="1"/> - <pt x="1947" y="1480" on="1"/> - <pt x="1947" y="1323" on="1"/> - <pt x="1225" y="1323" on="1"/> - <pt x="1225" y="848" on="1"/> - <pt x="1847" y="848" on="1"/> - <pt x="1847" y="693" on="1"/> - <pt x="1225" y="693" on="1"/> - <pt x="1225" y="157" on="1"/> - <pt x="1990" y="157" on="1"/> - <pt x="1990" y="0" on="1"/> - <pt x="1015" y="0" on="1"/> - <pt x="1015" y="414" on="1"/> - <pt x="498" y="414" on="1"/> - <pt x="236" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 87 values pushed */ - 2 6 8 2 0 0 7 6 15 1 4 11 10 15 1 8 13 12 15 1 3 3 4 48 196 - 9 8 1 17 16 1 18 15 14 3 3 1 0 1 4 0 5 4 0 14 18 17 4 3 0 - 5 13 1 0 0 16 15 2 1 33 3 7 1 4 48 196 14 13 1 6 5 1 10 9 1 - 12 11 8 7 3 16 15 2 1 3 5 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Aacute" xMin="19" yMin="0" xMax="1342" yMax="1925"> - <contour> - <pt x="19" y="0" on="1"/> - <pt x="581" y="1480" on="1"/> - <pt x="789" y="1480" on="1"/> - <pt x="1342" y="0" on="1"/> - <pt x="1116" y="0" on="1"/> - <pt x="962" y="410" on="1"/> - <pt x="368" y="410" on="1"/> - <pt x="214" y="0" on="1"/> - </contour> - <contour> - <pt x="428" y="566" on="1"/> - <pt x="904" y="566" on="1"/> - <pt x="667" y="1200" on="1"/> - </contour> - <contour> - <pt x="537" y="1604" on="1"/> - <pt x="778" y="1925" on="1"/> - <pt x="1006" y="1925" on="1"/> - <pt x="685" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 50 values pushed */ - 10 1 8 2 0 0 9 8 15 1 5 1 4 48 196 13 12 1 14 11 1 6 5 1 7 - 4 3 0 3 4 0 2 1 0 14 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Abreve" xMin="21" yMin="0" xMax="1344" yMax="1925"> - <contour> - <pt x="21" y="0" on="1"/> - <pt x="583" y="1480" on="1"/> - <pt x="791" y="1480" on="1"/> - <pt x="1344" y="0" on="1"/> - <pt x="1118" y="0" on="1"/> - <pt x="964" y="410" on="1"/> - <pt x="370" y="410" on="1"/> - <pt x="216" y="0" on="1"/> - </contour> - <contour> - <pt x="430" y="566" on="1"/> - <pt x="906" y="566" on="1"/> - <pt x="669" y="1200" on="1"/> - </contour> - <contour> - <pt x="354" y="1925" on="1"/> - <pt x="477" y="1925" on="1"/> - <pt x="498" y="1831" on="0"/> - <pt x="552" y="1791" on="1"/> - <pt x="604" y="1752" on="0"/> - <pt x="687" y="1752" on="1"/> - <pt x="781" y="1752" on="0"/> - <pt x="835" y="1801" on="1"/> - <pt x="878" y="1841" on="0"/> - <pt x="897" y="1925" on="1"/> - <pt x="1020" y="1925" on="1"/> - <pt x="1004" y="1791" on="0"/> - <pt x="931" y="1710" on="1"/> - <pt x="837" y="1604" on="0"/> - <pt x="687" y="1604" on="1"/> - <pt x="530" y="1604" on="0"/> - <pt x="435" y="1719" on="1"/> - <pt x="370" y="1797" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 59 values pushed */ - 0 0 16 40 25 48 196 10 1 8 2 21 20 12 11 4 13 25 1 0 0 9 8 15 1 - 5 1 4 48 196 6 5 1 7 4 3 0 3 2 0 2 1 0 14 21 20 12 11 10 9 - 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Acircumflex" xMin="19" yMin="0" xMax="1342" yMax="1925"> - <contour> - <pt x="19" y="0" on="1"/> - <pt x="581" y="1480" on="1"/> - <pt x="789" y="1480" on="1"/> - <pt x="1342" y="0" on="1"/> - <pt x="1116" y="0" on="1"/> - <pt x="962" y="410" on="1"/> - <pt x="368" y="410" on="1"/> - <pt x="214" y="0" on="1"/> - </contour> - <contour> - <pt x="428" y="566" on="1"/> - <pt x="904" y="566" on="1"/> - <pt x="667" y="1200" on="1"/> - </contour> - <contour> - <pt x="335" y="1604" on="1"/> - <pt x="576" y="1925" on="1"/> - <pt x="794" y="1925" on="1"/> - <pt x="1035" y="1604" on="1"/> - <pt x="887" y="1604" on="1"/> - <pt x="686" y="1806" on="1"/> - <pt x="684" y="1806" on="1"/> - <pt x="483" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 62 values pushed */ - 17 16 2 12 11 3 10 1 8 2 0 0 9 8 15 1 5 1 4 48 196 13 12 1 18 - 15 14 11 3 6 5 1 7 4 3 0 3 4 0 2 1 0 14 18 17 16 15 14 13 12 - 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Adieresis" xMin="19" yMin="0" xMax="1342" yMax="1777"> - <contour> - <pt x="19" y="0" on="1"/> - <pt x="581" y="1480" on="1"/> - <pt x="789" y="1480" on="1"/> - <pt x="1342" y="0" on="1"/> - <pt x="1116" y="0" on="1"/> - <pt x="962" y="410" on="1"/> - <pt x="368" y="410" on="1"/> - <pt x="214" y="0" on="1"/> - </contour> - <contour> - <pt x="428" y="566" on="1"/> - <pt x="904" y="566" on="1"/> - <pt x="667" y="1200" on="1"/> - </contour> - <contour> - <pt x="401" y="1604" on="1"/> - <pt x="401" y="1777" on="1"/> - <pt x="574" y="1777" on="1"/> - <pt x="574" y="1604" on="1"/> - </contour> - <contour> - <pt x="796" y="1604" on="1"/> - <pt x="796" y="1777" on="1"/> - <pt x="969" y="1777" on="1"/> - <pt x="969" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 93 values pushed */ - 10 1 8 2 0 0 18 15 14 11 13 3 12 9 8 15 1 5 2 4 48 196 17 16 13 - 12 3 6 5 1 7 4 3 0 3 3 0 2 1 0 14 9 5 2 17 15 3 10 2 1 - 3 15 13 3 8 13 11 2 4 3 2 13 17 7 6 0 3 13 11 0 0 16 15 13 1 - 17 14 13 13 1 11 2 4 48 196 18 17 1 12 11 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Agrave" xMin="19" yMin="0" xMax="1342" yMax="1925"> - <contour> - <pt x="19" y="0" on="1"/> - <pt x="581" y="1480" on="1"/> - <pt x="789" y="1480" on="1"/> - <pt x="1342" y="0" on="1"/> - <pt x="1116" y="0" on="1"/> - <pt x="962" y="410" on="1"/> - <pt x="368" y="410" on="1"/> - <pt x="214" y="0" on="1"/> - </contour> - <contour> - <pt x="428" y="566" on="1"/> - <pt x="904" y="566" on="1"/> - <pt x="667" y="1200" on="1"/> - </contour> - <contour> - <pt x="833" y="1604" on="1"/> - <pt x="685" y="1604" on="1"/> - <pt x="364" y="1925" on="1"/> - <pt x="592" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 50 values pushed */ - 10 1 8 2 0 0 9 8 15 1 5 1 4 48 196 14 13 1 12 11 1 6 5 1 7 - 4 3 0 3 4 0 2 1 0 14 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Amacron" xMin="21" yMin="0" xMax="1344" yMax="1752"> - <contour> - <pt x="21" y="0" on="1"/> - <pt x="583" y="1480" on="1"/> - <pt x="791" y="1480" on="1"/> - <pt x="1344" y="0" on="1"/> - <pt x="1118" y="0" on="1"/> - <pt x="964" y="410" on="1"/> - <pt x="370" y="410" on="1"/> - <pt x="216" y="0" on="1"/> - </contour> - <contour> - <pt x="430" y="566" on="1"/> - <pt x="906" y="566" on="1"/> - <pt x="669" y="1200" on="1"/> - </contour> - <contour> - <pt x="366" y="1604" on="1"/> - <pt x="366" y="1752" on="1"/> - <pt x="1008" y="1752" on="1"/> - <pt x="1008" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 64 values pushed */ - 10 1 8 2 0 0 14 11 7 1 12 9 8 15 1 5 2 4 48 196 13 12 1 6 5 - 1 7 4 3 0 3 3 0 2 1 0 14 10 9 8 6 5 2 1 7 13 11 3 4 3 - 2 13 13 7 0 11 14 13 1 12 11 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Aogonek" xMin="19" yMin="-370" xMax="1342" yMax="1480"> - <contour> - <pt x="19" y="0" on="1"/> - <pt x="581" y="1480" on="1"/> - <pt x="789" y="1480" on="1"/> - <pt x="1342" y="0" on="1"/> - <pt x="1116" y="0" on="1"/> - <pt x="962" y="410" on="1"/> - <pt x="368" y="410" on="1"/> - <pt x="214" y="0" on="1"/> - </contour> - <contour> - <pt x="428" y="566" on="1"/> - <pt x="904" y="566" on="1"/> - <pt x="667" y="1200" on="1"/> - </contour> - <contour> - <pt x="1116" y="0" on="1"/> - <pt x="1223" y="0" on="1"/> - <pt x="1095" y="-81" on="0"/> - <pt x="1095" y="-179" on="1"/> - <pt x="1095" y="-275" on="0"/> - <pt x="1210" y="-275" on="1"/> - <pt x="1263" y="-275" on="0"/> - <pt x="1300" y="-260" on="1"/> - <pt x="1300" y="-341" on="1"/> - <pt x="1238" y="-370" on="0"/> - <pt x="1161" y="-370" on="1"/> - <pt x="958" y="-370" on="0"/> - <pt x="958" y="-212" on="1"/> - <pt x="958" y="-90" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 65 values pushed */ - 0 0 16 21 21 48 196 10 1 8 2 19 18 21 0 0 0 9 8 15 1 5 1 4 48 - 196 6 5 1 12 11 7 4 3 0 5 2 0 2 1 0 14 0 0 14 42 23 48 196 23 - 19 18 12 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Aring" xMin="19" yMin="0" xMax="1342" yMax="1935"> - <contour> - <pt x="19" y="0" on="1"/> - <pt x="581" y="1480" on="1"/> - <pt x="789" y="1480" on="1"/> - <pt x="1342" y="0" on="1"/> - <pt x="1116" y="0" on="1"/> - <pt x="962" y="410" on="1"/> - <pt x="368" y="410" on="1"/> - <pt x="214" y="0" on="1"/> - </contour> - <contour> - <pt x="428" y="566" on="1"/> - <pt x="904" y="566" on="1"/> - <pt x="667" y="1200" on="1"/> - </contour> - <contour> - <pt x="685" y="1935" on="1"/> - <pt x="779" y="1935" on="0"/> - <pt x="845" y="1869" on="1"/> - <pt x="912" y="1803" on="0"/> - <pt x="912" y="1709" on="1"/> - <pt x="912" y="1614" on="0"/> - <pt x="845" y="1547" on="1"/> - <pt x="778" y="1481" on="0"/> - <pt x="683" y="1481" on="1"/> - <pt x="600" y="1481" on="0"/> - <pt x="538" y="1535" on="1"/> - <pt x="458" y="1604" on="0"/> - <pt x="458" y="1708" on="1"/> - <pt x="458" y="1802" on="0"/> - <pt x="524" y="1868" on="1"/> - <pt x="591" y="1935" on="0"/> - </contour> - <contour> - <pt x="685" y="1848" on="1"/> - <pt x="626" y="1848" on="0"/> - <pt x="585" y="1808" on="1"/> - <pt x="544" y="1767" on="0"/> - <pt x="544" y="1708" on="1"/> - <pt x="544" y="1650" on="0"/> - <pt x="585" y="1609" on="1"/> - <pt x="627" y="1567" on="0"/> - <pt x="683" y="1567" on="1"/> - <pt x="737" y="1567" on="0"/> - <pt x="776" y="1600" on="1"/> - <pt x="826" y="1643" on="0"/> - <pt x="826" y="1709" on="1"/> - <pt x="826" y="1767" on="0"/> - <pt x="784" y="1808" on="1"/> - <pt x="743" y="1848" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 66 values pushed */ - 0 0 35 44 19 27 44 11 48 196 19 0 10 1 8 2 11 1 0 0 9 8 15 1 5 - 1 4 48 196 6 5 1 7 4 3 0 3 2 0 2 1 0 14 0 0 39 32 15 31 32 - 23 48 196 23 15 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Atilde" xMin="19" yMin="0" xMax="1342" yMax="1838"> - <contour> - <pt x="19" y="0" on="1"/> - <pt x="581" y="1480" on="1"/> - <pt x="789" y="1480" on="1"/> - <pt x="1342" y="0" on="1"/> - <pt x="1116" y="0" on="1"/> - <pt x="962" y="410" on="1"/> - <pt x="368" y="410" on="1"/> - <pt x="214" y="0" on="1"/> - </contour> - <contour> - <pt x="428" y="566" on="1"/> - <pt x="904" y="566" on="1"/> - <pt x="667" y="1200" on="1"/> - </contour> - <contour> - <pt x="352" y="1604" on="1"/> - <pt x="359" y="1697" on="0"/> - <pt x="384" y="1748" on="1"/> - <pt x="430" y="1838" on="0"/> - <pt x="539" y="1838" on="1"/> - <pt x="611" y="1838" on="0"/> - <pt x="672" y="1800" on="1"/> - <pt x="732" y="1763" on="1"/> - <pt x="789" y="1728" on="0"/> - <pt x="819" y="1728" on="1"/> - <pt x="884" y="1728" on="0"/> - <pt x="895" y="1838" on="1"/> - <pt x="1018" y="1838" on="1"/> - <pt x="1011" y="1744" on="0"/> - <pt x="986" y="1694" on="1"/> - <pt x="941" y="1604" on="0"/> - <pt x="833" y="1604" on="1"/> - <pt x="761" y="1604" on="0"/> - <pt x="698" y="1643" on="1"/> - <pt x="638" y="1680" on="1"/> - <pt x="583" y="1714" on="0"/> - <pt x="551" y="1714" on="1"/> - <pt x="486" y="1714" on="0"/> - <pt x="475" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 63 values pushed */ - 0 0 32 6 15 20 6 27 48 196 10 1 8 2 34 23 22 11 4 13 27 15 1 0 0 - 9 8 15 1 5 1 4 48 196 6 5 1 7 4 3 0 3 2 0 2 1 0 14 34 23 - 22 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="B" xMin="165" yMin="0" xMax="1231" yMax="1480"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="639" y="1480" on="1"/> - <pt x="931" y="1480" on="0"/> - <pt x="1051" y="1405" on="1"/> - <pt x="1172" y="1329" on="0"/> - <pt x="1172" y="1149" on="1"/> - <pt x="1172" y="983" on="0"/> - <pt x="1053" y="880" on="1"/> - <pt x="981" y="818" on="0"/> - <pt x="844" y="771" on="1"/> - <pt x="1018" y="719" on="0"/> - <pt x="1106" y="644" on="1"/> - <pt x="1231" y="538" on="0"/> - <pt x="1231" y="369" on="1"/> - <pt x="1231" y="212" on="0"/> - <pt x="1129" y="108" on="1"/> - <pt x="1057" y="34" on="0"/> - <pt x="940" y="15" on="1"/> - <pt x="847" y="0" on="0"/> - <pt x="691" y="0" on="1"/> - </contour> - <contour> - <pt x="375" y="157" on="1"/> - <pt x="530" y="157" on="1"/> - <pt x="824" y="157" on="0"/> - <pt x="917" y="201" on="1"/> - <pt x="1009" y="244" on="0"/> - <pt x="1009" y="383" on="1"/> - <pt x="1009" y="536" on="0"/> - <pt x="890" y="616" on="1"/> - <pt x="771" y="697" on="0"/> - <pt x="546" y="697" on="1"/> - <pt x="375" y="697" on="1"/> - </contour> - <contour> - <pt x="375" y="830" on="1"/> - <pt x="554" y="830" on="1"/> - <pt x="956" y="830" on="0"/> - <pt x="956" y="1113" on="1"/> - <pt x="956" y="1256" on="0"/> - <pt x="841" y="1294" on="1"/> - <pt x="753" y="1323" on="0"/> - <pt x="569" y="1323" on="1"/> - <pt x="375" y="1323" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 76 values pushed */ - 10 32 30 2 0 0 40 39 15 1 1 31 30 31 1 32 22 21 15 1 0 3 4 48 196 - 33 32 1 20 0 1 2 0 2 1 0 14 0 0 35 9 6 26 26 14 48 196 39 33 30 - 22 20 10 2 7 13 14 6 21 0 0 40 32 31 21 33 3 0 1 4 48 196 1 0 1 - 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="C" xMin="116" yMin="-37" xMax="1352" yMax="1517"> - <contour> - <pt x="1352" y="76" on="1"/> - <pt x="1123" y="-37" on="0"/> - <pt x="862" y="-37" on="1"/> - <pt x="497" y="-37" on="0"/> - <pt x="307" y="161" on="1"/> - <pt x="116" y="359" on="0"/> - <pt x="116" y="738" on="1"/> - <pt x="116" y="1116" on="0"/> - <pt x="310" y="1317" on="1"/> - <pt x="504" y="1517" on="0"/> - <pt x="871" y="1517" on="1"/> - <pt x="1076" y="1517" on="0"/> - <pt x="1350" y="1452" on="1"/> - <pt x="1350" y="1255" on="1"/> - <pt x="1039" y="1360" on="0"/> - <pt x="860" y="1360" on="1"/> - <pt x="609" y="1360" on="0"/> - <pt x="475" y="1200" on="1"/> - <pt x="341" y="1041" on="0"/> - <pt x="341" y="740" on="1"/> - <pt x="341" y="446" on="0"/> - <pt x="484" y="287" on="1"/> - <pt x="627" y="127" on="0"/> - <pt x="886" y="127" on="1"/> - <pt x="1103" y="127" on="0"/> - <pt x="1352" y="256" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 44 values pushed */ - 0 0 23 29 2 15 29 10 48 196 10 0 2 2 1 1 25 13 12 0 4 0 2 3 0 - 0 14 0 0 19 26 6 48 196 6 12 25 0 1 13 12 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Cacute" xMin="116" yMin="-37" xMax="1352" yMax="1925"> - <contour> - <pt x="1352" y="76" on="1"/> - <pt x="1123" y="-37" on="0"/> - <pt x="862" y="-37" on="1"/> - <pt x="497" y="-37" on="0"/> - <pt x="307" y="161" on="1"/> - <pt x="116" y="359" on="0"/> - <pt x="116" y="738" on="1"/> - <pt x="116" y="1116" on="0"/> - <pt x="310" y="1317" on="1"/> - <pt x="504" y="1517" on="0"/> - <pt x="871" y="1517" on="1"/> - <pt x="1076" y="1517" on="0"/> - <pt x="1350" y="1452" on="1"/> - <pt x="1350" y="1255" on="1"/> - <pt x="1039" y="1360" on="0"/> - <pt x="860" y="1360" on="1"/> - <pt x="609" y="1360" on="0"/> - <pt x="475" y="1200" on="1"/> - <pt x="341" y="1041" on="0"/> - <pt x="341" y="740" on="1"/> - <pt x="341" y="446" on="0"/> - <pt x="484" y="287" on="1"/> - <pt x="627" y="127" on="0"/> - <pt x="886" y="127" on="1"/> - <pt x="1103" y="127" on="0"/> - <pt x="1352" y="256" on="1"/> - </contour> - <contour> - <pt x="705" y="1604" on="1"/> - <pt x="946" y="1925" on="1"/> - <pt x="1174" y="1925" on="1"/> - <pt x="853" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 58 values pushed */ - 0 0 23 29 2 15 29 10 48 196 10 0 2 2 1 1 25 13 12 0 4 0 2 3 0 - 0 28 27 1 29 26 1 2 0 14 0 0 19 26 6 48 196 29 28 27 26 4 13 6 12 - 25 0 1 13 12 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ccaron" xMin="116" yMin="-37" xMax="1352" yMax="1925"> - <contour> - <pt x="1352" y="76" on="1"/> - <pt x="1123" y="-37" on="0"/> - <pt x="862" y="-37" on="1"/> - <pt x="497" y="-37" on="0"/> - <pt x="307" y="161" on="1"/> - <pt x="116" y="359" on="0"/> - <pt x="116" y="738" on="1"/> - <pt x="116" y="1116" on="0"/> - <pt x="310" y="1317" on="1"/> - <pt x="504" y="1517" on="0"/> - <pt x="871" y="1517" on="1"/> - <pt x="1076" y="1517" on="0"/> - <pt x="1350" y="1452" on="1"/> - <pt x="1350" y="1255" on="1"/> - <pt x="1039" y="1360" on="0"/> - <pt x="860" y="1360" on="1"/> - <pt x="609" y="1360" on="0"/> - <pt x="475" y="1200" on="1"/> - <pt x="341" y="1041" on="0"/> - <pt x="341" y="740" on="1"/> - <pt x="341" y="446" on="0"/> - <pt x="484" y="287" on="1"/> - <pt x="627" y="127" on="0"/> - <pt x="886" y="127" on="1"/> - <pt x="1103" y="127" on="0"/> - <pt x="1352" y="256" on="1"/> - </contour> - <contour> - <pt x="1203" y="1925" on="1"/> - <pt x="962" y="1604" on="1"/> - <pt x="744" y="1604" on="1"/> - <pt x="503" y="1925" on="1"/> - <pt x="651" y="1925" on="1"/> - <pt x="852" y="1723" on="1"/> - <pt x="854" y="1723" on="1"/> - <pt x="1055" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 70 values pushed */ - 0 0 23 29 2 15 29 10 48 196 10 0 2 2 32 31 2 26 27 3 1 1 25 13 12 - 0 4 0 2 3 0 0 33 30 29 26 3 28 27 1 2 0 14 0 0 19 26 6 48 196 - 33 32 31 30 29 28 27 26 8 13 6 12 25 0 1 13 12 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ccedilla" xMin="116" yMin="-432" xMax="1352" yMax="1517"> - <contour> - <pt x="1352" y="76" on="1"/> - <pt x="1123" y="-37" on="0"/> - <pt x="862" y="-37" on="1"/> - <pt x="497" y="-37" on="0"/> - <pt x="307" y="161" on="1"/> - <pt x="116" y="359" on="0"/> - <pt x="116" y="738" on="1"/> - <pt x="116" y="1116" on="0"/> - <pt x="310" y="1317" on="1"/> - <pt x="504" y="1517" on="0"/> - <pt x="871" y="1517" on="1"/> - <pt x="1076" y="1517" on="0"/> - <pt x="1350" y="1452" on="1"/> - <pt x="1350" y="1255" on="1"/> - <pt x="1039" y="1360" on="0"/> - <pt x="860" y="1360" on="1"/> - <pt x="609" y="1360" on="0"/> - <pt x="475" y="1200" on="1"/> - <pt x="341" y="1041" on="0"/> - <pt x="341" y="740" on="1"/> - <pt x="341" y="446" on="0"/> - <pt x="484" y="287" on="1"/> - <pt x="627" y="127" on="0"/> - <pt x="886" y="127" on="1"/> - <pt x="1103" y="127" on="0"/> - <pt x="1352" y="256" on="1"/> - </contour> - <contour> - <pt x="767" y="0" on="1"/> - <pt x="864" y="0" on="1"/> - <pt x="804" y="-109" on="1"/> - <pt x="876" y="-111" on="0"/> - <pt x="928" y="-148" on="1"/> - <pt x="998" y="-197" on="0"/> - <pt x="998" y="-269" on="1"/> - <pt x="998" y="-337" on="0"/> - <pt x="939" y="-384" on="1"/> - <pt x="880" y="-432" on="0"/> - <pt x="795" y="-432" on="1"/> - <pt x="728" y="-432" on="0"/> - <pt x="651" y="-411" on="1"/> - <pt x="651" y="-330" on="1"/> - <pt x="701" y="-345" on="0"/> - <pt x="755" y="-345" on="1"/> - <pt x="859" y="-345" on="0"/> - <pt x="859" y="-271" on="1"/> - <pt x="859" y="-178" on="0"/> - <pt x="672" y="-175" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 71 values pushed */ - 0 0 41 44 36 23 29 2 15 29 10 48 196 10 0 2 2 1 1 25 13 12 0 4 0 - 2 3 0 0 1 45 39 38 28 27 26 6 13 36 2 0 14 0 0 43 42 32 19 26 6 - 48 196 45 39 38 28 27 26 6 13 32 6 12 25 0 1 13 12 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ccircumflex" xMin="116" yMin="-37" xMax="1352" yMax="1925"> - <contour> - <pt x="1352" y="76" on="1"/> - <pt x="1123" y="-37" on="0"/> - <pt x="862" y="-37" on="1"/> - <pt x="497" y="-37" on="0"/> - <pt x="307" y="161" on="1"/> - <pt x="116" y="359" on="0"/> - <pt x="116" y="738" on="1"/> - <pt x="116" y="1116" on="0"/> - <pt x="310" y="1317" on="1"/> - <pt x="504" y="1517" on="0"/> - <pt x="871" y="1517" on="1"/> - <pt x="1076" y="1517" on="0"/> - <pt x="1350" y="1452" on="1"/> - <pt x="1350" y="1255" on="1"/> - <pt x="1039" y="1360" on="0"/> - <pt x="860" y="1360" on="1"/> - <pt x="609" y="1360" on="0"/> - <pt x="475" y="1200" on="1"/> - <pt x="341" y="1041" on="0"/> - <pt x="341" y="740" on="1"/> - <pt x="341" y="446" on="0"/> - <pt x="484" y="287" on="1"/> - <pt x="627" y="127" on="0"/> - <pt x="886" y="127" on="1"/> - <pt x="1103" y="127" on="0"/> - <pt x="1352" y="256" on="1"/> - </contour> - <contour> - <pt x="503" y="1604" on="1"/> - <pt x="744" y="1925" on="1"/> - <pt x="962" y="1925" on="1"/> - <pt x="1203" y="1604" on="1"/> - <pt x="1055" y="1604" on="1"/> - <pt x="854" y="1806" on="1"/> - <pt x="852" y="1806" on="1"/> - <pt x="651" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 70 values pushed */ - 0 0 23 29 2 15 29 10 48 196 10 0 2 2 32 31 2 27 26 3 1 1 25 13 12 - 0 4 0 2 3 0 0 28 27 1 33 30 29 26 3 2 0 14 0 0 19 26 6 48 196 - 33 32 31 30 29 28 27 26 8 13 6 12 25 0 1 13 12 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Cdotaccent" xMin="116" yMin="-37" xMax="1352" yMax="1801"> - <contour> - <pt x="1352" y="76" on="1"/> - <pt x="1123" y="-37" on="0"/> - <pt x="862" y="-37" on="1"/> - <pt x="497" y="-37" on="0"/> - <pt x="307" y="161" on="1"/> - <pt x="116" y="359" on="0"/> - <pt x="116" y="738" on="1"/> - <pt x="116" y="1116" on="0"/> - <pt x="310" y="1317" on="1"/> - <pt x="504" y="1517" on="0"/> - <pt x="871" y="1517" on="1"/> - <pt x="1076" y="1517" on="0"/> - <pt x="1350" y="1452" on="1"/> - <pt x="1350" y="1255" on="1"/> - <pt x="1039" y="1360" on="0"/> - <pt x="860" y="1360" on="1"/> - <pt x="609" y="1360" on="0"/> - <pt x="475" y="1200" on="1"/> - <pt x="341" y="1041" on="0"/> - <pt x="341" y="740" on="1"/> - <pt x="341" y="446" on="0"/> - <pt x="484" y="287" on="1"/> - <pt x="627" y="127" on="0"/> - <pt x="886" y="127" on="1"/> - <pt x="1103" y="127" on="0"/> - <pt x="1352" y="256" on="1"/> - </contour> - <contour> - <pt x="754" y="1604" on="1"/> - <pt x="754" y="1801" on="1"/> - <pt x="951" y="1801" on="1"/> - <pt x="951" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 73 values pushed */ - 0 0 23 29 2 15 29 10 48 196 10 0 2 2 1 1 25 13 12 0 4 0 2 3 0 - 0 0 0 29 26 5 1 27 1 4 48 196 28 27 1 0 14 0 0 19 26 6 48 196 6 - 26 0 0 27 26 4 1 28 1 4 48 196 29 28 1 25 0 1 13 12 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="D" xMin="165" yMin="0" xMax="1386" yMax="1480"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="639" y="1480" on="1"/> - <pt x="1386" y="1480" on="0"/> - <pt x="1386" y="774" on="1"/> - <pt x="1386" y="406" on="0"/> - <pt x="1191" y="203" on="1"/> - <pt x="997" y="0" on="0"/> - <pt x="642" y="0" on="1"/> - </contour> - <contour> - <pt x="375" y="157" on="1"/> - <pt x="627" y="157" on="1"/> - <pt x="1161" y="157" on="0"/> - <pt x="1161" y="750" on="1"/> - <pt x="1161" y="1099" on="0"/> - <pt x="950" y="1242" on="1"/> - <pt x="888" y="1284" on="0"/> - <pt x="803" y="1302" on="1"/> - <pt x="700" y="1323" on="0"/> - <pt x="530" y="1323" on="1"/> - <pt x="375" y="1323" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 54 values pushed */ - 0 0 19 18 15 1 1 10 9 15 1 0 2 4 48 196 8 0 1 0 2 1 0 14 0 - 0 12 26 4 48 196 18 10 8 2 4 13 4 9 0 0 19 9 33 1 0 1 4 48 196 - 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Dcaron" xMin="165" yMin="0" xMax="1386" yMax="1925"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="639" y="1480" on="1"/> - <pt x="1386" y="1480" on="0"/> - <pt x="1386" y="774" on="1"/> - <pt x="1386" y="406" on="0"/> - <pt x="1191" y="203" on="1"/> - <pt x="997" y="0" on="0"/> - <pt x="642" y="0" on="1"/> - </contour> - <contour> - <pt x="375" y="157" on="1"/> - <pt x="627" y="157" on="1"/> - <pt x="1161" y="157" on="0"/> - <pt x="1161" y="750" on="1"/> - <pt x="1161" y="1099" on="0"/> - <pt x="950" y="1242" on="1"/> - <pt x="888" y="1284" on="0"/> - <pt x="803" y="1302" on="1"/> - <pt x="700" y="1323" on="0"/> - <pt x="530" y="1323" on="1"/> - <pt x="375" y="1323" on="1"/> - </contour> - <contour> - <pt x="1032" y="1925" on="1"/> - <pt x="791" y="1604" on="1"/> - <pt x="573" y="1604" on="1"/> - <pt x="332" y="1925" on="1"/> - <pt x="480" y="1925" on="1"/> - <pt x="681" y="1723" on="1"/> - <pt x="683" y="1723" on="1"/> - <pt x="884" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 80 values pushed */ - 26 25 2 20 21 3 0 0 19 18 15 1 1 10 9 15 1 0 2 4 48 196 27 24 23 - 20 3 22 21 1 8 0 1 3 0 2 1 0 14 0 0 12 26 4 48 196 23 9 0 2 - 27 26 25 24 22 21 20 18 10 8 2 11 13 4 9 0 0 19 9 33 1 0 1 4 48 - 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Dcroat" xMin="5" yMin="0" xMax="1386" yMax="1480"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="679" on="1"/> - <pt x="5" y="679" on="1"/> - <pt x="5" y="836" on="1"/> - <pt x="165" y="836" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="639" y="1480" on="1"/> - <pt x="1386" y="1480" on="0"/> - <pt x="1386" y="774" on="1"/> - <pt x="1386" y="406" on="0"/> - <pt x="1191" y="203" on="1"/> - <pt x="996" y="0" on="0"/> - <pt x="642" y="0" on="1"/> - </contour> - <contour> - <pt x="375" y="157" on="1"/> - <pt x="627" y="157" on="1"/> - <pt x="1161" y="157" on="0"/> - <pt x="1161" y="750" on="1"/> - <pt x="1161" y="1099" on="0"/> - <pt x="950" y="1242" on="1"/> - <pt x="888" y="1284" on="0"/> - <pt x="803" y="1302" on="1"/> - <pt x="700" y="1323" on="0"/> - <pt x="530" y="1323" on="1"/> - <pt x="375" y="1323" on="1"/> - <pt x="375" y="836" on="1"/> - <pt x="708" y="836" on="1"/> - <pt x="708" y="679" on="1"/> - <pt x="375" y="679" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 80 values pushed */ - 0 0 23 22 15 1 5 27 26 2 1 15 3 3 14 13 15 1 0 3 4 48 196 25 24 - 4 3 3 12 0 1 2 0 6 5 0 14 0 0 16 26 8 48 196 22 14 12 6 4 25 - 13 3 8 25 0 0 27 24 23 13 33 3 0 1 4 48 196 26 25 1 5 4 1 0 3 - 3 2 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="E" xMin="191" yMin="0" xMax="1308" yMax="1480"> - <contour> - <pt x="191" y="0" on="1"/> - <pt x="191" y="1480" on="1"/> - <pt x="1264" y="1480" on="1"/> - <pt x="1264" y="1323" on="1"/> - <pt x="401" y="1323" on="1"/> - <pt x="401" y="848" on="1"/> - <pt x="1165" y="848" on="1"/> - <pt x="1165" y="693" on="1"/> - <pt x="401" y="693" on="1"/> - <pt x="401" y="157" on="1"/> - <pt x="1308" y="157" on="1"/> - <pt x="1308" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 60 values pushed */ - 0 0 4 3 15 1 1 8 7 15 1 5 10 9 15 1 0 3 4 48 196 6 5 1 11 - 0 1 2 0 2 1 0 14 0 0 9 8 5 4 33 3 0 1 4 48 196 11 10 1 3 - 2 1 7 6 1 1 0 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Eacute" xMin="191" yMin="0" xMax="1308" yMax="1925"> - <contour> - <pt x="191" y="0" on="1"/> - <pt x="191" y="1480" on="1"/> - <pt x="1264" y="1480" on="1"/> - <pt x="1264" y="1323" on="1"/> - <pt x="401" y="1323" on="1"/> - <pt x="401" y="848" on="1"/> - <pt x="1165" y="848" on="1"/> - <pt x="1165" y="693" on="1"/> - <pt x="401" y="693" on="1"/> - <pt x="401" y="157" on="1"/> - <pt x="1308" y="157" on="1"/> - <pt x="1308" y="0" on="1"/> - </contour> - <contour> - <pt x="598" y="1604" on="1"/> - <pt x="839" y="1925" on="1"/> - <pt x="1067" y="1925" on="1"/> - <pt x="746" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 74 values pushed */ - 0 0 4 3 15 1 1 8 7 15 1 5 10 9 15 1 0 3 4 48 196 14 13 1 15 - 12 1 6 5 1 11 0 1 4 0 2 1 0 14 15 14 13 12 4 6 4 3 0 0 9 - 8 5 4 33 3 0 1 4 48 196 11 10 1 3 2 1 7 6 1 1 0 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ebreve" xMin="191" yMin="0" xMax="1308" yMax="1925"> - <contour> - <pt x="191" y="0" on="1"/> - <pt x="191" y="1480" on="1"/> - <pt x="1264" y="1480" on="1"/> - <pt x="1264" y="1323" on="1"/> - <pt x="401" y="1323" on="1"/> - <pt x="401" y="848" on="1"/> - <pt x="1165" y="848" on="1"/> - <pt x="1165" y="693" on="1"/> - <pt x="401" y="693" on="1"/> - <pt x="401" y="157" on="1"/> - <pt x="1308" y="157" on="1"/> - <pt x="1308" y="0" on="1"/> - </contour> - <contour> - <pt x="404" y="1925" on="1"/> - <pt x="527" y="1925" on="1"/> - <pt x="548" y="1831" on="0"/> - <pt x="602" y="1791" on="1"/> - <pt x="654" y="1752" on="0"/> - <pt x="737" y="1752" on="1"/> - <pt x="831" y="1752" on="0"/> - <pt x="885" y="1801" on="1"/> - <pt x="928" y="1841" on="0"/> - <pt x="947" y="1925" on="1"/> - <pt x="1070" y="1925" on="1"/> - <pt x="1054" y="1791" on="0"/> - <pt x="981" y="1710" on="1"/> - <pt x="887" y="1604" on="0"/> - <pt x="737" y="1604" on="1"/> - <pt x="580" y="1604" on="0"/> - <pt x="485" y="1719" on="1"/> - <pt x="420" y="1797" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 83 values pushed */ - 0 0 17 40 26 48 196 22 21 13 12 4 13 26 1 0 0 4 3 15 1 1 8 7 15 - 1 5 10 9 15 1 0 3 4 48 196 6 5 1 11 0 1 2 0 2 1 0 14 22 21 - 13 12 4 6 4 3 0 0 9 8 5 4 33 3 0 1 4 48 196 11 10 1 3 2 1 - 7 6 1 1 0 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ecaron" xMin="191" yMin="0" xMax="1308" yMax="1925"> - <contour> - <pt x="191" y="0" on="1"/> - <pt x="191" y="1480" on="1"/> - <pt x="1264" y="1480" on="1"/> - <pt x="1264" y="1323" on="1"/> - <pt x="401" y="1323" on="1"/> - <pt x="401" y="848" on="1"/> - <pt x="1165" y="848" on="1"/> - <pt x="1165" y="693" on="1"/> - <pt x="401" y="693" on="1"/> - <pt x="401" y="157" on="1"/> - <pt x="1308" y="157" on="1"/> - <pt x="1308" y="0" on="1"/> - </contour> - <contour> - <pt x="1082" y="1925" on="1"/> - <pt x="841" y="1604" on="1"/> - <pt x="623" y="1604" on="1"/> - <pt x="382" y="1925" on="1"/> - <pt x="530" y="1925" on="1"/> - <pt x="731" y="1723" on="1"/> - <pt x="733" y="1723" on="1"/> - <pt x="934" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 89 values pushed */ - 18 17 2 12 13 3 0 0 4 3 15 1 1 8 7 15 1 5 10 9 15 1 0 3 4 - 48 196 19 16 15 12 3 14 13 1 6 5 1 11 0 1 4 0 2 1 0 14 19 18 17 - 16 14 13 12 7 6 4 3 15 4 0 2 0 0 9 8 5 4 33 3 0 1 4 48 196 - 11 10 1 3 2 1 7 6 1 1 0 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ecircumflex" xMin="191" yMin="0" xMax="1308" yMax="1925"> - <contour> - <pt x="191" y="0" on="1"/> - <pt x="191" y="1480" on="1"/> - <pt x="1264" y="1480" on="1"/> - <pt x="1264" y="1323" on="1"/> - <pt x="401" y="1323" on="1"/> - <pt x="401" y="848" on="1"/> - <pt x="1165" y="848" on="1"/> - <pt x="1165" y="693" on="1"/> - <pt x="401" y="693" on="1"/> - <pt x="401" y="157" on="1"/> - <pt x="1308" y="157" on="1"/> - <pt x="1308" y="0" on="1"/> - </contour> - <contour> - <pt x="399" y="1604" on="1"/> - <pt x="640" y="1925" on="1"/> - <pt x="858" y="1925" on="1"/> - <pt x="1099" y="1604" on="1"/> - <pt x="951" y="1604" on="1"/> - <pt x="750" y="1806" on="1"/> - <pt x="748" y="1806" on="1"/> - <pt x="547" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 89 values pushed */ - 18 17 2 13 12 3 0 0 4 3 15 1 1 8 7 15 1 5 10 9 15 1 0 3 4 - 48 196 14 13 1 19 16 15 12 3 6 5 1 11 0 1 4 0 2 1 0 14 19 18 17 - 16 15 14 13 7 6 4 3 12 4 0 2 0 0 9 8 5 4 33 3 0 1 4 48 196 - 11 10 1 3 2 1 7 6 1 1 0 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Edieresis" xMin="191" yMin="0" xMax="1308" yMax="1777"> - <contour> - <pt x="191" y="0" on="1"/> - <pt x="191" y="1480" on="1"/> - <pt x="1264" y="1480" on="1"/> - <pt x="1264" y="1323" on="1"/> - <pt x="401" y="1323" on="1"/> - <pt x="401" y="848" on="1"/> - <pt x="1165" y="848" on="1"/> - <pt x="1165" y="693" on="1"/> - <pt x="401" y="693" on="1"/> - <pt x="401" y="157" on="1"/> - <pt x="1308" y="157" on="1"/> - <pt x="1308" y="0" on="1"/> - </contour> - <contour> - <pt x="450" y="1604" on="1"/> - <pt x="450" y="1777" on="1"/> - <pt x="623" y="1777" on="1"/> - <pt x="623" y="1604" on="1"/> - </contour> - <contour> - <pt x="845" y="1604" on="1"/> - <pt x="845" y="1777" on="1"/> - <pt x="1018" y="1777" on="1"/> - <pt x="1018" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 88 values pushed */ - 0 0 19 16 15 12 13 3 13 4 3 15 1 1 8 7 15 1 5 10 9 15 1 0 4 - 4 48 196 18 17 14 13 3 6 5 1 11 0 1 3 0 2 1 0 14 0 0 17 16 13 - 1 18 15 14 13 1 12 9 8 5 4 33 3 0 3 4 48 196 19 18 1 13 12 1 11 - 10 1 3 2 1 7 6 1 1 0 1 6 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Edotaccent" xMin="191" yMin="0" xMax="1308" yMax="1801"> - <contour> - <pt x="191" y="0" on="1"/> - <pt x="191" y="1480" on="1"/> - <pt x="1264" y="1480" on="1"/> - <pt x="1264" y="1323" on="1"/> - <pt x="401" y="1323" on="1"/> - <pt x="401" y="848" on="1"/> - <pt x="1165" y="848" on="1"/> - <pt x="1165" y="693" on="1"/> - <pt x="401" y="693" on="1"/> - <pt x="401" y="157" on="1"/> - <pt x="1308" y="157" on="1"/> - <pt x="1308" y="0" on="1"/> - </contour> - <contour> - <pt x="635" y="1604" on="1"/> - <pt x="635" y="1801" on="1"/> - <pt x="832" y="1801" on="1"/> - <pt x="832" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 76 values pushed */ - 0 0 15 12 5 1 13 4 3 15 1 1 8 7 15 1 5 10 9 15 1 0 4 4 48 - 196 14 13 1 6 5 1 11 0 1 3 0 2 1 0 14 0 0 15 14 4 1 12 9 8 - 5 4 33 3 0 2 4 48 196 13 12 1 11 10 1 3 2 1 7 6 1 1 0 1 5 - 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Egrave" xMin="191" yMin="0" xMax="1308" yMax="1925"> - <contour> - <pt x="191" y="0" on="1"/> - <pt x="191" y="1480" on="1"/> - <pt x="1264" y="1480" on="1"/> - <pt x="1264" y="1323" on="1"/> - <pt x="401" y="1323" on="1"/> - <pt x="401" y="848" on="1"/> - <pt x="1165" y="848" on="1"/> - <pt x="1165" y="693" on="1"/> - <pt x="401" y="693" on="1"/> - <pt x="401" y="157" on="1"/> - <pt x="1308" y="157" on="1"/> - <pt x="1308" y="0" on="1"/> - </contour> - <contour> - <pt x="894" y="1604" on="1"/> - <pt x="746" y="1604" on="1"/> - <pt x="425" y="1925" on="1"/> - <pt x="653" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 74 values pushed */ - 0 0 4 3 15 1 1 8 7 15 1 5 10 9 15 1 0 3 4 48 196 15 14 1 13 - 12 1 6 5 1 11 0 1 4 0 2 1 0 14 15 14 13 12 4 6 4 3 0 0 9 - 8 5 4 33 3 0 1 4 48 196 11 10 1 3 2 1 7 6 1 1 0 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Emacron" xMin="191" yMin="0" xMax="1308" yMax="1752"> - <contour> - <pt x="191" y="0" on="1"/> - <pt x="191" y="1480" on="1"/> - <pt x="1264" y="1480" on="1"/> - <pt x="1264" y="1323" on="1"/> - <pt x="401" y="1323" on="1"/> - <pt x="401" y="848" on="1"/> - <pt x="1165" y="848" on="1"/> - <pt x="1165" y="693" on="1"/> - <pt x="401" y="693" on="1"/> - <pt x="401" y="157" on="1"/> - <pt x="1308" y="157" on="1"/> - <pt x="1308" y="0" on="1"/> - </contour> - <contour> - <pt x="401" y="1604" on="1"/> - <pt x="401" y="1752" on="1"/> - <pt x="1043" y="1752" on="1"/> - <pt x="1043" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 80 values pushed */ - 0 0 15 12 7 1 13 4 3 15 1 1 8 7 15 1 5 10 9 15 1 0 4 4 48 - 196 14 13 1 6 5 1 11 0 1 3 0 2 1 0 14 0 0 13 12 9 8 5 4 33 - 5 0 1 4 48 196 15 14 1 13 12 9 8 5 4 5 11 10 1 3 2 1 7 6 1 - 1 0 1 6 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Eng" xMin="165" yMin="-420" xMax="1313" yMax="1480"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="370" y="1480" on="1"/> - <pt x="1133" y="337" on="1"/> - <pt x="1133" y="1480" on="1"/> - <pt x="1313" y="1480" on="1"/> - <pt x="1313" y="-92" on="1"/> - <pt x="1313" y="-420" on="0"/> - <pt x="995" y="-420" on="1"/> - <pt x="921" y="-420" on="0"/> - <pt x="844" y="-399" on="1"/> - <pt x="844" y="-245" on="1"/> - <pt x="910" y="-272" on="0"/> - <pt x="985" y="-272" on="1"/> - <pt x="1133" y="-272" on="0"/> - <pt x="1133" y="-55" on="1"/> - <pt x="1133" y="-40" on="1"/> - <pt x="345" y="1143" on="1"/> - <pt x="345" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 66 values pushed */ - 0 0 13 40 8 48 196 17 3 2 1 0 3 16 15 11 10 6 5 13 8 0 18 0 1 - 0 5 4 2 1 0 3 14 2 10 17 2 0 0 16 15 4 3 24 3 5 18 17 24 1 - 0 2 4 48 196 6 5 1 11 10 1 1 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Eogonek" xMin="191" yMin="-370" xMax="1308" yMax="1480"> - <contour> - <pt x="191" y="0" on="1"/> - <pt x="191" y="1480" on="1"/> - <pt x="1264" y="1480" on="1"/> - <pt x="1264" y="1323" on="1"/> - <pt x="401" y="1323" on="1"/> - <pt x="401" y="848" on="1"/> - <pt x="1165" y="848" on="1"/> - <pt x="1165" y="693" on="1"/> - <pt x="401" y="693" on="1"/> - <pt x="401" y="157" on="1"/> - <pt x="1308" y="157" on="1"/> - <pt x="1308" y="0" on="1"/> - </contour> - <contour> - <pt x="1075" y="0" on="1"/> - <pt x="1182" y="0" on="1"/> - <pt x="1054" y="-81" on="0"/> - <pt x="1054" y="-179" on="1"/> - <pt x="1054" y="-275" on="0"/> - <pt x="1169" y="-275" on="1"/> - <pt x="1222" y="-275" on="0"/> - <pt x="1259" y="-260" on="1"/> - <pt x="1259" y="-341" on="1"/> - <pt x="1197" y="-370" on="0"/> - <pt x="1120" y="-370" on="1"/> - <pt x="917" y="-370" on="0"/> - <pt x="917" y="-212" on="1"/> - <pt x="917" y="-90" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 94 values pushed */ - 0 0 17 21 22 48 196 20 19 22 0 0 0 4 3 15 1 1 8 7 15 1 5 10 9 - 15 1 0 3 4 48 196 6 5 1 13 12 11 0 3 2 0 2 1 0 14 0 0 15 42 - 24 48 196 20 19 13 3 2 6 3 24 24 12 2 6 4 3 0 0 9 8 5 4 33 3 - 0 1 4 48 196 11 10 1 3 2 1 7 6 1 1 0 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[1] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Eth" xMin="5" yMin="0" xMax="1386" yMax="1480"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="679" on="1"/> - <pt x="5" y="679" on="1"/> - <pt x="5" y="836" on="1"/> - <pt x="165" y="836" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="639" y="1480" on="1"/> - <pt x="1386" y="1480" on="0"/> - <pt x="1386" y="774" on="1"/> - <pt x="1386" y="406" on="0"/> - <pt x="1191" y="203" on="1"/> - <pt x="996" y="0" on="0"/> - <pt x="642" y="0" on="1"/> - </contour> - <contour> - <pt x="375" y="157" on="1"/> - <pt x="627" y="157" on="1"/> - <pt x="1161" y="157" on="0"/> - <pt x="1161" y="750" on="1"/> - <pt x="1161" y="1099" on="0"/> - <pt x="950" y="1242" on="1"/> - <pt x="888" y="1284" on="0"/> - <pt x="803" y="1302" on="1"/> - <pt x="700" y="1323" on="0"/> - <pt x="530" y="1323" on="1"/> - <pt x="375" y="1323" on="1"/> - <pt x="375" y="836" on="1"/> - <pt x="708" y="836" on="1"/> - <pt x="708" y="679" on="1"/> - <pt x="375" y="679" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 80 values pushed */ - 0 0 23 22 15 1 5 27 26 2 1 15 3 3 14 13 15 1 0 3 4 48 196 25 24 - 4 3 3 12 0 1 2 0 6 5 0 14 0 0 16 26 8 48 196 22 14 12 6 4 25 - 13 3 8 25 0 0 27 24 23 13 33 3 0 1 4 48 196 26 25 1 5 4 1 0 3 - 3 2 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Euro" xMin="0" yMin="-37" xMax="1080" yMax="1515"> - <contour> - <pt x="377" y="537" on="1"/> - <pt x="416" y="376" on="0"/> - <pt x="475" y="288" on="1"/> - <pt x="582" y="127" on="0"/> - <pt x="773" y="127" on="1"/> - <pt x="898" y="127" on="0"/> - <pt x="1080" y="199" on="1"/> - <pt x="1080" y="27" on="1"/> - <pt x="884" y="-37" on="0"/> - <pt x="748" y="-37" on="1"/> - <pt x="516" y="-37" on="0"/> - <pt x="372" y="100" on="1"/> - <pt x="270" y="197" on="0"/> - <pt x="219" y="357" on="1"/> - <pt x="200" y="415" on="0"/> - <pt x="177" y="537" on="1"/> - <pt x="0" y="537" on="1"/> - <pt x="51" y="660" on="1"/> - <pt x="162" y="660" on="1"/> - <pt x="160" y="735" on="1"/> - <pt x="160" y="739" on="0"/> - <pt x="161" y="758" on="1"/> - <pt x="162" y="801" on="0"/> - <pt x="165" y="857" on="1"/> - <pt x="0" y="857" on="1"/> - <pt x="51" y="981" on="1"/> - <pt x="183" y="981" on="1"/> - <pt x="223" y="1147" on="0"/> - <pt x="271" y="1232" on="1"/> - <pt x="429" y="1515" on="0"/> - <pt x="782" y="1515" on="1"/> - <pt x="908" y="1515" on="0"/> - <pt x="1079" y="1471" on="1"/> - <pt x="1079" y="1289" on="1"/> - <pt x="911" y="1360" on="0"/> - <pt x="784" y="1360" on="1"/> - <pt x="607" y="1360" on="0"/> - <pt x="502" y="1232" on="1"/> - <pt x="442" y="1158" on="0"/> - <pt x="410" y="1066" on="1"/> - <pt x="397" y="1030" on="0"/> - <pt x="383" y="981" on="1"/> - <pt x="950" y="981" on="1"/> - <pt x="899" y="857" on="1"/> - <pt x="362" y="857" on="1"/> - <pt x="358" y="783" on="0"/> - <pt x="357" y="736" on="1"/> - <pt x="359" y="660" on="1"/> - <pt x="818" y="660" on="1"/> - <pt x="767" y="537" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 90 values pushed */ - 0 0 35 35 30 4 45 9 48 196 30 0 9 2 1 33 32 2 0 25 3 0 1 7 6 - 2 0 2 3 0 0 0 44 43 24 23 6 3 25 49 16 15 0 6 3 17 2 4 48 196 - 42 41 26 25 3 48 47 18 17 3 2 0 14 49 48 47 44 43 42 41 26 25 24 23 18 - 17 16 15 0 16 13 32 7 6 1 33 32 1 2 0 - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Euro#1" xMin="0" yMin="-37" xMax="1080" yMax="1515"> - <contour> - <pt x="377" y="537" on="1"/> - <pt x="416" y="376" on="0"/> - <pt x="475" y="288" on="1"/> - <pt x="582" y="127" on="0"/> - <pt x="773" y="127" on="1"/> - <pt x="898" y="127" on="0"/> - <pt x="1080" y="199" on="1"/> - <pt x="1080" y="27" on="1"/> - <pt x="884" y="-37" on="0"/> - <pt x="748" y="-37" on="1"/> - <pt x="516" y="-37" on="0"/> - <pt x="372" y="100" on="1"/> - <pt x="270" y="197" on="0"/> - <pt x="219" y="357" on="1"/> - <pt x="200" y="415" on="0"/> - <pt x="177" y="537" on="1"/> - <pt x="0" y="537" on="1"/> - <pt x="51" y="660" on="1"/> - <pt x="162" y="660" on="1"/> - <pt x="160" y="735" on="1"/> - <pt x="160" y="739" on="0"/> - <pt x="161" y="758" on="1"/> - <pt x="162" y="801" on="0"/> - <pt x="165" y="857" on="1"/> - <pt x="0" y="857" on="1"/> - <pt x="51" y="981" on="1"/> - <pt x="183" y="981" on="1"/> - <pt x="223" y="1147" on="0"/> - <pt x="271" y="1232" on="1"/> - <pt x="429" y="1515" on="0"/> - <pt x="782" y="1515" on="1"/> - <pt x="908" y="1515" on="0"/> - <pt x="1079" y="1471" on="1"/> - <pt x="1079" y="1289" on="1"/> - <pt x="911" y="1360" on="0"/> - <pt x="784" y="1360" on="1"/> - <pt x="607" y="1360" on="0"/> - <pt x="502" y="1232" on="1"/> - <pt x="442" y="1158" on="0"/> - <pt x="410" y="1066" on="1"/> - <pt x="397" y="1030" on="0"/> - <pt x="383" y="981" on="1"/> - <pt x="950" y="981" on="1"/> - <pt x="899" y="857" on="1"/> - <pt x="362" y="857" on="1"/> - <pt x="358" y="783" on="0"/> - <pt x="357" y="736" on="1"/> - <pt x="359" y="660" on="1"/> - <pt x="818" y="660" on="1"/> - <pt x="767" y="537" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 90 values pushed */ - 0 0 35 35 30 4 45 9 48 196 30 0 9 2 1 33 32 2 0 25 3 0 1 7 6 - 2 0 2 3 0 0 0 44 43 24 23 6 3 25 49 16 15 0 6 3 17 2 4 48 196 - 42 41 26 25 3 48 47 18 17 3 2 0 14 49 48 47 44 43 42 41 26 25 24 23 18 - 17 16 15 0 16 13 32 7 6 1 33 32 1 2 0 - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="F" xMin="191" yMin="0" xMax="1196" yMax="1480"> - <contour> - <pt x="191" y="0" on="1"/> - <pt x="191" y="1480" on="1"/> - <pt x="1196" y="1480" on="1"/> - <pt x="1196" y="1323" on="1"/> - <pt x="401" y="1323" on="1"/> - <pt x="401" y="827" on="1"/> - <pt x="1096" y="827" on="1"/> - <pt x="1096" y="672" on="1"/> - <pt x="401" y="672" on="1"/> - <pt x="401" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 52 values pushed */ - 0 0 4 3 15 1 1 8 7 15 1 5 2 4 48 196 6 5 1 9 0 1 2 0 2 - 1 0 14 0 0 9 8 5 4 33 3 0 1 4 48 196 3 2 1 7 6 1 1 0 1 - 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="G" xMin="93" yMin="-37" xMax="1405" yMax="1517"> - <contour> - <pt x="1405" y="688" on="1"/> - <pt x="1405" y="40" on="1"/> - <pt x="1131" y="-37" on="0"/> - <pt x="871" y="-37" on="1"/> - <pt x="93" y="-37" on="0"/> - <pt x="93" y="735" on="1"/> - <pt x="93" y="1113" on="0"/> - <pt x="294" y="1315" on="1"/> - <pt x="496" y="1517" on="0"/> - <pt x="877" y="1517" on="1"/> - <pt x="1123" y="1517" on="0"/> - <pt x="1403" y="1450" on="1"/> - <pt x="1403" y="1256" on="1"/> - <pt x="1082" y="1360" on="0"/> - <pt x="868" y="1360" on="1"/> - <pt x="318" y="1360" on="0"/> - <pt x="318" y="744" on="1"/> - <pt x="318" y="440" on="0"/> - <pt x="470" y="280" on="1"/> - <pt x="621" y="120" on="0"/> - <pt x="900" y="120" on="1"/> - <pt x="1015" y="120" on="0"/> - <pt x="1196" y="157" on="1"/> - <pt x="1196" y="534" on="1"/> - <pt x="949" y="534" on="1"/> - <pt x="949" y="688" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 77 values pushed */ - 0 0 20 29 3 14 29 9 48 196 9 0 3 2 1 12 11 2 0 0 3 0 1 22 1 - 2 23 2 3 0 0 0 24 23 15 1 0 1 4 48 196 25 0 1 0 14 0 0 16 26 - 5 48 196 5 24 0 0 23 22 33 1 0 1 4 48 196 1 0 1 12 11 1 25 24 1 - 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Gbreve" xMin="93" yMin="-37" xMax="1405" yMax="1925"> - <contour> - <pt x="1405" y="688" on="1"/> - <pt x="1405" y="40" on="1"/> - <pt x="1131" y="-37" on="0"/> - <pt x="871" y="-37" on="1"/> - <pt x="93" y="-37" on="0"/> - <pt x="93" y="735" on="1"/> - <pt x="93" y="1113" on="0"/> - <pt x="294" y="1315" on="1"/> - <pt x="496" y="1517" on="0"/> - <pt x="877" y="1517" on="1"/> - <pt x="1123" y="1517" on="0"/> - <pt x="1403" y="1450" on="1"/> - <pt x="1403" y="1256" on="1"/> - <pt x="1082" y="1360" on="0"/> - <pt x="868" y="1360" on="1"/> - <pt x="318" y="1360" on="0"/> - <pt x="318" y="744" on="1"/> - <pt x="318" y="440" on="0"/> - <pt x="470" y="280" on="1"/> - <pt x="621" y="120" on="0"/> - <pt x="900" y="120" on="1"/> - <pt x="1015" y="120" on="0"/> - <pt x="1196" y="157" on="1"/> - <pt x="1196" y="534" on="1"/> - <pt x="949" y="534" on="1"/> - <pt x="949" y="688" on="1"/> - </contour> - <contour> - <pt x="534" y="1925" on="1"/> - <pt x="657" y="1925" on="1"/> - <pt x="678" y="1831" on="0"/> - <pt x="732" y="1791" on="1"/> - <pt x="784" y="1752" on="0"/> - <pt x="867" y="1752" on="1"/> - <pt x="961" y="1752" on="0"/> - <pt x="1015" y="1801" on="1"/> - <pt x="1058" y="1841" on="0"/> - <pt x="1077" y="1925" on="1"/> - <pt x="1200" y="1925" on="1"/> - <pt x="1184" y="1791" on="0"/> - <pt x="1111" y="1710" on="1"/> - <pt x="1017" y="1604" on="0"/> - <pt x="867" y="1604" on="1"/> - <pt x="710" y="1604" on="0"/> - <pt x="615" y="1719" on="1"/> - <pt x="550" y="1797" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 100 values pushed */ - 0 0 31 40 40 20 29 3 14 29 9 48 196 9 0 3 2 1 12 11 2 0 0 3 0 - 1 22 1 2 23 2 3 0 1 36 35 27 26 4 13 40 0 0 0 0 24 23 15 1 0 - 1 4 48 196 25 0 1 0 14 0 0 16 26 5 48 196 36 11 22 2 35 22 24 2 27 - 26 5 24 0 0 23 22 33 1 0 1 4 48 196 1 0 1 12 11 1 25 24 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Gcircumflex" xMin="93" yMin="-37" xMax="1405" yMax="1925"> - <contour> - <pt x="1405" y="688" on="1"/> - <pt x="1405" y="40" on="1"/> - <pt x="1131" y="-37" on="0"/> - <pt x="871" y="-37" on="1"/> - <pt x="93" y="-37" on="0"/> - <pt x="93" y="735" on="1"/> - <pt x="93" y="1113" on="0"/> - <pt x="294" y="1315" on="1"/> - <pt x="496" y="1517" on="0"/> - <pt x="877" y="1517" on="1"/> - <pt x="1123" y="1517" on="0"/> - <pt x="1403" y="1450" on="1"/> - <pt x="1403" y="1256" on="1"/> - <pt x="1082" y="1360" on="0"/> - <pt x="868" y="1360" on="1"/> - <pt x="318" y="1360" on="0"/> - <pt x="318" y="744" on="1"/> - <pt x="318" y="440" on="0"/> - <pt x="470" y="280" on="1"/> - <pt x="621" y="120" on="0"/> - <pt x="900" y="120" on="1"/> - <pt x="1015" y="120" on="0"/> - <pt x="1196" y="157" on="1"/> - <pt x="1196" y="534" on="1"/> - <pt x="949" y="534" on="1"/> - <pt x="949" y="688" on="1"/> - </contour> - <contour> - <pt x="517" y="1604" on="1"/> - <pt x="758" y="1925" on="1"/> - <pt x="976" y="1925" on="1"/> - <pt x="1217" y="1604" on="1"/> - <pt x="1069" y="1604" on="1"/> - <pt x="868" y="1806" on="1"/> - <pt x="866" y="1806" on="1"/> - <pt x="665" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 109 values pushed */ - 0 0 20 29 3 14 29 9 48 196 9 0 3 2 32 31 2 27 26 3 1 12 11 2 0 - 0 3 0 1 22 1 2 23 2 3 0 0 0 24 23 15 1 0 1 4 48 196 28 27 1 - 33 30 29 26 3 25 0 1 3 0 14 0 0 16 26 5 48 196 29 11 22 2 30 28 2 - 22 24 3 33 32 31 27 26 5 13 5 24 0 0 23 22 33 1 0 1 4 48 196 1 0 - 1 12 11 1 25 24 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Gcommaaccent" xMin="93" yMin="-432" xMax="1405" yMax="1517"> - <contour> - <pt x="1405" y="688" on="1"/> - <pt x="1405" y="40" on="1"/> - <pt x="1128" y="-37" on="0"/> - <pt x="871" y="-37" on="1"/> - <pt x="93" y="-37" on="0"/> - <pt x="93" y="735" on="1"/> - <pt x="93" y="1113" on="0"/> - <pt x="294" y="1315" on="1"/> - <pt x="496" y="1517" on="0"/> - <pt x="877" y="1517" on="1"/> - <pt x="1123" y="1517" on="0"/> - <pt x="1403" y="1450" on="1"/> - <pt x="1403" y="1256" on="1"/> - <pt x="1082" y="1360" on="0"/> - <pt x="868" y="1360" on="1"/> - <pt x="318" y="1360" on="0"/> - <pt x="318" y="744" on="1"/> - <pt x="318" y="440" on="0"/> - <pt x="470" y="280" on="1"/> - <pt x="621" y="120" on="0"/> - <pt x="900" y="120" on="1"/> - <pt x="1016" y="120" on="0"/> - <pt x="1196" y="157" on="1"/> - <pt x="1196" y="534" on="1"/> - <pt x="949" y="534" on="1"/> - <pt x="949" y="688" on="1"/> - </contour> - <contour> - <pt x="700" y="-421" on="1"/> - <pt x="700" y="-336" on="1"/> - <pt x="757" y="-345" on="0"/> - <pt x="798" y="-345" on="1"/> - <pt x="907" y="-345" on="0"/> - <pt x="907" y="-278" on="1"/> - <pt x="907" y="-204" on="0"/> - <pt x="749" y="-188" on="1"/> - <pt x="749" y="-111" on="1"/> - <pt x="883" y="-114" on="0"/> - <pt x="949" y="-143" on="1"/> - <pt x="1042" y="-185" on="0"/> - <pt x="1042" y="-280" on="1"/> - <pt x="1042" y="-432" on="0"/> - <pt x="825" y="-432" on="1"/> - <pt x="765" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 104 values pushed */ - 0 0 29 44 40 20 29 3 14 29 9 48 196 9 0 3 2 1 12 11 2 0 0 3 0 - 1 22 1 2 23 2 3 0 1 34 33 27 26 4 13 40 2 0 0 0 24 23 15 1 0 - 1 4 48 196 25 0 1 0 14 0 0 31 42 38 16 26 5 48 196 38 38 22 24 2 34 - 33 27 26 4 13 5 24 0 0 23 22 33 1 0 1 4 48 196 1 0 1 12 11 1 25 - 24 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Gdotaccent" xMin="93" yMin="-37" xMax="1405" yMax="1801"> - <contour> - <pt x="1405" y="688" on="1"/> - <pt x="1405" y="40" on="1"/> - <pt x="1131" y="-37" on="0"/> - <pt x="871" y="-37" on="1"/> - <pt x="93" y="-37" on="0"/> - <pt x="93" y="735" on="1"/> - <pt x="93" y="1113" on="0"/> - <pt x="294" y="1315" on="1"/> - <pt x="496" y="1517" on="0"/> - <pt x="877" y="1517" on="1"/> - <pt x="1123" y="1517" on="0"/> - <pt x="1403" y="1450" on="1"/> - <pt x="1403" y="1256" on="1"/> - <pt x="1082" y="1360" on="0"/> - <pt x="868" y="1360" on="1"/> - <pt x="318" y="1360" on="0"/> - <pt x="318" y="744" on="1"/> - <pt x="318" y="440" on="0"/> - <pt x="470" y="280" on="1"/> - <pt x="621" y="120" on="0"/> - <pt x="900" y="120" on="1"/> - <pt x="1015" y="120" on="0"/> - <pt x="1196" y="157" on="1"/> - <pt x="1196" y="534" on="1"/> - <pt x="949" y="534" on="1"/> - <pt x="949" y="688" on="1"/> - </contour> - <contour> - <pt x="768" y="1604" on="1"/> - <pt x="768" y="1801" on="1"/> - <pt x="965" y="1801" on="1"/> - <pt x="965" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 94 values pushed */ - 0 0 20 29 3 14 29 9 48 196 9 0 3 2 1 12 11 2 0 0 3 0 1 22 1 - 2 23 2 3 0 0 0 29 26 5 1 27 24 23 15 1 0 2 4 48 196 28 27 1 25 - 0 1 2 0 14 0 0 16 26 5 48 196 5 26 0 0 27 26 4 1 28 23 22 33 1 - 0 2 4 48 196 29 28 1 1 0 1 12 11 1 25 24 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="H" xMin="165" yMin="0" xMax="1313" yMax="1480"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="375" y="1480" on="1"/> - <pt x="375" y="856" on="1"/> - <pt x="1104" y="856" on="1"/> - <pt x="1104" y="1480" on="1"/> - <pt x="1313" y="1480" on="1"/> - <pt x="1313" y="0" on="1"/> - <pt x="1104" y="0" on="1"/> - <pt x="1104" y="699" on="1"/> - <pt x="375" y="699" on="1"/> - <pt x="375" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 56 values pushed */ - 0 0 10 9 15 1 3 1 4 48 196 4 3 1 11 8 7 0 3 2 0 6 5 2 1 - 0 3 14 0 0 9 8 5 4 33 3 6 11 10 3 2 33 3 0 2 4 48 196 7 6 - 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Hbar" xMin="17" yMin="0" xMax="1461" yMax="1480"> - <contour> - <pt x="375" y="856" on="1"/> - <pt x="1104" y="856" on="1"/> - <pt x="1104" y="1110" on="1"/> - <pt x="375" y="1110" on="1"/> - </contour> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="1110" on="1"/> - <pt x="17" y="1110" on="1"/> - <pt x="17" y="1234" on="1"/> - <pt x="165" y="1234" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="375" y="1480" on="1"/> - <pt x="375" y="1234" on="1"/> - <pt x="1104" y="1234" on="1"/> - <pt x="1104" y="1480" on="1"/> - <pt x="1313" y="1480" on="1"/> - <pt x="1313" y="1234" on="1"/> - <pt x="1461" y="1234" on="1"/> - <pt x="1461" y="1110" on="1"/> - <pt x="1313" y="1110" on="1"/> - <pt x="1313" y="0" on="1"/> - <pt x="1104" y="0" on="1"/> - <pt x="1104" y="699" on="1"/> - <pt x="375" y="699" on="1"/> - <pt x="375" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 107 values pushed */ - 0 0 18 17 6 5 3 2 6 5 7 1 4 48 196 16 15 12 11 8 7 5 22 21 1 - 23 20 19 4 3 18 17 6 5 3 2 5 1 0 1 5 0 14 13 10 9 0 3 14 17 - 16 2 13 14 7 6 4 0 0 21 20 13 12 2 1 33 5 14 23 22 11 10 3 0 33 - 5 4 2 4 48 196 19 18 15 14 3 9 8 5 4 3 21 20 13 12 2 1 5 23 22 - 11 10 3 0 5 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Hcircumflex" xMin="165" yMin="0" xMax="1313" yMax="1925"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="375" y="1480" on="1"/> - <pt x="375" y="856" on="1"/> - <pt x="1104" y="856" on="1"/> - <pt x="1104" y="1480" on="1"/> - <pt x="1313" y="1480" on="1"/> - <pt x="1313" y="0" on="1"/> - <pt x="1104" y="0" on="1"/> - <pt x="1104" y="699" on="1"/> - <pt x="375" y="699" on="1"/> - <pt x="375" y="0" on="1"/> - </contour> - <contour> - <pt x="389" y="1604" on="1"/> - <pt x="630" y="1925" on="1"/> - <pt x="848" y="1925" on="1"/> - <pt x="1089" y="1604" on="1"/> - <pt x="941" y="1604" on="1"/> - <pt x="740" y="1806" on="1"/> - <pt x="738" y="1806" on="1"/> - <pt x="537" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 82 values pushed */ - 18 17 2 13 12 3 0 0 10 9 15 1 3 1 4 48 196 14 13 1 19 16 15 12 3 - 4 3 1 11 8 7 0 3 4 0 6 5 2 1 0 3 14 19 18 17 16 15 14 13 12 - 8 4 2 3 0 0 9 8 5 4 33 3 6 11 10 3 2 33 3 0 2 4 48 196 7 - 6 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="I" xMin="180" yMin="0" xMax="390" yMax="1480"> - <contour> - <pt x="180" y="0" on="1"/> - <pt x="180" y="1480" on="1"/> - <pt x="390" y="1480" on="1"/> - <pt x="390" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 23 values pushed */ - 3 0 1 0 2 1 0 14 0 0 3 2 33 1 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="IJ" xMin="180" yMin="-296" xMax="1322" yMax="1480"> - <component glyphName="I" x="0" y="0" flags="0x4"/> - <component glyphName="J" x="482" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="Iacute" xMin="137" yMin="0" xMax="606" yMax="1925"> - <contour> - <pt x="180" y="0" on="1"/> - <pt x="180" y="1480" on="1"/> - <pt x="390" y="1480" on="1"/> - <pt x="390" y="0" on="1"/> - </contour> - <contour> - <pt x="137" y="1604" on="1"/> - <pt x="378" y="1925" on="1"/> - <pt x="606" y="1925" on="1"/> - <pt x="285" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 40 values pushed */ - 6 5 1 7 4 1 3 0 1 3 0 2 1 0 14 7 5 2 2 0 3 6 2 4 0 - 0 0 3 2 33 1 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ibreve" xMin="-48" yMin="0" xMax="618" yMax="1925"> - <contour> - <pt x="180" y="0" on="1"/> - <pt x="180" y="1480" on="1"/> - <pt x="390" y="1480" on="1"/> - <pt x="390" y="0" on="1"/> - </contour> - <contour> - <pt x="-48" y="1925" on="1"/> - <pt x="75" y="1925" on="1"/> - <pt x="96" y="1831" on="0"/> - <pt x="150" y="1791" on="1"/> - <pt x="202" y="1752" on="0"/> - <pt x="285" y="1752" on="1"/> - <pt x="379" y="1752" on="0"/> - <pt x="433" y="1801" on="1"/> - <pt x="476" y="1841" on="0"/> - <pt x="495" y="1925" on="1"/> - <pt x="618" y="1925" on="1"/> - <pt x="602" y="1791" on="0"/> - <pt x="529" y="1710" on="1"/> - <pt x="435" y="1604" on="0"/> - <pt x="285" y="1604" on="1"/> - <pt x="128" y="1604" on="0"/> - <pt x="33" y="1719" on="1"/> - <pt x="-32" y="1797" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 46 values pushed */ - 0 0 9 7 18 48 196 14 13 5 4 4 13 18 1 3 0 1 0 2 1 0 14 14 13 - 2 13 2 5 4 0 0 0 3 2 9 1 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Icircumflex" xMin="-65" yMin="0" xMax="635" yMax="1925"> - <contour> - <pt x="180" y="0" on="1"/> - <pt x="180" y="1480" on="1"/> - <pt x="390" y="1480" on="1"/> - <pt x="390" y="0" on="1"/> - </contour> - <contour> - <pt x="-65" y="1604" on="1"/> - <pt x="176" y="1925" on="1"/> - <pt x="394" y="1925" on="1"/> - <pt x="635" y="1604" on="1"/> - <pt x="487" y="1604" on="1"/> - <pt x="286" y="1806" on="1"/> - <pt x="284" y="1806" on="1"/> - <pt x="83" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 56 values pushed */ - 10 9 2 5 4 3 6 5 1 11 8 7 4 3 3 0 1 3 0 2 1 0 14 10 9 - 2 2 0 3 8 7 6 3 13 2 11 5 4 3 13 0 0 0 3 2 33 1 0 1 4 - 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Idieresis" xMin="1" yMin="0" xMax="569" yMax="1777"> - <contour> - <pt x="180" y="0" on="1"/> - <pt x="180" y="1480" on="1"/> - <pt x="390" y="1480" on="1"/> - <pt x="390" y="0" on="1"/> - </contour> - <contour> - <pt x="1" y="1604" on="1"/> - <pt x="1" y="1777" on="1"/> - <pt x="174" y="1777" on="1"/> - <pt x="174" y="1604" on="1"/> - </contour> - <contour> - <pt x="396" y="1604" on="1"/> - <pt x="396" y="1777" on="1"/> - <pt x="569" y="1777" on="1"/> - <pt x="569" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 59 values pushed */ - 0 0 11 8 7 4 13 3 5 1 4 48 196 10 9 6 5 3 3 0 1 2 0 2 1 - 0 14 0 0 9 8 13 1 10 7 6 13 1 4 3 2 33 1 0 3 4 48 196 11 10 - 1 5 4 1 1 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Idotaccent" xMin="180" yMin="0" xMax="390" yMax="1801"> - <contour> - <pt x="180" y="0" on="1"/> - <pt x="180" y="1480" on="1"/> - <pt x="390" y="1480" on="1"/> - <pt x="390" y="0" on="1"/> - </contour> - <contour> - <pt x="186" y="1604" on="1"/> - <pt x="186" y="1801" on="1"/> - <pt x="383" y="1801" on="1"/> - <pt x="383" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 47 values pushed */ - 0 0 7 4 5 1 5 1 4 48 196 6 5 1 3 0 1 2 0 2 1 0 14 0 0 - 7 6 4 1 4 3 2 33 1 0 2 4 48 196 5 4 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Igrave" xMin="-36" yMin="0" xMax="433" yMax="1925"> - <contour> - <pt x="180" y="0" on="1"/> - <pt x="180" y="1480" on="1"/> - <pt x="390" y="1480" on="1"/> - <pt x="390" y="0" on="1"/> - </contour> - <contour> - <pt x="433" y="1604" on="1"/> - <pt x="285" y="1604" on="1"/> - <pt x="-36" y="1925" on="1"/> - <pt x="192" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 40 values pushed */ - 7 6 1 5 4 1 3 0 1 3 0 2 1 0 14 7 5 2 2 0 3 4 2 6 0 - 0 0 3 2 33 1 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - MDRP[00000] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Imacron" xMin="-36" yMin="0" xMax="606" yMax="1752"> - <contour> - <pt x="180" y="0" on="1"/> - <pt x="180" y="1480" on="1"/> - <pt x="390" y="1480" on="1"/> - <pt x="390" y="0" on="1"/> - </contour> - <contour> - <pt x="-36" y="1604" on="1"/> - <pt x="-36" y="1752" on="1"/> - <pt x="606" y="1752" on="1"/> - <pt x="606" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 45 values pushed */ - 0 0 7 4 7 1 5 1 4 48 196 6 5 1 3 0 1 2 0 2 1 0 14 0 0 - 3 2 33 1 0 1 4 48 196 7 6 1 5 4 1 1 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Iogonek" xMin="120" yMin="-370" xMax="462" yMax="1480"> - <contour> - <pt x="180" y="0" on="1"/> - <pt x="180" y="1480" on="1"/> - <pt x="390" y="1480" on="1"/> - <pt x="390" y="0" on="1"/> - </contour> - <contour> - <pt x="278" y="0" on="1"/> - <pt x="385" y="0" on="1"/> - <pt x="257" y="-80" on="0"/> - <pt x="257" y="-179" on="1"/> - <pt x="257" y="-275" on="0"/> - <pt x="372" y="-275" on="1"/> - <pt x="425" y="-275" on="0"/> - <pt x="462" y="-260" on="1"/> - <pt x="462" y="-341" on="1"/> - <pt x="400" y="-370" on="0"/> - <pt x="322" y="-370" on="1"/> - <pt x="120" y="-370" on="0"/> - <pt x="120" y="-212" on="1"/> - <pt x="120" y="-90" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 56 values pushed */ - 0 0 9 21 14 48 196 12 11 14 0 5 4 3 0 3 0 2 1 0 14 0 0 7 42 - 16 48 196 5 4 2 2 0 3 12 11 2 13 2 16 0 0 0 3 2 33 1 0 1 4 - 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Itilde" xMin="-48" yMin="0" xMax="618" yMax="1838"> - <contour> - <pt x="180" y="0" on="1"/> - <pt x="180" y="1480" on="1"/> - <pt x="390" y="1480" on="1"/> - <pt x="390" y="0" on="1"/> - </contour> - <contour> - <pt x="-48" y="1604" on="1"/> - <pt x="-41" y="1697" on="0"/> - <pt x="-16" y="1748" on="1"/> - <pt x="30" y="1838" on="0"/> - <pt x="139" y="1838" on="1"/> - <pt x="211" y="1838" on="0"/> - <pt x="272" y="1800" on="1"/> - <pt x="332" y="1763" on="1"/> - <pt x="389" y="1728" on="0"/> - <pt x="419" y="1728" on="1"/> - <pt x="484" y="1728" on="0"/> - <pt x="495" y="1838" on="1"/> - <pt x="618" y="1838" on="1"/> - <pt x="611" y="1744" on="0"/> - <pt x="586" y="1694" on="1"/> - <pt x="541" y="1604" on="0"/> - <pt x="433" y="1604" on="1"/> - <pt x="361" y="1604" on="0"/> - <pt x="298" y="1643" on="1"/> - <pt x="238" y="1680" on="1"/> - <pt x="183" y="1714" on="0"/> - <pt x="151" y="1714" on="1"/> - <pt x="86" y="1714" on="0"/> - <pt x="75" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 50 values pushed */ - 0 0 25 6 8 13 6 20 48 196 27 16 15 4 4 13 20 8 1 3 0 1 0 2 1 - 0 14 16 15 2 13 2 27 4 0 0 0 3 2 9 1 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="J" xMin="49" yMin="-296" xMax="840" yMax="1480"> - <contour> - <pt x="49" y="-232" on="1"/> - <pt x="49" y="-51" on="1"/> - <pt x="220" y="-128" on="0"/> - <pt x="369" y="-128" on="1"/> - <pt x="540" y="-128" on="0"/> - <pt x="589" y="-49" on="1"/> - <pt x="630" y="19" on="0"/> - <pt x="630" y="180" on="1"/> - <pt x="630" y="1480" on="1"/> - <pt x="840" y="1480" on="1"/> - <pt x="840" y="187" on="1"/> - <pt x="840" y="-296" on="0"/> - <pt x="359" y="-296" on="1"/> - <pt x="197" y="-296" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 44 values pushed */ - 0 0 3 30 12 48 196 1 10 7 2 8 2 3 0 1 1 0 12 2 0 9 8 0 14 - 0 0 8 7 33 1 9 1 4 48 196 10 9 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Jcircumflex" xMin="49" yMin="-296" xMax="1061" yMax="1925"> - <contour> - <pt x="49" y="-232" on="1"/> - <pt x="49" y="-51" on="1"/> - <pt x="220" y="-128" on="0"/> - <pt x="369" y="-128" on="1"/> - <pt x="540" y="-128" on="0"/> - <pt x="589" y="-49" on="1"/> - <pt x="630" y="19" on="0"/> - <pt x="630" y="180" on="1"/> - <pt x="630" y="1480" on="1"/> - <pt x="840" y="1480" on="1"/> - <pt x="840" y="187" on="1"/> - <pt x="840" y="-296" on="0"/> - <pt x="359" y="-296" on="1"/> - <pt x="197" y="-296" on="0"/> - </contour> - <contour> - <pt x="361" y="1604" on="1"/> - <pt x="602" y="1925" on="1"/> - <pt x="820" y="1925" on="1"/> - <pt x="1061" y="1604" on="1"/> - <pt x="913" y="1604" on="1"/> - <pt x="712" y="1806" on="1"/> - <pt x="710" y="1806" on="1"/> - <pt x="509" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 79 values pushed */ - 0 0 3 30 12 48 196 20 19 2 15 14 3 1 10 7 2 8 2 3 0 1 1 0 12 - 2 0 16 15 1 21 18 17 14 3 2 0 9 8 0 14 20 19 16 3 9 7 3 21 15 - 14 3 7 0 3 18 17 2 13 9 0 0 8 7 33 1 9 1 4 48 196 10 9 1 1 - 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="K" xMin="191" yMin="0" xMax="1317" yMax="1480"> - <contour> - <pt x="191" y="0" on="1"/> - <pt x="191" y="1480" on="1"/> - <pt x="388" y="1480" on="1"/> - <pt x="388" y="752" on="1"/> - <pt x="1003" y="1480" on="1"/> - <pt x="1214" y="1480" on="1"/> - <pt x="618" y="774" on="1"/> - <pt x="1317" y="0" on="1"/> - <pt x="1051" y="0" on="1"/> - <pt x="388" y="750" on="1"/> - <pt x="388" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 45 values pushed */ - 9 6 3 3 1 0 3 10 8 7 0 3 0 5 4 2 1 0 3 14 8 7 6 5 4 - 5 13 2 0 0 10 9 3 2 4 3 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Kcommaaccent" xMin="191" yMin="-432" xMax="1317" yMax="1480"> - <contour> - <pt x="191" y="0" on="1"/> - <pt x="191" y="1480" on="1"/> - <pt x="388" y="1480" on="1"/> - <pt x="388" y="752" on="1"/> - <pt x="1003" y="1480" on="1"/> - <pt x="1214" y="1480" on="1"/> - <pt x="618" y="774" on="1"/> - <pt x="1317" y="0" on="1"/> - <pt x="1051" y="0" on="1"/> - <pt x="388" y="750" on="1"/> - <pt x="388" y="0" on="1"/> - </contour> - <contour> - <pt x="487" y="-421" on="1"/> - <pt x="487" y="-336" on="1"/> - <pt x="544" y="-345" on="0"/> - <pt x="584" y="-345" on="1"/> - <pt x="694" y="-345" on="0"/> - <pt x="694" y="-278" on="1"/> - <pt x="694" y="-204" on="0"/> - <pt x="536" y="-188" on="1"/> - <pt x="536" y="-111" on="1"/> - <pt x="670" y="-114" on="0"/> - <pt x="736" y="-143" on="1"/> - <pt x="829" y="-185" on="0"/> - <pt x="829" y="-280" on="1"/> - <pt x="829" y="-432" on="0"/> - <pt x="612" y="-432" on="1"/> - <pt x="553" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 72 values pushed */ - 0 0 14 44 25 48 196 9 6 3 3 1 0 3 19 18 12 11 4 13 25 0 10 8 7 - 0 3 0 5 4 2 1 0 3 14 0 0 16 42 23 48 196 19 18 12 11 8 7 6 5 - 4 9 13 23 2 0 0 10 9 3 2 4 3 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="L" xMin="165" yMin="0" xMax="1101" yMax="1480"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="375" y="1480" on="1"/> - <pt x="375" y="157" on="1"/> - <pt x="1101" y="157" on="1"/> - <pt x="1101" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 38 values pushed */ - 0 0 4 3 15 1 0 1 4 48 196 5 0 1 0 2 1 0 14 0 0 3 2 33 1 - 0 1 4 48 196 5 4 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Lacute" xMin="165" yMin="0" xMax="1101" yMax="1925"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="375" y="1480" on="1"/> - <pt x="375" y="157" on="1"/> - <pt x="1101" y="157" on="1"/> - <pt x="1101" y="0" on="1"/> - </contour> - <contour> - <pt x="177" y="1604" on="1"/> - <pt x="418" y="1925" on="1"/> - <pt x="646" y="1925" on="1"/> - <pt x="325" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 57 values pushed */ - 0 0 4 3 15 1 0 1 4 48 196 8 7 1 9 6 1 5 0 1 3 0 2 1 0 - 14 8 7 2 4 2 3 9 6 2 2 0 3 0 0 3 2 33 1 0 1 4 48 196 5 - 4 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Lcaron" xMin="165" yMin="0" xMax="1101" yMax="1480"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="375" y="1480" on="1"/> - <pt x="375" y="157" on="1"/> - <pt x="1101" y="157" on="1"/> - <pt x="1101" y="0" on="1"/> - </contour> - <contour> - <pt x="671" y="1026" on="1"/> - <pt x="671" y="1085" on="1"/> - <pt x="747" y="1106" on="0"/> - <pt x="747" y="1266" on="1"/> - <pt x="747" y="1283" on="1"/> - <pt x="671" y="1283" on="1"/> - <pt x="671" y="1480" on="1"/> - <pt x="868" y="1480" on="1"/> - <pt x="868" y="1309" on="1"/> - <pt x="867" y="1047" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 67 values pushed */ - 14 11 10 9 7 6 6 1 3 3 0 0 4 3 15 1 0 1 4 48 196 5 0 1 0 - 13 12 2 1 0 3 14 10 9 2 13 6 3 0 0 12 11 7 6 4 3 13 3 2 33 - 1 0 2 4 48 196 14 13 1 5 4 1 1 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Lcommaaccent" xMin="165" yMin="-432" xMax="1101" yMax="1480"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="375" y="1480" on="1"/> - <pt x="375" y="157" on="1"/> - <pt x="1101" y="157" on="1"/> - <pt x="1101" y="0" on="1"/> - </contour> - <contour> - <pt x="449" y="-421" on="1"/> - <pt x="449" y="-336" on="1"/> - <pt x="506" y="-345" on="0"/> - <pt x="546" y="-345" on="1"/> - <pt x="656" y="-345" on="0"/> - <pt x="656" y="-278" on="1"/> - <pt x="656" y="-204" on="0"/> - <pt x="498" y="-188" on="1"/> - <pt x="498" y="-111" on="1"/> - <pt x="632" y="-114" on="0"/> - <pt x="698" y="-143" on="1"/> - <pt x="791" y="-185" on="0"/> - <pt x="791" y="-280" on="1"/> - <pt x="791" y="-432" on="0"/> - <pt x="574" y="-432" on="1"/> - <pt x="515" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 70 values pushed */ - 0 0 9 44 20 48 196 14 13 7 6 4 13 20 0 0 0 4 3 15 1 0 1 4 48 - 196 5 0 1 0 2 1 0 14 0 0 11 42 18 48 196 18 18 14 13 7 6 5 4 2 - 3 0 0 3 2 33 1 0 1 4 48 196 5 4 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ldot" xMin="165" yMin="0" xMax="1101" yMax="1480"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="375" y="1480" on="1"/> - <pt x="375" y="157" on="1"/> - <pt x="1101" y="157" on="1"/> - <pt x="1101" y="0" on="1"/> - </contour> - <contour> - <pt x="743" y="642" on="1"/> - <pt x="743" y="839" on="1"/> - <pt x="940" y="839" on="1"/> - <pt x="940" y="642" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 55 values pushed */ - 0 0 9 6 5 1 7 4 3 15 1 0 2 4 48 196 8 7 1 5 0 1 2 0 2 - 1 0 14 0 0 7 6 4 1 8 3 2 33 1 0 2 4 48 196 9 8 1 5 4 1 - 1 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Lslash" xMin="17" yMin="0" xMax="1100" yMax="1480"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="692" on="1"/> - <pt x="17" y="612" on="1"/> - <pt x="17" y="780" on="1"/> - <pt x="165" y="862" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="375" y="1480" on="1"/> - <pt x="375" y="976" on="1"/> - <pt x="621" y="1110" on="1"/> - <pt x="621" y="941" on="1"/> - <pt x="375" y="807" on="1"/> - <pt x="375" y="157" on="1"/> - <pt x="1100" y="157" on="1"/> - <pt x="1100" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 60 values pushed */ - 10 9 8 7 4 3 2 1 8 5 11 3 0 0 12 11 15 1 0 1 4 48 196 13 0 - 1 0 6 5 0 14 0 0 11 10 7 6 33 3 0 1 4 48 196 13 12 1 9 8 1 - 5 4 1 0 3 3 2 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="M" xMin="165" yMin="0" xMax="1541" yMax="1480"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="456" y="1480" on="1"/> - <pt x="863" y="335" on="1"/> - <pt x="1281" y="1480" on="1"/> - <pt x="1541" y="1480" on="1"/> - <pt x="1541" y="0" on="1"/> - <pt x="1345" y="0" on="1"/> - <pt x="1345" y="1203" on="1"/> - <pt x="941" y="99" on="1"/> - <pt x="738" y="99" on="1"/> - <pt x="346" y="1207" on="1"/> - <pt x="346" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 57 values pushed */ - 11 8 3 3 1 9 3 10 9 1 12 7 6 0 3 2 0 5 4 2 1 0 3 14 10 - 9 4 3 2 5 7 11 3 0 0 8 7 4 1 5 12 11 24 1 0 2 4 48 196 6 - 5 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="N" xMin="165" yMin="0" xMax="1313" yMax="1480"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="370" y="1480" on="1"/> - <pt x="1133" y="337" on="1"/> - <pt x="1133" y="1480" on="1"/> - <pt x="1313" y="1480" on="1"/> - <pt x="1313" y="0" on="1"/> - <pt x="1107" y="0" on="1"/> - <pt x="345" y="1143" on="1"/> - <pt x="345" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 49 values pushed */ - 8 3 2 1 0 3 9 7 6 0 3 0 5 4 2 1 0 3 14 7 2 2 3 8 3 - 0 0 4 3 24 1 5 9 8 24 1 0 2 4 48 196 6 5 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Nacute" xMin="165" yMin="0" xMax="1313" yMax="1925"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="370" y="1480" on="1"/> - <pt x="1133" y="337" on="1"/> - <pt x="1133" y="1480" on="1"/> - <pt x="1313" y="1480" on="1"/> - <pt x="1313" y="0" on="1"/> - <pt x="1107" y="0" on="1"/> - <pt x="345" y="1143" on="1"/> - <pt x="345" y="0" on="1"/> - </contour> - <contour> - <pt x="591" y="1604" on="1"/> - <pt x="832" y="1925" on="1"/> - <pt x="1060" y="1925" on="1"/> - <pt x="739" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 60 values pushed */ - 8 3 2 1 0 3 12 11 1 13 10 1 9 7 6 0 3 3 0 5 4 2 1 0 3 - 14 13 12 11 10 7 2 6 3 8 3 0 0 4 3 24 1 5 9 8 24 1 0 2 4 - 48 196 6 5 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ncaron" xMin="165" yMin="0" xMax="1313" yMax="1925"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="370" y="1480" on="1"/> - <pt x="1133" y="337" on="1"/> - <pt x="1133" y="1480" on="1"/> - <pt x="1313" y="1480" on="1"/> - <pt x="1313" y="0" on="1"/> - <pt x="1107" y="0" on="1"/> - <pt x="345" y="1143" on="1"/> - <pt x="345" y="0" on="1"/> - </contour> - <contour> - <pt x="1089" y="1925" on="1"/> - <pt x="848" y="1604" on="1"/> - <pt x="630" y="1604" on="1"/> - <pt x="389" y="1925" on="1"/> - <pt x="537" y="1925" on="1"/> - <pt x="738" y="1723" on="1"/> - <pt x="740" y="1723" on="1"/> - <pt x="941" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 72 values pushed */ - 16 15 2 10 11 3 8 3 2 1 0 3 17 14 13 10 3 12 11 1 9 7 6 0 3 - 3 0 5 4 2 1 0 3 14 17 16 15 14 13 12 11 10 7 2 10 3 8 3 0 0 - 4 3 24 1 5 9 8 24 1 0 2 4 48 196 6 5 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ncommaaccent" xMin="165" yMin="-432" xMax="1313" yMax="1480"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="370" y="1480" on="1"/> - <pt x="1133" y="337" on="1"/> - <pt x="1133" y="1480" on="1"/> - <pt x="1313" y="1480" on="1"/> - <pt x="1313" y="0" on="1"/> - <pt x="1107" y="0" on="1"/> - <pt x="345" y="1143" on="1"/> - <pt x="345" y="0" on="1"/> - </contour> - <contour> - <pt x="518" y="-421" on="1"/> - <pt x="518" y="-336" on="1"/> - <pt x="575" y="-345" on="0"/> - <pt x="615" y="-345" on="1"/> - <pt x="725" y="-345" on="0"/> - <pt x="725" y="-278" on="1"/> - <pt x="725" y="-205" on="0"/> - <pt x="567" y="-188" on="1"/> - <pt x="567" y="-111" on="1"/> - <pt x="702" y="-114" on="0"/> - <pt x="767" y="-143" on="1"/> - <pt x="860" y="-185" on="0"/> - <pt x="860" y="-280" on="1"/> - <pt x="860" y="-432" on="0"/> - <pt x="643" y="-432" on="1"/> - <pt x="584" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 77 values pushed */ - 0 0 13 44 24 48 196 8 3 2 1 0 3 18 17 11 10 4 13 24 0 9 7 6 0 - 3 0 5 4 2 1 0 3 14 0 0 15 42 22 48 196 22 22 18 17 11 10 7 2 7 - 3 8 3 0 0 4 3 24 1 5 9 8 24 1 0 2 4 48 196 6 5 1 1 0 1 - 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ntilde" xMin="165" yMin="0" xMax="1313" yMax="1838"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="370" y="1480" on="1"/> - <pt x="1133" y="337" on="1"/> - <pt x="1133" y="1480" on="1"/> - <pt x="1313" y="1480" on="1"/> - <pt x="1313" y="0" on="1"/> - <pt x="1107" y="0" on="1"/> - <pt x="345" y="1143" on="1"/> - <pt x="345" y="0" on="1"/> - </contour> - <contour> - <pt x="432" y="1604" on="1"/> - <pt x="439" y="1698" on="0"/> - <pt x="464" y="1748" on="1"/> - <pt x="510" y="1838" on="0"/> - <pt x="619" y="1838" on="1"/> - <pt x="690" y="1838" on="0"/> - <pt x="752" y="1800" on="1"/> - <pt x="812" y="1763" on="1"/> - <pt x="869" y="1728" on="0"/> - <pt x="899" y="1728" on="1"/> - <pt x="964" y="1728" on="0"/> - <pt x="975" y="1838" on="1"/> - <pt x="1098" y="1838" on="1"/> - <pt x="1091" y="1744" on="0"/> - <pt x="1066" y="1694" on="1"/> - <pt x="1021" y="1604" on="0"/> - <pt x="913" y="1604" on="1"/> - <pt x="841" y="1604" on="0"/> - <pt x="778" y="1643" on="1"/> - <pt x="718" y="1680" on="1"/> - <pt x="663" y="1714" on="0"/> - <pt x="631" y="1714" on="1"/> - <pt x="566" y="1714" on="0"/> - <pt x="555" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 72 values pushed */ - 0 0 31 6 14 19 6 26 48 196 8 3 2 1 0 3 33 22 21 10 4 13 26 14 1 - 9 7 6 0 3 0 5 4 2 1 0 3 14 33 22 21 10 7 2 6 3 8 3 0 0 - 4 3 24 1 5 9 8 24 1 0 2 4 48 196 6 5 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="O" xMin="93" yMin="-37" xMax="1501" yMax="1517"> - <contour> - <pt x="797" y="1517" on="1"/> - <pt x="1116" y="1517" on="0"/> - <pt x="1309" y="1306" on="1"/> - <pt x="1501" y="1094" on="0"/> - <pt x="1501" y="742" on="1"/> - <pt x="1501" y="383" on="0"/> - <pt x="1309" y="173" on="1"/> - <pt x="1116" y="-37" on="0"/> - <pt x="787" y="-37" on="1"/> - <pt x="505" y="-37" on="0"/> - <pt x="322" y="136" on="1"/> - <pt x="93" y="353" on="0"/> - <pt x="93" y="740" on="1"/> - <pt x="93" y="1095" on="0"/> - <pt x="285" y="1306" on="1"/> - <pt x="477" y="1517" on="0"/> - </contour> - <contour> - <pt x="797" y="1360" on="1"/> - <pt x="570" y="1360" on="0"/> - <pt x="444" y="1197" on="1"/> - <pt x="318" y="1034" on="0"/> - <pt x="318" y="741" on="1"/> - <pt x="318" y="450" on="0"/> - <pt x="444" y="285" on="1"/> - <pt x="569" y="120" on="0"/> - <pt x="792" y="120" on="1"/> - <pt x="999" y="120" on="0"/> - <pt x="1122" y="252" on="1"/> - <pt x="1276" y="415" on="0"/> - <pt x="1276" y="742" on="1"/> - <pt x="1276" y="1034" on="0"/> - <pt x="1149" y="1197" on="1"/> - <pt x="1022" y="1360" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 27 values pushed */ - 0 0 24 29 8 16 29 0 48 196 8 2 0 0 14 0 0 28 26 4 20 26 12 48 196 - 12 4 - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="OE" xMin="93" yMin="-37" xMax="1991" yMax="1517"> - <contour> - <pt x="1129" y="0" on="1"/> - <pt x="1129" y="58" on="1"/> - <pt x="965" y="-37" on="0"/> - <pt x="775" y="-37" on="1"/> - <pt x="469" y="-37" on="0"/> - <pt x="281" y="177" on="1"/> - <pt x="93" y="391" on="0"/> - <pt x="93" y="740" on="1"/> - <pt x="93" y="1095" on="0"/> - <pt x="282" y="1306" on="1"/> - <pt x="471" y="1517" on="0"/> - <pt x="785" y="1517" on="1"/> - <pt x="967" y="1517" on="0"/> - <pt x="1129" y="1423" on="1"/> - <pt x="1129" y="1480" on="1"/> - <pt x="1947" y="1480" on="1"/> - <pt x="1947" y="1323" on="1"/> - <pt x="1339" y="1323" on="1"/> - <pt x="1339" y="848" on="1"/> - <pt x="1848" y="848" on="1"/> - <pt x="1848" y="693" on="1"/> - <pt x="1339" y="693" on="1"/> - <pt x="1339" y="157" on="1"/> - <pt x="1991" y="157" on="1"/> - <pt x="1991" y="0" on="1"/> - </contour> - <contour> - <pt x="1129" y="569" on="1"/> - <pt x="1129" y="911" on="1"/> - <pt x="1129" y="1147" on="0"/> - <pt x="1048" y="1253" on="1"/> - <pt x="967" y="1360" on="0"/> - <pt x="788" y="1360" on="1"/> - <pt x="565" y="1360" on="0"/> - <pt x="441" y="1197" on="1"/> - <pt x="316" y="1034" on="0"/> - <pt x="316" y="740" on="1"/> - <pt x="316" y="446" on="0"/> - <pt x="441" y="283" on="1"/> - <pt x="567" y="120" on="0"/> - <pt x="789" y="120" on="1"/> - <pt x="1129" y="120" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 103 values pushed */ - 0 0 38 29 3 30 29 11 48 196 11 0 3 2 13 14 16 2 26 16 18 2 25 20 22 - 2 1 22 0 2 0 0 17 16 15 1 14 21 20 15 1 18 23 22 15 1 0 3 4 48 - 196 19 18 1 24 0 1 2 0 15 14 0 14 0 0 34 26 7 48 196 7 0 0 0 26 - 25 14 13 1 0 33 5 17 1 4 48 196 24 23 1 16 15 1 20 19 1 22 21 18 17 - 3 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Oacute" xMin="92" yMin="-37" xMax="1500" yMax="1925"> - <contour> - <pt x="796" y="1517" on="1"/> - <pt x="1115" y="1517" on="0"/> - <pt x="1308" y="1306" on="1"/> - <pt x="1500" y="1094" on="0"/> - <pt x="1500" y="742" on="1"/> - <pt x="1500" y="383" on="0"/> - <pt x="1308" y="173" on="1"/> - <pt x="1115" y="-37" on="0"/> - <pt x="786" y="-37" on="1"/> - <pt x="504" y="-37" on="0"/> - <pt x="321" y="136" on="1"/> - <pt x="92" y="353" on="0"/> - <pt x="92" y="740" on="1"/> - <pt x="92" y="1095" on="0"/> - <pt x="284" y="1306" on="1"/> - <pt x="476" y="1517" on="0"/> - </contour> - <contour> - <pt x="796" y="1360" on="1"/> - <pt x="569" y="1360" on="0"/> - <pt x="443" y="1197" on="1"/> - <pt x="317" y="1034" on="0"/> - <pt x="317" y="741" on="1"/> - <pt x="317" y="450" on="0"/> - <pt x="443" y="285" on="1"/> - <pt x="568" y="120" on="0"/> - <pt x="791" y="120" on="1"/> - <pt x="998" y="120" on="0"/> - <pt x="1121" y="252" on="1"/> - <pt x="1275" y="415" on="0"/> - <pt x="1275" y="742" on="1"/> - <pt x="1275" y="1034" on="0"/> - <pt x="1148" y="1197" on="1"/> - <pt x="1021" y="1360" on="0"/> - </contour> - <contour> - <pt x="648" y="1604" on="1"/> - <pt x="889" y="1925" on="1"/> - <pt x="1117" y="1925" on="1"/> - <pt x="796" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 39 values pushed */ - 0 0 24 29 8 16 29 0 48 196 8 2 0 0 34 33 1 35 32 1 2 0 14 0 0 - 28 26 4 20 26 12 48 196 35 34 33 32 12 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Obreve" xMin="93" yMin="-37" xMax="1501" yMax="1925"> - <contour> - <pt x="797" y="1517" on="1"/> - <pt x="1116" y="1517" on="0"/> - <pt x="1309" y="1306" on="1"/> - <pt x="1501" y="1094" on="0"/> - <pt x="1501" y="742" on="1"/> - <pt x="1501" y="383" on="0"/> - <pt x="1309" y="173" on="1"/> - <pt x="1116" y="-37" on="0"/> - <pt x="787" y="-37" on="1"/> - <pt x="505" y="-37" on="0"/> - <pt x="322" y="136" on="1"/> - <pt x="93" y="353" on="0"/> - <pt x="93" y="740" on="1"/> - <pt x="93" y="1095" on="0"/> - <pt x="285" y="1306" on="1"/> - <pt x="477" y="1517" on="0"/> - </contour> - <contour> - <pt x="797" y="1360" on="1"/> - <pt x="570" y="1360" on="0"/> - <pt x="444" y="1197" on="1"/> - <pt x="318" y="1034" on="0"/> - <pt x="318" y="741" on="1"/> - <pt x="318" y="450" on="0"/> - <pt x="444" y="285" on="1"/> - <pt x="569" y="120" on="0"/> - <pt x="792" y="120" on="1"/> - <pt x="999" y="120" on="0"/> - <pt x="1122" y="252" on="1"/> - <pt x="1276" y="415" on="0"/> - <pt x="1276" y="742" on="1"/> - <pt x="1276" y="1034" on="0"/> - <pt x="1149" y="1197" on="1"/> - <pt x="1022" y="1360" on="0"/> - </contour> - <contour> - <pt x="464" y="1925" on="1"/> - <pt x="587" y="1925" on="1"/> - <pt x="608" y="1831" on="0"/> - <pt x="662" y="1791" on="1"/> - <pt x="714" y="1752" on="0"/> - <pt x="797" y="1752" on="1"/> - <pt x="890" y="1752" on="0"/> - <pt x="945" y="1801" on="1"/> - <pt x="988" y="1841" on="0"/> - <pt x="1007" y="1925" on="1"/> - <pt x="1130" y="1925" on="1"/> - <pt x="1114" y="1791" on="0"/> - <pt x="1041" y="1710" on="1"/> - <pt x="947" y="1604" on="0"/> - <pt x="797" y="1604" on="1"/> - <pt x="640" y="1604" on="0"/> - <pt x="545" y="1719" on="1"/> - <pt x="480" y="1797" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 44 values pushed */ - 0 0 37 7 46 24 35 8 16 35 0 48 196 8 2 0 0 1 42 41 33 32 4 13 46 - 0 0 14 0 0 28 36 4 20 36 12 48 196 42 41 33 32 12 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ocircumflex" xMin="92" yMin="-37" xMax="1500" yMax="1925"> - <contour> - <pt x="796" y="1517" on="1"/> - <pt x="1115" y="1517" on="0"/> - <pt x="1308" y="1306" on="1"/> - <pt x="1500" y="1094" on="0"/> - <pt x="1500" y="742" on="1"/> - <pt x="1500" y="383" on="0"/> - <pt x="1308" y="173" on="1"/> - <pt x="1115" y="-37" on="0"/> - <pt x="786" y="-37" on="1"/> - <pt x="504" y="-37" on="0"/> - <pt x="321" y="136" on="1"/> - <pt x="92" y="353" on="0"/> - <pt x="92" y="740" on="1"/> - <pt x="92" y="1095" on="0"/> - <pt x="284" y="1306" on="1"/> - <pt x="476" y="1517" on="0"/> - </contour> - <contour> - <pt x="796" y="1360" on="1"/> - <pt x="569" y="1360" on="0"/> - <pt x="443" y="1197" on="1"/> - <pt x="317" y="1034" on="0"/> - <pt x="317" y="741" on="1"/> - <pt x="317" y="450" on="0"/> - <pt x="443" y="285" on="1"/> - <pt x="568" y="120" on="0"/> - <pt x="791" y="120" on="1"/> - <pt x="998" y="120" on="0"/> - <pt x="1121" y="252" on="1"/> - <pt x="1275" y="415" on="0"/> - <pt x="1275" y="742" on="1"/> - <pt x="1275" y="1034" on="0"/> - <pt x="1148" y="1197" on="1"/> - <pt x="1021" y="1360" on="0"/> - </contour> - <contour> - <pt x="446" y="1604" on="1"/> - <pt x="687" y="1925" on="1"/> - <pt x="905" y="1925" on="1"/> - <pt x="1146" y="1604" on="1"/> - <pt x="998" y="1604" on="1"/> - <pt x="797" y="1806" on="1"/> - <pt x="795" y="1806" on="1"/> - <pt x="594" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 51 values pushed */ - 0 0 24 29 8 16 29 0 48 196 8 2 0 0 38 37 2 33 32 3 34 33 1 39 36 - 35 32 3 2 0 14 0 0 28 26 4 20 26 12 48 196 39 38 37 36 35 34 33 32 12 - 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Odieresis" xMin="92" yMin="-37" xMax="1500" yMax="1777"> - <contour> - <pt x="796" y="1517" on="1"/> - <pt x="1115" y="1517" on="0"/> - <pt x="1308" y="1306" on="1"/> - <pt x="1500" y="1094" on="0"/> - <pt x="1500" y="742" on="1"/> - <pt x="1500" y="383" on="0"/> - <pt x="1308" y="173" on="1"/> - <pt x="1115" y="-37" on="0"/> - <pt x="786" y="-37" on="1"/> - <pt x="504" y="-37" on="0"/> - <pt x="321" y="136" on="1"/> - <pt x="92" y="353" on="0"/> - <pt x="92" y="740" on="1"/> - <pt x="92" y="1095" on="0"/> - <pt x="284" y="1306" on="1"/> - <pt x="476" y="1517" on="0"/> - </contour> - <contour> - <pt x="796" y="1360" on="1"/> - <pt x="569" y="1360" on="0"/> - <pt x="443" y="1197" on="1"/> - <pt x="317" y="1034" on="0"/> - <pt x="317" y="741" on="1"/> - <pt x="317" y="450" on="0"/> - <pt x="443" y="285" on="1"/> - <pt x="568" y="120" on="0"/> - <pt x="791" y="120" on="1"/> - <pt x="998" y="120" on="0"/> - <pt x="1121" y="252" on="1"/> - <pt x="1275" y="415" on="0"/> - <pt x="1275" y="742" on="1"/> - <pt x="1275" y="1034" on="0"/> - <pt x="1148" y="1197" on="1"/> - <pt x="1021" y="1360" on="0"/> - </contour> - <contour> - <pt x="512" y="1604" on="1"/> - <pt x="512" y="1777" on="1"/> - <pt x="685" y="1777" on="1"/> - <pt x="685" y="1604" on="1"/> - </contour> - <contour> - <pt x="907" y="1604" on="1"/> - <pt x="907" y="1777" on="1"/> - <pt x="1080" y="1777" on="1"/> - <pt x="1080" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 72 values pushed */ - 0 0 24 29 8 16 29 0 48 196 8 2 0 0 0 0 39 36 35 32 13 3 33 1 4 - 48 196 38 37 34 33 3 0 14 0 0 28 26 4 20 26 12 48 196 4 38 12 32 0 0 - 37 36 13 1 38 35 34 13 1 32 2 4 48 196 39 38 1 33 32 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ograve" xMin="92" yMin="-37" xMax="1500" yMax="1925"> - <contour> - <pt x="796" y="1517" on="1"/> - <pt x="1115" y="1517" on="0"/> - <pt x="1308" y="1306" on="1"/> - <pt x="1500" y="1094" on="0"/> - <pt x="1500" y="742" on="1"/> - <pt x="1500" y="383" on="0"/> - <pt x="1308" y="173" on="1"/> - <pt x="1115" y="-37" on="0"/> - <pt x="786" y="-37" on="1"/> - <pt x="504" y="-37" on="0"/> - <pt x="321" y="136" on="1"/> - <pt x="92" y="353" on="0"/> - <pt x="92" y="740" on="1"/> - <pt x="92" y="1095" on="0"/> - <pt x="284" y="1306" on="1"/> - <pt x="476" y="1517" on="0"/> - </contour> - <contour> - <pt x="796" y="1360" on="1"/> - <pt x="569" y="1360" on="0"/> - <pt x="443" y="1197" on="1"/> - <pt x="317" y="1034" on="0"/> - <pt x="317" y="741" on="1"/> - <pt x="317" y="450" on="0"/> - <pt x="443" y="285" on="1"/> - <pt x="568" y="120" on="0"/> - <pt x="791" y="120" on="1"/> - <pt x="998" y="120" on="0"/> - <pt x="1121" y="252" on="1"/> - <pt x="1275" y="415" on="0"/> - <pt x="1275" y="742" on="1"/> - <pt x="1275" y="1034" on="0"/> - <pt x="1148" y="1197" on="1"/> - <pt x="1021" y="1360" on="0"/> - </contour> - <contour> - <pt x="944" y="1604" on="1"/> - <pt x="796" y="1604" on="1"/> - <pt x="475" y="1925" on="1"/> - <pt x="703" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 39 values pushed */ - 0 0 24 29 8 16 29 0 48 196 8 2 0 0 35 34 1 33 32 1 2 0 14 0 0 - 28 26 4 20 26 12 48 196 35 34 33 32 12 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ohungarumlaut" xMin="93" yMin="-37" xMax="1501" yMax="1925"> - <contour> - <pt x="797" y="1517" on="1"/> - <pt x="1116" y="1517" on="0"/> - <pt x="1309" y="1306" on="1"/> - <pt x="1501" y="1094" on="0"/> - <pt x="1501" y="742" on="1"/> - <pt x="1501" y="383" on="0"/> - <pt x="1309" y="173" on="1"/> - <pt x="1116" y="-37" on="0"/> - <pt x="787" y="-37" on="1"/> - <pt x="505" y="-37" on="0"/> - <pt x="322" y="136" on="1"/> - <pt x="93" y="353" on="0"/> - <pt x="93" y="740" on="1"/> - <pt x="93" y="1095" on="0"/> - <pt x="285" y="1306" on="1"/> - <pt x="477" y="1517" on="0"/> - </contour> - <contour> - <pt x="797" y="1360" on="1"/> - <pt x="570" y="1360" on="0"/> - <pt x="444" y="1197" on="1"/> - <pt x="318" y="1034" on="0"/> - <pt x="318" y="741" on="1"/> - <pt x="318" y="450" on="0"/> - <pt x="444" y="285" on="1"/> - <pt x="569" y="120" on="0"/> - <pt x="792" y="120" on="1"/> - <pt x="999" y="120" on="0"/> - <pt x="1122" y="252" on="1"/> - <pt x="1276" y="415" on="0"/> - <pt x="1276" y="742" on="1"/> - <pt x="1276" y="1034" on="0"/> - <pt x="1149" y="1197" on="1"/> - <pt x="1022" y="1360" on="0"/> - </contour> - <contour> - <pt x="566" y="1604" on="1"/> - <pt x="807" y="1925" on="1"/> - <pt x="998" y="1925" on="1"/> - <pt x="677" y="1604" on="1"/> - </contour> - <contour> - <pt x="918" y="1604" on="1"/> - <pt x="1158" y="1925" on="1"/> - <pt x="1349" y="1925" on="1"/> - <pt x="1029" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 51 values pushed */ - 0 0 24 29 8 16 29 0 48 196 8 2 0 0 1 39 36 35 32 4 33 0 3 0 38 - 37 34 33 3 0 14 0 0 28 26 4 20 26 12 48 196 39 38 37 36 35 34 33 32 12 - 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Omacron" xMin="93" yMin="-37" xMax="1501" yMax="1752"> - <contour> - <pt x="797" y="1517" on="1"/> - <pt x="1116" y="1517" on="0"/> - <pt x="1309" y="1306" on="1"/> - <pt x="1501" y="1094" on="0"/> - <pt x="1501" y="742" on="1"/> - <pt x="1501" y="383" on="0"/> - <pt x="1309" y="173" on="1"/> - <pt x="1116" y="-37" on="0"/> - <pt x="787" y="-37" on="1"/> - <pt x="505" y="-37" on="0"/> - <pt x="322" y="136" on="1"/> - <pt x="93" y="353" on="0"/> - <pt x="93" y="740" on="1"/> - <pt x="93" y="1095" on="0"/> - <pt x="285" y="1306" on="1"/> - <pt x="477" y="1517" on="0"/> - </contour> - <contour> - <pt x="797" y="1360" on="1"/> - <pt x="570" y="1360" on="0"/> - <pt x="444" y="1197" on="1"/> - <pt x="318" y="1034" on="0"/> - <pt x="318" y="741" on="1"/> - <pt x="318" y="450" on="0"/> - <pt x="444" y="285" on="1"/> - <pt x="569" y="120" on="0"/> - <pt x="792" y="120" on="1"/> - <pt x="999" y="120" on="0"/> - <pt x="1122" y="252" on="1"/> - <pt x="1276" y="415" on="0"/> - <pt x="1276" y="742" on="1"/> - <pt x="1276" y="1034" on="0"/> - <pt x="1149" y="1197" on="1"/> - <pt x="1022" y="1360" on="0"/> - </contour> - <contour> - <pt x="476" y="1604" on="1"/> - <pt x="476" y="1752" on="1"/> - <pt x="1118" y="1752" on="1"/> - <pt x="1118" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 52 values pushed */ - 0 0 24 29 8 16 29 0 48 196 8 2 0 0 0 0 35 32 7 1 33 1 4 48 196 - 34 33 1 0 14 0 0 28 26 4 20 26 12 48 196 4 34 12 32 35 34 1 33 32 1 - 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Oslash" xMin="93" yMin="-37" xMax="1501" yMax="1517"> - <contour> - <pt x="104" y="-37" on="1"/> - <pt x="278" y="184" on="1"/> - <pt x="196" y="286" on="0"/> - <pt x="154" y="390" on="1"/> - <pt x="93" y="545" on="0"/> - <pt x="93" y="742" on="1"/> - <pt x="93" y="1094" on="0"/> - <pt x="285" y="1306" on="1"/> - <pt x="476" y="1517" on="0"/> - <pt x="795" y="1517" on="1"/> - <pt x="1038" y="1517" on="0"/> - <pt x="1223" y="1384" on="1"/> - <pt x="1329" y="1517" on="1"/> - <pt x="1501" y="1517" on="1"/> - <pt x="1322" y="1290" on="1"/> - <pt x="1401" y="1188" on="0"/> - <pt x="1442" y="1085" on="1"/> - <pt x="1501" y="932" on="0"/> - <pt x="1501" y="738" on="1"/> - <pt x="1501" y="385" on="0"/> - <pt x="1309" y="174" on="1"/> - <pt x="1118" y="-37" on="0"/> - <pt x="798" y="-37" on="1"/> - <pt x="563" y="-37" on="0"/> - <pt x="378" y="91" on="1"/> - <pt x="276" y="-37" on="1"/> - </contour> - <contour> - <pt x="491" y="235" on="1"/> - <pt x="621" y="120" on="0"/> - <pt x="798" y="120" on="1"/> - <pt x="1023" y="120" on="0"/> - <pt x="1149" y="283" on="1"/> - <pt x="1276" y="446" on="0"/> - <pt x="1276" y="737" on="1"/> - <pt x="1276" y="969" on="0"/> - <pt x="1194" y="1127" on="1"/> - </contour> - <contour> - <pt x="1110" y="1240" on="1"/> - <pt x="976" y="1360" on="0"/> - <pt x="796" y="1360" on="1"/> - <pt x="571" y="1360" on="0"/> - <pt x="445" y="1197" on="1"/> - <pt x="318" y="1034" on="0"/> - <pt x="318" y="743" on="1"/> - <pt x="318" y="507" on="0"/> - <pt x="405" y="345" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 71 values pushed */ - 0 0 37 29 9 28 29 22 48 196 22 2 9 0 1 1 35 34 14 11 4 0 1 3 0 - 0 1 1 43 26 24 1 4 1 2 3 0 0 13 12 1 25 0 1 2 0 14 0 0 41 - 26 5 32 26 18 48 196 43 35 34 26 25 24 18 14 13 12 11 5 1 0 - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Otilde" xMin="92" yMin="-37" xMax="1500" yMax="1838"> - <contour> - <pt x="796" y="1517" on="1"/> - <pt x="1115" y="1517" on="0"/> - <pt x="1308" y="1306" on="1"/> - <pt x="1500" y="1094" on="0"/> - <pt x="1500" y="742" on="1"/> - <pt x="1500" y="383" on="0"/> - <pt x="1308" y="173" on="1"/> - <pt x="1115" y="-37" on="0"/> - <pt x="786" y="-37" on="1"/> - <pt x="504" y="-37" on="0"/> - <pt x="321" y="136" on="1"/> - <pt x="92" y="353" on="0"/> - <pt x="92" y="740" on="1"/> - <pt x="92" y="1095" on="0"/> - <pt x="284" y="1306" on="1"/> - <pt x="476" y="1517" on="0"/> - </contour> - <contour> - <pt x="796" y="1360" on="1"/> - <pt x="569" y="1360" on="0"/> - <pt x="443" y="1197" on="1"/> - <pt x="317" y="1034" on="0"/> - <pt x="317" y="741" on="1"/> - <pt x="317" y="450" on="0"/> - <pt x="443" y="285" on="1"/> - <pt x="568" y="120" on="0"/> - <pt x="791" y="120" on="1"/> - <pt x="998" y="120" on="0"/> - <pt x="1121" y="252" on="1"/> - <pt x="1275" y="415" on="0"/> - <pt x="1275" y="742" on="1"/> - <pt x="1275" y="1034" on="0"/> - <pt x="1148" y="1197" on="1"/> - <pt x="1021" y="1360" on="0"/> - </contour> - <contour> - <pt x="463" y="1604" on="1"/> - <pt x="470" y="1697" on="0"/> - <pt x="495" y="1748" on="1"/> - <pt x="541" y="1838" on="0"/> - <pt x="650" y="1838" on="1"/> - <pt x="722" y="1838" on="0"/> - <pt x="783" y="1800" on="1"/> - <pt x="843" y="1763" on="1"/> - <pt x="900" y="1728" on="0"/> - <pt x="930" y="1728" on="1"/> - <pt x="995" y="1728" on="0"/> - <pt x="1006" y="1838" on="1"/> - <pt x="1129" y="1838" on="1"/> - <pt x="1122" y="1744" on="0"/> - <pt x="1097" y="1694" on="1"/> - <pt x="1052" y="1604" on="0"/> - <pt x="944" y="1604" on="1"/> - <pt x="872" y="1604" on="0"/> - <pt x="809" y="1643" on="1"/> - <pt x="749" y="1680" on="1"/> - <pt x="694" y="1714" on="0"/> - <pt x="662" y="1714" on="1"/> - <pt x="597" y="1714" on="0"/> - <pt x="586" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 48 values pushed */ - 0 0 53 6 36 41 6 48 24 29 8 16 29 0 48 196 8 2 0 0 1 55 44 43 32 - 4 13 48 36 0 0 14 0 0 28 26 4 20 26 12 48 196 55 44 43 32 12 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="P" xMin="167" yMin="0" xMax="1318" yMax="1480"> - <contour> - <pt x="167" y="0" on="1"/> - <pt x="167" y="1480" on="1"/> - <pt x="747" y="1480" on="1"/> - <pt x="976" y="1480" on="0"/> - <pt x="1075" y="1454" on="1"/> - <pt x="1176" y="1427" on="0"/> - <pt x="1239" y="1351" on="1"/> - <pt x="1318" y="1255" on="0"/> - <pt x="1318" y="1089" on="1"/> - <pt x="1318" y="588" on="0"/> - <pt x="685" y="588" on="1"/> - <pt x="377" y="588" on="1"/> - <pt x="377" y="0" on="1"/> - </contour> - <contour> - <pt x="377" y="747" on="1"/> - <pt x="676" y="747" on="1"/> - <pt x="1096" y="747" on="0"/> - <pt x="1096" y="1076" on="1"/> - <pt x="1096" y="1236" on="0"/> - <pt x="987" y="1283" on="1"/> - <pt x="894" y="1323" on="0"/> - <pt x="681" y="1323" on="1"/> - <pt x="377" y="1323" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 60 values pushed */ - 0 0 21 20 15 1 1 11 10 15 1 13 2 4 48 196 14 13 1 12 0 1 2 0 2 - 1 0 14 0 0 16 26 8 48 196 20 14 10 2 4 13 8 11 0 0 21 13 12 11 33 - 3 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Q" xMin="93" yMin="-296" xMax="1639" yMax="1517"> - <contour> - <pt x="1639" y="-129" on="1"/> - <pt x="1506" y="-296" on="1"/> - <pt x="1156" y="-181" on="0"/> - <pt x="922" y="-27" on="1"/> - <pt x="819" y="-38" on="0"/> - <pt x="765" y="-38" on="1"/> - <pt x="471" y="-38" on="0"/> - <pt x="282" y="180" on="1"/> - <pt x="93" y="397" on="0"/> - <pt x="93" y="741" on="1"/> - <pt x="93" y="1093" on="0"/> - <pt x="284" y="1305" on="1"/> - <pt x="475" y="1517" on="0"/> - <pt x="794" y="1517" on="1"/> - <pt x="1116" y="1517" on="0"/> - <pt x="1309" y="1305" on="1"/> - <pt x="1502" y="1094" on="0"/> - <pt x="1502" y="738" on="1"/> - <pt x="1502" y="427" on="0"/> - <pt x="1356" y="231" on="1"/> - <pt x="1300" y="155" on="0"/> - <pt x="1227" y="100" on="1"/> - <pt x="1189" y="72" on="0"/> - <pt x="1114" y="30" on="1"/> - <pt x="1360" y="-80" on="0"/> - </contour> - <contour> - <pt x="793" y="1360" on="1"/> - <pt x="570" y="1360" on="0"/> - <pt x="444" y="1195" on="1"/> - <pt x="318" y="1031" on="0"/> - <pt x="318" y="740" on="1"/> - <pt x="318" y="450" on="0"/> - <pt x="444" y="285" on="1"/> - <pt x="570" y="120" on="0"/> - <pt x="793" y="120" on="1"/> - <pt x="1018" y="120" on="0"/> - <pt x="1147" y="282" on="1"/> - <pt x="1276" y="444" on="0"/> - <pt x="1276" y="734" on="1"/> - <pt x="1276" y="1003" on="0"/> - <pt x="1173" y="1163" on="1"/> - <pt x="1046" y="1360" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 47 values pushed */ - 0 0 33 29 5 25 29 13 48 196 13 0 5 2 1 1 23 0 2 2 0 0 1 3 1 - 0 3 13 2 0 14 0 0 37 26 17 29 26 9 48 196 23 17 9 3 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="R" xMin="165" yMin="0" xMax="1434" yMax="1480"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="783" y="1480" on="1"/> - <pt x="1239" y="1480" on="0"/> - <pt x="1239" y="1113" on="1"/> - <pt x="1239" y="933" on="0"/> - <pt x="1128" y="817" on="1"/> - <pt x="1063" y="748" on="0"/> - <pt x="940" y="693" on="1"/> - <pt x="1434" y="0" on="1"/> - <pt x="1176" y="0" on="1"/> - <pt x="755" y="626" on="1"/> - <pt x="375" y="626" on="1"/> - <pt x="375" y="0" on="1"/> - </contour> - <contour> - <pt x="375" y="783" on="1"/> - <pt x="610" y="783" on="1"/> - <pt x="824" y="783" on="0"/> - <pt x="923" y="857" on="1"/> - <pt x="1023" y="932" on="0"/> - <pt x="1023" y="1089" on="1"/> - <pt x="1023" y="1216" on="0"/> - <pt x="942" y="1269" on="1"/> - <pt x="862" y="1323" on="0"/> - <pt x="675" y="1323" on="1"/> - <pt x="375" y="1323" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 69 values pushed */ - 8 14 11 2 0 0 24 23 15 1 1 12 11 15 1 14 2 4 48 196 15 14 1 13 10 - 9 0 3 2 0 2 1 0 14 0 0 19 9 4 48 196 23 15 11 10 9 8 2 7 13 - 4 12 0 0 24 14 13 12 33 3 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Racute" xMin="165" yMin="0" xMax="1434" yMax="1925"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="783" y="1480" on="1"/> - <pt x="1239" y="1480" on="0"/> - <pt x="1239" y="1113" on="1"/> - <pt x="1239" y="933" on="0"/> - <pt x="1128" y="817" on="1"/> - <pt x="1063" y="748" on="0"/> - <pt x="940" y="693" on="1"/> - <pt x="1434" y="0" on="1"/> - <pt x="1176" y="0" on="1"/> - <pt x="755" y="626" on="1"/> - <pt x="375" y="626" on="1"/> - <pt x="375" y="0" on="1"/> - </contour> - <contour> - <pt x="375" y="783" on="1"/> - <pt x="610" y="783" on="1"/> - <pt x="824" y="783" on="0"/> - <pt x="923" y="857" on="1"/> - <pt x="1023" y="932" on="0"/> - <pt x="1023" y="1089" on="1"/> - <pt x="1023" y="1216" on="0"/> - <pt x="942" y="1269" on="1"/> - <pt x="862" y="1323" on="0"/> - <pt x="675" y="1323" on="1"/> - <pt x="375" y="1323" on="1"/> - </contour> - <contour> - <pt x="523" y="1604" on="1"/> - <pt x="764" y="1925" on="1"/> - <pt x="992" y="1925" on="1"/> - <pt x="671" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 79 values pushed */ - 8 14 11 2 0 0 24 23 15 1 1 12 11 15 1 14 2 4 48 196 27 26 1 28 25 - 1 15 14 1 13 10 9 0 3 4 0 2 1 0 14 0 0 19 9 4 48 196 28 27 26 - 25 23 15 11 10 9 8 2 11 13 4 12 0 0 24 14 13 12 33 3 0 1 4 48 196 - 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Rcaron" xMin="165" yMin="0" xMax="1434" yMax="1925"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="783" y="1480" on="1"/> - <pt x="1239" y="1480" on="0"/> - <pt x="1239" y="1113" on="1"/> - <pt x="1239" y="933" on="0"/> - <pt x="1128" y="817" on="1"/> - <pt x="1063" y="748" on="0"/> - <pt x="940" y="693" on="1"/> - <pt x="1434" y="0" on="1"/> - <pt x="1176" y="0" on="1"/> - <pt x="755" y="626" on="1"/> - <pt x="375" y="626" on="1"/> - <pt x="375" y="0" on="1"/> - </contour> - <contour> - <pt x="375" y="783" on="1"/> - <pt x="610" y="783" on="1"/> - <pt x="824" y="783" on="0"/> - <pt x="923" y="857" on="1"/> - <pt x="1023" y="932" on="0"/> - <pt x="1023" y="1089" on="1"/> - <pt x="1023" y="1216" on="0"/> - <pt x="942" y="1269" on="1"/> - <pt x="862" y="1323" on="0"/> - <pt x="675" y="1323" on="1"/> - <pt x="375" y="1323" on="1"/> - </contour> - <contour> - <pt x="982" y="1925" on="1"/> - <pt x="741" y="1604" on="1"/> - <pt x="523" y="1604" on="1"/> - <pt x="282" y="1925" on="1"/> - <pt x="430" y="1925" on="1"/> - <pt x="631" y="1723" on="1"/> - <pt x="633" y="1723" on="1"/> - <pt x="834" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 94 values pushed */ - 31 30 2 25 26 3 8 14 11 2 0 0 24 23 15 1 1 12 11 15 1 14 2 4 48 - 196 32 29 28 25 3 27 26 1 15 14 1 13 10 9 0 3 4 0 2 1 0 14 0 0 - 19 9 4 48 196 28 12 0 2 32 31 30 29 27 26 25 23 15 11 10 9 8 2 14 13 - 4 12 0 0 24 14 13 12 33 3 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Rcommaaccent" xMin="165" yMin="-432" xMax="1434" yMax="1480"> - <contour> - <pt x="165" y="0" on="1"/> - <pt x="165" y="1480" on="1"/> - <pt x="783" y="1480" on="1"/> - <pt x="1239" y="1480" on="0"/> - <pt x="1239" y="1113" on="1"/> - <pt x="1239" y="933" on="0"/> - <pt x="1128" y="817" on="1"/> - <pt x="1063" y="748" on="0"/> - <pt x="940" y="693" on="1"/> - <pt x="1434" y="0" on="1"/> - <pt x="1176" y="0" on="1"/> - <pt x="755" y="626" on="1"/> - <pt x="375" y="626" on="1"/> - <pt x="375" y="0" on="1"/> - </contour> - <contour> - <pt x="375" y="783" on="1"/> - <pt x="610" y="783" on="1"/> - <pt x="824" y="783" on="0"/> - <pt x="923" y="857" on="1"/> - <pt x="1023" y="932" on="0"/> - <pt x="1023" y="1089" on="1"/> - <pt x="1023" y="1216" on="0"/> - <pt x="942" y="1269" on="1"/> - <pt x="862" y="1323" on="0"/> - <pt x="675" y="1323" on="1"/> - <pt x="375" y="1323" on="1"/> - </contour> - <contour> - <pt x="523" y="-421" on="1"/> - <pt x="523" y="-336" on="1"/> - <pt x="580" y="-345" on="0"/> - <pt x="620" y="-345" on="1"/> - <pt x="730" y="-345" on="0"/> - <pt x="730" y="-278" on="1"/> - <pt x="730" y="-204" on="0"/> - <pt x="572" y="-188" on="1"/> - <pt x="572" y="-111" on="1"/> - <pt x="706" y="-114" on="0"/> - <pt x="772" y="-143" on="1"/> - <pt x="865" y="-185" on="0"/> - <pt x="865" y="-280" on="1"/> - <pt x="865" y="-432" on="0"/> - <pt x="648" y="-432" on="1"/> - <pt x="589" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 92 values pushed */ - 0 0 28 44 39 48 196 8 14 11 2 33 32 26 25 4 13 39 0 0 0 24 23 15 1 - 1 12 11 15 1 14 2 4 48 196 15 14 1 13 10 9 0 3 2 0 2 1 0 14 0 - 0 30 42 37 19 9 4 48 196 33 32 26 25 23 15 11 10 9 8 2 11 13 37 4 12 - 0 0 24 14 13 12 33 3 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="S" xMin="120" yMin="-37" xMax="1243" yMax="1517"> - <contour> - <pt x="120" y="52" on="1"/> - <pt x="120" y="260" on="1"/> - <pt x="416" y="120" on="0"/> - <pt x="704" y="120" on="1"/> - <pt x="1027" y="120" on="0"/> - <pt x="1027" y="359" on="1"/> - <pt x="1027" y="483" on="0"/> - <pt x="938" y="541" on="1"/> - <pt x="869" y="587" on="0"/> - <pt x="716" y="637" on="1"/> - <pt x="515" y="703" on="1"/> - <pt x="128" y="830" on="0"/> - <pt x="128" y="1122" on="1"/> - <pt x="128" y="1517" on="0"/> - <pt x="670" y="1517" on="1"/> - <pt x="902" y="1517" on="0"/> - <pt x="1151" y="1454" on="1"/> - <pt x="1151" y="1261" on="1"/> - <pt x="891" y="1360" on="0"/> - <pt x="657" y="1360" on="1"/> - <pt x="331" y="1360" on="0"/> - <pt x="331" y="1138" on="1"/> - <pt x="331" y="1051" on="0"/> - <pt x="392" y="998" on="1"/> - <pt x="455" y="943" on="0"/> - <pt x="614" y="891" on="1"/> - <pt x="820" y="824" on="1"/> - <pt x="1053" y="748" on="0"/> - <pt x="1148" y="650" on="1"/> - <pt x="1243" y="553" on="0"/> - <pt x="1243" y="390" on="1"/> - <pt x="1243" y="193" on="0"/> - <pt x="1097" y="78" on="1"/> - <pt x="952" y="-37" on="0"/> - <pt x="696" y="-37" on="1"/> - <pt x="444" y="-37" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 52 values pushed */ - 0 0 19 29 14 3 29 34 48 196 34 2 14 0 1 1 17 16 1 0 4 0 2 3 0 - 0 14 0 0 21 43 12 5 9 30 48 196 12 12 16 0 2 30 16 17 16 1 1 0 1 - 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Sacute" xMin="120" yMin="-37" xMax="1243" yMax="1925"> - <contour> - <pt x="120" y="52" on="1"/> - <pt x="120" y="260" on="1"/> - <pt x="416" y="120" on="0"/> - <pt x="704" y="120" on="1"/> - <pt x="1027" y="120" on="0"/> - <pt x="1027" y="359" on="1"/> - <pt x="1027" y="483" on="0"/> - <pt x="938" y="541" on="1"/> - <pt x="869" y="587" on="0"/> - <pt x="716" y="637" on="1"/> - <pt x="515" y="703" on="1"/> - <pt x="128" y="830" on="0"/> - <pt x="128" y="1122" on="1"/> - <pt x="128" y="1517" on="0"/> - <pt x="670" y="1517" on="1"/> - <pt x="902" y="1517" on="0"/> - <pt x="1151" y="1454" on="1"/> - <pt x="1151" y="1261" on="1"/> - <pt x="891" y="1360" on="0"/> - <pt x="657" y="1360" on="1"/> - <pt x="331" y="1360" on="0"/> - <pt x="331" y="1138" on="1"/> - <pt x="331" y="1051" on="0"/> - <pt x="392" y="998" on="1"/> - <pt x="455" y="943" on="0"/> - <pt x="614" y="891" on="1"/> - <pt x="820" y="824" on="1"/> - <pt x="1053" y="748" on="0"/> - <pt x="1148" y="650" on="1"/> - <pt x="1243" y="553" on="0"/> - <pt x="1243" y="390" on="1"/> - <pt x="1243" y="193" on="0"/> - <pt x="1097" y="78" on="1"/> - <pt x="952" y="-37" on="0"/> - <pt x="696" y="-37" on="1"/> - <pt x="444" y="-37" on="0"/> - </contour> - <contour> - <pt x="523" y="1604" on="1"/> - <pt x="764" y="1925" on="1"/> - <pt x="992" y="1925" on="1"/> - <pt x="671" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 65 values pushed */ - 0 0 19 29 14 3 29 34 48 196 34 2 14 0 1 1 17 16 1 0 4 0 2 3 0 - 0 38 37 1 39 36 1 2 0 14 0 0 21 43 12 5 9 30 48 196 12 39 38 37 36 - 12 5 16 0 3 30 16 17 16 1 1 0 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Scaron" xMin="120" yMin="-37" xMax="1243" yMax="1925"> - <contour> - <pt x="120" y="52" on="1"/> - <pt x="120" y="260" on="1"/> - <pt x="416" y="120" on="0"/> - <pt x="704" y="120" on="1"/> - <pt x="1027" y="120" on="0"/> - <pt x="1027" y="359" on="1"/> - <pt x="1027" y="483" on="0"/> - <pt x="938" y="541" on="1"/> - <pt x="869" y="587" on="0"/> - <pt x="716" y="637" on="1"/> - <pt x="515" y="703" on="1"/> - <pt x="128" y="830" on="0"/> - <pt x="128" y="1122" on="1"/> - <pt x="128" y="1517" on="0"/> - <pt x="670" y="1517" on="1"/> - <pt x="902" y="1517" on="0"/> - <pt x="1151" y="1454" on="1"/> - <pt x="1151" y="1261" on="1"/> - <pt x="891" y="1360" on="0"/> - <pt x="657" y="1360" on="1"/> - <pt x="331" y="1360" on="0"/> - <pt x="331" y="1138" on="1"/> - <pt x="331" y="1051" on="0"/> - <pt x="392" y="998" on="1"/> - <pt x="455" y="943" on="0"/> - <pt x="614" y="891" on="1"/> - <pt x="820" y="824" on="1"/> - <pt x="1053" y="748" on="0"/> - <pt x="1148" y="650" on="1"/> - <pt x="1243" y="553" on="0"/> - <pt x="1243" y="390" on="1"/> - <pt x="1243" y="193" on="0"/> - <pt x="1097" y="78" on="1"/> - <pt x="952" y="-37" on="0"/> - <pt x="696" y="-37" on="1"/> - <pt x="444" y="-37" on="0"/> - </contour> - <contour> - <pt x="1021" y="1925" on="1"/> - <pt x="780" y="1604" on="1"/> - <pt x="562" y="1604" on="1"/> - <pt x="321" y="1925" on="1"/> - <pt x="469" y="1925" on="1"/> - <pt x="670" y="1723" on="1"/> - <pt x="672" y="1723" on="1"/> - <pt x="873" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 77 values pushed */ - 0 0 19 29 14 3 29 34 48 196 34 2 14 0 42 41 2 36 37 3 1 1 17 16 1 - 0 4 0 2 3 0 0 43 40 39 36 3 38 37 1 2 0 14 0 0 21 43 12 5 9 - 30 48 196 12 43 42 41 40 39 38 37 36 12 9 16 0 3 30 16 17 16 1 1 0 1 - 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Scedilla" xMin="120" yMin="-432" xMax="1243" yMax="1517"> - <contour> - <pt x="120" y="52" on="1"/> - <pt x="120" y="260" on="1"/> - <pt x="416" y="120" on="0"/> - <pt x="704" y="120" on="1"/> - <pt x="1027" y="120" on="0"/> - <pt x="1027" y="359" on="1"/> - <pt x="1027" y="483" on="0"/> - <pt x="938" y="541" on="1"/> - <pt x="870" y="587" on="0"/> - <pt x="716" y="637" on="1"/> - <pt x="515" y="703" on="1"/> - <pt x="128" y="830" on="0"/> - <pt x="128" y="1122" on="1"/> - <pt x="128" y="1517" on="0"/> - <pt x="670" y="1517" on="1"/> - <pt x="902" y="1517" on="0"/> - <pt x="1151" y="1454" on="1"/> - <pt x="1151" y="1261" on="1"/> - <pt x="891" y="1360" on="0"/> - <pt x="657" y="1360" on="1"/> - <pt x="331" y="1360" on="0"/> - <pt x="331" y="1138" on="1"/> - <pt x="331" y="1051" on="0"/> - <pt x="392" y="998" on="1"/> - <pt x="455" y="943" on="0"/> - <pt x="614" y="891" on="1"/> - <pt x="820" y="824" on="1"/> - <pt x="1053" y="748" on="0"/> - <pt x="1148" y="650" on="1"/> - <pt x="1243" y="553" on="0"/> - <pt x="1243" y="391" on="1"/> - <pt x="1243" y="192" on="0"/> - <pt x="1097" y="78" on="1"/> - <pt x="951" y="-37" on="0"/> - <pt x="696" y="-37" on="1"/> - <pt x="444" y="-37" on="0"/> - </contour> - <contour> - <pt x="601" y="0" on="1"/> - <pt x="698" y="0" on="1"/> - <pt x="638" y="-109" on="1"/> - <pt x="710" y="-111" on="0"/> - <pt x="762" y="-148" on="1"/> - <pt x="832" y="-197" on="0"/> - <pt x="832" y="-269" on="1"/> - <pt x="832" y="-337" on="0"/> - <pt x="773" y="-384" on="1"/> - <pt x="714" y="-432" on="0"/> - <pt x="629" y="-432" on="1"/> - <pt x="562" y="-432" on="0"/> - <pt x="485" y="-411" on="1"/> - <pt x="485" y="-330" on="1"/> - <pt x="535" y="-345" on="0"/> - <pt x="589" y="-345" on="1"/> - <pt x="693" y="-345" on="0"/> - <pt x="693" y="-271" on="1"/> - <pt x="693" y="-178" on="0"/> - <pt x="506" y="-175" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 79 values pushed */ - 0 0 51 44 46 19 29 14 3 29 34 48 196 34 2 14 0 1 1 17 16 1 0 4 0 - 2 3 0 0 1 55 49 48 38 37 36 6 13 46 2 0 14 0 0 53 42 42 21 43 12 - 5 9 30 48 196 42 12 55 49 48 42 38 37 36 12 8 16 0 3 30 16 17 16 1 1 - 0 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Scircumflex" xMin="120" yMin="-37" xMax="1243" yMax="1925"> - <contour> - <pt x="120" y="52" on="1"/> - <pt x="120" y="260" on="1"/> - <pt x="416" y="120" on="0"/> - <pt x="704" y="120" on="1"/> - <pt x="1027" y="120" on="0"/> - <pt x="1027" y="359" on="1"/> - <pt x="1027" y="483" on="0"/> - <pt x="938" y="541" on="1"/> - <pt x="869" y="587" on="0"/> - <pt x="716" y="637" on="1"/> - <pt x="515" y="703" on="1"/> - <pt x="128" y="830" on="0"/> - <pt x="128" y="1122" on="1"/> - <pt x="128" y="1517" on="0"/> - <pt x="670" y="1517" on="1"/> - <pt x="902" y="1517" on="0"/> - <pt x="1151" y="1454" on="1"/> - <pt x="1151" y="1261" on="1"/> - <pt x="891" y="1360" on="0"/> - <pt x="657" y="1360" on="1"/> - <pt x="331" y="1360" on="0"/> - <pt x="331" y="1138" on="1"/> - <pt x="331" y="1051" on="0"/> - <pt x="392" y="998" on="1"/> - <pt x="455" y="943" on="0"/> - <pt x="614" y="891" on="1"/> - <pt x="820" y="824" on="1"/> - <pt x="1053" y="748" on="0"/> - <pt x="1148" y="650" on="1"/> - <pt x="1243" y="553" on="0"/> - <pt x="1243" y="390" on="1"/> - <pt x="1243" y="193" on="0"/> - <pt x="1097" y="78" on="1"/> - <pt x="952" y="-37" on="0"/> - <pt x="696" y="-37" on="1"/> - <pt x="444" y="-37" on="0"/> - </contour> - <contour> - <pt x="321" y="1604" on="1"/> - <pt x="562" y="1925" on="1"/> - <pt x="780" y="1925" on="1"/> - <pt x="1021" y="1604" on="1"/> - <pt x="873" y="1604" on="1"/> - <pt x="672" y="1806" on="1"/> - <pt x="670" y="1806" on="1"/> - <pt x="469" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 77 values pushed */ - 0 0 19 29 14 3 29 34 48 196 34 2 14 0 42 41 2 37 36 3 1 1 17 16 1 - 0 4 0 2 3 0 0 38 37 1 43 40 39 36 3 2 0 14 0 0 21 43 12 5 9 - 30 48 196 12 43 42 41 40 39 38 37 36 12 9 16 0 3 30 16 17 16 1 1 0 1 - 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Scommaaccent" xMin="120" yMin="-432" xMax="1243" yMax="1517"> - <contour> - <pt x="120" y="52" on="1"/> - <pt x="120" y="260" on="1"/> - <pt x="416" y="120" on="0"/> - <pt x="704" y="120" on="1"/> - <pt x="1027" y="120" on="0"/> - <pt x="1027" y="359" on="1"/> - <pt x="1027" y="483" on="0"/> - <pt x="938" y="541" on="1"/> - <pt x="870" y="587" on="0"/> - <pt x="716" y="637" on="1"/> - <pt x="515" y="703" on="1"/> - <pt x="128" y="830" on="0"/> - <pt x="128" y="1122" on="1"/> - <pt x="128" y="1517" on="0"/> - <pt x="670" y="1517" on="1"/> - <pt x="902" y="1517" on="0"/> - <pt x="1151" y="1454" on="1"/> - <pt x="1151" y="1261" on="1"/> - <pt x="891" y="1360" on="0"/> - <pt x="657" y="1360" on="1"/> - <pt x="331" y="1360" on="0"/> - <pt x="331" y="1138" on="1"/> - <pt x="331" y="1051" on="0"/> - <pt x="392" y="998" on="1"/> - <pt x="455" y="943" on="0"/> - <pt x="614" y="891" on="1"/> - <pt x="820" y="824" on="1"/> - <pt x="1053" y="748" on="0"/> - <pt x="1148" y="650" on="1"/> - <pt x="1243" y="553" on="0"/> - <pt x="1243" y="391" on="1"/> - <pt x="1243" y="192" on="0"/> - <pt x="1097" y="78" on="1"/> - <pt x="951" y="-37" on="0"/> - <pt x="696" y="-37" on="1"/> - <pt x="444" y="-37" on="0"/> - </contour> - <contour> - <pt x="524" y="-421" on="1"/> - <pt x="524" y="-336" on="1"/> - <pt x="581" y="-345" on="0"/> - <pt x="621" y="-345" on="1"/> - <pt x="731" y="-345" on="0"/> - <pt x="731" y="-278" on="1"/> - <pt x="731" y="-204" on="0"/> - <pt x="573" y="-188" on="1"/> - <pt x="573" y="-111" on="1"/> - <pt x="707" y="-114" on="0"/> - <pt x="773" y="-143" on="1"/> - <pt x="866" y="-185" on="0"/> - <pt x="866" y="-280" on="1"/> - <pt x="866" y="-432" on="0"/> - <pt x="649" y="-432" on="1"/> - <pt x="590" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 75 values pushed */ - 0 0 39 44 50 19 29 14 3 29 34 48 196 34 2 14 0 1 1 17 16 1 0 4 0 - 2 3 0 0 1 44 43 37 36 4 13 50 2 0 14 0 0 41 42 48 21 43 12 5 9 - 30 48 196 48 12 48 44 43 37 36 12 6 16 0 3 30 16 17 16 1 1 0 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="T" xMin="20" yMin="0" xMax="1230" yMax="1480"> - <contour> - <pt x="520" y="0" on="1"/> - <pt x="520" y="1323" on="1"/> - <pt x="20" y="1323" on="1"/> - <pt x="20" y="1480" on="1"/> - <pt x="1230" y="1480" on="1"/> - <pt x="1230" y="1323" on="1"/> - <pt x="730" y="1323" on="1"/> - <pt x="730" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 43 values pushed */ - 0 0 6 5 2 1 15 3 3 1 4 48 196 7 0 1 0 4 3 0 14 0 0 7 6 - 33 1 0 1 4 48 196 5 4 1 1 0 1 3 2 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Tbar" xMin="20" yMin="0" xMax="1230" yMax="1480"> - <contour> - <pt x="520" y="0" on="1"/> - <pt x="520" y="715" on="1"/> - <pt x="217" y="715" on="1"/> - <pt x="217" y="863" on="1"/> - <pt x="520" y="863" on="1"/> - <pt x="520" y="1323" on="1"/> - <pt x="20" y="1323" on="1"/> - <pt x="20" y="1480" on="1"/> - <pt x="1230" y="1480" on="1"/> - <pt x="1230" y="1323" on="1"/> - <pt x="730" y="1323" on="1"/> - <pt x="730" y="863" on="1"/> - <pt x="1033" y="863" on="1"/> - <pt x="1033" y="715" on="1"/> - <pt x="730" y="715" on="1"/> - <pt x="730" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 66 values pushed */ - 0 0 10 9 6 5 15 3 7 14 13 2 1 7 3 3 2 4 48 196 12 11 4 3 3 - 15 0 1 2 0 8 7 0 14 0 0 15 14 11 10 33 3 0 1 4 48 196 9 8 1 - 13 12 1 5 4 1 0 3 3 2 1 7 6 1 5 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Tcaron" xMin="20" yMin="0" xMax="1230" yMax="1925"> - <contour> - <pt x="520" y="0" on="1"/> - <pt x="520" y="1323" on="1"/> - <pt x="20" y="1323" on="1"/> - <pt x="20" y="1480" on="1"/> - <pt x="1230" y="1480" on="1"/> - <pt x="1230" y="1323" on="1"/> - <pt x="730" y="1323" on="1"/> - <pt x="730" y="0" on="1"/> - </contour> - <contour> - <pt x="975" y="1925" on="1"/> - <pt x="734" y="1604" on="1"/> - <pt x="516" y="1604" on="1"/> - <pt x="275" y="1925" on="1"/> - <pt x="423" y="1925" on="1"/> - <pt x="624" y="1723" on="1"/> - <pt x="626" y="1723" on="1"/> - <pt x="827" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 78 values pushed */ - 14 13 2 8 9 3 0 0 6 5 2 1 15 3 3 1 4 48 196 15 12 11 8 3 10 - 9 1 7 0 1 3 0 4 3 0 14 15 9 8 3 4 6 3 14 13 2 6 0 3 12 - 11 10 3 0 2 3 0 0 7 6 33 1 0 1 4 48 196 5 4 1 1 0 1 3 2 - 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Tcommaaccent" xMin="20" yMin="-432" xMax="1230" yMax="1480"> - <contour> - <pt x="520" y="0" on="1"/> - <pt x="520" y="1323" on="1"/> - <pt x="20" y="1323" on="1"/> - <pt x="20" y="1480" on="1"/> - <pt x="1230" y="1480" on="1"/> - <pt x="1230" y="1323" on="1"/> - <pt x="730" y="1323" on="1"/> - <pt x="730" y="0" on="1"/> - </contour> - <contour> - <pt x="586" y="0" on="1"/> - <pt x="683" y="0" on="1"/> - <pt x="623" y="-109" on="1"/> - <pt x="695" y="-111" on="0"/> - <pt x="747" y="-148" on="1"/> - <pt x="817" y="-197" on="0"/> - <pt x="817" y="-268" on="1"/> - <pt x="817" y="-337" on="0"/> - <pt x="759" y="-384" on="1"/> - <pt x="700" y="-432" on="0"/> - <pt x="614" y="-432" on="1"/> - <pt x="546" y="-432" on="0"/> - <pt x="470" y="-411" on="1"/> - <pt x="470" y="-330" on="1"/> - <pt x="520" y="-345" on="0"/> - <pt x="574" y="-345" on="1"/> - <pt x="678" y="-345" on="0"/> - <pt x="678" y="-271" on="1"/> - <pt x="678" y="-178" on="0"/> - <pt x="491" y="-175" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 86 values pushed */ - 0 0 23 44 18 48 196 27 21 20 10 4 13 18 0 0 0 6 5 2 1 15 3 3 1 - 4 48 196 9 8 7 0 3 0 4 3 0 14 0 0 25 42 14 48 196 14 14 4 6 2 - 10 9 8 3 6 0 3 27 21 20 3 0 2 3 0 0 7 6 33 1 0 1 4 48 196 - 5 4 1 1 0 1 3 2 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Tcommabelow" xMin="20" yMin="-432" xMax="1230" yMax="1480"> - <contour> - <pt x="520" y="0" on="1"/> - <pt x="520" y="1323" on="1"/> - <pt x="20" y="1323" on="1"/> - <pt x="20" y="1480" on="1"/> - <pt x="1230" y="1480" on="1"/> - <pt x="1230" y="1323" on="1"/> - <pt x="730" y="1323" on="1"/> - <pt x="730" y="0" on="1"/> - </contour> - <contour> - <pt x="471" y="-421" on="1"/> - <pt x="471" y="-336" on="1"/> - <pt x="528" y="-345" on="0"/> - <pt x="568" y="-345" on="1"/> - <pt x="678" y="-345" on="0"/> - <pt x="678" y="-278" on="1"/> - <pt x="678" y="-204" on="0"/> - <pt x="520" y="-188" on="1"/> - <pt x="520" y="-111" on="1"/> - <pt x="654" y="-114" on="0"/> - <pt x="720" y="-143" on="1"/> - <pt x="813" y="-185" on="0"/> - <pt x="813" y="-280" on="1"/> - <pt x="813" y="-432" on="0"/> - <pt x="596" y="-432" on="1"/> - <pt x="537" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 78 values pushed */ - 0 0 11 32 22 48 196 16 15 9 8 4 13 22 0 0 0 6 5 2 1 37 3 3 1 - 4 48 196 7 0 1 0 4 3 0 14 0 0 13 22 20 48 196 20 20 4 6 2 9 8 - 2 0 2 3 0 0 7 6 9 1 0 1 4 48 196 5 4 1 16 15 1 0 3 3 2 - 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Thorn" xMin="167" yMin="0" xMax="1318" yMax="1480"> - <contour> - <pt x="167" y="0" on="1"/> - <pt x="167" y="1480" on="1"/> - <pt x="377" y="1480" on="1"/> - <pt x="377" y="1201" on="1"/> - <pt x="747" y="1201" on="1"/> - <pt x="975" y="1201" on="0"/> - <pt x="1075" y="1174" on="1"/> - <pt x="1175" y="1148" on="0"/> - <pt x="1239" y="1071" on="1"/> - <pt x="1318" y="976" on="0"/> - <pt x="1318" y="810" on="1"/> - <pt x="1318" y="308" on="0"/> - <pt x="685" y="308" on="1"/> - <pt x="375" y="308" on="1"/> - <pt x="375" y="0" on="1"/> - </contour> - <contour> - <pt x="375" y="467" on="1"/> - <pt x="676" y="467" on="1"/> - <pt x="1096" y="467" on="0"/> - <pt x="1096" y="796" on="1"/> - <pt x="1096" y="956" on="0"/> - <pt x="987" y="1003" on="1"/> - <pt x="894" y="1043" on="0"/> - <pt x="681" y="1043" on="1"/> - <pt x="375" y="1043" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 68 values pushed */ - 0 0 23 22 15 1 3 16 15 15 1 12 2 4 48 196 4 3 1 13 12 1 14 0 1 - 3 0 2 1 0 14 0 0 18 26 10 48 196 22 16 12 4 4 13 10 2 0 0 3 2 - 33 1 0 23 15 14 13 33 3 0 2 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="U" xMin="166" yMin="-37" xMax="1312" yMax="1480"> - <contour> - <pt x="166" y="1480" on="1"/> - <pt x="376" y="1480" on="1"/> - <pt x="376" y="546" on="1"/> - <pt x="376" y="388" on="0"/> - <pt x="402" y="314" on="1"/> - <pt x="427" y="241" on="0"/> - <pt x="499" y="190" on="1"/> - <pt x="599" y="120" on="0"/> - <pt x="768" y="120" on="1"/> - <pt x="967" y="120" on="0"/> - <pt x="1047" y="214" on="1"/> - <pt x="1128" y="307" on="0"/> - <pt x="1128" y="539" on="1"/> - <pt x="1128" y="1480" on="1"/> - <pt x="1312" y="1480" on="1"/> - <pt x="1312" y="542" on="1"/> - <pt x="1312" y="344" on="0"/> - <pt x="1273" y="242" on="1"/> - <pt x="1234" y="139" on="0"/> - <pt x="1129" y="64" on="1"/> - <pt x="987" y="-37" on="0"/> - <pt x="750" y="-37" on="1"/> - <pt x="448" y="-37" on="0"/> - <pt x="307" y="103" on="1"/> - <pt x="166" y="243" on="0"/> - <pt x="166" y="548" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 50 values pushed */ - 0 0 8 29 21 48 196 21 2 1 25 15 12 2 4 0 2 3 0 14 13 1 0 0 3 - 14 0 0 13 12 24 1 14 2 1 33 1 0 2 4 48 196 15 14 1 25 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Uacute" xMin="166" yMin="-37" xMax="1312" yMax="1925"> - <contour> - <pt x="166" y="1480" on="1"/> - <pt x="376" y="1480" on="1"/> - <pt x="376" y="546" on="1"/> - <pt x="376" y="388" on="0"/> - <pt x="402" y="314" on="1"/> - <pt x="427" y="241" on="0"/> - <pt x="499" y="190" on="1"/> - <pt x="599" y="120" on="0"/> - <pt x="768" y="120" on="1"/> - <pt x="967" y="120" on="0"/> - <pt x="1047" y="214" on="1"/> - <pt x="1128" y="307" on="0"/> - <pt x="1128" y="539" on="1"/> - <pt x="1128" y="1480" on="1"/> - <pt x="1312" y="1480" on="1"/> - <pt x="1312" y="542" on="1"/> - <pt x="1312" y="344" on="0"/> - <pt x="1273" y="242" on="1"/> - <pt x="1234" y="139" on="0"/> - <pt x="1129" y="64" on="1"/> - <pt x="987" y="-37" on="0"/> - <pt x="750" y="-37" on="1"/> - <pt x="448" y="-37" on="0"/> - <pt x="307" y="103" on="1"/> - <pt x="166" y="243" on="0"/> - <pt x="166" y="548" on="1"/> - </contour> - <contour> - <pt x="604" y="1604" on="1"/> - <pt x="845" y="1925" on="1"/> - <pt x="1073" y="1925" on="1"/> - <pt x="752" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 66 values pushed */ - 0 0 8 29 21 48 196 21 2 1 25 15 12 2 4 0 2 3 0 28 27 1 29 26 1 - 2 0 14 13 1 0 0 3 14 29 28 27 26 4 12 1 3 0 0 13 12 24 1 14 2 - 1 33 1 0 2 4 48 196 15 14 1 25 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ubreve" xMin="166" yMin="-37" xMax="1312" yMax="1925"> - <contour> - <pt x="166" y="1480" on="1"/> - <pt x="376" y="1480" on="1"/> - <pt x="376" y="546" on="1"/> - <pt x="376" y="388" on="0"/> - <pt x="402" y="314" on="1"/> - <pt x="427" y="241" on="0"/> - <pt x="499" y="190" on="1"/> - <pt x="599" y="120" on="0"/> - <pt x="768" y="120" on="1"/> - <pt x="967" y="120" on="0"/> - <pt x="1047" y="214" on="1"/> - <pt x="1128" y="307" on="0"/> - <pt x="1128" y="539" on="1"/> - <pt x="1128" y="1480" on="1"/> - <pt x="1312" y="1480" on="1"/> - <pt x="1312" y="542" on="1"/> - <pt x="1312" y="344" on="0"/> - <pt x="1273" y="242" on="1"/> - <pt x="1234" y="139" on="0"/> - <pt x="1129" y="64" on="1"/> - <pt x="987" y="-37" on="0"/> - <pt x="750" y="-37" on="1"/> - <pt x="448" y="-37" on="0"/> - <pt x="307" y="103" on="1"/> - <pt x="166" y="243" on="0"/> - <pt x="166" y="548" on="1"/> - </contour> - <contour> - <pt x="419" y="1925" on="1"/> - <pt x="542" y="1925" on="1"/> - <pt x="563" y="1831" on="0"/> - <pt x="617" y="1791" on="1"/> - <pt x="669" y="1752" on="0"/> - <pt x="752" y="1752" on="1"/> - <pt x="846" y="1752" on="0"/> - <pt x="900" y="1801" on="1"/> - <pt x="943" y="1841" on="0"/> - <pt x="962" y="1925" on="1"/> - <pt x="1085" y="1925" on="1"/> - <pt x="1069" y="1791" on="0"/> - <pt x="996" y="1710" on="1"/> - <pt x="902" y="1604" on="0"/> - <pt x="752" y="1604" on="1"/> - <pt x="595" y="1604" on="0"/> - <pt x="500" y="1719" on="1"/> - <pt x="435" y="1797" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 69 values pushed */ - 0 0 31 7 40 8 35 21 48 196 21 2 1 25 15 12 2 4 0 2 3 0 36 35 27 - 26 4 13 40 0 14 13 1 0 0 3 14 36 35 27 26 4 12 1 3 0 0 13 12 27 - 1 14 2 1 9 1 0 2 4 48 196 15 14 1 25 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ucircumflex" xMin="166" yMin="-37" xMax="1312" yMax="1925"> - <contour> - <pt x="166" y="1480" on="1"/> - <pt x="376" y="1480" on="1"/> - <pt x="376" y="546" on="1"/> - <pt x="376" y="388" on="0"/> - <pt x="402" y="314" on="1"/> - <pt x="427" y="241" on="0"/> - <pt x="499" y="190" on="1"/> - <pt x="599" y="120" on="0"/> - <pt x="768" y="120" on="1"/> - <pt x="967" y="120" on="0"/> - <pt x="1047" y="214" on="1"/> - <pt x="1128" y="307" on="0"/> - <pt x="1128" y="539" on="1"/> - <pt x="1128" y="1480" on="1"/> - <pt x="1312" y="1480" on="1"/> - <pt x="1312" y="542" on="1"/> - <pt x="1312" y="344" on="0"/> - <pt x="1273" y="242" on="1"/> - <pt x="1234" y="139" on="0"/> - <pt x="1129" y="64" on="1"/> - <pt x="987" y="-37" on="0"/> - <pt x="750" y="-37" on="1"/> - <pt x="448" y="-37" on="0"/> - <pt x="307" y="103" on="1"/> - <pt x="166" y="243" on="0"/> - <pt x="166" y="548" on="1"/> - </contour> - <contour> - <pt x="402" y="1604" on="1"/> - <pt x="643" y="1925" on="1"/> - <pt x="861" y="1925" on="1"/> - <pt x="1102" y="1604" on="1"/> - <pt x="954" y="1604" on="1"/> - <pt x="753" y="1806" on="1"/> - <pt x="751" y="1806" on="1"/> - <pt x="550" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 78 values pushed */ - 0 0 8 29 21 48 196 21 2 32 31 2 27 26 3 1 25 15 12 2 4 0 2 3 0 - 28 27 1 33 30 29 26 3 2 0 14 13 1 0 0 3 14 33 32 31 30 29 28 27 26 - 8 12 1 3 0 0 13 12 24 1 14 2 1 33 1 0 2 4 48 196 15 14 1 25 0 - 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Udieresis" xMin="166" yMin="-37" xMax="1312" yMax="1777"> - <contour> - <pt x="166" y="1480" on="1"/> - <pt x="376" y="1480" on="1"/> - <pt x="376" y="546" on="1"/> - <pt x="376" y="388" on="0"/> - <pt x="402" y="314" on="1"/> - <pt x="427" y="241" on="0"/> - <pt x="499" y="190" on="1"/> - <pt x="599" y="120" on="0"/> - <pt x="768" y="120" on="1"/> - <pt x="967" y="120" on="0"/> - <pt x="1047" y="214" on="1"/> - <pt x="1128" y="307" on="0"/> - <pt x="1128" y="539" on="1"/> - <pt x="1128" y="1480" on="1"/> - <pt x="1312" y="1480" on="1"/> - <pt x="1312" y="542" on="1"/> - <pt x="1312" y="344" on="0"/> - <pt x="1273" y="242" on="1"/> - <pt x="1234" y="139" on="0"/> - <pt x="1129" y="64" on="1"/> - <pt x="987" y="-37" on="0"/> - <pt x="750" y="-37" on="1"/> - <pt x="448" y="-37" on="0"/> - <pt x="307" y="103" on="1"/> - <pt x="166" y="243" on="0"/> - <pt x="166" y="548" on="1"/> - </contour> - <contour> - <pt x="468" y="1604" on="1"/> - <pt x="468" y="1777" on="1"/> - <pt x="641" y="1777" on="1"/> - <pt x="641" y="1604" on="1"/> - </contour> - <contour> - <pt x="863" y="1604" on="1"/> - <pt x="863" y="1777" on="1"/> - <pt x="1036" y="1777" on="1"/> - <pt x="1036" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 85 values pushed */ - 0 0 8 29 21 48 196 21 2 1 25 15 12 2 4 0 2 3 0 0 0 33 30 29 26 - 13 3 27 1 4 48 196 32 31 28 27 3 0 14 13 1 0 0 3 14 0 0 31 30 13 - 1 32 29 28 13 1 26 13 12 24 1 14 2 1 33 1 0 4 4 48 196 33 32 1 27 - 26 1 15 14 1 25 0 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ugrave" xMin="166" yMin="-37" xMax="1312" yMax="1925"> - <contour> - <pt x="166" y="1480" on="1"/> - <pt x="376" y="1480" on="1"/> - <pt x="376" y="546" on="1"/> - <pt x="376" y="388" on="0"/> - <pt x="402" y="314" on="1"/> - <pt x="427" y="241" on="0"/> - <pt x="499" y="190" on="1"/> - <pt x="599" y="120" on="0"/> - <pt x="768" y="120" on="1"/> - <pt x="967" y="120" on="0"/> - <pt x="1047" y="214" on="1"/> - <pt x="1128" y="307" on="0"/> - <pt x="1128" y="539" on="1"/> - <pt x="1128" y="1480" on="1"/> - <pt x="1312" y="1480" on="1"/> - <pt x="1312" y="542" on="1"/> - <pt x="1312" y="344" on="0"/> - <pt x="1273" y="242" on="1"/> - <pt x="1234" y="139" on="0"/> - <pt x="1129" y="64" on="1"/> - <pt x="987" y="-37" on="0"/> - <pt x="750" y="-37" on="1"/> - <pt x="448" y="-37" on="0"/> - <pt x="307" y="103" on="1"/> - <pt x="166" y="243" on="0"/> - <pt x="166" y="548" on="1"/> - </contour> - <contour> - <pt x="900" y="1604" on="1"/> - <pt x="752" y="1604" on="1"/> - <pt x="431" y="1925" on="1"/> - <pt x="659" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 66 values pushed */ - 0 0 8 29 21 48 196 21 2 1 25 15 12 2 4 0 2 3 0 29 28 1 27 26 1 - 2 0 14 13 1 0 0 3 14 29 28 27 26 4 12 1 3 0 0 13 12 24 1 14 2 - 1 33 1 0 2 4 48 196 15 14 1 25 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Uhungarumlaut" xMin="166" yMin="-37" xMax="1312" yMax="1925"> - <contour> - <pt x="166" y="1480" on="1"/> - <pt x="376" y="1480" on="1"/> - <pt x="376" y="546" on="1"/> - <pt x="376" y="388" on="0"/> - <pt x="402" y="314" on="1"/> - <pt x="427" y="241" on="0"/> - <pt x="499" y="190" on="1"/> - <pt x="599" y="120" on="0"/> - <pt x="768" y="120" on="1"/> - <pt x="967" y="120" on="0"/> - <pt x="1047" y="214" on="1"/> - <pt x="1128" y="307" on="0"/> - <pt x="1128" y="539" on="1"/> - <pt x="1128" y="1480" on="1"/> - <pt x="1312" y="1480" on="1"/> - <pt x="1312" y="542" on="1"/> - <pt x="1312" y="344" on="0"/> - <pt x="1273" y="242" on="1"/> - <pt x="1234" y="139" on="0"/> - <pt x="1129" y="64" on="1"/> - <pt x="987" y="-37" on="0"/> - <pt x="750" y="-37" on="1"/> - <pt x="448" y="-37" on="0"/> - <pt x="307" y="103" on="1"/> - <pt x="166" y="243" on="0"/> - <pt x="166" y="548" on="1"/> - </contour> - <contour> - <pt x="499" y="1604" on="1"/> - <pt x="740" y="1925" on="1"/> - <pt x="931" y="1925" on="1"/> - <pt x="610" y="1604" on="1"/> - </contour> - <contour> - <pt x="851" y="1604" on="1"/> - <pt x="1091" y="1925" on="1"/> - <pt x="1282" y="1925" on="1"/> - <pt x="962" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 79 values pushed */ - 0 0 8 29 21 48 196 21 2 33 30 29 26 4 27 0 3 1 25 15 12 2 4 0 2 - 3 0 32 31 28 27 3 0 14 13 1 0 0 3 14 32 14 12 2 33 31 30 29 28 27 - 26 7 12 1 3 0 0 13 12 24 1 14 2 1 33 1 0 2 4 48 196 15 14 1 25 - 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Umacron" xMin="166" yMin="-37" xMax="1312" yMax="1752"> - <contour> - <pt x="166" y="1480" on="1"/> - <pt x="376" y="1480" on="1"/> - <pt x="376" y="546" on="1"/> - <pt x="376" y="388" on="0"/> - <pt x="402" y="314" on="1"/> - <pt x="427" y="241" on="0"/> - <pt x="499" y="190" on="1"/> - <pt x="599" y="120" on="0"/> - <pt x="768" y="120" on="1"/> - <pt x="967" y="120" on="0"/> - <pt x="1047" y="214" on="1"/> - <pt x="1128" y="307" on="0"/> - <pt x="1128" y="539" on="1"/> - <pt x="1128" y="1480" on="1"/> - <pt x="1312" y="1480" on="1"/> - <pt x="1312" y="542" on="1"/> - <pt x="1312" y="344" on="0"/> - <pt x="1273" y="242" on="1"/> - <pt x="1234" y="139" on="0"/> - <pt x="1129" y="64" on="1"/> - <pt x="987" y="-37" on="0"/> - <pt x="750" y="-37" on="1"/> - <pt x="448" y="-37" on="0"/> - <pt x="307" y="103" on="1"/> - <pt x="166" y="243" on="0"/> - <pt x="166" y="548" on="1"/> - </contour> - <contour> - <pt x="431" y="1604" on="1"/> - <pt x="431" y="1752" on="1"/> - <pt x="1073" y="1752" on="1"/> - <pt x="1073" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 71 values pushed */ - 0 0 8 29 21 48 196 21 2 1 25 15 12 2 4 0 2 3 0 0 0 29 26 7 1 - 27 1 4 48 196 28 27 1 0 14 13 1 0 0 3 14 0 0 13 12 24 1 14 2 1 - 33 1 0 2 4 48 196 29 28 1 27 26 1 15 14 1 25 0 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Unterkomma" xMin="170" yMin="-432" xMax="512" yMax="-111"> - <contour> - <pt x="170" y="-421" on="1"/> - <pt x="170" y="-336" on="1"/> - <pt x="227" y="-345" on="0"/> - <pt x="267" y="-345" on="1"/> - <pt x="377" y="-345" on="0"/> - <pt x="377" y="-278" on="1"/> - <pt x="377" y="-204" on="0"/> - <pt x="219" y="-188" on="1"/> - <pt x="219" y="-111" on="1"/> - <pt x="353" y="-114" on="0"/> - <pt x="419" y="-143" on="1"/> - <pt x="512" y="-185" on="0"/> - <pt x="512" y="-280" on="1"/> - <pt x="512" y="-432" on="0"/> - <pt x="295" y="-432" on="1"/> - <pt x="236" y="-432" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 25 values pushed */ - 0 0 3 44 14 48 196 14 8 7 1 0 14 0 0 5 42 12 48 196 12 8 7 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Uogonek" xMin="166" yMin="-370" xMax="1312" yMax="1480"> - <contour> - <pt x="166" y="1480" on="1"/> - <pt x="376" y="1480" on="1"/> - <pt x="376" y="546" on="1"/> - <pt x="376" y="388" on="0"/> - <pt x="402" y="314" on="1"/> - <pt x="427" y="241" on="0"/> - <pt x="499" y="190" on="1"/> - <pt x="599" y="120" on="0"/> - <pt x="768" y="120" on="1"/> - <pt x="967" y="120" on="0"/> - <pt x="1047" y="214" on="1"/> - <pt x="1128" y="307" on="0"/> - <pt x="1128" y="539" on="1"/> - <pt x="1128" y="1480" on="1"/> - <pt x="1312" y="1480" on="1"/> - <pt x="1312" y="542" on="1"/> - <pt x="1312" y="344" on="0"/> - <pt x="1273" y="242" on="1"/> - <pt x="1234" y="139" on="0"/> - <pt x="1129" y="64" on="1"/> - <pt x="987" y="-37" on="0"/> - <pt x="750" y="-37" on="1"/> - <pt x="448" y="-37" on="0"/> - <pt x="307" y="103" on="1"/> - <pt x="166" y="243" on="0"/> - <pt x="166" y="548" on="1"/> - </contour> - <contour> - <pt x="800" y="0" on="1"/> - <pt x="907" y="0" on="1"/> - <pt x="779" y="-81" on="0"/> - <pt x="779" y="-179" on="1"/> - <pt x="779" y="-275" on="0"/> - <pt x="894" y="-275" on="1"/> - <pt x="947" y="-275" on="0"/> - <pt x="984" y="-260" on="1"/> - <pt x="984" y="-341" on="1"/> - <pt x="922" y="-370" on="0"/> - <pt x="844" y="-370" on="1"/> - <pt x="642" y="-370" on="0"/> - <pt x="642" y="-212" on="1"/> - <pt x="642" y="-90" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 80 values pushed */ - 0 0 31 21 36 8 29 21 48 196 21 2 1 25 15 12 2 4 0 2 3 0 1 34 33 - 27 26 4 13 36 2 0 14 13 1 0 0 3 14 0 0 29 42 38 48 196 38 38 34 33 - 27 26 5 12 1 3 0 0 13 12 24 1 14 2 1 33 1 0 2 4 48 196 15 14 1 - 25 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Uring" xMin="166" yMin="-37" xMax="1312" yMax="2033"> - <contour> - <pt x="166" y="1480" on="1"/> - <pt x="376" y="1480" on="1"/> - <pt x="376" y="546" on="1"/> - <pt x="376" y="388" on="0"/> - <pt x="402" y="314" on="1"/> - <pt x="427" y="241" on="0"/> - <pt x="499" y="190" on="1"/> - <pt x="599" y="120" on="0"/> - <pt x="768" y="120" on="1"/> - <pt x="967" y="120" on="0"/> - <pt x="1047" y="214" on="1"/> - <pt x="1128" y="307" on="0"/> - <pt x="1128" y="539" on="1"/> - <pt x="1128" y="1480" on="1"/> - <pt x="1312" y="1480" on="1"/> - <pt x="1312" y="542" on="1"/> - <pt x="1312" y="344" on="0"/> - <pt x="1273" y="242" on="1"/> - <pt x="1234" y="139" on="0"/> - <pt x="1129" y="64" on="1"/> - <pt x="987" y="-37" on="0"/> - <pt x="750" y="-37" on="1"/> - <pt x="448" y="-37" on="0"/> - <pt x="307" y="103" on="1"/> - <pt x="166" y="243" on="0"/> - <pt x="166" y="548" on="1"/> - </contour> - <contour> - <pt x="752" y="2033" on="1"/> - <pt x="846" y="2033" on="0"/> - <pt x="912" y="1967" on="1"/> - <pt x="979" y="1901" on="0"/> - <pt x="979" y="1807" on="1"/> - <pt x="979" y="1711" on="0"/> - <pt x="912" y="1645" on="1"/> - <pt x="846" y="1579" on="0"/> - <pt x="750" y="1579" on="1"/> - <pt x="667" y="1579" on="0"/> - <pt x="605" y="1633" on="1"/> - <pt x="525" y="1702" on="0"/> - <pt x="525" y="1806" on="1"/> - <pt x="525" y="1900" on="0"/> - <pt x="591" y="1966" on="1"/> - <pt x="658" y="2033" on="0"/> - </contour> - <contour> - <pt x="752" y="1946" on="1"/> - <pt x="693" y="1946" on="0"/> - <pt x="652" y="1905" on="1"/> - <pt x="611" y="1864" on="0"/> - <pt x="611" y="1806" on="1"/> - <pt x="611" y="1748" on="0"/> - <pt x="652" y="1707" on="1"/> - <pt x="694" y="1665" on="0"/> - <pt x="750" y="1665" on="1"/> - <pt x="804" y="1665" on="0"/> - <pt x="843" y="1698" on="1"/> - <pt x="893" y="1741" on="0"/> - <pt x="893" y="1807" on="1"/> - <pt x="893" y="1865" on="0"/> - <pt x="851" y="1905" on="1"/> - <pt x="810" y="1946" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 77 values pushed */ - 0 0 50 44 34 42 44 26 8 29 21 48 196 21 2 1 25 15 12 2 4 0 2 3 0 - 34 26 0 14 13 1 0 0 3 14 0 0 54 32 30 46 32 38 48 196 38 30 38 30 2 - 12 1 3 0 0 13 12 24 1 14 2 1 33 1 0 2 4 48 196 15 14 1 25 0 1 - 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Utilde" xMin="166" yMin="-37" xMax="1312" yMax="1838"> - <contour> - <pt x="166" y="1480" on="1"/> - <pt x="376" y="1480" on="1"/> - <pt x="376" y="546" on="1"/> - <pt x="376" y="388" on="0"/> - <pt x="402" y="314" on="1"/> - <pt x="427" y="241" on="0"/> - <pt x="499" y="190" on="1"/> - <pt x="599" y="120" on="0"/> - <pt x="768" y="120" on="1"/> - <pt x="967" y="120" on="0"/> - <pt x="1047" y="214" on="1"/> - <pt x="1128" y="307" on="0"/> - <pt x="1128" y="539" on="1"/> - <pt x="1128" y="1480" on="1"/> - <pt x="1312" y="1480" on="1"/> - <pt x="1312" y="542" on="1"/> - <pt x="1312" y="344" on="0"/> - <pt x="1273" y="242" on="1"/> - <pt x="1234" y="139" on="0"/> - <pt x="1129" y="64" on="1"/> - <pt x="987" y="-37" on="0"/> - <pt x="750" y="-37" on="1"/> - <pt x="448" y="-37" on="0"/> - <pt x="307" y="103" on="1"/> - <pt x="166" y="243" on="0"/> - <pt x="166" y="548" on="1"/> - </contour> - <contour> - <pt x="419" y="1604" on="1"/> - <pt x="426" y="1697" on="0"/> - <pt x="451" y="1748" on="1"/> - <pt x="497" y="1838" on="0"/> - <pt x="606" y="1838" on="1"/> - <pt x="678" y="1838" on="0"/> - <pt x="739" y="1800" on="1"/> - <pt x="799" y="1763" on="1"/> - <pt x="856" y="1728" on="0"/> - <pt x="886" y="1728" on="1"/> - <pt x="951" y="1728" on="0"/> - <pt x="962" y="1838" on="1"/> - <pt x="1085" y="1838" on="1"/> - <pt x="1078" y="1744" on="0"/> - <pt x="1053" y="1694" on="1"/> - <pt x="1008" y="1604" on="0"/> - <pt x="900" y="1604" on="1"/> - <pt x="828" y="1604" on="0"/> - <pt x="765" y="1643" on="1"/> - <pt x="705" y="1680" on="1"/> - <pt x="650" y="1714" on="0"/> - <pt x="618" y="1714" on="1"/> - <pt x="553" y="1714" on="0"/> - <pt x="542" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 73 values pushed */ - 0 0 47 6 30 35 6 42 8 35 21 48 196 21 2 1 25 15 12 2 4 0 2 3 0 - 49 38 37 26 4 13 42 30 0 14 13 1 0 0 3 14 49 38 37 26 4 12 1 3 0 - 0 13 12 27 1 14 2 1 9 1 0 2 4 48 196 15 14 1 25 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="V" xMin="36" yMin="0" xMax="1355" yMax="1480"> - <contour> - <pt x="607" y="0" on="1"/> - <pt x="36" y="1480" on="1"/> - <pt x="252" y="1480" on="1"/> - <pt x="724" y="265" on="1"/> - <pt x="1176" y="1480" on="1"/> - <pt x="1355" y="1480" on="1"/> - <pt x="805" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 22 values pushed */ - 3 1 0 2 6 0 1 0 5 4 2 1 0 3 14 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="W" xMin="25" yMin="0" xMax="1908" yMax="1480"> - <contour> - <pt x="406" y="0" on="1"/> - <pt x="25" y="1480" on="1"/> - <pt x="227" y="1480" on="1"/> - <pt x="530" y="311" on="1"/> - <pt x="877" y="1480" on="1"/> - <pt x="1079" y="1480" on="1"/> - <pt x="1412" y="322" on="1"/> - <pt x="1737" y="1480" on="1"/> - <pt x="1908" y="1480" on="1"/> - <pt x="1492" y="0" on="1"/> - <pt x="1284" y="0" on="1"/> - <pt x="955" y="1141" on="1"/> - <pt x="614" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 35 values pushed */ - 11 6 3 3 1 0 3 12 10 9 0 3 0 8 7 5 4 2 1 0 5 14 12 11 10 - 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Wcircumflex" xMin="25" yMin="0" xMax="1908" yMax="1925"> - <contour> - <pt x="406" y="0" on="1"/> - <pt x="25" y="1480" on="1"/> - <pt x="227" y="1480" on="1"/> - <pt x="530" y="311" on="1"/> - <pt x="877" y="1480" on="1"/> - <pt x="1079" y="1480" on="1"/> - <pt x="1412" y="322" on="1"/> - <pt x="1737" y="1480" on="1"/> - <pt x="1908" y="1480" on="1"/> - <pt x="1492" y="0" on="1"/> - <pt x="1284" y="0" on="1"/> - <pt x="955" y="1141" on="1"/> - <pt x="614" y="0" on="1"/> - </contour> - <contour> - <pt x="628" y="1604" on="1"/> - <pt x="869" y="1925" on="1"/> - <pt x="1087" y="1925" on="1"/> - <pt x="1328" y="1604" on="1"/> - <pt x="1180" y="1604" on="1"/> - <pt x="979" y="1806" on="1"/> - <pt x="977" y="1806" on="1"/> - <pt x="776" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 58 values pushed */ - 19 18 2 14 13 3 11 6 3 3 1 0 3 15 14 1 20 17 16 13 3 12 10 9 0 - 3 3 0 8 7 5 4 2 1 0 5 14 20 19 18 17 16 15 14 13 12 11 10 9 8 - 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="X" xMin="28" yMin="0" xMax="1338" yMax="1480"> - <contour> - <pt x="28" y="0" on="1"/> - <pt x="573" y="735" on="1"/> - <pt x="52" y="1480" on="1"/> - <pt x="300" y="1480" on="1"/> - <pt x="701" y="905" on="1"/> - <pt x="1128" y="1480" on="1"/> - <pt x="1327" y="1480" on="1"/> - <pt x="798" y="770" on="1"/> - <pt x="1338" y="0" on="1"/> - <pt x="1090" y="0" on="1"/> - <pt x="670" y="598" on="1"/> - <pt x="226" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 33 values pushed */ - 10 7 4 1 4 2 0 3 11 9 8 0 3 0 6 5 3 2 0 3 14 11 10 9 8 - 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Y" xMin="30" yMin="0" xMax="1337" yMax="1480"> - <contour> - <pt x="561" y="0" on="1"/> - <pt x="561" y="617" on="1"/> - <pt x="30" y="1480" on="1"/> - <pt x="270" y="1480" on="1"/> - <pt x="691" y="795" on="1"/> - <pt x="1142" y="1480" on="1"/> - <pt x="1337" y="1480" on="1"/> - <pt x="771" y="622" on="1"/> - <pt x="771" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 45 values pushed */ - 7 4 1 3 2 0 3 8 0 1 0 6 5 3 2 0 3 14 4 7 0 2 6 5 2 - 13 7 3 2 0 0 0 8 7 33 1 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Yacute" xMin="30" yMin="0" xMax="1337" yMax="1925"> - <contour> - <pt x="561" y="0" on="1"/> - <pt x="561" y="617" on="1"/> - <pt x="30" y="1480" on="1"/> - <pt x="270" y="1480" on="1"/> - <pt x="691" y="795" on="1"/> - <pt x="1142" y="1480" on="1"/> - <pt x="1337" y="1480" on="1"/> - <pt x="771" y="622" on="1"/> - <pt x="771" y="0" on="1"/> - </contour> - <contour> - <pt x="543" y="1604" on="1"/> - <pt x="784" y="1925" on="1"/> - <pt x="1012" y="1925" on="1"/> - <pt x="691" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 59 values pushed */ - 7 4 1 3 2 0 3 11 10 1 12 9 1 8 0 1 3 0 6 5 3 2 0 3 14 - 12 4 2 7 0 3 11 10 6 5 4 13 7 9 3 2 3 13 0 0 0 8 7 33 1 - 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ycircumflex" xMin="30" yMin="0" xMax="1337" yMax="1925"> - <contour> - <pt x="561" y="0" on="1"/> - <pt x="561" y="617" on="1"/> - <pt x="30" y="1480" on="1"/> - <pt x="270" y="1480" on="1"/> - <pt x="691" y="795" on="1"/> - <pt x="1142" y="1480" on="1"/> - <pt x="1337" y="1480" on="1"/> - <pt x="771" y="622" on="1"/> - <pt x="771" y="0" on="1"/> - </contour> - <contour> - <pt x="356" y="1604" on="1"/> - <pt x="597" y="1925" on="1"/> - <pt x="815" y="1925" on="1"/> - <pt x="1056" y="1604" on="1"/> - <pt x="908" y="1604" on="1"/> - <pt x="707" y="1806" on="1"/> - <pt x="705" y="1806" on="1"/> - <pt x="504" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 71 values pushed */ - 15 14 2 10 9 3 7 4 1 3 2 0 3 11 10 1 16 13 12 9 3 8 0 1 3 - 0 6 5 3 2 0 3 14 15 14 10 4 4 7 0 3 13 12 11 6 5 5 13 7 16 - 9 3 2 4 13 0 0 0 8 7 33 1 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Ydieresis" xMin="30" yMin="0" xMax="1337" yMax="1777"> - <contour> - <pt x="561" y="0" on="1"/> - <pt x="561" y="617" on="1"/> - <pt x="30" y="1480" on="1"/> - <pt x="270" y="1480" on="1"/> - <pt x="691" y="795" on="1"/> - <pt x="1142" y="1480" on="1"/> - <pt x="1337" y="1480" on="1"/> - <pt x="771" y="622" on="1"/> - <pt x="771" y="0" on="1"/> - </contour> - <contour> - <pt x="422" y="1604" on="1"/> - <pt x="422" y="1777" on="1"/> - <pt x="595" y="1777" on="1"/> - <pt x="595" y="1604" on="1"/> - </contour> - <contour> - <pt x="817" y="1604" on="1"/> - <pt x="817" y="1777" on="1"/> - <pt x="990" y="1777" on="1"/> - <pt x="990" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 81 values pushed */ - 7 4 1 3 2 0 3 0 0 16 13 12 9 13 3 10 1 4 48 196 15 14 11 10 3 - 8 0 1 2 0 6 5 3 2 0 3 14 4 7 11 2 6 5 2 13 15 3 2 9 0 - 0 14 13 13 1 15 12 11 13 1 9 8 7 33 1 0 3 4 48 196 16 15 1 10 9 - 1 1 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Z" xMin="101" yMin="0" xMax="1148" yMax="1480"> - <contour> - <pt x="101" y="0" on="1"/> - <pt x="101" y="169" on="1"/> - <pt x="896" y="1323" on="1"/> - <pt x="150" y="1323" on="1"/> - <pt x="150" y="1480" on="1"/> - <pt x="1148" y="1480" on="1"/> - <pt x="1148" y="1323" on="1"/> - <pt x="353" y="169" on="1"/> - <pt x="1148" y="169" on="1"/> - <pt x="1148" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 46 values pushed */ - 0 0 6 3 2 15 2 4 1 4 8 7 1 2 0 1 6 48 196 9 0 1 0 5 4 - 0 14 7 2 2 5 3 3 9 8 6 5 3 4 3 1 1 0 1 3 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Zacute" xMin="101" yMin="0" xMax="1148" yMax="1925"> - <contour> - <pt x="101" y="0" on="1"/> - <pt x="101" y="169" on="1"/> - <pt x="896" y="1323" on="1"/> - <pt x="150" y="1323" on="1"/> - <pt x="150" y="1480" on="1"/> - <pt x="1148" y="1480" on="1"/> - <pt x="1148" y="1323" on="1"/> - <pt x="353" y="169" on="1"/> - <pt x="1148" y="169" on="1"/> - <pt x="1148" y="0" on="1"/> - </contour> - <contour> - <pt x="477" y="1604" on="1"/> - <pt x="718" y="1925" on="1"/> - <pt x="946" y="1925" on="1"/> - <pt x="625" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 57 values pushed */ - 0 0 6 3 2 15 2 4 1 4 8 7 1 2 0 1 6 48 196 12 11 1 13 10 1 - 9 0 1 3 0 5 4 0 14 13 12 11 10 7 2 6 5 3 3 9 8 6 5 3 4 - 3 1 1 0 1 3 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Zcaron" xMin="101" yMin="0" xMax="1148" yMax="1925"> - <contour> - <pt x="101" y="0" on="1"/> - <pt x="101" y="169" on="1"/> - <pt x="896" y="1323" on="1"/> - <pt x="150" y="1323" on="1"/> - <pt x="150" y="1480" on="1"/> - <pt x="1148" y="1480" on="1"/> - <pt x="1148" y="1323" on="1"/> - <pt x="353" y="169" on="1"/> - <pt x="1148" y="169" on="1"/> - <pt x="1148" y="0" on="1"/> - </contour> - <contour> - <pt x="987" y="1925" on="1"/> - <pt x="746" y="1604" on="1"/> - <pt x="528" y="1604" on="1"/> - <pt x="287" y="1925" on="1"/> - <pt x="435" y="1925" on="1"/> - <pt x="636" y="1723" on="1"/> - <pt x="638" y="1723" on="1"/> - <pt x="839" y="1925" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 69 values pushed */ - 16 15 2 10 11 3 0 0 6 3 2 15 2 4 1 4 8 7 1 2 0 1 6 48 196 - 17 14 13 10 3 12 11 1 9 0 1 3 0 5 4 0 14 17 16 15 14 13 12 11 10 - 7 2 10 5 3 3 9 8 6 5 3 4 3 1 1 0 1 3 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="Zdotaccent" xMin="101" yMin="0" xMax="1148" yMax="1801"> - <contour> - <pt x="101" y="0" on="1"/> - <pt x="101" y="169" on="1"/> - <pt x="896" y="1323" on="1"/> - <pt x="150" y="1323" on="1"/> - <pt x="150" y="1480" on="1"/> - <pt x="1148" y="1480" on="1"/> - <pt x="1148" y="1323" on="1"/> - <pt x="353" y="169" on="1"/> - <pt x="1148" y="169" on="1"/> - <pt x="1148" y="0" on="1"/> - </contour> - <contour> - <pt x="538" y="1604" on="1"/> - <pt x="538" y="1801" on="1"/> - <pt x="735" y="1801" on="1"/> - <pt x="735" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 71 values pushed */ - 0 0 13 10 5 1 11 6 3 2 15 2 4 2 4 8 7 1 2 0 1 6 48 196 12 - 11 1 9 0 1 2 0 5 4 0 14 2 5 12 2 7 10 3 2 0 0 13 12 4 1 - 10 1 4 48 196 11 10 1 9 8 6 5 3 4 3 1 1 0 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="a" xMin="95" yMin="-25" xMax="1098" yMax="1110"> - <contour> - <pt x="774" y="138" on="1"/> - <pt x="589" y="-25" on="0"/> - <pt x="414" y="-25" on="1"/> - <pt x="273" y="-25" on="0"/> - <pt x="184" y="58" on="1"/> - <pt x="95" y="142" on="0"/> - <pt x="95" y="273" on="1"/> - <pt x="95" y="642" on="0"/> - <pt x="699" y="642" on="1"/> - <pt x="745" y="642" on="1"/> - <pt x="745" y="773" on="1"/> - <pt x="745" y="962" on="0"/> - <pt x="536" y="962" on="1"/> - <pt x="374" y="962" on="0"/> - <pt x="189" y="866" on="1"/> - <pt x="189" y="1029" on="1"/> - <pt x="394" y="1110" on="0"/> - <pt x="574" y="1110" on="1"/> - <pt x="766" y="1110" on="0"/> - <pt x="854" y="1029" on="1"/> - <pt x="942" y="949" on="0"/> - <pt x="942" y="773" on="1"/> - <pt x="942" y="281" on="1"/> - <pt x="942" y="112" on="0"/> - <pt x="1046" y="112" on="1"/> - <pt x="1060" y="112" on="0"/> - <pt x="1084" y="116" on="1"/> - <pt x="1098" y="7" on="1"/> - <pt x="1025" y="-25" on="0"/> - <pt x="952" y="-25" on="1"/> - <pt x="884" y="-25" on="0"/> - <pt x="840" y="13" on="1"/> - <pt x="797" y="50" on="0"/> - </contour> - <contour> - <pt x="745" y="245" on="1"/> - <pt x="745" y="526" on="1"/> - <pt x="680" y="528" on="1"/> - <pt x="620" y="530" on="0"/> - <pt x="547" y="519" on="1"/> - <pt x="299" y="484" on="0"/> - <pt x="299" y="303" on="1"/> - <pt x="299" y="136" on="0"/> - <pt x="480" y="136" on="1"/> - <pt x="606" y="136" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 82 values pushed */ - 0 0 41 29 2 12 40 17 48 196 29 2 17 1 2 2 24 1 1 34 33 27 26 24 22 - 21 15 14 10 9 8 0 13 1 2 3 0 0 14 0 0 39 43 6 48 196 0 21 9 2 - 8 9 14 2 27 26 2 13 21 6 14 0 0 34 33 10 9 4 3 21 1 4 48 196 22 - 21 1 15 14 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MDAP[1] - MIAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="aacute" xMin="95" yMin="-25" xMax="1098" yMax="1604"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="323" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="abreve" xMin="105" yMin="-25" xMax="1108" yMax="1604"> - <component glyphName="a" x="10" y="0" flags="0x4"/> - <component glyphName="breve" x="248" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="acircumflex" xMin="95" yMin="-25" xMax="1098" yMax="1604"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="circumflex" x="238" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="acute" xMin="107" yMin="1283" xMax="576" yMax="1604"> - <contour> - <pt x="107" y="1283" on="1"/> - <pt x="348" y="1604" on="1"/> - <pt x="576" y="1604" on="1"/> - <pt x="255" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 13 values pushed */ - 2 1 1 3 0 1 2 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="adieresis" xMin="95" yMin="-25" xMax="1098" yMax="1456"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="dieresis" x="219" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ae" xMin="95" yMin="-25" xMax="1701" yMax="1110"> - <contour> - <pt x="767" y="245" on="1"/> - <pt x="767" y="526" on="1"/> - <pt x="692" y="528" on="1"/> - <pt x="627" y="530" on="0"/> - <pt x="551" y="519" on="1"/> - <pt x="292" y="483" on="0"/> - <pt x="292" y="303" on="1"/> - <pt x="292" y="136" on="0"/> - <pt x="491" y="136" on="1"/> - <pt x="628" y="136" on="0"/> - </contour> - <contour> - <pt x="916" y="983" on="1"/> - <pt x="1067" y="1110" on="0"/> - <pt x="1259" y="1110" on="1"/> - <pt x="1701" y="1110" on="0"/> - <pt x="1701" y="573" on="1"/> - <pt x="1701" y="512" on="1"/> - <pt x="961" y="512" on="1"/> - <pt x="973" y="395" on="0"/> - <pt x="999" y="334" on="1"/> - <pt x="1089" y="125" on="0"/> - <pt x="1364" y="125" on="1"/> - <pt x="1515" y="125" on="0"/> - <pt x="1696" y="191" on="1"/> - <pt x="1696" y="35" on="1"/> - <pt x="1491" y="-25" on="0"/> - <pt x="1318" y="-25" on="1"/> - <pt x="1127" y="-25" on="0"/> - <pt x="997" y="62" on="1"/> - <pt x="925" y="110" on="0"/> - <pt x="858" y="205" on="1"/> - <pt x="743" y="82" on="0"/> - <pt x="661" y="33" on="1"/> - <pt x="562" y="-25" on="0"/> - <pt x="427" y="-25" on="1"/> - <pt x="277" y="-25" on="0"/> - <pt x="186" y="57" on="1"/> - <pt x="95" y="140" on="0"/> - <pt x="95" y="272" on="1"/> - <pt x="95" y="642" on="0"/> - <pt x="721" y="642" on="1"/> - <pt x="767" y="642" on="1"/> - <pt x="767" y="773" on="1"/> - <pt x="767" y="878" on="0"/> - <pt x="718" y="920" on="1"/> - <pt x="669" y="962" on="0"/> - <pt x="547" y="962" on="1"/> - <pt x="376" y="962" on="0"/> - <pt x="189" y="866" on="1"/> - <pt x="189" y="1029" on="1"/> - <pt x="395" y="1110" on="0"/> - <pt x="581" y="1110" on="1"/> - <pt x="807" y="1110" on="0"/> - </contour> - <contour> - <pt x="971" y="660" on="1"/> - <pt x="1503" y="660" on="1"/> - <pt x="1500" y="756" on="0"/> - <pt x="1483" y="806" on="1"/> - <pt x="1430" y="962" on="0"/> - <pt x="1251" y="962" on="1"/> - <pt x="1126" y="962" on="0"/> - <pt x="1056" y="889" on="1"/> - <pt x="989" y="820" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 103 values pushed */ - 0 0 57 40 12 45 40 50 20 40 25 48 196 50 1 33 2 25 2 12 1 1 48 47 41 - 10 4 1 52 3 0 40 39 14 1 4 52 15 3 8 1 29 23 22 8 0 5 15 2 3 - 0 0 0 16 15 7 1 52 1 4 48 196 53 52 1 0 14 53 52 29 16 10 5 22 0 - 3 6 39 6 2 0 47 3 15 14 2 13 22 37 47 23 22 1 48 47 1 41 40 1 0 - 3 3 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MDAP[1] - CALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MDAP[1] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="afii00208" xMin="99" yMin="543" xMax="1950" yMax="642"> - <contour> - <pt x="99" y="543" on="1"/> - <pt x="99" y="642" on="1"/> - <pt x="1950" y="642" on="1"/> - <pt x="1950" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 0 0 3 0 11 1 1 1 4 48 196 2 1 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="agrave" xMin="95" yMin="-25" xMax="1098" yMax="1604"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="grave" x="152" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="amacron" xMin="105" yMin="-25" xMax="1108" yMax="1431"> - <component glyphName="a" x="10" y="0" flags="0x4"/> - <component glyphName="macron" x="217" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ampersand" xMin="56" yMin="-37" xMax="1293" yMax="1517"> - <contour> - <pt x="1025" y="0" on="1"/> - <pt x="952" y="87" on="1"/> - <pt x="752" y="-37" on="0"/> - <pt x="570" y="-37" on="1"/> - <pt x="352" y="-37" on="0"/> - <pt x="204" y="99" on="1"/> - <pt x="56" y="235" on="0"/> - <pt x="56" y="442" on="1"/> - <pt x="56" y="647" on="0"/> - <pt x="185" y="774" on="1"/> - <pt x="261" y="848" on="0"/> - <pt x="405" y="904" on="1"/> - <pt x="317" y="1067" on="0"/> - <pt x="317" y="1187" on="1"/> - <pt x="317" y="1337" on="0"/> - <pt x="409" y="1427" on="1"/> - <pt x="502" y="1517" on="0"/> - <pt x="659" y="1517" on="1"/> - <pt x="808" y="1517" on="0"/> - <pt x="895" y="1436" on="1"/> - <pt x="982" y="1355" on="0"/> - <pt x="982" y="1219" on="1"/> - <pt x="982" y="1068" on="0"/> - <pt x="866" y="959" on="1"/> - <pt x="795" y="893" on="0"/> - <pt x="661" y="832" on="1"/> - <pt x="829" y="527" on="0"/> - <pt x="995" y="328" on="1"/> - <pt x="1094" y="455" on="0"/> - <pt x="1094" y="707" on="1"/> - <pt x="1094" y="787" on="1"/> - <pt x="1289" y="787" on="1"/> - <pt x="1289" y="441" on="0"/> - <pt x="1087" y="221" on="1"/> - <pt x="1175" y="109" on="0"/> - <pt x="1293" y="0" on="1"/> - </contour> - <contour> - <pt x="866" y="202" on="1"/> - <pt x="669" y="427" on="0"/> - <pt x="475" y="790" on="1"/> - <pt x="377" y="743" on="0"/> - <pt x="327" y="684" on="1"/> - <pt x="254" y="600" on="0"/> - <pt x="254" y="477" on="1"/> - <pt x="254" y="324" on="0"/> - <pt x="356" y="218" on="1"/> - <pt x="459" y="111" on="0"/> - <pt x="602" y="111" on="1"/> - <pt x="714" y="111" on="0"/> - </contour> - <contour> - <pt x="587" y="956" on="1"/> - <pt x="683" y="998" on="0"/> - <pt x="729" y="1046" on="1"/> - <pt x="797" y="1116" on="0"/> - <pt x="797" y="1215" on="1"/> - <pt x="797" y="1369" on="0"/> - <pt x="657" y="1369" on="1"/> - <pt x="509" y="1369" on="0"/> - <pt x="509" y="1207" on="1"/> - <pt x="509" y="1109" on="0"/> - <pt x="579" y="972" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 71 values pushed */ - 0 0 54 40 17 46 40 3 48 196 17 0 3 2 1 48 38 25 11 4 0 30 3 0 36 - 33 29 27 1 5 30 0 3 31 30 1 35 0 1 2 0 14 0 0 56 41 13 52 14 21 - 42 41 7 48 196 48 38 36 35 33 31 30 29 27 25 21 13 11 7 1 0 - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="anoteleia" xMin="161" yMin="491" xMax="408" yMax="738"> - <contour> - <pt x="161" y="491" on="1"/> - <pt x="161" y="738" on="1"/> - <pt x="408" y="738" on="1"/> - <pt x="408" y="491" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 31 values pushed */ - 0 0 3 0 8 1 1 1 4 48 196 2 1 1 0 14 0 0 3 2 8 1 0 1 4 - 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="aogonek" xMin="95" yMin="-370" xMax="1098" yMax="1110"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="ogonek" x="537" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="aring" xMin="95" yMin="-25" xMax="1098" yMax="1737"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="ring" x="238" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="asciicircum" xMin="36" yMin="592" xMax="924" yMax="1480"> - <contour> - <pt x="480" y="1149" on="1"/> - <pt x="201" y="592" on="1"/> - <pt x="36" y="592" on="1"/> - <pt x="480" y="1480" on="1"/> - <pt x="924" y="592" on="1"/> - <pt x="758" y="592" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 18 values pushed */ - 3 0 2 13 1 5 4 2 1 3 0 14 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="asciitilde" xMin="104" yMin="412" xMax="1091" yMax="772"> - <contour> - <pt x="252" y="444" on="1"/> - <pt x="104" y="444" on="1"/> - <pt x="107" y="550" on="0"/> - <pt x="126" y="605" on="1"/> - <pt x="184" y="772" on="0"/> - <pt x="370" y="772" on="1"/> - <pt x="469" y="772" on="0"/> - <pt x="569" y="703" on="1"/> - <pt x="681" y="626" on="1"/> - <pt x="747" y="580" on="1"/> - <pt x="776" y="560" on="0"/> - <pt x="824" y="560" on="1"/> - <pt x="939" y="560" on="0"/> - <pt x="943" y="740" on="1"/> - <pt x="1091" y="740" on="1"/> - <pt x="1088" y="634" on="0"/> - <pt x="1069" y="579" on="1"/> - <pt x="1011" y="412" on="0"/> - <pt x="826" y="412" on="1"/> - <pt x="727" y="412" on="0"/> - <pt x="627" y="481" on="1"/> - <pt x="515" y="558" on="1"/> - <pt x="448" y="604" on="1"/> - <pt x="419" y="624" on="0"/> - <pt x="372" y="624" on="1"/> - <pt x="256" y="624" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 27 values pushed */ - 0 0 24 7 5 11 7 18 48 196 5 13 18 0 14 13 1 1 0 1 2 0 14 14 13 - 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="asterisk" xMin="39" yMin="751" xMax="757" yMax="1480"> - <contour> - <pt x="711" y="1289" on="1"/> - <pt x="757" y="1148" on="1"/> - <pt x="479" y="1082" on="1"/> - <pt x="479" y="1084" on="1"/> - <pt x="481" y="1095" on="0"/> - <pt x="481" y="1096" on="1"/> - <pt x="481" y="1097" on="1"/> - <pt x="479" y="1139" on="0"/> - <pt x="452" y="1164" on="1"/> - </contour> - <contour> - <pt x="681" y="838" on="1"/> - <pt x="561" y="751" on="1"/> - <pt x="404" y="1018" on="1"/> - <pt x="454" y="1024" on="0"/> - <pt x="474" y="1069" on="1"/> - </contour> - <contour> - <pt x="235" y="751" on="1"/> - <pt x="115" y="838" on="1"/> - <pt x="321" y="1069" on="1"/> - <pt x="341" y="1024" on="0"/> - <pt x="391" y="1018" on="1"/> - </contour> - <contour> - <pt x="39" y="1148" on="1"/> - <pt x="84" y="1289" on="1"/> - <pt x="344" y="1164" on="1"/> - <pt x="315" y="1138" on="0"/> - <pt x="315" y="1097" on="1"/> - <pt x="315" y="1096" on="1"/> - <pt x="315" y="1095" on="0"/> - <pt x="315" y="1091" on="1"/> - <pt x="316" y="1088" on="1"/> - <pt x="317" y="1084" on="0"/> - <pt x="317" y="1082" on="1"/> - </contour> - <contour> - <pt x="324" y="1480" on="1"/> - <pt x="472" y="1480" on="1"/> - <pt x="441" y="1172" on="1"/> - <pt x="419" y="1183" on="0"/> - <pt x="398" y="1183" on="1"/> - <pt x="375" y="1183" on="0"/> - <pt x="355" y="1172" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 65 values pushed */ - 34 1 36 34 32 24 23 21 20 19 8 1 0 11 30 1 3 0 1 1 29 18 16 15 14 - 13 11 10 9 3 2 11 1 2 3 0 0 31 30 0 14 36 32 31 30 29 24 23 21 20 - 19 18 16 15 14 13 11 10 9 8 5 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MDAP[1] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="at" xMin="253" yMin="-37" xMax="1844" yMax="1517"> - <contour> - <pt x="1253" y="44" on="1"/> - <pt x="1067" y="-37" on="0"/> - <pt x="897" y="-37" on="1"/> - <pt x="619" y="-37" on="0"/> - <pt x="436" y="137" on="1"/> - <pt x="253" y="310" on="0"/> - <pt x="253" y="582" on="1"/> - <pt x="253" y="949" on="0"/> - <pt x="535" y="1233" on="1"/> - <pt x="817" y="1517" on="0"/> - <pt x="1186" y="1517" on="1"/> - <pt x="1468" y="1517" on="0"/> - <pt x="1656" y="1337" on="1"/> - <pt x="1844" y="1157" on="0"/> - <pt x="1844" y="889" on="1"/> - <pt x="1844" y="643" on="0"/> - <pt x="1693" y="469" on="1"/> - <pt x="1542" y="296" on="0"/> - <pt x="1327" y="296" on="1"/> - <pt x="1160" y="296" on="0"/> - <pt x="1160" y="411" on="1"/> - <pt x="1160" y="450" on="0"/> - <pt x="1181" y="516" on="1"/> - <pt x="1221" y="642" on="1"/> - <pt x="1209" y="642" on="1"/> - <pt x="1124" y="486" on="0"/> - <pt x="1048" y="408" on="1"/> - <pt x="939" y="296" on="0"/> - <pt x="818" y="296" on="1"/> - <pt x="629" y="296" on="0"/> - <pt x="629" y="523" on="1"/> - <pt x="629" y="772" on="0"/> - <pt x="791" y="975" on="1"/> - <pt x="952" y="1178" on="0"/> - <pt x="1157" y="1178" on="1"/> - <pt x="1182" y="1178" on="0"/> - <pt x="1222" y="1176" on="1"/> - <pt x="1232" y="1175" on="0"/> - <pt x="1245" y="1174" on="1"/> - <pt x="1284" y="1172" on="0"/> - <pt x="1311" y="1172" on="1"/> - <pt x="1448" y="1172" on="1"/> - <pt x="1322" y="536" on="1"/> - <pt x="1316" y="506" on="0"/> - <pt x="1316" y="475" on="1"/> - <pt x="1316" y="407" on="0"/> - <pt x="1393" y="407" on="1"/> - <pt x="1525" y="407" on="0"/> - <pt x="1629" y="549" on="1"/> - <pt x="1733" y="692" on="0"/> - <pt x="1733" y="874" on="1"/> - <pt x="1733" y="1103" on="0"/> - <pt x="1574" y="1255" on="1"/> - <pt x="1415" y="1407" on="0"/> - <pt x="1172" y="1407" on="1"/> - <pt x="856" y="1407" on="0"/> - <pt x="610" y="1158" on="1"/> - <pt x="364" y="908" on="0"/> - <pt x="364" y="591" on="1"/> - <pt x="364" y="361" on="0"/> - <pt x="519" y="218" on="1"/> - <pt x="673" y="74" on="0"/> - <pt x="913" y="74" on="1"/> - <pt x="1067" y="74" on="0"/> - <pt x="1217" y="146" on="1"/> - </contour> - <contour> - <pt x="1233" y="833" on="1"/> - <pt x="1272" y="1028" on="1"/> - <pt x="1178" y="1061" on="0"/> - <pt x="1112" y="1061" on="1"/> - <pt x="971" y="1061" on="0"/> - <pt x="877" y="918" on="1"/> - <pt x="783" y="775" on="0"/> - <pt x="783" y="568" on="1"/> - <pt x="783" y="419" on="0"/> - <pt x="863" y="419" on="1"/> - <pt x="996" y="419" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 77 values pushed */ - 0 0 74 6 28 68 16 34 62 16 2 54 16 10 46 16 18 48 196 10 0 2 2 34 1 - 34 0 40 2 0 28 18 1 66 65 64 28 24 23 18 0 8 40 2 3 0 41 40 1 0 - 14 0 0 72 15 30 58 17 6 50 17 14 48 196 66 65 64 44 41 40 30 24 23 20 14 - 6 0 - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MDAP[1] - MDAP[1] - SZP1[ ] - CALL[ ] - SZP1[ ] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="atilde" xMin="95" yMin="-25" xMax="1098" yMax="1517"> - <component glyphName="a" x="0" y="0" flags="0x4"/> - <component glyphName="tilde" x="206" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="b" xMin="154" yMin="-25" xMax="1052" yMax="1579"> - <contour> - <pt x="351" y="703" on="1"/> - <pt x="351" y="149" on="1"/> - <pt x="488" y="123" on="0"/> - <pt x="557" y="123" on="1"/> - <pt x="839" y="123" on="0"/> - <pt x="839" y="552" on="1"/> - <pt x="839" y="733" on="0"/> - <pt x="783" y="835" on="1"/> - <pt x="728" y="938" on="0"/> - <pt x="634" y="938" on="1"/> - <pt x="508" y="938" on="0"/> - </contour> - <contour> - <pt x="351" y="882" on="1"/> - <pt x="407" y="984" on="0"/> - <pt x="469" y="1036" on="1"/> - <pt x="558" y="1110" on="0"/> - <pt x="676" y="1110" on="1"/> - <pt x="845" y="1110" on="0"/> - <pt x="948" y="963" on="1"/> - <pt x="1052" y="816" on="0"/> - <pt x="1052" y="572" on="1"/> - <pt x="1052" y="287" on="0"/> - <pt x="918" y="131" on="1"/> - <pt x="785" y="-25" on="0"/> - <pt x="540" y="-25" on="1"/> - <pt x="449" y="-25" on="0"/> - <pt x="351" y="0" on="1"/> - <pt x="154" y="-12" on="1"/> - <pt x="154" y="1579" on="1"/> - <pt x="351" y="1579" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 57 values pushed */ - 23 2 15 1 9 3 1 1 11 9 3 1 0 5 1 2 3 0 0 1 26 25 2 0 28 - 27 1 0 14 19 5 0 0 0 28 25 11 1 0 4 4 26 1 4 48 196 27 26 1 28 - 25 11 1 0 4 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - CALL[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MDAP[1] - MDAP[1] - MIAP[1] - MIAP[1] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="backslash" xMin="-59" yMin="-296" xMax="629" yMax="1480"> - <contour> - <pt x="629" y="-296" on="1"/> - <pt x="474" y="-296" on="1"/> - <pt x="-59" y="1480" on="1"/> - <pt x="96" y="1480" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 12 values pushed */ - 1 0 1 0 3 2 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="bar" xMin="192" yMin="-296" xMax="340" yMax="1579"> - <contour> - <pt x="192" y="-296" on="1"/> - <pt x="192" y="1579" on="1"/> - <pt x="340" y="1579" on="1"/> - <pt x="340" y="-296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 24 values pushed */ - 2 1 1 3 0 1 2 0 14 0 0 3 2 7 1 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="braceleft" xMin="25" yMin="-296" xMax="568" yMax="1579"> - <contour> - <pt x="25" y="716" on="1"/> - <pt x="86" y="716" on="1"/> - <pt x="239" y="716" on="0"/> - <pt x="239" y="880" on="1"/> - <pt x="239" y="944" on="0"/> - <pt x="223" y="1017" on="1"/> - <pt x="204" y="1104" on="1"/> - <pt x="185" y="1191" on="0"/> - <pt x="185" y="1268" on="1"/> - <pt x="185" y="1431" on="0"/> - <pt x="321" y="1517" on="1"/> - <pt x="416" y="1576" on="0"/> - <pt x="568" y="1579" on="1"/> - <pt x="568" y="1431" on="1"/> - <pt x="515" y="1431" on="1"/> - <pt x="446" y="1431" on="0"/> - <pt x="402" y="1396" on="1"/> - <pt x="357" y="1360" on="0"/> - <pt x="357" y="1306" on="1"/> - <pt x="357" y="1286" on="0"/> - <pt x="370" y="1212" on="1"/> - <pt x="387" y="1110" on="1"/> - <pt x="398" y="1043" on="0"/> - <pt x="398" y="962" on="1"/> - <pt x="398" y="773" on="0"/> - <pt x="251" y="642" on="1"/> - <pt x="398" y="511" on="0"/> - <pt x="398" y="320" on="1"/> - <pt x="398" y="240" on="0"/> - <pt x="387" y="173" on="1"/> - <pt x="370" y="71" on="1"/> - <pt x="357" y="-3" on="0"/> - <pt x="357" y="-24" on="1"/> - <pt x="357" y="-77" on="0"/> - <pt x="403" y="-113" on="1"/> - <pt x="447" y="-148" on="0"/> - <pt x="515" y="-148" on="1"/> - <pt x="568" y="-148" on="1"/> - <pt x="568" y="-296" on="1"/> - <pt x="408" y="-293" on="0"/> - <pt x="311" y="-227" on="1"/> - <pt x="185" y="-140" on="0"/> - <pt x="185" y="17" on="1"/> - <pt x="185" y="92" on="0"/> - <pt x="204" y="179" on="1"/> - <pt x="223" y="266" on="1"/> - <pt x="239" y="339" on="0"/> - <pt x="239" y="406" on="1"/> - <pt x="239" y="568" on="0"/> - <pt x="86" y="568" on="1"/> - <pt x="25" y="568" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 55 values pushed */ - 50 49 38 37 36 25 14 13 12 1 0 14 0 0 47 15 27 32 13 42 18 13 8 3 15 - 23 48 196 42 27 23 8 49 42 36 27 25 23 14 8 1 9 12 0 3 38 37 13 12 3 - 50 0 1 2 0 - LOOPCALL[ ] - CALL[ ] - MDAP[1] - MDAP[1] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="braceright" xMin="116" yMin="-296" xMax="659" yMax="1579"> - <contour> - <pt x="659" y="568" on="1"/> - <pt x="597" y="568" on="1"/> - <pt x="445" y="568" on="0"/> - <pt x="445" y="404" on="1"/> - <pt x="445" y="331" on="0"/> - <pt x="460" y="266" on="1"/> - <pt x="480" y="179" on="1"/> - <pt x="499" y="96" on="0"/> - <pt x="499" y="15" on="1"/> - <pt x="499" y="-148" on="0"/> - <pt x="361" y="-234" on="1"/> - <pt x="267" y="-293" on="0"/> - <pt x="116" y="-296" on="1"/> - <pt x="116" y="-148" on="1"/> - <pt x="168" y="-148" on="1"/> - <pt x="236" y="-148" on="0"/> - <pt x="281" y="-113" on="1"/> - <pt x="326" y="-77" on="0"/> - <pt x="326" y="-23" on="1"/> - <pt x="326" y="3" on="0"/> - <pt x="314" y="71" on="1"/> - <pt x="296" y="173" on="1"/> - <pt x="285" y="235" on="0"/> - <pt x="285" y="321" on="1"/> - <pt x="285" y="511" on="0"/> - <pt x="432" y="642" on="1"/> - <pt x="366" y="701" on="0"/> - <pt x="333" y="760" on="1"/> - <pt x="285" y="848" on="0"/> - <pt x="285" y="963" on="1"/> - <pt x="285" y="1048" on="0"/> - <pt x="296" y="1110" on="1"/> - <pt x="314" y="1212" on="1"/> - <pt x="326" y="1280" on="0"/> - <pt x="326" y="1308" on="1"/> - <pt x="326" y="1360" on="0"/> - <pt x="280" y="1396" on="1"/> - <pt x="235" y="1431" on="0"/> - <pt x="168" y="1431" on="1"/> - <pt x="116" y="1431" on="1"/> - <pt x="116" y="1579" on="1"/> - <pt x="276" y="1576" on="0"/> - <pt x="372" y="1510" on="1"/> - <pt x="499" y="1423" on="0"/> - <pt x="499" y="1266" on="1"/> - <pt x="499" y="1187" on="0"/> - <pt x="480" y="1104" on="1"/> - <pt x="460" y="1017" on="1"/> - <pt x="445" y="952" on="0"/> - <pt x="445" y="877" on="1"/> - <pt x="445" y="716" on="0"/> - <pt x="597" y="716" on="1"/> - <pt x="659" y="716" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 55 values pushed */ - 52 51 40 39 38 25 14 13 12 1 0 14 0 0 49 15 29 34 13 44 18 13 8 3 15 - 23 48 196 44 29 23 8 51 44 38 29 25 23 14 8 1 9 0 12 3 52 0 1 40 39 - 13 12 3 2 0 - LOOPCALL[ ] - CALL[ ] - MDAP[1] - MDAP[1] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="bracketleft" xMin="149" yMin="-296" xMax="544" yMax="1579"> - <contour> - <pt x="149" y="-296" on="1"/> - <pt x="149" y="1579" on="1"/> - <pt x="544" y="1579" on="1"/> - <pt x="544" y="1431" on="1"/> - <pt x="322" y="1431" on="1"/> - <pt x="322" y="-148" on="1"/> - <pt x="544" y="-148" on="1"/> - <pt x="544" y="-296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 46 values pushed */ - 0 0 4 3 7 1 1 6 5 7 1 0 2 4 48 196 2 1 1 7 0 1 2 0 14 - 0 0 5 4 13 1 0 1 4 48 196 7 6 3 2 3 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="bracketright" xMin="26" yMin="-296" xMax="421" yMax="1579"> - <contour> - <pt x="421" y="1579" on="1"/> - <pt x="421" y="-296" on="1"/> - <pt x="26" y="-296" on="1"/> - <pt x="26" y="-148" on="1"/> - <pt x="248" y="-148" on="1"/> - <pt x="248" y="1431" on="1"/> - <pt x="26" y="1431" on="1"/> - <pt x="26" y="1579" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 46 values pushed */ - 0 0 6 5 7 1 0 4 3 7 1 1 2 4 48 196 7 0 1 2 1 1 2 0 14 - 0 0 5 4 13 1 0 1 4 48 196 1 0 1 7 6 3 2 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="breve" xMin="8" yMin="1283" xMax="674" yMax="1604"> - <contour> - <pt x="8" y="1604" on="1"/> - <pt x="131" y="1604" on="1"/> - <pt x="152" y="1510" on="0"/> - <pt x="206" y="1470" on="1"/> - <pt x="258" y="1431" on="0"/> - <pt x="341" y="1431" on="1"/> - <pt x="435" y="1431" on="0"/> - <pt x="489" y="1480" on="1"/> - <pt x="532" y="1520" on="0"/> - <pt x="551" y="1604" on="1"/> - <pt x="674" y="1604" on="1"/> - <pt x="658" y="1470" on="0"/> - <pt x="585" y="1389" on="1"/> - <pt x="491" y="1283" on="0"/> - <pt x="341" y="1283" on="1"/> - <pt x="184" y="1283" on="0"/> - <pt x="89" y="1398" on="1"/> - <pt x="24" y="1476" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 17 values pushed */ - 0 0 5 40 14 48 196 14 10 9 1 0 14 10 9 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="brokenbar" xMin="192" yMin="-296" xMax="340" yMax="1579"> - <contour> - <pt x="192" y="-296" on="1"/> - <pt x="192" y="444" on="1"/> - <pt x="340" y="444" on="1"/> - <pt x="340" y="-296" on="1"/> - </contour> - <contour> - <pt x="192" y="839" on="1"/> - <pt x="192" y="1579" on="1"/> - <pt x="340" y="1579" on="1"/> - <pt x="340" y="839" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 34 values pushed */ - 6 5 1 7 4 1 2 1 1 3 0 1 4 0 14 0 0 7 6 3 2 7 3 0 1 - 4 48 196 5 4 1 0 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="bullet" xMin="81" yMin="555" xMax="636" yMax="1110"> - <contour> - <pt x="359" y="1110" on="1"/> - <pt x="474" y="1110" on="0"/> - <pt x="555" y="1028" on="1"/> - <pt x="636" y="946" on="0"/> - <pt x="636" y="831" on="1"/> - <pt x="636" y="717" on="0"/> - <pt x="554" y="636" on="1"/> - <pt x="472" y="555" on="0"/> - <pt x="354" y="555" on="1"/> - <pt x="255" y="555" on="0"/> - <pt x="179" y="621" on="1"/> - <pt x="81" y="707" on="0"/> - <pt x="81" y="833" on="1"/> - <pt x="81" y="948" on="0"/> - <pt x="163" y="1029" on="1"/> - <pt x="244" y="1110" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 15 values pushed */ - 0 0 0 8 48 196 8 14 0 0 4 12 48 196 12 - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="c" xMin="86" yMin="-25" xMax="926" yMax="1110"> - <contour> - <pt x="926" y="33" on="1"/> - <pt x="745" y="-25" on="0"/> - <pt x="585" y="-25" on="1"/> - <pt x="360" y="-25" on="0"/> - <pt x="223" y="133" on="1"/> - <pt x="86" y="290" on="0"/> - <pt x="86" y="543" on="1"/> - <pt x="86" y="809" on="0"/> - <pt x="226" y="959" on="1"/> - <pt x="365" y="1110" on="0"/> - <pt x="616" y="1110" on="1"/> - <pt x="742" y="1110" on="0"/> - <pt x="914" y="1074" on="1"/> - <pt x="914" y="910" on="1"/> - <pt x="750" y="959" on="0"/> - <pt x="652" y="959" on="1"/> - <pt x="308" y="959" on="0"/> - <pt x="308" y="543" on="1"/> - <pt x="308" y="347" on="0"/> - <pt x="397" y="241" on="1"/> - <pt x="485" y="134" on="0"/> - <pt x="644" y="134" on="1"/> - <pt x="765" y="134" on="0"/> - <pt x="926" y="203" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 44 values pushed */ - 0 0 21 29 2 15 40 10 48 196 10 1 2 2 1 1 23 13 12 0 4 1 2 3 0 - 0 14 0 0 17 26 6 48 196 6 12 23 0 1 13 12 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="cacute" xMin="86" yMin="-25" xMax="928" yMax="1604"> - <component glyphName="c" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="352" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="caron" xMin="-9" yMin="1283" xMax="691" yMax="1604"> - <contour> - <pt x="691" y="1604" on="1"/> - <pt x="450" y="1283" on="1"/> - <pt x="232" y="1283" on="1"/> - <pt x="-9" y="1604" on="1"/> - <pt x="139" y="1604" on="1"/> - <pt x="340" y="1402" on="1"/> - <pt x="342" y="1402" on="1"/> - <pt x="543" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 25 values pushed */ - 6 5 2 0 1 3 7 4 3 0 3 2 1 1 2 0 14 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ccaron" xMin="86" yMin="-25" xMax="957" yMax="1604"> - <component glyphName="c" x="0" y="0" flags="0x4"/> - <component glyphName="caron" x="266" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ccedilla" xMin="86" yMin="-432" xMax="926" yMax="1110"> - <component glyphName="c" x="0" y="0" flags="0x4"/> - <component glyphName="cedilla" x="260" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ccircumflex" xMin="86" yMin="-25" xMax="957" yMax="1604"> - <contour> - <pt x="926" y="33" on="1"/> - <pt x="745" y="-25" on="0"/> - <pt x="585" y="-25" on="1"/> - <pt x="360" y="-25" on="0"/> - <pt x="223" y="133" on="1"/> - <pt x="86" y="290" on="0"/> - <pt x="86" y="543" on="1"/> - <pt x="86" y="809" on="0"/> - <pt x="226" y="959" on="1"/> - <pt x="365" y="1110" on="0"/> - <pt x="616" y="1110" on="1"/> - <pt x="742" y="1110" on="0"/> - <pt x="914" y="1074" on="1"/> - <pt x="914" y="910" on="1"/> - <pt x="750" y="959" on="0"/> - <pt x="652" y="959" on="1"/> - <pt x="308" y="959" on="0"/> - <pt x="308" y="543" on="1"/> - <pt x="308" y="347" on="0"/> - <pt x="397" y="241" on="1"/> - <pt x="485" y="134" on="0"/> - <pt x="644" y="134" on="1"/> - <pt x="765" y="134" on="0"/> - <pt x="926" y="203" on="1"/> - </contour> - <contour> - <pt x="257" y="1283" on="1"/> - <pt x="498" y="1604" on="1"/> - <pt x="716" y="1604" on="1"/> - <pt x="957" y="1283" on="1"/> - <pt x="809" y="1283" on="1"/> - <pt x="608" y="1485" on="1"/> - <pt x="606" y="1485" on="1"/> - <pt x="405" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 71 values pushed */ - 0 0 21 29 2 15 40 10 48 196 10 1 2 2 30 29 2 25 24 3 1 1 23 13 12 - 0 4 1 2 3 0 0 26 25 1 31 28 27 24 3 2 0 14 0 0 17 26 6 48 196 - 27 0 31 30 29 28 26 25 24 7 13 6 12 23 0 1 13 12 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="cdotaccent" xMin="86" yMin="-25" xMax="926" yMax="1480"> - <contour> - <pt x="926" y="33" on="1"/> - <pt x="745" y="-25" on="0"/> - <pt x="585" y="-25" on="1"/> - <pt x="360" y="-25" on="0"/> - <pt x="223" y="133" on="1"/> - <pt x="86" y="290" on="0"/> - <pt x="86" y="543" on="1"/> - <pt x="86" y="809" on="0"/> - <pt x="226" y="959" on="1"/> - <pt x="365" y="1110" on="0"/> - <pt x="616" y="1110" on="1"/> - <pt x="742" y="1110" on="0"/> - <pt x="914" y="1074" on="1"/> - <pt x="914" y="910" on="1"/> - <pt x="750" y="959" on="0"/> - <pt x="652" y="959" on="1"/> - <pt x="308" y="959" on="0"/> - <pt x="308" y="543" on="1"/> - <pt x="308" y="347" on="0"/> - <pt x="397" y="241" on="1"/> - <pt x="485" y="134" on="0"/> - <pt x="644" y="134" on="1"/> - <pt x="765" y="134" on="0"/> - <pt x="926" y="203" on="1"/> - </contour> - <contour> - <pt x="508" y="1283" on="1"/> - <pt x="508" y="1480" on="1"/> - <pt x="705" y="1480" on="1"/> - <pt x="705" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 72 values pushed */ - 0 0 21 29 2 15 40 10 48 196 10 1 2 2 1 1 23 13 12 0 4 1 2 3 0 - 0 0 0 27 24 5 1 25 1 4 48 196 26 25 0 14 0 0 17 26 6 48 196 6 24 - 0 0 25 24 4 1 26 1 4 48 196 27 26 1 23 0 1 13 12 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="cedilla" xMin="168" yMin="-432" xMax="515" yMax="0"> - <contour> - <pt x="284" y="0" on="1"/> - <pt x="381" y="0" on="1"/> - <pt x="321" y="-109" on="1"/> - <pt x="393" y="-111" on="0"/> - <pt x="445" y="-148" on="1"/> - <pt x="515" y="-197" on="0"/> - <pt x="515" y="-269" on="1"/> - <pt x="515" y="-337" on="0"/> - <pt x="456" y="-384" on="1"/> - <pt x="398" y="-432" on="0"/> - <pt x="311" y="-432" on="1"/> - <pt x="244" y="-432" on="0"/> - <pt x="168" y="-411" on="1"/> - <pt x="168" y="-330" on="1"/> - <pt x="218" y="-345" on="0"/> - <pt x="272" y="-345" on="1"/> - <pt x="376" y="-345" on="0"/> - <pt x="376" y="-271" on="1"/> - <pt x="376" y="-178" on="0"/> - <pt x="189" y="-175" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 29 values pushed */ - 0 0 15 44 10 48 196 19 13 12 10 2 1 0 14 0 0 17 42 6 48 196 19 13 12 - 6 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="cent" xMin="173" yMin="0" xMax="1014" yMax="1480"> - <contour> - <pt x="631" y="0" on="1"/> - <pt x="631" y="173" on="1"/> - <pt x="443" y="197" on="0"/> - <pt x="327" y="320" on="1"/> - <pt x="173" y="483" on="0"/> - <pt x="173" y="740" on="1"/> - <pt x="173" y="1010" on="0"/> - <pt x="331" y="1161" on="1"/> - <pt x="441" y="1266" on="0"/> - <pt x="631" y="1295" on="1"/> - <pt x="631" y="1480" on="1"/> - <pt x="730" y="1480" on="1"/> - <pt x="730" y="1295" on="1"/> - <pt x="863" y="1289" on="0"/> - <pt x="1014" y="1249" on="1"/> - <pt x="1014" y="1083" on="1"/> - <pt x="836" y="1143" on="0"/> - <pt x="730" y="1153" on="1"/> - <pt x="730" y="313" on="1"/> - <pt x="866" y="313" on="0"/> - <pt x="1014" y="380" on="1"/> - <pt x="1014" y="231" on="1"/> - <pt x="865" y="173" on="0"/> - <pt x="730" y="173" on="1"/> - <pt x="730" y="0" on="1"/> - </contour> - <contour> - <pt x="631" y="1144" on="1"/> - <pt x="572" y="1135" on="0"/> - <pt x="542" y="1120" on="1"/> - <pt x="389" y="1041" on="0"/> - <pt x="389" y="739" on="1"/> - <pt x="389" y="530" on="0"/> - <pt x="480" y="422" on="1"/> - <pt x="532" y="361" on="0"/> - <pt x="631" y="324" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 55 values pushed */ - 33 25 24 23 21 20 18 17 15 14 12 11 10 9 1 0 14 0 0 29 9 5 48 196 5 - 0 0 0 33 25 10 9 1 0 11 5 11 1 4 48 196 21 20 15 14 3 24 23 18 17 - 12 11 5 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="circumflex" xMin="-9" yMin="1283" xMax="691" yMax="1604"> - <contour> - <pt x="-9" y="1283" on="1"/> - <pt x="232" y="1604" on="1"/> - <pt x="450" y="1604" on="1"/> - <pt x="691" y="1283" on="1"/> - <pt x="543" y="1283" on="1"/> - <pt x="342" y="1485" on="1"/> - <pt x="340" y="1485" on="1"/> - <pt x="139" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 25 values pushed */ - 6 5 2 1 0 3 2 1 1 7 4 3 0 3 2 0 14 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="colon" xMin="186" yMin="0" xMax="383" yMax="1086"> - <contour> - <pt x="186" y="0" on="1"/> - <pt x="186" y="197" on="1"/> - <pt x="383" y="197" on="1"/> - <pt x="383" y="0" on="1"/> - </contour> - <contour> - <pt x="186" y="888" on="1"/> - <pt x="186" y="1086" on="1"/> - <pt x="383" y="1086" on="1"/> - <pt x="383" y="888" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 43 values pushed */ - 0 0 7 4 5 1 5 2 1 5 1 0 2 4 48 196 3 0 1 0 6 5 1 14 0 - 0 7 6 3 2 4 3 0 1 4 48 196 5 4 1 0 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="comma" xMin="161" yMin="-321" xMax="408" yMax="247"> - <contour> - <pt x="161" y="-321" on="1"/> - <pt x="161" y="-247" on="1"/> - <pt x="257" y="-220" on="0"/> - <pt x="257" y="-20" on="1"/> - <pt x="257" y="0" on="1"/> - <pt x="161" y="0" on="1"/> - <pt x="161" y="247" on="1"/> - <pt x="408" y="247" on="1"/> - <pt x="408" y="33" on="1"/> - <pt x="407" y="-294" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 37 values pushed */ - 8 5 4 3 1 0 6 13 6 7 6 1 0 14 4 3 2 7 0 3 0 0 8 7 8 - 1 0 1 4 48 196 6 5 1 0 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="copyright" xMin="15" yMin="0" xMax="1495" yMax="1480"> - <contour> - <pt x="755" y="1480" on="1"/> - <pt x="1060" y="1480" on="0"/> - <pt x="1278" y="1263" on="1"/> - <pt x="1495" y="1047" on="0"/> - <pt x="1495" y="741" on="1"/> - <pt x="1495" y="431" on="0"/> - <pt x="1277" y="216" on="1"/> - <pt x="1060" y="0" on="0"/> - <pt x="746" y="0" on="1"/> - <pt x="478" y="0" on="0"/> - <pt x="277" y="176" on="1"/> - <pt x="15" y="404" on="0"/> - <pt x="15" y="741" on="1"/> - <pt x="15" y="1047" on="0"/> - <pt x="232" y="1263" on="1"/> - <pt x="450" y="1480" on="0"/> - </contour> - <contour> - <pt x="755" y="1375" on="1"/> - <pt x="494" y="1375" on="0"/> - <pt x="307" y="1188" on="1"/> - <pt x="121" y="1002" on="0"/> - <pt x="121" y="740" on="1"/> - <pt x="121" y="482" on="0"/> - <pt x="306" y="294" on="1"/> - <pt x="491" y="106" on="0"/> - <pt x="748" y="106" on="1"/> - <pt x="987" y="106" on="0"/> - <pt x="1164" y="256" on="1"/> - <pt x="1390" y="448" on="0"/> - <pt x="1390" y="741" on="1"/> - <pt x="1390" y="1003" on="0"/> - <pt x="1203" y="1188" on="1"/> - <pt x="1016" y="1375" on="0"/> - </contour> - <contour> - <pt x="1025" y="364" on="1"/> - <pt x="887" y="317" on="0"/> - <pt x="781" y="317" on="1"/> - <pt x="603" y="317" on="0"/> - <pt x="488" y="434" on="1"/> - <pt x="373" y="551" on="0"/> - <pt x="373" y="736" on="1"/> - <pt x="373" y="927" on="0"/> - <pt x="485" y="1042" on="1"/> - <pt x="597" y="1157" on="0"/> - <pt x="787" y="1157" on="1"/> - <pt x="884" y="1157" on="0"/> - <pt x="1001" y="1133" on="1"/> - <pt x="1025" y="1128" on="1"/> - <pt x="1025" y="1010" on="1"/> - <pt x="895" y="1063" on="0"/> - <pt x="794" y="1063" on="1"/> - <pt x="668" y="1063" on="0"/> - <pt x="591" y="974" on="1"/> - <pt x="514" y="884" on="0"/> - <pt x="514" y="739" on="1"/> - <pt x="514" y="593" on="0"/> - <pt x="594" y="508" on="1"/> - <pt x="674" y="423" on="0"/> - <pt x="809" y="423" on="1"/> - <pt x="914" y="423" on="0"/> - <pt x="1025" y="482" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 57 values pushed */ - 0 0 56 20 34 48 21 42 24 20 8 16 20 0 48 196 8 2 0 0 42 34 1 1 58 - 46 45 42 34 32 6 0 2 3 0 0 14 0 0 52 42 38 28 17 4 20 17 12 48 196 - 58 46 45 38 32 12 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MDAP[1] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="currency" xMin="122" yMin="293" xMax="1016" yMax="1188"> - <contour> - <pt x="365" y="449" on="1"/> - <pt x="209" y="293" on="1"/> - <pt x="122" y="380" on="1"/> - <pt x="277" y="536" on="1"/> - <pt x="214" y="640" on="0"/> - <pt x="214" y="740" on="1"/> - <pt x="214" y="841" on="0"/> - <pt x="278" y="944" on="1"/> - <pt x="122" y="1100" on="1"/> - <pt x="209" y="1188" on="1"/> - <pt x="365" y="1032" on="1"/> - <pt x="463" y="1095" on="0"/> - <pt x="569" y="1095" on="1"/> - <pt x="675" y="1095" on="0"/> - <pt x="773" y="1032" on="1"/> - <pt x="929" y="1188" on="1"/> - <pt x="1016" y="1100" on="1"/> - <pt x="860" y="944" on="1"/> - <pt x="924" y="841" on="0"/> - <pt x="924" y="740" on="1"/> - <pt x="924" y="639" on="0"/> - <pt x="861" y="536" on="1"/> - <pt x="1016" y="380" on="1"/> - <pt x="929" y="293" on="1"/> - <pt x="773" y="449" on="1"/> - <pt x="674" y="385" on="0"/> - <pt x="569" y="385" on="1"/> - <pt x="464" y="385" on="0"/> - </contour> - <contour> - <pt x="569" y="972" on="1"/> - <pt x="471" y="972" on="0"/> - <pt x="404" y="905" on="1"/> - <pt x="337" y="838" on="0"/> - <pt x="337" y="739" on="1"/> - <pt x="337" y="643" on="0"/> - <pt x="404" y="576" on="1"/> - <pt x="470" y="508" on="0"/> - <pt x="566" y="508" on="1"/> - <pt x="655" y="508" on="0"/> - <pt x="719" y="562" on="1"/> - <pt x="801" y="631" on="0"/> - <pt x="801" y="741" on="1"/> - <pt x="801" y="838" on="0"/> - <pt x="734" y="905" on="1"/> - <pt x="666" y="972" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 68 values pushed */ - 0 0 36 6 26 28 6 12 48 196 12 1 1 16 15 9 8 4 13 1 0 1 24 23 22 - 21 17 14 10 7 3 2 1 0 12 13 26 1 0 14 0 0 40 6 19 32 6 5 48 196 - 24 23 22 21 19 17 16 15 14 10 9 8 7 5 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="d" xMin="86" yMin="-25" xMax="984" yMax="1579"> - <contour> - <pt x="787" y="382" on="1"/> - <pt x="787" y="937" on="1"/> - <pt x="648" y="962" on="0"/> - <pt x="582" y="962" on="1"/> - <pt x="299" y="962" on="0"/> - <pt x="299" y="532" on="1"/> - <pt x="299" y="354" on="0"/> - <pt x="355" y="251" on="1"/> - <pt x="410" y="148" on="0"/> - <pt x="504" y="148" on="1"/> - <pt x="630" y="148" on="0"/> - </contour> - <contour> - <pt x="787" y="203" on="1"/> - <pt x="731" y="101" on="0"/> - <pt x="669" y="49" on="1"/> - <pt x="581" y="-25" on="0"/> - <pt x="462" y="-25" on="1"/> - <pt x="293" y="-25" on="0"/> - <pt x="190" y="123" on="1"/> - <pt x="86" y="270" on="0"/> - <pt x="86" y="514" on="1"/> - <pt x="86" y="798" on="0"/> - <pt x="220" y="954" on="1"/> - <pt x="354" y="1110" on="0"/> - <pt x="597" y="1110" on="1"/> - <pt x="691" y="1110" on="0"/> - <pt x="787" y="1086" on="1"/> - <pt x="787" y="1579" on="1"/> - <pt x="984" y="1579" on="1"/> - <pt x="984" y="0" on="1"/> - <pt x="787" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 57 values pushed */ - 23 1 15 2 9 3 1 25 11 9 3 1 0 6 1 28 3 0 27 26 1 29 28 1 2 - 0 14 19 5 0 0 0 29 26 25 11 1 0 4 5 27 1 4 48 196 28 27 1 29 26 - 25 11 1 0 5 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - CALL[ ] - LOOPCALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MDAP[1] - MDAP[1] - MIAP[1] - MIAP[1] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dagger" xMin="150" yMin="-296" xMax="989" yMax="1480"> - <contour> - <pt x="471" y="-296" on="1"/> - <pt x="495" y="839" on="1"/> - <pt x="150" y="814" on="1"/> - <pt x="150" y="962" on="1"/> - <pt x="495" y="938" on="1"/> - <pt x="471" y="1480" on="1"/> - <pt x="668" y="1480" on="1"/> - <pt x="643" y="938" on="1"/> - <pt x="989" y="962" on="1"/> - <pt x="989" y="814" on="1"/> - <pt x="643" y="839" on="1"/> - <pt x="668" y="-296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 42 values pushed */ - 1 10 9 8 7 4 3 2 1 8 5 2 3 0 11 0 1 0 6 5 0 14 11 10 7 - 6 5 4 1 0 8 8 2 3 9 8 1 3 2 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="daggerdbl" xMin="150" yMin="-296" xMax="989" yMax="1480"> - <contour> - <pt x="471" y="-296" on="1"/> - <pt x="495" y="247" on="1"/> - <pt x="150" y="222" on="1"/> - <pt x="150" y="370" on="1"/> - <pt x="495" y="345" on="1"/> - <pt x="495" y="839" on="1"/> - <pt x="150" y="814" on="1"/> - <pt x="150" y="962" on="1"/> - <pt x="495" y="938" on="1"/> - <pt x="471" y="1480" on="1"/> - <pt x="668" y="1480" on="1"/> - <pt x="643" y="938" on="1"/> - <pt x="989" y="962" on="1"/> - <pt x="989" y="814" on="1"/> - <pt x="643" y="839" on="1"/> - <pt x="643" y="345" on="1"/> - <pt x="989" y="370" on="1"/> - <pt x="989" y="222" on="1"/> - <pt x="643" y="247" on="1"/> - <pt x="668" y="-296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 72 values pushed */ - 1 18 17 16 15 14 13 12 11 8 7 6 5 4 3 2 1 16 9 2 3 0 19 0 1 - 0 10 9 0 14 19 10 2 12 11 3 9 0 2 1 2 3 0 0 18 15 14 11 7 3 - 1 1 4 48 196 17 16 13 12 3 8 5 4 1 3 7 6 3 2 3 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dcaron" xMin="86" yMin="-25" xMax="1259" yMax="1579"> - <contour> - <pt x="787" y="382" on="1"/> - <pt x="787" y="937" on="1"/> - <pt x="648" y="962" on="0"/> - <pt x="582" y="962" on="1"/> - <pt x="299" y="962" on="0"/> - <pt x="299" y="532" on="1"/> - <pt x="299" y="354" on="0"/> - <pt x="355" y="251" on="1"/> - <pt x="410" y="148" on="0"/> - <pt x="504" y="148" on="1"/> - <pt x="630" y="148" on="0"/> - </contour> - <contour> - <pt x="787" y="203" on="1"/> - <pt x="731" y="101" on="0"/> - <pt x="669" y="49" on="1"/> - <pt x="581" y="-25" on="0"/> - <pt x="462" y="-25" on="1"/> - <pt x="293" y="-25" on="0"/> - <pt x="190" y="123" on="1"/> - <pt x="86" y="270" on="0"/> - <pt x="86" y="514" on="1"/> - <pt x="86" y="798" on="0"/> - <pt x="220" y="954" on="1"/> - <pt x="354" y="1110" on="0"/> - <pt x="597" y="1110" on="1"/> - <pt x="691" y="1110" on="0"/> - <pt x="787" y="1086" on="1"/> - <pt x="787" y="1579" on="1"/> - <pt x="984" y="1579" on="1"/> - <pt x="984" y="0" on="1"/> - <pt x="787" y="0" on="1"/> - </contour> - <contour> - <pt x="1061" y="1125" on="1"/> - <pt x="1061" y="1184" on="1"/> - <pt x="1138" y="1205" on="0"/> - <pt x="1138" y="1365" on="1"/> - <pt x="1138" y="1382" on="1"/> - <pt x="1061" y="1382" on="1"/> - <pt x="1061" y="1579" on="1"/> - <pt x="1259" y="1579" on="1"/> - <pt x="1259" y="1408" on="1"/> - <pt x="1258" y="1146" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 87 values pushed */ - 23 1 15 2 1 38 35 34 33 31 30 6 26 1 3 0 9 3 1 25 11 9 3 1 0 - 6 1 28 3 0 37 36 27 26 3 29 28 1 2 0 14 34 33 2 37 30 3 19 5 0 - 0 0 36 35 31 30 4 3 37 29 26 25 11 1 0 4 5 27 2 4 48 196 38 37 1 - 28 27 1 29 26 25 11 1 0 5 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MDAP[1] - MDAP[1] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dcroat" xMin="86" yMin="-25" xMax="1132" yMax="1579"> - <contour> - <pt x="787" y="1258" on="1"/> - <pt x="466" y="1258" on="1"/> - <pt x="466" y="1382" on="1"/> - <pt x="787" y="1382" on="1"/> - <pt x="787" y="1579" on="1"/> - <pt x="984" y="1579" on="1"/> - <pt x="984" y="1382" on="1"/> - <pt x="1132" y="1382" on="1"/> - <pt x="1132" y="1258" on="1"/> - <pt x="984" y="1258" on="1"/> - <pt x="984" y="0" on="1"/> - <pt x="787" y="0" on="1"/> - <pt x="787" y="203" on="1"/> - <pt x="731" y="101" on="0"/> - <pt x="669" y="49" on="1"/> - <pt x="581" y="-25" on="0"/> - <pt x="462" y="-25" on="1"/> - <pt x="293" y="-25" on="0"/> - <pt x="190" y="123" on="1"/> - <pt x="86" y="270" on="0"/> - <pt x="86" y="514" on="1"/> - <pt x="86" y="798" on="0"/> - <pt x="220" y="954" on="1"/> - <pt x="354" y="1110" on="0"/> - <pt x="597" y="1110" on="1"/> - <pt x="691" y="1110" on="0"/> - <pt x="787" y="1086" on="1"/> - </contour> - <contour> - <pt x="787" y="382" on="1"/> - <pt x="787" y="937" on="1"/> - <pt x="648" y="962" on="0"/> - <pt x="582" y="962" on="1"/> - <pt x="299" y="962" on="0"/> - <pt x="299" y="532" on="1"/> - <pt x="299" y="354" on="0"/> - <pt x="355" y="251" on="1"/> - <pt x="410" y="148" on="0"/> - <pt x="504" y="148" on="1"/> - <pt x="630" y="148" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 90 values pushed */ - 0 0 36 30 16 30 40 24 48 196 24 1 16 2 1 28 27 26 12 4 1 10 3 0 0 - 0 9 8 1 0 6 3 2 1 4 48 196 5 4 1 7 6 3 2 3 11 10 1 3 0 - 14 0 0 32 9 20 48 196 8 7 2 13 5 2 1 20 0 0 0 28 27 26 12 11 4 - 3 0 4 7 5 1 4 48 196 10 9 6 5 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="degree" xMin="114" yMin="925" xMax="706" yMax="1517"> - <contour> - <pt x="410" y="1517" on="1"/> - <pt x="531" y="1517" on="0"/> - <pt x="619" y="1430" on="1"/> - <pt x="706" y="1344" on="0"/> - <pt x="706" y="1222" on="1"/> - <pt x="706" y="1098" on="0"/> - <pt x="619" y="1012" on="1"/> - <pt x="531" y="925" on="0"/> - <pt x="406" y="925" on="1"/> - <pt x="300" y="925" on="0"/> - <pt x="219" y="995" on="1"/> - <pt x="114" y="1087" on="0"/> - <pt x="114" y="1221" on="1"/> - <pt x="114" y="1344" on="0"/> - <pt x="201" y="1430" on="1"/> - <pt x="289" y="1517" on="0"/> - </contour> - <contour> - <pt x="410" y="1394" on="1"/> - <pt x="339" y="1394" on="0"/> - <pt x="288" y="1343" on="1"/> - <pt x="237" y="1293" on="0"/> - <pt x="237" y="1222" on="1"/> - <pt x="237" y="1151" on="0"/> - <pt x="288" y="1100" on="1"/> - <pt x="338" y="1049" on="0"/> - <pt x="408" y="1049" on="1"/> - <pt x="473" y="1049" on="0"/> - <pt x="521" y="1090" on="1"/> - <pt x="583" y="1142" on="0"/> - <pt x="583" y="1222" on="1"/> - <pt x="583" y="1293" on="0"/> - <pt x="532" y="1343" on="1"/> - <pt x="481" y="1394" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 29 values pushed */ - 0 0 24 6 8 16 6 0 48 196 0 0 1 8 0 0 14 0 0 28 6 4 20 6 12 - 48 196 12 4 - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dieresis" xMin="57" yMin="1283" xMax="625" yMax="1456"> - <contour> - <pt x="57" y="1283" on="1"/> - <pt x="57" y="1456" on="1"/> - <pt x="230" y="1456" on="1"/> - <pt x="230" y="1283" on="1"/> - </contour> - <contour> - <pt x="452" y="1283" on="1"/> - <pt x="452" y="1456" on="1"/> - <pt x="625" y="1456" on="1"/> - <pt x="625" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 44 values pushed */ - 0 0 7 4 3 0 13 3 1 1 4 48 196 6 5 2 1 3 0 14 0 0 5 4 13 - 1 6 3 2 13 1 0 2 4 48 196 7 6 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="divide" xMin="104" yMin="0" xMax="1091" yMax="1184"> - <contour> - <pt x="104" y="518" on="1"/> - <pt x="104" y="666" on="1"/> - <pt x="1091" y="666" on="1"/> - <pt x="1091" y="518" on="1"/> - </contour> - <contour> - <pt x="474" y="938" on="1"/> - <pt x="474" y="1184" on="1"/> - <pt x="721" y="1184" on="1"/> - <pt x="721" y="938" on="1"/> - </contour> - <contour> - <pt x="474" y="0" on="1"/> - <pt x="474" y="247" on="1"/> - <pt x="721" y="247" on="1"/> - <pt x="721" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 59 values pushed */ - 0 0 10 9 8 1 8 7 4 8 1 5 3 0 7 1 1 3 4 48 196 11 8 1 6 - 5 1 2 1 1 3 0 14 0 0 11 10 7 6 8 3 4 1 4 48 196 9 8 5 4 - 3 3 2 1 1 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dollar" xMin="103" yMin="-123" xMax="942" yMax="1604"> - <contour> - <pt x="498" y="-123" on="1"/> - <pt x="498" y="0" on="1"/> - <pt x="322" y="0" on="0"/> - <pt x="103" y="83" on="1"/> - <pt x="103" y="253" on="1"/> - <pt x="328" y="148" on="0"/> - <pt x="498" y="148" on="1"/> - <pt x="498" y="679" on="1"/> - <pt x="312" y="795" on="0"/> - <pt x="235" y="881" on="1"/> - <pt x="147" y="981" on="0"/> - <pt x="147" y="1125" on="1"/> - <pt x="147" y="1296" on="0"/> - <pt x="274" y="1398" on="1"/> - <pt x="360" y="1467" on="0"/> - <pt x="498" y="1480" on="1"/> - <pt x="498" y="1604" on="1"/> - <pt x="597" y="1604" on="1"/> - <pt x="597" y="1480" on="1"/> - <pt x="741" y="1480" on="0"/> - <pt x="918" y="1413" on="1"/> - <pt x="918" y="1252" on="1"/> - <pt x="727" y="1335" on="0"/> - <pt x="597" y="1345" on="1"/> - <pt x="597" y="818" on="1"/> - <pt x="609" y="810" on="1"/> - <pt x="635" y="794" on="0"/> - <pt x="658" y="781" on="1"/> - <pt x="670" y="773" on="1"/> - <pt x="796" y="698" on="0"/> - <pt x="859" y="632" on="1"/> - <pt x="942" y="546" on="0"/> - <pt x="942" y="413" on="1"/> - <pt x="942" y="232" on="0"/> - <pt x="820" y="113" on="1"/> - <pt x="735" y="31" on="0"/> - <pt x="597" y="0" on="1"/> - <pt x="597" y="-123" on="1"/> - </contour> - <contour> - <pt x="597" y="160" on="1"/> - <pt x="769" y="227" on="0"/> - <pt x="769" y="385" on="1"/> - <pt x="769" y="467" on="0"/> - <pt x="721" y="520" on="1"/> - <pt x="684" y="560" on="0"/> - <pt x="597" y="621" on="1"/> - </contour> - <contour> - <pt x="498" y="883" on="1"/> - <pt x="498" y="1339" on="1"/> - <pt x="319" y="1278" on="0"/> - <pt x="319" y="1133" on="1"/> - <pt x="319" y="1002" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 72 values pushed */ - 46 45 44 38 37 36 24 23 21 20 18 17 16 15 7 6 4 3 1 0 14 0 0 48 13 - 11 40 13 32 48 196 11 11 0 3 2 32 20 0 0 44 38 37 36 24 23 18 17 11 7 - 0 1 4 48 196 21 20 1 46 45 16 15 7 6 1 0 7 4 3 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dotaccent" xMin="242" yMin="1283" xMax="439" yMax="1480"> - <contour> - <pt x="242" y="1283" on="1"/> - <pt x="242" y="1480" on="1"/> - <pt x="439" y="1480" on="1"/> - <pt x="439" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 30 values pushed */ - 0 0 3 0 5 1 1 1 4 48 196 2 1 0 14 0 0 3 2 4 1 0 1 4 48 - 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dotlessi" xMin="129" yMin="0" xMax="326" yMax="1086"> - <contour> - <pt x="129" y="0" on="1"/> - <pt x="129" y="1086" on="1"/> - <pt x="326" y="1086" on="1"/> - <pt x="326" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 23 values pushed */ - 3 0 1 0 2 1 1 14 0 0 3 2 4 1 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dotlessj" xMin="-155" yMin="-419" xMax="331" yMax="1086"> - <contour> - <pt x="-155" y="-387" on="1"/> - <pt x="-155" y="-231" on="1"/> - <pt x="-75" y="-271" on="0"/> - <pt x="-5" y="-271" on="1"/> - <pt x="92" y="-271" on="0"/> - <pt x="115" y="-197" on="1"/> - <pt x="133" y="-136" on="0"/> - <pt x="133" y="0" on="1"/> - <pt x="133" y="1086" on="1"/> - <pt x="331" y="1086" on="1"/> - <pt x="331" y="0" on="1"/> - <pt x="331" y="-419" on="0"/> - <pt x="11" y="-419" on="1"/> - <pt x="-77" y="-419" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 40 values pushed */ - 0 0 3 40 12 48 196 1 10 7 1 0 4 13 12 2 0 9 8 1 14 0 0 8 7 - 4 1 9 1 4 48 196 10 9 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="dotmath" xMin="161" yMin="491" xMax="408" yMax="738"> - <contour> - <pt x="161" y="491" on="1"/> - <pt x="161" y="738" on="1"/> - <pt x="408" y="738" on="1"/> - <pt x="408" y="491" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 31 values pushed */ - 0 0 3 0 8 1 1 1 4 48 196 2 1 1 0 14 0 0 3 2 8 1 0 1 4 - 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="e" xMin="86" yMin="-25" xMax="1022" yMax="1110"> - <contour> - <pt x="818" y="660" on="1"/> - <pt x="815" y="758" on="0"/> - <pt x="798" y="809" on="1"/> - <pt x="746" y="963" on="0"/> - <pt x="572" y="963" on="1"/> - <pt x="451" y="963" on="0"/> - <pt x="381" y="891" on="1"/> - <pt x="313" y="822" on="0"/> - <pt x="296" y="660" on="1"/> - </contour> - <contour> - <pt x="1013" y="191" on="1"/> - <pt x="1013" y="35" on="1"/> - <pt x="810" y="-25" on="0"/> - <pt x="641" y="-25" on="1"/> - <pt x="386" y="-25" on="0"/> - <pt x="236" y="133" on="1"/> - <pt x="86" y="291" on="0"/> - <pt x="86" y="557" on="1"/> - <pt x="86" y="810" on="0"/> - <pt x="219" y="960" on="1"/> - <pt x="351" y="1110" on="0"/> - <pt x="577" y="1110" on="1"/> - <pt x="836" y="1110" on="0"/> - <pt x="943" y="926" on="1"/> - <pt x="1022" y="789" on="0"/> - <pt x="1019" y="573" on="1"/> - <pt x="1018" y="512" on="1"/> - <pt x="293" y="512" on="1"/> - <pt x="305" y="393" on="0"/> - <pt x="332" y="331" on="1"/> - <pt x="420" y="125" on="0"/> - <pt x="683" y="125" on="1"/> - <pt x="832" y="125" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 48 values pushed */ - 0 0 30 40 12 48 196 20 1 12 2 4 1 4 1 0 2 0 1 10 9 2 25 2 3 - 0 26 25 1 8 0 1 2 0 14 25 9 26 8 0 3 13 16 9 10 9 1 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - CALL[ ] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="eacute" xMin="86" yMin="-25" xMax="1022" yMax="1604"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="315" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ebreve" xMin="86" yMin="-25" xMax="1022" yMax="1604"> - <contour> - <pt x="818" y="660" on="1"/> - <pt x="815" y="758" on="0"/> - <pt x="798" y="809" on="1"/> - <pt x="746" y="963" on="0"/> - <pt x="572" y="963" on="1"/> - <pt x="451" y="963" on="0"/> - <pt x="381" y="891" on="1"/> - <pt x="313" y="822" on="0"/> - <pt x="296" y="660" on="1"/> - </contour> - <contour> - <pt x="1013" y="191" on="1"/> - <pt x="1013" y="35" on="1"/> - <pt x="810" y="-25" on="0"/> - <pt x="641" y="-25" on="1"/> - <pt x="386" y="-25" on="0"/> - <pt x="236" y="133" on="1"/> - <pt x="86" y="291" on="0"/> - <pt x="86" y="557" on="1"/> - <pt x="86" y="810" on="0"/> - <pt x="219" y="960" on="1"/> - <pt x="351" y="1110" on="0"/> - <pt x="577" y="1110" on="1"/> - <pt x="836" y="1110" on="0"/> - <pt x="943" y="926" on="1"/> - <pt x="1022" y="789" on="0"/> - <pt x="1019" y="573" on="1"/> - <pt x="1018" y="512" on="1"/> - <pt x="293" y="512" on="1"/> - <pt x="305" y="393" on="0"/> - <pt x="332" y="331" on="1"/> - <pt x="420" y="125" on="0"/> - <pt x="683" y="125" on="1"/> - <pt x="832" y="125" on="0"/> - </contour> - <contour> - <pt x="236" y="1604" on="1"/> - <pt x="359" y="1604" on="1"/> - <pt x="380" y="1511" on="0"/> - <pt x="434" y="1470" on="1"/> - <pt x="486" y="1431" on="0"/> - <pt x="569" y="1431" on="1"/> - <pt x="663" y="1431" on="0"/> - <pt x="717" y="1480" on="1"/> - <pt x="760" y="1520" on="0"/> - <pt x="779" y="1604" on="1"/> - <pt x="902" y="1604" on="1"/> - <pt x="885" y="1469" on="0"/> - <pt x="813" y="1389" on="1"/> - <pt x="718" y="1283" on="0"/> - <pt x="569" y="1283" on="1"/> - <pt x="412" y="1283" on="0"/> - <pt x="317" y="1398" on="1"/> - <pt x="253" y="1475" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 65 values pushed */ - 0 0 37 40 46 30 40 12 48 196 20 1 12 2 4 1 4 1 0 2 0 1 10 9 2 - 25 2 3 0 1 42 41 33 32 4 13 46 1 0 26 25 1 8 0 1 2 0 14 25 9 - 42 41 33 32 26 8 0 7 13 16 9 10 9 1 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - CALL[ ] - LOOPCALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ecaron" xMin="86" yMin="-25" xMax="1022" yMax="1604"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="caron" x="228" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ecircumflex" xMin="86" yMin="-25" xMax="1022" yMax="1604"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="circumflex" x="240" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="edieresis" xMin="86" yMin="-25" xMax="1022" yMax="1456"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="dieresis" x="241" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="edotaccent" xMin="86" yMin="-25" xMax="1022" yMax="1480"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="dotaccent" x="228" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="egrave" xMin="86" yMin="-25" xMax="1022" yMax="1604"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="grave" x="143" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="eight" xMin="99" yMin="-37" xMax="1089" yMax="1517"> - <contour> - <pt x="393" y="806" on="1"/> - <pt x="295" y="877" on="0"/> - <pt x="246" y="942" on="1"/> - <pt x="176" y="1036" on="0"/> - <pt x="176" y="1145" on="1"/> - <pt x="176" y="1308" on="0"/> - <pt x="299" y="1412" on="1"/> - <pt x="422" y="1517" on="0"/> - <pt x="620" y="1517" on="1"/> - <pt x="804" y="1517" on="0"/> - <pt x="917" y="1428" on="1"/> - <pt x="1030" y="1340" on="0"/> - <pt x="1030" y="1196" on="1"/> - <pt x="1030" y="1067" on="0"/> - <pt x="930" y="952" on="1"/> - <pt x="869" y="883" on="0"/> - <pt x="754" y="806" on="1"/> - <pt x="904" y="729" on="0"/> - <pt x="981" y="647" on="1"/> - <pt x="1089" y="531" on="0"/> - <pt x="1089" y="380" on="1"/> - <pt x="1089" y="197" on="0"/> - <pt x="948" y="80" on="1"/> - <pt x="808" y="-37" on="0"/> - <pt x="585" y="-37" on="1"/> - <pt x="366" y="-37" on="0"/> - <pt x="233" y="74" on="1"/> - <pt x="99" y="185" on="0"/> - <pt x="99" y="368" on="1"/> - <pt x="99" y="528" on="0"/> - <pt x="207" y="654" on="1"/> - <pt x="271" y="730" on="0"/> - </contour> - <contour> - <pt x="644" y="868" on="1"/> - <pt x="851" y="1010" on="0"/> - <pt x="851" y="1164" on="1"/> - <pt x="851" y="1258" on="0"/> - <pt x="783" y="1313" on="1"/> - <pt x="715" y="1369" on="0"/> - <pt x="599" y="1369" on="1"/> - <pt x="489" y="1369" on="0"/> - <pt x="422" y="1316" on="1"/> - <pt x="355" y="1264" on="0"/> - <pt x="355" y="1176" on="1"/> - <pt x="355" y="1071" on="0"/> - <pt x="468" y="982" on="1"/> - <pt x="526" y="936" on="0"/> - </contour> - <contour> - <pt x="500" y="726" on="1"/> - <pt x="390" y="640" on="0"/> - <pt x="346" y="577" on="1"/> - <pt x="296" y="505" on="0"/> - <pt x="296" y="397" on="1"/> - <pt x="296" y="268" on="0"/> - <pt x="378" y="190" on="1"/> - <pt x="460" y="111" on="0"/> - <pt x="595" y="111" on="1"/> - <pt x="723" y="111" on="0"/> - <pt x="804" y="178" on="1"/> - <pt x="886" y="245" on="0"/> - <pt x="886" y="352" on="1"/> - <pt x="886" y="447" on="0"/> - <pt x="823" y="512" on="1"/> - <pt x="770" y="566" on="0"/> - <pt x="640" y="643" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 51 values pushed */ - 0 0 54 40 24 38 40 8 48 196 24 2 8 0 1 1 46 32 16 0 4 0 2 3 0 - 0 14 0 0 58 43 20 50 41 28 42 14 4 34 14 12 48 196 46 32 28 20 16 12 4 - 0 - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ellipsis" xMin="247" yMin="0" xMax="1802" yMax="197"> - <contour> - <pt x="247" y="0" on="1"/> - <pt x="247" y="197" on="1"/> - <pt x="444" y="197" on="1"/> - <pt x="444" y="0" on="1"/> - </contour> - <contour> - <pt x="926" y="0" on="1"/> - <pt x="926" y="197" on="1"/> - <pt x="1123" y="197" on="1"/> - <pt x="1123" y="0" on="1"/> - </contour> - <contour> - <pt x="1604" y="0" on="1"/> - <pt x="1604" y="197" on="1"/> - <pt x="1802" y="197" on="1"/> - <pt x="1802" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 56 values pushed */ - 0 0 10 9 6 5 2 1 5 5 0 1 4 48 196 11 8 7 4 3 0 5 0 14 0 - 0 9 8 4 1 10 7 6 4 1 4 3 2 4 1 0 3 4 48 196 11 10 1 5 4 - 1 1 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="emacron" xMin="86" yMin="-25" xMax="1022" yMax="1431"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="macron" x="228" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="emdash" xMin="99" yMin="543" xMax="1950" yMax="642"> - <contour> - <pt x="99" y="543" on="1"/> - <pt x="99" y="642" on="1"/> - <pt x="1950" y="642" on="1"/> - <pt x="1950" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 0 0 3 0 11 1 1 1 4 48 196 2 1 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="endash" xMin="101" yMin="543" xMax="1039" yMax="666"> - <contour> - <pt x="101" y="543" on="1"/> - <pt x="101" y="666" on="1"/> - <pt x="1039" y="666" on="1"/> - <pt x="1039" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 0 0 3 0 6 1 1 1 4 48 196 2 1 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="eng" xMin="154" yMin="-420" xMax="997" yMax="1110"> - <contour> - <pt x="154" y="0" on="1"/> - <pt x="154" y="1086" on="1"/> - <pt x="351" y="1086" on="1"/> - <pt x="351" y="882" on="1"/> - <pt x="424" y="984" on="0"/> - <pt x="495" y="1035" on="1"/> - <pt x="598" y="1110" on="0"/> - <pt x="721" y="1110" on="1"/> - <pt x="997" y="1110" on="0"/> - <pt x="997" y="780" on="1"/> - <pt x="997" y="-92" on="1"/> - <pt x="997" y="-420" on="0"/> - <pt x="679" y="-420" on="1"/> - <pt x="605" y="-420" on="0"/> - <pt x="528" y="-399" on="1"/> - <pt x="528" y="-245" on="1"/> - <pt x="593" y="-272" on="0"/> - <pt x="651" y="-272" on="1"/> - <pt x="799" y="-272" on="0"/> - <pt x="799" y="-55" on="1"/> - <pt x="799" y="716" on="1"/> - <pt x="799" y="847" on="0"/> - <pt x="772" y="894" on="1"/> - <pt x="744" y="941" on="0"/> - <pt x="668" y="941" on="1"/> - <pt x="506" y="941" on="0"/> - <pt x="351" y="703" on="1"/> - <pt x="351" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 65 values pushed */ - 0 0 24 30 7 17 40 12 48 196 7 1 26 20 9 3 4 1 0 3 19 15 14 10 4 - 13 12 0 27 0 1 0 2 1 1 14 0 0 20 19 4 1 9 27 26 3 2 4 3 0 - 2 4 48 196 10 9 1 15 14 1 1 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="eogonek" xMin="86" yMin="-370" xMax="1022" yMax="1110"> - <component glyphName="e" x="0" y="0" flags="0x4"/> - <component glyphName="ogonek" x="356" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="equal" xMin="104" yMin="333" xMax="1091" yMax="851"> - <contour> - <pt x="104" y="333" on="1"/> - <pt x="104" y="481" on="1"/> - <pt x="1091" y="481" on="1"/> - <pt x="1091" y="333" on="1"/> - </contour> - <contour> - <pt x="104" y="703" on="1"/> - <pt x="104" y="851" on="1"/> - <pt x="1091" y="851" on="1"/> - <pt x="1091" y="703" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 37 values pushed */ - 0 0 7 4 7 1 5 2 1 7 1 0 2 4 48 196 6 5 1 3 0 1 2 0 14 - 7 6 3 2 3 5 4 1 0 3 2 0 - LOOPCALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="estimated" xMin="86" yMin="-25" xMax="1022" yMax="1110"> - <contour> - <pt x="818" y="660" on="1"/> - <pt x="815" y="758" on="0"/> - <pt x="798" y="809" on="1"/> - <pt x="746" y="963" on="0"/> - <pt x="572" y="963" on="1"/> - <pt x="451" y="963" on="0"/> - <pt x="381" y="891" on="1"/> - <pt x="313" y="822" on="0"/> - <pt x="296" y="660" on="1"/> - </contour> - <contour> - <pt x="1013" y="191" on="1"/> - <pt x="1013" y="35" on="1"/> - <pt x="810" y="-25" on="0"/> - <pt x="641" y="-25" on="1"/> - <pt x="386" y="-25" on="0"/> - <pt x="236" y="133" on="1"/> - <pt x="86" y="291" on="0"/> - <pt x="86" y="557" on="1"/> - <pt x="86" y="810" on="0"/> - <pt x="219" y="960" on="1"/> - <pt x="351" y="1110" on="0"/> - <pt x="577" y="1110" on="1"/> - <pt x="836" y="1110" on="0"/> - <pt x="943" y="926" on="1"/> - <pt x="1022" y="789" on="0"/> - <pt x="1019" y="573" on="1"/> - <pt x="1018" y="512" on="1"/> - <pt x="293" y="512" on="1"/> - <pt x="305" y="393" on="0"/> - <pt x="332" y="331" on="1"/> - <pt x="420" y="125" on="0"/> - <pt x="683" y="125" on="1"/> - <pt x="832" y="125" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 48 values pushed */ - 0 0 30 40 12 48 196 20 1 12 2 4 1 4 1 0 2 0 1 10 9 2 25 2 3 - 0 26 25 1 8 0 1 2 0 14 25 9 26 8 0 3 13 16 9 10 9 1 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - CALL[ ] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="eth" xMin="86" yMin="-25" xMax="1052" yMax="1676"> - <contour> - <pt x="126" y="1434" on="1"/> - <pt x="126" y="1583" on="1"/> - <pt x="326" y="1583" on="0"/> - <pt x="488" y="1507" on="1"/> - <pt x="642" y="1676" on="1"/> - <pt x="721" y="1588" on="1"/> - <pt x="591" y="1445" on="1"/> - <pt x="716" y="1349" on="0"/> - <pt x="783" y="1274" on="1"/> - <pt x="1052" y="975" on="0"/> - <pt x="1052" y="550" on="1"/> - <pt x="1052" y="281" on="0"/> - <pt x="924" y="128" on="1"/> - <pt x="796" y="-25" on="0"/> - <pt x="575" y="-25" on="1"/> - <pt x="351" y="-25" on="0"/> - <pt x="219" y="127" on="1"/> - <pt x="86" y="279" on="0"/> - <pt x="86" y="535" on="1"/> - <pt x="86" y="793" on="0"/> - <pt x="216" y="939" on="1"/> - <pt x="345" y="1086" on="0"/> - <pt x="570" y="1086" on="1"/> - <pt x="624" y="1086" on="0"/> - <pt x="690" y="1072" on="1"/> - <pt x="613" y="1217" on="0"/> - <pt x="473" y="1316" on="1"/> - <pt x="324" y="1152" on="1"/> - <pt x="245" y="1239" on="1"/> - <pt x="373" y="1380" on="1"/> - <pt x="271" y="1434" on="0"/> - </contour> - <contour> - <pt x="566" y="938" on="1"/> - <pt x="439" y="938" on="0"/> - <pt x="368" y="832" on="1"/> - <pt x="296" y="726" on="0"/> - <pt x="296" y="531" on="1"/> - <pt x="296" y="123" on="0"/> - <pt x="570" y="123" on="1"/> - <pt x="842" y="123" on="0"/> - <pt x="842" y="530" on="1"/> - <pt x="842" y="938" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 75 values pushed */ - 0 0 37 40 14 31 40 22 48 196 22 1 14 2 1 1 29 28 27 26 6 0 6 0 1 - 3 0 0 1 1 24 1 2 2 0 0 1 5 4 3 1 4 13 0 0 14 0 0 39 9 - 10 35 9 18 48 196 29 28 27 26 24 6 5 4 3 9 13 10 0 18 0 1 0 1 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="exclam" xMin="186" yMin="0" xMax="383" yMax="1480"> - <contour> - <pt x="186" y="0" on="1"/> - <pt x="186" y="197" on="1"/> - <pt x="383" y="197" on="1"/> - <pt x="383" y="0" on="1"/> - </contour> - <contour> - <pt x="211" y="395" on="1"/> - <pt x="186" y="1184" on="1"/> - <pt x="186" y="1480" on="1"/> - <pt x="383" y="1480" on="1"/> - <pt x="383" y="1184" on="1"/> - <pt x="359" y="395" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 54 values pushed */ - 8 5 2 6 4 3 0 0 2 1 5 1 0 1 4 48 196 9 4 1 3 0 1 2 0 - 7 6 0 14 9 4 2 2 0 3 0 0 8 7 3 2 4 3 0 1 4 48 196 6 5 - 1 0 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="exclamdown" xMin="242" yMin="-395" xMax="439" yMax="1086"> - <contour> - <pt x="439" y="1086" on="1"/> - <pt x="439" y="888" on="1"/> - <pt x="242" y="888" on="1"/> - <pt x="242" y="1086" on="1"/> - </contour> - <contour> - <pt x="415" y="691" on="1"/> - <pt x="439" y="-99" on="1"/> - <pt x="439" y="-395" on="1"/> - <pt x="242" y="-395" on="1"/> - <pt x="242" y="-99" on="1"/> - <pt x="267" y="691" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 56 values pushed */ - 1 8 5 2 2 6 3 0 0 0 2 1 5 1 0 1 4 48 196 9 4 1 7 6 1 - 2 0 3 0 1 14 9 4 2 0 2 3 0 0 6 5 1 0 4 3 2 1 4 48 196 - 8 7 3 2 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="f" xMin="31" yMin="0" xMax="630" yMax="1604"> - <contour> - <pt x="175" y="0" on="1"/> - <pt x="175" y="938" on="1"/> - <pt x="31" y="938" on="1"/> - <pt x="31" y="1086" on="1"/> - <pt x="175" y="1086" on="1"/> - <pt x="175" y="1216" on="1"/> - <pt x="175" y="1604" on="0"/> - <pt x="483" y="1604" on="1"/> - <pt x="548" y="1604" on="0"/> - <pt x="630" y="1578" on="1"/> - <pt x="630" y="1421" on="1"/> - <pt x="556" y="1456" on="0"/> - <pt x="504" y="1456" on="1"/> - <pt x="431" y="1456" on="0"/> - <pt x="402" y="1407" on="1"/> - <pt x="373" y="1359" on="0"/> - <pt x="373" y="1237" on="1"/> - <pt x="373" y="1086" on="1"/> - <pt x="568" y="1086" on="1"/> - <pt x="568" y="938" on="1"/> - <pt x="373" y="938" on="1"/> - <pt x="373" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 68 values pushed */ - 0 0 12 40 7 48 196 16 10 9 5 4 13 7 3 0 0 20 19 2 1 7 3 3 1 - 4 48 196 21 0 1 0 18 17 4 3 1 3 14 0 0 21 20 17 16 4 3 0 1 4 - 48 196 10 9 1 19 18 1 5 4 1 0 3 3 2 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="fi" xMin="31" yMin="0" xMax="896" yMax="1604"> - <contour> - <pt x="175" y="0" on="1"/> - <pt x="175" y="938" on="1"/> - <pt x="31" y="938" on="1"/> - <pt x="31" y="1086" on="1"/> - <pt x="175" y="1086" on="1"/> - <pt x="175" y="1216" on="1"/> - <pt x="175" y="1604" on="0"/> - <pt x="483" y="1604" on="1"/> - <pt x="548" y="1604" on="0"/> - <pt x="630" y="1578" on="1"/> - <pt x="630" y="1421" on="1"/> - <pt x="556" y="1456" on="0"/> - <pt x="504" y="1456" on="1"/> - <pt x="431" y="1456" on="0"/> - <pt x="402" y="1407" on="1"/> - <pt x="373" y="1359" on="0"/> - <pt x="373" y="1237" on="1"/> - <pt x="373" y="1086" on="1"/> - <pt x="896" y="1086" on="1"/> - <pt x="896" y="0" on="1"/> - <pt x="699" y="0" on="1"/> - <pt x="699" y="938" on="1"/> - <pt x="373" y="938" on="1"/> - <pt x="373" y="0" on="1"/> - </contour> - <contour> - <pt x="699" y="1283" on="1"/> - <pt x="699" y="1480" on="1"/> - <pt x="896" y="1480" on="1"/> - <pt x="896" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 92 values pushed */ - 0 0 12 40 7 48 196 10 25 24 2 16 5 2 24 3 3 9 7 25 0 0 27 24 5 - 1 25 22 21 2 1 7 3 3 2 4 48 196 23 20 19 0 3 0 26 25 0 18 17 4 - 3 1 3 14 0 0 25 24 21 20 4 3 18 23 22 17 16 4 3 0 2 4 48 196 27 - 26 19 18 3 10 9 1 5 4 1 0 3 3 2 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="fi#1" xMin="31" yMin="0" xMax="896" yMax="1604"> - <contour> - <pt x="175" y="0" on="1"/> - <pt x="175" y="938" on="1"/> - <pt x="31" y="938" on="1"/> - <pt x="31" y="1086" on="1"/> - <pt x="175" y="1086" on="1"/> - <pt x="175" y="1216" on="1"/> - <pt x="175" y="1604" on="0"/> - <pt x="483" y="1604" on="1"/> - <pt x="548" y="1604" on="0"/> - <pt x="630" y="1578" on="1"/> - <pt x="630" y="1421" on="1"/> - <pt x="556" y="1456" on="0"/> - <pt x="504" y="1456" on="1"/> - <pt x="431" y="1456" on="0"/> - <pt x="402" y="1407" on="1"/> - <pt x="373" y="1359" on="0"/> - <pt x="373" y="1237" on="1"/> - <pt x="373" y="1086" on="1"/> - <pt x="896" y="1086" on="1"/> - <pt x="896" y="0" on="1"/> - <pt x="699" y="0" on="1"/> - <pt x="699" y="938" on="1"/> - <pt x="373" y="938" on="1"/> - <pt x="373" y="0" on="1"/> - </contour> - <contour> - <pt x="699" y="1283" on="1"/> - <pt x="699" y="1480" on="1"/> - <pt x="896" y="1480" on="1"/> - <pt x="896" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 92 values pushed */ - 0 0 12 40 7 48 196 10 25 24 2 16 5 2 24 3 3 9 7 25 0 0 27 24 5 - 1 25 22 21 2 1 7 3 3 2 4 48 196 23 20 19 0 3 0 26 25 0 18 17 4 - 3 1 3 14 0 0 25 24 21 20 4 3 18 23 22 17 16 4 3 0 2 4 48 196 27 - 26 19 18 3 10 9 1 5 4 1 0 3 3 2 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="figuredash" xMin="101" yMin="543" xMax="1039" yMax="666"> - <contour> - <pt x="101" y="543" on="1"/> - <pt x="101" y="666" on="1"/> - <pt x="1039" y="666" on="1"/> - <pt x="1039" y="543" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 0 0 3 0 6 1 1 1 4 48 196 2 1 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="five" xMin="163" yMin="-37" xMax="966" yMax="1480"> - <contour> - <pt x="163" y="-6" on="1"/> - <pt x="163" y="170" on="1"/> - <pt x="315" y="111" on="0"/> - <pt x="442" y="111" on="1"/> - <pt x="589" y="111" on="0"/> - <pt x="672" y="197" on="1"/> - <pt x="756" y="284" on="0"/> - <pt x="756" y="431" on="1"/> - <pt x="756" y="767" on="0"/> - <pt x="300" y="767" on="1"/> - <pt x="245" y="767" on="0"/> - <pt x="188" y="760" on="1"/> - <pt x="188" y="1480" on="1"/> - <pt x="936" y="1480" on="1"/> - <pt x="936" y="1308" on="1"/> - <pt x="361" y="1308" on="1"/> - <pt x="361" y="918" on="1"/> - <pt x="625" y="914" on="0"/> - <pt x="775" y="811" on="1"/> - <pt x="966" y="679" on="0"/> - <pt x="966" y="424" on="1"/> - <pt x="966" y="208" on="0"/> - <pt x="821" y="86" on="1"/> - <pt x="675" y="-37" on="0"/> - <pt x="420" y="-37" on="1"/> - <pt x="310" y="-37" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 70 values pushed */ - 0 0 3 40 24 48 196 24 2 9 1 16 11 9 1 4 14 2 3 0 1 0 2 0 0 - 0 15 14 13 1 12 1 4 48 196 13 12 0 14 0 0 7 9 20 48 196 20 13 0 0 - 16 15 13 1 11 1 4 48 196 14 13 1 12 11 1 1 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MDAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="fl" xMin="31" yMin="0" xMax="896" yMax="1604"> - <contour> - <pt x="175" y="0" on="1"/> - <pt x="175" y="938" on="1"/> - <pt x="31" y="938" on="1"/> - <pt x="31" y="1086" on="1"/> - <pt x="175" y="1086" on="1"/> - <pt x="175" y="1216" on="1"/> - <pt x="175" y="1604" on="0"/> - <pt x="478" y="1604" on="1"/> - <pt x="698" y="1579" on="1"/> - <pt x="896" y="1579" on="1"/> - <pt x="896" y="0" on="1"/> - <pt x="698" y="0" on="1"/> - <pt x="698" y="1431" on="1"/> - <pt x="657" y="1439" on="1"/> - <pt x="571" y="1456" on="0"/> - <pt x="512" y="1456" on="1"/> - <pt x="423" y="1456" on="0"/> - <pt x="395" y="1396" on="1"/> - <pt x="372" y="1346" on="0"/> - <pt x="372" y="1237" on="1"/> - <pt x="372" y="1086" on="1"/> - <pt x="550" y="1086" on="1"/> - <pt x="550" y="938" on="1"/> - <pt x="372" y="938" on="1"/> - <pt x="372" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 81 values pushed */ - 0 0 15 40 7 48 196 19 12 5 3 8 3 3 7 8 0 0 23 22 2 1 7 3 3 - 1 4 48 196 9 8 1 24 11 10 0 3 2 0 21 20 4 3 1 3 14 0 0 12 11 - 8 4 2 9 24 23 20 19 4 3 0 2 4 48 196 10 9 1 22 21 1 5 4 1 0 - 3 3 2 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="fl#1" xMin="31" yMin="0" xMax="896" yMax="1604"> - <contour> - <pt x="175" y="0" on="1"/> - <pt x="175" y="938" on="1"/> - <pt x="31" y="938" on="1"/> - <pt x="31" y="1086" on="1"/> - <pt x="175" y="1086" on="1"/> - <pt x="175" y="1216" on="1"/> - <pt x="175" y="1604" on="0"/> - <pt x="478" y="1604" on="1"/> - <pt x="698" y="1579" on="1"/> - <pt x="896" y="1579" on="1"/> - <pt x="896" y="0" on="1"/> - <pt x="698" y="0" on="1"/> - <pt x="698" y="1431" on="1"/> - <pt x="657" y="1439" on="1"/> - <pt x="571" y="1456" on="0"/> - <pt x="512" y="1456" on="1"/> - <pt x="423" y="1456" on="0"/> - <pt x="395" y="1396" on="1"/> - <pt x="372" y="1346" on="0"/> - <pt x="372" y="1237" on="1"/> - <pt x="372" y="1086" on="1"/> - <pt x="550" y="1086" on="1"/> - <pt x="550" y="938" on="1"/> - <pt x="372" y="938" on="1"/> - <pt x="372" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 81 values pushed */ - 0 0 15 40 7 48 196 19 12 5 3 8 3 3 7 8 0 0 23 22 2 1 7 3 3 - 1 4 48 196 9 8 1 24 11 10 0 3 2 0 21 20 4 3 1 3 14 0 0 12 11 - 8 4 2 9 24 23 20 19 4 3 0 2 4 48 196 10 9 1 22 21 1 5 4 1 0 - 3 3 2 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="florin" xMin="49" yMin="-296" xMax="1025" yMax="1517"> - <contour> - <pt x="49" y="-296" on="1"/> - <pt x="250" y="716" on="1"/> - <pt x="84" y="716" on="1"/> - <pt x="84" y="864" on="1"/> - <pt x="280" y="864" on="1"/> - <pt x="301" y="969" on="1"/> - <pt x="411" y="1517" on="0"/> - <pt x="799" y="1517" on="1"/> - <pt x="903" y="1517" on="0"/> - <pt x="1025" y="1489" on="1"/> - <pt x="995" y="1332" on="1"/> - <pt x="885" y="1370" on="0"/> - <pt x="798" y="1370" on="1"/> - <pt x="582" y="1370" on="0"/> - <pt x="520" y="1060" on="1"/> - <pt x="481" y="864" on="1"/> - <pt x="670" y="864" on="1"/> - <pt x="670" y="716" on="1"/> - <pt x="451" y="716" on="1"/> - <pt x="250" y="-296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 67 values pushed */ - 0 0 12 40 7 48 196 7 0 1 10 0 3 2 0 1 9 0 0 0 0 18 17 2 1 - 7 3 3 1 4 48 196 16 15 4 3 3 19 0 1 2 0 14 19 18 15 4 1 5 16 - 2 3 10 9 2 13 16 0 2 17 16 1 3 2 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="four" xMin="31" yMin="0" xMax="1071" yMax="1480"> - <contour> - <pt x="688" y="0" on="1"/> - <pt x="688" y="419" on="1"/> - <pt x="31" y="419" on="1"/> - <pt x="31" y="568" on="1"/> - <pt x="688" y="1480" on="1"/> - <pt x="873" y="1480" on="1"/> - <pt x="873" y="580" on="1"/> - <pt x="1071" y="580" on="1"/> - <pt x="1071" y="419" on="1"/> - <pt x="873" y="419" on="1"/> - <pt x="873" y="0" on="1"/> - </contour> - <contour> - <pt x="224" y="580" on="1"/> - <pt x="701" y="580" on="1"/> - <pt x="701" y="1238" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 69 values pushed */ - 13 4 6 2 3 6 1 2 0 0 12 11 7 6 15 3 1 1 4 48 196 9 8 2 1 - 3 10 0 1 2 0 5 4 0 14 11 0 2 2 0 0 4 1 0 24 2 5 13 12 13 - 1 5 2 4 48 196 8 7 1 10 9 6 5 3 3 2 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="foursuperiour" xMin="3" yMin="592" xMax="669" yMax="1480"> - <contour> - <pt x="410" y="592" on="1"/> - <pt x="410" y="834" on="1"/> - <pt x="3" y="834" on="1"/> - <pt x="3" y="948" on="1"/> - <pt x="406" y="1480" on="1"/> - <pt x="546" y="1480" on="1"/> - <pt x="546" y="951" on="1"/> - <pt x="669" y="951" on="1"/> - <pt x="669" y="834" on="1"/> - <pt x="546" y="834" on="1"/> - <pt x="546" y="592" on="1"/> - </contour> - <contour> - <pt x="132" y="951" on="1"/> - <pt x="410" y="951" on="1"/> - <pt x="410" y="1315" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 66 values pushed */ - 13 4 6 2 3 6 1 2 10 0 1 0 0 9 8 2 1 38 3 6 1 4 48 196 5 - 4 1 12 11 7 6 3 2 0 14 8 7 2 13 5 11 4 3 2 4 13 0 0 0 13 - 12 1 0 22 3 5 1 4 48 196 10 9 6 5 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="fraction" xMin="-441" yMin="-37" xMax="782" yMax="1517"> - <contour> - <pt x="-441" y="-37" on="1"/> - <pt x="647" y="1517" on="1"/> - <pt x="782" y="1517" on="1"/> - <pt x="-305" y="-37" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 9 values pushed */ - 3 2 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="fraction#1" xMin="-441" yMin="-37" xMax="782" yMax="1517"> - <contour> - <pt x="-441" y="-37" on="1"/> - <pt x="647" y="1517" on="1"/> - <pt x="782" y="1517" on="1"/> - <pt x="-305" y="-37" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 9 values pushed */ - 3 2 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="g" xMin="93" yMin="-420" xMax="991" yMax="1110"> - <contour> - <pt x="794" y="432" on="1"/> - <pt x="794" y="937" on="1"/> - <pt x="653" y="962" on="0"/> - <pt x="591" y="962" on="1"/> - <pt x="306" y="962" on="0"/> - <pt x="306" y="574" on="1"/> - <pt x="306" y="401" on="0"/> - <pt x="362" y="299" on="1"/> - <pt x="418" y="197" on="0"/> - <pt x="511" y="197" on="1"/> - <pt x="637" y="197" on="0"/> - </contour> - <contour> - <pt x="794" y="253" on="1"/> - <pt x="739" y="151" on="0"/> - <pt x="677" y="99" on="1"/> - <pt x="588" y="25" on="0"/> - <pt x="470" y="25" on="1"/> - <pt x="302" y="25" on="0"/> - <pt x="198" y="171" on="1"/> - <pt x="93" y="316" on="0"/> - <pt x="93" y="551" on="1"/> - <pt x="93" y="817" on="0"/> - <pt x="227" y="963" on="1"/> - <pt x="361" y="1110" on="0"/> - <pt x="603" y="1110" on="1"/> - <pt x="697" y="1110" on="0"/> - <pt x="794" y="1086" on="1"/> - <pt x="991" y="1086" on="1"/> - <pt x="991" y="296" on="1"/> - <pt x="991" y="40" on="0"/> - <pt x="964" y="-82" on="1"/> - <pt x="891" y="-420" on="0"/> - <pt x="463" y="-420" on="1"/> - <pt x="283" y="-420" on="0"/> - <pt x="100" y="-361" on="1"/> - <pt x="100" y="-190" on="1"/> - <pt x="315" y="-271" on="0"/> - <pt x="462" y="-271" on="1"/> - <pt x="794" y="-271" on="0"/> - <pt x="794" y="82" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 57 values pushed */ - 0 0 36 40 31 48 196 23 1 15 2 9 3 1 38 27 11 9 3 1 0 7 25 2 3 - 0 1 34 33 31 2 0 26 25 1 14 5 5 0 33 2 19 33 27 26 1 34 33 1 38 - 25 11 1 0 4 3 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MDAP[1] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="gbreve" xMin="93" yMin="-420" xMax="991" yMax="1604"> - <component glyphName="g" x="0" y="0" flags="0x4"/> - <component glyphName="breve" x="258" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="gcircumflex" xMin="93" yMin="-420" xMax="991" yMax="1604"> - <contour> - <pt x="794" y="432" on="1"/> - <pt x="794" y="937" on="1"/> - <pt x="653" y="962" on="0"/> - <pt x="591" y="962" on="1"/> - <pt x="306" y="962" on="0"/> - <pt x="306" y="574" on="1"/> - <pt x="306" y="401" on="0"/> - <pt x="362" y="299" on="1"/> - <pt x="418" y="197" on="0"/> - <pt x="511" y="197" on="1"/> - <pt x="637" y="197" on="0"/> - </contour> - <contour> - <pt x="794" y="253" on="1"/> - <pt x="739" y="151" on="0"/> - <pt x="677" y="99" on="1"/> - <pt x="588" y="25" on="0"/> - <pt x="470" y="25" on="1"/> - <pt x="302" y="25" on="0"/> - <pt x="198" y="171" on="1"/> - <pt x="93" y="316" on="0"/> - <pt x="93" y="551" on="1"/> - <pt x="93" y="817" on="0"/> - <pt x="227" y="963" on="1"/> - <pt x="361" y="1110" on="0"/> - <pt x="603" y="1110" on="1"/> - <pt x="697" y="1110" on="0"/> - <pt x="794" y="1086" on="1"/> - <pt x="991" y="1086" on="1"/> - <pt x="991" y="296" on="1"/> - <pt x="991" y="40" on="0"/> - <pt x="964" y="-82" on="1"/> - <pt x="891" y="-420" on="0"/> - <pt x="463" y="-420" on="1"/> - <pt x="283" y="-420" on="0"/> - <pt x="100" y="-361" on="1"/> - <pt x="100" y="-190" on="1"/> - <pt x="315" y="-271" on="0"/> - <pt x="462" y="-271" on="1"/> - <pt x="794" y="-271" on="0"/> - <pt x="794" y="82" on="1"/> - </contour> - <contour> - <pt x="249" y="1283" on="1"/> - <pt x="490" y="1604" on="1"/> - <pt x="708" y="1604" on="1"/> - <pt x="949" y="1283" on="1"/> - <pt x="801" y="1283" on="1"/> - <pt x="600" y="1485" on="1"/> - <pt x="598" y="1485" on="1"/> - <pt x="397" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 86 values pushed */ - 0 0 36 40 31 48 196 23 1 15 2 45 44 2 40 39 3 9 3 1 38 27 11 9 3 - 1 0 7 25 2 3 0 1 34 33 31 2 0 41 40 1 46 43 42 39 3 2 0 26 25 - 1 14 43 42 2 26 0 3 5 46 45 44 41 40 39 5 7 0 33 3 19 33 27 26 1 - 34 33 1 38 25 11 1 0 4 3 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MDAP[1] - MDAP[1] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="gcommaaccent" xMin="93" yMin="-420" xMax="991" yMax="1737"> - <contour> - <pt x="794" y="432" on="1"/> - <pt x="794" y="937" on="1"/> - <pt x="653" y="962" on="0"/> - <pt x="591" y="962" on="1"/> - <pt x="306" y="962" on="0"/> - <pt x="306" y="574" on="1"/> - <pt x="306" y="401" on="0"/> - <pt x="362" y="299" on="1"/> - <pt x="418" y="197" on="0"/> - <pt x="511" y="197" on="1"/> - <pt x="637" y="197" on="0"/> - </contour> - <contour> - <pt x="794" y="253" on="1"/> - <pt x="739" y="151" on="0"/> - <pt x="677" y="99" on="1"/> - <pt x="588" y="25" on="0"/> - <pt x="470" y="25" on="1"/> - <pt x="302" y="25" on="0"/> - <pt x="198" y="171" on="1"/> - <pt x="93" y="316" on="0"/> - <pt x="93" y="551" on="1"/> - <pt x="93" y="817" on="0"/> - <pt x="227" y="963" on="1"/> - <pt x="361" y="1110" on="0"/> - <pt x="603" y="1110" on="1"/> - <pt x="697" y="1110" on="0"/> - <pt x="794" y="1086" on="1"/> - <pt x="991" y="1086" on="1"/> - <pt x="991" y="296" on="1"/> - <pt x="991" y="40" on="0"/> - <pt x="964" y="-82" on="1"/> - <pt x="891" y="-420" on="0"/> - <pt x="463" y="-420" on="1"/> - <pt x="283" y="-420" on="0"/> - <pt x="100" y="-361" on="1"/> - <pt x="100" y="-190" on="1"/> - <pt x="315" y="-271" on="0"/> - <pt x="462" y="-271" on="1"/> - <pt x="794" y="-271" on="0"/> - <pt x="794" y="82" on="1"/> - </contour> - <contour> - <pt x="686" y="1737" on="1"/> - <pt x="686" y="1678" on="1"/> - <pt x="609" y="1657" on="0"/> - <pt x="609" y="1497" on="1"/> - <pt x="609" y="1480" on="1"/> - <pt x="686" y="1480" on="1"/> - <pt x="686" y="1283" on="1"/> - <pt x="488" y="1283" on="1"/> - <pt x="488" y="1454" on="1"/> - <pt x="489" y="1716" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 92 values pushed */ - 0 0 36 40 31 48 196 23 1 15 2 9 3 1 38 27 11 9 3 1 0 7 25 2 3 - 0 47 44 43 42 40 39 6 13 45 1 34 33 31 2 0 46 45 1 0 26 25 1 14 43 - 42 2 39 46 3 5 5 46 33 2 19 33 0 0 45 44 40 39 4 3 46 1 4 48 196 - 47 46 1 27 26 1 34 33 1 38 25 11 1 0 4 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MDAP[1] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="gdotaccent" xMin="93" yMin="-420" xMax="991" yMax="1480"> - <contour> - <pt x="794" y="432" on="1"/> - <pt x="794" y="937" on="1"/> - <pt x="653" y="962" on="0"/> - <pt x="591" y="962" on="1"/> - <pt x="306" y="962" on="0"/> - <pt x="306" y="574" on="1"/> - <pt x="306" y="401" on="0"/> - <pt x="362" y="299" on="1"/> - <pt x="418" y="197" on="0"/> - <pt x="511" y="197" on="1"/> - <pt x="637" y="197" on="0"/> - </contour> - <contour> - <pt x="794" y="253" on="1"/> - <pt x="739" y="151" on="0"/> - <pt x="677" y="99" on="1"/> - <pt x="588" y="25" on="0"/> - <pt x="470" y="25" on="1"/> - <pt x="302" y="25" on="0"/> - <pt x="198" y="171" on="1"/> - <pt x="93" y="316" on="0"/> - <pt x="93" y="551" on="1"/> - <pt x="93" y="817" on="0"/> - <pt x="227" y="963" on="1"/> - <pt x="361" y="1110" on="0"/> - <pt x="603" y="1110" on="1"/> - <pt x="697" y="1110" on="0"/> - <pt x="794" y="1086" on="1"/> - <pt x="991" y="1086" on="1"/> - <pt x="991" y="296" on="1"/> - <pt x="991" y="40" on="0"/> - <pt x="964" y="-82" on="1"/> - <pt x="891" y="-420" on="0"/> - <pt x="463" y="-420" on="1"/> - <pt x="283" y="-420" on="0"/> - <pt x="100" y="-361" on="1"/> - <pt x="100" y="-190" on="1"/> - <pt x="315" y="-271" on="0"/> - <pt x="462" y="-271" on="1"/> - <pt x="794" y="-271" on="0"/> - <pt x="794" y="82" on="1"/> - </contour> - <contour> - <pt x="488" y="1283" on="1"/> - <pt x="488" y="1480" on="1"/> - <pt x="685" y="1480" on="1"/> - <pt x="685" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 85 values pushed */ - 0 0 36 40 31 48 196 23 1 15 2 9 3 1 38 27 11 9 3 1 0 7 25 2 3 - 0 1 34 33 31 2 0 0 0 42 39 5 1 40 1 4 48 196 41 40 0 26 25 1 14 - 5 5 39 33 2 19 33 0 0 42 41 4 1 39 1 4 48 196 40 39 1 27 26 1 34 - 33 1 38 25 11 1 0 4 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - MIAP[1] - ALIGNRP[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MDAP[1] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="germandbls" xMin="129" yMin="-25" xMax="1165" yMax="1604"> - <contour> - <pt x="129" y="0" on="1"/> - <pt x="129" y="1151" on="1"/> - <pt x="129" y="1406" on="0"/> - <pt x="220" y="1505" on="1"/> - <pt x="313" y="1604" on="0"/> - <pt x="549" y="1604" on="1"/> - <pt x="930" y="1604" on="0"/> - <pt x="930" y="1333" on="1"/> - <pt x="930" y="1203" on="0"/> - <pt x="800" y="1063" on="1"/> - <pt x="697" y="951" on="0"/> - <pt x="697" y="899" on="1"/> - <pt x="697" y="831" on="0"/> - <pt x="808" y="749" on="1"/> - <pt x="993" y="612" on="1"/> - <pt x="1165" y="485" on="0"/> - <pt x="1165" y="295" on="1"/> - <pt x="1165" y="-25" on="0"/> - <pt x="789" y="-25" on="1"/> - <pt x="624" y="-25" on="0"/> - <pt x="487" y="30" on="1"/> - <pt x="487" y="202" on="1"/> - <pt x="674" y="123" on="0"/> - <pt x="789" y="123" on="1"/> - <pt x="980" y="123" on="0"/> - <pt x="980" y="276" on="1"/> - <pt x="980" y="377" on="0"/> - <pt x="865" y="465" on="1"/> - <pt x="650" y="629" on="1"/> - <pt x="521" y="727" on="0"/> - <pt x="521" y="841" on="1"/> - <pt x="521" y="936" on="0"/> - <pt x="635" y="1084" on="1"/> - <pt x="733" y="1212" on="0"/> - <pt x="733" y="1299" on="1"/> - <pt x="733" y="1456" on="0"/> - <pt x="536" y="1456" on="1"/> - <pt x="419" y="1456" on="0"/> - <pt x="372" y="1407" on="1"/> - <pt x="326" y="1358" on="0"/> - <pt x="326" y="1234" on="1"/> - <pt x="326" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 63 values pushed */ - 0 0 36 40 5 23 40 18 48 196 18 2 40 21 20 1 4 13 5 0 41 0 1 0 14 - 0 0 34 41 7 25 14 16 11 14 30 48 196 30 16 7 3 12 20 0 0 41 40 4 1 - 0 1 4 48 196 21 20 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="grave" xMin="106" yMin="1283" xMax="575" yMax="1604"> - <contour> - <pt x="575" y="1283" on="1"/> - <pt x="427" y="1283" on="1"/> - <pt x="106" y="1604" on="1"/> - <pt x="334" y="1604" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 13 values pushed */ - 3 2 1 1 0 1 2 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="greater" xMin="104" yMin="99" xMax="1091" yMax="1086"> - <contour> - <pt x="104" y="1086" on="1"/> - <pt x="1091" y="592" on="1"/> - <pt x="104" y="99" on="1"/> - <pt x="104" y="264" on="1"/> - <pt x="758" y="591" on="1"/> - <pt x="758" y="593" on="1"/> - <pt x="104" y="920" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 6 5 4 3 2 1 0 14 5 4 1 3 13 0 6 3 2 0 3 0 - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="guillemotleft" xMin="115" yMin="99" xMax="1003" yMax="987"> - <contour> - <pt x="1003" y="913" on="1"/> - <pt x="707" y="543" on="1"/> - <pt x="1003" y="173" on="1"/> - <pt x="905" y="99" on="1"/> - <pt x="510" y="543" on="1"/> - <pt x="905" y="987" on="1"/> - </contour> - <contour> - <pt x="608" y="913" on="1"/> - <pt x="312" y="543" on="1"/> - <pt x="608" y="173" on="1"/> - <pt x="510" y="99" on="1"/> - <pt x="115" y="543" on="1"/> - <pt x="510" y="987" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 25 values pushed */ - 11 10 9 8 7 6 5 4 3 2 1 0 14 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="guillemotright" xMin="136" yMin="99" xMax="1024" yMax="987"> - <contour> - <pt x="136" y="173" on="1"/> - <pt x="432" y="543" on="1"/> - <pt x="136" y="913" on="1"/> - <pt x="235" y="987" on="1"/> - <pt x="629" y="543" on="1"/> - <pt x="235" y="99" on="1"/> - </contour> - <contour> - <pt x="531" y="173" on="1"/> - <pt x="827" y="543" on="1"/> - <pt x="531" y="913" on="1"/> - <pt x="629" y="987" on="1"/> - <pt x="1024" y="543" on="1"/> - <pt x="629" y="99" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 25 values pushed */ - 11 10 9 8 7 6 5 4 3 2 1 0 14 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="guilsinglleft" xMin="74" yMin="99" xMax="567" yMax="987"> - <contour> - <pt x="567" y="913" on="1"/> - <pt x="271" y="543" on="1"/> - <pt x="567" y="173" on="1"/> - <pt x="469" y="99" on="1"/> - <pt x="74" y="543" on="1"/> - <pt x="469" y="987" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 13 values pushed */ - 5 4 3 2 1 0 14 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="guilsinglright" xMin="114" yMin="99" xMax="607" yMax="987"> - <contour> - <pt x="114" y="173" on="1"/> - <pt x="410" y="543" on="1"/> - <pt x="114" y="913" on="1"/> - <pt x="213" y="987" on="1"/> - <pt x="607" y="543" on="1"/> - <pt x="213" y="99" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 13 values pushed */ - 5 4 3 2 1 0 14 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="h" xMin="154" yMin="0" xMax="997" yMax="1579"> - <contour> - <pt x="154" y="0" on="1"/> - <pt x="154" y="1579" on="1"/> - <pt x="351" y="1579" on="1"/> - <pt x="351" y="882" on="1"/> - <pt x="424" y="983" on="0"/> - <pt x="495" y="1035" on="1"/> - <pt x="598" y="1110" on="0"/> - <pt x="721" y="1110" on="1"/> - <pt x="997" y="1110" on="0"/> - <pt x="997" y="780" on="1"/> - <pt x="997" y="0" on="1"/> - <pt x="799" y="0" on="1"/> - <pt x="799" y="716" on="1"/> - <pt x="799" y="848" on="0"/> - <pt x="772" y="894" on="1"/> - <pt x="744" y="941" on="0"/> - <pt x="668" y="941" on="1"/> - <pt x="506" y="941" on="0"/> - <pt x="351" y="703" on="1"/> - <pt x="351" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 56 values pushed */ - 0 0 16 30 7 48 196 7 1 1 18 12 9 3 4 1 0 3 0 2 1 1 19 11 10 - 0 3 2 0 14 0 0 12 11 4 1 9 19 18 3 2 4 3 0 2 4 48 196 10 9 - 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="hbar" xMin="6" yMin="0" xMax="997" yMax="1579"> - <contour> - <pt x="154" y="0" on="1"/> - <pt x="154" y="1258" on="1"/> - <pt x="6" y="1258" on="1"/> - <pt x="6" y="1382" on="1"/> - <pt x="154" y="1382" on="1"/> - <pt x="154" y="1579" on="1"/> - <pt x="351" y="1579" on="1"/> - <pt x="351" y="1382" on="1"/> - <pt x="647" y="1382" on="1"/> - <pt x="647" y="1258" on="1"/> - <pt x="351" y="1258" on="1"/> - <pt x="351" y="882" on="1"/> - <pt x="424" y="983" on="0"/> - <pt x="495" y="1035" on="1"/> - <pt x="598" y="1110" on="0"/> - <pt x="721" y="1110" on="1"/> - <pt x="997" y="1110" on="0"/> - <pt x="997" y="780" on="1"/> - <pt x="997" y="0" on="1"/> - <pt x="799" y="0" on="1"/> - <pt x="799" y="716" on="1"/> - <pt x="799" y="848" on="0"/> - <pt x="772" y="894" on="1"/> - <pt x="744" y="941" on="0"/> - <pt x="668" y="941" on="1"/> - <pt x="506" y="941" on="0"/> - <pt x="351" y="703" on="1"/> - <pt x="351" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 87 values pushed */ - 0 0 24 30 15 48 196 15 1 1 26 20 17 11 4 1 0 3 0 0 0 10 9 2 1 - 6 3 3 1 4 48 196 6 5 1 8 7 4 3 3 27 19 18 0 3 3 0 14 9 8 - 2 19 6 3 3 2 0 0 0 20 19 4 1 17 27 26 11 10 7 6 4 5 0 2 4 - 48 196 18 17 1 5 4 1 0 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="hcircumflex" xMin="154" yMin="0" xMax="997" yMax="1999"> - <contour> - <pt x="154" y="0" on="1"/> - <pt x="154" y="1579" on="1"/> - <pt x="351" y="1579" on="1"/> - <pt x="351" y="882" on="1"/> - <pt x="424" y="983" on="0"/> - <pt x="495" y="1035" on="1"/> - <pt x="598" y="1110" on="0"/> - <pt x="721" y="1110" on="1"/> - <pt x="997" y="1110" on="0"/> - <pt x="997" y="780" on="1"/> - <pt x="997" y="0" on="1"/> - <pt x="799" y="0" on="1"/> - <pt x="799" y="716" on="1"/> - <pt x="799" y="848" on="0"/> - <pt x="772" y="894" on="1"/> - <pt x="744" y="941" on="0"/> - <pt x="668" y="941" on="1"/> - <pt x="506" y="941" on="0"/> - <pt x="351" y="703" on="1"/> - <pt x="351" y="0" on="1"/> - </contour> - <contour> - <pt x="228" y="1678" on="1"/> - <pt x="469" y="1999" on="1"/> - <pt x="687" y="1999" on="1"/> - <pt x="928" y="1678" on="1"/> - <pt x="780" y="1678" on="1"/> - <pt x="579" y="1880" on="1"/> - <pt x="577" y="1880" on="1"/> - <pt x="376" y="1678" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 87 values pushed */ - 0 0 16 7 48 196 7 1 26 25 2 21 20 3 1 18 12 9 3 4 1 0 3 0 22 - 21 1 27 24 23 20 3 2 1 1 19 11 10 0 3 4 0 14 23 9 11 2 27 26 25 - 24 22 21 6 11 2 3 20 2 0 2 0 0 12 11 5 1 9 19 18 3 2 5 3 0 - 2 4 48 196 10 9 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="hungarumlaut" xMin="-51" yMin="1283" xMax="732" yMax="1604"> - <contour> - <pt x="-51" y="1283" on="1"/> - <pt x="190" y="1604" on="1"/> - <pt x="381" y="1604" on="1"/> - <pt x="60" y="1283" on="1"/> - </contour> - <contour> - <pt x="301" y="1283" on="1"/> - <pt x="541" y="1604" on="1"/> - <pt x="732" y="1604" on="1"/> - <pt x="412" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 22 values pushed */ - 7 4 3 0 4 13 1 6 5 2 1 3 0 14 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="hyphen" xMin="88" yMin="518" xMax="594" yMax="666"> - <contour> - <pt x="88" y="518" on="1"/> - <pt x="88" y="666" on="1"/> - <pt x="594" y="666" on="1"/> - <pt x="594" y="518" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 24 values pushed */ - 0 0 3 0 7 1 1 1 4 48 196 2 1 1 0 14 3 2 1 1 0 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="hyphen#1" xMin="88" yMin="518" xMax="594" yMax="666"> - <contour> - <pt x="88" y="518" on="1"/> - <pt x="88" y="666" on="1"/> - <pt x="594" y="666" on="1"/> - <pt x="594" y="518" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 24 values pushed */ - 0 0 3 0 7 1 1 1 4 48 196 2 1 1 0 14 3 2 1 1 0 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="i" xMin="129" yMin="0" xMax="326" yMax="1480"> - <contour> - <pt x="129" y="0" on="1"/> - <pt x="129" y="1086" on="1"/> - <pt x="326" y="1086" on="1"/> - <pt x="326" y="0" on="1"/> - </contour> - <contour> - <pt x="129" y="1283" on="1"/> - <pt x="129" y="1480" on="1"/> - <pt x="326" y="1480" on="1"/> - <pt x="326" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 41 values pushed */ - 0 0 7 4 5 1 5 1 4 48 196 3 0 1 0 6 5 0 2 1 1 14 0 0 7 - 6 3 2 4 3 0 1 4 48 196 5 4 1 0 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="iacute" xMin="79" yMin="0" xMax="548" yMax="1604"> - <component glyphName="dotlessi" x="-1" y="0" flags="0x4"/> - <component glyphName="acute" x="-28" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ibreve" xMin="-106" yMin="0" xMax="560" yMax="1604"> - <contour> - <pt x="128" y="0" on="1"/> - <pt x="128" y="1086" on="1"/> - <pt x="325" y="1086" on="1"/> - <pt x="325" y="0" on="1"/> - </contour> - <contour> - <pt x="-106" y="1604" on="1"/> - <pt x="17" y="1604" on="1"/> - <pt x="38" y="1510" on="0"/> - <pt x="92" y="1470" on="1"/> - <pt x="144" y="1431" on="0"/> - <pt x="227" y="1431" on="1"/> - <pt x="321" y="1431" on="0"/> - <pt x="375" y="1480" on="1"/> - <pt x="418" y="1520" on="0"/> - <pt x="437" y="1604" on="1"/> - <pt x="560" y="1604" on="1"/> - <pt x="544" y="1470" on="0"/> - <pt x="471" y="1389" on="1"/> - <pt x="377" y="1283" on="0"/> - <pt x="227" y="1283" on="1"/> - <pt x="70" y="1283" on="0"/> - <pt x="-25" y="1398" on="1"/> - <pt x="-90" y="1476" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 46 values pushed */ - 0 0 9 40 18 48 196 14 13 5 4 4 13 18 1 3 0 1 0 2 1 1 14 14 13 - 2 13 2 5 4 0 0 0 3 2 4 1 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="icircumflex" xMin="-123" yMin="0" xMax="577" yMax="1604"> - <component glyphName="dotlessi" x="-1" y="0" flags="0x4"/> - <component glyphName="circumflex" x="-114" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="idieresis" xMin="-56" yMin="0" xMax="512" yMax="1456"> - <contour> - <pt x="129" y="0" on="1"/> - <pt x="129" y="1086" on="1"/> - <pt x="326" y="1086" on="1"/> - <pt x="326" y="0" on="1"/> - </contour> - <contour> - <pt x="-56" y="1283" on="1"/> - <pt x="-56" y="1456" on="1"/> - <pt x="117" y="1456" on="1"/> - <pt x="117" y="1283" on="1"/> - </contour> - <contour> - <pt x="339" y="1283" on="1"/> - <pt x="339" y="1456" on="1"/> - <pt x="512" y="1456" on="1"/> - <pt x="512" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 59 values pushed */ - 0 0 11 8 7 4 13 3 5 1 4 48 196 10 9 6 5 3 3 0 1 2 0 2 1 - 1 14 0 0 9 8 13 1 10 7 6 13 1 4 3 2 4 1 0 3 4 48 196 11 10 - 1 5 4 1 1 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="igrave" xMin="-94" yMin="0" xMax="375" yMax="1604"> - <component glyphName="dotlessi" x="-1" y="0" flags="0x4"/> - <component glyphName="grave" x="-200" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ij" xMin="129" yMin="-419" xMax="786" yMax="1480"> - <component glyphName="i" x="0" y="0" flags="0x4"/> - <component glyphName="j" x="455" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="imacron" xMin="-94" yMin="0" xMax="548" yMax="1431"> - <component glyphName="dotlessi" x="-1" y="0" flags="0x4"/> - <component glyphName="macron" x="-114" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="iogonek" xMin="61" yMin="-370" xMax="403" yMax="1480"> - <component glyphName="i" x="0" y="0" flags="0x4"/> - <component glyphName="ogonek" x="-109" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="itilde" xMin="-106" yMin="0" xMax="560" yMax="1517"> - <contour> - <pt x="128" y="0" on="1"/> - <pt x="128" y="1086" on="1"/> - <pt x="325" y="1086" on="1"/> - <pt x="325" y="0" on="1"/> - </contour> - <contour> - <pt x="-106" y="1283" on="1"/> - <pt x="-99" y="1376" on="0"/> - <pt x="-74" y="1427" on="1"/> - <pt x="-28" y="1517" on="0"/> - <pt x="81" y="1517" on="1"/> - <pt x="153" y="1517" on="0"/> - <pt x="214" y="1479" on="1"/> - <pt x="274" y="1442" on="1"/> - <pt x="331" y="1407" on="0"/> - <pt x="361" y="1407" on="1"/> - <pt x="426" y="1407" on="0"/> - <pt x="437" y="1517" on="1"/> - <pt x="560" y="1517" on="1"/> - <pt x="553" y="1423" on="0"/> - <pt x="528" y="1373" on="1"/> - <pt x="483" y="1283" on="0"/> - <pt x="375" y="1283" on="1"/> - <pt x="303" y="1283" on="0"/> - <pt x="240" y="1322" on="1"/> - <pt x="180" y="1359" on="1"/> - <pt x="125" y="1393" on="0"/> - <pt x="93" y="1393" on="1"/> - <pt x="28" y="1393" on="0"/> - <pt x="17" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 60 values pushed */ - 0 0 25 6 8 13 6 20 48 196 8 0 20 1 27 20 4 3 0 1 3 0 1 16 15 - 2 13 0 0 3 0 1 0 2 1 1 14 16 15 2 13 2 27 4 0 0 0 3 2 5 - 1 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MDAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="j" xMin="-155" yMin="-419" xMax="331" yMax="1480"> - <contour> - <pt x="-155" y="-387" on="1"/> - <pt x="-155" y="-231" on="1"/> - <pt x="-75" y="-271" on="0"/> - <pt x="-5" y="-271" on="1"/> - <pt x="92" y="-271" on="0"/> - <pt x="115" y="-197" on="1"/> - <pt x="133" y="-136" on="0"/> - <pt x="133" y="0" on="1"/> - <pt x="133" y="1086" on="1"/> - <pt x="331" y="1086" on="1"/> - <pt x="331" y="0" on="1"/> - <pt x="331" y="-419" on="0"/> - <pt x="11" y="-419" on="1"/> - <pt x="-77" y="-419" on="0"/> - </contour> - <contour> - <pt x="133" y="1283" on="1"/> - <pt x="133" y="1480" on="1"/> - <pt x="331" y="1480" on="1"/> - <pt x="331" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 58 values pushed */ - 0 0 3 40 12 48 196 1 10 7 1 0 4 13 12 2 0 0 0 17 14 5 1 15 1 - 4 48 196 16 15 0 9 8 1 14 0 0 15 14 8 7 4 3 9 1 4 48 196 17 16 - 10 9 3 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - MIAP[1] - ALIGNRP[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="jcircumflex" xMin="-155" yMin="-419" xMax="565" yMax="1604"> - <contour> - <pt x="-155" y="-387" on="1"/> - <pt x="-155" y="-231" on="1"/> - <pt x="-75" y="-271" on="0"/> - <pt x="-5" y="-271" on="1"/> - <pt x="92" y="-271" on="0"/> - <pt x="115" y="-197" on="1"/> - <pt x="133" y="-136" on="0"/> - <pt x="133" y="0" on="1"/> - <pt x="133" y="1086" on="1"/> - <pt x="331" y="1086" on="1"/> - <pt x="331" y="0" on="1"/> - <pt x="331" y="-419" on="0"/> - <pt x="11" y="-419" on="1"/> - <pt x="-77" y="-419" on="0"/> - </contour> - <contour> - <pt x="-134" y="1283" on="1"/> - <pt x="106" y="1604" on="1"/> - <pt x="325" y="1604" on="1"/> - <pt x="565" y="1283" on="1"/> - <pt x="417" y="1283" on="1"/> - <pt x="217" y="1485" on="1"/> - <pt x="214" y="1485" on="1"/> - <pt x="14" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 75 values pushed */ - 0 0 3 40 12 48 196 20 19 2 15 14 3 1 10 7 1 0 4 13 12 2 0 16 15 - 1 21 18 17 14 3 2 0 9 8 1 14 20 19 16 3 9 7 3 21 15 14 3 7 0 - 3 18 17 2 13 9 0 0 10 9 4 1 7 1 4 48 196 8 7 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="k" xMin="154" yMin="0" xMax="1006" yMax="1579"> - <contour> - <pt x="154" y="0" on="1"/> - <pt x="154" y="1579" on="1"/> - <pt x="351" y="1579" on="1"/> - <pt x="351" y="559" on="1"/> - <pt x="715" y="1086" on="1"/> - <pt x="903" y="1086" on="1"/> - <pt x="556" y="573" on="1"/> - <pt x="1006" y="0" on="1"/> - <pt x="766" y="0" on="1"/> - <pt x="351" y="557" on="1"/> - <pt x="351" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 46 values pushed */ - 9 6 3 3 4 0 3 2 1 1 10 8 7 0 3 2 0 5 4 1 14 8 7 6 5 - 4 5 13 2 0 0 10 9 3 2 4 3 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="kcommaaccent" xMin="154" yMin="-432" xMax="1006" yMax="1579"> - <component glyphName="k" x="0" y="0" flags="0x4"/> - <component glyphName="Unterkomma" x="218" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="kgreenlandic" xMin="154" yMin="0" xMax="1006" yMax="1086"> - <contour> - <pt x="154" y="0" on="1"/> - <pt x="154" y="1086" on="1"/> - <pt x="351" y="1086" on="1"/> - <pt x="351" y="559" on="1"/> - <pt x="715" y="1086" on="1"/> - <pt x="903" y="1086" on="1"/> - <pt x="556" y="573" on="1"/> - <pt x="1006" y="0" on="1"/> - <pt x="766" y="0" on="1"/> - <pt x="351" y="557" on="1"/> - <pt x="351" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 45 values pushed */ - 9 6 3 3 1 0 3 10 8 7 0 3 0 5 4 2 1 1 3 14 8 7 6 5 4 - 5 13 2 0 0 10 9 3 2 4 3 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="l" xMin="129" yMin="0" xMax="326" yMax="1579"> - <contour> - <pt x="129" y="0" on="1"/> - <pt x="129" y="1579" on="1"/> - <pt x="326" y="1579" on="1"/> - <pt x="326" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 24 values pushed */ - 2 1 1 3 0 1 2 0 14 0 0 3 2 4 1 0 1 4 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="lacute" xMin="79" yMin="0" xMax="548" yMax="1999"> - <component glyphName="l" x="-1" y="0" flags="0x4"/> - <component glyphName="acute" x="-28" y="395" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="lcaron" xMin="129" yMin="0" xMax="610" yMax="1579"> - <contour> - <pt x="129" y="0" on="1"/> - <pt x="129" y="1579" on="1"/> - <pt x="326" y="1579" on="1"/> - <pt x="326" y="0" on="1"/> - </contour> - <contour> - <pt x="413" y="1125" on="1"/> - <pt x="413" y="1184" on="1"/> - <pt x="489" y="1205" on="0"/> - <pt x="489" y="1365" on="1"/> - <pt x="489" y="1382" on="1"/> - <pt x="413" y="1382" on="1"/> - <pt x="413" y="1579" on="1"/> - <pt x="610" y="1579" on="1"/> - <pt x="610" y="1408" on="1"/> - <pt x="609" y="1146" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 53 values pushed */ - 12 9 8 7 5 4 6 1 0 3 11 10 2 1 3 3 0 1 2 0 14 8 7 2 11 - 4 3 0 0 10 9 5 4 4 3 11 3 2 4 1 0 2 4 48 196 12 11 1 1 0 - 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="lcommaaccent" xMin="79" yMin="-432" xMax="421" yMax="1579"> - <component glyphName="l" x="-1" y="0" flags="0x4"/> - <component glyphName="Unterkomma" x="-91" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ldot" xMin="129" yMin="0" xMax="672" yMax="1579"> - <contour> - <pt x="129" y="0" on="1"/> - <pt x="129" y="1579" on="1"/> - <pt x="326" y="1579" on="1"/> - <pt x="326" y="0" on="1"/> - </contour> - <contour> - <pt x="474" y="642" on="1"/> - <pt x="474" y="839" on="1"/> - <pt x="672" y="839" on="1"/> - <pt x="672" y="642" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 47 values pushed */ - 0 0 7 4 5 1 5 1 4 48 196 6 5 1 2 1 1 3 0 1 3 0 14 0 0 - 5 4 4 1 6 3 2 4 1 0 2 4 48 196 7 6 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="less" xMin="104" yMin="99" xMax="1091" yMax="1086"> - <contour> - <pt x="1091" y="99" on="1"/> - <pt x="104" y="592" on="1"/> - <pt x="1091" y="1086" on="1"/> - <pt x="1091" y="920" on="1"/> - <pt x="437" y="593" on="1"/> - <pt x="437" y="591" on="1"/> - <pt x="1091" y="264" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 20 values pushed */ - 6 5 4 3 2 1 0 14 5 4 1 3 13 0 6 3 2 0 3 0 - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="logicalnot" xMin="86" yMin="296" xMax="1073" yMax="888"> - <contour> - <pt x="86" y="740" on="1"/> - <pt x="86" y="888" on="1"/> - <pt x="1073" y="888" on="1"/> - <pt x="1073" y="296" on="1"/> - <pt x="925" y="296" on="1"/> - <pt x="925" y="740" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 39 values pushed */ - 0 0 5 0 7 1 1 1 4 48 196 2 1 1 4 3 1 2 0 14 0 0 5 4 7 - 1 2 1 4 48 196 3 2 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="longs" xMin="8" yMin="0" xMax="512" yMax="1604"> - <contour> - <pt x="144" y="0" on="1"/> - <pt x="144" y="938" on="1"/> - <pt x="8" y="938" on="1"/> - <pt x="8" y="1086" on="1"/> - <pt x="144" y="1086" on="1"/> - <pt x="144" y="1216" on="1"/> - <pt x="144" y="1399" on="0"/> - <pt x="223" y="1501" on="1"/> - <pt x="303" y="1604" on="0"/> - <pt x="446" y="1604" on="1"/> - <pt x="466" y="1604" on="0"/> - <pt x="512" y="1599" on="1"/> - <pt x="512" y="1452" on="1"/> - <pt x="482" y="1456" on="0"/> - <pt x="466" y="1456" on="1"/> - <pt x="341" y="1456" on="0"/> - <pt x="341" y="1237" on="1"/> - <pt x="341" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 48 values pushed */ - 0 0 14 7 9 48 196 16 12 11 5 4 3 2 1 8 13 9 0 17 0 1 0 14 0 - 0 17 16 5 1 0 1 4 48 196 12 11 1 5 4 1 0 3 3 2 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="lslash" xMin="-7" yMin="0" xMax="462" yMax="1579"> - <contour> - <pt x="129" y="0" on="1"/> - <pt x="129" y="721" on="1"/> - <pt x="-7" y="649" on="1"/> - <pt x="-7" y="814" on="1"/> - <pt x="129" y="889" on="1"/> - <pt x="129" y="1579" on="1"/> - <pt x="327" y="1579" on="1"/> - <pt x="327" y="998" on="1"/> - <pt x="462" y="1065" on="1"/> - <pt x="462" y="901" on="1"/> - <pt x="327" y="830" on="1"/> - <pt x="327" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 47 values pushed */ - 10 9 8 7 4 3 2 1 8 5 0 3 6 5 1 11 0 1 2 0 14 0 0 11 10 - 7 6 4 3 0 1 4 48 196 9 8 1 5 4 1 0 3 3 2 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="m" xMin="154" yMin="0" xMax="1564" yMax="1110"> - <contour> - <pt x="154" y="0" on="1"/> - <pt x="154" y="1086" on="1"/> - <pt x="351" y="1086" on="1"/> - <pt x="351" y="882" on="1"/> - <pt x="438" y="1012" on="0"/> - <pt x="494" y="1058" on="1"/> - <pt x="559" y="1110" on="0"/> - <pt x="665" y="1110" on="1"/> - <pt x="795" y="1110" on="0"/> - <pt x="876" y="1026" on="1"/> - <pt x="923" y="977" on="0"/> - <pt x="958" y="882" on="1"/> - <pt x="1046" y="1014" on="0"/> - <pt x="1101" y="1058" on="1"/> - <pt x="1166" y="1110" on="0"/> - <pt x="1273" y="1110" on="1"/> - <pt x="1564" y="1110" on="0"/> - <pt x="1564" y="790" on="1"/> - <pt x="1564" y="0" on="1"/> - <pt x="1367" y="0" on="1"/> - <pt x="1366" y="759" on="1"/> - <pt x="1366" y="946" on="0"/> - <pt x="1222" y="946" on="1"/> - <pt x="1094" y="946" on="0"/> - <pt x="958" y="728" on="1"/> - <pt x="958" y="0" on="1"/> - <pt x="760" y="0" on="1"/> - <pt x="760" y="759" on="1"/> - <pt x="760" y="946" on="0"/> - <pt x="615" y="946" on="1"/> - <pt x="487" y="946" on="0"/> - <pt x="351" y="728" on="1"/> - <pt x="351" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 70 values pushed */ - 0 0 29 29 7 22 29 15 48 196 15 1 7 1 31 27 24 17 11 3 6 1 0 3 32 - 26 25 19 18 0 5 0 2 1 1 14 19 17 11 2 0 0 25 24 11 4 2 26 32 31 - 3 2 4 3 0 2 4 48 196 18 17 1 27 26 1 1 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="macron" xMin="20" yMin="1283" xMax="662" yMax="1431"> - <contour> - <pt x="20" y="1283" on="1"/> - <pt x="20" y="1431" on="1"/> - <pt x="662" y="1431" on="1"/> - <pt x="662" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 24 values pushed */ - 0 0 3 0 7 1 1 1 4 48 196 2 1 1 0 14 3 2 1 1 0 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="macron#1" xMin="99" yMin="1456" xMax="1040" yMax="1604"> - <contour> - <pt x="99" y="1456" on="1"/> - <pt x="99" y="1604" on="1"/> - <pt x="1040" y="1604" on="1"/> - <pt x="1040" y="1456" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 24 values pushed */ - 0 0 3 0 7 1 1 1 4 48 196 2 1 1 0 14 3 2 1 1 0 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="minus" xMin="104" yMin="518" xMax="1091" yMax="666"> - <contour> - <pt x="104" y="518" on="1"/> - <pt x="104" y="666" on="1"/> - <pt x="1091" y="666" on="1"/> - <pt x="1091" y="518" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 24 values pushed */ - 0 0 3 0 7 1 1 1 4 48 196 2 1 1 0 14 3 2 1 1 0 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="mu" xMin="142" yMin="-395" xMax="984" yMax="1086"> - <contour> - <pt x="142" y="1086" on="1"/> - <pt x="339" y="1086" on="1"/> - <pt x="339" y="370" on="1"/> - <pt x="339" y="239" on="0"/> - <pt x="366" y="192" on="1"/> - <pt x="394" y="145" on="0"/> - <pt x="470" y="145" on="1"/> - <pt x="632" y="145" on="0"/> - <pt x="787" y="382" on="1"/> - <pt x="787" y="1086" on="1"/> - <pt x="984" y="1086" on="1"/> - <pt x="984" y="0" on="1"/> - <pt x="787" y="0" on="1"/> - <pt x="787" y="203" on="1"/> - <pt x="629" y="-19" on="0"/> - <pt x="469" y="-19" on="1"/> - <pt x="404" y="-19" on="0"/> - <pt x="339" y="25" on="1"/> - <pt x="339" y="-395" on="1"/> - <pt x="142" y="-395" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 60 values pushed */ - 0 0 6 29 15 48 196 15 2 17 13 8 2 4 0 11 3 12 11 1 19 18 1 2 0 - 10 9 1 0 1 3 14 0 0 13 12 9 8 4 3 10 18 17 2 1 4 3 0 2 4 - 48 196 11 10 1 19 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="multiply" xMin="118" yMin="112" xMax="1078" yMax="1072"> - <contour> - <pt x="118" y="217" on="1"/> - <pt x="493" y="592" on="1"/> - <pt x="118" y="967" on="1"/> - <pt x="223" y="1072" on="1"/> - <pt x="598" y="697" on="1"/> - <pt x="973" y="1072" on="1"/> - <pt x="1078" y="967" on="1"/> - <pt x="703" y="592" on="1"/> - <pt x="1078" y="217" on="1"/> - <pt x="973" y="112" on="1"/> - <pt x="598" y="487" on="1"/> - <pt x="223" y="112" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 30 values pushed */ - 1 11 10 9 8 7 6 5 4 3 2 1 0 12 13 1 0 14 11 10 9 8 7 6 5 - 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="n" xMin="154" yMin="0" xMax="997" yMax="1110"> - <contour> - <pt x="154" y="0" on="1"/> - <pt x="154" y="1086" on="1"/> - <pt x="351" y="1086" on="1"/> - <pt x="351" y="882" on="1"/> - <pt x="424" y="983" on="0"/> - <pt x="495" y="1035" on="1"/> - <pt x="598" y="1110" on="0"/> - <pt x="721" y="1110" on="1"/> - <pt x="997" y="1110" on="0"/> - <pt x="997" y="780" on="1"/> - <pt x="997" y="0" on="1"/> - <pt x="799" y="0" on="1"/> - <pt x="799" y="716" on="1"/> - <pt x="799" y="848" on="0"/> - <pt x="772" y="894" on="1"/> - <pt x="744" y="941" on="0"/> - <pt x="668" y="941" on="1"/> - <pt x="506" y="941" on="0"/> - <pt x="351" y="703" on="1"/> - <pt x="351" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 53 values pushed */ - 0 0 16 30 7 48 196 7 1 18 12 9 3 4 1 0 3 19 11 10 0 3 0 2 1 - 1 14 0 0 12 11 4 1 9 19 18 3 2 4 3 0 2 4 48 196 10 9 1 1 0 - 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="nacute" xMin="154" yMin="0" xMax="997" yMax="1604"> - <component glyphName="n" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="306" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="napostrophe" xMin="0" yMin="0" xMax="1095" yMax="1579"> - <contour> - <pt x="252" y="0" on="1"/> - <pt x="252" y="1086" on="1"/> - <pt x="449" y="1086" on="1"/> - <pt x="449" y="882" on="1"/> - <pt x="522" y="983" on="0"/> - <pt x="593" y="1035" on="1"/> - <pt x="696" y="1110" on="0"/> - <pt x="819" y="1110" on="1"/> - <pt x="1095" y="1110" on="0"/> - <pt x="1095" y="780" on="1"/> - <pt x="1095" y="0" on="1"/> - <pt x="897" y="0" on="1"/> - <pt x="897" y="716" on="1"/> - <pt x="897" y="847" on="0"/> - <pt x="869" y="894" on="1"/> - <pt x="841" y="941" on="0"/> - <pt x="766" y="941" on="1"/> - <pt x="604" y="941" on="0"/> - <pt x="449" y="703" on="1"/> - <pt x="449" y="0" on="1"/> - </contour> - <contour> - <pt x="0" y="1125" on="1"/> - <pt x="0" y="1184" on="1"/> - <pt x="76" y="1205" on="0"/> - <pt x="76" y="1365" on="1"/> - <pt x="76" y="1382" on="1"/> - <pt x="0" y="1382" on="1"/> - <pt x="0" y="1579" on="1"/> - <pt x="197" y="1579" on="1"/> - <pt x="197" y="1408" on="1"/> - <pt x="196" y="1146" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 83 values pushed */ - 0 0 16 30 7 48 196 7 1 28 25 24 23 21 20 6 26 1 3 18 12 9 3 4 1 - 0 3 27 26 1 19 11 10 0 3 2 0 2 1 1 14 24 23 2 27 20 3 0 0 28 - 27 4 1 20 12 11 4 1 9 19 18 3 2 4 3 0 3 4 48 196 26 25 21 20 3 - 10 9 1 1 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="nbhyphen" xMin="88" yMin="518" xMax="594" yMax="666"> - <contour> - <pt x="88" y="518" on="1"/> - <pt x="88" y="666" on="1"/> - <pt x="594" y="666" on="1"/> - <pt x="594" y="518" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 24 values pushed */ - 0 0 3 0 7 1 1 1 4 48 196 2 1 1 0 14 3 2 1 1 0 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ncaron" xMin="154" yMin="0" xMax="997" yMax="1604"> - <component glyphName="n" x="0" y="0" flags="0x4"/> - <component glyphName="caron" x="243" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ncommaaccent" xMin="154" yMin="-432" xMax="997" yMax="1110"> - <component glyphName="n" x="0" y="0" flags="0x4"/> - <component glyphName="Unterkomma" x="243" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="nine" xMin="84" yMin="-38" xMax="1027" yMax="1518"> - <contour> - <pt x="813" y="702" on="1"/> - <pt x="675" y="530" on="0"/> - <pt x="476" y="530" on="1"/> - <pt x="294" y="530" on="0"/> - <pt x="189" y="654" on="1"/> - <pt x="84" y="778" on="0"/> - <pt x="84" y="995" on="1"/> - <pt x="84" y="1235" on="0"/> - <pt x="208" y="1376" on="1"/> - <pt x="331" y="1518" on="0"/> - <pt x="539" y="1518" on="1"/> - <pt x="767" y="1518" on="0"/> - <pt x="897" y="1323" on="1"/> - <pt x="1027" y="1128" on="0"/> - <pt x="1027" y="788" on="1"/> - <pt x="1027" y="400" on="0"/> - <pt x="872" y="181" on="1"/> - <pt x="717" y="-38" on="0"/> - <pt x="443" y="-38" on="1"/> - <pt x="315" y="-38" on="0"/> - <pt x="163" y="18" on="1"/> - <pt x="163" y="190" on="1"/> - <pt x="346" y="111" on="0"/> - <pt x="447" y="111" on="1"/> - <pt x="668" y="111" on="0"/> - <pt x="757" y="333" on="1"/> - <pt x="792" y="420" on="0"/> - <pt x="804" y="529" on="1"/> - <pt x="811" y="587" on="0"/> - </contour> - <contour> - <pt x="522" y="1369" on="1"/> - <pt x="278" y="1369" on="0"/> - <pt x="278" y="1036" on="1"/> - <pt x="278" y="672" on="0"/> - <pt x="529" y="672" on="1"/> - <pt x="653" y="672" on="0"/> - <pt x="729" y="758" on="1"/> - <pt x="806" y="845" on="0"/> - <pt x="806" y="992" on="1"/> - <pt x="806" y="1155" on="0"/> - <pt x="727" y="1262" on="1"/> - <pt x="647" y="1369" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 50 values pushed */ - 0 0 33 40 2 29 40 10 23 40 18 48 196 18 2 10 0 2 1 1 21 20 2 0 4 - 0 2 3 0 0 14 0 0 37 26 14 31 41 6 48 196 0 14 20 6 20 21 20 1 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - SRP0[ ] - MDRP[00100] - MDRP[00000] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="nonbreakingspace"/><!-- contains no outline data --> - - <TTGlyph name="ntilde" xMin="154" yMin="0" xMax="997" yMax="1517"> - <component glyphName="n" x="0" y="0" flags="0x4"/> - <component glyphName="tilde" x="221" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="numbersign" xMin="25" yMin="0" xMax="1114" yMax="1480"> - <contour> - <pt x="125" y="0" on="1"/> - <pt x="236" y="444" on="1"/> - <pt x="25" y="444" on="1"/> - <pt x="49" y="568" on="1"/> - <pt x="267" y="568" on="1"/> - <pt x="354" y="913" on="1"/> - <pt x="118" y="913" on="1"/> - <pt x="143" y="1036" on="1"/> - <pt x="384" y="1036" on="1"/> - <pt x="496" y="1480" on="1"/> - <pt x="623" y="1480" on="1"/> - <pt x="512" y="1036" on="1"/> - <pt x="775" y="1036" on="1"/> - <pt x="886" y="1480" on="1"/> - <pt x="1014" y="1480" on="1"/> - <pt x="903" y="1036" on="1"/> - <pt x="1114" y="1036" on="1"/> - <pt x="1090" y="913" on="1"/> - <pt x="872" y="913" on="1"/> - <pt x="785" y="568" on="1"/> - <pt x="1021" y="568" on="1"/> - <pt x="997" y="444" on="1"/> - <pt x="755" y="444" on="1"/> - <pt x="644" y="0" on="1"/> - <pt x="516" y="0" on="1"/> - <pt x="627" y="444" on="1"/> - <pt x="364" y="444" on="1"/> - <pt x="253" y="0" on="1"/> - </contour> - <contour> - <pt x="394" y="568" on="1"/> - <pt x="658" y="568" on="1"/> - <pt x="745" y="913" on="1"/> - <pt x="481" y="913" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 87 values pushed */ - 14 13 10 9 4 13 7 27 24 23 0 4 13 1 0 0 31 30 18 17 6 5 6 5 7 - 29 28 20 19 4 3 6 5 1 2 4 48 196 16 15 12 11 8 7 5 26 25 22 21 2 - 1 5 2 0 14 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 - 11 10 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="o" xMin="86" yMin="-25" xMax="1052" yMax="1110"> - <contour> - <pt x="569" y="1110" on="1"/> - <pt x="792" y="1110" on="0"/> - <pt x="922" y="958" on="1"/> - <pt x="1052" y="807" on="0"/> - <pt x="1052" y="544" on="1"/> - <pt x="1052" y="277" on="0"/> - <pt x="922" y="126" on="1"/> - <pt x="792" y="-25" on="0"/> - <pt x="562" y="-25" on="1"/> - <pt x="365" y="-25" on="0"/> - <pt x="242" y="100" on="1"/> - <pt x="86" y="257" on="0"/> - <pt x="86" y="543" on="1"/> - <pt x="86" y="806" on="0"/> - <pt x="216" y="958" on="1"/> - <pt x="346" y="1110" on="0"/> - </contour> - <contour> - <pt x="569" y="962" on="1"/> - <pt x="299" y="962" on="0"/> - <pt x="299" y="544" on="1"/> - <pt x="299" y="123" on="0"/> - <pt x="568" y="123" on="1"/> - <pt x="839" y="123" on="0"/> - <pt x="839" y="547" on="1"/> - <pt x="839" y="962" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 27 values pushed */ - 0 0 20 40 8 16 40 0 48 196 8 2 0 1 14 0 0 22 9 4 18 9 12 48 196 - 12 4 - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="oacute" xMin="86" yMin="-25" xMax="1052" yMax="1604"> - <component glyphName="o" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="314" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="obreve" xMin="86" yMin="-25" xMax="1052" yMax="1604"> - <contour> - <pt x="569" y="1110" on="1"/> - <pt x="792" y="1110" on="0"/> - <pt x="922" y="958" on="1"/> - <pt x="1052" y="807" on="0"/> - <pt x="1052" y="544" on="1"/> - <pt x="1052" y="277" on="0"/> - <pt x="922" y="126" on="1"/> - <pt x="792" y="-25" on="0"/> - <pt x="562" y="-25" on="1"/> - <pt x="365" y="-25" on="0"/> - <pt x="242" y="100" on="1"/> - <pt x="86" y="257" on="0"/> - <pt x="86" y="543" on="1"/> - <pt x="86" y="806" on="0"/> - <pt x="216" y="958" on="1"/> - <pt x="346" y="1110" on="0"/> - </contour> - <contour> - <pt x="569" y="962" on="1"/> - <pt x="299" y="962" on="0"/> - <pt x="299" y="544" on="1"/> - <pt x="299" y="123" on="0"/> - <pt x="568" y="123" on="1"/> - <pt x="839" y="123" on="0"/> - <pt x="839" y="547" on="1"/> - <pt x="839" y="962" on="0"/> - </contour> - <contour> - <pt x="236" y="1604" on="1"/> - <pt x="359" y="1604" on="1"/> - <pt x="380" y="1511" on="0"/> - <pt x="434" y="1470" on="1"/> - <pt x="486" y="1431" on="0"/> - <pt x="569" y="1431" on="1"/> - <pt x="663" y="1431" on="0"/> - <pt x="717" y="1480" on="1"/> - <pt x="760" y="1520" on="0"/> - <pt x="779" y="1604" on="1"/> - <pt x="902" y="1604" on="1"/> - <pt x="885" y="1469" on="0"/> - <pt x="813" y="1389" on="1"/> - <pt x="718" y="1283" on="0"/> - <pt x="569" y="1283" on="1"/> - <pt x="412" y="1283" on="0"/> - <pt x="317" y="1398" on="1"/> - <pt x="253" y="1475" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 44 values pushed */ - 0 0 29 7 38 20 7 8 16 7 0 48 196 8 2 0 1 1 34 33 25 24 4 13 38 - 1 0 14 0 0 22 9 4 18 9 12 48 196 34 33 25 24 12 4 - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ocircumflex" xMin="86" yMin="-25" xMax="1052" yMax="1604"> - <component glyphName="o" x="0" y="0" flags="0x4"/> - <component glyphName="circumflex" x="228" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="odieresis" xMin="86" yMin="-25" xMax="1052" yMax="1456"> - <component glyphName="o" x="0" y="0" flags="0x4"/> - <component glyphName="dieresis" x="228" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="oe" xMin="86" yMin="-25" xMax="1812" yMax="1110"> - <contour> - <pt x="990" y="910" on="1"/> - <pt x="1054" y="999" on="0"/> - <pt x="1125" y="1044" on="1"/> - <pt x="1230" y="1110" on="0"/> - <pt x="1375" y="1110" on="1"/> - <pt x="1633" y="1110" on="0"/> - <pt x="1734" y="927" on="1"/> - <pt x="1809" y="791" on="0"/> - <pt x="1812" y="512" on="1"/> - <pt x="1099" y="512" on="1"/> - <pt x="1117" y="321" on="0"/> - <pt x="1191" y="233" on="1"/> - <pt x="1283" y="123" on="0"/> - <pt x="1494" y="123" on="1"/> - <pt x="1649" y="123" on="0"/> - <pt x="1812" y="194" on="1"/> - <pt x="1812" y="37" on="1"/> - <pt x="1620" y="-25" on="0"/> - <pt x="1444" y="-25" on="1"/> - <pt x="1264" y="-25" on="0"/> - <pt x="1157" y="33" on="1"/> - <pt x="1077" y="77" on="0"/> - <pt x="995" y="174" on="1"/> - <pt x="934" y="86" on="0"/> - <pt x="862" y="41" on="1"/> - <pt x="755" y="-25" on="0"/> - <pt x="606" y="-25" on="1"/> - <pt x="368" y="-25" on="0"/> - <pt x="227" y="129" on="1"/> - <pt x="86" y="283" on="0"/> - <pt x="86" y="543" on="1"/> - <pt x="86" y="805" on="0"/> - <pt x="228" y="957" on="1"/> - <pt x="369" y="1110" on="0"/> - <pt x="608" y="1110" on="1"/> - <pt x="764" y="1110" on="0"/> - <pt x="872" y="1035" on="1"/> - <pt x="934" y="992" on="0"/> - </contour> - <contour> - <pt x="608" y="962" on="1"/> - <pt x="295" y="962" on="0"/> - <pt x="295" y="547" on="1"/> - <pt x="295" y="365" on="0"/> - <pt x="356" y="260" on="1"/> - <pt x="435" y="123" on="0"/> - <pt x="610" y="123" on="1"/> - <pt x="898" y="123" on="0"/> - <pt x="898" y="543" on="1"/> - <pt x="898" y="736" on="0"/> - <pt x="838" y="840" on="1"/> - <pt x="768" y="962" on="0"/> - </contour> - <contour> - <pt x="1105" y="648" on="1"/> - <pt x="1602" y="648" on="1"/> - <pt x="1599" y="776" on="0"/> - <pt x="1568" y="844" on="1"/> - <pt x="1513" y="962" on="0"/> - <pt x="1371" y="962" on="1"/> - <pt x="1233" y="962" on="0"/> - <pt x="1166" y="857" on="1"/> - <pt x="1120" y="786" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 77 values pushed */ - 0 0 55 40 4 44 40 26 38 40 34 13 40 18 48 196 34 1 26 2 18 2 4 1 1 - 0 1 50 2 0 1 22 16 15 3 8 2 3 0 0 0 9 8 31 1 50 1 4 48 196 - 51 50 1 0 14 0 0 40 43 30 48 196 51 50 22 9 0 5 13 46 30 8 16 15 8 - 2 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ogonek" xMin="170" yMin="-370" xMax="512" yMax="0"> - <contour> - <pt x="328" y="0" on="1"/> - <pt x="435" y="0" on="1"/> - <pt x="307" y="-80" on="0"/> - <pt x="307" y="-179" on="1"/> - <pt x="307" y="-275" on="0"/> - <pt x="422" y="-275" on="1"/> - <pt x="475" y="-275" on="0"/> - <pt x="512" y="-260" on="1"/> - <pt x="512" y="-341" on="1"/> - <pt x="450" y="-370" on="0"/> - <pt x="372" y="-370" on="1"/> - <pt x="170" y="-370" on="0"/> - <pt x="170" y="-212" on="1"/> - <pt x="170" y="-90" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 25 values pushed */ - 0 0 5 21 10 48 196 10 8 7 1 0 14 0 0 3 42 12 48 196 12 8 7 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ograve" xMin="86" yMin="-25" xMax="1052" yMax="1604"> - <component glyphName="o" x="0" y="0" flags="0x4"/> - <component glyphName="grave" x="142" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ohungarumlaut" xMin="86" yMin="-25" xMax="1121" yMax="1604"> - <component glyphName="o" x="0" y="0" flags="0x4"/> - <component glyphName="hungarumlaut" x="389" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="omacron" xMin="86" yMin="-25" xMax="1052" yMax="1431"> - <component glyphName="o" x="0" y="0" flags="0x4"/> - <component glyphName="macron" x="228" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="one" xMin="230" yMin="0" xMax="1020" yMax="1517"> - <contour> - <pt x="230" y="0" on="1"/> - <pt x="230" y="148" on="1"/> - <pt x="526" y="148" on="1"/> - <pt x="526" y="1316" on="1"/> - <pt x="230" y="1242" on="1"/> - <pt x="230" y="1394" on="1"/> - <pt x="724" y="1517" on="1"/> - <pt x="724" y="148" on="1"/> - <pt x="1020" y="148" on="1"/> - <pt x="1020" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 49 values pushed */ - 6 5 4 3 4 13 1 0 0 8 7 2 1 7 3 0 1 4 48 196 9 0 1 0 14 - 0 0 7 6 4 1 2 1 4 48 196 9 8 1 3 2 1 5 4 1 0 3 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="onehalf" xMin="116" yMin="-37" xMax="1584" yMax="1517"> - <contour> - <pt x="1019" y="0" on="1"/> - <pt x="1019" y="122" on="1"/> - <pt x="1082" y="234" on="0"/> - <pt x="1201" y="341" on="1"/> - <pt x="1271" y="403" on="1"/> - <pt x="1427" y="541" on="0"/> - <pt x="1427" y="663" on="1"/> - <pt x="1427" y="809" on="0"/> - <pt x="1266" y="809" on="1"/> - <pt x="1174" y="809" on="0"/> - <pt x="1041" y="740" on="1"/> - <pt x="1041" y="857" on="1"/> - <pt x="1173" y="910" on="0"/> - <pt x="1292" y="910" on="1"/> - <pt x="1423" y="910" on="0"/> - <pt x="1504" y="842" on="1"/> - <pt x="1584" y="775" on="0"/> - <pt x="1584" y="667" on="1"/> - <pt x="1584" y="523" on="0"/> - <pt x="1400" y="374" on="1"/> - <pt x="1347" y="331" on="1"/> - <pt x="1214" y="222" on="0"/> - <pt x="1191" y="122" on="1"/> - <pt x="1580" y="122" on="1"/> - <pt x="1580" y="0" on="1"/> - </contour> - <contour> - <pt x="140" y="-37" on="1"/> - <pt x="1228" y="1517" on="1"/> - <pt x="1364" y="1517" on="1"/> - <pt x="276" y="-37" on="1"/> - </contour> - <contour> - <pt x="313" y="592" on="1"/> - <pt x="313" y="1351" on="1"/> - <pt x="116" y="1302" on="1"/> - <pt x="116" y="1416" on="1"/> - <pt x="461" y="1503" on="1"/> - <pt x="461" y="592" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 85 values pushed */ - 0 0 8 11 13 48 196 33 32 31 30 27 26 11 10 8 13 13 29 28 25 0 0 0 23 - 22 1 38 2 0 1 4 48 196 34 29 1 24 0 1 2 0 14 0 0 6 37 17 48 196 - 27 26 24 23 22 11 10 1 0 9 13 17 33 32 31 28 25 4 13 29 0 0 34 33 7 - 1 29 1 4 48 196 30 29 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="onequarter" xMin="116" yMin="-37" xMax="1584" yMax="1517"> - <contour> - <pt x="313" y="592" on="1"/> - <pt x="313" y="1351" on="1"/> - <pt x="116" y="1302" on="1"/> - <pt x="116" y="1416" on="1"/> - <pt x="461" y="1503" on="1"/> - <pt x="461" y="592" on="1"/> - </contour> - <contour> - <pt x="1325" y="0" on="1"/> - <pt x="1325" y="242" on="1"/> - <pt x="918" y="242" on="1"/> - <pt x="918" y="355" on="1"/> - <pt x="1321" y="888" on="1"/> - <pt x="1461" y="888" on="1"/> - <pt x="1461" y="359" on="1"/> - <pt x="1584" y="359" on="1"/> - <pt x="1584" y="242" on="1"/> - <pt x="1461" y="242" on="1"/> - <pt x="1461" y="0" on="1"/> - </contour> - <contour> - <pt x="1047" y="359" on="1"/> - <pt x="1325" y="359" on="1"/> - <pt x="1325" y="723" on="1"/> - </contour> - <contour> - <pt x="191" y="-37" on="1"/> - <pt x="1279" y="1517" on="1"/> - <pt x="1414" y="1517" on="1"/> - <pt x="326" y="-37" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 107 values pushed */ - 19 10 0 2 9 12 7 2 22 21 4 3 2 1 6 13 10 23 20 16 6 4 13 7 0 - 0 18 17 13 12 38 3 7 1 4 48 196 11 10 1 15 14 8 7 3 5 0 1 3 0 - 14 22 11 6 2 21 17 10 9 8 5 6 4 3 23 4 0 2 14 13 2 13 11 20 3 - 2 3 13 0 0 0 19 18 7 6 22 3 11 5 4 7 1 0 2 4 48 196 16 15 12 - 11 3 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="onesuperior" xMin="123" yMin="592" xMax="468" yMax="1503"> - <contour> - <pt x="320" y="592" on="1"/> - <pt x="320" y="1351" on="1"/> - <pt x="123" y="1302" on="1"/> - <pt x="123" y="1416" on="1"/> - <pt x="468" y="1503" on="1"/> - <pt x="468" y="592" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 30 values pushed */ - 4 3 2 1 4 13 0 5 0 1 0 14 3 2 0 0 0 1 0 7 1 4 1 4 48 - 196 5 4 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ordfeminine" xMin="86" yMin="822" xMax="712" yMax="1518"> - <contour> - <pt x="485" y="915" on="1"/> - <pt x="383" y="822" on="0"/> - <pt x="281" y="822" on="1"/> - <pt x="196" y="822" on="0"/> - <pt x="141" y="875" on="1"/> - <pt x="86" y="929" on="0"/> - <pt x="86" y="1009" on="1"/> - <pt x="86" y="1237" on="0"/> - <pt x="428" y="1237" on="1"/> - <pt x="476" y="1237" on="1"/> - <pt x="476" y="1307" on="1"/> - <pt x="476" y="1417" on="0"/> - <pt x="355" y="1417" on="1"/> - <pt x="258" y="1417" on="0"/> - <pt x="145" y="1358" on="1"/> - <pt x="145" y="1469" on="1"/> - <pt x="272" y="1518" on="0"/> - <pt x="383" y="1518" on="1"/> - <pt x="625" y="1518" on="0"/> - <pt x="625" y="1311" on="1"/> - <pt x="625" y="1013" on="1"/> - <pt x="625" y="919" on="0"/> - <pt x="680" y="922" on="1"/> - <pt x="686" y="922" on="1"/> - <pt x="689" y="922" on="0"/> - <pt x="695" y="923" on="1"/> - <pt x="700" y="923" on="0"/> - <pt x="706" y="924" on="1"/> - <pt x="712" y="841" on="1"/> - <pt x="661" y="822" on="0"/> - <pt x="616" y="822" on="1"/> - <pt x="518" y="822" on="0"/> - <pt x="490" y="915" on="1"/> - </contour> - <contour> - <pt x="476" y="996" on="1"/> - <pt x="476" y="1150" on="1"/> - <pt x="438" y="1150" on="1"/> - <pt x="234" y="1150" on="0"/> - <pt x="234" y="1026" on="1"/> - <pt x="234" y="932" on="0"/> - <pt x="331" y="932" on="1"/> - <pt x="399" y="932" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 80 values pushed */ - 0 0 39 16 2 12 20 17 48 196 17 0 1 35 34 33 32 28 27 20 19 15 14 10 9 - 8 0 14 13 30 22 2 3 12 0 0 14 0 0 37 7 6 48 196 32 0 2 19 9 3 - 28 27 2 13 19 35 15 14 8 4 13 6 9 0 0 34 33 10 9 7 3 19 1 4 48 - 196 20 19 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - LOOPCALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ordmasculine" xMin="74" yMin="822" xMax="673" yMax="1517"> - <contour> - <pt x="374" y="1517" on="1"/> - <pt x="512" y="1517" on="0"/> - <pt x="593" y="1424" on="1"/> - <pt x="673" y="1331" on="0"/> - <pt x="673" y="1171" on="1"/> - <pt x="673" y="1008" on="0"/> - <pt x="593" y="915" on="1"/> - <pt x="512" y="822" on="0"/> - <pt x="371" y="822" on="1"/> - <pt x="248" y="822" on="0"/> - <pt x="171" y="899" on="1"/> - <pt x="74" y="995" on="0"/> - <pt x="74" y="1170" on="1"/> - <pt x="74" y="1330" on="0"/> - <pt x="155" y="1423" on="1"/> - <pt x="236" y="1517" on="0"/> - </contour> - <contour> - <pt x="374" y="1416" on="1"/> - <pt x="231" y="1416" on="0"/> - <pt x="231" y="1170" on="1"/> - <pt x="231" y="924" on="0"/> - <pt x="374" y="924" on="1"/> - <pt x="516" y="924" on="0"/> - <pt x="516" y="1172" on="1"/> - <pt x="516" y="1416" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 29 values pushed */ - 0 0 20 20 8 16 20 0 48 196 0 0 1 8 0 0 14 0 0 22 15 4 18 15 12 - 48 196 12 4 - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="oslash" xMin="143" yMin="-25" xMax="1109" yMax="1110"> - <contour> - <pt x="348" y="59" on="1"/> - <pt x="287" y="-25" on="1"/> - <pt x="143" y="-25" on="1"/> - <pt x="264" y="142" on="1"/> - <pt x="143" y="309" on="0"/> - <pt x="143" y="544" on="1"/> - <pt x="143" y="808" on="0"/> - <pt x="273" y="959" on="1"/> - <pt x="403" y="1110" on="0"/> - <pt x="630" y="1110" on="1"/> - <pt x="790" y="1110" on="0"/> - <pt x="904" y="1027" on="1"/> - <pt x="965" y="1110" on="1"/> - <pt x="1109" y="1110" on="1"/> - <pt x="988" y="943" on="1"/> - <pt x="1109" y="775" on="0"/> - <pt x="1109" y="542" on="1"/> - <pt x="1109" y="280" on="0"/> - <pt x="979" y="128" on="1"/> - <pt x="850" y="-25" on="0"/> - <pt x="625" y="-25" on="1"/> - <pt x="465" y="-25" on="0"/> - </contour> - <contour> - <pt x="450" y="201" on="1"/> - <pt x="452" y="199" on="1"/> - <pt x="494" y="157" on="0"/> - <pt x="529" y="142" on="1"/> - <pt x="574" y="123" on="0"/> - <pt x="625" y="123" on="1"/> - <pt x="896" y="123" on="0"/> - <pt x="896" y="544" on="1"/> - <pt x="896" y="669" on="0"/> - <pt x="866" y="775" on="1"/> - </contour> - <contour> - <pt x="802" y="885" on="1"/> - <pt x="800" y="887" on="1"/> - <pt x="725" y="962" on="0"/> - <pt x="627" y="962" on="1"/> - <pt x="356" y="962" on="0"/> - <pt x="356" y="547" on="1"/> - <pt x="356" y="405" on="0"/> - <pt x="386" y="310" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 63 values pushed */ - 0 0 35 40 9 27 40 20 48 196 20 2 9 1 1 1 39 32 31 22 14 11 3 0 8 - 1 2 3 0 0 13 12 1 2 1 1 2 0 14 0 0 37 9 5 29 9 16 48 196 39 - 32 31 22 16 14 13 12 11 5 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="otilde" xMin="86" yMin="-25" xMax="1052" yMax="1517"> - <component glyphName="o" x="0" y="0" flags="0x4"/> - <component glyphName="tilde" x="228" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="p" xMin="154" yMin="-395" xMax="1052" yMax="1110"> - <contour> - <pt x="351" y="-395" on="1"/> - <pt x="154" y="-395" on="1"/> - <pt x="154" y="1086" on="1"/> - <pt x="351" y="1086" on="1"/> - <pt x="351" y="882" on="1"/> - <pt x="407" y="984" on="0"/> - <pt x="469" y="1036" on="1"/> - <pt x="557" y="1110" on="0"/> - <pt x="676" y="1110" on="1"/> - <pt x="845" y="1110" on="0"/> - <pt x="948" y="963" on="1"/> - <pt x="1052" y="816" on="0"/> - <pt x="1052" y="572" on="1"/> - <pt x="1052" y="287" on="0"/> - <pt x="918" y="131" on="1"/> - <pt x="785" y="-25" on="0"/> - <pt x="540" y="-25" on="1"/> - <pt x="449" y="-25" on="0"/> - <pt x="351" y="0" on="1"/> - </contour> - <contour> - <pt x="351" y="703" on="1"/> - <pt x="351" y="149" on="1"/> - <pt x="488" y="123" on="0"/> - <pt x="557" y="123" on="1"/> - <pt x="839" y="123" on="0"/> - <pt x="839" y="552" on="1"/> - <pt x="839" y="733" on="0"/> - <pt x="783" y="835" on="1"/> - <pt x="728" y="938" on="0"/> - <pt x="634" y="938" on="1"/> - <pt x="508" y="938" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 65 values pushed */ - 0 0 28 30 8 22 40 16 48 196 16 2 8 1 1 20 19 4 3 2 2 3 0 1 18 - 2 0 2 0 1 0 1 0 3 2 1 14 0 0 24 9 12 48 196 12 0 0 0 20 19 - 18 4 3 0 4 5 1 1 4 48 196 2 1 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="paragraph" xMin="88" yMin="-296" xMax="902" yMax="1480"> - <contour> - <pt x="507" y="-296" on="1"/> - <pt x="507" y="740" on="1"/> - <pt x="325" y="757" on="0"/> - <pt x="222" y="843" on="1"/> - <pt x="88" y="954" on="0"/> - <pt x="88" y="1155" on="1"/> - <pt x="88" y="1331" on="0"/> - <pt x="184" y="1405" on="1"/> - <pt x="280" y="1480" on="0"/> - <pt x="507" y="1480" on="1"/> - <pt x="902" y="1480" on="1"/> - <pt x="902" y="-296" on="1"/> - <pt x="779" y="-296" on="1"/> - <pt x="779" y="1357" on="1"/> - <pt x="631" y="1357" on="1"/> - <pt x="631" y="-296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 57 values pushed */ - 1 1 13 2 2 0 1 15 12 11 0 4 13 2 0 0 0 14 13 6 1 9 1 4 48 - 196 10 9 0 14 5 0 0 0 13 12 19 1 10 9 1 0 19 2 14 2 4 48 196 11 - 10 1 15 14 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="parenleft" xMin="131" yMin="-296" xMax="600" yMax="1579"> - <contour> - <pt x="600" y="-160" on="1"/> - <pt x="600" y="-296" on="1"/> - <pt x="400" y="-154" on="0"/> - <pt x="284" y="55" on="1"/> - <pt x="131" y="328" on="0"/> - <pt x="131" y="642" on="1"/> - <pt x="131" y="970" on="0"/> - <pt x="297" y="1252" on="1"/> - <pt x="411" y="1444" on="0"/> - <pt x="600" y="1579" on="1"/> - <pt x="600" y="1443" on="1"/> - <pt x="465" y="1293" on="0"/> - <pt x="404" y="1136" on="1"/> - <pt x="328" y="941" on="0"/> - <pt x="328" y="642" on="1"/> - <pt x="328" y="330" on="0"/> - <pt x="411" y="129" on="1"/> - <pt x="473" y="-18" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 17 values pushed */ - 10 9 1 0 14 0 0 14 41 5 48 196 10 9 5 1 0 - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="parenright" xMin="82" yMin="-296" xMax="551" yMax="1579"> - <contour> - <pt x="82" y="1443" on="1"/> - <pt x="82" y="1579" on="1"/> - <pt x="282" y="1437" on="0"/> - <pt x="399" y="1228" on="1"/> - <pt x="551" y="956" on="0"/> - <pt x="551" y="642" on="1"/> - <pt x="551" y="312" on="0"/> - <pt x="385" y="31" on="1"/> - <pt x="271" y="-161" on="0"/> - <pt x="82" y="-296" on="1"/> - <pt x="82" y="-160" on="1"/> - <pt x="217" y="-9" on="0"/> - <pt x="278" y="148" on="1"/> - <pt x="353" y="343" on="0"/> - <pt x="353" y="642" on="1"/> - <pt x="353" y="953" on="0"/> - <pt x="270" y="1154" on="1"/> - <pt x="210" y="1299" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 17 values pushed */ - 10 9 1 0 14 0 0 14 41 5 48 196 10 9 5 1 0 - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="percent" xMin="112" yMin="-37" xMax="1709" yMax="1517"> - <contour> - <pt x="250" y="-37" on="1"/> - <pt x="1416" y="1517" on="1"/> - <pt x="1570" y="1517" on="1"/> - <pt x="405" y="-37" on="1"/> - </contour> - <contour> - <pt x="429" y="1480" on="1"/> - <pt x="576" y="1480" on="0"/> - <pt x="661" y="1381" on="1"/> - <pt x="747" y="1281" on="0"/> - <pt x="747" y="1110" on="1"/> - <pt x="747" y="939" on="0"/> - <pt x="661" y="840" on="1"/> - <pt x="576" y="740" on="0"/> - <pt x="430" y="740" on="1"/> - <pt x="282" y="740" on="0"/> - <pt x="197" y="840" on="1"/> - <pt x="112" y="940" on="0"/> - <pt x="112" y="1115" on="1"/> - <pt x="112" y="1266" on="0"/> - <pt x="182" y="1362" on="1"/> - <pt x="270" y="1480" on="0"/> - </contour> - <contour> - <pt x="429" y="1382" on="1"/> - <pt x="356" y="1382" on="0"/> - <pt x="311" y="1308" on="1"/> - <pt x="266" y="1233" on="0"/> - <pt x="266" y="1116" on="1"/> - <pt x="266" y="1001" on="0"/> - <pt x="303" y="929" on="1"/> - <pt x="348" y="839" on="0"/> - <pt x="429" y="839" on="1"/> - <pt x="503" y="839" on="0"/> - <pt x="548" y="914" on="1"/> - <pt x="593" y="989" on="0"/> - <pt x="593" y="1110" on="1"/> - <pt x="593" y="1233" on="0"/> - <pt x="548" y="1307" on="1"/> - <pt x="502" y="1382" on="0"/> - </contour> - <contour> - <pt x="1392" y="740" on="1"/> - <pt x="1539" y="740" on="0"/> - <pt x="1624" y="640" on="1"/> - <pt x="1709" y="541" on="0"/> - <pt x="1709" y="370" on="1"/> - <pt x="1709" y="199" on="0"/> - <pt x="1624" y="100" on="1"/> - <pt x="1538" y="0" on="0"/> - <pt x="1392" y="0" on="1"/> - <pt x="1244" y="0" on="0"/> - <pt x="1159" y="100" on="1"/> - <pt x="1074" y="200" on="0"/> - <pt x="1074" y="375" on="1"/> - <pt x="1074" y="527" on="0"/> - <pt x="1144" y="622" on="1"/> - <pt x="1232" y="740" on="0"/> - </contour> - <contour> - <pt x="1392" y="642" on="1"/> - <pt x="1318" y="642" on="0"/> - <pt x="1273" y="568" on="1"/> - <pt x="1228" y="493" on="0"/> - <pt x="1228" y="376" on="1"/> - <pt x="1228" y="262" on="0"/> - <pt x="1265" y="189" on="1"/> - <pt x="1309" y="99" on="0"/> - <pt x="1392" y="99" on="1"/> - <pt x="1465" y="99" on="0"/> - <pt x="1510" y="174" on="1"/> - <pt x="1555" y="249" on="0"/> - <pt x="1555" y="370" on="1"/> - <pt x="1555" y="493" on="0"/> - <pt x="1510" y="567" on="1"/> - <pt x="1465" y="642" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 65 values pushed */ - 0 0 60 21 44 52 21 36 28 21 12 20 21 4 48 196 44 2 4 0 36 12 1 1 36 - 12 2 0 2 3 0 0 2 1 1 3 0 1 2 0 14 0 0 64 15 40 56 15 48 32 - 15 8 24 15 16 48 196 48 40 16 8 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[1] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MDAP[1] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="period" xMin="161" yMin="0" xMax="408" yMax="247"> - <contour> - <pt x="161" y="0" on="1"/> - <pt x="161" y="247" on="1"/> - <pt x="408" y="247" on="1"/> - <pt x="408" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 31 values pushed */ - 0 0 2 1 8 1 0 1 4 48 196 3 0 1 0 14 0 0 3 2 8 1 0 1 4 - 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="periodcentered" xMin="161" yMin="491" xMax="408" yMax="738"> - <contour> - <pt x="161" y="491" on="1"/> - <pt x="161" y="738" on="1"/> - <pt x="408" y="738" on="1"/> - <pt x="408" y="491" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 31 values pushed */ - 0 0 3 0 8 1 1 1 4 48 196 2 1 1 0 14 0 0 3 2 8 1 0 1 4 - 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="periodcentered#1" xMin="161" yMin="491" xMax="408" yMax="738"> - <contour> - <pt x="161" y="491" on="1"/> - <pt x="161" y="738" on="1"/> - <pt x="408" y="738" on="1"/> - <pt x="408" y="491" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 31 values pushed */ - 0 0 3 0 8 1 1 1 4 48 196 2 1 1 0 14 0 0 3 2 8 1 0 1 4 - 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="perthousand" xMin="25" yMin="-37" xMax="2024" yMax="1517"> - <contour> - <pt x="340" y="1480" on="1"/> - <pt x="483" y="1480" on="0"/> - <pt x="569" y="1380" on="1"/> - <pt x="654" y="1281" on="0"/> - <pt x="654" y="1111" on="1"/> - <pt x="654" y="938" on="0"/> - <pt x="569" y="839" on="1"/> - <pt x="484" y="740" on="0"/> - <pt x="335" y="740" on="1"/> - <pt x="209" y="740" on="0"/> - <pt x="127" y="822" on="1"/> - <pt x="25" y="925" on="0"/> - <pt x="25" y="1110" on="1"/> - <pt x="25" y="1280" on="0"/> - <pt x="110" y="1380" on="1"/> - <pt x="196" y="1480" on="0"/> - </contour> - <contour> - <pt x="338" y="1382" on="1"/> - <pt x="173" y="1382" on="0"/> - <pt x="173" y="1111" on="1"/> - <pt x="173" y="839" on="0"/> - <pt x="340" y="839" on="1"/> - <pt x="506" y="839" on="0"/> - <pt x="506" y="1109" on="1"/> - <pt x="506" y="1235" on="0"/> - <pt x="461" y="1308" on="1"/> - <pt x="415" y="1382" on="0"/> - </contour> - <contour> - <pt x="1006" y="740" on="1"/> - <pt x="1150" y="740" on="0"/> - <pt x="1235" y="640" on="1"/> - <pt x="1320" y="541" on="0"/> - <pt x="1320" y="371" on="1"/> - <pt x="1320" y="198" on="0"/> - <pt x="1235" y="99" on="1"/> - <pt x="1150" y="0" on="0"/> - <pt x="1002" y="0" on="1"/> - <pt x="874" y="0" on="0"/> - <pt x="793" y="81" on="1"/> - <pt x="691" y="184" on="0"/> - <pt x="691" y="370" on="1"/> - <pt x="691" y="540" on="0"/> - <pt x="776" y="640" on="1"/> - <pt x="862" y="740" on="0"/> - </contour> - <contour> - <pt x="1004" y="642" on="1"/> - <pt x="839" y="642" on="0"/> - <pt x="839" y="370" on="1"/> - <pt x="839" y="99" on="0"/> - <pt x="1006" y="99" on="1"/> - <pt x="1172" y="99" on="0"/> - <pt x="1172" y="369" on="1"/> - <pt x="1172" y="495" on="0"/> - <pt x="1127" y="569" on="1"/> - <pt x="1081" y="642" on="0"/> - </contour> - <contour> - <pt x="1709" y="740" on="1"/> - <pt x="1853" y="740" on="0"/> - <pt x="1938" y="640" on="1"/> - <pt x="2024" y="541" on="0"/> - <pt x="2024" y="372" on="1"/> - <pt x="2024" y="198" on="0"/> - <pt x="1938" y="99" on="1"/> - <pt x="1852" y="0" on="0"/> - <pt x="1706" y="0" on="1"/> - <pt x="1578" y="0" on="0"/> - <pt x="1496" y="82" on="1"/> - <pt x="1394" y="185" on="0"/> - <pt x="1394" y="370" on="1"/> - <pt x="1394" y="540" on="0"/> - <pt x="1479" y="640" on="1"/> - <pt x="1565" y="740" on="0"/> - </contour> - <contour> - <pt x="1707" y="642" on="1"/> - <pt x="1542" y="642" on="0"/> - <pt x="1542" y="370" on="1"/> - <pt x="1542" y="99" on="0"/> - <pt x="1709" y="99" on="1"/> - <pt x="1876" y="99" on="0"/> - <pt x="1876" y="370" on="1"/> - <pt x="1876" y="495" on="0"/> - <pt x="1830" y="569" on="1"/> - <pt x="1785" y="642" on="0"/> - </contour> - <contour> - <pt x="61" y="-37" on="1"/> - <pt x="1149" y="1517" on="1"/> - <pt x="1284" y="1517" on="1"/> - <pt x="196" y="-37" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 87 values pushed */ - 0 0 72 21 60 68 21 52 46 21 34 42 21 26 20 21 8 16 21 0 48 196 60 2 34 - 2 0 0 52 26 8 1 1 52 26 8 3 0 2 3 0 0 1 80 79 2 13 0 0 1 - 81 78 2 0 14 0 0 74 7 56 70 7 64 48 7 30 44 7 38 22 7 4 18 7 12 - 48 196 81 80 79 78 64 56 38 30 12 4 - MDAP[1] - MDAP[1] - MDAP[1] - MDAP[1] - MDAP[1] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MDAP[1] - MDAP[1] - MDAP[1] - MIAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="plus" xMin="104" yMin="99" xMax="1091" yMax="1086"> - <contour> - <pt x="523" y="99" on="1"/> - <pt x="523" y="518" on="1"/> - <pt x="104" y="518" on="1"/> - <pt x="104" y="666" on="1"/> - <pt x="523" y="666" on="1"/> - <pt x="523" y="1086" on="1"/> - <pt x="671" y="1086" on="1"/> - <pt x="671" y="666" on="1"/> - <pt x="1091" y="666" on="1"/> - <pt x="1091" y="518" on="1"/> - <pt x="671" y="518" on="1"/> - <pt x="671" y="99" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 53 values pushed */ - 0 0 10 9 2 1 7 3 3 1 4 48 196 8 7 4 3 3 11 0 1 2 0 6 5 - 1 14 0 0 11 10 7 6 7 3 0 1 4 48 196 9 8 1 5 4 1 0 3 3 2 - 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="plusminus" xMin="104" yMin="0" xMax="1091" yMax="1184"> - <contour> - <pt x="523" y="296" on="1"/> - <pt x="523" y="666" on="1"/> - <pt x="104" y="666" on="1"/> - <pt x="104" y="814" on="1"/> - <pt x="523" y="814" on="1"/> - <pt x="523" y="1184" on="1"/> - <pt x="672" y="1184" on="1"/> - <pt x="672" y="814" on="1"/> - <pt x="1091" y="814" on="1"/> - <pt x="1091" y="666" on="1"/> - <pt x="672" y="666" on="1"/> - <pt x="672" y="296" on="1"/> - </contour> - <contour> - <pt x="104" y="0" on="1"/> - <pt x="104" y="148" on="1"/> - <pt x="1091" y="148" on="1"/> - <pt x="1091" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 65 values pushed */ - 0 0 14 13 7 1 12 10 9 2 1 7 3 3 2 4 48 196 15 12 1 6 5 1 8 - 7 4 3 3 11 0 1 4 0 14 0 0 11 10 7 6 7 3 0 1 4 48 196 15 14 - 9 8 3 5 4 1 0 3 13 12 3 2 3 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="q" xMin="86" yMin="-395" xMax="984" yMax="1110"> - <contour> - <pt x="787" y="1086" on="1"/> - <pt x="984" y="1086" on="1"/> - <pt x="984" y="-395" on="1"/> - <pt x="787" y="-395" on="1"/> - <pt x="787" y="203" on="1"/> - <pt x="731" y="101" on="0"/> - <pt x="669" y="49" on="1"/> - <pt x="581" y="-25" on="0"/> - <pt x="462" y="-25" on="1"/> - <pt x="293" y="-25" on="0"/> - <pt x="190" y="123" on="1"/> - <pt x="86" y="270" on="0"/> - <pt x="86" y="514" on="1"/> - <pt x="86" y="798" on="0"/> - <pt x="220" y="954" on="1"/> - <pt x="354" y="1110" on="0"/> - <pt x="597" y="1110" on="1"/> - <pt x="691" y="1110" on="0"/> - </contour> - <contour> - <pt x="787" y="382" on="1"/> - <pt x="787" y="937" on="1"/> - <pt x="648" y="962" on="0"/> - <pt x="582" y="962" on="1"/> - <pt x="299" y="962" on="0"/> - <pt x="299" y="532" on="1"/> - <pt x="299" y="354" on="0"/> - <pt x="355" y="251" on="1"/> - <pt x="410" y="148" on="0"/> - <pt x="504" y="148" on="1"/> - <pt x="630" y="148" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 58 values pushed */ - 0 0 27 30 8 21 40 16 48 196 16 1 8 2 1 19 18 4 3 0 2 3 0 3 2 - 1 0 1 0 1 14 0 0 23 9 12 48 196 12 0 0 0 19 18 4 3 0 4 4 1 - 1 4 48 196 2 1 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="question" xMin="138" yMin="0" xMax="1014" yMax="1517"> - <contour> - <pt x="376" y="0" on="1"/> - <pt x="376" y="197" on="1"/> - <pt x="573" y="197" on="1"/> - <pt x="573" y="0" on="1"/> - </contour> - <contour> - <pt x="376" y="395" on="1"/> - <pt x="376" y="449" on="1"/> - <pt x="375" y="694" on="0"/> - <pt x="539" y="822" on="1"/> - <pt x="628" y="891" on="1"/> - <pt x="804" y="1027" on="0"/> - <pt x="804" y="1174" on="1"/> - <pt x="804" y="1369" on="0"/> - <pt x="530" y="1369" on="1"/> - <pt x="362" y="1369" on="0"/> - <pt x="138" y="1295" on="1"/> - <pt x="138" y="1462" on="1"/> - <pt x="359" y="1517" on="0"/> - <pt x="545" y="1517" on="1"/> - <pt x="749" y="1517" on="0"/> - <pt x="865" y="1451" on="1"/> - <pt x="1014" y="1365" on="0"/> - <pt x="1014" y="1177" on="1"/> - <pt x="1014" y="989" on="0"/> - <pt x="823" y="871" on="1"/> - <pt x="742" y="821" on="1"/> - <pt x="643" y="760" on="0"/> - <pt x="608" y="694" on="1"/> - <pt x="573" y="629" on="0"/> - <pt x="573" y="505" on="1"/> - <pt x="573" y="395" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 71 values pushed */ - 0 0 12 40 17 48 196 17 0 1 28 15 14 5 4 0 4 3 0 0 0 2 1 5 1 - 0 1 4 48 196 29 4 1 3 0 1 2 0 14 0 0 10 9 21 48 196 21 2 0 0 - 29 28 3 2 4 3 0 1 4 48 196 15 14 1 5 4 1 0 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="questiondown" xMin="185" yMin="-432" xMax="1061" yMax="1086"> - <contour> - <pt x="823" y="1086" on="1"/> - <pt x="823" y="888" on="1"/> - <pt x="626" y="888" on="1"/> - <pt x="626" y="1086" on="1"/> - </contour> - <contour> - <pt x="823" y="691" on="1"/> - <pt x="823" y="636" on="1"/> - <pt x="823" y="392" on="0"/> - <pt x="660" y="264" on="1"/> - <pt x="571" y="195" on="1"/> - <pt x="395" y="58" on="0"/> - <pt x="395" y="-88" on="1"/> - <pt x="395" y="-284" on="0"/> - <pt x="670" y="-284" on="1"/> - <pt x="838" y="-284" on="0"/> - <pt x="1061" y="-209" on="1"/> - <pt x="1061" y="-376" on="1"/> - <pt x="842" y="-432" on="0"/> - <pt x="655" y="-432" on="1"/> - <pt x="450" y="-432" on="0"/> - <pt x="334" y="-365" on="1"/> - <pt x="185" y="-280" on="0"/> - <pt x="185" y="-91" on="1"/> - <pt x="185" y="97" on="0"/> - <pt x="376" y="215" on="1"/> - <pt x="457" y="265" on="1"/> - <pt x="556" y="326" on="0"/> - <pt x="591" y="391" on="1"/> - <pt x="626" y="457" on="0"/> - <pt x="626" y="580" on="1"/> - <pt x="626" y="691" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 72 values pushed */ - 0 0 12 40 17 48 196 1 28 5 2 4 2 3 0 1 15 14 17 2 0 0 0 2 1 - 5 1 0 1 4 48 196 29 4 1 0 3 0 1 14 0 0 10 9 21 48 196 21 2 0 - 0 29 28 3 2 4 3 0 1 4 48 196 15 14 1 5 4 1 0 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quotedbl" xMin="92" yMin="1086" xMax="635" yMax="1579"> - <contour> - <pt x="117" y="1086" on="1"/> - <pt x="92" y="1579" on="1"/> - <pt x="289" y="1579" on="1"/> - <pt x="265" y="1086" on="1"/> - </contour> - <contour> - <pt x="462" y="1086" on="1"/> - <pt x="437" y="1579" on="1"/> - <pt x="635" y="1579" on="1"/> - <pt x="610" y="1086" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 21 values pushed */ - 6 5 2 1 3 0 7 4 3 0 1 3 14 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quotedblbase" xMin="70" yMin="-321" xMax="613" yMax="197"> - <contour> - <pt x="70" y="-321" on="1"/> - <pt x="70" y="-247" on="1"/> - <pt x="141" y="-210" on="0"/> - <pt x="141" y="-23" on="1"/> - <pt x="141" y="0" on="1"/> - <pt x="70" y="0" on="1"/> - <pt x="70" y="197" on="1"/> - <pt x="267" y="197" on="1"/> - <pt x="267" y="31" on="1"/> - <pt x="266" y="-271" on="0"/> - </contour> - <contour> - <pt x="415" y="-321" on="1"/> - <pt x="415" y="-247" on="1"/> - <pt x="486" y="-209" on="0"/> - <pt x="486" y="-23" on="1"/> - <pt x="486" y="0" on="1"/> - <pt x="415" y="0" on="1"/> - <pt x="415" y="197" on="1"/> - <pt x="613" y="197" on="1"/> - <pt x="613" y="31" on="1"/> - <pt x="612" y="-271" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 62 values pushed */ - 18 15 14 13 11 10 8 5 4 3 1 0 12 13 6 17 16 7 6 3 0 14 14 13 2 - 17 10 3 4 3 2 7 0 3 0 0 16 15 11 10 4 3 17 8 7 4 1 0 2 4 - 48 196 18 17 1 6 5 1 0 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quotedblleft" xMin="57" yMin="1061" xMax="600" yMax="1579"> - <contour> - <pt x="600" y="1579" on="1"/> - <pt x="600" y="1505" on="1"/> - <pt x="529" y="1468" on="0"/> - <pt x="529" y="1281" on="1"/> - <pt x="529" y="1258" on="1"/> - <pt x="600" y="1258" on="1"/> - <pt x="600" y="1061" on="1"/> - <pt x="402" y="1061" on="1"/> - <pt x="402" y="1227" on="1"/> - <pt x="403" y="1529" on="0"/> - </contour> - <contour> - <pt x="254" y="1579" on="1"/> - <pt x="254" y="1505" on="1"/> - <pt x="184" y="1468" on="0"/> - <pt x="184" y="1281" on="1"/> - <pt x="184" y="1258" on="1"/> - <pt x="254" y="1258" on="1"/> - <pt x="254" y="1061" on="1"/> - <pt x="57" y="1061" on="1"/> - <pt x="57" y="1227" on="1"/> - <pt x="58" y="1529" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 62 values pushed */ - 18 15 14 13 11 10 8 5 4 3 1 0 12 13 6 17 16 7 6 3 0 14 4 3 2 - 0 7 3 14 13 2 10 17 3 0 0 16 15 11 10 4 3 17 8 7 4 1 0 2 4 - 48 196 18 17 1 6 5 1 0 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quotedblright" xMin="82" yMin="1061" xMax="625" yMax="1579"> - <contour> - <pt x="82" y="1061" on="1"/> - <pt x="82" y="1135" on="1"/> - <pt x="153" y="1172" on="0"/> - <pt x="153" y="1359" on="1"/> - <pt x="153" y="1382" on="1"/> - <pt x="82" y="1382" on="1"/> - <pt x="82" y="1579" on="1"/> - <pt x="279" y="1579" on="1"/> - <pt x="279" y="1413" on="1"/> - <pt x="278" y="1111" on="0"/> - </contour> - <contour> - <pt x="427" y="1061" on="1"/> - <pt x="427" y="1135" on="1"/> - <pt x="498" y="1172" on="0"/> - <pt x="498" y="1359" on="1"/> - <pt x="498" y="1382" on="1"/> - <pt x="427" y="1382" on="1"/> - <pt x="427" y="1579" on="1"/> - <pt x="625" y="1579" on="1"/> - <pt x="625" y="1413" on="1"/> - <pt x="624" y="1111" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 62 values pushed */ - 18 15 14 13 11 10 8 5 4 3 1 0 12 13 6 17 16 7 6 3 0 14 14 13 2 - 17 10 3 4 3 2 7 0 3 0 0 16 15 11 10 4 3 17 8 7 4 1 0 2 4 - 48 196 18 17 1 6 5 1 0 3 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quoteleft" xMin="92" yMin="1012" xMax="339" yMax="1579"> - <contour> - <pt x="339" y="1579" on="1"/> - <pt x="339" y="1505" on="1"/> - <pt x="243" y="1478" on="0"/> - <pt x="243" y="1279" on="1"/> - <pt x="243" y="1258" on="1"/> - <pt x="339" y="1258" on="1"/> - <pt x="339" y="1012" on="1"/> - <pt x="92" y="1012" on="1"/> - <pt x="92" y="1226" on="1"/> - <pt x="93" y="1551" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 37 values pushed */ - 8 5 4 3 1 0 6 13 6 7 6 1 0 14 4 3 2 0 7 3 0 0 6 5 1 - 0 8 3 7 1 4 48 196 8 7 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quotereversed"/><!-- contains no outline data --> - - <TTGlyph name="quoteright" xMin="116" yMin="1012" xMax="363" yMax="1579"> - <contour> - <pt x="116" y="1012" on="1"/> - <pt x="116" y="1086" on="1"/> - <pt x="212" y="1113" on="0"/> - <pt x="212" y="1312" on="1"/> - <pt x="212" y="1332" on="1"/> - <pt x="116" y="1332" on="1"/> - <pt x="116" y="1579" on="1"/> - <pt x="363" y="1579" on="1"/> - <pt x="363" y="1365" on="1"/> - <pt x="362" y="1036" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 37 values pushed */ - 8 5 4 3 1 0 6 13 6 7 6 1 0 14 4 3 2 7 0 3 0 0 8 7 8 - 1 0 1 4 48 196 6 5 1 0 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quotesinglbase" xMin="104" yMin="-296" xMax="351" yMax="247"> - <contour> - <pt x="104" y="-296" on="1"/> - <pt x="104" y="-222" on="1"/> - <pt x="200" y="-195" on="0"/> - <pt x="200" y="-20" on="1"/> - <pt x="200" y="0" on="1"/> - <pt x="104" y="0" on="1"/> - <pt x="104" y="247" on="1"/> - <pt x="351" y="247" on="1"/> - <pt x="351" y="33" on="1"/> - <pt x="350" y="-270" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 37 values pushed */ - 8 5 4 3 1 0 6 13 6 7 6 1 0 14 4 3 2 7 0 3 0 0 8 7 8 - 1 0 1 4 48 196 6 5 1 0 3 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SRP0[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="quotesingle" xMin="72" yMin="1036" xMax="319" yMax="1579"> - <contour> - <pt x="121" y="1036" on="1"/> - <pt x="72" y="1579" on="1"/> - <pt x="319" y="1579" on="1"/> - <pt x="269" y="1036" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 13 values pushed */ - 2 1 1 3 0 1 2 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - LOOPCALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="r" xMin="154" yMin="0" xMax="668" yMax="1110"> - <contour> - <pt x="154" y="0" on="1"/> - <pt x="154" y="1086" on="1"/> - <pt x="351" y="1086" on="1"/> - <pt x="351" y="882" on="1"/> - <pt x="394" y="985" on="0"/> - <pt x="443" y="1036" on="1"/> - <pt x="514" y="1110" on="0"/> - <pt x="612" y="1110" on="1"/> - <pt x="631" y="1110" on="0"/> - <pt x="668" y="1105" on="1"/> - <pt x="668" y="921" on="1"/> - <pt x="616" y="938" on="0"/> - <pt x="584" y="938" on="1"/> - <pt x="475" y="938" on="0"/> - <pt x="351" y="716" on="1"/> - <pt x="351" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 47 values pushed */ - 0 0 12 30 7 48 196 7 1 14 10 3 3 1 0 3 9 1 15 0 1 0 2 1 1 - 14 0 0 15 14 3 2 4 3 0 1 4 48 196 10 9 1 1 0 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00000] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="racute" xMin="154" yMin="0" xMax="722" yMax="1604"> - <component glyphName="r" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="146" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="radicalex" xMin="99" yMin="1456" xMax="1040" yMax="1604"> - <contour> - <pt x="99" y="1456" on="1"/> - <pt x="99" y="1604" on="1"/> - <pt x="1040" y="1604" on="1"/> - <pt x="1040" y="1456" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 24 values pushed */ - 0 0 3 0 7 1 1 1 4 48 196 2 1 1 0 14 3 2 1 1 0 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="rcaron" xMin="2" yMin="0" xMax="702" yMax="1604"> - <component glyphName="r" x="1" y="0" flags="0x4"/> - <component glyphName="caron" x="11" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="rcommaaccent" xMin="154" yMin="-432" xMax="668" yMax="1110"> - <component glyphName="r" x="0" y="0" flags="0x4"/> - <component glyphName="Unterkomma" x="-16" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="registered" xMin="15" yMin="0" xMax="1495" yMax="1480"> - <contour> - <pt x="755" y="1480" on="1"/> - <pt x="1060" y="1480" on="0"/> - <pt x="1278" y="1263" on="1"/> - <pt x="1495" y="1047" on="0"/> - <pt x="1495" y="741" on="1"/> - <pt x="1495" y="431" on="0"/> - <pt x="1277" y="216" on="1"/> - <pt x="1060" y="0" on="0"/> - <pt x="746" y="0" on="1"/> - <pt x="478" y="0" on="0"/> - <pt x="277" y="176" on="1"/> - <pt x="15" y="404" on="0"/> - <pt x="15" y="741" on="1"/> - <pt x="15" y="1047" on="0"/> - <pt x="232" y="1263" on="1"/> - <pt x="450" y="1480" on="0"/> - </contour> - <contour> - <pt x="755" y="1375" on="1"/> - <pt x="494" y="1375" on="0"/> - <pt x="307" y="1188" on="1"/> - <pt x="121" y="1002" on="0"/> - <pt x="121" y="740" on="1"/> - <pt x="121" y="482" on="0"/> - <pt x="306" y="294" on="1"/> - <pt x="491" y="106" on="0"/> - <pt x="748" y="106" on="1"/> - <pt x="987" y="106" on="0"/> - <pt x="1164" y="256" on="1"/> - <pt x="1390" y="448" on="0"/> - <pt x="1390" y="741" on="1"/> - <pt x="1390" y="1003" on="0"/> - <pt x="1203" y="1188" on="1"/> - <pt x="1016" y="1375" on="0"/> - </contour> - <contour> - <pt x="511" y="337" on="1"/> - <pt x="511" y="1137" on="1"/> - <pt x="763" y="1137" on="1"/> - <pt x="1005" y="1137" on="0"/> - <pt x="1005" y="942" on="1"/> - <pt x="1005" y="803" on="0"/> - <pt x="865" y="709" on="1"/> - <pt x="1106" y="337" on="1"/> - <pt x="957" y="337" on="1"/> - <pt x="741" y="671" on="1"/> - <pt x="640" y="671" on="1"/> - <pt x="640" y="337" on="1"/> - </contour> - <contour> - <pt x="632" y="770" on="1"/> - <pt x="668" y="770" on="1"/> - <pt x="880" y="770" on="0"/> - <pt x="880" y="925" on="1"/> - <pt x="880" y="1055" on="0"/> - <pt x="703" y="1055" on="1"/> - <pt x="632" y="1055" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 83 values pushed */ - 0 0 24 20 8 16 20 0 48 196 8 2 0 0 50 49 45 44 42 41 38 7 33 32 3 - 34 33 1 43 40 39 32 3 2 0 14 0 0 47 6 36 28 17 4 20 17 12 48 196 49 - 45 41 40 39 38 34 7 13 36 4 42 12 32 0 0 43 42 18 1 32 50 44 19 1 32 - 2 4 48 196 33 32 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ring" xMin="114" yMin="1283" xMax="568" yMax="1737"> - <contour> - <pt x="341" y="1737" on="1"/> - <pt x="435" y="1737" on="0"/> - <pt x="501" y="1671" on="1"/> - <pt x="568" y="1605" on="0"/> - <pt x="568" y="1511" on="1"/> - <pt x="568" y="1415" on="0"/> - <pt x="501" y="1349" on="1"/> - <pt x="435" y="1283" on="0"/> - <pt x="339" y="1283" on="1"/> - <pt x="256" y="1283" on="0"/> - <pt x="194" y="1337" on="1"/> - <pt x="114" y="1406" on="0"/> - <pt x="114" y="1510" on="1"/> - <pt x="114" y="1604" on="0"/> - <pt x="180" y="1670" on="1"/> - <pt x="246" y="1737" on="0"/> - </contour> - <contour> - <pt x="341" y="1650" on="1"/> - <pt x="283" y="1650" on="0"/> - <pt x="241" y="1609" on="1"/> - <pt x="200" y="1569" on="0"/> - <pt x="200" y="1510" on="1"/> - <pt x="200" y="1452" on="0"/> - <pt x="241" y="1411" on="1"/> - <pt x="282" y="1369" on="0"/> - <pt x="339" y="1369" on="1"/> - <pt x="393" y="1369" on="0"/> - <pt x="432" y="1402" on="1"/> - <pt x="482" y="1445" on="0"/> - <pt x="482" y="1511" on="1"/> - <pt x="482" y="1569" on="0"/> - <pt x="440" y="1609" on="1"/> - <pt x="399" y="1650" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 25 values pushed */ - 0 0 24 44 8 16 44 0 48 196 8 0 14 0 0 28 32 4 20 32 12 48 196 12 4 - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="s" xMin="116" yMin="-25" xMax="908" yMax="1110"> - <contour> - <pt x="116" y="38" on="1"/> - <pt x="116" y="219" on="1"/> - <pt x="315" y="123" on="0"/> - <pt x="483" y="123" on="1"/> - <pt x="710" y="123" on="0"/> - <pt x="710" y="283" on="1"/> - <pt x="710" y="393" on="0"/> - <pt x="551" y="445" on="1"/> - <pt x="375" y="503" on="1"/> - <pt x="122" y="586" on="0"/> - <pt x="122" y="807" on="1"/> - <pt x="122" y="1110" on="0"/> - <pt x="536" y="1110" on="1"/> - <pt x="655" y="1110" on="0"/> - <pt x="825" y="1078" on="1"/> - <pt x="825" y="913" on="1"/> - <pt x="674" y="962" on="0"/> - <pt x="523" y="962" on="1"/> - <pt x="317" y="962" on="0"/> - <pt x="317" y="827" on="1"/> - <pt x="317" y="729" on="0"/> - <pt x="458" y="683" on="1"/> - <pt x="615" y="632" on="1"/> - <pt x="908" y="537" on="0"/> - <pt x="908" y="302" on="1"/> - <pt x="908" y="151" on="0"/> - <pt x="792" y="63" on="1"/> - <pt x="676" y="-25" on="0"/> - <pt x="475" y="-25" on="1"/> - <pt x="316" y="-25" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 52 values pushed */ - 0 0 17 40 12 3 40 28 48 196 28 2 12 1 1 1 15 14 1 0 4 1 2 3 0 - 0 14 0 0 19 41 10 5 41 24 48 196 10 10 14 0 2 24 14 15 14 1 1 0 1 - 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="sacute" xMin="116" yMin="-25" xMax="908" yMax="1604"> - <component glyphName="s" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="294" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="scaron" xMin="116" yMin="-25" xMax="908" yMax="1604"> - <component glyphName="s" x="0" y="0" flags="0x4"/> - <component glyphName="caron" x="208" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="scedilla" xMin="116" yMin="-432" xMax="908" yMax="1110"> - <component glyphName="s" x="0" y="0" flags="0x4"/> - <component glyphName="cedilla" x="165" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="scircumflex" xMin="116" yMin="-25" xMax="908" yMax="1604"> - <contour> - <pt x="116" y="38" on="1"/> - <pt x="116" y="219" on="1"/> - <pt x="315" y="123" on="0"/> - <pt x="483" y="123" on="1"/> - <pt x="710" y="123" on="0"/> - <pt x="710" y="283" on="1"/> - <pt x="710" y="393" on="0"/> - <pt x="551" y="445" on="1"/> - <pt x="375" y="503" on="1"/> - <pt x="122" y="586" on="0"/> - <pt x="122" y="807" on="1"/> - <pt x="122" y="1110" on="0"/> - <pt x="536" y="1110" on="1"/> - <pt x="655" y="1110" on="0"/> - <pt x="825" y="1078" on="1"/> - <pt x="825" y="913" on="1"/> - <pt x="674" y="962" on="0"/> - <pt x="523" y="962" on="1"/> - <pt x="317" y="962" on="0"/> - <pt x="317" y="827" on="1"/> - <pt x="317" y="729" on="0"/> - <pt x="458" y="683" on="1"/> - <pt x="615" y="632" on="1"/> - <pt x="908" y="537" on="0"/> - <pt x="908" y="302" on="1"/> - <pt x="908" y="151" on="0"/> - <pt x="792" y="63" on="1"/> - <pt x="676" y="-25" on="0"/> - <pt x="475" y="-25" on="1"/> - <pt x="316" y="-25" on="0"/> - </contour> - <contour> - <pt x="199" y="1283" on="1"/> - <pt x="440" y="1604" on="1"/> - <pt x="658" y="1604" on="1"/> - <pt x="899" y="1283" on="1"/> - <pt x="751" y="1283" on="1"/> - <pt x="550" y="1485" on="1"/> - <pt x="548" y="1485" on="1"/> - <pt x="347" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 77 values pushed */ - 0 0 17 40 12 3 40 28 48 196 28 2 12 1 36 35 2 31 30 3 1 1 15 14 1 - 0 4 1 2 3 0 0 32 31 1 37 34 33 30 3 2 0 14 0 0 19 41 10 5 41 - 24 48 196 10 37 36 35 34 32 31 30 10 8 14 0 3 33 24 14 15 14 1 1 0 1 - 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="scommaaccent" xMin="116" yMin="-432" xMax="908" yMax="1110"> - <component glyphName="s" x="0" y="0" flags="0x4"/> - <component glyphName="Unterkomma" x="197" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="section" xMin="129" yMin="-334" xMax="1010" yMax="1517"> - <contour> - <pt x="129" y="-260" on="1"/> - <pt x="129" y="-80" on="1"/> - <pt x="379" y="-185" on="0"/> - <pt x="541" y="-185" on="1"/> - <pt x="667" y="-185" on="0"/> - <pt x="749" y="-135" on="1"/> - <pt x="830" y="-85" on="0"/> - <pt x="830" y="-3" on="1"/> - <pt x="830" y="72" on="0"/> - <pt x="769" y="114" on="1"/> - <pt x="719" y="150" on="0"/> - <pt x="600" y="201" on="1"/> - <pt x="423" y="277" on="1"/> - <pt x="134" y="401" on="0"/> - <pt x="134" y="613" on="1"/> - <pt x="134" y="758" on="0"/> - <pt x="280" y="912" on="1"/> - <pt x="139" y="1011" on="0"/> - <pt x="139" y="1156" on="1"/> - <pt x="139" y="1317" on="0"/> - <pt x="269" y="1417" on="1"/> - <pt x="398" y="1517" on="0"/> - <pt x="611" y="1517" on="1"/> - <pt x="756" y="1517" on="0"/> - <pt x="954" y="1470" on="1"/> - <pt x="954" y="1310" on="1"/> - <pt x="747" y="1369" on="0"/> - <pt x="608" y="1369" on="1"/> - <pt x="478" y="1369" on="0"/> - <pt x="398" y="1318" on="1"/> - <pt x="318" y="1267" on="0"/> - <pt x="318" y="1186" on="1"/> - <pt x="318" y="1077" on="0"/> - <pt x="493" y="1006" on="1"/> - <pt x="629" y="951" on="1"/> - <pt x="837" y="867" on="0"/> - <pt x="915" y="789" on="1"/> - <pt x="995" y="709" on="0"/> - <pt x="995" y="589" on="1"/> - <pt x="995" y="448" on="0"/> - <pt x="846" y="277" on="1"/> - <pt x="1010" y="176" on="0"/> - <pt x="1010" y="9" on="1"/> - <pt x="1010" y="-148" on="0"/> - <pt x="876" y="-241" on="1"/> - <pt x="743" y="-334" on="0"/> - <pt x="523" y="-334" on="1"/> - <pt x="369" y="-334" on="0"/> - </contour> - <contour> - <pt x="748" y="341" on="1"/> - <pt x="822" y="443" on="0"/> - <pt x="822" y="534" on="1"/> - <pt x="822" y="607" on="0"/> - <pt x="774" y="654" on="1"/> - <pt x="726" y="701" on="0"/> - <pt x="602" y="753" on="1"/> - <pt x="380" y="846" on="1"/> - <pt x="306" y="751" on="0"/> - <pt x="306" y="664" on="1"/> - <pt x="306" y="529" on="0"/> - <pt x="536" y="431" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 66 values pushed */ - 0 0 27 40 22 3 40 46 48 196 22 0 1 55 48 40 25 24 16 1 0 8 13 46 0 - 0 14 0 0 57 13 14 50 13 38 31 14 18 7 14 42 48 196 18 14 55 48 40 18 16 - 14 6 24 0 3 42 38 24 25 24 1 1 0 1 2 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - CALL[ ] - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="semicolon" xMin="186" yMin="-321" xMax="383" yMax="1086"> - <contour> - <pt x="186" y="-321" on="1"/> - <pt x="186" y="-247" on="1"/> - <pt x="257" y="-210" on="0"/> - <pt x="257" y="-23" on="1"/> - <pt x="257" y="0" on="1"/> - <pt x="186" y="0" on="1"/> - <pt x="186" y="197" on="1"/> - <pt x="383" y="197" on="1"/> - <pt x="383" y="31" on="1"/> - <pt x="382" y="-271" on="0"/> - </contour> - <contour> - <pt x="186" y="888" on="1"/> - <pt x="186" y="1086" on="1"/> - <pt x="383" y="1086" on="1"/> - <pt x="383" y="888" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 62 values pushed */ - 1 8 6 2 2 0 1 5 4 3 1 0 5 13 2 0 0 0 13 10 5 1 11 1 4 - 48 196 7 6 1 0 12 11 1 14 4 3 2 7 0 3 0 0 13 12 8 7 4 3 0 - 1 4 48 196 11 10 6 5 1 0 5 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="semicolon#1" xMin="186" yMin="-321" xMax="383" yMax="1086"> - <contour> - <pt x="186" y="-321" on="1"/> - <pt x="186" y="-247" on="1"/> - <pt x="257" y="-210" on="0"/> - <pt x="257" y="-23" on="1"/> - <pt x="257" y="0" on="1"/> - <pt x="186" y="0" on="1"/> - <pt x="186" y="197" on="1"/> - <pt x="383" y="197" on="1"/> - <pt x="383" y="31" on="1"/> - <pt x="382" y="-271" on="0"/> - </contour> - <contour> - <pt x="186" y="888" on="1"/> - <pt x="186" y="1086" on="1"/> - <pt x="383" y="1086" on="1"/> - <pt x="383" y="888" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 62 values pushed */ - 1 8 6 2 2 0 1 5 4 3 1 0 5 13 2 0 0 0 13 10 5 1 11 1 4 - 48 196 7 6 1 0 12 11 1 14 4 3 2 7 0 3 0 0 13 12 8 7 4 3 0 - 1 4 48 196 11 10 6 5 1 0 5 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="seven" xMin="136" yMin="0" xMax="1086" yMax="1480"> - <contour> - <pt x="222" y="0" on="1"/> - <pt x="251" y="173" on="0"/> - <pt x="304" y="299" on="1"/> - <pt x="357" y="424" on="0"/> - <pt x="494" y="645" on="1"/> - <pt x="898" y="1295" on="1"/> - <pt x="136" y="1295" on="1"/> - <pt x="136" y="1480" on="1"/> - <pt x="1086" y="1480" on="1"/> - <pt x="1086" y="1295" on="1"/> - <pt x="517" y="456" on="0"/> - <pt x="449" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 35 values pushed */ - 0 0 9 6 5 27 2 7 1 4 48 196 11 0 1 0 8 7 0 14 11 5 0 3 8 - 6 3 9 8 1 7 6 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="sfthyphen" xMin="88" yMin="518" xMax="594" yMax="666"> - <contour> - <pt x="88" y="518" on="1"/> - <pt x="88" y="666" on="1"/> - <pt x="594" y="666" on="1"/> - <pt x="594" y="518" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 24 values pushed */ - 0 0 3 0 7 1 1 1 4 48 196 2 1 1 0 14 3 2 1 1 0 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="six" xMin="84" yMin="-37" xMax="1027" yMax="1518"> - <contour> - <pt x="298" y="778" on="1"/> - <pt x="436" y="950" on="0"/> - <pt x="635" y="950" on="1"/> - <pt x="817" y="950" on="0"/> - <pt x="922" y="826" on="1"/> - <pt x="1027" y="703" on="0"/> - <pt x="1027" y="486" on="1"/> - <pt x="1027" y="245" on="0"/> - <pt x="903" y="104" on="1"/> - <pt x="779" y="-37" on="0"/> - <pt x="571" y="-37" on="1"/> - <pt x="344" y="-37" on="0"/> - <pt x="214" y="158" on="1"/> - <pt x="84" y="352" on="0"/> - <pt x="84" y="693" on="1"/> - <pt x="84" y="1080" on="0"/> - <pt x="239" y="1299" on="1"/> - <pt x="394" y="1518" on="0"/> - <pt x="668" y="1518" on="1"/> - <pt x="794" y="1518" on="0"/> - <pt x="947" y="1462" on="1"/> - <pt x="947" y="1290" on="1"/> - <pt x="766" y="1370" on="0"/> - <pt x="664" y="1370" on="1"/> - <pt x="443" y="1370" on="0"/> - <pt x="354" y="1148" on="1"/> - <pt x="319" y="1060" on="0"/> - <pt x="307" y="951" on="1"/> - <pt x="300" y="893" on="0"/> - </contour> - <contour> - <pt x="582" y="808" on="1"/> - <pt x="458" y="808" on="0"/> - <pt x="382" y="722" on="1"/> - <pt x="305" y="636" on="0"/> - <pt x="305" y="489" on="1"/> - <pt x="305" y="325" on="0"/> - <pt x="384" y="218" on="1"/> - <pt x="463" y="111" on="0"/> - <pt x="589" y="111" on="1"/> - <pt x="833" y="111" on="0"/> - <pt x="833" y="445" on="1"/> - <pt x="833" y="808" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 50 values pushed */ - 0 0 37 40 10 29 40 2 23 40 18 48 196 18 0 10 2 2 1 1 21 20 2 0 4 - 0 2 3 0 0 14 0 0 39 41 6 33 26 14 48 196 6 20 0 14 20 21 20 1 0 - CALL[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="slash" xMin="-59" yMin="-296" xMax="629" yMax="1480"> - <contour> - <pt x="-59" y="-296" on="1"/> - <pt x="474" y="1480" on="1"/> - <pt x="629" y="1480" on="1"/> - <pt x="96" y="-296" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 12 values pushed */ - 3 0 1 0 2 1 0 14 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="space"/><!-- contains no outline data --> - - <TTGlyph name="sterling" xMin="121" yMin="0" xMax="966" yMax="1517"> - <contour> - <pt x="121" y="0" on="1"/> - <pt x="121" y="173" on="1"/> - <pt x="330" y="240" on="0"/> - <pt x="331" y="489" on="1"/> - <pt x="331" y="716" on="1"/> - <pt x="152" y="716" on="1"/> - <pt x="152" y="864" on="1"/> - <pt x="331" y="864" on="1"/> - <pt x="331" y="1079" on="1"/> - <pt x="331" y="1292" on="0"/> - <pt x="432" y="1404" on="1"/> - <pt x="533" y="1517" on="0"/> - <pt x="725" y="1517" on="1"/> - <pt x="827" y="1517" on="0"/> - <pt x="951" y="1487" on="1"/> - <pt x="951" y="1320" on="1"/> - <pt x="822" y="1369" on="0"/> - <pt x="716" y="1369" on="1"/> - <pt x="528" y="1369" on="0"/> - <pt x="528" y="1139" on="1"/> - <pt x="528" y="864" on="1"/> - <pt x="744" y="864" on="1"/> - <pt x="744" y="716" on="1"/> - <pt x="528" y="716" on="1"/> - <pt x="528" y="589" on="1"/> - <pt x="528" y="409" on="0"/> - <pt x="480" y="319" on="1"/> - <pt x="442" y="245" on="0"/> - <pt x="355" y="173" on="1"/> - <pt x="966" y="173" on="1"/> - <pt x="966" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 97 values pushed */ - 0 0 17 40 12 48 196 12 0 1 19 15 8 3 0 6 3 0 24 3 2 4 1 3 1 - 14 0 0 0 0 23 22 5 4 7 3 6 29 28 1 13 2 0 2 4 48 196 21 20 7 - 6 3 30 0 1 2 0 14 28 19 3 2 0 0 24 23 20 19 4 3 3 1 4 48 196 - 30 29 1 15 14 1 22 21 1 8 7 4 3 3 6 5 1 1 0 1 6 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - SZP0[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="t" xMin="29" yMin="-25" xMax="559" yMax="1302"> - <contour> - <pt x="530" y="-6" on="1"/> - <pt x="470" y="-25" on="0"/> - <pt x="417" y="-25" on="1"/> - <pt x="152" y="-25" on="0"/> - <pt x="152" y="300" on="1"/> - <pt x="152" y="938" on="1"/> - <pt x="29" y="938" on="1"/> - <pt x="29" y="1086" on="1"/> - <pt x="152" y="1086" on="1"/> - <pt x="152" y="1283" on="1"/> - <pt x="349" y="1302" on="1"/> - <pt x="349" y="1086" on="1"/> - <pt x="559" y="1086" on="1"/> - <pt x="559" y="938" on="1"/> - <pt x="349" y="938" on="1"/> - <pt x="349" y="336" on="1"/> - <pt x="349" y="207" on="0"/> - <pt x="371" y="165" on="1"/> - <pt x="393" y="123" on="0"/> - <pt x="463" y="123" on="1"/> - <pt x="501" y="123" on="0"/> - <pt x="530" y="134" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 76 values pushed */ - 0 0 19 40 2 48 196 2 2 1 21 15 4 3 5 2 3 0 10 9 2 13 7 1 0 - 2 0 0 0 14 13 6 5 7 3 7 1 4 48 196 12 11 8 7 1 3 14 0 0 15 - 14 11 10 4 3 4 1 4 48 196 13 12 1 21 0 1 9 8 5 4 3 7 6 1 4 - 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="tbar" xMin="29" yMin="-25" xMax="559" yMax="1302"> - <contour> - <pt x="152" y="568" on="1"/> - <pt x="29" y="568" on="1"/> - <pt x="29" y="691" on="1"/> - <pt x="152" y="691" on="1"/> - <pt x="152" y="938" on="1"/> - <pt x="29" y="938" on="1"/> - <pt x="29" y="1086" on="1"/> - <pt x="152" y="1086" on="1"/> - <pt x="152" y="1283" on="1"/> - <pt x="349" y="1302" on="1"/> - <pt x="349" y="1086" on="1"/> - <pt x="559" y="1086" on="1"/> - <pt x="559" y="938" on="1"/> - <pt x="349" y="938" on="1"/> - <pt x="349" y="691" on="1"/> - <pt x="559" y="691" on="1"/> - <pt x="559" y="568" on="1"/> - <pt x="349" y="568" on="1"/> - <pt x="349" y="336" on="1"/> - <pt x="349" y="207" on="0"/> - <pt x="371" y="165" on="1"/> - <pt x="393" y="123" on="0"/> - <pt x="463" y="123" on="1"/> - <pt x="501" y="123" on="0"/> - <pt x="530" y="134" on="1"/> - <pt x="530" y="-6" on="1"/> - <pt x="470" y="-25" on="0"/> - <pt x="417" y="-25" on="1"/> - <pt x="152" y="-25" on="0"/> - <pt x="152" y="300" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 97 values pushed */ - 0 0 22 40 27 48 196 27 2 1 29 24 18 3 0 2 3 0 9 8 2 13 6 1 25 - 2 0 0 0 13 12 5 4 7 3 6 17 16 1 0 6 3 2 2 4 48 196 15 14 3 - 2 3 0 11 10 7 6 1 3 14 0 0 18 17 14 13 10 9 4 5 0 1 4 48 196 - 16 15 12 11 3 25 24 1 29 8 7 4 3 0 5 6 5 2 1 3 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="tcaron" xMin="29" yMin="-25" xMax="719" yMax="1688"> - <contour> - <pt x="530" y="-6" on="1"/> - <pt x="470" y="-25" on="0"/> - <pt x="417" y="-25" on="1"/> - <pt x="152" y="-25" on="0"/> - <pt x="152" y="300" on="1"/> - <pt x="152" y="938" on="1"/> - <pt x="29" y="938" on="1"/> - <pt x="29" y="1086" on="1"/> - <pt x="152" y="1086" on="1"/> - <pt x="152" y="1283" on="1"/> - <pt x="349" y="1302" on="1"/> - <pt x="349" y="1086" on="1"/> - <pt x="559" y="1086" on="1"/> - <pt x="559" y="938" on="1"/> - <pt x="349" y="938" on="1"/> - <pt x="349" y="336" on="1"/> - <pt x="349" y="207" on="0"/> - <pt x="371" y="165" on="1"/> - <pt x="393" y="123" on="0"/> - <pt x="463" y="123" on="1"/> - <pt x="501" y="123" on="0"/> - <pt x="530" y="134" on="1"/> - </contour> - <contour> - <pt x="522" y="1234" on="1"/> - <pt x="522" y="1293" on="1"/> - <pt x="598" y="1314" on="0"/> - <pt x="598" y="1474" on="1"/> - <pt x="598" y="1491" on="1"/> - <pt x="522" y="1491" on="1"/> - <pt x="522" y="1688" on="1"/> - <pt x="719" y="1688" on="1"/> - <pt x="719" y="1517" on="1"/> - <pt x="718" y="1255" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 103 values pushed */ - 0 0 19 40 2 48 196 2 2 30 27 26 25 23 22 10 9 8 28 7 3 1 21 15 4 - 3 5 2 3 0 1 0 2 0 0 0 14 13 6 5 7 3 7 1 4 48 196 29 28 1 - 0 12 11 8 7 1 3 14 26 25 2 29 12 3 0 0 28 27 23 22 4 3 29 15 14 - 11 10 4 3 4 2 4 48 196 30 29 1 13 12 1 21 0 1 9 8 5 4 3 7 6 - 1 5 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00000] - SZP0[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="tcommaaccent" xMin="29" yMin="-432" xMax="559" yMax="1302"> - <contour> - <pt x="530" y="-6" on="1"/> - <pt x="470" y="-25" on="0"/> - <pt x="417" y="-25" on="1"/> - <pt x="152" y="-25" on="0"/> - <pt x="152" y="300" on="1"/> - <pt x="152" y="938" on="1"/> - <pt x="29" y="938" on="1"/> - <pt x="29" y="1086" on="1"/> - <pt x="152" y="1086" on="1"/> - <pt x="152" y="1283" on="1"/> - <pt x="349" y="1302" on="1"/> - <pt x="349" y="1086" on="1"/> - <pt x="559" y="1086" on="1"/> - <pt x="559" y="938" on="1"/> - <pt x="349" y="938" on="1"/> - <pt x="349" y="336" on="1"/> - <pt x="349" y="207" on="0"/> - <pt x="371" y="165" on="1"/> - <pt x="393" y="123" on="0"/> - <pt x="463" y="123" on="1"/> - <pt x="501" y="123" on="0"/> - <pt x="530" y="134" on="1"/> - </contour> - <contour> - <pt x="299" y="0" on="1"/> - <pt x="396" y="0" on="1"/> - <pt x="336" y="-109" on="1"/> - <pt x="408" y="-111" on="0"/> - <pt x="460" y="-148" on="1"/> - <pt x="530" y="-197" on="0"/> - <pt x="530" y="-268" on="1"/> - <pt x="530" y="-337" on="0"/> - <pt x="472" y="-384" on="1"/> - <pt x="413" y="-432" on="0"/> - <pt x="327" y="-432" on="1"/> - <pt x="259" y="-432" on="0"/> - <pt x="183" y="-411" on="1"/> - <pt x="183" y="-330" on="1"/> - <pt x="233" y="-345" on="0"/> - <pt x="287" y="-345" on="1"/> - <pt x="391" y="-345" on="0"/> - <pt x="391" y="-271" on="1"/> - <pt x="391" y="-178" on="0"/> - <pt x="204" y="-175" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 109 values pushed */ - 0 0 37 44 32 19 40 2 48 196 2 2 1 21 15 4 3 5 2 3 0 10 9 2 13 - 7 1 41 35 34 24 23 22 0 7 13 32 2 0 0 0 14 13 6 5 7 3 7 1 4 - 48 196 12 11 8 7 1 3 14 0 0 39 42 28 48 196 23 0 10 2 41 35 34 24 22 - 5 10 4 3 0 0 15 14 11 10 4 3 4 1 4 48 196 13 12 1 28 21 0 2 9 - 8 5 4 3 7 6 1 4 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="tcommabelow" xMin="29" yMin="-432" xMax="559" yMax="1302"> - <component glyphName="t" x="0" y="0" flags="0x4"/> - <component glyphName="Unterkomma" x="7" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="thorn" xMin="154" yMin="-395" xMax="1052" yMax="1579"> - <contour> - <pt x="351" y="-395" on="1"/> - <pt x="154" y="-395" on="1"/> - <pt x="154" y="1579" on="1"/> - <pt x="351" y="1579" on="1"/> - <pt x="351" y="882" on="1"/> - <pt x="407" y="984" on="0"/> - <pt x="469" y="1036" on="1"/> - <pt x="557" y="1110" on="0"/> - <pt x="676" y="1110" on="1"/> - <pt x="845" y="1110" on="0"/> - <pt x="948" y="963" on="1"/> - <pt x="1052" y="816" on="0"/> - <pt x="1052" y="572" on="1"/> - <pt x="1052" y="287" on="0"/> - <pt x="918" y="131" on="1"/> - <pt x="785" y="-25" on="0"/> - <pt x="540" y="-25" on="1"/> - <pt x="449" y="-25" on="0"/> - <pt x="351" y="0" on="1"/> - </contour> - <contour> - <pt x="351" y="703" on="1"/> - <pt x="351" y="149" on="1"/> - <pt x="488" y="123" on="0"/> - <pt x="557" y="123" on="1"/> - <pt x="839" y="123" on="0"/> - <pt x="839" y="552" on="1"/> - <pt x="839" y="733" on="0"/> - <pt x="783" y="835" on="1"/> - <pt x="728" y="938" on="0"/> - <pt x="634" y="938" on="1"/> - <pt x="508" y="938" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 68 values pushed */ - 0 0 28 30 8 22 40 16 48 196 16 2 8 1 1 1 20 19 4 3 1 2 3 0 0 - 1 18 2 0 2 0 3 2 1 1 0 1 2 0 14 0 0 24 9 12 48 196 12 0 0 - 0 20 19 18 4 3 0 4 5 1 1 4 48 196 2 1 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="three" xMin="153" yMin="-37" xMax="966" yMax="1517"> - <contour> - <pt x="153" y="11" on="1"/> - <pt x="153" y="195" on="1"/> - <pt x="160" y="192" on="1"/> - <pt x="186" y="181" on="0"/> - <pt x="197" y="178" on="1"/> - <pt x="306" y="138" on="0"/> - <pt x="345" y="128" on="1"/> - <pt x="410" y="111" on="0"/> - <pt x="463" y="111" on="1"/> - <pt x="614" y="111" on="0"/> - <pt x="689" y="195" on="1"/> - <pt x="755" y="267" on="0"/> - <pt x="755" y="400" on="1"/> - <pt x="755" y="555" on="0"/> - <pt x="654" y="637" on="1"/> - <pt x="554" y="719" on="0"/> - <pt x="368" y="719" on="1"/> - <pt x="290" y="719" on="1"/> - <pt x="290" y="852" on="1"/> - <pt x="358" y="853" on="1"/> - <pt x="530" y="856" on="0"/> - <pt x="623" y="932" on="1"/> - <pt x="720" y="1010" on="0"/> - <pt x="720" y="1147" on="1"/> - <pt x="720" y="1369" on="0"/> - <pt x="481" y="1369" on="1"/> - <pt x="358" y="1369" on="0"/> - <pt x="173" y="1286" on="1"/> - <pt x="173" y="1458" on="1"/> - <pt x="354" y="1517" on="0"/> - <pt x="493" y="1517" on="1"/> - <pt x="734" y="1517" on="0"/> - <pt x="839" y="1402" on="1"/> - <pt x="917" y="1317" on="0"/> - <pt x="917" y="1176" on="1"/> - <pt x="917" y="1017" on="0"/> - <pt x="805" y="914" on="1"/> - <pt x="739" y="853" on="0"/> - <pt x="609" y="802" on="1"/> - <pt x="723" y="772" on="0"/> - <pt x="781" y="738" on="1"/> - <pt x="966" y="631" on="0"/> - <pt x="966" y="408" on="1"/> - <pt x="966" y="206" on="0"/> - <pt x="833" y="85" on="1"/> - <pt x="700" y="-37" on="0"/> - <pt x="483" y="-37" on="1"/> - <pt x="366" y="-37" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 65 values pushed */ - 0 0 25 40 30 8 40 46 48 196 46 2 30 0 1 1 38 28 27 18 17 16 1 0 8 - 0 2 3 0 0 14 0 0 23 41 34 12 9 42 48 196 38 18 17 16 4 13 42 34 27 - 0 0 28 27 23 1 0 1 5 48 196 1 0 1 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - CALL[ ] - SZP0[ ] - SZP1[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="threequarters" xMin="111" yMin="-37" xMax="1597" yMax="1517"> - <contour> - <pt x="123" y="1353" on="1"/> - <pt x="123" y="1465" on="1"/> - <pt x="237" y="1503" on="0"/> - <pt x="349" y="1503" on="1"/> - <pt x="631" y="1503" on="0"/> - <pt x="631" y="1295" on="1"/> - <pt x="631" y="1199" on="0"/> - <pt x="562" y="1137" on="1"/> - <pt x="521" y="1101" on="0"/> - <pt x="440" y="1071" on="1"/> - <pt x="568" y="1038" on="0"/> - <pt x="619" y="970" on="1"/> - <pt x="660" y="914" on="0"/> - <pt x="660" y="832" on="1"/> - <pt x="660" y="711" on="0"/> - <pt x="573" y="641" on="1"/> - <pt x="487" y="570" on="0"/> - <pt x="335" y="570" on="1"/> - <pt x="233" y="570" on="0"/> - <pt x="111" y="599" on="1"/> - <pt x="111" y="721" on="1"/> - <pt x="246" y="670" on="0"/> - <pt x="324" y="670" on="1"/> - <pt x="504" y="670" on="0"/> - <pt x="504" y="831" on="1"/> - <pt x="504" y="1015" on="0"/> - <pt x="244" y="1015" on="1"/> - <pt x="193" y="1015" on="1"/> - <pt x="193" y="1108" on="1"/> - <pt x="237" y="1108" on="1"/> - <pt x="481" y="1108" on="0"/> - <pt x="481" y="1275" on="1"/> - <pt x="481" y="1403" on="0"/> - <pt x="326" y="1403" on="1"/> - <pt x="235" y="1403" on="0"/> - </contour> - <contour> - <pt x="1338" y="0" on="1"/> - <pt x="1338" y="242" on="1"/> - <pt x="931" y="242" on="1"/> - <pt x="931" y="355" on="1"/> - <pt x="1334" y="888" on="1"/> - <pt x="1473" y="888" on="1"/> - <pt x="1473" y="359" on="1"/> - <pt x="1597" y="359" on="1"/> - <pt x="1597" y="242" on="1"/> - <pt x="1473" y="242" on="1"/> - <pt x="1473" y="0" on="1"/> - </contour> - <contour> - <pt x="1060" y="359" on="1"/> - <pt x="1338" y="359" on="1"/> - <pt x="1338" y="723" on="1"/> - </contour> - <contour> - <pt x="284" y="-37" on="1"/> - <pt x="1372" y="1517" on="1"/> - <pt x="1507" y="1517" on="1"/> - <pt x="419" y="-37" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 126 values pushed */ - 0 0 33 11 3 22 11 17 48 196 17 48 20 19 17 4 39 41 3 38 41 36 2 51 50 - 29 28 27 26 9 1 0 9 13 3 39 52 49 45 35 4 13 36 0 0 47 46 42 41 38 - 3 36 1 4 48 196 40 39 1 44 43 37 36 3 2 0 14 0 0 31 39 5 24 37 13 - 48 196 50 40 35 2 51 43 42 3 13 40 52 49 46 39 38 37 29 28 27 26 20 19 9 - 1 0 15 13 13 5 35 0 0 48 47 36 35 22 3 40 1 4 48 196 45 44 41 40 3 - 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - MDRP[00100] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="threesuperior" xMin="74" yMin="570" xMax="623" yMax="1503"> - <contour> - <pt x="86" y="1353" on="1"/> - <pt x="86" y="1465" on="1"/> - <pt x="200" y="1503" on="0"/> - <pt x="312" y="1503" on="1"/> - <pt x="594" y="1503" on="0"/> - <pt x="594" y="1295" on="1"/> - <pt x="594" y="1199" on="0"/> - <pt x="525" y="1137" on="1"/> - <pt x="484" y="1101" on="0"/> - <pt x="403" y="1071" on="1"/> - <pt x="531" y="1038" on="0"/> - <pt x="582" y="970" on="1"/> - <pt x="623" y="914" on="0"/> - <pt x="623" y="832" on="1"/> - <pt x="623" y="711" on="0"/> - <pt x="536" y="641" on="1"/> - <pt x="450" y="570" on="0"/> - <pt x="298" y="570" on="1"/> - <pt x="196" y="570" on="0"/> - <pt x="74" y="599" on="1"/> - <pt x="74" y="721" on="1"/> - <pt x="209" y="670" on="0"/> - <pt x="287" y="670" on="1"/> - <pt x="467" y="670" on="0"/> - <pt x="467" y="831" on="1"/> - <pt x="467" y="1015" on="0"/> - <pt x="207" y="1015" on="1"/> - <pt x="156" y="1015" on="1"/> - <pt x="156" y="1108" on="1"/> - <pt x="200" y="1108" on="1"/> - <pt x="444" y="1108" on="0"/> - <pt x="444" y="1275" on="1"/> - <pt x="444" y="1403" on="0"/> - <pt x="289" y="1403" on="1"/> - <pt x="198" y="1403" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 43 values pushed */ - 0 0 33 11 3 22 11 17 48 196 29 28 27 26 20 19 17 9 3 1 0 14 0 0 31 - 39 5 24 37 13 48 196 29 28 27 26 20 19 13 9 5 1 0 - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="tilde" xMin="8" yMin="1283" xMax="674" yMax="1517"> - <contour> - <pt x="8" y="1283" on="1"/> - <pt x="15" y="1376" on="0"/> - <pt x="40" y="1427" on="1"/> - <pt x="86" y="1517" on="0"/> - <pt x="195" y="1517" on="1"/> - <pt x="267" y="1517" on="0"/> - <pt x="328" y="1479" on="1"/> - <pt x="388" y="1442" on="1"/> - <pt x="445" y="1407" on="0"/> - <pt x="475" y="1407" on="1"/> - <pt x="540" y="1407" on="0"/> - <pt x="551" y="1517" on="1"/> - <pt x="674" y="1517" on="1"/> - <pt x="667" y="1423" on="0"/> - <pt x="642" y="1373" on="1"/> - <pt x="597" y="1283" on="0"/> - <pt x="489" y="1283" on="1"/> - <pt x="417" y="1283" on="0"/> - <pt x="354" y="1322" on="1"/> - <pt x="294" y="1359" on="1"/> - <pt x="239" y="1393" on="0"/> - <pt x="207" y="1393" on="1"/> - <pt x="142" y="1393" on="0"/> - <pt x="131" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 30 values pushed */ - 0 0 21 6 4 9 6 16 48 196 4 0 1 12 11 2 13 0 0 1 23 0 16 0 0 - 14 23 12 11 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SZP0[ ] - SRP0[ ] - MDRP[00100] - MDRP[00000] - MDRP[00000] - SZP0[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="trademark" xMin="222" yMin="740" xMax="1764" yMax="1480"> - <contour> - <pt x="469" y="740" on="1"/> - <pt x="469" y="1357" on="1"/> - <pt x="222" y="1357" on="1"/> - <pt x="222" y="1480" on="1"/> - <pt x="888" y="1480" on="1"/> - <pt x="888" y="1357" on="1"/> - <pt x="641" y="1357" on="1"/> - <pt x="641" y="740" on="1"/> - </contour> - <contour> - <pt x="1012" y="740" on="1"/> - <pt x="1012" y="1480" on="1"/> - <pt x="1245" y="1480" on="1"/> - <pt x="1401" y="1053" on="1"/> - <pt x="1551" y="1480" on="1"/> - <pt x="1764" y="1480" on="1"/> - <pt x="1764" y="740" on="1"/> - <pt x="1591" y="740" on="1"/> - <pt x="1591" y="1277" on="1"/> - <pt x="1428" y="802" on="1"/> - <pt x="1310" y="802" on="1"/> - <pt x="1147" y="1234" on="1"/> - <pt x="1147" y="740" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 97 values pushed */ - 1 19 16 2 1 1 3 0 1 18 17 11 3 1 0 3 0 0 0 6 5 2 1 6 3 - 3 1 4 48 196 20 15 14 8 7 0 5 0 13 12 10 9 4 3 0 5 14 18 17 12 - 11 10 5 15 19 3 5 4 2 8 6 3 3 2 0 0 0 16 15 13 1 13 9 8 18 - 1 19 7 6 13 1 0 3 4 48 196 14 13 1 20 19 1 1 0 1 3 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00000] - MDRP[00000] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="two" xMin="102" yMin="0" xMax="941" yMax="1517"> - <contour> - <pt x="102" y="0" on="1"/> - <pt x="102" y="173" on="1"/> - <pt x="170" y="333" on="0"/> - <pt x="332" y="502" on="1"/> - <pt x="440" y="612" on="1"/> - <pt x="538" y="712" on="1"/> - <pt x="731" y="909" on="0"/> - <pt x="731" y="1107" on="1"/> - <pt x="731" y="1248" on="0"/> - <pt x="657" y="1315" on="1"/> - <pt x="597" y="1370" on="0"/> - <pt x="491" y="1370" on="1"/> - <pt x="353" y="1370" on="0"/> - <pt x="139" y="1250" on="1"/> - <pt x="139" y="1424" on="1"/> - <pt x="342" y="1517" on="0"/> - <pt x="517" y="1517" on="1"/> - <pt x="711" y="1517" on="0"/> - <pt x="826" y="1404" on="1"/> - <pt x="941" y="1292" on="0"/> - <pt x="941" y="1102" on="1"/> - <pt x="941" y="971" on="0"/> - <pt x="882" y="870" on="1"/> - <pt x="820" y="766" on="0"/> - <pt x="658" y="620" on="1"/> - <pt x="589" y="558" on="1"/> - <pt x="382" y="370" on="0"/> - <pt x="340" y="173" on="1"/> - <pt x="933" y="173" on="1"/> - <pt x="933" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 58 values pushed */ - 0 0 11 40 16 48 196 16 0 1 14 13 2 0 1 3 0 0 0 28 27 1 13 2 0 - 1 4 48 196 29 0 1 0 14 0 0 7 9 20 48 196 27 28 13 2 20 28 29 28 1 - 14 13 1 1 0 1 3 0 - LOOPCALL[ ] - SRP0[ ] - MDRP[00100] - CALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="twosuperior" xMin="74" yMin="592" xMax="639" yMax="1503"> - <contour> - <pt x="74" y="592" on="1"/> - <pt x="74" y="714" on="1"/> - <pt x="142" y="832" on="0"/> - <pt x="256" y="933" on="1"/> - <pt x="326" y="995" on="1"/> - <pt x="482" y="1133" on="0"/> - <pt x="482" y="1255" on="1"/> - <pt x="482" y="1401" on="0"/> - <pt x="321" y="1401" on="1"/> - <pt x="226" y="1401" on="0"/> - <pt x="96" y="1332" on="1"/> - <pt x="96" y="1449" on="1"/> - <pt x="227" y="1503" on="0"/> - <pt x="347" y="1503" on="1"/> - <pt x="478" y="1503" on="0"/> - <pt x="559" y="1435" on="1"/> - <pt x="639" y="1367" on="0"/> - <pt x="639" y="1260" on="1"/> - <pt x="639" y="1120" on="0"/> - <pt x="455" y="967" on="1"/> - <pt x="402" y="923" on="1"/> - <pt x="269" y="813" on="0"/> - <pt x="246" y="714" on="1"/> - <pt x="635" y="714" on="1"/> - <pt x="635" y="592" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 45 values pushed */ - 0 0 8 11 13 48 196 11 10 2 13 13 1 0 0 24 0 38 1 1 1 4 48 196 23 - 22 1 2 0 14 0 0 6 37 17 48 196 24 23 22 17 11 10 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[1] - MDAP[0] - MDAP[0] - MDAP[0] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="u" xMin="142" yMin="-25" xMax="984" yMax="1086"> - <contour> - <pt x="787" y="0" on="1"/> - <pt x="787" y="203" on="1"/> - <pt x="714" y="102" on="0"/> - <pt x="644" y="50" on="1"/> - <pt x="541" y="-25" on="0"/> - <pt x="418" y="-25" on="1"/> - <pt x="142" y="-25" on="0"/> - <pt x="142" y="306" on="1"/> - <pt x="142" y="1086" on="1"/> - <pt x="339" y="1086" on="1"/> - <pt x="339" y="370" on="1"/> - <pt x="339" y="239" on="0"/> - <pt x="366" y="192" on="1"/> - <pt x="394" y="145" on="0"/> - <pt x="470" y="145" on="1"/> - <pt x="632" y="145" on="0"/> - <pt x="787" y="382" on="1"/> - <pt x="787" y="1086" on="1"/> - <pt x="984" y="1086" on="1"/> - <pt x="984" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 54 values pushed */ - 0 0 14 30 5 48 196 5 2 16 10 7 1 4 8 0 3 19 0 1 0 18 17 9 8 - 1 3 14 0 0 17 16 1 0 4 3 18 10 9 4 1 7 2 4 48 196 19 18 1 8 - 7 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="uacute" xMin="142" yMin="-25" xMax="984" yMax="1604"> - <component glyphName="u" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="308" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ubreve" xMin="142" yMin="-25" xMax="984" yMax="1604"> - <contour> - <pt x="787" y="0" on="1"/> - <pt x="787" y="203" on="1"/> - <pt x="714" y="102" on="0"/> - <pt x="644" y="50" on="1"/> - <pt x="541" y="-25" on="0"/> - <pt x="418" y="-25" on="1"/> - <pt x="142" y="-25" on="0"/> - <pt x="142" y="306" on="1"/> - <pt x="142" y="1086" on="1"/> - <pt x="339" y="1086" on="1"/> - <pt x="339" y="370" on="1"/> - <pt x="339" y="239" on="0"/> - <pt x="366" y="192" on="1"/> - <pt x="394" y="145" on="0"/> - <pt x="470" y="145" on="1"/> - <pt x="632" y="145" on="0"/> - <pt x="787" y="382" on="1"/> - <pt x="787" y="1086" on="1"/> - <pt x="984" y="1086" on="1"/> - <pt x="984" y="0" on="1"/> - </contour> - <contour> - <pt x="230" y="1604" on="1"/> - <pt x="353" y="1604" on="1"/> - <pt x="374" y="1511" on="0"/> - <pt x="428" y="1470" on="1"/> - <pt x="480" y="1431" on="0"/> - <pt x="563" y="1431" on="1"/> - <pt x="657" y="1431" on="0"/> - <pt x="711" y="1480" on="1"/> - <pt x="754" y="1520" on="0"/> - <pt x="773" y="1604" on="1"/> - <pt x="896" y="1604" on="1"/> - <pt x="880" y="1470" on="0"/> - <pt x="807" y="1389" on="1"/> - <pt x="713" y="1283" on="0"/> - <pt x="563" y="1283" on="1"/> - <pt x="406" y="1283" on="0"/> - <pt x="311" y="1398" on="1"/> - <pt x="247" y="1475" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 79 values pushed */ - 0 0 25 40 34 14 30 5 48 196 5 2 16 10 7 1 4 8 0 3 30 29 21 20 4 - 13 34 8 19 0 1 0 18 17 9 8 1 3 14 30 18 0 2 29 21 2 0 9 3 20 - 9 7 2 0 0 17 16 1 0 4 3 18 10 9 4 1 7 2 4 48 196 19 18 1 8 - 7 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SRP0[ ] - MDRP[00100] - LOOPCALL[ ] - CALL[ ] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ucircumflex" xMin="142" yMin="-25" xMax="984" yMax="1604"> - <component glyphName="u" x="0" y="0" flags="0x4"/> - <component glyphName="circumflex" x="222" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="udieresis" xMin="142" yMin="-25" xMax="984" yMax="1456"> - <component glyphName="u" x="0" y="0" flags="0x4"/> - <component glyphName="dieresis" x="222" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ugrave" xMin="142" yMin="-25" xMax="984" yMax="1604"> - <component glyphName="u" x="0" y="0" flags="0x4"/> - <component glyphName="grave" x="148" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="uhungarumlaut" xMin="142" yMin="-25" xMax="1073" yMax="1604"> - <component glyphName="u" x="0" y="0" flags="0x4"/> - <component glyphName="hungarumlaut" x="341" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="umacron" xMin="142" yMin="-25" xMax="984" yMax="1431"> - <component glyphName="u" x="0" y="0" flags="0x4"/> - <component glyphName="macron" x="222" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="underscore" xMin="0" yMin="-148" xMax="1139" yMax="0"> - <contour> - <pt x="0" y="-148" on="1"/> - <pt x="0" y="0" on="1"/> - <pt x="1139" y="0" on="1"/> - <pt x="1139" y="-148" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 24 values pushed */ - 0 0 3 0 7 1 1 1 4 48 196 2 1 1 0 14 3 2 1 1 0 1 2 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="uogonek" xMin="142" yMin="-370" xMax="984" yMax="1086"> - <component glyphName="u" x="0" y="0" flags="0x4"/> - <component glyphName="ogonek" x="465" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="uring" xMin="142" yMin="-25" xMax="984" yMax="1737"> - <component glyphName="u" x="0" y="0" flags="0x4"/> - <component glyphName="ring" x="222" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="utilde" xMin="142" yMin="-25" xMax="984" yMax="1517"> - <contour> - <pt x="787" y="0" on="1"/> - <pt x="787" y="203" on="1"/> - <pt x="714" y="102" on="0"/> - <pt x="644" y="50" on="1"/> - <pt x="541" y="-25" on="0"/> - <pt x="418" y="-25" on="1"/> - <pt x="142" y="-25" on="0"/> - <pt x="142" y="306" on="1"/> - <pt x="142" y="1086" on="1"/> - <pt x="339" y="1086" on="1"/> - <pt x="339" y="370" on="1"/> - <pt x="339" y="239" on="0"/> - <pt x="366" y="192" on="1"/> - <pt x="394" y="145" on="0"/> - <pt x="470" y="145" on="1"/> - <pt x="632" y="145" on="0"/> - <pt x="787" y="382" on="1"/> - <pt x="787" y="1086" on="1"/> - <pt x="984" y="1086" on="1"/> - <pt x="984" y="0" on="1"/> - </contour> - <contour> - <pt x="230" y="1283" on="1"/> - <pt x="237" y="1377" on="0"/> - <pt x="262" y="1427" on="1"/> - <pt x="308" y="1517" on="0"/> - <pt x="417" y="1517" on="1"/> - <pt x="488" y="1517" on="0"/> - <pt x="550" y="1479" on="1"/> - <pt x="610" y="1442" on="1"/> - <pt x="667" y="1407" on="0"/> - <pt x="697" y="1407" on="1"/> - <pt x="762" y="1407" on="0"/> - <pt x="773" y="1517" on="1"/> - <pt x="896" y="1517" on="1"/> - <pt x="889" y="1423" on="0"/> - <pt x="864" y="1373" on="1"/> - <pt x="819" y="1283" on="0"/> - <pt x="711" y="1283" on="1"/> - <pt x="639" y="1283" on="0"/> - <pt x="576" y="1322" on="1"/> - <pt x="516" y="1359" on="1"/> - <pt x="461" y="1393" on="0"/> - <pt x="429" y="1393" on="1"/> - <pt x="364" y="1393" on="0"/> - <pt x="353" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 93 values pushed */ - 0 0 41 6 24 29 6 36 14 30 5 48 196 24 0 5 2 36 1 43 36 20 3 0 8 - 3 0 16 10 7 1 4 8 0 3 1 32 31 2 13 0 0 19 0 1 0 18 17 9 8 - 1 3 14 32 18 0 2 43 31 2 0 9 3 20 9 7 2 0 0 17 16 1 0 4 3 - 18 10 9 4 1 7 2 4 48 196 19 18 1 8 7 1 2 0 - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - CALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP0[ ] - SRP0[ ] - LOOPCALL[ ] - SZP0[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - MDAP[1] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="v" xMin="19" yMin="0" xMax="1012" yMax="1086"> - <contour> - <pt x="404" y="0" on="1"/> - <pt x="19" y="1086" on="1"/> - <pt x="218" y="1086" on="1"/> - <pt x="519" y="241" on="1"/> - <pt x="837" y="1086" on="1"/> - <pt x="1012" y="1086" on="1"/> - <pt x="601" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 22 values pushed */ - 3 1 0 2 6 0 1 0 5 4 2 1 1 3 14 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="w" xMin="11" yMin="0" xMax="1465" yMax="1086"> - <contour> - <pt x="273" y="0" on="1"/> - <pt x="11" y="1086" on="1"/> - <pt x="204" y="1086" on="1"/> - <pt x="400" y="268" on="1"/> - <pt x="650" y="1086" on="1"/> - <pt x="847" y="1086" on="1"/> - <pt x="1067" y="265" on="1"/> - <pt x="1295" y="1086" on="1"/> - <pt x="1465" y="1086" on="1"/> - <pt x="1160" y="0" on="1"/> - <pt x="962" y="0" on="1"/> - <pt x="732" y="841" on="1"/> - <pt x="472" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 35 values pushed */ - 11 6 3 3 1 0 3 12 10 9 0 3 0 8 7 5 4 2 1 1 5 14 12 11 10 - 9 8 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="wcircumflex" xMin="11" yMin="0" xMax="1465" yMax="1604"> - <contour> - <pt x="273" y="0" on="1"/> - <pt x="11" y="1086" on="1"/> - <pt x="204" y="1086" on="1"/> - <pt x="400" y="268" on="1"/> - <pt x="650" y="1086" on="1"/> - <pt x="847" y="1086" on="1"/> - <pt x="1067" y="265" on="1"/> - <pt x="1295" y="1086" on="1"/> - <pt x="1465" y="1086" on="1"/> - <pt x="1160" y="0" on="1"/> - <pt x="962" y="0" on="1"/> - <pt x="732" y="841" on="1"/> - <pt x="472" y="0" on="1"/> - </contour> - <contour> - <pt x="398" y="1283" on="1"/> - <pt x="639" y="1604" on="1"/> - <pt x="857" y="1604" on="1"/> - <pt x="1098" y="1283" on="1"/> - <pt x="950" y="1283" on="1"/> - <pt x="749" y="1485" on="1"/> - <pt x="747" y="1485" on="1"/> - <pt x="546" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 58 values pushed */ - 19 18 2 14 13 3 11 6 3 3 1 0 3 15 14 1 20 17 16 13 3 12 10 9 0 - 3 3 0 8 7 5 4 2 1 1 5 14 20 19 18 17 16 15 14 13 12 11 10 9 8 - 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="x" xMin="28" yMin="0" xMax="993" yMax="1086"> - <contour> - <pt x="28" y="0" on="1"/> - <pt x="381" y="574" on="1"/> - <pt x="40" y="1086" on="1"/> - <pt x="268" y="1086" on="1"/> - <pt x="540" y="679" on="1"/> - <pt x="784" y="1086" on="1"/> - <pt x="966" y="1086" on="1"/> - <pt x="634" y="539" on="1"/> - <pt x="993" y="0" on="1"/> - <pt x="766" y="0" on="1"/> - <pt x="472" y="436" on="1"/> - <pt x="210" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 33 values pushed */ - 10 7 4 1 4 2 0 3 11 9 8 0 3 0 6 5 3 2 1 3 14 11 10 9 8 - 7 6 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="y" xMin="19" yMin="-395" xMax="1012" yMax="1086"> - <contour> - <pt x="404" y="0" on="1"/> - <pt x="19" y="1086" on="1"/> - <pt x="219" y="1086" on="1"/> - <pt x="514" y="253" on="1"/> - <pt x="838" y="1086" on="1"/> - <pt x="1012" y="1086" on="1"/> - <pt x="438" y="-395" on="1"/> - <pt x="233" y="-395" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 31 values pushed */ - 1 3 1 2 2 0 1 0 2 6 2 0 7 6 1 0 5 4 2 1 1 3 14 7 6 - 5 4 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="yacute" xMin="19" yMin="-395" xMax="1012" yMax="1604"> - <component glyphName="y" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="259" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="ycircumflex" xMin="19" yMin="-395" xMax="1012" yMax="1604"> - <contour> - <pt x="404" y="0" on="1"/> - <pt x="19" y="1086" on="1"/> - <pt x="219" y="1086" on="1"/> - <pt x="514" y="253" on="1"/> - <pt x="838" y="1086" on="1"/> - <pt x="1012" y="1086" on="1"/> - <pt x="438" y="-395" on="1"/> - <pt x="233" y="-395" on="1"/> - </contour> - <contour> - <pt x="178" y="1283" on="1"/> - <pt x="419" y="1604" on="1"/> - <pt x="637" y="1604" on="1"/> - <pt x="878" y="1283" on="1"/> - <pt x="730" y="1283" on="1"/> - <pt x="529" y="1485" on="1"/> - <pt x="527" y="1485" on="1"/> - <pt x="326" y="1283" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 54 values pushed */ - 14 13 2 9 8 3 1 3 1 2 2 0 1 0 2 6 2 0 10 9 1 15 12 11 8 - 3 7 6 1 3 0 5 4 2 1 1 3 14 15 14 13 12 11 10 9 8 7 6 5 4 - 3 2 1 0 - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - MDAP[0] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SZP1[ ] - CALL[ ] - SZP1[ ] - SZP0[ ] - CALL[ ] - SZP0[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="ydieresis" xMin="19" yMin="-395" xMax="1012" yMax="1456"> - <component glyphName="y" x="0" y="0" flags="0x4"/> - <component glyphName="dieresis" x="188" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="yen" xMin="25" yMin="0" xMax="1077" yMax="1480"> - <contour> - <pt x="453" y="0" on="1"/> - <pt x="453" y="345" on="1"/> - <pt x="157" y="345" on="1"/> - <pt x="157" y="469" on="1"/> - <pt x="453" y="469" on="1"/> - <pt x="453" y="617" on="1"/> - <pt x="157" y="617" on="1"/> - <pt x="157" y="740" on="1"/> - <pt x="453" y="740" on="1"/> - <pt x="25" y="1480" on="1"/> - <pt x="253" y="1480" on="1"/> - <pt x="575" y="922" on="1"/> - <pt x="577" y="922" on="1"/> - <pt x="900" y="1480" on="1"/> - <pt x="1077" y="1480" on="1"/> - <pt x="650" y="740" on="1"/> - <pt x="946" y="740" on="1"/> - <pt x="946" y="617" on="1"/> - <pt x="650" y="617" on="1"/> - <pt x="650" y="469" on="1"/> - <pt x="946" y="469" on="1"/> - <pt x="946" y="345" on="1"/> - <pt x="650" y="345" on="1"/> - <pt x="650" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 93 values pushed */ - 12 11 2 9 7 3 0 0 18 17 6 5 6 3 7 20 19 4 3 6 3 1 2 4 48 - 196 16 15 8 7 3 22 21 2 1 3 23 0 1 3 0 14 13 10 9 0 3 14 12 11 - 2 15 0 3 21 20 17 16 14 13 6 13 15 10 9 7 6 3 2 6 13 0 0 0 23 - 22 19 18 15 4 4 0 1 4 48 196 8 5 4 1 0 4 0 - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - SRP0[ ] - LOOPCALL[ ] - SRP0[ ] - LOOPCALL[ ] - CALL[ ] - CALL[ ] - SLOOP[ ] - MIAP[1] - ALIGNRP[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - CALL[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="z" xMin="74" yMin="0" xMax="950" yMax="1086"> - <contour> - <pt x="74" y="0" on="1"/> - <pt x="74" y="148" on="1"/> - <pt x="695" y="938" on="1"/> - <pt x="105" y="938" on="1"/> - <pt x="105" y="1086" on="1"/> - <pt x="938" y="1086" on="1"/> - <pt x="938" y="938" on="1"/> - <pt x="317" y="148" on="1"/> - <pt x="950" y="148" on="1"/> - <pt x="950" y="0" on="1"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 46 values pushed */ - 0 0 6 3 2 7 2 4 8 7 1 7 2 0 2 4 48 196 9 0 1 0 5 4 1 - 14 7 2 2 5 3 3 9 8 1 6 5 1 4 3 1 1 0 1 4 0 - LOOPCALL[ ] - CALL[ ] - CALL[ ] - MIAP[1] - ALIGNRP[ ] - CALL[ ] - SSW[ ] - SSWCI[ ] - LOOPCALL[ ] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - <TTGlyph name="zacute" xMin="74" yMin="0" xMax="950" yMax="1604"> - <component glyphName="z" x="0" y="0" flags="0x4"/> - <component glyphName="acute" x="257" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="zcaron" xMin="74" yMin="0" xMax="950" yMax="1604"> - <component glyphName="z" x="0" y="0" flags="0x4"/> - <component glyphName="caron" x="174" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="zdotaccent" xMin="74" yMin="0" xMax="950" yMax="1480"> - <component glyphName="z" x="0" y="0" flags="0x4"/> - <component glyphName="dotaccent" x="168" y="0" flags="0x4"/> - </TTGlyph> - - <TTGlyph name="zero" xMin="80" yMin="-37" xMax="1058" yMax="1517"> - <contour> - <pt x="569" y="1517" on="1"/> - <pt x="794" y="1517" on="0"/> - <pt x="926" y="1309" on="1"/> - <pt x="1058" y="1101" on="0"/> - <pt x="1058" y="744" on="1"/> - <pt x="1058" y="378" on="0"/> - <pt x="926" y="171" on="1"/> - <pt x="794" y="-37" on="0"/> - <pt x="563" y="-37" on="1"/> - <pt x="365" y="-37" on="0"/> - <pt x="240" y="132" on="1"/> - <pt x="80" y="346" on="0"/> - <pt x="80" y="742" on="1"/> - <pt x="80" y="1101" on="0"/> - <pt x="212" y="1308" on="1"/> - <pt x="344" y="1517" on="0"/> - </contour> - <contour> - <pt x="569" y="1369" on="1"/> - <pt x="435" y="1369" on="0"/> - <pt x="363" y="1205" on="1"/> - <pt x="290" y="1040" on="0"/> - <pt x="290" y="741" on="1"/> - <pt x="290" y="444" on="0"/> - <pt x="363" y="277" on="1"/> - <pt x="435" y="111" on="0"/> - <pt x="570" y="111" on="1"/> - <pt x="692" y="111" on="0"/> - <pt x="759" y="233" on="1"/> - <pt x="849" y="395" on="0"/> - <pt x="849" y="743" on="1"/> - <pt x="849" y="1045" on="0"/> - <pt x="776" y="1206" on="1"/> - <pt x="701" y="1369" on="0"/> - </contour> - <instructions><assembly> - NPUSHB[ ] /* 27 values pushed */ - 0 0 24 40 8 16 40 0 48 196 8 2 0 0 14 0 0 28 43 4 20 9 12 48 196 - 12 4 - MDAP[1] - MDAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - CALL[ ] - MIAP[1] - MIAP[1] - SSW[ ] - SSWCI[ ] - SRP0[ ] - MIRP[01101] - SRP0[ ] - MIRP[01101] - SSW[ ] - SSWCI[ ] - IUP[1] - IUP[0] - </assembly></instructions> - </TTGlyph> - - </glyf> - - <kern> - <version value="0"/> - <kernsubtable coverage="1" format="0"> - <pair l="A" r="C" v="-76"/> - <pair l="A" r="Ccedilla" v="-80"/> - <pair l="A" r="G" v="-63"/> - <pair l="A" r="O" v="-67"/> - <pair l="A" r="Odieresis" v="-67"/> - <pair l="A" r="Q" v="-70"/> - <pair l="A" r="T" v="-178"/> - <pair l="A" r="U" v="-71"/> - <pair l="A" r="Uacute" v="-71"/> - <pair l="A" r="Ucircumflex" v="-71"/> - <pair l="A" r="Udieresis" v="-71"/> - <pair l="A" r="Ugrave" v="-71"/> - <pair l="A" r="V" v="-144"/> - <pair l="A" r="W" v="-90"/> - <pair l="A" r="Y" v="-185"/> - <pair l="A" r="a" v="-9"/> - <pair l="A" r="b" v="-4"/> - <pair l="A" r="c" v="-40"/> - <pair l="A" r="ccedilla" v="-41"/> - <pair l="A" r="comma" v="28"/> - <pair l="A" r="d" v="-32"/> - <pair l="A" r="e" v="-41"/> - <pair l="A" r="g" v="-46"/> - <pair l="A" r="guillemotleft" v="-76"/> - <pair l="A" r="guilsinglleft" v="-56"/> - <pair l="A" r="hyphen" v="-4"/> - <pair l="A" r="o" v="-36"/> - <pair l="A" r="period" v="27"/> - <pair l="A" r="q" v="-32"/> - <pair l="A" r="quotedblright" v="-117"/> - <pair l="A" r="quoteright" v="-130"/> - <pair l="A" r="t" v="-30"/> - <pair l="A" r="u" v="-29"/> - <pair l="A" r="v" v="-65"/> - <pair l="A" r="w" v="-29"/> - <pair l="A" r="y" v="-65"/> - <pair l="Aacute" r="C" v="-76"/> - <pair l="Aacute" r="G" v="-63"/> - <pair l="Aacute" r="O" v="-67"/> - <pair l="Aacute" r="Q" v="-70"/> - <pair l="Aacute" r="T" v="-178"/> - <pair l="Aacute" r="U" v="-71"/> - <pair l="Aacute" r="V" v="-144"/> - <pair l="Aacute" r="W" v="-90"/> - <pair l="Aacute" r="Y" v="-185"/> - <pair l="Aacute" r="a" v="-9"/> - <pair l="Aacute" r="b" v="-4"/> - <pair l="Aacute" r="c" v="-40"/> - <pair l="Aacute" r="comma" v="28"/> - <pair l="Aacute" r="d" v="-32"/> - <pair l="Aacute" r="e" v="-41"/> - <pair l="Aacute" r="g" v="-46"/> - <pair l="Aacute" r="guillemotleft" v="-76"/> - <pair l="Aacute" r="guilsinglleft" v="-56"/> - <pair l="Aacute" r="hyphen" v="-4"/> - <pair l="Aacute" r="o" v="-36"/> - <pair l="Aacute" r="period" v="27"/> - <pair l="Aacute" r="q" v="-32"/> - <pair l="Aacute" r="quoteright" v="-130"/> - <pair l="Aacute" r="t" v="-30"/> - <pair l="Aacute" r="u" v="-29"/> - <pair l="Aacute" r="v" v="-65"/> - <pair l="Aacute" r="w" v="-29"/> - <pair l="Aacute" r="y" v="-65"/> - <pair l="Acircumflex" r="C" v="-76"/> - <pair l="Acircumflex" r="G" v="-63"/> - <pair l="Acircumflex" r="O" v="-67"/> - <pair l="Acircumflex" r="Q" v="-70"/> - <pair l="Acircumflex" r="T" v="-178"/> - <pair l="Acircumflex" r="U" v="-71"/> - <pair l="Acircumflex" r="V" v="-144"/> - <pair l="Acircumflex" r="W" v="-90"/> - <pair l="Acircumflex" r="Y" v="-185"/> - <pair l="Acircumflex" r="comma" v="28"/> - <pair l="Acircumflex" r="period" v="27"/> - <pair l="Adieresis" r="C" v="-76"/> - <pair l="Adieresis" r="G" v="-63"/> - <pair l="Adieresis" r="O" v="-67"/> - <pair l="Adieresis" r="Q" v="-70"/> - <pair l="Adieresis" r="T" v="-178"/> - <pair l="Adieresis" r="U" v="-71"/> - <pair l="Adieresis" r="V" v="-144"/> - <pair l="Adieresis" r="W" v="-90"/> - <pair l="Adieresis" r="Y" v="-185"/> - <pair l="Adieresis" r="a" v="-9"/> - <pair l="Adieresis" r="b" v="-4"/> - <pair l="Adieresis" r="c" v="-40"/> - <pair l="Adieresis" r="comma" v="28"/> - <pair l="Adieresis" r="d" v="-32"/> - <pair l="Adieresis" r="g" v="-46"/> - <pair l="Adieresis" r="guillemotleft" v="-76"/> - <pair l="Adieresis" r="guilsinglleft" v="-56"/> - <pair l="Adieresis" r="hyphen" v="-4"/> - <pair l="Adieresis" r="o" v="-36"/> - <pair l="Adieresis" r="period" v="27"/> - <pair l="Adieresis" r="q" v="-32"/> - <pair l="Adieresis" r="quotedblright" v="-117"/> - <pair l="Adieresis" r="quoteright" v="-130"/> - <pair l="Adieresis" r="t" v="-30"/> - <pair l="Adieresis" r="u" v="-29"/> - <pair l="Adieresis" r="v" v="-65"/> - <pair l="Adieresis" r="w" v="-29"/> - <pair l="Adieresis" r="y" v="-65"/> - <pair l="Agrave" r="C" v="-76"/> - <pair l="Agrave" r="G" v="-63"/> - <pair l="Agrave" r="O" v="-67"/> - <pair l="Agrave" r="Q" v="-70"/> - <pair l="Agrave" r="T" v="-178"/> - <pair l="Agrave" r="U" v="-71"/> - <pair l="Agrave" r="V" v="-144"/> - <pair l="Agrave" r="W" v="-90"/> - <pair l="Agrave" r="Y" v="-185"/> - <pair l="Agrave" r="comma" v="28"/> - <pair l="Agrave" r="period" v="27"/> - <pair l="Aring" r="C" v="-76"/> - <pair l="Aring" r="G" v="-63"/> - <pair l="Aring" r="O" v="-67"/> - <pair l="Aring" r="Q" v="-70"/> - <pair l="Aring" r="T" v="-178"/> - <pair l="Aring" r="U" v="-71"/> - <pair l="Aring" r="V" v="-144"/> - <pair l="Aring" r="W" v="-90"/> - <pair l="Aring" r="Y" v="-185"/> - <pair l="Aring" r="a" v="-9"/> - <pair l="Aring" r="b" v="-4"/> - <pair l="Aring" r="c" v="-40"/> - <pair l="Aring" r="comma" v="28"/> - <pair l="Aring" r="d" v="-32"/> - <pair l="Aring" r="e" v="-41"/> - <pair l="Aring" r="g" v="-46"/> - <pair l="Aring" r="guillemotleft" v="-76"/> - <pair l="Aring" r="guilsinglleft" v="-56"/> - <pair l="Aring" r="hyphen" v="-4"/> - <pair l="Aring" r="o" v="-36"/> - <pair l="Aring" r="period" v="27"/> - <pair l="Aring" r="q" v="-32"/> - <pair l="Aring" r="quotedblright" v="-117"/> - <pair l="Aring" r="quoteright" v="-130"/> - <pair l="Aring" r="t" v="-30"/> - <pair l="Aring" r="u" v="-29"/> - <pair l="Aring" r="v" v="-65"/> - <pair l="Aring" r="w" v="-29"/> - <pair l="Aring" r="y" v="-65"/> - <pair l="Atilde" r="C" v="-76"/> - <pair l="Atilde" r="G" v="-63"/> - <pair l="Atilde" r="O" v="-67"/> - <pair l="Atilde" r="Q" v="-70"/> - <pair l="Atilde" r="T" v="-178"/> - <pair l="Atilde" r="U" v="-71"/> - <pair l="Atilde" r="V" v="-144"/> - <pair l="Atilde" r="W" v="-90"/> - <pair l="Atilde" r="Y" v="-185"/> - <pair l="Atilde" r="comma" v="28"/> - <pair l="Atilde" r="period" v="27"/> - <pair l="B" r="A" v="-39"/> - <pair l="B" r="AE" v="-61"/> - <pair l="B" r="Aacute" v="-39"/> - <pair l="B" r="Acircumflex" v="-39"/> - <pair l="B" r="Adieresis" v="-39"/> - <pair l="B" r="Aring" v="-39"/> - <pair l="B" r="Atilde" v="-39"/> - <pair l="B" r="O" v="-37"/> - <pair l="B" r="OE" v="-37"/> - <pair l="B" r="Oacute" v="-37"/> - <pair l="B" r="Ocircumflex" v="-37"/> - <pair l="B" r="Odieresis" v="-37"/> - <pair l="B" r="Ograve" v="-37"/> - <pair l="B" r="Oslash" v="-30"/> - <pair l="B" r="V" v="-69"/> - <pair l="B" r="W" v="-50"/> - <pair l="B" r="Y" v="-82"/> - <pair l="C" r="A" v="3"/> - <pair l="C" r="AE" v="-5"/> - <pair l="C" r="Aacute" v="3"/> - <pair l="C" r="Adieresis" v="3"/> - <pair l="C" r="Aring" v="3"/> - <pair l="C" r="H" v="-56"/> - <pair l="C" r="K" v="-69"/> - <pair l="C" r="O" v="-84"/> - <pair l="C" r="Oacute" v="-84"/> - <pair l="C" r="Odieresis" v="-84"/> - <pair l="Ccedilla" r="A" v="0"/> - <pair l="D" r="A" v="-72"/> - <pair l="D" r="Aacute" v="-72"/> - <pair l="D" r="Acircumflex" v="-72"/> - <pair l="D" r="Adieresis" v="-72"/> - <pair l="D" r="Agrave" v="-72"/> - <pair l="D" r="Aring" v="-72"/> - <pair l="D" r="Atilde" v="-72"/> - <pair l="D" r="J" v="-247"/> - <pair l="D" r="T" v="-63"/> - <pair l="D" r="V" v="-69"/> - <pair l="D" r="W" v="-33"/> - <pair l="D" r="X" v="-87"/> - <pair l="D" r="Y" v="-100"/> - <pair l="F" r="A" v="-122"/> - <pair l="F" r="Aacute" v="-122"/> - <pair l="F" r="Acircumflex" v="-122"/> - <pair l="F" r="Adieresis" v="-122"/> - <pair l="F" r="Agrave" v="-122"/> - <pair l="F" r="Aring" v="-122"/> - <pair l="F" r="Atilde" v="-122"/> - <pair l="F" r="J" v="-251"/> - <pair l="F" r="O" v="-33"/> - <pair l="F" r="Odieresis" v="-32"/> - <pair l="F" r="a" v="-102"/> - <pair l="F" r="aacute" v="-102"/> - <pair l="F" r="adieresis" v="-77"/> - <pair l="F" r="ae" v="-102"/> - <pair l="F" r="aring" v="-102"/> - <pair l="F" r="comma" v="-189"/> - <pair l="F" r="e" v="-35"/> - <pair l="F" r="eacute" v="-35"/> - <pair l="F" r="hyphen" v="4"/> - <pair l="F" r="i" v="-4"/> - <pair l="F" r="j" v="-6"/> - <pair l="F" r="o" v="-35"/> - <pair l="F" r="oacute" v="-35"/> - <pair l="F" r="odieresis" v="-35"/> - <pair l="F" r="oe" v="-36"/> - <pair l="F" r="oslash" v="-64"/> - <pair l="F" r="period" v="-190"/> - <pair l="F" r="r" v="-66"/> - <pair l="F" r="u" v="-60"/> - <pair l="G" r="A" v="-20"/> - <pair l="G" r="AE" v="-24"/> - <pair l="G" r="Aacute" v="-20"/> - <pair l="G" r="Acircumflex" v="-20"/> - <pair l="G" r="Adieresis" v="-20"/> - <pair l="G" r="Agrave" v="-20"/> - <pair l="G" r="Aring" v="-20"/> - <pair l="G" r="Atilde" v="-20"/> - <pair l="G" r="T" v="-14"/> - <pair l="G" r="V" v="-29"/> - <pair l="G" r="W" v="-22"/> - <pair l="G" r="Y" v="-30"/> - <pair l="J" r="A" v="-23"/> - <pair l="J" r="AE" v="-24"/> - <pair l="J" r="Adieresis" v="-23"/> - <pair l="J" r="Aring" v="-23"/> - <pair l="K" r="C" v="-148"/> - <pair l="K" r="G" v="-138"/> - <pair l="K" r="O" v="-140"/> - <pair l="K" r="OE" v="-139"/> - <pair l="K" r="Oacute" v="-139"/> - <pair l="K" r="Odieresis" v="-139"/> - <pair l="K" r="S" v="-8"/> - <pair l="K" r="T" v="3"/> - <pair l="K" r="a" v="-46"/> - <pair l="K" r="adieresis" v="-46"/> - <pair l="K" r="ae" v="-46"/> - <pair l="K" r="aring" v="-46"/> - <pair l="K" r="e" v="-105"/> - <pair l="K" r="hyphen" v="-173"/> - <pair l="K" r="o" v="-94"/> - <pair l="K" r="oacute" v="-94"/> - <pair l="K" r="odieresis" v="-94"/> - <pair l="K" r="u" v="-63"/> - <pair l="K" r="udieresis" v="-63"/> - <pair l="K" r="y" v="-138"/> - <pair l="L" r="A" v="60"/> - <pair l="L" r="AE" v="59"/> - <pair l="L" r="Aacute" v="60"/> - <pair l="L" r="Adieresis" v="60"/> - <pair l="L" r="Aring" v="60"/> - <pair l="L" r="C" v="-76"/> - <pair l="L" r="Ccedilla" v="-84"/> - <pair l="L" r="G" v="-65"/> - <pair l="L" r="O" v="-71"/> - <pair l="L" r="Oacute" v="-70"/> - <pair l="L" r="Ocircumflex" v="-70"/> - <pair l="L" r="Odieresis" v="-70"/> - <pair l="L" r="Ograve" v="-70"/> - <pair l="L" r="Otilde" v="-70"/> - <pair l="L" r="S" v="11"/> - <pair l="L" r="T" v="-188"/> - <pair l="L" r="U" v="-54"/> - <pair l="L" r="Udieresis" v="-54"/> - <pair l="L" r="V" v="-198"/> - <pair l="L" r="W" v="-108"/> - <pair l="L" r="Y" v="-208"/> - <pair l="L" r="hyphen" v="-259"/> - <pair l="L" r="quotedblright" v="-260"/> - <pair l="L" r="quoteright" v="-277"/> - <pair l="L" r="u" v="-9"/> - <pair l="L" r="udieresis" v="-9"/> - <pair l="L" r="y" v="-102"/> - <pair l="N" r="A" v="-4"/> - <pair l="N" r="AE" v="-5"/> - <pair l="N" r="Aacute" v="-4"/> - <pair l="N" r="Adieresis" v="-4"/> - <pair l="N" r="Aring" v="-4"/> - <pair l="N" r="C" v="-11"/> - <pair l="N" r="Ccedilla" v="-11"/> - <pair l="N" r="G" v="0"/> - <pair l="N" r="O" v="-2"/> - <pair l="N" r="Oacute" v="-1"/> - <pair l="N" r="Odieresis" v="-1"/> - <pair l="N" r="a" v="-24"/> - <pair l="N" r="aacute" v="-24"/> - <pair l="N" r="adieresis" v="-24"/> - <pair l="N" r="ae" v="-25"/> - <pair l="N" r="aring" v="-24"/> - <pair l="N" r="comma" v="-1"/> - <pair l="N" r="e" v="-5"/> - <pair l="N" r="eacute" v="-5"/> - <pair l="N" r="o" v="-2"/> - <pair l="N" r="oacute" v="-2"/> - <pair l="N" r="odieresis" v="-2"/> - <pair l="N" r="oslash" v="-25"/> - <pair l="N" r="period" v="-2"/> - <pair l="N" r="u" v="-3"/> - <pair l="N" r="udieresis" v="-3"/> - <pair l="O" r="A" v="-66"/> - <pair l="O" r="AE" v="-106"/> - <pair l="O" r="Aacute" v="-66"/> - <pair l="O" r="Adieresis" v="-66"/> - <pair l="O" r="Aring" v="-66"/> - <pair l="O" r="T" v="-66"/> - <pair l="O" r="V" v="-72"/> - <pair l="O" r="W" v="-31"/> - <pair l="O" r="X" v="-84"/> - <pair l="O" r="Y" v="-106"/> - <pair l="Oacute" r="A" v="-66"/> - <pair l="Oacute" r="T" v="-67"/> - <pair l="Oacute" r="V" v="-73"/> - <pair l="Oacute" r="W" v="-32"/> - <pair l="Oacute" r="Y" v="-107"/> - <pair l="Ocircumflex" r="T" v="-67"/> - <pair l="Ocircumflex" r="V" v="-73"/> - <pair l="Ocircumflex" r="Y" v="-107"/> - <pair l="Odieresis" r="A" v="-66"/> - <pair l="Odieresis" r="T" v="-67"/> - <pair l="Odieresis" r="V" v="-73"/> - <pair l="Odieresis" r="W" v="-32"/> - <pair l="Odieresis" r="X" v="-84"/> - <pair l="Odieresis" r="Y" v="-107"/> - <pair l="Ograve" r="T" v="-67"/> - <pair l="Ograve" r="V" v="-73"/> - <pair l="Ograve" r="Y" v="-107"/> - <pair l="Oslash" r="A" v="-65"/> - <pair l="Otilde" r="T" v="-67"/> - <pair l="Otilde" r="V" v="-73"/> - <pair l="Otilde" r="Y" v="-107"/> - <pair l="P" r="A" v="-125"/> - <pair l="P" r="AE" v="-226"/> - <pair l="P" r="Aacute" v="-125"/> - <pair l="P" r="Adieresis" v="-125"/> - <pair l="P" r="Aring" v="-125"/> - <pair l="P" r="J" v="-249"/> - <pair l="P" r="a" v="-32"/> - <pair l="P" r="aacute" v="-32"/> - <pair l="P" r="adieresis" v="-32"/> - <pair l="P" r="ae" v="-32"/> - <pair l="P" r="aring" v="-32"/> - <pair l="P" r="comma" v="-226"/> - <pair l="P" r="e" v="-29"/> - <pair l="P" r="eacute" v="-29"/> - <pair l="P" r="hyphen" v="-27"/> - <pair l="P" r="o" v="-30"/> - <pair l="P" r="oacute" v="-30"/> - <pair l="P" r="odieresis" v="-30"/> - <pair l="P" r="oe" v="-32"/> - <pair l="P" r="oslash" v="-58"/> - <pair l="P" r="period" v="-227"/> - <pair l="R" r="C" v="-87"/> - <pair l="R" r="Ccedilla" v="-87"/> - <pair l="R" r="G" v="-76"/> - <pair l="R" r="O" v="-78"/> - <pair l="R" r="OE" v="-77"/> - <pair l="R" r="Oacute" v="-78"/> - <pair l="R" r="Odieresis" v="-78"/> - <pair l="R" r="T" v="-64"/> - <pair l="R" r="U" v="-75"/> - <pair l="R" r="Udieresis" v="-75"/> - <pair l="R" r="V" v="-97"/> - <pair l="R" r="W" v="-78"/> - <pair l="R" r="Y" v="-112"/> - <pair l="R" r="a" v="-39"/> - <pair l="R" r="aacute" v="-39"/> - <pair l="R" r="adieresis" v="-39"/> - <pair l="R" r="ae" v="-37"/> - <pair l="R" r="aring" v="-39"/> - <pair l="R" r="e" v="-82"/> - <pair l="R" r="eacute" v="-82"/> - <pair l="R" r="hyphen" v="-98"/> - <pair l="R" r="o" v="-77"/> - <pair l="R" r="oacute" v="-77"/> - <pair l="R" r="odieresis" v="-77"/> - <pair l="R" r="oe" v="-81"/> - <pair l="R" r="u" v="-56"/> - <pair l="R" r="uacute" v="-56"/> - <pair l="R" r="udieresis" v="-56"/> - <pair l="R" r="y" v="-44"/> - <pair l="S" r="A" v="-36"/> - <pair l="S" r="AE" v="-60"/> - <pair l="S" r="Aacute" v="-36"/> - <pair l="S" r="Adieresis" v="-36"/> - <pair l="S" r="Aring" v="-36"/> - <pair l="S" r="T" v="-27"/> - <pair l="S" r="V" v="-42"/> - <pair l="S" r="W" v="-35"/> - <pair l="S" r="Y" v="-43"/> - <pair l="S" r="t" v="-48"/> - <pair l="T" r="A" v="-180"/> - <pair l="T" r="AE" v="-182"/> - <pair l="T" r="Aacute" v="-180"/> - <pair l="T" r="Acircumflex" v="-180"/> - <pair l="T" r="Adieresis" v="-180"/> - <pair l="T" r="Agrave" v="-180"/> - <pair l="T" r="Aring" v="-180"/> - <pair l="T" r="Atilde" v="-180"/> - <pair l="T" r="C" v="-75"/> - <pair l="T" r="G" v="-66"/> - <pair l="T" r="J" v="-235"/> - <pair l="T" r="O" v="-66"/> - <pair l="T" r="OE" v="-65"/> - <pair l="T" r="Oacute" v="-66"/> - <pair l="T" r="Ocircumflex" v="-66"/> - <pair l="T" r="Odieresis" v="-66"/> - <pair l="T" r="Ograve" v="-66"/> - <pair l="T" r="Oslash" v="-66"/> - <pair l="T" r="Otilde" v="-66"/> - <pair l="T" r="S" v="-5"/> - <pair l="T" r="V" v="58"/> - <pair l="T" r="W" v="65"/> - <pair l="T" r="Y" v="59"/> - <pair l="T" r="a" v="-211"/> - <pair l="T" r="ae" v="-211"/> - <pair l="T" r="c" v="-191"/> - <pair l="T" r="colon" v="-238"/> - <pair l="T" r="comma" v="-179"/> - <pair l="T" r="e" v="-192"/> - <pair l="T" r="g" v="-196"/> - <pair l="T" r="guillemotleft" v="-227"/> - <pair l="T" r="guilsinglleft" v="-206"/> - <pair l="T" r="hyphen" v="-140"/> - <pair l="T" r="i" v="12"/> - <pair l="T" r="j" v="9"/> - <pair l="T" r="o" v="-188"/> - <pair l="T" r="oslash" v="-208"/> - <pair l="T" r="period" v="-180"/> - <pair l="T" r="r" v="-183"/> - <pair l="T" r="s" v="-216"/> - <pair l="T" r="semicolon" v="-229"/> - <pair l="T" r="u" v="-182"/> - <pair l="T" r="v" v="-184"/> - <pair l="T" r="w" v="-175"/> - <pair l="T" r="y" v="-184"/> - <pair l="U" r="A" v="-64"/> - <pair l="U" r="AE" v="-89"/> - <pair l="U" r="Aacute" v="-64"/> - <pair l="U" r="Acircumflex" v="-64"/> - <pair l="U" r="Adieresis" v="-64"/> - <pair l="U" r="Aring" v="-64"/> - <pair l="U" r="Atilde" v="-64"/> - <pair l="U" r="comma" v="-37"/> - <pair l="U" r="m" v="-15"/> - <pair l="U" r="n" v="-15"/> - <pair l="U" r="p" v="-15"/> - <pair l="U" r="period" v="-33"/> - <pair l="U" r="r" v="-15"/> - <pair l="Uacute" r="A" v="-64"/> - <pair l="Uacute" r="comma" v="-37"/> - <pair l="Uacute" r="m" v="-15"/> - <pair l="Uacute" r="n" v="-15"/> - <pair l="Uacute" r="p" v="-15"/> - <pair l="Uacute" r="period" v="-33"/> - <pair l="Uacute" r="r" v="-15"/> - <pair l="Ucircumflex" r="A" v="-64"/> - <pair l="Udieresis" r="A" v="-64"/> - <pair l="Udieresis" r="b" v="-14"/> - <pair l="Udieresis" r="comma" v="-37"/> - <pair l="Udieresis" r="m" v="-15"/> - <pair l="Udieresis" r="n" v="-15"/> - <pair l="Udieresis" r="p" v="-15"/> - <pair l="Udieresis" r="period" v="-33"/> - <pair l="Udieresis" r="r" v="-15"/> - <pair l="Ugrave" r="A" v="-64"/> - <pair l="V" r="A" v="-125"/> - <pair l="V" r="AE" v="-200"/> - <pair l="V" r="Aacute" v="-125"/> - <pair l="V" r="Acircumflex" v="-125"/> - <pair l="V" r="Adieresis" v="-125"/> - <pair l="V" r="Agrave" v="-125"/> - <pair l="V" r="Aring" v="-125"/> - <pair l="V" r="Atilde" v="-125"/> - <pair l="V" r="C" v="-67"/> - <pair l="V" r="G" v="-58"/> - <pair l="V" r="O" v="-58"/> - <pair l="V" r="Oacute" v="-57"/> - <pair l="V" r="Ocircumflex" v="-57"/> - <pair l="V" r="Odieresis" v="-57"/> - <pair l="V" r="Ograve" v="-57"/> - <pair l="V" r="Oslash" v="-58"/> - <pair l="V" r="Otilde" v="-57"/> - <pair l="V" r="S" v="-23"/> - <pair l="V" r="T" v="74"/> - <pair l="V" r="a" v="-96"/> - <pair l="V" r="ae" v="-96"/> - <pair l="V" r="colon" v="-83"/> - <pair l="V" r="comma" v="-153"/> - <pair l="V" r="e" v="-101"/> - <pair l="V" r="g" v="-100"/> - <pair l="V" r="guillemotleft" v="-142"/> - <pair l="V" r="guilsinglleft" v="-122"/> - <pair l="V" r="hyphen" v="-48"/> - <pair l="V" r="i" v="16"/> - <pair l="V" r="o" v="-101"/> - <pair l="V" r="oslash" v="-124"/> - <pair l="V" r="period" v="-154"/> - <pair l="V" r="r" v="-66"/> - <pair l="V" r="semicolon" v="-79"/> - <pair l="V" r="u" v="-64"/> - <pair l="V" r="y" v="-4"/> - <pair l="W" r="A" v="-100"/> - <pair l="W" r="AE" v="-142"/> - <pair l="W" r="Aacute" v="-100"/> - <pair l="W" r="Acircumflex" v="-100"/> - <pair l="W" r="Adieresis" v="-100"/> - <pair l="W" r="Agrave" v="-100"/> - <pair l="W" r="Aring" v="-100"/> - <pair l="W" r="Atilde" v="-100"/> - <pair l="W" r="C" v="-50"/> - <pair l="W" r="G" v="-39"/> - <pair l="W" r="O" v="-41"/> - <pair l="W" r="Oacute" v="-40"/> - <pair l="W" r="Ocircumflex" v="-40"/> - <pair l="W" r="Odieresis" v="-40"/> - <pair l="W" r="Ograve" v="-40"/> - <pair l="W" r="Oslash" v="-34"/> - <pair l="W" r="Otilde" v="-40"/> - <pair l="W" r="S" v="-23"/> - <pair l="W" r="T" v="65"/> - <pair l="W" r="a" v="-84"/> - <pair l="W" r="ae" v="-84"/> - <pair l="W" r="colon" v="-73"/> - <pair l="W" r="comma" v="-106"/> - <pair l="W" r="e" v="-72"/> - <pair l="W" r="g" v="-75"/> - <pair l="W" r="guillemotleft" v="-109"/> - <pair l="W" r="guilsinglleft" v="-89"/> - <pair l="W" r="hyphen" v="-17"/> - <pair l="W" r="i" v="8"/> - <pair l="W" r="o" v="-69"/> - <pair l="W" r="oslash" v="-91"/> - <pair l="W" r="period" v="-107"/> - <pair l="W" r="r" v="-57"/> - <pair l="W" r="semicolon" v="-70"/> - <pair l="W" r="u" v="-54"/> - <pair l="W" r="y" v="4"/> - <pair l="X" r="C" v="-89"/> - <pair l="X" r="O" v="-81"/> - <pair l="X" r="Odieresis" v="-80"/> - <pair l="X" r="Q" v="-81"/> - <pair l="X" r="a" v="-30"/> - <pair l="X" r="e" v="-83"/> - <pair l="X" r="hyphen" v="-105"/> - <pair l="X" r="o" v="-73"/> - <pair l="X" r="u" v="-47"/> - <pair l="X" r="y" v="-94"/> - <pair l="Y" r="A" v="-197"/> - <pair l="Y" r="AE" v="-219"/> - <pair l="Y" r="Aacute" v="-197"/> - <pair l="Y" r="Acircumflex" v="-197"/> - <pair l="Y" r="Adieresis" v="-197"/> - <pair l="Y" r="Agrave" v="-197"/> - <pair l="Y" r="Aring" v="-197"/> - <pair l="Y" r="Atilde" v="-197"/> - <pair l="Y" r="C" v="-118"/> - <pair l="Y" r="G" v="-111"/> - <pair l="Y" r="O" v="-110"/> - <pair l="Y" r="Oacute" v="-109"/> - <pair l="Y" r="Ocircumflex" v="-109"/> - <pair l="Y" r="Odieresis" v="-109"/> - <pair l="Y" r="Ograve" v="-109"/> - <pair l="Y" r="Oslash" v="-110"/> - <pair l="Y" r="Otilde" v="-109"/> - <pair l="Y" r="S" v="-55"/> - <pair l="Y" r="T" v="65"/> - <pair l="Y" r="a" v="-167"/> - <pair l="Y" r="ae" v="-167"/> - <pair l="Y" r="colon" v="-150"/> - <pair l="Y" r="comma" v="-216"/> - <pair l="Y" r="e" v="-193"/> - <pair l="Y" r="g" v="-191"/> - <pair l="Y" r="guillemotleft" v="-258"/> - <pair l="Y" r="guilsinglleft" v="-238"/> - <pair l="Y" r="hyphen" v="-166"/> - <pair l="Y" r="i" v="7"/> - <pair l="Y" r="o" v="-189"/> - <pair l="Y" r="oslash" v="-211"/> - <pair l="Y" r="p" v="-130"/> - <pair l="Y" r="period" v="-217"/> - <pair l="Y" r="semicolon" v="-143"/> - <pair l="Y" r="u" v="-131"/> - <pair l="Y" r="v" v="-72"/> - <pair l="Z" r="v" v="-60"/> - <pair l="Z" r="y" v="-60"/> - <pair l="a" r="j" v="-2"/> - <pair l="a" r="quoteright" v="-45"/> - <pair l="a" r="v" v="-55"/> - <pair l="a" r="w" v="-22"/> - <pair l="a" r="y" v="-55"/> - <pair l="aacute" r="v" v="-55"/> - <pair l="aacute" r="w" v="-22"/> - <pair l="aacute" r="y" v="-55"/> - <pair l="adieresis" r="v" v="-55"/> - <pair l="adieresis" r="w" v="-22"/> - <pair l="adieresis" r="y" v="-55"/> - <pair l="ae" r="v" v="-42"/> - <pair l="ae" r="w" v="-26"/> - <pair l="ae" r="y" v="-42"/> - <pair l="agrave" r="v" v="-55"/> - <pair l="agrave" r="w" v="-22"/> - <pair l="agrave" r="y" v="-55"/> - <pair l="aring" r="v" v="-55"/> - <pair l="aring" r="w" v="-22"/> - <pair l="aring" r="y" v="-55"/> - <pair l="b" r="v" v="-28"/> - <pair l="b" r="w" v="0"/> - <pair l="b" r="y" v="-28"/> - <pair l="c" r="h" v="-41"/> - <pair l="c" r="k" v="-41"/> - <pair l="comma" r="one" v="-104"/> - <pair l="comma" r="quotedblright" v="-54"/> - <pair l="comma" r="quoteright" v="-67"/> - <pair l="e" r="quoteright" v="-27"/> - <pair l="e" r="t" v="-29"/> - <pair l="e" r="v" v="-41"/> - <pair l="e" r="w" v="-24"/> - <pair l="e" r="x" v="-2"/> - <pair l="e" r="y" v="-41"/> - <pair l="eacute" r="v" v="-41"/> - <pair l="eacute" r="w" v="-24"/> - <pair l="eacute" r="y" v="-41"/> - <pair l="ecircumflex" r="v" v="-41"/> - <pair l="ecircumflex" r="w" v="-24"/> - <pair l="ecircumflex" r="y" v="-41"/> - <pair l="eight" r="four" v="48"/> - <pair l="eight" r="one" v="-80"/> - <pair l="eight" r="seven" v="-36"/> - <pair l="f" r="a" v="-10"/> - <pair l="f" r="aacute" v="-10"/> - <pair l="f" r="adieresis" v="-10"/> - <pair l="f" r="ae" v="-10"/> - <pair l="f" r="aring" v="-10"/> - <pair l="f" r="e" v="-12"/> - <pair l="f" r="eacute" v="-12"/> - <pair l="f" r="f" v="68"/> - <pair l="f" r="i" v="50"/> - <pair l="f" r="j" v="48"/> - <pair l="f" r="l" v="50"/> - <pair l="f" r="o" v="-11"/> - <pair l="f" r="oacute" v="-11"/> - <pair l="f" r="odieresis" v="-11"/> - <pair l="f" r="oe" v="-16"/> - <pair l="f" r="oslash" v="-40"/> - <pair l="f" r="quoteright" v="60"/> - <pair l="f" r="s" v="14"/> - <pair l="f" r="t" v="69"/> - <pair l="five" r="four" v="-11"/> - <pair l="five" r="one" v="-125"/> - <pair l="five" r="seven" v="-79"/> - <pair l="four" r="four" v="41"/> - <pair l="four" r="one" v="-157"/> - <pair l="four" r="seven" v="-110"/> - <pair l="g" r="a" v="-27"/> - <pair l="g" r="adieresis" v="-27"/> - <pair l="g" r="ae" v="-27"/> - <pair l="g" r="aring" v="-27"/> - <pair l="g" r="e" v="-7"/> - <pair l="g" r="eacute" v="-7"/> - <pair l="g" r="l" v="3"/> - <pair l="g" r="oacute" v="-4"/> - <pair l="g" r="odieresis" v="-4"/> - <pair l="g" r="r" v="-9"/> - <pair l="guillemotright" r="A" v="-75"/> - <pair l="guillemotright" r="AE" v="-142"/> - <pair l="guillemotright" r="Aacute" v="-75"/> - <pair l="guillemotright" r="Adieresis" v="-75"/> - <pair l="guillemotright" r="Aring" v="-75"/> - <pair l="guillemotright" r="T" v="-226"/> - <pair l="guillemotright" r="V" v="-162"/> - <pair l="guillemotright" r="W" v="-97"/> - <pair l="guillemotright" r="Y" v="-242"/> - <pair l="guilsinglright" r="A" v="-54"/> - <pair l="guilsinglright" r="AE" v="-120"/> - <pair l="guilsinglright" r="Aacute" v="-54"/> - <pair l="guilsinglright" r="Adieresis" v="-54"/> - <pair l="guilsinglright" r="Aring" v="-54"/> - <pair l="guilsinglright" r="T" v="-205"/> - <pair l="guilsinglright" r="V" v="-140"/> - <pair l="guilsinglright" r="W" v="-75"/> - <pair l="guilsinglright" r="Y" v="-221"/> - <pair l="h" r="quoteright" v="-11"/> - <pair l="h" r="y" v="-29"/> - <pair l="hyphen" r="A" v="-2"/> - <pair l="hyphen" r="AE" v="-79"/> - <pair l="hyphen" r="Aacute" v="-2"/> - <pair l="hyphen" r="Adieresis" v="-2"/> - <pair l="hyphen" r="Aring" v="-2"/> - <pair l="hyphen" r="T" v="-139"/> - <pair l="hyphen" r="V" v="-65"/> - <pair l="hyphen" r="W" v="-4"/> - <pair l="hyphen" r="Y" v="-148"/> - <pair l="i" r="T" v="14"/> - <pair l="i" r="j" v="12"/> - <pair l="k" r="a" v="-31"/> - <pair l="k" r="aacute" v="-31"/> - <pair l="k" r="adieresis" v="-31"/> - <pair l="k" r="ae" v="-29"/> - <pair l="k" r="aring" v="-31"/> - <pair l="k" r="comma" v="-5"/> - <pair l="k" r="e" v="-76"/> - <pair l="k" r="eacute" v="-76"/> - <pair l="k" r="g" v="-81"/> - <pair l="k" r="hyphen" v="-102"/> - <pair l="k" r="o" v="-71"/> - <pair l="k" r="oacute" v="-71"/> - <pair l="k" r="odieresis" v="-71"/> - <pair l="k" r="period" v="-5"/> - <pair l="k" r="s" v="5"/> - <pair l="k" r="u" v="-46"/> - <pair l="k" r="udieresis" v="-46"/> - <pair l="l" r="v" v="9"/> - <pair l="l" r="y" v="9"/> - <pair l="m" r="p" v="-9"/> - <pair l="m" r="v" v="-29"/> - <pair l="m" r="w" v="-1"/> - <pair l="m" r="y" v="-29"/> - <pair l="n" r="T" v="-182"/> - <pair l="n" r="p" v="-8"/> - <pair l="n" r="quoteright" v="-11"/> - <pair l="n" r="v" v="-29"/> - <pair l="n" r="w" v="0"/> - <pair l="n" r="y" v="-29"/> - <pair l="nine" r="four" v="12"/> - <pair l="nine" r="one" v="-121"/> - <pair l="nine" r="seven" v="-84"/> - <pair l="o" r="T" v="-188"/> - <pair l="o" r="quoteright" v="-23"/> - <pair l="o" r="t" v="-9"/> - <pair l="o" r="v" v="-33"/> - <pair l="o" r="w" v="-3"/> - <pair l="o" r="x" v="-41"/> - <pair l="o" r="y" v="-33"/> - <pair l="oacute" r="v" v="-33"/> - <pair l="oacute" r="w" v="-3"/> - <pair l="oacute" r="y" v="-33"/> - <pair l="ocircumflex" r="t" v="-9"/> - <pair l="odieresis" r="t" v="-9"/> - <pair l="odieresis" r="v" v="-33"/> - <pair l="odieresis" r="w" v="-3"/> - <pair l="odieresis" r="x" v="-41"/> - <pair l="odieresis" r="y" v="-33"/> - <pair l="ograve" r="v" v="-33"/> - <pair l="ograve" r="w" v="-3"/> - <pair l="ograve" r="y" v="-33"/> - <pair l="one" r="comma" v="-48"/> - <pair l="one" r="eight" v="-50"/> - <pair l="one" r="five" v="-49"/> - <pair l="one" r="four" v="-111"/> - <pair l="one" r="nine" v="-50"/> - <pair l="one" r="one" v="-83"/> - <pair l="one" r="period" v="-48"/> - <pair l="one" r="seven" v="-80"/> - <pair l="one" r="six" v="-76"/> - <pair l="one" r="three" v="-44"/> - <pair l="one" r="two" v="-19"/> - <pair l="one" r="zero" v="-81"/> - <pair l="p" r="t" v="-5"/> - <pair l="p" r="y" v="-28"/> - <pair l="period" r="one" v="-104"/> - <pair l="period" r="quotedblright" v="-56"/> - <pair l="period" r="quoteright" v="-69"/> - <pair l="q" r="c" v="-10"/> - <pair l="q" r="u" v="-8"/> - <pair l="quotedblbase" r="A" v="75"/> - <pair l="quotedblbase" r="AE" v="47"/> - <pair l="quotedblbase" r="T" v="-134"/> - <pair l="quotedblbase" r="V" v="-130"/> - <pair l="quotedblbase" r="W" v="-46"/> - <pair l="quotedblbase" r="Y" v="-155"/> - <pair l="quotedblleft" r="A" v="-118"/> - <pair l="quotedblleft" r="AE" v="-274"/> - <pair l="quotedblleft" r="Aacute" v="-118"/> - <pair l="quotedblleft" r="Adieresis" v="-118"/> - <pair l="quotedblleft" r="Aring" v="-118"/> - <pair l="quotedblleft" r="T" v="32"/> - <pair l="quotedblleft" r="V" v="54"/> - <pair l="quotedblleft" r="W" v="75"/> - <pair l="quotedblleft" r="Y" v="29"/> - <pair l="quotedblright" r="A" v="-115"/> - <pair l="quotedblright" r="AE" v="-270"/> - <pair l="quotedblright" r="Aacute" v="-115"/> - <pair l="quotedblright" r="Adieresis" v="-115"/> - <pair l="quotedblright" r="Aring" v="-115"/> - <pair l="quotedblright" r="T" v="52"/> - <pair l="quotedblright" r="V" v="64"/> - <pair l="quotedblright" r="W" v="84"/> - <pair l="quotedblright" r="Y" v="42"/> - <pair l="quoteleft" r="A" v="-131"/> - <pair l="quoteleft" r="AE" v="-282"/> - <pair l="quoteleft" r="Aacute" v="-131"/> - <pair l="quoteleft" r="Adieresis" v="-131"/> - <pair l="quoteleft" r="Aring" v="-131"/> - <pair l="quoteleft" r="T" v="15"/> - <pair l="quoteleft" r="V" v="34"/> - <pair l="quoteleft" r="W" v="56"/> - <pair l="quoteleft" r="Y" v="7"/> - <pair l="quoteright" r="A" v="-127"/> - <pair l="quoteright" r="AE" v="-279"/> - <pair l="quoteright" r="Aacute" v="-127"/> - <pair l="quoteright" r="Adieresis" v="-127"/> - <pair l="quoteright" r="Aring" v="-127"/> - <pair l="quoteright" r="comma" v="-81"/> - <pair l="quoteright" r="d" v="-41"/> - <pair l="quoteright" r="o" v="-37"/> - <pair l="quoteright" r="period" v="-83"/> - <pair l="quoteright" r="r" v="-16"/> - <pair l="quoteright" r="s" v="-19"/> - <pair l="quoteright" r="t" v="15"/> - <pair l="quoteright" r="v" v="22"/> - <pair l="quoteright" r="w" v="35"/> - <pair l="quoteright" r="y" v="22"/> - <pair l="r" r="a" v="-16"/> - <pair l="r" r="aacute" v="-16"/> - <pair l="r" r="acircumflex" v="-16"/> - <pair l="r" r="adieresis" v="-16"/> - <pair l="r" r="ae" v="-16"/> - <pair l="r" r="agrave" v="-16"/> - <pair l="r" r="aring" v="-16"/> - <pair l="r" r="c" v="-13"/> - <pair l="r" r="ccedilla" v="-7"/> - <pair l="r" r="colon" v="-11"/> - <pair l="r" r="comma" v="-100"/> - <pair l="r" r="d" v="-13"/> - <pair l="r" r="e" v="-11"/> - <pair l="r" r="eacute" v="-11"/> - <pair l="r" r="ecircumflex" v="-11"/> - <pair l="r" r="egrave" v="-11"/> - <pair l="r" r="f" v="62"/> - <pair l="r" r="g" v="-5"/> - <pair l="r" r="h" v="1"/> - <pair l="r" r="hyphen" v="-64"/> - <pair l="r" r="i" v="13"/> - <pair l="r" r="j" v="11"/> - <pair l="r" r="k" v="1"/> - <pair l="r" r="l" v="13"/> - <pair l="r" r="m" v="1"/> - <pair l="r" r="n" v="1"/> - <pair l="r" r="o" v="-10"/> - <pair l="r" r="oacute" v="-10"/> - <pair l="r" r="ocircumflex" v="-10"/> - <pair l="r" r="odieresis" v="-10"/> - <pair l="r" r="oe" v="-14"/> - <pair l="r" r="ograve" v="-10"/> - <pair l="r" r="oslash" v="-39"/> - <pair l="r" r="p" v="1"/> - <pair l="r" r="period" v="-101"/> - <pair l="r" r="q" v="-13"/> - <pair l="r" r="quoteright" v="31"/> - <pair l="r" r="r" v="1"/> - <pair l="r" r="s" v="11"/> - <pair l="r" r="semicolon" v="-11"/> - <pair l="r" r="t" v="63"/> - <pair l="r" r="u" v="7"/> - <pair l="r" r="v" v="66"/> - <pair l="r" r="w" v="71"/> - <pair l="r" r="x" v="55"/> - <pair l="r" r="y" v="66"/> - <pair l="r" r="z" v="26"/> - <pair l="s" r="quoteright" v="-69"/> - <pair l="s" r="t" v="-29"/> - <pair l="seven" r="colon" v="-103"/> - <pair l="seven" r="comma" v="-230"/> - <pair l="seven" r="eight" v="-34"/> - <pair l="seven" r="five" v="-29"/> - <pair l="seven" r="four" v="-164"/> - <pair l="seven" r="one" v="-50"/> - <pair l="seven" r="period" v="-231"/> - <pair l="seven" r="seven" v="-3"/> - <pair l="seven" r="six" v="-46"/> - <pair l="seven" r="three" v="-22"/> - <pair l="seven" r="two" v="-5"/> - <pair l="six" r="four" v="18"/> - <pair l="six" r="one" v="-120"/> - <pair l="six" r="seven" v="-73"/> - <pair l="t" r="S" v="19"/> - <pair l="t" r="a" v="-1"/> - <pair l="t" r="aacute" v="-1"/> - <pair l="t" r="adieresis" v="-1"/> - <pair l="t" r="ae" v="0"/> - <pair l="t" r="aring" v="-1"/> - <pair l="t" r="colon" v="-9"/> - <pair l="t" r="e" v="-16"/> - <pair l="t" r="eacute" v="-16"/> - <pair l="t" r="h" v="3"/> - <pair l="t" r="o" v="-15"/> - <pair l="t" r="oacute" v="-15"/> - <pair l="t" r="odieresis" v="-15"/> - <pair l="t" r="quoteright" v="30"/> - <pair l="t" r="semicolon" v="-9"/> - <pair l="three" r="four" v="-11"/> - <pair l="three" r="one" v="-137"/> - <pair l="three" r="seven" v="-94"/> - <pair l="two" r="four" v="-145"/> - <pair l="two" r="one" v="-126"/> - <pair l="two" r="seven" v="-91"/> - <pair l="u" r="quoteright" v="0"/> - <pair l="v" r="a" v="-26"/> - <pair l="v" r="aacute" v="-26"/> - <pair l="v" r="acircumflex" v="-26"/> - <pair l="v" r="adieresis" v="-26"/> - <pair l="v" r="ae" v="-26"/> - <pair l="v" r="agrave" v="-26"/> - <pair l="v" r="aring" v="-26"/> - <pair l="v" r="atilde" v="-26"/> - <pair l="v" r="c" v="-35"/> - <pair l="v" r="colon" v="-11"/> - <pair l="v" r="comma" v="-112"/> - <pair l="v" r="e" v="-32"/> - <pair l="v" r="eacute" v="-32"/> - <pair l="v" r="ecircumflex" v="-32"/> - <pair l="v" r="egrave" v="-32"/> - <pair l="v" r="g" v="-31"/> - <pair l="v" r="hyphen" v="2"/> - <pair l="v" r="l" v="14"/> - <pair l="v" r="o" v="-33"/> - <pair l="v" r="oacute" v="-33"/> - <pair l="v" r="odieresis" v="-33"/> - <pair l="v" r="ograve" v="-33"/> - <pair l="v" r="oslash" v="-61"/> - <pair l="v" r="period" v="-113"/> - <pair l="v" r="s" v="-17"/> - <pair l="v" r="semicolon" v="-11"/> - <pair l="w" r="a" v="-25"/> - <pair l="w" r="aacute" v="-25"/> - <pair l="w" r="acircumflex" v="-25"/> - <pair l="w" r="adieresis" v="-25"/> - <pair l="w" r="ae" v="-25"/> - <pair l="w" r="agrave" v="-25"/> - <pair l="w" r="aring" v="-25"/> - <pair l="w" r="atilde" v="-25"/> - <pair l="w" r="c" v="-18"/> - <pair l="w" r="colon" v="-13"/> - <pair l="w" r="comma" v="-70"/> - <pair l="w" r="e" v="-19"/> - <pair l="w" r="eacute" v="-19"/> - <pair l="w" r="ecircumflex" v="-19"/> - <pair l="w" r="egrave" v="-19"/> - <pair l="w" r="g" v="-21"/> - <pair l="w" r="hyphen" v="23"/> - <pair l="w" r="l" v="12"/> - <pair l="w" r="o" v="-15"/> - <pair l="w" r="oacute" v="-15"/> - <pair l="w" r="odieresis" v="-15"/> - <pair l="w" r="ograve" v="-15"/> - <pair l="w" r="oslash" v="-38"/> - <pair l="w" r="period" v="-71"/> - <pair l="w" r="s" v="-12"/> - <pair l="w" r="semicolon" v="-13"/> - <pair l="x" r="a" v="-32"/> - <pair l="x" r="c" v="-49"/> - <pair l="x" r="e" v="-50"/> - <pair l="x" r="eacute" v="-50"/> - <pair l="x" r="o" v="-45"/> - <pair l="x" r="q" v="-43"/> - <pair l="y" r="a" v="-26"/> - <pair l="y" r="aacute" v="-26"/> - <pair l="y" r="acircumflex" v="-26"/> - <pair l="y" r="adieresis" v="-26"/> - <pair l="y" r="ae" v="-26"/> - <pair l="y" r="agrave" v="-26"/> - <pair l="y" r="aring" v="-26"/> - <pair l="y" r="atilde" v="-26"/> - <pair l="y" r="c" v="-36"/> - <pair l="y" r="colon" v="-11"/> - <pair l="y" r="comma" v="-116"/> - <pair l="y" r="e" v="-33"/> - <pair l="y" r="eacute" v="-33"/> - <pair l="y" r="ecircumflex" v="-33"/> - <pair l="y" r="egrave" v="-33"/> - <pair l="y" r="g" v="-32"/> - <pair l="y" r="hyphen" v="0"/> - <pair l="y" r="l" v="14"/> - <pair l="y" r="o" v="-35"/> - <pair l="y" r="oacute" v="-35"/> - <pair l="y" r="odieresis" v="-35"/> - <pair l="y" r="ograve" v="-35"/> - <pair l="y" r="oslash" v="-62"/> - <pair l="y" r="period" v="-117"/> - <pair l="y" r="s" v="-17"/> - <pair l="y" r="semicolon" v="-11"/> - <pair l="zero" r="four" v="30"/> - <pair l="zero" r="one" v="-111"/> - <pair l="zero" r="seven" v="-73"/> - </kernsubtable> - </kern> - - <name> - <namerecord nameID="0" platformID="1" platEncID="0" langID="0x0"> - Copyright (c) 2001 by Bigelow & Holmes Inc. Instructions copyright (c) 2001 by URW++. - </namerecord> - <namerecord nameID="1" platformID="1" platEncID="0" langID="0x0"> - Luxi Sans - </namerecord> - <namerecord nameID="2" platformID="1" platEncID="0" langID="0x0"> - Regular - </namerecord> - <namerecord nameID="3" platformID="1" platEncID="0" langID="0x0"> - Luxi Sans Regular: B&H - </namerecord> - <namerecord nameID="4" platformID="1" platEncID="0" langID="0x0"> - Luxi Sans Regular - </namerecord> - <namerecord nameID="5" platformID="1" platEncID="0" langID="0x0"> - 1.2 : October 12, 2001 - </namerecord> - <namerecord nameID="6" platformID="1" platEncID="0" langID="0x0"> - LuxiSans - </namerecord> - <namerecord nameID="7" platformID="1" platEncID="0" langID="0x0"> - Luxi is a registered trademark of Bigelow & Holmes Inc. - </namerecord> - <namerecord nameID="8" platformID="1" platEncID="0" langID="0x0"> - Bigelow & Holmes Inc. - </namerecord> - <namerecord nameID="9" platformID="1" platEncID="0" langID="0x0"> - Kris Holmes and Charles Bigelow - </namerecord> - <namerecord nameID="11" platformID="1" platEncID="0" langID="0x0"> - http://www.urwpp.de - </namerecord> - <namerecord nameID="12" platformID="1" platEncID="0" langID="0x0"> - design@bigelowandholmes.com - </namerecord> - <namerecord nameID="0" platformID="3" platEncID="1" langID="0x409"> - Copyright (c) 2001 by Bigelow & Holmes Inc. Instructions copyright (c) 2001 by URW++. - </namerecord> - <namerecord nameID="1" platformID="3" platEncID="1" langID="0x409"> - Luxi Sans - </namerecord> - <namerecord nameID="2" platformID="3" platEncID="1" langID="0x409"> - Regular - </namerecord> - <namerecord nameID="3" platformID="3" platEncID="1" langID="0x409"> - Luxi Sans Regular: B&H - </namerecord> - <namerecord nameID="4" platformID="3" platEncID="1" langID="0x409"> - Luxi Sans Regular - </namerecord> - <namerecord nameID="5" platformID="3" platEncID="1" langID="0x409"> - 1.2 : October 12, 2001 - </namerecord> - <namerecord nameID="6" platformID="3" platEncID="1" langID="0x409"> - LuxiSans - </namerecord> - <namerecord nameID="7" platformID="3" platEncID="1" langID="0x409"> - Luxi is a registered trademark of Bigelow & Holmes Inc. - </namerecord> - <namerecord nameID="8" platformID="3" platEncID="1" langID="0x409"> - Bigelow & Holmes Inc. - </namerecord> - <namerecord nameID="9" platformID="3" platEncID="1" langID="0x409"> - Kris Holmes and Charles Bigelow - </namerecord> - <namerecord nameID="11" platformID="3" platEncID="1" langID="0x409"> - http://www.urwpp.de - </namerecord> - <namerecord nameID="12" platformID="3" platEncID="1" langID="0x409"> - design@bigelowandholmes.com - </namerecord> - </name> - - <post> - <formatType value="2.0"/> - <italicAngle value="0.0"/> - <underlinePosition value="0"/> - <underlineThickness value="0"/> - <isFixedPitch value="0"/> - <minMemType42 value="0"/> - <maxMemType42 value="0"/> - <minMemType1 value="0"/> - <maxMemType1 value="0"/> - <psNames> - <!-- This file uses unique glyph names based on the information - found in the 'post' table. Since these names might not be unique, - we have to invent artificial names in case of clashes. In order to - be able to retain the original information, we need a name to - ps name mapping for those cases where they differ. That's what - you see below. - --> - <psName name=".notdef#1" psName=".notdef"/> - <psName name=".notdef#10" psName=".notdef"/> - <psName name=".notdef#11" psName=".notdef"/> - <psName name=".notdef#12" psName=".notdef"/> - <psName name=".notdef#13" psName=".notdef"/> - <psName name=".notdef#14" psName=".notdef"/> - <psName name=".notdef#15" psName=".notdef"/> - <psName name=".notdef#16" psName=".notdef"/> - <psName name=".notdef#17" psName=".notdef"/> - <psName name=".notdef#18" psName=".notdef"/> - <psName name=".notdef#2" psName=".notdef"/> - <psName name=".notdef#3" psName=".notdef"/> - <psName name=".notdef#4" psName=".notdef"/> - <psName name=".notdef#5" psName=".notdef"/> - <psName name=".notdef#6" psName=".notdef"/> - <psName name=".notdef#7" psName=".notdef"/> - <psName name=".notdef#8" psName=".notdef"/> - <psName name=".notdef#9" psName=".notdef"/> - <psName name="Euro#1" psName="Euro"/> - <psName name="fi#1" psName="fi"/> - <psName name="fl#1" psName="fl"/> - <psName name="fraction#1" psName="fraction"/> - <psName name="hyphen#1" psName="hyphen"/> - <psName name="macron#1" psName="macron"/> - <psName name="periodcentered#1" psName="periodcentered"/> - <psName name="semicolon#1" psName="semicolon"/> - </psNames> - <extraNames> - <!-- following are the name that are not taken from the standard Mac glyph order --> - <psName name="fraction"/> - <psName name="fi"/> - <psName name="Euro"/> - <psName name="tilde"/> - <psName name="macron"/> - <psName name="Euro"/> - <psName name="sfthyphen"/> - <psName name="periodcentered"/> - <psName name="Amacron"/> - <psName name="amacron"/> - <psName name="Abreve"/> - <psName name="abreve"/> - <psName name="Aogonek"/> - <psName name="aogonek"/> - <psName name="Ccircumflex"/> - <psName name="ccircumflex"/> - <psName name="Cdotaccent"/> - <psName name="cdotaccent"/> - <psName name="Dcaron"/> - <psName name="dcaron"/> - <psName name="Dcroat"/> - <psName name="dcroat"/> - <psName name="Emacron"/> - <psName name="emacron"/> - <psName name="Ebreve"/> - <psName name="ebreve"/> - <psName name="Edotaccent"/> - <psName name="edotaccent"/> - <psName name="Eogonek"/> - <psName name="eogonek"/> - <psName name="Ecaron"/> - <psName name="ecaron"/> - <psName name="Gcircumflex"/> - <psName name="gcircumflex"/> - <psName name="Gdotaccent"/> - <psName name="gdotaccent"/> - <psName name="Gcommaaccent"/> - <psName name="gcommaaccent"/> - <psName name="Hcircumflex"/> - <psName name="hcircumflex"/> - <psName name="Hbar"/> - <psName name="hbar"/> - <psName name="Itilde"/> - <psName name="itilde"/> - <psName name="Imacron"/> - <psName name="imacron"/> - <psName name="Ibreve"/> - <psName name="ibreve"/> - <psName name="Iogonek"/> - <psName name="iogonek"/> - <psName name="IJ"/> - <psName name="ij"/> - <psName name="Jcircumflex"/> - <psName name="jcircumflex"/> - <psName name="Kcommaaccent"/> - <psName name="kcommaaccent"/> - <psName name="kgreenlandic"/> - <psName name="Lacute"/> - <psName name="lacute"/> - <psName name="Lcommaaccent"/> - <psName name="lcommaaccent"/> - <psName name="Lcaron"/> - <psName name="lcaron"/> - <psName name="Ldot"/> - <psName name="ldot"/> - <psName name="Nacute"/> - <psName name="nacute"/> - <psName name="Ncommaaccent"/> - <psName name="ncommaaccent"/> - <psName name="Ncaron"/> - <psName name="ncaron"/> - <psName name="napostrophe"/> - <psName name="Eng"/> - <psName name="eng"/> - <psName name="Omacron"/> - <psName name="omacron"/> - <psName name="Obreve"/> - <psName name="obreve"/> - <psName name="Ohungarumlaut"/> - <psName name="ohungarumlaut"/> - <psName name="Racute"/> - <psName name="racute"/> - <psName name="Rcommaaccent"/> - <psName name="rcommaaccent"/> - <psName name="Rcaron"/> - <psName name="rcaron"/> - <psName name="Sacute"/> - <psName name="sacute"/> - <psName name="Scircumflex"/> - <psName name="scircumflex"/> - <psName name="Tcommaaccent"/> - <psName name="tcommaaccent"/> - <psName name="Tcaron"/> - <psName name="tcaron"/> - <psName name="Tbar"/> - <psName name="tbar"/> - <psName name="Utilde"/> - <psName name="utilde"/> - <psName name="Umacron"/> - <psName name="umacron"/> - <psName name="Ubreve"/> - <psName name="ubreve"/> - <psName name="Uring"/> - <psName name="uring"/> - <psName name="Uhungarumlaut"/> - <psName name="uhungarumlaut"/> - <psName name="Uogonek"/> - <psName name="uogonek"/> - <psName name="Wcircumflex"/> - <psName name="wcircumflex"/> - <psName name="Ycircumflex"/> - <psName name="ycircumflex"/> - <psName name="Zacute"/> - <psName name="zacute"/> - <psName name="Zdotaccent"/> - <psName name="zdotaccent"/> - <psName name="longs"/> - <psName name="Scommaaccent"/> - <psName name="scommaaccent"/> - <psName name="Tcommabelow"/> - <psName name="tcommabelow"/> - <psName name="Unterkomma"/> - <psName name="semicolon"/> - <psName name="anoteleia"/> - <psName name="hyphen"/> - <psName name="nbhyphen"/> - <psName name="figuredash"/> - <psName name="afii00208"/> - <psName name="quotereversed"/> - <psName name="radicalex"/> - <psName name="estimated"/> - <psName name="dotmath"/> - <psName name="fi"/> - <psName name="fl"/> - <psName name="foursuperiour"/> - <psName name="dotlessj"/> - </extraNames> - </post> - - <gasp> - <gaspRange rangeMaxPPEM="8" rangeGaspBehavior="2"/> - <gaspRange rangeMaxPPEM="16" rangeGaspBehavior="1"/> - <gaspRange rangeMaxPPEM="65535" rangeGaspBehavior="3"/> - </gasp> - - <vhea> - <tableVersion value="1.0"/> - <ascent value="2033"/> - <descent value="432"/> - <lineGap value="0"/> - <advanceHeightMax value="2465"/> - <minTopSideBearing value="0"/> - <minBottomSideBearing value="0"/> - <yMaxExtent value="2465"/> - <caretSlopeRise value="0"/> - <caretSlopeRun value="1"/> - <reserved0 value="0"/> - <reserved1 value="0"/> - <reserved2 value="0"/> - <reserved3 value="0"/> - <reserved4 value="0"/> - <metricDataFormat value="0"/> - <numberOfVMetrics value="391"/> - </vhea> - - <vmtx> - <mtx name=".notdef" height="2465" tsb="553"/> - <mtx name=".notdef#1" height="0" tsb="0"/> - <mtx name=".notdef#10" height="2465" tsb="0"/> - <mtx name=".notdef#11" height="2465" tsb="0"/> - <mtx name=".notdef#12" height="2465" tsb="0"/> - <mtx name=".notdef#13" height="2465" tsb="0"/> - <mtx name=".notdef#14" height="2465" tsb="0"/> - <mtx name=".notdef#15" height="2465" tsb="0"/> - <mtx name=".notdef#16" height="1139" tsb="0"/> - <mtx name=".notdef#17" height="2465" tsb="0"/> - <mtx name=".notdef#18" height="2465" tsb="0"/> - <mtx name=".notdef#2" height="2465" tsb="0"/> - <mtx name=".notdef#3" height="2465" tsb="0"/> - <mtx name=".notdef#4" height="2465" tsb="0"/> - <mtx name=".notdef#5" height="2465" tsb="0"/> - <mtx name=".notdef#6" height="2465" tsb="0"/> - <mtx name=".notdef#7" height="2465" tsb="0"/> - <mtx name=".notdef#8" height="2465" tsb="0"/> - <mtx name=".notdef#9" height="2465" tsb="0"/> - <mtx name="A" height="2465" tsb="553"/> - <mtx name="AE" height="2465" tsb="553"/> - <mtx name="Aacute" height="2465" tsb="108"/> - <mtx name="Abreve" height="2465" tsb="108"/> - <mtx name="Acircumflex" height="2465" tsb="108"/> - <mtx name="Adieresis" height="2465" tsb="256"/> - <mtx name="Agrave" height="2465" tsb="108"/> - <mtx name="Amacron" height="2465" tsb="281"/> - <mtx name="Aogonek" height="2465" tsb="553"/> - <mtx name="Aring" height="2465" tsb="98"/> - <mtx name="Atilde" height="2465" tsb="195"/> - <mtx name="B" height="2465" tsb="553"/> - <mtx name="C" height="2465" tsb="516"/> - <mtx name="Cacute" height="2465" tsb="108"/> - <mtx name="Ccaron" height="2465" tsb="108"/> - <mtx name="Ccedilla" height="2465" tsb="516"/> - <mtx name="Ccircumflex" height="2465" tsb="108"/> - <mtx name="Cdotaccent" height="2465" tsb="232"/> - <mtx name="D" height="2465" tsb="553"/> - <mtx name="Dcaron" height="2465" tsb="108"/> - <mtx name="Dcroat" height="2465" tsb="553"/> - <mtx name="E" height="2465" tsb="553"/> - <mtx name="Eacute" height="2465" tsb="108"/> - <mtx name="Ebreve" height="2465" tsb="108"/> - <mtx name="Ecaron" height="2465" tsb="108"/> - <mtx name="Ecircumflex" height="2465" tsb="108"/> - <mtx name="Edieresis" height="2465" tsb="256"/> - <mtx name="Edotaccent" height="2465" tsb="232"/> - <mtx name="Egrave" height="2465" tsb="108"/> - <mtx name="Emacron" height="2465" tsb="281"/> - <mtx name="Eng" height="2465" tsb="553"/> - <mtx name="Eogonek" height="2465" tsb="553"/> - <mtx name="Eth" height="2465" tsb="553"/> - <mtx name="Euro" height="2465" tsb="518"/> - <mtx name="Euro#1" height="2465" tsb="518"/> - <mtx name="F" height="2465" tsb="553"/> - <mtx name="G" height="2465" tsb="516"/> - <mtx name="Gbreve" height="2465" tsb="108"/> - <mtx name="Gcircumflex" height="2465" tsb="108"/> - <mtx name="Gcommaaccent" height="2465" tsb="516"/> - <mtx name="Gdotaccent" height="2465" tsb="232"/> - <mtx name="H" height="2465" tsb="553"/> - <mtx name="Hbar" height="2465" tsb="553"/> - <mtx name="Hcircumflex" height="2465" tsb="108"/> - <mtx name="I" height="2465" tsb="553"/> - <mtx name="IJ" height="2465" tsb="553"/> - <mtx name="Iacute" height="2465" tsb="108"/> - <mtx name="Ibreve" height="2465" tsb="108"/> - <mtx name="Icircumflex" height="2465" tsb="108"/> - <mtx name="Idieresis" height="2465" tsb="256"/> - <mtx name="Idotaccent" height="2465" tsb="232"/> - <mtx name="Igrave" height="2465" tsb="108"/> - <mtx name="Imacron" height="2465" tsb="281"/> - <mtx name="Iogonek" height="2465" tsb="553"/> - <mtx name="Itilde" height="2465" tsb="195"/> - <mtx name="J" height="2465" tsb="553"/> - <mtx name="Jcircumflex" height="2465" tsb="108"/> - <mtx name="K" height="2465" tsb="553"/> - <mtx name="Kcommaaccent" height="2465" tsb="553"/> - <mtx name="L" height="2465" tsb="553"/> - <mtx name="Lacute" height="2465" tsb="108"/> - <mtx name="Lcaron" height="2465" tsb="553"/> - <mtx name="Lcommaaccent" height="2465" tsb="553"/> - <mtx name="Ldot" height="2465" tsb="553"/> - <mtx name="Lslash" height="2465" tsb="553"/> - <mtx name="M" height="2465" tsb="553"/> - <mtx name="N" height="2465" tsb="553"/> - <mtx name="Nacute" height="2465" tsb="108"/> - <mtx name="Ncaron" height="2465" tsb="108"/> - <mtx name="Ncommaaccent" height="2465" tsb="553"/> - <mtx name="Ntilde" height="2465" tsb="195"/> - <mtx name="O" height="2465" tsb="516"/> - <mtx name="OE" height="2465" tsb="516"/> - <mtx name="Oacute" height="2465" tsb="108"/> - <mtx name="Obreve" height="2465" tsb="108"/> - <mtx name="Ocircumflex" height="2465" tsb="108"/> - <mtx name="Odieresis" height="2465" tsb="256"/> - <mtx name="Ograve" height="2465" tsb="108"/> - <mtx name="Ohungarumlaut" height="2465" tsb="108"/> - <mtx name="Omacron" height="2465" tsb="281"/> - <mtx name="Oslash" height="2465" tsb="516"/> - <mtx name="Otilde" height="2465" tsb="195"/> - <mtx name="P" height="2465" tsb="553"/> - <mtx name="Q" height="2465" tsb="516"/> - <mtx name="R" height="2465" tsb="553"/> - <mtx name="Racute" height="2465" tsb="108"/> - <mtx name="Rcaron" height="2465" tsb="108"/> - <mtx name="Rcommaaccent" height="2465" tsb="553"/> - <mtx name="S" height="2465" tsb="516"/> - <mtx name="Sacute" height="2465" tsb="108"/> - <mtx name="Scaron" height="2465" tsb="108"/> - <mtx name="Scedilla" height="2465" tsb="516"/> - <mtx name="Scircumflex" height="2465" tsb="108"/> - <mtx name="Scommaaccent" height="2465" tsb="516"/> - <mtx name="T" height="2465" tsb="553"/> - <mtx name="Tbar" height="2465" tsb="553"/> - <mtx name="Tcaron" height="2465" tsb="108"/> - <mtx name="Tcommaaccent" height="2465" tsb="553"/> - <mtx name="Tcommabelow" height="2465" tsb="553"/> - <mtx name="Thorn" height="2465" tsb="553"/> - <mtx name="U" height="2465" tsb="553"/> - <mtx name="Uacute" height="2465" tsb="108"/> - <mtx name="Ubreve" height="2465" tsb="108"/> - <mtx name="Ucircumflex" height="2465" tsb="108"/> - <mtx name="Udieresis" height="2465" tsb="256"/> - <mtx name="Ugrave" height="2465" tsb="108"/> - <mtx name="Uhungarumlaut" height="2465" tsb="108"/> - <mtx name="Umacron" height="2465" tsb="281"/> - <mtx name="Unterkomma" height="2465" tsb="2144"/> - <mtx name="Uogonek" height="2465" tsb="553"/> - <mtx name="Uring" height="2465" tsb="0"/> - <mtx name="Utilde" height="2465" tsb="195"/> - <mtx name="V" height="2465" tsb="553"/> - <mtx name="W" height="2465" tsb="553"/> - <mtx name="Wcircumflex" height="2465" tsb="108"/> - <mtx name="X" height="2465" tsb="553"/> - <mtx name="Y" height="2465" tsb="553"/> - <mtx name="Yacute" height="2465" tsb="108"/> - <mtx name="Ycircumflex" height="2465" tsb="108"/> - <mtx name="Ydieresis" height="2465" tsb="256"/> - <mtx name="Z" height="2465" tsb="553"/> - <mtx name="Zacute" height="2465" tsb="108"/> - <mtx name="Zcaron" height="2465" tsb="108"/> - <mtx name="Zdotaccent" height="2465" tsb="232"/> - <mtx name="a" height="2465" tsb="923"/> - <mtx name="aacute" height="2465" tsb="429"/> - <mtx name="abreve" height="2465" tsb="429"/> - <mtx name="acircumflex" height="2465" tsb="429"/> - <mtx name="acute" height="2465" tsb="429"/> - <mtx name="adieresis" height="2465" tsb="577"/> - <mtx name="ae" height="2465" tsb="923"/> - <mtx name="afii00208" height="2465" tsb="1391"/> - <mtx name="agrave" height="2465" tsb="429"/> - <mtx name="amacron" height="2465" tsb="602"/> - <mtx name="ampersand" height="2465" tsb="516"/> - <mtx name="anoteleia" height="2465" tsb="1295"/> - <mtx name="aogonek" height="2465" tsb="923"/> - <mtx name="aring" height="2465" tsb="296"/> - <mtx name="asciicircum" height="2465" tsb="553"/> - <mtx name="asciitilde" height="2465" tsb="1261"/> - <mtx name="asterisk" height="2465" tsb="553"/> - <mtx name="at" height="2465" tsb="516"/> - <mtx name="atilde" height="2465" tsb="516"/> - <mtx name="b" height="2465" tsb="454"/> - <mtx name="backslash" height="2465" tsb="553"/> - <mtx name="bar" height="2465" tsb="454"/> - <mtx name="braceleft" height="2465" tsb="454"/> - <mtx name="braceright" height="2465" tsb="454"/> - <mtx name="bracketleft" height="2465" tsb="454"/> - <mtx name="bracketright" height="2465" tsb="454"/> - <mtx name="breve" height="2465" tsb="429"/> - <mtx name="brokenbar" height="2465" tsb="454"/> - <mtx name="bullet" height="2465" tsb="923"/> - <mtx name="c" height="2465" tsb="923"/> - <mtx name="cacute" height="2465" tsb="429"/> - <mtx name="caron" height="2465" tsb="429"/> - <mtx name="ccaron" height="2465" tsb="429"/> - <mtx name="ccedilla" height="2465" tsb="923"/> - <mtx name="ccircumflex" height="2465" tsb="429"/> - <mtx name="cdotaccent" height="2465" tsb="553"/> - <mtx name="cedilla" height="2465" tsb="2033"/> - <mtx name="cent" height="2465" tsb="553"/> - <mtx name="circumflex" height="2465" tsb="429"/> - <mtx name="colon" height="2465" tsb="947"/> - <mtx name="comma" height="2465" tsb="1786"/> - <mtx name="copyright" height="2465" tsb="553"/> - <mtx name="currency" height="2465" tsb="845"/> - <mtx name="d" height="2465" tsb="454"/> - <mtx name="dagger" height="2465" tsb="553"/> - <mtx name="daggerdbl" height="2465" tsb="553"/> - <mtx name="dcaron" height="2465" tsb="454"/> - <mtx name="dcroat" height="2465" tsb="454"/> - <mtx name="degree" height="2465" tsb="516"/> - <mtx name="dieresis" height="2465" tsb="577"/> - <mtx name="divide" height="2465" tsb="849"/> - <mtx name="dollar" height="2465" tsb="429"/> - <mtx name="dotaccent" height="2465" tsb="553"/> - <mtx name="dotlessi" height="2465" tsb="947"/> - <mtx name="dotlessj" height="2465" tsb="947"/> - <mtx name="dotmath" height="2465" tsb="1295"/> - <mtx name="e" height="2465" tsb="923"/> - <mtx name="eacute" height="2465" tsb="429"/> - <mtx name="ebreve" height="2465" tsb="429"/> - <mtx name="ecaron" height="2465" tsb="429"/> - <mtx name="ecircumflex" height="2465" tsb="429"/> - <mtx name="edieresis" height="2465" tsb="577"/> - <mtx name="edotaccent" height="2465" tsb="553"/> - <mtx name="egrave" height="2465" tsb="429"/> - <mtx name="eight" height="2465" tsb="516"/> - <mtx name="ellipsis" height="2465" tsb="1836"/> - <mtx name="emacron" height="2465" tsb="602"/> - <mtx name="emdash" height="2465" tsb="1391"/> - <mtx name="endash" height="2465" tsb="1367"/> - <mtx name="eng" height="2465" tsb="923"/> - <mtx name="eogonek" height="2465" tsb="923"/> - <mtx name="equal" height="2465" tsb="1182"/> - <mtx name="estimated" height="2465" tsb="923"/> - <mtx name="eth" height="2465" tsb="357"/> - <mtx name="exclam" height="2465" tsb="553"/> - <mtx name="exclamdown" height="2465" tsb="947"/> - <mtx name="f" height="2465" tsb="429"/> - <mtx name="fi" height="2465" tsb="429"/> - <mtx name="fi#1" height="2465" tsb="429"/> - <mtx name="figuredash" height="2465" tsb="1367"/> - <mtx name="five" height="2465" tsb="553"/> - <mtx name="fl" height="2465" tsb="429"/> - <mtx name="fl#1" height="2465" tsb="429"/> - <mtx name="florin" height="2465" tsb="516"/> - <mtx name="four" height="2465" tsb="553"/> - <mtx name="foursuperiour" height="2465" tsb="553"/> - <mtx name="fraction" height="2465" tsb="516"/> - <mtx name="fraction#1" height="2465" tsb="516"/> - <mtx name="g" height="2465" tsb="923"/> - <mtx name="gbreve" height="2465" tsb="429"/> - <mtx name="gcircumflex" height="2465" tsb="429"/> - <mtx name="gcommaaccent" height="2465" tsb="296"/> - <mtx name="gdotaccent" height="2465" tsb="553"/> - <mtx name="germandbls" height="2465" tsb="429"/> - <mtx name="grave" height="2465" tsb="429"/> - <mtx name="greater" height="2465" tsb="947"/> - <mtx name="guillemotleft" height="2465" tsb="1046"/> - <mtx name="guillemotright" height="2465" tsb="1046"/> - <mtx name="guilsinglleft" height="2465" tsb="1046"/> - <mtx name="guilsinglright" height="2465" tsb="1046"/> - <mtx name="h" height="2465" tsb="454"/> - <mtx name="hbar" height="2465" tsb="454"/> - <mtx name="hcircumflex" height="2465" tsb="34"/> - <mtx name="hungarumlaut" height="2465" tsb="429"/> - <mtx name="hyphen" height="2465" tsb="1367"/> - <mtx name="hyphen#1" height="2465" tsb="1367"/> - <mtx name="i" height="2465" tsb="553"/> - <mtx name="iacute" height="2465" tsb="429"/> - <mtx name="ibreve" height="2465" tsb="429"/> - <mtx name="icircumflex" height="2465" tsb="429"/> - <mtx name="idieresis" height="2465" tsb="577"/> - <mtx name="igrave" height="2465" tsb="429"/> - <mtx name="ij" height="2465" tsb="553"/> - <mtx name="imacron" height="2465" tsb="602"/> - <mtx name="iogonek" height="2465" tsb="553"/> - <mtx name="itilde" height="2465" tsb="516"/> - <mtx name="j" height="2465" tsb="553"/> - <mtx name="jcircumflex" height="2465" tsb="429"/> - <mtx name="k" height="2465" tsb="454"/> - <mtx name="kcommaaccent" height="2465" tsb="454"/> - <mtx name="kgreenlandic" height="2465" tsb="947"/> - <mtx name="l" height="2465" tsb="454"/> - <mtx name="lacute" height="2465" tsb="34"/> - <mtx name="lcaron" height="2465" tsb="454"/> - <mtx name="lcommaaccent" height="2465" tsb="454"/> - <mtx name="ldot" height="2465" tsb="454"/> - <mtx name="less" height="2465" tsb="947"/> - <mtx name="logicalnot" height="2465" tsb="1145"/> - <mtx name="longs" height="2465" tsb="429"/> - <mtx name="lslash" height="2465" tsb="454"/> - <mtx name="m" height="2465" tsb="923"/> - <mtx name="macron" height="2465" tsb="602"/> - <mtx name="macron#1" height="2465" tsb="429"/> - <mtx name="minus" height="2465" tsb="1367"/> - <mtx name="mu" height="2465" tsb="947"/> - <mtx name="multiply" height="2465" tsb="961"/> - <mtx name="n" height="2465" tsb="923"/> - <mtx name="nacute" height="2465" tsb="429"/> - <mtx name="napostrophe" height="2465" tsb="454"/> - <mtx name="nbhyphen" height="2465" tsb="1367"/> - <mtx name="ncaron" height="2465" tsb="429"/> - <mtx name="ncommaaccent" height="2465" tsb="923"/> - <mtx name="nine" height="2465" tsb="515"/> - <mtx name="nonbreakingspace" height="2465" tsb="2033"/> - <mtx name="ntilde" height="2465" tsb="516"/> - <mtx name="numbersign" height="2465" tsb="553"/> - <mtx name="o" height="2465" tsb="923"/> - <mtx name="oacute" height="2465" tsb="429"/> - <mtx name="obreve" height="2465" tsb="429"/> - <mtx name="ocircumflex" height="2465" tsb="429"/> - <mtx name="odieresis" height="2465" tsb="577"/> - <mtx name="oe" height="2465" tsb="923"/> - <mtx name="ogonek" height="2465" tsb="2033"/> - <mtx name="ograve" height="2465" tsb="429"/> - <mtx name="ohungarumlaut" height="2465" tsb="429"/> - <mtx name="omacron" height="2465" tsb="602"/> - <mtx name="one" height="2465" tsb="516"/> - <mtx name="onehalf" height="2465" tsb="516"/> - <mtx name="onequarter" height="2465" tsb="516"/> - <mtx name="onesuperior" height="2465" tsb="530"/> - <mtx name="ordfeminine" height="2465" tsb="515"/> - <mtx name="ordmasculine" height="2465" tsb="516"/> - <mtx name="oslash" height="2465" tsb="923"/> - <mtx name="otilde" height="2465" tsb="516"/> - <mtx name="p" height="2465" tsb="923"/> - <mtx name="paragraph" height="2465" tsb="553"/> - <mtx name="parenleft" height="2465" tsb="454"/> - <mtx name="parenright" height="2465" tsb="454"/> - <mtx name="percent" height="2465" tsb="516"/> - <mtx name="period" height="2465" tsb="1786"/> - <mtx name="periodcentered" height="2465" tsb="1295"/> - <mtx name="periodcentered#1" height="2465" tsb="1295"/> - <mtx name="perthousand" height="2465" tsb="516"/> - <mtx name="plus" height="2465" tsb="947"/> - <mtx name="plusminus" height="2465" tsb="849"/> - <mtx name="q" height="2465" tsb="923"/> - <mtx name="question" height="2465" tsb="516"/> - <mtx name="questiondown" height="2465" tsb="947"/> - <mtx name="quotedbl" height="2465" tsb="454"/> - <mtx name="quotedblbase" height="2465" tsb="1836"/> - <mtx name="quotedblleft" height="2465" tsb="454"/> - <mtx name="quotedblright" height="2465" tsb="454"/> - <mtx name="quoteleft" height="2465" tsb="454"/> - <mtx name="quotereversed" height="2465" tsb="2033"/> - <mtx name="quoteright" height="2465" tsb="454"/> - <mtx name="quotesinglbase" height="2465" tsb="1786"/> - <mtx name="quotesingle" height="2465" tsb="454"/> - <mtx name="r" height="2465" tsb="923"/> - <mtx name="racute" height="2465" tsb="429"/> - <mtx name="radicalex" height="2465" tsb="429"/> - <mtx name="rcaron" height="2465" tsb="429"/> - <mtx name="rcommaaccent" height="2465" tsb="923"/> - <mtx name="registered" height="2465" tsb="553"/> - <mtx name="ring" height="2465" tsb="296"/> - <mtx name="s" height="2465" tsb="923"/> - <mtx name="sacute" height="2465" tsb="429"/> - <mtx name="scaron" height="2465" tsb="429"/> - <mtx name="scedilla" height="2465" tsb="923"/> - <mtx name="scircumflex" height="2465" tsb="429"/> - <mtx name="scommaaccent" height="2465" tsb="923"/> - <mtx name="section" height="2465" tsb="516"/> - <mtx name="semicolon" height="2465" tsb="947"/> - <mtx name="semicolon#1" height="2465" tsb="947"/> - <mtx name="seven" height="2465" tsb="553"/> - <mtx name="sfthyphen" height="2465" tsb="1367"/> - <mtx name="six" height="2465" tsb="515"/> - <mtx name="slash" height="2465" tsb="553"/> - <mtx name="space" height="2465" tsb="2033"/> - <mtx name="sterling" height="2465" tsb="516"/> - <mtx name="t" height="2465" tsb="731"/> - <mtx name="tbar" height="2465" tsb="731"/> - <mtx name="tcaron" height="2465" tsb="345"/> - <mtx name="tcommaaccent" height="2465" tsb="731"/> - <mtx name="tcommabelow" height="2465" tsb="731"/> - <mtx name="thorn" height="2465" tsb="454"/> - <mtx name="three" height="2465" tsb="516"/> - <mtx name="threequarters" height="2465" tsb="516"/> - <mtx name="threesuperior" height="2465" tsb="530"/> - <mtx name="tilde" height="2465" tsb="516"/> - <mtx name="trademark" height="2465" tsb="553"/> - <mtx name="two" height="2465" tsb="516"/> - <mtx name="twosuperior" height="2465" tsb="530"/> - <mtx name="u" height="2465" tsb="947"/> - <mtx name="uacute" height="2465" tsb="429"/> - <mtx name="ubreve" height="2465" tsb="429"/> - <mtx name="ucircumflex" height="2465" tsb="429"/> - <mtx name="udieresis" height="2465" tsb="577"/> - <mtx name="ugrave" height="2465" tsb="429"/> - <mtx name="uhungarumlaut" height="2465" tsb="429"/> - <mtx name="umacron" height="2465" tsb="602"/> - <mtx name="underscore" height="2465" tsb="2033"/> - <mtx name="uogonek" height="2465" tsb="947"/> - <mtx name="uring" height="2465" tsb="296"/> - <mtx name="utilde" height="2465" tsb="516"/> - <mtx name="v" height="2465" tsb="947"/> - <mtx name="w" height="2465" tsb="947"/> - <mtx name="wcircumflex" height="2465" tsb="429"/> - <mtx name="x" height="2465" tsb="947"/> - <mtx name="y" height="2465" tsb="947"/> - <mtx name="yacute" height="2465" tsb="429"/> - <mtx name="ycircumflex" height="2465" tsb="429"/> - <mtx name="ydieresis" height="2465" tsb="577"/> - <mtx name="yen" height="2465" tsb="553"/> - <mtx name="z" height="2465" tsb="947"/> - <mtx name="zacute" height="2465" tsb="429"/> - <mtx name="zcaron" height="2465" tsb="429"/> - <mtx name="zdotaccent" height="2465" tsb="553"/> - <mtx name="zero" height="2465" tsb="516"/> - </vmtx> - -</ttFont> diff --git a/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/make-other-hinting-txts.sh b/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/make-other-hinting-txts.sh deleted file mode 100755 index afee131e8..000000000 --- a/Godeps/_workspace/src/code.google.com/p/freetype-go/testdata/make-other-hinting-txts.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env bash -# -# This script creates the optional x-*-hinting.txt files from fonts that are -# not checked in for copyright or file size reasons. -# -# Run it from this directory (testdata). -# -# It has only been tested on an Ubuntu 14.04 system. - -set -e - -: ${FONTDIR:=/usr/share/fonts/truetype} - -ln -sf $FONTDIR/droid/DroidSansJapanese.ttf x-droid-sans-japanese.ttf -ln -sf $FONTDIR/msttcorefonts/Arial_Bold.ttf x-arial-bold.ttf -ln -sf $FONTDIR/msttcorefonts/Times_New_Roman.ttf x-times-new-roman.ttf -ln -sf $FONTDIR/ttf-dejavu/DejaVuSans-Oblique.ttf x-deja-vu-sans-oblique.ttf - -${CC:=gcc} ../cmd/print-glyph-points/main.c $(pkg-config --cflags --libs freetype2) -o print-glyph-points - -# Uncomment these lines to also recreate the luxisr-*-hinting.txt files. -# ./print-glyph-points 12 luxisr.ttf sans_hinting > luxisr-12pt-sans-hinting.txt -# ./print-glyph-points 12 luxisr.ttf with_hinting > luxisr-12pt-with-hinting.txt - -./print-glyph-points 9 x-droid-sans-japanese.ttf sans_hinting > x-droid-sans-japanese-9pt-sans-hinting.txt -./print-glyph-points 9 x-droid-sans-japanese.ttf with_hinting > x-droid-sans-japanese-9pt-with-hinting.txt -./print-glyph-points 11 x-arial-bold.ttf sans_hinting > x-arial-bold-11pt-sans-hinting.txt -./print-glyph-points 11 x-arial-bold.ttf with_hinting > x-arial-bold-11pt-with-hinting.txt -./print-glyph-points 13 x-times-new-roman.ttf sans_hinting > x-times-new-roman-13pt-sans-hinting.txt -./print-glyph-points 13 x-times-new-roman.ttf with_hinting > x-times-new-roman-13pt-with-hinting.txt -./print-glyph-points 17 x-deja-vu-sans-oblique.ttf sans_hinting > x-deja-vu-sans-oblique-17pt-sans-hinting.txt -./print-glyph-points 17 x-deja-vu-sans-oblique.ttf with_hinting > x-deja-vu-sans-oblique-17pt-with-hinting.txt - -rm print-glyph-points diff --git a/Godeps/_workspace/src/github.com/braintree/manners/README.md b/Godeps/_workspace/src/github.com/braintree/manners/README.md index 8c9a239b4..09f6f9693 100644 --- a/Godeps/_workspace/src/github.com/braintree/manners/README.md +++ b/Godeps/_workspace/src/github.com/braintree/manners/README.md @@ -7,23 +7,26 @@ Manners allows you to shut your Go webserver down gracefully, without dropping a ```go func main() { handler := MyHTTPHandler() - server := manners.NewServer() - server.ListenAndServe(":7000", handler) + manners.ListenAndServe(":7000", handler) } ``` Then, when you want to shut the server down: ```go -server.Shutdown <- true +manners.Close() ``` -(Note that this does not block until all the requests are finished. Rather, the call to server.ListenAndServe will stop blocking when all the requests are finished.) +(Note that this does not block until all the requests are finished. Rather, the call to manners.ListenAndServe will stop blocking when all the requests are finished.) Manners ensures that all requests are served by incrementing a WaitGroup when a request comes in and decrementing it when the request finishes. If your request handler spawns Goroutines that are not guaranteed to finish with the request, you can ensure they are also completed with the `StartRoutine` and `FinishRoutine` functions on the server. +### Known Issues + +Manners does not correctly shut down long-lived keepalive connections when issued a shutdown command. Clients on an idle keepalive connection may see a connection reset error rather than a close. See https://github.com/braintree/manners/issues/13 for details. + ### Compatability Manners 0.3.0 and above uses standard library functionality introduced in Go 1.3. diff --git a/Godeps/_workspace/src/github.com/braintree/manners/helper_test.go b/Godeps/_workspace/src/github.com/braintree/manners/helper_test.go deleted file mode 100644 index ea721a180..000000000 --- a/Godeps/_workspace/src/github.com/braintree/manners/helper_test.go +++ /dev/null @@ -1,34 +0,0 @@ -package manners - -import ( - "net/http" - "time" -) - -// A response handler that blocks until it receives a signal; simulates an -// arbitrarily long web request. The "ready" channel is to prevent a race -// condition in the test where the test moves on before the server is ready -// to handle the request. -func newBlockingHandler(ready, done chan bool) *blockingHandler { - return &blockingHandler{ready, done} -} - -type blockingHandler struct { - ready chan bool - done chan bool -} - -func (h *blockingHandler) ServeHTTP(resp http.ResponseWriter, req *http.Request) { - h.ready <- true - time.Sleep(1e2) - h.done <- true -} - -// A response handler that does nothing. -func newTestHandler() testHandler { - return testHandler{} -} - -type testHandler struct{} - -func (h testHandler) ServeHTTP(resp http.ResponseWriter, req *http.Request) {} diff --git a/Godeps/_workspace/src/github.com/braintree/manners/helpers_test.go b/Godeps/_workspace/src/github.com/braintree/manners/helpers_test.go new file mode 100644 index 000000000..dd9a8ba18 --- /dev/null +++ b/Godeps/_workspace/src/github.com/braintree/manners/helpers_test.go @@ -0,0 +1,123 @@ +package manners + +import ( + "bufio" + "crypto/tls" + "io/ioutil" + "net" + "net/http" + "testing" +) + +func newServer() *GracefulServer { + return NewWithServer(new(http.Server)) +} + +// a simple step-controllable http client +type client struct { + tls bool + addr net.Addr + connected chan error + sendrequest chan bool + response chan *rawResponse + closed chan bool +} + +type rawResponse struct { + body []string + err error +} + +func (c *client) Run() { + go func() { + var err error + conn, err := net.Dial(c.addr.Network(), c.addr.String()) + if err != nil { + c.connected <- err + return + } + if c.tls { + conn = tls.Client(conn, &tls.Config{InsecureSkipVerify: true}) + } + c.connected <- nil + for <-c.sendrequest { + _, err = conn.Write([]byte("GET / HTTP/1.1\nHost: localhost:8000\n\n")) + if err != nil { + c.response <- &rawResponse{err: err} + } + // Read response; no content + scanner := bufio.NewScanner(conn) + var lines []string + for scanner.Scan() { + // our null handler doesn't send a body, so we know the request is + // done when we reach the blank line after the headers + line := scanner.Text() + if line == "" { + break + } + lines = append(lines, line) + } + c.response <- &rawResponse{lines, scanner.Err()} + } + conn.Close() + ioutil.ReadAll(conn) + c.closed <- true + }() +} + +func newClient(addr net.Addr, tls bool) *client { + return &client{ + addr: addr, + tls: tls, + connected: make(chan error), + sendrequest: make(chan bool), + response: make(chan *rawResponse), + closed: make(chan bool), + } +} + +// a handler that returns 200 ok with no body +var nullHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {}) + +func startGenericServer(t *testing.T, server *GracefulServer, statechanged chan http.ConnState, runner func() error) (l net.Listener, errc chan error) { + server.Addr = "localhost:0" + server.Handler = nullHandler + if statechanged != nil { + // Wrap the ConnState handler with something that will notify + // the statechanged channel when a state change happens + server.ConnState = func(conn net.Conn, newState http.ConnState) { + statechanged <- newState + } + } + + server.up = make(chan net.Listener) + exitchan := make(chan error) + + go func() { + exitchan <- runner() + }() + + // wait for server socket to be bound + select { + case l = <-server.up: + // all good + + case err := <-exitchan: + // all bad + t.Fatal("Server failed to start", err) + } + return l, exitchan +} + +func startServer(t *testing.T, server *GracefulServer, statechanged chan http.ConnState) ( + l net.Listener, errc chan error) { + return startGenericServer(t, server, statechanged, server.ListenAndServe) +} + +func startTLSServer(t *testing.T, server *GracefulServer, certFile, keyFile string, statechanged chan http.ConnState) (l net.Listener, errc chan error) { + runner := func() error { + return server.ListenAndServeTLS(certFile, keyFile) + } + + return startGenericServer(t, server, statechanged, runner) +} diff --git a/Godeps/_workspace/src/github.com/braintree/manners/interfaces.go b/Godeps/_workspace/src/github.com/braintree/manners/interfaces.go new file mode 100644 index 000000000..fd0732857 --- /dev/null +++ b/Godeps/_workspace/src/github.com/braintree/manners/interfaces.go @@ -0,0 +1,7 @@ +package manners + +type waitGroup interface { + Add(int) + Done() + Wait() +} diff --git a/Godeps/_workspace/src/github.com/braintree/manners/listener.go b/Godeps/_workspace/src/github.com/braintree/manners/listener.go deleted file mode 100644 index dd84e4a2e..000000000 --- a/Godeps/_workspace/src/github.com/braintree/manners/listener.go +++ /dev/null @@ -1,49 +0,0 @@ -package manners - -import ( - "net" - "sync" -) - -func NewListener(l net.Listener, s *GracefulServer) *GracefulListener { - return &GracefulListener{l, true, s, sync.RWMutex{}} -} - -// A GracefulListener differs from a standard net.Listener in one way: if -// Accept() is called after it is gracefully closed, it returns a -// listenerAlreadyClosed error. The GracefulServer will ignore this -// error. -type GracefulListener struct { - net.Listener - open bool - server *GracefulServer - rw sync.RWMutex -} - -func (l *GracefulListener) Accept() (net.Conn, error) { - conn, err := l.Listener.Accept() - if err != nil { - l.rw.RLock() - defer l.rw.RUnlock() - if !l.open { - err = listenerAlreadyClosed{err} - } - return nil, err - } - return conn, nil -} - -func (l *GracefulListener) Close() error { - l.rw.Lock() - defer l.rw.Unlock() - if !l.open { - return nil - } - l.open = false - err := l.Listener.Close() - return err -} - -type listenerAlreadyClosed struct { - error -} diff --git a/Godeps/_workspace/src/github.com/braintree/manners/server.go b/Godeps/_workspace/src/github.com/braintree/manners/server.go index a79246668..e45f5c64b 100644 --- a/Godeps/_workspace/src/github.com/braintree/manners/server.go +++ b/Godeps/_workspace/src/github.com/braintree/manners/server.go @@ -1,83 +1,272 @@ +/* +Package manners provides a wrapper for a standard net/http server that +ensures all active HTTP client have completed their current request +before the server shuts down. + +It can be used a drop-in replacement for the standard http package, +or can wrap a pre-configured Server. + +eg. + + http.Handle("/hello", func(w http.ResponseWriter, r *http.Request) { + w.Write([]byte("Hello\n")) + }) + + log.Fatal(manners.ListenAndServe(":8080", nil)) + +or for a customized server: + + s := manners.NewWithServer(&http.Server{ + Addr: ":8080", + Handler: myHandler, + ReadTimeout: 10 * time.Second, + WriteTimeout: 10 * time.Second, + MaxHeaderBytes: 1 << 20, + }) + log.Fatal(s.ListenAndServe()) + +The server will shut down cleanly when the Close() method is called: + + go func() { + sigchan := make(chan os.Signal, 1) + signal.Notify(sigchan, os.Interrupt, os.Kill) + <-sigchan + log.Info("Shutting down...") + manners.Close() + }() + + http.Handle("/hello", myHandler) + log.Fatal(manners.ListenAndServe(":8080", nil)) +*/ package manners import ( + "crypto/tls" "net" "net/http" "sync" + "sync/atomic" ) -// Creates a new GracefulServer. The server will begin shutting down when -// a value is passed to the Shutdown channel. -func NewServer() *GracefulServer { - return &GracefulServer{ - Shutdown: make(chan bool), - } -} - // A GracefulServer maintains a WaitGroup that counts how many in-flight // requests the server is handling. When it receives a shutdown signal, // it stops accepting new requests but does not actually shut down until // all in-flight requests terminate. +// +// GracefulServer embeds the underlying net/http.Server making its non-override +// methods and properties avaiable. +// +// It must be initialized by calling NewWithServer. type GracefulServer struct { - Shutdown chan bool - wg sync.WaitGroup - shutdownHandler func() - InnerServer http.Server + *http.Server + + shutdown chan bool + shutdownFinished chan bool + wg waitGroup + + lcsmu sync.RWMutex + connections map[net.Conn]bool + + up chan net.Listener // Only used by test code. } -// A helper function that emulates the functionality of http.ListenAndServe. -func (s *GracefulServer) ListenAndServe(addr string, handler http.Handler) error { - oldListener, err := net.Listen("tcp", addr) +// NewWithServer wraps an existing http.Server object and returns a +// GracefulServer that supports all of the original Server operations. +func NewWithServer(s *http.Server) *GracefulServer { + return &GracefulServer{ + Server: s, + shutdown: make(chan bool), + shutdownFinished: make(chan bool, 1), + wg: new(sync.WaitGroup), + connections: make(map[net.Conn]bool), + } +} + +// Close stops the server from accepting new requets and begins shutting down. +// It returns true if it's the first time Close is called. +func (s *GracefulServer) Close() bool { + return <-s.shutdown +} + +// BlockingClose is similar to Close, except that it blocks until the last +// connection has been closed. +func (s *GracefulServer) BlockingClose() bool { + result := s.Close() + <-s.shutdownFinished + return result +} + +// ListenAndServe provides a graceful equivalent of net/http.Serve.ListenAndServe. +func (s *GracefulServer) ListenAndServe() error { + addr := s.Addr + if addr == "" { + addr = ":http" + } + listener, err := net.Listen("tcp", addr) if err != nil { return err } - listener := NewListener(oldListener, s) - err = s.Serve(listener, handler) - return err + return s.Serve(listener) +} + +// ListenAndServeTLS provides a graceful equivalent of net/http.Serve.ListenAndServeTLS. +func (s *GracefulServer) ListenAndServeTLS(certFile, keyFile string) error { + // direct lift from net/http/server.go + addr := s.Addr + if addr == "" { + addr = ":https" + } + config := &tls.Config{} + if s.TLSConfig != nil { + *config = *s.TLSConfig + } + if config.NextProtos == nil { + config.NextProtos = []string{"http/1.1"} + } + + var err error + config.Certificates = make([]tls.Certificate, 1) + config.Certificates[0], err = tls.LoadX509KeyPair(certFile, keyFile) + if err != nil { + return err + } + + ln, err := net.Listen("tcp", addr) + if err != nil { + return err + } + + return s.Serve(tls.NewListener(ln, config)) } -// Similar to http.Serve. The listener passed must wrap a GracefulListener. -func (s *GracefulServer) Serve(listener net.Listener, handler http.Handler) error { - s.shutdownHandler = func() { listener.Close() } - s.listenForShutdown() - s.InnerServer.Handler = handler - s.InnerServer.ConnState = func(conn net.Conn, newState http.ConnState) { +// Serve provides a graceful equivalent net/http.Server.Serve. +func (s *GracefulServer) Serve(listener net.Listener) error { + // Wrap the server HTTP handler into graceful one, that will close kept + // alive connections if a new request is received after shutdown. + gracefulHandler := newGracefulHandler(s.Server.Handler) + s.Server.Handler = gracefulHandler + + // Start a goroutine that waits for a shutdown signal and will stop the + // listener when it receives the signal. That in turn will result in + // unblocking of the http.Serve call. + go func() { + s.shutdown <- true + close(s.shutdown) + gracefulHandler.Close() + s.Server.SetKeepAlivesEnabled(false) + listener.Close() + }() + + originalConnState := s.Server.ConnState + + // s.ConnState is invoked by the net/http.Server every time a connection + // changes state. It keeps track of each connection's state over time, + // enabling manners to handle persisted connections correctly. + s.ConnState = func(conn net.Conn, newState http.ConnState) { + s.lcsmu.RLock() + protected := s.connections[conn] + s.lcsmu.RUnlock() + switch newState { + case http.StateNew: + // New connection -> StateNew + protected = true s.StartRoutine() - case http.StateClosed, http.StateHijacked: - s.FinishRoutine() + + case http.StateActive: + // (StateNew, StateIdle) -> StateActive + if gracefulHandler.IsClosed() { + conn.Close() + break + } + + if !protected { + protected = true + s.StartRoutine() + } + + default: + // (StateNew, StateActive) -> (StateIdle, StateClosed, StateHiJacked) + if protected { + s.FinishRoutine() + protected = false + } + } + + s.lcsmu.Lock() + if newState == http.StateClosed || newState == http.StateHijacked { + delete(s.connections, conn) + } else { + s.connections[conn] = protected + } + s.lcsmu.Unlock() + + if originalConnState != nil { + originalConnState(conn, newState) } } - err := s.InnerServer.Serve(listener) - - // This block is reached when the server has received a shut down command. - if err == nil { - s.wg.Wait() - return nil - } else if _, ok := err.(listenerAlreadyClosed); ok { - s.wg.Wait() - return nil + + // A hook to allow the server to notify others when it is ready to receive + // requests; only used by tests. + if s.up != nil { + s.up <- listener + } + + err := s.Server.Serve(listener) + // An error returned on shutdown is not worth reporting. + if err != nil && gracefulHandler.IsClosed() { + err = nil } + + // Wait for pending requests to complete regardless the Serve result. + s.wg.Wait() + s.shutdownFinished <- true return err } -// Increments the server's WaitGroup. Use this if a web request starts more -// goroutines and these goroutines are not guaranteed to finish before the -// request. +// StartRoutine increments the server's WaitGroup. Use this if a web request +// starts more goroutines and these goroutines are not guaranteed to finish +// before the request. func (s *GracefulServer) StartRoutine() { s.wg.Add(1) } -// Decrement the server's WaitGroup. Used this to complement StartRoutine(). +// FinishRoutine decrements the server's WaitGroup. Use this to complement +// StartRoutine(). func (s *GracefulServer) FinishRoutine() { s.wg.Done() } -func (s *GracefulServer) listenForShutdown() { - go func() { - <-s.Shutdown - s.shutdownHandler() - }() +// gracefulHandler is used by GracefulServer to prevent calling ServeHTTP on +// to be closed kept-alive connections during the server shutdown. +type gracefulHandler struct { + closed int32 // accessed atomically. + wrapped http.Handler +} + +func newGracefulHandler(wrapped http.Handler) *gracefulHandler { + return &gracefulHandler{ + wrapped: wrapped, + } +} + +func (gh *gracefulHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { + if atomic.LoadInt32(&gh.closed) == 0 { + gh.wrapped.ServeHTTP(w, r) + return + } + r.Body.Close() + // Server is shutting down at this moment, and the connection that this + // handler is being called on is about to be closed. So we do not need to + // actually execute the handler logic. +} + +func (gh *gracefulHandler) Close() { + atomic.StoreInt32(&gh.closed, 1) +} + +func (gh *gracefulHandler) IsClosed() bool { + return atomic.LoadInt32(&gh.closed) == 1 } diff --git a/Godeps/_workspace/src/github.com/braintree/manners/server_test.go b/Godeps/_workspace/src/github.com/braintree/manners/server_test.go index 0da015566..1ab7f19b4 100644 --- a/Godeps/_workspace/src/github.com/braintree/manners/server_test.go +++ b/Godeps/_workspace/src/github.com/braintree/manners/server_test.go @@ -1,71 +1,254 @@ package manners import ( + helpers "github.com/braintree/manners/test_helpers" + "net" "net/http" "testing" + "time" ) -// Tests that the server allows in-flight requests to complete before shutting -// down. +type httpInterface interface { + ListenAndServe() error + ListenAndServeTLS(certFile, keyFile string) error + Serve(listener net.Listener) error +} + +// Test that the method signatures of the methods we override from net/http/Server match those of the original. +func TestInterface(t *testing.T) { + var original, ours interface{} + original = &http.Server{} + ours = &GracefulServer{} + if _, ok := original.(httpInterface); !ok { + t.Errorf("httpInterface definition does not match the canonical server!") + } + if _, ok := ours.(httpInterface); !ok { + t.Errorf("GracefulServer does not implement httpInterface") + } +} + +// Tests that the server allows in-flight requests to complete +// before shutting down. func TestGracefulness(t *testing.T) { - ready := make(chan bool) - done := make(chan bool) + server := newServer() + wg := helpers.NewWaitGroup() + server.wg = wg + statechanged := make(chan http.ConnState) + listener, exitchan := startServer(t, server, statechanged) - exited := false + client := newClient(listener.Addr(), false) + client.Run() - handler := newBlockingHandler(ready, done) - server := NewServer() + // wait for client to connect, but don't let it send the request yet + if err := <-client.connected; err != nil { + t.Fatal("Client failed to connect to server", err) + } + // Even though the client is connected, the server ConnState handler may + // not know about that yet. So wait until it is called. + waitForState(t, statechanged, http.StateNew, "Request not received") - go func() { - err := server.ListenAndServe(":7000", handler) - if err != nil { - t.Error(err) - } + server.Close() + + waiting := <-wg.WaitCalled + if waiting < 1 { + t.Errorf("Expected the waitgroup to equal 1 at shutdown; actually %d", waiting) + } + + // allow the client to finish sending the request and make sure the server exits after + // (client will be in connected but idle state at that point) + client.sendrequest <- true + close(client.sendrequest) + if err := <-exitchan; err != nil { + t.Error("Unexpected error during shutdown", err) + } +} + +// Tests that the server begins to shut down when told to and does not accept +// new requests once shutdown has begun +func TestShutdown(t *testing.T) { + server := newServer() + wg := helpers.NewWaitGroup() + server.wg = wg + statechanged := make(chan http.ConnState) + listener, exitchan := startServer(t, server, statechanged) + + client1 := newClient(listener.Addr(), false) + client1.Run() + + // wait for client1 to connect + if err := <-client1.connected; err != nil { + t.Fatal("Client failed to connect to server", err) + } + // Even though the client is connected, the server ConnState handler may + // not know about that yet. So wait until it is called. + waitForState(t, statechanged, http.StateNew, "Request not received") + + // start the shutdown; once it hits waitgroup.Wait() + // the listener should of been closed, though client1 is still connected + if server.Close() != true { + t.Fatal("first call to Close returned false") + } + if server.Close() != false { + t.Fatal("second call to Close returned true") + } + + waiting := <-wg.WaitCalled + if waiting != 1 { + t.Errorf("Waitcount should be one, got %d", waiting) + } + + // should get connection refused at this point + client2 := newClient(listener.Addr(), false) + client2.Run() + + if err := <-client2.connected; err == nil { + t.Fatal("client2 connected when it should of received connection refused") + } + + // let client1 finish so the server can exit + close(client1.sendrequest) // don't bother sending an actual request + + <-exitchan +} + +// If a request is sent to a closed server via a kept alive connection then +// the server closes the connection upon receiving the request. +func TestRequestAfterClose(t *testing.T) { + // Given + server := newServer() + srvStateChangedCh := make(chan http.ConnState, 100) + listener, srvClosedCh := startServer(t, server, srvStateChangedCh) - exited = true - }() + client := newClient(listener.Addr(), false) + client.Run() + <-client.connected + client.sendrequest <- true + <-client.response - go func() { - _, err := http.Get("http://localhost:7000") - if err != nil { - t.Error(err) + server.Close() + if err := <-srvClosedCh; err != nil { + t.Error("Unexpected error during shutdown", err) + } + + // When + client.sendrequest <- true + rr := <-client.response + + // Then + if rr.body != nil || rr.err != nil { + t.Errorf("Request should be rejected, body=%v, err=%v", rr.body, rr.err) + } +} + +func waitForState(t *testing.T, waiter chan http.ConnState, state http.ConnState, errmsg string) { + for { + select { + case ns := <-waiter: + if ns == state { + return + } + case <-time.After(time.Second): + t.Fatal(errmsg) } - }() + } +} - // This will block until the server is inside the handler function. - <-ready +// Test that a request moving from active->idle->active using an actual +// network connection still results in a corect shutdown +func TestStateTransitionActiveIdleActive(t *testing.T) { + server := newServer() + wg := helpers.NewWaitGroup() + statechanged := make(chan http.ConnState) + server.wg = wg + listener, exitchan := startServer(t, server, statechanged) - server.Shutdown <- true - <-done + client := newClient(listener.Addr(), false) + client.Run() + + // wait for client to connect, but don't let it send the request + if err := <-client.connected; err != nil { + t.Fatal("Client failed to connect to server", err) + } + + for i := 0; i < 2; i++ { + client.sendrequest <- true + waitForState(t, statechanged, http.StateActive, "Client failed to reach active state") + <-client.response + waitForState(t, statechanged, http.StateIdle, "Client failed to reach idle state") + } + + // client is now in an idle state + + server.Close() + waiting := <-wg.WaitCalled + if waiting != 0 { + t.Errorf("Waitcount should be zero, got %d", waiting) + } - if exited { - t.Fatal("The request did not complete before server exited") - } else { - // The handler is being allowed to run to completion; test passes. + if err := <-exitchan; err != nil { + t.Error("Unexpected error during shutdown", err) } } -// Tests that the server begins to shut down when told to and does not accept -// new requests -func TestShutdown(t *testing.T) { - handler := newTestHandler() - server := NewServer() - exited := make(chan bool) - - go func() { - err := server.ListenAndServe(":7100", handler) - if err != nil { - t.Error(err) +// Test state transitions from new->active->-idle->closed using an actual +// network connection and make sure the waitgroup count is correct at the end. +func TestStateTransitionActiveIdleClosed(t *testing.T) { + var ( + listener net.Listener + exitchan chan error + ) + + keyFile, err1 := helpers.NewTempFile(helpers.Key) + certFile, err2 := helpers.NewTempFile(helpers.Cert) + defer keyFile.Unlink() + defer certFile.Unlink() + + if err1 != nil || err2 != nil { + t.Fatal("Failed to create temporary files", err1, err2) + } + + for _, withTLS := range []bool{false, true} { + server := newServer() + wg := helpers.NewWaitGroup() + statechanged := make(chan http.ConnState) + server.wg = wg + if withTLS { + listener, exitchan = startTLSServer(t, server, certFile.Name(), keyFile.Name(), statechanged) + } else { + listener, exitchan = startServer(t, server, statechanged) } - exited <- true - }() - server.Shutdown <- true + client := newClient(listener.Addr(), withTLS) + client.Run() + + // wait for client to connect, but don't let it send the request + if err := <-client.connected; err != nil { + t.Fatal("Client failed to connect to server", err) + } - <-exited - _, err := http.Get("http://localhost:7100") + client.sendrequest <- true + waitForState(t, statechanged, http.StateActive, "Client failed to reach active state") - if err == nil { - t.Fatal("Did not receive an error when trying to connect to server.") + rr := <-client.response + if rr.err != nil { + t.Fatalf("tls=%t unexpected error from client %s", withTLS, rr.err) + } + + waitForState(t, statechanged, http.StateIdle, "Client failed to reach idle state") + + // client is now in an idle state + close(client.sendrequest) + <-client.closed + waitForState(t, statechanged, http.StateClosed, "Client failed to reach closed state") + + server.Close() + waiting := <-wg.WaitCalled + if waiting != 0 { + t.Errorf("Waitcount should be zero, got %d", waiting) + } + + if err := <-exitchan; err != nil { + t.Error("Unexpected error during shutdown", err) + } } } diff --git a/Godeps/_workspace/src/github.com/braintree/manners/static.go b/Godeps/_workspace/src/github.com/braintree/manners/static.go new file mode 100644 index 000000000..2a74b094b --- /dev/null +++ b/Godeps/_workspace/src/github.com/braintree/manners/static.go @@ -0,0 +1,35 @@ +package manners + +import ( + "net" + "net/http" +) + +var defaultServer *GracefulServer + +// ListenAndServe provides a graceful version of the function provided by the +// net/http package. Call Close() to stop the server. +func ListenAndServe(addr string, handler http.Handler) error { + defaultServer = NewWithServer(&http.Server{Addr: addr, Handler: handler}) + return defaultServer.ListenAndServe() +} + +// ListenAndServeTLS provides a graceful version of the function provided by the +// net/http package. Call Close() to stop the server. +func ListenAndServeTLS(addr string, certFile string, keyFile string, handler http.Handler) error { + defaultServer = NewWithServer(&http.Server{Addr: addr, Handler: handler}) + return defaultServer.ListenAndServeTLS(certFile, keyFile) +} + +// Serve provides a graceful version of the function provided by the net/http +// package. Call Close() to stop the server. +func Serve(l net.Listener, handler http.Handler) error { + defaultServer = NewWithServer(&http.Server{Handler: handler}) + return defaultServer.Serve(l) +} + +// Shuts down the default server used by ListenAndServe, ListenAndServeTLS and +// Serve. It returns true if it's the first time Close is called. +func Close() bool { + return defaultServer.Close() +} diff --git a/Godeps/_workspace/src/github.com/braintree/manners/test_helpers/certs.go b/Godeps/_workspace/src/github.com/braintree/manners/test_helpers/certs.go new file mode 100644 index 000000000..ede248b3d --- /dev/null +++ b/Godeps/_workspace/src/github.com/braintree/manners/test_helpers/certs.go @@ -0,0 +1,29 @@ +package test_helpers + +// A PEM-encoded TLS cert with SAN IPs "127.0.0.1" and "[::1]", expiring at the +// last second of 2049 (the end of ASN.1 time). + +// generated from src/pkg/crypto/tls: +// go run generate_cert.go --rsa-bits 512 --host 127.0.0.1,::1,example.com --ca --start-date "Jan 1 00:00:00 1970" --duration=1000000h +var ( + Cert = []byte(`-----BEGIN CERTIFICATE----- +MIIBdzCCASOgAwIBAgIBADALBgkqhkiG9w0BAQUwEjEQMA4GA1UEChMHQWNtZSBD +bzAeFw03MDAxMDEwMDAwMDBaFw00OTEyMzEyMzU5NTlaMBIxEDAOBgNVBAoTB0Fj +bWUgQ28wWjALBgkqhkiG9w0BAQEDSwAwSAJBAN55NcYKZeInyTuhcCwFMhDHCmwa +IUSdtXdcbItRB/yfXGBhiex00IaLXQnSU+QZPRZWYqeTEbFSgihqi1PUDy8CAwEA +AaNoMGYwDgYDVR0PAQH/BAQDAgCkMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1Ud +EwEB/wQFMAMBAf8wLgYDVR0RBCcwJYILZXhhbXBsZS5jb22HBH8AAAGHEAAAAAAA +AAAAAAAAAAAAAAEwCwYJKoZIhvcNAQEFA0EAAoQn/ytgqpiLcZu9XKbCJsJcvkgk +Se6AbGXgSlq+ZCEVo0qIwSgeBqmsJxUu7NCSOwVJLYNEBO2DtIxoYVk+MA== +-----END CERTIFICATE-----`) + + Key = []byte(`-----BEGIN RSA PRIVATE KEY----- +MIIBPAIBAAJBAN55NcYKZeInyTuhcCwFMhDHCmwaIUSdtXdcbItRB/yfXGBhiex0 +0IaLXQnSU+QZPRZWYqeTEbFSgihqi1PUDy8CAwEAAQJBAQdUx66rfh8sYsgfdcvV +NoafYpnEcB5s4m/vSVe6SU7dCK6eYec9f9wpT353ljhDUHq3EbmE4foNzJngh35d +AekCIQDhRQG5Li0Wj8TM4obOnnXUXf1jRv0UkzE9AHWLG5q3AwIhAPzSjpYUDjVW +MCUXgckTpKCuGwbJk7424Nb8bLzf3kllAiA5mUBgjfr/WtFSJdWcPQ4Zt9KTMNKD +EUO0ukpTwEIl6wIhAMbGqZK3zAAFdq8DD2jPx+UJXnh0rnOkZBzDtJ6/iN69AiEA +1Aq8MJgTaYsDQWyU/hDq5YkDJc9e9DSCvUIzqxQWMQE= +-----END RSA PRIVATE KEY-----`) +) diff --git a/Godeps/_workspace/src/github.com/braintree/manners/test_helpers/conn.go b/Godeps/_workspace/src/github.com/braintree/manners/test_helpers/conn.go new file mode 100644 index 000000000..8c610f58e --- /dev/null +++ b/Godeps/_workspace/src/github.com/braintree/manners/test_helpers/conn.go @@ -0,0 +1,13 @@ +package test_helpers + +import "net" + +type Conn struct { + net.Conn + CloseCalled bool +} + +func (c *Conn) Close() error { + c.CloseCalled = true + return nil +} diff --git a/Godeps/_workspace/src/github.com/braintree/manners/test_helpers/listener.go b/Godeps/_workspace/src/github.com/braintree/manners/test_helpers/listener.go new file mode 100644 index 000000000..e3af35a6e --- /dev/null +++ b/Godeps/_workspace/src/github.com/braintree/manners/test_helpers/listener.go @@ -0,0 +1,34 @@ +package test_helpers + +import ( + "errors" + "net" +) + +type Listener struct { + AcceptRelease chan bool + CloseCalled chan bool +} + +func NewListener() *Listener { + return &Listener{ + make(chan bool, 1), + make(chan bool, 1), + } +} + +func (l *Listener) Addr() net.Addr { + addr, _ := net.ResolveTCPAddr("tcp", "127.0.0.1:8080") + return addr +} + +func (l *Listener) Close() error { + l.CloseCalled <- true + l.AcceptRelease <- true + return nil +} + +func (l *Listener) Accept() (net.Conn, error) { + <-l.AcceptRelease + return nil, errors.New("connection closed") +} diff --git a/Godeps/_workspace/src/github.com/braintree/manners/test_helpers/temp_file.go b/Godeps/_workspace/src/github.com/braintree/manners/test_helpers/temp_file.go new file mode 100644 index 000000000..c4aa263a0 --- /dev/null +++ b/Godeps/_workspace/src/github.com/braintree/manners/test_helpers/temp_file.go @@ -0,0 +1,27 @@ +package test_helpers + +import ( + "io/ioutil" + "os" +) + +type TempFile struct { + *os.File +} + +func NewTempFile(content []byte) (*TempFile, error) { + f, err := ioutil.TempFile("", "graceful-test") + if err != nil { + return nil, err + } + + f.Write(content) + return &TempFile{f}, nil +} + +func (tf *TempFile) Unlink() { + if tf.File != nil { + os.Remove(tf.Name()) + tf.File = nil + } +} diff --git a/Godeps/_workspace/src/github.com/braintree/manners/test_helpers/wait_group.go b/Godeps/_workspace/src/github.com/braintree/manners/test_helpers/wait_group.go new file mode 100644 index 000000000..1df590db7 --- /dev/null +++ b/Godeps/_workspace/src/github.com/braintree/manners/test_helpers/wait_group.go @@ -0,0 +1,33 @@ +package test_helpers + +import "sync" + +type WaitGroup struct { + sync.Mutex + Count int + WaitCalled chan int +} + +func NewWaitGroup() *WaitGroup { + return &WaitGroup{ + WaitCalled: make(chan int, 1), + } +} + +func (wg *WaitGroup) Add(delta int) { + wg.Lock() + wg.Count++ + wg.Unlock() +} + +func (wg *WaitGroup) Done() { + wg.Lock() + wg.Count-- + wg.Unlock() +} + +func (wg *WaitGroup) Wait() { + wg.Lock() + wg.WaitCalled <- wg.Count + wg.Unlock() +} diff --git a/Godeps/_workspace/src/github.com/braintree/manners/transition_test.go b/Godeps/_workspace/src/github.com/braintree/manners/transition_test.go new file mode 100644 index 000000000..34fe5c688 --- /dev/null +++ b/Godeps/_workspace/src/github.com/braintree/manners/transition_test.go @@ -0,0 +1,54 @@ +package manners + +import ( + helpers "github.com/braintree/manners/test_helpers" + "net/http" + "strings" + "testing" +) + +func TestStateTransitions(t *testing.T) { + tests := []transitionTest{ + transitionTest{[]http.ConnState{http.StateNew, http.StateActive}, 1}, + transitionTest{[]http.ConnState{http.StateNew, http.StateClosed}, 0}, + transitionTest{[]http.ConnState{http.StateNew, http.StateActive, http.StateClosed}, 0}, + transitionTest{[]http.ConnState{http.StateNew, http.StateActive, http.StateHijacked}, 0}, + transitionTest{[]http.ConnState{http.StateNew, http.StateActive, http.StateIdle}, 0}, + transitionTest{[]http.ConnState{http.StateNew, http.StateActive, http.StateIdle, http.StateActive}, 1}, + transitionTest{[]http.ConnState{http.StateNew, http.StateActive, http.StateIdle, http.StateActive, http.StateIdle}, 0}, + transitionTest{[]http.ConnState{http.StateNew, http.StateActive, http.StateIdle, http.StateActive, http.StateClosed}, 0}, + transitionTest{[]http.ConnState{http.StateNew, http.StateActive, http.StateIdle, http.StateActive, http.StateIdle, http.StateClosed}, 0}, + } + + for _, test := range tests { + testStateTransition(t, test) + } +} + +type transitionTest struct { + states []http.ConnState + expectedWgCount int +} + +func testStateTransition(t *testing.T, test transitionTest) { + server := newServer() + wg := helpers.NewWaitGroup() + server.wg = wg + startServer(t, server, nil) + + conn := &helpers.Conn{} + for _, newState := range test.states { + server.ConnState(conn, newState) + } + + server.Close() + waiting := <-wg.WaitCalled + if waiting != test.expectedWgCount { + names := make([]string, len(test.states)) + for i, s := range test.states { + names[i] = s.String() + } + transitions := strings.Join(names, " -> ") + t.Errorf("%s - Waitcount should be %d, got %d", transitions, test.expectedWgCount, waiting) + } +} diff --git a/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/bypass.go b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/bypass.go new file mode 100644 index 000000000..565bf5899 --- /dev/null +++ b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/bypass.go @@ -0,0 +1,151 @@ +// Copyright (c) 2015 Dave Collins <dave@davec.name> +// +// Permission to use, copy, modify, and distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +// NOTE: Due to the following build constraints, this file will only be compiled +// when the code is not running on Google App Engine and "-tags disableunsafe" +// is not added to the go build command line. +// +build !appengine,!disableunsafe + +package spew + +import ( + "reflect" + "unsafe" +) + +const ( + // UnsafeDisabled is a build-time constant which specifies whether or + // not access to the unsafe package is available. + UnsafeDisabled = false + + // ptrSize is the size of a pointer on the current arch. + ptrSize = unsafe.Sizeof((*byte)(nil)) +) + +var ( + // offsetPtr, offsetScalar, and offsetFlag are the offsets for the + // internal reflect.Value fields. These values are valid before golang + // commit ecccf07e7f9d which changed the format. The are also valid + // after commit 82f48826c6c7 which changed the format again to mirror + // the original format. Code in the init function updates these offsets + // as necessary. + offsetPtr = uintptr(ptrSize) + offsetScalar = uintptr(0) + offsetFlag = uintptr(ptrSize * 2) + + // flagKindWidth and flagKindShift indicate various bits that the + // reflect package uses internally to track kind information. + // + // flagRO indicates whether or not the value field of a reflect.Value is + // read-only. + // + // flagIndir indicates whether the value field of a reflect.Value is + // the actual data or a pointer to the data. + // + // These values are valid before golang commit 90a7c3c86944 which + // changed their positions. Code in the init function updates these + // flags as necessary. + flagKindWidth = uintptr(5) + flagKindShift = uintptr(flagKindWidth - 1) + flagRO = uintptr(1 << 0) + flagIndir = uintptr(1 << 1) +) + +func init() { + // Older versions of reflect.Value stored small integers directly in the + // ptr field (which is named val in the older versions). Versions + // between commits ecccf07e7f9d and 82f48826c6c7 added a new field named + // scalar for this purpose which unfortunately came before the flag + // field, so the offset of the flag field is different for those + // versions. + // + // This code constructs a new reflect.Value from a known small integer + // and checks if the size of the reflect.Value struct indicates it has + // the scalar field. When it does, the offsets are updated accordingly. + vv := reflect.ValueOf(0xf00) + if unsafe.Sizeof(vv) == (ptrSize * 4) { + offsetScalar = ptrSize * 2 + offsetFlag = ptrSize * 3 + } + + // Commit 90a7c3c86944 changed the flag positions such that the low + // order bits are the kind. This code extracts the kind from the flags + // field and ensures it's the correct type. When it's not, the flag + // order has been changed to the newer format, so the flags are updated + // accordingly. + upf := unsafe.Pointer(uintptr(unsafe.Pointer(&vv)) + offsetFlag) + upfv := *(*uintptr)(upf) + flagKindMask := uintptr((1<<flagKindWidth - 1) << flagKindShift) + if (upfv&flagKindMask)>>flagKindShift != uintptr(reflect.Int) { + flagKindShift = 0 + flagRO = 1 << 5 + flagIndir = 1 << 6 + + // Commit adf9b30e5594 modified the flags to separate the + // flagRO flag into two bits which specifies whether or not the + // field is embedded. This causes flagIndir to move over a bit + // and means that flagRO is the combination of either of the + // original flagRO bit and the new bit. + // + // This code detects the change by extracting what used to be + // the indirect bit to ensure it's set. When it's not, the flag + // order has been changed to the newer format, so the flags are + // updated accordingly. + if upfv&flagIndir == 0 { + flagRO = 3 << 5 + flagIndir = 1 << 7 + } + } +} + +// unsafeReflectValue converts the passed reflect.Value into a one that bypasses +// the typical safety restrictions preventing access to unaddressable and +// unexported data. It works by digging the raw pointer to the underlying +// value out of the protected value and generating a new unprotected (unsafe) +// reflect.Value to it. +// +// This allows us to check for implementations of the Stringer and error +// interfaces to be used for pretty printing ordinarily unaddressable and +// inaccessible values such as unexported struct fields. +func unsafeReflectValue(v reflect.Value) (rv reflect.Value) { + indirects := 1 + vt := v.Type() + upv := unsafe.Pointer(uintptr(unsafe.Pointer(&v)) + offsetPtr) + rvf := *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&v)) + offsetFlag)) + if rvf&flagIndir != 0 { + vt = reflect.PtrTo(v.Type()) + indirects++ + } else if offsetScalar != 0 { + // The value is in the scalar field when it's not one of the + // reference types. + switch vt.Kind() { + case reflect.Uintptr: + case reflect.Chan: + case reflect.Func: + case reflect.Map: + case reflect.Ptr: + case reflect.UnsafePointer: + default: + upv = unsafe.Pointer(uintptr(unsafe.Pointer(&v)) + + offsetScalar) + } + } + + pv := reflect.NewAt(vt, upv) + rv = pv + for i := 0; i < indirects; i++ { + rv = rv.Elem() + } + return rv +} diff --git a/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/bypasssafe.go b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/bypasssafe.go new file mode 100644 index 000000000..457e41235 --- /dev/null +++ b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/bypasssafe.go @@ -0,0 +1,37 @@ +// Copyright (c) 2015 Dave Collins <dave@davec.name> +// +// Permission to use, copy, modify, and distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +// NOTE: Due to the following build constraints, this file will only be compiled +// when either the code is running on Google App Engine or "-tags disableunsafe" +// is added to the go build command line. +// +build appengine disableunsafe + +package spew + +import "reflect" + +const ( + // UnsafeDisabled is a build-time constant which specifies whether or + // not access to the unsafe package is available. + UnsafeDisabled = true +) + +// unsafeReflectValue typically converts the passed reflect.Value into a one +// that bypasses the typical safety restrictions preventing access to +// unaddressable and unexported data. However, doing this relies on access to +// the unsafe package. This is a stub version which simply returns the passed +// reflect.Value when the unsafe package is not available. +func unsafeReflectValue(v reflect.Value) reflect.Value { + return v +} diff --git a/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/common.go b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/common.go new file mode 100644 index 000000000..14f02dc15 --- /dev/null +++ b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/common.go @@ -0,0 +1,341 @@ +/* + * Copyright (c) 2013 Dave Collins <dave@davec.name> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +package spew + +import ( + "bytes" + "fmt" + "io" + "reflect" + "sort" + "strconv" +) + +// Some constants in the form of bytes to avoid string overhead. This mirrors +// the technique used in the fmt package. +var ( + panicBytes = []byte("(PANIC=") + plusBytes = []byte("+") + iBytes = []byte("i") + trueBytes = []byte("true") + falseBytes = []byte("false") + interfaceBytes = []byte("(interface {})") + commaNewlineBytes = []byte(",\n") + newlineBytes = []byte("\n") + openBraceBytes = []byte("{") + openBraceNewlineBytes = []byte("{\n") + closeBraceBytes = []byte("}") + asteriskBytes = []byte("*") + colonBytes = []byte(":") + colonSpaceBytes = []byte(": ") + openParenBytes = []byte("(") + closeParenBytes = []byte(")") + spaceBytes = []byte(" ") + pointerChainBytes = []byte("->") + nilAngleBytes = []byte("<nil>") + maxNewlineBytes = []byte("<max depth reached>\n") + maxShortBytes = []byte("<max>") + circularBytes = []byte("<already shown>") + circularShortBytes = []byte("<shown>") + invalidAngleBytes = []byte("<invalid>") + openBracketBytes = []byte("[") + closeBracketBytes = []byte("]") + percentBytes = []byte("%") + precisionBytes = []byte(".") + openAngleBytes = []byte("<") + closeAngleBytes = []byte(">") + openMapBytes = []byte("map[") + closeMapBytes = []byte("]") + lenEqualsBytes = []byte("len=") + capEqualsBytes = []byte("cap=") +) + +// hexDigits is used to map a decimal value to a hex digit. +var hexDigits = "0123456789abcdef" + +// catchPanic handles any panics that might occur during the handleMethods +// calls. +func catchPanic(w io.Writer, v reflect.Value) { + if err := recover(); err != nil { + w.Write(panicBytes) + fmt.Fprintf(w, "%v", err) + w.Write(closeParenBytes) + } +} + +// handleMethods attempts to call the Error and String methods on the underlying +// type the passed reflect.Value represents and outputes the result to Writer w. +// +// It handles panics in any called methods by catching and displaying the error +// as the formatted value. +func handleMethods(cs *ConfigState, w io.Writer, v reflect.Value) (handled bool) { + // We need an interface to check if the type implements the error or + // Stringer interface. However, the reflect package won't give us an + // interface on certain things like unexported struct fields in order + // to enforce visibility rules. We use unsafe, when it's available, + // to bypass these restrictions since this package does not mutate the + // values. + if !v.CanInterface() { + if UnsafeDisabled { + return false + } + + v = unsafeReflectValue(v) + } + + // Choose whether or not to do error and Stringer interface lookups against + // the base type or a pointer to the base type depending on settings. + // Technically calling one of these methods with a pointer receiver can + // mutate the value, however, types which choose to satisify an error or + // Stringer interface with a pointer receiver should not be mutating their + // state inside these interface methods. + if !cs.DisablePointerMethods && !UnsafeDisabled && !v.CanAddr() { + v = unsafeReflectValue(v) + } + if v.CanAddr() { + v = v.Addr() + } + + // Is it an error or Stringer? + switch iface := v.Interface().(type) { + case error: + defer catchPanic(w, v) + if cs.ContinueOnMethod { + w.Write(openParenBytes) + w.Write([]byte(iface.Error())) + w.Write(closeParenBytes) + w.Write(spaceBytes) + return false + } + + w.Write([]byte(iface.Error())) + return true + + case fmt.Stringer: + defer catchPanic(w, v) + if cs.ContinueOnMethod { + w.Write(openParenBytes) + w.Write([]byte(iface.String())) + w.Write(closeParenBytes) + w.Write(spaceBytes) + return false + } + w.Write([]byte(iface.String())) + return true + } + return false +} + +// printBool outputs a boolean value as true or false to Writer w. +func printBool(w io.Writer, val bool) { + if val { + w.Write(trueBytes) + } else { + w.Write(falseBytes) + } +} + +// printInt outputs a signed integer value to Writer w. +func printInt(w io.Writer, val int64, base int) { + w.Write([]byte(strconv.FormatInt(val, base))) +} + +// printUint outputs an unsigned integer value to Writer w. +func printUint(w io.Writer, val uint64, base int) { + w.Write([]byte(strconv.FormatUint(val, base))) +} + +// printFloat outputs a floating point value using the specified precision, +// which is expected to be 32 or 64bit, to Writer w. +func printFloat(w io.Writer, val float64, precision int) { + w.Write([]byte(strconv.FormatFloat(val, 'g', -1, precision))) +} + +// printComplex outputs a complex value using the specified float precision +// for the real and imaginary parts to Writer w. +func printComplex(w io.Writer, c complex128, floatPrecision int) { + r := real(c) + w.Write(openParenBytes) + w.Write([]byte(strconv.FormatFloat(r, 'g', -1, floatPrecision))) + i := imag(c) + if i >= 0 { + w.Write(plusBytes) + } + w.Write([]byte(strconv.FormatFloat(i, 'g', -1, floatPrecision))) + w.Write(iBytes) + w.Write(closeParenBytes) +} + +// printHexPtr outputs a uintptr formatted as hexidecimal with a leading '0x' +// prefix to Writer w. +func printHexPtr(w io.Writer, p uintptr) { + // Null pointer. + num := uint64(p) + if num == 0 { + w.Write(nilAngleBytes) + return + } + + // Max uint64 is 16 bytes in hex + 2 bytes for '0x' prefix + buf := make([]byte, 18) + + // It's simpler to construct the hex string right to left. + base := uint64(16) + i := len(buf) - 1 + for num >= base { + buf[i] = hexDigits[num%base] + num /= base + i-- + } + buf[i] = hexDigits[num] + + // Add '0x' prefix. + i-- + buf[i] = 'x' + i-- + buf[i] = '0' + + // Strip unused leading bytes. + buf = buf[i:] + w.Write(buf) +} + +// valuesSorter implements sort.Interface to allow a slice of reflect.Value +// elements to be sorted. +type valuesSorter struct { + values []reflect.Value + strings []string // either nil or same len and values + cs *ConfigState +} + +// newValuesSorter initializes a valuesSorter instance, which holds a set of +// surrogate keys on which the data should be sorted. It uses flags in +// ConfigState to decide if and how to populate those surrogate keys. +func newValuesSorter(values []reflect.Value, cs *ConfigState) sort.Interface { + vs := &valuesSorter{values: values, cs: cs} + if canSortSimply(vs.values[0].Kind()) { + return vs + } + if !cs.DisableMethods { + vs.strings = make([]string, len(values)) + for i := range vs.values { + b := bytes.Buffer{} + if !handleMethods(cs, &b, vs.values[i]) { + vs.strings = nil + break + } + vs.strings[i] = b.String() + } + } + if vs.strings == nil && cs.SpewKeys { + vs.strings = make([]string, len(values)) + for i := range vs.values { + vs.strings[i] = Sprintf("%#v", vs.values[i].Interface()) + } + } + return vs +} + +// canSortSimply tests whether a reflect.Kind is a primitive that can be sorted +// directly, or whether it should be considered for sorting by surrogate keys +// (if the ConfigState allows it). +func canSortSimply(kind reflect.Kind) bool { + // This switch parallels valueSortLess, except for the default case. + switch kind { + case reflect.Bool: + return true + case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int: + return true + case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint: + return true + case reflect.Float32, reflect.Float64: + return true + case reflect.String: + return true + case reflect.Uintptr: + return true + case reflect.Array: + return true + } + return false +} + +// Len returns the number of values in the slice. It is part of the +// sort.Interface implementation. +func (s *valuesSorter) Len() int { + return len(s.values) +} + +// Swap swaps the values at the passed indices. It is part of the +// sort.Interface implementation. +func (s *valuesSorter) Swap(i, j int) { + s.values[i], s.values[j] = s.values[j], s.values[i] + if s.strings != nil { + s.strings[i], s.strings[j] = s.strings[j], s.strings[i] + } +} + +// valueSortLess returns whether the first value should sort before the second +// value. It is used by valueSorter.Less as part of the sort.Interface +// implementation. +func valueSortLess(a, b reflect.Value) bool { + switch a.Kind() { + case reflect.Bool: + return !a.Bool() && b.Bool() + case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int: + return a.Int() < b.Int() + case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint: + return a.Uint() < b.Uint() + case reflect.Float32, reflect.Float64: + return a.Float() < b.Float() + case reflect.String: + return a.String() < b.String() + case reflect.Uintptr: + return a.Uint() < b.Uint() + case reflect.Array: + // Compare the contents of both arrays. + l := a.Len() + for i := 0; i < l; i++ { + av := a.Index(i) + bv := b.Index(i) + if av.Interface() == bv.Interface() { + continue + } + return valueSortLess(av, bv) + } + } + return a.String() < b.String() +} + +// Less returns whether the value at index i should sort before the +// value at index j. It is part of the sort.Interface implementation. +func (s *valuesSorter) Less(i, j int) bool { + if s.strings == nil { + return valueSortLess(s.values[i], s.values[j]) + } + return s.strings[i] < s.strings[j] +} + +// sortValues is a sort function that handles both native types and any type that +// can be converted to error or Stringer. Other inputs are sorted according to +// their Value.String() value to ensure display stability. +func sortValues(values []reflect.Value, cs *ConfigState) { + if len(values) == 0 { + return + } + sort.Sort(newValuesSorter(values, cs)) +} diff --git a/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/common_test.go b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/common_test.go new file mode 100644 index 000000000..39b7525b3 --- /dev/null +++ b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/common_test.go @@ -0,0 +1,298 @@ +/* + * Copyright (c) 2013 Dave Collins <dave@davec.name> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +package spew_test + +import ( + "fmt" + "reflect" + "testing" + + "github.com/davecgh/go-spew/spew" +) + +// custom type to test Stinger interface on non-pointer receiver. +type stringer string + +// String implements the Stringer interface for testing invocation of custom +// stringers on types with non-pointer receivers. +func (s stringer) String() string { + return "stringer " + string(s) +} + +// custom type to test Stinger interface on pointer receiver. +type pstringer string + +// String implements the Stringer interface for testing invocation of custom +// stringers on types with only pointer receivers. +func (s *pstringer) String() string { + return "stringer " + string(*s) +} + +// xref1 and xref2 are cross referencing structs for testing circular reference +// detection. +type xref1 struct { + ps2 *xref2 +} +type xref2 struct { + ps1 *xref1 +} + +// indirCir1, indirCir2, and indirCir3 are used to generate an indirect circular +// reference for testing detection. +type indirCir1 struct { + ps2 *indirCir2 +} +type indirCir2 struct { + ps3 *indirCir3 +} +type indirCir3 struct { + ps1 *indirCir1 +} + +// embed is used to test embedded structures. +type embed struct { + a string +} + +// embedwrap is used to test embedded structures. +type embedwrap struct { + *embed + e *embed +} + +// panicer is used to intentionally cause a panic for testing spew properly +// handles them +type panicer int + +func (p panicer) String() string { + panic("test panic") +} + +// customError is used to test custom error interface invocation. +type customError int + +func (e customError) Error() string { + return fmt.Sprintf("error: %d", int(e)) +} + +// stringizeWants converts a slice of wanted test output into a format suitable +// for a test error message. +func stringizeWants(wants []string) string { + s := "" + for i, want := range wants { + if i > 0 { + s += fmt.Sprintf("want%d: %s", i+1, want) + } else { + s += "want: " + want + } + } + return s +} + +// testFailed returns whether or not a test failed by checking if the result +// of the test is in the slice of wanted strings. +func testFailed(result string, wants []string) bool { + for _, want := range wants { + if result == want { + return false + } + } + return true +} + +type sortableStruct struct { + x int +} + +func (ss sortableStruct) String() string { + return fmt.Sprintf("ss.%d", ss.x) +} + +type unsortableStruct struct { + x int +} + +type sortTestCase struct { + input []reflect.Value + expected []reflect.Value +} + +func helpTestSortValues(tests []sortTestCase, cs *spew.ConfigState, t *testing.T) { + getInterfaces := func(values []reflect.Value) []interface{} { + interfaces := []interface{}{} + for _, v := range values { + interfaces = append(interfaces, v.Interface()) + } + return interfaces + } + + for _, test := range tests { + spew.SortValues(test.input, cs) + // reflect.DeepEqual cannot really make sense of reflect.Value, + // probably because of all the pointer tricks. For instance, + // v(2.0) != v(2.0) on a 32-bits system. Turn them into interface{} + // instead. + input := getInterfaces(test.input) + expected := getInterfaces(test.expected) + if !reflect.DeepEqual(input, expected) { + t.Errorf("Sort mismatch:\n %v != %v", input, expected) + } + } +} + +// TestSortValues ensures the sort functionality for relect.Value based sorting +// works as intended. +func TestSortValues(t *testing.T) { + v := reflect.ValueOf + + a := v("a") + b := v("b") + c := v("c") + embedA := v(embed{"a"}) + embedB := v(embed{"b"}) + embedC := v(embed{"c"}) + tests := []sortTestCase{ + // No values. + { + []reflect.Value{}, + []reflect.Value{}, + }, + // Bools. + { + []reflect.Value{v(false), v(true), v(false)}, + []reflect.Value{v(false), v(false), v(true)}, + }, + // Ints. + { + []reflect.Value{v(2), v(1), v(3)}, + []reflect.Value{v(1), v(2), v(3)}, + }, + // Uints. + { + []reflect.Value{v(uint8(2)), v(uint8(1)), v(uint8(3))}, + []reflect.Value{v(uint8(1)), v(uint8(2)), v(uint8(3))}, + }, + // Floats. + { + []reflect.Value{v(2.0), v(1.0), v(3.0)}, + []reflect.Value{v(1.0), v(2.0), v(3.0)}, + }, + // Strings. + { + []reflect.Value{b, a, c}, + []reflect.Value{a, b, c}, + }, + // Array + { + []reflect.Value{v([3]int{3, 2, 1}), v([3]int{1, 3, 2}), v([3]int{1, 2, 3})}, + []reflect.Value{v([3]int{1, 2, 3}), v([3]int{1, 3, 2}), v([3]int{3, 2, 1})}, + }, + // Uintptrs. + { + []reflect.Value{v(uintptr(2)), v(uintptr(1)), v(uintptr(3))}, + []reflect.Value{v(uintptr(1)), v(uintptr(2)), v(uintptr(3))}, + }, + // SortableStructs. + { + // Note: not sorted - DisableMethods is set. + []reflect.Value{v(sortableStruct{2}), v(sortableStruct{1}), v(sortableStruct{3})}, + []reflect.Value{v(sortableStruct{2}), v(sortableStruct{1}), v(sortableStruct{3})}, + }, + // UnsortableStructs. + { + // Note: not sorted - SpewKeys is false. + []reflect.Value{v(unsortableStruct{2}), v(unsortableStruct{1}), v(unsortableStruct{3})}, + []reflect.Value{v(unsortableStruct{2}), v(unsortableStruct{1}), v(unsortableStruct{3})}, + }, + // Invalid. + { + []reflect.Value{embedB, embedA, embedC}, + []reflect.Value{embedB, embedA, embedC}, + }, + } + cs := spew.ConfigState{DisableMethods: true, SpewKeys: false} + helpTestSortValues(tests, &cs, t) +} + +// TestSortValuesWithMethods ensures the sort functionality for relect.Value +// based sorting works as intended when using string methods. +func TestSortValuesWithMethods(t *testing.T) { + v := reflect.ValueOf + + a := v("a") + b := v("b") + c := v("c") + tests := []sortTestCase{ + // Ints. + { + []reflect.Value{v(2), v(1), v(3)}, + []reflect.Value{v(1), v(2), v(3)}, + }, + // Strings. + { + []reflect.Value{b, a, c}, + []reflect.Value{a, b, c}, + }, + // SortableStructs. + { + []reflect.Value{v(sortableStruct{2}), v(sortableStruct{1}), v(sortableStruct{3})}, + []reflect.Value{v(sortableStruct{1}), v(sortableStruct{2}), v(sortableStruct{3})}, + }, + // UnsortableStructs. + { + // Note: not sorted - SpewKeys is false. + []reflect.Value{v(unsortableStruct{2}), v(unsortableStruct{1}), v(unsortableStruct{3})}, + []reflect.Value{v(unsortableStruct{2}), v(unsortableStruct{1}), v(unsortableStruct{3})}, + }, + } + cs := spew.ConfigState{DisableMethods: false, SpewKeys: false} + helpTestSortValues(tests, &cs, t) +} + +// TestSortValuesWithSpew ensures the sort functionality for relect.Value +// based sorting works as intended when using spew to stringify keys. +func TestSortValuesWithSpew(t *testing.T) { + v := reflect.ValueOf + + a := v("a") + b := v("b") + c := v("c") + tests := []sortTestCase{ + // Ints. + { + []reflect.Value{v(2), v(1), v(3)}, + []reflect.Value{v(1), v(2), v(3)}, + }, + // Strings. + { + []reflect.Value{b, a, c}, + []reflect.Value{a, b, c}, + }, + // SortableStructs. + { + []reflect.Value{v(sortableStruct{2}), v(sortableStruct{1}), v(sortableStruct{3})}, + []reflect.Value{v(sortableStruct{1}), v(sortableStruct{2}), v(sortableStruct{3})}, + }, + // UnsortableStructs. + { + []reflect.Value{v(unsortableStruct{2}), v(unsortableStruct{1}), v(unsortableStruct{3})}, + []reflect.Value{v(unsortableStruct{1}), v(unsortableStruct{2}), v(unsortableStruct{3})}, + }, + } + cs := spew.ConfigState{DisableMethods: true, SpewKeys: true} + helpTestSortValues(tests, &cs, t) +} diff --git a/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/config.go b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/config.go new file mode 100644 index 000000000..ee1ab07b3 --- /dev/null +++ b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/config.go @@ -0,0 +1,297 @@ +/* + * Copyright (c) 2013 Dave Collins <dave@davec.name> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +package spew + +import ( + "bytes" + "fmt" + "io" + "os" +) + +// ConfigState houses the configuration options used by spew to format and +// display values. There is a global instance, Config, that is used to control +// all top-level Formatter and Dump functionality. Each ConfigState instance +// provides methods equivalent to the top-level functions. +// +// The zero value for ConfigState provides no indentation. You would typically +// want to set it to a space or a tab. +// +// Alternatively, you can use NewDefaultConfig to get a ConfigState instance +// with default settings. See the documentation of NewDefaultConfig for default +// values. +type ConfigState struct { + // Indent specifies the string to use for each indentation level. The + // global config instance that all top-level functions use set this to a + // single space by default. If you would like more indentation, you might + // set this to a tab with "\t" or perhaps two spaces with " ". + Indent string + + // MaxDepth controls the maximum number of levels to descend into nested + // data structures. The default, 0, means there is no limit. + // + // NOTE: Circular data structures are properly detected, so it is not + // necessary to set this value unless you specifically want to limit deeply + // nested data structures. + MaxDepth int + + // DisableMethods specifies whether or not error and Stringer interfaces are + // invoked for types that implement them. + DisableMethods bool + + // DisablePointerMethods specifies whether or not to check for and invoke + // error and Stringer interfaces on types which only accept a pointer + // receiver when the current type is not a pointer. + // + // NOTE: This might be an unsafe action since calling one of these methods + // with a pointer receiver could technically mutate the value, however, + // in practice, types which choose to satisify an error or Stringer + // interface with a pointer receiver should not be mutating their state + // inside these interface methods. As a result, this option relies on + // access to the unsafe package, so it will not have any effect when + // running in environments without access to the unsafe package such as + // Google App Engine or with the "disableunsafe" build tag specified. + DisablePointerMethods bool + + // ContinueOnMethod specifies whether or not recursion should continue once + // a custom error or Stringer interface is invoked. The default, false, + // means it will print the results of invoking the custom error or Stringer + // interface and return immediately instead of continuing to recurse into + // the internals of the data type. + // + // NOTE: This flag does not have any effect if method invocation is disabled + // via the DisableMethods or DisablePointerMethods options. + ContinueOnMethod bool + + // SortKeys specifies map keys should be sorted before being printed. Use + // this to have a more deterministic, diffable output. Note that only + // native types (bool, int, uint, floats, uintptr and string) and types + // that support the error or Stringer interfaces (if methods are + // enabled) are supported, with other types sorted according to the + // reflect.Value.String() output which guarantees display stability. + SortKeys bool + + // SpewKeys specifies that, as a last resort attempt, map keys should + // be spewed to strings and sorted by those strings. This is only + // considered if SortKeys is true. + SpewKeys bool +} + +// Config is the active configuration of the top-level functions. +// The configuration can be changed by modifying the contents of spew.Config. +var Config = ConfigState{Indent: " "} + +// Errorf is a wrapper for fmt.Errorf that treats each argument as if it were +// passed with a Formatter interface returned by c.NewFormatter. It returns +// the formatted string as a value that satisfies error. See NewFormatter +// for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Errorf(format, c.NewFormatter(a), c.NewFormatter(b)) +func (c *ConfigState) Errorf(format string, a ...interface{}) (err error) { + return fmt.Errorf(format, c.convertArgs(a)...) +} + +// Fprint is a wrapper for fmt.Fprint that treats each argument as if it were +// passed with a Formatter interface returned by c.NewFormatter. It returns +// the number of bytes written and any write error encountered. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Fprint(w, c.NewFormatter(a), c.NewFormatter(b)) +func (c *ConfigState) Fprint(w io.Writer, a ...interface{}) (n int, err error) { + return fmt.Fprint(w, c.convertArgs(a)...) +} + +// Fprintf is a wrapper for fmt.Fprintf that treats each argument as if it were +// passed with a Formatter interface returned by c.NewFormatter. It returns +// the number of bytes written and any write error encountered. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Fprintf(w, format, c.NewFormatter(a), c.NewFormatter(b)) +func (c *ConfigState) Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) { + return fmt.Fprintf(w, format, c.convertArgs(a)...) +} + +// Fprintln is a wrapper for fmt.Fprintln that treats each argument as if it +// passed with a Formatter interface returned by c.NewFormatter. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Fprintln(w, c.NewFormatter(a), c.NewFormatter(b)) +func (c *ConfigState) Fprintln(w io.Writer, a ...interface{}) (n int, err error) { + return fmt.Fprintln(w, c.convertArgs(a)...) +} + +// Print is a wrapper for fmt.Print that treats each argument as if it were +// passed with a Formatter interface returned by c.NewFormatter. It returns +// the number of bytes written and any write error encountered. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Print(c.NewFormatter(a), c.NewFormatter(b)) +func (c *ConfigState) Print(a ...interface{}) (n int, err error) { + return fmt.Print(c.convertArgs(a)...) +} + +// Printf is a wrapper for fmt.Printf that treats each argument as if it were +// passed with a Formatter interface returned by c.NewFormatter. It returns +// the number of bytes written and any write error encountered. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Printf(format, c.NewFormatter(a), c.NewFormatter(b)) +func (c *ConfigState) Printf(format string, a ...interface{}) (n int, err error) { + return fmt.Printf(format, c.convertArgs(a)...) +} + +// Println is a wrapper for fmt.Println that treats each argument as if it were +// passed with a Formatter interface returned by c.NewFormatter. It returns +// the number of bytes written and any write error encountered. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Println(c.NewFormatter(a), c.NewFormatter(b)) +func (c *ConfigState) Println(a ...interface{}) (n int, err error) { + return fmt.Println(c.convertArgs(a)...) +} + +// Sprint is a wrapper for fmt.Sprint that treats each argument as if it were +// passed with a Formatter interface returned by c.NewFormatter. It returns +// the resulting string. See NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Sprint(c.NewFormatter(a), c.NewFormatter(b)) +func (c *ConfigState) Sprint(a ...interface{}) string { + return fmt.Sprint(c.convertArgs(a)...) +} + +// Sprintf is a wrapper for fmt.Sprintf that treats each argument as if it were +// passed with a Formatter interface returned by c.NewFormatter. It returns +// the resulting string. See NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Sprintf(format, c.NewFormatter(a), c.NewFormatter(b)) +func (c *ConfigState) Sprintf(format string, a ...interface{}) string { + return fmt.Sprintf(format, c.convertArgs(a)...) +} + +// Sprintln is a wrapper for fmt.Sprintln that treats each argument as if it +// were passed with a Formatter interface returned by c.NewFormatter. It +// returns the resulting string. See NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Sprintln(c.NewFormatter(a), c.NewFormatter(b)) +func (c *ConfigState) Sprintln(a ...interface{}) string { + return fmt.Sprintln(c.convertArgs(a)...) +} + +/* +NewFormatter returns a custom formatter that satisfies the fmt.Formatter +interface. As a result, it integrates cleanly with standard fmt package +printing functions. The formatter is useful for inline printing of smaller data +types similar to the standard %v format specifier. + +The custom formatter only responds to the %v (most compact), %+v (adds pointer +addresses), %#v (adds types), and %#+v (adds types and pointer addresses) verb +combinations. Any other verbs such as %x and %q will be sent to the the +standard fmt package for formatting. In addition, the custom formatter ignores +the width and precision arguments (however they will still work on the format +specifiers not handled by the custom formatter). + +Typically this function shouldn't be called directly. It is much easier to make +use of the custom formatter by calling one of the convenience functions such as +c.Printf, c.Println, or c.Printf. +*/ +func (c *ConfigState) NewFormatter(v interface{}) fmt.Formatter { + return newFormatter(c, v) +} + +// Fdump formats and displays the passed arguments to io.Writer w. It formats +// exactly the same as Dump. +func (c *ConfigState) Fdump(w io.Writer, a ...interface{}) { + fdump(c, w, a...) +} + +/* +Dump displays the passed parameters to standard out with newlines, customizable +indentation, and additional debug information such as complete types and all +pointer addresses used to indirect to the final value. It provides the +following features over the built-in printing facilities provided by the fmt +package: + + * Pointers are dereferenced and followed + * Circular data structures are detected and handled properly + * Custom Stringer/error interfaces are optionally invoked, including + on unexported types + * Custom types which only implement the Stringer/error interfaces via + a pointer receiver are optionally invoked when passing non-pointer + variables + * Byte arrays and slices are dumped like the hexdump -C command which + includes offsets, byte values in hex, and ASCII output + +The configuration options are controlled by modifying the public members +of c. See ConfigState for options documentation. + +See Fdump if you would prefer dumping to an arbitrary io.Writer or Sdump to +get the formatted result as a string. +*/ +func (c *ConfigState) Dump(a ...interface{}) { + fdump(c, os.Stdout, a...) +} + +// Sdump returns a string with the passed arguments formatted exactly the same +// as Dump. +func (c *ConfigState) Sdump(a ...interface{}) string { + var buf bytes.Buffer + fdump(c, &buf, a...) + return buf.String() +} + +// convertArgs accepts a slice of arguments and returns a slice of the same +// length with each argument converted to a spew Formatter interface using +// the ConfigState associated with s. +func (c *ConfigState) convertArgs(args []interface{}) (formatters []interface{}) { + formatters = make([]interface{}, len(args)) + for index, arg := range args { + formatters[index] = newFormatter(c, arg) + } + return formatters +} + +// NewDefaultConfig returns a ConfigState with the following default settings. +// +// Indent: " " +// MaxDepth: 0 +// DisableMethods: false +// DisablePointerMethods: false +// ContinueOnMethod: false +// SortKeys: false +func NewDefaultConfig() *ConfigState { + return &ConfigState{Indent: " "} +} diff --git a/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/doc.go b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/doc.go new file mode 100644 index 000000000..5be0c4060 --- /dev/null +++ b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/doc.go @@ -0,0 +1,202 @@ +/* + * Copyright (c) 2013 Dave Collins <dave@davec.name> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* +Package spew implements a deep pretty printer for Go data structures to aid in +debugging. + +A quick overview of the additional features spew provides over the built-in +printing facilities for Go data types are as follows: + + * Pointers are dereferenced and followed + * Circular data structures are detected and handled properly + * Custom Stringer/error interfaces are optionally invoked, including + on unexported types + * Custom types which only implement the Stringer/error interfaces via + a pointer receiver are optionally invoked when passing non-pointer + variables + * Byte arrays and slices are dumped like the hexdump -C command which + includes offsets, byte values in hex, and ASCII output (only when using + Dump style) + +There are two different approaches spew allows for dumping Go data structures: + + * Dump style which prints with newlines, customizable indentation, + and additional debug information such as types and all pointer addresses + used to indirect to the final value + * A custom Formatter interface that integrates cleanly with the standard fmt + package and replaces %v, %+v, %#v, and %#+v to provide inline printing + similar to the default %v while providing the additional functionality + outlined above and passing unsupported format verbs such as %x and %q + along to fmt + +Quick Start + +This section demonstrates how to quickly get started with spew. See the +sections below for further details on formatting and configuration options. + +To dump a variable with full newlines, indentation, type, and pointer +information use Dump, Fdump, or Sdump: + spew.Dump(myVar1, myVar2, ...) + spew.Fdump(someWriter, myVar1, myVar2, ...) + str := spew.Sdump(myVar1, myVar2, ...) + +Alternatively, if you would prefer to use format strings with a compacted inline +printing style, use the convenience wrappers Printf, Fprintf, etc with +%v (most compact), %+v (adds pointer addresses), %#v (adds types), or +%#+v (adds types and pointer addresses): + spew.Printf("myVar1: %v -- myVar2: %+v", myVar1, myVar2) + spew.Printf("myVar3: %#v -- myVar4: %#+v", myVar3, myVar4) + spew.Fprintf(someWriter, "myVar1: %v -- myVar2: %+v", myVar1, myVar2) + spew.Fprintf(someWriter, "myVar3: %#v -- myVar4: %#+v", myVar3, myVar4) + +Configuration Options + +Configuration of spew is handled by fields in the ConfigState type. For +convenience, all of the top-level functions use a global state available +via the spew.Config global. + +It is also possible to create a ConfigState instance that provides methods +equivalent to the top-level functions. This allows concurrent configuration +options. See the ConfigState documentation for more details. + +The following configuration options are available: + * Indent + String to use for each indentation level for Dump functions. + It is a single space by default. A popular alternative is "\t". + + * MaxDepth + Maximum number of levels to descend into nested data structures. + There is no limit by default. + + * DisableMethods + Disables invocation of error and Stringer interface methods. + Method invocation is enabled by default. + + * DisablePointerMethods + Disables invocation of error and Stringer interface methods on types + which only accept pointer receivers from non-pointer variables. + Pointer method invocation is enabled by default. + + * ContinueOnMethod + Enables recursion into types after invoking error and Stringer interface + methods. Recursion after method invocation is disabled by default. + + * SortKeys + Specifies map keys should be sorted before being printed. Use + this to have a more deterministic, diffable output. Note that + only native types (bool, int, uint, floats, uintptr and string) + and types which implement error or Stringer interfaces are + supported with other types sorted according to the + reflect.Value.String() output which guarantees display + stability. Natural map order is used by default. + + * SpewKeys + Specifies that, as a last resort attempt, map keys should be + spewed to strings and sorted by those strings. This is only + considered if SortKeys is true. + +Dump Usage + +Simply call spew.Dump with a list of variables you want to dump: + + spew.Dump(myVar1, myVar2, ...) + +You may also call spew.Fdump if you would prefer to output to an arbitrary +io.Writer. For example, to dump to standard error: + + spew.Fdump(os.Stderr, myVar1, myVar2, ...) + +A third option is to call spew.Sdump to get the formatted output as a string: + + str := spew.Sdump(myVar1, myVar2, ...) + +Sample Dump Output + +See the Dump example for details on the setup of the types and variables being +shown here. + + (main.Foo) { + unexportedField: (*main.Bar)(0xf84002e210)({ + flag: (main.Flag) flagTwo, + data: (uintptr) <nil> + }), + ExportedField: (map[interface {}]interface {}) (len=1) { + (string) (len=3) "one": (bool) true + } + } + +Byte (and uint8) arrays and slices are displayed uniquely like the hexdump -C +command as shown. + ([]uint8) (len=32 cap=32) { + 00000000 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 |............... | + 00000010 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 |!"#$%&'()*+,-./0| + 00000020 31 32 |12| + } + +Custom Formatter + +Spew provides a custom formatter that implements the fmt.Formatter interface +so that it integrates cleanly with standard fmt package printing functions. The +formatter is useful for inline printing of smaller data types similar to the +standard %v format specifier. + +The custom formatter only responds to the %v (most compact), %+v (adds pointer +addresses), %#v (adds types), or %#+v (adds types and pointer addresses) verb +combinations. Any other verbs such as %x and %q will be sent to the the +standard fmt package for formatting. In addition, the custom formatter ignores +the width and precision arguments (however they will still work on the format +specifiers not handled by the custom formatter). + +Custom Formatter Usage + +The simplest way to make use of the spew custom formatter is to call one of the +convenience functions such as spew.Printf, spew.Println, or spew.Printf. The +functions have syntax you are most likely already familiar with: + + spew.Printf("myVar1: %v -- myVar2: %+v", myVar1, myVar2) + spew.Printf("myVar3: %#v -- myVar4: %#+v", myVar3, myVar4) + spew.Println(myVar, myVar2) + spew.Fprintf(os.Stderr, "myVar1: %v -- myVar2: %+v", myVar1, myVar2) + spew.Fprintf(os.Stderr, "myVar3: %#v -- myVar4: %#+v", myVar3, myVar4) + +See the Index for the full list convenience functions. + +Sample Formatter Output + +Double pointer to a uint8: + %v: <**>5 + %+v: <**>(0xf8400420d0->0xf8400420c8)5 + %#v: (**uint8)5 + %#+v: (**uint8)(0xf8400420d0->0xf8400420c8)5 + +Pointer to circular struct with a uint8 field and a pointer to itself: + %v: <*>{1 <*><shown>} + %+v: <*>(0xf84003e260){ui8:1 c:<*>(0xf84003e260)<shown>} + %#v: (*main.circular){ui8:(uint8)1 c:(*main.circular)<shown>} + %#+v: (*main.circular)(0xf84003e260){ui8:(uint8)1 c:(*main.circular)(0xf84003e260)<shown>} + +See the Printf example for details on the setup of variables being shown +here. + +Errors + +Since it is possible for custom Stringer/error interfaces to panic, spew +detects them and handles them internally by printing the panic information +inline with the output. Since spew is intended to provide deep pretty printing +capabilities on structures, it intentionally does not return any errors. +*/ +package spew diff --git a/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/dump.go b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/dump.go new file mode 100644 index 000000000..a0ff95e27 --- /dev/null +++ b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/dump.go @@ -0,0 +1,509 @@ +/* + * Copyright (c) 2013 Dave Collins <dave@davec.name> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +package spew + +import ( + "bytes" + "encoding/hex" + "fmt" + "io" + "os" + "reflect" + "regexp" + "strconv" + "strings" +) + +var ( + // uint8Type is a reflect.Type representing a uint8. It is used to + // convert cgo types to uint8 slices for hexdumping. + uint8Type = reflect.TypeOf(uint8(0)) + + // cCharRE is a regular expression that matches a cgo char. + // It is used to detect character arrays to hexdump them. + cCharRE = regexp.MustCompile("^.*\\._Ctype_char$") + + // cUnsignedCharRE is a regular expression that matches a cgo unsigned + // char. It is used to detect unsigned character arrays to hexdump + // them. + cUnsignedCharRE = regexp.MustCompile("^.*\\._Ctype_unsignedchar$") + + // cUint8tCharRE is a regular expression that matches a cgo uint8_t. + // It is used to detect uint8_t arrays to hexdump them. + cUint8tCharRE = regexp.MustCompile("^.*\\._Ctype_uint8_t$") +) + +// dumpState contains information about the state of a dump operation. +type dumpState struct { + w io.Writer + depth int + pointers map[uintptr]int + ignoreNextType bool + ignoreNextIndent bool + cs *ConfigState +} + +// indent performs indentation according to the depth level and cs.Indent +// option. +func (d *dumpState) indent() { + if d.ignoreNextIndent { + d.ignoreNextIndent = false + return + } + d.w.Write(bytes.Repeat([]byte(d.cs.Indent), d.depth)) +} + +// unpackValue returns values inside of non-nil interfaces when possible. +// This is useful for data types like structs, arrays, slices, and maps which +// can contain varying types packed inside an interface. +func (d *dumpState) unpackValue(v reflect.Value) reflect.Value { + if v.Kind() == reflect.Interface && !v.IsNil() { + v = v.Elem() + } + return v +} + +// dumpPtr handles formatting of pointers by indirecting them as necessary. +func (d *dumpState) dumpPtr(v reflect.Value) { + // Remove pointers at or below the current depth from map used to detect + // circular refs. + for k, depth := range d.pointers { + if depth >= d.depth { + delete(d.pointers, k) + } + } + + // Keep list of all dereferenced pointers to show later. + pointerChain := make([]uintptr, 0) + + // Figure out how many levels of indirection there are by dereferencing + // pointers and unpacking interfaces down the chain while detecting circular + // references. + nilFound := false + cycleFound := false + indirects := 0 + ve := v + for ve.Kind() == reflect.Ptr { + if ve.IsNil() { + nilFound = true + break + } + indirects++ + addr := ve.Pointer() + pointerChain = append(pointerChain, addr) + if pd, ok := d.pointers[addr]; ok && pd < d.depth { + cycleFound = true + indirects-- + break + } + d.pointers[addr] = d.depth + + ve = ve.Elem() + if ve.Kind() == reflect.Interface { + if ve.IsNil() { + nilFound = true + break + } + ve = ve.Elem() + } + } + + // Display type information. + d.w.Write(openParenBytes) + d.w.Write(bytes.Repeat(asteriskBytes, indirects)) + d.w.Write([]byte(ve.Type().String())) + d.w.Write(closeParenBytes) + + // Display pointer information. + if len(pointerChain) > 0 { + d.w.Write(openParenBytes) + for i, addr := range pointerChain { + if i > 0 { + d.w.Write(pointerChainBytes) + } + printHexPtr(d.w, addr) + } + d.w.Write(closeParenBytes) + } + + // Display dereferenced value. + d.w.Write(openParenBytes) + switch { + case nilFound == true: + d.w.Write(nilAngleBytes) + + case cycleFound == true: + d.w.Write(circularBytes) + + default: + d.ignoreNextType = true + d.dump(ve) + } + d.w.Write(closeParenBytes) +} + +// dumpSlice handles formatting of arrays and slices. Byte (uint8 under +// reflection) arrays and slices are dumped in hexdump -C fashion. +func (d *dumpState) dumpSlice(v reflect.Value) { + // Determine whether this type should be hex dumped or not. Also, + // for types which should be hexdumped, try to use the underlying data + // first, then fall back to trying to convert them to a uint8 slice. + var buf []uint8 + doConvert := false + doHexDump := false + numEntries := v.Len() + if numEntries > 0 { + vt := v.Index(0).Type() + vts := vt.String() + switch { + // C types that need to be converted. + case cCharRE.MatchString(vts): + fallthrough + case cUnsignedCharRE.MatchString(vts): + fallthrough + case cUint8tCharRE.MatchString(vts): + doConvert = true + + // Try to use existing uint8 slices and fall back to converting + // and copying if that fails. + case vt.Kind() == reflect.Uint8: + // We need an addressable interface to convert the type + // to a byte slice. However, the reflect package won't + // give us an interface on certain things like + // unexported struct fields in order to enforce + // visibility rules. We use unsafe, when available, to + // bypass these restrictions since this package does not + // mutate the values. + vs := v + if !vs.CanInterface() || !vs.CanAddr() { + vs = unsafeReflectValue(vs) + } + if !UnsafeDisabled { + vs = vs.Slice(0, numEntries) + + // Use the existing uint8 slice if it can be + // type asserted. + iface := vs.Interface() + if slice, ok := iface.([]uint8); ok { + buf = slice + doHexDump = true + break + } + } + + // The underlying data needs to be converted if it can't + // be type asserted to a uint8 slice. + doConvert = true + } + + // Copy and convert the underlying type if needed. + if doConvert && vt.ConvertibleTo(uint8Type) { + // Convert and copy each element into a uint8 byte + // slice. + buf = make([]uint8, numEntries) + for i := 0; i < numEntries; i++ { + vv := v.Index(i) + buf[i] = uint8(vv.Convert(uint8Type).Uint()) + } + doHexDump = true + } + } + + // Hexdump the entire slice as needed. + if doHexDump { + indent := strings.Repeat(d.cs.Indent, d.depth) + str := indent + hex.Dump(buf) + str = strings.Replace(str, "\n", "\n"+indent, -1) + str = strings.TrimRight(str, d.cs.Indent) + d.w.Write([]byte(str)) + return + } + + // Recursively call dump for each item. + for i := 0; i < numEntries; i++ { + d.dump(d.unpackValue(v.Index(i))) + if i < (numEntries - 1) { + d.w.Write(commaNewlineBytes) + } else { + d.w.Write(newlineBytes) + } + } +} + +// dump is the main workhorse for dumping a value. It uses the passed reflect +// value to figure out what kind of object we are dealing with and formats it +// appropriately. It is a recursive function, however circular data structures +// are detected and handled properly. +func (d *dumpState) dump(v reflect.Value) { + // Handle invalid reflect values immediately. + kind := v.Kind() + if kind == reflect.Invalid { + d.w.Write(invalidAngleBytes) + return + } + + // Handle pointers specially. + if kind == reflect.Ptr { + d.indent() + d.dumpPtr(v) + return + } + + // Print type information unless already handled elsewhere. + if !d.ignoreNextType { + d.indent() + d.w.Write(openParenBytes) + d.w.Write([]byte(v.Type().String())) + d.w.Write(closeParenBytes) + d.w.Write(spaceBytes) + } + d.ignoreNextType = false + + // Display length and capacity if the built-in len and cap functions + // work with the value's kind and the len/cap itself is non-zero. + valueLen, valueCap := 0, 0 + switch v.Kind() { + case reflect.Array, reflect.Slice, reflect.Chan: + valueLen, valueCap = v.Len(), v.Cap() + case reflect.Map, reflect.String: + valueLen = v.Len() + } + if valueLen != 0 || valueCap != 0 { + d.w.Write(openParenBytes) + if valueLen != 0 { + d.w.Write(lenEqualsBytes) + printInt(d.w, int64(valueLen), 10) + } + if valueCap != 0 { + if valueLen != 0 { + d.w.Write(spaceBytes) + } + d.w.Write(capEqualsBytes) + printInt(d.w, int64(valueCap), 10) + } + d.w.Write(closeParenBytes) + d.w.Write(spaceBytes) + } + + // Call Stringer/error interfaces if they exist and the handle methods flag + // is enabled + if !d.cs.DisableMethods { + if (kind != reflect.Invalid) && (kind != reflect.Interface) { + if handled := handleMethods(d.cs, d.w, v); handled { + return + } + } + } + + switch kind { + case reflect.Invalid: + // Do nothing. We should never get here since invalid has already + // been handled above. + + case reflect.Bool: + printBool(d.w, v.Bool()) + + case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int: + printInt(d.w, v.Int(), 10) + + case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint: + printUint(d.w, v.Uint(), 10) + + case reflect.Float32: + printFloat(d.w, v.Float(), 32) + + case reflect.Float64: + printFloat(d.w, v.Float(), 64) + + case reflect.Complex64: + printComplex(d.w, v.Complex(), 32) + + case reflect.Complex128: + printComplex(d.w, v.Complex(), 64) + + case reflect.Slice: + if v.IsNil() { + d.w.Write(nilAngleBytes) + break + } + fallthrough + + case reflect.Array: + d.w.Write(openBraceNewlineBytes) + d.depth++ + if (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) { + d.indent() + d.w.Write(maxNewlineBytes) + } else { + d.dumpSlice(v) + } + d.depth-- + d.indent() + d.w.Write(closeBraceBytes) + + case reflect.String: + d.w.Write([]byte(strconv.Quote(v.String()))) + + case reflect.Interface: + // The only time we should get here is for nil interfaces due to + // unpackValue calls. + if v.IsNil() { + d.w.Write(nilAngleBytes) + } + + case reflect.Ptr: + // Do nothing. We should never get here since pointers have already + // been handled above. + + case reflect.Map: + // nil maps should be indicated as different than empty maps + if v.IsNil() { + d.w.Write(nilAngleBytes) + break + } + + d.w.Write(openBraceNewlineBytes) + d.depth++ + if (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) { + d.indent() + d.w.Write(maxNewlineBytes) + } else { + numEntries := v.Len() + keys := v.MapKeys() + if d.cs.SortKeys { + sortValues(keys, d.cs) + } + for i, key := range keys { + d.dump(d.unpackValue(key)) + d.w.Write(colonSpaceBytes) + d.ignoreNextIndent = true + d.dump(d.unpackValue(v.MapIndex(key))) + if i < (numEntries - 1) { + d.w.Write(commaNewlineBytes) + } else { + d.w.Write(newlineBytes) + } + } + } + d.depth-- + d.indent() + d.w.Write(closeBraceBytes) + + case reflect.Struct: + d.w.Write(openBraceNewlineBytes) + d.depth++ + if (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) { + d.indent() + d.w.Write(maxNewlineBytes) + } else { + vt := v.Type() + numFields := v.NumField() + for i := 0; i < numFields; i++ { + d.indent() + vtf := vt.Field(i) + d.w.Write([]byte(vtf.Name)) + d.w.Write(colonSpaceBytes) + d.ignoreNextIndent = true + d.dump(d.unpackValue(v.Field(i))) + if i < (numFields - 1) { + d.w.Write(commaNewlineBytes) + } else { + d.w.Write(newlineBytes) + } + } + } + d.depth-- + d.indent() + d.w.Write(closeBraceBytes) + + case reflect.Uintptr: + printHexPtr(d.w, uintptr(v.Uint())) + + case reflect.UnsafePointer, reflect.Chan, reflect.Func: + printHexPtr(d.w, v.Pointer()) + + // There were not any other types at the time this code was written, but + // fall back to letting the default fmt package handle it in case any new + // types are added. + default: + if v.CanInterface() { + fmt.Fprintf(d.w, "%v", v.Interface()) + } else { + fmt.Fprintf(d.w, "%v", v.String()) + } + } +} + +// fdump is a helper function to consolidate the logic from the various public +// methods which take varying writers and config states. +func fdump(cs *ConfigState, w io.Writer, a ...interface{}) { + for _, arg := range a { + if arg == nil { + w.Write(interfaceBytes) + w.Write(spaceBytes) + w.Write(nilAngleBytes) + w.Write(newlineBytes) + continue + } + + d := dumpState{w: w, cs: cs} + d.pointers = make(map[uintptr]int) + d.dump(reflect.ValueOf(arg)) + d.w.Write(newlineBytes) + } +} + +// Fdump formats and displays the passed arguments to io.Writer w. It formats +// exactly the same as Dump. +func Fdump(w io.Writer, a ...interface{}) { + fdump(&Config, w, a...) +} + +// Sdump returns a string with the passed arguments formatted exactly the same +// as Dump. +func Sdump(a ...interface{}) string { + var buf bytes.Buffer + fdump(&Config, &buf, a...) + return buf.String() +} + +/* +Dump displays the passed parameters to standard out with newlines, customizable +indentation, and additional debug information such as complete types and all +pointer addresses used to indirect to the final value. It provides the +following features over the built-in printing facilities provided by the fmt +package: + + * Pointers are dereferenced and followed + * Circular data structures are detected and handled properly + * Custom Stringer/error interfaces are optionally invoked, including + on unexported types + * Custom types which only implement the Stringer/error interfaces via + a pointer receiver are optionally invoked when passing non-pointer + variables + * Byte arrays and slices are dumped like the hexdump -C command which + includes offsets, byte values in hex, and ASCII output + +The configuration options are controlled by an exported package global, +spew.Config. See ConfigState for options documentation. + +See Fdump if you would prefer dumping to an arbitrary io.Writer or Sdump to +get the formatted result as a string. +*/ +func Dump(a ...interface{}) { + fdump(&Config, os.Stdout, a...) +} diff --git a/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/dump_test.go b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/dump_test.go new file mode 100644 index 000000000..2b320401d --- /dev/null +++ b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/dump_test.go @@ -0,0 +1,1042 @@ +/* + * Copyright (c) 2013 Dave Collins <dave@davec.name> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* +Test Summary: +NOTE: For each test, a nil pointer, a single pointer and double pointer to the +base test element are also tested to ensure proper indirection across all types. + +- Max int8, int16, int32, int64, int +- Max uint8, uint16, uint32, uint64, uint +- Boolean true and false +- Standard complex64 and complex128 +- Array containing standard ints +- Array containing type with custom formatter on pointer receiver only +- Array containing interfaces +- Array containing bytes +- Slice containing standard float32 values +- Slice containing type with custom formatter on pointer receiver only +- Slice containing interfaces +- Slice containing bytes +- Nil slice +- Standard string +- Nil interface +- Sub-interface +- Map with string keys and int vals +- Map with custom formatter type on pointer receiver only keys and vals +- Map with interface keys and values +- Map with nil interface value +- Struct with primitives +- Struct that contains another struct +- Struct that contains custom type with Stringer pointer interface via both + exported and unexported fields +- Struct that contains embedded struct and field to same struct +- Uintptr to 0 (null pointer) +- Uintptr address of real variable +- Unsafe.Pointer to 0 (null pointer) +- Unsafe.Pointer to address of real variable +- Nil channel +- Standard int channel +- Function with no params and no returns +- Function with param and no returns +- Function with multiple params and multiple returns +- Struct that is circular through self referencing +- Structs that are circular through cross referencing +- Structs that are indirectly circular +- Type that panics in its Stringer interface +*/ + +package spew_test + +import ( + "bytes" + "fmt" + "testing" + "unsafe" + + "github.com/davecgh/go-spew/spew" +) + +// dumpTest is used to describe a test to be perfomed against the Dump method. +type dumpTest struct { + in interface{} + wants []string +} + +// dumpTests houses all of the tests to be performed against the Dump method. +var dumpTests = make([]dumpTest, 0) + +// addDumpTest is a helper method to append the passed input and desired result +// to dumpTests +func addDumpTest(in interface{}, wants ...string) { + test := dumpTest{in, wants} + dumpTests = append(dumpTests, test) +} + +func addIntDumpTests() { + // Max int8. + v := int8(127) + nv := (*int8)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "int8" + vs := "127" + addDumpTest(v, "("+vt+") "+vs+"\n") + addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") + addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") + addDumpTest(nv, "(*"+vt+")(<nil>)\n") + + // Max int16. + v2 := int16(32767) + nv2 := (*int16)(nil) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "int16" + v2s := "32767" + addDumpTest(v2, "("+v2t+") "+v2s+"\n") + addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s+")\n") + addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") + addDumpTest(nv2, "(*"+v2t+")(<nil>)\n") + + // Max int32. + v3 := int32(2147483647) + nv3 := (*int32)(nil) + pv3 := &v3 + v3Addr := fmt.Sprintf("%p", pv3) + pv3Addr := fmt.Sprintf("%p", &pv3) + v3t := "int32" + v3s := "2147483647" + addDumpTest(v3, "("+v3t+") "+v3s+"\n") + addDumpTest(pv3, "(*"+v3t+")("+v3Addr+")("+v3s+")\n") + addDumpTest(&pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")("+v3s+")\n") + addDumpTest(nv3, "(*"+v3t+")(<nil>)\n") + + // Max int64. + v4 := int64(9223372036854775807) + nv4 := (*int64)(nil) + pv4 := &v4 + v4Addr := fmt.Sprintf("%p", pv4) + pv4Addr := fmt.Sprintf("%p", &pv4) + v4t := "int64" + v4s := "9223372036854775807" + addDumpTest(v4, "("+v4t+") "+v4s+"\n") + addDumpTest(pv4, "(*"+v4t+")("+v4Addr+")("+v4s+")\n") + addDumpTest(&pv4, "(**"+v4t+")("+pv4Addr+"->"+v4Addr+")("+v4s+")\n") + addDumpTest(nv4, "(*"+v4t+")(<nil>)\n") + + // Max int. + v5 := int(2147483647) + nv5 := (*int)(nil) + pv5 := &v5 + v5Addr := fmt.Sprintf("%p", pv5) + pv5Addr := fmt.Sprintf("%p", &pv5) + v5t := "int" + v5s := "2147483647" + addDumpTest(v5, "("+v5t+") "+v5s+"\n") + addDumpTest(pv5, "(*"+v5t+")("+v5Addr+")("+v5s+")\n") + addDumpTest(&pv5, "(**"+v5t+")("+pv5Addr+"->"+v5Addr+")("+v5s+")\n") + addDumpTest(nv5, "(*"+v5t+")(<nil>)\n") +} + +func addUintDumpTests() { + // Max uint8. + v := uint8(255) + nv := (*uint8)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "uint8" + vs := "255" + addDumpTest(v, "("+vt+") "+vs+"\n") + addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") + addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") + addDumpTest(nv, "(*"+vt+")(<nil>)\n") + + // Max uint16. + v2 := uint16(65535) + nv2 := (*uint16)(nil) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "uint16" + v2s := "65535" + addDumpTest(v2, "("+v2t+") "+v2s+"\n") + addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s+")\n") + addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") + addDumpTest(nv2, "(*"+v2t+")(<nil>)\n") + + // Max uint32. + v3 := uint32(4294967295) + nv3 := (*uint32)(nil) + pv3 := &v3 + v3Addr := fmt.Sprintf("%p", pv3) + pv3Addr := fmt.Sprintf("%p", &pv3) + v3t := "uint32" + v3s := "4294967295" + addDumpTest(v3, "("+v3t+") "+v3s+"\n") + addDumpTest(pv3, "(*"+v3t+")("+v3Addr+")("+v3s+")\n") + addDumpTest(&pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")("+v3s+")\n") + addDumpTest(nv3, "(*"+v3t+")(<nil>)\n") + + // Max uint64. + v4 := uint64(18446744073709551615) + nv4 := (*uint64)(nil) + pv4 := &v4 + v4Addr := fmt.Sprintf("%p", pv4) + pv4Addr := fmt.Sprintf("%p", &pv4) + v4t := "uint64" + v4s := "18446744073709551615" + addDumpTest(v4, "("+v4t+") "+v4s+"\n") + addDumpTest(pv4, "(*"+v4t+")("+v4Addr+")("+v4s+")\n") + addDumpTest(&pv4, "(**"+v4t+")("+pv4Addr+"->"+v4Addr+")("+v4s+")\n") + addDumpTest(nv4, "(*"+v4t+")(<nil>)\n") + + // Max uint. + v5 := uint(4294967295) + nv5 := (*uint)(nil) + pv5 := &v5 + v5Addr := fmt.Sprintf("%p", pv5) + pv5Addr := fmt.Sprintf("%p", &pv5) + v5t := "uint" + v5s := "4294967295" + addDumpTest(v5, "("+v5t+") "+v5s+"\n") + addDumpTest(pv5, "(*"+v5t+")("+v5Addr+")("+v5s+")\n") + addDumpTest(&pv5, "(**"+v5t+")("+pv5Addr+"->"+v5Addr+")("+v5s+")\n") + addDumpTest(nv5, "(*"+v5t+")(<nil>)\n") +} + +func addBoolDumpTests() { + // Boolean true. + v := bool(true) + nv := (*bool)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "bool" + vs := "true" + addDumpTest(v, "("+vt+") "+vs+"\n") + addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") + addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") + addDumpTest(nv, "(*"+vt+")(<nil>)\n") + + // Boolean false. + v2 := bool(false) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "bool" + v2s := "false" + addDumpTest(v2, "("+v2t+") "+v2s+"\n") + addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s+")\n") + addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") +} + +func addFloatDumpTests() { + // Standard float32. + v := float32(3.1415) + nv := (*float32)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "float32" + vs := "3.1415" + addDumpTest(v, "("+vt+") "+vs+"\n") + addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") + addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") + addDumpTest(nv, "(*"+vt+")(<nil>)\n") + + // Standard float64. + v2 := float64(3.1415926) + nv2 := (*float64)(nil) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "float64" + v2s := "3.1415926" + addDumpTest(v2, "("+v2t+") "+v2s+"\n") + addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s+")\n") + addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") + addDumpTest(nv2, "(*"+v2t+")(<nil>)\n") +} + +func addComplexDumpTests() { + // Standard complex64. + v := complex(float32(6), -2) + nv := (*complex64)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "complex64" + vs := "(6-2i)" + addDumpTest(v, "("+vt+") "+vs+"\n") + addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") + addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") + addDumpTest(nv, "(*"+vt+")(<nil>)\n") + + // Standard complex128. + v2 := complex(float64(-6), 2) + nv2 := (*complex128)(nil) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "complex128" + v2s := "(-6+2i)" + addDumpTest(v2, "("+v2t+") "+v2s+"\n") + addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s+")\n") + addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") + addDumpTest(nv2, "(*"+v2t+")(<nil>)\n") +} + +func addArrayDumpTests() { + // Array containing standard ints. + v := [3]int{1, 2, 3} + vLen := fmt.Sprintf("%d", len(v)) + vCap := fmt.Sprintf("%d", cap(v)) + nv := (*[3]int)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "int" + vs := "(len=" + vLen + " cap=" + vCap + ") {\n (" + vt + ") 1,\n (" + + vt + ") 2,\n (" + vt + ") 3\n}" + addDumpTest(v, "([3]"+vt+") "+vs+"\n") + addDumpTest(pv, "(*[3]"+vt+")("+vAddr+")("+vs+")\n") + addDumpTest(&pv, "(**[3]"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") + addDumpTest(nv, "(*[3]"+vt+")(<nil>)\n") + + // Array containing type with custom formatter on pointer receiver only. + v2i0 := pstringer("1") + v2i1 := pstringer("2") + v2i2 := pstringer("3") + v2 := [3]pstringer{v2i0, v2i1, v2i2} + v2i0Len := fmt.Sprintf("%d", len(v2i0)) + v2i1Len := fmt.Sprintf("%d", len(v2i1)) + v2i2Len := fmt.Sprintf("%d", len(v2i2)) + v2Len := fmt.Sprintf("%d", len(v2)) + v2Cap := fmt.Sprintf("%d", cap(v2)) + nv2 := (*[3]pstringer)(nil) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "spew_test.pstringer" + v2sp := "(len=" + v2Len + " cap=" + v2Cap + ") {\n (" + v2t + + ") (len=" + v2i0Len + ") stringer 1,\n (" + v2t + + ") (len=" + v2i1Len + ") stringer 2,\n (" + v2t + + ") (len=" + v2i2Len + ") " + "stringer 3\n}" + v2s := v2sp + if spew.UnsafeDisabled { + v2s = "(len=" + v2Len + " cap=" + v2Cap + ") {\n (" + v2t + + ") (len=" + v2i0Len + ") \"1\",\n (" + v2t + ") (len=" + + v2i1Len + ") \"2\",\n (" + v2t + ") (len=" + v2i2Len + + ") " + "\"3\"\n}" + } + addDumpTest(v2, "([3]"+v2t+") "+v2s+"\n") + addDumpTest(pv2, "(*[3]"+v2t+")("+v2Addr+")("+v2sp+")\n") + addDumpTest(&pv2, "(**[3]"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2sp+")\n") + addDumpTest(nv2, "(*[3]"+v2t+")(<nil>)\n") + + // Array containing interfaces. + v3i0 := "one" + v3 := [3]interface{}{v3i0, int(2), uint(3)} + v3i0Len := fmt.Sprintf("%d", len(v3i0)) + v3Len := fmt.Sprintf("%d", len(v3)) + v3Cap := fmt.Sprintf("%d", cap(v3)) + nv3 := (*[3]interface{})(nil) + pv3 := &v3 + v3Addr := fmt.Sprintf("%p", pv3) + pv3Addr := fmt.Sprintf("%p", &pv3) + v3t := "[3]interface {}" + v3t2 := "string" + v3t3 := "int" + v3t4 := "uint" + v3s := "(len=" + v3Len + " cap=" + v3Cap + ") {\n (" + v3t2 + ") " + + "(len=" + v3i0Len + ") \"one\",\n (" + v3t3 + ") 2,\n (" + + v3t4 + ") 3\n}" + addDumpTest(v3, "("+v3t+") "+v3s+"\n") + addDumpTest(pv3, "(*"+v3t+")("+v3Addr+")("+v3s+")\n") + addDumpTest(&pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")("+v3s+")\n") + addDumpTest(nv3, "(*"+v3t+")(<nil>)\n") + + // Array containing bytes. + v4 := [34]byte{ + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, + 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, + 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, + 0x31, 0x32, + } + v4Len := fmt.Sprintf("%d", len(v4)) + v4Cap := fmt.Sprintf("%d", cap(v4)) + nv4 := (*[34]byte)(nil) + pv4 := &v4 + v4Addr := fmt.Sprintf("%p", pv4) + pv4Addr := fmt.Sprintf("%p", &pv4) + v4t := "[34]uint8" + v4s := "(len=" + v4Len + " cap=" + v4Cap + ") " + + "{\n 00000000 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20" + + " |............... |\n" + + " 00000010 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30" + + " |!\"#$%&'()*+,-./0|\n" + + " 00000020 31 32 " + + " |12|\n}" + addDumpTest(v4, "("+v4t+") "+v4s+"\n") + addDumpTest(pv4, "(*"+v4t+")("+v4Addr+")("+v4s+")\n") + addDumpTest(&pv4, "(**"+v4t+")("+pv4Addr+"->"+v4Addr+")("+v4s+")\n") + addDumpTest(nv4, "(*"+v4t+")(<nil>)\n") +} + +func addSliceDumpTests() { + // Slice containing standard float32 values. + v := []float32{3.14, 6.28, 12.56} + vLen := fmt.Sprintf("%d", len(v)) + vCap := fmt.Sprintf("%d", cap(v)) + nv := (*[]float32)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "float32" + vs := "(len=" + vLen + " cap=" + vCap + ") {\n (" + vt + ") 3.14,\n (" + + vt + ") 6.28,\n (" + vt + ") 12.56\n}" + addDumpTest(v, "([]"+vt+") "+vs+"\n") + addDumpTest(pv, "(*[]"+vt+")("+vAddr+")("+vs+")\n") + addDumpTest(&pv, "(**[]"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") + addDumpTest(nv, "(*[]"+vt+")(<nil>)\n") + + // Slice containing type with custom formatter on pointer receiver only. + v2i0 := pstringer("1") + v2i1 := pstringer("2") + v2i2 := pstringer("3") + v2 := []pstringer{v2i0, v2i1, v2i2} + v2i0Len := fmt.Sprintf("%d", len(v2i0)) + v2i1Len := fmt.Sprintf("%d", len(v2i1)) + v2i2Len := fmt.Sprintf("%d", len(v2i2)) + v2Len := fmt.Sprintf("%d", len(v2)) + v2Cap := fmt.Sprintf("%d", cap(v2)) + nv2 := (*[]pstringer)(nil) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "spew_test.pstringer" + v2s := "(len=" + v2Len + " cap=" + v2Cap + ") {\n (" + v2t + ") (len=" + + v2i0Len + ") stringer 1,\n (" + v2t + ") (len=" + v2i1Len + + ") stringer 2,\n (" + v2t + ") (len=" + v2i2Len + ") " + + "stringer 3\n}" + addDumpTest(v2, "([]"+v2t+") "+v2s+"\n") + addDumpTest(pv2, "(*[]"+v2t+")("+v2Addr+")("+v2s+")\n") + addDumpTest(&pv2, "(**[]"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") + addDumpTest(nv2, "(*[]"+v2t+")(<nil>)\n") + + // Slice containing interfaces. + v3i0 := "one" + v3 := []interface{}{v3i0, int(2), uint(3), nil} + v3i0Len := fmt.Sprintf("%d", len(v3i0)) + v3Len := fmt.Sprintf("%d", len(v3)) + v3Cap := fmt.Sprintf("%d", cap(v3)) + nv3 := (*[]interface{})(nil) + pv3 := &v3 + v3Addr := fmt.Sprintf("%p", pv3) + pv3Addr := fmt.Sprintf("%p", &pv3) + v3t := "[]interface {}" + v3t2 := "string" + v3t3 := "int" + v3t4 := "uint" + v3t5 := "interface {}" + v3s := "(len=" + v3Len + " cap=" + v3Cap + ") {\n (" + v3t2 + ") " + + "(len=" + v3i0Len + ") \"one\",\n (" + v3t3 + ") 2,\n (" + + v3t4 + ") 3,\n (" + v3t5 + ") <nil>\n}" + addDumpTest(v3, "("+v3t+") "+v3s+"\n") + addDumpTest(pv3, "(*"+v3t+")("+v3Addr+")("+v3s+")\n") + addDumpTest(&pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")("+v3s+")\n") + addDumpTest(nv3, "(*"+v3t+")(<nil>)\n") + + // Slice containing bytes. + v4 := []byte{ + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, + 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, + 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, + 0x31, 0x32, + } + v4Len := fmt.Sprintf("%d", len(v4)) + v4Cap := fmt.Sprintf("%d", cap(v4)) + nv4 := (*[]byte)(nil) + pv4 := &v4 + v4Addr := fmt.Sprintf("%p", pv4) + pv4Addr := fmt.Sprintf("%p", &pv4) + v4t := "[]uint8" + v4s := "(len=" + v4Len + " cap=" + v4Cap + ") " + + "{\n 00000000 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20" + + " |............... |\n" + + " 00000010 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30" + + " |!\"#$%&'()*+,-./0|\n" + + " 00000020 31 32 " + + " |12|\n}" + addDumpTest(v4, "("+v4t+") "+v4s+"\n") + addDumpTest(pv4, "(*"+v4t+")("+v4Addr+")("+v4s+")\n") + addDumpTest(&pv4, "(**"+v4t+")("+pv4Addr+"->"+v4Addr+")("+v4s+")\n") + addDumpTest(nv4, "(*"+v4t+")(<nil>)\n") + + // Nil slice. + v5 := []int(nil) + nv5 := (*[]int)(nil) + pv5 := &v5 + v5Addr := fmt.Sprintf("%p", pv5) + pv5Addr := fmt.Sprintf("%p", &pv5) + v5t := "[]int" + v5s := "<nil>" + addDumpTest(v5, "("+v5t+") "+v5s+"\n") + addDumpTest(pv5, "(*"+v5t+")("+v5Addr+")("+v5s+")\n") + addDumpTest(&pv5, "(**"+v5t+")("+pv5Addr+"->"+v5Addr+")("+v5s+")\n") + addDumpTest(nv5, "(*"+v5t+")(<nil>)\n") +} + +func addStringDumpTests() { + // Standard string. + v := "test" + vLen := fmt.Sprintf("%d", len(v)) + nv := (*string)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "string" + vs := "(len=" + vLen + ") \"test\"" + addDumpTest(v, "("+vt+") "+vs+"\n") + addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") + addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") + addDumpTest(nv, "(*"+vt+")(<nil>)\n") +} + +func addInterfaceDumpTests() { + // Nil interface. + var v interface{} + nv := (*interface{})(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "interface {}" + vs := "<nil>" + addDumpTest(v, "("+vt+") "+vs+"\n") + addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") + addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") + addDumpTest(nv, "(*"+vt+")(<nil>)\n") + + // Sub-interface. + v2 := interface{}(uint16(65535)) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "uint16" + v2s := "65535" + addDumpTest(v2, "("+v2t+") "+v2s+"\n") + addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s+")\n") + addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") +} + +func addMapDumpTests() { + // Map with string keys and int vals. + k := "one" + kk := "two" + m := map[string]int{k: 1, kk: 2} + klen := fmt.Sprintf("%d", len(k)) // not kLen to shut golint up + kkLen := fmt.Sprintf("%d", len(kk)) + mLen := fmt.Sprintf("%d", len(m)) + nilMap := map[string]int(nil) + nm := (*map[string]int)(nil) + pm := &m + mAddr := fmt.Sprintf("%p", pm) + pmAddr := fmt.Sprintf("%p", &pm) + mt := "map[string]int" + mt1 := "string" + mt2 := "int" + ms := "(len=" + mLen + ") {\n (" + mt1 + ") (len=" + klen + ") " + + "\"one\": (" + mt2 + ") 1,\n (" + mt1 + ") (len=" + kkLen + + ") \"two\": (" + mt2 + ") 2\n}" + ms2 := "(len=" + mLen + ") {\n (" + mt1 + ") (len=" + kkLen + ") " + + "\"two\": (" + mt2 + ") 2,\n (" + mt1 + ") (len=" + klen + + ") \"one\": (" + mt2 + ") 1\n}" + addDumpTest(m, "("+mt+") "+ms+"\n", "("+mt+") "+ms2+"\n") + addDumpTest(pm, "(*"+mt+")("+mAddr+")("+ms+")\n", + "(*"+mt+")("+mAddr+")("+ms2+")\n") + addDumpTest(&pm, "(**"+mt+")("+pmAddr+"->"+mAddr+")("+ms+")\n", + "(**"+mt+")("+pmAddr+"->"+mAddr+")("+ms2+")\n") + addDumpTest(nm, "(*"+mt+")(<nil>)\n") + addDumpTest(nilMap, "("+mt+") <nil>\n") + + // Map with custom formatter type on pointer receiver only keys and vals. + k2 := pstringer("one") + v2 := pstringer("1") + m2 := map[pstringer]pstringer{k2: v2} + k2Len := fmt.Sprintf("%d", len(k2)) + v2Len := fmt.Sprintf("%d", len(v2)) + m2Len := fmt.Sprintf("%d", len(m2)) + nilMap2 := map[pstringer]pstringer(nil) + nm2 := (*map[pstringer]pstringer)(nil) + pm2 := &m2 + m2Addr := fmt.Sprintf("%p", pm2) + pm2Addr := fmt.Sprintf("%p", &pm2) + m2t := "map[spew_test.pstringer]spew_test.pstringer" + m2t1 := "spew_test.pstringer" + m2t2 := "spew_test.pstringer" + m2s := "(len=" + m2Len + ") {\n (" + m2t1 + ") (len=" + k2Len + ") " + + "stringer one: (" + m2t2 + ") (len=" + v2Len + ") stringer 1\n}" + if spew.UnsafeDisabled { + m2s = "(len=" + m2Len + ") {\n (" + m2t1 + ") (len=" + k2Len + + ") " + "\"one\": (" + m2t2 + ") (len=" + v2Len + + ") \"1\"\n}" + } + addDumpTest(m2, "("+m2t+") "+m2s+"\n") + addDumpTest(pm2, "(*"+m2t+")("+m2Addr+")("+m2s+")\n") + addDumpTest(&pm2, "(**"+m2t+")("+pm2Addr+"->"+m2Addr+")("+m2s+")\n") + addDumpTest(nm2, "(*"+m2t+")(<nil>)\n") + addDumpTest(nilMap2, "("+m2t+") <nil>\n") + + // Map with interface keys and values. + k3 := "one" + k3Len := fmt.Sprintf("%d", len(k3)) + m3 := map[interface{}]interface{}{k3: 1} + m3Len := fmt.Sprintf("%d", len(m3)) + nilMap3 := map[interface{}]interface{}(nil) + nm3 := (*map[interface{}]interface{})(nil) + pm3 := &m3 + m3Addr := fmt.Sprintf("%p", pm3) + pm3Addr := fmt.Sprintf("%p", &pm3) + m3t := "map[interface {}]interface {}" + m3t1 := "string" + m3t2 := "int" + m3s := "(len=" + m3Len + ") {\n (" + m3t1 + ") (len=" + k3Len + ") " + + "\"one\": (" + m3t2 + ") 1\n}" + addDumpTest(m3, "("+m3t+") "+m3s+"\n") + addDumpTest(pm3, "(*"+m3t+")("+m3Addr+")("+m3s+")\n") + addDumpTest(&pm3, "(**"+m3t+")("+pm3Addr+"->"+m3Addr+")("+m3s+")\n") + addDumpTest(nm3, "(*"+m3t+")(<nil>)\n") + addDumpTest(nilMap3, "("+m3t+") <nil>\n") + + // Map with nil interface value. + k4 := "nil" + k4Len := fmt.Sprintf("%d", len(k4)) + m4 := map[string]interface{}{k4: nil} + m4Len := fmt.Sprintf("%d", len(m4)) + nilMap4 := map[string]interface{}(nil) + nm4 := (*map[string]interface{})(nil) + pm4 := &m4 + m4Addr := fmt.Sprintf("%p", pm4) + pm4Addr := fmt.Sprintf("%p", &pm4) + m4t := "map[string]interface {}" + m4t1 := "string" + m4t2 := "interface {}" + m4s := "(len=" + m4Len + ") {\n (" + m4t1 + ") (len=" + k4Len + ")" + + " \"nil\": (" + m4t2 + ") <nil>\n}" + addDumpTest(m4, "("+m4t+") "+m4s+"\n") + addDumpTest(pm4, "(*"+m4t+")("+m4Addr+")("+m4s+")\n") + addDumpTest(&pm4, "(**"+m4t+")("+pm4Addr+"->"+m4Addr+")("+m4s+")\n") + addDumpTest(nm4, "(*"+m4t+")(<nil>)\n") + addDumpTest(nilMap4, "("+m4t+") <nil>\n") +} + +func addStructDumpTests() { + // Struct with primitives. + type s1 struct { + a int8 + b uint8 + } + v := s1{127, 255} + nv := (*s1)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "spew_test.s1" + vt2 := "int8" + vt3 := "uint8" + vs := "{\n a: (" + vt2 + ") 127,\n b: (" + vt3 + ") 255\n}" + addDumpTest(v, "("+vt+") "+vs+"\n") + addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") + addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") + addDumpTest(nv, "(*"+vt+")(<nil>)\n") + + // Struct that contains another struct. + type s2 struct { + s1 s1 + b bool + } + v2 := s2{s1{127, 255}, true} + nv2 := (*s2)(nil) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "spew_test.s2" + v2t2 := "spew_test.s1" + v2t3 := "int8" + v2t4 := "uint8" + v2t5 := "bool" + v2s := "{\n s1: (" + v2t2 + ") {\n a: (" + v2t3 + ") 127,\n b: (" + + v2t4 + ") 255\n },\n b: (" + v2t5 + ") true\n}" + addDumpTest(v2, "("+v2t+") "+v2s+"\n") + addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s+")\n") + addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") + addDumpTest(nv2, "(*"+v2t+")(<nil>)\n") + + // Struct that contains custom type with Stringer pointer interface via both + // exported and unexported fields. + type s3 struct { + s pstringer + S pstringer + } + v3 := s3{"test", "test2"} + nv3 := (*s3)(nil) + pv3 := &v3 + v3Addr := fmt.Sprintf("%p", pv3) + pv3Addr := fmt.Sprintf("%p", &pv3) + v3t := "spew_test.s3" + v3t2 := "spew_test.pstringer" + v3s := "{\n s: (" + v3t2 + ") (len=4) stringer test,\n S: (" + v3t2 + + ") (len=5) stringer test2\n}" + v3sp := v3s + if spew.UnsafeDisabled { + v3s = "{\n s: (" + v3t2 + ") (len=4) \"test\",\n S: (" + + v3t2 + ") (len=5) \"test2\"\n}" + v3sp = "{\n s: (" + v3t2 + ") (len=4) \"test\",\n S: (" + + v3t2 + ") (len=5) stringer test2\n}" + } + addDumpTest(v3, "("+v3t+") "+v3s+"\n") + addDumpTest(pv3, "(*"+v3t+")("+v3Addr+")("+v3sp+")\n") + addDumpTest(&pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")("+v3sp+")\n") + addDumpTest(nv3, "(*"+v3t+")(<nil>)\n") + + // Struct that contains embedded struct and field to same struct. + e := embed{"embedstr"} + eLen := fmt.Sprintf("%d", len("embedstr")) + v4 := embedwrap{embed: &e, e: &e} + nv4 := (*embedwrap)(nil) + pv4 := &v4 + eAddr := fmt.Sprintf("%p", &e) + v4Addr := fmt.Sprintf("%p", pv4) + pv4Addr := fmt.Sprintf("%p", &pv4) + v4t := "spew_test.embedwrap" + v4t2 := "spew_test.embed" + v4t3 := "string" + v4s := "{\n embed: (*" + v4t2 + ")(" + eAddr + ")({\n a: (" + v4t3 + + ") (len=" + eLen + ") \"embedstr\"\n }),\n e: (*" + v4t2 + + ")(" + eAddr + ")({\n a: (" + v4t3 + ") (len=" + eLen + ")" + + " \"embedstr\"\n })\n}" + addDumpTest(v4, "("+v4t+") "+v4s+"\n") + addDumpTest(pv4, "(*"+v4t+")("+v4Addr+")("+v4s+")\n") + addDumpTest(&pv4, "(**"+v4t+")("+pv4Addr+"->"+v4Addr+")("+v4s+")\n") + addDumpTest(nv4, "(*"+v4t+")(<nil>)\n") +} + +func addUintptrDumpTests() { + // Null pointer. + v := uintptr(0) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "uintptr" + vs := "<nil>" + addDumpTest(v, "("+vt+") "+vs+"\n") + addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") + addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") + + // Address of real variable. + i := 1 + v2 := uintptr(unsafe.Pointer(&i)) + nv2 := (*uintptr)(nil) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "uintptr" + v2s := fmt.Sprintf("%p", &i) + addDumpTest(v2, "("+v2t+") "+v2s+"\n") + addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s+")\n") + addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") + addDumpTest(nv2, "(*"+v2t+")(<nil>)\n") +} + +func addUnsafePointerDumpTests() { + // Null pointer. + v := unsafe.Pointer(uintptr(0)) + nv := (*unsafe.Pointer)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "unsafe.Pointer" + vs := "<nil>" + addDumpTest(v, "("+vt+") "+vs+"\n") + addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") + addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") + addDumpTest(nv, "(*"+vt+")(<nil>)\n") + + // Address of real variable. + i := 1 + v2 := unsafe.Pointer(&i) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "unsafe.Pointer" + v2s := fmt.Sprintf("%p", &i) + addDumpTest(v2, "("+v2t+") "+v2s+"\n") + addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s+")\n") + addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") + addDumpTest(nv, "(*"+vt+")(<nil>)\n") +} + +func addChanDumpTests() { + // Nil channel. + var v chan int + pv := &v + nv := (*chan int)(nil) + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "chan int" + vs := "<nil>" + addDumpTest(v, "("+vt+") "+vs+"\n") + addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") + addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") + addDumpTest(nv, "(*"+vt+")(<nil>)\n") + + // Real channel. + v2 := make(chan int) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "chan int" + v2s := fmt.Sprintf("%p", v2) + addDumpTest(v2, "("+v2t+") "+v2s+"\n") + addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s+")\n") + addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") +} + +func addFuncDumpTests() { + // Function with no params and no returns. + v := addIntDumpTests + nv := (*func())(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "func()" + vs := fmt.Sprintf("%p", v) + addDumpTest(v, "("+vt+") "+vs+"\n") + addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") + addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") + addDumpTest(nv, "(*"+vt+")(<nil>)\n") + + // Function with param and no returns. + v2 := TestDump + nv2 := (*func(*testing.T))(nil) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "func(*testing.T)" + v2s := fmt.Sprintf("%p", v2) + addDumpTest(v2, "("+v2t+") "+v2s+"\n") + addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s+")\n") + addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s+")\n") + addDumpTest(nv2, "(*"+v2t+")(<nil>)\n") + + // Function with multiple params and multiple returns. + var v3 = func(i int, s string) (b bool, err error) { + return true, nil + } + nv3 := (*func(int, string) (bool, error))(nil) + pv3 := &v3 + v3Addr := fmt.Sprintf("%p", pv3) + pv3Addr := fmt.Sprintf("%p", &pv3) + v3t := "func(int, string) (bool, error)" + v3s := fmt.Sprintf("%p", v3) + addDumpTest(v3, "("+v3t+") "+v3s+"\n") + addDumpTest(pv3, "(*"+v3t+")("+v3Addr+")("+v3s+")\n") + addDumpTest(&pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")("+v3s+")\n") + addDumpTest(nv3, "(*"+v3t+")(<nil>)\n") +} + +func addCircularDumpTests() { + // Struct that is circular through self referencing. + type circular struct { + c *circular + } + v := circular{nil} + v.c = &v + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "spew_test.circular" + vs := "{\n c: (*" + vt + ")(" + vAddr + ")({\n c: (*" + vt + ")(" + + vAddr + ")(<already shown>)\n })\n}" + vs2 := "{\n c: (*" + vt + ")(" + vAddr + ")(<already shown>)\n}" + addDumpTest(v, "("+vt+") "+vs+"\n") + addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs2+")\n") + addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs2+")\n") + + // Structs that are circular through cross referencing. + v2 := xref1{nil} + ts2 := xref2{&v2} + v2.ps2 = &ts2 + pv2 := &v2 + ts2Addr := fmt.Sprintf("%p", &ts2) + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "spew_test.xref1" + v2t2 := "spew_test.xref2" + v2s := "{\n ps2: (*" + v2t2 + ")(" + ts2Addr + ")({\n ps1: (*" + v2t + + ")(" + v2Addr + ")({\n ps2: (*" + v2t2 + ")(" + ts2Addr + + ")(<already shown>)\n })\n })\n}" + v2s2 := "{\n ps2: (*" + v2t2 + ")(" + ts2Addr + ")({\n ps1: (*" + v2t + + ")(" + v2Addr + ")(<already shown>)\n })\n}" + addDumpTest(v2, "("+v2t+") "+v2s+"\n") + addDumpTest(pv2, "(*"+v2t+")("+v2Addr+")("+v2s2+")\n") + addDumpTest(&pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")("+v2s2+")\n") + + // Structs that are indirectly circular. + v3 := indirCir1{nil} + tic2 := indirCir2{nil} + tic3 := indirCir3{&v3} + tic2.ps3 = &tic3 + v3.ps2 = &tic2 + pv3 := &v3 + tic2Addr := fmt.Sprintf("%p", &tic2) + tic3Addr := fmt.Sprintf("%p", &tic3) + v3Addr := fmt.Sprintf("%p", pv3) + pv3Addr := fmt.Sprintf("%p", &pv3) + v3t := "spew_test.indirCir1" + v3t2 := "spew_test.indirCir2" + v3t3 := "spew_test.indirCir3" + v3s := "{\n ps2: (*" + v3t2 + ")(" + tic2Addr + ")({\n ps3: (*" + v3t3 + + ")(" + tic3Addr + ")({\n ps1: (*" + v3t + ")(" + v3Addr + + ")({\n ps2: (*" + v3t2 + ")(" + tic2Addr + + ")(<already shown>)\n })\n })\n })\n}" + v3s2 := "{\n ps2: (*" + v3t2 + ")(" + tic2Addr + ")({\n ps3: (*" + v3t3 + + ")(" + tic3Addr + ")({\n ps1: (*" + v3t + ")(" + v3Addr + + ")(<already shown>)\n })\n })\n}" + addDumpTest(v3, "("+v3t+") "+v3s+"\n") + addDumpTest(pv3, "(*"+v3t+")("+v3Addr+")("+v3s2+")\n") + addDumpTest(&pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")("+v3s2+")\n") +} + +func addPanicDumpTests() { + // Type that panics in its Stringer interface. + v := panicer(127) + nv := (*panicer)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "spew_test.panicer" + vs := "(PANIC=test panic)127" + addDumpTest(v, "("+vt+") "+vs+"\n") + addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") + addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") + addDumpTest(nv, "(*"+vt+")(<nil>)\n") +} + +func addErrorDumpTests() { + // Type that has a custom Error interface. + v := customError(127) + nv := (*customError)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "spew_test.customError" + vs := "error: 127" + addDumpTest(v, "("+vt+") "+vs+"\n") + addDumpTest(pv, "(*"+vt+")("+vAddr+")("+vs+")\n") + addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")("+vs+")\n") + addDumpTest(nv, "(*"+vt+")(<nil>)\n") +} + +// TestDump executes all of the tests described by dumpTests. +func TestDump(t *testing.T) { + // Setup tests. + addIntDumpTests() + addUintDumpTests() + addBoolDumpTests() + addFloatDumpTests() + addComplexDumpTests() + addArrayDumpTests() + addSliceDumpTests() + addStringDumpTests() + addInterfaceDumpTests() + addMapDumpTests() + addStructDumpTests() + addUintptrDumpTests() + addUnsafePointerDumpTests() + addChanDumpTests() + addFuncDumpTests() + addCircularDumpTests() + addPanicDumpTests() + addErrorDumpTests() + addCgoDumpTests() + + t.Logf("Running %d tests", len(dumpTests)) + for i, test := range dumpTests { + buf := new(bytes.Buffer) + spew.Fdump(buf, test.in) + s := buf.String() + if testFailed(s, test.wants) { + t.Errorf("Dump #%d\n got: %s %s", i, s, stringizeWants(test.wants)) + continue + } + } +} + +func TestDumpSortedKeys(t *testing.T) { + cfg := spew.ConfigState{SortKeys: true} + s := cfg.Sdump(map[int]string{1: "1", 3: "3", 2: "2"}) + expected := "(map[int]string) (len=3) {\n(int) 1: (string) (len=1) " + + "\"1\",\n(int) 2: (string) (len=1) \"2\",\n(int) 3: (string) " + + "(len=1) \"3\"\n" + + "}\n" + if s != expected { + t.Errorf("Sorted keys mismatch:\n %v %v", s, expected) + } + + s = cfg.Sdump(map[stringer]int{"1": 1, "3": 3, "2": 2}) + expected = "(map[spew_test.stringer]int) (len=3) {\n" + + "(spew_test.stringer) (len=1) stringer 1: (int) 1,\n" + + "(spew_test.stringer) (len=1) stringer 2: (int) 2,\n" + + "(spew_test.stringer) (len=1) stringer 3: (int) 3\n" + + "}\n" + if s != expected { + t.Errorf("Sorted keys mismatch:\n %v %v", s, expected) + } + + s = cfg.Sdump(map[pstringer]int{pstringer("1"): 1, pstringer("3"): 3, pstringer("2"): 2}) + expected = "(map[spew_test.pstringer]int) (len=3) {\n" + + "(spew_test.pstringer) (len=1) stringer 1: (int) 1,\n" + + "(spew_test.pstringer) (len=1) stringer 2: (int) 2,\n" + + "(spew_test.pstringer) (len=1) stringer 3: (int) 3\n" + + "}\n" + if spew.UnsafeDisabled { + expected = "(map[spew_test.pstringer]int) (len=3) {\n" + + "(spew_test.pstringer) (len=1) \"1\": (int) 1,\n" + + "(spew_test.pstringer) (len=1) \"2\": (int) 2,\n" + + "(spew_test.pstringer) (len=1) \"3\": (int) 3\n" + + "}\n" + } + if s != expected { + t.Errorf("Sorted keys mismatch:\n %v %v", s, expected) + } + + s = cfg.Sdump(map[customError]int{customError(1): 1, customError(3): 3, customError(2): 2}) + expected = "(map[spew_test.customError]int) (len=3) {\n" + + "(spew_test.customError) error: 1: (int) 1,\n" + + "(spew_test.customError) error: 2: (int) 2,\n" + + "(spew_test.customError) error: 3: (int) 3\n" + + "}\n" + if s != expected { + t.Errorf("Sorted keys mismatch:\n %v %v", s, expected) + } + +} diff --git a/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/dumpcgo_test.go b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/dumpcgo_test.go new file mode 100644 index 000000000..18a38358e --- /dev/null +++ b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/dumpcgo_test.go @@ -0,0 +1,98 @@ +// Copyright (c) 2013 Dave Collins <dave@davec.name> +// +// Permission to use, copy, modify, and distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +// NOTE: Due to the following build constraints, this file will only be compiled +// when both cgo is supported and "-tags testcgo" is added to the go test +// command line. This means the cgo tests are only added (and hence run) when +// specifially requested. This configuration is used because spew itself +// does not require cgo to run even though it does handle certain cgo types +// specially. Rather than forcing all clients to require cgo and an external +// C compiler just to run the tests, this scheme makes them optional. +// +build cgo,testcgo + +package spew_test + +import ( + "fmt" + + "github.com/davecgh/go-spew/spew/testdata" +) + +func addCgoDumpTests() { + // C char pointer. + v := testdata.GetCgoCharPointer() + nv := testdata.GetCgoNullCharPointer() + pv := &v + vcAddr := fmt.Sprintf("%p", v) + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "*testdata._Ctype_char" + vs := "116" + addDumpTest(v, "("+vt+")("+vcAddr+")("+vs+")\n") + addDumpTest(pv, "(*"+vt+")("+vAddr+"->"+vcAddr+")("+vs+")\n") + addDumpTest(&pv, "(**"+vt+")("+pvAddr+"->"+vAddr+"->"+vcAddr+")("+vs+")\n") + addDumpTest(nv, "("+vt+")(<nil>)\n") + + // C char array. + v2, v2l, v2c := testdata.GetCgoCharArray() + v2Len := fmt.Sprintf("%d", v2l) + v2Cap := fmt.Sprintf("%d", v2c) + v2t := "[6]testdata._Ctype_char" + v2s := "(len=" + v2Len + " cap=" + v2Cap + ") " + + "{\n 00000000 74 65 73 74 32 00 " + + " |test2.|\n}" + addDumpTest(v2, "("+v2t+") "+v2s+"\n") + + // C unsigned char array. + v3, v3l, v3c := testdata.GetCgoUnsignedCharArray() + v3Len := fmt.Sprintf("%d", v3l) + v3Cap := fmt.Sprintf("%d", v3c) + v3t := "[6]testdata._Ctype_unsignedchar" + v3s := "(len=" + v3Len + " cap=" + v3Cap + ") " + + "{\n 00000000 74 65 73 74 33 00 " + + " |test3.|\n}" + addDumpTest(v3, "("+v3t+") "+v3s+"\n") + + // C signed char array. + v4, v4l, v4c := testdata.GetCgoSignedCharArray() + v4Len := fmt.Sprintf("%d", v4l) + v4Cap := fmt.Sprintf("%d", v4c) + v4t := "[6]testdata._Ctype_schar" + v4t2 := "testdata._Ctype_schar" + v4s := "(len=" + v4Len + " cap=" + v4Cap + ") " + + "{\n (" + v4t2 + ") 116,\n (" + v4t2 + ") 101,\n (" + v4t2 + + ") 115,\n (" + v4t2 + ") 116,\n (" + v4t2 + ") 52,\n (" + v4t2 + + ") 0\n}" + addDumpTest(v4, "("+v4t+") "+v4s+"\n") + + // C uint8_t array. + v5, v5l, v5c := testdata.GetCgoUint8tArray() + v5Len := fmt.Sprintf("%d", v5l) + v5Cap := fmt.Sprintf("%d", v5c) + v5t := "[6]testdata._Ctype_uint8_t" + v5s := "(len=" + v5Len + " cap=" + v5Cap + ") " + + "{\n 00000000 74 65 73 74 35 00 " + + " |test5.|\n}" + addDumpTest(v5, "("+v5t+") "+v5s+"\n") + + // C typedefed unsigned char array. + v6, v6l, v6c := testdata.GetCgoTypdefedUnsignedCharArray() + v6Len := fmt.Sprintf("%d", v6l) + v6Cap := fmt.Sprintf("%d", v6c) + v6t := "[6]testdata._Ctype_custom_uchar_t" + v6s := "(len=" + v6Len + " cap=" + v6Cap + ") " + + "{\n 00000000 74 65 73 74 36 00 " + + " |test6.|\n}" + addDumpTest(v6, "("+v6t+") "+v6s+"\n") +} diff --git a/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/dumpnocgo_test.go b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/dumpnocgo_test.go new file mode 100644 index 000000000..52a0971fb --- /dev/null +++ b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/dumpnocgo_test.go @@ -0,0 +1,26 @@ +// Copyright (c) 2013 Dave Collins <dave@davec.name> +// +// Permission to use, copy, modify, and distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +// NOTE: Due to the following build constraints, this file will only be compiled +// when either cgo is not supported or "-tags testcgo" is not added to the go +// test command line. This file intentionally does not setup any cgo tests in +// this scenario. +// +build !cgo !testcgo + +package spew_test + +func addCgoDumpTests() { + // Don't add any tests for cgo since this file is only compiled when + // there should not be any cgo tests. +} diff --git a/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/example_test.go b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/example_test.go new file mode 100644 index 000000000..de6c4e309 --- /dev/null +++ b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/example_test.go @@ -0,0 +1,226 @@ +/* + * Copyright (c) 2013 Dave Collins <dave@davec.name> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +package spew_test + +import ( + "fmt" + + "github.com/davecgh/go-spew/spew" +) + +type Flag int + +const ( + flagOne Flag = iota + flagTwo +) + +var flagStrings = map[Flag]string{ + flagOne: "flagOne", + flagTwo: "flagTwo", +} + +func (f Flag) String() string { + if s, ok := flagStrings[f]; ok { + return s + } + return fmt.Sprintf("Unknown flag (%d)", int(f)) +} + +type Bar struct { + data uintptr +} + +type Foo struct { + unexportedField Bar + ExportedField map[interface{}]interface{} +} + +// This example demonstrates how to use Dump to dump variables to stdout. +func ExampleDump() { + // The following package level declarations are assumed for this example: + /* + type Flag int + + const ( + flagOne Flag = iota + flagTwo + ) + + var flagStrings = map[Flag]string{ + flagOne: "flagOne", + flagTwo: "flagTwo", + } + + func (f Flag) String() string { + if s, ok := flagStrings[f]; ok { + return s + } + return fmt.Sprintf("Unknown flag (%d)", int(f)) + } + + type Bar struct { + data uintptr + } + + type Foo struct { + unexportedField Bar + ExportedField map[interface{}]interface{} + } + */ + + // Setup some sample data structures for the example. + bar := Bar{uintptr(0)} + s1 := Foo{bar, map[interface{}]interface{}{"one": true}} + f := Flag(5) + b := []byte{ + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, + 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, + 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, + 0x31, 0x32, + } + + // Dump! + spew.Dump(s1, f, b) + + // Output: + // (spew_test.Foo) { + // unexportedField: (spew_test.Bar) { + // data: (uintptr) <nil> + // }, + // ExportedField: (map[interface {}]interface {}) (len=1) { + // (string) (len=3) "one": (bool) true + // } + // } + // (spew_test.Flag) Unknown flag (5) + // ([]uint8) (len=34 cap=34) { + // 00000000 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 |............... | + // 00000010 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 |!"#$%&'()*+,-./0| + // 00000020 31 32 |12| + // } + // +} + +// This example demonstrates how to use Printf to display a variable with a +// format string and inline formatting. +func ExamplePrintf() { + // Create a double pointer to a uint 8. + ui8 := uint8(5) + pui8 := &ui8 + ppui8 := &pui8 + + // Create a circular data type. + type circular struct { + ui8 uint8 + c *circular + } + c := circular{ui8: 1} + c.c = &c + + // Print! + spew.Printf("ppui8: %v\n", ppui8) + spew.Printf("circular: %v\n", c) + + // Output: + // ppui8: <**>5 + // circular: {1 <*>{1 <*><shown>}} +} + +// This example demonstrates how to use a ConfigState. +func ExampleConfigState() { + // Modify the indent level of the ConfigState only. The global + // configuration is not modified. + scs := spew.ConfigState{Indent: "\t"} + + // Output using the ConfigState instance. + v := map[string]int{"one": 1} + scs.Printf("v: %v\n", v) + scs.Dump(v) + + // Output: + // v: map[one:1] + // (map[string]int) (len=1) { + // (string) (len=3) "one": (int) 1 + // } +} + +// This example demonstrates how to use ConfigState.Dump to dump variables to +// stdout +func ExampleConfigState_Dump() { + // See the top-level Dump example for details on the types used in this + // example. + + // Create two ConfigState instances with different indentation. + scs := spew.ConfigState{Indent: "\t"} + scs2 := spew.ConfigState{Indent: " "} + + // Setup some sample data structures for the example. + bar := Bar{uintptr(0)} + s1 := Foo{bar, map[interface{}]interface{}{"one": true}} + + // Dump using the ConfigState instances. + scs.Dump(s1) + scs2.Dump(s1) + + // Output: + // (spew_test.Foo) { + // unexportedField: (spew_test.Bar) { + // data: (uintptr) <nil> + // }, + // ExportedField: (map[interface {}]interface {}) (len=1) { + // (string) (len=3) "one": (bool) true + // } + // } + // (spew_test.Foo) { + // unexportedField: (spew_test.Bar) { + // data: (uintptr) <nil> + // }, + // ExportedField: (map[interface {}]interface {}) (len=1) { + // (string) (len=3) "one": (bool) true + // } + // } + // +} + +// This example demonstrates how to use ConfigState.Printf to display a variable +// with a format string and inline formatting. +func ExampleConfigState_Printf() { + // See the top-level Dump example for details on the types used in this + // example. + + // Create two ConfigState instances and modify the method handling of the + // first ConfigState only. + scs := spew.NewDefaultConfig() + scs2 := spew.NewDefaultConfig() + scs.DisableMethods = true + + // Alternatively + // scs := spew.ConfigState{Indent: " ", DisableMethods: true} + // scs2 := spew.ConfigState{Indent: " "} + + // This is of type Flag which implements a Stringer and has raw value 1. + f := flagTwo + + // Dump using the ConfigState instances. + scs.Printf("f: %v\n", f) + scs2.Printf("f: %v\n", f) + + // Output: + // f: 1 + // f: flagTwo +} diff --git a/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/format.go b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/format.go new file mode 100644 index 000000000..ecf3b80e2 --- /dev/null +++ b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/format.go @@ -0,0 +1,419 @@ +/* + * Copyright (c) 2013 Dave Collins <dave@davec.name> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +package spew + +import ( + "bytes" + "fmt" + "reflect" + "strconv" + "strings" +) + +// supportedFlags is a list of all the character flags supported by fmt package. +const supportedFlags = "0-+# " + +// formatState implements the fmt.Formatter interface and contains information +// about the state of a formatting operation. The NewFormatter function can +// be used to get a new Formatter which can be used directly as arguments +// in standard fmt package printing calls. +type formatState struct { + value interface{} + fs fmt.State + depth int + pointers map[uintptr]int + ignoreNextType bool + cs *ConfigState +} + +// buildDefaultFormat recreates the original format string without precision +// and width information to pass in to fmt.Sprintf in the case of an +// unrecognized type. Unless new types are added to the language, this +// function won't ever be called. +func (f *formatState) buildDefaultFormat() (format string) { + buf := bytes.NewBuffer(percentBytes) + + for _, flag := range supportedFlags { + if f.fs.Flag(int(flag)) { + buf.WriteRune(flag) + } + } + + buf.WriteRune('v') + + format = buf.String() + return format +} + +// constructOrigFormat recreates the original format string including precision +// and width information to pass along to the standard fmt package. This allows +// automatic deferral of all format strings this package doesn't support. +func (f *formatState) constructOrigFormat(verb rune) (format string) { + buf := bytes.NewBuffer(percentBytes) + + for _, flag := range supportedFlags { + if f.fs.Flag(int(flag)) { + buf.WriteRune(flag) + } + } + + if width, ok := f.fs.Width(); ok { + buf.WriteString(strconv.Itoa(width)) + } + + if precision, ok := f.fs.Precision(); ok { + buf.Write(precisionBytes) + buf.WriteString(strconv.Itoa(precision)) + } + + buf.WriteRune(verb) + + format = buf.String() + return format +} + +// unpackValue returns values inside of non-nil interfaces when possible and +// ensures that types for values which have been unpacked from an interface +// are displayed when the show types flag is also set. +// This is useful for data types like structs, arrays, slices, and maps which +// can contain varying types packed inside an interface. +func (f *formatState) unpackValue(v reflect.Value) reflect.Value { + if v.Kind() == reflect.Interface { + f.ignoreNextType = false + if !v.IsNil() { + v = v.Elem() + } + } + return v +} + +// formatPtr handles formatting of pointers by indirecting them as necessary. +func (f *formatState) formatPtr(v reflect.Value) { + // Display nil if top level pointer is nil. + showTypes := f.fs.Flag('#') + if v.IsNil() && (!showTypes || f.ignoreNextType) { + f.fs.Write(nilAngleBytes) + return + } + + // Remove pointers at or below the current depth from map used to detect + // circular refs. + for k, depth := range f.pointers { + if depth >= f.depth { + delete(f.pointers, k) + } + } + + // Keep list of all dereferenced pointers to possibly show later. + pointerChain := make([]uintptr, 0) + + // Figure out how many levels of indirection there are by derferencing + // pointers and unpacking interfaces down the chain while detecting circular + // references. + nilFound := false + cycleFound := false + indirects := 0 + ve := v + for ve.Kind() == reflect.Ptr { + if ve.IsNil() { + nilFound = true + break + } + indirects++ + addr := ve.Pointer() + pointerChain = append(pointerChain, addr) + if pd, ok := f.pointers[addr]; ok && pd < f.depth { + cycleFound = true + indirects-- + break + } + f.pointers[addr] = f.depth + + ve = ve.Elem() + if ve.Kind() == reflect.Interface { + if ve.IsNil() { + nilFound = true + break + } + ve = ve.Elem() + } + } + + // Display type or indirection level depending on flags. + if showTypes && !f.ignoreNextType { + f.fs.Write(openParenBytes) + f.fs.Write(bytes.Repeat(asteriskBytes, indirects)) + f.fs.Write([]byte(ve.Type().String())) + f.fs.Write(closeParenBytes) + } else { + if nilFound || cycleFound { + indirects += strings.Count(ve.Type().String(), "*") + } + f.fs.Write(openAngleBytes) + f.fs.Write([]byte(strings.Repeat("*", indirects))) + f.fs.Write(closeAngleBytes) + } + + // Display pointer information depending on flags. + if f.fs.Flag('+') && (len(pointerChain) > 0) { + f.fs.Write(openParenBytes) + for i, addr := range pointerChain { + if i > 0 { + f.fs.Write(pointerChainBytes) + } + printHexPtr(f.fs, addr) + } + f.fs.Write(closeParenBytes) + } + + // Display dereferenced value. + switch { + case nilFound == true: + f.fs.Write(nilAngleBytes) + + case cycleFound == true: + f.fs.Write(circularShortBytes) + + default: + f.ignoreNextType = true + f.format(ve) + } +} + +// format is the main workhorse for providing the Formatter interface. It +// uses the passed reflect value to figure out what kind of object we are +// dealing with and formats it appropriately. It is a recursive function, +// however circular data structures are detected and handled properly. +func (f *formatState) format(v reflect.Value) { + // Handle invalid reflect values immediately. + kind := v.Kind() + if kind == reflect.Invalid { + f.fs.Write(invalidAngleBytes) + return + } + + // Handle pointers specially. + if kind == reflect.Ptr { + f.formatPtr(v) + return + } + + // Print type information unless already handled elsewhere. + if !f.ignoreNextType && f.fs.Flag('#') { + f.fs.Write(openParenBytes) + f.fs.Write([]byte(v.Type().String())) + f.fs.Write(closeParenBytes) + } + f.ignoreNextType = false + + // Call Stringer/error interfaces if they exist and the handle methods + // flag is enabled. + if !f.cs.DisableMethods { + if (kind != reflect.Invalid) && (kind != reflect.Interface) { + if handled := handleMethods(f.cs, f.fs, v); handled { + return + } + } + } + + switch kind { + case reflect.Invalid: + // Do nothing. We should never get here since invalid has already + // been handled above. + + case reflect.Bool: + printBool(f.fs, v.Bool()) + + case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int: + printInt(f.fs, v.Int(), 10) + + case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint: + printUint(f.fs, v.Uint(), 10) + + case reflect.Float32: + printFloat(f.fs, v.Float(), 32) + + case reflect.Float64: + printFloat(f.fs, v.Float(), 64) + + case reflect.Complex64: + printComplex(f.fs, v.Complex(), 32) + + case reflect.Complex128: + printComplex(f.fs, v.Complex(), 64) + + case reflect.Slice: + if v.IsNil() { + f.fs.Write(nilAngleBytes) + break + } + fallthrough + + case reflect.Array: + f.fs.Write(openBracketBytes) + f.depth++ + if (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) { + f.fs.Write(maxShortBytes) + } else { + numEntries := v.Len() + for i := 0; i < numEntries; i++ { + if i > 0 { + f.fs.Write(spaceBytes) + } + f.ignoreNextType = true + f.format(f.unpackValue(v.Index(i))) + } + } + f.depth-- + f.fs.Write(closeBracketBytes) + + case reflect.String: + f.fs.Write([]byte(v.String())) + + case reflect.Interface: + // The only time we should get here is for nil interfaces due to + // unpackValue calls. + if v.IsNil() { + f.fs.Write(nilAngleBytes) + } + + case reflect.Ptr: + // Do nothing. We should never get here since pointers have already + // been handled above. + + case reflect.Map: + // nil maps should be indicated as different than empty maps + if v.IsNil() { + f.fs.Write(nilAngleBytes) + break + } + + f.fs.Write(openMapBytes) + f.depth++ + if (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) { + f.fs.Write(maxShortBytes) + } else { + keys := v.MapKeys() + if f.cs.SortKeys { + sortValues(keys, f.cs) + } + for i, key := range keys { + if i > 0 { + f.fs.Write(spaceBytes) + } + f.ignoreNextType = true + f.format(f.unpackValue(key)) + f.fs.Write(colonBytes) + f.ignoreNextType = true + f.format(f.unpackValue(v.MapIndex(key))) + } + } + f.depth-- + f.fs.Write(closeMapBytes) + + case reflect.Struct: + numFields := v.NumField() + f.fs.Write(openBraceBytes) + f.depth++ + if (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) { + f.fs.Write(maxShortBytes) + } else { + vt := v.Type() + for i := 0; i < numFields; i++ { + if i > 0 { + f.fs.Write(spaceBytes) + } + vtf := vt.Field(i) + if f.fs.Flag('+') || f.fs.Flag('#') { + f.fs.Write([]byte(vtf.Name)) + f.fs.Write(colonBytes) + } + f.format(f.unpackValue(v.Field(i))) + } + } + f.depth-- + f.fs.Write(closeBraceBytes) + + case reflect.Uintptr: + printHexPtr(f.fs, uintptr(v.Uint())) + + case reflect.UnsafePointer, reflect.Chan, reflect.Func: + printHexPtr(f.fs, v.Pointer()) + + // There were not any other types at the time this code was written, but + // fall back to letting the default fmt package handle it if any get added. + default: + format := f.buildDefaultFormat() + if v.CanInterface() { + fmt.Fprintf(f.fs, format, v.Interface()) + } else { + fmt.Fprintf(f.fs, format, v.String()) + } + } +} + +// Format satisfies the fmt.Formatter interface. See NewFormatter for usage +// details. +func (f *formatState) Format(fs fmt.State, verb rune) { + f.fs = fs + + // Use standard formatting for verbs that are not v. + if verb != 'v' { + format := f.constructOrigFormat(verb) + fmt.Fprintf(fs, format, f.value) + return + } + + if f.value == nil { + if fs.Flag('#') { + fs.Write(interfaceBytes) + } + fs.Write(nilAngleBytes) + return + } + + f.format(reflect.ValueOf(f.value)) +} + +// newFormatter is a helper function to consolidate the logic from the various +// public methods which take varying config states. +func newFormatter(cs *ConfigState, v interface{}) fmt.Formatter { + fs := &formatState{value: v, cs: cs} + fs.pointers = make(map[uintptr]int) + return fs +} + +/* +NewFormatter returns a custom formatter that satisfies the fmt.Formatter +interface. As a result, it integrates cleanly with standard fmt package +printing functions. The formatter is useful for inline printing of smaller data +types similar to the standard %v format specifier. + +The custom formatter only responds to the %v (most compact), %+v (adds pointer +addresses), %#v (adds types), or %#+v (adds types and pointer addresses) verb +combinations. Any other verbs such as %x and %q will be sent to the the +standard fmt package for formatting. In addition, the custom formatter ignores +the width and precision arguments (however they will still work on the format +specifiers not handled by the custom formatter). + +Typically this function shouldn't be called directly. It is much easier to make +use of the custom formatter by calling one of the convenience functions such as +Printf, Println, or Fprintf. +*/ +func NewFormatter(v interface{}) fmt.Formatter { + return newFormatter(&Config, v) +} diff --git a/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/format_test.go b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/format_test.go new file mode 100644 index 000000000..b664b3f13 --- /dev/null +++ b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/format_test.go @@ -0,0 +1,1558 @@ +/* + * Copyright (c) 2013 Dave Collins <dave@davec.name> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* +Test Summary: +NOTE: For each test, a nil pointer, a single pointer and double pointer to the +base test element are also tested to ensure proper indirection across all types. + +- Max int8, int16, int32, int64, int +- Max uint8, uint16, uint32, uint64, uint +- Boolean true and false +- Standard complex64 and complex128 +- Array containing standard ints +- Array containing type with custom formatter on pointer receiver only +- Array containing interfaces +- Slice containing standard float32 values +- Slice containing type with custom formatter on pointer receiver only +- Slice containing interfaces +- Nil slice +- Standard string +- Nil interface +- Sub-interface +- Map with string keys and int vals +- Map with custom formatter type on pointer receiver only keys and vals +- Map with interface keys and values +- Map with nil interface value +- Struct with primitives +- Struct that contains another struct +- Struct that contains custom type with Stringer pointer interface via both + exported and unexported fields +- Struct that contains embedded struct and field to same struct +- Uintptr to 0 (null pointer) +- Uintptr address of real variable +- Unsafe.Pointer to 0 (null pointer) +- Unsafe.Pointer to address of real variable +- Nil channel +- Standard int channel +- Function with no params and no returns +- Function with param and no returns +- Function with multiple params and multiple returns +- Struct that is circular through self referencing +- Structs that are circular through cross referencing +- Structs that are indirectly circular +- Type that panics in its Stringer interface +- Type that has a custom Error interface +- %x passthrough with uint +- %#x passthrough with uint +- %f passthrough with precision +- %f passthrough with width and precision +- %d passthrough with width +- %q passthrough with string +*/ + +package spew_test + +import ( + "bytes" + "fmt" + "testing" + "unsafe" + + "github.com/davecgh/go-spew/spew" +) + +// formatterTest is used to describe a test to be perfomed against NewFormatter. +type formatterTest struct { + format string + in interface{} + wants []string +} + +// formatterTests houses all of the tests to be performed against NewFormatter. +var formatterTests = make([]formatterTest, 0) + +// addFormatterTest is a helper method to append the passed input and desired +// result to formatterTests. +func addFormatterTest(format string, in interface{}, wants ...string) { + test := formatterTest{format, in, wants} + formatterTests = append(formatterTests, test) +} + +func addIntFormatterTests() { + // Max int8. + v := int8(127) + nv := (*int8)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "int8" + vs := "127" + addFormatterTest("%v", v, vs) + addFormatterTest("%v", pv, "<*>"+vs) + addFormatterTest("%v", &pv, "<**>"+vs) + addFormatterTest("%v", nv, "<nil>") + addFormatterTest("%+v", v, vs) + addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) + addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%#v", v, "("+vt+")"+vs) + addFormatterTest("%#v", pv, "(*"+vt+")"+vs) + addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) + addFormatterTest("%#v", nv, "(*"+vt+")"+"<nil>") + addFormatterTest("%#+v", v, "("+vt+")"+vs) + addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) + addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%#+v", nv, "(*"+vt+")"+"<nil>") + + // Max int16. + v2 := int16(32767) + nv2 := (*int16)(nil) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "int16" + v2s := "32767" + addFormatterTest("%v", v2, v2s) + addFormatterTest("%v", pv2, "<*>"+v2s) + addFormatterTest("%v", &pv2, "<**>"+v2s) + addFormatterTest("%v", nv2, "<nil>") + addFormatterTest("%+v", v2, v2s) + addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) + addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) + addFormatterTest("%+v", nv2, "<nil>") + addFormatterTest("%#v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) + addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) + addFormatterTest("%#v", nv2, "(*"+v2t+")"+"<nil>") + addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) + addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) + addFormatterTest("%#+v", nv2, "(*"+v2t+")"+"<nil>") + + // Max int32. + v3 := int32(2147483647) + nv3 := (*int32)(nil) + pv3 := &v3 + v3Addr := fmt.Sprintf("%p", pv3) + pv3Addr := fmt.Sprintf("%p", &pv3) + v3t := "int32" + v3s := "2147483647" + addFormatterTest("%v", v3, v3s) + addFormatterTest("%v", pv3, "<*>"+v3s) + addFormatterTest("%v", &pv3, "<**>"+v3s) + addFormatterTest("%v", nv3, "<nil>") + addFormatterTest("%+v", v3, v3s) + addFormatterTest("%+v", pv3, "<*>("+v3Addr+")"+v3s) + addFormatterTest("%+v", &pv3, "<**>("+pv3Addr+"->"+v3Addr+")"+v3s) + addFormatterTest("%+v", nv3, "<nil>") + addFormatterTest("%#v", v3, "("+v3t+")"+v3s) + addFormatterTest("%#v", pv3, "(*"+v3t+")"+v3s) + addFormatterTest("%#v", &pv3, "(**"+v3t+")"+v3s) + addFormatterTest("%#v", nv3, "(*"+v3t+")"+"<nil>") + addFormatterTest("%#+v", v3, "("+v3t+")"+v3s) + addFormatterTest("%#+v", pv3, "(*"+v3t+")("+v3Addr+")"+v3s) + addFormatterTest("%#+v", &pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")"+v3s) + addFormatterTest("%#v", nv3, "(*"+v3t+")"+"<nil>") + + // Max int64. + v4 := int64(9223372036854775807) + nv4 := (*int64)(nil) + pv4 := &v4 + v4Addr := fmt.Sprintf("%p", pv4) + pv4Addr := fmt.Sprintf("%p", &pv4) + v4t := "int64" + v4s := "9223372036854775807" + addFormatterTest("%v", v4, v4s) + addFormatterTest("%v", pv4, "<*>"+v4s) + addFormatterTest("%v", &pv4, "<**>"+v4s) + addFormatterTest("%v", nv4, "<nil>") + addFormatterTest("%+v", v4, v4s) + addFormatterTest("%+v", pv4, "<*>("+v4Addr+")"+v4s) + addFormatterTest("%+v", &pv4, "<**>("+pv4Addr+"->"+v4Addr+")"+v4s) + addFormatterTest("%+v", nv4, "<nil>") + addFormatterTest("%#v", v4, "("+v4t+")"+v4s) + addFormatterTest("%#v", pv4, "(*"+v4t+")"+v4s) + addFormatterTest("%#v", &pv4, "(**"+v4t+")"+v4s) + addFormatterTest("%#v", nv4, "(*"+v4t+")"+"<nil>") + addFormatterTest("%#+v", v4, "("+v4t+")"+v4s) + addFormatterTest("%#+v", pv4, "(*"+v4t+")("+v4Addr+")"+v4s) + addFormatterTest("%#+v", &pv4, "(**"+v4t+")("+pv4Addr+"->"+v4Addr+")"+v4s) + addFormatterTest("%#+v", nv4, "(*"+v4t+")"+"<nil>") + + // Max int. + v5 := int(2147483647) + nv5 := (*int)(nil) + pv5 := &v5 + v5Addr := fmt.Sprintf("%p", pv5) + pv5Addr := fmt.Sprintf("%p", &pv5) + v5t := "int" + v5s := "2147483647" + addFormatterTest("%v", v5, v5s) + addFormatterTest("%v", pv5, "<*>"+v5s) + addFormatterTest("%v", &pv5, "<**>"+v5s) + addFormatterTest("%v", nv5, "<nil>") + addFormatterTest("%+v", v5, v5s) + addFormatterTest("%+v", pv5, "<*>("+v5Addr+")"+v5s) + addFormatterTest("%+v", &pv5, "<**>("+pv5Addr+"->"+v5Addr+")"+v5s) + addFormatterTest("%+v", nv5, "<nil>") + addFormatterTest("%#v", v5, "("+v5t+")"+v5s) + addFormatterTest("%#v", pv5, "(*"+v5t+")"+v5s) + addFormatterTest("%#v", &pv5, "(**"+v5t+")"+v5s) + addFormatterTest("%#v", nv5, "(*"+v5t+")"+"<nil>") + addFormatterTest("%#+v", v5, "("+v5t+")"+v5s) + addFormatterTest("%#+v", pv5, "(*"+v5t+")("+v5Addr+")"+v5s) + addFormatterTest("%#+v", &pv5, "(**"+v5t+")("+pv5Addr+"->"+v5Addr+")"+v5s) + addFormatterTest("%#+v", nv5, "(*"+v5t+")"+"<nil>") +} + +func addUintFormatterTests() { + // Max uint8. + v := uint8(255) + nv := (*uint8)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "uint8" + vs := "255" + addFormatterTest("%v", v, vs) + addFormatterTest("%v", pv, "<*>"+vs) + addFormatterTest("%v", &pv, "<**>"+vs) + addFormatterTest("%v", nv, "<nil>") + addFormatterTest("%+v", v, vs) + addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) + addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%#v", v, "("+vt+")"+vs) + addFormatterTest("%#v", pv, "(*"+vt+")"+vs) + addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) + addFormatterTest("%#v", nv, "(*"+vt+")"+"<nil>") + addFormatterTest("%#+v", v, "("+vt+")"+vs) + addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) + addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%#+v", nv, "(*"+vt+")"+"<nil>") + + // Max uint16. + v2 := uint16(65535) + nv2 := (*uint16)(nil) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "uint16" + v2s := "65535" + addFormatterTest("%v", v2, v2s) + addFormatterTest("%v", pv2, "<*>"+v2s) + addFormatterTest("%v", &pv2, "<**>"+v2s) + addFormatterTest("%v", nv2, "<nil>") + addFormatterTest("%+v", v2, v2s) + addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) + addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) + addFormatterTest("%+v", nv2, "<nil>") + addFormatterTest("%#v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) + addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) + addFormatterTest("%#v", nv2, "(*"+v2t+")"+"<nil>") + addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) + addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) + addFormatterTest("%#+v", nv2, "(*"+v2t+")"+"<nil>") + + // Max uint32. + v3 := uint32(4294967295) + nv3 := (*uint32)(nil) + pv3 := &v3 + v3Addr := fmt.Sprintf("%p", pv3) + pv3Addr := fmt.Sprintf("%p", &pv3) + v3t := "uint32" + v3s := "4294967295" + addFormatterTest("%v", v3, v3s) + addFormatterTest("%v", pv3, "<*>"+v3s) + addFormatterTest("%v", &pv3, "<**>"+v3s) + addFormatterTest("%v", nv3, "<nil>") + addFormatterTest("%+v", v3, v3s) + addFormatterTest("%+v", pv3, "<*>("+v3Addr+")"+v3s) + addFormatterTest("%+v", &pv3, "<**>("+pv3Addr+"->"+v3Addr+")"+v3s) + addFormatterTest("%+v", nv3, "<nil>") + addFormatterTest("%#v", v3, "("+v3t+")"+v3s) + addFormatterTest("%#v", pv3, "(*"+v3t+")"+v3s) + addFormatterTest("%#v", &pv3, "(**"+v3t+")"+v3s) + addFormatterTest("%#v", nv3, "(*"+v3t+")"+"<nil>") + addFormatterTest("%#+v", v3, "("+v3t+")"+v3s) + addFormatterTest("%#+v", pv3, "(*"+v3t+")("+v3Addr+")"+v3s) + addFormatterTest("%#+v", &pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")"+v3s) + addFormatterTest("%#v", nv3, "(*"+v3t+")"+"<nil>") + + // Max uint64. + v4 := uint64(18446744073709551615) + nv4 := (*uint64)(nil) + pv4 := &v4 + v4Addr := fmt.Sprintf("%p", pv4) + pv4Addr := fmt.Sprintf("%p", &pv4) + v4t := "uint64" + v4s := "18446744073709551615" + addFormatterTest("%v", v4, v4s) + addFormatterTest("%v", pv4, "<*>"+v4s) + addFormatterTest("%v", &pv4, "<**>"+v4s) + addFormatterTest("%v", nv4, "<nil>") + addFormatterTest("%+v", v4, v4s) + addFormatterTest("%+v", pv4, "<*>("+v4Addr+")"+v4s) + addFormatterTest("%+v", &pv4, "<**>("+pv4Addr+"->"+v4Addr+")"+v4s) + addFormatterTest("%+v", nv4, "<nil>") + addFormatterTest("%#v", v4, "("+v4t+")"+v4s) + addFormatterTest("%#v", pv4, "(*"+v4t+")"+v4s) + addFormatterTest("%#v", &pv4, "(**"+v4t+")"+v4s) + addFormatterTest("%#v", nv4, "(*"+v4t+")"+"<nil>") + addFormatterTest("%#+v", v4, "("+v4t+")"+v4s) + addFormatterTest("%#+v", pv4, "(*"+v4t+")("+v4Addr+")"+v4s) + addFormatterTest("%#+v", &pv4, "(**"+v4t+")("+pv4Addr+"->"+v4Addr+")"+v4s) + addFormatterTest("%#+v", nv4, "(*"+v4t+")"+"<nil>") + + // Max uint. + v5 := uint(4294967295) + nv5 := (*uint)(nil) + pv5 := &v5 + v5Addr := fmt.Sprintf("%p", pv5) + pv5Addr := fmt.Sprintf("%p", &pv5) + v5t := "uint" + v5s := "4294967295" + addFormatterTest("%v", v5, v5s) + addFormatterTest("%v", pv5, "<*>"+v5s) + addFormatterTest("%v", &pv5, "<**>"+v5s) + addFormatterTest("%v", nv5, "<nil>") + addFormatterTest("%+v", v5, v5s) + addFormatterTest("%+v", pv5, "<*>("+v5Addr+")"+v5s) + addFormatterTest("%+v", &pv5, "<**>("+pv5Addr+"->"+v5Addr+")"+v5s) + addFormatterTest("%+v", nv5, "<nil>") + addFormatterTest("%#v", v5, "("+v5t+")"+v5s) + addFormatterTest("%#v", pv5, "(*"+v5t+")"+v5s) + addFormatterTest("%#v", &pv5, "(**"+v5t+")"+v5s) + addFormatterTest("%#v", nv5, "(*"+v5t+")"+"<nil>") + addFormatterTest("%#+v", v5, "("+v5t+")"+v5s) + addFormatterTest("%#+v", pv5, "(*"+v5t+")("+v5Addr+")"+v5s) + addFormatterTest("%#+v", &pv5, "(**"+v5t+")("+pv5Addr+"->"+v5Addr+")"+v5s) + addFormatterTest("%#v", nv5, "(*"+v5t+")"+"<nil>") +} + +func addBoolFormatterTests() { + // Boolean true. + v := bool(true) + nv := (*bool)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "bool" + vs := "true" + addFormatterTest("%v", v, vs) + addFormatterTest("%v", pv, "<*>"+vs) + addFormatterTest("%v", &pv, "<**>"+vs) + addFormatterTest("%v", nv, "<nil>") + addFormatterTest("%+v", v, vs) + addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) + addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%#v", v, "("+vt+")"+vs) + addFormatterTest("%#v", pv, "(*"+vt+")"+vs) + addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) + addFormatterTest("%#v", nv, "(*"+vt+")"+"<nil>") + addFormatterTest("%#+v", v, "("+vt+")"+vs) + addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) + addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%#+v", nv, "(*"+vt+")"+"<nil>") + + // Boolean false. + v2 := bool(false) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "bool" + v2s := "false" + addFormatterTest("%v", v2, v2s) + addFormatterTest("%v", pv2, "<*>"+v2s) + addFormatterTest("%v", &pv2, "<**>"+v2s) + addFormatterTest("%+v", v2, v2s) + addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) + addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) + addFormatterTest("%#v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) + addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) + addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) + addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) +} + +func addFloatFormatterTests() { + // Standard float32. + v := float32(3.1415) + nv := (*float32)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "float32" + vs := "3.1415" + addFormatterTest("%v", v, vs) + addFormatterTest("%v", pv, "<*>"+vs) + addFormatterTest("%v", &pv, "<**>"+vs) + addFormatterTest("%v", nv, "<nil>") + addFormatterTest("%+v", v, vs) + addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) + addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%#v", v, "("+vt+")"+vs) + addFormatterTest("%#v", pv, "(*"+vt+")"+vs) + addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) + addFormatterTest("%#v", nv, "(*"+vt+")"+"<nil>") + addFormatterTest("%#+v", v, "("+vt+")"+vs) + addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) + addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%#+v", nv, "(*"+vt+")"+"<nil>") + + // Standard float64. + v2 := float64(3.1415926) + nv2 := (*float64)(nil) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "float64" + v2s := "3.1415926" + addFormatterTest("%v", v2, v2s) + addFormatterTest("%v", pv2, "<*>"+v2s) + addFormatterTest("%v", &pv2, "<**>"+v2s) + addFormatterTest("%+v", nv2, "<nil>") + addFormatterTest("%+v", v2, v2s) + addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) + addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) + addFormatterTest("%+v", nv2, "<nil>") + addFormatterTest("%#v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) + addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) + addFormatterTest("%#v", nv2, "(*"+v2t+")"+"<nil>") + addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) + addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) + addFormatterTest("%#+v", nv2, "(*"+v2t+")"+"<nil>") +} + +func addComplexFormatterTests() { + // Standard complex64. + v := complex(float32(6), -2) + nv := (*complex64)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "complex64" + vs := "(6-2i)" + addFormatterTest("%v", v, vs) + addFormatterTest("%v", pv, "<*>"+vs) + addFormatterTest("%v", &pv, "<**>"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%+v", v, vs) + addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) + addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%#v", v, "("+vt+")"+vs) + addFormatterTest("%#v", pv, "(*"+vt+")"+vs) + addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) + addFormatterTest("%#v", nv, "(*"+vt+")"+"<nil>") + addFormatterTest("%#+v", v, "("+vt+")"+vs) + addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) + addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%#+v", nv, "(*"+vt+")"+"<nil>") + + // Standard complex128. + v2 := complex(float64(-6), 2) + nv2 := (*complex128)(nil) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "complex128" + v2s := "(-6+2i)" + addFormatterTest("%v", v2, v2s) + addFormatterTest("%v", pv2, "<*>"+v2s) + addFormatterTest("%v", &pv2, "<**>"+v2s) + addFormatterTest("%+v", nv2, "<nil>") + addFormatterTest("%+v", v2, v2s) + addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) + addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) + addFormatterTest("%+v", nv2, "<nil>") + addFormatterTest("%#v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) + addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) + addFormatterTest("%#v", nv2, "(*"+v2t+")"+"<nil>") + addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) + addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) + addFormatterTest("%#+v", nv2, "(*"+v2t+")"+"<nil>") +} + +func addArrayFormatterTests() { + // Array containing standard ints. + v := [3]int{1, 2, 3} + nv := (*[3]int)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "[3]int" + vs := "[1 2 3]" + addFormatterTest("%v", v, vs) + addFormatterTest("%v", pv, "<*>"+vs) + addFormatterTest("%v", &pv, "<**>"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%+v", v, vs) + addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) + addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%#v", v, "("+vt+")"+vs) + addFormatterTest("%#v", pv, "(*"+vt+")"+vs) + addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) + addFormatterTest("%#v", nv, "(*"+vt+")"+"<nil>") + addFormatterTest("%#+v", v, "("+vt+")"+vs) + addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) + addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%#+v", nv, "(*"+vt+")"+"<nil>") + + // Array containing type with custom formatter on pointer receiver only. + v2 := [3]pstringer{"1", "2", "3"} + nv2 := (*[3]pstringer)(nil) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "[3]spew_test.pstringer" + v2sp := "[stringer 1 stringer 2 stringer 3]" + v2s := v2sp + if spew.UnsafeDisabled { + v2s = "[1 2 3]" + } + addFormatterTest("%v", v2, v2s) + addFormatterTest("%v", pv2, "<*>"+v2sp) + addFormatterTest("%v", &pv2, "<**>"+v2sp) + addFormatterTest("%+v", nv2, "<nil>") + addFormatterTest("%+v", v2, v2s) + addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2sp) + addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2sp) + addFormatterTest("%+v", nv2, "<nil>") + addFormatterTest("%#v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2sp) + addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2sp) + addFormatterTest("%#v", nv2, "(*"+v2t+")"+"<nil>") + addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2sp) + addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2sp) + addFormatterTest("%#+v", nv2, "(*"+v2t+")"+"<nil>") + + // Array containing interfaces. + v3 := [3]interface{}{"one", int(2), uint(3)} + nv3 := (*[3]interface{})(nil) + pv3 := &v3 + v3Addr := fmt.Sprintf("%p", pv3) + pv3Addr := fmt.Sprintf("%p", &pv3) + v3t := "[3]interface {}" + v3t2 := "string" + v3t3 := "int" + v3t4 := "uint" + v3s := "[one 2 3]" + v3s2 := "[(" + v3t2 + ")one (" + v3t3 + ")2 (" + v3t4 + ")3]" + addFormatterTest("%v", v3, v3s) + addFormatterTest("%v", pv3, "<*>"+v3s) + addFormatterTest("%v", &pv3, "<**>"+v3s) + addFormatterTest("%+v", nv3, "<nil>") + addFormatterTest("%+v", v3, v3s) + addFormatterTest("%+v", pv3, "<*>("+v3Addr+")"+v3s) + addFormatterTest("%+v", &pv3, "<**>("+pv3Addr+"->"+v3Addr+")"+v3s) + addFormatterTest("%+v", nv3, "<nil>") + addFormatterTest("%#v", v3, "("+v3t+")"+v3s2) + addFormatterTest("%#v", pv3, "(*"+v3t+")"+v3s2) + addFormatterTest("%#v", &pv3, "(**"+v3t+")"+v3s2) + addFormatterTest("%#v", nv3, "(*"+v3t+")"+"<nil>") + addFormatterTest("%#+v", v3, "("+v3t+")"+v3s2) + addFormatterTest("%#+v", pv3, "(*"+v3t+")("+v3Addr+")"+v3s2) + addFormatterTest("%#+v", &pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")"+v3s2) + addFormatterTest("%#+v", nv3, "(*"+v3t+")"+"<nil>") +} + +func addSliceFormatterTests() { + // Slice containing standard float32 values. + v := []float32{3.14, 6.28, 12.56} + nv := (*[]float32)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "[]float32" + vs := "[3.14 6.28 12.56]" + addFormatterTest("%v", v, vs) + addFormatterTest("%v", pv, "<*>"+vs) + addFormatterTest("%v", &pv, "<**>"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%+v", v, vs) + addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) + addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%#v", v, "("+vt+")"+vs) + addFormatterTest("%#v", pv, "(*"+vt+")"+vs) + addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) + addFormatterTest("%#v", nv, "(*"+vt+")"+"<nil>") + addFormatterTest("%#+v", v, "("+vt+")"+vs) + addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) + addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%#+v", nv, "(*"+vt+")"+"<nil>") + + // Slice containing type with custom formatter on pointer receiver only. + v2 := []pstringer{"1", "2", "3"} + nv2 := (*[]pstringer)(nil) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "[]spew_test.pstringer" + v2s := "[stringer 1 stringer 2 stringer 3]" + addFormatterTest("%v", v2, v2s) + addFormatterTest("%v", pv2, "<*>"+v2s) + addFormatterTest("%v", &pv2, "<**>"+v2s) + addFormatterTest("%+v", nv2, "<nil>") + addFormatterTest("%+v", v2, v2s) + addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) + addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) + addFormatterTest("%+v", nv2, "<nil>") + addFormatterTest("%#v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) + addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) + addFormatterTest("%#v", nv2, "(*"+v2t+")"+"<nil>") + addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) + addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) + addFormatterTest("%#+v", nv2, "(*"+v2t+")"+"<nil>") + + // Slice containing interfaces. + v3 := []interface{}{"one", int(2), uint(3), nil} + nv3 := (*[]interface{})(nil) + pv3 := &v3 + v3Addr := fmt.Sprintf("%p", pv3) + pv3Addr := fmt.Sprintf("%p", &pv3) + v3t := "[]interface {}" + v3t2 := "string" + v3t3 := "int" + v3t4 := "uint" + v3t5 := "interface {}" + v3s := "[one 2 3 <nil>]" + v3s2 := "[(" + v3t2 + ")one (" + v3t3 + ")2 (" + v3t4 + ")3 (" + v3t5 + + ")<nil>]" + addFormatterTest("%v", v3, v3s) + addFormatterTest("%v", pv3, "<*>"+v3s) + addFormatterTest("%v", &pv3, "<**>"+v3s) + addFormatterTest("%+v", nv3, "<nil>") + addFormatterTest("%+v", v3, v3s) + addFormatterTest("%+v", pv3, "<*>("+v3Addr+")"+v3s) + addFormatterTest("%+v", &pv3, "<**>("+pv3Addr+"->"+v3Addr+")"+v3s) + addFormatterTest("%+v", nv3, "<nil>") + addFormatterTest("%#v", v3, "("+v3t+")"+v3s2) + addFormatterTest("%#v", pv3, "(*"+v3t+")"+v3s2) + addFormatterTest("%#v", &pv3, "(**"+v3t+")"+v3s2) + addFormatterTest("%#v", nv3, "(*"+v3t+")"+"<nil>") + addFormatterTest("%#+v", v3, "("+v3t+")"+v3s2) + addFormatterTest("%#+v", pv3, "(*"+v3t+")("+v3Addr+")"+v3s2) + addFormatterTest("%#+v", &pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")"+v3s2) + addFormatterTest("%#+v", nv3, "(*"+v3t+")"+"<nil>") + + // Nil slice. + var v4 []int + nv4 := (*[]int)(nil) + pv4 := &v4 + v4Addr := fmt.Sprintf("%p", pv4) + pv4Addr := fmt.Sprintf("%p", &pv4) + v4t := "[]int" + v4s := "<nil>" + addFormatterTest("%v", v4, v4s) + addFormatterTest("%v", pv4, "<*>"+v4s) + addFormatterTest("%v", &pv4, "<**>"+v4s) + addFormatterTest("%+v", nv4, "<nil>") + addFormatterTest("%+v", v4, v4s) + addFormatterTest("%+v", pv4, "<*>("+v4Addr+")"+v4s) + addFormatterTest("%+v", &pv4, "<**>("+pv4Addr+"->"+v4Addr+")"+v4s) + addFormatterTest("%+v", nv4, "<nil>") + addFormatterTest("%#v", v4, "("+v4t+")"+v4s) + addFormatterTest("%#v", pv4, "(*"+v4t+")"+v4s) + addFormatterTest("%#v", &pv4, "(**"+v4t+")"+v4s) + addFormatterTest("%#v", nv4, "(*"+v4t+")"+"<nil>") + addFormatterTest("%#+v", v4, "("+v4t+")"+v4s) + addFormatterTest("%#+v", pv4, "(*"+v4t+")("+v4Addr+")"+v4s) + addFormatterTest("%#+v", &pv4, "(**"+v4t+")("+pv4Addr+"->"+v4Addr+")"+v4s) + addFormatterTest("%#+v", nv4, "(*"+v4t+")"+"<nil>") +} + +func addStringFormatterTests() { + // Standard string. + v := "test" + nv := (*string)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "string" + vs := "test" + addFormatterTest("%v", v, vs) + addFormatterTest("%v", pv, "<*>"+vs) + addFormatterTest("%v", &pv, "<**>"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%+v", v, vs) + addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) + addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%#v", v, "("+vt+")"+vs) + addFormatterTest("%#v", pv, "(*"+vt+")"+vs) + addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) + addFormatterTest("%#v", nv, "(*"+vt+")"+"<nil>") + addFormatterTest("%#+v", v, "("+vt+")"+vs) + addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) + addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%#+v", nv, "(*"+vt+")"+"<nil>") +} + +func addInterfaceFormatterTests() { + // Nil interface. + var v interface{} + nv := (*interface{})(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "interface {}" + vs := "<nil>" + addFormatterTest("%v", v, vs) + addFormatterTest("%v", pv, "<*>"+vs) + addFormatterTest("%v", &pv, "<**>"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%+v", v, vs) + addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) + addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%#v", v, "("+vt+")"+vs) + addFormatterTest("%#v", pv, "(*"+vt+")"+vs) + addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) + addFormatterTest("%#v", nv, "(*"+vt+")"+"<nil>") + addFormatterTest("%#+v", v, "("+vt+")"+vs) + addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) + addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%#+v", nv, "(*"+vt+")"+"<nil>") + + // Sub-interface. + v2 := interface{}(uint16(65535)) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "uint16" + v2s := "65535" + addFormatterTest("%v", v2, v2s) + addFormatterTest("%v", pv2, "<*>"+v2s) + addFormatterTest("%v", &pv2, "<**>"+v2s) + addFormatterTest("%+v", v2, v2s) + addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) + addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) + addFormatterTest("%#v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) + addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) + addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) + addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) +} + +func addMapFormatterTests() { + // Map with string keys and int vals. + v := map[string]int{"one": 1, "two": 2} + nilMap := map[string]int(nil) + nv := (*map[string]int)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "map[string]int" + vs := "map[one:1 two:2]" + vs2 := "map[two:2 one:1]" + addFormatterTest("%v", v, vs, vs2) + addFormatterTest("%v", pv, "<*>"+vs, "<*>"+vs2) + addFormatterTest("%v", &pv, "<**>"+vs, "<**>"+vs2) + addFormatterTest("%+v", nilMap, "<nil>") + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%+v", v, vs, vs2) + addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs, "<*>("+vAddr+")"+vs2) + addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs, + "<**>("+pvAddr+"->"+vAddr+")"+vs2) + addFormatterTest("%+v", nilMap, "<nil>") + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%#v", v, "("+vt+")"+vs, "("+vt+")"+vs2) + addFormatterTest("%#v", pv, "(*"+vt+")"+vs, "(*"+vt+")"+vs2) + addFormatterTest("%#v", &pv, "(**"+vt+")"+vs, "(**"+vt+")"+vs2) + addFormatterTest("%#v", nilMap, "("+vt+")"+"<nil>") + addFormatterTest("%#v", nv, "(*"+vt+")"+"<nil>") + addFormatterTest("%#+v", v, "("+vt+")"+vs, "("+vt+")"+vs2) + addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs, + "(*"+vt+")("+vAddr+")"+vs2) + addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs, + "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs2) + addFormatterTest("%#+v", nilMap, "("+vt+")"+"<nil>") + addFormatterTest("%#+v", nv, "(*"+vt+")"+"<nil>") + + // Map with custom formatter type on pointer receiver only keys and vals. + v2 := map[pstringer]pstringer{"one": "1"} + nv2 := (*map[pstringer]pstringer)(nil) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "map[spew_test.pstringer]spew_test.pstringer" + v2s := "map[stringer one:stringer 1]" + if spew.UnsafeDisabled { + v2s = "map[one:1]" + } + addFormatterTest("%v", v2, v2s) + addFormatterTest("%v", pv2, "<*>"+v2s) + addFormatterTest("%v", &pv2, "<**>"+v2s) + addFormatterTest("%+v", nv2, "<nil>") + addFormatterTest("%+v", v2, v2s) + addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) + addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) + addFormatterTest("%+v", nv2, "<nil>") + addFormatterTest("%#v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) + addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) + addFormatterTest("%#v", nv2, "(*"+v2t+")"+"<nil>") + addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) + addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) + addFormatterTest("%#+v", nv2, "(*"+v2t+")"+"<nil>") + + // Map with interface keys and values. + v3 := map[interface{}]interface{}{"one": 1} + nv3 := (*map[interface{}]interface{})(nil) + pv3 := &v3 + v3Addr := fmt.Sprintf("%p", pv3) + pv3Addr := fmt.Sprintf("%p", &pv3) + v3t := "map[interface {}]interface {}" + v3t1 := "string" + v3t2 := "int" + v3s := "map[one:1]" + v3s2 := "map[(" + v3t1 + ")one:(" + v3t2 + ")1]" + addFormatterTest("%v", v3, v3s) + addFormatterTest("%v", pv3, "<*>"+v3s) + addFormatterTest("%v", &pv3, "<**>"+v3s) + addFormatterTest("%+v", nv3, "<nil>") + addFormatterTest("%+v", v3, v3s) + addFormatterTest("%+v", pv3, "<*>("+v3Addr+")"+v3s) + addFormatterTest("%+v", &pv3, "<**>("+pv3Addr+"->"+v3Addr+")"+v3s) + addFormatterTest("%+v", nv3, "<nil>") + addFormatterTest("%#v", v3, "("+v3t+")"+v3s2) + addFormatterTest("%#v", pv3, "(*"+v3t+")"+v3s2) + addFormatterTest("%#v", &pv3, "(**"+v3t+")"+v3s2) + addFormatterTest("%#v", nv3, "(*"+v3t+")"+"<nil>") + addFormatterTest("%#+v", v3, "("+v3t+")"+v3s2) + addFormatterTest("%#+v", pv3, "(*"+v3t+")("+v3Addr+")"+v3s2) + addFormatterTest("%#+v", &pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")"+v3s2) + addFormatterTest("%#+v", nv3, "(*"+v3t+")"+"<nil>") + + // Map with nil interface value + v4 := map[string]interface{}{"nil": nil} + nv4 := (*map[string]interface{})(nil) + pv4 := &v4 + v4Addr := fmt.Sprintf("%p", pv4) + pv4Addr := fmt.Sprintf("%p", &pv4) + v4t := "map[string]interface {}" + v4t1 := "interface {}" + v4s := "map[nil:<nil>]" + v4s2 := "map[nil:(" + v4t1 + ")<nil>]" + addFormatterTest("%v", v4, v4s) + addFormatterTest("%v", pv4, "<*>"+v4s) + addFormatterTest("%v", &pv4, "<**>"+v4s) + addFormatterTest("%+v", nv4, "<nil>") + addFormatterTest("%+v", v4, v4s) + addFormatterTest("%+v", pv4, "<*>("+v4Addr+")"+v4s) + addFormatterTest("%+v", &pv4, "<**>("+pv4Addr+"->"+v4Addr+")"+v4s) + addFormatterTest("%+v", nv4, "<nil>") + addFormatterTest("%#v", v4, "("+v4t+")"+v4s2) + addFormatterTest("%#v", pv4, "(*"+v4t+")"+v4s2) + addFormatterTest("%#v", &pv4, "(**"+v4t+")"+v4s2) + addFormatterTest("%#v", nv4, "(*"+v4t+")"+"<nil>") + addFormatterTest("%#+v", v4, "("+v4t+")"+v4s2) + addFormatterTest("%#+v", pv4, "(*"+v4t+")("+v4Addr+")"+v4s2) + addFormatterTest("%#+v", &pv4, "(**"+v4t+")("+pv4Addr+"->"+v4Addr+")"+v4s2) + addFormatterTest("%#+v", nv4, "(*"+v4t+")"+"<nil>") +} + +func addStructFormatterTests() { + // Struct with primitives. + type s1 struct { + a int8 + b uint8 + } + v := s1{127, 255} + nv := (*s1)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "spew_test.s1" + vt2 := "int8" + vt3 := "uint8" + vs := "{127 255}" + vs2 := "{a:127 b:255}" + vs3 := "{a:(" + vt2 + ")127 b:(" + vt3 + ")255}" + addFormatterTest("%v", v, vs) + addFormatterTest("%v", pv, "<*>"+vs) + addFormatterTest("%v", &pv, "<**>"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%+v", v, vs2) + addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs2) + addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs2) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%#v", v, "("+vt+")"+vs3) + addFormatterTest("%#v", pv, "(*"+vt+")"+vs3) + addFormatterTest("%#v", &pv, "(**"+vt+")"+vs3) + addFormatterTest("%#v", nv, "(*"+vt+")"+"<nil>") + addFormatterTest("%#+v", v, "("+vt+")"+vs3) + addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs3) + addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs3) + addFormatterTest("%#+v", nv, "(*"+vt+")"+"<nil>") + + // Struct that contains another struct. + type s2 struct { + s1 s1 + b bool + } + v2 := s2{s1{127, 255}, true} + nv2 := (*s2)(nil) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "spew_test.s2" + v2t2 := "spew_test.s1" + v2t3 := "int8" + v2t4 := "uint8" + v2t5 := "bool" + v2s := "{{127 255} true}" + v2s2 := "{s1:{a:127 b:255} b:true}" + v2s3 := "{s1:(" + v2t2 + "){a:(" + v2t3 + ")127 b:(" + v2t4 + ")255} b:(" + + v2t5 + ")true}" + addFormatterTest("%v", v2, v2s) + addFormatterTest("%v", pv2, "<*>"+v2s) + addFormatterTest("%v", &pv2, "<**>"+v2s) + addFormatterTest("%+v", nv2, "<nil>") + addFormatterTest("%+v", v2, v2s2) + addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s2) + addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s2) + addFormatterTest("%+v", nv2, "<nil>") + addFormatterTest("%#v", v2, "("+v2t+")"+v2s3) + addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s3) + addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s3) + addFormatterTest("%#v", nv2, "(*"+v2t+")"+"<nil>") + addFormatterTest("%#+v", v2, "("+v2t+")"+v2s3) + addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s3) + addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s3) + addFormatterTest("%#+v", nv2, "(*"+v2t+")"+"<nil>") + + // Struct that contains custom type with Stringer pointer interface via both + // exported and unexported fields. + type s3 struct { + s pstringer + S pstringer + } + v3 := s3{"test", "test2"} + nv3 := (*s3)(nil) + pv3 := &v3 + v3Addr := fmt.Sprintf("%p", pv3) + pv3Addr := fmt.Sprintf("%p", &pv3) + v3t := "spew_test.s3" + v3t2 := "spew_test.pstringer" + v3s := "{stringer test stringer test2}" + v3sp := v3s + v3s2 := "{s:stringer test S:stringer test2}" + v3s2p := v3s2 + v3s3 := "{s:(" + v3t2 + ")stringer test S:(" + v3t2 + ")stringer test2}" + v3s3p := v3s3 + if spew.UnsafeDisabled { + v3s = "{test test2}" + v3sp = "{test stringer test2}" + v3s2 = "{s:test S:test2}" + v3s2p = "{s:test S:stringer test2}" + v3s3 = "{s:(" + v3t2 + ")test S:(" + v3t2 + ")test2}" + v3s3p = "{s:(" + v3t2 + ")test S:(" + v3t2 + ")stringer test2}" + } + addFormatterTest("%v", v3, v3s) + addFormatterTest("%v", pv3, "<*>"+v3sp) + addFormatterTest("%v", &pv3, "<**>"+v3sp) + addFormatterTest("%+v", nv3, "<nil>") + addFormatterTest("%+v", v3, v3s2) + addFormatterTest("%+v", pv3, "<*>("+v3Addr+")"+v3s2p) + addFormatterTest("%+v", &pv3, "<**>("+pv3Addr+"->"+v3Addr+")"+v3s2p) + addFormatterTest("%+v", nv3, "<nil>") + addFormatterTest("%#v", v3, "("+v3t+")"+v3s3) + addFormatterTest("%#v", pv3, "(*"+v3t+")"+v3s3p) + addFormatterTest("%#v", &pv3, "(**"+v3t+")"+v3s3p) + addFormatterTest("%#v", nv3, "(*"+v3t+")"+"<nil>") + addFormatterTest("%#+v", v3, "("+v3t+")"+v3s3) + addFormatterTest("%#+v", pv3, "(*"+v3t+")("+v3Addr+")"+v3s3p) + addFormatterTest("%#+v", &pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")"+v3s3p) + addFormatterTest("%#+v", nv3, "(*"+v3t+")"+"<nil>") + + // Struct that contains embedded struct and field to same struct. + e := embed{"embedstr"} + v4 := embedwrap{embed: &e, e: &e} + nv4 := (*embedwrap)(nil) + pv4 := &v4 + eAddr := fmt.Sprintf("%p", &e) + v4Addr := fmt.Sprintf("%p", pv4) + pv4Addr := fmt.Sprintf("%p", &pv4) + v4t := "spew_test.embedwrap" + v4t2 := "spew_test.embed" + v4t3 := "string" + v4s := "{<*>{embedstr} <*>{embedstr}}" + v4s2 := "{embed:<*>(" + eAddr + "){a:embedstr} e:<*>(" + eAddr + + "){a:embedstr}}" + v4s3 := "{embed:(*" + v4t2 + "){a:(" + v4t3 + ")embedstr} e:(*" + v4t2 + + "){a:(" + v4t3 + ")embedstr}}" + v4s4 := "{embed:(*" + v4t2 + ")(" + eAddr + "){a:(" + v4t3 + + ")embedstr} e:(*" + v4t2 + ")(" + eAddr + "){a:(" + v4t3 + ")embedstr}}" + addFormatterTest("%v", v4, v4s) + addFormatterTest("%v", pv4, "<*>"+v4s) + addFormatterTest("%v", &pv4, "<**>"+v4s) + addFormatterTest("%+v", nv4, "<nil>") + addFormatterTest("%+v", v4, v4s2) + addFormatterTest("%+v", pv4, "<*>("+v4Addr+")"+v4s2) + addFormatterTest("%+v", &pv4, "<**>("+pv4Addr+"->"+v4Addr+")"+v4s2) + addFormatterTest("%+v", nv4, "<nil>") + addFormatterTest("%#v", v4, "("+v4t+")"+v4s3) + addFormatterTest("%#v", pv4, "(*"+v4t+")"+v4s3) + addFormatterTest("%#v", &pv4, "(**"+v4t+")"+v4s3) + addFormatterTest("%#v", nv4, "(*"+v4t+")"+"<nil>") + addFormatterTest("%#+v", v4, "("+v4t+")"+v4s4) + addFormatterTest("%#+v", pv4, "(*"+v4t+")("+v4Addr+")"+v4s4) + addFormatterTest("%#+v", &pv4, "(**"+v4t+")("+pv4Addr+"->"+v4Addr+")"+v4s4) + addFormatterTest("%#+v", nv4, "(*"+v4t+")"+"<nil>") +} + +func addUintptrFormatterTests() { + // Null pointer. + v := uintptr(0) + nv := (*uintptr)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "uintptr" + vs := "<nil>" + addFormatterTest("%v", v, vs) + addFormatterTest("%v", pv, "<*>"+vs) + addFormatterTest("%v", &pv, "<**>"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%+v", v, vs) + addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) + addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%#v", v, "("+vt+")"+vs) + addFormatterTest("%#v", pv, "(*"+vt+")"+vs) + addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) + addFormatterTest("%#v", nv, "(*"+vt+")"+"<nil>") + addFormatterTest("%#+v", v, "("+vt+")"+vs) + addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) + addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%#+v", nv, "(*"+vt+")"+"<nil>") + + // Address of real variable. + i := 1 + v2 := uintptr(unsafe.Pointer(&i)) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "uintptr" + v2s := fmt.Sprintf("%p", &i) + addFormatterTest("%v", v2, v2s) + addFormatterTest("%v", pv2, "<*>"+v2s) + addFormatterTest("%v", &pv2, "<**>"+v2s) + addFormatterTest("%+v", v2, v2s) + addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) + addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) + addFormatterTest("%#v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) + addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) + addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) + addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) +} + +func addUnsafePointerFormatterTests() { + // Null pointer. + v := unsafe.Pointer(uintptr(0)) + nv := (*unsafe.Pointer)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "unsafe.Pointer" + vs := "<nil>" + addFormatterTest("%v", v, vs) + addFormatterTest("%v", pv, "<*>"+vs) + addFormatterTest("%v", &pv, "<**>"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%+v", v, vs) + addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) + addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%#v", v, "("+vt+")"+vs) + addFormatterTest("%#v", pv, "(*"+vt+")"+vs) + addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) + addFormatterTest("%#v", nv, "(*"+vt+")"+"<nil>") + addFormatterTest("%#+v", v, "("+vt+")"+vs) + addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) + addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%#+v", nv, "(*"+vt+")"+"<nil>") + + // Address of real variable. + i := 1 + v2 := unsafe.Pointer(&i) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "unsafe.Pointer" + v2s := fmt.Sprintf("%p", &i) + addFormatterTest("%v", v2, v2s) + addFormatterTest("%v", pv2, "<*>"+v2s) + addFormatterTest("%v", &pv2, "<**>"+v2s) + addFormatterTest("%+v", v2, v2s) + addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) + addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) + addFormatterTest("%#v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) + addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) + addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) + addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) +} + +func addChanFormatterTests() { + // Nil channel. + var v chan int + pv := &v + nv := (*chan int)(nil) + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "chan int" + vs := "<nil>" + addFormatterTest("%v", v, vs) + addFormatterTest("%v", pv, "<*>"+vs) + addFormatterTest("%v", &pv, "<**>"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%+v", v, vs) + addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) + addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%#v", v, "("+vt+")"+vs) + addFormatterTest("%#v", pv, "(*"+vt+")"+vs) + addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) + addFormatterTest("%#v", nv, "(*"+vt+")"+"<nil>") + addFormatterTest("%#+v", v, "("+vt+")"+vs) + addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) + addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%#+v", nv, "(*"+vt+")"+"<nil>") + + // Real channel. + v2 := make(chan int) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "chan int" + v2s := fmt.Sprintf("%p", v2) + addFormatterTest("%v", v2, v2s) + addFormatterTest("%v", pv2, "<*>"+v2s) + addFormatterTest("%v", &pv2, "<**>"+v2s) + addFormatterTest("%+v", v2, v2s) + addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) + addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) + addFormatterTest("%#v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) + addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) + addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) + addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) +} + +func addFuncFormatterTests() { + // Function with no params and no returns. + v := addIntFormatterTests + nv := (*func())(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "func()" + vs := fmt.Sprintf("%p", v) + addFormatterTest("%v", v, vs) + addFormatterTest("%v", pv, "<*>"+vs) + addFormatterTest("%v", &pv, "<**>"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%+v", v, vs) + addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) + addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%#v", v, "("+vt+")"+vs) + addFormatterTest("%#v", pv, "(*"+vt+")"+vs) + addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) + addFormatterTest("%#v", nv, "(*"+vt+")"+"<nil>") + addFormatterTest("%#+v", v, "("+vt+")"+vs) + addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) + addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%#+v", nv, "(*"+vt+")"+"<nil>") + + // Function with param and no returns. + v2 := TestFormatter + nv2 := (*func(*testing.T))(nil) + pv2 := &v2 + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "func(*testing.T)" + v2s := fmt.Sprintf("%p", v2) + addFormatterTest("%v", v2, v2s) + addFormatterTest("%v", pv2, "<*>"+v2s) + addFormatterTest("%v", &pv2, "<**>"+v2s) + addFormatterTest("%+v", nv2, "<nil>") + addFormatterTest("%+v", v2, v2s) + addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s) + addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s) + addFormatterTest("%+v", nv2, "<nil>") + addFormatterTest("%#v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s) + addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s) + addFormatterTest("%#v", nv2, "(*"+v2t+")"+"<nil>") + addFormatterTest("%#+v", v2, "("+v2t+")"+v2s) + addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s) + addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s) + addFormatterTest("%#+v", nv2, "(*"+v2t+")"+"<nil>") + + // Function with multiple params and multiple returns. + var v3 = func(i int, s string) (b bool, err error) { + return true, nil + } + nv3 := (*func(int, string) (bool, error))(nil) + pv3 := &v3 + v3Addr := fmt.Sprintf("%p", pv3) + pv3Addr := fmt.Sprintf("%p", &pv3) + v3t := "func(int, string) (bool, error)" + v3s := fmt.Sprintf("%p", v3) + addFormatterTest("%v", v3, v3s) + addFormatterTest("%v", pv3, "<*>"+v3s) + addFormatterTest("%v", &pv3, "<**>"+v3s) + addFormatterTest("%+v", nv3, "<nil>") + addFormatterTest("%+v", v3, v3s) + addFormatterTest("%+v", pv3, "<*>("+v3Addr+")"+v3s) + addFormatterTest("%+v", &pv3, "<**>("+pv3Addr+"->"+v3Addr+")"+v3s) + addFormatterTest("%+v", nv3, "<nil>") + addFormatterTest("%#v", v3, "("+v3t+")"+v3s) + addFormatterTest("%#v", pv3, "(*"+v3t+")"+v3s) + addFormatterTest("%#v", &pv3, "(**"+v3t+")"+v3s) + addFormatterTest("%#v", nv3, "(*"+v3t+")"+"<nil>") + addFormatterTest("%#+v", v3, "("+v3t+")"+v3s) + addFormatterTest("%#+v", pv3, "(*"+v3t+")("+v3Addr+")"+v3s) + addFormatterTest("%#+v", &pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")"+v3s) + addFormatterTest("%#+v", nv3, "(*"+v3t+")"+"<nil>") +} + +func addCircularFormatterTests() { + // Struct that is circular through self referencing. + type circular struct { + c *circular + } + v := circular{nil} + v.c = &v + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "spew_test.circular" + vs := "{<*>{<*><shown>}}" + vs2 := "{<*><shown>}" + vs3 := "{c:<*>(" + vAddr + "){c:<*>(" + vAddr + ")<shown>}}" + vs4 := "{c:<*>(" + vAddr + ")<shown>}" + vs5 := "{c:(*" + vt + "){c:(*" + vt + ")<shown>}}" + vs6 := "{c:(*" + vt + ")<shown>}" + vs7 := "{c:(*" + vt + ")(" + vAddr + "){c:(*" + vt + ")(" + vAddr + + ")<shown>}}" + vs8 := "{c:(*" + vt + ")(" + vAddr + ")<shown>}" + addFormatterTest("%v", v, vs) + addFormatterTest("%v", pv, "<*>"+vs2) + addFormatterTest("%v", &pv, "<**>"+vs2) + addFormatterTest("%+v", v, vs3) + addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs4) + addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs4) + addFormatterTest("%#v", v, "("+vt+")"+vs5) + addFormatterTest("%#v", pv, "(*"+vt+")"+vs6) + addFormatterTest("%#v", &pv, "(**"+vt+")"+vs6) + addFormatterTest("%#+v", v, "("+vt+")"+vs7) + addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs8) + addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs8) + + // Structs that are circular through cross referencing. + v2 := xref1{nil} + ts2 := xref2{&v2} + v2.ps2 = &ts2 + pv2 := &v2 + ts2Addr := fmt.Sprintf("%p", &ts2) + v2Addr := fmt.Sprintf("%p", pv2) + pv2Addr := fmt.Sprintf("%p", &pv2) + v2t := "spew_test.xref1" + v2t2 := "spew_test.xref2" + v2s := "{<*>{<*>{<*><shown>}}}" + v2s2 := "{<*>{<*><shown>}}" + v2s3 := "{ps2:<*>(" + ts2Addr + "){ps1:<*>(" + v2Addr + "){ps2:<*>(" + + ts2Addr + ")<shown>}}}" + v2s4 := "{ps2:<*>(" + ts2Addr + "){ps1:<*>(" + v2Addr + ")<shown>}}" + v2s5 := "{ps2:(*" + v2t2 + "){ps1:(*" + v2t + "){ps2:(*" + v2t2 + + ")<shown>}}}" + v2s6 := "{ps2:(*" + v2t2 + "){ps1:(*" + v2t + ")<shown>}}" + v2s7 := "{ps2:(*" + v2t2 + ")(" + ts2Addr + "){ps1:(*" + v2t + + ")(" + v2Addr + "){ps2:(*" + v2t2 + ")(" + ts2Addr + + ")<shown>}}}" + v2s8 := "{ps2:(*" + v2t2 + ")(" + ts2Addr + "){ps1:(*" + v2t + + ")(" + v2Addr + ")<shown>}}" + addFormatterTest("%v", v2, v2s) + addFormatterTest("%v", pv2, "<*>"+v2s2) + addFormatterTest("%v", &pv2, "<**>"+v2s2) + addFormatterTest("%+v", v2, v2s3) + addFormatterTest("%+v", pv2, "<*>("+v2Addr+")"+v2s4) + addFormatterTest("%+v", &pv2, "<**>("+pv2Addr+"->"+v2Addr+")"+v2s4) + addFormatterTest("%#v", v2, "("+v2t+")"+v2s5) + addFormatterTest("%#v", pv2, "(*"+v2t+")"+v2s6) + addFormatterTest("%#v", &pv2, "(**"+v2t+")"+v2s6) + addFormatterTest("%#+v", v2, "("+v2t+")"+v2s7) + addFormatterTest("%#+v", pv2, "(*"+v2t+")("+v2Addr+")"+v2s8) + addFormatterTest("%#+v", &pv2, "(**"+v2t+")("+pv2Addr+"->"+v2Addr+")"+v2s8) + + // Structs that are indirectly circular. + v3 := indirCir1{nil} + tic2 := indirCir2{nil} + tic3 := indirCir3{&v3} + tic2.ps3 = &tic3 + v3.ps2 = &tic2 + pv3 := &v3 + tic2Addr := fmt.Sprintf("%p", &tic2) + tic3Addr := fmt.Sprintf("%p", &tic3) + v3Addr := fmt.Sprintf("%p", pv3) + pv3Addr := fmt.Sprintf("%p", &pv3) + v3t := "spew_test.indirCir1" + v3t2 := "spew_test.indirCir2" + v3t3 := "spew_test.indirCir3" + v3s := "{<*>{<*>{<*>{<*><shown>}}}}" + v3s2 := "{<*>{<*>{<*><shown>}}}" + v3s3 := "{ps2:<*>(" + tic2Addr + "){ps3:<*>(" + tic3Addr + "){ps1:<*>(" + + v3Addr + "){ps2:<*>(" + tic2Addr + ")<shown>}}}}" + v3s4 := "{ps2:<*>(" + tic2Addr + "){ps3:<*>(" + tic3Addr + "){ps1:<*>(" + + v3Addr + ")<shown>}}}" + v3s5 := "{ps2:(*" + v3t2 + "){ps3:(*" + v3t3 + "){ps1:(*" + v3t + + "){ps2:(*" + v3t2 + ")<shown>}}}}" + v3s6 := "{ps2:(*" + v3t2 + "){ps3:(*" + v3t3 + "){ps1:(*" + v3t + + ")<shown>}}}" + v3s7 := "{ps2:(*" + v3t2 + ")(" + tic2Addr + "){ps3:(*" + v3t3 + ")(" + + tic3Addr + "){ps1:(*" + v3t + ")(" + v3Addr + "){ps2:(*" + v3t2 + + ")(" + tic2Addr + ")<shown>}}}}" + v3s8 := "{ps2:(*" + v3t2 + ")(" + tic2Addr + "){ps3:(*" + v3t3 + ")(" + + tic3Addr + "){ps1:(*" + v3t + ")(" + v3Addr + ")<shown>}}}" + addFormatterTest("%v", v3, v3s) + addFormatterTest("%v", pv3, "<*>"+v3s2) + addFormatterTest("%v", &pv3, "<**>"+v3s2) + addFormatterTest("%+v", v3, v3s3) + addFormatterTest("%+v", pv3, "<*>("+v3Addr+")"+v3s4) + addFormatterTest("%+v", &pv3, "<**>("+pv3Addr+"->"+v3Addr+")"+v3s4) + addFormatterTest("%#v", v3, "("+v3t+")"+v3s5) + addFormatterTest("%#v", pv3, "(*"+v3t+")"+v3s6) + addFormatterTest("%#v", &pv3, "(**"+v3t+")"+v3s6) + addFormatterTest("%#+v", v3, "("+v3t+")"+v3s7) + addFormatterTest("%#+v", pv3, "(*"+v3t+")("+v3Addr+")"+v3s8) + addFormatterTest("%#+v", &pv3, "(**"+v3t+")("+pv3Addr+"->"+v3Addr+")"+v3s8) +} + +func addPanicFormatterTests() { + // Type that panics in its Stringer interface. + v := panicer(127) + nv := (*panicer)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "spew_test.panicer" + vs := "(PANIC=test panic)127" + addFormatterTest("%v", v, vs) + addFormatterTest("%v", pv, "<*>"+vs) + addFormatterTest("%v", &pv, "<**>"+vs) + addFormatterTest("%v", nv, "<nil>") + addFormatterTest("%+v", v, vs) + addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) + addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%#v", v, "("+vt+")"+vs) + addFormatterTest("%#v", pv, "(*"+vt+")"+vs) + addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) + addFormatterTest("%#v", nv, "(*"+vt+")"+"<nil>") + addFormatterTest("%#+v", v, "("+vt+")"+vs) + addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) + addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%#+v", nv, "(*"+vt+")"+"<nil>") +} + +func addErrorFormatterTests() { + // Type that has a custom Error interface. + v := customError(127) + nv := (*customError)(nil) + pv := &v + vAddr := fmt.Sprintf("%p", pv) + pvAddr := fmt.Sprintf("%p", &pv) + vt := "spew_test.customError" + vs := "error: 127" + addFormatterTest("%v", v, vs) + addFormatterTest("%v", pv, "<*>"+vs) + addFormatterTest("%v", &pv, "<**>"+vs) + addFormatterTest("%v", nv, "<nil>") + addFormatterTest("%+v", v, vs) + addFormatterTest("%+v", pv, "<*>("+vAddr+")"+vs) + addFormatterTest("%+v", &pv, "<**>("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%+v", nv, "<nil>") + addFormatterTest("%#v", v, "("+vt+")"+vs) + addFormatterTest("%#v", pv, "(*"+vt+")"+vs) + addFormatterTest("%#v", &pv, "(**"+vt+")"+vs) + addFormatterTest("%#v", nv, "(*"+vt+")"+"<nil>") + addFormatterTest("%#+v", v, "("+vt+")"+vs) + addFormatterTest("%#+v", pv, "(*"+vt+")("+vAddr+")"+vs) + addFormatterTest("%#+v", &pv, "(**"+vt+")("+pvAddr+"->"+vAddr+")"+vs) + addFormatterTest("%#+v", nv, "(*"+vt+")"+"<nil>") +} + +func addPassthroughFormatterTests() { + // %x passthrough with uint. + v := uint(4294967295) + pv := &v + vAddr := fmt.Sprintf("%x", pv) + pvAddr := fmt.Sprintf("%x", &pv) + vs := "ffffffff" + addFormatterTest("%x", v, vs) + addFormatterTest("%x", pv, vAddr) + addFormatterTest("%x", &pv, pvAddr) + + // %#x passthrough with uint. + v2 := int(2147483647) + pv2 := &v2 + v2Addr := fmt.Sprintf("%#x", pv2) + pv2Addr := fmt.Sprintf("%#x", &pv2) + v2s := "0x7fffffff" + addFormatterTest("%#x", v2, v2s) + addFormatterTest("%#x", pv2, v2Addr) + addFormatterTest("%#x", &pv2, pv2Addr) + + // %f passthrough with precision. + addFormatterTest("%.2f", 3.1415, "3.14") + addFormatterTest("%.3f", 3.1415, "3.142") + addFormatterTest("%.4f", 3.1415, "3.1415") + + // %f passthrough with width and precision. + addFormatterTest("%5.2f", 3.1415, " 3.14") + addFormatterTest("%6.3f", 3.1415, " 3.142") + addFormatterTest("%7.4f", 3.1415, " 3.1415") + + // %d passthrough with width. + addFormatterTest("%3d", 127, "127") + addFormatterTest("%4d", 127, " 127") + addFormatterTest("%5d", 127, " 127") + + // %q passthrough with string. + addFormatterTest("%q", "test", "\"test\"") +} + +// TestFormatter executes all of the tests described by formatterTests. +func TestFormatter(t *testing.T) { + // Setup tests. + addIntFormatterTests() + addUintFormatterTests() + addBoolFormatterTests() + addFloatFormatterTests() + addComplexFormatterTests() + addArrayFormatterTests() + addSliceFormatterTests() + addStringFormatterTests() + addInterfaceFormatterTests() + addMapFormatterTests() + addStructFormatterTests() + addUintptrFormatterTests() + addUnsafePointerFormatterTests() + addChanFormatterTests() + addFuncFormatterTests() + addCircularFormatterTests() + addPanicFormatterTests() + addErrorFormatterTests() + addPassthroughFormatterTests() + + t.Logf("Running %d tests", len(formatterTests)) + for i, test := range formatterTests { + buf := new(bytes.Buffer) + spew.Fprintf(buf, test.format, test.in) + s := buf.String() + if testFailed(s, test.wants) { + t.Errorf("Formatter #%d format: %s got: %s %s", i, test.format, s, + stringizeWants(test.wants)) + continue + } + } +} + +type testStruct struct { + x int +} + +func (ts testStruct) String() string { + return fmt.Sprintf("ts.%d", ts.x) +} + +type testStructP struct { + x int +} + +func (ts *testStructP) String() string { + return fmt.Sprintf("ts.%d", ts.x) +} + +func TestPrintSortedKeys(t *testing.T) { + cfg := spew.ConfigState{SortKeys: true} + s := cfg.Sprint(map[int]string{1: "1", 3: "3", 2: "2"}) + expected := "map[1:1 2:2 3:3]" + if s != expected { + t.Errorf("Sorted keys mismatch 1:\n %v %v", s, expected) + } + + s = cfg.Sprint(map[stringer]int{"1": 1, "3": 3, "2": 2}) + expected = "map[stringer 1:1 stringer 2:2 stringer 3:3]" + if s != expected { + t.Errorf("Sorted keys mismatch 2:\n %v %v", s, expected) + } + + s = cfg.Sprint(map[pstringer]int{pstringer("1"): 1, pstringer("3"): 3, pstringer("2"): 2}) + expected = "map[stringer 1:1 stringer 2:2 stringer 3:3]" + if spew.UnsafeDisabled { + expected = "map[1:1 2:2 3:3]" + } + if s != expected { + t.Errorf("Sorted keys mismatch 3:\n %v %v", s, expected) + } + + s = cfg.Sprint(map[testStruct]int{testStruct{1}: 1, testStruct{3}: 3, testStruct{2}: 2}) + expected = "map[ts.1:1 ts.2:2 ts.3:3]" + if s != expected { + t.Errorf("Sorted keys mismatch 4:\n %v %v", s, expected) + } + + if !spew.UnsafeDisabled { + s = cfg.Sprint(map[testStructP]int{testStructP{1}: 1, testStructP{3}: 3, testStructP{2}: 2}) + expected = "map[ts.1:1 ts.2:2 ts.3:3]" + if s != expected { + t.Errorf("Sorted keys mismatch 5:\n %v %v", s, expected) + } + } + + s = cfg.Sprint(map[customError]int{customError(1): 1, customError(3): 3, customError(2): 2}) + expected = "map[error: 1:1 error: 2:2 error: 3:3]" + if s != expected { + t.Errorf("Sorted keys mismatch 6:\n %v %v", s, expected) + } +} diff --git a/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/internal_test.go b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/internal_test.go new file mode 100644 index 000000000..1069ee21c --- /dev/null +++ b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/internal_test.go @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2013 Dave Collins <dave@davec.name> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* +This test file is part of the spew package rather than than the spew_test +package because it needs access to internals to properly test certain cases +which are not possible via the public interface since they should never happen. +*/ + +package spew + +import ( + "bytes" + "reflect" + "testing" +) + +// dummyFmtState implements a fake fmt.State to use for testing invalid +// reflect.Value handling. This is necessary because the fmt package catches +// invalid values before invoking the formatter on them. +type dummyFmtState struct { + bytes.Buffer +} + +func (dfs *dummyFmtState) Flag(f int) bool { + if f == int('+') { + return true + } + return false +} + +func (dfs *dummyFmtState) Precision() (int, bool) { + return 0, false +} + +func (dfs *dummyFmtState) Width() (int, bool) { + return 0, false +} + +// TestInvalidReflectValue ensures the dump and formatter code handles an +// invalid reflect value properly. This needs access to internal state since it +// should never happen in real code and therefore can't be tested via the public +// API. +func TestInvalidReflectValue(t *testing.T) { + i := 1 + + // Dump invalid reflect value. + v := new(reflect.Value) + buf := new(bytes.Buffer) + d := dumpState{w: buf, cs: &Config} + d.dump(*v) + s := buf.String() + want := "<invalid>" + if s != want { + t.Errorf("InvalidReflectValue #%d\n got: %s want: %s", i, s, want) + } + i++ + + // Formatter invalid reflect value. + buf2 := new(dummyFmtState) + f := formatState{value: *v, cs: &Config, fs: buf2} + f.format(*v) + s = buf2.String() + want = "<invalid>" + if s != want { + t.Errorf("InvalidReflectValue #%d got: %s want: %s", i, s, want) + } +} + +// SortValues makes the internal sortValues function available to the test +// package. +func SortValues(values []reflect.Value, cs *ConfigState) { + sortValues(values, cs) +} diff --git a/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/internalunsafe_test.go b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/internalunsafe_test.go new file mode 100644 index 000000000..83e070e9a --- /dev/null +++ b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/internalunsafe_test.go @@ -0,0 +1,101 @@ +// Copyright (c) 2013-2015 Dave Collins <dave@davec.name> + +// Permission to use, copy, modify, and distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. + +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +// NOTE: Due to the following build constraints, this file will only be compiled +// when the code is not running on Google App Engine and "-tags disableunsafe" +// is not added to the go build command line. +// +build !appengine,!disableunsafe + +/* +This test file is part of the spew package rather than than the spew_test +package because it needs access to internals to properly test certain cases +which are not possible via the public interface since they should never happen. +*/ + +package spew + +import ( + "bytes" + "reflect" + "testing" + "unsafe" +) + +// changeKind uses unsafe to intentionally change the kind of a reflect.Value to +// the maximum kind value which does not exist. This is needed to test the +// fallback code which punts to the standard fmt library for new types that +// might get added to the language. +func changeKind(v *reflect.Value, readOnly bool) { + rvf := (*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(v)) + offsetFlag)) + *rvf = *rvf | ((1<<flagKindWidth - 1) << flagKindShift) + if readOnly { + *rvf |= flagRO + } else { + *rvf &= ^uintptr(flagRO) + } +} + +// TestAddedReflectValue tests functionaly of the dump and formatter code which +// falls back to the standard fmt library for new types that might get added to +// the language. +func TestAddedReflectValue(t *testing.T) { + i := 1 + + // Dump using a reflect.Value that is exported. + v := reflect.ValueOf(int8(5)) + changeKind(&v, false) + buf := new(bytes.Buffer) + d := dumpState{w: buf, cs: &Config} + d.dump(v) + s := buf.String() + want := "(int8) 5" + if s != want { + t.Errorf("TestAddedReflectValue #%d\n got: %s want: %s", i, s, want) + } + i++ + + // Dump using a reflect.Value that is not exported. + changeKind(&v, true) + buf.Reset() + d.dump(v) + s = buf.String() + want = "(int8) <int8 Value>" + if s != want { + t.Errorf("TestAddedReflectValue #%d\n got: %s want: %s", i, s, want) + } + i++ + + // Formatter using a reflect.Value that is exported. + changeKind(&v, false) + buf2 := new(dummyFmtState) + f := formatState{value: v, cs: &Config, fs: buf2} + f.format(v) + s = buf2.String() + want = "5" + if s != want { + t.Errorf("TestAddedReflectValue #%d got: %s want: %s", i, s, want) + } + i++ + + // Formatter using a reflect.Value that is not exported. + changeKind(&v, true) + buf2.Reset() + f = formatState{value: v, cs: &Config, fs: buf2} + f.format(v) + s = buf2.String() + want = "<int8 Value>" + if s != want { + t.Errorf("TestAddedReflectValue #%d got: %s want: %s", i, s, want) + } +} diff --git a/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/spew.go b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/spew.go new file mode 100644 index 000000000..d8233f542 --- /dev/null +++ b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/spew.go @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2013 Dave Collins <dave@davec.name> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +package spew + +import ( + "fmt" + "io" +) + +// Errorf is a wrapper for fmt.Errorf that treats each argument as if it were +// passed with a default Formatter interface returned by NewFormatter. It +// returns the formatted string as a value that satisfies error. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Errorf(format, spew.NewFormatter(a), spew.NewFormatter(b)) +func Errorf(format string, a ...interface{}) (err error) { + return fmt.Errorf(format, convertArgs(a)...) +} + +// Fprint is a wrapper for fmt.Fprint that treats each argument as if it were +// passed with a default Formatter interface returned by NewFormatter. It +// returns the number of bytes written and any write error encountered. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Fprint(w, spew.NewFormatter(a), spew.NewFormatter(b)) +func Fprint(w io.Writer, a ...interface{}) (n int, err error) { + return fmt.Fprint(w, convertArgs(a)...) +} + +// Fprintf is a wrapper for fmt.Fprintf that treats each argument as if it were +// passed with a default Formatter interface returned by NewFormatter. It +// returns the number of bytes written and any write error encountered. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Fprintf(w, format, spew.NewFormatter(a), spew.NewFormatter(b)) +func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) { + return fmt.Fprintf(w, format, convertArgs(a)...) +} + +// Fprintln is a wrapper for fmt.Fprintln that treats each argument as if it +// passed with a default Formatter interface returned by NewFormatter. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Fprintln(w, spew.NewFormatter(a), spew.NewFormatter(b)) +func Fprintln(w io.Writer, a ...interface{}) (n int, err error) { + return fmt.Fprintln(w, convertArgs(a)...) +} + +// Print is a wrapper for fmt.Print that treats each argument as if it were +// passed with a default Formatter interface returned by NewFormatter. It +// returns the number of bytes written and any write error encountered. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Print(spew.NewFormatter(a), spew.NewFormatter(b)) +func Print(a ...interface{}) (n int, err error) { + return fmt.Print(convertArgs(a)...) +} + +// Printf is a wrapper for fmt.Printf that treats each argument as if it were +// passed with a default Formatter interface returned by NewFormatter. It +// returns the number of bytes written and any write error encountered. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Printf(format, spew.NewFormatter(a), spew.NewFormatter(b)) +func Printf(format string, a ...interface{}) (n int, err error) { + return fmt.Printf(format, convertArgs(a)...) +} + +// Println is a wrapper for fmt.Println that treats each argument as if it were +// passed with a default Formatter interface returned by NewFormatter. It +// returns the number of bytes written and any write error encountered. See +// NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Println(spew.NewFormatter(a), spew.NewFormatter(b)) +func Println(a ...interface{}) (n int, err error) { + return fmt.Println(convertArgs(a)...) +} + +// Sprint is a wrapper for fmt.Sprint that treats each argument as if it were +// passed with a default Formatter interface returned by NewFormatter. It +// returns the resulting string. See NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Sprint(spew.NewFormatter(a), spew.NewFormatter(b)) +func Sprint(a ...interface{}) string { + return fmt.Sprint(convertArgs(a)...) +} + +// Sprintf is a wrapper for fmt.Sprintf that treats each argument as if it were +// passed with a default Formatter interface returned by NewFormatter. It +// returns the resulting string. See NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Sprintf(format, spew.NewFormatter(a), spew.NewFormatter(b)) +func Sprintf(format string, a ...interface{}) string { + return fmt.Sprintf(format, convertArgs(a)...) +} + +// Sprintln is a wrapper for fmt.Sprintln that treats each argument as if it +// were passed with a default Formatter interface returned by NewFormatter. It +// returns the resulting string. See NewFormatter for formatting details. +// +// This function is shorthand for the following syntax: +// +// fmt.Sprintln(spew.NewFormatter(a), spew.NewFormatter(b)) +func Sprintln(a ...interface{}) string { + return fmt.Sprintln(convertArgs(a)...) +} + +// convertArgs accepts a slice of arguments and returns a slice of the same +// length with each argument converted to a default spew Formatter interface. +func convertArgs(args []interface{}) (formatters []interface{}) { + formatters = make([]interface{}, len(args)) + for index, arg := range args { + formatters[index] = NewFormatter(arg) + } + return formatters +} diff --git a/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/spew_test.go b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/spew_test.go new file mode 100644 index 000000000..dbbc08567 --- /dev/null +++ b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/spew_test.go @@ -0,0 +1,309 @@ +/* + * Copyright (c) 2013 Dave Collins <dave@davec.name> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +package spew_test + +import ( + "bytes" + "fmt" + "io/ioutil" + "os" + "testing" + + "github.com/davecgh/go-spew/spew" +) + +// spewFunc is used to identify which public function of the spew package or +// ConfigState a test applies to. +type spewFunc int + +const ( + fCSFdump spewFunc = iota + fCSFprint + fCSFprintf + fCSFprintln + fCSPrint + fCSPrintln + fCSSdump + fCSSprint + fCSSprintf + fCSSprintln + fCSErrorf + fCSNewFormatter + fErrorf + fFprint + fFprintln + fPrint + fPrintln + fSdump + fSprint + fSprintf + fSprintln +) + +// Map of spewFunc values to names for pretty printing. +var spewFuncStrings = map[spewFunc]string{ + fCSFdump: "ConfigState.Fdump", + fCSFprint: "ConfigState.Fprint", + fCSFprintf: "ConfigState.Fprintf", + fCSFprintln: "ConfigState.Fprintln", + fCSSdump: "ConfigState.Sdump", + fCSPrint: "ConfigState.Print", + fCSPrintln: "ConfigState.Println", + fCSSprint: "ConfigState.Sprint", + fCSSprintf: "ConfigState.Sprintf", + fCSSprintln: "ConfigState.Sprintln", + fCSErrorf: "ConfigState.Errorf", + fCSNewFormatter: "ConfigState.NewFormatter", + fErrorf: "spew.Errorf", + fFprint: "spew.Fprint", + fFprintln: "spew.Fprintln", + fPrint: "spew.Print", + fPrintln: "spew.Println", + fSdump: "spew.Sdump", + fSprint: "spew.Sprint", + fSprintf: "spew.Sprintf", + fSprintln: "spew.Sprintln", +} + +func (f spewFunc) String() string { + if s, ok := spewFuncStrings[f]; ok { + return s + } + return fmt.Sprintf("Unknown spewFunc (%d)", int(f)) +} + +// spewTest is used to describe a test to be performed against the public +// functions of the spew package or ConfigState. +type spewTest struct { + cs *spew.ConfigState + f spewFunc + format string + in interface{} + want string +} + +// spewTests houses the tests to be performed against the public functions of +// the spew package and ConfigState. +// +// These tests are only intended to ensure the public functions are exercised +// and are intentionally not exhaustive of types. The exhaustive type +// tests are handled in the dump and format tests. +var spewTests []spewTest + +// redirStdout is a helper function to return the standard output from f as a +// byte slice. +func redirStdout(f func()) ([]byte, error) { + tempFile, err := ioutil.TempFile("", "ss-test") + if err != nil { + return nil, err + } + fileName := tempFile.Name() + defer os.Remove(fileName) // Ignore error + + origStdout := os.Stdout + os.Stdout = tempFile + f() + os.Stdout = origStdout + tempFile.Close() + + return ioutil.ReadFile(fileName) +} + +func initSpewTests() { + // Config states with various settings. + scsDefault := spew.NewDefaultConfig() + scsNoMethods := &spew.ConfigState{Indent: " ", DisableMethods: true} + scsNoPmethods := &spew.ConfigState{Indent: " ", DisablePointerMethods: true} + scsMaxDepth := &spew.ConfigState{Indent: " ", MaxDepth: 1} + scsContinue := &spew.ConfigState{Indent: " ", ContinueOnMethod: true} + + // Variables for tests on types which implement Stringer interface with and + // without a pointer receiver. + ts := stringer("test") + tps := pstringer("test") + + // depthTester is used to test max depth handling for structs, array, slices + // and maps. + type depthTester struct { + ic indirCir1 + arr [1]string + slice []string + m map[string]int + } + dt := depthTester{indirCir1{nil}, [1]string{"arr"}, []string{"slice"}, + map[string]int{"one": 1}} + + // Variable for tests on types which implement error interface. + te := customError(10) + + spewTests = []spewTest{ + {scsDefault, fCSFdump, "", int8(127), "(int8) 127\n"}, + {scsDefault, fCSFprint, "", int16(32767), "32767"}, + {scsDefault, fCSFprintf, "%v", int32(2147483647), "2147483647"}, + {scsDefault, fCSFprintln, "", int(2147483647), "2147483647\n"}, + {scsDefault, fCSPrint, "", int64(9223372036854775807), "9223372036854775807"}, + {scsDefault, fCSPrintln, "", uint8(255), "255\n"}, + {scsDefault, fCSSdump, "", uint8(64), "(uint8) 64\n"}, + {scsDefault, fCSSprint, "", complex(1, 2), "(1+2i)"}, + {scsDefault, fCSSprintf, "%v", complex(float32(3), 4), "(3+4i)"}, + {scsDefault, fCSSprintln, "", complex(float64(5), 6), "(5+6i)\n"}, + {scsDefault, fCSErrorf, "%#v", uint16(65535), "(uint16)65535"}, + {scsDefault, fCSNewFormatter, "%v", uint32(4294967295), "4294967295"}, + {scsDefault, fErrorf, "%v", uint64(18446744073709551615), "18446744073709551615"}, + {scsDefault, fFprint, "", float32(3.14), "3.14"}, + {scsDefault, fFprintln, "", float64(6.28), "6.28\n"}, + {scsDefault, fPrint, "", true, "true"}, + {scsDefault, fPrintln, "", false, "false\n"}, + {scsDefault, fSdump, "", complex(-10, -20), "(complex128) (-10-20i)\n"}, + {scsDefault, fSprint, "", complex(-1, -2), "(-1-2i)"}, + {scsDefault, fSprintf, "%v", complex(float32(-3), -4), "(-3-4i)"}, + {scsDefault, fSprintln, "", complex(float64(-5), -6), "(-5-6i)\n"}, + {scsNoMethods, fCSFprint, "", ts, "test"}, + {scsNoMethods, fCSFprint, "", &ts, "<*>test"}, + {scsNoMethods, fCSFprint, "", tps, "test"}, + {scsNoMethods, fCSFprint, "", &tps, "<*>test"}, + {scsNoPmethods, fCSFprint, "", ts, "stringer test"}, + {scsNoPmethods, fCSFprint, "", &ts, "<*>stringer test"}, + {scsNoPmethods, fCSFprint, "", tps, "test"}, + {scsNoPmethods, fCSFprint, "", &tps, "<*>stringer test"}, + {scsMaxDepth, fCSFprint, "", dt, "{{<max>} [<max>] [<max>] map[<max>]}"}, + {scsMaxDepth, fCSFdump, "", dt, "(spew_test.depthTester) {\n" + + " ic: (spew_test.indirCir1) {\n <max depth reached>\n },\n" + + " arr: ([1]string) (len=1 cap=1) {\n <max depth reached>\n },\n" + + " slice: ([]string) (len=1 cap=1) {\n <max depth reached>\n },\n" + + " m: (map[string]int) (len=1) {\n <max depth reached>\n }\n}\n"}, + {scsContinue, fCSFprint, "", ts, "(stringer test) test"}, + {scsContinue, fCSFdump, "", ts, "(spew_test.stringer) " + + "(len=4) (stringer test) \"test\"\n"}, + {scsContinue, fCSFprint, "", te, "(error: 10) 10"}, + {scsContinue, fCSFdump, "", te, "(spew_test.customError) " + + "(error: 10) 10\n"}, + } +} + +// TestSpew executes all of the tests described by spewTests. +func TestSpew(t *testing.T) { + initSpewTests() + + t.Logf("Running %d tests", len(spewTests)) + for i, test := range spewTests { + buf := new(bytes.Buffer) + switch test.f { + case fCSFdump: + test.cs.Fdump(buf, test.in) + + case fCSFprint: + test.cs.Fprint(buf, test.in) + + case fCSFprintf: + test.cs.Fprintf(buf, test.format, test.in) + + case fCSFprintln: + test.cs.Fprintln(buf, test.in) + + case fCSPrint: + b, err := redirStdout(func() { test.cs.Print(test.in) }) + if err != nil { + t.Errorf("%v #%d %v", test.f, i, err) + continue + } + buf.Write(b) + + case fCSPrintln: + b, err := redirStdout(func() { test.cs.Println(test.in) }) + if err != nil { + t.Errorf("%v #%d %v", test.f, i, err) + continue + } + buf.Write(b) + + case fCSSdump: + str := test.cs.Sdump(test.in) + buf.WriteString(str) + + case fCSSprint: + str := test.cs.Sprint(test.in) + buf.WriteString(str) + + case fCSSprintf: + str := test.cs.Sprintf(test.format, test.in) + buf.WriteString(str) + + case fCSSprintln: + str := test.cs.Sprintln(test.in) + buf.WriteString(str) + + case fCSErrorf: + err := test.cs.Errorf(test.format, test.in) + buf.WriteString(err.Error()) + + case fCSNewFormatter: + fmt.Fprintf(buf, test.format, test.cs.NewFormatter(test.in)) + + case fErrorf: + err := spew.Errorf(test.format, test.in) + buf.WriteString(err.Error()) + + case fFprint: + spew.Fprint(buf, test.in) + + case fFprintln: + spew.Fprintln(buf, test.in) + + case fPrint: + b, err := redirStdout(func() { spew.Print(test.in) }) + if err != nil { + t.Errorf("%v #%d %v", test.f, i, err) + continue + } + buf.Write(b) + + case fPrintln: + b, err := redirStdout(func() { spew.Println(test.in) }) + if err != nil { + t.Errorf("%v #%d %v", test.f, i, err) + continue + } + buf.Write(b) + + case fSdump: + str := spew.Sdump(test.in) + buf.WriteString(str) + + case fSprint: + str := spew.Sprint(test.in) + buf.WriteString(str) + + case fSprintf: + str := spew.Sprintf(test.format, test.in) + buf.WriteString(str) + + case fSprintln: + str := spew.Sprintln(test.in) + buf.WriteString(str) + + default: + t.Errorf("%v #%d unrecognized function", test.f, i) + continue + } + s := buf.String() + if test.want != s { + t.Errorf("ConfigState #%d\n got: %s want: %s", i, s, test.want) + continue + } + } +} diff --git a/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/testdata/dumpcgo.go b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/testdata/dumpcgo.go new file mode 100644 index 000000000..5c87dd456 --- /dev/null +++ b/Godeps/_workspace/src/github.com/davecgh/go-spew/spew/testdata/dumpcgo.go @@ -0,0 +1,82 @@ +// Copyright (c) 2013 Dave Collins <dave@davec.name> +// +// Permission to use, copy, modify, and distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +// NOTE: Due to the following build constraints, this file will only be compiled +// when both cgo is supported and "-tags testcgo" is added to the go test +// command line. This code should really only be in the dumpcgo_test.go file, +// but unfortunately Go will not allow cgo in test files, so this is a +// workaround to allow cgo types to be tested. This configuration is used +// because spew itself does not require cgo to run even though it does handle +// certain cgo types specially. Rather than forcing all clients to require cgo +// and an external C compiler just to run the tests, this scheme makes them +// optional. +// +build cgo,testcgo + +package testdata + +/* +#include <stdint.h> +typedef unsigned char custom_uchar_t; + +char *ncp = 0; +char *cp = "test"; +char ca[6] = {'t', 'e', 's', 't', '2', '\0'}; +unsigned char uca[6] = {'t', 'e', 's', 't', '3', '\0'}; +signed char sca[6] = {'t', 'e', 's', 't', '4', '\0'}; +uint8_t ui8ta[6] = {'t', 'e', 's', 't', '5', '\0'}; +custom_uchar_t tuca[6] = {'t', 'e', 's', 't', '6', '\0'}; +*/ +import "C" + +// GetCgoNullCharPointer returns a null char pointer via cgo. This is only +// used for tests. +func GetCgoNullCharPointer() interface{} { + return C.ncp +} + +// GetCgoCharPointer returns a char pointer via cgo. This is only used for +// tests. +func GetCgoCharPointer() interface{} { + return C.cp +} + +// GetCgoCharArray returns a char array via cgo and the array's len and cap. +// This is only used for tests. +func GetCgoCharArray() (interface{}, int, int) { + return C.ca, len(C.ca), cap(C.ca) +} + +// GetCgoUnsignedCharArray returns an unsigned char array via cgo and the +// array's len and cap. This is only used for tests. +func GetCgoUnsignedCharArray() (interface{}, int, int) { + return C.uca, len(C.uca), cap(C.uca) +} + +// GetCgoSignedCharArray returns a signed char array via cgo and the array's len +// and cap. This is only used for tests. +func GetCgoSignedCharArray() (interface{}, int, int) { + return C.sca, len(C.sca), cap(C.sca) +} + +// GetCgoUint8tArray returns a uint8_t array via cgo and the array's len and +// cap. This is only used for tests. +func GetCgoUint8tArray() (interface{}, int, int) { + return C.ui8ta, len(C.ui8ta), cap(C.ui8ta) +} + +// GetCgoTypdefedUnsignedCharArray returns a typedefed unsigned char array via +// cgo and the array's len and cap. This is only used for tests. +func GetCgoTypdefedUnsignedCharArray() (interface{}, int, int) { + return C.tuca, len(C.tuca), cap(C.tuca) +} diff --git a/Godeps/_workspace/src/github.com/disintegration/imaging/README.md b/Godeps/_workspace/src/github.com/disintegration/imaging/README.md index 16ac8cf6c..25d836cef 100644 --- a/Godeps/_workspace/src/github.com/disintegration/imaging/README.md +++ b/Godeps/_workspace/src/github.com/disintegration/imaging/README.md @@ -32,8 +32,8 @@ dstImage800 := imaging.Resize(srcImage, 800, 0, imaging.Lanczos) // scale down srcImage to fit the 800x600px bounding box
dstImageFit := imaging.Fit(srcImage, 800, 600, imaging.Lanczos)
-// resize and crop the srcImage to make a 100x100px thumbnail
-dstImageThumb := imaging.Thumbnail(srcImage, 100, 100, imaging.Lanczos)
+// resize and crop the srcImage to fill the 100x100px area
+dstImageFill := imaging.Fill(srcImage, 100, 100, imaging.Center, imaging.Lanczos)
```
Imaging supports image resizing using various resampling filters. The most notable ones:
@@ -63,6 +63,40 @@ Filter | Resize result `imaging.Gaussian` | ![dstImage](http://disintegration.github.io/imaging/out_resize_down_gaussian.png)
`imaging.Lanczos` | ![dstImage](http://disintegration.github.io/imaging/out_resize_down_lanczos.png)
+**Resize functions comparison**
+
+Original image:
+
+![srcImage](http://disintegration.github.io/imaging/in.jpg)
+
+Resize the image to width=100px and height=100px:
+
+```go
+dstImage := imaging.Resize(srcImage, 100, 100, imaging.Lanczos)
+```
+![dstImage](http://disintegration.github.io/imaging/out-comp-resize.jpg)
+
+Resize the image to width=100px preserving the aspect ratio:
+
+```go
+dstImage := imaging.Resize(srcImage, 100, 0, imaging.Lanczos)
+```
+![dstImage](http://disintegration.github.io/imaging/out-comp-fit.jpg)
+
+Resize the image to fit the 100x100px boundng box preserving the aspect ratio:
+
+```go
+dstImage := imaging.Fit(srcImage, 100, 100, imaging.Lanczos)
+```
+![dstImage](http://disintegration.github.io/imaging/out-comp-fit.jpg)
+
+Resize and crop the image with a center anchor point to fill the 100x100px area:
+
+```go
+dstImage := imaging.Fill(srcImage, 100, 100, imaging.Center, imaging.Lanczos)
+```
+![dstImage](http://disintegration.github.io/imaging/out-comp-fill.jpg)
+
### Gaussian Blur
```go
dstImage := imaging.Blur(srcImage, 0.5)
diff --git a/Godeps/_workspace/src/github.com/disintegration/imaging/adjust_test.go b/Godeps/_workspace/src/github.com/disintegration/imaging/adjust_test.go new file mode 100644 index 000000000..99898b0dc --- /dev/null +++ b/Godeps/_workspace/src/github.com/disintegration/imaging/adjust_test.go @@ -0,0 +1,504 @@ +package imaging + +import ( + "image" + "testing" +) + +func TestGrayscale(t *testing.T) { + td := []struct { + desc string + src image.Image + want *image.NRGBA + }{ + { + "Grayscale 3x3", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 2, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0xcc, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x00, 0xcc, 0x03, + 0x11, 0x22, 0x33, 0xff, 0x33, 0x22, 0x11, 0xff, 0xaa, 0x33, 0xbb, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 3), + Stride: 3 * 4, + Pix: []uint8{ + 0x3d, 0x3d, 0x3d, 0x01, 0x78, 0x78, 0x78, 0x02, 0x17, 0x17, 0x17, 0x03, + 0x1f, 0x1f, 0x1f, 0xff, 0x25, 0x25, 0x25, 0xff, 0x66, 0x66, 0x66, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + }, + } + for _, d := range td { + got := Grayscale(d.src) + want := d.want + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} + +func TestInvert(t *testing.T) { + td := []struct { + desc string + src image.Image + want *image.NRGBA + }{ + { + "Invert 3x3", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 2, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0xcc, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x00, 0xcc, 0x03, + 0x11, 0x22, 0x33, 0xff, 0x33, 0x22, 0x11, 0xff, 0xaa, 0x33, 0xbb, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 3), + Stride: 3 * 4, + Pix: []uint8{ + 0x33, 0xff, 0xff, 0x01, 0xff, 0x33, 0xff, 0x02, 0xff, 0xff, 0x33, 0x03, + 0xee, 0xdd, 0xcc, 0xff, 0xcc, 0xdd, 0xee, 0xff, 0x55, 0xcc, 0x44, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0x00, 0x00, 0x00, 0xff, + }, + }, + }, + } + for _, d := range td { + got := Invert(d.src) + want := d.want + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} + +func TestAdjustContrast(t *testing.T) { + td := []struct { + desc string + src image.Image + p float64 + want *image.NRGBA + }{ + { + "AdjustContrast 3x3 10", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 2, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0xcc, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x00, 0xcc, 0x03, + 0x11, 0x22, 0x33, 0xff, 0x33, 0x22, 0x11, 0xff, 0xaa, 0x33, 0xbb, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + 10, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 3), + Stride: 3 * 4, + Pix: []uint8{ + 0xd5, 0x00, 0x00, 0x01, 0x00, 0xd5, 0x00, 0x02, 0x00, 0x00, 0xd5, 0x03, + 0x05, 0x18, 0x2b, 0xff, 0x2b, 0x18, 0x05, 0xff, 0xaf, 0x2b, 0xc2, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + }, + { + "AdjustContrast 3x3 100", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 2, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0xcc, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x00, 0xcc, 0x03, + 0x11, 0x22, 0x33, 0xff, 0x33, 0x22, 0x11, 0xff, 0xaa, 0x33, 0xbb, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + 100, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 3), + Stride: 3 * 4, + Pix: []uint8{ + 0xff, 0x00, 0x00, 0x01, 0x00, 0xff, 0x00, 0x02, 0x00, 0x00, 0xff, 0x03, + 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + }, + { + "AdjustContrast 3x3 -10", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 2, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0xcc, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x00, 0xcc, 0x03, + 0x11, 0x22, 0x33, 0xff, 0x33, 0x22, 0x11, 0xff, 0xaa, 0x33, 0xbb, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + -10, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 3), + Stride: 3 * 4, + Pix: []uint8{ + 0xc4, 0x0d, 0x0d, 0x01, 0x0d, 0xc4, 0x0d, 0x02, 0x0d, 0x0d, 0xc4, 0x03, + 0x1c, 0x2b, 0x3b, 0xff, 0x3b, 0x2b, 0x1c, 0xff, 0xa6, 0x3b, 0xb5, 0xff, + 0x0d, 0x0d, 0x0d, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0xf2, 0xf2, 0xf2, 0xff, + }, + }, + }, + { + "AdjustContrast 3x3 -100", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 2, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0xcc, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x00, 0xcc, 0x03, + 0x11, 0x22, 0x33, 0xff, 0x33, 0x22, 0x11, 0xff, 0xaa, 0x33, 0xbb, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + -100, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 3), + Stride: 3 * 4, + Pix: []uint8{ + 0x80, 0x80, 0x80, 0x01, 0x80, 0x80, 0x80, 0x02, 0x80, 0x80, 0x80, 0x03, + 0x80, 0x80, 0x80, 0xff, 0x80, 0x80, 0x80, 0xff, 0x80, 0x80, 0x80, 0xff, + 0x80, 0x80, 0x80, 0xff, 0x80, 0x80, 0x80, 0xff, 0x80, 0x80, 0x80, 0xff, + }, + }, + }, + { + "AdjustContrast 3x3 0", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 2, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0xcc, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x00, 0xcc, 0x03, + 0x11, 0x22, 0x33, 0xff, 0x33, 0x22, 0x11, 0xff, 0xaa, 0x33, 0xbb, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + 0, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 3), + Stride: 3 * 4, + Pix: []uint8{ + 0xcc, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x00, 0xcc, 0x03, + 0x11, 0x22, 0x33, 0xff, 0x33, 0x22, 0x11, 0xff, 0xaa, 0x33, 0xbb, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + }, + } + for _, d := range td { + got := AdjustContrast(d.src, d.p) + want := d.want + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} + +func TestAdjustBrightness(t *testing.T) { + td := []struct { + desc string + src image.Image + p float64 + want *image.NRGBA + }{ + { + "AdjustBrightness 3x3 10", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 2, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0xcc, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x00, 0xcc, 0x03, + 0x11, 0x22, 0x33, 0xff, 0x33, 0x22, 0x11, 0xff, 0xaa, 0x33, 0xbb, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + 10, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 3), + Stride: 3 * 4, + Pix: []uint8{ + 0xe6, 0x1a, 0x1a, 0x01, 0x1a, 0xe6, 0x1a, 0x02, 0x1a, 0x1a, 0xe6, 0x03, + 0x2b, 0x3c, 0x4d, 0xff, 0x4d, 0x3c, 0x2b, 0xff, 0xc4, 0x4d, 0xd5, 0xff, + 0x1a, 0x1a, 0x1a, 0xff, 0x4d, 0x4d, 0x4d, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + }, + { + "AdjustBrightness 3x3 100", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 2, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0xcc, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x00, 0xcc, 0x03, + 0x11, 0x22, 0x33, 0xff, 0x33, 0x22, 0x11, 0xff, 0xaa, 0x33, 0xbb, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + 100, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 3), + Stride: 3 * 4, + Pix: []uint8{ + 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x02, 0xff, 0xff, 0xff, 0x03, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + }, + { + "AdjustBrightness 3x3 -10", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 2, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0xcc, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x00, 0xcc, 0x03, + 0x11, 0x22, 0x33, 0xff, 0x33, 0x22, 0x11, 0xff, 0xaa, 0x33, 0xbb, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + -10, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 3), + Stride: 3 * 4, + Pix: []uint8{ + 0xb3, 0x00, 0x00, 0x01, 0x00, 0xb3, 0x00, 0x02, 0x00, 0x00, 0xb3, 0x03, + 0x00, 0x09, 0x1a, 0xff, 0x1a, 0x09, 0x00, 0xff, 0x91, 0x1a, 0xa2, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x1a, 0x1a, 0x1a, 0xff, 0xe6, 0xe6, 0xe6, 0xff, + }, + }, + }, + { + "AdjustBrightness 3x3 -100", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 2, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0xcc, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x00, 0xcc, 0x03, + 0x11, 0x22, 0x33, 0xff, 0x33, 0x22, 0x11, 0xff, 0xaa, 0x33, 0xbb, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + -100, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 3), + Stride: 3 * 4, + Pix: []uint8{ + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, + }, + }, + }, + { + "AdjustBrightness 3x3 0", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 2, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0xcc, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x00, 0xcc, 0x03, + 0x11, 0x22, 0x33, 0xff, 0x33, 0x22, 0x11, 0xff, 0xaa, 0x33, 0xbb, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + 0, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 3), + Stride: 3 * 4, + Pix: []uint8{ + 0xcc, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x00, 0xcc, 0x03, + 0x11, 0x22, 0x33, 0xff, 0x33, 0x22, 0x11, 0xff, 0xaa, 0x33, 0xbb, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + }, + } + for _, d := range td { + got := AdjustBrightness(d.src, d.p) + want := d.want + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} + +func TestAdjustGamma(t *testing.T) { + td := []struct { + desc string + src image.Image + p float64 + want *image.NRGBA + }{ + { + "AdjustGamma 3x3 0.75", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 2, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0xcc, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x00, 0xcc, 0x03, + 0x11, 0x22, 0x33, 0xff, 0x33, 0x22, 0x11, 0xff, 0xaa, 0x33, 0xbb, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + 0.75, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 3), + Stride: 3 * 4, + Pix: []uint8{ + 0xbd, 0x00, 0x00, 0x01, 0x00, 0xbd, 0x00, 0x02, 0x00, 0x00, 0xbd, 0x03, + 0x07, 0x11, 0x1e, 0xff, 0x1e, 0x11, 0x07, 0xff, 0x95, 0x1e, 0xa9, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x1e, 0x1e, 0x1e, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + }, + { + "AdjustGamma 3x3 1.5", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 2, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0xcc, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x00, 0xcc, 0x03, + 0x11, 0x22, 0x33, 0xff, 0x33, 0x22, 0x11, 0xff, 0xaa, 0x33, 0xbb, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + 1.5, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 3), + Stride: 3 * 4, + Pix: []uint8{ + 0xdc, 0x00, 0x00, 0x01, 0x00, 0xdc, 0x00, 0x02, 0x00, 0x00, 0xdc, 0x03, + 0x2a, 0x43, 0x57, 0xff, 0x57, 0x43, 0x2a, 0xff, 0xc3, 0x57, 0xcf, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x57, 0x57, 0x57, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + }, + { + "AdjustGamma 3x3 1.0", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 2, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0xcc, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x00, 0xcc, 0x03, + 0x11, 0x22, 0x33, 0xff, 0x33, 0x22, 0x11, 0xff, 0xaa, 0x33, 0xbb, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + 1.0, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 3), + Stride: 3 * 4, + Pix: []uint8{ + 0xcc, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x00, 0xcc, 0x03, + 0x11, 0x22, 0x33, 0xff, 0x33, 0x22, 0x11, 0xff, 0xaa, 0x33, 0xbb, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + }, + } + for _, d := range td { + got := AdjustGamma(d.src, d.p) + want := d.want + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} + +func TestAdjustSigmoid(t *testing.T) { + td := []struct { + desc string + src image.Image + m float64 + p float64 + want *image.NRGBA + }{ + { + "AdjustSigmoid 3x3 0.5 3.0", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 2, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0xcc, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x00, 0xcc, 0x03, + 0x11, 0x22, 0x33, 0xff, 0x33, 0x22, 0x11, 0xff, 0xaa, 0x33, 0xbb, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + 0.5, + 3.0, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 3), + Stride: 3 * 4, + Pix: []uint8{ + 0xd4, 0x00, 0x00, 0x01, 0x00, 0xd4, 0x00, 0x02, 0x00, 0x00, 0xd4, 0x03, + 0x0d, 0x1b, 0x2b, 0xff, 0x2b, 0x1b, 0x0d, 0xff, 0xb1, 0x2b, 0xc3, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + }, + { + "AdjustSigmoid 3x3 0.5 -3.0", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 2, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0xcc, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x00, 0xcc, 0x03, + 0x11, 0x22, 0x33, 0xff, 0x33, 0x22, 0x11, 0xff, 0xaa, 0x33, 0xbb, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + 0.5, + -3.0, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 3), + Stride: 3 * 4, + Pix: []uint8{ + 0xc4, 0x00, 0x00, 0x01, 0x00, 0xc4, 0x00, 0x02, 0x00, 0x00, 0xc4, 0x03, + 0x16, 0x2a, 0x3b, 0xff, 0x3b, 0x2a, 0x16, 0xff, 0xa4, 0x3b, 0xb3, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + }, + { + "AdjustSigmoid 3x3 0.5 0.0", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 2, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0xcc, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x00, 0xcc, 0x03, + 0x11, 0x22, 0x33, 0xff, 0x33, 0x22, 0x11, 0xff, 0xaa, 0x33, 0xbb, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + 0.5, + 0.0, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 3), + Stride: 3 * 4, + Pix: []uint8{ + 0xcc, 0x00, 0x00, 0x01, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x00, 0xcc, 0x03, + 0x11, 0x22, 0x33, 0xff, 0x33, 0x22, 0x11, 0xff, 0xaa, 0x33, 0xbb, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x33, 0x33, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + }, + } + for _, d := range td { + got := AdjustSigmoid(d.src, d.m, d.p) + want := d.want + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} diff --git a/Godeps/_workspace/src/github.com/disintegration/imaging/effects_test.go b/Godeps/_workspace/src/github.com/disintegration/imaging/effects_test.go new file mode 100644 index 000000000..b7de0974c --- /dev/null +++ b/Godeps/_workspace/src/github.com/disintegration/imaging/effects_test.go @@ -0,0 +1,128 @@ +package imaging + +import ( + "image" + "testing" +) + +func TestBlur(t *testing.T) { + td := []struct { + desc string + src image.Image + sigma float64 + want *image.NRGBA + }{ + { + "Blur 3x3 0.5", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 2, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x66, 0xaa, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + }, + 0.5, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 3), + Stride: 3 * 4, + Pix: []uint8{ + 0x01, 0x02, 0x04, 0x04, 0x0a, 0x10, 0x18, 0x18, 0x01, 0x02, 0x04, 0x04, + 0x09, 0x10, 0x18, 0x18, 0x3f, 0x69, 0x9e, 0x9e, 0x09, 0x10, 0x18, 0x18, + 0x01, 0x02, 0x04, 0x04, 0x0a, 0x10, 0x18, 0x18, 0x01, 0x02, 0x04, 0x04, + }, + }, + }, + { + + "Blur 3x3 10", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 2, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x66, 0xaa, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + }, + 10, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 3), + Stride: 3 * 4, + Pix: []uint8{ + 0x0b, 0x13, 0x1c, 0x1c, 0x0b, 0x13, 0x1c, 0x1c, 0x0b, 0x13, 0x1c, 0x1c, + 0x0b, 0x13, 0x1c, 0x1c, 0x0b, 0x13, 0x1c, 0x1c, 0x0b, 0x13, 0x1c, 0x1c, + 0x0b, 0x13, 0x1c, 0x1c, 0x0b, 0x13, 0x1c, 0x1c, 0x0b, 0x13, 0x1c, 0x1c, + }, + }, + }, + } + for _, d := range td { + got := Blur(d.src, d.sigma) + want := d.want + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} + +func TestSharpen(t *testing.T) { + td := []struct { + desc string + src image.Image + sigma float64 + want *image.NRGBA + }{ + { + "Sharpen 3x3 0.5", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 2, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, + }, + }, + 0.5, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 3), + Stride: 3 * 4, + Pix: []uint8{ + 0x66, 0x66, 0x66, 0x66, 0x64, 0x64, 0x64, 0x64, 0x66, 0x66, 0x66, 0x66, + 0x64, 0x64, 0x64, 0x64, 0x7e, 0x7e, 0x7e, 0x7e, 0x64, 0x64, 0x64, 0x64, + 0x66, 0x66, 0x66, 0x66, 0x64, 0x64, 0x64, 0x64, 0x66, 0x66, 0x66, 0x66}, + }, + }, + { + + "Sharpen 3x3 10", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 2, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66}, + }, + 100, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 3), + Stride: 3 * 4, + Pix: []uint8{ + 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, + 0x64, 0x64, 0x64, 0x64, 0x86, 0x86, 0x86, 0x86, 0x64, 0x64, 0x64, 0x64, + 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, + }, + }, + }, + } + for _, d := range td { + got := Sharpen(d.src, d.sigma) + want := d.want + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} diff --git a/Godeps/_workspace/src/github.com/disintegration/imaging/helpers.go b/Godeps/_workspace/src/github.com/disintegration/imaging/helpers.go index 983b64d71..79967ae44 100644 --- a/Godeps/_workspace/src/github.com/disintegration/imaging/helpers.go +++ b/Godeps/_workspace/src/github.com/disintegration/imaging/helpers.go @@ -226,9 +226,13 @@ func Clone(img image.Image) *image.NRGBA { dst.Pix[di+1] = src.Pix[si+1] dst.Pix[di+2] = src.Pix[si+2] default: - dst.Pix[di+0] = uint8(uint16(src.Pix[si+0]) * 0xff / uint16(a)) - dst.Pix[di+1] = uint8(uint16(src.Pix[si+1]) * 0xff / uint16(a)) - dst.Pix[di+2] = uint8(uint16(src.Pix[si+2]) * 0xff / uint16(a)) + var tmp uint16 + tmp = uint16(src.Pix[si+0]) * 0xff / uint16(a) + dst.Pix[di+0] = uint8(tmp) + tmp = uint16(src.Pix[si+1]) * 0xff / uint16(a) + dst.Pix[di+1] = uint8(tmp) + tmp = uint16(src.Pix[si+2]) * 0xff / uint16(a) + dst.Pix[di+2] = uint8(tmp) } di += 4 @@ -257,9 +261,13 @@ func Clone(img image.Image) *image.NRGBA { dst.Pix[di+1] = src.Pix[si+2] dst.Pix[di+2] = src.Pix[si+4] default: - dst.Pix[di+0] = uint8(uint16(src.Pix[si+0]) * 0xff / uint16(a)) - dst.Pix[di+1] = uint8(uint16(src.Pix[si+2]) * 0xff / uint16(a)) - dst.Pix[di+2] = uint8(uint16(src.Pix[si+4]) * 0xff / uint16(a)) + var tmp uint16 + tmp = uint16(src.Pix[si+0]) * 0xff / uint16(a) + dst.Pix[di+0] = uint8(tmp) + tmp = uint16(src.Pix[si+2]) * 0xff / uint16(a) + dst.Pix[di+1] = uint8(tmp) + tmp = uint16(src.Pix[si+4]) * 0xff / uint16(a) + dst.Pix[di+2] = uint8(tmp) } di += 4 diff --git a/Godeps/_workspace/src/github.com/disintegration/imaging/helpers_test.go b/Godeps/_workspace/src/github.com/disintegration/imaging/helpers_test.go new file mode 100644 index 000000000..2d611a008 --- /dev/null +++ b/Godeps/_workspace/src/github.com/disintegration/imaging/helpers_test.go @@ -0,0 +1,361 @@ +package imaging + +import ( + "bytes" + "image" + "image/color" + "testing" +) + +func compareNRGBA(img1, img2 *image.NRGBA, delta int) bool { + if !img1.Rect.Eq(img2.Rect) { + return false + } + + if len(img1.Pix) != len(img2.Pix) { + return false + } + + for i := 0; i < len(img1.Pix); i++ { + if absint(int(img1.Pix[i])-int(img2.Pix[i])) > delta { + return false + } + } + + return true +} + +func TestEncodeDecode(t *testing.T) { + imgWithAlpha := image.NewNRGBA(image.Rect(0, 0, 3, 3)) + imgWithAlpha.Pix = []uint8{ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 244, 245, 246, 247, 248, 249, 250, 252, 252, 253, 254, 255, + } + + imgWithoutAlpha := image.NewNRGBA(image.Rect(0, 0, 3, 3)) + imgWithoutAlpha.Pix = []uint8{ + 0, 1, 2, 255, 4, 5, 6, 255, 8, 9, 10, 255, + 127, 128, 129, 255, 131, 132, 133, 255, 135, 136, 137, 255, + 244, 245, 246, 255, 248, 249, 250, 255, 252, 253, 254, 255, + } + + for _, format := range []Format{JPEG, PNG, GIF, BMP, TIFF} { + img := imgWithoutAlpha + if format == PNG { + img = imgWithAlpha + } + + buf := &bytes.Buffer{} + err := Encode(buf, img, format) + if err != nil { + t.Errorf("fail encoding format %s", format) + continue + } + + img2, err := Decode(buf) + if err != nil { + t.Errorf("fail decoding format %s", format) + continue + } + img2cloned := Clone(img2) + + delta := 0 + if format == JPEG { + delta = 3 + } else if format == GIF { + delta = 16 + } + + if !compareNRGBA(img, img2cloned, delta) { + t.Errorf("test [DecodeEncode %s] failed: %#v %#v", format, img, img2cloned) + continue + } + } + + buf := &bytes.Buffer{} + err := Encode(buf, imgWithAlpha, Format(100)) + if err != ErrUnsupportedFormat { + t.Errorf("expected ErrUnsupportedFormat") + } +} + +func TestNew(t *testing.T) { + td := []struct { + desc string + w, h int + c color.Color + dstBounds image.Rectangle + dstPix []uint8 + }{ + { + "New 1x1 black", + 1, 1, + color.NRGBA{0, 0, 0, 0}, + image.Rect(0, 0, 1, 1), + []uint8{0x00, 0x00, 0x00, 0x00}, + }, + { + "New 1x2 red", + 1, 2, + color.NRGBA{255, 0, 0, 255}, + image.Rect(0, 0, 1, 2), + []uint8{0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff}, + }, + { + "New 2x1 white", + 2, 1, + color.NRGBA{255, 255, 255, 255}, + image.Rect(0, 0, 2, 1), + []uint8{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + }, + } + + for _, d := range td { + got := New(d.w, d.h, d.c) + want := image.NewNRGBA(d.dstBounds) + want.Pix = d.dstPix + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} + +func TestClone(t *testing.T) { + td := []struct { + desc string + src image.Image + want *image.NRGBA + }{ + { + "Clone NRGBA", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 0, 1), + Stride: 1 * 4, + Pix: []uint8{0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff}, + }, + &image.NRGBA{ + Rect: image.Rect(0, 0, 1, 2), + Stride: 1 * 4, + Pix: []uint8{0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff}, + }, + }, + { + "Clone NRGBA64", + &image.NRGBA64{ + Rect: image.Rect(-1, -1, 0, 1), + Stride: 1 * 8, + Pix: []uint8{ + 0x00, 0x00, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, + 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, + }, + }, + &image.NRGBA{ + Rect: image.Rect(0, 0, 1, 2), + Stride: 1 * 4, + Pix: []uint8{0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff}, + }, + }, + { + "Clone RGBA", + &image.RGBA{ + Rect: image.Rect(-1, -1, 0, 1), + Stride: 1 * 4, + Pix: []uint8{0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff}, + }, + &image.NRGBA{ + Rect: image.Rect(0, 0, 1, 2), + Stride: 1 * 4, + Pix: []uint8{0x00, 0x55, 0xaa, 0x33, 0xcc, 0xdd, 0xee, 0xff}, + }, + }, + { + "Clone RGBA64", + &image.RGBA64{ + Rect: image.Rect(-1, -1, 0, 1), + Stride: 1 * 8, + Pix: []uint8{ + 0x00, 0x00, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, + 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, + }, + }, + &image.NRGBA{ + Rect: image.Rect(0, 0, 1, 2), + Stride: 1 * 4, + Pix: []uint8{0x00, 0x55, 0xaa, 0x33, 0xcc, 0xdd, 0xee, 0xff}, + }, + }, + { + "Clone Gray", + &image.Gray{ + Rect: image.Rect(-1, -1, 0, 1), + Stride: 1 * 1, + Pix: []uint8{0x11, 0xee}, + }, + &image.NRGBA{ + Rect: image.Rect(0, 0, 1, 2), + Stride: 1 * 4, + Pix: []uint8{0x11, 0x11, 0x11, 0xff, 0xee, 0xee, 0xee, 0xff}, + }, + }, + { + "Clone Gray16", + &image.Gray16{ + Rect: image.Rect(-1, -1, 0, 1), + Stride: 1 * 2, + Pix: []uint8{0x11, 0x11, 0xee, 0xee}, + }, + &image.NRGBA{ + Rect: image.Rect(0, 0, 1, 2), + Stride: 1 * 4, + Pix: []uint8{0x11, 0x11, 0x11, 0xff, 0xee, 0xee, 0xee, 0xff}, + }, + }, + { + "Clone Alpha", + &image.Alpha{ + Rect: image.Rect(-1, -1, 0, 1), + Stride: 1 * 1, + Pix: []uint8{0x11, 0xee}, + }, + &image.NRGBA{ + Rect: image.Rect(0, 0, 1, 2), + Stride: 1 * 4, + Pix: []uint8{0xff, 0xff, 0xff, 0x11, 0xff, 0xff, 0xff, 0xee}, + }, + }, + { + "Clone YCbCr", + &image.YCbCr{ + Rect: image.Rect(-1, -1, 5, 0), + SubsampleRatio: image.YCbCrSubsampleRatio444, + YStride: 6, + CStride: 6, + Y: []uint8{0x00, 0xff, 0x7f, 0x26, 0x4b, 0x0e}, + Cb: []uint8{0x80, 0x80, 0x80, 0x6b, 0x56, 0xc0}, + Cr: []uint8{0x80, 0x80, 0x80, 0xc0, 0x4b, 0x76}, + }, + &image.NRGBA{ + Rect: image.Rect(0, 0, 6, 1), + Stride: 6 * 4, + Pix: []uint8{ + 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, + 0x7f, 0x7f, 0x7f, 0xff, + 0x7f, 0x00, 0x00, 0xff, + 0x00, 0x7f, 0x00, 0xff, + 0x00, 0x00, 0x7f, 0xff, + }, + }, + }, + { + "Clone YCbCr 444", + &image.YCbCr{ + Y: []uint8{0x4c, 0x69, 0x1d, 0xb1, 0x96, 0xe2, 0x26, 0x34, 0xe, 0x59, 0x4b, 0x71, 0x0, 0x4c, 0x99, 0xff}, + Cb: []uint8{0x55, 0xd4, 0xff, 0x8e, 0x2c, 0x01, 0x6b, 0xaa, 0xc0, 0x95, 0x56, 0x40, 0x80, 0x80, 0x80, 0x80}, + Cr: []uint8{0xff, 0xeb, 0x6b, 0x36, 0x15, 0x95, 0xc0, 0xb5, 0x76, 0x41, 0x4b, 0x8c, 0x80, 0x80, 0x80, 0x80}, + YStride: 4, + CStride: 4, + SubsampleRatio: image.YCbCrSubsampleRatio444, + Rect: image.Rectangle{Min: image.Point{X: 0, Y: 0}, Max: image.Point{X: 4, Y: 4}}, + }, + &image.NRGBA{ + Pix: []uint8{0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x49, 0xe1, 0xca, 0xff, 0x0, 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0xff, 0x7f, 0x0, 0x0, 0xff, 0x7f, 0x0, 0x7f, 0xff, 0x0, 0x0, 0x7f, 0xff, 0x0, 0x7f, 0x7f, 0xff, 0x0, 0x7f, 0x0, 0xff, 0x82, 0x7f, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x99, 0x99, 0x99, 0xff, 0xff, 0xff, 0xff, 0xff}, + Stride: 16, + Rect: image.Rectangle{Min: image.Point{X: 0, Y: 0}, Max: image.Point{X: 4, Y: 4}}, + }, + }, + { + "Clone YCbCr 440", + &image.YCbCr{ + Y: []uint8{0x4c, 0x69, 0x1d, 0xb1, 0x96, 0xe2, 0x26, 0x34, 0xe, 0x59, 0x4b, 0x71, 0x0, 0x4c, 0x99, 0xff}, + Cb: []uint8{0x2c, 0x01, 0x6b, 0xaa, 0x80, 0x80, 0x80, 0x80}, + Cr: []uint8{0x15, 0x95, 0xc0, 0xb5, 0x80, 0x80, 0x80, 0x80}, + YStride: 4, + CStride: 4, + SubsampleRatio: image.YCbCrSubsampleRatio440, + Rect: image.Rectangle{Min: image.Point{X: 0, Y: 0}, Max: image.Point{X: 4, Y: 4}}, + }, + &image.NRGBA{ + Pix: []uint8{0x0, 0xb5, 0x0, 0xff, 0x86, 0x86, 0x0, 0xff, 0x77, 0x0, 0x0, 0xff, 0xfb, 0x7d, 0xfb, 0xff, 0x0, 0xff, 0x1, 0xff, 0xff, 0xff, 0x1, 0xff, 0x80, 0x0, 0x1, 0xff, 0x7e, 0x0, 0x7e, 0xff, 0xe, 0xe, 0xe, 0xff, 0x59, 0x59, 0x59, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x71, 0x71, 0x71, 0xff, 0x0, 0x0, 0x0, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x99, 0x99, 0x99, 0xff, 0xff, 0xff, 0xff, 0xff}, + Stride: 16, + Rect: image.Rectangle{Min: image.Point{X: 0, Y: 0}, Max: image.Point{X: 4, Y: 4}}, + }, + }, + { + "Clone YCbCr 422", + &image.YCbCr{ + Y: []uint8{0x4c, 0x69, 0x1d, 0xb1, 0x96, 0xe2, 0x26, 0x34, 0xe, 0x59, 0x4b, 0x71, 0x0, 0x4c, 0x99, 0xff}, + Cb: []uint8{0xd4, 0x8e, 0x01, 0xaa, 0x95, 0x40, 0x80, 0x80}, + Cr: []uint8{0xeb, 0x36, 0x95, 0xb5, 0x41, 0x8c, 0x80, 0x80}, + YStride: 4, + CStride: 2, + SubsampleRatio: image.YCbCrSubsampleRatio422, + Rect: image.Rectangle{Min: image.Point{X: 0, Y: 0}, Max: image.Point{X: 4, Y: 4}}, + }, + &image.NRGBA{ + Pix: []uint8{0xe2, 0x0, 0xe1, 0xff, 0xff, 0x0, 0xfe, 0xff, 0x0, 0x4d, 0x36, 0xff, 0x49, 0xe1, 0xca, 0xff, 0xb3, 0xb3, 0x0, 0xff, 0xff, 0xff, 0x1, 0xff, 0x70, 0x0, 0x70, 0xff, 0x7e, 0x0, 0x7e, 0xff, 0x0, 0x34, 0x33, 0xff, 0x1, 0x7f, 0x7e, 0xff, 0x5c, 0x58, 0x0, 0xff, 0x82, 0x7e, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x99, 0x99, 0x99, 0xff, 0xff, 0xff, 0xff, 0xff}, + Stride: 16, + Rect: image.Rectangle{Min: image.Point{X: 0, Y: 0}, Max: image.Point{X: 4, Y: 4}}, + }, + }, + { + "Clone YCbCr 420", + &image.YCbCr{ + Y: []uint8{0x4c, 0x69, 0x1d, 0xb1, 0x96, 0xe2, 0x26, 0x34, 0xe, 0x59, 0x4b, 0x71, 0x0, 0x4c, 0x99, 0xff}, + Cb: []uint8{0x01, 0xaa, 0x80, 0x80}, + Cr: []uint8{0x95, 0xb5, 0x80, 0x80}, + YStride: 4, CStride: 2, + SubsampleRatio: image.YCbCrSubsampleRatio420, + Rect: image.Rectangle{Min: image.Point{X: 0, Y: 0}, Max: image.Point{X: 4, Y: 4}}, + }, + &image.NRGBA{ + Pix: []uint8{0x69, 0x69, 0x0, 0xff, 0x86, 0x86, 0x0, 0xff, 0x67, 0x0, 0x67, 0xff, 0xfb, 0x7d, 0xfb, 0xff, 0xb3, 0xb3, 0x0, 0xff, 0xff, 0xff, 0x1, 0xff, 0x70, 0x0, 0x70, 0xff, 0x7e, 0x0, 0x7e, 0xff, 0xe, 0xe, 0xe, 0xff, 0x59, 0x59, 0x59, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x71, 0x71, 0x71, 0xff, 0x0, 0x0, 0x0, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x99, 0x99, 0x99, 0xff, 0xff, 0xff, 0xff, 0xff}, + Stride: 16, + Rect: image.Rectangle{Min: image.Point{X: 0, Y: 0}, Max: image.Point{X: 4, Y: 4}}, + }, + }, + { + "Clone Paletted", + &image.Paletted{ + Rect: image.Rect(-1, -1, 5, 0), + Stride: 6 * 1, + Palette: color.Palette{ + color.NRGBA{R: 0x00, G: 0x00, B: 0x00, A: 0xff}, + color.NRGBA{R: 0xff, G: 0xff, B: 0xff, A: 0xff}, + color.NRGBA{R: 0x7f, G: 0x7f, B: 0x7f, A: 0xff}, + color.NRGBA{R: 0x7f, G: 0x00, B: 0x00, A: 0xff}, + color.NRGBA{R: 0x00, G: 0x7f, B: 0x00, A: 0xff}, + color.NRGBA{R: 0x00, G: 0x00, B: 0x7f, A: 0xff}, + }, + Pix: []uint8{0x0, 0x1, 0x2, 0x3, 0x4, 0x5}, + }, + &image.NRGBA{ + Rect: image.Rect(0, 0, 6, 1), + Stride: 6 * 4, + Pix: []uint8{ + 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, + 0x7f, 0x7f, 0x7f, 0xff, + 0x7f, 0x00, 0x00, 0xff, + 0x00, 0x7f, 0x00, 0xff, + 0x00, 0x00, 0x7f, 0xff, + }, + }, + }, + } + + for _, d := range td { + got := Clone(d.src) + want := d.want + + delta := 0 + if _, ok := d.src.(*image.YCbCr); ok { + delta = 1 + } + + if !compareNRGBA(got, want, delta) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} diff --git a/Godeps/_workspace/src/github.com/disintegration/imaging/resize.go b/Godeps/_workspace/src/github.com/disintegration/imaging/resize.go index d2efd5c83..3c792e904 100644 --- a/Godeps/_workspace/src/github.com/disintegration/imaging/resize.go +++ b/Godeps/_workspace/src/github.com/disintegration/imaging/resize.go @@ -267,20 +267,21 @@ func Fit(img image.Image, width, height int, filter ResampleFilter) *image.NRGBA return Resize(img, newW, newH, filter) } -// Thumbnail scales the image up or down using the specified resample filter, crops it -// to the specified width and hight and returns the transformed image. +// Fill scales the image to the smallest possible size that will cover the specified dimensions, +// crops the resized image to the specified dimensions using the given anchor point and returns +// the transformed image. // // Supported resample filters: NearestNeighbor, Box, Linear, Hermite, MitchellNetravali, // CatmullRom, BSpline, Gaussian, Lanczos, Hann, Hamming, Blackman, Bartlett, Welch, Cosine. // // Usage example: // -// dstImage := imaging.Thumbnail(srcImage, 100, 100, imaging.Lanczos) +// dstImage := imaging.Fill(srcImage, 800, 600, imaging.Center, imaging.Lanczos) // -func Thumbnail(img image.Image, width, height int, filter ResampleFilter) *image.NRGBA { - thumbW, thumbH := width, height +func Fill(img image.Image, width, height int, anchor Anchor, filter ResampleFilter) *image.NRGBA { + minW, minH := width, height - if thumbW <= 0 || thumbH <= 0 { + if minW <= 0 || minH <= 0 { return &image.NRGBA{} } @@ -292,17 +293,35 @@ func Thumbnail(img image.Image, width, height int, filter ResampleFilter) *image return &image.NRGBA{} } + if srcW == minW && srcH == minH { + return Clone(img) + } + srcAspectRatio := float64(srcW) / float64(srcH) - thumbAspectRatio := float64(thumbW) / float64(thumbH) + minAspectRatio := float64(minW) / float64(minH) - var tmp image.Image - if srcAspectRatio > thumbAspectRatio { - tmp = Resize(img, 0, thumbH, filter) + var tmp *image.NRGBA + if srcAspectRatio < minAspectRatio { + tmp = Resize(img, minW, 0, filter) } else { - tmp = Resize(img, thumbW, 0, filter) + tmp = Resize(img, 0, minH, filter) } - return CropCenter(tmp, thumbW, thumbH) + return CropAnchor(tmp, minW, minH, anchor) +} + +// Thumbnail scales the image up or down using the specified resample filter, crops it +// to the specified width and hight and returns the transformed image. +// +// Supported resample filters: NearestNeighbor, Box, Linear, Hermite, MitchellNetravali, +// CatmullRom, BSpline, Gaussian, Lanczos, Hann, Hamming, Blackman, Bartlett, Welch, Cosine. +// +// Usage example: +// +// dstImage := imaging.Thumbnail(srcImage, 100, 100, imaging.Lanczos) +// +func Thumbnail(img image.Image, width, height int, filter ResampleFilter) *image.NRGBA { + return Fill(img, width, height, Center, filter) } // Resample filter struct. It can be used to make custom filters. diff --git a/Godeps/_workspace/src/github.com/disintegration/imaging/resize_test.go b/Godeps/_workspace/src/github.com/disintegration/imaging/resize_test.go new file mode 100644 index 000000000..bc575dcbf --- /dev/null +++ b/Godeps/_workspace/src/github.com/disintegration/imaging/resize_test.go @@ -0,0 +1,455 @@ +package imaging + +import ( + "image" + "testing" +) + +func TestResize(t *testing.T) { + td := []struct { + desc string + src image.Image + w, h int + f ResampleFilter + want *image.NRGBA + }{ + { + "Resize 2x2 1x1 box", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 1), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, + }, + }, + 1, 1, + Box, + &image.NRGBA{ + Rect: image.Rect(0, 0, 1, 1), + Stride: 1 * 4, + Pix: []uint8{0x40, 0x40, 0x40, 0xc0}, + }, + }, + { + "Resize 2x2 2x2 box", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 1), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, + }, + }, + 2, 2, + Box, + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, + }, + }, + }, + { + "Resize 3x1 1x1 nearest", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 2, 0), + Stride: 3 * 4, + Pix: []uint8{ + 0xff, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, + }, + }, + 1, 1, + NearestNeighbor, + &image.NRGBA{ + Rect: image.Rect(0, 0, 1, 1), + Stride: 1 * 4, + Pix: []uint8{0x00, 0xff, 0x00, 0xff}, + }, + }, + { + "Resize 2x2 0x4 box", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 1), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, + }, + }, + 0, 4, + Box, + &image.NRGBA{ + Rect: image.Rect(0, 0, 4, 4), + Stride: 4 * 4, + Pix: []uint8{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, + }, + }, + }, + { + "Resize 2x2 4x0 linear", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 1), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, + }, + }, + 4, 0, + Linear, + &image.NRGBA{ + Rect: image.Rect(0, 0, 4, 4), + Stride: 4 * 4, + Pix: []uint8{ + 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0xbf, 0x00, 0x00, 0xbf, 0xff, 0x00, 0x00, 0xff, + 0x00, 0x40, 0x00, 0x40, 0x30, 0x30, 0x10, 0x70, 0x8f, 0x10, 0x30, 0xcf, 0xbf, 0x00, 0x40, 0xff, + 0x00, 0xbf, 0x00, 0xbf, 0x10, 0x8f, 0x30, 0xcf, 0x30, 0x30, 0x8f, 0xef, 0x40, 0x00, 0xbf, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0xbf, 0x40, 0xff, 0x00, 0x40, 0xbf, 0xff, 0x00, 0x00, 0xff, 0xff, + }, + }, + }, + } + for _, d := range td { + got := Resize(d.src, d.w, d.h, d.f) + want := d.want + if !compareNRGBA(got, want, 1) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} + +func TestFit(t *testing.T) { + td := []struct { + desc string + src image.Image + w, h int + f ResampleFilter + want *image.NRGBA + }{ + { + "Fit 2x2 1x10 box", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 1), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, + }, + }, + 1, 10, + Box, + &image.NRGBA{ + Rect: image.Rect(0, 0, 1, 1), + Stride: 1 * 4, + Pix: []uint8{0x40, 0x40, 0x40, 0xc0}, + }, + }, + { + "Fit 2x2 10x1 box", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 1), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, + }, + }, + 10, 1, + Box, + &image.NRGBA{ + Rect: image.Rect(0, 0, 1, 1), + Stride: 1 * 4, + Pix: []uint8{0x40, 0x40, 0x40, 0xc0}, + }, + }, + { + "Fit 2x2 10x10 box", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 1), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, + }, + }, + 10, 10, + Box, + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, + }, + }, + }, + } + for _, d := range td { + got := Fit(d.src, d.w, d.h, d.f) + want := d.want + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} + +func TestFill(t *testing.T) { + td := []struct { + desc string + src image.Image + w, h int + a Anchor + f ResampleFilter + want *image.NRGBA + }{ + { + "Fill 4x4 2x2 Center Nearest", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 3, 3), + Stride: 4 * 4, + Pix: []uint8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + 2, 2, + Center, + NearestNeighbor, + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f, + 0x34, 0x35, 0x36, 0x37, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + }, + { + "Fill 4x4 1x4 TopLeft Nearest", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 3, 3), + Stride: 4 * 4, + Pix: []uint8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + 1, 4, + TopLeft, + NearestNeighbor, + &image.NRGBA{ + Rect: image.Rect(0, 0, 1, 4), + Stride: 1 * 4, + Pix: []uint8{ + 0x00, 0x01, 0x02, 0x03, + 0x10, 0x11, 0x12, 0x13, + 0x20, 0x21, 0x22, 0x23, + 0x30, 0x31, 0x32, 0x33, + }, + }, + }, + { + "Fill 4x4 8x2 Bottom Nearest", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 3, 3), + Stride: 4 * 4, + Pix: []uint8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + 8, 2, + Bottom, + NearestNeighbor, + &image.NRGBA{ + Rect: image.Rect(0, 0, 8, 2), + Stride: 8 * 4, + Pix: []uint8{ + 0x30, 0x31, 0x32, 0x33, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x3c, 0x3d, 0x3e, 0x3f, + 0x30, 0x31, 0x32, 0x33, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + }, + { + "Fill 4x4 2x8 Top Nearest", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 3, 3), + Stride: 4 * 4, + Pix: []uint8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + 2, 8, + Top, + NearestNeighbor, + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 8), + Stride: 2 * 4, + Pix: []uint8{ + 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, + 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, + 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, + 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, + 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, + 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + }, + }, + }, + { + "Fill 4x4 4x4 TopRight Box", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 3, 3), + Stride: 4 * 4, + Pix: []uint8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + 4, 4, + TopRight, + Box, + &image.NRGBA{ + Rect: image.Rect(0, 0, 4, 4), + Stride: 4 * 4, + Pix: []uint8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + }, + { + "Fill 4x4 0x4 Left Box", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 3, 3), + Stride: 4 * 4, + Pix: []uint8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + 0, 4, + Left, + Box, + &image.NRGBA{}, + }, + { + "Fill 0x0 4x4 Right Box", + &image.NRGBA{}, + 4, 4, + Right, + Box, + &image.NRGBA{}, + }, + } + for _, d := range td { + got := Fill(d.src, d.w, d.h, d.a, d.f) + want := d.want + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} + +func TestThumbnail(t *testing.T) { + td := []struct { + desc string + src image.Image + w, h int + f ResampleFilter + want *image.NRGBA + }{ + { + "Thumbnail 6x2 1x1 box", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 5, 1), + Stride: 6 * 4, + Pix: []uint8{ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + 1, 1, + Box, + &image.NRGBA{ + Rect: image.Rect(0, 0, 1, 1), + Stride: 1 * 4, + Pix: []uint8{0x40, 0x40, 0x40, 0xc0}, + }, + }, + { + "Thumbnail 2x6 1x1 box", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 5), + Stride: 2 * 4, + Pix: []uint8{ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + }, + }, + 1, 1, + Box, + &image.NRGBA{ + Rect: image.Rect(0, 0, 1, 1), + Stride: 1 * 4, + Pix: []uint8{0x40, 0x40, 0x40, 0xc0}, + }, + }, + { + "Thumbnail 1x3 2x2 box", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 0, 2), + Stride: 1 * 4, + Pix: []uint8{ + 0x00, 0x00, 0x00, 0x00, + 0xff, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, + }, + }, + 2, 2, + Box, + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, + 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, + }, + }, + }, + } + for _, d := range td { + got := Thumbnail(d.src, d.w, d.h, d.f) + want := d.want + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} diff --git a/Godeps/_workspace/src/github.com/disintegration/imaging/tools_test.go b/Godeps/_workspace/src/github.com/disintegration/imaging/tools_test.go new file mode 100644 index 000000000..2dace6299 --- /dev/null +++ b/Godeps/_workspace/src/github.com/disintegration/imaging/tools_test.go @@ -0,0 +1,605 @@ +package imaging + +import ( + "image" + "testing" +) + +func TestCrop(t *testing.T) { + td := []struct { + desc string + src image.Image + r image.Rectangle + want *image.NRGBA + }{ + { + "Crop 2x3 2x1", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + }, + }, + image.Rect(-1, 0, 1, 1), + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 1), + Stride: 2 * 4, + Pix: []uint8{ + 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, + }, + }, + }, + } + for _, d := range td { + got := Crop(d.src, d.r) + want := d.want + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} + +func TestCropCenter(t *testing.T) { + td := []struct { + desc string + src image.Image + w, h int + want *image.NRGBA + }{ + { + "CropCenter 2x3 2x1", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + }, + }, + 2, 1, + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 1), + Stride: 2 * 4, + Pix: []uint8{ + 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, + }, + }, + }, + { + "CropCenter 2x3 0x1", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + }, + }, + 0, 1, + &image.NRGBA{ + Rect: image.Rect(0, 0, 0, 0), + Stride: 0, + Pix: []uint8{}, + }, + }, + { + "CropCenter 2x3 5x5", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + }, + }, + 5, 5, + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 3), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + }, + }, + }, + } + for _, d := range td { + got := CropCenter(d.src, d.w, d.h) + want := d.want + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} + +func TestCropAnchor(t *testing.T) { + td := []struct { + desc string + src image.Image + w, h int + anchor Anchor + want *image.NRGBA + }{ + { + "CropAnchor 4x4 2x2 TopLeft", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 3, 3), + Stride: 4 * 4, + Pix: []uint8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + 2, 2, + TopLeft, + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + }, + }, + }, + { + "CropAnchor 4x4 2x2 Top", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 3, 3), + Stride: 4 * 4, + Pix: []uint8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + 2, 2, + Top, + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, + 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, + }, + }, + }, + { + "CropAnchor 4x4 2x2 TopRight", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 3, 3), + Stride: 4 * 4, + Pix: []uint8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + 2, 2, + TopRight, + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + }, + }, + }, + { + "CropAnchor 4x4 2x2 Left", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 3, 3), + Stride: 4 * 4, + Pix: []uint8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + 2, 2, + Left, + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + }, + }, + }, + { + "CropAnchor 4x4 2x2 Center", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 3, 3), + Stride: 4 * 4, + Pix: []uint8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + 2, 2, + Center, + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, + 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, + }, + }, + }, + { + "CropAnchor 4x4 2x2 Right", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 3, 3), + Stride: 4 * 4, + Pix: []uint8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + 2, 2, + Right, + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + }, + }, + }, + { + "CropAnchor 4x4 2x2 BottomLeft", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 3, 3), + Stride: 4 * 4, + Pix: []uint8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + 2, 2, + BottomLeft, + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + }, + }, + }, + { + "CropAnchor 4x4 2x2 Bottom", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 3, 3), + Stride: 4 * 4, + Pix: []uint8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + 2, 2, + Bottom, + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + }, + }, + }, + { + "CropAnchor 4x4 2x2 BottomRight", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 3, 3), + Stride: 4 * 4, + Pix: []uint8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + 2, 2, + BottomRight, + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + }, + { + "CropAnchor 4x4 0x0 BottomRight", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 3, 3), + Stride: 4 * 4, + Pix: []uint8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + 0, 0, + BottomRight, + &image.NRGBA{ + Rect: image.Rect(0, 0, 0, 0), + Stride: 0, + Pix: []uint8{}, + }, + }, + { + "CropAnchor 4x4 100x100 BottomRight", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 3, 3), + Stride: 4 * 4, + Pix: []uint8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + 100, 100, + BottomRight, + &image.NRGBA{ + Rect: image.Rect(0, 0, 4, 4), + Stride: 4 * 4, + Pix: []uint8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + }, + { + "CropAnchor 4x4 1x100 BottomRight", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 3, 3), + Stride: 4 * 4, + Pix: []uint8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + 1, 100, + BottomRight, + &image.NRGBA{ + Rect: image.Rect(0, 0, 1, 4), + Stride: 1 * 4, + Pix: []uint8{ + 0x0c, 0x0d, 0x0e, 0x0f, + 0x1c, 0x1d, 0x1e, 0x1f, + 0x2c, 0x2d, 0x2e, 0x2f, + 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + }, + { + "CropAnchor 4x4 0x100 BottomRight", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 3, 3), + Stride: 4 * 4, + Pix: []uint8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + }, + }, + 0, 100, + BottomRight, + &image.NRGBA{ + Rect: image.Rect(0, 0, 0, 0), + Stride: 0, + Pix: []uint8{}, + }, + }, + } + for _, d := range td { + got := CropAnchor(d.src, d.w, d.h, d.anchor) + want := d.want + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} + +func TestPaste(t *testing.T) { + td := []struct { + desc string + src1 image.Image + src2 image.Image + p image.Point + want *image.NRGBA + }{ + { + "Paste 2x3 2x1", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + }, + }, + &image.NRGBA{ + Rect: image.Rect(1, 1, 3, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, + }, + }, + image.Pt(-1, 0), + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 3), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + }, + }, + }, + } + for _, d := range td { + got := Paste(d.src1, d.src2, d.p) + want := d.want + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} + +func TestPasteCenter(t *testing.T) { + td := []struct { + desc string + src1 image.Image + src2 image.Image + want *image.NRGBA + }{ + { + "PasteCenter 2x3 2x1", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + }, + }, + &image.NRGBA{ + Rect: image.Rect(1, 1, 3, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, + }, + }, + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 3), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + }, + }, + }, + } + for _, d := range td { + got := PasteCenter(d.src1, d.src2) + want := d.want + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} + +func TestOverlay(t *testing.T) { + td := []struct { + desc string + src1 image.Image + src2 image.Image + p image.Point + a float64 + want *image.NRGBA + }{ + { + "Overlay 2x3 2x1 1.0", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, + 0x60, 0x00, 0x90, 0xff, 0xff, 0x00, 0x99, 0x7f, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + }, + }, + &image.NRGBA{ + Rect: image.Rect(1, 1, 3, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x20, 0x40, 0x80, 0x7f, 0xaa, 0xbb, 0xcc, 0xff, + }, + }, + image.Pt(-1, 0), + 1.0, + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 3), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, + 0x40, 0x1f, 0x88, 0xff, 0xaa, 0xbb, 0xcc, 0xff, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + }, + }, + }, + { + "Overlay 2x2 2x2 0.5", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 1), + Stride: 2 * 4, + Pix: []uint8{ + 0xff, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, + 0x00, 0x00, 0xff, 0xff, 0x20, 0x20, 0x20, 0x00, + }, + }, + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 1), + Stride: 2 * 4, + Pix: []uint8{ + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x00, 0xff, 0x20, 0x20, 0x20, 0xff, + }, + }, + image.Pt(-1, -1), + 0.5, + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0xff, 0x7f, 0x7f, 0xff, 0x00, 0xff, 0x00, 0xff, + 0x7f, 0x7f, 0x7f, 0xff, 0x20, 0x20, 0x20, 0x7f, + }, + }, + }, + } + for _, d := range td { + got := Overlay(d.src1, d.src2, d.p, d.a) + want := d.want + if !compareNRGBA(got, want, 1) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} diff --git a/Godeps/_workspace/src/github.com/disintegration/imaging/transform_test.go b/Godeps/_workspace/src/github.com/disintegration/imaging/transform_test.go new file mode 100644 index 000000000..6e64082f4 --- /dev/null +++ b/Godeps/_workspace/src/github.com/disintegration/imaging/transform_test.go @@ -0,0 +1,261 @@ +package imaging + +import ( + "image" + "testing" +) + +func TestRotate90(t *testing.T) { + td := []struct { + desc string + src image.Image + want *image.NRGBA + }{ + { + "Rotate90 2x3", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + }, + }, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0xcc, 0xdd, 0xee, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0x00, 0x11, 0x22, 0x33, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, + }, + }, + }, + } + for _, d := range td { + got := Rotate90(d.src) + want := d.want + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} + +func TestRotate180(t *testing.T) { + td := []struct { + desc string + src image.Image + want *image.NRGBA + }{ + { + "Rotate180 2x3", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + }, + }, + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 3), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, + 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, + 0xcc, 0xdd, 0xee, 0xff, 0x00, 0x11, 0x22, 0x33, + }, + }, + }, + } + for _, d := range td { + got := Rotate180(d.src) + want := d.want + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} + +func TestRotate270(t *testing.T) { + td := []struct { + desc string + src image.Image + want *image.NRGBA + }{ + { + "Rotate270 2x3", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + }, + }, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x11, 0x22, 0x33, + 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0xcc, 0xdd, 0xee, 0xff, + }, + }, + }, + } + for _, d := range td { + got := Rotate270(d.src) + want := d.want + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} + +func TestFlipV(t *testing.T) { + td := []struct { + desc string + src image.Image + want *image.NRGBA + }{ + { + "FlipV 2x3", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + }, + }, + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 3), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, + 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, + }, + }, + }, + } + for _, d := range td { + got := FlipV(d.src) + want := d.want + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} + +func TestFlipH(t *testing.T) { + td := []struct { + desc string + src image.Image + want *image.NRGBA + }{ + { + "FlipH 2x3", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + }, + }, + &image.NRGBA{ + Rect: image.Rect(0, 0, 2, 3), + Stride: 2 * 4, + Pix: []uint8{ + 0xcc, 0xdd, 0xee, 0xff, 0x00, 0x11, 0x22, 0x33, + 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, + }, + }, + }, + } + for _, d := range td { + got := FlipH(d.src) + want := d.want + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} + +func TestTranspose(t *testing.T) { + td := []struct { + desc string + src image.Image + want *image.NRGBA + }{ + { + "Transpose 2x3", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + }, + }, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0x00, 0x11, 0x22, 0x33, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, + 0xcc, 0xdd, 0xee, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + }, + }, + }, + } + for _, d := range td { + got := Transpose(d.src) + want := d.want + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} + +func TestTransverse(t *testing.T) { + td := []struct { + desc string + src image.Image + want *image.NRGBA + }{ + { + "Transverse 2x3", + &image.NRGBA{ + Rect: image.Rect(-1, -1, 1, 2), + Stride: 2 * 4, + Pix: []uint8{ + 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + }, + }, + &image.NRGBA{ + Rect: image.Rect(0, 0, 3, 2), + Stride: 3 * 4, + Pix: []uint8{ + 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0xcc, 0xdd, 0xee, 0xff, + 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x11, 0x22, 0x33, + }, + }, + }, + } + for _, d := range td { + got := Transverse(d.src) + want := d.want + if !compareNRGBA(got, want, 0) { + t.Errorf("test [%s] failed: %#v", d.desc, got) + } + } +} diff --git a/Godeps/_workspace/src/github.com/disintegration/imaging/utils_test.go b/Godeps/_workspace/src/github.com/disintegration/imaging/utils_test.go new file mode 100644 index 000000000..c2384586b --- /dev/null +++ b/Godeps/_workspace/src/github.com/disintegration/imaging/utils_test.go @@ -0,0 +1,61 @@ +package imaging + +import ( + "runtime" + "testing" +) + +func testParallelN(enabled bool, n, procs int) bool { + data := make([]bool, n) + before := runtime.GOMAXPROCS(0) + runtime.GOMAXPROCS(procs) + parallel(n, func(start, end int) { + for i := start; i < end; i++ { + data[i] = true + } + }) + for i := 0; i < n; i++ { + if data[i] != true { + return false + } + } + runtime.GOMAXPROCS(before) + return true +} + +func TestParallel(t *testing.T) { + for _, e := range []bool{true, false} { + for _, n := range []int{1, 10, 100, 1000} { + for _, p := range []int{1, 2, 4, 8, 16, 100} { + if testParallelN(e, n, p) != true { + t.Errorf("test [parallel %v %d %d] failed", e, n, p) + } + } + } + } +} + +func TestClamp(t *testing.T) { + td := []struct { + f float64 + u uint8 + }{ + {0, 0}, + {255, 255}, + {128, 128}, + {0.49, 0}, + {0.50, 1}, + {254.9, 255}, + {254.0, 254}, + {256, 255}, + {2500, 255}, + {-10, 0}, + {127.6, 128}, + } + + for _, d := range td { + if clamp(d.f) != d.u { + t.Errorf("test [clamp %v %v] failed: %v", d.f, d.u, clamp(d.f)) + } + } +} diff --git a/Godeps/_workspace/src/github.com/garyburd/redigo/internal/redistest/testdb.go b/Godeps/_workspace/src/github.com/garyburd/redigo/internal/redistest/testdb.go index 5f955c424..b6f205b7f 100644 --- a/Godeps/_workspace/src/github.com/garyburd/redigo/internal/redistest/testdb.go +++ b/Godeps/_workspace/src/github.com/garyburd/redigo/internal/redistest/testdb.go @@ -49,15 +49,18 @@ func Dial() (redis.Conn, error) { _, err = c.Do("SELECT", "9") if err != nil { + c.Close() return nil, err } n, err := redis.Int(c.Do("DBSIZE")) if err != nil { + c.Close() return nil, err } if n != 0 { + c.Close() return nil, errors.New("database #9 is not empty, test can not continue") } diff --git a/Godeps/_workspace/src/github.com/garyburd/redigo/redis/conn.go b/Godeps/_workspace/src/github.com/garyburd/redigo/redis/conn.go index ac0e971c4..6a3819f1d 100644 --- a/Godeps/_workspace/src/github.com/garyburd/redigo/redis/conn.go +++ b/Godeps/_workspace/src/github.com/garyburd/redigo/redis/conn.go @@ -21,6 +21,8 @@ import ( "fmt" "io" "net" + "net/url" + "regexp" "strconv" "sync" "time" @@ -51,56 +53,164 @@ type conn struct { numScratch [40]byte } -// Dial connects to the Redis server at the given network and address. -func Dial(network, address string) (Conn, error) { - dialer := xDialer{} - return dialer.Dial(network, address) -} - // DialTimeout acts like Dial but takes timeouts for establishing the // connection to the server, writing a command and reading a reply. +// +// Deprecated: Use Dial with options instead. func DialTimeout(network, address string, connectTimeout, readTimeout, writeTimeout time.Duration) (Conn, error) { - netDialer := net.Dialer{Timeout: connectTimeout} - dialer := xDialer{ - NetDial: netDialer.Dial, - ReadTimeout: readTimeout, - WriteTimeout: writeTimeout, - } - return dialer.Dial(network, address) + return Dial(network, address, + DialConnectTimeout(connectTimeout), + DialReadTimeout(readTimeout), + DialWriteTimeout(writeTimeout)) +} + +// DialOption specifies an option for dialing a Redis server. +type DialOption struct { + f func(*dialOptions) +} + +type dialOptions struct { + readTimeout time.Duration + writeTimeout time.Duration + dial func(network, addr string) (net.Conn, error) + db int + password string +} + +// DialReadTimeout specifies the timeout for reading a single command reply. +func DialReadTimeout(d time.Duration) DialOption { + return DialOption{func(do *dialOptions) { + do.readTimeout = d + }} +} + +// DialWriteTimeout specifies the timeout for writing a single command. +func DialWriteTimeout(d time.Duration) DialOption { + return DialOption{func(do *dialOptions) { + do.writeTimeout = d + }} } -// A Dialer specifies options for connecting to a Redis server. -type xDialer struct { - // NetDial specifies the dial function for creating TCP connections. If - // NetDial is nil, then net.Dial is used. - NetDial func(network, addr string) (net.Conn, error) +// DialConnectTimeout specifies the timeout for connecting to the Redis server. +func DialConnectTimeout(d time.Duration) DialOption { + return DialOption{func(do *dialOptions) { + dialer := net.Dialer{Timeout: d} + do.dial = dialer.Dial + }} +} + +// DialNetDial specifies a custom dial function for creating TCP +// connections. If this option is left out, then net.Dial is +// used. DialNetDial overrides DialConnectTimeout. +func DialNetDial(dial func(network, addr string) (net.Conn, error)) DialOption { + return DialOption{func(do *dialOptions) { + do.dial = dial + }} +} - // ReadTimeout specifies the timeout for reading a single command - // reply. If ReadTimeout is zero, then no timeout is used. - ReadTimeout time.Duration +// DialDatabase specifies the database to select when dialing a connection. +func DialDatabase(db int) DialOption { + return DialOption{func(do *dialOptions) { + do.db = db + }} +} - // WriteTimeout specifies the timeout for writing a single command. If - // WriteTimeout is zero, then no timeout is used. - WriteTimeout time.Duration +// DialPassword specifies the password to use when connecting to +// the Redis server. +func DialPassword(password string) DialOption { + return DialOption{func(do *dialOptions) { + do.password = password + }} } -// Dial connects to the Redis server at address on the named network. -func (d *xDialer) Dial(network, address string) (Conn, error) { - dial := d.NetDial - if dial == nil { - dial = net.Dial +// Dial connects to the Redis server at the given network and +// address using the specified options. +func Dial(network, address string, options ...DialOption) (Conn, error) { + do := dialOptions{ + dial: net.Dial, } - netConn, err := dial(network, address) + for _, option := range options { + option.f(&do) + } + + netConn, err := do.dial(network, address) if err != nil { return nil, err } - return &conn{ + c := &conn{ conn: netConn, bw: bufio.NewWriter(netConn), br: bufio.NewReader(netConn), - readTimeout: d.ReadTimeout, - writeTimeout: d.WriteTimeout, - }, nil + readTimeout: do.readTimeout, + writeTimeout: do.writeTimeout, + } + + if do.password != "" { + if _, err := c.Do("AUTH", do.password); err != nil { + netConn.Close() + return nil, err + } + } + + if do.db != 0 { + if _, err := c.Do("SELECT", do.db); err != nil { + netConn.Close() + return nil, err + } + } + + return c, nil +} + +var pathDBRegexp = regexp.MustCompile(`/(\d+)\z`) + +// DialURL connects to a Redis server at the given URL using the Redis +// URI scheme. URLs should follow the draft IANA specification for the +// scheme (https://www.iana.org/assignments/uri-schemes/prov/redis). +func DialURL(rawurl string, options ...DialOption) (Conn, error) { + u, err := url.Parse(rawurl) + if err != nil { + return nil, err + } + + if u.Scheme != "redis" { + return nil, fmt.Errorf("invalid redis URL scheme: %s", u.Scheme) + } + + // As per the IANA draft spec, the host defaults to localhost and + // the port defaults to 6379. + host, port, err := net.SplitHostPort(u.Host) + if err != nil { + // assume port is missing + host = u.Host + port = "6379" + } + if host == "" { + host = "localhost" + } + address := net.JoinHostPort(host, port) + + if u.User != nil { + password, isSet := u.User.Password() + if isSet { + options = append(options, DialPassword(password)) + } + } + + match := pathDBRegexp.FindStringSubmatch(u.Path) + if len(match) == 2 { + db, err := strconv.Atoi(match[1]) + if err != nil { + return nil, fmt.Errorf("invalid database: %s", u.Path[1:]) + } + if db != 0 { + options = append(options, DialDatabase(db)) + } + } else if u.Path != "" { + return nil, fmt.Errorf("invalid database: %s", u.Path[1:]) + } + + return Dial("tcp", address, options...) } // NewConn returns a new Redigo connection for the given net connection. @@ -417,7 +527,9 @@ func (c *conn) Do(cmd string, args ...interface{}) (interface{}, error) { } if cmd != "" { - c.writeCommand(cmd, args) + if err := c.writeCommand(cmd, args); err != nil { + return nil, c.fatal(err) + } } if err := c.bw.Flush(); err != nil { diff --git a/Godeps/_workspace/src/github.com/garyburd/redigo/redis/conn_test.go b/Godeps/_workspace/src/github.com/garyburd/redigo/redis/conn_test.go index 800370136..24887cf03 100644 --- a/Godeps/_workspace/src/github.com/garyburd/redigo/redis/conn_test.go +++ b/Godeps/_workspace/src/github.com/garyburd/redigo/redis/conn_test.go @@ -15,19 +15,37 @@ package redis_test import ( - "bufio" "bytes" + "io" "math" "net" + "os" "reflect" "strings" "testing" "time" - "github.com/garyburd/redigo/internal/redistest" "github.com/garyburd/redigo/redis" ) +type testConn struct { + io.Reader + io.Writer +} + +func (*testConn) Close() error { return nil } +func (*testConn) LocalAddr() net.Addr { return nil } +func (*testConn) RemoteAddr() net.Addr { return nil } +func (*testConn) SetDeadline(t time.Time) error { return nil } +func (*testConn) SetReadDeadline(t time.Time) error { return nil } +func (*testConn) SetWriteDeadline(t time.Time) error { return nil } + +func dialTestConn(r io.Reader, w io.Writer) redis.DialOption { + return redis.DialNetDial(func(net, addr string) (net.Conn, error) { + return &testConn{Reader: r, Writer: w}, nil + }) +} + var writeTests = []struct { args []interface{} expected string @@ -73,14 +91,13 @@ var writeTests = []struct { func TestWrite(t *testing.T) { for _, tt := range writeTests { var buf bytes.Buffer - rw := bufio.ReadWriter{Writer: bufio.NewWriter(&buf)} - c := redis.NewConnBufio(rw) + c, _ := redis.Dial("", "", dialTestConn(nil, &buf)) err := c.Send(tt.args[0].(string), tt.args[1:]...) if err != nil { t.Errorf("Send(%v) returned error %v", tt.args, err) continue } - rw.Flush() + c.Flush() actual := buf.String() if actual != tt.expected { t.Errorf("Send(%v) = %q, want %q", tt.args, actual, tt.expected) @@ -173,11 +190,7 @@ var readTests = []struct { func TestRead(t *testing.T) { for _, tt := range readTests { - rw := bufio.ReadWriter{ - Reader: bufio.NewReader(strings.NewReader(tt.reply)), - Writer: bufio.NewWriter(nil), // writer need to support Flush - } - c := redis.NewConnBufio(rw) + c, _ := redis.Dial("", "", dialTestConn(strings.NewReader(tt.reply), nil)) actual, err := c.Receive() if tt.expected == errorSentinel { if err == nil { @@ -257,7 +270,7 @@ var testCommands = []struct { } func TestDoCommands(t *testing.T) { - c, err := redistest.Dial() + c, err := redis.DialDefaultServer() if err != nil { t.Fatalf("error connection to database, %v", err) } @@ -276,7 +289,7 @@ func TestDoCommands(t *testing.T) { } func TestPipelineCommands(t *testing.T) { - c, err := redistest.Dial() + c, err := redis.DialDefaultServer() if err != nil { t.Fatalf("error connection to database, %v", err) } @@ -302,7 +315,7 @@ func TestPipelineCommands(t *testing.T) { } func TestBlankCommmand(t *testing.T) { - c, err := redistest.Dial() + c, err := redis.DialDefaultServer() if err != nil { t.Fatalf("error connection to database, %v", err) } @@ -329,7 +342,7 @@ func TestBlankCommmand(t *testing.T) { } func TestRecvBeforeSend(t *testing.T) { - c, err := redistest.Dial() + c, err := redis.DialDefaultServer() if err != nil { t.Fatalf("error connection to database, %v", err) } @@ -350,7 +363,7 @@ func TestRecvBeforeSend(t *testing.T) { } func TestError(t *testing.T) { - c, err := redistest.Dial() + c, err := redis.DialDefaultServer() if err != nil { t.Fatalf("error connection to database, %v", err) } @@ -370,7 +383,7 @@ func TestError(t *testing.T) { } } -func TestReadDeadline(t *testing.T) { +func TestReadTimeout(t *testing.T) { l, err := net.Listen("tcp", "127.0.0.1:0") if err != nil { t.Fatalf("net.Listen returned %v", err) @@ -391,7 +404,9 @@ func TestReadDeadline(t *testing.T) { } }() - c1, err := redis.DialTimeout(l.Addr().Network(), l.Addr().String(), 0, time.Millisecond, 0) + // Do + + c1, err := redis.Dial(l.Addr().Network(), l.Addr().String(), redis.DialReadTimeout(time.Millisecond)) if err != nil { t.Fatalf("redis.Dial returned %v", err) } @@ -405,7 +420,9 @@ func TestReadDeadline(t *testing.T) { t.Fatalf("c1.Err() = nil, expect error") } - c2, err := redis.DialTimeout(l.Addr().Network(), l.Addr().String(), 0, time.Millisecond, 0) + // Send/Flush/Receive + + c2, err := redis.Dial(l.Addr().Network(), l.Addr().String(), redis.DialReadTimeout(time.Millisecond)) if err != nil { t.Fatalf("redis.Dial returned %v", err) } @@ -422,6 +439,95 @@ func TestReadDeadline(t *testing.T) { } } +var dialErrors = []struct { + rawurl string + expectedError string +}{ + { + "localhost", + "invalid redis URL scheme", + }, + // The error message for invalid hosts is diffferent in different + // versions of Go, so just check that there is an error message. + { + "redis://weird url", + "", + }, + { + "redis://foo:bar:baz", + "", + }, + { + "http://www.google.com", + "invalid redis URL scheme: http", + }, + { + "redis://localhost:6379/abc123", + "invalid database: abc123", + }, +} + +func TestDialURLErrors(t *testing.T) { + for _, d := range dialErrors { + _, err := redis.DialURL(d.rawurl) + if err == nil || !strings.Contains(err.Error(), d.expectedError) { + t.Errorf("DialURL did not return expected error (expected %v to contain %s)", err, d.expectedError) + } + } +} + +func TestDialURLPort(t *testing.T) { + checkPort := func(network, address string) (net.Conn, error) { + if address != "localhost:6379" { + t.Errorf("DialURL did not set port to 6379 by default (got %v)", address) + } + return nil, nil + } + _, err := redis.DialURL("redis://localhost", redis.DialNetDial(checkPort)) + if err != nil { + t.Error("dial error:", err) + } +} + +func TestDialURLHost(t *testing.T) { + checkHost := func(network, address string) (net.Conn, error) { + if address != "localhost:6379" { + t.Errorf("DialURL did not set host to localhost by default (got %v)", address) + } + return nil, nil + } + _, err := redis.DialURL("redis://:6379", redis.DialNetDial(checkHost)) + if err != nil { + t.Error("dial error:", err) + } +} + +func TestDialURLPassword(t *testing.T) { + var buf bytes.Buffer + _, err := redis.DialURL("redis://x:abc123@localhost", dialTestConn(strings.NewReader("+OK\r\n"), &buf)) + if err != nil { + t.Error("dial error:", err) + } + expected := "*2\r\n$4\r\nAUTH\r\n$6\r\nabc123\r\n" + actual := buf.String() + if actual != expected { + t.Errorf("commands = %q, want %q", actual, expected) + } +} + +func TestDialURLDatabase(t *testing.T) { + var buf bytes.Buffer + _, err := redis.DialURL("redis://localhost/3", dialTestConn(strings.NewReader("+OK\r\n"), &buf)) + if err != nil { + t.Error("dial error:", err) + } + expected := "*2\r\n$6\r\nSELECT\r\n$1\r\n3\r\n" + actual := buf.String() + if actual != expected { + t.Errorf("commands = %q, want %q", actual, expected) + } +} + // Connect to local instance of Redis running on the default port. func ExampleDial(x int) { c, err := redis.Dial("tcp", ":6379") @@ -431,11 +537,20 @@ func ExampleDial(x int) { defer c.Close() } +// Connect to remote instance of Redis using a URL. +func ExampleDialURL() { + c, err := redis.DialURL(os.Getenv("REDIS_URL")) + if err != nil { + // handle connection error + } + defer c.Close() +} + // TextExecError tests handling of errors in a transaction. See // http://redis.io/topics/transactions for information on how Redis handles // errors in a transaction. func TestExecError(t *testing.T) { - c, err := redistest.Dial() + c, err := redis.DialDefaultServer() if err != nil { t.Fatalf("error connection to database, %v", err) } @@ -443,6 +558,7 @@ func TestExecError(t *testing.T) { // Execute commands that fail before EXEC is called. + c.Do("DEL", "k0") c.Do("ZADD", "k0", 0, 0) c.Send("MULTI") c.Send("NOTACOMMAND", "k0", 0, 0) @@ -455,6 +571,7 @@ func TestExecError(t *testing.T) { // Execute commands that fail after EXEC is called. The first command // returns an error. + c.Do("DEL", "k1") c.Do("ZADD", "k1", 0, 0) c.Send("MULTI") c.Send("HSET", "k1", 0, 0) @@ -478,7 +595,7 @@ func TestExecError(t *testing.T) { } if _, ok := vs[1].([]byte); !ok { - t.Fatalf("second result is type %T, expected []byte", vs[2]) + t.Fatalf("second result is type %T, expected []byte", vs[1]) } // Execute commands that fail after EXEC is called. The second command @@ -513,7 +630,7 @@ func TestExecError(t *testing.T) { func BenchmarkDoEmpty(b *testing.B) { b.StopTimer() - c, err := redistest.Dial() + c, err := redis.DialDefaultServer() if err != nil { b.Fatal(err) } @@ -528,7 +645,7 @@ func BenchmarkDoEmpty(b *testing.B) { func BenchmarkDoPing(b *testing.B) { b.StopTimer() - c, err := redistest.Dial() + c, err := redis.DialDefaultServer() if err != nil { b.Fatal(err) } diff --git a/Godeps/_workspace/src/github.com/garyburd/redigo/redis/pool.go b/Godeps/_workspace/src/github.com/garyburd/redigo/redis/pool.go index 9daf2e33f..d66ef84b6 100644 --- a/Godeps/_workspace/src/github.com/garyburd/redigo/redis/pool.go +++ b/Godeps/_workspace/src/github.com/garyburd/redigo/redis/pool.go @@ -94,7 +94,10 @@ var ( type Pool struct { // Dial is an application supplied function for creating and configuring a - // connection + // connection. + // + // The connection returned from Dial must not be in a special state + // (subscribed to pubsub channel, transaction started, ...). Dial func() (Conn, error) // TestOnBorrow is an optional application supplied function for checking @@ -116,7 +119,7 @@ type Pool struct { // the timeout to a value less than the server's timeout. IdleTimeout time.Duration - // If Wait is true and the pool is at the MaxIdle limit, then Get() waits + // If Wait is true and the pool is at the MaxActive limit, then Get() waits // for a connection to be returned to the pool before returning. Wait bool @@ -135,8 +138,9 @@ type idleConn struct { t time.Time } -// NewPool creates a new pool. This function is deprecated. Applications should -// initialize the Pool fields directly as shown in example. +// NewPool creates a new pool. +// +// Deprecated: Initialize the Pool directory as shown in the example. func NewPool(newFn func() (Conn, error), maxIdle int) *Pool { return &Pool{Dial: newFn, MaxIdle: maxIdle} } diff --git a/Godeps/_workspace/src/github.com/garyburd/redigo/redis/pool_test.go b/Godeps/_workspace/src/github.com/garyburd/redigo/redis/pool_test.go index 1fe305f16..9419a128f 100644 --- a/Godeps/_workspace/src/github.com/garyburd/redigo/redis/pool_test.go +++ b/Godeps/_workspace/src/github.com/garyburd/redigo/redis/pool_test.go @@ -22,7 +22,6 @@ import ( "testing" "time" - "github.com/garyburd/redigo/internal/redistest" "github.com/garyburd/redigo/redis" ) @@ -32,10 +31,16 @@ type poolTestConn struct { redis.Conn } -func (c *poolTestConn) Close() error { c.d.open -= 1; return nil } -func (c *poolTestConn) Err() error { return c.err } +func (c *poolTestConn) Close() error { + c.d.mu.Lock() + c.d.open -= 1 + c.d.mu.Unlock() + return c.Conn.Close() +} + +func (c *poolTestConn) Err() error { return c.err } -func (c *poolTestConn) Do(commandName string, args ...interface{}) (reply interface{}, err error) { +func (c *poolTestConn) Do(commandName string, args ...interface{}) (interface{}, error) { if commandName == "ERR" { c.err = args[0].(error) commandName = "PING" @@ -52,6 +57,7 @@ func (c *poolTestConn) Send(commandName string, args ...interface{}) error { } type poolDialer struct { + mu sync.Mutex t *testing.T dialed int open int @@ -60,19 +66,25 @@ type poolDialer struct { } func (d *poolDialer) dial() (redis.Conn, error) { + d.mu.Lock() d.dialed += 1 - if d.dialErr != nil { + dialErr := d.dialErr + d.mu.Unlock() + if dialErr != nil { return nil, d.dialErr } - c, err := redistest.Dial() + c, err := redis.DialDefaultServer() if err != nil { return nil, err } + d.mu.Lock() d.open += 1 + d.mu.Unlock() return &poolTestConn{d: d, Conn: c}, nil } func (d *poolDialer) check(message string, p *redis.Pool, dialed, open int) { + d.mu.Lock() if d.dialed != dialed { d.t.Errorf("%s: dialed=%d, want %d", message, d.dialed, dialed) } @@ -82,6 +94,7 @@ func (d *poolDialer) check(message string, p *redis.Pool, dialed, open int) { if active := p.ActiveCount(); active != open { d.t.Errorf("%s: active=%d, want %d", message, active, open) } + d.mu.Unlock() } func TestPoolReuse(t *testing.T) { @@ -111,6 +124,8 @@ func TestPoolMaxIdle(t *testing.T) { MaxIdle: 2, Dial: d.dial, } + defer p.Close() + for i := 0; i < 10; i++ { c1 := p.Get() c1.Do("PING") @@ -133,6 +148,7 @@ func TestPoolError(t *testing.T) { MaxIdle: 2, Dial: d.dial, } + defer p.Close() c := p.Get() c.Do("ERR", io.EOF) @@ -154,6 +170,7 @@ func TestPoolClose(t *testing.T) { MaxIdle: 2, Dial: d.dial, } + defer p.Close() c1 := p.Get() c1.Do("PING") @@ -195,6 +212,7 @@ func TestPoolTimeout(t *testing.T) { IdleTimeout: 300 * time.Second, Dial: d.dial, } + defer p.Close() now := time.Now() redis.SetNowFunc(func() time.Time { return now }) @@ -213,14 +231,14 @@ func TestPoolTimeout(t *testing.T) { c.Close() d.check("2", p, 2, 1) - - p.Close() } func TestPoolConcurrenSendReceive(t *testing.T) { p := &redis.Pool{ - Dial: redistest.Dial, + Dial: redis.DialDefaultServer, } + defer p.Close() + c := p.Get() done := make(chan error, 1) go func() { @@ -238,7 +256,6 @@ func TestPoolConcurrenSendReceive(t *testing.T) { t.Fatalf("Do() returned error %v", err) } c.Close() - p.Close() } func TestPoolBorrowCheck(t *testing.T) { @@ -248,6 +265,7 @@ func TestPoolBorrowCheck(t *testing.T) { Dial: d.dial, TestOnBorrow: func(redis.Conn, time.Time) error { return redis.Error("BLAH") }, } + defer p.Close() for i := 0; i < 10; i++ { c := p.Get() @@ -255,7 +273,6 @@ func TestPoolBorrowCheck(t *testing.T) { c.Close() } d.check("1", p, 10, 1) - p.Close() } func TestPoolMaxActive(t *testing.T) { @@ -265,6 +282,8 @@ func TestPoolMaxActive(t *testing.T) { MaxActive: 2, Dial: d.dial, } + defer p.Close() + c1 := p.Get() c1.Do("PING") c2 := p.Get() @@ -289,7 +308,6 @@ func TestPoolMaxActive(t *testing.T) { c3.Close() d.check("4", p, 2, 2) - p.Close() } func TestPoolMonitorCleanup(t *testing.T) { @@ -299,12 +317,13 @@ func TestPoolMonitorCleanup(t *testing.T) { MaxActive: 2, Dial: d.dial, } + defer p.Close() + c := p.Get() c.Send("MONITOR") c.Close() d.check("", p, 1, 0) - p.Close() } func TestPoolPubSubCleanup(t *testing.T) { @@ -314,6 +333,7 @@ func TestPoolPubSubCleanup(t *testing.T) { MaxActive: 2, Dial: d.dial, } + defer p.Close() c := p.Get() c.Send("SUBSCRIBE", "x") @@ -334,8 +354,6 @@ func TestPoolPubSubCleanup(t *testing.T) { t.Errorf("got commands %v, want %v", d.commands, want) } d.commands = nil - - p.Close() } func TestPoolTransactionCleanup(t *testing.T) { @@ -345,6 +363,7 @@ func TestPoolTransactionCleanup(t *testing.T) { MaxActive: 2, Dial: d.dial, } + defer p.Close() c := p.Get() c.Do("WATCH", "key") @@ -406,8 +425,6 @@ func TestPoolTransactionCleanup(t *testing.T) { t.Errorf("got commands %v, want %v", d.commands, want) } d.commands = nil - - p.Close() } func startGoroutines(p *redis.Pool, cmd string, args ...interface{}) chan error { @@ -436,6 +453,7 @@ func TestWaitPool(t *testing.T) { Wait: true, } defer p.Close() + c := p.Get() errs := startGoroutines(p, "PING") d.check("before close", p, 1, 1) @@ -462,6 +480,8 @@ func TestWaitPoolClose(t *testing.T) { Dial: d.dial, Wait: true, } + defer p.Close() + c := p.Get() if _, err := c.Do("PING"); err != nil { t.Fatal(err) @@ -497,6 +517,7 @@ func TestWaitPoolCommandError(t *testing.T) { Wait: true, } defer p.Close() + c := p.Get() errs := startGoroutines(p, "ERR", testErr) d.check("before close", p, 1, 1) @@ -525,6 +546,7 @@ func TestWaitPoolDialError(t *testing.T) { Wait: true, } defer p.Close() + c := p.Get() errs := startGoroutines(p, "ERR", testErr) d.check("before close", p, 1, 1) @@ -565,7 +587,7 @@ func TestWaitPoolDialError(t *testing.T) { // test ensures that iteration will work correctly if multiple threads are // iterating simultaneously. func TestLocking_TestOnBorrowFails_PoolDoesntCrash(t *testing.T) { - count := 100 + const count = 100 // First we'll Create a pool where the pilfering of idle connections fails. d := poolDialer{t: t} @@ -580,29 +602,17 @@ func TestLocking_TestOnBorrowFails_PoolDoesntCrash(t *testing.T) { defer p.Close() // Fill the pool with idle connections. - b1 := sync.WaitGroup{} - b1.Add(count) - b2 := sync.WaitGroup{} - b2.Add(count) - for i := 0; i < count; i++ { - go func() { - c := p.Get() - if c.Err() != nil { - t.Errorf("pool get failed: %v", c.Err()) - } - b1.Done() - b1.Wait() - c.Close() - b2.Done() - }() + conns := make([]redis.Conn, count) + for i := range conns { + conns[i] = p.Get() } - b2.Wait() - if d.dialed != count { - t.Errorf("Expected %d dials, got %d", count, d.dialed) + for i := range conns { + conns[i].Close() } // Spawn a bunch of goroutines to thrash the pool. - b2.Add(count) + var wg sync.WaitGroup + wg.Add(count) for i := 0; i < count; i++ { go func() { c := p.Get() @@ -610,10 +620,10 @@ func TestLocking_TestOnBorrowFails_PoolDoesntCrash(t *testing.T) { t.Errorf("pool get failed: %v", c.Err()) } c.Close() - b2.Done() + wg.Done() }() } - b2.Wait() + wg.Wait() if d.dialed != count*2 { t.Errorf("Expected %d dials, got %d", count*2, d.dialed) } @@ -621,7 +631,7 @@ func TestLocking_TestOnBorrowFails_PoolDoesntCrash(t *testing.T) { func BenchmarkPoolGet(b *testing.B) { b.StopTimer() - p := redis.Pool{Dial: redistest.Dial, MaxIdle: 2} + p := redis.Pool{Dial: redis.DialDefaultServer, MaxIdle: 2} c := p.Get() if err := c.Err(); err != nil { b.Fatal(err) @@ -637,7 +647,7 @@ func BenchmarkPoolGet(b *testing.B) { func BenchmarkPoolGetErr(b *testing.B) { b.StopTimer() - p := redis.Pool{Dial: redistest.Dial, MaxIdle: 2} + p := redis.Pool{Dial: redis.DialDefaultServer, MaxIdle: 2} c := p.Get() if err := c.Err(); err != nil { b.Fatal(err) @@ -656,7 +666,7 @@ func BenchmarkPoolGetErr(b *testing.B) { func BenchmarkPoolGetPing(b *testing.B) { b.StopTimer() - p := redis.Pool{Dial: redistest.Dial, MaxIdle: 2} + p := redis.Pool{Dial: redis.DialDefaultServer, MaxIdle: 2} c := p.Get() if err := c.Err(); err != nil { b.Fatal(err) diff --git a/Godeps/_workspace/src/github.com/garyburd/redigo/redis/pubsub_test.go b/Godeps/_workspace/src/github.com/garyburd/redigo/redis/pubsub_test.go index 365a58821..a3ed84e68 100644 --- a/Godeps/_workspace/src/github.com/garyburd/redigo/redis/pubsub_test.go +++ b/Godeps/_workspace/src/github.com/garyburd/redigo/redis/pubsub_test.go @@ -16,20 +16,18 @@ package redis_test import ( "fmt" - "net" "reflect" "sync" "testing" - "time" - "github.com/garyburd/redigo/internal/redistest" "github.com/garyburd/redigo/redis" ) func publish(channel, value interface{}) { c, err := dial() if err != nil { - panic(err) + fmt.Println(err) + return } defer c.Close() c.Do("PUBLISH", channel, value) @@ -39,7 +37,8 @@ func publish(channel, value interface{}) { func ExamplePubSubConn() { c, err := dial() if err != nil { - panic(err) + fmt.Println(err) + return } defer c.Close() var wg sync.WaitGroup @@ -111,20 +110,19 @@ func expectPushed(t *testing.T, c redis.PubSubConn, message string, expected int } func TestPushed(t *testing.T) { - pc, err := redistest.Dial() + pc, err := redis.DialDefaultServer() if err != nil { t.Fatalf("error connection to database, %v", err) } defer pc.Close() - nc, err := net.Dial("tcp", ":6379") + sc, err := redis.DialDefaultServer() if err != nil { - t.Fatal(err) + t.Fatalf("error connection to database, %v", err) } - defer nc.Close() - nc.SetReadDeadline(time.Now().Add(4 * time.Second)) + defer sc.Close() - c := redis.PubSubConn{Conn: redis.NewConn(nc, 0, 0)} + c := redis.PubSubConn{Conn: sc} c.Subscribe("c1") expectPushed(t, c, "Subscribe(c1)", redis.Subscription{Kind: "subscribe", Channel: "c1", Count: 1}) diff --git a/Godeps/_workspace/src/github.com/garyburd/redigo/redis/reply.go b/Godeps/_workspace/src/github.com/garyburd/redigo/redis/reply.go index 5af29bf51..57896147f 100644 --- a/Godeps/_workspace/src/github.com/garyburd/redigo/redis/reply.go +++ b/Godeps/_workspace/src/github.com/garyburd/redigo/redis/reply.go @@ -215,7 +215,9 @@ func Bool(reply interface{}, err error) (bool, error) { return false, fmt.Errorf("redigo: unexpected type for Bool, got type %T", reply) } -// MultiBulk is deprecated. Use Values. +// MultiBulk is a helper that converts an array command reply to a []interface{}. +// +// Deprecated: Use Values instead. func MultiBulk(reply interface{}, err error) ([]interface{}, error) { return Values(reply, err) } // Values is a helper that converts an array command reply to a []interface{}. @@ -271,13 +273,40 @@ func Strings(reply interface{}, err error) ([]string, error) { return nil, fmt.Errorf("redigo: unexpected type for Strings, got type %T", reply) } +// ByteSlices is a helper that converts an array command reply to a [][]byte. +// If err is not equal to nil, then ByteSlices returns nil, err. Nil array +// items are stay nil. ByteSlices returns an error if an array item is not a +// bulk string or nil. +func ByteSlices(reply interface{}, err error) ([][]byte, error) { + if err != nil { + return nil, err + } + switch reply := reply.(type) { + case []interface{}: + result := make([][]byte, len(reply)) + for i := range reply { + if reply[i] == nil { + continue + } + p, ok := reply[i].([]byte) + if !ok { + return nil, fmt.Errorf("redigo: unexpected element type for ByteSlices, got type %T", reply[i]) + } + result[i] = p + } + return result, nil + case nil: + return nil, ErrNil + case Error: + return nil, reply + } + return nil, fmt.Errorf("redigo: unexpected type for ByteSlices, got type %T", reply) +} + // Ints is a helper that converts an array command reply to a []int. If // err is not equal to nil, then Ints returns nil, err. func Ints(reply interface{}, err error) ([]int, error) { var ints []int - if reply == nil { - return ints, ErrNil - } values, err := Values(reply, err) if err != nil { return ints, err diff --git a/Godeps/_workspace/src/github.com/garyburd/redigo/redis/reply_test.go b/Godeps/_workspace/src/github.com/garyburd/redigo/redis/reply_test.go index 92744c590..2c774866d 100644 --- a/Godeps/_workspace/src/github.com/garyburd/redigo/redis/reply_test.go +++ b/Godeps/_workspace/src/github.com/garyburd/redigo/redis/reply_test.go @@ -19,7 +19,6 @@ import ( "reflect" "testing" - "github.com/garyburd/redigo/internal/redistest" "github.com/garyburd/redigo/redis" ) @@ -58,6 +57,16 @@ var replyTests = []struct { ve([]string(nil), redis.ErrNil), }, { + "byteslices([v1, v2])", + ve(redis.ByteSlices([]interface{}{[]byte("v1"), []byte("v2")}, nil)), + ve([][]byte{[]byte("v1"), []byte("v2")}, nil), + }, + { + "byteslices(nil)", + ve(redis.ByteSlices(nil, nil)), + ve([][]byte(nil), redis.ErrNil), + }, + { "values([v1, v2])", ve(redis.Values([]interface{}{[]byte("v1"), []byte("v2")}, nil)), ve([]interface{}{[]byte("v1"), []byte("v2")}, nil), @@ -101,15 +110,16 @@ func TestReply(t *testing.T) { } } -// dial wraps DialTestDB() with a more suitable function name for examples. +// dial wraps DialDefaultServer() with a more suitable function name for examples. func dial() (redis.Conn, error) { - return redistest.Dial() + return redis.DialDefaultServer() } func ExampleBool() { c, err := dial() if err != nil { - panic(err) + fmt.Println(err) + return } defer c.Close() @@ -123,7 +133,8 @@ func ExampleBool() { func ExampleInt() { c, err := dial() if err != nil { - panic(err) + fmt.Println(err) + return } defer c.Close() @@ -140,7 +151,8 @@ func ExampleInt() { func ExampleInts() { c, err := dial() if err != nil { - panic(err) + fmt.Println(err) + return } defer c.Close() @@ -154,7 +166,8 @@ func ExampleInts() { func ExampleString() { c, err := dial() if err != nil { - panic(err) + fmt.Println(err) + return } defer c.Close() diff --git a/Godeps/_workspace/src/github.com/garyburd/redigo/redis/scan.go b/Godeps/_workspace/src/github.com/garyburd/redigo/redis/scan.go index 8c9cfa18d..962e94bcc 100644 --- a/Godeps/_workspace/src/github.com/garyburd/redigo/redis/scan.go +++ b/Godeps/_workspace/src/github.com/garyburd/redigo/redis/scan.go @@ -32,11 +32,25 @@ func ensureLen(d reflect.Value, n int) { } func cannotConvert(d reflect.Value, s interface{}) error { - return fmt.Errorf("redigo: Scan cannot convert from %s to %s", - reflect.TypeOf(s), d.Type()) + var sname string + switch s.(type) { + case string: + sname = "Redis simple string" + case Error: + sname = "Redis error" + case int64: + sname = "Redis integer" + case []byte: + sname = "Redis bulk string" + case []interface{}: + sname = "Redis array" + default: + sname = reflect.TypeOf(s).String() + } + return fmt.Errorf("cannot convert from %s to %s", sname, d.Type()) } -func convertAssignBytes(d reflect.Value, s []byte) (err error) { +func convertAssignBulkString(d reflect.Value, s []byte) (err error) { switch d.Type().Kind() { case reflect.Float32, reflect.Float64: var x float64 @@ -98,7 +112,7 @@ func convertAssignInt(d reflect.Value, s int64) (err error) { func convertAssignValue(d reflect.Value, s interface{}) (err error) { switch s := s.(type) { case []byte: - err = convertAssignBytes(d, s) + err = convertAssignBulkString(d, s) case int64: err = convertAssignInt(d, s) default: @@ -107,7 +121,7 @@ func convertAssignValue(d reflect.Value, s interface{}) (err error) { return err } -func convertAssignValues(d reflect.Value, s []interface{}) error { +func convertAssignArray(d reflect.Value, s []interface{}) error { if d.Type().Kind() != reflect.Slice { return cannotConvert(d, s) } @@ -144,7 +158,7 @@ func convertAssign(d interface{}, s interface{}) (err error) { if d := reflect.ValueOf(d); d.Type().Kind() != reflect.Ptr { err = cannotConvert(d, s) } else { - err = convertAssignBytes(d.Elem(), s) + err = convertAssignBulkString(d.Elem(), s) } } case int64: @@ -169,6 +183,13 @@ func convertAssign(d interface{}, s interface{}) (err error) { err = convertAssignInt(d.Elem(), s) } } + case string: + switch d := d.(type) { + case *string: + *d = string(s) + default: + err = cannotConvert(reflect.ValueOf(d), s) + } case []interface{}: switch d := d.(type) { case *[]interface{}: @@ -181,7 +202,7 @@ func convertAssign(d interface{}, s interface{}) (err error) { if d := reflect.ValueOf(d); d.Type().Kind() != reflect.Ptr { err = cannotConvert(d, s) } else { - err = convertAssignValues(d.Elem(), s) + err = convertAssignArray(d.Elem(), s) } } case Error: @@ -206,12 +227,13 @@ func convertAssign(d interface{}, s interface{}) (err error) { // following the copied values. func Scan(src []interface{}, dest ...interface{}) ([]interface{}, error) { if len(src) < len(dest) { - return nil, errors.New("redigo: Scan array short") + return nil, errors.New("redigo.Scan: array short") } var err error for i, d := range dest { err = convertAssign(d, src[i]) if err != nil { + err = fmt.Errorf("redigo.Scan: cannot assign to dest %d: %v", i, err) break } } @@ -219,9 +241,9 @@ func Scan(src []interface{}, dest ...interface{}) ([]interface{}, error) { } type fieldSpec struct { - name string - index []int - //omitEmpty bool + name string + index []int + omitEmpty bool } type structSpec struct { @@ -237,7 +259,7 @@ func compileStructSpec(t reflect.Type, depth map[string]int, index []int, ss *st for i := 0; i < t.NumField(); i++ { f := t.Field(i) switch { - case f.PkgPath != "": + case f.PkgPath != "" && !f.Anonymous: // Ignore unexported fields. case f.Anonymous: // TODO: Handle pointers. Requires change to decoder and @@ -258,10 +280,10 @@ func compileStructSpec(t reflect.Type, depth map[string]int, index []int, ss *st } for _, s := range p[1:] { switch s { - //case "omitempty": - // fs.omitempty = true + case "omitempty": + fs.omitEmpty = true default: - panic(errors.New("redigo: unknown field flag " + s + " for type " + t.Name())) + panic(fmt.Errorf("redigo: unknown field tag %s for type %s", s, t.Name())) } } } @@ -321,7 +343,7 @@ func structSpecForType(t reflect.Type) *structSpec { return ss } -var errScanStructValue = errors.New("redigo: ScanStruct value must be non-nil pointer to a struct") +var errScanStructValue = errors.New("redigo.ScanStruct: value must be non-nil pointer to a struct") // ScanStruct scans alternating names and values from src to a struct. The // HGETALL and CONFIG GET commands return replies in this format. @@ -350,7 +372,7 @@ func ScanStruct(src []interface{}, dest interface{}) error { ss := structSpecForType(d.Type()) if len(src)%2 != 0 { - return errors.New("redigo: ScanStruct expects even number of values in values") + return errors.New("redigo.ScanStruct: number of values not a multiple of 2") } for i := 0; i < len(src); i += 2 { @@ -360,21 +382,21 @@ func ScanStruct(src []interface{}, dest interface{}) error { } name, ok := src[i].([]byte) if !ok { - return errors.New("redigo: ScanStruct key not a bulk string value") + return fmt.Errorf("redigo.ScanStruct: key %d not a bulk string value", i) } fs := ss.fieldSpec(name) if fs == nil { continue } if err := convertAssignValue(d.FieldByIndex(fs.index), s); err != nil { - return err + return fmt.Errorf("redigo.ScanStruct: cannot assign field %s: %v", fs.name, err) } } return nil } var ( - errScanSliceValue = errors.New("redigo: ScanSlice dest must be non-nil pointer to a struct") + errScanSliceValue = errors.New("redigo.ScanSlice: dest must be non-nil pointer to a struct") ) // ScanSlice scans src to the slice pointed to by dest. The elements the dest @@ -407,7 +429,7 @@ func ScanSlice(src []interface{}, dest interface{}, fieldNames ...string) error continue } if err := convertAssignValue(d.Index(i), s); err != nil { - return err + return fmt.Errorf("redigo.ScanSlice: cannot assign element %d: %v", i, err) } } return nil @@ -420,18 +442,18 @@ func ScanSlice(src []interface{}, dest interface{}, fieldNames ...string) error for i, name := range fieldNames { fss[i] = ss.m[name] if fss[i] == nil { - return errors.New("redigo: ScanSlice bad field name " + name) + return fmt.Errorf("redigo.ScanSlice: ScanSlice bad field name %s", name) } } } if len(fss) == 0 { - return errors.New("redigo: ScanSlice no struct fields") + return errors.New("redigo.ScanSlice: no struct fields") } n := len(src) / len(fss) if n*len(fss) != len(src) { - return errors.New("redigo: ScanSlice length not a multiple of struct field count") + return errors.New("redigo.ScanSlice: length not a multiple of struct field count") } ensureLen(d, n) @@ -449,7 +471,7 @@ func ScanSlice(src []interface{}, dest interface{}, fieldNames ...string) error continue } if err := convertAssignValue(d.FieldByIndex(fs.index), s); err != nil { - return err + return fmt.Errorf("redigo.ScanSlice: cannot assign element %d to field %s: %v", i*len(fss)+j, fs.name, err) } } } @@ -507,6 +529,26 @@ func flattenStruct(args Args, v reflect.Value) Args { ss := structSpecForType(v.Type()) for _, fs := range ss.l { fv := v.FieldByIndex(fs.index) + if fs.omitEmpty { + var empty = false + switch fv.Kind() { + case reflect.Array, reflect.Map, reflect.Slice, reflect.String: + empty = fv.Len() == 0 + case reflect.Bool: + empty = !fv.Bool() + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + empty = fv.Int() == 0 + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + empty = fv.Uint() == 0 + case reflect.Float32, reflect.Float64: + empty = fv.Float() == 0 + case reflect.Interface, reflect.Ptr: + empty = fv.IsNil() + } + if empty { + continue + } + } args = append(args, fs.name, fv.Interface()) } return args diff --git a/Godeps/_workspace/src/github.com/garyburd/redigo/redis/scan_test.go b/Godeps/_workspace/src/github.com/garyburd/redigo/redis/scan_test.go index b57dd8969..d364dff42 100644 --- a/Godeps/_workspace/src/github.com/garyburd/redigo/redis/scan_test.go +++ b/Godeps/_workspace/src/github.com/garyburd/redigo/redis/scan_test.go @@ -16,10 +16,11 @@ package redis_test import ( "fmt" - "github.com/garyburd/redigo/redis" "math" "reflect" "testing" + + "github.com/garyburd/redigo/redis" ) var scanConversionTests = []struct { @@ -46,6 +47,7 @@ var scanConversionTests = []struct { {[]byte("1"), true}, {int64(1), true}, {[]byte("t"), true}, + {"hello", "hello"}, {[]byte("hello"), "hello"}, {[]byte("world"), []byte("world")}, {[]interface{}{[]byte("foo")}, []interface{}{[]byte("foo")}}, @@ -100,7 +102,8 @@ func TestScanConversionError(t *testing.T) { func ExampleScan() { c, err := dial() if err != nil { - panic(err) + fmt.Println(err) + return } defer c.Close() @@ -115,7 +118,8 @@ func ExampleScan() { "GET", "album:*->title", "GET", "album:*->rating")) if err != nil { - panic(err) + fmt.Println(err) + return } for len(values) > 0 { @@ -123,7 +127,8 @@ func ExampleScan() { rating := -1 // initialize to illegal value to detect nil. values, err = redis.Scan(values, &title, &rating) if err != nil { - panic(err) + fmt.Println(err) + return } if rating == -1 { fmt.Println(title, "not-rated") @@ -295,7 +300,8 @@ func TestScanSlice(t *testing.T) { func ExampleScanSlice() { c, err := dial() if err != nil { - panic(err) + fmt.Println(err) + return } defer c.Close() @@ -310,7 +316,8 @@ func ExampleScanSlice() { "GET", "album:*->title", "GET", "album:*->rating")) if err != nil { - panic(err) + fmt.Println(err) + return } var albums []struct { @@ -318,7 +325,8 @@ func ExampleScanSlice() { Rating int } if err := redis.ScanSlice(values, &albums); err != nil { - panic(err) + fmt.Println(err) + return } fmt.Printf("%v\n", albums) // Output: @@ -332,16 +340,17 @@ var argsTests = []struct { }{ {"struct ptr", redis.Args{}.AddFlat(&struct { - I int `redis:"i"` - U uint `redis:"u"` - S string `redis:"s"` - P []byte `redis:"p"` + I int `redis:"i"` + U uint `redis:"u"` + S string `redis:"s"` + P []byte `redis:"p"` + M map[string]string `redis:"m"` Bt bool Bf bool }{ - -1234, 5678, "hello", []byte("world"), true, false, + -1234, 5678, "hello", []byte("world"), map[string]string{"hello": "world"}, true, false, }), - redis.Args{"i", int(-1234), "u", uint(5678), "s", "hello", "p", []byte("world"), "Bt", true, "Bf", false}, + redis.Args{"i", int(-1234), "u", uint(5678), "s", "hello", "p", []byte("world"), "m", map[string]string{"hello": "world"}, "Bt", true, "Bf", false}, }, {"struct", redis.Args{}.AddFlat(struct{ I int }{123}), @@ -351,6 +360,20 @@ var argsTests = []struct { redis.Args{}.Add(1).AddFlat([]string{"a", "b", "c"}).Add(2), redis.Args{1, "a", "b", "c", 2}, }, + {"struct omitempty", + redis.Args{}.AddFlat(&struct { + I int `redis:"i,omitempty"` + U uint `redis:"u,omitempty"` + S string `redis:"s,omitempty"` + P []byte `redis:"p,omitempty"` + M map[string]string `redis:"m,omitempty"` + Bt bool `redis:"Bt,omitempty"` + Bf bool `redis:"Bf,omitempty"` + }{ + 0, 0, "", []byte{}, map[string]string{}, true, false, + }), + redis.Args{"Bt", true}, + }, } func TestArgs(t *testing.T) { @@ -364,7 +387,8 @@ func TestArgs(t *testing.T) { func ExampleArgs() { c, err := dial() if err != nil { - panic(err) + fmt.Println(err) + return } defer c.Close() @@ -379,7 +403,8 @@ func ExampleArgs() { p1.Body = "Hello" if _, err := c.Do("HMSET", redis.Args{}.Add("id1").AddFlat(&p1)...); err != nil { - panic(err) + fmt.Println(err) + return } m := map[string]string{ @@ -389,18 +414,21 @@ func ExampleArgs() { } if _, err := c.Do("HMSET", redis.Args{}.Add("id2").AddFlat(m)...); err != nil { - panic(err) + fmt.Println(err) + return } for _, id := range []string{"id1", "id2"} { v, err := redis.Values(c.Do("HGETALL", id)) if err != nil { - panic(err) + fmt.Println(err) + return } if err := redis.ScanStruct(v, &p2); err != nil { - panic(err) + fmt.Println(err) + return } fmt.Printf("%+v\n", p2) diff --git a/Godeps/_workspace/src/github.com/garyburd/redigo/redis/script_test.go b/Godeps/_workspace/src/github.com/garyburd/redigo/redis/script_test.go index c9635bf08..42f3c0363 100644 --- a/Godeps/_workspace/src/github.com/garyburd/redigo/redis/script_test.go +++ b/Godeps/_workspace/src/github.com/garyburd/redigo/redis/script_test.go @@ -20,7 +20,6 @@ import ( "testing" "time" - "github.com/garyburd/redigo/internal/redistest" "github.com/garyburd/redigo/redis" ) @@ -35,7 +34,7 @@ func ExampleScript(c redis.Conn, reply interface{}, err error) { } func TestScript(t *testing.T) { - c, err := redistest.Dial() + c, err := redis.DialDefaultServer() if err != nil { t.Fatalf("error connection to database, %v", err) } diff --git a/Godeps/_workspace/src/github.com/garyburd/redigo/redis/test_test.go b/Godeps/_workspace/src/github.com/garyburd/redigo/redis/test_test.go index b959a11f4..7240fa1f3 100644 --- a/Godeps/_workspace/src/github.com/garyburd/redigo/redis/test_test.go +++ b/Godeps/_workspace/src/github.com/garyburd/redigo/redis/test_test.go @@ -16,7 +16,17 @@ package redis import ( "bufio" - "net" + "errors" + "flag" + "fmt" + "io" + "io/ioutil" + "os" + "os/exec" + "strconv" + "strings" + "sync" + "testing" "time" ) @@ -24,15 +34,144 @@ func SetNowFunc(f func() time.Time) { nowFunc = f } -type nopCloser struct{ net.Conn } +var ( + ErrNegativeInt = errNegativeInt -func (nopCloser) Close() error { return nil } + serverPath = flag.String("redis-server", "redis-server", "Path to redis server binary") + serverBasePort = flag.Int("redis-port", 16379, "Beginning of port range for test servers") + serverLogName = flag.String("redis-log", "", "Write Redis server logs to `filename`") + serverLog = ioutil.Discard + + defaultServerMu sync.Mutex + defaultServer *Server + defaultServerErr error +) -// NewConnBufio is a hook for tests. -func NewConnBufio(rw bufio.ReadWriter) Conn { - return &conn{br: rw.Reader, bw: rw.Writer, conn: nopCloser{}} +type Server struct { + name string + cmd *exec.Cmd + done chan struct{} } -var ( - ErrNegativeInt = errNegativeInt -) +func NewServer(name string, args ...string) (*Server, error) { + s := &Server{ + name: name, + cmd: exec.Command(*serverPath, args...), + done: make(chan struct{}), + } + + r, err := s.cmd.StdoutPipe() + if err != nil { + return nil, err + } + + err = s.cmd.Start() + if err != nil { + return nil, err + } + + ready := make(chan error, 1) + go s.watch(r, ready) + + select { + case err = <-ready: + case <-time.After(time.Second * 10): + err = errors.New("timeout waiting for server to start") + } + + if err != nil { + s.Stop() + return nil, err + } + + return s, nil +} + +func (s *Server) watch(r io.Reader, ready chan error) { + fmt.Fprintf(serverLog, "%d START %s \n", s.cmd.Process.Pid, s.name) + var listening bool + var text string + scn := bufio.NewScanner(r) + for scn.Scan() { + text = scn.Text() + fmt.Fprintf(serverLog, "%s\n", text) + if !listening { + if strings.Contains(text, "The server is now ready to accept connections on port") { + listening = true + ready <- nil + } + } + } + if !listening { + ready <- fmt.Errorf("server exited: %s", text) + } + s.cmd.Wait() + fmt.Fprintf(serverLog, "%d STOP %s \n", s.cmd.Process.Pid, s.name) + close(s.done) +} + +func (s *Server) Stop() { + s.cmd.Process.Signal(os.Interrupt) + <-s.done +} + +// stopDefaultServer stops the server created by DialDefaultServer. +func stopDefaultServer() { + defaultServerMu.Lock() + defer defaultServerMu.Unlock() + if defaultServer != nil { + defaultServer.Stop() + defaultServer = nil + } +} + +// startDefaultServer starts the default server if not already running. +func startDefaultServer() error { + defaultServerMu.Lock() + defer defaultServerMu.Unlock() + if defaultServer != nil || defaultServerErr != nil { + return defaultServerErr + } + defaultServer, defaultServerErr = NewServer( + "default", + "--port", strconv.Itoa(*serverBasePort), + "--save", "", + "--appendonly", "no") + return defaultServerErr +} + +// DialDefaultServer starts the test server if not already started and dials a +// connection to the server. +func DialDefaultServer() (Conn, error) { + if err := startDefaultServer(); err != nil { + return nil, err + } + c, err := Dial("tcp", fmt.Sprintf(":%d", *serverBasePort), DialReadTimeout(1*time.Second), DialWriteTimeout(1*time.Second)) + if err != nil { + return nil, err + } + c.Do("FLUSHDB") + return c, nil +} + +func TestMain(m *testing.M) { + os.Exit(func() int { + flag.Parse() + + var f *os.File + if *serverLogName != "" { + var err error + f, err = os.OpenFile(*serverLogName, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0600) + if err != nil { + fmt.Fprintf(os.Stderr, "Error opening redis-log: %v\n", err) + return 1 + } + defer f.Close() + serverLog = f + } + + defer stopDefaultServer() + + return m.Run() + }()) +} diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/.travis.yml b/Godeps/_workspace/src/github.com/go-gorp/gorp/.travis.yml index 6df5edf1c..ce4602884 100644 --- a/Godeps/_workspace/src/github.com/go-gorp/gorp/.travis.yml +++ b/Godeps/_workspace/src/github.com/go-gorp/gorp/.travis.yml @@ -1,23 +1,28 @@ language: go go: - - 1.2 - - 1.3 - - 1.4 - - tip +- 1.3 +- 1.4 +- tip services: - - mysql - - postgres - - sqlite3 +- mysql +- postgres +- sqlite3 + +env: + global: + - secure: RriLxF6+2yMl67hdVv8ImXlu0h62mhcpqjaOgYNU+IEbUQ7hx96CKY6gkpYubW3BgApvF5RH6j3+HKvh2kGp0XhDOYOQCODfBSaSipZ5Aa5RKjsEYLtuVIobvJ80awR9hUeql69+WXs0/s72WThG0qTbOUY4pqHWfteeY235hWM= before_script: - - mysql -e "CREATE DATABASE gorptest;" - - mysql -u root -e "GRANT ALL ON gorptest.* TO gorptest@localhost IDENTIFIED BY 'gorptest'" - - psql -c "CREATE DATABASE gorptest;" -U postgres - - psql -c "CREATE USER "gorptest" WITH SUPERUSER PASSWORD 'gorptest';" -U postgres - - go get github.com/lib/pq - - go get github.com/mattn/go-sqlite3 - - go get github.com/ziutek/mymysql/godrv - - go get github.com/go-sql-driver/mysql +- mysql -e "CREATE DATABASE gorptest;" +- mysql -u root -e "GRANT ALL ON gorptest.* TO gorptest@localhost IDENTIFIED BY 'gorptest'" +- psql -c "CREATE DATABASE gorptest;" -U postgres +- psql -c "CREATE USER "gorptest" WITH SUPERUSER PASSWORD 'gorptest';" -U postgres +- go get github.com/lib/pq +- go get github.com/mattn/go-sqlite3 +- go get github.com/ziutek/mymysql/godrv +- go get github.com/go-sql-driver/mysql +- go get golang.org/x/tools/cmd/cover +- go get github.com/mattn/goveralls script: ./test_all.sh diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/Makefile b/Godeps/_workspace/src/github.com/go-gorp/gorp/Makefile deleted file mode 100644 index 3a27ae194..000000000 --- a/Godeps/_workspace/src/github.com/go-gorp/gorp/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -include $(GOROOT)/src/Make.inc - -TARG = github.com/go-gorp/gorp -GOFILES = gorp.go dialect.go - -include $(GOROOT)/src/Make.pkg
\ No newline at end of file diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/README.md b/Godeps/_workspace/src/github.com/go-gorp/gorp/README.md index d2de8c2b6..3f0652bc7 100644 --- a/Godeps/_workspace/src/github.com/go-gorp/gorp/README.md +++ b/Godeps/_workspace/src/github.com/go-gorp/gorp/README.md @@ -1,19 +1,26 @@ # Go Relational Persistence -[![build status](https://secure.travis-ci.org/go-gorp/gorp.png)](http://travis-ci.org/go-gorp/gorp) +[![build status](https://img.shields.io/travis/go-gorp/gorp.svg)](http://travis-ci.org/go-gorp/gorp) +[![code coverage](https://img.shields.io/coveralls/go-gorp/gorp.svg)](https://coveralls.io/r/go-gorp/gorp) +[![issues](https://img.shields.io/github/issues/go-gorp/gorp.svg)](https://github.com/go-gorp/gorp/issues) +[![godoc v1](https://img.shields.io/badge/godoc-v1-375EAB.svg)](https://godoc.org/gopkg.in/gorp.v1) +[![godoc bleeding edge](https://img.shields.io/badge/godoc-bleeding--edge-375EAB.svg)](https://godoc.org/github.com/go-gorp/gorp) -I hesitate to call gorp an ORM. Go doesn't really have objects, at least -not in the classic Smalltalk/Java sense. There goes the "O". gorp doesn't -know anything about the relationships between your structs (at least not -yet). So the "R" is questionable too (but I use it in the name because, -well, it seemed more clever). +### Update 2015-07-01 Cleanup & feature freeze ([#270](https://github.com/go-gorp/gorp/issues/270)) -The "M" is alive and well. Given some Go structs and a database, gorp -should remove a fair amount of boilerplate busy-work from your code. +We are currently cleaning up the backlog of issues and PR's. When this is done the codebase will be split into separate files and there will be breaking changes to the API's. We're also adding better tests and documentation. As a result of these changes the `master` branch will be unstable. Please use `gopkg.in/gorp.v1`. When the cleanup and changes are done, we will release `v2.0`. -I hope that gorp saves you time, minimizes the drudgery of getting data -in and out of your database, and helps your code focus on algorithms, -not infrastructure. +At this time we won't accept new feature-related pull-requests because of changes to the codebase. Please create an issue for your feature and wait until `v2.0` has been released. + +For more information, please read [#270](https://github.com/go-gorp/gorp/issues/270). + +## Introduction + +I hesitate to call gorp an ORM. Go doesn't really have objects, at least not in the classic Smalltalk/Java sense. There goes the "O". gorp doesn't know anything about the relationships between your structs (at least not yet). So the "R" is questionable too (but I use it in the name because, well, it seemed more clever). + +The "M" is alive and well. Given some Go structs and a database, gorp should remove a fair amount of boilerplate busy-work from your code. + +I hope that gorp saves you time, minimizes the drudgery of getting data in and out of your database, and helps your code focus on algorithms, not infrastructure. * Bind struct fields to table columns via API or tag * Support for embedded structs @@ -34,7 +41,7 @@ not infrastructure. # install the library: go get gopkg.in/gorp.v1 - + // use in your .go code: import ( "gopkg.in/gorp.v1" @@ -143,10 +150,10 @@ func main() { type Post struct { // db tag lets you specify the column name if it differs from the struct field - Id int64 `db:"post_id"` + Id int64 `db:"post_id"` Created int64 - Title string - Body string + Title string `db:",size:50"` // Column size set to 50 + Body string `db:"article_body,size:1024"` // Set both column name and size } func newPost(title, body string) Post { @@ -201,7 +208,7 @@ type Invoice struct { } type Person struct { - Id int64 + Id int64 Created int64 Updated int64 FName string @@ -221,8 +228,10 @@ type Person struct { // table.ColMap("Price").Rename("unit_price") // table.ColMap("IgnoreMe").SetTransient(true) // +// You can optionally declare the field to be a primary key and/or autoincrement +// type Product struct { - Id int64 `db:"product_id"` + Id int64 `db:"product_id, primarykey, autoincrement"` Price int64 `db:"unit_price"` IgnoreMe string `db:"-"` } @@ -239,7 +248,7 @@ db, err := sql.Open("mymysql", "tcp:localhost:3306*mydb/myuser/mypassword") dbmap := &gorp.DbMap{Db: db, Dialect: gorp.MySQLDialect{"InnoDB", "UTF8"}} // register the structs you wish to use with gorp -// you can also use the shorter dbmap.AddTable() if you +// you can also use the shorter dbmap.AddTable() if you // don't want to override the table name // // SetKeys(true) means we have a auto increment primary key, which @@ -296,13 +305,13 @@ I recommend enabling this initially while you're getting the feel for what gorp is doing on your behalf. Gorp defines a `GorpLogger` interface that Go's built in `log.Logger` satisfies. -However, you can write your own `GorpLogger` implementation, or use a package such +However, you can write your own `GorpLogger` implementation, or use a package such as `glog` if you want more control over how statements are logged. ```go // Will log all SQL statements + args as they are run // The first arg is a string prefix to prepend to all log messages -dbmap.TraceOn("[gorp]", log.New(os.Stdout, "myapp:", log.Lmicroseconds)) +dbmap.TraceOn("[gorp]", log.New(os.Stdout, "myapp:", log.Lmicroseconds)) // Turn off tracing dbmap.TraceOff() @@ -435,7 +444,7 @@ only supported in SELECT queries. ```go _, err := dbm.Select(&dest, "select * from Foo where name = :name and age = :age", map[string]interface{}{ - "name": "Rob", + "name": "Rob", "age": 31, }) ``` @@ -509,11 +518,11 @@ Full list of hooks that you can implement: PostUpdate PreDelete PostDelete - + All have the same signature. for example: - + func (p *MyStruct) PostUpdate(s gorp.SqlExecutor) error - + ### Optimistic Locking #### Note that this behaviour has changed in v2. See [Migration Guide](#migration-guide). @@ -536,7 +545,7 @@ type Person struct { Updated int64 FName string LName string - + // automatically used as the Version col // use table.SetVersionCol("columnName") to map a different // struct field as the version field @@ -558,7 +567,7 @@ count, err := dbmap.Update(p1) _, ok := err.(gorp.OptimisticLockError) if ok { // should reach this statement - + // in a real app you might reload the row and retry, or // you might propegate this to the user, depending on the desired // semantics @@ -568,6 +577,49 @@ if ok { fmt.Printf("Unknown db err: %v\n", err) } ``` +### Adding INDEX(es) on column(s) beyond the primary key ### + +Indexes are frequently critical for performance. Here is how to add them to your tables. + +NB: SqlServer and Oracle need testing and possible adjustment to the +CreateIndexSuffix() and DropIndexSuffix() methods to make AddIndex() +work for them. + +In the example below we put an index both on the Id field, and on the AcctId field. + +``` +type Account struct { + Id int64 + AcctId string // e.g. this might be a long uuid for portability +} + +// indexType (the 2nd param to AddIndex call) is "Btree" or "Hash" for MySQL. +// demonstrate adding a second index on AcctId, and constrain that field to have unique values. +dbm.AddTable(iptab.Account{}).SetKeys(true, "Id").AddIndex("AcctIdIndex", "Btree", []string{"AcctId"}).SetUnique(true) + +err = dbm.CreateTablesIfNotExists() +checkErr(err, "CreateTablesIfNotExists failed") + +err = dbm.CreateIndex() +checkErr(err, "CreateIndex failed") + +``` +Check the effect of the CreateIndex() call in mysql: +``` +$ mysql + +MariaDB [test]> show create table Account; ++---------+--------------------------+ +| Account | CREATE TABLE `Account` ( + `Id` bigint(20) NOT NULL AUTO_INCREMENT, + `AcctId` varchar(255) DEFAULT NULL, + PRIMARY KEY (`Id`), + UNIQUE KEY `AcctIdIndex` (`AcctId`) USING BTREE <<<--- yes! index added. +) ENGINE=InnoDB DEFAULT CHARSET=utf8 ++---------+--------------------------+ + +``` + ## Database Drivers @@ -582,13 +634,13 @@ implemented per database vendor. Dialects are provided for: * PostgreSQL * sqlite3 -Each of these three databases pass the test suite. See `gorp_test.go` for example +Each of these three databases pass the test suite. See `gorp_test.go` for example DSNs for these three databases. Support is also provided for: * Oracle (contributed by @klaidliadon) -* SQL Server (contributed by @qrawl) - use driver: github.com/denisenkom/go-mssqldb +* SQL Server (contributed by @qrawl) - use driver: github.com/denisenkom/go-mssqldb Note that these databases are not covered by CI and I (@coopernurse) have no good way to test them locally. So please try them and send patches as needed, but expect a bit more @@ -598,7 +650,7 @@ unpredicability. ### SQL placeholder portability -Different databases use different strings to indicate variable placeholders in +Different databases use different strings to indicate variable placeholders in prepared SQL statements. Unlike some database abstraction layers (such as JDBC), Go's `database/sql` does not standardize this. @@ -617,13 +669,18 @@ In `Select` and `SelectOne` you can use named parameters to work around this. The following is portable: ```go -err := dbmap.SelectOne(&val, "select * from foo where id = :id", +err := dbmap.SelectOne(&val, "select * from foo where id = :id", map[string]interface{} { "id": 30}) ``` +Additionally, when using Postgres as your database, you should utilize `$1` instead +of `?` placeholders as utilizing `?` placeholders when querying Postgres will result +in `pq: operator does not exist` errors. Alternatively, use +`dbMap.Dialect.BindVar(varIdx)` to get the proper variable binding for your dialect. + ### time.Time and time zones -gorp will pass `time.Time` fields through to the `database/sql` driver, but note that +gorp will pass `time.Time` fields through to the `database/sql` driver, but note that the behavior of this type varies across database drivers. MySQL users should be especially cautious. See: https://github.com/ziutek/mymysql/pull/77 diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/column.go b/Godeps/_workspace/src/github.com/go-gorp/gorp/column.go new file mode 100644 index 000000000..99d4fd555 --- /dev/null +++ b/Godeps/_workspace/src/github.com/go-gorp/gorp/column.go @@ -0,0 +1,83 @@ +// Copyright 2012 James Cooper. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +// Package gorp provides a simple way to marshal Go structs to and from +// SQL databases. It uses the database/sql package, and should work with any +// compliant database/sql driver. +// +// Source code and project home: +// https://github.com/go-gorp/gorp + +package gorp + +import "reflect" + +// ColumnMap represents a mapping between a Go struct field and a single +// column in a table. +// Unique and MaxSize only inform the +// CreateTables() function and are not used by Insert/Update/Delete/Get. +type ColumnMap struct { + // Column name in db table + ColumnName string + + // If true, this column is skipped in generated SQL statements + Transient bool + + // If true, " unique" is added to create table statements. + // Not used elsewhere + Unique bool + + // Query used for getting generated id after insert + GeneratedIdQuery string + + // Passed to Dialect.ToSqlType() to assist in informing the + // correct column type to map to in CreateTables() + MaxSize int + + DefaultValue string + + fieldName string + gotype reflect.Type + isPK bool + isAutoIncr bool + isNotNull bool +} + +// Rename allows you to specify the column name in the table +// +// Example: table.ColMap("Updated").Rename("date_updated") +// +func (c *ColumnMap) Rename(colname string) *ColumnMap { + c.ColumnName = colname + return c +} + +// SetTransient allows you to mark the column as transient. If true +// this column will be skipped when SQL statements are generated +func (c *ColumnMap) SetTransient(b bool) *ColumnMap { + c.Transient = b + return c +} + +// SetUnique adds "unique" to the create table statements for this +// column, if b is true. +func (c *ColumnMap) SetUnique(b bool) *ColumnMap { + c.Unique = b + return c +} + +// SetNotNull adds "not null" to the create table statements for this +// column, if nn is true. +func (c *ColumnMap) SetNotNull(nn bool) *ColumnMap { + c.isNotNull = nn + return c +} + +// SetMaxSize specifies the max length of values of this column. This is +// passed to the dialect.ToSqlType() function, which can use the value +// to alter the generated type for "create table" statements +func (c *ColumnMap) SetMaxSize(size int) *ColumnMap { + c.MaxSize = size + return c +} diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/db.go b/Godeps/_workspace/src/github.com/go-gorp/gorp/db.go new file mode 100644 index 000000000..8bba07cf6 --- /dev/null +++ b/Godeps/_workspace/src/github.com/go-gorp/gorp/db.go @@ -0,0 +1,619 @@ +// Copyright 2012 James Cooper. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +// Package gorp provides a simple way to marshal Go structs to and from +// SQL databases. It uses the database/sql package, and should work with any +// compliant database/sql driver. +// +// Source code and project home: +// https://github.com/go-gorp/gorp + +package gorp + +import ( + "bytes" + "database/sql" + "database/sql/driver" + "errors" + "fmt" + "reflect" + "strconv" + "strings" + "time" +) + +// DbMap is the root gorp mapping object. Create one of these for each +// database schema you wish to map. Each DbMap contains a list of +// mapped tables. +// +// Example: +// +// dialect := gorp.MySQLDialect{"InnoDB", "UTF8"} +// dbmap := &gorp.DbMap{Db: db, Dialect: dialect} +// +type DbMap struct { + // Db handle to use with this map + Db *sql.DB + + // Dialect implementation to use with this map + Dialect Dialect + + TypeConverter TypeConverter + + tables []*TableMap + logger GorpLogger + logPrefix string +} + +func (m *DbMap) CreateIndex() error { + + var err error + dialect := reflect.TypeOf(m.Dialect) + for _, table := range m.tables { + for _, index := range table.indexes { + + s := bytes.Buffer{} + s.WriteString("create") + if index.Unique { + s.WriteString(" unique") + } + s.WriteString(" index") + s.WriteString(fmt.Sprintf(" %s on %s", index.IndexName, table.TableName)) + if dname := dialect.Name(); dname == "PostgresDialect" && index.IndexType != "" { + s.WriteString(fmt.Sprintf(" %s %s", m.Dialect.CreateIndexSuffix(), index.IndexType)) + } + s.WriteString(" (") + for x, col := range index.columns { + if x > 0 { + s.WriteString(", ") + } + s.WriteString(m.Dialect.QuoteField(col)) + } + s.WriteString(")") + + if dname := dialect.Name(); dname == "MySQLDialect" && index.IndexType != "" { + s.WriteString(fmt.Sprintf(" %s %s", m.Dialect.CreateIndexSuffix(), index.IndexType)) + } + s.WriteString(";") + _, err = m.Exec(s.String()) + if err != nil { + break + } + } + } + return err +} + +func (t *TableMap) DropIndex(name string) error { + + var err error + dialect := reflect.TypeOf(t.dbmap.Dialect) + for _, idx := range t.indexes { + if idx.IndexName == name { + s := bytes.Buffer{} + s.WriteString(fmt.Sprintf("DROP INDEX %s", idx.IndexName)) + + if dname := dialect.Name(); dname == "MySQLDialect" { + s.WriteString(fmt.Sprintf(" %s %s", t.dbmap.Dialect.DropIndexSuffix(), t.TableName)) + } + s.WriteString(";") + _, e := t.dbmap.Exec(s.String()) + if e != nil { + err = e + } + break + } + } + t.ResetSql() + return err +} + +// AddTable registers the given interface type with gorp. The table name +// will be given the name of the TypeOf(i). You must call this function, +// or AddTableWithName, for any struct type you wish to persist with +// the given DbMap. +// +// This operation is idempotent. If i's type is already mapped, the +// existing *TableMap is returned +func (m *DbMap) AddTable(i interface{}) *TableMap { + return m.AddTableWithName(i, "") +} + +// AddTableWithName has the same behavior as AddTable, but sets +// table.TableName to name. +func (m *DbMap) AddTableWithName(i interface{}, name string) *TableMap { + return m.AddTableWithNameAndSchema(i, "", name) +} + +// AddTableWithNameAndSchema has the same behavior as AddTable, but sets +// table.TableName to name. +func (m *DbMap) AddTableWithNameAndSchema(i interface{}, schema string, name string) *TableMap { + t := reflect.TypeOf(i) + if name == "" { + name = t.Name() + } + + // check if we have a table for this type already + // if so, update the name and return the existing pointer + for i := range m.tables { + table := m.tables[i] + if table.gotype == t { + table.TableName = name + return table + } + } + + tmap := &TableMap{gotype: t, TableName: name, SchemaName: schema, dbmap: m} + var primaryKey []*ColumnMap + tmap.Columns, primaryKey = m.readStructColumns(t) + m.tables = append(m.tables, tmap) + if len(primaryKey) > 0 { + tmap.keys = append(tmap.keys, primaryKey...) + } + + return tmap +} + +func (m *DbMap) readStructColumns(t reflect.Type) (cols []*ColumnMap, primaryKey []*ColumnMap) { + primaryKey = make([]*ColumnMap, 0) + n := t.NumField() + for i := 0; i < n; i++ { + f := t.Field(i) + if f.Anonymous && f.Type.Kind() == reflect.Struct { + // Recursively add nested fields in embedded structs. + subcols, subpk := m.readStructColumns(f.Type) + // Don't append nested fields that have the same field + // name as an already-mapped field. + for _, subcol := range subcols { + shouldAppend := true + for _, col := range cols { + if !subcol.Transient && subcol.fieldName == col.fieldName { + shouldAppend = false + break + } + } + if shouldAppend { + cols = append(cols, subcol) + } + } + if subpk != nil { + primaryKey = append(primaryKey, subpk...) + } + } else { + // Tag = Name { ',' Option } + // Option = OptionKey [ ':' OptionValue ] + cArguments := strings.Split(f.Tag.Get("db"), ",") + columnName := cArguments[0] + var maxSize int + var defaultValue string + var isAuto bool + var isPK bool + for _, argString := range cArguments[1:] { + argString = strings.TrimSpace(argString) + arg := strings.SplitN(argString, ":", 2) + + // check mandatory/unexpected option values + switch arg[0] { + case "size", "default": + // options requiring value + if len(arg) == 1 { + panic(fmt.Sprintf("missing option value for option %v on field %v", arg[0], f.Name)) + } + default: + // options where value is invalid (currently all other options) + if len(arg) == 2 { + panic(fmt.Sprintf("unexpected option value for option %v on field %v", arg[0], f.Name)) + } + } + + switch arg[0] { + case "size": + maxSize, _ = strconv.Atoi(arg[1]) + case "default": + defaultValue = arg[1] + case "primarykey": + isPK = true + case "autoincrement": + isAuto = true + default: + panic(fmt.Sprintf("Unrecognized tag option for field %v: %v", f.Name, arg)) + } + } + if columnName == "" { + columnName = f.Name + } + + gotype := f.Type + value := reflect.New(gotype).Interface() + if m.TypeConverter != nil { + // Make a new pointer to a value of type gotype and + // pass it to the TypeConverter's FromDb method to see + // if a different type should be used for the column + // type during table creation. + scanner, useHolder := m.TypeConverter.FromDb(value) + if useHolder { + value = scanner.Holder + gotype = reflect.TypeOf(value) + } + } + if typer, ok := value.(SqlTyper); ok { + gotype = reflect.TypeOf(typer.SqlType()) + } else if valuer, ok := value.(driver.Valuer); ok { + // Only check for driver.Valuer if SqlTyper wasn't + // found. + v, err := valuer.Value() + if err == nil && v != nil { + gotype = reflect.TypeOf(v) + } + } + cm := &ColumnMap{ + ColumnName: columnName, + DefaultValue: defaultValue, + Transient: columnName == "-", + fieldName: f.Name, + gotype: gotype, + isPK: isPK, + isAutoIncr: isAuto, + MaxSize: maxSize, + } + if isPK { + primaryKey = append(primaryKey, cm) + } + // Check for nested fields of the same field name and + // override them. + shouldAppend := true + for index, col := range cols { + if !col.Transient && col.fieldName == cm.fieldName { + cols[index] = cm + shouldAppend = false + break + } + } + if shouldAppend { + cols = append(cols, cm) + } + } + + } + return +} + +// CreateTables iterates through TableMaps registered to this DbMap and +// executes "create table" statements against the database for each. +// +// This is particularly useful in unit tests where you want to create +// and destroy the schema automatically. +func (m *DbMap) CreateTables() error { + return m.createTables(false) +} + +// CreateTablesIfNotExists is similar to CreateTables, but starts +// each statement with "create table if not exists" so that existing +// tables do not raise errors +func (m *DbMap) CreateTablesIfNotExists() error { + return m.createTables(true) +} + +func (m *DbMap) createTables(ifNotExists bool) error { + var err error + for i := range m.tables { + table := m.tables[i] + sql := table.SqlForCreate(ifNotExists) + _, err = m.Exec(sql) + if err != nil { + break + } + } + return err +} + +// DropTable drops an individual table. +// Returns an error when the table does not exist. +func (m *DbMap) DropTable(table interface{}) error { + t := reflect.TypeOf(table) + return m.dropTable(t, false) +} + +// DropTableIfExists drops an individual table when the table exists. +func (m *DbMap) DropTableIfExists(table interface{}) error { + t := reflect.TypeOf(table) + return m.dropTable(t, true) +} + +// DropTables iterates through TableMaps registered to this DbMap and +// executes "drop table" statements against the database for each. +func (m *DbMap) DropTables() error { + return m.dropTables(false) +} + +// DropTablesIfExists is the same as DropTables, but uses the "if exists" clause to +// avoid errors for tables that do not exist. +func (m *DbMap) DropTablesIfExists() error { + return m.dropTables(true) +} + +// Goes through all the registered tables, dropping them one by one. +// If an error is encountered, then it is returned and the rest of +// the tables are not dropped. +func (m *DbMap) dropTables(addIfExists bool) (err error) { + for _, table := range m.tables { + err = m.dropTableImpl(table, addIfExists) + if err != nil { + return err + } + } + return err +} + +// Implementation of dropping a single table. +func (m *DbMap) dropTable(t reflect.Type, addIfExists bool) error { + table := tableOrNil(m, t) + if table == nil { + return fmt.Errorf("table %s was not registered", table.TableName) + } + + return m.dropTableImpl(table, addIfExists) +} + +func (m *DbMap) dropTableImpl(table *TableMap, ifExists bool) (err error) { + tableDrop := "drop table" + if ifExists { + tableDrop = m.Dialect.IfTableExists(tableDrop, table.SchemaName, table.TableName) + } + _, err = m.Exec(fmt.Sprintf("%s %s;", tableDrop, m.Dialect.QuotedTableForQuery(table.SchemaName, table.TableName))) + return err +} + +// TruncateTables iterates through TableMaps registered to this DbMap and +// executes "truncate table" statements against the database for each, or in the case of +// sqlite, a "delete from" with no "where" clause, which uses the truncate optimization +// (http://www.sqlite.org/lang_delete.html) +func (m *DbMap) TruncateTables() error { + var err error + for i := range m.tables { + table := m.tables[i] + _, e := m.Exec(fmt.Sprintf("%s %s;", m.Dialect.TruncateClause(), m.Dialect.QuotedTableForQuery(table.SchemaName, table.TableName))) + if e != nil { + err = e + } + } + return err +} + +// Insert runs a SQL INSERT statement for each element in list. List +// items must be pointers. +// +// Any interface whose TableMap has an auto-increment primary key will +// have its last insert id bound to the PK field on the struct. +// +// The hook functions PreInsert() and/or PostInsert() will be executed +// before/after the INSERT statement if the interface defines them. +// +// Panics if any interface in the list has not been registered with AddTable +func (m *DbMap) Insert(list ...interface{}) error { + return insert(m, m, list...) +} + +// Update runs a SQL UPDATE statement for each element in list. List +// items must be pointers. +// +// The hook functions PreUpdate() and/or PostUpdate() will be executed +// before/after the UPDATE statement if the interface defines them. +// +// Returns the number of rows updated. +// +// Returns an error if SetKeys has not been called on the TableMap +// Panics if any interface in the list has not been registered with AddTable +func (m *DbMap) Update(list ...interface{}) (int64, error) { + return update(m, m, nil, list...) +} + +// UpdateColumns runs a SQL UPDATE statement for each element in list. List +// items must be pointers. +// +// Only the columns accepted by filter are included in the UPDATE. +// +// The hook functions PreUpdate() and/or PostUpdate() will be executed +// before/after the UPDATE statement if the interface defines them. +// +// Returns the number of rows updated. +// +// Returns an error if SetKeys has not been called on the TableMap +// Panics if any interface in the list has not been registered with AddTable +func (m *DbMap) UpdateColumns(filter ColumnFilter, list ...interface{}) (int64, error) { + return update(m, m, filter, list...) +} + +// Delete runs a SQL DELETE statement for each element in list. List +// items must be pointers. +// +// The hook functions PreDelete() and/or PostDelete() will be executed +// before/after the DELETE statement if the interface defines them. +// +// Returns the number of rows deleted. +// +// Returns an error if SetKeys has not been called on the TableMap +// Panics if any interface in the list has not been registered with AddTable +func (m *DbMap) Delete(list ...interface{}) (int64, error) { + return delete(m, m, list...) +} + +// Get runs a SQL SELECT to fetch a single row from the table based on the +// primary key(s) +// +// i should be an empty value for the struct to load. keys should be +// the primary key value(s) for the row to load. If multiple keys +// exist on the table, the order should match the column order +// specified in SetKeys() when the table mapping was defined. +// +// The hook function PostGet() will be executed after the SELECT +// statement if the interface defines them. +// +// Returns a pointer to a struct that matches or nil if no row is found. +// +// Returns an error if SetKeys has not been called on the TableMap +// Panics if any interface in the list has not been registered with AddTable +func (m *DbMap) Get(i interface{}, keys ...interface{}) (interface{}, error) { + return get(m, m, i, keys...) +} + +// Select runs an arbitrary SQL query, binding the columns in the result +// to fields on the struct specified by i. args represent the bind +// parameters for the SQL statement. +// +// Column names on the SELECT statement should be aliased to the field names +// on the struct i. Returns an error if one or more columns in the result +// do not match. It is OK if fields on i are not part of the SQL +// statement. +// +// The hook function PostGet() will be executed after the SELECT +// statement if the interface defines them. +// +// Values are returned in one of two ways: +// 1. If i is a struct or a pointer to a struct, returns a slice of pointers to +// matching rows of type i. +// 2. If i is a pointer to a slice, the results will be appended to that slice +// and nil returned. +// +// i does NOT need to be registered with AddTable() +func (m *DbMap) Select(i interface{}, query string, args ...interface{}) ([]interface{}, error) { + return hookedselect(m, m, i, query, args...) +} + +// Exec runs an arbitrary SQL statement. args represent the bind parameters. +// This is equivalent to running: Exec() using database/sql +func (m *DbMap) Exec(query string, args ...interface{}) (sql.Result, error) { + if m.logger != nil { + now := time.Now() + defer m.trace(now, query, args...) + } + return exec(m, query, args...) +} + +// SelectInt is a convenience wrapper around the gorp.SelectInt function +func (m *DbMap) SelectInt(query string, args ...interface{}) (int64, error) { + return SelectInt(m, query, args...) +} + +// SelectNullInt is a convenience wrapper around the gorp.SelectNullInt function +func (m *DbMap) SelectNullInt(query string, args ...interface{}) (sql.NullInt64, error) { + return SelectNullInt(m, query, args...) +} + +// SelectFloat is a convenience wrapper around the gorp.SelectFloat function +func (m *DbMap) SelectFloat(query string, args ...interface{}) (float64, error) { + return SelectFloat(m, query, args...) +} + +// SelectNullFloat is a convenience wrapper around the gorp.SelectNullFloat function +func (m *DbMap) SelectNullFloat(query string, args ...interface{}) (sql.NullFloat64, error) { + return SelectNullFloat(m, query, args...) +} + +// SelectStr is a convenience wrapper around the gorp.SelectStr function +func (m *DbMap) SelectStr(query string, args ...interface{}) (string, error) { + return SelectStr(m, query, args...) +} + +// SelectNullStr is a convenience wrapper around the gorp.SelectNullStr function +func (m *DbMap) SelectNullStr(query string, args ...interface{}) (sql.NullString, error) { + return SelectNullStr(m, query, args...) +} + +// SelectOne is a convenience wrapper around the gorp.SelectOne function +func (m *DbMap) SelectOne(holder interface{}, query string, args ...interface{}) error { + return SelectOne(m, m, holder, query, args...) +} + +// Begin starts a gorp Transaction +func (m *DbMap) Begin() (*Transaction, error) { + if m.logger != nil { + now := time.Now() + defer m.trace(now, "begin;") + } + tx, err := m.Db.Begin() + if err != nil { + return nil, err + } + return &Transaction{m, tx, false}, nil +} + +// TableFor returns the *TableMap corresponding to the given Go Type +// If no table is mapped to that type an error is returned. +// If checkPK is true and the mapped table has no registered PKs, an error is returned. +func (m *DbMap) TableFor(t reflect.Type, checkPK bool) (*TableMap, error) { + table := tableOrNil(m, t) + if table == nil { + return nil, fmt.Errorf("no table found for type: %v", t.Name()) + } + + if checkPK && len(table.keys) < 1 { + e := fmt.Sprintf("gorp: no keys defined for table: %s", + table.TableName) + return nil, errors.New(e) + } + + return table, nil +} + +// Prepare creates a prepared statement for later queries or executions. +// Multiple queries or executions may be run concurrently from the returned statement. +// This is equivalent to running: Prepare() using database/sql +func (m *DbMap) Prepare(query string) (*sql.Stmt, error) { + if m.logger != nil { + now := time.Now() + defer m.trace(now, query, nil) + } + return m.Db.Prepare(query) +} + +func tableOrNil(m *DbMap, t reflect.Type) *TableMap { + for i := range m.tables { + table := m.tables[i] + if table.gotype == t { + return table + } + } + return nil +} + +func (m *DbMap) tableForPointer(ptr interface{}, checkPK bool) (*TableMap, reflect.Value, error) { + ptrv := reflect.ValueOf(ptr) + if ptrv.Kind() != reflect.Ptr { + e := fmt.Sprintf("gorp: passed non-pointer: %v (kind=%v)", ptr, + ptrv.Kind()) + return nil, reflect.Value{}, errors.New(e) + } + elem := ptrv.Elem() + etype := reflect.TypeOf(elem.Interface()) + t, err := m.TableFor(etype, checkPK) + if err != nil { + return nil, reflect.Value{}, err + } + + return t, elem, nil +} + +func (m *DbMap) queryRow(query string, args ...interface{}) *sql.Row { + if m.logger != nil { + now := time.Now() + defer m.trace(now, query, args...) + } + return m.Db.QueryRow(query, args...) +} + +func (m *DbMap) query(query string, args ...interface{}) (*sql.Rows, error) { + if m.logger != nil { + now := time.Now() + defer m.trace(now, query, args...) + } + return m.Db.Query(query, args...) +} + +func (m *DbMap) trace(started time.Time, query string, args ...interface{}) { + if m.logger != nil { + var margs = argsString(args...) + m.logger.Printf("%s%s [%s] (%v)", m.logPrefix, query, margs, (time.Now().Sub(started))) + } +} diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/dialect.go b/Godeps/_workspace/src/github.com/go-gorp/gorp/dialect.go index 8277a965e..203bc62b5 100644 --- a/Godeps/_workspace/src/github.com/go-gorp/gorp/dialect.go +++ b/Godeps/_workspace/src/github.com/go-gorp/gorp/dialect.go @@ -1,11 +1,17 @@ +// Copyright 2012 James Cooper. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +// Package gorp provides a simple way to marshal Go structs to and from +// SQL databases. It uses the database/sql package, and should work with any +// compliant database/sql driver. +// +// Source code and project home: +// https://github.com/go-gorp/gorp + package gorp -import ( - "errors" - "fmt" - "reflect" - "strings" -) +import "reflect" // The Dialect interface encapsulates behaviors that differ across // SQL databases. At present the Dialect is only used by CreateTables() @@ -34,6 +40,12 @@ type Dialect interface { // table attributes CreateTableSuffix() string + // string to append to "create index" statement + CreateIndexSuffix() string + + // string to append to "drop index" statement + DropIndexSuffix() string + // string to truncate tables TruncateClause() string @@ -80,6 +92,16 @@ type TargetedAutoIncrInserter interface { InsertAutoIncrToTarget(exec SqlExecutor, insertSql string, target interface{}, params ...interface{}) error } +// TargetQueryInserter is implemented by dialects that can perform +// assignment of integer primary key type by executing a query +// like "select sequence.currval from dual". +type TargetQueryInserter interface { + // TargetQueryInserter runs an insert operation and assigns the + // automatically generated primary key retrived by the query + // extracted from the GeneratedIdQuery field of the id column. + InsertQueryToTarget(exec SqlExecutor, insertSql, idSql string, target interface{}, params ...interface{}) error +} + func standardInsertAutoIncr(exec SqlExecutor, insertSql string, params ...interface{}) (int64, error) { res, err := exec.Exec(insertSql, params...) if err != nil { @@ -87,610 +109,3 @@ func standardInsertAutoIncr(exec SqlExecutor, insertSql string, params ...interf } return res.LastInsertId() } - -/////////////////////////////////////////////////////// -// sqlite3 // -///////////// - -type SqliteDialect struct { - suffix string -} - -func (d SqliteDialect) QuerySuffix() string { return ";" } - -func (d SqliteDialect) ToSqlType(val reflect.Type, maxsize int, isAutoIncr bool) string { - switch val.Kind() { - case reflect.Ptr: - return d.ToSqlType(val.Elem(), maxsize, isAutoIncr) - case reflect.Bool: - return "integer" - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - return "integer" - case reflect.Float64, reflect.Float32: - return "real" - case reflect.Slice: - if val.Elem().Kind() == reflect.Uint8 { - return "blob" - } - } - - switch val.Name() { - case "NullInt64": - return "integer" - case "NullFloat64": - return "real" - case "NullBool": - return "integer" - case "Time": - return "datetime" - } - - if maxsize < 1 { - maxsize = 255 - } - return fmt.Sprintf("varchar(%d)", maxsize) -} - -// Returns autoincrement -func (d SqliteDialect) AutoIncrStr() string { - return "autoincrement" -} - -func (d SqliteDialect) AutoIncrBindValue() string { - return "null" -} - -func (d SqliteDialect) AutoIncrInsertSuffix(col *ColumnMap) string { - return "" -} - -// Returns suffix -func (d SqliteDialect) CreateTableSuffix() string { - return d.suffix -} - -// With sqlite, there technically isn't a TRUNCATE statement, -// but a DELETE FROM uses a truncate optimization: -// http://www.sqlite.org/lang_delete.html -func (d SqliteDialect) TruncateClause() string { - return "delete from" -} - -// Returns "?" -func (d SqliteDialect) BindVar(i int) string { - return "?" -} - -func (d SqliteDialect) InsertAutoIncr(exec SqlExecutor, insertSql string, params ...interface{}) (int64, error) { - return standardInsertAutoIncr(exec, insertSql, params...) -} - -func (d SqliteDialect) QuoteField(f string) string { - return `"` + f + `"` -} - -// sqlite does not have schemas like PostgreSQL does, so just escape it like normal -func (d SqliteDialect) QuotedTableForQuery(schema string, table string) string { - return d.QuoteField(table) -} - -func (d SqliteDialect) IfSchemaNotExists(command, schema string) string { - return fmt.Sprintf("%s if not exists", command) -} - -func (d SqliteDialect) IfTableExists(command, schema, table string) string { - return fmt.Sprintf("%s if exists", command) -} - -func (d SqliteDialect) IfTableNotExists(command, schema, table string) string { - return fmt.Sprintf("%s if not exists", command) -} - -/////////////////////////////////////////////////////// -// PostgreSQL // -//////////////// - -type PostgresDialect struct { - suffix string -} - -func (d PostgresDialect) QuerySuffix() string { return ";" } - -func (d PostgresDialect) ToSqlType(val reflect.Type, maxsize int, isAutoIncr bool) string { - switch val.Kind() { - case reflect.Ptr: - return d.ToSqlType(val.Elem(), maxsize, isAutoIncr) - case reflect.Bool: - return "boolean" - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Uint8, reflect.Uint16, reflect.Uint32: - if isAutoIncr { - return "serial" - } - return "integer" - case reflect.Int64, reflect.Uint64: - if isAutoIncr { - return "bigserial" - } - return "bigint" - case reflect.Float64: - return "double precision" - case reflect.Float32: - return "real" - case reflect.Slice: - if val.Elem().Kind() == reflect.Uint8 { - return "bytea" - } - } - - switch val.Name() { - case "NullInt64": - return "bigint" - case "NullFloat64": - return "double precision" - case "NullBool": - return "boolean" - case "Time", "NullTime": - return "timestamp with time zone" - } - - if maxsize > 0 { - return fmt.Sprintf("varchar(%d)", maxsize) - } else { - return "text" - } - -} - -// Returns empty string -func (d PostgresDialect) AutoIncrStr() string { - return "" -} - -func (d PostgresDialect) AutoIncrBindValue() string { - return "default" -} - -func (d PostgresDialect) AutoIncrInsertSuffix(col *ColumnMap) string { - return " returning " + col.ColumnName -} - -// Returns suffix -func (d PostgresDialect) CreateTableSuffix() string { - return d.suffix -} - -func (d PostgresDialect) TruncateClause() string { - return "truncate" -} - -// Returns "$(i+1)" -func (d PostgresDialect) BindVar(i int) string { - return fmt.Sprintf("$%d", i+1) -} - -func (d PostgresDialect) InsertAutoIncrToTarget(exec SqlExecutor, insertSql string, target interface{}, params ...interface{}) error { - rows, err := exec.query(insertSql, params...) - if err != nil { - return err - } - defer rows.Close() - - if !rows.Next() { - return fmt.Errorf("No serial value returned for insert: %s Encountered error: %s", insertSql, rows.Err()) - } - if err := rows.Scan(target); err != nil { - return err - } - if rows.Next() { - return fmt.Errorf("more than two serial value returned for insert: %s", insertSql) - } - return rows.Err() -} - -func (d PostgresDialect) QuoteField(f string) string { - return `"` + strings.ToLower(f) + `"` -} - -func (d PostgresDialect) QuotedTableForQuery(schema string, table string) string { - if strings.TrimSpace(schema) == "" { - return d.QuoteField(table) - } - - return schema + "." + d.QuoteField(table) -} - -func (d PostgresDialect) IfSchemaNotExists(command, schema string) string { - return fmt.Sprintf("%s if not exists", command) -} - -func (d PostgresDialect) IfTableExists(command, schema, table string) string { - return fmt.Sprintf("%s if exists", command) -} - -func (d PostgresDialect) IfTableNotExists(command, schema, table string) string { - return fmt.Sprintf("%s if not exists", command) -} - -/////////////////////////////////////////////////////// -// MySQL // -/////////// - -// Implementation of Dialect for MySQL databases. -type MySQLDialect struct { - - // Engine is the storage engine to use "InnoDB" vs "MyISAM" for example - Engine string - - // Encoding is the character encoding to use for created tables - Encoding string -} - -func (d MySQLDialect) QuerySuffix() string { return ";" } - -func (d MySQLDialect) ToSqlType(val reflect.Type, maxsize int, isAutoIncr bool) string { - switch val.Kind() { - case reflect.Ptr: - return d.ToSqlType(val.Elem(), maxsize, isAutoIncr) - case reflect.Bool: - return "boolean" - case reflect.Int8: - return "tinyint" - case reflect.Uint8: - return "tinyint unsigned" - case reflect.Int16: - return "smallint" - case reflect.Uint16: - return "smallint unsigned" - case reflect.Int, reflect.Int32: - return "int" - case reflect.Uint, reflect.Uint32: - return "int unsigned" - case reflect.Int64: - return "bigint" - case reflect.Uint64: - return "bigint unsigned" - case reflect.Float64, reflect.Float32: - return "double" - case reflect.Slice: - if val.Elem().Kind() == reflect.Uint8 { - return "mediumblob" - } - } - - switch val.Name() { - case "NullInt64": - return "bigint" - case "NullFloat64": - return "double" - case "NullBool": - return "tinyint" - case "Time": - return "datetime" - } - - if maxsize < 1 { - maxsize = 255 - } - return fmt.Sprintf("varchar(%d)", maxsize) -} - -// Returns auto_increment -func (d MySQLDialect) AutoIncrStr() string { - return "auto_increment" -} - -func (d MySQLDialect) AutoIncrBindValue() string { - return "null" -} - -func (d MySQLDialect) AutoIncrInsertSuffix(col *ColumnMap) string { - return "" -} - -// Returns engine=%s charset=%s based on values stored on struct -func (d MySQLDialect) CreateTableSuffix() string { - if d.Engine == "" || d.Encoding == "" { - msg := "gorp - undefined" - - if d.Engine == "" { - msg += " MySQLDialect.Engine" - } - if d.Engine == "" && d.Encoding == "" { - msg += "," - } - if d.Encoding == "" { - msg += " MySQLDialect.Encoding" - } - msg += ". Check that your MySQLDialect was correctly initialized when declared." - panic(msg) - } - - return fmt.Sprintf(" engine=%s charset=%s", d.Engine, d.Encoding) -} - -func (d MySQLDialect) TruncateClause() string { - return "truncate" -} - -// Returns "?" -func (d MySQLDialect) BindVar(i int) string { - return "?" -} - -func (d MySQLDialect) InsertAutoIncr(exec SqlExecutor, insertSql string, params ...interface{}) (int64, error) { - return standardInsertAutoIncr(exec, insertSql, params...) -} - -func (d MySQLDialect) QuoteField(f string) string { - return "`" + f + "`" -} - -func (d MySQLDialect) QuotedTableForQuery(schema string, table string) string { - if strings.TrimSpace(schema) == "" { - return d.QuoteField(table) - } - - return schema + "." + d.QuoteField(table) -} - -func (d MySQLDialect) IfSchemaNotExists(command, schema string) string { - return fmt.Sprintf("%s if not exists", command) -} - -func (d MySQLDialect) IfTableExists(command, schema, table string) string { - return fmt.Sprintf("%s if exists", command) -} - -func (d MySQLDialect) IfTableNotExists(command, schema, table string) string { - return fmt.Sprintf("%s if not exists", command) -} - -/////////////////////////////////////////////////////// -// Sql Server // -//////////////// - -// Implementation of Dialect for Microsoft SQL Server databases. -// Tested on SQL Server 2008 with driver: github.com/denisenkom/go-mssqldb - -type SqlServerDialect struct { - suffix string -} - -func (d SqlServerDialect) ToSqlType(val reflect.Type, maxsize int, isAutoIncr bool) string { - switch val.Kind() { - case reflect.Ptr: - return d.ToSqlType(val.Elem(), maxsize, isAutoIncr) - case reflect.Bool: - return "bit" - case reflect.Int8: - return "tinyint" - case reflect.Uint8: - return "smallint" - case reflect.Int16: - return "smallint" - case reflect.Uint16: - return "int" - case reflect.Int, reflect.Int32: - return "int" - case reflect.Uint, reflect.Uint32: - return "bigint" - case reflect.Int64: - return "bigint" - case reflect.Uint64: - return "bigint" - case reflect.Float32: - return "real" - case reflect.Float64: - return "float(53)" - case reflect.Slice: - if val.Elem().Kind() == reflect.Uint8 { - return "varbinary" - } - } - - switch val.Name() { - case "NullInt64": - return "bigint" - case "NullFloat64": - return "float(53)" - case "NullBool": - return "tinyint" - case "Time": - return "datetime" - } - - if maxsize < 1 { - maxsize = 255 - } - return fmt.Sprintf("varchar(%d)", maxsize) -} - -// Returns auto_increment -func (d SqlServerDialect) AutoIncrStr() string { - return "identity(0,1)" -} - -// Empty string removes autoincrement columns from the INSERT statements. -func (d SqlServerDialect) AutoIncrBindValue() string { - return "" -} - -func (d SqlServerDialect) AutoIncrInsertSuffix(col *ColumnMap) string { - return "" -} - -// Returns suffix -func (d SqlServerDialect) CreateTableSuffix() string { - - return d.suffix -} - -func (d SqlServerDialect) TruncateClause() string { - return "delete from" -} - -// Returns "?" -func (d SqlServerDialect) BindVar(i int) string { - return "?" -} - -func (d SqlServerDialect) InsertAutoIncr(exec SqlExecutor, insertSql string, params ...interface{}) (int64, error) { - return standardInsertAutoIncr(exec, insertSql, params...) -} - -func (d SqlServerDialect) QuoteField(f string) string { - return `"` + f + `"` -} - -func (d SqlServerDialect) QuotedTableForQuery(schema string, table string) string { - if strings.TrimSpace(schema) == "" { - return table - } - return schema + "." + table -} - -func (d SqlServerDialect) QuerySuffix() string { return ";" } - -func (d SqlServerDialect) IfSchemaNotExists(command, schema string) string { - s := fmt.Sprintf("if not exists (select name from sys.schemas where name = '%s') %s", schema, command) - return s -} - -func (d SqlServerDialect) IfTableExists(command, schema, table string) string { - var schema_clause string - if strings.TrimSpace(schema) != "" { - schema_clause = fmt.Sprintf("table_schema = '%s' and ", schema) - } - s := fmt.Sprintf("if exists (select * from information_schema.tables where %stable_name = '%s') %s", schema_clause, table, command) - return s -} - -func (d SqlServerDialect) IfTableNotExists(command, schema, table string) string { - var schema_clause string - if strings.TrimSpace(schema) != "" { - schema_clause = fmt.Sprintf("table_schema = '%s' and ", schema) - } - s := fmt.Sprintf("if not exists (select * from information_schema.tables where %stable_name = '%s') %s", schema_clause, table, command) - return s -} - -/////////////////////////////////////////////////////// -// Oracle // -/////////// - -// Implementation of Dialect for Oracle databases. -type OracleDialect struct{} - -func (d OracleDialect) QuerySuffix() string { return "" } - -func (d OracleDialect) ToSqlType(val reflect.Type, maxsize int, isAutoIncr bool) string { - switch val.Kind() { - case reflect.Ptr: - return d.ToSqlType(val.Elem(), maxsize, isAutoIncr) - case reflect.Bool: - return "boolean" - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Uint8, reflect.Uint16, reflect.Uint32: - if isAutoIncr { - return "serial" - } - return "integer" - case reflect.Int64, reflect.Uint64: - if isAutoIncr { - return "bigserial" - } - return "bigint" - case reflect.Float64: - return "double precision" - case reflect.Float32: - return "real" - case reflect.Slice: - if val.Elem().Kind() == reflect.Uint8 { - return "bytea" - } - } - - switch val.Name() { - case "NullInt64": - return "bigint" - case "NullFloat64": - return "double precision" - case "NullBool": - return "boolean" - case "NullTime", "Time": - return "timestamp with time zone" - } - - if maxsize > 0 { - return fmt.Sprintf("varchar(%d)", maxsize) - } else { - return "text" - } - -} - -// Returns empty string -func (d OracleDialect) AutoIncrStr() string { - return "" -} - -func (d OracleDialect) AutoIncrBindValue() string { - return "default" -} - -func (d OracleDialect) AutoIncrInsertSuffix(col *ColumnMap) string { - return " returning " + col.ColumnName -} - -// Returns suffix -func (d OracleDialect) CreateTableSuffix() string { - return "" -} - -func (d OracleDialect) TruncateClause() string { - return "truncate" -} - -// Returns "$(i+1)" -func (d OracleDialect) BindVar(i int) string { - return fmt.Sprintf(":%d", i+1) -} - -func (d OracleDialect) InsertAutoIncr(exec SqlExecutor, insertSql string, params ...interface{}) (int64, error) { - rows, err := exec.query(insertSql, params...) - if err != nil { - return 0, err - } - defer rows.Close() - - if rows.Next() { - var id int64 - err := rows.Scan(&id) - return id, err - } - - return 0, errors.New("No serial value returned for insert: " + insertSql + " Encountered error: " + rows.Err().Error()) -} - -func (d OracleDialect) QuoteField(f string) string { - return `"` + strings.ToUpper(f) + `"` -} - -func (d OracleDialect) QuotedTableForQuery(schema string, table string) string { - if strings.TrimSpace(schema) == "" { - return d.QuoteField(table) - } - - return schema + "." + d.QuoteField(table) -} - -func (d OracleDialect) IfSchemaNotExists(command, schema string) string { - return fmt.Sprintf("%s if not exists", command) -} - -func (d OracleDialect) IfTableExists(command, schema, table string) string { - return fmt.Sprintf("%s if exists", command) -} - -func (d OracleDialect) IfTableNotExists(command, schema, table string) string { - return fmt.Sprintf("%s if not exists", command) -} diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/dialect_mysql.go b/Godeps/_workspace/src/github.com/go-gorp/gorp/dialect_mysql.go new file mode 100644 index 000000000..3d7d34027 --- /dev/null +++ b/Godeps/_workspace/src/github.com/go-gorp/gorp/dialect_mysql.go @@ -0,0 +1,171 @@ +// Copyright 2012 James Cooper. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +// Package gorp provides a simple way to marshal Go structs to and from +// SQL databases. It uses the database/sql package, and should work with any +// compliant database/sql driver. +// +// Source code and project home: +// https://github.com/go-gorp/gorp + +package gorp + +import ( + "fmt" + "reflect" + "strings" +) + +// Implementation of Dialect for MySQL databases. +type MySQLDialect struct { + + // Engine is the storage engine to use "InnoDB" vs "MyISAM" for example + Engine string + + // Encoding is the character encoding to use for created tables + Encoding string +} + +func (d MySQLDialect) QuerySuffix() string { return ";" } + +func (d MySQLDialect) ToSqlType(val reflect.Type, maxsize int, isAutoIncr bool) string { + switch val.Kind() { + case reflect.Ptr: + return d.ToSqlType(val.Elem(), maxsize, isAutoIncr) + case reflect.Bool: + return "boolean" + case reflect.Int8: + return "tinyint" + case reflect.Uint8: + return "tinyint unsigned" + case reflect.Int16: + return "smallint" + case reflect.Uint16: + return "smallint unsigned" + case reflect.Int, reflect.Int32: + return "int" + case reflect.Uint, reflect.Uint32: + return "int unsigned" + case reflect.Int64: + return "bigint" + case reflect.Uint64: + return "bigint unsigned" + case reflect.Float64, reflect.Float32: + return "double" + case reflect.Slice: + if val.Elem().Kind() == reflect.Uint8 { + return "mediumblob" + } + } + + switch val.Name() { + case "NullInt64": + return "bigint" + case "NullFloat64": + return "double" + case "NullBool": + return "tinyint" + case "Time": + return "datetime" + } + + if maxsize < 1 { + maxsize = 255 + } + + /* == About varchar(N) == + * N is number of characters. + * A varchar column can store up to 65535 bytes. + * Remember that 1 character is 3 bytes in utf-8 charset. + * Also remember that each row can store up to 65535 bytes, + * and you have some overheads, so it's not possible for a + * varchar column to have 65535/3 characters really. + * So it would be better to use 'text' type in stead of + * large varchar type. + */ + if maxsize < 256 { + return fmt.Sprintf("varchar(%d)", maxsize) + } else { + return "text" + } +} + +// Returns auto_increment +func (d MySQLDialect) AutoIncrStr() string { + return "auto_increment" +} + +func (d MySQLDialect) AutoIncrBindValue() string { + return "null" +} + +func (d MySQLDialect) AutoIncrInsertSuffix(col *ColumnMap) string { + return "" +} + +// Returns engine=%s charset=%s based on values stored on struct +func (d MySQLDialect) CreateTableSuffix() string { + if d.Engine == "" || d.Encoding == "" { + msg := "gorp - undefined" + + if d.Engine == "" { + msg += " MySQLDialect.Engine" + } + if d.Engine == "" && d.Encoding == "" { + msg += "," + } + if d.Encoding == "" { + msg += " MySQLDialect.Encoding" + } + msg += ". Check that your MySQLDialect was correctly initialized when declared." + panic(msg) + } + + return fmt.Sprintf(" engine=%s charset=%s", d.Engine, d.Encoding) +} + +func (m MySQLDialect) CreateIndexSuffix() string { + return "using" +} + +func (m MySQLDialect) DropIndexSuffix() string { + return "on" +} + +func (m MySQLDialect) TruncateClause() string { + return "truncate" +} + +// Returns "?" +func (d MySQLDialect) BindVar(i int) string { + return "?" +} + +func (d MySQLDialect) InsertAutoIncr(exec SqlExecutor, insertSql string, params ...interface{}) (int64, error) { + return standardInsertAutoIncr(exec, insertSql, params...) +} + +func (d MySQLDialect) QuoteField(f string) string { + return "`" + f + "`" +} + +func (d MySQLDialect) QuotedTableForQuery(schema string, table string) string { + if strings.TrimSpace(schema) == "" { + return d.QuoteField(table) + } + + return schema + "." + d.QuoteField(table) +} + +func (d MySQLDialect) IfSchemaNotExists(command, schema string) string { + return fmt.Sprintf("%s if not exists", command) +} + +func (d MySQLDialect) IfTableExists(command, schema, table string) string { + return fmt.Sprintf("%s if exists", command) +} + +func (d MySQLDialect) IfTableNotExists(command, schema, table string) string { + return fmt.Sprintf("%s if not exists", command) +} diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/dialect_oracle.go b/Godeps/_workspace/src/github.com/go-gorp/gorp/dialect_oracle.go new file mode 100644 index 000000000..c381380f9 --- /dev/null +++ b/Godeps/_workspace/src/github.com/go-gorp/gorp/dialect_oracle.go @@ -0,0 +1,146 @@ +// Copyright 2012 James Cooper. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +// Package gorp provides a simple way to marshal Go structs to and from +// SQL databases. It uses the database/sql package, and should work with any +// compliant database/sql driver. +// +// Source code and project home: +// https://github.com/go-gorp/gorp + +package gorp + +import ( + "fmt" + "reflect" + "strings" +) + +// Implementation of Dialect for Oracle databases. +type OracleDialect struct{} + +func (d OracleDialect) QuerySuffix() string { return "" } + +func (d OracleDialect) CreateIndexSuffix() string { return "" } + +func (d OracleDialect) DropIndexSuffix() string { return "" } + +func (d OracleDialect) ToSqlType(val reflect.Type, maxsize int, isAutoIncr bool) string { + switch val.Kind() { + case reflect.Ptr: + return d.ToSqlType(val.Elem(), maxsize, isAutoIncr) + case reflect.Bool: + return "boolean" + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32: + if isAutoIncr { + return "serial" + } + return "integer" + case reflect.Int64, reflect.Uint64: + if isAutoIncr { + return "bigserial" + } + return "bigint" + case reflect.Float64: + return "double precision" + case reflect.Float32: + return "real" + case reflect.Slice: + if val.Elem().Kind() == reflect.Uint8 { + return "bytea" + } + } + + switch val.Name() { + case "NullInt64": + return "bigint" + case "NullFloat64": + return "double precision" + case "NullBool": + return "boolean" + case "NullTime", "Time": + return "timestamp with time zone" + } + + if maxsize > 0 { + return fmt.Sprintf("varchar(%d)", maxsize) + } else { + return "text" + } + +} + +// Returns empty string +func (d OracleDialect) AutoIncrStr() string { + return "" +} + +func (d OracleDialect) AutoIncrBindValue() string { + return "NULL" +} + +func (d OracleDialect) AutoIncrInsertSuffix(col *ColumnMap) string { + return "" +} + +// Returns suffix +func (d OracleDialect) CreateTableSuffix() string { + return "" +} + +func (d OracleDialect) TruncateClause() string { + return "truncate" +} + +// Returns "$(i+1)" +func (d OracleDialect) BindVar(i int) string { + return fmt.Sprintf(":%d", i+1) +} + +// After executing the insert uses the ColMap IdQuery to get the generated id +func (d OracleDialect) InsertQueryToTarget(exec SqlExecutor, insertSql, idSql string, target interface{}, params ...interface{}) error { + _, err := exec.Exec(insertSql, params...) + if err != nil { + return err + } + id, err := exec.SelectInt(idSql) + if err != nil { + return err + } + switch target.(type) { + case *int64: + *(target.(*int64)) = id + case *int32: + *(target.(*int32)) = int32(id) + case int: + *(target.(*int)) = int(id) + default: + return fmt.Errorf("Id field can be int, int32 or int64") + } + return nil +} + +func (d OracleDialect) QuoteField(f string) string { + return `"` + strings.ToUpper(f) + `"` +} + +func (d OracleDialect) QuotedTableForQuery(schema string, table string) string { + if strings.TrimSpace(schema) == "" { + return d.QuoteField(table) + } + + return schema + "." + d.QuoteField(table) +} + +func (d OracleDialect) IfSchemaNotExists(command, schema string) string { + return fmt.Sprintf("%s if not exists", command) +} + +func (d OracleDialect) IfTableExists(command, schema, table string) string { + return fmt.Sprintf("%s if exists", command) +} + +func (d OracleDialect) IfTableNotExists(command, schema, table string) string { + return fmt.Sprintf("%s if not exists", command) +} diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/dialect_postgres.go b/Godeps/_workspace/src/github.com/go-gorp/gorp/dialect_postgres.go new file mode 100644 index 000000000..a086381a8 --- /dev/null +++ b/Godeps/_workspace/src/github.com/go-gorp/gorp/dialect_postgres.go @@ -0,0 +1,147 @@ +// Copyright 2012 James Cooper. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +// Package gorp provides a simple way to marshal Go structs to and from +// SQL databases. It uses the database/sql package, and should work with any +// compliant database/sql driver. +// +// Source code and project home: +// https://github.com/go-gorp/gorp + +package gorp + +import ( + "fmt" + "reflect" + "strings" +) + +type PostgresDialect struct { + suffix string +} + +func (d PostgresDialect) QuerySuffix() string { return ";" } + +func (d PostgresDialect) ToSqlType(val reflect.Type, maxsize int, isAutoIncr bool) string { + switch val.Kind() { + case reflect.Ptr: + return d.ToSqlType(val.Elem(), maxsize, isAutoIncr) + case reflect.Bool: + return "boolean" + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32: + if isAutoIncr { + return "serial" + } + return "integer" + case reflect.Int64, reflect.Uint64: + if isAutoIncr { + return "bigserial" + } + return "bigint" + case reflect.Float64: + return "double precision" + case reflect.Float32: + return "real" + case reflect.Slice: + if val.Elem().Kind() == reflect.Uint8 { + return "bytea" + } + } + + switch val.Name() { + case "NullInt64": + return "bigint" + case "NullFloat64": + return "double precision" + case "NullBool": + return "boolean" + case "Time", "NullTime": + return "timestamp with time zone" + } + + if maxsize > 0 { + return fmt.Sprintf("varchar(%d)", maxsize) + } else { + return "text" + } + +} + +// Returns empty string +func (d PostgresDialect) AutoIncrStr() string { + return "" +} + +func (d PostgresDialect) AutoIncrBindValue() string { + return "default" +} + +func (d PostgresDialect) AutoIncrInsertSuffix(col *ColumnMap) string { + return " returning " + col.ColumnName +} + +// Returns suffix +func (d PostgresDialect) CreateTableSuffix() string { + return d.suffix +} + +func (d PostgresDialect) CreateIndexSuffix() string { + return "using" +} + +func (d PostgresDialect) DropIndexSuffix() string { + return "" +} + +func (d PostgresDialect) TruncateClause() string { + return "truncate" +} + +// Returns "$(i+1)" +func (d PostgresDialect) BindVar(i int) string { + return fmt.Sprintf("$%d", i+1) +} + +func (d PostgresDialect) InsertAutoIncrToTarget(exec SqlExecutor, insertSql string, target interface{}, params ...interface{}) error { + rows, err := exec.query(insertSql, params...) + if err != nil { + return err + } + defer rows.Close() + + if !rows.Next() { + return fmt.Errorf("No serial value returned for insert: %s Encountered error: %s", insertSql, rows.Err()) + } + if err := rows.Scan(target); err != nil { + return err + } + if rows.Next() { + return fmt.Errorf("more than two serial value returned for insert: %s", insertSql) + } + return rows.Err() +} + +func (d PostgresDialect) QuoteField(f string) string { + return `"` + strings.ToLower(f) + `"` +} + +func (d PostgresDialect) QuotedTableForQuery(schema string, table string) string { + if strings.TrimSpace(schema) == "" { + return d.QuoteField(table) + } + + return schema + "." + d.QuoteField(table) +} + +func (d PostgresDialect) IfSchemaNotExists(command, schema string) string { + return fmt.Sprintf("%s if not exists", command) +} + +func (d PostgresDialect) IfTableExists(command, schema, table string) string { + return fmt.Sprintf("%s if exists", command) +} + +func (d PostgresDialect) IfTableNotExists(command, schema, table string) string { + return fmt.Sprintf("%s if not exists", command) +} diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/dialect_sqlite.go b/Godeps/_workspace/src/github.com/go-gorp/gorp/dialect_sqlite.go new file mode 100644 index 000000000..7d9b29757 --- /dev/null +++ b/Godeps/_workspace/src/github.com/go-gorp/gorp/dialect_sqlite.go @@ -0,0 +1,119 @@ +// Copyright 2012 James Cooper. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +// Package gorp provides a simple way to marshal Go structs to and from +// SQL databases. It uses the database/sql package, and should work with any +// compliant database/sql driver. +// +// Source code and project home: +// https://github.com/go-gorp/gorp + +package gorp + +import ( + "fmt" + "reflect" +) + +type SqliteDialect struct { + suffix string +} + +func (d SqliteDialect) QuerySuffix() string { return ";" } + +func (d SqliteDialect) ToSqlType(val reflect.Type, maxsize int, isAutoIncr bool) string { + switch val.Kind() { + case reflect.Ptr: + return d.ToSqlType(val.Elem(), maxsize, isAutoIncr) + case reflect.Bool: + return "integer" + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: + return "integer" + case reflect.Float64, reflect.Float32: + return "real" + case reflect.Slice: + if val.Elem().Kind() == reflect.Uint8 { + return "blob" + } + } + + switch val.Name() { + case "NullInt64": + return "integer" + case "NullFloat64": + return "real" + case "NullBool": + return "integer" + case "Time": + return "datetime" + } + + if maxsize < 1 { + maxsize = 255 + } + return fmt.Sprintf("varchar(%d)", maxsize) +} + +// Returns autoincrement +func (d SqliteDialect) AutoIncrStr() string { + return "autoincrement" +} + +func (d SqliteDialect) AutoIncrBindValue() string { + return "null" +} + +func (d SqliteDialect) AutoIncrInsertSuffix(col *ColumnMap) string { + return "" +} + +// Returns suffix +func (d SqliteDialect) CreateTableSuffix() string { + return d.suffix +} + +func (d SqliteDialect) CreateIndexSuffix() string { + return "" +} + +func (d SqliteDialect) DropIndexSuffix() string { + return "" +} + +// With sqlite, there technically isn't a TRUNCATE statement, +// but a DELETE FROM uses a truncate optimization: +// http://www.sqlite.org/lang_delete.html +func (d SqliteDialect) TruncateClause() string { + return "delete from" +} + +// Returns "?" +func (d SqliteDialect) BindVar(i int) string { + return "?" +} + +func (d SqliteDialect) InsertAutoIncr(exec SqlExecutor, insertSql string, params ...interface{}) (int64, error) { + return standardInsertAutoIncr(exec, insertSql, params...) +} + +func (d SqliteDialect) QuoteField(f string) string { + return `"` + f + `"` +} + +// sqlite does not have schemas like PostgreSQL does, so just escape it like normal +func (d SqliteDialect) QuotedTableForQuery(schema string, table string) string { + return d.QuoteField(table) +} + +func (d SqliteDialect) IfSchemaNotExists(command, schema string) string { + return fmt.Sprintf("%s if not exists", command) +} + +func (d SqliteDialect) IfTableExists(command, schema, table string) string { + return fmt.Sprintf("%s if exists", command) +} + +func (d SqliteDialect) IfTableNotExists(command, schema, table string) string { + return fmt.Sprintf("%s if not exists", command) +} diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/dialect_sqlserver.go b/Godeps/_workspace/src/github.com/go-gorp/gorp/dialect_sqlserver.go new file mode 100644 index 000000000..8808af598 --- /dev/null +++ b/Godeps/_workspace/src/github.com/go-gorp/gorp/dialect_sqlserver.go @@ -0,0 +1,152 @@ +// Copyright 2012 James Cooper. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +// Package gorp provides a simple way to marshal Go structs to and from +// SQL databases. It uses the database/sql package, and should work with any +// compliant database/sql driver. +// +// Source code and project home: +// https://github.com/go-gorp/gorp + +package gorp + +import ( + "fmt" + "reflect" + "strings" +) + +// Implementation of Dialect for Microsoft SQL Server databases. +// Use gorp.SqlServerDialect{"2005"} for legacy datatypes. +// Tested with driver: github.com/denisenkom/go-mssqldb + +type SqlServerDialect struct { + + // If set to "2005" legacy datatypes will be used + Version string +} + +func (d SqlServerDialect) ToSqlType(val reflect.Type, maxsize int, isAutoIncr bool) string { + switch val.Kind() { + case reflect.Ptr: + return d.ToSqlType(val.Elem(), maxsize, isAutoIncr) + case reflect.Bool: + return "bit" + case reflect.Int8: + return "tinyint" + case reflect.Uint8: + return "smallint" + case reflect.Int16: + return "smallint" + case reflect.Uint16: + return "int" + case reflect.Int, reflect.Int32: + return "int" + case reflect.Uint, reflect.Uint32: + return "bigint" + case reflect.Int64: + return "bigint" + case reflect.Uint64: + return "numeric(20,0)" + case reflect.Float32: + return "float(24)" + case reflect.Float64: + return "float(53)" + case reflect.Slice: + if val.Elem().Kind() == reflect.Uint8 { + return "varbinary" + } + } + + switch val.Name() { + case "NullInt64": + return "bigint" + case "NullFloat64": + return "float(53)" + case "NullBool": + return "bit" + case "NullTime", "Time": + if d.Version == "2005" { + return "datetime" + } + return "datetime2" + } + + if maxsize < 1 { + if d.Version == "2005" { + maxsize = 255 + } else { + return fmt.Sprintf("nvarchar(max)") + } + } + return fmt.Sprintf("nvarchar(%d)", maxsize) +} + +// Returns auto_increment +func (d SqlServerDialect) AutoIncrStr() string { + return "identity(0,1)" +} + +// Empty string removes autoincrement columns from the INSERT statements. +func (d SqlServerDialect) AutoIncrBindValue() string { + return "" +} + +func (d SqlServerDialect) AutoIncrInsertSuffix(col *ColumnMap) string { + return "" +} + +func (d SqlServerDialect) CreateTableSuffix() string { return ";" } + +func (d SqlServerDialect) TruncateClause() string { + return "truncate table" +} + +// Returns "?" +func (d SqlServerDialect) BindVar(i int) string { + return "?" +} + +func (d SqlServerDialect) InsertAutoIncr(exec SqlExecutor, insertSql string, params ...interface{}) (int64, error) { + return standardInsertAutoIncr(exec, insertSql, params...) +} + +func (d SqlServerDialect) QuoteField(f string) string { + return "[" + strings.Replace(f, "]", "]]", -1) + "]" +} + +func (d SqlServerDialect) QuotedTableForQuery(schema string, table string) string { + if strings.TrimSpace(schema) == "" { + return d.QuoteField(table) + } + return d.QuoteField(schema) + "." + d.QuoteField(table) +} + +func (d SqlServerDialect) QuerySuffix() string { return ";" } + +func (d SqlServerDialect) IfSchemaNotExists(command, schema string) string { + s := fmt.Sprintf("if schema_id(N'%s') is null %s", schema, command) + return s +} + +func (d SqlServerDialect) IfTableExists(command, schema, table string) string { + var schema_clause string + if strings.TrimSpace(schema) != "" { + schema_clause = fmt.Sprintf("%s.", d.QuoteField(schema)) + } + s := fmt.Sprintf("if object_id('%s%s') is not null %s", schema_clause, d.QuoteField(table), command) + return s +} + +func (d SqlServerDialect) IfTableNotExists(command, schema, table string) string { + var schema_clause string + if strings.TrimSpace(schema) != "" { + schema_clause = fmt.Sprintf("%s.", schema) + } + s := fmt.Sprintf("if object_id('%s%s') is null %s", schema_clause, table, command) + return s +} + +func (d SqlServerDialect) CreateIndexSuffix() string { return "" } +func (d SqlServerDialect) DropIndexSuffix() string { return "" } diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/errors.go b/Godeps/_workspace/src/github.com/go-gorp/gorp/errors.go index 356d68475..d13f03fc3 100644 --- a/Godeps/_workspace/src/github.com/go-gorp/gorp/errors.go +++ b/Godeps/_workspace/src/github.com/go-gorp/gorp/errors.go @@ -1,3 +1,14 @@ +// Copyright 2012 James Cooper. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +// Package gorp provides a simple way to marshal Go structs to and from +// SQL databases. It uses the database/sql package, and should work with any +// compliant database/sql driver. +// +// Source code and project home: +// https://github.com/go-gorp/gorp + package gorp import ( @@ -6,13 +17,14 @@ import ( // A non-fatal error, when a select query returns columns that do not exist // as fields in the struct it is being mapped to +// TODO: discuss wether this needs an error. encoding/json silently ignores missing fields type NoFieldInTypeError struct { TypeName string MissingColNames []string } func (err *NoFieldInTypeError) Error() string { - return fmt.Sprintf("gorp: No fields %+v in type %s", err.MissingColNames, err.TypeName) + return fmt.Sprintf("gorp: no fields %+v in type %s", err.MissingColNames, err.TypeName) } // returns true if the error is non-fatal (ie, we shouldn't immediately return) diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/gorp.go b/Godeps/_workspace/src/github.com/go-gorp/gorp/gorp.go index 4c91b6f78..1f32283f5 100644 --- a/Godeps/_workspace/src/github.com/go-gorp/gorp/gorp.go +++ b/Godeps/_workspace/src/github.com/go-gorp/gorp/gorp.go @@ -12,10 +12,8 @@ package gorp import ( - "bytes" "database/sql" "database/sql/driver" - "errors" "fmt" "reflect" "regexp" @@ -23,7 +21,8 @@ import ( "time" ) -// Oracle String (empty string is null) +// OracleString (empty string is null) +// TODO: move to dialect/oracle?, rename to String? type OracleString struct { sql.NullString } @@ -46,80 +45,25 @@ func (os OracleString) Value() (driver.Value, error) { return os.String, nil } -// A nullable Time value -type NullTime struct { - Time time.Time - Valid bool // Valid is true if Time is not NULL +// SqlTyper is a type that returns its database type. Most of the +// time, the type can just use "database/sql/driver".Valuer; but when +// it returns nil for its empty value, it needs to implement SqlTyper +// to have its column type detected properly during table creation. +type SqlTyper interface { + SqlType() driver.Valuer } +// for fields that exists in DB table, but not exists in struct +type dummyField struct{} + // Scan implements the Scanner interface. -func (nt *NullTime) Scan(value interface{}) error { - switch t := value.(type) { - case time.Time: - nt.Time, nt.Valid = t, true - case []byte: - nt.Valid = false - for _, dtfmt := range []string{ - "2006-01-02 15:04:05.999999999", - "2006-01-02T15:04:05.999999999", - "2006-01-02 15:04:05", - "2006-01-02T15:04:05", - "2006-01-02 15:04", - "2006-01-02T15:04", - "2006-01-02", - "2006-01-02 15:04:05-07:00", - } { - var err error - if nt.Time, err = time.Parse(dtfmt, string(t)); err == nil { - nt.Valid = true - break - } - } - } +func (nt *dummyField) Scan(value interface{}) error { return nil } -// Value implements the driver Valuer interface. -func (nt NullTime) Value() (driver.Value, error) { - if !nt.Valid { - return nil, nil - } - return nt.Time, nil -} - var zeroVal reflect.Value var versFieldConst = "[gorp_ver_field]" -// OptimisticLockError is returned by Update() or Delete() if the -// struct being modified has a Version field and the value is not equal to -// the current value in the database -type OptimisticLockError struct { - // Table name where the lock error occurred - TableName string - - // Primary key values of the row being updated/deleted - Keys []interface{} - - // true if a row was found with those keys, indicating the - // LocalVersion is stale. false if no value was found with those - // keys, suggesting the row has been deleted since loaded, or - // was never inserted to begin with - RowExists bool - - // Version value on the struct passed to Update/Delete. This value is - // out of sync with the database. - LocalVersion int64 -} - -// Error returns a description of the cause of the lock error -func (e OptimisticLockError) Error() string { - if e.RowExists { - return fmt.Sprintf("gorp: OptimisticLockError table=%s keys=%v out of date version=%d", e.TableName, e.Keys, e.LocalVersion) - } - - return fmt.Sprintf("gorp: OptimisticLockError no row found for table=%s keys=%v", e.TableName, e.Keys) -} - // The TypeConverter interface provides a way to map a value of one // type to another type when persisting to, or loading from, a database. // @@ -139,502 +83,6 @@ type TypeConverter interface { FromDb(target interface{}) (CustomScanner, bool) } -// CustomScanner binds a database column value to a Go type -type CustomScanner struct { - // After a row is scanned, Holder will contain the value from the database column. - // Initialize the CustomScanner with the concrete Go type you wish the database - // driver to scan the raw column into. - Holder interface{} - // Target typically holds a pointer to the target struct field to bind the Holder - // value to. - Target interface{} - // Binder is a custom function that converts the holder value to the target type - // and sets target accordingly. This function should return error if a problem - // occurs converting the holder to the target. - Binder func(holder interface{}, target interface{}) error -} - -// Bind is called automatically by gorp after Scan() -func (me CustomScanner) Bind() error { - return me.Binder(me.Holder, me.Target) -} - -// DbMap is the root gorp mapping object. Create one of these for each -// database schema you wish to map. Each DbMap contains a list of -// mapped tables. -// -// Example: -// -// dialect := gorp.MySQLDialect{"InnoDB", "UTF8"} -// dbmap := &gorp.DbMap{Db: db, Dialect: dialect} -// -type DbMap struct { - // Db handle to use with this map - Db *sql.DB - - // Dialect implementation to use with this map - Dialect Dialect - - TypeConverter TypeConverter - - tables []*TableMap - logger GorpLogger - logPrefix string -} - -// TableMap represents a mapping between a Go struct and a database table -// Use dbmap.AddTable() or dbmap.AddTableWithName() to create these -type TableMap struct { - // Name of database table. - TableName string - SchemaName string - gotype reflect.Type - Columns []*ColumnMap - keys []*ColumnMap - uniqueTogether [][]string - version *ColumnMap - insertPlan bindPlan - updatePlan bindPlan - deletePlan bindPlan - getPlan bindPlan - dbmap *DbMap -} - -// ResetSql removes cached insert/update/select/delete SQL strings -// associated with this TableMap. Call this if you've modified -// any column names or the table name itself. -func (t *TableMap) ResetSql() { - t.insertPlan = bindPlan{} - t.updatePlan = bindPlan{} - t.deletePlan = bindPlan{} - t.getPlan = bindPlan{} -} - -// SetKeys lets you specify the fields on a struct that map to primary -// key columns on the table. If isAutoIncr is set, result.LastInsertId() -// will be used after INSERT to bind the generated id to the Go struct. -// -// Automatically calls ResetSql() to ensure SQL statements are regenerated. -// -// Panics if isAutoIncr is true, and fieldNames length != 1 -// -func (t *TableMap) SetKeys(isAutoIncr bool, fieldNames ...string) *TableMap { - if isAutoIncr && len(fieldNames) != 1 { - panic(fmt.Sprintf( - "gorp: SetKeys: fieldNames length must be 1 if key is auto-increment. (Saw %v fieldNames)", - len(fieldNames))) - } - t.keys = make([]*ColumnMap, 0) - for _, name := range fieldNames { - colmap := t.ColMap(name) - colmap.isPK = true - colmap.isAutoIncr = isAutoIncr - t.keys = append(t.keys, colmap) - } - t.ResetSql() - - return t -} - -// SetUniqueTogether lets you specify uniqueness constraints across multiple -// columns on the table. Each call adds an additional constraint for the -// specified columns. -// -// Automatically calls ResetSql() to ensure SQL statements are regenerated. -// -// Panics if fieldNames length < 2. -// -func (t *TableMap) SetUniqueTogether(fieldNames ...string) *TableMap { - if len(fieldNames) < 2 { - panic(fmt.Sprintf( - "gorp: SetUniqueTogether: must provide at least two fieldNames to set uniqueness constraint.")) - } - - columns := make([]string, 0) - for _, name := range fieldNames { - columns = append(columns, name) - } - t.uniqueTogether = append(t.uniqueTogether, columns) - t.ResetSql() - - return t -} - -// ColMap returns the ColumnMap pointer matching the given struct field -// name. It panics if the struct does not contain a field matching this -// name. -func (t *TableMap) ColMap(field string) *ColumnMap { - col := colMapOrNil(t, field) - if col == nil { - e := fmt.Sprintf("No ColumnMap in table %s type %s with field %s", - t.TableName, t.gotype.Name(), field) - - panic(e) - } - return col -} - -func colMapOrNil(t *TableMap, field string) *ColumnMap { - for _, col := range t.Columns { - if col.fieldName == field || col.ColumnName == field { - return col - } - } - return nil -} - -// SetVersionCol sets the column to use as the Version field. By default -// the "Version" field is used. Returns the column found, or panics -// if the struct does not contain a field matching this name. -// -// Automatically calls ResetSql() to ensure SQL statements are regenerated. -func (t *TableMap) SetVersionCol(field string) *ColumnMap { - c := t.ColMap(field) - t.version = c - t.ResetSql() - return c -} - -type bindPlan struct { - query string - argFields []string - keyFields []string - versField string - autoIncrIdx int - autoIncrFieldName string -} - -func (plan bindPlan) createBindInstance(elem reflect.Value, conv TypeConverter) (bindInstance, error) { - bi := bindInstance{query: plan.query, autoIncrIdx: plan.autoIncrIdx, autoIncrFieldName: plan.autoIncrFieldName, versField: plan.versField} - if plan.versField != "" { - bi.existingVersion = elem.FieldByName(plan.versField).Int() - } - - var err error - - for i := 0; i < len(plan.argFields); i++ { - k := plan.argFields[i] - if k == versFieldConst { - newVer := bi.existingVersion + 1 - bi.args = append(bi.args, newVer) - if bi.existingVersion == 0 { - elem.FieldByName(plan.versField).SetInt(int64(newVer)) - } - } else { - val := elem.FieldByName(k).Interface() - if conv != nil { - val, err = conv.ToDb(val) - if err != nil { - return bindInstance{}, err - } - } - bi.args = append(bi.args, val) - } - } - - for i := 0; i < len(plan.keyFields); i++ { - k := plan.keyFields[i] - val := elem.FieldByName(k).Interface() - if conv != nil { - val, err = conv.ToDb(val) - if err != nil { - return bindInstance{}, err - } - } - bi.keys = append(bi.keys, val) - } - - return bi, nil -} - -type bindInstance struct { - query string - args []interface{} - keys []interface{} - existingVersion int64 - versField string - autoIncrIdx int - autoIncrFieldName string -} - -func (t *TableMap) bindInsert(elem reflect.Value) (bindInstance, error) { - plan := t.insertPlan - if plan.query == "" { - plan.autoIncrIdx = -1 - - s := bytes.Buffer{} - s2 := bytes.Buffer{} - s.WriteString(fmt.Sprintf("insert into %s (", t.dbmap.Dialect.QuotedTableForQuery(t.SchemaName, t.TableName))) - - x := 0 - first := true - for y := range t.Columns { - col := t.Columns[y] - if !(col.isAutoIncr && t.dbmap.Dialect.AutoIncrBindValue() == "") { - if !col.Transient { - if !first { - s.WriteString(",") - s2.WriteString(",") - } - s.WriteString(t.dbmap.Dialect.QuoteField(col.ColumnName)) - - if col.isAutoIncr { - s2.WriteString(t.dbmap.Dialect.AutoIncrBindValue()) - plan.autoIncrIdx = y - plan.autoIncrFieldName = col.fieldName - } else { - s2.WriteString(t.dbmap.Dialect.BindVar(x)) - if col == t.version { - plan.versField = col.fieldName - plan.argFields = append(plan.argFields, versFieldConst) - } else { - plan.argFields = append(plan.argFields, col.fieldName) - } - - x++ - } - first = false - } - } else { - plan.autoIncrIdx = y - plan.autoIncrFieldName = col.fieldName - } - } - s.WriteString(") values (") - s.WriteString(s2.String()) - s.WriteString(")") - if plan.autoIncrIdx > -1 { - s.WriteString(t.dbmap.Dialect.AutoIncrInsertSuffix(t.Columns[plan.autoIncrIdx])) - } - s.WriteString(t.dbmap.Dialect.QuerySuffix()) - - plan.query = s.String() - t.insertPlan = plan - } - - return plan.createBindInstance(elem, t.dbmap.TypeConverter) -} - -func (t *TableMap) bindUpdate(elem reflect.Value) (bindInstance, error) { - plan := t.updatePlan - if plan.query == "" { - - s := bytes.Buffer{} - s.WriteString(fmt.Sprintf("update %s set ", t.dbmap.Dialect.QuotedTableForQuery(t.SchemaName, t.TableName))) - x := 0 - - for y := range t.Columns { - col := t.Columns[y] - if !col.isAutoIncr && !col.Transient { - if x > 0 { - s.WriteString(", ") - } - s.WriteString(t.dbmap.Dialect.QuoteField(col.ColumnName)) - s.WriteString("=") - s.WriteString(t.dbmap.Dialect.BindVar(x)) - - if col == t.version { - plan.versField = col.fieldName - plan.argFields = append(plan.argFields, versFieldConst) - } else { - plan.argFields = append(plan.argFields, col.fieldName) - } - x++ - } - } - - s.WriteString(" where ") - for y := range t.keys { - col := t.keys[y] - if y > 0 { - s.WriteString(" and ") - } - s.WriteString(t.dbmap.Dialect.QuoteField(col.ColumnName)) - s.WriteString("=") - s.WriteString(t.dbmap.Dialect.BindVar(x)) - - plan.argFields = append(plan.argFields, col.fieldName) - plan.keyFields = append(plan.keyFields, col.fieldName) - x++ - } - if plan.versField != "" { - s.WriteString(" and ") - s.WriteString(t.dbmap.Dialect.QuoteField(t.version.ColumnName)) - s.WriteString("=") - s.WriteString(t.dbmap.Dialect.BindVar(x)) - plan.argFields = append(plan.argFields, plan.versField) - } - s.WriteString(t.dbmap.Dialect.QuerySuffix()) - - plan.query = s.String() - t.updatePlan = plan - } - - return plan.createBindInstance(elem, t.dbmap.TypeConverter) -} - -func (t *TableMap) bindDelete(elem reflect.Value) (bindInstance, error) { - plan := t.deletePlan - if plan.query == "" { - - s := bytes.Buffer{} - s.WriteString(fmt.Sprintf("delete from %s", t.dbmap.Dialect.QuotedTableForQuery(t.SchemaName, t.TableName))) - - for y := range t.Columns { - col := t.Columns[y] - if !col.Transient { - if col == t.version { - plan.versField = col.fieldName - } - } - } - - s.WriteString(" where ") - for x := range t.keys { - k := t.keys[x] - if x > 0 { - s.WriteString(" and ") - } - s.WriteString(t.dbmap.Dialect.QuoteField(k.ColumnName)) - s.WriteString("=") - s.WriteString(t.dbmap.Dialect.BindVar(x)) - - plan.keyFields = append(plan.keyFields, k.fieldName) - plan.argFields = append(plan.argFields, k.fieldName) - } - if plan.versField != "" { - s.WriteString(" and ") - s.WriteString(t.dbmap.Dialect.QuoteField(t.version.ColumnName)) - s.WriteString("=") - s.WriteString(t.dbmap.Dialect.BindVar(len(plan.argFields))) - - plan.argFields = append(plan.argFields, plan.versField) - } - s.WriteString(t.dbmap.Dialect.QuerySuffix()) - - plan.query = s.String() - t.deletePlan = plan - } - - return plan.createBindInstance(elem, t.dbmap.TypeConverter) -} - -func (t *TableMap) bindGet() bindPlan { - plan := t.getPlan - if plan.query == "" { - - s := bytes.Buffer{} - s.WriteString("select ") - - x := 0 - for _, col := range t.Columns { - if !col.Transient { - if x > 0 { - s.WriteString(",") - } - s.WriteString(t.dbmap.Dialect.QuoteField(col.ColumnName)) - plan.argFields = append(plan.argFields, col.fieldName) - x++ - } - } - s.WriteString(" from ") - s.WriteString(t.dbmap.Dialect.QuotedTableForQuery(t.SchemaName, t.TableName)) - s.WriteString(" where ") - for x := range t.keys { - col := t.keys[x] - if x > 0 { - s.WriteString(" and ") - } - s.WriteString(t.dbmap.Dialect.QuoteField(col.ColumnName)) - s.WriteString("=") - s.WriteString(t.dbmap.Dialect.BindVar(x)) - - plan.keyFields = append(plan.keyFields, col.fieldName) - } - s.WriteString(t.dbmap.Dialect.QuerySuffix()) - - plan.query = s.String() - t.getPlan = plan - } - - return plan -} - -// ColumnMap represents a mapping between a Go struct field and a single -// column in a table. -// Unique and MaxSize only inform the -// CreateTables() function and are not used by Insert/Update/Delete/Get. -type ColumnMap struct { - // Column name in db table - ColumnName string - - // If true, this column is skipped in generated SQL statements - Transient bool - - // If true, " unique" is added to create table statements. - // Not used elsewhere - Unique bool - - // Passed to Dialect.ToSqlType() to assist in informing the - // correct column type to map to in CreateTables() - // Not used elsewhere - MaxSize int - - fieldName string - gotype reflect.Type - isPK bool - isAutoIncr bool - isNotNull bool -} - -// Rename allows you to specify the column name in the table -// -// Example: table.ColMap("Updated").Rename("date_updated") -// -func (c *ColumnMap) Rename(colname string) *ColumnMap { - c.ColumnName = colname - return c -} - -// SetTransient allows you to mark the column as transient. If true -// this column will be skipped when SQL statements are generated -func (c *ColumnMap) SetTransient(b bool) *ColumnMap { - c.Transient = b - return c -} - -// SetUnique adds "unique" to the create table statements for this -// column, if b is true. -func (c *ColumnMap) SetUnique(b bool) *ColumnMap { - c.Unique = b - return c -} - -// SetNotNull adds "not null" to the create table statements for this -// column, if nn is true. -func (c *ColumnMap) SetNotNull(nn bool) *ColumnMap { - c.isNotNull = nn - return c -} - -// SetMaxSize specifies the max length of values of this column. This is -// passed to the dialect.ToSqlType() function, which can use the value -// to alter the generated type for "create table" statements -func (c *ColumnMap) SetMaxSize(size int) *ColumnMap { - c.MaxSize = size - return c -} - -// Transaction represents a database transaction. -// Insert/Update/Delete/Get/Exec operations will be run in the context -// of that transaction. Transactions should be terminated with -// a call to Commit() or Rollback() -type Transaction struct { - dbmap *DbMap - tx *sql.Tx - closed bool -} - // Executor exposes the sql.DB and sql.Tx Exec function so that it can be used // on internal functions that convert named parameters for the Exec function. type executor interface { @@ -670,534 +118,6 @@ type SqlExecutor interface { // interface. var _, _ SqlExecutor = &DbMap{}, &Transaction{} -type GorpLogger interface { - Printf(format string, v ...interface{}) -} - -// TraceOn turns on SQL statement logging for this DbMap. After this is -// called, all SQL statements will be sent to the logger. If prefix is -// a non-empty string, it will be written to the front of all logged -// strings, which can aid in filtering log lines. -// -// Use TraceOn if you want to spy on the SQL statements that gorp -// generates. -// -// Note that the base log.Logger type satisfies GorpLogger, but adapters can -// easily be written for other logging packages (e.g., the golang-sanctioned -// glog framework). -func (m *DbMap) TraceOn(prefix string, logger GorpLogger) { - m.logger = logger - if prefix == "" { - m.logPrefix = prefix - } else { - m.logPrefix = fmt.Sprintf("%s ", prefix) - } -} - -// TraceOff turns off tracing. It is idempotent. -func (m *DbMap) TraceOff() { - m.logger = nil - m.logPrefix = "" -} - -// AddTable registers the given interface type with gorp. The table name -// will be given the name of the TypeOf(i). You must call this function, -// or AddTableWithName, for any struct type you wish to persist with -// the given DbMap. -// -// This operation is idempotent. If i's type is already mapped, the -// existing *TableMap is returned -func (m *DbMap) AddTable(i interface{}) *TableMap { - return m.AddTableWithName(i, "") -} - -// AddTableWithName has the same behavior as AddTable, but sets -// table.TableName to name. -func (m *DbMap) AddTableWithName(i interface{}, name string) *TableMap { - return m.AddTableWithNameAndSchema(i, "", name) -} - -// AddTableWithNameAndSchema has the same behavior as AddTable, but sets -// table.TableName to name. -func (m *DbMap) AddTableWithNameAndSchema(i interface{}, schema string, name string) *TableMap { - t := reflect.TypeOf(i) - if name == "" { - name = t.Name() - } - - // check if we have a table for this type already - // if so, update the name and return the existing pointer - for i := range m.tables { - table := m.tables[i] - if table.gotype == t { - table.TableName = name - return table - } - } - - tmap := &TableMap{gotype: t, TableName: name, SchemaName: schema, dbmap: m} - tmap.Columns = m.readStructColumns(t) - m.tables = append(m.tables, tmap) - - return tmap -} - -func (m *DbMap) readStructColumns(t reflect.Type) (cols []*ColumnMap) { - n := t.NumField() - for i := 0; i < n; i++ { - f := t.Field(i) - if f.Anonymous && f.Type.Kind() == reflect.Struct { - // Recursively add nested fields in embedded structs. - subcols := m.readStructColumns(f.Type) - // Don't append nested fields that have the same field - // name as an already-mapped field. - for _, subcol := range subcols { - shouldAppend := true - for _, col := range cols { - if !subcol.Transient && subcol.fieldName == col.fieldName { - shouldAppend = false - break - } - } - if shouldAppend { - cols = append(cols, subcol) - } - } - } else { - columnName := f.Tag.Get("db") - if columnName == "" { - columnName = f.Name - } - gotype := f.Type - if m.TypeConverter != nil { - // Make a new pointer to a value of type gotype and - // pass it to the TypeConverter's FromDb method to see - // if a different type should be used for the column - // type during table creation. - value := reflect.New(gotype).Interface() - scanner, useHolder := m.TypeConverter.FromDb(value) - if useHolder { - gotype = reflect.TypeOf(scanner.Holder) - } - } - cm := &ColumnMap{ - ColumnName: columnName, - Transient: columnName == "-", - fieldName: f.Name, - gotype: gotype, - } - // Check for nested fields of the same field name and - // override them. - shouldAppend := true - for index, col := range cols { - if !col.Transient && col.fieldName == cm.fieldName { - cols[index] = cm - shouldAppend = false - break - } - } - if shouldAppend { - cols = append(cols, cm) - } - } - } - return -} - -// CreateTables iterates through TableMaps registered to this DbMap and -// executes "create table" statements against the database for each. -// -// This is particularly useful in unit tests where you want to create -// and destroy the schema automatically. -func (m *DbMap) CreateTables() error { - return m.createTables(false) -} - -// CreateTablesIfNotExists is similar to CreateTables, but starts -// each statement with "create table if not exists" so that existing -// tables do not raise errors -func (m *DbMap) CreateTablesIfNotExists() error { - return m.createTables(true) -} - -func (m *DbMap) createTables(ifNotExists bool) error { - var err error - for i := range m.tables { - table := m.tables[i] - - s := bytes.Buffer{} - - if strings.TrimSpace(table.SchemaName) != "" { - schemaCreate := "create schema" - if ifNotExists { - s.WriteString(m.Dialect.IfSchemaNotExists(schemaCreate, table.SchemaName)) - } else { - s.WriteString(schemaCreate) - } - s.WriteString(fmt.Sprintf(" %s;", table.SchemaName)) - } - - tableCreate := "create table" - if ifNotExists { - s.WriteString(m.Dialect.IfTableNotExists(tableCreate, table.SchemaName, table.TableName)) - } else { - s.WriteString(tableCreate) - } - s.WriteString(fmt.Sprintf(" %s (", m.Dialect.QuotedTableForQuery(table.SchemaName, table.TableName))) - - x := 0 - for _, col := range table.Columns { - if !col.Transient { - if x > 0 { - s.WriteString(", ") - } - stype := m.Dialect.ToSqlType(col.gotype, col.MaxSize, col.isAutoIncr) - s.WriteString(fmt.Sprintf("%s %s", m.Dialect.QuoteField(col.ColumnName), stype)) - - if col.isPK || col.isNotNull { - s.WriteString(" not null") - } - if col.isPK && len(table.keys) == 1 { - s.WriteString(" primary key") - } - if col.Unique { - s.WriteString(" unique") - } - if col.isAutoIncr { - s.WriteString(fmt.Sprintf(" %s", m.Dialect.AutoIncrStr())) - } - - x++ - } - } - if len(table.keys) > 1 { - s.WriteString(", primary key (") - for x := range table.keys { - if x > 0 { - s.WriteString(", ") - } - s.WriteString(m.Dialect.QuoteField(table.keys[x].ColumnName)) - } - s.WriteString(")") - } - if len(table.uniqueTogether) > 0 { - for _, columns := range table.uniqueTogether { - s.WriteString(", unique (") - for i, column := range columns { - if i > 0 { - s.WriteString(", ") - } - s.WriteString(m.Dialect.QuoteField(column)) - } - s.WriteString(")") - } - } - s.WriteString(") ") - s.WriteString(m.Dialect.CreateTableSuffix()) - s.WriteString(m.Dialect.QuerySuffix()) - _, err = m.Exec(s.String()) - if err != nil { - break - } - } - return err -} - -// DropTable drops an individual table. Will throw an error -// if the table does not exist. -func (m *DbMap) DropTable(table interface{}) error { - t := reflect.TypeOf(table) - return m.dropTable(t, false) -} - -// DropTable drops an individual table. Will NOT throw an error -// if the table does not exist. -func (m *DbMap) DropTableIfExists(table interface{}) error { - t := reflect.TypeOf(table) - return m.dropTable(t, true) -} - -// DropTables iterates through TableMaps registered to this DbMap and -// executes "drop table" statements against the database for each. -func (m *DbMap) DropTables() error { - return m.dropTables(false) -} - -// DropTablesIfExists is the same as DropTables, but uses the "if exists" clause to -// avoid errors for tables that do not exist. -func (m *DbMap) DropTablesIfExists() error { - return m.dropTables(true) -} - -// Goes through all the registered tables, dropping them one by one. -// If an error is encountered, then it is returned and the rest of -// the tables are not dropped. -func (m *DbMap) dropTables(addIfExists bool) (err error) { - for _, table := range m.tables { - err = m.dropTableImpl(table, addIfExists) - if err != nil { - return - } - } - return err -} - -// Implementation of dropping a single table. -func (m *DbMap) dropTable(t reflect.Type, addIfExists bool) error { - table := tableOrNil(m, t) - if table == nil { - return errors.New(fmt.Sprintf("table %s was not registered!", table.TableName)) - } - - return m.dropTableImpl(table, addIfExists) -} - -func (m *DbMap) dropTableImpl(table *TableMap, ifExists bool) (err error) { - tableDrop := "drop table" - if ifExists { - tableDrop = m.Dialect.IfTableExists(tableDrop, table.SchemaName, table.TableName) - } - _, err = m.Exec(fmt.Sprintf("%s %s;", tableDrop, m.Dialect.QuotedTableForQuery(table.SchemaName, table.TableName))) - return err -} - -// TruncateTables iterates through TableMaps registered to this DbMap and -// executes "truncate table" statements against the database for each, or in the case of -// sqlite, a "delete from" with no "where" clause, which uses the truncate optimization -// (http://www.sqlite.org/lang_delete.html) -func (m *DbMap) TruncateTables() error { - var err error - for i := range m.tables { - table := m.tables[i] - _, e := m.Exec(fmt.Sprintf("%s %s;", m.Dialect.TruncateClause(), m.Dialect.QuotedTableForQuery(table.SchemaName, table.TableName))) - if e != nil { - err = e - } - } - return err -} - -// Insert runs a SQL INSERT statement for each element in list. List -// items must be pointers. -// -// Any interface whose TableMap has an auto-increment primary key will -// have its last insert id bound to the PK field on the struct. -// -// The hook functions PreInsert() and/or PostInsert() will be executed -// before/after the INSERT statement if the interface defines them. -// -// Panics if any interface in the list has not been registered with AddTable -func (m *DbMap) Insert(list ...interface{}) error { - return insert(m, m, list...) -} - -// Update runs a SQL UPDATE statement for each element in list. List -// items must be pointers. -// -// The hook functions PreUpdate() and/or PostUpdate() will be executed -// before/after the UPDATE statement if the interface defines them. -// -// Returns the number of rows updated. -// -// Returns an error if SetKeys has not been called on the TableMap -// Panics if any interface in the list has not been registered with AddTable -func (m *DbMap) Update(list ...interface{}) (int64, error) { - return update(m, m, list...) -} - -// Delete runs a SQL DELETE statement for each element in list. List -// items must be pointers. -// -// The hook functions PreDelete() and/or PostDelete() will be executed -// before/after the DELETE statement if the interface defines them. -// -// Returns the number of rows deleted. -// -// Returns an error if SetKeys has not been called on the TableMap -// Panics if any interface in the list has not been registered with AddTable -func (m *DbMap) Delete(list ...interface{}) (int64, error) { - return delete(m, m, list...) -} - -// Get runs a SQL SELECT to fetch a single row from the table based on the -// primary key(s) -// -// i should be an empty value for the struct to load. keys should be -// the primary key value(s) for the row to load. If multiple keys -// exist on the table, the order should match the column order -// specified in SetKeys() when the table mapping was defined. -// -// The hook function PostGet() will be executed after the SELECT -// statement if the interface defines them. -// -// Returns a pointer to a struct that matches or nil if no row is found. -// -// Returns an error if SetKeys has not been called on the TableMap -// Panics if any interface in the list has not been registered with AddTable -func (m *DbMap) Get(i interface{}, keys ...interface{}) (interface{}, error) { - return get(m, m, i, keys...) -} - -// Select runs an arbitrary SQL query, binding the columns in the result -// to fields on the struct specified by i. args represent the bind -// parameters for the SQL statement. -// -// Column names on the SELECT statement should be aliased to the field names -// on the struct i. Returns an error if one or more columns in the result -// do not match. It is OK if fields on i are not part of the SQL -// statement. -// -// The hook function PostGet() will be executed after the SELECT -// statement if the interface defines them. -// -// Values are returned in one of two ways: -// 1. If i is a struct or a pointer to a struct, returns a slice of pointers to -// matching rows of type i. -// 2. If i is a pointer to a slice, the results will be appended to that slice -// and nil returned. -// -// i does NOT need to be registered with AddTable() -func (m *DbMap) Select(i interface{}, query string, args ...interface{}) ([]interface{}, error) { - return hookedselect(m, m, i, query, args...) -} - -// Exec runs an arbitrary SQL statement. args represent the bind parameters. -// This is equivalent to running: Exec() using database/sql -func (m *DbMap) Exec(query string, args ...interface{}) (sql.Result, error) { - if m.logger != nil { - now := time.Now() - defer m.trace(now, query, args...) - } - return exec(m, query, args...) -} - -// SelectInt is a convenience wrapper around the gorp.SelectInt function -func (m *DbMap) SelectInt(query string, args ...interface{}) (int64, error) { - return SelectInt(m, query, args...) -} - -// SelectNullInt is a convenience wrapper around the gorp.SelectNullInt function -func (m *DbMap) SelectNullInt(query string, args ...interface{}) (sql.NullInt64, error) { - return SelectNullInt(m, query, args...) -} - -// SelectFloat is a convenience wrapper around the gorp.SelectFlot function -func (m *DbMap) SelectFloat(query string, args ...interface{}) (float64, error) { - return SelectFloat(m, query, args...) -} - -// SelectNullFloat is a convenience wrapper around the gorp.SelectNullFloat function -func (m *DbMap) SelectNullFloat(query string, args ...interface{}) (sql.NullFloat64, error) { - return SelectNullFloat(m, query, args...) -} - -// SelectStr is a convenience wrapper around the gorp.SelectStr function -func (m *DbMap) SelectStr(query string, args ...interface{}) (string, error) { - return SelectStr(m, query, args...) -} - -// SelectNullStr is a convenience wrapper around the gorp.SelectNullStr function -func (m *DbMap) SelectNullStr(query string, args ...interface{}) (sql.NullString, error) { - return SelectNullStr(m, query, args...) -} - -// SelectOne is a convenience wrapper around the gorp.SelectOne function -func (m *DbMap) SelectOne(holder interface{}, query string, args ...interface{}) error { - return SelectOne(m, m, holder, query, args...) -} - -// Begin starts a gorp Transaction -func (m *DbMap) Begin() (*Transaction, error) { - if m.logger != nil { - now := time.Now() - defer m.trace(now, "begin;") - } - tx, err := m.Db.Begin() - if err != nil { - return nil, err - } - return &Transaction{m, tx, false}, nil -} - -// TableFor returns the *TableMap corresponding to the given Go Type -// If no table is mapped to that type an error is returned. -// If checkPK is true and the mapped table has no registered PKs, an error is returned. -func (m *DbMap) TableFor(t reflect.Type, checkPK bool) (*TableMap, error) { - table := tableOrNil(m, t) - if table == nil { - return nil, errors.New(fmt.Sprintf("No table found for type: %v", t.Name())) - } - - if checkPK && len(table.keys) < 1 { - e := fmt.Sprintf("gorp: No keys defined for table: %s", - table.TableName) - return nil, errors.New(e) - } - - return table, nil -} - -// Prepare creates a prepared statement for later queries or executions. -// Multiple queries or executions may be run concurrently from the returned statement. -// This is equivalent to running: Prepare() using database/sql -func (m *DbMap) Prepare(query string) (*sql.Stmt, error) { - if m.logger != nil { - now := time.Now() - defer m.trace(now, query, nil) - } - return m.Db.Prepare(query) -} - -func tableOrNil(m *DbMap, t reflect.Type) *TableMap { - for i := range m.tables { - table := m.tables[i] - if table.gotype == t { - return table - } - } - return nil -} - -func (m *DbMap) tableForPointer(ptr interface{}, checkPK bool) (*TableMap, reflect.Value, error) { - ptrv := reflect.ValueOf(ptr) - if ptrv.Kind() != reflect.Ptr { - e := fmt.Sprintf("gorp: passed non-pointer: %v (kind=%v)", ptr, - ptrv.Kind()) - return nil, reflect.Value{}, errors.New(e) - } - elem := ptrv.Elem() - etype := reflect.TypeOf(elem.Interface()) - t, err := m.TableFor(etype, checkPK) - if err != nil { - return nil, reflect.Value{}, err - } - - return t, elem, nil -} - -func (m *DbMap) queryRow(query string, args ...interface{}) *sql.Row { - if m.logger != nil { - now := time.Now() - defer m.trace(now, query, args...) - } - return m.Db.QueryRow(query, args...) -} - -func (m *DbMap) query(query string, args ...interface{}) (*sql.Rows, error) { - if m.logger != nil { - now := time.Now() - defer m.trace(now, query, args...) - } - return m.Db.Query(query, args...) -} - -func (m *DbMap) trace(started time.Time, query string, args ...interface{}) { - if m.logger != nil { - var margs = argsString(args...) - m.logger.Printf("%s%s [%s] (%v)", m.logPrefix, query, margs, (time.Now().Sub(started))) - } -} - func argsString(args ...interface{}) string { var margs string for i, a := range args { @@ -1222,505 +142,6 @@ func argsString(args ...interface{}) string { return margs } -/////////////// - -// Insert has the same behavior as DbMap.Insert(), but runs in a transaction. -func (t *Transaction) Insert(list ...interface{}) error { - return insert(t.dbmap, t, list...) -} - -// Update had the same behavior as DbMap.Update(), but runs in a transaction. -func (t *Transaction) Update(list ...interface{}) (int64, error) { - return update(t.dbmap, t, list...) -} - -// Delete has the same behavior as DbMap.Delete(), but runs in a transaction. -func (t *Transaction) Delete(list ...interface{}) (int64, error) { - return delete(t.dbmap, t, list...) -} - -// Get has the same behavior as DbMap.Get(), but runs in a transaction. -func (t *Transaction) Get(i interface{}, keys ...interface{}) (interface{}, error) { - return get(t.dbmap, t, i, keys...) -} - -// Select has the same behavior as DbMap.Select(), but runs in a transaction. -func (t *Transaction) Select(i interface{}, query string, args ...interface{}) ([]interface{}, error) { - return hookedselect(t.dbmap, t, i, query, args...) -} - -// Exec has the same behavior as DbMap.Exec(), but runs in a transaction. -func (t *Transaction) Exec(query string, args ...interface{}) (sql.Result, error) { - if t.dbmap.logger != nil { - now := time.Now() - defer t.dbmap.trace(now, query, args...) - } - return exec(t, query, args...) -} - -// SelectInt is a convenience wrapper around the gorp.SelectInt function. -func (t *Transaction) SelectInt(query string, args ...interface{}) (int64, error) { - return SelectInt(t, query, args...) -} - -// SelectNullInt is a convenience wrapper around the gorp.SelectNullInt function. -func (t *Transaction) SelectNullInt(query string, args ...interface{}) (sql.NullInt64, error) { - return SelectNullInt(t, query, args...) -} - -// SelectFloat is a convenience wrapper around the gorp.SelectFloat function. -func (t *Transaction) SelectFloat(query string, args ...interface{}) (float64, error) { - return SelectFloat(t, query, args...) -} - -// SelectNullFloat is a convenience wrapper around the gorp.SelectNullFloat function. -func (t *Transaction) SelectNullFloat(query string, args ...interface{}) (sql.NullFloat64, error) { - return SelectNullFloat(t, query, args...) -} - -// SelectStr is a convenience wrapper around the gorp.SelectStr function. -func (t *Transaction) SelectStr(query string, args ...interface{}) (string, error) { - return SelectStr(t, query, args...) -} - -// SelectNullStr is a convenience wrapper around the gorp.SelectNullStr function. -func (t *Transaction) SelectNullStr(query string, args ...interface{}) (sql.NullString, error) { - return SelectNullStr(t, query, args...) -} - -// SelectOne is a convenience wrapper around the gorp.SelectOne function. -func (t *Transaction) SelectOne(holder interface{}, query string, args ...interface{}) error { - return SelectOne(t.dbmap, t, holder, query, args...) -} - -// Commit commits the underlying database transaction. -func (t *Transaction) Commit() error { - if !t.closed { - t.closed = true - if t.dbmap.logger != nil { - now := time.Now() - defer t.dbmap.trace(now, "commit;") - } - return t.tx.Commit() - } - - return sql.ErrTxDone -} - -// Rollback rolls back the underlying database transaction. -func (t *Transaction) Rollback() error { - if !t.closed { - t.closed = true - if t.dbmap.logger != nil { - now := time.Now() - defer t.dbmap.trace(now, "rollback;") - } - return t.tx.Rollback() - } - - return sql.ErrTxDone -} - -// Savepoint creates a savepoint with the given name. The name is interpolated -// directly into the SQL SAVEPOINT statement, so you must sanitize it if it is -// derived from user input. -func (t *Transaction) Savepoint(name string) error { - query := "savepoint " + t.dbmap.Dialect.QuoteField(name) - if t.dbmap.logger != nil { - now := time.Now() - defer t.dbmap.trace(now, query, nil) - } - _, err := t.tx.Exec(query) - return err -} - -// RollbackToSavepoint rolls back to the savepoint with the given name. The -// name is interpolated directly into the SQL SAVEPOINT statement, so you must -// sanitize it if it is derived from user input. -func (t *Transaction) RollbackToSavepoint(savepoint string) error { - query := "rollback to savepoint " + t.dbmap.Dialect.QuoteField(savepoint) - if t.dbmap.logger != nil { - now := time.Now() - defer t.dbmap.trace(now, query, nil) - } - _, err := t.tx.Exec(query) - return err -} - -// ReleaseSavepint releases the savepoint with the given name. The name is -// interpolated directly into the SQL SAVEPOINT statement, so you must sanitize -// it if it is derived from user input. -func (t *Transaction) ReleaseSavepoint(savepoint string) error { - query := "release savepoint " + t.dbmap.Dialect.QuoteField(savepoint) - if t.dbmap.logger != nil { - now := time.Now() - defer t.dbmap.trace(now, query, nil) - } - _, err := t.tx.Exec(query) - return err -} - -// Prepare has the same behavior as DbMap.Prepare(), but runs in a transaction. -func (t *Transaction) Prepare(query string) (*sql.Stmt, error) { - if t.dbmap.logger != nil { - now := time.Now() - defer t.dbmap.trace(now, query, nil) - } - return t.tx.Prepare(query) -} - -func (t *Transaction) queryRow(query string, args ...interface{}) *sql.Row { - if t.dbmap.logger != nil { - now := time.Now() - defer t.dbmap.trace(now, query, args...) - } - return t.tx.QueryRow(query, args...) -} - -func (t *Transaction) query(query string, args ...interface{}) (*sql.Rows, error) { - if t.dbmap.logger != nil { - now := time.Now() - defer t.dbmap.trace(now, query, args...) - } - return t.tx.Query(query, args...) -} - -/////////////// - -// SelectInt executes the given query, which should be a SELECT statement for a single -// integer column, and returns the value of the first row returned. If no rows are -// found, zero is returned. -func SelectInt(e SqlExecutor, query string, args ...interface{}) (int64, error) { - var h int64 - err := selectVal(e, &h, query, args...) - if err != nil && err != sql.ErrNoRows { - return 0, err - } - return h, nil -} - -// SelectNullInt executes the given query, which should be a SELECT statement for a single -// integer column, and returns the value of the first row returned. If no rows are -// found, the empty sql.NullInt64 value is returned. -func SelectNullInt(e SqlExecutor, query string, args ...interface{}) (sql.NullInt64, error) { - var h sql.NullInt64 - err := selectVal(e, &h, query, args...) - if err != nil && err != sql.ErrNoRows { - return h, err - } - return h, nil -} - -// SelectFloat executes the given query, which should be a SELECT statement for a single -// float column, and returns the value of the first row returned. If no rows are -// found, zero is returned. -func SelectFloat(e SqlExecutor, query string, args ...interface{}) (float64, error) { - var h float64 - err := selectVal(e, &h, query, args...) - if err != nil && err != sql.ErrNoRows { - return 0, err - } - return h, nil -} - -// SelectNullFloat executes the given query, which should be a SELECT statement for a single -// float column, and returns the value of the first row returned. If no rows are -// found, the empty sql.NullInt64 value is returned. -func SelectNullFloat(e SqlExecutor, query string, args ...interface{}) (sql.NullFloat64, error) { - var h sql.NullFloat64 - err := selectVal(e, &h, query, args...) - if err != nil && err != sql.ErrNoRows { - return h, err - } - return h, nil -} - -// SelectStr executes the given query, which should be a SELECT statement for a single -// char/varchar column, and returns the value of the first row returned. If no rows are -// found, an empty string is returned. -func SelectStr(e SqlExecutor, query string, args ...interface{}) (string, error) { - var h string - err := selectVal(e, &h, query, args...) - if err != nil && err != sql.ErrNoRows { - return "", err - } - return h, nil -} - -// SelectNullStr executes the given query, which should be a SELECT -// statement for a single char/varchar column, and returns the value -// of the first row returned. If no rows are found, the empty -// sql.NullString is returned. -func SelectNullStr(e SqlExecutor, query string, args ...interface{}) (sql.NullString, error) { - var h sql.NullString - err := selectVal(e, &h, query, args...) - if err != nil && err != sql.ErrNoRows { - return h, err - } - return h, nil -} - -// SelectOne executes the given query (which should be a SELECT statement) -// and binds the result to holder, which must be a pointer. -// -// If no row is found, an error (sql.ErrNoRows specifically) will be returned -// -// If more than one row is found, an error will be returned. -// -func SelectOne(m *DbMap, e SqlExecutor, holder interface{}, query string, args ...interface{}) error { - t := reflect.TypeOf(holder) - if t.Kind() == reflect.Ptr { - t = t.Elem() - } else { - return fmt.Errorf("gorp: SelectOne holder must be a pointer, but got: %t", holder) - } - - // Handle pointer to pointer - isptr := false - if t.Kind() == reflect.Ptr { - isptr = true - t = t.Elem() - } - - if t.Kind() == reflect.Struct { - var nonFatalErr error - - list, err := hookedselect(m, e, holder, query, args...) - if err != nil { - if !NonFatalError(err) { - return err - } - nonFatalErr = err - } - - dest := reflect.ValueOf(holder) - if isptr { - dest = dest.Elem() - } - - if list != nil && len(list) > 0 { - // check for multiple rows - if len(list) > 1 { - return fmt.Errorf("gorp: multiple rows returned for: %s - %v", query, args) - } - - // Initialize if nil - if dest.IsNil() { - dest.Set(reflect.New(t)) - } - - // only one row found - src := reflect.ValueOf(list[0]) - dest.Elem().Set(src.Elem()) - } else { - // No rows found, return a proper error. - return sql.ErrNoRows - } - - return nonFatalErr - } - - return selectVal(e, holder, query, args...) -} - -func selectVal(e SqlExecutor, holder interface{}, query string, args ...interface{}) error { - if len(args) == 1 { - switch m := e.(type) { - case *DbMap: - query, args = maybeExpandNamedQuery(m, query, args) - case *Transaction: - query, args = maybeExpandNamedQuery(m.dbmap, query, args) - } - } - rows, err := e.query(query, args...) - if err != nil { - return err - } - defer rows.Close() - - if !rows.Next() { - return sql.ErrNoRows - } - - return rows.Scan(holder) -} - -/////////////// - -func hookedselect(m *DbMap, exec SqlExecutor, i interface{}, query string, - args ...interface{}) ([]interface{}, error) { - - var nonFatalErr error - - list, err := rawselect(m, exec, i, query, args...) - if err != nil { - if !NonFatalError(err) { - return nil, err - } - nonFatalErr = err - } - - // Determine where the results are: written to i, or returned in list - if t, _ := toSliceType(i); t == nil { - for _, v := range list { - if v, ok := v.(HasPostGet); ok { - err := v.PostGet(exec) - if err != nil { - return nil, err - } - } - } - } else { - resultsValue := reflect.Indirect(reflect.ValueOf(i)) - for i := 0; i < resultsValue.Len(); i++ { - if v, ok := resultsValue.Index(i).Interface().(HasPostGet); ok { - err := v.PostGet(exec) - if err != nil { - return nil, err - } - } - } - } - return list, nonFatalErr -} - -func rawselect(m *DbMap, exec SqlExecutor, i interface{}, query string, - args ...interface{}) ([]interface{}, error) { - var ( - appendToSlice = false // Write results to i directly? - intoStruct = true // Selecting into a struct? - pointerElements = true // Are the slice elements pointers (vs values)? - ) - - var nonFatalErr error - - // get type for i, verifying it's a supported destination - t, err := toType(i) - if err != nil { - var err2 error - if t, err2 = toSliceType(i); t == nil { - if err2 != nil { - return nil, err2 - } - return nil, err - } - pointerElements = t.Kind() == reflect.Ptr - if pointerElements { - t = t.Elem() - } - appendToSlice = true - intoStruct = t.Kind() == reflect.Struct - } - - // If the caller supplied a single struct/map argument, assume a "named - // parameter" query. Extract the named arguments from the struct/map, create - // the flat arg slice, and rewrite the query to use the dialect's placeholder. - if len(args) == 1 { - query, args = maybeExpandNamedQuery(m, query, args) - } - - // Run the query - rows, err := exec.query(query, args...) - if err != nil { - return nil, err - } - defer rows.Close() - - // Fetch the column names as returned from db - cols, err := rows.Columns() - if err != nil { - return nil, err - } - - if !intoStruct && len(cols) > 1 { - return nil, fmt.Errorf("gorp: select into non-struct slice requires 1 column, got %d", len(cols)) - } - - var colToFieldIndex [][]int - if intoStruct { - if colToFieldIndex, err = columnToFieldIndex(m, t, cols); err != nil { - if !NonFatalError(err) { - return nil, err - } - nonFatalErr = err - } - } - - conv := m.TypeConverter - - // Add results to one of these two slices. - var ( - list = make([]interface{}, 0) - sliceValue = reflect.Indirect(reflect.ValueOf(i)) - ) - - for { - if !rows.Next() { - // if error occured return rawselect - if rows.Err() != nil { - return nil, rows.Err() - } - // time to exit from outer "for" loop - break - } - v := reflect.New(t) - dest := make([]interface{}, len(cols)) - - custScan := make([]CustomScanner, 0) - - for x := range cols { - f := v.Elem() - if intoStruct { - index := colToFieldIndex[x] - if index == nil { - // this field is not present in the struct, so create a dummy - // value for rows.Scan to scan into - var dummy sql.RawBytes - dest[x] = &dummy - continue - } - f = f.FieldByIndex(index) - } - target := f.Addr().Interface() - if conv != nil { - scanner, ok := conv.FromDb(target) - if ok { - target = scanner.Holder - custScan = append(custScan, scanner) - } - } - dest[x] = target - } - - err = rows.Scan(dest...) - if err != nil { - return nil, err - } - - for _, c := range custScan { - err = c.Bind() - if err != nil { - return nil, err - } - } - - if appendToSlice { - if !pointerElements { - v = v.Elem() - } - sliceValue.Set(reflect.Append(sliceValue, v)) - } else { - list = append(list, v.Interface()) - } - } - - if appendToSlice && sliceValue.IsNil() { - sliceValue.Set(reflect.MakeSlice(sliceValue.Type(), 0, 0)) - } - - return list, nonFatalErr -} - // Calls the Exec function on the executor, but attempts to expand any eligible named // query arguments first. func exec(e SqlExecutor, query string, args ...interface{}) (sql.Result, error) { @@ -1818,7 +239,8 @@ func columnToFieldIndex(m *DbMap, t reflect.Type, cols []string) ([][]int, error colName := strings.ToLower(cols[x]) field, found := t.FieldByNameFunc(func(fieldName string) bool { field, _ := t.FieldByName(fieldName) - fieldName = field.Tag.Get("db") + cArguments := strings.Split(field.Tag.Get("db"), ",") + fieldName = cArguments[0] if fieldName == "-" { return false @@ -1881,7 +303,7 @@ func toSliceType(i interface{}) (reflect.Type, error) { if t.Kind() != reflect.Ptr { // If it's a slice, return a more helpful error message if t.Kind() == reflect.Slice { - return nil, fmt.Errorf("gorp: Cannot SELECT into a non-pointer slice: %v", t) + return nil, fmt.Errorf("gorp: cannot SELECT into a non-pointer slice: %v", t) } return nil, nil } @@ -1900,7 +322,7 @@ func toType(i interface{}) (reflect.Type, error) { } if t.Kind() != reflect.Struct { - return nil, fmt.Errorf("gorp: Cannot SELECT into this type: %v", reflect.TypeOf(i)) + return nil, fmt.Errorf("gorp: cannot SELECT into this type: %v", reflect.TypeOf(i)) } return t, nil } @@ -2013,7 +435,7 @@ func delete(m *DbMap, exec SqlExecutor, list ...interface{}) (int64, error) { return count, nil } -func update(m *DbMap, exec SqlExecutor, list ...interface{}) (int64, error) { +func update(m *DbMap, exec SqlExecutor, colFilter ColumnFilter, list ...interface{}) (int64, error) { count := int64(0) for _, ptr := range list { table, elem, err := m.tableForPointer(ptr, true) @@ -2029,7 +451,7 @@ func update(m *DbMap, exec SqlExecutor, list ...interface{}) (int64, error) { } } - bi, err := table.bindUpdate(elem) + bi, err := table.bindUpdate(elem, colFilter) if err != nil { return -1, err } @@ -2099,15 +521,24 @@ func insert(m *DbMap, exec SqlExecutor, list ...interface{}) error { } else if (k == reflect.Uint) || (k == reflect.Uint16) || (k == reflect.Uint32) || (k == reflect.Uint64) { f.SetUint(uint64(id)) } else { - return fmt.Errorf("gorp: Cannot set autoincrement value on non-Int field. SQL=%s autoIncrIdx=%d autoIncrFieldName=%s", bi.query, bi.autoIncrIdx, bi.autoIncrFieldName) + return fmt.Errorf("gorp: cannot set autoincrement value on non-Int field. SQL=%s autoIncrIdx=%d autoIncrFieldName=%s", bi.query, bi.autoIncrIdx, bi.autoIncrFieldName) } case TargetedAutoIncrInserter: err := inserter.InsertAutoIncrToTarget(exec, bi.query, f.Addr().Interface(), bi.args...) if err != nil { return err } + case TargetQueryInserter: + var idQuery = table.ColMap(bi.autoIncrFieldName).GeneratedIdQuery + if idQuery == "" { + return fmt.Errorf("gorp: cannot set %s value if its ColumnMap.GeneratedIdQuery is empty", bi.autoIncrFieldName) + } + err := inserter.InsertQueryToTarget(exec, bi.query, idQuery, f.Addr().Interface(), bi.args...) + if err != nil { + return err + } default: - return fmt.Errorf("gorp: Cannot use autoincrement fields on dialects that do not implement an autoincrementing interface") + return fmt.Errorf("gorp: cannot use autoincrement fields on dialects that do not implement an autoincrementing interface") } } else { _, err := exec.Exec(bi.query, bi.args...) @@ -2125,54 +556,3 @@ func insert(m *DbMap, exec SqlExecutor, list ...interface{}) error { } return nil } - -func lockError(m *DbMap, exec SqlExecutor, tableName string, - existingVer int64, elem reflect.Value, - keys ...interface{}) (int64, error) { - - existing, err := get(m, exec, elem.Interface(), keys...) - if err != nil { - return -1, err - } - - ole := OptimisticLockError{tableName, keys, true, existingVer} - if existing == nil { - ole.RowExists = false - } - return -1, ole -} - -// PostUpdate() will be executed after the GET statement. -type HasPostGet interface { - PostGet(SqlExecutor) error -} - -// PostUpdate() will be executed after the DELETE statement -type HasPostDelete interface { - PostDelete(SqlExecutor) error -} - -// PostUpdate() will be executed after the UPDATE statement -type HasPostUpdate interface { - PostUpdate(SqlExecutor) error -} - -// PostInsert() will be executed after the INSERT statement -type HasPostInsert interface { - PostInsert(SqlExecutor) error -} - -// PreDelete() will be executed before the DELETE statement. -type HasPreDelete interface { - PreDelete(SqlExecutor) error -} - -// PreUpdate() will be executed before UPDATE statement. -type HasPreUpdate interface { - PreUpdate(SqlExecutor) error -} - -// PreInsert() will be executed before INSERT statement. -type HasPreInsert interface { - PreInsert(SqlExecutor) error -} diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/gorp_test.go b/Godeps/_workspace/src/github.com/go-gorp/gorp/gorp_test.go index 6e5618c1f..895ab450e 100644 --- a/Godeps/_workspace/src/github.com/go-gorp/gorp/gorp_test.go +++ b/Godeps/_workspace/src/github.com/go-gorp/gorp/gorp_test.go @@ -1,15 +1,29 @@ +// Copyright 2012 James Cooper. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +// Package gorp provides a simple way to marshal Go structs to and from +// SQL databases. It uses the database/sql package, and should work with any +// compliant database/sql driver. +// +// Source code and project home: +// https://github.com/go-gorp/gorp + package gorp import ( "bytes" "database/sql" + "database/sql/driver" "encoding/json" "errors" + "flag" "fmt" "log" "math/rand" "os" "reflect" + "strconv" "strings" "testing" "time" @@ -20,12 +34,23 @@ import ( _ "github.com/ziutek/mymysql/godrv" ) -// verify interface compliance -var _ Dialect = SqliteDialect{} -var _ Dialect = PostgresDialect{} -var _ Dialect = MySQLDialect{} -var _ Dialect = SqlServerDialect{} -var _ Dialect = OracleDialect{} +var ( + // verify interface compliance + _ = []Dialect{ + SqliteDialect{}, + PostgresDialect{}, + MySQLDialect{}, + SqlServerDialect{}, + OracleDialect{}, + } + + debug bool +) + +func init() { + flag.BoolVar(&debug, "trace", true, "Turn on or off database tracing (DbMap.TraceOn)") + flag.Parse() +} type testable interface { GetId() int64 @@ -41,6 +66,15 @@ type Invoice struct { IsPaid bool } +type InvoiceWithValuer struct { + Id int64 + Created int64 + Updated int64 + Memo string + Person PersonValuerScanner `db:"personid"` + IsPaid bool +} + func (me *Invoice) GetId() int64 { return me.Id } func (me *Invoice) Rand() { me.Memo = fmt.Sprintf("random %d", rand.Int63()) @@ -49,7 +83,7 @@ func (me *Invoice) Rand() { } type InvoiceTag struct { - Id int64 `db:"myid"` + Id int64 `db:"myid, primarykey, autoincrement"` Created int64 `db:"myCreated"` Updated int64 `db:"date_updated"` Memo string @@ -90,6 +124,34 @@ type Person struct { Version int64 } +type PersonValuerScanner struct { + Person +} + +func (p PersonValuerScanner) Value() (driver.Value, error) { + return p.Id, nil +} + +// FIXME: this Scan is never actually used in the tests? +// Also: if the comments below on the mysql driver are true, then that should be fixed by the dialect when scanning values into structs. +func (p *PersonValuerScanner) Scan(value interface{}) (err error) { + switch src := value.(type) { + case []byte: + // The mysql driver seems to return a []byte, even though the + // type in the database is bigint. Note that this case is + // *only* used by the mysql driver. + p.Id, err = strconv.ParseInt(string(src), 10, 64) + case int64: + // postgres, gomysql, and sqlite drivers all return an int64, + // as you'd expect. + p.Id = src + default: + typ := reflect.TypeOf(value) + return fmt.Errorf("Expected person value to be convertible to int64, got %v (type %s)", value, typ) + } + return +} + type FNameOnly struct { FName string } @@ -160,6 +222,17 @@ type WithEmbeddedStruct struct { Names } +type WithEmbeddedStructConflictingEmbeddedMemberNames struct { + Id int64 + Names + NamesConflict +} + +type WithEmbeddedStructSameMemberName struct { + Id int64 + SameName +} + type WithEmbeddedStructBeforeAutoincrField struct { Names Id int64 @@ -175,6 +248,15 @@ type Names struct { LastName string } +type NamesConflict struct { + FirstName string + Surname string +} + +type SameName struct { + SameName string +} + type UniqueColumns struct { FirstName string LastName string @@ -353,7 +435,6 @@ func TestTruncateTables(t *testing.T) { func TestCustomDateType(t *testing.T) { dbmap := newDbMap() dbmap.TypeConverter = testTypeConverter{} - dbmap.TraceOn("", log.New(os.Stdout, "gorptest: ", log.Lmicroseconds)) dbmap.AddTable(WithCustomDate{}).SetKeys(true, "Id") err := dbmap.CreateTables() if err != nil { @@ -389,7 +470,6 @@ func TestCustomDateType(t *testing.T) { func TestUIntPrimaryKey(t *testing.T) { dbmap := newDbMap() - dbmap.TraceOn("", log.New(os.Stdout, "gorptest: ", log.Lmicroseconds)) dbmap.AddTable(PersonUInt64{}).SetKeys(true, "Id") dbmap.AddTable(PersonUInt32{}).SetKeys(true, "Id") dbmap.AddTable(PersonUInt16{}).SetKeys(true, "Id") @@ -419,7 +499,6 @@ func TestUIntPrimaryKey(t *testing.T) { func TestSetUniqueTogether(t *testing.T) { dbmap := newDbMap() - dbmap.TraceOn("", log.New(os.Stdout, "gorptest: ", log.Lmicroseconds)) dbmap.AddTable(UniqueColumns{}).SetUniqueTogether("FirstName", "LastName").SetUniqueTogether("City", "ZipCode") err := dbmap.CreateTablesIfNotExists() if err != nil { @@ -468,7 +547,6 @@ func TestSetUniqueTogether(t *testing.T) { func TestPersistentUser(t *testing.T) { dbmap := newDbMap() dbmap.Exec("drop table if exists PersistentUser") - dbmap.TraceOn("", log.New(os.Stdout, "gorptest: ", log.Lmicroseconds)) table := dbmap.AddTable(PersistentUser{}).SetKeys(false, "Key") table.ColMap("Key").Rename("mykey") err := dbmap.CreateTablesIfNotExists() @@ -581,7 +659,6 @@ func TestPersistentUser(t *testing.T) { func TestNamedQueryMap(t *testing.T) { dbmap := newDbMap() dbmap.Exec("drop table if exists PersistentUser") - dbmap.TraceOn("", log.New(os.Stdout, "gorptest: ", log.Lmicroseconds)) table := dbmap.AddTable(PersistentUser{}).SetKeys(false, "Key") table.ColMap("Key").Rename("mykey") err := dbmap.CreateTablesIfNotExists() @@ -679,7 +756,6 @@ select * from PersistentUser func TestNamedQueryStruct(t *testing.T) { dbmap := newDbMap() dbmap.Exec("drop table if exists PersistentUser") - dbmap.TraceOn("", log.New(os.Stdout, "gorptest: ", log.Lmicroseconds)) table := dbmap.AddTable(PersistentUser{}).SetKeys(false, "Key") table.ColMap("Key").Rename("mykey") err := dbmap.CreateTablesIfNotExists() @@ -859,9 +935,48 @@ func TestNullValues(t *testing.T) { } } +func TestScannerValuer(t *testing.T) { + dbmap := newDbMap() + dbmap.AddTableWithName(PersonValuerScanner{}, "person_test").SetKeys(true, "Id") + dbmap.AddTableWithName(InvoiceWithValuer{}, "invoice_test").SetKeys(true, "Id") + err := dbmap.CreateTables() + if err != nil { + panic(err) + } + defer dropAndClose(dbmap) + + pv := PersonValuerScanner{} + pv.FName = "foo" + pv.LName = "bar" + err = dbmap.Insert(&pv) + if err != nil { + t.Errorf("Could not insert PersonValuerScanner using Person table: %v", err) + t.FailNow() + } + + inv := InvoiceWithValuer{} + inv.Memo = "foo" + inv.Person = pv + err = dbmap.Insert(&inv) + if err != nil { + t.Errorf("Could not insert InvoiceWithValuer using Invoice table: %v", err) + t.FailNow() + } + + res, err := dbmap.Get(InvoiceWithValuer{}, inv.Id) + if err != nil { + t.Errorf("Could not get InvoiceWithValuer: %v", err) + t.FailNow() + } + dbInv := res.(*InvoiceWithValuer) + + if dbInv.Person.Id != pv.Id { + t.Errorf("InvoiceWithValuer got wrong person ID: %d (expected) != %d (actual)", pv.Id, dbInv.Person.Id) + } +} + func TestColumnProps(t *testing.T) { dbmap := newDbMap() - dbmap.TraceOn("", log.New(os.Stdout, "gorptest: ", log.Lmicroseconds)) t1 := dbmap.AddTable(Invoice{}).SetKeys(true, "Id") t1.ColMap("Created").Rename("date_created") t1.ColMap("Updated").SetTransient(true) @@ -1161,6 +1276,29 @@ func TestWithIgnoredColumn(t *testing.T) { } } +func TestColumnFilter(t *testing.T) { + dbmap := initDbMap() + defer dropAndClose(dbmap) + + inv1 := &Invoice{0, 100, 200, "a", 0, false} + _insert(dbmap, inv1) + + inv1.Memo = "c" + inv1.IsPaid = true + _updateColumns(dbmap, func(col *ColumnMap) bool { + return col.ColumnName == "Memo" + }, inv1) + + inv2 := &Invoice{} + inv2 = _get(dbmap, inv2, inv1.Id).(*Invoice) + if inv2.Memo != "c" { + t.Errorf("Expected column to be updated (%#v)", inv2) + } + if inv2.IsPaid { + t.Error("IsPaid shouldn't have been updated") + } +} + func TestTypeConversionExample(t *testing.T) { dbmap := initDbMap() defer dropAndClose(dbmap) @@ -1217,6 +1355,60 @@ func TestWithEmbeddedStruct(t *testing.T) { } } +/* +func TestWithEmbeddedStructConflictingEmbeddedMemberNames(t *testing.T) { + dbmap := initDbMap() + defer dropAndClose(dbmap) + + es := &WithEmbeddedStructConflictingEmbeddedMemberNames{-1, Names{FirstName: "Alice", LastName: "Smith"}, NamesConflict{FirstName: "Andrew", Surname: "Wiggin"}} + _insert(dbmap, es) + expected := &WithEmbeddedStructConflictingEmbeddedMemberNames{-1, Names{FirstName: "Alice", LastName: "Smith"}, NamesConflict{FirstName: "Andrew", Surname: "Wiggin"}} + es2 := _get(dbmap, WithEmbeddedStructConflictingEmbeddedMemberNames{}, es.Id).(*WithEmbeddedStructConflictingEmbeddedMemberNames) + if !reflect.DeepEqual(expected, es2) { + t.Errorf("%v != %v", expected, es2) + } + + es2.Names.FirstName = "Bob" + expected.Names.FirstName = "Bob" + _update(dbmap, es2) + es2 = _get(dbmap, WithEmbeddedStructConflictingEmbeddedMemberNames{}, es.Id).(*WithEmbeddedStructConflictingEmbeddedMemberNames) + if !reflect.DeepEqual(expected, es2) { + t.Errorf("%v != %v", expected, es2) + } + + ess := _rawselect(dbmap, WithEmbeddedStructConflictingEmbeddedMemberNames{}, "select * from embedded_struct_conflict_name_test") + if !reflect.DeepEqual(es2, ess[0]) { + t.Errorf("%v != %v", es2, ess[0]) + } +} + +func TestWithEmbeddedStructSameMemberName(t *testing.T) { + dbmap := initDbMap() + defer dropAndClose(dbmap) + + es := &WithEmbeddedStructSameMemberName{-1, SameName{SameName: "Alice"}} + _insert(dbmap, es) + expected := &WithEmbeddedStructSameMemberName{-1, SameName{SameName: "Alice"}} + es2 := _get(dbmap, WithEmbeddedStructSameMemberName{}, es.Id).(*WithEmbeddedStructSameMemberName) + if !reflect.DeepEqual(expected, es2) { + t.Errorf("%v != %v", expected, es2) + } + + es2.SameName = SameName{"Bob"} + expected.SameName = SameName{"Bob"} + _update(dbmap, es2) + es2 = _get(dbmap, WithEmbeddedStructSameMemberName{}, es.Id).(*WithEmbeddedStructSameMemberName) + if !reflect.DeepEqual(expected, es2) { + t.Errorf("%v != %v", expected, es2) + } + + ess := _rawselect(dbmap, WithEmbeddedStructSameMemberName{}, "select * from embedded_struct_same_member_name_test") + if !reflect.DeepEqual(es2, ess[0]) { + t.Errorf("%v != %v", es2, ess[0]) + } +} +//*/ + func TestWithEmbeddedStructBeforeAutoincr(t *testing.T) { dbmap := initDbMap() defer dropAndClose(dbmap) @@ -1359,7 +1551,6 @@ func TestVersionMultipleRows(t *testing.T) { func TestWithStringPk(t *testing.T) { dbmap := newDbMap() - dbmap.TraceOn("", log.New(os.Stdout, "gorptest: ", log.Lmicroseconds)) dbmap.AddTableWithName(WithStringPk{}, "string_pk_test").SetKeys(true, "Id") _, err := dbmap.Exec("create table string_pk_test (Id varchar(255), Name varchar(255));") if err != nil { @@ -1491,7 +1682,6 @@ func testWithTime(t *testing.T) { // See: https://github.com/go-gorp/gorp/issues/86 func testEmbeddedTime(t *testing.T) { dbmap := newDbMap() - dbmap.TraceOn("", log.New(os.Stdout, "gorptest: ", log.Lmicroseconds)) dbmap.AddTable(EmbeddedTime{}).SetKeys(false, "Id") defer dropAndClose(dbmap) err := dbmap.CreateTables() @@ -1987,7 +2177,7 @@ func initDbMapBench() *DbMap { func initDbMap() *DbMap { dbmap := newDbMap() dbmap.AddTableWithName(Invoice{}, "invoice_test").SetKeys(true, "Id") - dbmap.AddTableWithName(InvoiceTag{}, "invoice_tag_test").SetKeys(true, "myid") + dbmap.AddTableWithName(InvoiceTag{}, "invoice_tag_test") //key is set via primarykey attribute dbmap.AddTableWithName(AliasTransientField{}, "alias_trans_field_test").SetKeys(true, "id") dbmap.AddTableWithName(OverriddenInvoice{}, "invoice_override_test").SetKeys(false, "Id") dbmap.AddTableWithName(Person{}, "person_test").SetKeys(true, "Id").SetVersionCol("Version") @@ -1995,6 +2185,8 @@ func initDbMap() *DbMap { dbmap.AddTableWithName(IdCreated{}, "id_created_test").SetKeys(true, "Id") dbmap.AddTableWithName(TypeConversionExample{}, "type_conv_test").SetKeys(true, "Id") dbmap.AddTableWithName(WithEmbeddedStruct{}, "embedded_struct_test").SetKeys(true, "Id") + //dbmap.AddTableWithName(WithEmbeddedStructConflictingEmbeddedMemberNames{}, "embedded_struct_conflict_name_test").SetKeys(true, "Id") + //dbmap.AddTableWithName(WithEmbeddedStructSameMemberName{}, "embedded_struct_same_member_name_test").SetKeys(true, "Id") dbmap.AddTableWithName(WithEmbeddedStructBeforeAutoincrField{}, "embedded_struct_before_autoincr_test").SetKeys(true, "Id") dbmap.AddTableWithName(WithEmbeddedAutoincr{}, "embedded_autoincr_test").SetKeys(true, "Id") dbmap.AddTableWithName(WithTime{}, "time_test").SetKeys(true, "Id") @@ -2018,7 +2210,6 @@ func initDbMap() *DbMap { func initDbMapNulls() *DbMap { dbmap := newDbMap() - dbmap.TraceOn("", log.New(os.Stdout, "gorptest: ", log.Lmicroseconds)) dbmap.AddTable(TableWithNull{}).SetKeys(false, "Id") err := dbmap.CreateTables() if err != nil { @@ -2030,7 +2221,9 @@ func initDbMapNulls() *DbMap { func newDbMap() *DbMap { dialect, driver := dialectAndDriver() dbmap := &DbMap{Db: connect(driver), Dialect: dialect} - dbmap.TraceOn("", log.New(os.Stdout, "gorptest: ", log.Lmicroseconds)) + if debug { + dbmap.TraceOn("", log.New(os.Stdout, "gorptest: ", log.Lmicroseconds)) + } return dbmap } @@ -2081,6 +2274,14 @@ func _update(dbmap *DbMap, list ...interface{}) int64 { return count } +func _updateColumns(dbmap *DbMap, filter ColumnFilter, list ...interface{}) int64 { + count, err := dbmap.UpdateColumns(filter, list...) + if err != nil { + panic(err) + } + return count +} + func _del(dbmap *DbMap, list ...interface{}) int64 { count, err := dbmap.Delete(list...) if err != nil { diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/hooks.go b/Godeps/_workspace/src/github.com/go-gorp/gorp/hooks.go new file mode 100644 index 000000000..192b51f00 --- /dev/null +++ b/Godeps/_workspace/src/github.com/go-gorp/gorp/hooks.go @@ -0,0 +1,49 @@ +// Copyright 2012 James Cooper. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +// Package gorp provides a simple way to marshal Go structs to and from +// SQL databases. It uses the database/sql package, and should work with any +// compliant database/sql driver. +// +// Source code and project home: +// https://github.com/go-gorp/gorp + +package gorp + +//++ TODO v2-phase3: HasPostGet => PostGetter, HasPostDelete => PostDeleter, etc. + +// PostUpdate() will be executed after the GET statement. +type HasPostGet interface { + PostGet(SqlExecutor) error +} + +// PostUpdate() will be executed after the DELETE statement +type HasPostDelete interface { + PostDelete(SqlExecutor) error +} + +// PostUpdate() will be executed after the UPDATE statement +type HasPostUpdate interface { + PostUpdate(SqlExecutor) error +} + +// PostInsert() will be executed after the INSERT statement +type HasPostInsert interface { + PostInsert(SqlExecutor) error +} + +// PreDelete() will be executed before the DELETE statement. +type HasPreDelete interface { + PreDelete(SqlExecutor) error +} + +// PreUpdate() will be executed before UPDATE statement. +type HasPreUpdate interface { + PreUpdate(SqlExecutor) error +} + +// PreInsert() will be executed before INSERT statement. +type HasPreInsert interface { + PreInsert(SqlExecutor) error +} diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/index.go b/Godeps/_workspace/src/github.com/go-gorp/gorp/index.go new file mode 100644 index 000000000..01ecd9eca --- /dev/null +++ b/Godeps/_workspace/src/github.com/go-gorp/gorp/index.go @@ -0,0 +1,56 @@ +// Copyright 2012 James Cooper. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +// Package gorp provides a simple way to marshal Go structs to and from +// SQL databases. It uses the database/sql package, and should work with any +// compliant database/sql driver. +// +// Source code and project home: +// https://github.com/go-gorp/gorp + +package gorp + +// IndexMap represents a mapping between a Go struct field and a single +// index in a table. +// Unique and MaxSize only inform the +// CreateTables() function and are not used by Insert/Update/Delete/Get. +type IndexMap struct { + // Index name in db table + IndexName string + + // If true, " unique" is added to create index statements. + // Not used elsewhere + Unique bool + + // Index type supported by Dialect + // Postgres: B-tree, Hash, GiST and GIN. + // Mysql: Btree, Hash. + // Sqlite: nil. + IndexType string + + // Columns name for single and multiple indexes + columns []string +} + +// Rename allows you to specify the index name in the table +// +// Example: table.IndMap("customer_test_idx").Rename("customer_idx") +// +func (idx *IndexMap) Rename(indname string) *IndexMap { + idx.IndexName = indname + return idx +} + +// SetUnique adds "unique" to the create index statements for this +// index, if b is true. +func (idx *IndexMap) SetUnique(b bool) *IndexMap { + idx.Unique = b + return idx +} + +// SetIndexType specifies the index type supported by chousen SQL Dialect +func (idx *IndexMap) SetIndexType(indtype string) *IndexMap { + idx.IndexType = indtype + return idx +} diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/lockerror.go b/Godeps/_workspace/src/github.com/go-gorp/gorp/lockerror.go new file mode 100644 index 000000000..07b3047ae --- /dev/null +++ b/Godeps/_workspace/src/github.com/go-gorp/gorp/lockerror.go @@ -0,0 +1,63 @@ +// Copyright 2012 James Cooper. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +// Package gorp provides a simple way to marshal Go structs to and from +// SQL databases. It uses the database/sql package, and should work with any +// compliant database/sql driver. +// +// Source code and project home: +// https://github.com/go-gorp/gorp + +package gorp + +import ( + "fmt" + "reflect" +) + +// OptimisticLockError is returned by Update() or Delete() if the +// struct being modified has a Version field and the value is not equal to +// the current value in the database +type OptimisticLockError struct { + // Table name where the lock error occurred + TableName string + + // Primary key values of the row being updated/deleted + Keys []interface{} + + // true if a row was found with those keys, indicating the + // LocalVersion is stale. false if no value was found with those + // keys, suggesting the row has been deleted since loaded, or + // was never inserted to begin with + RowExists bool + + // Version value on the struct passed to Update/Delete. This value is + // out of sync with the database. + LocalVersion int64 +} + +// Error returns a description of the cause of the lock error +func (e OptimisticLockError) Error() string { + if e.RowExists { + return fmt.Sprintf("gorp: OptimisticLockError table=%s keys=%v out of date version=%d", e.TableName, e.Keys, e.LocalVersion) + } + + return fmt.Sprintf("gorp: OptimisticLockError no row found for table=%s keys=%v", e.TableName, e.Keys) +} + +func lockError(m *DbMap, exec SqlExecutor, tableName string, + existingVer int64, elem reflect.Value, + keys ...interface{}) (int64, error) { + + existing, err := get(m, exec, elem.Interface(), keys...) + if err != nil { + return -1, err + } + + ole := OptimisticLockError{tableName, keys, true, existingVer} + if existing == nil { + ole.RowExists = false + } + return -1, ole +} diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/logging.go b/Godeps/_workspace/src/github.com/go-gorp/gorp/logging.go new file mode 100644 index 000000000..89d6c0e79 --- /dev/null +++ b/Godeps/_workspace/src/github.com/go-gorp/gorp/logging.go @@ -0,0 +1,44 @@ +// Copyright 2012 James Cooper. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +// Package gorp provides a simple way to marshal Go structs to and from +// SQL databases. It uses the database/sql package, and should work with any +// compliant database/sql driver. +// +// Source code and project home: +// https://github.com/go-gorp/gorp + +package gorp + +import "fmt" + +type GorpLogger interface { + Printf(format string, v ...interface{}) +} + +// TraceOn turns on SQL statement logging for this DbMap. After this is +// called, all SQL statements will be sent to the logger. If prefix is +// a non-empty string, it will be written to the front of all logged +// strings, which can aid in filtering log lines. +// +// Use TraceOn if you want to spy on the SQL statements that gorp +// generates. +// +// Note that the base log.Logger type satisfies GorpLogger, but adapters can +// easily be written for other logging packages (e.g., the golang-sanctioned +// glog framework). +func (m *DbMap) TraceOn(prefix string, logger GorpLogger) { + m.logger = logger + if prefix == "" { + m.logPrefix = prefix + } else { + m.logPrefix = fmt.Sprintf("%s ", prefix) + } +} + +// TraceOff turns off tracing. It is idempotent. +func (m *DbMap) TraceOff() { + m.logger = nil + m.logPrefix = "" +} diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/nulltypes.go b/Godeps/_workspace/src/github.com/go-gorp/gorp/nulltypes.go new file mode 100644 index 000000000..870770372 --- /dev/null +++ b/Godeps/_workspace/src/github.com/go-gorp/gorp/nulltypes.go @@ -0,0 +1,58 @@ +// Copyright 2012 James Cooper. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +// Package gorp provides a simple way to marshal Go structs to and from +// SQL databases. It uses the database/sql package, and should work with any +// compliant database/sql driver. +// +// Source code and project home: +// https://github.com/go-gorp/gorp + +package gorp + +import ( + "database/sql/driver" + "time" +) + +// A nullable Time value +type NullTime struct { + Time time.Time + Valid bool // Valid is true if Time is not NULL +} + +// Scan implements the Scanner interface. +func (nt *NullTime) Scan(value interface{}) error { + switch t := value.(type) { + case time.Time: + nt.Time, nt.Valid = t, true + case []byte: + nt.Valid = false + for _, dtfmt := range []string{ + "2006-01-02 15:04:05.999999999", + "2006-01-02T15:04:05.999999999", + "2006-01-02 15:04:05", + "2006-01-02T15:04:05", + "2006-01-02 15:04", + "2006-01-02T15:04", + "2006-01-02", + "2006-01-02 15:04:05-07:00", + } { + var err error + if nt.Time, err = time.Parse(dtfmt, string(t)); err == nil { + nt.Valid = true + break + } + } + } + return nil +} + +// Value implements the driver Valuer interface. +func (nt NullTime) Value() (driver.Value, error) { + if !nt.Valid { + return nil, nil + } + return nt.Time, nil +} diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/select.go b/Godeps/_workspace/src/github.com/go-gorp/gorp/select.go new file mode 100644 index 000000000..d6ff92ee3 --- /dev/null +++ b/Godeps/_workspace/src/github.com/go-gorp/gorp/select.go @@ -0,0 +1,351 @@ +// Copyright 2012 James Cooper. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +// Package gorp provides a simple way to marshal Go structs to and from +// SQL databases. It uses the database/sql package, and should work with any +// compliant database/sql driver. +// +// Source code and project home: +// https://github.com/go-gorp/gorp + +package gorp + +import ( + "database/sql" + "fmt" + "reflect" +) + +// SelectInt executes the given query, which should be a SELECT statement for a single +// integer column, and returns the value of the first row returned. If no rows are +// found, zero is returned. +func SelectInt(e SqlExecutor, query string, args ...interface{}) (int64, error) { + var h int64 + err := selectVal(e, &h, query, args...) + if err != nil && err != sql.ErrNoRows { + return 0, err + } + return h, nil +} + +// SelectNullInt executes the given query, which should be a SELECT statement for a single +// integer column, and returns the value of the first row returned. If no rows are +// found, the empty sql.NullInt64 value is returned. +func SelectNullInt(e SqlExecutor, query string, args ...interface{}) (sql.NullInt64, error) { + var h sql.NullInt64 + err := selectVal(e, &h, query, args...) + if err != nil && err != sql.ErrNoRows { + return h, err + } + return h, nil +} + +// SelectFloat executes the given query, which should be a SELECT statement for a single +// float column, and returns the value of the first row returned. If no rows are +// found, zero is returned. +func SelectFloat(e SqlExecutor, query string, args ...interface{}) (float64, error) { + var h float64 + err := selectVal(e, &h, query, args...) + if err != nil && err != sql.ErrNoRows { + return 0, err + } + return h, nil +} + +// SelectNullFloat executes the given query, which should be a SELECT statement for a single +// float column, and returns the value of the first row returned. If no rows are +// found, the empty sql.NullInt64 value is returned. +func SelectNullFloat(e SqlExecutor, query string, args ...interface{}) (sql.NullFloat64, error) { + var h sql.NullFloat64 + err := selectVal(e, &h, query, args...) + if err != nil && err != sql.ErrNoRows { + return h, err + } + return h, nil +} + +// SelectStr executes the given query, which should be a SELECT statement for a single +// char/varchar column, and returns the value of the first row returned. If no rows are +// found, an empty string is returned. +func SelectStr(e SqlExecutor, query string, args ...interface{}) (string, error) { + var h string + err := selectVal(e, &h, query, args...) + if err != nil && err != sql.ErrNoRows { + return "", err + } + return h, nil +} + +// SelectNullStr executes the given query, which should be a SELECT +// statement for a single char/varchar column, and returns the value +// of the first row returned. If no rows are found, the empty +// sql.NullString is returned. +func SelectNullStr(e SqlExecutor, query string, args ...interface{}) (sql.NullString, error) { + var h sql.NullString + err := selectVal(e, &h, query, args...) + if err != nil && err != sql.ErrNoRows { + return h, err + } + return h, nil +} + +// SelectOne executes the given query (which should be a SELECT statement) +// and binds the result to holder, which must be a pointer. +// +// If no row is found, an error (sql.ErrNoRows specifically) will be returned +// +// If more than one row is found, an error will be returned. +// +func SelectOne(m *DbMap, e SqlExecutor, holder interface{}, query string, args ...interface{}) error { + t := reflect.TypeOf(holder) + if t.Kind() == reflect.Ptr { + t = t.Elem() + } else { + return fmt.Errorf("gorp: SelectOne holder must be a pointer, but got: %t", holder) + } + + // Handle pointer to pointer + isptr := false + if t.Kind() == reflect.Ptr { + isptr = true + t = t.Elem() + } + + if t.Kind() == reflect.Struct { + var nonFatalErr error + + list, err := hookedselect(m, e, holder, query, args...) + if err != nil { + if !NonFatalError(err) { // FIXME: double negative, rename NonFatalError to FatalError + return err + } + nonFatalErr = err + } + + dest := reflect.ValueOf(holder) + if isptr { + dest = dest.Elem() + } + + if list != nil && len(list) > 0 { // FIXME: invert if/else + // check for multiple rows + if len(list) > 1 { + return fmt.Errorf("gorp: multiple rows returned for: %s - %v", query, args) + } + + // Initialize if nil + if dest.IsNil() { + dest.Set(reflect.New(t)) + } + + // only one row found + src := reflect.ValueOf(list[0]) + dest.Elem().Set(src.Elem()) + } else { + // No rows found, return a proper error. + return sql.ErrNoRows + } + + return nonFatalErr + } + + return selectVal(e, holder, query, args...) +} + +func selectVal(e SqlExecutor, holder interface{}, query string, args ...interface{}) error { + if len(args) == 1 { + switch m := e.(type) { + case *DbMap: + query, args = maybeExpandNamedQuery(m, query, args) + case *Transaction: + query, args = maybeExpandNamedQuery(m.dbmap, query, args) + } + } + rows, err := e.query(query, args...) + if err != nil { + return err + } + defer rows.Close() + + if !rows.Next() { + return sql.ErrNoRows + } + + return rows.Scan(holder) +} + +func hookedselect(m *DbMap, exec SqlExecutor, i interface{}, query string, + args ...interface{}) ([]interface{}, error) { + + var nonFatalErr error + + list, err := rawselect(m, exec, i, query, args...) + if err != nil { + if !NonFatalError(err) { + return nil, err + } + nonFatalErr = err + } + + // Determine where the results are: written to i, or returned in list + if t, _ := toSliceType(i); t == nil { + for _, v := range list { + if v, ok := v.(HasPostGet); ok { + err := v.PostGet(exec) + if err != nil { + return nil, err + } + } + } + } else { + resultsValue := reflect.Indirect(reflect.ValueOf(i)) + for i := 0; i < resultsValue.Len(); i++ { + if v, ok := resultsValue.Index(i).Interface().(HasPostGet); ok { + err := v.PostGet(exec) + if err != nil { + return nil, err + } + } + } + } + return list, nonFatalErr +} + +func rawselect(m *DbMap, exec SqlExecutor, i interface{}, query string, + args ...interface{}) ([]interface{}, error) { + var ( + appendToSlice = false // Write results to i directly? + intoStruct = true // Selecting into a struct? + pointerElements = true // Are the slice elements pointers (vs values)? + ) + + var nonFatalErr error + + // get type for i, verifying it's a supported destination + t, err := toType(i) + if err != nil { + var err2 error + if t, err2 = toSliceType(i); t == nil { + if err2 != nil { + return nil, err2 + } + return nil, err + } + pointerElements = t.Kind() == reflect.Ptr + if pointerElements { + t = t.Elem() + } + appendToSlice = true + intoStruct = t.Kind() == reflect.Struct + } + + // If the caller supplied a single struct/map argument, assume a "named + // parameter" query. Extract the named arguments from the struct/map, create + // the flat arg slice, and rewrite the query to use the dialect's placeholder. + if len(args) == 1 { + query, args = maybeExpandNamedQuery(m, query, args) + } + + // Run the query + rows, err := exec.query(query, args...) + if err != nil { + return nil, err + } + defer rows.Close() + + // Fetch the column names as returned from db + cols, err := rows.Columns() + if err != nil { + return nil, err + } + + if !intoStruct && len(cols) > 1 { + return nil, fmt.Errorf("gorp: select into non-struct slice requires 1 column, got %d", len(cols)) + } + + var colToFieldIndex [][]int + if intoStruct { + colToFieldIndex, err = columnToFieldIndex(m, t, cols) + if err != nil { + if !NonFatalError(err) { + return nil, err + } + nonFatalErr = err + } + } + + conv := m.TypeConverter + + // Add results to one of these two slices. + var ( + list = make([]interface{}, 0) + sliceValue = reflect.Indirect(reflect.ValueOf(i)) + ) + + for { + if !rows.Next() { + // if error occured return rawselect + if rows.Err() != nil { + return nil, rows.Err() + } + // time to exit from outer "for" loop + break + } + v := reflect.New(t) + dest := make([]interface{}, len(cols)) + + custScan := make([]CustomScanner, 0) + + for x := range cols { + f := v.Elem() + if intoStruct { + index := colToFieldIndex[x] + if index == nil { + // this field is not present in the struct, so create a dummy + // value for rows.Scan to scan into + var dummy dummyField + dest[x] = &dummy + continue + } + f = f.FieldByIndex(index) + } + target := f.Addr().Interface() + if conv != nil { + scanner, ok := conv.FromDb(target) + if ok { + target = scanner.Holder + custScan = append(custScan, scanner) + } + } + dest[x] = target + } + + err = rows.Scan(dest...) + if err != nil { + return nil, err + } + + for _, c := range custScan { + err = c.Bind() + if err != nil { + return nil, err + } + } + + if appendToSlice { + if !pointerElements { + v = v.Elem() + } + sliceValue.Set(reflect.Append(sliceValue, v)) + } else { + list = append(list, v.Interface()) + } + } + + if appendToSlice && sliceValue.IsNil() { + sliceValue.Set(reflect.MakeSlice(sliceValue.Type(), 0, 0)) + } + + return list, nonFatalErr +} diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/table.go b/Godeps/_workspace/src/github.com/go-gorp/gorp/table.go new file mode 100644 index 000000000..5c513909a --- /dev/null +++ b/Godeps/_workspace/src/github.com/go-gorp/gorp/table.go @@ -0,0 +1,247 @@ +// Copyright 2012 James Cooper. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +// Package gorp provides a simple way to marshal Go structs to and from +// SQL databases. It uses the database/sql package, and should work with any +// compliant database/sql driver. +// +// Source code and project home: +// https://github.com/go-gorp/gorp + +package gorp + +import ( + "bytes" + "fmt" + "reflect" + "strings" +) + +// TableMap represents a mapping between a Go struct and a database table +// Use dbmap.AddTable() or dbmap.AddTableWithName() to create these +type TableMap struct { + // Name of database table. + TableName string + SchemaName string + gotype reflect.Type + Columns []*ColumnMap + keys []*ColumnMap + indexes []*IndexMap + uniqueTogether [][]string + version *ColumnMap + insertPlan bindPlan + updatePlan bindPlan + deletePlan bindPlan + getPlan bindPlan + dbmap *DbMap +} + +// ResetSql removes cached insert/update/select/delete SQL strings +// associated with this TableMap. Call this if you've modified +// any column names or the table name itself. +func (t *TableMap) ResetSql() { + t.insertPlan = bindPlan{} + t.updatePlan = bindPlan{} + t.deletePlan = bindPlan{} + t.getPlan = bindPlan{} +} + +// SetKeys lets you specify the fields on a struct that map to primary +// key columns on the table. If isAutoIncr is set, result.LastInsertId() +// will be used after INSERT to bind the generated id to the Go struct. +// +// Automatically calls ResetSql() to ensure SQL statements are regenerated. +// +// Panics if isAutoIncr is true, and fieldNames length != 1 +// +func (t *TableMap) SetKeys(isAutoIncr bool, fieldNames ...string) *TableMap { + if isAutoIncr && len(fieldNames) != 1 { + panic(fmt.Sprintf( + "gorp: SetKeys: fieldNames length must be 1 if key is auto-increment. (Saw %v fieldNames)", + len(fieldNames))) + } + t.keys = make([]*ColumnMap, 0) + for _, name := range fieldNames { + colmap := t.ColMap(name) + colmap.isPK = true + colmap.isAutoIncr = isAutoIncr + t.keys = append(t.keys, colmap) + } + t.ResetSql() + + return t +} + +// SetUniqueTogether lets you specify uniqueness constraints across multiple +// columns on the table. Each call adds an additional constraint for the +// specified columns. +// +// Automatically calls ResetSql() to ensure SQL statements are regenerated. +// +// Panics if fieldNames length < 2. +// +func (t *TableMap) SetUniqueTogether(fieldNames ...string) *TableMap { + if len(fieldNames) < 2 { + panic(fmt.Sprintf( + "gorp: SetUniqueTogether: must provide at least two fieldNames to set uniqueness constraint.")) + } + + columns := make([]string, 0) + for _, name := range fieldNames { + columns = append(columns, name) + } + t.uniqueTogether = append(t.uniqueTogether, columns) + t.ResetSql() + + return t +} + +// ColMap returns the ColumnMap pointer matching the given struct field +// name. It panics if the struct does not contain a field matching this +// name. +func (t *TableMap) ColMap(field string) *ColumnMap { + col := colMapOrNil(t, field) + if col == nil { + e := fmt.Sprintf("No ColumnMap in table %s type %s with field %s", + t.TableName, t.gotype.Name(), field) + + panic(e) + } + return col +} + +func colMapOrNil(t *TableMap, field string) *ColumnMap { + for _, col := range t.Columns { + if col.fieldName == field || col.ColumnName == field { + return col + } + } + return nil +} + +// IdxMap returns the IndexMap pointer matching the given index name. +func (t *TableMap) IdxMap(field string) *IndexMap { + for _, idx := range t.indexes { + if idx.IndexName == field { + return idx + } + } + return nil +} + +// AddIndex registers the index with gorp for specified table with given parameters. +// This operation is idempotent. If index is already mapped, the +// existing *IndexMap is returned +// Function will panic if one of the given for index columns does not exists +// +// Automatically calls ResetSql() to ensure SQL statements are regenerated. +// +func (t *TableMap) AddIndex(name string, idxtype string, columns []string) *IndexMap { + // check if we have a index with this name already + for _, idx := range t.indexes { + if idx.IndexName == name { + return idx + } + } + for _, icol := range columns { + if res := t.ColMap(icol); res == nil { + e := fmt.Sprintf("No ColumnName in table %s to create index on", t.TableName) + panic(e) + } + } + + idx := &IndexMap{IndexName: name, Unique: false, IndexType: idxtype, columns: columns} + t.indexes = append(t.indexes, idx) + t.ResetSql() + return idx +} + +// SetVersionCol sets the column to use as the Version field. By default +// the "Version" field is used. Returns the column found, or panics +// if the struct does not contain a field matching this name. +// +// Automatically calls ResetSql() to ensure SQL statements are regenerated. +func (t *TableMap) SetVersionCol(field string) *ColumnMap { + c := t.ColMap(field) + t.version = c + t.ResetSql() + return c +} + +// SqlForCreateTable gets a sequence of SQL commands that will create +// the specified table and any associated schema +func (t *TableMap) SqlForCreate(ifNotExists bool) string { + s := bytes.Buffer{} + dialect := t.dbmap.Dialect + + if strings.TrimSpace(t.SchemaName) != "" { + schemaCreate := "create schema" + if ifNotExists { + s.WriteString(dialect.IfSchemaNotExists(schemaCreate, t.SchemaName)) + } else { + s.WriteString(schemaCreate) + } + s.WriteString(fmt.Sprintf(" %s;", t.SchemaName)) + } + + tableCreate := "create table" + if ifNotExists { + s.WriteString(dialect.IfTableNotExists(tableCreate, t.SchemaName, t.TableName)) + } else { + s.WriteString(tableCreate) + } + s.WriteString(fmt.Sprintf(" %s (", dialect.QuotedTableForQuery(t.SchemaName, t.TableName))) + + x := 0 + for _, col := range t.Columns { + if !col.Transient { + if x > 0 { + s.WriteString(", ") + } + stype := dialect.ToSqlType(col.gotype, col.MaxSize, col.isAutoIncr) + s.WriteString(fmt.Sprintf("%s %s", dialect.QuoteField(col.ColumnName), stype)) + + if col.isPK || col.isNotNull { + s.WriteString(" not null") + } + if col.isPK && len(t.keys) == 1 { + s.WriteString(" primary key") + } + if col.Unique { + s.WriteString(" unique") + } + if col.isAutoIncr { + s.WriteString(fmt.Sprintf(" %s", dialect.AutoIncrStr())) + } + + x++ + } + } + if len(t.keys) > 1 { + s.WriteString(", primary key (") + for x := range t.keys { + if x > 0 { + s.WriteString(", ") + } + s.WriteString(dialect.QuoteField(t.keys[x].ColumnName)) + } + s.WriteString(")") + } + if len(t.uniqueTogether) > 0 { + for _, columns := range t.uniqueTogether { + s.WriteString(", unique (") + for i, column := range columns { + if i > 0 { + s.WriteString(", ") + } + s.WriteString(dialect.QuoteField(column)) + } + s.WriteString(")") + } + } + s.WriteString(") ") + s.WriteString(dialect.CreateTableSuffix()) + s.WriteString(dialect.QuerySuffix()) + return s.String() +} diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/table_bindings.go b/Godeps/_workspace/src/github.com/go-gorp/gorp/table_bindings.go new file mode 100644 index 000000000..1727d0d09 --- /dev/null +++ b/Godeps/_workspace/src/github.com/go-gorp/gorp/table_bindings.go @@ -0,0 +1,317 @@ +// Copyright 2012 James Cooper. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +// Package gorp provides a simple way to marshal Go structs to and from +// SQL databases. It uses the database/sql package, and should work with any +// compliant database/sql driver. +// +// Source code and project home: +// https://github.com/go-gorp/gorp + +package gorp + +import ( + "bytes" + "fmt" + "reflect" +) + +// CustomScanner binds a database column value to a Go type +type CustomScanner struct { + // After a row is scanned, Holder will contain the value from the database column. + // Initialize the CustomScanner with the concrete Go type you wish the database + // driver to scan the raw column into. + Holder interface{} + // Target typically holds a pointer to the target struct field to bind the Holder + // value to. + Target interface{} + // Binder is a custom function that converts the holder value to the target type + // and sets target accordingly. This function should return error if a problem + // occurs converting the holder to the target. + Binder func(holder interface{}, target interface{}) error +} + +// Used to filter columns when selectively updating +type ColumnFilter func(*ColumnMap) bool + +func acceptAllFilter(col *ColumnMap) bool { + return true +} + +// Bind is called automatically by gorp after Scan() +func (me CustomScanner) Bind() error { + return me.Binder(me.Holder, me.Target) +} + +type bindPlan struct { + query string + argFields []string + keyFields []string + versField string + autoIncrIdx int + autoIncrFieldName string +} + +func (plan bindPlan) createBindInstance(elem reflect.Value, conv TypeConverter) (bindInstance, error) { + bi := bindInstance{query: plan.query, autoIncrIdx: plan.autoIncrIdx, autoIncrFieldName: plan.autoIncrFieldName, versField: plan.versField} + if plan.versField != "" { + bi.existingVersion = elem.FieldByName(plan.versField).Int() + } + + var err error + + for i := 0; i < len(plan.argFields); i++ { + k := plan.argFields[i] + if k == versFieldConst { + newVer := bi.existingVersion + 1 + bi.args = append(bi.args, newVer) + if bi.existingVersion == 0 { + elem.FieldByName(plan.versField).SetInt(int64(newVer)) + } + } else { + val := elem.FieldByName(k).Interface() + if conv != nil { + val, err = conv.ToDb(val) + if err != nil { + return bindInstance{}, err + } + } + bi.args = append(bi.args, val) + } + } + + for i := 0; i < len(plan.keyFields); i++ { + k := plan.keyFields[i] + val := elem.FieldByName(k).Interface() + if conv != nil { + val, err = conv.ToDb(val) + if err != nil { + return bindInstance{}, err + } + } + bi.keys = append(bi.keys, val) + } + + return bi, nil +} + +type bindInstance struct { + query string + args []interface{} + keys []interface{} + existingVersion int64 + versField string + autoIncrIdx int + autoIncrFieldName string +} + +func (t *TableMap) bindInsert(elem reflect.Value) (bindInstance, error) { + plan := t.insertPlan + if plan.query == "" { + plan.autoIncrIdx = -1 + + s := bytes.Buffer{} + s2 := bytes.Buffer{} + s.WriteString(fmt.Sprintf("insert into %s (", t.dbmap.Dialect.QuotedTableForQuery(t.SchemaName, t.TableName))) + + x := 0 + first := true + for y := range t.Columns { + col := t.Columns[y] + if !(col.isAutoIncr && t.dbmap.Dialect.AutoIncrBindValue() == "") { + if !col.Transient { + if !first { + s.WriteString(",") + s2.WriteString(",") + } + s.WriteString(t.dbmap.Dialect.QuoteField(col.ColumnName)) + + if col.isAutoIncr { + s2.WriteString(t.dbmap.Dialect.AutoIncrBindValue()) + plan.autoIncrIdx = y + plan.autoIncrFieldName = col.fieldName + } else { + if col.DefaultValue == "" { + s2.WriteString(t.dbmap.Dialect.BindVar(x)) + if col == t.version { + plan.versField = col.fieldName + plan.argFields = append(plan.argFields, versFieldConst) + } else { + plan.argFields = append(plan.argFields, col.fieldName) + } + x++ + } else { + s2.WriteString(col.DefaultValue) + } + } + first = false + } + } else { + plan.autoIncrIdx = y + plan.autoIncrFieldName = col.fieldName + } + } + s.WriteString(") values (") + s.WriteString(s2.String()) + s.WriteString(")") + if plan.autoIncrIdx > -1 { + s.WriteString(t.dbmap.Dialect.AutoIncrInsertSuffix(t.Columns[plan.autoIncrIdx])) + } + s.WriteString(t.dbmap.Dialect.QuerySuffix()) + + plan.query = s.String() + t.insertPlan = plan + } + + return plan.createBindInstance(elem, t.dbmap.TypeConverter) +} + +func (t *TableMap) bindUpdate(elem reflect.Value, colFilter ColumnFilter) (bindInstance, error) { + if colFilter == nil { + colFilter = acceptAllFilter + } + + plan := t.updatePlan + if plan.query == "" { + + s := bytes.Buffer{} + s.WriteString(fmt.Sprintf("update %s set ", t.dbmap.Dialect.QuotedTableForQuery(t.SchemaName, t.TableName))) + x := 0 + + for y := range t.Columns { + col := t.Columns[y] + if !col.isAutoIncr && !col.Transient && colFilter(col) { + if x > 0 { + s.WriteString(", ") + } + s.WriteString(t.dbmap.Dialect.QuoteField(col.ColumnName)) + s.WriteString("=") + s.WriteString(t.dbmap.Dialect.BindVar(x)) + + if col == t.version { + plan.versField = col.fieldName + plan.argFields = append(plan.argFields, versFieldConst) + } else { + plan.argFields = append(plan.argFields, col.fieldName) + } + x++ + } + } + + s.WriteString(" where ") + for y := range t.keys { + col := t.keys[y] + if y > 0 { + s.WriteString(" and ") + } + s.WriteString(t.dbmap.Dialect.QuoteField(col.ColumnName)) + s.WriteString("=") + s.WriteString(t.dbmap.Dialect.BindVar(x)) + + plan.argFields = append(plan.argFields, col.fieldName) + plan.keyFields = append(plan.keyFields, col.fieldName) + x++ + } + if plan.versField != "" { + s.WriteString(" and ") + s.WriteString(t.dbmap.Dialect.QuoteField(t.version.ColumnName)) + s.WriteString("=") + s.WriteString(t.dbmap.Dialect.BindVar(x)) + plan.argFields = append(plan.argFields, plan.versField) + } + s.WriteString(t.dbmap.Dialect.QuerySuffix()) + + plan.query = s.String() + t.updatePlan = plan + } + + return plan.createBindInstance(elem, t.dbmap.TypeConverter) +} + +func (t *TableMap) bindDelete(elem reflect.Value) (bindInstance, error) { + plan := t.deletePlan + if plan.query == "" { + + s := bytes.Buffer{} + s.WriteString(fmt.Sprintf("delete from %s", t.dbmap.Dialect.QuotedTableForQuery(t.SchemaName, t.TableName))) + + for y := range t.Columns { + col := t.Columns[y] + if !col.Transient { + if col == t.version { + plan.versField = col.fieldName + } + } + } + + s.WriteString(" where ") + for x := range t.keys { + k := t.keys[x] + if x > 0 { + s.WriteString(" and ") + } + s.WriteString(t.dbmap.Dialect.QuoteField(k.ColumnName)) + s.WriteString("=") + s.WriteString(t.dbmap.Dialect.BindVar(x)) + + plan.keyFields = append(plan.keyFields, k.fieldName) + plan.argFields = append(plan.argFields, k.fieldName) + } + if plan.versField != "" { + s.WriteString(" and ") + s.WriteString(t.dbmap.Dialect.QuoteField(t.version.ColumnName)) + s.WriteString("=") + s.WriteString(t.dbmap.Dialect.BindVar(len(plan.argFields))) + + plan.argFields = append(plan.argFields, plan.versField) + } + s.WriteString(t.dbmap.Dialect.QuerySuffix()) + + plan.query = s.String() + t.deletePlan = plan + } + + return plan.createBindInstance(elem, t.dbmap.TypeConverter) +} + +func (t *TableMap) bindGet() bindPlan { + plan := t.getPlan + if plan.query == "" { + + s := bytes.Buffer{} + s.WriteString("select ") + + x := 0 + for _, col := range t.Columns { + if !col.Transient { + if x > 0 { + s.WriteString(",") + } + s.WriteString(t.dbmap.Dialect.QuoteField(col.ColumnName)) + plan.argFields = append(plan.argFields, col.fieldName) + x++ + } + } + s.WriteString(" from ") + s.WriteString(t.dbmap.Dialect.QuotedTableForQuery(t.SchemaName, t.TableName)) + s.WriteString(" where ") + for x := range t.keys { + col := t.keys[x] + if x > 0 { + s.WriteString(" and ") + } + s.WriteString(t.dbmap.Dialect.QuoteField(col.ColumnName)) + s.WriteString("=") + s.WriteString(t.dbmap.Dialect.BindVar(x)) + + plan.keyFields = append(plan.keyFields, col.fieldName) + } + s.WriteString(t.dbmap.Dialect.QuerySuffix()) + + plan.query = s.String() + t.getPlan = plan + } + + return plan +} diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/test_all.sh b/Godeps/_workspace/src/github.com/go-gorp/gorp/test_all.sh index f870b39a3..f2d16961a 100644 --- a/Godeps/_workspace/src/github.com/go-gorp/gorp/test_all.sh +++ b/Godeps/_workspace/src/github.com/go-gorp/gorp/test_all.sh @@ -1,22 +1,38 @@ -#!/bin/sh +#!/bin/bash -e # on macs, you may need to: # export GOBUILDFLAG=-ldflags -linkmode=external -set -e +coveralls_testflags="-v -covermode=count -coverprofile=coverage.out" +echo "Testing against mysql" export GORP_TEST_DSN=gorptest/gorptest/gorptest export GORP_TEST_DIALECT=mysql -go test $GOBUILDFLAG . +go test $coveralls_testflags $GOBUILDFLAG $@ . +echo "Testing against gomysql" export GORP_TEST_DSN=gorptest:gorptest@/gorptest export GORP_TEST_DIALECT=gomysql -go test $GOBUILDFLAG . +go test $coveralls_testflags $GOBUILDFLAG $@ . +echo "Testing against postgres" export GORP_TEST_DSN="user=gorptest password=gorptest dbname=gorptest sslmode=disable" export GORP_TEST_DIALECT=postgres -go test $GOBUILDFLAG . +go test $coveralls_testflags $GOBUILDFLAG $@ . +echo "Testing against sqlite" export GORP_TEST_DSN=/tmp/gorptest.bin export GORP_TEST_DIALECT=sqlite -go test $GOBUILDFLAG . +go test $coveralls_testflags $GOBUILDFLAG $@ . +rm -f /tmp/gorptest.bin + +case $(go version) in + *go1.4*) + if [ "$(type -p goveralls)" != "" ]; then + goveralls -covermode=count -coverprofile=coverage.out -service=travis-ci + elif [ -x $HOME/gopath/bin/goveralls ]; then + $HOME/gopath/bin/goveralls -covermode=count -coverprofile=coverage.out -service=travis-ci + fi + ;; + *) ;; +esac diff --git a/Godeps/_workspace/src/github.com/go-gorp/gorp/transaction.go b/Godeps/_workspace/src/github.com/go-gorp/gorp/transaction.go new file mode 100644 index 000000000..6430f24f1 --- /dev/null +++ b/Godeps/_workspace/src/github.com/go-gorp/gorp/transaction.go @@ -0,0 +1,193 @@ +// Copyright 2012 James Cooper. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +// Package gorp provides a simple way to marshal Go structs to and from +// SQL databases. It uses the database/sql package, and should work with any +// compliant database/sql driver. +// +// Source code and project home: +// https://github.com/go-gorp/gorp + +package gorp + +import ( + "database/sql" + "time" +) + +// Transaction represents a database transaction. +// Insert/Update/Delete/Get/Exec operations will be run in the context +// of that transaction. Transactions should be terminated with +// a call to Commit() or Rollback() +type Transaction struct { + dbmap *DbMap + tx *sql.Tx + closed bool +} + +// Insert has the same behavior as DbMap.Insert(), but runs in a transaction. +func (t *Transaction) Insert(list ...interface{}) error { + return insert(t.dbmap, t, list...) +} + +// Update had the same behavior as DbMap.Update(), but runs in a transaction. +func (t *Transaction) Update(list ...interface{}) (int64, error) { + return update(t.dbmap, t, nil, list...) +} + +// UpdateColumns had the same behavior as DbMap.UpdateColumns(), but runs in a transaction. +func (t *Transaction) UpdateColumns(filter ColumnFilter, list ...interface{}) (int64, error) { + return update(t.dbmap, t, filter, list...) +} + +// Delete has the same behavior as DbMap.Delete(), but runs in a transaction. +func (t *Transaction) Delete(list ...interface{}) (int64, error) { + return delete(t.dbmap, t, list...) +} + +// Get has the same behavior as DbMap.Get(), but runs in a transaction. +func (t *Transaction) Get(i interface{}, keys ...interface{}) (interface{}, error) { + return get(t.dbmap, t, i, keys...) +} + +// Select has the same behavior as DbMap.Select(), but runs in a transaction. +func (t *Transaction) Select(i interface{}, query string, args ...interface{}) ([]interface{}, error) { + return hookedselect(t.dbmap, t, i, query, args...) +} + +// Exec has the same behavior as DbMap.Exec(), but runs in a transaction. +func (t *Transaction) Exec(query string, args ...interface{}) (sql.Result, error) { + if t.dbmap.logger != nil { + now := time.Now() + defer t.dbmap.trace(now, query, args...) + } + return exec(t, query, args...) +} + +// SelectInt is a convenience wrapper around the gorp.SelectInt function. +func (t *Transaction) SelectInt(query string, args ...interface{}) (int64, error) { + return SelectInt(t, query, args...) +} + +// SelectNullInt is a convenience wrapper around the gorp.SelectNullInt function. +func (t *Transaction) SelectNullInt(query string, args ...interface{}) (sql.NullInt64, error) { + return SelectNullInt(t, query, args...) +} + +// SelectFloat is a convenience wrapper around the gorp.SelectFloat function. +func (t *Transaction) SelectFloat(query string, args ...interface{}) (float64, error) { + return SelectFloat(t, query, args...) +} + +// SelectNullFloat is a convenience wrapper around the gorp.SelectNullFloat function. +func (t *Transaction) SelectNullFloat(query string, args ...interface{}) (sql.NullFloat64, error) { + return SelectNullFloat(t, query, args...) +} + +// SelectStr is a convenience wrapper around the gorp.SelectStr function. +func (t *Transaction) SelectStr(query string, args ...interface{}) (string, error) { + return SelectStr(t, query, args...) +} + +// SelectNullStr is a convenience wrapper around the gorp.SelectNullStr function. +func (t *Transaction) SelectNullStr(query string, args ...interface{}) (sql.NullString, error) { + return SelectNullStr(t, query, args...) +} + +// SelectOne is a convenience wrapper around the gorp.SelectOne function. +func (t *Transaction) SelectOne(holder interface{}, query string, args ...interface{}) error { + return SelectOne(t.dbmap, t, holder, query, args...) +} + +// Commit commits the underlying database transaction. +func (t *Transaction) Commit() error { + if !t.closed { + t.closed = true + if t.dbmap.logger != nil { + now := time.Now() + defer t.dbmap.trace(now, "commit;") + } + return t.tx.Commit() + } + + return sql.ErrTxDone +} + +// Rollback rolls back the underlying database transaction. +func (t *Transaction) Rollback() error { + if !t.closed { + t.closed = true + if t.dbmap.logger != nil { + now := time.Now() + defer t.dbmap.trace(now, "rollback;") + } + return t.tx.Rollback() + } + + return sql.ErrTxDone +} + +// Savepoint creates a savepoint with the given name. The name is interpolated +// directly into the SQL SAVEPOINT statement, so you must sanitize it if it is +// derived from user input. +func (t *Transaction) Savepoint(name string) error { + query := "savepoint " + t.dbmap.Dialect.QuoteField(name) + if t.dbmap.logger != nil { + now := time.Now() + defer t.dbmap.trace(now, query, nil) + } + _, err := t.tx.Exec(query) + return err +} + +// RollbackToSavepoint rolls back to the savepoint with the given name. The +// name is interpolated directly into the SQL SAVEPOINT statement, so you must +// sanitize it if it is derived from user input. +func (t *Transaction) RollbackToSavepoint(savepoint string) error { + query := "rollback to savepoint " + t.dbmap.Dialect.QuoteField(savepoint) + if t.dbmap.logger != nil { + now := time.Now() + defer t.dbmap.trace(now, query, nil) + } + _, err := t.tx.Exec(query) + return err +} + +// ReleaseSavepint releases the savepoint with the given name. The name is +// interpolated directly into the SQL SAVEPOINT statement, so you must sanitize +// it if it is derived from user input. +func (t *Transaction) ReleaseSavepoint(savepoint string) error { + query := "release savepoint " + t.dbmap.Dialect.QuoteField(savepoint) + if t.dbmap.logger != nil { + now := time.Now() + defer t.dbmap.trace(now, query, nil) + } + _, err := t.tx.Exec(query) + return err +} + +// Prepare has the same behavior as DbMap.Prepare(), but runs in a transaction. +func (t *Transaction) Prepare(query string) (*sql.Stmt, error) { + if t.dbmap.logger != nil { + now := time.Now() + defer t.dbmap.trace(now, query, nil) + } + return t.tx.Prepare(query) +} + +func (t *Transaction) queryRow(query string, args ...interface{}) *sql.Row { + if t.dbmap.logger != nil { + now := time.Now() + defer t.dbmap.trace(now, query, args...) + } + return t.tx.QueryRow(query, args...) +} + +func (t *Transaction) query(query string, args ...interface{}) (*sql.Rows, error) { + if t.dbmap.logger != nil { + now := time.Now() + defer t.dbmap.trace(now, query, args...) + } + return t.tx.Query(query, args...) +} diff --git a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/AUTHORS b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/AUTHORS index 4b65bf363..6dd0167f3 100644 --- a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/AUTHORS +++ b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/AUTHORS @@ -20,9 +20,11 @@ Frederick Mayle <frederickmayle at gmail.com> Gustavo Kristic <gkristic at gmail.com> Hanno Braun <mail at hannobraun.com> Henri Yandell <flamefew at gmail.com> +Hirotaka Yamamoto <ymmt2005 at gmail.com> INADA Naoki <songofacandy at gmail.com> James Harr <james.harr at gmail.com> Jian Zhen <zhenjl at gmail.com> +Joshua Prunier <joshua.prunier at gmail.com> Julien Schmidt <go-sql-driver at julienschmidt.com> Kamil Dziedzic <kamil at klecza.pl> Leonardo YongUk Kim <dalinaum at gmail.com> @@ -32,8 +34,10 @@ Michael Woolnough <michael.woolnough at gmail.com> Nicola Peduzzi <thenikso at gmail.com> Runrioter Wung <runrioter at gmail.com> Soroush Pour <me at soroushjp.com> +Stan Putrya <root.vagner at gmail.com> Xiaobing Jiang <s7v7nislands at gmail.com> Xiuming Chen <cc at cxm.cc> +Julien Lefevre <julien.lefevr at gmail.com> # Organizations diff --git a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/README.md b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/README.md index 9edb7628b..706b7ef2e 100644 --- a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/README.md +++ b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/README.md @@ -30,7 +30,7 @@ A MySQL-Driver for Go's [database/sql](http://golang.org/pkg/database/sql) packa ## Features * Lightweight and [fast](https://github.com/go-sql-driver/sql-benchmark "golang MySQL-Driver performance") * Native Go implementation. No C-bindings, just pure Go - * Connections over TCP/IPv4, TCP/IPv6 or Unix domain sockets + * Connections over TCP/IPv4, TCP/IPv6, Unix domain sockets or [custom protocols](http://godoc.org/github.com/go-sql-driver/mysql#DialFunc) * Automatic handling of broken connections * Automatic Connection Pooling *(by database/sql package)* * Supports queries larger than 16MB @@ -123,6 +123,16 @@ Default: false `allowAllFiles=true` disables the file Whitelist for `LOAD DATA LOCAL INFILE` and allows *all* files. [*Might be insecure!*](http://dev.mysql.com/doc/refman/5.7/en/load-data-local.html) +##### `allowCleartextPasswords` + +``` +Type: bool +Valid Values: true, false +Default: false +``` + +`allowCleartextPasswords=true` allows using the [cleartext client side plugin](http://dev.mysql.com/doc/en/cleartext-authentication-plugin.html) if required by an account, such as one defined with the [PAM authentication plugin](http://dev.mysql.com/doc/en/pam-authentication-plugin.html). Sending passwords in clear text may be a security problem in some configurations. To avoid problems if there is any possibility that the password would be intercepted, clients should connect to MySQL Server using a method that protects the password. Possibilities include [TLS / SSL](#tls), IPsec, or a private network. + ##### `allowOldPasswords` ``` @@ -321,7 +331,7 @@ import "github.com/go-sql-driver/mysql" Files must be whitelisted by registering them with `mysql.RegisterLocalFile(filepath)` (recommended) or the Whitelist check must be deactivated by using the DSN parameter `allowAllFiles=true` ([*Might be insecure!*](http://dev.mysql.com/doc/refman/5.7/en/load-data-local.html)). -To use a `io.Reader` a handler function must be registered with `mysql.RegisterReaderHandler(name, handler)` which returns a `io.Reader` or `io.ReadCloser`. The Reader is available with the filepath `Reader::<name>` then. +To use a `io.Reader` a handler function must be registered with `mysql.RegisterReaderHandler(name, handler)` which returns a `io.Reader` or `io.ReadCloser`. The Reader is available with the filepath `Reader::<name>` then. Choose different names for different handlers and `DeregisterReaderHandler` when you don't need it anymore. See the [godoc of Go-MySQL-Driver](http://godoc.org/github.com/go-sql-driver/mysql "golang mysql driver documentation") for details. diff --git a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/connection.go b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/connection.go index a6d39bec9..72ed09d69 100644 --- a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/connection.go +++ b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/connection.go @@ -34,21 +34,22 @@ type mysqlConn struct { } type config struct { - user string - passwd string - net string - addr string - dbname string - params map[string]string - loc *time.Location - tls *tls.Config - timeout time.Duration - collation uint8 - allowAllFiles bool - allowOldPasswords bool - clientFoundRows bool - columnsWithAlias bool - interpolateParams bool + user string + passwd string + net string + addr string + dbname string + params map[string]string + loc *time.Location + tls *tls.Config + timeout time.Duration + collation uint8 + allowAllFiles bool + allowOldPasswords bool + allowCleartextPasswords bool + clientFoundRows bool + columnsWithAlias bool + interpolateParams bool } // Handles parameters set in DSN after the connection is established @@ -252,7 +253,7 @@ func (mc *mysqlConn) interpolateParams(query string, args []driver.Value) (strin if v == nil { buf = append(buf, "NULL"...) } else { - buf = append(buf, '\'') + buf = append(buf, "_binary'"...) if mc.status&statusNoBackslashEscapes == 0 { buf = escapeBytesBackslash(buf, v) } else { diff --git a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/driver.go b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/driver.go index 3cbbe6031..d310624ad 100644 --- a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/driver.go +++ b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/driver.go @@ -107,6 +107,15 @@ func (d MySQLDriver) Open(dsn string) (driver.Conn, error) { mc.Close() return nil, err } + } else if mc.cfg != nil && mc.cfg.allowCleartextPasswords && err == ErrCleartextPassword { + if err = mc.writeClearAuthPacket(); err != nil { + mc.Close() + return nil, err + } + if err = mc.readResultOK(); err != nil { + mc.Close() + return nil, err + } } else { mc.Close() return nil, err diff --git a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/driver_test.go b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/driver_test.go index cb0d5f5ec..f9da416ec 100644 --- a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/driver_test.go +++ b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/driver_test.go @@ -1246,6 +1246,30 @@ func TestCollation(t *testing.T) { } } +func TestColumnsWithAlias(t *testing.T) { + runTests(t, dsn+"&columnsWithAlias=true", func(dbt *DBTest) { + rows := dbt.mustQuery("SELECT 1 AS A") + defer rows.Close() + cols, _ := rows.Columns() + if len(cols) != 1 { + t.Fatalf("expected 1 column, got %d", len(cols)) + } + if cols[0] != "A" { + t.Fatalf("expected column name \"A\", got \"%s\"", cols[0]) + } + rows.Close() + + rows = dbt.mustQuery("SELECT * FROM (SELECT 1 AS one) AS A") + cols, _ = rows.Columns() + if len(cols) != 1 { + t.Fatalf("expected 1 column, got %d", len(cols)) + } + if cols[0] != "A.one" { + t.Fatalf("expected column name \"A.one\", got \"%s\"", cols[0]) + } + }) +} + func TestRawBytesResultExceedsBuffer(t *testing.T) { runTests(t, dsn, func(dbt *DBTest) { // defaultBufSize from buffer.go diff --git a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/errors.go b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/errors.go index 97d7b3996..44cf30db6 100644 --- a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/errors.go +++ b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/errors.go @@ -19,15 +19,17 @@ import ( // Various errors the driver might return. Can change between driver versions. var ( - ErrInvalidConn = errors.New("Invalid Connection") - ErrMalformPkt = errors.New("Malformed Packet") - ErrNoTLS = errors.New("TLS encryption requested but server does not support TLS") - ErrOldPassword = errors.New("This server only supports the insecure old password authentication. If you still want to use it, please add 'allowOldPasswords=1' to your DSN. See also https://github.com/go-sql-driver/mysql/wiki/old_passwords") - ErrOldProtocol = errors.New("MySQL-Server does not support required Protocol 41+") - ErrPktSync = errors.New("Commands out of sync. You can't run this command now") - ErrPktSyncMul = errors.New("Commands out of sync. Did you run multiple statements at once?") - ErrPktTooLarge = errors.New("Packet for query is too large. You can change this value on the server by adjusting the 'max_allowed_packet' variable.") - ErrBusyBuffer = errors.New("Busy buffer") + ErrInvalidConn = errors.New("Invalid Connection") + ErrMalformPkt = errors.New("Malformed Packet") + ErrNoTLS = errors.New("TLS encryption requested but server does not support TLS") + ErrOldPassword = errors.New("This user requires old password authentication. If you still want to use it, please add 'allowOldPasswords=1' to your DSN. See also https://github.com/go-sql-driver/mysql/wiki/old_passwords") + ErrCleartextPassword = errors.New("This user requires clear text authentication. If you still want to use it, please add 'allowCleartextPasswords=1' to your DSN.") + ErrUnknownPlugin = errors.New("The authentication plugin is not supported.") + ErrOldProtocol = errors.New("MySQL-Server does not support required Protocol 41+") + ErrPktSync = errors.New("Commands out of sync. You can't run this command now") + ErrPktSyncMul = errors.New("Commands out of sync. Did you run multiple statements at once?") + ErrPktTooLarge = errors.New("Packet for query is too large. You can change this value on the server by adjusting the 'max_allowed_packet' variable.") + ErrBusyBuffer = errors.New("Busy buffer") ) var errLog Logger = log.New(os.Stderr, "[MySQL] ", log.Ldate|log.Ltime|log.Lshortfile) diff --git a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/infile.go b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/infile.go index 121a04c71..84c53a99c 100644 --- a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/infile.go +++ b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/infile.go @@ -13,11 +13,14 @@ import ( "io" "os" "strings" + "sync" ) var ( - fileRegister map[string]bool - readerRegister map[string]func() io.Reader + fileRegister map[string]bool + fileRegisterLock sync.RWMutex + readerRegister map[string]func() io.Reader + readerRegisterLock sync.RWMutex ) // RegisterLocalFile adds the given file to the file whitelist, @@ -32,17 +35,21 @@ var ( // ... // func RegisterLocalFile(filePath string) { + fileRegisterLock.Lock() // lazy map init if fileRegister == nil { fileRegister = make(map[string]bool) } fileRegister[strings.Trim(filePath, `"`)] = true + fileRegisterLock.Unlock() } // DeregisterLocalFile removes the given filepath from the whitelist. func DeregisterLocalFile(filePath string) { + fileRegisterLock.Lock() delete(fileRegister, strings.Trim(filePath, `"`)) + fileRegisterLock.Unlock() } // RegisterReaderHandler registers a handler function which is used @@ -61,18 +68,22 @@ func DeregisterLocalFile(filePath string) { // ... // func RegisterReaderHandler(name string, handler func() io.Reader) { + readerRegisterLock.Lock() // lazy map init if readerRegister == nil { readerRegister = make(map[string]func() io.Reader) } readerRegister[name] = handler + readerRegisterLock.Unlock() } // DeregisterReaderHandler removes the ReaderHandler function with // the given name from the registry. func DeregisterReaderHandler(name string) { + readerRegisterLock.Lock() delete(readerRegister, name) + readerRegisterLock.Unlock() } func deferredClose(err *error, closer io.Closer) { @@ -86,9 +97,15 @@ func (mc *mysqlConn) handleInFileRequest(name string) (err error) { var rdr io.Reader var data []byte - if strings.HasPrefix(name, "Reader::") { // io.Reader - name = name[8:] - if handler, inMap := readerRegister[name]; inMap { + if idx := strings.Index(name, "Reader::"); idx == 0 || (idx > 0 && name[idx-1] == '/') { // io.Reader + // The server might return an an absolute path. See issue #355. + name = name[idx+8:] + + readerRegisterLock.RLock() + handler, inMap := readerRegister[name] + readerRegisterLock.RUnlock() + + if inMap { rdr = handler() if rdr != nil { data = make([]byte, 4+mc.maxWriteSize) @@ -104,7 +121,10 @@ func (mc *mysqlConn) handleInFileRequest(name string) (err error) { } } else { // File name = strings.Trim(name, `"`) - if mc.cfg.allowAllFiles || fileRegister[name] { + fileRegisterLock.RLock() + fr := fileRegister[name] + fileRegisterLock.RUnlock() + if mc.cfg.allowAllFiles || fr { var file *os.File var fi os.FileInfo diff --git a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/packets.go b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/packets.go index 290a3887a..76cb7c84e 100644 --- a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/packets.go +++ b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/packets.go @@ -196,7 +196,11 @@ func (mc *mysqlConn) readInitPacket() ([]byte, error) { // return //} //return ErrMalformPkt - return cipher, nil + + // make a memory safe copy of the cipher slice + var b [20]byte + copy(b[:], cipher) + return b[:], nil } // make a memory safe copy of the cipher slice @@ -214,6 +218,7 @@ func (mc *mysqlConn) writeAuthPacket(cipher []byte) error { clientLongPassword | clientTransactions | clientLocalFiles | + clientPluginAuth | mc.flags&clientLongFlag if mc.cfg.clientFoundRows { @@ -228,7 +233,7 @@ func (mc *mysqlConn) writeAuthPacket(cipher []byte) error { // User Password scrambleBuff := scramblePassword(cipher, []byte(mc.cfg.passwd)) - pktLen := 4 + 4 + 1 + 23 + len(mc.cfg.user) + 1 + 1 + len(scrambleBuff) + pktLen := 4 + 4 + 1 + 23 + len(mc.cfg.user) + 1 + 1 + len(scrambleBuff) + 21 + 1 // To specify a db name if n := len(mc.cfg.dbname); n > 0 { @@ -277,7 +282,10 @@ func (mc *mysqlConn) writeAuthPacket(cipher []byte) error { } // Filler [23 bytes] (all 0x00) - pos := 13 + 23 + pos := 13 + for ; pos < 13+23; pos++ { + data[pos] = 0 + } // User [null terminated string] if len(mc.cfg.user) > 0 { @@ -294,8 +302,13 @@ func (mc *mysqlConn) writeAuthPacket(cipher []byte) error { if len(mc.cfg.dbname) > 0 { pos += copy(data[pos:], mc.cfg.dbname) data[pos] = 0x00 + pos++ } + // Assume native client during response + pos += copy(data[pos:], "mysql_native_password") + data[pos] = 0x00 + // Send Auth packet return mc.writePacket(data) } @@ -306,7 +319,7 @@ func (mc *mysqlConn) writeOldAuthPacket(cipher []byte) error { // User password scrambleBuff := scrambleOldPassword(cipher, []byte(mc.cfg.passwd)) - // Calculate the packet lenght and add a tailing 0 + // Calculate the packet length and add a tailing 0 pktLen := len(scrambleBuff) + 1 data := mc.buf.takeSmallBuffer(4 + pktLen) if data == nil { @@ -322,6 +335,25 @@ func (mc *mysqlConn) writeOldAuthPacket(cipher []byte) error { return mc.writePacket(data) } +// Client clear text authentication packet +// http://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::AuthSwitchResponse +func (mc *mysqlConn) writeClearAuthPacket() error { + // Calculate the packet length and add a tailing 0 + pktLen := len(mc.cfg.passwd) + 1 + data := mc.buf.takeSmallBuffer(4 + pktLen) + if data == nil { + // can not take the buffer. Something must be wrong with the connection + errLog.Print(ErrBusyBuffer) + return driver.ErrBadConn + } + + // Add the clear password [null terminated string] + copy(data[4:], mc.cfg.passwd) + data[4+pktLen-1] = 0x00 + + return mc.writePacket(data) +} + /****************************************************************************** * Command Packets * ******************************************************************************/ @@ -405,8 +437,20 @@ func (mc *mysqlConn) readResultOK() error { return mc.handleOkPacket(data) case iEOF: - // someone is using old_passwords - return ErrOldPassword + if len(data) > 1 { + plugin := string(data[1:bytes.IndexByte(data, 0x00)]) + if plugin == "mysql_old_password" { + // using old_passwords + return ErrOldPassword + } else if plugin == "mysql_clear_password" { + // using clear text password + return ErrCleartextPassword + } else { + return ErrUnknownPlugin + } + } else { + return ErrOldPassword + } default: // Error otherwise return mc.handleErrorPacket(data) diff --git a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/rows.go b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/rows.go index 9d97d6d4f..ba606e146 100644 --- a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/rows.go +++ b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/rows.go @@ -40,7 +40,11 @@ func (rows *mysqlRows) Columns() []string { columns := make([]string, len(rows.columns)) if rows.mc.cfg.columnsWithAlias { for i := range columns { - columns[i] = rows.columns[i].tableName + "." + rows.columns[i].name + if tableName := rows.columns[i].tableName; len(tableName) > 0 { + columns[i] = tableName + "." + rows.columns[i].name + } else { + columns[i] = rows.columns[i].name + } } } else { for i := range columns { diff --git a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/statement.go b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/statement.go index f9dae03fa..6e869b340 100644 --- a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/statement.go +++ b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/statement.go @@ -12,6 +12,7 @@ import ( "database/sql/driver" "fmt" "reflect" + "strconv" ) type mysqlStmt struct { @@ -119,7 +120,7 @@ func (stmt *mysqlStmt) Query(args []driver.Value) (driver.Rows, error) { type converter struct{} -func (converter) ConvertValue(v interface{}) (driver.Value, error) { +func (c converter) ConvertValue(v interface{}) (driver.Value, error) { if driver.IsValue(v) { return v, nil } @@ -131,7 +132,7 @@ func (converter) ConvertValue(v interface{}) (driver.Value, error) { if rv.IsNil() { return nil, nil } - return driver.DefaultParameterConverter.ConvertValue(rv.Elem().Interface()) + return c.ConvertValue(rv.Elem().Interface()) case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: return rv.Int(), nil case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32: @@ -139,7 +140,7 @@ func (converter) ConvertValue(v interface{}) (driver.Value, error) { case reflect.Uint64: u64 := rv.Uint() if u64 >= 1<<63 { - return fmt.Sprintf("%d", u64), nil + return strconv.FormatUint(u64, 10), nil } return int64(u64), nil case reflect.Float32, reflect.Float64: diff --git a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/utils.go b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/utils.go index 6693d2970..6a26ad129 100644 --- a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/utils.go +++ b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/utils.go @@ -80,8 +80,6 @@ func parseDSN(dsn string) (cfg *config, err error) { collation: defaultCollation, } - // TODO: use strings.IndexByte when we can depend on Go 1.2 - // [user[:password]@][net[(addr)]]/dbname[?param1=value1¶mN=valueN] // Find the last '/' (since the password or the net addr might contain a '/') foundSlash := false @@ -201,6 +199,14 @@ func parseDSNParams(cfg *config, params string) (err error) { return fmt.Errorf("Invalid Bool value: %s", value) } + // Use cleartext authentication mode (MySQL 5.5.10+) + case "allowCleartextPasswords": + var isBool bool + cfg.allowCleartextPasswords, isBool = readBool(value) + if !isBool { + return fmt.Errorf("Invalid Bool value: %s", value) + } + // Use old authentication mode (pre MySQL 4.1) case "allowOldPasswords": var isBool bool @@ -771,6 +777,10 @@ func skipLengthEncodedString(b []byte) (int, error) { // returns the number read, whether the value is NULL and the number of bytes read func readLengthEncodedInteger(b []byte) (uint64, bool, int) { + // See issue #349 + if len(b) == 0 { + return 0, true, 1 + } switch b[0] { // 251: NULL diff --git a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/utils_test.go b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/utils_test.go index adb8dcbd1..79fbdd1eb 100644 --- a/Godeps/_workspace/src/github.com/go-sql-driver/mysql/utils_test.go +++ b/Godeps/_workspace/src/github.com/go-sql-driver/mysql/utils_test.go @@ -22,19 +22,19 @@ var testDSNs = []struct { out string loc *time.Location }{ - {"username:password@protocol(address)/dbname?param=value", "&{user:username passwd:password net:protocol addr:address dbname:dbname params:map[param:value] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false clientFoundRows:false columnsWithAlias:false interpolateParams:false}", time.UTC}, - {"username:password@protocol(address)/dbname?param=value&columnsWithAlias=true", "&{user:username passwd:password net:protocol addr:address dbname:dbname params:map[param:value] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false clientFoundRows:false columnsWithAlias:true interpolateParams:false}", time.UTC}, - {"user@unix(/path/to/socket)/dbname?charset=utf8", "&{user:user passwd: net:unix addr:/path/to/socket dbname:dbname params:map[charset:utf8] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false clientFoundRows:false columnsWithAlias:false interpolateParams:false}", time.UTC}, - {"user:password@tcp(localhost:5555)/dbname?charset=utf8&tls=true", "&{user:user passwd:password net:tcp addr:localhost:5555 dbname:dbname params:map[charset:utf8] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false clientFoundRows:false columnsWithAlias:false interpolateParams:false}", time.UTC}, - {"user:password@tcp(localhost:5555)/dbname?charset=utf8mb4,utf8&tls=skip-verify", "&{user:user passwd:password net:tcp addr:localhost:5555 dbname:dbname params:map[charset:utf8mb4,utf8] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false clientFoundRows:false columnsWithAlias:false interpolateParams:false}", time.UTC}, - {"user:password@/dbname?loc=UTC&timeout=30s&allowAllFiles=1&clientFoundRows=true&allowOldPasswords=TRUE&collation=utf8mb4_unicode_ci", "&{user:user passwd:password net:tcp addr:127.0.0.1:3306 dbname:dbname params:map[] loc:%p tls:<nil> timeout:30000000000 collation:224 allowAllFiles:true allowOldPasswords:true clientFoundRows:true columnsWithAlias:false interpolateParams:false}", time.UTC}, - {"user:p@ss(word)@tcp([de:ad:be:ef::ca:fe]:80)/dbname?loc=Local", "&{user:user passwd:p@ss(word) net:tcp addr:[de:ad:be:ef::ca:fe]:80 dbname:dbname params:map[] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false clientFoundRows:false columnsWithAlias:false interpolateParams:false}", time.Local}, - {"/dbname", "&{user: passwd: net:tcp addr:127.0.0.1:3306 dbname:dbname params:map[] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false clientFoundRows:false columnsWithAlias:false interpolateParams:false}", time.UTC}, - {"@/", "&{user: passwd: net:tcp addr:127.0.0.1:3306 dbname: params:map[] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false clientFoundRows:false columnsWithAlias:false interpolateParams:false}", time.UTC}, - {"/", "&{user: passwd: net:tcp addr:127.0.0.1:3306 dbname: params:map[] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false clientFoundRows:false columnsWithAlias:false interpolateParams:false}", time.UTC}, - {"", "&{user: passwd: net:tcp addr:127.0.0.1:3306 dbname: params:map[] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false clientFoundRows:false columnsWithAlias:false interpolateParams:false}", time.UTC}, - {"user:p@/ssword@/", "&{user:user passwd:p@/ssword net:tcp addr:127.0.0.1:3306 dbname: params:map[] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false clientFoundRows:false columnsWithAlias:false interpolateParams:false}", time.UTC}, - {"unix/?arg=%2Fsome%2Fpath.ext", "&{user: passwd: net:unix addr:/tmp/mysql.sock dbname: params:map[arg:/some/path.ext] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false clientFoundRows:false columnsWithAlias:false interpolateParams:false}", time.UTC}, + {"username:password@protocol(address)/dbname?param=value", "&{user:username passwd:password net:protocol addr:address dbname:dbname params:map[param:value] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false allowCleartextPasswords:false clientFoundRows:false columnsWithAlias:false interpolateParams:false}", time.UTC}, + {"username:password@protocol(address)/dbname?param=value&columnsWithAlias=true", "&{user:username passwd:password net:protocol addr:address dbname:dbname params:map[param:value] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false allowCleartextPasswords:false clientFoundRows:false columnsWithAlias:true interpolateParams:false}", time.UTC}, + {"user@unix(/path/to/socket)/dbname?charset=utf8", "&{user:user passwd: net:unix addr:/path/to/socket dbname:dbname params:map[charset:utf8] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false allowCleartextPasswords:false clientFoundRows:false columnsWithAlias:false interpolateParams:false}", time.UTC}, + {"user:password@tcp(localhost:5555)/dbname?charset=utf8&tls=true", "&{user:user passwd:password net:tcp addr:localhost:5555 dbname:dbname params:map[charset:utf8] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false allowCleartextPasswords:false clientFoundRows:false columnsWithAlias:false interpolateParams:false}", time.UTC}, + {"user:password@tcp(localhost:5555)/dbname?charset=utf8mb4,utf8&tls=skip-verify", "&{user:user passwd:password net:tcp addr:localhost:5555 dbname:dbname params:map[charset:utf8mb4,utf8] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false allowCleartextPasswords:false clientFoundRows:false columnsWithAlias:false interpolateParams:false}", time.UTC}, + {"user:password@/dbname?loc=UTC&timeout=30s&allowAllFiles=1&clientFoundRows=true&allowOldPasswords=TRUE&collation=utf8mb4_unicode_ci", "&{user:user passwd:password net:tcp addr:127.0.0.1:3306 dbname:dbname params:map[] loc:%p tls:<nil> timeout:30000000000 collation:224 allowAllFiles:true allowOldPasswords:true allowCleartextPasswords:false clientFoundRows:true columnsWithAlias:false interpolateParams:false}", time.UTC}, + {"user:p@ss(word)@tcp([de:ad:be:ef::ca:fe]:80)/dbname?loc=Local", "&{user:user passwd:p@ss(word) net:tcp addr:[de:ad:be:ef::ca:fe]:80 dbname:dbname params:map[] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false allowCleartextPasswords:false clientFoundRows:false columnsWithAlias:false interpolateParams:false}", time.Local}, + {"/dbname", "&{user: passwd: net:tcp addr:127.0.0.1:3306 dbname:dbname params:map[] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false allowCleartextPasswords:false clientFoundRows:false columnsWithAlias:false interpolateParams:false}", time.UTC}, + {"@/", "&{user: passwd: net:tcp addr:127.0.0.1:3306 dbname: params:map[] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false allowCleartextPasswords:false clientFoundRows:false columnsWithAlias:false interpolateParams:false}", time.UTC}, + {"/", "&{user: passwd: net:tcp addr:127.0.0.1:3306 dbname: params:map[] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false allowCleartextPasswords:false clientFoundRows:false columnsWithAlias:false interpolateParams:false}", time.UTC}, + {"", "&{user: passwd: net:tcp addr:127.0.0.1:3306 dbname: params:map[] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false allowCleartextPasswords:false clientFoundRows:false columnsWithAlias:false interpolateParams:false}", time.UTC}, + {"user:p@/ssword@/", "&{user:user passwd:p@/ssword net:tcp addr:127.0.0.1:3306 dbname: params:map[] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false allowCleartextPasswords:false clientFoundRows:false columnsWithAlias:false interpolateParams:false}", time.UTC}, + {"unix/?arg=%2Fsome%2Fpath.ext", "&{user: passwd: net:unix addr:/tmp/mysql.sock dbname: params:map[arg:/some/path.ext] loc:%p tls:<nil> timeout:0 collation:33 allowAllFiles:false allowOldPasswords:false allowCleartextPasswords:false clientFoundRows:false columnsWithAlias:false interpolateParams:false}", time.UTC}, } func TestDSNParser(t *testing.T) { diff --git a/Godeps/_workspace/src/github.com/goamz/goamz/aws/aws.go b/Godeps/_workspace/src/github.com/goamz/goamz/aws/aws.go index cec40be7d..77bf563d6 100644 --- a/Godeps/_workspace/src/github.com/goamz/goamz/aws/aws.go +++ b/Godeps/_workspace/src/github.com/goamz/goamz/aws/aws.go @@ -41,25 +41,26 @@ type ServiceInfo struct { // // See http://goo.gl/d8BP1 for more details. type Region struct { - Name string // the canonical name of this region. - EC2Endpoint string - S3Endpoint string - S3BucketEndpoint string // Not needed by AWS S3. Use ${bucket} for bucket name. - S3LocationConstraint bool // true if this region requires a LocationConstraint declaration. - S3LowercaseBucket bool // true if the region requires bucket names to be lower case. - SDBEndpoint string - SESEndpoint string - SNSEndpoint string - SQSEndpoint string - IAMEndpoint string - ELBEndpoint string - DynamoDBEndpoint string - CloudWatchServicepoint ServiceInfo - AutoScalingEndpoint string - RDSEndpoint ServiceInfo - STSEndpoint string - CloudFormationEndpoint string - ECSEndpoint string + Name string // the canonical name of this region. + EC2Endpoint string + S3Endpoint string + S3BucketEndpoint string // Not needed by AWS S3. Use ${bucket} for bucket name. + S3LocationConstraint bool // true if this region requires a LocationConstraint declaration. + S3LowercaseBucket bool // true if the region requires bucket names to be lower case. + SDBEndpoint string + SESEndpoint string + SNSEndpoint string + SQSEndpoint string + IAMEndpoint string + ELBEndpoint string + DynamoDBEndpoint string + CloudWatchServicepoint ServiceInfo + AutoScalingEndpoint string + RDSEndpoint ServiceInfo + STSEndpoint string + CloudFormationEndpoint string + ECSEndpoint string + DynamoDBStreamsEndpoint string } var Regions = map[string]Region{ diff --git a/Godeps/_workspace/src/github.com/goamz/goamz/aws/regions.go b/Godeps/_workspace/src/github.com/goamz/goamz/aws/regions.go index 508231e7d..5e18f023d 100644 --- a/Godeps/_workspace/src/github.com/goamz/goamz/aws/regions.go +++ b/Godeps/_workspace/src/github.com/goamz/goamz/aws/regions.go @@ -20,6 +20,7 @@ var USGovWest = Region{ "https://sts.amazonaws.com", "https://cloudformation.us-gov-west-1.amazonaws.com", "https://ecs.us-gov-west-1.amazonaws.com", + "https://streams.dynamodb.us-gov-west-1.amazonaws.com", } var USEast = Region{ @@ -42,6 +43,7 @@ var USEast = Region{ "https://sts.amazonaws.com", "https://cloudformation.us-east-1.amazonaws.com", "https://ecs.us-east-1.amazonaws.com", + "https://streams.dynamodb.us-east-1.amazonaws.com", } var USWest = Region{ @@ -64,6 +66,7 @@ var USWest = Region{ "https://sts.amazonaws.com", "https://cloudformation.us-west-1.amazonaws.com", "https://ecs.us-west-1.amazonaws.com", + "https://streams.dynamodb.us-west-1.amazonaws.com", } var USWest2 = Region{ @@ -86,6 +89,7 @@ var USWest2 = Region{ "https://sts.amazonaws.com", "https://cloudformation.us-west-2.amazonaws.com", "https://ecs.us-west-2.amazonaws.com", + "https://streams.dynamodb.us-west-2.amazonaws.com", } var EUWest = Region{ @@ -108,6 +112,7 @@ var EUWest = Region{ "https://sts.amazonaws.com", "https://cloudformation.eu-west-1.amazonaws.com", "https://ecs.eu-west-1.amazonaws.com", + "https://streams.dynamodb.eu-west-1.amazonaws.com", } var EUCentral = Region{ @@ -130,6 +135,7 @@ var EUCentral = Region{ "https://sts.amazonaws.com", "https://cloudformation.eu-central-1.amazonaws.com", "https://ecs.eu-central-1.amazonaws.com", + "https://streams.dynamodb.eu-central-1.amazonaws.com", } var APSoutheast = Region{ @@ -152,6 +158,7 @@ var APSoutheast = Region{ "https://sts.amazonaws.com", "https://cloudformation.ap-southeast-1.amazonaws.com", "https://ecs.ap-southeast-1.amazonaws.com", + "https://streams.dynamodb.ap-southeast-1.amazonaws.com", } var APSoutheast2 = Region{ @@ -174,6 +181,7 @@ var APSoutheast2 = Region{ "https://sts.amazonaws.com", "https://cloudformation.ap-southeast-2.amazonaws.com", "https://ecs.ap-southeast-2.amazonaws.com", + "https://streams.dynamodb.ap-southeast-2.amazonaws.com", } var APNortheast = Region{ @@ -196,6 +204,7 @@ var APNortheast = Region{ "https://sts.amazonaws.com", "https://cloudformation.ap-northeast-1.amazonaws.com", "https://ecs.ap-northeast-1.amazonaws.com", + "https://streams.dynamodb.ap-northeast-1.amazonaws.com", } var SAEast = Region{ @@ -218,6 +227,7 @@ var SAEast = Region{ "https://sts.amazonaws.com", "https://cloudformation.sa-east-1.amazonaws.com", "https://ecs.sa-east-1.amazonaws.com", + "https://streams.dynamodb.sa-east-1.amazonaws.com", } var CNNorth = Region{ @@ -240,4 +250,5 @@ var CNNorth = Region{ "https://sts.cn-north-1.amazonaws.com.cn", "https://cloudformation.cn-north-1.amazonaws.com.cn", "https://ecs.cn-north-1.amazonaws.com.cn", + "https://streams.dynamodb.cn-north-1.amazonaws.com.cn", } diff --git a/Godeps/_workspace/src/github.com/goamz/goamz/s3/multi.go b/Godeps/_workspace/src/github.com/goamz/goamz/s3/multi.go index 1533bda9d..348ead300 100644 --- a/Godeps/_workspace/src/github.com/goamz/goamz/s3/multi.go +++ b/Godeps/_workspace/src/github.com/goamz/goamz/s3/multi.go @@ -339,9 +339,23 @@ func (p completeParts) Len() int { return len(p) } func (p completeParts) Less(i, j int) bool { return p[i].PartNumber < p[j].PartNumber } func (p completeParts) Swap(i, j int) { p[i], p[j] = p[j], p[i] } +type completeResponse struct { + // The element name: should be either CompleteMultipartUploadResult or Error. + XMLName xml.Name + // If the element was error, then it should have the following: + Code string + Message string + RequestId string + HostId string +} + // Complete assembles the given previously uploaded parts into the // final object. This operation may take several minutes. // +// The complete call to AMZ may still fail after returning HTTP 200, +// so even though it's unusued, the body of the reply must be demarshalled +// and checked to see whether or not the complete succeeded. +// // See http://goo.gl/2Z7Tw for details. func (m *Multi) Complete(parts []Part) error { params := map[string][]string{ @@ -356,6 +370,8 @@ func (m *Multi) Complete(parts []Part) error { if err != nil { return err } + + // Setting Content-Length prevents breakage on DreamObjects for attempt := m.Bucket.S3.AttemptStrategy.Start(); attempt.Next(); { req := &request{ method: "POST", @@ -363,11 +379,25 @@ func (m *Multi) Complete(parts []Part) error { path: m.Key, params: params, payload: bytes.NewReader(data), + headers: map[string][]string{ + "Content-Length": []string{strconv.Itoa(len(data))}, + }, } - err := m.Bucket.S3.query(req, nil) + + resp := &completeResponse{} + err := m.Bucket.S3.query(req, resp) if shouldRetry(err) && attempt.HasNext() { continue } + if err == nil && resp.XMLName.Local == "Error" { + err = &Error{ + StatusCode: 200, + Code: resp.Code, + Message: resp.Message, + RequestId: resp.RequestId, + HostId: resp.HostId, + } + } return err } panic("unreachable") diff --git a/Godeps/_workspace/src/github.com/goamz/goamz/s3/multi_test.go b/Godeps/_workspace/src/github.com/goamz/goamz/s3/multi_test.go index efab302d6..5c788d9cc 100644 --- a/Godeps/_workspace/src/github.com/goamz/goamz/s3/multi_test.go +++ b/Godeps/_workspace/src/github.com/goamz/goamz/s3/multi_test.go @@ -300,7 +300,9 @@ func (s *S) TestMultiComplete(c *C) { c.Assert(err, IsNil) err = multi.Complete([]s3.Part{{2, `"ETag2"`, 32}, {1, `"ETag1"`, 64}}) - c.Assert(err, IsNil) + // returns InternalErrorDump in the payload, which should manifest as + // an error. + c.Assert(err, NotNil) testServer.WaitRequest() req := testServer.WaitRequest() diff --git a/Godeps/_workspace/src/github.com/goamz/goamz/s3/s3.go b/Godeps/_workspace/src/github.com/goamz/goamz/s3/s3.go index 88ef975d1..9490c9b96 100644 --- a/Godeps/_workspace/src/github.com/goamz/goamz/s3/s3.go +++ b/Godeps/_workspace/src/github.com/goamz/goamz/s3/s3.go @@ -1101,10 +1101,14 @@ func shouldRetry(err error) bool { } case *Error: switch e.Code { - case "InternalError", "NoSuchUpload", "NoSuchBucket": + case "InternalError", "NoSuchUpload", "NoSuchBucket", "RequestTimeout": return true } + // let's handle tls handshake timeout issues and similar temporary errors + case net.Error: + return e.Temporary() } + return false } diff --git a/Godeps/_workspace/src/github.com/goamz/goamz/s3/s3test/server.go b/Godeps/_workspace/src/github.com/goamz/goamz/s3/s3test/server.go index 10d36924f..2016b5659 100644 --- a/Godeps/_workspace/src/github.com/goamz/goamz/s3/s3test/server.go +++ b/Godeps/_workspace/src/github.com/goamz/goamz/s3/s3test/server.go @@ -594,6 +594,10 @@ func (objr objectResource) put(a *action) interface{} { obj.checksum = gotHash obj.mtime = time.Now() objr.bucket.objects[objr.name] = obj + + h := a.w.Header() + h.Set("ETag", fmt.Sprintf(`"%s"`, hex.EncodeToString(obj.checksum))) + return nil } diff --git a/Godeps/_workspace/src/github.com/goamz/goamz/s3/sign.go b/Godeps/_workspace/src/github.com/goamz/goamz/s3/sign.go index c8e57a2f7..722d97d29 100644 --- a/Godeps/_workspace/src/github.com/goamz/goamz/s3/sign.go +++ b/Godeps/_workspace/src/github.com/goamz/goamz/s3/sign.go @@ -39,10 +39,37 @@ var s3ParamsToSign = map[string]bool{ "delete": true, } +type keySortableTupleList []keySortableTuple + +type keySortableTuple struct { + Key string + TupleString string +} + +func (l keySortableTupleList) StringSlice() []string { + slice := make([]string, len(l)) + for i, v := range l { + slice[i] = v.TupleString + } + return slice +} + +func (l keySortableTupleList) Len() int { + return len(l) +} + +func (l keySortableTupleList) Less(i, j int) bool { + return l[i].Key < l[j].Key +} + +func (l keySortableTupleList) Swap(i, j int) { + l[i], l[j] = l[j], l[i] +} + func sign(auth aws.Auth, method, canonicalPath string, params, headers map[string][]string) { var md5, ctype, date, xamz string var xamzDate bool - var sarray []string + var sarray keySortableTupleList for k, v := range headers { k = strings.ToLower(k) switch k { @@ -57,7 +84,7 @@ func sign(auth aws.Auth, method, canonicalPath string, params, headers map[strin default: if strings.HasPrefix(k, "x-amz-") { vall := strings.Join(v, ",") - sarray = append(sarray, k+":"+vall) + sarray = append(sarray, keySortableTuple{k, k + ":" + vall}) if k == "x-amz-date" { xamzDate = true date = "" @@ -66,8 +93,8 @@ func sign(auth aws.Auth, method, canonicalPath string, params, headers map[strin } } if len(sarray) > 0 { - sort.StringSlice(sarray).Sort() - xamz = strings.Join(sarray, "\n") + "\n" + sort.Sort(sarray) + xamz = strings.Join(sarray.StringSlice(), "\n") + "\n" } expires := false @@ -83,17 +110,17 @@ func sign(auth aws.Auth, method, canonicalPath string, params, headers map[strin if s3ParamsToSign[k] { for _, vi := range v { if vi == "" { - sarray = append(sarray, k) + sarray = append(sarray, keySortableTuple{k, k}) } else { // "When signing you do not encode these values." - sarray = append(sarray, k+"="+vi) + sarray = append(sarray, keySortableTuple{k, k + "=" + vi}) } } } } if len(sarray) > 0 { - sort.StringSlice(sarray).Sort() - canonicalPath = canonicalPath + "?" + strings.Join(sarray, "&") + sort.Sort(sarray) + canonicalPath = canonicalPath + "?" + strings.Join(sarray.StringSlice(), "&") } payload := method + "\n" + md5 + "\n" + ctype + "\n" + date + "\n" + xamz + canonicalPath diff --git a/Godeps/_workspace/src/github.com/golang/freetype/AUTHORS b/Godeps/_workspace/src/github.com/golang/freetype/AUTHORS index 5d8b8a6b7..7b70f7768 100644 --- a/Godeps/_workspace/src/github.com/golang/freetype/AUTHORS +++ b/Godeps/_workspace/src/github.com/golang/freetype/AUTHORS @@ -15,3 +15,4 @@ Google Inc. Jeff R. Allen <jra@nella.org> Rémy Oudompheng <oudomphe@phare.normalesup.org> Roger Peppe <rogpeppe@gmail.com> +Steven Edwards <steven@stephenwithav.com> diff --git a/Godeps/_workspace/src/github.com/golang/freetype/CONTRIBUTORS b/Godeps/_workspace/src/github.com/golang/freetype/CONTRIBUTORS index 32cb6753b..7494b12c3 100644 --- a/Godeps/_workspace/src/github.com/golang/freetype/CONTRIBUTORS +++ b/Godeps/_workspace/src/github.com/golang/freetype/CONTRIBUTORS @@ -33,3 +33,4 @@ Rémy Oudompheng <oudomphe@phare.normalesup.org> <remyoudompheng@gmail.com> Rob Pike <r@golang.org> Roger Peppe <rogpeppe@gmail.com> Russ Cox <rsc@golang.org> +Steven Edwards <steven@stephenwithav.com> diff --git a/Godeps/_workspace/src/github.com/golang/freetype/truetype/truetype.go b/Godeps/_workspace/src/github.com/golang/freetype/truetype/truetype.go index 7d166ca77..692e01526 100644 --- a/Godeps/_workspace/src/github.com/golang/freetype/truetype/truetype.go +++ b/Godeps/_workspace/src/github.com/golang/freetype/truetype/truetype.go @@ -26,6 +26,43 @@ import ( // An Index is a Font's index of a rune. type Index uint16 +// A NameID identifies a name table entry. +// +// See https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6name.html +type NameID uint16 + +const ( + NameIDCopyright NameID = 0 + NameIDFontFamily = 1 + NameIDFontSubfamily = 2 + NameIDUniqueSubfamilyID = 3 + NameIDFontFullName = 4 + NameIDNameTableVersion = 5 + NameIDPostscriptName = 6 + NameIDTrademarkNotice = 7 + NameIDManufacturerName = 8 + NameIDDesignerName = 9 + NameIDFontDescription = 10 + NameIDFontVendorURL = 11 + NameIDFontDesignerURL = 12 + NameIDFontLicense = 13 + NameIDFontLicenseURL = 14 + NameIDPreferredFamily = 16 + NameIDPreferredSubfamily = 17 + NameIDCompatibleName = 18 + NameIDSampleText = 19 +) + +const ( + // A 32-bit encoding consists of a most-significant 16-bit Platform ID and a + // least-significant 16-bit Platform Specific ID. The magic numbers are + // specified at https://www.microsoft.com/typography/otspec/name.htm + unicodeEncoding = 0x00000003 // PID = 0 (Unicode), PSID = 3 (Unicode 2.0) + microsoftSymbolEncoding = 0x00030000 // PID = 3 (Microsoft), PSID = 0 (Symbol) + microsoftUCS2Encoding = 0x00030001 // PID = 3 (Microsoft), PSID = 1 (UCS-2) + microsoftUCS4Encoding = 0x0003000a // PID = 3 (Microsoft), PSID = 10 (UCS-4) +) + // An HMetric holds the horizontal metrics of a single glyph. type HMetric struct { AdvanceWidth, LeftSideBearing fixed.Int26_6 @@ -78,6 +115,51 @@ func readTable(ttf []byte, offsetLength []byte) ([]byte, error) { return ttf[offset:end], nil } +// parseSubtables returns the offset and platformID of the best subtable in +// table, where best favors a Unicode cmap encoding, and failing that, a +// Microsoft cmap encoding. offset is the offset of the first subtable in +// table, and size is the size of each subtable. +// +// If pred is non-nil, then only subtables that satisfy that predicate will be +// considered. +func parseSubtables(table []byte, name string, offset, size int, pred func([]byte) bool) ( + bestOffset int, bestPID uint32, retErr error) { + + if len(table) < 4 { + return 0, 0, FormatError(name + " too short") + } + nSubtables := int(u16(table, 2)) + if len(table) < size*nSubtables+offset { + return 0, 0, FormatError(name + " too short") + } + ok := false + for i := 0; i < nSubtables; i, offset = i+1, offset+size { + if pred != nil && !pred(table[offset:]) { + continue + } + // We read the 16-bit Platform ID and 16-bit Platform Specific ID as a single uint32. + // All values are big-endian. + pidPsid := u32(table, offset) + // We prefer the Unicode cmap encoding. Failing to find that, we fall + // back onto the Microsoft cmap encoding. + if pidPsid == unicodeEncoding { + bestOffset, bestPID, ok = offset, pidPsid>>16, true + break + + } else if pidPsid == microsoftSymbolEncoding || + pidPsid == microsoftUCS2Encoding || + pidPsid == microsoftUCS4Encoding { + + bestOffset, bestPID, ok = offset, pidPsid>>16, true + // We don't break out of the for loop, so that Unicode can override Microsoft. + } + } + if !ok { + return 0, 0, UnsupportedError(name + " encoding") + } + return bestOffset, bestPID, nil +} + const ( locaOffsetFormatUnknown int = iota locaOffsetFormatShort @@ -93,7 +175,7 @@ type cm struct { type Font struct { // Tables sliced from the TTF data. The different tables are documented // at http://developer.apple.com/fonts/TTRefMan/RM06/Chap6.html - cmap, cvt, fpgm, glyf, hdmx, head, hhea, hmtx, kern, loca, maxp, os2, prep, vmtx []byte + cmap, cvt, fpgm, glyf, hdmx, head, hhea, hmtx, kern, loca, maxp, name, os2, prep, vmtx []byte cmapIndexes []byte @@ -112,46 +194,13 @@ func (f *Font) parseCmap() error { cmapFormat4 = 4 cmapFormat12 = 12 languageIndependent = 0 - - // A 32-bit encoding consists of a most-significant 16-bit Platform ID and a - // least-significant 16-bit Platform Specific ID. The magic numbers are - // specified at https://www.microsoft.com/typography/otspec/name.htm - unicodeEncoding = 0x00000003 // PID = 0 (Unicode), PSID = 3 (Unicode 2.0) - microsoftSymbolEncoding = 0x00030000 // PID = 3 (Microsoft), PSID = 0 (Symbol) - microsoftUCS2Encoding = 0x00030001 // PID = 3 (Microsoft), PSID = 1 (UCS-2) - microsoftUCS4Encoding = 0x0003000a // PID = 3 (Microsoft), PSID = 10 (UCS-4) ) - if len(f.cmap) < 4 { - return FormatError("cmap too short") - } - nsubtab := int(u16(f.cmap, 2)) - if len(f.cmap) < 8*nsubtab+4 { - return FormatError("cmap too short") - } - offset, found, x := 0, false, 4 - for i := 0; i < nsubtab; i++ { - // We read the 16-bit Platform ID and 16-bit Platform Specific ID as a single uint32. - // All values are big-endian. - pidPsid, o := u32(f.cmap, x), u32(f.cmap, x+4) - x += 8 - // We prefer the Unicode cmap encoding. Failing to find that, we fall - // back onto the Microsoft cmap encoding. - if pidPsid == unicodeEncoding { - offset, found = int(o), true - break - - } else if pidPsid == microsoftSymbolEncoding || - pidPsid == microsoftUCS2Encoding || - pidPsid == microsoftUCS4Encoding { - - offset, found = int(o), true - // We don't break out of the for loop, so that Unicode can override Microsoft. - } - } - if !found { - return UnsupportedError("cmap encoding") + offset, _, err := parseSubtables(f.cmap, "cmap", 4, 8, nil) + if err != nil { + return err } + offset = int(u32(f.cmap, offset+4)) if offset <= 0 || offset > len(f.cmap) { return FormatError("bad cmap offset") } @@ -345,6 +394,44 @@ func (f *Font) Index(x rune) Index { return 0 } +// Name returns the Font's name value for the given NameID. It returns "" if +// there was an error, or if that name was not found. +func (f *Font) Name(id NameID) string { + x, platformID, err := parseSubtables(f.name, "name", 6, 12, func(b []byte) bool { + return NameID(u16(b, 6)) == id + }) + if err != nil { + return "" + } + offset, length := u16(f.name, 4)+u16(f.name, x+10), u16(f.name, x+8) + // Return the ASCII value of the encoded string. + // The string is encoded as UTF-16 on non-Apple platformIDs; Apple is platformID 1. + src := f.name[offset : offset+length] + var dst []byte + if platformID != 1 { // UTF-16. + if len(src)&1 != 0 { + return "" + } + dst = make([]byte, len(src)/2) + for i := range dst { + dst[i] = printable(u16(src, 2*i)) + } + } else { // ASCII. + dst = make([]byte, len(src)) + for i, c := range src { + dst[i] = printable(uint16(c)) + } + } + return string(dst) +} + +func printable(r uint16) byte { + if 0x20 <= r && r < 0x7f { + return byte(r) + } + return '?' +} + // unscaledHMetric returns the unscaled horizontal metrics for the glyph with // the given index. func (f *Font) unscaledHMetric(i Index) (h HMetric) { @@ -518,6 +605,8 @@ func parse(ttf []byte, offset int) (font *Font, err error) { f.loca, err = readTable(ttf, ttf[x+8:x+16]) case "maxp": f.maxp, err = readTable(ttf, ttf[x+8:x+16]) + case "name": + f.name, err = readTable(ttf, ttf[x+8:x+16]) case "OS/2": f.os2, err = readTable(ttf, ttf[x+8:x+16]) case "prep": diff --git a/Godeps/_workspace/src/github.com/golang/freetype/truetype/truetype_test.go b/Godeps/_workspace/src/github.com/golang/freetype/truetype/truetype_test.go index ce7f1277a..bd62d1da1 100644 --- a/Godeps/_workspace/src/github.com/golang/freetype/truetype/truetype_test.go +++ b/Godeps/_workspace/src/github.com/golang/freetype/truetype/truetype_test.go @@ -211,6 +211,29 @@ func TestIndex(t *testing.T) { } } +func TestName(t *testing.T) { + testCases := map[string]string{ + "luximr": "Luxi Mono", + "luxirr": "Luxi Serif", + "luxisr": "Luxi Sans", + } + + for name, want := range testCases { + f, testdataIsOptional, err := parseTestdataFont(name) + if err != nil { + if testdataIsOptional { + t.Log(err) + } else { + t.Fatal(err) + } + continue + } + if got := f.Name(NameIDFontFamily); got != want { + t.Errorf("%s: got %q, want %q", name, got, want) + } + } +} + type scalingTestData struct { advanceWidth fixed.Int26_6 bounds fixed.Rectangle26_6 diff --git a/Godeps/_workspace/src/github.com/gorilla/context/.travis.yml b/Godeps/_workspace/src/github.com/gorilla/context/.travis.yml index 6796581fb..f983b60c6 100644 --- a/Godeps/_workspace/src/github.com/gorilla/context/.travis.yml +++ b/Godeps/_workspace/src/github.com/gorilla/context/.travis.yml @@ -1,9 +1,8 @@ language: go +sudo: false go: - - 1.0 - - 1.1 - - 1.2 - 1.3 - 1.4 + - 1.5 - tip diff --git a/Godeps/_workspace/src/github.com/gorilla/mux/.travis.yml b/Godeps/_workspace/src/github.com/gorilla/mux/.travis.yml index d87d46576..83ab8f59d 100644 --- a/Godeps/_workspace/src/github.com/gorilla/mux/.travis.yml +++ b/Godeps/_workspace/src/github.com/gorilla/mux/.travis.yml @@ -1,7 +1,14 @@ language: go - +sudo: false go: - - 1.0 - - 1.1 - - 1.2 + - 1.3 + - 1.4 + - 1.5 - tip +install: + - go get golang.org/x/tools/cmd/vet +script: + - go get -t -v ./... + - diff -u <(echo -n) <(gofmt -d -s .) + - go tool vet . + - go test -v -race ./... diff --git a/Godeps/_workspace/src/github.com/gorilla/mux/README.md b/Godeps/_workspace/src/github.com/gorilla/mux/README.md index e60301b03..55dd4e59a 100644 --- a/Godeps/_workspace/src/github.com/gorilla/mux/README.md +++ b/Godeps/_workspace/src/github.com/gorilla/mux/README.md @@ -1,7 +1,235 @@ mux === +[![GoDoc](https://godoc.org/github.com/gorilla/mux?status.svg)](https://godoc.org/github.com/gorilla/mux) [![Build Status](https://travis-ci.org/gorilla/mux.png?branch=master)](https://travis-ci.org/gorilla/mux) -gorilla/mux is a powerful URL router and dispatcher. +Package gorilla/mux implements a request router and dispatcher. -Read the full documentation here: http://www.gorillatoolkit.org/pkg/mux +The name mux stands for "HTTP request multiplexer". Like the standard +http.ServeMux, mux.Router matches incoming requests against a list of +registered routes and calls a handler for the route that matches the URL +or other conditions. The main features are: + + * Requests can be matched based on URL host, path, path prefix, schemes, + header and query values, HTTP methods or using custom matchers. + * URL hosts and paths can have variables with an optional regular + expression. + * Registered URLs can be built, or "reversed", which helps maintaining + references to resources. + * Routes can be used as subrouters: nested routes are only tested if the + parent route matches. This is useful to define groups of routes that + share common conditions like a host, a path prefix or other repeated + attributes. As a bonus, this optimizes request matching. + * It implements the http.Handler interface so it is compatible with the + standard http.ServeMux. + +Let's start registering a couple of URL paths and handlers: + + func main() { + r := mux.NewRouter() + r.HandleFunc("/", HomeHandler) + r.HandleFunc("/products", ProductsHandler) + r.HandleFunc("/articles", ArticlesHandler) + http.Handle("/", r) + } + +Here we register three routes mapping URL paths to handlers. This is +equivalent to how http.HandleFunc() works: if an incoming request URL matches +one of the paths, the corresponding handler is called passing +(http.ResponseWriter, *http.Request) as parameters. + +Paths can have variables. They are defined using the format {name} or +{name:pattern}. If a regular expression pattern is not defined, the matched +variable will be anything until the next slash. For example: + + r := mux.NewRouter() + r.HandleFunc("/products/{key}", ProductHandler) + r.HandleFunc("/articles/{category}/", ArticlesCategoryHandler) + r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler) + +The names are used to create a map of route variables which can be retrieved +calling mux.Vars(): + + vars := mux.Vars(request) + category := vars["category"] + +And this is all you need to know about the basic usage. More advanced options +are explained below. + +Routes can also be restricted to a domain or subdomain. Just define a host +pattern to be matched. They can also have variables: + + r := mux.NewRouter() + // Only matches if domain is "www.example.com". + r.Host("www.example.com") + // Matches a dynamic subdomain. + r.Host("{subdomain:[a-z]+}.domain.com") + +There are several other matchers that can be added. To match path prefixes: + + r.PathPrefix("/products/") + +...or HTTP methods: + + r.Methods("GET", "POST") + +...or URL schemes: + + r.Schemes("https") + +...or header values: + + r.Headers("X-Requested-With", "XMLHttpRequest") + +...or query values: + + r.Queries("key", "value") + +...or to use a custom matcher function: + + r.MatcherFunc(func(r *http.Request, rm *RouteMatch) bool { + return r.ProtoMajor == 0 + }) + +...and finally, it is possible to combine several matchers in a single route: + + r.HandleFunc("/products", ProductsHandler). + Host("www.example.com"). + Methods("GET"). + Schemes("http") + +Setting the same matching conditions again and again can be boring, so we have +a way to group several routes that share the same requirements. +We call it "subrouting". + +For example, let's say we have several URLs that should only match when the +host is `www.example.com`. Create a route for that host and get a "subrouter" +from it: + + r := mux.NewRouter() + s := r.Host("www.example.com").Subrouter() + +Then register routes in the subrouter: + + s.HandleFunc("/products/", ProductsHandler) + s.HandleFunc("/products/{key}", ProductHandler) + s.HandleFunc("/articles/{category}/{id:[0-9]+}"), ArticleHandler) + +The three URL paths we registered above will only be tested if the domain is +`www.example.com`, because the subrouter is tested first. This is not +only convenient, but also optimizes request matching. You can create +subrouters combining any attribute matchers accepted by a route. + +Subrouters can be used to create domain or path "namespaces": you define +subrouters in a central place and then parts of the app can register its +paths relatively to a given subrouter. + +There's one more thing about subroutes. When a subrouter has a path prefix, +the inner routes use it as base for their paths: + + r := mux.NewRouter() + s := r.PathPrefix("/products").Subrouter() + // "/products/" + s.HandleFunc("/", ProductsHandler) + // "/products/{key}/" + s.HandleFunc("/{key}/", ProductHandler) + // "/products/{key}/details" + s.HandleFunc("/{key}/details", ProductDetailsHandler) + +Now let's see how to build registered URLs. + +Routes can be named. All routes that define a name can have their URLs built, +or "reversed". We define a name calling Name() on a route. For example: + + r := mux.NewRouter() + r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler). + Name("article") + +To build a URL, get the route and call the URL() method, passing a sequence of +key/value pairs for the route variables. For the previous route, we would do: + + url, err := r.Get("article").URL("category", "technology", "id", "42") + +...and the result will be a url.URL with the following path: + + "/articles/technology/42" + +This also works for host variables: + + r := mux.NewRouter() + r.Host("{subdomain}.domain.com"). + Path("/articles/{category}/{id:[0-9]+}"). + HandlerFunc(ArticleHandler). + Name("article") + + // url.String() will be "http://news.domain.com/articles/technology/42" + url, err := r.Get("article").URL("subdomain", "news", + "category", "technology", + "id", "42") + +All variables defined in the route are required, and their values must +conform to the corresponding patterns. These requirements guarantee that a +generated URL will always match a registered route -- the only exception is +for explicitly defined "build-only" routes which never match. + +Regex support also exists for matching Headers within a route. For example, we could do: + + r.HeadersRegexp("Content-Type", "application/(text|json)") + +...and the route will match both requests with a Content-Type of `application/json` as well as +`application/text` + +There's also a way to build only the URL host or path for a route: +use the methods URLHost() or URLPath() instead. For the previous route, +we would do: + + // "http://news.domain.com/" + host, err := r.Get("article").URLHost("subdomain", "news") + + // "/articles/technology/42" + path, err := r.Get("article").URLPath("category", "technology", "id", "42") + +And if you use subrouters, host and path defined separately can be built +as well: + + r := mux.NewRouter() + s := r.Host("{subdomain}.domain.com").Subrouter() + s.Path("/articles/{category}/{id:[0-9]+}"). + HandlerFunc(ArticleHandler). + Name("article") + + // "http://news.domain.com/articles/technology/42" + url, err := r.Get("article").URL("subdomain", "news", + "category", "technology", + "id", "42") + +## Full Example + +Here's a complete, runnable example of a small mux based server: + +```go +package main + +import ( + "net/http" + + "github.com/gorilla/mux" +) + +func YourHandler(w http.ResponseWriter, r *http.Request) { + w.Write([]byte("Gorilla!\n")) +} + +func main() { + r := mux.NewRouter() + // Routes consist of a path and a handler function. + r.HandleFunc("/", YourHandler) + + // Bind to a port and pass our router in + http.ListenAndServe(":8000", r) +} +``` + +## License + +BSD licensed. See the LICENSE file for details. diff --git a/Godeps/_workspace/src/github.com/gorilla/mux/doc.go b/Godeps/_workspace/src/github.com/gorilla/mux/doc.go index 9a5e381a2..49798cb5c 100644 --- a/Godeps/_workspace/src/github.com/gorilla/mux/doc.go +++ b/Godeps/_workspace/src/github.com/gorilla/mux/doc.go @@ -60,8 +60,8 @@ Routes can also be restricted to a domain or subdomain. Just define a host pattern to be matched. They can also have variables: r := mux.NewRouter() - // Only matches if domain is "www.domain.com". - r.Host("www.domain.com") + // Only matches if domain is "www.example.com". + r.Host("www.example.com") // Matches a dynamic subdomain. r.Host("{subdomain:[a-z]+}.domain.com") @@ -94,7 +94,7 @@ There are several other matchers that can be added. To match path prefixes: ...and finally, it is possible to combine several matchers in a single route: r.HandleFunc("/products", ProductsHandler). - Host("www.domain.com"). + Host("www.example.com"). Methods("GET"). Schemes("http") @@ -103,11 +103,11 @@ a way to group several routes that share the same requirements. We call it "subrouting". For example, let's say we have several URLs that should only match when the -host is "www.domain.com". Create a route for that host and get a "subrouter" +host is "www.example.com". Create a route for that host and get a "subrouter" from it: r := mux.NewRouter() - s := r.Host("www.domain.com").Subrouter() + s := r.Host("www.example.com").Subrouter() Then register routes in the subrouter: @@ -116,7 +116,7 @@ Then register routes in the subrouter: s.HandleFunc("/articles/{category}/{id:[0-9]+}"), ArticleHandler) The three URL paths we registered above will only be tested if the domain is -"www.domain.com", because the subrouter is tested first. This is not +"www.example.com", because the subrouter is tested first. This is not only convenient, but also optimizes request matching. You can create subrouters combining any attribute matchers accepted by a route. @@ -172,6 +172,13 @@ conform to the corresponding patterns. These requirements guarantee that a generated URL will always match a registered route -- the only exception is for explicitly defined "build-only" routes which never match. +Regex support also exists for matching Headers within a route. For example, we could do: + + r.HeadersRegexp("Content-Type", "application/(text|json)") + +...and the route will match both requests with a Content-Type of `application/json` as well as +`application/text` + There's also a way to build only the URL host or path for a route: use the methods URLHost() or URLPath() instead. For the previous route, we would do: diff --git a/Godeps/_workspace/src/github.com/gorilla/mux/mux.go b/Godeps/_workspace/src/github.com/gorilla/mux/mux.go index af31d2395..68c4ea5d8 100644 --- a/Godeps/_workspace/src/github.com/gorilla/mux/mux.go +++ b/Godeps/_workspace/src/github.com/gorilla/mux/mux.go @@ -5,9 +5,11 @@ package mux import ( + "errors" "fmt" "net/http" "path" + "regexp" "github.com/gorilla/context" ) @@ -68,7 +70,7 @@ func (r *Router) ServeHTTP(w http.ResponseWriter, req *http.Request) { // Clean path to canonical form and redirect. if p := cleanPath(req.URL.Path); p != req.URL.Path { - // Added 3 lines (Philip Schlump) - It was droping the query string and #whatever from query. + // Added 3 lines (Philip Schlump) - It was dropping the query string and #whatever from query. // This matches with fix in go 1.2 r.c. 4 for same problem. Go Issue: // http://code.google.com/p/go/issues/detail?id=5252 url := *req.URL @@ -237,6 +239,52 @@ func (r *Router) BuildVarsFunc(f BuildVarsFunc) *Route { return r.NewRoute().BuildVarsFunc(f) } +// Walk walks the router and all its sub-routers, calling walkFn for each route +// in the tree. The routes are walked in the order they were added. Sub-routers +// are explored depth-first. +func (r *Router) Walk(walkFn WalkFunc) error { + return r.walk(walkFn, []*Route{}) +} + +// SkipRouter is used as a return value from WalkFuncs to indicate that the +// router that walk is about to descend down to should be skipped. +var SkipRouter = errors.New("skip this router") + +// WalkFunc is the type of the function called for each route visited by Walk. +// At every invocation, it is given the current route, and the current router, +// and a list of ancestor routes that lead to the current route. +type WalkFunc func(route *Route, router *Router, ancestors []*Route) error + +func (r *Router) walk(walkFn WalkFunc, ancestors []*Route) error { + for _, t := range r.routes { + if t.regexp == nil || t.regexp.path == nil || t.regexp.path.template == "" { + continue + } + + err := walkFn(t, r, ancestors) + if err == SkipRouter { + continue + } + for _, sr := range t.matchers { + if h, ok := sr.(*Router); ok { + err := h.walk(walkFn, ancestors) + if err != nil { + return err + } + } + } + if h, ok := t.handler.(*Router); ok { + ancestors = append(ancestors, t) + err := h.walk(walkFn, ancestors) + if err != nil { + return err + } + ancestors = ancestors[:len(ancestors)-1] + } + } + return nil +} + // ---------------------------------------------------------------------------- // Context // ---------------------------------------------------------------------------- @@ -264,6 +312,10 @@ func Vars(r *http.Request) map[string]string { } // CurrentRoute returns the matched route for the current request, if any. +// This only works when called inside the handler of the matched route +// because the matched route is stored in the request context which is cleared +// after the handler returns, unless the KeepContext option is set on the +// Router. func CurrentRoute(r *http.Request) *Route { if rv := context.Get(r, routeKey); rv != nil { return rv.(*Route) @@ -313,13 +365,24 @@ func uniqueVars(s1, s2 []string) error { return nil } -// mapFromPairs converts variadic string parameters to a string map. -func mapFromPairs(pairs ...string) (map[string]string, error) { +// checkPairs returns the count of strings passed in, and an error if +// the count is not an even number. +func checkPairs(pairs ...string) (int, error) { length := len(pairs) if length%2 != 0 { - return nil, fmt.Errorf( + return length, fmt.Errorf( "mux: number of parameters must be multiple of 2, got %v", pairs) } + return length, nil +} + +// mapFromPairsToString converts variadic string parameters to a +// string to string map. +func mapFromPairsToString(pairs ...string) (map[string]string, error) { + length, err := checkPairs(pairs...) + if err != nil { + return nil, err + } m := make(map[string]string, length/2) for i := 0; i < length; i += 2 { m[pairs[i]] = pairs[i+1] @@ -327,6 +390,24 @@ func mapFromPairs(pairs ...string) (map[string]string, error) { return m, nil } +// mapFromPairsToRegex converts variadic string paramers to a +// string to regex map. +func mapFromPairsToRegex(pairs ...string) (map[string]*regexp.Regexp, error) { + length, err := checkPairs(pairs...) + if err != nil { + return nil, err + } + m := make(map[string]*regexp.Regexp, length/2) + for i := 0; i < length; i += 2 { + regex, err := regexp.Compile(pairs[i+1]) + if err != nil { + return nil, err + } + m[pairs[i]] = regex + } + return m, nil +} + // matchInArray returns true if the given string value is in the array. func matchInArray(arr []string, value string) bool { for _, v := range arr { @@ -337,9 +418,8 @@ func matchInArray(arr []string, value string) bool { return false } -// matchMap returns true if the given key/value pairs exist in a given map. -func matchMap(toCheck map[string]string, toMatch map[string][]string, - canonicalKey bool) bool { +// matchMapWithString returns true if the given key/value pairs exist in a given map. +func matchMapWithString(toCheck map[string]string, toMatch map[string][]string, canonicalKey bool) bool { for k, v := range toCheck { // Check if key exists. if canonicalKey { @@ -364,3 +444,31 @@ func matchMap(toCheck map[string]string, toMatch map[string][]string, } return true } + +// matchMapWithRegex returns true if the given key/value pairs exist in a given map compiled against +// the given regex +func matchMapWithRegex(toCheck map[string]*regexp.Regexp, toMatch map[string][]string, canonicalKey bool) bool { + for k, v := range toCheck { + // Check if key exists. + if canonicalKey { + k = http.CanonicalHeaderKey(k) + } + if values := toMatch[k]; values == nil { + return false + } else if v != nil { + // If value was defined as an empty string we only check that the + // key exists. Otherwise we also check for equality. + valueExists := false + for _, value := range values { + if v.MatchString(value) { + valueExists = true + break + } + } + if !valueExists { + return false + } + } + } + return true +} diff --git a/Godeps/_workspace/src/github.com/gorilla/mux/mux_test.go b/Godeps/_workspace/src/github.com/gorilla/mux/mux_test.go index 6b2c1d22f..d1eae9265 100644 --- a/Godeps/_workspace/src/github.com/gorilla/mux/mux_test.go +++ b/Godeps/_workspace/src/github.com/gorilla/mux/mux_test.go @@ -7,11 +7,24 @@ package mux import ( "fmt" "net/http" + "strings" "testing" "github.com/gorilla/context" ) +func (r *Route) GoString() string { + matchers := make([]string, len(r.matchers)) + for i, m := range r.matchers { + matchers[i] = fmt.Sprintf("%#v", m) + } + return fmt.Sprintf("&Route{matchers:[]matcher{%s}}", strings.Join(matchers, ", ")) +} + +func (r *routeRegexp) GoString() string { + return fmt.Sprintf("&routeRegexp{template: %q, matchHost: %t, matchQuery: %t, strictSlash: %t, regexp: regexp.MustCompile(%q), reverse: %q, varsN: %v, varsR: %v", r.template, r.matchHost, r.matchQuery, r.strictSlash, r.regexp.String(), r.reverse, r.varsN, r.varsR) +} + type routeTest struct { title string // title of the test route *Route // the route being tested @@ -109,6 +122,15 @@ func TestHost(t *testing.T) { shouldMatch: true, }, { + title: "Host route with pattern, additional capturing group, match", + route: new(Route).Host("aaa.{v1:[a-z]{2}(b|c)}.ccc"), + request: newRequest("GET", "http://aaa.bbb.ccc/111/222/333"), + vars: map[string]string{"v1": "bbb"}, + host: "aaa.bbb.ccc", + path: "", + shouldMatch: true, + }, + { title: "Host route with pattern, wrong host in request URL", route: new(Route).Host("aaa.{v1:[a-z]{3}}.ccc"), request: newRequest("GET", "http://aaa.222.ccc/111/222/333"), @@ -136,6 +158,33 @@ func TestHost(t *testing.T) { shouldMatch: false, }, { + title: "Host route with hyphenated name and pattern, match", + route: new(Route).Host("aaa.{v-1:[a-z]{3}}.ccc"), + request: newRequest("GET", "http://aaa.bbb.ccc/111/222/333"), + vars: map[string]string{"v-1": "bbb"}, + host: "aaa.bbb.ccc", + path: "", + shouldMatch: true, + }, + { + title: "Host route with hyphenated name and pattern, additional capturing group, match", + route: new(Route).Host("aaa.{v-1:[a-z]{2}(b|c)}.ccc"), + request: newRequest("GET", "http://aaa.bbb.ccc/111/222/333"), + vars: map[string]string{"v-1": "bbb"}, + host: "aaa.bbb.ccc", + path: "", + shouldMatch: true, + }, + { + title: "Host route with multiple hyphenated names and patterns, match", + route: new(Route).Host("{v-1:[a-z]{3}}.{v-2:[a-z]{3}}.{v-3:[a-z]{3}}"), + request: newRequest("GET", "http://aaa.bbb.ccc/111/222/333"), + vars: map[string]string{"v-1": "aaa", "v-2": "bbb", "v-3": "ccc"}, + host: "aaa.bbb.ccc", + path: "", + shouldMatch: true, + }, + { title: "Path route with single pattern with pipe, match", route: new(Route).Path("/{category:a|b/c}"), request: newRequest("GET", "http://localhost/a"), @@ -260,6 +309,42 @@ func TestPath(t *testing.T) { path: "/111/222/333", shouldMatch: false, }, + { + title: "Path route with multiple patterns with pipe, match", + route: new(Route).Path("/{category:a|(b/c)}/{product}/{id:[0-9]+}"), + request: newRequest("GET", "http://localhost/a/product_name/1"), + vars: map[string]string{"category": "a", "product": "product_name", "id": "1"}, + host: "", + path: "/a/product_name/1", + shouldMatch: true, + }, + { + title: "Path route with hyphenated name and pattern, match", + route: new(Route).Path("/111/{v-1:[0-9]{3}}/333"), + request: newRequest("GET", "http://localhost/111/222/333"), + vars: map[string]string{"v-1": "222"}, + host: "", + path: "/111/222/333", + shouldMatch: true, + }, + { + title: "Path route with multiple hyphenated names and patterns, match", + route: new(Route).Path("/{v-1:[0-9]{3}}/{v-2:[0-9]{3}}/{v-3:[0-9]{3}}"), + request: newRequest("GET", "http://localhost/111/222/333"), + vars: map[string]string{"v-1": "111", "v-2": "222", "v-3": "333"}, + host: "", + path: "/111/222/333", + shouldMatch: true, + }, + { + title: "Path route with multiple hyphenated names and patterns with pipe, match", + route: new(Route).Path("/{product-category:a|(b/c)}/{product-name}/{product-id:[0-9]+}"), + request: newRequest("GET", "http://localhost/a/product_name/1"), + vars: map[string]string{"product-category": "a", "product-name": "product_name", "product-id": "1"}, + host: "", + path: "/a/product_name/1", + shouldMatch: true, + }, } for _, test := range tests { @@ -434,6 +519,24 @@ func TestHeaders(t *testing.T) { path: "", shouldMatch: false, }, + { + title: "Headers route, regex header values to match", + route: new(Route).Headers("foo", "ba[zr]"), + request: newRequestHeaders("GET", "http://localhost", map[string]string{"foo": "bar"}), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: false, + }, + { + title: "Headers route, regex header values to match", + route: new(Route).HeadersRegexp("foo", "ba[zr]"), + request: newRequestHeaders("GET", "http://localhost", map[string]string{"foo": "baz"}), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: true, + }, } for _, test := range tests { @@ -552,6 +655,150 @@ func TestQueries(t *testing.T) { path: "", shouldMatch: false, }, + { + title: "Queries route with regexp pattern with quantifier, match", + route: new(Route).Queries("foo", "{v1:[0-9]{1}}"), + request: newRequest("GET", "http://localhost?foo=1"), + vars: map[string]string{"v1": "1"}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route with regexp pattern with quantifier, additional variable in query string, match", + route: new(Route).Queries("foo", "{v1:[0-9]{1}}"), + request: newRequest("GET", "http://localhost?bar=2&foo=1"), + vars: map[string]string{"v1": "1"}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route with regexp pattern with quantifier, regexp does not match", + route: new(Route).Queries("foo", "{v1:[0-9]{1}}"), + request: newRequest("GET", "http://localhost?foo=12"), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: false, + }, + { + title: "Queries route with regexp pattern with quantifier, additional capturing group", + route: new(Route).Queries("foo", "{v1:[0-9]{1}(a|b)}"), + request: newRequest("GET", "http://localhost?foo=1a"), + vars: map[string]string{"v1": "1a"}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route with regexp pattern with quantifier, additional variable in query string, regexp does not match", + route: new(Route).Queries("foo", "{v1:[0-9]{1}}"), + request: newRequest("GET", "http://localhost?foo=12"), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: false, + }, + { + title: "Queries route with hyphenated name, match", + route: new(Route).Queries("foo", "{v-1}"), + request: newRequest("GET", "http://localhost?foo=bar"), + vars: map[string]string{"v-1": "bar"}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route with multiple hyphenated names, match", + route: new(Route).Queries("foo", "{v-1}", "baz", "{v-2}"), + request: newRequest("GET", "http://localhost?foo=bar&baz=ding"), + vars: map[string]string{"v-1": "bar", "v-2": "ding"}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route with hyphenate name and pattern, match", + route: new(Route).Queries("foo", "{v-1:[0-9]+}"), + request: newRequest("GET", "http://localhost?foo=10"), + vars: map[string]string{"v-1": "10"}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route with hyphenated name and pattern with quantifier, additional capturing group", + route: new(Route).Queries("foo", "{v-1:[0-9]{1}(a|b)}"), + request: newRequest("GET", "http://localhost?foo=1a"), + vars: map[string]string{"v-1": "1a"}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route with empty value, should match", + route: new(Route).Queries("foo", ""), + request: newRequest("GET", "http://localhost?foo=bar"), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route with empty value and no parameter in request, should not match", + route: new(Route).Queries("foo", ""), + request: newRequest("GET", "http://localhost"), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: false, + }, + { + title: "Queries route with empty value and empty parameter in request, should match", + route: new(Route).Queries("foo", ""), + request: newRequest("GET", "http://localhost?foo="), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route with overlapping value, should not match", + route: new(Route).Queries("foo", "bar"), + request: newRequest("GET", "http://localhost?foo=barfoo"), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: false, + }, + { + title: "Queries route with no parameter in request, should not match", + route: new(Route).Queries("foo", "{bar}"), + request: newRequest("GET", "http://localhost"), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: false, + }, + { + title: "Queries route with empty parameter in request, should match", + route: new(Route).Queries("foo", "{bar}"), + request: newRequest("GET", "http://localhost?foo="), + vars: map[string]string{"foo": ""}, + host: "", + path: "", + shouldMatch: true, + }, + { + title: "Queries route, bad submatch", + route: new(Route).Queries("foo", "bar", "baz", "ding"), + request: newRequest("GET", "http://localhost?fffoo=bar&baz=dingggg"), + vars: map[string]string{}, + host: "", + path: "", + shouldMatch: false, + }, } for _, test := range tests { @@ -801,6 +1048,81 @@ func TestStrictSlash(t *testing.T) { } } +func TestWalkSingleDepth(t *testing.T) { + r0 := NewRouter() + r1 := NewRouter() + r2 := NewRouter() + + r0.Path("/g") + r0.Path("/o") + r0.Path("/d").Handler(r1) + r0.Path("/r").Handler(r2) + r0.Path("/a") + + r1.Path("/z") + r1.Path("/i") + r1.Path("/l") + r1.Path("/l") + + r2.Path("/i") + r2.Path("/l") + r2.Path("/l") + + paths := []string{"g", "o", "r", "i", "l", "l", "a"} + depths := []int{0, 0, 0, 1, 1, 1, 0} + i := 0 + err := r0.Walk(func(route *Route, router *Router, ancestors []*Route) error { + matcher := route.matchers[0].(*routeRegexp) + if matcher.template == "/d" { + return SkipRouter + } + if len(ancestors) != depths[i] { + t.Errorf(`Expected depth of %d at i = %d; got "%d"`, depths[i], i, len(ancestors)) + } + if matcher.template != "/"+paths[i] { + t.Errorf(`Expected "/%s" at i = %d; got "%s"`, paths[i], i, matcher.template) + } + i++ + return nil + }) + if err != nil { + panic(err) + } + if i != len(paths) { + t.Errorf("Expected %d routes, found %d", len(paths), i) + } +} + +func TestWalkNested(t *testing.T) { + router := NewRouter() + + g := router.Path("/g").Subrouter() + o := g.PathPrefix("/o").Subrouter() + r := o.PathPrefix("/r").Subrouter() + i := r.PathPrefix("/i").Subrouter() + l1 := i.PathPrefix("/l").Subrouter() + l2 := l1.PathPrefix("/l").Subrouter() + l2.Path("/a") + + paths := []string{"/g", "/g/o", "/g/o/r", "/g/o/r/i", "/g/o/r/i/l", "/g/o/r/i/l/l", "/g/o/r/i/l/l/a"} + idx := 0 + err := router.Walk(func(route *Route, router *Router, ancestors []*Route) error { + path := paths[idx] + tpl := route.regexp.path.template + if tpl != path { + t.Errorf(`Expected %s got %s`, path, tpl) + } + idx++ + return nil + }) + if err != nil { + panic(err) + } + if idx != len(paths) { + t.Errorf("Expected %d routes, found %d", len(paths), idx) + } +} + // ---------------------------------------------------------------------------- // Helpers // ---------------------------------------------------------------------------- diff --git a/Godeps/_workspace/src/github.com/gorilla/mux/old_test.go b/Godeps/_workspace/src/github.com/gorilla/mux/old_test.go index 1f7c190c0..755db483e 100644 --- a/Godeps/_workspace/src/github.com/gorilla/mux/old_test.go +++ b/Godeps/_workspace/src/github.com/gorilla/mux/old_test.go @@ -545,7 +545,7 @@ func TestMatchedRouteName(t *testing.T) { router := NewRouter() route := router.NewRoute().Path("/products/").Name(routeName) - url := "http://www.domain.com/products/" + url := "http://www.example.com/products/" request, _ := http.NewRequest("GET", url, nil) var rv RouteMatch ok := router.Match(request, &rv) @@ -563,10 +563,10 @@ func TestMatchedRouteName(t *testing.T) { func TestSubRouting(t *testing.T) { // Example from docs. router := NewRouter() - subrouter := router.NewRoute().Host("www.domain.com").Subrouter() + subrouter := router.NewRoute().Host("www.example.com").Subrouter() route := subrouter.NewRoute().Path("/products/").Name("products") - url := "http://www.domain.com/products/" + url := "http://www.example.com/products/" request, _ := http.NewRequest("GET", url, nil) var rv RouteMatch ok := router.Match(request, &rv) diff --git a/Godeps/_workspace/src/github.com/gorilla/mux/regexp.go b/Godeps/_workspace/src/github.com/gorilla/mux/regexp.go index aa3067986..06728dd54 100644 --- a/Godeps/_workspace/src/github.com/gorilla/mux/regexp.go +++ b/Godeps/_workspace/src/github.com/gorilla/mux/regexp.go @@ -10,6 +10,7 @@ import ( "net/http" "net/url" "regexp" + "strconv" "strings" ) @@ -34,8 +35,7 @@ func newRouteRegexp(tpl string, matchHost, matchPrefix, matchQuery, strictSlash // Now let's parse it. defaultPattern := "[^/]+" if matchQuery { - defaultPattern = "[^?&]+" - matchPrefix = true + defaultPattern = "[^?&]*" } else if matchHost { defaultPattern = "[^.]+" matchPrefix = false @@ -53,9 +53,7 @@ func newRouteRegexp(tpl string, matchHost, matchPrefix, matchQuery, strictSlash varsN := make([]string, len(idxs)/2) varsR := make([]*regexp.Regexp, len(idxs)/2) pattern := bytes.NewBufferString("") - if !matchQuery { - pattern.WriteByte('^') - } + pattern.WriteByte('^') reverse := bytes.NewBufferString("") var end int var err error @@ -75,12 +73,14 @@ func newRouteRegexp(tpl string, matchHost, matchPrefix, matchQuery, strictSlash tpl[idxs[i]:end]) } // Build the regexp pattern. - fmt.Fprintf(pattern, "%s(%s)", regexp.QuoteMeta(raw), patt) + varIdx := i / 2 + fmt.Fprintf(pattern, "%s(?P<%s>%s)", regexp.QuoteMeta(raw), varGroupName(varIdx), patt) // Build the reverse template. fmt.Fprintf(reverse, "%s%%s", raw) + // Append variable name and compiled pattern. - varsN[i/2] = name - varsR[i/2], err = regexp.Compile(fmt.Sprintf("^%s$", patt)) + varsN[varIdx] = name + varsR[varIdx], err = regexp.Compile(fmt.Sprintf("^%s$", patt)) if err != nil { return nil, err } @@ -91,6 +91,12 @@ func newRouteRegexp(tpl string, matchHost, matchPrefix, matchQuery, strictSlash if strictSlash { pattern.WriteString("[/]?") } + if matchQuery { + // Add the default pattern if the query value is empty + if queryVal := strings.SplitN(template, "=", 2)[1]; queryVal == "" { + pattern.WriteString(defaultPattern) + } + } if !matchPrefix { pattern.WriteByte('$') } @@ -141,7 +147,7 @@ type routeRegexp struct { func (r *routeRegexp) Match(req *http.Request, match *RouteMatch) bool { if !r.matchHost { if r.matchQuery { - return r.regexp.MatchString(req.URL.RawQuery) + return r.matchQueryString(req) } else { return r.regexp.MatchString(req.URL.Path) } @@ -175,6 +181,26 @@ func (r *routeRegexp) url(values map[string]string) (string, error) { return rv, nil } +// getUrlQuery returns a single query parameter from a request URL. +// For a URL with foo=bar&baz=ding, we return only the relevant key +// value pair for the routeRegexp. +func (r *routeRegexp) getUrlQuery(req *http.Request) string { + if !r.matchQuery { + return "" + } + templateKey := strings.SplitN(r.template, "=", 2)[0] + for key, vals := range req.URL.Query() { + if key == templateKey && len(vals) > 0 { + return key + "=" + vals[0] + } + } + return "" +} + +func (r *routeRegexp) matchQueryString(req *http.Request) bool { + return r.regexp.MatchString(r.getUrlQuery(req)) +} + // braceIndices returns the first level curly brace indices from a string. // It returns an error in case of unbalanced braces. func braceIndices(s string) ([]int, error) { @@ -200,6 +226,11 @@ func braceIndices(s string) ([]int, error) { return idxs, nil } +// varGroupName builds a capturing group name for the indexed variable. +func varGroupName(idx int) string { + return "v" + strconv.Itoa(idx) +} + // ---------------------------------------------------------------------------- // routeRegexpGroup // ---------------------------------------------------------------------------- @@ -217,8 +248,13 @@ func (v *routeRegexpGroup) setMatch(req *http.Request, m *RouteMatch, r *Route) if v.host != nil { hostVars := v.host.regexp.FindStringSubmatch(getHost(req)) if hostVars != nil { - for k, v := range v.host.varsN { - m.Vars[v] = hostVars[k+1] + subexpNames := v.host.regexp.SubexpNames() + varName := 0 + for i, name := range subexpNames[1:] { + if name != "" && name == varGroupName(varName) { + m.Vars[v.host.varsN[varName]] = hostVars[i+1] + varName++ + } } } } @@ -226,8 +262,13 @@ func (v *routeRegexpGroup) setMatch(req *http.Request, m *RouteMatch, r *Route) if v.path != nil { pathVars := v.path.regexp.FindStringSubmatch(req.URL.Path) if pathVars != nil { - for k, v := range v.path.varsN { - m.Vars[v] = pathVars[k+1] + subexpNames := v.path.regexp.SubexpNames() + varName := 0 + for i, name := range subexpNames[1:] { + if name != "" && name == varGroupName(varName) { + m.Vars[v.path.varsN[varName]] = pathVars[i+1] + varName++ + } } // Check if we should redirect. if v.path.strictSlash { @@ -246,12 +287,16 @@ func (v *routeRegexpGroup) setMatch(req *http.Request, m *RouteMatch, r *Route) } } // Store query string variables. - rawQuery := req.URL.RawQuery for _, q := range v.queries { - queryVars := q.regexp.FindStringSubmatch(rawQuery) + queryVars := q.regexp.FindStringSubmatch(q.getUrlQuery(req)) if queryVars != nil { - for k, v := range q.varsN { - m.Vars[v] = queryVars[k+1] + subexpNames := q.regexp.SubexpNames() + varName := 0 + for i, name := range subexpNames[1:] { + if name != "" && name == varGroupName(varName) { + m.Vars[q.varsN[varName]] = queryVars[i+1] + varName++ + } } } } diff --git a/Godeps/_workspace/src/github.com/gorilla/mux/route.go b/Godeps/_workspace/src/github.com/gorilla/mux/route.go index d4f014688..913432c1c 100644 --- a/Godeps/_workspace/src/github.com/gorilla/mux/route.go +++ b/Godeps/_workspace/src/github.com/gorilla/mux/route.go @@ -9,6 +9,7 @@ import ( "fmt" "net/http" "net/url" + "regexp" "strings" ) @@ -188,7 +189,7 @@ func (r *Route) addRegexpMatcher(tpl string, matchHost, matchPrefix, matchQuery type headerMatcher map[string]string func (m headerMatcher) Match(r *http.Request, match *RouteMatch) bool { - return matchMap(m, r.Header, true) + return matchMapWithString(m, r.Header, true) } // Headers adds a matcher for request header values. @@ -199,22 +200,45 @@ func (m headerMatcher) Match(r *http.Request, match *RouteMatch) bool { // "X-Requested-With", "XMLHttpRequest") // // The above route will only match if both request header values match. -// -// It the value is an empty string, it will match any value if the key is set. +// If the value is an empty string, it will match any value if the key is set. func (r *Route) Headers(pairs ...string) *Route { if r.err == nil { var headers map[string]string - headers, r.err = mapFromPairs(pairs...) + headers, r.err = mapFromPairsToString(pairs...) return r.addMatcher(headerMatcher(headers)) } return r } +// headerRegexMatcher matches the request against the route given a regex for the header +type headerRegexMatcher map[string]*regexp.Regexp + +func (m headerRegexMatcher) Match(r *http.Request, match *RouteMatch) bool { + return matchMapWithRegex(m, r.Header, true) +} + +// Regular expressions can be used with headers as well. +// It accepts a sequence of key/value pairs, where the value has regex support. For example +// r := mux.NewRouter() +// r.HeadersRegexp("Content-Type", "application/(text|json)", +// "X-Requested-With", "XMLHttpRequest") +// +// The above route will only match if both the request header matches both regular expressions. +// It the value is an empty string, it will match any value if the key is set. +func (r *Route) HeadersRegexp(pairs ...string) *Route { + if r.err == nil { + var headers map[string]*regexp.Regexp + headers, r.err = mapFromPairsToRegex(pairs...) + return r.addMatcher(headerRegexMatcher(headers)) + } + return r +} + // Host ----------------------------------------------------------------------- // Host adds a matcher for the URL host. // It accepts a template with zero or more URL variables enclosed by {}. -// Variables can define an optional regexp pattern to me matched: +// Variables can define an optional regexp pattern to be matched: // // - {name} matches anything until the next dot. // @@ -223,7 +247,7 @@ func (r *Route) Headers(pairs ...string) *Route { // For example: // // r := mux.NewRouter() -// r.Host("www.domain.com") +// r.Host("www.example.com") // r.Host("{subdomain}.domain.com") // r.Host("{subdomain:[a-z]+}.domain.com") // @@ -272,7 +296,7 @@ func (r *Route) Methods(methods ...string) *Route { // Path adds a matcher for the URL path. // It accepts a template with zero or more URL variables enclosed by {}. The // template must start with a "/". -// Variables can define an optional regexp pattern to me matched: +// Variables can define an optional regexp pattern to be matched: // // - {name} matches anything until the next slash. // @@ -323,7 +347,7 @@ func (r *Route) PathPrefix(tpl string) *Route { // // It the value is an empty string, it will match any value if the key is set. // -// Variables can define an optional regexp pattern to me matched: +// Variables can define an optional regexp pattern to be matched: // // - {name} matches anything until the next slash. // @@ -336,7 +360,7 @@ func (r *Route) Queries(pairs ...string) *Route { return nil } for i := 0; i < length; i += 2 { - if r.err = r.addRegexpMatcher(pairs[i]+"="+pairs[i+1], false, true, true); r.err != nil { + if r.err = r.addRegexpMatcher(pairs[i]+"="+pairs[i+1], false, false, true); r.err != nil { return r } } @@ -382,7 +406,7 @@ func (r *Route) BuildVarsFunc(f BuildVarsFunc) *Route { // It will test the inner routes only if the parent route matched. For example: // // r := mux.NewRouter() -// s := r.Host("www.domain.com").Subrouter() +// s := r.Host("www.example.com").Subrouter() // s.HandleFunc("/products/", ProductsHandler) // s.HandleFunc("/products/{key}", ProductHandler) // s.HandleFunc("/articles/{category}/{id:[0-9]+}"), ArticleHandler) @@ -511,7 +535,7 @@ func (r *Route) URLPath(pairs ...string) (*url.URL, error) { // prepareVars converts the route variable pairs into a map. If the route has a // BuildVarsFunc, it is invoked. func (r *Route) prepareVars(pairs ...string) (map[string]string, error) { - m, err := mapFromPairs(pairs...) + m, err := mapFromPairsToString(pairs...) if err != nil { return nil, err } diff --git a/Godeps/_workspace/src/github.com/gorilla/websocket/README.md b/Godeps/_workspace/src/github.com/gorilla/websocket/README.md index 9ad75a0f5..9d71959ea 100644 --- a/Godeps/_workspace/src/github.com/gorilla/websocket/README.md +++ b/Godeps/_workspace/src/github.com/gorilla/websocket/README.md @@ -7,6 +7,8 @@ Gorilla WebSocket is a [Go](http://golang.org/) implementation of the * [API Reference](http://godoc.org/github.com/gorilla/websocket) * [Chat example](https://github.com/gorilla/websocket/tree/master/examples/chat) +* [Command example](https://github.com/gorilla/websocket/tree/master/examples/command) +* [Client and server example](https://github.com/gorilla/websocket/tree/master/examples/echo) * [File watch example](https://github.com/gorilla/websocket/tree/master/examples/filewatch) ### Status diff --git a/Godeps/_workspace/src/github.com/gorilla/websocket/client.go b/Godeps/_workspace/src/github.com/gorilla/websocket/client.go index 5bc27e193..3bf9b2e84 100644 --- a/Godeps/_workspace/src/github.com/gorilla/websocket/client.go +++ b/Godeps/_workspace/src/github.com/gorilla/websocket/client.go @@ -5,6 +5,7 @@ package websocket import ( + "bufio" "bytes" "crypto/tls" "errors" @@ -30,50 +31,17 @@ var ErrBadHandshake = errors.New("websocket: bad handshake") // If the WebSocket handshake fails, ErrBadHandshake is returned along with a // non-nil *http.Response so that callers can handle redirects, authentication, // etc. +// +// Deprecated: Use Dialer instead. func NewClient(netConn net.Conn, u *url.URL, requestHeader http.Header, readBufSize, writeBufSize int) (c *Conn, response *http.Response, err error) { - challengeKey, err := generateChallengeKey() - if err != nil { - return nil, nil, err + d := Dialer{ + ReadBufferSize: readBufSize, + WriteBufferSize: writeBufSize, + NetDial: func(net, addr string) (net.Conn, error) { + return netConn, nil + }, } - acceptKey := computeAcceptKey(challengeKey) - - c = newConn(netConn, false, readBufSize, writeBufSize) - p := c.writeBuf[:0] - p = append(p, "GET "...) - p = append(p, u.RequestURI()...) - p = append(p, " HTTP/1.1\r\nHost: "...) - p = append(p, u.Host...) - // "Upgrade" is capitalized for servers that do not use case insensitive - // comparisons on header tokens. - p = append(p, "\r\nUpgrade: websocket\r\nConnection: Upgrade\r\nSec-WebSocket-Version: 13\r\nSec-WebSocket-Key: "...) - p = append(p, challengeKey...) - p = append(p, "\r\n"...) - for k, vs := range requestHeader { - for _, v := range vs { - p = append(p, k...) - p = append(p, ": "...) - p = append(p, v...) - p = append(p, "\r\n"...) - } - } - p = append(p, "\r\n"...) - - if _, err := netConn.Write(p); err != nil { - return nil, nil, err - } - - resp, err := http.ReadResponse(c.br, &http.Request{Method: "GET", URL: u}) - if err != nil { - return nil, nil, err - } - if resp.StatusCode != 101 || - !strings.EqualFold(resp.Header.Get("Upgrade"), "websocket") || - !strings.EqualFold(resp.Header.Get("Connection"), "upgrade") || - resp.Header.Get("Sec-Websocket-Accept") != acceptKey { - return nil, resp, ErrBadHandshake - } - c.subprotocol = resp.Header.Get("Sec-Websocket-Protocol") - return c, resp, nil + return d.Dial(u.String(), requestHeader) } // A Dialer contains options for connecting to WebSocket server. @@ -82,6 +50,12 @@ type Dialer struct { // NetDial is nil, net.Dial is used. NetDial func(network, addr string) (net.Conn, error) + // Proxy specifies a function to return a proxy for a given + // Request. If the function returns a non-nil error, the + // request is aborted with the provided error. + // If Proxy is nil or returns a nil *URL, no proxy is used. + Proxy func(*http.Request) (*url.URL, error) + // TLSClientConfig specifies the TLS configuration to use with tls.Client. // If nil, the default configuration is used. TLSClientConfig *tls.Config @@ -99,17 +73,15 @@ type Dialer struct { var errMalformedURL = errors.New("malformed ws or wss URL") -// parseURL parses the URL. The url.Parse function is not used here because -// url.Parse mangles the path. +// parseURL parses the URL. +// +// This function is a replacement for the standard library url.Parse function. +// In Go 1.4 and earlier, url.Parse loses information from the path. func parseURL(s string) (*url.URL, error) { // From the RFC: // // ws-URI = "ws:" "//" host [ ":" port ] path [ "?" query ] // wss-URI = "wss:" "//" host [ ":" port ] path [ "?" query ] - // - // We don't use the net/url parser here because the dialer interface does - // not provide a way for applications to work around percent deocding in - // the net/url parser. var u url.URL switch { @@ -130,6 +102,12 @@ func parseURL(s string) (*url.URL, error) { u.Opaque = s[i:] } + if strings.Contains(u.Host, "@") { + // Don't bother parsing user information because user information is + // not allowed in websocket URIs. + return nil, errMalformedURL + } + return &u, nil } @@ -139,9 +117,12 @@ func hostPortNoPort(u *url.URL) (hostPort, hostNoPort string) { if i := strings.LastIndex(u.Host, ":"); i > strings.LastIndex(u.Host, "]") { hostNoPort = hostNoPort[:i] } else { - if u.Scheme == "wss" { + switch u.Scheme { + case "wss": + hostPort += ":443" + case "https": hostPort += ":443" - } else { + default: hostPort += ":80" } } @@ -149,7 +130,9 @@ func hostPortNoPort(u *url.URL) (hostPort, hostNoPort string) { } // DefaultDialer is a dialer with all fields set to the default zero values. -var DefaultDialer *Dialer +var DefaultDialer = &Dialer{ + Proxy: http.ProxyFromEnvironment, +} // Dial creates a new client connection. Use requestHeader to specify the // origin (Origin), subprotocols (Sec-WebSocket-Protocol) and cookies (Cookie). @@ -161,15 +144,91 @@ var DefaultDialer *Dialer // etcetera. The response body may not contain the entire response and does not // need to be closed by the application. func (d *Dialer) Dial(urlStr string, requestHeader http.Header) (*Conn, *http.Response, error) { + + if d == nil { + d = &Dialer{ + Proxy: http.ProxyFromEnvironment, + } + } + + challengeKey, err := generateChallengeKey() + if err != nil { + return nil, nil, err + } + u, err := parseURL(urlStr) if err != nil { return nil, nil, err } + switch u.Scheme { + case "ws": + u.Scheme = "http" + case "wss": + u.Scheme = "https" + default: + return nil, nil, errMalformedURL + } + + if u.User != nil { + // User name and password are not allowed in websocket URIs. + return nil, nil, errMalformedURL + } + + req := &http.Request{ + Method: "GET", + URL: u, + Proto: "HTTP/1.1", + ProtoMajor: 1, + ProtoMinor: 1, + Header: make(http.Header), + Host: u.Host, + } + + // Set the request headers using the capitalization for names and values in + // RFC examples. Although the capitalization shouldn't matter, there are + // servers that depend on it. The Header.Set method is not used because the + // method canonicalizes the header names. + req.Header["Upgrade"] = []string{"websocket"} + req.Header["Connection"] = []string{"Upgrade"} + req.Header["Sec-WebSocket-Key"] = []string{challengeKey} + req.Header["Sec-WebSocket-Version"] = []string{"13"} + if len(d.Subprotocols) > 0 { + req.Header["Sec-WebSocket-Protocol"] = []string{strings.Join(d.Subprotocols, ", ")} + } + for k, vs := range requestHeader { + switch { + case k == "Host": + if len(vs) > 0 { + req.Host = vs[0] + } + case k == "Upgrade" || + k == "Connection" || + k == "Sec-Websocket-Key" || + k == "Sec-Websocket-Version" || + (k == "Sec-Websocket-Protocol" && len(d.Subprotocols) > 0): + return nil, nil, errors.New("websocket: duplicate header not allowed: " + k) + default: + req.Header[k] = vs + } + } + hostPort, hostNoPort := hostPortNoPort(u) - if d == nil { - d = &Dialer{} + var proxyURL *url.URL + // Check wether the proxy method has been configured + if d.Proxy != nil { + proxyURL, err = d.Proxy(req) + } + if err != nil { + return nil, nil, err + } + + var targetHostPort string + if proxyURL != nil { + targetHostPort, _ = hostPortNoPort(proxyURL) + } else { + targetHostPort = hostPort } var deadline time.Time @@ -183,7 +242,7 @@ func (d *Dialer) Dial(urlStr string, requestHeader http.Header) (*Conn, *http.Re netDial = netDialer.Dial } - netConn, err := netDial("tcp", hostPort) + netConn, err := netDial("tcp", targetHostPort) if err != nil { return nil, nil, err } @@ -198,7 +257,31 @@ func (d *Dialer) Dial(urlStr string, requestHeader http.Header) (*Conn, *http.Re return nil, nil, err } - if u.Scheme == "wss" { + if proxyURL != nil { + connectReq := &http.Request{ + Method: "CONNECT", + URL: &url.URL{Opaque: hostPort}, + Host: hostPort, + Header: make(http.Header), + } + + connectReq.Write(netConn) + + // Read response. + // Okay to use and discard buffered reader here, because + // TLS server will not speak until spoken to. + br := bufio.NewReader(netConn) + resp, err := http.ReadResponse(br, connectReq) + if err != nil { + return nil, nil, err + } + if resp.StatusCode != 200 { + f := strings.SplitN(resp.Status, " ", 2) + return nil, nil, errors.New(f[1]) + } + } + + if u.Scheme == "https" { cfg := d.TLSClientConfig if cfg == nil { cfg = &tls.Config{ServerName: hostNoPort} @@ -219,45 +302,32 @@ func (d *Dialer) Dial(urlStr string, requestHeader http.Header) (*Conn, *http.Re } } - if len(d.Subprotocols) > 0 { - h := http.Header{} - for k, v := range requestHeader { - h[k] = v - } - h.Set("Sec-Websocket-Protocol", strings.Join(d.Subprotocols, ", ")) - requestHeader = h - } - - if len(requestHeader["Host"]) > 0 { - // This can be used to supply a Host: header which is different from - // the dial address. - u.Host = requestHeader.Get("Host") + conn := newConn(netConn, false, d.ReadBufferSize, d.WriteBufferSize) - // Drop "Host" header - h := http.Header{} - for k, v := range requestHeader { - if k == "Host" { - continue - } - h[k] = v - } - requestHeader = h + if err := req.Write(netConn); err != nil { + return nil, nil, err } - conn, resp, err := NewClient(netConn, u, requestHeader, d.ReadBufferSize, d.WriteBufferSize) - + resp, err := http.ReadResponse(conn.br, req) if err != nil { - if err == ErrBadHandshake { - // Before closing the network connection on return from this - // function, slurp up some of the response to aid application - // debugging. - buf := make([]byte, 1024) - n, _ := io.ReadFull(resp.Body, buf) - resp.Body = ioutil.NopCloser(bytes.NewReader(buf[:n])) - } - return nil, resp, err + return nil, nil, err + } + if resp.StatusCode != 101 || + !strings.EqualFold(resp.Header.Get("Upgrade"), "websocket") || + !strings.EqualFold(resp.Header.Get("Connection"), "upgrade") || + resp.Header.Get("Sec-Websocket-Accept") != computeAcceptKey(challengeKey) { + // Before closing the network connection on return from this + // function, slurp up some of the response to aid application + // debugging. + buf := make([]byte, 1024) + n, _ := io.ReadFull(resp.Body, buf) + resp.Body = ioutil.NopCloser(bytes.NewReader(buf[:n])) + return nil, resp, ErrBadHandshake } + resp.Body = ioutil.NopCloser(bytes.NewReader([]byte{})) + conn.subprotocol = resp.Header.Get("Sec-Websocket-Protocol") + netConn.SetDeadline(time.Time{}) netConn = nil // to avoid close in defer. return conn, resp, nil diff --git a/Godeps/_workspace/src/github.com/gorilla/websocket/client_server_test.go b/Godeps/_workspace/src/github.com/gorilla/websocket/client_server_test.go index 749ef2050..05a7888fe 100644 --- a/Godeps/_workspace/src/github.com/gorilla/websocket/client_server_test.go +++ b/Godeps/_workspace/src/github.com/gorilla/websocket/client_server_test.go @@ -56,11 +56,6 @@ func newTLSServer(t *testing.T) *cstServer { } func (t cstHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { - if r.Method != "GET" { - t.Logf("method %s not allowed", r.Method) - http.Error(w, "method not allowed", 405) - return - } subprotos := Subprotocols(r) if !reflect.DeepEqual(subprotos, cstDialer.Subprotocols) { t.Logf("subprotols=%v, want %v", subprotos, cstDialer.Subprotocols) @@ -123,6 +118,45 @@ func sendRecv(t *testing.T, ws *Conn) { } } +func TestProxyDial(t *testing.T) { + + s := newServer(t) + defer s.Close() + + surl, _ := url.Parse(s.URL) + + cstDialer.Proxy = http.ProxyURL(surl) + + connect := false + origHandler := s.Server.Config.Handler + + // Capture the request Host header. + s.Server.Config.Handler = http.HandlerFunc( + func(w http.ResponseWriter, r *http.Request) { + if r.Method == "CONNECT" { + connect = true + w.WriteHeader(200) + return + } + + if !connect { + t.Log("connect not recieved") + http.Error(w, "connect not recieved", 405) + return + } + origHandler.ServeHTTP(w, r) + }) + + ws, _, err := cstDialer.Dial(s.URL, nil) + if err != nil { + t.Fatalf("Dial: %v", err) + } + defer ws.Close() + sendRecv(t, ws) + + cstDialer.Proxy = http.ProxyFromEnvironment +} + func TestDial(t *testing.T) { s := newServer(t) defer s.Close() @@ -229,6 +263,45 @@ func TestDialBadOrigin(t *testing.T) { } } +func TestDialBadHeader(t *testing.T) { + s := newServer(t) + defer s.Close() + + for _, k := range []string{"Upgrade", + "Connection", + "Sec-Websocket-Key", + "Sec-Websocket-Version", + "Sec-Websocket-Protocol"} { + h := http.Header{} + h.Set(k, "bad") + ws, _, err := cstDialer.Dial(s.URL, http.Header{"Origin": {"bad"}}) + if err == nil { + ws.Close() + t.Errorf("Dial with header %s returned nil", k) + } + } +} + +func TestBadMethod(t *testing.T) { + s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + ws, err := cstUpgrader.Upgrade(w, r, nil) + if err == nil { + t.Errorf("handshake succeeded, expect fail") + ws.Close() + } + })) + defer s.Close() + + resp, err := http.PostForm(s.URL, url.Values{}) + if err != nil { + t.Fatalf("PostForm returned error %v", err) + } + resp.Body.Close() + if resp.StatusCode != http.StatusMethodNotAllowed { + t.Errorf("Status = %d, want %d", resp.StatusCode, http.StatusMethodNotAllowed) + } +} + func TestHandshake(t *testing.T) { s := newServer(t) defer s.Close() @@ -289,8 +362,8 @@ func TestRespOnBadHandshake(t *testing.T) { } } -// If the Host header is specified in `Dial()`, the server must receive it as -// the `Host:` header. +// TestHostHeader confirms that the host header provided in the call to Dial is +// sent to the server. func TestHostHeader(t *testing.T) { s := newServer(t) defer s.Close() @@ -305,16 +378,12 @@ func TestHostHeader(t *testing.T) { origHandler.ServeHTTP(w, r) }) - ws, resp, err := cstDialer.Dial(s.URL, http.Header{"Host": {"testhost"}}) + ws, _, err := cstDialer.Dial(s.URL, http.Header{"Host": {"testhost"}}) if err != nil { t.Fatalf("Dial: %v", err) } defer ws.Close() - if resp.StatusCode != http.StatusSwitchingProtocols { - t.Fatalf("resp.StatusCode = %v, want http.StatusSwitchingProtocols", resp.StatusCode) - } - if gotHost := <-specifiedHost; gotHost != "testhost" { t.Fatalf("gotHost = %q, want \"testhost\"", gotHost) } diff --git a/Godeps/_workspace/src/github.com/gorilla/websocket/client_test.go b/Godeps/_workspace/src/github.com/gorilla/websocket/client_test.go index d2f2ebd79..07a9cb453 100644 --- a/Godeps/_workspace/src/github.com/gorilla/websocket/client_test.go +++ b/Godeps/_workspace/src/github.com/gorilla/websocket/client_test.go @@ -20,6 +20,7 @@ var parseURLTests = []struct { {"wss://example.com/", &url.URL{Scheme: "wss", Host: "example.com", Opaque: "/"}}, {"wss://example.com/a/b", &url.URL{Scheme: "wss", Host: "example.com", Opaque: "/a/b"}}, {"ss://example.com/a/b", nil}, + {"ws://webmaster@example.com/", nil}, } func TestParseURL(t *testing.T) { diff --git a/Godeps/_workspace/src/github.com/gorilla/websocket/conn.go b/Godeps/_workspace/src/github.com/gorilla/websocket/conn.go index e719f1ce6..e8b6b3e04 100644 --- a/Godeps/_workspace/src/github.com/gorilla/websocket/conn.go +++ b/Godeps/_workspace/src/github.com/gorilla/websocket/conn.go @@ -88,19 +88,23 @@ func (e *netError) Error() string { return e.msg } func (e *netError) Temporary() bool { return e.temporary } func (e *netError) Timeout() bool { return e.timeout } -// closeError represents close frame. -type closeError struct { - code int - text string +// CloseError represents close frame. +type CloseError struct { + + // Code is defined in RFC 6455, section 11.7. + Code int + + // Text is the optional text payload. + Text string } -func (e *closeError) Error() string { - return "websocket: close " + strconv.Itoa(e.code) + " " + e.text +func (e *CloseError) Error() string { + return "websocket: close " + strconv.Itoa(e.Code) + " " + e.Text } var ( - errWriteTimeout = &netError{msg: "websocket: write timeout", timeout: true} - errUnexpectedEOF = &closeError{code: CloseAbnormalClosure, text: io.ErrUnexpectedEOF.Error()} + errWriteTimeout = &netError{msg: "websocket: write timeout", timeout: true, temporary: true} + errUnexpectedEOF = &CloseError{Code: CloseAbnormalClosure, Text: io.ErrUnexpectedEOF.Error()} errBadWriteOpCode = errors.New("websocket: bad write message type") errWriteClosed = errors.New("websocket: write closed") errInvalidControlFrame = errors.New("websocket: invalid control frame") @@ -296,7 +300,7 @@ func (c *Conn) WriteControl(messageType int, data []byte, deadline time.Time) er if n != 0 && n != len(buf) { c.conn.Close() } - return err + return hideTempErr(err) } // NextWriter returns a writer for the next message to send. The writer's @@ -673,12 +677,7 @@ func (c *Conn) advanceFrame() (int, error) { closeCode = int(binary.BigEndian.Uint16(payload)) closeText = string(payload[2:]) } - switch closeCode { - case CloseNormalClosure, CloseGoingAway: - return noFrame, io.EOF - default: - return noFrame, &closeError{code: closeCode, text: closeText} - } + return noFrame, &CloseError{Code: closeCode, Text: closeText} } return frameType, nil @@ -790,20 +789,27 @@ func (c *Conn) SetReadLimit(limit int64) { } // SetPingHandler sets the handler for ping messages received from the peer. -// The default ping handler sends a pong to the peer. -func (c *Conn) SetPingHandler(h func(string) error) { +// The appData argument to h is the PING frame application data. The default +// ping handler sends a pong to the peer. +func (c *Conn) SetPingHandler(h func(appData string) error) { if h == nil { h = func(message string) error { - c.WriteControl(PongMessage, []byte(message), time.Now().Add(writeWait)) - return nil + err := c.WriteControl(PongMessage, []byte(message), time.Now().Add(writeWait)) + if err == ErrCloseSent { + return nil + } else if e, ok := err.(net.Error); ok && e.Temporary() { + return nil + } + return err } } c.handlePing = h } // SetPongHandler sets the handler for pong messages received from the peer. -// The default pong handler does nothing. -func (c *Conn) SetPongHandler(h func(string) error) { +// The appData argument to h is the PONG frame application data. The default +// pong handler does nothing. +func (c *Conn) SetPongHandler(h func(appData string) error) { if h == nil { h = func(string) error { return nil } } diff --git a/Godeps/_workspace/src/github.com/gorilla/websocket/conn_test.go b/Godeps/_workspace/src/github.com/gorilla/websocket/conn_test.go index 1f1197e71..02f2d4b50 100644 --- a/Godeps/_workspace/src/github.com/gorilla/websocket/conn_test.go +++ b/Godeps/_workspace/src/github.com/gorilla/websocket/conn_test.go @@ -5,11 +5,13 @@ package websocket import ( + "bufio" "bytes" "fmt" "io" "io/ioutil" "net" + "reflect" "testing" "testing/iotest" "time" @@ -146,13 +148,15 @@ func TestControl(t *testing.T) { func TestCloseBeforeFinalFrame(t *testing.T) { const bufSize = 512 + expectedErr := &CloseError{Code: CloseNormalClosure, Text: "hello"} + var b1, b2 bytes.Buffer wc := newConn(fakeNetConn{Reader: nil, Writer: &b1}, false, 1024, bufSize) rc := newConn(fakeNetConn{Reader: &b1, Writer: &b2}, true, 1024, 1024) w, _ := wc.NextWriter(BinaryMessage) w.Write(make([]byte, bufSize+bufSize/2)) - wc.WriteControl(CloseMessage, FormatCloseMessage(CloseNormalClosure, ""), time.Now().Add(10*time.Second)) + wc.WriteControl(CloseMessage, FormatCloseMessage(expectedErr.Code, expectedErr.Text), time.Now().Add(10*time.Second)) w.Close() op, r, err := rc.NextReader() @@ -160,12 +164,12 @@ func TestCloseBeforeFinalFrame(t *testing.T) { t.Fatalf("NextReader() returned %d, %v", op, err) } _, err = io.Copy(ioutil.Discard, r) - if err != errUnexpectedEOF { - t.Fatalf("io.Copy() returned %v, want %v", err, errUnexpectedEOF) + if !reflect.DeepEqual(err, expectedErr) { + t.Fatalf("io.Copy() returned %v, want %v", err, expectedErr) } _, _, err = rc.NextReader() - if err != io.EOF { - t.Fatalf("NextReader() returned %v, want %v", err, io.EOF) + if !reflect.DeepEqual(err, expectedErr) { + t.Fatalf("NextReader() returned %v, want %v", err, expectedErr) } } @@ -236,3 +240,33 @@ func TestUnderlyingConn(t *testing.T) { t.Fatalf("Underlying conn is not what it should be.") } } + +func TestBufioReadBytes(t *testing.T) { + + // Test calling bufio.ReadBytes for value longer than read buffer size. + + m := make([]byte, 512) + m[len(m)-1] = '\n' + + var b1, b2 bytes.Buffer + wc := newConn(fakeNetConn{Reader: nil, Writer: &b1}, false, len(m)+64, len(m)+64) + rc := newConn(fakeNetConn{Reader: &b1, Writer: &b2}, true, len(m)-64, len(m)-64) + + w, _ := wc.NextWriter(BinaryMessage) + w.Write(m) + w.Close() + + op, r, err := rc.NextReader() + if op != BinaryMessage || err != nil { + t.Fatalf("NextReader() returned %d, %v", op, err) + } + + br := bufio.NewReader(r) + p, err := br.ReadBytes('\n') + if err != nil { + t.Fatalf("ReadBytes() returned %v", err) + } + if len(p) != len(m) { + t.Fatalf("read returnd %d bytes, want %d bytes", len(p), len(m)) + } +} diff --git a/Godeps/_workspace/src/github.com/gorilla/websocket/doc.go b/Godeps/_workspace/src/github.com/gorilla/websocket/doc.go index 0d2bd912b..72286279c 100644 --- a/Godeps/_workspace/src/github.com/gorilla/websocket/doc.go +++ b/Godeps/_workspace/src/github.com/gorilla/websocket/doc.go @@ -24,7 +24,7 @@ // ... Use conn to send and receive messages. // } // -// Call the connection WriteMessage and ReadMessages methods to send and +// Call the connection's WriteMessage and ReadMessage methods to send and // receive messages as a slice of bytes. This snippet of code shows how to echo // messages using these methods: // @@ -97,10 +97,13 @@ // // Concurrency // -// Connections do not support concurrent calls to the write methods -// (NextWriter, SetWriteDeadline, WriteMessage) or concurrent calls to the read -// methods methods (NextReader, SetReadDeadline, ReadMessage). Connections do -// support a concurrent reader and writer. +// Connections support one concurrent reader and one concurrent writer. +// +// Applications are responsible for ensuring that no more than one goroutine +// calls the write methods (NextWriter, SetWriteDeadline, WriteMessage, +// WriteJSON) concurrently and that no more than one goroutine calls the read +// methods (NextReader, SetReadDeadline, ReadMessage, ReadJSON, SetPongHandler, +// SetPingHandler) concurrently. // // The Close and WriteControl methods can be called concurrently with all other // methods. diff --git a/Godeps/_workspace/src/github.com/gorilla/websocket/examples/chat/README.md b/Godeps/_workspace/src/github.com/gorilla/websocket/examples/chat/README.md index 08fc3e65c..5df3cf1a3 100644 --- a/Godeps/_workspace/src/github.com/gorilla/websocket/examples/chat/README.md +++ b/Godeps/_workspace/src/github.com/gorilla/websocket/examples/chat/README.md @@ -17,3 +17,4 @@ using the following commands. $ cd `go list -f '{{.Dir}}' github.com/gorilla/websocket/examples/chat` $ go run *.go +To use the chat example, open http://localhost:8080/ in your browser. diff --git a/Godeps/_workspace/src/github.com/gorilla/websocket/examples/chat/conn.go b/Godeps/_workspace/src/github.com/gorilla/websocket/examples/chat/conn.go index 7cc0496c3..22816f09f 100644 --- a/Godeps/_workspace/src/github.com/gorilla/websocket/examples/chat/conn.go +++ b/Godeps/_workspace/src/github.com/gorilla/websocket/examples/chat/conn.go @@ -88,12 +88,8 @@ func (c *connection) writePump() { } } -// serverWs handles websocket requests from the peer. +// serveWs handles websocket requests from the peer. func serveWs(w http.ResponseWriter, r *http.Request) { - if r.Method != "GET" { - http.Error(w, "Method not allowed", 405) - return - } ws, err := upgrader.Upgrade(w, r, nil) if err != nil { log.Println(err) diff --git a/Godeps/_workspace/src/github.com/gorilla/websocket/examples/command/README.md b/Godeps/_workspace/src/github.com/gorilla/websocket/examples/command/README.md new file mode 100644 index 000000000..c30d3979a --- /dev/null +++ b/Godeps/_workspace/src/github.com/gorilla/websocket/examples/command/README.md @@ -0,0 +1,19 @@ +# Command example + +This example connects a websocket connection to stdin and stdout of a command. +Received messages are written to stdin followed by a `\n`. Each line read from +from standard out is sent as a message to the client. + + $ go get github.com/gorilla/websocket + $ cd `go list -f '{{.Dir}}' github.com/gorilla/websocket/examples/command` + $ go run main.go <command and arguments to run> + # Open http://localhost:8080/ . + +Try the following commands. + + # Echo sent messages to the output area. + $ go run main.go cat + + # Run a shell.Try sending "ls" and "cat main.go". + $ go run main.go sh + diff --git a/Godeps/_workspace/src/github.com/gorilla/websocket/examples/command/home.html b/Godeps/_workspace/src/github.com/gorilla/websocket/examples/command/home.html new file mode 100644 index 000000000..72fd02b2a --- /dev/null +++ b/Godeps/_workspace/src/github.com/gorilla/websocket/examples/command/home.html @@ -0,0 +1,96 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<title>Command Example</title> +<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> +<script type="text/javascript"> + $(function() { + + var conn; + var msg = $("#msg"); + var log = $("#log"); + + function appendLog(msg) { + var d = log[0] + var doScroll = d.scrollTop == d.scrollHeight - d.clientHeight; + msg.appendTo(log) + if (doScroll) { + d.scrollTop = d.scrollHeight - d.clientHeight; + } + } + + $("#form").submit(function() { + if (!conn) { + return false; + } + if (!msg.val()) { + return false; + } + conn.send(msg.val()); + msg.val(""); + return false + }); + + if (window["WebSocket"]) { + conn = new WebSocket("ws://{{$}}/ws"); + conn.onclose = function(evt) { + appendLog($("<div><b>Connection closed.</b></div>")) + } + conn.onmessage = function(evt) { + appendLog($("<pre/>").text(evt.data)) + } + } else { + appendLog($("<div><b>Your browser does not support WebSockets.</b></div>")) + } + }); +</script> +<style type="text/css"> +html { + overflow: hidden; +} + +body { + overflow: hidden; + padding: 0; + margin: 0; + width: 100%; + height: 100%; + background: gray; +} + +#log { + background: white; + margin: 0; + padding: 0.5em 0.5em 0.5em 0.5em; + position: absolute; + top: 0.5em; + left: 0.5em; + right: 0.5em; + bottom: 3em; + overflow: auto; +} + +#log pre { + margin: 0; +} + +#form { + padding: 0 0.5em 0 0.5em; + margin: 0; + position: absolute; + bottom: 1em; + left: 0px; + width: 100%; + overflow: hidden; +} + +</style> +</head> +<body> +<div id="log"></div> +<form id="form"> + <input type="submit" value="Send" /> + <input type="text" id="msg" size="64"/> +</form> +</body> +</html> diff --git a/Godeps/_workspace/src/github.com/gorilla/websocket/examples/command/main.go b/Godeps/_workspace/src/github.com/gorilla/websocket/examples/command/main.go new file mode 100644 index 000000000..f3f022edb --- /dev/null +++ b/Godeps/_workspace/src/github.com/gorilla/websocket/examples/command/main.go @@ -0,0 +1,188 @@ +// Copyright 2015 The Gorilla WebSocket Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package main + +import ( + "bufio" + "flag" + "io" + "log" + "net/http" + "os" + "os/exec" + "text/template" + "time" + + "github.com/gorilla/websocket" +) + +var ( + addr = flag.String("addr", "127.0.0.1:8080", "http service address") + cmdPath string + homeTempl = template.Must(template.ParseFiles("home.html")) +) + +const ( + // Time allowed to write a message to the peer. + writeWait = 10 * time.Second + + // Maximum message size allowed from peer. + maxMessageSize = 8192 + + // Time allowed to read the next pong message from the peer. + pongWait = 60 * time.Second + + // Send pings to peer with this period. Must be less than pongWait. + pingPeriod = (pongWait * 9) / 10 +) + +func pumpStdin(ws *websocket.Conn, w io.Writer) { + defer ws.Close() + ws.SetReadLimit(maxMessageSize) + ws.SetReadDeadline(time.Now().Add(pongWait)) + ws.SetPongHandler(func(string) error { ws.SetReadDeadline(time.Now().Add(pongWait)); return nil }) + for { + _, message, err := ws.ReadMessage() + if err != nil { + break + } + message = append(message, '\n') + if _, err := w.Write(message); err != nil { + break + } + } +} + +func pumpStdout(ws *websocket.Conn, r io.Reader, done chan struct{}) { + defer func() { + ws.Close() + close(done) + }() + s := bufio.NewScanner(r) + for s.Scan() { + ws.SetWriteDeadline(time.Now().Add(writeWait)) + if err := ws.WriteMessage(websocket.TextMessage, s.Bytes()); err != nil { + break + } + } + if s.Err() != nil { + log.Println("scan:", s.Err()) + } +} + +func ping(ws *websocket.Conn, done chan struct{}) { + ticker := time.NewTicker(pingPeriod) + defer ticker.Stop() + for { + select { + case <-ticker.C: + if err := ws.WriteControl(websocket.PingMessage, []byte{}, time.Now().Add(writeWait)); err != nil { + log.Println("ping:", err) + } + case <-done: + return + } + } +} + +func internalError(ws *websocket.Conn, msg string, err error) { + log.Println(msg, err) + ws.WriteMessage(websocket.TextMessage, []byte("Internal server error.")) +} + +var upgrader = websocket.Upgrader{} + +func serveWs(w http.ResponseWriter, r *http.Request) { + ws, err := upgrader.Upgrade(w, r, nil) + if err != nil { + log.Println("upgrade:", err) + return + } + + defer ws.Close() + + outr, outw, err := os.Pipe() + if err != nil { + internalError(ws, "stdout:", err) + return + } + defer outr.Close() + defer outw.Close() + + inr, inw, err := os.Pipe() + if err != nil { + internalError(ws, "stdin:", err) + return + } + defer inr.Close() + defer inw.Close() + + proc, err := os.StartProcess(cmdPath, flag.Args(), &os.ProcAttr{ + Files: []*os.File{inr, outw, outw}, + }) + if err != nil { + internalError(ws, "start:", err) + return + } + + inr.Close() + outw.Close() + + stdoutDone := make(chan struct{}) + go pumpStdout(ws, outr, stdoutDone) + go ping(ws, stdoutDone) + + pumpStdin(ws, inw) + + // Some commands will exit when stdin is closed. + inw.Close() + + // Other commands need a bonk on the head. + if err := proc.Signal(os.Interrupt); err != nil { + log.Println("inter:", err) + } + + select { + case <-stdoutDone: + case <-time.After(time.Second): + // A bigger bonk on the head. + if err := proc.Signal(os.Kill); err != nil { + log.Println("term:", err) + } + <-stdoutDone + } + + if _, err := proc.Wait(); err != nil { + log.Println("wait:", err) + } +} + +func serveHome(w http.ResponseWriter, r *http.Request) { + if r.URL.Path != "/" { + http.Error(w, "Not found", 404) + return + } + if r.Method != "GET" { + http.Error(w, "Method not allowed", 405) + return + } + w.Header().Set("Content-Type", "text/html; charset=utf-8") + homeTempl.Execute(w, r.Host) +} + +func main() { + flag.Parse() + if len(flag.Args()) < 1 { + log.Fatal("must specify at least one argument") + } + var err error + cmdPath, err = exec.LookPath(flag.Args()[0]) + if err != nil { + log.Fatal(err) + } + http.HandleFunc("/", serveHome) + http.HandleFunc("/ws", serveWs) + log.Fatal(http.ListenAndServe(*addr, nil)) +} diff --git a/Godeps/_workspace/src/github.com/gorilla/websocket/examples/echo/README.md b/Godeps/_workspace/src/github.com/gorilla/websocket/examples/echo/README.md new file mode 100644 index 000000000..6ad79ed76 --- /dev/null +++ b/Godeps/_workspace/src/github.com/gorilla/websocket/examples/echo/README.md @@ -0,0 +1,17 @@ +# Client and server example + +This example shows a simple client and server. + +The server echoes messages sent to it. The client sends a message every second +and prints all messages received. + +To run the example, start the server: + + $ go run server.go + +Next, start the client: + + $ go run client.go + +The server includes a simple web client. To use the client, open +http://127.0.0.1:8080 in the browser and follow the instructions on the page. diff --git a/Godeps/_workspace/src/github.com/gorilla/websocket/examples/echo/client.go b/Godeps/_workspace/src/github.com/gorilla/websocket/examples/echo/client.go new file mode 100644 index 000000000..45a023175 --- /dev/null +++ b/Godeps/_workspace/src/github.com/gorilla/websocket/examples/echo/client.go @@ -0,0 +1,55 @@ +// Copyright 2015 The Gorilla WebSocket Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +package main + +import ( + "flag" + "log" + "net/url" + "time" + + "github.com/gorilla/websocket" +) + +var addr = flag.String("addr", "localhost:8080", "http service address") + +func main() { + flag.Parse() + log.SetFlags(0) + + u := url.URL{Scheme: "ws", Host: *addr, Path: "/echo"} + log.Printf("connecting to %s", u.String()) + + c, _, err := websocket.DefaultDialer.Dial(u.String(), nil) + if err != nil { + log.Fatal("dial:", err) + } + defer c.Close() + + go func() { + defer c.Close() + for { + _, message, err := c.ReadMessage() + if err != nil { + log.Println("read:", err) + break + } + log.Printf("recv: %s", message) + } + }() + + ticker := time.NewTicker(time.Second) + defer ticker.Stop() + + for t := range ticker.C { + err := c.WriteMessage(websocket.TextMessage, []byte(t.String())) + if err != nil { + log.Println("write:", err) + break + } + } +} diff --git a/Godeps/_workspace/src/github.com/gorilla/websocket/examples/echo/server.go b/Godeps/_workspace/src/github.com/gorilla/websocket/examples/echo/server.go new file mode 100644 index 000000000..a685b0974 --- /dev/null +++ b/Godeps/_workspace/src/github.com/gorilla/websocket/examples/echo/server.go @@ -0,0 +1,132 @@ +// Copyright 2015 The Gorilla WebSocket Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +package main + +import ( + "flag" + "html/template" + "log" + "net/http" + + "github.com/gorilla/websocket" +) + +var addr = flag.String("addr", "localhost:8080", "http service address") + +var upgrader = websocket.Upgrader{} // use default options + +func echo(w http.ResponseWriter, r *http.Request) { + c, err := upgrader.Upgrade(w, r, nil) + if err != nil { + log.Print("upgrade:", err) + return + } + defer c.Close() + for { + mt, message, err := c.ReadMessage() + if err != nil { + log.Println("read:", err) + break + } + log.Printf("recv: %s", message) + err = c.WriteMessage(mt, message) + if err != nil { + log.Println("write:", err) + break + } + } +} + +func home(w http.ResponseWriter, r *http.Request) { + homeTemplate.Execute(w, "ws://"+r.Host+"/echo") +} + +func main() { + flag.Parse() + log.SetFlags(0) + http.HandleFunc("/echo", echo) + http.HandleFunc("/", home) + log.Fatal(http.ListenAndServe(*addr, nil)) +} + +var homeTemplate = template.Must(template.New("").Parse(` +<!DOCTYPE html> +<head> +<meta charset="utf-8"> +<script> +window.addEventListener("load", function(evt) { + + var output = document.getElementById("output"); + var input = document.getElementById("input"); + var ws; + + var print = function(message) { + var d = document.createElement("div"); + d.innerHTML = message; + output.appendChild(d); + }; + + document.getElementById("open").onclick = function(evt) { + if (ws) { + return false; + } + ws = new WebSocket("{{.}}"); + ws.onopen = function(evt) { + print("OPEN"); + } + ws.onclose = function(evt) { + print("CLOSE"); + ws = null; + } + ws.onmessage = function(evt) { + print("RESPONSE: " + evt.data); + } + ws.onerror = function(evt) { + print("ERROR: " + evt.data); + } + return false; + }; + + document.getElementById("send").onclick = function(evt) { + if (!ws) { + return false; + } + print("SEND: " + input.value); + ws.send(input.value); + return false; + }; + + document.getElementById("close").onclick = function(evt) { + if (!ws) { + return false; + } + ws.close(); + return false; + }; + +}); +</script> +</head> +<body> +<table> +<tr><td valign="top" width="50%"> +<p>Click "Open" to create a connection to the server, +"Send" to send a message to the server and "Close" to close the connection. +You can change the message and send multiple times. +<p> +<form> +<button id="open">Open</button> +<button id="close">Close</button> +<p><input id="input" type="text" value="Hello world!"> +<button id="send">Send</button> +</form> +</td><td valign="top" width="50%"> +<div id="output"></div> +</td></tr></table> +</body> +</html> +`)) diff --git a/Godeps/_workspace/src/github.com/gorilla/websocket/json.go b/Godeps/_workspace/src/github.com/gorilla/websocket/json.go index 18e62f225..4f0e36875 100644 --- a/Godeps/_workspace/src/github.com/gorilla/websocket/json.go +++ b/Godeps/_workspace/src/github.com/gorilla/websocket/json.go @@ -48,9 +48,7 @@ func (c *Conn) ReadJSON(v interface{}) error { } err = json.NewDecoder(r).Decode(v) if err == io.EOF { - // Decode returns io.EOF when the message is empty or all whitespace. - // Convert to io.ErrUnexpectedEOF so that application can distinguish - // between an error reading the JSON value and the connection closing. + // One value is expected in the message. err = io.ErrUnexpectedEOF } return err diff --git a/Godeps/_workspace/src/github.com/gorilla/websocket/json_test.go b/Godeps/_workspace/src/github.com/gorilla/websocket/json_test.go index 1b7a5ec8b..61100e481 100644 --- a/Godeps/_workspace/src/github.com/gorilla/websocket/json_test.go +++ b/Godeps/_workspace/src/github.com/gorilla/websocket/json_test.go @@ -38,7 +38,7 @@ func TestJSON(t *testing.T) { } } -func TestPartialJsonRead(t *testing.T) { +func TestPartialJSONRead(t *testing.T) { var buf bytes.Buffer c := fakeNetConn{&buf, &buf} wc := newConn(c, true, 1024, 1024) @@ -87,7 +87,7 @@ func TestPartialJsonRead(t *testing.T) { } err = rc.ReadJSON(&v) - if err != io.EOF { + if _, ok := err.(*CloseError); !ok { t.Error("final", err) } } diff --git a/Godeps/_workspace/src/github.com/gorilla/websocket/server.go b/Godeps/_workspace/src/github.com/gorilla/websocket/server.go index e56a00493..3a9805f02 100644 --- a/Godeps/_workspace/src/github.com/gorilla/websocket/server.go +++ b/Godeps/_workspace/src/github.com/gorilla/websocket/server.go @@ -93,6 +93,9 @@ func (u *Upgrader) selectSubprotocol(r *http.Request, responseHeader http.Header // request. Use the responseHeader to specify cookies (Set-Cookie) and the // application negotiated subprotocol (Sec-Websocket-Protocol). func (u *Upgrader) Upgrade(w http.ResponseWriter, r *http.Request, responseHeader http.Header) (*Conn, error) { + if r.Method != "GET" { + return u.returnError(w, r, http.StatusMethodNotAllowed, "websocket: method not GET") + } if values := r.Header["Sec-Websocket-Version"]; len(values) == 0 || values[0] != "13" { return u.returnError(w, r, http.StatusBadRequest, "websocket: version != 13") } diff --git a/Godeps/_workspace/src/github.com/lib/pq/.travis.yml b/Godeps/_workspace/src/github.com/lib/pq/.travis.yml index 9bf683730..6b8eb405b 100644 --- a/Godeps/_workspace/src/github.com/lib/pq/.travis.yml +++ b/Godeps/_workspace/src/github.com/lib/pq/.travis.yml @@ -5,6 +5,7 @@ go: - 1.2 - 1.3 - 1.4 + - 1.5 - tip before_install: diff --git a/Godeps/_workspace/src/github.com/lib/pq/buf.go b/Godeps/_workspace/src/github.com/lib/pq/buf.go index e7ff57771..666b0012a 100644 --- a/Godeps/_workspace/src/github.com/lib/pq/buf.go +++ b/Godeps/_workspace/src/github.com/lib/pq/buf.go @@ -21,6 +21,7 @@ func (b *readBuf) oid() (n oid.Oid) { return } +// N.B: this is actually an unsigned 16-bit integer, unlike int32 func (b *readBuf) int16() (n int) { n = int(binary.BigEndian.Uint16(*b)) *b = (*b)[2:] diff --git a/Godeps/_workspace/src/github.com/lib/pq/conn.go b/Godeps/_workspace/src/github.com/lib/pq/conn.go index 40a630d74..ce661d66e 100644 --- a/Godeps/_workspace/src/github.com/lib/pq/conn.go +++ b/Godeps/_workspace/src/github.com/lib/pq/conn.go @@ -1369,6 +1369,10 @@ func (rs *rows) Next(dest []driver.Value) (err error) { return io.EOF case 'D': n := rs.rb.int16() + if err != nil { + conn.bad = true + errorf("unexpected DataRow after error %s", err) + } if n < len(dest) { dest = dest[:n] } @@ -1622,6 +1626,10 @@ func (cn *conn) readExecuteResponse(protocolState string) (res driver.Result, co t, r := cn.recv1() switch t { case 'C': + if err != nil { + cn.bad = true + errorf("unexpected CommandComplete after error %s", err) + } res, commandTag = cn.parseComplete(r.string()) case 'Z': cn.processReadyForQuery(r) @@ -1629,6 +1637,10 @@ func (cn *conn) readExecuteResponse(protocolState string) (res driver.Result, co case 'E': err = parseError(r) case 'T', 'D', 'I': + if err != nil { + cn.bad = true + errorf("unexpected %q after error %s", t, err) + } // ignore any results default: cn.bad = true diff --git a/Godeps/_workspace/src/github.com/lib/pq/copy.go b/Godeps/_workspace/src/github.com/lib/pq/copy.go index e44fa48a5..101f11133 100644 --- a/Godeps/_workspace/src/github.com/lib/pq/copy.go +++ b/Godeps/_workspace/src/github.com/lib/pq/copy.go @@ -215,9 +215,7 @@ func (ci *copyin) Exec(v []driver.Value) (r driver.Result, err error) { } if len(v) == 0 { - err = ci.Close() - ci.closed = true - return nil, err + return nil, ci.Close() } numValues := len(v) @@ -240,9 +238,10 @@ func (ci *copyin) Exec(v []driver.Value) (r driver.Result, err error) { } func (ci *copyin) Close() (err error) { - if ci.closed { - return errCopyInClosed + if ci.closed { // Don't do anything, we're already closed + return nil } + ci.closed = true if ci.cn.bad { return driver.ErrBadConn diff --git a/Godeps/_workspace/src/github.com/mssola/user_agent/bot.go b/Godeps/_workspace/src/github.com/mssola/user_agent/bot.go index cc993d8fe..df0b6ccda 100644 --- a/Godeps/_workspace/src/github.com/mssola/user_agent/bot.go +++ b/Godeps/_workspace/src/github.com/mssola/user_agent/bot.go @@ -9,6 +9,8 @@ import ( "strings" ) +var botFromSiteRegexp = regexp.MustCompile("http://.+\\.\\w+") + // Get the name of the bot from the website that may be in the given comment. If // there is no website in the comment, then an empty string is returned. func getFromSite(comment []string) string { @@ -23,8 +25,7 @@ func getFromSite(comment []string) string { } // Pick the site. - re := regexp.MustCompile("http://.+\\.\\w+") - results := re.FindStringSubmatch(comment[idx]) + results := botFromSiteRegexp.FindStringSubmatch(comment[idx]) if len(results) == 1 { // If it's a simple comment, just return the name of the site. if idx == 0 { diff --git a/Godeps/_workspace/src/github.com/mssola/user_agent/browser.go b/Godeps/_workspace/src/github.com/mssola/user_agent/browser.go index c5612db7b..a45c8ab7f 100644 --- a/Godeps/_workspace/src/github.com/mssola/user_agent/browser.go +++ b/Godeps/_workspace/src/github.com/mssola/user_agent/browser.go @@ -9,6 +9,8 @@ import ( "strings" ) +var ie11Regexp = regexp.MustCompile("^rv:(.+)$") + // A struct containing all the information that we might be // interested from the browser. type Browser struct { @@ -75,9 +77,8 @@ func (p *UserAgent) detectBrowser(sections []section) { // This is the new user agent from Internet Explorer 11. p.browser.Engine = "Trident" p.browser.Name = "Internet Explorer" - reg, _ := regexp.Compile("^rv:(.+)$") for _, c := range sections[0].comment { - version := reg.FindStringSubmatch(c) + version := ie11Regexp.FindStringSubmatch(c) if len(version) > 0 { p.browser.Version = version[1] return diff --git a/Godeps/_workspace/src/github.com/pborman/uuid/CONTRIBUTORS b/Godeps/_workspace/src/github.com/pborman/uuid/CONTRIBUTORS new file mode 100644 index 000000000..b382a04ed --- /dev/null +++ b/Godeps/_workspace/src/github.com/pborman/uuid/CONTRIBUTORS @@ -0,0 +1 @@ +Paul Borman <borman@google.com> diff --git a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/LICENSE b/Godeps/_workspace/src/github.com/pborman/uuid/LICENSE index 5dc68268d..5dc68268d 100644 --- a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/LICENSE +++ b/Godeps/_workspace/src/github.com/pborman/uuid/LICENSE diff --git a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/dce.go b/Godeps/_workspace/src/github.com/pborman/uuid/dce.go index 50a0f2d09..50a0f2d09 100644 --- a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/dce.go +++ b/Godeps/_workspace/src/github.com/pborman/uuid/dce.go diff --git a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/doc.go b/Godeps/_workspace/src/github.com/pborman/uuid/doc.go index d8bd013e6..d8bd013e6 100644 --- a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/doc.go +++ b/Godeps/_workspace/src/github.com/pborman/uuid/doc.go diff --git a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/hash.go b/Godeps/_workspace/src/github.com/pborman/uuid/hash.go index cdd4192fd..cdd4192fd 100644 --- a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/hash.go +++ b/Godeps/_workspace/src/github.com/pborman/uuid/hash.go diff --git a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/json.go b/Godeps/_workspace/src/github.com/pborman/uuid/json.go index 760580a50..760580a50 100644 --- a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/json.go +++ b/Godeps/_workspace/src/github.com/pborman/uuid/json.go diff --git a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/json_test.go b/Godeps/_workspace/src/github.com/pborman/uuid/json_test.go index b5eae0924..b5eae0924 100644 --- a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/json_test.go +++ b/Godeps/_workspace/src/github.com/pborman/uuid/json_test.go diff --git a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/node.go b/Godeps/_workspace/src/github.com/pborman/uuid/node.go index dd0a8ac18..dd0a8ac18 100644 --- a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/node.go +++ b/Godeps/_workspace/src/github.com/pborman/uuid/node.go diff --git a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/seq_test.go b/Godeps/_workspace/src/github.com/pborman/uuid/seq_test.go index 3b3d1430d..3b3d1430d 100644 --- a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/seq_test.go +++ b/Godeps/_workspace/src/github.com/pborman/uuid/seq_test.go diff --git a/Godeps/_workspace/src/github.com/pborman/uuid/sql.go b/Godeps/_workspace/src/github.com/pborman/uuid/sql.go new file mode 100644 index 000000000..2d7679e2a --- /dev/null +++ b/Godeps/_workspace/src/github.com/pborman/uuid/sql.go @@ -0,0 +1,40 @@ +// Copyright 2015 Google Inc. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package uuid + +import ( + "errors" + "fmt" +) + +// Scan implements sql.Scanner so UUIDs can be read from databases transparently +// Currently, database types that map to string and []byte are supported. Please +// consult database-specific driver documentation for matching types. +func (uuid *UUID) Scan(src interface{}) error { + switch src.(type) { + case string: + // see uuid.Parse for required string format + parsed := Parse(src.(string)) + + if parsed == nil { + return errors.New("Scan: invalid UUID format") + } + + *uuid = parsed + case []byte: + // assumes a simple slice of bytes, just check validity and store + u := UUID(src.([]byte)) + + if u.Variant() == Invalid { + return errors.New("Scan: invalid UUID format") + } + + *uuid = u + default: + return fmt.Errorf("Scan: unable to scan type %T into UUID", src) + } + + return nil +} diff --git a/Godeps/_workspace/src/github.com/pborman/uuid/sql_test.go b/Godeps/_workspace/src/github.com/pborman/uuid/sql_test.go new file mode 100644 index 000000000..d643567ee --- /dev/null +++ b/Godeps/_workspace/src/github.com/pborman/uuid/sql_test.go @@ -0,0 +1,53 @@ +// Copyright 2015 Google Inc. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package uuid + +import ( + "strings" + "testing" +) + +func TestScan(t *testing.T) { + var stringTest string = "f47ac10b-58cc-0372-8567-0e02b2c3d479" + var byteTest []byte = Parse(stringTest) + var badTypeTest int = 6 + var invalidTest string = "f47ac10b-58cc-0372-8567-0e02b2c3d4" + var invalidByteTest []byte = Parse(invalidTest) + + var uuid UUID + err := (&uuid).Scan(stringTest) + if err != nil { + t.Fatal(err) + } + + err = (&uuid).Scan(byteTest) + if err != nil { + t.Fatal(err) + } + + err = (&uuid).Scan(badTypeTest) + if err == nil { + t.Error("int correctly parsed and shouldn't have") + } + if !strings.Contains(err.Error(), "unable to scan type") { + t.Error("attempting to parse an int returned an incorrect error message") + } + + err = (&uuid).Scan(invalidTest) + if err == nil { + t.Error("invalid uuid was parsed without error") + } + if !strings.Contains(err.Error(), "invalid UUID") { + t.Error("attempting to parse an invalid UUID returned an incorrect error message") + } + + err = (&uuid).Scan(invalidByteTest) + if err == nil { + t.Error("invalid byte uuid was parsed without error") + } + if !strings.Contains(err.Error(), "invalid UUID") { + t.Error("attempting to parse an invalid byte UUID returned an incorrect error message") + } +} diff --git a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/time.go b/Godeps/_workspace/src/github.com/pborman/uuid/time.go index 7ebc9bef1..7ebc9bef1 100644 --- a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/time.go +++ b/Godeps/_workspace/src/github.com/pborman/uuid/time.go diff --git a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/util.go b/Godeps/_workspace/src/github.com/pborman/uuid/util.go index de40b102c..de40b102c 100644 --- a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/util.go +++ b/Godeps/_workspace/src/github.com/pborman/uuid/util.go diff --git a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/uuid.go b/Godeps/_workspace/src/github.com/pborman/uuid/uuid.go index 2920fae63..2920fae63 100644 --- a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/uuid.go +++ b/Godeps/_workspace/src/github.com/pborman/uuid/uuid.go diff --git a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/uuid_test.go b/Godeps/_workspace/src/github.com/pborman/uuid/uuid_test.go index 417ebeb26..417ebeb26 100644 --- a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/uuid_test.go +++ b/Godeps/_workspace/src/github.com/pborman/uuid/uuid_test.go diff --git a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/version1.go b/Godeps/_workspace/src/github.com/pborman/uuid/version1.go index 0127eacfa..0127eacfa 100644 --- a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/version1.go +++ b/Godeps/_workspace/src/github.com/pborman/uuid/version1.go diff --git a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/version4.go b/Godeps/_workspace/src/github.com/pborman/uuid/version4.go index b3d4a368d..b3d4a368d 100644 --- a/Godeps/_workspace/src/code.google.com/p/go-uuid/uuid/version4.go +++ b/Godeps/_workspace/src/github.com/pborman/uuid/version4.go diff --git a/Godeps/_workspace/src/github.com/pmezard/go-difflib/difflib/difflib.go b/Godeps/_workspace/src/github.com/pmezard/go-difflib/difflib/difflib.go new file mode 100644 index 000000000..64cc40fe1 --- /dev/null +++ b/Godeps/_workspace/src/github.com/pmezard/go-difflib/difflib/difflib.go @@ -0,0 +1,758 @@ +// Package difflib is a partial port of Python difflib module. +// +// It provides tools to compare sequences of strings and generate textual diffs. +// +// The following class and functions have been ported: +// +// - SequenceMatcher +// +// - unified_diff +// +// - context_diff +// +// Getting unified diffs was the main goal of the port. Keep in mind this code +// is mostly suitable to output text differences in a human friendly way, there +// are no guarantees generated diffs are consumable by patch(1). +package difflib + +import ( + "bufio" + "bytes" + "fmt" + "io" + "strings" +) + +func min(a, b int) int { + if a < b { + return a + } + return b +} + +func max(a, b int) int { + if a > b { + return a + } + return b +} + +func calculateRatio(matches, length int) float64 { + if length > 0 { + return 2.0 * float64(matches) / float64(length) + } + return 1.0 +} + +type Match struct { + A int + B int + Size int +} + +type OpCode struct { + Tag byte + I1 int + I2 int + J1 int + J2 int +} + +// SequenceMatcher compares sequence of strings. The basic +// algorithm predates, and is a little fancier than, an algorithm +// published in the late 1980's by Ratcliff and Obershelp under the +// hyperbolic name "gestalt pattern matching". The basic idea is to find +// the longest contiguous matching subsequence that contains no "junk" +// elements (R-O doesn't address junk). The same idea is then applied +// recursively to the pieces of the sequences to the left and to the right +// of the matching subsequence. This does not yield minimal edit +// sequences, but does tend to yield matches that "look right" to people. +// +// SequenceMatcher tries to compute a "human-friendly diff" between two +// sequences. Unlike e.g. UNIX(tm) diff, the fundamental notion is the +// longest *contiguous* & junk-free matching subsequence. That's what +// catches peoples' eyes. The Windows(tm) windiff has another interesting +// notion, pairing up elements that appear uniquely in each sequence. +// That, and the method here, appear to yield more intuitive difference +// reports than does diff. This method appears to be the least vulnerable +// to synching up on blocks of "junk lines", though (like blank lines in +// ordinary text files, or maybe "<P>" lines in HTML files). That may be +// because this is the only method of the 3 that has a *concept* of +// "junk" <wink>. +// +// Timing: Basic R-O is cubic time worst case and quadratic time expected +// case. SequenceMatcher is quadratic time for the worst case and has +// expected-case behavior dependent in a complicated way on how many +// elements the sequences have in common; best case time is linear. +type SequenceMatcher struct { + a []string + b []string + b2j map[string][]int + IsJunk func(string) bool + autoJunk bool + bJunk map[string]struct{} + matchingBlocks []Match + fullBCount map[string]int + bPopular map[string]struct{} + opCodes []OpCode +} + +func NewMatcher(a, b []string) *SequenceMatcher { + m := SequenceMatcher{autoJunk: true} + m.SetSeqs(a, b) + return &m +} + +func NewMatcherWithJunk(a, b []string, autoJunk bool, + isJunk func(string) bool) *SequenceMatcher { + + m := SequenceMatcher{IsJunk: isJunk, autoJunk: autoJunk} + m.SetSeqs(a, b) + return &m +} + +// Set two sequences to be compared. +func (m *SequenceMatcher) SetSeqs(a, b []string) { + m.SetSeq1(a) + m.SetSeq2(b) +} + +// Set the first sequence to be compared. The second sequence to be compared is +// not changed. +// +// SequenceMatcher computes and caches detailed information about the second +// sequence, so if you want to compare one sequence S against many sequences, +// use .SetSeq2(s) once and call .SetSeq1(x) repeatedly for each of the other +// sequences. +// +// See also SetSeqs() and SetSeq2(). +func (m *SequenceMatcher) SetSeq1(a []string) { + if &a == &m.a { + return + } + m.a = a + m.matchingBlocks = nil + m.opCodes = nil +} + +// Set the second sequence to be compared. The first sequence to be compared is +// not changed. +func (m *SequenceMatcher) SetSeq2(b []string) { + if &b == &m.b { + return + } + m.b = b + m.matchingBlocks = nil + m.opCodes = nil + m.fullBCount = nil + m.chainB() +} + +func (m *SequenceMatcher) chainB() { + // Populate line -> index mapping + b2j := map[string][]int{} + for i, s := range m.b { + indices := b2j[s] + indices = append(indices, i) + b2j[s] = indices + } + + // Purge junk elements + m.bJunk = map[string]struct{}{} + if m.IsJunk != nil { + junk := m.bJunk + for s, _ := range b2j { + if m.IsJunk(s) { + junk[s] = struct{}{} + } + } + for s, _ := range junk { + delete(b2j, s) + } + } + + // Purge remaining popular elements + popular := map[string]struct{}{} + n := len(m.b) + if m.autoJunk && n >= 200 { + ntest := n/100 + 1 + for s, indices := range b2j { + if len(indices) > ntest { + popular[s] = struct{}{} + } + } + for s, _ := range popular { + delete(b2j, s) + } + } + m.bPopular = popular + m.b2j = b2j +} + +func (m *SequenceMatcher) isBJunk(s string) bool { + _, ok := m.bJunk[s] + return ok +} + +// Find longest matching block in a[alo:ahi] and b[blo:bhi]. +// +// If IsJunk is not defined: +// +// Return (i,j,k) such that a[i:i+k] is equal to b[j:j+k], where +// alo <= i <= i+k <= ahi +// blo <= j <= j+k <= bhi +// and for all (i',j',k') meeting those conditions, +// k >= k' +// i <= i' +// and if i == i', j <= j' +// +// In other words, of all maximal matching blocks, return one that +// starts earliest in a, and of all those maximal matching blocks that +// start earliest in a, return the one that starts earliest in b. +// +// If IsJunk is defined, first the longest matching block is +// determined as above, but with the additional restriction that no +// junk element appears in the block. Then that block is extended as +// far as possible by matching (only) junk elements on both sides. So +// the resulting block never matches on junk except as identical junk +// happens to be adjacent to an "interesting" match. +// +// If no blocks match, return (alo, blo, 0). +func (m *SequenceMatcher) findLongestMatch(alo, ahi, blo, bhi int) Match { + // CAUTION: stripping common prefix or suffix would be incorrect. + // E.g., + // ab + // acab + // Longest matching block is "ab", but if common prefix is + // stripped, it's "a" (tied with "b"). UNIX(tm) diff does so + // strip, so ends up claiming that ab is changed to acab by + // inserting "ca" in the middle. That's minimal but unintuitive: + // "it's obvious" that someone inserted "ac" at the front. + // Windiff ends up at the same place as diff, but by pairing up + // the unique 'b's and then matching the first two 'a's. + besti, bestj, bestsize := alo, blo, 0 + + // find longest junk-free match + // during an iteration of the loop, j2len[j] = length of longest + // junk-free match ending with a[i-1] and b[j] + j2len := map[int]int{} + for i := alo; i != ahi; i++ { + // look at all instances of a[i] in b; note that because + // b2j has no junk keys, the loop is skipped if a[i] is junk + newj2len := map[int]int{} + for _, j := range m.b2j[m.a[i]] { + // a[i] matches b[j] + if j < blo { + continue + } + if j >= bhi { + break + } + k := j2len[j-1] + 1 + newj2len[j] = k + if k > bestsize { + besti, bestj, bestsize = i-k+1, j-k+1, k + } + } + j2len = newj2len + } + + // Extend the best by non-junk elements on each end. In particular, + // "popular" non-junk elements aren't in b2j, which greatly speeds + // the inner loop above, but also means "the best" match so far + // doesn't contain any junk *or* popular non-junk elements. + for besti > alo && bestj > blo && !m.isBJunk(m.b[bestj-1]) && + m.a[besti-1] == m.b[bestj-1] { + besti, bestj, bestsize = besti-1, bestj-1, bestsize+1 + } + for besti+bestsize < ahi && bestj+bestsize < bhi && + !m.isBJunk(m.b[bestj+bestsize]) && + m.a[besti+bestsize] == m.b[bestj+bestsize] { + bestsize += 1 + } + + // Now that we have a wholly interesting match (albeit possibly + // empty!), we may as well suck up the matching junk on each + // side of it too. Can't think of a good reason not to, and it + // saves post-processing the (possibly considerable) expense of + // figuring out what to do with it. In the case of an empty + // interesting match, this is clearly the right thing to do, + // because no other kind of match is possible in the regions. + for besti > alo && bestj > blo && m.isBJunk(m.b[bestj-1]) && + m.a[besti-1] == m.b[bestj-1] { + besti, bestj, bestsize = besti-1, bestj-1, bestsize+1 + } + for besti+bestsize < ahi && bestj+bestsize < bhi && + m.isBJunk(m.b[bestj+bestsize]) && + m.a[besti+bestsize] == m.b[bestj+bestsize] { + bestsize += 1 + } + + return Match{A: besti, B: bestj, Size: bestsize} +} + +// Return list of triples describing matching subsequences. +// +// Each triple is of the form (i, j, n), and means that +// a[i:i+n] == b[j:j+n]. The triples are monotonically increasing in +// i and in j. It's also guaranteed that if (i, j, n) and (i', j', n') are +// adjacent triples in the list, and the second is not the last triple in the +// list, then i+n != i' or j+n != j'. IOW, adjacent triples never describe +// adjacent equal blocks. +// +// The last triple is a dummy, (len(a), len(b), 0), and is the only +// triple with n==0. +func (m *SequenceMatcher) GetMatchingBlocks() []Match { + if m.matchingBlocks != nil { + return m.matchingBlocks + } + + var matchBlocks func(alo, ahi, blo, bhi int, matched []Match) []Match + matchBlocks = func(alo, ahi, blo, bhi int, matched []Match) []Match { + match := m.findLongestMatch(alo, ahi, blo, bhi) + i, j, k := match.A, match.B, match.Size + if match.Size > 0 { + if alo < i && blo < j { + matched = matchBlocks(alo, i, blo, j, matched) + } + matched = append(matched, match) + if i+k < ahi && j+k < bhi { + matched = matchBlocks(i+k, ahi, j+k, bhi, matched) + } + } + return matched + } + matched := matchBlocks(0, len(m.a), 0, len(m.b), nil) + + // It's possible that we have adjacent equal blocks in the + // matching_blocks list now. + nonAdjacent := []Match{} + i1, j1, k1 := 0, 0, 0 + for _, b := range matched { + // Is this block adjacent to i1, j1, k1? + i2, j2, k2 := b.A, b.B, b.Size + if i1+k1 == i2 && j1+k1 == j2 { + // Yes, so collapse them -- this just increases the length of + // the first block by the length of the second, and the first + // block so lengthened remains the block to compare against. + k1 += k2 + } else { + // Not adjacent. Remember the first block (k1==0 means it's + // the dummy we started with), and make the second block the + // new block to compare against. + if k1 > 0 { + nonAdjacent = append(nonAdjacent, Match{i1, j1, k1}) + } + i1, j1, k1 = i2, j2, k2 + } + } + if k1 > 0 { + nonAdjacent = append(nonAdjacent, Match{i1, j1, k1}) + } + + nonAdjacent = append(nonAdjacent, Match{len(m.a), len(m.b), 0}) + m.matchingBlocks = nonAdjacent + return m.matchingBlocks +} + +// Return list of 5-tuples describing how to turn a into b. +// +// Each tuple is of the form (tag, i1, i2, j1, j2). The first tuple +// has i1 == j1 == 0, and remaining tuples have i1 == the i2 from the +// tuple preceding it, and likewise for j1 == the previous j2. +// +// The tags are characters, with these meanings: +// +// 'r' (replace): a[i1:i2] should be replaced by b[j1:j2] +// +// 'd' (delete): a[i1:i2] should be deleted, j1==j2 in this case. +// +// 'i' (insert): b[j1:j2] should be inserted at a[i1:i1], i1==i2 in this case. +// +// 'e' (equal): a[i1:i2] == b[j1:j2] +func (m *SequenceMatcher) GetOpCodes() []OpCode { + if m.opCodes != nil { + return m.opCodes + } + i, j := 0, 0 + matching := m.GetMatchingBlocks() + opCodes := make([]OpCode, 0, len(matching)) + for _, m := range matching { + // invariant: we've pumped out correct diffs to change + // a[:i] into b[:j], and the next matching block is + // a[ai:ai+size] == b[bj:bj+size]. So we need to pump + // out a diff to change a[i:ai] into b[j:bj], pump out + // the matching block, and move (i,j) beyond the match + ai, bj, size := m.A, m.B, m.Size + tag := byte(0) + if i < ai && j < bj { + tag = 'r' + } else if i < ai { + tag = 'd' + } else if j < bj { + tag = 'i' + } + if tag > 0 { + opCodes = append(opCodes, OpCode{tag, i, ai, j, bj}) + } + i, j = ai+size, bj+size + // the list of matching blocks is terminated by a + // sentinel with size 0 + if size > 0 { + opCodes = append(opCodes, OpCode{'e', ai, i, bj, j}) + } + } + m.opCodes = opCodes + return m.opCodes +} + +// Isolate change clusters by eliminating ranges with no changes. +// +// Return a generator of groups with up to n lines of context. +// Each group is in the same format as returned by GetOpCodes(). +func (m *SequenceMatcher) GetGroupedOpCodes(n int) [][]OpCode { + if n < 0 { + n = 3 + } + codes := m.GetOpCodes() + if len(codes) == 0 { + codes = []OpCode{OpCode{'e', 0, 1, 0, 1}} + } + // Fixup leading and trailing groups if they show no changes. + if codes[0].Tag == 'e' { + c := codes[0] + i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2 + codes[0] = OpCode{c.Tag, max(i1, i2-n), i2, max(j1, j2-n), j2} + } + if codes[len(codes)-1].Tag == 'e' { + c := codes[len(codes)-1] + i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2 + codes[len(codes)-1] = OpCode{c.Tag, i1, min(i2, i1+n), j1, min(j2, j1+n)} + } + nn := n + n + groups := [][]OpCode{} + group := []OpCode{} + for _, c := range codes { + i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2 + // End the current group and start a new one whenever + // there is a large range with no changes. + if c.Tag == 'e' && i2-i1 > nn { + group = append(group, OpCode{c.Tag, i1, min(i2, i1+n), + j1, min(j2, j1+n)}) + groups = append(groups, group) + group = []OpCode{} + i1, j1 = max(i1, i2-n), max(j1, j2-n) + } + group = append(group, OpCode{c.Tag, i1, i2, j1, j2}) + } + if len(group) > 0 && !(len(group) == 1 && group[0].Tag == 'e') { + groups = append(groups, group) + } + return groups +} + +// Return a measure of the sequences' similarity (float in [0,1]). +// +// Where T is the total number of elements in both sequences, and +// M is the number of matches, this is 2.0*M / T. +// Note that this is 1 if the sequences are identical, and 0 if +// they have nothing in common. +// +// .Ratio() is expensive to compute if you haven't already computed +// .GetMatchingBlocks() or .GetOpCodes(), in which case you may +// want to try .QuickRatio() or .RealQuickRation() first to get an +// upper bound. +func (m *SequenceMatcher) Ratio() float64 { + matches := 0 + for _, m := range m.GetMatchingBlocks() { + matches += m.Size + } + return calculateRatio(matches, len(m.a)+len(m.b)) +} + +// Return an upper bound on ratio() relatively quickly. +// +// This isn't defined beyond that it is an upper bound on .Ratio(), and +// is faster to compute. +func (m *SequenceMatcher) QuickRatio() float64 { + // viewing a and b as multisets, set matches to the cardinality + // of their intersection; this counts the number of matches + // without regard to order, so is clearly an upper bound + if m.fullBCount == nil { + m.fullBCount = map[string]int{} + for _, s := range m.b { + m.fullBCount[s] = m.fullBCount[s] + 1 + } + } + + // avail[x] is the number of times x appears in 'b' less the + // number of times we've seen it in 'a' so far ... kinda + avail := map[string]int{} + matches := 0 + for _, s := range m.a { + n, ok := avail[s] + if !ok { + n = m.fullBCount[s] + } + avail[s] = n - 1 + if n > 0 { + matches += 1 + } + } + return calculateRatio(matches, len(m.a)+len(m.b)) +} + +// Return an upper bound on ratio() very quickly. +// +// This isn't defined beyond that it is an upper bound on .Ratio(), and +// is faster to compute than either .Ratio() or .QuickRatio(). +func (m *SequenceMatcher) RealQuickRatio() float64 { + la, lb := len(m.a), len(m.b) + return calculateRatio(min(la, lb), la+lb) +} + +// Convert range to the "ed" format +func formatRangeUnified(start, stop int) string { + // Per the diff spec at http://www.unix.org/single_unix_specification/ + beginning := start + 1 // lines start numbering with one + length := stop - start + if length == 1 { + return fmt.Sprintf("%d", beginning) + } + if length == 0 { + beginning -= 1 // empty ranges begin at line just before the range + } + return fmt.Sprintf("%d,%d", beginning, length) +} + +// Unified diff parameters +type UnifiedDiff struct { + A []string // First sequence lines + FromFile string // First file name + FromDate string // First file time + B []string // Second sequence lines + ToFile string // Second file name + ToDate string // Second file time + Eol string // Headers end of line, defaults to LF + Context int // Number of context lines +} + +// Compare two sequences of lines; generate the delta as a unified diff. +// +// Unified diffs are a compact way of showing line changes and a few +// lines of context. The number of context lines is set by 'n' which +// defaults to three. +// +// By default, the diff control lines (those with ---, +++, or @@) are +// created with a trailing newline. This is helpful so that inputs +// created from file.readlines() result in diffs that are suitable for +// file.writelines() since both the inputs and outputs have trailing +// newlines. +// +// For inputs that do not have trailing newlines, set the lineterm +// argument to "" so that the output will be uniformly newline free. +// +// The unidiff format normally has a header for filenames and modification +// times. Any or all of these may be specified using strings for +// 'fromfile', 'tofile', 'fromfiledate', and 'tofiledate'. +// The modification times are normally expressed in the ISO 8601 format. +func WriteUnifiedDiff(writer io.Writer, diff UnifiedDiff) error { + buf := bufio.NewWriter(writer) + defer buf.Flush() + w := func(format string, args ...interface{}) error { + _, err := buf.WriteString(fmt.Sprintf(format, args...)) + return err + } + + if len(diff.Eol) == 0 { + diff.Eol = "\n" + } + + started := false + m := NewMatcher(diff.A, diff.B) + for _, g := range m.GetGroupedOpCodes(diff.Context) { + if !started { + started = true + fromDate := "" + if len(diff.FromDate) > 0 { + fromDate = "\t" + diff.FromDate + } + toDate := "" + if len(diff.ToDate) > 0 { + toDate = "\t" + diff.ToDate + } + err := w("--- %s%s%s", diff.FromFile, fromDate, diff.Eol) + if err != nil { + return err + } + err = w("+++ %s%s%s", diff.ToFile, toDate, diff.Eol) + if err != nil { + return err + } + } + first, last := g[0], g[len(g)-1] + range1 := formatRangeUnified(first.I1, last.I2) + range2 := formatRangeUnified(first.J1, last.J2) + if err := w("@@ -%s +%s @@%s", range1, range2, diff.Eol); err != nil { + return err + } + for _, c := range g { + i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2 + if c.Tag == 'e' { + for _, line := range diff.A[i1:i2] { + if err := w(" " + line); err != nil { + return err + } + } + continue + } + if c.Tag == 'r' || c.Tag == 'd' { + for _, line := range diff.A[i1:i2] { + if err := w("-" + line); err != nil { + return err + } + } + } + if c.Tag == 'r' || c.Tag == 'i' { + for _, line := range diff.B[j1:j2] { + if err := w("+" + line); err != nil { + return err + } + } + } + } + } + return nil +} + +// Like WriteUnifiedDiff but returns the diff a string. +func GetUnifiedDiffString(diff UnifiedDiff) (string, error) { + w := &bytes.Buffer{} + err := WriteUnifiedDiff(w, diff) + return string(w.Bytes()), err +} + +// Convert range to the "ed" format. +func formatRangeContext(start, stop int) string { + // Per the diff spec at http://www.unix.org/single_unix_specification/ + beginning := start + 1 // lines start numbering with one + length := stop - start + if length == 0 { + beginning -= 1 // empty ranges begin at line just before the range + } + if length <= 1 { + return fmt.Sprintf("%d", beginning) + } + return fmt.Sprintf("%d,%d", beginning, beginning+length-1) +} + +type ContextDiff UnifiedDiff + +// Compare two sequences of lines; generate the delta as a context diff. +// +// Context diffs are a compact way of showing line changes and a few +// lines of context. The number of context lines is set by diff.Context +// which defaults to three. +// +// By default, the diff control lines (those with *** or ---) are +// created with a trailing newline. +// +// For inputs that do not have trailing newlines, set the diff.Eol +// argument to "" so that the output will be uniformly newline free. +// +// The context diff format normally has a header for filenames and +// modification times. Any or all of these may be specified using +// strings for diff.FromFile, diff.ToFile, diff.FromDate, diff.ToDate. +// The modification times are normally expressed in the ISO 8601 format. +// If not specified, the strings default to blanks. +func WriteContextDiff(writer io.Writer, diff ContextDiff) error { + buf := bufio.NewWriter(writer) + defer buf.Flush() + var diffErr error + w := func(format string, args ...interface{}) { + _, err := buf.WriteString(fmt.Sprintf(format, args...)) + if diffErr == nil && err != nil { + diffErr = err + } + } + + if len(diff.Eol) == 0 { + diff.Eol = "\n" + } + + prefix := map[byte]string{ + 'i': "+ ", + 'd': "- ", + 'r': "! ", + 'e': " ", + } + + started := false + m := NewMatcher(diff.A, diff.B) + for _, g := range m.GetGroupedOpCodes(diff.Context) { + if !started { + started = true + fromDate := "" + if len(diff.FromDate) > 0 { + fromDate = "\t" + diff.FromDate + } + toDate := "" + if len(diff.ToDate) > 0 { + toDate = "\t" + diff.ToDate + } + w("*** %s%s%s", diff.FromFile, fromDate, diff.Eol) + w("--- %s%s%s", diff.ToFile, toDate, diff.Eol) + } + + first, last := g[0], g[len(g)-1] + w("***************" + diff.Eol) + + range1 := formatRangeContext(first.I1, last.I2) + w("*** %s ****%s", range1, diff.Eol) + for _, c := range g { + if c.Tag == 'r' || c.Tag == 'd' { + for _, cc := range g { + if cc.Tag == 'i' { + continue + } + for _, line := range diff.A[cc.I1:cc.I2] { + w(prefix[cc.Tag] + line) + } + } + break + } + } + + range2 := formatRangeContext(first.J1, last.J2) + w("--- %s ----%s", range2, diff.Eol) + for _, c := range g { + if c.Tag == 'r' || c.Tag == 'i' { + for _, cc := range g { + if cc.Tag == 'd' { + continue + } + for _, line := range diff.B[cc.J1:cc.J2] { + w(prefix[cc.Tag] + line) + } + } + break + } + } + } + return diffErr +} + +// Like WriteContextDiff but returns the diff a string. +func GetContextDiffString(diff ContextDiff) (string, error) { + w := &bytes.Buffer{} + err := WriteContextDiff(w, diff) + return string(w.Bytes()), err +} + +// Split a string on "\n" while preserving them. The output can be used +// as input for UnifiedDiff and ContextDiff structures. +func SplitLines(s string) []string { + lines := strings.SplitAfter(s, "\n") + lines[len(lines)-1] += "\n" + return lines +} diff --git a/Godeps/_workspace/src/github.com/pmezard/go-difflib/difflib/difflib_test.go b/Godeps/_workspace/src/github.com/pmezard/go-difflib/difflib/difflib_test.go new file mode 100644 index 000000000..94670bea3 --- /dev/null +++ b/Godeps/_workspace/src/github.com/pmezard/go-difflib/difflib/difflib_test.go @@ -0,0 +1,352 @@ +package difflib + +import ( + "bytes" + "fmt" + "math" + "reflect" + "strings" + "testing" +) + +func assertAlmostEqual(t *testing.T, a, b float64, places int) { + if math.Abs(a-b) > math.Pow10(-places) { + t.Errorf("%.7f != %.7f", a, b) + } +} + +func assertEqual(t *testing.T, a, b interface{}) { + if !reflect.DeepEqual(a, b) { + t.Errorf("%v != %v", a, b) + } +} + +func splitChars(s string) []string { + chars := make([]string, 0, len(s)) + // Assume ASCII inputs + for i := 0; i != len(s); i++ { + chars = append(chars, string(s[i])) + } + return chars +} + +func TestSequenceMatcherRatio(t *testing.T) { + s := NewMatcher(splitChars("abcd"), splitChars("bcde")) + assertEqual(t, s.Ratio(), 0.75) + assertEqual(t, s.QuickRatio(), 0.75) + assertEqual(t, s.RealQuickRatio(), 1.0) +} + +func TestGetOptCodes(t *testing.T) { + a := "qabxcd" + b := "abycdf" + s := NewMatcher(splitChars(a), splitChars(b)) + w := &bytes.Buffer{} + for _, op := range s.GetOpCodes() { + fmt.Fprintf(w, "%s a[%d:%d], (%s) b[%d:%d] (%s)\n", string(op.Tag), + op.I1, op.I2, a[op.I1:op.I2], op.J1, op.J2, b[op.J1:op.J2]) + } + result := string(w.Bytes()) + expected := `d a[0:1], (q) b[0:0] () +e a[1:3], (ab) b[0:2] (ab) +r a[3:4], (x) b[2:3] (y) +e a[4:6], (cd) b[3:5] (cd) +i a[6:6], () b[5:6] (f) +` + if expected != result { + t.Errorf("unexpected op codes: \n%s", result) + } +} + +func TestGroupedOpCodes(t *testing.T) { + a := []string{} + for i := 0; i != 39; i++ { + a = append(a, fmt.Sprintf("%02d", i)) + } + b := []string{} + b = append(b, a[:8]...) + b = append(b, " i") + b = append(b, a[8:19]...) + b = append(b, " x") + b = append(b, a[20:22]...) + b = append(b, a[27:34]...) + b = append(b, " y") + b = append(b, a[35:]...) + s := NewMatcher(a, b) + w := &bytes.Buffer{} + for _, g := range s.GetGroupedOpCodes(-1) { + fmt.Fprintf(w, "group\n") + for _, op := range g { + fmt.Fprintf(w, " %s, %d, %d, %d, %d\n", string(op.Tag), + op.I1, op.I2, op.J1, op.J2) + } + } + result := string(w.Bytes()) + expected := `group + e, 5, 8, 5, 8 + i, 8, 8, 8, 9 + e, 8, 11, 9, 12 +group + e, 16, 19, 17, 20 + r, 19, 20, 20, 21 + e, 20, 22, 21, 23 + d, 22, 27, 23, 23 + e, 27, 30, 23, 26 +group + e, 31, 34, 27, 30 + r, 34, 35, 30, 31 + e, 35, 38, 31, 34 +` + if expected != result { + t.Errorf("unexpected op codes: \n%s", result) + } +} + +func ExampleGetUnifiedDiffString() { + a := `one +two +three +four` + b := `zero +one +three +four` + diff := UnifiedDiff{ + A: SplitLines(a), + B: SplitLines(b), + FromFile: "Original", + FromDate: "2005-01-26 23:30:50", + ToFile: "Current", + ToDate: "2010-04-02 10:20:52", + Context: 3, + } + result, _ := GetUnifiedDiffString(diff) + fmt.Printf(strings.Replace(result, "\t", " ", -1)) + // Output: + // --- Original 2005-01-26 23:30:50 + // +++ Current 2010-04-02 10:20:52 + // @@ -1,4 +1,4 @@ + // +zero + // one + // -two + // three + // four +} + +func ExampleGetContextDiffString() { + a := `one +two +three +four` + b := `zero +one +tree +four` + diff := ContextDiff{ + A: SplitLines(a), + B: SplitLines(b), + FromFile: "Original", + ToFile: "Current", + Context: 3, + Eol: "\n", + } + result, _ := GetContextDiffString(diff) + fmt.Printf(strings.Replace(result, "\t", " ", -1)) + // Output: + // *** Original + // --- Current + // *************** + // *** 1,4 **** + // one + // ! two + // ! three + // four + // --- 1,4 ---- + // + zero + // one + // ! tree + // four +} + +func rep(s string, count int) string { + return strings.Repeat(s, count) +} + +func TestWithAsciiOneInsert(t *testing.T) { + sm := NewMatcher(splitChars(rep("b", 100)), + splitChars("a"+rep("b", 100))) + assertAlmostEqual(t, sm.Ratio(), 0.995, 3) + assertEqual(t, sm.GetOpCodes(), + []OpCode{{'i', 0, 0, 0, 1}, {'e', 0, 100, 1, 101}}) + assertEqual(t, len(sm.bPopular), 0) + + sm = NewMatcher(splitChars(rep("b", 100)), + splitChars(rep("b", 50)+"a"+rep("b", 50))) + assertAlmostEqual(t, sm.Ratio(), 0.995, 3) + assertEqual(t, sm.GetOpCodes(), + []OpCode{{'e', 0, 50, 0, 50}, {'i', 50, 50, 50, 51}, {'e', 50, 100, 51, 101}}) + assertEqual(t, len(sm.bPopular), 0) +} + +func TestWithAsciiOnDelete(t *testing.T) { + sm := NewMatcher(splitChars(rep("a", 40)+"c"+rep("b", 40)), + splitChars(rep("a", 40)+rep("b", 40))) + assertAlmostEqual(t, sm.Ratio(), 0.994, 3) + assertEqual(t, sm.GetOpCodes(), + []OpCode{{'e', 0, 40, 0, 40}, {'d', 40, 41, 40, 40}, {'e', 41, 81, 40, 80}}) +} + +func TestWithAsciiBJunk(t *testing.T) { + isJunk := func(s string) bool { + return s == " " + } + sm := NewMatcherWithJunk(splitChars(rep("a", 40)+rep("b", 40)), + splitChars(rep("a", 44)+rep("b", 40)), true, isJunk) + assertEqual(t, sm.bJunk, map[string]struct{}{}) + + sm = NewMatcherWithJunk(splitChars(rep("a", 40)+rep("b", 40)), + splitChars(rep("a", 44)+rep("b", 40)+rep(" ", 20)), false, isJunk) + assertEqual(t, sm.bJunk, map[string]struct{}{" ": struct{}{}}) + + isJunk = func(s string) bool { + return s == " " || s == "b" + } + sm = NewMatcherWithJunk(splitChars(rep("a", 40)+rep("b", 40)), + splitChars(rep("a", 44)+rep("b", 40)+rep(" ", 20)), false, isJunk) + assertEqual(t, sm.bJunk, map[string]struct{}{" ": struct{}{}, "b": struct{}{}}) +} + +func TestSFBugsRatioForNullSeqn(t *testing.T) { + sm := NewMatcher(nil, nil) + assertEqual(t, sm.Ratio(), 1.0) + assertEqual(t, sm.QuickRatio(), 1.0) + assertEqual(t, sm.RealQuickRatio(), 1.0) +} + +func TestSFBugsComparingEmptyLists(t *testing.T) { + groups := NewMatcher(nil, nil).GetGroupedOpCodes(-1) + assertEqual(t, len(groups), 0) + diff := UnifiedDiff{ + FromFile: "Original", + ToFile: "Current", + Context: 3, + } + result, err := GetUnifiedDiffString(diff) + assertEqual(t, err, nil) + assertEqual(t, result, "") +} + +func TestOutputFormatRangeFormatUnified(t *testing.T) { + // Per the diff spec at http://www.unix.org/single_unix_specification/ + // + // Each <range> field shall be of the form: + // %1d", <beginning line number> if the range contains exactly one line, + // and: + // "%1d,%1d", <beginning line number>, <number of lines> otherwise. + // If a range is empty, its beginning line number shall be the number of + // the line just before the range, or 0 if the empty range starts the file. + fm := formatRangeUnified + assertEqual(t, fm(3, 3), "3,0") + assertEqual(t, fm(3, 4), "4") + assertEqual(t, fm(3, 5), "4,2") + assertEqual(t, fm(3, 6), "4,3") + assertEqual(t, fm(0, 0), "0,0") +} + +func TestOutputFormatRangeFormatContext(t *testing.T) { + // Per the diff spec at http://www.unix.org/single_unix_specification/ + // + // The range of lines in file1 shall be written in the following format + // if the range contains two or more lines: + // "*** %d,%d ****\n", <beginning line number>, <ending line number> + // and the following format otherwise: + // "*** %d ****\n", <ending line number> + // The ending line number of an empty range shall be the number of the preceding line, + // or 0 if the range is at the start of the file. + // + // Next, the range of lines in file2 shall be written in the following format + // if the range contains two or more lines: + // "--- %d,%d ----\n", <beginning line number>, <ending line number> + // and the following format otherwise: + // "--- %d ----\n", <ending line number> + fm := formatRangeContext + assertEqual(t, fm(3, 3), "3") + assertEqual(t, fm(3, 4), "4") + assertEqual(t, fm(3, 5), "4,5") + assertEqual(t, fm(3, 6), "4,6") + assertEqual(t, fm(0, 0), "0") +} + +func TestOutputFormatTabDelimiter(t *testing.T) { + diff := UnifiedDiff{ + A: splitChars("one"), + B: splitChars("two"), + FromFile: "Original", + FromDate: "2005-01-26 23:30:50", + ToFile: "Current", + ToDate: "2010-04-12 10:20:52", + Eol: "\n", + } + ud, err := GetUnifiedDiffString(diff) + assertEqual(t, err, nil) + assertEqual(t, SplitLines(ud)[:2], []string{ + "--- Original\t2005-01-26 23:30:50\n", + "+++ Current\t2010-04-12 10:20:52\n", + }) + cd, err := GetContextDiffString(ContextDiff(diff)) + assertEqual(t, err, nil) + assertEqual(t, SplitLines(cd)[:2], []string{ + "*** Original\t2005-01-26 23:30:50\n", + "--- Current\t2010-04-12 10:20:52\n", + }) +} + +func TestOutputFormatNoTrailingTabOnEmptyFiledate(t *testing.T) { + diff := UnifiedDiff{ + A: splitChars("one"), + B: splitChars("two"), + FromFile: "Original", + ToFile: "Current", + Eol: "\n", + } + ud, err := GetUnifiedDiffString(diff) + assertEqual(t, err, nil) + assertEqual(t, SplitLines(ud)[:2], []string{"--- Original\n", "+++ Current\n"}) + + cd, err := GetContextDiffString(ContextDiff(diff)) + assertEqual(t, err, nil) + assertEqual(t, SplitLines(cd)[:2], []string{"*** Original\n", "--- Current\n"}) +} + +func TestSplitLines(t *testing.T) { + allTests := []struct { + input string + want []string + }{ + {"foo", []string{"foo\n"}}, + {"foo\nbar", []string{"foo\n", "bar\n"}}, + {"foo\nbar\n", []string{"foo\n", "bar\n", "\n"}}, + } + for _, test := range allTests { + assertEqual(t, SplitLines(test.input), test.want) + } +} + +func benchmarkSplitLines(b *testing.B, count int) { + str := strings.Repeat("foo\n", count) + + b.ResetTimer() + + n := 0 + for i := 0; i < b.N; i++ { + n += len(SplitLines(str)) + } +} + +func BenchmarkSplitLines100(b *testing.B) { + benchmarkSplitLines(b, 100) +} + +func BenchmarkSplitLines10000(b *testing.B) { + benchmarkSplitLines(b, 10000) +} diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/corrupt/huge_tag_exif.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/corrupt/huge_tag_exif.jpg Binary files differnew file mode 100644 index 000000000..ffb31743d --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/corrupt/huge_tag_exif.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/corrupt/infinite_loop_exif.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/corrupt/infinite_loop_exif.jpg Binary files differnew file mode 100644 index 000000000..6b0994713 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/corrupt/infinite_loop_exif.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/corrupt/max_uint32_exif.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/corrupt/max_uint32_exif.jpg Binary files differnew file mode 100644 index 000000000..2a51b0ba0 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/corrupt/max_uint32_exif.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/sample1.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/sample1.jpg Binary files differnew file mode 100644 index 000000000..87bcf8e33 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/sample1.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2004-01-11-22-45-15-sep-2004-01-11-22-45-15a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2004-01-11-22-45-15-sep-2004-01-11-22-45-15a.jpg Binary files differnew file mode 100644 index 000000000..6f3be2480 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2004-01-11-22-45-15-sep-2004-01-11-22-45-15a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2006-08-03-16-29-38-sep-2006-08-03-16-29-38a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2006-08-03-16-29-38-sep-2006-08-03-16-29-38a.jpg Binary files differnew file mode 100644 index 000000000..39891df84 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2006-08-03-16-29-38-sep-2006-08-03-16-29-38a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2006-11-11-19-17-56-sep-2006-11-11-19-17-56a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2006-11-11-19-17-56-sep-2006-11-11-19-17-56a.jpg Binary files differnew file mode 100644 index 000000000..4721e7542 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2006-11-11-19-17-56-sep-2006-11-11-19-17-56a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2006-12-10-23-58-20-sep-2006-12-10-23-58-20a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2006-12-10-23-58-20-sep-2006-12-10-23-58-20a.jpg Binary files differnew file mode 100644 index 000000000..8c0997ea0 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2006-12-10-23-58-20-sep-2006-12-10-23-58-20a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2006-12-17-07-09-14-sep-2006-12-17-07-09-14a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2006-12-17-07-09-14-sep-2006-12-17-07-09-14a.jpg Binary files differnew file mode 100644 index 000000000..1c6e7601d --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2006-12-17-07-09-14-sep-2006-12-17-07-09-14a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2006-12-21-15-55-26-sep-2006-12-21-15-55-26a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2006-12-21-15-55-26-sep-2006-12-21-15-55-26a.jpg Binary files differnew file mode 100644 index 000000000..8aaf632be --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2006-12-21-15-55-26-sep-2006-12-21-15-55-26a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-01-01-12-00-00-sep-2007-01-01-12-00-00a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-01-01-12-00-00-sep-2007-01-01-12-00-00a.jpg Binary files differnew file mode 100644 index 000000000..c44db32c1 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-01-01-12-00-00-sep-2007-01-01-12-00-00a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-01-17-21-49-44-sep-2007-01-17-21-49-44a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-01-17-21-49-44-sep-2007-01-17-21-49-44a.jpg Binary files differnew file mode 100644 index 000000000..f025460d6 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-01-17-21-49-44-sep-2007-01-17-21-49-44a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-02-02-18-13-29-sep-2007-02-02-18-13-29a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-02-02-18-13-29-sep-2007-02-02-18-13-29a.jpg Binary files differnew file mode 100644 index 000000000..3f1fbfbdf --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-02-02-18-13-29-sep-2007-02-02-18-13-29a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-05-02-17-02-21-sep-2007-05-02-17-02-21a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-05-02-17-02-21-sep-2007-05-02-17-02-21a.jpg Binary files differnew file mode 100644 index 000000000..351935778 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-05-02-17-02-21-sep-2007-05-02-17-02-21a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-05-12-08-19-07-sep-2007-05-12-08-19-07a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-05-12-08-19-07-sep-2007-05-12-08-19-07a.jpg Binary files differnew file mode 100644 index 000000000..175b60663 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-05-12-08-19-07-sep-2007-05-12-08-19-07a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-05-26-04-49-45-sep-2007-05-26-04-49-45a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-05-26-04-49-45-sep-2007-05-26-04-49-45a.jpg Binary files differnew file mode 100644 index 000000000..90a6c92b0 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-05-26-04-49-45-sep-2007-05-26-04-49-45a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-05-30-14-28-01-sep-2007-05-30-14-28-01a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-05-30-14-28-01-sep-2007-05-30-14-28-01a.jpg Binary files differnew file mode 100644 index 000000000..74f30c351 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-05-30-14-28-01-sep-2007-05-30-14-28-01a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-06-06-16-15-25-sep-2007-06-06-16-15-25a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-06-06-16-15-25-sep-2007-06-06-16-15-25a.jpg Binary files differnew file mode 100644 index 000000000..0a025a0b8 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-06-06-16-15-25-sep-2007-06-06-16-15-25a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-06-26-10-13-04-sep-2007-06-26-10-13-04a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-06-26-10-13-04-sep-2007-06-26-10-13-04a.jpg Binary files differnew file mode 100644 index 000000000..526cefafd --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-06-26-10-13-04-sep-2007-06-26-10-13-04a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-07-13-17-02-30-sep-2007-07-13-17-02-30a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-07-13-17-02-30-sep-2007-07-13-17-02-30a.jpg Binary files differnew file mode 100644 index 000000000..c39e90fca --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-07-13-17-02-30-sep-2007-07-13-17-02-30a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-08-15-14-42-46-sep-2007-08-15-14-42-46a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-08-15-14-42-46-sep-2007-08-15-14-42-46a.jpg Binary files differnew file mode 100644 index 000000000..81be2a200 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-08-15-14-42-46-sep-2007-08-15-14-42-46a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-08-24-02-40-42-sep-2007-08-24-02-40-42a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-08-24-02-40-42-sep-2007-08-24-02-40-42a.jpg Binary files differnew file mode 100644 index 000000000..aa457643d --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-08-24-02-40-42-sep-2007-08-24-02-40-42a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-11-07-11-40-44-sep-2007-11-07-11-40-44a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-11-07-11-40-44-sep-2007-11-07-11-40-44a.jpg Binary files differnew file mode 100644 index 000000000..916a2b6c3 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2007-11-07-11-40-44-sep-2007-11-07-11-40-44a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2008-06-02-10-03-57-sep-2008-06-02-10-03-57a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2008-06-02-10-03-57-sep-2008-06-02-10-03-57a.jpg Binary files differnew file mode 100644 index 000000000..0aedf3003 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2008-06-02-10-03-57-sep-2008-06-02-10-03-57a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2008-06-06-13-29-29-sep-2008-06-06-13-29-29a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2008-06-06-13-29-29-sep-2008-06-06-13-29-29a.jpg Binary files differnew file mode 100644 index 000000000..a291900e3 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2008-06-06-13-29-29-sep-2008-06-06-13-29-29a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2008-06-17-01-21-30-sep-2008-06-17-01-21-30a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2008-06-17-01-21-30-sep-2008-06-17-01-21-30a.jpg Binary files differnew file mode 100644 index 000000000..805d1d0f0 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2008-06-17-01-21-30-sep-2008-06-17-01-21-30a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2008-09-02-17-43-48-sep-2008-09-02-17-43-48a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2008-09-02-17-43-48-sep-2008-09-02-17-43-48a.jpg Binary files differnew file mode 100644 index 000000000..c866423c7 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2008-09-02-17-43-48-sep-2008-09-02-17-43-48a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2009-03-26-09-23-20-sep-2009-03-26-09-23-20a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2009-03-26-09-23-20-sep-2009-03-26-09-23-20a.jpg Binary files differnew file mode 100644 index 000000000..761bf6488 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2009-03-26-09-23-20-sep-2009-03-26-09-23-20a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2009-04-11-03-01-38-sep-2009-04-11-03-01-38a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2009-04-11-03-01-38-sep-2009-04-11-03-01-38a.jpg Binary files differnew file mode 100644 index 000000000..484fe3759 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2009-04-11-03-01-38-sep-2009-04-11-03-01-38a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2009-04-23-07-21-35-sep-2009-04-23-07-21-35a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2009-04-23-07-21-35-sep-2009-04-23-07-21-35a.jpg Binary files differnew file mode 100644 index 000000000..f39db7d9a --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2009-04-23-07-21-35-sep-2009-04-23-07-21-35a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2009-06-11-19-23-18-sep-2009-06-11-19-23-18a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2009-06-11-19-23-18-sep-2009-06-11-19-23-18a.jpg Binary files differnew file mode 100644 index 000000000..599764bf8 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2009-06-11-19-23-18-sep-2009-06-11-19-23-18a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2009-06-20-07-59-05-sep-2009-06-20-07-59-05a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2009-06-20-07-59-05-sep-2009-06-20-07-59-05a.jpg Binary files differnew file mode 100644 index 000000000..8718269e9 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2009-06-20-07-59-05-sep-2009-06-20-07-59-05a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2009-08-05-08-11-31-sep-2009-08-05-08-11-31a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2009-08-05-08-11-31-sep-2009-08-05-08-11-31a.jpg Binary files differnew file mode 100644 index 000000000..9598b2136 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2009-08-05-08-11-31-sep-2009-08-05-08-11-31a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2010-06-08-04-44-24-sep-2010-06-08-04-44-24a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2010-06-08-04-44-24-sep-2010-06-08-04-44-24a.jpg Binary files differnew file mode 100644 index 000000000..33f7d9b20 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2010-06-08-04-44-24-sep-2010-06-08-04-44-24a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2010-06-20-20-07-39-sep-2010-06-20-20-07-39a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2010-06-20-20-07-39-sep-2010-06-20-20-07-39a.jpg Binary files differnew file mode 100644 index 000000000..ec2faa1a9 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2010-06-20-20-07-39-sep-2010-06-20-20-07-39a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2010-09-02-08-43-02-sep-2010-09-02-08-43-02a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2010-09-02-08-43-02-sep-2010-09-02-08-43-02a.jpg Binary files differnew file mode 100644 index 000000000..3b7f906db --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2010-09-02-08-43-02-sep-2010-09-02-08-43-02a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2011-01-24-22-06-02-sep-2011-01-24-22-06-02a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2011-01-24-22-06-02-sep-2011-01-24-22-06-02a.jpg Binary files differnew file mode 100644 index 000000000..1a4af42d3 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2011-01-24-22-06-02-sep-2011-01-24-22-06-02a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2011-03-07-09-28-03-sep-2011-03-07-09-28-03a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2011-03-07-09-28-03-sep-2011-03-07-09-28-03a.jpg Binary files differnew file mode 100644 index 000000000..42d347656 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2011-03-07-09-28-03-sep-2011-03-07-09-28-03a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2011-05-07-13-02-49-sep-2011-05-07-13-02-49a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2011-05-07-13-02-49-sep-2011-05-07-13-02-49a.jpg Binary files differnew file mode 100644 index 000000000..7e84ec481 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2011-05-07-13-02-49-sep-2011-05-07-13-02-49a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2011-08-07-19-22-57-sep-2011-08-07-19-22-57a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2011-08-07-19-22-57-sep-2011-08-07-19-22-57a.jpg Binary files differnew file mode 100644 index 000000000..16fad2ecb --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2011-08-07-19-22-57-sep-2011-08-07-19-22-57a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2011-10-28-17-50-18-sep-2011-10-28-17-50-18a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2011-10-28-17-50-18-sep-2011-10-28-17-50-18a.jpg Binary files differnew file mode 100644 index 000000000..f6020a8c9 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2011-10-28-17-50-18-sep-2011-10-28-17-50-18a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2011-10-28-18-25-43-sep-2011-10-28-18-25-43.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2011-10-28-18-25-43-sep-2011-10-28-18-25-43.jpg Binary files differnew file mode 100644 index 000000000..3aa541878 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2011-10-28-18-25-43-sep-2011-10-28-18-25-43.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2011-11-18-15-38-34-sep-Photo11181538.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2011-11-18-15-38-34-sep-Photo11181538.jpg Binary files differnew file mode 100644 index 000000000..48ef933a2 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2011-11-18-15-38-34-sep-Photo11181538.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2012-06-02-10-12-28-sep-2012-06-02-10-12-28.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2012-06-02-10-12-28-sep-2012-06-02-10-12-28.jpg Binary files differnew file mode 100644 index 000000000..f83270eee --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2012-06-02-10-12-28-sep-2012-06-02-10-12-28.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2012-09-21-22-07-34-sep-2012-09-21-22-07-34.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2012-09-21-22-07-34-sep-2012-09-21-22-07-34.jpg Binary files differnew file mode 100644 index 000000000..5cdb55aac --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2012-09-21-22-07-34-sep-2012-09-21-22-07-34.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2012-12-19-21-38-40-sep-temple_square1.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2012-12-19-21-38-40-sep-temple_square1.jpg Binary files differnew file mode 100644 index 000000000..4cc074f8e --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2012-12-19-21-38-40-sep-temple_square1.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2012-12-21-11-15-19-sep-IMG_0001.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2012-12-21-11-15-19-sep-IMG_0001.jpg Binary files differnew file mode 100644 index 000000000..ba23c3c42 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2012-12-21-11-15-19-sep-IMG_0001.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2013-02-05-23-12-09-sep-DSCI0001.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2013-02-05-23-12-09-sep-DSCI0001.jpg Binary files differnew file mode 100644 index 000000000..0396148af --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2013-02-05-23-12-09-sep-DSCI0001.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2099-08-12-19-59-29-sep-2099-08-12-19-59-29a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2099-08-12-19-59-29-sep-2099-08-12-19-59-29a.jpg Binary files differnew file mode 100644 index 000000000..9729182b3 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2099-08-12-19-59-29-sep-2099-08-12-19-59-29a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2216-11-15-11-46-51-sep-2216-11-15-11-46-51a.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2216-11-15-11-46-51-sep-2216-11-15-11-46-51a.jpg Binary files differnew file mode 100644 index 000000000..ae53a397a --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/2216-11-15-11-46-51-sep-2216-11-15-11-46-51a.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/FailedHash-NoDate-sep-remembory.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/FailedHash-NoDate-sep-remembory.jpg Binary files differnew file mode 100644 index 000000000..9fb415124 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/FailedHash-NoDate-sep-remembory.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f1-exif.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f1-exif.jpg Binary files differnew file mode 100644 index 000000000..ff003e394 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f1-exif.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f2-exif.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f2-exif.jpg Binary files differnew file mode 100644 index 000000000..7e0f170e3 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f2-exif.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f3-exif.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f3-exif.jpg Binary files differnew file mode 100644 index 000000000..3ed7b16a7 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f3-exif.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f4-exif.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f4-exif.jpg Binary files differnew file mode 100644 index 000000000..0e081f919 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f4-exif.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f5-exif.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f5-exif.jpg Binary files differnew file mode 100644 index 000000000..e8d875479 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f5-exif.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f6-exif.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f6-exif.jpg Binary files differnew file mode 100644 index 000000000..4e2c86415 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f6-exif.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f7-exif.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f7-exif.jpg Binary files differnew file mode 100644 index 000000000..b5dddea44 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f7-exif.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f8-exif.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f8-exif.jpg Binary files differnew file mode 100644 index 000000000..fb050fc6d --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/f8-exif.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/geodegrees_as_string.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/geodegrees_as_string.jpg Binary files differnew file mode 100644 index 000000000..280a70ec4 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/geodegrees_as_string.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/has-lens-info.jpg b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/has-lens-info.jpg Binary files differnew file mode 100644 index 000000000..57757da33 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/exif/samples/has-lens-info.jpg diff --git a/Godeps/_workspace/src/github.com/rwcarlsen/goexif/tiff/sample1.tif b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/tiff/sample1.tif Binary files differnew file mode 100644 index 000000000..fe51399c5 --- /dev/null +++ b/Godeps/_workspace/src/github.com/rwcarlsen/goexif/tiff/sample1.tif diff --git a/Godeps/_workspace/src/github.com/stretchr/objx/value.go b/Godeps/_workspace/src/github.com/stretchr/objx/value.go index 7aaef06b1..956a2211d 100644 --- a/Godeps/_workspace/src/github.com/stretchr/objx/value.go +++ b/Godeps/_workspace/src/github.com/stretchr/objx/value.go @@ -1,5 +1,10 @@ package objx +import ( + "fmt" + "strconv" +) + // Value provides methods for extracting interface{} data in various // types. type Value struct { @@ -11,3 +16,41 @@ type Value struct { func (v *Value) Data() interface{} { return v.data } + +// String returns the value always as a string +func (v *Value) String() string { + switch { + case v.IsStr(): + return v.Str() + case v.IsBool(): + return strconv.FormatBool(v.Bool()) + case v.IsFloat32(): + return strconv.FormatFloat(float64(v.Float32()), 'f', -1, 32) + case v.IsFloat64(): + return strconv.FormatFloat(v.Float64(), 'f', -1, 64) + case v.IsInt(): + return strconv.FormatInt(int64(v.Int()), 10) + case v.IsInt(): + return strconv.FormatInt(int64(v.Int()), 10) + case v.IsInt8(): + return strconv.FormatInt(int64(v.Int8()), 10) + case v.IsInt16(): + return strconv.FormatInt(int64(v.Int16()), 10) + case v.IsInt32(): + return strconv.FormatInt(int64(v.Int32()), 10) + case v.IsInt64(): + return strconv.FormatInt(v.Int64(), 10) + case v.IsUint(): + return strconv.FormatUint(uint64(v.Uint()), 10) + case v.IsUint8(): + return strconv.FormatUint(uint64(v.Uint8()), 10) + case v.IsUint16(): + return strconv.FormatUint(uint64(v.Uint16()), 10) + case v.IsUint32(): + return strconv.FormatUint(uint64(v.Uint32()), 10) + case v.IsUint64(): + return strconv.FormatUint(v.Uint64(), 10) + } + + return fmt.Sprintf("%#v", v.Data()) +} diff --git a/Godeps/_workspace/src/github.com/stretchr/objx/value_test.go b/Godeps/_workspace/src/github.com/stretchr/objx/value_test.go index 0bc65d92c..521405801 100644 --- a/Godeps/_workspace/src/github.com/stretchr/objx/value_test.go +++ b/Godeps/_workspace/src/github.com/stretchr/objx/value_test.go @@ -1 +1,66 @@ package objx + +import ( + "github.com/stretchr/testify/assert" + "testing" +) + +func TestStringTypeString(t *testing.T) { + m := New(map[string]interface{}{"string": "foo"}) + assert.Equal(t, "foo", m.Get("string").String()) +} + +func TestStringTypeBool(t *testing.T) { + m := New(map[string]interface{}{"bool": true}) + assert.Equal(t, "true", m.Get("bool").String()) +} + +func TestStringTypeInt(t *testing.T) { + m := New(map[string]interface{}{ + "int": int(1), + "int8": int8(8), + "int16": int16(16), + "int32": int32(32), + "int64": int64(64), + }) + + assert.Equal(t, "1", m.Get("int").String()) + assert.Equal(t, "8", m.Get("int8").String()) + assert.Equal(t, "16", m.Get("int16").String()) + assert.Equal(t, "32", m.Get("int32").String()) + assert.Equal(t, "64", m.Get("int64").String()) +} + +func TestStringTypeUint(t *testing.T) { + m := New(map[string]interface{}{ + "uint": uint(1), + "uint8": uint8(8), + "uint16": uint16(16), + "uint32": uint32(32), + "uint64": uint64(64), + }) + + assert.Equal(t, "1", m.Get("uint").String()) + assert.Equal(t, "8", m.Get("uint8").String()) + assert.Equal(t, "16", m.Get("uint16").String()) + assert.Equal(t, "32", m.Get("uint32").String()) + assert.Equal(t, "64", m.Get("uint64").String()) +} + +func TestStringTypeFloat(t *testing.T) { + m := New(map[string]interface{}{ + "float32": float32(32.32), + "float64": float64(64.64), + }) + + assert.Equal(t, "32.32", m.Get("float32").String()) + assert.Equal(t, "64.64", m.Get("float64").String()) +} + +func TestStringTypeOther(t *testing.T) { + m := New(map[string]interface{}{ + "other": []string{"foo", "bar"}, + }) + + assert.Equal(t, "[]string{\"foo\", \"bar\"}", m.Get("other").String()) +} diff --git a/Godeps/_workspace/src/github.com/stretchr/testify/assert/assertions.go b/Godeps/_workspace/src/github.com/stretchr/testify/assert/assertions.go index 818cd7b0e..1935d18da 100644 --- a/Godeps/_workspace/src/github.com/stretchr/testify/assert/assertions.go +++ b/Godeps/_workspace/src/github.com/stretchr/testify/assert/assertions.go @@ -3,6 +3,7 @@ package assert import ( "bufio" "bytes" + "encoding/json" "fmt" "math" "reflect" @@ -10,6 +11,11 @@ import ( "runtime" "strings" "time" + "unicode" + "unicode/utf8" + + "github.com/davecgh/go-spew/spew" + "github.com/pmezard/go-difflib/difflib" ) // TestingT is an interface wrapper around *testing.T @@ -33,11 +39,7 @@ func ObjectsAreEqual(expected, actual interface{}) bool { return expected == actual } - if reflect.DeepEqual(expected, actual) { - return true - } - - return false + return reflect.DeepEqual(expected, actual) } @@ -49,12 +51,13 @@ func ObjectsAreEqualValues(expected, actual interface{}) bool { } actualType := reflect.TypeOf(actual) + if actualType == nil { + return false + } expectedValue := reflect.ValueOf(expected) - if expectedValue.Type().ConvertibleTo(actualType) { + if expectedValue.IsValid() && expectedValue.Type().ConvertibleTo(actualType) { // Attempt comparison after type conversion - if reflect.DeepEqual(actual, expectedValue.Convert(actualType).Interface()) { - return true - } + return reflect.DeepEqual(expectedValue.Convert(actualType).Interface(), actual) } return false @@ -64,28 +67,67 @@ func ObjectsAreEqualValues(expected, actual interface{}) bool { internally, causing it to print the file:line of the assert method, rather than where the problem actually occured in calling code.*/ -// CallerInfo returns a string containing the file and line number of the assert call -// that failed. -func CallerInfo() string { +// CallerInfo returns an array of strings containing the file and line number +// of each stack frame leading from the current test to the assert call that +// failed. +func CallerInfo() []string { + pc := uintptr(0) file := "" line := 0 ok := false + name := "" + callers := []string{} for i := 0; ; i++ { - _, file, line, ok = runtime.Caller(i) + pc, file, line, ok = runtime.Caller(i) if !ok { - return "" + return nil } + + // This is a huge edge case, but it will panic if this is the case, see #180 + if file == "<autogenerated>" { + break + } + parts := strings.Split(file, "/") dir := parts[len(parts)-2] file = parts[len(parts)-1] if (dir != "assert" && dir != "mock" && dir != "require") || file == "mock_test.go" { + callers = append(callers, fmt.Sprintf("%s:%d", file, line)) + } + + f := runtime.FuncForPC(pc) + if f == nil { + break + } + name = f.Name() + // Drop the package + segments := strings.Split(name, ".") + name = segments[len(segments)-1] + if isTest(name, "Test") || + isTest(name, "Benchmark") || + isTest(name, "Example") { break } } - return fmt.Sprintf("%s:%d", file, line) + return callers +} + +// Stolen from the `go test` tool. +// isTest tells whether name looks like a test (or benchmark, according to prefix). +// It is a Test (say) if there is a character after Test that is not a lower-case letter. +// We don't want TesticularCancer. +func isTest(name, prefix string) bool { + if !strings.HasPrefix(name, prefix) { + return false + } + if len(name) == len(prefix) { // "Test" is ok + return true + } + rune, _ := utf8.DecodeRuneInString(name[len(prefix):]) + return !unicode.IsLower(rune) } // getWhitespaceString returns a string that is long enough to overwrite the default @@ -144,19 +186,20 @@ func Fail(t TestingT, failureMessage string, msgAndArgs ...interface{}) bool { message := messageFromMsgAndArgs(msgAndArgs...) + errorTrace := strings.Join(CallerInfo(), "\n\r\t\t\t") if len(message) > 0 { - t.Errorf("\r%s\r\tLocation:\t%s\n"+ + t.Errorf("\r%s\r\tError Trace:\t%s\n"+ "\r\tError:%s\n"+ "\r\tMessages:\t%s\n\r", getWhitespaceString(), - CallerInfo(), + errorTrace, indentMessageLines(failureMessage, 2), message) } else { - t.Errorf("\r%s\r\tLocation:\t%s\n"+ + t.Errorf("\r%s\r\tError Trace:\t%s\n"+ "\r\tError:%s\n\r", getWhitespaceString(), - CallerInfo(), + errorTrace, indentMessageLines(failureMessage, 2)) } @@ -171,7 +214,7 @@ func Implements(t TestingT, interfaceObject interface{}, object interface{}, msg interfaceType := reflect.TypeOf(interfaceObject).Elem() if !reflect.TypeOf(object).Implements(interfaceType) { - return Fail(t, fmt.Sprintf("Object must implement %v", interfaceType), msgAndArgs...) + return Fail(t, fmt.Sprintf("%T must implement %v", object, interfaceType), msgAndArgs...) } return true @@ -196,8 +239,9 @@ func IsType(t TestingT, expectedType interface{}, object interface{}, msgAndArgs func Equal(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool { if !ObjectsAreEqual(expected, actual) { + diff := diff(expected, actual) return Fail(t, fmt.Sprintf("Not equal: %#v (expected)\n"+ - " != %#v (actual)", expected, actual), msgAndArgs...) + " != %#v (actual)%s", expected, actual, diff), msgAndArgs...) } return true @@ -232,7 +276,7 @@ func Exactly(t TestingT, expected, actual interface{}, msgAndArgs ...interface{} bType := reflect.TypeOf(actual) if aType != bType { - return Fail(t, "Types expected to match exactly", "%v != %v", aType, bType) + return Fail(t, fmt.Sprintf("Types expected to match exactly\n\r\t%v != %v", aType, bType), msgAndArgs...) } return Equal(t, expected, actual, msgAndArgs...) @@ -245,24 +289,10 @@ func Exactly(t TestingT, expected, actual interface{}, msgAndArgs ...interface{} // // Returns whether the assertion was successful (true) or not (false). func NotNil(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { - - success := true - - if object == nil { - success = false - } else { - value := reflect.ValueOf(object) - kind := value.Kind() - if kind >= reflect.Chan && kind <= reflect.Slice && value.IsNil() { - success = false - } - } - - if !success { - Fail(t, "Expected not to be nil.", msgAndArgs...) + if !isNil(object) { + return true } - - return success + return Fail(t, "Expected value not to be nil.", msgAndArgs...) } // isNil checks if a specified object is nil or not, without Failing. @@ -292,7 +322,7 @@ func Nil(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { return Fail(t, fmt.Sprintf("Expected nil, but got: %#v", object), msgAndArgs...) } -var zeros = []interface{}{ +var numericZeros = []interface{}{ int(0), int8(0), int16(0), @@ -318,7 +348,7 @@ func isEmpty(object interface{}) bool { return true } - for _, v := range zeros { + for _, v := range numericZeros { if object == v { return true } @@ -335,6 +365,9 @@ func isEmpty(object interface{}) bool { } case reflect.Ptr: { + if objValue.IsNil() { + return true + } switch object.(type) { case *time.Time: return object.(*time.Time).IsZero() @@ -349,7 +382,7 @@ func isEmpty(object interface{}) bool { // Empty asserts that the specified object is empty. I.e. nil, "", false, 0 or either // a slice or a channel with len == 0. // -// assert.Empty(t, obj) +// assert.Empty(t, obj) // // Returns whether the assertion was successful (true) or not (false). func Empty(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { @@ -366,9 +399,9 @@ func Empty(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { // NotEmpty asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or either // a slice or a channel with len == 0. // -// if assert.NotEmpty(t, obj) { -// assert.Equal(t, "two", obj[1]) -// } +// if assert.NotEmpty(t, obj) { +// assert.Equal(t, "two", obj[1]) +// } // // Returns whether the assertion was successful (true) or not (false). func NotEmpty(t TestingT, object interface{}, msgAndArgs ...interface{}) bool { @@ -450,7 +483,7 @@ func False(t TestingT, value bool, msgAndArgs ...interface{}) bool { func NotEqual(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool { if ObjectsAreEqual(expected, actual) { - return Fail(t, "Should not be equal", msgAndArgs...) + return Fail(t, fmt.Sprintf("Should not be: %#v\n", actual), msgAndArgs...) } return true @@ -476,6 +509,16 @@ func includeElement(list interface{}, element interface{}) (ok, found bool) { return true, strings.Contains(listValue.String(), elementValue.String()) } + if reflect.TypeOf(list).Kind() == reflect.Map { + mapKeys := listValue.MapKeys() + for i := 0; i < len(mapKeys); i++ { + if ObjectsAreEqual(mapKeys[i].Interface(), element) { + return true, true + } + } + return true, false + } + for i := 0; i < listValue.Len(); i++ { if ObjectsAreEqual(listValue.Index(i).Interface(), element) { return true, true @@ -485,11 +528,12 @@ func includeElement(list interface{}, element interface{}) (ok, found bool) { } -// Contains asserts that the specified string or list(array, slice...) contains the +// Contains asserts that the specified string, list(array, slice...) or map contains the // specified substring or element. // // assert.Contains(t, "Hello World", "World", "But 'Hello World' does contain 'World'") // assert.Contains(t, ["Hello", "World"], "World", "But ["Hello", "World"] does contain 'World'") +// assert.Contains(t, {"Hello": "World"}, "Hello", "But {'Hello': 'World'} does contain 'Hello'") // // Returns whether the assertion was successful (true) or not (false). func Contains(t TestingT, s, contains interface{}, msgAndArgs ...interface{}) bool { @@ -506,11 +550,12 @@ func Contains(t TestingT, s, contains interface{}, msgAndArgs ...interface{}) bo } -// NotContains asserts that the specified string or list(array, slice...) does NOT contain the +// NotContains asserts that the specified string, list(array, slice...) or map does NOT contain the // specified substring or element. // // assert.NotContains(t, "Hello World", "Earth", "But 'Hello World' does NOT contain 'Earth'") // assert.NotContains(t, ["Hello", "World"], "Earth", "But ['Hello', 'World'] does NOT contain 'Earth'") +// assert.NotContains(t, {"Hello": "World"}, "Earth", "But {'Hello': 'World'} does NOT contain 'Earth'") // // Returns whether the assertion was successful (true) or not (false). func NotContains(t TestingT, s, contains interface{}, msgAndArgs ...interface{}) bool { @@ -766,7 +811,7 @@ func NoError(t TestingT, err error, msgAndArgs ...interface{}) bool { return true } - return Fail(t, fmt.Sprintf("No error is expected but got %v", err), msgAndArgs...) + return Fail(t, fmt.Sprintf("Received unexpected error %q", err), msgAndArgs...) } // Error asserts that a function returned an error (i.e. not `nil`). @@ -800,7 +845,7 @@ func EqualError(t TestingT, theError error, errString string, msgAndArgs ...inte return false } s := "An error with value \"%s\" is expected but got \"%s\". %s" - return Equal(t, theError.Error(), errString, + return Equal(t, errString, theError.Error(), s, errString, theError.Error(), message) } @@ -851,3 +896,84 @@ func NotRegexp(t TestingT, rx interface{}, str interface{}, msgAndArgs ...interf return !match } + +// Zero asserts that i is the zero value for its type and returns the truth. +func Zero(t TestingT, i interface{}, msgAndArgs ...interface{}) bool { + if i != nil && !reflect.DeepEqual(i, reflect.Zero(reflect.TypeOf(i)).Interface()) { + return Fail(t, fmt.Sprintf("Should be zero, but was %v", i), msgAndArgs...) + } + return true +} + +// NotZero asserts that i is not the zero value for its type and returns the truth. +func NotZero(t TestingT, i interface{}, msgAndArgs ...interface{}) bool { + if i == nil || reflect.DeepEqual(i, reflect.Zero(reflect.TypeOf(i)).Interface()) { + return Fail(t, fmt.Sprintf("Should not be zero, but was %v", i), msgAndArgs...) + } + return true +} + +// JSONEq asserts that two JSON strings are equivalent. +// +// assert.JSONEq(t, `{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`) +// +// Returns whether the assertion was successful (true) or not (false). +func JSONEq(t TestingT, expected string, actual string, msgAndArgs ...interface{}) bool { + var expectedJSONAsInterface, actualJSONAsInterface interface{} + + if err := json.Unmarshal([]byte(expected), &expectedJSONAsInterface); err != nil { + return Fail(t, fmt.Sprintf("Expected value ('%s') is not valid json.\nJSON parsing error: '%s'", expected, err.Error()), msgAndArgs...) + } + + if err := json.Unmarshal([]byte(actual), &actualJSONAsInterface); err != nil { + return Fail(t, fmt.Sprintf("Input ('%s') needs to be valid json.\nJSON parsing error: '%s'", actual, err.Error()), msgAndArgs...) + } + + return Equal(t, expectedJSONAsInterface, actualJSONAsInterface, msgAndArgs...) +} + +func typeAndKind(v interface{}) (reflect.Type, reflect.Kind) { + t := reflect.TypeOf(v) + k := t.Kind() + + if k == reflect.Ptr { + t = t.Elem() + k = t.Kind() + } + return t, k +} + +// diff returns a diff of both values as long as both are of the same type and +// are a struct, map, slice or array. Otherwise it returns an empty string. +func diff(expected interface{}, actual interface{}) string { + if expected == nil || actual == nil { + return "" + } + + et, ek := typeAndKind(expected) + at, _ := typeAndKind(actual) + + if et != at { + return "" + } + + if ek != reflect.Struct && ek != reflect.Map && ek != reflect.Slice && ek != reflect.Array { + return "" + } + + spew.Config.SortKeys = true + e := spew.Sdump(expected) + a := spew.Sdump(actual) + + diff, _ := difflib.GetUnifiedDiffString(difflib.UnifiedDiff{ + A: difflib.SplitLines(e), + B: difflib.SplitLines(a), + FromFile: "Expected", + FromDate: "", + ToFile: "Actual", + ToDate: "", + Context: 1, + }) + + return "\n\nDiff:\n" + diff +} diff --git a/Godeps/_workspace/src/github.com/stretchr/testify/assert/assertions_test.go b/Godeps/_workspace/src/github.com/stretchr/testify/assert/assertions_test.go index d859c77b9..a12352e4c 100644 --- a/Godeps/_workspace/src/github.com/stretchr/testify/assert/assertions_test.go +++ b/Godeps/_workspace/src/github.com/stretchr/testify/assert/assertions_test.go @@ -2,12 +2,82 @@ package assert import ( "errors" + "io" "math" + "os" + "reflect" "regexp" "testing" "time" ) +var ( + i interface{} + zeros = []interface{}{ + false, + byte(0), + complex64(0), + complex128(0), + float32(0), + float64(0), + int(0), + int8(0), + int16(0), + int32(0), + int64(0), + rune(0), + uint(0), + uint8(0), + uint16(0), + uint32(0), + uint64(0), + uintptr(0), + "", + [0]interface{}{}, + []interface{}(nil), + struct{ x int }{}, + (*interface{})(nil), + (func())(nil), + nil, + interface{}(nil), + map[interface{}]interface{}(nil), + (chan interface{})(nil), + (<-chan interface{})(nil), + (chan<- interface{})(nil), + } + nonZeros = []interface{}{ + true, + byte(1), + complex64(1), + complex128(1), + float32(1), + float64(1), + int(1), + int8(1), + int16(1), + int32(1), + int64(1), + rune(1), + uint(1), + uint8(1), + uint16(1), + uint32(1), + uint64(1), + uintptr(1), + "s", + [1]interface{}{1}, + []interface{}{}, + struct{ x int }{1}, + (*interface{})(&i), + (func())(func() {}), + interface{}(1), + map[interface{}]interface{}{}, + (chan interface{})(make(chan interface{})), + (<-chan interface{})(make(chan interface{})), + (chan<- interface{})(make(chan interface{})), + } +) + // AssertionTesterInterface defines an interface to be used for testing assertion methods type AssertionTesterInterface interface { TestMethod() @@ -62,6 +132,12 @@ func TestObjectsAreEqual(t *testing.T) { if !ObjectsAreEqualValues(uint32(10), int32(10)) { t.Error("ObjectsAreEqualValues should return true") } + if ObjectsAreEqualValues(0, nil) { + t.Fail() + } + if ObjectsAreEqualValues(nil, 0) { + t.Fail() + } } @@ -129,6 +205,9 @@ func TestNotNil(t *testing.T) { if NotNil(mockT, nil) { t.Error("NotNil should return false: object is nil") } + if NotNil(mockT, (*struct{})(nil)) { + t.Error("NotNil should return false: object is (*struct{})(nil)") + } } @@ -139,6 +218,9 @@ func TestNil(t *testing.T) { if !Nil(mockT, nil) { t.Error("Nil should return true: object is nil") } + if !Nil(mockT, (*struct{})(nil)) { + t.Error("Nil should return true: object is (*struct{})(nil)") + } if Nil(mockT, new(AssertionTesterConformingObject)) { t.Error("Nil should return false: object is not nil") } @@ -255,6 +337,7 @@ func TestContains(t *testing.T) { {"g", "h"}, {"j", "k"}, } + simpleMap := map[interface{}]interface{}{"Foo": "Bar"} if !Contains(mockT, "Hello World", "Hello") { t.Error("Contains should return true: \"Hello World\" contains \"Hello\"") @@ -275,12 +358,22 @@ func TestContains(t *testing.T) { if Contains(mockT, complexList, &A{"g", "e"}) { t.Error("Contains should return false: complexList contains {\"g\", \"e\"}") } + if Contains(mockT, complexList, &A{"g", "e"}) { + t.Error("Contains should return false: complexList contains {\"g\", \"e\"}") + } + if !Contains(mockT, simpleMap, "Foo") { + t.Error("Contains should return true: \"{\"Foo\": \"Bar\"}\" contains \"Foo\"") + } + if Contains(mockT, simpleMap, "Bar") { + t.Error("Contains should return false: \"{\"Foo\": \"Bar\"}\" does not contains \"Bar\"") + } } func TestNotContains(t *testing.T) { mockT := new(testing.T) list := []string{"Foo", "Bar"} + simpleMap := map[interface{}]interface{}{"Foo": "Bar"} if !NotContains(mockT, "Hello World", "Hello!") { t.Error("NotContains should return true: \"Hello World\" does not contain \"Hello!\"") @@ -295,13 +388,19 @@ func TestNotContains(t *testing.T) { if NotContains(mockT, list, "Foo") { t.Error("NotContains should return false: \"[\"Foo\", \"Bar\"]\" contains \"Foo\"") } - + if NotContains(mockT, simpleMap, "Foo") { + t.Error("Contains should return true: \"{\"Foo\": \"Bar\"}\" contains \"Foo\"") + } + if !NotContains(mockT, simpleMap, "Bar") { + t.Error("Contains should return false: \"{\"Foo\": \"Bar\"}\" does not contains \"Bar\"") + } } func Test_includeElement(t *testing.T) { list1 := []string{"Foo", "Bar"} list2 := []int{1, 2} + simpleMap := map[interface{}]interface{}{"Foo": "Bar"} ok, found := includeElement("Hello World", "World") True(t, ok) @@ -335,10 +434,17 @@ func Test_includeElement(t *testing.T) { True(t, ok) False(t, found) + ok, found = includeElement(simpleMap, "Foo") + True(t, ok) + True(t, found) + + ok, found = includeElement(simpleMap, "Bar") + True(t, ok) + False(t, found) + ok, found = includeElement(1433, "1") False(t, ok) False(t, found) - } func TestCondition(t *testing.T) { @@ -481,6 +587,9 @@ func TestEmpty(t *testing.T) { mockT := new(testing.T) chWithValue := make(chan struct{}, 1) chWithValue <- struct{}{} + var ti *time.Time + var s *string + var f *os.File True(t, Empty(mockT, ""), "Empty string is empty") True(t, Empty(mockT, nil), "Nil is empty") @@ -488,6 +597,9 @@ func TestEmpty(t *testing.T) { True(t, Empty(mockT, 0), "Zero int value is empty") True(t, Empty(mockT, false), "False value is empty") True(t, Empty(mockT, make(chan struct{})), "Channel without values is empty") + True(t, Empty(mockT, s), "Nil string pointer is empty") + True(t, Empty(mockT, f), "Nil os.File pointer is empty") + True(t, Empty(mockT, ti), "Nil time.Time pointer is empty") False(t, Empty(mockT, "something"), "Non Empty string is not empty") False(t, Empty(mockT, errors.New("something")), "Non nil object is not empty") @@ -789,3 +901,189 @@ func TestRegexp(t *testing.T) { True(t, NotRegexp(mockT, regexp.MustCompile(tc.rx), tc.str)) } } + +func testAutogeneratedFunction() { + defer func() { + if err := recover(); err == nil { + panic("did not panic") + } + CallerInfo() + }() + t := struct { + io.Closer + }{} + var c io.Closer + c = t + c.Close() +} + +func TestCallerInfoWithAutogeneratedFunctions(t *testing.T) { + NotPanics(t, func() { + testAutogeneratedFunction() + }) +} + +func TestZero(t *testing.T) { + mockT := new(testing.T) + + for _, test := range zeros { + True(t, Zero(mockT, test, "%#v is not the %v zero value", test, reflect.TypeOf(test))) + } + + for _, test := range nonZeros { + False(t, Zero(mockT, test, "%#v is not the %v zero value", test, reflect.TypeOf(test))) + } +} + +func TestNotZero(t *testing.T) { + mockT := new(testing.T) + + for _, test := range zeros { + False(t, NotZero(mockT, test, "%#v is not the %v zero value", test, reflect.TypeOf(test))) + } + + for _, test := range nonZeros { + True(t, NotZero(mockT, test, "%#v is not the %v zero value", test, reflect.TypeOf(test))) + } +} + +func TestJSONEq_EqualSONString(t *testing.T) { + mockT := new(testing.T) + True(t, JSONEq(mockT, `{"hello": "world", "foo": "bar"}`, `{"hello": "world", "foo": "bar"}`)) +} + +func TestJSONEq_EquivalentButNotEqual(t *testing.T) { + mockT := new(testing.T) + True(t, JSONEq(mockT, `{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`)) +} + +func TestJSONEq_HashOfArraysAndHashes(t *testing.T) { + mockT := new(testing.T) + True(t, JSONEq(mockT, "{\r\n\t\"numeric\": 1.5,\r\n\t\"array\": [{\"foo\": \"bar\"}, 1, \"string\", [\"nested\", \"array\", 5.5]],\r\n\t\"hash\": {\"nested\": \"hash\", \"nested_slice\": [\"this\", \"is\", \"nested\"]},\r\n\t\"string\": \"foo\"\r\n}", + "{\r\n\t\"numeric\": 1.5,\r\n\t\"hash\": {\"nested\": \"hash\", \"nested_slice\": [\"this\", \"is\", \"nested\"]},\r\n\t\"string\": \"foo\",\r\n\t\"array\": [{\"foo\": \"bar\"}, 1, \"string\", [\"nested\", \"array\", 5.5]]\r\n}")) +} + +func TestJSONEq_Array(t *testing.T) { + mockT := new(testing.T) + True(t, JSONEq(mockT, `["foo", {"hello": "world", "nested": "hash"}]`, `["foo", {"nested": "hash", "hello": "world"}]`)) +} + +func TestJSONEq_HashAndArrayNotEquivalent(t *testing.T) { + mockT := new(testing.T) + False(t, JSONEq(mockT, `["foo", {"hello": "world", "nested": "hash"}]`, `{"foo": "bar", {"nested": "hash", "hello": "world"}}`)) +} + +func TestJSONEq_HashesNotEquivalent(t *testing.T) { + mockT := new(testing.T) + False(t, JSONEq(mockT, `{"foo": "bar"}`, `{"foo": "bar", "hello": "world"}`)) +} + +func TestJSONEq_ActualIsNotJSON(t *testing.T) { + mockT := new(testing.T) + False(t, JSONEq(mockT, `{"foo": "bar"}`, "Not JSON")) +} + +func TestJSONEq_ExpectedIsNotJSON(t *testing.T) { + mockT := new(testing.T) + False(t, JSONEq(mockT, "Not JSON", `{"foo": "bar", "hello": "world"}`)) +} + +func TestJSONEq_ExpectedAndActualNotJSON(t *testing.T) { + mockT := new(testing.T) + False(t, JSONEq(mockT, "Not JSON", "Not JSON")) +} + +func TestJSONEq_ArraysOfDifferentOrder(t *testing.T) { + mockT := new(testing.T) + False(t, JSONEq(mockT, `["foo", {"hello": "world", "nested": "hash"}]`, `[{ "hello": "world", "nested": "hash"}, "foo"]`)) +} + +func TestDiff(t *testing.T) { + expected := ` + +Diff: +--- Expected ++++ Actual +@@ -1,3 +1,3 @@ + (struct { foo string }) { +- foo: (string) (len=5) "hello" ++ foo: (string) (len=3) "bar" + } +` + actual := diff( + struct{ foo string }{"hello"}, + struct{ foo string }{"bar"}, + ) + Equal(t, expected, actual) + + expected = ` + +Diff: +--- Expected ++++ Actual +@@ -2,5 +2,5 @@ + (int) 1, +- (int) 2, + (int) 3, +- (int) 4 ++ (int) 5, ++ (int) 7 + } +` + actual = diff( + []int{1, 2, 3, 4}, + []int{1, 3, 5, 7}, + ) + Equal(t, expected, actual) + + expected = ` + +Diff: +--- Expected ++++ Actual +@@ -2,4 +2,4 @@ + (int) 1, +- (int) 2, +- (int) 3 ++ (int) 3, ++ (int) 5 + } +` + actual = diff( + []int{1, 2, 3, 4}[0:3], + []int{1, 3, 5, 7}[0:3], + ) + Equal(t, expected, actual) + + expected = ` + +Diff: +--- Expected ++++ Actual +@@ -1,6 +1,6 @@ + (map[string]int) (len=4) { +- (string) (len=4) "four": (int) 4, ++ (string) (len=4) "five": (int) 5, + (string) (len=3) "one": (int) 1, +- (string) (len=5) "three": (int) 3, +- (string) (len=3) "two": (int) 2 ++ (string) (len=5) "seven": (int) 7, ++ (string) (len=5) "three": (int) 3 + } +` + + actual = diff( + map[string]int{"one": 1, "two": 2, "three": 3, "four": 4}, + map[string]int{"one": 1, "three": 3, "five": 5, "seven": 7}, + ) + Equal(t, expected, actual) +} + +func TestDiffEmptyCases(t *testing.T) { + Equal(t, "", diff(nil, nil)) + Equal(t, "", diff(struct{ foo string }{}, nil)) + Equal(t, "", diff(nil, struct{ foo string }{})) + Equal(t, "", diff(1, 2)) + Equal(t, "", diff(1, 2)) + Equal(t, "", diff([]int{1}, []bool{true})) +} diff --git a/Godeps/_workspace/src/github.com/stretchr/testify/assert/doc.go b/Godeps/_workspace/src/github.com/stretchr/testify/assert/doc.go index f67810628..c9dccc4d6 100644 --- a/Godeps/_workspace/src/github.com/stretchr/testify/assert/doc.go +++ b/Godeps/_workspace/src/github.com/stretchr/testify/assert/doc.go @@ -17,7 +17,7 @@ // // } // -// if you assert many times, use the below: +// if you assert many times, use the format below: // // import ( // "testing" @@ -42,113 +42,4 @@ // // Every assertion function also takes an optional string message as the final argument, // allowing custom error messages to be appended to the message the assertion method outputs. -// -// Here is an overview of the assert functions: -// -// assert.Equal(t, expected, actual [, message [, format-args]]) -// -// assert.EqualValues(t, expected, actual [, message [, format-args]]) -// -// assert.NotEqual(t, notExpected, actual [, message [, format-args]]) -// -// assert.True(t, actualBool [, message [, format-args]]) -// -// assert.False(t, actualBool [, message [, format-args]]) -// -// assert.Nil(t, actualObject [, message [, format-args]]) -// -// assert.NotNil(t, actualObject [, message [, format-args]]) -// -// assert.Empty(t, actualObject [, message [, format-args]]) -// -// assert.NotEmpty(t, actualObject [, message [, format-args]]) -// -// assert.Len(t, actualObject, expectedLength, [, message [, format-args]]) -// -// assert.Error(t, errorObject [, message [, format-args]]) -// -// assert.NoError(t, errorObject [, message [, format-args]]) -// -// assert.EqualError(t, theError, errString [, message [, format-args]]) -// -// assert.Implements(t, (*MyInterface)(nil), new(MyObject) [,message [, format-args]]) -// -// assert.IsType(t, expectedObject, actualObject [, message [, format-args]]) -// -// assert.Contains(t, stringOrSlice, substringOrElement [, message [, format-args]]) -// -// assert.NotContains(t, stringOrSlice, substringOrElement [, message [, format-args]]) -// -// assert.Panics(t, func(){ -// -// // call code that should panic -// -// } [, message [, format-args]]) -// -// assert.NotPanics(t, func(){ -// -// // call code that should not panic -// -// } [, message [, format-args]]) -// -// assert.WithinDuration(t, timeA, timeB, deltaTime, [, message [, format-args]]) -// -// assert.InDelta(t, numA, numB, delta, [, message [, format-args]]) -// -// assert.InEpsilon(t, numA, numB, epsilon, [, message [, format-args]]) -// -// assert package contains Assertions object. it has assertion methods. -// -// Here is an overview of the assert functions: -// assert.Equal(expected, actual [, message [, format-args]]) -// -// assert.EqualValues(expected, actual [, message [, format-args]]) -// -// assert.NotEqual(notExpected, actual [, message [, format-args]]) -// -// assert.True(actualBool [, message [, format-args]]) -// -// assert.False(actualBool [, message [, format-args]]) -// -// assert.Nil(actualObject [, message [, format-args]]) -// -// assert.NotNil(actualObject [, message [, format-args]]) -// -// assert.Empty(actualObject [, message [, format-args]]) -// -// assert.NotEmpty(actualObject [, message [, format-args]]) -// -// assert.Len(actualObject, expectedLength, [, message [, format-args]]) -// -// assert.Error(errorObject [, message [, format-args]]) -// -// assert.NoError(errorObject [, message [, format-args]]) -// -// assert.EqualError(theError, errString [, message [, format-args]]) -// -// assert.Implements((*MyInterface)(nil), new(MyObject) [,message [, format-args]]) -// -// assert.IsType(expectedObject, actualObject [, message [, format-args]]) -// -// assert.Contains(stringOrSlice, substringOrElement [, message [, format-args]]) -// -// assert.NotContains(stringOrSlice, substringOrElement [, message [, format-args]]) -// -// assert.Panics(func(){ -// -// // call code that should panic -// -// } [, message [, format-args]]) -// -// assert.NotPanics(func(){ -// -// // call code that should not panic -// -// } [, message [, format-args]]) -// -// assert.WithinDuration(timeA, timeB, deltaTime, [, message [, format-args]]) -// -// assert.InDelta(numA, numB, delta, [, message [, format-args]]) -// -// assert.InEpsilon(numA, numB, epsilon, [, message [, format-args]]) package assert diff --git a/Godeps/_workspace/src/github.com/stretchr/testify/assert/forward_assertions.go b/Godeps/_workspace/src/github.com/stretchr/testify/assert/forward_assertions.go index d8d3f531e..cab3aa2ac 100644 --- a/Godeps/_workspace/src/github.com/stretchr/testify/assert/forward_assertions.go +++ b/Godeps/_workspace/src/github.com/stretchr/testify/assert/forward_assertions.go @@ -81,7 +81,7 @@ func (a *Assertions) Nil(object interface{}, msgAndArgs ...interface{}) bool { // Empty asserts that the specified object is empty. I.e. nil, "", false, 0 or a // slice with len == 0. // -// assert.Empty(obj) +// assert.Empty(obj) // // Returns whether the assertion was successful (true) or not (false). func (a *Assertions) Empty(object interface{}, msgAndArgs ...interface{}) bool { @@ -91,9 +91,9 @@ func (a *Assertions) Empty(object interface{}, msgAndArgs ...interface{}) bool { // NotEmpty asserts that the specified object is NOT empty. I.e. not nil, "", false, 0 or a // slice with len == 0. // -// if assert.NotEmpty(obj) { -// assert.Equal("two", obj[1]) -// } +// if assert.NotEmpty(obj) { +// assert.Equal("two", obj[1]) +// } // // Returns whether the assertion was successful (true) or not (false). func (a *Assertions) NotEmpty(object interface{}, msgAndArgs ...interface{}) bool { @@ -263,3 +263,22 @@ func (a *Assertions) Regexp(rx interface{}, str interface{}, msgAndArgs ...inter func (a *Assertions) NotRegexp(rx interface{}, str interface{}, msgAndArgs ...interface{}) bool { return NotRegexp(a.t, rx, str, msgAndArgs...) } + +// Zero asserts that i is the zero value for its type and returns the truth. +func (a *Assertions) Zero(i interface{}, msgAndArgs ...interface{}) bool { + return Zero(a.t, i, msgAndArgs...) +} + +// NotZero asserts that i is not the zero value for its type and returns the truth. +func (a *Assertions) NotZero(i interface{}, msgAndArgs ...interface{}) bool { + return NotZero(a.t, i, msgAndArgs...) +} + +// JSONEq asserts that two JSON strings are equivalent. +// +// assert.JSONEq(t, `{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`) +// +// Returns whether the assertion was successful (true) or not (false). +func (a *Assertions) JSONEq(expected string, actual string, msgAndArgs ...interface{}) bool { + return JSONEq(a.t, expected, actual, msgAndArgs...) +} diff --git a/Godeps/_workspace/src/github.com/stretchr/testify/assert/forward_assertions_test.go b/Godeps/_workspace/src/github.com/stretchr/testify/assert/forward_assertions_test.go index 3df3f3917..22e1df1d9 100644 --- a/Godeps/_workspace/src/github.com/stretchr/testify/assert/forward_assertions_test.go +++ b/Godeps/_workspace/src/github.com/stretchr/testify/assert/forward_assertions_test.go @@ -509,3 +509,103 @@ func TestRegexpWrapper(t *testing.T) { True(t, assert.NotRegexp(regexp.MustCompile(tc.rx), tc.str)) } } + +func TestZeroWrapper(t *testing.T) { + assert := New(t) + mockAssert := New(new(testing.T)) + + for _, test := range zeros { + assert.True(mockAssert.Zero(test), "Zero should return true for %v", test) + } + + for _, test := range nonZeros { + assert.False(mockAssert.Zero(test), "Zero should return false for %v", test) + } +} + +func TestNotZeroWrapper(t *testing.T) { + assert := New(t) + mockAssert := New(new(testing.T)) + + for _, test := range zeros { + assert.False(mockAssert.NotZero(test), "Zero should return true for %v", test) + } + + for _, test := range nonZeros { + assert.True(mockAssert.NotZero(test), "Zero should return false for %v", test) + } +} + +func TestJSONEqWrapper_EqualSONString(t *testing.T) { + assert := New(new(testing.T)) + if !assert.JSONEq(`{"hello": "world", "foo": "bar"}`, `{"hello": "world", "foo": "bar"}`) { + t.Error("JSONEq should return true") + } + +} + +func TestJSONEqWrapper_EquivalentButNotEqual(t *testing.T) { + assert := New(new(testing.T)) + if !assert.JSONEq(`{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`) { + t.Error("JSONEq should return true") + } + +} + +func TestJSONEqWrapper_HashOfArraysAndHashes(t *testing.T) { + assert := New(new(testing.T)) + if !assert.JSONEq("{\r\n\t\"numeric\": 1.5,\r\n\t\"array\": [{\"foo\": \"bar\"}, 1, \"string\", [\"nested\", \"array\", 5.5]],\r\n\t\"hash\": {\"nested\": \"hash\", \"nested_slice\": [\"this\", \"is\", \"nested\"]},\r\n\t\"string\": \"foo\"\r\n}", + "{\r\n\t\"numeric\": 1.5,\r\n\t\"hash\": {\"nested\": \"hash\", \"nested_slice\": [\"this\", \"is\", \"nested\"]},\r\n\t\"string\": \"foo\",\r\n\t\"array\": [{\"foo\": \"bar\"}, 1, \"string\", [\"nested\", \"array\", 5.5]]\r\n}") { + t.Error("JSONEq should return true") + } +} + +func TestJSONEqWrapper_Array(t *testing.T) { + assert := New(new(testing.T)) + if !assert.JSONEq(`["foo", {"hello": "world", "nested": "hash"}]`, `["foo", {"nested": "hash", "hello": "world"}]`) { + t.Error("JSONEq should return true") + } + +} + +func TestJSONEqWrapper_HashAndArrayNotEquivalent(t *testing.T) { + assert := New(new(testing.T)) + if assert.JSONEq(`["foo", {"hello": "world", "nested": "hash"}]`, `{"foo": "bar", {"nested": "hash", "hello": "world"}}`) { + t.Error("JSONEq should return false") + } +} + +func TestJSONEqWrapper_HashesNotEquivalent(t *testing.T) { + assert := New(new(testing.T)) + if assert.JSONEq(`{"foo": "bar"}`, `{"foo": "bar", "hello": "world"}`) { + t.Error("JSONEq should return false") + } +} + +func TestJSONEqWrapper_ActualIsNotJSON(t *testing.T) { + assert := New(new(testing.T)) + if assert.JSONEq(`{"foo": "bar"}`, "Not JSON") { + t.Error("JSONEq should return false") + } +} + +func TestJSONEqWrapper_ExpectedIsNotJSON(t *testing.T) { + assert := New(new(testing.T)) + if assert.JSONEq("Not JSON", `{"foo": "bar", "hello": "world"}`) { + t.Error("JSONEq should return false") + } +} + +func TestJSONEqWrapper_ExpectedAndActualNotJSON(t *testing.T) { + assert := New(new(testing.T)) + if assert.JSONEq("Not JSON", "Not JSON") { + t.Error("JSONEq should return false") + } +} + +func TestJSONEqWrapper_ArraysOfDifferentOrder(t *testing.T) { + assert := New(new(testing.T)) + if assert.JSONEq(`["foo", {"hello": "world", "nested": "hash"}]`, `[{ "hello": "world", "nested": "hash"}, "foo"]`) { + t.Error("JSONEq should return false") + } +} diff --git a/Godeps/_workspace/src/github.com/stretchr/testify/assert/http_assertions.go b/Godeps/_workspace/src/github.com/stretchr/testify/assert/http_assertions.go index 1246e58e0..437a86ce4 100644 --- a/Godeps/_workspace/src/github.com/stretchr/testify/assert/http_assertions.go +++ b/Godeps/_workspace/src/github.com/stretchr/testify/assert/http_assertions.go @@ -10,9 +10,9 @@ import ( // httpCode is a helper that returns HTTP code of the response. It returns -1 // if building a new request fails. -func httpCode(handler http.HandlerFunc, mode, url string, values url.Values) int { +func httpCode(handler http.HandlerFunc, method, url string, values url.Values) int { w := httptest.NewRecorder() - req, err := http.NewRequest(mode, url+"?"+values.Encode(), nil) + req, err := http.NewRequest(method, url+"?"+values.Encode(), nil) if err != nil { return -1 } @@ -25,8 +25,8 @@ func httpCode(handler http.HandlerFunc, mode, url string, values url.Values) int // assert.HTTPSuccess(t, myHandler, "POST", "http://www.google.com", nil) // // Returns whether the assertion was successful (true) or not (false). -func HTTPSuccess(t TestingT, handler http.HandlerFunc, mode, url string, values url.Values) bool { - code := httpCode(handler, mode, url, values) +func HTTPSuccess(t TestingT, handler http.HandlerFunc, method, url string, values url.Values) bool { + code := httpCode(handler, method, url, values) if code == -1 { return false } @@ -38,8 +38,8 @@ func HTTPSuccess(t TestingT, handler http.HandlerFunc, mode, url string, values // assert.HTTPRedirect(t, myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} // // Returns whether the assertion was successful (true) or not (false). -func HTTPRedirect(t TestingT, handler http.HandlerFunc, mode, url string, values url.Values) bool { - code := httpCode(handler, mode, url, values) +func HTTPRedirect(t TestingT, handler http.HandlerFunc, method, url string, values url.Values) bool { + code := httpCode(handler, method, url, values) if code == -1 { return false } @@ -51,8 +51,8 @@ func HTTPRedirect(t TestingT, handler http.HandlerFunc, mode, url string, values // assert.HTTPError(t, myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} // // Returns whether the assertion was successful (true) or not (false). -func HTTPError(t TestingT, handler http.HandlerFunc, mode, url string, values url.Values) bool { - code := httpCode(handler, mode, url, values) +func HTTPError(t TestingT, handler http.HandlerFunc, method, url string, values url.Values) bool { + code := httpCode(handler, method, url, values) if code == -1 { return false } @@ -61,9 +61,9 @@ func HTTPError(t TestingT, handler http.HandlerFunc, mode, url string, values ur // HTTPBody is a helper that returns HTTP body of the response. It returns // empty string if building a new request fails. -func HTTPBody(handler http.HandlerFunc, mode, url string, values url.Values) string { +func HTTPBody(handler http.HandlerFunc, method, url string, values url.Values) string { w := httptest.NewRecorder() - req, err := http.NewRequest(mode, url+"?"+values.Encode(), nil) + req, err := http.NewRequest(method, url+"?"+values.Encode(), nil) if err != nil { return "" } @@ -77,8 +77,8 @@ func HTTPBody(handler http.HandlerFunc, mode, url string, values url.Values) str // assert.HTTPBodyContains(t, myHandler, "www.google.com", nil, "I'm Feeling Lucky") // // Returns whether the assertion was successful (true) or not (false). -func HTTPBodyContains(t TestingT, handler http.HandlerFunc, mode, url string, values url.Values, str interface{}) bool { - body := HTTPBody(handler, mode, url, values) +func HTTPBodyContains(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, str interface{}) bool { + body := HTTPBody(handler, method, url, values) contains := strings.Contains(body, fmt.Sprint(str)) if !contains { @@ -94,8 +94,8 @@ func HTTPBodyContains(t TestingT, handler http.HandlerFunc, mode, url string, va // assert.HTTPBodyNotContains(t, myHandler, "www.google.com", nil, "I'm Feeling Lucky") // // Returns whether the assertion was successful (true) or not (false). -func HTTPBodyNotContains(t TestingT, handler http.HandlerFunc, mode, url string, values url.Values, str interface{}) bool { - body := HTTPBody(handler, mode, url, values) +func HTTPBodyNotContains(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, str interface{}) bool { + body := HTTPBody(handler, method, url, values) contains := strings.Contains(body, fmt.Sprint(str)) if contains { @@ -114,8 +114,8 @@ func HTTPBodyNotContains(t TestingT, handler http.HandlerFunc, mode, url string, // assert.HTTPSuccess(myHandler, "POST", "http://www.google.com", nil) // // Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPSuccess(handler http.HandlerFunc, mode, url string, values url.Values) bool { - return HTTPSuccess(a.t, handler, mode, url, values) +func (a *Assertions) HTTPSuccess(handler http.HandlerFunc, method, url string, values url.Values) bool { + return HTTPSuccess(a.t, handler, method, url, values) } // HTTPRedirect asserts that a specified handler returns a redirect status code. @@ -123,8 +123,8 @@ func (a *Assertions) HTTPSuccess(handler http.HandlerFunc, mode, url string, val // assert.HTTPRedirect(myHandler, "GET", "/a/b/c", url.Values{"a": []string{"b", "c"}} // // Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPRedirect(handler http.HandlerFunc, mode, url string, values url.Values) bool { - return HTTPRedirect(a.t, handler, mode, url, values) +func (a *Assertions) HTTPRedirect(handler http.HandlerFunc, method, url string, values url.Values) bool { + return HTTPRedirect(a.t, handler, method, url, values) } // HTTPError asserts that a specified handler returns an error status code. @@ -132,8 +132,8 @@ func (a *Assertions) HTTPRedirect(handler http.HandlerFunc, mode, url string, va // assert.HTTPError(myHandler, "POST", "/a/b/c", url.Values{"a": []string{"b", "c"}} // // Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPError(handler http.HandlerFunc, mode, url string, values url.Values) bool { - return HTTPError(a.t, handler, mode, url, values) +func (a *Assertions) HTTPError(handler http.HandlerFunc, method, url string, values url.Values) bool { + return HTTPError(a.t, handler, method, url, values) } // HTTPBodyContains asserts that a specified handler returns a @@ -142,8 +142,8 @@ func (a *Assertions) HTTPError(handler http.HandlerFunc, mode, url string, value // assert.HTTPBodyContains(t, myHandler, "www.google.com", nil, "I'm Feeling Lucky") // // Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPBodyContains(handler http.HandlerFunc, mode, url string, values url.Values, str interface{}) bool { - return HTTPBodyContains(a.t, handler, mode, url, values, str) +func (a *Assertions) HTTPBodyContains(handler http.HandlerFunc, method, url string, values url.Values, str interface{}) bool { + return HTTPBodyContains(a.t, handler, method, url, values, str) } // HTTPBodyNotContains asserts that a specified handler returns a @@ -152,6 +152,6 @@ func (a *Assertions) HTTPBodyContains(handler http.HandlerFunc, mode, url string // assert.HTTPBodyNotContains(t, myHandler, "www.google.com", nil, "I'm Feeling Lucky") // // Returns whether the assertion was successful (true) or not (false). -func (a *Assertions) HTTPBodyNotContains(handler http.HandlerFunc, mode, url string, values url.Values, str interface{}) bool { - return HTTPBodyNotContains(a.t, handler, mode, url, values, str) +func (a *Assertions) HTTPBodyNotContains(handler http.HandlerFunc, method, url string, values url.Values, str interface{}) bool { + return HTTPBodyNotContains(a.t, handler, method, url, values, str) } diff --git a/Godeps/_workspace/src/github.com/stretchr/testify/mock/mock.go b/Godeps/_workspace/src/github.com/stretchr/testify/mock/mock.go index fa8747e29..111a281b4 100644 --- a/Godeps/_workspace/src/github.com/stretchr/testify/mock/mock.go +++ b/Godeps/_workspace/src/github.com/stretchr/testify/mock/mock.go @@ -2,13 +2,15 @@ package mock import ( "fmt" - "github.com/stretchr/objx" - "github.com/stretchr/testify/assert" "reflect" + "regexp" "runtime" "strings" "sync" "time" + + "github.com/stretchr/objx" + "github.com/stretchr/testify/assert" ) // TestingT is an interface wrapper around *testing.T @@ -24,6 +26,7 @@ type TestingT interface { // Call represents a method call and is used for setting expectations, // as well as recording activity. type Call struct { + Parent *Mock // The name of the method that was or will be called. Method string @@ -46,112 +49,79 @@ type Call struct { // Holds a handler used to manipulate arguments content that are passed by // reference. It's useful when mocking methods such as unmarshalers or // decoders. - Run func(Arguments) -} - -// Mock is the workhorse used to track activity on another object. -// For an example of its usage, refer to the "Example Usage" section at the top of this document. -type Mock struct { - - // The method name that is currently - // being referred to by the On method. - onMethodName string - - // An array of the arguments that are - // currently being referred to by the On method. - onMethodArguments Arguments - - // Represents the calls that are expected of - // an object. - ExpectedCalls []Call - - // Holds the calls that were made to this mocked object. - Calls []Call - - // TestData holds any data that might be useful for testing. Testify ignores - // this data completely allowing you to do whatever you like with it. - testData objx.Map - - mutex sync.Mutex + RunFn func(Arguments) } -// TestData holds any data that might be useful for testing. Testify ignores -// this data completely allowing you to do whatever you like with it. -func (m *Mock) TestData() objx.Map { - - if m.testData == nil { - m.testData = make(objx.Map) +func newCall(parent *Mock, methodName string, methodArguments ...interface{}) *Call { + return &Call{ + Parent: parent, + Method: methodName, + Arguments: methodArguments, + ReturnArguments: make([]interface{}, 0), + Repeatability: 0, + WaitFor: nil, + RunFn: nil, } - - return m.testData } -/* - Setting expectations -*/ +func (self *Call) lock() { + self.Parent.mutex.Lock() +} -// On starts a description of an expectation of the specified method -// being called. -// -// Mock.On("MyMethod", arg1, arg2) -func (m *Mock) On(methodName string, arguments ...interface{}) *Mock { - m.onMethodName = methodName - m.onMethodArguments = arguments +func (self *Call) unlock() { + self.Parent.mutex.Unlock() +} - for _, arg := range arguments { - if v := reflect.ValueOf(arg); v.Kind() == reflect.Func { - panic(fmt.Sprintf("cannot use Func in expectations. Use mock.AnythingOfType(\"%T\")", arg)) - } - } +func (self *Call) Return(returnArguments ...interface{}) *Call { + self.lock() + defer self.unlock() - return m -} + self.ReturnArguments = returnArguments -// Return finishes a description of an expectation of the method (and arguments) -// specified in the most recent On method call. -// -// Mock.On("MyMethod", arg1, arg2).Return(returnArg1, returnArg2) -func (m *Mock) Return(returnArguments ...interface{}) *Mock { - m.ExpectedCalls = append(m.ExpectedCalls, Call{m.onMethodName, m.onMethodArguments, returnArguments, 0, nil, nil}) - return m + return self } // Once indicates that that the mock should only return the value once. // // Mock.On("MyMethod", arg1, arg2).Return(returnArg1, returnArg2).Once() -func (m *Mock) Once() { - m.ExpectedCalls[len(m.ExpectedCalls)-1].Repeatability = 1 +func (self *Call) Once() *Call { + return self.Times(1) } // Twice indicates that that the mock should only return the value twice. // // Mock.On("MyMethod", arg1, arg2).Return(returnArg1, returnArg2).Twice() -func (m *Mock) Twice() { - m.ExpectedCalls[len(m.ExpectedCalls)-1].Repeatability = 2 +func (self *Call) Twice() *Call { + return self.Times(2) } // Times indicates that that the mock should only return the indicated number // of times. // // Mock.On("MyMethod", arg1, arg2).Return(returnArg1, returnArg2).Times(5) -func (m *Mock) Times(i int) { - m.ExpectedCalls[len(m.ExpectedCalls)-1].Repeatability = i +func (self *Call) Times(i int) *Call { + self.lock() + defer self.unlock() + self.Repeatability = i + return self } // WaitUntil sets the channel that will block the mock's return until its closed // or a message is received. // // Mock.On("MyMethod", arg1, arg2).WaitUntil(time.After(time.Second)) -func (m *Mock) WaitUntil(w <-chan time.Time) *Mock { - m.ExpectedCalls[len(m.ExpectedCalls)-1].WaitFor = w - return m +func (self *Call) WaitUntil(w <-chan time.Time) *Call { + self.lock() + defer self.unlock() + self.WaitFor = w + return self } // After sets how long to block until the call returns // // Mock.On("MyMethod", arg1, arg2).After(time.Second) -func (m *Mock) After(d time.Duration) *Mock { - return m.WaitUntil(time.After(d)) +func (self *Call) After(d time.Duration) *Call { + return self.WaitUntil(time.After(d)) } // Run sets a handler to be called before returning. It can be used when @@ -162,22 +132,87 @@ func (m *Mock) After(d time.Duration) *Mock { // arg := args.Get(0).(*map[string]interface{}) // arg["foo"] = "bar" // }) -func (m *Mock) Run(fn func(Arguments)) *Mock { - m.ExpectedCalls[len(m.ExpectedCalls)-1].Run = fn - return m +func (self *Call) Run(fn func(Arguments)) *Call { + self.lock() + defer self.unlock() + self.RunFn = fn + return self +} + +// On chains a new expectation description onto the mocked interface. This +// allows syntax like. +// +// Mock. +// On("MyMethod", 1).Return(nil). +// On("MyOtherMethod", 'a', 'b', 'c').Return(errors.New("Some Error")) +func (self *Call) On(methodName string, arguments ...interface{}) *Call { + return self.Parent.On(methodName, arguments...) +} + +// Mock is the workhorse used to track activity on another object. +// For an example of its usage, refer to the "Example Usage" section at the top +// of this document. +type Mock struct { + // Represents the calls that are expected of + // an object. + ExpectedCalls []*Call + + // Holds the calls that were made to this mocked object. + Calls []Call + + // TestData holds any data that might be useful for testing. Testify ignores + // this data completely allowing you to do whatever you like with it. + testData objx.Map + + mutex sync.Mutex +} + +// TestData holds any data that might be useful for testing. Testify ignores +// this data completely allowing you to do whatever you like with it. +func (m *Mock) TestData() objx.Map { + + if m.testData == nil { + m.testData = make(objx.Map) + } + + return m.testData } /* - Recording and responding to activity + Setting expectations */ +// On starts a description of an expectation of the specified method +// being called. +// +// Mock.On("MyMethod", arg1, arg2) +func (self *Mock) On(methodName string, arguments ...interface{}) *Call { + for _, arg := range arguments { + if v := reflect.ValueOf(arg); v.Kind() == reflect.Func { + panic(fmt.Sprintf("cannot use Func in expectations. Use mock.AnythingOfType(\"%T\")", arg)) + } + } + + self.mutex.Lock() + defer self.mutex.Unlock() + c := newCall(self, methodName, arguments...) + self.ExpectedCalls = append(self.ExpectedCalls, c) + return c +} + +// /* +// Recording and responding to activity +// */ + func (m *Mock) findExpectedCall(method string, arguments ...interface{}) (int, *Call) { + m.mutex.Lock() + defer m.mutex.Unlock() for i, call := range m.ExpectedCalls { if call.Method == method && call.Repeatability > -1 { _, diffCount := call.Arguments.Diff(arguments) if diffCount == 0 { - return i, &call + return i, call } } @@ -186,17 +221,16 @@ func (m *Mock) findExpectedCall(method string, arguments ...interface{}) (int, * } func (m *Mock) findClosestCall(method string, arguments ...interface{}) (bool, *Call) { - diffCount := 0 var closestCall *Call = nil - for _, call := range m.ExpectedCalls { + for _, call := range m.expectedCalls() { if call.Method == method { _, tempDiffCount := call.Arguments.Diff(arguments) if tempDiffCount < diffCount || diffCount == 0 { diffCount = tempDiffCount - closestCall = &call + closestCall = call } } @@ -215,7 +249,7 @@ func callString(method string, arguments Arguments, includeArgumentValues bool) if includeArgumentValues { var argVals []string for argIndex, arg := range arguments { - argVals = append(argVals, fmt.Sprintf("%d: %v", argIndex, arg)) + argVals = append(argVals, fmt.Sprintf("%d: %#v", argIndex, arg)) } argValsString = fmt.Sprintf("\n\t\t%s", strings.Join(argVals, "\n\t\t")) } @@ -228,22 +262,26 @@ func callString(method string, arguments Arguments, includeArgumentValues bool) // appropriate .On .Return() calls) // If Call.WaitFor is set, blocks until the channel is closed or receives a message. func (m *Mock) Called(arguments ...interface{}) Arguments { - defer m.mutex.Unlock() - m.mutex.Lock() - // get the calling function's name pc, _, _, ok := runtime.Caller(1) if !ok { panic("Couldn't get the caller information") } functionPath := runtime.FuncForPC(pc).Name() + //Next four lines are required to use GCCGO function naming conventions. + //For Ex: github_com_docker_libkv_store_mock.WatchTree.pN39_github_com_docker_libkv_store_mock.Mock + //uses inteface information unlike golang github.com/docker/libkv/store/mock.(*Mock).WatchTree + //With GCCGO we need to remove interface information starting from pN<dd>. + re := regexp.MustCompile("\\.pN\\d+_") + if re.MatchString(functionPath) { + functionPath = re.Split(functionPath, -1)[0] + } parts := strings.Split(functionPath, ".") functionName := parts[len(parts)-1] found, call := m.findExpectedCall(functionName, arguments...) - switch { - case found < 0: + if found < 0 { // we have to fail here - because we don't know what to do // as the return arguments. This is because: // @@ -258,28 +296,33 @@ func (m *Mock) Called(arguments ...interface{}) Arguments { } else { panic(fmt.Sprintf("\nassert: mock: I don't know what to return because the method call was unexpected.\n\tEither do Mock.On(\"%s\").Return(...) first, or remove the %s() call.\n\tThis method was unexpected:\n\t\t%s\n\tat: %s", functionName, functionName, callString(functionName, arguments, true), assert.CallerInfo())) } - case call.Repeatability == 1: - call.Repeatability = -1 - m.ExpectedCalls[found] = *call - case call.Repeatability > 1: - call.Repeatability -= 1 - m.ExpectedCalls[found] = *call + } else { + m.mutex.Lock() + switch { + case call.Repeatability == 1: + call.Repeatability = -1 + + case call.Repeatability > 1: + call.Repeatability -= 1 + } + m.mutex.Unlock() } // add the call - m.Calls = append(m.Calls, Call{functionName, arguments, make([]interface{}, 0), 0, nil, nil}) + m.mutex.Lock() + m.Calls = append(m.Calls, *newCall(m, functionName, arguments...)) + m.mutex.Unlock() // block if specified if call.WaitFor != nil { <-call.WaitFor } - if call.Run != nil { - call.Run(arguments) + if call.RunFn != nil { + call.RunFn(arguments) } return call.ReturnArguments - } /* @@ -302,27 +345,30 @@ func AssertExpectationsForObjects(t TestingT, testObjects ...interface{}) bool { // AssertExpectations asserts that everything specified with On and Return was // in fact called as expected. Calls may have occurred in any order. func (m *Mock) AssertExpectations(t TestingT) bool { - var somethingMissing bool = false var failedExpectations int = 0 // iterate through each expectation - for _, expectedCall := range m.ExpectedCalls { - switch { - case !m.methodWasCalled(expectedCall.Method, expectedCall.Arguments): + expectedCalls := m.expectedCalls() + for _, expectedCall := range expectedCalls { + if !m.methodWasCalled(expectedCall.Method, expectedCall.Arguments) { somethingMissing = true failedExpectations++ t.Logf("\u274C\t%s(%s)", expectedCall.Method, expectedCall.Arguments.String()) - case expectedCall.Repeatability > 0: - somethingMissing = true - failedExpectations++ - default: - t.Logf("\u2705\t%s(%s)", expectedCall.Method, expectedCall.Arguments.String()) + } else { + m.mutex.Lock() + if expectedCall.Repeatability > 0 { + somethingMissing = true + failedExpectations++ + } else { + t.Logf("\u2705\t%s(%s)", expectedCall.Method, expectedCall.Arguments.String()) + } + m.mutex.Unlock() } } if somethingMissing { - t.Errorf("FAIL: %d out of %d expectation(s) were met.\n\tThe code you are testing needs to make %d more call(s).\n\tat: %s", len(m.ExpectedCalls)-failedExpectations, len(m.ExpectedCalls), failedExpectations, assert.CallerInfo()) + t.Errorf("FAIL: %d out of %d expectation(s) were met.\n\tThe code you are testing needs to make %d more call(s).\n\tat: %s", len(expectedCalls)-failedExpectations, len(expectedCalls), failedExpectations, assert.CallerInfo()) } return !somethingMissing @@ -331,18 +377,18 @@ func (m *Mock) AssertExpectations(t TestingT) bool { // AssertNumberOfCalls asserts that the method was called expectedCalls times. func (m *Mock) AssertNumberOfCalls(t TestingT, methodName string, expectedCalls int) bool { var actualCalls int = 0 - for _, call := range m.Calls { + for _, call := range m.calls() { if call.Method == methodName { actualCalls++ } } - return assert.Equal(t, actualCalls, expectedCalls, fmt.Sprintf("Expected number of calls (%d) does not match the actual number of calls (%d).", expectedCalls, actualCalls)) + return assert.Equal(t, expectedCalls, actualCalls, fmt.Sprintf("Expected number of calls (%d) does not match the actual number of calls (%d).", expectedCalls, actualCalls)) } // AssertCalled asserts that the method was called. func (m *Mock) AssertCalled(t TestingT, methodName string, arguments ...interface{}) bool { if !assert.True(t, m.methodWasCalled(methodName, arguments), fmt.Sprintf("The \"%s\" method should have been called with %d argument(s), but was not.", methodName, len(arguments))) { - t.Logf("%v", m.ExpectedCalls) + t.Logf("%v", m.expectedCalls()) return false } return true @@ -351,14 +397,14 @@ func (m *Mock) AssertCalled(t TestingT, methodName string, arguments ...interfac // AssertNotCalled asserts that the method was not called. func (m *Mock) AssertNotCalled(t TestingT, methodName string, arguments ...interface{}) bool { if !assert.False(t, m.methodWasCalled(methodName, arguments), fmt.Sprintf("The \"%s\" method was called with %d argument(s), but should NOT have been.", methodName, len(arguments))) { - t.Logf("%v", m.ExpectedCalls) + t.Logf("%v", m.expectedCalls()) return false } return true } func (m *Mock) methodWasCalled(methodName string, expected []interface{}) bool { - for _, call := range m.Calls { + for _, call := range m.calls() { if call.Method == methodName { _, differences := Arguments(expected).Diff(call.Arguments) @@ -374,6 +420,18 @@ func (m *Mock) methodWasCalled(methodName string, expected []interface{}) bool { return false } +func (m *Mock) expectedCalls() []*Call { + m.mutex.Lock() + defer m.mutex.Unlock() + return append([]*Call{}, m.ExpectedCalls...) +} + +func (m *Mock) calls() []Call { + m.mutex.Lock() + defer m.mutex.Unlock() + return append([]Call{}, m.Calls...) +} + /* Arguments */ diff --git a/Godeps/_workspace/src/github.com/stretchr/testify/mock/mock_test.go b/Godeps/_workspace/src/github.com/stretchr/testify/mock/mock_test.go index b7446accb..1315ceccb 100644 --- a/Godeps/_workspace/src/github.com/stretchr/testify/mock/mock_test.go +++ b/Godeps/_workspace/src/github.com/stretchr/testify/mock/mock_test.go @@ -3,6 +3,7 @@ package mock import ( "errors" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "testing" "time" ) @@ -44,6 +45,16 @@ func (i *TestExampleImplementation) TheExampleMethodFunc(fn func(string) error) return args.Error(0) } +func (i *TestExampleImplementation) TheExampleMethodVariadic(a ...int) error { + args := i.Called(a) + return args.Error(0) +} + +func (i *TestExampleImplementation) TheExampleMethodVariadicInterface(a ...interface{}) error { + args := i.Called(a) + return args.Error(0) +} + type ExampleFuncType func(string) error func (i *TestExampleImplementation) TheExampleMethodFuncType(fn ExampleFuncType) error { @@ -63,9 +74,7 @@ func Test_Mock_TestData(t *testing.T) { mockedService.TestData().Set("something", 123) assert.Equal(t, 123, mockedService.TestData().Get("something").Data()) - } - } func Test_Mock_On(t *testing.T) { @@ -73,9 +82,36 @@ func Test_Mock_On(t *testing.T) { // make a test impl object var mockedService *TestExampleImplementation = new(TestExampleImplementation) - assert.Equal(t, mockedService.On("TheExampleMethod"), &mockedService.Mock) - assert.Equal(t, "TheExampleMethod", mockedService.onMethodName) + c := mockedService.On("TheExampleMethod") + assert.Equal(t, []*Call{c}, mockedService.ExpectedCalls) + assert.Equal(t, "TheExampleMethod", c.Method) +} + +func Test_Mock_Chained_On(t *testing.T) { + // make a test impl object + var mockedService *TestExampleImplementation = new(TestExampleImplementation) + mockedService. + On("TheExampleMethod", 1, 2, 3). + Return(0). + On("TheExampleMethod3", AnythingOfType("*mock.ExampleType")). + Return(nil) + + expectedCalls := []*Call{ + &Call{ + Parent: &mockedService.Mock, + Method: "TheExampleMethod", + Arguments: []interface{}{1, 2, 3}, + ReturnArguments: []interface{}{0}, + }, + &Call{ + Parent: &mockedService.Mock, + Method: "TheExampleMethod3", + Arguments: []interface{}{AnythingOfType("*mock.ExampleType")}, + ReturnArguments: []interface{}{nil}, + }, + } + assert.Equal(t, expectedCalls, mockedService.ExpectedCalls) } func Test_Mock_On_WithArgs(t *testing.T) { @@ -83,12 +119,11 @@ func Test_Mock_On_WithArgs(t *testing.T) { // make a test impl object var mockedService *TestExampleImplementation = new(TestExampleImplementation) - assert.Equal(t, mockedService.On("TheExampleMethod", 1, 2, 3), &mockedService.Mock) - assert.Equal(t, "TheExampleMethod", mockedService.onMethodName) - assert.Equal(t, 1, mockedService.onMethodArguments[0]) - assert.Equal(t, 2, mockedService.onMethodArguments[1]) - assert.Equal(t, 3, mockedService.onMethodArguments[2]) + c := mockedService.On("TheExampleMethod", 1, 2, 3, 4) + assert.Equal(t, []*Call{c}, mockedService.ExpectedCalls) + assert.Equal(t, "TheExampleMethod", c.Method) + assert.Equal(t, Arguments{1, 2, 3, 4}, c.Arguments) } func Test_Mock_On_WithFuncArg(t *testing.T) { @@ -96,12 +131,85 @@ func Test_Mock_On_WithFuncArg(t *testing.T) { // make a test impl object var mockedService *TestExampleImplementation = new(TestExampleImplementation) - assert.Equal(t, mockedService.On("TheExampleMethodFunc", AnythingOfType("func(string) error")).Return(nil), &mockedService.Mock) - assert.Equal(t, "TheExampleMethodFunc", mockedService.onMethodName) - assert.Equal(t, AnythingOfType("func(string) error"), mockedService.onMethodArguments[0]) + c := mockedService. + On("TheExampleMethodFunc", AnythingOfType("func(string) error")). + Return(nil) + + assert.Equal(t, []*Call{c}, mockedService.ExpectedCalls) + assert.Equal(t, "TheExampleMethodFunc", c.Method) + assert.Equal(t, 1, len(c.Arguments)) + assert.Equal(t, AnythingOfType("func(string) error"), c.Arguments[0]) fn := func(string) error { return nil } - mockedService.TheExampleMethodFunc(fn) + + assert.NotPanics(t, func() { + mockedService.TheExampleMethodFunc(fn) + }) +} + +func Test_Mock_On_WithVariadicFunc(t *testing.T) { + + // make a test impl object + var mockedService *TestExampleImplementation = new(TestExampleImplementation) + + c := mockedService. + On("TheExampleMethodVariadic", []int{1, 2, 3}). + Return(nil) + + assert.Equal(t, []*Call{c}, mockedService.ExpectedCalls) + assert.Equal(t, 1, len(c.Arguments)) + assert.Equal(t, []int{1, 2, 3}, c.Arguments[0]) + + assert.NotPanics(t, func() { + mockedService.TheExampleMethodVariadic(1, 2, 3) + }) + assert.Panics(t, func() { + mockedService.TheExampleMethodVariadic(1, 2) + }) + +} + +func Test_Mock_On_WithVariadicFuncWithInterface(t *testing.T) { + + // make a test impl object + var mockedService *TestExampleImplementation = new(TestExampleImplementation) + + c := mockedService.On("TheExampleMethodVariadicInterface", []interface{}{1, 2, 3}). + Return(nil) + + assert.Equal(t, []*Call{c}, mockedService.ExpectedCalls) + assert.Equal(t, 1, len(c.Arguments)) + assert.Equal(t, []interface{}{1, 2, 3}, c.Arguments[0]) + + assert.NotPanics(t, func() { + mockedService.TheExampleMethodVariadicInterface(1, 2, 3) + }) + assert.Panics(t, func() { + mockedService.TheExampleMethodVariadicInterface(1, 2) + }) + +} + +func Test_Mock_On_WithVariadicFuncWithEmptyInterfaceArray(t *testing.T) { + + // make a test impl object + var mockedService *TestExampleImplementation = new(TestExampleImplementation) + + var expected []interface{} + c := mockedService. + On("TheExampleMethodVariadicInterface", expected). + Return(nil) + + assert.Equal(t, []*Call{c}, mockedService.ExpectedCalls) + assert.Equal(t, 1, len(c.Arguments)) + assert.Equal(t, expected, c.Arguments[0]) + + assert.NotPanics(t, func() { + mockedService.TheExampleMethodVariadicInterface() + }) + assert.Panics(t, func() { + mockedService.TheExampleMethodVariadicInterface(1, 2) + }) } @@ -119,13 +227,18 @@ func Test_Mock_On_WithFuncTypeArg(t *testing.T) { // make a test impl object var mockedService *TestExampleImplementation = new(TestExampleImplementation) - assert.Equal(t, mockedService.On("TheExampleMethodFuncType", AnythingOfType("mock.ExampleFuncType")).Return(nil), &mockedService.Mock) - assert.Equal(t, "TheExampleMethodFuncType", mockedService.onMethodName) - assert.Equal(t, AnythingOfType("mock.ExampleFuncType"), mockedService.onMethodArguments[0]) + c := mockedService. + On("TheExampleMethodFuncType", AnythingOfType("mock.ExampleFuncType")). + Return(nil) - fn := func(string) error { return nil } - mockedService.TheExampleMethodFuncType(fn) + assert.Equal(t, []*Call{c}, mockedService.ExpectedCalls) + assert.Equal(t, 1, len(c.Arguments)) + assert.Equal(t, AnythingOfType("mock.ExampleFuncType"), c.Arguments[0]) + fn := func(string) error { return nil } + assert.NotPanics(t, func() { + mockedService.TheExampleMethodFuncType(fn) + }) } func Test_Mock_Return(t *testing.T) { @@ -133,24 +246,23 @@ func Test_Mock_Return(t *testing.T) { // make a test impl object var mockedService *TestExampleImplementation = new(TestExampleImplementation) - assert.Equal(t, mockedService.On("TheExampleMethod", "A", "B", true).Return(1, "two", true), &mockedService.Mock) - - // ensure the call was created - if assert.Equal(t, 1, len(mockedService.ExpectedCalls)) { - call := mockedService.ExpectedCalls[0] + c := mockedService. + On("TheExampleMethod", "A", "B", true). + Return(1, "two", true) - assert.Equal(t, "TheExampleMethod", call.Method) - assert.Equal(t, "A", call.Arguments[0]) - assert.Equal(t, "B", call.Arguments[1]) - assert.Equal(t, true, call.Arguments[2]) - assert.Equal(t, 1, call.ReturnArguments[0]) - assert.Equal(t, "two", call.ReturnArguments[1]) - assert.Equal(t, true, call.ReturnArguments[2]) - assert.Equal(t, 0, call.Repeatability) - assert.Nil(t, call.WaitFor) + require.Equal(t, []*Call{c}, mockedService.ExpectedCalls) - } + call := mockedService.ExpectedCalls[0] + assert.Equal(t, "TheExampleMethod", call.Method) + assert.Equal(t, "A", call.Arguments[0]) + assert.Equal(t, "B", call.Arguments[1]) + assert.Equal(t, true, call.Arguments[2]) + assert.Equal(t, 1, call.ReturnArguments[0]) + assert.Equal(t, "two", call.ReturnArguments[1]) + assert.Equal(t, true, call.ReturnArguments[2]) + assert.Equal(t, 0, call.Repeatability) + assert.Nil(t, call.WaitFor) } func Test_Mock_Return_WaitUntil(t *testing.T) { @@ -159,24 +271,25 @@ func Test_Mock_Return_WaitUntil(t *testing.T) { var mockedService *TestExampleImplementation = new(TestExampleImplementation) ch := time.After(time.Second) - assert.Equal(t, mockedService.Mock.On("TheExampleMethod", "A", "B", true).Return(1, "two", true).WaitUntil(ch), &mockedService.Mock) - - // ensure the call was created - if assert.Equal(t, 1, len(mockedService.Mock.ExpectedCalls)) { - call := mockedService.Mock.ExpectedCalls[0] + c := mockedService.Mock. + On("TheExampleMethod", "A", "B", true). + WaitUntil(ch). + Return(1, "two", true) - assert.Equal(t, "TheExampleMethod", call.Method) - assert.Equal(t, "A", call.Arguments[0]) - assert.Equal(t, "B", call.Arguments[1]) - assert.Equal(t, true, call.Arguments[2]) - assert.Equal(t, 1, call.ReturnArguments[0]) - assert.Equal(t, "two", call.ReturnArguments[1]) - assert.Equal(t, true, call.ReturnArguments[2]) - assert.Equal(t, 0, call.Repeatability) - assert.Equal(t, ch, call.WaitFor) + // assert that the call was created + require.Equal(t, []*Call{c}, mockedService.ExpectedCalls) - } + call := mockedService.ExpectedCalls[0] + assert.Equal(t, "TheExampleMethod", call.Method) + assert.Equal(t, "A", call.Arguments[0]) + assert.Equal(t, "B", call.Arguments[1]) + assert.Equal(t, true, call.Arguments[2]) + assert.Equal(t, 1, call.ReturnArguments[0]) + assert.Equal(t, "two", call.ReturnArguments[1]) + assert.Equal(t, true, call.ReturnArguments[2]) + assert.Equal(t, 0, call.Repeatability) + assert.Equal(t, ch, call.WaitFor) } func Test_Mock_Return_After(t *testing.T) { @@ -184,23 +297,24 @@ func Test_Mock_Return_After(t *testing.T) { // make a test impl object var mockedService *TestExampleImplementation = new(TestExampleImplementation) - assert.Equal(t, mockedService.Mock.On("TheExampleMethod", "A", "B", true).Return(1, "two", true).After(time.Second), &mockedService.Mock) + c := mockedService.Mock. + On("TheExampleMethod", "A", "B", true). + Return(1, "two", true). + After(time.Second) - // ensure the call was created - if assert.Equal(t, 1, len(mockedService.Mock.ExpectedCalls)) { - call := mockedService.Mock.ExpectedCalls[0] + require.Equal(t, []*Call{c}, mockedService.ExpectedCalls) - assert.Equal(t, "TheExampleMethod", call.Method) - assert.Equal(t, "A", call.Arguments[0]) - assert.Equal(t, "B", call.Arguments[1]) - assert.Equal(t, true, call.Arguments[2]) - assert.Equal(t, 1, call.ReturnArguments[0]) - assert.Equal(t, "two", call.ReturnArguments[1]) - assert.Equal(t, true, call.ReturnArguments[2]) - assert.Equal(t, 0, call.Repeatability) - assert.NotEqual(t, nil, call.WaitFor) + call := mockedService.Mock.ExpectedCalls[0] - } + assert.Equal(t, "TheExampleMethod", call.Method) + assert.Equal(t, "A", call.Arguments[0]) + assert.Equal(t, "B", call.Arguments[1]) + assert.Equal(t, true, call.Arguments[2]) + assert.Equal(t, 1, call.ReturnArguments[0]) + assert.Equal(t, "two", call.ReturnArguments[1]) + assert.Equal(t, true, call.ReturnArguments[2]) + assert.Equal(t, 0, call.Repeatability) + assert.NotEqual(t, nil, call.WaitFor) } @@ -209,29 +323,56 @@ func Test_Mock_Return_Run(t *testing.T) { // make a test impl object var mockedService *TestExampleImplementation = new(TestExampleImplementation) - assert.Equal(t, mockedService.Mock.On("TheExampleMethod3", AnythingOfType("*mock.ExampleType")).Return(nil).Run(func(args Arguments) { + fn := func(args Arguments) { arg := args.Get(0).(*ExampleType) arg.ran = true - }), &mockedService.Mock) + } - // ensure the call was created - if assert.Equal(t, 1, len(mockedService.Mock.ExpectedCalls)) { - call := mockedService.Mock.ExpectedCalls[0] + c := mockedService.Mock. + On("TheExampleMethod3", AnythingOfType("*mock.ExampleType")). + Return(nil). + Run(fn) - assert.Equal(t, "TheExampleMethod3", call.Method) - assert.Equal(t, AnythingOfType("*mock.ExampleType"), call.Arguments[0]) - assert.Equal(t, nil, call.ReturnArguments[0]) - assert.Equal(t, 0, call.Repeatability) - assert.NotEqual(t, nil, call.WaitFor) - assert.NotNil(t, call.Run) + require.Equal(t, []*Call{c}, mockedService.ExpectedCalls) - } + call := mockedService.Mock.ExpectedCalls[0] + + assert.Equal(t, "TheExampleMethod3", call.Method) + assert.Equal(t, AnythingOfType("*mock.ExampleType"), call.Arguments[0]) + assert.Equal(t, nil, call.ReturnArguments[0]) + assert.Equal(t, 0, call.Repeatability) + assert.NotEqual(t, nil, call.WaitFor) + assert.NotNil(t, call.Run) et := ExampleType{} assert.Equal(t, false, et.ran) mockedService.TheExampleMethod3(&et) assert.Equal(t, true, et.ran) +} + +func Test_Mock_Return_Run_Out_Of_Order(t *testing.T) { + // make a test impl object + var mockedService *TestExampleImplementation = new(TestExampleImplementation) + f := func(args Arguments) { + arg := args.Get(0).(*ExampleType) + arg.ran = true + } + + c := mockedService.Mock. + On("TheExampleMethod3", AnythingOfType("*mock.ExampleType")). + Run(f). + Return(nil) + require.Equal(t, []*Call{c}, mockedService.ExpectedCalls) + + call := mockedService.Mock.ExpectedCalls[0] + + assert.Equal(t, "TheExampleMethod3", call.Method) + assert.Equal(t, AnythingOfType("*mock.ExampleType"), call.Arguments[0]) + assert.Equal(t, nil, call.ReturnArguments[0]) + assert.Equal(t, 0, call.Repeatability) + assert.NotEqual(t, nil, call.WaitFor) + assert.NotNil(t, call.Run) } func Test_Mock_Return_Once(t *testing.T) { @@ -239,24 +380,23 @@ func Test_Mock_Return_Once(t *testing.T) { // make a test impl object var mockedService *TestExampleImplementation = new(TestExampleImplementation) - mockedService.On("TheExampleMethod", "A", "B", true).Return(1, "two", true).Once() + c := mockedService.On("TheExampleMethod", "A", "B", true). + Return(1, "two", true). + Once() - // ensure the call was created - if assert.Equal(t, 1, len(mockedService.ExpectedCalls)) { - call := mockedService.ExpectedCalls[0] + require.Equal(t, []*Call{c}, mockedService.ExpectedCalls) - assert.Equal(t, "TheExampleMethod", call.Method) - assert.Equal(t, "A", call.Arguments[0]) - assert.Equal(t, "B", call.Arguments[1]) - assert.Equal(t, true, call.Arguments[2]) - assert.Equal(t, 1, call.ReturnArguments[0]) - assert.Equal(t, "two", call.ReturnArguments[1]) - assert.Equal(t, true, call.ReturnArguments[2]) - assert.Equal(t, 1, call.Repeatability) - assert.Nil(t, call.WaitFor) - - } + call := mockedService.ExpectedCalls[0] + assert.Equal(t, "TheExampleMethod", call.Method) + assert.Equal(t, "A", call.Arguments[0]) + assert.Equal(t, "B", call.Arguments[1]) + assert.Equal(t, true, call.Arguments[2]) + assert.Equal(t, 1, call.ReturnArguments[0]) + assert.Equal(t, "two", call.ReturnArguments[1]) + assert.Equal(t, true, call.ReturnArguments[2]) + assert.Equal(t, 1, call.Repeatability) + assert.Nil(t, call.WaitFor) } func Test_Mock_Return_Twice(t *testing.T) { @@ -264,24 +404,24 @@ func Test_Mock_Return_Twice(t *testing.T) { // make a test impl object var mockedService *TestExampleImplementation = new(TestExampleImplementation) - mockedService.On("TheExampleMethod", "A", "B", true).Return(1, "two", true).Twice() - - // ensure the call was created - if assert.Equal(t, 1, len(mockedService.ExpectedCalls)) { - call := mockedService.ExpectedCalls[0] + c := mockedService. + On("TheExampleMethod", "A", "B", true). + Return(1, "two", true). + Twice() - assert.Equal(t, "TheExampleMethod", call.Method) - assert.Equal(t, "A", call.Arguments[0]) - assert.Equal(t, "B", call.Arguments[1]) - assert.Equal(t, true, call.Arguments[2]) - assert.Equal(t, 1, call.ReturnArguments[0]) - assert.Equal(t, "two", call.ReturnArguments[1]) - assert.Equal(t, true, call.ReturnArguments[2]) - assert.Equal(t, 2, call.Repeatability) - assert.Nil(t, call.WaitFor) + require.Equal(t, []*Call{c}, mockedService.ExpectedCalls) - } + call := mockedService.ExpectedCalls[0] + assert.Equal(t, "TheExampleMethod", call.Method) + assert.Equal(t, "A", call.Arguments[0]) + assert.Equal(t, "B", call.Arguments[1]) + assert.Equal(t, true, call.Arguments[2]) + assert.Equal(t, 1, call.ReturnArguments[0]) + assert.Equal(t, "two", call.ReturnArguments[1]) + assert.Equal(t, true, call.ReturnArguments[2]) + assert.Equal(t, 2, call.Repeatability) + assert.Nil(t, call.WaitFor) } func Test_Mock_Return_Times(t *testing.T) { @@ -289,24 +429,24 @@ func Test_Mock_Return_Times(t *testing.T) { // make a test impl object var mockedService *TestExampleImplementation = new(TestExampleImplementation) - mockedService.On("TheExampleMethod", "A", "B", true).Return(1, "two", true).Times(5) - - // ensure the call was created - if assert.Equal(t, 1, len(mockedService.ExpectedCalls)) { - call := mockedService.ExpectedCalls[0] + c := mockedService. + On("TheExampleMethod", "A", "B", true). + Return(1, "two", true). + Times(5) - assert.Equal(t, "TheExampleMethod", call.Method) - assert.Equal(t, "A", call.Arguments[0]) - assert.Equal(t, "B", call.Arguments[1]) - assert.Equal(t, true, call.Arguments[2]) - assert.Equal(t, 1, call.ReturnArguments[0]) - assert.Equal(t, "two", call.ReturnArguments[1]) - assert.Equal(t, true, call.ReturnArguments[2]) - assert.Equal(t, 5, call.Repeatability) - assert.Nil(t, call.WaitFor) + require.Equal(t, []*Call{c}, mockedService.ExpectedCalls) - } + call := mockedService.ExpectedCalls[0] + assert.Equal(t, "TheExampleMethod", call.Method) + assert.Equal(t, "A", call.Arguments[0]) + assert.Equal(t, "B", call.Arguments[1]) + assert.Equal(t, true, call.Arguments[2]) + assert.Equal(t, 1, call.ReturnArguments[0]) + assert.Equal(t, "two", call.ReturnArguments[1]) + assert.Equal(t, true, call.ReturnArguments[2]) + assert.Equal(t, 5, call.Repeatability) + assert.Nil(t, call.WaitFor) } func Test_Mock_Return_Nothing(t *testing.T) { @@ -314,20 +454,19 @@ func Test_Mock_Return_Nothing(t *testing.T) { // make a test impl object var mockedService *TestExampleImplementation = new(TestExampleImplementation) - assert.Equal(t, mockedService.On("TheExampleMethod", "A", "B", true).Return(), &mockedService.Mock) + c := mockedService. + On("TheExampleMethod", "A", "B", true). + Return() - // ensure the call was created - if assert.Equal(t, 1, len(mockedService.ExpectedCalls)) { - call := mockedService.ExpectedCalls[0] + require.Equal(t, []*Call{c}, mockedService.ExpectedCalls) - assert.Equal(t, "TheExampleMethod", call.Method) - assert.Equal(t, "A", call.Arguments[0]) - assert.Equal(t, "B", call.Arguments[1]) - assert.Equal(t, true, call.Arguments[2]) - assert.Equal(t, 0, len(call.ReturnArguments)) - - } + call := mockedService.ExpectedCalls[0] + assert.Equal(t, "TheExampleMethod", call.Method) + assert.Equal(t, "A", call.Arguments[0]) + assert.Equal(t, "B", call.Arguments[1]) + assert.Equal(t, true, call.Arguments[2]) + assert.Equal(t, 0, len(call.ReturnArguments)) } func Test_Mock_findExpectedCall(t *testing.T) { @@ -452,8 +591,13 @@ func Test_Mock_Called_For_Bounded_Repeatability(t *testing.T) { var mockedService *TestExampleImplementation = new(TestExampleImplementation) - mockedService.On("Test_Mock_Called_For_Bounded_Repeatability", 1, 2, 3).Return(5, "6", true).Once() - mockedService.On("Test_Mock_Called_For_Bounded_Repeatability", 1, 2, 3).Return(-1, "hi", false) + mockedService. + On("Test_Mock_Called_For_Bounded_Repeatability", 1, 2, 3). + Return(5, "6", true). + Once() + mockedService. + On("Test_Mock_Called_For_Bounded_Repeatability", 1, 2, 3). + Return(-1, "hi", false) returnArguments1 := mockedService.Called(1, 2, 3) returnArguments2 := mockedService.Called(1, 2, 3) @@ -651,7 +795,9 @@ func Test_Mock_AssertCalled_WithAnythingOfTypeArgument(t *testing.T) { var mockedService *TestExampleImplementation = new(TestExampleImplementation) - mockedService.On("Test_Mock_AssertCalled_WithAnythingOfTypeArgument", Anything, Anything, Anything).Return() + mockedService. + On("Test_Mock_AssertCalled_WithAnythingOfTypeArgument", Anything, Anything, Anything). + Return() mockedService.Called(1, "two", []uint8("three")) diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/README.md b/Godeps/_workspace/src/github.com/throttled/throttled/README.md deleted file mode 100644 index 0954c808a..000000000 --- a/Godeps/_workspace/src/github.com/throttled/throttled/README.md +++ /dev/null @@ -1,80 +0,0 @@ -# Throttled [![build status](https://secure.travis-ci.org/throttled/throttled.png)](http://travis-ci.org/throttled/throttled) [![GoDoc](https://godoc.org/github.com/throttled/throttled?status.png)](http://godoc.org/github.com/throttled/throttled) - -Package throttled implements different throttling strategies for controlling -access to HTTP handlers. - -*As of July 27, 2015, the package is now located under its own GitHub organization, please adjust your imports to `github.com/throttled/throttled`.* - -## Installation - -`go get github.com/throttled/throttled/...` - -## Interval - -The Interval function creates a throttler that allows requests to go through at -a controlled, constant interval. The interval may be applied to all requests -(vary argument == nil) or independently based on vary-by criteria. - -For example: - - th := throttled.Interval(throttled.PerSec(10), 100, &throttled.VaryBy{Path: true}, 50) - h := th.Throttle(myHandler) - http.ListenAndServe(":9000", h) - -Creates a throttler that will allow a request each 100ms (10 requests per second), with -a buffer of 100 exceeding requests before dropping requests with a status code 429 (by -default, configurable using th.DeniedHandler or the package-global DefaultDeniedHandler -variable). Different paths will be throttled independently, so that /path_a and /path_b -both can serve 10 requests per second. The last argument, 50, indicates the maximum number -of keys that the throttler will keep in memory. - -## MemStats - -The MemStats function creates a throttler that allows requests to go through only if -the memory statistics of the current process are below specified thresholds. - -For example: - - th := throttled.MemStats(throttled.MemThresholds(&runtime.MemStats{NumGC: 10}, 10*time.Millisecond) - h := th.Throttle(myHandler) - http.ListenAndServe(":9000", h) - -Creates a throttler that will allow requests to go through until the number of garbage -collections reaches the initial number + 10 (the MemThresholds function creates absolute -memory stats thresholds from offsets). The second argument, 10ms, indicates the refresh -rate of the memory stats. - -## RateLimit - -The RateLimit function creates a throttler that allows a certain number of requests in -a given time window, as is often implemented in public RESTful APIs. - -For example: - - th := throttled.RateLimit(throttled.PerMin(30), &throttled.VaryBy{RemoteAddr: true}, store.NewMemStore(1000)) - h := th.Throttle(myHandler) - http.ListenAndServe(":9000", h) - -Creates a throttler that will limit requests to 30 per minute, based on the remote address -of the client, and will store the counter and remaining time of the current window in the -provided memory store, limiting the number of keys to keep in memory to 1000. The store -sub-package also provides a Redis-based Store implementations. - -The RateLimit throttler sets the expected X-RateLimit-* headers on the response, and -also sets a Retry-After header when the limit is exceeded. - -## Documentation - -The API documentation is available as usual on [godoc.org][doc]. - -There is also a [blog post explaining the package's usage on 0value.com][blog]. - -Finally, many examples are provided in the /examples sub-folder of the repository. - -## License - -The [BSD 3-clause license][bsd]. Copyright (c) 2014 Martin Angers and Contributors. - -[doc]: http://godoc.org/github.com/throttled/throttled -[blog]: http://0value.com/throttled--guardian-of-the-web-server -[bsd]: http://opensource.org/licenses/BSD-3-Clause diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/doc.go b/Godeps/_workspace/src/github.com/throttled/throttled/doc.go deleted file mode 100644 index a83b0aca4..000000000 --- a/Godeps/_workspace/src/github.com/throttled/throttled/doc.go +++ /dev/null @@ -1,77 +0,0 @@ -// Package throttled implements different throttling strategies for controlling -// access to HTTP handlers. -// -// Installation -// -// go get github.com/throttled/throttled/... -// -// Inverval -// -// The Interval function creates a throttler that allows requests to go through at -// a controlled, constant interval. The interval may be applied to all requests -// (vary argument == nil) or independently based on vary-by criteria. -// -// For example: -// -// th := throttled.Interval(throttled.PerSec(10), 100, &throttled.VaryBy{Path: true}, 50) -// h := th.Throttle(myHandler) -// http.ListenAndServe(":9000", h) -// -// Creates a throttler that will allow a request each 100ms (10 requests per second), with -// a buffer of 100 exceeding requests before dropping requests with a status code 429 (by -// default, configurable using th.DeniedHandler or the package-global DefaultDeniedHandler -// variable). Different paths will be throttled independently, so that /path_a and /path_b -// both can serve 10 requests per second. The last argument, 50, indicates the maximum number -// of keys that the throttler will keep in memory. -// -// MemStats -// -// The MemStats function creates a throttler that allows requests to go through only if -// the memory statistics of the current process are below specified thresholds. -// -// For example: -// -// th := throttled.MemStats(throttled.MemThresholds(&runtime.MemStats{NumGC: 10}, 10*time.Millisecond) -// h := th.Throttle(myHandler) -// http.ListenAndServe(":9000", h) -// -// Creates a throttler that will allow requests to go through until the number of garbage -// collections reaches the initial number + 10 (the MemThresholds function creates absolute -// memory stats thresholds from offsets). The second argument, 10ms, indicates the refresh -// rate of the memory stats. -// -// RateLimit -// -// The RateLimit function creates a throttler that allows a certain number of requests in -// a given time window, as is often implemented in public RESTful APIs. -// -// For example: -// -// th := throttled.RateLimit(throttled.PerMin(30), &throttled.VaryBy{RemoteAddr: true}, store.NewMemStore(1000)) -// h := th.Throttle(myHandler) -// http.ListenAndServe(":9000", h) -// -// Creates a throttler that will limit requests to 30 per minute, based on the remote address -// of the client, and will store the counter and remaining time of the current window in the -// provided memory store, limiting the number of keys to keep in memory to 1000. The store -// sub-package also provides a Redis-based Store implementations. -// -// The RateLimit throttler sets the expected X-RateLimit-* headers on the response, and -// also sets a Retry-After header when the limit is exceeded. -// -// Documentation -// -// The API documentation is available as usual on godoc.org: -// http://godoc.org/github.com/throttled/throttled -// -// There is also a blog post explaining the package's usage on 0value.com: -// http://0value.com/throttled--guardian-of-the-web-server -// -// Finally, many examples are provided in the /examples sub-folder of the repository. -// -// License -// -// The BSD 3-clause license. Copyright (c) 2014 Martin Angers and Contributors. -// http://opensource.org/licenses/BSD-3-Clause -// -package throttled diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/examples/custom/main.go b/Godeps/_workspace/src/github.com/throttled/throttled/examples/custom/main.go deleted file mode 100644 index 4a3fe119c..000000000 --- a/Godeps/_workspace/src/github.com/throttled/throttled/examples/custom/main.go +++ /dev/null @@ -1,90 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "log" - "math/rand" - "net/http" - "sync" - "time" - - "github.com/throttled/throttled" -) - -var ( - delayRes = flag.Duration("delay-response", 0, "delay the response by a random duration between 0 and this value") - output = flag.String("output", "v", "type of output, one of `v`erbose, `q`uiet, `ok`-only, `ko`-only") -) - -// Custom limiter: allow requests to the /a path on even seconds only, and -// allow access to the /b path on odd seconds only. -// -// Yes this is absurd. A more realistic case could be to allow requests to some -// contest page only during a limited time window. -type customLimiter struct { -} - -func (c *customLimiter) Start() { - // No-op -} - -func (c *customLimiter) Limit(w http.ResponseWriter, r *http.Request) (<-chan bool, error) { - s := time.Now().Second() - ch := make(chan bool, 1) - ok := (r.URL.Path == "/a" && s%2 == 0) || (r.URL.Path == "/b" && s%2 != 0) - ch <- ok - if *output == "v" { - log.Printf("Custom Limiter: Path=%s, Second=%d; ok? %v", r.URL.Path, s, ok) - } - return ch, nil -} - -func main() { - flag.Parse() - - var h http.Handler - var ok, ko int - var mu sync.Mutex - - // Keep the start time to print since-time - start := time.Now() - // Create the custom throttler using our custom limiter - t := throttled.Custom(&customLimiter{}) - // Set its denied handler - t.DeniedHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if *output == "v" || *output == "ko" { - log.Printf("KO: %s", time.Since(start)) - } - throttled.DefaultDeniedHandler.ServeHTTP(w, r) - mu.Lock() - defer mu.Unlock() - ko++ - }) - // Throttle the OK handler - rand.Seed(time.Now().Unix()) - h = t.Throttle(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if *output == "v" || *output == "ok" { - log.Printf("ok: %s", time.Since(start)) - } - if *delayRes > 0 { - wait := time.Duration(rand.Intn(int(*delayRes))) - time.Sleep(wait) - } - w.WriteHeader(200) - mu.Lock() - defer mu.Unlock() - ok++ - })) - - // Print stats once in a while - go func() { - for _ = range time.Tick(10 * time.Second) { - mu.Lock() - log.Printf("ok: %d, ko: %d", ok, ko) - mu.Unlock() - } - }() - fmt.Println("server listening on port 9000") - http.ListenAndServe(":9000", h) -} diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/examples/interval-many/main.go b/Godeps/_workspace/src/github.com/throttled/throttled/examples/interval-many/main.go deleted file mode 100644 index d0add9fb2..000000000 --- a/Godeps/_workspace/src/github.com/throttled/throttled/examples/interval-many/main.go +++ /dev/null @@ -1,79 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "log" - "math/rand" - "net/http" - "sync" - "time" - - "github.com/throttled/throttled" -) - -var ( - delay = flag.Duration("delay", 200*time.Millisecond, "delay between calls") - bursts = flag.Int("bursts", 10, "number of bursts allowed") - delayRes = flag.Duration("delay-response", 0, "delay the response by a random duration between 0 and this value") - output = flag.String("output", "v", "type of output, one of `v`erbose, `q`uiet, `ok`-only, `ko`-only") -) - -func main() { - flag.Parse() - - var ok, ko int - var mu sync.Mutex - - // Keep start time to log since-time - start := time.Now() - - // Create the interval throttle - t := throttled.Interval(throttled.D(*delay), *bursts, nil, 0) - // Set its denied handler - t.DeniedHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if *output == "v" || *output == "ko" { - log.Printf("%s: KO: %s", r.URL.Path, time.Since(start)) - } - throttled.DefaultDeniedHandler.ServeHTTP(w, r) - mu.Lock() - defer mu.Unlock() - ko++ - }) - // Create OK handlers - rand.Seed(time.Now().Unix()) - makeHandler := func(ix int) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if *output == "v" || *output == "ok" { - log.Printf("handler %d: %s: ok: %s", ix, r.URL.Path, time.Since(start)) - } - if *delayRes > 0 { - wait := time.Duration(rand.Intn(int(*delayRes))) - time.Sleep(wait) - } - w.WriteHeader(200) - mu.Lock() - defer mu.Unlock() - ok++ - }) - } - // Throttle them using the same interval throttler - h1 := t.Throttle(makeHandler(1)) - h2 := t.Throttle(makeHandler(2)) - - // Handle two paths - mux := http.NewServeMux() - mux.Handle("/a", h1) - mux.Handle("/b", h2) - - // Print stats once in a while - go func() { - for _ = range time.Tick(10 * time.Second) { - mu.Lock() - log.Printf("ok: %d, ko: %d", ok, ko) - mu.Unlock() - } - }() - fmt.Println("server listening on port 9000") - http.ListenAndServe(":9000", mux) -} diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/examples/interval-vary/main.go b/Godeps/_workspace/src/github.com/throttled/throttled/examples/interval-vary/main.go deleted file mode 100644 index 439d4ad8b..000000000 --- a/Godeps/_workspace/src/github.com/throttled/throttled/examples/interval-vary/main.go +++ /dev/null @@ -1,74 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "log" - "math/rand" - "net/http" - "sync" - "time" - - "github.com/throttled/throttled" -) - -var ( - delay = flag.Duration("delay", 200*time.Millisecond, "delay between calls") - bursts = flag.Int("bursts", 10, "number of bursts allowed") - maxkeys = flag.Int("max-keys", 1000, "maximum number of keys") - delayRes = flag.Duration("delay-response", 0, "delay the response by a random duration between 0 and this value") - output = flag.String("output", "v", "type of output, one of `v`erbose, `q`uiet, `ok`-only, `ko`-only") -) - -func main() { - flag.Parse() - - var h http.Handler - var ok, ko int - var mu sync.Mutex - - // Keep the start time to print since-time - start := time.Now() - - // Create the interval throttler - t := throttled.Interval(throttled.D(*delay), *bursts, &throttled.VaryBy{ - Path: true, - }, *maxkeys) - // Set the denied handler - t.DeniedHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if *output == "v" || *output == "ko" { - log.Printf("KO: %s", time.Since(start)) - } - throttled.DefaultDeniedHandler.ServeHTTP(w, r) - mu.Lock() - defer mu.Unlock() - ko++ - }) - - // Throttle the OK handler - rand.Seed(time.Now().Unix()) - h = t.Throttle(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if *output == "v" || *output == "ok" { - log.Printf("%s: ok: %s", r.URL.Path, time.Since(start)) - } - if *delayRes > 0 { - wait := time.Duration(rand.Intn(int(*delayRes))) - time.Sleep(wait) - } - w.WriteHeader(200) - mu.Lock() - defer mu.Unlock() - ok++ - })) - - // Print stats once in a while - go func() { - for _ = range time.Tick(10 * time.Second) { - mu.Lock() - log.Printf("ok: %d, ko: %d", ok, ko) - mu.Unlock() - } - }() - fmt.Println("server listening on port 9000") - http.ListenAndServe(":9000", h) -} diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/examples/interval/main.go b/Godeps/_workspace/src/github.com/throttled/throttled/examples/interval/main.go deleted file mode 100644 index 7c6473346..000000000 --- a/Godeps/_workspace/src/github.com/throttled/throttled/examples/interval/main.go +++ /dev/null @@ -1,69 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "log" - "math/rand" - "net/http" - "sync" - "time" - - "github.com/throttled/throttled" -) - -var ( - delay = flag.Duration("delay", 200*time.Millisecond, "delay between calls") - bursts = flag.Int("bursts", 10, "number of bursts allowed") - delayRes = flag.Duration("delay-response", 0, "delay the response by a random duration between 0 and this value") - output = flag.String("output", "v", "type of output, one of `v`erbose, `q`uiet, `ok`-only, `ko`-only") -) - -func main() { - flag.Parse() - - var h http.Handler - var ok, ko int - var mu sync.Mutex - - // Keep the start time to print since-time - start := time.Now() - // Create the interval throttler - t := throttled.Interval(throttled.D(*delay), *bursts, nil, 0) - // Set its denied handler - t.DeniedHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if *output == "v" || *output == "ko" { - log.Printf("KO: %s", time.Since(start)) - } - throttled.DefaultDeniedHandler.ServeHTTP(w, r) - mu.Lock() - defer mu.Unlock() - ko++ - }) - // Throttle the OK handler - rand.Seed(time.Now().Unix()) - h = t.Throttle(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if *output == "v" || *output == "ok" { - log.Printf("ok: %s", time.Since(start)) - } - if *delayRes > 0 { - wait := time.Duration(rand.Intn(int(*delayRes))) - time.Sleep(wait) - } - w.WriteHeader(200) - mu.Lock() - defer mu.Unlock() - ok++ - })) - - // Print stats once in a while - go func() { - for _ = range time.Tick(10 * time.Second) { - mu.Lock() - log.Printf("ok: %d, ko: %d", ok, ko) - mu.Unlock() - } - }() - fmt.Println("server listening on port 9000") - http.ListenAndServe(":9000", h) -} diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/examples/memstats/main.go b/Godeps/_workspace/src/github.com/throttled/throttled/examples/memstats/main.go deleted file mode 100644 index 719fea01b..000000000 --- a/Godeps/_workspace/src/github.com/throttled/throttled/examples/memstats/main.go +++ /dev/null @@ -1,97 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "io/ioutil" - "log" - "math/rand" - "net/http" - "runtime" - "sync" - "time" - - "github.com/throttled/throttled" -) - -var ( - numgc = flag.Int("gc", 0, "number of GC runs") - mallocs = flag.Int("mallocs", 0, "number of mallocs") - total = flag.Int("total", 0, "total number of bytes allocated") - allocs = flag.Int("allocs", 0, "number of bytes allocated") - refrate = flag.Duration("refresh", 0, "refresh rate of the memory stats") - delayRes = flag.Duration("delay-response", 0, "delay the response by a random duration between 0 and this value") - output = flag.String("output", "v", "type of output, one of `v`erbose, `q`uiet, `ok`-only, `ko`-only") -) - -func main() { - flag.Parse() - - var h http.Handler - var ok, ko int - var mu sync.Mutex - - // Keep the start time to print since-time - start := time.Now() - // Create the thresholds struct - thresh := throttled.MemThresholds(&runtime.MemStats{ - NumGC: uint32(*numgc), - Mallocs: uint64(*mallocs), - TotalAlloc: uint64(*total), - Alloc: uint64(*allocs), - }) - if *output != "q" { - log.Printf("thresholds: NumGC: %d, Mallocs: %d, Alloc: %dKb, Total: %dKb", thresh.NumGC, thresh.Mallocs, thresh.Alloc/1024, thresh.TotalAlloc/1024) - } - // Create the MemStats throttler - t := throttled.MemStats(thresh, *refrate) - // Set its denied handler - t.DeniedHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if *output == "v" || *output == "ko" { - log.Printf("KO: %s", time.Since(start)) - } - throttled.DefaultDeniedHandler.ServeHTTP(w, r) - mu.Lock() - defer mu.Unlock() - ko++ - }) - - // Throttle the OK handler - rand.Seed(time.Now().Unix()) - h = t.Throttle(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if *output == "v" || *output == "ok" { - log.Printf("ok: %s", time.Since(start)) - } - if *delayRes > 0 { - wait := time.Duration(rand.Intn(int(*delayRes))) - time.Sleep(wait) - } - // Read the whole file in memory, to actually use 64Kb (instead of streaming to w) - b, err := ioutil.ReadFile("test-file") - if err != nil { - throttled.Error(w, r, err) - return - } - _, err = w.Write(b) - if err != nil { - throttled.Error(w, r, err) - } - mu.Lock() - defer mu.Unlock() - ok++ - })) - - // Print stats once in a while - go func() { - var mem runtime.MemStats - for _ = range time.Tick(10 * time.Second) { - mu.Lock() - runtime.ReadMemStats(&mem) - log.Printf("ok: %d, ko: %d", ok, ko) - log.Printf("TotalAllocs: %d Kb, Allocs: %d Kb, Mallocs: %d, NumGC: %d", mem.TotalAlloc/1024, mem.Alloc/1024, mem.Mallocs, mem.NumGC) - mu.Unlock() - } - }() - fmt.Println("server listening on port 9000") - http.ListenAndServe(":9000", h) -} diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/examples/rate-limit/main.go b/Godeps/_workspace/src/github.com/throttled/throttled/examples/rate-limit/main.go deleted file mode 100644 index b7b31529a..000000000 --- a/Godeps/_workspace/src/github.com/throttled/throttled/examples/rate-limit/main.go +++ /dev/null @@ -1,101 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "log" - "math/rand" - "net/http" - "sync" - "time" - - "github.com/garyburd/redigo/redis" - "github.com/throttled/throttled" - "github.com/throttled/throttled/store" -) - -var ( - requests = flag.Int("requests", 10, "number of requests allowed in the time window") - window = flag.Duration("window", time.Minute, "time window for the limit of requests") - storeType = flag.String("store", "mem", "store to use, one of `mem` or `redis` (on default localhost port)") - delayRes = flag.Duration("delay-response", 0, "delay the response by a random duration between 0 and this value") - output = flag.String("output", "v", "type of output, one of `v`erbose, `q`uiet, `ok`-only, `ko`-only") -) - -func main() { - flag.Parse() - - var h http.Handler - var ok, ko int - var mu sync.Mutex - var st throttled.Store - - // Keep the start time to print since-time - start := time.Now() - // Create the rate-limit store - switch *storeType { - case "mem": - st = store.NewMemStore(0) - case "redis": - st = store.NewRedisStore(setupRedis(), "throttled:", 0) - default: - log.Fatalf("unsupported store: %s", *storeType) - } - // Create the rate-limit throttler, varying on path - t := throttled.RateLimit(throttled.Q{Requests: *requests, Window: *window}, &throttled.VaryBy{ - Path: true, - }, st) - - // Set its denied handler - t.DeniedHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if *output == "v" || *output == "ko" { - log.Printf("KO: %s", time.Since(start)) - } - throttled.DefaultDeniedHandler.ServeHTTP(w, r) - mu.Lock() - defer mu.Unlock() - ko++ - }) - - // Throttle the OK handler - rand.Seed(time.Now().Unix()) - h = t.Throttle(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if *output == "v" || *output == "ok" { - log.Printf("ok: %s", time.Since(start)) - } - if *delayRes > 0 { - wait := time.Duration(rand.Intn(int(*delayRes))) - time.Sleep(wait) - } - w.WriteHeader(200) - mu.Lock() - defer mu.Unlock() - ok++ - })) - - // Print stats once in a while - go func() { - for _ = range time.Tick(10 * time.Second) { - mu.Lock() - log.Printf("ok: %d, ko: %d", ok, ko) - mu.Unlock() - } - }() - fmt.Println("server listening on port 9000") - http.ListenAndServe(":9000", h) -} - -func setupRedis() *redis.Pool { - pool := &redis.Pool{ - MaxIdle: 3, - IdleTimeout: 30 * time.Second, - Dial: func() (redis.Conn, error) { - return redis.Dial("tcp", ":6379") - }, - TestOnBorrow: func(c redis.Conn, t time.Time) error { - _, err := c.Do("PING") - return err - }, - } - return pool -} diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/store/mem.go b/Godeps/_workspace/src/github.com/throttled/throttled/store/mem.go deleted file mode 100644 index e220dfe81..000000000 --- a/Godeps/_workspace/src/github.com/throttled/throttled/store/mem.go +++ /dev/null @@ -1,90 +0,0 @@ -package store - -import ( - "sync" - "time" - - "github.com/golang/groupcache/lru" - "github.com/throttled/throttled" -) - -// memStore implements an in-memory Store. -type memStore struct { - sync.Mutex - keys *lru.Cache - m map[string]*counter -} - -// NewMemStore creates a new MemStore. If maxKeys > 0, the number of different keys -// is restricted to the specified amount. In this case, it uses an LRU algorithm to -// evict older keys to make room for newer ones. If a request is made for a key that -// has been evicted, it will be processed as if its count was 0, possibly allowing requests -// that should be denied. -// -// If maxKeys <= 0, there is no limit on the number of keys, which may use an unbounded amount of -// memory depending on the server's load. -// -// The MemStore is only for single-process rate-limiting. To share the rate limit state -// among multiple instances of the web server, use a database- or key-value-based -// store. -// -func NewMemStore(maxKeys int) throttled.Store { - var m *memStore - if maxKeys > 0 { - m = &memStore{ - keys: lru.New(maxKeys), - } - } else { - m = &memStore{ - m: make(map[string]*counter), - } - } - return m -} - -// A counter represents a single entry in the MemStore. -type counter struct { - n int - ts time.Time -} - -// Incr increments the counter for the specified key. It returns the new -// count value and the remaining number of seconds, or an error. -func (ms *memStore) Incr(key string, window time.Duration) (int, int, error) { - ms.Lock() - defer ms.Unlock() - var c *counter - if ms.keys != nil { - v, _ := ms.keys.Get(key) - if v != nil { - c = v.(*counter) - } - } else { - c = ms.m[key] - } - if c == nil { - c = &counter{0, time.Now().UTC()} - } - c.n++ - if ms.keys != nil { - ms.keys.Add(key, c) - } else { - ms.m[key] = c - } - return c.n, throttled.RemainingSeconds(c.ts, window), nil -} - -// Reset resets the counter for the specified key. It sets the count -// to 1 and initializes the timestamp with the current time, in UTC. -// It returns an error if the operation fails. -func (ms *memStore) Reset(key string, win time.Duration) error { - ms.Lock() - defer ms.Unlock() - c := &counter{1, time.Now().UTC()} - if ms.keys != nil { - ms.keys.Add(key, c) - } else { - ms.m[key] = c - } - return nil -} diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/store/redis.go b/Godeps/_workspace/src/github.com/throttled/throttled/store/redis.go deleted file mode 100644 index 6347eb6fc..000000000 --- a/Godeps/_workspace/src/github.com/throttled/throttled/store/redis.go +++ /dev/null @@ -1,85 +0,0 @@ -package store - -import ( - "time" - - "github.com/garyburd/redigo/redis" - "github.com/throttled/throttled" -) - -// redisStore implements a Redis-based store. -type redisStore struct { - pool *redis.Pool - prefix string - db int -} - -// NewRedisStore creates a new Redis-based store, using the provided pool to get its -// connections. The keys will have the specified keyPrefix, which may be an empty string, -// and the database index specified by db will be selected to store the keys. -// -func NewRedisStore(pool *redis.Pool, keyPrefix string, db int) throttled.Store { - return &redisStore{ - pool: pool, - prefix: keyPrefix, - db: db, - } -} - -// Incr increments the specified key. If the key did not exist, it sets it to 1 -// and sets it to expire after the number of seconds specified by window. -// -// It returns the new count value and the number of remaining seconds, or an error -// if the operation fails. -func (r *redisStore) Incr(key string, window time.Duration) (int, int, error) { - conn := r.pool.Get() - defer conn.Close() - if err := selectDB(r.db, conn); err != nil { - return 0, 0, err - } - // Atomically increment and read the TTL. - conn.Send("MULTI") - conn.Send("INCR", r.prefix+key) - conn.Send("TTL", r.prefix+key) - vals, err := redis.Values(conn.Do("EXEC")) - if err != nil { - conn.Do("DISCARD") - return 0, 0, err - } - var cnt, ttl int - if _, err = redis.Scan(vals, &cnt, &ttl); err != nil { - return 0, 0, err - } - // If there was no TTL set, then this is a newly created key (INCR creates the key - // if it didn't exist), so set it to expire. - if ttl == -1 { - ttl = int(window.Seconds()) - _, err = conn.Do("EXPIRE", r.prefix+key, ttl) - if err != nil { - return 0, 0, err - } - } - return cnt, ttl, nil -} - -// Reset sets the value of the key to 1, and resets its time window. -func (r *redisStore) Reset(key string, window time.Duration) error { - conn := r.pool.Get() - defer conn.Close() - if err := selectDB(r.db, conn); err != nil { - return err - } - _, err := redis.String(conn.Do("SET", r.prefix+key, "1", "EX", int(window.Seconds()), "NX")) - return err -} - -// Select the specified database index. -func selectDB(db int, conn redis.Conn) error { - // Select the specified database - if db > 0 { - if _, err := redis.String(conn.Do("SELECT", db)); err != nil { - return err - } - } - return nil -} diff --git a/Godeps/_workspace/src/code.google.com/p/go.crypto/bcrypt/base64.go b/Godeps/_workspace/src/golang.org/x/crypto/bcrypt/base64.go index fc3116090..fc3116090 100644 --- a/Godeps/_workspace/src/code.google.com/p/go.crypto/bcrypt/base64.go +++ b/Godeps/_workspace/src/golang.org/x/crypto/bcrypt/base64.go diff --git a/Godeps/_workspace/src/code.google.com/p/go.crypto/bcrypt/bcrypt.go b/Godeps/_workspace/src/golang.org/x/crypto/bcrypt/bcrypt.go index b8e18d744..b8e18d744 100644 --- a/Godeps/_workspace/src/code.google.com/p/go.crypto/bcrypt/bcrypt.go +++ b/Godeps/_workspace/src/golang.org/x/crypto/bcrypt/bcrypt.go diff --git a/Godeps/_workspace/src/code.google.com/p/go.crypto/bcrypt/bcrypt_test.go b/Godeps/_workspace/src/golang.org/x/crypto/bcrypt/bcrypt_test.go index f08a6f5b2..f08a6f5b2 100644 --- a/Godeps/_workspace/src/code.google.com/p/go.crypto/bcrypt/bcrypt_test.go +++ b/Godeps/_workspace/src/golang.org/x/crypto/bcrypt/bcrypt_test.go diff --git a/Godeps/_workspace/src/golang.org/x/image/tiff/buffer_test.go b/Godeps/_workspace/src/golang.org/x/image/tiff/buffer_test.go new file mode 100644 index 000000000..e13afb361 --- /dev/null +++ b/Godeps/_workspace/src/golang.org/x/image/tiff/buffer_test.go @@ -0,0 +1,36 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package tiff + +import ( + "io" + "strings" + "testing" +) + +var readAtTests = []struct { + n int + off int64 + s string + err error +}{ + {2, 0, "ab", nil}, + {6, 0, "abcdef", nil}, + {3, 3, "def", nil}, + {3, 5, "f", io.EOF}, + {3, 6, "", io.EOF}, +} + +func TestReadAt(t *testing.T) { + r := newReaderAt(strings.NewReader("abcdef")) + b := make([]byte, 10) + for _, test := range readAtTests { + n, err := r.ReadAt(b[:test.n], test.off) + s := string(b[:n]) + if s != test.s || err != test.err { + t.Errorf("buffer.ReadAt(<%v bytes>, %v): got %v, %q; want %v, %q", test.n, test.off, err, s, test.err, test.s) + } + } +} diff --git a/Godeps/_workspace/src/golang.org/x/image/tiff/reader_test.go b/Godeps/_workspace/src/golang.org/x/image/tiff/reader_test.go new file mode 100644 index 000000000..f5c02e697 --- /dev/null +++ b/Godeps/_workspace/src/golang.org/x/image/tiff/reader_test.go @@ -0,0 +1,377 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package tiff + +import ( + "bytes" + "encoding/binary" + "encoding/hex" + "errors" + "image" + "io/ioutil" + "os" + "strings" + "testing" + + _ "image/png" +) + +const testdataDir = "../testdata/" + +// Read makes *buffer implements io.Reader, so that we can pass one to Decode. +func (*buffer) Read([]byte) (int, error) { + panic("unimplemented") +} + +func load(name string) (image.Image, error) { + f, err := os.Open(testdataDir + name) + if err != nil { + return nil, err + } + defer f.Close() + img, _, err := image.Decode(f) + if err != nil { + return nil, err + } + return img, nil +} + +// TestNoRPS tests decoding an image that has no RowsPerStrip tag. The tag is +// mandatory according to the spec but some software omits it in the case of a +// single strip. +func TestNoRPS(t *testing.T) { + _, err := load("no_rps.tiff") + if err != nil { + t.Fatal(err) + } +} + +// TestNoCompression tests decoding an image that has no Compression tag. This +// tag is mandatory, but most tools interpret a missing value as no +// compression. +func TestNoCompression(t *testing.T) { + _, err := load("no_compress.tiff") + if err != nil { + t.Fatal(err) + } +} + +// TestUnpackBits tests the decoding of PackBits-encoded data. +func TestUnpackBits(t *testing.T) { + var unpackBitsTests = []struct { + compressed string + uncompressed string + }{{ + // Example data from Wikipedia. + "\xfe\xaa\x02\x80\x00\x2a\xfd\xaa\x03\x80\x00\x2a\x22\xf7\xaa", + "\xaa\xaa\xaa\x80\x00\x2a\xaa\xaa\xaa\xaa\x80\x00\x2a\x22\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa", + }} + for _, u := range unpackBitsTests { + buf, err := unpackBits(strings.NewReader(u.compressed)) + if err != nil { + t.Fatal(err) + } + if string(buf) != u.uncompressed { + t.Fatalf("unpackBits: want %x, got %x", u.uncompressed, buf) + } + } +} + +func TestShortBlockData(t *testing.T) { + b, err := ioutil.ReadFile("../testdata/bw-uncompressed.tiff") + if err != nil { + t.Fatal(err) + } + // The bw-uncompressed.tiff image is a 153x55 bi-level image. This is 1 bit + // per pixel, or 20 bytes per row, times 55 rows, or 1100 bytes of pixel + // data. 1100 in hex is 0x44c, or "\x4c\x04" in little-endian. We replace + // that byte count (StripByteCounts-tagged data) by something less than + // that, so that there is not enough pixel data. + old := []byte{0x4c, 0x04} + new := []byte{0x01, 0x01} + i := bytes.Index(b, old) + if i < 0 { + t.Fatal(`could not find "\x4c\x04" byte count`) + } + if bytes.Contains(b[i+len(old):], old) { + t.Fatal(`too many occurrences of "\x4c\x04"`) + } + b[i+0] = new[0] + b[i+1] = new[1] + if _, err = Decode(bytes.NewReader(b)); err == nil { + t.Fatal("got nil error, want non-nil") + } +} + +func TestDecodeInvalidDataType(t *testing.T) { + b, err := ioutil.ReadFile("../testdata/bw-uncompressed.tiff") + if err != nil { + t.Fatal(err) + } + + // off is the offset of the ImageWidth tag. It is the offset of the overall + // IFD block (0x00000454), plus 2 for the uint16 number of IFD entries, plus 12 + // to skip the first entry. + const off = 0x00000454 + 2 + 12*1 + + if v := binary.LittleEndian.Uint16(b[off : off+2]); v != tImageWidth { + t.Fatal(`could not find ImageWidth tag`) + } + binary.LittleEndian.PutUint16(b[off+2:], uint16(len(lengths))) // invalid datatype + + if _, err = Decode(bytes.NewReader(b)); err == nil { + t.Fatal("got nil error, want non-nil") + } +} + +func compare(t *testing.T, img0, img1 image.Image) { + b0 := img0.Bounds() + b1 := img1.Bounds() + if b0.Dx() != b1.Dx() || b0.Dy() != b1.Dy() { + t.Fatalf("wrong image size: want %s, got %s", b0, b1) + } + x1 := b1.Min.X - b0.Min.X + y1 := b1.Min.Y - b0.Min.Y + for y := b0.Min.Y; y < b0.Max.Y; y++ { + for x := b0.Min.X; x < b0.Max.X; x++ { + c0 := img0.At(x, y) + c1 := img1.At(x+x1, y+y1) + r0, g0, b0, a0 := c0.RGBA() + r1, g1, b1, a1 := c1.RGBA() + if r0 != r1 || g0 != g1 || b0 != b1 || a0 != a1 { + t.Fatalf("pixel at (%d, %d) has wrong color: want %v, got %v", x, y, c0, c1) + } + } + } +} + +// TestDecode tests that decoding a PNG image and a TIFF image result in the +// same pixel data. +func TestDecode(t *testing.T) { + img0, err := load("video-001.png") + if err != nil { + t.Fatal(err) + } + img1, err := load("video-001.tiff") + if err != nil { + t.Fatal(err) + } + img2, err := load("video-001-strip-64.tiff") + if err != nil { + t.Fatal(err) + } + img3, err := load("video-001-tile-64x64.tiff") + if err != nil { + t.Fatal(err) + } + img4, err := load("video-001-16bit.tiff") + if err != nil { + t.Fatal(err) + } + + compare(t, img0, img1) + compare(t, img0, img2) + compare(t, img0, img3) + compare(t, img0, img4) +} + +// TestDecodeLZW tests that decoding a PNG image and a LZW-compressed TIFF +// image result in the same pixel data. +func TestDecodeLZW(t *testing.T) { + img0, err := load("blue-purple-pink.png") + if err != nil { + t.Fatal(err) + } + img1, err := load("blue-purple-pink.lzwcompressed.tiff") + if err != nil { + t.Fatal(err) + } + + compare(t, img0, img1) +} + +// TestDecompress tests that decoding some TIFF images that use different +// compression formats result in the same pixel data. +func TestDecompress(t *testing.T) { + var decompressTests = []string{ + "bw-uncompressed.tiff", + "bw-deflate.tiff", + "bw-packbits.tiff", + } + var img0 image.Image + for _, name := range decompressTests { + img1, err := load(name) + if err != nil { + t.Fatalf("decoding %s: %v", name, err) + } + if img0 == nil { + img0 = img1 + continue + } + compare(t, img0, img1) + } +} + +func replace(src []byte, find, repl string) ([]byte, error) { + removeSpaces := func(r rune) rune { + if r != ' ' { + return r + } + return -1 + } + + f, err := hex.DecodeString(strings.Map(removeSpaces, find)) + if err != nil { + return nil, err + } + r, err := hex.DecodeString(strings.Map(removeSpaces, repl)) + if err != nil { + return nil, err + } + dst := bytes.Replace(src, f, r, 1) + if bytes.Equal(dst, src) { + return nil, errors.New("replacement failed") + } + return dst, nil +} + +// TestZeroBitsPerSample tests that an IFD with a bitsPerSample of 0 does not +// cause a crash. +// Issue 10711. +func TestZeroBitsPerSample(t *testing.T) { + b0, err := ioutil.ReadFile(testdataDir + "bw-deflate.tiff") + if err != nil { + t.Fatal(err) + } + + // Mutate the loaded image to have the problem. + // 02 01: tag number (tBitsPerSample) + // 03 00: data type (short, or uint16) + // 01 00 00 00: count + // ?? 00 00 00: value (1 -> 0) + b1, err := replace(b0, + "02 01 03 00 01 00 00 00 01 00 00 00", + "02 01 03 00 01 00 00 00 00 00 00 00", + ) + if err != nil { + t.Fatal(err) + } + + _, err = Decode(bytes.NewReader(b1)) + if err == nil { + t.Fatal("Decode with 0 bits per sample: got nil error, want non-nil") + } +} + +// TestTileTooBig tests that we do not panic when a tile is too big compared to +// the data available. +// Issue 10712 +func TestTileTooBig(t *testing.T) { + b0, err := ioutil.ReadFile(testdataDir + "video-001-tile-64x64.tiff") + if err != nil { + t.Fatal(err) + } + + // Mutate the loaded image to have the problem. + // + // 42 01: tag number (tTileWidth) + // 03 00: data type (short, or uint16) + // 01 00 00 00: count + // xx 00 00 00: value (0x40 -> 0x44: a wider tile consumes more data + // than is available) + b1, err := replace(b0, + "42 01 03 00 01 00 00 00 40 00 00 00", + "42 01 03 00 01 00 00 00 44 00 00 00", + ) + if err != nil { + t.Fatal(err) + } + + // Turn off the predictor, which makes it possible to hit the + // place with the defect. Without this patch to the image, we run + // out of data too early, and do not hit the part of the code where + // the original panic was. + // + // 3d 01: tag number (tPredictor) + // 03 00: data type (short, or uint16) + // 01 00 00 00: count + // xx 00 00 00: value (2 -> 1: 2 = horizontal, 1 = none) + b2, err := replace(b1, + "3d 01 03 00 01 00 00 00 02 00 00 00", + "3d 01 03 00 01 00 00 00 01 00 00 00", + ) + if err != nil { + t.Fatal(err) + } + + _, err = Decode(bytes.NewReader(b2)) + if err == nil { + t.Fatal("did not expect nil error") + } +} + +// TestZeroSizedImages tests that decoding does not panic when image dimensions +// are zero, and returns a zero-sized image instead. +// Issue 10393. +func TestZeroSizedImages(t *testing.T) { + testsizes := []struct { + w, h int + }{ + {0, 0}, + {1, 0}, + {0, 1}, + {1, 1}, + } + for _, r := range testsizes { + img := image.NewRGBA(image.Rect(0, 0, r.w, r.h)) + var buf bytes.Buffer + if err := Encode(&buf, img, nil); err != nil { + t.Errorf("encode w=%d h=%d: %v", r.w, r.h, err) + continue + } + if _, err := Decode(&buf); err != nil { + t.Errorf("decode w=%d h=%d: %v", r.w, r.h, err) + } + } +} + +// TestLargeIFDEntry tests that a large IFD entry does not cause Decode to +// panic. +// Issue 10596. +func TestLargeIFDEntry(t *testing.T) { + testdata := "II*\x00\x08\x00\x00\x00\f\x000000000000" + + "00000000000000000000" + + "00000000000000000000" + + "00000000000000000000" + + "00000000000000\x17\x01\x04\x00\x01\x00" + + "\x00\xc0000000000000000000" + + "00000000000000000000" + + "00000000000000000000" + + "000000" + _, err := Decode(strings.NewReader(testdata)) + if err == nil { + t.Fatal("Decode with large IFD entry: got nil error, want non-nil") + } +} + +// benchmarkDecode benchmarks the decoding of an image. +func benchmarkDecode(b *testing.B, filename string) { + b.StopTimer() + contents, err := ioutil.ReadFile(testdataDir + filename) + if err != nil { + b.Fatal(err) + } + r := &buffer{buf: contents} + b.StartTimer() + for i := 0; i < b.N; i++ { + _, err := Decode(r) + if err != nil { + b.Fatal("Decode:", err) + } + } +} + +func BenchmarkDecodeCompressed(b *testing.B) { benchmarkDecode(b, "video-001.tiff") } +func BenchmarkDecodeUncompressed(b *testing.B) { benchmarkDecode(b, "video-001-uncompressed.tiff") } diff --git a/Godeps/_workspace/src/golang.org/x/image/tiff/writer_test.go b/Godeps/_workspace/src/golang.org/x/image/tiff/writer_test.go new file mode 100644 index 000000000..c8fb7bf37 --- /dev/null +++ b/Godeps/_workspace/src/golang.org/x/image/tiff/writer_test.go @@ -0,0 +1,95 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package tiff + +import ( + "bytes" + "image" + "io/ioutil" + "os" + "testing" +) + +var roundtripTests = []struct { + filename string + opts *Options +}{ + {"video-001.tiff", nil}, + {"video-001-16bit.tiff", nil}, + {"video-001-gray.tiff", nil}, + {"video-001-gray-16bit.tiff", nil}, + {"video-001-paletted.tiff", nil}, + {"bw-packbits.tiff", nil}, + {"video-001.tiff", &Options{Predictor: true}}, + {"video-001.tiff", &Options{Compression: Deflate}}, + {"video-001.tiff", &Options{Predictor: true, Compression: Deflate}}, +} + +func openImage(filename string) (image.Image, error) { + f, err := os.Open(testdataDir + filename) + if err != nil { + return nil, err + } + defer f.Close() + return Decode(f) +} + +func TestRoundtrip(t *testing.T) { + for _, rt := range roundtripTests { + img, err := openImage(rt.filename) + if err != nil { + t.Fatal(err) + } + out := new(bytes.Buffer) + err = Encode(out, img, rt.opts) + if err != nil { + t.Fatal(err) + } + + img2, err := Decode(&buffer{buf: out.Bytes()}) + if err != nil { + t.Fatal(err) + } + compare(t, img, img2) + } +} + +// TestRoundtrip2 tests that encoding and decoding an image whose +// origin is not (0, 0) gives the same thing. +func TestRoundtrip2(t *testing.T) { + m0 := image.NewRGBA(image.Rect(3, 4, 9, 8)) + for i := range m0.Pix { + m0.Pix[i] = byte(i) + } + out := new(bytes.Buffer) + if err := Encode(out, m0, nil); err != nil { + t.Fatal(err) + } + m1, err := Decode(&buffer{buf: out.Bytes()}) + if err != nil { + t.Fatal(err) + } + compare(t, m0, m1) +} + +func benchmarkEncode(b *testing.B, name string, pixelSize int) { + img, err := openImage(name) + if err != nil { + b.Fatal(err) + } + s := img.Bounds().Size() + b.SetBytes(int64(s.X * s.Y * pixelSize)) + b.ResetTimer() + for i := 0; i < b.N; i++ { + Encode(ioutil.Discard, img, nil) + } +} + +func BenchmarkEncode(b *testing.B) { benchmarkEncode(b, "video-001.tiff", 4) } +func BenchmarkEncodePaletted(b *testing.B) { benchmarkEncode(b, "video-001-paletted.tiff", 1) } +func BenchmarkEncodeGray(b *testing.B) { benchmarkEncode(b, "video-001-gray.tiff", 1) } +func BenchmarkEncodeGray16(b *testing.B) { benchmarkEncode(b, "video-001-gray-16bit.tiff", 2) } +func BenchmarkEncodeRGBA(b *testing.B) { benchmarkEncode(b, "video-001.tiff", 4) } +func BenchmarkEncodeRGBA64(b *testing.B) { benchmarkEncode(b, "video-001-16bit.tiff", 8) } diff --git a/Godeps/_workspace/src/gopkg.in/fsnotify.v1/.travis.yml b/Godeps/_workspace/src/gopkg.in/fsnotify.v1/.travis.yml index 67467e140..1b5151f12 100644 --- a/Godeps/_workspace/src/gopkg.in/fsnotify.v1/.travis.yml +++ b/Godeps/_workspace/src/gopkg.in/fsnotify.v1/.travis.yml @@ -2,10 +2,15 @@ sudo: false language: go go: - - 1.4.1 + - 1.5.1 before_script: - - FIXED=$(go fmt ./... | wc -l); if [ $FIXED -gt 0 ]; then echo "gofmt - $FIXED file(s) not formatted correctly, please run gofmt to fix this." && exit 1; fi + - go get -u github.com/golang/lint/golint + +after_script: + - test -z "$(gofmt -s -l -w . | tee /dev/stderr)" + - test -z "$(golint ./... | tee /dev/stderr)" + - go vet ./... os: - linux diff --git a/Godeps/_workspace/src/gopkg.in/fsnotify.v1/AUTHORS b/Godeps/_workspace/src/gopkg.in/fsnotify.v1/AUTHORS index 4e0e8284e..763b853c3 100644 --- a/Godeps/_workspace/src/gopkg.in/fsnotify.v1/AUTHORS +++ b/Godeps/_workspace/src/gopkg.in/fsnotify.v1/AUTHORS @@ -11,18 +11,22 @@ Adrien Bustany <adrien@bustany.org> Caleb Spare <cespare@gmail.com> Case Nelson <case@teammating.com> -Chris Howey <howeyc@gmail.com> <chris@howey.me> +Chris Howey <chris@howey.me> <howeyc@gmail.com> Christoffer Buchholz <christoffer.buchholz@gmail.com> +Daniel Wagner-Hall <dawagner@gmail.com> Dave Cheney <dave@cheney.net> +Evan Phoenix <evan@fallingsnow.net> Francisco Souza <f@souza.cc> Hari haran <hariharan.uno@gmail.com> John C Barstow Kelvin Fo <vmirage@gmail.com> +Ken-ichirou MATSUZAWA <chamas@h4.dion.ne.jp> Matt Layher <mdlayher@gmail.com> Nathan Youngman <git@nathany.com> Paul Hammond <paul@paulhammond.org> Pieter Droogendijk <pieter@binky.org.uk> Pursuit92 <JoshChase@techpursuit.net> +Riku Voipio <riku.voipio@linaro.org> Rob Figueiredo <robfig@gmail.com> Soge Zhang <zhssoge@gmail.com> Tilak Sharma <tilaks@google.com> @@ -32,3 +36,4 @@ Yukang <moorekang@gmail.com> bronze1man <bronze1man@gmail.com> debrando <denis.brandolini@gmail.com> henrikedwards <henrik.edwards@gmail.com> +é“å“¥ <guotie.9@gmail.com> diff --git a/Godeps/_workspace/src/gopkg.in/fsnotify.v1/CHANGELOG.md b/Godeps/_workspace/src/gopkg.in/fsnotify.v1/CHANGELOG.md index ea9428a2a..4e6672702 100644 --- a/Godeps/_workspace/src/gopkg.in/fsnotify.v1/CHANGELOG.md +++ b/Godeps/_workspace/src/gopkg.in/fsnotify.v1/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## v1.2.5 / 2015-10-17 + +* inotify: use epoll_create1 for arm64 support (requires Linux 2.6.27 or later) [#100](https://github.com/go-fsnotify/fsnotify/pull/100) (thanks @suihkulokki) +* inotify: fix path leaks [#73](https://github.com/go-fsnotify/fsnotify/pull/73) (thanks @chamaken) +* kqueue: watch for rename events on subdirectories [#83](https://github.com/go-fsnotify/fsnotify/pull/83) (thanks @guotie) +* kqueue: avoid infinite loops from symlinks cycles [#101](https://github.com/go-fsnotify/fsnotify/pull/101) (thanks @illicitonion) + +## v1.2.1 / 2015-10-14 + +* kqueue: don't watch named pipes [#98](https://github.com/go-fsnotify/fsnotify/pull/98) (thanks @evanphx) + ## v1.2.0 / 2015-02-08 * inotify: use epoll to wake up readEvents [#66](https://github.com/go-fsnotify/fsnotify/pull/66) (thanks @PieterD) diff --git a/Godeps/_workspace/src/gopkg.in/fsnotify.v1/NotUsed.xcworkspace b/Godeps/_workspace/src/gopkg.in/fsnotify.v1/NotUsed.xcworkspace deleted file mode 100644 index e69de29bb..000000000 --- a/Godeps/_workspace/src/gopkg.in/fsnotify.v1/NotUsed.xcworkspace +++ /dev/null diff --git a/Godeps/_workspace/src/gopkg.in/fsnotify.v1/README.md b/Godeps/_workspace/src/gopkg.in/fsnotify.v1/README.md index 7a0b24736..f2b432e96 100644 --- a/Godeps/_workspace/src/gopkg.in/fsnotify.v1/README.md +++ b/Godeps/_workspace/src/gopkg.in/fsnotify.v1/README.md @@ -1,6 +1,6 @@ # File system notifications for Go -[![Coverage](http://gocover.io/_badge/github.com/go-fsnotify/fsnotify)](http://gocover.io/github.com/go-fsnotify/fsnotify) [![GoDoc](https://godoc.org/gopkg.in/fsnotify.v1?status.svg)](https://godoc.org/gopkg.in/fsnotify.v1) +[![GoDoc](https://godoc.org/gopkg.in/fsnotify.v1?status.svg)](https://godoc.org/gopkg.in/fsnotify.v1) [![Coverage](http://gocover.io/_badge/github.com/go-fsnotify/fsnotify)](http://gocover.io/github.com/go-fsnotify/fsnotify) Go 1.3+ required. @@ -8,8 +8,8 @@ Cross platform: Windows, Linux, BSD and OS X. |Adapter |OS |Status | |----------|----------|----------| -|inotify |Linux, Android\*|Supported [![Build Status](https://travis-ci.org/go-fsnotify/fsnotify.svg?branch=master)](https://travis-ci.org/go-fsnotify/fsnotify)| -|kqueue |BSD, OS X, iOS\*|Supported [![Circle CI](https://circleci.com/gh/go-fsnotify/fsnotify.svg?style=svg)](https://circleci.com/gh/go-fsnotify/fsnotify)| +|inotify |Linux 2.6.27 or later, Android\*|Supported [![Build Status](https://travis-ci.org/go-fsnotify/fsnotify.svg?branch=master)](https://travis-ci.org/go-fsnotify/fsnotify)| +|kqueue |BSD, OS X, iOS\*|Supported [![Build Status](https://travis-ci.org/go-fsnotify/fsnotify.svg?branch=master)](https://travis-ci.org/go-fsnotify/fsnotify)| |ReadDirectoryChangesW|Windows|Supported [![Build status](https://ci.appveyor.com/api/projects/status/ivwjubaih4r0udeh/branch/master?svg=true)](https://ci.appveyor.com/project/NathanYoungman/fsnotify/branch/master)| |FSEvents |OS X |[Planned](https://github.com/go-fsnotify/fsnotify/issues/11)| |FEN |Solaris 11 |[Planned](https://github.com/go-fsnotify/fsnotify/issues/12)| @@ -55,5 +55,10 @@ Please refer to [CONTRIBUTING][] before opening an issue or pull request. See [example_test.go](https://github.com/go-fsnotify/fsnotify/blob/master/example_test.go). - [contributing]: https://github.com/go-fsnotify/fsnotify/blob/master/CONTRIBUTING.md + +## Related Projects + +* [notify](https://github.com/rjeczalik/notify) +* [fsevents](https://github.com/go-fsnotify/fsevents) + diff --git a/Godeps/_workspace/src/gopkg.in/fsnotify.v1/circle.yml b/Godeps/_workspace/src/gopkg.in/fsnotify.v1/circle.yml deleted file mode 100644 index 204217fb0..000000000 --- a/Godeps/_workspace/src/gopkg.in/fsnotify.v1/circle.yml +++ /dev/null @@ -1,26 +0,0 @@ -## OS X build (CircleCI iOS beta) - -# Pretend like it's an Xcode project, at least to get it running. -machine: - environment: - XCODE_WORKSPACE: NotUsed.xcworkspace - XCODE_SCHEME: NotUsed - # This is where the go project is actually checked out to: - CIRCLE_BUILD_DIR: $HOME/.go_project/src/github.com/go-fsnotify/fsnotify - -dependencies: - pre: - - brew upgrade go - -test: - override: - - go test ./... - -# Idealized future config, eventually with cross-platform build matrix :-) - -# machine: -# go: -# version: 1.4 -# os: -# - osx -# - linux diff --git a/Godeps/_workspace/src/gopkg.in/fsnotify.v1/inotify.go b/Godeps/_workspace/src/gopkg.in/fsnotify.v1/inotify.go index d7759ec8c..06f4bba88 100644 --- a/Godeps/_workspace/src/gopkg.in/fsnotify.v1/inotify.go +++ b/Godeps/_workspace/src/gopkg.in/fsnotify.v1/inotify.go @@ -23,6 +23,7 @@ type Watcher struct { Events chan Event Errors chan error mu sync.Mutex // Map access + cv *sync.Cond // sync removing on rm_watch with IN_IGNORE fd int poller *fdPoller watches map[string]*watch // Map of inotify watches (key: path) @@ -54,6 +55,7 @@ func NewWatcher() (*Watcher, error) { done: make(chan struct{}), doneResp: make(chan struct{}), } + w.cv = sync.NewCond(&w.mu) go w.readEvents() return w, nil @@ -134,8 +136,10 @@ func (w *Watcher) Remove(name string) error { } // inotify_rm_watch will return EINVAL if the file has been deleted; // the inotify will already have been removed. - // That means we can safely delete it from our watches, whatever inotify_rm_watch does. - delete(w.watches, name) + // watches and pathes are deleted in ignoreLinux() implicitly and asynchronously + // by calling inotify_rm_watch() below. e.g. readEvents() goroutine receives IN_IGNORE + // so that EINVAL means that the wd is being rm_watch()ed or its file removed + // by another thread and we have not received IN_IGNORE event. success, errno := syscall.InotifyRmWatch(w.fd, watch.wd) if success == -1 { // TODO: Perhaps it's not helpful to return an error here in every case. @@ -146,6 +150,14 @@ func (w *Watcher) Remove(name string) error { // explicitly by inotify_rm_watch, implicitly when the file they are watching is deleted. return errno } + + // wait until ignoreLinux() deleting maps + exists := true + for exists { + w.cv.Wait() + _, exists = w.watches[name] + } + return nil } @@ -249,7 +261,7 @@ func (w *Watcher) readEvents() { event := newEvent(name, mask) // Send the events that are not ignored on the events channel - if !event.ignoreLinux(mask) { + if !event.ignoreLinux(w, raw.Wd, mask) { select { case w.Events <- event: case <-w.done: @@ -266,9 +278,15 @@ func (w *Watcher) readEvents() { // Certain types of events can be "ignored" and not sent over the Events // channel. Such as events marked ignore by the kernel, or MODIFY events // against files that do not exist. -func (e *Event) ignoreLinux(mask uint32) bool { +func (e *Event) ignoreLinux(w *Watcher, wd int32, mask uint32) bool { // Ignore anything the inotify API says to ignore if mask&syscall.IN_IGNORED == syscall.IN_IGNORED { + w.mu.Lock() + defer w.mu.Unlock() + name := w.paths[int(wd)] + delete(w.paths, int(wd)) + delete(w.watches, name) + w.cv.Broadcast() return true } diff --git a/Godeps/_workspace/src/gopkg.in/fsnotify.v1/inotify_poller.go b/Godeps/_workspace/src/gopkg.in/fsnotify.v1/inotify_poller.go index 3b4178404..23a5ca146 100644 --- a/Godeps/_workspace/src/gopkg.in/fsnotify.v1/inotify_poller.go +++ b/Godeps/_workspace/src/gopkg.in/fsnotify.v1/inotify_poller.go @@ -39,7 +39,7 @@ func newFdPoller(fd int) (*fdPoller, error) { poller.fd = fd // Create epoll fd - poller.epfd, errno = syscall.EpollCreate(1) + poller.epfd, errno = syscall.EpollCreate1(0) if poller.epfd == -1 { return nil, errno } diff --git a/Godeps/_workspace/src/gopkg.in/fsnotify.v1/inotify_test.go b/Godeps/_workspace/src/gopkg.in/fsnotify.v1/inotify_test.go index 035ee8f95..4b5c4b184 100644 --- a/Godeps/_workspace/src/gopkg.in/fsnotify.v1/inotify_test.go +++ b/Godeps/_workspace/src/gopkg.in/fsnotify.v1/inotify_test.go @@ -7,6 +7,7 @@ package fsnotify import ( + "fmt" "os" "path/filepath" "syscall" @@ -281,12 +282,60 @@ func TestInotifyRemoveTwice(t *testing.T) { } err = w.Remove(testFile) - if err != syscall.EINVAL { - t.Fatalf("Expected EINVAL from Remove, got: %v", err) + if err == nil { + t.Fatalf("no error on removing invalid file") } + s1 := fmt.Sprintf("%s", err) err = w.Remove(testFile) - if err == syscall.EINVAL { - t.Fatalf("Got EINVAL again, watch was not removed") + if err == nil { + t.Fatalf("no error on removing invalid file") + } + s2 := fmt.Sprintf("%s", err) + + if s1 != s2 { + t.Fatalf("receive different error - %s / %s", s1, s2) + } +} + +func TestInotifyInnerMapLength(t *testing.T) { + testDir := tempMkdir(t) + defer os.RemoveAll(testDir) + testFile := filepath.Join(testDir, "testfile") + + handle, err := os.Create(testFile) + if err != nil { + t.Fatalf("Create failed: %v", err) + } + handle.Close() + + w, err := NewWatcher() + if err != nil { + t.Fatalf("Failed to create watcher: %v", err) + } + defer w.Close() + + err = w.Add(testFile) + if err != nil { + t.Fatalf("Failed to add testFile: %v", err) + } + go func() { + for err := range w.Errors { + t.Fatalf("error received: %s", err) + } + }() + + err = os.Remove(testFile) + if err != nil { + t.Fatalf("Failed to remove testFile: %v", err) + } + _ = <-w.Events // consume Remove event + <-time.After(50 * time.Millisecond) // wait IN_IGNORE propagated + + if len(w.watches) != 0 { + t.Fatalf("Expected watches len is 0, but got: %d, %v", len(w.watches), w.watches) + } + if len(w.paths) != 0 { + t.Fatalf("Expected paths len is 0, but got: %d, %v", len(w.paths), w.paths) } } diff --git a/Godeps/_workspace/src/gopkg.in/fsnotify.v1/integration_test.go b/Godeps/_workspace/src/gopkg.in/fsnotify.v1/integration_test.go index 59169c6af..49e48ff1c 100644 --- a/Godeps/_workspace/src/gopkg.in/fsnotify.v1/integration_test.go +++ b/Godeps/_workspace/src/gopkg.in/fsnotify.v1/integration_test.go @@ -10,6 +10,7 @@ import ( "io/ioutil" "os" "os/exec" + "path" "path/filepath" "runtime" "sync/atomic" @@ -1065,6 +1066,53 @@ func TestFsnotifyFakeSymlink(t *testing.T) { watcher.Close() } +func TestCyclicSymlink(t *testing.T) { + if runtime.GOOS == "windows" { + t.Skip("symlinks don't work on Windows.") + } + + watcher := newWatcher(t) + + testDir := tempMkdir(t) + defer os.RemoveAll(testDir) + + link := path.Join(testDir, "link") + if err := os.Symlink(".", link); err != nil { + t.Fatalf("could not make symlink: %v", err) + } + addWatch(t, watcher, testDir) + + var createEventsReceived counter + go func() { + for ev := range watcher.Events { + if ev.Op&Create == Create { + createEventsReceived.increment() + } + } + }() + + if err := os.Remove(link); err != nil { + t.Fatalf("Error removing link: %v", err) + } + + // It would be nice to be able to expect a delete event here, but kqueue has + // no way for us to get events on symlinks themselves, because opening them + // opens an fd to the file to which they point. + + if err := ioutil.WriteFile(link, []byte("foo"), 0700); err != nil { + t.Fatalf("could not make symlink: %v", err) + } + + // We expect this event to be received almost immediately, but let's wait 500 ms to be sure + time.Sleep(500 * time.Millisecond) + + if got := createEventsReceived.value(); got == 0 { + t.Errorf("want at least 1 create event got %v", got) + } + + watcher.Close() +} + // TestConcurrentRemovalOfWatch tests that concurrent calls to RemoveWatch do not race. // See https://codereview.appspot.com/103300045/ // go test -test.run=TestConcurrentRemovalOfWatch -test.cpu=1,1,1,1,1 -race diff --git a/Godeps/_workspace/src/gopkg.in/fsnotify.v1/kqueue.go b/Godeps/_workspace/src/gopkg.in/fsnotify.v1/kqueue.go index 265622d20..9662a50a8 100644 --- a/Godeps/_workspace/src/gopkg.in/fsnotify.v1/kqueue.go +++ b/Godeps/_workspace/src/gopkg.in/fsnotify.v1/kqueue.go @@ -94,7 +94,8 @@ func (w *Watcher) Add(name string) error { w.mu.Lock() w.externalWatches[name] = true w.mu.Unlock() - return w.addWatch(name, noteAllEvents) + _, err := w.addWatch(name, noteAllEvents) + return err } // Remove stops watching the the named file or directory (non-recursively). @@ -153,7 +154,8 @@ var keventWaitTime = durationToTimespec(100 * time.Millisecond) // addWatch adds name to the watched file set. // The flags are interpreted as described in kevent(2). -func (w *Watcher) addWatch(name string, flags uint32) error { +// Returns the real path to the file which was added, if any, which may be different from the one passed in the case of symlinks. +func (w *Watcher) addWatch(name string, flags uint32) (string, error) { var isDir bool // Make ./name and name equivalent name = filepath.Clean(name) @@ -161,7 +163,7 @@ func (w *Watcher) addWatch(name string, flags uint32) error { w.mu.Lock() if w.isClosed { w.mu.Unlock() - return errors.New("kevent instance already closed") + return "", errors.New("kevent instance already closed") } watchfd, alreadyWatching := w.watches[name] // We already have a watch, but we can still override flags. @@ -173,12 +175,17 @@ func (w *Watcher) addWatch(name string, flags uint32) error { if !alreadyWatching { fi, err := os.Lstat(name) if err != nil { - return err + return "", err } // Don't watch sockets. if fi.Mode()&os.ModeSocket == os.ModeSocket { - return nil + return "", nil + } + + // Don't watch named pipes. + if fi.Mode()&os.ModeNamedPipe == os.ModeNamedPipe { + return "", nil } // Follow Symlinks @@ -190,18 +197,26 @@ func (w *Watcher) addWatch(name string, flags uint32) error { if fi.Mode()&os.ModeSymlink == os.ModeSymlink { name, err = filepath.EvalSymlinks(name) if err != nil { - return nil + return "", nil + } + + w.mu.Lock() + _, alreadyWatching = w.watches[name] + w.mu.Unlock() + + if alreadyWatching { + return name, nil } fi, err = os.Lstat(name) if err != nil { - return nil + return "", nil } } watchfd, err = syscall.Open(name, openMode, 0700) if watchfd == -1 { - return err + return "", err } isDir = fi.IsDir() @@ -210,7 +225,7 @@ func (w *Watcher) addWatch(name string, flags uint32) error { const registerAdd = syscall.EV_ADD | syscall.EV_CLEAR | syscall.EV_ENABLE if err := register(w.kq, []int{watchfd}, registerAdd, flags); err != nil { syscall.Close(watchfd) - return err + return "", err } if !alreadyWatching { @@ -224,6 +239,7 @@ func (w *Watcher) addWatch(name string, flags uint32) error { // Watch the directory if it has not been watched before, // or if it was watched before, but perhaps only a NOTE_DELETE (watchDirectoryFiles) w.mu.Lock() + watchDir := (flags&syscall.NOTE_WRITE) == syscall.NOTE_WRITE && (!alreadyWatching || (w.dirFlags[name]&syscall.NOTE_WRITE) != syscall.NOTE_WRITE) // Store flags so this watch can be updated later @@ -232,11 +248,11 @@ func (w *Watcher) addWatch(name string, flags uint32) error { if watchDir { if err := w.watchDirectoryFiles(name); err != nil { - return err + return "", err } } } - return nil + return name, nil } // readEvents reads from kqueue and converts the received kevents into @@ -359,7 +375,8 @@ func (w *Watcher) watchDirectoryFiles(dirPath string) error { for _, fileInfo := range files { filePath := filepath.Join(dirPath, fileInfo.Name()) - if err := w.internalWatch(filePath, fileInfo); err != nil { + filePath, err = w.internalWatch(filePath, fileInfo) + if err != nil { return err } @@ -394,7 +411,8 @@ func (w *Watcher) sendDirectoryChangeEvents(dirPath string) { } // like watchDirectoryFiles (but without doing another ReadDir) - if err := w.internalWatch(filePath, fileInfo); err != nil { + filePath, err = w.internalWatch(filePath, fileInfo) + if err != nil { return } @@ -404,7 +422,7 @@ func (w *Watcher) sendDirectoryChangeEvents(dirPath string) { } } -func (w *Watcher) internalWatch(name string, fileInfo os.FileInfo) error { +func (w *Watcher) internalWatch(name string, fileInfo os.FileInfo) (string, error) { if fileInfo.IsDir() { // mimic Linux providing delete events for subdirectories // but preserve the flags used if currently watching subdirectory @@ -412,7 +430,7 @@ func (w *Watcher) internalWatch(name string, fileInfo os.FileInfo) error { flags := w.dirFlags[name] w.mu.Unlock() - flags |= syscall.NOTE_DELETE + flags |= syscall.NOTE_DELETE | syscall.NOTE_RENAME return w.addWatch(name, flags) } diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/.gitignore b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/.gitignore index c2a6499b4..c2a6499b4 100644 --- a/Godeps/_workspace/src/github.com/throttled/throttled/.gitignore +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/.gitignore diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/.travis.yml b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/.travis.yml index 1b2427202..1b2427202 100644 --- a/Godeps/_workspace/src/github.com/throttled/throttled/.travis.yml +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/.travis.yml diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/LICENSE b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/LICENSE index f9616483e..f9616483e 100644 --- a/Godeps/_workspace/src/github.com/throttled/throttled/LICENSE +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/LICENSE diff --git a/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/README.md b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/README.md new file mode 100644 index 000000000..fbb4a01fc --- /dev/null +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/README.md @@ -0,0 +1,82 @@ +# Throttled [![build status](https://secure.travis-ci.org/throttled/throttled.png)](http://travis-ci.org/throttled/throttled) [![GoDoc](https://godoc.org/gopkg.in/throttled/throttled.v1?status.png)](http://godoc.org/gopkg.in/throttled/throttled.v1) + +Package throttled implements different throttling strategies for controlling +access to HTTP handlers. + +*As of July 27, 2015, the package is now located under its own GitHub + organization and uses gopkg.in for versioning, please adjust your + imports to `gopkg.in/throttled/throttled.v1`.* + +## Installation + +`go get gopkg.in/throttled/throttled.v1/...` + +## Interval + +The Interval function creates a throttler that allows requests to go through at +a controlled, constant interval. The interval may be applied to all requests +(vary argument == nil) or independently based on vary-by criteria. + +For example: + + th := throttled.Interval(throttled.PerSec(10), 100, &throttled.VaryBy{Path: true}, 50) + h := th.Throttle(myHandler) + http.ListenAndServe(":9000", h) + +Creates a throttler that will allow a request each 100ms (10 requests per second), with +a buffer of 100 exceeding requests before dropping requests with a status code 429 (by +default, configurable using th.DeniedHandler or the package-global DefaultDeniedHandler +variable). Different paths will be throttled independently, so that /path_a and /path_b +both can serve 10 requests per second. The last argument, 50, indicates the maximum number +of keys that the throttler will keep in memory. + +## MemStats + +The MemStats function creates a throttler that allows requests to go through only if +the memory statistics of the current process are below specified thresholds. + +For example: + + th := throttled.MemStats(throttled.MemThresholds(&runtime.MemStats{NumGC: 10}, 10*time.Millisecond) + h := th.Throttle(myHandler) + http.ListenAndServe(":9000", h) + +Creates a throttler that will allow requests to go through until the number of garbage +collections reaches the initial number + 10 (the MemThresholds function creates absolute +memory stats thresholds from offsets). The second argument, 10ms, indicates the refresh +rate of the memory stats. + +## RateLimit + +The RateLimit function creates a throttler that allows a certain number of requests in +a given time window, as is often implemented in public RESTful APIs. + +For example: + + th := throttled.RateLimit(throttled.PerMin(30), &throttled.VaryBy{RemoteAddr: true}, store.NewMemStore(1000)) + h := th.Throttle(myHandler) + http.ListenAndServe(":9000", h) + +Creates a throttler that will limit requests to 30 per minute, based on the remote address +of the client, and will store the counter and remaining time of the current window in the +provided memory store, limiting the number of keys to keep in memory to 1000. The store +sub-package also provides a Redis-based Store implementations. + +The RateLimit throttler sets the expected X-RateLimit-* headers on the response, and +also sets a Retry-After header when the limit is exceeded. + +## Documentation + +The API documentation is available as usual on [godoc.org][doc]. + +There is also a [blog post explaining the package's usage on 0value.com][blog]. + +Finally, many examples are provided in the /examples sub-folder of the repository. + +## License + +The [BSD 3-clause license][bsd]. Copyright (c) 2014 Martin Angers and Contributors. + +[doc]: http://godoc.org/gopkg.in/throttled/throttled.v1 +[blog]: http://0value.com/throttled--guardian-of-the-web-server +[bsd]: http://opensource.org/licenses/BSD-3-Clause diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/common_test.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/common_test.go index ddb57fb1c..ddb57fb1c 100644 --- a/Godeps/_workspace/src/github.com/throttled/throttled/common_test.go +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/common_test.go diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/delayer.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/delayer.go index e62ec9e86..e62ec9e86 100644 --- a/Godeps/_workspace/src/github.com/throttled/throttled/delayer.go +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/delayer.go diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/delayer_test.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/delayer_test.go index 822978e5d..822978e5d 100644 --- a/Godeps/_workspace/src/github.com/throttled/throttled/delayer_test.go +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/delayer_test.go diff --git a/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/doc.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/doc.go new file mode 100644 index 000000000..acf5213b0 --- /dev/null +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/doc.go @@ -0,0 +1,77 @@ +// Package throttled implements different throttling strategies for controlling +// access to HTTP handlers. +// +// Installation +// +// go get gopkg.in/throttled/throttled.v1/... +// +// Inverval +// +// The Interval function creates a throttler that allows requests to go through at +// a controlled, constant interval. The interval may be applied to all requests +// (vary argument == nil) or independently based on vary-by criteria. +// +// For example: +// +// th := throttled.Interval(throttled.PerSec(10), 100, &throttled.VaryBy{Path: true}, 50) +// h := th.Throttle(myHandler) +// http.ListenAndServe(":9000", h) +// +// Creates a throttler that will allow a request each 100ms (10 requests per second), with +// a buffer of 100 exceeding requests before dropping requests with a status code 429 (by +// default, configurable using th.DeniedHandler or the package-global DefaultDeniedHandler +// variable). Different paths will be throttled independently, so that /path_a and /path_b +// both can serve 10 requests per second. The last argument, 50, indicates the maximum number +// of keys that the throttler will keep in memory. +// +// MemStats +// +// The MemStats function creates a throttler that allows requests to go through only if +// the memory statistics of the current process are below specified thresholds. +// +// For example: +// +// th := throttled.MemStats(throttled.MemThresholds(&runtime.MemStats{NumGC: 10}, 10*time.Millisecond) +// h := th.Throttle(myHandler) +// http.ListenAndServe(":9000", h) +// +// Creates a throttler that will allow requests to go through until the number of garbage +// collections reaches the initial number + 10 (the MemThresholds function creates absolute +// memory stats thresholds from offsets). The second argument, 10ms, indicates the refresh +// rate of the memory stats. +// +// RateLimit +// +// The RateLimit function creates a throttler that allows a certain number of requests in +// a given time window, as is often implemented in public RESTful APIs. +// +// For example: +// +// th := throttled.RateLimit(throttled.PerMin(30), &throttled.VaryBy{RemoteAddr: true}, store.NewMemStore(1000)) +// h := th.Throttle(myHandler) +// http.ListenAndServe(":9000", h) +// +// Creates a throttler that will limit requests to 30 per minute, based on the remote address +// of the client, and will store the counter and remaining time of the current window in the +// provided memory store, limiting the number of keys to keep in memory to 1000. The store +// sub-package also provides a Redis-based Store implementations. +// +// The RateLimit throttler sets the expected X-RateLimit-* headers on the response, and +// also sets a Retry-After header when the limit is exceeded. +// +// Documentation +// +// The API documentation is available as usual on godoc.org: +// http://godoc.org/gopkg.in/throttled/throttled.v1 +// +// There is also a blog post explaining the package's usage on 0value.com: +// http://0value.com/throttled--guardian-of-the-web-server +// +// Finally, many examples are provided in the /examples sub-folder of the repository. +// +// License +// +// The BSD 3-clause license. Copyright (c) 2014 Martin Angers and Contributors. +// http://opensource.org/licenses/BSD-3-Clause +// +package throttled diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/examples/README.md b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/README.md index 6b12dad20..6b12dad20 100644 --- a/Godeps/_workspace/src/github.com/throttled/throttled/examples/README.md +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/README.md diff --git a/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/custom/main.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/custom/main.go new file mode 100644 index 000000000..b3fe993e8 --- /dev/null +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/custom/main.go @@ -0,0 +1,90 @@ +package main + +import ( + "flag" + "fmt" + "log" + "math/rand" + "net/http" + "sync" + "time" + + "gopkg.in/throttled/throttled.v1" +) + +var ( + delayRes = flag.Duration("delay-response", 0, "delay the response by a random duration between 0 and this value") + output = flag.String("output", "v", "type of output, one of `v`erbose, `q`uiet, `ok`-only, `ko`-only") +) + +// Custom limiter: allow requests to the /a path on even seconds only, and +// allow access to the /b path on odd seconds only. +// +// Yes this is absurd. A more realistic case could be to allow requests to some +// contest page only during a limited time window. +type customLimiter struct { +} + +func (c *customLimiter) Start() { + // No-op +} + +func (c *customLimiter) Limit(w http.ResponseWriter, r *http.Request) (<-chan bool, error) { + s := time.Now().Second() + ch := make(chan bool, 1) + ok := (r.URL.Path == "/a" && s%2 == 0) || (r.URL.Path == "/b" && s%2 != 0) + ch <- ok + if *output == "v" { + log.Printf("Custom Limiter: Path=%s, Second=%d; ok? %v", r.URL.Path, s, ok) + } + return ch, nil +} + +func main() { + flag.Parse() + + var h http.Handler + var ok, ko int + var mu sync.Mutex + + // Keep the start time to print since-time + start := time.Now() + // Create the custom throttler using our custom limiter + t := throttled.Custom(&customLimiter{}) + // Set its denied handler + t.DeniedHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if *output == "v" || *output == "ko" { + log.Printf("KO: %s", time.Since(start)) + } + throttled.DefaultDeniedHandler.ServeHTTP(w, r) + mu.Lock() + defer mu.Unlock() + ko++ + }) + // Throttle the OK handler + rand.Seed(time.Now().Unix()) + h = t.Throttle(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if *output == "v" || *output == "ok" { + log.Printf("ok: %s", time.Since(start)) + } + if *delayRes > 0 { + wait := time.Duration(rand.Intn(int(*delayRes))) + time.Sleep(wait) + } + w.WriteHeader(200) + mu.Lock() + defer mu.Unlock() + ok++ + })) + + // Print stats once in a while + go func() { + for _ = range time.Tick(10 * time.Second) { + mu.Lock() + log.Printf("ok: %d, ko: %d", ok, ko) + mu.Unlock() + } + }() + fmt.Println("server listening on port 9000") + http.ListenAndServe(":9000", h) +} diff --git a/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/interval-many/main.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/interval-many/main.go new file mode 100644 index 000000000..51a4ca023 --- /dev/null +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/interval-many/main.go @@ -0,0 +1,79 @@ +package main + +import ( + "flag" + "fmt" + "log" + "math/rand" + "net/http" + "sync" + "time" + + "gopkg.in/throttled/throttled.v1" +) + +var ( + delay = flag.Duration("delay", 200*time.Millisecond, "delay between calls") + bursts = flag.Int("bursts", 10, "number of bursts allowed") + delayRes = flag.Duration("delay-response", 0, "delay the response by a random duration between 0 and this value") + output = flag.String("output", "v", "type of output, one of `v`erbose, `q`uiet, `ok`-only, `ko`-only") +) + +func main() { + flag.Parse() + + var ok, ko int + var mu sync.Mutex + + // Keep start time to log since-time + start := time.Now() + + // Create the interval throttle + t := throttled.Interval(throttled.D(*delay), *bursts, nil, 0) + // Set its denied handler + t.DeniedHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if *output == "v" || *output == "ko" { + log.Printf("%s: KO: %s", r.URL.Path, time.Since(start)) + } + throttled.DefaultDeniedHandler.ServeHTTP(w, r) + mu.Lock() + defer mu.Unlock() + ko++ + }) + // Create OK handlers + rand.Seed(time.Now().Unix()) + makeHandler := func(ix int) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if *output == "v" || *output == "ok" { + log.Printf("handler %d: %s: ok: %s", ix, r.URL.Path, time.Since(start)) + } + if *delayRes > 0 { + wait := time.Duration(rand.Intn(int(*delayRes))) + time.Sleep(wait) + } + w.WriteHeader(200) + mu.Lock() + defer mu.Unlock() + ok++ + }) + } + // Throttle them using the same interval throttler + h1 := t.Throttle(makeHandler(1)) + h2 := t.Throttle(makeHandler(2)) + + // Handle two paths + mux := http.NewServeMux() + mux.Handle("/a", h1) + mux.Handle("/b", h2) + + // Print stats once in a while + go func() { + for _ = range time.Tick(10 * time.Second) { + mu.Lock() + log.Printf("ok: %d, ko: %d", ok, ko) + mu.Unlock() + } + }() + fmt.Println("server listening on port 9000") + http.ListenAndServe(":9000", mux) +} diff --git a/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/interval-vary/main.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/interval-vary/main.go new file mode 100644 index 000000000..f43cdc122 --- /dev/null +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/interval-vary/main.go @@ -0,0 +1,74 @@ +package main + +import ( + "flag" + "fmt" + "log" + "math/rand" + "net/http" + "sync" + "time" + + "gopkg.in/throttled/throttled.v1" +) + +var ( + delay = flag.Duration("delay", 200*time.Millisecond, "delay between calls") + bursts = flag.Int("bursts", 10, "number of bursts allowed") + maxkeys = flag.Int("max-keys", 1000, "maximum number of keys") + delayRes = flag.Duration("delay-response", 0, "delay the response by a random duration between 0 and this value") + output = flag.String("output", "v", "type of output, one of `v`erbose, `q`uiet, `ok`-only, `ko`-only") +) + +func main() { + flag.Parse() + + var h http.Handler + var ok, ko int + var mu sync.Mutex + + // Keep the start time to print since-time + start := time.Now() + + // Create the interval throttler + t := throttled.Interval(throttled.D(*delay), *bursts, &throttled.VaryBy{ + Path: true, + }, *maxkeys) + // Set the denied handler + t.DeniedHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if *output == "v" || *output == "ko" { + log.Printf("KO: %s", time.Since(start)) + } + throttled.DefaultDeniedHandler.ServeHTTP(w, r) + mu.Lock() + defer mu.Unlock() + ko++ + }) + + // Throttle the OK handler + rand.Seed(time.Now().Unix()) + h = t.Throttle(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if *output == "v" || *output == "ok" { + log.Printf("%s: ok: %s", r.URL.Path, time.Since(start)) + } + if *delayRes > 0 { + wait := time.Duration(rand.Intn(int(*delayRes))) + time.Sleep(wait) + } + w.WriteHeader(200) + mu.Lock() + defer mu.Unlock() + ok++ + })) + + // Print stats once in a while + go func() { + for _ = range time.Tick(10 * time.Second) { + mu.Lock() + log.Printf("ok: %d, ko: %d", ok, ko) + mu.Unlock() + } + }() + fmt.Println("server listening on port 9000") + http.ListenAndServe(":9000", h) +} diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/examples/interval-vary/siege-urls b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/interval-vary/siege-urls index 9a2d0d312..9a2d0d312 100644 --- a/Godeps/_workspace/src/github.com/throttled/throttled/examples/interval-vary/siege-urls +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/interval-vary/siege-urls diff --git a/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/interval/main.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/interval/main.go new file mode 100644 index 000000000..ef8ee2cb8 --- /dev/null +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/interval/main.go @@ -0,0 +1,69 @@ +package main + +import ( + "flag" + "fmt" + "log" + "math/rand" + "net/http" + "sync" + "time" + + "gopkg.in/throttled/throttled.v1" +) + +var ( + delay = flag.Duration("delay", 200*time.Millisecond, "delay between calls") + bursts = flag.Int("bursts", 10, "number of bursts allowed") + delayRes = flag.Duration("delay-response", 0, "delay the response by a random duration between 0 and this value") + output = flag.String("output", "v", "type of output, one of `v`erbose, `q`uiet, `ok`-only, `ko`-only") +) + +func main() { + flag.Parse() + + var h http.Handler + var ok, ko int + var mu sync.Mutex + + // Keep the start time to print since-time + start := time.Now() + // Create the interval throttler + t := throttled.Interval(throttled.D(*delay), *bursts, nil, 0) + // Set its denied handler + t.DeniedHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if *output == "v" || *output == "ko" { + log.Printf("KO: %s", time.Since(start)) + } + throttled.DefaultDeniedHandler.ServeHTTP(w, r) + mu.Lock() + defer mu.Unlock() + ko++ + }) + // Throttle the OK handler + rand.Seed(time.Now().Unix()) + h = t.Throttle(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if *output == "v" || *output == "ok" { + log.Printf("ok: %s", time.Since(start)) + } + if *delayRes > 0 { + wait := time.Duration(rand.Intn(int(*delayRes))) + time.Sleep(wait) + } + w.WriteHeader(200) + mu.Lock() + defer mu.Unlock() + ok++ + })) + + // Print stats once in a while + go func() { + for _ = range time.Tick(10 * time.Second) { + mu.Lock() + log.Printf("ok: %d, ko: %d", ok, ko) + mu.Unlock() + } + }() + fmt.Println("server listening on port 9000") + http.ListenAndServe(":9000", h) +} diff --git a/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/memstats/main.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/memstats/main.go new file mode 100644 index 000000000..50d4cc69b --- /dev/null +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/memstats/main.go @@ -0,0 +1,97 @@ +package main + +import ( + "flag" + "fmt" + "io/ioutil" + "log" + "math/rand" + "net/http" + "runtime" + "sync" + "time" + + "gopkg.in/throttled/throttled.v1" +) + +var ( + numgc = flag.Int("gc", 0, "number of GC runs") + mallocs = flag.Int("mallocs", 0, "number of mallocs") + total = flag.Int("total", 0, "total number of bytes allocated") + allocs = flag.Int("allocs", 0, "number of bytes allocated") + refrate = flag.Duration("refresh", 0, "refresh rate of the memory stats") + delayRes = flag.Duration("delay-response", 0, "delay the response by a random duration between 0 and this value") + output = flag.String("output", "v", "type of output, one of `v`erbose, `q`uiet, `ok`-only, `ko`-only") +) + +func main() { + flag.Parse() + + var h http.Handler + var ok, ko int + var mu sync.Mutex + + // Keep the start time to print since-time + start := time.Now() + // Create the thresholds struct + thresh := throttled.MemThresholds(&runtime.MemStats{ + NumGC: uint32(*numgc), + Mallocs: uint64(*mallocs), + TotalAlloc: uint64(*total), + Alloc: uint64(*allocs), + }) + if *output != "q" { + log.Printf("thresholds: NumGC: %d, Mallocs: %d, Alloc: %dKb, Total: %dKb", thresh.NumGC, thresh.Mallocs, thresh.Alloc/1024, thresh.TotalAlloc/1024) + } + // Create the MemStats throttler + t := throttled.MemStats(thresh, *refrate) + // Set its denied handler + t.DeniedHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if *output == "v" || *output == "ko" { + log.Printf("KO: %s", time.Since(start)) + } + throttled.DefaultDeniedHandler.ServeHTTP(w, r) + mu.Lock() + defer mu.Unlock() + ko++ + }) + + // Throttle the OK handler + rand.Seed(time.Now().Unix()) + h = t.Throttle(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if *output == "v" || *output == "ok" { + log.Printf("ok: %s", time.Since(start)) + } + if *delayRes > 0 { + wait := time.Duration(rand.Intn(int(*delayRes))) + time.Sleep(wait) + } + // Read the whole file in memory, to actually use 64Kb (instead of streaming to w) + b, err := ioutil.ReadFile("test-file") + if err != nil { + throttled.Error(w, r, err) + return + } + _, err = w.Write(b) + if err != nil { + throttled.Error(w, r, err) + } + mu.Lock() + defer mu.Unlock() + ok++ + })) + + // Print stats once in a while + go func() { + var mem runtime.MemStats + for _ = range time.Tick(10 * time.Second) { + mu.Lock() + runtime.ReadMemStats(&mem) + log.Printf("ok: %d, ko: %d", ok, ko) + log.Printf("TotalAllocs: %d Kb, Allocs: %d Kb, Mallocs: %d, NumGC: %d", mem.TotalAlloc/1024, mem.Alloc/1024, mem.Mallocs, mem.NumGC) + mu.Unlock() + } + }() + fmt.Println("server listening on port 9000") + http.ListenAndServe(":9000", h) +} diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/examples/memstats/test-file b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/memstats/test-file Binary files differindex c97c12f9b..c97c12f9b 100644 --- a/Godeps/_workspace/src/github.com/throttled/throttled/examples/memstats/test-file +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/memstats/test-file diff --git a/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/rate-limit/main.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/rate-limit/main.go new file mode 100644 index 000000000..b00119f63 --- /dev/null +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/examples/rate-limit/main.go @@ -0,0 +1,101 @@ +package main + +import ( + "flag" + "fmt" + "log" + "math/rand" + "net/http" + "sync" + "time" + + "github.com/garyburd/redigo/redis" + "gopkg.in/throttled/throttled.v1" + "gopkg.in/throttled/throttled.v1/store" +) + +var ( + requests = flag.Int("requests", 10, "number of requests allowed in the time window") + window = flag.Duration("window", time.Minute, "time window for the limit of requests") + storeType = flag.String("store", "mem", "store to use, one of `mem` or `redis` (on default localhost port)") + delayRes = flag.Duration("delay-response", 0, "delay the response by a random duration between 0 and this value") + output = flag.String("output", "v", "type of output, one of `v`erbose, `q`uiet, `ok`-only, `ko`-only") +) + +func main() { + flag.Parse() + + var h http.Handler + var ok, ko int + var mu sync.Mutex + var st throttled.Store + + // Keep the start time to print since-time + start := time.Now() + // Create the rate-limit store + switch *storeType { + case "mem": + st = store.NewMemStore(0) + case "redis": + st = store.NewRedisStore(setupRedis(), "throttled:", 0) + default: + log.Fatalf("unsupported store: %s", *storeType) + } + // Create the rate-limit throttler, varying on path + t := throttled.RateLimit(throttled.Q{Requests: *requests, Window: *window}, &throttled.VaryBy{ + Path: true, + }, st) + + // Set its denied handler + t.DeniedHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if *output == "v" || *output == "ko" { + log.Printf("KO: %s", time.Since(start)) + } + throttled.DefaultDeniedHandler.ServeHTTP(w, r) + mu.Lock() + defer mu.Unlock() + ko++ + }) + + // Throttle the OK handler + rand.Seed(time.Now().Unix()) + h = t.Throttle(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if *output == "v" || *output == "ok" { + log.Printf("ok: %s", time.Since(start)) + } + if *delayRes > 0 { + wait := time.Duration(rand.Intn(int(*delayRes))) + time.Sleep(wait) + } + w.WriteHeader(200) + mu.Lock() + defer mu.Unlock() + ok++ + })) + + // Print stats once in a while + go func() { + for _ = range time.Tick(10 * time.Second) { + mu.Lock() + log.Printf("ok: %d, ko: %d", ok, ko) + mu.Unlock() + } + }() + fmt.Println("server listening on port 9000") + http.ListenAndServe(":9000", h) +} + +func setupRedis() *redis.Pool { + pool := &redis.Pool{ + MaxIdle: 3, + IdleTimeout: 30 * time.Second, + Dial: func() (redis.Conn, error) { + return redis.Dial("tcp", ":6379") + }, + TestOnBorrow: func(c redis.Conn, t time.Time) error { + _, err := c.Do("PING") + return err + }, + } + return pool +} diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/interval.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/interval.go index 628a5593e..628a5593e 100644 --- a/Godeps/_workspace/src/github.com/throttled/throttled/interval.go +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/interval.go diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/interval_test.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/interval_test.go index bc584e134..bc584e134 100644 --- a/Godeps/_workspace/src/github.com/throttled/throttled/interval_test.go +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/interval_test.go diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/memstats.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/memstats.go index bd2765630..bd2765630 100644 --- a/Godeps/_workspace/src/github.com/throttled/throttled/memstats.go +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/memstats.go diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/memstats_test.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/memstats_test.go index 2b8faa721..2b8faa721 100644 --- a/Godeps/_workspace/src/github.com/throttled/throttled/memstats_test.go +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/memstats_test.go diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/misc/pre-commit b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/misc/pre-commit index 88b61bfde..88b61bfde 100644 --- a/Godeps/_workspace/src/github.com/throttled/throttled/misc/pre-commit +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/misc/pre-commit diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/rate.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/rate.go index d7a7de6d7..d7a7de6d7 100644 --- a/Godeps/_workspace/src/github.com/throttled/throttled/rate.go +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/rate.go diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/rate_test.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/rate_test.go index 67dea74b1..67dea74b1 100644 --- a/Godeps/_workspace/src/github.com/throttled/throttled/rate_test.go +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/rate_test.go diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/store.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/store.go index 760fe2b69..760fe2b69 100644 --- a/Godeps/_workspace/src/github.com/throttled/throttled/store.go +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/store.go diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/store/doc.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/store/doc.go index adb4618d3..adb4618d3 100644 --- a/Godeps/_workspace/src/github.com/throttled/throttled/store/doc.go +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/store/doc.go diff --git a/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/store/mem.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/store/mem.go new file mode 100644 index 000000000..22d200e8d --- /dev/null +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/store/mem.go @@ -0,0 +1,90 @@ +package store + +import ( + "sync" + "time" + + "github.com/golang/groupcache/lru" + "gopkg.in/throttled/throttled.v1" +) + +// memStore implements an in-memory Store. +type memStore struct { + sync.Mutex + keys *lru.Cache + m map[string]*counter +} + +// NewMemStore creates a new MemStore. If maxKeys > 0, the number of different keys +// is restricted to the specified amount. In this case, it uses an LRU algorithm to +// evict older keys to make room for newer ones. If a request is made for a key that +// has been evicted, it will be processed as if its count was 0, possibly allowing requests +// that should be denied. +// +// If maxKeys <= 0, there is no limit on the number of keys, which may use an unbounded amount of +// memory depending on the server's load. +// +// The MemStore is only for single-process rate-limiting. To share the rate limit state +// among multiple instances of the web server, use a database- or key-value-based +// store. +// +func NewMemStore(maxKeys int) throttled.Store { + var m *memStore + if maxKeys > 0 { + m = &memStore{ + keys: lru.New(maxKeys), + } + } else { + m = &memStore{ + m: make(map[string]*counter), + } + } + return m +} + +// A counter represents a single entry in the MemStore. +type counter struct { + n int + ts time.Time +} + +// Incr increments the counter for the specified key. It returns the new +// count value and the remaining number of seconds, or an error. +func (ms *memStore) Incr(key string, window time.Duration) (int, int, error) { + ms.Lock() + defer ms.Unlock() + var c *counter + if ms.keys != nil { + v, _ := ms.keys.Get(key) + if v != nil { + c = v.(*counter) + } + } else { + c = ms.m[key] + } + if c == nil { + c = &counter{0, time.Now().UTC()} + } + c.n++ + if ms.keys != nil { + ms.keys.Add(key, c) + } else { + ms.m[key] = c + } + return c.n, throttled.RemainingSeconds(c.ts, window), nil +} + +// Reset resets the counter for the specified key. It sets the count +// to 1 and initializes the timestamp with the current time, in UTC. +// It returns an error if the operation fails. +func (ms *memStore) Reset(key string, win time.Duration) error { + ms.Lock() + defer ms.Unlock() + c := &counter{1, time.Now().UTC()} + if ms.keys != nil { + ms.keys.Add(key, c) + } else { + ms.m[key] = c + } + return nil +} diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/store/mem_test.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/store/mem_test.go index e8ef8d0da..e8ef8d0da 100644 --- a/Godeps/_workspace/src/github.com/throttled/throttled/store/mem_test.go +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/store/mem_test.go diff --git a/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/store/redis.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/store/redis.go new file mode 100644 index 000000000..b089f9f4e --- /dev/null +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/store/redis.go @@ -0,0 +1,85 @@ +package store + +import ( + "time" + + "github.com/garyburd/redigo/redis" + "gopkg.in/throttled/throttled.v1" +) + +// redisStore implements a Redis-based store. +type redisStore struct { + pool *redis.Pool + prefix string + db int +} + +// NewRedisStore creates a new Redis-based store, using the provided pool to get its +// connections. The keys will have the specified keyPrefix, which may be an empty string, +// and the database index specified by db will be selected to store the keys. +// +func NewRedisStore(pool *redis.Pool, keyPrefix string, db int) throttled.Store { + return &redisStore{ + pool: pool, + prefix: keyPrefix, + db: db, + } +} + +// Incr increments the specified key. If the key did not exist, it sets it to 1 +// and sets it to expire after the number of seconds specified by window. +// +// It returns the new count value and the number of remaining seconds, or an error +// if the operation fails. +func (r *redisStore) Incr(key string, window time.Duration) (int, int, error) { + conn := r.pool.Get() + defer conn.Close() + if err := selectDB(r.db, conn); err != nil { + return 0, 0, err + } + // Atomically increment and read the TTL. + conn.Send("MULTI") + conn.Send("INCR", r.prefix+key) + conn.Send("TTL", r.prefix+key) + vals, err := redis.Values(conn.Do("EXEC")) + if err != nil { + conn.Do("DISCARD") + return 0, 0, err + } + var cnt, ttl int + if _, err = redis.Scan(vals, &cnt, &ttl); err != nil { + return 0, 0, err + } + // If there was no TTL set, then this is a newly created key (INCR creates the key + // if it didn't exist), so set it to expire. + if ttl == -1 { + ttl = int(window.Seconds()) + _, err = conn.Do("EXPIRE", r.prefix+key, ttl) + if err != nil { + return 0, 0, err + } + } + return cnt, ttl, nil +} + +// Reset sets the value of the key to 1, and resets its time window. +func (r *redisStore) Reset(key string, window time.Duration) error { + conn := r.pool.Get() + defer conn.Close() + if err := selectDB(r.db, conn); err != nil { + return err + } + _, err := redis.String(conn.Do("SET", r.prefix+key, "1", "EX", int(window.Seconds()), "NX")) + return err +} + +// Select the specified database index. +func selectDB(db int, conn redis.Conn) error { + // Select the specified database + if db > 0 { + if _, err := redis.String(conn.Do("SELECT", db)); err != nil { + return err + } + } + return nil +} diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/store/redis_test.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/store/redis_test.go index a282d6d25..a282d6d25 100644 --- a/Godeps/_workspace/src/github.com/throttled/throttled/store/redis_test.go +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/store/redis_test.go diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/throttler.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/throttler.go index 06da13051..06da13051 100644 --- a/Godeps/_workspace/src/github.com/throttled/throttled/throttler.go +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/throttler.go diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/varyby.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/varyby.go index 3b2cdb011..3b2cdb011 100644 --- a/Godeps/_workspace/src/github.com/throttled/throttled/varyby.go +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/varyby.go diff --git a/Godeps/_workspace/src/github.com/throttled/throttled/varyby_test.go b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/varyby_test.go index 91b7ae0ae..91b7ae0ae 100644 --- a/Godeps/_workspace/src/github.com/throttled/throttled/varyby_test.go +++ b/Godeps/_workspace/src/gopkg.in/throttled/throttled.v1/varyby_test.go diff --git a/LICENSE.txt b/LICENSE.txt index c0c337525..b05ccb408 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -2,34 +2,22 @@ Mattermost Licensing SOFTWARE LICENSING -Mattermost server is made available under two separate licensing options: +You are licensed to use compiled versions of the Mattermost platform produced by Mattermost, Inc. under an MIT LICENSE -- Free Software Foundation’s GNU AGPL v.3.0, subject to the exceptions outlined in this policy; or -- Commercial licenses available from Mattermost, Inc. by contacting commercial@mattermost.com +- See MIT-COMPILED-LICENSE.md included in compiled versions for details -Admin Tools and Configuration Files (api/templates/, config/, model/, web/react/utils/, web/static/, web/templates/ and all -subdirectories thereof) are made available under: +You may be licensed to use source code to create compiled versions not produced by Mattermost, Inc. in one of two ways: -- Apache License v2.0 +1. Under the Free Software Foundation’s GNU AGPL v.3.0, subject to the exceptions outlined in this policy; or +2. Under a commercial license available from Mattermost, Inc. by contacting commercial@mattermost.com -LICENSING POLICY +You are licensed to use the source code in Admin Tools and Configuration Files (api/templates/, config/, model/, +web/react/utils/, web/static/, web/templates/ and all subdirectories thereof) under the Apache License v2.0. -The objective of the Mattermost server license is to require enhancements to Mattermost server be shared with the community -while allowing for non-enhanced use in proprietary applications. - -Therefore, the Mattermost server is free to use, modify and redistribute in open source applications via the -copyleft AGPL license. For proprietary applications (systems that don’t share source back to the community), -Mattermost is free to use and redistribute so long as you’re not withholding proprietary enhancements to the -Mattermost server and you’re only linking directly to or changing Admin Tools and Configuration Files (defined above), which -are released under an Apache 2.0 license, and copyleft free. - -We promise that we will not enforce the copyleft provisions in AGPL v3.0 against you if your application (a) does -not link to the Mattermost server directly, but exclusively uses the Mattermost Admin Tools and Configuration Files, -and (b) you have not modified, added to or adapted the source code of Mattermost in a way that results in the creation -of a “modified version†or “work based on†Mattermost as these terms are defined in the AGPL v3.0 license. - -If the above is not enough to satisfy your organization’s legal department (some will not approve GPL in any form), -commercial licenses are available from commercial@mattermost.com. +We promise that we will not enforce the copyleft provisions in AGPL v3.0 against you if your application (a) does not +link to the Mattermost Platform directly, but exclusively uses the Mattermost Admin Tools and Configuration Files, and +(b) you have not modified, added to or adapted the source code of Mattermost in a way that results in the creation of +a “modified version†or “work based on†Mattermost as these terms are defined in the AGPL v3.0 license. MATTERMOST TRADEMARK GUIDELINES @@ -1,4 +1,4 @@ -.PHONY: all test clean build install run stop cover dist cleandb travis docker +.PHONY: all dist dist-local dist-travis start-docker build-server package build-client test travis-init build-container stop-docker clean-docker clean nuke run stop setup-mac cleandb docker-build docker-run GOPATH ?= $(GOPATH:) GOFLAGS ?= $(GOFLAGS:) @@ -21,33 +21,51 @@ endif DIST_ROOT=dist DIST_PATH=$(DIST_ROOT)/mattermost -DIST_RESULTS=$(DIST_ROOT)/results -BENCH=. TESTS=. DOCKERNAME ?= mm-dev DOCKER_CONTAINER_NAME ?= mm-test -all: travis +all: dist-local -travis: - @echo building for travis +dist: | build-server build-client go-test package + mv ./model/version.go.bak ./model/version.go - if [ "$(TRAVIS_DB)" = "postgres" ]; then \ - sed -i'.bak' 's|mysql|postgres|g' config/config.json; \ - sed -i'.bak' 's|mmuser:mostest@tcp(dockerhost:3306)/mattermost_test?charset=utf8mb4,utf8|postgres://mmuser:mostest@dockerhost:5432/mattermost_test?sslmode=disable\&connect_timeout=10|g' config/config.json; \ +dist-local: | start-docker dist + +dist-travis: | travis-init build-container + +start-docker: + @echo Starting docker containers + + @if [ $(shell docker ps -a | grep -ci mattermost-mysql) -eq 0 ]; then \ + echo starting mattermost-mysql; \ + docker run --name mattermost-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mostest \ + -e MYSQL_USER=mmuser -e MYSQL_PASSWORD=mostest -e MYSQL_DATABASE=mattermost_test -d mysql:5.7 > /dev/null; \ + elif [ $(shell docker ps | grep -ci mattermost-mysql) -eq 0 ]; then \ + echo restarting mattermost-mysql; \ + docker start mattermost-mysql > /dev/null; \ fi - rm -Rf $(DIST_ROOT) - @$(GO) clean $(GOFLAGS) -i ./... + @if [ $(shell docker ps -a | grep -ci mattermost-postgres) -eq 0 ]; then \ + echo starting mattermost-postgres; \ + docker run --name mattermost-postgres -p 5432:5432 -e POSTGRES_USER=mmuser -e POSTGRES_PASSWORD=mostest \ + -d postgres:9.4 > /dev/null; \ + sleep 10; \ + elif [ $(shell docker ps | grep -ci mattermost-postgres) -eq 0 ]; then \ + echo restarting mattermost-postgres; \ + docker start mattermost-postgres > /dev/null; \ + sleep 10; \ + fi - @cd web/react/ && npm install - cd web/react/ && npm run build-libs +build-server: + @echo Building mattermost server - @echo Checking for style guide compliance - cd web/react && $(ESLINT) --ext ".jsx" --ignore-pattern node_modules --quiet . - @echo Running gofmt + rm -Rf $(DIST_ROOT) + $(GO) clean $(GOFLAGS) -i ./... + + @echo GOFMT $(eval GOFMT_OUTPUT := $(shell gofmt -d -s api/ model/ store/ utils/ manualtesting/ mattermost.go 2>&1)) @echo "$(GOFMT_OUTPUT)" @if [ ! "$(GOFMT_OUTPUT)" ]; then \ @@ -57,20 +75,17 @@ travis: exit 1; \ fi - @sed -i'.bak' 's|_BUILD_NUMBER_|$(BUILD_NUMBER)|g' ./model/version.go - @sed -i'.bak' 's|_BUILD_DATE_|$(BUILD_DATE)|g' ./model/version.go - @sed -i'.bak' 's|_BUILD_HASH_|$(BUILD_HASH)|g' ./model/version.go - - @$(GO) build $(GOFLAGS) ./... - @$(GO) install $(GOFLAGS) ./... + cp ./model/version.go ./model/version.go.bak + sed -i'.make_mac_work' 's|_BUILD_NUMBER_|$(BUILD_NUMBER)|g' ./model/version.go + sed -i'.make_mac_work' 's|_BUILD_DATE_|$(BUILD_DATE)|g' ./model/version.go + sed -i'.make_mac_work' 's|_BUILD_HASH_|$(BUILD_HASH)|g' ./model/version.go + rm ./model/version.go.make_mac_work - @mkdir -p logs + $(GO) build $(GOFLAGS) ./... + $(GO) install $(GOFLAGS) ./... - @$(GO) test $(GOFLAGS) -run=$(TESTS) -test.v -test.timeout=180s ./api || exit 1 - @$(GO) test $(GOFLAGS) -run=$(TESTS) -test.v -test.timeout=12s ./model || exit 1 - @$(GO) test $(GOFLAGS) -run=$(TESTS) -test.v -test.timeout=120s ./store || exit 1 - @$(GO) test $(GOFLAGS) -run=$(TESTS) -test.v -test.timeout=120s ./utils || exit 1 - @$(GO) test $(GOFLAGS) -run=$(TESTS) -test.v -test.timeout=120s ./web || exit 1 +package: + @ echo Packaging mattermost mkdir -p $(DIST_PATH)/bin cp $(GOPATH)/bin/platform $(DIST_PATH)/bin @@ -81,13 +96,9 @@ travis: mkdir -p $(DIST_PATH)/logs - mkdir -p web/static/js - cd web/react && npm run build - - cd web/sass-files && compass compile -e production --force - mkdir -p $(DIST_PATH)/web/static/js cp -L web/static/js/*.min.js $(DIST_PATH)/web/static/js/ + cp -L web/static/js/*.min.js.map $(DIST_PATH)/web/static/js/ cp -RL web/static/config $(DIST_PATH)/web/static cp -RL web/static/css $(DIST_PATH)/web/static cp -RL web/static/fonts $(DIST_PATH)/web/static @@ -106,87 +117,76 @@ travis: mv $(DIST_PATH)/web/static/js/bundle.min.js $(DIST_PATH)/web/static/js/bundle-$(BUILD_NUMBER).min.js mv $(DIST_PATH)/web/static/js/libs.min.js $(DIST_PATH)/web/static/js/libs-$(BUILD_NUMBER).min.js - @sed -i'.bak' 's|react-0.14.0.js|react-0.14.0.min.js|g' $(DIST_PATH)/web/templates/head.html - @sed -i'.bak' 's|react-dom-0.14.0.js|react-dom-0.14.0.min.js|g' $(DIST_PATH)/web/templates/head.html - @sed -i'.bak' 's|jquery-2.1.4.js|jquery-2.1.4.min.js|g' $(DIST_PATH)/web/templates/head.html - @sed -i'.bak' 's|bootstrap-3.3.5.js|bootstrap-3.3.5.min.js|g' $(DIST_PATH)/web/templates/head.html - @sed -i'.bak' 's|react-bootstrap-0.27.1.js|react-bootstrap-0.27.1.min.js|g' $(DIST_PATH)/web/templates/head.html - @sed -i'.bak' 's|perfect-scrollbar-0.6.7.jquery.js|perfect-scrollbar-0.6.7.jquery.min.js|g' $(DIST_PATH)/web/templates/head.html - @sed -i'.bak' 's|bundle.js|bundle-$(BUILD_NUMBER).min.js|g' $(DIST_PATH)/web/templates/head.html - @sed -i'.bak' 's|libs.min.js|libs-$(BUILD_NUMBER).min.js|g' $(DIST_PATH)/web/templates/head.html + sed -i'.bak' 's|react-0.14.3.js|react-0.14.3.min.js|g' $(DIST_PATH)/web/templates/head.html + sed -i'.bak' 's|react-dom-0.14.3.js|react-dom-0.14.3.min.js|g' $(DIST_PATH)/web/templates/head.html + sed -i'.bak' 's|jquery-2.1.4.js|jquery-2.1.4.min.js|g' $(DIST_PATH)/web/templates/head.html + sed -i'.bak' 's|bootstrap-3.3.5.js|bootstrap-3.3.5.min.js|g' $(DIST_PATH)/web/templates/head.html + sed -i'.bak' 's|react-bootstrap-0.28.1.js|react-bootstrap-0.28.1.min.js|g' $(DIST_PATH)/web/templates/head.html + sed -i'.bak' 's|perfect-scrollbar-0.6.7.jquery.js|perfect-scrollbar-0.6.7.jquery.min.js|g' $(DIST_PATH)/web/templates/head.html + sed -i'.bak' 's|bundle.js|bundle-$(BUILD_NUMBER).min.js|g' $(DIST_PATH)/web/templates/head.html + sed -i'.bak' 's|libs.min.js|libs-$(BUILD_NUMBER).min.js|g' $(DIST_PATH)/web/templates/head.html rm $(DIST_PATH)/web/templates/*.bak - mv doc/README.md doc/index.md - mkdocs build --strict - cp -r documentation-html $(DIST_PATH)/documentation-html - tar -C dist -czf $(DIST_PATH).tar.gz mattermost - rm -r $(DIST_PATH) -build: - @$(GO) build $(GOFLAGS) ./... +build-client: + @echo Building mattermost web client -install: - @go get $(GOFLAGS) github.com/tools/godep + cd web/react/ && npm install - @if [ $(shell docker ps -a | grep -ci mattermost-mysql) -eq 0 ]; then \ - echo starting mattermost-mysql; \ - docker run --name mattermost-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mostest \ - -e MYSQL_USER=mmuser -e MYSQL_PASSWORD=mostest -e MYSQL_DATABASE=mattermost_test -d mysql > /dev/null; \ - elif [ $(shell docker ps | grep -ci mattermost-mysql) -eq 0 ]; then \ - echo restarting mattermost-mysql; \ - docker start mattermost-mysql > /dev/null; \ + @echo Checking for style guide compliance + + @echo ESLint... + cd web/react && $(ESLINT) --ext ".jsx" --ignore-pattern node_modules --quiet . + + cd web/react/ && npm run build-libs + + mkdir -p web/static/js + cd web/react && npm run build + + cd web/sass-files && compass compile -e production --force + +go-test: + $(GO) test $(GOFLAGS) -run=$(TESTS) -test.v -test.timeout=180s ./api || exit 1 + $(GO) test $(GOFLAGS) -run=$(TESTS) -test.v -test.timeout=12s ./model || exit 1 + $(GO) test $(GOFLAGS) -run=$(TESTS) -test.v -test.timeout=120s ./store || exit 1 + $(GO) test $(GOFLAGS) -run=$(TESTS) -test.v -test.timeout=120s ./utils || exit 1 + $(GO) test $(GOFLAGS) -run=$(TESTS) -test.v -test.timeout=120s ./web || exit 1 + +test: | start-docker .prepare-go go-test + +travis-init: + @echo Setting up enviroment for travis + + if [ "$(TRAVIS_DB)" = "postgres" ]; then \ + sed -i'.bak' 's|mysql|postgres|g' config/config.json; \ + sed -i'.bak' 's|mmuser:mostest@tcp(dockerhost:3306)/mattermost_test?charset=utf8mb4,utf8|postgres://mmuser:mostest@postgres:5432/mattermost_test?sslmode=disable\&connect_timeout=10|g' config/config.json; \ fi - @cd web/react/ && npm install - @cd web/react/ && npm run build-libs + if [ "$(TRAVIS_DB)" = "mysql" ]; then \ + sed -i'.bak' 's|mmuser:mostest@tcp(dockerhost:3306)/mattermost_test?charset=utf8mb4,utf8|mmuser:mostest@tcp(mysql:3306)/mattermost_test?charset=utf8mb4,utf8|g' config/config.json; \ + fi -check: install - @echo Running ESLint... - -cd web/react && $(ESLINT) --ext ".jsx" --ignore-pattern node_modules . - @echo Running gofmt - $(eval GOFMT_OUTPUT := $(shell gofmt -d -s api/ model/ store/ utils/ manualtesting/ mattermost.go 2>&1)) - @echo "$(GOFMT_OUTPUT)" - @if [[ ! "$(GOFMT_OUTPUT)" ]]; then \ - echo "gofmt sucess"; \ - else \ - echo "gofmt failure"; \ - exit 1; \ +build-container: + @echo Building in container + + docker run -e TRAVIS_BUILD_NUMBER=$(TRAVIS_BUILD_NUMBER) --link mattermost-mysql:mysql --link mattermost-postgres:postgres -v `pwd`:/go/src/github.com/mattermost/platform mattermost/builder:latest + +stop-docker: + @echo Stopping docker containers + + @if [ $(shell docker ps -a | grep -ci mattermost-mysql) -eq 1 ]; then \ + echo stopping mattermost-mysql; \ + docker stop mattermost-mysql > /dev/null; \ fi -test: install - @mkdir -p logs - @$(GO) test $(GOFLAGS) -run=$(TESTS) -test.v -test.timeout=600s ./api || exit 1 - @$(GO) test $(GOFLAGS) -run=$(TESTS) -test.v -test.timeout=60s ./model || exit 1 - @$(GO) test $(GOFLAGS) -run=$(TESTS) -test.v -test.timeout=600s ./store || exit 1 - @$(GO) test $(GOFLAGS) -run=$(TESTS) -test.v -test.timeout=600s ./utils || exit 1 - @$(GO) test $(GOFLAGS) -run=$(TESTS) -test.v -test.timeout=600s ./web || exit 1 - -benchmark: install - @mkdir -p logs - @$(GO) test $(GOFLAGS) -test.v -run=NO_TESTS -bench=$(BENCH) ./api || exit 1 - -cover: install - rm -Rf $(DIST_RESULTS) - mkdir -p $(DIST_RESULTS) - - @$(GO) test $(GOFLAGS) -coverprofile=$(DIST_RESULTS)/api.cover.out github.com/mattermost/platform/api - @$(GO) test $(GOFLAGS) -coverprofile=$(DIST_RESULTS)/model.cover.out github.com/mattermost/platform/model - @$(GO) test $(GOFLAGS) -coverprofile=$(DIST_RESULTS)/store.cover.out github.com/mattermost/platform/store - @$(GO) test $(GOFLAGS) -coverprofile=$(DIST_RESULTS)/utils.cover.out github.com/mattermost/platform/utils - @$(GO) test $(GOFLAGS) -coverprofile=$(DIST_RESULTS)/web.cover.out github.com/mattermost/platform/web - - cd $(DIST_RESULTS) && \ - echo "mode: set" > coverage.out && cat *.cover.out | grep -v mode: | sort -r | \ - awk '{if($$1 != last) {print $$0;last=$$1}}' >> coverage.out - - cd $(DIST_RESULTS) && $(GO) tool cover -html=coverage.out -o=coverage.html - - rm -f $(DIST_RESULTS)/*.cover.out - -clean: - rm -Rf $(DIST_ROOT) - @$(GO) clean $(GOFLAGS) -i ./... + @if [ $(shell docker ps -a | grep -ci mattermost-postgres) -eq 1 ]; then \ + echo stopping mattermost-postgres; \ + docker stop mattermost-postgres > /dev/null; \ + fi + +clean-docker: + @echo Removing docker containers @if [ $(shell docker ps -a | grep -ci mattermost-mysql) -eq 1 ]; then \ echo stopping mattermost-mysql; \ @@ -194,29 +194,59 @@ clean: docker rm -v mattermost-mysql > /dev/null; \ fi + @if [ $(shell docker ps -a | grep -ci mattermost-postgres) -eq 1 ]; then \ + echo stopping mattermost-postgres; \ + docker stop mattermost-postgres > /dev/null; \ + docker rm -v mattermost-postgres > /dev/null; \ + fi + +clean: stop-docker + rm -Rf $(DIST_ROOT) + go clean $(GOFLAGS) -i ./... + rm -rf web/react/node_modules rm -f web/static/js/bundle*.js + rm -f web/static/js/bundle*.js.map rm -f web/static/js/libs*.js rm -f web/static/css/styles.css - rm -rf data/* - rm -rf api/data/* - rm -rf logs/* + rm -rf api/data + rm -rf logs + rm -rf web/sass-files/.sass-cache rm -rf Godeps/_workspace/pkg/ + rm -f mattermost.log + rm -f .prepare-go .prepare-jsx + +nuke: | clean clean-docker + rm -rf data + +.prepare-go: + @echo Preparation for running go code + go get $(GOFLAGS) github.com/tools/godep -run: install + touch $@ + +.prepare-jsx: + @echo Preparation for compiling jsx code + + cd web/react/ && npm install + cd web/react/ && npm run build-libs + + touch $@ + +run: start-docker .prepare-go .prepare-jsx mkdir -p web/static/js - @echo starting react processor - @cd web/react && npm start & + @echo Starting react processo + cd web/react && npm start & - @echo starting go web server - @$(GO) run $(GOFLAGS) mattermost.go -config=config.json & + @echo Starting go web server + $(GO) run $(GOFLAGS) mattermost.go -config=config.json & - @echo starting compass watch - @cd web/sass-files && compass watch & + @echo Starting compass watch + cd web/sass-files && compass watch & stop: @for PID in $$(ps -ef | grep [c]ompass | awk '{ print $$2 }'); do \ @@ -248,60 +278,6 @@ cleandb: docker stop mattermost-mysql > /dev/null; \ docker rm -v mattermost-mysql > /dev/null; \ fi -dist: install - - @sed -i'.bak' 's|_BUILD_NUMBER_|$(BUILD_NUMBER)|g' ./model/version.go - @sed -i'.bak' 's|_BUILD_DATE_|$(BUILD_DATE)|g' ./model/version.go - @sed -i'.bak' 's|_BUILD_HASH_|$(BUILD_HASH)|g' ./model/version.go - - @$(GO) build $(GOFLAGS) -i ./... - @$(GO) install $(GOFLAGS) ./... - - mkdir -p $(DIST_PATH)/bin - cp $(GOPATH)/bin/platform $(DIST_PATH)/bin - - cp -RL config $(DIST_PATH)/config - touch $(DIST_PATH)/config/build.txt - echo $(BUILD_NUMBER) | tee -a $(DIST_PATH)/config/build.txt - - mkdir -p $(DIST_PATH)/logs - - mkdir -p web/static/js - cd web/react && npm run build - - cd web/sass-files && compass compile -e production --force - - mkdir -p $(DIST_PATH)/web/static/js - cp -L web/static/js/*.min.js $(DIST_PATH)/web/static/js/ - cp -RL web/static/config $(DIST_PATH)/web/static - cp -RL web/static/css $(DIST_PATH)/web/static - cp -RL web/static/fonts $(DIST_PATH)/web/static - cp -RL web/static/help $(DIST_PATH)/web/static - cp -RL web/static/images $(DIST_PATH)/web/static - cp -RL web/static/js/jquery-dragster $(DIST_PATH)/web/static/js/ - cp -RL web/templates $(DIST_PATH)/web - - mkdir -p $(DIST_PATH)/api - cp -RL api/templates $(DIST_PATH)/api - - cp build/MIT-COMPILED-LICENSE.md $(DIST_PATH) - cp NOTICE.txt $(DIST_PATH) - cp README.md $(DIST_PATH) - - mv $(DIST_PATH)/web/static/js/bundle.min.js $(DIST_PATH)/web/static/js/bundle-$(BUILD_NUMBER).min.js - mv $(DIST_PATH)/web/static/js/libs.min.js $(DIST_PATH)/web/static/js/libs-$(BUILD_NUMBER).min.js - - @sed -i'.bak' 's|react-0.14.0.js|react-0.14.0.min.js|g' $(DIST_PATH)/web/templates/head.html - @sed -i'.bak' 's|react-dom-0.14.0.js|react-dom-0.14.0.min.js|g' $(DIST_PATH)/web/templates/head.html - @sed -i'.bak' 's|jquery-2.1.4.js|jquery-2.1.4.min.js|g' $(DIST_PATH)/web/templates/head.html - @sed -i'.bak' 's|bootstrap-3.3.5.js|bootstrap-3.3.5.min.js|g' $(DIST_PATH)/web/templates/head.html - @sed -i'.bak' 's|react-bootstrap-0.27.1.js|react-bootstrap-0.27.1.min.js|g' $(DIST_PATH)/web/templates/head.html - @sed -i'.bak' 's|perfect-scrollbar-0.6.7.jquery.js|perfect-scrollbar-0.6.7.jquery.min.js|g' $(DIST_PATH)/web/templates/head.html - @sed -i'.bak' 's|bundle.js|bundle-$(BUILD_NUMBER).min.js|g' $(DIST_PATH)/web/templates/head.html - @sed -i'.bak' 's|libs.min.js|libs-$(BUILD_NUMBER).min.js|g' $(DIST_PATH)/web/templates/head.html - rm $(DIST_PATH)/web/templates/*.bak - - tar -C dist -czf $(DIST_PATH).tar.gz mattermost docker-build: stop docker build -t ${DOCKERNAME} -f docker/local/Dockerfile . diff --git a/NOTICE.txt b/NOTICE.txt index 6b6de271a..9e6e4d09c 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -1007,3 +1007,566 @@ 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. + +--- + +This product contains a modified portion of 'go-ldap', basic LDAP v3 functionality for the GO programming language. + +by The Go Authors + +* HOMEPAGE: + * https://github.com/go-ldap/ldap + +* LICENSE: + +Copyright (c) 2012 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +--- + +This product contains a modified portion of 'Emoji One', a set of emoticons by Ranks.com, Inc. + +* HOMEPAGE: + * http://emojione.com/ + +* LICENSE: + +# Code licensed under the MIT License: + +Copyright (c) 2014 Ranks.com, Inc., via Emojione.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +# Graphics licensed under CC-BY 4.0: + +Attribution 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of +these terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the +Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public licenses. +Notwithstanding, Creative Commons may elect to apply one of its public +licenses to material it publishes and in those instances will be +considered the "Licensor." Except for the limited purpose of indicating +that material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the public +licenses. + +Creative Commons may be contacted at creativecommons.org. + +--- + +This product contains a modified portion of 'Google Fonts', various Open Source fonts for use on the web. + +by Google Inc. + +* HOMEPAGE: + * https://www.google.com/fonts + +* LICENSE: + +# Code licensed under the Apache 2.0 License: + +Copyright 2011 Google Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +# Fonts licensed under CC-BY 3.0: + +CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + +"Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. +"Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. +"Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership. +"Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. +"Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. +"Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. +"You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. +"Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. +"Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. + +2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + +to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; +to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified."; +to Distribute and Publicly Perform the Work including as incorporated in Collections; and, +to Distribute and Publicly Perform Adaptations. +For the avoidance of doubt: + +Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; +Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and, +Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License. +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved. + +4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + +You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(b), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(b), as requested. +If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4 (b) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. +Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise. + +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + +This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. +Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. + +8. Miscellaneous + +Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. +Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. +If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. +No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. +This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. +The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. + +Creative Commons Notice + +Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of Licensor. + +Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, Creative Commons does not authorize the use by either party of the trademark "Creative Commons" or any related trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its website or otherwise made available upon request from time to time. For the avoidance of doubt, this trademark restriction does not form part of this License. + +Creative Commons may be contacted at https://creativecommons.org/. @@ -36,9 +36,10 @@ Please see the [features pages of the Mattermost website](http://www.mattermost. - [Product Vision and Target Audiences](http://www.mattermost.org/vision/) - What we're solving and for whom are we building - [Mattermost Forum](http://forum.mattermost.org/) - For technical questions and answers +- [Troubleshooting Forum](https://forum.mattermost.org/t/how-to-use-the-troubleshooting-forum/150) - For reporting bugs - [Issue Tracker](http://www.mattermost.org/filing-issues/) - For reporting bugs - [Feature Ideas Forum](http://www.mattermost.org/feature-requests/) - For sharing ideas for future versions -- [Contribution Guidelines](http://www.mattermost.org/contribute-to-mattermost/) - For contributing code or feedback to the project +- [Contribution Guidelines](https://github.com/mattermost/platform/blob/master/CONTRIBUTING.md) - For contributing code or feedback to the project Follow us on Twitter at [@MattermostHQ](https://twitter.com/mattermosthq), or talk to the core team on our [daily builds server](https://pre-release.mattermost.com/core) via [this invite link](https://pre-release.mattermost.com/signup_user_complete/?id=rcgiyftm7jyrxnma1osd8zswby). @@ -50,25 +51,25 @@ If you use Docker, you can [install Mattermost in a single-container preview in #### Quick Start Install for Product Evaluation -- [Local Machine Install with Docker](http://docs.mattermost.org/install/Docker-Single-Container/index.html) - Explore product functionality using a single-container Docker install on a local machine, including Mac OSX, Ubuntu, or Arch Linux). Optionally set up email and upgrade your instance using DockerHub. +- [Local Machine Install with Docker](https://github.com/mattermost/platform/blob/master/doc/install/Docker-Single-Container.md) - Explore product functionality using a single-container Docker install on a local machine, including Mac OSX, Ubuntu, or Arch Linux). Optionally set up email and upgrade your instance using DockerHub. -- [AWS EBS Install with Docker](http://docs.mattermost.org/install/Amazon-Elastic-Beanstalk/index.html) - Explore product functionality using a single-container Docker install for Amazon Web Services Elastic Beanstalk. Optionally set up email and upgrade your instance using DockerHub. +- [AWS EBS Install with Docker](https://github.com/mattermost/platform/blob/master/doc/install/Amazon-Elastic-Beanstalk.md) - Explore product functionality using a single-container Docker install for Amazon Web Services Elastic Beanstalk. Optionally set up email and upgrade your instance using DockerHub. #### Development Install -- [Developer Machine Setup](http://docs.mattermost.org/developer/Setup/index.html) - Setup your local machine development environment using Docker on Mac OSX or Ubuntu. Pull the latest stable release or pull the latest code from our development build. +- [Developer Machine Setup](https://github.com/mattermost/platform/blob/master/doc/developer/Setup.md) - Setup your local machine development environment using Docker on Mac OSX or Ubuntu. Pull the latest stable release or pull the latest code from our development build. [![Build Status](https://travis-ci.org/mattermost/platform.svg?branch=master)](https://travis-ci.org/mattermost/platform) #### Production Deployment -Prior to production installation, please review [Mattermost system requirements](http://docs.mattermost.org/install/Requirements/index.html). +Prior to production installation, please review [Mattermost system requirements](https://github.com/mattermost/platform/blob/master/doc/install/Requirements.md). -- [Production Install on Ubuntu 14.04](https://github.com/mattermost/platform/blob/release-1.0.0/doc/install/prod-ubuntu.md) - Install Mattermost for production environments. +- [Production Install on Ubuntu 14.04](https://github.com/mattermost/platform/blob/master/doc/install/Production-Ubuntu.md) - Install Mattermost for production environments. - [GitLab Mattermost Production Installation](https://gitlab.com/gitlab-org/gitlab-mattermost) - Install Mattermost for production environments bundled with GitLab, a leading open source Git repository, using an omnibus package for Ubuntu 12.04, Ubuntu 14.04, Debian 7, Debian 8, and CentOS 6 (and RedHat/Oracle/Scientific Linux 6), CentOS 7 (and RedHat/Oracle/Scientific Linux 7). -For technical questions and answers, please visit the [Mattermost forum](http://forum.mattermost.org). +For technical questions and answers, please visit the [Troubleshooting Forum](https://forum.mattermost.org/c/general/trouble-shoot). ## Get Involved with Mattermost @@ -77,8 +78,6 @@ Joining the Mattermost community is a great way to build relationships with othe #### Discuss - Visit the [Mattermost Forum](http://forum.mattermost.org/) for technical questions and answers. -- [Join](https://groups.google.com/a/mattermost.com/forum/#!forum/general/join) the [Mattermost User Mailing List](https://groups.google.com/a/mattermost.com/forum/#!forum/general) for general, open-ended questions and software announcements. -- [Join](https://groups.google.com/a/mattermost.com/forum/#!forum/developer/join) the [Mattermost Developers Mailing List](https://groups.google.com/a/mattermost.com/forum/#!forum/developer) for discussing contributing code to Mattermost. #### Review @@ -98,14 +97,18 @@ Joining the Mattermost community is a great way to build relationships with othe #### Contribute - Share [feature ideas](http://www.mattermost.org/feature-requests/) with the Mattermost community -- Review the [Mattermost Code Contribution Guidelines](http://docs.mattermost.org/developer/Code-Contribution-Guidelines/index.html) to submit patches for the core product -- Consider building tools that help developers and IT professionals manage Mattermost more effectively (API documentation coming in Beta2) +- Review the [Mattermost Code Contribution Guidelines](https://github.com/mattermost/platform/blob/master/CONTRIBUTING.md) to submit patches for the core product +- Build [community applications](http://www.mattermost.org/community-applications/) using Mattermost [webhooks, drivers and APIs](https://github.com/mattermost/platform/blob/master/doc/developer/API.md) +- Create new [community installers and guides](http://www.mattermost.org/installation/#community-install-guide) for Mattermost + ##### Check out some projects for connecting to Mattermost: - [Matterbridge](https://github.com/42wim/matterbridge) - an IRC bridge connecting to Mattermost - [GitLab Integration Service for Mattermost](https://github.com/mattermost/mattermost-integration-gitlab) - connecting GitLab to Mattermost via incoming webhooks - [Giphy Integration Service for Mattermost](https://github.com/mattermost/mattermost-integration-giphy) - connecting Mattermost to Giphy via outgoing webhooks +- [node-mattermost](https://github.com/jonathanwiesel/node-mattermost) - a node.js module for sending and receiving messages from Mattermost webhooks +- [matterqus](https://github.com/jonathanwiesel/matterqus) - Disqus comment notifier for Mattermost #### Have other ideas or suggestions? diff --git a/api/admin_test.go b/api/admin_test.go index 0db5caa4c..f7b6a7eeb 100644 --- a/api/admin_test.go +++ b/api/admin_test.go @@ -17,7 +17,7 @@ func TestGetLogs(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -61,7 +61,7 @@ func TestGetConfig(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -95,7 +95,7 @@ func TestSaveConfig(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -129,7 +129,7 @@ func TestEmailTest(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -157,7 +157,7 @@ func TestGetAnalyticsStandard(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -223,7 +223,7 @@ func TestGetPostCount(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -235,6 +235,10 @@ func TestGetPostCount(t *testing.T) { post1 := &model.Post{ChannelId: channel1.Id, Message: "a" + model.NewId() + "a"} post1 = Client.Must(Client.CreatePost(post1)).Data.(*model.Post) + // manually update creation time, since it's always set to 0 upon saving and we only retrieve posts < today + Srv.Store.(*store.SqlStore).GetMaster().Exec("UPDATE Posts SET CreateAt = :CreateAt WHERE ChannelId = :ChannelId", + map[string]interface{}{"ChannelId": channel1.Id, "CreateAt": utils.MillisFromTime(utils.Yesterday())}) + if _, err := Client.GetAnalytics(team.Id, "post_counts_day"); err == nil { t.Fatal("Shouldn't have permissions") } @@ -264,7 +268,7 @@ func TestUserCountsWithPostsByDay(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -276,6 +280,10 @@ func TestUserCountsWithPostsByDay(t *testing.T) { post1 := &model.Post{ChannelId: channel1.Id, Message: "a" + model.NewId() + "a"} post1 = Client.Must(Client.CreatePost(post1)).Data.(*model.Post) + // manually update creation time, since it's always set to 0 upon saving and we only retrieve posts < today + Srv.Store.(*store.SqlStore).GetMaster().Exec("UPDATE Posts SET CreateAt = :CreateAt WHERE ChannelId = :ChannelId", + map[string]interface{}{"ChannelId": channel1.Id, "CreateAt": utils.MillisFromTime(utils.Yesterday())}) + if _, err := Client.GetAnalytics(team.Id, "user_counts_with_posts_day"); err == nil { t.Fatal("Shouldn't have permissions") } diff --git a/api/channel.go b/api/channel.go index 44be1cf97..f17594c0a 100644 --- a/api/channel.go +++ b/api/channel.go @@ -205,9 +205,11 @@ func updateChannel(c *Context, w http.ResponseWriter, r *http.Request) { } if oldChannel.Name == model.DEFAULT_CHANNEL { - c.Err = model.NewAppError("updateChannel", "Cannot update the default channel "+model.DEFAULT_CHANNEL, "") - c.Err.StatusCode = http.StatusForbidden - return + if (len(channel.Name) > 0 && channel.Name != oldChannel.Name) || (len(channel.Type) > 0 && channel.Type != oldChannel.Type) { + c.Err = model.NewAppError("updateChannel", "Tried to perform an invalid update of the default channel "+model.DEFAULT_CHANNEL, "") + c.Err.StatusCode = http.StatusForbidden + return + } } oldChannel.Header = channel.Header @@ -266,19 +268,51 @@ func updateChannelHeader(c *Context, w http.ResponseWriter, r *http.Request) { if !c.HasPermissionsToTeam(channel.TeamId, "updateChannelHeader") { return } - + oldChannelHeader := channel.Header channel.Header = channelHeader if ucresult := <-Srv.Store.Channel().Update(channel); ucresult.Err != nil { c.Err = ucresult.Err return } else { + PostUpdateChannelHeaderMessageAndForget(c, channel.Id, oldChannelHeader, channelHeader) c.LogAudit("name=" + channel.Name) w.Write([]byte(channel.ToJson())) } } } +func PostUpdateChannelHeaderMessageAndForget(c *Context, channelId string, oldChannelHeader, newChannelHeader string) { + go func() { + uc := Srv.Store.User().Get(c.Session.UserId) + + if uresult := <-uc; uresult.Err != nil { + l4g.Error("Failed to retrieve user while trying to save update channel header message %v", uresult.Err) + return + } else { + user := uresult.Data.(*model.User) + + var message string + if oldChannelHeader == "" { + message = fmt.Sprintf("%s updated the channel header to: %s", user.Username, newChannelHeader) + } else if newChannelHeader == "" { + message = fmt.Sprintf("%s removed the channel header (was: %s)", user.Username, oldChannelHeader) + } else { + message = fmt.Sprintf("%s updated the channel header from: %s to: %s", user.Username, oldChannelHeader, newChannelHeader) + } + + post := &model.Post{ + ChannelId: channelId, + Message: message, + Type: model.POST_HEADER_CHANGE, + } + if _, err := CreatePost(c, post, false); err != nil { + l4g.Error("Failed to post join/leave message %v", err) + } + } + }() +} + func updateChannelPurpose(c *Context, w http.ResponseWriter, r *http.Request) { props := model.MapFromJson(r.Body) channelId := props["channel_id"] @@ -419,7 +453,7 @@ func JoinChannel(c *Context, channelId string, role string) { c.Err = err return } - PostUserAddRemoveMessageAndForget(c, channel.Id, fmt.Sprintf(`User %v has joined this channel.`, user.Username)) + PostUserAddRemoveMessageAndForget(c, channel.Id, fmt.Sprintf(`%v has joined the channel.`, user.Username)) } else { c.Err = model.NewAppError("join", "You do not have the appropriate permissions", "") c.Err.StatusCode = http.StatusForbidden @@ -706,7 +740,8 @@ func getChannelExtraInfo(c *Context, w http.ResponseWriter, r *http.Request) { } scm := Srv.Store.Channel().GetMember(id, c.Session.UserId) - ecm := Srv.Store.Channel().GetExtraMembers(id, 20) + ecm := Srv.Store.Channel().GetExtraMembers(id, 100) + ccm := Srv.Store.Channel().GetMemberCount(id) if cmresult := <-scm; cmresult.Err != nil { c.Err = cmresult.Err @@ -714,9 +749,13 @@ func getChannelExtraInfo(c *Context, w http.ResponseWriter, r *http.Request) { } else if ecmresult := <-ecm; ecmresult.Err != nil { c.Err = ecmresult.Err return + } else if ccmresult := <-ccm; ccmresult.Err != nil { + c.Err = ccmresult.Err + return } else { member := cmresult.Data.(model.ChannelMember) extraMembers := ecmresult.Data.([]model.ExtraMember) + memberCount := ccmresult.Data.(int64) if !c.HasPermissionsToTeam(channel.TeamId, "getChannelExtraInfo") { return @@ -732,7 +771,7 @@ func getChannelExtraInfo(c *Context, w http.ResponseWriter, r *http.Request) { return } - data := model.ChannelExtra{Id: channel.Id, Members: extraMembers} + data := model.ChannelExtra{Id: channel.Id, Members: extraMembers, MemberCount: memberCount} w.Header().Set(model.HEADER_ETAG_SERVER, extraEtag) w.Header().Set("Expires", "-1") w.Write([]byte(data.ToJson())) diff --git a/api/channel_test.go b/api/channel_test.go index a41f63b1b..4ef164cba 100644 --- a/api/channel_test.go +++ b/api/channel_test.go @@ -22,7 +22,7 @@ func TestCreateChannel(t *testing.T) { team2 := &model.Team{DisplayName: "Name Team 2", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team2 = Client.Must(Client.CreateTeam(team2)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -99,11 +99,11 @@ func TestCreateDirectChannel(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) - user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user2.Id)) @@ -158,11 +158,11 @@ func TestUpdateChannel(t *testing.T) { userTeamAdmin = Client.Must(Client.CreateUser(userTeamAdmin, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(userTeamAdmin.Id)) - userChannelAdmin := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + userChannelAdmin := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} userChannelAdmin = Client.Must(Client.CreateUser(userChannelAdmin, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(userChannelAdmin.Id)) - userStd := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + userStd := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} userStd = Client.Must(Client.CreateUser(userStd, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(userStd.Id)) userStd.Roles = "" @@ -215,8 +215,9 @@ func TestUpdateChannel(t *testing.T) { for _, c := range data.Channels { if c.Name == model.DEFAULT_CHANNEL { c.Header = "new header" + c.Name = "pseudo-square" if _, err := Client.UpdateChannel(c); err == nil { - t.Fatal("should have errored on updating default channel") + t.Fatal("should have errored on updating default channel name") } break } @@ -235,7 +236,7 @@ func TestUpdateChannelHeader(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -275,7 +276,7 @@ func TestUpdateChannelHeader(t *testing.T) { t.Fatal("should have errored on bad channel header") } - user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user2.Id)) @@ -294,7 +295,7 @@ func TestUpdateChannelPurpose(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -334,7 +335,7 @@ func TestUpdateChannelPurpose(t *testing.T) { t.Fatal("should have errored on bad channel purpose") } - user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user2.Id)) @@ -353,7 +354,7 @@ func TestGetChannel(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -416,7 +417,7 @@ func TestGetMoreChannel(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) @@ -428,7 +429,7 @@ func TestGetMoreChannel(t *testing.T) { channel2 := &model.Channel{DisplayName: "B Test API Name", Name: "a" + model.NewId() + "a", Type: model.CHANNEL_OPEN, TeamId: team.Id} channel2 = Client.Must(Client.CreateChannel(channel2)).Data.(*model.Channel) - user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user2.Id)) @@ -460,7 +461,7 @@ func TestGetChannelCounts(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -501,7 +502,7 @@ func TestJoinChannel(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) @@ -513,7 +514,7 @@ func TestJoinChannel(t *testing.T) { channel3 := &model.Channel{DisplayName: "B Test API Name", Name: "a" + model.NewId() + "a", Type: model.CHANNEL_PRIVATE, TeamId: team.Id} channel3 = Client.Must(Client.CreateChannel(channel3)).Data.(*model.Channel) - user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user2.Id)) @@ -529,7 +530,7 @@ func TestJoinChannel(t *testing.T) { data["user_id"] = user1.Id rchannel := Client.Must(Client.CreateDirectChannel(data)).Data.(*model.Channel) - user3 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user3 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user3 = Client.Must(Client.CreateUser(user3, "")).Data.(*model.User) Client.LoginByEmail(team.Name, user3.Email, "pwd") @@ -545,7 +546,7 @@ func TestLeaveChannel(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) @@ -557,7 +558,7 @@ func TestLeaveChannel(t *testing.T) { channel3 := &model.Channel{DisplayName: "B Test API Name", Name: "a" + model.NewId() + "a", Type: model.CHANNEL_PRIVATE, TeamId: team.Id} channel3 = Client.Must(Client.CreateChannel(channel3)).Data.(*model.Channel) - user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user2.Id)) @@ -598,7 +599,7 @@ func TestDeleteChannel(t *testing.T) { userTeamAdmin = Client.Must(Client.CreateUser(userTeamAdmin, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(userTeamAdmin.Id)) - userChannelAdmin := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + userChannelAdmin := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} userChannelAdmin = Client.Must(Client.CreateUser(userChannelAdmin, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(userChannelAdmin.Id)) @@ -630,7 +631,7 @@ func TestDeleteChannel(t *testing.T) { t.Fatal("should have failed to post to deleted channel") } - userStd := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + userStd := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} userStd = Client.Must(Client.CreateUser(userStd, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(userStd.Id)) @@ -664,7 +665,7 @@ func TestGetChannelExtraInfo(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -677,6 +678,10 @@ func TestGetChannelExtraInfo(t *testing.T) { data := rget.Data.(*model.ChannelExtra) if data.Id != channel1.Id { t.Fatal("couldnt't get extra info") + } else if len(data.Members) != 1 { + t.Fatal("got incorrect members") + } else if data.MemberCount != 1 { + t.Fatal("got incorrect member count") } // @@ -748,7 +753,7 @@ func TestAddChannelMember(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) @@ -757,7 +762,7 @@ func TestAddChannelMember(t *testing.T) { channel1 := &model.Channel{DisplayName: "A Test API Name", Name: "a" + model.NewId() + "a", Type: model.CHANNEL_OPEN, TeamId: team.Id} channel1 = Client.Must(Client.CreateChannel(channel1)).Data.(*model.Channel) - user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user2.Id)) @@ -810,7 +815,7 @@ func TestRemoveChannelMember(t *testing.T) { userTeamAdmin = Client.Must(Client.CreateUser(userTeamAdmin, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(userTeamAdmin.Id)) - userChannelAdmin := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + userChannelAdmin := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} userChannelAdmin = Client.Must(Client.CreateUser(userChannelAdmin, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(userChannelAdmin.Id)) @@ -826,7 +831,7 @@ func TestRemoveChannelMember(t *testing.T) { channel1 := &model.Channel{DisplayName: "A Test API Name", Name: "a" + model.NewId() + "a", Type: model.CHANNEL_OPEN, TeamId: team.Id} channel1 = Client.Must(Client.CreateChannel(channel1)).Data.(*model.Channel) - userStd := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + userStd := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} userStd = Client.Must(Client.CreateUser(userStd, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(userStd.Id)) @@ -876,7 +881,7 @@ func TestUpdateNotifyProps(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -978,7 +983,7 @@ func TestUpdateNotifyProps(t *testing.T) { t.Fatal("Should have errored - bad mark unread level") } - user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) Client.LoginByEmail(team.Name, user2.Email, "pwd") @@ -998,7 +1003,7 @@ func TestFuzzyChannel(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) diff --git a/api/command.go b/api/command.go index 50ca41155..db57f0bae 100644 --- a/api/command.go +++ b/api/command.go @@ -4,7 +4,9 @@ package api import ( + "io" "net/http" + "path" "strconv" "strings" "time" @@ -325,6 +327,9 @@ func loadTestCommand(c *Context, command *model.Command) bool { if loadTestPostsCommand(c, command) { return true } + if loadTestUrlCommand(c, command) { + return true + } } else if strings.Index(cmd, command.Command) == 0 { command.AddSuggestion(&model.SuggestCommand{Suggestion: cmd, Description: "Debug Load Testing"}) } @@ -571,3 +576,71 @@ func loadTestPostsCommand(c *Context, command *model.Command) bool { return false } + +func loadTestUrlCommand(c *Context, command *model.Command) bool { + cmd := cmds["loadTestCommand"] + " url" + + if strings.Index(command.Command, cmd) == 0 && !command.Suggest { + url := "" + + parameters := strings.SplitN(command.Command, " ", 3) + if len(parameters) != 3 { + c.Err = model.NewAppError("loadTestUrlCommand", "Command must contain a url", "") + return true + } else { + url = parameters[2] + } + + // provide a shortcut to easily access tests stored in doc/developer/tests + if !strings.HasPrefix(url, "http") { + url = "https://raw.githubusercontent.com/mattermost/platform/master/doc/developer/tests/" + url + + if path.Ext(url) == "" { + url += ".md" + } + } + + var contents io.ReadCloser + if r, err := http.Get(url); err != nil { + c.Err = model.NewAppError("loadTestUrlCommand", "Unable to get file", err.Error()) + return false + } else if r.StatusCode > 400 { + c.Err = model.NewAppError("loadTestUrlCommand", "Unable to get file", r.Status) + return false + } else { + contents = r.Body + } + + bytes := make([]byte, 4000) + + // break contents into 4000 byte posts + for { + length, err := contents.Read(bytes) + if err != nil && err != io.EOF { + c.Err = model.NewAppError("loadTestUrlCommand", "Encountered error reading file", err.Error()) + return false + } + + if length == 0 { + break + } + + post := &model.Post{} + post.Message = string(bytes[:length]) + post.ChannelId = command.ChannelId + + if _, err := CreatePost(c, post, false); err != nil { + l4g.Error("Unable to create post, err=%v", err) + return false + } + } + + command.Response = model.RESP_EXECUTED + + return true + } else if strings.Index(cmd, command.Command) == 0 && strings.Index(command.Command, "/loadtest posts") != 0 { + command.AddSuggestion(&model.SuggestCommand{Suggestion: cmd, Description: "Add a post containing the text from a given url to current channel <Url>"}) + } + + return false +} diff --git a/api/command_test.go b/api/command_test.go index 476748c6b..f38cf1397 100644 --- a/api/command_test.go +++ b/api/command_test.go @@ -10,6 +10,7 @@ import ( "github.com/mattermost/platform/model" "github.com/mattermost/platform/store" + "github.com/mattermost/platform/utils" ) func TestSuggestRootCommands(t *testing.T) { @@ -18,7 +19,7 @@ func TestSuggestRootCommands(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) @@ -67,7 +68,7 @@ func TestLogoutCommands(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) @@ -85,7 +86,7 @@ func TestJoinCommands(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) @@ -99,7 +100,7 @@ func TestJoinCommands(t *testing.T) { channel2 = Client.Must(Client.CreateChannel(channel2)).Data.(*model.Channel) Client.Must(Client.LeaveChannel(channel2.Id)) - user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) @@ -161,7 +162,7 @@ func TestEchoCommand(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) @@ -184,3 +185,58 @@ func TestEchoCommand(t *testing.T) { t.Fatal("Echo command failed to send") } } + +func TestLoadTestUrlCommand(t *testing.T) { + Setup() + + // enable testing to use /loadtest but don't save it since we don't want to overwrite config.json + enableTesting := utils.Cfg.ServiceSettings.EnableTesting + defer func() { + utils.Cfg.ServiceSettings.EnableTesting = enableTesting + }() + + utils.Cfg.ServiceSettings.EnableTesting = true + + team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} + team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) + + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) + store.Must(Srv.Store.User().VerifyEmail(user.Id)) + + Client.LoginByEmail(team.Name, user.Email, "pwd") + + channel := &model.Channel{DisplayName: "AA", Name: "aa" + model.NewId() + "a", Type: model.CHANNEL_OPEN, TeamId: team.Id} + channel = Client.Must(Client.CreateChannel(channel)).Data.(*model.Channel) + + command := "/loadtest url " + if _, err := Client.Command(channel.Id, command, false); err == nil { + t.Fatal("/loadtest url with no url should've failed") + } + + command = "/loadtest url http://www.hopefullynonexistent.file/path/asdf/qwerty" + if _, err := Client.Command(channel.Id, command, false); err == nil { + t.Fatal("/loadtest url with invalid url should've failed") + } + + command = "/loadtest url https://raw.githubusercontent.com/mattermost/platform/master/README.md" + if r := Client.Must(Client.Command(channel.Id, command, false)).Data.(*model.Command); r.Response != model.RESP_EXECUTED { + t.Fatal("/loadtest url for README.md should've executed") + } + + command = "/loadtest url test-emoticons.md" + if r := Client.Must(Client.Command(channel.Id, command, false)).Data.(*model.Command); r.Response != model.RESP_EXECUTED { + t.Fatal("/loadtest url for test-emoticons.md should've executed") + } + + command = "/loadtest url test-emoticons" + if r := Client.Must(Client.Command(channel.Id, command, false)).Data.(*model.Command); r.Response != model.RESP_EXECUTED { + t.Fatal("/loadtest url for test-emoticons should've executed") + } + + posts := Client.Must(Client.GetPosts(channel.Id, 0, 5, "")).Data.(*model.PostList) + // note that this may make more than 3 posts if files are too long to fit in an individual post + if len(posts.Order) < 3 { + t.Fatal("/loadtest url made too few posts, perhaps there needs to be a delay before GetPosts in the test?") + } +} diff --git a/api/context.go b/api/context.go index a5d4169cb..a6f9bc1e1 100644 --- a/api/context.go +++ b/api/context.go @@ -37,6 +37,8 @@ type Page struct { ClientCfg map[string]string User *model.User Team *model.Team + Channel *model.Channel + PostID string SessionTokenIndex int64 } diff --git a/api/file_test.go b/api/file_test.go index b337eadc4..b5501e4bd 100644 --- a/api/file_test.go +++ b/api/file_test.go @@ -27,7 +27,7 @@ func TestUploadFile(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) @@ -142,7 +142,7 @@ func TestGetFile(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) @@ -213,7 +213,7 @@ func TestGetFile(t *testing.T) { team2 := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team2 = Client.Must(Client.CreateTeam(team2)).Data.(*model.Team) - user2 := &model.User{TeamId: team2.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := &model.User{TeamId: team2.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user2.Id)) @@ -321,11 +321,11 @@ func TestGetPublicLink(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) - user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user2.Id)) diff --git a/api/oauth_test.go b/api/oauth_test.go index 64d9c6fd9..7d825ef5a 100644 --- a/api/oauth_test.go +++ b/api/oauth_test.go @@ -18,7 +18,7 @@ func TestRegisterApp(t *testing.T) { team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} rteam, _ := Client.CreateTeam(&team) - user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Password: "pwd"} + user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Password: "pwd"} ruser := Client.Must(Client.CreateUser(&user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(ruser.Id)) @@ -75,7 +75,7 @@ func TestAllowOAuth(t *testing.T) { team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} rteam, _ := Client.CreateTeam(&team) - user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Password: "pwd"} + user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Password: "pwd"} ruser := Client.Must(Client.CreateUser(&user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(ruser.Id)) diff --git a/api/post.go b/api/post.go index ef70e1336..a102cdf4d 100644 --- a/api/post.go +++ b/api/post.go @@ -23,6 +23,7 @@ func InitPost(r *mux.Router) { l4g.Debug("Initializing post api routes") r.Handle("/posts/search", ApiUserRequired(searchPosts)).Methods("GET") + r.Handle("/posts/{post_id}", ApiUserRequired(getPostById)).Methods("GET") sr := r.PathPrefix("/channels/{id:[A-Za-z0-9]+}").Subrouter() sr.Handle("/create", ApiUserRequired(createPost)).Methods("POST") @@ -152,9 +153,6 @@ func CreateWebhookPost(c *Context, channelId, text, overrideUsername, overrideIc linkWithTextRegex := regexp.MustCompile(`<([^<\|]+)\|([^>]+)>`) text = linkWithTextRegex.ReplaceAllString(text, "[${2}](${1})") - linkRegex := regexp.MustCompile(`<\s*(\S*)\s*>`) - text = linkRegex.ReplaceAllString(text, "${1}") - post := &model.Post{UserId: c.Session.UserId, ChannelId: channelId, Message: text, Type: postType} post.AddProp("from_webhook", "true") @@ -176,7 +174,21 @@ func CreateWebhookPost(c *Context, channelId, text, overrideUsername, overrideIc if len(props) > 0 { for key, val := range props { - if key != "override_icon_url" && key != "override_username" && key != "from_webhook" { + if key == "attachments" { + if list, success := val.([]interface{}); success { + // parse attachment links into Markdown format + for i, aInt := range list { + attachment := aInt.(map[string]interface{}) + if _, ok := attachment["text"]; ok { + aText := attachment["text"].(string) + aText = linkWithTextRegex.ReplaceAllString(aText, "[${2}](${1})") + attachment["text"] = aText + list[i] = attachment + } + } + post.AddProp(key, list) + } + } else if key != "override_icon_url" && key != "override_username" && key != "from_webhook" { post.AddProp(key, val) } } @@ -224,9 +236,68 @@ func handlePostEventsAndForget(c *Context, post *model.Post, triggerWebhooks boo if triggerWebhooks { handleWebhookEventsAndForget(c, post, team, channel, user) } + + if channel.Type == model.CHANNEL_DIRECT { + go makeDirectChannelVisible(c.Session.TeamId, post.ChannelId) + } }() } +func makeDirectChannelVisible(teamId string, channelId string) { + var members []model.ChannelMember + if result := <-Srv.Store.Channel().GetMembers(channelId); result.Err != nil { + l4g.Error("Failed to get channel members channel_id=%v err=%v", channelId, result.Err.Message) + return + } else { + members = result.Data.([]model.ChannelMember) + } + + if len(members) != 2 { + l4g.Error("Failed to get 2 members for a direct channel channel_id=%v", channelId) + return + } + + // make sure the channel is visible to both members + for i, member := range members { + otherUserId := members[1-i].UserId + + if result := <-Srv.Store.Preference().Get(member.UserId, model.PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW, otherUserId); result.Err != nil { + // create a new preference since one doesn't exist yet + preference := &model.Preference{ + UserId: member.UserId, + Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW, + Name: otherUserId, + Value: "true", + } + + if saveResult := <-Srv.Store.Preference().Save(&model.Preferences{*preference}); saveResult.Err != nil { + l4g.Error("Failed to save direct channel preference user_id=%v other_user_id=%v err=%v", member.UserId, otherUserId, saveResult.Err.Message) + } else { + message := model.NewMessage(teamId, channelId, member.UserId, model.ACTION_PREFERENCE_CHANGED) + message.Add("preference", preference.ToJson()) + + PublishAndForget(message) + } + } else { + preference := result.Data.(model.Preference) + + if preference.Value != "true" { + // update the existing preference to make the channel visible + preference.Value = "true" + + if updateResult := <-Srv.Store.Preference().Save(&model.Preferences{preference}); updateResult.Err != nil { + l4g.Error("Failed to update direct channel preference user_id=%v other_user_id=%v err=%v", member.UserId, otherUserId, updateResult.Err.Message) + } else { + message := model.NewMessage(teamId, channelId, member.UserId, model.ACTION_PREFERENCE_CHANGED) + message.Add("preference", preference.ToJson()) + + PublishAndForget(message) + } + } + } + } +} + func handleWebhookEventsAndForget(c *Context, post *model.Post, team *model.Team, channel *model.Channel, user *model.User) { go func() { if !utils.Cfg.ServiceSettings.EnableOutgoingWebhooks { @@ -406,9 +477,9 @@ func sendNotificationsAndForget(c *Context, post *model.Post, team *model.Team, } // Add @all to keywords if user has them turned on - if profile.NotifyProps["all"] == "true" { - keywordMap["@all"] = append(keywordMap["@all"], profile.Id) - } + // if profile.NotifyProps["all"] == "true" { + // keywordMap["@all"] = append(keywordMap["@all"], profile.Id) + // } // Add @channel to keywords if user has them turned on if profile.NotifyProps["channel"] == "true" { @@ -420,35 +491,52 @@ func sendNotificationsAndForget(c *Context, post *model.Post, team *model.Team, splitF := func(c rune) bool { return model.SplitRunes[c] } - splitMessage := strings.FieldsFunc(post.Message, splitF) + splitMessage := strings.Fields(post.Message) for _, word := range splitMessage { + var userIds []string // Non-case-sensitive check for regular keys - userIds1, keyMatch := keywordMap[strings.ToLower(word)] + if ids, match := keywordMap[strings.ToLower(word)]; match { + userIds = append(userIds, ids...) + } // Case-sensitive check for first name - userIds2, firstNameMatch := keywordMap[word] + if ids, match := keywordMap[word]; match { + userIds = append(userIds, ids...) + } - userIds := append(userIds1, userIds2...) + if len(userIds) == 0 { + // No matches were found with the string split just on whitespace so try further splitting + // the message on punctuation + splitWords := strings.FieldsFunc(word, splitF) - // If one of the non-case-senstive keys or the first name matches the word - // then we add en entry to the sendEmail map - if keyMatch || firstNameMatch { - for _, userId := range userIds { - if post.UserId == userId { - continue - } - sendEmail := true - if _, ok := profileMap[userId].NotifyProps["email"]; ok && profileMap[userId].NotifyProps["email"] == "false" { - sendEmail = false + for _, splitWord := range splitWords { + // Non-case-sensitive check for regular keys + if ids, match := keywordMap[strings.ToLower(splitWord)]; match { + userIds = append(userIds, ids...) } - if sendEmail && (profileMap[userId].IsAway() || profileMap[userId].IsOffline()) { - toEmailMap[userId] = true - } else { - toEmailMap[userId] = false + + // Case-sensitive check for first name + if ids, match := keywordMap[splitWord]; match { + userIds = append(userIds, ids...) } } } + + for _, userId := range userIds { + if post.UserId == userId { + continue + } + sendEmail := true + if _, ok := profileMap[userId].NotifyProps["email"]; ok && profileMap[userId].NotifyProps["email"] == "false" { + sendEmail = false + } + if sendEmail && (profileMap[userId].IsAway() || profileMap[userId].IsOffline()) { + toEmailMap[userId] = true + } else { + toEmailMap[userId] = false + } + } } for id := range toEmailMap { @@ -465,8 +553,7 @@ func sendNotificationsAndForget(c *Context, post *model.Post, team *model.Team, teamURL := c.GetSiteURL() + "/" + team.Name // Build and send the emails - location, _ := time.LoadLocation("UTC") - tm := time.Unix(post.CreateAt/1000, 0).In(location) + tm := time.Unix(post.CreateAt/1000, 0) subjectPage := NewServerTemplatePage("post_subject") subjectPage.Props["SiteURL"] = c.GetSiteURL() @@ -498,6 +585,7 @@ func sendNotificationsAndForget(c *Context, post *model.Post, team *model.Team, bodyPage.Props["Minute"] = fmt.Sprintf("%02d", tm.Minute()) bodyPage.Props["Month"] = tm.Month().String()[:3] bodyPage.Props["Day"] = fmt.Sprintf("%d", tm.Day()) + bodyPage.Props["TimeZone"], _ = tm.Zone() bodyPage.Props["PostMessage"] = model.ClearMentionTags(post.Message) bodyPage.Props["TeamLink"] = teamURL + "/channels/" + channel.Name @@ -535,7 +623,7 @@ func sendNotificationsAndForget(c *Context, post *model.Post, team *model.Team, l4g.Error("Failed to send mention email successfully email=%v err=%v", profileMap[id].Email, err) } - if len(utils.Cfg.EmailSettings.ApplePushServer) > 0 { + if *utils.Cfg.EmailSettings.SendPushNotifications { sessionChan := Srv.Store.Session().GetSessions(id) if result := <-sessionChan; result.Err != nil { l4g.Error("Failed to retrieve sessions in notifications id=%v, err=%v", id, result.Err) @@ -544,11 +632,27 @@ func sendNotificationsAndForget(c *Context, post *model.Post, team *model.Team, alreadySeen := make(map[string]string) for _, session := range sessions { - if len(session.DeviceId) > 0 && alreadySeen[session.DeviceId] == "" { - + if len(session.DeviceId) > 0 && alreadySeen[session.DeviceId] == "" && strings.HasPrefix(session.DeviceId, "apple:") { alreadySeen[session.DeviceId] = session.DeviceId - utils.SendAppleNotifyAndForget(session.DeviceId, subjectPage.Render(), 1) + msg := model.PushNotification{} + msg.Platform = model.PUSH_NOTIFY_APPLE + msg.Badge = 1 + msg.DeviceId = strings.TrimPrefix(session.DeviceId, "apple:") + msg.ServerId = utils.CfgDiagnosticId + + if channel.Type == model.CHANNEL_DIRECT { + msg.Message = channelName + " sent you a direct message" + } else { + msg.Message = profileMap[id].FirstName + " mentioned you in " + channelName + } + + httpClient := http.Client{} + request, _ := http.NewRequest("POST", *utils.Cfg.EmailSettings.PushNotificationServer+"/api/v1/send_push", strings.NewReader(msg.ToJson())) + + if _, err := httpClient.Do(request); err != nil { + l4g.Error("Failed to send push notificationid=%v, err=%v", id, err) + } } } } @@ -768,6 +872,41 @@ func getPost(c *Context, w http.ResponseWriter, r *http.Request) { } } +func getPostById(c *Context, w http.ResponseWriter, r *http.Request) { + params := mux.Vars(r) + + postId := params["post_id"] + if len(postId) != 26 { + c.SetInvalidParam("getPostById", "postId") + return + } + + if result := <-Srv.Store.Post().Get(postId); result.Err != nil { + c.Err = result.Err + return + } else { + list := result.Data.(*model.PostList) + + if len(list.Order) != 1 { + c.Err = model.NewAppError("getPostById", "Unable to get post", "") + return + } + post := list.Posts[list.Order[0]] + + cchan := Srv.Store.Channel().CheckPermissionsTo(c.Session.TeamId, post.ChannelId, c.Session.UserId) + if !c.HasPermissionsToChannel(cchan, "getPostById") { + return + } + + if HandleEtag(list.Etag(), w, r) { + return + } + + w.Header().Set(model.HEADER_ETAG_SERVER, list.Etag()) + w.Write([]byte(list.ToJson())) + } +} + func deletePost(c *Context, w http.ResponseWriter, r *http.Request) { params := mux.Vars(r) diff --git a/api/post_test.go b/api/post_test.go index 0cb437e88..a0b8cc9bd 100644 --- a/api/post_test.go +++ b/api/post_test.go @@ -21,11 +21,11 @@ func TestCreatePost(t *testing.T) { team2 := &model.Team{DisplayName: "Name Team 2", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team2 = Client.Must(Client.CreateTeam(team2)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) - user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user2.Id)) @@ -103,7 +103,7 @@ func TestCreatePost(t *testing.T) { t.Fatal("Should have been forbidden") } - user3 := &model.User{TeamId: team2.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user3 := &model.User{TeamId: team2.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user3 = Client.Must(Client.CreateUser(user3, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user3.Id)) @@ -132,11 +132,11 @@ func TestUpdatePost(t *testing.T) { team2 := &model.Team{DisplayName: "Name Team 2", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team2 = Client.Must(Client.CreateTeam(team2)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) - user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user2.Id)) @@ -200,7 +200,7 @@ func TestGetPosts(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) @@ -265,7 +265,7 @@ func TestGetPostsSince(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) @@ -335,7 +335,7 @@ func TestGetPostsBeforeAfter(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) @@ -412,7 +412,7 @@ func TestSearchPosts(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) @@ -462,7 +462,7 @@ func TestSearchHashtagPosts(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) @@ -493,7 +493,7 @@ func TestSearchPostsInChannel(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) @@ -575,7 +575,7 @@ func TestSearchPostsFromUser(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) @@ -590,7 +590,7 @@ func TestSearchPostsFromUser(t *testing.T) { post1 := &model.Post{ChannelId: channel1.Id, Message: "sgtitlereview with space"} post1 = Client.Must(Client.CreatePost(post1)).Data.(*model.Post) - user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user2.Id)) @@ -619,7 +619,7 @@ func TestSearchPostsFromUser(t *testing.T) { t.Fatalf("wrong number of posts returned %v", len(result.Order)) } - user3 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user3 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user3 = Client.Must(Client.CreateUser(user3, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user3.Id)) @@ -653,7 +653,7 @@ func TestGetPostsCache(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) @@ -706,7 +706,7 @@ func TestDeletePosts(t *testing.T) { userAdmin = Client.Must(Client.CreateUser(userAdmin, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(userAdmin.Id)) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) @@ -763,7 +763,7 @@ func TestEmailMention(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: "corey@test.com", Nickname: "Bob Bobby", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: "corey+test@test.com", Nickname: "Bob Bobby", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) @@ -785,7 +785,7 @@ func TestFuzzyPosts(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -805,3 +805,51 @@ func TestFuzzyPosts(t *testing.T) { } } } + +func TestMakeDirectChannelVisible(t *testing.T) { + Setup() + + team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} + team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) + + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) + store.Must(Srv.Store.User().VerifyEmail(user1.Id)) + + user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) + store.Must(Srv.Store.User().VerifyEmail(user2.Id)) + + // user2 will be created with prefs created to show user1 in the sidebar so set that to false to get rid of it + Client.LoginByEmail(team.Name, user2.Email, "pwd") + + preferences := &model.Preferences{ + { + UserId: user2.Id, + Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW, + Name: user1.Id, + Value: "false", + }, + } + Client.Must(Client.SetPreferences(preferences)) + + Client.LoginByEmail(team.Name, user1.Email, "pwd") + + channel := Client.Must(Client.CreateDirectChannel(map[string]string{"user_id": user2.Id})).Data.(*model.Channel) + + makeDirectChannelVisible(team.Id, channel.Id) + + if result, err := Client.GetPreference(model.PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW, user2.Id); err != nil { + t.Fatal("Errored trying to set direct channel to be visible for user1") + } else if pref := result.Data.(*model.Preference); pref.Value != "true" { + t.Fatal("Failed to set direct channel to be visible for user1") + } + + Client.LoginByEmail(team.Name, user2.Email, "pwd") + + if result, err := Client.GetPreference(model.PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW, user1.Id); err != nil { + t.Fatal("Errored trying to set direct channel to be visible for user2") + } else if pref := result.Data.(*model.Preference); pref.Value != "true" { + t.Fatal("Failed to set direct channel to be visible for user2") + } +} diff --git a/api/preference.go b/api/preference.go index 6d6ac1a7f..e9c74aafe 100644 --- a/api/preference.go +++ b/api/preference.go @@ -1,4 +1,4 @@ -// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. package api diff --git a/api/preference_test.go b/api/preference_test.go index 2f6204246..6bebe205c 100644 --- a/api/preference_test.go +++ b/api/preference_test.go @@ -1,4 +1,4 @@ -// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. package api @@ -15,11 +15,11 @@ func TestGetAllPreferences(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) - user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user2.Id)) @@ -68,7 +68,7 @@ func TestSetPreferences(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) @@ -99,7 +99,7 @@ func TestSetPreferences(t *testing.T) { } // not able to update as a different user - user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user2.Id)) @@ -116,11 +116,11 @@ func TestGetPreferenceCategory(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) - user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user2.Id)) @@ -172,7 +172,7 @@ func TestGetPreference(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) diff --git a/api/server.go b/api/server.go index 347f0e2c9..2bab62fac 100644 --- a/api/server.go +++ b/api/server.go @@ -9,15 +9,14 @@ import ( "github.com/gorilla/mux" "github.com/mattermost/platform/store" "github.com/mattermost/platform/utils" - "github.com/throttled/throttled" - throttledStore "github.com/throttled/throttled/store" + "gopkg.in/throttled/throttled.v1" + throttledStore "gopkg.in/throttled/throttled.v1/store" "net/http" "strings" "time" ) type Server struct { - Server *manners.GracefulServer Store store.Store Router *mux.Router } @@ -29,7 +28,6 @@ func NewServer() { l4g.Info("Server is initializing...") Srv = &Server{} - Srv.Server = manners.NewServer() Srv.Store = store.NewSqlStore() Srv.Router = mux.NewRouter() @@ -71,7 +69,7 @@ func StartServer() { } go func() { - err := Srv.Server.ListenAndServe(utils.Cfg.ServiceSettings.ListenAddress, handler) + err := manners.ListenAndServe(utils.Cfg.ServiceSettings.ListenAddress, handler) if err != nil { l4g.Critical("Error starting server, err:%v", err) time.Sleep(time.Second) @@ -84,7 +82,7 @@ func StopServer() { l4g.Info("Stopping Server...") - Srv.Server.Shutdown <- true + manners.Close() Srv.Store.Close() hub.Stop() diff --git a/api/team.go b/api/team.go index 862970887..2cc7106dc 100644 --- a/api/team.go +++ b/api/team.go @@ -582,6 +582,39 @@ func updateTeam(c *Context, w http.ResponseWriter, r *http.Request) { w.Write([]byte(oldTeam.ToJson())) } +func PermanentDeleteTeam(c *Context, team *model.Team) *model.AppError { + l4g.Warn("Attempting to permanently delete team %v id=%v", team.Name, team.Id) + c.Path = "/teams/permanent_delete" + c.LogAuditWithUserId("", fmt.Sprintf("attempt teamId=%v", team.Id)) + + team.DeleteAt = model.GetMillis() + if result := <-Srv.Store.Team().Update(team); result.Err != nil { + return result.Err + } + + if result := <-Srv.Store.User().GetForExport(team.Id); result.Err != nil { + return result.Err + } else { + users := result.Data.([]*model.User) + for _, user := range users { + PermanentDeleteUser(c, user) + } + } + + if result := <-Srv.Store.Channel().PermanentDeleteByTeam(team.Id); result.Err != nil { + return result.Err + } + + if result := <-Srv.Store.Team().PermanentDelete(team.Id); result.Err != nil { + return result.Err + } + + l4g.Warn("Permanently deleted team %v id=%v", team.Name, team.Id) + c.LogAuditWithUserId("", fmt.Sprintf("success teamId=%v", team.Id)) + + return nil +} + func getMyTeam(c *Context, w http.ResponseWriter, r *http.Request) { if len(c.Session.TeamId) == 0 { diff --git a/api/team_test.go b/api/team_test.go index 7a3b092ce..cba043bbb 100644 --- a/api/team_test.go +++ b/api/team_test.go @@ -25,7 +25,7 @@ func TestCreateFromSignupTeam(t *testing.T) { Setup() props := make(map[string]string) - props["email"] = strings.ToLower(model.NewId()) + "corey@test.com" + props["email"] = strings.ToLower(model.NewId()) + "corey+test@test.com" props["name"] = "Test Company name" props["time"] = fmt.Sprintf("%v", model.GetMillis()) @@ -35,7 +35,7 @@ func TestCreateFromSignupTeam(t *testing.T) { team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} user := model.User{Email: props["email"], Nickname: "Corey Hulen", Password: "hello"} - ts := model.TeamSignup{Team: team, User: user, Invites: []string{"corey@test.com"}, Data: data, Hash: hash} + ts := model.TeamSignup{Team: team, User: user, Invites: []string{"corey+test@test.com"}, Data: data, Hash: hash} rts, err := Client.CreateTeamFromSignup(&ts) if err != nil { @@ -77,7 +77,7 @@ func TestCreateTeam(t *testing.T) { t.Fatal(err) } - user := &model.User{TeamId: rteam.Data.(*model.Team).Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: rteam.Data.(*model.Team).Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -114,7 +114,7 @@ func TestFindTeamByEmail(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -141,7 +141,7 @@ func TestGetAllTeams(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -168,6 +168,45 @@ func TestGetAllTeams(t *testing.T) { } } +func TestTeamPermDelete(t *testing.T) { + Setup() + + team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} + team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) + + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) + store.Must(Srv.Store.User().VerifyEmail(user1.Id)) + + Client.LoginByEmail(team.Name, user1.Email, "pwd") + + channel1 := &model.Channel{DisplayName: "TestGetPosts", Name: "a" + model.NewId() + "a", Type: model.CHANNEL_OPEN, TeamId: team.Id} + channel1 = Client.Must(Client.CreateChannel(channel1)).Data.(*model.Channel) + + post1 := &model.Post{ChannelId: channel1.Id, Message: "search for post1"} + post1 = Client.Must(Client.CreatePost(post1)).Data.(*model.Post) + + post2 := &model.Post{ChannelId: channel1.Id, Message: "search for post2"} + post2 = Client.Must(Client.CreatePost(post2)).Data.(*model.Post) + + post3 := &model.Post{ChannelId: channel1.Id, Message: "#hashtag search for post3"} + post3 = Client.Must(Client.CreatePost(post3)).Data.(*model.Post) + + post4 := &model.Post{ChannelId: channel1.Id, Message: "hashtag for post4"} + post4 = Client.Must(Client.CreatePost(post4)).Data.(*model.Post) + + c := &Context{} + c.RequestId = model.NewId() + c.IpAddress = "test" + + err := PermanentDeleteTeam(c, team) + if err != nil { + t.Fatal(err) + } + + Client.ClearOAuthToken() +} + /* XXXXXX investigate and fix failing test @@ -178,7 +217,7 @@ func TestFindTeamByDomain(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -218,9 +257,10 @@ func TestFindTeamByEmailSend(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) + Client.LoginByEmail(team.Name, user.Email, "pwd") if _, err := Client.FindTeamsSendEmail(user.Email); err != nil { t.Fatal(err) @@ -242,14 +282,14 @@ func TestInviteMembers(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) Client.LoginByEmail(team.Name, user.Email, "pwd") invite := make(map[string]string) - invite["email"] = model.NewId() + "corey@test.com" + invite["email"] = model.NewId() + "corey+test@test.com" invite["first_name"] = "Test" invite["last_name"] = "Guy" invites := &model.Invites{Invites: []map[string]string{invite}} @@ -275,7 +315,7 @@ func TestUpdateTeamDisplayName(t *testing.T) { user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) - user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user2.Id)) @@ -328,7 +368,7 @@ func TestGetMyTeam(t *testing.T) { team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} rteam, _ := Client.CreateTeam(&team) - user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} ruser, _ := Client.CreateUser(&user, "") store.Must(Srv.Store.User().VerifyEmail(ruser.Data.(*model.User).Id)) diff --git a/api/templates/email_change_body.html b/api/templates/email_change_body.html index df2db8730..7349aee6f 100644 --- a/api/templates/email_change_body.html +++ b/api/templates/email_change_body.html @@ -22,25 +22,13 @@ </td> </tr> <tr> - <td style="color: #999; padding-top: 20px; line-height: 25px; font-size: 13px;"> - Any questions at all, mail us any time: <a href="mailto:{{.ClientCfg.FeedbackEmail}}" style="text-decoration: none; color:#2389D7;">{{.ClientCfg.FeedbackEmail}}</a>.<br> - Best wishes,<br> - The {{.ClientCfg.SiteName}} Team<br> - </td> + {{template "email_info" . }} </tr> </table> </td> </tr> <tr> - <td style="text-align: center;color: #AAA; font-size: 11px; padding-bottom: 10px;"> - <p style="margin: 25px 0;"> - <img width="65" src="{{.Props.SiteURL}}/static/images/circles.png" alt=""> - </p> - <p style="padding: 0 50px;"> - (c) 2015 Mattermost, Inc. 855 El Camino Real, 13A-168, Palo Alto, CA, 94301.<br> - If you no longer wish to receive these emails, click on the following link: <a href="mailto:{{.ClientCfg.FeedbackEmail}}?subject=Unsubscribe&body=Unsubscribe" style="text-decoration: none; color:#2389D7;">Unsubscribe</a> - </p> - </td> + {{template "email_footer" . }} </tr> </table> </td> diff --git a/api/templates/email_change_verify_body.html b/api/templates/email_change_verify_body.html index f6bc3bc39..9d2c559b3 100644 --- a/api/templates/email_change_verify_body.html +++ b/api/templates/email_change_verify_body.html @@ -25,25 +25,13 @@ </td> </tr> <tr> - <td style="color: #999; padding-top: 20px; line-height: 25px; font-size: 13px;"> - Any questions at all, mail us any time: <a href="mailto:{{.ClientCfg.FeedbackEmail}}" style="text-decoration: none; color:#2389D7;">{{.ClientCfg.FeedbackEmail}}</a>.<br> - Best wishes,<br> - The {{.ClientCfg.SiteName}} Team<br> - </td> + {{template "email_info" . }} </tr> </table> </td> </tr> <tr> - <td style="text-align: center;color: #AAA; font-size: 11px; padding-bottom: 10px;"> - <p style="margin: 25px 0;"> - <img width="65" src="{{.Props.SiteURL}}/static/images/circles.png" alt=""> - </p> - <p style="padding: 0 50px;"> - (c) 2015 Mattermost, Inc. 855 El Camino Real, 13A-168, Palo Alto, CA, 94301.<br> - If you no longer wish to receive these emails, click on the following link: <a href="mailto:{{.ClientCfg.FeedbackEmail}}?subject=Unsubscribe&body=Unsubscribe" style="text-decoration: none; color:#2389D7;">Unsubscribe</a> - </p> - </td> + {{template "email_footer" . }} </tr> </table> </td> diff --git a/api/templates/email_footer.html b/api/templates/email_footer.html new file mode 100644 index 000000000..e3ff9c584 --- /dev/null +++ b/api/templates/email_footer.html @@ -0,0 +1,13 @@ +{{define "email_footer"}} + +<td style="text-align: center;color: #AAA; font-size: 11px; padding-bottom: 10px;"> + <p style="margin: 25px 0;"> + <img width="65" src="{{.Props.SiteURL}}/static/images/circles.png" alt=""> + </p> + <p style="padding: 0 50px;"> + (c) 2015 Mattermost, Inc. 855 El Camino Real, 13A-168, Palo Alto, CA, 94301.<br> + To change your notification preferences, log in to your team site and go to Account Settings > Notifications. + </p> +</td> + +{{end}} diff --git a/api/templates/email_info.html b/api/templates/email_info.html new file mode 100644 index 000000000..48725d144 --- /dev/null +++ b/api/templates/email_info.html @@ -0,0 +1,9 @@ +{{define "email_info"}} + +<td style="color: #999; padding-top: 20px; line-height: 25px; font-size: 13px;"> + Any questions at all, mail us any time: <a href="mailto:{{.ClientCfg.FeedbackEmail}}" style="text-decoration: none; color:#2389D7;">{{.ClientCfg.FeedbackEmail}}</a>.<br> + Best wishes,<br> + The {{.ClientCfg.SiteName}} Team<br> +</td> + +{{end}} diff --git a/api/templates/find_teams_body.html b/api/templates/find_teams_body.html index 4669d51c1..0b52af033 100644 --- a/api/templates/find_teams_body.html +++ b/api/templates/find_teams_body.html @@ -30,25 +30,13 @@ </td> </tr> <tr> - <td style="color: #999; padding-top: 20px; line-height: 25px; font-size: 13px;"> - Any questions at all, mail us any time: <a href="mailto:{{.ClientCfg.FeedbackEmail}}" style="text-decoration: none; color:#2389D7;">{{.ClientCfg.FeedbackEmail}}</a>.<br> - Best wishes,<br> - The {{.ClientCfg.SiteName}} Team<br> - </td> + {{template "email_info" . }} </tr> </table> </td> </tr> <tr> - <td style="text-align: center;color: #AAA; font-size: 11px; padding-bottom: 10px;"> - <p style="margin: 25px 0;"> - <img width="65" src="{{.ClientCfg.SiteURL}}/static/images/circles.png" alt=""> - </p> - <p style="padding: 0 50px;"> - (c) 2015 Mattermost, Inc. 855 El Camino Real, 13A-168, Palo Alto, CA, 94301.<br> - If you no longer wish to receive these emails, click on the following link: <a href="mailto:{{.ClientCfg.FeedbackEmail}}?subject=Unsubscribe&body=Unsubscribe" style="text-decoration: none; color:#2389D7;">Unsubscribe</a> - </p> - </td> + {{template "email_footer" . }} </tr> </table> </td> diff --git a/api/templates/invite_body.html b/api/templates/invite_body.html index d98f91357..a81d0c3d5 100644 --- a/api/templates/invite_body.html +++ b/api/templates/invite_body.html @@ -27,25 +27,13 @@ </td> </tr> <tr> - <td style="color: #999; padding-top: 20px; line-height: 25px; font-size: 13px;"> - Any questions at all, mail us any time: <a href="mailto:{{.ClientCfg.FeedbackEmail}}" style="text-decoration: none; color:#2389D7;">{{.ClientCfg.FeedbackEmail}}</a>.<br> - Best wishes,<br> - The {{.ClientCfg.SiteName}} Team<br> - </td> + {{template "email_info" . }} </tr> </table> </td> </tr> <tr> - <td style="text-align: center;color: #AAA; font-size: 11px; padding-bottom: 10px;"> - <p style="margin: 25px 0;"> - <img width="65" src="{{.Props.SiteURL}}/static/images/circles.png" alt=""> - </p> - <p style="padding: 0 50px;"> - (c) 2015 Mattermost, Inc. 855 El Camino Real, 13A-168, Palo Alto, CA, 94301.<br> - If you no longer wish to receive these emails, click on the following link: <a href="mailto:{{.ClientCfg.FeedbackEmail}}?subject=Unsubscribe&body=Unsubscribe" style="text-decoration: none; color:#2389D7;">Unsubscribe</a> - </p> - </td> + {{template "email_footer" . }} </tr> </table> </td> diff --git a/api/templates/password_change_body.html b/api/templates/password_change_body.html index 2e1df3ff2..82f4d5429 100644 --- a/api/templates/password_change_body.html +++ b/api/templates/password_change_body.html @@ -22,25 +22,13 @@ </td> </tr> <tr> - <td style="color: #999; padding-top: 20px; line-height: 25px; font-size: 13px;"> - Any questions at all, mail us any time: <a href="mailto:{{.ClientCfg.FeedbackEmail}}" style="text-decoration: none; color:#2389D7;">{{.ClientCfg.FeedbackEmail}}</a>.<br> - Best wishes,<br> - The {{.ClientCfg.SiteName}} Team<br> - </td> + {{template "email_info" . }} </tr> </table> </td> </tr> <tr> - <td style="text-align: center;color: #AAA; font-size: 11px; padding-bottom: 10px;"> - <p style="margin: 25px 0;"> - <img width="65" src="{{.Props.SiteURL}}/static/images/circles.png" alt=""> - </p> - <p style="padding: 0 50px;"> - (c) 2015 Mattermost, Inc. 855 El Camino Real, 13A-168, Palo Alto, CA, 94301.<br> - If you no longer wish to receive these emails, click on the following link: <a href="mailto:{{.ClientCfg.FeedbackEmail}}?subject=Unsubscribe&body=Unsubscribe" style="text-decoration: none; color:#2389D7;">Unsubscribe</a> - </p> - </td> + {{template "email_footer" . }} </tr> </table> </td> diff --git a/api/templates/post_body.html b/api/templates/post_body.html index 182134b1a..468d5e205 100644 --- a/api/templates/post_body.html +++ b/api/templates/post_body.html @@ -18,32 +18,20 @@ <tr> <td style="border-bottom: 1px solid #ddd; padding: 0 0 20px;"> <h2 style="font-weight: normal; margin-top: 10px;">You were mentioned</h2> - <p>CHANNEL: {{.Props.ChannelName}}<br>{{.Props.SenderName}} - {{.Props.Hour}}:{{.Props.Minute}} GMT, {{.Props.Month}} {{.Props.Day}}<br><pre style="text-align:left;font-family: 'Lato', sans-serif; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">{{.Props.PostMessage}}</pre></p> + <p>CHANNEL: {{.Props.ChannelName}}<br>{{.Props.SenderName}} - {{.Props.Hour}}:{{.Props.Minute}} {{.Props.TimeZone}}, {{.Props.Month}} {{.Props.Day}}<br><pre style="text-align:left;font-family: 'Lato', sans-serif; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">{{.Props.PostMessage}}</pre></p> <p style="margin: 20px 0 15px"> <a href="{{.Props.TeamLink}}" style="background: #2389D7; display: inline-block; border-radius: 3px; color: #fff; border: none; outline: none; min-width: 170px; padding: 15px 25px; font-size: 14px; font-family: inherit; cursor: pointer; -webkit-appearance: none;text-decoration: none;">Go To Channel</a> </p> </td> </tr> <tr> - <td style="color: #999; padding-top: 20px; line-height: 25px; font-size: 13px;"> - Any questions at all, mail us any time: <a href="mailto:{{.ClientCfg.FeedbackEmail}}" style="text-decoration: none; color:#2389D7;">{{.ClientCfg.FeedbackEmail}}</a>.<br> - Best wishes,<br> - The {{.ClientCfg.SiteName}} Team<br> - </td> + {{template "email_info" . }} </tr> </table> </td> </tr> <tr> - <td style="text-align: center;color: #AAA; font-size: 11px; padding-bottom: 10px;"> - <p style="margin: 25px 0;"> - <img width="65" src="{{.Props.SiteURL}}/static/images/circles.png" alt=""> - </p> - <p style="padding: 0 50px;"> - (c) 2015 Mattermost, Inc. 855 El Camino Real, 13A-168, Palo Alto, CA, 94301.<br> - If you no longer wish to receive these emails, click on the following link: <a href="mailto:{{.ClientCfg.FeedbackEmail}}?subject=Unsubscribe&body=Unsubscribe" style="text-decoration: none; color:#2389D7;">Unsubscribe</a> - </p> - </td> + {{template "email_footer" . }} </tr> </table> </td> diff --git a/api/templates/reset_body.html b/api/templates/reset_body.html index 5e5f6cafc..a608c804a 100644 --- a/api/templates/reset_body.html +++ b/api/templates/reset_body.html @@ -25,25 +25,13 @@ </td> </tr> <tr> - <td style="color: #999; padding-top: 20px; line-height: 25px; font-size: 13px;"> - Any questions at all, mail us any time: <a href="mailto:{{.ClientCfg.FeedbackEmail}}" style="text-decoration: none; color:#2389D7;">{{.ClientCfg.FeedbackEmail}}</a>.<br> - Best wishes,<br> - The {{.ClientCfg.SiteName}} Team<br> - </td> + {{template "email_info" . }} </tr> </table> </td> </tr> <tr> - <td style="text-align: center;color: #AAA; font-size: 11px; padding-bottom: 10px;"> - <p style="margin: 25px 0;"> - <img width="65" src="{{.Props.SiteURL}}/static/images/circles.png" alt=""> - </p> - <p style="padding: 0 50px;"> - (c) 2015 Mattermost, Inc. 855 El Camino Real, 13A-168, Palo Alto, CA, 94301.<br> - If you no longer wish to receive these emails, click on the following link: <a href="mailto:{{.ClientCfg.FeedbackEmail}}?subject=Unsubscribe&body=Unsubscribe" style="text-decoration: none; color:#2389D7;">Unsubscribe</a> - </p> - </td> + {{template "email_footer" . }} </tr> </table> </td> diff --git a/api/templates/signup_team_body.html b/api/templates/signup_team_body.html index 6f3deb28b..2f384ac43 100644 --- a/api/templates/signup_team_body.html +++ b/api/templates/signup_team_body.html @@ -25,25 +25,13 @@ </td> </tr> <tr> - <td style="color: #999; padding-top: 20px; line-height: 25px; font-size: 13px;"> - Any questions at all, mail us any time: <a href="mailto:{{.ClientCfg.FeedbackEmail}}" style="text-decoration: none; color:#2389D7;">{{.ClientCfg.FeedbackEmail}}</a>.<br> - Best wishes,<br> - The {{.ClientCfg.SiteName}} Team<br> - </td> + {{template "email_info" . }} </tr> </table> </td> </tr> <tr> - <td style="text-align: center;color: #AAA; font-size: 11px; padding-bottom: 10px;"> - <p style="margin: 25px 0;"> - <img width="65" src="{{.Props.SiteURL}}/static/images/circles.png" alt=""> - </p> - <p style="padding: 0 50px;"> - (c) 2015 Mattermost, Inc. 855 El Camino Real, 13A-168, Palo Alto, CA, 94301.<br> - If you no longer wish to receive these emails, click on the following link: <a href="mailto:{{.ClientCfg.FeedbackEmail}}?subject=Unsubscribe&body=Unsubscribe" style="text-decoration: none; color:#2389D7;">Unsubscribe</a> - </p> - </td> + {{template "email_footer" . }} </tr> </table> </td> diff --git a/api/templates/signup_team_subject.html b/api/templates/signup_team_subject.html index 236b288fa..4fc5b3d72 100644 --- a/api/templates/signup_team_subject.html +++ b/api/templates/signup_team_subject.html @@ -1 +1 @@ -{{define "signup_team_subject"}}Invitation to {{ .ClientCfg.SiteName }}{{end}}
\ No newline at end of file +{{define "signup_team_subject"}}{{ .ClientCfg.SiteName }} Team Setup{{end}}
\ No newline at end of file diff --git a/api/templates/verify_body.html b/api/templates/verify_body.html index a93de9a71..97571d9e3 100644 --- a/api/templates/verify_body.html +++ b/api/templates/verify_body.html @@ -25,25 +25,13 @@ </td> </tr> <tr> - <td style="color: #999; padding-top: 20px; line-height: 25px; font-size: 13px;"> - Any questions at all, mail us any time: <a href="mailto:{{.ClientCfg.FeedbackEmail}}" style="text-decoration: none; color:#2389D7;">{{.ClientCfg.FeedbackEmail}}</a>.<br> - Best wishes,<br> - The {{.ClientCfg.SiteName}} Team<br> - </td> + {{template "email_info" . }} </tr> </table> </td> </tr> <tr> - <td style="text-align: center;color: #AAA; font-size: 11px; padding-bottom: 10px;"> - <p style="margin: 25px 0;"> - <img width="65" src="{{.Props.SiteURL}}/static/images/circles.png" alt=""> - </p> - <p style="padding: 0 50px;"> - (c) 2015 Mattermost, Inc. 855 El Camino Real, 13A-168, Palo Alto, CA, 94301.<br> - If you no longer wish to receive these emails, click on the following link: <a href="mailto:{{.ClientCfg.FeedbackEmail}}?subject=Unsubscribe&body=Unsubscribe" style="text-decoration: none; color:#2389D7;">Unsubscribe</a> - </p> - </td> + {{template "email_footer" . }} </tr> </table> </td> diff --git a/api/templates/welcome_body.html b/api/templates/welcome_body.html index 485bc6351..dbb94cf06 100644 --- a/api/templates/welcome_body.html +++ b/api/templates/welcome_body.html @@ -37,15 +37,7 @@ </td> </tr> <tr> - <td style="text-align: center;color: #AAA; font-size: 11px; padding-bottom: 10px;"> - <p style="margin: 25px 0;"> - <img width="65" src="{{.Props.SiteURL}}/static/images/circles.png" alt=""> - </p> - <p style="padding: 0 50px;"> - (c) 2015 Mattermost, Inc. 855 El Camino Real, 13A-168, Palo Alto, CA, 94301.<br> - If you no longer wish to receive these emails, click on the following link: <a href="mailto:{{.ClientCfg.FeedbackEmail}}?subject=Unsubscribe&body=Unsubscribe" style="text-decoration: none; color:#2389D7;">Unsubscribe</a> - </p> - </td> + {{template "email_footer" . }} </tr> </table> </td> diff --git a/api/user.go b/api/user.go index 4a52cf88b..886e38c91 100644 --- a/api/user.go +++ b/api/user.go @@ -334,6 +334,7 @@ func LoginByEmail(c *Context, w http.ResponseWriter, r *http.Request, email, nam if result := <-Srv.Store.User().GetByEmail(team.Id, email); result.Err != nil { c.Err = result.Err + c.Err.StatusCode = http.StatusForbidden return nil } else { user := result.Data.(*model.User) @@ -660,7 +661,7 @@ func getProfiles(c *Context, w http.ResponseWriter, r *http.Request) { profiles := result.Data.(map[string]*model.User) for k, p := range profiles { - options := utils.SanitizeOptions + options := utils.Cfg.GetSanitizeOptions() options["passwordupdate"] = false if c.IsSystemAdmin() { @@ -669,6 +670,7 @@ func getProfiles(c *Context, w http.ResponseWriter, r *http.Request) { } p.Sanitize(options) + p.ClearNonProfileFields() profiles[k] = p } @@ -1100,7 +1102,7 @@ func updateRoles(c *Context, w http.ResponseWriter, r *http.Request) { } } - options := utils.SanitizeOptions + options := utils.Cfg.GetSanitizeOptions() options["passwordupdate"] = false ruser.Sanitize(options) w.Write([]byte(ruser.ToJson())) @@ -1195,6 +1197,14 @@ func updateActive(c *Context, w http.ResponseWriter, r *http.Request) { } } + ruser := UpdateActive(c, user, active) + + if c.Err == nil { + w.Write([]byte(ruser.ToJson())) + } +} + +func UpdateActive(c *Context, user *model.User, active bool) *model.User { if active { user.DeleteAt = 0 } else { @@ -1203,7 +1213,7 @@ func updateActive(c *Context, w http.ResponseWriter, r *http.Request) { if result := <-Srv.Store.User().Update(user, true); result.Err != nil { c.Err = result.Err - return + return nil } else { c.LogAuditWithUserId(user.Id, fmt.Sprintf("active=%v", active)) @@ -1212,11 +1222,64 @@ func updateActive(c *Context, w http.ResponseWriter, r *http.Request) { } ruser := result.Data.([2]*model.User)[0] - options := utils.SanitizeOptions + options := utils.Cfg.GetSanitizeOptions() options["passwordupdate"] = false ruser.Sanitize(options) - w.Write([]byte(ruser.ToJson())) + return ruser + } +} + +func PermanentDeleteUser(c *Context, user *model.User) *model.AppError { + l4g.Warn("Attempting to permanently delete account %v id=%v", user.Email, user.Id) + c.Path = "/users/permanent_delete" + c.LogAuditWithUserId(user.Id, fmt.Sprintf("attempt userId=%v", user.Id)) + c.LogAuditWithUserId("", fmt.Sprintf("attempt userId=%v", user.Id)) + if user.IsInRole(model.ROLE_SYSTEM_ADMIN) { + l4g.Warn("You are deleting %v that is a system administrator. You may need to set another account as the system administrator using the command line tools.", user.Email) + } + + UpdateActive(c, user, false) + + if result := <-Srv.Store.Session().PermanentDeleteSessionsByUser(user.Id); result.Err != nil { + return result.Err + } + + if result := <-Srv.Store.OAuth().PermanentDeleteAuthDataByUser(user.Id); result.Err != nil { + return result.Err + } + + if result := <-Srv.Store.Webhook().PermanentDeleteIncomingByUser(user.Id); result.Err != nil { + return result.Err + } + + if result := <-Srv.Store.Webhook().PermanentDeleteOutgoingByUser(user.Id); result.Err != nil { + return result.Err + } + + if result := <-Srv.Store.Preference().PermanentDeleteByUser(user.Id); result.Err != nil { + return result.Err + } + + if result := <-Srv.Store.Channel().PermanentDeleteMembersByUser(user.Id); result.Err != nil { + return result.Err } + + if result := <-Srv.Store.Post().PermanentDeleteByUser(user.Id); result.Err != nil { + return result.Err + } + + if result := <-Srv.Store.User().PermanentDelete(user.Id); result.Err != nil { + return result.Err + } + + if result := <-Srv.Store.Audit().PermanentDeleteByUser(user.Id); result.Err != nil { + return result.Err + } + + l4g.Warn("Permanently deleted account %v id=%v", user.Email, user.Id) + c.LogAuditWithUserId("", fmt.Sprintf("success userId=%v", user.Id)) + + return nil } func sendPasswordReset(c *Context, w http.ResponseWriter, r *http.Request) { @@ -1485,7 +1548,7 @@ func updateUserNotify(c *Context, w http.ResponseWriter, r *http.Request) { c.LogAuditWithUserId(user.Id, "") ruser := result.Data.([2]*model.User)[0] - options := utils.SanitizeOptions + options := utils.Cfg.GetSanitizeOptions() options["passwordupdate"] = false ruser.Sanitize(options) w.Write([]byte(ruser.ToJson())) diff --git a/api/user_test.go b/api/user_test.go index f067182cb..731450321 100644 --- a/api/user_test.go +++ b/api/user_test.go @@ -28,7 +28,7 @@ func TestCreateUser(t *testing.T) { team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} rteam, _ := Client.CreateTeam(&team) - user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", Password: "hello"} + user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", Password: "hello"} ruser, err := Client.CreateUser(&user, "") if err != nil { @@ -79,7 +79,7 @@ func TestCreateUserAllowedDomains(t *testing.T) { team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_INVITE, AllowedDomains: "spinpunch.com, @nowh.com,@hello.com"} rteam, _ := Client.CreateTeam(&team) - user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", Password: "hello"} + user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", Password: "hello"} _, err := Client.CreateUser(&user, "") if err == nil { @@ -99,7 +99,7 @@ func TestLogin(t *testing.T) { team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} rteam, _ := Client.CreateTeam(&team) - user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} ruser, _ := Client.CreateUser(&user, "") store.Must(Srv.Store.User().VerifyEmail(ruser.Data.(*model.User).Id)) @@ -139,7 +139,7 @@ func TestLogin(t *testing.T) { team2 := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_INVITE} rteam2 := Client.Must(Client.CreateTeam(&team2)) - user2 := model.User{TeamId: rteam2.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := model.User{TeamId: rteam2.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} if _, err := Client.CreateUserFromSignup(&user2, "junk", "1231312"); err == nil { t.Fatal("Should have errored, signed up without hashed email") @@ -168,7 +168,7 @@ func TestSessions(t *testing.T) { team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} rteam, _ := Client.CreateTeam(&team) - user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} ruser := Client.Must(Client.CreateUser(&user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(ruser.Id)) @@ -220,18 +220,18 @@ func TestGetUser(t *testing.T) { team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} rteam, _ := Client.CreateTeam(&team) - user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} ruser, _ := Client.CreateUser(&user, "") store.Must(Srv.Store.User().VerifyEmail(ruser.Data.(*model.User).Id)) - user2 := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} ruser2, _ := Client.CreateUser(&user2, "") store.Must(Srv.Store.User().VerifyEmail(ruser2.Data.(*model.User).Id)) team2 := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} rteam2, _ := Client.CreateTeam(&team2) - user3 := model.User{TeamId: rteam2.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user3 := model.User{TeamId: rteam2.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} ruser3, _ := Client.CreateUser(&user3, "") store.Must(Srv.Store.User().VerifyEmail(ruser3.Data.(*model.User).Id)) @@ -312,7 +312,7 @@ func TestGetAudits(t *testing.T) { team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} rteam, _ := Client.CreateTeam(&team) - user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} ruser, _ := Client.CreateUser(&user, "") store.Must(Srv.Store.User().VerifyEmail(ruser.Data.(*model.User).Id)) @@ -365,7 +365,7 @@ func TestUserCreateImage(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -399,7 +399,7 @@ func TestUserUploadProfileImage(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -505,7 +505,7 @@ func TestUserUpdate(t *testing.T) { time1 := model.GetMillis() - user := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd", LastActivityAt: time1, LastPingAt: time1, Roles: ""} + user := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd", LastActivityAt: time1, LastPingAt: time1, Roles: ""} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -561,7 +561,7 @@ func TestUserUpdate(t *testing.T) { t.Fatal("Should have errored") } - user2 := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user2.Id)) @@ -580,7 +580,7 @@ func TestUserUpdatePassword(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -623,7 +623,7 @@ func TestUserUpdatePassword(t *testing.T) { t.Fatal(err) } - user2 := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) Client.LoginByEmail(team.Name, user2.Email, "pwd") @@ -643,7 +643,7 @@ func TestUserUpdateRoles(t *testing.T) { user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) - user2 := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user2.Id)) @@ -713,7 +713,7 @@ func TestUserUpdateActive(t *testing.T) { user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) - user2 := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user2.Id)) @@ -767,13 +767,52 @@ func TestUserUpdateActive(t *testing.T) { } } +func TestUserPermDelete(t *testing.T) { + Setup() + + team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} + team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) + + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) + store.Must(Srv.Store.User().VerifyEmail(user1.Id)) + + Client.LoginByEmail(team.Name, user1.Email, "pwd") + + channel1 := &model.Channel{DisplayName: "TestGetPosts", Name: "a" + model.NewId() + "a", Type: model.CHANNEL_OPEN, TeamId: team.Id} + channel1 = Client.Must(Client.CreateChannel(channel1)).Data.(*model.Channel) + + post1 := &model.Post{ChannelId: channel1.Id, Message: "search for post1"} + post1 = Client.Must(Client.CreatePost(post1)).Data.(*model.Post) + + post2 := &model.Post{ChannelId: channel1.Id, Message: "search for post2"} + post2 = Client.Must(Client.CreatePost(post2)).Data.(*model.Post) + + post3 := &model.Post{ChannelId: channel1.Id, Message: "#hashtag search for post3"} + post3 = Client.Must(Client.CreatePost(post3)).Data.(*model.Post) + + post4 := &model.Post{ChannelId: channel1.Id, Message: "hashtag for post4"} + post4 = Client.Must(Client.CreatePost(post4)).Data.(*model.Post) + + c := &Context{} + c.RequestId = model.NewId() + c.IpAddress = "test" + + err := PermanentDeleteUser(c, user1) + if err != nil { + t.Fatal(err) + } + + Client.ClearOAuthToken() +} + func TestSendPasswordReset(t *testing.T) { Setup() team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -806,7 +845,7 @@ func TestSendPasswordReset(t *testing.T) { t.Fatal("Should have errored - bad name") } - user2 := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", AuthData: "1", AuthService: "random"} + user2 := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", AuthData: "1", AuthService: "random"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user2.Id)) @@ -823,7 +862,7 @@ func TestResetPassword(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -900,7 +939,7 @@ func TestResetPassword(t *testing.T) { t.Fatal("Should have errored - domain team doesn't match user team") } - user2 := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", AuthData: "1", AuthService: "random"} + user2 := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", AuthData: "1", AuthService: "random"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user2.Id)) @@ -921,7 +960,7 @@ func TestUserUpdateNotify(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd", Roles: ""} + user := &model.User{TeamId: team.Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd", Roles: ""} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -1016,11 +1055,11 @@ func TestStatuses(t *testing.T) { team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} rteam, _ := Client.CreateTeam(&team) - user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} ruser := Client.Must(Client.CreateUser(&user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(ruser.Id)) - user2 := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} ruser2 := Client.Must(Client.CreateUser(&user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(ruser2.Id)) diff --git a/api/web_socket_test.go b/api/web_socket_test.go index 63c4dd05d..24e860628 100644 --- a/api/web_socket_test.go +++ b/api/web_socket_test.go @@ -20,7 +20,7 @@ func TestSocket(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user1 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user1 = Client.Must(Client.CreateUser(user1, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user1.Id)) Client.LoginByEmail(team.Name, user1.Email, "pwd") @@ -39,7 +39,7 @@ func TestSocket(t *testing.T) { t.Fatal(err) } - user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user2 := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user2 = Client.Must(Client.CreateUser(user2, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user2.Id)) Client.LoginByEmail(team.Name, user2.Email, "pwd") diff --git a/api/web_team_hub.go b/api/web_team_hub.go index 6a25b7d3d..2c2386317 100644 --- a/api/web_team_hub.go +++ b/api/web_team_hub.go @@ -95,9 +95,11 @@ func ShouldSendEvent(webCon *WebConn, msg *model.Message) bool { return false } } else { - // Don't share a user's view events with other users + // Don't share a user's view or preference events with other users if msg.Action == model.ACTION_CHANNEL_VIEWED { return false + } else if msg.Action == model.ACTION_PREFERENCE_CHANGED { + return false } // Only report events to a user who is the subject of the event, or is in the channel of the event diff --git a/api/webhook_test.go b/api/webhook_test.go index 4c04a9922..85117ec18 100644 --- a/api/webhook_test.go +++ b/api/webhook_test.go @@ -17,7 +17,7 @@ func TestCreateIncomingHook(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -80,7 +80,7 @@ func TestListIncomingHooks(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -118,7 +118,7 @@ func TestDeleteIncomingHook(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -158,7 +158,7 @@ func TestCreateOutgoingHook(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -221,7 +221,7 @@ func TestListOutgoingHooks(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -259,7 +259,7 @@ func TestDeleteOutgoingHook(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) @@ -299,7 +299,7 @@ func TestRegenOutgoingHookToken(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = Client.Must(Client.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) store.Must(Srv.Store.User().VerifyEmail(user.Id)) diff --git a/config/config.json b/config/config.json index 932bed8a2..4477ec63b 100644 --- a/config/config.json +++ b/config/config.json @@ -68,9 +68,8 @@ "ConnectionSecurity": "", "InviteSalt": "bjlSR4QqkXFBr7TP4oDzlfZmcNuH9YoS", "PasswordResetSalt": "vZ4DcKyVVRlKHHJpexcuXzojkE5PZ5eL", - "ApplePushServer": "", - "ApplePushCertPublic": "", - "ApplePushCertPrivate": "" + "SendPushNotifications": false, + "PushNotificationServer": "" }, "RateLimitSettings": { "EnableRateLimiter": true, @@ -83,6 +82,14 @@ "ShowEmailAddress": true, "ShowFullName": true }, + "SupportSettings": { + "TermsOfServiceLink": "/static/help/terms.html", + "PrivacyPolicyLink": "/static/help/privacy.html", + "AboutLink": "/static/help/about.html", + "HelpLink": "/static/help/help.html", + "ReportAProblemLink": "/static/help/report_problem.html", + "SupportEmail": "feedback@mattermost.com" + }, "GitLabSettings": { "Enable": false, "Secret": "", diff --git a/doc/README.md b/doc/README.md index 7ed20fba6..15d1d731b 100644 --- a/doc/README.md +++ b/doc/README.md @@ -51,13 +51,4 @@ Procedures for upgrading the Mattermost server ## Help -_Note: End user help documentation is a new feature being completed for the v1.2 release. The materials below are work in progress._ - -- User Interface - - [Manage Members](help/Manage-Members.md) - - Team Settings - - [Slack Import](help/Slack-Import.md) - -- Messaging - - [Mattermost Markdown Formatting](usage/Markdown.md) - +See [End User Help](help/README.md). diff --git a/doc/developer/API.md b/doc/developer/API.md index 4c4b2f04e..1da1a475b 100644 --- a/doc/developer/API.md +++ b/doc/developer/API.md @@ -12,7 +12,7 @@ Incoming webhooks allow external applications to post messages into Mattermost c In addition to supporting Slack's incoming webhook formatting, Mattermost webhooks offer full support of industry-standard markdown formatting, including headings, tables and in-line images. -### [Outgoing Webhooks (in Mattermost v1.2)](https://github.com/mattermost/platform/blob/master/doc/integrations/webhooks/Outgoing-Webhooks.md) +### [Outgoing Webhooks](https://github.com/mattermost/platform/blob/master/doc/integrations/webhooks/Outgoing-Webhooks.md) Outgoing webhooks allow external applications to receive webhook events from events happening within Mattermost channels and private groups via JSON payloads via HTTP POST requests sent to incoming webhook URLs defined by your applications. @@ -33,3 +33,15 @@ Mattermost drivers offer access to the Mattermost web service API in different l ### [Golang Driver](https://github.com/mattermost/platform/blob/master/model/client.go) [client.go](https://github.com/mattermost/platform/blob/master/model/client.go) - This is a RESTful driver connecting with the Golang-based webservice of Mattermost and is used by unit tests. + +## Building API Integration + +If you're building a deep integration with Mattermost, for example a mobile native client, and there is a driver available to support the programming language you are using, it's best to use the driver available to access the [Mattermost Web Service APIs](API-Web-Service.md). + +If no driver is available for the programming language of your choice, you can view the [Golang Driver](https://github.com/mattermost/platform/blob/master/model/client.go) source code to understand how it exercises the Web Service API. You can also learn more by reviewing open source projects that use the Web Service API, like [matterircd](https://github.com/42wim/matterircd). + +There are a wide range of [installation guides](http://www.mattermost.org/installation/) for setting up your own Mattermost server on which to develop and test your integrations. + + + + diff --git a/doc/developer/Setup.md b/doc/developer/Setup.md index e78d4dff2..24e7d6a90 100644 --- a/doc/developer/Setup.md +++ b/doc/developer/Setup.md @@ -11,7 +11,10 @@ Developer Machine Setup `docker-machine ip dev` 3. Add a line to your /etc/hosts that goes `<Docker IP> dockerhost` 4. Run `docker-machine env dev` and copy the export statements to your ~/.bash_profile -2. Download Go (version 1.4.2 or 1.5.1. Final release bits are built with 1.4.2) from http://golang.org/dl/ +2. Download Go 1.5.1 and Node.js using Homebrew + 1. Download Homebrew from http://brew.sh/ + 2. `brew install go` + 3. `brew install node` 3. Set up your Go workspace 1. `mkdir ~/go` 2. Add the following to your ~/.bash_profile @@ -21,20 +24,17 @@ Developer Machine Setup If you don't increase the file handle limit you may see some weird build issues with browserify or npm. 3. Reload your bash profile `source ~/.bash_profile` -4. Install Node.js using Homebrew - 1. Download Homebrew from http://brew.sh/ - 2. `brew install node` -5. Install Compass +4. Install Compass 1. Run `ruby -v` and check the ruby version is 1.8.7 or higher 2. `sudo gem install compass` -6. Download Mattermost +5. Download Mattermost `cd ~/go` `mkdir -p src/github.com/mattermost` `cd src/github.com/mattermost` `git clone https://github.com/mattermost/platform.git` `cd platform` -7. Run unit tests on Mattermost using `make test` to make sure the installation was successful -8. If tests passed, you can now run Mattermost using `make run` +6. Run unit tests on Mattermost using `make test` to make sure the installation was successful +7. If tests passed, you can now run Mattermost using `make run` Any issues? Please let us know on our forums at: http://forum.mattermost.org @@ -53,7 +53,7 @@ Any issues? Please let us know on our forums at: http://forum.mattermost.org `127.0.0.1 dockerhost` 3. Install build essentials 1. `apt-get install build-essential` -4. Download Go (version 1.4.2 or 1.5.1. Final release bits are built with 1.4.2) from http://golang.org/dl/ +4. Download Go 1.5.1 from http://golang.org/dl/ 5. Set up your Go workspace and add Go to the PATH 1. `mkdir ~/go` 2. Add the following to your ~/.bashrc @@ -64,13 +64,9 @@ Any issues? Please let us know on our forums at: http://forum.mattermost.org If you don't increase the file handle limit you may see some weird build issues with browserify or npm. 3. Reload your bashrc `source ~/.bashrc` -6. Install Node.js - 1. Download the newest version of the Node.js sources from https://nodejs.org/en/download/ - 2. Extract the contents of the package and cd into the extracted files - 3. Compile and install Node.js - `./configure` - `make` - `make install` +6. Install Node.js + `curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -` + `sudo apt-get install -y nodejs` 7. Install Ruby and Compass `apt-get install ruby` `apt-get install ruby-dev` diff --git a/doc/developer/tests/README.md b/doc/developer/tests/README.md new file mode 100644 index 000000000..a7b36f18d --- /dev/null +++ b/doc/developer/tests/README.md @@ -0,0 +1,18 @@ +# Testing Text Processing +The text processing tests located in the [doc/developer/tests folder](https://github.com/mattermost/platform/tree/master/doc/developer/tests) are designed for use with the `/loadtest url` command. This command posts the raw contents of a specified .md file in the doc/developer/test folder into Mattermost. + +## Turning on /loadtest +Access the **System Console** from the Main Menu. Under *Service Settings* make sure that *Enable Testing* is set to `true`, then click **Save**. You may also change this setting from `config.json` by setting `â€EnableTestingâ€: true`. Changing this setting requires a server restart to take effect. + +## Running the Tests +In the text input box in Mattermost, type: `/loadtest url [file-name-in-testing-folder].md`. Some examples: + +`/loadtest url test-emoticons.md` +`/loadtest url test-links.md` + +#### Notes: +1. If a test has prerequisites, make sure your Mattermost setup meets the requirements described at the top of the test file. +2. Some tests are over 4000 characters in length and will render across multiple posts. + +## Manual Testing +It is possible to manually test specific sections of any test, instead of using the /loadtest command. Do this by clicking **Raw** in the header for the file when it’s open in GitHub, then copy and paste any section into Mattermost to post it. Manual testing only supports sections of 4000 characters or less per post. diff --git a/doc/developer/tests/test-attachments.md b/doc/developer/tests/test-attachments.md new file mode 100644 index 000000000..71cc496ce --- /dev/null +++ b/doc/developer/tests/test-attachments.md @@ -0,0 +1,144 @@ +# Testing Files and Attachments +This test contains instructions for the core team to manually test common attachment types. All files for testing are stored in the [mm_file_testing](https://www.dropbox.com/sh/i7ft8is5hbhk8ii/AAAyM-WG-X2jiQOgg6-E3MmLa?dl=0) dropbox folder. Follow these instructions: + +1. Download the entire [mm_file_testing](https://www.dropbox.com/sh/i7ft8is5hbhk8ii/AAAyM-WG-X2jiQOgg6-E3MmLa?dl=0) folder. +2. Drag and drop each file type into Mattermost to upload it. +3. Post the file attachment + +**Notes:** +- All file types should upload and post. +- Read the expected for details on the behavior of the thumbnail and preview window. +- The expected behavior of video and audio formats depends on the operating system, browser and plugins. View the permalinks to the Public Test Channel on Pre-Release Core to see the expected cases. + + +### Images +**JPG** +`Images/JPG.jpg` +Expected: Scaled thumbnail & preview window +[Permalink](https://pre-release.mattermost.com/core/pl/bgx3wcd9ppdo7fz9zqokofg7sc) + +**PNG** +`Images/PNG.png` +Expected: Scaled thumbnail & preview window +[Permalink](https://pre-release.mattermost.com/core/pl/zra4yhm69j8ij81iy5hw7983qe) + +**BMP** +`Images/BMP.bmp` +Expected: Scaled thumbnail & preview window +[Permalink](https://pre-release.mattermost.com/core/pl/1hx7x7t1npn4jqyr5rb1qhbj3h) + +**GIF** +`Images/GIF.gif` +Expected: Scaled thumbnail & preview window. Click to play GIF. +[Permalink](https://pre-release.mattermost.com/core/pl/j49fowdkstr57g3ed9bgpfoo5w) + +**TIFF** +`Images/TIFF.tiff` +Expected: Generic attachment thumbnail & preview window +[Permalink](https://pre-release.mattermost.com/core/pl/6yad4jydaidr3pc3tihp8n8bge) + +**PSD** +`Images/PSD.psd` +Expected: Generic attachment thumbnail & preview window +[Permalink](https://pre-release.mattermost.com/core/pl/4kitwk7pi78c9ck4i98f9xnzoe) + + +### Documents + +**PDF Files** +`Documents/PDF.pdf` +Expected: Generic PDF thumbnail & preview window. +[Permalink](https://pre-release.mattermost.com/core/pl/o1dg6menetdszrhyxmtoqjfi8h) + + +**Excel** +`Documents/Excel.xlsx` +Expected: Generic Excel thumbnail & preview window. +[Permalink](https://pre-release.mattermost.com/core/pl/71wwezy3f7drze6ipundscb17y) + + +**PPT** +`Documents/PPT.pptx` +Expected: Generic Powerpoint thumbnail & preview window. +[Permalink](https://pre-release.mattermost.com/core/pl/mx37h4znwb8f5ffuoajusqhiew) + +**Word** +`Documents/Word.docx` +Expected: Generic Word thumbnail & preview window. +[Permalink](https://pre-release.mattermost.com/core/pl/d7s76wp6kjdwfp4hgrwpijsnyy) + + +### Videos + +**MP4** +`Videos/MP4.mp4` +Expected: Generic video thumbnail & playable preview window +[Permalink](https://pre-release.mattermost.com/core/pl/5dx5qx9t9brqfnhohccxjynx7c) + +**AVI** +`Videos/AVI.avi` +Expected: View Permalink. Expected depends on the operating system, browser and plugins. +[Permalink](https://pre-release.mattermost.com/core/pl/qwn9eiy7j3rkjyruxhcugpogdw) + +**MKV** +`Videos/MKV.mkv` +Expected: View Permalink. Expected depends on the operating system, browser and plugins. +[Permalink](https://pre-release.mattermost.com/core/pl/tszyjkr1cidhxjgiusa4mde3ja) + +**MOV** +`Videos/MOV.mov` +Expected: View Permalink. Expected depends on the operating system, browser and plugins. +[Permalink](https://pre-release.mattermost.com/core/pl/ienzppz5i3f7tbt5jiujn8uuir) + +**MPG** +`Videos/MPG.mpg` +Expected: View Permalink. Expected depends on the operating system, browser and plugins. +[Permalink](https://pre-release.mattermost.com/core/pl/skggdq1hfpritc6c88bi481p5a) + +**Webm** +`Videos/WEBM.webm` +Expected: View Permalink. Expected depends on the operating system, browser and plugins. +[Permalink](https://pre-release.mattermost.com/core/pl/7h8tysuxgfgsxeht3sbn7e4h6y) + +**WMV** +`Videos/WMV.wmv` +Expected: View Permalink. Expected depends on the operating system, browser and plugins. +[Permalink](https://pre-release.mattermost.com/core/pl/kaom7j7uyjra7bzhrre6qwdrbw) + +### Audio + +**MP3** +`Audio/MP3.mp3` +Expected: Generic audio thumbnail & playable preview window +[Permalink](https://pre-release.mattermost.com/core/pl/if4gn8dbrjgx8fmqmkukzefyme) + + +**M4A** +`Audio/M4a.m4a` +Expected: Generic audio thumbnail & playable preview window +[Permalink](https://pre-release.mattermost.com/core/pl/6c7qsw48ybd88bktgeykodsrrc) + +**AAC** +`Audio/AAC.aac` +Expected: View Permalink. Expected depends on the operating system, browser and plugins. +[Permalink](https://pre-release.mattermost.com/core/pl/3naoy5pr5tydbk1m6yo1ast9ny) + +**FLAC** +`Audio/FLAC.flac` +Expected: View Permalink. Expected depends on the operating system, browser and plugins. +[Permalink](https://pre-release.mattermost.com/core/pl/kf4cmy44dfya5efmse7rg43eih) + +**OGG** +`Audio/OGG.ogg` +Expected: View Permalink. Expected depends on the operating system, browser and plugins. +[Permalink](https://pre-release.mattermost.com/core/pl/dezrcpbxapyexe77rjuzkrp63r) + +**WAV** +`Audio/WAV.wav` +Expected: View Permalink. Expected depends on the operating system, browser and plugins. +[Permalink](https://pre-release.mattermost.com/core/pl/pdkxx1udepdnbmi9j8kyas5xbh) + +**WMA** +`Audio/WMA.wma` +Expected: View Permalink. Expected depends on the operating system, browser and plugins. +[Permalink](https://pre-release.mattermost.com/core/pl/756wrmdd57dcig3m4emypp6i1h) diff --git a/doc/developer/tests/test-emoticons.md b/doc/developer/tests/test-emoticons.md index 9ea1afec0..fc2594d9e 100644 --- a/doc/developer/tests/test-emoticons.md +++ b/doc/developer/tests/test-emoticons.md @@ -1,930 +1,22 @@ -# Emoticon Testing +# Emoticon Testing +Verify that all emoticons render. This test should render in three separate messages since it's ~11000 characters. -The below text can be used to check for regressions in changes to text processing. Paste the below text into messages and check that emoticons continue to render after text processing changes. +### Emoticon - Punctuation -``` -# Emoticon - Punctuation +:) :-) ;) ;-) :o :O :-o :-O :] :-] :d :-D x-d x-D :p :-P :@ :( :-( :'( :/ :-/ :s :-s :| :-| :$ :-$ :-x <3 :+1: :-1: -:) :-) -;) ;-) -:o :O -:-o :-O -:] :-] -:d :-D -x-d x-D -:p :-P -:@ -:( :-( -:'( -:* :-* -:/ :-/ -:s :-s -:| :-| -:$ :-$ -:-x -<3 -:+1: -:-1: -``` +### Emoticons - People +:bowtie: :smile: :laughing: :blush: :smiley: :relaxed: :smirk: :heart_eyes: :kissing_heart: :kissing_closed_eyes: :flushed: :relieved: :satisfied: :grin: :wink: :stuck_out_tongue_winking_eye: :stuck_out_tongue_closed_eyes: :grinning: :kissing: :kissing_smiling_eyes: :stuck_out_tongue: :sleeping: :worried: :frowning: :anguished: :open_mouth: :grimacing: :confused: :hushed: :expressionless: :unamused: :sweat_smile: :sweat: :disappointed_relieved: :weary: :pensive: :disappointed: :confounded: :fearful: :cold_sweat: :persevere: :cry: :sob: :joy: :astonished: :scream: :neckbeard: :tired_face: :angry: :rage: :triumph: :sleepy: :yum: :mask: :sunglasses: :dizzy_face: :imp: :smiling_imp: :neutral_face: :no_mouth: :innocent: :alien: :yellow_heart: :blue_heart: :purple_heart: :heart: :green_heart: :broken_heart: :heartbeat: :heartpulse: :two_hearts: :revolving_hearts: :cupid: :sparkling_heart: :sparkles: :star: :star2: :dizzy: :boom: :collision: :anger: :exclamation: :question: :grey_exclamation: :grey_question: :zzz: :dash: :sweat_drops: :notes: :musical_note: :fire: :hankey: :poop: :shit: :+1: :thumbsup: :-1: :thumbsdown: :ok_hand: :punch: :facepunch: :fist: :v: :wave: :hand: :raised_hand: :open_hands: :point_up: :point_down: :point_left: :point_right: :raised_hands: :pray: :point_up_2: :clap: :muscle: :metal: :fu: :runner: :running: :couple: :family: :two_men_holding_hands: :two_women_holding_hands: :dancer: :dancers: :ok_woman: :no_good: :information_desk_person: :raising_hand: :bride_with_veil: :person_with_pouting_face: :person_frowning: :bow: :couplekiss: :couple_with_heart: :massage: :haircut: :nail_care: :boy: :girl: :woman: :man: :baby: :older_woman: :older_man: :person_with_blond_hair: :man_with_gua_pi_mao: :man_with_turban: :construction_worker: :cop: :angel: :princess: :smiley_cat: :smile_cat: :heart_eyes_cat: :kissing_cat: :smirk_cat: :scream_cat: :crying_cat_face: :joy_cat: :pouting_cat: :japanese_ogre: :japanese_goblin: :see_no_evil: :hear_no_evil: :speak_no_evil: :guardsman: :skull: :feet: :lips: :kiss: :droplet: :ear: :eyes: :nose: :tongue: :love_letter: :bust_in_silhouette: :busts_in_silhouette: :speech_balloon: :thought_balloon: :feelsgood: :finnadie: :goberserk: :godmode: :hurtrealbad: :rage1: :rage2: :rage3: :rage4: :suspect: :trollface: -``` -# Emoticons - People +### Emoticons - Nature +:sunny: :umbrella: :cloud: :snowflake: :snowman: :zap: :cyclone: :foggy: :ocean: :cat: :dog: :mouse: :hamster: :rabbit: :wolf: :frog: :tiger: :koala: :bear: :pig: :pig_nose: :cow: :boar: :monkey_face: :monkey: :horse: :racehorse: :camel: :sheep: :elephant: :panda_face: :snake: :bird: :baby_chick: :hatched_chick: :hatching_chick: :chicken: :penguin: :turtle: :bug: :honeybee: :ant: :beetle: :snail: :octopus: :tropical_fish: :fish: :whale: :whale2: :dolphin: :cow2: :ram: :rat: :water_buffalo: :tiger2: :rabbit2: :dragon: :goat: :rooster: :dog2: :pig2: :mouse2: :ox: :dragon_face: :blowfish: :crocodile: :dromedary_camel: :leopard: :cat2: :poodle: :paw_prints: :bouquet: :cherry_blossom: :tulip: :four_leaf_clover: :rose: :sunflower: :hibiscus: :maple_leaf: :leaves: :fallen_leaf: :herb: :mushroom: :cactus: :palm_tree: :evergreen_tree: :deciduous_tree: :chestnut: :seedling: :blossom: :ear_of_rice: :shell: :globe_with_meridians: :sun_with_face: :full_moon_with_face: :new_moon_with_face: :new_moon: :waxing_crescent_moon: :first_quarter_moon: :waxing_gibbous_moon: :full_moon: :waning_gibbous_moon: :last_quarter_moon: :waning_crescent_moon: :last_quarter_moon_with_face: :first_quarter_moon_with_face: :crescent_moon: :earth_africa: :earth_americas: :earth_asia: :volcano: :milky_way: :partly_sunny: :octocat: :squirrel: -:bowtie: -:smile: -:laughing: -:blush: -:smiley: -:relaxed: -:smirk: -:heart_eyes: -:kissing_heart: -:kissing_closed_eyes: -:flushed: -:relieved: -:satisfied: -:grin: -:wink: -:stuck_out_tongue_winking_eye: -:stuck_out_tongue_closed_eyes: -:grinning: -:kissing: -:kissing_smiling_eyes: -:stuck_out_tongue: -:sleeping: -:worried: -:frowning: -:anguished: -:open_mouth: -:grimacing: -:confused: -:hushed: -:expressionless: -:unamused: -:sweat_smile: -:sweat: -:disappointed_relieved: -:weary: -:pensive: -:disappointed: -:confounded: -:fearful: -:cold_sweat: -:persevere: -:cry: -:sob: -:joy: -:astonished: -:scream: -:neckbeard: -:tired_face: -:angry: -:rage: -:triumph: -:sleepy: -:yum: -:mask: -:sunglasses: -:dizzy_face: -:imp: -:smiling_imp: -:neutral_face: -:no_mouth: -:innocent: -:alien: -:yellow_heart: -:blue_heart: -:purple_heart: -:heart: -:green_heart: -:broken_heart: -:heartbeat: -:heartpulse: -:two_hearts: -:revolving_hearts: -:cupid: -:sparkling_heart: -:sparkles: -:star: -:star2: -:dizzy: -:boom: -:collision: -:anger: -:exclamation: -:question: -:grey_exclamation: -:grey_question: -:zzz: -:dash: -:sweat_drops: -:notes: -:musical_note: -:fire: -:hankey: -:poop: -:shit: -:+1: -:thumbsup: -:-1: -:thumbsdown: -:ok_hand: -:punch: -:facepunch: -:fist: -:v: -:wave: -:hand: -:raised_hand: -:open_hands: -:point_up: -:point_down: -:point_left: -:point_right: -:raised_hands: -:pray: -:point_up_2: -:clap: -:muscle: -:metal: -:fu: -:runner: -:running: -:couple: -:family: -:two_men_holding_hands: -:two_women_holding_hands: -:dancer: -:dancers: -:ok_woman: -:no_good: -:information_desk_person: -:raising_hand: -:bride_with_veil: -:person_with_pouting_face: -:person_frowning: -:bow: -:couplekiss: -:couple_with_heart: -:massage: -:haircut: -:nail_care: -:boy: -:girl: -:woman: -:man: -:baby: -:older_woman: -:older_man: -:person_with_blond_hair: -:man_with_gua_pi_mao: -:man_with_turban: -:construction_worker: -:cop: -:angel: -:princess: -:smiley_cat: -:smile_cat: -:heart_eyes_cat: -:kissing_cat: -:smirk_cat: -:scream_cat: -:crying_cat_face: -:joy_cat: -:pouting_cat: -:japanese_ogre: -:japanese_goblin: -:see_no_evil: -:hear_no_evil: -:speak_no_evil: -:guardsman: -:skull: -:feet: -:lips: -:kiss: -:droplet: -:ear: -:eyes: -:nose: -:tongue: -:love_letter: -:bust_in_silhouette: -:busts_in_silhouette: -:speech_balloon: -:thought_balloon: -:feelsgood: -:finnadie: -:goberserk: -:godmode: -:hurtrealbad: -:rage1: -:rage2: -:rage3: -:rage4: -:suspect: -:trollface: -``` +### Emoticons - Objects +:bamboo: :gift_heart: :dolls: :school_satchel: :mortar_board: :flags: :fireworks: :sparkler: :wind_chime: :rice_scene: :jack_o_lantern: :ghost: :santa: :christmas_tree: :gift: :bell: :no_bell: :tanabata_tree: :tada: :confetti_ball: :balloon: :crystal_ball: :cd: :dvd: :floppy_disk: :camera: :video_camera: :movie_camera: :computer: :tv: :iphone: :phone: :telephone: :telephone_receiver: :pager: :fax: :minidisc: :vhs: :sound: :speaker: :mute: :loudspeaker: :mega: :hourglass: :hourglass_flowing_sand: :alarm_clock: :watch: :radio: :satellite: :loop: :mag: :mag_right: :unlock: :lock: :lock_with_ink_pen: :closed_lock_with_key: :key: :bulb: :flashlight: :high_brightness: :low_brightness: :electric_plug: :battery: :calling: :email: :mailbox: :postbox: :bath: :bathtub: :shower: :toilet: :wrench: :nut_and_bolt: :hammer: :seat: :moneybag: :yen: :dollar: :pound: :euro: :credit_card: :money_with_wings: :e-mail: :inbox_tray: :outbox_tray: :envelope: :incoming_envelope: :postal_horn: :mailbox_closed: :mailbox_with_mail: :mailbox_with_no_mail: :package: :door: :smoking: :bomb: :gun: :hocho: :pill: :syringe: :page_facing_up: :page_with_curl: :bookmark_tabs: :bar_chart: :chart_with_upwards_trend: :chart_with_downwards_trend: :scroll: :clipboard: :calendar: :date: :card_index: :file_folder: :open_file_folder: :scissors: :pushpin: :paperclip: :black_nib: :pencil2: :straight_ruler: :triangular_ruler: :closed_book: :green_book: :blue_book: :orange_book: :notebook: :notebook_with_decorative_cover: :ledger: :books: :bookmark: :name_badge: :microscope: :telescope: :newspaper: :football: :basketball: :soccer: :baseball: :tennis: :8ball: :8ball: :rugby_football: :bowling: :golf: :mountain_bicyclist: :bicyclist: :horse_racing: :snowboarder: :swimmer: :surfer: :ski: :spades: :hearts: :clubs: :diamonds: :gem: :ring: :trophy: :musical_score: :musical_keyboard: :violin: :space_invader: :video_game: :black_joker: :flower_playing_cards: :game_die: :dart: :mahjong: :clapper: :memo: :pencil: :book: :art: :microphone: :headphones: :trumpet: :saxophone: :guitar: :shoe: :sandal: :high_heel: :lipstick: :boot: :shirt: :tshirt: :necktie: :womans_clothes: :dress: :running_shirt_with_sash: :jeans: :kimono: :bikini: :ribbon: :tophat: :crown: :womans_hat: :mans_shoe: :closed_umbrella: :briefcase: :handbag: :pouch: :purse: :eyeglasses: :fishing_pole_and_fish: :coffee: :tea: :sake: :baby_bottle: :beer: :beers: :cocktail: :tropical_drink: :wine_glass: :fork_and_knife: :pizza: :hamburger: :fries: :poultry_leg: :meat_on_bone: :spaghetti: :curry: :fried_shrimp: :bento: :sushi: :fish_cake: :rice_ball: :rice_cracker: :rice: :ramen: :stew: :oden: :dango: :egg: :bread: :doughnut: :custard: :icecream: :ice_cream: :shaved_ice: :birthday: :cake: :cookie: :chocolate_bar: :candy: :lollipop: :honey_pot: :apple: :green_apple: :tangerine: :lemon: :cherries: :grapes: :watermelon: :strawberry: :peach: :melon: :banana: :pear: :pineapple: :sweet_potato: :eggplant: :tomato: :corn: -``` -# Emoticons - Nature +### Emoticons - Places -:sunny: -:umbrella: -:cloud: -:snowflake: -:snowman: -:zap: -:cyclone: -:foggy: -:ocean: -:cat: -:dog: -:mouse: -:hamster: -:rabbit: -:wolf: -:frog: -:tiger: -:koala: -:bear: -:pig: -:pig_nose: -:cow: -:boar: -:monkey_face: -:monkey: -:horse: -:racehorse: -:camel: -:sheep: -:elephant: -:panda_face: -:snake: -:bird: -:baby_chick: -:hatched_chick: -:hatching_chick: -:chicken: -:penguin: -:turtle: -:bug: -:honeybee: -:ant: -:beetle: -:snail: -:octopus: -:tropical_fish: -:fish: -:whale: -:whale2: -:dolphin: -:cow2: -:ram: -:rat: -:water_buffalo: -:tiger2: -:rabbit2: -:dragon: -:goat: -:rooster: -:dog2: -:pig2: -:mouse2: -:ox: -:dragon_face: -:blowfish: -:crocodile: -:dromedary_camel: -:leopard: -:cat2: -:poodle: -:paw_prints: -:bouquet: -:cherry_blossom: -:tulip: -:four_leaf_clover: -:rose: -:sunflower: -:hibiscus: -:maple_leaf: -:leaves: -:fallen_leaf: -:herb: -:mushroom: -:cactus: -:palm_tree: -:evergreen_tree: -:deciduous_tree: -:chestnut: -:seedling: -:blossom: -:ear_of_rice: -:shell: -:globe_with_meridians: -:sun_with_face: -:full_moon_with_face: -:new_moon_with_face: -:new_moon: -:waxing_crescent_moon: -:first_quarter_moon: -:waxing_gibbous_moon: -:full_moon: -:waning_gibbous_moon: -:last_quarter_moon: -:waning_crescent_moon: -:last_quarter_moon_with_face: -:first_quarter_moon_with_face: -:crescent_moon: -:earth_africa: -:earth_americas: -:earth_asia: -:volcano: -:milky_way: -:partly_sunny: -:octocat: -:squirrel: -``` +:house: :house_with_garden: :school: :office: :post_office: :hospital: :bank: :convenience_store: :love_hotel: :hotel: :wedding: :church: :department_store: :european_post_office: :city_sunrise: :city_sunset: :japanese_castle: :european_castle: :tent: :factory: :tokyo_tower: :japan: :mount_fuji: :sunrise_over_mountains: :sunrise: :stars: :statue_of_liberty: :bridge_at_night: :carousel_horse: :rainbow: :ferris_wheel: :fountain: :roller_coaster: :ship: :speedboat: :boat: :sailboat: :rowboat: :anchor: :rocket: :airplane: :helicopter: :steam_locomotive: :tram: :mountain_railway: :bike: :aerial_tramway: :suspension_railway: :mountain_cableway: :tractor: :blue_car: :oncoming_automobile: :car: :red_car: :taxi: :oncoming_taxi: :articulated_lorry: :bus: :oncoming_bus: :rotating_light: :police_car: :oncoming_police_car: :fire_engine: :ambulance: :minibus: :truck: :train: :station: :train2: :bullettrain_front: :bullettrain_side: :light_rail: :monorail: :railway_car: :trolleybus: :ticket: :fuelpump: :vertical_traffic_light: :traffic_light: :warning: :construction: :beginner: :atm: :slot_machine: :busstop: :barber: :hotsprings: :checkered_flag: :crossed_flags: :izakaya_lantern: :moyai: :circus_tent: :performing_arts: :round_pushpin: :triangular_flag_on_post: :jp: :kr: :cn: :us: :fr: :es: :it: :ru: :gb: :uk: :de: -``` -# Emoticons - Objects - -:bamboo: -:gift_heart: -:dolls: -:school_satchel: -:mortar_board: -:flags: -:fireworks: -:sparkler: -:wind_chime: -:rice_scene: -:jack_o_lantern: -:ghost: -:santa: -:christmas_tree: -:gift: -:bell: -:no_bell: -:tanabata_tree: -:tada: -:confetti_ball: -:balloon: -:crystal_ball: -:cd: -:dvd: -:floppy_disk: -:camera: -:video_camera: -:movie_camera: -:computer: -:tv: -:iphone: -:phone: -:telephone: -:telephone_receiver: -:pager: -:fax: -:minidisc: -:vhs: -:sound: -:speaker: -:mute: -:loudspeaker: -:mega: -:hourglass: -:hourglass_flowing_sand: -:alarm_clock: -:watch: -:radio: -:satellite: -:loop: -:mag: -:mag_right: -:unlock: -:lock: -:lock_with_ink_pen: -:closed_lock_with_key: -:key: -:bulb: -:flashlight: -:high_brightness: -:low_brightness: -:electric_plug: -:battery: -:calling: -:email: -:mailbox: -:postbox: -:bath: -:bathtub: -:shower: -:toilet: -:wrench: -:nut_and_bolt: -:hammer: -:seat: -:moneybag: -:yen: -:dollar: -:pound: -:euro: -:credit_card: -:money_with_wings: -:e-mail: -:inbox_tray: -:outbox_tray: -:envelope: -:incoming_envelope: -:postal_horn: -:mailbox_closed: -:mailbox_with_mail: -:mailbox_with_no_mail: -:package: -:door: -:smoking: -:bomb: -:gun: -:hocho: -:pill: -:syringe: -:page_facing_up: -:page_with_curl: -:bookmark_tabs: -:bar_chart: -:chart_with_upwards_trend: -:chart_with_downwards_trend: -:scroll: -:clipboard: -:calendar: -:date: -:card_index: -:file_folder: -:open_file_folder: -:scissors: -:pushpin: -:paperclip: -:black_nib: -:pencil2: -:straight_ruler: -:triangular_ruler: -:closed_book: -:green_book: -:blue_book: -:orange_book: -:notebook: -:notebook_with_decorative_cover: -:ledger: -:books: -:bookmark: -:name_badge: -:microscope: -:telescope: -:newspaper: -:football: -:basketball: -:soccer: -:baseball: -:tennis: -:8ball: -:8ball: -:rugby_football: -:bowling: -:golf: -:mountain_bicyclist: -:bicyclist: -:horse_racing: -:snowboarder: -:swimmer: -:surfer: -:ski: -:spades: -:hearts: -:clubs: -:diamonds: -:gem: -:ring: -:trophy: -:musical_score: -:musical_keyboard: -:violin: -:space_invader: -:video_game: -:black_joker: -:flower_playing_cards: -:game_die: -:dart: -:mahjong: -:clapper: -:memo: -:pencil: -:book: -:art: -:microphone: -:headphones: -:trumpet: -:saxophone: -:guitar: -:shoe: -:sandal: -:high_heel: -:lipstick: -:boot: -:shirt: -:tshirt: -:necktie: -:womans_clothes: -:dress: -:running_shirt_with_sash: -:jeans: -:kimono: -:bikini: -:ribbon: -:tophat: -:crown: -:womans_hat: -:mans_shoe: -:closed_umbrella: -:briefcase: -:handbag: -:pouch: -:purse: -:eyeglasses: -:fishing_pole_and_fish: -:coffee: -:tea: -:sake: -:baby_bottle: -:beer: -:beers: -:cocktail: -:tropical_drink: -:wine_glass: -:fork_and_knife: -:pizza: -:hamburger: -:fries: -:poultry_leg: -:meat_on_bone: -:spaghetti: -:curry: -:fried_shrimp: -:bento: -:sushi: -:fish_cake: -:rice_ball: -:rice_cracker: -:rice: -:ramen: -:stew: -:oden: -:dango: -:egg: -:bread: -:doughnut: -:custard: -:icecream: -:ice_cream: -:shaved_ice: -:birthday: -:cake: -:cookie: -:chocolate_bar: -:candy: -:lollipop: -:honey_pot: -:apple: -:green_apple: -:tangerine: -:lemon: -:cherries: -:grapes: -:watermelon: -:strawberry: -:peach: -:melon: -:banana: -:pear: -:pineapple: -:sweet_potato: -:eggplant: -:tomato: -:corn: -``` - -``` -# Emoticons - Places - -:house: -:house_with_garden: -:school: -:office: -:post_office: -:hospital: -:bank: -:convenience_store: -:love_hotel: -:hotel: -:wedding: -:church: -:department_store: -:european_post_office: -:city_sunrise: -:city_sunset: -:japanese_castle: -:european_castle: -:tent: -:factory: -:tokyo_tower: -:japan: -:mount_fuji: -:sunrise_over_mountains: -:sunrise: -:stars: -:statue_of_liberty: -:bridge_at_night: -:carousel_horse: -:rainbow: -:ferris_wheel: -:fountain: -:roller_coaster: -:ship: -:speedboat: -:boat: -:sailboat: -:rowboat: -:anchor: -:rocket: -:airplane: -:helicopter: -:steam_locomotive: -:tram: -:mountain_railway: -:bike: -:aerial_tramway: -:suspension_railway: -:mountain_cableway: -:tractor: -:blue_car: -:oncoming_automobile: -:car: -:red_car: -:taxi: -:oncoming_taxi: -:articulated_lorry: -:bus: -:oncoming_bus: -:rotating_light: -:police_car: -:oncoming_police_car: -:fire_engine: -:ambulance: -:minibus: -:truck: -:train: -:station: -:train2: -:bullettrain_front: -:bullettrain_side: -:light_rail: -:monorail: -:railway_car: -:trolleybus: -:ticket: -:fuelpump: -:vertical_traffic_light: -:traffic_light: -:warning: -:construction: -:beginner: -:atm: -:slot_machine: -:busstop: -:barber: -:hotsprings: -:checkered_flag: -:crossed_flags: -:izakaya_lantern: -:moyai: -:circus_tent: -:performing_arts: -:round_pushpin: -:triangular_flag_on_post: -:jp: -:kr: -:cn: -:us: -:fr: -:es: -:it: -:ru: -:gb: -:uk: -:de: -``` - -``` -# Emoticons - Symbols - -:one: -:two: -:three: -:four: -:five: -:six: -:seven: -:eight: -:nine: -:keycap_ten: -:1234: -:zero: -:hash: -:symbols: -:arrow_backward: -:arrow_down: -:arrow_forward: -:arrow_left: -:capital_abcd: -:abcd: -:abc: -:arrow_lower_left: -:arrow_lower_right: -:arrow_right: -:arrow_up: -:arrow_upper_left: -:arrow_upper_right: -:arrow_double_down: -:arrow_double_up: -:arrow_down_small: -:arrow_heading_down: -:arrow_heading_up: -:leftwards_arrow_with_hook: -:arrow_right_hook: -:left_right_arrow: -:arrow_up_down: -:arrow_up_small: -:arrows_clockwise: -:arrows_counterclockwise: -:rewind: -:fast_forward: -:information_source: -:ok: -:twisted_rightwards_arrows: -:repeat: -:repeat_one: -:new: -:top: -:up: -:cool: -:free: -:ng: -:cinema: -:koko: -:signal_strength: -:u5272: -:u5408: -:u55b6: -:u6307: -:u6708: -:u6709: -:u6e80: -:u7121: -:u7533: -:u7a7a: -:u7981: -:sa: -:restroom: -:mens: -:womens: -:baby_symbol: -:no_smoking: -:parking: -:wheelchair: -:metro: -:baggage_claim: -:accept: -:wc: -:potable_water: -:put_litter_in_its_place: -:secret: -:congratulations: -:m: -:passport_control: -:left_luggage: -:customs: -:ideograph_advantage: -:cl: -:sos: -:id: -:no_entry_sign: -:underage: -:no_mobile_phones: -:do_not_litter: -:non-potable_water: -:no_bicycles: -:no_pedestrians: -:children_crossing: -:no_entry: -:eight_spoked_asterisk: -:sparkle: -:eight_pointed_black_star: -:heart_decoration: -:vs: -:vibration_mode: -:mobile_phone_off: -:chart: -:currency_exchange: -:aries: -:taurus: -:gemini: -:cancer: -:leo: -:virgo: -:libra: -:scorpius: -:sagittarius: -:capricorn: -:aquarius: -:pisces: -:ophiuchus: -:six_pointed_star: -:negative_squared_cross_mark: -:a: -:b: -:ab: -:o2: -:diamond_shape_with_a_dot_inside: -:recycle: -:end: -:back: -:on: -:soon: -:clock1: -:clock130: -:clock10: -:clock1030: -:clock11: -:clock1130: -:clock12: -:clock1230: -:clock2: -:clock230: -:clock3: -:clock330: -:clock4: -:clock430: -:clock5: -:clock530: -:clock6: -:clock630: -:clock7: -:clock730: -:clock8: -:clock830: -:clock9: -:clock930: -:heavy_dollar_sign: -:copyright: -:registered: -:tm: -:x: -:heavy_exclamation_mark: -:bangbang: -:interrobang: -:o: -:heavy_multiplication_x: -:heavy_plus_sign: -:heavy_minus_sign: -:heavy_division_sign: -:white_flower: -:100: -:heavy_check_mark: -:ballot_box_with_check: -:radio_button: -:link: -:curly_loop: -:wavy_dash: -:part_alternation_mark: -:trident: -:black_small_square: -:white_small_square: -:black_medium_small_square: -:white_medium_small_square: -:black_medium_square: -:white_medium_square: -:black_large_square: -:white_large_square: -:white_check_mark: -:black_square_button: -:white_square_button: -:black_circle: -:white_circle: -:red_circle: -:large_blue_circle: -:large_blue_diamond: -:large_orange_diamond: -:small_blue_diamond: -:small_orange_diamond: -:small_red_triangle: -:small_red_triangle_down: -:shipit: -``` +### Emoticons - Symbols +:one: :two: :three: :four: :five: :six: :seven: :eight: :nine: :keycap_ten: :1234: :zero: :hash: :symbols: :arrow_backward: :arrow_down: :arrow_forward: :arrow_left: :capital_abcd: :abcd: :abc: :arrow_lower_left: :arrow_lower_right: :arrow_right: :arrow_up: :arrow_upper_left: :arrow_upper_right: :arrow_double_down: :arrow_double_up: :arrow_down_small: :arrow_heading_down: :arrow_heading_up: :leftwards_arrow_with_hook: :arrow_right_hook: :left_right_arrow: :arrow_up_down: :arrow_up_small: :arrows_clockwise: :arrows_counterclockwise: :rewind: :fast_forward: :information_source: :ok: :twisted_rightwards_arrows: :repeat: :repeat_one: :new: :top: :up: :cool: :free: :ng: :cinema: :koko: :signal_strength: :u5272: :u5408: :u55b6: :u6307: :u6708: :u6709: :u6e80: :u7121: :u7533: :u7a7a: :u7981: :sa: :restroom: :mens: :womens: :baby_symbol: :no_smoking: :parking: :wheelchair: :metro: :baggage_claim: :accept: :wc: :potable_water: :put_litter_in_its_place: :secret: :congratulations: :m: :passport_control: :left_luggage: :customs: :ideograph_advantage: :cl: :sos: :id: :no_entry_sign: :underage: :no_mobile_phones: :do_not_litter: :non-potable_water: :no_bicycles: :no_pedestrians: :children_crossing: :no_entry: :eight_spoked_asterisk: :sparkle: :eight_pointed_black_star: :heart_decoration: :vs: :vibration_mode: :mobile_phone_off: :chart: :currency_exchange: :aries: :taurus: :gemini: :cancer: :leo: :virgo: :libra: :scorpius: :sagittarius: :capricorn: :aquarius: :pisces: :ophiuchus: :six_pointed_star: :negative_squared_cross_mark: :a: :b: :ab: :o2: :diamond_shape_with_a_dot_inside: :recycle: :end: :back: :on: :soon: :clock1: :clock130: :clock10: :clock1030: :clock11: :clock1130: :clock12: :clock1230: :clock2: :clock230: :clock3: :clock330: :clock4: :clock430: :clock5: :clock530: :clock6: :clock630: :clock7: :clock730: :clock8: :clock830: :clock9: :clock930: :heavy_dollar_sign: :copyright: :registered: :tm: :x: :heavy_exclamation_mark: :bangbang: :interrobang: :o: :heavy_multiplication_x: :heavy_plus_sign: :heavy_minus_sign: :heavy_division_sign: :white_flower: :100: :heavy_check_mark: :ballot_box_with_check: :radio_button: :link: :curly_loop: :wavy_dash: :part_alternation_mark: :trident: :black_small_square: :white_small_square: :black_medium_small_square: :white_medium_small_square: :black_medium_square: :white_medium_square: :black_large_square: :white_large_square: :white_check_mark: :black_square_button: :white_square_button: :black_circle: :white_circle: :red_circle: :large_blue_circle: :large_blue_diamond: :large_orange_diamond: :small_blue_diamond: :small_orange_diamond: :small_red_triangle: :small_red_triangle_down: :shipit: diff --git a/doc/developer/tests/test-link-preview.md b/doc/developer/tests/test-link-preview.md new file mode 100644 index 000000000..4061bda35 --- /dev/null +++ b/doc/developer/tests/test-link-preview.md @@ -0,0 +1,23 @@ +# Link Preview Tests + +Link previews should embed previews of the contents of a hyperlink from a message or comment in the center channel directly below the message or comment. + +Post location variation: + +1. Post as message in center channel with RHS closed (link preview should render under message) +2. Post as message in center channel with RHS open (link preview should render under message) +3. Post as comment in RHS (link preview should not render) +4. View comment in center channel with RHS closed (link preview should render under message) +5. View comment in center channel with RHS open (link preview should render under message) +6. Search for post in RHS with link + +Post the following links one per message in the above variations: + +Twitter Link Preview: +https://twitter.com/mattermosthq/status/664928489078820865 + +Vine: +https://vine.co/v/eDeVgbFrt9L + +Wikipedia +https://en.wikipedia.org/wiki/Princess_Bubblegum diff --git a/doc/developer/tests/test-links.md b/doc/developer/tests/test-links.md new file mode 100644 index 000000000..91e3e9403 --- /dev/null +++ b/doc/developer/tests/test-links.md @@ -0,0 +1,70 @@ +# Link Testing + +Links in Mattermosts should render as specified below. + +#### These strings should auto-link: + +http://example.com +https://example.com +www.example.com +www.example.com/index +www.example.com/index.html +www.example.com/index/sub +www.example.com/index?params=1 +www.example.com/index?params=1&other=2 +www.example.com/index?params=1;other=2 +http://example.com:8065 +http://www.example.com/_/page +www.example.com/_/page +https://en.wikipedia.org/wiki/🬠+https://en.wikipedia.org/wiki/Rendering_(computer_graphics) +http://127.0.0.1 +http://192.168.1.1:4040 +http://[::1]:80 +http://[::1]:8065 +https://[::1]:80 +http://[2001:0:5ef5:79fb:303a:62d5:3312:ff42]:80 +http://[2001:0:5ef5:79fb:303a:62d5:3312:ff42]:8065 +https://[2001:0:5ef5:79fb:303a:62d5:3312:ff42]:443 +http://username:password@example.com +http://username:password@127.0.0.1 +http://username:password@[2001:0:5ef5:79fb:303a:62d5:3312:ff42]:80 +test@example.com + +#### These strings should not auto-link: + +example.com +readme.md +http:// +@example.com +./make-compiled-client.sh +test.:test +https://<your-mattermost-url>/signup/gitlab +https://your-mattermost-url>/signup/gitlab + +#### Only the links within these sentences should auto-link: + +(http://example.com) +(test@example.com) +This is a sentence with a http://example.com in it. +This is a sentence with a [link](http://example.com) in it. +This is a sentence with a http://example.com/_/underscore in it. +This is a sentence with a link (http://example.com) in it. +This is a sentence with a (https://en.wikipedia.org/wiki/Rendering_(computer_graphics)) in it. +This is a sentence with a http://192.168.1.1:4040 in it. +This is a sentence with a https://[::1]:80 in it. +This is a link to http://example.com. + +#### These links should auto-link to the specified location: + +[example link](example.com) links to `http://example.com` +[example.com](example.com) links to `http://example.com` +[example.com/other](example.com) links to `http://example.com` +[example.com/other_link](example.com/example) links to `http://example.com/example` +www.example.com links to `http://www.example.com` +https://example.com links to `https://example.com` and not `http://example.com` +https://en.wikipedia.org/wiki/🬠links to the Wikipedia article on dolphins +https://en.wikipedia.org/wiki/URLs#Syntax links to the Syntax section of the Wikipedia article on URLs +test@example.com links to `mailto:test@example.com` +[email link](mailto:test@example.com) links to `mailto:test@example.com` and not `http://mailto:test@example.com` +[other link](ts3server://example.com) links to `ts3server://example.com` and not `http://ts3server://example.com` diff --git a/doc/developer/tests/test-markdown-basics.md b/doc/developer/tests/test-markdown-basics.md new file mode 100644 index 000000000..7a46adeb0 --- /dev/null +++ b/doc/developer/tests/test-markdown-basics.md @@ -0,0 +1,139 @@ +# Basic Markdown Testing +Tests for text style, code blocks, in-line code and images, lines, block quotes, and headings. + +### Text Style + +**The following text should render as:** +_Italics_ +*Italics* +**Bold** +***Bold-italics*** +**_Bold-italics_** +~~Strikethrough~~ + +This sentence contains **bold**, _italic_, ***bold-italic***, and ~~stikethrough~~ text. + +**The following should render as normal text:** +Normal Text_ +_Normal Text +_Normal Text* + +### Code Blocks + +``` +This text should render in a code block +``` + +**The following markdown should not render:** +``` +_Italics_ +*Italics* +**Bold** +***Bold-italics*** +**Bold-italics_** +~~Strikethrough~~ +:) :-) ;) ;-) :o :O :-o :-O +:bamboo: :gift_heart: :dolls: :school_satchel: :mortar_board: +# Heading 1 +## Heading 2 +### Heading 3 +#### Heading 4 +##### Heading 5 +###### Heading 6 +> Block Quote +- List + - List Sub-item +[Link](http://i.giphy.com/xNrM4cGJ8u3ao.gif) +[![Github](https://assets-cdn.github.com/favicon.ico)](https://github.com/mattermost/platform) +| Left-Aligned Text | Center Aligned Text | Right Aligned Text | +| :------------ |:---------------:| -----:| +| Left column 1 | this text | $100 | +``` + +**The following links should not auto-link or generate previews:** +``` +GIF: http://i.giphy.com/xNrM4cGJ8u3ao.gif +Website: https://en.wikipedia.org/wiki/Dolphin +``` + +**The following should appear as a carriage return separating two lines of text:** +``` +Line #1 followed by a blank line + +Line #2 following a blank line +``` + +### In-line Code + +The word `monospace` should render as in-line code. + +The following markdown in-line code should not render: +`_Italics_`, `*Italics*`, `**Bold**`, `***Bold-italics***`, `**Bold-italics_**`, `~~Strikethrough~~`, `:)` , `:-)` , `;)` , `:-O` , `:bamboo:` , `:gift_heart:` , `:dolls:` , `# Heading 1`, `## Heading 2`, `### Heading 3`, `#### Heading 4`, `##### Heading 5`, `###### Heading 6` + +This GIF link should not preview: `http://i.giphy.com/xNrM4cGJ8u3ao.gif` +This link should not auto-link: `https://en.wikipedia.org/wiki/Dolphin` + +This sentence with ` +in-line code +` should appear on one line. + +### In-line Images + +Mattermost/platform build status: [![Build Status](https://travis-ci.org/mattermost/platform.svg?branch=master)](https://travis-ci.org/mattermost/platform) + +GitHub favicon: ![Github](https://assets-cdn.github.com/favicon.ico) + +GIF Image: +![gif](http://i.giphy.com/xNrM4cGJ8u3ao.gif) + +4K Wallpaper Image (11Mb): +![4K Image](http://4kwallpaper.xyz/wallpaper/Large-Galaxy-Lightyears-Space-4K-wallpaper.png) + +Panorama Image: +![Pano](http://amardeepphotography.com/wp-content/uploads/2012/11/Untitled_Panorama6small.jpg) + +Tall Portrait Image: +![Portrait](http://www.maniacworld.com/now-this-is-a-tall-building.jpg) + + +### Lines + +Three lines should render with text between them: + +Text above line + +*** + +Text between lines + +--- + +Text between lines +___ + +Text below line + +### Block Quotes + +>This text should render in a block quote. + +**The following markdown should render within the block quote:** +> #### Heading 4 +> _Italics_, *Italics*, **Bold**, ***Bold-italics***, **Bold-italics_**, ~~Strikethrough~~ +> :) :-) ;) :-O :bamboo: :gift_heart: :dolls: + +**The following text should render in two block quotes separated by one line of text:** +> Block quote 1 + +Text between block quotes + +> Block quote 2 + +### Headings + +# Heading 1 font size +## Heading 2 font size +### Heading 3 font size +#### Heading 4 font size +##### Heading 5 font size +###### Heading 6 font size diff --git a/doc/developer/tests/test-markdown-lists.md b/doc/developer/tests/test-markdown-lists.md new file mode 100644 index 000000000..d5bbd82ac --- /dev/null +++ b/doc/developer/tests/test-markdown-lists.md @@ -0,0 +1,231 @@ +# Markdown List Testing +Verify that all list types render as expected. + +### Single-item Ordered List + +**Expected:** +``` +7. Single Item +``` + +**Actual:** +7. Single Item + +### Multi-item Ordered List + +**Expected:** +``` +1. One +2. Two +3. Three +``` + +**Actual:** + +3. One +2. Two +1. Three + +### Nested Ordered List + +**Expected:** +``` +1. Alpha + 1. Bravo +2. Charlie +3. Delta + 1. Echo + 2. Foxtrot +``` + +**Actual:** + +1. Alpha + 1. Bravo +1. Charlie +1. Delta + 1. Echo + 1. Foxtrot + +### Single-item Unordered List + +**Expected:** +``` +• Single Item +``` + +**Actual:** +* Single Item + +### Multi-item Unordered List + +**Expected:** +``` +• One +• Two +• Three +``` + +**Actual:** +* One +- Two ++ Three + +### Nested Unordered List + +**Expected:** +``` +• Alpha + • Bravo +• Charlie +• Delta + • Echo + • Foxtrot +``` + +**Actual:** ++ Alpha + * Bravo +- Charlie +* Delta + + Echo + - Foxtrot + +### Mixed List Starting Ordered + +**Expected:** +``` +1. One +2. Two +3. Three +``` + +**Actual:** + +1. One ++ Two +- Three + +### Mixed List Starting Unordered + +**Expected:** +``` +• Monday +• Tuesday +• Wednesday +``` + +**Actual:** ++ Monday +1. Tuesday +* Wednesday + +### Nested Mixed List + +**Expected:** +``` +• Alpha + 1. Bravo + • Charlie + • Delta +• Echo +• Foxtrot + • Golf + 1. Hotel + • India + 1. Juliet + 2. Kilo + • Lima +• Mike + 1. November + 1. Oscar + 1. Papa +``` + +**Actual:** +- Alpha + 1. Bravo + * Charlie + + Delta +- Echo +* Foxtrot + + Golf + 1. Hotel + - India + 2. Juliet + 3. Kilo + * Lima +1. Mike + 1. November + 4. Oscar + 5. Papa + +### Ordered Lists Separated by Carriage Returns + +**Expected:** +``` +1. One + • Two + +1. One +2. Two +``` + +**Actual:** + +1. One + - Two + + +1. One +2. Two + +### Carriage Return and New Line After a List + +**Expected:** +``` +1. One + - Two +This text should be on a new line. +``` + +**Actual:** + +1. One + - Two +This text should be on a new line. + +### Task Lists + +**Expected:** +``` +[ ] One + [ ] Subpoint one + - Normal Bullet +[ ] Two +[x] Completed item +``` + +**Actual:** + +- [ ] One + - [ ] Subpoint one + - Normal Bullet +- [ ] Two +- [x] Completed item + +### Numbered Task Lists + +**Expected:** +``` +1. [ ] One +2. [ ] Two +3. [x] Completed item +``` + +**Actual:** + +1. [ ] One +2. [ ] Two +3. [x] Completed item + diff --git a/doc/developer/tests/test-mentions.md b/doc/developer/tests/test-mentions.md new file mode 100644 index 000000000..99a47e337 --- /dev/null +++ b/doc/developer/tests/test-mentions.md @@ -0,0 +1,13 @@ +# Mentions Testing + +To test the following mention functional: + +1. Add a user 'alice' to the system +2. Paste the below text to test if mentions is properly highlighting + + +``` +To run this test, if a user named @alice doesn't yet exist, create one. + +I saw @alice--and I said "Hi @alice!" then "What's up @alice?" and then @alice, was totally @alice; she just "@alice"'d me and walked on by. That's @alice... +``` diff --git a/doc/developer/tests/test-syntax-highlighting.md b/doc/developer/tests/test-syntax-highlighting.md new file mode 100644 index 000000000..7f8f4cdaa --- /dev/null +++ b/doc/developer/tests/test-syntax-highlighting.md @@ -0,0 +1,231 @@ +# Code Syntax Highlighting + +Verify the following code blocks render as code blocks and highlight properly. + +### Diff + +``` diff +*** /path/to/original ''timestamp'' +--- /path/to/new ''timestamp'' +*************** +*** 1 **** +! This is a line. +--- 1 --- +! This is a replacement line. +It is important to spell +-removed line ++new line +``` + +### Apache + +``` apache +<VirtualHost *:80> +DocumentRoot /www/example1 +ServerName www.example.com +</VirtualHost> +``` + +### Makefile + +``` makefile +CC=gcc +CFLAGS=-I. + +hellomake: hellomake.o hellofunc.o + $(CC) -o hellomake hellomake.o hellofunc.o -I. +``` + +### HTTP + +``` http +HTTP/1.1 200 OK +Date: Sun, 28 Dec 2014 08:56:53 GMT +Content-Length: 44 +Content-Type: text/html + +<html><body><h1>It works!</h1></body></html> +``` + +### JSON + +``` json +{"employees":[ + {"firstName":"John", "lastName":"Doe"}, +]} +``` + +### Markdown + +``` markdown +**bold** +*italics* +[link](www.example.com) +``` + +### JavaScript + +``` javascript +document.write('Hello, world!'); +``` + +### CSS + +``` css +body { + background-color: red; +} +``` + +### NGINX + +``` nginx +server { # simple reverse-proxy + listen 80; + server_name domain2.com www.domain2.com; + access_log logs/domain2.access.log main; +``` + +### Objective C + +``` objectivec +#import <stdio.h> + +int main (void) +{ + printf ("Hello world!\n"); +} +``` + +### Python + +``` python +print "Hello, world!" +``` + +### XML + +``` xml +<employees> + <employee> + <firstName>John</firstName> <lastName>Doe</lastName> + </employee> +</employees> +``` + +### Perl + +``` perl +print "Hello, World!\n"; +``` + +### Bash + +``` bash +echo "Hello World" +``` + +### PHP + +``` php + <?php echo '<p>Hello World</p>'; ?> +``` + +### CoffeeScript + +``` coffee +console.log(“Hello world!â€); +``` + +### C# + +``` cs +using System; +class Program +{ + public static void Main(string[] args) + { + Console.WriteLine("Hello, world!"); + } +} +``` + +### C++ + +``` cpp +#include <iostream.h> + +main() +{ + cout << "Hello World!"; + return 0; +} +``` + +### SQL + +``` sql +SELECT column_name,column_name +FROM table_name; +``` + +### Go + +``` go +package main +import "fmt" +func main() { + fmt.Println("Hello, 世界") +} +``` + +### Ruby + +``` ruby +puts "Hello, world!" +``` + +### Java + +``` java +import javax.swing.JFrame; //Importing class JFrame +import javax.swing.JLabel; //Importing class JLabel +public class HelloWorld { + public static void main(String[] args) { + JFrame frame = new JFrame(); //Creating frame + frame.setTitle("Hi!"); //Setting title frame + frame.add(new JLabel("Hello, world!"));//Adding text to frame + frame.pack(); //Setting size to smallest + frame.setLocationRelativeTo(null); //Centering frame + frame.setVisible(true); //Showing frame + } +} +``` + +### INI + +``` ini +; last modified 1 April 2011 by John Doe +[owner] +name=John Doe +organization=Mattermost +``` + +### Latex Equation + +``` latex +\frac{d}{dx}\left( \int_{0}^{x} f(u)\,du\right)=f(x). +``` + +### Latex Document + +``` latex +\documentclass{article} +\begin{document} +\noindent +Are $a, b \in \mathbb{R}, then applies (a+b)^{2} = a^{2} + ab + b^{2} $ \\ +better \\ +are $a, b \in \mathbb{R}, \textrm{then applies} \, (a+b)^{2 } = a^{2 } + ab + b^{2}$\\ +\end{document} +``` + diff --git a/doc/developer/tests/test-tables.md b/doc/developer/tests/test-tables.md new file mode 100644 index 000000000..87d8af856 --- /dev/null +++ b/doc/developer/tests/test-tables.md @@ -0,0 +1,80 @@ +# Markdown Tables + +Verify that all tables render as described. + +### Normal Tables + +These tables use different raw text as inputs, but all three should render as the same table. + +#### Table 1 + +Raw text: + +``` +First Header | Second Header +------------- | ------------- +Content Cell | Content Cell +Content Cell | Content Cell +``` + +Renders as: + +First Header | Second Header +------------- | ------------- +Content Cell | Content Cell +Content Cell | Content Cell + +#### Table 2 + +Raw Text: + +``` +| First Header | Second Header | +| ------------- | ------------- | +| Content Cell | Content Cell | +| Content Cell | Content Cell | +``` + +Renders as: + +| First Header | Second Header | +| ------------- | ------------- | +| Content Cell | Content Cell | +| Content Cell | Content Cell | + +#### Table 3 + +Raw Text: + +``` +| First Header | Second Header | +| ------------- | ----------- | +| Content Cell | Content Cell| +| Content Cell | Content Cell | +``` + +Renders as: + +| First Header | Second Header | +| ------------- | ----------- | +| Content Cell | Content Cell| +| Content Cell | Content Cell | + +### Tables Containing Markdown + +This table should contain A1: Strikethrough, A2: Bold, B1: Italics, B2: Dolphin emoticon. + +| Column\Row | 1 | 2 | +| ------------- | ------------- |------------- | +| A | ~~Strikethrough~~ | **Bold** | +| B | _italics_ | :dolphin: | + +### Table with Left, Center, and Right Aligned Columns + +The left column should be left aligned, the center column centered and the right column should be right aligned. + +| Left-Aligned | Center Aligned | Right Aligned | +| :------------ |:---------------:| -----:| +| 1 | this text | $100 | +| 2 | is | $10 | +| 3 | centered | $1 | diff --git a/doc/help/Account-Settings.md b/doc/help/Account-Settings.md new file mode 100644 index 000000000..1e05ef2ad --- /dev/null +++ b/doc/help/Account-Settings.md @@ -0,0 +1,115 @@ +# Account Settings +___ +Account Settings is accessible from the **Main Menu** by clicking the three dots at the top of the channels pane. From here, you can configure your profile settings, notification preferences, integrations, theme settings, and display options. + +## General +Settings to configure name, username, nickname, email and profile picture. + +#### Full Name +Full names appear in the Direct Messages member list and team management modal. By default, you will receive mention notifications when someone types your first name. Entering a full name is optional. + +#### Username +Usernames appear next to all posts. Pick something easy for teammates to recognize and recall. By default, you will receive mention notifications when someone types your username. + +####Nickname +Nicknames appear in the Direct Messages member list and team management modal. You will not receive mention notifications when someone types your nickname unless you add it to the *Words That Trigger Mentions* in **Account Settings > Notifications**. + +#### Email +Email is used for sign-in, notifications, and password reset. Email requires verification if changed. If you are signing in using a single sign-on service, the email field is not editable and you will receive email notifications to the email you used to sign up to your SSO service. + +#### Profile Picture +Profile pictures appear next to all posts and in the top of the channels pane next to your name. All users have a generic profile picture when they sign up for an account. Edit your profile picture by clicking **Select** and then choosing a picture in either JPG or PNG format that’s at least 128px wide and 128px high. For best results, choose an image that is square with the subject of interest centered. If you edit your profile picture, all past posts will appear with the new picture. + +##Security +Settings to configure your password, view access history, and view or logout of active sessions. + +#### Password +You may change your password if you’ve logged in by email. If you are signing in using a single sign-on service, the password field is not editable, and you must access your SSO service’s account settings to update your password. + +#### View Access History +Access History displays a chronological list of the last 20 login and logout attempts, channel creations and deletions, account settings changes, or channel setting modifications made on your account. Click **More Info** to view the IP address and session ID of each action. + +#### View and Logout of Active Sessions +Sessions are created when you log in with your email and password to a new browser on a device. Sessions let you use Mattermost for up to 30 days without having to log in again. Click **Logout** on an active session if you want to revoke automatic login privileges for a specific browser or device. Click **More Info** to view details on browser and operating system. + +## Notifications +Settings to configure desktop notifications, desktop notification sounds, email notifications, and words that trigger mentions. + +#### Send Desktop Notifications +Desktop notifications appear at the bottom right corner of your main monitor. The desktop notification preference you choose in *Account Settings* applies globally, but this preference is customizable for each channel from the channel name drop-down menu. Desktop notifications are available on Firefox, Safari, and Chrome. + +#### Desktop Notification Sounds +A notification sound plays for all Mattermost posts that would fire a desktop notification, unless *Desktop Notification Sound* is turned off. Desktop notification sounds are available on Firefox, Safari, Chrome, Internet Explorer, and Edge. + +#### Email Notifications +Email notifications are sent for mentions and direct messages after you’ve been offline for more than 60 seconds or away from Mattermost for more than 5 minutes. Change the email where notifications are sent from **Account Settings > General > Email**. + +#### Words That Trigger Mentions +By default, you will receive mention notifications from your non-case sensitive username, mentioned @username, @all, and @channel. Customize the words that trigger mentions by typing them in the input box. This is useful if you want to be notified of all posts on a certain topic, for example, “marketingâ€. + +## Appearance +Settings to customize your account’s theme colors and code theme. + +#### Theme Colours +Select **Theme Colors** to select from four standard themes designed by the Mattermost team. To make custom adjustments on the four standard theme colours, click a standard theme and then select **Custom Theme** to load the standard theme into the custom theme color selectors. + +#### Custom Theme +Customize your theme colors and share them with others by copying and pasting theme vectors into the input box. Observe a live preview as you customize theme colors and then click **Save** to confirm your changes. Discard your changes by exiting the settings modal and clicking **Yes, Discard**. + +- **Sidebar BG:** Background color of the Channels pane, and Account and Team settings navigation sidebars. +- **Sidebar Text:** Text colour of read channels in the Channels pane, and tabs in the Account and Team settings navigation sidebar. +- **Sidebar Header BG:** Background color of the header above the Channels pane and all modal headers. +- **Sidebar Header Text:** Text colour of the header above the Channels pane and all modal headers. +- **Sidebar Unread Text:** Text color of unread channels in the Channels pane. +- **Sidebar Text Hover BG:** Background color behind channel names and settings tabs as you hover over them. +- **Sidebar Text Active Border:** Color of the rectangular marker on the left side of the Channels pane or Settings sidebar indicating the active channel or tab. +- **Sidebar Text Active Color:** Text color of the active active channel or tab in the Channels pane or Settings sidebar. +- **Online Indicator:** Color of the online indicator appearing next to team members names in the Direct Messages list. +- **Mention Jewel BG:** Background color of the jewel indicating unread mentions that appears to the right of the channel name. This is also the background color of the “Unread Posts Below/Above†indicator appearing at the top or bottom of the Channels pane on shorter browser windows. +- **Mention Jewel Text:** Text color on the mention jewel indicating the number of unread mentions. This is also the text color on the “Unread Posts Below/Above†indicator. +- **Center Channel BG:** Color of the center pane, RHS and all modal backgrounds. +- **Center Channel Text:** Color of all the text - with the exception of mentions, links, hashtags and code blocks - in the center pane, RHS and modals. +- **New Message Separator:** The new massage separator appears below the last read message when you click into a channel with unread messages. +- **Link Color:** Text color of all links, hashtags, teammate mentions, and low priority UI buttons. +- **Button BG:** Color of the rectangular background behind all high priority UI buttons. +- **Button Text:** Text colour appearing on the rectangular background for all high priority UI buttons. +- **Mention Highlight BG:** Highlight color behind your words that trigger mentions in the center pane and RHS. +- **Mention Highlight Link:** Text color of your words that trigger mentions in the center pane and RHS. +- **Code Theme:** Background and syntax colors for all code blocks. + +#### Import theme colors from Slack +To import a theme, go to **Preferences > Sidebar Theme** from within Slack, open the custom theme option, copy the theme color vector and then paste it into the *Input Slack Theme* input box in Mattermost. Any theme settings that are not customizable in Slack will default to the “Mattermost†standard theme settings. + +## Integrations +Settings to configure incoming and outgoing webhooks for your team. + +#### Incoming Webhooks +Incoming webhooks from external integrations can post messages to Mattermost in public channels or private groups. Learn more about setting up incoming webhooks on our [documentation page](https://github.com/mattermost/platform/blob/master/doc/integrations/webhooks/Incoming-Webhooks.md). + + +#### Outgoing Webhooks +Outgoing webhooks use trigger words to fire new message events to external integrations. For security reasons, outgoing webhooks are only available in public channels. Learn more about setting up outgoing webhooks on our [documentation page](https://github.com/mattermost/platform/blob/master/doc/integrations/webhooks/Outgoing-Webhooks.md). + +##Display +Settings to configure clock and teammate name display preferences. + +#### Display Font +Select what font is used. + +#### Clock Display +Choose a 12-hour or 24-hour time preference that appears on the time stamp for all posts. + +#### Teammate Name Display +Configure how names are displayed in the Direct Messages list in the Channels pane: nickname, username or full name. + +## Advanced +Setting to configure when messages are sent. + +#### Send Messages on Ctrl+Enter +If enabled, press **Enter** to insert a new line and **Ctrl + Enter** posts the message. If disabled, **Shift + Enter** inserts a new line and **Enter** posts the message. + +#### Preview pre-release features +Turn on preview features to view them early, ahead of their official release: +- **Show markdown preview option in message input box:** Turning this on will show a "Preview" option when typing in the text input box. Pressing "Preview" shows what the Markdown formatting in the message looks like before the message is sent. +- **Show preview snippet of links below message:** Turning this on will show a preview snippet posted below links from select websites. + diff --git a/doc/help/Channels.md b/doc/help/Channels.md new file mode 100644 index 000000000..531cc047c --- /dev/null +++ b/doc/help/Channels.md @@ -0,0 +1,45 @@ +# Channels +___ + +## Channel Types +Channels organize conversations across different topics. There are three types of channels: Public Channels, Private Groups, and Direct Messages. + + +#### Public Channels +Public Channels are open to everyone on a team. New team members are automatically a part of two Public Channels: Town Square and Off-Topic. + +#### Private Groups +Private Groups are for sensitive topics and are only visible to select team members. Any member of a Private Group can add additional members. Group members can choose to leave at any time, but only the group owner or team administrator can remove other members. + +#### Direct Messages +Direct Messages are for conversations between two team members. These conversations are only visible to the two team members involved. + +## Managing Channels +Channels can be created, joined, renamed, left and deleted. + +#### Creating a Channel +Create a new Public Channel or Private Group by selecting the **+** symbol next to the *Channels* or *Private Groups* header on the left hand side. To start a direct message thread, click **More** at the bottom of the *Direct Messages* list to view a list of team members you can message. + +#### Joining a Channel +Click **More** at the bottom of the *Channels* list to view a list of Public Channels you can join. To join a Private Group you need to be added by a member of that group. + +#### Renaming a Channel +Click the channel name at the top of the center pane to access the drop-down menu, then click **Rename Channel**. Channel owners can rename the Public Channels or Private Groups they’ve created. Team and System Administrators can rename any channel or group. + +#### Leaving a Channel +Click the channel name at the top of the center pane to access the drop-down menu, then click **Leave Channel**. Any team member who leaves a Private Group must be added back by a group member if they wish to rejoin. Team members will not receive mention notifications from channels of which they are not members. + +#### Deleting a Channel +Click the channel name at the top of the center pane to access the drop-down menu, then click **Delete Channel**. Channel owners can delete the Public Channels or Private Groups they’ve created. Team and System Administrators can delete any channel or group. + +## Channel Settings +Notification preferences, channel header, and channel purpose are customizable for each channel. + +#### Notification Preferences +By default, the desktop notification preference assigned in *Account Settings* is used for all channels. To customize the desktop notification preference for each channel, click the channel name at the top of the center pane to access the drop-down menu, then click **Notification Preferences > Send Desktop Notifications**. Customize what activity causes the channel name to be bolded by accessing the channel name drop-down menu, then click **Notification Preferences > Mark Channel Unread**. + +#### Channel Header +The header is the text that appears next to the channel name at the top of the screen. It can be used to summarize the channel topic or provide links to frequently accessed documents. Any channel member can set the channel header by clicking the channel name at the top of the center pane to access the drop-down menu, then click **Set Channel Header**. + +#### Channel Purpose +This text appears in the channel list in the *More…* menu and helps others decide whether to join. Any channel member can set the channel purpose by clicking the channel name at the top of the center pane to access the drop-down menu, then click **Set Channel Purpose**. diff --git a/doc/help/Markdown.md b/doc/help/Markdown.md new file mode 100644 index 000000000..64ce4fc83 --- /dev/null +++ b/doc/help/Markdown.md @@ -0,0 +1,191 @@ +# Markdown Help + +Markdown makes it easy to format messages. Type a message as you normally would, and use these rules to render it with special formatting. + +## Text Style: + +You can use either `_` or `*` around a word to make it italic. Use two to make it bold. + +* `_italics_` renders as _italics_ +* `**bold**` renders as **bold** +* `**_bold-italic_**` renders as **_bold-italics_** +* `~~strikethrough~~` renders as ~~strikethrough~~ + +## Code Block: + +Create a code block by indenting each line by four spaces, or by placing ``` on the line above and below your code. + +Example: + + ``` + code block + ``` + +Renders as: +``` +code block +``` + +### Syntax Highlighting + +To add syntax highlighting, type the language to be highlighted after the ``` at the beginning of the code block. + +Supported languages are: +`diff, apache, makefile, http, json, markdown, javascript, css, nginx, objectivec, python, xml, perl, bash, php, coffee (CoffeeScript), cs (C#), cpp (C++), sql, go, ruby, java, ini, latex` + +Example: + + ``` go + package main + import "fmt" + func main() { + fmt.Println("Hello, 世界") + } + ``` + +Renders as: +``` go +package main +import "fmt" +func main() { + fmt.Println("Hello, 世界") +} +``` + +## In-line Code: + +Create in-line monospaced font by surrounding it with backticks. +``` +`monospace` +``` +Renders as: `monospace`. + +## Links: + +Create labeled links by putting the desired text in square brackets and the associated link in normal brackets. + +`[Check out Mattermost!](www.mattermost.com)` + +Renders as: [Check out Mattermost!](www.mattermost.com) + +## In-line Images + +Create in-line images using an `!` followed by the alt text in square brackets and the link in normal brackets. Add hover text by placing it in quotes after the link. +``` +![alt text](link "hover text") + +and + +[![Build Status](https://travis-ci.org/mattermost/platform.svg?branch=master)](https://travis-ci.org/mattermost/platform) [![Github](https://assets-cdn.github.com/favicon.ico)](https://github.com/mattermost/platform) +``` +Renders as: + +![alt text](link "hover text") + +and + +[![Build Status](https://travis-ci.org/mattermost/platform.svg?branch=master)](https://travis-ci.org/mattermost/platform) [![Github](https://assets-cdn.github.com/favicon.ico)](https://github.com/mattermost/platform) + +## Emojis + +Emoji provided free by [Emoji One](http://emojione.com/). Check out a full list of emojis [here](http://http://emoji.codes/). + +``` +:smile: :+1: :sheep: +``` +Renders as: +:smile: :+1: :sheep: + +## Lines: + +Create a line by using three `*`, `_`, or `-`. + +`***` renders as: +*** + +## Block quotes: + +Create block quotes using `>`. + +`> block quotes` renders as: +> block quotes + +## Lists: + +Create a list by using `*` or `-` as bullets. Indent a bullet point by adding two spaces in front of it. +``` +* list item one +* list item two + * item two sub-point +``` +Renders as: +* list item one +* list item two + * item two sub-point + +Make it an ordered list by using numbers instead: +``` +1. Item one +2. Item two +``` +Renders as: +1. Item one +2. Item two + +Make a task list by including square brackets: +``` +- [ ] Item one +- [ ] Item two +- [x] Completed item +``` +Renders as: +- [ ] Item one +- [ ] Item two +- [x] Completed item + +## Tables: + +Create a table by placing a dashed line under the header row and separating the columns with a pipe `|`. (The columns don’t need to line up exactly for it to work). Choose how to align table columns by including colons `:` within the header row. +``` +| Left-Aligned | Center Aligned | Right Aligned | +| :------------ |:---------------:| -----:| +| Left column 1 | this text | $100 | +| Left column 2 | is | $10 | +| Left column 3 | centered | $1 | +``` + +Renders as: + +| Left-Aligned | Center Aligned | Right Aligned | +| :------------ |:---------------:| -----:| +| Left column 1 | this text | $100 | +| Left column 2 | is | $10 | +| Left column 3 | centered | $1 | + +## Headings: + +Make a heading by typing # and a space before your title. For smaller headings, use more #’s. +``` +# Large heading +## Smaller heading +### Even smaller heading +``` +Renders as: +# Large Heading +## Smaller Heading +### Even smaller heading + +Alternatively, for the large heading you can underline the text using `===`. For the smaller heading you can underline using `---` +``` +Large Heading +============= + +Smaller Heading +-------------- +``` +Renders as: +Large Heading +============= + +Smaller Heading +-------------- diff --git a/doc/help/Messaging.md b/doc/help/Messaging.md new file mode 100644 index 000000000..548892650 --- /dev/null +++ b/doc/help/Messaging.md @@ -0,0 +1,47 @@ +# Messaging + +## Writing Messages + +You can write messages using the input box with the text "Write a message..." at the bottom of Mattermost. + +Press **ENTER** to send a message. Use **Shift+ENTER** to create a new line without sending a message. + +## Formatting Messages + +Mattermost messages are formatted using a standard called "markdown". Here are examples: + +| Text Entered | How it appears | +|:---------------|:---------------| +|`**bold**`| **bold** | +| `_italic_`|_italic_| +|`[hyperlink](http://mattermost.org)`|[hyperlink](http://mattermost.org)| +|`![embedded image](https://travis-ci.org/mattermost/platform.svg)`|![embedded image](https://travis-ci.org/mattermost/platform.svg)| +|`:smile:` `:sheep:` `:alien:`|:smile: :sheep: :alien:| + +Emojis provided free from [Emoji One](http://emojione.com/). Check out a full list of Emojis [here](http://emoji.codes/). + + +## Mentioning Teammates + +You can mention a teammate by using the `@` symbol plus their username to send them a special notification to draw their attention. + +For example, you might write: + +``` +@alice how did your interview go with the new candidate? +``` + +Which sends a special mention notification to **alice** to check your message. + +To mention a teammate, press `@` and you should see a list of team members who can be messaged. You can either type their username or use the **Up** and **Down** arrow keys and then **ENTER** to select them to be mentioned. + +You can configure how you'd like to be alerted about mentions of your username, your first name, your nickname, or other keywords from **Account Settings** > **Notifications** and you can set channel-specific preferences from **[Channel Name]** > **Notification Preferences** + +## Messages Dropdown Menu + +To get to the Messages Dropdown Menu, hover over a message and click on the [...] menu. This shows a dropdown list containing additional actions you can perform on a message: + +- **Reply:** Opens up the sidebar so you can reply to a message in a comment thread. +- **Permalink:** Creates a link to the message. Sharing this link with other users in the channel lets them view the linked message in the Message Archives. +- **Delete:** Deletes the message so it is no longer visible. Team Administrators and System Administrators can also delete another user's message. +- **Edit:** Lets you edit your own message. diff --git a/doc/help/Notifications.md b/doc/help/Notifications.md new file mode 100644 index 000000000..31f06e713 --- /dev/null +++ b/doc/help/Notifications.md @@ -0,0 +1,31 @@ +# Notifications +___ + +Notifications in Mattermost alert you to unread mentions and messages. + +## Types of Notifications + +#### Email Notifications +These are emails sent to your primary email address for any mentions you receive while offline or inactive. +- Users are offline when they do not have Mattermost open. +- Users are inactive when they have Mattermost open but haven’t performed an action for a set amount of time. +- You can change the email to which these notifications are sent in **Account Settings** > **General** > **Email**. +- You can turn email notifications on or off in **Account Settings** > **Notifications** > **Email Notifications**. + +#### Desktop Notifications +These are browser notifications that are by default sent for all activity. +- You can adjust this setting in **Account Settings** > **Notifications** > **Send Desktop Notifications**. +- Channel specific notifications are automatically set to the global default but can be modified in **Channel Settings** > **Notification Preferences** > **Send Desktop Notifications**. +- Desktop notifications are available on Firefox, Safari, and Chrome. + + +#### Sound Notifications +These accompany each desktop notification by default. +- You can change this setting in **Account Settings** > **Notifications** > **Desktop Notification Sounds**. + + +#### Browser Tab Notifications +These appear in the Mattermost tab and inform you of any unread messages and alert you to the number of mentions you have. +- Unread messages are denoted by an asterisk (*) next to the Mattermost icon. +- Mentions and replies are denoted by a red Mattermost icon. +- The total number of unread mentions and replies are shown in brackets next to the Mattermost icon. For example, if you have 3 unread mentions, you’ll see a (3) in the browser tab. diff --git a/doc/help/README.md b/doc/help/README.md index 9271d64dd..23c8b192d 100644 --- a/doc/help/README.md +++ b/doc/help/README.md @@ -1,12 +1,23 @@ -# Help +## Help -The help section of the Mattermost documentation is intended for use by end users learning about the Mattermost concepts, usage, terminology and user interface. - -_Note: Help documentation is a work-in-progress. Community contributions highly welcome. Please see [guidelines for contributing](https://forum.mattermost.org/t/help-improve-mattermost-documentation/194)._ - -## Team Site Main Menu - -You can access the **Team Site Main Menu** by clicking on the three vertical dots at the top of the left sidebar in a team site. Here we describe the various options available from the menu: - -- [Manage Members](Manage-Members.md) +- Getting Started + - [Sign-in](Sign-in.md) +- User Interface + - Main Menu + - [Team Settings ](Team-Settings.md) + - [General Settings](Team-Settings.md#general) + - [Slack Import](Team-Settings.md#import-from-slack-beta) + - [Manage Members](Manage-Members.md) + - [Account Settings](Account-Settings.md) + - [Messaging](Messaging.md) + - [Mattermost Markdown Formatting](Markdown.md) + - [Search](Search.md) + - [Channels](Channels.md) + - [Channel Types](Channels.md#channel-types) + - [Managing Channels](Channels.md#managing-channels) + - [Channel Settings](Channels.md#channel-settings) + +- System Console + - Team + - [Team Statistics](system-console/Team-Statistics.md) diff --git a/doc/help/Search.md b/doc/help/Search.md index 51095aac6..354e29a43 100644 --- a/doc/help/Search.md +++ b/doc/help/Search.md @@ -7,7 +7,8 @@ The search box in Mattermost brings back results from any channel of which you†- Multiple search terms are connected with “OR†by default. Typing in `Mattermost website` returns results containing “Mattermost†or “website†- Use `from:` to find posts from specific users and `in:` to find posts in specific channels. For example: Searching `Mattermost in:town-square` only returns messages in Town Square that contain `Mattermost` - Use quotes to return search results for exact terms. For example: Searching `"Mattermost website"` returns messages containing the entire phrase `"Mattermost website"` and not messages containing only `Mattermost` or `website` -- Use the `*` character for wildcard searches that match within words. For example: Searching for `rea*` brings back messages containing `reach`, `reason` and other words starting with `rea`. +- Use the `*` character for wildcard searches that match within words. For example: Searching for `rea*` brings back messages containing `reach`, `reason` and other words starting with `rea` +- Click on the **Jump** link on the right of a search result to view the post archive in the center channel #### Limitations: diff --git a/doc/help/Sign-in.md b/doc/help/Sign-in.md new file mode 100644 index 000000000..5b7b375c7 --- /dev/null +++ b/doc/help/Sign-in.md @@ -0,0 +1,27 @@ +# Sign-in + +You can sign-in to your team from the web address of `https://domain.com/teamname`. + +There are several options for signing in to your team depending on how your System Administrator has configured your server. + +#### Email address and password sign-in + +When enabled by your System Administrator, you can sign in using the combination of email address and password used to create your account. + +If you have forgotten your password, you should be able to reset it from the "I forgot my password" option on the sign-in screen, or contact your System Administrator if you need help resetting your password. + +#### GitLab Single-Sign-On (SSO) option + +When enabled by your System Administrator, you can sign-in using your GitLab account using a one-click sign-in option. GitLab SSO lets you create teams, create accounts on teams, and sign-in to teams using one username, email address, and password that works across everything on the server. + +#### Switching Teams + +When you've used the same email address to sign-up and sign-in to multiple teams, you can switch among those teams using the main menu in any team site on the server. By default, devices remember which teams you have signed into for 30 days. + +#### System Adminstrator Role + +If your account in a given team has been given the System Administrator role, it has access to the System Console. The System Administrator role does not apply to accounts created in other teams using the same email address, since user accounts are unique to teams. + +#### Logging Out + +You can log out from the main menu, which is accessed by clicking the three dots in the top header on the left side of the screen. Clicking "Logout" logs you out of all the teams you are signed-in to that share the same email address. diff --git a/doc/help/Slack-Import.md b/doc/help/Slack-Import.md deleted file mode 100644 index f834d5177..000000000 --- a/doc/help/Slack-Import.md +++ /dev/null @@ -1,29 +0,0 @@ -### Slack Import - -*Note: As a proprietary SaaS service, Slack is able to change its export format quickly and without notice. If you encounter issues not mentioned in the documentation below, please alert the product team by [filing an issue](https://github.com/mattermost/platform/issues).* - -#### Usage - -The Slack Import feature in Mattermost is in "Beta" and focus is on supporting migration of teams of less than 100 registered users. To use: - -1. Generate a Slack "Export" file from **Slack > Team Settings > Import/Export Data > Export > Start Export** - -2. In Mattermost go to **Team Settings > Import > Import from Slack**. _Team Owner_ or _Team Administrator_ role is required to access this menu option. - -3. Click **Select file** to upload Slack export file and click **Import**. - -4. Emails and usernames from Slack are used to create new Mattermost accounts - -5. Slack users can activate their new Mattermost accounts by using Mattermost's Password Reset screen with their email addresses from Slack to set new passwords for their Mattermost accounts - -6. Once logged in, the Mattermost users will have access to previous Slack messages in the public channels imported from Slack. - -**It is highly recommended that you test Slack import before applying it to an instance intended for production.** If you use Docker, you can spin up a test instance in one line (`docker run --name mattermost-dev -d --publish 8065:80 mattermost/platform`). If you don't use Docker, there are [step-by-step instructions](../install/Docker-Single-Container.md) to install Mattermost in preview mode in less than 5 minutes. - -#### Notes: - -- Newly added markdown suppport in Slack's Posts 2.0 feature announced on September 28, 2015 is not yet supported. -- Slack does not export files or images your team has stored in Slack's database. Mattermost will provide links to the location of your assets in Slack's web UI. -- Slack does not export any content from private groups or direct messages that your team has stored in Slack's database. -- In Beta, Slack accounts with username or email address collisions with existing Mattermost accounts will not import and mentions do not resolve as Mattermost usernames (still shows Slack ID). No pre-check or roll-back is currently offered. - diff --git a/doc/help/Team-Settings.md b/doc/help/Team-Settings.md new file mode 100644 index 000000000..fead9f4ca --- /dev/null +++ b/doc/help/Team-Settings.md @@ -0,0 +1,71 @@ +## Team Settings + +The Team Settings menu offers Team Administrators, Team Owners and System Administrators the ability to adjust settings applied to a specific team. + +The following settings are found in a Team Site from the **Three-Dot** menu at the top of the left sidebar under **Team Settings**. + +### General + +General settings under the **Team Settings** > **General** configure how a team is displayed to users. + +#### Team Name + +Your **Team Name** is displayed on the sign-in page, and in the top of the left-hand sidebar for your team. + +#### Allow anyone to sign-up from login page + +Setting this option to **Yes** shows a link to the account creation page on the sign-in page of this team. + +Team Administrators would set this to **Yes** when they: + 1. Operate on a closed network and want to make sign-up easy. + 2. Operate on the open internet with sign-up restricted to specific domains, and want to allow easy sign-up from users with email addresses. Note: System Administrators can restrict sign-up to specific domains via the System Console. + 3. Operate on the open internet and want to allow anyone to sign-up. + +Team Administrators would set this to **No** when they: + 1. Operate on the open internet and want a small, private team that is email-invite-only. + +#### Include this team in the Team Directory + +Setting this option to **Yes** includes the Team Name on the Home Page and a link to this team's sign-in page. + +Team Administrators would set this to **Yes** when they: + 1. Operate on a closed network and want to make it easy to discover their team from the Home Page of the Mattermost server. + 2. Operate on the open internet with sign-up restricted to specific domains, and want to allow easy sign-up from users with email addresses. Note: System Administrators can restrict sign-up to specific domains via the System Console. + 3. Operate on the open internet and want to allow anyone to sign-up to their team from the Home Page of the Mattermost server. + +Team Administrators would set this to **No** when they: + 1. Operate on the open internet and want a small, private team that is email-invite-only. + +#### Invite Code + +When allowing anyone to sign-up from the login page, the **Invite Code** is used as part of the sign-up process. Clicking **Re-Generate** will invalidate the previous invitations and invitation URLs. + +### Import + +#### Import from Slack (Beta) + +*Note: As a proprietary SaaS service, Slack is able to change its export format quickly and without notice. If you encounter issues not mentioned in the documentation below, please alert the product team by [filing an issue](https://github.com/mattermost/platform/issues).* + +The Slack Import feature in Mattermost is in "Beta" and focus is on supporting migration of teams of less than 100 registered users. To use: + +1. Generate a Slack "Export" file from **Slack > Team Settings > Import/Export Data > Export > Start Export**. + +2. In Mattermost go to **Team Settings > Import > Import from Slack**. _Team Owner_ or _Team Administrator_ role is required to access this menu option. + +3. Click **Select file** to upload Slack export file and click **Import**. + +4. Emails and usernames from Slack are used to create new Mattermost accounts. + +5. Slack users can activate their new Mattermost accounts by using Mattermost's Password Reset screen with their email addresses from Slack to set new passwords for their Mattermost accounts. + +6. Once logged in, the Mattermost users will have access to previous Slack messages in the public channels imported from Slack. + +**It is highly recommended that you test Slack import before applying it to an instance intended for production.** If you use Docker, you can spin up a test instance in one line (`docker run --name mattermost-dev -d --publish 8065:80 mattermost/platform`). If you don't use Docker, there are [step-by-step instructions](../install/Docker-Single-Container.md) to install Mattermost in preview mode in less than 5 minutes. + +#### Notes: + +- Users are not automatically added to channels or groups when importing from Slack. +- Newly added markdown support in Slack's Posts 2.0 feature announced on September 28, 2015 is not yet supported. +- Slack does not export files or images your team has stored in Slack's database. Mattermost will provide links to the location of your assets in Slack's web UI. +- Slack does not export any content from private groups or direct messages that your team has stored in Slack's database. +- In Beta, Slack accounts with usernames or email addresses identical to existing Mattermost accounts will not import and mentions do not resolve as Mattermost usernames (still shows Slack ID). No pre-check or roll-back is currently offered. diff --git a/doc/help/Team-Statistics.md b/doc/help/Team-Statistics.md deleted file mode 100644 index 05d63794b..000000000 --- a/doc/help/Team-Statistics.md +++ /dev/null @@ -1,24 +0,0 @@ -## Team Statistics -___ -Statistics on users, posts and channels are tracked for each team and viewable in the System Console. System Administrators can access statistics for your Mattermost teams by clicking the **three-dot menu**, then click **System Console**. Under the *Teams* section on the left side you’ll see a list of the teams that belong to your domain. Click **Statistics** under the team of interest to open the stats page. Here is some helpful terminology: - -**Total Users** -The total number of accounts created, regardless of if the accounts are active or inactive. - -**Total Posts** -The total number of posts made by your team, including deleted posts or those made by incoming and outgoing webhook integrations. - -**Public Groups** -The number of public channels created by your team, including channels that may have been archived. - -**Private Group** -The number of private groups created by your team, including groups that may have been archived. - -**Active Users With Posts** -Users who logged in and made a post on a certain day. - -**Recently Active Users** -Users that have logged in and had recent browser activity in Mattermost. - -**Newly Created Users** -Users that have recently completed the signup process to create a Mattermost account on the team. diff --git a/doc/help/system-console/Team-Statistics.md b/doc/help/system-console/Team-Statistics.md new file mode 100644 index 000000000..5e4bcb5c5 --- /dev/null +++ b/doc/help/system-console/Team-Statistics.md @@ -0,0 +1,24 @@ +# Team Statistics + +Statistics on users, posts and channels are tracked for each team and are viewable under **System Console** > **Teams** > **Statistics**. + +## Total Users +The total number of accounts created, including both active and inactive accounts. + +## Total Posts +The total number of posts made in a team, including deleted posts and posts made using automation. + +## Public Groups +The number of public channels created by your team, including channels that may have been archived. + +## Private Group +The number of private groups created by your team, including groups that may have been archived. + +## Active Users With Posts +Users who logged in and made a post on a certain day. + +## Recently Active Users +Users that have logged in and had recent browser activity in Mattermost. + +## Newly Created Users +Users that have recently completed the sign-up process to create a Mattermost account on the team. diff --git a/doc/install/Administration.md b/doc/install/Administration.md index ee996088c..c51022da1 100644 --- a/doc/install/Administration.md +++ b/doc/install/Administration.md @@ -17,3 +17,98 @@ This document provides instructions for common administrator tasks - Team Admin or System Admin can go to **Main Menu** > **Manage Members** > **Make Inactive** to deactivate a user, which removes them from the team. - To preserve audit history, users are never deleted from the system. It is highly recommended that System Administrators do not attempt to delete users manually from the database, as this may compromise system integrity and ability to upgrade in future. + +## GitLab Mattermost Administration + +GitLab Mattermost is a special version of Mattermost bundled with GitLab omnibus. Here we consolidate administrative instructions, guides and troubleshooting guidance. + +### Installing GitLab Mattermost + +Please follow the [GitLab Omnibus documentation for installing GitLab Mattermost](http://doc.gitlab.com/omnibus/gitlab-mattermost/). + +### Community Support Resources + +For help and support around your GitLab Mattermost deployment please see: + +- [Troubleshooting Forum](https://forum.mattermost.org/t/about-the-trouble-shooting-category/150/1) +- [GitLab Mattermost issue tracker on GitLab.com](https://gitlab.com/gitlab-org/gitlab-mattermost/issues) + +### Connecting Mattermost to integrations with incoming webhooks + +#### Connecting Mattermost to GitLab for Slack-equivalent functionality. + +Mattermost is designed to be _Slack-compatible, not Slack-limited_ and supports integration via the Slack UI in GitLab, as well as fully customizable integrations. + +To enable this: + +1. In Mattermost, from a team site where you have System Administration privileges, from the main menu go to **System Console** > **Serice Settings** > **Enable Incoming Webhooks** and select **true** then click **Save** + +2. Follow the step-by-step example of [connecting Mattermost incoming webhooks to GitLab's Slack webhooks UI](https://github.com/mattermost/platform/blob/master/doc/integrations/webhooks/Incoming-Webhooks.md#connecting-mattermost-to-gitlab-using-slack-ui). + +#### Connecting Mattermost to GitLab for functionality exceeding Slack integration. + +To enable this: + +1. In Mattermost, from a team site where you have System Administration privileges, from the main menu go to **System Console** > **Serice Settings** > **Enable Incoming Webhooks** and select **true** then click **Save** + +2. Set up the [GitLab Integration Service for Mattermost](https://github.com/mattermost/mattermost-integration-gitlab). + +### Connecting Mattermost to integrations with outgoing webhooks + +Mattermost offers Slack-compatible outgoing webhooks, that can connect to applications created by the Mattermost community, such as [Hubot](https://www.npmjs.com/package/hubot-mattermost) and [IRC](https://github.com/42wim/matterbridge) support. + +To enable this: + +1. In Mattermost, from a team site where you have System Administration privileges, from the main menu go to **System Console** > **Serice Settings** > **Enable Outgoing Webhooks** and select **true** then click **Save** + +2. Select a [Mattermost community application](http://www.mattermost.org/community-applications/) using outgoing webhooks--or adapt a Slack application using the same outgoing webhook standard--and follow the setup instructions provided. + +### Upgrading GitLab Mattermost manually + +If you choose to upgrade Mattermost outside of GitLab's omnibus automation, please [follow this guide](https://github.com/mattermost/platform/blob/master/doc/install/Upgrade-Guide.md#upgrading-mattermost-to-next-major-release). + +### Upgrading GitLab Mattermost from GitLab 8.0 (containing Mattermost 0.7.1-beta) + +To upgrade GitLab Mattermost from the 0.7.1-beta release of Mattermost in GitLab 8.0, please [follow this guide](https://github.com/mattermost/platform/blob/master/doc/install/Upgrade-Guide.md#upgrading-mattermost-in-gitlab-80-to-gitlab-81-with-omnibus). + +### Troubleshooting GitLab Mattermost + +- If you're having issues installing GitLab Mattermost with GitLab Omnibus, as a first step please turn on logging by updating the [log settings](https://github.com/mattermost/platform/blob/master/doc/install/Configuration-Settings.md#log-file-settings) section in your `config.json` file installed by omnibus, and they try a general web search for the error message you receive. + +#### GitLab Mattermost Error Messages + +###### `We received an unexpected status code from the server (200)` + +- If you have upgraded from a pre-released version of GitLab Mattermost or if an unforseen issue has arrisen during the [upgrade procedure](https://github.com/mattermost/platform/blob/master/doc/install/Upgrade-Guide.md), you may be able to restore Mattermost using the following procedure: + - `sudo stop mattermost`, so DB can be dropped + - `sudo gitlab-ctl reconfigure` + - `sudo -u gitlab-psql /opt/gitlab/embedded/bin/dropdb -h /var/opt/gitlab/postgresql mattermost_production` + - `sudo start mattermost` + - `sudo gitlab-ctl reconfigure` + - [Manually set up GitLab SSO](https://github.com/mattermost/platform/blob/master/doc/integrations/Single-Sign-On/Gitlab.md) by copying Secret and ID into `/var/opt/gitlab/mattermost/config.json` + - `sudo gitlab-ctl restart` + +###### `Token request failed` + - This error can appear in the web browser after attempting to create a new team with GitLab SSO enabled + - **Solutions:** + 1. Check that your SSL settings for the SSO provider match the `http://` or `https://` choice selected in `config.json` under `GitLabSettings` + 2. Follow steps 1 to 3 of the manual [GitLab SSO configuration procedure](https://github.com/mattermost/platform/blob/master/doc/integrations/Single-Sign-On/Gitlab.md) to confirm your `Secret` and `Id` settings in `config.json` match your GitLab settings, and if they don't, manually update `config.json` to the correct settings and see if this clears the issue. + +###### `"The redirect URI included is not valid.` + - This error may be related to SSL configurations in your proxy after a GitLab omnibus upgrade from 8.0, which contained the Mattermost beta version. + - **Solution:** + - Please check that each step of [the procedure for upgrading Mattermost in GitLab 8.0 to GitLab 8.1 was completed](https://github.com/mattermost/platform/blob/master/doc/install/Upgrade-Guide.md#upgrading-mattermost-in-gitlab-80-to-gitlab-81-with-omnibus). Then check upgrades to successive major versions were completed using the procedure in the [Upgrade Guide](https://github.com/mattermost/platform/blob/master/doc/install/Upgrade-Guide.md#upgrading-mattermost-to-next-major-release). + + +###### `We couldn't find the existing account` + - This error appears when a user attempts to sign in using a single-sign-on option with an account that was not created using that single-sign-on option. For example, if a user creates Account A using email sign-up, then attempts to sign-in using GitLab SSO, the error appears since Account A was not created using GitLab SSO. + - **Solution:** + - If you're switching from email auth to GitLab SSO, and you're getting this issue on an admin account, consider deactivating your email-based account, then creating a new account with System Admin privileges using GitLab SSO. Specifically: + 1. Deactivate your email-based System Admin account (note: this process is [scheduled to improve](https://mattermost.atlassian.net/browse/PLT-975)) + 1. Temporarily turn off email verification (**System Console** > **Email Settings** > **Require Email Verification** > **false**, or set `"RequireEmailVerification": false` in `config.json`). + 2. Change email for account to random address so you can create a new GitLab SSO account using your regular address. + 2. Create a new Mattermost account using GitLab SSO + 1. With GitLab SSO enabled, go to `https://domain.com/teamname` and sign-up for a new Mattermost account using your GitLab SSO account with preferred email address. + 2. [Upgrade the new account to System Admin privileges](https://github.com/mattermost/platform/blob/master/doc/install/Troubleshooting.md#lost-system-administrator-account). + 3. Deactivate the previous System Admin account that used email authentication. + 1. Using the new GitLab SSO System Admin account go to **System Console** > **[TEAMNAME]** > **Users**, find the previous account and set it to "Inactive" diff --git a/doc/install/Command-Line-Tools.md b/doc/install/Command-Line-Tools.md new file mode 100644 index 000000000..ff6f110fd --- /dev/null +++ b/doc/install/Command-Line-Tools.md @@ -0,0 +1,81 @@ +# Command Line Tools + +From the directory where the Mattermost platform is installed a `platform` command is available for configuring the system, including: + +- Creating teams +- Creating users +- Assigning roles to users +- Reseting user passwords +- Permanently deleting users (use cautiously - database backup recommended before use) +- Permanently deleting teams (use cautiously - database backup recommended before use) + +Typing `platform -help` brings up the below documentation on usage. + +``` +Mattermost commands to help configure the system + +NAME: + platform -- platform configuation tool + +USAGE: + platform [options] + +FLAGS: + -config="config.json" Path to the config file + + -email="user@example.com" Email address used in other commands + + -password="mypassword" Password used in other commands + + -team_name="name" The team name used in other commands + + -role="admin" The role used in other commands + valid values are + "" - The empty role is basic user + permissions + "admin" - Represents a team admin and + is used to help administer one team. + "system_admin" - Represents a system + admin who has access to all teams + and configuration settings. +COMMANDS: + -create_team Creates a team. It requires the -team_name + and -email flag to create a team. + Example: + platform -create_team -team_name="name" -email="user@example.com" + + -create_user Creates a user. It requires the -team_name, + -email and -password flag to create a user. + Example: + platform -create_user -team_name="name" -email="user@example.com" -password="mypassword" + + -assign_role Assigns role to a user. It requires the -role, + -email and -team_name flag. You may need to log out + of your current sessions for the new role to be + applied. + Example: + platform -assign_role -team_name="name" -email="user@example.com" -role="admin" + + -reset_password Resets the password for a user. It requires the + -team_name, -email and -password flag. + Example: + platform -reset_password -team_name="name" -email="user@example.com" -password="newpassword" + + -permanent_delete_user Permanently deletes a user and all related information + including posts from the database. It requires the + -team_name, and -email flag. You may need to restart the + server to invalidate the cache + Example: + platform -permanent_delete_user -team_name="name" -email="user@example.com" + + -permanent_delete_team Permanently deletes a team and all users along with + all related information including posts from the database. + It requires the -team_name flag. You may need to restart + the server to invalidate the cache. + Example: + platform -permanent_delete_team -team_name="name" + + -version Display the current of the Mattermost platform + + -help Displays this help page` +``` diff --git a/doc/install/Configuration-Settings.md b/doc/install/Configuration-Settings.md index a92893753..5f9b3b62d 100644 --- a/doc/install/Configuration-Settings.md +++ b/doc/install/Configuration-Settings.md @@ -29,7 +29,12 @@ Set this key to enable embedding of YouTube video previews based on hyperlinks a #### Webhooks ```"EnableIncomingWebhooks": true``` -Developers building integrations can create webhook URLs for channels and private groups. Please see http://mattermost.org/webhooks to learn about creating webhooks, view samples, and to let the community know about integrations you have built. "true": Incoming webhooks will be allowed. To manage incoming webhooks, go to Account Settings -> Integrations. The webhook URLs created in Account Settings can be used by external applications to create posts in any channels or private groups that you have access to; “falseâ€: The Integrations tab of Account Settings is hidden and incoming webhooks are disabled. +Developers building integrations can create webhook URLs for channels and private groups. Please see http://mattermost.org/webhooks to learn about creating webhooks, view samples, and to let the community know about integrations you have built. "true": Incoming webhooks will be allowed. To manage incoming webhooks, go to **Account Settings -> Integrations**. The webhook URLs created in Account Settings can be used by external applications to create posts in any channels or private groups that you have access to; “falseâ€: The Integrations > Incoming Webhooks section of Account Settings is hidden and all incoming webhooks are disabled. + +Security note: By enabling this feature, users may be able to perform [phishing attacks](https://en.wikipedia.org/wiki/Phishing) by attempting to impersonate other users. To combat these attacks, a BOT tag appears next to all posts from a webhook. Enable at your own risk. + +```"EnableOutgoingWebhooks": true``` +Developers building integrations can create webhook tokens for public channels. Trigger words are used to fire new message events to external integrations. For security reasons, outgoing webhooks are only available in public channels. Please see our [documentation page](https://github.com/mattermost/platform/blob/master/doc/integrations/webhooks/Outgoing-Webhooks.md) to learn about creating webhooks and view samples. "true": Outgoing webhooks will be allowed. To manage outgoing webhooks, go to **Account Settings -> Integrations**; “falseâ€: The Integrations > Outgoing Webhooks section of Account Settings is hidden and all outgoing webhooks are disabled. Security note: By enabling this feature, users may be able to perform [phishing attacks](https://en.wikipedia.org/wiki/Phishing) by attempting to impersonate other users. To combat these attacks, a BOT tag appears next to all posts from a webhook. Enable at your own risk. @@ -58,6 +63,12 @@ Maximum number of users per team, including both active and inactive users. ```"RestrictCreationToDomains": ""``` Teams can only be created by a verified email from this list of comma-separated domains (e.g. "corp.mattermost.com, mattermost.org"). +```"RestrictTeamNames": true``` +"true": Newly created team names cannot contain the following restricted words: www, web, admin, support, notify, test, demo, mail, team, channel, internal, localhost, dockerhost, stag, post, cluster, api, oauth; “falseâ€: Newly created team names are not restricted. + +```"EnableTeamListing": false``` +"true": Teams that are configured to appear in the team directory will appear on the system main page. Teams can configure this setting from **Team Settings -> Include this team in the Team Directory**; "true": Team directory on the system main page is disabled. + ### SQL Settings @@ -130,9 +141,16 @@ Port of SMTP email server. ```"InviteSalt": "bjlSR4QqkXFBr7TP4oDzlfZmcNuH9YoS"``` 32-character (to be randomly generated via Admin Console) salt added to signing of email invites. - ```"PasswordResetSalt": "vZ4DcKyVVRlKHHJpexcuXzojkE5PZ5eL"``` -32-character (to be randomly generated via Admin Console) salt added to signing of password reset emails. +32-character (to be randomly generated via Admin Console) salt added to signing of password reset emails. + +#### Push Notification Settings + +```"SendPushNotifications": false``` +"true": Your mattermsot server sends mobile push notifications to the server specified in **PushNotificationServer**; "false": Mobile push notifications are disabled. + +```"PushNotificationServer": ""``` +Address of the proxy server that re-sends push notifications to their respective services like APNS (Apple Push Notification Services). ### File Settings @@ -257,19 +275,19 @@ Settings to configure account and team creation using GitLab OAuth. “trueâ€: Allow team creation and account signup using GitLab OAuth. To configure, input the **Secret** and **Id** credentials. ```"Secret": ""``` -Obtain this value by logging into your GitLab account. Go to Profile Settings -> Applications -> New Application, enter a Name, then enter Redirect URLs "https://<your-mattermost-url>/login/gitlab/complete" (example: https://example.com:8065/login/gitlab/complete) and "https://<your-mattermost-url>/signup/gitlab/complete". +Obtain this value by logging into your GitLab account. Go to Profile Settings -> Applications -> New Application, enter a Name, then enter Redirect URLs `https://<your-mattermost-url>/login/gitlab/complete` (example: `https://example.com:8065/login/gitlab/complete`) and `https://<your-mattermost-url>/signup/gitlab/complete`. ```"Id": ""``` -Obtain this value by logging into your GitLab account. Go to Profile Settings -> Applications -> New Application, enter a Name, then enter Redirect URLs "https://<your-mattermost-url>/login/gitlab/complete" (example: https://example.com:8065/login/gitlab/complete) and "https://<your-mattermost-url>/signup/gitlab/complete". +Obtain this value by logging into your GitLab account. Go to Profile Settings -> Applications -> New Application, enter a Name, then enter Redirect URLs `https://<your-mattermost-url>/login/gitlab/complete` (example: `https://example.com:8065/login/gitlab/complete`) and `https://<your-mattermost-url>/signup/gitlab/complete`. ```"AuthEndpoint": ""``` -Enter https://<your-gitlab-url>/oauth/authorize (example: https://example.com:3000/oauth/authorize). Use HTTP or HTTPS depending on how your server is configured. +Enter `https://<your-gitlab-url>/oauth/authorize` (example: `https://example.com:3000/oauth/authorize`). Use HTTP or HTTPS depending on how your server is configured. ```"TokenEndpoint": ""``` -Enter https://<your-gitlab-url>/oauth/authorize (example: https://example.com:3000/oauth/token). Use HTTP or HTTPS depending on how your server is configured. +Enter `https://<your-gitlab-url>/oauth/authorize` (example: `https://example.com:3000/oauth/token`). Use HTTP or HTTPS depending on how your server is configured. ```"UserApiEndpoint": ""``` -Enter https://<your-gitlab-url>/oauth/authorize (example: https://example.com:3000/api/v3/user). Use HTTP or HTTPS depending on how your server is configured. +Enter `https://<your-gitlab-url>/oauth/authorize` (example: `https://example.com:3000/api/v3/user`). Use HTTP or HTTPS depending on how your server is configured. ## Config.json Settings Not in System Console @@ -280,17 +298,6 @@ System Console allows an IT Admin to update settings defined in `config.json`. H ```"EnableOAuthServiceProvider": false``` â€trueâ€: Allow Mattermost to function as an OAuth provider, allowing 3rd party apps access to your user store for authentication. -### Push Notification Settings - -```"ApplePushServer": ""``` -Setting for features in development. - -```"ApplePushCertPublic": ""``` -Setting for features in development. - -```"ApplePushCertPrivate": ""``` -Setting for features in development. - ### File Settings ```"InitialFont": "luximbi.ttf"``` diff --git a/doc/install/Production-Debian.md b/doc/install/Production-Debian.md index e97f3188b..13ff051a3 100644 --- a/doc/install/Production-Debian.md +++ b/doc/install/Production-Debian.md @@ -269,7 +269,8 @@ exit 0 ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES"; ssl_prefer_server_ciphers on; - + ssl_session_cache shared:SSL:10m; + # add to location / above location / { gzip off; diff --git a/doc/install/Production-Ubuntu.md b/doc/install/Production-Ubuntu.md index e792a551c..1022f30cf 100644 --- a/doc/install/Production-Ubuntu.md +++ b/doc/install/Production-Ubuntu.md @@ -24,21 +24,31 @@ * ```postgre=# \q``` 1. You can exit the postgres account by typing: * ``` exit``` +1. Allow Postgres to listen on all assigned IP Addresses + * ```sudo vi /etc/postgresql/9.3/main/postgresql.conf``` + * Uncomment 'listen_addresses' and change 'localhost' to '*' +1. Alter pg_hba.conf to allow the mattermost server to talk to the postgres database + * ```sudo vi /etc/postgresql/9.3/main/pg_hba.conf``` + * Add the following line to the 'IPv4 local connections' + * host all all 10.10.10.2/32 md5 +1. Reload Postgres database + * ```sudo /etc/init.d/postgresql reload``` + ## Set up Mattermost Server 1. For the purposes of this guide we will assume this server has an IP address of 10.10.10.2 +1. For the sake of making this guide simple we located the files at `/home/ubuntu/mattermost`. In the future we will give guidance for storing under `/opt`. +1. We have also elected to run the Mattermost Server as the `ubuntu` account for simplicity. We recommend setting up and running the service under a `mattermost` user account with limited permissions. 1. Download the latest Mattermost Server by typing: - * ``` wget https://github.com/mattermost/platform/releases/download/v1.1.0/mattermost.tar.gz``` + * ``` wget https://github.com/mattermost/platform/releases/download/v1.2.1/mattermost.tar.gz``` 1. Unzip the Mattermost Server by typing: * ``` tar -xvzf mattermost.tar.gz``` -1. For the sake of making this guide simple we located the files at `/home/ubuntu/mattermost`. In the future we will give guidance for storing under `/opt`. -1. We have also elected to run the Mattermost Server as the `ubuntu` account for simplicity. We recommend setting up and running the service under a `mattermost` user account with limited permissions. 1. Create the storage directory for files. We assume you will have attached a large drive for storage of images and files. For this setup we will assume the directory is located at `/mattermost/data`. * Create the directory by typing: * ``` sudo mkdir -p /mattermost/data``` * Set the ubuntu account as the directory owner by typing: * ``` sudo chown -R ubuntu /mattermost``` -1. Configure Mattermost Server by editing the config.json file at /home/ubuntu/mattermost/config` +1. Configure Mattermost Server by editing the config.json file at `/home/ubuntu/mattermost/config` * ``` cd ~/mattermost/config``` * Edit the file by typing: * ``` vi config.json``` @@ -154,7 +164,8 @@ exec bin/platform ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; ssl_prefer_server_ciphers on; - + ssl_session_cache shared:SSL:10m; + # add to location / above location / { gzip off; diff --git a/doc/install/Requirements.md b/doc/install/Requirements.md index b877b6dc0..162caf90d 100644 --- a/doc/install/Requirements.md +++ b/doc/install/Requirements.md @@ -4,10 +4,10 @@ Supported Operating Systems and Browsers for the Mattermost Web Client include: -- PC: Windows 7, Windows 8 (Chrome 43+, Firefox 38+, Internet Explorer 10+) -- Mac: OS 10 (Safari 7, Chrome 43+) +- PC: Windows 7, Windows 8, Windows 10 (Chrome 43+, Firefox 38+, Internet Explorer 11, Edge) +- Mac: OS 10 (Safari 9, Chrome 43+) - Linux: Arch 4.0.0 (Chrome 43+) -- iPhone 4s and higher (Safari on iOS 8.3+, Chrome 43+) +- iPhone 4s and higher (Safari on iOS 9+, Chrome 43+) - Android 5 and higher (Chrome 43+) ### Email Client diff --git a/doc/install/Troubleshooting.md b/doc/install/Troubleshooting.md index 51699a39c..deae7717d 100644 --- a/doc/install/Troubleshooting.md +++ b/doc/install/Troubleshooting.md @@ -12,7 +12,7 @@ - If the System Administrator account becomes unavailable, a person leaving the organization for example, you can set a new system admin from the commandline using `./platform -assign_role -team_name="yourteam" -email="you@example.com" -role="system_admin"`. - After assigning the role the user needs to log out and log back in before the System Administrator role is applied. -#### Error Messages +#### Mattermost Error Messages The following is a list of common error messages and solutions: @@ -22,15 +22,45 @@ The following is a list of common error messages and solutions: ###### `x509: certificate signed by unknown authority` in server logs when attempting to sign-up - - This error may appear when attempt to use a self-signed certificate to setup SSL, which is not yet supported by Mattermost. You + - This error may appear when attempt to use a self-signed certificate to setup SSL, which is not yet supported by Mattermost. - **Solution:** Set up a load balancer like Ngnix [per production install guide](https://github.com/mattermost/platform/blob/master/doc/install/Production-Ubuntu.md#set-up-nginx-with-ssl-recommended). A ticket exists to [add support for self-signed certificates in future](x509: certificate signed by unknown authority). ###### `panic: runtime error: invalid memory address or nil pointer dereference` - This error can occur if you have manually manipulated the Mattermost database, typically with deletions. Mattermost is designed to serve as a searchable archive, and manual manipulation of the database elements compromises integrity and may prevent upgrade. - **Solution:** Restore from database backup created prior to manual database updates, or reinstall the system. +### Troubleshooting GitLab Mattermost + +- If you're having issues installing GitLab Mattermost with GitLab Omnibus, as a first step please turn on logging by updating the [log settings](https://github.com/mattermost/platform/blob/master/doc/install/Configuration-Settings.md#log-file-settings) section in your `config.json` file installed by omnibus, and they try a general web search for the error message you receive. + +#### GitLab Mattermost Error Messages + +###### `We received an unexpected status code from the server (200)` + +- If you have upgraded from a pre-released version of GitLab Mattermost or if an unforseen issue has arrisen during the [upgrade procedure](https://github.com/mattermost/platform/blob/master/doc/install/Upgrade-Guide.md), you may be able to restore Mattermost using the following procedure: + - `sudo stop mattermost`, so DB can be dropped + - `sudo gitlab-ctl reconfigure` + - `sudo -u gitlab-psql /opt/gitlab/embedded/bin/dropdb -h /var/opt/gitlab/postgresql mattermost_production` + - `sudo start mattermost` + - `sudo gitlab-ctl reconfigure` + - [Manually set up GitLab SSO](https://github.com/mattermost/platform/blob/master/doc/integrations/Single-Sign-On/Gitlab.md) by copying Secret and ID into `/var/opt/gitlab/mattermost/config.json` + - `sudo gitlab-ctl restart` + ###### `Token request failed` - This error can appear in the web browser after attempting to create a new team with GitLab SSO enabled - **Solutions:** 1. Check that your SSL settings for the SSO provider match the `http://` or `https://` choice selected in `config.json` under `GitLabSettings` 2. Follow steps 1 to 3 of the manual [GitLab SSO configuration procedure](https://github.com/mattermost/platform/blob/master/doc/integrations/Single-Sign-On/Gitlab.md) to confirm your `Secret` and `Id` settings in `config.json` match your GitLab settings, and if they don't, manually update `config.json` to the correct settings and see if this clears the issue. + +###### `We couldn't find the existing account` + - This error appears when a user attempts to sign in using a single-sign-on option with an account that was not created using that single-sign-on option. For example, if a user creates Account A using email sign-up, then attempts to sign-in using GitLab SSO, the error appears since Account A was not created using GitLab SSO. + - **Solution:** + - If you're switching from email auth to GitLab SSO, and you're getting this issue on an admin account, consider deactivating your email-based account, then creating a new account with System Admin privileges using GitLab SSO. Specifically: + 1. Deactivate your email-based System Admin account (note: this process is [scheduled to improve](https://mattermost.atlassian.net/browse/PLT-975)) + 1. Temporarily turn off email verification (**System Console** > **Email Settings** > **Require Email Verification** > **false**, or set `"RequireEmailVerification": false` in `config.json`). + 2. Change email for account to random address so you can create a new GitLab SSO account using your regular address. + 2. Create a new Mattermost account using GitLab SSO + 1. With GitLab SSO enabled, go to `https://domain.com/teamname` and sign-up for a new Mattermost account using your GitLab SSO account with preferred email address. + 2. [Upgrade the new account to System Admin privileges](https://github.com/mattermost/platform/blob/master/doc/install/Troubleshooting.md#lost-system-administrator-account). + 3. Deactivate the previous System Admin account that used email authentication. + 1. Using the new GitLab SSO System Admin account go to **System Console** > **[TEAMNAME]** > **Users**, find the previous account and set it to "Inactive" diff --git a/doc/install/Upgrade-Guide.md b/doc/install/Upgrade-Guide.md index 7f4eeaeb9..edcc754f8 100644 --- a/doc/install/Upgrade-Guide.md +++ b/doc/install/Upgrade-Guide.md @@ -4,6 +4,8 @@ Each release of Mattermost contains logic to upgrade it from the previously major build version. For example, version 1.2 upgrades the database and configuration data schema for a Mattermost version 1.1 server. The following procedure outlines how to upgrade Mattermost to the next major release version. +If you're upgrading across multiple major releases, from 1.0.x to 1.2.x for example, please run the following procedure once for each incremental upgrade, in sequential order. + 1. Download the **next major build release** of your server 1. Determine the current version of your Mattermost server 1. Go to any team site, opening the main menu at the top right of the left-hand sidebar and selecting **About Mattermost** @@ -11,9 +13,9 @@ Each release of Mattermost contains logic to upgrade it from the previously majo 1. For example, if your current version is 1.1.0, you want to select version 1.2.0. 1. In some cases there will be **minor build releases**, such as 1.2.1 and 1.2.2. The minor build number indicates a bug fix or security issue release. Testing on minor build versions is less extensive than on major build versions and it is recommended that you use the minor build only if you need the specific additions included. 3. Review Release Notes - 1. Check the release notes for the version of Mattermost you are able to install, and note any setting changes in the **Compatibility** section that apply to your deployment + 1. Check the release notes for the version of Mattermost you are able to install, and note any setting changes in the **Compatibility** section that apply to your deployment (Release notes across versions are available from the [CHANGELOG](https://github.com/mattermost/platform/blob/master/CHANGELOG.md)). 4. Download the `mattermost.tar.gz` file with the correct version for your upgrade - 1. You can use `wget` to retrieve a specific version. For example, to download v1.1.0 run `wget https://github.com/mattermost/platform/releases/download/v1.1.0/mattermost.tar.gz` + 1. You can use `wget` to retrieve a specific version. For example, to download v1.1.0 run `wget https://github.com/mattermost/platform/releases/download/v1.x.x/mattermost.tar.gz` 2. Stop the Mattermost Server 1. As best practice, consider posting to the Town Square channel of active teams pre-announcing the scheduled downtime to apply these upgrade procedures 2. To stop the server run `sudo stop mattermost` @@ -26,9 +28,9 @@ Each release of Mattermost contains logic to upgrade it from the previously majo 5. Restore the state of your server by copying the backed up version of `config.json` in place of the default `config.json` 6. Start your server and address any setting changes relevant in the latest version of Mattermost 1. Run `sudo start mattermost` - 2. The server will upgrade your database schema to be compatibile with the new release, as well as upgrade your `config.json` file to the latest format, using default values for new settings added - 3. Go to the System Console to update any settings that have been added or modified based on the **Compatibility** documentation in the release notes -7. Test the system is working by going to the URL of an existing team + 2. Go to the **System Console** to update any settings that have been added or modified based on the **Compatibility** section in the release notes of the version you are installing (Release notes across versions are available from the [CHANGELOG](https://github.com/mattermost/platform/blob/master/CHANGELOG.md)). + 1. Opening the System Console and saving a change will upgrade your `config.json` schema to the latest version using default values for new settings added +7. Test the system is working by going to the URL of an existing team. You may need to refresh your Mattermost browser page in order to get the latest updates from the upgrade ### Upgrading from Mattermost Beta (Version 0.7) diff --git a/doc/integrations/Single-Sign-On/GitHub-Enterprise.md b/doc/integrations/Single-Sign-On/GitHub-Enterprise.md new file mode 100644 index 000000000..6f6633846 --- /dev/null +++ b/doc/integrations/Single-Sign-On/GitHub-Enterprise.md @@ -0,0 +1,20 @@ +## Configuring GitHub Enterprise Single-Sign-On (unofficial) + +Note: Because the authentication interface of GitHub Enterprise is similar to that of GitLab, the GitLab SSO feature can be used to unofficially also support GitHub Enterprise SSO. + +Follow these steps to configure Mattermost to use Github Enterprise as a single-sign-on (SSO) service for team creation, account creation and sign-in using the GitLab SSO interface. + +1. Login to your GitHub Enterprise account and go to the Applications section in Profile Settings. +2. Add a new application called "Mattermost" with the following as Authorization callback URL: + * `<your-mattermost-url>` (example: http://localhost:8065) + +3. Submit the application and copy the given _Id_ and _Secret_ into the appropriate _GitLabSettings_ fields in config/config.json + +4. Also in config/config.json, set _Enable_ to `true` for the _gitlab_ section, leave _Scope_ blank and use the following for the endpoints: + * _AuthEndpoint_: `https://<your-github-enterprise-url>/oauth/authorize` (example https://github.com/oauth/authorize) + * _TokenEndpoint_: `https://<your-github-enterprise-url>/oauth/access_token` + * _UserApiEndpoint_: `https://<your-github-enterprise-url>/api/v3/user` + +5. (Optional) If you would like to force all users to sign-up with GitHub Enterprise only, in the _ServiceSettings_ section of config/config.json set _DisableEmailSignUp_ to `true`. + +6. Restart your Mattermost server to see the changes take effect. diff --git a/doc/integrations/Single-Sign-On/GitHub.md b/doc/integrations/Single-Sign-On/GitHub.md new file mode 100644 index 000000000..56e2d1c72 --- /dev/null +++ b/doc/integrations/Single-Sign-On/GitHub.md @@ -0,0 +1,24 @@ +## Configuring GitHub Single-Sign-On (unofficial) + +Note: Because the authentication interface of GitHub is similar to that of GitLab, the GitLab SSO feature can be used to unofficially also support GitHub SSO. + +Follow these steps to configure Mattermost to use Github as a single-sign-on (SSO) service for team creation, account creation and sign-in using the GitLab SSO interface. + +1. Login to your GitHub account and go to the Applications section in Profile Settings. +2. Add a new application called "Mattermost" with the following as Authorization callback URL: + * `<your-mattermost-url>` (example: http://localhost:8065) + +3. Submit the application and copy the given _Id_ and _Secret_ into the appropriate _GitLabSettings_ fields in config/config.json + +4. Also in config/config.json, set _Enable_ to `true` for the _gitlab_ section, leave _Scope_ blank and use the following for the endpoints: + * _AuthEndpoint_: `https://github.com/login/oauth/authorize` + * _TokenEndpoint_: `https://github.com/login/oauth/access_token` + * _UserApiEndpoint_: `https://api.github.com/user` + +6. (Optional) If you would like to force all users to sign-up with GitHub only, +in the _ServiceSettings_ section of config/config.json set _DisableEmailSignUp_ +to `true`. + +6. Restart your Mattermost server to see the changes take effect. + +7. Tell the users to set their public email for GitHub at the [Public profile page](https://github.com/settings/profile). Mattermost uses the email to create account. diff --git a/doc/integrations/Single-Sign-On/Gitlab.md b/doc/integrations/Single-Sign-On/Gitlab.md index 1242fd13e..f0acc0e66 100644 --- a/doc/integrations/Single-Sign-On/Gitlab.md +++ b/doc/integrations/Single-Sign-On/Gitlab.md @@ -9,7 +9,7 @@ Follow these steps to configure Mattermost to use GitLab as a single-sign-on (SS (Note: If your GitLab instance is set up to use SSL, your URIs must begin with https://. Otherwise, use http://). -3. Submit the application and copy the given _Id_ and _Secret_ into the appropriate _SSOSettings_ fields in config/config.json +3. Submit the application and copy the given _Id_ and _Secret_ into the appropriate _GitLabSettings_ fields in config/config.json 4. Also in config/config.json, set _Enable_ to `true` for the _gitlab_ section, leave _Scope_ blank and use the following for the endpoints: * _AuthEndpoint_: `https://<your-gitlab-url>/oauth/authorize` (example https://example.com/oauth/authorize) diff --git a/doc/integrations/webhooks/Incoming-Webhooks.md b/doc/integrations/webhooks/Incoming-Webhooks.md index b5ae0fde2..7373892ad 100644 --- a/doc/integrations/webhooks/Incoming-Webhooks.md +++ b/doc/integrations/webhooks/Incoming-Webhooks.md @@ -1,6 +1,6 @@ # Incoming Webhooks -Incoming webhooks allow external applications, written in the programming language of your choice--to post messages into Mattermost channels and private groups by sending a specifically formatted JSON payload via HTTP POST request to a secret Mattermost URL generated specifically for each application. +Incoming webhooks allow external applications, written in the programming language of your choice--to post messages into Mattermost channels, private groups and direct messages by sending a specifically formatted JSON payload via HTTP POST request to a secret Mattermost URL generated specifically for each application. A couple key points: @@ -69,7 +69,7 @@ Additional Notes: 1. For the HTTP request body, if `Content-Type` is specified as `application/json` in the headers of the HTTP request then the body of the request can be direct JSON. For example, ```{"text": "Hello, this is some text."}``` -2. You can override the channel specified in the webhook definition by specifying a `channel` parameter in your payload. For example, you might have a single webhook created for _Town Square_, but you can use ```payload={"channel": "off-topic", "text": "Hello, this is some text."}``` to send a message to the _Off-Topic_ channel using the same webhook URL +2. You can override the channel specified in the webhook definition by specifying a `channel` parameter in your payload. For example, you might have a single webhook created for _Town Square_, but you can use ```payload={"channel": "off-topic", "text": "Hello, this is some text."}``` to send a message to the _Off-Topic_ channel using the same webhook URL. If an `@` symbol followed by a username is specified, then the message will be sent to that user's direct message channel 1. In addition, with **Enable Overriding of Usernames from Webhooks** turned on, you can also override the username the message posts as by providing a `username` parameter in your JSON payload. For example, you might want your message looking like it came from a robot so you can use ```payload={"username": "robot", "text": "Hello, this is some text."}``` to change the username of the post to robot. Note, to combat any malicious users from trying to use this to perform [phishing attacks](https://en.wikipedia.org/wiki/Phishing) a `BOT` indicator appears next to posts coming from webhooks @@ -81,18 +81,27 @@ Additional Notes: ### Slack Compatibility -As mentioned above, Mattermost makes it easy to take integrations written for Slack's proprietary JSON payload format and repurpose them to become Mattermost integrations. The following automatic translations are supported: +Mattermost makes it easy to take integrations written for Slack's proprietary JSON payload format and repurpose them to become Mattermost integrations. For example: + +#### Connecting Mattermost to GitLab using Slack UI + +GitLab is the leading open-source alternative to GitHub and offers built-in integrations with Slack. Rather than having to change code to support Mattermost, users can add Mattermost webhooks directly into the interface for Slack. + +1. In GitLab, go to **Settings** > **Services** and select **Slack**. +2. Paste in the incoming webhook URL provided by Mattermost from under **Account Settings** > **Integration** > **Incoming Webhooks**. +3. Optionally set the **Username** you'd like displayed when the notification is made. Leave the **Channel** field blank +4. Click **Save** then test the settings to confirm posts will be made to Mattermost + +#### Translating Slack's proprietary data format to Mattermost + +The following describes the automatic translations Mattermost performance to process data coming from Slack: 1. Payloads designed for Slack using `<>` to note the need to hyperlink a URL, such as ```payload={"text": "<http://www.mattermost.com/>"}```, are translated to the equivalent markdown in Mattermost and rendered the same as you would see in Slack 2. Similiarly, payloads designed for Slack using `|` within a `<>` to define linked text, such as ```payload={"text": "Click <http://www.mattermost.com/|here> for a link."}```, are also translated to the equivalent markdown in Mattermost and rendered the same as you would see in Slack -3. Like Slack, by overriding the channel name with an @username, such as payload={"text": "Hi", channel: "@jim"}, you can send the message to a user through your direct message chat -4. Channel names can be prepended with a #, like they are in Slack incoming webhooks, and the message will still be sent to the correct channel +3. Like Slack, by overriding the channel name with a `@username`, such as `payload={"text": "Hi", channel: "@jim"}`, you can send the message to a user through your direct message chat +4. Channel names can be prepended with a `#`, like they are in Slack incoming webhooks, and the message will still be sent to the correct channel To see samples and community contributions, please visit <http://mattermost.org/webhooks>. -#### Known Issues in v1.1 - -- The `attachments` payload used in Slack is not yet supported -- Overriding of usernames does not yet apply to notifications (fixed on master) -- Cannot supply `icon_emoji` to override the message icon -- Webhook UI fails when connected to deleted channel (fixed on master) +#### Known Issues +- Mattermost does not yet support Slack's feature of using _icon_emoji_ to override the message icon. diff --git a/doc/process/accepting-pull-request.md b/doc/process/accepting-pull-request.md new file mode 100644 index 000000000..f2bbb3f05 --- /dev/null +++ b/doc/process/accepting-pull-request.md @@ -0,0 +1,28 @@ +# Accepting Pull Requests (APRs) + +Per the [Contributor Guide](https://github.com/mattermost/platform/blob/master/CONTRIBUTING.md), only PRs that reference Jira tickets with the "accepting pull requests" label should be submitted to this repo. This system ensures: + +1. Proposed changes have been thoughtfully reviewed +2. Proposed changes can be tested, documented, and supported by volunteers +3. The change meets the [fast, obvious, forgiving](http://www.mattermost.org/design-principles/) design principle for the project. +4. The change [aligns to the stated purpose of the project](http://www.mattermost.org/vision/#mattermost-teams-v1) + +Key contributors and core team members are responsible opening Jira tickets that meet the above requirements, which are then reviewed in triage meetings. + +When opening Jira tickets for accepting-pull-requests, please: + +1. Use titles that clearly describe the needed change and its value +2. Include (Proposed APR) in title, so triage team knows to add the APR tag if appropriate +3. Provide unambiguous description so that feature can be tested by any volunteer +4. Link back to community discussions related to this change +5. Apply "accepting-pull-requests", and optionally as "good-first-contribution". +6. Post link back to community channels + +Example of post back to the community: + +``` +Thanks @[USERNAME], + +I created a ticket [for accepting pull requests on this issue](http://link). It will be reviewed in the triage meeting for addition to [the Accepting Pull Requests issues list](https://mattermost.atlassian.net/browse/PLT-797?filter=10101). [Code Contribution Guidelines](https://github.com/mattermost/platform/blob/master/CONTRIBUTING.md) are available for anyone interested in contributing to this project. +``` + diff --git a/doc/process/documentation-guidelines.md b/doc/process/documentation-guidelines.md index 59ed0a445..cbfeec850 100644 --- a/doc/process/documentation-guidelines.md +++ b/doc/process/documentation-guidelines.md @@ -41,7 +41,7 @@ This procedure works on Linux servers running Python 2.6 and higher. ### Use headings -Headings in markdown provide anchors that can be used to easily reference sub-sections of long pieces of documentation. This is preferrable to just numbering sections without headings. +Headings in markdown provide anchors that can be used to easily reference sub-sections of long pieces of documentation. This is preferable to just numbering sections without headings. ##### Correct: @@ -77,7 +77,31 @@ H3, H4, H5 headings should be "Sentence case" and can be any length. These headers are smaller and used to summarize sections. H3 can be considered either a large or small heading. -These conventions are new, so there's flexibility around them, when you're not sure, consider the convention here as default. +These conventions are new, so there's flexibility around them, when you're not sure, consider the convention here as default. + +### Sub-section headings should end with a colon + +For readability and clear layout, end a sub-section heading with a colon + +##### Correct: + +---- + +Service Based: + +- [AWS Elastic Beanstalk Setup](https://github.com/mattermost/platform/blob/master/doc/install/Amazon-Elastic-Beanstalk.md) + +---- +##### Incorrect: + +---- + +Service Based + +- [AWS Elastic Beanstalk Setup](https://github.com/mattermost/platform/blob/master/doc/install/Amazon-Elastic-Beanstalk.md) + + +---- ### One instruction per line @@ -102,20 +126,20 @@ A support person should be able to say "Did you complete step 7?" instead of "Di ---- -### Lists end without periods +### End Lists Consistently -Sentences within bullet points or numbered lists should end in normal punctuation. The sentence or fragment at the end of a bullet point should not have a period. +Full sentences in lists should end with proper punctuation. If one point in a bulleted list or numbered list ends with a period, end all points in the list with a period. If all points in the list are fragments, use no end punctuation. ##### Correct ---- -- This is a sentence within a bullet point. This is the end of a bullet point without a period +- This is an example of a bullet point that ends with a period. ---- ##### Incorrect ---- -- This is an incorrect ending of a bullet point with a period. +- Example of an incorrect period at the end of a bullet point. ---- ### Avoid Passive Phrases diff --git a/doc/process/overview.md b/doc/process/overview.md new file mode 100644 index 000000000..8a4c0459d --- /dev/null +++ b/doc/process/overview.md @@ -0,0 +1,143 @@ +# Development Process Overview + +This document describes the process through which feedback and design discussions flow into community systems, then into tickets, then into pull requests, then into monthly releases based on the purpose of the product. + +## Purpose + +The core offer for users of Mattermost is: + +- **All your team communication in one place, searchable and accessible anywhere.** + +The design is successful if 100% of team members use Mattermost for internal communications, and are largely off of email and propreitary SaaS products that lock-in user data as part of their business model. + +See [Mattermost scope statement](http://www.mattermost.org/vision/#mattermost-teams-v1) for more details. + +## Community Systems + +The process for managing bugs, feature ideas, troubleshooting, and general discussions are different, so different systems are used to best support each process. Each system ties into Mattermost through notifications to internal channels, so the core team and key contributors can keep up-to-date with community feedback across all systems throughout the day. + +Systems include: + +### Feature Idea Forum + +A forum for filing, upvoting and discussing feature ideas. Reviewed monthly by the core team as part of the planning process for new releases. + +See [Contributing Feature Ideas](http://www.mattermost.org/feature-requests/) for more details on how to use this system. + +_Note: If you want to promote an idea filed in the feature idea forum, or if you are out of votes and want to find like-minded colleagues to vote for you, consider posting to the [Feature Idea Discussion ](https://forum.mattermost.org/t/how-to-use-feature-idea-discussion/63/1) category in the General Forum._ + + +### Troubleshooting Forum + +A system for peer-to-peer support of installation and configuration questions. + +See [Troubleshooting Forum](https://forum.mattermost.org/t/about-the-trouble-shooting-category/150/1). + + +### GitHub Issues + +A system primarily used by Mattermost for reporting bugs with clear statements on repro steps and expected behavior. While it's okay to add feature requests and questions here to start conversations, moderators may ask a submitter's help to move discussions to one of the other channels. + +See [Filing Issues](http://www.mattermost.org/filing-issues/) for details on how to file issues for Mattermost in GitHub. + +Please consider using more mainstream processes for [filing feature ideas to be upvoted](https://github.com/mattermost/platform/blob/master/doc/process/overview.md#feature-idea-forum), to ask [troubleshooting questions](https://github.com/mattermost/platform/blob/master/doc/process/overview.md#troubleshooting-forum), or [general questions](https://github.com/mattermost/platform/blob/master/doc/process/overview.md#general-forum). + +### GitHub Pull Requests + +A system for submitting pull requests for changes to Mattermost. See [Pull Requests](https://github.com/mattermost/platform/blob/master/doc/process/overview.md#merge-requests) section below. + +### General Forum + +A general, peer-to-peer discussion forum with topics organized by category for general questions, trouble shooting, design feedback requests, and FAQs. Monitored and moderated by core team, which is also active on the forum. + +Read more about the [General Forum](https://forum.mattermost.org/t/welcome-to-mattermost-community-discussion/8). + +### Primary Research + +Core team members and key contributors may discuss Mattermost directly with users in a range of systems outside those listed here--in-person meetings, video-conference, usability testing, Twitter, email, etc. Those notes are shared in various Mattermost channels to inform designs. + +## Tickets + +Mattermost priorities are managed in Jira tickets, which are created by the core team via feedback from community systems as well as through the planning processes. + +### Triage + +On non-holiday weekdays new tickets are reviewed in a process called "triage", and assigned a Fix Version of "backlog", indicating the ticket has enough specificity that it can be assigned to a developer to be completed. + +By default, all tickets are created as public unless they contain sensitive information. The triage process reviews them for sufficient specifity. If the ticket is unclear, triage may reassign the ticket back to the original reporter to add more details. + +View [current issues scheduled for the next triage meeting](https://mattermost.atlassian.net/browse/PLT-1203?filter=10105). + +#### Re-triage + +If someone feels an existing ticket should be reexamined, they can add "triage" to the Fix Version and it will be routed to the triage team for review at the next meeting. + +### Release Planning + +Release planning sets the "Fix Version" of tickets to one of the upcoming monthly releases. The Fix Version is an estimate of when a feature might ship, which may change as the planning process continues, until the ticket is scheduled for a Sprint. + +### Sprint Planning + +Tickets to be completed in the upcoming two weeks are organized on Tuesdays, with input from developers, and finalized on Fridays. + +## Pull Requests + +### Core Team Weekly Rhythm + +Core team work on tickets in the active sprint on a weekly basis, which flow into GitHub Pull Requests. + +Each Pull Request needs a minimum of two reviews by other core team developers before it is merged, with possible feedback shared as reviews happen. + +Key contributors might also pick up tickets, or through conversations with the core team contribute pull requests as needed. + +### Community Contributions + +Community members following the [Contribution Guidelines](https://github.com/mattermost/platform/blob/master/CONTRIBUTING.md) might also submit pull requests. Pull requests should not disable existing functionality without a Jira ticket, which are opened [via the feature ideas process](http://www.mattermost.org/feature-requests/). + +#### Bug Fixes + +If you see an obvious bug and want to submit a fix, pull requests following the [contribution guidelines](https://github.com/mattermost/platform/blob/master/CONTRIBUTING.md) are gladly accepted. + +Examples: +- [Fix: Unable to change password #1390](https://github.com/mattermost/platform/pull/1390) +- [Fix isBrowserEdge typo #1260](https://github.com/mattermost/platform/pull/1260) + +#### Tickets Accepting Pull Requests + +If you'd like to improve the product beyond bug fixes, you can select from a list of tickets accepting pull requests prepared by the core team. + +Tickets labelled "accepting pull requests" are intended to be unambiguous projects that could be reasonably completed by contributors outside the core team and are welcome contributions. + +Tickets may have a "mana" value assigned, which is an estimate of the relative complexity of each ticket (2 is "small", "4" is medium, "8" is large). + +Even if the ticket is assigned to someone else, so long as the ticket has Status set to Open and the ticket is not in the [Active Sprint](https://mattermost.atlassian.net/browse/PLT-839?jql=status%20%3D%20Open%20AND%20sprint%20in%20openSprints%20()) contributors following the contribution guidelines are welcome to submit pull requests. + +For a list of tickets that meet this criteria, please the list of [Tickets Accepting Pull Requests](https://mattermost.atlassian.net/browse/PLT-1263?filter=10101). + +#### Documentation Improvements + +Improvements to documentation on master is highly welcome. + +Please see [documentation contribution guidelines](https://forum.mattermost.org/t/help-improve-mattermost-documentation/194) for more details. + +Examples: +- [Production installation instructions for Debian Jessie with Systemd #1134](https://github.com/mattermost/platform/pull/1134) +- [Fix deadlink to AWS file in doc #622]( https://github.com/mattermost/platform/pull/622) + +#### Minor Improvements + +Minor improvements without an Accepting Pull Request ticket may be accepted if: + +1. The contribution aligns with product scope +2. The change is high quality, and does not impose a significant burden for others to test, document and maintain your change. +3. The change aligns with the [fast, obvious, forgiving](http://www.mattermost.org/design-principles/) design principle. + +Examples: +- [Do not clear LastActivityAt for GetProfiles #1396](https://github.com/mattermost/platform/pull/1396/files) +- [Update to proxy_pass #1331](https://github.com/mattermost/platform/pull/1331) + +## Release + +Mattermost ships stable releases on the 16th of the month. Releases begin with a planning process reviewing internal designs and community feedback in the context of the product purpose. Feature development is done in weekly sprints, and releases end with feature complete, stablization, code complete and release candidate milestones prior to final release. + +See [release process documentation](https://github.com/mattermost/platform/blob/master/doc/process/release-process.md) for more details. diff --git a/doc/process/release-process.md b/doc/process/release-process.md index 96bd2b050..294f5aa79 100644 --- a/doc/process/release-process.md +++ b/doc/process/release-process.md @@ -1,68 +1,81 @@ -We're working on making internal processes in the Mattermost core team more transparent for the community. Below is a working draft of our software development process, which will be updated live as we refine our process. - -Questions, feedback, comments always welcome, - ----------- +# Mattermost Release Process Mattermost core team works on a monthly release process, with a new version shipping on the 16th of each month. This document outlines the development process for the Mattermost core team, which draws from what we find works best for us from Agile, Scrum and Software Development Lifecycle approaches. -This is a working document that will update as our process evolves. - +Notes: +- All cut-off dates are based on 10am PST (UTC-07/08) on the day stated. +- T-minus counts are measured in "working days" (weekdays other than major holidays concurrent in US and Canada) prior to release day. -### - Beginning of release -- (Ops) Queue an agenda item for first team meeting of the release to review Roadmap +### (Code complete date of previous release) Beginning of release +- Pre-work for the current release begins at the code complete date of the previous release. See "Code Complete" section below for details. -### - (10 weekdays before release date) Cut-off for major features -- No major features can be committed to the current release after this date -- (Dev) Prioritize reviewing, updating, and merging of all pull requests that are going to make it into the release - - There should be no more tickets in the [pull request queue](https://github.com/mattermost/platform/pulls) marked for the current release +### (T-minus 10 working days) Cut-off for major features +- No pull requests for major features should be submitted to the current release after this date (except if release manager decides to add "release-exception" label) +- (Ops) Post this checklist in Release channel +- (PM) Write compatibility updates for config.json and database changes [See example](https://github.com/mattermost/platform/blob/master/CHANGELOG.md#compatibility) +- (PM) Confirm changes to config.json in compatibility section of Changelog are written back to [settings documentation](https://github.com/mattermost/platform/blob/master/doc/install/Configuration-Settings.md) +- (Dev) Prioritize reviewing, updating, and merging of pull requests for current release until there are no more tickets in the [pull request queue](https://github.com/mattermost/platform/pulls) marked for the current release - (Leads) Meets to prioritize the final tickets of the release - Backlog is reviewed and major features that won’t make it are moved to next release - Triage tickets - - Review roadmap for next release -- (Marketing) Writes the "Highlights" section of the Changelog -- (PM) Write compatibility updates for config.json and database changes [See example](https://github.com/mattermost/platform/blob/master/CHANGELOG.md#compatibility) + - Finalize roadmap for next release + - Draft roadmap for release after next (used to prioritize design tasks) +- (Marketing) Drafts marketing bullet points for next release based off of roadmap +- (Marketing) Submits pull request for "Highlights" section of the Changelog +- (Marketing) Notes date of announcements in release channel - (PM) Update [Upgrade Guide](https://github.com/mattermost/platform/blob/master/doc/install/Upgrade-Guide.md) for any steps needed to upgrade to new version -- (PM) Prepare tickets for cutting RCs builds, filing issue in GitLab omnibus to take RC candidate, testing GitLab RC with Mattermost -- (Stand-up) Each team member discusses worst bug - -### - (8 weekdays before release date) Feature Complete and Stabilization -- After the cut-off time for Feature Complete, Dev prioritizes reviewing PRs and committing to master so Stabilization period can begin, with testing and high priority bug fixes -- During Stabilization period only BUGS can be committed to master, non-bug tickets are tagged for next version and wait until after a release candidate is cut to be added to master - - (PM) Review all [S1 bugs](https://mattermost.atlassian.net/secure/IssueNavigator.jspa?mode=hide&requestId=10600) and mark important ones as high priority - - (Dev + PM) Exceptions can be made by triage team consensus across PM and Dev. List of approved changes for release candidate 1 here: https://mattermost.atlassian.net/issues/?filter=10204 -- (PM) Documentation +- (PM) Prepare tickets for [cutting RC builds](https://mattermost.atlassian.net/browse/PLT-985), [creating the final release candidate](https://mattermost.atlassian.net/browse/PLT-986), [creating AMIs](https://mattermost.atlassian.net/browse/PLT-1213), and [testing GitLab RC with Mattermost](https://mattermost.atlassian.net/browse/PLT-1013) +- (Stand-up) Each team member discusses worst bug (10-15s) + +### (T-minus 8 working days) Feature Complete and Stabilization +- No pull requests for features can be submitted to the current release after this date (except if release manager add "release-exception" label to Jira ticket) +- (Ops) Post this checklist in Release channel +- (Dev) Prioritize reviewing, updating, and merging of pull requests for current release until there are no more tickets in the [pull request queue](https://github.com/mattermost/platform/pulls) marked for the current release +- **Stablization** period begins when all features for release have been committed. + - During this period, only **bugs** can be committed to master. Non-bug pull requests are tagged for next version and wait until after a release candidate is cut to be committed to master + - (RM) Exceptions can be made by release manager by setting priority to "Highest" and labelling "release-exception", which will add ticket to [Hotfix list for release candidate](https://mattermost.atlassian.net/issues/?filter=10204). + - (PM) Review all [Severity 1 bugs (data loss or security)](https://mattermost.atlassian.net/secure/IssueNavigator.jspa?mode=hide&requestId=10600) to consider for adding to Hotfix list. +- (PM) Complete documentation - (PM) Make Changelog PR with updates for latest feature additions and changes - (PM) Make Changelog PR with updates to contributors - (PM) Make NOTICE.txt PR for any new libraries added from dev, if not added already - (PM) Prioritize any developer documentation tickets -- (PM and devs) Sign-off testing of their feature areas (i.e. PM/dev either signs-off that their area is well tested, or they flag that potential quality issues may exist) -- (Ops) Mail out mugs to any new contributors -- (Team) Select "Top Contributor" for the release from external contributions to be mentioned in release announcement -- (Marketing) Decides announce date (discuss in meeting) + - (PM) Draft [GitLab ticket](https://gitlab.com/gitlab-org/omnibus-gitlab/issues/942) to take next Mattermost version in the Omnibus, but do not post until RC1 is cut +- (PM) Check testing is complete + - (PM) Works with Ops to check the [Quality Gate](https://github.com/mattermost/process/blob/master/release/quality-gates.md) for feature complete + - (PM + Dev) Sign-off testing of their feature areas (i.e. PM/dev either signs-off that their area is well tested, or they flag that potential quality issues may exist) +- **(Team) Feature Complete Meeting (10:15am PST)** + - (PM) Leads review of Changelog + - (Team) Each team member discusses worst bug (10-15s) + - (PM) Review feature list for next release + - (Marketing) Share draft of marketing announce for next release +- (Marketing) Communicates checklist of items needed by specific dates to write the blog post announce (e.g. screenshots, GIFs, - (Ops) Post Announce Date in Release channel + update the channel header to reflect date -- (Marketing) Communicates checklist of items needed by specific dates to write the blog post announce (e.g. screenshots, GIFs, documentation) and begins to write the blog post, tweet, and email for the release announcement -- (PM) Works with Ops to check the Quality Gate for feature complete -- (PM) Communicate to team the plan for next release -- (Stand-up) Each team member discusses worst bug +- (Ops) Mail out mugs to any new contributors -### - (5 weekdays before release date) Code Complete and Release Candidate Cut -- (Team) Meets to discuss release at 10am PST - - (PM) Each area changed in latest release is assigned a PM owner to lead testing - - (Ops) Walks through each item of the **Code Complete and Release Candidate Cut** checklist +### (T-minus 5 working days) Code Complete and Release Candidate Cut +- (Ops) Post this checklist in Release channel +- (Ops) For the next release, create team meetings on Feature Complete and Code Complete dates +- (PM) Remove "Under Development" notice for current release from Changelog on master +- **(Team) Code Complete Meeting (10:15am PST meeting)** + - (Ops) Walks through each item of this checklist + - (PM) Assigns each area of the release testing spreadsheet to a team member - (Dev) Last check of tickets that need to be merged before RC1 - - (Team) Each team member discusses worst bug -- After 10am PST meeting the release is considered “Code Completeâ€. - - (Dev) Completes final reviews and updates of PRs marked for the release version - - There should be no more tickets in the [pull request queue](https://github.com/mattermost/platform/pulls) marked for the current release - - Master is tagged and branched and “Release Candidate 1″ is cut (e.g. 1.1.0-RC1) according to the Release Candidate Checklist + - (Team) Each team member discusses worst bug (10-15s) +- **Code Complete** is declared after meeting + - (Dev) Prioritize reviewing, updating, and merging of pull requests for current release until there are no more tickets in the [pull request queue](https://github.com/mattermost/platform/pulls) marked for the current release + - (Build) Master is tagged and branched and “Release Candidate 1″ is cut (e.g. 1.1.0-RC1) according to the [Release Candidate Checklist](https://github.com/mattermost/process/blob/master/release/create-release-candidate.md) - (PM) Create meta issue for regressions in GitHub (see [example](https://github.com/mattermost/platform/issues/574)) - -### - (4 weekdays before release date) Release Candidate Testing -- Final testing is conducted by the team on the acceptance server and any issues found are filed - - (Dev) Tests upgrade from previous version to current version, following the [Upgrade Guide](https://github.com/mattermost/platform/blob/master/doc/install/Upgrade-Guide.md) + - (PM) Include link to meta-issue in release notes of RC1 + - (PM) Tweet announcement that RC1 is ready (see [example](https://twitter.com/mattermosthq/status/664172166368264192)) + - (PM) Submit GitLab ticket to take next Mattermost version in the Omnibus + +### (T-minus 4 working days) Release Candidate Testing +- (Team) Final testing is conducted by the team on the acceptance server and any issues found are filed +- (Build) Tests upgrade from previous version to current version, following the [Upgrade Guide](https://github.com/mattermost/platform/blob/master/doc/install/Upgrade-Guide.md) + - Database upgrade should be tested on both MySQL and Postgres - (Ops) Posts copy of the **Release Candidate Testing** checklist into Town Square in PRODUCTION - (Ops) Moves meeting, test and community channels over to the production version of RC, and posts in Town Square asking everyone to move communication over to the new team for testing purposes - (PM) Test feature areas and post bugs to Bugs/Issues in PRODUCTION @@ -72,6 +85,7 @@ This is a working document that will update as our process evolves. - (PM) Posts links to all issues found in RC as comments on the meta issue - (PM) Updates description to include approved fixes - (PM) Posts screenshot and link to final tickets for next RC to the Release room + - (PM) Updates Release Notes with any new issues that will not be fixed for the current version - (PM & DEV leads) Triage hotfix candidates and decide on whether and when to cut next RC or final - (Dev) PRs for hotfixes made to release branch, and changes from release branch are merged into master - (Ops) Tests approved fixes on master @@ -81,19 +95,28 @@ This is a working document that will update as our process evolves. - (Ops) verifies each of the issues in meta ticket is fixed - (PM) If no blocking issues are found, PM, Dev and Ops signs off on the release -### - (2 weekdays before release date) Release - - (Dev) Tags a new release (e.g. 1.1.0) and runs an official build which should be essentially identical to the last RC +### (T-minus 2 working days) Release Build Cut +- (Ops) Post this checklist in Release channel +- (Build) Tags a new release (e.g. 1.1.0) and runs an official build which should be essentially identical to the last RC - (PM) Any significant issues that were found and not fixed for the final release are noted in the release notes - - If an urgent and important issue needs to be addressed between major releases, a hotfix release (e.g. 1.1.1) may be released, however this should be very rare, given a monthly cadence - - (PM) Copy and paste the Release Notes from the Changelog to the Release Description - - (PM) Update the mattermost.org/download page - - (Dev) Delete RCs after final version is shipped - - (PM) Close final GitHub RC meta ticket - -### - (0 weekdays before release date) End of Release -- (PM) Makes sure marketing has been posted (animated GIFs, screenshots, mail announcement, Tweets, blog posts) + - If an urgent and important issue needs to be addressed between major releases, a bug fix release (e.g. 1.1.1) may be created +- (PM) Copy and paste the Release Notes from the Changelog to the Release Description +- (PM) Update the mattermost.org/download page +- (PM) Update the AMI links on mattermost.org/installation +- (PM) Close final GitHub RC meta ticket +- (Dev) Delete RCs after final version is shipped +- (Marketing) Finalize marketing + - (Marketing) Finalize mailchimp email blast + - (Marketing) Finalize blog post and put on timer for release + - (Marketing) Finalize tweet announcement + - (Marketing) Finalize announcement on general mailing list + - (Marketing) Finalize announcement for gitlab.mattermost.com + +### (T-minus 0 working days) Release Day +- (Ops) Post this checklist in Release channel +- (PM) Confirm marketing has been posted (animated GIFs, screenshots, mail announcement, Tweets, blog posts) - (PM) Close the release in Jira +- (PM) Set header of next release as UNDER DEVELOPMENT in CHANGELOG on master - (Dev) Check if any libraries need to be updated for the next release, and if so bring up in weekly team meeting -- (Ops) Post important dates for the next release in the header of the Release channel -- (Ops) Queue an agenda item for next team meeting for "Stepping Back" Q&A -- (Ops) Queue an agenda item for next team meeting for Roadmap review +- (Ops) Post key dates for the next release in the header of the Release channel +- (Ops) Queue an agenda item for next team meeting for Release Process Kaizen/Q&A diff --git a/doc/usage/Markdown.md b/doc/usage/Markdown.md index 055f47619..65e6f2121 100644 --- a/doc/usage/Markdown.md +++ b/doc/usage/Markdown.md @@ -1,152 +1,3 @@ # Markdown Help -Markdown makes it easy to format messages. Type a message as you normally would, and use these rules to render it with special formatting. - -## Text Style: - -You can use either `_` or `*` around a word to make it italic. Use two to make it bold. - -* `_italics_` renders as _italics_ -* `**bold**` renders as **bold** -* `**_bold-italic_**` renders as **_bold-italics_** -* `~~strikethrough~~` renders as ~~strikethrough~~ - -## Code: - -Create a code block by indenting four spaces, or by placing ``` on the line above and below your code. - -Example: - - ``` - code block - ``` - -Renders as: -``` -code block -``` - -Create in-line monospaced font by surrounding it with backticks. -``` -`monospace` -``` -Renders as: `monospace`. - -## Links: - -Create labeled links by putting the desired text in square brackets and the associated link in normal brackets. - -`[Check out Mattermost!](www.mattermost.com)` - -Renders as: [Check out Mattermost!](www.mattermost.com) - -## In-line Images - -Create in-line images using an `!` followed by the alt text in square brackets and the link in normal brackets. Add hover text by placing it in quotes after the link. -``` -![alt text](link "hover text") - -and - -[![Build Status](https://travis-ci.org/mattermost/platform.svg?branch=master)](https://travis-ci.org/mattermost/platform) [![Github](https://assets-cdn.github.com/favicon.ico)](https://github.com/mattermost/platform) -``` -Renders as: - -![alt text](link "hover text") - -and - -[![Build Status](https://travis-ci.org/mattermost/platform.svg?branch=master)](https://travis-ci.org/mattermost/platform) [![Github](https://assets-cdn.github.com/favicon.ico)](https://github.com/mattermost/platform) - -## Emojis - -Check out a full list of emojis [here](http://www.emoji-cheat-sheet.com/). - -``` -:smile: :+1: :sheep: -``` -Renders as: -:smile: :+1: :sheep: - -## Lines: - -Create a line by using three `*`, `_`, or `-`. - -`***` renders as: -*** - -## Block quotes: - -Create block quotes using `>`. - -`> block quotes` renders as: -> block quotes - -## Lists: - -Create a list by using `*` or `-` as bullets. Indent a bullet point by adding two spaces in front of it. -``` -* list item one -* list item two - * item two sub-point -``` -Renders as: -* list item one -* list item two - * item two sub-point - -Make it an ordered list by using numbers instead: -``` -1. Item one -2. Item two -``` -Renders as: -1. Item one -2. Item two - -## Tables: - -Create a table by placing a dashed line under the header row and separating the columns with a pipe `|`. (The columns don’t need to line up exactly for it to work). Choose how to align table columns by including colons `:` within the header row. -``` -| Left-Aligned  | Center Aligned  | Right Aligned | -| :------------ |:---------------:| -----:| -| Left column 1 | this text       |  $100 | -| Left column 2 | is              |   $10 | -| Left column 3 | centered        |    $1 | -``` - -Renders as: - -| Left-Aligned  | Center Aligned  | Right Aligned | -| :------------ |:---------------:| -----:| -| Left column 1 | this text       |  $100 | -| Left column 2 | is              |   $10 | -| Left column 3 | centered        |    $1 | - -## Headings: - -Make a heading by typing # and a space before your title. For smaller headings, use more #’s. -``` -# Large heading -## Smaller heading -### Even smaller heading -``` -Renders as: -# Large Heading -## Smaller Heading -### Even smaller heading - -Alternatively, for the large heading you can underline the text using `===`. For the smaller heading you can underline using `---` -``` -Large Heading -============= - -Smaller Heading --------------- -``` -Renders as: -Large Heading -============= - -Smaller Heading --------------- +Moved to [help/Markdown.md](../help/Markdown.md) diff --git a/docker/1.1/Dockerfile b/docker/1.1/Dockerfile deleted file mode 100644 index 92bac6a04..000000000 --- a/docker/1.1/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. -# See License.txt for license information. -FROM ubuntu:14.04 - -# -# Install SQL -# - -ENV MYSQL_ROOT_PASSWORD=mostest -ENV MYSQL_USER=mmuser -ENV MYSQL_PASSWORD=mostest -ENV MYSQL_DATABASE=mattermost_test - -RUN groupadd -r mysql && useradd -r -g mysql mysql - -RUN apt-key adv --keyserver pool.sks-keyservers.net --recv-keys A4A9406876FCBD3C456770C88C718D3B5072E1F5 - -ENV MYSQL_MAJOR 5.6 -ENV MYSQL_VERSION 5.6.25 - -RUN echo "deb http://repo.mysql.com/apt/debian/ wheezy mysql-${MYSQL_MAJOR}" > /etc/apt/sources.list.d/mysql.list - -RUN apt-get update \ - && export DEBIAN_FRONTEND=noninteractive \ - && apt-get -y install perl wget mysql-server \ - && rm -rf /var/lib/apt/lists/* \ - && rm -rf /var/lib/mysql && mkdir -p /var/lib/mysql - -RUN sed -Ei 's/^(bind-address|log)/#&/' /etc/mysql/my.cnf - -VOLUME /var/lib/mysql -# --------------------------------------------------------------------------------------------------------------------- - -WORKDIR /mattermost - -# Copy over files -ADD https://github.com/mattermost/platform/releases/download/v1.1.0/mattermost.tar.gz / -RUN tar -zxvf /mattermost.tar.gz --strip-components=1 && rm /mattermost.tar.gz -ADD config_docker.json / -ADD docker-entry.sh / - -RUN chmod +x /docker-entry.sh -ENTRYPOINT /docker-entry.sh - -# Create default storage directory -RUN mkdir /mattermost-data/ - -# Ports -EXPOSE 80 diff --git a/docker/1.1/Dockerrun.aws.zip b/docker/1.1/Dockerrun.aws.zip Binary files differdeleted file mode 100644 index 945168a71..000000000 --- a/docker/1.1/Dockerrun.aws.zip +++ /dev/null diff --git a/docker/1.1/Dockerrun.aws/Dockerrun.aws.json b/docker/1.1/Dockerrun.aws/Dockerrun.aws.json deleted file mode 100755 index 042e79bd3..000000000 --- a/docker/1.1/Dockerrun.aws/Dockerrun.aws.json +++ /dev/null @@ -1,13 +0,0 @@ -{
- "AWSEBDockerrunVersion": "1",
- "Image": {
- "Name": "mattermost/platform:1.1",
- "Update": "true"
- },
- "Ports": [
- {
- "ContainerPort": "80"
- }
- ],
- "Logging": "/var/log/"
-}
diff --git a/docker/1.1/config_docker.json b/docker/1.1/config_docker.json deleted file mode 100644 index 653b6ffd7..000000000 --- a/docker/1.1/config_docker.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "ServiceSettings": { - "ListenAddress": ":80", - "MaximumLoginAttempts": 10, - "SegmentDeveloperKey": "", - "GoogleDeveloperKey": "", - "EnableOAuthServiceProvider": false, - "EnableIncomingWebhooks": true, - "EnablePostUsernameOverride": false, - "EnablePostIconOverride": false, - "EnableTesting": false, - "EnableSecurityFixAlert": true - }, - "TeamSettings": { - "SiteName": "Mattermost", - "MaxUsersPerTeam": 50, - "EnableTeamCreation": true, - "EnableUserCreation": true, - "RestrictCreationToDomains": "" - }, - "SqlSettings": { - "DriverName": "mysql", - "DataSource": "mmuser:mostest@tcp(dockerhost:3306)/mattermost_test?charset=utf8mb4,utf8", - "DataSourceReplicas": [], - "MaxIdleConns": 10, - "MaxOpenConns": 10, - "Trace": false, - "AtRestEncryptKey": "7rAh6iwQCkV4cA1Gsg3fgGOXJAQ43QVg" - }, - "LogSettings": { - "EnableConsole": false, - "ConsoleLevel": "INFO", - "EnableFile": true, - "FileLevel": "INFO", - "FileFormat": "", - "FileLocation": "" - }, - "FileSettings": { - "DriverName": "local", - "Directory": "/mattermost/data/", - "EnablePublicLink": true, - "PublicLinkSalt": "A705AklYF8MFDOfcwh3I488G8vtLlVip", - "ThumbnailWidth": 120, - "ThumbnailHeight": 100, - "PreviewWidth": 1024, - "PreviewHeight": 0, - "ProfileWidth": 128, - "ProfileHeight": 128, - "InitialFont": "luximbi.ttf", - "AmazonS3AccessKeyId": "", - "AmazonS3SecretAccessKey": "", - "AmazonS3Bucket": "", - "AmazonS3Region": "" - }, - "EmailSettings": { - "EnableSignUpWithEmail": true, - "SendEmailNotifications": false, - "RequireEmailVerification": false, - "FeedbackName": "", - "FeedbackEmail": "", - "SMTPUsername": "", - "SMTPPassword": "", - "SMTPServer": "", - "SMTPPort": "", - "ConnectionSecurity": "", - "InviteSalt": "bjlSR4QqkXFBr7TP4oDzlfZmcNuH9YoS", - "PasswordResetSalt": "vZ4DcKyVVRlKHHJpexcuXzojkE5PZ5eL", - "ApplePushServer": "", - "ApplePushCertPublic": "", - "ApplePushCertPrivate": "" - }, - "RateLimitSettings": { - "EnableRateLimiter": true, - "PerSec": 10, - "MemoryStoreSize": 10000, - "VaryByRemoteAddr": true, - "VaryByHeader": "" - }, - "PrivacySettings": { - "ShowEmailAddress": true, - "ShowFullName": true - }, - "GitLabSettings": { - "Enable": false, - "Secret": "", - "Id": "", - "Scope": "", - "AuthEndpoint": "", - "TokenEndpoint": "", - "UserApiEndpoint": "" - } -} diff --git a/docker/1.3/Dockerfile b/docker/1.3/Dockerfile new file mode 100644 index 000000000..55b69673a --- /dev/null +++ b/docker/1.3/Dockerfile @@ -0,0 +1,49 @@ +# Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +# See License.txt for license information. +FROM ubuntu:14.04 + +# +# Install SQL +# + +ENV MYSQL_ROOT_PASSWORD=mostest +ENV MYSQL_USER=mmuser +ENV MYSQL_PASSWORD=mostest +ENV MYSQL_DATABASE=mattermost_test + +RUN groupadd -r mysql && useradd -r -g mysql mysql + +RUN apt-key adv --keyserver pool.sks-keyservers.net --recv-keys A4A9406876FCBD3C456770C88C718D3B5072E1F5 + +ENV MYSQL_MAJOR 5.6 +ENV MYSQL_VERSION 5.6.25 + +RUN echo "deb http://repo.mysql.com/apt/debian/ wheezy mysql-${MYSQL_MAJOR}" > /etc/apt/sources.list.d/mysql.list + +RUN apt-get update \ + && export DEBIAN_FRONTEND=noninteractive \ + && apt-get -y install perl wget mysql-server \ + && rm -rf /var/lib/apt/lists/* \ + && rm -rf /var/lib/mysql && mkdir -p /var/lib/mysql + +RUN sed -Ei 's/^(bind-address|log)/#&/' /etc/mysql/my.cnf + +VOLUME /var/lib/mysql +# --------------------------------------------------------------------------------------------------------------------- + +WORKDIR /mattermost + +# Copy over files +ADD https://github.com/mattermost/platform/releases/download/v1.3.0-rc1/mattermost.tar.gz / +RUN tar -zxvf /mattermost.tar.gz --strip-components=1 && rm /mattermost.tar.gz +ADD config_docker.json / +ADD docker-entry.sh / + +RUN chmod +x /docker-entry.sh +ENTRYPOINT /docker-entry.sh + +# Create default storage directory +RUN mkdir /mattermost-data/ + +# Ports +EXPOSE 80 diff --git a/docker/1.3/Dockerrun.aws.zip b/docker/1.3/Dockerrun.aws.zip Binary files differnew file mode 100644 index 000000000..dd201d990 --- /dev/null +++ b/docker/1.3/Dockerrun.aws.zip diff --git a/docker/1.1/Dockerrun.aws/.ebextensions/01_files.config b/docker/1.3/Dockerrun.aws/.ebextensions/01_files.config index 7f40a8b34..7f40a8b34 100644 --- a/docker/1.1/Dockerrun.aws/.ebextensions/01_files.config +++ b/docker/1.3/Dockerrun.aws/.ebextensions/01_files.config diff --git a/docker/1.3/Dockerrun.aws/Dockerrun.aws.json b/docker/1.3/Dockerrun.aws/Dockerrun.aws.json new file mode 100755 index 000000000..d4027e67c --- /dev/null +++ b/docker/1.3/Dockerrun.aws/Dockerrun.aws.json @@ -0,0 +1,13 @@ +{
+ "AWSEBDockerrunVersion": "1",
+ "Image": {
+ "Name": "mattermost/platform:1.3",
+ "Update": "true"
+ },
+ "Ports": [
+ {
+ "ContainerPort": "80"
+ }
+ ],
+ "Logging": "/var/log/"
+}
diff --git a/docker/1.3/README.md b/docker/1.3/README.md new file mode 100644 index 000000000..f737a1554 --- /dev/null +++ b/docker/1.3/README.md @@ -0,0 +1,23 @@ +Mattermost +========== + +http:/mattermost.org + +Mattermost is an open-source team communication service. It brings team messaging and file sharing into one place, accessible across PCs and phones, with archiving and search. + +Installing Mattermost +===================== + +To run an instance of the latest version of mattermost on your local machine you can run: + +`docker run --name mattermost-dev -d --publish 8065:80 mattermost/platform` + +To update this image to the latest version you can run: + +`docker pull mattermost/platform` + +To run an instance of the latest code from the master branch on GitHub you can run: + +`docker run --name mattermost-dev -d --publish 8065:80 mattermost/platform:dev` + +Any questions, please visit http://forum.mattermost.org diff --git a/docker/1.3/config_docker.json b/docker/1.3/config_docker.json new file mode 100644 index 000000000..a35abb9da --- /dev/null +++ b/docker/1.3/config_docker.json @@ -0,0 +1,94 @@ +{ + "ServiceSettings": { + "ListenAddress": ":80", + "MaximumLoginAttempts": 10, + "SegmentDeveloperKey": "", + "GoogleDeveloperKey": "", + "EnableOAuthServiceProvider": false, + "EnableIncomingWebhooks": false, + "EnableOutgoingWebhooks": false, + "EnablePostUsernameOverride": false, + "EnablePostIconOverride": false, + "EnableTesting": false, + "EnableSecurityFixAlert": true + }, + "TeamSettings": { + "SiteName": "Mattermost", + "MaxUsersPerTeam": 50, + "EnableTeamCreation": true, + "EnableUserCreation": true, + "RestrictCreationToDomains": "", + "RestrictTeamNames": true, + "EnableTeamListing": false + }, + "SqlSettings": { + "DriverName": "mysql", + "DataSource": "mmuser:mostest@tcp(dockerhost:3306)/mattermost_test?charset=utf8mb4,utf8", + "DataSourceReplicas": [], + "MaxIdleConns": 10, + "MaxOpenConns": 10, + "Trace": false, + "AtRestEncryptKey": "7rAh6iwQCkV4cA1Gsg3fgGOXJAQ43QVg" + }, + "LogSettings": { + "EnableConsole": false, + "ConsoleLevel": "INFO", + "EnableFile": true, + "FileLevel": "INFO", + "FileFormat": "", + "FileLocation": "" + }, + "FileSettings": { + "DriverName": "local", + "Directory": "/mattermost/data/", + "EnablePublicLink": true, + "PublicLinkSalt": "A705AklYF8MFDOfcwh3I488G8vtLlVip", + "ThumbnailWidth": 120, + "ThumbnailHeight": 100, + "PreviewWidth": 1024, + "PreviewHeight": 0, + "ProfileWidth": 128, + "ProfileHeight": 128, + "InitialFont": "luximbi.ttf", + "AmazonS3AccessKeyId": "", + "AmazonS3SecretAccessKey": "", + "AmazonS3Bucket": "", + "AmazonS3Region": "" + }, + "EmailSettings": { + "EnableSignUpWithEmail": true, + "SendEmailNotifications": false, + "RequireEmailVerification": false, + "FeedbackName": "", + "FeedbackEmail": "", + "SMTPUsername": "", + "SMTPPassword": "", + "SMTPServer": "", + "SMTPPort": "", + "ConnectionSecurity": "", + "InviteSalt": "bjlSR4QqkXFBr7TP4oDzlfZmcNuH9YoS", + "PasswordResetSalt": "vZ4DcKyVVRlKHHJpexcuXzojkE5PZ5eL", + "SendPushNotifications": false, + "PushNotificationServer": "" + }, + "RateLimitSettings": { + "EnableRateLimiter": true, + "PerSec": 10, + "MemoryStoreSize": 10000, + "VaryByRemoteAddr": true, + "VaryByHeader": "" + }, + "PrivacySettings": { + "ShowEmailAddress": true, + "ShowFullName": true + }, + "GitLabSettings": { + "Enable": false, + "Secret": "", + "Id": "", + "Scope": "", + "AuthEndpoint": "", + "TokenEndpoint": "", + "UserApiEndpoint": "" + } +} diff --git a/docker/1.1/docker-entry.sh b/docker/1.3/docker-entry.sh index 6bd2a1263..6bd2a1263 100755 --- a/docker/1.1/docker-entry.sh +++ b/docker/1.3/docker-entry.sh diff --git a/docker/dev/config_docker.json b/docker/dev/config_docker.json index c23a72cd1..ab1373a44 100644 --- a/docker/dev/config_docker.json +++ b/docker/dev/config_docker.json @@ -68,9 +68,8 @@ "ConnectionSecurity": "", "InviteSalt": "bjlSR4QqkXFBr7TP4oDzlfZmcNuH9YoS", "PasswordResetSalt": "vZ4DcKyVVRlKHHJpexcuXzojkE5PZ5eL", - "ApplePushServer": "", - "ApplePushCertPublic": "", - "ApplePushCertPrivate": "" + "SendPushNotifications": false, + "PushNotificationServer": "" }, "RateLimitSettings": { "EnableRateLimiter": true, @@ -83,6 +82,14 @@ "ShowEmailAddress": true, "ShowFullName": true }, + "SupportSettings": { + "TermsOfServiceLink": "/static/help/terms.html", + "PrivacyPolicyLink": "/static/help/privacy.html", + "AboutLink": "/static/help/about.html", + "HelpLink": "/static/help/help.html", + "ReportAProblemLink": "/static/help/report_problem.html", + "SupportEmail": "feedback@mattermost.com" + }, "GitLabSettings": { "Enable": false, "Secret": "", diff --git a/docker/local/config_docker.json b/docker/local/config_docker.json index c23a72cd1..ab1373a44 100644 --- a/docker/local/config_docker.json +++ b/docker/local/config_docker.json @@ -68,9 +68,8 @@ "ConnectionSecurity": "", "InviteSalt": "bjlSR4QqkXFBr7TP4oDzlfZmcNuH9YoS", "PasswordResetSalt": "vZ4DcKyVVRlKHHJpexcuXzojkE5PZ5eL", - "ApplePushServer": "", - "ApplePushCertPublic": "", - "ApplePushCertPrivate": "" + "SendPushNotifications": false, + "PushNotificationServer": "" }, "RateLimitSettings": { "EnableRateLimiter": true, @@ -83,6 +82,14 @@ "ShowEmailAddress": true, "ShowFullName": true }, + "SupportSettings": { + "TermsOfServiceLink": "/static/help/terms.html", + "PrivacyPolicyLink": "/static/help/privacy.html", + "AboutLink": "/static/help/about.html", + "HelpLink": "/static/help/help.html", + "ReportAProblemLink": "/static/help/report_problem.html", + "SupportEmail": "feedback@mattermost.com" + }, "GitLabSettings": { "Enable": false, "Secret": "", diff --git a/mattermost.go b/mattermost.go index e1ae58904..da50a26c3 100644 --- a/mattermost.go +++ b/mattermost.go @@ -30,6 +30,8 @@ var flagCmdCreateUser bool var flagCmdAssignRole bool var flagCmdVersion bool var flagCmdResetPassword bool +var flagCmdPermanentDeleteUser bool +var flagCmdPermanentDeleteTeam bool var flagConfigFile string var flagEmail string var flagPassword string @@ -66,6 +68,7 @@ func main() { manualtesting.InitManualTesting() } + setDiagnosticId() runSecurityAndDiagnosticsJobAndForget() // wait for kill signal before attempting to gracefully shutdown @@ -78,6 +81,21 @@ func main() { } } +func setDiagnosticId() { + if result := <-api.Srv.Store.System().Get(); result.Err == nil { + props := result.Data.(model.StringMap) + + id := props[model.SYSTEM_DIAGNOSTIC_ID] + if len(id) == 0 { + id = model.NewId() + systemId := &model.System{Name: model.SYSTEM_DIAGNOSTIC_ID, Value: id} + <-api.Srv.Store.System().Save(systemId) + } + + utils.CfgDiagnosticId = id + } +} + func runSecurityAndDiagnosticsJobAndForget() { go func() { for { @@ -90,15 +108,9 @@ func runSecurityAndDiagnosticsJobAndForget() { if (currentTime - lastSecurityTime) > 1000*60*60*24*1 { l4g.Debug("Checking for security update from Mattermost") - id := props[model.SYSTEM_DIAGNOSTIC_ID] - if len(id) == 0 { - id = model.NewId() - systemId := &model.System{Name: model.SYSTEM_DIAGNOSTIC_ID, Value: id} - <-api.Srv.Store.System().Save(systemId) - } - v := url.Values{} - v.Set(utils.PROP_DIAGNOSTIC_ID, id) + + v.Set(utils.PROP_DIAGNOSTIC_ID, utils.CfgDiagnosticId) v.Set(utils.PROP_DIAGNOSTIC_BUILD, model.CurrentVersion+"."+model.BuildNumber) v.Set(utils.PROP_DIAGNOSTIC_DATABASE, utils.Cfg.SqlSettings.DriverName) v.Set(utils.PROP_DIAGNOSTIC_OS, runtime.GOOS) @@ -191,10 +203,18 @@ func parseCmds() { flag.BoolVar(&flagCmdAssignRole, "assign_role", false, "") flag.BoolVar(&flagCmdVersion, "version", false, "") flag.BoolVar(&flagCmdResetPassword, "reset_password", false, "") + flag.BoolVar(&flagCmdPermanentDeleteUser, "permanent_delete_user", false, "") + flag.BoolVar(&flagCmdPermanentDeleteTeam, "permanent_delete_team", false, "") flag.Parse() - flagRunCmds = flagCmdCreateTeam || flagCmdCreateUser || flagCmdAssignRole || flagCmdResetPassword || flagCmdVersion + flagRunCmds = (flagCmdCreateTeam || + flagCmdCreateUser || + flagCmdAssignRole || + flagCmdResetPassword || + flagCmdVersion || + flagCmdPermanentDeleteUser || + flagCmdPermanentDeleteTeam) } func runCmds() { @@ -203,6 +223,8 @@ func runCmds() { cmdCreateUser() cmdAssignRole() cmdResetPassword() + cmdPermDeleteUser() + cmdPermDeleteTeam() } func cmdCreateTeam() { @@ -406,6 +428,106 @@ func cmdResetPassword() { } } +func cmdPermDeleteUser() { + if flagCmdPermanentDeleteUser { + if len(flagTeamName) == 0 { + fmt.Fprintln(os.Stderr, "flag needs an argument: -team_name") + flag.Usage() + os.Exit(1) + } + + if len(flagEmail) == 0 { + fmt.Fprintln(os.Stderr, "flag needs an argument: -email") + flag.Usage() + os.Exit(1) + } + + c := &api.Context{} + c.RequestId = model.NewId() + c.IpAddress = "cmd_line" + + var team *model.Team + if result := <-api.Srv.Store.Team().GetByName(flagTeamName); result.Err != nil { + l4g.Error("%v", result.Err) + flushLogAndExit(1) + } else { + team = result.Data.(*model.Team) + } + + var user *model.User + if result := <-api.Srv.Store.User().GetByEmail(team.Id, flagEmail); result.Err != nil { + l4g.Error("%v", result.Err) + flushLogAndExit(1) + } else { + user = result.Data.(*model.User) + } + + var confirmBackup string + fmt.Print("Have you performed a database backup? (YES/NO): ") + fmt.Scanln(&confirmBackup) + if confirmBackup != "YES" { + flushLogAndExit(1) + } + + var confirm string + fmt.Printf("Are you sure you want to delete the user %v? All data will be permanently deleted? (YES/NO): ", user.Email) + fmt.Scanln(&confirm) + if confirm != "YES" { + flushLogAndExit(1) + } + + if err := api.PermanentDeleteUser(c, user); err != nil { + l4g.Error("%v", err) + flushLogAndExit(1) + } else { + flushLogAndExit(0) + } + } +} + +func cmdPermDeleteTeam() { + if flagCmdPermanentDeleteTeam { + if len(flagTeamName) == 0 { + fmt.Fprintln(os.Stderr, "flag needs an argument: -team_name") + flag.Usage() + os.Exit(1) + } + + c := &api.Context{} + c.RequestId = model.NewId() + c.IpAddress = "cmd_line" + + var team *model.Team + if result := <-api.Srv.Store.Team().GetByName(flagTeamName); result.Err != nil { + l4g.Error("%v", result.Err) + flushLogAndExit(1) + } else { + team = result.Data.(*model.Team) + } + + var confirmBackup string + fmt.Print("Have you performed a database backup? (YES/NO): ") + fmt.Scanln(&confirmBackup) + if confirmBackup != "YES" { + flushLogAndExit(1) + } + + var confirm string + fmt.Printf("Are you sure you want to delete the team %v? All data will be permanently deleted? (YES/NO): ", team.Name) + fmt.Scanln(&confirm) + if confirm != "YES" { + flushLogAndExit(1) + } + + if err := api.PermanentDeleteTeam(c, team); err != nil { + l4g.Error("%v", err) + flushLogAndExit(1) + } else { + flushLogAndExit(0) + } + } +} + func flushLogAndExit(code int) { l4g.Close() time.Sleep(time.Second) @@ -413,12 +535,14 @@ func flushLogAndExit(code int) { } var usage = `Mattermost commands to help configure the system -Usage: +NAME: + platform -- platform configuation tool + +USAGE: platform [options] - - -version Display the current version - + +FLAGS: -config="config.json" Path to the config file -email="user@example.com" Email address used in other commands @@ -435,10 +559,8 @@ Usage: is used to help administer one team. "system_admin" - Represents a system admin who has access to all teams - and configuration settings. This - role can only be created on the - team named "admin" - + and configuration settings. +COMMANDS: -create_team Creates a team. It requires the -team_name and -email flag to create a team. Example: @@ -450,7 +572,7 @@ Usage: platform -create_user -team_name="name" -email="user@example.com" -password="mypassword" -assign_role Assigns role to a user. It requires the -role, - -email and -team_name flag. You may need to logout + -email and -team_name flag. You may need to log out of your current sessions for the new role to be applied. Example: @@ -461,5 +583,20 @@ Usage: Example: platform -reset_password -team_name="name" -email="user@example.com" -password="newpassword" + -permanent_delete_user Permanently deletes a user and all related information + including posts from the database. It requires the + -team_name, and -email flag. You may need to restart the + server to invalidate the cache + Example: + platform -permanent_delete_user -team_name="name" -email="user@example.com" + + -permanent_delete_team Permanently deletes a team and all users along with + all related information including posts from the database. + It requires the -team_name flag. You may need to restart + the server to invalidate the cache. + Example: + platform -permanent_delete_team -team_name="name" + + -version Display the current of the Mattermost platform -` + -help Displays this help page` diff --git a/model/channel_extra.go b/model/channel_extra.go index c6f0ca192..55da588af 100644 --- a/model/channel_extra.go +++ b/model/channel_extra.go @@ -23,8 +23,9 @@ func (o *ExtraMember) Sanitize(options map[string]bool) { } type ChannelExtra struct { - Id string `json:"id"` - Members []ExtraMember `json:"members"` + Id string `json:"id"` + Members []ExtraMember `json:"members"` + MemberCount int64 `json:"member_count"` } func (o *ChannelExtra) ToJson() string { diff --git a/model/client.go b/model/client.go index ac85b0d1c..d3f76817d 100644 --- a/model/client.go +++ b/model/client.go @@ -230,7 +230,7 @@ func (c *Client) CreateUser(user *User, hash string) (*Result, *AppError) { } func (c *Client) CreateUserFromSignup(user *User, data string, hash string) (*Result, *AppError) { - if r, err := c.DoApiPost("/users/create?d="+data+"&h="+hash, user.ToJson()); err != nil { + if r, err := c.DoApiPost("/users/create?d="+url.QueryEscape(data)+"&h="+hash, user.ToJson()); err != nil { return nil, err } else { return &Result{r.Header.Get(HEADER_REQUEST_ID), diff --git a/model/config.go b/model/config.go index 50a8dc133..9030f91ae 100644 --- a/model/config.go +++ b/model/config.go @@ -96,11 +96,8 @@ type EmailSettings struct { ConnectionSecurity string InviteSalt string PasswordResetSalt string - - // For Future Use - ApplePushServer string - ApplePushCertPublic string - ApplePushCertPrivate string + SendPushNotifications *bool + PushNotificationServer *string } type RateLimitSettings struct { @@ -116,6 +113,15 @@ type PrivacySettings struct { ShowFullName bool } +type SupportSettings struct { + TermsOfServiceLink *string + PrivacyPolicyLink *string + AboutLink *string + HelpLink *string + ReportAProblemLink *string + SupportEmail *string +} + type TeamSettings struct { SiteName string MaxUsersPerTeam int @@ -135,6 +141,7 @@ type Config struct { EmailSettings EmailSettings RateLimitSettings RateLimitSettings PrivacySettings PrivacySettings + SupportSettings SupportSettings GitLabSettings SSOSettings } @@ -167,6 +174,23 @@ func ConfigFromJson(data io.Reader) *Config { } func (o *Config) SetDefaults() { + + if len(o.SqlSettings.AtRestEncryptKey) == 0 { + o.SqlSettings.AtRestEncryptKey = NewRandomString(32) + } + + if len(o.FileSettings.PublicLinkSalt) == 0 { + o.FileSettings.PublicLinkSalt = NewRandomString(32) + } + + if len(o.EmailSettings.InviteSalt) == 0 { + o.EmailSettings.InviteSalt = NewRandomString(32) + } + + if len(o.EmailSettings.PasswordResetSalt) == 0 { + o.EmailSettings.PasswordResetSalt = NewRandomString(32) + } + if o.ServiceSettings.EnableSecurityFixAlert == nil { o.ServiceSettings.EnableSecurityFixAlert = new(bool) *o.ServiceSettings.EnableSecurityFixAlert = true @@ -181,6 +205,46 @@ func (o *Config) SetDefaults() { o.TeamSettings.EnableTeamListing = new(bool) *o.TeamSettings.EnableTeamListing = false } + + if o.EmailSettings.SendPushNotifications == nil { + o.EmailSettings.SendPushNotifications = new(bool) + *o.EmailSettings.SendPushNotifications = false + } + + if o.EmailSettings.PushNotificationServer == nil { + o.EmailSettings.PushNotificationServer = new(string) + *o.EmailSettings.PushNotificationServer = "" + } + + if o.SupportSettings.TermsOfServiceLink == nil { + o.SupportSettings.TermsOfServiceLink = new(string) + *o.SupportSettings.TermsOfServiceLink = "/static/help/terms.html" + } + + if o.SupportSettings.PrivacyPolicyLink == nil { + o.SupportSettings.PrivacyPolicyLink = new(string) + *o.SupportSettings.PrivacyPolicyLink = "/static/help/privacy.html" + } + + if o.SupportSettings.AboutLink == nil { + o.SupportSettings.AboutLink = new(string) + *o.SupportSettings.AboutLink = "/static/help/about.html" + } + + if o.SupportSettings.HelpLink == nil { + o.SupportSettings.HelpLink = new(string) + *o.SupportSettings.HelpLink = "/static/help/help.html" + } + + if o.SupportSettings.ReportAProblemLink == nil { + o.SupportSettings.ReportAProblemLink = new(string) + *o.SupportSettings.ReportAProblemLink = "/static/help/report_problem.html" + } + + if o.SupportSettings.SupportEmail == nil { + o.SupportSettings.SupportEmail = new(string) + *o.SupportSettings.SupportEmail = "feedback@mattermost.com" + } } func (o *Config) IsValid() *AppError { @@ -271,3 +335,11 @@ func (o *Config) IsValid() *AppError { return nil } + +func (me *Config) GetSanitizeOptions() map[string]bool { + options := map[string]bool{} + options["fullname"] = me.PrivacySettings.ShowFullName + options["email"] = me.PrivacySettings.ShowEmailAddress + + return options +} diff --git a/model/gitlab.go b/model/gitlab.go index 9f86c7b72..2a8756807 100644 --- a/model/gitlab.go +++ b/model/gitlab.go @@ -17,13 +17,18 @@ const ( type GitLabUser struct { Id int64 `json:"id"` Username string `json:"username"` + Login string `json:"login"` Email string `json:"email"` Name string `json:"name"` } func UserFromGitLabUser(glu *GitLabUser) *User { user := &User{} - user.Username = CleanUsername(glu.Username) + username := glu.Username + if username == "" { + username = glu.Login + } + user.Username = CleanUsername(username) splitName := strings.Split(glu.Name, " ") if len(splitName) == 2 { user.FirstName = splitName[0] diff --git a/model/message.go b/model/message.go index 2725353ac..1cb350bbf 100644 --- a/model/message.go +++ b/model/message.go @@ -9,14 +9,15 @@ import ( ) const ( - ACTION_TYPING = "typing" - ACTION_POSTED = "posted" - ACTION_POST_EDITED = "post_edited" - ACTION_POST_DELETED = "post_deleted" - ACTION_CHANNEL_VIEWED = "channel_viewed" - ACTION_NEW_USER = "new_user" - ACTION_USER_ADDED = "user_added" - ACTION_USER_REMOVED = "user_removed" + ACTION_TYPING = "typing" + ACTION_POSTED = "posted" + ACTION_POST_EDITED = "post_edited" + ACTION_POST_DELETED = "post_deleted" + ACTION_CHANNEL_VIEWED = "channel_viewed" + ACTION_NEW_USER = "new_user" + ACTION_USER_ADDED = "user_added" + ACTION_USER_REMOVED = "user_removed" + ACTION_PREFERENCE_CHANGED = "preference_changed" ) type Message struct { diff --git a/model/outgoing_webhook.go b/model/outgoing_webhook.go index 9a1b89a85..0b4fd6bbe 100644 --- a/model/outgoing_webhook.go +++ b/model/outgoing_webhook.go @@ -1,4 +1,4 @@ -// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. package model diff --git a/model/outgoing_webhook_test.go b/model/outgoing_webhook_test.go index 0d1cd773e..665b85b6f 100644 --- a/model/outgoing_webhook_test.go +++ b/model/outgoing_webhook_test.go @@ -1,4 +1,4 @@ -// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. package model diff --git a/model/post.go b/model/post.go index 248d40321..5c86ce70d 100644 --- a/model/post.go +++ b/model/post.go @@ -10,9 +10,11 @@ import ( ) const ( - POST_DEFAULT = "" - POST_SLACK_ATTACHMENT = "slack_attachment" - POST_JOIN_LEAVE = "join_leave" + POST_SYSTEM_MESSAGE_PREFIX = "system_" + POST_DEFAULT = "" + POST_SLACK_ATTACHMENT = "slack_attachment" + POST_JOIN_LEAVE = "system_join_leave" + POST_HEADER_CHANGE = "system_header_change" ) type Post struct { @@ -26,7 +28,6 @@ type Post struct { ParentId string `json:"parent_id"` OriginalId string `json:"original_id"` Message string `json:"message"` - ImgCount int64 `json:"img_count"` Type string `json:"type"` Props StringInterface `json:"props"` Hashtags string `json:"hashtags"` @@ -105,7 +106,7 @@ func (o *Post) IsValid() *AppError { } // should be removed once more message types are supported - if !(o.Type == POST_DEFAULT || o.Type == POST_JOIN_LEAVE || o.Type == POST_SLACK_ATTACHMENT) { + if !(o.Type == POST_DEFAULT || o.Type == POST_JOIN_LEAVE || o.Type == POST_SLACK_ATTACHMENT || o.Type == POST_HEADER_CHANGE) { return NewAppError("Post.IsValid", "Invalid type", "id="+o.Type) } @@ -113,6 +114,10 @@ func (o *Post) IsValid() *AppError { return NewAppError("Post.IsValid", "Invalid filenames", "id="+o.Id) } + if utf8.RuneCountInString(StringInterfaceToJson(o.Props)) > 8000 { + return NewAppError("Post.IsValid", "Invalid props", "id="+o.Id) + } + return nil } @@ -156,3 +161,7 @@ func (o *Post) AddProp(key string, value interface{}) { func (o *Post) PreExport() { } + +func (o *Post) IsSystemMessage() bool { + return len(o.Type) >= len(POST_SYSTEM_MESSAGE_PREFIX) && o.Type[:len(POST_SYSTEM_MESSAGE_PREFIX)] == POST_SYSTEM_MESSAGE_PREFIX +} diff --git a/model/post_test.go b/model/post_test.go index f498c83e6..cbd323fab 100644 --- a/model/post_test.go +++ b/model/post_test.go @@ -98,3 +98,18 @@ func TestPostPreSave(t *testing.T) { o.Etag() } + +func TestPostIsSystemMessage(t *testing.T) { + post1 := Post{Message: "test_1"} + post1.PreSave() + + if post1.IsSystemMessage() { + t.Fatalf("TestPostIsSystemMessage failed, expected post1.IsSystemMessage() to be false") + } + + post2 := Post{Message: "test_2", Type: POST_JOIN_LEAVE} + post2.PreSave() + if !post2.IsSystemMessage() { + t.Fatalf("TestPostIsSystemMessage failed, expected post2.IsSystemMessage() to be true") + } +} diff --git a/model/preference.go b/model/preference.go index 892ae82aa..a3230959c 100644 --- a/model/preference.go +++ b/model/preference.go @@ -1,4 +1,4 @@ -// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. package model @@ -12,6 +12,7 @@ import ( const ( PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW = "direct_channel_show" PREFERENCE_CATEGORY_TUTORIAL_STEPS = "tutorial_step" + PREFERENCE_CATEGORY_ADVANCED_SETTINGS = "advanced_settings" ) type Preference struct { diff --git a/model/preference_test.go b/model/preference_test.go index 66b7ac50b..e29250bba 100644 --- a/model/preference_test.go +++ b/model/preference_test.go @@ -1,4 +1,4 @@ -// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. package model diff --git a/model/preferences.go b/model/preferences.go index 1ef16151f..f11b5fd80 100644 --- a/model/preferences.go +++ b/model/preferences.go @@ -1,4 +1,4 @@ -// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. package model diff --git a/model/push_notification.go b/model/push_notification.go new file mode 100644 index 000000000..76f5bd125 --- /dev/null +++ b/model/push_notification.go @@ -0,0 +1,45 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +package model + +import ( + "encoding/json" + "io" +) + +const ( + PUSH_NOTIFY_APPLE = "apple" + PUSH_NOTIFY_ANDROID = "android" +) + +type PushNotification struct { + Platform string `json:"platform"` + ServerId string `json:"server_id"` + DeviceId string `json:"device_id"` + Category string `json:"category"` + Sound string `json:"sound"` + Message string `json:"message"` + Badge int `json:"badge"` + ContentAvailable int `json:"cont_ava"` +} + +func (me *PushNotification) ToJson() string { + b, err := json.Marshal(me) + if err != nil { + return "" + } else { + return string(b) + } +} + +func PushNotificationFromJson(data io.Reader) *PushNotification { + decoder := json.NewDecoder(data) + var me PushNotification + err := decoder.Decode(&me) + if err == nil { + return &me + } else { + return nil + } +} diff --git a/model/push_notification_test.go b/model/push_notification_test.go new file mode 100644 index 000000000..94329f389 --- /dev/null +++ b/model/push_notification_test.go @@ -0,0 +1,19 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +package model + +import ( + "strings" + "testing" +) + +func TestPushNotification(t *testing.T) { + msg := PushNotification{Platform: "test"} + json := msg.ToJson() + result := PushNotificationFromJson(strings.NewReader(json)) + + if msg.Platform != result.Platform { + t.Fatal("Ids do not match") + } +} diff --git a/model/team_test.go b/model/team_test.go index 112d48a9d..4b691e76a 100644 --- a/model/team_test.go +++ b/model/team_test.go @@ -45,7 +45,7 @@ func TestTeamIsValid(t *testing.T) { t.Fatal("should be invalid") } - o.Email = "corey@hulen.com" + o.Email = "corey+test@hulen.com" o.DisplayName = strings.Repeat("01234567890", 20) if err := o.IsValid(true); err == nil { t.Fatal("should be invalid") diff --git a/model/user.go b/model/user.go index 4365f47d2..4ba35c6c4 100644 --- a/model/user.go +++ b/model/user.go @@ -4,9 +4,9 @@ package model import ( - "code.google.com/p/go.crypto/bcrypt" "encoding/json" "fmt" + "golang.org/x/crypto/bcrypt" "io" "regexp" "strings" @@ -28,29 +28,29 @@ const ( type User struct { Id string `json:"id"` - CreateAt int64 `json:"create_at"` - UpdateAt int64 `json:"update_at"` + CreateAt int64 `json:"create_at,omitempty"` + UpdateAt int64 `json:"update_at,omitempty"` DeleteAt int64 `json:"delete_at"` TeamId string `json:"team_id"` Username string `json:"username"` - Password string `json:"password"` - AuthData string `json:"auth_data"` + Password string `json:"password,omitempty"` + AuthData string `json:"auth_data,omitempty"` AuthService string `json:"auth_service"` Email string `json:"email"` - EmailVerified bool `json:"email_verified"` + EmailVerified bool `json:"email_verified,omitempty"` Nickname string `json:"nickname"` FirstName string `json:"first_name"` LastName string `json:"last_name"` Roles string `json:"roles"` - LastActivityAt int64 `json:"last_activity_at"` - LastPingAt int64 `json:"last_ping_at"` - AllowMarketing bool `json:"allow_marketing"` - Props StringMap `json:"props"` - NotifyProps StringMap `json:"notify_props"` - ThemeProps StringMap `json:"theme_props"` - LastPasswordUpdate int64 `json:"last_password_update"` - LastPictureUpdate int64 `json:"last_picture_update"` - FailedAttempts int `json:"failed_attempts"` + LastActivityAt int64 `json:"last_activity_at,omitempty"` + LastPingAt int64 `json:"last_ping_at,omitempty"` + AllowMarketing bool `json:"allow_marketing,omitempty"` + Props StringMap `json:"props,omitempty"` + NotifyProps StringMap `json:"notify_props,omitempty"` + ThemeProps StringMap `json:"theme_props,omitempty"` + LastPasswordUpdate int64 `json:"last_password_update,omitempty"` + LastPictureUpdate int64 `json:"last_picture_update,omitempty"` + FailedAttempts int `json:"failed_attempts,omitempty"` } // IsValid validates the user and returns an error if it isn't configured @@ -221,17 +221,28 @@ func (u *User) Sanitize(options map[string]bool) { u.FirstName = "" u.LastName = "" } - if len(options) != 0 && !options["skypeid"] { - // TODO - fill in when SkypeId is added to user model - } - if len(options) != 0 && !options["phonenumber"] { - // TODO - fill in when PhoneNumber is added to user model - } if len(options) != 0 && !options["passwordupdate"] { u.LastPasswordUpdate = 0 } } +func (u *User) ClearNonProfileFields() { + u.CreateAt = 0 + u.UpdateAt = 0 + u.Password = "" + u.AuthData = "" + u.AuthService = "" + u.EmailVerified = false + u.LastPingAt = 0 + u.AllowMarketing = false + u.Props = StringMap{} + u.NotifyProps = StringMap{} + u.ThemeProps = StringMap{} + u.LastPasswordUpdate = 0 + u.LastPictureUpdate = 0 + u.FailedAttempts = 0 +} + func (u *User) MakeNonNil() { if u.Props == nil { u.Props = make(map[string]string) diff --git a/model/utils.go b/model/utils.go index 6d6eb452d..5596b06ff 100644 --- a/model/utils.go +++ b/model/utils.go @@ -5,10 +5,11 @@ package model import ( "bytes" - "code.google.com/p/go-uuid/uuid" + "crypto/rand" "encoding/base32" "encoding/json" "fmt" + "github.com/pborman/uuid" "io" "net/mail" "net/url" @@ -53,7 +54,7 @@ func AppErrorFromJson(data io.Reader) *AppError { if err == nil { return &er } else { - return nil + return NewAppError("AppErrorFromJson", "could not decode", err.Error()) } } @@ -81,6 +82,17 @@ func NewId() string { return b.String() } +func NewRandomString(length int) string { + var b bytes.Buffer + str := make([]byte, length+8) + rand.Read(str) + encoder := base32.NewEncoder(encoding, &b) + encoder.Write(str) + encoder.Close() + b.Truncate(length) // removes the '==' padding + return b.String() +} + // GetMillis is a convience method to get milliseconds since epoch. func GetMillis() int64 { return time.Now().UnixNano() / int64(time.Millisecond) diff --git a/model/utils_test.go b/model/utils_test.go index 7f14bcdf0..aab535fc9 100644 --- a/model/utils_test.go +++ b/model/utils_test.go @@ -17,6 +17,15 @@ func TestNewId(t *testing.T) { } } +func TestRandomString(t *testing.T) { + for i := 0; i < 1000; i++ { + r := NewRandomString(32) + if len(r) != 32 { + t.Fatal("should be 32 chars") + } + } +} + func TestAppError(t *testing.T) { err := NewAppError("TestAppError", "message", "") json := err.ToJson() @@ -47,21 +56,21 @@ func TestMapJson(t *testing.T) { } func TestValidEmail(t *testing.T) { - if !IsValidEmail("corey@hulen.com") { + if !IsValidEmail("corey+test@hulen.com") { t.Error("email should be valid") } - if IsValidEmail("@corey@hulen.com") { + if IsValidEmail("@corey+test@hulen.com") { t.Error("should be invalid") } } func TestValidLower(t *testing.T) { - if !IsLower("corey@hulen.com") { + if !IsLower("corey+test@hulen.com") { t.Error("should be valid") } - if IsLower("Corey@hulen.com") { + if IsLower("Corey+test@hulen.com") { t.Error("should be invalid") } } diff --git a/model/version.go b/model/version.go index af99717cd..5e41a28d1 100644 --- a/model/version.go +++ b/model/version.go @@ -12,6 +12,7 @@ import ( // It should be maitained in chronological order with most current // release at the front of the list. var versions = []string{ + "1.3.0", "1.2.1", "1.2.0", "1.1.0", diff --git a/store/sql_audit_store.go b/store/sql_audit_store.go index b3e2daea0..f4fd29aab 100644 --- a/store/sql_audit_store.go +++ b/store/sql_audit_store.go @@ -86,3 +86,22 @@ func (s SqlAuditStore) Get(user_id string, limit int) StoreChannel { return storeChannel } + +func (s SqlAuditStore) PermanentDeleteByUser(userId string) StoreChannel { + + storeChannel := make(StoreChannel) + + go func() { + result := StoreResult{} + + if _, err := s.GetMaster().Exec("DELETE FROM Audits WHERE UserId = :userId", + map[string]interface{}{"userId": userId}); err != nil { + result.Err = model.NewAppError("SqlAuditStore.Delete", "We encountered an error deleting the audits", "user_id="+userId) + } + + storeChannel <- result + close(storeChannel) + }() + + return storeChannel +} diff --git a/store/sql_audit_store_test.go b/store/sql_audit_store_test.go index e265db837..b395631f1 100644 --- a/store/sql_audit_store_test.go +++ b/store/sql_audit_store_test.go @@ -44,4 +44,8 @@ func TestSqlAuditStore(t *testing.T) { if len(audits) != 0 { t.Fatal("Should have returned empty because user_id is missing") } + + if r2 := <-store.Audit().PermanentDeleteByUser(audit.UserId); r2.Err != nil { + t.Fatal(r2.Err) + } } diff --git a/store/sql_channel_store.go b/store/sql_channel_store.go index 2d62b8614..b68774189 100644 --- a/store/sql_channel_store.go +++ b/store/sql_channel_store.go @@ -4,7 +4,6 @@ package store import ( - l4g "code.google.com/p/log4go" "github.com/go-gorp/gorp" "github.com/mattermost/platform/model" "github.com/mattermost/platform/utils" @@ -40,55 +39,6 @@ func NewSqlChannelStore(sqlStore *SqlStore) ChannelStore { } func (s SqlChannelStore) UpgradeSchemaIfNeeded() { - - // REMOVE AFTER 1.2 SHIP see PLT-828 - if s.CreateColumnIfNotExists("ChannelMembers", "NotifyProps", "varchar(2000)", "varchar(2000)", "{}") { - // populate NotifyProps from existing NotifyLevel field - - // set default values - _, err := s.GetMaster().Exec( - `UPDATE - ChannelMembers - SET - NotifyProps = CONCAT('{"desktop":"', CONCAT(NotifyLevel, '","mark_unread":"` + model.CHANNEL_MARK_UNREAD_ALL + `"}'))`) - if err != nil { - l4g.Error("Unable to set default values for ChannelMembers.NotifyProps") - l4g.Error(err.Error()) - } - - // assume channels with all notifications enabled are just using the default settings - _, err = s.GetMaster().Exec( - `UPDATE - ChannelMembers - SET - NotifyProps = '{"desktop":"` + model.CHANNEL_NOTIFY_DEFAULT + `","mark_unread":"` + model.CHANNEL_MARK_UNREAD_ALL + `"}' - WHERE - NotifyLevel = '` + model.CHANNEL_NOTIFY_ALL + `'`) - if err != nil { - l4g.Error("Unable to set values for ChannelMembers.NotifyProps when members previously had notifyLevel=all") - l4g.Error(err.Error()) - } - - // set quiet mode channels to have no notifications and only mark the channel unread on mentions - _, err = s.GetMaster().Exec( - `UPDATE - ChannelMembers - SET - NotifyProps = '{"desktop":"` + model.CHANNEL_NOTIFY_NONE + `","mark_unread":"` + model.CHANNEL_MARK_UNREAD_MENTION + `"}' - WHERE - NotifyLevel = 'quiet'`) - if err != nil { - l4g.Error("Unable to set values for ChannelMembers.NotifyProps when members previously had notifyLevel=quiet") - l4g.Error(err.Error()) - } - - s.RemoveColumnIfExists("ChannelMembers", "NotifyLevel") - } - - // BEGIN REMOVE AFTER 1.2.0 - s.RenameColumnIfExists("Channels", "Description", "Header", "varchar(1024)") - s.CreateColumnIfNotExists("Channels", "Purpose", "varchar(1024)", "varchar(1024)", "") - // END REMOVE AFTER 1.2.0 } func (s SqlChannelStore) CreateIndexesIfNotExists() { @@ -291,12 +241,27 @@ func (s SqlChannelStore) extraUpdated(channel *model.Channel) StoreChannel { } func (s SqlChannelStore) Get(id string) StoreChannel { + return s.get(id, false) +} + +func (s SqlChannelStore) GetFromMaster(id string) StoreChannel { + return s.get(id, true) +} + +func (s SqlChannelStore) get(id string, master bool) StoreChannel { storeChannel := make(StoreChannel) go func() { result := StoreResult{} - if obj, err := s.GetReplica().Get(model.Channel{}, id); err != nil { + var db *gorp.DbMap + if master { + db = s.GetMaster() + } else { + db = s.GetReplica() + } + + if obj, err := db.Get(model.Channel{}, id); err != nil { result.Err = model.NewAppError("SqlChannelStore.Get", "We encountered an error finding the channel", "id="+id+", "+err.Error()) } else if obj == nil { result.Err = model.NewAppError("SqlChannelStore.Get", "We couldn't find the existing channel", "id="+id) @@ -329,6 +294,23 @@ func (s SqlChannelStore) Delete(channelId string, time int64) StoreChannel { return storeChannel } +func (s SqlChannelStore) PermanentDeleteByTeam(teamId string) StoreChannel { + storeChannel := make(StoreChannel) + + go func() { + result := StoreResult{} + + if _, err := s.GetMaster().Exec("DELETE FROM Channels WHERE TeamId = :TeamId", map[string]interface{}{"TeamId": teamId}); err != nil { + result.Err = model.NewAppError("SqlChannelStore.PermanentDeleteByTeam", "We couldn't delete the channels", "teamId="+teamId+", "+err.Error()) + } + + storeChannel <- result + close(storeChannel) + }() + + return storeChannel +} + type channelWithMember struct { model.Channel model.ChannelMember @@ -471,7 +453,7 @@ func (s SqlChannelStore) SaveMember(member *model.ChannelMember) StoreChannel { go func() { var result StoreResult // Grab the channel we are saving this member to - if cr := <-s.Get(member.ChannelId); cr.Err != nil { + if cr := <-s.GetFromMaster(member.ChannelId); cr.Err != nil { result.Err = cr.Err } else { channel := cr.Data.(*model.Channel) @@ -592,6 +574,26 @@ func (s SqlChannelStore) GetMember(channelId string, userId string) StoreChannel return storeChannel } +func (s SqlChannelStore) GetMemberCount(channelId string) StoreChannel { + storeChannel := make(StoreChannel) + + go func() { + result := StoreResult{} + + count, err := s.GetReplica().SelectInt("SELECT count(*) FROM ChannelMembers WHERE ChannelId = :ChannelId", map[string]interface{}{"ChannelId": channelId}) + if err != nil { + result.Err = model.NewAppError("SqlChannelStore.GetMemberCount", "We couldn't get the channel member count", "channel_id="+channelId+", "+err.Error()) + } else { + result.Data = count + } + + storeChannel <- result + close(storeChannel) + }() + + return storeChannel +} + func (s SqlChannelStore) GetExtraMembers(channelId string, limit int) StoreChannel { storeChannel := make(StoreChannel) @@ -604,7 +606,7 @@ func (s SqlChannelStore) GetExtraMembers(channelId string, limit int) StoreChann result.Err = model.NewAppError("SqlChannelStore.GetExtraMembers", "We couldn't get the extra info for channel members", "channel_id="+channelId+", "+err.Error()) } else { for i := range members { - members[i].Sanitize(utils.SanitizeOptions) + members[i].Sanitize(utils.Cfg.GetSanitizeOptions()) } result.Data = members } @@ -646,6 +648,23 @@ func (s SqlChannelStore) RemoveMember(channelId string, userId string) StoreChan return storeChannel } +func (s SqlChannelStore) PermanentDeleteMembersByUser(userId string) StoreChannel { + storeChannel := make(StoreChannel) + + go func() { + result := StoreResult{} + + if _, err := s.GetMaster().Exec("DELETE FROM ChannelMembers WHERE UserId = :UserId", map[string]interface{}{"UserId": userId}); err != nil { + result.Err = model.NewAppError("SqlChannelStore.RemoveMember", "We couldn't remove the channel member", "user_id="+userId+", "+err.Error()) + } + + storeChannel <- result + close(storeChannel) + }() + + return storeChannel +} + func (s SqlChannelStore) CheckPermissionsTo(teamId string, channelId string, userId string) StoreChannel { storeChannel := make(StoreChannel) diff --git a/store/sql_channel_store_test.go b/store/sql_channel_store_test.go index f6a0fb713..695991bf7 100644 --- a/store/sql_channel_store_test.go +++ b/store/sql_channel_store_test.go @@ -339,15 +339,15 @@ func TestChannelMemberStore(t *testing.T) { t.Fatal("Member update time incorrect") } - members := (<-store.Channel().GetMembers(o1.ChannelId)).Data.([]model.ChannelMember) - if len(members) != 2 { + count := (<-store.Channel().GetMemberCount(o1.ChannelId)).Data.(int64) + if count != 2 { t.Fatal("should have saved 2 members") } Must(store.Channel().RemoveMember(o2.ChannelId, o2.UserId)) - members = (<-store.Channel().GetMembers(o1.ChannelId)).Data.([]model.ChannelMember) - if len(members) != 1 { + count = (<-store.Channel().GetMemberCount(o1.ChannelId)).Data.(int64) + if count != 1 { t.Fatal("should have removed 1 member") } @@ -379,6 +379,63 @@ func TestChannelMemberStore(t *testing.T) { } } +func TestChannelDeleteMemberStore(t *testing.T) { + Setup() + + c1 := model.Channel{} + c1.TeamId = model.NewId() + c1.DisplayName = "NameName" + c1.Name = "a" + model.NewId() + "b" + c1.Type = model.CHANNEL_OPEN + c1 = *Must(store.Channel().Save(&c1)).(*model.Channel) + + c1t1 := (<-store.Channel().Get(c1.Id)).Data.(*model.Channel) + t1 := c1t1.ExtraUpdateAt + + u1 := model.User{} + u1.TeamId = model.NewId() + u1.Email = model.NewId() + u1.Nickname = model.NewId() + Must(store.User().Save(&u1)) + + u2 := model.User{} + u2.TeamId = model.NewId() + u2.Email = model.NewId() + u2.Nickname = model.NewId() + Must(store.User().Save(&u2)) + + o1 := model.ChannelMember{} + o1.ChannelId = c1.Id + o1.UserId = u1.Id + o1.NotifyProps = model.GetDefaultChannelNotifyProps() + Must(store.Channel().SaveMember(&o1)) + + o2 := model.ChannelMember{} + o2.ChannelId = c1.Id + o2.UserId = u2.Id + o2.NotifyProps = model.GetDefaultChannelNotifyProps() + Must(store.Channel().SaveMember(&o2)) + + c1t2 := (<-store.Channel().Get(c1.Id)).Data.(*model.Channel) + t2 := c1t2.ExtraUpdateAt + + if t2 <= t1 { + t.Fatal("Member update time incorrect") + } + + count := (<-store.Channel().GetMemberCount(o1.ChannelId)).Data.(int64) + if count != 2 { + t.Fatal("should have saved 2 members") + } + + Must(store.Channel().PermanentDeleteMembersByUser(o2.UserId)) + + count = (<-store.Channel().GetMemberCount(o1.ChannelId)).Data.(int64) + if count != 1 { + t.Fatal("should have removed 1 member") + } +} + func TestChannelStorePermissionsTo(t *testing.T) { Setup() diff --git a/store/sql_oauth_store.go b/store/sql_oauth_store.go index 751207b85..43a5bee31 100644 --- a/store/sql_oauth_store.go +++ b/store/sql_oauth_store.go @@ -332,3 +332,21 @@ func (as SqlOAuthStore) RemoveAuthData(code string) StoreChannel { return storeChannel } + +func (as SqlOAuthStore) PermanentDeleteAuthDataByUser(userId string) StoreChannel { + storeChannel := make(StoreChannel) + + go func() { + result := StoreResult{} + + _, err := as.GetMaster().Exec("DELETE FROM OAuthAuthData WHERE UserId = :UserId", map[string]interface{}{"UserId": userId}) + if err != nil { + result.Err = model.NewAppError("SqlOAuthStore.RemoveAuthDataByUserId", "We couldn't remove the authorization code", "err="+err.Error()) + } + + storeChannel <- result + close(storeChannel) + }() + + return storeChannel +} diff --git a/store/sql_oauth_store_test.go b/store/sql_oauth_store_test.go index 3f05f1c92..c3f6ea7ac 100644 --- a/store/sql_oauth_store_test.go +++ b/store/sql_oauth_store_test.go @@ -180,3 +180,17 @@ func TestOAuthStoreRemoveAuthData(t *testing.T) { t.Fatal("should have errored - auth code removed") } } + +func TestOAuthStoreRemoveAuthDataByUser(t *testing.T) { + Setup() + + a1 := model.AuthData{} + a1.ClientId = model.NewId() + a1.UserId = model.NewId() + a1.Code = model.NewId() + Must(store.OAuth().SaveAuthData(&a1)) + + if err := (<-store.OAuth().PermanentDeleteAuthDataByUser(a1.UserId)).Err; err != nil { + t.Fatal(err) + } +} diff --git a/store/sql_post_store.go b/store/sql_post_store.go index 3460fca92..40dca9930 100644 --- a/store/sql_post_store.go +++ b/store/sql_post_store.go @@ -9,10 +9,8 @@ import ( "strconv" "strings" - l4g "code.google.com/p/log4go" "github.com/mattermost/platform/model" "github.com/mattermost/platform/utils" - "time" ) type SqlPostStore struct { @@ -32,7 +30,7 @@ func NewSqlPostStore(sqlStore *SqlStore) PostStore { table.ColMap("Message").SetMaxSize(4000) table.ColMap("Type").SetMaxSize(26) table.ColMap("Hashtags").SetMaxSize(1000) - table.ColMap("Props") + table.ColMap("Props").SetMaxSize(8000) table.ColMap("Filenames").SetMaxSize(4000) } @@ -40,21 +38,6 @@ func NewSqlPostStore(sqlStore *SqlStore) PostStore { } func (s SqlPostStore) UpgradeSchemaIfNeeded() { - colType := s.GetColumnDataType("Posts", "Props") - if colType != "text" { - - query := "ALTER TABLE Posts MODIFY COLUMN Props TEXT" - if utils.Cfg.SqlSettings.DriverName == model.DATABASE_DRIVER_POSTGRES { - query = "ALTER TABLE Posts ALTER COLUMN Props TYPE text" - } - - _, err := s.GetMaster().Exec(query) - if err != nil { - l4g.Critical("Failed to alter column Posts.Props to TEXT: " + err.Error()) - time.Sleep(time.Second) - panic("Failed to alter column Posts.Props to TEXT: " + err.Error()) - } - } } func (s SqlPostStore) CreateIndexesIfNotExists() { @@ -244,6 +227,99 @@ func (s SqlPostStore) Delete(postId string, time int64) StoreChannel { return storeChannel } +func (s SqlPostStore) permanentDelete(postId string) StoreChannel { + storeChannel := make(StoreChannel) + + go func() { + result := StoreResult{} + + _, err := s.GetMaster().Exec("DELETE FROM Posts WHERE Id = :Id OR ParentId = :ParentId OR RootId = :RootId", map[string]interface{}{"Id": postId, "ParentId": postId, "RootId": postId}) + if err != nil { + result.Err = model.NewAppError("SqlPostStore.Delete", "We couldn't delete the post", "id="+postId+", err="+err.Error()) + } + + storeChannel <- result + close(storeChannel) + }() + + return storeChannel +} + +func (s SqlPostStore) permanentDeleteAllCommentByUser(userId string) StoreChannel { + storeChannel := make(StoreChannel) + + go func() { + result := StoreResult{} + + _, err := s.GetMaster().Exec("DELETE FROM Posts WHERE UserId = :UserId AND RootId != ''", map[string]interface{}{"UserId": userId}) + if err != nil { + result.Err = model.NewAppError("SqlPostStore.permanentDeleteAllCommentByUser", "We couldn't delete the comments for user", "userId="+userId+", err="+err.Error()) + } + + storeChannel <- result + close(storeChannel) + }() + + return storeChannel +} + +func (s SqlPostStore) PermanentDeleteByUser(userId string) StoreChannel { + storeChannel := make(StoreChannel) + + go func() { + result := StoreResult{} + + // First attempt to delete all the comments for a user + if r := <-s.permanentDeleteAllCommentByUser(userId); r.Err != nil { + result.Err = r.Err + storeChannel <- result + close(storeChannel) + return + } + + // Now attempt to delete all the root posts for a user. This will also + // delete all the comments for each post. + found := true + count := 0 + + for found { + var ids []string + _, err := s.GetMaster().Select(&ids, "SELECT Id FROM Posts WHERE UserId = :UserId LIMIT 1000", map[string]interface{}{"UserId": userId}) + if err != nil { + result.Err = model.NewAppError("SqlPostStore.PermanentDeleteByUser.select", "We couldn't select the posts to delete for the user", "userId="+userId+", err="+err.Error()) + storeChannel <- result + close(storeChannel) + return + } else { + found = false + for _, id := range ids { + found = true + if r := <-s.permanentDelete(id); r.Err != nil { + result.Err = r.Err + storeChannel <- result + close(storeChannel) + return + } + } + } + + // This is a fail safe, give up if more than 10K messages + count = count + 1 + if count >= 10 { + result.Err = model.NewAppError("SqlPostStore.PermanentDeleteByUser.toolarge", "We couldn't select the posts to delete for the user (too many), please re-run", "userId="+userId) + storeChannel <- result + close(storeChannel) + return + } + } + + storeChannel <- result + close(storeChannel) + }() + + return storeChannel +} + func (s SqlPostStore) GetPosts(channelId string, offset int, limit int) StoreChannel { storeChannel := make(StoreChannel) @@ -493,7 +569,8 @@ func (s SqlPostStore) getParentsPosts(channelId string, offset int, limit int) S AND DeleteAt = 0 ORDER BY CreateAt DESC LIMIT :Limit OFFSET :Offset) q3 - WHERE q3.RootId != '') q1 ON q1.RootId = q2.Id + WHERE q3.RootId != '') q1 + ON q1.RootId = q2.Id OR q1.RootId = q2.RootId WHERE ChannelId = :ChannelId2 AND DeleteAt = 0 @@ -730,6 +807,7 @@ func (s SqlPostStore) AnalyticsUserCountsWithPostsByDay(teamId string) StoreChan WHERE Posts.ChannelId = Channels.Id AND Channels.TeamId = :TeamId + AND Posts.CreateAt <= :EndTime ORDER BY Name DESC) AS t1 GROUP BY Name ORDER BY Name DESC @@ -748,17 +826,20 @@ func (s SqlPostStore) AnalyticsUserCountsWithPostsByDay(teamId string) StoreChan WHERE Posts.ChannelId = Channels.Id AND Channels.TeamId = :TeamId + AND Posts.CreateAt <= :EndTime ORDER BY Name DESC) AS t1 GROUP BY Name ORDER BY Name DESC LIMIT 30` } + end := utils.MillisFromTime(utils.EndOfDay(utils.Yesterday())) + var rows model.AnalyticsRows _, err := s.GetReplica().Select( &rows, query, - map[string]interface{}{"TeamId": teamId, "Time": model.GetMillis() - 1000*60*60*24*31}) + map[string]interface{}{"TeamId": teamId, "EndTime": end}) if err != nil { result.Err = model.NewAppError("SqlPostStore.AnalyticsUserCountsWithPostsByDay", "We couldn't get user counts with posts", err.Error()) } else { @@ -790,7 +871,8 @@ func (s SqlPostStore) AnalyticsPostCountsByDay(teamId string) StoreChannel { WHERE Posts.ChannelId = Channels.Id AND Channels.TeamId = :TeamId - AND Posts.CreateAt >:Time) AS t1 + AND Posts.CreateAt <= :EndTime + AND Posts.CreateAt >= :StartTime) AS t1 GROUP BY Name ORDER BY Name DESC LIMIT 30` @@ -808,17 +890,21 @@ func (s SqlPostStore) AnalyticsPostCountsByDay(teamId string) StoreChannel { WHERE Posts.ChannelId = Channels.Id AND Channels.TeamId = :TeamId - AND Posts.CreateAt > :Time) AS t1 + AND Posts.CreateAt <= :EndTime + AND Posts.CreateAt >= :StartTime) AS t1 GROUP BY Name ORDER BY Name DESC LIMIT 30` } + end := utils.MillisFromTime(utils.EndOfDay(utils.Yesterday())) + start := utils.MillisFromTime(utils.StartOfDay(utils.Yesterday().AddDate(0, 0, -31))) + var rows model.AnalyticsRows _, err := s.GetReplica().Select( &rows, query, - map[string]interface{}{"TeamId": teamId, "Time": model.GetMillis() - 1000*60*60*24*31}) + map[string]interface{}{"TeamId": teamId, "StartTime": start, "EndTime": end}) if err != nil { result.Err = model.NewAppError("SqlPostStore.AnalyticsPostCountsByDay", "We couldn't get post counts by day", err.Error()) } else { diff --git a/store/sql_post_store_test.go b/store/sql_post_store_test.go index fe7195a54..a3e3e10dd 100644 --- a/store/sql_post_store_test.go +++ b/store/sql_post_store_test.go @@ -9,6 +9,7 @@ import ( "time" "github.com/mattermost/platform/model" + "github.com/mattermost/platform/utils" ) func TestPostStoreSave(t *testing.T) { @@ -247,6 +248,76 @@ func TestPostStoreDelete2Level(t *testing.T) { } } +func TestPostStorePermDelete1Level(t *testing.T) { + Setup() + + o1 := &model.Post{} + o1.ChannelId = model.NewId() + o1.UserId = model.NewId() + o1.Message = "a" + model.NewId() + "b" + o1 = (<-store.Post().Save(o1)).Data.(*model.Post) + + o2 := &model.Post{} + o2.ChannelId = o1.ChannelId + o2.UserId = model.NewId() + o2.Message = "a" + model.NewId() + "b" + o2.ParentId = o1.Id + o2.RootId = o1.Id + o2 = (<-store.Post().Save(o2)).Data.(*model.Post) + + if r2 := <-store.Post().PermanentDeleteByUser(o2.UserId); r2.Err != nil { + t.Fatal(r2.Err) + } + + if r3 := (<-store.Post().Get(o1.Id)); r3.Err != nil { + t.Fatal("Deleted id shouldn't have failed") + } + + if r4 := (<-store.Post().Get(o2.Id)); r4.Err == nil { + t.Fatal("Deleted id should have failed") + } +} + +func TestPostStorePermDelete1Level2(t *testing.T) { + Setup() + + o1 := &model.Post{} + o1.ChannelId = model.NewId() + o1.UserId = model.NewId() + o1.Message = "a" + model.NewId() + "b" + o1 = (<-store.Post().Save(o1)).Data.(*model.Post) + + o2 := &model.Post{} + o2.ChannelId = o1.ChannelId + o2.UserId = model.NewId() + o2.Message = "a" + model.NewId() + "b" + o2.ParentId = o1.Id + o2.RootId = o1.Id + o2 = (<-store.Post().Save(o2)).Data.(*model.Post) + + o3 := &model.Post{} + o3.ChannelId = model.NewId() + o3.UserId = model.NewId() + o3.Message = "a" + model.NewId() + "b" + o3 = (<-store.Post().Save(o3)).Data.(*model.Post) + + if r2 := <-store.Post().PermanentDeleteByUser(o1.UserId); r2.Err != nil { + t.Fatal(r2.Err) + } + + if r3 := (<-store.Post().Get(o1.Id)); r3.Err == nil { + t.Fatal("Deleted id should have failed") + } + + if r4 := (<-store.Post().Get(o2.Id)); r4.Err == nil { + t.Fatal("Deleted id should have failed") + } + + if r5 := (<-store.Post().Get(o3.Id)); r5.Err != nil { + t.Fatal("Deleted id shouldn't have failed") + } +} + func TestPostStoreGetWithChildren(t *testing.T) { Setup() @@ -374,7 +445,7 @@ func TestPostStoreGetPostsWtihDetails(t *testing.T) { t.Fatal("invalid order") } - if len(r1.Posts) != 5 { //the last 4, + o1 (o3 and o2a's parent) + if len(r1.Posts) != 6 { //the last 4, + o1 (o2a and o3's parent) + o2 (in same thread as o2a and o3) t.Fatal("wrong size") } @@ -706,7 +777,7 @@ func TestUserCountsWithPostsByDay(t *testing.T) { o1 := &model.Post{} o1.ChannelId = c1.Id o1.UserId = model.NewId() - o1.CreateAt = model.GetMillis() + o1.CreateAt = utils.MillisFromTime(utils.Yesterday()) o1.Message = "a" + model.NewId() + "b" o1 = Must(store.Post().Save(o1)).(*model.Post) @@ -766,7 +837,7 @@ func TestPostCountsByDay(t *testing.T) { o1 := &model.Post{} o1.ChannelId = c1.Id o1.UserId = model.NewId() - o1.CreateAt = model.GetMillis() + o1.CreateAt = utils.MillisFromTime(utils.Yesterday()) o1.Message = "a" + model.NewId() + "b" o1 = Must(store.Post().Save(o1)).(*model.Post) diff --git a/store/sql_preference_store.go b/store/sql_preference_store.go index f9f38b747..307761150 100644 --- a/store/sql_preference_store.go +++ b/store/sql_preference_store.go @@ -1,9 +1,10 @@ -// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. package store import ( + l4g "code.google.com/p/log4go" "github.com/go-gorp/gorp" "github.com/mattermost/platform/model" "github.com/mattermost/platform/utils" @@ -13,6 +14,10 @@ type SqlPreferenceStore struct { *SqlStore } +const ( + FEATURE_TOGGLE_PREFIX = "feature_enabled_" +) + func NewSqlPreferenceStore(sqlStore *SqlStore) PreferenceStore { s := &SqlPreferenceStore{sqlStore} @@ -36,6 +41,23 @@ func (s SqlPreferenceStore) CreateIndexesIfNotExists() { s.CreateIndexIfNotExists("idx_preferences_name", "Preferences", "Name") } +func (s SqlPreferenceStore) DeleteUnusedFeatures() { + l4g.Debug("Deleting any unused pre-release features") + + sql := `DELETE + FROM Preferences + WHERE + Category = :Category + AND Value = :Value + AND Name LIKE '` + FEATURE_TOGGLE_PREFIX + `%'` + + queryParams := map[string]string{ + "Category": model.PREFERENCE_CATEGORY_ADVANCED_SETTINGS, + "Value": "false", + } + s.GetMaster().Exec(sql, queryParams) +} + func (s SqlPreferenceStore) Save(preferences *model.Preferences) StoreChannel { storeChannel := make(StoreChannel) @@ -239,3 +261,46 @@ func (s SqlPreferenceStore) GetAll(userId string) StoreChannel { return storeChannel } + +func (s SqlPreferenceStore) PermanentDeleteByUser(userId string) StoreChannel { + storeChannel := make(StoreChannel) + + go func() { + result := StoreResult{} + + if _, err := s.GetMaster().Exec( + `DELETE FROM Preferences WHERE UserId = :UserId`, map[string]interface{}{"UserId": userId}); err != nil { + result.Err = model.NewAppError("SqlPreferenceStore.Delete", "We encountered an error while deleteing preferences", err.Error()) + } + + storeChannel <- result + close(storeChannel) + }() + + return storeChannel +} + +func (s SqlPreferenceStore) IsFeatureEnabled(feature, userId string) StoreChannel { + storeChannel := make(StoreChannel) + + go func() { + result := StoreResult{} + if value, err := s.GetReplica().SelectStr(`SELECT + value + FROM + Preferences + WHERE + UserId = :UserId + AND Category = :Category + AND Name = :Name`, map[string]interface{}{"UserId": userId, "Category": model.PREFERENCE_CATEGORY_ADVANCED_SETTINGS, "Name": FEATURE_TOGGLE_PREFIX + feature}); err != nil { + result.Err = model.NewAppError("SqlPreferenceStore.IsFeatureEnabled", "We encountered an error while finding a pre release feature preference", err.Error()) + } else { + result.Data = value == "true" + } + + storeChannel <- result + close(storeChannel) + }() + + return storeChannel +} diff --git a/store/sql_preference_store_test.go b/store/sql_preference_store_test.go index e68203cc3..ec9d1df6c 100644 --- a/store/sql_preference_store_test.go +++ b/store/sql_preference_store_test.go @@ -1,4 +1,4 @@ -// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. package store @@ -192,3 +192,178 @@ func TestPreferenceGetAll(t *testing.T) { } } } + +func TestPreferenceDelete(t *testing.T) { + Setup() + + userId := model.NewId() + category := model.PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW + name := model.NewId() + + preferences := model.Preferences{ + { + UserId: userId, + Category: category, + Name: name, + }, + // same user/category, different name + { + UserId: userId, + Category: category, + Name: model.NewId(), + }, + // same user/name, different category + { + UserId: userId, + Category: model.NewId(), + Name: name, + }, + // same name/category, different user + { + UserId: model.NewId(), + Category: category, + Name: name, + }, + } + + Must(store.Preference().Save(&preferences)) + + if result := <-store.Preference().PermanentDeleteByUser(userId); result.Err != nil { + t.Fatal(result.Err) + } +} + +func TestIsFeatureEnabled(t *testing.T) { + Setup() + + feature1 := "testFeat1" + feature2 := "testFeat2" + feature3 := "testFeat3" + + userId := model.NewId() + category := model.PREFERENCE_CATEGORY_ADVANCED_SETTINGS + + features := model.Preferences{ + { + UserId: userId, + Category: category, + Name: FEATURE_TOGGLE_PREFIX + feature1, + Value: "true", + }, + { + UserId: userId, + Category: category, + Name: model.NewId(), + Value: "false", + }, + { + UserId: userId, + Category: model.NewId(), + Name: FEATURE_TOGGLE_PREFIX + feature1, + Value: "false", + }, + { + UserId: model.NewId(), + Category: category, + Name: FEATURE_TOGGLE_PREFIX + feature2, + Value: "false", + }, + { + UserId: model.NewId(), + Category: category, + Name: FEATURE_TOGGLE_PREFIX + feature3, + Value: "foobar", + }, + } + + Must(store.Preference().Save(&features)) + + if result := <-store.Preference().IsFeatureEnabled(feature1, userId); result.Err != nil { + t.Fatal(result.Err) + } else if data := result.Data.(bool); data != true { + t.Fatalf("got incorrect setting for feature1, %v=%v", true, data) + } + + if result := <-store.Preference().IsFeatureEnabled(feature2, userId); result.Err != nil { + t.Fatal(result.Err) + } else if data := result.Data.(bool); data != false { + t.Fatalf("got incorrect setting for feature2, %v=%v", false, data) + } + + // make sure we get false if something different than "true" or "false" has been saved to database + if result := <-store.Preference().IsFeatureEnabled(feature3, userId); result.Err != nil { + t.Fatal(result.Err) + } else if data := result.Data.(bool); data != false { + t.Fatalf("got incorrect setting for feature3, %v=%v", false, data) + } + + // make sure false is returned if a non-existent feature is queried + if result := <-store.Preference().IsFeatureEnabled("someOtherFeature", userId); result.Err != nil { + t.Fatal(result.Err) + } else if data := result.Data.(bool); data != false { + t.Fatalf("got incorrect setting for non-existent feature 'someOtherFeature', %v=%v", false, data) + } +} + +func TestDeleteUnusedFeatures(t *testing.T) { + Setup() + + userId1 := model.NewId() + userId2 := model.NewId() + category := model.PREFERENCE_CATEGORY_ADVANCED_SETTINGS + feature1 := "feature1" + feature2 := "feature2" + + features := model.Preferences{ + { + UserId: userId1, + Category: category, + Name: FEATURE_TOGGLE_PREFIX + feature1, + Value: "true", + }, + { + UserId: userId2, + Category: category, + Name: FEATURE_TOGGLE_PREFIX + feature1, + Value: "false", + }, + { + UserId: userId1, + Category: category, + Name: FEATURE_TOGGLE_PREFIX + feature2, + Value: "false", + }, + { + UserId: userId2, + Category: category, + Name: FEATURE_TOGGLE_PREFIX + feature2, + Value: "true", + }, + } + + Must(store.Preference().Save(&features)) + + store.(*SqlStore).preference.(*SqlPreferenceStore).DeleteUnusedFeatures() + + //make sure features with value "false" have actually been deleted from the database + if val, err := store.(*SqlStore).preference.(*SqlPreferenceStore).GetReplica().SelectInt(`SELECT COUNT(*) + FROM Preferences + WHERE Category = :Category + AND Value = :Val + AND Name LIKE '`+FEATURE_TOGGLE_PREFIX+`%'`, map[string]interface{}{"Category": model.PREFERENCE_CATEGORY_ADVANCED_SETTINGS, "Val": "false"}); err != nil { + t.Fatal(err) + } else if val != 0 { + t.Fatalf("Found %d features with value 'false', expected all to be deleted", val) + } + // + // make sure features with value "true" remain saved + if val, err := store.(*SqlStore).preference.(*SqlPreferenceStore).GetReplica().SelectInt(`SELECT COUNT(*) + FROM Preferences + WHERE Category = :Category + AND Value = :Val + AND Name LIKE '`+FEATURE_TOGGLE_PREFIX+`%'`, map[string]interface{}{"Category": model.PREFERENCE_CATEGORY_ADVANCED_SETTINGS, "Val": "true"}); err != nil { + t.Fatal(err) + } else if val == 0 { + t.Fatalf("Found %d features with value 'true', expected to find at least %d features", val, 2) + } +} diff --git a/store/sql_session_store.go b/store/sql_session_store.go index 27b34ee39..86604b4fe 100644 --- a/store/sql_session_store.go +++ b/store/sql_session_store.go @@ -158,6 +158,24 @@ func (me SqlSessionStore) RemoveAllSessionsForTeam(teamId string) StoreChannel { return storeChannel } +func (me SqlSessionStore) PermanentDeleteSessionsByUser(userId string) StoreChannel { + storeChannel := make(StoreChannel) + + go func() { + result := StoreResult{} + + _, err := me.GetMaster().Exec("DELETE FROM Sessions WHERE UserId = :UserId", map[string]interface{}{"UserId": userId}) + if err != nil { + result.Err = model.NewAppError("SqlSessionStore.RemoveAllSessionsForUser", "We couldn't remove all the sessions for the user", "id="+userId+", err="+err.Error()) + } + + storeChannel <- result + close(storeChannel) + }() + + return storeChannel +} + func (me SqlSessionStore) CleanUpExpiredSessions(userId string) StoreChannel { storeChannel := make(StoreChannel) diff --git a/store/sql_session_store_test.go b/store/sql_session_store_test.go index 068e5fc19..cec8e93b0 100644 --- a/store/sql_session_store_test.go +++ b/store/sql_session_store_test.go @@ -103,6 +103,29 @@ func TestSessionRemoveAll(t *testing.T) { } } +func TestSessionRemoveByUser(t *testing.T) { + Setup() + + s1 := model.Session{} + s1.UserId = model.NewId() + s1.TeamId = model.NewId() + Must(store.Session().Save(&s1)) + + if rs1 := (<-store.Session().Get(s1.Id)); rs1.Err != nil { + t.Fatal(rs1.Err) + } else { + if rs1.Data.(*model.Session).Id != s1.Id { + t.Fatal("should match") + } + } + + Must(store.Session().PermanentDeleteSessionsByUser(s1.UserId)) + + if rs2 := (<-store.Session().Get(s1.Id)); rs2.Err == nil { + t.Fatal("should have been removed") + } +} + func TestSessionRemoveToken(t *testing.T) { Setup() diff --git a/store/sql_store.go b/store/sql_store.go index f348db10b..d17a3e8c3 100644 --- a/store/sql_store.go +++ b/store/sql_store.go @@ -148,6 +148,8 @@ func NewSqlStore() Store { sqlStore.webhook.(*SqlWebhookStore).CreateIndexesIfNotExists() sqlStore.preference.(*SqlPreferenceStore).CreateIndexesIfNotExists() + sqlStore.preference.(*SqlPreferenceStore).DeleteUnusedFeatures() + if model.IsPreviousVersion(schemaVersion) || isSchemaVersion07 || isSchemaVersion10 { sqlStore.system.Update(&model.System{Name: "Version", Value: model.CurrentVersion}) l4g.Warn("The database schema has been upgraded to version " + model.CurrentVersion) diff --git a/store/sql_team_store.go b/store/sql_team_store.go index e0f95fa7e..9578549ca 100644 --- a/store/sql_team_store.go +++ b/store/sql_team_store.go @@ -30,11 +30,6 @@ func NewSqlTeamStore(sqlStore *SqlStore) TeamStore { } func (s SqlTeamStore) UpgradeSchemaIfNeeded() { - // REMOVE AFTER 1.2 SHIP see PLT-828 - s.RemoveColumnIfExists("Teams", "AllowValet") - s.CreateColumnIfNotExists("Teams", "InviteId", "varchar(32)", "varchar(32)", "") - s.CreateColumnIfNotExists("Teams", "AllowOpenInvite", "tinyint(1)", "boolean", "0") - s.CreateColumnIfNotExists("Teams", "AllowTeamListing", "tinyint(1)", "boolean", "0") } func (s SqlTeamStore) CreateIndexesIfNotExists() { @@ -305,3 +300,20 @@ func (s SqlTeamStore) GetAllTeamListing() StoreChannel { return storeChannel } + +func (s SqlTeamStore) PermanentDelete(teamId string) StoreChannel { + storeChannel := make(StoreChannel) + + go func() { + result := StoreResult{} + + if _, err := s.GetMaster().Exec("DELETE FROM Teams WHERE Id = :TeamId", map[string]interface{}{"TeamId": teamId}); err != nil { + result.Err = model.NewAppError("SqlTeamStore.Delete", "We couldn't delete the existing team", "teamId="+teamId+", "+err.Error()) + } + + storeChannel <- result + close(storeChannel) + }() + + return storeChannel +} diff --git a/store/sql_team_store_test.go b/store/sql_team_store_test.go index 71740f7e7..7dc31cbe2 100644 --- a/store/sql_team_store_test.go +++ b/store/sql_team_store_test.go @@ -238,3 +238,26 @@ func TestAllTeamListing(t *testing.T) { } } } + +func TestDelete(t *testing.T) { + Setup() + + o1 := model.Team{} + o1.DisplayName = "DisplayName" + o1.Name = "a" + model.NewId() + "b" + o1.Email = model.NewId() + "@nowhere.com" + o1.Type = model.TEAM_OPEN + o1.AllowTeamListing = true + Must(store.Team().Save(&o1)) + + o2 := model.Team{} + o2.DisplayName = "DisplayName" + o2.Name = "a" + model.NewId() + "b" + o2.Email = model.NewId() + "@nowhere.com" + o2.Type = model.TEAM_OPEN + Must(store.Team().Save(&o2)) + + if r1 := <-store.Team().PermanentDelete(o1.Id); r1.Err != nil { + t.Fatal(r1.Err) + } +} diff --git a/store/sql_user_store.go b/store/sql_user_store.go index 686949a4d..d19135b64 100644 --- a/store/sql_user_store.go +++ b/store/sql_user_store.go @@ -41,8 +41,6 @@ func NewSqlUserStore(sqlStore *SqlStore) UserStore { } func (us SqlUserStore) UpgradeSchemaIfNeeded() { - // REMOVE AFTER 1.2 SHIP see PLT-828 - us.CreateColumnIfNotExists("Users", "ThemeProps", "varchar(2000)", "character varying(2000)", "{}") } func (us SqlUserStore) CreateIndexesIfNotExists() { @@ -159,7 +157,7 @@ func (us SqlUserStore) Update(user *model.User, allowActiveUpdate bool) StoreCha if count, err := us.GetMaster().Update(user); err != nil { if IsUniqueConstraintError(err.Error(), "Email", "users_email_teamid_key") { - result.Err = model.NewAppError("SqlUserStore.Update", "This email is already taken. Please choose another", "user_id="+user.Id+", "+err.Error()) + result.Err = model.NewAppError("SqlUserStore.Update", "This email is already taken. Please choose another.", "user_id="+user.Id+", "+err.Error()) } else if IsUniqueConstraintError(err.Error(), "Username", "users_username_teamid_key") { result.Err = model.NewAppError("SqlUserStore.Update", "This username is already taken. Please choose another.", "user_id="+user.Id+", "+err.Error()) } else { @@ -556,3 +554,21 @@ func (us SqlUserStore) GetTotalActiveUsersCount() StoreChannel { return storeChannel } + +func (us SqlUserStore) PermanentDelete(userId string) StoreChannel { + + storeChannel := make(StoreChannel) + + go func() { + result := StoreResult{} + + if _, err := us.GetMaster().Exec("DELETE FROM Users WHERE Id = :UserId", map[string]interface{}{"UserId": userId}); err != nil { + result.Err = model.NewAppError("SqlUserStore.GetByEmail", "We couldn't delete the existing account", "userId="+userId+", "+err.Error()) + } + + storeChannel <- result + close(storeChannel) + }() + + return storeChannel +} diff --git a/store/sql_user_store_test.go b/store/sql_user_store_test.go index 874baf634..dd08438f1 100644 --- a/store/sql_user_store_test.go +++ b/store/sql_user_store_test.go @@ -377,3 +377,16 @@ func TestUserStoreUpdatePassword(t *testing.T) { } } } + +func TestUserStoreDelete(t *testing.T) { + Setup() + + u1 := model.User{} + u1.TeamId = model.NewId() + u1.Email = model.NewId() + Must(store.User().Save(&u1)) + + if err := (<-store.User().PermanentDelete(u1.Id)).Err; err != nil { + t.Fatal(err) + } +} diff --git a/store/sql_webhook_store.go b/store/sql_webhook_store.go index c758e2339..b7bf0615f 100644 --- a/store/sql_webhook_store.go +++ b/store/sql_webhook_store.go @@ -116,6 +116,24 @@ func (s SqlWebhookStore) DeleteIncoming(webhookId string, time int64) StoreChann return storeChannel } +func (s SqlWebhookStore) PermanentDeleteIncomingByUser(userId string) StoreChannel { + storeChannel := make(StoreChannel) + + go func() { + result := StoreResult{} + + _, err := s.GetMaster().Exec("DELETE FROM IncomingWebhooks WHERE UserId = :UserId", map[string]interface{}{"UserId": userId}) + if err != nil { + result.Err = model.NewAppError("SqlWebhookStore.DeleteIncomingByUser", "We couldn't delete the webhook", "id="+userId+", err="+err.Error()) + } + + storeChannel <- result + close(storeChannel) + }() + + return storeChannel +} + func (s SqlWebhookStore) GetIncomingByUser(userId string) StoreChannel { storeChannel := make(StoreChannel) @@ -294,6 +312,24 @@ func (s SqlWebhookStore) DeleteOutgoing(webhookId string, time int64) StoreChann return storeChannel } +func (s SqlWebhookStore) PermanentDeleteOutgoingByUser(userId string) StoreChannel { + storeChannel := make(StoreChannel) + + go func() { + result := StoreResult{} + + _, err := s.GetMaster().Exec("DELETE FROM OutgoingWebhooks WHERE CreatorId = :UserId", map[string]interface{}{"UserId": userId}) + if err != nil { + result.Err = model.NewAppError("SqlWebhookStore.DeleteOutgoingByUser", "We couldn't delete the webhook", "id="+userId+", err="+err.Error()) + } + + storeChannel <- result + close(storeChannel) + }() + + return storeChannel +} + func (s SqlWebhookStore) UpdateOutgoing(hook *model.OutgoingWebhook) StoreChannel { storeChannel := make(StoreChannel) diff --git a/store/sql_webhook_store_test.go b/store/sql_webhook_store_test.go index 1fb990f3e..1a9d5be3b 100644 --- a/store/sql_webhook_store_test.go +++ b/store/sql_webhook_store_test.go @@ -103,6 +103,34 @@ func TestWebhookStoreDeleteIncoming(t *testing.T) { } } +func TestWebhookStoreDeleteIncomingByUser(t *testing.T) { + Setup() + + o1 := &model.IncomingWebhook{} + o1.ChannelId = model.NewId() + o1.UserId = model.NewId() + o1.TeamId = model.NewId() + + o1 = (<-store.Webhook().SaveIncoming(o1)).Data.(*model.IncomingWebhook) + + if r1 := <-store.Webhook().GetIncoming(o1.Id); r1.Err != nil { + t.Fatal(r1.Err) + } else { + if r1.Data.(*model.IncomingWebhook).CreateAt != o1.CreateAt { + t.Fatal("invalid returned webhook") + } + } + + if r2 := <-store.Webhook().PermanentDeleteIncomingByUser(o1.UserId); r2.Err != nil { + t.Fatal(r2.Err) + } + + if r3 := (<-store.Webhook().GetIncoming(o1.Id)); r3.Err == nil { + t.Log(r3.Data) + t.Fatal("Missing id should have failed") + } +} + func TestWebhookStoreSaveOutgoing(t *testing.T) { Setup() @@ -258,6 +286,35 @@ func TestWebhookStoreDeleteOutgoing(t *testing.T) { } } +func TestWebhookStoreDeleteOutgoingByUser(t *testing.T) { + Setup() + + o1 := &model.OutgoingWebhook{} + o1.ChannelId = model.NewId() + o1.CreatorId = model.NewId() + o1.TeamId = model.NewId() + o1.CallbackURLs = []string{"http://nowhere.com/"} + + o1 = (<-store.Webhook().SaveOutgoing(o1)).Data.(*model.OutgoingWebhook) + + if r1 := <-store.Webhook().GetOutgoing(o1.Id); r1.Err != nil { + t.Fatal(r1.Err) + } else { + if r1.Data.(*model.OutgoingWebhook).CreateAt != o1.CreateAt { + t.Fatal("invalid returned webhook") + } + } + + if r2 := <-store.Webhook().PermanentDeleteOutgoingByUser(o1.CreatorId); r2.Err != nil { + t.Fatal(r2.Err) + } + + if r3 := (<-store.Webhook().GetOutgoing(o1.Id)); r3.Err == nil { + t.Log(r3.Data) + t.Fatal("Missing id should have failed") + } +} + func TestWebhookStoreUpdateOutgoing(t *testing.T) { Setup() diff --git a/store/store.go b/store/store.go index ce4d90883..682195148 100644 --- a/store/store.go +++ b/store/store.go @@ -52,6 +52,7 @@ type TeamStore interface { GetAll() StoreChannel GetAllTeamListing() StoreChannel GetByInviteId(inviteId string) StoreChannel + PermanentDelete(teamId string) StoreChannel } type ChannelStore interface { @@ -59,7 +60,9 @@ type ChannelStore interface { SaveDirectChannel(channel *model.Channel, member1 *model.ChannelMember, member2 *model.ChannelMember) StoreChannel Update(channel *model.Channel) StoreChannel Get(id string) StoreChannel + GetFromMaster(id string) StoreChannel Delete(channelId string, time int64) StoreChannel + PermanentDeleteByTeam(teamId string) StoreChannel GetByName(team_id string, domain string) StoreChannel GetChannels(teamId string, userId string) StoreChannel GetMoreChannels(teamId string, userId string) StoreChannel @@ -70,7 +73,9 @@ type ChannelStore interface { UpdateMember(member *model.ChannelMember) StoreChannel GetMembers(channelId string) StoreChannel GetMember(channelId string, userId string) StoreChannel + GetMemberCount(channelId string) StoreChannel RemoveMember(channelId string, userId string) StoreChannel + PermanentDeleteMembersByUser(userId string) StoreChannel GetExtraMembers(channelId string, limit int) StoreChannel CheckPermissionsTo(teamId string, channelId string, userId string) StoreChannel CheckOpenChannelPermissions(teamId string, channelId string) StoreChannel @@ -85,6 +90,7 @@ type PostStore interface { Update(post *model.Post, newMessage string, newHashtags string) StoreChannel Get(id string) StoreChannel Delete(postId string, time int64) StoreChannel + PermanentDeleteByUser(userId string) StoreChannel GetPosts(channelId string, offset int, limit int) StoreChannel GetPostsBefore(channelId string, postId string, numPosts int, offset int) StoreChannel GetPostsAfter(channelId string, postId string, numPosts int, offset int) StoreChannel @@ -117,6 +123,7 @@ type UserStore interface { GetTotalUsersCount() StoreChannel GetTotalActiveUsersCount() StoreChannel GetSystemAdminProfiles() StoreChannel + PermanentDelete(userId string) StoreChannel } type SessionStore interface { @@ -125,6 +132,7 @@ type SessionStore interface { GetSessions(userId string) StoreChannel Remove(sessionIdOrToken string) StoreChannel RemoveAllSessionsForTeam(teamId string) StoreChannel + PermanentDeleteSessionsByUser(teamId string) StoreChannel UpdateLastActivityAt(sessionId string, time int64) StoreChannel UpdateRoles(userId string, roles string) StoreChannel } @@ -132,6 +140,7 @@ type SessionStore interface { type AuditStore interface { Save(audit *model.Audit) StoreChannel Get(user_id string, limit int) StoreChannel + PermanentDeleteByUser(userId string) StoreChannel } type OAuthStore interface { @@ -142,6 +151,7 @@ type OAuthStore interface { SaveAuthData(authData *model.AuthData) StoreChannel GetAuthData(code string) StoreChannel RemoveAuthData(code string) StoreChannel + PermanentDeleteAuthDataByUser(userId string) StoreChannel SaveAccessData(accessData *model.AccessData) StoreChannel GetAccessData(token string) StoreChannel GetAccessDataByAuthCode(authCode string) StoreChannel @@ -160,12 +170,14 @@ type WebhookStore interface { GetIncomingByUser(userId string) StoreChannel GetIncomingByChannel(channelId string) StoreChannel DeleteIncoming(webhookId string, time int64) StoreChannel + PermanentDeleteIncomingByUser(userId string) StoreChannel SaveOutgoing(webhook *model.OutgoingWebhook) StoreChannel GetOutgoing(id string) StoreChannel GetOutgoingByCreator(userId string) StoreChannel GetOutgoingByChannel(channelId string) StoreChannel GetOutgoingByTeam(teamId string) StoreChannel DeleteOutgoing(webhookId string, time int64) StoreChannel + PermanentDeleteOutgoingByUser(userId string) StoreChannel UpdateOutgoing(hook *model.OutgoingWebhook) StoreChannel } @@ -174,4 +186,6 @@ type PreferenceStore interface { Get(userId string, category string, name string) StoreChannel GetCategory(userId string, category string) StoreChannel GetAll(userId string) StoreChannel + PermanentDeleteByUser(userId string) StoreChannel + IsFeatureEnabled(feature, userId string) StoreChannel } diff --git a/utils/apns.go b/utils/apns.go deleted file mode 100644 index 06e8ce6ef..000000000 --- a/utils/apns.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -package utils - -import ( - l4g "code.google.com/p/log4go" - "fmt" - "github.com/anachronistic/apns" - "github.com/mattermost/platform/model" -) - -func SendAppleNotifyAndForget(deviceId string, message string, badge int) { - go func() { - if err := SendAppleNotify(deviceId, message, badge); err != nil { - l4g.Error(fmt.Sprintf("%v %v", err.Message, err.DetailedError)) - } - }() -} - -func SendAppleNotify(deviceId string, message string, badge int) *model.AppError { - payload := apns.NewPayload() - payload.Alert = message - payload.Badge = 1 - - pn := apns.NewPushNotification() - pn.DeviceToken = deviceId - pn.AddPayload(payload) - client := apns.BareClient(Cfg.EmailSettings.ApplePushServer, Cfg.EmailSettings.ApplePushCertPublic, Cfg.EmailSettings.ApplePushCertPrivate) - resp := client.Send(pn) - - if resp.Error != nil { - return model.NewAppError("", "Could not send apple push notification", fmt.Sprintf("id=%v err=%v", deviceId, resp.Error)) - } else { - return nil - } -} diff --git a/utils/config.go b/utils/config.go index 13b7b6b64..0789c101d 100644 --- a/utils/config.go +++ b/utils/config.go @@ -24,10 +24,10 @@ const ( ) var Cfg *model.Config = &model.Config{} +var CfgDiagnosticId = "" var CfgLastModified int64 = 0 var CfgFileName string = "" var ClientCfg map[string]string = map[string]string{} -var SanitizeOptions map[string]bool = map[string]bool{} func FindConfigFile(fileName string) string { if _, err := os.Stat("/tmp/" + fileName); err == nil { @@ -59,8 +59,7 @@ func FindDir(dir string) string { func ConfigureCmdLineLog() { ls := model.LogSettings{} ls.EnableConsole = true - ls.ConsoleLevel = "ERROR" - ls.EnableFile = false + ls.ConsoleLevel = "WARN" configureLog(&ls) } @@ -72,6 +71,8 @@ func configureLog(s *model.LogSettings) { level := l4g.DEBUG if s.ConsoleLevel == "INFO" { level = l4g.INFO + } else if s.ConsoleLevel == "WARN" { + level = l4g.WARNING } else if s.ConsoleLevel == "ERROR" { level = l4g.ERROR } @@ -90,6 +91,8 @@ func configureLog(s *model.LogSettings) { level := l4g.DEBUG if s.FileLevel == "INFO" { level = l4g.INFO + } else if s.FileLevel == "WARN" { + level = l4g.WARNING } else if s.FileLevel == "ERROR" { level = l4g.ERROR } @@ -167,18 +170,9 @@ func LoadConfig(fileName string) { } Cfg = &config - SanitizeOptions = getSanitizeOptions(Cfg) ClientCfg = getClientConfig(Cfg) } -func getSanitizeOptions(c *model.Config) map[string]bool { - options := map[string]bool{} - options["fullname"] = c.PrivacySettings.ShowFullName - options["email"] = c.PrivacySettings.ShowEmailAddress - - return options -} - func getClientConfig(c *model.Config) map[string]string { props := make(map[string]string) @@ -189,6 +183,7 @@ func getClientConfig(c *model.Config) map[string]string { props["SiteName"] = c.TeamSettings.SiteName props["EnableTeamCreation"] = strconv.FormatBool(c.TeamSettings.EnableTeamCreation) + props["EnableUserCreation"] = strconv.FormatBool(c.TeamSettings.EnableUserCreation) props["RestrictTeamNames"] = strconv.FormatBool(*c.TeamSettings.RestrictTeamNames) props["EnableTeamListing"] = strconv.FormatBool(*c.TeamSettings.EnableTeamListing) @@ -210,6 +205,13 @@ func getClientConfig(c *model.Config) map[string]string { props["ShowEmailAddress"] = strconv.FormatBool(c.PrivacySettings.ShowEmailAddress) + props["TermsOfServiceLink"] = *c.SupportSettings.TermsOfServiceLink + props["PrivacyPolicyLink"] = *c.SupportSettings.PrivacyPolicyLink + props["AboutLink"] = *c.SupportSettings.AboutLink + props["HelpLink"] = *c.SupportSettings.HelpLink + props["ReportAProblemLink"] = *c.SupportSettings.ReportAProblemLink + props["SupportEmail"] = *c.SupportSettings.SupportEmail + props["EnablePublicLink"] = strconv.FormatBool(c.FileSettings.EnablePublicLink) props["ProfileHeight"] = fmt.Sprintf("%v", c.FileSettings.ProfileHeight) props["ProfileWidth"] = fmt.Sprintf("%v", c.FileSettings.ProfileWidth) diff --git a/utils/textgeneration.go b/utils/textgeneration.go index fd0284a2e..31b6517b8 100644 --- a/utils/textgeneration.go +++ b/utils/textgeneration.go @@ -81,6 +81,58 @@ Markdown | Less | Pretty `, + ` **[4]** - **[More Markdown Tests]** +# This is a heading + +I am a multiline +text. + +#### I am a level four heading + +` + "```tex" + ` +f(x) = \int_{-\infty}^\infty + \hat f(\xi)\,e^{2 \pi i \xi x} + \,d\xi +` + "```" + ` +* This was some tex code* +`, + + `**[5]** - **[Markdown and automatic preview of content test]** + +## This should display a preview for the given vine url + +Some text *before* the link +And a smiley :) +https://vine.co/v/eDeVgbFrt9L + +Some more text here +and here +and even more here +`, + + `**[6]** - **[More markdown and automatic preview of content test]** + +## Only the first given url should render an "attachment" + +Lets also add a table here, because why not +| Left-Aligned | Center Aligned | Right Aligned | +| :------------ |:---------------:| -----:| +| Left column 1 | this text | $100 | +| Left column 2 | is | $10 | +| Left column 3 | centered | $1 | + +Wiki should render: +http://en.wikipedia.org/wiki/Foo +https://vine.co/v/eDeVgbFrt9L +`, + + `**[7] [Image Test]** + +## this *should* display an image + +http://37.media.tumblr.com/tumblr_mavsumGGAd1qboaw8o1_500.jpg +`, + /* `**[2] [Username Linking Test]** I saw @alice--and I said "Hi @alice!" then "What's up @alice?" and then @alice, was totally @alice; she just "@alice"'d me and walked on by. That's @alice... @alice‽‽ @@ -89,7 +141,7 @@ Markdown | Less | Pretty `**[3] [Mention Highlighting Test]** `,*/ - `**[4] [Emoji Display Test 1]** + `**[8] [Emoji Display Test 1]** :+1: :-1: :100: :1234: :8ball: :a: :ab: :abc: :abcd: :accept: :aerial_tramway: :airplane: :alarm_clock: :ambulance: :anchor: :angel: :anger: :angry: :anguished: :ant: :apple: :aquarius: :aries: :arrow_backward: :arrow_double_down: :arrow_double_up: :arrow_down: :arrow_down_small: :arrow_forward: :arrow_heading_down: @@ -124,7 +176,7 @@ Markdown | Less | Pretty :fork_and_knife: :fountain: :four: :four_leaf_clover: :fr: :free: :fried_shrimp: :fries: :frog: :frowning: :fu: :fuelpump: :full_moon: :full_moon_with_face: :game_die: :gb: :gem: :gemini: :ghost: :gift:`, - `**[5] [Emoji Display Test 2]** + `**[9] [Emoji Display Test 2]** :gift_heart: :girl: :globe_with_meridians: :goat: :goberserk: :godmode: :golf: :grapes: :green_apple: :green_book: :green_heart: :grey_exclamation: :grey_question: :grimacing: :grin: :grinning: :guardsman: :guitar: :gun: :haircut: :hamburger: :hammer: :hamster: :hand: :handbag: :hankey: :hash: :hatched_chick: :hatching_chick: :headphones: @@ -153,7 +205,7 @@ Markdown | Less | Pretty :person_with_blond_hair: :person_with_pouting_face: :phone: :pig: :pig2: :pig_nose: :pill: :pineapple: :pisces: :pizza: `, - `**[6] [Emoji Display Test 3]** + `**[10] [Emoji Display Test 3]** :plus1: :point_down: :point_left: :point_right: :point_up: :point_up_2: :police_car: :poodle: :poop: :post_office: :postal_horn: :postbox: :potable_water: :pouch: :poultry_leg: :pound: :pouting_cat: :pray: :princess: :punch: :purple_heart: :purse: :pushpin: :put_litter_in_its_place: :question: :rabbit: :rabbit2: :racehorse: :radio: :radio_button: @@ -186,7 +238,7 @@ Markdown | Less | Pretty Unnamed: :u5272: :u5408: :u55b6: :u6307: :u6708: :u6709: :u6e80: :u7121: :u7533: :u7981: :u7a7a: `, - `**[7] [Auto Linking]** + `**[11] [Auto Linking]** #### should be turned into links: http://example.com https://example.com diff --git a/utils/time.go b/utils/time.go new file mode 100644 index 000000000..7d5afdf8f --- /dev/null +++ b/utils/time.go @@ -0,0 +1,23 @@ +package utils + +import ( + "time" +) + +func MillisFromTime(t time.Time) int64 { + return t.UnixNano() / int64(time.Millisecond) +} + +func StartOfDay(t time.Time) time.Time { + year, month, day := t.Date() + return time.Date(year, month, day, 0, 0, 0, 0, t.Location()) +} + +func EndOfDay(t time.Time) time.Time { + year, month, day := t.Date() + return time.Date(year, month, day, 23, 59, 59, 999999999, t.Location()) +} + +func Yesterday() time.Time { + return time.Now().AddDate(0, 0, -1) +} diff --git a/utils/time_test.go b/utils/time_test.go new file mode 100644 index 000000000..7d65046bf --- /dev/null +++ b/utils/time_test.go @@ -0,0 +1,50 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +package utils + +import ( + "testing" + "time" +) + +var format = "2006-01-02 15:04:05.000000000" + +func TestMillisFromTime(t *testing.T) { + input, _ := time.Parse(format, "2015-01-01 12:34:00.000000000") + actual := MillisFromTime(input) + expected := int64(1420115640000) + + if actual != expected { + t.Fatalf("TestMillisFromTime failed, %v=%v", expected, actual) + } +} + +func TestYesterday(t *testing.T) { + actual := Yesterday() + expected := time.Now().AddDate(0, 0, -1) + + if actual.Year() != expected.Year() || actual.Day() != expected.Day() || actual.Month() != expected.Month() { + t.Fatalf("TestYesterday failed, %v=%v", expected, actual) + } +} + +func TestStartOfDay(t *testing.T) { + input, _ := time.Parse(format, "2015-01-01 12:34:00.000000000") + actual := StartOfDay(input) + expected, _ := time.Parse(format, "2015-01-01 00:00:00.000000000") + + if actual != expected { + t.Fatalf("TestStartOfDay failed, %v=%v", expected, actual) + } +} + +func TestEndOfDay(t *testing.T) { + input, _ := time.Parse(format, "2015-01-01 12:34:00.000000000") + actual := EndOfDay(input) + expected, _ := time.Parse(format, "2015-01-01 23:59:59.999999999") + + if actual != expected { + t.Fatalf("TestEndOfDay failed, %v=%v", expected, actual) + } +} diff --git a/web/react/.eslintrc b/web/react/.eslintrc index d78068882..baaf7eaa5 100644 --- a/web/react/.eslintrc +++ b/web/react/.eslintrc @@ -6,8 +6,9 @@ "modules": true, "classes": true, "arrowFunctions": true, - "defaultParams": true, + "defaultParams": true }, + "parser": "babel-eslint", "plugins": [ "react" ], @@ -21,10 +22,13 @@ "React": false, "ReactDOM": false, "ReactBootstrap": false, - "Chart": false + "Chart": false, + "katex": false }, "rules": { "comma-dangle": [2, "never"], + "no-arrow-condition": 2, + "no-case-declarations": 2, "no-cond-assign": [2, "except-parens"], "no-console": 2, "no-constant-condition": 2, @@ -33,14 +37,17 @@ "no-dupe-keys": 2, "no-duplicate-case": 2, "no-empty": 2, + "no-empty-pattern": 2, "no-ex-assign": 2, "no-extra-semi": 2, + "no-fallthrough": 2, "no-func-assign": 2, "no-inner-declarations": 0, "no-invalid-regexp": 2, "no-irregular-whitespace": 2, "no-unexpected-multiline": 2, "no-unreachable": 2, + "no-magic-numbers": [1, { "ignore": [-1, 0, 1, 2], "enforceConst": true, "detectObjects": true } ], "valid-typeof": 2, "block-scoped-var": 2, @@ -148,6 +155,7 @@ // ES6 stuff "arrow-parens": [2, "always"], + "arrow-body-style": 0, "arrow-spacing": [2, { "before": true, "after": true }], "constructor-super": 2, "generator-star-spacing": [2, {"before": false, "after": true}], @@ -170,7 +178,9 @@ "react/jsx-closing-bracket-location": [2, { "location": "tag-aligned" }], "react/jsx-curly-spacing": [2, "never"], "react/jsx-indent-props": [2, 4], + "react/jsx-key": 2, "react/jsx-max-props-per-line": [2, { "maximum": 1 }], + "react/jsx-no-bind": 1, "react/jsx-no-duplicate-props": [2, { "ignoreCase": false }], "react/jsx-no-literals": 1, "react/jsx-no-undef": 2, @@ -179,13 +189,14 @@ "react/no-danger": 0, "react/no-did-mount-set-state": 2, "react/no-did-update-set-state": 2, - "react/no-multi-comp": 2, + "react/no-direct-mutation-state": 2, + "react/no-multi-comp": [2, { "ignoreStateless": true }], "react/no-set-state": 0, "react/no-unknown-property": 2, + "react/prefer-es6-class": 2, "react/prop-types": 2, "react/self-closing-comp": 2, "react/sort-comp": 0, - "react/wrap-multilines": 2, - "react/no-direct-mutation-state": 2 + "react/wrap-multilines": 2 } } diff --git a/web/react/components/access_history_modal.jsx b/web/react/components/access_history_modal.jsx index 27959ec7e..85c28ca5c 100644 --- a/web/react/components/access_history_modal.jsx +++ b/web/react/components/access_history_modal.jsx @@ -2,11 +2,11 @@ // See License.txt for license information. var Modal = ReactBootstrap.Modal; -var UserStore = require('../stores/user_store.jsx'); -var ChannelStore = require('../stores/channel_store.jsx'); -var AsyncClient = require('../utils/async_client.jsx'); -var LoadingScreen = require('./loading_screen.jsx'); -var Utils = require('../utils/utils.jsx'); +import UserStore from '../stores/user_store.jsx'; +import ChannelStore from '../stores/channel_store.jsx'; +import * as AsyncClient from '../utils/async_client.jsx'; +import LoadingScreen from './loading_screen.jsx'; +import * as Utils from '../utils/utils.jsx'; export default class AccessHistoryModal extends React.Component { constructor(props) { @@ -14,8 +14,8 @@ export default class AccessHistoryModal extends React.Component { this.onAuditChange = this.onAuditChange.bind(this); this.handleMoreInfo = this.handleMoreInfo.bind(this); - this.onHide = this.onHide.bind(this); this.onShow = this.onShow.bind(this); + this.onHide = this.onHide.bind(this); this.formatAuditInfo = this.formatAuditInfo.bind(this); this.handleRevokedSession = this.handleRevokedSession.bind(this); @@ -32,17 +32,23 @@ export default class AccessHistoryModal extends React.Component { onShow() { AsyncClient.getAudits(); - $(ReactDOM.findDOMNode(this.refs.modalBody)).css('max-height', $(window).height() - 300); if ($(window).width() > 768) { $(ReactDOM.findDOMNode(this.refs.modalBody)).perfectScrollbar(); + $(ReactDOM.findDOMNode(this.refs.modalBody)).css('max-height', $(window).height() - 200); + } else { + $(ReactDOM.findDOMNode(this.refs.modalBody)).css('max-height', $(window).height() - 150); } } onHide() { this.setState({moreInfo: []}); - this.props.onModalDismissed(); + this.props.onHide(); } componentDidMount() { UserStore.addAuditsChangeListener(this.onAuditChange); + + if (this.props.show) { + this.onShow(); + } } componentDidUpdate(prevProps) { if (this.props.show && !prevProps.show) { @@ -54,7 +60,7 @@ export default class AccessHistoryModal extends React.Component { } onAuditChange() { var newState = this.getStateFromStoresForAudits(); - if (!Utils.areStatesEqual(newState.audits, this.state.audits)) { + if (!Utils.areObjectsEqual(newState.audits, this.state.audits)) { this.setState(newState); } } @@ -102,7 +108,7 @@ export default class AccessHistoryModal extends React.Component { case '/channels/update_header': currentAuditDesc = 'Updated the ' + channelName + ' channel/group header'; break; - default: + default: { let userIdField = []; let userId = ''; let username = ''; @@ -126,11 +132,12 @@ export default class AccessHistoryModal extends React.Component { break; } + } } else if (currentActionURL.indexOf('/oauth') === 0) { const oauthInfo = currentAudit.extra_info.split(' '); switch (currentActionURL) { - case '/oauth/register': + case '/oauth/register': { const clientIdField = oauthInfo[0].split('='); if (clientIdField[0] === 'client_id') { @@ -138,6 +145,7 @@ export default class AccessHistoryModal extends React.Component { } break; + } case '/oauth/allow': if (oauthInfo[0] === 'attempt') { currentAuditDesc = 'Attempted to allow a new OAuth service access'; @@ -198,7 +206,7 @@ export default class AccessHistoryModal extends React.Component { } break; - case '/users/update_roles': + case '/users/update_roles': { const userRoles = userInfo[0].split('=')[1]; currentAuditDesc = 'Updated user role(s) to '; @@ -209,7 +217,8 @@ export default class AccessHistoryModal extends React.Component { } break; - case '/users/update_active': + } + case '/users/update_active': { const updateType = userInfo[0].split('=')[0]; const updateField = userInfo[0].split('=')[1]; @@ -236,6 +245,7 @@ export default class AccessHistoryModal extends React.Component { } break; + } case '/users/send_password_reset': currentAuditDesc = 'Sent an email to ' + userInfo[0].split('=')[1] + ' to reset your password'; break; @@ -406,5 +416,5 @@ export default class AccessHistoryModal extends React.Component { AccessHistoryModal.propTypes = { show: React.PropTypes.bool.isRequired, - onModalDismissed: React.PropTypes.func.isRequired + onHide: React.PropTypes.func.isRequired }; diff --git a/web/react/components/activity_log_modal.jsx b/web/react/components/activity_log_modal.jsx index ef3077470..f5341c0bc 100644 --- a/web/react/components/activity_log_modal.jsx +++ b/web/react/components/activity_log_modal.jsx @@ -1,12 +1,12 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const UserStore = require('../stores/user_store.jsx'); -const Client = require('../utils/client.jsx'); -const AsyncClient = require('../utils/async_client.jsx'); +import UserStore from '../stores/user_store.jsx'; +import * as Client from '../utils/client.jsx'; +import * as AsyncClient from '../utils/async_client.jsx'; const Modal = ReactBootstrap.Modal; -const LoadingScreen = require('./loading_screen.jsx'); -const Utils = require('../utils/utils.jsx'); +import LoadingScreen from './loading_screen.jsx'; +import * as Utils from '../utils/utils.jsx'; export default class ActivityLogModal extends React.Component { constructor(props) { @@ -51,17 +51,23 @@ export default class ActivityLogModal extends React.Component { onShow() { AsyncClient.getSessions(); - $(ReactDOM.findDOMNode(this.refs.modalBody)).css('max-height', $(window).height() - 300); if ($(window).width() > 768) { $(ReactDOM.findDOMNode(this.refs.modalBody)).perfectScrollbar(); + $(ReactDOM.findDOMNode(this.refs.modalBody)).css('max-height', $(window).height() - 200); + } else { + $(ReactDOM.findDOMNode(this.refs.modalBody)).css('max-height', $(window).height() - 150); } } onHide() { this.setState({moreInfo: []}); - this.props.onModalDismissed(); + this.props.onHide(); } componentDidMount() { UserStore.addSessionsChangeListener(this.onListenerChange); + + if (this.props.show) { + this.onShow(); + } } componentDidUpdate(prevProps) { if (this.props.show && !prevProps.show) { @@ -73,7 +79,7 @@ export default class ActivityLogModal extends React.Component { } onListenerChange() { const newState = this.getStateFromStores(); - if (!Utils.areStatesEqual(newState.sessions, this.state.sessions)) { + if (!Utils.areObjectsEqual(newState.sessions, this.state.sessions)) { this.setState(newState); } } @@ -178,5 +184,5 @@ export default class ActivityLogModal extends React.Component { ActivityLogModal.propTypes = { show: React.PropTypes.bool.isRequired, - onModalDismissed: React.PropTypes.func.isRequired + onHide: React.PropTypes.func.isRequired }; diff --git a/web/react/components/admin_console/admin_controller.jsx b/web/react/components/admin_console/admin_controller.jsx index 8e0ab0555..e587c4f84 100644 --- a/web/react/components/admin_console/admin_controller.jsx +++ b/web/react/components/admin_console/admin_controller.jsx @@ -1,25 +1,26 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var AdminSidebar = require('./admin_sidebar.jsx'); -var AdminStore = require('../../stores/admin_store.jsx'); -var TeamStore = require('../../stores/team_store.jsx'); -var AsyncClient = require('../../utils/async_client.jsx'); -var LoadingScreen = require('../loading_screen.jsx'); -var Utils = require('../../utils/utils.jsx'); - -var EmailSettingsTab = require('./email_settings.jsx'); -var LogSettingsTab = require('./log_settings.jsx'); -var LogsTab = require('./logs.jsx'); -var FileSettingsTab = require('./image_settings.jsx'); -var PrivacySettingsTab = require('./privacy_settings.jsx'); -var RateSettingsTab = require('./rate_settings.jsx'); -var GitLabSettingsTab = require('./gitlab_settings.jsx'); -var SqlSettingsTab = require('./sql_settings.jsx'); -var TeamSettingsTab = require('./team_settings.jsx'); -var ServiceSettingsTab = require('./service_settings.jsx'); -var TeamUsersTab = require('./team_users.jsx'); -var TeamAnalyticsTab = require('./team_analytics.jsx'); +import AdminSidebar from './admin_sidebar.jsx'; +import AdminStore from '../../stores/admin_store.jsx'; +import TeamStore from '../../stores/team_store.jsx'; +import * as AsyncClient from '../../utils/async_client.jsx'; +import LoadingScreen from '../loading_screen.jsx'; +import * as Utils from '../../utils/utils.jsx'; + +import EmailSettingsTab from './email_settings.jsx'; +import LogSettingsTab from './log_settings.jsx'; +import LogsTab from './logs.jsx'; +import FileSettingsTab from './image_settings.jsx'; +import PrivacySettingsTab from './privacy_settings.jsx'; +import RateSettingsTab from './rate_settings.jsx'; +import GitLabSettingsTab from './gitlab_settings.jsx'; +import SqlSettingsTab from './sql_settings.jsx'; +import TeamSettingsTab from './team_settings.jsx'; +import ServiceSettingsTab from './service_settings.jsx'; +import LegalAndSupportSettingsTab from './legal_and_support_settings.jsx'; +import TeamUsersTab from './team_users.jsx'; +import TeamAnalyticsTab from './team_analytics.jsx'; export default class AdminController extends React.Component { constructor(props) { @@ -148,6 +149,8 @@ export default class AdminController extends React.Component { tab = <TeamSettingsTab config={this.state.config} />; } else if (this.state.selected === 'service_settings') { tab = <ServiceSettingsTab config={this.state.config} />; + } else if (this.state.selected === 'legal_and_support_settings') { + tab = <LegalAndSupportSettingsTab config={this.state.config} />; } else if (this.state.selected === 'team_users') { if (this.state.teams) { tab = <TeamUsersTab team={this.state.teams[this.state.selectedTeam]} />; @@ -189,4 +192,12 @@ export default class AdminController extends React.Component { </div> ); } -}
\ No newline at end of file +} + +AdminController.defaultProps = { +}; + +AdminController.propTypes = { + tab: React.PropTypes.string, + teamId: React.PropTypes.string +}; diff --git a/web/react/components/admin_console/admin_navbar_dropdown.jsx b/web/react/components/admin_console/admin_navbar_dropdown.jsx index df8da94e1..783d45de6 100644 --- a/web/react/components/admin_console/admin_navbar_dropdown.jsx +++ b/web/react/components/admin_console/admin_navbar_dropdown.jsx @@ -1,11 +1,11 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Utils = require('../../utils/utils.jsx'); -var Client = require('../../utils/client.jsx'); -var TeamStore = require('../../stores/team_store.jsx'); +import * as Utils from '../../utils/utils.jsx'; +import * as Client from '../../utils/client.jsx'; +import TeamStore from '../../stores/team_store.jsx'; -var Constants = require('../../utils/constants.jsx'); +import Constants from '../../utils/constants.jsx'; function getStateFromStores() { return {currentTeam: TeamStore.getCurrent()}; diff --git a/web/react/components/admin_console/admin_sidebar.jsx b/web/react/components/admin_console/admin_sidebar.jsx index 0d52ae347..da445da37 100644 --- a/web/react/components/admin_console/admin_sidebar.jsx +++ b/web/react/components/admin_console/admin_sidebar.jsx @@ -1,9 +1,12 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var AdminSidebarHeader = require('./admin_sidebar_header.jsx'); -var SelectTeamModal = require('./select_team_modal.jsx'); -var Utils = require('../../utils/utils.jsx'); +import AdminSidebarHeader from './admin_sidebar_header.jsx'; +import SelectTeamModal from './select_team_modal.jsx'; +import * as Utils from '../../utils/utils.jsx'; + +const Tooltip = ReactBootstrap.Tooltip; +const OverlayTrigger = ReactBootstrap.OverlayTrigger; export default class AdminSidebar extends React.Component { constructor(props) { @@ -80,6 +83,12 @@ export default class AdminSidebar extends React.Component { render() { var count = '*'; var teams = 'Loading'; + const removeTooltip = ( + <Tooltip id='remove-team-tooltip'>{'Remove team from sidebar menu'}</Tooltip> + ); + const addTeamTooltip = ( + <Tooltip id='add-team-tooltip'>{'Add team from sidebar menu'}</Tooltip> + ); if (this.props.teams != null) { count = '' + Object.keys(this.props.teams).length; @@ -99,17 +108,22 @@ export default class AdminSidebar extends React.Component { <a href='#' onClick={this.handleClick.bind(this, 'team_users', team.id)} - className={'nav__sub-menu-item ' + this.isSelected('team_users', team.id)} + className={'nav__sub-menu-item ' + this.isSelected('team_users', team.id) + ' ' + this.isSelected('team_analytics', team.id)} > {team.name} + <OverlayTrigger + delayShow={1000} + placement='top' + overlay={removeTooltip} + > <span className='menu-icon--right menu__close' onClick={this.removeTeam.bind(this, team.id)} style={{cursor: 'pointer'}} - title='Remove team from sidebar menu' > - {'x'} + {'×'} </span> + </OverlayTrigger> </a> </li> <li> @@ -238,6 +252,15 @@ export default class AdminSidebar extends React.Component { {'GitLab Settings'} </a> </li> + <li> + <a + href='#' + className={this.isSelected('legal_and_support_settings')} + onClick={this.handleClick.bind(this, 'legal_and_support_settings', null)} + > + {'Legal and Support Settings'} + </a> + </li> </ul> <ul className='nav nav__sub-menu'> <li> @@ -245,15 +268,20 @@ export default class AdminSidebar extends React.Component { <span className='icon fa fa-gear'></span> <span>{'TEAMS (' + count + ')'}</span> <span className='menu-icon--right'> + <OverlayTrigger + delayShow={1000} + placement='top' + overlay={addTeamTooltip} + > <a href='#' onClick={this.showTeamSelect} > <i className='fa fa-plus' - title='Add team to sidebar menu' ></i> </a> + </OverlayTrigger> </span> </h4> </li> diff --git a/web/react/components/admin_console/admin_sidebar_header.jsx b/web/react/components/admin_console/admin_sidebar_header.jsx index fd6d92c4a..bfd479939 100644 --- a/web/react/components/admin_console/admin_sidebar_header.jsx +++ b/web/react/components/admin_console/admin_sidebar_header.jsx @@ -1,9 +1,9 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var AdminNavbarDropdown = require('./admin_navbar_dropdown.jsx'); -var UserStore = require('../../stores/user_store.jsx'); -var Utils = require('../../utils/utils.jsx'); +import AdminNavbarDropdown from './admin_navbar_dropdown.jsx'; +import UserStore from '../../stores/user_store.jsx'; +import * as Utils from '../../utils/utils.jsx'; export default class SidebarHeader extends React.Component { constructor(props) { diff --git a/web/react/components/admin_console/email_settings.jsx b/web/react/components/admin_console/email_settings.jsx index 40e00ff04..238ace3da 100644 --- a/web/react/components/admin_console/email_settings.jsx +++ b/web/react/components/admin_console/email_settings.jsx @@ -1,9 +1,9 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Client = require('../../utils/client.jsx'); -var AsyncClient = require('../../utils/async_client.jsx'); -var crypto = require('crypto'); +import * as Client from '../../utils/client.jsx'; +import * as AsyncClient from '../../utils/async_client.jsx'; +import crypto from 'crypto'; export default class EmailSettings extends React.Component { constructor(props) { @@ -18,6 +18,7 @@ export default class EmailSettings extends React.Component { this.state = { sendEmailNotifications: this.props.config.EmailSettings.SendEmailNotifications, + sendPushNotifications: this.props.config.EmailSettings.SendPushNotifications, saveNeeded: false, serverError: null, emailSuccess: null, @@ -36,6 +37,14 @@ export default class EmailSettings extends React.Component { s.sendEmailNotifications = false; } + if (action === 'sendPushNotifications_true') { + s.sendPushNotifications = true; + } + + if (action === 'sendPushNotifications_false') { + s.sendPushNotifications = false; + } + this.setState(s); } @@ -43,11 +52,12 @@ export default class EmailSettings extends React.Component { var config = this.props.config; config.EmailSettings.EnableSignUpWithEmail = ReactDOM.findDOMNode(this.refs.allowSignUpWithEmail).checked; config.EmailSettings.SendEmailNotifications = ReactDOM.findDOMNode(this.refs.sendEmailNotifications).checked; + config.EmailSettings.SendPushlNotifications = ReactDOM.findDOMNode(this.refs.sendPushNotifications).checked; config.EmailSettings.RequireEmailVerification = ReactDOM.findDOMNode(this.refs.requireEmailVerification).checked; - config.EmailSettings.SendEmailNotifications = ReactDOM.findDOMNode(this.refs.sendEmailNotifications).checked; config.EmailSettings.FeedbackName = ReactDOM.findDOMNode(this.refs.feedbackName).value.trim(); config.EmailSettings.FeedbackEmail = ReactDOM.findDOMNode(this.refs.feedbackEmail).value.trim(); config.EmailSettings.SMTPServer = ReactDOM.findDOMNode(this.refs.SMTPServer).value.trim(); + config.EmailSettings.PushNotificationServer = ReactDOM.findDOMNode(this.refs.PushNotificationServer).value.trim(); config.EmailSettings.SMTPPort = ReactDOM.findDOMNode(this.refs.SMTPPort).value.trim(); config.EmailSettings.SMTPUsername = ReactDOM.findDOMNode(this.refs.SMTPUsername).value.trim(); config.EmailSettings.SMTPPassword = ReactDOM.findDOMNode(this.refs.SMTPPassword).value.trim(); @@ -296,7 +306,7 @@ export default class EmailSettings extends React.Component { className='form-control' id='feedbackName' ref='feedbackName' - placeholder='Ex: "Mattermost Notification", "System", "No-Reply"' + placeholder='E.g.: "Mattermost Notification", "System", "No-Reply"' defaultValue={this.props.config.EmailSettings.FeedbackName} onChange={this.handleChange} disabled={!this.state.sendEmailNotifications} @@ -318,7 +328,7 @@ export default class EmailSettings extends React.Component { className='form-control' id='feedbackEmail' ref='feedbackEmail' - placeholder='Ex: "mattermost@yourcompany.com", "admin@yourcompany.com"' + placeholder='E.g.: "mattermost@yourcompany.com", "admin@yourcompany.com"' defaultValue={this.props.config.EmailSettings.FeedbackEmail} onChange={this.handleChange} disabled={!this.state.sendEmailNotifications} @@ -340,7 +350,7 @@ export default class EmailSettings extends React.Component { className='form-control' id='SMTPUsername' ref='SMTPUsername' - placeholder='Ex: "admin@yourcompany.com", "AKIADTOVBGERKLCBV"' + placeholder='E.g.: "admin@yourcompany.com", "AKIADTOVBGERKLCBV"' defaultValue={this.props.config.EmailSettings.SMTPUsername} onChange={this.handleChange} disabled={!this.state.sendEmailNotifications} @@ -362,7 +372,7 @@ export default class EmailSettings extends React.Component { className='form-control' id='SMTPPassword' ref='SMTPPassword' - placeholder='Ex: "yourpassword", "jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY"' + placeholder='E.g.: "yourpassword", "jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY"' defaultValue={this.props.config.EmailSettings.SMTPPassword} onChange={this.handleChange} disabled={!this.state.sendEmailNotifications} @@ -384,7 +394,7 @@ export default class EmailSettings extends React.Component { className='form-control' id='SMTPServer' ref='SMTPServer' - placeholder='Ex: "smtp.yourcompany.com", "email-smtp.us-east-1.amazonaws.com"' + placeholder='E.g.: "smtp.yourcompany.com", "email-smtp.us-east-1.amazonaws.com"' defaultValue={this.props.config.EmailSettings.SMTPServer} onChange={this.handleChange} disabled={!this.state.sendEmailNotifications} @@ -406,7 +416,7 @@ export default class EmailSettings extends React.Component { className='form-control' id='SMTPPort' ref='SMTPPort' - placeholder='Ex: "25", "465"' + placeholder='E.g.: "25", "465"' defaultValue={this.props.config.EmailSettings.SMTPPort} onChange={this.handleChange} disabled={!this.state.sendEmailNotifications} @@ -476,7 +486,7 @@ export default class EmailSettings extends React.Component { className='form-control' id='InviteSalt' ref='InviteSalt' - placeholder='Ex "bjlSR4QqkXFBr7TP4oDzlfZmcNuH9Yo"' + placeholder='E.g.: "bjlSR4QqkXFBr7TP4oDzlfZmcNuH9Yo"' defaultValue={this.props.config.EmailSettings.InviteSalt} onChange={this.handleChange} disabled={!this.state.sendEmailNotifications} @@ -507,7 +517,7 @@ export default class EmailSettings extends React.Component { className='form-control' id='PasswordResetSalt' ref='PasswordResetSalt' - placeholder='Ex "bjlSR4QqkXFBr7TP4oDzlfZmcNuH9Yo"' + placeholder='E.g.: "bjlSR4QqkXFBr7TP4oDzlfZmcNuH9Yo"' defaultValue={this.props.config.EmailSettings.PasswordResetSalt} onChange={this.handleChange} disabled={!this.state.sendEmailNotifications} @@ -526,6 +536,61 @@ export default class EmailSettings extends React.Component { </div> <div className='form-group'> + <label + className='control-label col-sm-4' + htmlFor='sendPushNotifications' + > + {'Send Push Notifications: '} + </label> + <div className='col-sm-8'> + <label className='radio-inline'> + <input + type='radio' + name='sendPushNotifications' + value='true' + ref='sendPushNotifications' + defaultChecked={this.props.config.EmailSettings.SendPushNotifications} + onChange={this.handleChange.bind(this, 'sendPushNotifications_true')} + /> + {'true'} + </label> + <label className='radio-inline'> + <input + type='radio' + name='sendPushNotifications' + value='false' + defaultChecked={!this.props.config.EmailSettings.SendPushNotifications} + onChange={this.handleChange.bind(this, 'sendPushNotifications_false')} + /> + {'false'} + </label> + <p className='help-text'>{'Typically set to true in production. When true, Mattermost attempts to send iOS and Android push notifications through the push notification server.'}</p> + </div> + </div> + + <div className='form-group'> + <label + className='control-label col-sm-4' + htmlFor='PushNotificationServer' + > + {'Push Notification Server:'} + </label> + <div className='col-sm-8'> + <input + type='text' + className='form-control' + id='PushNotificationServer' + ref='PushNotificationServer' + placeholder='E.g.: "https://push.mattermost.com"' + defaultValue={this.props.config.EmailSettings.PushNotificationServer} + onChange={this.handleChange} + disabled={!this.state.sendPushNotifications} + /> + <p className='help-text'>{'Location of the push notification server.'}</p> + </div> + </div> + + <div className='form-group'> <div className='col-sm-12'> {serverError} <button diff --git a/web/react/components/admin_console/gitlab_settings.jsx b/web/react/components/admin_console/gitlab_settings.jsx index f8fb6d115..8c689a2d8 100644 --- a/web/react/components/admin_console/gitlab_settings.jsx +++ b/web/react/components/admin_console/gitlab_settings.jsx @@ -1,8 +1,8 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Client = require('../../utils/client.jsx'); -var AsyncClient = require('../../utils/async_client.jsx'); +import * as Client from '../../utils/client.jsx'; +import * as AsyncClient from '../../utils/async_client.jsx'; export default class GitLabSettings extends React.Component { constructor(props) { diff --git a/web/react/components/admin_console/image_settings.jsx b/web/react/components/admin_console/image_settings.jsx index 8b577e012..e1ffad7d3 100644 --- a/web/react/components/admin_console/image_settings.jsx +++ b/web/react/components/admin_console/image_settings.jsx @@ -1,9 +1,9 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Client = require('../../utils/client.jsx'); -var AsyncClient = require('../../utils/async_client.jsx'); -var crypto = require('crypto'); +import * as Client from '../../utils/client.jsx'; +import * as AsyncClient from '../../utils/async_client.jsx'; +import crypto from 'crypto'; export default class FileSettings extends React.Component { constructor(props) { diff --git a/web/react/components/admin_console/legal_and_support_settings.jsx b/web/react/components/admin_console/legal_and_support_settings.jsx new file mode 100644 index 000000000..b00e4b6bd --- /dev/null +++ b/web/react/components/admin_console/legal_and_support_settings.jsx @@ -0,0 +1,222 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import * as Client from '../../utils/client.jsx'; +import * as AsyncClient from '../../utils/async_client.jsx'; + +export default class LegalAndSupportSettings extends React.Component { + constructor(props) { + super(props); + + this.handleChange = this.handleChange.bind(this); + this.handleSubmit = this.handleSubmit.bind(this); + + this.state = { + saveNeeded: false, + serverError: null + }; + } + + handleChange() { + var s = {saveNeeded: true, serverError: this.state.serverError}; + this.setState(s); + } + + handleSubmit(e) { + e.preventDefault(); + $('#save-button').button('loading'); + + var config = this.props.config; + + config.SupportSettings.TermsOfServiceLink = ReactDOM.findDOMNode(this.refs.TermsOfServiceLink).value.trim(); + config.SupportSettings.PrivacyPolicyLink = ReactDOM.findDOMNode(this.refs.PrivacyPolicyLink).value.trim(); + config.SupportSettings.AboutLink = ReactDOM.findDOMNode(this.refs.AboutLink).value.trim(); + config.SupportSettings.HelpLink = ReactDOM.findDOMNode(this.refs.HelpLink).value.trim(); + config.SupportSettings.ReportAProblemLink = ReactDOM.findDOMNode(this.refs.ReportAProblemLink).value.trim(); + config.SupportSettings.SupportEmail = ReactDOM.findDOMNode(this.refs.SupportEmail).value.trim(); + + Client.saveConfig( + config, + () => { + AsyncClient.getConfig(); + this.setState({ + serverError: null, + saveNeeded: false + }); + $('#save-button').button('reset'); + }, + (err) => { + this.setState({ + serverError: err.message, + saveNeeded: true + }); + $('#save-button').button('reset'); + } + ); + } + + render() { + var serverError = ''; + if (this.state.serverError) { + serverError = <div className='form-group has-error'><label className='control-label'>{this.state.serverError}</label></div>; + } + + var saveClass = 'btn'; + if (this.state.saveNeeded) { + saveClass = 'btn btn-primary'; + } + + return ( + <div className='wrapper--fixed'> + + <h3>{'Legal and Support Settings'}</h3> + <form + className='form-horizontal' + role='form' + > + + <div className='form-group'> + <label + className='control-label col-sm-4' + htmlFor='TermsOfServiceLink' + > + {'Terms of Service link:'} + </label> + <div className='col-sm-8'> + <input + type='text' + className='form-control' + id='TermsOfServiceLink' + ref='TermsOfServiceLink' + defaultValue={this.props.config.SupportSettings.TermsOfServiceLink} + onChange={this.handleChange} + /> + <p className='help-text'>{'Link to Terms of Service available to users on desktop and on mobile. Leaving this blank will hide the option to display a notice.'}</p> + </div> + </div> + + <div className='form-group'> + <label + className='control-label col-sm-4' + htmlFor='PrivacyPolicyLink' + > + {'Privacy Policy link:'} + </label> + <div className='col-sm-8'> + <input + type='text' + className='form-control' + id='PrivacyPolicyLink' + ref='PrivacyPolicyLink' + defaultValue={this.props.config.SupportSettings.PrivacyPolicyLink} + onChange={this.handleChange} + /> + <p className='help-text'>{'Link to Privacy Policy available to users on desktop and on mobile. Leaving this blank will hide the option to display a notice.'}</p> + </div> + </div> + + <div className='form-group'> + <label + className='control-label col-sm-4' + htmlFor='AboutLink' + > + {'About link:'} + </label> + <div className='col-sm-8'> + <input + type='text' + className='form-control' + id='AboutLink' + ref='AboutLink' + defaultValue={this.props.config.SupportSettings.AboutLink} + onChange={this.handleChange} + /> + <p className='help-text'>{'Link to About page for more information on your Mattermost deployment, for example its purpose and audience within your organization. Defaults to Mattermost information page.'}</p> + </div> + </div> + + <div className='form-group'> + <label + className='control-label col-sm-4' + htmlFor='HelpLink' + > + {'Help link:'} + </label> + <div className='col-sm-8'> + <input + type='text' + className='form-control' + id='HelpLink' + ref='HelpLink' + defaultValue={this.props.config.SupportSettings.HelpLink} + onChange={this.handleChange} + /> + <p className='help-text'>{'Link to help documentation from team site main menu. Typically not changed unless your organization chooses to create custom documentation.'}</p> + </div> + </div> + + <div className='form-group'> + <label + className='control-label col-sm-4' + htmlFor='ReportAProblemLink' + > + {'Report a Problem link:'} + </label> + <div className='col-sm-8'> + <input + type='text' + className='form-control' + id='ReportAProblemLink' + ref='ReportAProblemLink' + defaultValue={this.props.config.SupportSettings.ReportAProblemLink} + onChange={this.handleChange} + /> + <p className='help-text'>{'Link to help documentation from team site main menu. By default this points to the peer-to-peer troubleshooting forum where users can search for, find and request help with technical issues.'}</p> + </div> + </div> + + <div className='form-group'> + <label + className='control-label col-sm-4' + htmlFor='SupportEmail' + > + {'Support email:'} + </label> + <div className='col-sm-8'> + <input + type='text' + className='form-control' + id='SupportEmail' + ref='SupportEmail' + defaultValue={this.props.config.SupportSettings.SupportEmail} + onChange={this.handleChange} + /> + <p className='help-text'>{'Email shown during tutorial for end users to ask support questions.'}</p> + </div> + </div> + + <div className='form-group'> + <div className='col-sm-12'> + {serverError} + <button + disabled={!this.state.saveNeeded} + type='submit' + className={saveClass} + onClick={this.handleSubmit} + id='save-button' + data-loading-text={'<span class=\'glyphicon glyphicon-refresh glyphicon-refresh-animate\'></span> Saving Config...'} + > + {'Save'} + </button> + </div> + </div> + + </form> + </div> + ); + } +} + +LegalAndSupportSettings.propTypes = { + config: React.PropTypes.object +}; diff --git a/web/react/components/admin_console/log_settings.jsx b/web/react/components/admin_console/log_settings.jsx index 7e9eda89b..a91cc57ab 100644 --- a/web/react/components/admin_console/log_settings.jsx +++ b/web/react/components/admin_console/log_settings.jsx @@ -1,8 +1,8 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Client = require('../../utils/client.jsx'); -var AsyncClient = require('../../utils/async_client.jsx'); +import * as Client from '../../utils/client.jsx'; +import * as AsyncClient from '../../utils/async_client.jsx'; export default class LogSettings extends React.Component { constructor(props) { diff --git a/web/react/components/admin_console/logs.jsx b/web/react/components/admin_console/logs.jsx index 3449c78d9..01135f1b8 100644 --- a/web/react/components/admin_console/logs.jsx +++ b/web/react/components/admin_console/logs.jsx @@ -1,9 +1,9 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var AdminStore = require('../../stores/admin_store.jsx'); -var LoadingScreen = require('../loading_screen.jsx'); -var AsyncClient = require('../../utils/async_client.jsx'); +import AdminStore from '../../stores/admin_store.jsx'; +import LoadingScreen from '../loading_screen.jsx'; +import * as AsyncClient from '../../utils/async_client.jsx'; export default class Logs extends React.Component { constructor(props) { diff --git a/web/react/components/admin_console/privacy_settings.jsx b/web/react/components/admin_console/privacy_settings.jsx index f2d22f36e..61393f1c6 100644 --- a/web/react/components/admin_console/privacy_settings.jsx +++ b/web/react/components/admin_console/privacy_settings.jsx @@ -1,8 +1,8 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Client = require('../../utils/client.jsx'); -var AsyncClient = require('../../utils/async_client.jsx'); +import * as Client from '../../utils/client.jsx'; +import * as AsyncClient from '../../utils/async_client.jsx'; export default class PrivacySettings extends React.Component { constructor(props) { diff --git a/web/react/components/admin_console/rate_settings.jsx b/web/react/components/admin_console/rate_settings.jsx index 4d71777c4..ca9fcb074 100644 --- a/web/react/components/admin_console/rate_settings.jsx +++ b/web/react/components/admin_console/rate_settings.jsx @@ -1,8 +1,8 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Client = require('../../utils/client.jsx'); -var AsyncClient = require('../../utils/async_client.jsx'); +import * as Client from '../../utils/client.jsx'; +import * as AsyncClient from '../../utils/async_client.jsx'; export default class RateSettings extends React.Component { constructor(props) { diff --git a/web/react/components/admin_console/reset_password_modal.jsx b/web/react/components/admin_console/reset_password_modal.jsx index 35d3cdd17..5ff7c3413 100644 --- a/web/react/components/admin_console/reset_password_modal.jsx +++ b/web/react/components/admin_console/reset_password_modal.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Client = require('../../utils/client.jsx'); +import * as Client from '../../utils/client.jsx'; var Modal = ReactBootstrap.Modal; export default class ResetPasswordModal extends React.Component { diff --git a/web/react/components/admin_console/select_team_modal.jsx b/web/react/components/admin_console/select_team_modal.jsx index 22189821b..858b6bbfe 100644 --- a/web/react/components/admin_console/select_team_modal.jsx +++ b/web/react/components/admin_console/select_team_modal.jsx @@ -57,7 +57,7 @@ export default class SelectTeamModal extends React.Component { <select ref='team' size='10' - style={{width: '100%'}} + className='form-control' > {options} </select> diff --git a/web/react/components/admin_console/service_settings.jsx b/web/react/components/admin_console/service_settings.jsx index 53c89a942..1f5faf1d4 100644 --- a/web/react/components/admin_console/service_settings.jsx +++ b/web/react/components/admin_console/service_settings.jsx @@ -1,8 +1,8 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Client = require('../../utils/client.jsx'); -var AsyncClient = require('../../utils/async_client.jsx'); +import * as Client from '../../utils/client.jsx'; +import * as AsyncClient from '../../utils/async_client.jsx'; export default class ServiceSettings extends React.Component { constructor(props) { @@ -36,7 +36,7 @@ export default class ServiceSettings extends React.Component { config.ServiceSettings.SegmentDeveloperKey = ReactDOM.findDOMNode(this.refs.SegmentDeveloperKey).value.trim(); config.ServiceSettings.GoogleDeveloperKey = ReactDOM.findDOMNode(this.refs.GoogleDeveloperKey).value.trim(); config.ServiceSettings.EnableIncomingWebhooks = ReactDOM.findDOMNode(this.refs.EnableIncomingWebhooks).checked; - config.ServiceSettings.EnableOutgoingWebhooks = React.findDOMNode(this.refs.EnableOutgoingWebhooks).checked; + config.ServiceSettings.EnableOutgoingWebhooks = ReactDOM.findDOMNode(this.refs.EnableOutgoingWebhooks).checked; config.ServiceSettings.EnablePostUsernameOverride = ReactDOM.findDOMNode(this.refs.EnablePostUsernameOverride).checked; config.ServiceSettings.EnablePostIconOverride = ReactDOM.findDOMNode(this.refs.EnablePostIconOverride).checked; config.ServiceSettings.EnableTesting = ReactDOM.findDOMNode(this.refs.EnableTesting).checked; diff --git a/web/react/components/admin_console/sql_settings.jsx b/web/react/components/admin_console/sql_settings.jsx index b43108bf7..2a55f7324 100644 --- a/web/react/components/admin_console/sql_settings.jsx +++ b/web/react/components/admin_console/sql_settings.jsx @@ -1,9 +1,9 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Client = require('../../utils/client.jsx'); -var AsyncClient = require('../../utils/async_client.jsx'); -var crypto = require('crypto'); +import * as Client from '../../utils/client.jsx'; +import * as AsyncClient from '../../utils/async_client.jsx'; +import crypto from 'crypto'; export default class SqlSettings extends React.Component { constructor(props) { diff --git a/web/react/components/admin_console/team_analytics.jsx b/web/react/components/admin_console/team_analytics.jsx index 0c9d1f61b..e28699d3c 100644 --- a/web/react/components/admin_console/team_analytics.jsx +++ b/web/react/components/admin_console/team_analytics.jsx @@ -1,9 +1,9 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Client = require('../../utils/client.jsx'); -var Utils = require('../../utils/utils.jsx'); -var LineChart = require('./line_chart.jsx'); +import * as Client from '../../utils/client.jsx'; +import * as Utils from '../../utils/utils.jsx'; +import LineChart from './line_chart.jsx'; export default class TeamAnalytics extends React.Component { constructor(props) { @@ -221,7 +221,7 @@ export default class TeamAnalytics extends React.Component { var openChannelCount = ( <div className='col-sm-3'> <div className='total-count'> - <div className='title'>{'Public Groups'}<i className='fa fa-unlock-alt'/></div> + <div className='title'>{'Public Channels'}<i className='fa fa-globe'/></div> <div className='content'>{this.state.channel_open_count == null ? 'Loading...' : this.state.channel_open_count}</div> </div> </div> diff --git a/web/react/components/admin_console/team_settings.jsx b/web/react/components/admin_console/team_settings.jsx index 6587184ea..7991b9a01 100644 --- a/web/react/components/admin_console/team_settings.jsx +++ b/web/react/components/admin_console/team_settings.jsx @@ -1,8 +1,8 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Client = require('../../utils/client.jsx'); -var AsyncClient = require('../../utils/async_client.jsx'); +import * as Client from '../../utils/client.jsx'; +import * as AsyncClient from '../../utils/async_client.jsx'; export default class TeamSettings extends React.Component { constructor(props) { diff --git a/web/react/components/admin_console/team_users.jsx b/web/react/components/admin_console/team_users.jsx index 7161139e6..2d9657956 100644 --- a/web/react/components/admin_console/team_users.jsx +++ b/web/react/components/admin_console/team_users.jsx @@ -1,10 +1,10 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Client = require('../../utils/client.jsx'); -var LoadingScreen = require('../loading_screen.jsx'); -var UserItem = require('./user_item.jsx'); -var ResetPasswordModal = require('./reset_password_modal.jsx'); +import * as Client from '../../utils/client.jsx'; +import LoadingScreen from '../loading_screen.jsx'; +import UserItem from './user_item.jsx'; +import ResetPasswordModal from './reset_password_modal.jsx'; export default class UserList extends React.Component { constructor(props) { diff --git a/web/react/components/admin_console/user_item.jsx b/web/react/components/admin_console/user_item.jsx index 2badaf0e5..ef0b61460 100644 --- a/web/react/components/admin_console/user_item.jsx +++ b/web/react/components/admin_console/user_item.jsx @@ -1,8 +1,8 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Client = require('../../utils/client.jsx'); -var Utils = require('../../utils/utils.jsx'); +import * as Client from '../../utils/client.jsx'; +import * as Utils from '../../utils/utils.jsx'; export default class UserItem extends React.Component { constructor(props) { @@ -227,7 +227,6 @@ export default class UserItem extends React.Component { href='#' className='dropdown-toggle theme' type='button' - id='channel_header_dropdown' data-toggle='dropdown' aria-expanded='true' > @@ -237,7 +236,6 @@ export default class UserItem extends React.Component { <ul className='dropdown-menu member-menu' role='menu' - aria-labelledby='channel_header_dropdown' > {makeAdmin} {makeMember} diff --git a/web/react/components/authorize.jsx b/web/react/components/authorize.jsx index 74709bcab..32e39fbff 100644 --- a/web/react/components/authorize.jsx +++ b/web/react/components/authorize.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Client = require('../utils/client.jsx'); +import * as Client from '../utils/client.jsx'; export default class Authorize extends React.Component { constructor(props) { diff --git a/web/react/components/center_panel.jsx b/web/react/components/center_panel.jsx index 3ee40bb86..a1043431d 100644 --- a/web/react/components/center_panel.jsx +++ b/web/react/components/center_panel.jsx @@ -1,17 +1,21 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const TutorialIntroScreens = require('./tutorial/tutorial_intro_screens.jsx'); -const CreatePost = require('./create_post.jsx'); -const PostsViewContainer = require('./posts_view_container.jsx'); -const ChannelHeader = require('./channel_header.jsx'); -const Navbar = require('./navbar.jsx'); -const FileUploadOverlay = require('./file_upload_overlay.jsx'); +import TutorialIntroScreens from './tutorial/tutorial_intro_screens.jsx'; +import CreatePost from './create_post.jsx'; +import PostsViewContainer from './posts_view_container.jsx'; +import PostFocusView from './post_focus_view.jsx'; +import ChannelHeader from './channel_header.jsx'; +import Navbar from './navbar.jsx'; +import FileUploadOverlay from './file_upload_overlay.jsx'; -const PreferenceStore = require('../stores/preference_store.jsx'); -const UserStore = require('../stores/user_store.jsx'); +import PreferenceStore from '../stores/preference_store.jsx'; +import ChannelStore from '../stores/channel_store.jsx'; +import UserStore from '../stores/user_store.jsx'; -const Constants = require('../utils/constants.jsx'); +import * as Utils from '../utils/utils.jsx'; + +import Constants from '../utils/constants.jsx'; const TutorialSteps = Constants.TutorialSteps; const Preferences = Constants.Preferences; @@ -20,26 +24,68 @@ export default class CenterPanel extends React.Component { super(props); this.onPreferenceChange = this.onPreferenceChange.bind(this); + this.onChannelChange = this.onChannelChange.bind(this); const tutorialPref = PreferenceStore.getPreference(Preferences.TUTORIAL_STEP, UserStore.getCurrentId(), {value: '999'}); - this.state = {showTutorialScreens: parseInt(tutorialPref.value, 10) === TutorialSteps.INTRO_SCREENS}; + this.state = { + showTutorialScreens: parseInt(tutorialPref.value, 10) === TutorialSteps.INTRO_SCREENS, + showPostFocus: ChannelStore.getPostMode() === ChannelStore.POST_MODE_FOCUS + }; } componentDidMount() { PreferenceStore.addChangeListener(this.onPreferenceChange); + ChannelStore.addChangeListener(this.onChannelChange); } componentWillUnmount() { PreferenceStore.removeChangeListener(this.onPreferenceChange); + ChannelStore.removeChangeListener(this.onChannelChange); } onPreferenceChange() { const tutorialPref = PreferenceStore.getPreference(Preferences.TUTORIAL_STEP, UserStore.getCurrentId(), {value: '999'}); this.setState({showTutorialScreens: parseInt(tutorialPref.value, 10) <= TutorialSteps.INTRO_SCREENS}); } + onChannelChange() { + this.setState({showPostFocus: ChannelStore.getPostMode() === ChannelStore.POST_MODE_FOCUS}); + } render() { + const channel = ChannelStore.getCurrent(); + var handleClick = null; let postsContainer; + let createPost; if (this.state.showTutorialScreens) { postsContainer = <TutorialIntroScreens />; + createPost = null; + } else if (this.state.showPostFocus) { + postsContainer = <PostFocusView />; + + handleClick = function clickHandler(e) { + e.preventDefault(); + Utils.switchChannel(channel); + }; + + createPost = ( + <div + id='archive-link-home' + > + <a + href='' + onClick={handleClick} + > + {'You are viewing the Archives. Click here to jump to recent messages. '} + {<i className='fa fa-arrow-down'></i>} + </a> + </div> + ); } else { postsContainer = <PostsViewContainer />; + createPost = ( + <div + className='post-create__container' + id='post-create' + > + <CreatePost /> + </div> + ); } return ( @@ -62,12 +108,7 @@ export default class CenterPanel extends React.Component { <ChannelHeader /> </div> {postsContainer} - <div - className='post-create__container' - id='post-create' - > - <CreatePost /> - </div> + {createPost} </div> </div> </div> diff --git a/web/react/components/change_url_modal.jsx b/web/react/components/change_url_modal.jsx index 714e93ff8..bbe93f58d 100644 --- a/web/react/components/change_url_modal.jsx +++ b/web/react/components/change_url_modal.jsx @@ -2,7 +2,7 @@ // See License.txt for license information. var Modal = ReactBootstrap.Modal; -var Utils = require('../utils/utils.jsx'); +import * as Utils from '../utils/utils.jsx'; export default class ChangeUrlModal extends React.Component { constructor(props) { diff --git a/web/react/components/channel_header.jsx b/web/react/components/channel_header.jsx index 895dc5fe4..59ceb038e 100644 --- a/web/react/components/channel_header.jsx +++ b/web/react/components/channel_header.jsx @@ -1,28 +1,34 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const NavbarSearchBox = require('./search_bar.jsx'); -const MessageWrapper = require('./message_wrapper.jsx'); -const PopoverListMembers = require('./popover_list_members.jsx'); -const EditChannelPurposeModal = require('./edit_channel_purpose_modal.jsx'); -const ChannelInviteModal = require('./channel_invite_modal.jsx'); -const ChannelMembersModal = require('./channel_members_modal.jsx'); +import NavbarSearchBox from './search_bar.jsx'; +import MessageWrapper from './message_wrapper.jsx'; +import PopoverListMembers from './popover_list_members.jsx'; +import EditChannelHeaderModal from './edit_channel_header_modal.jsx'; +import EditChannelPurposeModal from './edit_channel_purpose_modal.jsx'; +import ChannelInfoModal from './channel_info_modal.jsx'; +import ChannelInviteModal from './channel_invite_modal.jsx'; +import ChannelMembersModal from './channel_members_modal.jsx'; +import ChannelNotificationsModal from './channel_notifications_modal.jsx'; +import DeleteChannelModal from './delete_channel_modal.jsx'; +import ToggleModalButton from './toggle_modal_button.jsx'; -const ChannelStore = require('../stores/channel_store.jsx'); -const UserStore = require('../stores/user_store.jsx'); -const SearchStore = require('../stores/search_store.jsx'); -const PreferenceStore = require('../stores/preference_store.jsx'); +import ChannelStore from '../stores/channel_store.jsx'; +import UserStore from '../stores/user_store.jsx'; +import SearchStore from '../stores/search_store.jsx'; +import PreferenceStore from '../stores/preference_store.jsx'; -const AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -const Utils = require('../utils/utils.jsx'); -const TextFormatting = require('../utils/text_formatting.jsx'); -const AsyncClient = require('../utils/async_client.jsx'); -const Client = require('../utils/client.jsx'); -const Constants = require('../utils/constants.jsx'); +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import * as Utils from '../utils/utils.jsx'; +import * as TextFormatting from '../utils/text_formatting.jsx'; +import * as AsyncClient from '../utils/async_client.jsx'; +import * as Client from '../utils/client.jsx'; +import Constants from '../utils/constants.jsx'; const ActionTypes = Constants.ActionTypes; const Popover = ReactBootstrap.Popover; const OverlayTrigger = ReactBootstrap.OverlayTrigger; +const Tooltip = ReactBootstrap.Tooltip; export default class ChannelHeader extends React.Component { constructor(props) { @@ -34,16 +40,18 @@ export default class ChannelHeader extends React.Component { const state = this.getStateFromStores(); state.showEditChannelPurposeModal = false; - state.showInviteModal = false; state.showMembersModal = false; this.state = state; } getStateFromStores() { + const extraInfo = ChannelStore.getCurrentExtraInfo(); + return { channel: ChannelStore.getCurrent(), memberChannel: ChannelStore.getCurrentMember(), memberTeam: UserStore.getCurrentUser(), - users: ChannelStore.getCurrentExtraInfo().members, + users: extraInfo.members, + userCount: extraInfo.member_count, searchVisible: SearchStore.getSearchResults() !== null }; } @@ -63,7 +71,7 @@ export default class ChannelHeader extends React.Component { } onListenerChange() { const newState = this.getStateFromStores(); - if (!Utils.areStatesEqual(newState, this.state)) { + if (!Utils.areObjectsEqual(newState, this.state)) { this.setState(newState); } $('.channel-header__info .description').popover({placement: 'bottom', trigger: 'hover', html: true, delay: {show: 500, hide: 500}}); @@ -92,9 +100,11 @@ export default class ChannelHeader extends React.Component { let terms = ''; if (user.notify_props && user.notify_props.mention_keys) { const termKeys = UserStore.getCurrentMentionKeys(); + if (user.notify_props.all === 'true' && termKeys.indexOf('@all') !== -1) { termKeys.splice(termKeys.indexOf('@all'), 1); } + if (user.notify_props.channel === 'true' && termKeys.indexOf('@channel') !== -1) { termKeys.splice(termKeys.indexOf('@channel'), 1); } @@ -114,6 +124,7 @@ export default class ChannelHeader extends React.Component { } const channel = this.state.channel; + const recentMentionsTooltip = <Tooltip id='recentMentionsTooltip'>{'Recent Mentions'}</Tooltip>; const popoverContent = ( <Popover id='hader-popover' @@ -158,17 +169,13 @@ export default class ChannelHeader extends React.Component { key='edit_header_direct' role='presentation' > - <a + <ToggleModalButton role='menuitem' - href='#' - data-toggle='modal' - data-target='#edit_channel' - data-header={channel.header} - data-title={channel.display_name} - data-channelid={channel.id} + dialogType={EditChannelHeaderModal} + dialogProps={{channel}} > {'Set Channel Header...'} - </a> + </ToggleModalButton> </li> ); } else { @@ -177,15 +184,13 @@ export default class ChannelHeader extends React.Component { key='view_info' role='presentation' > - <a + <ToggleModalButton role='menuitem' - data-toggle='modal' - data-target='#channel_info' - data-channelid={channel.id} - href='#' + dialogType={ChannelInfoModal} + dialogProps={{channel}} > {'View Info'} - </a> + </ToggleModalButton> </li> ); @@ -195,13 +200,13 @@ export default class ChannelHeader extends React.Component { key='add_members' role='presentation' > - <a + <ToggleModalButton role='menuitem' - href='#' - onClick={() => this.setState({showInviteModal: true})} + dialogType={ChannelInviteModal} + dialogProps={{channel}} > {'Add Members'} - </a> + </ToggleModalButton> </li> ); @@ -228,17 +233,13 @@ export default class ChannelHeader extends React.Component { key='set_channel_header' role='presentation' > - <a + <ToggleModalButton role='menuitem' - href='#' - data-toggle='modal' - data-target='#edit_channel' - data-header={channel.header} - data-title={channel.display_name} - data-channelid={channel.id} + dialogType={EditChannelHeaderModal} + dialogProps={{channel}} > - {'Set '}{channelTerm}{' Header...'} - </a> + {`Set ${channelTerm} Header...`} + </ToggleModalButton> </li> ); dropdownContents.push( @@ -260,58 +261,55 @@ export default class ChannelHeader extends React.Component { key='notification_preferences' role='presentation' > - <a + <ToggleModalButton role='menuitem' - href='#' - data-toggle='modal' - data-target='#channel_notifications' - data-title={channel.display_name} - data-channelid={channel.id} + dialogType={ChannelNotificationsModal} + dialogProps={{channel}} > {'Notification Preferences'} - </a> + </ToggleModalButton> </li> ); - if (!ChannelStore.isDefault(channel)) { - if (isAdmin) { - dropdownContents.push( - <li - key='rename_channel' - role='presentation' + if (isAdmin) { + dropdownContents.push( + <li + key='rename_channel' + role='presentation' + > + <a + role='menuitem' + href='#' + data-toggle='modal' + data-target='#rename_channel' + data-display={channel.display_name} + data-name={channel.name} + data-channelid={channel.id} > - <a - role='menuitem' - href='#' - data-toggle='modal' - data-target='#rename_channel' - data-display={channel.display_name} - data-name={channel.name} - data-channelid={channel.id} - > - {'Rename '}{channelTerm}{'...'} - </a> - </li> - ); + {'Rename '}{channelTerm}{'...'} + </a> + </li> + ); + + if (!ChannelStore.isDefault(channel)) { dropdownContents.push( <li key='delete_channel' role='presentation' > - <a + <ToggleModalButton role='menuitem' - href='#' - data-toggle='modal' - data-target='#delete_channel' - data-title={channel.display_name} - data-channelid={channel.id} + dialogType={DeleteChannelModal} + dialogProps={{channel}} > {'Delete '}{channelTerm}{'...'} - </a> + </ToggleModalButton> </li> ); } + } + if (!ChannelStore.isDefault(channel)) { dropdownContents.push( <li key='leave_channel' @@ -373,37 +371,26 @@ export default class ChannelHeader extends React.Component { <th> <PopoverListMembers members={this.state.users} + memberCount={this.state.userCount} channelId={channel.id} /> </th> <th className='search-bar__container'><NavbarSearchBox /></th> <th> <div className='dropdown channel-header__links'> - <a - href='#' - className='dropdown-toggle theme' - type='button' - id='channel_header_right_dropdown' - data-toggle='dropdown' - aria-expanded='true' - > - <span dangerouslySetInnerHTML={{__html: Constants.MENU_ICON}} /> - </a> - <ul - className='dropdown-menu dropdown-menu-right' - role='menu' - aria-labelledby='channel_header_right_dropdown' + <OverlayTrigger + delayShow={400} + placement='bottom' + overlay={recentMentionsTooltip} > - <li role='presentation'> - <a - role='menuitem' - href='#' - onClick={this.searchMentions} - > - {'Recent Mentions'} - </a> - </li> - </ul> + <a + href='#' + type='button' + onClick={this.searchMentions} + > + {'@'} + </a> + </OverlayTrigger> </div> </th> </tr> @@ -414,13 +401,10 @@ export default class ChannelHeader extends React.Component { onModalDismissed={() => this.setState({showEditChannelPurposeModal: false})} channel={channel} /> - <ChannelInviteModal - show={this.state.showInviteModal} - onModalDismissed={() => this.setState({showInviteModal: false})} - /> <ChannelMembersModal show={this.state.showMembersModal} onModalDismissed={() => this.setState({showMembersModal: false})} + channel={channel} /> </div> ); diff --git a/web/react/components/channel_info_modal.jsx b/web/react/components/channel_info_modal.jsx index bccd8d0b9..18e125de3 100644 --- a/web/react/components/channel_info_modal.jsx +++ b/web/react/components/channel_info_modal.jsx @@ -1,88 +1,57 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var ChannelStore = require('../stores/channel_store.jsx'); - -export default class CommandList extends React.Component { - constructor(props) { - super(props); - - this.state = { - channel_id: ChannelStore.getCurrentId() - }; - } - - componentDidMount() { - var self = this; - if (this.refs.modal) { - $(ReactDOM.findDOMNode(this.refs.modal)).on('show.bs.modal', function show(e) { - var button = e.relatedTarget; - self.setState({channel_id: $(button).attr('data-channelid')}); - }); - } - } +const Modal = ReactBootstrap.Modal; +export default class ChannelInfoModal extends React.Component { render() { - var channel = ChannelStore.get(this.state.channel_id); - + let channel = this.props.channel; if (!channel) { - channel = {}; - channel.display_name = 'No Channel Found'; - channel.name = 'No Channel Found'; - channel.id = 'No Channel Found'; + channel = { + display_name: 'No Channel Found', + name: 'No Channel Found', + id: 'No Channel Found' + }; } return ( - <div - className='modal fade' - ref='modal' - id='channel_info' - tabIndex='-1' - role='dialog' - aria-hidden='true' + <Modal + show={this.props.show} + onHide={this.props.onHide} > - <div className='modal-dialog'> - <div className='modal-content'> - <div className='modal-header'> - <button - type='button' - className='close' - data-dismiss='modal' - aria-label='Close' - > - <span aria-hidden='true'>×</span> - </button> - <h4 - className='modal-title' - id='myModalLabel' - > - <span className='name'>{channel.display_name}</span> - </h4> - </div> - <div className='modal-body'> - <div className='row form-group'> - <div className='col-sm-3 info__label'>Channel Name: </div> + <Modal.Header closeButtton={true}> + {channel.display_name} + </Modal.Header> + <Modal.Body ref='modalBody'> + <div className='row form-group'> + <div className='col-sm-3 info__label'>{'Channel Name:'}</div> <div className='col-sm-9'>{channel.display_name}</div> - </div> - <div className='row form-group'> - <div className='col-sm-3 info__label'>Channel Handle:</div> + </div> + <div className='row form-group'> + <div className='col-sm-3 info__label'>{'Channel Handle:'}</div> <div className='col-sm-9'>{channel.name}</div> - </div> - <div className='row'> - <div className='col-sm-3 info__label'>Channel ID:</div> - <div className='col-sm-9'>{channel.id}</div> - </div> </div> - <div className='modal-footer'> - <button - type='button' - className='btn btn-default' - data-dismiss='modal' - >Close</button> + <div className='row'> + <div className='col-sm-3 info__label'>{'Channel ID:'}</div> + <div className='col-sm-9'>{channel.id}</div> </div> - </div> - </div> - </div> + </Modal.Body> + <Modal.Footer> + <button + type='button' + className='btn btn-default' + onClick={this.props.onHide} + > + {'Close'} + </button> + </Modal.Footer> + </Modal> ); } } + +ChannelInfoModal.propTypes = { + show: React.PropTypes.bool.isRequired, + onHide: React.PropTypes.func.isRequired, + channel: React.PropTypes.object.isRequired +}; diff --git a/web/react/components/channel_invite_modal.jsx b/web/react/components/channel_invite_modal.jsx index 7c1032321..7dac39942 100644 --- a/web/react/components/channel_invite_modal.jsx +++ b/web/react/components/channel_invite_modal.jsx @@ -1,15 +1,15 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const MemberList = require('./member_list.jsx'); -const LoadingScreen = require('./loading_screen.jsx'); +import MemberList from './member_list.jsx'; +import LoadingScreen from './loading_screen.jsx'; -const UserStore = require('../stores/user_store.jsx'); -const ChannelStore = require('../stores/channel_store.jsx'); +import UserStore from '../stores/user_store.jsx'; +import ChannelStore from '../stores/channel_store.jsx'; -const Utils = require('../utils/utils.jsx'); -const Client = require('../utils/client.jsx'); -const AsyncClient = require('../utils/async_client.jsx'); +import * as Utils from '../utils/utils.jsx'; +import * as Client from '../utils/client.jsx'; +import * as AsyncClient from '../utils/async_client.jsx'; const Modal = ReactBootstrap.Modal; @@ -22,6 +22,17 @@ export default class ChannelInviteModal extends React.Component { this.state = this.getStateFromStores(); } + shouldComponentUpdate(nextProps, nextState) { + if (!Utils.areObjectsEqual(this.props, nextProps)) { + return true; + } + + if (!Utils.areObjectsEqual(this.state, nextState)) { + return true; + } + + return false; + } getStateFromStores() { function getId(user) { return user.id; @@ -42,21 +53,17 @@ export default class ChannelInviteModal extends React.Component { return a.username.localeCompare(b.username); }); - var channelName = ''; - if (ChannelStore.getCurrent()) { - channelName = ChannelStore.getCurrent().display_name; - } - return { nonmembers, - memberIds, - channelName, loading }; } onShow() { if ($(window).width() > 768) { $(ReactDOM.findDOMNode(this.refs.modalBody)).perfectScrollbar(); + $(ReactDOM.findDOMNode(this.refs.modalBody)).css('max-height', $(window).height() - 200); + } else { + $(ReactDOM.findDOMNode(this.refs.modalBody)).css('max-height', $(window).height() - 150); } } componentDidUpdate(prevProps) { @@ -78,34 +85,20 @@ export default class ChannelInviteModal extends React.Component { } onListenerChange() { var newState = this.getStateFromStores(); - if (!Utils.areStatesEqual(this.state, newState)) { + if (!Utils.areObjectsEqual(this.state, newState)) { this.setState(newState); } } handleInvite(userId) { - // Make sure the user isn't already a member of the channel - if (this.state.memberIds.indexOf(userId) > -1) { - return; - } - var data = {}; data.user_id = userId; - Client.addChannelMember(ChannelStore.getCurrentId(), data, + Client.addChannelMember( + this.props.channel.id, + data, () => { - var nonmembers = this.state.nonmembers; - var memberIds = this.state.memberIds; - - for (var i = 0; i < nonmembers.length; i++) { - if (userId === nonmembers[i].id) { - nonmembers[i].invited = true; - memberIds.push(userId); - break; - } - } - - this.setState({inviteError: null, memberIds, nonmembers}); - AsyncClient.getChannelExtraInfo(true); + this.setState({inviteError: null}); + AsyncClient.getChannelExtraInfo(); }, (err) => { this.setState({inviteError: err.message}); @@ -113,11 +106,6 @@ export default class ChannelInviteModal extends React.Component { ); } render() { - var maxHeight = 1000; - if (Utils.windowHeight() <= 1200) { - maxHeight = Utils.windowHeight() - 300; - } - var inviteError = null; if (this.state.inviteError) { inviteError = (<label className='has-error control-label'>{this.state.inviteError}</label>); @@ -146,14 +134,13 @@ export default class ChannelInviteModal extends React.Component { <Modal dialogClassName='more-modal' show={this.props.show} - onHide={this.props.onModalDismissed} + onHide={this.props.onHide} > <Modal.Header closeButton={true}> - <Modal.Title>{'Add New Members to '}<span className='name'>{this.state.channelName}</span></Modal.Title> + <Modal.Title>{'Add New Members to '}<span className='name'>{this.props.channel.display_name}</span></Modal.Title> </Modal.Header> <Modal.Body ref='modalBody' - style={{maxHeight}} > {inviteError} {content} @@ -162,7 +149,7 @@ export default class ChannelInviteModal extends React.Component { <button type='button' className='btn btn-default' - onClick={this.props.onModalDismissed} + onClick={this.props.onHide} > {'Close'} </button> @@ -174,5 +161,6 @@ export default class ChannelInviteModal extends React.Component { ChannelInviteModal.propTypes = { show: React.PropTypes.bool.isRequired, - onModalDismissed: React.PropTypes.func.isRequired + onHide: React.PropTypes.func.isRequired, + channel: React.PropTypes.object.isRequired }; diff --git a/web/react/components/channel_loader.jsx b/web/react/components/channel_loader.jsx index 4fc115a92..0d1d9efd7 100644 --- a/web/react/components/channel_loader.jsx +++ b/web/react/components/channel_loader.jsx @@ -5,14 +5,15 @@ to the server on page load. This is to prevent other React controls from spamming AsyncClient with requests. */ -var AsyncClient = require('../utils/async_client.jsx'); -var SocketStore = require('../stores/socket_store.jsx'); -var ChannelStore = require('../stores/channel_store.jsx'); -var PostStore = require('../stores/post_store.jsx'); -var UserStore = require('../stores/user_store.jsx'); +import * as AsyncClient from '../utils/async_client.jsx'; +import SocketStore from '../stores/socket_store.jsx'; +import ChannelStore from '../stores/channel_store.jsx'; +import PostStore from '../stores/post_store.jsx'; +import UserStore from '../stores/user_store.jsx'; +import PreferenceStore from '../stores/preference_store.jsx'; -var Utils = require('../utils/utils.jsx'); -var Constants = require('../utils/constants.jsx'); +import * as Utils from '../utils/utils.jsx'; +import Constants from '../utils/constants.jsx'; export default class ChannelLoader extends React.Component { constructor(props) { @@ -27,8 +28,8 @@ export default class ChannelLoader extends React.Component { componentDidMount() { /* Initial aysnc loads */ AsyncClient.getPosts(ChannelStore.getCurrentId()); - AsyncClient.getChannels(true, true); - AsyncClient.getChannelExtraInfo(true); + AsyncClient.getChannels(); + AsyncClient.getChannelExtraInfo(); AsyncClient.findTeams(); AsyncClient.getMyTeam(); setTimeout(() => AsyncClient.getStatuses(), 3000); // temporary until statuses are reworked a bit @@ -69,6 +70,10 @@ export default class ChannelLoader extends React.Component { Utils.applyTheme(Constants.THEMES.default); } + // if preferences have already been stored in local storage do not wait until preference store change is fired and handled in channel.jsx + const selectedFont = PreferenceStore.getPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'selected_font', {value: Constants.DEFAULT_FONT}).value; + Utils.applyFont(selectedFont); + $('body').on('mouseenter mouseleave', '.post', function mouseOver(ev) { if (ev.type === 'mouseenter') { $(this).parent('div').prev('.date-separator, .new-separator').addClass('hovered--after'); diff --git a/web/react/components/channel_members_modal.jsx b/web/react/components/channel_members_modal.jsx index 2fa7ae8ff..d1b9df988 100644 --- a/web/react/components/channel_members_modal.jsx +++ b/web/react/components/channel_members_modal.jsx @@ -1,15 +1,15 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const MemberList = require('./member_list.jsx'); -const ChannelInviteModal = require('./channel_invite_modal.jsx'); +import MemberList from './member_list.jsx'; +import ChannelInviteModal from './channel_invite_modal.jsx'; -const UserStore = require('../stores/user_store.jsx'); -const ChannelStore = require('../stores/channel_store.jsx'); +import UserStore from '../stores/user_store.jsx'; +import ChannelStore from '../stores/channel_store.jsx'; -const AsyncClient = require('../utils/async_client.jsx'); -const Client = require('../utils/client.jsx'); -const Utils = require('../utils/utils.jsx'); +import * as AsyncClient from '../utils/async_client.jsx'; +import * as Client from '../utils/client.jsx'; +import * as Utils from '../utils/utils.jsx'; const Modal = ReactBootstrap.Modal; @@ -25,6 +25,17 @@ export default class ChannelMembersModal extends React.Component { state.showInviteModal = false; this.state = state; } + shouldComponentUpdate(nextProps, nextState) { + if (!Utils.areObjectsEqual(this.props, nextProps)) { + return true; + } + + if (!Utils.areObjectsEqual(this.state, nextState)) { + return true; + } + + return false; + } getStateFromStores() { const users = UserStore.getActiveOnlyProfiles(); const memberList = ChannelStore.getCurrentExtraInfo().members; @@ -58,22 +69,16 @@ export default class ChannelMembersModal extends React.Component { memberList.sort(compareByUsername); nonmemberList.sort(compareByUsername); - const channel = ChannelStore.getCurrent(); - let channelName = ''; - if (channel) { - channelName = channel.display_name; - } - return { nonmemberList, - memberList, - channelName + memberList }; } onShow() { if ($(window).width() > 768) { $(ReactDOM.findDOMNode(this.refs.modalBody)).perfectScrollbar(); } + this.onChange(); } componentDidUpdate(prevProps) { if (this.props.show && !prevProps.show) { @@ -91,7 +96,7 @@ export default class ChannelMembersModal extends React.Component { } onChange() { const newState = this.getStateFromStores(); - if (!Utils.areStatesEqual(this.state, newState)) { + if (!Utils.areObjectsEqual(this.state, newState)) { this.setState(newState); } } @@ -130,7 +135,7 @@ export default class ChannelMembersModal extends React.Component { } this.setState({memberList, nonmemberList}); - AsyncClient.getChannelExtraInfo(true); + AsyncClient.getChannelExtraInfo(); }, (err) => { this.setState({inviteError: err.message}); @@ -157,7 +162,7 @@ export default class ChannelMembersModal extends React.Component { onHide={this.props.onModalDismissed} > <Modal.Header closeButton={true}> - <Modal.Title><span className='name'>{this.state.channelName}</span>{' Members'}</Modal.Title> + <Modal.Title><span className='name'>{this.props.channel.display_name}</span>{' Members'}</Modal.Title> <a className='btn btn-md btn-primary' href='#' @@ -193,7 +198,8 @@ export default class ChannelMembersModal extends React.Component { </Modal> <ChannelInviteModal show={this.state.showInviteModal} - onModalDismissed={() => this.setState({showInviteModal: false})} + onHide={() => this.setState({showInviteModal: false})} + channel={this.props.channel} /> </div> ); @@ -206,5 +212,6 @@ ChannelMembersModal.defaultProps = { ChannelMembersModal.propTypes = { show: React.PropTypes.bool.isRequired, - onModalDismissed: React.PropTypes.func.isRequired + onModalDismissed: React.PropTypes.func.isRequired, + channel: React.PropTypes.object.isRequired }; diff --git a/web/react/components/channel_notifications.jsx b/web/react/components/channel_notifications.jsx deleted file mode 100644 index 43700bf36..000000000 --- a/web/react/components/channel_notifications.jsx +++ /dev/null @@ -1,394 +0,0 @@ -// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -var SettingItemMin = require('./setting_item_min.jsx'); -var SettingItemMax = require('./setting_item_max.jsx'); - -var Utils = require('../utils/utils.jsx'); -var Client = require('../utils/client.jsx'); -var UserStore = require('../stores/user_store.jsx'); -var ChannelStore = require('../stores/channel_store.jsx'); - -export default class ChannelNotifications extends React.Component { - constructor(props) { - super(props); - - this.onListenerChange = this.onListenerChange.bind(this); - this.updateSection = this.updateSection.bind(this); - - this.handleSubmitNotifyLevel = this.handleSubmitNotifyLevel.bind(this); - this.handleUpdateNotifyLevel = this.handleUpdateNotifyLevel.bind(this); - this.createNotifyLevelSection = this.createNotifyLevelSection.bind(this); - - this.handleSubmitMarkUnreadLevel = this.handleSubmitMarkUnreadLevel.bind(this); - this.handleUpdateMarkUnreadLevel = this.handleUpdateMarkUnreadLevel.bind(this); - this.createMarkUnreadLevelSection = this.createMarkUnreadLevelSection.bind(this); - this.onShow = this.onShow.bind(this); - - this.state = { - notifyLevel: '', - markUnreadLevel: '', - title: '', - channelId: '', - activeSection: '' - }; - } - onShow(e) { - var button = e.relatedTarget; - var channelId = button.getAttribute('data-channelid'); - - const member = ChannelStore.getMember(channelId); - var notifyLevel = member.notify_props.desktop; - var markUnreadLevel = member.notify_props.mark_unread; - - this.setState({ - notifyLevel, - markUnreadLevel, - title: button.getAttribute('data-title'), - channelId - }); - } - componentDidMount() { - ChannelStore.addChangeListener(this.onListenerChange); - - $(ReactDOM.findDOMNode(this.refs.modal)).on('show.bs.modal', this.onShow); - } - componentWillUnmount() { - ChannelStore.removeChangeListener(this.onListenerChange); - } - onListenerChange() { - if (!this.state.channelId) { - return; - } - - const member = ChannelStore.getMember(this.state.channelId); - var notifyLevel = member.notify_props.desktop; - var markUnreadLevel = member.notify_props.mark_unread; - - var newState = this.state; - newState.notifyLevel = notifyLevel; - newState.markUnreadLevel = markUnreadLevel; - - if (!Utils.areStatesEqual(this.state, newState)) { - this.setState(newState); - } - } - updateSection(section) { - this.setState({activeSection: section}); - } - handleSubmitNotifyLevel() { - var channelId = this.state.channelId; - var notifyLevel = this.state.notifyLevel; - - if (ChannelStore.getMember(channelId).notify_props.desktop === notifyLevel) { - this.updateSection(''); - return; - } - - var data = {}; - data.channel_id = channelId; - data.user_id = UserStore.getCurrentId(); - data.desktop = notifyLevel; - - Client.updateNotifyProps(data, - () => { - var member = ChannelStore.getMember(channelId); - member.notify_props.desktop = notifyLevel; - ChannelStore.setChannelMember(member); - this.updateSection(''); - }, - (err) => { - this.setState({serverError: err.message}); - } - ); - } - handleUpdateNotifyLevel(notifyLevel) { - this.setState({notifyLevel}); - ReactDOM.findDOMNode(this.refs.modal).focus(); - } - createNotifyLevelSection(serverError) { - var handleUpdateSection; - - const user = UserStore.getCurrentUser(); - const globalNotifyLevel = user.notify_props.desktop; - - let globalNotifyLevelName; - if (globalNotifyLevel === 'all') { - globalNotifyLevelName = 'For all activity'; - } else if (globalNotifyLevel === 'mention') { - globalNotifyLevelName = 'Only for mentions'; - } else { - globalNotifyLevelName = 'Never'; - } - - if (this.state.activeSection === 'desktop') { - var notifyActive = [false, false, false, false]; - if (this.state.notifyLevel === 'default') { - notifyActive[0] = true; - } else if (this.state.notifyLevel === 'all') { - notifyActive[1] = true; - } else if (this.state.notifyLevel === 'mention') { - notifyActive[2] = true; - } else { - notifyActive[3] = true; - } - - var inputs = []; - - inputs.push( - <div key='channel-notification-level-radio'> - <div className='radio'> - <label> - <input - type='radio' - checked={notifyActive[0]} - onChange={this.handleUpdateNotifyLevel.bind(this, 'default')} - /> - {`Global default (${globalNotifyLevelName})`} - </label> - <br/> - </div> - <div className='radio'> - <label> - <input - type='radio' - checked={notifyActive[1]} - onChange={this.handleUpdateNotifyLevel.bind(this, 'all')} - /> - {'For all activity'} - </label> - <br/> - </div> - <div className='radio'> - <label> - <input - type='radio' - checked={notifyActive[2]} - onChange={this.handleUpdateNotifyLevel.bind(this, 'mention')} - /> - {'Only for mentions'} - </label> - <br/> - </div> - <div className='radio'> - <label> - <input - type='radio' - checked={notifyActive[3]} - onChange={this.handleUpdateNotifyLevel.bind(this, 'none')} - /> - {'Never'} - </label> - </div> - </div> - ); - - handleUpdateSection = function updateSection(e) { - this.updateSection(''); - this.onListenerChange(); - e.preventDefault(); - }.bind(this); - - const extraInfo = ( - <span> - {'Selecting an option other than "Default" will override the global notification settings. Desktop notifications are available on Firefox, Safari, and Chrome.'} - </span> - ); - - return ( - <SettingItemMax - title='Send desktop notifications' - inputs={inputs} - submit={this.handleSubmitNotifyLevel} - server_error={serverError} - updateSection={handleUpdateSection} - extraInfo={extraInfo} - /> - ); - } - - var describe; - if (this.state.notifyLevel === 'default') { - describe = `Global default (${globalNotifyLevelName})`; - } else if (this.state.notifyLevel === 'mention') { - describe = 'Only for mentions'; - } else if (this.state.notifyLevel === 'all') { - describe = 'For all activity'; - } else { - describe = 'Never'; - } - - handleUpdateSection = function updateSection(e) { - this.updateSection('desktop'); - e.preventDefault(); - }.bind(this); - - return ( - <SettingItemMin - title='Send desktop notifications' - describe={describe} - updateSection={handleUpdateSection} - /> - ); - } - - handleSubmitMarkUnreadLevel() { - const channelId = this.state.channelId; - const markUnreadLevel = this.state.markUnreadLevel; - - if (ChannelStore.getMember(channelId).notify_props.mark_unread === markUnreadLevel) { - this.updateSection(''); - return; - } - - const data = { - channel_id: channelId, - user_id: UserStore.getCurrentId(), - mark_unread: markUnreadLevel - }; - - Client.updateNotifyProps(data, - () => { - var member = ChannelStore.getMember(channelId); - member.notify_props.mark_unread = markUnreadLevel; - ChannelStore.setChannelMember(member); - this.updateSection(''); - }, - (err) => { - this.setState({serverError: err.message}); - } - ); - } - - handleUpdateMarkUnreadLevel(markUnreadLevel) { - this.setState({markUnreadLevel}); - ReactDOM.findDOMNode(this.refs.modal).focus(); - } - - createMarkUnreadLevelSection(serverError) { - let content; - - if (this.state.activeSection === 'markUnreadLevel') { - const inputs = [( - <div key='channel-notification-unread-radio'> - <div className='radio'> - <label> - <input - type='radio' - checked={this.state.markUnreadLevel === 'all'} - onChange={this.handleUpdateMarkUnreadLevel.bind(this, 'all')} - /> - {'For all unread messages'} - </label> - <br /> - </div> - <div className='radio'> - <label> - <input - type='radio' - checked={this.state.markUnreadLevel === 'mention'} - onChange={this.handleUpdateMarkUnreadLevel.bind(this, 'mention')} - /> - {'Only for mentions'} - </label> - <br /> - </div> - </div> - )]; - - const handleUpdateSection = function handleUpdateSection(e) { - this.updateSection(''); - this.onListenerChange(); - e.preventDefault(); - }.bind(this); - - const extraInfo = <span>{'The channel name is bolded in the sidebar when there are unread messages. Selecting "Only for mentions" will bold the channel only when you are mentioned.'}</span>; - - content = ( - <SettingItemMax - title='Mark Channel Unread' - inputs={inputs} - submit={this.handleSubmitMarkUnreadLevel} - server_error={serverError} - updateSection={handleUpdateSection} - extraInfo={extraInfo} - /> - ); - } else { - let describe; - - if (!this.state.markUnreadLevel || this.state.markUnreadLevel === 'all') { - describe = 'For all unread messages'; - } else { - describe = 'Only for mentions'; - } - - const handleUpdateSection = function handleUpdateSection(e) { - this.updateSection('markUnreadLevel'); - e.preventDefault(); - }.bind(this); - - content = ( - <SettingItemMin - title='Mark Channel Unread' - describe={describe} - updateSection={handleUpdateSection} - /> - ); - } - - return content; - } - - render() { - var serverError = null; - if (this.state.serverError) { - serverError = <div className='form-group has-error'><label className='control-label'>{this.state.serverError}</label></div>; - } - - return ( - <div - className='modal fade' - id='channel_notifications' - ref='modal' - tabIndex='-1' - role='dialog' - aria-hidden='true' - > - <div className='modal-dialog settings-modal'> - <div className='modal-content'> - <div className='modal-header'> - <button - type='button' - className='close' - data-dismiss='modal' - > - <span aria-hidden='true'>×</span> - <span className='sr-only'>{'Close'}</span> - </button> - <h4 className='modal-title'>Notification Preferences for <span className='name'>{this.state.title}</span></h4> - </div> - <div className='modal-body'> - <div className='settings-table'> - <div className='settings-content'> - <div - ref='wrapper' - className='user-settings' - > - <br/> - <div className='divider-dark first'/> - {this.createNotifyLevelSection(serverError)} - <div className='divider-light'/> - {this.createMarkUnreadLevelSection(serverError)} - <div className='divider-dark'/> - </div> - </div> - </div> - {serverError} - </div> - </div> - </div> - </div> - ); - } -} diff --git a/web/react/components/channel_notifications_modal.jsx b/web/react/components/channel_notifications_modal.jsx new file mode 100644 index 000000000..e70d3a634 --- /dev/null +++ b/web/react/components/channel_notifications_modal.jsx @@ -0,0 +1,367 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +var Modal = ReactBootstrap.Modal; +import SettingItemMin from './setting_item_min.jsx'; +import SettingItemMax from './setting_item_max.jsx'; + +import * as Client from '../utils/client.jsx'; +import UserStore from '../stores/user_store.jsx'; +import ChannelStore from '../stores/channel_store.jsx'; + +export default class ChannelNotificationsModal extends React.Component { + constructor(props) { + super(props); + + this.onListenerChange = this.onListenerChange.bind(this); + this.updateSection = this.updateSection.bind(this); + + this.handleSubmitNotifyLevel = this.handleSubmitNotifyLevel.bind(this); + this.handleUpdateNotifyLevel = this.handleUpdateNotifyLevel.bind(this); + this.createNotifyLevelSection = this.createNotifyLevelSection.bind(this); + + this.handleSubmitMarkUnreadLevel = this.handleSubmitMarkUnreadLevel.bind(this); + this.handleUpdateMarkUnreadLevel = this.handleUpdateMarkUnreadLevel.bind(this); + this.createMarkUnreadLevelSection = this.createMarkUnreadLevelSection.bind(this); + + const member = ChannelStore.getMember(props.channel.id); + this.state = { + notifyLevel: member.notify_props.desktop, + markUnreadLevel: member.notify_props.mark_unread, + channelId: ChannelStore.getCurrentId(), + activeSection: '' + }; + } + componentWillReceiveProps(nextProps) { + if (!this.props.show && nextProps.show) { + this.onListenerChange(); + ChannelStore.addChangeListener(this.onListenerChange); + } else { + ChannelStore.removeChangeListener(this.onListenerChange); + } + } + onListenerChange() { + const curChannelId = ChannelStore.getCurrentId(); + + if (!curChannelId) { + return; + } + + const newState = {channelId: curChannelId}; + const member = ChannelStore.getMember(curChannelId); + + if (member.notify_props.desktop !== this.state.notifyLevel || member.notify_props.mark_unread !== this.state.mark_unread) { + newState.notifyLevel = member.notify_props.desktop; + newState.markUnreadLevel = member.notify_props.mark_unread; + } + + this.setState(newState); + } + updateSection(section) { + this.setState({activeSection: section}); + } + handleSubmitNotifyLevel() { + var channelId = this.state.channelId; + var notifyLevel = this.state.notifyLevel; + + if (ChannelStore.getMember(channelId).notify_props.desktop === notifyLevel) { + this.updateSection(''); + return; + } + + var data = {}; + data.channel_id = channelId; + data.user_id = UserStore.getCurrentId(); + data.desktop = notifyLevel; + + Client.updateNotifyProps(data, + () => { + var member = ChannelStore.getMember(channelId); + member.notify_props.desktop = notifyLevel; + ChannelStore.setChannelMember(member); + this.updateSection(''); + }, + (err) => { + this.setState({serverError: err.message}); + } + ); + } + handleUpdateNotifyLevel(notifyLevel) { + this.setState({notifyLevel}); + } + createNotifyLevelSection(serverError) { + var handleUpdateSection; + + const user = UserStore.getCurrentUser(); + const globalNotifyLevel = user.notify_props.desktop; + + let globalNotifyLevelName; + if (globalNotifyLevel === 'all') { + globalNotifyLevelName = 'For all activity'; + } else if (globalNotifyLevel === 'mention') { + globalNotifyLevelName = 'Only for mentions'; + } else { + globalNotifyLevelName = 'Never'; + } + + if (this.state.activeSection === 'desktop') { + var notifyActive = [false, false, false, false]; + if (this.state.notifyLevel === 'default') { + notifyActive[0] = true; + } else if (this.state.notifyLevel === 'all') { + notifyActive[1] = true; + } else if (this.state.notifyLevel === 'mention') { + notifyActive[2] = true; + } else { + notifyActive[3] = true; + } + + var inputs = []; + + inputs.push( + <div key='channel-notification-level-radio'> + <div className='radio'> + <label> + <input + type='radio' + checked={notifyActive[0]} + onChange={this.handleUpdateNotifyLevel.bind(this, 'default')} + /> + {`Global default (${globalNotifyLevelName})`} + </label> + <br/> + </div> + <div className='radio'> + <label> + <input + type='radio' + checked={notifyActive[1]} + onChange={this.handleUpdateNotifyLevel.bind(this, 'all')} + /> + {'For all activity'} + </label> + <br/> + </div> + <div className='radio'> + <label> + <input + type='radio' + checked={notifyActive[2]} + onChange={this.handleUpdateNotifyLevel.bind(this, 'mention')} + /> + {'Only for mentions'} + </label> + <br/> + </div> + <div className='radio'> + <label> + <input + type='radio' + checked={notifyActive[3]} + onChange={this.handleUpdateNotifyLevel.bind(this, 'none')} + /> + {'Never'} + </label> + </div> + </div> + ); + + handleUpdateSection = function updateSection(e) { + this.updateSection(''); + this.onListenerChange(); + e.preventDefault(); + }.bind(this); + + const extraInfo = ( + <span> + {'Selecting an option other than "Default" will override the global notification settings. Desktop notifications are available on Firefox, Safari, and Chrome.'} + </span> + ); + + return ( + <SettingItemMax + title='Send desktop notifications' + inputs={inputs} + submit={this.handleSubmitNotifyLevel} + server_error={serverError} + updateSection={handleUpdateSection} + extraInfo={extraInfo} + /> + ); + } + + var describe; + if (this.state.notifyLevel === 'default') { + describe = `Global default (${globalNotifyLevelName})`; + } else if (this.state.notifyLevel === 'mention') { + describe = 'Only for mentions'; + } else if (this.state.notifyLevel === 'all') { + describe = 'For all activity'; + } else { + describe = 'Never'; + } + + handleUpdateSection = function updateSection(e) { + this.updateSection('desktop'); + e.preventDefault(); + }.bind(this); + + return ( + <SettingItemMin + title='Send desktop notifications' + describe={describe} + updateSection={handleUpdateSection} + /> + ); + } + + handleSubmitMarkUnreadLevel() { + const channelId = this.state.channelId; + const markUnreadLevel = this.state.markUnreadLevel; + + if (ChannelStore.getMember(channelId).notify_props.mark_unread === markUnreadLevel) { + this.updateSection(''); + return; + } + + const data = { + channel_id: channelId, + user_id: UserStore.getCurrentId(), + mark_unread: markUnreadLevel + }; + + Client.updateNotifyProps(data, + () => { + var member = ChannelStore.getMember(channelId); + member.notify_props.mark_unread = markUnreadLevel; + ChannelStore.setChannelMember(member); + this.updateSection(''); + }, + (err) => { + this.setState({serverError: err.message}); + } + ); + } + + handleUpdateMarkUnreadLevel(markUnreadLevel) { + this.setState({markUnreadLevel}); + } + + createMarkUnreadLevelSection(serverError) { + let content; + + if (this.state.activeSection === 'markUnreadLevel') { + const inputs = [( + <div key='channel-notification-unread-radio'> + <div className='radio'> + <label> + <input + type='radio' + checked={this.state.markUnreadLevel === 'all'} + onChange={this.handleUpdateMarkUnreadLevel.bind(this, 'all')} + /> + {'For all unread messages'} + </label> + <br /> + </div> + <div className='radio'> + <label> + <input + type='radio' + checked={this.state.markUnreadLevel === 'mention'} + onChange={this.handleUpdateMarkUnreadLevel.bind(this, 'mention')} + /> + {'Only for mentions'} + </label> + <br /> + </div> + </div> + )]; + + const handleUpdateSection = function handleUpdateSection(e) { + this.updateSection(''); + this.onListenerChange(); + e.preventDefault(); + }.bind(this); + + const extraInfo = <span>{'The channel name is bolded in the sidebar when there are unread messages. Selecting "Only for mentions" will bold the channel only when you are mentioned.'}</span>; + + content = ( + <SettingItemMax + title='Mark Channel Unread' + inputs={inputs} + submit={this.handleSubmitMarkUnreadLevel} + server_error={serverError} + updateSection={handleUpdateSection} + extraInfo={extraInfo} + /> + ); + } else { + let describe; + + if (!this.state.markUnreadLevel || this.state.markUnreadLevel === 'all') { + describe = 'For all unread messages'; + } else { + describe = 'Only for mentions'; + } + + const handleUpdateSection = function handleUpdateSection(e) { + this.updateSection('markUnreadLevel'); + e.preventDefault(); + }.bind(this); + + content = ( + <SettingItemMin + title='Mark Channel Unread' + describe={describe} + updateSection={handleUpdateSection} + /> + ); + } + + return content; + } + + render() { + var serverError = null; + if (this.state.serverError) { + serverError = <div className='form-group has-error'><label className='control-label'>{this.state.serverError}</label></div>; + } + + return ( + <Modal + show={this.props.show} + dialogClassName='settings-modal' + onHide={this.props.onHide} + > + <Modal.Header closeButton={true}> + <Modal.Title>{'Notification Preferences for '}<span className='name'>{this.props.channel.display_name}</span></Modal.Title> + </Modal.Header> + <Modal.Body> + <div className='settings-table'> + <div className='settings-content'> + <div + ref='wrapper' + className='user-settings' + > + <br/> + <div className='divider-dark first'/> + {this.createNotifyLevelSection(serverError)} + <div className='divider-light'/> + {this.createMarkUnreadLevelSection(serverError)} + <div className='divider-dark'/> + </div> + </div> + </div> + {serverError} + </Modal.Body> + </Modal> + ); + } +} + +ChannelNotificationsModal.propTypes = { + show: React.PropTypes.bool.isRequired, + onHide: React.PropTypes.func.isRequired, + channel: React.PropTypes.object.isRequired +}; diff --git a/web/react/components/channel_view.jsx b/web/react/components/channel_view.jsx index 3f53a94c2..7cbb638a0 100644 --- a/web/react/components/channel_view.jsx +++ b/web/react/components/channel_view.jsx @@ -1,10 +1,10 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const CenterPanel = require('../components/center_panel.jsx'); -const Sidebar = require('../components/sidebar.jsx'); -const SidebarRight = require('../components/sidebar_right.jsx'); -const SidebarRightMenu = require('../components/sidebar_right_menu.jsx'); +import CenterPanel from '../components/center_panel.jsx'; +import Sidebar from '../components/sidebar.jsx'; +import SidebarRight from '../components/sidebar_right.jsx'; +import SidebarRightMenu from '../components/sidebar_right_menu.jsx'; export default class ChannelView extends React.Component { constructor(props) { diff --git a/web/react/components/command_list.jsx b/web/react/components/command_list.jsx deleted file mode 100644 index a6d9d5d70..000000000 --- a/web/react/components/command_list.jsx +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -var client = require('../utils/client.jsx'); - -export default class CommandList extends React.Component { - constructor(props) { - super(props); - - this.handleClick = this.handleClick.bind(this); - this.addFirstCommand = this.addFirstCommand.bind(this); - this.isEmpty = this.isEmpty.bind(this); - this.getSuggestedCommands = this.getSuggestedCommands.bind(this); - - this.state = { - suggestions: [ ], - cmd: '' - }; - } - - handleClick(i) { - this.props.addCommand(this.state.suggestions[i].suggestion); - this.setState({suggestions: [ ], cmd: ''}); - } - - addFirstCommand() { - if (this.state.suggestions.length === 0) { - return; - } - this.handleClick(0); - } - - isEmpty() { - return this.state.suggestions.length === 0; - } - - getSuggestedCommands(cmd) { - if (!cmd || cmd.charAt(0) !== '/') { - this.setState({suggestions: [ ], cmd: ''}); - return; - } - - client.executeCommand( - this.props.channelId, - cmd, - true, - function success(data) { - if (data.suggestions.length === 1 && data.suggestions[0].suggestion === cmd) { - data.suggestions = []; - } - this.setState({suggestions: data.suggestions, cmd: cmd}); - }.bind(this), - function fail() { - } - ); - } - - render() { - if (this.state.suggestions.length === 0) { - return (<div/>); - } - - var suggestions = []; - - for (var i = 0; i < this.state.suggestions.length; i++) { - if (this.state.suggestions[i].suggestion !== this.state.cmd) { - suggestions.push( - <div - key={i} - className='command-name' - onClick={this.handleClick.bind(this, i)} - > - <div className='command__title'><strong>{this.state.suggestions[i].suggestion}</strong></div> - <div className='command__desc'>{this.state.suggestions[i].description}</div> - </div> - ); - } - } - - return ( - <div - ref='mentionlist' - className='command-box' - style={{height: (this.state.suggestions.length * 56) + 2}} - > - {suggestions} - </div> - ); - } -} - -CommandList.defaultProps = { - channelId: null -}; - -CommandList.propTypes = { - addCommand: React.PropTypes.func, - channelId: React.PropTypes.string -}; diff --git a/web/react/components/create_comment.jsx b/web/react/components/create_comment.jsx index 058594165..b0f33eda1 100644 --- a/web/react/components/create_comment.jsx +++ b/web/react/components/create_comment.jsx @@ -1,21 +1,21 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -const Client = require('../utils/client.jsx'); -const AsyncClient = require('../utils/async_client.jsx'); -const SocketStore = require('../stores/socket_store.jsx'); -const ChannelStore = require('../stores/channel_store.jsx'); -const UserStore = require('../stores/user_store.jsx'); -const PostStore = require('../stores/post_store.jsx'); -const PreferenceStore = require('../stores/preference_store.jsx'); -const Textbox = require('./textbox.jsx'); -const MsgTyping = require('./msg_typing.jsx'); -const FileUpload = require('./file_upload.jsx'); -const FilePreview = require('./file_preview.jsx'); -const Utils = require('../utils/utils.jsx'); - -const Constants = require('../utils/constants.jsx'); +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import * as Client from '../utils/client.jsx'; +import * as AsyncClient from '../utils/async_client.jsx'; +import SocketStore from '../stores/socket_store.jsx'; +import ChannelStore from '../stores/channel_store.jsx'; +import UserStore from '../stores/user_store.jsx'; +import PostStore from '../stores/post_store.jsx'; +import PreferenceStore from '../stores/preference_store.jsx'; +import Textbox from './textbox.jsx'; +import MsgTyping from './msg_typing.jsx'; +import FileUpload from './file_upload.jsx'; +import FilePreview from './file_preview.jsx'; +import * as Utils from '../utils/utils.jsx'; + +import Constants from '../utils/constants.jsx'; const ActionTypes = Constants.ActionTypes; const KeyCodes = Constants.KeyCodes; @@ -34,7 +34,6 @@ export default class CreateComment extends React.Component { this.handleUploadError = this.handleUploadError.bind(this); this.handleTextDrop = this.handleTextDrop.bind(this); this.removePreview = this.removePreview.bind(this); - this.handleSubmit = this.handleSubmit.bind(this); this.getFileCount = this.getFileCount.bind(this); this.handleResize = this.handleResize.bind(this); this.onPreferenceChange = this.onPreferenceChange.bind(this); @@ -194,7 +193,8 @@ export default class CreateComment extends React.Component { title: 'Comment', message: lastPost.message, postId: lastPost.id, - channelId: lastPost.channel_id + channelId: lastPost.channel_id, + comments: PostStore.getCommentCount(lastPost) }); } } @@ -334,6 +334,7 @@ export default class CreateComment extends React.Component { messageText={this.state.messageText} createMessage='Add a comment...' initialText='' + supportsCommands={false} id='reply_textbox' ref='textbox' /> @@ -361,11 +362,11 @@ export default class CreateComment extends React.Component { onClick={this.handleSubmit} /> {uploadsInProgressText} + {preview} {postError} {serverError} </div> </div> - {preview} </form> ); } diff --git a/web/react/components/create_post.jsx b/web/react/components/create_post.jsx index 5a69c9bfb..89e984e27 100644 --- a/web/react/components/create_post.jsx +++ b/web/react/components/create_post.jsx @@ -1,24 +1,26 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const MsgTyping = require('./msg_typing.jsx'); -const Textbox = require('./textbox.jsx'); -const FileUpload = require('./file_upload.jsx'); -const FilePreview = require('./file_preview.jsx'); -const TutorialTip = require('./tutorial/tutorial_tip.jsx'); - -const AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -const Client = require('../utils/client.jsx'); -const AsyncClient = require('../utils/async_client.jsx'); -const Utils = require('../utils/utils.jsx'); - -const ChannelStore = require('../stores/channel_store.jsx'); -const PostStore = require('../stores/post_store.jsx'); -const UserStore = require('../stores/user_store.jsx'); -const PreferenceStore = require('../stores/preference_store.jsx'); -const SocketStore = require('../stores/socket_store.jsx'); - -const Constants = require('../utils/constants.jsx'); +import MsgTyping from './msg_typing.jsx'; +import Textbox from './textbox.jsx'; +import FileUpload from './file_upload.jsx'; +import FilePreview from './file_preview.jsx'; +import TutorialTip from './tutorial/tutorial_tip.jsx'; + +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import * as EventHelpers from '../dispatcher/event_helpers.jsx'; +import * as Client from '../utils/client.jsx'; +import * as AsyncClient from '../utils/async_client.jsx'; +import * as Utils from '../utils/utils.jsx'; + +import ChannelStore from '../stores/channel_store.jsx'; +import PostStore from '../stores/post_store.jsx'; +import UserStore from '../stores/user_store.jsx'; +import PreferenceStore from '../stores/preference_store.jsx'; +import SocketStore from '../stores/socket_store.jsx'; + +import Constants from '../utils/constants.jsx'; + const Preferences = Constants.Preferences; const TutorialSteps = Constants.TutorialSteps; const ActionTypes = Constants.ActionTypes; @@ -176,9 +178,7 @@ export default class CreatePost extends React.Component { const channel = ChannelStore.get(this.state.channelId); - PostStore.storePendingPost(post); - PostStore.storeDraft(channel.id, null); - PostStore.jumpPostsViewToBottom(); + EventHelpers.emitUserPostedEvent(post); this.setState({messageText: '', submitting: false, postError: null, previews: [], serverError: null}); Client.createPost(post, channel, @@ -190,10 +190,7 @@ export default class CreatePost extends React.Component { member.last_viewed_at = Date.now(); ChannelStore.setChannelMember(member); - AppDispatcher.handleServerAction({ - type: ActionTypes.RECIEVED_POST, - post: data - }); + EventHelpers.emitPostRecievedEvent(data); }, (err) => { const state = {}; @@ -372,7 +369,8 @@ export default class CreatePost extends React.Component { title: type, message: lastPost.message, postId: lastPost.id, - channelId: lastPost.channel_id + channelId: lastPost.channel_id, + comments: PostStore.getCommentCount(lastPost) }); } } @@ -382,8 +380,8 @@ export default class CreatePost extends React.Component { screens.push( <div> <h4>{'Sending Messages'}</h4> - <p>{'Type here to write a message.'}</p> - <p>{'Click the attachment button to upload an image or a file.'}</p> + <p>{'Type here to write a message and press '}<strong>{'Enter'}</strong>{' to post it.'}</p> + <p>{'Click the '}<strong>{'Attachment'}</strong>{' button to upload an image or a file.'}</p> </div> ); @@ -472,13 +470,13 @@ export default class CreatePost extends React.Component { {tutorialTip} </div> <div className={postFooterClassName}> - {postError} - {serverError} - {preview} <MsgTyping channelId={this.state.channelId} parentId='' /> + {preview} + {postError} + {serverError} </div> </div> </form> diff --git a/web/react/components/delete_channel_modal.jsx b/web/react/components/delete_channel_modal.jsx index b7d633b38..1255067fd 100644 --- a/web/react/components/delete_channel_modal.jsx +++ b/web/react/components/delete_channel_modal.jsx @@ -1,102 +1,74 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const Client = require('../utils/client.jsx'); -const AsyncClient = require('../utils/async_client.jsx'); -const ChannelStore = require('../stores/channel_store.jsx'); -var TeamStore = require('../stores/team_store.jsx'); +import * as AsyncClient from '../utils/async_client.jsx'; +import * as Client from '../utils/client.jsx'; +const Modal = ReactBootstrap.Modal; +import TeamStore from '../stores/team_store.jsx'; +import * as Utils from '../utils/utils.jsx'; export default class DeleteChannelModal extends React.Component { constructor(props) { super(props); this.handleDelete = this.handleDelete.bind(this); - this.onShow = this.onShow.bind(this); - - this.state = { - title: '', - channelId: '' - }; } + handleDelete() { - if (this.state.channelId.length !== 26) { + if (this.props.channel.id.length !== 26) { return; } - Client.deleteChannel(this.state.channelId, - function handleDeleteSuccess() { + Client.deleteChannel( + this.props.channel.id, + () => { AsyncClient.getChannels(true); window.location.href = TeamStore.getCurrentTeamUrl() + '/channels/town-square'; }, - function handleDeleteError(err) { + (err) => { AsyncClient.dispatchError(err, 'handleDelete'); } ); } - onShow(e) { - var button = $(e.relatedTarget); - this.setState({ - title: button.attr('data-title'), - channelId: button.attr('data-channelid') - }); - } - componentDidMount() { - $(ReactDOM.findDOMNode(this.refs.modal)).on('show.bs.modal', this.onShow); - } + render() { - const channel = ChannelStore.getCurrent(); - let channelType = 'channel'; - if (channel && channel.type === 'P') { - channelType = 'private group'; - } + const channelTerm = Utils.getChannelTerm(this.props.channel.type).toLowerCase(); return ( - <div - className='modal fade' - ref='modal' - id='delete_channel' - role='dialog' - tabIndex='-1' - aria-hidden='true' + <Modal + show={this.props.show} + onHide={this.props.onHide} > - <div className='modal-dialog'> - <div className='modal-content'> - <div className='modal-header'> - <button - type='button' - className='close' - data-dismiss='modal' - aria-label='Close' - > - <span aria-hidden='true'>×</span> - </button> - <h4 className='modal-title'>Confirm DELETE Channel</h4> - </div> - <div className='modal-body'> - <p> - Are you sure you wish to delete the {this.state.title} {channelType}? - </p> - </div> - <div className='modal-footer'> - <button - type='button' - className='btn btn-default' - data-dismiss='modal' - > - Cancel - </button> - <button - type='button' - className='btn btn-danger' - data-dismiss='modal' - onClick={this.handleDelete} - > - Delete - </button> - </div> - </div> - </div> - </div> + <Modal.Header closeButton={true}> + <h4 className='modal-title'>{'Confirm DELETE Channel'}</h4> + </Modal.Header> + <Modal.Body> + {`Are you sure you wish to delete the ${this.props.channel.display_name} ${channelTerm}?`} + </Modal.Body> + <Modal.Footer> + <button + type='button' + className='btn btn-default' + onClick={this.props.onHide} + > + {'Cancel'} + </button> + <button + type='button' + className='btn btn-danger' + data-dismiss='modal' + onClick={this.handleDelete} + > + {'Delete'} + </button> + </Modal.Footer> + </Modal> ); } } + +DeleteChannelModal.propTypes = { + show: React.PropTypes.bool.isRequired, + onHide: React.PropTypes.func.isRequired, + channel: React.PropTypes.object.isRequired +}; diff --git a/web/react/components/delete_post_modal.jsx b/web/react/components/delete_post_modal.jsx index 3a3dabce5..827654e1b 100644 --- a/web/react/components/delete_post_modal.jsx +++ b/web/react/components/delete_post_modal.jsx @@ -1,13 +1,14 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Client = require('../utils/client.jsx'); -var PostStore = require('../stores/post_store.jsx'); -var BrowserStore = require('../stores/browser_store.jsx'); -var Utils = require('../utils/utils.jsx'); -var AsyncClient = require('../utils/async_client.jsx'); -var AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -var Constants = require('../utils/constants.jsx'); +import * as Client from '../utils/client.jsx'; +import PostStore from '../stores/post_store.jsx'; +import ModalStore from '../stores/modal_store.jsx'; +var Modal = ReactBootstrap.Modal; +import * as Utils from '../utils/utils.jsx'; +import * as AsyncClient from '../utils/async_client.jsx'; +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import Constants from '../utils/constants.jsx'; var ActionTypes = Constants.ActionTypes; export default class DeletePostModal extends React.Component { @@ -15,18 +16,40 @@ export default class DeletePostModal extends React.Component { super(props); this.handleDelete = this.handleDelete.bind(this); + this.handleToggle = this.handleToggle.bind(this); + this.handleHide = this.handleHide.bind(this); this.onListenerChange = this.onListenerChange.bind(this); - this.onShow = this.onShow.bind(this); - this.state = {title: '', postId: '', channelId: '', selectedList: PostStore.getSelectedPost(), comments: 0}; + this.selectedList = null; + + this.state = { + show: true, + post: null, + commentCount: 0, + error: '' + }; + } + + componentDidMount() { + ModalStore.addModalListener(ActionTypes.TOGGLE_DELETE_POST_MODAL, this.handleToggle); + PostStore.addSelectedPostChangeListener(this.onListenerChange); } + + componentWillUnmount() { + PostStore.removeSelectedPostChangeListener(this.onListenerChange); + ModalStore.removeModalListener(ActionTypes.TOGGLE_DELETE_POST_MODAL, this.handleToggle); + } + handleDelete() { - Client.deletePost(this.state.channelId, this.state.postId, - function deleteSuccess() { - var selectedList = this.state.selectedList; + Client.deletePost( + this.state.post.channel_id, + this.state.post.id, + () => { + var selectedList = this.selectedList; + if (selectedList && selectedList.order && selectedList.order.length > 0) { var selectedPost = selectedList.posts[selectedList.order[0]]; - if ((selectedPost.id === this.state.postId && this.state.title === 'Post') || selectedPost.root_id === this.state.postId) { + if ((selectedPost.id === this.state.post.id && !this.state.root_id) || selectedPost.root_id === this.state.post.id) { AppDispatcher.handleServerAction({ type: ActionTypes.RECIEVED_SEARCH, results: null @@ -36,7 +59,7 @@ export default class DeletePostModal extends React.Component { type: ActionTypes.RECIEVED_POST_SELECTED, results: null }); - } else if (selectedPost.id === this.state.postId && this.state.title === 'Comment') { + } else if (selectedPost.id === this.state.post.id && this.state.root_id) { if (selectedPost.root_id && selectedPost.root_id.length > 0 && selectedList.posts[selectedPost.root_id]) { selectedList.order = [selectedPost.root_id]; delete selectedList.posts[selectedPost.id]; @@ -53,98 +76,88 @@ export default class DeletePostModal extends React.Component { } } } - PostStore.removePost(this.state.postId, this.state.channelId); - AsyncClient.getPosts(this.state.channelId); - }.bind(this), - function deleteFailed(err) { + + PostStore.removePost(this.state.post.id, this.state.post.channel_id); + AsyncClient.getPosts(this.state.post.channel_id); + }, + (err) => { AsyncClient.dispatchError(err, 'deletePost'); } ); + + this.handleHide(); } - onShow(e) { - var newState = {}; - if (BrowserStore.getItem('edit_state_transfer')) { - newState = BrowserStore.getItem('edit_state_transfer'); - BrowserStore.removeItem('edit_state_transfer'); - } else { - var button = e.relatedTarget; - newState = {title: $(button).attr('data-title'), channelId: $(button).attr('data-channelid'), postId: $(button).attr('data-postid'), comments: $(button).attr('data-comments')}; - } - this.setState(newState); - } - componentDidMount() { - $(ReactDOM.findDOMNode(this.refs.modal)).on('show.bs.modal', this.onShow); - PostStore.addSelectedPostChangeListener(this.onListenerChange); + + handleToggle(value, args) { + this.setState({ + show: value, + post: args.post, + commentCount: args.commentCount, + error: '' + }); } - componentWillUnmount() { - PostStore.removeSelectedPostChangeListener(this.onListenerChange); + + handleHide() { + this.setState({show: false}); } + onListenerChange() { var newList = PostStore.getSelectedPost(); - if (!Utils.areStatesEqual(this.state.selectedList, newList)) { - this.setState({selectedList: newList}); + if (!Utils.areObjectsEqual(this.selectedList, newList)) { + this.selectedList = newList; } } + render() { + if (!this.state.post) { + return null; + } + var error = null; if (this.state.error) { error = <div className='form-group has-error'><label className='control-label'>{this.state.error}</label></div>; } var commentWarning = ''; - if (this.state.comments > 0) { - commentWarning = 'This post has ' + this.state.comments + ' comment(s) on it.'; + if (this.state.commentCount > 0) { + commentWarning = 'This post has ' + this.state.commentCount + ' comment(s) on it.'; } + const postTerm = Utils.getPostTerm(this.state.post); + return ( - <div - className='modal fade' - id='delete_post' - ref='modal' - role='dialog' - tabIndex='-1' - aria-hidden='true' + <Modal + show={this.state.show} + onHide={this.handleHide} > - <div className='modal-dialog modal-push-down'> - <div className='modal-content'> - <div className='modal-header'> - <button - type='button' - className='close' - data-dismiss='modal' - aria-label='Close' - > - <span aria-hidden='true'>×</span> - </button> - <h4 className='modal-title'>Confirm {this.state.title} Delete</h4> - </div> - <div className='modal-body'> - Are you sure you want to delete the {this.state.title.toLowerCase()}? - <br/> - <br/> + <Modal.Header closeButton={true}> + <Modal.Title>{`Confirm ${postTerm} Delete`}</Modal.Title> + </Modal.Header> + <Modal.Body> + {`Are you sure you want to delete this ${postTerm.toLowerCase()}?`} + <br /> + <br /> {commentWarning} - </div> - {error} - <div className='modal-footer'> + {error} + </Modal.Body> + <Modal.Footer> <button type='button' className='btn btn-default' - data-dismiss='modal' + onClick={this.handleHide} > - Cancel + {'Cancel'} </button> <button type='button' className='btn btn-danger' - data-dismiss='modal' onClick={this.handleDelete} + autoFocus='autofocus' > - Delete + {'Delete'} </button> - </div> - </div> - </div> - </div> + </Modal.Footer> + </Modal> ); } } diff --git a/web/react/components/docs.jsx b/web/react/components/docs.jsx new file mode 100644 index 000000000..188ca340b --- /dev/null +++ b/web/react/components/docs.jsx @@ -0,0 +1,41 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import * as TextFormatting from '../utils/text_formatting.jsx'; +import UserStore from '../stores/user_store.jsx'; + +export default class Docs extends React.Component { + constructor(props) { + super(props); + UserStore.setCurrentUser(global.window.mm_user || {}); + + this.state = {text: ''}; + const errorState = {text: '## 404'}; + + if (props.site) { + $.get('/static/help/' + props.site + '.md').then((response) => { + this.setState({text: response}); + }, () => { + this.setState(errorState); + }); + } else { + this.setState(errorState); + } + } + + render() { + return ( + <div + dangerouslySetInnerHTML={{__html: TextFormatting.formatText(this.state.text)}} + > + </div> + ); + } +} + +Docs.defaultProps = { + site: '' +}; +Docs.propTypes = { + site: React.PropTypes.string +}; diff --git a/web/react/components/edit_channel_header_modal.jsx b/web/react/components/edit_channel_header_modal.jsx new file mode 100644 index 000000000..e4817f6e4 --- /dev/null +++ b/web/react/components/edit_channel_header_modal.jsx @@ -0,0 +1,142 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import * as Client from '../utils/client.jsx'; +import Constants from '../utils/constants.jsx'; +import * as Utils from '../utils/utils.jsx'; + +const Modal = ReactBootstrap.Modal; + +export default class EditChannelHeaderModal extends React.Component { + constructor(props) { + super(props); + + this.handleChange = this.handleChange.bind(this); + this.handleSubmit = this.handleSubmit.bind(this); + + this.onShow = this.onShow.bind(this); + this.onHide = this.onHide.bind(this); + + this.state = { + header: props.channel.header, + serverError: '' + }; + } + + componentDidMount() { + if (this.props.show) { + this.onShow(); + } + } + + componentWillReceiveProps(nextProps) { + if (this.props.channel.header !== nextProps.channel.header) { + this.setState({ + header: nextProps.channel.header + }); + } + } + + componentDidUpdate(prevProps) { + if (this.props.show && !prevProps.show) { + this.onShow(); + } + } + + handleChange(e) { + this.setState({ + header: e.target.value + }); + } + + handleSubmit() { + Client.updateChannelHeader( + this.props.channel.id, + this.state.header, + (channel) => { + this.setState({serverError: ''}); + this.onHide(); + + AppDispatcher.handleServerAction({ + type: Constants.ActionTypes.RECIEVED_CHANNEL, + channel + }); + }, + (err) => { + if (err.message === 'Invalid channel_header parameter') { + this.setState({serverError: 'This channel header is too long, please enter a shorter one'}); + } else { + this.setState({serverError: err.message}); + } + } + ); + } + + onShow() { + const textarea = ReactDOM.findDOMNode(this.refs.textarea); + Utils.placeCaretAtEnd(textarea); + } + + onHide() { + this.setState({ + serverError: '', + header: this.props.channel.header + }); + + this.props.onHide(); + } + + render() { + var serverError = null; + if (this.state.serverError) { + serverError = <div className='form-group has-error'><br/><label className='control-label'>{this.state.serverError}</label></div>; + } + + return ( + <Modal + show={this.props.show} + onHide={this.onHide} + > + <Modal.Header closeButton={true}> + <Modal.Title>{'Edit Header for ' + this.props.channel.display_name}</Modal.Title> + </Modal.Header> + <Modal.Body> + <p>{'Edit the text appearing next to the channel name in the channel header.'}</p> + <textarea + ref='textarea' + className='form-control no-resize' + rows='6' + id='edit_header' + maxLength='1024' + value={this.state.header} + onChange={this.handleChange} + /> + {serverError} + </Modal.Body> + <Modal.Footer> + <button + type='button' + className='btn btn-default' + onClick={this.onHide} + > + {'Cancel'} + </button> + <button + type='button' + className='btn btn-primary' + onClick={this.handleSubmit} + > + {'Save'} + </button> + </Modal.Footer> + </Modal> + ); + } +} + +EditChannelHeaderModal.propTypes = { + show: React.PropTypes.bool.isRequired, + onHide: React.PropTypes.func.isRequired, + channel: React.PropTypes.object.isRequired +}; diff --git a/web/react/components/edit_channel_modal.jsx b/web/react/components/edit_channel_modal.jsx deleted file mode 100644 index 2557a55ca..000000000 --- a/web/react/components/edit_channel_modal.jsx +++ /dev/null @@ -1,150 +0,0 @@ -// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -const Client = require('../utils/client.jsx'); -const AsyncClient = require('../utils/async_client.jsx'); - -export default class EditChannelModal extends React.Component { - constructor(props) { - super(props); - - this.handleEdit = this.handleEdit.bind(this); - this.handleUserInput = this.handleUserInput.bind(this); - this.handleClose = this.handleClose.bind(this); - this.onShow = this.onShow.bind(this); - this.handleShown = this.handleShown.bind(this); - - this.state = { - header: '', - title: '', - channelId: '', - serverError: '' - }; - } - handleEdit() { - var data = {}; - data.channel_id = this.state.channelId; - - if (data.channel_id.length !== 26) { - return; - } - - data.channel_header = this.state.header.trim(); - - Client.updateChannelHeader(data, - () => { - this.setState({serverError: ''}); - AsyncClient.getChannel(this.state.channelId); - $(ReactDOM.findDOMNode(this.refs.modal)).modal('hide'); - }, - (err) => { - if (err.message === 'Invalid channel_header parameter') { - this.setState({serverError: 'This channel header is too long, please enter a shorter one'}); - } else { - this.setState({serverError: err.message}); - } - } - ); - } - handleUserInput(e) { - this.setState({header: e.target.value}); - } - handleClose() { - this.setState({header: '', serverError: ''}); - } - onShow(e) { - const button = e.relatedTarget; - this.setState({header: $(button).attr('data-header'), title: $(button).attr('data-title'), channelId: $(button).attr('data-channelid'), serverError: ''}); - } - handleShown() { - $('#edit_channel #edit_header').focus(); - } - componentDidMount() { - $(ReactDOM.findDOMNode(this.refs.modal)).on('show.bs.modal', this.onShow); - $(ReactDOM.findDOMNode(this.refs.modal)).on('hidden.bs.modal', this.handleClose); - $(ReactDOM.findDOMNode(this.refs.modal)).on('shown.bs.modal', this.handleShown); - } - componentWillUnmount() { - $(ReactDOM.findDOMNode(this.refs.modal)).off('hidden.bs.modal', this.handleClose); - } - render() { - var serverError = null; - if (this.state.serverError) { - serverError = <div className='form-group has-error'><br/><label className='control-label'>{this.state.serverError}</label></div>; - } - - var editTitle = ( - <h4 - className='modal-title' - ref='title' - > - {'Edit Header'} - </h4> - ); - if (this.state.title) { - editTitle = ( - <h4 - className='modal-title' - ref='title' - > - {'Edit Header for '}<span className='name'>{this.state.title}</span> - </h4> - ); - } - - return ( - <div - className='modal fade' - ref='modal' - id='edit_channel' - role='dialog' - tabIndex='-1' - aria-hidden='true' - > - <div className='modal-dialog'> - <div className='modal-content'> - <div className='modal-header'> - <button - type='button' - className='close' - data-dismiss='modal' - aria-label='Close' - > - <span aria-hidden='true'>{'×'}</span> - </button> - {editTitle} - </div> - <div className='modal-body'> - <p>{'Edit the text appearing next to the channel name in the channel header.'}</p> - <textarea - className='form-control no-resize' - rows='6' - id='edit_header' - maxLength='1024' - value={this.state.header} - onChange={this.handleUserInput} - /> - {serverError} - </div> - <div className='modal-footer'> - <button - type='button' - className='btn btn-default' - data-dismiss='modal' - > - {'Cancel'} - </button> - <button - type='button' - className='btn btn-primary' - onClick={this.handleEdit} - > - {'Save'} - </button> - </div> - </div> - </div> - </div> - ); - } -} diff --git a/web/react/components/edit_channel_purpose_modal.jsx b/web/react/components/edit_channel_purpose_modal.jsx index 65e8183de..af23342ae 100644 --- a/web/react/components/edit_channel_purpose_modal.jsx +++ b/web/react/components/edit_channel_purpose_modal.jsx @@ -1,9 +1,9 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const AsyncClient = require('../utils/async_client.jsx'); -const Client = require('../utils/client.jsx'); -const Utils = require('../utils/utils.jsx'); +import * as AsyncClient from '../utils/async_client.jsx'; +import * as Client from '../utils/client.jsx'; +import * as Utils from '../utils/utils.jsx'; const Modal = ReactBootstrap.Modal; @@ -90,7 +90,7 @@ export default class EditChannelPurposeModal extends React.Component { </Modal.Title> </Modal.Header> <Modal.Body> - <p>{`Describe how this ${Utils.getChannelTerm(this.props.channel.channelType)} should be used.`}</p> + <p>{`Describe how this ${Utils.getChannelTerm(this.props.channel.channelType)} should be used. This text appears in the channel list in the "More..." menu and helps others decide whether to join.`}</p> <textarea ref='purpose' className='form-control no-resize' diff --git a/web/react/components/edit_post_modal.jsx b/web/react/components/edit_post_modal.jsx index ef32baa7d..be57fe7c3 100644 --- a/web/react/components/edit_post_modal.jsx +++ b/web/react/components/edit_post_modal.jsx @@ -1,14 +1,15 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Client = require('../utils/client.jsx'); -var AsyncClient = require('../utils/async_client.jsx'); -var Textbox = require('./textbox.jsx'); -var BrowserStore = require('../stores/browser_store.jsx'); -var PostStore = require('../stores/post_store.jsx'); -var PreferenceStore = require('../stores/preference_store.jsx'); - -var Constants = require('../utils/constants.jsx'); +import * as Client from '../utils/client.jsx'; +import * as AsyncClient from '../utils/async_client.jsx'; +import * as EventHelpers from '../dispatcher/event_helpers.jsx'; +import Textbox from './textbox.jsx'; +import BrowserStore from '../stores/browser_store.jsx'; +import PostStore from '../stores/post_store.jsx'; +import PreferenceStore from '../stores/preference_store.jsx'; + +import Constants from '../utils/constants.jsx'; var KeyCodes = Constants.KeyCodes; export default class EditPostModal extends React.Component { @@ -34,7 +35,7 @@ export default class EditPostModal extends React.Component { delete tempState.editText; BrowserStore.setItem('edit_state_transfer', tempState); $('#edit_post').modal('hide'); - $('#delete_post').modal('show'); + EventHelpers.showDeletePostModal(PostStore.getPost(this.state.channel_id, this.state.post_id), this.state.comments); return; } @@ -159,6 +160,7 @@ export default class EditPostModal extends React.Component { onKeyDown={this.handleKeyDown} messageText={this.state.editText} createMessage='Edit the post...' + supportsCommands={false} id='edit_textbox' ref='editbox' /> diff --git a/web/react/components/error_bar.jsx b/web/react/components/error_bar.jsx index f098384aa..921e8afe1 100644 --- a/web/react/components/error_bar.jsx +++ b/web/react/components/error_bar.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var ErrorStore = require('../stores/error_store.jsx'); +import ErrorStore from '../stores/error_store.jsx'; export default class ErrorBar extends React.Component { constructor() { diff --git a/web/react/components/file_attachment.jsx b/web/react/components/file_attachment.jsx index e707e32f5..2474b3d8a 100644 --- a/web/react/components/file_attachment.jsx +++ b/web/react/components/file_attachment.jsx @@ -1,9 +1,9 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var utils = require('../utils/utils.jsx'); -var Client = require('../utils/client.jsx'); -var Constants = require('../utils/constants.jsx'); +import * as utils from '../utils/utils.jsx'; +import * as Client from '../utils/client.jsx'; +import Constants from '../utils/constants.jsx'; export default class FileAttachment extends React.Component { constructor(props) { @@ -67,7 +67,7 @@ export default class FileAttachment extends React.Component { this.canSetState = false; } shouldComponentUpdate(nextProps, nextState) { - if (!utils.areStatesEqual(nextProps, this.props)) { + if (!utils.areObjectsEqual(nextProps, this.props)) { return true; } diff --git a/web/react/components/file_attachment_list.jsx b/web/react/components/file_attachment_list.jsx index ae08e5635..da1b2ba3d 100644 --- a/web/react/components/file_attachment_list.jsx +++ b/web/react/components/file_attachment_list.jsx @@ -1,9 +1,9 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var ViewImageModal = require('./view_image.jsx'); -var FileAttachment = require('./file_attachment.jsx'); -var Constants = require('../utils/constants.jsx'); +import ViewImageModal from './view_image.jsx'; +import FileAttachment from './file_attachment.jsx'; +import Constants from '../utils/constants.jsx'; export default class FileAttachmentList extends React.Component { constructor(props) { diff --git a/web/react/components/file_preview.jsx b/web/react/components/file_preview.jsx index df5deb8bc..d625a811e 100644 --- a/web/react/components/file_preview.jsx +++ b/web/react/components/file_preview.jsx @@ -1,16 +1,21 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Utils = require('../utils/utils.jsx'); +import * as Utils from '../utils/utils.jsx'; export default class FilePreview extends React.Component { constructor(props) { super(props); this.handleRemove = this.handleRemove.bind(this); + } - this.state = {}; + componentDidUpdate() { + if (this.props.uploadsInProgress.length > 0) { + ReactDOM.findDOMNode(this.refs[this.props.uploadsInProgress[0]]).scrollIntoView(); + } } + handleRemove(e) { var previewDiv = e.target.parentNode.parentNode; @@ -20,9 +25,10 @@ export default class FilePreview extends React.Component { this.props.onRemove(previewDiv.getAttribute('data-client-id')); } } + render() { var previews = []; - this.props.files.forEach(function setupPreview(fullFilename) { + this.props.files.forEach((fullFilename) => { var filename = fullFilename; var originalFilename = filename; var filenameSplit = filename.split('.'); @@ -72,11 +78,12 @@ export default class FilePreview extends React.Component { </div> ); } - }.bind(this)); + }); - this.props.uploadsInProgress.forEach(function addUploadsInProgress(clientId) { + this.props.uploadsInProgress.forEach((clientId) => { previews.push( <div + ref={clientId} key={clientId} className='preview-div' data-client-id={clientId} @@ -93,7 +100,7 @@ export default class FilePreview extends React.Component { </a> </div> ); - }.bind(this)); + }); return ( <div className='preview-container'> @@ -104,8 +111,8 @@ export default class FilePreview extends React.Component { } FilePreview.defaultProps = { - files: null, - uploadsInProgress: null + files: [], + uploadsInProgress: [] }; FilePreview.propTypes = { onRemove: React.PropTypes.func.isRequired, diff --git a/web/react/components/file_upload.jsx b/web/react/components/file_upload.jsx index 8854a54df..9316ca9a5 100644 --- a/web/react/components/file_upload.jsx +++ b/web/react/components/file_upload.jsx @@ -1,10 +1,10 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var client = require('../utils/client.jsx'); -var Constants = require('../utils/constants.jsx'); -var ChannelStore = require('../stores/channel_store.jsx'); -var utils = require('../utils/utils.jsx'); +import * as client from '../utils/client.jsx'; +import Constants from '../utils/constants.jsx'; +import ChannelStore from '../stores/channel_store.jsx'; +import * as utils from '../utils/utils.jsx'; export default class FileUpload extends React.Component { constructor(props) { diff --git a/web/react/components/find_team.jsx b/web/react/components/find_team.jsx index bd3c11973..94ca48dbf 100644 --- a/web/react/components/find_team.jsx +++ b/web/react/components/find_team.jsx @@ -1,8 +1,8 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var utils = require('../utils/utils.jsx'); -var client = require('../utils/client.jsx'); +import * as utils from '../utils/utils.jsx'; +import * as client from '../utils/client.jsx'; export default class FindTeam extends React.Component { constructor(props) { diff --git a/web/react/components/get_link_modal.jsx b/web/react/components/get_link_modal.jsx index 8839bc3c7..fd20834f4 100644 --- a/web/react/components/get_link_modal.jsx +++ b/web/react/components/get_link_modal.jsx @@ -1,32 +1,28 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var UserStore = require('../stores/user_store.jsx'); +const Modal = ReactBootstrap.Modal; export default class GetLinkModal extends React.Component { constructor(props) { super(props); - this.handleClick = this.handleClick.bind(this); - this.onShow = this.onShow.bind(this); this.onHide = this.onHide.bind(this); - this.state = {copiedLink: false}; - } - onShow(e) { - var button = e.relatedTarget; - this.setState({title: $(button).attr('data-title'), value: $(button).attr('data-value')}); + this.copyLink = this.copyLink.bind(this); + + this.state = { + copiedLink: false + }; } + onHide() { this.setState({copiedLink: false}); + + this.props.onHide(); } - componentDidMount() { - if (this.refs.modal) { - $(ReactDOM.findDOMNode(this.refs.modal)).on('show.bs.modal', this.onShow); - $(ReactDOM.findDOMNode(this.refs.modal)).on('hide.bs.modal', this.onHide); - } - } - handleClick() { + + copyLink() { var copyTextarea = $(ReactDOM.findDOMNode(this.refs.textarea)); copyTextarea.select(); @@ -41,8 +37,18 @@ export default class GetLinkModal extends React.Component { this.setState({copiedLink: false}); } } + render() { - var currentUser = UserStore.getCurrentUser(); + let helpText = null; + if (this.props.helpText) { + helpText = ( + <p> + {this.props.helpText} + <br /> + <br /> + </p> + ); + } let copyLink = null; if (document.queryCommandSupported('copy')) { @@ -51,75 +57,59 @@ export default class GetLinkModal extends React.Component { data-copy-btn='true' type='button' className='btn btn-primary pull-left' - onClick={this.handleClick} - data-clipboard-text={this.state.value} + onClick={this.copyLink} > - Copy Link + {'Copy Link'} </button> ); } var copyLinkConfirm = null; if (this.state.copiedLink) { - copyLinkConfirm = <p className='alert alert-success copy-link-confirm'><i className='fa fa-check'></i> Link copied to clipboard.</p>; + copyLinkConfirm = <p className='alert alert-success copy-link-confirm'><i className='fa fa-check'></i>{' Link copied to clipboard.'}</p>; } - if (currentUser != null) { - return ( - <div - className='modal fade' - ref='modal' - id='get_link' - tabIndex='-1' - role='dialog' - aria-hidden='true' - > - <div className='modal-dialog'> - <div className='modal-content'> - <div className='modal-header'> - <button - type='button' - className='close' - data-dismiss='modal' - aria-label='Close' - > - <span aria-hidden='true'>×</span> - </button> - <h4 - className='modal-title' - id='myModalLabel' - > - {this.state.title} Link - </h4> - </div> - <div className='modal-body'> - <p> - Send teammates the link below for them to sign-up to this team site. - <br /><br /> - </p> - <textarea - className='form-control no-resize min-height' - readOnly='true' - ref='textarea' - value={this.state.value} - /> - </div> - <div className='modal-footer'> - <button - type='button' - className='btn btn-default' - data-dismiss='modal' - > - Close - </button> - {copyLink} - {copyLinkConfirm} - </div> - </div> - </div> - </div> - ); - } - return <div/>; + return ( + <Modal + show={this.props.show} + onHide={this.onHide} + > + <Modal.Header closeButton={true}> + <h4 className='modal-title'>{this.props.title}</h4> + </Modal.Header> + <Modal.Body> + {helpText} + <textarea + className='form-control no-resize min-height' + readOnly='true' + ref='textarea' + value={this.props.link} + /> + </Modal.Body> + <Modal.Footer> + <button + type='button' + className='btn btn-default' + onClick={this.onHide} + > + {'Close'} + </button> + {copyLink} + {copyLinkConfirm} + </Modal.Footer> + </Modal> + ); } } + +GetLinkModal.propTypes = { + show: React.PropTypes.bool.isRequired, + onHide: React.PropTypes.func.isRequired, + title: React.PropTypes.string.isRequired, + helpText: React.PropTypes.string, + link: React.PropTypes.string.isRequired +}; + +GetLinkModal.defaultProps = { + helpText: null +}; diff --git a/web/react/components/get_team_invite_link_modal.jsx b/web/react/components/get_team_invite_link_modal.jsx new file mode 100644 index 000000000..a926c4451 --- /dev/null +++ b/web/react/components/get_team_invite_link_modal.jsx @@ -0,0 +1,45 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import Constants from '../utils/constants.jsx'; +import GetLinkModal from './get_link_modal.jsx'; +import ModalStore from '../stores/modal_store.jsx'; +import TeamStore from '../stores/team_store.jsx'; + +export default class GetTeamInviteLinkModal extends React.Component { + constructor(props) { + super(props); + + this.handleToggle = this.handleToggle.bind(this); + + this.state = { + show: false + }; + } + + componentDidMount() { + ModalStore.addModalListener(Constants.ActionTypes.TOGGLE_GET_TEAM_INVITE_LINK_MODAL, this.handleToggle); + } + + componentWillUnmount() { + ModalStore.removeModalListener(Constants.ActionTypes.TOGGLE_GET_TEAM_INVITE_LINK_MODAL, this.handleToggle); + } + + handleToggle(value) { + this.setState({ + show: value + }); + } + + render() { + return ( + <GetLinkModal + show={this.state.show} + onHide={() => this.setState({show: false})} + title='Team Invite Link' + helpText='Send teammates the link below for them to sign-up to this team site.' + link={TeamStore.getCurrentInviteLink()} + /> + ); + } +} diff --git a/web/react/components/invite_member_modal.jsx b/web/react/components/invite_member_modal.jsx index c09477a69..56bc00a7e 100644 --- a/web/react/components/invite_member_modal.jsx +++ b/web/react/components/invite_member_modal.jsx @@ -1,14 +1,15 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var utils = require('../utils/utils.jsx'); -var ActionTypes = require('../utils/constants.jsx').ActionTypes; -var AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -var Client = require('../utils/client.jsx'); -var ModalStore = require('../stores/modal_store.jsx'); -var UserStore = require('../stores/user_store.jsx'); -var TeamStore = require('../stores/team_store.jsx'); -var ConfirmModal = require('./confirm_modal.jsx'); +import * as utils from '../utils/utils.jsx'; +import Constants from '../utils/constants.jsx'; +const ActionTypes = Constants.ActionTypes; +import * as Client from '../utils/client.jsx'; +import * as EventHelpers from '../dispatcher/event_helpers.jsx'; +import ModalStore from '../stores/modal_store.jsx'; +import UserStore from '../stores/user_store.jsx'; +import TeamStore from '../stores/team_store.jsx'; +import ConfirmModal from './confirm_modal.jsx'; const Modal = ReactBootstrap.Modal; @@ -22,6 +23,7 @@ export default class InviteMemberModal extends React.Component { this.addInviteFields = this.addInviteFields.bind(this); this.clearFields = this.clearFields.bind(this); this.removeInviteFields = this.removeInviteFields.bind(this); + this.showGetTeamInviteLinkModal = this.showGetTeamInviteLinkModal.bind(this); this.state = { show: false, @@ -31,7 +33,9 @@ export default class InviteMemberModal extends React.Component { firstNameErrors: {}, lastNameErrors: {}, emailEnabled: global.window.mm_config.SendEmailNotifications === 'true', - showConfirmModal: false + userCreationEnabled: global.window.mm_config.EnableUserCreation === 'true', + showConfirmModal: false, + isSendingEmails: false }; } @@ -89,10 +93,13 @@ export default class InviteMemberModal extends React.Component { var data = {}; data.invites = invites; + this.setState({isSendingEmails: true}); + Client.inviteMembers( data, () => { this.handleHide(false); + this.setState({isSendingEmails: false}); }, (err) => { if (err.message === 'This person is already on your team') { @@ -101,6 +108,8 @@ export default class InviteMemberModal extends React.Component { } else { this.setState({serverError: err.message}); } + + this.setState({isSendingEmails: false}); } ); } @@ -135,7 +144,7 @@ export default class InviteMemberModal extends React.Component { componentDidUpdate(prevProps, prevState) { if (!prevState.show && this.state.show) { - $(ReactDOM.findDOMNode(this.refs.modalBody)).css('max-height', $(window).height() - 300); + $(ReactDOM.findDOMNode(this.refs.modalBody)).css('max-height', $(window).height() - 200); if ($(window).width() > 768) { $(ReactDOM.findDOMNode(this.refs.modalBody)).perfectScrollbar(); } @@ -181,6 +190,12 @@ export default class InviteMemberModal extends React.Component { this.setState({inviteIds: inviteIds, idCount: count}); } + showGetTeamInviteLinkModal() { + this.handleHide(false); + + EventHelpers.showGetTeamInviteLinkModal(); + } + render() { var currentUser = UserStore.getCurrentUser(); @@ -238,7 +253,7 @@ export default class InviteMemberModal extends React.Component { ref={'first_name' + index} placeholder='First name' maxLength='64' - disabled={!this.state.emailEnabled} + disabled={!this.state.emailEnabled || !this.state.userCreationEnabled} spellCheck='false' /> {firstNameError} @@ -252,7 +267,7 @@ export default class InviteMemberModal extends React.Component { ref={'last_name' + index} placeholder='Last name' maxLength='64' - disabled={!this.state.emailEnabled} + disabled={!this.state.emailEnabled || !this.state.userCreationEnabled} spellCheck='false' /> {lastNameError} @@ -271,7 +286,7 @@ export default class InviteMemberModal extends React.Component { className='form-control' placeholder='email@domain.com' maxLength='64' - disabled={!this.state.emailEnabled} + disabled={!this.state.emailEnabled || !this.state.userCreationEnabled} spellCheck='false' /> {emailError} @@ -289,12 +304,7 @@ export default class InviteMemberModal extends React.Component { var content = null; var sendButton = null; - var sendButtonLabel = 'Send Invitation'; - if (this.state.inviteIds.length > 1) { - sendButtonLabel = 'Send Invitations'; - } - - if (this.state.emailEnabled) { + if (this.state.emailEnabled && this.state.userCreationEnabled) { content = ( <div> {serverError} @@ -309,54 +319,68 @@ export default class InviteMemberModal extends React.Component { </div> ); - sendButton = - ( - <button - onClick={this.handleSubmit} - type='button' - className='btn btn-primary' - >{sendButtonLabel}</button> + var sendButtonLabel = 'Send Invitation'; + if (this.state.isSendingEmails) { + sendButtonLabel = ( + <span><i className='fa fa-spinner fa-spin' />{' Sending'}</span> ); - } else { + } else if (this.state.inviteIds.length > 1) { + sendButtonLabel = 'Send Invitations'; + } + + sendButton = ( + <button + onClick={this.handleSubmit} + type='button' + className='btn btn-primary' + disabled={this.state.isSendingEmails} + > + {sendButtonLabel} + </button> + ); + } else if (this.state.userCreationEnabled) { var teamInviteLink = null; if (currentUser && TeamStore.getCurrent().type === 'O') { - var linkUrl = utils.getWindowLocationOrigin() + '/signup_user_complete/?id=' + TeamStore.getCurrent().invite_id; - var link = - ( - <a - href='#' - data-toggle='modal' - data-target='#get_link' - data-title='Team Invite' - data-value={linkUrl} - onClick={() => this.handleHide(this, false)} - >Team Invite Link</a> + var link = ( + <a + href='#' + onClick={this.showGetTeamInviteLinkModal} + > + {'Team Invite Link'} + </a> ); teamInviteLink = ( <p> - You can also invite people using the {link}. + {'You can also invite people using the '}{link}{'.'} </p> ); } content = ( <div> - <p>Email is currently disabled for your team, and email invitations cannot be sent. Contact your system administrator to enable email and email invitations.</p> + <p>{'Email is currently disabled for your team, and email invitations cannot be sent. Contact your system administrator to enable email and email invitations.'}</p> {teamInviteLink} </div> ); + } else { + content = ( + <div> + <p>{'User creation has been disabled for your team. Please ask your team administrator for details.'}</p> + </div> + ); } return ( <div> <Modal - className='modal-invite-member' + dialogClassName='modal-invite-member' show={this.state.show} onHide={this.handleHide.bind(this, true)} enforceFocus={!this.state.showConfirmModal} + backdrop={this.state.isSendingEmails ? 'static' : true} > - <Modal.Header closeButton={true}> + <Modal.Header closeButton={!this.state.isSendingEmails}> <Modal.Title>{'Invite New Member'}</Modal.Title> </Modal.Header> <Modal.Body ref='modalBody'> @@ -370,6 +394,7 @@ export default class InviteMemberModal extends React.Component { type='button' className='btn btn-default' onClick={this.handleHide.bind(this, true)} + disabled={this.state.isSendingEmails} > {'Cancel'} </button> @@ -390,13 +415,6 @@ export default class InviteMemberModal extends React.Component { return null; } - - static show() { - AppDispatcher.handleViewAction({ - type: ActionTypes.TOGGLE_INVITE_MEMBER_MODAL, - value: true - }); - } } InviteMemberModal.propTypes = { diff --git a/web/react/components/login.jsx b/web/react/components/login.jsx index 2b9ce67ca..d87bd20ad 100644 --- a/web/react/components/login.jsx +++ b/web/react/components/login.jsx @@ -1,10 +1,10 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const Utils = require('../utils/utils.jsx'); -const Client = require('../utils/client.jsx'); -const UserStore = require('../stores/user_store.jsx'); -const BrowserStore = require('../stores/browser_store.jsx'); +import * as Utils from '../utils/utils.jsx'; +import * as Client from '../utils/client.jsx'; +import UserStore from '../stores/user_store.jsx'; +import BrowserStore from '../stores/browser_store.jsx'; export default class Login extends React.Component { constructor(props) { @@ -125,7 +125,7 @@ export default class Login extends React.Component { let emailSignup; if (global.window.mm_config.EnableSignUpWithEmail === 'true') { emailSignup = ( - <div> + <div className='signup__email-container'> <div className={'form-group' + errorClass}> <input autoFocus={focusEmail} @@ -201,14 +201,12 @@ export default class Login extends React.Component { if (global.window.mm_config.EnableTeamCreation === 'true') { teamSignUp = ( <div className='margin--extra'> - <span>{'Want to create your own team? '} - <a - href='/' - className='signup-team-login' - > - {'Sign up now'} - </a> - </span> + <a + href='/' + className='signup-team-login' + > + {'Create a new team'} + </a> </div> ); } @@ -227,7 +225,7 @@ export default class Login extends React.Component { {emailSignup} {userSignUp} <div className='form-group margin--extra form-group--small'> - <span><a href='/find_team'>{'Find other teams'}</a></span> + <span><a href='/find_team'>{'Find your other teams'}</a></span> </div> {forgotPassword} {teamSignUp} diff --git a/web/react/components/member_list.jsx b/web/react/components/member_list.jsx index 0238c7920..8c6dc4209 100644 --- a/web/react/components/member_list.jsx +++ b/web/react/components/member_list.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var MemberListItem = require('./member_list_item.jsx'); +import MemberListItem from './member_list_item.jsx'; export default class MemberList extends React.Component { constructor(props) { diff --git a/web/react/components/member_list_item.jsx b/web/react/components/member_list_item.jsx index 8251d67bc..a7273f280 100644 --- a/web/react/components/member_list_item.jsx +++ b/web/react/components/member_list_item.jsx @@ -1,8 +1,8 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var UserStore = require('../stores/user_store.jsx'); -const Utils = require('../utils/utils.jsx'); +import UserStore from '../stores/user_store.jsx'; +import * as Utils from '../utils/utils.jsx'; export default class MemberListItem extends React.Component { constructor(props) { @@ -31,9 +31,7 @@ export default class MemberListItem extends React.Component { var timestamp = UserStore.getCurrentUser().update_at; var invite; - if (member.invited && this.props.handleInvite) { - invite = <span className='member-role'>Added</span>; - } else if (this.props.handleInvite) { + if (this.props.handleInvite) { invite = ( <a onClick={this.handleInvite} @@ -80,17 +78,15 @@ export default class MemberListItem extends React.Component { href='#' className='dropdown-toggle theme' type='button' - id='channel_header_dropdown' data-toggle='dropdown' aria-expanded='true' > + <span className='fa fa-pencil'></span> <span className='text-capitalize'>{member.roles || 'Member'} </span> - <span className='caret'></span> </a> <ul className='dropdown-menu member-menu' role='menu' - aria-labelledby='channel_header_dropdown' > {makeAdminOption} {handleRemoveOption} @@ -98,7 +94,7 @@ export default class MemberListItem extends React.Component { </div> ); } else { - invite = <div className='member-role text-capitalize'>{member.roles || 'Member'}<span className='caret hidden'></span></div>; + invite = <div className='member-role text-capitalize'><span className='fa fa-pencil hidden'></span>{member.roles || 'Member'}</div>; } return ( @@ -110,7 +106,7 @@ export default class MemberListItem extends React.Component { height='36' width='36' /> - <div className='member-name'>{member.username}</div> + <div className='member-name'>{Utils.displayUsername(member.id)}</div> <div className='member-description'>{member.email}</div> </td> <td className='td--action lg'>{invite}</td> diff --git a/web/react/components/member_list_team.jsx b/web/react/components/member_list_team.jsx index cb2d0660b..f1c31131f 100644 --- a/web/react/components/member_list_team.jsx +++ b/web/react/components/member_list_team.jsx @@ -1,18 +1,57 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const MemberListTeamItem = require('./member_list_team_item.jsx'); +import MemberListTeamItem from './member_list_team_item.jsx'; +import UserStore from '../stores/user_store.jsx'; export default class MemberListTeam extends React.Component { + constructor(props) { + super(props); + + this.getUsers = this.getUsers.bind(this); + this.onChange = this.onChange.bind(this); + + this.state = { + users: this.getUsers() + }; + } + + componentDidMount() { + UserStore.addChangeListener(this.onChange); + } + + componentWillUnmount() { + UserStore.removeChangeListener(this.onChange); + } + + getUsers() { + const profiles = UserStore.getProfiles(); + const users = []; + + for (const id of Object.keys(profiles)) { + users.push(profiles[id]); + } + + users.sort((a, b) => a.username.localeCompare(b.username)); + + return users; + } + + onChange() { + this.setState({ + users: this.getUsers() + }); + } + render() { - const memberList = this.props.users.map(function makeListItem(user) { + const memberList = this.state.users.map((user) => { return ( <MemberListTeamItem key={user.id} user={user} /> ); - }, this); + }); return ( <table className='table more-table member-list-holder'> @@ -23,7 +62,3 @@ export default class MemberListTeam extends React.Component { ); } } - -MemberListTeam.propTypes = { - users: React.PropTypes.arrayOf(React.PropTypes.object).isRequired -}; diff --git a/web/react/components/member_list_team_item.jsx b/web/react/components/member_list_team_item.jsx index 1fa369068..7967c410d 100644 --- a/web/react/components/member_list_team_item.jsx +++ b/web/react/components/member_list_team_item.jsx @@ -1,10 +1,10 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const UserStore = require('../stores/user_store.jsx'); -const Client = require('../utils/client.jsx'); -const AsyncClient = require('../utils/async_client.jsx'); -const Utils = require('../utils/utils.jsx'); +import UserStore from '../stores/user_store.jsx'; +import * as Client from '../utils/client.jsx'; +import * as AsyncClient from '../utils/async_client.jsx'; +import * as Utils from '../utils/utils.jsx'; export default class MemberListTeamItem extends React.Component { constructor(props) { @@ -174,24 +174,22 @@ export default class MemberListTeamItem extends React.Component { height='36' width='36' /> - <span className='member-name'>{Utils.getDisplayName(user)}</span> + <span className='member-name'>{Utils.displayUsername(user.id)}</span> <span className='member-email'>{email}</span> <div className='dropdown member-drop'> <a href='#' className='dropdown-toggle theme' type='button' - id='channel_header_dropdown' data-toggle='dropdown' aria-expanded='true' > + <span className='fa fa-pencil'></span> <span>{currentRoles} </span> - <span className='caret'></span> </a> <ul className='dropdown-menu member-menu' role='menu' - aria-labelledby='channel_header_dropdown' > {makeAdmin} {makeMember} diff --git a/web/react/components/mention.jsx b/web/react/components/mention.jsx deleted file mode 100644 index 050887c6f..000000000 --- a/web/react/components/mention.jsx +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. -var UserStore = require('../stores/user_store.jsx'); -const Utils = require('../utils/utils.jsx'); - -export default class Mention extends React.Component { - constructor(props) { - super(props); - - this.handleClick = this.handleClick.bind(this); - - this.state = null; - } - handleClick() { - this.props.handleClick(this.props.username); - } - render() { - var icon; - var timestamp = UserStore.getCurrentUser().update_at; - if (this.props.id === 'allmention' || this.props.id === 'channelmention') { - icon = <span><i className='mention-img fa fa-users fa-2x'></i></span>; - } else if (this.props.id == null) { - icon = <span><i className='mention-img fa fa-users fa-2x'></i></span>; - } else { - icon = ( - <span> - <img - className='mention-img' - src={'/api/v1/users/' + this.props.id + '/image?time=' + timestamp + '&' + Utils.getSessionIndex()} - /> - </span> - ); - } - return ( - <div - className={'mentions-name ' + this.props.isFocused} - id={this.props.id + '_mentions'} - onClick={this.handleClick} - onMouseEnter={this.props.handleMouseEnter} - > - <div className='pull-left'>{icon}</div> - <div className='pull-left mention-align'><span>@{this.props.username}</span><span className='mention-fullname'>{this.props.secondary_text}</span></div> - </div> - ); - } -} - -Mention.defaultProps = { - username: '', - id: '', - isFocused: '', - secondary_text: '' -}; -Mention.propTypes = { - handleClick: React.PropTypes.func.isRequired, - handleMouseEnter: React.PropTypes.func.isRequired, - username: React.PropTypes.string, - id: React.PropTypes.string, - isFocused: React.PropTypes.string, - secondary_text: React.PropTypes.string -}; diff --git a/web/react/components/mention_list.jsx b/web/react/components/mention_list.jsx deleted file mode 100644 index 61a24c09c..000000000 --- a/web/react/components/mention_list.jsx +++ /dev/null @@ -1,276 +0,0 @@ -// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -var UserStore = require('../stores/user_store.jsx'); -var SearchStore = require('../stores/search_store.jsx'); -var AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -var Mention = require('./mention.jsx'); - -var Constants = require('../utils/constants.jsx'); -var Utils = require('../utils/utils.jsx'); -var ActionTypes = Constants.ActionTypes; - -var MAX_HEIGHT_LIST = 292; -var MAX_ITEMS_IN_LIST = 25; -var ITEM_HEIGHT = 36; - -export default class MentionList extends React.Component { - constructor(props) { - super(props); - - this.onListenerChange = this.onListenerChange.bind(this); - this.handleClick = this.handleClick.bind(this); - this.handleMouseEnter = this.handleMouseEnter.bind(this); - this.getSelection = this.getSelection.bind(this); - this.addCurrentMention = this.addCurrentMention.bind(this); - this.addFirstMention = this.addFirstMention.bind(this); - this.isEmpty = this.isEmpty.bind(this); - this.scrollToMention = this.scrollToMention.bind(this); - this.onScroll = this.onScroll.bind(this); - this.onMentionListKey = this.onMentionListKey.bind(this); - this.onClick = this.onClick.bind(this); - - this.state = {excludeUsers: [], mentionText: '-1', selectedMention: 0, selectedUsername: ''}; - } - onScroll() { - if ($('.mentions--top').length) { - $('#reply_mention_tab .mentions--top').css({bottom: $(window).height() - $('.post-right__scroll #reply_textbox').offset().top}); - } - } - onMentionListKey(e) { - if (!this.isEmpty() && this.state.mentionText !== '-1' && (e.which === 13 || e.which === 9)) { - e.stopPropagation(); - e.preventDefault(); - this.addCurrentMention(); - } else if (!this.isEmpty() && this.state.mentionText !== '-1' && (e.which === 38 || e.which === 40)) { - e.stopPropagation(); - e.preventDefault(); - - if (e.which === 38) { - if (this.getSelection(this.state.selectedMention - 1)) { - this.setState({selectedMention: this.state.selectedMention - 1, selectedUsername: this.refs['mention' + (this.state.selectedMention - 1)].props.username}); - } - } else if (e.which === 40) { - if (this.getSelection(this.state.selectedMention + 1)) { - this.setState({selectedMention: this.state.selectedMention + 1, selectedUsername: this.refs['mention' + (this.state.selectedMention + 1)].props.username}); - } - } - - this.scrollToMention(e.which); - } - } - onClick(e) { - if (!($('#' + this.props.id).is(e.target) || $('#' + this.props.id).has(e.target).length || - ('mentionlist' in this.refs && $(ReactDOM.findDOMNode(this.refs.mentionlist)).has(e.target).length))) { - this.setState({mentionText: '-1'}); - } - } - componentDidMount() { - SearchStore.addMentionDataChangeListener(this.onListenerChange); - - $('.post-right__scroll').scroll(this.onScroll); - - $('body').on('keydown.mentionlist', '#' + this.props.id, this.onMentionListKey); - $(document).click(this.onClick); - } - componentWillUnmount() { - SearchStore.removeMentionDataChangeListener(this.onListenerChange); - $('body').off('keydown.mentionlist', '#' + this.props.id); - } - - /* - * This component is poorly designed, nessesitating some state modification - * in the componentDidUpdate function. This is generally discouraged as it - * is a performance issue and breaks with good react design. This component - * should be redesigned. - */ - componentDidUpdate() { - if (this.state.mentionText !== '-1') { - if (this.state.selectedUsername !== '' && (!this.getSelection(this.state.selectedMention) || this.state.selectedUsername !== this.refs['mention' + this.state.selectedMention].props.username)) { - var tempSelectedMention = -1; - var foundMatch = false; - while (tempSelectedMention < this.state.selectedMention && this.getSelection(++tempSelectedMention)) { - if (this.state.selectedUsername === this.refs['mention' + tempSelectedMention].props.username) { - this.setState({selectedMention: tempSelectedMention}); //eslint-disable-line react/no-did-update-set-state - foundMatch = true; - break; - } - } - if (this.getSelection(0) && !foundMatch) { - this.setState({selectedMention: 0, selectedUsername: this.refs.mention0.props.username}); //eslint-disable-line react/no-did-update-set-state - } - } - } else if (this.state.selectedMention !== 0) { - this.setState({selectedMention: 0, selectedUsername: ''}); //eslint-disable-line react/no-did-update-set-state - } - } - onListenerChange(id, mentionText) { - if (id !== this.props.id) { - return; - } - - var newState = this.state; - if (mentionText != null) { - newState.mentionText = mentionText; - } - - this.setState(newState); - } - handleClick(name) { - AppDispatcher.handleViewAction({ - type: ActionTypes.RECIEVED_ADD_MENTION, - id: this.props.id, - username: name - }); - - this.setState({mentionText: '-1'}); - } - handleMouseEnter(listId) { - this.setState({selectedMention: listId, selectedUsername: this.refs['mention' + listId].props.username}); - } - getSelection(listId) { - if (!this.refs['mention' + listId]) { - return false; - } - return true; - } - addCurrentMention() { - if (this.getSelection(this.state.selectedMention)) { - this.refs['mention' + this.state.selectedMention].handleClick(); - } else { - this.addFirstMention(); - } - } - addFirstMention() { - if (!this.refs.mention0) { - return; - } - this.refs.mention0.handleClick(); - } - isEmpty() { - return (!this.refs.mention0); - } - scrollToMention(keyPressed) { - var direction; - if (keyPressed === 38) { - direction = 'up'; - } else { - direction = 'down'; - } - var scrollAmount = 0; - - if (direction === 'up') { - scrollAmount = '-=' + ($('#' + this.refs['mention' + this.state.selectedMention].props.id + '_mentions').innerHeight() - 5); - } else if (direction === 'down') { - scrollAmount = '+=' + ($('#' + this.refs['mention' + this.state.selectedMention].props.id + '_mentions').innerHeight() - 5); - } - - $('#mentionsbox').animate({ - scrollTop: scrollAmount - }, 75); - } - render() { - var mentionText = this.state.mentionText; - if (mentionText === '-1') { - return null; - } - - var profiles = UserStore.getActiveOnlyProfiles(); - var users = []; - for (let id in profiles) { - if (profiles[id]) { - users.push(profiles[id]); - } - } - - var all = {}; - all.username = 'all'; - all.nickname = ''; - all.secondary_text = 'Notifies everyone in the team'; - all.id = 'allmention'; - users.push(all); - - var channel = {}; - channel.username = 'channel'; - channel.nickname = ''; - channel.secondary_text = 'Notifies everyone in the channel'; - channel.id = 'channelmention'; - users.push(channel); - - users.sort(function sortByUsername(a, b) { - if (a.username < b.username) { - return -1; - } - if (a.username > b.username) { - return 1; - } - return 0; - }); - var mentions = []; - var index = 0; - - for (var i = 0; i < users.length && index < MAX_ITEMS_IN_LIST; i++) { - if ((users[i].first_name && users[i].first_name.lastIndexOf(mentionText, 0) === 0) || - (users[i].last_name && users[i].last_name.lastIndexOf(mentionText, 0) === 0) || - users[i].username.lastIndexOf(mentionText, 0) === 0) { - let isFocused = ''; - if (this.state.selectedMention === index) { - isFocused = 'mentions-focus'; - } - - if (!users[i].secondary_text) { - users[i].secondary_text = Utils.getFullName(users[i]); - } - - mentions[index] = ( - <Mention - key={'mention_key_' + index} - ref={'mention' + index} - username={users[i].username} - secondary_text={users[i].secondary_text} - id={users[i].id} - listId={index} - isFocused={isFocused} - handleMouseEnter={this.handleMouseEnter.bind(this, index)} - handleClick={this.handleClick} - /> - ); - index++; - } - } - - var numMentions = mentions.length; - - if (numMentions < 1) { - return null; - } - - var $mentionTab = $('#' + this.props.id); - var maxHeight = Math.min(MAX_HEIGHT_LIST, $mentionTab.offset().top - 10); - var style = { - height: Math.min(maxHeight, (numMentions * ITEM_HEIGHT) + 4), - width: $mentionTab.parent().width(), - bottom: $(window).height() - $mentionTab.offset().top, - left: $mentionTab.offset().left - }; - - return ( - <div - className='mentions--top' - style={style} - > - <div - ref='mentionlist' - className='mentions-box' - id='mentionsbox' - > - {mentions} - </div> - </div> - ); - } -} - -MentionList.propTypes = { - id: React.PropTypes.string -}; diff --git a/web/react/components/message_wrapper.jsx b/web/react/components/message_wrapper.jsx index 00c427c79..8e0380c06 100644 --- a/web/react/components/message_wrapper.jsx +++ b/web/react/components/message_wrapper.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var TextFormatting = require('../utils/text_formatting.jsx'); +import * as TextFormatting from '../utils/text_formatting.jsx'; export default class MessageWrapper extends React.Component { constructor(props) { diff --git a/web/react/components/more_channels.jsx b/web/react/components/more_channels.jsx index c4f831c2e..29512b9b7 100644 --- a/web/react/components/more_channels.jsx +++ b/web/react/components/more_channels.jsx @@ -1,12 +1,12 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var utils = require('../utils/utils.jsx'); -var client = require('../utils/client.jsx'); -var asyncClient = require('../utils/async_client.jsx'); -var ChannelStore = require('../stores/channel_store.jsx'); -var LoadingScreen = require('./loading_screen.jsx'); -var NewChannelFlow = require('./new_channel_flow.jsx'); +import * as utils from '../utils/utils.jsx'; +import * as client from '../utils/client.jsx'; +import * as AsyncClient from '../utils/async_client.jsx'; +import ChannelStore from '../stores/channel_store.jsx'; +import LoadingScreen from './loading_screen.jsx'; +import NewChannelFlow from './new_channel_flow.jsx'; function getStateFromStores() { return { @@ -31,12 +31,12 @@ export default class MoreChannels extends React.Component { } componentDidMount() { ChannelStore.addMoreChangeListener(this.onListenerChange); - $(ReactDOM.findDOMNode(this.refs.modal)).on('shown.bs.modal', function shown() { - asyncClient.getMoreChannels(true); + $(ReactDOM.findDOMNode(this.refs.modal)).on('shown.bs.modal', () => { + AsyncClient.getMoreChannels(true); }); var self = this; - $(ReactDOM.findDOMNode(this.refs.modal)).on('show.bs.modal', function show(e) { + $(ReactDOM.findDOMNode(this.refs.modal)).on('show.bs.modal', (e) => { var button = e.relatedTarget; self.setState({channelType: $(button).attr('data-channeltype')}); }); @@ -46,22 +46,22 @@ export default class MoreChannels extends React.Component { } onListenerChange() { var newState = getStateFromStores(); - if (!utils.areStatesEqual(newState.channels, this.state.channels)) { + if (!utils.areObjectsEqual(newState.channels, this.state.channels)) { this.setState(newState); } } handleJoin(channel, channelIndex) { this.setState({joiningChannel: channelIndex}); client.joinChannel(channel.id, - function joinSuccess() { + () => { $(ReactDOM.findDOMNode(this.refs.modal)).modal('hide'); - asyncClient.getChannel(channel.id); + AsyncClient.getChannel(channel.id); utils.switchChannel(channel); this.setState({joiningChannel: -1}); - }.bind(this), - function joinFail(err) { + }, + (err) => { this.setState({joiningChannel: -1, serverError: err.message}); - }.bind(this) + } ); } handleNewChannel() { diff --git a/web/react/components/more_direct_channels.jsx b/web/react/components/more_direct_channels.jsx index d1265f67e..3661b19e6 100644 --- a/web/react/components/more_direct_channels.jsx +++ b/web/react/components/more_direct_channels.jsx @@ -2,8 +2,8 @@ // See License.txt for license information. const Modal = ReactBootstrap.Modal; -const UserStore = require('../stores/user_store.jsx'); -const Utils = require('../utils/utils.jsx'); +import UserStore from '../stores/user_store.jsx'; +import * as Utils from '../utils/utils.jsx'; export default class MoreDirectChannels extends React.Component { constructor(props) { @@ -47,6 +47,21 @@ export default class MoreDirectChannels extends React.Component { UserStore.addChangeListener(this.handleUserChange); } + componentDidUpdate(prevProps) { + if (!prevProps.show && this.props.show) { + this.onShow(); + } + } + + onShow() { + if (Utils.isMobile()) { + $(ReactDOM.findDOMNode(this.refs.userList)).css('max-height', $(window).height() - 250); + } else { + $(ReactDOM.findDOMNode(this.refs.userList)).perfectScrollbar(); + $(ReactDOM.findDOMNode(this.refs.userList)).css('max-height', $(window).height() - 300); + } + } + handleFilterChange() { const filter = ReactDOM.findDOMNode(this.refs.filter).value; @@ -164,15 +179,6 @@ export default class MoreDirectChannels extends React.Component { ); } - componentDidUpdate(prevProps) { - if (!prevProps.show && this.props.show) { - $(ReactDOM.findDOMNode(this.refs.userList)).css('max-height', $(window).height() - 300); - if ($(window).width() > 768) { - $(ReactDOM.findDOMNode(this.refs.userList)).perfectScrollbar(); - } - } - } - render() { if (!this.props.show) { return null; @@ -217,8 +223,8 @@ export default class MoreDirectChannels extends React.Component { <Modal.Header closeButton={true}> <Modal.Title>{'Direct Messages'}</Modal.Title> </Modal.Header> - <Modal.Body> - <div className='row filter-row'> + <Modal.Body ref='modalBody'> + <div className='filter-row'> <div className='col-sm-6'> <input ref='filter' diff --git a/web/react/components/msg_typing.jsx b/web/react/components/msg_typing.jsx index ccf8a2445..78b67a216 100644 --- a/web/react/components/msg_typing.jsx +++ b/web/react/components/msg_typing.jsx @@ -1,10 +1,10 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const SocketStore = require('../stores/socket_store.jsx'); -const UserStore = require('../stores/user_store.jsx'); +import SocketStore from '../stores/socket_store.jsx'; +import UserStore from '../stores/user_store.jsx'; -const Constants = require('../utils/constants.jsx'); +import Constants from '../utils/constants.jsx'; const SocketEvents = Constants.SocketEvents; export default class MsgTyping extends React.Component { @@ -74,11 +74,12 @@ export default class MsgTyping extends React.Component { case 1: text = users[0] + ' is typing...'; break; - default: + default: { const last = users.pop(); text = users.join(', ') + ' and ' + last + ' are typing...'; break; } + } this.setState({text}); } diff --git a/web/react/components/navbar.jsx b/web/react/components/navbar.jsx index af29f219e..ae14fca2f 100644 --- a/web/react/components/navbar.jsx +++ b/web/react/components/navbar.jsx @@ -1,23 +1,28 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const EditChannelPurposeModal = require('./edit_channel_purpose_modal.jsx'); -const MessageWrapper = require('./message_wrapper.jsx'); -const NotifyCounts = require('./notify_counts.jsx'); -const ChannelMembersModal = require('./channel_members_modal.jsx'); -const ChannelInviteModal = require('./channel_invite_modal.jsx'); +import EditChannelHeaderModal from './edit_channel_header_modal.jsx'; +import EditChannelPurposeModal from './edit_channel_purpose_modal.jsx'; +import MessageWrapper from './message_wrapper.jsx'; +import NotifyCounts from './notify_counts.jsx'; +import ChannelMembersModal from './channel_members_modal.jsx'; +import ChannelInfoModal from './channel_info_modal.jsx'; +import ChannelInviteModal from './channel_invite_modal.jsx'; +import ChannelNotificationsModal from './channel_notifications_modal.jsx'; +import DeleteChannelModal from './delete_channel_modal.jsx'; +import ToggleModalButton from './toggle_modal_button.jsx'; -const UserStore = require('../stores/user_store.jsx'); -const ChannelStore = require('../stores/channel_store.jsx'); -const TeamStore = require('../stores/team_store.jsx'); +import UserStore from '../stores/user_store.jsx'; +import ChannelStore from '../stores/channel_store.jsx'; +import TeamStore from '../stores/team_store.jsx'; -const Client = require('../utils/client.jsx'); -const AsyncClient = require('../utils/async_client.jsx'); -const Utils = require('../utils/utils.jsx'); +import * as Client from '../utils/client.jsx'; +import * as AsyncClient from '../utils/async_client.jsx'; +import * as Utils from '../utils/utils.jsx'; -const Constants = require('../utils/constants.jsx'); +import Constants from '../utils/constants.jsx'; const ActionTypes = Constants.ActionTypes; -const AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; const Popover = ReactBootstrap.Popover; const OverlayTrigger = ReactBootstrap.OverlayTrigger; @@ -28,13 +33,17 @@ export default class Navbar extends React.Component { this.onChange = this.onChange.bind(this); this.handleLeave = this.handleLeave.bind(this); + this.showSearch = this.showSearch.bind(this); + + this.showEditChannelHeaderModal = this.showEditChannelHeaderModal.bind(this); + this.createCollapseButtons = this.createCollapseButtons.bind(this); this.createDropdown = this.createDropdown.bind(this); const state = this.getStateFromStores(); state.showEditChannelPurposeModal = false; + state.showEditChannelHeaderModal = false; state.showMembersModal = false; - state.showInviteModal = false; this.state = state; } getStateFromStores() { @@ -96,23 +105,36 @@ export default class Navbar extends React.Component { $('.inner__wrap').toggleClass('move--left-small'); $('.sidebar--menu').toggleClass('move--left'); } + showSearch() { + AppDispatcher.handleServerAction({ + type: ActionTypes.SHOW_SEARCH + }); + } onChange() { this.setState(this.getStateFromStores()); $('#navbar .navbar-brand .description').popover({placement: 'bottom', trigger: 'click', html: true}); } + showEditChannelHeaderModal() { + // this can't be done using a ToggleModalButton because we can't use one inside an OverlayTrigger + if (this.refs.headerOverlay) { + this.refs.headerOverlay.hide(); + } + + this.setState({ + showEditChannelHeaderModal: true + }); + } createDropdown(channel, channelTitle, isAdmin, isDirect, popoverContent) { if (channel) { var viewInfoOption = ( <li role='presentation'> - <a + <ToggleModalButton role='menuitem' - data-toggle='modal' - data-target='#channel_info' - data-channelid={channel.id} - href='#' + dialogType={ChannelInfoModal} + dialogProps={{channel}} > {'View Info'} - </a> + </ToggleModalButton> </li> ); @@ -121,11 +143,7 @@ export default class Navbar extends React.Component { <a role='menuitem' href='#' - data-toggle='modal' - data-target='#edit_channel' - data-header={channel.header} - data-title={channel.display_name} - data-channelid={channel.id} + onClick={this.showEditChannelHeaderModal} > {'Set Channel Header...'} </a> @@ -152,13 +170,13 @@ export default class Navbar extends React.Component { if (!isDirect && !ChannelStore.isDefault(channel)) { addMembersOption = ( <li role='presentation'> - <a + <ToggleModalButton role='menuitem' - href='#' - onClick={() => this.setState({showInviteModal: false})} + dialogType={ChannelInviteModal} + dialogProps={{channel}} > {'Add Members'} - </a> + </ToggleModalButton> </li> ); @@ -178,18 +196,32 @@ export default class Navbar extends React.Component { var manageMembersOption; var renameChannelOption; var deleteChannelOption; - if (!isDirect && isAdmin && !ChannelStore.isDefault(channel)) { - manageMembersOption = ( - <li role='presentation'> - <a - role='menuitem' - href='#' - onClick={() => this.setState({showMembersModal: true})} - > - {'Manage Members'} - </a> - </li> - ); + if (!isDirect && isAdmin) { + if (!ChannelStore.isDefault(channel)) { + manageMembersOption = ( + <li role='presentation'> + <a + role='menuitem' + href='#' + onClick={() => this.setState({showMembersModal: true})} + > + {'Manage Members'} + </a> + </li> + ); + + deleteChannelOption = ( + <li role='presentation'> + <ToggleModalButton + role='menuitem' + dialogType={DeleteChannelModal} + dialogProps={{channel}} + > + {'Delete Channel...'} + </ToggleModalButton> + </li> + ); + } renameChannelOption = ( <li role='presentation'> @@ -206,37 +238,19 @@ export default class Navbar extends React.Component { </a> </li> ); - - deleteChannelOption = ( - <li role='presentation'> - <a - role='menuitem' - href='#' - data-toggle='modal' - data-target='#delete_channel' - data-title={channel.display_name} - data-channelid={channel.id} - > - {'Delete Channel...'} - </a> - </li> - ); } var notificationPreferenceOption; if (!isDirect) { notificationPreferenceOption = ( <li role='presentation'> - <a + <ToggleModalButton role='menuitem' - href='#' - data-toggle='modal' - data-target='#channel_notifications' - data-title={channel.display_name} - data-channelid={channel.id} + dialogType={ChannelNotificationsModal} + dialogProps={{channel}} > {'Notification Preferences'} - </a> + </ToggleModalButton> </li> ); } @@ -245,6 +259,7 @@ export default class Navbar extends React.Component { <div className='navbar-brand'> <div className='dropdown'> <OverlayTrigger + ref='headerOverlay' trigger='click' placement='bottom' overlay={popoverContent} @@ -257,7 +272,6 @@ export default class Navbar extends React.Component { href='#' className='dropdown-toggle theme' type='button' - id='channel_header_dropdown' data-toggle='dropdown' aria-expanded='true' > @@ -267,7 +281,6 @@ export default class Navbar extends React.Component { <ul className='dropdown-menu' role='menu' - aria-labelledby='channel_header_dropdown' > {viewInfoOption} {addMembersOption} @@ -354,6 +367,9 @@ export default class Navbar extends React.Component { var isAdmin = false; var isDirect = false; + var editChannelHeaderModal = null; + var editChannelPurposeModal = null; + if (channel) { popoverContent = ( <Popover @@ -396,11 +412,7 @@ export default class Navbar extends React.Component { <br/> <a href='#' - data-toggle='modal' - data-header={channel.header} - data-title={channel.display_name} - data-channelid={channel.id} - data-target='#edit_channel' + onClick={this.showEditChannelHeaderModal} > {'Click here'} </a> @@ -409,10 +421,36 @@ export default class Navbar extends React.Component { </Popover> ); } + + editChannelHeaderModal = ( + <EditChannelHeaderModal + show={this.state.showEditChannelHeaderModal} + onHide={() => this.setState({showEditChannelHeaderModal: false})} + channel={channel} + /> + ); + + editChannelPurposeModal = ( + <EditChannelPurposeModal + show={this.state.showEditChannelPurposeModal} + onModalDismissed={() => this.setState({showEditChannelPurposeModal: false})} + channel={channel} + /> + ); } var collapseButtons = this.createCollapseButtons(currentId); + const searchButton = ( + <button + type='button' + className='navbar-toggle pull-right' + onClick={this.showSearch} + > + <span className='glyphicon glyphicon-search icon--white' /> + </button> + ); + var channelMenuDropdown = this.createDropdown(channel, channelTitle, isAdmin, isDirect, popoverContent); return ( @@ -424,22 +462,17 @@ export default class Navbar extends React.Component { <div className='container-fluid theme'> <div className='navbar-header'> {collapseButtons} + {searchButton} {channelMenuDropdown} </div> </div> </nav> - <EditChannelPurposeModal - show={this.state.showEditChannelPurposeModal} - onModalDismissed={() => this.setState({showEditChannelPurposeModal: false})} - channel={channel} - /> + {editChannelHeaderModal} + {editChannelPurposeModal} <ChannelMembersModal show={this.state.showMembersModal} onModalDismissed={() => this.setState({showMembersModal: false})} - /> - <ChannelInviteModal - show={this.state.showInviteModal} - onModalDismissed={() => this.setState({showInviteModal: false})} + channel={{channel}} /> </div> ); diff --git a/web/react/components/navbar_dropdown.jsx b/web/react/components/navbar_dropdown.jsx index 0b755f377..d4ec5a5f5 100644 --- a/web/react/components/navbar_dropdown.jsx +++ b/web/react/components/navbar_dropdown.jsx @@ -1,16 +1,18 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Utils = require('../utils/utils.jsx'); -var client = require('../utils/client.jsx'); -var UserStore = require('../stores/user_store.jsx'); -var TeamStore = require('../stores/team_store.jsx'); +import * as Utils from '../utils/utils.jsx'; +import * as client from '../utils/client.jsx'; +import UserStore from '../stores/user_store.jsx'; +import TeamStore from '../stores/team_store.jsx'; +import * as EventHelpers from '../dispatcher/event_helpers.jsx'; -var AboutBuildModal = require('./about_build_modal.jsx'); -var InviteMemberModal = require('./invite_member_modal.jsx'); -var UserSettingsModal = require('./user_settings/user_settings_modal.jsx'); +import AboutBuildModal from './about_build_modal.jsx'; +import TeamMembersModal from './team_members_modal.jsx'; +import ToggleModalButton from './toggle_modal_button.jsx'; +import UserSettingsModal from './user_settings/user_settings_modal.jsx'; -var Constants = require('../utils/constants.jsx'); +import Constants from '../utils/constants.jsx'; function getStateFromStores() { const teams = []; @@ -70,7 +72,7 @@ export default class NavbarDropdown extends React.Component { } onListenerChange() { var newState = getStateFromStores(); - if (!Utils.areStatesEqual(newState, this.state)) { + if (!Utils.areObjectsEqual(newState, this.state)) { this.setState(newState); } } @@ -93,7 +95,7 @@ export default class NavbarDropdown extends React.Component { <li> <a href='#' - onClick={InviteMemberModal.show} + onClick={EventHelpers.showInviteMemberModal} > {'Invite New Member'} </a> @@ -105,10 +107,7 @@ export default class NavbarDropdown extends React.Component { <li> <a href='#' - data-toggle='modal' - data-target='#get_link' - data-title='Team Invite' - data-value={Utils.getWindowLocationOrigin() + '/signup_user_complete/?id=' + TeamStore.getCurrent().invite_id} + onClick={EventHelpers.showGetTeamInviteLinkModal} > {'Get Team Invite Link'} </a> @@ -120,13 +119,9 @@ export default class NavbarDropdown extends React.Component { if (isAdmin) { manageLink = ( <li> - <a - href='#' - data-toggle='modal' - data-target='#team_members' - > + <ToggleModalButton dialogType={TeamMembersModal}> {'Manage Members'} - </a> + </ToggleModalButton> </li> ); @@ -189,6 +184,34 @@ export default class NavbarDropdown extends React.Component { ); } + let helpLink = null; + if (global.window.mm_config.HelpLink) { + helpLink = ( + <li> + <a + target='_blank' + href={global.window.mm_config.HelpLink} + > + {'Help'} + </a> + </li> + ); + } + + let reportLink = null; + if (global.window.mm_config.ReportAProblemLink) { + reportLink = ( + <li> + <a + target='_blank' + href={global.window.mm_config.ReportAProblemLink} + > + {'Report a Problem'} + </a> + </li> + ); + } + return ( <ul className='nav navbar-nav navbar-right'> <li @@ -235,22 +258,8 @@ export default class NavbarDropdown extends React.Component { {sysAdminLink} {teams} <li className='divider'></li> - <li> - <a - target='_blank' - href='/static/help/help.html' - > - {'Help'} - </a> - </li> - <li> - <a - target='_blank' - href='/static/help/report_problem.html' - > - {'Report a Problem'} - </a> - </li> + {helpLink} + {reportLink} <li> <a href='#' diff --git a/web/react/components/new_channel_flow.jsx b/web/react/components/new_channel_flow.jsx index d6280d118..3a114aa19 100644 --- a/web/react/components/new_channel_flow.jsx +++ b/web/react/components/new_channel_flow.jsx @@ -1,13 +1,13 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Utils = require('../utils/utils.jsx'); -var AsyncClient = require('../utils/async_client.jsx'); -var Client = require('../utils/client.jsx'); -var UserStore = require('../stores/user_store.jsx'); +import * as Utils from '../utils/utils.jsx'; +import * as AsyncClient from '../utils/async_client.jsx'; +import * as Client from '../utils/client.jsx'; +import UserStore from '../stores/user_store.jsx'; -var NewChannelModal = require('./new_channel_modal.jsx'); -var ChangeURLModal = require('./change_url_modal.jsx'); +import NewChannelModal from './new_channel_modal.jsx'; +import ChangeURLModal from './change_url_modal.jsx'; const SHOW_NEW_CHANNEL = 1; const SHOW_EDIT_URL = 2; diff --git a/web/react/components/new_channel_modal.jsx b/web/react/components/new_channel_modal.jsx index c0cea496f..70fe10eef 100644 --- a/web/react/components/new_channel_modal.jsx +++ b/web/react/components/new_channel_modal.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const Utils = require('../utils/utils.jsx'); +import * as Utils from '../utils/utils.jsx'; var Modal = ReactBootstrap.Modal; export default class NewChannelModal extends React.Component { @@ -115,7 +115,7 @@ export default class NewChannelModal extends React.Component { type='text' ref='display_name' className='form-control' - placeholder='Ex: "Bugs", "Marketing", "办公室æ‹æƒ…"' + placeholder='E.g.: "Bugs", "Marketing", "办公室æ‹æƒ…"' maxLength='22' value={this.props.channelData.displayName} autoFocus={true} diff --git a/web/react/components/notify_counts.jsx b/web/react/components/notify_counts.jsx index 54b9e4289..19b81556b 100644 --- a/web/react/components/notify_counts.jsx +++ b/web/react/components/notify_counts.jsx @@ -1,8 +1,8 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var utils = require('../utils/utils.jsx'); -var ChannelStore = require('../stores/channel_store.jsx'); +import * as utils from '../utils/utils.jsx'; +import ChannelStore from '../stores/channel_store.jsx'; function getCountsStateFromStores() { var count = 0; @@ -39,7 +39,7 @@ export default class NotifyCounts extends React.Component { } onListenerChange() { var newState = getCountsStateFromStores(); - if (!utils.areStatesEqual(newState, this.state)) { + if (!utils.areObjectsEqual(newState, this.state)) { this.setState(newState); } } diff --git a/web/react/components/password_reset.jsx b/web/react/components/password_reset.jsx index 54d126144..4c9bb6310 100644 --- a/web/react/components/password_reset.jsx +++ b/web/react/components/password_reset.jsx @@ -1,8 +1,8 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var PasswordResetSendLink = require('./password_reset_send_link.jsx'); -var PasswordResetForm = require('./password_reset_form.jsx'); +import PasswordResetSendLink from './password_reset_send_link.jsx'; +import PasswordResetForm from './password_reset_form.jsx'; export default class PasswordReset extends React.Component { constructor(props) { diff --git a/web/react/components/password_reset_form.jsx b/web/react/components/password_reset_form.jsx index b452c40b7..812911569 100644 --- a/web/react/components/password_reset_form.jsx +++ b/web/react/components/password_reset_form.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var client = require('../utils/client.jsx'); +import * as client from '../utils/client.jsx'; export default class PasswordResetForm extends React.Component { constructor(props) { diff --git a/web/react/components/password_reset_send_link.jsx b/web/react/components/password_reset_send_link.jsx index 8f1890705..051b8b02c 100644 --- a/web/react/components/password_reset_send_link.jsx +++ b/web/react/components/password_reset_send_link.jsx @@ -1,8 +1,8 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const Utils = require('../utils/utils.jsx'); -var client = require('../utils/client.jsx'); +import * as Utils from '../utils/utils.jsx'; +import * as client from '../utils/client.jsx'; export default class PasswordResetSendLink extends React.Component { constructor(props) { diff --git a/web/react/components/popover_list_members.jsx b/web/react/components/popover_list_members.jsx index f3c0fa0b4..f4cb542e4 100644 --- a/web/react/components/popover_list_members.jsx +++ b/web/react/components/popover_list_members.jsx @@ -1,12 +1,13 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var UserStore = require('../stores/user_store.jsx'); +import UserStore from '../stores/user_store.jsx'; var Popover = ReactBootstrap.Popover; var Overlay = ReactBootstrap.Overlay; -const Utils = require('../utils/utils.jsx'); +import * as Utils from '../utils/utils.jsx'; +import Constants from '../utils/constants.jsx'; -const ChannelStore = require('../stores/channel_store.jsx'); +import ChannelStore from '../stores/channel_store.jsx'; export default class PopoverListMembers extends React.Component { constructor(props) { @@ -68,9 +69,7 @@ export default class PopoverListMembers extends React.Component { } render() { - let popoverHtml = []; - let count = 0; - let countText = '-'; + const popoverHtml = []; const members = this.props.members; const teamMembers = UserStore.getProfilesUsernameMap(); const currentUserId = UserStore.getCurrentId(); @@ -78,35 +77,13 @@ export default class PopoverListMembers extends React.Component { if (members && teamMembers) { members.sort((a, b) => { - return a.username.localeCompare(b.username); + const aName = Utils.displayUsername(a.id); + const bName = Utils.displayUsername(b.id); + + return aName.localeCompare(bName); }); members.forEach((m, i) => { - const details = []; - - const fullName = Utils.getFullName(m); - if (fullName) { - details.push( - <span - key={`${m.id}__full-name`} - className='full-name' - > - {fullName} - </span> - ); - } - - if (m.nickname) { - const separator = fullName ? ' - ' : ''; - details.push( - <span - key={`${m.nickname}__nickname`} - > - {separator + m.nickname} - </span> - ); - } - let button = ''; if (currentUserId !== m.id && ch.type !== 'D') { button = ( @@ -120,7 +97,12 @@ export default class PopoverListMembers extends React.Component { ); } - if (teamMembers[m.username] && teamMembers[m.username].delete_at <= 0) { + let name = ''; + if (teamMembers[m.username]) { + name = Utils.displayUsername(teamMembers[m.username].id); + } + + if (name && teamMembers[m.username].delete_at <= 0) { popoverHtml.push( <div className='text-nowrap' @@ -137,7 +119,7 @@ export default class PopoverListMembers extends React.Component { <div className='more-name' > - {m.username} + {name} </div> </div> <div @@ -147,15 +129,22 @@ export default class PopoverListMembers extends React.Component { </div> </div> ); - count++; } }); + } - if (count > 20) { - countText = '20+'; - } else if (count > 0) { - countText = count.toString(); - } + let count = this.props.memberCount; + let countText = '-'; + + // fall back to checking the length of the member list if the count isn't set + if (!count && members) { + count = members.length; + } + + if (count > Constants.MAX_CHANNEL_POPOVER_COUNT) { + countText = Constants.MAX_CHANNEL_POPOVER_COUNT + '+'; + } else if (count > 0) { + countText = count.toString(); } return ( @@ -195,5 +184,6 @@ export default class PopoverListMembers extends React.Component { PopoverListMembers.propTypes = { members: React.PropTypes.array.isRequired, + memberCount: React.PropTypes.number, channelId: React.PropTypes.string.isRequired }; diff --git a/web/react/components/post.jsx b/web/react/components/post.jsx index c3c5b3e0b..695d7daef 100644 --- a/web/react/components/post.jsx +++ b/web/react/components/post.jsx @@ -1,19 +1,17 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var PostHeader = require('./post_header.jsx'); -var PostBody = require('./post_body.jsx'); -var AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -var Constants = require('../utils/constants.jsx'); -var UserStore = require('../stores/user_store.jsx'); -var PostStore = require('../stores/post_store.jsx'); -var ChannelStore = require('../stores/channel_store.jsx'); -var client = require('../utils/client.jsx'); -var AsyncClient = require('../utils/async_client.jsx'); +import PostHeader from './post_header.jsx'; +import PostBody from './post_body.jsx'; +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import Constants from '../utils/constants.jsx'; +import UserStore from '../stores/user_store.jsx'; +import PostStore from '../stores/post_store.jsx'; +import ChannelStore from '../stores/channel_store.jsx'; +import * as client from '../utils/client.jsx'; +import * as AsyncClient from '../utils/async_client.jsx'; var ActionTypes = Constants.ActionTypes; -var utils = require('../utils/utils.jsx'); - -var PostInfo = require('./post_info.jsx'); +import * as utils from '../utils/utils.jsx'; export default class Post extends React.Component { constructor(props) { @@ -77,7 +75,7 @@ export default class Post extends React.Component { this.forceUpdate(); } shouldComponentUpdate(nextProps) { - if (!utils.areStatesEqual(nextProps.post, this.props.post)) { + if (!utils.areObjectsEqual(nextProps.post, this.props.post)) { return true; } @@ -89,10 +87,18 @@ export default class Post extends React.Component { return true; } + if (nextProps.displayNameType !== this.props.displayNameType) { + return true; + } + if (this.getCommentCount(nextProps) !== this.getCommentCount(this.props)) { return true; } + if (nextProps.shouldHighlight !== this.props.shouldHighlight) { + return true; + } + return false; } getCommentCount(props) { @@ -107,7 +113,7 @@ export default class Post extends React.Component { } else { commentRootId = post.id; } - for (let postId in posts) { + for (const postId in posts) { if (posts[postId].root_id === commentRootId) { commentCount += 1; } @@ -116,68 +122,79 @@ export default class Post extends React.Component { return commentCount; } render() { - var post = this.props.post; - var parentPost = this.props.parentPost; - var posts = this.props.posts; + const post = this.props.post; + const parentPost = this.props.parentPost; + const posts = this.props.posts; if (!post.props) { post.props = {}; } - var type = 'Post'; + let type = 'Post'; if (post.root_id && post.root_id.length > 0) { type = 'Comment'; } const commentCount = this.getCommentCount(this.props); - var rootUser; + let rootUser; if (this.props.sameRoot) { rootUser = 'same--root'; } else { rootUser = 'other--root'; } - var postType = ''; + let postType = ''; if (type !== 'Post') { postType = 'post--comment'; + } else if (commentCount > 0) { + postType = 'post--root'; } - var currentUserCss = ''; - if (UserStore.getCurrentId() === post.user_id && !post.props.from_webhook) { + let currentUserCss = ''; + if (UserStore.getCurrentId() === post.user_id && !post.props.from_webhook && !utils.isSystemMessage(post)) { currentUserCss = 'current--user'; } - var userProfile = UserStore.getProfile(post.user_id); + const userProfile = UserStore.getProfile(post.user_id); - var timestamp = UserStore.getCurrentUser().update_at; + let timestamp = UserStore.getCurrentUser().update_at; if (userProfile) { timestamp = userProfile.update_at; } - var sameUserClass = ''; + let sameUserClass = ''; if (this.props.sameUser) { sameUserClass = 'same--user'; } - var profilePic = null; + let shouldHighlightClass = ''; + if (this.props.shouldHighlight) { + shouldHighlightClass = 'post--highlight'; + } + + let systemMessageClass = ''; + if (utils.isSystemMessage(post)) { + systemMessageClass = 'post--system'; + } + + let profilePic = null; if (!this.props.hideProfilePic) { let src = '/api/v1/users/' + post.user_id + '/image?time=' + timestamp + '&' + utils.getSessionIndex(); if (post.props && post.props.from_webhook && global.window.mm_config.EnablePostIconOverride === 'true') { if (post.props.override_icon_url) { src = post.props.override_icon_url; } + } else if (utils.isSystemMessage(post)) { + src = Constants.SYSTEM_MESSAGE_PROFILE_IMAGE; } profilePic = ( - <div className='post-profile-img__container'> - <img - className='post-profile-img' - src={src} - height='36' - width='36' - /> - </div> + <img + src={src} + height='36' + width='36' + /> ); } @@ -185,34 +202,28 @@ export default class Post extends React.Component { <div> <div id={'post_' + post.id} - className={'post ' + sameUserClass + ' ' + rootUser + ' ' + postType + ' ' + currentUserCss} + className={'post ' + sameUserClass + ' ' + rootUser + ' ' + postType + ' ' + currentUserCss + ' ' + shouldHighlightClass + ' ' + systemMessageClass} > - {profilePic} <div className='post__content'> - <PostHeader - ref='header' - post={post} - sameRoot={this.props.sameRoot} - commentCount={commentCount} - handleCommentClick={this.handleCommentClick} - isLastComment={this.props.isLastComment} - /> - <PostBody - post={post} - sameRoot={this.props.sameRoot} - parentPost={parentPost} - posts={posts} - handleCommentClick={this.handleCommentClick} - retryPost={this.retryPost} - /> - <PostInfo - ref='info' - post={post} - sameRoot={this.props.sameRoot} - commentCount={commentCount} - handleCommentClick={this.handleCommentClick} - allowReply='true' - /> + <div className='post__img'>{profilePic}</div> + <div> + <PostHeader + ref='header' + post={post} + sameRoot={this.props.sameRoot} + commentCount={commentCount} + handleCommentClick={this.handleCommentClick} + isLastComment={this.props.isLastComment} + /> + <PostBody + post={post} + sameRoot={this.props.sameRoot} + parentPost={parentPost} + posts={posts} + handleCommentClick={this.handleCommentClick} + retryPost={this.retryPost} + /> + </div> </div> </div> </div> @@ -227,5 +238,7 @@ Post.propTypes = { sameUser: React.PropTypes.bool, sameRoot: React.PropTypes.bool, hideProfilePic: React.PropTypes.bool, - isLastComment: React.PropTypes.bool + isLastComment: React.PropTypes.bool, + shouldHighlight: React.PropTypes.bool, + displayNameType: React.PropTypes.string }; diff --git a/web/react/components/post_attachment.jsx b/web/react/components/post_attachment.jsx index cf65dfbfb..676bc91af 100644 --- a/web/react/components/post_attachment.jsx +++ b/web/react/components/post_attachment.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const TextFormatting = require('../utils/text_formatting.jsx'); +import * as TextFormatting from '../utils/text_formatting.jsx'; export default class PostAttachment extends React.Component { constructor(props) { diff --git a/web/react/components/post_attachment_list.jsx b/web/react/components/post_attachment_list.jsx index 03b866656..9c6700e2d 100644 --- a/web/react/components/post_attachment_list.jsx +++ b/web/react/components/post_attachment_list.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const PostAttachment = require('./post_attachment.jsx'); +import PostAttachment from './post_attachment.jsx'; export default class PostAttachmentList extends React.Component { constructor(props) { diff --git a/web/react/components/post_attachment_oembed.jsx b/web/react/components/post_attachment_oembed.jsx new file mode 100644 index 000000000..4b12ee95e --- /dev/null +++ b/web/react/components/post_attachment_oembed.jsx @@ -0,0 +1,103 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +export default class PostAttachmentOEmbed extends React.Component { + constructor(props) { + super(props); + this.fetchData = this.fetchData.bind(this); + + this.isLoading = false; + } + + componentWillMount() { + this.setState({data: {}}); + } + + componentWillReceiveProps(nextProps) { + if (nextProps.link !== this.props.link) { + this.isLoading = false; + this.fetchData(nextProps.link); + } + } + + componentDidMount() { + this.fetchData(this.props.link); + } + + fetchData(link) { + if (!this.isLoading) { + this.isLoading = true; + let url = 'https://noembed.com/embed?nowrap=on'; + url += '&url=' + encodeURIComponent(link); + url += '&maxheight=' + this.props.provider.height; + return $.ajax({ + url, + dataType: 'jsonp', + success: (result) => { + this.isLoading = false; + if (result.error) { + this.setState({data: {}}); + } else { + this.setState({data: result}); + } + }, + error: () => { + this.setState({data: {}}); + } + }); + } + } + + render() { + let data = {}; + let content; + if ($.isEmptyObject(this.state.data)) { + content = <div style={{height: this.props.provider.height}}/>; + } else { + data = this.state.data; + content = ( + <div + style={{height: this.props.provider.height}} + dangerouslySetInnerHTML={{__html: data.html}} + /> + ); + } + + return ( + <div + className='attachment attachment--oembed' + ref='attachment' + > + <div className='attachment__content'> + <div + className={'clearfix attachment__container'} + > + <h1 + className='attachment__title' + > + <a + className='attachment__title-link' + href={data.url} + target='_blank' + > + {data.title} + </a> + </h1> + <div > + <div + className={'attachment__body attachment__body--no_thumb'} + > + {content} + </div> + </div> + </div> + </div> + </div> + ); + } +} + +PostAttachmentOEmbed.propTypes = { + link: React.PropTypes.string.isRequired, + provider: React.PropTypes.object.isRequired +}; diff --git a/web/react/components/post_body.jsx b/web/react/components/post_body.jsx index 61a0c3e2d..dcbe56399 100644 --- a/web/react/components/post_body.jsx +++ b/web/react/components/post_body.jsx @@ -1,26 +1,30 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const FileAttachmentList = require('./file_attachment_list.jsx'); -const UserStore = require('../stores/user_store.jsx'); -const Utils = require('../utils/utils.jsx'); -const Constants = require('../utils/constants.jsx'); -const TextFormatting = require('../utils/text_formatting.jsx'); -const twemoji = require('twemoji'); -const PostBodyAdditionalContent = require('./post_body_additional_content.jsx'); +import FileAttachmentList from './file_attachment_list.jsx'; +import UserStore from '../stores/user_store.jsx'; +import * as Utils from '../utils/utils.jsx'; +import * as Emoji from '../utils/emoticons.jsx'; +import Constants from '../utils/constants.jsx'; +const PreReleaseFeatures = Constants.PRE_RELEASE_FEATURES; +import * as TextFormatting from '../utils/text_formatting.jsx'; +import twemoji from 'twemoji'; +import PostBodyAdditionalContent from './post_body_additional_content.jsx'; + +import providers from './providers.json'; export default class PostBody extends React.Component { constructor(props) { super(props); this.receivedYoutubeData = false; - this.isGifLoading = false; + this.isImgLoading = false; this.handleUserChange = this.handleUserChange.bind(this); this.parseEmojis = this.parseEmojis.bind(this); this.createEmbed = this.createEmbed.bind(this); - this.createGifEmbed = this.createGifEmbed.bind(this); - this.loadGif = this.loadGif.bind(this); + this.createImageEmbed = this.createImageEmbed.bind(this); + this.loadImg = this.loadImg.bind(this); this.createYoutubeEmbed = this.createYoutubeEmbed.bind(this); const linkData = Utils.extractLinks(this.props.post.message); @@ -29,6 +33,7 @@ export default class PostBody extends React.Component { this.state = { links: linkData.links, message: linkData.text, + post: this.props.post, hasUserProfiles: profiles && Object.keys(profiles).length > 1 }; } @@ -49,7 +54,17 @@ export default class PostBody extends React.Component { } parseEmojis() { - twemoji.parse(ReactDOM.findDOMNode(this), {size: Constants.EMOJI_SIZE}); + twemoji.parse(ReactDOM.findDOMNode(this), { + className: 'emoji twemoji', + base: '', + folder: Emoji.getImagePathForEmoticon() + }); + } + + componentWillMount() { + if (this.props.post.filenames.length === 0 && this.state.links && this.state.links.length > 0) { + this.embed = this.createEmbed(this.state.links[0]); + } } componentDidMount() { @@ -76,47 +91,86 @@ export default class PostBody extends React.Component { componentWillReceiveProps(nextProps) { const linkData = Utils.extractLinks(nextProps.post.message); + if (this.props.post.filenames.length === 0 && this.state.links && this.state.links.length > 0) { + this.embed = this.createEmbed(linkData.links[0]); + } this.setState({links: linkData.links, message: linkData.text}); } createEmbed(link) { - let embed = this.createYoutubeEmbed(link); + const post = this.state.post; + + if (!link) { + if (post.type === 'oEmbed') { + post.props.oEmbedLink = ''; + post.type = ''; + } + return null; + } + + const trimmedLink = link.trim(); + + if (Utils.isFeatureEnabled(PreReleaseFeatures.EMBED_PREVIEW)) { + const provider = this.getOembedProvider(trimmedLink); + if (provider != null) { + post.props.oEmbedLink = trimmedLink; + post.type = 'oEmbed'; + this.setState({post, provider}); + return ''; + } + } + + const embed = this.createYoutubeEmbed(link); if (embed != null) { return embed; } - embed = this.createGifEmbed(link); + for (let i = 0; i < Constants.IMAGE_TYPES.length; i++) { + const imageType = Constants.IMAGE_TYPES[i]; + const suffix = link.substring(link.length - (imageType.length + 1)); + if (suffix === '.' + imageType || suffix === '=' + imageType) { + return this.createImageEmbed(link, this.state.imgLoaded); + } + } + + return null; + } - return embed; + getOembedProvider(link) { + for (let i = 0; i < providers.length; i++) { + for (let j = 0; j < providers[i].patterns.length; j++) { + if (link.match(providers[i].patterns[j])) { + return providers[i]; + } + } + } + return null; } - loadGif(src) { - if (this.isGifLoading) { + loadImg(src) { + if (this.isImgLoading) { return; } - this.isGifLoading = true; + this.isImgLoading = true; - const gif = new Image(); - gif.onload = ( + const img = new Image(); + img.onload = ( () => { - this.setState({gifLoaded: true}); + this.embed = this.createImageEmbed(src, true); + this.setState({imgLoaded: true}); } ); - gif.src = src; + img.src = src; } - createGifEmbed(link) { - if (link.substring(link.length - 4) !== '.gif') { - return null; - } - - if (!this.state.gifLoaded) { - this.loadGif(link); + createImageEmbed(link, isLoaded) { + if (!isLoaded) { + this.loadImg(link); return ( <img - className='gif-div placeholder' + className='img-div placeholder' height='500px' /> ); @@ -124,7 +178,7 @@ export default class PostBody extends React.Component { return ( <img - className='gif-div' + className='img-div' src={link} /> ); @@ -133,7 +187,7 @@ export default class PostBody extends React.Component { handleYoutubeTime(link) { const timeRegex = /[\\?&]t=([0-9hms]+)/; - const time = link.trim().match(timeRegex); + const time = link.match(timeRegex); if (!time || !time[1]) { return ''; } @@ -160,14 +214,14 @@ export default class PostBody extends React.Component { } createYoutubeEmbed(link) { - const ytRegex = /.*(?:youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|watch\?(?:[a-zA-Z-_]+=[a-zA-Z0-9-_]+&)+v=)([^#\&\?]*).*/; + const ytRegex = /(?:http|https):\/\/(?:www\.)?(?:(?:youtube\.com\/(?:(?:v\/)|(\/u\/\w\/)|(?:(?:watch|embed\/watch)(?:\/|.*v=))|(?:embed\/)|(?:user\/[^\/]+\/u\/[0-9]\/)))|(?:youtu\.be\/))([^#\&\?]*)/; const match = link.trim().match(ytRegex); - if (!match || match[1].length !== 11) { + if (!match || match[2].length !== 11) { return null; } - const youtubeId = match[1]; + const youtubeId = match[2]; const time = this.handleYoutubeTime(link); function onClick(e) { @@ -212,7 +266,7 @@ export default class PostBody extends React.Component { } return ( - <div className='post-comment'> + <div> <h4> <span className='video-type'>{header}</span> <span className='video-title'><a href={link}>{this.state.youtubeTitle}</a></span> @@ -255,7 +309,15 @@ export default class PostBody extends React.Component { let apostrophe = ''; let name = '...'; if (profile != null) { - if (profile.username.slice(-1) === 's') { + let username = profile.username; + if (parentPost.props && + parentPost.props.from_webhook && + parentPost.props.override_username && + global.window.mm_config.EnablePostUsernameOverride === 'true') { + username = parentPost.props.override_username; + } + + if (username.slice(-1) === 's') { apostrophe = '\''; } else { apostrophe = '\'s'; @@ -263,9 +325,9 @@ export default class PostBody extends React.Component { name = ( <a className='theme' - onClick={Utils.searchForTerm.bind(null, profile.username)} + onClick={Utils.searchForTerm.bind(null, username)} > - {profile.username} + {username} </a> ); } @@ -284,7 +346,7 @@ export default class PostBody extends React.Component { } comment = ( - <p className='post-link'> + <div className='post__link'> <span> {'Commented on '}{name}{apostrophe}{' message: '} <a @@ -294,15 +356,13 @@ export default class PostBody extends React.Component { {message} </a> </span> - </p> + </div> ); - - postClass += ' post-comment'; } let loading; if (post.state === Constants.POST_FAILED) { - postClass += ' post-fail'; + postClass += ' post--fail'; loading = ( <a className='theme post-retry pull-right' @@ -322,11 +382,6 @@ export default class PostBody extends React.Component { ); } - let embed; - if (filenames.length === 0 && this.state.links && this.state.links.length > 0) { - embed = this.createEmbed(this.state.links[0]); - } - let fileAttachmentHolder = ''; if (filenames && filenames.length > 0) { fileAttachmentHolder = ( @@ -339,25 +394,28 @@ export default class PostBody extends React.Component { } return ( - <div className='post-body'> + <div> {comment} - <div - key={`${post.id}_message`} - id={`${post.id}_message`} - className={postClass} - > - {loading} - <span - ref='message_span' - onClick={TextFormatting.handleClick} - dangerouslySetInnerHTML={{__html: TextFormatting.formatText(this.state.message)}} + <div className='post__body'> + <div + key={`${post.id}_message`} + id={`${post.id}_message`} + className={postClass} + > + {loading} + <span + ref='message_span' + onClick={TextFormatting.handleClick} + dangerouslySetInnerHTML={{__html: TextFormatting.formatText(this.state.message)}} + /> + </div> + <PostBodyAdditionalContent + post={this.state.post} + provider={this.state.provider} /> + {fileAttachmentHolder} + {this.embed} </div> - <PostBodyAdditionalContent - post={post} - /> - {fileAttachmentHolder} - {embed} </div> ); } diff --git a/web/react/components/post_body_additional_content.jsx b/web/react/components/post_body_additional_content.jsx index 8189ba2d3..7e6f3f037 100644 --- a/web/react/components/post_body_additional_content.jsx +++ b/web/react/components/post_body_additional_content.jsx @@ -1,13 +1,15 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const PostAttachmentList = require('./post_attachment_list.jsx'); +import PostAttachmentList from './post_attachment_list.jsx'; +import PostAttachmentOEmbed from './post_attachment_oembed.jsx'; export default class PostBodyAdditionalContent extends React.Component { constructor(props) { super(props); this.getSlackAttachment = this.getSlackAttachment.bind(this); + this.getOembedAttachment = this.getOembedAttachment.bind(this); this.getComponent = this.getComponent.bind(this); } @@ -25,17 +27,32 @@ export default class PostBodyAdditionalContent extends React.Component { ); } + getOembedAttachment() { + const link = this.props.post.props && this.props.post.props.oEmbedLink || ''; + return ( + <PostAttachmentOEmbed + key={'post_body_additional_content' + this.props.post.id} + provider={this.props.provider} + link={link} + /> + ); + } + getComponent() { - switch (this.state.type) { + switch (this.props.post.type) { case 'slack_attachment': return this.getSlackAttachment(); + case 'oEmbed': + return this.getOembedAttachment(); + default: + return ''; } } render() { let content = []; - if (this.state.shouldRender) { + if (Boolean(this.props.post.type)) { const component = this.getComponent(); if (component) { @@ -52,5 +69,6 @@ export default class PostBodyAdditionalContent extends React.Component { } PostBodyAdditionalContent.propTypes = { - post: React.PropTypes.object.isRequired -};
\ No newline at end of file + post: React.PropTypes.object.isRequired, + provider: React.PropTypes.object +}; diff --git a/web/react/components/post_deleted_modal.jsx b/web/react/components/post_deleted_modal.jsx index ba07a22f5..3723bcaba 100644 --- a/web/react/components/post_deleted_modal.jsx +++ b/web/react/components/post_deleted_modal.jsx @@ -1,9 +1,9 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var UserStore = require('../stores/user_store.jsx'); -var AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -var Constants = require('../utils/constants.jsx'); +import UserStore from '../stores/user_store.jsx'; +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import Constants from '../utils/constants.jsx'; var ActionTypes = Constants.ActionTypes; export default class PostDeletedModal extends React.Component { diff --git a/web/react/components/post_focus_view.jsx b/web/react/components/post_focus_view.jsx new file mode 100644 index 000000000..adcd78839 --- /dev/null +++ b/web/react/components/post_focus_view.jsx @@ -0,0 +1,110 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import PostsView from './posts_view.jsx'; + +import PostStore from '../stores/post_store.jsx'; +import ChannelStore from '../stores/channel_store.jsx'; +import * as EventHelpers from '../dispatcher/event_helpers.jsx'; + +export default class PostFocusView extends React.Component { + constructor(props) { + super(props); + + this.onChannelChange = this.onChannelChange.bind(this); + this.onPostsChange = this.onPostsChange.bind(this); + this.handlePostsViewScroll = this.handlePostsViewScroll.bind(this); + this.loadMorePostsTop = this.loadMorePostsTop.bind(this); + this.loadMorePostsBottom = this.loadMorePostsBottom.bind(this); + + const focusedPostId = PostStore.getFocusedPostId(); + + this.state = { + scrollType: PostsView.SCROLL_TYPE_POST, + scrollPostId: focusedPostId, + postList: PostStore.getVisiblePosts(focusedPostId), + atTop: PostStore.getVisibilityAtTop(focusedPostId), + atBottom: PostStore.getVisibilityAtBottom(focusedPostId) + }; + } + + componentDidMount() { + ChannelStore.addChangeListener(this.onChannelChange); + PostStore.addChangeListener(this.onPostsChange); + } + + componentWillUnmount() { + ChannelStore.removeChangeListener(this.onChannelChange); + PostStore.removeChangeListener(this.onPostsChange); + } + + onChannelChange() { + this.setState({ + scrollType: PostsView.SCROLL_TYPE_POST + }); + } + + onPostsChange() { + const focusedPostId = PostStore.getFocusedPostId(); + if (focusedPostId == null) { + return; + } + + this.setState({ + scrollPostId: focusedPostId, + postList: PostStore.getVisiblePosts(focusedPostId), + atTop: PostStore.getVisibilityAtTop(focusedPostId), + atBottom: PostStore.getVisibilityAtBottom(focusedPostId) + }); + } + + handlePostsViewScroll() { + this.setState({scrollType: PostsView.SCROLL_TYPE_FREE}); + } + + loadMorePostsTop() { + EventHelpers.emitLoadMorePostsFocusedTopEvent(); + } + + loadMorePostsBottom() { + EventHelpers.emitLoadMorePostsFocusedBottomEvent(); + } + + getIntroMessage() { + return ( + <div className='channel-intro'> + <h4 className='channel-intro__title'>{'Beginning of Channel Archives'}</h4> + </div> + ); + } + + render() { + const postsToHighlight = {}; + postsToHighlight[this.state.scrollPostId] = true; + + return ( + <div id='post-list'> + <PostsView + key={'postfocusview'} + isActive={true} + postList={this.state.postList} + scrollType={this.state.scrollType} + scrollPostId={this.state.scrollPostId} + postViewScrolled={this.handlePostsViewScroll} + loadMorePostsTopClicked={this.loadMorePostsTop} + loadMorePostsBottomClicked={this.loadMorePostsBottom} + showMoreMessagesTop={!this.state.atTop} + showMoreMessagesBottom={!this.state.atBottom} + introText={this.getIntroMessage()} + messageSeparatorTime={0} + postsToHighlight={postsToHighlight} + /> + </div> + ); + } +} +PostFocusView.defaultProps = { +}; + +PostFocusView.propTypes = { +}; diff --git a/web/react/components/post_header.jsx b/web/react/components/post_header.jsx index 45e60c767..f18024343 100644 --- a/web/react/components/post_header.jsx +++ b/web/react/components/post_header.jsx @@ -1,8 +1,11 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var UserProfile = require('./user_profile.jsx'); -var PostInfo = require('./post_info.jsx'); +import UserProfile from './user_profile.jsx'; +import PostInfo from './post_info.jsx'; +import * as Utils from '../utils/utils.jsx'; + +import Constants from '../utils/constants.jsx'; export default class PostHeader extends React.Component { constructor(props) { @@ -26,14 +29,23 @@ export default class PostHeader extends React.Component { ); } - botIndicator = <li className='post-header-col post-header__name bot-indicator'>{'BOT'}</li>; + botIndicator = <li className='col col__name bot-indicator'>{'BOT'}</li>; + } else if (Utils.isSystemMessage(post)) { + userProfile = ( + <UserProfile + userId={''} + overwriteName={Constants.SYSTEM_MESSAGE_PROFILE_NAME} + overwriteImage={Constants.SYSTEM_MESSAGE_PROFILE_IMAGE} + disablePopover={true} + /> + ); } return ( - <ul className='post-header post-header-post'> - <li className='post-header-col post-header__name'><strong>{userProfile}</strong></li> + <ul className='post__header'> + <li className='col col__name'>{userProfile}</li> {botIndicator} - <li className='post-info--hidden'> + <li className='col'> <PostInfo post={post} commentCount={this.props.commentCount} diff --git a/web/react/components/post_info.jsx b/web/react/components/post_info.jsx index a01d842e5..21683bb01 100644 --- a/web/react/components/post_info.jsx +++ b/web/react/components/post_info.jsx @@ -1,21 +1,31 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var UserStore = require('../stores/user_store.jsx'); -var utils = require('../utils/utils.jsx'); -var TimeSince = require('./time_since.jsx'); +import UserStore from '../stores/user_store.jsx'; +import TeamStore from '../stores/team_store.jsx'; +import * as Utils from '../utils/utils.jsx'; +import TimeSince from './time_since.jsx'; +import * as EventHelpers from '../dispatcher/event_helpers.jsx'; -var Constants = require('../utils/constants.jsx'); +import Constants from '../utils/constants.jsx'; + +const Overlay = ReactBootstrap.Overlay; +const Popover = ReactBootstrap.Popover; export default class PostInfo extends React.Component { constructor(props) { super(props); - this.state = {}; + this.state = { + copiedLink: false, + show: false + }; + + this.handlePermalinkCopy = this.handlePermalinkCopy.bind(this); } createDropdown() { var post = this.props.post; var isOwner = UserStore.getCurrentId() === post.user_id; - var isAdmin = utils.isAdmin(UserStore.getCurrentUser().roles); + var isAdmin = Utils.isAdmin(UserStore.getCurrentUser().roles); if (post.state === Constants.POST_FAILED || post.state === Constants.POST_LOADING || post.state === Constants.POST_DELETED) { return ''; @@ -32,30 +42,37 @@ export default class PostInfo extends React.Component { dataComments = this.props.commentCount; } - if (isOwner) { + if (this.props.allowReply === 'true') { dropdownContents.push( <li - key='editPost' + key='replyLink' role='presentation' > <a + className='link__reply theme' href='#' - role='menuitem' - data-toggle='modal' - data-target='#edit_post' - data-refocusid='#post_textbox' - data-title={type} - data-message={post.message} - data-postid={post.id} - data-channelid={post.channel_id} - data-comments={dataComments} + onClick={this.props.handleCommentClick} > - Edit + {'Reply'} </a> </li> ); } + dropdownContents.push( + <li + key='copyLink' + role='presentation' + > + <a + href='#' + onClick={(e) => this.setState({target: e.target, show: !this.state.show})} + > + {'Permalink'} + </a> + </li> + ); + if (isOwner || isAdmin) { dropdownContents.push( <li @@ -65,31 +82,33 @@ export default class PostInfo extends React.Component { <a href='#' role='menuitem' - data-toggle='modal' - data-target='#delete_post' - data-title={type} - data-postid={post.id} - data-channelid={post.channel_id} - data-comments={dataComments} + onClick={() => EventHelpers.showDeletePostModal(post, dataComments)} > - Delete + {'Delete'} </a> </li> ); } - if (this.props.allowReply === 'true') { + if (isOwner) { dropdownContents.push( <li - key='replyLink' + key='editPost' role='presentation' > <a - className='reply-link theme' href='#' - onClick={this.props.handleCommentClick} + role='menuitem' + data-toggle='modal' + data-target='#edit_post' + data-refocusid='#post_textbox' + data-title={type} + data-message={post.message} + data-postid={post.id} + data-channelid={post.channel_id} + data-comments={dataComments} > - Reply + {'Edit'} </a> </li> ); @@ -103,7 +122,7 @@ export default class PostInfo extends React.Component { <div> <a href='#' - className='dropdown-toggle theme' + className='dropdown-toggle post__dropdown theme' type='button' data-toggle='dropdown' aria-expanded='false' @@ -117,44 +136,111 @@ export default class PostInfo extends React.Component { </div> ); } + + handlePermalinkCopy() { + const textBox = $(ReactDOM.findDOMNode(this.refs.permalinkbox)); + textBox.select(); + + try { + const successful = document.execCommand('copy'); + if (successful) { + this.setState({copiedLink: true, show: false}); + } else { + this.setState({copiedLink: false}); + } + } catch (err) { + this.setState({copiedLink: false}); + } + } render() { var post = this.props.post; var comments = ''; - var lastCommentClass = ' comment-icon__container__hide'; - if (this.props.isLastComment) { - lastCommentClass = ' comment-icon__container__show'; + var showCommentClass = ''; + var commentCountText = this.props.commentCount; + + if (this.props.commentCount >= 1) { + showCommentClass = ' icon--show'; + } else { + commentCountText = ''; } - if (this.props.commentCount >= 1 && post.state !== Constants.POST_FAILED && post.state !== Constants.POST_LOADING && post.state !== Constants.POST_DELETED) { + if (post.state !== Constants.POST_FAILED && post.state !== Constants.POST_LOADING && post.state !== Constants.POST_DELETED) { comments = ( <a href='#' - className={'comment-icon__container theme' + lastCommentClass} + className={'comment-icon__container' + showCommentClass} onClick={this.props.handleCommentClick} > <span className='comment-icon' dangerouslySetInnerHTML={{__html: Constants.COMMENT_ICON}} /> - {this.props.commentCount} + {commentCountText} </a> ); } var dropdown = this.createDropdown(); + const permalink = TeamStore.getCurrentTeamUrl() + '/pl/' + post.id; + const copyButtonText = this.state.copiedLink ? (<div>{'Copy '}<i className='fa fa-check'/></div>) : 'Copy'; + const permalinkOverlay = ( + <Popover + id='permalink-overlay' + className='permalink-popover' + placement='left' + title='' + > + <div className='form-inline'> + <input + type='text' + readOnly='true' + ref='permalinkbox' + className='permalink-text form-control no-resize' + rows='1' + value={permalink} + /> + <button + data-copy-btn='true' + type='button' + className='btn btn-primary' + onClick={this.handlePermalinkCopy} + data-clipboard-text={permalink} + > + {copyButtonText} + </button> + </div> + </Popover> + ); + + const containerPadding = 20; + return ( - <ul className='post-header post-info'> - <li className='post-header-col'> + <ul className='post__header post__header--info'> + <li className='col'> <TimeSince eventTime={post.create_at} /> </li> - <li className='post-header-col post-header__reply'> - <div className='dropdown'> + <li className='col col__reply'> + {comments} + <div + className='dropdown' + ref='dotMenu' + > {dropdown} </div> - {comments} + <Overlay + show={this.state.show} + target={() => ReactDOM.findDOMNode(this.refs.dotMenu)} + onHide={() => this.setState({show: false})} + placement='left' + container={this} + containerPadding={containerPadding} + rootClose={true} + > + {permalinkOverlay} + </Overlay> </li> </ul> ); diff --git a/web/react/components/posts_view.jsx b/web/react/components/posts_view.jsx index b782268fa..b7ac92672 100644 --- a/web/react/components/posts_view.jsx +++ b/web/react/components/posts_view.jsx @@ -1,18 +1,23 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const UserStore = require('../stores/user_store.jsx'); -const Utils = require('../utils/utils.jsx'); -const Post = require('./post.jsx'); -const Constants = require('../utils/constants.jsx'); +import UserStore from '../stores/user_store.jsx'; +import PreferenceStore from '../stores/preference_store.jsx'; +import * as EventHelpers from '../dispatcher/event_helpers.jsx'; +import * as Utils from '../utils/utils.jsx'; +import Post from './post.jsx'; +import Constants from '../utils/constants.jsx'; +const Preferences = Constants.Preferences; export default class PostsView extends React.Component { constructor(props) { super(props); + this.updateState = this.updateState.bind(this); this.handleScroll = this.handleScroll.bind(this); this.isAtBottom = this.isAtBottom.bind(this); this.loadMorePostsTop = this.loadMorePostsTop.bind(this); + this.loadMorePostsBottom = this.loadMorePostsBottom.bind(this); this.createPosts = this.createPosts.bind(this); this.updateScrolling = this.updateScrolling.bind(this); this.handleResize = this.handleResize.bind(this); @@ -20,6 +25,8 @@ export default class PostsView extends React.Component { this.jumpToPostNode = null; this.wasAtBottom = true; this.scrollHeight = 0; + + this.state = {displayNameType: PreferenceStore.getPreference(Preferences.CATEGORY_DISPLAY_SETTINGS, 'name_format', {value: 'false'}).value}; } static get SCROLL_TYPE_FREE() { return 1; @@ -27,12 +34,18 @@ export default class PostsView extends React.Component { static get SCROLL_TYPE_BOTTOM() { return 2; } - static get SIDEBAR_OPEN() { + static get SCROLL_TYPE_SIDEBAR_OPEN() { return 3; } static get SCROLL_TYPE_NEW_MESSAGE() { return 4; } + static get SCROLL_TYPE_POST() { + return 5; + } + updateState() { + this.setState({displayNameType: PreferenceStore.getPreference(Preferences.CATEGORY_DISPLAY_SETTINGS, 'name_format', {value: 'false'}).value}); + } isAtBottom() { return ((this.refs.postlist.scrollHeight - this.refs.postlist.scrollTop) === this.refs.postlist.clientHeight); } @@ -47,15 +60,22 @@ export default class PostsView extends React.Component { } } this.wasAtBottom = this.isAtBottom(); + if (!this.jumpToPostNode && childNodes.length > 0) { + this.jumpToPostNode = childNodes[childNodes.length - 1]; + } // --- -------- this.props.postViewScrolled(this.isAtBottom()); this.prevScrollHeight = this.refs.postlist.scrollHeight; + this.prevOffsetTop = this.jumpToPostNode.offsetTop; } loadMorePostsTop() { this.props.loadMorePostsTopClicked(); } + loadMorePostsBottom() { + this.props.loadMorePostsBottomClicked(); + } createPosts(posts, order) { const postCtls = []; let previousPostDay = new Date(0); @@ -63,15 +83,11 @@ export default class PostsView extends React.Component { let renderedLastViewed = false; - let numToDisplay = this.props.numPostsToDisplay; - if (order.length - 1 < numToDisplay) { - numToDisplay = order.length - 1; - } - - for (let i = numToDisplay; i >= 0; i--) { + for (let i = order.length - 1; i >= 0; i--) { const post = posts[order[i]]; const parentPost = posts[post.parent_id]; const prevPost = posts[order[i + 1]]; + const postUserId = Utils.isSystemMessage(post) ? '' : post.user_id; // If the post is a comment whose parent has been deleted, don't add it to the list. if (parentPost && parentPost.state === Constants.POST_DELETED) { @@ -83,32 +99,73 @@ export default class PostsView extends React.Component { let hideProfilePic = false; if (prevPost) { - sameUser = prevPost.user_id === post.user_id && post.create_at - prevPost.create_at <= 1000 * 60 * 5; + const postIsComment = Utils.isComment(post); + const prevPostIsComment = Utils.isComment(prevPost); + const postFromWebhook = Boolean(post.props && post.props.from_webhook); + const prevPostFromWebhook = Boolean(prevPost.props && prevPost.props.from_webhook); + const prevPostUserId = Utils.isSystemMessage(prevPost) ? '' : prevPost.user_id; + let prevWebhookName = ''; + if (prevPost.props && prevPost.props.override_username) { + prevWebhookName = prevPost.props.override_username; + } + let curWebhookName = ''; + if (post.props && post.props.override_username) { + curWebhookName = post.props.override_username; + } - sameRoot = Utils.isComment(post) && (prevPost.id === post.root_id || prevPost.root_id === post.root_id); + // consider posts from the same user if: + // the previous post was made by the same user as the current post, + // the previous post was made within 5 minutes of the current post, + // the previous post and current post are both from webhooks or both not, + // the previous post and current post have the same webhook usernames + if (prevPostUserId === postUserId && + post.create_at - prevPost.create_at <= 1000 * 60 * 5 && + postFromWebhook === prevPostFromWebhook && + prevWebhookName === curWebhookName) { + sameUser = true; + } + + // consider posts from the same root if: + // the current post is a comment, + // the current post has the same root as the previous post + if (postIsComment && (prevPost.id === post.root_id || prevPost.root_id === post.root_id)) { + sameRoot = true; + } + + // consider posts from the same root if: + // the current post is not a comment, + // the previous post is not a comment, + // the previous post is from the same user + if (!postIsComment && !prevPostIsComment && sameUser) { + sameRoot = true; + } // hide the profile pic if: // the previous post was made by the same user as the current post, // the previous post is not a comment, // the current post is not a comment, - // the current post is not from a webhook - // and the previous post is not from a webhook - if ((prevPost.user_id === post.user_id) && - !Utils.isComment(prevPost) && - !Utils.isComment(post) && - (!post.props || !post.props.from_webhook) && - (!prevPost.props || !prevPost.props.from_webhook)) { + // the previous post and current post are both from webhooks or both not, + // the previous post and current post have the same webhook usernames + if (prevPostUserId === postUserId && + !prevPostIsComment && + !postIsComment && + postFromWebhook === prevPostFromWebhook && + prevWebhookName === curWebhookName) { hideProfilePic = true; } } // check if it's the last comment in a consecutive string of comments on the same post // it is the last comment if it is last post in the channel or the next post has a different root post - var isLastComment = Utils.isComment(post) && (i === 0 || posts[order[i - 1]].root_id !== post.root_id); + const isLastComment = Utils.isComment(post) && (i === 0 || posts[order[i - 1]].root_id !== post.root_id); + + const keyPrefix = post.id ? post.id : i; + + const shouldHighlight = this.props.postsToHighlight && this.props.postsToHighlight.hasOwnProperty(post.id); - var postCtl = ( + const postCtl = ( <Post - key={post.id + 'postKey'} + key={keyPrefix + 'postKey'} ref={post.id} sameUser={sameUser} sameRoot={sameRoot} @@ -117,6 +174,9 @@ export default class PostsView extends React.Component { posts={posts} hideProfilePic={hideProfilePic} isLastComment={isLastComment} + shouldHighlight={shouldHighlight} + onClick={() => EventHelpers.emitPostFocusEvent(post.id)} //eslint-disable-line no-loop-func + displayNameType={this.state.displayNameType} /> ); @@ -133,7 +193,7 @@ export default class PostsView extends React.Component { ); } - if (post.user_id !== userId && + if (postUserId !== userId && this.props.messageSeparatorTime !== 0 && post.create_at > this.props.messageSeparatorTime && !renderedLastViewed) { @@ -178,9 +238,12 @@ export default class PostsView extends React.Component { this.refs.postlist.scrollTop = this.refs.postlist.scrollHeight; } }); - } else if (this.props.scrollType === PostsView.SCROLL_TYPE_POST && this.props.scrollPost) { + } else if (this.props.scrollType === PostsView.SCROLL_TYPE_POST && this.props.scrollPostId) { window.requestAnimationFrame(() => { - const postNode = ReactDOM.findDOMNode(this.refs[this.props.scrollPost]); + const postNode = ReactDOM.findDOMNode(this.refs[this.props.scrollPostId]); + if (postNode == null) { + return; + } postNode.scrollIntoView(); if (this.refs.postlist.scrollTop === postNode.offsetTop) { this.refs.postlist.scrollTop -= (this.refs.postlist.offsetHeight / 3); @@ -188,7 +251,7 @@ export default class PostsView extends React.Component { this.refs.postlist.scrollTop -= (this.refs.postlist.offsetHeight / 3) + (this.refs.postlist.scrollTop - postNode.offsetTop); } }); - } else if (this.props.scrollType === PostsView.SIDEBAR_OPEN) { + } else if (this.props.scrollType === PostsView.SCROLL_TYPE_SIDEBAR_OPEN) { // If we are at the bottom then stay there if (this.wasAtBottom) { this.refs.postlist.scrollTop = this.refs.postlist.scrollHeight; @@ -204,7 +267,10 @@ export default class PostsView extends React.Component { } } else if (this.refs.postlist.scrollHeight !== this.prevScrollHeight) { window.requestAnimationFrame(() => { - this.refs.postlist.scrollTop += (this.refs.postlist.scrollHeight - this.prevScrollHeight); + // Only need to jump if we added posts to the top. + if (this.jumpToPostNode && (this.jumpToPostNode.offsetTop !== this.prevOffsetTop)) { + this.refs.postlist.scrollTop += (this.refs.postlist.scrollHeight - this.prevScrollHeight); + } }); } } @@ -212,35 +278,47 @@ export default class PostsView extends React.Component { this.updateScrolling(); } componentDidMount() { - this.updateScrolling(); + if (this.props.postList != null) { + this.updateScrolling(); + } window.addEventListener('resize', this.handleResize); } componentWillUnmount() { window.removeEventListener('resize', this.handleResize); } componentDidUpdate() { - this.updateScrolling(); + if (this.props.postList != null) { + this.updateScrolling(); + } + } + componentWillReceiveProps(nextProps) { + if (!this.props.isActive && nextProps.isActive) { + this.updateState(); + PreferenceStore.addChangeListener(this.updateState); + } else if (this.props.isActive && !nextProps.isActive) { + PreferenceStore.removeChangeListener(this.updateState); + } } - shouldComponentUpdate(nextProps) { + shouldComponentUpdate(nextProps, nextState) { if (this.props.isActive !== nextProps.isActive) { return true; } if (this.props.postList !== nextProps.postList) { return true; } - if (this.props.scrollPost !== nextProps.scrollPost) { + if (this.props.scrollPostId !== nextProps.scrollPostId) { return true; } if (this.props.scrollType !== nextProps.scrollType && nextProps.scrollType !== PostsView.SCROLL_TYPE_FREE) { return true; } - if (this.props.numPostsToDisplay !== nextProps.numPostsToDisplay) { + if (this.props.messageSeparatorTime !== nextProps.messageSeparatorTime) { return true; } - if (this.props.messageSeparatorTime !== nextProps.messageSeparatorTime) { + if (!Utils.areObjectsEqual(this.props.postList, nextProps.postList)) { return true; } - if (!Utils.areStatesEqual(this.props.postList, nextProps.postList)) { + if (nextState.displayNameType !== this.state.displayNameType) { return true; } @@ -249,7 +327,8 @@ export default class PostsView extends React.Component { render() { let posts = []; let order = []; - let moreMessages; + let moreMessagesTop; + let moreMessagesBottom; let postElements; let activeClass = 'inactive'; if (this.props.postList != null) { @@ -257,10 +336,10 @@ export default class PostsView extends React.Component { order = this.props.postList.order; // Create intro message or top loadmore link - if (order.length >= this.props.numPostsToDisplay) { - moreMessages = ( + if (this.props.showMoreMessagesTop) { + moreMessagesTop = ( <a - ref='loadmore' + ref='loadmoretop' className='more-messages-text theme' href='#' onClick={this.loadMorePostsTop} @@ -269,7 +348,23 @@ export default class PostsView extends React.Component { </a> ); } else { - moreMessages = this.props.introText; + moreMessagesTop = this.props.introText; + } + + // Give option to load more posts at bottom if nessisary + if (this.props.showMoreMessagesBottom) { + moreMessagesBottom = ( + <a + ref='loadmorebottom' + className='more-messages-text theme' + href='#' + onClick={this.loadMorePostsBottom} + > + {'Load more messages'} + </a> + ); + } else { + moreMessagesBottom = null; } // Create post elements @@ -292,8 +387,9 @@ export default class PostsView extends React.Component { ref='postlistcontent' className='post-list__content' > - {moreMessages} + {moreMessagesTop} {postElements} + {moreMessagesBottom} </div> </div> </div> @@ -306,11 +402,14 @@ PostsView.defaultProps = { PostsView.propTypes = { isActive: React.PropTypes.bool, postList: React.PropTypes.object, - scrollPost: React.PropTypes.string, + scrollPostId: React.PropTypes.string, scrollType: React.PropTypes.number, postViewScrolled: React.PropTypes.func.isRequired, loadMorePostsTopClicked: React.PropTypes.func.isRequired, - numPostsToDisplay: React.PropTypes.number, + loadMorePostsBottomClicked: React.PropTypes.func.isRequired, + showMoreMessagesTop: React.PropTypes.bool, + showMoreMessagesBottom: React.PropTypes.bool, introText: React.PropTypes.element, - messageSeparatorTime: React.PropTypes.number + messageSeparatorTime: React.PropTypes.number, + postsToHighlight: React.PropTypes.object }; diff --git a/web/react/components/posts_view_container.jsx b/web/react/components/posts_view_container.jsx index 8b92a26a7..631bd1872 100644 --- a/web/react/components/posts_view_container.jsx +++ b/web/react/components/posts_view_container.jsx @@ -1,22 +1,18 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const PostsView = require('./posts_view.jsx'); -const LoadingScreen = require('./loading_screen.jsx'); -const ChannelInviteModal = require('./channel_invite_modal.jsx'); +import PostsView from './posts_view.jsx'; +import LoadingScreen from './loading_screen.jsx'; -const ChannelStore = require('../stores/channel_store.jsx'); -const PostStore = require('../stores/post_store.jsx'); +import ChannelStore from '../stores/channel_store.jsx'; +import PostStore from '../stores/post_store.jsx'; -const Utils = require('../utils/utils.jsx'); -const Client = require('../utils/client.jsx'); -const AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -const AsyncClient = require('../utils/async_client.jsx'); +import * as Utils from '../utils/utils.jsx'; +import * as EventHelpers from '../dispatcher/event_helpers.jsx'; -const Constants = require('../utils/constants.jsx'); -const ActionTypes = Constants.ActionTypes; +import Constants from '../utils/constants.jsx'; -import {createChannelIntroMessage} from '../utils/channel_intro_mssages.jsx'; +import {createChannelIntroMessage} from '../utils/channel_intro_messages.jsx'; export default class PostsViewContainer extends React.Component { constructor() { @@ -27,27 +23,26 @@ export default class PostsViewContainer extends React.Component { this.onPostsChange = this.onPostsChange.bind(this); this.handlePostsViewScroll = this.handlePostsViewScroll.bind(this); this.loadMorePostsTop = this.loadMorePostsTop.bind(this); - this.postsLoaded = this.postsLoaded.bind(this); - this.postsLoadedFailure = this.postsLoadedFailure.bind(this); this.handlePostsViewJumpRequest = this.handlePostsViewJumpRequest.bind(this); const currentChannelId = ChannelStore.getCurrentId(); const state = { scrollType: PostsView.SCROLL_TYPE_BOTTOM, - scrollPost: null, - numPostsToDisplay: Constants.POST_CHUNK_SIZE + scrollPost: null }; if (currentChannelId) { Object.assign(state, { currentChannelIndex: 0, channels: [currentChannelId], - postLists: [this.getChannelPosts(currentChannelId)] + postLists: [this.getChannelPosts(currentChannelId)], + atTop: [PostStore.getVisibilityAtTop(currentChannelId)] }); } else { Object.assign(state, { currentChannelIndex: null, channels: [], - postLists: [] + postLists: [], + atTop: [] }); } @@ -78,24 +73,21 @@ export default class PostsViewContainer extends React.Component { }); break; case Constants.PostsViewJumpTypes.SIDEBAR_OPEN: - this.setState({scrollType: PostsView.SIDEBAR_OPEN}); + this.setState({scrollType: PostsView.SCROLL_TYPE_SIDEBAR_OPEN}); break; } } onChannelChange() { const postLists = this.state.postLists.slice(); + const atTop = this.state.atTop.slice(); const channels = this.state.channels.slice(); const channelId = ChannelStore.getCurrentId(); // Has the channel really changed? if (channelId === channels[this.state.currentChannelIndex]) { - // Dirty hack - this.forceUpdate(); return; } - PostStore.clearUnseenDeletedPosts(channelId); - let lastViewed = Number.MAX_VALUE; const member = ChannelStore.getMember(channelId); if (member != null) { @@ -106,116 +98,48 @@ export default class PostsViewContainer extends React.Component { if (newIndex === -1) { newIndex = channels.length; channels.push(channelId); - postLists[newIndex] = this.getChannelPosts(channelId); + atTop[newIndex] = PostStore.getVisibilityAtTop(channelId); } + + // make sure we have the latest posts from the store + postLists[newIndex] = this.getChannelPosts(channelId); + this.setState({ currentChannelIndex: newIndex, currentLastViewed: lastViewed, scrollType: PostsView.SCROLL_TYPE_NEW_MESSAGE, channels, - postLists}); + postLists, + atTop}); } onChannelLeave(id) { const postLists = this.state.postLists.slice(); const channels = this.state.channels.slice(); + const atTop = this.state.atTop.slice(); const index = channels.indexOf(id); if (index !== -1) { postLists.splice(index, 1); channels.splice(index, 1); + atTop.splice(index, 1); } - this.setState({channels, postLists}); + this.setState({channels, postLists, atTop}); } onPostsChange() { const channels = this.state.channels; const postLists = this.state.postLists.slice(); - const newPostsView = this.getChannelPosts(channels[this.state.currentChannelIndex]); + const atTop = this.state.atTop.slice(); + const currentChannelId = channels[this.state.currentChannelIndex]; + const newPostsView = this.getChannelPosts(currentChannelId); postLists[this.state.currentChannelIndex] = newPostsView; - this.setState({postLists}); + atTop[this.state.currentChannelIndex] = PostStore.getVisibilityAtTop(currentChannelId); + this.setState({postLists, atTop}); } getChannelPosts(id) { - const postList = PostStore.getPosts(id); - - if (postList != null) { - const deletedPosts = PostStore.getUnseenDeletedPosts(id); - - if (deletedPosts && Object.keys(deletedPosts).length > 0) { - for (const pid in deletedPosts) { - if (deletedPosts.hasOwnProperty(pid)) { - postList.posts[pid] = deletedPosts[pid]; - postList.order.unshift(pid); - } - } - - postList.order.sort((a, b) => { - if (postList.posts[a].create_at > postList.posts[b].create_at) { - return -1; - } - if (postList.posts[a].create_at < postList.posts[b].create_at) { - return 1; - } - return 0; - }); - } - - const pendingPostList = PostStore.getPendingPosts(id); - - if (pendingPostList) { - postList.order = pendingPostList.order.concat(postList.order); - for (const ppid in pendingPostList.posts) { - if (pendingPostList.posts.hasOwnProperty(ppid)) { - postList.posts[ppid] = pendingPostList.posts[ppid]; - } - } - } - } - - return postList; + return PostStore.getVisiblePosts(id); } loadMorePostsTop() { - const postLists = this.state.postLists; - const channels = this.state.channels; - const currentChannelId = channels[this.state.currentChannelIndex]; - const currentPostList = postLists[this.state.currentChannelIndex]; - - this.setState({numPostsToDisplay: this.state.numPostsToDisplay + Constants.POST_CHUNK_SIZE}); - - Client.getPostsPage( - currentChannelId, - currentPostList.order.length, - Constants.POST_CHUNK_SIZE, - this.postsLoaded, - this.postsLoadedFailure - ); - } - postsLoaded(data) { - if (!data) { - return; - } - - if (data.order.length === 0) { - return; - } - - const postLists = this.state.postLists; - const currentPostList = postLists[this.state.currentChannelIndex]; - const channels = this.state.channels; - const currentChannelId = channels[this.state.currentChannelIndex]; - - var newPostList = {}; - newPostList.posts = Object.assign(currentPostList.posts, data.posts); - newPostList.order = currentPostList.order.concat(data.order); - - AppDispatcher.handleServerAction({ - type: ActionTypes.RECIEVED_POSTS, - id: currentChannelId, - post_list: newPostList - }); - - Client.getProfiles(); - } - postsLoadedFailure(err) { - AsyncClient.dispatchError(err, 'getPosts'); + EventHelpers.emitLoadMorePostsEvent(); } handlePostsViewScroll(atBottom) { if (atBottom) { @@ -225,7 +149,7 @@ export default class PostsViewContainer extends React.Component { } } shouldComponentUpdate(nextProps, nextState) { - if (Utils.areStatesEqual(this.state, nextState)) { + if (Utils.areObjectsEqual(this.state, nextState)) { return false; } @@ -246,15 +170,17 @@ export default class PostsViewContainer extends React.Component { isActive={isActive} postList={postLists[i]} scrollType={this.state.scrollType} - scrollPost={this.state.scrollPost} + scrollPostId={this.state.scrollPost} postViewScrolled={this.handlePostsViewScroll} loadMorePostsTopClicked={this.loadMorePostsTop} - numPostsToDisplay={this.state.numPostsToDisplay} - introText={channel ? createChannelIntroMessage(channel, () => this.setState({showInviteModal: true})) : null} + loadMorePostsBottomClicked={() => {}} + showMoreMessagesTop={!this.state.atTop[this.state.currentChannelIndex]} + showMoreMessagesBottom={false} + introText={channel ? createChannelIntroMessage(channel) : null} messageSeparatorTime={this.state.currentLastViewed} /> ); - if ((!postLists[i] || !channel) && isActive) { + if (!postLists[i] && isActive) { postListCtls.push( <LoadingScreen position='absolute' @@ -267,10 +193,6 @@ export default class PostsViewContainer extends React.Component { return ( <div id='post-list'> {postListCtls} - <ChannelInviteModal - show={this.state.showInviteModal} - onModalDismissed={() => this.setState({showInviteModal: false})} - /> </div> ); } diff --git a/web/react/components/providers.json b/web/react/components/providers.json new file mode 100644 index 000000000..b5899c225 --- /dev/null +++ b/web/react/components/providers.json @@ -0,0 +1,376 @@ +[ + { + "patterns": [ + "http://(?:www\\.)?xkcd\\.com/\\d+/?" + ], + "name": "XKCD", + "height": 110 + }, + { + "patterns": [ + "https?://soundcloud.com/.*/.*" + ], + "name": "SoundCloud", + "height": 140 + }, + { + "patterns": [ + "https?://(?:www\\.)?flickr\\.com/.*", + "https?://flic\\.kr/p/[a-zA-Z0-9]+" + ], + "name": "Flickr", + "height": 110 + }, + { + "patterns": [ + "http://www\\.ted\\.com/talks/.+\\.html" + ], + "name": "TED", + "height": 110 + }, + { + "patterns": [ + "http://(?:www\\.)?theverge\\.com/\\d{4}/\\d{1,2}/\\d{1,2}/\\d+/[^/]+/?$" + ], + "name": "The Verge", + "height": 110 + }, + { + "patterns": [ + "http://.*\\.viddler\\.com/.*" + ], + "name": "Viddler", + "height": 110 + }, + { + "patterns": [ + "https?://(?:www\\.)?avclub\\.com/article/[^/]+/?$" + ], + "name": "The AV Club", + "height": 110 + }, + { + "patterns": [ + "https?://(?:www\\.)?wired\\.com/([^/]+/)?\\d+/\\d+/[^/]+/?$" + ], + "name": "Wired", + "height": 110 + }, + { + "patterns": [ + "http://www\\.theonion\\.com/articles/[^/]+/?" + ], + "name": "The Onion", + "height": 110 + }, + { + "patterns": [ + "http://yfrog\\.com/[0-9a-zA-Z]+/?$" + ], + "name": "YFrog", + "height": 110 + }, + { + "patterns": [ + "http://www\\.duffelblog\\.com/\\d{4}/\\d{1,2}/[^/]+/?$" + ], + "name": "The Duffel Blog", + "height": 110 + }, + { + "patterns": [ + "http://www\\.clickhole\\.com/article/[^/]+/?" + ], + "name": "Clickhole", + "height": 110 + }, + { + "patterns": [ + "https?://(?:www.)?skitch.com/([^/]+)/[^/]+/.+", + "http://skit.ch/[^/]+" + ], + "name": "Skitch", + "height": 110 + }, + { + "patterns": [ + "https?://(alpha|posts|photos)\\.app\\.net/.*" + ], + "name": "ADN", + "height": 110 + }, + { + "patterns": [ + "https?://gist\\.github\\.com/(?:[-0-9a-zA-Z]+/)?([0-9a-fA-f]+)" + ], + "name": "Gist", + "height": 110 + }, + { + "patterns": [ + "https?://www\\.(dropbox\\.com/s/.+\\.(?:jpg|png|gif))", + "https?://db\\.tt/[a-zA-Z0-9]+" + ], + "name": "Dropbox", + "height": 110 + }, + { + "patterns": [ + "https?://[^\\.]+\\.wikipedia\\.org/wiki/(?!Talk:)[^#]+(?:#(.+))?" + ], + "name": "Wikipedia", + "height": 110 + }, + { + "patterns": [ + "http://www.traileraddict.com/trailer/[^/]+/trailer" + ], + "name": "TrailerAddict", + "height": 110 + }, + { + "patterns": [ + "http://lockerz\\.com/[sd]/\\d+" + ], + "name": "Lockerz", + "height": 110 + }, + { + "patterns": [ + "http://gifuk\\.com/s/[0-9a-f]{16}" + ], + "name": "GIFUK", + "height": 110 + }, + { + "patterns": [ + "http://trailers\\.apple\\.com/trailers/[^/]+/[^/]+" + ], + "name": "iTunes Movie Trailers", + "height": 110 + }, + { + "patterns": [ + "http://gfycat\\.com/([a-zA-Z]+)" + ], + "name": "Gfycat", + "height": 110 + }, + { + "patterns": [ + "http://bash\\.org/\\?(\\d+)" + ], + "name": "Bash.org", + "height": 110 + }, + { + "patterns": [ + "http://arstechnica\\.com/[^/]+/\\d+/\\d+/[^/]+/?$" + ], + "name": "Ars Technica", + "height": 110 + }, + { + "patterns": [ + "http://imgur\\.com/gallery/[0-9a-zA-Z]+" + ], + "name": "Imgur", + "height": 110 + }, + { + "patterns": [ + "http://www\\.asciiartfarts\\.com/[0-9]+\\.html" + ], + "name": "ASCII Art Farts", + "height": 110 + }, + { + "patterns": [ + "http://www\\.monoprice\\.com/products/product\\.asp\\?.*p_id=\\d+" + ], + "name": "Monoprice", + "height": 110 + }, + { + "patterns": [ + "http://boingboing\\.net/\\d{4}/\\d{2}/\\d{2}/[^/]+\\.html" + ], + "name": "Boing Boing", + "height": 110 + }, + { + "patterns": [ + "https?://github\\.com/([^/]+)/([^/]+)/commit/(.+)", + "http://git\\.io/[_0-9a-zA-Z]+" + ], + "name": "Github Commit", + "height": 110 + }, + { + "patterns": [ + "https?://open\\.spotify\\.com/(track|album)/([0-9a-zA-Z]{22})" + ], + "name": "Spotify", + "height": 110 + }, + { + "patterns": [ + "https?://path\\.com/p/([0-9a-zA-Z]+)$" + ], + "name": "Path", + "height": 110 + }, + { + "patterns": [ + "http://www.funnyordie.com/videos/[^/]+/.+" + ], + "name": "Funny or Die", + "height": 110 + }, + { + "patterns": [ + "http://(?:www\\.)?twitpic\\.com/([^/]+)" + ], + "name": "Twitpic", + "height": 110 + }, + { + "patterns": [ + "https?://www\\.giantbomb\\.com/videos/[^/]+/\\d+-\\d+/?" + ], + "name": "GiantBomb", + "height": 110 + }, + { + "patterns": [ + "http://(?:www\\.)?beeradvocate\\.com/beer/profile/\\d+/\\d+" + ], + "name": "Beer Advocate", + "height": 110 + }, + { + "patterns": [ + "http://(?:www\\.)?imdb.com/title/(tt\\d+)" + ], + "name": "IMDB", + "height": 110 + }, + { + "patterns": [ + "http://cl\\.ly/(?:image/)?[0-9a-zA-Z]+/?$" + ], + "name": "CloudApp", + "height": 110 + }, + { + "patterns": [ + "http://clyp\\.it/.*" + ], + "name": "Clyp", + "height": 110 + }, + { + "patterns": [ + "http://www\\.hulu\\.com/watch/.*" + ], + "name": "Hulu", + "height": 110 + }, + { + "patterns": [ + "https?://(?:www|mobile\\.)?twitter\\.com/(?:#!/)?[^/]+/status(?:es)?/(\\d+)/?$", + "https?://t\\.co/[a-zA-Z0-9]+" + ], + "name": "Twitter", + "height": 110 + }, + { + "patterns": [ + "https?://(?:www\\.)?vimeo\\.com/.+" + ], + "name": "Vimeo", + "height": 110 + }, + { + "patterns": [ + "http://www\\.amazon\\.com/(?:.+/)?[gd]p/(?:product/)?(?:tags-on-product/)?([a-zA-Z0-9]+)", + "http://amzn\\.com/([^/]+)" + ], + "name": "Amazon", + "height": 110 + }, + { + "patterns": [ + "http://qik\\.com/video/.*" + ], + "name": "Qik", + "height": 110 + }, + { + "patterns": [ + "http://www\\.rdio\\.com/artist/[^/]+/album/[^/]+/?", + "http://www\\.rdio\\.com/artist/[^/]+/album/[^/]+/track/[^/]+/?", + "http://www\\.rdio\\.com/people/[^/]+/playlists/\\d+/[^/]+" + ], + "name": "Rdio", + "height": 110 + }, + { + "patterns": [ + "http://www\\.slideshare\\.net/.*/.*" + ], + "name": "SlideShare", + "height": 110 + }, + { + "patterns": [ + "http://imgur\\.com/([0-9a-zA-Z]+)$" + ], + "name": "Imgur", + "height": 110 + }, + { + "patterns": [ + "https?://instagr(?:\\.am|am\\.com)/p/.+" + ], + "name": "Instagram", + "height": 110 + }, + { + "patterns": [ + "http://www\\.twitlonger\\.com/show/[a-zA-Z0-9]+", + "http://tl\\.gd/[^/]+" + ], + "name": "Twitlonger", + "height": 110 + }, + { + "patterns": [ + "https?://vine.co/v/[a-zA-Z0-9]+" + ], + "name": "Vine", + "height": 490 + }, + { + "patterns": [ + "http://www\\.urbandictionary\\.com/define\\.php\\?term=.+" + ], + "name": "Urban Dictionary", + "height": 110 + }, + { + "patterns": [ + "http://picplz\\.com/user/[^/]+/pic/[^/]+" + ], + "name": "Picplz", + "height": 110 + }, + { + "patterns": [ + "https?://(?:www\\.)?twitter\\.com/(?:#!/)?[^/]+/status(?:es)?/(\\d+)/photo/\\d+(?:/large|/)?$", + "https?://pic\\.twitter\\.com/.+" + ], + "name": "Twitter", + "height": 110 + } +] diff --git a/web/react/components/register_app_modal.jsx b/web/react/components/register_app_modal.jsx index c40409dcc..f49b33f73 100644 --- a/web/react/components/register_app_modal.jsx +++ b/web/react/components/register_app_modal.jsx @@ -1,22 +1,58 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Client = require('../utils/client.jsx'); +import * as Client from '../utils/client.jsx'; +import ModalStore from '../stores/modal_store.jsx'; + +const Modal = ReactBootstrap.Modal; + +import Constants from '../utils/constants.jsx'; +const ActionTypes = Constants.ActionTypes; export default class RegisterAppModal extends React.Component { constructor() { super(); - this.register = this.register.bind(this); + this.handleSubmit = this.handleSubmit.bind(this); this.onHide = this.onHide.bind(this); this.save = this.save.bind(this); + this.updateShow = this.updateShow.bind(this); - this.state = {clientId: '', clientSecret: '', saved: false}; + this.state = { + clientId: '', + clientSecret: '', + saved: false, + show: false + }; } componentDidMount() { - $(ReactDOM.findDOMNode(this)).on('hide.bs.modal', this.onHide); + ModalStore.addModalListener(ActionTypes.TOGGLE_REGISTER_APP_MODAL, this.updateShow); + } + componentWillUnmount() { + ModalStore.removeModalListener(ActionTypes.TOGGLE_REGISTER_APP_MODAL, this.updateShow); + } + updateShow(show) { + if (!show) { + if (this.state.clientId !== '' && !this.state.saved) { + return; + } + + this.setState({ + clientId: '', + clientSecret: '', + saved: false, + homepageError: null, + callbackError: null, + serverError: null, + nameError: null + }); + } + + this.setState({show}); } - register() { + handleSubmit(e) { + e.preventDefault(); + var state = this.state; state.serverError = null; @@ -94,6 +130,7 @@ export default class RegisterAppModal extends React.Component { } var body = ''; + var footer = ''; if (this.state.clientId === '') { body = ( <div className='settings-modal'> @@ -148,24 +185,29 @@ export default class RegisterAppModal extends React.Component { </div> </div> {serverError} - <hr /> - <a - className='btn btn-sm theme pull-right' - href='#' - data-dismiss='modal' - aria-label='Close' - > - {'Cancel'} - </a> - <a - className='btn btn-sm btn-primary pull-right' - onClick={this.register} - > - {'Register'} - </a> </div> </div> ); + + footer = ( + <div> + <button + type='button' + className='btn btn-default' + onClick={() => this.updateShow(false)} + > + {'Cancel'} + </button> + <button + onClick={this.handleSubmit} + type='submit' + className='btn btn-primary' + tabIndex='3' + > + {'Register'} + </button> + </div> + ); } else { var btnClass = ' disabled'; if (this.state.saved) { @@ -173,17 +215,35 @@ export default class RegisterAppModal extends React.Component { } body = ( - <div className='form-group user-settings'> - <h3>{'Your Application Credentials'}</h3> - <br/> - <br/> - <label className='col-sm-12 control-label'>{'Client ID: '}{this.state.clientId}</label> - <label className='col-sm-12 control-label'>{'Client Secret: '}{this.state.clientSecret}</label> + <div className='form-horizontal user-settings'> + <h4 className='padding-bottom x3'>{'Your Application Credentials'}</h4> <br/> + <div className='row'> + <label className='col-sm-4 control-label'>{'Client ID'}</label> + <div className='col-sm-7'> + <input + className='form-control' + type='text' + value={this.state.clientId} + readOnly='true' + /> + </div> + </div> <br/> + <div className='row padding-top x2'> + <label className='col-sm-4 control-label'>{'Client Secret'}</label> + <div className='col-sm-7'> + <input + className='form-control' + type='text' + value={this.state.clientSecret} + readOnly='true' + /> + </div> + </div> <br/> <br/> - <strong>{'Save these somewhere SAFE and SECURE. We can retrieve your Client Id if you lose it, but your Client Secret will be lost forever if you were to lose it.'}</strong> + <strong>{'Save these somewhere SAFE and SECURE. Treat your Client ID as your app\'s username and your Client Secret as the app\'s password.'}</strong> <br/> <br/> <div className='checkbox'> @@ -192,56 +252,50 @@ export default class RegisterAppModal extends React.Component { ref='save' type='checkbox' checked={this.state.saved} - onClick={this.save} - > - {'I have saved both my Client Id and Client Secret somewhere safe'} - </input> + onChange={this.save} + /> + {'I have saved both my Client Id and Client Secret somewhere safe'} </label> </div> - <a - className={'btn btn-sm btn-primary pull-right' + btnClass} - href='#' - data-dismiss='modal' - aria-label='Close' - > - {'Close'} - </a> </div> ); + + footer = ( + <a + className={'btn btn-sm btn-primary pull-right' + btnClass} + href='#' + onClick={(e) => { + e.preventDefault(); + this.updateShow(false); + }} + > + {'Close'} + </a> + ); } return ( - <div - className='modal fade' - ref='modal' - id='register_app' - role='dialog' - aria-hidden='true' - > - <div className='modal-dialog'> - <div className='modal-content'> - <div className='modal-header'> - <button - type='button' - className='close' - data-dismiss='modal' - aria-label='Close' - > - <span aria-hidden='true'>{'×'}</span> - </button> - <h4 - className='modal-title' - ref='title' - > - {'Developer Applications'} - </h4> - </div> - <div className='modal-body'> - {body} - </div> - </div> - </div> - </div> + <span> + <Modal + show={this.state.show} + onHide={() => this.updateShow(false)} + > + <Modal.Header closeButton={true}> + <Modal.Title>{'Developer Applications'}</Modal.Title> + </Modal.Header> + <form + role='form' + className='form-horizontal' + > + <Modal.Body> + {body} + </Modal.Body> + <Modal.Footer> + {footer} + </Modal.Footer> + </form> + </Modal> + </span> ); } } diff --git a/web/react/components/removed_from_channel_modal.jsx b/web/react/components/removed_from_channel_modal.jsx index 7cf0a2ef1..69d038c22 100644 --- a/web/react/components/removed_from_channel_modal.jsx +++ b/web/react/components/removed_from_channel_modal.jsx @@ -1,10 +1,10 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var ChannelStore = require('../stores/channel_store.jsx'); -var UserStore = require('../stores/user_store.jsx'); -var BrowserStore = require('../stores/browser_store.jsx'); -var utils = require('../utils/utils.jsx'); +import ChannelStore from '../stores/channel_store.jsx'; +import UserStore from '../stores/user_store.jsx'; +import BrowserStore from '../stores/browser_store.jsx'; +import * as utils from '../utils/utils.jsx'; export default class RemovedFromChannelModal extends React.Component { constructor(props) { diff --git a/web/react/components/rename_channel_modal.jsx b/web/react/components/rename_channel_modal.jsx index 9fb3af035..c16216c68 100644 --- a/web/react/components/rename_channel_modal.jsx +++ b/web/react/components/rename_channel_modal.jsx @@ -1,10 +1,11 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const Utils = require('../utils/utils.jsx'); -const Client = require('../utils/client.jsx'); -const AsyncClient = require('../utils/async_client.jsx'); -const ChannelStore = require('../stores/channel_store.jsx'); +import * as Utils from '../utils/utils.jsx'; +import * as Client from '../utils/client.jsx'; +import * as AsyncClient from '../utils/async_client.jsx'; +import ChannelStore from '../stores/channel_store.jsx'; +import Constants from '../utils/constants.jsx'; export default class RenameChannelModal extends React.Component { constructor(props) { @@ -36,10 +37,10 @@ export default class RenameChannelModal extends React.Component { return; } - let channel = ChannelStore.get(this.state.channelId); + const channel = ChannelStore.get(this.state.channelId); const oldName = channel.name; const oldDisplayName = channel.displayName; - let state = {serverError: ''}; + const state = {serverError: ''}; channel.display_name = this.state.displayName.trim(); if (!channel.display_name) { @@ -60,7 +61,7 @@ export default class RenameChannelModal extends React.Component { state.nameError = 'This field must be less than 22 characters'; state.invalid = true; } else { - let cleanedName = Utils.cleanUpUrlable(channel.name); + const cleanedName = Utils.cleanUpUrlable(channel.name); if (cleanedName === channel.name) { state.nameError = ''; } else { @@ -76,7 +77,7 @@ export default class RenameChannelModal extends React.Component { } Client.updateChannel(channel, - function handleUpdateSuccess() { + () => { $(ReactDOM.findDOMNode(this.refs.modal)).modal('hide'); AsyncClient.getChannel(channel.id); @@ -84,12 +85,12 @@ export default class RenameChannelModal extends React.Component { ReactDOM.findDOMNode(this.refs.displayName).value = ''; ReactDOM.findDOMNode(this.refs.channelName).value = ''; - }.bind(this), - function handleUpdateError(err) { + }, + (err) => { state.serverError = err.message; state.invalid = true; this.setState(state); - }.bind(this) + } ); } onNameChange() { @@ -99,10 +100,12 @@ export default class RenameChannelModal extends React.Component { this.setState({displayName: ReactDOM.findDOMNode(this.refs.displayName).value}); } displayNameKeyUp() { - const displayName = ReactDOM.findDOMNode(this.refs.displayName).value.trim(); - const channelName = Utils.cleanUpUrlable(displayName); - ReactDOM.findDOMNode(this.refs.channelName).value = channelName; - this.setState({channelName: channelName}); + if (this.state.channelName !== Constants.DEFAULT_CHANNEL) { + const displayName = ReactDOM.findDOMNode(this.refs.displayName).value.trim(); + const channelName = Utils.cleanUpUrlable(displayName); + ReactDOM.findDOMNode(this.refs.channelName).value = channelName; + this.setState({channelName: channelName}); + } } handleClose() { this.setState({ @@ -150,6 +153,15 @@ export default class RenameChannelModal extends React.Component { serverError = <div className='form-group has-error'><label className='control-label'>{this.state.serverError}</label></div>; } + let handleInputLabel = 'Handle'; + let handleInputClass = 'form-control'; + let readOnlyHandleInput = false; + if (this.state.channelName === Constants.DEFAULT_CHANNEL) { + handleInputLabel += ' - Cannot be changed for the default channel'; + handleInputClass += ' disabled-input'; + readOnlyHandleInput = true; + } + return ( <div className='modal fade' @@ -167,15 +179,15 @@ export default class RenameChannelModal extends React.Component { className='close' data-dismiss='modal' > - <span aria-hidden='true'>×</span> - <span className='sr-only'>Close</span> + <span aria-hidden='true'>{'×'}</span> + <span className='sr-only'>{'Close'}</span> </button> - <h4 className='modal-title'>Rename Channel</h4> + <h4 className='modal-title'>{'Rename Channel'}</h4> </div> <form role='form'> <div className='modal-body'> <div className={displayNameClass}> - <label className='control-label'>Display Name</label> + <label className='control-label'>{'Display Name'}</label> <input onKeyUp={this.displayNameKeyUp} onChange={this.onDisplayNameChange} @@ -190,15 +202,16 @@ export default class RenameChannelModal extends React.Component { {displayNameError} </div> <div className={nameClass}> - <label className='control-label'>Handle</label> + <label className='control-label'>{handleInputLabel}</label> <input onChange={this.onNameChange} type='text' - className='form-control' + className={handleInputClass} ref='channelName' placeholder='lowercase alphanumeric's only' value={this.state.channelName} maxLength='64' + readOnly={readOnlyHandleInput} /> {nameError} </div> @@ -210,14 +223,14 @@ export default class RenameChannelModal extends React.Component { className='btn btn-default' data-dismiss='modal' > - Cancel + {'Cancel'} </button> <button onClick={this.handleSubmit} type='submit' className='btn btn-primary' > - Save + {'Save'} </button> </div> </form> diff --git a/web/react/components/rhs_comment.jsx b/web/react/components/rhs_comment.jsx index 8c6324c72..7aae5177e 100644 --- a/web/react/components/rhs_comment.jsx +++ b/web/react/components/rhs_comment.jsx @@ -1,19 +1,20 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var PostStore = require('../stores/post_store.jsx'); -var ChannelStore = require('../stores/channel_store.jsx'); -var UserProfile = require('./user_profile.jsx'); -var UserStore = require('../stores/user_store.jsx'); -var AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -var Utils = require('../utils/utils.jsx'); -var Constants = require('../utils/constants.jsx'); -var FileAttachmentList = require('./file_attachment_list.jsx'); -var Client = require('../utils/client.jsx'); -var AsyncClient = require('../utils/async_client.jsx'); +import PostStore from '../stores/post_store.jsx'; +import ChannelStore from '../stores/channel_store.jsx'; +import UserProfile from './user_profile.jsx'; +import UserStore from '../stores/user_store.jsx'; +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import * as Utils from '../utils/utils.jsx'; +import Constants from '../utils/constants.jsx'; +import FileAttachmentList from './file_attachment_list.jsx'; +import * as Client from '../utils/client.jsx'; +import * as AsyncClient from '../utils/async_client.jsx'; var ActionTypes = Constants.ActionTypes; -var TextFormatting = require('../utils/text_formatting.jsx'); -var twemoji = require('twemoji'); +import * as TextFormatting from '../utils/text_formatting.jsx'; +import twemoji from 'twemoji'; +import * as EventHelpers from '../dispatcher/event_helpers.jsx'; export default class RhsComment extends React.Component { constructor(props) { @@ -61,7 +62,7 @@ export default class RhsComment extends React.Component { this.parseEmojis(); } shouldComponentUpdate(nextProps) { - if (!Utils.areStatesEqual(nextProps.post, this.props.post)) { + if (!Utils.areObjectsEqual(nextProps.post, this.props.post)) { return true; } @@ -114,12 +115,7 @@ export default class RhsComment extends React.Component { <a href='#' role='menuitem' - data-toggle='modal' - data-target='#delete_post' - data-title='Comment' - data-postid={post.id} - data-channelid={post.channel_id} - data-comments={0} + onClick={() => EventHelpers.showDeletePostModal(post, 0)} > {'Delete'} </a> @@ -135,7 +131,7 @@ export default class RhsComment extends React.Component { <div className='dropdown'> <a href='#' - className='dropdown-toggle theme' + className='post__dropdown dropdown-toggle' type='button' data-toggle='dropdown' aria-expanded='false' @@ -197,38 +193,39 @@ export default class RhsComment extends React.Component { return ( <div className={'post ' + currentUserCss}> - <div className='post-profile-img__container'> - <img - className='post-profile-img' - src={'/api/v1/users/' + post.user_id + '/image?time=' + timestamp + '&' + Utils.getSessionIndex()} - height='36' - width='36' - /> - </div> <div className='post__content'> - <ul className='post-header'> - <li className='post-header-col'> - <strong><UserProfile userId={post.user_id} /></strong> - </li> - <li className='post-header-col'> - <time className='post-profile-time'> - {Utils.displayCommentDateTime(post.create_at)} - </time> - </li> - <li className='post-header-col post-header__reply'> - {dropdown} - </li> - </ul> - <div className='post-body'> - <div className={postClass}> - {loading} - <div - ref='message_holder' - onClick={TextFormatting.handleClick} - dangerouslySetInnerHTML={{__html: TextFormatting.formatText(post.message)}} - /> + <div className='post__img'> + <img + src={'/api/v1/users/' + post.user_id + '/image?time=' + timestamp + '&' + Utils.getSessionIndex()} + height='36' + width='36' + /> + </div> + <div> + <ul className='post__header'> + <li className='col__name'> + <strong><UserProfile userId={post.user_id} /></strong> + </li> + <li className='col'> + <time className='post__time'> + {Utils.displayCommentDateTime(post.create_at)} + </time> + </li> + <li className='col col__reply'> + {dropdown} + </li> + </ul> + <div className='post__body'> + <div className={postClass}> + {loading} + <div + ref='message_holder' + onClick={TextFormatting.handleClick} + dangerouslySetInnerHTML={{__html: TextFormatting.formatText(post.message)}} + /> + </div> + {fileAttachment} </div> - {fileAttachment} </div> </div> </div> diff --git a/web/react/components/rhs_header_post.jsx b/web/react/components/rhs_header_post.jsx index 856eea91d..990b33eb5 100644 --- a/web/react/components/rhs_header_post.jsx +++ b/web/react/components/rhs_header_post.jsx @@ -1,8 +1,8 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -const Constants = require('../utils/constants.jsx'); +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import Constants from '../utils/constants.jsx'; const ActionTypes = Constants.ActionTypes; export default class RhsHeaderPost extends React.Component { diff --git a/web/react/components/rhs_root_post.jsx b/web/react/components/rhs_root_post.jsx index e3b023841..dd9a793be 100644 --- a/web/react/components/rhs_root_post.jsx +++ b/web/react/components/rhs_root_post.jsx @@ -1,15 +1,18 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var ChannelStore = require('../stores/channel_store.jsx'); -var UserProfile = require('./user_profile.jsx'); -var UserStore = require('../stores/user_store.jsx'); -var TextFormatting = require('../utils/text_formatting.jsx'); -var utils = require('../utils/utils.jsx'); -var FileAttachmentList = require('./file_attachment_list.jsx'); -var twemoji = require('twemoji'); -var Constants = require('../utils/constants.jsx'); -const PostBodyAdditionalContent = require('./post_body_additional_content.jsx'); +import ChannelStore from '../stores/channel_store.jsx'; +import UserProfile from './user_profile.jsx'; +import UserStore from '../stores/user_store.jsx'; +import * as TextFormatting from '../utils/text_formatting.jsx'; +import * as utils from '../utils/utils.jsx'; +import * as Emoji from '../utils/emoticons.jsx'; +import FileAttachmentList from './file_attachment_list.jsx'; +import twemoji from 'twemoji'; +import PostBodyAdditionalContent from './post_body_additional_content.jsx'; +import * as EventHelpers from '../dispatcher/event_helpers.jsx'; + +import Constants from '../utils/constants.jsx'; export default class RhsRootPost extends React.Component { constructor(props) { @@ -20,13 +23,17 @@ export default class RhsRootPost extends React.Component { this.state = {}; } parseEmojis() { - twemoji.parse(ReactDOM.findDOMNode(this), {size: Constants.EMOJI_SIZE}); + twemoji.parse(ReactDOM.findDOMNode(this), { + className: 'emoji twemoji', + base: '', + folder: Emoji.getImagePathForEmoticon() + }); } componentDidMount() { this.parseEmojis(); } shouldComponentUpdate(nextProps) { - if (!utils.areStatesEqual(nextProps.post, this.props.post)) { + if (!utils.areObjectsEqual(nextProps.post, this.props.post)) { return true; } @@ -37,7 +44,9 @@ export default class RhsRootPost extends React.Component { } render() { var post = this.props.post; - var isOwner = UserStore.getCurrentId() === post.user_id; + var currentUser = UserStore.getCurrentUser(); + var isOwner = currentUser.id === post.user_id; + var isAdmin = utils.isAdmin(currentUser.roles); var timestamp = UserStore.getProfile(post.user_id).update_at; var channel = ChannelStore.get(post.channel_id); @@ -51,6 +60,11 @@ export default class RhsRootPost extends React.Component { currentUserCss = 'current--user'; } + var systemMessageClass = ''; + if (utils.isSystemMessage(post)) { + systemMessageClass = 'post--system'; + } + var channelName; if (channel) { if (channel.type === 'D') { @@ -60,12 +74,55 @@ export default class RhsRootPost extends React.Component { } } - var ownerOptions; + var dropdownContents = []; + if (isOwner) { - ownerOptions = ( - <div> - <a href='#' - className='dropdown-toggle theme' + dropdownContents.push( + <li + key='rhs-root-edit' + role='presentation' + > + <a + href='#' + role='menuitem' + data-toggle='modal' + data-target='#edit_post' + data-refocusid='#reply_textbox' + data-title={type} + data-message={post.message} + data-postid={post.id} + data-channelid={post.channel_id} + > + {'Edit'} + </a> + </li> + ); + } + + if (isOwner || isAdmin) { + dropdownContents.push( + <li + key='rhs-root-delete' + role='presentation' + > + <a + href='#' + role='menuitem' + onClick={() => EventHelpers.showDeletePostModal(post, this.props.commentCount)} + > + {'Delete'} + </a> + </li> + ); + } + + var rootOptions = ''; + if (dropdownContents.length > 0) { + rootOptions = ( + <div className='dropdown'> + <a + href='#' + className='post__dropdown dropdown-toggle' type='button' data-toggle='dropdown' aria-expanded='false' @@ -74,35 +131,7 @@ export default class RhsRootPost extends React.Component { className='dropdown-menu' role='menu' > - <li role='presentation'> - <a - href='#' - role='menuitem' - data-toggle='modal' - data-target='#edit_post' - data-refocusid='#reply_textbox' - data-title={type} - data-message={post.message} - data-postid={post.id} - data-channelid={post.channel_id} - > - Edit - </a> - </li> - <li role='presentation'> - <a - href='#' - role='menuitem' - data-toggle='modal' - data-target='#delete_post' - data-title={type} - data-postid={post.id} - data-channelid={post.channel_id} - data-comments={this.props.commentCount} - > - Delete - </a> - </li> + {dropdownContents} </ul> </div> ); @@ -133,7 +162,16 @@ export default class RhsRootPost extends React.Component { ); } - botIndicator = <li className='post-header-col post-header__name bot-indicator'>{'BOT'}</li>; + botIndicator = <li className='col col__name bot-indicator'>{'BOT'}</li>; + } else if (utils.isSystemMessage(post)) { + userProfile = ( + <UserProfile + userId={''} + overwriteName={Constants.SYSTEM_MESSAGE_PROFILE_NAME} + overwriteImage={Constants.SYSTEM_MESSAGE_PROFILE_IMAGE} + disablePopover={true} + /> + ); } let src = '/api/v1/users/' + post.user_id + '/image?time=' + timestamp + '&' + utils.getSessionIndex(); @@ -141,50 +179,52 @@ export default class RhsRootPost extends React.Component { if (post.props.override_icon_url) { src = post.props.override_icon_url; } + } else if (utils.isSystemMessage(post)) { + src = Constants.SYSTEM_MESSAGE_PROFILE_IMAGE; } const profilePic = ( - <div className='post-profile-img__container'> - <img - className='post-profile-img' - src={src} - height='36' - width='36' - /> - </div> + <img + className='post-profile-img' + src={src} + height='36' + width='36' + /> ); return ( - <div className={'post post--root ' + currentUserCss}> + <div className={'post post--root ' + currentUserCss + ' ' + systemMessageClass}> <div className='post-right-channel__name'>{channelName}</div> - <div className='post-profile-img__container'> - {profilePic} - </div> <div className='post__content'> - <ul className='post-header'> - <li className='post-header-col'><strong>{userProfile}</strong></li> - {botIndicator} - <li className='post-header-col'> - <time className='post-profile-time'> - {utils.displayCommentDateTime(post.create_at)} - </time> - </li> - <li className='post-header-col post-header__reply'> - <div className='dropdown'> - {ownerOptions} - </div> - </li> - </ul> - <div className='post-body'> - <div - ref='message_holder' - onClick={TextFormatting.handleClick} - dangerouslySetInnerHTML={{__html: TextFormatting.formatText(post.message)}} - /> - <PostBodyAdditionalContent - post={post} - /> - {fileAttachment} + <div className='post__img'> + {profilePic} + </div> + <div> + <ul className='post__header'> + <li className='col__name'>{userProfile}</li> + {botIndicator} + <li className='col'> + <time className='post__time'> + {utils.displayCommentDateTime(post.create_at)} + </time> + </li> + <li className='col col__reply'> + <div> + {rootOptions} + </div> + </li> + </ul> + <div className='post__body'> + <div + ref='message_holder' + onClick={TextFormatting.handleClick} + dangerouslySetInnerHTML={{__html: TextFormatting.formatText(post.message)}} + /> + <PostBodyAdditionalContent + post={post} + /> + {fileAttachment} + </div> </div> </div> <hr /> diff --git a/web/react/components/rhs_thread.jsx b/web/react/components/rhs_thread.jsx index fe57bed28..2edcd8b37 100644 --- a/web/react/components/rhs_thread.jsx +++ b/web/react/components/rhs_thread.jsx @@ -1,17 +1,17 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var PostStore = require('../stores/post_store.jsx'); -var UserStore = require('../stores/user_store.jsx'); -var PreferenceStore = require('../stores/preference_store.jsx'); -var Utils = require('../utils/utils.jsx'); -var SearchBox = require('./search_bar.jsx'); -var CreateComment = require('./create_comment.jsx'); -var RhsHeaderPost = require('./rhs_header_post.jsx'); -var RootPost = require('./rhs_root_post.jsx'); -var Comment = require('./rhs_comment.jsx'); -var Constants = require('../utils/constants.jsx'); -var FileUploadOverlay = require('./file_upload_overlay.jsx'); +import PostStore from '../stores/post_store.jsx'; +import UserStore from '../stores/user_store.jsx'; +import PreferenceStore from '../stores/preference_store.jsx'; +import * as Utils from '../utils/utils.jsx'; +import SearchBox from './search_bar.jsx'; +import CreateComment from './create_comment.jsx'; +import RhsHeaderPost from './rhs_header_post.jsx'; +import RootPost from './rhs_root_post.jsx'; +import Comment from './rhs_comment.jsx'; +import Constants from '../utils/constants.jsx'; +import FileUploadOverlay from './file_upload_overlay.jsx'; export default class RhsThread extends React.Component { constructor(props) { @@ -82,7 +82,7 @@ export default class RhsThread extends React.Component { } onChange() { var newState = this.getStateFromStores(); - if (!Utils.areStatesEqual(newState, this.state)) { + if (!Utils.areObjectsEqual(newState, this.state)) { this.setState(newState); } } @@ -94,14 +94,22 @@ export default class RhsThread extends React.Component { return; } - var currentPosts = PostStore.getPosts(currentSelected.posts[currentSelected.order[0]].channel_id); + var currentPosts = PostStore.getVisiblePosts(currentSelected.posts[currentSelected.order[0]].channel_id); if (!currentPosts || currentPosts.order.length === 0) { return; } if (currentPosts.posts[currentPosts.order[0]].channel_id === currentSelected.posts[currentSelected.order[0]].channel_id) { - currentSelected.posts = {}; + for (var key in currentSelected.posts) { + if (currentSelected.posts.hasOwnProperty(key)) { + var post = currentSelected.posts[key]; + if (post.pending_post_id) { + Reflect.deleteProperty(currentSelected.posts, key); + } + } + } + for (var postId in currentPosts.posts) { if (currentPosts.posts.hasOwnProperty(postId)) { currentSelected.posts[postId] = currentPosts.posts[postId]; @@ -112,13 +120,11 @@ export default class RhsThread extends React.Component { } var newState = this.getStateFromStores(); - if (!Utils.areStatesEqual(newState, this.state)) { + if (!Utils.areObjectsEqual(newState, this.state)) { this.setState(newState); } } resize() { - var height = this.state.windowHeight - $('#error_bar').outerHeight() - 100; - $('.post-right__scroll').css('height', height + 'px'); $('.post-right__scroll').scrollTop(100000); if (this.state.windowWidth > 768) { $('.post-right__scroll').perfectScrollbar(); diff --git a/web/react/components/search_autocomplete.jsx b/web/react/components/search_autocomplete.jsx deleted file mode 100644 index d245c6bac..000000000 --- a/web/react/components/search_autocomplete.jsx +++ /dev/null @@ -1,339 +0,0 @@ -// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -const ChannelStore = require('../stores/channel_store.jsx'); -const KeyCodes = require('../utils/constants.jsx').KeyCodes; -const Popover = ReactBootstrap.Popover; -const UserStore = require('../stores/user_store.jsx'); -const Utils = require('../utils/utils.jsx'); -const Constants = require('../utils/constants.jsx'); - -const patterns = new Map([ - ['channels', /\b(?:in|channel):\s*(\S*)$/i], - ['users', /\bfrom:\s*(\S*)$/i] -]); - -export default class SearchAutocomplete extends React.Component { - constructor(props) { - super(props); - - this.handleClick = this.handleClick.bind(this); - this.handleDocumentClick = this.handleDocumentClick.bind(this); - this.handleInputChange = this.handleInputChange.bind(this); - this.handleKeyDown = this.handleKeyDown.bind(this); - - this.completeWord = this.completeWord.bind(this); - this.getSelection = this.getSelection.bind(this); - this.scrollToItem = this.scrollToItem.bind(this); - this.updateSuggestions = this.updateSuggestions.bind(this); - - this.renderChannelSuggestion = this.renderChannelSuggestion.bind(this); - this.renderUserSuggestion = this.renderUserSuggestion.bind(this); - - this.state = { - show: false, - mode: '', - filter: '', - selection: 0, - suggestions: new Map() - }; - } - - componentDidMount() { - $(document).on('click', this.handleDocumentClick); - } - - componentDidUpdate(prevProps, prevState) { - const content = $(ReactDOM.findDOMNode(this.refs.searchPopover)).find('.popover-content'); - - if (this.state.show) { - if (!prevState.show) { - content.perfectScrollbar(); - content.css('max-height', $(window).height() - 200); - } - - // keep the keyboard selection visible when scrolling - this.scrollToItem(this.getSelection()); - } - } - - componentWillUnmount() { - $(document).off('click', this.handleDocumentClick); - } - - handleClick(value) { - this.completeWord(value); - } - - handleDocumentClick(e) { - const container = $(ReactDOM.findDOMNode(this.refs.searchPopover)); - - if (!(container.is(e.target) || container.has(e.target).length > 0)) { - this.setState({ - show: false - }); - } - } - - handleInputChange(textbox, text) { - const caret = Utils.getCaretPosition(textbox); - const preText = text.substring(0, caret); - - let mode = ''; - let filter = ''; - for (const [modeForPattern, pattern] of patterns) { - const result = pattern.exec(preText); - - if (result) { - mode = modeForPattern; - filter = result[1]; - break; - } - } - - if (mode !== this.state.mode || filter !== this.state.filter) { - this.updateSuggestions(mode, filter); - } - - this.setState({ - mode, - filter, - show: mode || filter - }); - } - - handleKeyDown(e) { - if (!this.state.show || this.state.suggestions.length === 0) { - return; - } - - if (e.which === KeyCodes.UP || e.which === KeyCodes.DOWN) { - e.preventDefault(); - - let selection = this.state.selection; - - if (e.which === KeyCodes.UP) { - selection -= 1; - } else { - selection += 1; - } - - if (selection >= 0 && selection < this.state.suggestions.length) { - this.setState({ - selection - }); - } - } else if (e.which === KeyCodes.ENTER || e.which === KeyCodes.SPACE) { - e.preventDefault(); - - this.completeWord(this.getSelection()); - } - } - - completeWord(value) { - // add a space so that anything else typed doesn't interfere with the search flag - this.props.completeWord(this.state.filter, value + ' '); - - this.setState({ - show: false, - mode: '', - filter: '', - selection: 0 - }); - } - - getSelection() { - if (this.state.mode === 'channels') { - return this.state.suggestions[this.state.selection].name; - } else if (this.state.mode === 'users') { - return this.state.suggestions[this.state.selection].username; - } - - return ''; - } - - scrollToItem(itemName) { - const content = $(ReactDOM.findDOMNode(this.refs.searchPopover)).find('.popover-content'); - const visibleContentHeight = content[0].clientHeight; - const actualContentHeight = content[0].scrollHeight; - - if (this.state.suggestions.length > 0 && visibleContentHeight < actualContentHeight) { - const contentTop = content.scrollTop(); - const contentTopPadding = parseInt(content.css('padding-top'), 10); - const contentBottomPadding = parseInt(content.css('padding-top'), 10); - - const item = $(this.refs[itemName]); - const itemTop = item[0].offsetTop - parseInt(item.css('margin-top'), 10); - const itemBottom = item[0].offsetTop + item.height() + parseInt(item.css('margin-bottom'), 10); - - if (itemTop - contentTopPadding < contentTop) { - // the item is off the top of the visible space - content.scrollTop(itemTop - contentTopPadding); - } else if (itemBottom + contentTopPadding + contentBottomPadding > contentTop + visibleContentHeight) { - // the item has gone off the bottom of the visible space - content.scrollTop(itemBottom - visibleContentHeight + contentTopPadding + contentBottomPadding); - } - } - } - - updateSuggestions(mode, filter) { - let suggestions = []; - - if (mode === 'channels') { - let channels = ChannelStore.getAll(); - - if (filter) { - channels = channels.filter((channel) => channel.name.startsWith(filter) && channel.type !== 'D'); - } else { - // don't show direct channels - channels = channels.filter((channel) => channel.type !== 'D'); - } - - channels.sort((a, b) => { - // put public channels first and then sort alphabebetically - if (a.type === b.type) { - return a.name.localeCompare(b.name); - } else if (a.type === Constants.OPEN_CHANNEL) { - return -1; - } - - return 1; - }); - - suggestions = channels; - } else if (mode === 'users') { - let users = UserStore.getActiveOnlyProfileList(); - - if (filter) { - users = users.filter((user) => user.username.startsWith(filter)); - } - - users.sort((a, b) => a.username.localeCompare(b.username)); - - suggestions = users; - } - - let selection = this.state.selection; - - // keep the same user/channel selected if it's still visible as a suggestion - if (selection > 0 && this.state.suggestions.length > 0) { - // we can't just use indexOf to find if the selection is still in the list since they are different javascript objects - const currentSelectionId = this.state.suggestions[selection].id; - let found = false; - - for (let i = 0; i < suggestions.length; i++) { - if (suggestions[i].id === currentSelectionId) { - selection = i; - found = true; - - break; - } - } - - if (!found) { - selection = 0; - } - } else { - selection = 0; - } - - this.setState({ - suggestions, - selection - }); - } - - renderChannelSuggestion(channel) { - let className = 'search-autocomplete__item'; - if (channel.name === this.getSelection()) { - className += ' selected'; - } - - return ( - <div - key={channel.name} - ref={channel.name} - onClick={this.handleClick.bind(this, channel.name)} - className={className} - > - {channel.name} - </div> - ); - } - - renderUserSuggestion(user) { - let className = 'search-autocomplete__item'; - if (user.username === this.getSelection()) { - className += ' selected'; - } - - return ( - <div - key={user.username} - ref={user.username} - onClick={this.handleClick.bind(this, user.username)} - className={className} - > - <img - className='profile-img rounded' - src={'/api/v1/users/' + user.id + '/image?time=' + user.update_at} - /> - {user.username} - </div> - ); - } - - render() { - if (!this.state.show || this.state.suggestions.length === 0) { - return null; - } - - let suggestions = []; - - if (this.state.mode === 'channels') { - const publicChannels = this.state.suggestions.filter((channel) => channel.type === Constants.OPEN_CHANNEL); - if (publicChannels.length > 0) { - suggestions.push( - <div - key='public-channel-divider' - className='search-autocomplete__divider' - > - <span>{'Public ' + Utils.getChannelTerm(Constants.OPEN_CHANNEL) + 's'}</span> - </div> - ); - suggestions = suggestions.concat(publicChannels.map(this.renderChannelSuggestion)); - } - - const privateChannels = this.state.suggestions.filter((channel) => channel.type === Constants.PRIVATE_CHANNEL); - if (privateChannels.length > 0) { - suggestions.push( - <div - key='private-channel-divider' - className='search-autocomplete__divider' - > - <span>{'Private ' + Utils.getChannelTerm(Constants.PRIVATE_CHANNEL) + 's'}</span> - </div> - ); - suggestions = suggestions.concat(privateChannels.map(this.renderChannelSuggestion)); - } - } else if (this.state.mode === 'users') { - suggestions = this.state.suggestions.map(this.renderUserSuggestion); - } - - return ( - <Popover - ref='searchPopover' - onShow={this.componentDidMount} - id='search-autocomplete__popover' - className='search-help-popover autocomplete visible' - placement='bottom' - > - {suggestions} - </Popover> - ); - } -} - -SearchAutocomplete.propTypes = { - completeWord: React.PropTypes.func.isRequired -}; diff --git a/web/react/components/search_bar.jsx b/web/react/components/search_bar.jsx index 90865475b..77c9e39b9 100644 --- a/web/react/components/search_bar.jsx +++ b/web/react/components/search_bar.jsx @@ -1,15 +1,18 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var client = require('../utils/client.jsx'); -var AsyncClient = require('../utils/async_client.jsx'); -var SearchStore = require('../stores/search_store.jsx'); -var AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -var utils = require('../utils/utils.jsx'); -var Constants = require('../utils/constants.jsx'); +import * as client from '../utils/client.jsx'; +import * as AsyncClient from '../utils/async_client.jsx'; +import SearchStore from '../stores/search_store.jsx'; +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import SuggestionBox from './suggestion/suggestion_box.jsx'; +import SearchChannelProvider from './suggestion/search_channel_provider.jsx'; +import SearchSuggestionList from './suggestion/search_suggestion_list.jsx'; +import SearchUserProvider from './suggestion/search_user_provider.jsx'; +import * as utils from '../utils/utils.jsx'; +import Constants from '../utils/constants.jsx'; var ActionTypes = Constants.ActionTypes; var Popover = ReactBootstrap.Popover; -var SearchAutocomplete = require('./search_autocomplete.jsx'); export default class SearchBar extends React.Component { constructor() { @@ -17,17 +20,17 @@ export default class SearchBar extends React.Component { this.mounted = false; this.onListenerChange = this.onListenerChange.bind(this); - this.handleKeyDown = this.handleKeyDown.bind(this); this.handleUserInput = this.handleUserInput.bind(this); this.handleUserFocus = this.handleUserFocus.bind(this); this.handleUserBlur = this.handleUserBlur.bind(this); this.performSearch = this.performSearch.bind(this); this.handleSubmit = this.handleSubmit.bind(this); - this.completeWord = this.completeWord.bind(this); const state = this.getSearchTermStateFromStores(); state.focused = false; this.state = state; + + this.suggestionProviders = [new SearchChannelProvider(), new SearchUserProvider()]; } getSearchTermStateFromStores() { var term = SearchStore.getSearchTerm() || ''; @@ -46,7 +49,7 @@ export default class SearchBar extends React.Component { onListenerChange(doSearch, isMentionSearch) { if (this.mounted) { var newState = this.getSearchTermStateFromStores(); - if (!utils.areStatesEqual(newState, this.state)) { + if (!utils.areObjectsEqual(newState, this.state)) { this.setState(newState); } if (doSearch) { @@ -77,18 +80,11 @@ export default class SearchBar extends React.Component { results: null }); } - handleKeyDown(e) { - if (this.refs.autocomplete) { - this.refs.autocomplete.handleKeyDown(e); - } - } - handleUserInput(e) { - var term = e.target.value; + handleUserInput(text) { + var term = text; SearchStore.storeSearchTerm(term); SearchStore.emitSearchTermChange(false); this.setState({searchTerm: term}); - - this.refs.autocomplete.handleInputChange(e.target, term); } handleUserBlur() { this.setState({focused: false}); @@ -128,23 +124,6 @@ export default class SearchBar extends React.Component { this.performSearch(this.state.searchTerm.trim()); } - completeWord(partialWord, word) { - const textbox = ReactDOM.findDOMNode(this.refs.search); - let text = textbox.value; - - const caret = utils.getCaretPosition(textbox); - const preText = text.substring(0, caret - partialWord.length); - const postText = text.substring(caret); - text = preText + word + postText; - - textbox.value = text; - utils.setCaretPosition(textbox, preText.length + word.length); - - SearchStore.storeSearchTerm(text); - SearchStore.emitSearchTermChange(false); - this.setState({searchTerm: text}); - } - render() { var isSearching = null; if (this.state.isSearching) { @@ -178,22 +157,18 @@ export default class SearchBar extends React.Component { autoComplete='off' > <span className='glyphicon glyphicon-search sidebar__search-icon' /> - <input - type='text' + <SuggestionBox ref='search' className='form-control search-bar' placeholder='Search' value={this.state.searchTerm} onFocus={this.handleUserFocus} onBlur={this.handleUserBlur} - onChange={this.handleUserInput} - onKeyDown={this.handleKeyDown} + onUserInput={this.handleUserInput} + listComponent={SearchSuggestionList} + providers={this.suggestionProviders} /> {isSearching} - <SearchAutocomplete - ref='autocomplete' - completeWord={this.completeWord} - /> <Popover id='searchbar-help-popup' placement='bottom' diff --git a/web/react/components/search_results.jsx b/web/react/components/search_results.jsx index b56a7b006..141181701 100644 --- a/web/react/components/search_results.jsx +++ b/web/react/components/search_results.jsx @@ -1,12 +1,12 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var SearchStore = require('../stores/search_store.jsx'); -var UserStore = require('../stores/user_store.jsx'); -var SearchBox = require('./search_bar.jsx'); -var Utils = require('../utils/utils.jsx'); -var SearchResultsHeader = require('./search_results_header.jsx'); -var SearchResultsItem = require('./search_results_item.jsx'); +import SearchStore from '../stores/search_store.jsx'; +import UserStore from '../stores/user_store.jsx'; +import SearchBox from './search_bar.jsx'; +import * as Utils from '../utils/utils.jsx'; +import SearchResultsHeader from './search_results_header.jsx'; +import SearchResultsItem from './search_results_item.jsx'; function getStateFromStores() { return {results: SearchStore.getSearchResults()}; @@ -55,15 +55,13 @@ export default class SearchResults extends React.Component { onChange() { if (this.mounted) { var newState = getStateFromStores(); - if (!Utils.areStatesEqual(newState, this.state)) { + if (!Utils.areObjectsEqual(newState, this.state)) { this.setState(newState); } } } resize() { - var height = this.state.windowHeight - $('#error_bar').outerHeight() - 100; - $('#search-items-container').css('height', height + 'px'); $('#search-items-container').scrollTop(0); if (this.state.windowWidth > 768) { $('#search-items-container').perfectScrollbar(); @@ -82,14 +80,27 @@ export default class SearchResults extends React.Component { var ctls = null; - if (noResults) { + if (!searchTerm && noResults) { + ctls = ( + <div className='sidebar--right__subheader'> + <ul> + <li> + {'Use '}<b>{'"quotation marks"'}</b>{' to search for phrases'} + </li> + <li> + {'Use '}<b>{'from:'}</b>{' to find posts from specific users and '}<b>{'in:'}</b>{' to find posts in specific channels'} + </li> + </ul> + </div> + ); + } else if (noResults) { ctls = ( <div className='sidebar--right__subheader'> <h4>{'NO RESULTS'}</h4> <ul> - <li>If you're searching a partial phrase (ex. searching "rea", looking for "reach" or "reaction"), append a * to your search term</li> - <li>Due to the volume of results, two letter searches and common words like "this", "a" and "is" won't appear in search results</li> + <li>{'If you\'re searching a partial phrase (ex. searching "rea", looking for "reach" or "reaction"), append a * to your search term'}</li> + <li>{'Due to the volume of results, two letter searches and common words like "this", "a" and "is" won\'t appear in search results'}</li> </ul> </div> ); diff --git a/web/react/components/search_results_header.jsx b/web/react/components/search_results_header.jsx index fdd449c2d..581976494 100644 --- a/web/react/components/search_results_header.jsx +++ b/web/react/components/search_results_header.jsx @@ -1,8 +1,8 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -var Constants = require('../utils/constants.jsx'); +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import Constants from '../utils/constants.jsx'; var ActionTypes = Constants.ActionTypes; export default class SearchResultsHeader extends React.Component { diff --git a/web/react/components/search_results_item.jsx b/web/react/components/search_results_item.jsx index a8bd4db2c..f71abf971 100644 --- a/web/react/components/search_results_item.jsx +++ b/web/react/components/search_results_item.jsx @@ -1,54 +1,38 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var SearchStore = require('../stores/search_store.jsx'); -var ChannelStore = require('../stores/channel_store.jsx'); -var UserStore = require('../stores/user_store.jsx'); -var UserProfile = require('./user_profile.jsx'); -var utils = require('../utils/utils.jsx'); -var client = require('../utils/client.jsx'); -var AsyncClient = require('../utils/async_client.jsx'); -var AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -var Constants = require('../utils/constants.jsx'); -var TextFormatting = require('../utils/text_formatting.jsx'); -var ActionTypes = Constants.ActionTypes; +import ChannelStore from '../stores/channel_store.jsx'; +import UserStore from '../stores/user_store.jsx'; +import UserProfile from './user_profile.jsx'; +import * as EventHelpers from '../dispatcher/event_helpers.jsx'; +import * as utils from '../utils/utils.jsx'; +import * as TextFormatting from '../utils/text_formatting.jsx'; + +import Constants from '../utils/constants.jsx'; export default class SearchResultsItem extends React.Component { constructor(props) { super(props); this.handleClick = this.handleClick.bind(this); + this.handleFocusRHSClick = this.handleFocusRHSClick.bind(this); } handleClick(e) { e.preventDefault(); - var self = this; - - client.getPost( - this.props.post.channel_id, - this.props.post.id, - function success(data) { - AppDispatcher.handleServerAction({ - type: ActionTypes.RECIEVED_POST_SELECTED, - post_list: data, - from_search: SearchStore.getSearchTerm() - }); + EventHelpers.emitPostFocusEvent(this.props.post.id); - AppDispatcher.handleServerAction({ - type: ActionTypes.RECIEVED_SEARCH, - results: null, - is_mention_search: self.props.isMentionSearch - }); - }, - function success(err) { - AsyncClient.dispatchError(err, 'getPost'); - } - ); + if ($(window).width() < 768) { + $('.sidebar--right').removeClass('move--left'); + $('.inner__wrap').removeClass('move--left'); + } + } - var postChannel = ChannelStore.get(this.props.post.channel_id); + handleFocusRHSClick(e) { + e.preventDefault(); - utils.switchChannel(postChannel); + EventHelpers.emitPostFocusRightHandSideEvent(this.props.post); } render() { @@ -71,32 +55,52 @@ export default class SearchResultsItem extends React.Component { return ( <div className='search-item-container post' - onClick={this.handleClick} > <div className='search-channel__name'>{channelName}</div> - <div className='post-profile-img__container'> - <img - className='post-profile-img' - src={'/api/v1/users/' + this.props.post.user_id + '/image?time=' + timestamp + '&' + utils.getSessionIndex()} - height='36' - width='36' - /> - </div> <div className='post__content'> - <ul className='post-header'> - <li className='post-header-col'><strong><UserProfile userId={this.props.post.user_id} /></strong></li> - <li className='post-header-col'> - <time className='search-item-time'> - {utils.displayDate(this.props.post.create_at) + ' ' + utils.displayTime(this.props.post.create_at)} - </time> - </li> - </ul> - <div className='search-item-snippet'> - <span - onClick={this.handleClick} - dangerouslySetInnerHTML={{__html: TextFormatting.formatText(this.props.post.message, formattingOptions)}} + <div className='post__img'> + <img + src={'/api/v1/users/' + this.props.post.user_id + '/image?time=' + timestamp + '&' + utils.getSessionIndex()} + height='36' + width='36' /> </div> + <div> + <ul className='post__header'> + <li className='col__name'><strong><UserProfile userId={this.props.post.user_id} /></strong></li> + <li className='col'> + <time className='search-item-time'> + {utils.displayDate(this.props.post.create_at) + ' ' + utils.displayTime(this.props.post.create_at)} + </time> + </li> + <li> + <a + href='#' + className='search-item__jump' + onClick={this.handleClick} + > + {'Jump'} + </a> + </li> + <li> + <a + href='#' + className='comment-icon__container search-item__comment' + onClick={this.handleFocusRHSClick} + > + <span + className='comment-icon' + dangerouslySetInnerHTML={{__html: Constants.COMMENT_ICON}} + /> + </a> + </li> + </ul> + <div className='search-item-snippet'> + <span + dangerouslySetInnerHTML={{__html: TextFormatting.formatText(this.props.post.message, formattingOptions)}} + /> + </div> + </div> </div> </div> ); diff --git a/web/react/components/settings_sidebar.jsx b/web/react/components/settings_sidebar.jsx index 68d9cea48..4af46c35a 100644 --- a/web/react/components/settings_sidebar.jsx +++ b/web/react/components/settings_sidebar.jsx @@ -1,14 +1,10 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var utils = require('../utils/utils.jsx'); export default class SettingsSidebar extends React.Component { componentDidUpdate() { $('.settings-modal').find('.modal-body').scrollTop(0); $('.settings-modal').find('.modal-body').perfectScrollbar('update'); - if (utils.isSafari()) { - $('.settings-modal .settings-links .nav').addClass('absolute'); - } } constructor(props) { super(props); diff --git a/web/react/components/sidebar.jsx b/web/react/components/sidebar.jsx index 0b1abe4fe..8393440cb 100644 --- a/web/react/components/sidebar.jsx +++ b/web/react/components/sidebar.jsx @@ -1,26 +1,24 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const NewChannelFlow = require('./new_channel_flow.jsx'); -const MoreDirectChannels = require('./more_direct_channels.jsx'); -const SearchBox = require('./search_bar.jsx'); -const SidebarHeader = require('./sidebar_header.jsx'); -const UnreadChannelIndicator = require('./unread_channel_indicator.jsx'); -const TutorialTip = require('./tutorial/tutorial_tip.jsx'); - -const ChannelStore = require('../stores/channel_store.jsx'); -const UserStore = require('../stores/user_store.jsx'); -const TeamStore = require('../stores/team_store.jsx'); -const PreferenceStore = require('../stores/preference_store.jsx'); - -const AsyncClient = require('../utils/async_client.jsx'); -const Client = require('../utils/client.jsx'); -const Utils = require('../utils/utils.jsx'); - -const Constants = require('../utils/constants.jsx'); +import NewChannelFlow from './new_channel_flow.jsx'; +import MoreDirectChannels from './more_direct_channels.jsx'; +import SidebarHeader from './sidebar_header.jsx'; +import UnreadChannelIndicator from './unread_channel_indicator.jsx'; +import TutorialTip from './tutorial/tutorial_tip.jsx'; + +import ChannelStore from '../stores/channel_store.jsx'; +import UserStore from '../stores/user_store.jsx'; +import TeamStore from '../stores/team_store.jsx'; +import PreferenceStore from '../stores/preference_store.jsx'; + +import * as AsyncClient from '../utils/async_client.jsx'; +import * as Client from '../utils/client.jsx'; +import * as Utils from '../utils/utils.jsx'; + +import Constants from '../utils/constants.jsx'; const Preferences = Constants.Preferences; const TutorialSteps = Constants.TutorialSteps; -const NotificationPrefs = Constants.NotificationPrefs; const Tooltip = ReactBootstrap.Tooltip; const OverlayTrigger = ReactBootstrap.OverlayTrigger; @@ -39,7 +37,6 @@ export default class Sidebar extends React.Component { this.onScroll = this.onScroll.bind(this); this.updateUnreadIndicators = this.updateUnreadIndicators.bind(this); this.handleLeaveDirectChannel = this.handleLeaveDirectChannel.bind(this); - this.updateScrollbar = this.updateScrollbar.bind(this); this.handleResize = this.handleResize.bind(this); this.showNewChannelModal = this.showNewChannelModal.bind(this); @@ -49,8 +46,6 @@ export default class Sidebar extends React.Component { this.createChannelElement = this.createChannelElement.bind(this); this.updateTitle = this.updateTitle.bind(this); - this.setUnreadCountPerChannel = this.setUnreadCountPerChannel.bind(this); - this.getUnreadCount = this.getUnreadCount.bind(this); this.isLeaving = new Map(); @@ -60,43 +55,15 @@ export default class Sidebar extends React.Component { state.loadingDMChannel = -1; state.windowWidth = Utils.windowWidth(); this.state = state; - - this.unreadCountPerChannel = {}; - this.setUnreadCountPerChannel(); - } - setUnreadCountPerChannel() { - const channels = ChannelStore.getAll(); - const members = ChannelStore.getAllMembers(); - const channelUnreadCounts = {}; - - channels.forEach((ch) => { - const chMember = members[ch.id]; - let chMentionCount = chMember.mention_count; - let chUnreadCount = ch.total_msg_count - chMember.msg_count - chMentionCount; - - if (ch.type === 'D') { - chMentionCount = chUnreadCount; - chUnreadCount = 0; - } else if (chMember.notify_props && chMember.notify_props.mark_unread === NotificationPrefs.MENTION) { - chUnreadCount = 0; - } - - channelUnreadCounts[ch.id] = {msgs: chUnreadCount, mentions: chMentionCount}; - }); - - this.unreadCountPerChannel = channelUnreadCounts; } - getUnreadCount(channelId) { - let mentions = 0; + getTotalUnreadCount() { let msgs = 0; + let mentions = 0; + const unreadCounts = this.state.unreadCounts; - if (channelId) { - return this.unreadCountPerChannel[channelId] ? this.unreadCountPerChannel[channelId] : {msgs, mentions}; - } - - Object.keys(this.unreadCountPerChannel).forEach((chId) => { - msgs += this.unreadCountPerChannel[chId].msgs; - mentions += this.unreadCountPerChannel[chId].mentions; + Object.keys(unreadCounts).forEach((chId) => { + msgs += unreadCounts[chId].msgs; + mentions += unreadCounts[chId].mentions; }); return {msgs, mentions}; @@ -104,47 +71,47 @@ export default class Sidebar extends React.Component { getStateFromStores() { const members = ChannelStore.getAllMembers(); const currentChannelId = ChannelStore.getCurrentId(); + const currentUserId = UserStore.getCurrentId(); const channels = Object.assign([], ChannelStore.getAll()); + channels.sort((a, b) => a.display_name.localeCompare(b.display_name)); + const publicChannels = channels.filter((channel) => channel.type === Constants.OPEN_CHANNEL); const privateChannels = channels.filter((channel) => channel.type === Constants.PRIVATE_CHANNEL); - const directChannels = channels.filter((channel) => channel.type === Constants.DM_CHANNEL); const preferences = PreferenceStore.getPreferences(Constants.Preferences.CATEGORY_DIRECT_CHANNEL_SHOW); - var visibleDirectChannels = []; - for (var i = 0; i < directChannels.length; i++) { - const dm = directChannels[i]; - const teammate = Utils.getDirectTeammate(dm.id); - if (!teammate) { + const directChannels = []; + for (const preference of preferences) { + if (preference.value !== 'true') { continue; } - const member = members[dm.id]; - const msgCount = dm.total_msg_count - member.msg_count; + const teammateId = preference.name; - // always show a channel if either it is the current one or if it is unread, but it is not currently being left - const forceShow = (currentChannelId === dm.id || msgCount > 0) && !this.isLeaving.get(dm.id); - const preferenceShow = preferences.some((preference) => (preference.name === teammate.id && preference.value !== 'false')); + let directChannel = channels.find(Utils.isDirectChannelForUser.bind(null, teammateId)); - if (preferenceShow || forceShow) { - dm.display_name = Utils.displayUsername(teammate.id); - dm.teammate_id = teammate.id; - dm.status = UserStore.getStatus(teammate.id); + // a direct channel doesn't exist yet so create a fake one + if (!directChannel) { + directChannel = { + name: Utils.getDirectChannelName(currentUserId, teammateId), + last_post_at: 0, + total_msg_count: 0, + type: Constants.DM_CHANNEL, + fake: true + }; + } - visibleDirectChannels.push(dm); + directChannel.display_name = Utils.displayUsername(teammateId); + directChannel.teammate_id = teammateId; + directChannel.status = UserStore.getStatus(teammateId); - if (forceShow && !preferenceShow) { - // make sure that unread direct channels are visible - const preference = PreferenceStore.setPreference(Constants.Preferences.CATEGORY_DIRECT_CHANNEL_SHOW, teammate.id, 'true'); - AsyncClient.savePreferences([preference]); - } - } + directChannels.push(directChannel); } - const hiddenDirectChannelCount = UserStore.getActiveOnlyProfileList(true).length - visibleDirectChannels.length; + directChannels.sort(this.sortChannelsByDisplayName); - visibleDirectChannels.sort(this.sortChannelsByDisplayName); + const hiddenDirectChannelCount = UserStore.getActiveOnlyProfileList(true).length - directChannels.length; const tutorialPref = PreferenceStore.getPreference(Preferences.TUTORIAL_STEP, UserStore.getCurrentId(), {value: '999'}); @@ -153,8 +120,9 @@ export default class Sidebar extends React.Component { members, publicChannels, privateChannels, - visibleDirectChannels, + directChannels, hiddenDirectChannelCount, + unreadCounts: JSON.parse(JSON.stringify(ChannelStore.getUnreadCounts())), showTutorialTip: parseInt(tutorialPref.value, 10) === TutorialSteps.CHANNEL_POPOVER }; } @@ -168,12 +136,15 @@ export default class Sidebar extends React.Component { this.updateTitle(); this.updateUnreadIndicators(); - this.updateScrollbar(); window.addEventListener('resize', this.handleResize); + + if ($(window).width() > 768) { + $('.nav-pills__container').perfectScrollbar(); + } } shouldComponentUpdate(nextProps, nextState) { - if (!Utils.areStatesEqual(nextState, this.state)) { + if (!Utils.areObjectsEqual(nextState, this.state)) { return true; } return false; @@ -181,7 +152,6 @@ export default class Sidebar extends React.Component { componentDidUpdate() { this.updateTitle(); this.updateUnreadIndicators(); - this.updateScrollbar(); } componentWillUnmount() { window.removeEventListener('resize', this.handleResize); @@ -198,17 +168,8 @@ export default class Sidebar extends React.Component { windowHeight: Utils.windowHeight() }); } - updateScrollbar() { - if (this.state.windowWidth > 768) { - $('.nav-pills__container').perfectScrollbar(); - $('.nav-pills__container').perfectScrollbar('update'); - } - } onChange() { - var newState = this.getStateFromStores(); - if (!Utils.areStatesEqual(newState, this.state)) { - this.setState(newState); - } + this.setState(this.getStateFromStores()); } updateTitle() { const channel = ChannelStore.getCurrent(); @@ -223,7 +184,7 @@ export default class Sidebar extends React.Component { currentChannelName = Utils.getDirectTeammate(channel.id).username; } - const unread = this.getUnreadCount(); + const unread = this.getTotalUnreadCount(); const mentionTitle = unread.mentions > 0 ? '(' + unread.mentions + ') ' : ''; const unreadTitle = unread.msgs > 0 ? '* ' : ''; document.title = mentionTitle + unreadTitle + currentChannelName + ' - ' + TeamStore.getCurrent().display_name + ' ' + currentSiteName; @@ -349,13 +310,13 @@ export default class Sidebar extends React.Component { } createChannelElement(channel, index, arr, handleClose) { - var members = this.state.members; - var activeId = this.state.activeId; - var channelMember = members[channel.id]; - var unreadCount = this.getUnreadCount(channel.id); - var msgCount; + const members = this.state.members; + const activeId = this.state.activeId; + const channelMember = members[channel.id]; + const unreadCount = this.state.unreadCounts[channel.id] || {msgs: 0, mentions: 0}; + let msgCount; - var linkClass = ''; + let linkClass = ''; if (channel.id === activeId) { linkClass = 'active'; } @@ -512,8 +473,6 @@ export default class Sidebar extends React.Component { render() { this.badgesActive = false; - this.setUnreadCountPerChannel(); - // keep track of the first and last unread channels so we can use them to set the unread indicators this.firstUnreadChannel = null; this.lastUnreadChannel = null; @@ -523,7 +482,7 @@ export default class Sidebar extends React.Component { const privateChannelItems = this.state.privateChannels.map(this.createChannelElement); - const directMessageItems = this.state.visibleDirectChannels.map((channel, index, arr) => { + const directMessageItems = this.state.directChannels.map((channel, index, arr) => { return this.createChannelElement(channel, index, arr, this.handleLeaveDirectChannel); }); @@ -587,7 +546,6 @@ export default class Sidebar extends React.Component { teamName={TeamStore.getCurrent().name} teamType={TeamStore.getCurrent().type} /> - <SearchBox /> <UnreadChannelIndicator show={this.state.showTopUnread} diff --git a/web/react/components/sidebar_header.jsx b/web/react/components/sidebar_header.jsx index bc7f6ba50..20f4fd511 100644 --- a/web/react/components/sidebar_header.jsx +++ b/web/react/components/sidebar_header.jsx @@ -1,14 +1,14 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const NavbarDropdown = require('./navbar_dropdown.jsx'); -const TutorialTip = require('./tutorial/tutorial_tip.jsx'); +import NavbarDropdown from './navbar_dropdown.jsx'; +import TutorialTip from './tutorial/tutorial_tip.jsx'; -const UserStore = require('../stores/user_store.jsx'); -const PreferenceStore = require('../stores/preference_store.jsx'); +import UserStore from '../stores/user_store.jsx'; +import PreferenceStore from '../stores/preference_store.jsx'; -const Utils = require('../utils/utils.jsx'); -const Constants = require('../utils/constants.jsx'); +import * as Utils from '../utils/utils.jsx'; +import Constants from '../utils/constants.jsx'; const Preferences = Constants.Preferences; const TutorialSteps = Constants.TutorialSteps; diff --git a/web/react/components/sidebar_right.jsx b/web/react/components/sidebar_right.jsx index e2ef60959..ac1049da0 100644 --- a/web/react/components/sidebar_right.jsx +++ b/web/react/components/sidebar_right.jsx @@ -1,15 +1,13 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var SearchResults = require('./search_results.jsx'); -var RhsThread = require('./rhs_thread.jsx'); -var SearchStore = require('../stores/search_store.jsx'); -var PostStore = require('../stores/post_store.jsx'); -var Utils = require('../utils/utils.jsx'); +import SearchResults from './search_results.jsx'; +import RhsThread from './rhs_thread.jsx'; +import SearchStore from '../stores/search_store.jsx'; +import PostStore from '../stores/post_store.jsx'; +import * as Utils from '../utils/utils.jsx'; -function getStateFromStores() { - return {search_visible: SearchStore.getSearchResults() != null, post_right_visible: PostStore.getSelectedPost() != null, is_mention_search: SearchStore.getIsMentionSearch()}; -} +const SIDEBAR_SCROLL_DELAY = 500; export default class SidebarRight extends React.Component { constructor(props) { @@ -19,22 +17,37 @@ export default class SidebarRight extends React.Component { this.onSelectedChange = this.onSelectedChange.bind(this); this.onSearchChange = this.onSearchChange.bind(this); + this.onShowSearch = this.onShowSearch.bind(this); this.doStrangeThings = this.doStrangeThings.bind(this); - this.state = getStateFromStores(); + this.state = this.getStateFromStores(); + } + getStateFromStores() { + return { + search_visible: SearchStore.getSearchResults() != null, + post_right_visible: PostStore.getSelectedPost() != null, + is_mention_search: SearchStore.getIsMentionSearch() + }; } componentDidMount() { SearchStore.addSearchChangeListener(this.onSearchChange); PostStore.addSelectedPostChangeListener(this.onSelectedChange); + SearchStore.addShowSearchListener(this.onShowSearch); this.doStrangeThings(); } componentWillUnmount() { SearchStore.removeSearchChangeListener(this.onSearchChange); PostStore.removeSelectedPostChangeListener(this.onSelectedChange); + SearchStore.removeShowSearchListener(this.onShowSearch); } - componentWillUpdate() { - PostStore.jumpPostsViewSidebarOpen(); + componentWillUpdate(nextProps, nextState) { + const isOpen = this.state.search_visible || this.state.post_right_visible; + const willOpen = nextState.search_visible || nextState.post_right_visible; + + if (!isOpen && willOpen) { + setTimeout(() => PostStore.jumpPostsViewSidebarOpen(), SIDEBAR_SCROLL_DELAY); + } } doStrangeThings() { // We should have a better way to do this stuff @@ -64,18 +77,25 @@ export default class SidebarRight extends React.Component { this.doStrangeThings(); } onSelectedChange(fromSearch) { - var newState = getStateFromStores(fromSearch); + var newState = this.getStateFromStores(fromSearch); newState.from_search = fromSearch; - if (!Utils.areStatesEqual(newState, this.state)) { + if (!Utils.areObjectsEqual(newState, this.state)) { this.setState(newState); } } onSearchChange() { - var newState = getStateFromStores(); - if (!Utils.areStatesEqual(newState, this.state)) { + var newState = this.getStateFromStores(); + if (!Utils.areObjectsEqual(newState, this.state)) { this.setState(newState); } } + onShowSearch() { + if (!this.state.search_visible) { + this.setState({ + search_visible: true + }); + } + } render() { var content = ''; diff --git a/web/react/components/sidebar_right_menu.jsx b/web/react/components/sidebar_right_menu.jsx index 2135e3ef3..20c2bf696 100644 --- a/web/react/components/sidebar_right_menu.jsx +++ b/web/react/components/sidebar_right_menu.jsx @@ -1,12 +1,13 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var InviteMemberModal = require('./invite_member_modal.jsx'); -var UserSettingsModal = require('./user_settings/user_settings_modal.jsx'); -var UserStore = require('../stores/user_store.jsx'); -var TeamStore = require('../stores/team_store.jsx'); -var client = require('../utils/client.jsx'); -var utils = require('../utils/utils.jsx'); +import TeamMembersModal from './team_members_modal.jsx'; +import ToggleModalButton from './toggle_modal_button.jsx'; +import UserSettingsModal from './user_settings/user_settings_modal.jsx'; +import UserStore from '../stores/user_store.jsx'; +import * as client from '../utils/client.jsx'; +import * as EventHelpers from '../dispatcher/event_helpers.jsx'; +import * as utils from '../utils/utils.jsx'; export default class SidebarRightMenu extends React.Component { componentDidMount() { @@ -46,9 +47,9 @@ export default class SidebarRightMenu extends React.Component { <li> <a href='#' - onClick={InviteMemberModal.show} + onClick={EventHelpers.showInviteMemberModal} > - <i className='glyphicon glyphicon-user'></i>Invite New Member + <i className='fa fa-user'></i>{'Invite New Member'} </a> </li> ); @@ -56,12 +57,12 @@ export default class SidebarRightMenu extends React.Component { if (this.props.teamType === 'O') { teamLink = ( <li> - <a href='#' - data-toggle='modal' - data-target='#get_link' - data-title='Team Invite' - data-value={utils.getWindowLocationOrigin() + '/signup_user_complete/?id=' + TeamStore.getCurrent().invite_id} - ><i className='glyphicon glyphicon-link'></i>Get Team Invite Link</a> + <a + href='#' + onClick={EventHelpers.showGetTeamInviteLinkModal} + > + <i className='glyphicon glyphicon-link'></i>{'Get Team Invite Link'} + </a> </li> ); } @@ -74,28 +75,25 @@ export default class SidebarRightMenu extends React.Component { href='#' data-toggle='modal' data-target='#team_settings' - ><i className='glyphicon glyphicon-globe'></i>Team Settings</a> + ><i className='fa fa-globe'></i>{'Team Settings'}</a> </li> ); manageLink = ( <li> - <a - href='#' - data-toggle='modal' - data-target='#team_members' - > - <i className='glyphicon glyphicon-wrench'></i>Manage Members</a> + <ToggleModalButton dialogType={TeamMembersModal}> + <i className='fa fa-users'></i>{'Manage Members'} + </ToggleModalButton> </li> ); } - if (isSystemAdmin) { + if (isSystemAdmin && !utils.isMobile()) { consoleLink = ( <li> <a href={'/admin_console?' + utils.getSessionIndex()} > - <i className='glyphicon glyphicon-wrench'></i>System Console</a> + <i className='fa fa-wrench'></i>{'System Console'}</a> </li> ); } @@ -109,6 +107,27 @@ export default class SidebarRightMenu extends React.Component { teamDisplayName = this.props.teamDisplayName; } + let helpLink = null; + if (global.window.mm_config.HelpLink) { + helpLink = ( + <li> + <a + target='_blank' + href={global.window.mm_config.HelpLink} + ><i className='fa fa-question'></i>{'Help'}</a></li> + ); + } + + let reportLink = null; + if (global.window.mm_config.ReportAProblemLink) { + reportLink = ( + <li> + <a + target='_blank' + href={global.window.mm_config.ReportAProblemLink} + ><i className='fa fa-phone'></i>{'Report a Problem'}</a></li> + ); + } return ( <div> <div className='team__header theme'> @@ -125,7 +144,7 @@ export default class SidebarRightMenu extends React.Component { href='#' onClick={() => this.setState({showUserSettingsModal: true})} > - <i className='glyphicon glyphicon-cog'></i>Account Settings + <i className='fa fa-cog'></i>{'Account Settings'} </a> </li> {teamSettingsLink} @@ -137,18 +156,10 @@ export default class SidebarRightMenu extends React.Component { <a href='#' onClick={this.handleLogoutClick} - ><i className='glyphicon glyphicon-log-out'></i>Logout</a></li> + ><i className='fa fa-sign-out'></i>{'Logout'}</a></li> <li className='divider'></li> - <li> - <a - target='_blank' - href='/static/help/configure_links.html' - ><i className='glyphicon glyphicon-question-sign'></i>Help</a></li> - <li> - <a - target='_blank' - href='/static/help/configure_links.html' - ><i className='glyphicon glyphicon-earphone'></i>Report a Problem</a></li> + {helpLink} + {reportLink} </ul> </div> <UserSettingsModal diff --git a/web/react/components/signup_team.jsx b/web/react/components/signup_team.jsx index 516765a3f..0ac837326 100644 --- a/web/react/components/signup_team.jsx +++ b/web/react/components/signup_team.jsx @@ -1,10 +1,10 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const ChoosePage = require('./team_signup_choose_auth.jsx'); -const EmailSignUpPage = require('./team_signup_with_email.jsx'); -const SSOSignupPage = require('./team_signup_with_sso.jsx'); -const Constants = require('../utils/constants.jsx'); +import ChoosePage from './team_signup_choose_auth.jsx'; +import EmailSignUpPage from './team_signup_with_email.jsx'; +import SSOSignupPage from './team_signup_with_sso.jsx'; +import Constants from '../utils/constants.jsx'; export default class TeamSignUp extends React.Component { constructor(props) { diff --git a/web/react/components/signup_team_complete.jsx b/web/react/components/signup_team_complete.jsx index c30132885..6c7fd57b3 100644 --- a/web/react/components/signup_team_complete.jsx +++ b/web/react/components/signup_team_complete.jsx @@ -1,13 +1,13 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var WelcomePage = require('./team_signup_welcome_page.jsx'); -var TeamDisplayNamePage = require('./team_signup_display_name_page.jsx'); -var TeamURLPage = require('./team_signup_url_page.jsx'); -var SendInivtesPage = require('./team_signup_send_invites_page.jsx'); -var UsernamePage = require('./team_signup_username_page.jsx'); -var PasswordPage = require('./team_signup_password_page.jsx'); -var BrowserStore = require('../stores/browser_store.jsx'); +import WelcomePage from './team_signup_welcome_page.jsx'; +import TeamDisplayNamePage from './team_signup_display_name_page.jsx'; +import TeamURLPage from './team_signup_url_page.jsx'; +import SendInivtesPage from './team_signup_send_invites_page.jsx'; +import UsernamePage from './team_signup_username_page.jsx'; +import PasswordPage from './team_signup_password_page.jsx'; +import BrowserStore from '../stores/browser_store.jsx'; export default class SignupTeamComplete extends React.Component { constructor(props) { diff --git a/web/react/components/signup_user_complete.jsx b/web/react/components/signup_user_complete.jsx index d70ea5065..2bde78726 100644 --- a/web/react/components/signup_user_complete.jsx +++ b/web/react/components/signup_user_complete.jsx @@ -1,10 +1,10 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Utils = require('../utils/utils.jsx'); -var client = require('../utils/client.jsx'); -var UserStore = require('../stores/user_store.jsx'); -var BrowserStore = require('../stores/browser_store.jsx'); +import * as Utils from '../utils/utils.jsx'; +import * as client from '../utils/client.jsx'; +import UserStore from '../stores/user_store.jsx'; +import BrowserStore from '../stores/browser_store.jsx'; export default class SignupUserComplete extends React.Component { constructor(props) { diff --git a/web/react/components/suggestion/at_mention_provider.jsx b/web/react/components/suggestion/at_mention_provider.jsx new file mode 100644 index 000000000..8c2893448 --- /dev/null +++ b/web/react/components/suggestion/at_mention_provider.jsx @@ -0,0 +1,100 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import SuggestionStore from '../../stores/suggestion_store.jsx'; +import UserStore from '../../stores/user_store.jsx'; +import * as Utils from '../../utils/utils.jsx'; + +class AtMentionSuggestion extends React.Component { + render() { + const {item, isSelection, onClick} = this.props; + + let username; + let description; + let icon; + if (item.username === 'all') { + username = 'all'; + description = 'Notifies everyone in the team'; + icon = <i className='mention-img fa fa-users fa-2x' />; + } else if (item.username === 'channel') { + username = 'channel'; + description = 'Notifies everyone in the channel'; + icon = <i className='mention-img fa fa-users fa-2x' />; + } else { + username = item.username; + description = Utils.getFullName(item); + icon = ( + <img + className='mention-img' + src={'/api/v1/users/' + item.id + '/image?time=' + item.update_at + '&' + Utils.getSessionIndex()} + /> + ); + } + + let className = 'mentions-name'; + if (isSelection) { + className += ' suggestion--selected'; + } + + return ( + <div + className={className} + onClick={onClick} + > + <div className='pull-left'> + {icon} + </div> + <div className='pull-left mention-align'> + <span> + {'@' + username} + </span> + <span className='mention-fullname'> + {description} + </span> + </div> + </div> + ); + } +} + +AtMentionSuggestion.propTypes = { + item: React.PropTypes.object.isRequired, + isSelection: React.PropTypes.bool, + onClick: React.PropTypes.func +}; + +export default class AtMentionProvider { + handlePretextChanged(suggestionId, pretext) { + const captured = (/@([a-z0-9\-\._]*)$/i).exec(pretext); + if (captured) { + const usernamePrefix = captured[1]; + + const users = UserStore.getProfiles(); + let filtered = []; + + for (const id of Object.keys(users)) { + const user = users[id]; + + if (user.username.startsWith(usernamePrefix)) { + filtered.push(user); + } + } + + // add dummy users to represent the @all and @channel special mentions + if ('all'.startsWith(usernamePrefix)) { + filtered.push({username: 'all'}); + } + + if ('channel'.startsWith(usernamePrefix)) { + filtered.push({username: 'channel'}); + } + + filtered = filtered.sort((a, b) => a.username.localeCompare(b.username)); + + const mentions = filtered.map((user) => '@' + user.username); + + SuggestionStore.setMatchedPretext(suggestionId, captured[0]); + SuggestionStore.addSuggestions(suggestionId, mentions, filtered, AtMentionSuggestion); + } + } +} diff --git a/web/react/components/suggestion/command_provider.jsx b/web/react/components/suggestion/command_provider.jsx new file mode 100644 index 000000000..91d556bb9 --- /dev/null +++ b/web/react/components/suggestion/command_provider.jsx @@ -0,0 +1,46 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import * as AsyncClient from '../../utils/async_client.jsx'; +import SuggestionStore from '../../stores/suggestion_store.jsx'; + +class CommandSuggestion extends React.Component { + render() { + const {item, isSelection, onClick} = this.props; + + let className = 'command-name'; + if (isSelection) { + className += ' suggestion--selected'; + } + + return ( + <div + className={className} + onClick={onClick} + > + <div className='command__title'> + <string>{item.suggestion}</string> + </div> + <div className='command__desc'> + {item.description} + </div> + </div> + ); + } +} + +CommandSuggestion.propTypes = { + item: React.PropTypes.object.isRequired, + isSelection: React.PropTypes.bool, + onClick: React.PropTypes.func +}; + +export default class CommandProvider { + handlePretextChanged(suggestionId, pretext) { + if (pretext.startsWith('/')) { + SuggestionStore.setMatchedPretext(suggestionId, pretext); + + AsyncClient.getSuggestedCommands(pretext, suggestionId, CommandSuggestion); + } + } +} diff --git a/web/react/components/suggestion/emoticon_provider.jsx b/web/react/components/suggestion/emoticon_provider.jsx new file mode 100644 index 000000000..fd470cf21 --- /dev/null +++ b/web/react/components/suggestion/emoticon_provider.jsx @@ -0,0 +1,91 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import SuggestionStore from '../../stores/suggestion_store.jsx'; +import * as Emoticons from '../../utils/emoticons.jsx'; + +const MAX_EMOTICON_SUGGESTIONS = 40; + +class EmoticonSuggestion extends React.Component { + render() { + const text = this.props.term; + const name = this.props.item; + + let className = 'emoticon-suggestion'; + if (this.props.isSelection) { + className += ' suggestion--selected'; + } + + return ( + <div + className={className} + onClick={this.props.onClick} + > + <div className='pull-left'> + <img + alt={text} + className='emoticon-suggestion__image' + src={Emoticons.getImagePathForEmoticon(name)} + title={text} + /> + </div> + <div className='pull-left'> + {text} + </div> + </div> + ); + } +} + +EmoticonSuggestion.propTypes = { + item: React.PropTypes.string.isRequired, + term: React.PropTypes.string.isRequired, + isSelection: React.PropTypes.bool, + onClick: React.PropTypes.func +}; + +export default class EmoticonProvider { + handlePretextChanged(suggestionId, pretext) { + const captured = (/(?:^|\s)(:([a-zA-Z0-9_+\-]*))$/g).exec(pretext); + if (captured) { + const text = captured[1]; + const partialName = captured[2]; + + const names = []; + + for (const emoticon of Emoticons.emoticonMap.keys()) { + if (emoticon.indexOf(partialName) !== -1) { + names.push(emoticon); + + if (names.length >= MAX_EMOTICON_SUGGESTIONS) { + break; + } + } + } + + // sort the emoticons so that emoticons starting with the entered text come first + names.sort((a, b) => { + const aPrefix = a.startsWith(partialName); + const bPrefix = b.startsWith(partialName); + + if (aPrefix === bPrefix) { + return a.localeCompare(b); + } else if (aPrefix) { + return -1; + } + + return 1; + }); + + const terms = names.map((name) => ':' + name + ':'); + + if (terms.length > 0) { + SuggestionStore.setMatchedPretext(suggestionId, text); + SuggestionStore.addSuggestions(suggestionId, terms, names, EmoticonSuggestion); + + // force the selection to be cleared since the order of elements may have changed + SuggestionStore.clearSelection(suggestionId); + } + } + } +} diff --git a/web/react/components/suggestion/search_channel_provider.jsx b/web/react/components/suggestion/search_channel_provider.jsx new file mode 100644 index 000000000..7547a9341 --- /dev/null +++ b/web/react/components/suggestion/search_channel_provider.jsx @@ -0,0 +1,69 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import ChannelStore from '../../stores/channel_store.jsx'; +import Constants from '../../utils/constants.jsx'; +import SuggestionStore from '../../stores/suggestion_store.jsx'; + +class SearchChannelSuggestion extends React.Component { + render() { + const {item, isSelection, onClick} = this.props; + + let className = 'search-autocomplete__item'; + if (isSelection) { + className += ' selected'; + } + + return ( + <div + onClick={onClick} + className={className} + > + {item.name} + </div> + ); + } +} + +SearchChannelSuggestion.propTypes = { + item: React.PropTypes.object.isRequired, + isSelection: React.PropTypes.bool, + onClick: React.PropTypes.func +}; + +export default class SearchChannelProvider { + handlePretextChanged(suggestionId, pretext) { + const captured = (/\b(?:in|channel):\s*(\S*)$/i).exec(pretext); + if (captured) { + const channelPrefix = captured[1]; + + const channels = ChannelStore.getAll(); + const publicChannels = []; + const privateChannels = []; + + for (const id of Object.keys(channels)) { + const channel = channels[id]; + + // don't show direct channels + if (channel.type !== Constants.DM_CHANNEL && channel.name.startsWith(channelPrefix)) { + if (channel.type === Constants.OPEN_CHANNEL) { + publicChannels.push(channel); + } else { + privateChannels.push(channel); + } + } + } + + publicChannels.sort((a, b) => a.name.localeCompare(b.name)); + const publicChannelNames = publicChannels.map((channel) => channel.name); + + privateChannels.sort((a, b) => a.name.localeCompare(b.name)); + const privateChannelNames = privateChannels.map((channel) => channel.name); + + SuggestionStore.setMatchedPretext(suggestionId, channelPrefix); + + SuggestionStore.addSuggestions(suggestionId, publicChannelNames, publicChannels, SearchChannelSuggestion); + SuggestionStore.addSuggestions(suggestionId, privateChannelNames, privateChannels, SearchChannelSuggestion); + } + } +} diff --git a/web/react/components/suggestion/search_suggestion_list.jsx b/web/react/components/suggestion/search_suggestion_list.jsx new file mode 100644 index 000000000..3378a33a0 --- /dev/null +++ b/web/react/components/suggestion/search_suggestion_list.jsx @@ -0,0 +1,86 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import Constants from '../../utils/constants.jsx'; +import SuggestionList from './suggestion_list.jsx'; +import * as Utils from '../../utils/utils.jsx'; + +export default class SearchSuggestionList extends SuggestionList { + componentDidUpdate(prevProps, prevState) { + if (this.state.items.length > 0 && prevState.items.length === 0) { + this.getContent().perfectScrollbar(); + } + } + + getContent() { + return $(ReactDOM.findDOMNode(this.refs.popover)).find('.popover-content'); + } + + renderChannelDivider(type) { + let text; + if (type === Constants.OPEN_CHANNEL) { + text = 'Public ' + Utils.getChannelTerm(type) + 's'; + } else { + text = 'Private ' + Utils.getChannelTerm(type) + 's'; + } + + return ( + <div + key={type + '-divider'} + className='search-autocomplete__divider' + > + <span>{text}</span> + </div> + ); + } + + render() { + if (this.state.items.length === 0) { + return null; + } + + const items = []; + for (let i = 0; i < this.state.items.length; i++) { + const item = this.state.items[i]; + const term = this.state.terms[i]; + const isSelection = term === this.state.selection; + + // ReactComponent names need to be upper case when used in JSX + const Component = this.state.components[i]; + + // temporary hack to add dividers between public and private channels in the search suggestion list + if (i === 0 || item.type !== this.state.items[i - 1].type) { + if (item.type === Constants.OPEN_CHANNEL) { + items.push(this.renderChannelDivider(Constants.OPEN_CHANNEL)); + } else if (item.type === Constants.PRIVATE_CHANNEL) { + items.push(this.renderChannelDivider(Constants.PRIVATE_CHANNEL)); + } + } + + items.push( + <Component + key={term} + ref={term} + item={item} + isSelection={isSelection} + onClick={this.handleItemClick.bind(this, term)} + /> + ); + } + + return ( + <ReactBootstrap.Popover + ref='popover' + id='search-autocomplete__popover' + className='search-help-popover autocomplete visible' + placement='bottom' + > + {items} + </ReactBootstrap.Popover> + ); + } +} + +SearchSuggestionList.propTypes = { + ...SuggestionList.propTypes +}; diff --git a/web/react/components/suggestion/search_user_provider.jsx b/web/react/components/suggestion/search_user_provider.jsx new file mode 100644 index 000000000..cf2953937 --- /dev/null +++ b/web/react/components/suggestion/search_user_provider.jsx @@ -0,0 +1,62 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import SuggestionStore from '../../stores/suggestion_store.jsx'; +import UserStore from '../../stores/user_store.jsx'; + +class SearchUserSuggestion extends React.Component { + render() { + const {item, isSelection, onClick} = this.props; + + let className = 'search-autocomplete__item'; + if (isSelection) { + className += ' selected'; + } + + return ( + <div + className={className} + onClick={onClick} + > + <img + className='profile-img rounded' + src={'/api/v1/users/' + item.id + '/image?time=' + item.update_at} + /> + {item.username} + </div> + ); + } +} + +SearchUserSuggestion.propTypes = { + item: React.PropTypes.object.isRequired, + isSelection: React.PropTypes.bool, + onClick: React.PropTypes.func +}; + +export default class SearchUserProvider { + handlePretextChanged(suggestionId, pretext) { + const captured = (/\bfrom:\s*(\S*)$/i).exec(pretext); + if (captured) { + const usernamePrefix = captured[1]; + + const users = UserStore.getProfiles(); + let filtered = []; + + for (const id of Object.keys(users)) { + const user = users[id]; + + if (user.username.startsWith(usernamePrefix)) { + filtered.push(user); + } + } + + filtered = filtered.sort((a, b) => a.username.localeCompare(b.username)); + + const usernames = filtered.map((user) => user.username); + + SuggestionStore.setMatchedPretext(suggestionId, usernamePrefix); + SuggestionStore.addSuggestions(suggestionId, usernames, filtered, SearchUserSuggestion); + } + } +} diff --git a/web/react/components/suggestion/suggestion_box.jsx b/web/react/components/suggestion/suggestion_box.jsx new file mode 100644 index 000000000..57a33c24a --- /dev/null +++ b/web/react/components/suggestion/suggestion_box.jsx @@ -0,0 +1,163 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import Constants from '../../utils/constants.jsx'; +import * as EventHelpers from '../../dispatcher/event_helpers.jsx'; +import SuggestionStore from '../../stores/suggestion_store.jsx'; +import * as Utils from '../../utils/utils.jsx'; + +const KeyCodes = Constants.KeyCodes; + +export default class SuggestionBox extends React.Component { + constructor(props) { + super(props); + + this.handleDocumentClick = this.handleDocumentClick.bind(this); + + this.handleChange = this.handleChange.bind(this); + this.handleCompleteWord = this.handleCompleteWord.bind(this); + this.handleKeyDown = this.handleKeyDown.bind(this); + this.handlePretextChanged = this.handlePretextChanged.bind(this); + + this.suggestionId = Utils.generateId(); + } + + componentDidMount() { + SuggestionStore.registerSuggestionBox(this.suggestionId); + $(document).on('click', this.handleDocumentClick); + + SuggestionStore.addCompleteWordListener(this.suggestionId, this.handleCompleteWord); + SuggestionStore.addPretextChangedListener(this.suggestionId, this.handlePretextChanged); + } + + componentWillUnmount() { + SuggestionStore.removeCompleteWordListener(this.suggestionId, this.handleCompleteWord); + SuggestionStore.removePretextChangedListener(this.suggestionId, this.handlePretextChanged); + + SuggestionStore.unregisterSuggestionBox(this.suggestionId); + $(document).off('click', this.handleDocumentClick); + } + + getTextbox() { + // this is to support old code that looks at the input/textarea DOM nodes + return ReactDOM.findDOMNode(this.refs.textbox); + } + + handleDocumentClick(e) { + const container = $(ReactDOM.findDOMNode(this)); + if (!(container.is(e.target) || container.has(e.target).length > 0)) { + // we can't just use blur for this because it fires and hides the children before + // their click handlers can be called + EventHelpers.emitClearSuggestions(this.suggestionId); + } + } + + handleChange(e) { + const textbox = ReactDOM.findDOMNode(this.refs.textbox); + const caret = Utils.getCaretPosition(textbox); + const pretext = textbox.value.substring(0, caret); + + EventHelpers.emitSuggestionPretextChanged(this.suggestionId, pretext); + + if (this.props.onUserInput) { + this.props.onUserInput(textbox.value); + } + + if (this.props.onChange) { + this.props.onChange(e); + } + } + + handleCompleteWord(term) { + const textbox = ReactDOM.findDOMNode(this.refs.textbox); + const caret = Utils.getCaretPosition(textbox); + + const text = this.props.value; + const prefix = text.substring(0, caret - SuggestionStore.getMatchedPretext(this.suggestionId).length); + const suffix = text.substring(caret); + + if (this.props.onUserInput) { + this.props.onUserInput(prefix + term + ' ' + suffix); + } + + // set the caret position after the next rendering + window.requestAnimationFrame(() => { + Utils.setCaretPosition(textbox, prefix.length + term.length + 1); + }); + } + + handleKeyDown(e) { + if (SuggestionStore.hasSuggestions(this.suggestionId)) { + if (e.which === KeyCodes.UP) { + EventHelpers.emitSelectPreviousSuggestion(this.suggestionId); + e.preventDefault(); + } else if (e.which === KeyCodes.DOWN) { + EventHelpers.emitSelectNextSuggestion(this.suggestionId); + e.preventDefault(); + } else if (e.which === KeyCodes.ENTER || e.which === KeyCodes.TAB) { + EventHelpers.emitCompleteWordSuggestion(this.suggestionId); + e.preventDefault(); + } else if (this.props.onKeyDown) { + this.props.onKeyDown(e); + } + } else if (this.props.onKeyDown) { + this.props.onKeyDown(e); + } + } + + handlePretextChanged(pretext) { + for (const provider of this.props.providers) { + provider.handlePretextChanged(this.suggestionId, pretext); + } + } + + render() { + const newProps = Object.assign({}, this.props, { + onChange: this.handleChange, + onKeyDown: this.handleKeyDown + }); + + let textbox = null; + if (this.props.type === 'input') { + textbox = ( + <input + ref='textbox' + type='text' + {...newProps} + /> + ); + } else if (this.props.type === 'textarea') { + textbox = ( + <textarea + ref='textbox' + {...newProps} + /> + ); + } + + const SuggestionListComponent = this.props.listComponent; + + return ( + <div> + {textbox} + <SuggestionListComponent suggestionId={this.suggestionId} /> + </div> + ); + } +} + +SuggestionBox.defaultProps = { + type: 'input' +}; + +SuggestionBox.propTypes = { + listComponent: React.PropTypes.func.isRequired, + type: React.PropTypes.oneOf(['input', 'textarea']).isRequired, + value: React.PropTypes.string.isRequired, + onUserInput: React.PropTypes.func, + providers: React.PropTypes.arrayOf(React.PropTypes.object), + + // explicitly name any input event handlers we override and need to manually call + onChange: React.PropTypes.func, + onKeyDown: React.PropTypes.func +}; diff --git a/web/react/components/suggestion/suggestion_list.jsx b/web/react/components/suggestion/suggestion_list.jsx new file mode 100644 index 000000000..e3ccd0f08 --- /dev/null +++ b/web/react/components/suggestion/suggestion_list.jsx @@ -0,0 +1,125 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import * as EventHelpers from '../../dispatcher/event_helpers.jsx'; +import SuggestionStore from '../../stores/suggestion_store.jsx'; + +export default class SuggestionList extends React.Component { + constructor(props) { + super(props); + + this.getContent = this.getContent.bind(this); + + this.handleItemClick = this.handleItemClick.bind(this); + this.handleSuggestionsChanged = this.handleSuggestionsChanged.bind(this); + + this.scrollToItem = this.scrollToItem.bind(this); + + this.state = { + items: [], + terms: [], + components: [], + selection: '' + }; + } + + componentDidMount() { + SuggestionStore.addSuggestionsChangedListener(this.props.suggestionId, this.handleSuggestionsChanged); + } + + componentWillUnmount() { + SuggestionStore.removeSuggestionsChangedListener(this.props.suggestionId, this.handleSuggestionsChanged); + } + + getContent() { + return $(ReactDOM.findDOMNode(this.refs.content)); + } + + handleItemClick(term, e) { + EventHelpers.emitCompleteWordSuggestion(this.props.suggestionId, term); + + e.preventDefault(); + } + + handleSuggestionsChanged() { + const selection = SuggestionStore.getSelection(this.props.suggestionId); + + this.setState({ + items: SuggestionStore.getItems(this.props.suggestionId), + terms: SuggestionStore.getTerms(this.props.suggestionId), + components: SuggestionStore.getComponents(this.props.suggestionId), + selection + }); + + if (selection) { + window.requestAnimationFrame(() => this.scrollToItem(this.state.selection)); + } + } + + scrollToItem(term) { + const content = this.getContent(); + const visibleContentHeight = content[0].clientHeight; + const actualContentHeight = content[0].scrollHeight; + + if (visibleContentHeight < actualContentHeight) { + const contentTop = content.scrollTop(); + const contentTopPadding = parseInt(content.css('padding-top'), 10); + const contentBottomPadding = parseInt(content.css('padding-top'), 10); + + const item = $(ReactDOM.findDOMNode(this.refs[term])); + const itemTop = item[0].offsetTop - parseInt(item.css('margin-top'), 10); + const itemBottomMargin = parseInt(item.css('margin-bottom'), 10) + parseInt(item.css('padding-bottom'), 10); + const itemBottom = item[0].offsetTop + item.height() + itemBottomMargin; + + if (itemTop - contentTopPadding < contentTop) { + // the item is off the top of the visible space + content.scrollTop(itemTop - contentTopPadding); + } else if (itemBottom + contentTopPadding + contentBottomPadding > contentTop + visibleContentHeight) { + // the item has gone off the bottom of the visible space + content.scrollTop(itemBottom - visibleContentHeight + contentTopPadding + contentBottomPadding); + } + } + } + + render() { + if (this.state.items.length === 0) { + return null; + } + + const items = []; + for (let i = 0; i < this.state.items.length; i++) { + const item = this.state.items[i]; + const term = this.state.terms[i]; + const isSelection = term === this.state.selection; + + // ReactComponent names need to be upper case when used in JSX + const Component = this.state.components[i]; + + items.push( + <Component + key={term} + ref={term} + item={item} + term={term} + isSelection={isSelection} + onClick={this.handleItemClick.bind(this, term)} + /> + ); + } + + return ( + <div className='suggestion-list suggestion-list--top'> + <div + ref='content' + className='suggestion-content suggestion-content--top' + > + {items} + </div> + </div> + ); + } +} + +SuggestionList.propTypes = { + suggestionId: React.PropTypes.string.isRequired +}; diff --git a/web/react/components/team_export_tab.jsx b/web/react/components/team_export_tab.jsx index e15e3a372..14df7fffc 100644 --- a/web/react/components/team_export_tab.jsx +++ b/web/react/components/team_export_tab.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Client = require('../utils/client.jsx'); +import * as Client from '../utils/client.jsx'; export default class TeamExportTab extends React.Component { constructor(props) { diff --git a/web/react/components/team_general_tab.jsx b/web/react/components/team_general_tab.jsx index 587ef5ec2..dc615f2e8 100644 --- a/web/react/components/team_general_tab.jsx +++ b/web/react/components/team_general_tab.jsx @@ -1,17 +1,18 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const SettingItemMin = require('./setting_item_min.jsx'); -const SettingItemMax = require('./setting_item_max.jsx'); +import SettingItemMin from './setting_item_min.jsx'; +import SettingItemMax from './setting_item_max.jsx'; -const Client = require('../utils/client.jsx'); -const Utils = require('../utils/utils.jsx'); -const TeamStore = require('../stores/team_store.jsx'); +import * as Client from '../utils/client.jsx'; +import * as Utils from '../utils/utils.jsx'; +import TeamStore from '../stores/team_store.jsx'; export default class GeneralTab extends React.Component { constructor(props) { super(props); + this.updateSection = this.updateSection.bind(this); this.handleNameSubmit = this.handleNameSubmit.bind(this); this.handleInviteIdSubmit = this.handleInviteIdSubmit.bind(this); this.handleOpenInviteSubmit = this.handleOpenInviteSubmit.bind(this); @@ -27,11 +28,22 @@ export default class GeneralTab extends React.Component { this.handleTeamListingRadio = this.handleTeamListingRadio.bind(this); this.handleGenerateInviteId = this.handleGenerateInviteId.bind(this); - this.state = { - name: props.team.display_name, - invite_id: props.team.invite_id, - allow_open_invite: props.team.allow_open_invite, - allow_team_listing: props.team.allow_team_listing, + this.state = this.setupInitialState(props); + } + + updateSection(section) { + this.setState(this.setupInitialState(this.props)); + this.props.updateSection(section); + } + + setupInitialState(props) { + const team = props.team; + + return { + name: team.display_name, + invite_id: team.invite_id, + allow_open_invite: team.allow_open_invite, + allow_team_listing: team.allow_team_listing, serverError: '', clientError: '' }; @@ -71,7 +83,7 @@ export default class GeneralTab extends React.Component { (team) => { TeamStore.saveTeam(team); TeamStore.emitChange(); - this.props.updateSection(''); + this.updateSection(''); }, (err) => { state.serverError = err.message; @@ -91,7 +103,7 @@ export default class GeneralTab extends React.Component { (team) => { TeamStore.saveTeam(team); TeamStore.emitChange(); - this.props.updateSection(''); + this.updateSection(''); }, (err) => { state.serverError = err.message; @@ -129,7 +141,7 @@ export default class GeneralTab extends React.Component { (team) => { TeamStore.saveTeam(team); TeamStore.emitChange(); - this.props.updateSection(''); + this.updateSection(''); }, (err) => { state.serverError = err.message; @@ -164,7 +176,7 @@ export default class GeneralTab extends React.Component { (team) => { TeamStore.saveTeam(team); TeamStore.emitChange(); - this.props.updateSection(''); + this.updateSection(''); }, (err) => { state.serverError = err.message; @@ -180,8 +192,7 @@ export default class GeneralTab extends React.Component { } handleClose() { - this.setState({clientError: '', serverError: ''}); - this.props.updateSection(''); + this.updateSection(''); } componentDidMount() { @@ -195,36 +206,36 @@ export default class GeneralTab extends React.Component { onUpdateNameSection(e) { e.preventDefault(); if (this.props.activeSection === 'name') { - this.props.updateSection(''); + this.updateSection(''); } else { - this.props.updateSection('name'); + this.updateSection('name'); } } onUpdateInviteIdSection(e) { e.preventDefault(); if (this.props.activeSection === 'invite_id') { - this.props.updateSection(''); + this.updateSection(''); } else { - this.props.updateSection('invite_id'); + this.updateSection('invite_id'); } } onUpdateOpenInviteSection(e) { e.preventDefault(); if (this.props.activeSection === 'open_invite') { - this.props.updateSection(''); + this.updateSection(''); } else { - this.props.updateSection('open_invite'); + this.updateSection('open_invite'); } } onUpdateTeamListingSection(e) { e.preventDefault(); if (this.props.activeSection === 'team_listing') { - this.props.updateSection(''); + this.updateSection(''); } else { - this.props.updateSection('team_listing'); + this.updateSection('team_listing'); } } @@ -248,44 +259,59 @@ export default class GeneralTab extends React.Component { serverError = this.state.serverError; } + const enableTeamListing = global.window.mm_config.EnableTeamListing === 'true'; + let teamListingSection; if (this.props.activeSection === 'team_listing') { - const inputs = [ - <div key='userTeamListingOptions'> - <div className='radio'> - <label> - <input - name='userTeamListingOptions' - type='radio' - defaultChecked={this.state.allow_team_listing} - onChange={this.handleTeamListingRadio.bind(this, true)} - /> - {'Yes'} - </label> - <br/> + const inputs = []; + let submitHandle = null; + + if (enableTeamListing) { + submitHandle = this.handleTeamListingSubmit; + + inputs.push( + <div key='userTeamListingOptions'> + <div className='radio'> + <label> + <input + name='userTeamListingOptions' + type='radio' + defaultChecked={this.state.allow_team_listing} + onChange={this.handleTeamListingRadio.bind(this, true)} + /> + {'Yes'} + </label> + <br/> + </div> + <div className='radio'> + <label> + <input + ref='teamListingRadioNo' + name='userTeamListingOptions' + type='radio' + defaultChecked={!this.state.allow_team_listing} + onChange={this.handleTeamListingRadio.bind(this, false)} + /> + {'No'} + </label> + <br/> + </div> + <div><br/>{'Including this team will display the team name from the Team Directory section of the Home Page, and provide a link to the sign-in page.'}</div> </div> - <div className='radio'> - <label> - <input - ref='teamListingRadioNo' - name='userTeamListingOptions' - type='radio' - defaultChecked={!this.state.allow_team_listing} - onChange={this.handleTeamListingRadio.bind(this, false)} - /> - {'No'} - </label> - <br/> + ); + } else { + inputs.push( + <div key='userTeamListingOptions'> + <div><br/>{'Contact your system administrator to turn on the team directory on the system home page.'}</div> </div> - <div><br/>{'Including this team will display the team name from the Team Directory section of the Home Page, and provide a link to the sign-in page.'}</div> - </div> - ]; + ); + } teamListingSection = ( <SettingItemMax title='Include this team in the Team Directory' inputs={inputs} - submit={this.handleTeamListingSubmit} + submit={submitHandle} server_error={serverError} client_error={clientError} updateSection={this.onUpdateTeamListingSection} @@ -293,10 +319,15 @@ export default class GeneralTab extends React.Component { ); } else { let describe = ''; - if (this.state.allow_team_listing === true) { - describe = 'Yes'; + + if (enableTeamListing) { + if (this.state.allow_team_listing === true) { + describe = 'Yes'; + } else { + describe = 'No'; + } } else { - describe = 'No'; + describe = 'Team directory is turned off for this system.'; } teamListingSection = ( @@ -393,7 +424,7 @@ export default class GeneralTab extends React.Component { </div> </div> </div> - <div className='setting-list__hint'>{'When allowing open invites this code is used as part of the signup process. Changing this code will invalidate the previous open signup link.'}</div> + <div className='setting-list__hint'>{'Your Invite Code is used in the URL sent to people to join your team. Regenerating your Invite Code will invalidate the URLs in previous invitations, unless "Allow anyone to sign-up from login page" is enabled.'}</div> </div> ); @@ -437,6 +468,7 @@ export default class GeneralTab extends React.Component { <input className='form-control' type='text' + maxLength='22' onChange={this.updateName} value={this.state.name} /> @@ -452,6 +484,7 @@ export default class GeneralTab extends React.Component { server_error={serverError} client_error={clientError} updateSection={this.onUpdateNameSection} + extraInfo='Set the name of the team as it appears on your sign-in screen and at the top of the left-hand sidebar.' /> ); } else { diff --git a/web/react/components/team_import_tab.jsx b/web/react/components/team_import_tab.jsx index a80b1a472..37f8746d7 100644 --- a/web/react/components/team_import_tab.jsx +++ b/web/react/components/team_import_tab.jsx @@ -1,8 +1,8 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var utils = require('../utils/utils.jsx'); -var SettingUpload = require('./setting_upload.jsx'); +import * as utils from '../utils/utils.jsx'; +import SettingUpload from './setting_upload.jsx'; export default class TeamImportTab extends React.Component { constructor(props) { diff --git a/web/react/components/team_members.jsx b/web/react/components/team_members.jsx deleted file mode 100644 index ac1ebf52d..000000000 --- a/web/react/components/team_members.jsx +++ /dev/null @@ -1,130 +0,0 @@ -// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -var UserStore = require('../stores/user_store.jsx'); -var MemberListTeam = require('./member_list_team.jsx'); -var utils = require('../utils/utils.jsx'); - -function getStateFromStores() { - var users = UserStore.getProfiles(); - var memberList = []; - for (var id in users) { - if (users.hasOwnProperty(id)) { - memberList.push(users[id]); - } - } - - memberList.sort(function sort(a, b) { - if (a.username < b.username) { - return -1; - } - - if (a.username > b.username) { - return 1; - } - - return 0; - }); - - return { - member_list: memberList - }; -} - -export default class TeamMembers extends React.Component { - constructor(props) { - super(props); - - this.onChange = this.onChange.bind(this); - - this.state = getStateFromStores(); - } - - componentDidMount() { - UserStore.addChangeListener(this.onChange); - - var self = this; - $(ReactDOM.findDOMNode(this.refs.modal)).on('hidden.bs.modal', function show() { - self.setState({render_members: false}); - }); - - $(ReactDOM.findDOMNode(this.refs.modal)).on('show.bs.modal', function hide() { - self.setState({render_members: true}); - }); - } - - componentWillUnmount() { - UserStore.removeChangeListener(this.onChange); - } - - onChange() { - var newState = getStateFromStores(); - if (!utils.areStatesEqual(newState, this.state)) { - this.setState(newState); - } - } - - render() { - var serverError = null; - - if (this.state.server_error) { - serverError = <label className='has-error control-label'>{this.state.server_error}</label>; - } - - var renderMembers = ''; - - if (this.state.render_members) { - renderMembers = <MemberListTeam users={this.state.member_list} />; - } - - return ( - <div - className='modal fade more-modal' - ref='modal' - id='team_members' - tabIndex='-1' - role='dialog' - aria-hidden='true' - > - <div className='modal-dialog'> - <div className='modal-content'> - <div className='modal-header'> - <button - type='button' - className='close' - data-dismiss='modal' - aria-label='Close' - > - <span aria-hidden='true'>×</span> - </button> - <h4 - className='modal-title' - id='myModalLabel' - >{this.props.teamDisplayName + ' Members'}</h4> - </div> - <div - ref='modalBody' - className='modal-body' - > - <div className='team-member-list'> - {renderMembers} - </div> - {serverError} - </div> - <div className='modal-footer'> - <button - type='button' - className='btn btn-default' - data-dismiss='modal' - >Close</button> - </div> - </div> - </div> - </div> - ); - } -} - -TeamMembers.propTypes = { - teamDisplayName: React.PropTypes.string -}; diff --git a/web/react/components/team_members_modal.jsx b/web/react/components/team_members_modal.jsx new file mode 100644 index 000000000..27224c283 --- /dev/null +++ b/web/react/components/team_members_modal.jsx @@ -0,0 +1,71 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import MemberListTeam from './member_list_team.jsx'; +import TeamStore from '../stores/team_store.jsx'; + +const Modal = ReactBootstrap.Modal; + +export default class TeamMembersModal extends React.Component { + constructor(props) { + super(props); + + this.onShow = this.onShow.bind(this); + } + + componentDidMount() { + if (this.props.show) { + this.onShow(); + } + } + + componentDidUpdate(prevProps) { + if (this.props.show && !prevProps.show) { + this.onShow(); + } + } + + onShow() { + if ($(window).width() > 768) { + $(ReactDOM.findDOMNode(this.refs.modalBody)).perfectScrollbar(); + $(ReactDOM.findDOMNode(this.refs.modalBody)).css('max-height', $(window).height() - 200); + } else { + $(ReactDOM.findDOMNode(this.refs.modalBody)).css('max-height', $(window).height() - 150); + } + } + + render() { + const team = TeamStore.getCurrent(); + + return ( + <Modal + dialogClassName='team-members-modal' + show={this.props.show} + onHide={this.props.onHide} + > + <Modal.Header closeButton={true}> + {team.display_name + ' Members'} + </Modal.Header> + <Modal.Body ref='modalBody'> + <div className='team-member-list'> + <MemberListTeam /> + </div> + </Modal.Body> + <Modal.Footer> + <button + type='button' + className='btn btn-default' + onClick={this.props.onHide} + > + {'Close'} + </button> + </Modal.Footer> + </Modal> + ); + } +} + +TeamMembersModal.propTypes = { + show: React.PropTypes.bool.isRequired, + onHide: React.PropTypes.func.isRequired +}; diff --git a/web/react/components/team_settings.jsx b/web/react/components/team_settings.jsx index 09674f1ef..bbcedb5dd 100644 --- a/web/react/components/team_settings.jsx +++ b/web/react/components/team_settings.jsx @@ -1,11 +1,11 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var TeamStore = require('../stores/team_store.jsx'); -var ImportTab = require('./team_import_tab.jsx'); -var ExportTab = require('./team_export_tab.jsx'); -var GeneralTab = require('./team_general_tab.jsx'); -var Utils = require('../utils/utils.jsx'); +import TeamStore from '../stores/team_store.jsx'; +import ImportTab from './team_import_tab.jsx'; +import ExportTab from './team_export_tab.jsx'; +import GeneralTab from './team_general_tab.jsx'; +import * as Utils from '../utils/utils.jsx'; export default class TeamSettings extends React.Component { constructor(props) { @@ -23,7 +23,7 @@ export default class TeamSettings extends React.Component { } onChange() { var team = TeamStore.getCurrent(); - if (!Utils.areStatesEqual(this.state.team, team)) { + if (!Utils.areObjectsEqual(this.state.team, team)) { this.setState({team}); } } diff --git a/web/react/components/team_settings_modal.jsx b/web/react/components/team_settings_modal.jsx index 4d47db2a8..dbdbde958 100644 --- a/web/react/components/team_settings_modal.jsx +++ b/web/react/components/team_settings_modal.jsx @@ -1,8 +1,8 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const SettingsSidebar = require('./settings_sidebar.jsx'); -const TeamSettings = require('./team_settings.jsx'); +import SettingsSidebar from './settings_sidebar.jsx'; +import TeamSettings from './team_settings.jsx'; export default class TeamSettingsModal extends React.Component { constructor(props) { diff --git a/web/react/components/team_signup_display_name_page.jsx b/web/react/components/team_signup_display_name_page.jsx index 2005ecc31..f4d5ea162 100644 --- a/web/react/components/team_signup_display_name_page.jsx +++ b/web/react/components/team_signup_display_name_page.jsx @@ -1,8 +1,8 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var utils = require('../utils/utils.jsx'); -var client = require('../utils/client.jsx'); +import * as utils from '../utils/utils.jsx'; +import * as client from '../utils/client.jsx'; export default class TeamSignupDisplayNamePage extends React.Component { constructor(props) { diff --git a/web/react/components/team_signup_email_item.jsx b/web/react/components/team_signup_email_item.jsx index 1d2b24ed7..59c4771d7 100644 --- a/web/react/components/team_signup_email_item.jsx +++ b/web/react/components/team_signup_email_item.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const Utils = require('../utils/utils.jsx'); +import * as Utils from '../utils/utils.jsx'; export default class TeamSignupEmailItem extends React.Component { constructor(props) { diff --git a/web/react/components/team_signup_password_page.jsx b/web/react/components/team_signup_password_page.jsx index 67fd686bc..378c7fe2c 100644 --- a/web/react/components/team_signup_password_page.jsx +++ b/web/react/components/team_signup_password_page.jsx @@ -1,9 +1,9 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Client = require('../utils/client.jsx'); -var BrowserStore = require('../stores/browser_store.jsx'); -var UserStore = require('../stores/user_store.jsx'); +import * as Client from '../utils/client.jsx'; +import BrowserStore from '../stores/browser_store.jsx'; +import UserStore from '../stores/user_store.jsx'; export default class TeamSignupPasswordPage extends React.Component { constructor(props) { diff --git a/web/react/components/team_signup_send_invites_page.jsx b/web/react/components/team_signup_send_invites_page.jsx index 7b4db8fae..a580623e4 100644 --- a/web/react/components/team_signup_send_invites_page.jsx +++ b/web/react/components/team_signup_send_invites_page.jsx @@ -1,8 +1,8 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var EmailItem = require('./team_signup_email_item.jsx'); -var Client = require('../utils/client.jsx'); +import EmailItem from './team_signup_email_item.jsx'; +import * as Client from '../utils/client.jsx'; export default class TeamSignupSendInvitesPage extends React.Component { constructor(props) { diff --git a/web/react/components/team_signup_url_page.jsx b/web/react/components/team_signup_url_page.jsx index 8972fda1a..30459fc67 100644 --- a/web/react/components/team_signup_url_page.jsx +++ b/web/react/components/team_signup_url_page.jsx @@ -1,9 +1,9 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const Utils = require('../utils/utils.jsx'); -const Client = require('../utils/client.jsx'); -const Constants = require('../utils/constants.jsx'); +import * as Utils from '../utils/utils.jsx'; +import * as Client from '../utils/client.jsx'; +import Constants from '../utils/constants.jsx'; export default class TeamSignupUrlPage extends React.Component { constructor(props) { diff --git a/web/react/components/team_signup_username_page.jsx b/web/react/components/team_signup_username_page.jsx index d8d0dbf2c..de239f169 100644 --- a/web/react/components/team_signup_username_page.jsx +++ b/web/react/components/team_signup_username_page.jsx @@ -1,8 +1,8 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Utils = require('../utils/utils.jsx'); -var Client = require('../utils/client.jsx'); +import * as Utils from '../utils/utils.jsx'; +import * as Client from '../utils/client.jsx'; export default class TeamSignupUsernamePage extends React.Component { constructor(props) { diff --git a/web/react/components/team_signup_welcome_page.jsx b/web/react/components/team_signup_welcome_page.jsx index 9448413ce..aa91a1329 100644 --- a/web/react/components/team_signup_welcome_page.jsx +++ b/web/react/components/team_signup_welcome_page.jsx @@ -1,9 +1,9 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Utils = require('../utils/utils.jsx'); -var Client = require('../utils/client.jsx'); -var BrowserStore = require('../stores/browser_store.jsx'); +import * as Utils from '../utils/utils.jsx'; +import * as Client from '../utils/client.jsx'; +import BrowserStore from '../stores/browser_store.jsx'; export default class TeamSignupWelcomePage extends React.Component { constructor(props) { diff --git a/web/react/components/team_signup_with_email.jsx b/web/react/components/team_signup_with_email.jsx index 021713f04..4150a0013 100644 --- a/web/react/components/team_signup_with_email.jsx +++ b/web/react/components/team_signup_with_email.jsx @@ -1,8 +1,8 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const Utils = require('../utils/utils.jsx'); -const Client = require('../utils/client.jsx'); +import * as Utils from '../utils/utils.jsx'; +import * as Client from '../utils/client.jsx'; export default class EmailSignUpPage extends React.Component { constructor() { @@ -14,18 +14,19 @@ export default class EmailSignUpPage extends React.Component { } handleSubmit(e) { e.preventDefault(); - var team = {}; - var state = {serverError: ''}; + const team = {}; + const state = {serverError: null}; + let isValid = true; team.email = ReactDOM.findDOMNode(this.refs.email).value.trim().toLowerCase(); if (!team.email || !Utils.isEmail(team.email)) { state.emailError = 'Please enter a valid email address'; - state.inValid = true; + isValid = false; } else { - state.emailError = ''; + state.emailError = null; } - if (state.inValid) { + if (!isValid) { this.setState(state); return; } @@ -45,11 +46,16 @@ export default class EmailSignUpPage extends React.Component { ); } render() { - var serverError = null; + let serverError = null; if (this.state.serverError) { serverError = <div className='form-group has-error'><label className='control-label'>{this.state.serverError}</label></div>; } + let emailError = null; + if (this.state.emailError) { + emailError = <div className='form-group has-error'><label className='control-label'>{this.state.emailError}</label></div>; + } + return ( <form role='form' @@ -65,6 +71,7 @@ export default class EmailSignUpPage extends React.Component { maxLength='128' spellCheck='false' /> + {emailError} </div> <div className='form-group'> <button diff --git a/web/react/components/team_signup_with_sso.jsx b/web/react/components/team_signup_with_sso.jsx index a0ccdf2c7..e3f16efb0 100644 --- a/web/react/components/team_signup_with_sso.jsx +++ b/web/react/components/team_signup_with_sso.jsx @@ -1,9 +1,9 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var utils = require('../utils/utils.jsx'); -var client = require('../utils/client.jsx'); -var Constants = require('../utils/constants.jsx'); +import * as utils from '../utils/utils.jsx'; +import * as client from '../utils/client.jsx'; +import Constants from '../utils/constants.jsx'; export default class SSOSignUpPage extends React.Component { constructor(props) { diff --git a/web/react/components/textbox.jsx b/web/react/components/textbox.jsx index 707033d8f..b29f304ab 100644 --- a/web/react/components/textbox.jsx +++ b/web/react/components/textbox.jsx @@ -1,46 +1,39 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -const SearchStore = require('../stores/search_store.jsx'); -const CommandList = require('./command_list.jsx'); -const ErrorStore = require('../stores/error_store.jsx'); - -const Utils = require('../utils/utils.jsx'); -const Constants = require('../utils/constants.jsx'); -const ActionTypes = Constants.ActionTypes; -const KeyCodes = Constants.KeyCodes; +import AtMentionProvider from './suggestion/at_mention_provider.jsx'; +import CommandProvider from './suggestion/command_provider.jsx'; +import EmoticonProvider from './suggestion/emoticon_provider.jsx'; +import SuggestionList from './suggestion/suggestion_list.jsx'; +import SuggestionBox from './suggestion/suggestion_box.jsx'; +import ErrorStore from '../stores/error_store.jsx'; + +import * as TextFormatting from '../utils/text_formatting.jsx'; +import * as Utils from '../utils/utils.jsx'; +import Constants from '../utils/constants.jsx'; +const PreReleaseFeatures = Constants.PRE_RELEASE_FEATURES; export default class Textbox extends React.Component { constructor(props) { super(props); this.getStateFromStores = this.getStateFromStores.bind(this); - this.onListenerChange = this.onListenerChange.bind(this); this.onRecievedError = this.onRecievedError.bind(this); - this.updateMentionTab = this.updateMentionTab.bind(this); - this.handleChange = this.handleChange.bind(this); this.handleKeyPress = this.handleKeyPress.bind(this); this.handleKeyDown = this.handleKeyDown.bind(this); - this.handleBackspace = this.handleBackspace.bind(this); - this.checkForNewMention = this.checkForNewMention.bind(this); - this.addMention = this.addMention.bind(this); - this.addCommand = this.addCommand.bind(this); this.resize = this.resize.bind(this); this.handleFocus = this.handleFocus.bind(this); this.handleBlur = this.handleBlur.bind(this); - this.handlePaste = this.handlePaste.bind(this); + this.showPreview = this.showPreview.bind(this); this.state = { - mentionText: '-1', - mentions: [], connection: '' }; - this.caret = -1; - this.addedMention = false; - this.doProcessMentions = false; - this.mentions = []; + this.suggestionProviders = [new AtMentionProvider(), new EmoticonProvider()]; + if (props.supportsCommands) { + this.suggestionProviders.push(new CommandProvider()); + } } getStateFromStores() { @@ -54,24 +47,15 @@ export default class Textbox extends React.Component { } componentDidMount() { - SearchStore.addAddMentionListener(this.onListenerChange); ErrorStore.addChangeListener(this.onRecievedError); this.resize(); - this.updateMentionTab(null); } componentWillUnmount() { - SearchStore.removeAddMentionListener(this.onListenerChange); ErrorStore.removeChangeListener(this.onRecievedError); } - onListenerChange(id, username) { - if (id === this.props.id) { - this.addMention(username); - } - } - onRecievedError() { const errorState = ErrorStore.getLastError(); @@ -83,157 +67,21 @@ export default class Textbox extends React.Component { } componentDidUpdate() { - if (this.caret >= 0) { - Utils.setCaretPosition(ReactDOM.findDOMNode(this.refs.message), this.caret); - this.caret = -1; - } - if (this.doProcessMentions) { - this.updateMentionTab(null); - this.doProcessMentions = false; - } this.resize(); } - componentWillReceiveProps(nextProps) { - if (!this.addedMention) { - this.checkForNewMention(nextProps.messageText); - } - const text = ReactDOM.findDOMNode(this.refs.message).value; - if (nextProps.channelId !== this.props.channelId || nextProps.messageText !== text) { - this.doProcessMentions = true; - } - this.addedMention = false; - this.refs.commands.getSuggestedCommands(nextProps.messageText); - } - - updateMentionTab(mentionText) { - // using setTimeout so dispatch isn't called during an in progress dispatch - setTimeout(() => { - AppDispatcher.handleViewAction({ - type: ActionTypes.RECIEVED_MENTION_DATA, - id: this.props.id, - mention_text: mentionText - }); - }, 1); - } - - handleChange() { - this.props.onUserInput(ReactDOM.findDOMNode(this.refs.message).value); - } - handleKeyPress(e) { - const text = ReactDOM.findDOMNode(this.refs.message).value; - - if (!this.refs.commands.isEmpty() && text.indexOf('/') === 0 && e.which === 13) { - this.refs.commands.addFirstCommand(); - e.preventDefault(); - return; - } - - if (!this.doProcessMentions) { - const caret = Utils.getCaretPosition(ReactDOM.findDOMNode(this.refs.message)); - const preText = text.substring(0, caret); - const lastSpace = preText.lastIndexOf(' '); - const lastAt = preText.lastIndexOf('@'); - - if (caret > lastAt && lastSpace < lastAt) { - this.doProcessMentions = true; - } - } - this.props.onKeyPress(e); } handleKeyDown(e) { - if (Utils.getSelectedText(ReactDOM.findDOMNode(this.refs.message)) !== '') { - this.doProcessMentions = true; - } - - if (e.keyCode === KeyCodes.BACKSPACE) { - this.handleBackspace(e); - } else if (this.props.onKeyDown) { + if (this.props.onKeyDown) { this.props.onKeyDown(e); } } - handleBackspace() { - const text = ReactDOM.findDOMNode(this.refs.message).value; - if (text.indexOf('/') === 0) { - this.refs.commands.getSuggestedCommands(text.substring(0, text.length - 1)); - } - - if (this.doProcessMentions) { - return; - } - - const caret = Utils.getCaretPosition(ReactDOM.findDOMNode(this.refs.message)); - const preText = text.substring(0, caret); - const lastSpace = preText.lastIndexOf(' '); - const lastAt = preText.lastIndexOf('@'); - - if (caret > lastAt && (lastSpace > lastAt || lastSpace === -1)) { - this.doProcessMentions = true; - } - } - - checkForNewMention(text) { - const caret = Utils.getCaretPosition(ReactDOM.findDOMNode(this.refs.message)); - - const preText = text.substring(0, caret); - - const atIndex = preText.lastIndexOf('@'); - - // The @ character not typed, so nothing to do. - if (atIndex === -1) { - this.updateMentionTab('-1'); - return; - } - - const lastCharSpace = preText.lastIndexOf(String.fromCharCode(160)); - const lastSpace = preText.lastIndexOf(' '); - - // If there is a space after the last @, nothing to do. - if (lastSpace > atIndex || lastCharSpace > atIndex) { - this.updateMentionTab('-1'); - return; - } - - // Get the name typed so far. - const name = preText.substring(atIndex + 1, preText.length).toLowerCase(); - this.updateMentionTab(name); - } - - addMention(name) { - const caret = Utils.getCaretPosition(ReactDOM.findDOMNode(this.refs.message)); - - const text = this.props.messageText; - - const preText = text.substring(0, caret); - - const atIndex = preText.lastIndexOf('@'); - - // The @ character not typed, so nothing to do. - if (atIndex === -1) { - return; - } - - const prefix = text.substring(0, atIndex); - const suffix = text.substring(caret, text.length); - this.caret = prefix.length + name.length + 2; - this.addedMention = true; - this.doProcessMentions = true; - - this.props.onUserInput(`${prefix}@${name} ${suffix}`); - } - - addCommand(cmd) { - const elm = ReactDOM.findDOMNode(this.refs.message); - elm.value = cmd; - this.handleChange(); - } - resize() { - const e = ReactDOM.findDOMNode(this.refs.message); + const e = this.refs.message.getTextbox(); const w = ReactDOM.findDOMNode(this.refs.wrapper); const prevHeight = $(e).height(); @@ -250,10 +98,16 @@ export default class Textbox extends React.Component { $(e).css({height: 'auto', 'overflow-y': 'hidden'}).height(e.scrollHeight - mod); $(w).css({height: 'auto'}).height(e.scrollHeight + 2); $(w).closest('.post-body__cell').removeClass('scroll'); + if (this.state.preview) { + $(ReactDOM.findDOMNode(this.refs.preview)).css({height: 'auto', 'overflow-y': 'auto'}).height(e.scrollHeight - mod); + } } else { - $(e).css({height: 'auto', 'overflow-y': 'scroll'}).height(167); - $(w).css({height: 'auto'}).height(167); + $(e).css({height: 'auto', 'overflow-y': 'scroll'}).height(167 - mod); + $(w).css({height: 'auto'}).height(163); $(w).closest('.post-body__cell').addClass('scroll'); + if (this.state.preview) { + $(ReactDOM.findDOMNode(this.refs.preview)).css({height: 'auto', 'overflow-y': 'scroll'}).height(163); + } } if (prevHeight !== $(e).height() && this.props.onHeightChange) { @@ -262,38 +116,58 @@ export default class Textbox extends React.Component { } handleFocus() { - const elm = ReactDOM.findDOMNode(this.refs.message); + const elm = this.refs.message.getTextbox(); if (elm.title === elm.value) { elm.value = ''; } } handleBlur() { - const elm = ReactDOM.findDOMNode(this.refs.message); + const elm = this.refs.message.getTextbox(); if (elm.value === '') { elm.value = elm.title; } } - handlePaste() { - this.doProcessMentions = true; + showPreview(e) { + e.preventDefault(); + e.target.blur(); + this.setState({preview: !this.state.preview}); + this.resize(); + } + + showHelp(e) { + e.preventDefault(); + e.target.blur(); + + global.window.open('/docs/Messaging'); } render() { + let previewLink = null; + if (Utils.isFeatureEnabled(PreReleaseFeatures.MARKDOWN_PREVIEW)) { + const previewLinkVisible = this.props.messageText.length > 0; + previewLink = ( + <a + style={{visibility: previewLinkVisible ? 'visible' : 'hidden'}} + onClick={this.showPreview} + className='textbox-preview-link' + > + {this.state.preview ? 'Edit message' : 'Preview'} + </a> + ); + } + return ( <div ref='wrapper' className='textarea-wrapper' > - <CommandList - ref='commands' - addCommand={this.addCommand} - channelId={this.props.channelId} - /> - <textarea + <SuggestionBox id={this.props.id} ref='message' className={`form-control custom-textarea ${this.state.connection}`} + type='textarea' spellCheck='true' autoComplete='off' autoCorrect='off' @@ -301,19 +175,39 @@ export default class Textbox extends React.Component { maxLength={Constants.MAX_POST_LEN} placeholder={this.props.createMessage} value={this.props.messageText} - onInput={this.handleChange} - onChange={this.handleChange} + onUserInput={this.props.onUserInput} onKeyPress={this.handleKeyPress} onKeyDown={this.handleKeyDown} onFocus={this.handleFocus} onBlur={this.handleBlur} onPaste={this.handlePaste} + style={{visibility: this.state.preview ? 'hidden' : 'visible'}} + listComponent={SuggestionList} + providers={this.suggestionProviders} /> + <div + ref='preview' + className='form-control custom-textarea textbox-preview-area' + style={{display: this.state.preview ? 'block' : 'none'}} + dangerouslySetInnerHTML={{__html: this.state.preview ? TextFormatting.formatText(this.props.messageText) : ''}} + > + </div> + {previewLink} + <a + onClick={this.showHelp} + className='textbox-help-link' + > + {'Help'} + </a> </div> ); } } +Textbox.defaultProps = { + supportsCommands: true +}; + Textbox.propTypes = { id: React.PropTypes.string.isRequired, channelId: React.PropTypes.string, @@ -322,5 +216,6 @@ Textbox.propTypes = { onKeyPress: React.PropTypes.func.isRequired, onHeightChange: React.PropTypes.func, createMessage: React.PropTypes.string.isRequired, - onKeyDown: React.PropTypes.func + onKeyDown: React.PropTypes.func, + supportsCommands: React.PropTypes.bool.isRequired }; diff --git a/web/react/components/time_since.jsx b/web/react/components/time_since.jsx index c37739b9c..cffff6ee7 100644 --- a/web/react/components/time_since.jsx +++ b/web/react/components/time_since.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Utils = require('../utils/utils.jsx'); +import * as Utils from '../utils/utils.jsx'; var Tooltip = ReactBootstrap.Tooltip; var OverlayTrigger = ReactBootstrap.OverlayTrigger; @@ -34,7 +34,7 @@ export default class TimeSince extends React.Component { placement='top' overlay={tooltip} > - <time className='post-profile-time'> + <time className='post__time'> {Utils.displayDateTime(this.props.eventTime)} </time> </OverlayTrigger> diff --git a/web/react/components/toggle_modal_button.jsx b/web/react/components/toggle_modal_button.jsx new file mode 100644 index 000000000..ce8ff3f60 --- /dev/null +++ b/web/react/components/toggle_modal_button.jsx @@ -0,0 +1,73 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +export default class ModalToggleButton extends React.Component { + constructor(props) { + super(props); + + this.show = this.show.bind(this); + this.hide = this.hide.bind(this); + + this.state = { + show: false + }; + } + + show() { + this.setState({show: true}); + } + + hide() { + this.setState({show: false}); + } + + render() { + const {children, dialogType, dialogProps, onClick, ...props} = this.props; // eslint-disable-line no-redeclare + + // allow callers to provide an onClick which will be called before the modal is shown + let clickHandler = this.show; + if (onClick) { + clickHandler = () => { + onClick(); + + this.show(); + }; + } + + // this assumes that all modals will have a show property and an onHide event + const dialog = React.createElement(this.props.dialogType, Object.assign({}, dialogProps, { + show: this.state.show, + onHide: () => { + this.hide(); + + if (dialogProps.onHide) { + dialogProps.onHide(); + } + } + })); + + // nesting the dialog in the anchor tag looks like it shouldn't work, but it does due to how react-bootstrap + // renders modals at the top level of the DOM instead of where you specify in the virtual DOM + return ( + <a + {...props} + href='#' + onClick={clickHandler} + > + {children} + {dialog} + </a> + ); + } +} + +ModalToggleButton.propTypes = { + children: React.PropTypes.node.isRequired, + dialogType: React.PropTypes.func.isRequired, + dialogProps: React.PropTypes.object, + onClick: React.PropTypes.func +}; + +ModalToggleButton.defaultProps = { + dialogProps: {} +}; diff --git a/web/react/components/tutorial/tutorial_intro_screens.jsx b/web/react/components/tutorial/tutorial_intro_screens.jsx index 66ca556c6..7ab1e5512 100644 --- a/web/react/components/tutorial/tutorial_intro_screens.jsx +++ b/web/react/components/tutorial/tutorial_intro_screens.jsx @@ -1,14 +1,14 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const UserStore = require('../../stores/user_store.jsx'); -const ChannelStore = require('../../stores/channel_store.jsx'); -const TeamStore = require('../../stores/team_store.jsx'); -const PreferenceStore = require('../../stores/preference_store.jsx'); -const Utils = require('../../utils/utils.jsx'); -const AsyncClient = require('../../utils/async_client.jsx'); - -const Constants = require('../../utils/constants.jsx'); +import UserStore from '../../stores/user_store.jsx'; +import ChannelStore from '../../stores/channel_store.jsx'; +import TeamStore from '../../stores/team_store.jsx'; +import PreferenceStore from '../../stores/preference_store.jsx'; +import * as Utils from '../../utils/utils.jsx'; +import * as AsyncClient from '../../utils/async_client.jsx'; + +import Constants from '../../utils/constants.jsx'; const Preferences = Constants.Preferences; const NUM_SCREENS = 3; @@ -41,6 +41,11 @@ export default class TutorialIntroScreens extends React.Component { componentDidMount() { $('.tutorials__scroll').perfectScrollbar(); } + skipTutorial(e) { + e.preventDefault(); + const preference = PreferenceStore.setPreference(Preferences.TUTORIAL_STEP, UserStore.getCurrentId(), '999'); + AsyncClient.savePreferences([preference]); + } createScreen() { switch (this.state.currentScreen) { case 0: @@ -107,23 +112,30 @@ export default class TutorialIntroScreens extends React.Component { const circles = this.createCircles(); - return ( - <div> - <h3>{'You’re all set'}</h3> - <p> - {inviteModalLink} - {' when you’re ready.'} - </p> + let supportInfo = null; + if (global.window.mm_config.SupportEmail) { + supportInfo = ( <p> {'Need anything, just email us at '} <a - href='mailto:feedback@mattermost.com' + href={'mailto:' + global.window.mm_config.SupportEmail} target='_blank' > - {'feedback@mattermost.com'} + {global.window.mm_config.SupportEmail} </a> {'.'} </p> + ); + } + + return ( + <div> + <h3>{'You’re all set'}</h3> + <p> + {inviteModalLink} + {' when you’re ready.'} + </p> + {supportInfo} {'Click “Next†to enter Town Square. This is the first channel teammates see when they sign up. Use it for posting updates everyone needs to know.'} {circles} </div> @@ -176,6 +188,13 @@ export default class TutorialIntroScreens extends React.Component { > {'Next'} </button> + <a + className='tutorial-skip' + href='#' + onClick={this.skipTutorial} + > + {'Skip tutorial'} + </a> </div> </div> </div> diff --git a/web/react/components/tutorial/tutorial_tip.jsx b/web/react/components/tutorial/tutorial_tip.jsx index 75d73e920..d7c67cc9c 100644 --- a/web/react/components/tutorial/tutorial_tip.jsx +++ b/web/react/components/tutorial/tutorial_tip.jsx @@ -1,11 +1,11 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const UserStore = require('../../stores/user_store.jsx'); -const PreferenceStore = require('../../stores/preference_store.jsx'); -const AsyncClient = require('../../utils/async_client.jsx'); +import UserStore from '../../stores/user_store.jsx'; +import PreferenceStore from '../../stores/preference_store.jsx'; +import * as AsyncClient from '../../utils/async_client.jsx'; -const Constants = require('../../utils/constants.jsx'); +import Constants from '../../utils/constants.jsx'; const Preferences = Constants.Preferences; const Overlay = ReactBootstrap.Overlay; @@ -51,21 +51,22 @@ export default class TutorialTip extends React.Component { const dots = []; if (this.props.screens.length > 1) { for (let i = 0; i < this.props.screens.length; i++) { + let className = 'circle'; if (i === this.state.currentScreen) { - dots.push( - <div - className='circle active' - key={'dotactive' + i} - /> - ); - } else { - dots.push( - <div - className='circle' - key={'dotinactive' + i} - /> - ); + className += ' active'; } + + dots.push( + <a + href='#' + key={'dotactive' + i} + className={className} + onClick={(e) => { //eslint-disable-line no-loop-func + e.preventDefault(); + this.setState({currentScreen: i}); + }} + /> + ); } } diff --git a/web/react/components/user_profile.jsx b/web/react/components/user_profile.jsx index eb0a8f0ca..385cd0f52 100644 --- a/web/react/components/user_profile.jsx +++ b/web/react/components/user_profile.jsx @@ -1,8 +1,8 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Utils = require('../utils/utils.jsx'); -var UserStore = require('../stores/user_store.jsx'); +import * as Utils from '../utils/utils.jsx'; +import UserStore from '../stores/user_store.jsx'; var Popover = ReactBootstrap.Popover; var OverlayTrigger = ReactBootstrap.OverlayTrigger; @@ -29,7 +29,7 @@ export default class UserProfile extends React.Component { return {profile: {id: '0', username: '...'}}; } - return {profile: profile}; + return {profile}; } componentDidMount() { UserStore.addChangeListener(this.onChange); @@ -43,7 +43,7 @@ export default class UserProfile extends React.Component { onChange(userId) { if (!userId || userId === this.props.userId) { var newState = this.getStateFromStores(this.props.userId); - if (!Utils.areStatesEqual(newState, this.state)) { + if (!Utils.areObjectsEqual(newState, this.state)) { this.setState(newState); } } @@ -54,20 +54,27 @@ export default class UserProfile extends React.Component { } } render() { - var name = this.state.profile.username; + var name = Utils.displayUsername(this.state.profile.id); if (this.props.overwriteName) { name = this.props.overwriteName; + } else if (!name) { + name = '...'; } if (this.props.disablePopover) { return <div>{name}</div>; } + var profileImg = '/api/v1/users/' + this.state.profile.id + '/image?time=' + this.state.profile.update_at + '&' + Utils.getSessionIndex(); + if (this.props.overwriteImage) { + profileImg = this.props.overwriteImage; + } + var dataContent = []; dataContent.push( <img className='user-popover__image' - src={'/api/v1/users/' + this.state.profile.id + '/image?time=' + this.state.profile.update_at + '&' + Utils.getSessionIndex()} + src={profileImg} height='128' width='128' key='user-popover-image' @@ -107,7 +114,7 @@ export default class UserProfile extends React.Component { rootClose={true} overlay={ <Popover - title={this.state.profile.username} + title={name} id='user-profile-popover' > {dataContent} @@ -128,10 +135,12 @@ export default class UserProfile extends React.Component { UserProfile.defaultProps = { userId: '', overwriteName: '', + overwriteImage: '', disablePopover: false }; UserProfile.propTypes = { userId: React.PropTypes.string, overwriteName: React.PropTypes.string, + overwriteImage: React.PropTypes.string, disablePopover: React.PropTypes.bool }; diff --git a/web/react/components/user_settings/custom_theme_chooser.jsx b/web/react/components/user_settings/custom_theme_chooser.jsx index 3dbed72c3..35f836adb 100644 --- a/web/react/components/user_settings/custom_theme_chooser.jsx +++ b/web/react/components/user_settings/custom_theme_chooser.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Constants = require('../../utils/constants.jsx'); +import Constants from '../../utils/constants.jsx'; export default class CustomThemeChooser extends React.Component { constructor(props) { @@ -14,7 +14,10 @@ export default class CustomThemeChooser extends React.Component { this.state = {}; } componentDidMount() { - $('.color-picker').colorpicker().on('changeColor', this.onPickerChange); + $('.color-picker').colorpicker({ + format: 'hex' + }); + $('.color-picker').on('changeColor', this.onPickerChange); } onPickerChange(e) { const theme = this.props.theme; diff --git a/web/react/components/user_settings/import_theme_modal.jsx b/web/react/components/user_settings/import_theme_modal.jsx index 4d594bb1b..3df9dfedf 100644 --- a/web/react/components/user_settings/import_theme_modal.jsx +++ b/web/react/components/user_settings/import_theme_modal.jsx @@ -1,14 +1,14 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const ModalStore = require('../../stores/modal_store.jsx'); -const UserStore = require('../../stores/user_store.jsx'); -const Utils = require('../../utils/utils.jsx'); -const Client = require('../../utils/client.jsx'); +import ModalStore from '../../stores/modal_store.jsx'; +import UserStore from '../../stores/user_store.jsx'; +import * as Utils from '../../utils/utils.jsx'; +import * as Client from '../../utils/client.jsx'; const Modal = ReactBootstrap.Modal; -const AppDispatcher = require('../../dispatcher/app_dispatcher.jsx'); -const Constants = require('../../utils/constants.jsx'); +import AppDispatcher from '../../dispatcher/app_dispatcher.jsx'; +import Constants from '../../utils/constants.jsx'; const ActionTypes = Constants.ActionTypes; export default class ImportThemeModal extends React.Component { diff --git a/web/react/components/user_settings/manage_incoming_hooks.jsx b/web/react/components/user_settings/manage_incoming_hooks.jsx index 128c011ea..9ebb55646 100644 --- a/web/react/components/user_settings/manage_incoming_hooks.jsx +++ b/web/react/components/user_settings/manage_incoming_hooks.jsx @@ -1,11 +1,11 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Client = require('../../utils/client.jsx'); -var Utils = require('../../utils/utils.jsx'); -var Constants = require('../../utils/constants.jsx'); -var ChannelStore = require('../../stores/channel_store.jsx'); -var LoadingScreen = require('../loading_screen.jsx'); +import * as Client from '../../utils/client.jsx'; +import * as Utils from '../../utils/utils.jsx'; +import Constants from '../../utils/constants.jsx'; +import ChannelStore from '../../stores/channel_store.jsx'; +import LoadingScreen from '../loading_screen.jsx'; export default class ManageIncomingHooks extends React.Component { constructor() { diff --git a/web/react/components/user_settings/manage_outgoing_hooks.jsx b/web/react/components/user_settings/manage_outgoing_hooks.jsx index aea886f15..ede639691 100644 --- a/web/react/components/user_settings/manage_outgoing_hooks.jsx +++ b/web/react/components/user_settings/manage_outgoing_hooks.jsx @@ -1,12 +1,12 @@ -// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const LoadingScreen = require('../loading_screen.jsx'); +import LoadingScreen from '../loading_screen.jsx'; -const ChannelStore = require('../../stores/channel_store.jsx'); +import ChannelStore from '../../stores/channel_store.jsx'; -const Client = require('../../utils/client.jsx'); -const Constants = require('../../utils/constants.jsx'); +import * as Client from '../../utils/client.jsx'; +import Constants from '../../utils/constants.jsx'; export default class ManageOutgoingHooks extends React.Component { constructor() { @@ -188,7 +188,7 @@ export default class ManageOutgoingHooks extends React.Component { key={hook.id} className='webhook__item' > - <div className='padding-top x2'> + <div className='padding-top x2 webhook__url'> <strong>{'URLs: '}</strong><span className='word-break--all'>{hook.callback_urls.join(', ')}</span> </div> {channelDiv} diff --git a/web/react/components/user_settings/premade_theme_chooser.jsx b/web/react/components/user_settings/premade_theme_chooser.jsx index 22cfcebcd..9889bff5c 100644 --- a/web/react/components/user_settings/premade_theme_chooser.jsx +++ b/web/react/components/user_settings/premade_theme_chooser.jsx @@ -1,8 +1,8 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Utils = require('../../utils/utils.jsx'); -var Constants = require('../../utils/constants.jsx'); +import * as Utils from '../../utils/utils.jsx'; +import Constants from '../../utils/constants.jsx'; export default class PremadeThemeChooser extends React.Component { constructor(props) { diff --git a/web/react/components/user_settings/user_settings.jsx b/web/react/components/user_settings/user_settings.jsx index e089ce973..54d98bbde 100644 --- a/web/react/components/user_settings/user_settings.jsx +++ b/web/react/components/user_settings/user_settings.jsx @@ -1,16 +1,16 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var UserStore = require('../../stores/user_store.jsx'); -var utils = require('../../utils/utils.jsx'); -var NotificationsTab = require('./user_settings_notifications.jsx'); -var SecurityTab = require('./user_settings_security.jsx'); -var GeneralTab = require('./user_settings_general.jsx'); -var AppearanceTab = require('./user_settings_appearance.jsx'); -var DeveloperTab = require('./user_settings_developer.jsx'); -var IntegrationsTab = require('./user_settings_integrations.jsx'); -var DisplayTab = require('./user_settings_display.jsx'); -var AdvancedTab = require('./user_settings_advanced.jsx'); +import UserStore from '../../stores/user_store.jsx'; +import * as utils from '../../utils/utils.jsx'; +import NotificationsTab from './user_settings_notifications.jsx'; +import SecurityTab from './user_settings_security.jsx'; +import GeneralTab from './user_settings_general.jsx'; +import AppearanceTab from './user_settings_appearance.jsx'; +import DeveloperTab from './user_settings_developer.jsx'; +import IntegrationsTab from './user_settings_integrations.jsx'; +import DisplayTab from './user_settings_display.jsx'; +import AdvancedTab from './user_settings_advanced.jsx'; export default class UserSettings extends React.Component { constructor(props) { @@ -36,7 +36,7 @@ export default class UserSettings extends React.Component { onListenerChange() { var user = UserStore.getCurrentUser(); - if (!utils.areStatesEqual(this.state.user, user)) { + if (!utils.areObjectsEqual(this.state.user, user)) { this.setState({user}); } } diff --git a/web/react/components/user_settings/user_settings_advanced.jsx b/web/react/components/user_settings/user_settings_advanced.jsx index 2616981ba..c15936ccd 100644 --- a/web/react/components/user_settings/user_settings_advanced.jsx +++ b/web/react/components/user_settings/user_settings_advanced.jsx @@ -1,11 +1,12 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const Client = require('../../utils/client.jsx'); -const SettingItemMin = require('../setting_item_min.jsx'); -const SettingItemMax = require('../setting_item_max.jsx'); -const Constants = require('../../utils/constants.jsx'); -const PreferenceStore = require('../../stores/preference_store.jsx'); +import * as Client from '../../utils/client.jsx'; +import SettingItemMin from '../setting_item_min.jsx'; +import SettingItemMax from '../setting_item_max.jsx'; +import Constants from '../../utils/constants.jsx'; +import PreferenceStore from '../../stores/preference_store.jsx'; +const PreReleaseFeatures = Constants.PRE_RELEASE_FEATURES; export default class AdvancedSettingsDisplay extends React.Component { constructor(props) { @@ -13,21 +14,33 @@ export default class AdvancedSettingsDisplay extends React.Component { this.updateSection = this.updateSection.bind(this); this.updateSetting = this.updateSetting.bind(this); - this.setupInitialState = this.setupInitialState.bind(this); + this.toggleFeature = this.toggleFeature.bind(this); + this.saveEnabledFeatures = this.saveEnabledFeatures.bind(this); - this.state = this.setupInitialState(); - } + const preReleaseFeaturesKeys = Object.keys(PreReleaseFeatures); + const advancedSettings = PreferenceStore.getPreferences(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS); + const settings = { + send_on_ctrl_enter: PreferenceStore.getPreference( + Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, + 'send_on_ctrl_enter', + {value: 'false'} + ).value + }; - setupInitialState() { - const sendOnCtrlEnter = PreferenceStore.getPreference( - Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, - 'send_on_ctrl_enter', - {value: 'false'} - ).value; + let enabledFeatures = 0; + advancedSettings.forEach((setting) => { + preReleaseFeaturesKeys.forEach((key) => { + const feature = PreReleaseFeatures[key]; + if (setting.name === Constants.FeatureTogglePrefix + feature.label) { + settings[setting.name] = setting.value; + if (setting.value === 'true') { + enabledFeatures++; + } + } + }); + }); - return { - settings: {send_on_ctrl_enter: sendOnCtrlEnter} - }; + this.state = {preReleaseFeatures: PreReleaseFeatures, settings, preReleaseFeaturesKeys, enabledFeatures}; } updateSetting(setting, value) { @@ -36,14 +49,45 @@ export default class AdvancedSettingsDisplay extends React.Component { this.setState(settings); } - handleSubmit(setting) { - const preference = PreferenceStore.setPreference( - Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, - setting, - this.state.settings[setting] - ); + toggleFeature(feature, checked) { + const settings = this.state.settings; + settings[Constants.FeatureTogglePrefix + feature] = String(checked); + + let enabledFeatures = 0; + Object.keys(this.state.settings).forEach((setting) => { + if (setting.lastIndexOf(Constants.FeatureTogglePrefix) === 0 && this.state.settings[setting] === 'true') { + enabledFeatures++; + } + }); + + this.setState({settings, enabledFeatures}); + } + + saveEnabledFeatures() { + const features = []; + Object.keys(this.state.settings).forEach((setting) => { + if (setting.lastIndexOf(Constants.FeatureTogglePrefix) === 0) { + features.push(setting); + } + }); + + this.handleSubmit(features); + } - Client.savePreferences([preference], + handleSubmit(settings) { + const preferences = []; + + (Array.isArray(settings) ? settings : [settings]).forEach((setting) => { + preferences.push( + PreferenceStore.setPreference( + Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, + setting, + String(this.state.settings[setting]) + ) + ); + }); + + Client.savePreferences(preferences, () => { PreferenceStore.emitChange(); this.updateSection(''); @@ -118,6 +162,66 @@ export default class AdvancedSettingsDisplay extends React.Component { ); } + let previewFeaturesSection; + let previewFeaturesSectionDivider; + if (this.state.preReleaseFeaturesKeys.length > 0) { + previewFeaturesSectionDivider = ( + <div className='divider-light'/> + ); + + if (this.props.activeSection === 'advancedPreviewFeatures') { + const inputs = []; + + this.state.preReleaseFeaturesKeys.forEach((key) => { + const feature = this.state.preReleaseFeatures[key]; + inputs.push( + <div key={'advancedPreviewFeatures_' + feature.label}> + <div className='checkbox'> + <label> + <input + type='checkbox' + checked={this.state.settings[Constants.FeatureTogglePrefix + feature.label] === 'true'} + onChange={(e) => { + this.toggleFeature(feature.label, e.target.checked); + }} + /> + {feature.description} + </label> + </div> + </div> + ); + }); + + inputs.push( + <div key='advancedPreviewFeatures_helptext'> + <br/> + {'Check any pre-released features you\'d like to preview. You may also need to refresh the page before the setting will take effect.'} + </div> + ); + + previewFeaturesSection = ( + <SettingItemMax + title='Preview pre-release features' + inputs={inputs} + submit={this.saveEnabledFeatures} + server_error={serverError} + updateSection={(e) => { + this.updateSection(''); + e.preventDefault(); + }} + /> + ); + } else { + previewFeaturesSection = ( + <SettingItemMin + title='Preview pre-release features' + describe={this.state.enabledFeatures + (this.state.enabledFeatures === 1 ? ' Feature ' : ' Features ') + 'enabled'} + updateSection={() => this.props.updateSection('advancedPreviewFeatures')} + /> + ); + } + } + return ( <div> <div className='modal-header'> @@ -145,6 +249,8 @@ export default class AdvancedSettingsDisplay extends React.Component { <h3 className='tab-header'>{'Advanced Settings'}</h3> <div className='divider-dark first'/> {ctrlSendSection} + {previewFeaturesSectionDivider} + {previewFeaturesSection} <div className='divider-dark'/> </div> </div> diff --git a/web/react/components/user_settings/user_settings_appearance.jsx b/web/react/components/user_settings/user_settings_appearance.jsx index d73b5f476..ad41ab771 100644 --- a/web/react/components/user_settings/user_settings_appearance.jsx +++ b/web/react/components/user_settings/user_settings_appearance.jsx @@ -1,14 +1,16 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var UserStore = require('../../stores/user_store.jsx'); -var Client = require('../../utils/client.jsx'); -var Utils = require('../../utils/utils.jsx'); +import CustomThemeChooser from './custom_theme_chooser.jsx'; +import PremadeThemeChooser from './premade_theme_chooser.jsx'; -const CustomThemeChooser = require('./custom_theme_chooser.jsx'); -const PremadeThemeChooser = require('./premade_theme_chooser.jsx'); -const AppDispatcher = require('../../dispatcher/app_dispatcher.jsx'); -const Constants = require('../../utils/constants.jsx'); +import UserStore from '../../stores/user_store.jsx'; + +import AppDispatcher from '../../dispatcher/app_dispatcher.jsx'; +import * as Client from '../../utils/client.jsx'; +import * as Utils from '../../utils/utils.jsx'; + +import Constants from '../../utils/constants.jsx'; const ActionTypes = Constants.ActionTypes; export default class UserSettingsAppearance extends React.Component { @@ -66,7 +68,7 @@ export default class UserSettingsAppearance extends React.Component { onChange() { const newState = this.getStateFromStores(); - if (!Utils.areStatesEqual(this.state, newState)) { + if (!Utils.areObjectsEqual(this.state, newState)) { this.setState(newState); } diff --git a/web/react/components/user_settings/user_settings_developer.jsx b/web/react/components/user_settings/user_settings_developer.jsx index e6adba1d4..01e13be57 100644 --- a/web/react/components/user_settings/user_settings_developer.jsx +++ b/web/react/components/user_settings/user_settings_developer.jsx @@ -1,18 +1,21 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var SettingItemMin = require('../setting_item_min.jsx'); -var SettingItemMax = require('../setting_item_max.jsx'); +import SettingItemMin from '../setting_item_min.jsx'; +import SettingItemMax from '../setting_item_max.jsx'; +import * as EventHelpers from '../../dispatcher/event_helpers.jsx'; export default class DeveloperTab extends React.Component { constructor(props) { super(props); + this.register = this.register.bind(this); + this.state = {}; } register() { - $('#user_settings1').modal('hide'); - $('#register_app').modal('show'); + this.props.closeModal(); + EventHelpers.showRegisterAppModal(); } render() { var appSection; @@ -21,7 +24,10 @@ export default class DeveloperTab extends React.Component { var inputs = []; inputs.push( - <div className='form-group'> + <div + key='registerbtn' + className='form-group' + > <div className='col-sm-7'> <a className='btn btn-sm btn-primary' diff --git a/web/react/components/user_settings/user_settings_display.jsx b/web/react/components/user_settings/user_settings_display.jsx index 43c8d33d1..c464258de 100644 --- a/web/react/components/user_settings/user_settings_display.jsx +++ b/web/react/components/user_settings/user_settings_display.jsx @@ -6,14 +6,17 @@ import SettingItemMin from '../setting_item_min.jsx'; import SettingItemMax from '../setting_item_max.jsx'; import Constants from '../../utils/constants.jsx'; import PreferenceStore from '../../stores/preference_store.jsx'; +import * as Utils from '../../utils/utils.jsx'; function getDisplayStateFromStores() { const militaryTime = PreferenceStore.getPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'use_military_time', {value: 'false'}); const nameFormat = PreferenceStore.getPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'name_format', {value: 'username'}); + const selectedFont = PreferenceStore.getPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'selected_font', {value: Constants.DEFAULT_FONT}); return { militaryTime: militaryTime.value, - nameFormat: nameFormat.value + nameFormat: nameFormat.value, + selectedFont: selectedFont.value }; } @@ -24,15 +27,20 @@ export default class UserSettingsDisplay extends React.Component { this.handleSubmit = this.handleSubmit.bind(this); this.handleClockRadio = this.handleClockRadio.bind(this); this.handleNameRadio = this.handleNameRadio.bind(this); + this.handleFont = this.handleFont.bind(this); this.updateSection = this.updateSection.bind(this); this.state = getDisplayStateFromStores(); + this.selectedFont = this.state.selectedFont; } handleSubmit() { const timePreference = PreferenceStore.setPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'use_military_time', this.state.militaryTime); const namePreference = PreferenceStore.setPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'name_format', this.state.nameFormat); + const fontPreference = PreferenceStore.setPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'selected_font', this.state.selectedFont); - savePreferences([timePreference, namePreference], + this.selectedFont = this.state.selectedFont; + + savePreferences([timePreference, namePreference, fontPreference], () => { PreferenceStore.emitChange(); this.updateSection(''); @@ -48,6 +56,10 @@ export default class UserSettingsDisplay extends React.Component { handleNameRadio(nameFormat) { this.setState({nameFormat}); } + handleFont(selectedFont) { + Utils.applyFont(selectedFont); + this.setState({selectedFont}); + } updateSection(section) { this.setState(getDisplayStateFromStores()); this.props.updateSection(section); @@ -56,6 +68,8 @@ export default class UserSettingsDisplay extends React.Component { const serverError = this.state.serverError || null; let clockSection; let nameFormatSection; + let fontSection; + if (this.props.activeSection === 'clock') { const clockFormat = [false, false]; if (this.state.militaryTime === 'true') { @@ -209,6 +223,66 @@ export default class UserSettingsDisplay extends React.Component { ); } + if (this.props.activeSection === 'font') { + const options = []; + Object.keys(Constants.FONTS).forEach((fontName, idx) => { + const className = Constants.FONTS[fontName]; + options.push( + <option + key={'font_' + idx} + value={fontName} + className={className} + > + {fontName} + </option> + ); + }); + + const inputs = [ + <div key='userDisplayNameOptions'> + <div + className='dropdown' + > + <select + className='form-control' + type='text' + value={this.state.selectedFont} + onChange={(e) => this.handleFont(e.target.value)} + > + {options} + </select> + </div> + <div><br/>{'Select the font displayed in the Mattermost user interface.'}</div> + </div> + ]; + + fontSection = ( + <SettingItemMax + title='Display Font' + inputs={inputs} + submit={this.handleSubmit} + server_error={serverError} + updateSection={(e) => { + if (this.selectedFont !== this.state.selectedFont) { + this.handleFont(this.selectedFont); + } + this.updateSection(''); + e.preventDefault(); + }} + /> + ); + } else { + fontSection = ( + <SettingItemMin + title='Display Font' + describe={this.state.selectedFont} + updateSection={() => { + this.props.updateSection('font'); + }} + /> + ); + } + return ( <div> <div className='modal-header'> @@ -235,6 +309,8 @@ export default class UserSettingsDisplay extends React.Component { <div className='user-settings'> <h3 className='tab-header'>{'Display Settings'}</h3> <div className='divider-dark first'/> + {fontSection} + <div className='divider-dark'/> {clockSection} <div className='divider-dark'/> {nameFormatSection} diff --git a/web/react/components/user_settings/user_settings_general.jsx b/web/react/components/user_settings/user_settings_general.jsx index 1bfae6930..7c1a1297f 100644 --- a/web/react/components/user_settings/user_settings_general.jsx +++ b/web/react/components/user_settings/user_settings_general.jsx @@ -1,15 +1,16 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var UserStore = require('../../stores/user_store.jsx'); -var ErrorStore = require('../../stores/error_store.jsx'); -var SettingItemMin = require('../setting_item_min.jsx'); -var SettingItemMax = require('../setting_item_max.jsx'); -var SettingPicture = require('../setting_picture.jsx'); -var client = require('../../utils/client.jsx'); -var AsyncClient = require('../../utils/async_client.jsx'); -var utils = require('../../utils/utils.jsx'); -var assign = require('object-assign'); +import SettingItemMin from '../setting_item_min.jsx'; +import SettingItemMax from '../setting_item_max.jsx'; +import SettingPicture from '../setting_picture.jsx'; + +import UserStore from '../../stores/user_store.jsx'; +import ErrorStore from '../../stores/error_store.jsx'; + +import * as Client from '../../utils/client.jsx'; +import * as AsyncClient from '../../utils/async_client.jsx'; +import * as Utils from '../../utils/utils.jsx'; export default class UserSettingsGeneralTab extends React.Component { constructor(props) { @@ -32,17 +33,15 @@ export default class UserSettingsGeneralTab extends React.Component { this.updatePicture = this.updatePicture.bind(this); this.updateSection = this.updateSection.bind(this); - this.setupInitialState = this.setupInitialState.bind(this); - this.state = this.setupInitialState(props); } submitUsername(e) { e.preventDefault(); - var user = this.props.user; - var username = this.state.username.trim().toLowerCase(); + const user = Object.assign({}, this.props.user); + const username = this.state.username.trim().toLowerCase(); - var usernameError = utils.isValidUsername(username); + const usernameError = Utils.isValidUsername(username); if (usernameError === 'Cannot use a reserved word as a username.') { this.setState({clientError: 'This username is reserved, please choose a new one.'}); return; @@ -52,7 +51,7 @@ export default class UserSettingsGeneralTab extends React.Component { } if (user.username === username) { - this.setState({clientError: 'You must submit a new username'}); + this.updateSection(''); return; } @@ -63,11 +62,11 @@ export default class UserSettingsGeneralTab extends React.Component { submitNickname(e) { e.preventDefault(); - var user = UserStore.getCurrentUser(); - var nickname = this.state.nickname.trim(); + const user = Object.assign({}, this.props.user); + const nickname = this.state.nickname.trim(); if (user.nickname === nickname) { - this.setState({clientError: 'You must submit a new nickname'}); + this.updateSection(''); return; } @@ -78,12 +77,12 @@ export default class UserSettingsGeneralTab extends React.Component { submitName(e) { e.preventDefault(); - var user = UserStore.getCurrentUser(); - var firstName = this.state.firstName.trim(); - var lastName = this.state.lastName.trim(); + const user = Object.assign({}, this.props.user); + const firstName = this.state.firstName.trim(); + const lastName = this.state.lastName.trim(); if (user.first_name === firstName && user.last_name === lastName) { - this.setState({clientError: 'You must submit a new first or last name'}); + this.updateSection(''); return; } @@ -95,21 +94,22 @@ export default class UserSettingsGeneralTab extends React.Component { submitEmail(e) { e.preventDefault(); - var user = UserStore.getCurrentUser(); - var email = this.state.email.trim().toLowerCase(); - var confirmEmail = this.state.confirmEmail.trim().toLowerCase(); + const user = Object.assign({}, this.props.user); + const email = this.state.email.trim().toLowerCase(); + const confirmEmail = this.state.confirmEmail.trim().toLowerCase(); - if (user.email === email) { + if (email === '' || !Utils.isEmail(email)) { + this.setState({emailError: 'Please enter a valid email address.', clientError: '', serverError: ''}); return; } - if (email === '' || !utils.isEmail(email)) { - this.setState({emailError: 'Please enter a valid email address'}); + if (email !== confirmEmail) { + this.setState({emailError: 'The new emails you entered do not match.', clientError: '', serverError: ''}); return; } - if (email !== confirmEmail) { - this.setState({emailError: 'The new emails you entered do not match'}); + if (user.email === email) { + this.updateSection(''); return; } @@ -117,7 +117,7 @@ export default class UserSettingsGeneralTab extends React.Component { this.submitUser(user, true); } submitUser(user, emailUpdated) { - client.updateUser(user, + Client.updateUser(user, () => { this.updateSection(''); AsyncClient.getMe(); @@ -130,13 +130,13 @@ export default class UserSettingsGeneralTab extends React.Component { } }, (err) => { - var state = this.setupInitialState(this.props); + let serverError; if (err.message) { - state.serverError = err.message; + serverError = err.message; } else { - state.serverError = err; + serverError = err; } - this.setState(state); + this.setState({serverError, emailError: '', clientError: ''}); } ); } @@ -151,10 +151,10 @@ export default class UserSettingsGeneralTab extends React.Component { return; } - var picture = this.state.picture; + const picture = this.state.picture; if (picture.type !== 'image/jpeg' && picture.type !== 'image/png') { - this.setState({clientError: 'Only JPG or PNG images may be used for profile pictures'}); + this.setState({clientError: 'Only JPG or PNG images may be used for profile pictures.'}); return; } @@ -162,17 +162,17 @@ export default class UserSettingsGeneralTab extends React.Component { formData.append('image', picture, picture.name); this.setState({loadingPicture: true}); - client.uploadProfileImage(formData, - function imageUploadSuccess() { + Client.uploadProfileImage(formData, + () => { this.submitActive = false; AsyncClient.getMe(); window.location.reload(); - }.bind(this), - function imageUploadFailure(err) { + }, + (err) => { var state = this.setupInitialState(this.props); state.serverError = err.message; this.setState(state); - }.bind(this) + } ); } updateUsername(e) { @@ -205,34 +205,34 @@ export default class UserSettingsGeneralTab extends React.Component { } updateSection(section) { const emailChangeInProgress = this.state.emailChangeInProgress; - this.setState(assign({}, this.setupInitialState(this.props), {emailChangeInProgress: emailChangeInProgress, clientError: '', serverError: '', emailError: ''})); + this.setState(Object.assign({}, this.setupInitialState(this.props), {emailChangeInProgress, clientError: '', serverError: '', emailError: ''})); this.submitActive = false; this.props.updateSection(section); } setupInitialState(props) { - var user = props.user; + const user = props.user; return {username: user.username, firstName: user.first_name, lastName: user.last_name, nickname: user.nickname, email: user.email, confirmEmail: '', picture: null, loadingPicture: false, emailChangeInProgress: false}; } render() { - var user = this.props.user; + const user = this.props.user; - var clientError = null; + let clientError = null; if (this.state.clientError) { clientError = this.state.clientError; } - var serverError = null; + let serverError = null; if (this.state.serverError) { serverError = this.state.serverError; } - var emailError = null; + let emailError = null; if (this.state.emailError) { emailError = this.state.emailError; } - var nameSection; - var inputs = []; + let nameSection; + const inputs = []; if (this.props.activeSection === 'name') { inputs.push( @@ -298,15 +298,15 @@ export default class UserSettingsGeneralTab extends React.Component { submit={this.submitName} server_error={serverError} client_error={clientError} - updateSection={function clearSection(e) { + updateSection={(e) => { this.updateSection(''); e.preventDefault(); - }.bind(this)} + }} extraInfo={extraInfo} /> ); } else { - var fullName = ''; + let fullName = ''; if (user.first_name && user.last_name) { fullName = user.first_name + ' ' + user.last_name; @@ -320,17 +320,17 @@ export default class UserSettingsGeneralTab extends React.Component { <SettingItemMin title='Full Name' describe={fullName} - updateSection={function updateNameSection() { + updateSection={() => { this.updateSection('name'); - }.bind(this)} + }} /> ); } - var nicknameSection; + let nicknameSection; if (this.props.activeSection === 'nickname') { let nicknameLabel = 'Nickname'; - if (utils.isMobile()) { + if (Utils.isMobile()) { nicknameLabel = ''; } @@ -364,10 +364,10 @@ export default class UserSettingsGeneralTab extends React.Component { submit={this.submitNickname} server_error={serverError} client_error={clientError} - updateSection={function clearSection(e) { + updateSection={(e) => { this.updateSection(''); e.preventDefault(); - }.bind(this)} + }} extraInfo={extraInfo} /> ); @@ -376,17 +376,17 @@ export default class UserSettingsGeneralTab extends React.Component { <SettingItemMin title='Nickname' describe={UserStore.getCurrentUser().nickname} - updateSection={function updateNicknameSection() { + updateSection={() => { this.updateSection('nickname'); - }.bind(this)} + }} /> ); } - var usernameSection; + let usernameSection; if (this.props.activeSection === 'username') { let usernameLabel = 'Username'; - if (utils.isMobile()) { + if (Utils.isMobile()) { usernameLabel = ''; } @@ -416,10 +416,10 @@ export default class UserSettingsGeneralTab extends React.Component { submit={this.submitUsername} server_error={serverError} client_error={clientError} - updateSection={function clearSection(e) { + updateSection={(e) => { this.updateSection(''); e.preventDefault(); - }.bind(this)} + }} extraInfo={extraInfo} /> ); @@ -428,22 +428,23 @@ export default class UserSettingsGeneralTab extends React.Component { <SettingItemMin title='Username' describe={UserStore.getCurrentUser().username} - updateSection={function updateUsernameSection() { + updateSection={() => { this.updateSection('username'); - }.bind(this)} + }} /> ); } - var emailSection; + + let emailSection; if (this.props.activeSection === 'email') { const emailEnabled = global.window.mm_config.SendEmailNotifications === 'true'; const emailVerificationEnabled = global.window.mm_config.RequireEmailVerification === 'true'; - let helpText = 'Email is used for notifications, and requires verification if changed.'; + let helpText = 'Email is used for sign-in, notifications, and password reset. Email requires verification if changed.'; if (!emailEnabled) { helpText = <div className='setting-list__hint text-danger'>{'Email has been disabled by your system administrator. No notification emails will be sent until it is enabled.'}</div>; } else if (!emailVerificationEnabled) { - helpText = 'Email is used for notifications.'; + helpText = 'Email is used for sign-in, notifications, and password reset.'; } else if (this.state.emailChangeInProgress) { const newEmail = UserStore.getCurrentUser().email; if (newEmail) { @@ -507,10 +508,10 @@ export default class UserSettingsGeneralTab extends React.Component { submit={submit} server_error={serverError} client_error={emailError} - updateSection={function clearSection(e) { + updateSection={(e) => { this.updateSection(''); e.preventDefault(); - }.bind(this)} + }} /> ); } else { @@ -534,26 +535,26 @@ export default class UserSettingsGeneralTab extends React.Component { <SettingItemMin title='Email' describe={describe} - updateSection={function updateEmailSection() { + updateSection={() => { this.updateSection('email'); - }.bind(this)} + }} /> ); } - var pictureSection; + let pictureSection; if (this.props.activeSection === 'picture') { pictureSection = ( <SettingPicture title='Profile Picture' submit={this.submitPicture} - src={'/api/v1/users/' + user.id + '/image?time=' + user.last_picture_update + '&' + utils.getSessionIndex()} + src={'/api/v1/users/' + user.id + '/image?time=' + user.last_picture_update + '&' + Utils.getSessionIndex()} server_error={serverError} client_error={clientError} - updateSection={function clearSection(e) { + updateSection={(e) => { this.updateSection(''); e.preventDefault(); - }.bind(this)} + }} picture={this.state.picture} pictureChange={this.updatePicture} submitActive={this.submitActive} @@ -561,17 +562,17 @@ export default class UserSettingsGeneralTab extends React.Component { /> ); } else { - var minMessage = 'Click \'Edit\' to upload an image.'; + let minMessage = 'Click \'Edit\' to upload an image.'; if (user.last_picture_update) { - minMessage = 'Image last updated ' + utils.displayDate(user.last_picture_update); + minMessage = 'Image last updated ' + Utils.displayDate(user.last_picture_update); } pictureSection = ( <SettingItemMin title='Profile Picture' describe={minMessage} - updateSection={function updatePictureSection() { + updateSection={() => { this.updateSection('picture'); - }.bind(this)} + }} /> ); } @@ -619,10 +620,10 @@ export default class UserSettingsGeneralTab extends React.Component { } UserSettingsGeneralTab.propTypes = { - user: React.PropTypes.object, - updateSection: React.PropTypes.func, - updateTab: React.PropTypes.func, - activeSection: React.PropTypes.string, + user: React.PropTypes.object.isRequired, + updateSection: React.PropTypes.func.isRequired, + updateTab: React.PropTypes.func.isRequired, + activeSection: React.PropTypes.string.isRequired, closeModal: React.PropTypes.func.isRequired, collapseModal: React.PropTypes.func.isRequired }; diff --git a/web/react/components/user_settings/user_settings_integrations.jsx b/web/react/components/user_settings/user_settings_integrations.jsx index 744a6beea..a86510eb3 100644 --- a/web/react/components/user_settings/user_settings_integrations.jsx +++ b/web/react/components/user_settings/user_settings_integrations.jsx @@ -1,10 +1,10 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var SettingItemMin = require('../setting_item_min.jsx'); -var SettingItemMax = require('../setting_item_max.jsx'); -var ManageIncomingHooks = require('./manage_incoming_hooks.jsx'); -var ManageOutgoingHooks = require('./manage_outgoing_hooks.jsx'); +import SettingItemMin from '../setting_item_min.jsx'; +import SettingItemMax from '../setting_item_max.jsx'; +import ManageIncomingHooks from './manage_incoming_hooks.jsx'; +import ManageOutgoingHooks from './manage_outgoing_hooks.jsx'; export default class UserSettingsIntegrationsTab extends React.Component { constructor(props) { diff --git a/web/react/components/user_settings/user_settings_modal.jsx b/web/react/components/user_settings/user_settings_modal.jsx index 4dcf32cb9..36e1aa217 100644 --- a/web/react/components/user_settings/user_settings_modal.jsx +++ b/web/react/components/user_settings/user_settings_modal.jsx @@ -1,15 +1,16 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const ConfirmModal = require('../confirm_modal.jsx'); +import ConfirmModal from '../confirm_modal.jsx'; const Modal = ReactBootstrap.Modal; -const SettingsSidebar = require('../settings_sidebar.jsx'); -const UserSettings = require('./user_settings.jsx'); +import SettingsSidebar from '../settings_sidebar.jsx'; +import UserSettings from './user_settings.jsx'; export default class UserSettingsModal extends React.Component { constructor(props) { super(props); + this.handleShow = this.handleShow.bind(this); this.handleHide = this.handleHide.bind(this); this.handleHidden = this.handleHidden.bind(this); this.handleCollapse = this.handleCollapse.bind(this); @@ -33,12 +34,24 @@ export default class UserSettingsModal extends React.Component { this.requireConfirm = false; } + componentDidMount() { + if (this.props.show) { + this.handleShow(); + } + } + componentDidUpdate(prevProps) { - if (!prevProps.show && this.props.show) { - $(ReactDOM.findDOMNode(this.refs.modalBody)).css('max-height', $(window).height() - 300); - if ($(window).width() > 768) { - $(ReactDOM.findDOMNode(this.refs.modalBody)).perfectScrollbar(); - } + if (this.props.show && !prevProps.show) { + this.handleShow(); + } + } + + handleShow() { + if ($(window).width() > 768) { + $(ReactDOM.findDOMNode(this.refs.modalBody)).perfectScrollbar(); + $(ReactDOM.findDOMNode(this.refs.modalBody)).css('max-height', $(window).height() - 200); + } else { + $(ReactDOM.findDOMNode(this.refs.modalBody)).css('max-height', $(window).height() - 50); } } diff --git a/web/react/components/user_settings/user_settings_notifications.jsx b/web/react/components/user_settings/user_settings_notifications.jsx index c6f47804f..f762405af 100644 --- a/web/react/components/user_settings/user_settings_notifications.jsx +++ b/web/react/components/user_settings/user_settings_notifications.jsx @@ -1,16 +1,18 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var UserStore = require('../../stores/user_store.jsx'); -var SettingItemMin = require('../setting_item_min.jsx'); -var SettingItemMax = require('../setting_item_max.jsx'); -var client = require('../../utils/client.jsx'); -var AsyncClient = require('../../utils/async_client.jsx'); -var utils = require('../../utils/utils.jsx'); +import SettingItemMin from '../setting_item_min.jsx'; +import SettingItemMax from '../setting_item_max.jsx'; + +import UserStore from '../../stores/user_store.jsx'; + +import * as Client from '../../utils/client.jsx'; +import * as AsyncClient from '../../utils/async_client.jsx'; +import * as Utils from '../../utils/utils.jsx'; function getNotificationsStateFromStores() { var user = UserStore.getCurrentUser(); - var soundNeeded = !utils.isBrowserFirefox(); + var soundNeeded = !Utils.isBrowserFirefox(); var sound = 'true'; if (user.notify_props && user.notify_props.desktop_sound) { @@ -76,7 +78,9 @@ export default class NotificationsTab extends React.Component { super(props); this.handleSubmit = this.handleSubmit.bind(this); + this.handleCancel = this.handleCancel.bind(this); this.updateSection = this.updateSection.bind(this); + this.updateState = this.updateState.bind(this); this.onListenerChange = this.onListenerChange.bind(this); this.handleNotifyRadio = this.handleNotifyRadio.bind(this); this.handleEmailRadio = this.handleEmailRadio.bind(this); @@ -116,7 +120,7 @@ export default class NotificationsTab extends React.Component { data.all = this.state.allKey.toString(); data.channel = this.state.channelKey.toString(); - client.updateUserNotifyProps(data, + Client.updateUserNotifyProps(data, function success() { this.props.updateSection(''); AsyncClient.getMe(); @@ -126,10 +130,21 @@ export default class NotificationsTab extends React.Component { }.bind(this) ); } + handleCancel(e) { + this.updateState(); + this.props.updateSection(''); + e.preventDefault(); + } updateSection(section) { - this.setState(getNotificationsStateFromStores()); + this.updateState(); this.props.updateSection(section); } + updateState() { + const newState = getNotificationsStateFromStores(); + if (!Utils.areObjectsEqual(newState, this.state)) { + this.setState(newState); + } + } componentDidMount() { UserStore.addChangeListener(this.onListenerChange); } @@ -137,10 +152,7 @@ export default class NotificationsTab extends React.Component { UserStore.removeChangeListener(this.onListenerChange); } onListenerChange() { - var newState = getNotificationsStateFromStores(); - if (!utils.areStatesEqual(newState, this.state)) { - this.setState(newState); - } + this.updateState(); } handleNotifyRadio(notifyLevel) { this.setState({notifyLevel: notifyLevel}); @@ -243,11 +255,6 @@ export default class NotificationsTab extends React.Component { </div> ); - handleUpdateDesktopSection = function updateDesktopSection(e) { - this.props.updateSection(''); - e.preventDefault(); - }.bind(this); - const extraInfo = <span>{'Desktop notifications are available on Firefox, Safari, and Chrome.'}</span>; desktopSection = ( @@ -257,7 +264,7 @@ export default class NotificationsTab extends React.Component { inputs={inputs} submit={this.handleSubmit} server_error={serverError} - updateSection={handleUpdateDesktopSection} + updateSection={this.handleCancel} /> ); } else { @@ -322,11 +329,6 @@ export default class NotificationsTab extends React.Component { </div> ); - handleUpdateSoundSection = function updateSoundSection(e) { - this.props.updateSection(''); - e.preventDefault(); - }.bind(this); - const extraInfo = <span>{'Desktop notification sounds are available on Firefox, Safari, Chrome, Internet Explorer, and Edge.'}</span>; soundSection = ( @@ -336,7 +338,7 @@ export default class NotificationsTab extends React.Component { inputs={inputs} submit={this.handleSubmit} server_error={serverError} - updateSection={handleUpdateSoundSection} + updateSection={this.handleCancel} /> ); } else { @@ -403,18 +405,13 @@ export default class NotificationsTab extends React.Component { </div> ); - handleUpdateEmailSection = function updateEmailSection(e) { - this.props.updateSection(''); - e.preventDefault(); - }.bind(this); - emailSection = ( <SettingItemMax title='Email notifications' inputs={inputs} submit={this.handleSubmit} server_error={serverError} - updateSection={handleUpdateEmailSection} + updateSection={this.handleCancel} /> ); } else { @@ -510,7 +507,7 @@ export default class NotificationsTab extends React.Component { }.bind(this); inputs.push( <div key='userNotificationAllOption'> - <div className='checkbox'> + <div className='checkbox hidden'> <label> <input type='checkbox' @@ -564,17 +561,13 @@ export default class NotificationsTab extends React.Component { </div> ); - handleUpdateKeysSection = function updateKeysSection(e) { - this.props.updateSection(''); - e.preventDefault(); - }.bind(this); keysSection = ( <SettingItemMax title='Words that trigger mentions' inputs={inputs} submit={this.handleSubmit} server_error={serverError} - updateSection={handleUpdateKeysSection} + updateSection={this.handleCancel} /> ); } else { @@ -588,9 +581,11 @@ export default class NotificationsTab extends React.Component { if (this.state.mentionKey) { keys.push('@' + user.username); } - if (this.state.allKey) { - keys.push('@all'); - } + + // if (this.state.allKey) { + // keys.push('@all'); + // } + if (this.state.channelKey) { keys.push('@channel'); } @@ -649,7 +644,7 @@ export default class NotificationsTab extends React.Component { ref='wrapper' className='user-settings' > - <h3 className='tab-header'>Notifications</h3> + <h3 className='tab-header'>{'Notifications'}</h3> <div className='divider-dark first'/> {desktopSection} <div className='divider-light'/> diff --git a/web/react/components/user_settings/user_settings_security.jsx b/web/react/components/user_settings/user_settings_security.jsx index 61d13ed8b..fa2fecf07 100644 --- a/web/react/components/user_settings/user_settings_security.jsx +++ b/web/react/components/user_settings/user_settings_security.jsx @@ -1,46 +1,26 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var SettingItemMin = require('../setting_item_min.jsx'); -var SettingItemMax = require('../setting_item_max.jsx'); -var AccessHistoryModal = require('../access_history_modal.jsx'); -var ActivityLogModal = require('../activity_log_modal.jsx'); -var Client = require('../../utils/client.jsx'); -var AsyncClient = require('../../utils/async_client.jsx'); -var Constants = require('../../utils/constants.jsx'); +import SettingItemMin from '../setting_item_min.jsx'; +import SettingItemMax from '../setting_item_max.jsx'; +import AccessHistoryModal from '../access_history_modal.jsx'; +import ActivityLogModal from '../activity_log_modal.jsx'; +import ToggleModalButton from '../toggle_modal_button.jsx'; +import * as Client from '../../utils/client.jsx'; +import * as AsyncClient from '../../utils/async_client.jsx'; +import Constants from '../../utils/constants.jsx'; export default class SecurityTab extends React.Component { constructor(props) { super(props); - this.showAccessHistoryModal = this.showAccessHistoryModal.bind(this); - this.showActivityLogModal = this.showActivityLogModal.bind(this); - this.hideModals = this.hideModals.bind(this); this.submitPassword = this.submitPassword.bind(this); this.updateCurrentPassword = this.updateCurrentPassword.bind(this); this.updateNewPassword = this.updateNewPassword.bind(this); this.updateConfirmPassword = this.updateConfirmPassword.bind(this); this.setupInitialState = this.setupInitialState.bind(this); - const state = this.setupInitialState(); - state.showAccessHistoryModal = false; - state.showActivityLogModal = false; - this.state = state; - } - showAccessHistoryModal() { - this.props.setEnforceFocus(false); - this.setState({showAccessHistoryModal: true}); - } - showActivityLogModal() { - this.props.setEnforceFocus(false); - this.setState({showActivityLogModal: true}); - } - hideModals() { - this.props.setEnforceFocus(true); - this.setState({ - showAccessHistoryModal: false, - showActivityLogModal: false - }); + this.state = this.setupInitialState(); } submitPassword(e) { e.preventDefault(); @@ -258,30 +238,20 @@ export default class SecurityTab extends React.Component { {passwordSection} <div className='divider-dark'/> <br></br> - <a + <ToggleModalButton className='security-links theme' - href='#' - onClick={this.showAccessHistoryModal} + dialogType={AccessHistoryModal} > <i className='fa fa-clock-o'></i>View Access History - </a> + </ToggleModalButton> <b> </b> - <a + <ToggleModalButton className='security-links theme' - href='#' - onClick={this.showActivityLogModal} + dialogType={ActivityLogModal} > - <i className='fa fa-globe'></i>View and Logout of Active Sessions - </a> + <i className='fa fa-clock-o'></i>{'View and Logout of Active Sessions'} + </ToggleModalButton> </div> - <AccessHistoryModal - show={this.state.showAccessHistoryModal} - onModalDismissed={this.hideModals} - /> - <ActivityLogModal - show={this.state.showActivityLogModal} - onModalDismissed={this.hideModals} - /> </div> ); } diff --git a/web/react/components/view_image.jsx b/web/react/components/view_image.jsx index 92d7cd835..820f8fd8e 100644 --- a/web/react/components/view_image.jsx +++ b/web/react/components/view_image.jsx @@ -1,10 +1,10 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const Client = require('../utils/client.jsx'); -const Utils = require('../utils/utils.jsx'); -const Constants = require('../utils/constants.jsx'); -const ViewImagePopoverBar = require('./view_image_popover_bar.jsx'); +import * as Client from '../utils/client.jsx'; +import * as Utils from '../utils/utils.jsx'; +import Constants from '../utils/constants.jsx'; +import ViewImagePopoverBar from './view_image_popover_bar.jsx'; const Modal = ReactBootstrap.Modal; const KeyCodes = Constants.KeyCodes; @@ -423,24 +423,29 @@ export default class ViewImageModal extends React.Component { onClick={this.props.onModalDismissed} > <div - className={'image-wrapper ' + bgClass} - onMouseEnter={this.onMouseEnterImage} - onMouseLeave={this.onMouseLeaveImage} - onClick={(e) => e.stopPropagation()} + className={'image-wrapper'} + onClick={this.props.onModalDismissed} > <div - className={closeButtonClass} - onClick={this.props.onModalDismissed} - /> - {content} - <ViewImagePopoverBar - show={this.state.showFooter} - fileId={this.state.imgId} - totalFiles={this.props.filenames.length} - filename={name} - fileURL={fileUrl} - getPublicLink={this.getPublicLink} - /> + className={bgClass} + onMouseEnter={this.onMouseEnterImage} + onMouseLeave={this.onMouseLeaveImage} + onClick={(e) => e.stopPropagation()} + > + <div + className={closeButtonClass} + onClick={this.props.onModalDismissed} + /> + {content} + <ViewImagePopoverBar + show={this.state.showFooter} + fileId={this.state.imgId} + totalFiles={this.props.filenames.length} + filename={name} + fileURL={fileUrl} + getPublicLink={this.getPublicLink} + /> + </div> </div> {leftArrow} {rightArrow} diff --git a/web/react/dispatcher/app_dispatcher.jsx b/web/react/dispatcher/app_dispatcher.jsx index 388e82a51..648f0fa0d 100644 --- a/web/react/dispatcher/app_dispatcher.jsx +++ b/web/react/dispatcher/app_dispatcher.jsx @@ -1,17 +1,16 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Dispatcher = require('flux').Dispatcher; -var assign = require('object-assign'); +import * as Flux from 'flux'; -var Constants = require('../utils/constants.jsx'); -var PayloadSources = Constants.PayloadSources; +import Constants from '../utils/constants.jsx'; +const PayloadSources = Constants.PayloadSources; -var AppDispatcher = assign(new Dispatcher(), { +const AppDispatcher = Object.assign(new Flux.Dispatcher(), { handleServerAction: function performServerAction(action) { var payload = { source: PayloadSources.SERVER_ACTION, - action: action + action }; this.dispatch(payload); }, @@ -19,7 +18,7 @@ var AppDispatcher = assign(new Dispatcher(), { handleViewAction: function performViewAction(action) { var payload = { source: PayloadSources.VIEW_ACTION, - action: action + action }; this.dispatch(payload); } diff --git a/web/react/dispatcher/event_helpers.jsx b/web/react/dispatcher/event_helpers.jsx new file mode 100644 index 000000000..297367ce9 --- /dev/null +++ b/web/react/dispatcher/event_helpers.jsx @@ -0,0 +1,182 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import ChannelStore from '../stores/channel_store.jsx'; +import PostStore from '../stores/post_store.jsx'; +import Constants from '../utils/constants.jsx'; +const ActionTypes = Constants.ActionTypes; +import * as AsyncClient from '../utils/async_client.jsx'; +import * as Client from '../utils/client.jsx'; +import * as Utils from '../utils/utils.jsx'; + +export function emitChannelClickEvent(channel) { + AsyncClient.getChannels(true); + AsyncClient.getChannelExtraInfo(channel.id); + AsyncClient.updateLastViewedAt(channel.id); + AsyncClient.getPosts(channel.id); + + AppDispatcher.handleViewAction({ + type: ActionTypes.CLICK_CHANNEL, + name: channel.name, + id: channel.id + }); +} + +export function emitPostFocusEvent(postId) { + Client.getPostById( + postId, + (data) => { + AppDispatcher.handleServerAction({ + type: ActionTypes.RECIEVED_FOCUSED_POST, + postId, + post_list: data + }); + + AsyncClient.getPostsBefore(postId, 0, Constants.POST_FOCUS_CONTEXT_RADIUS); + AsyncClient.getPostsAfter(postId, 0, Constants.POST_FOCUS_CONTEXT_RADIUS); + } + ); +} + +export function emitPostFocusRightHandSideEvent(post) { + Client.getPost( + post.channel_id, + post.id, + (data) => { + AppDispatcher.handleServerAction({ + type: ActionTypes.RECIEVED_POST_SELECTED, + post_list: data + }); + + AppDispatcher.handleServerAction({ + type: ActionTypes.RECIEVED_SEARCH, + results: null + }); + }, + (err) => { + AsyncClient.dispatchError(err, 'getPost'); + } + ); + + var postChannel = ChannelStore.get(post.channel_id); + Utils.switchChannel(postChannel); +} + +export function emitLoadMorePostsEvent() { + const id = ChannelStore.getCurrentId(); + loadMorePostsTop(id); +} + +export function emitLoadMorePostsFocusedTopEvent() { + const id = PostStore.getFocusedPostId(); + loadMorePostsTop(id); +} + +export function loadMorePostsTop(id) { + const earliestPostId = PostStore.getEarliestPost(id).id; + if (PostStore.requestVisibilityIncrease(id, Constants.POST_CHUNK_SIZE)) { + AsyncClient.getPostsBefore(earliestPostId, 0, Constants.POST_CHUNK_SIZE); + } +} + +export function emitLoadMorePostsFocusedBottomEvent() { + const id = PostStore.getFocusedPostId(); + const latestPostId = PostStore.getLatestPost(id).id; + AsyncClient.getPostsAfter(latestPostId, 0, Constants.POST_CHUNK_SIZE); +} + +export function emitPostRecievedEvent(post) { + AppDispatcher.handleServerAction({ + type: ActionTypes.RECIEVED_POST, + post + }); +} + +export function emitUserPostedEvent(post) { + AppDispatcher.handleServerAction({ + type: ActionTypes.CREATE_POST, + post + }); +} + +export function emitPostDeletedEvent(post) { + AppDispatcher.handleServerAction({ + type: ActionTypes.POST_DELETED, + post + }); +} + +export function showDeletePostModal(post, commentCount = 0) { + AppDispatcher.handleViewAction({ + type: ActionTypes.TOGGLE_DELETE_POST_MODAL, + value: true, + post, + commentCount + }); +} + +export function showGetTeamInviteLinkModal() { + AppDispatcher.handleViewAction({ + type: Constants.ActionTypes.TOGGLE_GET_TEAM_INVITE_LINK_MODAL, + value: true + }); +} + +export function showInviteMemberModal() { + AppDispatcher.handleViewAction({ + type: ActionTypes.TOGGLE_INVITE_MEMBER_MODAL, + value: true + }); +} + +export function showRegisterAppModal() { + AppDispatcher.handleViewAction({ + type: ActionTypes.TOGGLE_REGISTER_APP_MODAL, + value: true + }); +} + +export function emitSuggestionPretextChanged(suggestionId, pretext) { + AppDispatcher.handleViewAction({ + type: ActionTypes.SUGGESTION_PRETEXT_CHANGED, + id: suggestionId, + pretext + }); +} + +export function emitSelectNextSuggestion(suggestionId) { + AppDispatcher.handleViewAction({ + type: ActionTypes.SUGGESTION_SELECT_NEXT, + id: suggestionId + }); +} + +export function emitSelectPreviousSuggestion(suggestionId) { + AppDispatcher.handleViewAction({ + type: ActionTypes.SUGGESTION_SELECT_PREVIOUS, + id: suggestionId + }); +} + +export function emitCompleteWordSuggestion(suggestionId, term = '') { + AppDispatcher.handleViewAction({ + type: Constants.ActionTypes.SUGGESTION_COMPLETE_WORD, + id: suggestionId, + term + }); +} + +export function emitClearSuggestions(suggestionId) { + AppDispatcher.handleViewAction({ + type: Constants.ActionTypes.SUGGESTION_CLEAR_SUGGESTIONS, + id: suggestionId + }); +} + +export function emitPreferenceChangedEvent(preference) { + AppDispatcher.handleServerAction({ + type: Constants.ActionTypes.RECIEVED_PREFERENCE, + preference + }); +} diff --git a/web/react/package.json b/web/react/package.json index 9af6f5880..14b16b4e4 100644 --- a/web/react/package.json +++ b/web/react/package.json @@ -3,36 +3,46 @@ "version": "0.0.1", "private": true, "dependencies": { - "autolinker": "0.18.1", - "babel-runtime": "5.8.24", + "autolinker": "0.22.0", "flux": "2.1.1", - "highlight.js": "^8.9.1", + "highlight.js": "8.9.1", "keymirror": "0.1.1", - "marked": "0.3.5", - "object-assign": "3.0.0", + "marked": "mattermost/marked#cb85e5cc81bc7937dbb73c3c53d9532b1b97e3ca", + "object-assign": "4.0.1", "twemoji": "1.4.1" }, "devDependencies": { - "browserify": "11.2.0", - "babelify": "6.3.0", - "uglify-js": "2.4.24", - "watchify": "3.4.0", - "eslint": "1.6.0", - "eslint-plugin-react": "3.5.1" + "browserify": "12.0.1", + "babelify": "7.2.0", + "babel-preset-es2015": "6.1.18", + "babel-preset-stage-0": "6.1.18", + "babel-preset-react": "6.1.18", + "babel-plugin-transform-runtime": "6.1.4", + "uglify-js": "2.6.1", + "watchify": "3.6.1", + "eslint": "1.9.0", + "eslint-plugin-react": "3.9.0", + "exorcist": "0.4.0", + "babel-eslint": "4.1.5" }, "scripts": { "check": "", "build-libs": "browserify -r crypto -r autolinker -r flux -r keymirror -r marked -r object-assign -r twemoji | uglifyjs -c -m --screw-ie8 > ../static/js/libs.min.js", "start": "watchify --fast -x crypto -x node -x autolinker -x flux -x keymirror -x marked -x object-assign -x twemoji -o ../static/js/bundle.js -v -d ./**/*.jsx", - "build": "browserify -x crypto -x autolinker -x flux -x keymirror -x marked -x object-assign -x twemoji ./**/*.jsx | uglifyjs -c -m --screw-ie8 > ../static/js/bundle.min.js" + "build": "browserify -x crypto -x autolinker -x flux -x keymirror -x marked -x object-assign -x twemoji -d ./**/*.jsx | exorcist ../static/js/inter.js.map > ../static/js/tmp.js && uglifyjs ../static/js/tmp.js --in-source-map \"../static/js/inter.js.map\" --source-map \"../static/js/bundle.min.js.map\" --source-map-url \"/static/js/bundle.min.js.map\" -c -m --screw-ie8 > ../static/js/bundle.min.js && rm ../static/js/tmp.js && rm ../static/js/inter.js.map" }, "browserify": { "transform": [ [ "babelify", { - "optional": [ - "runtime" + "presets": [ + "es2015", + "react", + "stage-0" + ], + "plugins": [ + "transform-runtime" ] } ] diff --git a/web/react/pages/admin_console.jsx b/web/react/pages/admin_console.jsx index ea9ae06f4..cbd2bd80d 100644 --- a/web/react/pages/admin_console.jsx +++ b/web/react/pages/admin_console.jsx @@ -1,9 +1,9 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var ErrorBar = require('../components/error_bar.jsx'); -var SelectTeamModal = require('../components/admin_console/select_team_modal.jsx'); -var AdminController = require('../components/admin_console/admin_controller.jsx'); +import ErrorBar from '../components/error_bar.jsx'; +import SelectTeamModal from '../components/admin_console/select_team_modal.jsx'; +import AdminController from '../components/admin_console/admin_controller.jsx'; export function setupAdminConsolePage(props) { ReactDOM.render( diff --git a/web/react/pages/authorize.jsx b/web/react/pages/authorize.jsx index 2bc8b539d..71f17d007 100644 --- a/web/react/pages/authorize.jsx +++ b/web/react/pages/authorize.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Authorize = require('../components/authorize.jsx'); +import Authorize from '../components/authorize.jsx'; function setupAuthorizePage(props) { ReactDOM.render( diff --git a/web/react/pages/channel.jsx b/web/react/pages/channel.jsx index 8781d52a5..2122c729e 100644 --- a/web/react/pages/channel.jsx +++ b/web/react/pages/channel.jsx @@ -1,41 +1,45 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -var ChannelView = require('../components/channel_view.jsx'); -var ChannelLoader = require('../components/channel_loader.jsx'); -var ErrorBar = require('../components/error_bar.jsx'); -var ErrorStore = require('../stores/error_store.jsx'); - -var MentionList = require('../components/mention_list.jsx'); -var GetLinkModal = require('../components/get_link_modal.jsx'); -var EditChannelModal = require('../components/edit_channel_modal.jsx'); -var DeleteChannelModal = require('../components/delete_channel_modal.jsx'); -var RenameChannelModal = require('../components/rename_channel_modal.jsx'); -var EditPostModal = require('../components/edit_post_modal.jsx'); -var DeletePostModal = require('../components/delete_post_modal.jsx'); -var MoreChannelsModal = require('../components/more_channels.jsx'); -var PostDeletedModal = require('../components/post_deleted_modal.jsx'); -var ChannelNotificationsModal = require('../components/channel_notifications.jsx'); -var TeamSettingsModal = require('../components/team_settings_modal.jsx'); -var TeamMembersModal = require('../components/team_members.jsx'); -var ChannelInfoModal = require('../components/channel_info_modal.jsx'); -var RemovedFromChannelModal = require('../components/removed_from_channel_modal.jsx'); -var RegisterAppModal = require('../components/register_app_modal.jsx'); -var ImportThemeModal = require('../components/user_settings/import_theme_modal.jsx'); -var InviteMemberModal = require('../components/invite_member_modal.jsx'); - -var AsyncClient = require('../utils/async_client.jsx'); -var Constants = require('../utils/constants.jsx'); -var ActionTypes = Constants.ActionTypes; - -function setupChannelPage(props) { - AppDispatcher.handleViewAction({ - type: ActionTypes.CLICK_CHANNEL, - name: props.ChannelName, - id: props.ChannelId - }); +import ChannelView from '../components/channel_view.jsx'; +import ChannelLoader from '../components/channel_loader.jsx'; +import ErrorBar from '../components/error_bar.jsx'; +import ErrorStore from '../stores/error_store.jsx'; + +import GetTeamInviteLinkModal from '../components/get_team_invite_link_modal.jsx'; +import RenameChannelModal from '../components/rename_channel_modal.jsx'; +import EditPostModal from '../components/edit_post_modal.jsx'; +import DeletePostModal from '../components/delete_post_modal.jsx'; +import MoreChannelsModal from '../components/more_channels.jsx'; +import PostDeletedModal from '../components/post_deleted_modal.jsx'; +import TeamSettingsModal from '../components/team_settings_modal.jsx'; +import RemovedFromChannelModal from '../components/removed_from_channel_modal.jsx'; +import RegisterAppModal from '../components/register_app_modal.jsx'; +import ImportThemeModal from '../components/user_settings/import_theme_modal.jsx'; +import InviteMemberModal from '../components/invite_member_modal.jsx'; + +import PreferenceStore from '../stores/preference_store.jsx'; + +import * as Utils from '../utils/utils.jsx'; +import * as AsyncClient from '../utils/async_client.jsx'; +import * as EventHelpers from '../dispatcher/event_helpers.jsx'; + +import Constants from '../utils/constants.jsx'; + +function onPreferenceChange() { + const selectedFont = PreferenceStore.getPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'selected_font', {value: Constants.DEFAULT_FONT}).value; + Utils.applyFont(selectedFont); + PreferenceStore.removeChangeListener(onPreferenceChange); +} + +function setupChannelPage(props, team, channel) { + if (props.PostId === '') { + EventHelpers.emitChannelClickEvent(channel); + } else { + EventHelpers.emitPostFocusEvent(props.PostId); + } + PreferenceStore.addChangeListener(onPreferenceChange); AsyncClient.getAllPreferences(); // ChannelLoader must be rendered first @@ -54,27 +58,12 @@ function setupChannelPage(props) { document.getElementById('channel_view') ); - ReactDOM.render( - <MentionList id='post_textbox' />, - document.getElementById('post_mention_tab') - ); - - ReactDOM.render( - <MentionList id='reply_textbox' />, - document.getElementById('reply_mention_tab') - ); - - ReactDOM.render( - <MentionList id='edit_textbox' />, - document.getElementById('edit_mention_tab') - ); - // // Modals // ReactDOM.render( - <GetLinkModal />, - document.getElementById('get_link_modal') + <GetTeamInviteLinkModal />, + document.getElementById('get_team_invite_link_modal') ); ReactDOM.render( @@ -93,36 +82,11 @@ function setupChannelPage(props) { ); ReactDOM.render( - <TeamMembersModal teamDisplayName={props.TeamDisplayName} />, - document.getElementById('team_members_modal') - ); - - ReactDOM.render( - <EditChannelModal />, - document.getElementById('edit_channel_modal') - ); - - ReactDOM.render( - <DeleteChannelModal />, - document.getElementById('delete_channel_modal') - ); - - ReactDOM.render( <RenameChannelModal />, document.getElementById('rename_channel_modal') ); ReactDOM.render( - <ChannelNotificationsModal />, - document.getElementById('channel_notifications_modal') - ); - - ReactDOM.render( - <ChannelInfoModal />, - document.getElementById('channel_info_modal') - ); - - ReactDOM.render( <MoreChannelsModal />, document.getElementById('more_channels_modal') ); diff --git a/web/react/pages/docs.jsx b/web/react/pages/docs.jsx new file mode 100644 index 000000000..74d9c2d19 --- /dev/null +++ b/web/react/pages/docs.jsx @@ -0,0 +1,16 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import Docs from '../components/docs.jsx'; + +function setupDocumentationPage(props) { + ReactDOM.render( + <Docs + site={props.Site} + />, + document.getElementById('docs') + ); +} + +global.window.mm_user = global.window.mm_user || {}; +global.window.setup_documentation_page = setupDocumentationPage; diff --git a/web/react/pages/find_team.jsx b/web/react/pages/find_team.jsx index f95fce5c6..c4653fd77 100644 --- a/web/react/pages/find_team.jsx +++ b/web/react/pages/find_team.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var FindTeam = require('../components/find_team.jsx'); +import FindTeam from '../components/find_team.jsx'; function setupFindTeamPage() { ReactDOM.render( diff --git a/web/react/pages/home.jsx b/web/react/pages/home.jsx index a59f2afd0..ff81c4994 100644 --- a/web/react/pages/home.jsx +++ b/web/react/pages/home.jsx @@ -1,12 +1,11 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var ChannelStore = require('../stores/channel_store.jsx'); -var TeamStore = require('../stores/team_store.jsx'); -var Constants = require('../utils/constants.jsx'); +import TeamStore from '../stores/team_store.jsx'; +import Constants from '../utils/constants.jsx'; function setupHomePage() { - var last = ChannelStore.getLastVisitedName(); + var last = null; if (last == null || last.length === 0) { window.location = TeamStore.getCurrentTeamUrl() + '/channels/' + Constants.DEFAULT_CHANNEL; } else { diff --git a/web/react/pages/login.jsx b/web/react/pages/login.jsx index 9865e6fd2..4a565623e 100644 --- a/web/react/pages/login.jsx +++ b/web/react/pages/login.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var Login = require('../components/login.jsx'); +import Login from '../components/login.jsx'; function setupLoginPage(props) { ReactDOM.render( diff --git a/web/react/pages/password_reset.jsx b/web/react/pages/password_reset.jsx index aef9ab3f9..4a6f1dcb0 100644 --- a/web/react/pages/password_reset.jsx +++ b/web/react/pages/password_reset.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var PasswordReset = require('../components/password_reset.jsx'); +import PasswordReset from '../components/password_reset.jsx'; function setupPasswordResetPage(props) { ReactDOM.render( diff --git a/web/react/pages/signup_team.jsx b/web/react/pages/signup_team.jsx index caa93b5bf..08ea45000 100644 --- a/web/react/pages/signup_team.jsx +++ b/web/react/pages/signup_team.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var SignupTeam = require('../components/signup_team.jsx'); +import SignupTeam from '../components/signup_team.jsx'; function setupSignupTeamPage(props) { var teams = []; diff --git a/web/react/pages/signup_team_complete.jsx b/web/react/pages/signup_team_complete.jsx index 44ec05b98..d5ed144a1 100644 --- a/web/react/pages/signup_team_complete.jsx +++ b/web/react/pages/signup_team_complete.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var SignupTeamComplete = require('../components/signup_team_complete.jsx'); +import SignupTeamComplete from '../components/signup_team_complete.jsx'; function setupSignupTeamCompletePage(props) { ReactDOM.render( diff --git a/web/react/pages/signup_user_complete.jsx b/web/react/pages/signup_user_complete.jsx index a0e0962ff..de2c48443 100644 --- a/web/react/pages/signup_user_complete.jsx +++ b/web/react/pages/signup_user_complete.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var SignupUserComplete = require('../components/signup_user_complete.jsx'); +import SignupUserComplete from '../components/signup_user_complete.jsx'; function setupSignupUserCompletePage(props) { ReactDOM.render( diff --git a/web/react/pages/verify.jsx b/web/react/pages/verify.jsx index 7535009b3..d4ce4844d 100644 --- a/web/react/pages/verify.jsx +++ b/web/react/pages/verify.jsx @@ -1,7 +1,7 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var EmailVerify = require('../components/email_verify.jsx'); +import EmailVerify from '../components/email_verify.jsx'; global.window.setupVerifyPage = function setupVerifyPage(props) { ReactDOM.render( diff --git a/web/react/stores/admin_store.jsx b/web/react/stores/admin_store.jsx index cf16d031c..704e2ced4 100644 --- a/web/react/stores/admin_store.jsx +++ b/web/react/stores/admin_store.jsx @@ -1,17 +1,17 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -var EventEmitter = require('events').EventEmitter; +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import EventEmitter from 'events'; -var BrowserStore = require('../stores/browser_store.jsx'); +import BrowserStore from '../stores/browser_store.jsx'; -var Constants = require('../utils/constants.jsx'); -var ActionTypes = Constants.ActionTypes; +import Constants from '../utils/constants.jsx'; +const ActionTypes = Constants.ActionTypes; -var LOG_CHANGE_EVENT = 'log_change'; -var CONFIG_CHANGE_EVENT = 'config_change'; -var ALL_TEAMS_EVENT = 'all_team_change'; +const LOG_CHANGE_EVENT = 'log_change'; +const CONFIG_CHANGE_EVENT = 'config_change'; +const ALL_TEAMS_EVENT = 'all_team_change'; class AdminStoreClass extends EventEmitter { constructor() { diff --git a/web/react/stores/browser_store.jsx b/web/react/stores/browser_store.jsx index 8e86ce32f..ff6ae45ea 100644 --- a/web/react/stores/browser_store.jsx +++ b/web/react/stores/browser_store.jsx @@ -1,6 +1,8 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. +import {generateId} from '../utils/utils.jsx'; + function getPrefix() { if (global.window.mm_user) { return global.window.mm_user.id + '_'; @@ -26,6 +28,7 @@ class BrowserStoreClass { this.clearAll = this.clearAll.bind(this); this.checkedLocalStorageSupported = ''; this.signalLogout = this.signalLogout.bind(this); + this.isSignallingLogout = this.isSignallingLogout.bind(this); var currentVersion = sessionStorage.getItem('storage_version'); if (currentVersion !== global.window.mm_config.Version) { @@ -72,7 +75,7 @@ class BrowserStoreClass { console.log('An error occurred while setting local storage, clearing all props'); //eslint-disable-line no-console localStorage.clear(); sessionStorage.clear(); - window.location.href = window.location.href; + window.location.reload(true); } } @@ -113,11 +116,19 @@ class BrowserStoreClass { signalLogout() { if (this.isLocalStorageSupported()) { - localStorage.setItem('__logout__', 'yes'); + // PLT-1285 store an identifier in session storage so we can catch if the logout came from this tab on IE11 + const logoutId = generateId(); + + sessionStorage.setItem('__logout__', logoutId); + localStorage.setItem('__logout__', logoutId); localStorage.removeItem('__logout__'); } } + isSignallingLogout(logoutId) { + return logoutId === sessionStorage.getItem('__logout__'); + } + /** * Preforms the given action on each item that has the given prefix * Signature for action is action(key, value) @@ -151,7 +162,14 @@ class BrowserStoreClass { } clear() { + // don't clear the logout id so IE11 can tell which tab sent a logout request + const logoutId = sessionStorage.getItem('__logout__'); + sessionStorage.clear(); + + if (logoutId) { + sessionStorage.setItem('__logout__', logoutId); + } } clearAll() { @@ -185,3 +203,4 @@ class BrowserStoreClass { var BrowserStore = new BrowserStoreClass(); export default BrowserStore; +window.BrowserStore = BrowserStore; diff --git a/web/react/stores/channel_store.jsx b/web/react/stores/channel_store.jsx index cc0d0d14b..afc960fcf 100644 --- a/web/react/stores/channel_store.jsx +++ b/web/react/stores/channel_store.jsx @@ -1,19 +1,18 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -var EventEmitter = require('events').EventEmitter; +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import EventEmitter from 'events'; var Utils; -var Constants = require('../utils/constants.jsx'); -var ActionTypes = Constants.ActionTypes; +import Constants from '../utils/constants.jsx'; +const ActionTypes = Constants.ActionTypes; +const NotificationPrefs = Constants.NotificationPrefs; -var BrowserStore = require('../stores/browser_store.jsx'); - -var CHANGE_EVENT = 'change'; -var LEAVE_EVENT = 'leave'; -var MORE_CHANGE_EVENT = 'change'; -var EXTRA_INFO_EVENT = 'extra_info'; +const CHANGE_EVENT = 'change'; +const LEAVE_EVENT = 'leave'; +const MORE_CHANGE_EVENT = 'change'; +const EXTRA_INFO_EVENT = 'extra_info'; class ChannelStoreClass extends EventEmitter { constructor(props) { @@ -21,7 +20,43 @@ class ChannelStoreClass extends EventEmitter { this.setMaxListeners(11); + this.emitChange = this.emitChange.bind(this); + this.addChangeListener = this.addChangeListener.bind(this); + this.removeChangeListener = this.removeChangeListener.bind(this); + this.emitMoreChange = this.emitMoreChange.bind(this); + this.addMoreChangeListener = this.addMoreChangeListener.bind(this); + this.removeMoreChangeListener = this.removeMoreChangeListener.bind(this); + this.emitExtraInfoChange = this.emitExtraInfoChange.bind(this); + this.addExtraInfoChangeListener = this.addExtraInfoChangeListener.bind(this); + this.removeExtraInfoChangeListener = this.removeExtraInfoChangeListener.bind(this); + this.emitLeave = this.emitLeave.bind(this); + this.addLeaveListener = this.addLeaveListener.bind(this); + this.removeLeaveListener = this.removeLeaveListener.bind(this); + this.findFirstBy = this.findFirstBy.bind(this); + this.get = this.get.bind(this); + this.getMember = this.getMember.bind(this); + this.getByName = this.getByName.bind(this); + this.pSetPostMode = this.pSetPostMode.bind(this); + this.getPostMode = this.getPostMode.bind(this); + this.setUnreadCount = this.setUnreadCount.bind(this); + this.setUnreadCounts = this.setUnreadCounts.bind(this); + this.getUnreadCount = this.getUnreadCount.bind(this); + this.getUnreadCounts = this.getUnreadCounts.bind(this); + this.currentId = null; + this.postMode = this.POST_MODE_CHANNEL; + this.channels = []; + this.channelMembers = {}; + this.moreChannels = {}; + this.moreChannels.loading = true; + this.extraInfos = {}; + this.unreadCounts = {}; + } + get POST_MODE_CHANNEL() { + return 1; + } + get POST_MODE_FOCUS() { + return 2; } emitChange() { this.emit(CHANGE_EVENT); @@ -90,29 +125,19 @@ class ChannelStoreClass extends EventEmitter { setCurrentId(id) { this.currentId = id; } - setLastVisitedName(name) { - if (name == null) { - BrowserStore.removeItem('last_visited_name'); - } else { - BrowserStore.setItem('last_visited_name', name); - } - } - getLastVisitedName() { - return BrowserStore.getItem('last_visited_name'); - } resetCounts(id) { - var cm = this.pGetChannelMembers(); + const cm = this.channelMembers; for (var cmid in cm) { if (cm[cmid].channel_id === id) { var c = this.get(id); if (c) { cm[cmid].msg_count = this.get(id).total_msg_count; cm[cmid].mention_count = 0; + this.setUnreadCount(id); } break; } } - this.pStoreChannelMembers(cm); } getCurrentId() { return this.currentId; @@ -142,18 +167,7 @@ class ChannelStoreClass extends EventEmitter { this.emitChange(); } getCurrentExtraInfo() { - var currentId = this.getCurrentId(); - var extra = null; - - if (currentId) { - extra = this.pGetExtraInfos()[currentId]; - } - - if (extra == null) { - extra = {members: []}; - } - - return extra; + return this.getExtraInfo(this.getCurrentId()); } getExtraInfo(channelId) { var extra = null; @@ -162,7 +176,10 @@ class ChannelStoreClass extends EventEmitter { extra = this.pGetExtraInfos()[channelId]; } - if (extra == null) { + if (extra) { + // create a defensive copy + extra = JSON.parse(JSON.stringify(extra)); + } else { extra = {members: []}; } @@ -192,10 +209,10 @@ class ChannelStoreClass extends EventEmitter { this.pStoreChannels(channels); } pStoreChannels(channels) { - BrowserStore.setItem('channels', channels); + this.channels = channels; } pGetChannels() { - return BrowserStore.getItem('channels', []); + return this.channels; } pStoreChannelMember(channelMember) { var members = this.pGetChannelMembers(); @@ -203,49 +220,90 @@ class ChannelStoreClass extends EventEmitter { this.pStoreChannelMembers(members); } pStoreChannelMembers(channelMembers) { - BrowserStore.setItem('channel_members', channelMembers); + this.channelMembers = channelMembers; } pGetChannelMembers() { - return BrowserStore.getItem('channel_members', {}); + return this.channelMembers; } pStoreMoreChannels(channels) { - BrowserStore.setItem('more_channels', channels); + this.moreChannels = channels; } pGetMoreChannels() { - var channels = BrowserStore.getItem('more_channels'); - - if (channels == null) { - channels = {}; - channels.loading = true; - } - - return channels; + return this.moreChannels; } pStoreExtraInfos(extraInfos) { - BrowserStore.setItem('extra_infos', extraInfos); + this.extraInfos = extraInfos; } pGetExtraInfos() { - return BrowserStore.getItem('extra_infos', {}); + return this.extraInfos; } isDefault(channel) { return channel.name === Constants.DEFAULT_CHANNEL; } + + pSetPostMode(mode) { + this.postMode = mode; + } + + getPostMode() { + return this.postMode; + } + + setUnreadCount(id) { + const ch = this.get(id); + const chMember = this.getMember(id); + + let chMentionCount = chMember.mention_count; + let chUnreadCount = ch.total_msg_count - chMember.msg_count - chMentionCount; + + if (ch.type === 'D') { + chMentionCount = chUnreadCount; + chUnreadCount = 0; + } else if (chMember.notify_props && chMember.notify_props.mark_unread === NotificationPrefs.MENTION) { + chUnreadCount = 0; + } + + this.unreadCounts[id] = {msgs: chUnreadCount, mentions: chMentionCount}; + } + + setUnreadCounts() { + const channels = this.getAll(); + channels.forEach((ch) => { + this.setUnreadCount(ch.id); + }); + } + + getUnreadCount(id) { + return this.unreadCounts[id] || {msgs: 0, mentions: 0}; + } + + getUnreadCounts() { + return this.unreadCounts; + } } var ChannelStore = new ChannelStoreClass(); -ChannelStore.dispatchToken = AppDispatcher.register(function handleAction(payload) { +ChannelStore.dispatchToken = AppDispatcher.register((payload) => { var action = payload.action; var currentId; switch (action.type) { case ActionTypes.CLICK_CHANNEL: ChannelStore.setCurrentId(action.id); - ChannelStore.setLastVisitedName(action.name); ChannelStore.resetCounts(action.id); + ChannelStore.pSetPostMode(ChannelStore.POST_MODE_CHANNEL); ChannelStore.emitChange(); break; + case ActionTypes.RECIEVED_FOCUSED_POST: { + const post = action.post_list.posts[action.postId]; + ChannelStore.setCurrentId(post.channel_id); + ChannelStore.pSetPostMode(ChannelStore.POST_MODE_FOCUS); + ChannelStore.emitChange(); + break; + } + case ActionTypes.RECIEVED_CHANNELS: ChannelStore.pStoreChannels(action.channels); ChannelStore.pStoreChannelMembers(action.members); @@ -253,16 +311,20 @@ ChannelStore.dispatchToken = AppDispatcher.register(function handleAction(payloa if (currentId) { ChannelStore.resetCounts(currentId); } + ChannelStore.setUnreadCounts(); ChannelStore.emitChange(); break; case ActionTypes.RECIEVED_CHANNEL: ChannelStore.pStoreChannel(action.channel); - ChannelStore.pStoreChannelMember(action.member); + if (action.member) { + ChannelStore.pStoreChannelMember(action.member); + } currentId = ChannelStore.getCurrentId(); if (currentId) { ChannelStore.resetCounts(currentId); } + ChannelStore.setUnreadCount(action.channel.id); ChannelStore.emitChange(); break; diff --git a/web/react/stores/error_store.jsx b/web/react/stores/error_store.jsx index 775b8e006..8fb051138 100644 --- a/web/react/stores/error_store.jsx +++ b/web/react/stores/error_store.jsx @@ -1,15 +1,15 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -var EventEmitter = require('events').EventEmitter; +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import EventEmitter from 'events'; -var Constants = require('../utils/constants.jsx'); -var ActionTypes = Constants.ActionTypes; +import Constants from '../utils/constants.jsx'; +const ActionTypes = Constants.ActionTypes; -var BrowserStore = require('../stores/browser_store.jsx'); +import BrowserStore from '../stores/browser_store.jsx'; -var CHANGE_EVENT = 'change'; +const CHANGE_EVENT = 'change'; class ErrorStoreClass extends EventEmitter { constructor() { diff --git a/web/react/stores/modal_store.jsx b/web/react/stores/modal_store.jsx index dc65d48da..9f33cf022 100644 --- a/web/react/stores/modal_store.jsx +++ b/web/react/stores/modal_store.jsx @@ -1,10 +1,10 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -const EventEmitter = require('events').EventEmitter; +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import EventEmitter from 'events'; -const Constants = require('../utils/constants.jsx'); +import Constants from '../utils/constants.jsx'; const ActionTypes = Constants.ActionTypes; class ModalStoreClass extends EventEmitter { @@ -27,12 +27,16 @@ class ModalStoreClass extends EventEmitter { } handleEventPayload(payload) { - const action = payload.action; + // toggle event handlers should accept a boolean show/hide value and can accept a map of arguments + const {type, value, ...args} = payload.action; //eslint-disable-line no-redeclare - switch (action.type) { + switch (type) { case ActionTypes.TOGGLE_IMPORT_THEME_MODAL: case ActionTypes.TOGGLE_INVITE_MEMBER_MODAL: - this.emit(action.type, action.value); + case ActionTypes.TOGGLE_DELETE_POST_MODAL: + case ActionTypes.TOGGLE_GET_TEAM_INVITE_LINK_MODAL: + case ActionTypes.TOGGLE_REGISTER_APP_MODAL: + this.emit(type, value, args); break; } } diff --git a/web/react/stores/post_store.jsx b/web/react/stores/post_store.jsx index 0fe253310..2212edadb 100644 --- a/web/react/stores/post_store.jsx +++ b/web/react/stores/post_store.jsx @@ -1,20 +1,21 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -var EventEmitter = require('events').EventEmitter; +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import EventEmitter from 'events'; -var ChannelStore = require('../stores/channel_store.jsx'); -var BrowserStore = require('../stores/browser_store.jsx'); -var UserStore = require('../stores/user_store.jsx'); +import ChannelStore from '../stores/channel_store.jsx'; +import BrowserStore from '../stores/browser_store.jsx'; +import UserStore from '../stores/user_store.jsx'; -var Constants = require('../utils/constants.jsx'); -var ActionTypes = Constants.ActionTypes; +import Constants from '../utils/constants.jsx'; +const ActionTypes = Constants.ActionTypes; -var CHANGE_EVENT = 'change'; -var SELECTED_POST_CHANGE_EVENT = 'selected_post_change'; -var EDIT_POST_EVENT = 'edit_post'; -var POSTS_VIEW_JUMP_EVENT = 'post_list_jump'; +const CHANGE_EVENT = 'change'; +const FOCUSED_POST_CHANGE = 'focused_post_change'; +const EDIT_POST_EVENT = 'edit_post'; +const POSTS_VIEW_JUMP_EVENT = 'post_list_jump'; +const SELECTED_POST_CHANGE_EVENT = 'selected_post_change'; class PostStoreClass extends EventEmitter { constructor() { @@ -24,10 +25,6 @@ class PostStoreClass extends EventEmitter { this.addChangeListener = this.addChangeListener.bind(this); this.removeChangeListener = this.removeChangeListener.bind(this); - this.emitSelectedPostChange = this.emitSelectedPostChange.bind(this); - this.addSelectedPostChangeListener = this.addSelectedPostChangeListener.bind(this); - this.removeSelectedPostChangeListener = this.removeSelectedPostChangeListener.bind(this); - this.emitEditPost = this.emitEditPost.bind(this); this.addEditPostListener = this.addEditPostListener.bind(this); this.removeEditPostListener = this.removeEditPostListner.bind(this); @@ -36,26 +33,50 @@ class PostStoreClass extends EventEmitter { this.addPostsViewJumpListener = this.addPostsViewJumpListener.bind(this); this.removePostsViewJumpListener = this.removePostsViewJumpListener.bind(this); - this.getCurrentPosts = this.getCurrentPosts.bind(this); + this.emitPostFocused = this.emitPostFocused.bind(this); + this.addPostFocusedListener = this.addPostFocusedListener.bind(this); + this.removePostFocusedListener = this.removePostFocusedListener.bind(this); + + this.makePostsInfo = this.makePostsInfo.bind(this); + + this.getPost = this.getPost.bind(this); + this.getAllPosts = this.getAllPosts.bind(this); + this.getEarliestPost = this.getEarliestPost.bind(this); + this.getLatestPost = this.getLatestPost.bind(this); + this.getVisiblePosts = this.getVisiblePosts.bind(this); + this.getVisibilityAtTop = this.getVisibilityAtTop.bind(this); + this.getVisibilityAtBottom = this.getVisibilityAtBottom.bind(this); + this.requestVisibilityIncrease = this.requestVisibilityIncrease.bind(this); + this.getFocusedPostId = this.getFocusedPostId.bind(this); + this.storePosts = this.storePosts.bind(this); - this.pStorePosts = this.pStorePosts.bind(this); - this.getPosts = this.getPosts.bind(this); this.storePost = this.storePost.bind(this); - this.pStorePost = this.pStorePost.bind(this); + this.storeFocusedPost = this.storeFocusedPost.bind(this); + this.checkBounds = this.checkBounds.bind(this); + + this.clearFocusedPost = this.clearFocusedPost.bind(this); + this.clearChannelVisibility = this.clearChannelVisibility.bind(this); + this.removePost = this.removePost.bind(this); - this.storePendingPost = this.storePendingPost.bind(this); - this.pStorePendingPosts = this.pStorePendingPosts.bind(this); + this.getPendingPosts = this.getPendingPosts.bind(this); - this.storeUnseenDeletedPost = this.storeUnseenDeletedPost.bind(this); - this.storeUnseenDeletedPosts = this.storeUnseenDeletedPosts.bind(this); - this.getUnseenDeletedPosts = this.getUnseenDeletedPosts.bind(this); - this.clearUnseenDeletedPosts = this.clearUnseenDeletedPosts.bind(this); + this.storePendingPost = this.storePendingPost.bind(this); this.removePendingPost = this.removePendingPost.bind(this); - this.pRemovePendingPost = this.pRemovePendingPost.bind(this); this.clearPendingPosts = this.clearPendingPosts.bind(this); this.updatePendingPost = this.updatePendingPost.bind(this); + + this.storeUnseenDeletedPost = this.storeUnseenDeletedPost.bind(this); + this.getUnseenDeletedPosts = this.getUnseenDeletedPosts.bind(this); + this.clearUnseenDeletedPosts = this.clearUnseenDeletedPosts.bind(this); + + // These functions are bad and work should be done to remove this system when the RHS dies this.storeSelectedPost = this.storeSelectedPost.bind(this); this.getSelectedPost = this.getSelectedPost.bind(this); + this.emitSelectedPostChange = this.emitSelectedPostChange.bind(this); + this.addSelectedPostChangeListener = this.addSelectedPostChangeListener.bind(this); + this.removeSelectedPostChangeListener = this.removeSelectedPostChangeListener.bind(this); + this.selectedPost = null; + this.getEmptyDraft = this.getEmptyDraft.bind(this); this.storeCurrentDraft = this.storeCurrentDraft.bind(this); this.getCurrentDraft = this.getCurrentDraft.bind(this); @@ -68,6 +89,10 @@ class PostStoreClass extends EventEmitter { this.storeLatestUpdate = this.storeLatestUpdate.bind(this); this.getLatestUpdate = this.getLatestUpdate.bind(this); this.getCurrentUsersLatestPost = this.getCurrentUsersLatestPost.bind(this); + this.getCommentCount = this.getCommentCount.bind(this); + + this.postsInfo = {}; + this.currentFocusedPostId = null; } emitChange() { this.emit(CHANGE_EVENT); @@ -81,16 +106,16 @@ class PostStoreClass extends EventEmitter { this.removeListener(CHANGE_EVENT, callback); } - emitSelectedPostChange(fromSearch) { - this.emit(SELECTED_POST_CHANGE_EVENT, fromSearch); + emitPostFocused() { + this.emit(FOCUSED_POST_CHANGE); } - addSelectedPostChangeListener(callback) { - this.on(SELECTED_POST_CHANGE_EVENT, callback); + addPostFocusedListener(callback) { + this.on(FOCUSED_POST_CHANGE, callback); } - removeSelectedPostChangeListener(callback) { - this.removeListener(SELECTED_POST_CHANGE_EVENT, callback); + removePostFocusedListener(callback) { + this.removeListener(FOCUSED_POST_CHANGE, callback); } emitEditPost(post) { @@ -129,101 +154,168 @@ class PostStoreClass extends EventEmitter { this.emitPostsViewJump(Constants.PostsViewJumpTypes.SIDEBAR_OPEN, null); } - getCurrentPosts() { - var currentId = ChannelStore.getCurrentId(); + // All this does is makes sure the postsInfo is not null for the specified channel + makePostsInfo(id) { + if (!this.postsInfo.hasOwnProperty(id)) { + this.postsInfo[id] = {}; + } + } + + getPost(channelId, postId) { + const posts = this.postsInfo[channelId].postList; + let post = null; + + if (posts.posts.hasOwnProperty(postId)) { + post = Object.assign({}, posts.posts[postId]); + } + + return post; + } + + getAllPosts(id) { + if (this.postsInfo.hasOwnProperty(id)) { + return Object.assign({}, this.postsInfo[id].postList); + } + + return null; + } + + getEarliestPost(id) { + if (this.postsInfo.hasOwnProperty(id)) { + return this.postsInfo[id].postList.posts[this.postsInfo[id].postList.order[this.postsInfo[id].postList.order.length - 1]]; + } + + return null; + } - if (currentId != null) { - return this.getPosts(currentId); + getLatestPost(id) { + if (this.postsInfo.hasOwnProperty(id)) { + return this.postsInfo[id].postList.posts[this.postsInfo[id].postList.order[0]]; } + return null; } - storePosts(channelId, newPostsView) { - if (isPostListNull(newPostsView)) { + + getVisiblePosts(id) { + if (this.postsInfo.hasOwnProperty(id) && this.postsInfo[id].hasOwnProperty('postList')) { + const postList = JSON.parse(JSON.stringify(this.postsInfo[id].postList)); + + // Only limit visibility if we are not focused on a post + if (this.currentFocusedPostId === null) { + postList.order = postList.order.slice(0, this.postsInfo[id].endVisible); + } + + // Add pending posts + if (this.postsInfo[id].hasOwnProperty('pendingPosts')) { + Object.assign(postList.posts, this.postsInfo[id].pendingPosts.posts); + postList.order = this.postsInfo[id].pendingPosts.order.concat(postList.order); + } + + // Add deleted posts + if (this.postsInfo[id].hasOwnProperty('deletedPosts')) { + Object.assign(postList.posts, this.postsInfo[id].deletedPosts); + + for (const postID in this.postsInfo[id].deletedPosts) { + if (this.postsInfo[id].deletedPosts.hasOwnProperty(postID)) { + postList.order.push(postID); + } + } + + // Merge would be faster + postList.order.sort((a, b) => { + if (postList.posts[a].create_at > postList.posts[b].create_at) { + return -1; + } + if (postList.posts[a].create_at < postList.posts[b].create_at) { + return 1; + } + return 0; + }); + } + + return postList; + } + + return null; + } + + getVisibilityAtTop(id) { + if (this.postsInfo.hasOwnProperty(id)) { + return this.postsInfo[id].atTop && this.postsInfo[id].endVisible >= this.postsInfo[id].postList.order.length; + } + + return false; + } + + getVisibilityAtBottom(id) { + if (this.postsInfo.hasOwnProperty(id)) { + return this.postsInfo[id].atBottom; + } + + return false; + } + + // Returns true if posts need to be fetched + requestVisibilityIncrease(id, ammount) { + const endVisible = this.postsInfo[id].endVisible; + const postList = this.postsInfo[id].postList; + if (this.getVisibilityAtTop(id)) { + return false; + } + this.postsInfo[id].endVisible += ammount; + this.emitChange(); + return endVisible + ammount > postList.order.length; + } + + getFocusedPostId() { + return this.currentFocusedPostId; + } + + storePosts(id, newPosts) { + if (isPostListNull(newPosts)) { return; } - var postList = makePostListNonNull(this.getPosts(channelId)); + const combinedPosts = makePostListNonNull(this.getAllPosts(id)); - for (const pid in newPostsView.posts) { - if (newPostsView.posts.hasOwnProperty(pid)) { - const np = newPostsView.posts[pid]; + for (const pid in newPosts.posts) { + if (newPosts.posts.hasOwnProperty(pid)) { + const np = newPosts.posts[pid]; if (np.delete_at === 0) { - postList.posts[pid] = np; - if (postList.order.indexOf(pid) === -1) { - postList.order.push(pid); + combinedPosts.posts[pid] = np; + if (combinedPosts.order.indexOf(pid) === -1) { + combinedPosts.order.push(pid); } } else { - if (pid in postList.posts) { - delete postList.posts[pid]; + if (pid in combinedPosts.posts) { + Reflect.deleteProperty(combinedPosts.posts, pid); } - const index = postList.order.indexOf(pid); + const index = combinedPosts.order.indexOf(pid); if (index !== -1) { - postList.order.splice(index, 1); + combinedPosts.order.splice(index, 1); } } } } - postList.order.sort((a, b) => { - if (postList.posts[a].create_at > postList.posts[b].create_at) { + combinedPosts.order.sort((a, b) => { + if (combinedPosts.posts[a].create_at > combinedPosts.posts[b].create_at) { return -1; } - if (postList.posts[a].create_at < postList.posts[b].create_at) { + if (combinedPosts.posts[a].create_at < combinedPosts.posts[b].create_at) { return 1; } return 0; }); - var latestUpdate = 0; - for (var pid in postList.posts) { - if (postList.posts[pid].update_at > latestUpdate) { - latestUpdate = postList.posts[pid].update_at; - } - } - - this.storeLatestUpdate(channelId, latestUpdate); - this.pStorePosts(channelId, postList); - this.emitChange(); - } - pStorePosts(channelId, posts) { - BrowserStore.setItem('posts_' + channelId, posts); - } - getPosts(channelId) { - return BrowserStore.getItem('posts_' + channelId); + this.makePostsInfo(id); + this.postsInfo[id].postList = combinedPosts; } - getCurrentUsersLatestPost(channelId, rootId) { - const userId = UserStore.getCurrentId(); - var postList = makePostListNonNull(this.getPosts(channelId)); - var i = 0; - var len = postList.order.length; - var lastPost = null; - - for (i; i < len; i++) { - let post = postList.posts[postList.order[i]]; - if (post.user_id === userId && (post.props && !post.props.from_webhook || !post.props)) { - if (rootId) { - if (post.root_id === rootId || post.id === rootId) { - lastPost = post; - break; - } - } else { - lastPost = post; - break; - } - } - } - return lastPost; - } storePost(post) { - this.pStorePost(post); - this.emitChange(); - } - pStorePost(post) { - var postList = this.getPosts(post.channel_id); - postList = makePostListNonNull(postList); + const postList = makePostListNonNull(this.getAllPosts(post.channel_id)); if (post.pending_post_id !== '') { this.removePendingPost(post.channel_id, post.pending_post_id); @@ -236,65 +328,119 @@ class PostStoreClass extends EventEmitter { postList.order.unshift(post.id); } - this.pStorePosts(post.channel_id, postList); + this.makePostsInfo(post.channel_id); + this.postsInfo[post.channel_id].postList = postList; } - removePost(postId, channelId) { - var postList = this.getPosts(channelId); + + storeFocusedPost(postId, postList) { + const focusedPost = postList.posts[postId]; + if (!focusedPost) { + return; + } + this.currentFocusedPostId = postId; + this.storePosts(postId, postList); + } + + checkBounds(id, numRequested, postList, before) { + if (numRequested > postList.order.length) { + if (before) { + this.postsInfo[id].atTop = true; + } else { + this.postsInfo[id].atBottom = true; + } + } + } + + clearFocusedPost() { + if (this.currentFocusedPostId != null) { + Reflect.deleteProperty(this.postsInfo, this.currentFocusedPostId); + this.currentFocusedPostId = null; + } + } + + clearChannelVisibility(id, atBottom) { + this.makePostsInfo(id); + this.postsInfo[id].endVisible = Constants.POST_CHUNK_SIZE; + this.postsInfo[id].atTop = false; + this.postsInfo[id].atBottom = atBottom; + } + + removePost(post) { + const channelId = post.channel_id; + this.makePostsInfo(channelId); + const postList = this.postsInfo[channelId].postList; if (isPostListNull(postList)) { return; } - if (postId in postList.posts) { - delete postList.posts[postId]; + if (post.id in postList.posts) { + Reflect.deleteProperty(postList.posts, post.id); } - var index = postList.order.indexOf(postId); + const index = postList.order.indexOf(post.id); if (index !== -1) { postList.order.splice(index, 1); } - this.pStorePosts(channelId, postList); + this.postsInfo[channelId].postList = postList; } + + getPendingPosts(channelId) { + if (this.postsInfo.hasOwnProperty(channelId)) { + return this.postsInfo[channelId].pendingPosts; + } + + return null; + } + storePendingPost(post) { post.state = Constants.POST_LOADING; - var postList = this.getPendingPosts(post.channel_id); - postList = makePostListNonNull(postList); + const postList = makePostListNonNull(this.getPendingPosts(post.channel_id)); postList.posts[post.pending_post_id] = post; postList.order.unshift(post.pending_post_id); - this.pStorePendingPosts(post.channel_id, postList); + + this.makePostsInfo(post.channel_id); + this.postsInfo[post.channel_id].pendingPosts = postList; this.emitChange(); } - pStorePendingPosts(channelId, postList) { - var posts = postList.posts; - // sort failed posts to the bottom - postList.order.sort((a, b) => { - if (posts[a].state === Constants.POST_LOADING && posts[b].state === Constants.POST_FAILED) { - return 1; - } - if (posts[a].state === Constants.POST_FAILED && posts[b].state === Constants.POST_LOADING) { - return -1; - } + removePendingPost(channelId, pendingPostId) { + const postList = makePostListNonNull(this.getPendingPosts(channelId)); - if (posts[a].create_at > posts[b].create_at) { - return -1; - } - if (posts[a].create_at < posts[b].create_at) { - return 1; - } + Reflect.deleteProperty(postList.posts, pendingPostId); + const index = postList.order.indexOf(pendingPostId); + if (index === -1) { + return; + } - return 0; - }); + postList.order.splice(index, 1); - BrowserStore.setGlobalItem('pending_posts_' + channelId, postList); + this.postsInfo[channelId].pendingPosts = postList; + this.emitChange(); } - getPendingPosts(channelId) { - return BrowserStore.getGlobalItem('pending_posts_' + channelId); + + clearPendingPosts(channelId) { + if (this.postsInfo.hasOwnProperty(channelId)) { + Reflect.deleteProperty(this.postsInfo[channelId], 'pendingPosts'); + } + } + + updatePendingPost(post) { + const postList = makePostListNonNull(this.getPendingPosts(post.channel_id)); + + if (postList.order.indexOf(post.pending_post_id) === -1) { + return; + } + + postList.posts[post.pending_post_id] = post; + this.postsInfo[post.channel_id].pendingPosts = postList; + this.emitChange(); } + storeUnseenDeletedPost(post) { - var posts = this.getUnseenDeletedPosts(post.channel_id); + let posts = this.getUnseenDeletedPosts(post.channel_id); if (!posts) { posts = {}; @@ -305,58 +451,68 @@ class PostStoreClass extends EventEmitter { post.filenames = []; posts[post.id] = post; - this.storeUnseenDeletedPosts(post.channel_id, posts); - } - storeUnseenDeletedPosts(channelId, posts) { - BrowserStore.setItem('deleted_posts_' + channelId, posts); + this.postsInfo[post.channel_id].deletedPosts = posts; } + getUnseenDeletedPosts(channelId) { - return BrowserStore.getItem('deleted_posts_' + channelId); + if (this.postsInfo.hasOwnProperty(channelId)) { + return this.postsInfo[channelId].deletedPosts; + } + + return null; } + clearUnseenDeletedPosts(channelId) { - BrowserStore.setItem('deleted_posts_' + channelId, {}); + if (this.postsInfo.hasOwnProperty(channelId)) { + Reflect.deleteProperty(this.postsInfo[channelId], 'deletedPosts'); + } } - removePendingPost(channelId, pendingPostId) { - this.pRemovePendingPost(channelId, pendingPostId); - this.emitChange(); + + storeSelectedPost(postList) { + this.selectedPost = postList; } - pRemovePendingPost(channelId, pendingPostId) { - var postList = this.getPendingPosts(channelId); - postList = makePostListNonNull(postList); - if (pendingPostId in postList.posts) { - delete postList.posts[pendingPostId]; - } - var index = postList.order.indexOf(pendingPostId); - if (index !== -1) { - postList.order.splice(index, 1); - } + getSelectedPost() { + return this.selectedPost; + } - this.pStorePendingPosts(channelId, postList); + emitSelectedPostChange(fromSearch) { + this.emit(SELECTED_POST_CHANGE_EVENT, fromSearch); } - clearPendingPosts() { - BrowserStore.actionOnGlobalItemsWithPrefix('pending_posts_', (key) => { - BrowserStore.removeItem(key); - }); + + addSelectedPostChangeListener(callback) { + this.on(SELECTED_POST_CHANGE_EVENT, callback); } - updatePendingPost(post) { - var postList = this.getPendingPosts(post.channel_id); - postList = makePostListNonNull(postList); - if (postList.order.indexOf(post.pending_post_id) === -1) { - return; + removeSelectedPostChangeListener(callback) { + this.removeListener(SELECTED_POST_CHANGE_EVENT, callback); + } + + getCurrentUsersLatestPost(channelId, rootId) { + const userId = UserStore.getCurrentId(); + var postList = makePostListNonNull(this.getAllPosts(channelId)); + var i = 0; + var len = postList.order.length; + var lastPost = null; + + for (i; i < len; i++) { + const post = postList.posts[postList.order[i]]; + if (post.user_id === userId && (post.props && !post.props.from_webhook || !post.props)) { + if (rootId) { + if (post.root_id === rootId || post.id === rootId) { + lastPost = post; + break; + } + } else { + lastPost = post; + break; + } + } } - postList.posts[post.pending_post_id] = post; - this.pStorePendingPosts(post.channel_id, postList); - this.emitChange(); - } - storeSelectedPost(postList) { - BrowserStore.setItem('select_post', postList); - } - getSelectedPost() { - return BrowserStore.getItem('select_post'); + return lastPost; } + getEmptyDraft() { return {message: '', uploadsInProgress: [], previews: []}; } @@ -397,10 +553,31 @@ class PostStoreClass extends EventEmitter { }); } storeLatestUpdate(channelId, time) { - BrowserStore.setItem('latest_post_' + channelId, time); + if (!this.postsInfo.hasOwnProperty(channelId)) { + this.postsInfo[channelId] = {}; + } + this.postsInfo[channelId].latestPost = time; } getLatestUpdate(channelId) { - return BrowserStore.getItem('latest_post_' + channelId, 0); + if (this.postsInfo.hasOwnProperty(channelId) && this.postsInfo[channelId].hasOwnProperty('latestPost')) { + return this.postsInfo[channelId].latestPost; + } + + return 0; + } + getCommentCount(post) { + const posts = this.getAllPosts(post.channel_id).posts; + + let commentCount = 0; + for (const id in posts) { + if (posts.hasOwnProperty(id)) { + if (posts[id].root_id === post.id) { + commentCount += 1; + } + } + } + + return commentCount; } } @@ -410,20 +587,45 @@ PostStore.dispatchToken = AppDispatcher.register((payload) => { var action = payload.action; switch (action.type) { - case ActionTypes.RECIEVED_POSTS: - PostStore.storePosts(action.id, makePostListNonNull(action.post_list)); + case ActionTypes.RECIEVED_POSTS: { + const id = PostStore.currentFocusedPostId == null ? action.id : PostStore.currentFocusedPostId; + PostStore.checkBounds(id, action.numRequested, makePostListNonNull(action.post_list), action.before); + PostStore.storePosts(id, makePostListNonNull(action.post_list)); + PostStore.emitChange(); + break; + } + case ActionTypes.RECIEVED_FOCUSED_POST: + PostStore.clearChannelVisibility(action.postId, false); + PostStore.storeFocusedPost(action.postId, makePostListNonNull(action.post_list)); + PostStore.emitChange(); break; case ActionTypes.RECIEVED_POST: - PostStore.pStorePost(action.post); + PostStore.storePost(action.post); + PostStore.emitChange(); + break; + case ActionTypes.RECIEVED_EDIT_POST: + PostStore.emitEditPost(action); + PostStore.emitChange(); + break; + case ActionTypes.CLICK_CHANNEL: + PostStore.clearFocusedPost(); + PostStore.clearChannelVisibility(action.id, true); + PostStore.clearUnseenDeletedPosts(action.id); + break; + case ActionTypes.CREATE_POST: + PostStore.storePendingPost(action.post); + PostStore.storeDraft(action.post.channel_id, null); + PostStore.jumpPostsViewToBottom(); + break; + case ActionTypes.POST_DELETED: + PostStore.storeUnseenDeletedPost(action.post); + PostStore.removePost(action.post); PostStore.emitChange(); break; case ActionTypes.RECIEVED_POST_SELECTED: PostStore.storeSelectedPost(action.post_list); PostStore.emitSelectedPostChange(action.from_search); break; - case ActionTypes.RECIEVED_EDIT_POST: - PostStore.emitEditPost(action); - break; default: } }); diff --git a/web/react/stores/preference_store.jsx b/web/react/stores/preference_store.jsx index f630d150d..543129aca 100644 --- a/web/react/stores/preference_store.jsx +++ b/web/react/stores/preference_store.jsx @@ -1,11 +1,12 @@ -// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const ActionTypes = require('../utils/constants.jsx').ActionTypes; -const AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -const BrowserStore = require('./browser_store.jsx'); -const EventEmitter = require('events').EventEmitter; -const UserStore = require('../stores/user_store.jsx'); +import Constants from '../utils/constants.jsx'; +const ActionTypes = Constants.ActionTypes; +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import BrowserStore from './browser_store.jsx'; +import EventEmitter from 'events'; +import UserStore from '../stores/user_store.jsx'; const CHANGE_EVENT = 'change'; @@ -89,8 +90,8 @@ class PreferenceStoreClass extends EventEmitter { return preference; } - emitChange(preferences) { - this.emit(CHANGE_EVENT, preferences); + emitChange() { + this.emit(CHANGE_EVENT); } addChangeListener(callback) { @@ -105,7 +106,13 @@ class PreferenceStoreClass extends EventEmitter { const action = payload.action; switch (action.type) { - case ActionTypes.RECIEVED_PREFERENCES: + case ActionTypes.RECIEVED_PREFERENCE: { + const preference = action.preference; + this.setPreference(preference.category, preference.name, preference.value); + this.emitChange(); + break; + } + case ActionTypes.RECIEVED_PREFERENCES: { const preferences = this.getAllPreferences(); for (const preference of action.preferences) { @@ -113,7 +120,9 @@ class PreferenceStoreClass extends EventEmitter { } this.setAllPreferences(preferences); - this.emitChange(preferences); + this.emitChange(); + break; + } } } } diff --git a/web/react/stores/search_store.jsx b/web/react/stores/search_store.jsx index 95f0ea845..f932c379a 100644 --- a/web/react/stores/search_store.jsx +++ b/web/react/stores/search_store.jsx @@ -1,19 +1,18 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -var EventEmitter = require('events').EventEmitter; +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import EventEmitter from 'events'; -var BrowserStore = require('../stores/browser_store.jsx'); +import BrowserStore from '../stores/browser_store.jsx'; -var Constants = require('../utils/constants.jsx'); +import Constants from '../utils/constants.jsx'; var ActionTypes = Constants.ActionTypes; var CHANGE_EVENT = 'change'; var SEARCH_CHANGE_EVENT = 'search_change'; var SEARCH_TERM_CHANGE_EVENT = 'search_term_change'; -var MENTION_DATA_CHANGE_EVENT = 'mention_data_change'; -var ADD_MENTION_EVENT = 'add_mention'; +var SHOW_SEARCH_EVENT = 'show_search'; class SearchStoreClass extends EventEmitter { constructor() { @@ -31,9 +30,9 @@ class SearchStoreClass extends EventEmitter { this.addSearchTermChangeListener = this.addSearchTermChangeListener.bind(this); this.removeSearchTermChangeListener = this.removeSearchTermChangeListener.bind(this); - this.emitMentionDataChange = this.emitMentionDataChange.bind(this); - this.addMentionDataChangeListener = this.addMentionDataChangeListener.bind(this); - this.removeMentionDataChangeListener = this.removeMentionDataChangeListener.bind(this); + this.emitShowSearch = this.emitShowSearch.bind(this); + this.addShowSearchListener = this.addShowSearchListener.bind(this); + this.removeShowSearchListener = this.removeShowSearchListener.bind(this); this.getSearchResults = this.getSearchResults.bind(this); this.getIsMentionSearch = this.getIsMentionSearch.bind(this); @@ -80,6 +79,18 @@ class SearchStoreClass extends EventEmitter { this.removeListener(SEARCH_TERM_CHANGE_EVENT, callback); } + emitShowSearch() { + this.emit(SHOW_SEARCH_EVENT); + } + + addShowSearchListener(callback) { + this.on(SHOW_SEARCH_EVENT, callback); + } + + removeShowSearchListener(callback) { + this.removeListener(SHOW_SEARCH_EVENT, callback); + } + getSearchResults() { return BrowserStore.getItem('search_results'); } @@ -96,30 +107,6 @@ class SearchStoreClass extends EventEmitter { return BrowserStore.getItem('search_term'); } - emitMentionDataChange(id, mentionText) { - this.emit(MENTION_DATA_CHANGE_EVENT, id, mentionText); - } - - addMentionDataChangeListener(callback) { - this.on(MENTION_DATA_CHANGE_EVENT, callback); - } - - removeMentionDataChangeListener(callback) { - this.removeListener(MENTION_DATA_CHANGE_EVENT, callback); - } - - emitAddMention(id, username) { - this.emit(ADD_MENTION_EVENT, id, username); - } - - addAddMentionListener(callback) { - this.on(ADD_MENTION_EVENT, callback); - } - - removeAddMentionListener(callback) { - this.removeListener(ADD_MENTION_EVENT, callback); - } - storeSearchResults(results, isMentionSearch) { BrowserStore.setItem('search_results', results); BrowserStore.setItem('is_mention_search', Boolean(isMentionSearch)); @@ -140,11 +127,8 @@ SearchStore.dispatchToken = AppDispatcher.register((payload) => { SearchStore.storeSearchTerm(action.term); SearchStore.emitSearchTermChange(action.do_search, action.is_mention_search); break; - case ActionTypes.RECIEVED_MENTION_DATA: - SearchStore.emitMentionDataChange(action.id, action.mention_text); - break; - case ActionTypes.RECIEVED_ADD_MENTION: - SearchStore.emitAddMention(action.id, action.username); + case ActionTypes.SHOW_SEARCH: + SearchStore.emitShowSearch(); break; default: } diff --git a/web/react/stores/socket_store.jsx b/web/react/stores/socket_store.jsx index 4efeb7c8f..24fa79ca6 100644 --- a/web/react/stores/socket_store.jsx +++ b/web/react/stores/socket_store.jsx @@ -1,19 +1,18 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -const UserStore = require('./user_store.jsx'); -const PostStore = require('./post_store.jsx'); -const ChannelStore = require('./channel_store.jsx'); -const BrowserStore = require('./browser_store.jsx'); -const ErrorStore = require('./error_store.jsx'); -const EventEmitter = require('events').EventEmitter; - -const Utils = require('../utils/utils.jsx'); -const AsyncClient = require('../utils/async_client.jsx'); - -const Constants = require('../utils/constants.jsx'); -const ActionTypes = Constants.ActionTypes; +import UserStore from './user_store.jsx'; +import PostStore from './post_store.jsx'; +import ChannelStore from './channel_store.jsx'; +import BrowserStore from './browser_store.jsx'; +import ErrorStore from './error_store.jsx'; +import EventEmitter from 'events'; + +import * as Utils from '../utils/utils.jsx'; +import * as AsyncClient from '../utils/async_client.jsx'; +import * as EventHelpers from '../dispatcher/event_helpers.jsx'; + +import Constants from '../utils/constants.jsx'; const SocketEvents = Constants.SocketEvents; const CHANGE_EVENT = 'change'; @@ -60,13 +59,14 @@ class SocketStoreClass extends EventEmitter { conn.onopen = () => { if (this.failCount > 0) { console.log('websocket re-established connection'); //eslint-disable-line no-console + + if (ErrorStore.getLastError()) { + ErrorStore.storeLastError(null); + ErrorStore.emitChange(); + } } this.failCount = 0; - if (ErrorStore.getLastError()) { - ErrorStore.storeLastError(null); - ErrorStore.emitChange(); - } }; conn.onclose = () => { @@ -91,10 +91,9 @@ class SocketStoreClass extends EventEmitter { }; conn.onmessage = (evt) => { - AppDispatcher.handleServerAction({ - type: ActionTypes.RECIEVED_MSG, - msg: JSON.parse(evt.data) - }); + const msg = JSON.parse(evt.data); + this.handleMessage(msg); + this.emitChange(msg); }; } } @@ -137,6 +136,10 @@ class SocketStoreClass extends EventEmitter { handleChannelViewedEvent(msg); break; + case SocketEvents.PREFERENCE_CHANGED: + handlePreferenceChangedEvent(msg); + break; + default: } } @@ -153,19 +156,19 @@ class SocketStoreClass extends EventEmitter { function handleNewPostEvent(msg) { // Store post const post = JSON.parse(msg.props.post); - PostStore.storePost(post); + EventHelpers.emitPostRecievedEvent(post); // Update channel state if (ChannelStore.getCurrentId() === msg.channel_id) { if (window.isActive) { - AsyncClient.updateLastViewedAt(true); + AsyncClient.updateLastViewedAt(); } } else if (UserStore.getCurrentId() !== msg.user_id || post.type !== Constants.POST_TYPE_JOIN_LEAVE) { AsyncClient.getChannel(msg.channel_id); } // Send desktop notification - if (UserStore.getCurrentId() !== msg.user_id || post.props.from_webhook === 'true') { + if ((UserStore.getCurrentId() !== msg.user_id || post.props.from_webhook === 'true') && !Utils.isSystemMessage(post)) { const msgProps = msg.props; let mentions = []; @@ -226,6 +229,7 @@ function handlePostEditEvent(msg) { // Store post const post = JSON.parse(msg.props.post); PostStore.storePost(post); + PostStore.emitChange(); // Update channel state if (ChannelStore.getCurrentId() === msg.channel_id) { @@ -237,20 +241,17 @@ function handlePostEditEvent(msg) { function handlePostDeleteEvent(msg) { const post = JSON.parse(msg.props.post); - - PostStore.storeUnseenDeletedPost(post); - PostStore.removePost(post, true); - PostStore.emitChange(); + EventHelpers.emitPostDeletedEvent(post); } function handleNewUserEvent() { AsyncClient.getProfiles(); - AsyncClient.getChannelExtraInfo(true); + AsyncClient.getChannelExtraInfo(); } function handleUserAddedEvent(msg) { if (ChannelStore.getCurrentId() === msg.channel_id) { - AsyncClient.getChannelExtraInfo(true); + AsyncClient.getChannelExtraInfo(); } if (UserStore.getCurrentId() === msg.user_id) { @@ -273,7 +274,7 @@ function handleUserRemovedEvent(msg) { $('#removed_from_channel').modal('show'); } } else if (ChannelStore.getCurrentId() === msg.channel_id) { - AsyncClient.getChannelExtraInfo(true); + AsyncClient.getChannelExtraInfo(); } } @@ -284,19 +285,19 @@ function handleChannelViewedEvent(msg) { } } +function handlePreferenceChangedEvent(msg) { + const preference = JSON.parse(msg.props.preference); + EventHelpers.emitPreferenceChangedEvent(preference); +} + var SocketStore = new SocketStoreClass(); -SocketStore.dispatchToken = AppDispatcher.register((payload) => { +/*SocketStore.dispatchToken = AppDispatcher.register((payload) => { var action = payload.action; switch (action.type) { - case ActionTypes.RECIEVED_MSG: - SocketStore.handleMessage(action.msg); - SocketStore.emitChange(action.msg); - break; - default: } -}); + });*/ export default SocketStore; diff --git a/web/react/stores/suggestion_store.jsx b/web/react/stores/suggestion_store.jsx new file mode 100644 index 000000000..9cd566c22 --- /dev/null +++ b/web/react/stores/suggestion_store.jsx @@ -0,0 +1,259 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import Constants from '../utils/constants.jsx'; +import EventEmitter from 'events'; + +const ActionTypes = Constants.ActionTypes; + +const COMPLETE_WORD_EVENT = 'complete_word'; +const PRETEXT_CHANGED_EVENT = 'pretext_changed'; +const SUGGESTIONS_CHANGED_EVENT = 'suggestions_changed'; + +class SuggestionStore extends EventEmitter { + constructor() { + super(); + + this.addSuggestionsChangedListener = this.addSuggestionsChangedListener.bind(this); + this.removeSuggestionsChangedListener = this.removeSuggestionsChangedListener.bind(this); + this.emitSuggestionsChanged = this.emitSuggestionsChanged.bind(this); + + this.addPretextChangedListener = this.addPretextChangedListener.bind(this); + this.removePretextChangedListener = this.removePretextChangedListener.bind(this); + this.emitPretextChanged = this.emitPretextChanged.bind(this); + + this.addCompleteWordListener = this.addCompleteWordListener.bind(this); + this.removeCompleteWordListener = this.removeCompleteWordListener.bind(this); + this.emitCompleteWord = this.emitCompleteWord.bind(this); + + this.handleEventPayload = this.handleEventPayload.bind(this); + this.dispatchToken = AppDispatcher.register(this.handleEventPayload); + + // this.suggestions stores the state of all SuggestionBoxes by mapping their unique identifier to an + // object with the following fields: + // pretext: the text before the cursor + // matchedPretext: the text before the cursor that will be replaced if an autocomplete term is selected + // terms: a list of strings which the previously typed text may be replaced by + // items: a list of objects backing the terms which may be used in rendering + // components: a list of react components that can be used to render their corresponding item + // selection: the term currently selected by the keyboard + this.suggestions = new Map(); + } + + addSuggestionsChangedListener(id, callback) { + this.on(SUGGESTIONS_CHANGED_EVENT + id, callback); + } + removeSuggestionsChangedListener(id, callback) { + this.removeListener(SUGGESTIONS_CHANGED_EVENT + id, callback); + } + emitSuggestionsChanged(id) { + this.emit(SUGGESTIONS_CHANGED_EVENT + id); + } + + addPretextChangedListener(id, callback) { + this.on(PRETEXT_CHANGED_EVENT + id, callback); + } + removePretextChangedListener(id, callback) { + this.removeListener(PRETEXT_CHANGED_EVENT + id, callback); + } + emitPretextChanged(id, pretext) { + this.emit(PRETEXT_CHANGED_EVENT + id, pretext); + } + + addCompleteWordListener(id, callback) { + this.on(COMPLETE_WORD_EVENT + id, callback); + } + removeCompleteWordListener(id, callback) { + this.removeListener(COMPLETE_WORD_EVENT + id, callback); + } + emitCompleteWord(id, term) { + this.emit(COMPLETE_WORD_EVENT + id, term); + } + + registerSuggestionBox(id) { + this.suggestions.set(id, { + pretext: '', + matchedPretext: '', + terms: [], + items: [], + components: [], + selection: '' + }); + } + + unregisterSuggestionBox(id) { + this.suggestions.delete(id); + } + + clearSuggestions(id) { + const suggestion = this.suggestions.get(id); + + suggestion.matchedPretext = ''; + suggestion.terms = []; + suggestion.items = []; + suggestion.components = []; + } + + clearSelection(id) { + const suggestion = this.suggestions.get(id); + + suggestion.selection = ''; + } + + hasSuggestions(id) { + return this.suggestions.get(id).terms.length > 0; + } + + setPretext(id, pretext) { + const suggestion = this.suggestions.get(id); + + suggestion.pretext = pretext; + } + + setMatchedPretext(id, matchedPretext) { + const suggestion = this.suggestions.get(id); + + suggestion.matchedPretext = matchedPretext; + } + + addSuggestion(id, term, item, component) { + const suggestion = this.suggestions.get(id); + + suggestion.terms.push(term); + suggestion.items.push(item); + suggestion.components.push(component); + } + + addSuggestions(id, terms, items, component) { + const suggestion = this.suggestions.get(id); + + suggestion.terms.push(...terms); + suggestion.items.push(...items); + + for (let i = 0; i < terms.length; i++) { + suggestion.components.push(component); + } + } + + // make sure that if suggestions exist, then one of them is selected. return true if the selection changes. + ensureSelectionExists(id) { + const suggestion = this.suggestions.get(id); + + if (suggestion.terms.length > 0) { + // if the current selection is no longer in the map, select the first term in the list + if (!suggestion.selection || suggestion.terms.indexOf(suggestion.selection) === -1) { + suggestion.selection = suggestion.terms[0]; + + return true; + } + } else if (suggestion.selection) { + suggestion.selection = ''; + + return true; + } + + return false; + } + + getPretext(id) { + return this.suggestions.get(id).pretext; + } + + getMatchedPretext(id) { + return this.suggestions.get(id).matchedPretext; + } + + getItems(id) { + return this.suggestions.get(id).items; + } + + getTerms(id) { + return this.suggestions.get(id).terms; + } + + getComponents(id) { + return this.suggestions.get(id).components; + } + + getSelection(id) { + return this.suggestions.get(id).selection; + } + + selectNext(id) { + this.setSelectionByDelta(id, 1); + } + + selectPrevious(id) { + this.setSelectionByDelta(id, -1); + } + + setSelectionByDelta(id, delta) { + const suggestion = this.suggestions.get(id); + + let selectionIndex = suggestion.terms.indexOf(suggestion.selection); + + if (selectionIndex === -1) { + // this should never happen since selection should always be in terms + throw new Error('selection is not in terms'); + } + + selectionIndex += delta; + + if (selectionIndex < 0) { + selectionIndex = 0; + } else if (selectionIndex > suggestion.terms.length - 1) { + selectionIndex = suggestion.terms.length - 1; + } + + suggestion.selection = suggestion.terms[selectionIndex]; + } + + handleEventPayload(payload) { + const {type, id, ...other} = payload.action; // eslint-disable-line no-redeclare + + switch (type) { + case ActionTypes.SUGGESTION_PRETEXT_CHANGED: + this.clearSuggestions(id); + + this.setPretext(id, other.pretext); + this.emitPretextChanged(id, other.pretext); + + this.ensureSelectionExists(id); + this.emitSuggestionsChanged(id); + break; + case ActionTypes.SUGGESTION_RECEIVED_SUGGESTIONS: + if (other.matchedPretext === this.getMatchedPretext(id)) { + // ensure the matched pretext hasn't changed so that we don't receive suggestions for outdated pretext + this.addSuggestions(id, other.terms, other.items, other.component); + + this.ensureSelectionExists(id); + this.emitSuggestionsChanged(id); + } + break; + case ActionTypes.SUGGESTION_CLEAR_SUGGESTIONS: + this.clearSuggestions(id); + this.clearSelection(id); + this.emitSuggestionsChanged(id); + break; + case ActionTypes.SUGGESTION_SELECT_NEXT: + this.selectNext(id); + this.emitSuggestionsChanged(id); + break; + case ActionTypes.SUGGESTION_SELECT_PREVIOUS: + this.selectPrevious(id); + this.emitSuggestionsChanged(id); + break; + case ActionTypes.SUGGESTION_COMPLETE_WORD: + this.emitCompleteWord(id, other.term || this.getSelection(id), this.getMatchedPretext(id)); + + this.setPretext(id, ''); + this.clearSuggestions(id); + this.clearSelection(id); + this.emitSuggestionsChanged(id); + break; + } + } +} + +export default new SuggestionStore(); diff --git a/web/react/stores/team_store.jsx b/web/react/stores/team_store.jsx index 22114ae85..2d518d9e7 100644 --- a/web/react/stores/team_store.jsx +++ b/web/react/stores/team_store.jsx @@ -1,14 +1,14 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -var EventEmitter = require('events').EventEmitter; +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import EventEmitter from 'events'; -var Constants = require('../utils/constants.jsx'); -var ActionTypes = Constants.ActionTypes; -var BrowserStore = require('../stores/browser_store.jsx'); +import Constants from '../utils/constants.jsx'; +const ActionTypes = Constants.ActionTypes; +import BrowserStore from '../stores/browser_store.jsx'; -var CHANGE_EVENT = 'change'; +const CHANGE_EVENT = 'change'; var Utils; function getWindowLocationOrigin() { @@ -31,6 +31,7 @@ class TeamStoreClass extends EventEmitter { this.getCurrentId = this.getCurrentId.bind(this); this.getCurrent = this.getCurrent.bind(this); this.getCurrentTeamUrl = this.getCurrentTeamUrl.bind(this); + this.getCurrentInviteLink = this.getCurrentInviteLink.bind(this); this.saveTeam = this.saveTeam.bind(this); } @@ -92,6 +93,16 @@ class TeamStoreClass extends EventEmitter { return null; } + getCurrentInviteLink() { + const current = this.getCurrent(); + + if (current) { + return getWindowLocationOrigin() + '/signup_user_complete/?id=' + current.invite_id; + } + + return ''; + } + saveTeam(team) { var teams = this.getAll(); teams[team.id] = team; diff --git a/web/react/stores/user_store.jsx b/web/react/stores/user_store.jsx index b173c9ca0..3e1871180 100644 --- a/web/react/stores/user_store.jsx +++ b/web/react/stores/user_store.jsx @@ -1,18 +1,18 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -var EventEmitter = require('events').EventEmitter; +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import EventEmitter from 'events'; -var Constants = require('../utils/constants.jsx'); -var ActionTypes = Constants.ActionTypes; -var BrowserStore = require('./browser_store.jsx'); +import Constants from '../utils/constants.jsx'; +const ActionTypes = Constants.ActionTypes; +import BrowserStore from './browser_store.jsx'; -var CHANGE_EVENT = 'change'; -var CHANGE_EVENT_SESSIONS = 'change_sessions'; -var CHANGE_EVENT_AUDITS = 'change_audits'; -var CHANGE_EVENT_TEAMS = 'change_teams'; -var CHANGE_EVENT_STATUSES = 'change_statuses'; +const CHANGE_EVENT = 'change'; +const CHANGE_EVENT_SESSIONS = 'change_sessions'; +const CHANGE_EVENT_AUDITS = 'change_audits'; +const CHANGE_EVENT_TEAMS = 'change_teams'; +const CHANGE_EVENT_STATUSES = 'change_statuses'; class UserStoreClass extends EventEmitter { constructor() { @@ -164,6 +164,10 @@ class UserStoreClass extends EventEmitter { } getProfile(userId) { + if (userId === this.getCurrentId()) { + return this.getCurrentUser(); + } + return this.getProfiles()[userId]; } @@ -350,5 +354,4 @@ UserStore.dispatchToken = AppDispatcher.register((payload) => { } }); -global.window.UserStore = UserStore; -export default UserStore; +export {UserStore as default}; diff --git a/web/react/utils/async_client.jsx b/web/react/utils/async_client.jsx index 205c7461c..88b5aa739 100644 --- a/web/react/utils/async_client.jsx +++ b/web/react/utils/async_client.jsx @@ -1,15 +1,15 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var client = require('./client.jsx'); -var AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -var BrowserStore = require('../stores/browser_store.jsx'); -var ChannelStore = require('../stores/channel_store.jsx'); -var PostStore = require('../stores/post_store.jsx'); -var UserStore = require('../stores/user_store.jsx'); -var utils = require('./utils.jsx'); - -var Constants = require('./constants.jsx'); +import * as client from './client.jsx'; +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import BrowserStore from '../stores/browser_store.jsx'; +import ChannelStore from '../stores/channel_store.jsx'; +import PostStore from '../stores/post_store.jsx'; +import UserStore from '../stores/user_store.jsx'; +import * as utils from './utils.jsx'; + +import Constants from './constants.jsx'; var ActionTypes = Constants.ActionTypes; // Used to track in progress async calls @@ -40,88 +40,46 @@ function isCallInProgress(callName) { return true; } -export function getChannels(force, updateLastViewed, checkVersion) { - var channels = ChannelStore.getAll(); - - if (channels.length === 0 || force) { - if (isCallInProgress('getChannels')) { - return; - } +export function getChannels(checkVersion) { + if (isCallInProgress('getChannels')) { + return; + } - callTracker.getChannels = utils.getTimestamp(); + callTracker.getChannels = utils.getTimestamp(); - client.getChannels( - (data, textStatus, xhr) => { - callTracker.getChannels = 0; + client.getChannels( + (data, textStatus, xhr) => { + callTracker.getChannels = 0; - if (checkVersion) { - var serverVersion = xhr.getResponseHeader('X-Version-ID'); + if (checkVersion) { + var serverVersion = xhr.getResponseHeader('X-Version-ID'); - if (!BrowserStore.getLastServerVersion()) { + if (serverVersion !== BrowserStore.getLastServerVersion()) { + if (!BrowserStore.getLastServerVersion() || BrowserStore.getLastServerVersion() === '') { BrowserStore.setLastServerVersion(serverVersion); - } - - if (serverVersion !== BrowserStore.getLastServerVersion()) { + } else { BrowserStore.setLastServerVersion(serverVersion); - window.location.href = window.location.href; + window.location.reload(true); console.log('Detected version update refreshing the page'); //eslint-disable-line no-console } } - - if (xhr.status === 304 || !data) { - return; - } - - AppDispatcher.handleServerAction({ - type: ActionTypes.RECIEVED_CHANNELS, - channels: data.channels, - members: data.members - }); - }, - (err) => { - callTracker.getChannels = 0; - dispatchError(err, 'getChannels'); } - ); - } else { - if (isCallInProgress('getChannelCounts')) { - return; - } - - callTracker.getChannelCounts = utils.getTimestamp(); - - client.getChannelCounts( - function getChannelCountsSuccess(data, textStatus, xhr) { - callTracker.getChannelCounts = 0; - if (xhr.status === 304 || !data) { - return; - } - - var countMap = data.counts; - var updateAtMap = data.update_times; - - for (var id in countMap) { - if ({}.hasOwnProperty.call(countMap, id)) { - var c = ChannelStore.get(id); - var count = countMap[id]; - var updateAt = updateAtMap[id]; - if (!c || c.total_msg_count !== count || updateAt > c.update_at) { - getChannel(id); - } - } - } - }, - function getChannelCountsFailure(err) { - callTracker.getChannelCounts = 0; - dispatchError(err, 'getChannelCounts'); + if (xhr.status === 304 || !data) { + return; } - ); - } - if (updateLastViewed && ChannelStore.getCurrentId() != null) { - updateLastViewedAt(); - } + AppDispatcher.handleServerAction({ + type: ActionTypes.RECIEVED_CHANNELS, + channels: data.channels, + members: data.members + }); + }, + (err) => { + callTracker.getChannels = 0; + dispatchError(err, 'getChannels'); + } + ); } export function getChannel(id) { @@ -152,14 +110,19 @@ export function getChannel(id) { ); } -export function updateLastViewedAt(force) { - const channelId = ChannelStore.getCurrentId(); +export function updateLastViewedAt(id) { + let channelId; + if (id) { + channelId = id; + } else { + channelId = ChannelStore.getCurrentId(); + } - if (channelId === null) { + if (channelId == null) { return; } - if (isCallInProgress(`updateLastViewed${channelId}`) && !force) { + if (isCallInProgress(`updateLastViewed${channelId}`)) { return; } @@ -205,40 +168,40 @@ export function getMoreChannels(force) { } } -export function getChannelExtraInfo(force) { - var channelId = ChannelStore.getCurrentId(); +export function getChannelExtraInfo(id) { + let channelId; + if (id) { + channelId = id; + } else { + channelId = ChannelStore.getCurrentId(); + } if (channelId != null) { if (isCallInProgress('getChannelExtraInfo_' + channelId)) { return; } - var minMembers = 0; - if (ChannelStore.getCurrent() && ChannelStore.getCurrent().type === 'D') { - minMembers = 1; - } - if (ChannelStore.getCurrentExtraInfo().members.length <= minMembers || force) { - callTracker['getChannelExtraInfo_' + channelId] = utils.getTimestamp(); - client.getChannelExtraInfo( - channelId, - function getChannelExtraInfoSuccess(data, textStatus, xhr) { - callTracker['getChannelExtraInfo_' + channelId] = 0; + callTracker['getChannelExtraInfo_' + channelId] = utils.getTimestamp(); - if (xhr.status === 304 || !data) { - return; - } + client.getChannelExtraInfo( + channelId, + (data, textStatus, xhr) => { + callTracker['getChannelExtraInfo_' + channelId] = 0; - AppDispatcher.handleServerAction({ - type: ActionTypes.RECIEVED_CHANNEL_EXTRA_INFO, - extra_info: data - }); - }, - function getChannelExtraInfoFailure(err) { - callTracker['getChannelExtraInfo_' + channelId] = 0; - dispatchError(err, 'getChannelExtraInfo'); + if (xhr.status === 304 || !data) { + return; } - ); - } + + AppDispatcher.handleServerAction({ + type: ActionTypes.RECIEVED_CHANNEL_EXTRA_INFO, + extra_info: data + }); + }, + (err) => { + callTracker['getChannelExtraInfo_' + channelId] = 0; + dispatchError(err, 'getChannelExtraInfo'); + } + ); } } @@ -457,89 +420,92 @@ export function search(terms) { ); } -export function getPostsPage(force, id, maxPosts) { - if (PostStore.getCurrentPosts() == null || force) { - var channelId = id; +export function getPostsPage(id, maxPosts) { + let channelId = id; + if (channelId == null) { + channelId = ChannelStore.getCurrentId(); if (channelId == null) { - channelId = ChannelStore.getCurrentId(); - } - - if (isCallInProgress('getPostsPage_' + channelId)) { return; } + } - var postList = PostStore.getCurrentPosts(); + if (isCallInProgress('getPostsPage_' + channelId)) { + return; + } - var max = maxPosts; - if (max == null) { - max = Constants.POST_CHUNK_SIZE * Constants.MAX_POST_CHUNKS; - } + var postList = PostStore.getAllPosts(id); - // if we already have more than POST_CHUNK_SIZE posts, - // let's get the amount we have but rounded up to next multiple of POST_CHUNK_SIZE, - // with a max at maxPosts - var numPosts = Math.min(max, Constants.POST_CHUNK_SIZE); - if (postList && postList.order.length > 0) { - numPosts = Math.min(max, Constants.POST_CHUNK_SIZE * Math.ceil(postList.order.length / Constants.POST_CHUNK_SIZE)); - } + var max = maxPosts; + if (max == null) { + max = Constants.POST_CHUNK_SIZE * Constants.MAX_POST_CHUNKS; + } - if (channelId != null) { - callTracker['getPostsPage_' + channelId] = utils.getTimestamp(); + // if we already have more than POST_CHUNK_SIZE posts, + // let's get the amount we have but rounded up to next multiple of POST_CHUNK_SIZE, + // with a max at maxPosts + var numPosts = Math.min(max, Constants.POST_CHUNK_SIZE); + if (postList && postList.order.length > 0) { + numPosts = Math.min(max, Constants.POST_CHUNK_SIZE * Math.ceil(postList.order.length / Constants.POST_CHUNK_SIZE)); + } - client.getPostsPage( - channelId, - 0, - numPosts, - function getPostsPageSuccess(data, textStatus, xhr) { - if (xhr.status === 304 || !data) { - return; - } + if (channelId != null) { + callTracker['getPostsPage_' + channelId] = utils.getTimestamp(); - AppDispatcher.handleServerAction({ - type: ActionTypes.RECIEVED_POSTS, - id: channelId, - post_list: data - }); - - getProfiles(); - }, - function getPostsPageFailure(err) { - dispatchError(err, 'getPostsPage'); - }, - function getPostsPageComplete() { - callTracker['getPostsPage_' + channelId] = 0; + client.getPostsPage( + channelId, + 0, + numPosts, + (data, textStatus, xhr) => { + if (xhr.status === 304 || !data) { + return; } - ); - } + + AppDispatcher.handleServerAction({ + type: ActionTypes.RECIEVED_POSTS, + id: channelId, + before: true, + numRequested: numPosts, + post_list: data + }); + + getProfiles(); + }, + (err) => { + dispatchError(err, 'getPostsPage'); + }, + () => { + callTracker['getPostsPage_' + channelId] = 0; + } + ); } } export function getPosts(id) { - var channelId = id; + let channelId = id; if (channelId == null) { - if (ChannelStore.getCurrentId() == null) { + channelId = ChannelStore.getCurrentId(); + if (channelId == null) { return; } - channelId = ChannelStore.getCurrentId(); } if (isCallInProgress('getPosts_' + channelId)) { return; } - if (PostStore.getCurrentPosts() == null) { - getPostsPage(true, id, Constants.POST_CHUNK_SIZE); + if (PostStore.getAllPosts(channelId) == null) { + getPostsPage(channelId, Constants.POST_CHUNK_SIZE); return; } - var latestUpdate = PostStore.getLatestUpdate(channelId); + const latestUpdate = PostStore.getLatestUpdate(channelId); callTracker['getPosts_' + channelId] = utils.getTimestamp(); client.getPosts( channelId, latestUpdate, - function success(data, textStatus, xhr) { + (data, textStatus, xhr) => { if (xhr.status === 304 || !data) { return; } @@ -547,20 +513,100 @@ export function getPosts(id) { AppDispatcher.handleServerAction({ type: ActionTypes.RECIEVED_POSTS, id: channelId, + before: true, + numRequested: Constants.POST_CHUNK_SIZE, post_list: data }); getProfiles(); }, - function fail(err) { + (err) => { dispatchError(err, 'getPosts'); }, - function complete() { + () => { callTracker['getPosts_' + channelId] = 0; } ); } +export function getPostsBefore(postId, offset, numPost) { + const channelId = ChannelStore.getCurrentId(); + if (channelId == null) { + return; + } + + if (isCallInProgress('getPostsBefore_' + channelId)) { + return; + } + + client.getPostsBefore( + channelId, + postId, + offset, + numPost, + (data, textStatus, xhr) => { + if (xhr.status === 304 || !data) { + return; + } + + AppDispatcher.handleServerAction({ + type: ActionTypes.RECIEVED_POSTS, + id: channelId, + before: true, + numRequested: numPost, + post_list: data + }); + + getProfiles(); + }, + (err) => { + dispatchError(err, 'getPostsBefore'); + }, + () => { + callTracker['getPostsBefore_' + channelId] = 0; + } + ); +} + +export function getPostsAfter(postId, offset, numPost) { + const channelId = ChannelStore.getCurrentId(); + if (channelId == null) { + return; + } + + if (isCallInProgress('getPostsAfter_' + channelId)) { + return; + } + + client.getPostsAfter( + channelId, + postId, + offset, + numPost, + (data, textStatus, xhr) => { + if (xhr.status === 304 || !data) { + return; + } + + AppDispatcher.handleServerAction({ + type: ActionTypes.RECIEVED_POSTS, + id: channelId, + before: false, + numRequested: numPost, + post_list: data + }); + + getProfiles(); + }, + (err) => { + dispatchError(err, 'getPostsAfter'); + }, + () => { + callTracker['getPostsAfter_' + channelId] = 0; + } + ); +} + export function getMe() { if (isCallInProgress('getMe')) { return; @@ -699,3 +745,27 @@ export function savePreferences(preferences, success, error) { } ); } + +export function getSuggestedCommands(command, suggestionId, component) { + client.executeCommand( + '', + command, + true, + (data) => { + // pull out the suggested commands from the returned data + const terms = data.suggestions.map((suggestion) => suggestion.suggestion); + + AppDispatcher.handleServerAction({ + type: ActionTypes.SUGGESTION_RECEIVED_SUGGESTIONS, + id: suggestionId, + matchedPretext: command, + terms, + items: data.suggestions, + component + }); + }, + (err) => { + dispatchError(err, 'getCommandSuggestions'); + } + ); +} diff --git a/web/react/utils/channel_intro_messages.jsx b/web/react/utils/channel_intro_messages.jsx new file mode 100644 index 000000000..9685f94b0 --- /dev/null +++ b/web/react/utils/channel_intro_messages.jsx @@ -0,0 +1,187 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import * as Utils from './utils.jsx'; +import ChannelInviteModal from '../components/channel_invite_modal.jsx'; +import EditChannelHeaderModal from '../components/edit_channel_header_modal.jsx'; +import ToggleModalButton from '../components/toggle_modal_button.jsx'; +import UserProfile from '../components/user_profile.jsx'; +import ChannelStore from '../stores/channel_store.jsx'; +import Constants from '../utils/constants.jsx'; +import TeamStore from '../stores/team_store.jsx'; +import * as EventHelpers from '../dispatcher/event_helpers.jsx'; + +export function createChannelIntroMessage(channel) { + if (channel.type === 'D') { + return createDMIntroMessage(channel); + } else if (ChannelStore.isDefault(channel)) { + return createDefaultIntroMessage(channel); + } else if (channel.name === Constants.OFFTOPIC_CHANNEL) { + return createOffTopicIntroMessage(channel); + } else if (channel.type === 'O' || channel.type === 'P') { + return createStandardIntroMessage(channel); + } +} + +export function createDMIntroMessage(channel) { + var teammate = Utils.getDirectTeammate(channel.id); + + if (teammate) { + var teammateName = teammate.username; + if (teammate.nickname.length > 0) { + teammateName = teammate.nickname; + } + + return ( + <div className='channel-intro'> + <div className='post-profile-img__container channel-intro-img'> + <img + className='post-profile-img' + src={'/api/v1/users/' + teammate.id + '/image?time=' + teammate.update_at + '&' + Utils.getSessionIndex()} + height='50' + width='50' + /> + </div> + <div className='channel-intro-profile'> + <strong> + <UserProfile userId={teammate.id} /> + </strong> + </div> + <p className='channel-intro-text'> + {'This is the start of your direct message history with ' + teammateName + '.'}<br/> + {'Direct messages and files shared here are not shown to people outside this area.'} + </p> + {createSetHeaderButton(channel)} + </div> + ); + } + + return ( + <div className='channel-intro'> + <p className='channel-intro-text'>{'This is the start of your direct message history with this teammate. Direct messages and files shared here are not shown to people outside this area.'}</p> + </div> + ); +} + +export function createOffTopicIntroMessage(channel) { + return ( + <div className='channel-intro'> + <h4 className='channel-intro__title'>{'Beginning of ' + channel.display_name}</h4> + <p className='channel-intro__content'> + {'This is the start of ' + channel.display_name + ', a channel for non-work-related conversations.'} + <br/> + </p> + {createSetHeaderButton(channel)} + {createInviteChannelMemberButton(channel, 'channel')} + </div> + ); +} + +export function createDefaultIntroMessage(channel) { + const team = TeamStore.getCurrent(); + let inviteModalLink; + if (team.type === Constants.INVITE_TEAM) { + inviteModalLink = ( + <a + className='intro-links' + href='#' + onClick={EventHelpers.showInviteMemberModal} + > + <i className='fa fa-user-plus'></i>{'Invite others to this team'} + </a> + ); + } else { + inviteModalLink = ( + <a + className='intro-links' + href='#' + onClick={EventHelpers.showGetTeamInviteLinkModal} + > + <i className='fa fa-user-plus'></i>{'Invite others to this team'} + </a> + ); + } + + return ( + <div className='channel-intro'> + <h4 className='channel-intro__title'>{'Beginning of ' + channel.display_name}</h4> + <p className='channel-intro__content'> + <strong>{'Welcome to ' + channel.display_name + '!'}</strong> + <br/><br/> + {'This is the first channel teammates see when they sign up - use it for posting updates everyone needs to know.'} + </p> + {inviteModalLink} + {createSetHeaderButton(channel)} + <br/> + </div> + ); +} + +export function createStandardIntroMessage(channel) { + var uiName = channel.display_name; + var creatorName = ''; + + var uiType; + var memberMessage; + if (channel.type === 'P') { + uiType = 'private group'; + memberMessage = ' Only invited members can see this private group.'; + } else { + uiType = 'channel'; + memberMessage = ' Any member can join and read this channel.'; + } + + var createMessage; + if (creatorName === '') { + createMessage = 'This is the start of the ' + uiName + ' ' + uiType + ', created on ' + Utils.displayDate(channel.create_at) + '.'; + } else { + createMessage = ( + <span> + {'This is the start of the '} + <strong>{uiName}</strong> + {' '} + {uiType}{', created by '} + <strong>{creatorName}</strong> + {' on '} + <strong>{Utils.displayDate(channel.create_at)}</strong> + </span> + ); + } + + return ( + <div className='channel-intro'> + <h4 className='channel-intro__title'>{'Beginning of ' + uiName}</h4> + <p className='channel-intro__content'> + {createMessage} + {memberMessage} + <br/> + </p> + {createSetHeaderButton(channel)} + {createInviteChannelMemberButton(channel, uiType)} + </div> + ); +} + +function createInviteChannelMemberButton(channel, uiType) { + return ( + <ToggleModalButton + className='intro-links' + dialogType={ChannelInviteModal} + dialogProps={{channel}} + > + <i className='fa fa-user-plus'></i>{'Invite others to this ' + uiType} + </ToggleModalButton> + ); +} + +function createSetHeaderButton(channel) { + return ( + <ToggleModalButton + className='intro-links' + dialogType={EditChannelHeaderModal} + dialogProps={{channel}} + > + <i className='fa fa-pencil'></i>{'Set a header'} + </ToggleModalButton> + ); +} diff --git a/web/react/utils/channel_intro_mssages.jsx b/web/react/utils/channel_intro_mssages.jsx deleted file mode 100644 index f27e23a82..000000000 --- a/web/react/utils/channel_intro_mssages.jsx +++ /dev/null @@ -1,214 +0,0 @@ - -// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -const Utils = require('./utils.jsx'); -const InviteMemberModal = require('../components/invite_member_modal.jsx'); -const UserProfile = require('../components/user_profile.jsx'); -const ChannelStore = require('../stores/channel_store.jsx'); -const Constants = require('../utils/constants.jsx'); -const TeamStore = require('../stores/team_store.jsx'); - -export function createChannelIntroMessage(channel, showInviteModal) { - if (channel.type === 'D') { - return createDMIntroMessage(channel); - } else if (ChannelStore.isDefault(channel)) { - return createDefaultIntroMessage(channel); - } else if (channel.name === Constants.OFFTOPIC_CHANNEL) { - return createOffTopicIntroMessage(channel, showInviteModal); - } else if (channel.type === 'O' || channel.type === 'P') { - return createStandardIntroMessage(channel, showInviteModal); - } -} - -export function createDMIntroMessage(channel) { - var teammate = Utils.getDirectTeammate(channel.id); - - if (teammate) { - var teammateName = teammate.username; - if (teammate.nickname.length > 0) { - teammateName = teammate.nickname; - } - - return ( - <div className='channel-intro'> - <div className='post-profile-img__container channel-intro-img'> - <img - className='post-profile-img' - src={'/api/v1/users/' + teammate.id + '/image?time=' + teammate.update_at + '&' + Utils.getSessionIndex()} - height='50' - width='50' - /> - </div> - <div className='channel-intro-profile'> - <strong> - <UserProfile userId={teammate.id} /> - </strong> - </div> - <p className='channel-intro-text'> - {'This is the start of your direct message history with ' + teammateName + '.'}<br/> - {'Direct messages and files shared here are not shown to people outside this area.'} - </p> - <a - className='intro-links' - href='#' - data-toggle='modal' - data-target='#edit_channel' - data-header={channel.header} - data-title={channel.display_name} - data-channelid={channel.id} - > - <i className='fa fa-pencil'></i>{'Set a header'} - </a> - </div> - ); - } - - return ( - <div className='channel-intro'> - <p className='channel-intro-text'>{'This is the start of your direct message history with this teammate. Direct messages and files shared here are not shown to people outside this area.'}</p> - </div> - ); -} - -export function createOffTopicIntroMessage(channel, showInviteModal) { - return ( - <div className='channel-intro'> - <h4 className='channel-intro__title'>{'Beginning of ' + channel.display_name}</h4> - <p className='channel-intro__content'> - {'This is the start of ' + channel.display_name + ', a channel for non-work-related conversations.'} - <br/> - </p> - <a - className='intro-links' - href='#' - data-toggle='modal' - data-target='#edit_channel' - data-header={channel.header} - data-title={channel.display_name} - data-channelid={channel.id} - > - <i className='fa fa-pencil'></i>{'Set a header'} - </a> - <a - href='#' - onClick={showInviteModal} - > - <i className='fa fa-user-plus'></i>{'Invite others to this channel'} - </a> - </div> - ); -} - -export function createDefaultIntroMessage(channel) { - const team = TeamStore.getCurrent(); - let inviteModalLink; - if (team.type === Constants.INVITE_TEAM) { - inviteModalLink = ( - <a - className='intro-links' - href='#' - onClick={InviteMemberModal.show} - > - <i className='fa fa-user-plus'></i>{'Invite others to this team'} - </a> - ); - } else { - inviteModalLink = ( - <a - className='intro-links' - href='#' - data-toggle='modal' - data-target='#get_link' - data-title='Team Invite' - data-value={Utils.getWindowLocationOrigin() + '/signup_user_complete/?id=' + team.id} - > - <i className='fa fa-user-plus'></i>{'Invite others to this team'} - </a> - ); - } - - return ( - <div className='channel-intro'> - <h4 className='channel-intro__title'>{'Beginning of ' + channel.display_name}</h4> - <p className='channel-intro__content'> - <strong>{'Welcome to ' + channel.display_name + '!'}</strong> - <br/><br/> - {'This is the first channel teammates see when they sign up - use it for posting updates everyone needs to know.'} - </p> - {inviteModalLink} - <a - className='intro-links' - href='#' - data-toggle='modal' - data-target='#edit_channel' - data-header={channel.header} - data-title={channel.display_name} - data-channelid={channel.id} - > - <i className='fa fa-pencil'></i>{'Set a header'} - </a> - <br/> - </div> - ); -} - -export function createStandardIntroMessage(channel, showInviteModal) { - var uiName = channel.display_name; - var creatorName = ''; - - var uiType; - var memberMessage; - if (channel.type === 'P') { - uiType = 'private group'; - memberMessage = ' Only invited members can see this private group.'; - } else { - uiType = 'channel'; - memberMessage = ' Any member can join and read this channel.'; - } - - var createMessage; - if (creatorName === '') { - createMessage = 'This is the start of the ' + uiName + ' ' + uiType + ', created on ' + Utils.displayDate(channel.create_at) + '.'; - } else { - createMessage = ( - <span> - {'This is the start of the '} - <strong>{uiName}</strong> - {' '} - {uiType}{', created by '} - <strong>{creatorName}</strong> - {' on '} - <strong>{Utils.displayDate(channel.create_at)}</strong> - </span> - ); - } - - return ( - <div className='channel-intro'> - <h4 className='channel-intro__title'>{'Beginning of ' + uiName}</h4> - <p className='channel-intro__content'> - {createMessage} - {memberMessage} - <br/> - </p> - <a - className='intro-links' - href='#' - data-toggle='modal' - data-target='#edit_channel' - data-header={channel.header} - data-title={channel.display_name} - data-channelid={channel.id} - > - <i className='fa fa-pencil'></i>{'Set a header'} - </a> - <a - href='#' - onClick={showInviteModal} - > - <i className='fa fa-user-plus'></i>{'Invite others to this ' + uiType} - </a> - </div> - ); -} diff --git a/web/react/utils/client.jsx b/web/react/utils/client.jsx index d27fe16cf..5d02a8c88 100644 --- a/web/react/utils/client.jsx +++ b/web/react/utils/client.jsx @@ -1,8 +1,8 @@ // See License.txt for license information. -var BrowserStore = require('../stores/browser_store.jsx'); -var TeamStore = require('../stores/team_store.jsx'); -var ErrorStore = require('../stores/error_store.jsx'); +import BrowserStore from '../stores/browser_store.jsx'; +import TeamStore from '../stores/team_store.jsx'; +import ErrorStore from '../stores/error_store.jsx'; export function track(category, action, label, property, value) { global.window.analytics.track(action, {category, label, property, value}); @@ -590,7 +590,12 @@ export function updateChannel(channel, success, error) { track('api', 'api_channels_update'); } -export function updateChannelHeader(data, success, error) { +export function updateChannelHeader(channelId, header, success, error) { + const data = { + channel_id: channelId, + channel_header: header + }; + $.ajax({ url: '/api/v1/channels/update_header', dataType: 'json', @@ -820,7 +825,37 @@ export function getPosts(channelId, since, success, error, complete) { }); } -export function getPost(channelId, postId, success, error) { +export function getPostsBefore(channelId, post, offset, numPost, success, error, complete) { + $.ajax({ + url: '/api/v1/channels/' + channelId + '/post/' + post + '/before/' + offset + '/' + numPost, + dataType: 'json', + type: 'GET', + ifModified: false, + success, + error: function onError(xhr, status, err) { + var e = handleError('getPostsBefore', xhr, status, err); + error(e); + }, + complete: complete + }); +} + +export function getPostsAfter(channelId, post, offset, numPost, success, error, complete) { + $.ajax({ + url: '/api/v1/channels/' + channelId + '/post/' + post + '/after/' + offset + '/' + numPost, + dataType: 'json', + type: 'GET', + ifModified: false, + success, + error: function onError(xhr, status, err) { + var e = handleError('getPostsAfter', xhr, status, err); + error(e); + }, + complete: complete + }); +} + +export function getPost(channelId, postId, success, error, complete) { $.ajax({ cache: false, url: '/api/v1/channels/' + channelId + '/post/' + postId, @@ -831,7 +866,24 @@ export function getPost(channelId, postId, success, error) { error: function onError(xhr, status, err) { var e = handleError('getPost', xhr, status, err); error(e); - } + }, + complete + }); +} + +export function getPostById(postId, success, error, complete) { + $.ajax({ + cache: false, + url: '/api/v1/posts/' + postId, + dataType: 'json', + type: 'GET', + ifModified: false, + success, + error: function onError(xhr, status, err) { + var e = handleError('getPostById', xhr, status, err); + error(e); + }, + complete }); } diff --git a/web/react/utils/constants.jsx b/web/react/utils/constants.jsx index 58ee8e2d2..d23c18b5d 100644 --- a/web/react/utils/constants.jsx +++ b/web/react/utils/constants.jsx @@ -1,24 +1,30 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var keyMirror = require('keymirror'); +import keyMirror from 'keymirror'; -module.exports = { +export default { ActionTypes: keyMirror({ RECIEVED_ERROR: null, CLICK_CHANNEL: null, CREATE_CHANNEL: null, LEAVE_CHANNEL: null, + CREATE_POST: null, + POST_DELETED: null, + RECIEVED_CHANNELS: null, RECIEVED_CHANNEL: null, RECIEVED_MORE_CHANNELS: null, RECIEVED_CHANNEL_EXTRA_INFO: null, + FOCUS_POST: null, RECIEVED_POSTS: null, + RECIEVED_FOCUSED_POST: null, RECIEVED_POST: null, RECIEVED_EDIT_POST: null, RECIEVED_SEARCH: null, + RECIEVED_SEARCH_TERM: null, RECIEVED_POST_SELECTED: null, RECIEVED_MENTION_DATA: null, RECIEVED_ADD_MENTION: null, @@ -29,6 +35,7 @@ module.exports = { RECIEVED_AUDITS: null, RECIEVED_TEAMS: null, RECIEVED_STATUSES: null, + RECIEVED_PREFERENCE: null, RECIEVED_PREFERENCES: null, RECIEVED_MSG: null, @@ -39,8 +46,20 @@ module.exports = { RECIEVED_LOGS: null, RECIEVED_ALL_TEAMS: null, + SHOW_SEARCH: null, + TOGGLE_IMPORT_THEME_MODAL: null, - TOGGLE_INVITE_MEMBER_MODAL: null + TOGGLE_INVITE_MEMBER_MODAL: null, + TOGGLE_DELETE_POST_MODAL: null, + TOGGLE_GET_TEAM_INVITE_LINK_MODAL: null, + TOGGLE_REGISTER_APP_MODAL: null, + + SUGGESTION_PRETEXT_CHANGED: null, + SUGGESTION_RECEIVED_SUGGESTIONS: null, + SUGGESTION_CLEAR_SUGGESTIONS: null, + SUGGESTION_COMPLETE_WORD: null, + SUGGESTION_SELECT_NEXT: null, + SUGGESTION_SELECT_PREVIOUS: null }), PayloadSources: keyMirror({ @@ -56,10 +75,12 @@ module.exports = { NEW_USER: 'new_user', USER_ADDED: 'user_added', USER_REMOVED: 'user_removed', - TYPING: 'typing' + TYPING: 'typing', + PREFERENCE_CHANGED: 'preference_changed' }, - SPECIAL_MENTIONS: ['all', 'channel'], + //SPECIAL_MENTIONS: ['all', 'channel'], + SPECIAL_MENTIONS: ['channel'], CHARACTER_LIMIT: 4000, IMAGE_TYPES: ['jpg', 'gif', 'bmp', 'png', 'jpeg'], AUDIO_TYPES: ['mp3', 'wav', 'wma', 'm4a', 'flac', 'aac'], @@ -96,10 +117,14 @@ module.exports = { EMAIL_SERVICE: 'email', POST_CHUNK_SIZE: 60, MAX_POST_CHUNKS: 3, + POST_FOCUS_CONTEXT_RADIUS: 10, POST_LOADING: 'loading', POST_FAILED: 'failed', POST_DELETED: 'deleted', - POST_TYPE_JOIN_LEAVE: 'join_leave', + POST_TYPE_JOIN_LEAVE: 'system_join_leave', + SYSTEM_MESSAGE_PREFIX: 'system_', + SYSTEM_MESSAGE_PROFILE_NAME: 'System', + SYSTEM_MESSAGE_PROFILE_IMAGE: '/static/images/logo_compact.png', RESERVED_TEAM_NAMES: [ 'www', 'web', @@ -126,6 +151,7 @@ module.exports = { ], MONTHS: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], MAX_DMS: 20, + MAX_CHANNEL_POPOVER_COUNT: 100, DM_CHANNEL: 'D', OPEN_CHANNEL: 'O', PRIVATE_CHANNEL: 'P', @@ -333,6 +359,20 @@ module.exports = { } ], DEFAULT_CODE_THEME: 'github', + FONTS: { + 'Droid Serif': 'font--droid_serif', + 'Roboto Slab': 'font--roboto_slab', + Lora: 'font--lora', + Arvo: 'font--arvo', + 'Open Sans': 'font--open_sans', + Roboto: 'font--roboto', + 'PT Sans': 'font--pt_sans', + Lato: 'font--lato', + 'Source Sans Pro': 'font--source_sans_pro', + 'Exo 2': 'font--exo_2', + Ubuntu: 'font--ubuntu' + }, + DEFAULT_FONT: 'Open Sans', Preferences: { CATEGORY_DIRECT_CHANNEL_SHOW: 'direct_channel_show', CATEGORY_DISPLAY_SETTINGS: 'display_settings', @@ -353,7 +393,8 @@ module.exports = { BACKSPACE: 8, ENTER: 13, ESCAPE: 27, - SPACE: 32 + SPACE: 32, + TAB: 9 }, HighlightedLanguages: { diff: 'Diff', @@ -387,5 +428,16 @@ module.exports = { }, NotificationPrefs: { MENTION: 'mention' + }, + FeatureTogglePrefix: 'feature_enabled_', + PRE_RELEASE_FEATURES: { + MARKDOWN_PREVIEW: { + label: 'markdown_preview', // github issue: https://github.com/mattermost/platform/pull/1389 + description: 'Show markdown preview option in message input box' + }, + EMBED_PREVIEW: { + label: 'embed_preview', + description: 'Show preview snippet of links below message' + } } }; diff --git a/web/react/utils/emoticons.jsx b/web/react/utils/emoticons.jsx index bb948b6dc..fa5177232 100644 --- a/web/react/utils/emoticons.jsx +++ b/web/react/utils/emoticons.jsx @@ -13,7 +13,6 @@ const emoticonPatterns = { rage: /(^|\s)(:-?[\[@])(?=$|\s)/g, // :@ frowning: /(^|\s)(:-?\()(?=$|\s)/g, // :( sob: /(^|\s)(:['’]-?\(|:'\(|:'\()(?=$|\s)/g, // :`( - kissing_heart: /(^|\s)(:-?\*)(?=$|\s)/g, // :* pensive: /(^|\s)(:-?\/)(?=$|\s)/g, // :/ confounded: /(^|\s)(:-?s)(?=$|\s)/gi, // :s flushed: /(^|\s)(:-?\|)(?=$|\s)/g, // :| @@ -116,19 +115,19 @@ function initializeEmoticonMap() { const out = new Map(); for (let i = 0; i < emoticonNames.length; i++) { - out[emoticonNames[i]] = true; + out.set(emoticonNames[i], true); } return out; } -const emoticonMap = initializeEmoticonMap(); +export const emoticonMap = initializeEmoticonMap(); export function handleEmoticons(text, tokens) { let output = text; function replaceEmoticonWithToken(fullMatch, prefix, matchText, name) { - if (emoticonMap[name]) { + if (emoticonMap.has(name)) { const index = tokens.size; const alias = `MM_EMOTICON${index}`; @@ -154,6 +153,9 @@ export function handleEmoticons(text, tokens) { return output; } -function getImagePathForEmoticon(name) { - return `/static/images/emoji/${name}.png`; +export function getImagePathForEmoticon(name) { + if (name) { + return `/static/images/emoji/${name}.png`; + } + return `/static/images/emoji`; } diff --git a/web/react/utils/highlight.jsx b/web/react/utils/highlight.jsx deleted file mode 100644 index 68fef7930..000000000 --- a/web/react/utils/highlight.jsx +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -const highlightJs = require('highlight.js/lib/highlight.js'); -const highlightJsDiff = require('highlight.js/lib/languages/diff.js'); -const highlightJsApache = require('highlight.js/lib/languages/apache.js'); -const highlightJsMakefile = require('highlight.js/lib/languages/makefile.js'); -const highlightJsHttp = require('highlight.js/lib/languages/http.js'); -const highlightJsJson = require('highlight.js/lib/languages/json.js'); -const highlightJsMarkdown = require('highlight.js/lib/languages/markdown.js'); -const highlightJsJavascript = require('highlight.js/lib/languages/javascript.js'); -const highlightJsCss = require('highlight.js/lib/languages/css.js'); -const highlightJsNginx = require('highlight.js/lib/languages/nginx.js'); -const highlightJsObjectivec = require('highlight.js/lib/languages/objectivec.js'); -const highlightJsPython = require('highlight.js/lib/languages/python.js'); -const highlightJsXml = require('highlight.js/lib/languages/xml.js'); -const highlightJsPerl = require('highlight.js/lib/languages/perl.js'); -const highlightJsBash = require('highlight.js/lib/languages/bash.js'); -const highlightJsPhp = require('highlight.js/lib/languages/php.js'); -const highlightJsCoffeescript = require('highlight.js/lib/languages/coffeescript.js'); -const highlightJsCs = require('highlight.js/lib/languages/cs.js'); -const highlightJsCpp = require('highlight.js/lib/languages/cpp.js'); -const highlightJsSql = require('highlight.js/lib/languages/sql.js'); -const highlightJsGo = require('highlight.js/lib/languages/go.js'); -const highlightJsRuby = require('highlight.js/lib/languages/ruby.js'); -const highlightJsJava = require('highlight.js/lib/languages/java.js'); -const highlightJsIni = require('highlight.js/lib/languages/ini.js'); - -highlightJs.registerLanguage('diff', highlightJsDiff); -highlightJs.registerLanguage('apache', highlightJsApache); -highlightJs.registerLanguage('makefile', highlightJsMakefile); -highlightJs.registerLanguage('http', highlightJsHttp); -highlightJs.registerLanguage('json', highlightJsJson); -highlightJs.registerLanguage('markdown', highlightJsMarkdown); -highlightJs.registerLanguage('javascript', highlightJsJavascript); -highlightJs.registerLanguage('css', highlightJsCss); -highlightJs.registerLanguage('nginx', highlightJsNginx); -highlightJs.registerLanguage('objectivec', highlightJsObjectivec); -highlightJs.registerLanguage('python', highlightJsPython); -highlightJs.registerLanguage('xml', highlightJsXml); -highlightJs.registerLanguage('perl', highlightJsPerl); -highlightJs.registerLanguage('bash', highlightJsBash); -highlightJs.registerLanguage('php', highlightJsPhp); -highlightJs.registerLanguage('coffeescript', highlightJsCoffeescript); -highlightJs.registerLanguage('cs', highlightJsCs); -highlightJs.registerLanguage('cpp', highlightJsCpp); -highlightJs.registerLanguage('sql', highlightJsSql); -highlightJs.registerLanguage('go', highlightJsGo); -highlightJs.registerLanguage('ruby', highlightJsRuby); -highlightJs.registerLanguage('java', highlightJsJava); -highlightJs.registerLanguage('ini', highlightJsIni); diff --git a/web/react/utils/markdown.jsx b/web/react/utils/markdown.jsx index 946f93078..826b87d08 100644 --- a/web/react/utils/markdown.jsx +++ b/web/react/utils/markdown.jsx @@ -1,14 +1,62 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -require('./highlight.jsx'); -const TextFormatting = require('./text_formatting.jsx'); -const Utils = require('./utils.jsx'); - -const highlightJs = require('highlight.js/lib/highlight.js'); -const marked = require('marked'); - -const HighlightedLanguages = require('../utils/constants.jsx').HighlightedLanguages; +import highlightJs from 'highlight.js/lib/highlight.js'; +import highlightJsDiff from 'highlight.js/lib/languages/diff.js'; +import highlightJsApache from 'highlight.js/lib/languages/apache.js'; +import highlightJsMakefile from 'highlight.js/lib/languages/makefile.js'; +import highlightJsHttp from 'highlight.js/lib/languages/http.js'; +import highlightJsJson from 'highlight.js/lib/languages/json.js'; +import highlightJsMarkdown from 'highlight.js/lib/languages/markdown.js'; +import highlightJsJavascript from 'highlight.js/lib/languages/javascript.js'; +import highlightJsCss from 'highlight.js/lib/languages/css.js'; +import highlightJsNginx from 'highlight.js/lib/languages/nginx.js'; +import highlightJsObjectivec from 'highlight.js/lib/languages/objectivec.js'; +import highlightJsPython from 'highlight.js/lib/languages/python.js'; +import highlightJsXml from 'highlight.js/lib/languages/xml.js'; +import highlightJsPerl from 'highlight.js/lib/languages/perl.js'; +import highlightJsBash from 'highlight.js/lib/languages/bash.js'; +import highlightJsPhp from 'highlight.js/lib/languages/php.js'; +import highlightJsCoffeescript from 'highlight.js/lib/languages/coffeescript.js'; +import highlightJsCs from 'highlight.js/lib/languages/cs.js'; +import highlightJsCpp from 'highlight.js/lib/languages/cpp.js'; +import highlightJsSql from 'highlight.js/lib/languages/sql.js'; +import highlightJsGo from 'highlight.js/lib/languages/go.js'; +import highlightJsRuby from 'highlight.js/lib/languages/ruby.js'; +import highlightJsJava from 'highlight.js/lib/languages/java.js'; +import highlightJsIni from 'highlight.js/lib/languages/ini.js'; + +highlightJs.registerLanguage('diff', highlightJsDiff); +highlightJs.registerLanguage('apache', highlightJsApache); +highlightJs.registerLanguage('makefile', highlightJsMakefile); +highlightJs.registerLanguage('http', highlightJsHttp); +highlightJs.registerLanguage('json', highlightJsJson); +highlightJs.registerLanguage('markdown', highlightJsMarkdown); +highlightJs.registerLanguage('javascript', highlightJsJavascript); +highlightJs.registerLanguage('css', highlightJsCss); +highlightJs.registerLanguage('nginx', highlightJsNginx); +highlightJs.registerLanguage('objectivec', highlightJsObjectivec); +highlightJs.registerLanguage('python', highlightJsPython); +highlightJs.registerLanguage('xml', highlightJsXml); +highlightJs.registerLanguage('perl', highlightJsPerl); +highlightJs.registerLanguage('bash', highlightJsBash); +highlightJs.registerLanguage('php', highlightJsPhp); +highlightJs.registerLanguage('coffeescript', highlightJsCoffeescript); +highlightJs.registerLanguage('cs', highlightJsCs); +highlightJs.registerLanguage('cpp', highlightJsCpp); +highlightJs.registerLanguage('sql', highlightJsSql); +highlightJs.registerLanguage('go', highlightJsGo); +highlightJs.registerLanguage('ruby', highlightJsRuby); +highlightJs.registerLanguage('java', highlightJsJava); +highlightJs.registerLanguage('ini', highlightJsIni); + +import * as TextFormatting from './text_formatting.jsx'; +import * as Utils from './utils.jsx'; + +import marked from 'marked'; + +import Constants from '../utils/constants.jsx'; +const HighlightedLanguages = Constants.HighlightedLanguages; function markdownImageLoaded(image) { image.style.height = 'auto'; @@ -21,13 +69,11 @@ class MattermostInlineLexer extends marked.InlineLexer { this.rules = Object.assign({}, this.rules); - // modified version of the regex that doesn't break up words in snake_case, - // allows for links starting with www, and allows links succounded by parentheses + // modified version of the regex that allows for links starting with www and those surrounded by parentheses // the original is /^[\s\S]+?(?=[\\<!\[_*`~]|https?:\/\/| {2,}\n|$)/ - this.rules.text = /^[\s\S]+?(?:[^\w\/](?=_)|(?=_\W|[\\<!\[*`~]|https?:\/\/|www\.|\(| {2,}\n|$))/; + this.rules.text = /^[\s\S]+?(?=[\\<!\[_*`~]|https?:\/\/|www\.|\(| {2,}\n|$)/; - // modified version of the regex that allows links starting with www and those surrounded - // by parentheses + // modified version of the regex that allows links starting with www and those surrounded by parentheses // the original is /^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/ this.rules.url = /^(\(?(?:https?:\/\/|www\.)[^\s<.][^\s<]*[^<.,:;"'\]\s])/; @@ -62,23 +108,47 @@ class MattermostMarkdownRenderer extends marked.Renderer { this.formattingOptions = formattingOptions; } - code(code, language) { - let usedLanguage = language; + code(code, language, escaped) { + let usedLanguage = language || ''; + usedLanguage = usedLanguage.toLowerCase(); - if (String(usedLanguage).toLocaleLowerCase() === 'html') { + // treat html as xml to prevent injection attacks + if (usedLanguage === 'html') { usedLanguage = 'xml'; } - if (!usedLanguage || highlightJs.listLanguages().indexOf(usedLanguage) < 0) { - let parsed = super.code(code, usedLanguage); - return '<div class="post-body--code"><code class="hljs">' + TextFormatting.sanitizeHtml($(parsed).text()) + '</code></div>'; + if (HighlightedLanguages[usedLanguage]) { + const parsed = highlightJs.highlight(usedLanguage, code); + + return ( + '<div class="post-body--code">' + + '<span class="post-body--code__language">' + + HighlightedLanguages[usedLanguage] + + '</span>' + + '<pre>' + + '<code class="hljs">' + + parsed.value + + '</code>' + + '</pre>' + + '</div>' + ); + } else if (usedLanguage === 'tex' || usedLanguage === 'latex') { + try { + const html = katex.renderToString(TextFormatting.sanitizeHtml(code), {throwOnError: false, displayMode: true}); + + return '<div class="post-body--code tex">' + html + '</div>'; + } catch (e) { + // fall through if latex parsing fails and handle below + } } - let parsed = highlightJs.highlight(usedLanguage, code); - return '<div class="post-body--code">' + - '<span class="post-body--code__language">' + HighlightedLanguages[usedLanguage] + '</span>' + - '<code class="hljs">' + parsed.value + '</code>' + - '</div>'; + return ( + '<pre>' + + '<code class="hljs">' + + (escaped ? code : TextFormatting.sanitizeHtml(code)) + '\n' + + '</code>' + + '</pre>' + ); } br() { @@ -151,6 +221,16 @@ class MattermostMarkdownRenderer extends marked.Renderer { return `<table class="markdown__table"><thead>${header}</thead><tbody>${body}</tbody></table>`; } + listitem(text) { + const taskListReg = /^\[([ |xX])\] /; + const isTaskList = taskListReg.exec(text); + + if (isTaskList) { + return `<li class="list-item--task-list">${'<input type="checkbox" disabled="disabled" ' + (isTaskList[1] === ' ' ? '' : 'checked="checked" ') + '/> '}${text.replace(taskListReg, '')}</li>`; + } + return `<li>${text}</li>`; + } + text(txt) { return TextFormatting.doFormatText(txt, this.formattingOptions); } @@ -289,78 +369,78 @@ class MattermostLexer extends marked.Lexer { // list cap = this.rules.list.exec(src); if (cap) { + src = src.substring(cap[0].length); const bull = cap[2]; - let l = cap[0].length; + + this.tokens.push({ + type: 'list_start', + ordered: bull.length > 1 + }); // Get each top-level item. cap = cap[0].match(this.rules.item); - if (cap.length > 1) { - src = src.substring(l); - - this.tokens.push({ - type: 'list_start', - ordered: bull.length > 1 - }); - - let next = false; - l = cap.length; - - for (let i = 0; i < l; i++) { - let item = cap[i]; - - // Remove the list item's bullet - // so it is seen as the next token. - let space = item.length; - item = item.replace(/^ *([*+-]|\d+\.) +/, ''); - - // Outdent whatever the - // list item contains. Hacky. - if (~item.indexOf('\n ')) { - space -= item.length; - item = this.options.pedantic ? item.replace(/^ {1,4}/gm, '') : item.replace(new RegExp('^ \{1,' + space + '\}', 'gm'), ''); - } + let next = false; + const l = cap.length; + let i = 0; + + for (; i < l; i++) { + let item = cap[i]; + + // Remove the list item's bullet + // so it is seen as the next token. + let space = item.length; + item = item.replace(/^ *([*+-]|\d+\.) +/, ''); + + // Outdent whatever the + // list item contains. Hacky. + if (~item.indexOf('\n ')) { + space -= item.length; + item = this.options.pedantic ? + item.replace(/^ {1,4}/gm, '') : + item.replace(new RegExp('^ {1,' + space + '}', 'gm'), ''); + } - // Determine whether the next list item belongs here. - // Backpedal if it does not belong in this list. - if (this.options.smartLists && i !== l - 1) { - const bullet = /(?:[*+-]|\d+\.)/; - const b = bullet.exec(cap[i + 1])[0]; - if (bull !== b && !(bull.length > 1 && b.length > 1)) { - src = cap.slice(i + 1).join('\n') + src; - i = l - 1; - } + // Determine whether the next list item belongs here. + // Backpedal if it does not belong in this list. + if (this.options.smartLists && i !== l - 1) { + const b = this.rules.bullet.exec(cap[i + 1])[0]; + if (bull !== b && !(bull.length > 1 && b.length > 1)) { + src = cap.slice(i + 1).join('\n') + src; + i = l - 1; } + } - // Determine whether item is loose or not. - // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/ - // for discount behavior. - let loose = next || (/\n\n(?!\s*$)/).test(item); - if (i !== l - 1) { - next = item.charAt(item.length - 1) === '\n'; - if (!loose) { - loose = next; - } + // Determine whether item is loose or not. + // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/ + // for discount behavior. + let loose = next || (/\n\n(?!\s*$)/).test(item); + if (i !== l - 1) { + next = item.charAt(item.length - 1) === '\n'; + if (!loose) { + loose = next; } - - this.tokens.push({ - type: loose ? 'loose_item_start' : 'list_item_start' - }); - - // Recurse. - this.token(item, false, bq); - - this.tokens.push({ - type: 'list_item_end' - }); } this.tokens.push({ - type: 'list_end' + type: loose ? + 'loose_item_start' : + 'list_item_start' }); - continue; + // Recurse. + this.token(item, false, bq); + + this.tokens.push({ + type: 'list_item_end' + }); } + + this.tokens.push({ + type: 'list_end' + }); + + continue; } // html diff --git a/web/react/utils/text_formatting.jsx b/web/react/utils/text_formatting.jsx index 705d85cf6..f0bd46f9d 100644 --- a/web/react/utils/text_formatting.jsx +++ b/web/react/utils/text_formatting.jsx @@ -1,12 +1,12 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -const Autolinker = require('autolinker'); -const Constants = require('./constants.jsx'); -const Emoticons = require('./emoticons.jsx'); -const Markdown = require('./markdown.jsx'); -const UserStore = require('../stores/user_store.jsx'); -const Utils = require('./utils.jsx'); +import Autolinker from 'autolinker'; +import Constants from './constants.jsx'; +import * as Emoticons from './emoticons.jsx'; +import * as Markdown from './markdown.jsx'; +import UserStore from '../stores/user_store.jsx'; +import * as Utils from './utils.jsx'; // Performs formatting of user posts including highlighting mentions and search terms and converting urls, hashtags, and // @mentions to links by taking a user's message and returning a string of formatted html. Also takes a number of options @@ -188,7 +188,7 @@ function highlightCurrentMentions(text, tokens) { const newAlias = `MM_SELFMENTION${index}`; newTokens.set(newAlias, { - value: `<span class='mention-highlight'>${alias}</span>` + token.extraText, + value: `<span class='mention-highlight'>${alias}</span>` + (token.extraText || ''), originalText: token.originalText }); output = output.replace(alias, newAlias); @@ -259,30 +259,73 @@ function autolinkHashtags(text, tokens) { return output.replace(/(^|\W)(#[a-zA-Z][a-zA-Z0-9.\-_]*)\b/g, replaceHashtagWithToken); } -function highlightSearchTerm(text, tokens, searchTerm) { - let output = text; +const puncStart = /^[.,()&$!\[\]{}':;\\]+/; +const puncEnd = /[.,()&$#!\[\]{}':;\\]+$/; - var newTokens = new Map(); - for (const [alias, token] of tokens) { - if (token.originalText.indexOf(searchTerm.replace(/\*$/, '')) > -1) { - const index = tokens.size + newTokens.size; - const newAlias = `MM_SEARCHTERM${index}`; +function parseSearchTerms(searchTerm) { + let terms = []; - newTokens.set(newAlias, { - value: `<span class='search-highlight'>${alias}</span>`, - originalText: token.originalText - }); + let termString = searchTerm; - output = output.replace(alias, newAlias); + while (termString) { + let captured; + + // check for a quoted string + captured = (/^"(.*?)"/).exec(termString); + if (captured) { + termString = termString.substring(captured[0].length); + terms.push(captured[1]); + continue; + } + + // check for a search flag (and don't add it to terms) + captured = (/^(?:in|from|channel): ?\S+/).exec(termString); + if (captured) { + termString = termString.substring(captured[0].length); + continue; + } + + // capture any plain text up until the next quote or search flag + captured = (/^.+?(?=\bin|\bfrom|\bchannel|"|$)/).exec(termString); + if (captured) { + termString = termString.substring(captured[0].length); + + // break the text up into words based on how the server splits them in SqlPostStore.SearchPosts and then discard empty terms + terms.push(...captured[0].split(/[ <>+\-\(\)\~\@]/).filter((term) => !!term)); + continue; } + + // we should never reach this point since at least one of the regexes should match something in the remaining text + throw new Error('Infinite loop in search term parsing: ' + termString); } - // the new tokens are stashed in a separate map since we can't add objects to a map during iteration - for (const newToken of newTokens) { - tokens.set(newToken[0], newToken[1]); + // remove punctuation from each term + terms = terms.map((term) => term.replace(puncStart, '').replace(puncEnd, '')); + + return terms; +} + +function convertSearchTermToRegex(term) { + let pattern; + if (term.endsWith('*')) { + pattern = '\\b' + escapeRegex(term.substring(0, term.length - 1)); + } else { + pattern = '\\b' + escapeRegex(term) + '\\b'; } - function replaceSearchTermWithToken(fullMatch, prefix, word) { + return new RegExp(pattern, 'gi'); +} + +function highlightSearchTerm(text, tokens, searchTerm) { + const terms = parseSearchTerms(searchTerm); + + if (terms.length === 0) { + return text; + } + + let output = text; + + function replaceSearchTermWithToken(word) { const index = tokens.size; const alias = `MM_SEARCHTERM${index}`; @@ -291,10 +334,35 @@ function highlightSearchTerm(text, tokens, searchTerm) { originalText: word }); - return prefix + alias; + return alias; } - return output.replace(new RegExp(`()(${escapeRegex(searchTerm)})`, 'gi'), replaceSearchTermWithToken); + for (const term of terms) { + // highlight existing tokens matching search terms + var newTokens = new Map(); + for (const [alias, token] of tokens) { + if (token.originalText === term.replace(/\*$/, '')) { + const index = tokens.size + newTokens.size; + const newAlias = `MM_SEARCHTERM${index}`; + + newTokens.set(newAlias, { + value: `<span class='search-highlight'>${alias}</span>`, + originalText: token.originalText + }); + + output = output.replace(alias, newAlias); + } + } + + // the new tokens are stashed in a separate map since we can't add objects to a map during iteration + for (const newToken of newTokens) { + tokens.set(newToken[0], newToken[1]); + } + + output = output.replace(convertSearchTermToRegex(term), replaceSearchTermWithToken); + } + + return output; } function replaceTokens(text, tokens) { diff --git a/web/react/utils/utils.jsx b/web/react/utils/utils.jsx index 38f91b35f..fb8b89252 100644 --- a/web/react/utils/utils.jsx +++ b/web/react/utils/utils.jsx @@ -1,17 +1,18 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. -var AppDispatcher = require('../dispatcher/app_dispatcher.jsx'); -var ChannelStore = require('../stores/channel_store.jsx'); -var UserStore = require('../stores/user_store.jsx'); -var PreferenceStore = require('../stores/preference_store.jsx'); -var TeamStore = require('../stores/team_store.jsx'); -var Constants = require('../utils/constants.jsx'); +import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; +import * as EventHelpers from '../dispatcher/event_helpers.jsx'; +import ChannelStore from '../stores/channel_store.jsx'; +import UserStore from '../stores/user_store.jsx'; +import PreferenceStore from '../stores/preference_store.jsx'; +import TeamStore from '../stores/team_store.jsx'; +import Constants from '../utils/constants.jsx'; var ActionTypes = Constants.ActionTypes; -var Client = require('./client.jsx'); -var AsyncClient = require('./async_client.jsx'); -var client = require('./client.jsx'); -var Autolinker = require('autolinker'); +import * as Client from './client.jsx'; +import * as AsyncClient from './async_client.jsx'; +import * as client from './client.jsx'; +import Autolinker from 'autolinker'; export function isEmail(email) { //var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; @@ -251,13 +252,6 @@ export function getTimestamp() { // extracts links not styled by Markdown export function extractLinks(text) { - const urlMatcher = new Autolinker.matchParser.MatchParser({ - urls: true, - emails: false, - twitter: false, - phone: false, - hashtag: false - }); const links = []; let replaceText = text; @@ -270,7 +264,7 @@ export function extractLinks(text) { } } - function replaceFn(match) { + function replaceFn(autolinker, match) { let link = ''; const matchText = match.getMatchedText(); const tempText = replaceText; @@ -303,7 +297,16 @@ export function extractLinks(text) { links.push(link); } - urlMatcher.replace(text, replaceFn, this); + + Autolinker.link(text, { + replaceFn, + urls: {schemeMatches: true, wwwMatches: true, tldMatches: false}, + emails: false, + twitter: false, + phone: false, + hashtag: false + }); + return {links, text}; } @@ -311,8 +314,98 @@ export function escapeRegExp(string) { return string.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, '\\$1'); } -export function areStatesEqual(state1, state2) { - return JSON.stringify(state1) === JSON.stringify(state2); +// Taken from http://stackoverflow.com/questions/1068834/object-comparison-in-javascript and modified slightly +export function areObjectsEqual(x, y) { + let p; + const leftChain = []; + const rightChain = []; + + // Remember that NaN === NaN returns false + // and isNaN(undefined) returns true + if (isNaN(x) && isNaN(y) && typeof x === 'number' && typeof y === 'number') { + return true; + } + + // Compare primitives and functions. + // Check if both arguments link to the same object. + // Especially useful on step when comparing prototypes + if (x === y) { + return true; + } + + // Works in case when functions are created in constructor. + // Comparing dates is a common scenario. Another built-ins? + // We can even handle functions passed across iframes + if ((typeof x === 'function' && typeof y === 'function') || + (x instanceof Date && y instanceof Date) || + (x instanceof RegExp && y instanceof RegExp) || + (x instanceof String && y instanceof String) || + (x instanceof Number && y instanceof Number)) { + return x.toString() === y.toString(); + } + + // At last checking prototypes as good a we can + if (!(x instanceof Object && y instanceof Object)) { + return false; + } + + if (x.isPrototypeOf(y) || y.isPrototypeOf(x)) { + return false; + } + + if (x.constructor !== y.constructor) { + return false; + } + + if (x.prototype !== y.prototype) { + return false; + } + + // Check for infinitive linking loops + if (leftChain.indexOf(x) > -1 || rightChain.indexOf(y) > -1) { + return false; + } + + // Quick checking of one object beeing a subset of another. + for (p in y) { + if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) { + return false; + } else if (typeof y[p] !== typeof x[p]) { + return false; + } + } + + for (p in x) { + if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) { + return false; + } else if (typeof y[p] !== typeof x[p]) { + return false; + } + + switch (typeof (x[p])) { + case 'object': + case 'function': + + leftChain.push(x); + rightChain.push(y); + + if (!areObjectsEqual(x[p], y[p])) { + return false; + } + + leftChain.pop(); + rightChain.pop(); + break; + + default: + if (x[p] !== y[p]) { + return false; + } + break; + } + } + + return true; } export function replaceHtmlEntities(text) { @@ -451,7 +544,6 @@ export function applyTheme(theme) { changeCss('@media(max-width: 768px){.settings-modal .settings-table .nav>li>a', 'color:' + theme.sidebarText, 1); changeCss('.sidebar--left .nav-pills__container li>h4, .sidebar--left .add-channel-btn', 'color:' + changeOpacity(theme.sidebarText, 0.6), 1); changeCss('.sidebar--left .add-channel-btn:hover, .sidebar--left .add-channel-btn:focus', 'color:' + theme.sidebarText, 1); - changeCss('.sidebar--left, .sidebar--right .sidebar--right__header', 'border-color:' + changeOpacity(theme.sidebarText, 0.2), 1); changeCss('.sidebar--left .status path', 'fill:' + changeOpacity(theme.sidebarText, 0.5), 1); changeCss('@media(max-width: 768px){.settings-modal .settings-table .nav>li>a', 'border-color:' + changeOpacity(theme.sidebarText, 0.2), 2); } @@ -472,8 +564,6 @@ export function applyTheme(theme) { if (theme.sidebarTextActiveColor) { changeCss('.sidebar--left .nav-pills__container li.active a, .sidebar--left .nav-pills__container li.active a:hover, .sidebar--left .nav-pills__container li.active a:focus, .settings-modal .nav-pills>li.active a, .settings-modal .nav-pills>li.active a:hover, .settings-modal .nav-pills>li.active a:active', 'color:' + theme.sidebarTextActiveColor, 2); changeCss('.sidebar--left .nav li.active a, .sidebar--left .nav li.active a:hover, .sidebar--left .nav li.active a:focus', 'background:' + changeOpacity(theme.sidebarTextActiveColor, 0.1), 1); - changeCss('.search-help-popover .search-autocomplete__item:hover', 'background:' + changeOpacity(theme.sidebarTextActiveColor, 0.05), 1); - changeCss('.search-help-popover .search-autocomplete__item.selected', 'background:' + changeOpacity(theme.sidebarTextActiveColor, 0.15), 1); } if (theme.sidebarHeaderBg) { @@ -486,6 +576,7 @@ export function applyTheme(theme) { if (theme.sidebarHeaderTextColor) { changeCss('.sidebar--left .team__header .header__info, .sidebar--menu .team__header .header__info', 'color:' + theme.sidebarHeaderTextColor, 1); + changeCss('.sidebar--left .team__header .navbar-right .dropdown__icon, .sidebar--menu .team__header .navbar-right .dropdown__icon', 'fill:' + theme.sidebarHeaderTextColor, 1); changeCss('.sidebar--left .team__header .user__name, .sidebar--menu .team__header .user__name', 'color:' + changeOpacity(theme.sidebarHeaderTextColor, 0.8), 1); changeCss('.sidebar--left .team__header:hover .user__name, .sidebar--menu .team__header:hover .user__name', 'color:' + theme.sidebarHeaderTextColor, 1); changeCss('.modal .modal-header .modal-title, .modal .modal-header .modal-title .name, .modal .modal-header button.close', 'color:' + theme.sidebarHeaderTextColor, 1); @@ -509,7 +600,7 @@ export function applyTheme(theme) { } if (theme.centerChannelBg) { - changeCss('.app__content, .markdown__table, .markdown__table tbody tr, .command-box, .modal .modal-content, .mentions-name, .mentions--top .mentions-box', 'background:' + theme.centerChannelBg, 1); + changeCss('.app__content, .markdown__table, .markdown__table tbody tr, .suggestion-content, .modal .modal-content', 'background:' + theme.centerChannelBg, 1); changeCss('#post-list .post-list-holder-by-time', 'background:' + theme.centerChannelBg, 1); changeCss('#post-create', 'background:' + theme.centerChannelBg, 1); changeCss('.date-separator .separator__text, .new-separator .separator__text', 'background:' + theme.centerChannelBg, 1); @@ -519,27 +610,26 @@ export function applyTheme(theme) { changeCss('.popover.right>.arrow:after, .tip-overlay.tip-overlay--sidebar .arrow, .tip-overlay.tip-overlay--header .arrow', 'border-right-color:' + theme.centerChannelBg, 1); changeCss('.popover.left>.arrow:after', 'border-left-color:' + theme.centerChannelBg, 1); changeCss('.popover.top>.arrow:after, .tip-overlay.tip-overlay--chat .arrow', 'border-top-color:' + theme.centerChannelBg, 1); - changeCss('.search-bar__container .search__form .search-bar, .form-control', 'background:' + theme.centerChannelBg, 1); + changeCss('@media(min-width: 768px){.search-bar__container .search__form .search-bar, .form-control', 'background:' + theme.centerChannelBg, 1); changeCss('.attachment__content', 'background:' + theme.centerChannelBg, 1); } if (theme.centerChannelColor) { + changeCss('.sidebar--left, .sidebar--right .sidebar--right__header', 'border-color:' + changeOpacity(theme.centerChannelColor, 0.2), 1); changeCss('.app__content, .post-create__container .post-create-body .btn-file, .post-create__container .post-create-footer .msg-typing, .command-name, .modal .modal-content, .dropdown-menu, .popover, .mentions-name, .tip-overlay', 'color:' + theme.centerChannelColor, 1); changeCss('#post-create', 'color:' + theme.centerChannelColor, 2); - changeCss('.channel-header__links a', 'fill:' + changeOpacity(theme.centerChannelColor, 0.7), 1); - changeCss('.channel-header__links a:hover, .channel-header__links a:active', 'fill:' + theme.centerChannelColor, 2); - changeCss('.mentions--top, .command-box', 'box-shadow:' + changeOpacity(theme.centerChannelColor, 0.2) + ' 1px -3px 12px', 3); - changeCss('.mentions--top, .command-box', '-webkit-box-shadow:' + changeOpacity(theme.centerChannelColor, 0.2) + ' 1px -3px 12px', 2); - changeCss('.mentions--top, .command-box', '-moz-box-shadow:' + changeOpacity(theme.centerChannelColor, 0.2) + ' 1px -3px 12px', 1); + changeCss('.mentions--top, .suggestion-list', 'box-shadow:' + changeOpacity(theme.centerChannelColor, 0.2) + ' 1px -3px 12px', 3); + changeCss('.mentions--top, .suggestion-list', '-webkit-box-shadow:' + changeOpacity(theme.centerChannelColor, 0.2) + ' 1px -3px 12px', 2); + changeCss('.mentions--top, .suggestion-list', '-moz-box-shadow:' + changeOpacity(theme.centerChannelColor, 0.2) + ' 1px -3px 12px', 1); changeCss('.dropdown-menu, .popover ', 'box-shadow:' + changeOpacity(theme.centerChannelColor, 0.1) + ' 0px 6px 12px', 3); changeCss('.dropdown-menu, .popover ', '-webkit-box-shadow:' + changeOpacity(theme.centerChannelColor, 0.1) + ' 0px 6px 12px', 2); changeCss('.dropdown-menu, .popover ', '-moz-box-shadow:' + changeOpacity(theme.centerChannelColor, 0.1) + ' 0px 6px 12px', 1); - changeCss('.post-body hr, .loading-screen .loading__content .round, .tutorial__circles .circle', 'background:' + theme.centerChannelColor, 1); + changeCss('.post__body hr, .loading-screen .loading__content .round, .tutorial__circles .circle', 'background:' + theme.centerChannelColor, 1); changeCss('.channel-header .heading', 'color:' + theme.centerChannelColor, 1); changeCss('.markdown__table tbody tr:nth-child(2n)', 'background:' + changeOpacity(theme.centerChannelColor, 0.07), 1); changeCss('.channel-header__info>div.dropdown .header-dropdown__icon', 'color:' + changeOpacity(theme.centerChannelColor, 0.8), 1); changeCss('.channel-header #member_popover', 'color:' + changeOpacity(theme.centerChannelColor, 0.8), 1); - changeCss('.custom-textarea, .custom-textarea:focus, .preview-container .preview-div, .post-image__column .post-image__details, .sidebar--right .sidebar-right__body, .markdown__table th, .markdown__table td, .command-box, .modal .modal-content, .settings-modal .settings-table .settings-content .divider-light, .webhooks__container, .dropdown-menu, .modal .modal-header, .popover, .mentions--top .mentions-box', 'border-color:' + changeOpacity(theme.centerChannelColor, 0.2), 1); + changeCss('.custom-textarea, .custom-textarea:focus, .preview-container .preview-div, .post-image__column .post-image__details, .sidebar--right .sidebar-right__body, .markdown__table th, .markdown__table td, .suggestion-content, .modal .modal-content, .settings-modal .settings-table .settings-content .divider-light, .webhooks__container, .dropdown-menu, .modal .modal-header, .popover', 'border-color:' + changeOpacity(theme.centerChannelColor, 0.2), 1); changeCss('.popover.bottom>.arrow', 'border-bottom-color:' + changeOpacity(theme.centerChannelColor, 0.25), 1); changeCss('.search-help-popover .search-autocomplete__divider span', 'color:' + changeOpacity(theme.centerChannelColor, 0.7), 1); changeCss('.popover.right>.arrow', 'border-right-color:' + changeOpacity(theme.centerChannelColor, 0.25), 1); @@ -551,8 +641,7 @@ export function applyTheme(theme) { changeCss('.post-image__column', 'border-color:' + changeOpacity(theme.centerChannelColor, 0.2), 2); changeCss('.post-image__column .post-image__details', 'color:' + theme.centerChannelColor, 2); changeCss('.post-image__column a, .post-image__column a:hover, .post-image__column a:focus', 'color:' + theme.centerChannelColor, 1); - changeCss('.search-bar__container .search__form .search-bar, .form-control', 'color:' + theme.centerChannelColor, 2); - changeCss('@media(max-width: 768px){.search-bar__container .search__form .search-bar', 'background:' + changeOpacity(theme.centerChannelColor, 0.2) + '; color: inherit;', 1); + changeCss('@media(min-width: 768px){.search-bar__container .search__form .search-bar, .form-control', 'color:' + theme.centerChannelColor, 2); changeCss('.input-group-addon, .search-bar__container .search__form, .form-control', 'border-color:' + changeOpacity(theme.centerChannelColor, 0.2), 1); changeCss('.form-control:focus', 'border-color:' + changeOpacity(theme.centerChannelColor, 0.3), 1); changeCss('.attachment .attachment__content', 'border-color:' + changeOpacity(theme.centerChannelColor, 0.3), 1); @@ -561,17 +650,17 @@ export function applyTheme(theme) { changeCss('.date-separator .separator__hr, .modal-footer, .modal .custom-textarea, .post-right__container .post.post--root hr, .search-item-container', 'border-color:' + changeOpacity(theme.centerChannelColor, 0.2), 1); changeCss('.modal .custom-textarea:focus', 'border-color:' + changeOpacity(theme.centerChannelColor, 0.3), 1); changeCss('.channel-intro, .settings-modal .settings-table .settings-content .divider-dark, hr, .settings-modal .settings-table .settings-links', 'border-color:' + changeOpacity(theme.centerChannelColor, 0.2), 1); - changeCss('.post.current--user .post-body, .post.post--comment.other--root.current--user .post-comment, pre', 'background:' + changeOpacity(theme.centerChannelColor, 0.07), 1); - changeCss('.post.current--user .post-body, .post.post--comment.other--root.current--user .post-comment, .post.post--comment.other--root .post-comment, .post.same--root .post-body, .modal .more-table tbody>tr td, .member-div:first-child, .member-div, .access-history__table .access__report, .activity-log__table', 'border-color:' + changeOpacity(theme.centerChannelColor, 0.1), 2); - changeCss('@media(max-width: 1440px){.post.same--root', 'border-color:' + changeOpacity(theme.centerChannelColor, 0.07), 2); - changeCss('@media(max-width: 1440px){.post.same--root', 'border-color:' + changeOpacity(theme.centerChannelColor, 0.07), 2); + changeCss('.post.current--user .post__body, .post.post--comment.other--root.current--user .post-comment, pre', 'background:' + changeOpacity(theme.centerChannelColor, 0.07), 1); + changeCss('.post.current--user .post__body, .post.post--comment.other--root.current--user .post-comment, .post.same--root.post--comment .post__body, .modal .more-table tbody>tr td, .member-div:first-child, .member-div, .access-history__table .access__report, .activity-log__table', 'border-color:' + changeOpacity(theme.centerChannelColor, 0.1), 2); changeCss('@media(max-width: 1800px){.inner__wrap.move--left .post.post--comment.same--root', 'border-color:' + changeOpacity(theme.centerChannelColor, 0.07), 2); - changeCss('.post:hover, .modal .more-table tbody>tr:hover td, .sidebar--right .sidebar--right__header, .settings-modal .settings-table .settings-content .section-min:hover', 'background:' + changeOpacity(theme.centerChannelColor, 0.07), 1); + changeCss('.post:hover, .modal .more-table tbody>tr:hover td, .settings-modal .settings-table .settings-content .section-min:hover', 'background:' + changeOpacity(theme.centerChannelColor, 0.07), 1); changeCss('.date-separator.hovered--before:after, .date-separator.hovered--after:before, .new-separator.hovered--after:before, .new-separator.hovered--before:after', 'background:' + changeOpacity(theme.centerChannelColor, 0.07), 1); - changeCss('.command-name:hover, .mentions-name:hover, .mentions-focus, .dropdown-menu>li>a:focus, .dropdown-menu>li>a:hover, .bot-indicator', 'background:' + changeOpacity(theme.centerChannelColor, 0.15), 1); + changeCss('.command-name:hover, .mentions-name:hover, .suggestion--selected, .dropdown-menu>li>a:focus, .dropdown-menu>li>a:hover, .bot-indicator', 'background:' + changeOpacity(theme.centerChannelColor, 0.15), 1); changeCss('code', 'background:' + changeOpacity(theme.centerChannelColor, 0.1), 1); - changeCss('.post.current--user:hover .post-body ', 'background: none;', 1); + changeCss('@media(min-width: 960px){.post.current--user:hover .post__body ', 'background: none;', 1); changeCss('.sidebar--right', 'color:' + theme.centerChannelColor, 2); + changeCss('.search-help-popover .search-autocomplete__item:hover', 'background:' + changeOpacity(theme.centerChannelColor, 0.05), 1); + changeCss('.search-help-popover .search-autocomplete__item.selected', 'background:' + changeOpacity(theme.centerChannelColor, 0.15), 1); } if (theme.newMessageSeparator) { @@ -595,7 +684,11 @@ export function applyTheme(theme) { } if (theme.mentionHighlightBg) { - changeCss('.mention-highlight, .search-highlight', 'background:' + theme.mentionHighlightBg, 1); + changeCss('.mention-highlight, .search-highlight, #archive-link-home', 'background:' + theme.mentionHighlightBg, 1); + } + + if (theme.mentionHighlightBg) { + changeCss('.post.post--highlight, #archive-link-home', 'background:' + changeOpacity(theme.mentionHighlightBg, 0.5), 1); } if (theme.mentionHighlightLink) { @@ -607,6 +700,23 @@ export function applyTheme(theme) { } updateCodeTheme(theme.codeTheme); } + +export function applyFont(fontName) { + const body = $('body'); + + for (const key of Reflect.ownKeys(Constants.FONTS)) { + const className = Constants.FONTS[key]; + + if (fontName === key) { + if (!body.hasClass(className)) { + body.addClass(className); + } + } else { + body.removeClass(className); + } + } +} + export function changeCss(className, classValue, classRepeat) { // we need invisible container to store additional css definitions var cssMainContainer = $('#css-modifier-container'); @@ -662,19 +772,10 @@ export function updateCodeTheme(theme) { export function placeCaretAtEnd(el) { el.focus(); - if (typeof window.getSelection != 'undefined' && typeof document.createRange != 'undefined') { - var range = document.createRange(); - range.selectNodeContents(el); - range.collapse(false); - var sel = window.getSelection(); - sel.removeAllRanges(); - sel.addRange(range); - } else if (typeof document.body.createTextRange != 'undefined') { - var textRange = document.body.createTextRange(); - textRange.moveToElementText(el); - textRange.collapse(false); - textRange.select(); - } + el.selectionStart = el.value.length; + el.selectionEnd = el.value.length; + + return; } export function getCaretPosition(el) { @@ -753,23 +854,15 @@ export function isValidUsername(name) { } export function updateAddressBar(channelName) { - var teamURL = window.location.href.split('/channels')[0]; + const teamURL = TeamStore.getCurrentTeamUrl(); history.replaceState('data', '', teamURL + '/channels/' + channelName); } export function switchChannel(channel) { - AppDispatcher.handleViewAction({ - type: ActionTypes.CLICK_CHANNEL, - name: channel.name, - id: channel.id - }); + EventHelpers.emitChannelClickEvent(channel); updateAddressBar(channel.name); - AsyncClient.getChannels(true, true, true); - AsyncClient.getChannelExtraInfo(true); - AsyncClient.getPosts(channel.id); - $('.inner__wrap').removeClass('move--right'); $('.sidebar--left').removeClass('move--right'); @@ -784,7 +877,7 @@ export function isMobile() { export function isComment(post) { if ('root_id' in post) { - return post.root_id !== ''; + return post.root_id !== '' && post.root_id != null; } return false; } @@ -911,13 +1004,15 @@ export function displayUsername(userId) { const nameFormat = PreferenceStore.getPreference(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, 'name_format', {value: 'false'}).value; let username = ''; - if (nameFormat === 'nickname_full_name') { - username = user.nickname || getFullName(user); - } else if (nameFormat === 'full_name') { - username = getFullName(user); - } - if (!username.trim().length) { - username = user.username; + if (user) { + if (nameFormat === 'nickname_full_name') { + username = user.nickname || getFullName(user); + } else if (nameFormat === 'full_name') { + username = getFullName(user); + } + if (!username.trim().length) { + username = user.username; + } } return username; @@ -1043,6 +1138,11 @@ export function getUserIdFromChannelName(channel) { return otherUserId; } +// Returns true if the given channel is a direct channel between the current user and the given one +export function isDirectChannelForUser(otherUserId, channel) { + return channel.type === Constants.DM_CHANNEL && getUserIdFromChannelName(channel) === otherUserId; +} + export function importSlack(file, success, error) { var formData = new FormData(); formData.append('file', file, file.name); @@ -1142,3 +1242,20 @@ export function getChannelTerm(channelType) { return channelTerm; } + +export function getPostTerm(post) { + let postTerm = 'Post'; + if (post.root_id) { + postTerm = 'Comment'; + } + + return postTerm; +} + +export function isFeatureEnabled(feature) { + return PreferenceStore.getPreference(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, Constants.FeatureTogglePrefix + feature.label, {value: 'false'}).value === 'true'; +} + +export function isSystemMessage(post) { + return post.type && (post.type.lastIndexOf(Constants.SYSTEM_MESSAGE_PREFIX) === 0); +} diff --git a/web/sass-files/sass/partials/_access-history.scss b/web/sass-files/sass/partials/_access-history.scss index c8a0b28bd..dcb5f3c5f 100644 --- a/web/sass-files/sass/partials/_access-history.scss +++ b/web/sass-files/sass/partials/_access-history.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + .access-history__table { display: table; width: 100%; diff --git a/web/sass-files/sass/partials/_activity-log.scss b/web/sass-files/sass/partials/_activity-log.scss index f61c35a28..df5869b4c 100644 --- a/web/sass-files/sass/partials/_activity-log.scss +++ b/web/sass-files/sass/partials/_activity-log.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + @keyframes highlight { from { background: rgba(yellow, 0.5);} to { background: none;} diff --git a/web/sass-files/sass/partials/_admin-console.scss b/web/sass-files/sass/partials/_admin-console.scss index 206d5bfca..abba9de02 100644 --- a/web/sass-files/sass/partials/_admin-console.scss +++ b/web/sass-files/sass/partials/_admin-console.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + #admin_controller { > div { height: 100%; @@ -37,13 +39,22 @@ background: #333; padding: 10px 10px; margin: 1px 0 0; + .menu-icon--right { + top: 6px; + right: 12px; + } } } .menu-icon--right { - vertical-align: top; - padding: 5px 10px; - margin: -5px; - float: right; + position: absolute; + right: 10px; + top: 3px; + font-size: 18px; + font-weight: 600; + width: 20px; + height: 20px; + line-height: 20px; + text-align: center; .fa { font-size: 13px; right: -2px; @@ -60,7 +71,7 @@ li { > a { font-size: 13px; - padding: 5px 15px; + padding: 5px 35px 5px 15px; background: transparent; color: #bbb; &:hover { diff --git a/web/sass-files/sass/partials/_base.scss b/web/sass-files/sass/partials/_base.scss index ad4a65c00..61ad186e0 100644 --- a/web/sass-files/sass/partials/_base.scss +++ b/web/sass-files/sass/partials/_base.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + html, body { height: 100%; } @@ -85,6 +87,7 @@ img { a { word-break: break-word; color: $primary-color; + cursor: pointer; } a:focus, a:hover { @@ -115,12 +118,16 @@ a:focus, a:hover { .btn { &.btn-danger { color: #fff; - &:hover, &:active { + &:hover, &:active, &:focus { color: #fff; } } } +select { + -moz-appearance:none; +} + .form-control { @include border-radius(2px); &:focus { @@ -138,6 +145,7 @@ a:focus, a:hover { .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { cursor: auto; background: rgba(#fff, 0.1); + color: inherit; } .form-group { @@ -203,6 +211,7 @@ a:focus, a:hover { .alert { padding: 8px 12px; + @include border-radius(2px); } .emoji { diff --git a/web/sass-files/sass/partials/_colorpicker.scss b/web/sass-files/sass/partials/_colorpicker.scss index 431f9d8d0..7c79844ae 100644 --- a/web/sass-files/sass/partials/_colorpicker.scss +++ b/web/sass-files/sass/partials/_colorpicker.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + /*! * Bootstrap Colorpicker * http://mjolnic.github.io/bootstrap-colorpicker/ diff --git a/web/sass-files/sass/partials/_command-box.scss b/web/sass-files/sass/partials/_command-box.scss deleted file mode 100644 index 184fb55eb..000000000 --- a/web/sass-files/sass/partials/_command-box.scss +++ /dev/null @@ -1,35 +0,0 @@ -.command-box { - position: absolute; - background-color: #fff; - width: 100%; - border: $border-gray; - bottom: 38px; - overflow: auto; - z-index: 100; - @extend %popover-box-shadow; - .sidebar--right & { - bottom: 100px; - } -} - -.command-name { - position: relative; - width: 100%; - line-height: 24px; - padding: 5px 10px 8px; - z-index: 101; - font-size: 0.95em; - border-bottom: 1px solid #ddd; - &:hover { - background-color: #e8eaed; - } - .command__desc { - margin-left: 5px; - @include opacity(0.5); - line-height: normal; - } -} - -.command-desc { - color: #a7a8ab; -}
\ No newline at end of file diff --git a/web/sass-files/sass/partials/_content.scss b/web/sass-files/sass/partials/_content.scss index d86e225f3..da75bc61b 100644 --- a/web/sass-files/sass/partials/_content.scss +++ b/web/sass-files/sass/partials/_content.scss @@ -1,5 +1,7 @@ +@charset "UTF-8"; + .inner__wrap { - @include single-transition(transform, 0.5s, ease); + @include single-transition(all, 0.5s, ease); &.move--left { margin-right: 400px; .search-bar__container { @@ -18,18 +20,35 @@ margin-left: 220px; position: relative; background: #fff; - display: flex; - flex-direction: column; + @include display-flex; + @include flex-direction(column); .channel__wrap & { padding-top: 0; } } #post-create { - flex: 0 0 auto; + @include flex(0 0 auto); background: #fff; width: 100%; z-index: 3; } + +#archive-link-home { + @include flex(0 0 auto); + cursor: pointer; + padding: 10px 20px; + font-size: 13px; + + .fa { + @include opacity(0.7); + } + + a { + color: inherit; + } + +} + .post-list { .new-messages-hr { margin-top: 5px; diff --git a/web/sass-files/sass/partials/_error-bar.scss b/web/sass-files/sass/partials/_error-bar.scss index 8b7432bbb..0bfcbe0be 100644 --- a/web/sass-files/sass/partials/_error-bar.scss +++ b/web/sass-files/sass/partials/_error-bar.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + .error-bar { background-color: #0099FF; text-align:center; @@ -17,6 +19,7 @@ font-weight: 600; text-decoration: none; padding: 0 10px; + font-family: 'Open Sans', sans-serif; &:hover { color: #FFF; text-decoration: none; diff --git a/web/sass-files/sass/partials/_error.scss b/web/sass-files/sass/partials/_error.scss index ecdcc62d9..e09a751d2 100644 --- a/web/sass-files/sass/partials/_error.scss +++ b/web/sass-files/sass/partials/_error.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + body { &.error { .container-fluid { diff --git a/web/sass-files/sass/partials/_files.scss b/web/sass-files/sass/partials/_files.scss index d3ab3b9f8..2c341f61e 100644 --- a/web/sass-files/sass/partials/_files.scss +++ b/web/sass-files/sass/partials/_files.scss @@ -1,8 +1,11 @@ +@charset "UTF-8"; + .preview-container { position: relative; + margin: 1px 0 10px; width: 100%; - max-height: 110px; - height: 110px; + max-height: 100px; + height: 100px; white-space: nowrap; overflow-x: auto; overflow-y: hidden; @@ -10,7 +13,7 @@ display: inline-block; width: 120px; height: 100px; - margin: 7px 0 0 5px; + margin: 0 0 0 5px; vertical-align: top; position: relative; border: 1px solid #DDD; diff --git a/web/sass-files/sass/partials/_font-awesome.scss b/web/sass-files/sass/partials/_font-awesome.scss index 2dcdc2207..74580a7e8 100644 --- a/web/sass-files/sass/partials/_font-awesome.scss +++ b/web/sass-files/sass/partials/_font-awesome.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + /*! * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) diff --git a/web/sass-files/sass/partials/_footer.scss b/web/sass-files/sass/partials/_footer.scss index 239dd92c1..deed14d67 100644 --- a/web/sass-files/sass/partials/_footer.scss +++ b/web/sass-files/sass/partials/_footer.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + .footer-pane { background: #eee; padding-bottom: 1em; diff --git a/web/sass-files/sass/partials/_forms.scss b/web/sass-files/sass/partials/_forms.scss index 2d7b6cd26..a2d6eaf99 100644 --- a/web/sass-files/sass/partials/_forms.scss +++ b/web/sass-files/sass/partials/_forms.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + .form-horizontal { .modal-intro { margin: -10px 0 30px; @@ -43,3 +45,7 @@ margin: 10px 0 0; color: #999; } + +.disabled-input { + background-color: #dddddd !important; +} diff --git a/web/sass-files/sass/partials/_get-link.scss b/web/sass-files/sass/partials/_get-link.scss index a723a4c1f..d4365d1e6 100644 --- a/web/sass-files/sass/partials/_get-link.scss +++ b/web/sass-files/sass/partials/_get-link.scss @@ -1,6 +1,8 @@ +@charset "UTF-8"; + .copy-link-confirm { display: inline-block; float: left; padding: 4px 10px; - margin: 3px 0 0 10px; + margin: 1px 0 0 10px; }
\ No newline at end of file diff --git a/web/sass-files/sass/partials/_headers.scss b/web/sass-files/sass/partials/_headers.scss index 74a7cecff..e73680b38 100644 --- a/web/sass-files/sass/partials/_headers.scss +++ b/web/sass-files/sass/partials/_headers.scss @@ -1,7 +1,7 @@ +@charset "UTF-8"; + #channel-header { - padding: 3px 0; - height: 58px; - flex: 0 0 58px; + @include flex(0 0 56px); } .row { &.header { @@ -44,9 +44,9 @@ text-overflow: ellipsis; margin-top: 2px; max-height: 45px; - .markdown-inline-img { - max-height: 45px - } + .markdown-inline-img { + max-height: 45px + } } &.popover { white-space: normal; @@ -56,9 +56,9 @@ } .channel-intro { - padding-bottom:5px; - margin: 0 1em 35px; - max-width: 850px; + margin: 0 auto 35px; + padding: 0 1em 5px; + max-width: 1000px; border-bottom: 1px solid lightgrey; .intro-links { margin: 0 1.5em 10px 0; @@ -96,7 +96,7 @@ .sidebar--left, .sidebar--menu { .team__header { position: relative; - padding: 10px; + padding: 9px 10px; @include legacy-pie-clearfix; &:before { @include single-transition(all, 0.05s, linear); @@ -124,7 +124,7 @@ .navbar-right { font-size: 0.85em; position: absolute; - top: 11px; + top: 10px; right: 22px; z-index: 5; .dropdown-toggle { @@ -216,10 +216,9 @@ width:100%; border-left: none; font-size: 14px; - line-height: 50px; + line-height: 56px; #member_popover { - margin-right: 5px; - width: 45px; + width: 50px; color: #999; cursor: pointer; .fa { @@ -294,18 +293,22 @@ } .channel-header__links { - height: 32px; - vertical-align: top; - display: inline-block; - width: 15px; - margin: 9px 6px 3px 0; - a { - height: 100%; - display: block; - } - svg { - vertical-align: top; - margin-top: 8px; - fill: inherit; + font-family: 'Open Sans', sans-serif; + height: 30px; + width: 24px; + line-height: 26px; + margin-right: 10px; + font-size: 22px; + > a { + color: inherit; + text-decoration: none; + @include opacity(0.6); + @include single-transition(all, 0.1s, ease-in); + &:hover { + @include opacity(1); + } + &:focus { + color: inherit; + } } } diff --git a/web/sass-files/sass/partials/_loading.scss b/web/sass-files/sass/partials/_loading.scss index ab8601df6..e9863ddbd 100644 --- a/web/sass-files/sass/partials/_loading.scss +++ b/web/sass-files/sass/partials/_loading.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + .loading-screen { display: table; width: 100%; diff --git a/web/sass-files/sass/partials/_markdown.scss b/web/sass-files/sass/partials/_markdown.scss index 8b0a32704..9ad15f91a 100644 --- a/web/sass-files/sass/partials/_markdown.scss +++ b/web/sass-files/sass/partials/_markdown.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + .markdown__heading { font-weight: 700; line-height: 1.5; @@ -9,14 +11,29 @@ } } #post-list { - .markdown-inline-img { - -moz-force-broken-image-icon: 1; - max-height: 500px; - height: 500px; - } + .markdown-inline-img { + -moz-force-broken-image-icon: 1; + max-height: 500px; + height: 500px; + } +} + +.post-body--code { + position: relative; +} + +.post-body--code__language { + position: absolute; + top: 0; + right: 0; + color: #fff; + background: #21586D; + padding: 4px 10px 5px 10px; + font-size: 13px; + opacity: 0.7; } -.post-body { +.post__body { hr { height: 4px; padding: 0; @@ -25,6 +42,9 @@ border: 0 none; @include opacity(0.2); } + code { + white-space: pre; + } } .markdown__table { background: #fff; diff --git a/web/sass-files/sass/partials/_mentions.scss b/web/sass-files/sass/partials/_mentions.scss index f59cefbc6..df6dd40a2 100644 --- a/web/sass-files/sass/partials/_mentions.scss +++ b/web/sass-files/sass/partials/_mentions.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + .mention { color: #fff; background: $primary-color; @@ -7,26 +9,9 @@ @include border-radius(3px); } -.mentions--top { - position: absolute; - z-index: 1060; - @extend %popover-box-shadow; - .mentions-box { - width: 100%; - height: 100%; - position: absolute; - background-color: #fff; - border: $border-gray; - overflow-x: hidden; - overflow-y: scroll; - bottom: 0; - } -} - .mentions-name { position:relative; width:100%; - background-color:#fff; height:36px; padding:2px; z-index:101; @@ -57,4 +42,4 @@ .mention-highlight { background-color:#fff2bb; -}
\ No newline at end of file +} diff --git a/web/sass-files/sass/partials/_modal.scss b/web/sass-files/sass/partials/_modal.scss index 6270c8608..6f70e502f 100644 --- a/web/sass-files/sass/partials/_modal.scss +++ b/web/sass-files/sass/partials/_modal.scss @@ -1,8 +1,11 @@ +@charset "UTF-8"; + #channel_members_modal .modal-body { min-height: 110px; } .modal-body { padding: 20px 15px; + overflow: auto; } .modal { width: 100%; @@ -32,6 +35,9 @@ text-align: right; padding-right: 0; } + .team-member-list { + width: 100%; + } .remove__member { float: right; color: #999; @@ -47,9 +53,6 @@ margin-left: auto; margin-right: auto; } - .modal-body { - overflow: auto; - } .modal-push-down { margin-top: 5%; } @@ -95,6 +98,7 @@ background: rgba(0, 0, 0, 0.1); } span { + font-family: 'Open Sans', sans-serif; line-height: 10px; } } @@ -182,6 +186,7 @@ padding: 8px 15px 8px 8px; width: 80px; vertical-align: middle; + position: relative; &.lg { width: 110px; } @@ -195,21 +200,35 @@ width:100%; height: 100%; margin: 0 auto; + max-width: 100%; + + .modal-body { + @include clearfix; + height: 100%; + display: table; + table-layout: fixed; + width: 100%; + max-height: 100%; + } + .image-wrapper { position: relative; max-width: 90%; - min-height: 100px; - min-width: 320px; @include border-radius(3px); - display: table; - margin: 0 auto; + display: table-cell; + vertical-align: middle; + text-align: center; + width: 100%; + &:hover { @include border-radius(3px 3px 0 0); } + &.default { width: 100%; height: 80%; } + .modal-close { background: url("../images/close.png") no-repeat; @include background-size(100% 100%); @@ -225,24 +244,31 @@ transition: opacity 0.6s; cursor: pointer; z-index: 9999; + &.modal-close--show { @include opacity(1); } + } - > a { + + > div { + min-height: 100px; + min-width: 320px; background: #FFF; - display: table-cell; - vertical-align: middle; + display: inline-block; position: relative; &:hover .file-playback-controls.stop { @include opacity(1); } + } + img { max-width: 100%; max-height: 100%; } + .spinner.file__loading { z-index: 2; position: absolute; @@ -259,7 +285,6 @@ height: 100%; padding: 0; border: none; - display: table; } .image-body { vertical-align: middle; @@ -356,9 +381,9 @@ .more-modal { .user-list { + overflow-y: auto; + overflow-x: hidden; margin-top: 10px; - overflow: auto; - -webkit-overflow-scrolling: touch; max-height: 500px; position: relative; } @@ -369,12 +394,12 @@ .modal-body { padding: 10px 0 20px; - @include clearfix; + overflow-x: hidden; } .filter-row { margin-top: 10px; - padding: 0 15px; + @include clearfix; } .member-count { @@ -387,3 +412,11 @@ @include opacity(0.7); } } + +.modal-body.edit-modal-body { + overflow: visible; + + .suggestion-content { + max-height: 150px; + } +} diff --git a/web/sass-files/sass/partials/_navbar.scss b/web/sass-files/sass/partials/_navbar.scss index 2e78a8728..28ab61ec1 100644 --- a/web/sass-files/sass/partials/_navbar.scss +++ b/web/sass-files/sass/partials/_navbar.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + #navbar{ input { margin: 0px 5px 0px 2px; @@ -33,6 +35,12 @@ background: #fff; width: 21px; } + .glyphicon-search { + top: -1px; + } + .icon--white { + color: #fff; + } &:hover, &:active, &:focus { background: inherit; } @@ -96,9 +104,9 @@ } .badge-notify { - background:red; + background: red; position: absolute; - right: -5px; - top: -5px; + left: 4px; + top: 3px; z-index: 100; } diff --git a/web/sass-files/sass/partials/_oauth.scss b/web/sass-files/sass/partials/_oauth.scss index 35d3a95e3..2bd9a0de5 100644 --- a/web/sass-files/sass/partials/_oauth.scss +++ b/web/sass-files/sass/partials/_oauth.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + .oauth-prompt { background: #fff; border: 1px solid #ddd; diff --git a/web/sass-files/sass/partials/_perfect-scrollbar.scss b/web/sass-files/sass/partials/_perfect-scrollbar.scss index f38c6062f..0e0967d81 100755 --- a/web/sass-files/sass/partials/_perfect-scrollbar.scss +++ b/web/sass-files/sass/partials/_perfect-scrollbar.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + .ps-container { overflow: hidden !important; } .ps-container.ps-active-x > .ps-scrollbar-x-rail, .ps-container.ps-active-y > .ps-scrollbar-y-rail { diff --git a/web/sass-files/sass/partials/_popover.scss b/web/sass-files/sass/partials/_popover.scss index 7d98935d5..bc55b7ff7 100644 --- a/web/sass-files/sass/partials/_popover.scss +++ b/web/sass-files/sass/partials/_popover.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + .channel-header__info .popover-content { max-height: 250px; overflow: auto; @@ -94,6 +96,8 @@ } .popover-content { + max-height: 500px; + overflow: auto; padding: 3px 13px; } diff --git a/web/sass-files/sass/partials/_post.scss b/web/sass-files/sass/partials/_post.scss index ae02ccb4c..3ec1c4434 100644 --- a/web/sass-files/sass/partials/_post.scss +++ b/web/sass-files/sass/partials/_post.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + .custom-textarea { white-space:pre-wrap; word-wrap:break-word; @@ -47,7 +49,28 @@ body.ios { .textarea-wrapper { position:relative; - min-height:37px; + .textbox-preview-area { + position: absolute; + z-index: 2; + top: 0; + left: 0; + box-shadow: none; + white-space: normal; + } + .textbox-preview-link, .textbox-help-link { + position: absolute; + z-index: 3; + bottom: -23px; + font-size: 13px; + cursor: pointer; + } + .textbox-preview-link { + right: 45px; + } + .textbox-help-link { + right: 0; + } + min-height:36px; } .date-separator, .new-separator { @@ -183,9 +206,10 @@ body.ios { } #post-list { - flex: 1 1 auto; + @include flex(1 1 auto); position: relative; overflow-y: hidden; + .post-list-holder-by-time { background: #fff; overflow-y: scroll; @@ -204,31 +228,7 @@ body.ios { display: inline; } } - .post-list__table { - display: table; - table-layout: fixed; - width: 100%; - min-height: 100%; - height: 100%; - .post-list__content { - display: table-cell; - vertical-align: bottom; - div { - &:last-child { - .post { - .post-header { - .post-header-col.post-header__reply { - .dropdown-menu { - top: auto; - bottom: 25px; - } - } - } - } - } - } - } - } + .more-messages-text { margin-top: 2px; margin-bottom: 5px; @@ -249,13 +249,13 @@ body.ios { .post-create__container { form { width: 100%; - padding: 0 1em; - margin: 0; + padding: 0.5em 14px 0; + margin: 0 auto; + max-width: 1028px; } .post-create-body { - max-width: 850px; - padding: 0 0 2px; position: relative; + padding: 0 0 2px; .post-body__cell { vertical-align: top; position: relative; @@ -286,14 +286,14 @@ body.ios { .custom-textarea { padding-top: 8px; padding-right: 28px; - max-height: 160px; + max-height: 162px !important; overflow: auto; line-height: 1.5; } .textarea-div { padding-top: 8px; padding-right: 30px; - max-height: 160px; + max-height: 163px !important; overflow: auto; line-height: 1.5; } @@ -317,107 +317,369 @@ body.ios { } .post-create-footer { @include clearfix; - padding: 0; - .has-error { - .control-label { - font-weight: normal; - margin-bottom: 0; - } + padding: 3px 0 0 0; + font-size: 13px; + .control-label { + font-weight: normal; + margin-bottom: 0; + top: -5px; + position: relative; } .msg-typing { - min-height: 20px; - line-height: 18px; - display: inline-block; - font-size: 13px; + min-height: 25px; + display: block; @include opacity(0.7); } } } +.post-list__table { + display: table; + table-layout: fixed; + width: 100%; + min-height: 100%; + height: 100%; + .post-list__content { + display: table-cell; + vertical-align: bottom; + > div:last-child { + .dropdown-menu { + top: auto; + bottom: 25px; + } + } + } +} + .post { word-wrap: break-word; - padding: 8px 1em; + padding: 8px 1em 0; position: relative; max-width: 100%; @include legacy-pie-clearfix; + &:hover { - .post-header .post-header-col.post-header__reply { - .dropdown, .comment-icon__container { - @include opacity(1); - } + .dropdown, .comment-icon__container { + visibility: visible; } - background: #f5f5f5; + .permalink-icon { + visibility: visible; + } + } + + &.post--highlight { + background-color: beige; + } + + ul { + margin: 0; + padding: 0; } - &.current--user { - .post-body { - @include border-radius(4px); - background: rgba(#000, 0.05); + + + p { + margin: 0 0 1em; + line-height: 1.6em; + font-size: 0.97em; + white-space: pre-wrap; + + &:last-child { + margin-bottom: 0.5em; + } + + } + + span { + + p:last-child { + margin-bottom: 0.5em; } + } - &.post--comment { - &.other--root { - .post-comment { - border-left: 4px solid #EEE; - padding: 4px 0 6px 10px; - margin: 0 0 0 30px; - @include border-radius(0 4px 4px 0); + + &.post--root { + + .comment-icon__container { + visibility: visible; + } + + } + + &.same--root { + + &.same--user { + padding: 0 1em; + + &:hover { + + .post__time { + + &:before { + @include opacity(0.5); + } + + } + } - .post-body { - background: transparent; + + .post__header { margin: 0; - padding: 1px 0px; + height: 0; + + .col__name { + display: none; + } + + .col__reply { + top: 6px; + } + + } + + .post__time { + top: 24px; + } + + .post__time { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-size: 0; + position: absolute; + top: -3px; + left: 17px; + width: 30px; + height: 30px; + line-height: 37px; + + &:before { + @include opacity(0); + content: "\f017"; + content: "\f017"; + font-size: 19px; + } + + } + + } + + &.post--comment { + + .post__link { + display: none; } - &.current--user { - .post-comment { - background: #f5f5f5; + + .post__img { + img { + display: none; } } + } - &.same--root { - .post-body { - @include border-radius(0 4px 4px 0); + + &.post--comment { + .post__body { + border-left: 4px solid #ddd; } } + } - &.same--root { + + &.other--root { + .comment-icon__container { - @include opacity(0); + + &.icon--show { + visibility: visible; + } + } - div.post-profile-img__container { - height: 1px; - .post-profile-img { - visibility: hidden; + + &.post--comment { + + .post__header { + + .col__reply { + top: 53px; + } + } + } - .post__content { - padding: 0; + + } + + .post__content { + margin: 0 auto; + position: relative; + max-width: 1000px; + display: table; + width: 100%; + table-layout: fixed; + + > div { + display: table-cell; + vertical-align: top; } - .post-body { - border-left: 4px solid #EEE; - width: 570px; - margin-left: 30px; - padding-left: 10px; - .post-link { - display: none; + + } + + .post__header { + padding: 0; + list-style: none; + margin-bottom: 2px; + + li { + display: inline-block; + } + + .col__name { + margin-right: 7px; + font-weight: 600; + } + + .col__reply { + position: absolute; + right: 0; + top: 30px; + width: 65px; + } + + .permalink-popover { + min-width: 0; + + .popover-content { + padding: 5px; } + + .form-control, .btn { + font-size: 13px; + height: 30px; + padding: 0 8px; + line-height: 30px; + } + } + } - .post-create-footer { - padding: 0; + + .post__img { + width: 46px; + img { + width: 36px; + height: 36px; + vertical-align: inherit; + @include border-radius(50px); + } } - p { - margin: 0 0 1em; - line-height: 1.6em; - font-size: 0.97em; - white-space: pre-wrap; + + .dropdown { + display: inline-block; + visibility: hidden; + position: absolute; + right: 0; + top: -1px; + + .dropdown-menu { + right: 0; + left: auto; + min-width: 130px; + padding: 2px 0; + + li { + display: block; + + } + + a { + padding: 5px 15px; + } + + } + } - span { - p:last-child { - margin-bottom: 0.5em; + .post__dropdown { + &:after { + content: '[...]'; + top: -1px; + position: relative; } } + .post__body { + word-wrap: break-word; + padding: 0.2em 0.5em 0em; + @include legacy-pie-clearfix; + width: calc(100% - 75px); + + img { + max-height: 400px; + } + + ul { + padding: 5px 0 0 20px; + } + + ul, ol { + p { + margin-bottom: 0; + } + li ul, li ol { + padding: 0 0 0 20px + } + + li.list-item--task-list ul, li.list-item--task-list ol { + margin-left: 20px; + } + + li.list-item--task-list ul { + padding-left: 0; + } + + li:not(.list-item--task-list) li.list-item--task-list, li:not(.list-item--task-list) li.list-item--task-list ~ li { + margin-left: -20px; + } + + li input[type="checkbox"]:disabled { + vertical-align: top; + cursor: default; + } + } + + ul li.list-item--task-list, ul li.list-item--task-list ~ li { + list-style-type: none; + } + + ul li.list-item--task-list ~ li:not(.list-item--task-list) { + text-indent: 3px; + + &:before { + content: "â¦"; + margin-right: 8px; + } + } + } + + .post__link { + margin: 2px 0 5px; + font-size: 13px; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + } + + .post__time { + font-size: 13px; + } + + .post__time, &.post--system .post__body { + @include opacity(0.6); + } + .post-loading-gif { height:10px; width:10px; @@ -432,9 +694,21 @@ body.ios { color: #999; } + .permalink-icon { + display: inline-block; + color: $primary-color; + visibility: hidden; + } + .comment-icon__container { - margin-left: 7px; fill: $primary-color; + display: inline-block; + visibility: hidden; + + &.icon--visible { + visibility: visible; + } + .comment-icon { display: inline-block; top: 3px; @@ -442,122 +716,13 @@ body.ios { margin-right: 3px; fill: inherit; } + path { fill: inherit; } + } - > div { - &.post-profile-img__container { - float: left; - .post-profile-img { - width: 36px; - height: 36px; - margin-right: 10px; - vertical-align: inherit; - @include border-radius(50px); - } - } - &.post__content { - padding-left: 46px; - max-width: 100%; - @include legacy-pie-clearfix; - } - } - .post-image__columns { - @include legacy-pie-clearfix; - padding-bottom: 5px; - } - .post-info--hidden { - display: none; - } - .post-body { - position: relative; - z-index: 1; - max-width: 100%; - width: 600px; - float: left; - word-wrap: break-word; - padding: 0.3em 0.5em 0.1em; - margin: -0.3em 0 0; - .post-link { - @include clearfix; - text-overflow: ellipsis; - white-space: nowrap; - cursor: pointer; - } - .post-body--code { - font-size: .97em; - position:relative; - .post-body--code__language { - position: absolute; - right: 0; - background: #fff; - cursor: default; - padding: 0.3em 0.5em 0.1em; - border-bottom-left-radius: 4px; - @include opacity(.3); - } - code { - white-space: pre; - } - } - } - .create-reply-form-wrap { - width: 100%; - margin-top: 5px; - form { - padding: 0; - } - .comment-btn { - display: none; - } - } - .post-header { - position: relative; - list-style-type: none; - margin: 0 0 1px; - padding-left: 0px; - &.post-header-post { - position: relative; - z-index: 1; - width: 200px; - text-align: right; - float: left; - padding-right: 15px; - } - &.post-info { - .post-profile-time { - width: 150px; - display: inline-block; - margin-left: 50px; - } - } - .post-header-col { - vertical-align: top; - display: inline-block; - margin-right: 10px; - &.post-header__reply { - min-width: 70px; - .dropdown-menu { - right: 0; - left: auto; - } - .dropdown { - min-width: 18px; - display: inline-block; - @include opacity(0); - } - .dropdown-toggle:after { - content: '[...]'; - } - } - } - .post-profile-time { - color: #a8adb7; - } - } - .post-comment { - } + .web-embed-data { padding: 2px 0 0 10px; background: #f9f9f9; @@ -585,22 +750,6 @@ body.ios { display: none; } } - .msg-typing { - margin-top: 2px; - margin-left: 5px; - color: #a8adb7; - } - .post-grey { - color:lightgrey; - } - .post-reply { - clear: both; - width: 100%; - word-break: break-word; - .btn-file { - width: 40px; - } - } } .bot-indicator { @@ -613,79 +762,91 @@ body.ios { } .attachment { - .attachment__content { - border-width: 1px; - border-style: solid; - border-radius: 4px; - padding: 2px 5px; - margin: 0 0 5px 0; - } - .attachment__thumb-pretext { - border: 0 none; - background: transparent; - } - .attachment__container { - border-left-width: 4px; - border-left-style: solid; - padding: 2px 0 2px 10px; - &.attachment__container--good { - border-left-color: #00C100; - } - &.attachment__container--warning { - border-left-color: #DEDE01; - } - &.attachment__container--danger { - border-left-color: #E40303; - } - } - .attachment__body { - float: left; - width: 80%; - padding-right: 5px; - &.attachment__body--no_thumb { - width: 100%; - } - } - .attachment__text p:last-of-type { - display: inline-block; - } - .attachment__thumb-pretext { - margin-left: 5px; - } - .attachment__title { - margin: 5px 0; - padding: 0; - line-height: 16px; - font-size: 16px; - a { - font-size: 16px; - } - } - .attachment__author-icon { - @include border-radius(50px); - margin-right: 5px; - width: 14px; - height: 14px; - } - .attachment__image { - max-width: 100%; - margin-bottom: 1em; - } - .attachment__thumb-container { - width: 20%; - float: right; - img { - max-height: 75px; - max-width: 100%; - } - } - .attachment___fields { - width: 100%; - .attachment___field-caption { - font-weight: 700; - } - .attachment___field p { - margin: 0; - } - } -}
\ No newline at end of file + .attachment__content { + border-width: 1px; + border-style: solid; + border-radius: 4px; + padding: 2px 5px; + margin: 0 0 5px 0; + } + .attachment__thumb-pretext { + border: 0 none; + background: transparent; + } + .attachment__container { + border-left-width: 4px; + border-left-style: solid; + padding: 2px 0 2px 10px; + &.attachment__container--good { + border-left-color: #00C100; + } + &.attachment__container--warning { + border-left-color: #DEDE01; + } + &.attachment__container--danger { + border-left-color: #E40303; + } + } + .attachment__body { + float: left; + width: 80%; + padding-right: 5px; + overflow-x: auto; + overflow-y: hidden; + &.attachment__body--no_thumb { + width: 100%; + } + } + .attachment__text p:last-of-type { + display: inline-block; + } + .attachment__thumb-pretext { + margin-left: 5px; + } + .attachment__title { + margin: 5px 0; + padding: 0; + line-height: 16px; + height: 22px; + font-size: 16px; + a { + font-size: 16px; + } + } + .attachment__author-icon { + @include border-radius(50px); + margin-right: 5px; + width: 14px; + height: 14px; + } + .attachment__image { + max-width: 100%; + margin-bottom: 1em; + } + .attachment__thumb-container { + width: 20%; + float: right; + img { + max-height: 75px; + max-width: 100%; + } + } + .attachment___fields { + width: 100%; + .attachment___field-caption { + font-weight: 700; + } + .attachment___field p { + margin: 0; + } + } +} + +.permalink-text { + overflow: hidden; +} + +.permalink-popover { + min-width: 320px; + margin-left: 50px !important; +} diff --git a/web/sass-files/sass/partials/_post_right.scss b/web/sass-files/sass/partials/_post_right.scss index 91f9355de..fa52e2972 100644 --- a/web/sass-files/sass/partials/_post_right.scss +++ b/web/sass-files/sass/partials/_post_right.scss @@ -1,4 +1,9 @@ +@charset "UTF-8"; + .post-right__container { + @include display-flex; + @include flex-direction(column); + height: 100%; .post-right-root-message { padding: 1em 1em 0; @@ -6,35 +11,60 @@ .post-right-comments-container { position: relative; - padding: 0; + padding: 0.7em 0 0; } .post { + &.post--root { - padding: 1em 1em 0; - margin: 0 0 1em; - hr { - border-color: #DDD; - margin: 1em 0 0 0; + padding-bottom: 0; + } + + .post__header { + + .col__reply { + top: 0; } + + } + + .post__body { + width: 100%; } + + } + + hr { + margin-bottom: 0; } .post-create__container { + width: 100%; margin-top: 10px; .textarea-wrapper { min-height: 100px; } + .btn { + margin-bottom: 10px; + } .custom-textarea { min-height: 100px; } .msg-typing { @include opacity(0.7); float: left; - padding-top: 17px; + margin-top: 3px; + font-size: 13px; + line-height: 20px; + min-width: 1px; + display: block; + height: 20px; + max-width: 200px; + @include clearfix; } .post-create-footer { - padding-top: 10px; + width: 100%; + padding: 5px 0 10px; } .post-right-comments-upload-in-progress { padding: 6px 0; @@ -93,8 +123,14 @@ .post-right__scroll { position: relative; - overflow: scroll; + overflow: auto; -webkit-overflow-scrolling: touch; + @include flex(1 1 auto); + + .preview-container { + margin-top: 5px; + } + } .post-right-comment-time { diff --git a/web/sass-files/sass/partials/_print.scss b/web/sass-files/sass/partials/_print.scss Binary files differnew file mode 100644 index 000000000..143ec2915 --- /dev/null +++ b/web/sass-files/sass/partials/_print.scss diff --git a/web/sass-files/sass/partials/_responsive.scss b/web/sass-files/sass/partials/_responsive.scss index 339412b45..66aaede8d 100644 --- a/web/sass-files/sass/partials/_responsive.scss +++ b/web/sass-files/sass/partials/_responsive.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + @media screen and (max-width: 1800px) { .inner__wrap { &.move--left { @@ -8,95 +10,10 @@ } } } - .post { - &.same--root { - margin-left: 60px; - padding-left: 10px; - border-left: 4px solid #EEE; - div.post-profile-img__container { - .post-profile-img { - display: none; - } - } - .post__content { - width: 825px; - } - .post-body { - width: 736px; - border: none; - margin: 3px 0 0; - } - } - &.post--comment { - &.other--root { - .post-comment { - margin-left: 0; - } - } - &.same--root { - margin-top: 10px; - margin-bottom: 10px; - } - } - .post-body { - float: none; - width: 750px; - margin: 3px 0 0; - } - .post__content { - width: 920px; - } - .post-header { - &.post-header-post { - z-index: inherit; - width: auto; - float: none; - text-align: left; - padding-right: 0; - } - &.post-info { - display: none; - float: none; - } - .post-header-col { - &.post-header__reply { - float: right; - text-align: right; - .reply-link { - margin-right: 0; - } - .dropdown { - margin-left: 10px; - } - } - } - .post-info--hidden { - display: inline; - .post-info { - display: inline; - .tooltip { - margin-top: -25px; - margin-left: 40px; - } - .post-profile-time { - margin: 0; - } - } - } - } - } } } } @media screen and (max-width: 1440px) { - .post-create__container { - .post-create-body { - max-width: 810px; - } - } - .channel-intro { - max-width: 810px; - } .date-separator, .new-separator { &.hovered--comment { &:before, &:after { @@ -104,78 +21,6 @@ } } } - .post { - &.same--root { - margin-left: 60px; - padding-left: 10px; - border-left: 4px solid #EEE; - div.post-profile-img__container { - .post-profile-img { - display: none; - } - } - .post__content { - width: 825px; - } - .post-body { - width: 736px; - border: none; - margin: 3px 0 0; - } - } - &.post--comment { - &.other--root { - .post-comment { - margin-left: 0; - } - } - &.same--root { - margin-top: 5px; - margin-bottom: 5px; - } - } - .post__content { - width: 880px; - } - .post-header { - &.post-header-post { - z-index: inherit; - width: auto; - float: none; - text-align: left; - padding-right: 0; - } - &.post-info { - display: none; - float: none; - } - .post-header-col { - &.post-header__reply { - float: right; - margin: 0; - } - } - .post-info--hidden { - display: inline; - .post-info { - display: inline; - .tooltip { - margin-top: -25px; - margin-left: 40px; - } - .post-profile-time { - width: auto; - margin: 0; - } - } - } - } - .post-body { - margin: 3px 0 0; - float: none; - width: 750px; - } - } } @media screen and (max-width: 1140px) { @@ -204,83 +49,129 @@ } } } - .post { - .post__content { - width: 100%; +} + +@media screen and (max-width: 960px) { + + .sidebar--right { + width: 400px; + z-index: 5; + right: 0; + @include translateX(100%); + + &.move--left { + @include translateX(0); } - .post-header { - .post-header-col { - &.post-header__reply { - .reply-link { - margin-right: 0; - } - .dropdown { - margin-left: 10px; - } - } - } + + } + + .inner__wrap { + + &.move--left { + margin-right: 0; } + } -} -@media screen and (max-width: 960px) { .post { - .post-header .post-header-col.post-header__reply { - .comment-icon__container__hide { - display: none; - } - .dropdown { - @include opacity(1); + + .post-list__content & { + + &:hover { + background: transparent; + + .comment-icon__container { + visibility: hidden; + + &.icon--show { + visibility: visible; + } + + } + } - .comment-icon__container__show { - @include opacity(1); + + } + + .dropdown { + visibility: visible; + } + + .post__dropdown { + line-height: 9px; + text-decoration: none; + width: 20px; + display: inline-block; + text-align: center; + height: 20px; + + &:after { + font-size: 20px; + content: '...'; + top: -3px; } + } + } + +} + +@media screen and (max-width: 768px) { + .signup-team__container { font-size: 1em; } + .post { - .post-header { - .post-header-col { - &.post-header__reply { - text-align: right; - display: inline-block; + + .post__header { + + .col__name { + pointer-events: none; + } + + } + + &.same--root { + + &.same--user { + + .post__time { + display: none; } + + } + + } + + .post__img { + width: 40px; + + img { + width: 32px; + height: 32px; } } - } -} -@media (min-width: 992px){ - .modal-lg { - width: 700px; } -} -@media screen and (min-width: 768px) { - .second-bar { - display: none; + .post-image__column { + width: 200px; + height: 95px; } -} -@media screen and (max-height: 640px) { - .signup-team__container { - padding: 30px 0; - margin-bottom: 30px; - font-size: 0.9em; - .signup-team__name { - font-size: 2em; + .textarea-wrapper { + .textbox-preview-link, .textbox-help-link { + display: none; } } -} -@media screen and (max-width: 768px) { .form-control { &.min-height { min-height: 100px; } } - .gif-div { + .img-div { max-width: 100%; } .tip-div { @@ -352,31 +243,6 @@ } } } - .post { - &.same--root { - margin-left: 25px; - } - &:hover { - background: none; - .post-header .post-header-col.post-header__reply { - .dropdown-toggle:after { - content: '...'; - } - } - } - &.post--comment { - &.other--root { - &:hover { - background: none; - } - } - } - .post-header .post-header-col.post-header__reply { - .dropdown-toggle:after { - content: '...'; - } - } - } .signup-team__container { padding: 30px 0; margin-bottom: 30px; @@ -441,6 +307,9 @@ } } } + .section-min:hover { + background: none; + } .no-padding--left { padding-left: 15px; } @@ -450,7 +319,8 @@ } .modal-header { display: block; - position: fixed; + position: absolute; + top: 0; width: 100%; z-index: 5; } @@ -503,12 +373,23 @@ .post-create__container { .post-right__container & { padding: 0 1em; + .msg-typing { + display: none; + } } form { - padding: 0; + padding: 0.5em 0; + } + .post-create-footer { + padding: 0 1em; + .msg-typing { + display: none; + } + .control-label { + top: 0; + } } .post-create-body { - padding-bottom: 10px; display: table; width: 100%; .post-body__cell { @@ -532,11 +413,9 @@ display: table-cell; } } - .post-create-footer .msg-typing { - display: none; - } } .preview-container { + margin: 5px 0 0; .preview-div { margin-top: 0; } @@ -564,6 +443,7 @@ #navbar { .navbar-default { .navbar-header { + float: none; margin: 0 -15px; .dropdown__icon { background: url("../images/dropdown-icon.png"); @@ -609,7 +489,7 @@ } .search-bar__container { padding: 0; - height: 45px; + @include flex(0 0 44px); background: $primary-color; color: #fff; &.focused { @@ -643,7 +523,8 @@ padding: 0 10px 0 31px; background: rgba(black, 0.2); @include border-radius(3px); - color: inherit; + color: #444; + background: #fff; } } } @@ -668,15 +549,15 @@ &.move--right { @include translate3d(0, 0, 0); } + > div { + padding-bottom: 0; + } .nav-pills__unread-indicator-bottom { bottom: 10px; } .badge { top: 13px; } - > div { - padding-bottom: 65px; - } .team__header { display: none; @include clearfix; @@ -738,6 +619,12 @@ .sidebar--right__close { display: none; } + .sidebar-right__body { + height: calc(100% - 44px); + } + } + .search-items-container { + height: calc(100% - 44px); } .inner__wrap { &.move--right { @@ -774,8 +661,10 @@ .modal { .modal-image { .image-wrapper { - font-size: 12px; - min-width: 250px; + > div { + font-size: 12px; + min-width: 250px; + } .modal-close { @include opacity(1); } @@ -805,24 +694,6 @@ } } - .post { - .post-profile-img__container { - display: none; - } - &.post--comment { - &.other--root { - .post-comment { - margin-left: 11px; - } - } - } - > div { - &.post__content { - padding: 0; - } - } - } - .post-comments { padding: 9px 21px 10px 10px !important; } @@ -903,3 +774,27 @@ } } } + + +@media (min-width: 992px){ + .modal-lg { + width: 700px; + } +} + +@media screen and (min-width: 768px) { + .second-bar { + display: none; + } +} + +@media screen and (max-height: 640px) { + .signup-team__container { + padding: 30px 0; + margin-bottom: 30px; + font-size: 0.9em; + .signup-team__name { + font-size: 2em; + } + } +}
\ No newline at end of file diff --git a/web/sass-files/sass/partials/_search.scss b/web/sass-files/sass/partials/_search.scss index 73b69c866..eceeb9a8c 100644 --- a/web/sass-files/sass/partials/_search.scss +++ b/web/sass-files/sass/partials/_search.scss @@ -1,8 +1,11 @@ +@charset "UTF-8"; + #channel-header .search-bar__container { - padding: 8px 8px 8px 0; + padding: 0 8px 0 3px; } .search-bar__container { - padding: 12px 8px 12px 0; + padding: 12px 8px 0 0; + @include flex(0 0 56px); } .search__clear { display: none; @@ -37,6 +40,7 @@ font-size: 14px; @include opacity(0.5); display: none; + color: #777; } .search__form { .search-bar__container & { @@ -71,8 +75,10 @@ .search-items-container { position: relative; - overflow: scroll; + overflow: auto; -webkit-overflow-scrolling: touch; + @include flex(1 1 auto); + height: calc(100% - 56px); } .search-results-header { @@ -91,16 +97,37 @@ border-top: $border-gray; padding: 10px 1em; margin: 0; - cursor: pointer; + &:first-child { border: none; } + .search-channel__name { font-weight: 600; margin: 0 0 10px 0; } } +.search-item__jump { + position: absolute; + right: 0; + top: 0px; + font-size: 13px; + @include opacity(0.8); + + &:hover { + @include opacity(1); + } + +} + +.search-item__comment { + position: absolute; + right: 0; + margin-right: 35px; + top: 0; +} + .search-item-time { color: #a8adb7; } diff --git a/web/sass-files/sass/partials/_settings.scss b/web/sass-files/sass/partials/_settings.scss index b304450bc..473ffb28d 100644 --- a/web/sass-files/sass/partials/_settings.scss +++ b/web/sass-files/sass/partials/_settings.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + @import "access-history"; @import "activity-log"; @import "webhooks"; @@ -37,6 +39,7 @@ label { font-weight: 600; } + .no-padding--left { padding-left: 0; } @@ -64,6 +67,10 @@ } } } + .profile-img { + width: 128px; + height: 128px; + } .settings-table { display: table; table-layout: fixed; @@ -74,7 +81,6 @@ } .nav { position: fixed; - top: 57px; width: 179px; &.absolute { position: absolute; @@ -129,9 +135,10 @@ .input-group-addon { padding: 4px 5px; width: 40px; - img { - border: 1px solid rgba(black, 0.15); - } + } + img { + border: 1px solid rgba(black, 0.15); + width: 29px; } } .premade-themes { @@ -176,7 +183,7 @@ text-align: right; margin-bottom: 5px; .fa { - margin-right: 7px; + margin-right: 5px; font-size: 12px; @include opacity(0.5); display: none; @@ -307,18 +314,36 @@ .member-name { font-weight:500; display: block; + max-width: 80%; + overflow: hidden; + text-overflow: ellipsis; } .member-email { color:darkgrey; display: block; + max-width: 80%; + overflow: hidden; + text-overflow: ellipsis; } +} + +.member-role, .member-drop { + position:absolute; + right: 15px; + top: 8px; - .member-role, .member-drop { - position:absolute; - right:15px; - top:13px; + .fa { + margin-right: 5px; + @include opacity(0.5); + font-size: 12px; } + + .member-menu { + top: -50%; + right: 110%; + } + } .member-invite { diff --git a/web/sass-files/sass/partials/_sidebar--left.scss b/web/sass-files/sass/partials/_sidebar--left.scss index ab13d1b42..d5bf0e503 100644 --- a/web/sass-files/sass/partials/_sidebar--left.scss +++ b/web/sass-files/sass/partials/_sidebar--left.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + .sidebar--left { position: absolute; width: 220px; @@ -47,7 +49,7 @@ .nav-pills__container { height: 100%; position: relative; - overflow: scroll; + overflow: auto; -webkit-overflow-scrolling: touch; } @@ -108,6 +110,7 @@ } } .btn-close { + font-family: 'Open Sans', sans-serif; position: absolute; right: 15px; top: -1px; @@ -140,7 +143,6 @@ } } a, a:hover, a:focus { - padding-right: 10px; background-color: rgba(black, 0.1); border-radius: 0; font-weight: 400; diff --git a/web/sass-files/sass/partials/_sidebar--menu.scss b/web/sass-files/sass/partials/_sidebar--menu.scss index 6f4a0cc38..443b7dbb0 100644 --- a/web/sass-files/sass/partials/_sidebar--menu.scss +++ b/web/sass-files/sass/partials/_sidebar--menu.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + .sidebar--menu { position: absolute; width: 220px; @@ -57,8 +59,11 @@ color: inherit; line-height: 40px; padding: 0 15px; - .glyphicon { + .fa ,.glyphicon { width: 25px; + text-align: center; + left: -5px; + position: relative; } } } diff --git a/web/sass-files/sass/partials/_sidebar--right.scss b/web/sass-files/sass/partials/_sidebar--right.scss index a4267294c..f328f0971 100644 --- a/web/sass-files/sass/partials/_sidebar--right.scss +++ b/web/sass-files/sass/partials/_sidebar--right.scss @@ -1,40 +1,50 @@ +@charset "UTF-8"; + .sidebar--right { position: absolute; width: 400px; height: 100%; right: 0px; - padding: 0 0 2em 0; + padding: 0; background: #fff; @include single-transition(transform, 0.5s, ease); right: -320px; + &.move--left { right: 0; } + + .post-body { + + img { + max-height: 200px; + } + + } + + .sidebar--right__content { + height: 100%; + @include display-flex; + @include flex-direction(column); + } + .sidebar--right__back { - color: #666; - width: 20px; + color: inherit; + @include opacity(0.8); + width: 30px; text-align: center; - margin: 0 0 0 -6px; - font-size: 12px; + margin: 0 0 0 -14px; + font-size: 13px; display: inline-block; } .sidebar-right__body { + @include flex(1 1 auto); border-left: $border-gray; border-top: $border-gray; - } - .post { - .post-header { - .post-header-col { - &.post-header__reply { - min-width: 30px; - text-align: right; - float: right; - } - } - } - .post-body { - margin: 3px 0 0; - } + @include display-flex; + @include flex-direction(column); + height: calc(100% - 56px); + @include border-radius(2px 0 0 0); } .sidebar__overlay { width: 100%; @@ -75,7 +85,7 @@ height: 44px; padding: 0 1em; line-height: 44px; - background: #F5F5F5; + @include flex(0 0 44px); border-bottom: $border-gray; } .sidebar--right__subheader { @@ -93,6 +103,10 @@ padding-bottom: 10px; } } + + .suggestion-content { + max-height: 120px; + } } .sidebar-right-container { diff --git a/web/sass-files/sass/partials/_signup.scss b/web/sass-files/sass/partials/_signup.scss index b9486e254..81fe037f7 100644 --- a/web/sass-files/sass/partials/_signup.scss +++ b/web/sass-files/sass/partials/_signup.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + .signup-header { width:100%; line-height: 33px; @@ -80,7 +82,7 @@ } .inner__content { - padding: 0 15px; + padding: 0 1rem; margin: 30px 0 20px; } @@ -133,17 +135,18 @@ .or__container { height: 1px; background: #dddddd; - text-align: center; + text-align: left; margin: 2em 0; span { - width: 33px; + width: 40px; top: -10px; position: relative; - font-size: em(16px); + font-size: 1.14286em; line-height: 20px; font-weight: 600; background: #fff; display: inline-block; + text-align: center; } } @@ -152,6 +155,10 @@ padding-left: 18px; } + .signup__email-container { + margin-left: 1rem; + } + .btn { font-size: 1em; padding: em(7px) em(15px); @@ -173,7 +180,7 @@ min-width: 200px; width: 200px; padding: 0 1em; - margin: 1em auto; + margin: 1em 1rem; height: 40px; line-height: 34px; color: #fff; diff --git a/web/sass-files/sass/partials/_statistics.scss b/web/sass-files/sass/partials/_statistics.scss index a2401a70f..edd3c9bf3 100644 --- a/web/sass-files/sass/partials/_statistics.scss +++ b/web/sass-files/sass/partials/_statistics.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + .team_statistics { .total-count { margin: 1em 0; diff --git a/web/sass-files/sass/partials/_suggestion_list.scss b/web/sass-files/sass/partials/_suggestion_list.scss new file mode 100644 index 000000000..28c113c6d --- /dev/null +++ b/web/sass-files/sass/partials/_suggestion_list.scss @@ -0,0 +1,67 @@ +@charset "UTF-8"; + +.suggestion-list { + width: 100%; + z-index: 100; + @extend %popover-box-shadow; +} + +.suggestion-list--top { + position: absolute; +} + +.suggestion-content { + width: 100%; + max-height: 292px; + background-color: #fff; + border: $border-gray; + overflow-x: hidden; + overflow-y: scroll; +} + +.suggestion-content--top { + position: absolute; + bottom: 0; +} + +.suggestion--selected { + // set by theme code +} + +.command-name { + position: relative; + width: 100%; + line-height: 24px; + padding: 5px 10px 8px; + z-index: 101; + font-size: 0.95em; + border-bottom: 1px solid #ddd; + + .command__desc { + margin-left: 5px; + @include opacity(0.5); + line-height: normal; + } +} + +.command-desc { + color: #a7a8ab; +} + +.emoticon-suggestion { + @include clearfix; + width: 100%; + height: 30px; + cursor: pointer; + font-size: 13px; + line-height: 30px; +} + +.emoticon-suggestion__image { + width: 20px; + height: 20px; + margin: 6px 6px 0 5px; + padding: 0; + text-align: center; + vertical-align: top; +} diff --git a/web/sass-files/sass/partials/_tooltips.scss b/web/sass-files/sass/partials/_tooltips.scss new file mode 100644 index 000000000..c2de3c590 --- /dev/null +++ b/web/sass-files/sass/partials/_tooltips.scss @@ -0,0 +1,7 @@ +@charset "UTF-8"; + +#recentMentionsTooltip { + .tooltip-arrow { + margin-left: 10px; + } +}
\ No newline at end of file diff --git a/web/sass-files/sass/partials/_tutorial.scss b/web/sass-files/sass/partials/_tutorial.scss index a6e16fe37..9e5e1ad7a 100644 --- a/web/sass-files/sass/partials/_tutorial.scss +++ b/web/sass-files/sass/partials/_tutorial.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + .tip-backdrop { background: rgba(black, 0.5); position: absolute; @@ -81,7 +83,7 @@ color: #fff; @include border-radius(3px); border: none; - margin-bottom: 10px; + margin: 10px 0; &:hover, &:active, &:focus { color: #fff; @@ -162,7 +164,7 @@ } .btn-primary { position: absolute; - bottom: 0; + bottom: 0px; } } h1 { @@ -179,6 +181,11 @@ position: absolute; bottom: 40px; } + .tutorial-skip { + position: absolute; + bottom: 7px; + left: 80px; + } } .tutorial__circles { diff --git a/web/sass-files/sass/partials/_variables.scss b/web/sass-files/sass/partials/_variables.scss index 78952abb5..514be2e8b 100644 --- a/web/sass-files/sass/partials/_variables.scss +++ b/web/sass-files/sass/partials/_variables.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + @function em($pixels, $context: 14px) { @return #{$pixels/$context}em } diff --git a/web/sass-files/sass/partials/_videos.scss b/web/sass-files/sass/partials/_videos.scss index bb36b6223..43f30ce84 100644 --- a/web/sass-files/sass/partials/_videos.scss +++ b/web/sass-files/sass/partials/_videos.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + .video-div { position:relative; max-width: 480px; @@ -51,7 +53,7 @@ border-left:60px solid rgba(255,255,255,0.4); } -.gif-div { +.img-div { -moz-force-broken-image-icon: 1; position:relative; max-width: 450px; diff --git a/web/sass-files/sass/partials/_webhooks.scss b/web/sass-files/sass/partials/_webhooks.scss index b801ccf63..4b0215a9e 100644 --- a/web/sass-files/sass/partials/_webhooks.scss +++ b/web/sass-files/sass/partials/_webhooks.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + .webhooks__container { background: rgba(black, 0.1); border: 1px solid; diff --git a/web/sass-files/sass/partials/_welcome.scss b/web/sass-files/sass/partials/_welcome.scss index 7f2354a36..0be43d29c 100644 --- a/web/sass-files/sass/partials/_welcome.scss +++ b/web/sass-files/sass/partials/_welcome.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + .welcome-info { max-width: 550px; margin-top: 50px; diff --git a/web/sass-files/sass/styles.scss b/web/sass-files/sass/styles.scss index 5c83d5c5b..c93372175 100644 --- a/web/sass-files/sass/styles.scss +++ b/web/sass-files/sass/styles.scss @@ -1,3 +1,5 @@ +@charset "UTF-8"; + /* Welcome to Compass. * In this file you should write your main styles. (or centralize your imports) * Import this file using the following HTML or equivalent: @@ -32,7 +34,6 @@ @import "partials/modal"; @import "partials/forms"; @import "partials/mentions"; -@import "partials/command-box"; @import "partials/error"; @import "partials/error-bar"; @import "partials/loading"; @@ -40,9 +41,16 @@ @import "partials/markdown"; @import "partials/tutorial"; @import "partials/statistics"; +@import "partials/suggestion_list"; + +// Elements +@import "partials/tooltips"; // Responsive Css @import "partials/responsive"; // Standalone Css @import "partials/oauth"; + +// Print +@import "partials/print";
\ No newline at end of file diff --git a/web/static/css/fonts/KaTeX_AMS-Regular.eot b/web/static/css/fonts/KaTeX_AMS-Regular.eot Binary files differnew file mode 100644 index 000000000..784276a3c --- /dev/null +++ b/web/static/css/fonts/KaTeX_AMS-Regular.eot diff --git a/web/static/css/fonts/KaTeX_AMS-Regular.ttf b/web/static/css/fonts/KaTeX_AMS-Regular.ttf Binary files differnew file mode 100644 index 000000000..6f1e0be20 --- /dev/null +++ b/web/static/css/fonts/KaTeX_AMS-Regular.ttf diff --git a/web/static/css/fonts/KaTeX_AMS-Regular.woff b/web/static/css/fonts/KaTeX_AMS-Regular.woff Binary files differnew file mode 100644 index 000000000..4dded4733 --- /dev/null +++ b/web/static/css/fonts/KaTeX_AMS-Regular.woff diff --git a/web/static/css/fonts/KaTeX_AMS-Regular.woff2 b/web/static/css/fonts/KaTeX_AMS-Regular.woff2 Binary files differnew file mode 100644 index 000000000..ea81079c4 --- /dev/null +++ b/web/static/css/fonts/KaTeX_AMS-Regular.woff2 diff --git a/web/static/css/fonts/KaTeX_Caligraphic-Bold.eot b/web/static/css/fonts/KaTeX_Caligraphic-Bold.eot Binary files differnew file mode 100644 index 000000000..1a0db0c56 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Caligraphic-Bold.eot diff --git a/web/static/css/fonts/KaTeX_Caligraphic-Bold.ttf b/web/static/css/fonts/KaTeX_Caligraphic-Bold.ttf Binary files differnew file mode 100644 index 000000000..b94907dad --- /dev/null +++ b/web/static/css/fonts/KaTeX_Caligraphic-Bold.ttf diff --git a/web/static/css/fonts/KaTeX_Caligraphic-Bold.woff b/web/static/css/fonts/KaTeX_Caligraphic-Bold.woff Binary files differnew file mode 100644 index 000000000..799fa8122 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Caligraphic-Bold.woff diff --git a/web/static/css/fonts/KaTeX_Caligraphic-Bold.woff2 b/web/static/css/fonts/KaTeX_Caligraphic-Bold.woff2 Binary files differnew file mode 100644 index 000000000..73bb54228 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Caligraphic-Bold.woff2 diff --git a/web/static/css/fonts/KaTeX_Caligraphic-Regular.eot b/web/static/css/fonts/KaTeX_Caligraphic-Regular.eot Binary files differnew file mode 100644 index 000000000..6cc83d092 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Caligraphic-Regular.eot diff --git a/web/static/css/fonts/KaTeX_Caligraphic-Regular.ttf b/web/static/css/fonts/KaTeX_Caligraphic-Regular.ttf Binary files differnew file mode 100644 index 000000000..cf51e2021 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Caligraphic-Regular.ttf diff --git a/web/static/css/fonts/KaTeX_Caligraphic-Regular.woff b/web/static/css/fonts/KaTeX_Caligraphic-Regular.woff Binary files differnew file mode 100644 index 000000000..f5e5c6235 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Caligraphic-Regular.woff diff --git a/web/static/css/fonts/KaTeX_Caligraphic-Regular.woff2 b/web/static/css/fonts/KaTeX_Caligraphic-Regular.woff2 Binary files differnew file mode 100644 index 000000000..dd76d3488 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Caligraphic-Regular.woff2 diff --git a/web/static/css/fonts/KaTeX_Fraktur-Bold.eot b/web/static/css/fonts/KaTeX_Fraktur-Bold.eot Binary files differnew file mode 100644 index 000000000..1960b1066 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Fraktur-Bold.eot diff --git a/web/static/css/fonts/KaTeX_Fraktur-Bold.ttf b/web/static/css/fonts/KaTeX_Fraktur-Bold.ttf Binary files differnew file mode 100644 index 000000000..7b0790f1a --- /dev/null +++ b/web/static/css/fonts/KaTeX_Fraktur-Bold.ttf diff --git a/web/static/css/fonts/KaTeX_Fraktur-Bold.woff b/web/static/css/fonts/KaTeX_Fraktur-Bold.woff Binary files differnew file mode 100644 index 000000000..dc3257132 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Fraktur-Bold.woff diff --git a/web/static/css/fonts/KaTeX_Fraktur-Bold.woff2 b/web/static/css/fonts/KaTeX_Fraktur-Bold.woff2 Binary files differnew file mode 100644 index 000000000..fdc429227 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Fraktur-Bold.woff2 diff --git a/web/static/css/fonts/KaTeX_Fraktur-Regular.eot b/web/static/css/fonts/KaTeX_Fraktur-Regular.eot Binary files differnew file mode 100644 index 000000000..e4e73796a --- /dev/null +++ b/web/static/css/fonts/KaTeX_Fraktur-Regular.eot diff --git a/web/static/css/fonts/KaTeX_Fraktur-Regular.ttf b/web/static/css/fonts/KaTeX_Fraktur-Regular.ttf Binary files differnew file mode 100644 index 000000000..063bc0263 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Fraktur-Regular.ttf diff --git a/web/static/css/fonts/KaTeX_Fraktur-Regular.woff b/web/static/css/fonts/KaTeX_Fraktur-Regular.woff Binary files differnew file mode 100644 index 000000000..c4b18d863 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Fraktur-Regular.woff diff --git a/web/static/css/fonts/KaTeX_Fraktur-Regular.woff2 b/web/static/css/fonts/KaTeX_Fraktur-Regular.woff2 Binary files differnew file mode 100644 index 000000000..4318d938e --- /dev/null +++ b/web/static/css/fonts/KaTeX_Fraktur-Regular.woff2 diff --git a/web/static/css/fonts/KaTeX_Main-Bold.eot b/web/static/css/fonts/KaTeX_Main-Bold.eot Binary files differnew file mode 100644 index 000000000..80fbd0223 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Main-Bold.eot diff --git a/web/static/css/fonts/KaTeX_Main-Bold.ttf b/web/static/css/fonts/KaTeX_Main-Bold.ttf Binary files differnew file mode 100644 index 000000000..8e10722af --- /dev/null +++ b/web/static/css/fonts/KaTeX_Main-Bold.ttf diff --git a/web/static/css/fonts/KaTeX_Main-Bold.woff b/web/static/css/fonts/KaTeX_Main-Bold.woff Binary files differnew file mode 100644 index 000000000..43b361a60 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Main-Bold.woff diff --git a/web/static/css/fonts/KaTeX_Main-Bold.woff2 b/web/static/css/fonts/KaTeX_Main-Bold.woff2 Binary files differnew file mode 100644 index 000000000..af57a96c1 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Main-Bold.woff2 diff --git a/web/static/css/fonts/KaTeX_Main-Italic.eot b/web/static/css/fonts/KaTeX_Main-Italic.eot Binary files differnew file mode 100644 index 000000000..fc770166b --- /dev/null +++ b/web/static/css/fonts/KaTeX_Main-Italic.eot diff --git a/web/static/css/fonts/KaTeX_Main-Italic.ttf b/web/static/css/fonts/KaTeX_Main-Italic.ttf Binary files differnew file mode 100644 index 000000000..d124495d7 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Main-Italic.ttf diff --git a/web/static/css/fonts/KaTeX_Main-Italic.woff b/web/static/css/fonts/KaTeX_Main-Italic.woff Binary files differnew file mode 100644 index 000000000..e623236bc --- /dev/null +++ b/web/static/css/fonts/KaTeX_Main-Italic.woff diff --git a/web/static/css/fonts/KaTeX_Main-Italic.woff2 b/web/static/css/fonts/KaTeX_Main-Italic.woff2 Binary files differnew file mode 100644 index 000000000..944e9740b --- /dev/null +++ b/web/static/css/fonts/KaTeX_Main-Italic.woff2 diff --git a/web/static/css/fonts/KaTeX_Main-Regular.eot b/web/static/css/fonts/KaTeX_Main-Regular.eot Binary files differnew file mode 100644 index 000000000..dc60c090c --- /dev/null +++ b/web/static/css/fonts/KaTeX_Main-Regular.eot diff --git a/web/static/css/fonts/KaTeX_Main-Regular.ttf b/web/static/css/fonts/KaTeX_Main-Regular.ttf Binary files differnew file mode 100644 index 000000000..da5797ffc --- /dev/null +++ b/web/static/css/fonts/KaTeX_Main-Regular.ttf diff --git a/web/static/css/fonts/KaTeX_Main-Regular.woff b/web/static/css/fonts/KaTeX_Main-Regular.woff Binary files differnew file mode 100644 index 000000000..37db672e8 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Main-Regular.woff diff --git a/web/static/css/fonts/KaTeX_Main-Regular.woff2 b/web/static/css/fonts/KaTeX_Main-Regular.woff2 Binary files differnew file mode 100644 index 000000000..488204248 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Main-Regular.woff2 diff --git a/web/static/css/fonts/KaTeX_Math-BoldItalic.eot b/web/static/css/fonts/KaTeX_Math-BoldItalic.eot Binary files differnew file mode 100644 index 000000000..52c8b8c6b --- /dev/null +++ b/web/static/css/fonts/KaTeX_Math-BoldItalic.eot diff --git a/web/static/css/fonts/KaTeX_Math-BoldItalic.ttf b/web/static/css/fonts/KaTeX_Math-BoldItalic.ttf Binary files differnew file mode 100644 index 000000000..a8b527c7e --- /dev/null +++ b/web/static/css/fonts/KaTeX_Math-BoldItalic.ttf diff --git a/web/static/css/fonts/KaTeX_Math-BoldItalic.woff b/web/static/css/fonts/KaTeX_Math-BoldItalic.woff Binary files differnew file mode 100644 index 000000000..8940e0b58 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Math-BoldItalic.woff diff --git a/web/static/css/fonts/KaTeX_Math-BoldItalic.woff2 b/web/static/css/fonts/KaTeX_Math-BoldItalic.woff2 Binary files differnew file mode 100644 index 000000000..15cf56d34 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Math-BoldItalic.woff2 diff --git a/web/static/css/fonts/KaTeX_Math-Italic.eot b/web/static/css/fonts/KaTeX_Math-Italic.eot Binary files differnew file mode 100644 index 000000000..64c8992c4 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Math-Italic.eot diff --git a/web/static/css/fonts/KaTeX_Math-Italic.ttf b/web/static/css/fonts/KaTeX_Math-Italic.ttf Binary files differnew file mode 100644 index 000000000..06f39d3a2 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Math-Italic.ttf diff --git a/web/static/css/fonts/KaTeX_Math-Italic.woff b/web/static/css/fonts/KaTeX_Math-Italic.woff Binary files differnew file mode 100644 index 000000000..cf3b4b79e --- /dev/null +++ b/web/static/css/fonts/KaTeX_Math-Italic.woff diff --git a/web/static/css/fonts/KaTeX_Math-Italic.woff2 b/web/static/css/fonts/KaTeX_Math-Italic.woff2 Binary files differnew file mode 100644 index 000000000..5f8c4bfa4 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Math-Italic.woff2 diff --git a/web/static/css/fonts/KaTeX_Math-Regular.eot b/web/static/css/fonts/KaTeX_Math-Regular.eot Binary files differnew file mode 100644 index 000000000..5521e6a56 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Math-Regular.eot diff --git a/web/static/css/fonts/KaTeX_Math-Regular.ttf b/web/static/css/fonts/KaTeX_Math-Regular.ttf Binary files differnew file mode 100644 index 000000000..731270823 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Math-Regular.ttf diff --git a/web/static/css/fonts/KaTeX_Math-Regular.woff b/web/static/css/fonts/KaTeX_Math-Regular.woff Binary files differnew file mode 100644 index 000000000..0e2ebdf18 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Math-Regular.woff diff --git a/web/static/css/fonts/KaTeX_Math-Regular.woff2 b/web/static/css/fonts/KaTeX_Math-Regular.woff2 Binary files differnew file mode 100644 index 000000000..ebe3d028a --- /dev/null +++ b/web/static/css/fonts/KaTeX_Math-Regular.woff2 diff --git a/web/static/css/fonts/KaTeX_SansSerif-Bold.eot b/web/static/css/fonts/KaTeX_SansSerif-Bold.eot Binary files differnew file mode 100644 index 000000000..1660e76a2 --- /dev/null +++ b/web/static/css/fonts/KaTeX_SansSerif-Bold.eot diff --git a/web/static/css/fonts/KaTeX_SansSerif-Bold.ttf b/web/static/css/fonts/KaTeX_SansSerif-Bold.ttf Binary files differnew file mode 100644 index 000000000..dbeb7b92a --- /dev/null +++ b/web/static/css/fonts/KaTeX_SansSerif-Bold.ttf diff --git a/web/static/css/fonts/KaTeX_SansSerif-Bold.woff b/web/static/css/fonts/KaTeX_SansSerif-Bold.woff Binary files differnew file mode 100644 index 000000000..8f144a8bb --- /dev/null +++ b/web/static/css/fonts/KaTeX_SansSerif-Bold.woff diff --git a/web/static/css/fonts/KaTeX_SansSerif-Bold.woff2 b/web/static/css/fonts/KaTeX_SansSerif-Bold.woff2 Binary files differnew file mode 100644 index 000000000..329e85557 --- /dev/null +++ b/web/static/css/fonts/KaTeX_SansSerif-Bold.woff2 diff --git a/web/static/css/fonts/KaTeX_SansSerif-Italic.eot b/web/static/css/fonts/KaTeX_SansSerif-Italic.eot Binary files differnew file mode 100644 index 000000000..289ae3ff8 --- /dev/null +++ b/web/static/css/fonts/KaTeX_SansSerif-Italic.eot diff --git a/web/static/css/fonts/KaTeX_SansSerif-Italic.ttf b/web/static/css/fonts/KaTeX_SansSerif-Italic.ttf Binary files differnew file mode 100644 index 000000000..b3a2f38f2 --- /dev/null +++ b/web/static/css/fonts/KaTeX_SansSerif-Italic.ttf diff --git a/web/static/css/fonts/KaTeX_SansSerif-Italic.woff b/web/static/css/fonts/KaTeX_SansSerif-Italic.woff Binary files differnew file mode 100644 index 000000000..bddf7ea65 --- /dev/null +++ b/web/static/css/fonts/KaTeX_SansSerif-Italic.woff diff --git a/web/static/css/fonts/KaTeX_SansSerif-Italic.woff2 b/web/static/css/fonts/KaTeX_SansSerif-Italic.woff2 Binary files differnew file mode 100644 index 000000000..5fa767bdd --- /dev/null +++ b/web/static/css/fonts/KaTeX_SansSerif-Italic.woff2 diff --git a/web/static/css/fonts/KaTeX_SansSerif-Regular.eot b/web/static/css/fonts/KaTeX_SansSerif-Regular.eot Binary files differnew file mode 100644 index 000000000..1b38b98a1 --- /dev/null +++ b/web/static/css/fonts/KaTeX_SansSerif-Regular.eot diff --git a/web/static/css/fonts/KaTeX_SansSerif-Regular.ttf b/web/static/css/fonts/KaTeX_SansSerif-Regular.ttf Binary files differnew file mode 100644 index 000000000..e4712f847 --- /dev/null +++ b/web/static/css/fonts/KaTeX_SansSerif-Regular.ttf diff --git a/web/static/css/fonts/KaTeX_SansSerif-Regular.woff b/web/static/css/fonts/KaTeX_SansSerif-Regular.woff Binary files differnew file mode 100644 index 000000000..33be36804 --- /dev/null +++ b/web/static/css/fonts/KaTeX_SansSerif-Regular.woff diff --git a/web/static/css/fonts/KaTeX_SansSerif-Regular.woff2 b/web/static/css/fonts/KaTeX_SansSerif-Regular.woff2 Binary files differnew file mode 100644 index 000000000..4fcb2e29a --- /dev/null +++ b/web/static/css/fonts/KaTeX_SansSerif-Regular.woff2 diff --git a/web/static/css/fonts/KaTeX_Script-Regular.eot b/web/static/css/fonts/KaTeX_Script-Regular.eot Binary files differnew file mode 100644 index 000000000..7870d7f31 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Script-Regular.eot diff --git a/web/static/css/fonts/KaTeX_Script-Regular.ttf b/web/static/css/fonts/KaTeX_Script-Regular.ttf Binary files differnew file mode 100644 index 000000000..da4d11308 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Script-Regular.ttf diff --git a/web/static/css/fonts/KaTeX_Script-Regular.woff b/web/static/css/fonts/KaTeX_Script-Regular.woff Binary files differnew file mode 100644 index 000000000..d6ae79f99 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Script-Regular.woff diff --git a/web/static/css/fonts/KaTeX_Script-Regular.woff2 b/web/static/css/fonts/KaTeX_Script-Regular.woff2 Binary files differnew file mode 100644 index 000000000..1b43deb45 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Script-Regular.woff2 diff --git a/web/static/css/fonts/KaTeX_Size1-Regular.eot b/web/static/css/fonts/KaTeX_Size1-Regular.eot Binary files differnew file mode 100644 index 000000000..29950f95f --- /dev/null +++ b/web/static/css/fonts/KaTeX_Size1-Regular.eot diff --git a/web/static/css/fonts/KaTeX_Size1-Regular.ttf b/web/static/css/fonts/KaTeX_Size1-Regular.ttf Binary files differnew file mode 100644 index 000000000..194466a65 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Size1-Regular.ttf diff --git a/web/static/css/fonts/KaTeX_Size1-Regular.woff b/web/static/css/fonts/KaTeX_Size1-Regular.woff Binary files differnew file mode 100644 index 000000000..237f271ed --- /dev/null +++ b/web/static/css/fonts/KaTeX_Size1-Regular.woff diff --git a/web/static/css/fonts/KaTeX_Size1-Regular.woff2 b/web/static/css/fonts/KaTeX_Size1-Regular.woff2 Binary files differnew file mode 100644 index 000000000..39b6f8f74 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Size1-Regular.woff2 diff --git a/web/static/css/fonts/KaTeX_Size2-Regular.eot b/web/static/css/fonts/KaTeX_Size2-Regular.eot Binary files differnew file mode 100644 index 000000000..b8b0536f9 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Size2-Regular.eot diff --git a/web/static/css/fonts/KaTeX_Size2-Regular.ttf b/web/static/css/fonts/KaTeX_Size2-Regular.ttf Binary files differnew file mode 100644 index 000000000..b41b66a63 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Size2-Regular.ttf diff --git a/web/static/css/fonts/KaTeX_Size2-Regular.woff b/web/static/css/fonts/KaTeX_Size2-Regular.woff Binary files differnew file mode 100644 index 000000000..4a3055854 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Size2-Regular.woff diff --git a/web/static/css/fonts/KaTeX_Size2-Regular.woff2 b/web/static/css/fonts/KaTeX_Size2-Regular.woff2 Binary files differnew file mode 100644 index 000000000..3facec1ab --- /dev/null +++ b/web/static/css/fonts/KaTeX_Size2-Regular.woff2 diff --git a/web/static/css/fonts/KaTeX_Size3-Regular.eot b/web/static/css/fonts/KaTeX_Size3-Regular.eot Binary files differnew file mode 100644 index 000000000..576b864fa --- /dev/null +++ b/web/static/css/fonts/KaTeX_Size3-Regular.eot diff --git a/web/static/css/fonts/KaTeX_Size3-Regular.ttf b/web/static/css/fonts/KaTeX_Size3-Regular.ttf Binary files differnew file mode 100644 index 000000000..790ddbbc5 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Size3-Regular.ttf diff --git a/web/static/css/fonts/KaTeX_Size3-Regular.woff b/web/static/css/fonts/KaTeX_Size3-Regular.woff Binary files differnew file mode 100644 index 000000000..3a6d062e6 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Size3-Regular.woff diff --git a/web/static/css/fonts/KaTeX_Size3-Regular.woff2 b/web/static/css/fonts/KaTeX_Size3-Regular.woff2 Binary files differnew file mode 100644 index 000000000..2cffafe50 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Size3-Regular.woff2 diff --git a/web/static/css/fonts/KaTeX_Size4-Regular.eot b/web/static/css/fonts/KaTeX_Size4-Regular.eot Binary files differnew file mode 100644 index 000000000..c2b045fc3 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Size4-Regular.eot diff --git a/web/static/css/fonts/KaTeX_Size4-Regular.ttf b/web/static/css/fonts/KaTeX_Size4-Regular.ttf Binary files differnew file mode 100644 index 000000000..ce660aa7f --- /dev/null +++ b/web/static/css/fonts/KaTeX_Size4-Regular.ttf diff --git a/web/static/css/fonts/KaTeX_Size4-Regular.woff b/web/static/css/fonts/KaTeX_Size4-Regular.woff Binary files differnew file mode 100644 index 000000000..7826c6c97 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Size4-Regular.woff diff --git a/web/static/css/fonts/KaTeX_Size4-Regular.woff2 b/web/static/css/fonts/KaTeX_Size4-Regular.woff2 Binary files differnew file mode 100644 index 000000000..c92189812 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Size4-Regular.woff2 diff --git a/web/static/css/fonts/KaTeX_Typewriter-Regular.eot b/web/static/css/fonts/KaTeX_Typewriter-Regular.eot Binary files differnew file mode 100644 index 000000000..4c178f484 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Typewriter-Regular.eot diff --git a/web/static/css/fonts/KaTeX_Typewriter-Regular.ttf b/web/static/css/fonts/KaTeX_Typewriter-Regular.ttf Binary files differnew file mode 100644 index 000000000..b0427ad0a --- /dev/null +++ b/web/static/css/fonts/KaTeX_Typewriter-Regular.ttf diff --git a/web/static/css/fonts/KaTeX_Typewriter-Regular.woff b/web/static/css/fonts/KaTeX_Typewriter-Regular.woff Binary files differnew file mode 100644 index 000000000..78e990488 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Typewriter-Regular.woff diff --git a/web/static/css/fonts/KaTeX_Typewriter-Regular.woff2 b/web/static/css/fonts/KaTeX_Typewriter-Regular.woff2 Binary files differnew file mode 100644 index 000000000..618de99d4 --- /dev/null +++ b/web/static/css/fonts/KaTeX_Typewriter-Regular.woff2 diff --git a/web/static/css/google-fonts.css b/web/static/css/google-fonts.css index a9d9d1a80..a9ed54d3e 100644 --- a/web/static/css/google-fonts.css +++ b/web/static/css/google-fonts.css @@ -128,3 +128,540 @@ url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-800italic.ttf') format('truetype'), /* Safari, Android, iOS */ url('/static/fonts/open-sans-v13-latin-ext_latin_cyrillic-ext_greek-ext_greek_cyrillic_vietnamese-800italic.svg#OpenSans') format('svg'); /* Legacy iOS */ } + +/* Lato */ +@font-face { + font-family: 'Lato'; + font-weight: 400; + font-style: normal; + src: url('/static/fonts/Lato-regular.eot'); + src: local('Lato Regular'), local('Lato-regular'), + url('/static/fonts/Lato-regular.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/Lato-regular.woff2') format('woff2'), + url('/static/fonts/Lato-regular.woff') format('woff'), + url('/static/fonts/Lato-regular.ttf') format('truetype'), + url('/static/fonts/Lato-regular.svg#Lato') format('svg'); +} + +/* Lato Bold */ +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 700; + src: url('/static/fonts/lato-bold-webfont.eot'); + src: url('/static/fonts/lato-bold-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/lato-bold-webfont.woff2') format('woff2'), + url('/static/fonts/lato-bold-webfont.woff') format('woff'), + url('/static/fonts/lato-bold-webfont.ttf') format('truetype'), + url('/static/fonts/lato-bold-webfont.svg#latobold') format('svg'); +} + + +/* Lato Bold Italic*/ +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 700; + src: url('/static/fonts/lato-bolditalic-webfont.eot'); + src: url('/static/fonts/lato-bolditalic-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/lato-bolditalic-webfont.woff2') format('woff2'), + url('/static/fonts/lato-bolditalic-webfont.woff') format('woff'), + url('/static/fonts/lato-bolditalic-webfont.ttf') format('truetype'), + url('/static/fonts/lato-bolditalic-webfont.svg#latobold_italic') format('svg'); +} + +/* Droid Serif */ +@font-face { + font-family: 'Droid Serif'; + font-weight: 400; + font-style: normal; + src: url('/static/fonts/Droid-Serif-regular.eot'); + src: local('Droid Serif'), local('Droid-Serif-regular'), + url('/static/fonts/Droid-Serif-regular.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/Droid-Serif-regular.woff2') format('woff2'), + url('/static/fonts/Droid-Serif-regular.woff') format('woff'), + url('/static/fonts/Droid-Serif-regular.ttf') format('truetype'), + url('/static/fonts/Droid-Serif-regular.svg#DroidSerif') format('svg'); +} + +/* Droid Serif Italic */ +@font-face { + font-family: 'Droid Serif'; + font-weight: 400; + font-style: italic; + src: url('/static/fonts/droidserif-italic-webfont.eot'); + src: url('/static/fonts/droidserif-italic-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/droidserif-italic-webfont.woff2') format('woff2'), + url('/static/fonts/droidserif-italic-webfont.woff') format('woff'), + url('/static/fonts/droidserif-italic-webfont.ttf') format('truetype'), + url('/static/fonts/droidserif-italic-webfont.svg#droid_serifitalic') format('svg'); +} + +/* Droid Serif Bold */ +@font-face { + font-family: 'Droid Serif'; + font-weight: 700; + font-style: normal; + src: url('/static/fonts/droidserif-bold-webfont.eot'); + src: url('/static/fonts/droidserif-bold-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/droidserif-bold-webfont.woff2') format('woff2'), + url('/static/fonts/droidserif-bold-webfont.woff') format('woff'), + url('/static/fonts/droidserif-bold-webfont.ttf') format('truetype'), + url('/static/fonts/droidserif-bold-webfont.svg#droid_serifbold') format('svg'); +} + +/* Droid Serif Bold Italic */ +@font-face { + font-family: 'Droid Serif'; + font-weight: 700; + font-style: italic; + src: url('/static/fonts/droidserif-bolditalic-webfont.eot'); + src: url('/static/fonts/droidserif-bolditalic-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/droidserif-bolditalic-webfont.woff2') format('woff2'), + url('/static/fonts/droidserif-bolditalic-webfont.woff') format('woff'), + url('/static/fonts/droidserif-bolditalic-webfont.ttf') format('truetype'), + url('/static/fonts/droidserif-bolditalic-webfont.svg#droid_serifbold_italic') format('svg'); +} + +/* Lora */ +@font-face { + font-family: 'Lora'; + font-weight: 400; + font-style: normal; + src: url('/static/fonts/Lora-regular.eot'); + src: local('Lora'), local('Lora-regular'), + url('/static/fonts/Lora-regular.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/Lora-regular.woff2') format('woff2'), + url('/static/fonts/Lora-regular.woff') format('woff'), + url('/static/fonts/Lora-regular.ttf') format('truetype'), + url('/static/fonts/Lora-regular.svg#Lora') format('svg'); +} + +/* Lora Italic */ +@font-face { + font-family: 'Lora'; + font-weight: 400; + font-style: italic; + src: url('/static/fonts/lora-italic-webfont.eot'); + src: url('/static/fonts/lora-italic-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/lora-italic-webfont.woff2') format('woff2'), + url('/static/fonts/lora-italic-webfont.woff') format('woff'), + url('/static/fonts/lora-italic-webfont.ttf') format('truetype'), + url('/static/fonts/lora-italic-webfont.svg#loraitalic') format('svg'); +} + +/* Lora Bold */ +@font-face { + font-family: 'Lora'; + font-weight: 700; + font-style: normal; + src: url('/static/fonts/lora-bold-webfont.eot'); + src: url('/static/fonts/lora-bold-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/lora-bold-webfont.woff2') format('woff2'), + url('/static/fonts/lora-bold-webfont.woff') format('woff'), + url('/static/fonts/lora-bold-webfont.ttf') format('truetype'), + url('/static/fonts/lora-bold-webfont.svg#lorabold') format('svg'); +} + +/* Lora Bold Italic */ +@font-face { + font-family: 'Lora'; + font-weight: 700; + font-style: italic; + src: url('/static/fonts/lora-bolditalic-webfont.eot'); + src: url('/static/fonts/lora-bolditalic-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/lora-bolditalic-webfont.woff2') format('woff2'), + url('/static/fonts/lora-bolditalic-webfont.woff') format('woff'), + url('/static/fonts/lora-bolditalic-webfont.ttf') format('truetype'), + url('/static/fonts/lora-bolditalic-webfont.svg#lorabold_italic') format('svg'); +} + +/* Arvo */ +@font-face { + font-family: 'Arvo'; + font-weight: 400; + font-style: normal; + src: url('/static/fonts/Arvo-regular.eot'); + src: local('Arvo'), local('Arvo-regular'), + url('/static/fonts/Arvo-regular.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/Arvo-regular.woff2') format('woff2'), + url('/static/fonts/Arvo-regular.woff') format('woff'), + url('/static/fonts/Arvo-regular.ttf') format('truetype'), + url('/static/fonts/Arvo-regular.svg#Arvo') format('svg'); +} + +/* Arvo Italic */ +@font-face { + font-family: 'Arvo'; + font-weight: 400; + font-style: italic; + src: url('/static/fonts/arvo-italic-webfont.eot'); + src: url('/static/fonts/arvo-italic-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/arvo-italic-webfont.woff2') format('woff2'), + url('/static/fonts/arvo-italic-webfont.woff') format('woff'), + url('/static/fonts/arvo-italic-webfont.ttf') format('truetype'), + url('/static/fonts/arvo-italic-webfont.svg#arvoitalic') format('svg'); +} + +/* Arvo Bold */ +@font-face { + font-family: 'Arvo'; + font-weight: 700; + font-style: normal; + src: url('/static/fonts/arvo-bold-webfont.eot'); + src: url('/static/fonts/arvo-bold-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/arvo-bold-webfont.woff2') format('woff2'), + url('/static/fonts/arvo-bold-webfont.woff') format('woff'), + url('/static/fonts/arvo-bold-webfont.ttf') format('truetype'), + url('/static/fonts/arvo-bold-webfont.svg#arvobold') format('svg'); +} + +/* Arvo Bold Italic */ +@font-face { + font-family: 'Arvo'; + font-weight: 700; + font-style: italic; + src: url('/static/fonts/arvo-bolditalic-webfont.eot'); + src: url('/static/fonts/arvo-bolditalic-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/arvo-bolditalic-webfont.woff2') format('woff2'), + url('/static/fonts/arvo-bolditalic-webfont.woff') format('woff'), + url('/static/fonts/arvo-bolditalic-webfont.ttf') format('truetype'), + url('/static/fonts/arvo-bolditalic-webfont.svg#arvobold_italic') format('svg'); +} + +/* Roboto */ +@font-face { + font-family: 'Roboto'; + font-weight: 400; + font-style: normal; + src: url('/static/fonts/Roboto-regular.eot'); + src: local('Roboto'), local('Roboto-regular'), + url('/static/fonts/Roboto-regular.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/Roboto-regular.woff2') format('woff2'), + url('/static/fonts/Roboto-regular.woff') format('woff'), + url('/static/fonts/Roboto-regular.ttf') format('truetype'), + url('/static/fonts/Roboto-regular.svg#Roboto') format('svg'); +} + +/* Roboto Italic */ +@font-face { + font-family: 'Roboto'; + font-weight: 400; + font-style: italic; + src: url('/static/fonts/roboto-italic-webfont.eot'); + src: url('/static/fonts/roboto-italic-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/roboto-italic-webfont.woff2') format('woff2'), + url('/static/fonts/roboto-italic-webfont.woff') format('woff'), + url('/static/fonts/roboto-italic-webfont.ttf') format('truetype'), + url('/static/fonts/roboto-italic-webfont.svg#robotoitalic') format('svg'); +} + +/* Roboto Bold */ +@font-face { + font-family: 'Roboto'; + font-weight: 700; + font-style: normal; + src: url('/static/fonts/roboto-bold-webfont.eot'); + src: url('/static/fonts/roboto-bold-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/roboto-bold-webfont.woff2') format('woff2'), + url('/static/fonts/roboto-bold-webfont.woff') format('woff'), + url('/static/fonts/roboto-bold-webfont.ttf') format('truetype'), + url('/static/fonts/roboto-bold-webfont.svg#robotobold') format('svg'); +} + +/* Roboto Bold Italic */ +@font-face { + font-family: 'Roboto'; + font-weight: 700; + font-style: italic; + src: url('/static/fonts/roboto-bolditalic-webfont.eot'); + src: url('/static/fonts/roboto-bolditalic-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/roboto-bolditalic-webfont.woff2') format('woff2'), + url('/static/fonts/roboto-bolditalic-webfont.woff') format('woff'), + url('/static/fonts/roboto-bolditalic-webfont.ttf') format('truetype'), + url('/static/fonts/roboto-bolditalic-webfont.svg#robotobold_italic') format('svg'); +} + +/* PT Sans */ +@font-face { + font-family: 'PT Sans'; + font-weight: 400; + font-style: normal; + src: url('/static/fonts/PT-Sans-regular.eot'); + src: local('PT Sans'), local('PT-Sans-regular'), + url('/static/fonts/PT-Sans-regular.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/PT-Sans-regular.woff2') format('woff2'), + url('/static/fonts/PT-Sans-regular.woff') format('woff'), + url('/static/fonts/PT-Sans-regular.ttf') format('truetype'), + url('/static/fonts/PT-Sans-regular.svg#PTSans') format('svg'); +} + +/* PT Sans Italic */ +@font-face { + font-family: 'PT Sans'; + font-weight: 400; + font-style: italic; + src: url('/static/fonts/pt_sans-web-italic-webfont.eot'); + src: url('/static/fonts/pt_sans-web-italic-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/pt_sans-web-italic-webfont.woff2') format('woff2'), + url('/static/fonts/pt_sans-web-italic-webfont.woff') format('woff'), + url('/static/fonts/pt_sans-web-italic-webfont.ttf') format('truetype'), + url('/static/fonts/pt_sans-web-italic-webfont.svg#pt_sansitalic') format('svg'); +} + +/* PT Sans Bold */ +@font-face { + font-family: 'PT Sans'; + font-weight: 700; + font-style: normal; + src: url('/static/fonts/pt_sans-web-bold-webfont.eot'); + src: url('/static/fonts/pt_sans-web-bold-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/pt_sans-web-bold-webfont.woff2') format('woff2'), + url('/static/fonts/pt_sans-web-bold-webfont.woff') format('woff'), + url('/static/fonts/pt_sans-web-bold-webfont.ttf') format('truetype'), + url('/static/fonts/pt_sans-web-bold-webfont.svg#pt_sansbold') format('svg'); +} + +/* PT Sans Bold Italic */ +@font-face { + font-family: 'PT Sans'; + font-weight: 700; + font-style: italic; + src: url('/static/fonts/pt_sans-web-bolditalic-webfont.eot'); + src: url('/static/fonts/pt_sans-web-bolditalic-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/pt_sans-web-bolditalic-webfont.woff2') format('woff2'), + url('/static/fonts/pt_sans-web-bolditalic-webfont.woff') format('woff'), + url('/static/fonts/pt_sans-web-bolditalic-webfont.ttf') format('truetype'), + url('/static/fonts/pt_sans-web-bolditalic-webfont.svg#pt_sansbold_italic') format('svg'); +} + +/* Source Sans Pro */ +@font-face { + font-family: 'Source Sans Pro'; + font-weight: 400; + font-style: normal; + src: url('/static/fonts/Source-Sans-Pro-regular.eot'); + src: local('Source Sans Pro'), local('Source-Sans-Pro-regular'), + url('/static/fonts/Source-Sans-Pro-regular.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/Source-Sans-Pro-regular.woff2') format('woff2'), + url('/static/fonts/Source-Sans-Pro-regular.woff') format('woff'), + url('/static/fonts/Source-Sans-Pro-regular.ttf') format('truetype'), + url('/static/fonts/Source-Sans-Pro-regular.svg#SourceSansPro') format('svg'); +} + +/* Source Sans Pro Italic */ +@font-face { + font-family: 'Source Sans Pro'; + font-weight: 400; + font-style: italic; + src: url('/static/fonts/sourcesanspro-italic-webfont.eot'); + src: url('/static/fonts/sourcesanspro-italic-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/sourcesanspro-italic-webfont.woff2') format('woff2'), + url('/static/fonts/sourcesanspro-italic-webfont.woff') format('woff'), + url('/static/fonts/sourcesanspro-italic-webfont.ttf') format('truetype'), + url('/static/fonts/sourcesanspro-italic-webfont.svg#source_sans_proitalic') format('svg'); +} + +/* Source Sans Pro Bold */ +@font-face { + font-family: 'Source Sans Pro'; + font-weight: 700; + font-style: normal; + src: url('/static/fonts/sourcesanspro-bold-webfont.eot'); + src: url('/static/fonts/sourcesanspro-bold-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/sourcesanspro-bold-webfont.woff2') format('woff2'), + url('/static/fonts/sourcesanspro-bold-webfont.woff') format('woff'), + url('/static/fonts/sourcesanspro-bold-webfont.ttf') format('truetype'), + url('/static/fonts/sourcesanspro-bold-webfont.svg#source_sans_probold') format('svg'); +} + +/* Source Sans Pro Bold Italic */ +@font-face { + font-family: 'Source Sans Pro'; + font-weight: 700; + font-style: italic; + src: url('/static/fonts/sourcesanspro-bolditalic-webfont.eot'); + src: url('/static/fonts/sourcesanspro-bolditalic-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/sourcesanspro-bolditalic-webfont.woff2') format('woff2'), + url('/static/fonts/sourcesanspro-bolditalic-webfont.woff') format('woff'), + url('/static/fonts/sourcesanspro-bolditalic-webfont.ttf') format('truetype'), + url('/static/fonts/sourcesanspro-bolditalic-webfont.svg#source_sans_probold_italic') format('svg'); +} + +/* Exo 2 */ +@font-face { + font-family: 'Exo 2'; + font-weight: 400; + font-style: normal; + src: url('/static/fonts/Exo-2-regular.eot'); + src: local('Exo 2'), local('Exo-2-regular'), + url('/static/fonts/Exo-2-regular.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/Exo-2-regular.woff2') format('woff2'), + url('/static/fonts/Exo-2-regular.woff') format('woff'), + url('/static/fonts/Exo-2-regular.ttf') format('truetype'), + url('/static/fonts/Exo-2-regular.svg#Exo2') format('svg'); +} + +/* Exo 2 Italic */ +@font-face { + font-family: 'Exo 2'; + font-weight: 400; + font-style: italic; + src: url('/static/fonts/exo2-italic-webfont.eot'); + src: url('/static/fonts/exo2-italic-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/exo2-italic-webfont.woff2') format('woff2'), + url('/static/fonts/exo2-italic-webfont.woff') format('woff'), + url('/static/fonts/exo2-italic-webfont.ttf') format('truetype'), + url('/static/fonts/exo2-italic-webfont.svg#exo_2italic') format('svg'); +} + +/* Exo 2 Bold */ +@font-face { + font-family: 'Exo 2'; + font-weight: 700; + font-style: normal; + src: url('/static/fonts/exo2-bold-webfont.eot'); + src: url('/static/fonts/exo2-bold-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/exo2-bold-webfont.woff2') format('woff2'), + url('/static/fonts/exo2-bold-webfont.woff') format('woff'), + url('/static/fonts/exo2-bold-webfont.ttf') format('truetype'), + url('/static/fonts/exo2-bold-webfont.svg#exo_2bold') format('svg'); +} + +/* Exo 2 Bold Italic */ +@font-face { + font-family: 'Exo 2'; + font-weight: 700; + font-style: italic; + src: url('/static/fonts/exo2-bolditalic-webfont.eot'); + src: url('/static/fonts/exo2-bolditalic-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/exo2-bolditalic-webfont.woff2') format('woff2'), + url('/static/fonts/exo2-bolditalic-webfont.woff') format('woff'), + url('/static/fonts/exo2-bolditalic-webfont.ttf') format('truetype'), + url('/static/fonts/exo2-bolditalic-webfont.svg#exo_2bold_italic') format('svg'); +} + +/* Ubuntu */ +@font-face { + font-family: 'Ubuntu'; + font-weight: 400; + font-style: normal; + src: url('/static/fonts/Ubuntu-regular.eot'); + src: local('Ubuntu'), local('Ubuntu-regular'), + url('/static/fonts/Ubuntu-regular.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/Ubuntu-regular.woff2') format('woff2'), + url('/static/fonts/Ubuntu-regular.woff') format('woff'), + url('/static/fonts/Ubuntu-regular.ttf') format('truetype'), + url('/static/fonts/Ubuntu-regular.svg#Ubuntu') format('svg'); +} + +/* Ubuntu Italic */ +@font-face { + font-family: 'Ubuntu'; + font-weight: 400; + font-style: italic; + src: url('/static/fonts/ubuntu-italic-webfont.eot'); + src: url('/static/fonts/ubuntu-italic-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/ubuntu-italic-webfont.woff2') format('woff2'), + url('/static/fonts/ubuntu-italic-webfont.woff') format('woff'), + url('/static/fonts/ubuntu-italic-webfont.ttf') format('truetype'), + url('/static/fonts/ubuntu-italic-webfont.svg#ubuntuitalic') format('svg'); +} + +/* Ubuntu Bold */ +@font-face { + font-family: 'Ubuntu'; + font-weight: 700; + font-style: normal; + src: url('/static/fonts/ubuntu-bold-webfont.eot'); + src: url('/static/fonts/ubuntu-bold-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/ubuntu-bold-webfont.woff2') format('woff2'), + url('/static/fonts/ubuntu-bold-webfont.woff') format('woff'), + url('/static/fonts/ubuntu-bold-webfont.ttf') format('truetype'), + url('/static/fonts/ubuntu-bold-webfont.svg#ubuntubold') format('svg'); +} + +/* Ubuntu Bold Italic */ +@font-face { + font-family: 'Ubuntu'; + font-weight: 700; + font-style: italic; + src: url('/static/fonts/ubuntu-bolditalic-webfont.eot'); + src: url('/static/fonts/ubuntu-bolditalic-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/ubuntu-bolditalic-webfont.woff2') format('woff2'), + url('/static/fonts/ubuntu-bolditalic-webfont.woff') format('woff'), + url('/static/fonts/ubuntu-bolditalic-webfont.ttf') format('truetype'), + url('/static/fonts/ubuntu-bolditalic-webfont.svg#ubuntubold_italic') format('svg'); +} + +/* Roboto Slab */ +@font-face { + font-family: 'Roboto Slab'; + font-weight: 400; + font-style: normal; + src: url('/static/fonts/Roboto-Slab-regular.eot'); + src: local('Roboto Slab Regular'), local('Roboto-Slab-regular'), + url('/static/fonts/Roboto-Slab-regular.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/Roboto-Slab-regular.woff2') format('woff2'), + url('/static/fonts/Roboto-Slab-regular.woff') format('woff'), + url('/static/fonts/Roboto-Slab-regular.ttf') format('truetype'), + url('/static/fonts/Roboto-Slab-regular.svg#RobotoSlab') format('svg'); +} + +/* Roboto Slab Bold */ +@font-face { + font-family: 'Roboto Slab'; + font-weight: 700; + font-style: normal; + src: url('/static/fonts/robotoslab-bold-webfont.eot'); + src: url('/static/fonts/robotoslab-bold-webfont.eot?#iefix') format('embedded-opentype'), + url('/static/fonts/robotoslab-bold-webfont.woff2') format('woff2'), + url('/static/fonts/robotoslab-bold-webfont.woff') format('woff'), + url('/static/fonts/robotoslab-bold-webfont.ttf') format('truetype'), + url('/static/fonts/robotoslab-bold-webfont.svg#roboto_slabbold') format('svg'); +} + + +.font--open_sans { + font-family: 'Open Sans', 'sans-serif'; +} + +.font--droid_serif { + font-family: 'Droid Serif', 'serif'; +} + +.font--roboto_slab { + font-family: 'Roboto Slab', 'serif'; +} + +.font--lora { + font-family: 'Lora', 'serif'; +} + +.font--arvo { + font-family: 'Arvo', 'serif'; +} + +.font--roboto { + font-family: 'Roboto', 'sans-serif'; +} + +.font--pt_sans { + font-family: 'PT Sans', 'sans-serif'; +} + +.font--lato { + font-family: 'Lato', 'sans-serif'; +} + +.font--source_sans_pro { + font-family: 'Source Sans Pro', 'sans-serif'; +} + +.font--exo_2 { + font-family: 'Exo 2', 'sans-serif'; +} + +.font--ubuntu { + font-family: Ubuntu, 'sans-serif'; +}
\ No newline at end of file diff --git a/web/static/css/katex.min.css b/web/static/css/katex.min.css new file mode 100644 index 000000000..408409dca --- /dev/null +++ b/web/static/css/katex.min.css @@ -0,0 +1 @@ +@font-face{font-family:KaTeX_AMS;src:url(fonts/KaTeX_AMS-Regular.eot);src:url(fonts/KaTeX_AMS-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_AMS-Regular.woff2) format('woff2'),url(fonts/KaTeX_AMS-Regular.woff) format('woff'),url(fonts/KaTeX_AMS-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Caligraphic;src:url(fonts/KaTeX_Caligraphic-Bold.eot);src:url(fonts/KaTeX_Caligraphic-Bold.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Caligraphic-Bold.woff2) format('woff2'),url(fonts/KaTeX_Caligraphic-Bold.woff) format('woff'),url(fonts/KaTeX_Caligraphic-Bold.ttf) format('ttf');font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Caligraphic;src:url(fonts/KaTeX_Caligraphic-Regular.eot);src:url(fonts/KaTeX_Caligraphic-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Caligraphic-Regular.woff2) format('woff2'),url(fonts/KaTeX_Caligraphic-Regular.woff) format('woff'),url(fonts/KaTeX_Caligraphic-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Fraktur;src:url(fonts/KaTeX_Fraktur-Bold.eot);src:url(fonts/KaTeX_Fraktur-Bold.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Fraktur-Bold.woff2) format('woff2'),url(fonts/KaTeX_Fraktur-Bold.woff) format('woff'),url(fonts/KaTeX_Fraktur-Bold.ttf) format('ttf');font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Fraktur;src:url(fonts/KaTeX_Fraktur-Regular.eot);src:url(fonts/KaTeX_Fraktur-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Fraktur-Regular.woff2) format('woff2'),url(fonts/KaTeX_Fraktur-Regular.woff) format('woff'),url(fonts/KaTeX_Fraktur-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Bold.eot);src:url(fonts/KaTeX_Main-Bold.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Main-Bold.woff2) format('woff2'),url(fonts/KaTeX_Main-Bold.woff) format('woff'),url(fonts/KaTeX_Main-Bold.ttf) format('ttf');font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Italic.eot);src:url(fonts/KaTeX_Main-Italic.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Main-Italic.woff2) format('woff2'),url(fonts/KaTeX_Main-Italic.woff) format('woff'),url(fonts/KaTeX_Main-Italic.ttf) format('ttf');font-weight:400;font-style:italic}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Regular.eot);src:url(fonts/KaTeX_Main-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Main-Regular.woff2) format('woff2'),url(fonts/KaTeX_Main-Regular.woff) format('woff'),url(fonts/KaTeX_Main-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Math;src:url(fonts/KaTeX_Math-Italic.eot);src:url(fonts/KaTeX_Math-Italic.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Math-Italic.woff2) format('woff2'),url(fonts/KaTeX_Math-Italic.woff) format('woff'),url(fonts/KaTeX_Math-Italic.ttf) format('ttf');font-weight:400;font-style:italic}@font-face{font-family:KaTeX_SansSerif;src:url(fonts/KaTeX_SansSerif-Regular.eot);src:url(fonts/KaTeX_SansSerif-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_SansSerif-Regular.woff2) format('woff2'),url(fonts/KaTeX_SansSerif-Regular.woff) format('woff'),url(fonts/KaTeX_SansSerif-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Script;src:url(fonts/KaTeX_Script-Regular.eot);src:url(fonts/KaTeX_Script-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Script-Regular.woff2) format('woff2'),url(fonts/KaTeX_Script-Regular.woff) format('woff'),url(fonts/KaTeX_Script-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size1;src:url(fonts/KaTeX_Size1-Regular.eot);src:url(fonts/KaTeX_Size1-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Size1-Regular.woff2) format('woff2'),url(fonts/KaTeX_Size1-Regular.woff) format('woff'),url(fonts/KaTeX_Size1-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size2;src:url(fonts/KaTeX_Size2-Regular.eot);src:url(fonts/KaTeX_Size2-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Size2-Regular.woff2) format('woff2'),url(fonts/KaTeX_Size2-Regular.woff) format('woff'),url(fonts/KaTeX_Size2-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size3;src:url(fonts/KaTeX_Size3-Regular.eot);src:url(fonts/KaTeX_Size3-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Size3-Regular.woff2) format('woff2'),url(fonts/KaTeX_Size3-Regular.woff) format('woff'),url(fonts/KaTeX_Size3-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size4;src:url(fonts/KaTeX_Size4-Regular.eot);src:url(fonts/KaTeX_Size4-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Size4-Regular.woff2) format('woff2'),url(fonts/KaTeX_Size4-Regular.woff) format('woff'),url(fonts/KaTeX_Size4-Regular.ttf) format('ttf');font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Typewriter;src:url(fonts/KaTeX_Typewriter-Regular.eot);src:url(fonts/KaTeX_Typewriter-Regular.eot#iefix) format('embedded-opentype'),url(fonts/KaTeX_Typewriter-Regular.woff2) format('woff2'),url(fonts/KaTeX_Typewriter-Regular.woff) format('woff'),url(fonts/KaTeX_Typewriter-Regular.ttf) format('ttf');font-weight:400;font-style:normal}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:inline-block}.katex{font:400 1.21em KaTeX_Main;line-height:1.2;white-space:nowrap;text-indent:0}.katex .katex-html{display:inline-block}.katex .katex-mathml{position:absolute;clip:rect(1px,1px,1px,1px);padding:0;border:0;height:1px;width:1px;overflow:hidden}.katex .base,.katex .strut{display:inline-block}.katex .mathit{font-family:KaTeX_Math;font-style:italic}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .amsrm,.katex .mathbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr{font-family:KaTeX_Script}.katex .mathsf{font-family:KaTeX_SansSerif}.katex .mainit{font-family:KaTeX_Main;font-style:italic}.katex .textstyle>.mord+.mop{margin-left:.16667em}.katex .textstyle>.mord+.mbin{margin-left:.22222em}.katex .textstyle>.mord+.mrel{margin-left:.27778em}.katex .textstyle>.mop+.mop,.katex .textstyle>.mop+.mord,.katex .textstyle>.mord+.minner{margin-left:.16667em}.katex .textstyle>.mop+.mrel{margin-left:.27778em}.katex .textstyle>.mop+.minner{margin-left:.16667em}.katex .textstyle>.mbin+.minner,.katex .textstyle>.mbin+.mop,.katex .textstyle>.mbin+.mopen,.katex .textstyle>.mbin+.mord{margin-left:.22222em}.katex .textstyle>.mrel+.minner,.katex .textstyle>.mrel+.mop,.katex .textstyle>.mrel+.mopen,.katex .textstyle>.mrel+.mord{margin-left:.27778em}.katex .textstyle>.mclose+.mop{margin-left:.16667em}.katex .textstyle>.mclose+.mbin{margin-left:.22222em}.katex .textstyle>.mclose+.mrel{margin-left:.27778em}.katex .textstyle>.mclose+.minner,.katex .textstyle>.minner+.mop,.katex .textstyle>.minner+.mord,.katex .textstyle>.mpunct+.mclose,.katex .textstyle>.mpunct+.minner,.katex .textstyle>.mpunct+.mop,.katex .textstyle>.mpunct+.mopen,.katex .textstyle>.mpunct+.mord,.katex .textstyle>.mpunct+.mpunct,.katex .textstyle>.mpunct+.mrel{margin-left:.16667em}.katex .textstyle>.minner+.mbin{margin-left:.22222em}.katex .textstyle>.minner+.mrel{margin-left:.27778em}.katex .mclose+.mop,.katex .minner+.mop,.katex .mop+.mop,.katex .mop+.mord,.katex .mord+.mop,.katex .textstyle>.minner+.minner,.katex .textstyle>.minner+.mopen,.katex .textstyle>.minner+.mpunct{margin-left:.16667em}.katex .reset-textstyle.textstyle{font-size:1em}.katex .reset-textstyle.scriptstyle{font-size:.7em}.katex .reset-textstyle.scriptscriptstyle{font-size:.5em}.katex .reset-scriptstyle.textstyle{font-size:1.42857em}.katex .reset-scriptstyle.scriptstyle{font-size:1em}.katex .reset-scriptstyle.scriptscriptstyle{font-size:.71429em}.katex .reset-scriptscriptstyle.textstyle{font-size:2em}.katex .reset-scriptscriptstyle.scriptstyle{font-size:1.4em}.katex .reset-scriptscriptstyle.scriptscriptstyle{font-size:1em}.katex .style-wrap{position:relative}.katex .vlist{display:inline-block}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist .baseline-fix{display:inline-table;table-layout:fixed}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{width:100%}.katex .mfrac .frac-line:before{border-bottom-style:solid;border-bottom-width:1px;content:"";display:block}.katex .mfrac .frac-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:"";display:block;margin-top:-1px}.katex .mspace{display:inline-block}.katex .mspace.negativethinspace{margin-left:-.16667em}.katex .mspace.thinspace{width:.16667em}.katex .mspace.mediumspace{width:.22222em}.katex .mspace.thickspace{width:.27778em}.katex .mspace.enspace{width:.5em}.katex .mspace.quad{width:1em}.katex .mspace.qquad{width:2em}.katex .llap,.katex .rlap{width:0;position:relative}.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .rlap>.inner{left:0}.katex .katex-logo .a{font-size:.75em;margin-left:-.32em;position:relative;top:-.2em}.katex .katex-logo .t{margin-left:-.23em}.katex .katex-logo .e{margin-left:-.1667em;position:relative;top:.2155em}.katex .katex-logo .x{margin-left:-.125em}.katex .rule{display:inline-block;border-style:solid;position:relative}.katex .overline .overline-line{width:100%}.katex .overline .overline-line:before{border-bottom-style:solid;border-bottom-width:1px;content:"";display:block}.katex .overline .overline-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:"";display:block;margin-top:-1px}.katex .sqrt>.sqrt-sign{position:relative}.katex .sqrt .sqrt-line{width:100%}.katex .sqrt .sqrt-line:before{border-bottom-style:solid;border-bottom-width:1px;content:"";display:block}.katex .sqrt .sqrt-line:after{border-bottom-style:solid;border-bottom-width:.04em;content:"";display:block;margin-top:-1px}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer,.katex .sizing{display:inline-block}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:2em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:3.46em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:4.14em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.98em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.47142857em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.95714286em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.55714286em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.875em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.125em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.25em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.5em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.8em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.1625em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.5875em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:3.1125em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.77777778em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.88888889em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.6em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.92222222em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.3em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.76666667em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.7em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.8em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.9em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.2em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.44em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.73em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:2.07em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.49em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.58333333em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.66666667em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.75em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.83333333em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44166667em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.725em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.075em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.48611111em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.55555556em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.625em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.69444444em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.20138889em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.4375em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72916667em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.28901734em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.40462428em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.46242775em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.52023121em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.57803468em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69364162em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83236994em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.19653179em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.43930636em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.24154589em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.33816425em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.38647343em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.43478261em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.48309179em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.57971014em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69565217em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83574879em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20289855em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.20080321em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2811245em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.32128514em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.36144578em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.40160643em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48192771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57831325em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69477912em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8313253em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist>span,.katex .op-limits>.vlist>span{text-align:center}.katex .accent .accent-body>span{width:0}.katex .accent .accent-body.accent-vec>span{position:relative;left:.326em}.katex .mtable .vertical-separator{display:inline-block;margin:0 -.025em;border-right:.05em solid #000}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist{text-align:center}.katex .mtable .col-align-l>.vlist{text-align:left}.katex .mtable .col-align-r>.vlist{text-align:right}
\ No newline at end of file diff --git a/web/static/fonts/Arvo-regular.eot b/web/static/fonts/Arvo-regular.eot Binary files differnew file mode 100644 index 000000000..a69a4110d --- /dev/null +++ b/web/static/fonts/Arvo-regular.eot diff --git a/web/static/fonts/Arvo-regular.svg b/web/static/fonts/Arvo-regular.svg new file mode 100644 index 000000000..6352e5077 --- /dev/null +++ b/web/static/fonts/Arvo-regular.svg @@ -0,0 +1,445 @@ +<?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"> +<defs > +<font id="Arvo" horiz-adv-x="967" ><font-face + font-family="Arvo" + units-per-em="2048" + panose-1="2 0 0 0 0 0 0 0 0 0" + ascent="1968" + descent="-506" + alphabetic="0" /> +<glyph unicode=" " glyph-name="space" horiz-adv-x="448" d="" /> +<glyph unicode="!" glyph-name="exclam" horiz-adv-x="682" d="M211 121Q211 147 221 170T249 211T291 239T342 250Q368 250 391 240T432 212T460 171T471 121Q471 94 461 70T433 28T392 -1T342 -12Q315 -12 291 -2T250 27T222 70T211 121ZM211 1577H471L430 410H252L211 +1577Z" /> +<glyph unicode=""" glyph-name="quotedbl" horiz-adv-x="651" d="M251 1059H82L41 1577H269L251 1059ZM588 1059H419L405 1577H635L588 1059Z" /> +<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="1423" d="M170 1198H422L485 1516H676L614 1198H965L1028 1516H1219L1157 1198H1382L1343 999H1118L1037 584H1276L1239 389H999L924 0H731L807 389H456L381 0H184L261 389H20L61 584H300L382 999H129L170 +1198ZM494 584H845L926 999H575L494 584Z" /> +<glyph unicode="$" glyph-name="dollar" horiz-adv-x="1210" d="M516 -186V136Q417 152 360 197T269 303H150V475H401V464L403 465Q403 384 459 342T625 299Q725 299 783 338T842 449Q842 486 823 511T774 552T708 579T639 598L463 645Q406 660 358 684T276 745T222 +830T203 944Q203 1002 224 1051T285 1139T383 1202T516 1238V1579H713V1237Q798 1222 860 1183T960 1090H1061V918H852L829 915V918H827V940Q817 1005 762 1045T616 1085Q507 1085 450 1050T393 952Q393 910 411 885T458 845T519 821T584 803L758 750Q824 730 876 +705T965 645T1020 566T1040 459Q1040 397 1017 344T950 248T847 177T713 136V-186H516Z" /> +<glyph unicode="%" glyph-name="percent" horiz-adv-x="1730" d="M75 1167Q75 1234 100 1294T170 1400T279 1472T417 1499Q492 1499 555 1473T663 1401T733 1295T759 1167Q759 1099 735 1039T665 933T557 861T417 834Q339 834 276 860T169 933T100 1039T75 1167ZM417 +1335Q381 1335 350 1323T295 1288T258 1234T244 1167Q244 1132 257 1101T294 1046T349 1009T417 995Q452 995 483 1008T537 1045T573 1099T587 1167Q587 1203 574 1234T537 1287T483 1322T417 1335ZM1252 1540H1447L406 -16H212L1252 1540ZM941 323Q941 390 966 +450T1036 555T1145 628T1283 655Q1358 655 1421 628T1529 556T1600 450T1625 323Q1625 255 1601 195T1532 89T1424 16T1283 -11Q1205 -11 1142 16T1035 88T966 194T941 323ZM1283 491Q1248 491 1217 478T1162 443T1125 390T1111 323Q1111 288 1124 257T1161 202T1216 +165T1283 151Q1318 151 1349 164T1403 201T1439 255T1453 323Q1453 359 1440 389T1403 442T1349 478T1283 491Z" /> +<glyph unicode="&" glyph-name="ampersand" horiz-adv-x="1468" d="M1288 -6L1052 222Q1010 170 961 127T857 53T739 4T606 -14Q509 -14 425 20T278 113T179 252T143 426Q143 487 161 544T212 652T288 742T424 829L358 893Q332 917 308 948T265 1015T235 1090T223 +1167Q223 1247 254 1316T338 1436T464 1516T618 1546Q705 1546 779 1515T908 1432T993 1311T1024 1167Q1024 1107 1012 1062T978 980T926 915T861 860T790 815T716 775L1022 490Q1054 563 1073 634T1104 764H1292Q1275 670 1240 569T1151 371L1427 115L1288 -6ZM473 +666Q439 652 412 628T364 572T333 504T322 430Q322 372 344 323T406 237T499 181T614 160Q666 160 712 173T798 209T871 265T934 336L554 703L473 666ZM784 1026Q810 1054 828 1090T846 1167Q846 1209 828 1248T778 1317T706 1364T618 1382Q568 1382 528 1366T458 +1320T413 1253T397 1169Q397 1127 417 1081T492 983L581 900Q640 926 692 956T784 1026Z" /> +<glyph unicode="'" glyph-name="quotesingle" horiz-adv-x="340" d="M216 1059H37V1577L264 1593L216 1059Z" /> +<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="721" d="M530 -451Q440 -339 368 -216T246 39T168 309T141 590Q141 732 168 870T245 1140T368 1394T530 1630L668 1520Q589 1420 528 1309T424 1080T360 839T338 590Q338 465 360 342T424 100T527 -129T668 +-340L530 -451Z" /> +<glyph unicode=")" glyph-name="parenright" horiz-adv-x="721" d="M53 -340Q132 -240 193 -130T297 99T361 341T383 590Q383 715 361 838T297 1080T194 1309T53 1520L190 1630Q280 1518 352 1395T475 1140T553 871T580 590Q580 448 553 310T475 40T352 -215T190 +-451L53 -340Z" /> +<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="836" d="M483 1295L731 1376L768 1257L519 1177L676 963L567 891L418 1097L270 893L162 963L317 1175L59 1257L98 1382L350 1300V1546H483V1295Z" /> +<glyph unicode="+" glyph-name="plus" horiz-adv-x="1311" d="M143 791H563V1210H745V791H1167V608H745V186H563V608H143V791Z" /> +<glyph unicode="," glyph-name="comma" horiz-adv-x="569" d="M205 283L424 197L164 -340L20 -287L205 283Z" /> +<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="737" d="M94 496V668H645V496H94Z" /> +<glyph unicode="." glyph-name="period" horiz-adv-x="456" d="M96 121Q96 147 106 170T135 211T176 239T227 250Q253 250 276 240T317 212T345 171T356 121Q356 94 346 70T318 28T277 -1T227 -12Q200 -12 177 -2T135 27T107 70T96 121Z" /> +<glyph unicode="/" glyph-name="slash" horiz-adv-x="848" d="M637 1569H811L211 -29H37L637 1569Z" /> +<glyph unicode="0" glyph-name="zero" horiz-adv-x="1330" d="M655 -18Q493 -18 384 42T210 207T116 453T88 756Q88 929 126 1079T228 1321T389 1476T657 1540Q818 1540 925 1489T1101 1333T1199 1078T1227 762Q1227 599 1199 457T1105 210T928 43T655 -18ZM655 +160Q772 160 843 207T951 337T1006 528T1024 762Q1024 881 1010 990T956 1184T844 1318T657 1368Q538 1368 469 1318T366 1198T313 1004T293 762Q293 638 305 529T356 337T466 208T655 160Z" /> +<glyph unicode="1" glyph-name="one" horiz-adv-x="858" d="M242 172H389V1281L82 1114V1323L504 1559H584V172H733V0H242V172Z" /> +<glyph unicode="2" glyph-name="two" horiz-adv-x="1100" d="M88 147L621 791Q648 823 677 860T732 938T774 1023T791 1116Q791 1166 771 1210T716 1287T633 1339T526 1358Q474 1358 428 1342T346 1293T290 1214T266 1104H86Q87 1199 123 1279T219 1418T360 1509T528 +1542Q630 1542 713 1510T855 1420T946 1285T979 1116Q979 1080 971 1040T942 953T888 853T803 739L330 176H977V0H88V147Z" /> +<glyph unicode="3" glyph-name="three" horiz-adv-x="1110" d="M780 1120Q780 1159 764 1203T713 1285T626 1347T502 1372Q443 1372 395 1352T298 1275T246 1151H56Q61 1238 99 1308T197 1431T335 1515T500 1546Q607 1546 694 1511T842 1417T937 1283T971 1130Q971 +1082 959 1034T922 943T856 862T759 797Q806 779 847 747T920 669T969 567T987 442Q987 344 949 261T846 116T694 21T506 -14Q414 -14 324 18T170 111T77 236T41 365H233Q262 272 336 219T526 166Q578 166 627 187T715 245T776 333T799 444Q799 507 776 558T714 +644T624 699T514 719H428V870H498Q564 870 616 889T705 943T760 1022T780 1120Z" /> +<glyph unicode="4" glyph-name="four" horiz-adv-x="1251" d="M92 596L631 1516H844L331 610H719V860L915 874V610H1141V438H915V172H1065V0H573V172H719V438H90L92 596Z" /> +<glyph unicode="5" glyph-name="five" horiz-adv-x="1139" d="M317 894Q373 932 432 951T567 971Q679 971 773 931T934 823T1039 665T1077 473Q1077 371 1040 280T935 119T772 10T559 -31Q470 -31 393 -8T254 58T147 160T74 289L238 371Q254 320 285 277T358 202T451 +153T559 135Q631 135 692 161T799 234T871 341T897 473Q897 544 871 604T799 709T692 779T559 805Q479 805 412 777T299 700L152 723V1516H1006V1350H317V894Z" /> +<glyph unicode="6" glyph-name="six" horiz-adv-x="1249" d="M815 1516L475 949Q536 975 585 979T674 983Q766 983 852 949T1004 852T1111 703T1151 512Q1151 385 1108 286T992 119T823 16T618 -20Q516 -20 422 17T254 120T138 280T94 488Q94 576 127 662T211 +842L582 1516H815ZM596 819Q524 819 474 797T378 734T307 631T281 486Q281 408 307 346T379 242T487 177T623 154Q691 154 753 178T862 246T937 351T965 486Q965 568 935 630T855 735T737 798T596 819Z" /> +<glyph unicode="7" glyph-name="seven" horiz-adv-x="1077" d="M182 172H299Q353 326 418 484T550 793T682 1078T801 1323H233V1206H41V1516H1036V1366Q970 1236 898 1091T756 792T619 482T499 172H625V0H182V172Z" /> +<glyph unicode="8" glyph-name="eight" horiz-adv-x="1276" d="M631 1544Q717 1544 793 1513T928 1428T1019 1302T1053 1147Q1053 1049 1007 966T884 829Q935 799 977 758T1049 667T1095 560T1112 442Q1112 347 1074 264T969 119T815 20T627 -16Q526 -16 437 20T282 +118T178 264T139 442Q139 503 155 560T202 667T275 758T370 830Q294 885 250 967T205 1147Q205 1229 238 1301T328 1428T464 1513T631 1544ZM322 446Q322 387 346 335T411 243T508 181T627 158Q689 158 744 181T840 243T906 334T930 446Q930 504 906 556T841 647T744 +708T627 731Q564 731 509 709T412 647T346 556T322 446ZM377 1143Q377 1093 396 1050T449 974T529 922T631 903Q682 903 727 922T806 973T861 1049T881 1143Q881 1192 861 1235T807 1311T727 1363T631 1382Q576 1382 530 1363T449 1312T396 1236T377 1143Z" /> +<glyph unicode="9" glyph-name="nine" horiz-adv-x="1270" d="M430 0L779 572Q729 552 688 545T600 538Q512 538 418 572T257 669T147 823T103 1009Q103 1136 146 1235T262 1402T431 1505T636 1541Q744 1541 837 1505T1004 1402T1118 1241T1160 1033Q1160 945 +1127 859T1043 679L663 0H430ZM631 1367Q563 1367 501 1343T392 1275T317 1170T289 1035Q289 953 319 891T399 786T512 723T638 702Q730 702 780 724T876 787T947 890T973 1035Q973 1113 947 1175T875 1279T767 1344T631 1367Z" /> +<glyph unicode=":" glyph-name="colon" horiz-adv-x="524" d="M96 907Q96 933 106 956T135 997T176 1025T227 1036Q253 1036 276 1026T317 998T345 957T356 907Q356 880 346 856T318 814T277 785T227 774Q200 774 177 785T135 814T107 856T96 907ZM96 121Q96 147 +106 170T135 211T176 239T227 250Q253 250 276 240T317 212T345 171T356 121Q356 94 346 70T318 28T277 -1T227 -12Q200 -12 177 -2T135 27T107 70T96 121Z" /> +<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="524" d="M96 907Q96 933 106 956T135 997T176 1025T227 1036Q253 1036 276 1026T317 998T345 957T356 907Q356 880 346 856T318 814T277 785T227 774Q200 774 177 785T135 814T107 856T96 907ZM164 283L383 +197L123 -340L-20 -287L164 283Z" /> +<glyph unicode="<" glyph-name="less" horiz-adv-x="1001" d="M10 761L853 1184V999L175 684L853 369V184L10 605V761Z" /> +<glyph unicode="=" glyph-name="equal" horiz-adv-x="922" d="M86 446H836V305H86V446ZM86 784H836V643H86V784Z" /> +<glyph unicode=">" glyph-name="greater" horiz-adv-x="1147" d="M1007 605L164 184V369L842 684L164 999V1184L1007 761V605Z" /> +<glyph unicode="?" glyph-name="question" horiz-adv-x="1065" d="M338 121Q338 147 348 170T376 211T418 239T469 250Q495 250 518 240T559 212T587 171T598 121Q598 94 588 70T560 28T519 -1T469 -12Q442 -12 418 -2T377 27T349 70T338 121ZM381 336Q381 440 +388 512T417 645T475 751T571 846Q624 891 667 924T742 988T790 1056T807 1145Q807 1190 789 1232T741 1306T669 1359T580 1379Q499 1379 445 1351T358 1284T311 1200T297 1125L121 1137Q126 1221 161 1296T257 1427T399 1517T580 1551Q680 1551 757 1518T888 1430T968 +1303T995 1151Q995 1049 943 963T788 805Q741 772 681 720T595 592T565 464T561 336H381Z" /> +<glyph unicode="@" glyph-name="at" horiz-adv-x="2310" d="M1589 956V293Q1589 232 1606 201T1648 156T1709 141Q1783 141 1832 181T1910 279T1950 396T1962 547Q1962 649 1933 744T1852 924T1725 1079T1560 1200T1364 1279T1145 1307Q1032 1307 928 1278T733 +1196T568 1069T441 905T359 710T330 494Q330 381 359 277T440 81T567 -84T732 -211T927 -293T1145 -322Q1260 -322 1367 -292T1567 -205L1661 -362Q1548 -431 1418 -468T1145 -506Q1007 -506 879 -471T640 -370T438 -214T281 -11T181 228T145 494Q145 631 180 758T281 +997T437 1199T640 1355T879 1455T1145 1491Q1285 1491 1413 1457T1653 1360T1855 1211T2010 1019T2110 795T2146 547Q2146 479 2133 410T2094 278T2031 160T1944 65T1834 1T1704 -23Q1612 -23 1550 17T1453 120Q1390 68 1311 39T1141 10Q1036 10 949 46T797 147T698 +296T662 479Q662 576 699 661T800 811T952 912T1141 950Q1214 950 1281 930T1405 873V956H1589ZM1141 195Q1235 195 1303 238T1405 351V604Q1388 639 1362 669T1301 720T1227 754T1141 766Q1077 766 1023 743T930 681T868 590T846 479Q846 420 867 369T926 279T1019 +218T1141 195Z" /> +<glyph unicode="A" glyph-name="A" horiz-adv-x="1542" d="M1040 172H1166L1046 516H463L346 172H502V0H10V172H142L614 1516H909L1380 172H1532V0H1040V172ZM520 682H988L752 1360L520 682Z" /> +<glyph unicode="B" glyph-name="B" horiz-adv-x="1352" d="M143 172H287V1343H143V1518L825 1516Q917 1516 998 1482T1139 1388T1233 1247T1268 1073Q1268 976 1214 896T1060 768Q1109 742 1149 708T1217 632T1260 545T1276 451Q1276 356 1242 274T1147 131T1007 +35T834 0H143V172ZM483 674V172H836Q884 172 925 196T997 258T1045 346T1063 446Q1063 490 1045 531T997 604T925 655T836 674H483ZM483 1343V848H827Q875 848 916 867T988 918T1037 992T1055 1079Q1055 1128 1037 1175T988 1260T916 1320T827 1343H483Z" /> +<glyph unicode="C" glyph-name="C" horiz-adv-x="1509" d="M1219 1116Q1152 1230 1042 1295T795 1360Q679 1360 583 1311T419 1180T312 989T274 760Q274 618 316 509T425 327T586 206T795 157Q953 157 1070 233T1270 485L1446 402Q1408 294 1317 194T1093 32T797 +-30Q642 -30 512 28T281 195T126 451T72 760Q72 922 125 1066T275 1316T505 1484T795 1546Q934 1546 1035 1507T1206 1413T1328 1294H1434V1116H1219Z" /> +<glyph unicode="D" glyph-name="D" horiz-adv-x="1507" d="M143 1516H707Q811 1516 905 1489T1080 1413T1227 1296T1339 1143T1411 963T1436 762Q1436 656 1411 559T1340 377T1227 223T1080 104T905 27T707 0H143V172H287V1343H143V1516ZM483 1343V172H719Q824 +172 916 218T1078 343T1187 530T1227 762Q1227 884 1187 990T1078 1174T917 1298T719 1343H483Z" /> +<glyph unicode="E" glyph-name="E" horiz-adv-x="1286" d="M143 1516H1229V1087H1024V1343H483V858H938V686H483V172H1024V428H1229V0H143V172H287V1343H143V1516Z" /> +<glyph unicode="F" glyph-name="F" horiz-adv-x="1243" d="M143 1516H1229V1087H1024V1343H483V856H1004V688H483V172H635V0H143V172H287V1343H143V1516Z" /> +<glyph unicode="G" glyph-name="G" horiz-adv-x="1683" d="M1313 -6V298Q1275 219 1218 161T1091 64T942 7T780 -12Q632 -12 507 37T281 195T126 451T72 760Q72 922 125 1066T275 1317T505 1485T795 1546Q939 1546 1042 1505T1219 1406T1337 1294H1434V1116H1219Q1152 +1230 1042 1296T794 1360Q679 1360 583 1311T419 1179T312 988T274 760Q274 627 316 513T423 328T583 211T795 164Q987 164 1110 257T1282 549H858V721H1499V-6H1313Z" /> +<glyph unicode="H" glyph-name="H" horiz-adv-x="1843" d="M1208 1516H1700V1344H1556V172H1700V0H1208V172H1360V717H483V172H635V0H143V172H287V1344H143V1516H635V1344H483V885H1360V1344H1208V1516Z" /> +<glyph unicode="I" glyph-name="I" horiz-adv-x="770" d="M143 1516H627V1343H483V172H627V0H143V172H287V1343H143V1516Z" /> +<glyph unicode="J" glyph-name="J" horiz-adv-x="682" d="M150 1516H641V1343H514V172Q514 150 504 121T477 58T438 -9T394 -77Q341 -154 274 -238L102 -223Q161 -133 208 -51Q228 -16 247 20T281 91T305 154T315 205V1343H150V1516Z" /> +<glyph unicode="K" glyph-name="K" horiz-adv-x="1567" d="M1147 1343V1516H1495V1343H1376L712 784L1333 172H1495V0H1087V172L485 774L1147 1343ZM145 1516H637V1343H483V172H635V0H143V172H287V1343H145V1516Z" /> +<glyph unicode="L" glyph-name="L" horiz-adv-x="1296" d="M143 1516H635V1343H483V172H1006Q1022 172 1038 179T1067 199T1088 226T1096 258V449H1286V0H143V172H287V1343H143V1516Z" /> +<glyph unicode="M" glyph-name="M" horiz-adv-x="2189" d="M143 172H287V1325H143V1516H623L1104 207L1591 1516H2046V1325H1903V172H2046V0H1554V172H1716V1336L1186 0H1016L479 1339V172H635V0H143V172Z" /> +<glyph unicode="N" glyph-name="N" horiz-adv-x="1624" d="M1081 1516H1573V1343H1444V0H1188L483 1257V172H639V0H147V172H287V1343H143V1518H551L1243 273L1251 321V1343H1081V1516Z" /> +<glyph unicode="O" glyph-name="O" horiz-adv-x="1597" d="M799 -30Q642 -30 512 28T280 195T125 451T72 758Q72 922 125 1066T275 1316T505 1484T799 1546Q960 1546 1094 1485T1324 1317T1473 1066T1526 758Q1526 594 1473 451T1323 200T1093 32T799 -30ZM799 +156Q918 156 1014 205T1179 336T1284 528T1321 758Q1321 882 1281 997T1168 1193T999 1316T799 1360Q680 1360 583 1311T418 1180T313 988T276 758Q276 618 317 509T425 327T586 205T799 156Z" /> +<glyph unicode="P" glyph-name="P" horiz-adv-x="1272" d="M143 1516H756Q858 1516 943 1490T1091 1412T1188 1283T1223 1106Q1223 1023 1189 950T1093 821T945 734T752 702H483V172H635V0H143V172H287V1343H143V1516ZM483 1343V866H756Q813 866 860 881T942 927T996 +1002T1016 1106Q1016 1218 948 1280T731 1343H483Z" /> +<glyph unicode="Q" glyph-name="Q" horiz-adv-x="1597" d="M698 -24Q558 -5 443 63T245 235T117 474T72 758Q72 922 125 1066T275 1316T505 1484T799 1546Q960 1546 1094 1485T1324 1317T1473 1066T1526 758Q1526 606 1480 472T1349 233T1148 60T890 -25Q955 -42 +994 -65T1092 -117T1210 -147Q1267 -147 1311 -119T1370 -31L1522 -100Q1510 -156 1478 -198T1402 -269T1308 -312T1210 -326Q1133 -326 1066 -298T924 -230T782 -190Q741 -190 698 -203V-24ZM799 156Q918 156 1014 205T1179 336T1284 528T1321 758Q1321 882 1281 +996T1167 1192T1001 1316T799 1360Q680 1360 583 1311T418 1180T313 988T276 758Q276 621 316 511T424 328T590 205T799 156Z" /> +<glyph unicode="R" glyph-name="R" horiz-adv-x="1458" d="M143 1516H774Q875 1516 960 1490T1108 1412T1206 1283T1241 1106Q1241 1049 1221 994T1164 891T1077 806T968 749Q993 738 1018 718T1066 668T1107 601T1137 520L1221 190H1352L1354 0H1059L946 461Q915 +585 852 643T678 702H483V172H635V0H143V172H287V1343H143V1516ZM483 1343V866H774Q831 866 878 881T960 926T1014 1000T1034 1104Q1034 1217 966 1280T750 1343H483Z" /> +<glyph unicode="S" glyph-name="S" horiz-adv-x="1210" d="M920 1192T888 1236T818 1303T733 1339T641 1352Q565 1352 508 1335T414 1287T357 1217T338 1133Q338 1067 361 1027T421 962T500 923T584 895L786 829Q877 800 946 763T1063 676T1134 559T1159 406Q1159 +312 1121 232T1013 93T849 1T639 -33Q522 -33 439 -7T300 64T209 166T156 283H80V455H332Q332 344 355 298T421 222T521 176T649 160Q717 160 771 176T864 222T923 296T944 395Q944 456 919 498T853 571T766 620T674 653L455 715Q383 737 324 771T222 854T156 968T133 +1120Q133 1207 167 1283T267 1416T428 1505T647 1538Q728 1538 796 1519T920 1466T1018 1383T1090 1276H1165V1104H920Q920 1192 888 1236Z" /> +<glyph unicode="T" glyph-name="T" horiz-adv-x="1434" d="M453 172H592V1352H246V1116H41V1516H1393V1116H1188V1352H788V172H944V0H453V172Z" /> +<glyph unicode="U" glyph-name="U" horiz-adv-x="1550" d="M113 1516H604V1343H449V637Q449 510 477 421T556 275T676 192T829 166Q915 166 987 189T1110 266T1190 411T1219 637V1343H1055V1516H1546V1343H1411V659Q1411 495 1366 368T1241 155T1055 25T825 -20Q705 +-20 601 24T419 153T297 360T252 641V1343H113V1516Z" /> +<glyph unicode="V" glyph-name="V" horiz-adv-x="1485" d="M1013 1516H1505V1343H1374L883 0H608L124 1343H-10V1516H482V1343H350L739 174L1156 1343H1013V1516Z" /> +<glyph unicode="W" glyph-name="W" horiz-adv-x="2560" d="M2058 1516H2550V1343H2418L1985 0H1679L1268 1321L889 0H586L144 1343H10V1516H502V1343H370L737 178L1124 1516H1423L1835 178L2209 1343H2058V1516Z" /> +<glyph unicode="X" glyph-name="X" horiz-adv-x="1500" d="M950 1516H1442V1343H1330L920 774L1348 172H1442V0H950V172H1135L811 623L485 172H662V0H170V172H269L701 775L293 1343H170V1516H662V1343H516L811 928L1109 1343H950V1516Z" /> +<glyph unicode="Y" glyph-name="Y" horiz-adv-x="1354" d="M51 1516H543V1343H399L684 856L989 1343H831V1516H1323V1343H1194L768 697V172H924V0H432V172H571V702L169 1343H51V1516Z" /> +<glyph unicode="Z" glyph-name="Z" horiz-adv-x="1214" d="M1163 1292L250 172H961V424H1157V0H51V227L951 1343H264V1087H68V1516H1163V1292Z" /> +<glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="721" d="M238 1706H641V1555H422V-225H641V-377H238V1706Z" /> +<glyph unicode="\" glyph-name="backslash" horiz-adv-x="948" d="M41 1581H203L907 -25H745L41 1581Z" /> +<glyph unicode="]" glyph-name="bracketright" horiz-adv-x="721" d="M299 1555H80V1706H483V-377H80V-225H299V1555Z" /> +<glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="1229" d="M672 1513L1075 723H932L617 1349L297 723H156L559 1513H672Z" /> +<glyph unicode="_" glyph-name="underscore" horiz-adv-x="1024" d="M0 -154H1024V-256H0V-154Z" /> +<glyph unicode="`" glyph-name="grave" horiz-adv-x="590" d="M387 1178L100 1460V1477H348L532 1178H387Z" /> +<glyph unicode="a" glyph-name="a" horiz-adv-x="1120" d="M709 96Q650 41 579 6T416 -29Q340 -29 277 -5T167 60T96 157T70 274Q70 340 89 391T141 479T217 542T308 583T405 605T500 612Q572 612 621 608T710 595L711 680Q711 735 695 775T650 842T581 882T490 +895Q443 895 400 889T320 872T251 848T197 819L136 948Q173 972 217 992T309 1027T408 1050T508 1059Q598 1059 670 1038T792 971T869 857T896 690L895 172H1010V0H709V96ZM457 127Q494 127 531 136T601 160T662 196T709 239L710 473H494Q440 473 396 461T319 426T268 +369T250 291Q250 250 265 220T307 169T373 138T457 127Z" /> +<glyph unicode="b" glyph-name="b" horiz-adv-x="1253" d="M57 1556H393V950Q459 1001 537 1031T698 1061Q800 1061 885 1023T1031 916T1127 751T1161 537Q1161 412 1123 311T1018 136T857 24T653 -16Q576 -16 509 6T393 65V0H207V1384H57V1556ZM649 897Q576 897 +509 867T393 786V229Q425 196 487 171T643 145Q707 145 766 169T870 241T942 362T969 530Q969 618 944 686T875 801T773 872T649 897Z" /> +<glyph unicode="c" glyph-name="c" horiz-adv-x="1118" d="M848 760Q806 835 742 870T592 905Q527 905 470 878T371 801T304 680T279 520Q279 433 303 363T371 244T470 168T592 141Q688 141 759 187T872 324L1026 248Q996 184 952 133T853 46T731 -9T590 -29Q482 +-29 391 11T233 125T129 299T92 520Q92 640 131 741T238 914T397 1028T592 1069Q690 1069 777 1035T931 932H1036V760H848Z" /> +<glyph unicode="d" glyph-name="d" horiz-adv-x="1268" d="M711 1556H1038V172H1190V0H852V85Q802 34 736 6T586 -23Q481 -23 391 13T234 120T130 293T92 528Q92 648 128 746T230 914T389 1022T596 1061Q671 1061 733 1045T852 987V1384H711V1556ZM610 139Q693 +139 749 163T852 237V817Q802 859 737 878T604 897Q538 897 480 873T379 801T310 686T285 530Q285 434 309 361T376 239T479 164T610 139Z" /> +<glyph unicode="e" glyph-name="e" horiz-adv-x="1175" d="M276 494Q276 450 282 414T301 344Q338 244 419 194T604 143Q685 143 761 165T922 236L997 109Q895 39 792 5T578 -29Q473 -29 384 6T230 110T129 282T92 522Q92 633 123 731T215 903T368 1020T580 1063Q697 +1063 775 1028T903 934T978 800T1014 647Q1019 609 1020 570T1022 494H276ZM567 907Q502 907 454 889T371 836T317 751T286 639H823Q819 697 805 746T760 831T683 887T567 907Z" /> +<glyph unicode="f" glyph-name="f" horiz-adv-x="745" d="M442 1036H682V885H442V172H604V0H100V172H256V885H85V1036H256V1198Q258 1288 282 1355T350 1467T456 1534T594 1556Q647 1556 689 1551T764 1538T822 1519T868 1499L811 1366Q779 1383 728 1395T620 +1407Q537 1407 490 1356T442 1204V1036Z" /> +<glyph unicode="g" glyph-name="g" horiz-adv-x="1200" d="M858 91Q807 37 740 7T586 -23Q481 -23 391 13T234 120T130 293T92 528Q92 648 128 746T230 914T389 1022T596 1061Q674 1061 736 1044T858 983V1036H1044V41Q1044 -205 928 -331T565 -457Q511 -457 452 +-449T336 -424T224 -379T123 -313L223 -162Q253 -188 291 -210T374 -247T465 -272T559 -281Q636 -281 692 -265T785 -209T840 -99T858 76V91ZM610 139Q656 139 694 148T763 171T817 205T858 245V812Q807 857 741 877T604 897Q538 897 480 873T379 801T310 686T285 +530Q285 434 309 361T376 239T479 164T610 139Z" /> +<glyph unicode="h" glyph-name="h" horiz-adv-x="1354" d="M114 1556H442V922H448Q476 950 512 974T589 1017T672 1045T762 1055Q845 1055 912 1032T1026 962T1098 842T1124 668V172H1280V0H788V172H930V645Q930 764 870 825T696 887Q632 887 566 857T442 780V172H592V0H100V172H256V1384H114V1556Z" +/> +<glyph unicode="i" glyph-name="i" horiz-adv-x="657" d="M92 1036H430V172H586V0H94V172H242V864H92V1036ZM207 1403Q207 1429 217 1452T245 1493T287 1521T338 1532Q364 1532 387 1522T428 1494T456 1453T467 1403Q467 1376 457 1352T429 1310T388 1281T338 +1270Q311 1270 287 1280T246 1309T218 1352T207 1403Z" /> +<glyph unicode="j" glyph-name="j" horiz-adv-x="604" d="M84 1036H420V-80Q420 -169 397 -240T331 -362T224 -441T80 -471L61 -332Q150 -319 190 -248T231 -59V864H84V1036ZM207 1403Q207 1427 216 1448T242 1485T279 1510T326 1520Q350 1520 371 1511T409 1485T434 +1448T444 1403Q444 1378 435 1356T409 1318T372 1292T326 1282Q301 1282 280 1291T242 1317T217 1356T207 1403Z" /> +<glyph unicode="k" glyph-name="k" horiz-adv-x="1286" d="M92 1556H457V1384H455V610H635L881 864H819V1036H1212V864H1081L766 539L1110 172H1235V0H1016L592 463H455V172H541V0H98V172H268V1384H92V1556Z" /> +<glyph unicode="l" glyph-name="l" horiz-adv-x="666" d="M92 1556H428V172H584V0H92V172H242V1384H92V1556Z" /> +<glyph unicode="m" glyph-name="m" horiz-adv-x="2050" d="M100 1036H430V915H432Q466 944 503 969T582 1014T667 1044T760 1055Q872 1055 953 1014T1078 884Q1116 918 1158 949T1245 1004T1341 1041T1445 1055Q1529 1055 1596 1032T1710 962T1781 842T1806 668V172H1950V0H1466V172H1612V645Q1612 +764 1552 825T1379 887Q1312 887 1242 855T1122 774V172H1265V0H782V172H928V645Q928 764 868 825T694 887Q629 887 563 856T438 779V172H584V0H100V172H244V864H100V1036Z" /> +<glyph unicode="n" glyph-name="n" horiz-adv-x="1366" d="M782 172H928V645Q928 764 868 825T694 887Q629 887 563 856T438 779V172H584V0H100V172H244V864H100V1036H430V914H432Q465 943 502 969T581 1014T666 1044T760 1055Q843 1055 910 1032T1024 962T1096 +842T1122 668V172H1266V0H782V172Z" /> +<glyph unicode="o" glyph-name="o" horiz-adv-x="1225" d="M86 518Q87 641 125 742T233 915T397 1027T606 1066Q721 1066 816 1027T980 917T1086 744T1124 520Q1124 399 1086 298T980 123T817 10T606 -31Q489 -31 394 9T231 121T125 295T86 518ZM283 518Q283 429 +308 357T378 235T481 157T606 129Q675 129 734 156T838 233T907 356T932 518Q932 612 907 685T839 807T735 881T606 906Q540 906 482 881T379 807T309 685T283 518Z" /> +<glyph unicode="p" glyph-name="p" horiz-adv-x="1249" d="M59 1036H389V950Q455 1001 533 1031T694 1061Q796 1061 881 1023T1027 916T1123 751T1157 537Q1157 412 1119 309T1014 133T853 18T649 -23Q570 -23 509 -7T391 36V-299H553V-471H61V-299H203V864H59V1036ZM645 +897Q573 897 507 868T391 788V227Q424 193 485 166T639 139Q703 139 762 164T866 238T938 361T965 530Q965 618 940 686T871 801T769 872T645 897Z" /> +<glyph unicode="q" glyph-name="q" horiz-adv-x="1206" d="M698 -299H848V81Q798 32 733 5T586 -23Q481 -23 391 13T234 120T130 293T92 528Q92 648 128 746T230 914T389 1022T596 1061Q671 1061 731 1045T848 990V1036H1034V-299H1190V-471H698V-299ZM610 139Q695 +139 754 167T848 233V820Q798 861 735 879T604 897Q538 897 480 873T379 801T310 685T285 530Q285 434 309 361T376 239T479 164T610 139Z" /> +<glyph unicode="r" glyph-name="r" horiz-adv-x="960" d="M845 817H655V881Q622 881 588 869T523 831T471 766T438 672V172H614V0H100V172H243L244 864H100V1036H431V893Q449 925 471 952T521 1000T582 1032T655 1044Q707 1044 753 1044T845 1042V817Z" /> +<glyph unicode="s" glyph-name="s" horiz-adv-x="993" d="M698 800T679 829T628 877T559 904T485 913Q445 913 412 904T354 878T317 837T303 782Q303 730 334 700T440 643L639 573Q767 530 826 456T885 279Q885 210 858 153T780 55T658 -8T500 -31Q379 -31 303 +8T186 111H82V283H289Q289 240 307 210T356 160T425 132T504 123Q543 123 579 132T642 160T686 205T702 264Q702 314 670 349T559 412L361 486Q240 529 182 595T123 762Q123 828 147 884T218 980T332 1044T485 1067Q596 1067 671 1036T806 930H903V758H698Q698 +800 679 829Z" /> +<glyph unicode="t" glyph-name="t" horiz-adv-x="762" d="M400 1036H643V885H398L395 287Q395 226 409 188T454 136T524 121Q566 121 598 128T668 154L711 29Q663 4 610 -10T485 -25Q417 -25 367 -9T282 47T230 151T213 315L216 885H51V1036H218V1284L400 1370V1036Z" /> +<glyph unicode="u" glyph-name="u" horiz-adv-x="1350" d="M724 1036H1058V172H1173V0H871V96Q801 42 719 12T542 -18Q464 -18 401 4T293 74T224 195T200 369V864H60V1036H394V391Q394 272 449 211T607 150Q668 150 735 172T863 233V864H724V1036Z" /> +<glyph unicode="v" glyph-name="v" horiz-adv-x="1100" d="M20 1036H378V864H281L537 150L787 864H724V1036H1052V864H963L624 -16H440L102 864H20V1036Z" /> +<glyph unicode="w" glyph-name="w" horiz-adv-x="1640" d="M20 1036H348V864H300L481 203L729 1036H885L1122 205L1311 864H1251V1036H1579V864H1490L1206 -16H1034L799 811L565 -16H391L109 864H20V1036Z" /> +<glyph unicode="x" glyph-name="x" horiz-adv-x="1090" d="M694 172H753L547 428L346 172H397V0H53V172H137L452 539L156 864H51V1036H395V864H356L547 618L740 864H690V1036H1034V864H945L652 526L962 172H1038V0H694V172Z" /> +<glyph unicode="y" glyph-name="y" horiz-adv-x="1176" d="M31 1036H424V864H301L544 203L798 864H676V1036H1069V864H962L501 -299H643V-471H225V-299H351L461 -14L115 864H31V1036Z" /> +<glyph unicode="z" glyph-name="z" horiz-adv-x="924" d="M76 115L601 881H270V735H86V1036H827V918L303 156H657V332H850V0H76V115Z" /> +<glyph unicode="{" glyph-name="braceleft" horiz-adv-x="721" d="M133 723Q175 723 206 746T259 806T290 892T301 990V1442Q301 1505 319 1554T367 1637T435 1688T512 1706H649V1580H580Q526 1580 506 1528T485 1381V953Q485 891 472 843T437 759T384 699T317 +662V658Q353 645 383 621T436 561T472 477T485 367V-51Q485 -145 505 -197T580 -250H649V-377H512Q473 -377 435 -360T368 -308T320 -225T301 -113V330Q301 380 291 427T259 512T207 573T133 596V723Z" /> +<glyph unicode="|" glyph-name="bar" horiz-adv-x="455" d="M152 1726H307V-270H152V1726Z" /> +<glyph unicode="}" glyph-name="braceright" horiz-adv-x="721" d="M72 -377V-250H141Q195 -250 215 -198T236 -51V367Q236 428 249 476T284 561T337 621T403 658V662Q368 675 338 699T285 759T249 843T236 953V1381Q236 1475 216 1527T141 1580H72V1706H209Q248 +1706 286 1689T353 1637T401 1554T420 1442V990Q420 940 430 892T462 807T514 746T588 723V596Q546 596 515 573T462 513T431 428T420 330V-113Q420 -176 402 -225T354 -308T286 -359T209 -377H72Z" /> +<glyph unicode="~" glyph-name="asciitilde" horiz-adv-x="1229" d="M141 483Q186 567 247 613T397 659Q455 659 516 637T636 588T745 539T834 516Q877 516 920 550T1014 668L1087 553Q1042 469 982 423T831 377Q792 377 752 387T672 414T593 448T519 483T452 +509T395 520Q352 520 309 486T215 369L141 483Z" /> +<glyph unicode="¡" glyph-name="exclamdown" horiz-adv-x="682" d="M211 1010Q211 1036 221 1059T249 1100T291 1128T342 1139Q368 1139 391 1129T432 1101T460 1060T471 1010Q471 983 461 959T433 917T392 888T342 877Q315 877 291 887T250 916T222 959T211 +1010ZM252 696H430L471 -471H211L252 696Z" /> +<glyph unicode="¢" glyph-name="cent" horiz-adv-x="1210" d="M516 -186V143Q426 159 352 205T224 321T141 484T111 684Q111 790 142 881T227 1042T355 1160T516 1224V1579H713V1223Q781 1209 841 1178T949 1096H1055V924H872L868 922Q867 922 867 924H866V925Q823 +999 759 1034T610 1069Q545 1069 488 1042T389 965T322 844T297 684Q297 597 321 527T389 408T488 332T610 305Q706 305 777 351T891 487L1044 412Q995 307 910 238T713 145V-186H516Z" /> +<glyph unicode="£" glyph-name="sterling" horiz-adv-x="932" d="M33 807H228Q202 876 183 949T164 1104Q164 1182 191 1247T267 1359T384 1432T535 1458Q609 1458 671 1432T777 1358T843 1246T862 1104L696 1094Q695 1132 685 1168T654 1232T605 1277T537 +1294Q494 1294 461 1282T406 1248T371 1197T356 1135Q354 1110 356 1087T363 1038T377 982T397 915Q404 888 412 861T428 807H707V662H473Q487 619 497 581T516 510Q525 472 521 427T499 336T450 248T374 172H860V4H61V172H171Q232 207 269 255T321 361T331 484T301 +618L285 662H33V807Z" /> +<glyph unicode="¤" glyph-name="currency" horiz-adv-x="1128" d="M125 743Q125 822 150 893T221 1021L74 1198L219 1321L368 1142Q414 1166 465 1179T573 1192Q628 1192 679 1179T776 1143L913 1307L1073 1192L928 1018Q973 961 997 891T1022 743Q1022 666 +998 597T930 471L1077 295L926 176L783 347Q735 322 683 309T573 295Q516 295 465 308T366 345L221 170L55 281L219 471Q173 529 149 597T125 743ZM295 748Q295 689 317 638T377 549T466 489T575 467Q633 467 684 489T774 549T834 638T856 748Q856 806 834 857T774 +946T685 1006T575 1028Q517 1028 466 1006T377 946T317 857T295 748Z" /> +<glyph unicode="¥" glyph-name="yen" horiz-adv-x="1354" d="M51 1516H543V1344H398L684 856L989 1344H832V1516H1324V1344H1195L867 848H1051V707H768V559H1051V418H768V172H924V0H432V172H571V418H301V559H571V707H301V848H479L168 1344H51V1516Z" /> +<glyph unicode="¦" glyph-name="brokenbar" horiz-adv-x="512" d="M152 1729H307V979H152V1729ZM152 481H307V-268H152V481Z" /> +<glyph unicode="§" glyph-name="section" horiz-adv-x="1094" d="M74 -25H311V-49Q311 -104 329 -148T380 -223T461 -272T567 -289Q671 -289 729 -235T788 -84Q788 -31 770 7T723 71T658 113T588 141Q542 155 497 169T406 197Q342 216 289 246T197 319T137 +421T115 557Q115 660 163 744T305 880Q239 928 198 1005T156 1190Q156 1268 183 1333T265 1446T398 1521T580 1548Q662 1548 729 1531T849 1482T936 1407T988 1313H1053V1147H821V1203Q821 1203 821 1203T821 1203V1203Q813 1243 789 1274T732 1326T658 1359T575 +1370Q518 1370 477 1358T408 1323T368 1270T354 1202Q354 1156 371 1123T416 1065T478 1024T547 995Q624 968 691 944T813 893T912 837T986 767T1031 679T1047 563Q1047 457 995 372T851 232Q921 182 958 109T995 -72Q995 -158 963 -231T872 -357T734 -441T559 +-471Q461 -471 390 -448T270 -386T191 -296T144 -190H74V-25ZM313 567Q313 513 333 480T386 427T495 382L599 344Q710 348 775 403T840 553Q840 604 818 639T762 699T685 740T602 767Q581 766 575 766Q510 766 461 751T379 708T330 645T313 567Z" /> +<glyph unicode="¨" glyph-name="dieresis" horiz-adv-x="612" d="M39 1360Q39 1386 49 1409T77 1450T118 1478T168 1489Q193 1489 216 1479T256 1451T283 1410T293 1360Q293 1333 283 1309T256 1267T216 1238T168 1227Q142 1227 119 1237T78 1266T50 1309T39 +1360ZM498 1360Q498 1386 508 1409T536 1450T577 1478T627 1489Q652 1489 674 1479T714 1451T742 1410T752 1360Q752 1333 742 1309T715 1267T675 1238T627 1227Q601 1227 578 1237T537 1266T509 1309T498 1360Z" /> +<glyph unicode="©" glyph-name="copyright" horiz-adv-x="1919" d="M102 831Q102 949 132 1058T218 1263T352 1436T525 1569T729 1655T958 1686Q1076 1686 1186 1656T1391 1570T1565 1436T1700 1263T1786 1059T1817 831Q1817 712 1787 603T1700 398T1566 +225T1392 92T1186 6T958 -25Q839 -25 730 5T525 91T352 225T219 398T133 602T102 831ZM283 831Q283 689 335 566T479 351T694 207T958 154Q1099 154 1221 206T1436 350T1581 565T1634 831Q1634 971 1582 1100T1437 1316T1222 1454T958 1507Q817 1507 694 1455T480 +1316T336 1101T283 831ZM1190 1059Q1142 1105 1090 1126T979 1147Q915 1147 859 1123T762 1055T696 955T672 834Q672 770 696 714T761 616T859 550T979 526Q1035 526 1087 548T1171 606L1305 477Q1282 447 1246 421T1167 375T1076 344T979 332Q874 332 783 371T623 +478T516 637T477 834Q477 938 516 1029T623 1189T782 1297T979 1337Q1037 1337 1088 1325T1184 1292T1265 1245T1331 1190L1190 1059Z" /> +<glyph unicode="ª" glyph-name="ordfeminine" horiz-adv-x="838" d="M551 942Q509 908 461 888T350 867Q295 867 250 883T171 927T120 992T102 1072Q102 1130 129 1171T199 1239T295 1277T401 1289Q448 1289 484 1285T551 1275V1324Q551 1392 509 1422T397 +1453Q332 1453 280 1440T193 1406L143 1502Q200 1537 271 1558T416 1580Q480 1580 532 1566T620 1521T676 1444T696 1330V1017H778V886H551V942ZM375 984Q429 984 476 1004T551 1051V1187H395Q363 1187 335 1180T287 1160T256 1128T244 1084Q244 1035 279 1010T375 +984Z" /> +<glyph unicode="«" glyph-name="guillemotleft" horiz-adv-x="1040" d="M514 172H322L102 565L322 958H514L285 565L514 172ZM938 172H745L526 565L745 958H938L709 565L938 172Z" /> +<glyph unicode="¬" glyph-name="logicalnot" horiz-adv-x="1214" d="M1143 999V432H961V815H49V999H1143Z" /> +<glyph unicode="­" glyph-name="hyphen" horiz-adv-x="737" d="M94 496V668H645V496H94Z" /> +<glyph unicode="®" glyph-name="registered" horiz-adv-x="1919" d="M102 831Q102 949 132 1058T218 1263T352 1436T525 1569T729 1655T958 1686Q1076 1686 1186 1656T1391 1570T1565 1436T1700 1263T1786 1059T1817 831Q1817 712 1787 603T1700 398T1566 +225T1392 92T1186 6T958 -25Q839 -25 730 5T525 91T352 225T219 398T133 602T102 831ZM283 831Q283 689 335 566T479 351T694 207T958 154Q1099 154 1221 206T1436 350T1581 565T1634 831Q1634 925 1582 1077T1437 1316T1222 1454T958 1507Q817 1507 694 1455T480 +1316T336 1101T283 831ZM555 518H653V1188H551V1346H1034Q1107 1346 1166 1325T1266 1267T1329 1180T1352 1071Q1352 1022 1342 984T1312 917T1261 865T1192 826Q1223 809 1247 774T1284 686L1325 518H1407L1409 360H1153L1102 614Q1088 698 1038 735T909 772H842V518H934V360H555V518ZM842 +1188V928H985Q1059 928 1103 958T1147 1057Q1147 1119 1106 1153T977 1188H842Z" /> +<glyph unicode="¯" glyph-name="overscore" horiz-adv-x="797" d="M797 1229H39V1346H797V1229Z" /> +<glyph unicode="°" glyph-name="degree" horiz-adv-x="682" d="M340 1737Q389 1737 432 1718T509 1666T561 1590T580 1497Q580 1448 561 1405T509 1330T433 1279T340 1260Q291 1260 248 1278T172 1329T121 1405T102 1497Q102 1546 121 1589T172 1666T247 +1718T340 1737ZM205 1497Q205 1469 215 1445T244 1402T287 1373T340 1362Q368 1362 392 1372T436 1401T466 1444T477 1497Q477 1525 466 1549T436 1593T393 1623T340 1634Q312 1634 288 1623T245 1593T216 1550T205 1497Z" /> +<glyph unicode="±" glyph-name="plusminus" horiz-adv-x="1229" d="M102 893H522V1313H705V893H1126V711H705V309H522V711H102V893ZM102 162H1126V0H102V162Z" /> +<glyph unicode="²" glyph-name="twosuperior" horiz-adv-x="700" d="M55 944L330 1221Q361 1253 386 1288T412 1362Q412 1381 404 1398T381 1429T345 1450T297 1458Q244 1458 212 1428T178 1350H53Q53 1402 72 1444T126 1517T204 1563T299 1579Q351 1579 +396 1564T474 1521T526 1452T545 1362Q545 1324 526 1282T465 1198L230 963H543V842H55V944Z" /> +<glyph unicode="³" glyph-name="threesuperior" horiz-adv-x="631" d="M428 1364Q428 1380 420 1397T397 1429T359 1452T307 1462Q291 1462 271 1457T234 1439T205 1409T193 1364H61Q64 1408 83 1447T134 1516T210 1563T305 1581Q361 1581 408 1564T488 1517T540 +1450T559 1370Q559 1322 536 1283T467 1218Q509 1199 539 1158T569 1057Q569 1009 549 968T494 896T410 848T307 831Q259 831 213 845T131 888T73 957T51 1051H184Q192 1003 225 978T313 952Q338 952 361 959T401 981T428 1013T438 1055Q438 1106 402 1133T309 +1161H252V1268H307Q364 1268 396 1295T428 1364Z" /> +<glyph unicode="´" glyph-name="acute" horiz-adv-x="645" d="M297 1477H537V1460L238 1178H84L297 1477Z" /> +<glyph unicode="µ" glyph-name="mu" horiz-adv-x="1198" d="M1018 172H1133V0H831V96Q761 42 679 12T502 -18Q417 -18 354 7V-471H158V1036H354V391Q354 272 409 211T567 150Q628 150 695 172T823 233V1036H1018V172Z" /> +<glyph unicode="¶" glyph-name="paragraph" horiz-adv-x="1274" d="M465 701Q372 707 294 739T160 824T72 948T41 1104Q41 1206 76 1283T176 1412T332 1490T537 1516H1135V1354H1055V-369H874V1354H645V-369H465V701Z" /> +<glyph unicode="·" glyph-name="middot" horiz-adv-x="612" d="M174 666Q174 692 184 715T212 756T254 784T305 795Q331 795 354 785T395 757T423 716T434 666Q434 639 424 615T396 572T355 543T305 532Q278 532 254 543T213 572T185 614T174 666Z" /> +<glyph unicode="¸" glyph-name="cedilla" horiz-adv-x="940" d="M182 -303Q237 -302 281 -284T359 -235T414 -165T444 -78L594 -123Q576 -196 538 -253T448 -350T330 -411T193 -432L182 -303Z" /> +<glyph unicode="¹" glyph-name="onesuperior" horiz-adv-x="500" d="M92 952H174V1397L33 1321V1460L250 1579H309V952H389V840H92V952Z" /> +<glyph unicode="º" glyph-name="ordmasculine" horiz-adv-x="934" d="M102 1217Q102 1295 129 1361T204 1476T319 1552T467 1580Q548 1580 615 1554T730 1479T804 1365T831 1220Q831 1140 805 1074T731 959T616 884T467 857Q385 857 318 883T202 958T128 +1072T102 1217ZM254 1217Q254 1165 271 1123T317 1052T384 1006T467 990Q512 990 551 1006T618 1051T663 1123T680 1217Q680 1272 664 1315T619 1386T551 1430T467 1445Q423 1445 385 1430T317 1387T271 1315T254 1217Z" /> +<glyph unicode="»" glyph-name="guillemotright" horiz-adv-x="1040" d="M332 565L102 958H295L514 565L295 172H102L332 565ZM756 565L526 958H719L938 565L719 172H526L756 565Z" /> +<glyph unicode="¼" glyph-name="onequarter" horiz-adv-x="1700" d="M1276 1577H1475L199 -61H0L1276 1577ZM1080 303L1360 760H1508L1235 305H1418V469H1553V305H1665V195H1553V0H1418V195H1082L1080 303ZM64 907H148V1311L19 1239V1401L236 1522H306V907H387V778H64V907Z" +/> +<glyph unicode="½" glyph-name="onehalf" horiz-adv-x="1700" d="M1276 1577H1475L199 -61H0L1276 1577ZM1039 121L1313 397Q1347 428 1368 461T1389 526Q1389 561 1362 586T1289 612Q1239 612 1211 584T1182 512H1037Q1037 568 1057 612T1111 688T1193 735T1293 +752Q1344 752 1390 738T1470 695T1525 625T1545 530Q1545 488 1526 451T1471 377L1242 141H1543V0H1039V121ZM76 907H160V1311L31 1239V1401L248 1522H318V907H400V778H76V907Z" /> +<glyph unicode="¾" glyph-name="threequarters" horiz-adv-x="1700" d="M1337 1577H1536L260 -61H61L1337 1577ZM373 1309Q373 1324 366 1339T346 1368T312 1390T264 1399Q249 1399 231 1394T198 1378T172 1349T162 1307H12Q13 1354 32 1395T84 1467T163 +1516T264 1534Q320 1534 368 1517T450 1469T504 1400T524 1317Q524 1268 503 1229T440 1165Q459 1156 476 1141T506 1104T526 1058T534 1006Q534 958 514 915T457 840T372 789T266 770Q212 770 164 786T80 832T22 904T0 1001H151Q158 956 188 931T270 905Q294 905 +314 913T350 935T374 968T383 1008Q383 1051 352 1078T266 1106H201V1219H268Q318 1219 345 1244T373 1309ZM975 303L1255 760H1403L1130 305H1313V469H1448V305H1560V195H1448V0H1313V195H977L975 303Z" /> +<glyph unicode="¿" glyph-name="questiondown" horiz-adv-x="1030" d="M406 1022Q406 1048 416 1071T444 1112T486 1140T537 1151Q563 1151 586 1141T627 1113T655 1072T666 1022Q666 995 656 971T628 929T587 900T537 889Q510 889 486 899T445 928T417 971T406 +1022ZM623 780Q623 676 616 599T587 461T529 350T432 250Q379 205 336 172T262 108T214 40T197 -49Q197 -94 215 -136T263 -210T335 -263T424 -283Q505 -283 559 -255T646 -188T693 -105T707 -29L883 -41Q877 -125 842 -200T746 -331T604 -421T424 -455Q323 -455 +246 -422T116 -334T36 -207T8 -55Q8 47 60 133T215 291Q262 324 297 352T357 409T399 471T424 547T438 647T442 780H623Z" /> +<glyph unicode="À" glyph-name="Agrave" horiz-adv-x="1542" d="M1040 172H1166L1046 516H463L346 172H502V0H10V172H142L614 1516H909L1380 172H1532V0H1040V172ZM520 682H988L752 1360L520 682ZM758 1658L471 1940V1957H719L903 1658H758Z" /> +<glyph unicode="Á" glyph-name="Aacute" horiz-adv-x="1542" d="M1040 172H1166L1046 516H463L346 172H502V0H10V172H142L614 1516H909L1380 172H1532V0H1040V172ZM520 682H988L752 1360L520 682ZM758 1957H998V1940L699 1658H545L758 1957Z" /> +<glyph unicode="Â" glyph-name="Acircumflex" horiz-adv-x="1542" d="M1040 172H1166L1046 516H463L346 172H502V0H10V172H142L614 1516H909L1380 172H1532V0H1040V172ZM520 682H988L752 1360L520 682ZM489 1646L739 1959H802L1054 1646H905L772 1801L637 1646H489Z" /> +<glyph unicode="Ã" glyph-name="Atilde" horiz-adv-x="1542" d="M1040 172H1166L1046 516H463L346 172H502V0H10V172H142L614 1516H909L1380 172H1532V0H1040V172ZM520 682H988L752 1360L520 682ZM636 1895Q686 1895 722 1879T790 1843T853 1807T923 1791Q951 +1791 977 1810T1013 1871L1132 1836Q1112 1751 1054 1705T915 1658Q859 1658 820 1673T749 1707T689 1740T628 1756Q613 1756 598 1754T567 1745T540 1722T520 1678L411 1731Q424 1778 448 1809T502 1860T566 1887T636 1895Z" /> +<glyph unicode="Ä" glyph-name="Adieresis" horiz-adv-x="1542" d="M1040 172H1166L1046 516H463L346 172H502V0H10V172H142L614 1516H909L1380 172H1532V0H1040V172ZM520 682H988L752 1360L520 682ZM415 1840Q415 1866 425 1889T453 1930T494 1958T544 1969Q569 +1969 592 1959T632 1931T659 1890T669 1840Q669 1813 659 1789T632 1747T592 1718T544 1707Q518 1707 495 1717T454 1746T426 1789T415 1840ZM874 1840Q874 1866 884 1889T912 1930T953 1958T1003 1969Q1028 1969 1050 1959T1090 1931T1118 1890T1128 1840Q1128 +1813 1118 1789T1091 1747T1051 1718T1003 1707Q977 1707 954 1717T913 1746T885 1789T874 1840Z" /> +<glyph unicode="Å" glyph-name="Aring" horiz-adv-x="1542" d="M1040 172H1166L1046 516H463L346 172H502V0H10V172H142L614 1516H909L1380 172H1532V0H1040V172ZM520 682H988L752 1360L520 682ZM667 1692Q667 1671 675 1653T698 1620T731 1597T771 1588Q792 +1588 811 1596T844 1619T867 1652T876 1692Q876 1713 868 1732T845 1765T811 1788T771 1797Q750 1797 732 1789T699 1766T676 1732T667 1692ZM771 1948Q823 1948 870 1928T951 1873T1006 1791T1027 1692Q1027 1640 1007 1594T952 1512T870 1457T771 1436Q719 1436 +673 1456T591 1512T536 1593T515 1692Q515 1744 535 1791T591 1872T672 1927T771 1948Z" /> +<glyph unicode="Æ" glyph-name="AE" horiz-adv-x="1915" d="M-2 172H104L920 1516H1858V1087H1653V1343H1188V862H1567V690H1188V172H1653V428H1858V0H866V172H991V426H474L326 172H489V0H-2V172ZM991 598V1312L575 598H991Z" /> +<glyph unicode="Ç" glyph-name="Ccedilla" horiz-adv-x="1509" d="M1219 1116Q1152 1230 1042 1295T795 1360Q679 1360 583 1311T419 1180T312 989T274 760Q274 618 316 509T425 327T586 206T795 157Q953 157 1070 233T1270 485L1446 402Q1408 294 1317 194T1093 +32T797 -30Q642 -30 512 28T281 195T126 451T72 760Q72 922 125 1066T275 1316T505 1484T795 1546Q934 1546 1035 1507T1206 1413T1328 1294H1434V1116H1219ZM544 -303Q599 -302 643 -284T721 -235T776 -165T806 -78L956 -123Q938 -196 900 -253T810 -350T692 -411T555 +-432L544 -303Z" /> +<glyph unicode="È" glyph-name="Egrave" horiz-adv-x="1286" d="M143 1516H1229V1087H1024V1343H483V858H938V686H483V172H1024V428H1229V0H143V172H287V1343H143V1516ZM627 1658L340 1940V1957H588L772 1658H627Z" /> +<glyph unicode="É" glyph-name="Eacute" horiz-adv-x="1286" d="M143 1516H1229V1087H1024V1343H483V858H938V686H483V172H1024V428H1229V0H143V172H287V1343H143V1516ZM673 1957H913V1940L614 1658H460L673 1957Z" /> +<glyph unicode="Ê" glyph-name="Ecircumflex" horiz-adv-x="1286" d="M143 1516H1229V1087H1024V1343H483V858H938V686H483V172H1024V428H1229V0H143V172H287V1343H143V1516ZM417 1656L667 1969H730L982 1656H833L700 1811L565 1656H417Z" /> +<glyph unicode="Ë" glyph-name="Edieresis" horiz-adv-x="1286" d="M143 1516H1229V1087H1024V1343H483V858H938V686H483V172H1024V428H1229V0H143V172H287V1343H143V1516ZM289 1840Q289 1866 299 1889T327 1930T368 1958T418 1969Q443 1969 466 1959T506 +1931T533 1890T543 1840Q543 1813 533 1789T506 1747T466 1718T418 1707Q392 1707 369 1717T328 1746T300 1789T289 1840ZM748 1840Q748 1866 758 1889T786 1930T827 1958T877 1969Q902 1969 924 1959T964 1931T992 1890T1002 1840Q1002 1813 992 1789T965 1747T925 +1718T877 1707Q851 1707 828 1717T787 1746T759 1789T748 1840Z" /> +<glyph unicode="Ì" glyph-name="Igrave" horiz-adv-x="770" d="M143 1516H627V1343H483V172H627V0H143V172H287V1343H143V1516ZM373 1658L86 1940V1957H334L518 1658H373Z" /> +<glyph unicode="Í" glyph-name="Iacute" horiz-adv-x="770" d="M143 1516H627V1343H483V172H627V0H143V172H287V1343H143V1516ZM372 1957H612V1940L313 1658H159L372 1957Z" /> +<glyph unicode="Î" glyph-name="Icircumflex" horiz-adv-x="770" d="M143 1516H627V1343H483V172H627V0H143V172H287V1343H143V1516ZM104 1656L354 1969H417L669 1656H520L387 1811L252 1656H104Z" /> +<glyph unicode="Ï" glyph-name="Idieresis" horiz-adv-x="770" d="M143 1516H627V1343H483V172H627V0H143V172H287V1343H143V1516ZM30 1840Q30 1866 40 1889T68 1930T109 1958T159 1969Q184 1969 207 1959T247 1931T274 1890T284 1840Q284 1813 274 1789T247 +1747T207 1718T159 1707Q133 1707 110 1717T69 1746T41 1789T30 1840ZM489 1840Q489 1866 499 1889T527 1930T568 1958T618 1969Q643 1969 665 1959T705 1931T733 1890T743 1840Q743 1813 733 1789T706 1747T666 1718T618 1707Q592 1707 569 1717T528 1746T500 +1789T489 1840Z" /> +<glyph unicode="Ð" glyph-name="Eth" horiz-adv-x="1516" d="M127 676V848H295V1343H139V1516H715Q819 1516 913 1489T1088 1413T1235 1296T1347 1143T1419 963T1444 762Q1444 656 1419 559T1348 377T1235 223T1088 104T913 27T715 0H139V172H295V676H127ZM492 +1343V848H678V676H492V172H727Q832 172 924 218T1086 343T1195 530T1235 762Q1235 884 1195 990T1086 1174T925 1298T727 1343H492Z" /> +<glyph unicode="Ñ" glyph-name="Ntilde" horiz-adv-x="1624" d="M1081 1516H1573V1343H1444V0H1188L483 1257V172H639V0H147V172H287V1343H143V1518H551L1243 273L1251 321V1343H1081V1516ZM723 1895Q773 1895 809 1879T877 1843T940 1807T1010 1791Q1038 +1791 1064 1810T1100 1871L1219 1836Q1199 1751 1141 1705T1002 1658Q946 1658 907 1673T836 1707T776 1740T715 1756Q700 1756 685 1754T654 1745T627 1722T607 1678L498 1731Q511 1778 535 1809T589 1860T653 1887T723 1895Z" /> +<glyph unicode="Ò" glyph-name="Ograve" horiz-adv-x="1597" d="M799 -30Q642 -30 512 28T280 195T125 451T72 758Q72 922 125 1066T275 1316T505 1484T799 1546Q960 1546 1094 1485T1324 1317T1473 1066T1526 758Q1526 594 1473 451T1323 200T1093 32T799 +-30ZM799 156Q918 156 1014 205T1179 336T1284 528T1321 758Q1321 882 1281 997T1168 1193T999 1316T799 1360Q680 1360 583 1311T418 1180T313 988T276 758Q276 618 317 509T425 327T586 205T799 156ZM786 1658L499 1940V1957H747L931 1658H786Z" /> +<glyph unicode="Ó" glyph-name="Oacute" horiz-adv-x="1597" d="M799 -30Q642 -30 512 28T280 195T125 451T72 758Q72 922 125 1066T275 1316T505 1484T799 1546Q960 1546 1094 1485T1324 1317T1473 1066T1526 758Q1526 594 1473 451T1323 200T1093 32T799 +-30ZM799 156Q918 156 1014 205T1179 336T1284 528T1321 758Q1321 882 1281 997T1168 1193T999 1316T799 1360Q680 1360 583 1311T418 1180T313 988T276 758Q276 618 317 509T425 327T586 205T799 156ZM786 1957H1026V1940L727 1658H573L786 1957Z" /> +<glyph unicode="Ô" glyph-name="Ocircumflex" horiz-adv-x="1597" d="M799 -30Q642 -30 512 28T280 195T125 451T72 758Q72 922 125 1066T275 1316T505 1484T799 1546Q960 1546 1094 1485T1324 1317T1473 1066T1526 758Q1526 594 1473 451T1323 200T1093 +32T799 -30ZM799 156Q918 156 1014 205T1179 336T1284 528T1321 758Q1321 882 1281 997T1168 1193T999 1316T799 1360Q680 1360 583 1311T418 1180T313 988T276 758Q276 618 317 509T425 327T586 205T799 156ZM517 1656L767 1969H830L1082 1656H933L800 1811L665 +1656H517Z" /> +<glyph unicode="Õ" glyph-name="Otilde" horiz-adv-x="1597" d="M799 -30Q642 -30 512 28T280 195T125 451T72 758Q72 922 125 1066T275 1316T505 1484T799 1546Q960 1546 1094 1485T1324 1317T1473 1066T1526 758Q1526 594 1473 451T1323 200T1093 32T799 +-30ZM799 156Q918 156 1014 205T1179 336T1284 528T1321 758Q1321 882 1281 997T1168 1193T999 1316T799 1360Q680 1360 583 1311T418 1180T313 988T276 758Q276 618 317 509T425 327T586 205T799 156ZM664 1895Q714 1895 750 1879T818 1843T881 1807T951 1791Q979 +1791 1005 1810T1041 1871L1160 1836Q1140 1751 1082 1705T943 1658Q887 1658 848 1673T777 1707T717 1740T656 1756Q641 1756 626 1754T595 1745T568 1722T548 1678L439 1731Q452 1778 476 1809T530 1860T594 1887T664 1895Z" /> +<glyph unicode="Ö" glyph-name="Odieresis" horiz-adv-x="1597" d="M799 -30Q642 -30 512 28T280 195T125 451T72 758Q72 922 125 1066T275 1316T505 1484T799 1546Q960 1546 1094 1485T1324 1317T1473 1066T1526 758Q1526 594 1473 451T1323 200T1093 32T799 +-30ZM799 156Q918 156 1014 205T1179 336T1284 528T1321 758Q1321 882 1281 997T1168 1193T999 1316T799 1360Q680 1360 583 1311T418 1180T313 988T276 758Q276 618 317 509T425 327T586 205T799 156ZM443 1840Q443 1866 453 1889T481 1930T522 1958T572 1969Q597 +1969 620 1959T660 1931T687 1890T697 1840Q697 1813 687 1789T660 1747T620 1718T572 1707Q546 1707 523 1717T482 1746T454 1789T443 1840ZM902 1840Q902 1866 912 1889T940 1930T981 1958T1031 1969Q1056 1969 1078 1959T1118 1931T1146 1890T1156 1840Q1156 +1813 1146 1789T1119 1747T1079 1718T1031 1707Q1005 1707 982 1717T941 1746T913 1789T902 1840Z" /> +<glyph unicode="×" glyph-name="multiply" horiz-adv-x="1303" d="M525 676L152 1124L297 1247L650 825L991 1233L1151 1118L778 671L1155 221L1004 102L654 522L299 96L133 207L525 676Z" /> +<glyph unicode="Ø" glyph-name="Oslash" horiz-adv-x="1593" d="M263 218Q173 324 125 462T76 758Q76 867 100 968T170 1157T279 1316T425 1439T601 1518T803 1546Q918 1546 1018 1514T1203 1425L1343 1604H1542L1322 1322Q1421 1214 1475 1070T1530 758Q1530 +649 1506 548T1436 360T1327 200T1181 77T1005 -3T803 -31Q679 -31 572 5T377 109L266 -34H67L263 218ZM803 158Q922 158 1018 206T1182 337T1286 528T1323 758Q1323 871 1290 974T1196 1159L498 264Q560 213 636 186T803 158ZM281 652T309 556T391 381L1083 1271Q1024 +1313 954 1336T803 1360Q684 1360 588 1311T423 1180T318 988T281 758Q281 652 309 556Z" /> +<glyph unicode="Ù" glyph-name="Ugrave" horiz-adv-x="1550" d="M113 1516H604V1343H449V637Q449 510 477 421T556 275T676 192T829 166Q915 166 987 189T1110 266T1190 411T1219 637V1343H1055V1516H1546V1343H1411V659Q1411 495 1366 368T1241 155T1055 +25T825 -20Q705 -20 601 24T419 153T297 360T252 641V1343H113V1516ZM816 1658L529 1940V1957H777L961 1658H816Z" /> +<glyph unicode="Ú" glyph-name="Uacute" horiz-adv-x="1550" d="M113 1516H604V1343H449V637Q449 510 477 421T556 275T676 192T829 166Q915 166 987 189T1110 266T1190 411T1219 637V1343H1055V1516H1546V1343H1411V659Q1411 495 1366 368T1241 155T1055 +25T825 -20Q705 -20 601 24T419 153T297 360T252 641V1343H113V1516ZM816 1957H1056V1940L757 1658H603L816 1957Z" /> +<glyph unicode="Û" glyph-name="Ucircumflex" horiz-adv-x="1550" d="M113 1516H604V1343H449V637Q449 510 477 421T556 275T676 192T829 166Q915 166 987 189T1110 266T1190 411T1219 637V1343H1055V1516H1546V1343H1411V659Q1411 495 1366 368T1241 155T1055 +25T825 -20Q705 -20 601 24T419 153T297 360T252 641V1343H113V1516ZM547 1656L797 1969H860L1112 1656H963L830 1811L695 1656H547Z" /> +<glyph unicode="Ü" glyph-name="Udieresis" horiz-adv-x="1550" d="M113 1516H604V1343H449V637Q449 510 477 421T556 275T676 192T829 166Q915 166 987 189T1110 266T1190 411T1219 637V1343H1055V1516H1546V1343H1411V659Q1411 495 1366 368T1241 155T1055 +25T825 -20Q705 -20 601 24T419 153T297 360T252 641V1343H113V1516ZM473 1840Q473 1866 483 1889T511 1930T552 1958T602 1969Q627 1969 650 1959T690 1931T717 1890T727 1840Q727 1813 717 1789T690 1747T650 1718T602 1707Q576 1707 553 1717T512 1746T484 1789T473 +1840ZM932 1840Q932 1866 942 1889T970 1930T1011 1958T1061 1969Q1086 1969 1108 1959T1148 1931T1176 1890T1186 1840Q1186 1813 1176 1789T1149 1747T1109 1718T1061 1707Q1035 1707 1012 1717T971 1746T943 1789T932 1840Z" /> +<glyph unicode="Ý" glyph-name="Yacute" horiz-adv-x="1354" d="M51 1516H543V1343H399L684 856L989 1343H831V1516H1323V1343H1194L768 697V172H924V0H432V172H571V702L169 1343H51V1516ZM674 1957H914V1940L615 1658H461L674 1957Z" /> +<glyph unicode="Þ" glyph-name="Thorn" horiz-adv-x="1323" d="M106 1516H598V1343H440V1209L768 1208Q869 1208 954 1182T1102 1104T1200 976T1235 799Q1235 716 1201 643T1106 514T957 427T764 395H440V172H596V0H104V172H244V1343H106V1516ZM440 1036V559H768Q825 +559 872 574T954 620T1008 695T1028 799Q1028 891 991 940T898 1012T743 1036H440Z" /> +<glyph unicode="ß" glyph-name="germandbls" horiz-adv-x="1247" d="M588 964H666Q730 967 759 984T811 1025T845 1078T857 1138Q857 1188 839 1232T789 1307T711 1354T610 1370Q562 1370 522 1353T455 1304T412 1230T397 1136V0H16V172H201V1159Q201 1229 +228 1300T308 1428T436 1520T612 1556Q705 1556 785 1524T923 1436T1015 1303T1049 1142Q1049 1096 1040 1058T1016 987T982 929T943 883Q994 850 1035 806T1106 714T1151 604T1168 474Q1168 373 1129 282T1021 124T861 22T666 -14Q627 -14 588 -8V180Q608 175 +627 173T666 170Q731 170 787 194T886 262T952 362T976 474Q976 539 951 596T884 691T786 753T668 778H588V964Z" /> +<glyph unicode="à" glyph-name="agrave" horiz-adv-x="1120" d="M709 96Q650 41 579 6T416 -29Q340 -29 277 -5T167 60T96 157T70 274Q70 340 89 391T141 479T217 542T308 583T405 605T500 612Q572 612 621 608T710 595L711 680Q711 735 695 775T650 842T581 +882T490 895Q443 895 400 889T320 872T251 848T197 819L136 948Q173 972 217 992T309 1027T408 1050T508 1059Q598 1059 670 1038T792 971T869 857T896 690L895 172H1010V0H709V96ZM457 127Q494 127 531 136T601 160T662 196T709 239L710 473H494Q440 473 396 461T319 +426T268 369T250 291Q250 250 265 220T307 169T373 138T457 127ZM508 1178L221 1460V1477H469L653 1178H508Z" /> +<glyph unicode="á" glyph-name="aacute" horiz-adv-x="1120" d="M709 96Q650 41 579 6T416 -29Q340 -29 277 -5T167 60T96 157T70 274Q70 340 89 391T141 479T217 542T308 583T405 605T500 612Q572 612 621 608T710 595L711 680Q711 735 695 775T650 842T581 +882T490 895Q443 895 400 889T320 872T251 848T197 819L136 948Q173 972 217 992T309 1027T408 1050T508 1059Q598 1059 670 1038T792 971T869 857T896 690L895 172H1010V0H709V96ZM457 127Q494 127 531 136T601 160T662 196T709 239L710 473H494Q440 473 396 461T319 +426T268 369T250 291Q250 250 265 220T307 169T373 138T457 127ZM508 1477H748V1460L449 1178H295L508 1477Z" /> +<glyph unicode="â" glyph-name="acircumflex" horiz-adv-x="1120" d="M709 96Q650 41 579 6T416 -29Q340 -29 277 -5T167 60T96 157T70 274Q70 340 89 391T141 479T217 542T308 583T405 605T500 612Q572 612 621 608T710 595L711 680Q711 735 695 775T650 +842T581 882T490 895Q443 895 400 889T320 872T251 848T197 819L136 948Q173 972 217 992T309 1027T408 1050T508 1059Q598 1059 670 1038T792 971T869 857T896 690L895 172H1010V0H709V96ZM457 127Q494 127 531 136T601 160T662 196T709 239L710 473H494Q440 473 +396 461T319 426T268 369T250 291Q250 250 265 220T307 169T373 138T457 127ZM239 1176L489 1489H552L804 1176H655L522 1331L387 1176H239Z" /> +<glyph unicode="ã" glyph-name="atilde" horiz-adv-x="1120" d="M709 96Q650 41 579 6T416 -29Q340 -29 277 -5T167 60T96 157T70 274Q70 340 89 391T141 479T217 542T308 583T405 605T500 612Q572 612 621 608T710 595L711 680Q711 735 695 775T650 842T581 +882T490 895Q443 895 400 889T320 872T251 848T197 819L136 948Q173 972 217 992T309 1027T408 1050T508 1059Q598 1059 670 1038T792 971T869 857T896 690L895 172H1010V0H709V96ZM457 127Q494 127 531 136T601 160T662 196T709 239L710 473H494Q440 473 396 461T319 +426T268 369T250 291Q250 250 265 220T307 169T373 138T457 127ZM386 1415Q436 1415 472 1399T540 1363T603 1327T673 1311Q701 1311 727 1330T763 1391L882 1356Q862 1271 804 1225T665 1178Q609 1178 570 1193T499 1227T439 1260T378 1276Q363 1276 348 1274T317 +1265T290 1242T270 1198L161 1251Q174 1298 198 1329T252 1380T316 1407T386 1415Z" /> +<glyph unicode="ä" glyph-name="adieresis" horiz-adv-x="1120" d="M709 96Q650 41 579 6T416 -29Q340 -29 277 -5T167 60T96 157T70 274Q70 340 89 391T141 479T217 542T308 583T405 605T500 612Q572 612 621 608T710 595L711 680Q711 735 695 775T650 842T581 +882T490 895Q443 895 400 889T320 872T251 848T197 819L136 948Q173 972 217 992T309 1027T408 1050T508 1059Q598 1059 670 1038T792 971T869 857T896 690L895 172H1010V0H709V96ZM457 127Q494 127 531 136T601 160T662 196T709 239L710 473H494Q440 473 396 461T319 +426T268 369T250 291Q250 250 265 220T307 169T373 138T457 127ZM121 1360Q121 1386 131 1409T159 1450T200 1478T250 1489Q275 1489 298 1479T338 1451T365 1410T375 1360Q375 1333 365 1309T338 1267T298 1238T250 1227Q224 1227 201 1237T160 1266T132 1309T121 +1360ZM580 1360Q580 1386 590 1409T618 1450T659 1478T709 1489Q734 1489 756 1479T796 1451T824 1410T834 1360Q834 1333 824 1309T797 1267T757 1238T709 1227Q683 1227 660 1237T619 1266T591 1309T580 1360Z" /> +<glyph unicode="å" glyph-name="aring" horiz-adv-x="1120" d="M709 96Q650 41 579 6T416 -29Q340 -29 277 -5T167 60T96 157T70 274Q70 340 89 391T141 479T217 542T308 583T405 605T500 612Q572 612 621 608T710 595L711 680Q711 735 695 775T650 842T581 +882T490 895Q443 895 400 889T320 872T251 848T197 819L136 948Q173 972 217 992T309 1027T408 1050T508 1059Q598 1059 670 1038T792 971T869 857T896 690L895 172H1010V0H709V96ZM457 127Q494 127 531 136T601 160T662 196T709 239L710 473H494Q440 473 396 461T319 +426T268 369T250 291Q250 250 265 220T307 169T373 138T457 127ZM418 1433Q418 1412 426 1394T449 1361T482 1338T522 1329Q543 1329 562 1337T595 1360T618 1393T627 1433Q627 1454 619 1473T596 1506T562 1529T522 1538Q501 1538 483 1530T450 1507T427 1473T418 +1433ZM522 1689Q574 1689 621 1669T702 1614T757 1532T778 1433Q778 1381 758 1335T703 1253T621 1198T522 1177Q470 1177 424 1197T342 1253T287 1334T266 1433Q266 1485 286 1532T342 1613T423 1668T522 1689Z" /> +<glyph unicode="æ" glyph-name="ae" horiz-adv-x="1784" d="M481 606Q613 606 693 585V588L694 680Q695 735 679 775T634 842T563 882T471 895Q424 895 381 889T301 872T232 848T178 819L117 948Q154 972 198 992T290 1027T389 1050T489 1059Q604 1059 688 +1024T821 913Q883 983 971 1023T1178 1063Q1295 1063 1373 1028T1501 934T1576 800T1612 647Q1617 609 1618 570T1620 494H874Q874 440 883 392T914 294T1017 194T1202 143Q1283 143 1359 165T1520 236L1595 109Q1493 39 1390 5T1176 -29Q1058 -29 962 13T800 142Q768 +103 726 71T633 17T528 -17T418 -29Q334 -29 267 -5T151 60T77 157T51 274Q51 339 70 389T122 476T198 538T289 578T386 599T481 606ZM438 127Q535 127 609 163T735 260Q697 354 691 477H475Q421 477 377 465T300 430T249 373T231 295Q231 253 246 222T288 169T354 +138T438 127ZM1165 907Q1100 907 1052 889T969 836T915 751T884 639H1421Q1417 697 1403 746T1358 831T1281 887T1165 907Z" /> +<glyph unicode="ç" glyph-name="ccedilla" horiz-adv-x="1118" d="M848 760Q806 835 742 870T592 905Q527 905 470 878T371 801T304 680T279 520Q279 433 303 363T371 244T470 168T592 141Q688 141 759 187T872 324L1026 248Q996 184 952 133T853 46T731 +-9T590 -29Q482 -29 391 11T233 125T129 299T92 520Q92 640 131 741T238 914T397 1028T592 1069Q690 1069 777 1035T931 932H1036V760H848ZM358 -303Q413 -302 457 -284T535 -235T590 -165T620 -78L770 -123Q752 -196 714 -253T624 -350T506 -411T369 -432L358 +-303Z" /> +<glyph unicode="è" glyph-name="egrave" horiz-adv-x="1175" d="M276 494Q276 450 282 414T301 344Q338 244 419 194T604 143Q685 143 761 165T922 236L997 109Q895 39 792 5T578 -29Q473 -29 384 6T230 110T129 282T92 522Q92 633 123 731T215 903T368 1020T580 +1063Q697 1063 775 1028T903 934T978 800T1014 647Q1019 609 1020 570T1022 494H276ZM567 907Q502 907 454 889T371 836T317 751T286 639H823Q819 697 805 746T760 831T683 887T567 907ZM544 1178L257 1460V1477H505L689 1178H544Z" /> +<glyph unicode="é" glyph-name="eacute" horiz-adv-x="1175" d="M276 494Q276 450 282 414T301 344Q338 244 419 194T604 143Q685 143 761 165T922 236L997 109Q895 39 792 5T578 -29Q473 -29 384 6T230 110T129 282T92 522Q92 633 123 731T215 903T368 1020T580 +1063Q697 1063 775 1028T903 934T978 800T1014 647Q1019 609 1020 570T1022 494H276ZM567 907Q502 907 454 889T371 836T317 751T286 639H823Q819 697 805 746T760 831T683 887T567 907ZM544 1477H784V1460L485 1178H331L544 1477Z" /> +<glyph unicode="ê" glyph-name="ecircumflex" horiz-adv-x="1175" d="M276 494Q276 450 282 414T301 344Q338 244 419 194T604 143Q685 143 761 165T922 236L997 109Q895 39 792 5T578 -29Q473 -29 384 6T230 110T129 282T92 522Q92 633 123 731T215 903T368 +1020T580 1063Q697 1063 775 1028T903 934T978 800T1014 647Q1019 609 1020 570T1022 494H276ZM567 907Q502 907 454 889T371 836T317 751T286 639H823Q819 697 805 746T760 831T683 887T567 907ZM287 1176L537 1489H600L852 1176H703L570 1331L435 1176H287Z" +/> +<glyph unicode="ë" glyph-name="edieresis" horiz-adv-x="1175" d="M276 494Q276 450 282 414T301 344Q338 244 419 194T604 143Q685 143 761 165T922 236L997 109Q895 39 792 5T578 -29Q473 -29 384 6T230 110T129 282T92 522Q92 633 123 731T215 903T368 +1020T580 1063Q697 1063 775 1028T903 934T978 800T1014 647Q1019 609 1020 570T1022 494H276ZM567 907Q502 907 454 889T371 836T317 751T286 639H823Q819 697 805 746T760 831T683 887T567 907ZM201 1360Q201 1386 211 1409T239 1450T280 1478T330 1489Q355 1489 +378 1479T418 1451T445 1410T455 1360Q455 1333 445 1309T418 1267T378 1238T330 1227Q304 1227 281 1237T240 1266T212 1309T201 1360ZM660 1360Q660 1386 670 1409T698 1450T739 1478T789 1489Q814 1489 836 1479T876 1451T904 1410T914 1360Q914 1333 904 1309T877 +1267T837 1238T789 1227Q763 1227 740 1237T699 1266T671 1309T660 1360Z" /> +<glyph unicode="ì" glyph-name="igrave" horiz-adv-x="612" d="M59 1036H397V172H553V0H61V172H209V864H59V1036ZM543 1178L256 1460V1477H504L688 1178H543Z" /> +<glyph unicode="í" glyph-name="iacute" horiz-adv-x="612" d="M59 1036H397V172H553V0H61V172H209V864H59V1036ZM326 1477H566V1460L267 1178H113L326 1477Z" /> +<glyph unicode="î" glyph-name="icircumflex" horiz-adv-x="612" d="M59 1036H397V172H553V0H61V172H209V864H59V1036ZM58 1176L308 1489H371L623 1176H474L341 1331L206 1176H58Z" /> +<glyph unicode="ï" glyph-name="idieresis" horiz-adv-x="657" d="M92 1036H430V172H586V0H94V172H242V864H92V1036ZM333 1403Q333 1429 343 1452T371 1493T413 1521T464 1532Q490 1532 513 1522T554 1494T582 1453T593 1403Q593 1376 583 1352T555 1310T514 +1281T464 1270Q437 1270 413 1280T372 1309T344 1352T333 1403ZM13 1403Q13 1429 23 1452T51 1493T93 1521T144 1532Q170 1532 193 1522T234 1494T262 1453T273 1403Q273 1376 263 1352T235 1310T194 1281T144 1270Q117 1270 93 1280T52 1309T24 1352T13 1403Z" +/> +<glyph unicode="ð" glyph-name="eth" horiz-adv-x="1270" d="M666 1526L755 1364L925 1419L978 1255L840 1210L1034 858Q1085 765 1118 679T1151 504Q1151 390 1108 297T991 137T824 33T627 -4Q519 -4 423 31T253 135T137 303T94 529Q94 632 134 719T240 +868T393 965T571 1000Q610 1000 659 996T770 966L658 1152L509 1104L457 1268L566 1303L432 1526H666ZM649 836Q575 836 509 815T392 751T311 647T281 502Q281 428 308 367T383 262T492 194T623 170Q696 170 758 192T867 257T939 362T965 502Q965 579 939 641T868 +746T766 813T649 836Z" /> +<glyph unicode="ñ" glyph-name="ntilde" horiz-adv-x="1366" d="M782 172H928V645Q928 764 868 825T694 887Q629 887 563 856T438 779V172H584V0H100V172H244V864H100V1036H430V914H432Q465 943 502 969T581 1014T666 1044T760 1055Q843 1055 910 1032T1024 +962T1096 842T1122 668V172H1266V0H782V172ZM548 1415Q598 1415 634 1399T702 1363T765 1327T835 1311Q863 1311 889 1330T925 1391L1044 1356Q1024 1271 966 1225T827 1178Q771 1178 732 1193T661 1227T601 1260T540 1276Q525 1276 510 1274T479 1265T452 1242T432 +1198L323 1251Q336 1298 360 1329T414 1380T478 1407T548 1415Z" /> +<glyph unicode="ò" glyph-name="ograve" horiz-adv-x="1225" d="M86 518Q87 641 125 742T233 915T397 1027T606 1066Q721 1066 816 1027T980 917T1086 744T1124 520Q1124 399 1086 298T980 123T817 10T606 -31Q489 -31 394 9T231 121T125 295T86 518ZM283 +518Q283 429 308 357T378 235T481 157T606 129Q675 129 734 156T838 233T907 356T932 518Q932 612 907 685T839 807T735 881T606 906Q540 906 482 881T379 807T309 685T283 518ZM592 1178L305 1460V1477H553L737 1178H592Z" /> +<glyph unicode="ó" glyph-name="oacute" horiz-adv-x="1225" d="M86 518Q87 641 125 742T233 915T397 1027T606 1066Q721 1066 816 1027T980 917T1086 744T1124 520Q1124 399 1086 298T980 123T817 10T606 -31Q489 -31 394 9T231 121T125 295T86 518ZM283 +518Q283 429 308 357T378 235T481 157T606 129Q675 129 734 156T838 233T907 356T932 518Q932 612 907 685T839 807T735 881T606 906Q540 906 482 881T379 807T309 685T283 518ZM592 1477H832V1460L533 1178H379L592 1477Z" /> +<glyph unicode="ô" glyph-name="ocircumflex" horiz-adv-x="1225" d="M86 518Q87 641 125 742T233 915T397 1027T606 1066Q721 1066 816 1027T980 917T1086 744T1124 520Q1124 399 1086 298T980 123T817 10T606 -31Q489 -31 394 9T231 121T125 295T86 518ZM283 +518Q283 429 308 357T378 235T481 157T606 129Q675 129 734 156T838 233T907 356T932 518Q932 612 907 685T839 807T735 881T606 906Q540 906 482 881T379 807T309 685T283 518ZM323 1176L573 1489H636L888 1176H739L606 1331L471 1176H323Z" /> +<glyph unicode="õ" glyph-name="otilde" horiz-adv-x="1225" d="M86 518Q87 641 125 742T233 915T397 1027T606 1066Q721 1066 816 1027T980 917T1086 744T1124 520Q1124 399 1086 298T980 123T817 10T606 -31Q489 -31 394 9T231 121T125 295T86 518ZM283 +518Q283 429 308 357T378 235T481 157T606 129Q675 129 734 156T838 233T907 356T932 518Q932 612 907 685T839 807T735 881T606 906Q540 906 482 881T379 807T309 685T283 518ZM470 1415Q520 1415 556 1399T624 1363T687 1327T757 1311Q785 1311 811 1330T847 +1391L966 1356Q946 1271 888 1225T749 1178Q693 1178 654 1193T583 1227T523 1260T462 1276Q447 1276 432 1274T401 1265T374 1242T354 1198L245 1251Q258 1298 282 1329T336 1380T400 1407T470 1415Z" /> +<glyph unicode="ö" glyph-name="odieresis" horiz-adv-x="1225" d="M86 518Q87 641 125 742T233 915T397 1027T606 1066Q721 1066 816 1027T980 917T1086 744T1124 520Q1124 399 1086 298T980 123T817 10T606 -31Q489 -31 394 9T231 121T125 295T86 518ZM283 +518Q283 429 308 357T378 235T481 157T606 129Q675 129 734 156T838 233T907 356T932 518Q932 612 907 685T839 807T735 881T606 906Q540 906 482 881T379 807T309 685T283 518ZM249 1360Q249 1386 259 1409T287 1450T328 1478T378 1489Q403 1489 426 1479T466 +1451T493 1410T503 1360Q503 1333 493 1309T466 1267T426 1238T378 1227Q352 1227 329 1237T288 1266T260 1309T249 1360ZM708 1360Q708 1386 718 1409T746 1450T787 1478T837 1489Q862 1489 884 1479T924 1451T952 1410T962 1360Q962 1333 952 1309T925 1267T885 +1238T837 1227Q811 1227 788 1237T747 1266T719 1309T708 1360Z" /> +<glyph unicode="÷" glyph-name="divide" horiz-adv-x="1126" d="M414 907Q414 933 424 956T452 997T494 1025T545 1036Q571 1036 594 1026T635 998T663 957T674 907Q674 880 664 856T636 814T595 785T545 774Q518 774 494 784T453 813T425 856T414 907ZM414 +121Q414 147 424 170T452 211T494 239T545 250Q571 250 594 240T635 212T663 171T674 121Q674 94 664 70T636 28T595 -1T545 -12Q518 -12 494 -2T453 27T425 70T414 121ZM51 614H1075V452H51V614Z" /> +<glyph unicode="ø" glyph-name="oslash" horiz-adv-x="1219" d="M213 145Q154 217 123 311T92 518Q92 640 129 741T235 914T399 1027T608 1067Q686 1067 754 1049T880 997L1013 1167H1211L1000 897Q1060 825 1093 730T1126 520Q1126 396 1090 295T986 121T822 +9T608 -31Q528 -31 459 -12T331 42L251 -61H52L213 145ZM934 587T921 644T882 746L441 182Q478 157 520 144T608 131Q677 131 736 158T840 235T909 356T934 518Q934 587 921 644ZM285 455T298 401T335 301L774 862Q738 885 696 896T608 907Q542 907 484 882T381 +807T311 685T285 518Q285 455 298 401Z" /> +<glyph unicode="ù" glyph-name="ugrave" horiz-adv-x="1350" d="M724 1036H1058V172H1173V0H871V96Q801 42 719 12T542 -18Q464 -18 401 4T293 74T224 195T200 369V864H60V1036H394V391Q394 272 449 211T607 150Q668 150 735 172T863 233V864H724V1036ZM603 +1178L316 1460V1477H564L748 1178H603Z" /> +<glyph unicode="ú" glyph-name="uacute" horiz-adv-x="1350" d="M724 1036H1058V172H1173V0H871V96Q801 42 719 12T542 -18Q464 -18 401 4T293 74T224 195T200 369V864H60V1036H394V391Q394 272 449 211T607 150Q668 150 735 172T863 233V864H724V1036ZM603 +1477H843V1460L544 1178H390L603 1477Z" /> +<glyph unicode="û" glyph-name="ucircumflex" horiz-adv-x="1350" d="M724 1036H1058V172H1173V0H871V96Q801 42 719 12T542 -18Q464 -18 401 4T293 74T224 195T200 369V864H60V1036H394V391Q394 272 449 211T607 150Q668 150 735 172T863 233V864H724V1036ZM334 +1176L584 1489H647L899 1176H750L617 1331L482 1176H334Z" /> +<glyph unicode="ü" glyph-name="udieresis" horiz-adv-x="1350" d="M724 1036H1058V172H1173V0H871V96Q801 42 719 12T542 -18Q464 -18 401 4T293 74T224 195T200 369V864H60V1036H394V391Q394 272 449 211T607 150Q668 150 735 172T863 233V864H724V1036ZM260 +1360Q260 1386 270 1409T298 1450T339 1478T389 1489Q414 1489 437 1479T477 1451T504 1410T514 1360Q514 1333 504 1309T477 1267T437 1238T389 1227Q363 1227 340 1237T299 1266T271 1309T260 1360ZM719 1360Q719 1386 729 1409T757 1450T798 1478T848 1489Q873 +1489 895 1479T935 1451T963 1410T973 1360Q973 1333 963 1309T936 1267T896 1238T848 1227Q822 1227 799 1237T758 1266T730 1309T719 1360Z" /> +<glyph unicode="ý" glyph-name="yacute" horiz-adv-x="1176" d="M31 1036H424V864H301L544 203L798 864H676V1036H1069V864H962L501 -299H643V-471H225V-299H351L461 -14L115 864H31V1036ZM628 1477H868V1460L569 1178H415L628 1477Z" /> +<glyph unicode="þ" glyph-name="thorn" horiz-adv-x="1243" d="M57 1577H385V950Q451 1001 529 1031T690 1061Q792 1061 877 1023T1023 916T1119 751T1153 537Q1153 412 1115 311T1010 136T849 24T645 -16Q568 -16 501 6T385 65V-299H547V-471H55V-299H199V1405H57V1577ZM641 +897Q568 897 501 867T385 786V229Q417 196 479 171T635 145Q699 145 758 169T862 241T934 362T961 530Q961 618 936 686T867 801T765 872T641 897Z" /> +<glyph unicode="ÿ" glyph-name="ydieresis" horiz-adv-x="1176" d="M188 1617Q188 1643 198 1666T226 1707T268 1735T319 1746Q345 1746 368 1736T409 1708T437 1667T448 1617Q448 1590 438 1566T410 1524T369 1495T319 1484Q292 1484 268 1494T227 1523T199 +1566T188 1617ZM647 1361Q647 1387 657 1410T685 1451T727 1479T778 1490Q804 1490 827 1480T868 1452T896 1411T907 1361Q907 1334 897 1310T869 1268T828 1239T778 1228Q751 1228 727 1238T686 1267T658 1310T647 1361ZM31 1036H424V864H301L544 203L798 864H676V1036H1069V864H962L501 +-299H643V-471H225V-299H351L461 -14L115 864H31V1036Z" /> +<glyph unicode="–" glyph-name="endash" horiz-adv-x="1024" d="M0 647H1024V485H0V647Z" /> +<glyph unicode="—" glyph-name="emdash" horiz-adv-x="2048" d="M0 647H2048V485H0V647Z" /> +<glyph unicode="‘" glyph-name="quoteleft" horiz-adv-x="606" d="M362 1556L494 1493L303 979L113 1057L362 1556Z" /> +<glyph unicode="’" glyph-name="quoteright" horiz-adv-x="606" d="M276 1565L496 1479L236 942L92 995L276 1565Z" /> +<glyph unicode="“" glyph-name="quotedblleft" horiz-adv-x="1065" d="M805 1556L936 1493L745 979L555 1057L805 1556ZM379 1556L510 1493L319 979L129 1057L379 1556Z" /> +<glyph unicode="”" glyph-name="quotedblright" horiz-adv-x="1028" d="M223 979L92 1042L283 1556L473 1479L223 979ZM649 979L518 1042L709 1556L899 1479L649 979Z" /> +<glyph unicode="„" glyph-name="quotedblbase" horiz-adv-x="1005" d="M205 283L424 197L164 -340L20 -287L205 283ZM666 283L885 197L625 -340L481 -287L666 283Z" /> +<glyph unicode="•" glyph-name="bullet" horiz-adv-x="811" d="M154 780Q154 832 173 878T227 958T307 1012T406 1032Q458 1032 504 1013T584 959T637 879T657 780Q657 727 638 681T584 601T504 548T406 528Q353 528 307 547T227 601T174 681T154 780Z" /> +<glyph unicode="‹" glyph-name="guilsinglleft" horiz-adv-x="616" d="M514 172H322L102 565L322 958H514L285 565L514 172Z" /> +<glyph unicode="›" glyph-name="guilsinglright" horiz-adv-x="616" d="M332 565L102 958H295L514 565L295 172H102L332 565Z" /> +<hkern g1="A" g2="T" k="184" /> +<hkern g1="A" g2="U" k="125" /> +<hkern g1="A" g2="V" k="102" /> +<hkern g1="A" g2="W" k="100" /> +<hkern g1="A" g2="Y" k="125" /> +<hkern g1="A" g2="v" k="102" /> +<hkern g1="A" g2="y" k="76" /> +<hkern g1="F" g2="A" k="76" /> +<hkern g1="F" g2="a" k="102" /> +<hkern g1="F" g2="c" k="111" /> +<hkern g1="F" g2="e" k="111" /> +<hkern g1="F" g2="o" k="111" /> +<hkern g1="F" g2="comma" k="256" /> +<hkern g1="F" g2="period" k="256" /> +<hkern g1="K" g2="O" k="76" /> +<hkern g1="L" g2="T" k="154" /> +<hkern g1="L" g2="V" k="102" /> +<hkern g1="L" g2="W" k="100" /> +<hkern g1="L" g2="Y" k="219" /> +<hkern g1="O" g2="X" k="102" /> +<hkern g1="O" g2="Y" k="51" /> +<hkern g1="P" g2="A" k="125" /> +<hkern g1="P" g2="a" k="76" /> +<hkern g1="P" g2="comma" k="399" /> +<hkern g1="P" g2="period" k="410" /> +<hkern g1="T" g2="A" k="184" /> +<hkern g1="T" g2="a" k="205" /> +<hkern g1="T" g2="c" k="246" /> +<hkern g1="T" g2="d" k="246" /> +<hkern g1="T" g2="e" k="246" /> +<hkern g1="T" g2="n" k="170" /> +<hkern g1="T" g2="o" k="246" /> +<hkern g1="T" g2="q" k="250" /> +<hkern g1="T" g2="u" k="184" /> +<hkern g1="T" g2="comma" k="299" /> +<hkern g1="T" g2="period" k="299" /> +<hkern g1="U" g2="comma" k="76" /> +<hkern g1="U" g2="period" k="76" /> +<hkern g1="V" g2="A" k="102" /> +<hkern g1="V" g2="o" k="125" /> +<hkern g1="V" g2="period" k="190" /> +<hkern g1="X" g2="O" k="76" /> +<hkern g1="Y" g2="A" k="154" /> +<hkern g1="Y" g2="s" k="184" /> +<hkern g1="Y" g2="comma" k="201" /> +<hkern g1="Y" g2="period" k="215" /> +<hkern g1="o" g2="period" k="49" /> +<hkern g1="r" g2="comma" k="170" /> +<hkern g1="r" g2="period" k="150" /> +<hkern g1="v" g2="comma" k="236" /> +<hkern g1="v" g2="period" k="190" /> +<hkern g1="w" g2="period" k="190" /> +<hkern g1="y" g2="comma" k="215" /> +<hkern g1="y" g2="period" k="215" /> +<hkern g1="comma" g2="space" k="236" /> +</font> +</defs> +</svg> diff --git a/web/static/fonts/Arvo-regular.ttf b/web/static/fonts/Arvo-regular.ttf Binary files differnew file mode 100644 index 000000000..0dfe27e4e --- /dev/null +++ b/web/static/fonts/Arvo-regular.ttf diff --git a/web/static/fonts/Arvo-regular.woff b/web/static/fonts/Arvo-regular.woff Binary files differnew file mode 100644 index 000000000..ff60300b2 --- /dev/null +++ b/web/static/fonts/Arvo-regular.woff diff --git a/web/static/fonts/Arvo-regular.woff2 b/web/static/fonts/Arvo-regular.woff2 Binary files differnew file mode 100644 index 000000000..243006f4b --- /dev/null +++ b/web/static/fonts/Arvo-regular.woff2 diff --git a/web/static/fonts/Droid-Serif-regular.eot b/web/static/fonts/Droid-Serif-regular.eot Binary files differnew file mode 100644 index 000000000..99d028feb --- /dev/null +++ b/web/static/fonts/Droid-Serif-regular.eot diff --git a/web/static/fonts/Droid-Serif-regular.svg b/web/static/fonts/Droid-Serif-regular.svg new file mode 100644 index 000000000..446bbc66c --- /dev/null +++ b/web/static/fonts/Droid-Serif-regular.svg @@ -0,0 +1,504 @@ +<?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"> +<defs > +<font id="DroidSerif" horiz-adv-x="1132" ><font-face + font-family="Droid Serif" + units-per-em="2048" + panose-1="2 2 6 0 6 5 0 2 2 0" + ascent="1907" + descent="-492" + alphabetic="0" /> +<glyph unicode=" " glyph-name="space" horiz-adv-x="532" /> +<glyph unicode="!" glyph-name="exclam" horiz-adv-x="682" d="M221 1462H459L387 412H293L221 1462ZM211 125Q211 165 221 191T248 234T289 257T340 264Q366 264 389 257T430 234T458 192T469 125Q469 86 459 59T431 16T390 -7T340 -14Q313 -14 290 -7T249 16T221 +59T211 125Z" /> +<glyph unicode=""" glyph-name="quotedbl" horiz-adv-x="836" d="M502 1462H719L657 981H563L502 1462ZM117 1462H334L272 981H178L117 1462Z" /> +<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="1145" d="M397 537H682L758 938H473L397 537ZM1038 537V416H780L702 0H580L657 416H373L295 0H172L250 416H82V537H272L350 938H106V1059H373L446 1462H571L496 1059H780L856 1462H979L903 1059H1063V938H881L805 +537H1038Z" /> +<glyph unicode="$" glyph-name="dollar" horiz-adv-x="1145" d="M621 1401Q713 1399 777 1381T883 1332T942 1260T961 1171Q961 1105 917 1072T799 1038Q799 1083 792 1128T765 1211T710 1275T621 1307V829Q713 789 784 749T903 663T976 560T1001 430Q1001 276 +902 191T621 86V-162H518V82Q467 82 415 86T314 101T219 128T135 166V481H221Q221 424 242 371T303 275T397 205T518 172V678Q422 721 356 763T248 851T189 952T170 1073Q170 1142 194 1198T264 1295T373 1362T518 1397V1556H621V1401ZM813 399Q813 440 803 472T770 +533T711 585T621 633V178Q713 194 763 252T813 399ZM354 1090Q354 1047 364 1015T396 957T447 912T518 874V1303Q478 1294 447 1275T396 1228T365 1165T354 1090Z" /> +<glyph unicode="%" glyph-name="percent" horiz-adv-x="1835" d="M764 1030Q764 927 743 843T680 699T575 606T428 573Q340 573 277 606T172 699T112 843T92 1030Q92 1133 111 1216T172 1359T277 1451T430 1483Q514 1483 576 1451T680 1360T743 1217T764 1030ZM276 +1030Q276 942 284 873T310 755T357 682T428 657Q470 657 499 682T545 755T570 872T578 1030Q578 1117 571 1185T546 1300T500 1372T430 1397Q388 1397 359 1373T311 1301T284 1185T276 1030ZM1743 436Q1743 333 1722 249T1659 105T1554 13T1407 -20Q1319 -20 1255 +12T1151 105T1091 249T1071 436Q1071 539 1090 622T1151 765T1256 857T1409 889Q1493 889 1555 857T1659 766T1722 623T1743 436ZM1255 436Q1255 348 1263 279T1289 161T1336 88T1407 63Q1449 63 1478 88T1524 161T1548 278T1556 436Q1556 523 1549 591T1524 706T1479 +778T1409 803Q1367 803 1338 779T1290 707T1263 591T1255 436ZM616 0H481L1212 1462H1346L616 0Z" /> +<glyph unicode="&" glyph-name="ampersand" horiz-adv-x="1520" d="M1174 0L1004 180Q967 138 923 102T824 38T705 -4T561 -20Q438 -20 347 11T195 98T104 234T74 410Q74 497 97 561T163 675T266 761T401 829Q362 875 333 917T284 1002T254 1088T244 1182Q244 +1250 266 1305T335 1400T455 1461T631 1483Q729 1483 798 1460T910 1397T973 1304T993 1192Q993 1126 974 1075T914 981T807 900T647 821L1020 426Q1034 472 1043 519T1057 612T1065 701T1067 782V862H1436V776H1417Q1383 776 1350 772T1289 754T1238 712T1202 +637Q1184 571 1161 494T1102 340L1292 137Q1307 122 1323 112T1360 96T1411 88T1483 86H1501V0H1174ZM580 94Q640 94 691 106T786 141T865 193T930 260L477 745Q430 719 393 688T329 615T288 521T274 403Q274 328 296 271T358 174T455 114T580 94ZM813 1190Q813 +1231 803 1266T771 1326T712 1367T623 1382Q532 1382 483 1329T434 1188Q434 1149 442 1115T467 1048T512 978T578 899Q638 925 682 954T756 1017T799 1094T813 1190Z" /> +<glyph unicode="'" glyph-name="quotesingle" horiz-adv-x="451" d="M117 1462H334L272 981H178L117 1462Z" /> +<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="709" d="M330 649Q330 527 339 408T381 183T475 -14T643 -168V-262Q502 -206 402 -126T239 64T146 319T117 649Q117 834 146 977T238 1231T402 1420T643 1556V1464Q538 1400 476 1311T381 1115T340 890T330 649Z" /> +<glyph unicode=")" glyph-name="parenright" horiz-adv-x="709" d="M379 649Q379 771 370 890T328 1115T233 1310T66 1464V1556Q207 1500 307 1421T470 1231T562 978T592 649Q592 464 563 320T470 65T307 -126T66 -262V-168Q171 -104 233 -14T327 182T369 408T379 649Z" /> +<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="1024" d="M84 1268L156 1430L471 1231L418 1556H596L539 1233L856 1425L928 1266L582 1165L928 1065L856 907L539 1098L596 774H418L469 1098L156 903L84 1063L428 1165L84 1268Z" /> +<glyph unicode="+" glyph-name="plus" horiz-adv-x="1145" d="M633 672V293H510V672H133V793H510V1171H633V793H1012V672H633Z" /> +<glyph unicode="," glyph-name="comma" horiz-adv-x="512" d="M397 86Q397 21 379 -40T321 -153T217 -246T61 -315V-229Q162 -197 209 -151T256 -45Q256 -25 245 -12T217 12T181 33T145 57T117 91T106 143Q106 202 144 233T240 264Q272 264 300 253T350 219T384 +163T397 86Z" /> +<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="635" d="M51 481V635H584V481H51Z" /> +<glyph unicode="." glyph-name="period" horiz-adv-x="586" d="M164 125Q164 165 174 191T201 234T242 257T293 264Q319 264 342 257T383 234T411 192T422 125Q422 86 412 59T384 16T343 -7T293 -14Q266 -14 243 -7T202 16T174 59T164 125Z" /> +<glyph unicode="/" glyph-name="slash" horiz-adv-x="590" d="M121 -248H0L471 1556H590L121 -248Z" /> +<glyph unicode="0" glyph-name="zero" horiz-adv-x="1145" d="M1053 733Q1053 564 1024 425T934 187T784 34T573 -20Q447 -20 356 34T207 187T120 425T92 735Q92 905 120 1043T206 1279T356 1430T575 1483Q695 1483 784 1430T934 1279T1023 1043T1053 733ZM305 +733Q305 581 319 462T364 260T447 134T573 90Q648 90 699 133T781 259T826 461T840 733Q840 885 827 1004T782 1205T700 1329T575 1372Q500 1372 449 1330T365 1205T319 1004T305 733Z" /> +<glyph unicode="1" glyph-name="one" horiz-adv-x="1145" d="M197 0V86H334Q369 86 399 91T452 111T488 156T502 233V1309Q463 1261 428 1222T361 1155T299 1112T238 1096Q193 1096 164 1126T135 1206Q166 1214 197 1225T264 1255T341 1300T434 1364L578 1470H709V233Q709 +185 722 156T758 112T811 91T877 86H977V0H197Z" /> +<glyph unicode="2" glyph-name="two" horiz-adv-x="1145" d="M944 1141Q944 1069 921 1001T854 862T747 713T602 547L256 164H729Q775 164 805 177T854 211T883 259T901 317L909 354H995L985 0H104V150L446 545Q528 640 583 715T673 856T722 986T737 1120Q737 +1179 725 1226T687 1308T622 1361T528 1380Q458 1380 415 1355T346 1288T312 1191T303 1075Q266 1075 234 1081T178 1102T141 1143T127 1208Q127 1267 152 1317T228 1405T354 1462T528 1483Q625 1483 702 1459T833 1390T915 1282T944 1141Z" /> +<glyph unicode="3" glyph-name="three" horiz-adv-x="1145" d="M508 90Q569 90 624 107T721 163T788 265T813 420Q813 485 788 537T714 627T597 684T442 705H377V809H442Q510 809 568 831T670 895T739 994T764 1126Q764 1186 752 1233T714 1313T646 1363T545 1380Q475 +1380 431 1355T362 1288T328 1191T319 1075Q282 1075 250 1081T194 1102T157 1143T143 1208Q143 1267 168 1317T245 1405T371 1462T545 1483Q642 1483 721 1461T856 1398T944 1296T975 1157Q975 1088 951 1027T882 917T778 832T647 780Q685 776 728 767T813 739T893 +694T961 628T1008 538T1026 418Q1026 336 1004 271T944 158T854 75T745 20T626 -10T506 -20Q405 -20 332 -2T212 48T142 120T119 207Q119 269 154 303T248 338Q248 284 265 239T316 160T397 109T508 90Z" /> +<glyph unicode="4" glyph-name="four" horiz-adv-x="1145" d="M862 401V233Q862 185 875 156T911 112T965 91T1030 86H1057V0H440V86H498Q533 86 563 91T616 111T652 156T666 233V401H35V485L668 1462H862V516H1116V401H862ZM666 895Q666 940 667 994T669 1104T673 +1215T680 1319Q673 1305 660 1282T631 1229T596 1168T559 1106T524 1049T496 1004L182 516H666V895Z" /> +<glyph unicode="5" glyph-name="five" horiz-adv-x="1145" d="M489 100Q552 100 605 117T698 175T760 282T782 446Q782 527 760 587T697 687T599 746T471 766Q418 766 380 762T312 752T260 737T219 721L170 735L236 1460H920L930 1151H844L836 1212Q833 1234 828 +1249T810 1275T778 1291T725 1296H328L289 846Q320 857 378 868T528 879Q627 879 712 852T861 771T959 636T995 446Q995 342 962 256T865 109T709 14T500 -20Q386 -20 312 -1T193 49T131 115T113 186Q113 243 144 275T242 307Q242 263 257 225T303 160T380 116T489 +100Z" /> +<glyph unicode="6" glyph-name="six" horiz-adv-x="1145" d="M659 1384Q505 1384 426 1233T336 782Q361 803 391 822T458 856T536 880T629 889Q723 889 799 860T928 777T1011 645T1040 469Q1040 361 1011 271T925 117T787 16T600 -20Q498 -20 411 22T261 156T161 +391T125 737Q125 834 139 927T183 1103T256 1256T359 1376T494 1455T659 1483Q745 1483 808 1465T914 1417T976 1348T997 1268Q997 1209 957 1177T840 1145Q840 1195 831 1238T799 1314T743 1365T659 1384ZM588 784Q548 784 511 774T442 747T382 709T334 666Q336 +512 355 403T410 225T495 124T606 92Q716 92 773 177T831 449Q831 624 769 704T588 784Z" /> +<glyph unicode="7" glyph-name="seven" horiz-adv-x="1145" d="M389 0L872 1296H334Q224 1296 215 1192L207 1090H121L131 1460H1047V1401L543 0H389Z" /> +<glyph unicode="8" glyph-name="eight" horiz-adv-x="1145" d="M94 367Q94 441 117 496T183 595T282 674T406 741Q348 774 299 812T215 897T161 997T141 1116Q141 1187 166 1253T244 1370T381 1452T584 1483Q680 1483 755 1457T881 1383T960 1272T987 1130Q987 +1063 967 1012T911 921T824 848T711 784Q787 748 849 707T957 618T1026 514T1051 391Q1051 294 1016 218T917 88T762 8T559 -20Q444 -20 357 10T212 92T124 215T94 367ZM569 74Q636 74 690 94T783 151T843 237T864 346Q864 398 845 442T783 528T672 609T504 692Q407 +640 350 557T293 358Q293 294 310 242T362 153T449 95T569 74ZM805 1135Q805 1182 793 1227T753 1307T681 1364T571 1386Q514 1386 470 1368T395 1317T350 1239T334 1141Q334 1086 351 1042T403 962T490 895T610 831Q668 860 705 890T765 957T796 1037T805 1135Z" +/> +<glyph unicode="9" glyph-name="nine" horiz-adv-x="1145" d="M467 90Q637 90 718 242T809 702Q787 675 758 650T691 606T608 575T508 563Q419 563 345 589T217 667T134 797T104 979Q104 1090 134 1182T220 1341T358 1445T543 1483Q647 1483 734 1443T885 1319T984 +1105T1020 795Q1020 688 1007 586T965 392T892 225T786 94T644 8T465 -23Q378 -23 321 -8T230 33T182 90T168 154Q168 192 187 218T229 252Q243 220 263 191T313 139T381 103T467 90ZM553 684Q603 685 644 698T718 734T773 787T811 850V854Q809 989 789 1086T734 +1247T651 1340T543 1370Q434 1370 375 1275T315 999Q315 915 330 855T375 757T449 702T553 684Z" /> +<glyph unicode=":" glyph-name="colon" horiz-adv-x="588" d="M166 125Q166 165 176 191T203 234T244 257T295 264Q321 264 344 257T385 234T413 192T424 125Q424 86 414 59T386 16T345 -7T295 -14Q268 -14 245 -7T204 16T176 59T166 125ZM166 969Q166 1009 176 +1035T203 1078T244 1101T295 1108Q321 1108 344 1101T385 1078T413 1036T424 969Q424 930 414 903T386 860T345 836T295 829Q268 829 245 836T204 859T176 903T166 969Z" /> +<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="512" d="M397 86Q397 21 379 -40T321 -153T217 -246T61 -315V-229Q162 -197 209 -151T256 -45Q256 -25 245 -12T217 12T181 33T145 57T117 91T106 143Q106 202 144 233T240 264Q272 264 300 253T350 219T384 +163T397 86ZM129 969Q129 1009 139 1035T166 1078T207 1101T258 1108Q284 1108 307 1101T348 1078T376 1036T387 969Q387 930 377 903T349 860T308 836T258 829Q231 829 208 836T167 859T139 903T129 969Z" /> +<glyph unicode="<" glyph-name="less" horiz-adv-x="1145" d="M133 696V768L1012 1241V1104L324 731L1012 362V225L133 696Z" /> +<glyph unicode="=" glyph-name="equal" horiz-adv-x="1145" d="M1012 590V469H133V590H1012ZM1012 993V872H133V993H1012Z" /> +<glyph unicode=">" glyph-name="greater" horiz-adv-x="1145" d="M133 225V362L821 731L133 1104V1241L1012 768V696L133 225Z" /> +<glyph unicode="?" glyph-name="question" horiz-adv-x="1024" d="M522 412H397V723Q486 759 546 806T643 909T695 1025T711 1147Q711 1200 698 1243T658 1317T589 1365T487 1382Q423 1382 380 1361T309 1304T270 1221T258 1120Q221 1120 190 1128T137 1153T101 +1195T88 1253Q88 1302 110 1344T180 1417T300 1465T471 1483Q568 1483 650 1458T792 1386T886 1269T920 1112Q920 1028 894 959T816 833T691 729T522 643V412ZM328 125Q328 165 338 191T365 234T406 257T457 264Q483 264 506 257T547 234T575 192T586 125Q586 86 +576 59T548 16T507 -7T457 -14Q430 -14 407 -7T366 16T338 59T328 125Z" /> +<glyph unicode="@" glyph-name="at" horiz-adv-x="1886" d="M1778 803Q1778 655 1742 536T1648 332T1519 203T1376 158Q1285 158 1225 207T1135 344H1124Q1103 304 1077 270T1017 211T942 172T848 158Q786 158 730 179T631 243T563 352T537 508Q537 563 549 627T588 +754T656 877T756 982T889 1055T1059 1083Q1125 1083 1172 1065T1251 1022L1333 1065H1382L1278 543Q1275 519 1271 495Q1268 475 1266 451T1264 406Q1264 370 1274 344T1302 300T1341 274T1389 266Q1434 266 1481 302T1566 407T1628 578T1653 809Q1653 943 1610 +1045T1491 1217T1308 1322T1073 1358Q973 1358 877 1330T694 1248T535 1115T408 936T325 713T295 451Q295 280 344 160T476 -37T670 -149T905 -184Q989 -184 1064 -170T1204 -131T1325 -77T1425 -14L1473 -88Q1422 -126 1359 -162T1223 -227T1065 -273T885 -291Q720 +-291 582 -246T345 -108T189 122T133 446Q133 591 164 722T255 967T399 1171T590 1327T820 1427T1085 1462Q1257 1462 1387 1411T1604 1272T1734 1063T1778 803ZM727 479Q727 371 770 319T883 266Q935 266 973 288T1037 347T1079 429T1104 522L1182 938Q1169 967 +1137 983T1067 999Q1006 999 957 973T870 903T805 805T761 691T735 578T727 479Z" /> +<glyph unicode="A" glyph-name="A" horiz-adv-x="1444" d="M414 489L336 274Q327 250 322 227T317 186Q317 134 350 110T453 86H500V0H0V86H39Q69 86 90 92T128 117T160 166T195 246L649 1462H809L1272 195Q1284 163 1296 142T1326 109T1365 91T1417 86H1444V0H881V86H928Q1051 +86 1051 184Q1051 201 1047 219T1034 260L952 489H414ZM788 950Q756 1041 730 1120T686 1274Q679 1237 670 1203T649 1132T624 1057T592 969L453 592H915L788 950Z" /> +<glyph unicode="B" glyph-name="B" horiz-adv-x="1339" d="M1153 1096Q1153 1027 1134 975T1080 884T1000 819T899 774V766Q969 754 1027 725T1126 650T1191 540T1214 395Q1214 197 1084 99T688 0H78V86H104Q139 86 169 91T223 111T259 156T272 233V1237Q272 1282 +259 1309T222 1352T169 1371T104 1376H78V1462H627Q893 1462 1023 1374T1153 1096ZM479 102H678Q765 102 825 118T923 169T978 262T995 401Q995 481 980 540T929 638T832 696T682 715H479V102ZM479 817H621Q711 817 771 833T867 882T918 969T934 1096Q934 1171 +917 1221T862 1303T764 1347T616 1360H479V817Z" /> +<glyph unicode="C" glyph-name="C" horiz-adv-x="1257" d="M774 1483Q879 1483 956 1466T1085 1417T1162 1344T1188 1253Q1188 1220 1175 1194T1137 1149T1081 1120T1010 1110Q1010 1158 998 1205T957 1289T883 1350T770 1374Q654 1374 573 1332T441 1208T367 +1007T344 733Q344 596 368 482T444 287T576 160T770 115Q845 115 902 129T1004 168T1081 223T1141 289Q1158 278 1169 259T1180 209Q1180 170 1154 130T1073 56T936 2T739 -20Q586 -20 470 34T276 187T157 425T117 733Q117 899 159 1037T283 1274T489 1428T774 +1483Z" /> +<glyph unicode="D" glyph-name="D" horiz-adv-x="1489" d="M1372 733Q1372 565 1330 430T1205 199T997 52T705 0H78V86H104Q139 86 169 91T223 111T259 156T272 233V1237Q272 1282 259 1309T222 1352T169 1371T104 1376H78V1462H705Q863 1462 987 1414T1196 1272T1327 +1043T1372 733ZM657 104Q779 104 870 145T1023 267T1114 464T1145 733Q1145 1038 1024 1199T659 1360H479V104H657Z" /> +<glyph unicode="E" glyph-name="E" horiz-adv-x="1276" d="M479 102H874Q923 102 957 115T1015 152T1051 205T1069 270L1083 358H1190L1176 0H78V86H104Q138 86 168 90T222 109T258 150T272 223V1229Q272 1277 259 1306T223 1350T170 1371T104 1376H78V1462H1110L1120 +1104H1014L1004 1192Q1000 1226 989 1256T956 1310T902 1346T823 1360H479V815H973V715H479V102Z" /> +<glyph unicode="F" glyph-name="F" horiz-adv-x="1208" d="M479 1360V768H973V668H479V233Q479 185 492 156T528 112T582 91T647 86H715V0H78V86H104Q138 86 168 90T222 109T258 150T272 223V1237Q272 1282 259 1309T222 1352T169 1371T104 1376H78V1462H1110L1120 +1104H1014L1004 1192Q1000 1227 988 1257T954 1310T897 1346T815 1360H479Z" /> +<glyph unicode="G" glyph-name="G" horiz-adv-x="1462" d="M821 -20Q643 -20 511 34T291 187T160 425T117 733Q117 899 162 1037T298 1274T523 1428T834 1483Q948 1483 1032 1466T1173 1417T1258 1344T1286 1253Q1286 1220 1271 1194T1231 1149T1171 1120T1096 +1110Q1096 1158 1082 1205T1036 1289T952 1350T825 1374Q695 1374 604 1332T454 1208T370 1007T344 733Q344 580 371 461T459 261T617 138T854 96Q913 96 968 102T1067 121V451Q1067 496 1054 523T1017 565T964 585T899 590H891V676H1423V590H1415Q1386 590 1360 +585T1315 565T1285 520T1274 442V74Q1171 26 1062 3T821 -20Z" /> +<glyph unicode="H" glyph-name="H" horiz-adv-x="1624" d="M950 0V86H977Q1012 86 1042 91T1095 111T1131 156T1145 233V713H479V233Q479 185 492 156T528 112T582 91T647 86H674V0H78V86H104Q139 86 169 91T223 111T259 156T272 233V1237Q272 1282 259 1309T222 +1352T169 1371T104 1376H78V1462H674V1376H647Q613 1376 582 1371T529 1351T493 1306T479 1229V815H1145V1229Q1145 1277 1132 1306T1096 1350T1043 1371T977 1376H950V1462H1546V1376H1520Q1485 1376 1455 1371T1401 1351T1365 1306T1352 1229V223Q1352 178 1365 +151T1402 109T1455 91T1520 86H1546V0H950Z" /> +<glyph unicode="I" glyph-name="I" horiz-adv-x="752" d="M78 0V86H104Q139 86 169 91T223 111T259 156T272 233V1229Q272 1277 259 1306T223 1350T170 1371T104 1376H78V1462H674V1376H647Q613 1376 582 1371T529 1351T493 1306T479 1229V233Q479 185 492 156T528 +112T582 91T647 86H674V0H78Z" /> +<glyph unicode="J" glyph-name="J" horiz-adv-x="731" d="M-23 -395H-4Q62 -395 113 -377T200 -315T253 -199T272 -18V1237Q272 1282 259 1309T222 1352T169 1371T104 1376H78V1462H674V1376H647Q613 1376 582 1371T529 1351T493 1306T479 1229V-16Q479 -154 443 +-245T344 -391T196 -469T12 -492H-23V-395Z" /> +<glyph unicode="K" glyph-name="K" horiz-adv-x="1434" d="M903 1137Q936 1175 958 1204T992 1258T1010 1300T1016 1333Q1016 1359 991 1368T915 1378V1462H1368V1378Q1333 1378 1301 1365T1236 1327T1169 1267T1094 1186L797 852L1229 250Q1288 169 1342 128T1454 +86H1458V0H1436Q1333 0 1267 8T1156 37T1078 93T1006 184L653 690L479 549V233Q479 185 492 156T528 112T582 91T647 86H674V0H78V86H104Q138 86 168 90T222 109T258 150T272 223V1237Q272 1282 259 1309T222 1352T169 1371T104 1376H78V1462H674V1376H647Q613 +1376 582 1371T529 1351T493 1306T479 1229V651L903 1137Z" /> +<glyph unicode="L" glyph-name="L" horiz-adv-x="1276" d="M78 0V86H104Q139 86 169 91T223 111T259 156T272 233V1229Q272 1277 259 1306T223 1350T170 1371T104 1376H78V1462H674V1376H647Q613 1376 583 1372T529 1352T493 1310T479 1237V102H883Q929 102 961 +118T1015 161T1047 221T1063 287L1083 440H1190L1176 0H78Z" /> +<glyph unicode="M" glyph-name="M" horiz-adv-x="1921" d="M1298 0V86H1305Q1338 86 1364 90T1409 108T1439 147T1452 215V1309L983 0H872L397 1305V233Q397 185 407 156T436 112T483 91T545 86H551V0H78V86H104Q138 86 168 90T222 109T258 150T272 223V1237Q272 +1282 259 1309T222 1352T169 1371T104 1376H78V1462H545L969 291L1389 1462H1843V1376H1817Q1782 1376 1752 1371T1698 1351T1662 1306T1649 1229V233Q1649 185 1662 156T1698 112T1751 91T1817 86H1843V0H1298Z" /> +<glyph unicode="N" glyph-name="N" horiz-adv-x="1563" d="M1165 0L397 1180V233Q397 185 410 156T446 112T500 91T565 86H592V0H78V86H104Q139 86 169 91T223 111T259 156T272 233V1237Q272 1282 259 1309T222 1352T169 1371T104 1376H78V1462H453L1186 330V1237Q1186 +1282 1173 1309T1136 1352T1083 1371T1018 1376H991V1462H1505V1376H1479Q1444 1376 1414 1371T1360 1351T1324 1306T1311 1229V0H1165Z" /> +<glyph unicode="O" glyph-name="O" horiz-adv-x="1520" d="M1403 733Q1403 564 1361 425T1237 187T1035 34T760 -20Q597 -20 476 34T275 187T155 425T115 735Q115 905 155 1043T275 1280T477 1431T762 1485Q917 1485 1036 1432T1237 1280T1361 1043T1403 733ZM342 +733Q342 581 364 462T437 260T566 134T760 90Q874 90 953 133T1082 259T1154 461T1176 733Q1176 885 1154 1004T1083 1206T955 1331T762 1374Q648 1374 568 1331T438 1206T365 1005T342 733Z" /> +<glyph unicode="P" glyph-name="P" horiz-adv-x="1237" d="M78 0V86H104Q139 86 169 91T223 111T259 156T272 233V1237Q272 1282 259 1309T222 1352T169 1371T104 1376H78V1462H653Q782 1462 877 1433T1034 1348T1126 1213T1157 1034Q1157 943 1129 859T1035 711T865 +608T608 569H479V223Q479 178 492 151T529 109T582 91T647 86H715V0H78ZM479 666H588Q681 666 747 685T855 748T916 860T936 1026Q936 1112 919 1175T864 1281T766 1343T618 1364H479V666Z" /> +<glyph unicode="Q" glyph-name="Q" horiz-adv-x="1520" d="M1403 733Q1403 583 1370 457T1273 235T1114 77T897 -8Q906 -113 931 -183T995 -296T1086 -357T1200 -375H1233V-471H1145Q1064 -471 984 -450T837 -376T727 -236T672 -16Q531 -1 427 58T253 215T150 +444T115 735Q115 905 155 1043T275 1280T477 1431T762 1485Q917 1485 1036 1432T1237 1280T1361 1043T1403 733ZM342 733Q342 581 364 462T437 260T566 134T760 90Q874 90 953 133T1082 259T1154 461T1176 733Q1176 885 1154 1004T1083 1206T955 1331T762 1374Q648 +1374 568 1331T438 1206T365 1005T342 733Z" /> +<glyph unicode="R" glyph-name="R" horiz-adv-x="1343" d="M1135 250Q1187 168 1236 127T1350 86H1356V0H1327Q1231 0 1170 7T1065 34T992 90T926 184L649 645H479V223Q479 178 492 151T529 109T582 91T647 86H674V0H78V86H104Q138 86 168 90T222 109T258 150T272 +223V1237Q272 1282 259 1309T222 1352T169 1371T104 1376H78V1462H629Q895 1462 1025 1364T1155 1067Q1155 985 1129 924T1059 817T962 742T854 694L1135 250ZM479 741H623Q713 741 773 761T869 821T920 921T936 1061Q936 1143 919 1200T864 1294T766 1347T618 +1364H479V741Z" /> +<glyph unicode="S" glyph-name="S" horiz-adv-x="1114" d="M506 -20Q406 -20 330 1T202 59T124 150T98 268Q98 330 136 368T246 406Q249 342 265 283T315 179T399 107T522 80Q660 80 737 146T815 338Q815 394 799 437T746 516T649 586T498 657Q403 696 332 740T214 +839T144 961T121 1112Q121 1200 154 1269T248 1385T390 1458T569 1483Q661 1483 732 1464T852 1413T926 1340T952 1253Q952 1187 909 1154T791 1120Q791 1168 780 1214T741 1297T670 1357T561 1380Q502 1380 456 1364T377 1317T328 1243T311 1147Q311 1086 327 +1040T380 956T479 885T629 815Q719 778 789 737T909 646T984 533T1010 391Q1010 294 975 218T873 88T714 8T506 -20Z" /> +<glyph unicode="T" glyph-name="T" horiz-adv-x="1255" d="M729 233Q729 185 742 156T778 112T832 91T897 86H944V0H307V86H354Q388 86 418 90T472 109T508 150T522 223V1360H326Q281 1360 251 1347T201 1310T172 1257T158 1192L147 1104H41L51 1462H1204L1214 +1104H1108L1098 1192Q1094 1226 1084 1256T1055 1310T1005 1346T928 1360H729V233Z" /> +<glyph unicode="U" glyph-name="U" horiz-adv-x="1468" d="M741 -20Q620 -20 524 5T362 86T260 229T225 442V1237Q225 1282 212 1309T175 1352T122 1371T57 1376H31V1462H627V1376H600Q566 1376 535 1371T482 1351T446 1306T432 1229V430Q432 341 457 279T528 +177T636 120T774 102Q863 102 927 126T1034 192T1097 293T1118 422V1237Q1118 1282 1105 1309T1068 1352T1015 1371T950 1376H924V1462H1438V1376H1411Q1377 1376 1346 1371T1293 1351T1257 1306T1243 1229V418Q1243 316 1211 235T1115 97T957 10T741 -20Z" /> +<glyph unicode="V" glyph-name="V" horiz-adv-x="1382" d="M614 0L172 1268Q161 1300 148 1321T118 1354T79 1371T27 1376H0V1462H563V1376H516Q454 1376 424 1353T393 1278Q393 1261 397 1243T410 1202L635 537Q666 446 688 361T727 201Q743 275 765 358T821 +537L1047 1188Q1055 1213 1060 1236T1065 1276Q1065 1329 1032 1352T930 1376H883V1462H1382V1376H1343Q1313 1376 1292 1370T1253 1347T1220 1298T1188 1217L764 0H614Z" /> +<glyph unicode="W" glyph-name="W" horiz-adv-x="2144" d="M1180 1448L1436 561Q1465 459 1487 366T1524 201Q1539 275 1558 356T1606 537L1786 1169Q1789 1181 1793 1196T1800 1226T1805 1254T1808 1276Q1808 1329 1775 1352T1673 1376H1626V1462H2126V1376H2087Q2057 +1376 2035 1370T1994 1347T1961 1299T1931 1217L1585 0H1401L1067 1147L754 0H565L190 1268Q180 1300 168 1321T138 1354T98 1371T45 1376H18V1462H582V1376H535Q473 1376 443 1353T412 1278Q412 1261 417 1243T428 1202L616 547Q642 454 665 365T705 201Q720 281 +740 375T788 569L1032 1448H1180Z" /> +<glyph unicode="X" glyph-name="X" horiz-adv-x="1352" d="M954 1317Q954 1335 946 1346T923 1364T888 1373T844 1376H838V1462H1286V1376H1268Q1238 1376 1214 1369T1166 1345T1119 1299T1065 1229L768 801L1145 195Q1190 135 1230 111T1309 86H1335V0H782V86H793Q915 +86 915 154Q915 165 913 176T903 202T883 239T848 295L645 621L418 285Q409 272 400 256T383 221T370 185T365 150Q365 115 397 101T498 86H504V0H16V86H29Q66 86 93 93T144 118T191 162T242 229L584 719L246 1268Q209 1327 163 1351T70 1376H43V1462H598V1376H592Q557 +1376 534 1372T498 1359T480 1340T475 1317Q475 1306 476 1296T483 1273T497 1241T524 1196L709 897L903 1192Q926 1227 940 1258T954 1317Z" /> +<glyph unicode="Y" glyph-name="Y" horiz-adv-x="1280" d="M326 0V86H373Q407 86 437 90T491 109T527 150T541 223V610L162 1268Q145 1297 130 1317T99 1351T62 1370T16 1376H-10V1462H553V1376H477Q449 1376 432 1371T404 1357T391 1336T387 1311Q387 1282 399 +1253T424 1202L575 928Q611 865 636 804T678 694Q687 716 700 743T730 800T765 863T801 928L932 1163Q952 1198 960 1229T969 1286Q969 1331 937 1353T846 1376H786V1462H1286V1376H1262Q1240 1376 1221 1369T1181 1343T1140 1294T1092 1217L748 610V233Q748 185 +761 156T797 112T850 91T915 86H963V0H326Z" /> +<glyph unicode="Z" glyph-name="Z" horiz-adv-x="1212" d="M1094 1378L324 102H840Q886 102 917 115T967 152T996 205T1010 270L1020 358H1126L1116 0H74V82L842 1360H397Q352 1360 322 1347T272 1310T243 1257T229 1192L219 1104H113L123 1462H1094V1378Z" /> +<glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="735" d="M205 -262V1556H662V1470H573Q539 1470 509 1465T455 1445T419 1400T406 1323V-29Q406 -77 419 -106T455 -150T508 -171T573 -176H662V-262H205Z" /> +<glyph unicode="\" glyph-name="backslash" horiz-adv-x="590" d="M0 1556H119L590 -248H469L0 1556Z" /> +<glyph unicode="]" glyph-name="bracketright" horiz-adv-x="737" d="M76 -262V-176H164Q199 -176 229 -171T282 -151T318 -106T332 -29V1323Q332 1371 319 1400T283 1444T230 1465T164 1470H76V1556H532V-262H76Z" /> +<glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="1145" d="M535 1462H606L1038 545H901L569 1274L242 545H104L535 1462Z" /> +<glyph unicode="_" glyph-name="underscore" horiz-adv-x="940" d="M950 -291H-10V-170H950V-291Z" /> +<glyph unicode="`" glyph-name="grave" horiz-adv-x="1182" d="M791 1241H713Q672 1269 624 1310T531 1396T449 1480T393 1548V1569H612Q628 1535 649 1495T695 1414T744 1335T791 1268V1241Z" /> +<glyph unicode="a" glyph-name="a" horiz-adv-x="1153" d="M301 297Q301 201 341 154T467 106Q529 106 579 126T665 183T720 273T739 391V557L608 551Q521 547 463 530T368 481T317 403T301 297ZM549 1016Q490 1016 454 1000T397 953T369 882T362 793Q277 793 +233 822T188 922Q188 975 217 1012T296 1072T414 1107T557 1118Q651 1118 721 1100T838 1039T908 930T932 764V233Q932 190 939 162T961 117T1000 93T1059 86H1065V0H788L756 176H739Q707 133 677 97T611 35T530 -5T420 -20Q352 -20 294 -1T193 59T126 161T102 +307Q102 470 218 549T569 635L739 641V764Q739 819 733 865T707 945T650 997T549 1016Z" /> +<glyph unicode="b" glyph-name="b" horiz-adv-x="1257" d="M1145 551Q1145 403 1118 295T1037 117T906 14T727 -20Q668 -20 620 -7T534 30T466 87T414 160H401L365 0H37V86H53Q88 86 118 91T171 111T207 156T221 233V1331Q221 1376 208 1403T171 1446T118 1465T53 +1470H37V1556H414V1180Q414 1145 413 1100T410 1012Q408 964 406 913H414Q437 960 466 998T533 1062T619 1103T727 1118Q828 1118 906 1085T1037 982T1117 805T1145 551ZM692 987Q612 987 559 961T473 880T428 744T414 551Q414 444 427 362T473 224T559 140T694 +111Q762 111 809 139T887 224T932 362T946 553Q946 662 932 743T888 879T809 960T692 987Z" /> +<glyph unicode="c" glyph-name="c" horiz-adv-x="1008" d="M580 -20Q478 -20 392 11T244 111T148 285T113 543Q113 707 147 817T243 995T388 1090T569 1118Q633 1118 696 1106T811 1067T894 1002T926 909Q926 838 880 809T743 780Q743 828 735 871T708 946T655 +997T569 1016Q510 1016 463 994T381 918T329 773T311 545Q311 327 383 220T621 113Q716 113 787 153T893 256Q908 244 918 224T928 176Q928 141 906 106T841 43T732 -2T580 -20Z" /> +<glyph unicode="d" glyph-name="d" horiz-adv-x="1257" d="M1036 225Q1036 180 1049 153T1086 110T1139 91T1204 86H1221V0H874L852 184H844Q821 137 792 100T724 36T638 -5T530 -20Q429 -20 351 13T220 116T140 293T113 547Q113 695 140 803T220 981T351 1084T530 +1118Q589 1118 637 1105T723 1068T792 1011T844 938H856Q853 988 850 1032Q848 1070 846 1107T844 1163V1331Q844 1376 831 1403T794 1446T741 1465T676 1470H659V1556H1036V225ZM565 111Q645 111 698 137T784 218T830 354T844 547Q844 654 831 736T785 873T698 +958T563 987Q496 987 448 958T370 873T325 735T311 545Q311 327 370 219T565 111Z" /> +<glyph unicode="e" glyph-name="e" horiz-adv-x="1096" d="M563 1008Q449 1008 388 916T315 645H786Q786 726 774 793T736 908T668 982T563 1008ZM588 -20Q477 -20 389 17T239 127T146 303T113 541Q113 828 231 973T567 1118Q666 1118 745 1087T879 995T963 842T993 +629V535H311Q313 423 333 343T392 210T487 134T616 109Q669 109 714 121T797 153T862 198T909 252Q923 246 935 227T948 182Q948 151 926 116T859 50T747 0T588 -20Z" /> +<glyph unicode="f" glyph-name="f" horiz-adv-x="756" d="M688 86V0H55V86H82Q117 86 147 91T200 111T236 156T250 233V1001H63V1098H250V1200Q250 1292 275 1362T347 1480T461 1552T612 1577Q692 1577 747 1567T835 1537T884 1492T899 1434Q899 1406 887 1385T852 +1349T799 1327T731 1319Q731 1350 725 1379T703 1432T661 1469T596 1483Q552 1483 523 1466T475 1416T450 1333T442 1219V1098H731V1001H442V233Q442 185 455 156T491 112T545 91T610 86H688Z" /> +<glyph unicode="g" glyph-name="g" horiz-adv-x="1102" d="M1077 1055Q1077 1033 1071 1014T1051 980T1018 957T969 948Q969 960 966 972T956 994T935 1011T901 1018Q875 1018 854 1012T813 993Q848 950 870 892T893 745Q893 669 870 605T802 493T687 420T524 +393Q512 393 497 393T467 394T439 396T418 399Q398 389 380 377T349 350T327 316T319 274Q319 249 328 234T355 211T395 200T446 197H678Q770 197 834 174T938 111T997 14T1016 -109Q1016 -197 984 -268T884 -388T715 -465T473 -492Q259 -492 153 -413T47 -193Q47 +-133 68 -88T124 -11T206 41T303 70Q282 79 262 94T226 130T200 178T190 238Q190 299 222 343T324 430Q280 448 246 479T188 551T152 640T139 739Q139 828 163 898T235 1017T355 1092T524 1118Q561 1118 597 1113T663 1098T718 1076T758 1051Q773 1067 793 1086T838 +1122T892 1150T956 1161Q987 1161 1009 1153T1047 1130T1069 1096T1077 1055ZM213 -180Q213 -225 225 -264T267 -331T348 -375T477 -391Q587 -391 658 -373T772 -321T831 -243T848 -143Q848 -96 835 -66T795 -18T729 7T639 14H438Q395 14 355 7T283 -22T232 -81T213 +-180ZM332 745Q332 614 375 553T518 492Q568 492 602 507T659 553T690 632T700 748Q700 886 658 952T516 1018Q417 1018 375 951T332 745Z" /> +<glyph unicode="h" glyph-name="h" horiz-adv-x="1300" d="M588 86V0H37V86H53Q88 86 118 91T171 111T207 156T221 233V1331Q221 1376 208 1403T171 1446T118 1465T53 1470H37V1556H414V1106Q414 1078 413 1048T410 991Q408 961 406 932H416Q508 1118 717 1118Q804 +1118 871 1095T985 1023T1055 898T1079 717V233Q1079 185 1091 156T1124 112T1174 91T1237 86H1243V0H887V707Q887 774 875 826T837 914T767 968T662 987Q598 987 552 964T475 897T429 792T414 655V223Q414 178 427 151T464 109T517 91T582 86H588Z" /> +<glyph unicode="i" glyph-name="i" horiz-adv-x="655" d="M74 86Q108 86 138 90T192 109T228 150T242 223V872Q242 917 229 944T192 987T139 1007T74 1012H68V1098H434V233Q434 185 447 156T483 112T537 91T602 86H629V0H47V86H74ZM213 1430Q213 1466 222 1490T247 +1529T284 1550T330 1556Q354 1556 375 1550T411 1529T436 1490T446 1430Q446 1394 437 1370T412 1331T375 1310T330 1303Q305 1303 284 1309T247 1331T222 1370T213 1430Z" /> +<glyph unicode="j" glyph-name="j" horiz-adv-x="614" d="M414 1098V-16Q414 -154 384 -245T300 -391T172 -469T8 -492H-25V-395H-10Q45 -395 88 -377T160 -315T205 -199T221 -18V872Q221 917 208 944T171 987T118 1007T53 1012H47V1098H414ZM193 1430Q193 1466 +202 1490T226 1529T263 1550T309 1556Q333 1556 354 1550T391 1529T416 1490T426 1430Q426 1394 417 1370T392 1331T355 1310T309 1303Q285 1303 264 1309T227 1331T202 1370T193 1430Z" /> +<glyph unicode="k" glyph-name="k" horiz-adv-x="1198" d="M694 659L967 254Q1020 172 1072 129T1194 86H1200V0H1171Q1082 0 1025 5T925 31T848 91T770 199L565 520L414 408V223Q414 178 427 151T464 109T517 91T582 86H588V0H37V86H53Q88 86 118 91T171 111T207 +156T221 233V1331Q221 1376 208 1403T171 1446T118 1465T53 1470H37V1556H414V766Q414 738 413 695T410 609Q408 561 406 508L662 788Q695 825 716 853T751 902T769 939T774 971Q774 997 750 1004T674 1012V1098H1126V1012Q1055 1012 987 962T838 821L694 659Z" +/> +<glyph unicode="l" glyph-name="l" horiz-adv-x="635" d="M53 86Q88 86 118 91T171 111T207 156T221 233V1331Q221 1376 208 1403T171 1446T118 1465T53 1470H27V1556H414V233Q414 185 427 156T463 112T516 91T582 86H608V0H27V86H53Z" /> +<glyph unicode="m" glyph-name="m" horiz-adv-x="1935" d="M608 86V0H57V86H84Q119 86 148 91T198 111T230 156T242 233V872Q242 917 230 944T197 987T147 1007T84 1012H78V1098H399L426 932H436Q467 989 501 1025T573 1082T654 1110T745 1118Q795 1118 840 1108T923 +1076T992 1019T1042 932H1059Q1090 989 1126 1025T1202 1082T1287 1110T1380 1118Q1458 1118 1520 1095T1625 1023T1691 898T1714 717V233Q1714 185 1726 156T1759 112T1809 91T1872 86H1878V0H1522V707Q1522 774 1511 826T1474 914T1407 968T1307 987Q1243 987 +1200 963T1129 896T1091 799T1079 682V233Q1079 185 1091 156T1124 112T1174 91T1237 86H1243V0H887V707Q887 774 876 826T839 914T772 968T672 987Q605 987 560 960T486 887T446 781T434 655V223Q434 178 447 151T484 109T537 91T602 86H608Z" /> +<glyph unicode="n" glyph-name="n" horiz-adv-x="1321" d="M608 86V0H57V86H74Q109 86 139 91T192 111T228 156T242 233V872Q242 917 229 944T192 987T139 1007T74 1012H68V1098H399L426 932H436Q468 989 503 1025T578 1082T662 1110T756 1118Q837 1118 900 1095T1008 +1023T1076 898T1100 717V233Q1100 185 1111 156T1144 112T1194 91T1257 86H1264V0H907V707Q907 774 895 826T857 914T787 968T682 987Q612 987 565 960T488 887T447 781T434 655V223Q434 178 447 151T484 109T537 91T602 86H608Z" /> +<glyph unicode="o" glyph-name="o" horiz-adv-x="1182" d="M1069 551Q1069 262 947 121T588 -20Q477 -20 389 15T240 121T146 299T113 551Q113 838 234 978T594 1118Q705 1118 793 1084T942 979T1036 802T1069 551ZM311 551Q311 437 326 350T374 205T461 116T592 +86Q669 86 722 116T808 204T855 350T870 551Q870 665 855 751T807 894T721 981T590 1010Q513 1010 460 981T374 895T326 751T311 551Z" /> +<glyph unicode="p" glyph-name="p" horiz-adv-x="1257" d="M692 987Q612 987 559 961T473 880T428 744T414 551Q414 444 427 362T473 224T559 140T694 111Q762 111 809 139T887 224T932 362T946 553Q946 662 932 743T888 879T809 960T692 987ZM1145 551Q1145 403 +1118 295T1037 117T906 14T727 -20Q668 -20 620 -7T534 30T466 87T414 160H406Q408 107 410 61Q411 42 411 22T412 -17T413 -49T414 -72V-268Q414 -313 427 -340T464 -382T517 -401T582 -406H588V-492H37V-406H53Q88 -406 118 -401T171 -381T207 -336T221 -258V872Q221 +917 208 944T171 987T118 1007T53 1012H27V1098H385L406 913H414Q437 960 466 998T533 1062T619 1103T727 1118Q828 1118 906 1085T1037 982T1117 805T1145 551Z" /> +<glyph unicode="q" glyph-name="q" horiz-adv-x="1257" d="M1221 -492H608V-406H676Q711 -406 741 -401T794 -381T830 -336T844 -258V-82Q844 -47 845 -2T848 86Q850 134 852 184H844Q821 137 792 100T724 36T638 -5T530 -20Q429 -20 351 13T220 116T140 293T113 +547Q113 695 140 803T220 981T351 1084T530 1118Q589 1118 637 1105T723 1068T792 1011T844 938H856L893 1098H1221V1012H1204Q1170 1012 1139 1007T1086 987T1050 942T1036 864V-266Q1036 -311 1049 -338T1086 -381T1139 -401T1204 -406H1221V-492ZM565 111Q645 +111 698 137T784 218T830 354T844 547Q844 654 831 736T785 873T698 958T563 987Q496 987 448 958T370 873T325 735T311 545Q311 327 370 219T565 111Z" /> +<glyph unicode="r" glyph-name="r" horiz-adv-x="965" d="M659 0H68V86H74Q109 86 139 91T192 111T228 156T242 233V872Q242 917 229 944T192 987T139 1007T74 1012H68V1098H383L422 895H432Q452 941 473 981T524 1052T600 1100T713 1118Q825 1118 879 1079T934 +969Q934 937 924 910T890 864T831 834T743 823Q743 908 719 945T635 983Q597 983 567 962T515 905T477 823T452 729T438 632T434 545V223Q434 178 447 151T484 109T537 91T602 86H659V0Z" /> +<glyph unicode="s" glyph-name="s" horiz-adv-x="924" d="M430 -20Q353 -20 291 -7T184 34T116 102T92 197Q92 238 105 265T138 309T180 331T221 338Q221 284 232 237T269 155T337 99T442 78Q497 78 539 91T609 129T653 188T668 264Q668 302 657 329T617 381T539 +430T416 487Q337 522 279 554T182 625T125 711T106 827Q106 897 133 951T212 1041T334 1097T492 1116Q565 1116 621 1101T715 1061T772 1001T791 928Q791 872 753 839T643 805Q643 908 601 965T467 1022Q415 1022 378 1010T318 976T283 924T272 858Q272 819 286 +791T330 738T409 692T526 641Q607 607 665 574T760 502T816 414T834 301Q834 221 805 161T723 61T596 0T430 -20Z" /> +<glyph unicode="t" glyph-name="t" horiz-adv-x="721" d="M543 88Q580 88 611 92T674 102V12Q661 6 640 0T595 -10T543 -17T492 -20Q414 -20 358 -4T266 50T213 148T195 297V981H39V1063Q76 1063 120 1078T199 1128Q234 1166 255 1218T293 1350H387V1098H655V981H387V291Q387 +186 429 137T543 88Z" /> +<glyph unicode="u" glyph-name="u" horiz-adv-x="1300" d="M1079 223Q1079 178 1092 151T1129 109T1182 91T1247 86H1253V0H928L901 166H891Q860 108 823 72T743 16T655 -12T559 -20Q478 -20 415 3T309 75T244 200T221 381V872Q221 917 208 944T171 987T118 1007T53 +1012H47V1098H414V391Q414 324 424 272T459 184T525 130T629 111Q697 111 745 135T825 202T872 307T887 442V864Q887 912 874 941T838 986T785 1007T719 1012H713V1098H1079V223Z" /> +<glyph unicode="v" glyph-name="v" horiz-adv-x="1186" d="M8 1012V1098H520V1012H494Q432 1012 402 988T371 913Q371 896 375 879T387 838L526 451Q539 415 553 372T579 286T602 207T616 143H623Q628 165 639 197T665 268T695 347T725 424L872 823Q882 848 886 +871T891 911Q891 964 858 988T756 1012H741V1098H1180V1012H1155Q1125 1012 1104 1006T1066 981T1034 932T999 852L676 0H489L160 903Q148 935 135 956T105 989T66 1007T14 1012H8Z" /> +<glyph unicode="w" glyph-name="w" horiz-adv-x="1765" d="M975 1092L1180 485Q1192 448 1205 406T1231 322T1253 243T1268 180H1274Q1283 231 1303 305T1354 479L1456 809Q1464 835 1469 864T1475 911Q1475 964 1442 988T1339 1012H1325V1098H1763V1012H1737Q1707 +1012 1685 1006T1646 983T1613 934T1583 852L1319 0H1155L911 721L874 856L584 0H422L154 903Q142 935 129 956T99 989T60 1007T8 1012H2V1098H508V1012H481Q420 1012 389 994T358 926Q358 909 363 885T375 838L471 494Q481 457 492 413T512 326T530 244T543 180H549Q554 +206 562 240T582 314T607 395T633 473L846 1092H975Z" /> +<glyph unicode="x" glyph-name="x" horiz-adv-x="1184" d="M786 952Q786 989 755 1000T676 1012H670V1098H1118V1012H1100Q1070 1012 1046 1007T998 988T949 948T893 881L682 600L983 195Q1028 135 1068 111T1147 86H1174V0H645V86H655Q778 86 778 154Q778 165 +775 176T763 203T739 241T700 295L563 479L420 279Q411 267 401 251T383 218T370 184T365 150Q365 115 394 101T492 86H498V0H10V86H29Q66 86 94 92T147 113T197 153T252 217L510 551L252 903Q207 956 165 984T76 1012H49V1098H569V1012H563Q528 1012 505 1008T469 +995T451 975T446 952Q446 931 458 911T494 858L629 674L735 827Q758 862 772 893T786 952Z" /> +<glyph unicode="y" glyph-name="y" horiz-adv-x="1157" d="M1157 1098V1012H1151Q1121 1012 1100 1006T1061 981T1028 932T995 852L684 -8Q648 -107 616 -182T549 -310T473 -399T378 -455T256 -484T96 -492H78V-395Q182 -395 257 -364T386 -279T477 -152T539 8L160 +903Q146 935 133 955T104 989T66 1007T14 1012H8V1098H500V1012H494Q432 1012 402 988T371 913Q371 896 374 879T387 838L537 473Q551 438 566 397T595 315T620 238T635 176H641Q652 221 671 285T717 424L854 823Q863 848 867 871T872 911Q872 964 839 988T737 +1012H731V1098H1157Z" /> +<glyph unicode="z" glyph-name="z" horiz-adv-x="1047" d="M696 117Q732 117 755 131T794 168T819 221T836 285L846 332H932L922 0H86V82L680 981H360Q320 981 294 971T252 939T225 887T203 815L201 807H115L135 1098H920V1014L324 117H696Z" /> +<glyph unicode="{" glyph-name="braceleft" horiz-adv-x="877" d="M639 -262Q567 -262 512 -241T419 -182T363 -90T344 33V389Q344 452 326 493T274 558T197 593T102 606V692Q153 694 197 704T274 738T325 804T344 907V1264Q344 1404 418 1480T639 1556H774V1468H713Q622 +1468 584 1414T545 1253V903Q545 803 489 737T317 651V649Q435 629 490 563T545 395V41Q545 -64 583 -119T713 -174H774V-262H639Z" /> +<glyph unicode="|" glyph-name="bar" horiz-adv-x="1145" d="M633 -492H510V1556H633V-492Z" /> +<glyph unicode="}" glyph-name="braceright" horiz-adv-x="877" d="M102 -174H164Q255 -174 293 -119T332 41V395Q332 497 386 563T559 649V651Q445 670 389 736T332 903V1253Q332 1360 294 1414T164 1468H102V1556H238Q383 1556 457 1480T532 1264V907Q532 845 +551 804T602 739T679 704T774 692V606Q723 604 679 594T603 559T551 493T532 389V33Q532 -35 513 -89T457 -182T365 -241T238 -262H102V-174Z" /> +<glyph unicode="~" glyph-name="asciitilde" horiz-adv-x="1149" d="M776 551Q746 551 714 563T651 595T591 636T539 680Q516 701 494 720T451 755T407 779T362 788Q302 788 273 730T233 551H113Q119 615 131 679T172 794T247 877T371 909Q405 909 439 896T505 +863T565 819T618 774Q640 754 661 736T702 703T744 681T786 672Q843 672 870 733T911 909H1034Q1027 845 1013 781T971 666T896 583T776 551Z" /> +<glyph unicode=" " glyph-name="nbspace" horiz-adv-x="532" /> +<glyph unicode="¡" glyph-name="exclamdown" horiz-adv-x="682" d="M459 -367H221L293 684H387L459 -367ZM469 971Q469 931 459 904T432 861T391 838T340 831Q314 831 291 838T250 861T222 904T211 971Q211 1010 221 1036T249 1079T290 1103T340 1110Q367 +1110 390 1103T431 1080T459 1037T469 971Z" /> +<glyph unicode="¢" glyph-name="cent" horiz-adv-x="1145" d="M584 180Q491 190 414 225T280 327T193 495T162 739Q162 891 195 997T285 1170T419 1271T584 1313V1462H686V1313Q745 1308 804 1294T910 1254T986 1191T1016 1106Q1016 1035 971 1006T834 977Q834 +1019 825 1057T798 1126T752 1178T686 1206V297Q728 297 770 303T852 318T925 339T983 362V250Q930 222 854 200T686 176V0H584V180ZM360 741Q360 558 414 449T584 309V1206Q535 1197 494 1169T423 1086T377 947T360 741Z" /> +<glyph unicode="£" glyph-name="sterling" horiz-adv-x="1145" d="M500 690Q515 639 528 586T541 471Q541 383 492 316T360 193L365 184Q407 204 443 212T514 221Q555 221 604 209T701 182T794 155T870 143Q906 143 936 153T994 181T1043 219T1085 264V131Q1067 +106 1042 79T984 30T910 -6T817 -20Q766 -20 717 -6T618 26T517 57T410 72Q342 72 283 53T158 2L131 -10V98L168 121Q206 144 243 176T311 251T360 346T379 459Q379 519 364 576T328 690H100V786H289Q275 818 261 857T236 938T218 1025T211 1112Q211 1200 240 1269T323 +1385T454 1458T629 1483Q728 1483 797 1466T909 1417T971 1344T991 1253Q991 1187 948 1154T829 1120Q829 1168 821 1214T790 1297T727 1357T621 1380Q502 1380 447 1312T391 1116Q391 1068 399 1022T419 934T445 854T471 786H819V690H500Z" /> +<glyph unicode="¤" glyph-name="currency" horiz-adv-x="1145" d="M197 733Q197 795 214 850T266 952L131 1087L217 1174L350 1038Q397 1072 452 1091T571 1110Q631 1110 686 1091T788 1038L926 1176L1012 1087L877 952Q911 906 929 851T948 733Q948 671 +930 616T877 514L1012 379L928 293L791 428Q744 396 689 377T571 358Q509 358 454 376T352 428L217 293L131 379L264 514Q232 560 215 615T197 733ZM311 733Q311 679 331 632T387 549T470 492T571 471Q627 471 675 492T758 548T813 631T834 733Q834 789 814 837T758 +920T675 976T571 997Q517 997 470 977T388 921T332 837T311 733Z" /> +<glyph unicode="¥" glyph-name="yen" horiz-adv-x="1145" d="M264 0V86H311Q345 86 375 90T427 109T463 150T479 223V362H193V459H479V602H193V698H440L162 1268Q147 1298 134 1318T105 1352T67 1370T16 1376H10V1462H508V1376H494Q432 1376 405 1357T377 +1296Q377 1272 385 1242T410 1176L508 958Q523 926 537 889T563 816T586 749T602 698Q606 709 615 730T635 777T659 829T682 877L799 1126Q823 1180 835 1225T848 1294Q848 1336 820 1356T723 1376H717V1462H1135V1376H1116Q1090 1376 1071 1369T1036 1344T1002 +1295T961 1217L711 698H965V602H678V459H965V362H678V233Q678 185 691 156T727 112T780 91T846 86H893V0H264Z" /> +<glyph unicode="¦" glyph-name="brokenbar" horiz-adv-x="1145" d="M633 737H510V1556H633V737ZM633 -492H510V328H633V-492Z" /> +<glyph unicode="§" glyph-name="section" horiz-adv-x="1114" d="M598 795Q524 830 460 864T342 940Q320 920 306 892T291 823Q291 782 305 750T353 686T444 621T590 545Q652 514 712 483T821 408Q838 432 849 461T860 524Q860 559 850 590T812 653T732 719T598 +795ZM571 -133Q697 -133 759 -78T821 72Q821 117 810 150T762 217T653 291T461 391Q380 431 323 472T229 560T177 658T160 772Q160 849 194 906T281 1001Q243 1046 224 1101T205 1231Q205 1309 233 1369T312 1471T431 1534T582 1556Q666 1556 728 1539T832 1491T894 +1418T915 1327Q915 1261 876 1232T770 1202Q770 1250 760 1295T727 1375T666 1432T573 1454Q471 1454 415 1403T358 1255Q358 1201 378 1165T439 1099T539 1041T676 975Q763 933 826 891T930 804T990 707T1010 596Q1010 559 1000 523T972 453T933 390T887 336Q916 +296 933 246T950 133Q950 52 928 -15T858 -130T736 -206T557 -233Q478 -233 414 -218T303 -172T232 -98T207 4Q207 46 220 73T253 117T295 140T336 147Q336 93 349 43T391 -47T464 -109T571 -133Z" /> +<glyph unicode="¨" glyph-name="dieresis" horiz-adv-x="1182" d="M291 1409Q291 1441 299 1463T321 1498T354 1518T395 1524Q417 1524 436 1518T469 1499T492 1463T500 1409Q500 1378 492 1356T470 1320T436 1300T395 1294Q350 1294 321 1320T291 1409ZM680 +1409Q680 1441 688 1463T710 1498T743 1518T784 1524Q806 1524 825 1518T858 1499T881 1463T889 1409Q889 1378 881 1356T859 1320T825 1300T784 1294Q739 1294 710 1320T680 1409Z" /> +<glyph unicode="©" glyph-name="copyright" horiz-adv-x="1731" d="M901 365Q948 365 988 377T1060 409T1115 454T1153 504Q1165 495 1173 479T1182 440Q1182 412 1163 383T1105 330T1009 291T874 276Q772 276 696 309T568 402T491 546T465 733Q465 833 493 +916T576 1059T713 1152T903 1186Q974 1186 1026 1175T1114 1144T1166 1098T1184 1040Q1184 1018 1173 1000T1143 970T1099 951T1044 944Q1044 973 1037 1000T1012 1050T968 1086T899 1100Q827 1100 777 1076T694 1005T648 890T633 733Q633 556 702 461T901 365ZM113 +731Q113 835 140 931T215 1111T332 1264T484 1382T664 1458T864 1485Q968 1485 1064 1458T1244 1382T1397 1264T1515 1112T1591 932T1618 731Q1618 627 1591 531T1515 352T1397 200T1245 82T1065 7T864 -20Q760 -20 664 6T485 82T333 199T216 351T140 531T113 731ZM225 +731Q225 643 248 562T312 409T412 280T542 180T694 115T864 92Q953 92 1035 115T1188 179T1317 279T1417 409T1482 561T1505 731Q1505 819 1482 901T1418 1054T1318 1184T1188 1284T1035 1349T864 1372Q776 1372 695 1349T542 1285T413 1185T313 1055T248 902T225 +731Z" /> +<glyph unicode="ª" glyph-name="ordfeminine" horiz-adv-x="782" d="M250 985Q250 921 277 897T344 872Q378 872 405 884T450 918T479 970T489 1036V1133L426 1130Q376 1129 343 1119T289 1090T259 1045T250 985ZM387 1397Q356 1397 337 1386T308 1356T293 +1312T289 1257Q211 1257 169 1277T127 1346Q127 1381 148 1405T205 1444T289 1466T391 1473Q459 1473 509 1461T592 1423T642 1354T659 1251V940Q659 894 678 877T748 860V791H549L512 885H502Q484 865 463 846T415 811T356 787T285 778Q186 778 129 831T72 987Q72 +1089 153 1137T401 1194L489 1198V1257Q489 1288 486 1313T472 1357T441 1386T387 1397Z" /> +<glyph unicode="«" glyph-name="guillemotleft" horiz-adv-x="1053" d="M133 586L446 942H549L342 553L549 164H446L133 520V586ZM504 586L817 942H920L713 553L920 164H817L504 520V586Z" /> +<glyph unicode="¬" glyph-name="logicalnot" horiz-adv-x="1145" d="M1012 793V252H889V672H133V793H1012Z" /> +<glyph unicode="­" glyph-name="uni00AD" horiz-adv-x="635" d="M51 481V635H584V481H51Z" /> +<glyph unicode="®" glyph-name="registered" horiz-adv-x="1731" d="M477 358H504Q524 358 542 360T573 370T595 392T604 430V1030Q603 1054 595 1068T574 1090T542 1100T504 1102H477V1174H846Q1198 1174 1198 930Q1198 881 1182 844T1140 780T1081 735T1012 +705L1194 412Q1204 395 1213 385T1236 368T1266 360T1309 358V289H1092L866 670H758V430Q760 406 768 392T789 371T820 361T858 358H887V289H477V358ZM758 748H844Q899 748 936 759T995 792T1026 848T1036 928Q1036 973 1025 1005T991 1056T930 1085T838 1094H758V748ZM113 +731Q113 835 140 931T215 1111T332 1264T484 1382T664 1458T864 1485Q968 1485 1064 1458T1244 1382T1397 1264T1515 1112T1591 932T1618 731Q1618 627 1591 531T1515 352T1397 200T1245 82T1065 7T864 -20Q760 -20 664 6T485 82T333 199T216 351T140 531T113 731ZM225 +731Q225 643 248 562T312 409T412 280T542 180T694 115T864 92Q953 92 1035 115T1188 179T1317 279T1417 409T1482 561T1505 731Q1505 819 1482 901T1418 1054T1318 1184T1188 1284T1035 1349T864 1372Q776 1372 695 1349T542 1285T413 1185T313 1055T248 902T225 +731Z" /> +<glyph unicode="¯" glyph-name="overscore" horiz-adv-x="940" d="M950 1556H-10V1677H950V1556Z" /> +<glyph unicode="°" glyph-name="degree" horiz-adv-x="819" d="M98 1151Q98 1216 122 1272T189 1371T287 1437T408 1462Q473 1462 529 1438T628 1371T694 1273T719 1151Q719 1087 695 1031T628 932T530 866T408 842Q344 842 288 866T189 932T123 1030T98 +1151ZM221 1151Q221 1113 235 1079T275 1019T335 978T408 963Q448 963 482 978T541 1018T581 1078T596 1151Q596 1191 582 1225T542 1285T482 1326T408 1341Q369 1341 335 1326T276 1286T236 1226T221 1151Z" /> +<glyph unicode="±" glyph-name="plusminus" horiz-adv-x="1145" d="M633 672V293H510V672H133V793H510V1171H633V793H1012V672H633ZM1012 0H133V121H1012V0Z" /> +<glyph unicode="²" glyph-name="twosuperior" horiz-adv-x="819" d="M690 1262Q690 1214 679 1172T642 1088T574 1001T467 901L250 715H547Q594 715 612 740T637 799L645 842H715L709 586H86V678L346 911Q391 952 422 994T471 1078T498 1163T506 1245Q506 +1279 500 1307T479 1357T441 1389T385 1401Q348 1401 322 1387T280 1348T257 1291T250 1223Q181 1223 142 1240T102 1311Q102 1348 120 1379T173 1434T262 1470T385 1483Q528 1483 609 1427T690 1262Z" /> +<glyph unicode="³" glyph-name="threesuperior" horiz-adv-x="819" d="M356 573Q222 573 152 619T82 741Q82 786 107 814T176 842Q176 810 186 779T218 722T272 682T350 666Q435 666 483 707T532 844Q532 916 480 958T315 1001H248V1085H315Q354 1085 387 +1097T445 1133T484 1188T498 1262Q498 1330 471 1365T381 1401Q342 1401 316 1387T275 1348T253 1291T246 1223Q211 1223 183 1226T135 1240T105 1267T94 1311Q94 1348 112 1379T167 1434T257 1470T381 1483Q449 1483 505 1469T601 1429T662 1366T684 1280Q684 +1235 667 1200T622 1137T555 1091T475 1059V1049Q516 1042 559 1030T637 994T696 935T719 842Q719 767 686 716T599 633T482 587T356 573Z" /> +<glyph unicode="´" glyph-name="acute" horiz-adv-x="1182" d="M391 1268Q414 1297 438 1335T486 1413T531 1494T569 1569H788V1548Q769 1521 732 1481T650 1396T558 1311T469 1241H391V1268Z" /> +<glyph unicode="µ" glyph-name="mu" horiz-adv-x="1260" d="M569 -20Q483 -20 422 11T319 100Q321 15 326 -57T347 -183T396 -270T485 -313Q485 -352 477 -384T451 -441T406 -478T342 -492Q310 -492 280 -480T227 -440T190 -364T176 -248Q176 -187 179 -117T187 +39T195 229T201 461V1098H393V410Q393 343 403 288T436 194T499 133T598 111Q655 111 701 135T779 202T828 307T846 442V1098H1038V264Q1038 219 1050 186T1080 130T1122 97T1167 86H1174V0H1063Q979 0 931 41T864 164H856Q832 123 805 89T743 31T666 -6T569 -20Z" +/> +<glyph unicode="¶" glyph-name="paragraph" horiz-adv-x="1264" d="M860 1452H666V-227H346V-141H373Q408 -141 438 -136T491 -116T527 -71T541 6V791H395Q305 791 245 823T149 911T98 1039T82 1192Q82 1274 99 1341T154 1456T252 1530T399 1556H1180V1470H1153Q1119 +1470 1088 1465T1035 1445T999 1400T985 1323V6Q985 -42 998 -71T1034 -115T1088 -136T1153 -141H1180V-227H860V1452Z" /> +<glyph unicode="·" glyph-name="middot" horiz-adv-x="586" d="M166 729Q166 769 176 796T203 839T244 861T295 868Q321 868 344 862T385 839T413 796T424 729Q424 690 414 664T386 621T345 597T295 590Q268 590 245 597T204 620T176 663T166 729Z" /> +<glyph unicode="¸" glyph-name="cedilla" horiz-adv-x="682" d="M551 -258Q551 -367 482 -429T281 -492Q265 -492 245 -491T204 -486T162 -479T123 -469V-365Q160 -373 197 -377T262 -381Q321 -381 354 -350T387 -266Q387 -206 344 -176T233 -141L276 18H373L352 +-70Q452 -78 501 -127T551 -258Z" /> +<glyph unicode="¹" glyph-name="onesuperior" horiz-adv-x="819" d="M145 588V657H240Q258 657 273 659T299 670T317 693T324 735V1325H133V1395H236Q259 1395 285 1398T335 1410T378 1434T406 1473H508V735Q508 709 515 694T533 670T560 660T594 657H688V588H145Z" /> +<glyph unicode="º" glyph-name="ordmasculine" horiz-adv-x="813" d="M250 1126Q250 993 285 927T408 860Q494 860 529 926T565 1126Q565 1257 529 1321T406 1386Q320 1386 285 1322T250 1126ZM741 1126Q741 950 656 864T406 778Q248 778 160 864T72 1126Q72 +1302 157 1387T410 1473Q487 1473 548 1452T652 1387T718 1279T741 1126Z" /> +<glyph unicode="»" glyph-name="guillemotright" horiz-adv-x="1053" d="M920 520L606 164H504L711 553L504 942H606L920 586V520ZM549 520L236 164H133L340 553L133 942H236L549 586V520Z" /> +<glyph unicode="¼" glyph-name="onequarter" horiz-adv-x="1720" d="M316 588V657H411Q429 657 444 659T470 670T488 693T495 735V1325H304V1395H407Q430 1395 456 1398T506 1410T549 1434T577 1473H679V735Q679 709 686 694T704 670T731 660T765 657H859V588H316ZM566 +0H430L1161 1462H1295L566 0ZM1477 261V148Q1477 122 1484 107T1503 83T1530 73T1563 70H1604V1H1153V70H1210Q1227 70 1242 72T1268 83T1287 106T1294 148V261H930V322L1313 886H1477V349H1673V261H1477ZM1294 580Q1294 612 1297 653T1305 732Q1297 715 1288 698T1274 +673L1051 349H1294V580Z" /> +<glyph unicode="½" glyph-name="onehalf" horiz-adv-x="1720" d="M316 588V657H411Q429 657 444 659T470 670T488 693T495 735V1325H304V1395H407Q430 1395 456 1398T506 1410T549 1434T577 1473H679V735Q679 709 686 694T704 670T731 660T765 657H859V588H316ZM525 +0H389L1120 1462H1254L525 0ZM1620 677Q1620 629 1609 587T1572 503T1504 416T1397 316L1180 130H1477Q1524 130 1542 155T1567 214L1575 257H1645L1639 1H1016V93L1276 326Q1321 367 1352 409T1401 493T1428 578T1436 660Q1436 694 1430 722T1409 772T1371 804T1315 +816Q1278 816 1252 802T1210 763T1187 706T1180 638Q1111 638 1072 655T1032 726Q1032 763 1050 794T1103 849T1192 885T1315 898Q1458 898 1539 842T1620 677Z" /> +<glyph unicode="¾" glyph-name="threequarters" horiz-adv-x="1720" d="M356 573Q222 573 152 619T82 741Q82 786 107 814T176 842Q176 810 186 779T218 722T272 682T350 666Q435 666 483 707T532 844Q532 916 480 958T315 1001H248V1085H315Q354 1085 387 +1097T445 1133T484 1188T498 1262Q498 1330 471 1365T381 1401Q342 1401 316 1387T275 1348T253 1291T246 1223Q211 1223 183 1226T135 1240T105 1267T94 1311Q94 1348 112 1379T167 1434T257 1470T381 1483Q449 1483 505 1469T601 1429T662 1366T684 1280Q684 +1235 667 1200T622 1137T555 1091T475 1059V1049Q516 1042 559 1030T637 994T696 935T719 842Q719 767 686 716T599 633T482 587T356 573ZM607 0H471L1202 1462H1336L607 0ZM1477 261V148Q1477 122 1484 107T1503 83T1530 73T1563 70H1604V1H1153V70H1210Q1227 +70 1242 72T1268 83T1287 106T1294 148V261H930V322L1313 886H1477V349H1673V261H1477ZM1294 580Q1294 612 1297 653T1305 732Q1297 715 1288 698T1274 673L1051 349H1294V580Z" /> +<glyph unicode="¿" glyph-name="questiondown" horiz-adv-x="1024" d="M502 682H627V371Q538 335 478 287T381 184T329 69T313 -53Q313 -106 326 -149T366 -224T435 -272T537 -289Q601 -289 644 -268T715 -211T754 -128T766 -27Q803 -27 834 -35T887 -60T923 +-102T936 -160Q936 -209 914 -251T844 -323T724 -371T553 -389Q456 -389 374 -364T232 -292T138 -175T104 -18Q104 66 130 135T208 262T333 365T502 451V682ZM696 969Q696 929 686 902T659 859T618 836T567 829Q541 829 518 836T477 859T449 902T438 969Q438 1008 +448 1034T476 1077T517 1101T567 1108Q594 1108 617 1101T658 1078T686 1035T696 969Z" /> +<glyph unicode="À" glyph-name="Agrave" horiz-adv-x="1444" d="M414 489L336 274Q327 250 322 227T317 186Q317 134 350 110T453 86H500V0H0V86H39Q69 86 90 92T128 117T160 166T195 246L649 1462H809L1272 195Q1284 163 1296 142T1326 109T1365 91T1417 +86H1444V0H881V86H928Q1051 86 1051 184Q1051 201 1047 219T1034 260L952 489H414ZM788 950Q756 1041 730 1120T686 1274Q679 1237 670 1203T649 1132T624 1057T592 969L453 592H915L788 950ZM805 1579H727Q686 1607 638 1648T545 1734T463 1818T407 1886V1907H626Q642 +1873 663 1833T709 1752T758 1673T805 1606V1579Z" /> +<glyph unicode="Á" glyph-name="Aacute" horiz-adv-x="1444" d="M414 489L336 274Q327 250 322 227T317 186Q317 134 350 110T453 86H500V0H0V86H39Q69 86 90 92T128 117T160 166T195 246L649 1462H809L1272 195Q1284 163 1296 142T1326 109T1365 91T1417 +86H1444V0H881V86H928Q1051 86 1051 184Q1051 201 1047 219T1034 260L952 489H414ZM788 950Q756 1041 730 1120T686 1274Q679 1237 670 1203T649 1132T624 1057T592 969L453 592H915L788 950ZM637 1606Q660 1635 684 1673T732 1751T777 1832T815 1907H1034V1886Q1015 +1859 978 1819T896 1734T804 1649T715 1579H637V1606Z" /> +<glyph unicode="Â" glyph-name="Acircumflex" horiz-adv-x="1444" d="M414 489L336 274Q327 250 322 227T317 186Q317 134 350 110T453 86H500V0H0V86H39Q69 86 90 92T128 117T160 166T195 246L649 1462H809L1272 195Q1284 163 1296 142T1326 109T1365 91T1417 +86H1444V0H881V86H928Q1051 86 1051 184Q1051 201 1047 219T1034 260L952 489H414ZM788 950Q756 1041 730 1120T686 1274Q679 1237 670 1203T649 1132T624 1057T592 969L453 592H915L788 950ZM422 1606Q446 1635 475 1673T532 1751T586 1832T627 1907H821Q837 1873 +862 1833T915 1752T973 1673T1026 1606V1579H946Q887 1613 828 1663T723 1763Q676 1714 618 1664T502 1579H422V1606Z" /> +<glyph unicode="Ã" glyph-name="Atilde" horiz-adv-x="1444" d="M414 489L336 274Q327 250 322 227T317 186Q317 134 350 110T453 86H500V0H0V86H39Q69 86 90 92T128 117T160 166T195 246L649 1462H809L1272 195Q1284 163 1296 142T1326 109T1365 91T1417 +86H1444V0H881V86H928Q1051 86 1051 184Q1051 201 1047 219T1034 260L952 489H414ZM788 950Q756 1041 730 1120T686 1274Q679 1237 670 1203T649 1132T624 1057T592 969L453 592H915L788 950ZM895 1712Q925 1712 943 1721T972 1745T987 1780T995 1821H1087Q1084 +1774 1071 1731T1031 1653T966 1599T872 1579Q817 1579 773 1599T690 1643T618 1688T551 1708Q520 1708 502 1699T474 1675T458 1641T450 1600H358Q361 1647 374 1690T414 1767T480 1821T575 1841Q630 1841 674 1821T757 1777T829 1732T895 1712Z" /> +<glyph unicode="Ä" glyph-name="Adieresis" horiz-adv-x="1444" d="M414 489L336 274Q327 250 322 227T317 186Q317 134 350 110T453 86H500V0H0V86H39Q69 86 90 92T128 117T160 166T195 246L649 1462H809L1272 195Q1284 163 1296 142T1326 109T1365 91T1417 +86H1444V0H881V86H928Q1051 86 1051 184Q1051 201 1047 219T1034 260L952 489H414ZM788 950Q756 1041 730 1120T686 1274Q679 1237 670 1203T649 1132T624 1057T592 969L453 592H915L788 950ZM424 1747Q424 1779 432 1801T454 1836T487 1856T528 1862Q550 1862 +569 1856T602 1837T625 1801T633 1747Q633 1716 625 1694T603 1658T569 1638T528 1632Q483 1632 454 1658T424 1747ZM813 1747Q813 1779 821 1801T843 1836T876 1856T917 1862Q939 1862 958 1856T991 1837T1014 1801T1022 1747Q1022 1716 1014 1694T992 1658T958 +1638T917 1632Q872 1632 843 1658T813 1747Z" /> +<glyph unicode="Å" glyph-name="Aring" horiz-adv-x="1444" d="M414 489L336 274Q327 250 322 227T317 186Q317 134 350 110T453 86H500V0H0V86H39Q69 86 90 92T128 117T160 166T195 246L649 1462H809L1272 195Q1284 163 1296 142T1326 109T1365 91T1417 +86H1444V0H881V86H928Q1051 86 1051 184Q1051 201 1047 219T1034 260L952 489H414ZM788 950Q756 1041 730 1120T686 1274Q679 1237 670 1203T649 1132T624 1057T592 969L453 592H915L788 950ZM971 1585Q971 1530 952 1489T900 1419T821 1377T725 1362Q674 1362 +629 1376T551 1419T498 1488T479 1585Q479 1639 498 1681T550 1751T629 1793T725 1808Q776 1808 821 1794T899 1751T952 1681T971 1585ZM860 1585Q860 1618 850 1641T821 1679T778 1701T725 1708Q697 1708 673 1701T630 1680T601 1642T590 1585Q590 1552 600 1529T629 +1491T672 1469T725 1462Q753 1462 777 1469T820 1490T849 1528T860 1585Z" /> +<glyph unicode="Æ" glyph-name="AE" horiz-adv-x="1948" d="M1151 102H1546Q1594 102 1628 115T1686 152T1722 205T1741 270L1755 358H1862L1847 0H750V86H776Q810 86 840 90T892 109T929 150T944 223V489H473L360 274Q343 242 336 213T328 166Q328 124 359 +105T451 86H498V0H0V86H33Q87 86 129 124T215 246L807 1366L647 1376V1462H1782L1792 1104H1686L1675 1192Q1671 1226 1660 1256T1628 1308T1574 1345T1495 1360H1151V815H1645V715H1151V102ZM890 1304T849 1221T757 1038T646 823T526 592H944V1360H915Q890 1304 +849 1221Z" /> +<glyph unicode="Ç" glyph-name="Ccedilla" horiz-adv-x="1257" d="M774 1483Q879 1483 956 1466T1085 1417T1162 1344T1188 1253Q1188 1220 1175 1194T1137 1149T1081 1120T1010 1110Q1010 1158 998 1205T957 1289T883 1350T770 1374Q654 1374 573 1332T441 +1208T367 1007T344 733Q344 596 368 482T444 287T576 160T770 115Q845 115 902 129T1004 168T1081 223T1141 289Q1158 278 1169 259T1180 209Q1180 170 1154 130T1073 56T936 2T739 -20Q586 -20 470 34T276 187T157 425T117 733Q117 899 159 1037T283 1274T489 +1428T774 1483ZM942 -258Q942 -367 873 -429T672 -492Q656 -492 636 -491T595 -486T553 -479T514 -469V-365Q551 -373 588 -377T653 -381Q712 -381 745 -350T778 -266Q778 -206 735 -176T624 -141L667 18H764L743 -70Q843 -78 892 -127T942 -258Z" /> +<glyph unicode="È" glyph-name="Egrave" horiz-adv-x="1276" d="M479 102H874Q923 102 957 115T1015 152T1051 205T1069 270L1083 358H1190L1176 0H78V86H104Q138 86 168 90T222 109T258 150T272 223V1229Q272 1277 259 1306T223 1350T170 1371T104 1376H78V1462H1110L1120 +1104H1014L1004 1192Q1000 1226 989 1256T956 1310T902 1346T823 1360H479V815H973V715H479V102ZM743 1579H665Q624 1607 576 1648T483 1734T401 1818T345 1886V1907H564Q580 1873 601 1833T647 1752T696 1673T743 1606V1579Z" /> +<glyph unicode="É" glyph-name="Eacute" horiz-adv-x="1276" d="M479 102H874Q923 102 957 115T1015 152T1051 205T1069 270L1083 358H1190L1176 0H78V86H104Q138 86 168 90T222 109T258 150T272 223V1229Q272 1277 259 1306T223 1350T170 1371T104 1376H78V1462H1110L1120 +1104H1014L1004 1192Q1000 1226 989 1256T956 1310T902 1346T823 1360H479V815H973V715H479V102ZM545 1606Q568 1635 592 1673T640 1751T685 1832T723 1907H942V1886Q923 1859 886 1819T804 1734T712 1649T623 1579H545V1606Z" /> +<glyph unicode="Ê" glyph-name="Ecircumflex" horiz-adv-x="1276" d="M479 102H874Q923 102 957 115T1015 152T1051 205T1069 270L1083 358H1190L1176 0H78V86H104Q138 86 168 90T222 109T258 150T272 223V1229Q272 1277 259 1306T223 1350T170 1371T104 +1376H78V1462H1110L1120 1104H1014L1004 1192Q1000 1226 989 1256T956 1310T902 1346T823 1360H479V815H973V715H479V102ZM350 1606Q374 1635 403 1673T460 1751T514 1832T555 1907H749Q765 1873 790 1833T843 1752T901 1673T954 1606V1579H874Q815 1613 756 1663T651 +1763Q604 1714 546 1664T430 1579H350V1606Z" /> +<glyph unicode="Ë" glyph-name="Edieresis" horiz-adv-x="1276" d="M479 102H874Q923 102 957 115T1015 152T1051 205T1069 270L1083 358H1190L1176 0H78V86H104Q138 86 168 90T222 109T258 150T272 223V1229Q272 1277 259 1306T223 1350T170 1371T104 1376H78V1462H1110L1120 +1104H1014L1004 1192Q1000 1226 989 1256T956 1310T902 1346T823 1360H479V815H973V715H479V102ZM342 1747Q342 1779 350 1801T372 1836T405 1856T446 1862Q468 1862 487 1856T520 1837T543 1801T551 1747Q551 1716 543 1694T521 1658T487 1638T446 1632Q401 1632 +372 1658T342 1747ZM731 1747Q731 1779 739 1801T761 1836T794 1856T835 1862Q857 1862 876 1856T909 1837T932 1801T940 1747Q940 1716 932 1694T910 1658T876 1638T835 1632Q790 1632 761 1658T731 1747Z" /> +<glyph unicode="Ì" glyph-name="Igrave" horiz-adv-x="752" d="M78 0V86H104Q139 86 169 91T223 111T259 156T272 233V1229Q272 1277 259 1306T223 1350T170 1371T104 1376H78V1462H674V1376H647Q613 1376 582 1371T529 1351T493 1306T479 1229V233Q479 185 +492 156T528 112T582 91T647 86H674V0H78ZM473 1579H395Q354 1607 306 1648T213 1734T131 1818T75 1886V1907H294Q310 1873 331 1833T377 1752T426 1673T473 1606V1579Z" /> +<glyph unicode="Í" glyph-name="Iacute" horiz-adv-x="752" d="M78 0V86H104Q139 86 169 91T223 111T259 156T272 233V1229Q272 1277 259 1306T223 1350T170 1371T104 1376H78V1462H674V1376H647Q613 1376 582 1371T529 1351T493 1306T479 1229V233Q479 185 +492 156T528 112T582 91T647 86H674V0H78ZM271 1606Q294 1635 318 1673T366 1751T411 1832T449 1907H668V1886Q649 1859 612 1819T530 1734T438 1649T349 1579H271V1606Z" /> +<glyph unicode="Î" glyph-name="Icircumflex" horiz-adv-x="752" d="M78 0V86H104Q139 86 169 91T223 111T259 156T272 233V1229Q272 1277 259 1306T223 1350T170 1371T104 1376H78V1462H674V1376H647Q613 1376 582 1371T529 1351T493 1306T479 1229V233Q479 +185 492 156T528 112T582 91T647 86H674V0H78ZM73 1606Q97 1635 126 1673T183 1751T237 1832T278 1907H472Q488 1873 513 1833T566 1752T624 1673T677 1606V1579H597Q538 1613 479 1663T374 1763Q327 1714 269 1664T153 1579H73V1606Z" /> +<glyph unicode="Ï" glyph-name="Idieresis" horiz-adv-x="752" d="M78 0V86H104Q139 86 169 91T223 111T259 156T272 233V1229Q272 1277 259 1306T223 1350T170 1371T104 1376H78V1462H674V1376H647Q613 1376 582 1371T529 1351T493 1306T479 1229V233Q479 +185 492 156T528 112T582 91T647 86H674V0H78ZM73 1747Q73 1779 81 1801T103 1836T136 1856T177 1862Q199 1862 218 1856T251 1837T274 1801T282 1747Q282 1716 274 1694T252 1658T218 1638T177 1632Q132 1632 103 1658T73 1747ZM462 1747Q462 1779 470 1801T492 +1836T525 1856T566 1862Q588 1862 607 1856T640 1837T663 1801T671 1747Q671 1716 663 1694T641 1658T607 1638T566 1632Q521 1632 492 1658T462 1747Z" /> +<glyph unicode="Ð" glyph-name="Eth" horiz-adv-x="1489" d="M78 815H272V1237Q272 1282 259 1309T222 1352T169 1371T104 1376H78V1462H705Q863 1462 987 1414T1196 1272T1327 1043T1372 733Q1372 565 1330 430T1205 199T997 52T705 0H78V86H104Q139 86 +169 91T223 111T259 156T272 233V715H78V815ZM657 104Q779 104 870 145T1023 267T1114 464T1145 733Q1145 885 1115 1002T1024 1198T872 1319T659 1360H479V815H827V715H479V104H657Z" /> +<glyph unicode="Ñ" glyph-name="Ntilde" horiz-adv-x="1563" d="M1165 0L397 1180V233Q397 185 410 156T446 112T500 91T565 86H592V0H78V86H104Q139 86 169 91T223 111T259 156T272 233V1237Q272 1282 259 1309T222 1352T169 1371T104 1376H78V1462H453L1186 +330V1237Q1186 1282 1173 1309T1136 1352T1083 1371T1018 1376H991V1462H1505V1376H1479Q1444 1376 1414 1371T1360 1351T1324 1306T1311 1229V0H1165ZM979 1712Q1009 1712 1027 1721T1056 1745T1071 1780T1079 1821H1171Q1168 1774 1155 1731T1115 1653T1050 1599T956 +1579Q901 1579 857 1599T774 1643T702 1688T635 1708Q604 1708 586 1699T558 1675T542 1641T534 1600H442Q445 1647 458 1690T498 1767T564 1821T659 1841Q714 1841 758 1821T841 1777T913 1732T979 1712Z" /> +<glyph unicode="Ò" glyph-name="Ograve" horiz-adv-x="1520" d="M1403 733Q1403 564 1361 425T1237 187T1035 34T760 -20Q597 -20 476 34T275 187T155 425T115 735Q115 905 155 1043T275 1280T477 1431T762 1485Q917 1485 1036 1432T1237 1280T1361 1043T1403 +733ZM342 733Q342 581 364 462T437 260T566 134T760 90Q874 90 953 133T1082 259T1154 461T1176 733Q1176 885 1154 1004T1083 1206T955 1331T762 1374Q648 1374 568 1331T438 1206T365 1005T342 733ZM861 1579H783Q742 1607 694 1648T601 1734T519 1818T463 1886V1907H682Q698 +1873 719 1833T765 1752T814 1673T861 1606V1579Z" /> +<glyph unicode="Ó" glyph-name="Oacute" horiz-adv-x="1520" d="M1403 733Q1403 564 1361 425T1237 187T1035 34T760 -20Q597 -20 476 34T275 187T155 425T115 735Q115 905 155 1043T275 1280T477 1431T762 1485Q917 1485 1036 1432T1237 1280T1361 1043T1403 +733ZM342 733Q342 581 364 462T437 260T566 134T760 90Q874 90 953 133T1082 259T1154 461T1176 733Q1176 885 1154 1004T1083 1206T955 1331T762 1374Q648 1374 568 1331T438 1206T365 1005T342 733ZM649 1606Q672 1635 696 1673T744 1751T789 1832T827 1907H1046V1886Q1027 +1859 990 1819T908 1734T816 1649T727 1579H649V1606Z" /> +<glyph unicode="Ô" glyph-name="Ocircumflex" horiz-adv-x="1520" d="M1403 733Q1403 564 1361 425T1237 187T1035 34T760 -20Q597 -20 476 34T275 187T155 425T115 735Q115 905 155 1043T275 1280T477 1431T762 1485Q917 1485 1036 1432T1237 1280T1361 +1043T1403 733ZM342 733Q342 581 364 462T437 260T566 134T760 90Q874 90 953 133T1082 259T1154 461T1176 733Q1176 885 1154 1004T1083 1206T955 1331T762 1374Q648 1374 568 1331T438 1206T365 1005T342 733ZM459 1606Q483 1635 512 1673T569 1751T623 1832T664 +1907H858Q874 1873 899 1833T952 1752T1010 1673T1063 1606V1579H983Q924 1613 865 1663T760 1763Q713 1714 655 1664T539 1579H459V1606Z" /> +<glyph unicode="Õ" glyph-name="Otilde" horiz-adv-x="1520" d="M1403 733Q1403 564 1361 425T1237 187T1035 34T760 -20Q597 -20 476 34T275 187T155 425T115 735Q115 905 155 1043T275 1280T477 1431T762 1485Q917 1485 1036 1432T1237 1280T1361 1043T1403 +733ZM342 733Q342 581 364 462T437 260T566 134T760 90Q874 90 953 133T1082 259T1154 461T1176 733Q1176 885 1154 1004T1083 1206T955 1331T762 1374Q648 1374 568 1331T438 1206T365 1005T342 733ZM918 1712Q948 1712 966 1721T995 1745T1010 1780T1018 1821H1110Q1107 +1774 1094 1731T1054 1653T989 1599T895 1579Q840 1579 796 1599T713 1643T641 1688T574 1708Q543 1708 525 1699T497 1675T481 1641T473 1600H381Q384 1647 397 1690T437 1767T503 1821T598 1841Q653 1841 697 1821T780 1777T852 1732T918 1712Z" /> +<glyph unicode="Ö" glyph-name="Odieresis" horiz-adv-x="1520" d="M1403 733Q1403 564 1361 425T1237 187T1035 34T760 -20Q597 -20 476 34T275 187T155 425T115 735Q115 905 155 1043T275 1280T477 1431T762 1485Q917 1485 1036 1432T1237 1280T1361 1043T1403 +733ZM342 733Q342 581 364 462T437 260T566 134T760 90Q874 90 953 133T1082 259T1154 461T1176 733Q1176 885 1154 1004T1083 1206T955 1331T762 1374Q648 1374 568 1331T438 1206T365 1005T342 733ZM455 1747Q455 1779 463 1801T485 1836T518 1856T559 1862Q581 +1862 600 1856T633 1837T656 1801T664 1747Q664 1716 656 1694T634 1658T600 1638T559 1632Q514 1632 485 1658T455 1747ZM844 1747Q844 1779 852 1801T874 1836T907 1856T948 1862Q970 1862 989 1856T1022 1837T1045 1801T1053 1747Q1053 1716 1045 1694T1023 +1658T989 1638T948 1632Q903 1632 874 1658T844 1747Z" /> +<glyph unicode="×" glyph-name="multiply" horiz-adv-x="1145" d="M571 647L231 307L145 395L485 735L145 1073L231 1159L571 819L911 1161L997 1073L657 733L997 393L911 307L571 647Z" /> +<glyph unicode="Ø" glyph-name="Oslash" horiz-adv-x="1520" d="M1163 1354Q1281 1257 1342 1099T1403 733Q1403 564 1361 425T1237 187T1035 34T760 -20Q667 -20 588 -3T442 49L371 -82H250L354 106Q233 204 174 364T115 735Q115 905 155 1043T275 1280T477 +1431T762 1485Q853 1485 931 1466T1075 1411L1151 1546H1270L1163 1354ZM342 733Q342 578 364 460T438 258L1010 1292Q916 1374 762 1374Q648 1374 568 1331T438 1206T365 1005T342 733ZM1176 733Q1176 886 1154 1004T1081 1206L510 170Q605 90 760 90Q874 90 953 +133T1082 259T1154 461T1176 733Z" /> +<glyph unicode="Ù" glyph-name="Ugrave" horiz-adv-x="1468" d="M741 -20Q620 -20 524 5T362 86T260 229T225 442V1237Q225 1282 212 1309T175 1352T122 1371T57 1376H31V1462H627V1376H600Q566 1376 535 1371T482 1351T446 1306T432 1229V430Q432 341 457 +279T528 177T636 120T774 102Q863 102 927 126T1034 192T1097 293T1118 422V1237Q1118 1282 1105 1309T1068 1352T1015 1371T950 1376H924V1462H1438V1376H1411Q1377 1376 1346 1371T1293 1351T1257 1306T1243 1229V418Q1243 316 1211 235T1115 97T957 10T741 -20ZM852 +1579H774Q733 1607 685 1648T592 1734T510 1818T454 1886V1907H673Q689 1873 710 1833T756 1752T805 1673T852 1606V1579Z" /> +<glyph unicode="Ú" glyph-name="Uacute" horiz-adv-x="1468" d="M741 -20Q620 -20 524 5T362 86T260 229T225 442V1237Q225 1282 212 1309T175 1352T122 1371T57 1376H31V1462H627V1376H600Q566 1376 535 1371T482 1351T446 1306T432 1229V430Q432 341 457 +279T528 177T636 120T774 102Q863 102 927 126T1034 192T1097 293T1118 422V1237Q1118 1282 1105 1309T1068 1352T1015 1371T950 1376H924V1462H1438V1376H1411Q1377 1376 1346 1371T1293 1351T1257 1306T1243 1229V418Q1243 316 1211 235T1115 97T957 10T741 -20ZM649 +1606Q672 1635 696 1673T744 1751T789 1832T827 1907H1046V1886Q1027 1859 990 1819T908 1734T816 1649T727 1579H649V1606Z" /> +<glyph unicode="Û" glyph-name="Ucircumflex" horiz-adv-x="1468" d="M741 -20Q620 -20 524 5T362 86T260 229T225 442V1237Q225 1282 212 1309T175 1352T122 1371T57 1376H31V1462H627V1376H600Q566 1376 535 1371T482 1351T446 1306T432 1229V430Q432 341 +457 279T528 177T636 120T774 102Q863 102 927 126T1034 192T1097 293T1118 422V1237Q1118 1282 1105 1309T1068 1352T1015 1371T950 1376H924V1462H1438V1376H1411Q1377 1376 1346 1371T1293 1351T1257 1306T1243 1229V418Q1243 316 1211 235T1115 97T957 10T741 +-20ZM471 1606Q495 1635 524 1673T581 1751T635 1832T676 1907H870Q886 1873 911 1833T964 1752T1022 1673T1075 1606V1579H995Q936 1613 877 1663T772 1763Q725 1714 667 1664T551 1579H471V1606Z" /> +<glyph unicode="Ü" glyph-name="Udieresis" horiz-adv-x="1468" d="M741 -20Q620 -20 524 5T362 86T260 229T225 442V1237Q225 1282 212 1309T175 1352T122 1371T57 1376H31V1462H627V1376H600Q566 1376 535 1371T482 1351T446 1306T432 1229V430Q432 341 +457 279T528 177T636 120T774 102Q863 102 927 126T1034 192T1097 293T1118 422V1237Q1118 1282 1105 1309T1068 1352T1015 1371T950 1376H924V1462H1438V1376H1411Q1377 1376 1346 1371T1293 1351T1257 1306T1243 1229V418Q1243 316 1211 235T1115 97T957 10T741 +-20ZM477 1747Q477 1779 485 1801T507 1836T540 1856T581 1862Q603 1862 622 1856T655 1837T678 1801T686 1747Q686 1716 678 1694T656 1658T622 1638T581 1632Q536 1632 507 1658T477 1747ZM866 1747Q866 1779 874 1801T896 1836T929 1856T970 1862Q992 1862 1011 +1856T1044 1837T1067 1801T1075 1747Q1075 1716 1067 1694T1045 1658T1011 1638T970 1632Q925 1632 896 1658T866 1747Z" /> +<glyph unicode="Ý" glyph-name="Yacute" horiz-adv-x="1280" d="M326 0V86H373Q407 86 437 90T491 109T527 150T541 223V610L162 1268Q145 1297 130 1317T99 1351T62 1370T16 1376H-10V1462H553V1376H477Q449 1376 432 1371T404 1357T391 1336T387 1311Q387 +1282 399 1253T424 1202L575 928Q611 865 636 804T678 694Q687 716 700 743T730 800T765 863T801 928L932 1163Q952 1198 960 1229T969 1286Q969 1331 937 1353T846 1376H786V1462H1286V1376H1262Q1240 1376 1221 1369T1181 1343T1140 1294T1092 1217L748 610V233Q748 +185 761 156T797 112T850 91T915 86H963V0H326ZM567 1606Q590 1635 614 1673T662 1751T707 1832T745 1907H964V1886Q945 1859 908 1819T826 1734T734 1649T645 1579H567V1606Z" /> +<glyph unicode="Þ" glyph-name="Thorn" horiz-adv-x="1237" d="M78 0V86H104Q139 86 169 91T223 111T259 156T272 233V1229Q272 1277 259 1306T223 1350T170 1371T104 1376H78V1462H694V1376H647Q613 1376 582 1371T529 1351T493 1306T479 1229V1167H653Q911 +1167 1034 1064T1157 760Q1157 669 1129 588T1035 446T865 350T608 315H479V233Q479 185 492 156T528 112T582 91T647 86H694V0H78ZM479 412H588Q681 412 747 428T855 484T916 589T936 752Q936 838 919 898T864 996T766 1051T618 1069H479V412Z" /> +<glyph unicode="ß" glyph-name="germandbls" horiz-adv-x="1325" d="M887 78Q962 78 1010 124T1059 264Q1059 298 1052 327T1022 383T961 437T860 494Q796 526 747 557T666 626T617 712T600 825Q600 887 620 938T682 1025T787 1082T938 1102Q938 1199 924 +1268T879 1383T800 1449T682 1470Q620 1470 574 1450T496 1394T450 1305T434 1188V0H47V86H74Q109 86 139 91T192 111T228 156T242 233V1001H76V1098H242V1159Q242 1272 276 1349T369 1473T509 1542T684 1563Q812 1563 897 1527T1033 1420T1107 1245T1130 1006H981Q872 +1006 821 965T770 840Q770 809 780 784T815 735T881 688T983 635Q1060 600 1109 561T1186 478T1224 390T1235 299Q1235 221 1211 161T1143 61T1034 1T889 -20Q817 -20 758 -7T657 34T592 102T569 197Q569 238 581 265T611 309T649 331T686 338Q686 284 696 237T730 +155T792 99T887 78Z" /> +<glyph unicode="à" glyph-name="agrave" horiz-adv-x="1153" d="M301 297Q301 201 341 154T467 106Q529 106 579 126T665 183T720 273T739 391V557L608 551Q521 547 463 530T368 481T317 403T301 297ZM549 1016Q490 1016 454 1000T397 953T369 882T362 793Q277 +793 233 822T188 922Q188 975 217 1012T296 1072T414 1107T557 1118Q651 1118 721 1100T838 1039T908 930T932 764V233Q932 190 939 162T961 117T1000 93T1059 86H1065V0H788L756 176H739Q707 133 677 97T611 35T530 -5T420 -20Q352 -20 294 -1T193 59T126 161T102 +307Q102 470 218 549T569 635L739 641V764Q739 819 733 865T707 945T650 997T549 1016ZM923 1241H845Q804 1269 756 1310T663 1396T581 1480T525 1548V1569H744Q760 1535 781 1495T827 1414T876 1335T923 1268V1241Z" /> +<glyph unicode="á" glyph-name="aacute" horiz-adv-x="1153" d="M301 297Q301 201 341 154T467 106Q529 106 579 126T665 183T720 273T739 391V557L608 551Q521 547 463 530T368 481T317 403T301 297ZM549 1016Q490 1016 454 1000T397 953T369 882T362 793Q277 +793 233 822T188 922Q188 975 217 1012T296 1072T414 1107T557 1118Q651 1118 721 1100T838 1039T908 930T932 764V233Q932 190 939 162T961 117T1000 93T1059 86H1065V0H788L756 176H739Q707 133 677 97T611 35T530 -5T420 -20Q352 -20 294 -1T193 59T126 161T102 +307Q102 470 218 549T569 635L739 641V764Q739 819 733 865T707 945T650 997T549 1016ZM471 1268Q494 1297 518 1335T566 1413T611 1494T649 1569H868V1548Q849 1521 812 1481T730 1396T638 1311T549 1241H471V1268Z" /> +<glyph unicode="â" glyph-name="acircumflex" horiz-adv-x="1153" d="M301 297Q301 201 341 154T467 106Q529 106 579 126T665 183T720 273T739 391V557L608 551Q521 547 463 530T368 481T317 403T301 297ZM549 1016Q490 1016 454 1000T397 953T369 882T362 +793Q277 793 233 822T188 922Q188 975 217 1012T296 1072T414 1107T557 1118Q651 1118 721 1100T838 1039T908 930T932 764V233Q932 190 939 162T961 117T1000 93T1059 86H1065V0H788L756 176H739Q707 133 677 97T611 35T530 -5T420 -20Q352 -20 294 -1T193 59T126 +161T102 307Q102 470 218 549T569 635L739 641V764Q739 819 733 865T707 945T650 997T549 1016ZM517 1268Q541 1297 570 1335T627 1413T681 1494T722 1569H916Q932 1535 957 1495T1010 1414T1068 1335T1121 1268V1241H1041Q982 1275 923 1325T818 1425Q771 1376 +713 1326T597 1241H517V1268Z" /> +<glyph unicode="ã" glyph-name="atilde" horiz-adv-x="1153" d="M301 297Q301 201 341 154T467 106Q529 106 579 126T665 183T720 273T739 391V557L608 551Q521 547 463 530T368 481T317 403T301 297ZM549 1016Q490 1016 454 1000T397 953T369 882T362 793Q277 +793 233 822T188 922Q188 975 217 1012T296 1072T414 1107T557 1118Q651 1118 721 1100T838 1039T908 930T932 764V233Q932 190 939 162T961 117T1000 93T1059 86H1065V0H788L756 176H739Q707 133 677 97T611 35T530 -5T420 -20Q352 -20 294 -1T193 59T126 161T102 +307Q102 470 218 549T569 635L739 641V764Q739 819 733 865T707 945T650 997T549 1016ZM999 1374Q1029 1374 1047 1383T1076 1407T1091 1442T1099 1483H1191Q1188 1436 1175 1393T1135 1315T1070 1261T976 1241Q921 1241 877 1261T794 1305T722 1350T655 1370Q624 +1370 606 1361T578 1337T562 1303T554 1262H462Q465 1309 478 1352T518 1429T584 1483T679 1503Q734 1503 778 1483T861 1439T933 1394T999 1374Z" /> +<glyph unicode="ä" glyph-name="adieresis" horiz-adv-x="1153" d="M301 297Q301 201 341 154T467 106Q529 106 579 126T665 183T720 273T739 391V557L608 551Q521 547 463 530T368 481T317 403T301 297ZM549 1016Q490 1016 454 1000T397 953T369 882T362 +793Q277 793 233 822T188 922Q188 975 217 1012T296 1072T414 1107T557 1118Q651 1118 721 1100T838 1039T908 930T932 764V233Q932 190 939 162T961 117T1000 93T1059 86H1065V0H788L756 176H739Q707 133 677 97T611 35T530 -5T420 -20Q352 -20 294 -1T193 59T126 +161T102 307Q102 470 218 549T569 635L739 641V764Q739 819 733 865T707 945T650 997T549 1016ZM513 1409Q513 1441 521 1463T543 1498T576 1518T617 1524Q639 1524 658 1518T691 1499T714 1463T722 1409Q722 1378 714 1356T692 1320T658 1300T617 1294Q572 1294 +543 1320T513 1409ZM902 1409Q902 1441 910 1463T932 1498T965 1518T1006 1524Q1028 1524 1047 1518T1080 1499T1103 1463T1111 1409Q1111 1378 1103 1356T1081 1320T1047 1300T1006 1294Q961 1294 932 1320T902 1409Z" /> +<glyph unicode="å" glyph-name="aring" horiz-adv-x="1153" d="M301 297Q301 201 341 154T467 106Q529 106 579 126T665 183T720 273T739 391V557L608 551Q521 547 463 530T368 481T317 403T301 297ZM549 1016Q490 1016 454 1000T397 953T369 882T362 793Q277 +793 233 822T188 922Q188 975 217 1012T296 1072T414 1107T557 1118Q651 1118 721 1100T838 1039T908 930T932 764V233Q932 190 939 162T961 117T1000 93T1059 86H1065V0H788L756 176H739Q707 133 677 97T611 35T530 -5T420 -20Q352 -20 294 -1T193 59T126 161T102 +307Q102 470 218 549T569 635L739 641V764Q739 819 733 865T707 945T650 997T549 1016ZM819 1444Q819 1389 800 1348T748 1278T669 1236T573 1221Q522 1221 477 1235T399 1278T346 1347T327 1444Q327 1498 346 1540T398 1610T477 1652T573 1667Q624 1667 669 1653T747 +1610T800 1540T819 1444ZM708 1444Q708 1477 698 1500T669 1538T626 1560T573 1567Q545 1567 521 1560T478 1539T449 1501T438 1444Q438 1411 448 1388T477 1350T520 1328T573 1321Q601 1321 625 1328T668 1349T697 1387T708 1444Z" /> +<glyph unicode="æ" glyph-name="ae" horiz-adv-x="1722" d="M301 297Q301 201 341 154T467 106Q529 106 579 126T665 183T720 273T739 391V514V541V557L608 551Q521 547 463 530T368 481T317 403T301 297ZM1190 1008Q1075 1008 1014 916T942 645H1413Q1413 +726 1401 793T1363 908T1295 982T1190 1008ZM1221 -20Q1071 -20 967 39T805 213Q786 167 752 125T670 51T559 -1T420 -20Q352 -20 294 -1T193 59T126 161T102 307Q102 470 218 549T569 635L739 641V764Q739 819 733 865T707 945T650 997T549 1016Q490 1016 454 +1000T397 953T369 882T362 793Q277 793 233 822T188 922Q188 975 217 1012T296 1072T414 1107T557 1118Q673 1118 752 1089T877 993Q991 1118 1194 1118Q1293 1118 1372 1087T1506 995T1590 842T1620 629V535H938Q940 423 959 343T1017 210T1115 134T1255 109Q1300 +109 1342 120T1420 150T1486 196T1536 252Q1550 246 1562 227T1575 182Q1575 151 1553 116T1487 50T1377 0T1221 -20Z" /> +<glyph unicode="ç" glyph-name="ccedilla" horiz-adv-x="1008" d="M580 -20Q478 -20 392 11T244 111T148 285T113 543Q113 707 147 817T243 995T388 1090T569 1118Q633 1118 696 1106T811 1067T894 1002T926 909Q926 838 880 809T743 780Q743 828 735 871T708 +946T655 997T569 1016Q510 1016 463 994T381 918T329 773T311 545Q311 327 383 220T621 113Q716 113 787 153T893 256Q908 244 918 224T928 176Q928 141 906 106T841 43T732 -2T580 -20ZM784 -258Q784 -367 715 -429T514 -492Q498 -492 478 -491T437 -486T395 -479T356 +-469V-365Q393 -373 430 -377T495 -381Q554 -381 587 -350T620 -266Q620 -206 577 -176T466 -141L509 18H606L585 -70Q685 -78 734 -127T784 -258Z" /> +<glyph unicode="è" glyph-name="egrave" horiz-adv-x="1096" d="M563 1008Q449 1008 388 916T315 645H786Q786 726 774 793T736 908T668 982T563 1008ZM588 -20Q477 -20 389 17T239 127T146 303T113 541Q113 828 231 973T567 1118Q666 1118 745 1087T879 +995T963 842T993 629V535H311Q313 423 333 343T392 210T487 134T616 109Q669 109 714 121T797 153T862 198T909 252Q923 246 935 227T948 182Q948 151 926 116T859 50T747 0T588 -20ZM939 1241H861Q820 1269 772 1310T679 1396T597 1480T541 1548V1569H760Q776 +1535 797 1495T843 1414T892 1335T939 1268V1241Z" /> +<glyph unicode="é" glyph-name="eacute" horiz-adv-x="1096" d="M563 1008Q449 1008 388 916T315 645H786Q786 726 774 793T736 908T668 982T563 1008ZM588 -20Q477 -20 389 17T239 127T146 303T113 541Q113 828 231 973T567 1118Q666 1118 745 1087T879 +995T963 842T993 629V535H311Q313 423 333 343T392 210T487 134T616 109Q669 109 714 121T797 153T862 198T909 252Q923 246 935 227T948 182Q948 151 926 116T859 50T747 0T588 -20ZM473 1268Q496 1297 520 1335T568 1413T613 1494T651 1569H870V1548Q851 1521 +814 1481T732 1396T640 1311T551 1241H473V1268Z" /> +<glyph unicode="ê" glyph-name="ecircumflex" horiz-adv-x="1096" d="M563 1008Q449 1008 388 916T315 645H786Q786 726 774 793T736 908T668 982T563 1008ZM588 -20Q477 -20 389 17T239 127T146 303T113 541Q113 828 231 973T567 1118Q666 1118 745 1087T879 +995T963 842T993 629V535H311Q313 423 333 343T392 210T487 134T616 109Q669 109 714 121T797 153T862 198T909 252Q923 246 935 227T948 182Q948 151 926 116T859 50T747 0T588 -20ZM511 1268Q535 1297 564 1335T621 1413T675 1494T716 1569H910Q926 1535 951 +1495T1004 1414T1062 1335T1115 1268V1241H1035Q976 1275 917 1325T812 1425Q765 1376 707 1326T591 1241H511V1268Z" /> +<glyph unicode="ë" glyph-name="edieresis" horiz-adv-x="1096" d="M563 1008Q449 1008 388 916T315 645H786Q786 726 774 793T736 908T668 982T563 1008ZM588 -20Q477 -20 389 17T239 127T146 303T113 541Q113 828 231 973T567 1118Q666 1118 745 1087T879 +995T963 842T993 629V535H311Q313 423 333 343T392 210T487 134T616 109Q669 109 714 121T797 153T862 198T909 252Q923 246 935 227T948 182Q948 151 926 116T859 50T747 0T588 -20ZM509 1409Q509 1441 517 1463T539 1498T572 1518T613 1524Q635 1524 654 1518T687 +1499T710 1463T718 1409Q718 1378 710 1356T688 1320T654 1300T613 1294Q568 1294 539 1320T509 1409ZM898 1409Q898 1441 906 1463T928 1498T961 1518T1002 1524Q1024 1524 1043 1518T1076 1499T1099 1463T1107 1409Q1107 1378 1099 1356T1077 1320T1043 1300T1002 +1294Q957 1294 928 1320T898 1409Z" /> +<glyph unicode="ì" glyph-name="igrave" horiz-adv-x="655" d="M74 86Q108 86 138 90T192 109T228 150T242 223V872Q242 917 229 944T192 987T139 1007T74 1012H68V1098H434V233Q434 185 447 156T483 112T537 91T602 86H629V0H47V86H74ZM436 1241H358Q317 +1269 269 1310T176 1396T94 1480T38 1548V1569H257Q273 1535 294 1495T340 1414T389 1335T436 1268V1241Z" /> +<glyph unicode="í" glyph-name="iacute" horiz-adv-x="655" d="M74 86Q108 86 138 90T192 109T228 150T242 223V872Q242 917 229 944T192 987T139 1007T74 1012H68V1098H434V233Q434 185 447 156T483 112T537 91T602 86H629V0H47V86H74ZM240 1268Q263 1297 +287 1335T335 1413T380 1494T418 1569H637V1548Q618 1521 581 1481T499 1396T407 1311T318 1241H240V1268Z" /> +<glyph unicode="î" glyph-name="icircumflex" horiz-adv-x="655" d="M74 86Q108 86 138 90T192 109T228 150T242 223V872Q242 917 229 944T192 987T139 1007T74 1012H68V1098H434V233Q434 185 447 156T483 112T537 91T602 86H629V0H47V86H74ZM22 1268Q46 +1297 75 1335T132 1413T186 1494T227 1569H421Q437 1535 462 1495T515 1414T573 1335T626 1268V1241H546Q487 1275 428 1325T323 1425Q276 1376 218 1326T102 1241H22V1268Z" /> +<glyph unicode="ï" glyph-name="idieresis" horiz-adv-x="655" d="M74 86Q108 86 138 90T192 109T228 150T242 223V872Q242 917 229 944T192 987T139 1007T74 1012H68V1098H434V233Q434 185 447 156T483 112T537 91T602 86H629V0H47V86H74ZM18 1409Q18 1441 +26 1463T48 1498T81 1518T122 1524Q144 1524 163 1518T196 1499T219 1463T227 1409Q227 1378 219 1356T197 1320T163 1300T122 1294Q77 1294 48 1320T18 1409ZM407 1409Q407 1441 415 1463T437 1498T470 1518T511 1524Q533 1524 552 1518T585 1499T608 1463T616 +1409Q616 1378 608 1356T586 1320T552 1300T511 1294Q466 1294 437 1320T407 1409Z" /> +<glyph unicode="ð" glyph-name="eth" horiz-adv-x="1182" d="M307 1559Q401 1536 491 1499T662 1407L926 1561V1444L745 1341Q817 1281 877 1204T979 1032T1045 829T1069 596Q1069 284 947 132T588 -20Q477 -20 389 12T240 111T146 276T113 510Q113 776 234 +906T594 1036Q662 1036 720 1022T829 983Q808 1051 755 1126T623 1270L367 1124V1239L539 1337Q488 1371 430 1399T307 1448V1559ZM311 510Q311 405 326 326T374 194T461 113T592 86Q669 86 722 113T808 193T855 326T870 510Q870 614 855 692T807 823T721 902T590 +928Q513 928 460 902T374 824T326 693T311 510Z" /> +<glyph unicode="ñ" glyph-name="ntilde" horiz-adv-x="1321" d="M608 86V0H57V86H74Q109 86 139 91T192 111T228 156T242 233V872Q242 917 229 944T192 987T139 1007T74 1012H68V1098H399L426 932H436Q468 989 503 1025T578 1082T662 1110T756 1118Q837 1118 +900 1095T1008 1023T1076 898T1100 717V233Q1100 185 1111 156T1144 112T1194 91T1257 86H1264V0H907V707Q907 774 895 826T857 914T787 968T682 987Q612 987 565 960T488 887T447 781T434 655V223Q434 178 447 151T484 109T537 91T602 86H608ZM842 1374Q872 1374 +890 1383T919 1407T934 1442T942 1483H1034Q1031 1436 1018 1393T978 1315T913 1261T819 1241Q764 1241 720 1261T637 1305T565 1350T498 1370Q467 1370 449 1361T421 1337T405 1303T397 1262H305Q308 1309 321 1352T361 1429T427 1483T522 1503Q577 1503 621 1483T704 +1439T776 1394T842 1374Z" /> +<glyph unicode="ò" glyph-name="ograve" horiz-adv-x="1182" d="M1069 551Q1069 262 947 121T588 -20Q477 -20 389 15T240 121T146 299T113 551Q113 838 234 978T594 1118Q705 1118 793 1084T942 979T1036 802T1069 551ZM311 551Q311 437 326 350T374 205T461 +116T592 86Q669 86 722 116T808 204T855 350T870 551Q870 665 855 751T807 894T721 981T590 1010Q513 1010 460 981T374 895T326 751T311 551ZM952 1241H874Q833 1269 785 1310T692 1396T610 1480T554 1548V1569H773Q789 1535 810 1495T856 1414T905 1335T952 1268V1241Z" +/> +<glyph unicode="ó" glyph-name="oacute" horiz-adv-x="1182" d="M1069 551Q1069 262 947 121T588 -20Q477 -20 389 15T240 121T146 299T113 551Q113 838 234 978T594 1118Q705 1118 793 1084T942 979T1036 802T1069 551ZM311 551Q311 437 326 350T374 205T461 +116T592 86Q669 86 722 116T808 204T855 350T870 551Q870 665 855 751T807 894T721 981T590 1010Q513 1010 460 981T374 895T326 751T311 551ZM512 1268Q535 1297 559 1335T607 1413T652 1494T690 1569H909V1548Q890 1521 853 1481T771 1396T679 1311T590 1241H512V1268Z" +/> +<glyph unicode="ô" glyph-name="ocircumflex" horiz-adv-x="1182" d="M1069 551Q1069 262 947 121T588 -20Q477 -20 389 15T240 121T146 299T113 551Q113 838 234 978T594 1118Q705 1118 793 1084T942 979T1036 802T1069 551ZM311 551Q311 437 326 350T374 +205T461 116T592 86Q669 86 722 116T808 204T855 350T870 551Q870 665 855 751T807 894T721 981T590 1010Q513 1010 460 981T374 895T326 751T311 551ZM540 1268Q564 1297 593 1335T650 1413T704 1494T745 1569H939Q955 1535 980 1495T1033 1414T1091 1335T1144 +1268V1241H1064Q1005 1275 946 1325T841 1425Q794 1376 736 1326T620 1241H540V1268Z" /> +<glyph unicode="õ" glyph-name="otilde" horiz-adv-x="1182" d="M1069 551Q1069 262 947 121T588 -20Q477 -20 389 15T240 121T146 299T113 551Q113 838 234 978T594 1118Q705 1118 793 1084T942 979T1036 802T1069 551ZM311 551Q311 437 326 350T374 205T461 +116T592 86Q669 86 722 116T808 204T855 350T870 551Q870 665 855 751T807 894T721 981T590 1010Q513 1010 460 981T374 895T326 751T311 551ZM1013 1374Q1043 1374 1061 1383T1090 1407T1105 1442T1113 1483H1205Q1202 1436 1189 1393T1149 1315T1084 1261T990 +1241Q935 1241 891 1261T808 1305T736 1350T669 1370Q638 1370 620 1361T592 1337T576 1303T568 1262H476Q479 1309 492 1352T532 1429T598 1483T693 1503Q748 1503 792 1483T875 1439T947 1394T1013 1374Z" /> +<glyph unicode="ö" glyph-name="odieresis" horiz-adv-x="1182" d="M1069 551Q1069 262 947 121T588 -20Q477 -20 389 15T240 121T146 299T113 551Q113 838 234 978T594 1118Q705 1118 793 1084T942 979T1036 802T1069 551ZM311 551Q311 437 326 350T374 +205T461 116T592 86Q669 86 722 116T808 204T855 350T870 551Q870 665 855 751T807 894T721 981T590 1010Q513 1010 460 981T374 895T326 751T311 551ZM540 1409Q540 1441 548 1463T570 1498T603 1518T644 1524Q666 1524 685 1518T718 1499T741 1463T749 1409Q749 +1378 741 1356T719 1320T685 1300T644 1294Q599 1294 570 1320T540 1409ZM929 1409Q929 1441 937 1463T959 1498T992 1518T1033 1524Q1055 1524 1074 1518T1107 1499T1130 1463T1138 1409Q1138 1378 1130 1356T1108 1320T1074 1300T1033 1294Q988 1294 959 1320T929 +1409Z" /> +<glyph unicode="÷" glyph-name="divide" horiz-adv-x="1145" d="M1012 672H133V793H1012V672ZM469 1120Q469 1152 477 1174T499 1209T532 1227T573 1233Q595 1233 614 1228T647 1209T670 1174T678 1120Q678 1089 670 1068T648 1033T614 1014T573 1008Q551 +1008 532 1013T499 1032T477 1067T469 1120ZM469 344Q469 376 477 398T499 433T532 451T573 457Q595 457 614 452T647 433T670 398T678 344Q678 313 670 291T648 256T614 237T573 231Q528 231 499 256T469 344Z" /> +<glyph unicode="ø" glyph-name="oslash" horiz-adv-x="1182" d="M930 991Q998 922 1033 813T1069 551Q1069 262 947 121T588 -20Q517 -20 455 -6T342 37L268 -82H147L258 98Q187 170 150 281T113 551Q113 838 234 978T594 1118Q668 1118 731 1102T848 1055L926 +1180H1044L930 991ZM311 551Q311 457 321 382T352 250L776 936Q708 1010 590 1010Q513 1010 460 981T374 895T326 751T311 551ZM870 551Q870 728 834 836L412 152Q444 120 488 103T592 86Q669 86 722 116T808 204T855 350T870 551Z" /> +<glyph unicode="ù" glyph-name="ugrave" horiz-adv-x="1300" d="M1079 223Q1079 178 1092 151T1129 109T1182 91T1247 86H1253V0H928L901 166H891Q860 108 823 72T743 16T655 -12T559 -20Q478 -20 415 3T309 75T244 200T221 381V872Q221 917 208 944T171 +987T118 1007T53 1012H47V1098H414V391Q414 324 424 272T459 184T525 130T629 111Q697 111 745 135T825 202T872 307T887 442V864Q887 912 874 941T838 986T785 1007T719 1012H713V1098H1079V223ZM968 1241H890Q849 1269 801 1310T708 1396T626 1480T570 1548V1569H789Q805 +1535 826 1495T872 1414T921 1335T968 1268V1241Z" /> +<glyph unicode="ú" glyph-name="uacute" horiz-adv-x="1300" d="M1079 223Q1079 178 1092 151T1129 109T1182 91T1247 86H1253V0H928L901 166H891Q860 108 823 72T743 16T655 -12T559 -20Q478 -20 415 3T309 75T244 200T221 381V872Q221 917 208 944T171 +987T118 1007T53 1012H47V1098H414V391Q414 324 424 272T459 184T525 130T629 111Q697 111 745 135T825 202T872 307T887 442V864Q887 912 874 941T838 986T785 1007T719 1012H713V1098H1079V223ZM541 1268Q564 1297 588 1335T636 1413T681 1494T719 1569H938V1548Q919 +1521 882 1481T800 1396T708 1311T619 1241H541V1268Z" /> +<glyph unicode="û" glyph-name="ucircumflex" horiz-adv-x="1300" d="M1079 223Q1079 178 1092 151T1129 109T1182 91T1247 86H1253V0H928L901 166H891Q860 108 823 72T743 16T655 -12T559 -20Q478 -20 415 3T309 75T244 200T221 381V872Q221 917 208 944T171 +987T118 1007T53 1012H47V1098H414V391Q414 324 424 272T459 184T525 130T629 111Q697 111 745 135T825 202T872 307T887 442V864Q887 912 874 941T838 986T785 1007T719 1012H713V1098H1079V223ZM342 1268Q366 1297 395 1335T452 1413T506 1494T547 1569H741Q757 +1535 782 1495T835 1414T893 1335T946 1268V1241H866Q807 1275 748 1325T643 1425Q596 1376 538 1326T422 1241H342V1268Z" /> +<glyph unicode="ü" glyph-name="udieresis" horiz-adv-x="1300" d="M1079 223Q1079 178 1092 151T1129 109T1182 91T1247 86H1253V0H928L901 166H891Q860 108 823 72T743 16T655 -12T559 -20Q478 -20 415 3T309 75T244 200T221 381V872Q221 917 208 944T171 +987T118 1007T53 1012H47V1098H414V391Q414 324 424 272T459 184T525 130T629 111Q697 111 745 135T825 202T872 307T887 442V864Q887 912 874 941T838 986T785 1007T719 1012H713V1098H1079V223ZM348 1409Q348 1441 356 1463T378 1498T411 1518T452 1524Q474 1524 +493 1518T526 1499T549 1463T557 1409Q557 1378 549 1356T527 1320T493 1300T452 1294Q407 1294 378 1320T348 1409ZM737 1409Q737 1441 745 1463T767 1498T800 1518T841 1524Q863 1524 882 1518T915 1499T938 1463T946 1409Q946 1378 938 1356T916 1320T882 1300T841 +1294Q796 1294 767 1320T737 1409Z" /> +<glyph unicode="ý" glyph-name="yacute" horiz-adv-x="1157" d="M1157 1098V1012H1151Q1121 1012 1100 1006T1061 981T1028 932T995 852L684 -8Q648 -107 616 -182T549 -310T473 -399T378 -455T256 -484T96 -492H78V-395Q182 -395 257 -364T386 -279T477 +-152T539 8L160 903Q146 935 133 955T104 989T66 1007T14 1012H8V1098H500V1012H494Q432 1012 402 988T371 913Q371 896 374 879T387 838L537 473Q551 438 566 397T595 315T620 238T635 176H641Q652 221 671 285T717 424L854 823Q863 848 867 871T872 911Q872 964 +839 988T737 1012H731V1098H1157ZM504 1268Q527 1297 551 1335T599 1413T644 1494T682 1569H901V1548Q882 1521 845 1481T763 1396T671 1311T582 1241H504V1268Z" /> +<glyph unicode="þ" glyph-name="thorn" horiz-adv-x="1257" d="M692 987Q612 987 559 961T473 880T428 744T414 551Q414 444 427 362T473 224T559 140T694 111Q761 111 809 139T887 224T932 362T946 553Q946 771 887 879T692 987ZM1145 551Q1145 403 1118 +295T1037 117T906 14T727 -20Q668 -20 620 -7T534 30T466 87T414 160H406Q408 107 410 61Q411 41 411 21T412 -17T413 -49T414 -72V-268Q414 -313 427 -340T464 -382T517 -401T582 -406H588V-492H37V-406H53Q87 -406 118 -401T171 -381T207 -336T221 -258V1331Q221 +1376 208 1403T171 1446T118 1465T53 1470H37V1556H414V1180Q414 1145 413 1100T410 1012Q408 964 406 913H414Q437 960 466 998T533 1062T619 1103T727 1118Q828 1118 906 1085T1037 982T1117 805T1145 551Z" /> +<glyph unicode="ÿ" glyph-name="ydieresis" horiz-adv-x="1157" d="M1157 1098V1012H1151Q1121 1012 1100 1006T1061 981T1028 932T995 852L684 -8Q648 -107 616 -182T549 -310T473 -399T378 -455T256 -484T96 -492H78V-395Q182 -395 257 -364T386 -279T477 +-152T539 8L160 903Q146 935 133 955T104 989T66 1007T14 1012H8V1098H500V1012H494Q432 1012 402 988T371 913Q371 896 374 879T387 838L537 473Q551 438 566 397T595 315T620 238T635 176H641Q652 221 671 285T717 424L854 823Q863 848 867 871T872 911Q872 964 +839 988T737 1012H731V1098H1157ZM320 1409Q320 1441 328 1463T350 1498T383 1518T424 1524Q446 1524 465 1518T498 1499T521 1463T529 1409Q529 1378 521 1356T499 1320T465 1300T424 1294Q379 1294 350 1320T320 1409ZM709 1409Q709 1441 717 1463T739 1498T772 +1518T813 1524Q835 1524 854 1518T887 1499T910 1463T918 1409Q918 1378 910 1356T888 1320T854 1300T813 1294Q768 1294 739 1320T709 1409Z" /> +<glyph unicode="–" glyph-name="endash" horiz-adv-x="1024" d="M1034 489H-10V610H1034V489Z" /> +<glyph unicode="—" glyph-name="emdash" horiz-adv-x="2048" d="M2058 489H-10V610H2058V489Z" /> +<glyph unicode="‘" glyph-name="quoteleft" horiz-adv-x="512" d="M115 1063Q115 1128 133 1189T191 1302T296 1395T451 1464V1378Q350 1346 303 1300T256 1194Q256 1174 267 1161T295 1137T331 1116T367 1092T395 1058T406 1006Q406 947 368 916T272 885Q241 +885 213 896T162 930T128 986T115 1063Z" /> +<glyph unicode="’" glyph-name="quoteright" horiz-adv-x="512" d="M397 1284Q397 1219 379 1158T321 1045T217 952T61 883V969Q162 1001 209 1047T256 1153Q256 1173 245 1186T217 1210T181 1231T145 1255T117 1289T106 1341Q106 1400 144 1431T240 1462Q272 +1462 300 1451T350 1417T384 1361T397 1284Z" /> +<glyph unicode="‚" glyph-name="quotesinglbase" horiz-adv-x="512" d="M397 86Q397 21 379 -40T321 -153T217 -246T61 -315V-229Q162 -197 209 -151T256 -45Q256 -25 245 -12T217 12T181 33T145 57T117 91T106 143Q106 202 144 233T240 264Q272 264 300 +253T350 219T384 163T397 86Z" /> +<glyph unicode="“" glyph-name="quotedblleft" horiz-adv-x="922" d="M524 1063Q524 1128 542 1189T600 1302T705 1395T860 1464V1378Q760 1346 713 1300T666 1194Q666 1174 677 1161T704 1137T740 1116T776 1092T804 1058T815 1006Q815 947 777 916T682 +885Q651 885 622 896T572 930T537 986T524 1063ZM115 1063Q115 1128 133 1189T191 1302T296 1395T451 1464V1378Q350 1346 303 1300T256 1194Q256 1174 267 1161T295 1137T331 1116T367 1092T395 1058T406 1006Q406 947 368 916T272 885Q241 885 213 896T162 930T128 +986T115 1063Z" /> +<glyph unicode="”" glyph-name="quotedblright" horiz-adv-x="922" d="M397 1284Q397 1219 379 1158T321 1045T217 952T61 883V969Q162 1001 209 1047T256 1153Q256 1173 245 1186T217 1210T181 1231T145 1255T117 1289T106 1341Q106 1400 144 1431T240 +1462Q272 1462 300 1451T350 1417T384 1361T397 1284ZM807 1284Q807 1219 789 1158T731 1045T627 952T471 883V969Q571 1001 618 1047T666 1153Q666 1173 655 1186T627 1210T591 1231T555 1255T527 1289T516 1341Q516 1400 554 1431T649 1462Q681 1462 709 1451T759 +1417T794 1361T807 1284Z" /> +<glyph unicode="„" glyph-name="quotedblbase" horiz-adv-x="922" d="M397 86Q397 21 379 -40T321 -153T217 -246T61 -315V-229Q162 -197 209 -151T256 -45Q256 -25 245 -12T217 12T181 33T145 57T117 91T106 143Q106 202 144 233T240 264Q272 264 300 +253T350 219T384 163T397 86ZM807 86Q807 21 789 -40T731 -153T627 -246T471 -315V-229Q571 -197 618 -151T666 -45Q666 -25 655 -12T627 12T591 33T555 57T527 91T516 143Q516 202 554 233T649 264Q681 264 709 253T759 219T794 163T807 86Z" /> +<glyph unicode="•" glyph-name="bullet" horiz-adv-x="741" d="M100 729Q100 813 120 870T177 961T263 1011T371 1026Q427 1026 476 1011T562 962T620 870T641 729Q641 645 620 589T562 497T476 447T371 432Q313 432 263 447T177 497T121 588T100 729Z" /> +<glyph unicode="‹" glyph-name="guilsinglleft" horiz-adv-x="682" d="M133 586L446 942H549L342 553L549 164H446L133 520V586Z" /> +<glyph unicode="›" glyph-name="guilsinglright" horiz-adv-x="682" d="M551 520L238 164H135L342 553L135 942H238L551 586V520Z" /> +</font> +</defs> +</svg> diff --git a/web/static/fonts/Droid-Serif-regular.ttf b/web/static/fonts/Droid-Serif-regular.ttf Binary files differnew file mode 100644 index 000000000..82a9b160d --- /dev/null +++ b/web/static/fonts/Droid-Serif-regular.ttf diff --git a/web/static/fonts/Droid-Serif-regular.woff b/web/static/fonts/Droid-Serif-regular.woff Binary files differnew file mode 100644 index 000000000..91a41e958 --- /dev/null +++ b/web/static/fonts/Droid-Serif-regular.woff diff --git a/web/static/fonts/Droid-Serif-regular.woff2 b/web/static/fonts/Droid-Serif-regular.woff2 Binary files differnew file mode 100644 index 000000000..1d5e4b632 --- /dev/null +++ b/web/static/fonts/Droid-Serif-regular.woff2 diff --git a/web/static/fonts/Exo-2-regular.eot b/web/static/fonts/Exo-2-regular.eot Binary files differnew file mode 100644 index 000000000..20b381e4c --- /dev/null +++ b/web/static/fonts/Exo-2-regular.eot diff --git a/web/static/fonts/Exo-2-regular.svg b/web/static/fonts/Exo-2-regular.svg new file mode 100644 index 000000000..3027fdad0 --- /dev/null +++ b/web/static/fonts/Exo-2-regular.svg @@ -0,0 +1,319 @@ +<?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"> +<defs > +<font id="Exo2" horiz-adv-x="554" ><font-face + font-family="Exo 2" + units-per-em="1000" + panose-1="0 0 5 0 0 0 0 0 0 0" + ascent="999" + descent="-201" + alphabetic="0" /> +<glyph unicode=" " glyph-name="space" horiz-adv-x="223" /> +<glyph unicode="!" glyph-name="exclam" horiz-adv-x="273" d="M179 389L171 211H103L94 389V695H179V389ZM126 118H148Q165 118 172 111T180 86V32Q180 14 173 7T148 0H126Q109 0 102 7T95 32V86Q95 104 102 111T126 118Z" /> +<glyph unicode=""" glyph-name="quotedbl" horiz-adv-x="353" d="M134 475H75L70 690H140L134 475ZM278 475H220L214 690H283L278 475Z" /> +<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="685" d="M520 448L488 268H598L587 213H479L442 0H374L411 213H228L191 0H123L160 213H44L55 268H169L201 448H86L97 503H210L243 690H311L278 503H461L494 690H562L529 503H640L629 448H520ZM452 448H269L237 +268H420L452 448Z" /> +<glyph unicode="$" glyph-name="dollar" horiz-adv-x="564" d="M315 385L373 370Q450 351 481 305T513 176Q513 62 462 25T281 -12H279L270 -127H224L233 -11Q143 -7 67 7L73 74Q105 73 142 72T201 71T240 70L258 312L194 328Q121 346 89 392T57 520Q57 580 69 +616T112 671T180 696T281 702H293L300 799H345L338 700Q421 697 486 682L480 618Q399 622 332 623L315 385ZM287 623H285Q241 623 220 621T179 609T153 578T146 518Q146 463 165 440T234 405L270 396L287 623ZM303 300L285 70Q366 70 394 90T423 178Q423 235 404 +257T336 292L303 300Z" /> +<glyph unicode="%" glyph-name="percent" horiz-adv-x="894" d="M207 703Q296 703 332 656T368 498T332 340T207 293Q119 293 83 340T47 498T83 656T207 703ZM252 0H192L639 690H699L252 0ZM261 649T207 649T133 616T112 498T132 381T207 347T281 380T302 498Q302 +582 282 615ZM598 400T686 400T810 353T846 196Q846 85 810 38T686 -9T562 38T526 196Q526 306 562 353ZM739 346T685 346T611 314T591 196Q590 111 610 78T685 44T760 77T781 196Q781 280 760 313Z" /> +<glyph unicode="&" glyph-name="ampersand" horiz-adv-x="772" d="M715 66L725 4Q680 -9 619 -9Q515 -9 499 77Q455 30 402 10T269 -10Q159 -10 113 31T67 175Q67 258 98 304T202 356V360Q141 366 114 405T87 521Q87 581 101 616T150 670T228 694T348 700Q440 +700 507 690L497 625Q457 628 345 628Q246 628 211 606T176 509Q176 440 205 416T310 391H498L506 519H577V391H702V324H577V131Q577 96 591 81T641 66H715ZM497 324H306Q223 324 191 296T159 189Q159 119 187 93T289 66Q421 67 497 145V324Z" /> +<glyph unicode="'" glyph-name="quotesingle" horiz-adv-x="209" d="M134 475H75L70 690H140L134 475Z" /> +<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="359" d="M317 790L328 749Q229 701 183 594T137 313Q137 -26 328 -124L317 -165Q181 -113 118 3T54 312Q54 506 117 622T317 790Z" /> +<glyph unicode=")" glyph-name="parenright" horiz-adv-x="359" d="M32 749L42 790Q178 738 242 623T306 312Q306 119 242 3T42 -165L32 -124Q130 -73 176 35T222 313Q222 486 176 593T32 749Z" /> +<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="450" d="M243 530L343 401L302 371L225 494L148 372L106 402L206 530L199 691H251L243 530ZM189 555V533L178 519L54 552L71 601L189 555ZM397 551L272 519L260 533V555L380 601L397 551Z" /> +<glyph unicode="+" glyph-name="plus" horiz-adv-x="551" d="M494 267H307V90H242V267H56V331H242V507H308V331H494V267Z" /> +<glyph unicode="," glyph-name="comma" horiz-adv-x="228" d="M102 118H127Q145 118 151 111T158 86V22Q157 -63 123 -132L83 -120Q93 -61 93 0Q69 0 69 28V86Q70 118 102 118Z" /> +<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="449" d="M377 220H72V285H377V220Z" /> +<glyph unicode="." glyph-name="period" horiz-adv-x="229" d="M100 118H128Q146 118 153 111T160 86V32Q160 14 153 7T128 0H100Q83 0 76 7T68 32V86Q68 104 75 111T100 118Z" /> +<glyph unicode="/" glyph-name="slash" horiz-adv-x="517" d="M97 -66H27L420 690H490L97 -66Z" /> +<glyph unicode="0" glyph-name="zero" horiz-adv-x="603" d="M170 703T301 703T485 620T539 345T486 70T301 -13T117 70T64 345T117 620ZM386 626T301 626T183 563T150 345T183 127T301 64T419 127T453 345T420 563Z" /> +<glyph unicode="1" glyph-name="one" horiz-adv-x="398" d="M286 0H198V547Q198 582 203 607L34 554L22 619L198 690H286V0Z" /> +<glyph unicode="2" glyph-name="two" horiz-adv-x="562" d="M67 608L61 676Q172 702 271 702Q380 702 431 672T483 553Q483 488 456 434T360 302L162 81Q209 85 274 85H508V0H55V55Q55 79 68 93L268 319Q336 392 366 446T394 549Q393 596 363 610T265 624Q165 +624 67 608Z" /> +<glyph unicode="3" glyph-name="three" horiz-adv-x="556" d="M71 617L64 685Q166 703 258 703Q374 703 422 668T471 543Q471 389 370 369V365Q434 354 461 311T490 192Q492 85 442 36T271 -13Q178 -13 52 5L58 76Q171 66 249 66Q333 66 368 96T403 201Q403 264 +375 296T266 328H138V397H266Q340 398 363 431T387 523Q386 586 357 605T246 625Q163 625 71 617Z" /> +<glyph unicode="4" glyph-name="four" horiz-adv-x="615" d="M571 178L482 169V0H399V169H113Q71 169 51 203T47 276L243 690H330L137 282Q129 262 136 252T162 241H399V444L414 558H482V241H571V178Z" /> +<glyph unicode="5" glyph-name="five" horiz-adv-x="536" d="M456 615H166L156 427L230 421Q368 411 424 364T480 207Q480 171 475 142T456 83T417 33T353 1T257 -12Q161 -12 52 13L62 84Q163 66 237 66Q329 66 360 99T394 207Q395 239 391 261T372 299T344 323T297 +338T237 346T158 352L112 355Q97 357 88 367T79 394L95 690H460L456 615Z" /> +<glyph unicode="6" glyph-name="six" horiz-adv-x="572" d="M473 687L465 623Q421 627 334 627Q283 627 253 618T199 583T166 508T154 378Q190 418 229 434T328 450Q436 450 476 400T517 223Q517 165 509 126T479 53T412 4T299 -12Q239 -12 200 -1T133 32T92 96T72 +192T66 328Q66 425 77 491T107 599T161 663T235 694T334 702Q417 702 473 687ZM300 63Q383 63 408 100T433 223Q433 310 407 344T305 379Q262 379 229 366T153 315Q153 251 155 214T166 144T190 96T233 72T300 63Z" /> +<glyph unicode="7" glyph-name="seven" horiz-adv-x="512" d="M39 690H429Q460 690 472 674T475 629L260 0H172L366 564Q375 591 387 615H43L39 690Z" /> +<glyph unicode="8" glyph-name="eight" horiz-adv-x="607" d="M183 356V360Q84 371 84 518Q84 616 130 658T304 700T477 659T523 518Q523 371 425 360V356Q487 350 512 304T538 172Q538 74 490 33T304 -10Q169 -11 119 31T69 172Q69 258 95 304T183 356ZM389 629T305 +629T193 604T165 510Q165 439 192 416T306 393T417 416T443 510Q443 579 416 604ZM306 323Q212 322 182 296T152 190Q152 119 183 93T305 66Q394 66 424 92T454 190Q454 272 426 297T306 323Z" /> +<glyph unicode="9" glyph-name="nine" horiz-adv-x="572" d="M87 3L95 68Q143 64 236 64Q305 64 341 84T396 158T418 315Q381 272 342 256T242 240Q55 240 55 465Q55 588 105 645T276 702Q327 702 362 695T424 670T465 628T488 562T500 472T503 353Q503 237 489 +166T441 55T360 2T236 -12Q149 -12 87 3ZM265 310Q309 310 342 324T418 376Q418 430 417 462T410 527T396 575T371 604T332 622T275 627Q194 627 166 588T139 465Q138 386 166 348T265 310Z" /> +<glyph unicode=":" glyph-name="colon" horiz-adv-x="236" d="M101 440H129Q146 440 153 433T161 409V354Q161 336 154 329T129 322H101Q84 322 77 329T69 354V409Q69 426 76 433T101 440ZM101 118H129Q146 118 153 111T161 86V32Q161 14 154 7T129 0H101Q84 0 +77 7T69 32V86Q69 104 76 111T101 118Z" /> +<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="237" d="M105 440H134Q151 440 158 433T165 409V354Q165 336 158 329T134 322H105Q88 322 81 329T74 354V409Q74 426 81 433T105 440ZM107 118H132Q150 118 156 111T163 86V22Q162 -62 129 -132L88 -120Q98 +-61 98 0Q74 0 74 28V86Q75 104 82 111T107 118Z" /> +<glyph unicode="<" glyph-name="less" horiz-adv-x="530" d="M459 438L127 298L459 161V93L53 264V332L459 506V438Z" /> +<glyph unicode="=" glyph-name="equal" horiz-adv-x="585" d="M512 367H74V430H512V367ZM512 155H74V219H512V155Z" /> +<glyph unicode=">" glyph-name="greater" horiz-adv-x="530" d="M477 332V264L71 93V161L403 298L71 438V506L477 332Z" /> +<glyph unicode="?" glyph-name="question" horiz-adv-x="505" d="M45 630L40 691Q47 692 71 696T102 702T130 706T166 709T206 711T260 712Q462 712 462 557Q462 522 449 492T416 440T373 393T330 344T296 286T280 211H207Q206 262 222 305T263 376T311 430T353 +484T372 542Q374 592 343 616T242 640Q157 640 45 630ZM232 118H255Q272 118 279 111T286 86V32Q286 14 279 7T255 0H232Q215 0 208 7T201 32V86Q201 104 208 111T232 118Z" /> +<glyph unicode="@" glyph-name="at" horiz-adv-x="718" d="M352 585H495Q570 585 608 552T646 443V132H582L574 207Q543 175 488 150T375 124Q315 124 280 154T244 243V294Q244 343 273 370T359 397H566V440Q566 481 548 497T480 514H352Q303 514 277 513T225 +502T189 480T169 436T158 367T156 266Q156 217 157 185T163 124T174 79T194 49T222 29T263 19T316 15T385 14H643V-50Q507 -58 386 -58Q311 -59 265 -56T181 -39T125 -6T94 54T78 141T75 266Q75 342 78 387T92 472T119 530T170 563T244 580T352 585ZM566 345L388 +341Q353 340 339 327T324 284V258Q324 192 390 192Q434 192 483 209T566 258V345Z" /> +<glyph unicode="A" glyph-name="A" horiz-adv-x="622" d="M453 216H169L101 0H10L232 666Q238 690 265 690H357Q384 690 390 666L612 0H521L453 216ZM429 292L342 566Q333 592 325 622H297L280 566L193 292H429Z" /> +<glyph unicode="B" glyph-name="B" horiz-adv-x="620" d="M424 360V356Q499 349 530 304T562 172Q562 68 513 30T342 -8Q176 -8 87 0V690Q166 698 311 698Q440 698 490 661T541 518Q541 443 513 405T424 360ZM173 391H321Q398 392 427 416T456 508Q456 577 425 +600T307 623H173V391ZM173 324V68Q214 67 328 67Q412 67 442 91T473 187Q473 266 441 294T322 324H173Z" /> +<glyph unicode="C" glyph-name="C" horiz-adv-x="570" d="M525 77L534 11Q451 -12 332 -12Q183 -12 122 68T61 345T122 622T332 702Q439 702 520 682L511 615Q421 624 332 624Q231 624 193 564T154 345T192 127T332 66Q448 66 525 77Z" /> +<glyph unicode="D" glyph-name="D" horiz-adv-x="664" d="M87 0V690Q217 699 333 699Q482 699 542 622T602 345T542 69T333 -9Q217 -9 87 0ZM175 621V70Q265 68 333 68Q432 68 471 128T510 345T471 562T333 623Q269 623 175 621Z" /> +<glyph unicode="E" glyph-name="E" horiz-adv-x="560" d="M506 73L510 5Q418 -1 214 -1Q153 -1 118 31T81 119V571Q82 626 117 658T214 691Q418 691 510 685L506 616H229Q169 616 169 550V400H467V329H169V140Q169 73 229 73H506Z" /> +<glyph unicode="F" glyph-name="F" horiz-adv-x="539" d="M499 616H240Q205 616 189 601T173 550V390H461V319H173V0H85V567Q85 626 121 658T218 691Q415 691 504 684L499 616Z" /> +<glyph unicode="G" glyph-name="G" horiz-adv-x="628" d="M496 0L486 73Q398 -13 280 -13Q165 -13 114 73T62 347Q62 550 125 626T350 703Q459 703 542 682L533 616Q449 624 355 624Q276 624 236 604T175 522T155 341Q155 188 188 126T304 64Q382 64 474 131V399H560V0H496Z" +/> +<glyph unicode="H" glyph-name="H" horiz-adv-x="668" d="M581 690V0H493V331H175V0H87V690H175V407H493V690H581Z" /> +<glyph unicode="I" glyph-name="I" horiz-adv-x="262" d="M175 0H87V690H175V0Z" /> +<glyph unicode="J" glyph-name="J" horiz-adv-x="340" d="M256 690V145Q256 69 222 30T122 -9Q66 -9 30 4L40 66H90Q168 66 168 142V690H256Z" /> +<glyph unicode="K" glyph-name="K" horiz-adv-x="591" d="M253 324H168Q174 286 174 251V0H87V690H174V474Q174 434 168 395H252L462 690H558L357 404Q345 386 319 360V358Q347 331 362 310L572 0H473L253 324Z" /> +<glyph unicode="L" glyph-name="L" horiz-adv-x="514" d="M172 690V140Q172 74 239 74H488L492 6Q405 -1 225 -1Q85 -1 85 129V690H172Z" /> +<glyph unicode="M" glyph-name="M" horiz-adv-x="877" d="M640 690H739Q775 690 775 653L804 0H716L691 617H670L516 108Q508 78 478 78H399Q368 78 359 108L205 617H185L161 0H73L100 653Q102 690 137 690H237Q265 690 274 660L403 239Q409 221 418 186T429 146H447Q450 +157 458 189T473 241L602 660Q610 690 640 690Z" /> +<glyph unicode="N" glyph-name="N" horiz-adv-x="705" d="M618 690V35Q618 0 584 0H498Q471 0 459 28L226 517Q192 591 187 608H171Q175 568 175 517V0H87V655Q87 690 122 690H205Q232 690 244 662L470 185Q495 136 517 85H534Q531 139 531 190V690H618Z" /> +<glyph unicode="O" glyph-name="O" horiz-adv-x="668" d="M182 703T334 703T546 625T606 345T546 66T334 -13T122 65T61 345T121 624ZM436 624T334 624T193 564T154 345T193 127T334 66T475 126T514 345T475 563Z" /> +<glyph unicode="P" glyph-name="P" horiz-adv-x="590" d="M87 0V690Q171 699 324 699Q450 699 498 654T546 483T500 313T334 267Q252 267 175 276V0H87ZM175 343H323Q400 344 428 372T457 483T428 594T323 623Q214 623 175 622V343Z" /> +<glyph unicode="Q" glyph-name="Q" horiz-adv-x="669" d="M183 703T335 703T547 625T607 345T547 66T335 -13T123 65T62 345T122 624ZM335 624Q233 624 194 564T155 345T194 127T335 66Q436 66 475 126T515 345T476 563T335 624ZM269 -96L294 -43Q404 -91 559 +-113L531 -201Q401 -175 269 -96Z" /> +<glyph unicode="R" glyph-name="R" horiz-adv-x="618" d="M573 0H479L418 216Q405 255 383 271T326 288T241 288T174 289V0H87V690Q171 699 325 699Q448 699 498 657T548 500Q548 415 519 373T421 322V317Q449 310 472 285T506 218L573 0ZM174 364H323Q401 365 +430 392T459 495Q459 570 430 596T323 623Q213 623 174 622V364Z" /> +<glyph unicode="S" glyph-name="S" horiz-adv-x="561" d="M334 292L191 328Q118 346 87 392T55 520Q55 580 67 616T110 671T178 696T279 702Q401 700 484 682L478 618Q381 623 283 623Q239 623 218 621T177 609T151 578T144 518Q144 463 163 440T231 405L371 370Q448 +351 479 305T510 176Q510 62 459 25T279 -12Q170 -12 65 7L71 72Q239 66 282 67Q364 67 392 88T421 178Q421 235 402 257T334 292Z" /> +<glyph unicode="T" glyph-name="T" horiz-adv-x="581" d="M557 612H334V0H246V612H24V690H557V612Z" /> +<glyph unicode="U" glyph-name="U" horiz-adv-x="666" d="M584 690V264Q584 113 528 50T337 -13Q197 -13 140 50T82 264V690H170V264Q170 153 206 110T333 66Q423 66 459 109T496 264V690H584Z" /> +<glyph unicode="V" glyph-name="V" horiz-adv-x="609" d="M592 690L383 25Q374 0 349 0H260Q233 0 226 25L17 690H108L271 143Q285 93 291 68H318Q328 109 339 144L501 690H592Z" /> +<glyph unicode="W" glyph-name="W" horiz-adv-x="948" d="M917 690L777 26Q770 0 742 0H642Q613 0 608 27L500 546Q494 572 484 624H463L448 546L341 27Q334 0 306 0H205Q192 0 183 7T171 26L31 690H124L232 152Q234 143 246 67H269Q277 114 285 152L392 661Q397 +690 426 690H522Q549 690 556 661L663 152Q673 103 677 67H702Q711 127 715 151L824 690H917Z" /> +<glyph unicode="X" glyph-name="X" horiz-adv-x="611" d="M318 324H292L121 0H25L219 357L38 690H133L291 392H320L478 690H573L391 357L586 0H490L318 324Z" /> +<glyph unicode="Y" glyph-name="Y" horiz-adv-x="569" d="M328 242V0H240V243L11 690H105L250 399Q262 375 281 321H288Q304 365 319 398L464 690H557L328 242Z" /> +<glyph unicode="Z" glyph-name="Z" horiz-adv-x="566" d="M519 75V0H48V75L416 615H54V690H512V615L146 75H519Z" /> +<glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="329" d="M288 712H186Q172 712 172 696V-93Q172 -109 186 -109H288V-165H145Q91 -165 91 -111V714Q91 738 106 753T145 768H288V712Z" /> +<glyph unicode="\" glyph-name="backslash" horiz-adv-x="518" d="M491 -66H420L27 690H98L491 -66Z" /> +<glyph unicode="]" glyph-name="bracketright" horiz-adv-x="329" d="M41 768H183Q207 768 222 753T237 714V-111Q237 -135 222 -150T183 -165H41V-109H142Q157 -109 157 -93V696Q157 712 142 712H41V768Z" /> +<glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="426" d="M396 390L362 368L218 542H210L65 368L30 390L183 600H244L396 390Z" /> +<glyph unicode="_" glyph-name="underscore" horiz-adv-x="578" d="M508 -65H70V0H508V-65Z" /> +<glyph unicode="`" glyph-name="grave" horiz-adv-x="315" d="M250 577L221 538L29 658L77 723L250 577Z" /> +<glyph unicode="a" glyph-name="a" horiz-adv-x="549" d="M81 414L73 477Q207 499 308 499Q393 499 434 464T475 343V0H408L398 80Q363 45 311 18T197 -9Q130 -9 91 26T51 127V180Q51 237 86 268T186 300H389V343Q389 389 368 408T290 427Q218 427 81 414ZM138 +168V137Q138 99 156 82T214 64Q252 63 300 82T389 137V235H201Q167 234 153 217T138 168Z" /> +<glyph unicode="b" glyph-name="b" horiz-adv-x="570" d="M161 700V518Q161 448 152 410Q239 499 340 499Q431 499 473 440T516 245Q516 113 468 51T300 -12Q175 -12 76 23V700H161ZM161 353V77Q228 58 298 60Q369 61 398 101T428 245Q427 348 403 386T310 425Q275 +425 243 408T161 353Z" /> +<glyph unicode="c" glyph-name="c" horiz-adv-x="489" d="M443 70L452 13Q380 -12 285 -12Q159 -12 107 45T54 244T106 442T286 499Q382 499 443 476L432 421Q366 427 300 427Q212 427 178 388T144 244Q144 138 178 99T300 60Q380 60 443 70Z" /> +<glyph unicode="d" glyph-name="d" horiz-adv-x="573" d="M494 700V0H428L420 70Q327 -12 227 -12Q137 -12 97 51T56 245Q56 384 100 441T240 499Q335 499 413 454Q409 498 409 550V700H494ZM409 129V398Q313 425 260 425Q195 425 169 388T143 246T168 102T255 +62Q293 62 324 76T409 129Z" /> +<glyph unicode="e" glyph-name="e" horiz-adv-x="537" d="M371 202H144Q151 118 185 89T298 60Q381 60 467 72L476 15Q411 -12 287 -12Q161 -12 108 46T54 245Q54 386 106 442T278 499Q387 499 437 460T487 340Q489 202 371 202ZM143 268H349Q402 268 402 340Q401 +387 374 407T282 427Q205 427 175 394T143 268Z" /> +<glyph unicode="f" glyph-name="f" horiz-adv-x="380" d="M388 647H288Q240 647 221 629T201 565V487H357V420H201V0H116V420H28V482L116 486V574Q116 645 149 681T258 717Q342 717 395 710L388 647Z" /> +<glyph unicode="g" glyph-name="g" horiz-adv-x="558" d="M531 440L459 434Q479 401 479 344Q479 262 432 226T270 189Q214 189 169 199Q150 176 158 149T203 115L385 86Q453 76 480 44T508 -51Q508 -136 458 -169T276 -202Q144 -202 93 -170T41 -54Q41 -11 59 +15T120 64Q83 93 86 141T124 216Q62 249 62 343Q62 427 108 463T271 499Q340 499 384 487H536L531 440ZM198 254T270 254T371 274T400 344T372 413T270 434Q198 434 169 414T140 344T169 275ZM341 23L175 46Q124 7 124 -47Q124 -98 154 -114T275 -130Q364 -130 +394 -114T425 -47Q425 -11 410 2T341 23Z" /> +<glyph unicode="h" glyph-name="h" horiz-adv-x="581" d="M164 700V507Q164 451 158 412Q276 499 374 499Q506 499 506 365V0H420V341Q420 389 405 408T351 427Q310 427 269 409T163 351V0H78V700H164Z" /> +<glyph unicode="i" glyph-name="i" horiz-adv-x="248" d="M104 694H144Q170 694 170 668V611Q170 585 144 585H104Q78 585 78 611V668Q78 694 104 694ZM166 0H82V487H166V0Z" /> +<glyph unicode="j" glyph-name="j" horiz-adv-x="250" d="M106 694H146Q171 694 171 668V611Q171 585 146 585H106Q80 585 80 611V668Q80 694 106 694ZM168 487V-12Q168 -70 143 -120T74 -203L27 -166Q83 -97 83 -12V487H168Z" /> +<glyph unicode="k" glyph-name="k" horiz-adv-x="509" d="M224 244H158Q163 199 163 166V0H78V700H164V389Q164 340 159 306H223L377 487H476L323 308Q308 287 289 275V273Q309 258 323 234L492 0H393L224 244Z" /> +<glyph unicode="l" glyph-name="l" horiz-adv-x="297" d="M164 700V134Q163 102 180 86T230 69H277L287 4Q260 -9 198 -9Q143 -9 111 23T79 115V700H164Z" /> +<glyph unicode="m" glyph-name="m" horiz-adv-x="876" d="M148 487L153 410Q256 499 352 499Q454 499 475 413Q574 499 671 499Q734 499 767 465T801 365V0H717V341Q716 386 699 406T641 427Q606 427 574 411T481 351V0H399V341Q399 387 381 407T323 427Q288 427 +256 411T163 352V0H78V487H148Z" /> +<glyph unicode="n" glyph-name="n" horiz-adv-x="581" d="M150 487L156 410Q274 499 374 499Q506 499 506 365V0H421V341Q421 389 405 408T351 427Q311 427 271 409T163 350V0H78V487H150Z" /> +<glyph unicode="o" glyph-name="o" horiz-adv-x="568" d="M284 499Q410 499 461 441T513 243T462 45T284 -13Q159 -13 107 45T55 243T107 441T284 499ZM364 427T284 427T174 388T144 243T174 98T284 59T394 98T425 243T395 388Z" /> +<glyph unicode="p" glyph-name="p" horiz-adv-x="580" d="M148 487L155 409Q194 451 249 475T357 499Q444 499 484 435T524 241Q524 103 480 46T340 -12T160 38Q163 4 163 -60V-201H78V487H148ZM163 350V92Q265 62 319 62Q385 62 411 99T437 241Q437 343 413 384T329 +425Q291 425 254 408T163 350Z" /> +<glyph unicode="q" glyph-name="q" horiz-adv-x="570" d="M494 -201H408V-34Q408 29 416 66Q321 -13 222 -13Q137 -13 96 48T55 242Q55 375 103 437T274 499Q394 499 494 465V-201ZM409 128V410Q341 429 273 427Q199 425 171 386T142 236Q142 143 165 103T250 +62Q290 62 324 77T409 128Z" /> +<glyph unicode="r" glyph-name="r" horiz-adv-x="401" d="M383 499L373 419H345Q308 419 269 405T163 357V0H78V487H144L153 410Q266 499 361 499H383Z" /> +<glyph unicode="s" glyph-name="s" horiz-adv-x="508" d="M300 197L160 229Q100 243 75 274T50 365Q50 446 92 473T240 499Q357 497 445 484L438 422Q286 427 253 427Q179 428 156 418T133 365Q133 330 148 317T204 295L346 263Q406 248 432 219T459 129Q459 44 +412 17T251 -11Q149 -11 60 3L66 65Q151 60 234 61Q319 61 348 74T377 129Q377 162 360 174T300 197Z" /> +<glyph unicode="t" glyph-name="t" horiz-adv-x="381" d="M200 420V134Q200 99 215 84T266 69H340L350 4Q304 -9 240 -9Q179 -9 147 25T115 123V420H27V482L115 486V631H200V487H355V420H200Z" /> +<glyph unicode="u" glyph-name="u" horiz-adv-x="570" d="M492 487V0H424L418 70Q308 -13 208 -13Q75 -13 75 121V487H160V145Q159 99 177 80T237 61Q274 61 312 77T407 131V487H492Z" /> +<glyph unicode="v" glyph-name="v" horiz-adv-x="530" d="M511 487L333 21Q325 0 303 0H226Q204 0 196 21L18 487H109L229 146Q239 118 258 61H271L301 146L421 487H511Z" /> +<glyph unicode="w" glyph-name="w" horiz-adv-x="824" d="M799 487L657 24Q651 0 624 0H547Q535 0 526 7T514 27L434 358Q431 372 426 397T418 435H406L389 358L310 27Q303 0 276 0H200Q173 0 167 24L25 487H113L214 128Q223 97 230 55H243L261 128L342 460Q347 +487 374 487H451Q476 487 483 459L563 128Q565 117 571 93T580 55H593Q594 60 599 86T610 128L711 487H799Z" /> +<glyph unicode="x" glyph-name="x" horiz-adv-x="528" d="M274 220H254L116 0H23L186 251L35 487H127L253 286H276L401 487H493L342 251L505 0H413L274 220Z" /> +<glyph unicode="y" glyph-name="y" horiz-adv-x="529" d="M510 487L315 -27Q251 -199 102 -206L94 -150Q151 -132 183 -101T236 -21L244 0H225Q201 0 195 22L18 487H109L238 124Q252 83 256 65H270Q278 85 291 124L418 487H510Z" /> +<glyph unicode="z" glyph-name="z" horiz-adv-x="510" d="M461 69V0H49V69L362 417H52V487H458V417L144 69H461Z" /> +<glyph unicode="{" glyph-name="braceleft" horiz-adv-x="319" d="M276 768V714Q225 714 206 695T186 629V450Q187 389 169 364T97 328Q152 311 170 287T190 210V-27Q190 -73 209 -92T280 -111V-165Q190 -172 149 -138T108 -32V224Q108 243 106 254T93 273T75 +285T46 297V359Q85 371 94 381T104 436V635Q104 707 145 741T276 768Z" /> +<glyph unicode="|" glyph-name="bar" horiz-adv-x="246" d="M154 -169H92V781H154V-169Z" /> +<glyph unicode="}" glyph-name="braceright" horiz-adv-x="320" d="M44 714V768Q134 775 175 741T216 635V436Q216 392 225 382T274 359V297Q246 287 237 282T220 263T212 224V-32Q212 -104 171 -138T40 -165V-111Q91 -111 110 -92T130 -27V210Q131 263 149 287T223 +328Q170 339 152 364T134 450V629Q134 676 115 695T44 714Z" /> +<glyph unicode="~" glyph-name="asciitilde" horiz-adv-x="525" d="M121 228H77Q70 288 92 319T154 348Q191 346 261 319T360 289Q386 286 395 298T405 343H449Q456 285 434 254T372 225Q329 227 260 254T166 284Q140 287 131 274T121 228Z" /> +<glyph unicode=" " glyph-name="uni00A0" horiz-adv-x="223" /> +<glyph unicode="¡" glyph-name="exclamdown" horiz-adv-x="256" d="M118 493H140Q157 493 164 486T171 461V406Q171 389 164 382T140 375H118Q101 375 94 382T86 406V461Q86 479 93 486T118 493ZM171 104V-196H86V104L94 282H162L171 104Z" /> +<glyph unicode="¢" glyph-name="cent" horiz-adv-x="508" d="M442 176L451 119Q379 94 292 94L283 0H238L247 95Q142 102 98 160T54 349Q54 489 106 547T285 605H291L299 690H345L337 603Q399 598 442 581L431 524Q378 530 330 532L299 165Q375 165 442 176ZM254 +168L284 532Q202 529 170 490T138 349Q138 257 164 217T254 168Z" /> +<glyph unicode="£" glyph-name="sterling" horiz-adv-x="569" d="M518 75V0H62V75Q149 119 140 263L136 338H56V388H133L125 521Q120 631 166 666T316 702Q394 702 495 692L490 622Q419 626 314 626Q253 626 231 603T211 520L219 388H431L429 338H222L227 +263Q230 192 214 149T155 72Q177 75 222 75H518Z" /> +<glyph unicode="¤" glyph-name="currency" horiz-adv-x="594" d="M488 123L415 195Q362 155 296 155Q231 155 178 195L106 123L66 163L138 235Q100 286 100 351Q100 418 140 471L69 542L106 580L177 508Q230 548 296 548Q364 548 416 507L488 580L526 542L453 +470Q492 419 492 351Q492 286 452 233L526 160L488 123ZM296 208Q355 207 397 249T439 352T397 454T296 497T195 455T152 352T194 250T296 208Z" /> +<glyph unicode="¥" glyph-name="yen" horiz-adv-x="618" d="M353 210H531V159H353V0H265V159H91V210H265V263L261 271H92L91 323H233L36 690H127L272 415Q280 401 292 370T306 337H313Q333 386 346 414L490 690H582L385 323H531V271H358L353 263V210Z" /> +<glyph unicode="¦" glyph-name="brokenbar" horiz-adv-x="248" d="M155 381H93V781H155V381ZM155 -169H93V231H155V-169Z" /> +<glyph unicode="§" glyph-name="section" horiz-adv-x="544" d="M336 322L163 421Q111 451 87 484T62 575Q62 651 109 677T260 703Q384 701 477 691L471 625Q397 630 282 630Q235 631 212 629T171 613T153 573Q152 540 168 520T219 480L381 389Q450 352 469 +294T467 154H405Q410 220 396 258T336 322ZM78 388H140Q135 321 149 285T209 222L382 124Q433 94 458 60T483 -32Q483 -66 474 -90T449 -128T406 -150T353 -160T286 -162Q176 -160 68 -150L75 -83Q171 -89 265 -90Q294 -90 308 -90T342 -86T370 -77T385 -59T392 +-29Q393 4 377 25T328 64L166 154Q96 191 77 248T78 388Z" /> +<glyph unicode="¨" glyph-name="dieresis" horiz-adv-x="411" d="M103 693H132Q155 693 155 669V614Q155 590 132 590H103Q80 590 80 614V669Q80 693 103 693ZM281 693H309Q333 693 333 669V614Q333 590 309 590H281Q257 590 257 614V669Q257 693 281 693Z" /> +<glyph unicode="©" glyph-name="copyright" horiz-adv-x="836" d="M418 703Q570 703 673 602T777 345T674 89T418 -13Q267 -13 163 89T59 345T163 601T418 703ZM548 657T418 657T197 568T106 345T197 123T418 33T639 122T730 345T639 568ZM562 191L568 142Q506 +127 423 127Q316 127 272 176T228 347Q228 469 272 518T423 568Q502 568 558 554L550 506Q486 509 422 509Q350 509 323 474T295 347T322 220T422 185Q513 185 562 191Z" /> +<glyph unicode="ª" glyph-name="ordfeminine" horiz-adv-x="441" d="M86 545L79 593Q191 607 254 607Q311 607 339 582T368 499V272H317L309 333Q242 266 162 266Q117 266 91 288T64 353V391Q64 429 88 450T157 472H304V500Q304 553 241 553Q190 553 86 545ZM127 +385V367Q127 321 182 321Q242 321 304 370V435L177 427Q127 424 127 385Z" /> +<glyph unicode="«" glyph-name="guillemotleft" horiz-adv-x="485" d="M249 429L123 251L250 69L206 39L44 241V261L205 459L249 429ZM431 429L305 251L432 69L387 39L226 241V261L386 459L431 429Z" /> +<glyph unicode="¬" glyph-name="logicalnot" horiz-adv-x="590" d="M512 330V132H446V265H74V330H512Z" /> +<glyph unicode="­" glyph-name="softhyphen" horiz-adv-x="448" d="M377 220H72V285H377V220Z" /> +<glyph unicode="®" glyph-name="registered" horiz-adv-x="553" d="M277 702Q369 702 434 637T499 480Q499 387 434 322T277 257Q184 257 119 322T54 480Q54 572 119 637T277 702ZM277 287Q356 287 412 343T468 480T412 616T277 673T142 617T85 480T141 344T277 +287ZM330 473V471Q359 467 369 433L399 351H357L329 431Q318 458 287 458H217V351H177V610Q211 613 286 613Q342 613 365 597T389 538Q389 508 376 493T330 473ZM217 487H285Q321 488 335 498T348 534Q349 562 336 571T285 581H217V487Z" /> +<glyph unicode="¯" glyph-name="overscore" horiz-adv-x="400" d="M339 609H61V672H339V609Z" /> +<glyph unicode="°" glyph-name="degree" horiz-adv-x="363" d="M182 703Q235 703 273 666T311 576T273 486T182 448T91 486T52 576T90 665T182 703ZM182 651Q150 651 128 630T106 576Q106 544 128 522T182 500Q213 500 235 522T257 576T235 629T182 651Z" /> +<glyph unicode="±" glyph-name="plusminus" horiz-adv-x="588" d="M513 391V327H326V193H261V327H75V391H261V524H327V391H513ZM75 134H513V70H75V134Z" /> +<glyph unicode="²" glyph-name="twosuperior" horiz-adv-x="435" d="M69 716L65 766Q139 781 206 781Q286 781 321 762T356 686Q356 624 274 542L147 418Q177 421 216 419H373V360H61V398Q61 415 72 426L201 551Q282 630 283 680Q284 708 265 716T202 724Q135 +724 69 716Z" /> +<glyph unicode="³" glyph-name="threesuperior" horiz-adv-x="417" d="M72 722L68 771Q139 782 200 782Q283 782 315 762T347 686Q347 592 272 581V579Q319 573 338 547T358 475Q360 410 326 381T208 352Q146 352 60 363L64 413Q123 408 192 408Q247 408 +268 424T290 483Q290 515 272 533T203 551H118V601H203Q252 602 267 620T283 670Q282 703 263 714T191 726Q113 726 72 722Z" /> +<glyph unicode="´" glyph-name="acute" horiz-adv-x="314" d="M276 658L84 538L55 577L227 723L276 658Z" /> +<glyph unicode="¶" glyph-name="paragraph" horiz-adv-x="593" d="M269 -210V201Q147 212 94 270T40 450Q40 588 110 645T346 702Q436 702 497 685V0H432V642Q362 646 334 646V-210H269Z" /> +<glyph unicode="·" glyph-name="middot" horiz-adv-x="236" d="M104 317H132Q149 317 156 310T164 285V230Q164 213 157 206T132 199H104Q87 199 80 206T72 230V285Q72 302 79 309T104 317Z" /> +<glyph unicode="¸" glyph-name="cedilla" horiz-adv-x="234" d="M81 -83L90 -43Q151 -37 176 -51T201 -108Q200 -171 153 -205T34 -229L47 -184Q88 -185 113 -166T140 -115Q141 -97 129 -91T81 -83Z" /> +<glyph unicode="¹" glyph-name="onesuperior" horiz-adv-x="294" d="M218 360H151V675Q151 701 154 714L43 685L34 731L151 774H218V360Z" /> +<glyph unicode="º" glyph-name="ordmasculine" horiz-adv-x="444" d="M132 607T222 607T348 569T385 435Q385 341 349 303T222 264T96 302T59 435Q59 530 95 568ZM276 554T222 554T147 529T126 435T146 343T222 318Q276 318 296 342T317 435Q317 504 297 529Z" /> +<glyph unicode="»" glyph-name="guillemotright" horiz-adv-x="485" d="M259 261V241L98 39L53 69L180 251L54 429L99 459L259 261ZM440 261V241L279 39L234 69L362 251L235 429L280 459L440 261Z" /> +<glyph unicode="¼" glyph-name="onequarter" horiz-adv-x="863" d="M155 276V591Q155 613 159 630L46 601L38 647L155 690H221V276H155ZM645 690L198 0H137L584 690H645ZM821 103L773 98V0H710V97H515Q488 97 476 114T476 162L603 414H667L545 172Q541 163 +546 157T562 150H710V267L722 335H773V150H821V103Z" /> +<glyph unicode="½" glyph-name="onehalf" horiz-adv-x="887" d="M221 276H155V591Q155 613 159 630L46 601L38 647L155 690H221V276ZM192 0H130L578 690H639L192 0ZM534 356L530 406Q604 421 670 421Q750 421 785 402T820 326Q820 264 738 182L611 58Q642 +61 680 59H837V0H526V38Q526 56 536 66L665 191Q747 271 748 320Q748 348 729 356T666 364Q599 364 534 356Z" /> +<glyph unicode="¾" glyph-name="threequarters" horiz-adv-x="954" d="M268 495V493Q315 487 334 461T355 389Q357 324 323 295T205 266Q142 266 56 277L60 327Q119 322 189 322Q243 322 265 338T287 397Q287 429 269 447T200 465L114 467V512L200 515Q248 +516 263 534T279 583Q279 616 260 628T187 640Q111 640 68 636L64 685Q130 695 197 695Q280 695 312 675T344 600Q344 506 268 495ZM746 690L299 0H238L685 690H746ZM912 103L861 98V0H799V97H606Q579 97 567 114T567 162L694 414H758L636 172Q632 163 637 157T654 +150H799V267L810 335H861V150H912V103Z" /> +<glyph unicode="¿" glyph-name="questiondown" horiz-adv-x="500" d="M250 499H271Q289 499 296 492T303 468V412Q303 395 296 388T271 381H250Q232 381 225 388T218 412V468Q218 485 225 492T250 499ZM223 288H296Q297 237 281 194T240 123T192 69T150 15T131 +-44Q129 -93 160 -116T261 -140Q358 -140 458 -131L463 -192Q456 -193 432 -197T401 -203T373 -207T337 -210T297 -212T243 -213Q41 -213 41 -58Q41 -17 59 18T103 80T156 134T202 201T223 288Z" /> +<glyph unicode="À" glyph-name="Agrave" horiz-adv-x="622" d="M332 728L140 848L189 914L361 767L332 728ZM453 216H169L101 0H10L232 666Q238 690 265 690H357Q384 690 390 666L612 0H521L453 216ZM429 292L342 566Q333 592 325 622H297L280 566L193 292H429Z" /> +<glyph unicode="Á" glyph-name="Aacute" horiz-adv-x="622" d="M275 728L246 767L418 914L467 848L275 728ZM453 216H169L101 0H10L232 666Q238 690 265 690H357Q384 690 390 666L612 0H521L453 216ZM429 292L342 566Q333 592 325 622H297L280 566L193 292H429Z" /> +<glyph unicode="Â" glyph-name="Acircumflex" horiz-adv-x="622" d="M177 732L149 769L280 896H342L474 769L444 732L315 830H307L177 732ZM453 216H169L101 0H10L232 666Q238 690 265 690H357Q384 690 390 666L612 0H521L453 216ZM429 292L342 566Q333 592 +325 622H297L280 566L193 292H429Z" /> +<glyph unicode="Ã" glyph-name="Atilde" horiz-adv-x="622" d="M193 765H153Q147 823 169 853T231 880Q263 877 308 852T381 824T418 833T429 875H469Q475 819 453 790T391 763Q354 766 308 791T241 820Q213 823 203 810T193 765ZM453 216H169L101 0H10L232 +666Q238 690 265 690H357Q384 690 390 666L612 0H521L453 216ZM429 292L342 566Q333 592 325 622H297L280 566L193 292H429Z" /> +<glyph unicode="Ä" glyph-name="Adieresis" horiz-adv-x="622" d="M237 767H208Q185 767 185 791V846Q185 870 208 870H237Q260 870 260 846V791Q260 767 237 767ZM414 767H386Q362 767 362 791V846Q362 870 386 870H414Q438 870 438 846V791Q438 767 414 +767ZM453 216H169L101 0H10L232 666Q238 690 265 690H357Q384 690 390 666L612 0H521L453 216ZM429 292L342 566Q333 592 325 622H297L280 566L193 292H429Z" /> +<glyph unicode="Å" glyph-name="Aring" horiz-adv-x="622" d="M312 715Q267 715 236 745T205 819T236 893T312 924T387 894T419 819T388 745T312 715ZM312 881Q286 881 269 864T252 819Q252 792 269 775T312 758Q337 758 354 775T371 819T354 863T312 881ZM453 +216H169L101 0H10L232 666Q238 690 265 690H357Q384 690 390 666L612 0H521L453 216ZM429 292L342 566Q333 592 325 622H297L280 566L193 292H429Z" /> +<glyph unicode="Æ" glyph-name="AE" horiz-adv-x="913" d="M859 74L862 5Q767 -1 569 -1Q517 -1 485 32T453 119V225H222L91 0H-1L342 582Q377 645 425 668T567 691Q756 691 862 685L859 615H604Q573 615 555 597T536 546V400H819V328H536V141Q536 74 604 +74H859ZM453 298V558Q453 579 462 600T485 630H477Q448 614 419 567L264 298H453Z" /> +<glyph unicode="Ç" glyph-name="Ccedilla" horiz-adv-x="570" d="M525 77L534 11Q451 -12 332 -12Q183 -12 122 68T61 345T122 622T332 702Q439 702 520 682L511 615Q421 624 332 624Q231 624 193 564T154 345T192 127T332 66Q448 66 525 77ZM273 -95L282 +-55Q343 -49 368 -63T393 -120Q392 -183 345 -217T226 -241L239 -196Q279 -197 304 -178T332 -127Q332 -109 320 -103T273 -95Z" /> +<glyph unicode="È" glyph-name="Egrave" horiz-adv-x="560" d="M330 749L139 869L187 934L360 788L330 749ZM506 73L510 5Q418 -1 214 -1Q153 -1 118 31T81 119V571Q82 626 117 658T214 691Q418 691 510 685L506 616H229Q169 616 169 550V400H467V329H169V140Q169 +73 229 73H506Z" /> +<glyph unicode="É" glyph-name="Eacute" horiz-adv-x="560" d="M274 749L244 788L417 934L465 869L274 749ZM506 73L510 5Q418 -1 214 -1Q153 -1 118 31T81 119V571Q82 626 117 658T214 691Q418 691 510 685L506 616H229Q169 616 169 550V400H467V329H169V140Q169 +73 229 73H506Z" /> +<glyph unicode="Ê" glyph-name="Ecircumflex" horiz-adv-x="560" d="M176 753L147 790L279 917H340L473 790L443 753L314 851H306L176 753ZM506 73L510 5Q418 -1 214 -1Q153 -1 118 31T81 119V571Q82 626 117 658T214 691Q418 691 510 685L506 616H229Q169 +616 169 550V400H467V329H169V140Q169 73 229 73H506Z" /> +<glyph unicode="Ë" glyph-name="Edieresis" horiz-adv-x="560" d="M236 788H207Q183 788 183 812V866Q183 890 207 890H236Q259 890 259 866V812Q259 788 236 788ZM413 788H384Q360 788 360 812V866Q360 890 384 890H413Q436 890 436 866V812Q436 788 413 +788ZM506 73L510 5Q418 -1 214 -1Q153 -1 118 31T81 119V571Q82 626 117 658T214 691Q418 691 510 685L506 616H229Q169 616 169 550V400H467V329H169V140Q169 73 229 73H506Z" /> +<glyph unicode="Ì" glyph-name="Igrave" horiz-adv-x="262" d="M181 767L151 728L-40 848L8 914L181 767ZM175 0H87V690H175V0Z" /> +<glyph unicode="Í" glyph-name="Iacute" horiz-adv-x="262" d="M287 848L95 728L66 767L238 914L287 848ZM175 0H87V690H175V0Z" /> +<glyph unicode="Î" glyph-name="Icircumflex" horiz-adv-x="262" d="M294 769L264 732L135 830H127L-3 732L-32 769L100 896H161L294 769ZM175 0H87V690H175V0Z" /> +<glyph unicode="Ï" glyph-name="Idieresis" horiz-adv-x="262" d="M28 870H57Q80 870 80 846V791Q80 767 57 767H28Q4 767 4 791V846Q4 870 28 870ZM205 870H234Q257 870 257 846V791Q257 767 234 767H205Q181 767 181 791V846Q181 870 205 870ZM175 0H87V690H175V0Z" +/> +<glyph unicode="Ð" glyph-name="Eth" horiz-adv-x="669" d="M91 391V690Q221 699 337 699Q486 699 546 622T606 345T546 69T337 -9Q222 -9 91 0V342H22V391H91ZM179 342V70Q271 68 337 68Q437 68 475 128T514 345T476 562T337 623Q273 623 179 621V391H331V342H179Z" /> +<glyph unicode="Ñ" glyph-name="Ntilde" horiz-adv-x="705" d="M242 765H203Q197 823 219 853T281 880Q313 877 358 852T430 824Q458 821 468 833T479 875H518Q525 819 503 790T440 763Q403 766 357 791T290 820Q263 823 253 810T242 765ZM618 690V35Q618 +0 584 0H498Q471 0 459 28L226 517Q192 591 187 608H171Q175 568 175 517V0H87V655Q87 690 122 690H205Q232 690 244 662L470 185Q495 136 517 85H534Q531 139 531 190V690H618Z" /> +<glyph unicode="Ò" glyph-name="Ograve" horiz-adv-x="668" d="M383 767L354 728L162 848L211 914L383 767ZM182 703T334 703T546 625T606 345T546 66T334 -13T122 65T61 345T121 624ZM436 624T334 624T193 564T154 345T193 127T334 66T475 126T514 345T475 563Z" /> +<glyph unicode="Ó" glyph-name="Oacute" horiz-adv-x="668" d="M489 848L297 728L268 767L440 914L489 848ZM182 703T334 703T546 625T606 345T546 66T334 -13T122 65T61 345T121 624ZM436 624T334 624T193 564T154 345T193 127T334 66T475 126T514 345T475 563Z" /> +<glyph unicode="Ô" glyph-name="Ocircumflex" horiz-adv-x="668" d="M496 769L466 732L337 830H329L199 732L171 769L302 896H364L496 769ZM182 703T334 703T546 625T606 345T546 66T334 -13T122 65T61 345T121 624ZM436 624T334 624T193 564T154 345T193 +127T334 66T475 126T514 345T475 563Z" /> +<glyph unicode="Õ" glyph-name="Otilde" horiz-adv-x="668" d="M215 765H175Q169 823 191 853T253 880Q285 877 330 852T403 824T440 833T451 875H491Q497 819 475 790T413 763Q376 766 330 791T263 820Q235 823 225 810T215 765ZM182 703T334 703T546 625T606 +345T546 66T334 -13T122 65T61 345T121 624ZM436 624T334 624T193 564T154 345T193 127T334 66T475 126T514 345T475 563Z" /> +<glyph unicode="Ö" glyph-name="Odieresis" horiz-adv-x="668" d="M230 870H259Q282 870 282 846V791Q282 767 259 767H230Q207 767 207 791V846Q207 870 230 870ZM408 870H436Q460 870 460 846V791Q460 767 436 767H408Q384 767 384 791V846Q384 870 408 +870ZM182 703T334 703T546 625T606 345T546 66T334 -13T122 65T61 345T121 624ZM436 624T334 624T193 564T154 345T193 127T334 66T475 126T514 345T475 563Z" /> +<glyph unicode="×" glyph-name="multiply" horiz-adv-x="484" d="M46 155L88 104L444 425L402 475L46 155Z" /> +<glyph unicode="Ø" glyph-name="Oslash" horiz-adv-x="668" d="M539 731L506 662Q559 626 582 550T606 345Q606 144 546 66T334 -13Q250 -13 200 8L169 -58L124 -38L156 32Q106 69 84 144T61 345Q61 546 121 624T334 703Q411 703 462 684L493 750L539 731ZM198 +120L426 607Q392 624 334 624Q232 624 193 564T154 345Q154 179 198 120ZM466 576L236 86Q273 66 334 66Q436 66 475 126T514 345Q514 518 466 576Z" /> +<glyph unicode="Ù" glyph-name="Ugrave" horiz-adv-x="666" d="M384 767L355 728L163 848L212 914L384 767ZM584 690V264Q584 113 528 50T337 -13Q197 -13 140 50T82 264V690H170V264Q170 153 206 110T333 66Q423 66 459 109T496 264V690H584Z" /> +<glyph unicode="Ú" glyph-name="Uacute" horiz-adv-x="666" d="M490 848L298 728L269 767L441 914L490 848ZM584 690V264Q584 113 528 50T337 -13Q197 -13 140 50T82 264V690H170V264Q170 153 206 110T333 66Q423 66 459 109T496 264V690H584Z" /> +<glyph unicode="Û" glyph-name="Ucircumflex" horiz-adv-x="666" d="M497 769L467 732L338 830H330L200 732L171 769L303 896H365L497 769ZM584 690V264Q584 113 528 50T337 -13Q197 -13 140 50T82 264V690H170V264Q170 153 206 110T333 66Q423 66 459 109T496 +264V690H584Z" /> +<glyph unicode="Ü" glyph-name="Udieresis" horiz-adv-x="666" d="M231 870H260Q283 870 283 846V791Q283 767 260 767H231Q208 767 208 791V846Q208 870 231 870ZM409 870H437Q461 870 461 846V791Q461 767 437 767H409Q385 767 385 791V846Q385 870 409 +870ZM584 690V264Q584 113 528 50T337 -13Q197 -13 140 50T82 264V690H170V264Q170 153 206 110T333 66Q423 66 459 109T496 264V690H584Z" /> +<glyph unicode="Ý" glyph-name="Yacute" horiz-adv-x="569" d="M248 728L219 767L391 914L440 848L248 728ZM328 242V0H240V243L11 690H105L250 399Q262 375 281 321H288Q304 365 319 398L464 690H557L328 242Z" /> +<glyph unicode="Þ" glyph-name="Thorn" horiz-adv-x="592" d="M175 690V565Q216 567 325 567Q450 567 498 522T546 349T500 177T334 131Q252 131 175 140V0H87V559V690H175ZM175 207H323Q400 208 428 236T457 349Q457 434 429 463T323 492Q214 492 175 491V207Z" /> +<glyph unicode="ß" glyph-name="germandbls" horiz-adv-x="675" d="M446 302L550 256Q598 234 618 207T638 126Q638 45 597 17T461 -11Q379 -11 301 0L306 64Q370 59 445 59Q509 60 532 72T555 130Q555 161 541 175T488 206L382 253Q300 291 300 365Q300 +381 302 394T313 418T326 437T347 454T368 468T396 483T423 498Q460 519 473 537T487 586Q487 620 457 635T345 651Q261 651 231 628T201 534V0H116V419H28V485L116 486V543Q116 600 130 636T176 691T245 715T341 721Q464 721 515 692T567 589Q567 546 549 517T480 +458Q467 450 447 440T418 424T399 410T385 391T381 367Q381 343 395 331T446 302Z" /> +<glyph unicode="à" glyph-name="agrave" horiz-adv-x="549" d="M290 548L98 669L146 734L319 587L290 548ZM81 414L73 477Q207 499 308 499Q393 499 434 464T475 343V0H408L398 80Q363 45 311 18T197 -9Q130 -9 91 26T51 127V180Q51 237 86 268T186 300H389V343Q389 +389 368 408T290 427Q218 427 81 414ZM138 168V137Q138 99 156 82T214 64Q252 63 300 82T389 137V235H201Q167 234 153 217T138 168Z" /> +<glyph unicode="á" glyph-name="aacute" horiz-adv-x="549" d="M233 548L204 587L376 734L425 669L233 548ZM81 414L73 477Q207 499 308 499Q393 499 434 464T475 343V0H408L398 80Q363 45 311 18T197 -9Q130 -9 91 26T51 127V180Q51 237 86 268T186 300H389V343Q389 +389 368 408T290 427Q218 427 81 414ZM138 168V137Q138 99 156 82T214 64Q252 63 300 82T389 137V235H201Q167 234 153 217T138 168Z" /> +<glyph unicode="â" glyph-name="acircumflex" horiz-adv-x="549" d="M135 552L106 589L238 716H300L432 589L402 552L273 650H265L135 552ZM81 414L73 477Q207 499 308 499Q393 499 434 464T475 343V0H408L398 80Q363 45 311 18T197 -9Q130 -9 91 26T51 127V180Q51 +237 86 268T186 300H389V343Q389 389 368 408T290 427Q218 427 81 414ZM138 168V137Q138 99 156 82T214 64Q252 63 300 82T389 137V235H201Q167 234 153 217T138 168Z" /> +<glyph unicode="ã" glyph-name="atilde" horiz-adv-x="549" d="M151 586H111Q105 643 127 673T189 700Q221 697 266 672T338 644Q366 641 376 653T387 695H427Q433 640 411 610T349 583Q312 586 266 611T198 640Q171 643 161 630T151 586ZM81 414L73 477Q207 +499 308 499Q393 499 434 464T475 343V0H408L398 80Q363 45 311 18T197 -9Q130 -9 91 26T51 127V180Q51 237 86 268T186 300H389V343Q389 389 368 408T290 427Q218 427 81 414ZM138 168V137Q138 99 156 82T214 64Q252 63 300 82T389 137V235H201Q167 234 153 217T138 +168Z" /> +<glyph unicode="ä" glyph-name="adieresis" horiz-adv-x="549" d="M195 587H166Q143 587 143 611V666Q143 690 166 690H195Q218 690 218 666V611Q218 587 195 587ZM372 587H343Q320 587 320 611V666Q320 690 343 690H372Q396 690 396 666V611Q396 587 372 +587ZM81 414L73 477Q207 499 308 499Q393 499 434 464T475 343V0H408L398 80Q363 45 311 18T197 -9Q130 -9 91 26T51 127V180Q51 237 86 268T186 300H389V343Q389 389 368 408T290 427Q218 427 81 414ZM138 168V137Q138 99 156 82T214 64Q252 63 300 82T389 137V235H201Q167 +234 153 217T138 168Z" /> +<glyph unicode="å" glyph-name="aring" horiz-adv-x="549" d="M314 535T269 535T193 565T162 639Q162 684 193 714T269 745Q313 745 344 715T376 639Q376 595 345 565ZM295 701T269 701T227 684T210 639Q210 612 227 596T269 579Q295 579 312 595T329 639T312 +683ZM81 414L73 477Q207 499 308 499Q393 499 434 464T475 343V0H408L398 80Q363 45 311 18T197 -9Q130 -9 91 26T51 127V180Q51 237 86 268T186 300H389V343Q389 389 368 408T290 427Q218 427 81 414ZM138 168V137Q138 99 156 82T214 64Q252 63 300 82T389 137V235H201Q167 +234 153 217T138 168Z" /> +<glyph unicode="æ" glyph-name="ae" horiz-adv-x="871" d="M695 202H479Q485 118 519 89T632 60Q715 60 802 72L810 15Q746 -12 621 -12Q537 -12 487 12T413 93Q378 54 321 23T197 -9T91 26T51 127V180Q51 237 86 268T186 300H389V343Q389 389 368 408T290 +427Q218 427 81 414L73 477Q207 499 308 499Q411 499 447 449Q497 499 612 499Q721 499 771 460T822 340Q822 202 695 202ZM477 268H673Q738 268 736 340Q736 386 709 406T616 427Q540 427 510 393T477 268ZM138 168V137Q138 99 156 82T214 64Q255 63 305 83T398 +142Q389 182 389 235H201Q167 234 153 217T138 168Z" /> +<glyph unicode="ç" glyph-name="ccedilla" horiz-adv-x="489" d="M443 70L452 13Q380 -12 285 -12Q159 -12 107 45T54 244T106 442T286 499Q382 499 443 476L432 421Q366 427 300 427Q212 427 178 388T144 244Q144 138 178 99T300 60Q380 60 443 70ZM226 +-95L235 -55Q296 -49 322 -63T347 -120Q345 -183 298 -217T179 -241L193 -196Q233 -197 258 -178T285 -127Q286 -109 274 -103T226 -95Z" /> +<glyph unicode="è" glyph-name="egrave" horiz-adv-x="537" d="M300 548L109 669L157 734L330 587L300 548ZM371 202H144Q151 118 185 89T298 60Q381 60 467 72L476 15Q411 -12 287 -12Q161 -12 108 46T54 245Q54 386 106 442T278 499Q387 499 437 460T487 +340Q489 202 371 202ZM143 268H349Q402 268 402 340Q401 387 374 407T282 427Q205 427 175 394T143 268Z" /> +<glyph unicode="é" glyph-name="eacute" horiz-adv-x="537" d="M244 548L214 587L387 734L435 669L244 548ZM371 202H144Q151 118 185 89T298 60Q381 60 467 72L476 15Q411 -12 287 -12Q161 -12 108 46T54 245Q54 386 106 442T278 499Q387 499 437 460T487 +340Q489 202 371 202ZM143 268H349Q402 268 402 340Q401 387 374 407T282 427Q205 427 175 394T143 268Z" /> +<glyph unicode="ê" glyph-name="ecircumflex" horiz-adv-x="537" d="M146 552L117 589L249 716H310L443 589L413 552L283 650H275L146 552ZM371 202H144Q151 118 185 89T298 60Q381 60 467 72L476 15Q411 -12 287 -12Q161 -12 108 46T54 245Q54 386 106 442T278 +499Q387 499 437 460T487 340Q489 202 371 202ZM143 268H349Q402 268 402 340Q401 387 374 407T282 427Q205 427 175 394T143 268Z" /> +<glyph unicode="ë" glyph-name="edieresis" horiz-adv-x="537" d="M205 587H176Q153 587 153 611V666Q153 690 176 690H205Q229 690 229 666V611Q229 587 205 587ZM382 587H354Q330 587 330 611V666Q330 690 354 690H382Q406 690 406 666V611Q406 587 382 +587ZM371 202H144Q151 118 185 89T298 60Q381 60 467 72L476 15Q411 -12 287 -12Q161 -12 108 46T54 245Q54 386 106 442T278 499Q387 499 437 460T487 340Q489 202 371 202ZM143 268H349Q402 268 402 340Q401 387 374 407T282 427Q205 427 175 394T143 268Z" /> +<glyph unicode="ì" glyph-name="igrave" horiz-adv-x="249" d="M175 587L145 548L-46 669L2 734L175 587ZM167 0H82V487H167V0Z" /> +<glyph unicode="í" glyph-name="iacute" horiz-adv-x="249" d="M281 669L89 548L60 587L232 734L281 669ZM167 0H82V487H167V0Z" /> +<glyph unicode="î" glyph-name="icircumflex" horiz-adv-x="249" d="M288 589L258 552L129 650H121L-9 552L-38 589L94 716H155L288 589ZM167 0H82V487H167V0Z" /> +<glyph unicode="ï" glyph-name="idieresis" horiz-adv-x="249" d="M22 690H51Q74 690 74 666V611Q74 587 51 587H22Q-2 587 -2 611V666Q-2 690 22 690ZM199 690H228Q251 690 251 666V611Q251 587 228 587H199Q175 587 175 611V666Q175 690 199 690ZM167 0H82V487H167V0Z" +/> +<glyph unicode="ð" glyph-name="eth" horiz-adv-x="559" d="M443 673L376 621Q495 517 495 283Q495 212 486 162T454 70T386 8T275 -13Q162 -13 109 42T55 219Q55 333 102 390T260 448Q339 448 397 412Q376 522 317 576L239 516L208 554L275 606Q213 640 +119 636L129 698Q250 703 335 652L413 712L443 673ZM276 59Q318 59 344 73T384 119T402 188T407 287Q407 311 405 353Q343 377 273 377T174 338T145 219Q145 132 176 96T276 59Z" /> +<glyph unicode="ñ" glyph-name="ntilde" horiz-adv-x="581" d="M179 586H139Q133 643 155 673T217 700Q249 697 294 672T367 644T404 653T415 695H455Q461 640 439 610T377 583Q340 586 294 611T227 640Q200 643 190 630T179 586ZM150 487L156 410Q274 499 +374 499Q506 499 506 365V0H421V341Q421 389 405 408T351 427Q311 427 271 409T163 350V0H78V487H150Z" /> +<glyph unicode="ò" glyph-name="ograve" horiz-adv-x="568" d="M333 587L304 548L112 669L161 734L333 587ZM284 499Q410 499 461 441T513 243T462 45T284 -13Q159 -13 107 45T55 243T107 441T284 499ZM364 427T284 427T174 388T144 243T174 98T284 59T394 +98T425 243T395 388Z" /> +<glyph unicode="ó" glyph-name="oacute" horiz-adv-x="568" d="M439 669L247 548L218 587L390 734L439 669ZM284 499Q410 499 461 441T513 243T462 45T284 -13Q159 -13 107 45T55 243T107 441T284 499ZM364 427T284 427T174 388T144 243T174 98T284 59T394 +98T425 243T395 388Z" /> +<glyph unicode="ô" glyph-name="ocircumflex" horiz-adv-x="568" d="M446 589L416 552L287 650H279L149 552L120 589L252 716H314L446 589ZM284 499Q410 499 461 441T513 243T462 45T284 -13Q159 -13 107 45T55 243T107 441T284 499ZM364 427T284 427T174 +388T144 243T174 98T284 59T394 98T425 243T395 388Z" /> +<glyph unicode="õ" glyph-name="otilde" horiz-adv-x="568" d="M165 586H125Q119 643 141 673T203 700Q235 697 280 672T353 644T390 653T401 695H441Q447 640 425 610T363 583Q326 586 280 611T213 640Q186 643 176 630T165 586ZM284 499Q410 499 461 441T513 +243T462 45T284 -13Q159 -13 107 45T55 243T107 441T284 499ZM364 427T284 427T174 388T144 243T174 98T284 59T394 98T425 243T395 388Z" /> +<glyph unicode="ö" glyph-name="odieresis" horiz-adv-x="568" d="M180 690H209Q232 690 232 666V611Q232 587 209 587H180Q157 587 157 611V666Q157 690 180 690ZM358 690H386Q410 690 410 666V611Q410 587 386 587H358Q334 587 334 611V666Q334 690 358 +690ZM284 499Q410 499 461 441T513 243T462 45T284 -13Q159 -13 107 45T55 243T107 441T284 499ZM364 427T284 427T174 388T144 243T174 98T284 59T394 98T425 243T395 388Z" /> +<glyph unicode="÷" glyph-name="divide" horiz-adv-x="571" d="M273 525H295Q312 525 319 518T327 493V444Q327 427 320 420T295 413H273Q255 413 249 420T242 444V493Q242 511 248 518T273 525ZM504 263H66V327H504V263ZM273 176H295Q312 176 319 169T327 +144V96Q327 78 320 71T295 64H273Q255 64 249 71T242 96V144Q242 162 248 169T273 176Z" /> +<glyph unicode="ø" glyph-name="oslash" horiz-adv-x="568" d="M444 541L414 476Q467 452 490 396T513 243Q513 103 462 45T284 -13Q228 -13 191 -3L157 -75L118 -56L150 12Q100 38 78 93T55 243Q55 383 107 441T284 499Q339 499 372 491L405 560L444 541ZM184 +87L340 422Q320 427 284 427Q204 427 174 388T144 243Q144 123 184 87ZM380 403L223 66Q247 59 284 59Q364 59 394 98T425 243Q425 368 380 403Z" /> +<glyph unicode="ù" glyph-name="ugrave" horiz-adv-x="570" d="M308 552L116 672L165 737L337 591L308 552ZM492 487V0H424L418 70Q308 -13 208 -13Q75 -13 75 121V487H160V145Q159 99 177 80T237 61Q274 61 312 77T407 131V487H492Z" /> +<glyph unicode="ú" glyph-name="uacute" horiz-adv-x="570" d="M251 552L222 591L394 737L443 672L251 552ZM492 487V0H424L418 70Q308 -13 208 -13Q75 -13 75 121V487H160V145Q159 99 177 80T237 61Q274 61 312 77T407 131V487H492Z" /> +<glyph unicode="û" glyph-name="ucircumflex" horiz-adv-x="570" d="M153 556L124 593L256 720H318L450 593L420 556L291 654H283L153 556ZM492 487V0H424L418 70Q308 -13 208 -13Q75 -13 75 121V487H160V145Q159 99 177 80T237 61Q274 61 312 77T407 131V487H492Z" /> +<glyph unicode="ü" glyph-name="udieresis" horiz-adv-x="570" d="M213 591H184Q161 591 161 615V670Q161 694 184 694H213Q236 694 236 670V615Q236 591 213 591ZM390 591H362Q338 591 338 615V670Q338 694 362 694H390Q414 694 414 670V615Q414 591 390 +591ZM492 487V0H424L418 70Q308 -13 208 -13Q75 -13 75 121V487H160V145Q159 99 177 80T237 61Q274 61 312 77T407 131V487H492Z" /> +<glyph unicode="ý" glyph-name="yacute" horiz-adv-x="529" d="M231 548L201 587L374 734L422 669L231 548ZM510 487L315 -27Q251 -199 102 -206L94 -150Q151 -132 183 -101T236 -21L244 0H225Q201 0 195 22L18 487H109L238 124Q252 83 256 65H270Q278 85 +291 124L418 487H510Z" /> +<glyph unicode="þ" glyph-name="thorn" horiz-adv-x="574" d="M163 700V530Q163 464 160 430Q247 499 342 499Q436 499 476 438T517 240Q517 101 476 44T339 -13Q246 -13 161 31Q163 0 163 -60V-201H78V700H163ZM163 359V94Q254 58 312 58Q377 58 403 97T429 +241T403 385T315 426Q252 426 163 359Z" /> +<glyph unicode="ÿ" glyph-name="ydieresis" horiz-adv-x="529" d="M192 587H163Q140 587 140 611V666Q140 690 163 690H192Q216 690 216 666V611Q216 587 192 587ZM369 587H341Q317 587 317 611V666Q317 690 341 690H369Q393 690 393 666V611Q393 587 369 +587ZM510 487L315 -27Q251 -199 102 -206L94 -150Q151 -132 183 -101T236 -21L244 0H225Q201 0 195 22L18 487H109L238 124Q252 83 256 65H270Q278 85 291 124L418 487H510Z" /> +<glyph unicode="–" glyph-name="endash" horiz-adv-x="592" d="M520 220H72V285H520V220Z" /> +<glyph unicode="—" glyph-name="emdash" horiz-adv-x="896" d="M824 220H72V285H824V220Z" /> +<glyph unicode="‘" glyph-name="quoteleft" horiz-adv-x="217" d="M121 496H96Q79 496 72 502T65 526V586Q66 663 100 730L140 719Q130 665 130 607Q155 607 153 581V526Q152 496 121 496Z" /> +<glyph unicode="’" glyph-name="quoteright" horiz-adv-x="214" d="M95 723H120Q137 723 144 717T151 693V633Q150 555 116 490L76 500Q86 554 86 612Q61 612 63 638V693Q64 723 95 723Z" /> +<glyph unicode="‚" glyph-name="quotesinglbase" horiz-adv-x="228" d="M103 111H128Q145 111 152 105T159 81V22Q158 -55 124 -122L83 -111Q93 -57 93 1Q68 1 70 26V81Q71 111 103 111Z" /> +<glyph unicode="“" glyph-name="quotedblleft" horiz-adv-x="369" d="M273 496H249Q232 496 225 502T218 526V586Q219 665 252 730L293 719Q283 665 283 607Q308 607 306 581V526Q305 496 273 496ZM121 496H96Q79 496 72 502T65 526V586Q66 663 100 730L140 +719Q130 665 130 607Q155 607 153 581V526Q152 496 121 496Z" /> +<glyph unicode="”" glyph-name="quotedblright" horiz-adv-x="367" d="M95 723H120Q137 723 144 717T151 693V633Q150 555 116 490L76 500Q86 554 86 612Q61 612 63 638V693Q64 723 95 723ZM248 723H273Q290 723 296 717T303 693V633Q301 553 269 490L229 +500Q239 563 239 612Q215 612 215 638V693Q216 723 248 723Z" /> +<glyph unicode="„" glyph-name="quotedblbase" horiz-adv-x="381" d="M102 111H127Q144 111 151 105T158 81V22Q157 -55 123 -122L83 -111Q93 -57 93 1Q68 1 70 26V81Q71 111 102 111ZM255 111H280Q297 111 303 105T310 81V22Q309 -57 276 -122L236 -111Q246 +-57 246 1Q222 1 222 26V81Q223 97 230 104T255 111Z" /> +<glyph unicode="•" glyph-name="bullet" horiz-adv-x="363" d="M177 358H189Q236 358 254 340T272 275V263Q272 214 254 196T189 177H177Q128 177 110 195T91 263V275Q91 322 109 340T177 358Z" /> +<glyph unicode="‹" glyph-name="guilsinglleft" horiz-adv-x="285" d="M241 429L115 251L242 69L197 39L36 241V261L196 459L241 429Z" /> +<glyph unicode="›" glyph-name="guilsinglright" horiz-adv-x="287" d="M249 261V241L87 39L43 69L170 251L44 429L88 459L249 261Z" /> +</font> +</defs> +</svg> diff --git a/web/static/fonts/Exo-2-regular.ttf b/web/static/fonts/Exo-2-regular.ttf Binary files differnew file mode 100644 index 000000000..3953ab5f8 --- /dev/null +++ b/web/static/fonts/Exo-2-regular.ttf diff --git a/web/static/fonts/Exo-2-regular.woff b/web/static/fonts/Exo-2-regular.woff Binary files differnew file mode 100644 index 000000000..e635c84b7 --- /dev/null +++ b/web/static/fonts/Exo-2-regular.woff diff --git a/web/static/fonts/Exo-2-regular.woff2 b/web/static/fonts/Exo-2-regular.woff2 Binary files differnew file mode 100644 index 000000000..ed9c8fb33 --- /dev/null +++ b/web/static/fonts/Exo-2-regular.woff2 diff --git a/web/static/fonts/Lato-latin-ext.woff2 b/web/static/fonts/Lato-latin-ext.woff2 Binary files differnew file mode 100644 index 000000000..33e333f1d --- /dev/null +++ b/web/static/fonts/Lato-latin-ext.woff2 diff --git a/web/static/fonts/Lato-latin.woff2 b/web/static/fonts/Lato-latin.woff2 Binary files differnew file mode 100644 index 000000000..5469216e1 --- /dev/null +++ b/web/static/fonts/Lato-latin.woff2 diff --git a/web/static/fonts/Lato-regular.eot b/web/static/fonts/Lato-regular.eot Binary files differnew file mode 100644 index 000000000..28343da02 --- /dev/null +++ b/web/static/fonts/Lato-regular.eot diff --git a/web/static/fonts/Lato-regular.svg b/web/static/fonts/Lato-regular.svg new file mode 100644 index 000000000..f7678d37c --- /dev/null +++ b/web/static/fonts/Lato-regular.svg @@ -0,0 +1,4148 @@ +<?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"> +<defs > +<font id="Lato" horiz-adv-x="1042" ><font-face + font-family="Lato" + units-per-em="2000" + panose-1="2 15 5 2 2 2 4 3 2 3" + ascent="1974" + descent="-426" + alphabetic="0" /> +<glyph unicode=" " glyph-name="space" horiz-adv-x="386" /> +<glyph unicode="!" glyph-name="exclam" horiz-adv-x="686" d="M430 1433V861Q430 816 429 773T424 687T417 598T406 500H285Q279 552 275 597T267 686T263 773T261 861V1433H430ZM218 110Q218 136 227 159T253 199T293 226T342 236Q368 236 391 226T431 199T457 +159T467 110Q467 83 458 61T431 21T391 -5T342 -15Q316 -15 293 -6T254 21T228 60T218 110Z" /> +<glyph unicode=""" glyph-name="quotedbl" horiz-adv-x="794" d="M307 1433V1143L291 988Q288 956 274 939T229 921Q203 921 189 938T168 988L152 1143V1433H307ZM640 1433V1143L624 988Q621 956 607 939T562 921Q536 921 522 938T501 988L485 1143V1433H640Z" /> +<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="1160" d="M790 423L706 0H625Q602 0 586 17T570 61Q570 65 570 68T572 77L643 423H396L325 68Q317 31 295 16T243 0H164L249 423H103Q80 423 67 434T54 474Q54 479 54 485T56 497L64 554H268L333 880H101L114 +954Q119 983 137 997T194 1011H352L424 1369Q430 1399 451 1416T503 1433H583L499 1011H746L830 1433H909Q934 1433 950 1418T967 1379Q967 1371 966 1366L893 1011H1105L1092 936Q1087 907 1069 894T1012 880H874L809 554H988Q1012 554 1025 543T1038 502Q1038 +497 1038 492T1036 480L1027 423H790ZM415 554H662L727 880H480L415 554Z" /> +<glyph unicode="$" glyph-name="dollar" horiz-adv-x="1160" d="M498 -12Q377 -1 278 47T106 171L159 253Q166 264 179 271T206 278Q225 278 249 259T308 216T391 168T508 137L545 668Q475 689 408 715T287 784T201 891T168 1053Q168 1126 196 1195T279 1319T414 +1407T598 1446L608 1590Q610 1609 623 1624T658 1639H724L710 1441Q815 1428 891 1387T1027 1288L984 1222Q964 1192 938 1192Q924 1192 904 1204T854 1233T787 1266T700 1290L667 806Q739 784 809 758T935 691T1025 589T1060 435Q1060 345 1030 266T943 127T802 +30T611 -14L599 -190Q597 -209 584 -223T549 -238H483L498 -12ZM891 407Q891 457 873 493T822 555T747 600T655 635L621 137Q686 143 736 165T821 223T873 304T891 407ZM336 1071Q336 1023 353 988T400 925T470 878T557 842L587 1293Q522 1287 475 1267T397 1217T351 +1150T336 1071Z" /> +<glyph unicode="%" glyph-name="percent" horiz-adv-x="1572" d="M707 1087Q707 1003 681 937T612 825T510 755T389 731Q321 731 264 755T163 824T96 936T72 1087Q72 1173 96 1240T163 1353T263 1423T389 1447Q456 1447 514 1423T615 1353T682 1240T707 1087ZM568 +1087Q568 1153 554 1199T516 1274T459 1317T389 1330Q352 1330 320 1317T263 1275T226 1199T212 1087Q212 1022 225 977T263 903T319 862T389 849Q426 849 458 861T515 902T554 976T568 1087ZM1208 1397Q1221 1414 1235 1423T1274 1433H1402L355 29Q345 16 331 +8T298 0H166L1208 1397ZM1499 338Q1499 254 1473 188T1404 77T1303 7T1182 -17Q1114 -17 1057 7T956 76T889 188T865 338Q865 424 889 491T956 605T1056 675T1182 699Q1249 699 1307 675T1408 605T1475 492T1499 338ZM1361 338Q1361 404 1347 450T1309 526T1252 +568T1182 581Q1145 581 1113 568T1056 526T1019 451T1005 338Q1005 273 1018 228T1056 155T1112 114T1182 101Q1219 101 1251 113T1308 154T1347 228T1361 338Z" /> +<glyph unicode="&" glyph-name="ampersand" horiz-adv-x="1406" d="M660 1449Q739 1449 804 1424T916 1356T991 1259T1023 1143L912 1121Q907 1120 903 1120Q890 1120 879 1127T862 1152Q855 1178 840 1206T800 1257T741 1295T660 1310Q610 1310 570 1294T502 +1250T458 1183T442 1099Q442 1064 450 1032T476 968T520 901T585 828L997 409Q1035 476 1057 549T1088 697Q1090 716 1100 727T1128 738H1238Q1236 623 1201 512T1100 304L1400 0H1228Q1199 0 1181 7T1141 36L997 181Q903 90 781 37T511 -16Q431 -16 354 11T217 +89T119 215T82 382Q82 452 105 514T170 630T269 725T394 797Q333 874 304 947T275 1098Q275 1171 301 1235T378 1346T499 1421T660 1449ZM263 396Q263 331 287 282T350 198T439 147T541 129Q653 129 742 170T899 279L476 706Q370 649 317 570T263 396Z" /> +<glyph unicode="'" glyph-name="quotesingle" horiz-adv-x="460" d="M307 1433V1143L291 988Q288 956 274 939T229 921Q203 921 189 938T168 988L152 1143V1433H307Z" /> +<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="600" d="M289 629Q289 415 344 214T503 -171Q509 -182 511 -190T513 -206Q513 -220 506 -229T488 -245L409 -293Q334 -178 282 -65T197 162T149 391T134 629Q134 750 149 866T196 1095T281 1322T409 1551L488 +1502Q499 1495 506 1486T513 1463Q513 1448 503 1429Q398 1247 344 1045T289 629Z" /> +<glyph unicode=")" glyph-name="parenright" horiz-adv-x="600" d="M298 629Q298 843 244 1045T84 1429Q74 1448 74 1463Q74 1477 81 1486T99 1502L178 1551Q253 1435 305 1322T390 1096T438 866T453 629Q453 507 438 392T391 162T306 -65T178 -293L99 -245Q88 +-238 81 -229T74 -206Q74 -198 76 -190T84 -171Q188 12 243 213T298 629Z" /> +<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="800" d="M354 863V1060Q354 1079 356 1096T366 1129Q346 1104 313 1084L141 985L97 1060L269 1160Q305 1181 342 1184Q322 1186 305 1191T269 1209L96 1310L140 1385L313 1285Q348 1265 370 1233Q361 1251 +358 1269T354 1308V1506H442V1309Q442 1268 428 1237Q439 1252 452 1263T483 1285L655 1384L699 1309L527 1209Q510 1198 494 1192T459 1184Q477 1182 493 1177T527 1160L700 1059L656 984L483 1084Q465 1095 451 1106T426 1133Q442 1100 442 1061V863H354Z" /> +<glyph unicode="+" glyph-name="plus" horiz-adv-x="1160" d="M651 1166V739H1058V604H651V174H505V604H100V739H505V1166H651Z" /> +<glyph unicode="," glyph-name="comma" horiz-adv-x="424" d="M94 123Q94 146 102 166T126 202T164 227T212 236Q242 236 265 225T304 195T328 150T336 94Q336 49 323 1T286 -95T227 -188T146 -271L116 -242Q103 -230 103 -214Q103 -201 117 -187Q127 -176 142 +-158T174 -115T203 -62T223 0H210Q184 0 163 9T127 34T103 73T94 123Z" /> +<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="694" d="M100 675H594V524H100V675Z" /> +<glyph unicode="." glyph-name="period" horiz-adv-x="424" d="M88 110Q88 136 97 159T123 199T163 226T212 236Q238 236 261 226T301 199T327 159T337 110Q337 83 328 61T301 21T261 -5T212 -15Q186 -15 163 -6T124 21T98 60T88 110Z" /> +<glyph unicode="/" glyph-name="slash" horiz-adv-x="746" d="M161 -21Q147 -56 120 -73T63 -90H-12L589 1407Q602 1439 626 1456T683 1473H758L161 -21Z" /> +<glyph unicode="0" glyph-name="zero" horiz-adv-x="1160" d="M1100 716Q1100 528 1060 391T949 163T784 29T579 -15Q469 -15 375 29T210 163T100 390T60 716Q60 904 100 1042T210 1270T374 1405T579 1449Q688 1449 783 1405T949 1271T1059 1042T1100 716ZM915 +716Q915 880 888 991T814 1171T706 1268T579 1298Q513 1298 452 1269T345 1171T272 992T244 716Q244 552 271 441T345 262T452 165T579 135Q645 135 706 164T813 262T887 441T915 716Z" /> +<glyph unicode="1" glyph-name="one" horiz-adv-x="1160" d="M287 136H595V1113Q595 1157 598 1202L342 983Q332 975 322 972T303 968Q288 968 276 974T258 990L202 1067L628 1436H773V136H1055V0H287V136Z" /> +<glyph unicode="2" glyph-name="two" horiz-adv-x="1160" d="M601 1449Q692 1449 771 1422T907 1344T998 1218T1031 1050Q1031 970 1007 902T942 772T848 651T734 531L357 145Q397 156 438 162T517 169H997Q1026 169 1043 152T1060 108V0H104V61Q104 80 111 100T136 +137L595 598Q652 656 699 709T779 817T831 926T849 1045Q849 1108 829 1155T774 1234T692 1280T591 1296Q537 1296 491 1280T410 1236T350 1168T315 1082Q307 1053 291 1040T249 1027Q244 1027 239 1027T226 1029L133 1045Q147 1143 187 1218T288 1345T429 1422T601 +1449Z" /> +<glyph unicode="3" glyph-name="three" horiz-adv-x="1160" d="M620 1449Q711 1449 788 1423T920 1349T1007 1233T1038 1082Q1038 1014 1021 961T971 867T892 798T789 753Q929 716 999 629T1070 411Q1070 312 1033 233T930 99T779 14T593 -16Q479 -16 398 12T261 +91T169 209T108 358L184 390Q205 399 226 399Q246 399 261 391T285 364Q287 360 289 356T293 346Q307 317 327 281T381 212T465 158T591 136Q666 136 722 160T816 224T873 311T892 406Q892 464 877 512T821 595T709 650T525 670V799Q616 800 680 819T786 871T845 +950T864 1052Q864 1114 845 1160T791 1236T711 1281T610 1296Q556 1296 510 1280T429 1236T369 1168T333 1082Q325 1053 309 1040T268 1027Q263 1027 258 1027T245 1029L152 1045Q166 1143 206 1218T307 1345T448 1422T620 1449Z" /> +<glyph unicode="4" glyph-name="four" horiz-adv-x="1160" d="M903 517H1120V415Q1120 399 1111 388T1081 377H903V0H746V377H111Q91 377 77 388T58 417L40 508L737 1433H903V517ZM746 1108Q746 1134 747 1164T754 1226L233 517H746V1108Z" /> +<glyph unicode="5" glyph-name="five" horiz-adv-x="1160" d="M978 1355Q978 1317 954 1293T873 1268H423L357 892Q469 916 564 916Q676 916 761 883T905 792T992 655T1022 483Q1022 369 982 277T873 120T709 19T506 -16Q443 -16 385 -4T277 30T184 78T108 135L162 +211Q180 237 210 237Q229 237 254 222T316 187T400 153T516 137Q591 137 651 161T753 229T819 336T842 475Q842 542 823 596T764 688T665 747T527 768Q473 768 415 759T295 730L183 763L299 1433H978V1355Z" /> +<glyph unicode="6" glyph-name="six" horiz-adv-x="1160" d="M650 878Q736 878 813 850T948 767T1040 633T1074 451Q1074 352 1038 267T938 119T782 20T582 -16Q474 -16 387 18T237 116T142 270T108 473Q108 567 150 673T283 901L646 1390Q660 1408 685 1420T742 +1433H900L403 804Q454 839 516 858T650 878ZM280 442Q280 373 300 316T358 218T452 155T579 132Q651 132 709 155T808 219T872 316T895 438Q895 508 873 564T811 660T715 721T592 742Q520 742 462 718T364 652T302 556T280 442Z" /> +<glyph unicode="7" glyph-name="seven" horiz-adv-x="1160" d="M1084 1433V1353Q1084 1319 1077 1297T1061 1260L468 63Q455 37 432 19T370 0H243L845 1182Q858 1207 871 1228T902 1268H154Q137 1268 124 1281T110 1312V1433H1084Z" /> +<glyph unicode="8" glyph-name="eight" horiz-adv-x="1160" d="M579 -16Q472 -16 383 12T230 94T131 222T96 392Q96 530 168 619T374 747Q261 789 204 872T146 1072Q146 1151 177 1220T265 1340T401 1420T579 1449Q676 1449 756 1420T893 1340T981 1220T1012 1072Q1012 +956 954 873T784 747Q918 709 990 620T1062 392Q1062 298 1027 223T928 94T775 13T579 -16ZM579 126Q649 126 704 145T798 200T857 285T878 395Q878 469 854 521T788 607T692 655T579 671Q520 671 466 656T371 607T305 522T280 395Q280 335 300 286T359 201T453 +146T579 126ZM579 814Q649 814 698 835T779 892T824 974T838 1069Q838 1119 822 1163T773 1240T692 1292T579 1311Q515 1311 467 1292T386 1240T337 1163T320 1069Q320 1020 334 974T379 893T459 836T579 814Z" /> +<glyph unicode="9" glyph-name="nine" horiz-adv-x="1160" d="M549 588Q468 588 396 615T268 694T181 823T148 999Q148 1093 183 1175T281 1318T431 1414T622 1449Q725 1449 809 1415T953 1320T1045 1174T1078 986Q1078 924 1067 869T1033 760T981 655T911 546L562 +42Q549 23 525 12T470 0H306L742 571Q764 600 783 626T819 678Q764 634 695 611T549 588ZM907 1007Q907 1074 886 1128T826 1221T736 1279T620 1300Q554 1300 500 1279T407 1219T347 1128T326 1012Q326 944 345 891T401 800T490 744T608 725Q680 725 735 748T829 +811T887 901T907 1007Z" /> +<glyph unicode=":" glyph-name="colon" horiz-adv-x="504" d="M128 110Q128 136 137 159T163 199T203 226T252 236Q278 236 301 226T341 199T367 159T377 110Q377 83 368 61T341 21T301 -5T252 -15Q226 -15 203 -6T164 21T138 60T128 110ZM128 860Q128 886 137 +909T163 949T203 976T252 986Q278 986 301 976T341 949T367 909T377 860Q377 833 368 811T341 771T301 745T252 735Q226 735 203 744T164 771T138 810T128 860Z" /> +<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="504" d="M134 123Q134 146 142 166T166 202T204 227T252 236Q282 236 305 225T344 195T368 150T376 94Q376 49 363 1T326 -95T267 -188T186 -271L156 -242Q143 -230 143 -214Q143 -201 157 -187Q167 -176 +182 -158T214 -115T243 -62T263 0H250Q224 0 203 9T167 34T143 73T134 123ZM128 860Q128 886 137 909T163 949T203 976T252 986Q278 986 301 976T341 949T367 909T377 860Q377 833 368 811T341 771T301 745T252 735Q226 735 203 744T164 771T138 810T128 860Z" +/> +<glyph unicode="<" glyph-name="less" horiz-adv-x="1160" d="M148 710L922 1111V984Q922 967 914 955T886 932L437 704Q417 693 395 686T347 672Q372 667 394 659T437 641L886 414Q906 404 914 391T922 362V234L148 636V710Z" /> +<glyph unicode="=" glyph-name="equal" horiz-adv-x="1160" d="M150 574H1009V439H150V574ZM150 909H1009V774H150V909Z" /> +<glyph unicode=">" glyph-name="greater" horiz-adv-x="1160" d="M238 234V362Q238 378 246 391T274 414L723 641Q743 651 764 659T811 672Q786 678 765 685T723 704L274 932Q254 942 246 954T238 984V1111L1011 710V636L238 234Z" /> +<glyph unicode="?" glyph-name="question" horiz-adv-x="796" d="M34 1305Q65 1334 102 1360T184 1406T280 1437T392 1449Q471 1449 538 1426T655 1361T732 1259T760 1124Q760 1048 738 993T681 897T605 825T529 767T468 713T438 653L420 500H298L286 666V677Q286 +719 308 751T365 812T439 869T513 932T570 1011T593 1115Q593 1158 576 1193T530 1252T462 1290T377 1303Q316 1303 273 1288T199 1255T151 1222T120 1207Q95 1207 81 1230L34 1305ZM230 110Q230 136 239 159T265 199T305 226T354 236Q380 236 403 226T443 199T469 +159T479 110Q479 83 470 61T443 21T403 -5T354 -15Q328 -15 305 -6T266 21T240 60T230 110Z" /> +<glyph unicode="@" glyph-name="at" horiz-adv-x="1644" d="M1167 186Q1089 186 1040 223T978 339Q920 258 852 223T706 188Q646 188 602 208T529 265T485 352T470 460Q470 545 502 631T599 787T758 901T979 945Q1046 945 1096 935T1192 904L1099 543Q1080 468 +1080 419Q1080 383 1089 360T1113 323T1149 304T1193 299Q1242 299 1286 327T1363 406T1416 528T1436 687Q1436 825 1392 929T1270 1102T1087 1206T859 1241Q725 1241 608 1190T404 1049T267 836T217 568Q217 398 270 270T416 54T633 -77T901 -121Q1053 -121 1169 +-88T1371 -4Q1386 5 1398 5Q1419 5 1429 -19L1454 -85Q1347 -157 1211 -198T901 -239Q728 -239 579 -184T321 -26T149 228T86 568Q86 677 113 778T191 966T311 1126T467 1250T652 1330T859 1359Q951 1359 1039 1339T1205 1280T1350 1184T1463 1052T1537 886T1564 +687Q1564 579 1534 488T1450 329T1324 224T1167 186ZM741 306Q772 306 803 316T864 351T918 419T960 527L1036 822Q997 831 951 831Q876 831 814 800T706 717T636 600T610 465Q610 393 643 350T741 306Z" /> +<glyph unicode="A" glyph-name="A" horiz-adv-x="1360" d="M1353 0H1203Q1177 0 1161 13T1137 46L1003 392H360L226 46Q219 28 202 14T160 0H10L583 1433H780L1353 0ZM414 532H949L724 1115Q702 1169 681 1250Q670 1209 660 1175T639 1114L414 532Z" /> +<glyph unicode="B" glyph-name="B" horiz-adv-x="1294" d="M174 0V1433H631Q763 1433 858 1407T1015 1333T1106 1216T1136 1059Q1136 1006 1120 957T1070 866T986 791T867 737Q1024 706 1104 624T1184 408Q1184 317 1151 242T1053 113T895 30T681 0H174ZM368 653V154H678Q761 +154 820 173T918 226T975 308T993 413Q993 524 915 588T677 653H368ZM368 791H624Q706 791 766 809T865 859T924 936T943 1036Q943 1162 867 1221T631 1280H368V791Z" /> +<glyph unicode="C" glyph-name="C" horiz-adv-x="1370" d="M1184 296Q1200 296 1213 283L1289 200Q1201 98 1076 41T773 -16Q618 -16 492 37T277 187T139 419T90 716Q90 878 142 1013T290 1245T517 1395T810 1449Q968 1449 1082 1400T1286 1267L1223 1178Q1216 +1168 1207 1162T1181 1155Q1168 1155 1154 1164T1119 1188T1072 1218T1008 1248T922 1271T809 1281Q694 1281 599 1242T434 1129T327 951T288 716Q288 582 326 477T431 300T589 189T785 151Q849 151 900 158T994 182T1075 222T1151 281Q1168 296 1184 296Z" /> +<glyph unicode="D" glyph-name="D" horiz-adv-x="1506" d="M1416 716Q1416 555 1365 423T1221 197T998 52T710 0H174V1433H710Q868 1433 998 1382T1221 1236T1365 1009T1416 716ZM1217 716Q1217 848 1181 952T1079 1128T919 1238T710 1276H369V157H710Q825 157 +919 195T1079 304T1181 480T1217 716Z" /> +<glyph unicode="E" glyph-name="E" horiz-adv-x="1162" d="M1057 1433V1275H369V799H926V647H369V158H1057V0H174V1433H1057Z" /> +<glyph unicode="F" glyph-name="F" horiz-adv-x="1132" d="M1057 1433V1275H369V774H957V616H369V0H174V1433H1057Z" /> +<glyph unicode="G" glyph-name="G" horiz-adv-x="1468" d="M813 141Q871 141 919 146T1011 163T1092 189T1168 225V541H946Q927 541 916 552T904 579V689H1344V139Q1290 100 1232 71T1107 23T964 -6T799 -16Q643 -16 513 37T289 187T143 419T90 716Q90 880 141 +1015T288 1246T519 1396T823 1449Q908 1449 981 1437T1116 1401T1232 1344T1331 1268L1276 1180Q1259 1153 1232 1153Q1216 1153 1197 1164Q1172 1178 1141 1198T1066 1236T961 1268T817 1281Q696 1281 598 1242T431 1129T325 951T288 716Q288 580 326 474T435 +293T601 180T813 141Z" /> +<glyph unicode="H" glyph-name="H" horiz-adv-x="1512" d="M1336 0H1141V652H369V0H174V1433H369V794H1141V1433H1336V0Z" /> +<glyph unicode="I" glyph-name="I" horiz-adv-x="614" d="M404 0H210V1433H404V0Z" /> +<glyph unicode="J" glyph-name="J" horiz-adv-x="888" d="M713 495Q713 375 684 280T597 120T455 19T262 -16Q165 -16 60 12Q62 41 65 69T71 126Q73 143 83 153T115 164Q133 164 163 155T243 146Q309 146 360 166T447 228T501 335T520 491V1433H713V495Z" /> +<glyph unicode="K" glyph-name="K" horiz-adv-x="1362" d="M387 805H460Q498 805 520 814T563 847L1040 1387Q1062 1412 1082 1422T1135 1433H1300L754 816Q733 793 715 777T675 751Q703 742 724 724T768 679L1338 0H1170Q1151 0 1138 3T1116 11T1098 24T1082 +41L587 610Q576 622 567 630T545 645T516 653T475 656H387V0H194V1433H387V805Z" /> +<glyph unicode="L" glyph-name="L" horiz-adv-x="1028" d="M368 163H988V0H174V1433H368V163Z" /> +<glyph unicode="M" glyph-name="M" horiz-adv-x="1840" d="M879 518Q893 494 903 468T924 414Q934 442 945 467T970 519L1455 1400Q1468 1423 1482 1428T1522 1433H1665V0H1495V1053Q1495 1074 1496 1098T1499 1147L1008 251Q983 206 938 206H910Q865 206 840 +251L338 1150Q341 1124 342 1099T344 1053V0H174V1433H317Q343 1433 357 1428T384 1400L879 518V518Z" /> +<glyph unicode="N" glyph-name="N" horiz-adv-x="1512" d="M274 1433Q300 1433 312 1427T341 1400L1171 320Q1168 346 1167 370T1166 418V1433H1336V0H1238Q1215 0 1200 8T1169 35L340 1114Q342 1089 343 1065T344 1021V0H174V1433H274V1433Z" /> +<glyph unicode="O" glyph-name="O" horiz-adv-x="1596" d="M1505 716Q1505 555 1454 421T1310 189T1087 39T798 -15Q640 -15 510 38T287 189T143 420T92 716Q92 877 143 1011T287 1243T510 1395T798 1449Q956 1449 1086 1395T1310 1244T1454 1012T1505 716ZM1306 +716Q1306 848 1270 953T1168 1130T1008 1242T798 1281Q683 1281 589 1242T429 1131T326 953T290 716Q290 584 326 480T428 303T589 192T798 153Q914 153 1008 191T1168 302T1270 479T1306 716Z" /> +<glyph unicode="P" glyph-name="P" horiz-adv-x="1222" d="M387 536V0H194V1433H617Q753 1433 853 1402T1020 1312T1118 1172T1151 989Q1151 889 1116 806T1014 663T846 570T617 536H387ZM387 690H617Q700 690 763 712T870 773T935 868T957 989Q957 1126 873 1203T617 +1280H387V690Z" /> +<glyph unicode="Q" glyph-name="Q" horiz-adv-x="1596" d="M1505 716Q1505 615 1485 524T1425 355T1330 212T1204 101L1572 -296H1412Q1376 -296 1348 -286T1297 -251L1045 23Q988 5 927 -5T798 -15Q640 -15 510 38T287 189T143 420T92 716Q92 877 143 1011T287 +1243T510 1395T798 1449Q956 1449 1086 1395T1310 1244T1454 1012T1505 716ZM1306 716Q1306 848 1270 953T1168 1130T1008 1242T798 1281Q683 1281 589 1242T429 1131T326 953T290 716Q290 584 326 480T428 303T589 192T798 153Q914 153 1008 191T1168 302T1270 +479T1306 716Z" /> +<glyph unicode="R" glyph-name="R" horiz-adv-x="1288" d="M387 598V0H194V1433H599Q735 1433 834 1406T997 1326T1093 1201T1124 1036Q1124 960 1100 894T1031 776T920 686T771 630Q807 609 835 569L1253 0H1081Q1028 0 1003 41L631 553Q614 577 594 587T534 +598H387ZM387 739H590Q675 739 739 759T847 817T913 907T935 1022Q935 1150 851 1215T599 1280H387V739Z" /> +<glyph unicode="S" glyph-name="S" horiz-adv-x="1060" d="M908 1209Q899 1194 889 1187T863 1179Q846 1179 824 1196T767 1233T684 1271T566 1288Q501 1288 451 1271T368 1223T317 1153T300 1065Q300 1005 329 966T407 898T517 850T643 807T769 758T879 688T957 +585T987 435Q987 341 955 259T862 115T711 19T507 -16Q368 -16 254 34T58 171L114 263Q122 274 133 281T159 289Q180 289 207 267T274 217T372 168T513 145Q582 145 636 164T727 217T785 300T805 407Q805 472 776 513T698 583T589 630T463 670T337 718T227 788T150 +895T120 1055Q120 1131 149 1202T235 1328T373 1416T563 1449Q683 1449 782 1411T955 1301L908 1209Z" /> +<glyph unicode="T" glyph-name="T" horiz-adv-x="1180" d="M1150 1433V1270H687V0H493V1270H28V1433H1150Z" /> +<glyph unicode="U" glyph-name="U" horiz-adv-x="1460" d="M731 154Q820 154 890 184T1008 268T1082 397T1108 562V1433H1301V562Q1301 438 1262 332T1149 149T969 27T731 -17Q599 -17 493 27T313 148T200 332T160 562V1433H353V563Q353 473 378 398T452 269T571 +185T731 154Z" /> +<glyph unicode="V" glyph-name="V" horiz-adv-x="1360" d="M8 1433H163Q189 1433 205 1420T229 1387L634 376Q648 342 659 302T682 219Q691 262 701 302T726 376L1129 1387Q1136 1404 1153 1418T1195 1433H1351L767 0H592L8 1433Z" /> +<glyph unicode="W" glyph-name="W" horiz-adv-x="2038" d="M14 1433H175Q201 1433 218 1420T241 1387L537 391Q545 364 551 333T564 268Q571 302 578 333T594 391L931 1387Q937 1404 954 1418T997 1433H1053Q1079 1433 1095 1420T1119 1387L1454 391Q1472 339 +1486 272Q1492 305 1497 335T1510 391L1807 1387Q1812 1405 1829 1419T1872 1433H2023L1576 0H1402L1039 1093Q1028 1124 1019 1165Q1014 1145 1010 1127T1000 1093L635 0H461L14 1433Z" /> +<glyph unicode="X" glyph-name="X" horiz-adv-x="1286" d="M507 736L34 1433H227Q248 1433 258 1426T276 1406L650 832Q657 853 671 878L1024 1402Q1033 1416 1043 1424T1069 1433H1254L779 745L1270 0H1078Q1056 0 1044 11T1023 37L639 638Q632 617 621 598L247 +37Q238 23 227 12T194 0H14L507 736Z" /> +<glyph unicode="Y" glyph-name="Y" horiz-adv-x="1258" d="M726 570V0H533V570L8 1433H178Q204 1433 219 1420T245 1388L573 831Q593 796 606 765T631 704Q642 735 655 766T688 831L1015 1388Q1024 1404 1039 1418T1080 1433H1252L726 570Z" /> +<glyph unicode="Z" glyph-name="Z" horiz-adv-x="1248" d="M1172 1433V1361Q1172 1327 1151 1297L340 158H1158V0H86V76Q86 106 105 133L917 1275H124V1433H1172Z" /> +<glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="600" d="M142 -289V1533H510V1463Q510 1441 497 1429T461 1416H292V-171H461Q483 -171 496 -183T510 -219V-289H142Z" /> +<glyph unicode="\" glyph-name="backslash" horiz-adv-x="750" d="M-20 1473H56Q89 1473 113 1456T150 1407L751 -90H676Q647 -90 619 -73T578 -21L-20 1473Z" /> +<glyph unicode="]" glyph-name="bracketright" horiz-adv-x="600" d="M90 -219Q90 -199 103 -185T139 -171H308V1416H139Q117 1416 104 1429T90 1463V1533H458V-289H90V-219Z" /> +<glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="1160" d="M516 1433H631L989 787H860Q843 787 831 797T811 821L615 1173Q602 1196 593 1217T576 1260Q562 1216 539 1173L345 821Q337 807 326 797T294 787H158L516 1433Z" /> +<glyph unicode="_" glyph-name="underscore" horiz-adv-x="788" d="M788 -165V-285H0V-165H788Z" /> +<glyph unicode="`" glyph-name="grave" horiz-adv-x="614" d="M207 1449Q240 1449 256 1439T286 1405L435 1163H333Q312 1163 299 1169T272 1191L38 1449H207Z" /> +<glyph unicode="a" glyph-name="a" horiz-adv-x="1014" d="M890 0H811Q785 0 769 8T748 42L728 136Q688 100 650 72T570 24T481 -6T375 -16Q316 -16 265 0T175 50T115 133T92 253Q92 313 125 368T231 467T424 537T715 569V648Q715 766 665 826T515 887Q450 887 +406 871T329 834T273 797T226 780Q208 780 195 789T173 813L141 870Q225 951 322 991T537 1031Q622 1031 688 1003T799 925T867 804T890 648V0ZM428 109Q475 109 514 118T587 145T653 188T715 245V456Q592 452 506 437T366 396T288 337T263 261Q263 221 276 192T311 +145T363 118T428 109Z" /> +<glyph unicode="b" glyph-name="b" horiz-adv-x="1118" d="M152 0V1473H331V867Q394 940 475 984T662 1029Q750 1029 821 996T942 898T1019 736T1046 513Q1046 401 1016 305T930 138T792 27T608 -14Q510 -14 442 24T322 130L313 38Q305 0 267 0H152ZM604 887Q517 +887 452 847T331 734V244Q379 178 437 151T568 124Q710 124 786 225T862 513Q862 612 845 683T794 799T713 866T604 887Z" /> +<glyph unicode="c" glyph-name="c" horiz-adv-x="934" d="M837 833Q829 822 821 816T798 810Q783 810 766 822T721 850T656 877T561 890Q487 890 430 864T335 787T277 666T257 507Q257 415 278 344T337 224T429 150T552 124Q617 124 659 139T729 174T775 208T811 +224Q834 224 845 207L895 142Q829 61 730 24T521 -14Q426 -14 345 21T203 122T109 286T74 507Q74 620 105 716T197 881T347 990T551 1029Q657 1029 739 995T884 897L837 833Z" /> +<glyph unicode="d" glyph-name="d" horiz-adv-x="1118" d="M859 0Q821 0 811 37L795 160Q730 81 647 34T455 -14Q368 -14 297 19T176 118T99 280T72 503Q72 615 102 711T188 879T326 990T510 1031Q603 1031 669 1000T787 911V1473H965V0H859ZM514 130Q601 130 +666 170T787 283V773Q738 839 680 865T550 892Q408 892 332 791T256 503Q256 404 273 334T323 218T404 151T514 130Z" /> +<glyph unicode="e" glyph-name="e" horiz-adv-x="1048" d="M547 1029Q638 1029 715 999T848 911T935 769T967 576Q967 534 958 520T924 506H250Q252 410 276 339T342 221T442 150T572 126Q639 126 687 141T771 175T829 208T870 224Q892 224 904 207L954 142Q921 +102 875 73T777 24T668 -4T557 -14Q452 -14 364 21T211 125T110 295T74 527Q74 633 106 725T200 884T349 990T547 1029ZM551 898Q422 898 348 824T256 617H807Q807 679 790 730T740 819T660 877T551 898Z" /> +<glyph unicode="f" glyph-name="f" horiz-adv-x="674" d="M186 0V861L74 874Q53 879 40 889T26 920V993H186V1091Q186 1178 210 1245T280 1359T390 1430T534 1454Q602 1454 660 1434L656 1345Q655 1325 639 1321T594 1317H563Q517 1317 480 1305T415 1266T374 +1195T359 1086V993H652V864H365V0H186Z" /> +<glyph unicode="g" glyph-name="g" horiz-adv-x="1022" d="M487 1030Q553 1030 610 1016T715 973H990V907Q990 874 948 865L833 849Q867 784 867 704Q867 630 839 570T760 466T640 400T487 377Q416 377 353 394Q321 374 305 351T288 306Q288 270 317 252T394 225T503 +215T627 209T752 193T861 157T938 88T967 -26Q967 -91 935 -152T841 -260T692 -336T493 -365Q382 -365 299 -343T160 -284T78 -199T50 -97Q50 -22 97 30T228 114Q185 134 160 167T134 257Q134 279 142 302T166 349T207 393T263 430Q188 472 146 541T103 704Q103 +778 131 838T211 941T332 1007T487 1030ZM803 -55Q803 -17 782 6T725 41T642 60T543 68T437 74T334 85Q277 58 242 19T206 -74Q206 -108 223 -137T277 -188T367 -222T496 -235Q568 -235 625 -222T721 -185T782 -128T803 -55ZM487 495Q541 495 582 510T652 552T694 +616T708 699Q708 792 652 847T487 902Q380 902 324 847T267 699Q267 654 281 617T324 552T393 510T487 495Z" /> +<glyph unicode="h" glyph-name="h" horiz-adv-x="1112" d="M146 0V1473H324V877Q389 946 468 987T650 1029Q733 1029 796 1002T902 924T967 802T989 645V0H811V645Q811 760 759 823T598 887Q519 887 451 849T324 746V0H146Z" /> +<glyph unicode="i" glyph-name="i" horiz-adv-x="512" d="M344 1013V0H166V1013H344ZM384 1331Q384 1305 374 1283T346 1243T305 1215T256 1205Q230 1205 208 1215T168 1242T140 1282T130 1331Q130 1357 140 1380T167 1421T207 1449T256 1459Q282 1459 305 1449T345 +1422T373 1381T384 1331Z" /> +<glyph unicode="j" glyph-name="j" horiz-adv-x="508" d="M344 1013V-75Q344 -136 328 -188T278 -280T189 -341T58 -364Q25 -364 -2 -359T-56 -344L-48 -248Q-46 -235 -39 -232T-17 -228Q-9 -228 0 -228T22 -229Q100 -229 133 -193T166 -75V1013H344ZM384 1331Q384 +1305 374 1283T346 1243T305 1215T256 1205Q230 1205 208 1215T168 1242T140 1282T130 1331Q130 1357 140 1380T167 1421T207 1449T256 1459Q282 1459 305 1449T345 1422T373 1381T384 1331Z" /> +<glyph unicode="k" glyph-name="k" horiz-adv-x="1048" d="M331 1473V606H377Q397 606 410 611T439 634L759 977Q774 993 789 1003T829 1013H991L618 616Q604 599 591 586T560 563Q578 551 592 536T620 500L1016 0H856Q834 0 819 8T789 35L456 450Q441 471 426 +477T381 484H331V0H152V1473H331Z" /> +<glyph unicode="l" glyph-name="l" horiz-adv-x="512" d="M344 1473V0H166V1473H344Z" /> +<glyph unicode="m" glyph-name="m" horiz-adv-x="1642" d="M146 0V1013H252Q290 1013 300 976L313 872Q369 941 438 985T600 1029Q703 1029 766 972T858 818Q879 873 913 913T991 979T1082 1017T1181 1029Q1261 1029 1323 1004T1429 929T1496 809T1519 645V0H1341V645Q1341 +764 1289 825T1138 887Q1094 887 1055 872T985 826T938 751T920 645V0H742V645Q742 767 693 827T550 887Q484 887 428 852T324 755V0H146Z" /> +<glyph unicode="n" glyph-name="n" horiz-adv-x="1112" d="M146 0V1013H252Q290 1013 300 976L314 866Q380 939 461 984T650 1029Q733 1029 796 1002T902 924T967 802T989 645V0H811V645Q811 760 759 823T598 887Q519 887 451 849T324 746V0H146Z" /> +<glyph unicode="o" glyph-name="o" horiz-adv-x="1112" d="M556 1029Q667 1029 756 992T908 887T1004 723T1038 507Q1038 387 1005 291T909 127T757 23T556 -14Q445 -14 356 22T203 127T106 291T72 507Q72 626 106 722T203 887T355 992T556 1029ZM556 125Q706 +125 780 225T854 506Q854 687 780 788T556 889Q480 889 424 863T331 788T275 668T256 506Q256 416 274 345T330 226T424 151T556 125Z" /> +<glyph unicode="p" glyph-name="p" horiz-adv-x="1104" d="M146 -343V1013H252Q290 1013 300 976L315 856Q380 935 463 983T656 1031Q743 1031 814 998T935 899T1012 736T1039 513Q1039 401 1009 305T923 138T786 27T602 -14Q508 -14 442 17T324 105V-343H146ZM597 +887Q510 887 445 847T324 734V244Q373 178 431 151T562 124Q703 124 779 225T855 513Q855 612 838 683T787 799T706 866T597 887Z" /> +<glyph unicode="q" glyph-name="q" horiz-adv-x="1118" d="M965 1013V-343H787V150Q723 76 642 31T455 -14Q368 -14 297 19T176 118T99 280T72 503Q72 615 102 711T188 879T326 990T510 1031Q608 1031 676 996T799 897L811 976Q821 1013 859 1013H965ZM514 130Q601 +130 666 170T787 283V773Q739 837 680 864T550 892Q408 892 332 791T256 503Q256 404 273 334T323 218T404 151T514 130Z" /> +<glyph unicode="r" glyph-name="r" horiz-adv-x="806" d="M146 0V1013H248Q277 1013 288 1002T303 964L315 806Q367 912 443 971T623 1031Q665 1031 699 1022T762 995L739 862Q732 837 708 837Q694 837 665 846T584 856Q491 856 429 802T324 645V0H146Z" /> +<glyph unicode="s" glyph-name="s" horiz-adv-x="868" d="M726 846Q714 824 689 824Q674 824 655 835T609 859T543 884T453 896Q408 896 372 885T311 853T272 807T258 749Q258 710 280 684T340 639T424 606T520 575T617 538T701 488T760 415T783 310Q783 240 758 +181T684 78T564 9T400 -16Q294 -16 208 18T62 107L104 175Q112 188 123 195T152 202Q170 202 190 188T238 157T307 126T409 112Q461 112 500 125T565 162T603 215T616 279Q616 321 594 348T534 395T450 429T353 460T256 496T171 548T112 624T89 735Q89 793 113 +846T183 940T296 1005T449 1029Q549 1029 628 998T766 911L726 846Z" /> +<glyph unicode="t" glyph-name="t" horiz-adv-x="746" d="M453 -16Q333 -16 269 51T204 244V864H82Q66 864 55 873T44 903V974L210 995L251 1308Q253 1323 264 1332T292 1342H382V993H672V864H382V256Q382 192 413 161T493 130Q521 130 541 137T577 154T602 170T621 +178Q635 178 646 161L698 76Q652 33 587 9T453 -16Z" /> +<glyph unicode="u" glyph-name="u" horiz-adv-x="1112" d="M300 1013V367Q300 252 353 189T513 126Q591 126 660 163T787 266V1013H965V0H859Q821 0 811 37L797 146Q731 73 649 29T461 -16Q378 -16 315 11T208 89T144 210T122 367V1013H300Z" /> +<glyph unicode="v" glyph-name="v" horiz-adv-x="1024" d="M18 1013H164Q185 1013 199 1002T219 976L476 324Q490 288 498 252T513 181Q521 216 530 252T553 324L813 976Q819 992 832 1002T866 1013H1005L592 0H431L18 1013Z" /> +<glyph unicode="w" glyph-name="w" horiz-adv-x="1532" d="M14 1013H154Q176 1013 190 1002T209 976L403 324Q411 288 418 255T430 187Q438 221 448 254T469 324L683 980Q688 995 700 1005T732 1015H809Q829 1015 842 1005T860 980L1069 324Q1080 289 1088 255T1105 +188Q1110 221 1118 257T1135 324L1333 976Q1338 992 1352 1002T1385 1013H1519L1191 0H1050Q1024 0 1014 34L790 721Q782 744 777 767T767 814Q762 791 757 767T744 720L517 34Q506 0 476 0H342L14 1013Z" /> +<glyph unicode="x" glyph-name="x" horiz-adv-x="1008" d="M383 519L42 1013H213Q235 1013 245 1006T263 986L511 606Q520 634 537 662L755 982Q765 996 775 1004T800 1013H964L623 529L978 0H807Q785 0 773 11T752 37L497 434Q490 405 476 382L240 37Q230 23 +219 12T187 0H28L383 519Z" /> +<glyph unicode="y" glyph-name="y" horiz-adv-x="1024" d="M443 -299Q434 -319 421 -331T379 -343H247L432 59L14 1013H168Q191 1013 204 1002T223 976L494 338Q503 316 509 294T521 249Q528 272 535 294T551 339L814 976Q820 992 834 1002T866 1013H1008L443 -299Z" /> +<glyph unicode="z" glyph-name="z" horiz-adv-x="924" d="M853 937Q853 918 846 901T828 869L280 139H833V0H70V74Q70 87 76 104T95 138L646 873H101V1013H853V937Z" /> +<glyph unicode="{" glyph-name="braceleft" horiz-adv-x="600" d="M181 425Q181 488 146 528T44 569V676Q111 676 146 716T181 820Q181 870 173 919T156 1017T138 1116T130 1218Q130 1287 150 1345T212 1445T315 1510T459 1533H512V1454Q512 1434 498 1425T472 +1416H452Q375 1416 331 1366T286 1229Q286 1173 293 1121T309 1020T325 921T332 822Q332 784 321 752T290 694T242 650T181 622Q214 613 241 595T289 550T321 492T332 423Q332 373 325 324T309 226T293 124T286 16Q286 -71 330 -121T452 -171H472Q484 -171 498 +-180T512 -209V-289H459Q377 -289 316 -266T213 -200T151 -100T130 27Q130 79 138 128T155 227T173 326T181 425Z" /> +<glyph unicode="|" glyph-name="bar" horiz-adv-x="600" d="M230 1533H368V-343H230V1533Z" /> +<glyph unicode="}" glyph-name="braceright" horiz-adv-x="600" d="M419 425Q419 375 427 326T444 228T462 129T470 27Q470 -42 449 -100T387 -200T285 -265T141 -289H88V-209Q88 -189 102 -180T128 -171H148Q225 -171 269 -121T314 16Q314 72 307 124T291 225T275 +324T268 423Q268 460 279 492T310 550T358 594T419 622Q386 631 359 649T311 693T279 751T268 822Q268 872 275 921T291 1019T307 1121T314 1229Q314 1315 270 1365T148 1416H128Q116 1416 102 1425T88 1454V1533H141Q223 1533 284 1510T387 1445T449 1345T470 +1218Q470 1166 462 1116T445 1017T427 919T419 820Q419 756 454 716T556 676V569Q489 569 454 529T419 425Z" /> +<glyph unicode="~" glyph-name="asciitilde" horiz-adv-x="1160" d="M759 613Q824 613 860 655T898 768H1042Q1042 701 1024 645T971 549T885 487T770 465Q718 465 667 481T569 516T478 552T399 569Q334 569 298 527T260 414H116Q116 481 134 537T187 633T272 +695T388 718Q440 718 491 702T589 666T680 630T759 613Z" /> +<glyph unicode=" " glyph-name="uni00A0" horiz-adv-x="386" /> +<glyph unicode="¡" glyph-name="exclamdown" horiz-adv-x="686" d="M262 -343V198Q262 243 263 285T268 371T275 461T286 559H407Q413 507 417 461T425 372T429 286T431 198V-343H262ZM218 904Q218 931 227 953T254 993T293 1019T343 1029Q369 1029 391 1020T431 +993T458 954T468 904Q468 878 458 855T431 815T392 788T343 778Q316 778 294 788T254 815T228 855T218 904Z" /> +<glyph unicode="¢" glyph-name="cent" horiz-adv-x="1160" d="M561 -11Q469 -1 392 38T258 144T170 301T138 506Q138 617 171 710T267 873T422 982T633 1026L645 1205Q647 1225 660 1239T695 1254H761L745 1021Q827 1009 893 978T1013 897L967 835Q959 824 +952 819T930 813Q918 813 902 821T863 842T809 866T735 885L683 123Q746 127 788 142T860 175T909 206T944 220Q955 220 964 216T978 204L1026 141Q966 69 874 32T674 -12L662 -187Q660 -206 647 -220T612 -235H546L561 -11ZM315 506Q315 344 382 248T571 129L623 +889Q547 883 490 855T393 777T335 659T315 506Z" /> +<glyph unicode="£" glyph-name="sterling" horiz-adv-x="1160" d="M52 672Q52 698 68 716T113 734H247V995Q247 1089 274 1171T356 1315T493 1412T685 1448Q763 1448 823 1429T931 1375T1012 1296T1071 1199L999 1153Q989 1147 979 1145T958 1142Q944 1142 +932 1147T908 1167Q888 1192 868 1215T822 1256T763 1284T685 1295Q622 1295 574 1274T494 1214T446 1120T430 997V734H871V662Q871 644 856 629T819 614H430V371Q430 296 402 242T323 142Q352 147 380 150T439 154H1115V78Q1115 64 1110 51T1094 26T1070 7T1038 +0H74V115Q108 125 139 142T194 184T232 244T247 325V614H52V672Z" /> +<glyph unicode="¤" glyph-name="currency" horiz-adv-x="1160" d="M223 672Q223 729 239 779T285 874L132 1027L223 1117L374 965Q418 996 470 1013T580 1030Q637 1030 688 1014T782 967L935 1120L1024 1029L873 877Q904 833 921 782T938 672Q938 615 922 +564T876 470L1028 319L937 227L785 379Q741 349 689 332T580 315Q523 315 473 331T378 377L225 224L136 315L287 467Q257 511 240 562T223 672ZM355 672Q355 626 372 586T421 515T492 466T580 448Q627 448 668 466T740 514T789 585T807 672Q807 719 789 760T741 +832T669 880T580 898Q533 898 493 881T421 832T373 760T355 672Z" /> +<glyph unicode="¥" glyph-name="yen" horiz-adv-x="1160" d="M146 625H452L44 1433H193Q219 1433 234 1421T260 1388L536 822Q550 787 560 758T577 700Q584 729 593 758T616 822L891 1388Q899 1405 915 1419T957 1433H1107L698 625H1005V523H665V418H1005V315H665V0H486V315H146V418H486V523H146V625Z" +/> +<glyph unicode="¦" glyph-name="brokenbar" horiz-adv-x="600" d="M230 1533H368V739H230V1533ZM230 452H368V-343H230V452Z" /> +<glyph unicode="§" glyph-name="section" horiz-adv-x="1006" d="M817 1265Q805 1243 780 1243Q765 1243 746 1254T700 1278T634 1303T544 1315Q496 1315 458 1303T393 1269T352 1220T338 1161Q338 1123 362 1095T426 1043T517 998T620 953T724 903T814 840T878 +758T903 651Q903 570 864 507T741 405Q790 368 821 319T852 201Q852 131 827 72T754 -31T634 -100T470 -125Q364 -125 278 -91T132 -2L173 66Q181 79 192 86T221 93Q239 93 259 79T308 48T379 16T485 2Q535 2 574 14T641 49T682 103T696 172Q696 217 671 250T605 +308T512 355T405 398T298 445T205 506T139 587T114 698Q114 776 157 838T293 936Q243 974 212 1026T180 1154Q180 1212 204 1265T274 1359T387 1423T540 1447Q640 1447 719 1416T857 1330L817 1265ZM272 726Q272 675 307 640T396 576T517 521T645 463Q699 489 723 +526T747 611Q747 647 732 675T691 726T630 768T556 804T474 839T392 877Q326 847 299 811T272 726Z" /> +<glyph unicode="¨" glyph-name="dieresis" horiz-adv-x="614" d="M239 1289Q239 1266 230 1246T205 1211T169 1187T125 1178Q103 1178 83 1187T48 1211T23 1246T14 1289Q14 1312 23 1333T47 1369T83 1394T125 1403Q148 1403 168 1394T205 1370T230 1333T239 +1289ZM598 1289Q598 1266 589 1246T565 1211T529 1187T485 1178Q462 1178 442 1187T406 1211T382 1246T373 1289Q373 1312 382 1333T406 1369T441 1394T485 1403Q508 1403 528 1394T564 1370T589 1333T598 1289Z" /> +<glyph unicode="©" glyph-name="copyright" horiz-adv-x="1596" d="M1030 463Q1038 468 1043 471T1055 475Q1066 475 1070 472T1080 463L1141 399Q1084 333 1001 297T802 260Q704 260 624 294T486 389T397 534T365 718Q365 819 399 903T495 1048T639 1142T821 +1176Q929 1176 1005 1142T1138 1053L1092 988Q1087 982 1079 976T1059 970Q1045 970 1030 981T989 1005T926 1030T829 1042Q759 1042 703 1020T607 955T546 853T524 718Q524 641 545 581T605 479T696 417T811 395Q859 395 892 401T949 417T991 439T1030 463ZM68 +716Q68 817 94 910T167 1085T282 1233T430 1348T604 1422T798 1448Q899 1448 992 1422T1167 1348T1315 1234T1429 1086T1503 911T1529 716Q1529 616 1503 523T1430 348T1315 201T1167 86T993 12T798 -14Q697 -14 604 12T430 86T282 200T168 348T94 522T68 716ZM168 +716Q168 627 190 545T253 392T351 262T478 163T629 99T798 76Q930 76 1045 126T1246 262T1381 465T1431 716Q1431 805 1409 888T1345 1042T1247 1173T1119 1273T968 1338T798 1361Q666 1361 551 1311T351 1173T217 968T168 716Z" /> +<glyph unicode="ª" glyph-name="ordfeminine" horiz-adv-x="684" d="M596 840H536Q518 840 509 845T492 869L480 918Q456 897 433 881T385 854T332 837T270 831Q232 831 200 841T143 871T106 922T92 993Q92 1027 111 1060T174 1120T290 1164T470 1184V1221Q470 +1284 441 1314T355 1344Q317 1344 292 1335T249 1316T216 1297T185 1288Q171 1288 161 1295T146 1313L124 1355Q176 1404 236 1427T370 1450Q424 1450 466 1433T537 1386T581 1314T596 1221V840ZM309 923Q360 923 397 942T470 996V1101Q400 1099 352 1091T273 1069T230 +1038T217 999Q217 957 243 940T309 923Z" /> +<glyph unicode="«" glyph-name="guillemotleft" horiz-adv-x="926" d="M138 518V541L387 930L445 902Q459 895 466 884T473 860Q473 843 463 827L304 566Q290 542 276 529Q291 515 304 493L463 232Q468 224 470 215T473 198Q473 170 445 157L387 129L138 +518ZM434 518V541L683 930L741 902Q755 895 762 884T769 860Q769 843 759 827L600 566Q586 542 572 529Q587 515 600 493L759 232Q764 224 766 215T769 198Q769 170 741 157L683 129L434 518Z" /> +<glyph unicode="¬" glyph-name="logicalnot" horiz-adv-x="1160" d="M148 739H1008V315H857V604H148V739Z" /> +<glyph unicode="­" glyph-name="uni00AD" horiz-adv-x="694" d="M100 675H594V524H100V675Z" /> +<glyph unicode="®" glyph-name="registered" horiz-adv-x="1596" d="M68 716Q68 817 94 910T167 1085T282 1233T430 1348T604 1422T798 1448Q899 1448 992 1422T1167 1348T1315 1234T1429 1086T1503 911T1529 716Q1529 616 1503 523T1430 348T1315 201T1167 +86T993 12T798 -14Q697 -14 604 12T430 86T282 200T168 348T94 522T68 716ZM168 716Q168 627 190 545T253 392T351 262T478 163T629 99T798 76Q930 76 1045 126T1246 262T1381 465T1431 716Q1431 805 1409 888T1345 1042T1247 1173T1119 1273T968 1338T798 1361Q666 +1361 551 1311T351 1173T217 968T168 716ZM654 626V272H498V1164H786Q958 1164 1041 1102T1124 917Q1124 823 1071 757T911 666Q928 656 940 641T964 606L1192 272H1044Q1011 272 995 297L794 599Q785 612 773 619T734 626H654ZM654 740H770Q825 740 863 750T925 +781T959 830T970 897Q970 934 961 962T930 1008T873 1035T786 1044H654V740Z" /> +<glyph unicode="¯" glyph-name="overscore" horiz-adv-x="614" d="M20 1348H594V1231H20V1348Z" /> +<glyph unicode="°" glyph-name="degree" horiz-adv-x="794" d="M70 1128Q70 1195 95 1254T164 1356T267 1425T396 1450Q465 1450 524 1425T628 1357T697 1254T722 1128Q722 1062 697 1004T628 902T525 833T396 807Q327 807 268 832T164 901T95 1003T70 1128ZM197 +1127Q197 1085 212 1049T254 985T317 943T396 927Q438 927 474 942T537 985T579 1048T594 1127Q594 1169 579 1206T537 1270T474 1313T396 1329Q354 1329 318 1314T254 1271T212 1206T197 1127Z" /> +<glyph unicode="±" glyph-name="plusminus" horiz-adv-x="1160" d="M651 1202V826H1058V690H651V322H505V690H100V826H505V1202H651ZM100 215H1058V80H100V215Z" /> +<glyph unicode="²" glyph-name="twosuperior" horiz-adv-x="664" d="M346 1637Q398 1637 440 1622T513 1580T559 1515T576 1429Q576 1389 564 1355T530 1289T482 1229T425 1170L263 1005Q286 1011 309 1015T354 1019H549Q570 1019 581 1008T593 977V900H82V943Q82 +956 87 970T104 996L325 1215Q350 1240 372 1266T410 1318T435 1371T445 1425Q445 1476 415 1503T340 1531Q294 1531 266 1507T223 1441Q215 1427 206 1419T179 1411Q175 1411 171 1411T161 1413L90 1425Q105 1531 174 1584T346 1637Z" /> +<glyph unicode="³" glyph-name="threesuperior" horiz-adv-x="664" d="M354 1637Q405 1637 446 1623T516 1583T562 1523T578 1449Q578 1321 459 1276Q525 1257 559 1218T594 1117Q594 1062 573 1020T518 950T438 907T344 892Q287 892 245 904T173 941T121 +1002T84 1085L139 1109Q154 1115 168 1115Q197 1115 208 1092Q214 1079 223 1063T247 1033T283 1010T337 1000Q368 1000 391 1010T431 1035T455 1071T463 1112Q463 1142 455 1163T427 1199T375 1220T295 1227V1314Q382 1315 417 1345T453 1427Q453 1477 424 1503T347 +1529Q299 1529 271 1506T230 1442Q222 1426 214 1419T190 1411Q186 1411 182 1411T172 1413L105 1425Q112 1478 134 1517T188 1583T263 1623T354 1637Z" /> +<glyph unicode="´" glyph-name="acute" horiz-adv-x="614" d="M597 1449L364 1191Q350 1176 337 1170T302 1163H196L344 1405Q358 1428 374 1438T423 1449H597Z" /> +<glyph unicode="µ" glyph-name="mu" horiz-adv-x="1112" d="M300 1013V355Q300 246 354 186T513 126Q591 126 660 163T787 266V1013H965V0H859Q821 0 811 37L797 146Q730 74 660 40T502 6Q428 6 372 31T277 103Q284 61 287 18T290 -64V-343H201Q163 -343 +143 -323T122 -267V1013H300Z" /> +<glyph unicode="¶" glyph-name="paragraph" horiz-adv-x="1338" d="M1302 1433V1280H1083V-201H926V1280H649V-201H492V660Q388 660 305 690T164 773T74 897T42 1049Q42 1135 73 1205T163 1326T305 1405T492 1433H1302Z" /> +<glyph unicode="·" glyph-name="middot" horiz-adv-x="546" d="M124 593Q124 624 135 652T167 700T215 732T272 744Q303 744 331 732T379 700T411 652T423 593Q423 563 411 536T379 489T331 457T272 445Q242 445 215 456T168 488T136 536T124 593Z" /> +<glyph unicode="¸" glyph-name="cedilla" horiz-adv-x="614" d="M172 -247Q178 -247 186 -250T205 -258T232 -266T269 -270Q311 -270 332 -254T354 -211Q354 -192 343 -179T312 -157T261 -142T193 -131L236 10H348L324 -70Q414 -90 454 -124T495 -213Q495 +-245 479 -270T435 -314T366 -341T278 -351Q237 -351 200 -343T132 -320L149 -265Q155 -247 172 -247Z" /> +<glyph unicode="¹" glyph-name="onesuperior" horiz-adv-x="664" d="M173 985H320V1425L324 1468L217 1380Q205 1371 191 1371Q168 1371 159 1385L120 1441L342 1631H450V985H580V900H173V985Z" /> +<glyph unicode="º" glyph-name="ordmasculine" horiz-adv-x="762" d="M382 1449Q452 1449 508 1428T605 1366T667 1269T689 1140Q689 1068 667 1010T605 912T509 850T382 828Q311 828 254 849T157 911T94 1010T72 1140Q72 1211 94 1268T156 1366T254 1427T382 +1449ZM382 934Q466 934 507 986T549 1139Q549 1239 508 1291T382 1343Q295 1343 254 1291T212 1139Q212 1039 253 987T382 934Z" /> +<glyph unicode="»" glyph-name="guillemotright" horiz-adv-x="926" d="M236 129L178 157Q150 170 150 198Q150 215 160 232L319 493Q332 517 346 529Q334 540 319 566L160 827Q150 844 150 861Q150 889 178 902L236 930L485 541V518L236 129ZM781 541V518L532 +129L474 157Q446 170 446 198Q446 215 456 232L615 493Q628 517 642 529Q630 540 615 566L456 827Q446 844 446 861Q446 889 474 902L532 930L781 541Z" /> +<glyph unicode="¼" glyph-name="onequarter" horiz-adv-x="1424" d="M1295 267H1404V202Q1404 191 1397 184T1377 176H1295V0H1186V176H880Q862 176 852 184T839 204L829 261L1171 729H1295V267ZM155 788H302V1228L306 1271L199 1183Q187 1174 173 1174Q150 +1174 141 1188L102 1244L324 1434H432V788H562V703H155V788ZM1186 508Q1186 527 1187 549T1191 594L950 267H1186V508ZM434 53Q415 22 393 11T342 0H266L1084 1372Q1102 1401 1125 1417T1180 1433H1257L434 53Z" /> +<glyph unicode="½" glyph-name="onehalf" horiz-adv-x="1424" d="M1126 737Q1178 737 1220 722T1293 680T1339 615T1356 529Q1356 489 1344 455T1310 389T1262 329T1205 270L1043 105Q1066 111 1089 115T1134 119H1329Q1350 119 1361 108T1373 77V0H862V43Q862 +56 867 70T884 96L1105 315Q1130 340 1152 366T1190 418T1215 471T1225 525Q1225 576 1195 603T1120 631Q1074 631 1046 607T1003 541Q995 527 986 519T959 511Q955 511 951 511T941 513L870 525Q885 631 954 684T1126 737ZM155 788H302V1228L306 1271L199 1183Q187 +1174 173 1174Q150 1174 141 1188L102 1244L324 1434H432V788H562V703H155V788ZM390 53Q371 22 349 11T298 0H222L1040 1372Q1058 1401 1081 1417T1136 1433H1213L390 53Z" /> +<glyph unicode="¾" glyph-name="threequarters" horiz-adv-x="1426" d="M1296 267H1405V202Q1405 191 1398 184T1378 176H1296V0H1187V176H881Q863 176 853 184T840 204L830 261L1172 729H1296V267ZM338 1440Q389 1440 430 1426T500 1386T546 1326T562 1252Q562 +1124 443 1079Q509 1060 543 1021T578 920Q578 865 557 823T502 753T422 710T328 695Q271 695 229 707T157 744T105 805T68 888L123 912Q138 918 152 918Q181 918 192 895Q198 882 207 866T231 836T267 813T321 803Q352 803 375 813T415 838T439 874T447 915Q447 +945 439 966T411 1002T359 1023T279 1030V1117Q366 1118 401 1148T437 1230Q437 1280 408 1306T331 1332Q283 1332 255 1309T214 1245Q206 1229 198 1222T174 1214Q170 1214 166 1214T156 1216L89 1228Q96 1281 118 1320T172 1386T247 1426T338 1440ZM1187 508Q1187 +527 1188 549T1192 594L951 267H1187V508ZM439 53Q420 22 398 11T347 0H271L1089 1372Q1107 1401 1130 1417T1185 1433H1262L439 53Z" /> +<glyph unicode="¿" glyph-name="questiondown" horiz-adv-x="796" d="M770 -212Q739 -241 702 -267T620 -313T524 -344T412 -356Q333 -356 266 -334T149 -271T72 -171T44 -37Q44 39 66 92T123 183T199 248T275 299T336 347T366 405L384 559H506L518 392V380Q518 +336 496 305T439 249T365 201T291 147T234 77T211 -22Q211 -66 228 -100T274 -159T342 -197T427 -210Q488 -210 531 -195T605 -162T654 -129T685 -114Q699 -114 707 -120T723 -137L770 -212ZM324 903Q324 929 333 952T359 992T399 1019T448 1029Q474 1029 497 1019T537 +992T563 952T573 903Q573 876 564 854T537 814T497 788T448 778Q422 778 399 787T360 814T334 853T324 903Z" /> +<glyph unicode="À" glyph-name="Agrave" horiz-adv-x="1360" d="M1353 0H1203Q1177 0 1161 13T1137 46L1003 392H360L226 46Q219 28 202 14T160 0H10L583 1433H780L1353 0ZM414 532H949L724 1115Q702 1169 681 1250Q670 1209 660 1175T639 1114L414 532ZM520 +1782Q552 1782 568 1776T604 1749L815 1546H676Q655 1546 643 1549T614 1565L319 1782H520Z" /> +<glyph unicode="Á" glyph-name="Aacute" horiz-adv-x="1360" d="M1353 0H1203Q1177 0 1161 13T1137 46L1003 392H360L226 46Q219 28 202 14T160 0H10L583 1433H780L1353 0ZM414 532H949L724 1115Q702 1169 681 1250Q670 1209 660 1175T639 1114L414 532ZM1021 +1782L727 1566Q710 1554 697 1550T663 1546H525L736 1749Q746 1759 754 1765T772 1775T792 1780T820 1782H1021Z" /> +<glyph unicode="Â" glyph-name="Acircumflex" horiz-adv-x="1360" d="M1353 0H1203Q1177 0 1161 13T1137 46L1003 392H360L226 46Q219 28 202 14T160 0H10L583 1433H780L1353 0ZM414 532H949L724 1115Q702 1169 681 1250Q670 1209 660 1175T639 1114L414 +532ZM1006 1546H871Q859 1546 845 1549T822 1559L692 1654Q684 1658 680 1662Q672 1656 668 1654L538 1559Q529 1553 515 1550T489 1546H354L592 1756H768L1006 1546Z" /> +<glyph unicode="Ã" glyph-name="Atilde" horiz-adv-x="1360" d="M1353 0H1203Q1177 0 1161 13T1137 46L1003 392H360L226 46Q219 28 202 14T160 0H10L583 1433H780L1353 0ZM414 532H949L724 1115Q702 1169 681 1250Q670 1209 660 1175T639 1114L414 532ZM801 +1663Q836 1663 854 1683T874 1741H972Q972 1698 961 1662T929 1600T877 1559T806 1544Q771 1544 739 1557T678 1585T622 1614T572 1627Q538 1627 520 1606T500 1548H400Q400 1591 411 1627T444 1690T497 1731T568 1746Q603 1746 635 1733T696 1705T751 1676T801 +1663Z" /> +<glyph unicode="Ä" glyph-name="Adieresis" horiz-adv-x="1360" d="M1353 0H1203Q1177 0 1161 13T1137 46L1003 392H360L226 46Q219 28 202 14T160 0H10L583 1433H780L1353 0ZM414 532H949L724 1115Q702 1169 681 1250Q670 1209 660 1175T639 1114L414 532ZM578 +1666Q578 1644 569 1625T545 1590T510 1567T466 1558Q445 1558 426 1566T391 1590T367 1624T358 1666Q358 1689 367 1709T391 1745T425 1769T466 1778Q489 1778 509 1769T545 1745T569 1710T578 1666ZM1004 1666Q1004 1644 995 1625T971 1590T936 1567T894 1558Q871 +1558 851 1566T816 1590T793 1624T784 1666Q784 1689 792 1709T816 1745T851 1769T894 1778Q916 1778 936 1769T971 1745T995 1710T1004 1666Z" /> +<glyph unicode="Å" glyph-name="Aring" horiz-adv-x="1360" d="M1353 0H1203Q1177 0 1161 13T1137 46L1003 392H360L226 46Q219 28 202 14T160 0H10L583 1433H780L1353 0ZM414 532H949L724 1115Q702 1169 681 1250Q670 1209 660 1175T639 1114L414 532ZM489 +1659Q489 1698 504 1731T545 1787T605 1824T677 1837Q716 1837 750 1824T811 1788T853 1731T868 1659Q868 1621 853 1589T812 1534T751 1498T677 1485Q639 1485 605 1498T546 1534T505 1589T489 1659ZM578 1659Q578 1616 605 1588T679 1559Q724 1559 751 1587T779 +1659Q779 1704 752 1732T679 1760Q632 1760 605 1732T578 1659Z" /> +<glyph unicode="Æ" glyph-name="AE" horiz-adv-x="1858" d="M733 1433H1754V1275H1005L1065 799H1624V647H1084L1145 158H1754V0H982L933 392H377L198 45Q187 25 169 13T124 0H-24L733 1433ZM450 532H915L821 1285Q809 1244 795 1210T766 1144L450 532Z" /> +<glyph unicode="Ç" glyph-name="Ccedilla" horiz-adv-x="1370" d="M643 -247Q649 -247 657 -250T676 -258T703 -266T740 -270Q782 -270 803 -254T825 -211Q825 -192 814 -179T783 -157T732 -142T664 -131L700 -13Q561 -1 448 57T256 211T133 435T90 716Q90 +878 142 1013T290 1245T517 1395T810 1449Q968 1449 1082 1400T1286 1267L1223 1178Q1216 1168 1207 1162T1181 1155Q1168 1155 1154 1164T1119 1188T1072 1218T1008 1248T922 1271T809 1281Q694 1281 599 1242T434 1129T327 951T288 716Q288 582 326 477T431 300T589 +189T785 151Q849 151 900 158T994 182T1075 222T1151 281Q1168 296 1184 296Q1200 296 1213 283L1289 200Q1206 103 1090 47T811 -15L795 -70Q885 -90 925 -124T966 -213Q966 -245 950 -270T906 -314T837 -341T749 -351Q708 -351 671 -343T603 -320L620 -265Q626 +-247 643 -247Z" /> +<glyph unicode="È" glyph-name="Egrave" horiz-adv-x="1162" d="M1057 1433V1275H369V799H926V647H369V158H1057V0H174V1433H1057ZM468 1782Q500 1782 516 1776T552 1749L763 1546H624Q603 1546 591 1549T562 1565L267 1782H468Z" /> +<glyph unicode="É" glyph-name="Eacute" horiz-adv-x="1162" d="M1057 1433V1275H369V799H926V647H369V158H1057V0H174V1433H1057ZM969 1782L675 1566Q658 1554 645 1550T611 1546H473L684 1749Q694 1759 702 1765T720 1775T740 1780T768 1782H969Z" /> +<glyph unicode="Ê" glyph-name="Ecircumflex" horiz-adv-x="1162" d="M1057 1433V1275H369V799H926V647H369V158H1057V0H174V1433H1057ZM954 1546H819Q807 1546 793 1549T770 1559L640 1654Q632 1658 628 1662Q620 1656 616 1654L486 1559Q477 1553 463 1550T437 +1546H302L540 1756H716L954 1546Z" /> +<glyph unicode="Ë" glyph-name="Edieresis" horiz-adv-x="1162" d="M1057 1433V1275H369V799H926V647H369V158H1057V0H174V1433H1057ZM526 1666Q526 1644 517 1625T493 1590T458 1567T414 1558Q393 1558 374 1566T339 1590T315 1624T306 1666Q306 1689 315 +1709T339 1745T373 1769T414 1778Q437 1778 457 1769T493 1745T517 1710T526 1666ZM952 1666Q952 1644 943 1625T919 1590T884 1567T842 1558Q819 1558 799 1566T764 1590T741 1624T732 1666Q732 1689 740 1709T764 1745T799 1769T842 1778Q864 1778 884 1769T919 +1745T943 1710T952 1666Z" /> +<glyph unicode="Ì" glyph-name="Igrave" horiz-adv-x="614" d="M404 0H210V1433H404V0ZM405 1782Q437 1782 453 1776T489 1749L700 1546H561Q540 1546 528 1549T499 1565L204 1782H405Z" /> +<glyph unicode="Í" glyph-name="Iacute" horiz-adv-x="614" d="M404 0H210V1433H404V0ZM906 1782L612 1566Q595 1554 582 1550T548 1546H410L621 1749Q631 1759 639 1765T657 1775T677 1780T705 1782H906Z" /> +<glyph unicode="Î" glyph-name="Icircumflex" horiz-adv-x="614" d="M404 0H210V1433H404V0ZM635 1546H500Q488 1546 474 1549T451 1559L321 1654Q313 1658 309 1662Q301 1656 297 1654L167 1559Q158 1553 144 1550T118 1546H-17L221 1756H397L635 1546Z" /> +<glyph unicode="Ï" glyph-name="Idieresis" horiz-adv-x="614" d="M404 0H210V1433H404V0ZM206 1666Q206 1644 197 1625T173 1590T138 1567T94 1558Q73 1558 54 1566T19 1590T-5 1624T-14 1666Q-14 1689 -5 1709T19 1745T53 1769T94 1778Q117 1778 137 1769T173 +1745T197 1710T206 1666ZM632 1666Q632 1644 623 1625T599 1590T564 1567T522 1558Q499 1558 479 1566T444 1590T421 1624T412 1666Q412 1689 420 1709T444 1745T479 1769T522 1778Q544 1778 564 1769T599 1745T623 1710T632 1666Z" /> +<glyph unicode="Ð" glyph-name="Eth" horiz-adv-x="1578" d="M50 780H247V1433H782Q940 1433 1070 1382T1294 1236T1438 1009T1489 716Q1489 555 1438 423T1294 197T1071 52T782 0H247V666H50V780ZM1290 716Q1290 848 1254 952T1152 1128T992 1238T782 1276H441V780H822V666H441V157H782Q898 +157 992 195T1152 304T1254 480T1290 716Z" /> +<glyph unicode="Ñ" glyph-name="Ntilde" horiz-adv-x="1512" d="M274 1433Q300 1433 312 1427T341 1400L1171 320Q1168 346 1167 370T1166 418V1433H1336V0H1238Q1215 0 1200 8T1169 35L340 1114Q342 1089 343 1065T344 1021V0H174V1433H274V1433ZM901 1663Q936 +1663 954 1683T974 1741H1072Q1072 1698 1061 1662T1029 1600T977 1559T906 1544Q871 1544 839 1557T778 1585T722 1614T672 1627Q638 1627 620 1606T600 1548H500Q500 1591 511 1627T544 1690T597 1731T668 1746Q703 1746 735 1733T796 1705T851 1676T901 1663Z" +/> +<glyph unicode="Ò" glyph-name="Ograve" horiz-adv-x="1596" d="M1505 716Q1505 555 1454 421T1310 189T1087 39T798 -15Q640 -15 510 38T287 189T143 420T92 716Q92 877 143 1011T287 1243T510 1395T798 1449Q956 1449 1086 1395T1310 1244T1454 1012T1505 +716ZM1306 716Q1306 848 1270 953T1168 1130T1008 1242T798 1281Q683 1281 589 1242T429 1131T326 953T290 716Q290 584 326 480T428 303T589 192T798 153Q914 153 1008 191T1168 302T1270 479T1306 716ZM640 1782Q672 1782 688 1776T724 1749L935 1546H796Q775 +1546 763 1549T734 1565L439 1782H640Z" /> +<glyph unicode="Ó" glyph-name="Oacute" horiz-adv-x="1596" d="M1505 716Q1505 555 1454 421T1310 189T1087 39T798 -15Q640 -15 510 38T287 189T143 420T92 716Q92 877 143 1011T287 1243T510 1395T798 1449Q956 1449 1086 1395T1310 1244T1454 1012T1505 +716ZM1306 716Q1306 848 1270 953T1168 1130T1008 1242T798 1281Q683 1281 589 1242T429 1131T326 953T290 716Q290 584 326 480T428 303T589 192T798 153Q914 153 1008 191T1168 302T1270 479T1306 716ZM1141 1782L847 1566Q830 1554 817 1550T783 1546H645L856 +1749Q866 1759 874 1765T892 1775T912 1780T940 1782H1141Z" /> +<glyph unicode="Ô" glyph-name="Ocircumflex" horiz-adv-x="1596" d="M1505 716Q1505 555 1454 421T1310 189T1087 39T798 -15Q640 -15 510 38T287 189T143 420T92 716Q92 877 143 1011T287 1243T510 1395T798 1449Q956 1449 1086 1395T1310 1244T1454 1012T1505 +716ZM1306 716Q1306 848 1270 953T1168 1130T1008 1242T798 1281Q683 1281 589 1242T429 1131T326 953T290 716Q290 584 326 480T428 303T589 192T798 153Q914 153 1008 191T1168 302T1270 479T1306 716ZM1126 1546H991Q979 1546 965 1549T942 1559L812 1654Q804 +1658 800 1662Q792 1656 788 1654L658 1559Q649 1553 635 1550T609 1546H474L712 1756H888L1126 1546Z" /> +<glyph unicode="Õ" glyph-name="Otilde" horiz-adv-x="1596" d="M1505 716Q1505 555 1454 421T1310 189T1087 39T798 -15Q640 -15 510 38T287 189T143 420T92 716Q92 877 143 1011T287 1243T510 1395T798 1449Q956 1449 1086 1395T1310 1244T1454 1012T1505 +716ZM1306 716Q1306 848 1270 953T1168 1130T1008 1242T798 1281Q683 1281 589 1242T429 1131T326 953T290 716Q290 584 326 480T428 303T589 192T798 153Q914 153 1008 191T1168 302T1270 479T1306 716ZM921 1663Q956 1663 974 1683T994 1741H1092Q1092 1698 1081 +1662T1049 1600T997 1559T926 1544Q891 1544 859 1557T798 1585T742 1614T692 1627Q658 1627 640 1606T620 1548H520Q520 1591 531 1627T564 1690T617 1731T688 1746Q723 1746 755 1733T816 1705T871 1676T921 1663Z" /> +<glyph unicode="Ö" glyph-name="Odieresis" horiz-adv-x="1596" d="M1505 716Q1505 555 1454 421T1310 189T1087 39T798 -15Q640 -15 510 38T287 189T143 420T92 716Q92 877 143 1011T287 1243T510 1395T798 1449Q956 1449 1086 1395T1310 1244T1454 1012T1505 +716ZM1306 716Q1306 848 1270 953T1168 1130T1008 1242T798 1281Q683 1281 589 1242T429 1131T326 953T290 716Q290 584 326 480T428 303T589 192T798 153Q914 153 1008 191T1168 302T1270 479T1306 716ZM698 1666Q698 1644 689 1625T665 1590T630 1567T586 1558Q565 +1558 546 1566T511 1590T487 1624T478 1666Q478 1689 487 1709T511 1745T545 1769T586 1778Q609 1778 629 1769T665 1745T689 1710T698 1666ZM1124 1666Q1124 1644 1115 1625T1091 1590T1056 1567T1014 1558Q991 1558 971 1566T936 1590T913 1624T904 1666Q904 +1689 912 1709T936 1745T971 1769T1014 1778Q1036 1778 1056 1769T1091 1745T1115 1710T1124 1666Z" /> +<glyph unicode="×" glyph-name="multiply" horiz-adv-x="1160" d="M1017 1014L673 670L1027 317L932 221L578 575L221 219L126 315L482 671L137 1016L232 1112L577 766L921 1110L1017 1014Z" /> +<glyph unicode="Ø" glyph-name="Oslash" horiz-adv-x="1596" d="M1505 716Q1505 555 1454 421T1310 189T1087 39T798 -15Q690 -15 596 9T423 82L323 -54Q301 -83 272 -96T214 -109H136L327 151Q215 249 154 393T92 716Q92 877 143 1011T287 1243T510 1395T798 +1449Q913 1449 1013 1420T1196 1337L1278 1448Q1298 1475 1314 1486T1362 1498H1462L1290 1263Q1393 1165 1449 1026T1505 716ZM290 716Q290 581 327 476T434 297L1093 1196Q1033 1238 959 1259T798 1281Q683 1281 589 1242T429 1131T326 953T290 716ZM1306 716Q1306 +842 1274 942T1181 1115L526 223Q642 153 798 153Q914 153 1008 191T1168 302T1270 479T1306 716Z" /> +<glyph unicode="Ù" glyph-name="Ugrave" horiz-adv-x="1460" d="M731 154Q820 154 890 184T1008 268T1082 397T1108 562V1433H1301V562Q1301 438 1262 332T1149 149T969 27T731 -17Q599 -17 493 27T313 148T200 332T160 562V1433H353V563Q353 473 378 398T452 +269T571 185T731 154ZM570 1782Q602 1782 618 1776T654 1749L865 1546H726Q705 1546 693 1549T664 1565L369 1782H570Z" /> +<glyph unicode="Ú" glyph-name="Uacute" horiz-adv-x="1460" d="M731 154Q820 154 890 184T1008 268T1082 397T1108 562V1433H1301V562Q1301 438 1262 332T1149 149T969 27T731 -17Q599 -17 493 27T313 148T200 332T160 562V1433H353V563Q353 473 378 398T452 +269T571 185T731 154ZM1071 1782L777 1566Q760 1554 747 1550T713 1546H575L786 1749Q796 1759 804 1765T822 1775T842 1780T870 1782H1071Z" /> +<glyph unicode="Û" glyph-name="Ucircumflex" horiz-adv-x="1460" d="M731 154Q820 154 890 184T1008 268T1082 397T1108 562V1433H1301V562Q1301 438 1262 332T1149 149T969 27T731 -17Q599 -17 493 27T313 148T200 332T160 562V1433H353V563Q353 473 378 +398T452 269T571 185T731 154ZM1056 1546H921Q909 1546 895 1549T872 1559L742 1654Q734 1658 730 1662Q722 1656 718 1654L588 1559Q579 1553 565 1550T539 1546H404L642 1756H818L1056 1546Z" /> +<glyph unicode="Ü" glyph-name="Udieresis" horiz-adv-x="1460" d="M731 154Q820 154 890 184T1008 268T1082 397T1108 562V1433H1301V562Q1301 438 1262 332T1149 149T969 27T731 -17Q599 -17 493 27T313 148T200 332T160 562V1433H353V563Q353 473 378 +398T452 269T571 185T731 154ZM628 1666Q628 1644 619 1625T595 1590T560 1567T516 1558Q495 1558 476 1566T441 1590T417 1624T408 1666Q408 1689 417 1709T441 1745T475 1769T516 1778Q539 1778 559 1769T595 1745T619 1710T628 1666ZM1054 1666Q1054 1644 1045 +1625T1021 1590T986 1567T944 1558Q921 1558 901 1566T866 1590T843 1624T834 1666Q834 1689 842 1709T866 1745T901 1769T944 1778Q966 1778 986 1769T1021 1745T1045 1710T1054 1666Z" /> +<glyph unicode="Ý" glyph-name="Yacute" horiz-adv-x="1258" d="M726 570V0H533V570L8 1433H178Q204 1433 219 1420T245 1388L573 831Q593 796 606 765T631 704Q642 735 655 766T688 831L1015 1388Q1024 1404 1039 1418T1080 1433H1252L726 570ZM971 1782L677 +1566Q660 1554 647 1550T613 1546H475L686 1749Q696 1759 704 1765T722 1775T742 1780T770 1782H971Z" /> +<glyph unicode="Þ" glyph-name="Thorn" horiz-adv-x="1222" d="M387 272V0H194V1433H387V1169H617Q753 1169 853 1138T1020 1048T1118 908T1151 725Q1151 625 1116 542T1014 399T846 306T617 272H387ZM387 426H617Q700 426 763 448T870 509T935 604T957 725Q957 +862 873 939T617 1016H387V426Z" /> +<glyph unicode="ß" glyph-name="germandbls" horiz-adv-x="1218" d="M673 1454Q776 1454 851 1424T976 1348T1048 1246T1072 1140Q1072 1080 1051 1037T997 961T928 903T858 854T805 805T783 747Q783 708 809 682T876 634T962 588T1049 529T1115 443T1142 +314Q1142 236 1114 175T1035 72T918 7T771 -16Q674 -16 595 18T456 107L497 175Q505 188 516 195T545 202Q563 202 583 188T630 157T695 126T786 112Q830 112 865 125T924 162T962 217T975 286Q975 342 947 377T877 437T786 484T695 534T625 604T597 712Q597 765 +619 804T675 875T748 934T820 991T876 1056T899 1140Q899 1172 887 1204T846 1263T774 1305T666 1322Q598 1322 543 1301T448 1238T387 1133T365 986V0H186V992Q186 1096 220 1181T319 1327T473 1421T673 1454Z" /> +<glyph unicode="à" glyph-name="agrave" horiz-adv-x="1014" d="M890 0H811Q785 0 769 8T748 42L728 136Q688 100 650 72T570 24T481 -6T375 -16Q316 -16 265 0T175 50T115 133T92 253Q92 313 125 368T231 467T424 537T715 569V648Q715 766 665 826T515 887Q450 +887 406 871T329 834T273 797T226 780Q208 780 195 789T173 813L141 870Q225 951 322 991T537 1031Q622 1031 688 1003T799 925T867 804T890 648V0ZM428 109Q475 109 514 118T587 145T653 188T715 245V456Q592 452 506 437T366 396T288 337T263 261Q263 221 276 +192T311 145T363 118T428 109ZM428 1449Q461 1449 477 1439T507 1405L656 1163H554Q533 1163 520 1169T493 1191L259 1449H428Z" /> +<glyph unicode="á" glyph-name="aacute" horiz-adv-x="1014" d="M890 0H811Q785 0 769 8T748 42L728 136Q688 100 650 72T570 24T481 -6T375 -16Q316 -16 265 0T175 50T115 133T92 253Q92 313 125 368T231 467T424 537T715 569V648Q715 766 665 826T515 887Q450 +887 406 871T329 834T273 797T226 780Q208 780 195 789T173 813L141 870Q225 951 322 991T537 1031Q622 1031 688 1003T799 925T867 804T890 648V0ZM428 109Q475 109 514 118T587 145T653 188T715 245V456Q592 452 506 437T366 396T288 337T263 261Q263 221 276 +192T311 145T363 118T428 109ZM818 1449L585 1191Q571 1176 558 1170T523 1163H417L565 1405Q579 1428 595 1438T644 1449H818Z" /> +<glyph unicode="â" glyph-name="acircumflex" horiz-adv-x="1014" d="M890 0H811Q785 0 769 8T748 42L728 136Q688 100 650 72T570 24T481 -6T375 -16Q316 -16 265 0T175 50T115 133T92 253Q92 313 125 368T231 467T424 537T715 569V648Q715 766 665 826T515 +887Q450 887 406 871T329 834T273 797T226 780Q208 780 195 789T173 813L141 870Q225 951 322 991T537 1031Q622 1031 688 1003T799 925T867 804T890 648V0ZM428 109Q475 109 514 118T587 145T653 188T715 245V456Q592 452 506 437T366 396T288 337T263 261Q263 +221 276 192T311 145T363 118T428 109ZM833 1169H714Q693 1169 674 1183L546 1309L529 1326L513 1309L384 1183Q378 1178 367 1174T344 1169H221L444 1433H610L833 1169Z" /> +<glyph unicode="ã" glyph-name="atilde" horiz-adv-x="1014" d="M890 0H811Q785 0 769 8T748 42L728 136Q688 100 650 72T570 24T481 -6T375 -16Q316 -16 265 0T175 50T115 133T92 253Q92 313 125 368T231 467T424 537T715 569V648Q715 766 665 826T515 887Q450 +887 406 871T329 834T273 797T226 780Q208 780 195 789T173 813L141 870Q225 951 322 991T537 1031Q622 1031 688 1003T799 925T867 804T890 648V0ZM428 109Q475 109 514 118T587 145T653 188T715 245V456Q592 452 506 437T366 396T288 337T263 261Q263 221 276 +192T311 145T363 118T428 109ZM638 1325Q674 1325 693 1346T714 1411H822Q822 1364 810 1325T774 1257T718 1214T645 1198Q610 1198 580 1212T522 1244T471 1275T424 1290Q352 1290 350 1202H239Q239 1250 252 1289T289 1357T346 1401T418 1417Q453 1417 483 1403T541 +1371T591 1340T638 1325Z" /> +<glyph unicode="ä" glyph-name="adieresis" horiz-adv-x="1014" d="M890 0H811Q785 0 769 8T748 42L728 136Q688 100 650 72T570 24T481 -6T375 -16Q316 -16 265 0T175 50T115 133T92 253Q92 313 125 368T231 467T424 537T715 569V648Q715 766 665 826T515 +887Q450 887 406 871T329 834T273 797T226 780Q208 780 195 789T173 813L141 870Q225 951 322 991T537 1031Q622 1031 688 1003T799 925T867 804T890 648V0ZM428 109Q475 109 514 118T587 145T653 188T715 245V456Q592 452 506 437T366 396T288 337T263 261Q263 +221 276 192T311 145T363 118T428 109ZM460 1289Q460 1266 451 1246T426 1211T390 1187T346 1178Q324 1178 304 1187T269 1211T244 1246T235 1289Q235 1312 244 1333T268 1369T304 1394T346 1403Q369 1403 389 1394T426 1370T451 1333T460 1289ZM819 1289Q819 1266 +810 1246T786 1211T750 1187T706 1178Q683 1178 663 1187T627 1211T603 1246T594 1289Q594 1312 603 1333T627 1369T662 1394T706 1403Q729 1403 749 1394T785 1370T810 1333T819 1289Z" /> +<glyph unicode="å" glyph-name="aring" horiz-adv-x="1014" d="M890 0H811Q785 0 769 8T748 42L728 136Q688 100 650 72T570 24T481 -6T375 -16Q316 -16 265 0T175 50T115 133T92 253Q92 313 125 368T231 467T424 537T715 569V648Q715 766 665 826T515 887Q450 +887 406 871T329 834T273 797T226 780Q208 780 195 789T173 813L141 870Q225 951 322 991T537 1031Q622 1031 688 1003T799 925T867 804T890 648V0ZM428 109Q475 109 514 118T587 145T653 188T715 245V456Q592 452 506 437T366 396T288 337T263 261Q263 221 276 +192T311 145T363 118T428 109ZM328 1315Q328 1357 344 1391T387 1450T451 1488T527 1502Q568 1502 604 1489T669 1450T713 1391T729 1315Q729 1274 713 1240T669 1182T605 1145T527 1131Q487 1131 451 1144T388 1182T344 1240T328 1315ZM428 1315Q428 1271 455 +1243T529 1215Q574 1215 601 1243T629 1315Q629 1360 602 1388T529 1416Q482 1416 455 1388T428 1315Z" /> +<glyph unicode="æ" glyph-name="ae" horiz-adv-x="1632" d="M1166 1029Q1248 1029 1318 997T1440 904T1521 756T1551 556Q1551 515 1543 501T1510 486H883Q887 395 910 328T971 215T1062 148T1180 126Q1249 126 1295 140T1371 173T1421 205T1456 220Q1470 +220 1479 216T1494 203L1541 142Q1508 102 1465 73T1372 24T1269 -4T1164 -14Q1047 -14 952 42T801 215Q774 153 731 109T634 37T522 -3T403 -16Q334 -16 277 1T179 54T115 142T92 267Q92 327 125 385T231 489T424 564T715 598V648Q715 766 665 829T515 892Q450 +892 406 875T329 836T273 798T226 780Q208 780 195 789T173 813L141 870Q225 951 315 991T519 1031Q639 1031 712 980T818 838Q872 926 958 977T1166 1029ZM715 486Q592 481 506 464T366 418T288 354T263 276Q263 189 313 149T444 109Q501 109 550 127T636 182T694 +274T715 403V486ZM1159 898Q1098 898 1050 878T968 818T913 723T885 597H1393Q1393 662 1378 717T1332 813T1259 875T1159 898Z" /> +<glyph unicode="ç" glyph-name="ccedilla" horiz-adv-x="934" d="M400 -247Q406 -247 414 -250T433 -258T460 -266T497 -270Q539 -270 560 -254T582 -211Q582 -192 571 -179T540 -157T489 -142T421 -131L458 -10Q375 1 305 40T183 146T103 303T74 507Q74 +620 105 716T197 881T347 990T551 1029Q657 1029 739 995T884 897L837 833Q829 822 821 816T798 810Q783 810 766 822T721 850T656 877T561 890Q487 890 430 864T335 787T277 666T257 507Q257 415 278 344T337 224T429 150T552 124Q617 124 659 139T729 174T775 +208T811 224Q822 224 830 220T845 207L895 142Q836 70 751 33T569 -12L552 -70Q642 -90 682 -124T723 -213Q723 -245 707 -270T663 -314T594 -341T506 -351Q465 -351 428 -343T360 -320L377 -265Q383 -247 400 -247Z" /> +<glyph unicode="è" glyph-name="egrave" horiz-adv-x="1048" d="M547 1029Q638 1029 715 999T848 911T935 769T967 576Q967 534 958 520T924 506H250Q252 410 276 339T342 221T442 150T572 126Q639 126 687 141T771 175T829 208T870 224Q892 224 904 207L954 +142Q921 102 875 73T777 24T668 -4T557 -14Q452 -14 364 21T211 125T110 295T74 527Q74 633 106 725T200 884T349 990T547 1029ZM551 898Q422 898 348 824T256 617H807Q807 679 790 730T740 819T660 877T551 898ZM451 1449Q484 1449 500 1439T530 1405L679 1163H577Q556 +1163 543 1169T516 1191L282 1449H451Z" /> +<glyph unicode="é" glyph-name="eacute" horiz-adv-x="1048" d="M547 1029Q638 1029 715 999T848 911T935 769T967 576Q967 534 958 520T924 506H250Q252 410 276 339T342 221T442 150T572 126Q639 126 687 141T771 175T829 208T870 224Q892 224 904 207L954 +142Q921 102 875 73T777 24T668 -4T557 -14Q452 -14 364 21T211 125T110 295T74 527Q74 633 106 725T200 884T349 990T547 1029ZM551 898Q422 898 348 824T256 617H807Q807 679 790 730T740 819T660 877T551 898ZM841 1449L608 1191Q594 1176 581 1170T546 1163H440L588 +1405Q602 1428 618 1438T667 1449H841Z" /> +<glyph unicode="ê" glyph-name="ecircumflex" horiz-adv-x="1048" d="M547 1029Q638 1029 715 999T848 911T935 769T967 576Q967 534 958 520T924 506H250Q252 410 276 339T342 221T442 150T572 126Q639 126 687 141T771 175T829 208T870 224Q892 224 904 +207L954 142Q921 102 875 73T777 24T668 -4T557 -14Q452 -14 364 21T211 125T110 295T74 527Q74 633 106 725T200 884T349 990T547 1029ZM551 898Q422 898 348 824T256 617H807Q807 679 790 730T740 819T660 877T551 898ZM856 1169H737Q716 1169 697 1183L569 1309L552 +1326L536 1309L407 1183Q401 1178 390 1174T367 1169H244L467 1433H633L856 1169Z" /> +<glyph unicode="ë" glyph-name="edieresis" horiz-adv-x="1048" d="M547 1029Q638 1029 715 999T848 911T935 769T967 576Q967 534 958 520T924 506H250Q252 410 276 339T342 221T442 150T572 126Q639 126 687 141T771 175T829 208T870 224Q892 224 904 207L954 +142Q921 102 875 73T777 24T668 -4T557 -14Q452 -14 364 21T211 125T110 295T74 527Q74 633 106 725T200 884T349 990T547 1029ZM551 898Q422 898 348 824T256 617H807Q807 679 790 730T740 819T660 877T551 898ZM483 1289Q483 1266 474 1246T449 1211T413 1187T369 +1178Q347 1178 327 1187T292 1211T267 1246T258 1289Q258 1312 267 1333T291 1369T327 1394T369 1403Q392 1403 412 1394T449 1370T474 1333T483 1289ZM842 1289Q842 1266 833 1246T809 1211T773 1187T729 1178Q706 1178 686 1187T650 1211T626 1246T617 1289Q617 +1312 626 1333T650 1369T685 1394T729 1403Q752 1403 772 1394T808 1370T833 1333T842 1289Z" /> +<glyph unicode="ì" glyph-name="igrave" horiz-adv-x="512" d="M344 1013V0H166V1013H344ZM418 1449Q451 1449 467 1439T497 1405L646 1163H544Q523 1163 510 1169T483 1191L249 1449H418Z" /> +<glyph unicode="í" glyph-name="iacute" horiz-adv-x="512" d="M344 1013V0H166V1013H344ZM808 1449L575 1191Q561 1176 548 1170T513 1163H407L555 1405Q569 1428 585 1438T634 1449H808Z" /> +<glyph unicode="î" glyph-name="icircumflex" horiz-adv-x="512" d="M344 1013V0H166V1013H344ZM822 1169H703Q682 1169 663 1183L535 1309L518 1326L502 1309L373 1183Q367 1178 356 1174T333 1169H210L433 1433H599L822 1169Z" /> +<glyph unicode="ï" glyph-name="idieresis" horiz-adv-x="512" d="M344 1013V0H166V1013H344ZM450 1289Q450 1266 441 1246T416 1211T380 1187T336 1178Q314 1178 294 1187T259 1211T234 1246T225 1289Q225 1312 234 1333T258 1369T294 1394T336 1403Q359 +1403 379 1394T416 1370T441 1333T450 1289ZM809 1289Q809 1266 800 1246T776 1211T740 1187T696 1178Q673 1178 653 1187T617 1211T593 1246T584 1289Q584 1312 593 1333T617 1369T652 1394T696 1403Q719 1403 739 1394T775 1370T800 1333T809 1289Z" /> +<glyph unicode="ð" glyph-name="eth" horiz-adv-x="1106" d="M417 1065Q413 1072 411 1078T408 1091Q408 1113 431 1128L534 1200Q489 1220 439 1237T331 1268Q313 1273 301 1286T288 1323Q288 1338 293 1352L313 1414Q409 1398 499 1368T670 1290L837 1412L872 +1355Q880 1342 880 1331Q880 1310 858 1294L761 1227Q821 1178 870 1116T955 977T1009 807T1029 604Q1029 461 998 347T906 153T753 30T541 -13Q443 -13 358 20T211 114T112 265T76 466Q76 560 107 643T196 790T336 890T523 927Q623 927 711 884T865 754Q845 890 +787 985T634 1144L450 1009L417 1065ZM545 125Q616 125 673 152T771 233T835 370T861 564Q845 607 819 647T756 719T669 769T557 788Q482 788 426 763T331 695T274 592T254 464Q254 383 277 320T340 213T432 148T545 125Z" /> +<glyph unicode="ñ" glyph-name="ntilde" horiz-adv-x="1112" d="M146 0V1013H252Q290 1013 300 976L314 866Q380 939 461 984T650 1029Q733 1029 796 1002T902 924T967 802T989 645V0H811V645Q811 760 759 823T598 887Q519 887 451 849T324 746V0H146ZM675 +1325Q711 1325 730 1346T751 1411H859Q859 1364 847 1325T811 1257T755 1214T682 1198Q647 1198 617 1212T559 1244T508 1275T461 1290Q389 1290 387 1202H276Q276 1250 289 1289T326 1357T383 1401T455 1417Q490 1417 520 1403T578 1371T628 1340T675 1325Z" /> +<glyph unicode="ò" glyph-name="ograve" horiz-adv-x="1112" d="M556 1029Q667 1029 756 992T908 887T1004 723T1038 507Q1038 387 1005 291T909 127T757 23T556 -14Q445 -14 356 22T203 127T106 291T72 507Q72 626 106 722T203 887T355 992T556 1029ZM556 +125Q706 125 780 225T854 506Q854 687 780 788T556 889Q480 889 424 863T331 788T275 668T256 506Q256 416 274 345T330 226T424 151T556 125ZM458 1449Q491 1449 507 1439T537 1405L686 1163H584Q563 1163 550 1169T523 1191L289 1449H458Z" /> +<glyph unicode="ó" glyph-name="oacute" horiz-adv-x="1112" d="M556 1029Q667 1029 756 992T908 887T1004 723T1038 507Q1038 387 1005 291T909 127T757 23T556 -14Q445 -14 356 22T203 127T106 291T72 507Q72 626 106 722T203 887T355 992T556 1029ZM556 +125Q706 125 780 225T854 506Q854 687 780 788T556 889Q480 889 424 863T331 788T275 668T256 506Q256 416 274 345T330 226T424 151T556 125ZM848 1449L615 1191Q601 1176 588 1170T553 1163H447L595 1405Q609 1428 625 1438T674 1449H848Z" /> +<glyph unicode="ô" glyph-name="ocircumflex" horiz-adv-x="1112" d="M556 1029Q667 1029 756 992T908 887T1004 723T1038 507Q1038 387 1005 291T909 127T757 23T556 -14Q445 -14 356 22T203 127T106 291T72 507Q72 626 106 722T203 887T355 992T556 1029ZM556 +125Q706 125 780 225T854 506Q854 687 780 788T556 889Q480 889 424 863T331 788T275 668T256 506Q256 416 274 345T330 226T424 151T556 125ZM863 1169H744Q723 1169 704 1183L576 1309L559 1326L543 1309L414 1183Q408 1178 397 1174T374 1169H251L474 1433H640L863 +1169Z" /> +<glyph unicode="õ" glyph-name="otilde" horiz-adv-x="1112" d="M556 1029Q667 1029 756 992T908 887T1004 723T1038 507Q1038 387 1005 291T909 127T757 23T556 -14Q445 -14 356 22T203 127T106 291T72 507Q72 626 106 722T203 887T355 992T556 1029ZM556 +125Q706 125 780 225T854 506Q854 687 780 788T556 889Q480 889 424 863T331 788T275 668T256 506Q256 416 274 345T330 226T424 151T556 125ZM668 1325Q704 1325 723 1346T744 1411H852Q852 1364 840 1325T804 1257T748 1214T675 1198Q640 1198 610 1212T552 1244T501 +1275T454 1290Q382 1290 380 1202H269Q269 1250 282 1289T319 1357T376 1401T448 1417Q483 1417 513 1403T571 1371T621 1340T668 1325Z" /> +<glyph unicode="ö" glyph-name="odieresis" horiz-adv-x="1112" d="M556 1029Q667 1029 756 992T908 887T1004 723T1038 507Q1038 387 1005 291T909 127T757 23T556 -14Q445 -14 356 22T203 127T106 291T72 507Q72 626 106 722T203 887T355 992T556 1029ZM556 +125Q706 125 780 225T854 506Q854 687 780 788T556 889Q480 889 424 863T331 788T275 668T256 506Q256 416 274 345T330 226T424 151T556 125ZM490 1289Q490 1266 481 1246T456 1211T420 1187T376 1178Q354 1178 334 1187T299 1211T274 1246T265 1289Q265 1312 +274 1333T298 1369T334 1394T376 1403Q399 1403 419 1394T456 1370T481 1333T490 1289ZM849 1289Q849 1266 840 1246T816 1211T780 1187T736 1178Q713 1178 693 1187T657 1211T633 1246T624 1289Q624 1312 633 1333T657 1369T692 1394T736 1403Q759 1403 779 1394T815 +1370T840 1333T849 1289Z" /> +<glyph unicode="÷" glyph-name="divide" horiz-adv-x="1160" d="M100 739H1058V604H100V739ZM454 1026Q454 1052 463 1075T489 1115T528 1142T578 1152Q604 1152 626 1142T666 1115T693 1075T703 1026Q703 999 693 977T666 937T627 911T578 901Q551 901 529 +910T490 937T464 976T454 1026ZM454 314Q454 340 463 363T489 403T528 430T578 440Q604 440 626 430T666 403T693 363T703 314Q703 287 693 265T666 225T627 199T578 189Q551 189 529 198T490 225T464 264T454 314Z" /> +<glyph unicode="ø" glyph-name="oslash" horiz-adv-x="1112" d="M912 884Q973 816 1006 721T1039 507Q1039 387 1006 291T910 127T758 23T557 -14Q481 -14 416 3T296 52L241 -22Q219 -51 190 -63T131 -76H64L209 120Q143 189 108 286T73 507Q73 626 107 722T204 +887T356 992T557 1029Q636 1029 703 1010T827 956L895 1047Q915 1074 931 1085T979 1097H1069L912 884ZM246 506Q246 346 305 249L741 839Q668 895 557 895Q481 895 423 868T326 791T266 669T246 506ZM557 120Q632 120 689 146T786 223T846 344T866 506Q866 657 +814 753L381 168Q451 120 557 120Z" /> +<glyph unicode="ù" glyph-name="ugrave" horiz-adv-x="1112" d="M300 1013V367Q300 252 353 189T513 126Q591 126 660 163T787 266V1013H965V0H859Q821 0 811 37L797 146Q731 73 649 29T461 -16Q378 -16 315 11T208 89T144 210T122 367V1013H300ZM452 1449Q485 +1449 501 1439T531 1405L680 1163H578Q557 1163 544 1169T517 1191L283 1449H452Z" /> +<glyph unicode="ú" glyph-name="uacute" horiz-adv-x="1112" d="M300 1013V367Q300 252 353 189T513 126Q591 126 660 163T787 266V1013H965V0H859Q821 0 811 37L797 146Q731 73 649 29T461 -16Q378 -16 315 11T208 89T144 210T122 367V1013H300ZM842 1449L609 +1191Q595 1176 582 1170T547 1163H441L589 1405Q603 1428 619 1438T668 1449H842Z" /> +<glyph unicode="û" glyph-name="ucircumflex" horiz-adv-x="1112" d="M300 1013V367Q300 252 353 189T513 126Q591 126 660 163T787 266V1013H965V0H859Q821 0 811 37L797 146Q731 73 649 29T461 -16Q378 -16 315 11T208 89T144 210T122 367V1013H300ZM857 +1169H738Q717 1169 698 1183L570 1309L553 1326L537 1309L408 1183Q402 1178 391 1174T368 1169H245L468 1433H634L857 1169Z" /> +<glyph unicode="ü" glyph-name="udieresis" horiz-adv-x="1112" d="M300 1013V367Q300 252 353 189T513 126Q591 126 660 163T787 266V1013H965V0H859Q821 0 811 37L797 146Q731 73 649 29T461 -16Q378 -16 315 11T208 89T144 210T122 367V1013H300ZM484 +1289Q484 1266 475 1246T450 1211T414 1187T370 1178Q348 1178 328 1187T293 1211T268 1246T259 1289Q259 1312 268 1333T292 1369T328 1394T370 1403Q393 1403 413 1394T450 1370T475 1333T484 1289ZM843 1289Q843 1266 834 1246T810 1211T774 1187T730 1178Q707 +1178 687 1187T651 1211T627 1246T618 1289Q618 1312 627 1333T651 1369T686 1394T730 1403Q753 1403 773 1394T809 1370T834 1333T843 1289Z" /> +<glyph unicode="ý" glyph-name="yacute" horiz-adv-x="1024" d="M443 -299Q434 -319 421 -331T379 -343H247L432 59L14 1013H168Q191 1013 204 1002T223 976L494 338Q503 316 509 294T521 249Q528 272 535 294T551 339L814 976Q820 992 834 1002T866 1013H1008L443 +-299ZM825 1449L592 1191Q578 1176 565 1170T530 1163H424L572 1405Q586 1428 602 1438T651 1449H825Z" /> +<glyph unicode="þ" glyph-name="thorn" horiz-adv-x="1104" d="M146 -343V1473H324V866Q387 940 469 984T656 1029Q743 1029 814 996T935 898T1012 736T1039 513Q1039 401 1009 305T923 138T786 27T602 -14Q507 -14 441 20T324 118V-343H146ZM597 887Q510 +887 445 847T324 734V244Q373 178 431 151T562 124Q703 124 779 225T855 513Q855 612 838 683T787 799T706 866T597 887Z" /> +<glyph unicode="ÿ" glyph-name="ydieresis" horiz-adv-x="1024" d="M443 -299Q434 -319 421 -331T379 -343H247L432 59L14 1013H168Q191 1013 204 1002T223 976L494 338Q503 316 509 294T521 249Q528 272 535 294T551 339L814 976Q820 992 834 1002T866 1013H1008L443 +-299ZM467 1289Q467 1266 458 1246T433 1211T397 1187T353 1178Q331 1178 311 1187T276 1211T251 1246T242 1289Q242 1312 251 1333T275 1369T311 1394T353 1403Q376 1403 396 1394T433 1370T458 1333T467 1289ZM826 1289Q826 1266 817 1246T793 1211T757 1187T713 +1178Q690 1178 670 1187T634 1211T610 1246T601 1289Q601 1312 610 1333T634 1369T669 1394T713 1403Q736 1403 756 1394T792 1370T817 1333T826 1289Z" /> +<glyph unicode="–" glyph-name="endash" horiz-adv-x="1112" d="M156 655H956V525H156V655Z" /> +<glyph unicode="—" glyph-name="emdash" horiz-adv-x="1642" d="M156 655H1486V525H156V655Z" /> +<glyph unicode="‘" glyph-name="quoteleft" horiz-adv-x="424" d="M114 1012Q85 1060 72 1108T58 1205Q58 1295 102 1377T227 1529L282 1495Q290 1490 292 1484T295 1472Q295 1458 285 1448Q269 1428 254 1406T227 1360T208 1308T201 1251Q201 1219 210 +1185T243 1113Q250 1102 250 1090Q250 1066 223 1056L114 1012Z" /> +<glyph unicode="’" glyph-name="quoteright" horiz-adv-x="424" d="M271 1508Q300 1460 313 1412T326 1316Q326 1225 282 1143T158 991L103 1025Q95 1030 93 1036T90 1048Q90 1062 100 1072Q116 1091 131 1113T158 1160T177 1212T184 1269Q184 1301 175 +1335T142 1407Q135 1418 135 1429Q135 1453 162 1464L271 1508Z" /> +<glyph unicode="‚" glyph-name="quotesinglbase" horiz-adv-x="424" d="M271 241Q300 193 313 145T326 49Q326 -42 282 -124T158 -276L103 -242Q95 -237 93 -231T90 -219Q90 -205 100 -195Q116 -176 131 -154T158 -107T177 -55T184 2Q184 34 175 68T142 +140Q135 151 135 162Q135 186 162 197L271 241Z" /> +<glyph unicode="“" glyph-name="quotedblleft" horiz-adv-x="728" d="M114 1012Q85 1060 72 1108T58 1205Q58 1295 102 1377T227 1529L282 1495Q290 1490 292 1484T295 1472Q295 1458 285 1448Q269 1428 254 1406T227 1360T208 1308T201 1251Q201 1219 +210 1185T243 1113Q250 1102 250 1090Q250 1066 223 1056L114 1012ZM418 1012Q389 1060 376 1108T362 1205Q362 1295 406 1377T531 1529L586 1495Q594 1490 596 1484T599 1472Q599 1458 589 1448Q573 1428 558 1406T531 1360T512 1308T505 1251Q505 1219 514 1185T547 +1113Q554 1102 554 1090Q554 1066 527 1056L418 1012Z" /> +<glyph unicode="”" glyph-name="quotedblright" horiz-adv-x="728" d="M271 1508Q300 1460 313 1412T326 1316Q326 1225 282 1143T158 991L103 1025Q95 1030 93 1036T90 1048Q90 1062 100 1072Q116 1091 131 1113T158 1160T177 1212T184 1269Q184 1301 +175 1335T142 1407Q135 1418 135 1429Q135 1453 162 1464L271 1508ZM575 1508Q604 1460 617 1412T630 1316Q630 1225 586 1143T462 991L407 1025Q399 1030 397 1036T394 1048Q394 1062 404 1072Q420 1091 435 1113T462 1160T481 1212T488 1269Q488 1301 479 1335T446 +1407Q439 1418 439 1429Q439 1453 466 1464L575 1508Z" /> +<glyph unicode="„" glyph-name="quotedblbase" horiz-adv-x="728" d="M271 241Q300 193 313 145T326 49Q326 -42 282 -124T158 -276L103 -242Q95 -237 93 -231T90 -219Q90 -205 100 -195Q116 -176 131 -154T158 -107T177 -55T184 2Q184 34 175 68T142 140Q135 +151 135 162Q135 186 162 197L271 241ZM575 241Q604 193 617 145T630 49Q630 -42 586 -124T462 -276L407 -242Q399 -237 397 -231T394 -219Q394 -205 404 -195Q420 -176 435 -154T462 -107T481 -55T488 2Q488 34 479 68T446 140Q439 151 439 162Q439 186 466 197L575 +241Z" /> +<glyph unicode="•" glyph-name="bullet" horiz-adv-x="1160" d="M208 595Q208 672 237 740T317 858T434 938T578 968Q655 968 723 939T841 859T921 740T951 595Q951 518 922 451T842 333T723 254T578 224Q502 224 435 253T317 333T238 450T208 595Z" /> +<glyph unicode="‹" glyph-name="guilsinglleft" horiz-adv-x="632" d="M138 518V541L387 930L445 902Q459 895 466 884T473 860Q473 843 463 827L304 566Q290 542 276 529Q291 515 304 493L463 232Q468 224 470 215T473 198Q473 170 445 157L387 129L138 518Z" /> +<glyph unicode="›" glyph-name="guilsinglright" horiz-adv-x="632" d="M485 541V518L236 129L178 157Q150 170 150 198Q150 215 160 232L319 493Q332 517 346 529Q334 540 319 566L160 827Q150 844 150 861Q150 889 178 902L236 930L485 541Z" /> +<hkern g1="quotedbl" g2="ampersand" k="182" /> +<hkern g1="quotedbl" g2="comma" k="228" /> +<hkern g1="quotedbl" g2="hyphen" k="178" /> +<hkern g1="quotedbl" g2="period" k="228" /> +<hkern g1="quotedbl" g2="slash" k="182" /> +<hkern g1="quotedbl" g2="at" k="46" /> +<hkern g1="quotedbl" g2="A" k="182" /> +<hkern g1="quotedbl" g2="C" k="46" /> +<hkern g1="quotedbl" g2="G" k="46" /> +<hkern g1="quotedbl" g2="O" k="46" /> +<hkern g1="quotedbl" g2="Q" k="46" /> +<hkern g1="quotedbl" g2="V" k="-48" /> +<hkern g1="quotedbl" g2="W" k="-48" /> +<hkern g1="quotedbl" g2="Y" k="-30" /> +<hkern g1="quotedbl" g2="backslash" k="-48" /> +<hkern g1="quotedbl" g2="a" k="64" /> +<hkern g1="quotedbl" g2="c" k="92" /> +<hkern g1="quotedbl" g2="d" k="92" /> +<hkern g1="quotedbl" g2="e" k="92" /> +<hkern g1="quotedbl" g2="o" k="92" /> +<hkern g1="quotedbl" g2="q" k="92" /> +<hkern g1="quotedbl" g2="guillemotleft" k="178" /> +<hkern g1="quotedbl" g2="uni00AD" k="178" /> +<hkern g1="quotedbl" g2="middot" k="178" /> +<hkern g1="quotedbl" g2="guillemotright" k="178" /> +<hkern g1="quotedbl" g2="Agrave" k="182" /> +<hkern g1="quotedbl" g2="Aacute" k="182" /> +<hkern g1="quotedbl" g2="Acircumflex" k="182" /> +<hkern g1="quotedbl" g2="Atilde" k="182" /> +<hkern g1="quotedbl" g2="Adieresis" k="182" /> +<hkern g1="quotedbl" g2="Aring" k="182" /> +<hkern g1="quotedbl" g2="AE" k="182" /> +<hkern g1="quotedbl" g2="Ccedilla" k="46" /> +<hkern g1="quotedbl" g2="Ograve" k="46" /> +<hkern g1="quotedbl" g2="Oacute" k="46" /> +<hkern g1="quotedbl" g2="Ocircumflex" k="46" /> +<hkern g1="quotedbl" g2="Otilde" k="46" /> +<hkern g1="quotedbl" g2="Odieresis" k="46" /> +<hkern g1="quotedbl" g2="Oslash" k="46" /> +<hkern g1="quotedbl" g2="Yacute" k="-30" /> +<hkern g1="quotedbl" g2="agrave" k="64" /> +<hkern g1="quotedbl" g2="aacute" k="64" /> +<hkern g1="quotedbl" g2="acircumflex" k="64" /> +<hkern g1="quotedbl" g2="atilde" k="64" /> +<hkern g1="quotedbl" g2="adieresis" k="64" /> +<hkern g1="quotedbl" g2="aring" k="64" /> +<hkern g1="quotedbl" g2="ae" k="64" /> +<hkern g1="quotedbl" g2="ccedilla" k="92" /> +<hkern g1="quotedbl" g2="egrave" k="92" /> +<hkern g1="quotedbl" g2="eacute" k="92" /> +<hkern g1="quotedbl" g2="ecircumflex" k="92" /> +<hkern g1="quotedbl" g2="edieresis" k="92" /> +<hkern g1="quotedbl" g2="eth" k="92" /> +<hkern g1="quotedbl" g2="ograve" k="92" /> +<hkern g1="quotedbl" g2="oacute" k="92" /> +<hkern g1="quotedbl" g2="ocircumflex" k="92" /> +<hkern g1="quotedbl" g2="otilde" k="92" /> +<hkern g1="quotedbl" g2="odieresis" k="92" /> +<hkern g1="quotedbl" g2="oslash" k="92" /> +<hkern g1="quotedbl" g2="OE" k="46" /> +<hkern g1="quotedbl" g2="oe" k="92" /> +<hkern g1="quotedbl" g2="endash" k="178" /> +<hkern g1="quotedbl" g2="emdash" k="178" /> +<hkern g1="quotedbl" g2="quotesinglbase" k="228" /> +<hkern g1="quotedbl" g2="quotedblbase" k="228" /> +<hkern g1="quotedbl" g2="bullet" k="178" /> +<hkern g1="quotedbl" g2="guilsinglleft" k="178" /> +<hkern g1="quotedbl" g2="guilsinglright" k="178" /> +<hkern g1="quotesingle" g2="ampersand" k="182" /> +<hkern g1="quotesingle" g2="comma" k="228" /> +<hkern g1="quotesingle" g2="hyphen" k="178" /> +<hkern g1="quotesingle" g2="period" k="228" /> +<hkern g1="quotesingle" g2="slash" k="182" /> +<hkern g1="quotesingle" g2="at" k="46" /> +<hkern g1="quotesingle" g2="A" k="182" /> +<hkern g1="quotesingle" g2="C" k="46" /> +<hkern g1="quotesingle" g2="G" k="46" /> +<hkern g1="quotesingle" g2="O" k="46" /> +<hkern g1="quotesingle" g2="Q" k="46" /> +<hkern g1="quotesingle" g2="V" k="-48" /> +<hkern g1="quotesingle" g2="W" k="-48" /> +<hkern g1="quotesingle" g2="Y" k="-30" /> +<hkern g1="quotesingle" g2="backslash" k="-48" /> +<hkern g1="quotesingle" g2="a" k="64" /> +<hkern g1="quotesingle" g2="c" k="92" /> +<hkern g1="quotesingle" g2="d" k="92" /> +<hkern g1="quotesingle" g2="e" k="92" /> +<hkern g1="quotesingle" g2="o" k="92" /> +<hkern g1="quotesingle" g2="q" k="92" /> +<hkern g1="quotesingle" g2="guillemotleft" k="178" /> +<hkern g1="quotesingle" g2="uni00AD" k="178" /> +<hkern g1="quotesingle" g2="middot" k="178" /> +<hkern g1="quotesingle" g2="guillemotright" k="178" /> +<hkern g1="quotesingle" g2="Agrave" k="182" /> +<hkern g1="quotesingle" g2="Aacute" k="182" /> +<hkern g1="quotesingle" g2="Acircumflex" k="182" /> +<hkern g1="quotesingle" g2="Atilde" k="182" /> +<hkern g1="quotesingle" g2="Adieresis" k="182" /> +<hkern g1="quotesingle" g2="Aring" k="182" /> +<hkern g1="quotesingle" g2="AE" k="182" /> +<hkern g1="quotesingle" g2="Ccedilla" k="46" /> +<hkern g1="quotesingle" g2="Ograve" k="46" /> +<hkern g1="quotesingle" g2="Oacute" k="46" /> +<hkern g1="quotesingle" g2="Ocircumflex" k="46" /> +<hkern g1="quotesingle" g2="Otilde" k="46" /> +<hkern g1="quotesingle" g2="Odieresis" k="46" /> +<hkern g1="quotesingle" g2="Oslash" k="46" /> +<hkern g1="quotesingle" g2="Yacute" k="-30" /> +<hkern g1="quotesingle" g2="agrave" k="64" /> +<hkern g1="quotesingle" g2="aacute" k="64" /> +<hkern g1="quotesingle" g2="acircumflex" k="64" /> +<hkern g1="quotesingle" g2="atilde" k="64" /> +<hkern g1="quotesingle" g2="adieresis" k="64" /> +<hkern g1="quotesingle" g2="aring" k="64" /> +<hkern g1="quotesingle" g2="ae" k="64" /> +<hkern g1="quotesingle" g2="ccedilla" k="92" /> +<hkern g1="quotesingle" g2="egrave" k="92" /> +<hkern g1="quotesingle" g2="eacute" k="92" /> +<hkern g1="quotesingle" g2="ecircumflex" k="92" /> +<hkern g1="quotesingle" g2="edieresis" k="92" /> +<hkern g1="quotesingle" g2="eth" k="92" /> +<hkern g1="quotesingle" g2="ograve" k="92" /> +<hkern g1="quotesingle" g2="oacute" k="92" /> +<hkern g1="quotesingle" g2="ocircumflex" k="92" /> +<hkern g1="quotesingle" g2="otilde" k="92" /> +<hkern g1="quotesingle" g2="odieresis" k="92" /> +<hkern g1="quotesingle" g2="oslash" k="92" /> +<hkern g1="quotesingle" g2="OE" k="46" /> +<hkern g1="quotesingle" g2="oe" k="92" /> +<hkern g1="quotesingle" g2="endash" k="178" /> +<hkern g1="quotesingle" g2="emdash" k="178" /> +<hkern g1="quotesingle" g2="quotesinglbase" k="228" /> +<hkern g1="quotesingle" g2="quotedblbase" k="228" /> +<hkern g1="quotesingle" g2="bullet" k="178" /> +<hkern g1="quotesingle" g2="guilsinglleft" k="178" /> +<hkern g1="quotesingle" g2="guilsinglright" k="178" /> +<hkern g1="parenleft" g2="at" k="40" /> +<hkern g1="parenleft" g2="C" k="40" /> +<hkern g1="parenleft" g2="G" k="40" /> +<hkern g1="parenleft" g2="O" k="40" /> +<hkern g1="parenleft" g2="Q" k="40" /> +<hkern g1="parenleft" g2="c" k="32" /> +<hkern g1="parenleft" g2="d" k="32" /> +<hkern g1="parenleft" g2="e" k="32" /> +<hkern g1="parenleft" g2="o" k="32" /> +<hkern g1="parenleft" g2="q" k="32" /> +<hkern g1="parenleft" g2="Ccedilla" k="40" /> +<hkern g1="parenleft" g2="Ograve" k="40" /> +<hkern g1="parenleft" g2="Oacute" k="40" /> +<hkern g1="parenleft" g2="Ocircumflex" k="40" /> +<hkern g1="parenleft" g2="Otilde" k="40" /> +<hkern g1="parenleft" g2="Odieresis" k="40" /> +<hkern g1="parenleft" g2="Oslash" k="40" /> +<hkern g1="parenleft" g2="ccedilla" k="32" /> +<hkern g1="parenleft" g2="egrave" k="32" /> +<hkern g1="parenleft" g2="eacute" k="32" /> +<hkern g1="parenleft" g2="ecircumflex" k="32" /> +<hkern g1="parenleft" g2="edieresis" k="32" /> +<hkern g1="parenleft" g2="eth" k="32" /> +<hkern g1="parenleft" g2="ograve" k="32" /> +<hkern g1="parenleft" g2="oacute" k="32" /> +<hkern g1="parenleft" g2="ocircumflex" k="32" /> +<hkern g1="parenleft" g2="otilde" k="32" /> +<hkern g1="parenleft" g2="odieresis" k="32" /> +<hkern g1="parenleft" g2="oslash" k="32" /> +<hkern g1="parenleft" g2="OE" k="40" /> +<hkern g1="parenleft" g2="oe" k="32" /> +<hkern g1="asterisk" g2="ampersand" k="182" /> +<hkern g1="asterisk" g2="comma" k="228" /> +<hkern g1="asterisk" g2="hyphen" k="178" /> +<hkern g1="asterisk" g2="period" k="228" /> +<hkern g1="asterisk" g2="slash" k="182" /> +<hkern g1="asterisk" g2="at" k="46" /> +<hkern g1="asterisk" g2="A" k="182" /> +<hkern g1="asterisk" g2="C" k="46" /> +<hkern g1="asterisk" g2="G" k="46" /> +<hkern g1="asterisk" g2="O" k="46" /> +<hkern g1="asterisk" g2="Q" k="46" /> +<hkern g1="asterisk" g2="V" k="-48" /> +<hkern g1="asterisk" g2="W" k="-48" /> +<hkern g1="asterisk" g2="Y" k="-30" /> +<hkern g1="asterisk" g2="backslash" k="-48" /> +<hkern g1="asterisk" g2="a" k="64" /> +<hkern g1="asterisk" g2="c" k="92" /> +<hkern g1="asterisk" g2="d" k="92" /> +<hkern g1="asterisk" g2="e" k="92" /> +<hkern g1="asterisk" g2="o" k="92" /> +<hkern g1="asterisk" g2="q" k="92" /> +<hkern g1="asterisk" g2="guillemotleft" k="178" /> +<hkern g1="asterisk" g2="uni00AD" k="178" /> +<hkern g1="asterisk" g2="middot" k="178" /> +<hkern g1="asterisk" g2="guillemotright" k="178" /> +<hkern g1="asterisk" g2="Agrave" k="182" /> +<hkern g1="asterisk" g2="Aacute" k="182" /> +<hkern g1="asterisk" g2="Acircumflex" k="182" /> +<hkern g1="asterisk" g2="Atilde" k="182" /> +<hkern g1="asterisk" g2="Adieresis" k="182" /> +<hkern g1="asterisk" g2="Aring" k="182" /> +<hkern g1="asterisk" g2="AE" k="182" /> +<hkern g1="asterisk" g2="Ccedilla" k="46" /> +<hkern g1="asterisk" g2="Ograve" k="46" /> +<hkern g1="asterisk" g2="Oacute" k="46" /> +<hkern g1="asterisk" g2="Ocircumflex" k="46" /> +<hkern g1="asterisk" g2="Otilde" k="46" /> +<hkern g1="asterisk" g2="Odieresis" k="46" /> +<hkern g1="asterisk" g2="Oslash" k="46" /> +<hkern g1="asterisk" g2="Yacute" k="-30" /> +<hkern g1="asterisk" g2="agrave" k="64" /> +<hkern g1="asterisk" g2="aacute" k="64" /> +<hkern g1="asterisk" g2="acircumflex" k="64" /> +<hkern g1="asterisk" g2="atilde" k="64" /> +<hkern g1="asterisk" g2="adieresis" k="64" /> +<hkern g1="asterisk" g2="aring" k="64" /> +<hkern g1="asterisk" g2="ae" k="64" /> +<hkern g1="asterisk" g2="ccedilla" k="92" /> +<hkern g1="asterisk" g2="egrave" k="92" /> +<hkern g1="asterisk" g2="eacute" k="92" /> +<hkern g1="asterisk" g2="ecircumflex" k="92" /> +<hkern g1="asterisk" g2="edieresis" k="92" /> +<hkern g1="asterisk" g2="eth" k="92" /> +<hkern g1="asterisk" g2="ograve" k="92" /> +<hkern g1="asterisk" g2="oacute" k="92" /> +<hkern g1="asterisk" g2="ocircumflex" k="92" /> +<hkern g1="asterisk" g2="otilde" k="92" /> +<hkern g1="asterisk" g2="odieresis" k="92" /> +<hkern g1="asterisk" g2="oslash" k="92" /> +<hkern g1="asterisk" g2="OE" k="46" /> +<hkern g1="asterisk" g2="oe" k="92" /> +<hkern g1="asterisk" g2="endash" k="178" /> +<hkern g1="asterisk" g2="emdash" k="178" /> +<hkern g1="asterisk" g2="quotesinglbase" k="228" /> +<hkern g1="asterisk" g2="quotedblbase" k="228" /> +<hkern g1="asterisk" g2="bullet" k="178" /> +<hkern g1="asterisk" g2="guilsinglleft" k="178" /> +<hkern g1="asterisk" g2="guilsinglright" k="178" /> +<hkern g1="comma" g2="quotedbl" k="228" /> +<hkern g1="comma" g2="quotesingle" k="228" /> +<hkern g1="comma" g2="asterisk" k="228" /> +<hkern g1="comma" g2="hyphen" k="136" /> +<hkern g1="comma" g2="at" k="56" /> +<hkern g1="comma" g2="C" k="56" /> +<hkern g1="comma" g2="G" k="56" /> +<hkern g1="comma" g2="O" k="56" /> +<hkern g1="comma" g2="Q" k="56" /> +<hkern g1="comma" g2="T" k="180" /> +<hkern g1="comma" g2="V" k="180" /> +<hkern g1="comma" g2="W" k="122" /> +<hkern g1="comma" g2="Y" k="152" /> +<hkern g1="comma" g2="backslash" k="180" /> +<hkern g1="comma" g2="v" k="132" /> +<hkern g1="comma" g2="w" k="62" /> +<hkern g1="comma" g2="y" k="132" /> +<hkern g1="comma" g2="ordfeminine" k="228" /> +<hkern g1="comma" g2="guillemotleft" k="136" /> +<hkern g1="comma" g2="uni00AD" k="136" /> +<hkern g1="comma" g2="degree" k="228" /> +<hkern g1="comma" g2="middot" k="136" /> +<hkern g1="comma" g2="ordmasculine" k="228" /> +<hkern g1="comma" g2="guillemotright" k="136" /> +<hkern g1="comma" g2="Ccedilla" k="56" /> +<hkern g1="comma" g2="Ograve" k="56" /> +<hkern g1="comma" g2="Oacute" k="56" /> +<hkern g1="comma" g2="Ocircumflex" k="56" /> +<hkern g1="comma" g2="Otilde" k="56" /> +<hkern g1="comma" g2="Odieresis" k="56" /> +<hkern g1="comma" g2="Oslash" k="56" /> +<hkern g1="comma" g2="Yacute" k="152" /> +<hkern g1="comma" g2="OE" k="56" /> +<hkern g1="comma" g2="endash" k="136" /> +<hkern g1="comma" g2="emdash" k="136" /> +<hkern g1="comma" g2="quoteleft" k="228" /> +<hkern g1="comma" g2="quoteright" k="228" /> +<hkern g1="comma" g2="quotedblleft" k="228" /> +<hkern g1="comma" g2="quotedblright" k="228" /> +<hkern g1="comma" g2="bullet" k="136" /> +<hkern g1="comma" g2="guilsinglleft" k="136" /> +<hkern g1="comma" g2="guilsinglright" k="136" /> +<hkern g1="hyphen" g2="quotedbl" k="178" /> +<hkern g1="hyphen" g2="ampersand" k="52" /> +<hkern g1="hyphen" g2="quotesingle" k="178" /> +<hkern g1="hyphen" g2="asterisk" k="178" /> +<hkern g1="hyphen" g2="comma" k="136" /> +<hkern g1="hyphen" g2="period" k="136" /> +<hkern g1="hyphen" g2="slash" k="52" /> +<hkern g1="hyphen" g2="A" k="52" /> +<hkern g1="hyphen" g2="T" k="180" /> +<hkern g1="hyphen" g2="V" k="112" /> +<hkern g1="hyphen" g2="W" k="32" /> +<hkern g1="hyphen" g2="X" k="62" /> +<hkern g1="hyphen" g2="Y" k="160" /> +<hkern g1="hyphen" g2="Z" k="46" /> +<hkern g1="hyphen" g2="backslash" k="112" /> +<hkern g1="hyphen" g2="ordfeminine" k="178" /> +<hkern g1="hyphen" g2="degree" k="178" /> +<hkern g1="hyphen" g2="ordmasculine" k="178" /> +<hkern g1="hyphen" g2="Agrave" k="52" /> +<hkern g1="hyphen" g2="Aacute" k="52" /> +<hkern g1="hyphen" g2="Acircumflex" k="52" /> +<hkern g1="hyphen" g2="Atilde" k="52" /> +<hkern g1="hyphen" g2="Adieresis" k="52" /> +<hkern g1="hyphen" g2="Aring" k="52" /> +<hkern g1="hyphen" g2="AE" k="52" /> +<hkern g1="hyphen" g2="Yacute" k="160" /> +<hkern g1="hyphen" g2="quoteleft" k="178" /> +<hkern g1="hyphen" g2="quoteright" k="178" /> +<hkern g1="hyphen" g2="quotesinglbase" k="136" /> +<hkern g1="hyphen" g2="quotedblleft" k="178" /> +<hkern g1="hyphen" g2="quotedblright" k="178" /> +<hkern g1="hyphen" g2="quotedblbase" k="136" /> +<hkern g1="period" g2="quotedbl" k="228" /> +<hkern g1="period" g2="quotesingle" k="228" /> +<hkern g1="period" g2="asterisk" k="228" /> +<hkern g1="period" g2="hyphen" k="136" /> +<hkern g1="period" g2="at" k="56" /> +<hkern g1="period" g2="C" k="56" /> +<hkern g1="period" g2="G" k="56" /> +<hkern g1="period" g2="O" k="56" /> +<hkern g1="period" g2="Q" k="56" /> +<hkern g1="period" g2="T" k="180" /> +<hkern g1="period" g2="V" k="180" /> +<hkern g1="period" g2="W" k="122" /> +<hkern g1="period" g2="Y" k="152" /> +<hkern g1="period" g2="backslash" k="180" /> +<hkern g1="period" g2="v" k="132" /> +<hkern g1="period" g2="w" k="62" /> +<hkern g1="period" g2="y" k="132" /> +<hkern g1="period" g2="ordfeminine" k="228" /> +<hkern g1="period" g2="guillemotleft" k="136" /> +<hkern g1="period" g2="uni00AD" k="136" /> +<hkern g1="period" g2="degree" k="228" /> +<hkern g1="period" g2="middot" k="136" /> +<hkern g1="period" g2="ordmasculine" k="228" /> +<hkern g1="period" g2="guillemotright" k="136" /> +<hkern g1="period" g2="Ccedilla" k="56" /> +<hkern g1="period" g2="Ograve" k="56" /> +<hkern g1="period" g2="Oacute" k="56" /> +<hkern g1="period" g2="Ocircumflex" k="56" /> +<hkern g1="period" g2="Otilde" k="56" /> +<hkern g1="period" g2="Odieresis" k="56" /> +<hkern g1="period" g2="Oslash" k="56" /> +<hkern g1="period" g2="Yacute" k="152" /> +<hkern g1="period" g2="OE" k="56" /> +<hkern g1="period" g2="endash" k="136" /> +<hkern g1="period" g2="emdash" k="136" /> +<hkern g1="period" g2="quoteleft" k="228" /> +<hkern g1="period" g2="quoteright" k="228" /> +<hkern g1="period" g2="quotedblleft" k="228" /> +<hkern g1="period" g2="quotedblright" k="228" /> +<hkern g1="period" g2="bullet" k="136" /> +<hkern g1="period" g2="guilsinglleft" k="136" /> +<hkern g1="period" g2="guilsinglright" k="136" /> +<hkern g1="slash" g2="quotedbl" k="-48" /> +<hkern g1="slash" g2="ampersand" k="136" /> +<hkern g1="slash" g2="quotesingle" k="-48" /> +<hkern g1="slash" g2="asterisk" k="-48" /> +<hkern g1="slash" g2="comma" k="192" /> +<hkern g1="slash" g2="hyphen" k="112" /> +<hkern g1="slash" g2="period" k="192" /> +<hkern g1="slash" g2="slash" k="136" /> +<hkern g1="slash" g2="colon" k="88" /> +<hkern g1="slash" g2="semicolon" k="88" /> +<hkern g1="slash" g2="question" k="-48" /> +<hkern g1="slash" g2="at" k="52" /> +<hkern g1="slash" g2="A" k="136" /> +<hkern g1="slash" g2="C" k="52" /> +<hkern g1="slash" g2="G" k="52" /> +<hkern g1="slash" g2="J" k="152" /> +<hkern g1="slash" g2="O" k="52" /> +<hkern g1="slash" g2="Q" k="52" /> +<hkern g1="slash" g2="a" k="116" /> +<hkern g1="slash" g2="c" k="116" /> +<hkern g1="slash" g2="d" k="116" /> +<hkern g1="slash" g2="e" k="116" /> +<hkern g1="slash" g2="f" k="30" /> +<hkern g1="slash" g2="g" k="136" /> +<hkern g1="slash" g2="m" k="88" /> +<hkern g1="slash" g2="n" k="88" /> +<hkern g1="slash" g2="o" k="116" /> +<hkern g1="slash" g2="p" k="88" /> +<hkern g1="slash" g2="q" k="116" /> +<hkern g1="slash" g2="r" k="88" /> +<hkern g1="slash" g2="s" k="106" /> +<hkern g1="slash" g2="t" k="42" /> +<hkern g1="slash" g2="u" k="88" /> +<hkern g1="slash" g2="v" k="48" /> +<hkern g1="slash" g2="x" k="52" /> +<hkern g1="slash" g2="y" k="48" /> +<hkern g1="slash" g2="z" k="82" /> +<hkern g1="slash" g2="ordfeminine" k="-48" /> +<hkern g1="slash" g2="guillemotleft" k="112" /> +<hkern g1="slash" g2="uni00AD" k="112" /> +<hkern g1="slash" g2="degree" k="-48" /> +<hkern g1="slash" g2="twosuperior" k="-58" /> +<hkern g1="slash" g2="threesuperior" k="-58" /> +<hkern g1="slash" g2="mu" k="88" /> +<hkern g1="slash" g2="middot" k="112" /> +<hkern g1="slash" g2="onesuperior" k="-58" /> +<hkern g1="slash" g2="ordmasculine" k="-48" /> +<hkern g1="slash" g2="guillemotright" k="112" /> +<hkern g1="slash" g2="Agrave" k="136" /> +<hkern g1="slash" g2="Aacute" k="136" /> +<hkern g1="slash" g2="Acircumflex" k="136" /> +<hkern g1="slash" g2="Atilde" k="136" /> +<hkern g1="slash" g2="Adieresis" k="136" /> +<hkern g1="slash" g2="Aring" k="136" /> +<hkern g1="slash" g2="AE" k="136" /> +<hkern g1="slash" g2="Ccedilla" k="52" /> +<hkern g1="slash" g2="Ograve" k="52" /> +<hkern g1="slash" g2="Oacute" k="52" /> +<hkern g1="slash" g2="Ocircumflex" k="52" /> +<hkern g1="slash" g2="Otilde" k="52" /> +<hkern g1="slash" g2="Odieresis" k="52" /> +<hkern g1="slash" g2="Oslash" k="52" /> +<hkern g1="slash" g2="agrave" k="116" /> +<hkern g1="slash" g2="aacute" k="116" /> +<hkern g1="slash" g2="acircumflex" k="116" /> +<hkern g1="slash" g2="atilde" k="116" /> +<hkern g1="slash" g2="adieresis" k="116" /> +<hkern g1="slash" g2="aring" k="116" /> +<hkern g1="slash" g2="ae" k="116" /> +<hkern g1="slash" g2="ccedilla" k="116" /> +<hkern g1="slash" g2="egrave" k="116" /> +<hkern g1="slash" g2="eacute" k="116" /> +<hkern g1="slash" g2="ecircumflex" k="116" /> +<hkern g1="slash" g2="edieresis" k="116" /> +<hkern g1="slash" g2="eth" k="116" /> +<hkern g1="slash" g2="ntilde" k="88" /> +<hkern g1="slash" g2="ograve" k="116" /> +<hkern g1="slash" g2="oacute" k="116" /> +<hkern g1="slash" g2="ocircumflex" k="116" /> +<hkern g1="slash" g2="otilde" k="116" /> +<hkern g1="slash" g2="odieresis" k="116" /> +<hkern g1="slash" g2="oslash" k="116" /> +<hkern g1="slash" g2="ugrave" k="88" /> +<hkern g1="slash" g2="uacute" k="88" /> +<hkern g1="slash" g2="ucircumflex" k="88" /> +<hkern g1="slash" g2="udieresis" k="88" /> +<hkern g1="slash" g2="OE" k="52" /> +<hkern g1="slash" g2="oe" k="116" /> +<hkern g1="slash" g2="endash" k="112" /> +<hkern g1="slash" g2="emdash" k="112" /> +<hkern g1="slash" g2="quoteleft" k="-48" /> +<hkern g1="slash" g2="quoteright" k="-48" /> +<hkern g1="slash" g2="quotesinglbase" k="192" /> +<hkern g1="slash" g2="quotedblleft" k="-48" /> +<hkern g1="slash" g2="quotedblright" k="-48" /> +<hkern g1="slash" g2="quotedblbase" k="192" /> +<hkern g1="slash" g2="bullet" k="112" /> +<hkern g1="slash" g2="guilsinglleft" k="112" /> +<hkern g1="slash" g2="guilsinglright" k="112" /> +<hkern g1="at" g2="quotedbl" k="46" /> +<hkern g1="at" g2="ampersand" k="42" /> +<hkern g1="at" g2="quotesingle" k="46" /> +<hkern g1="at" g2="parenright" k="40" /> +<hkern g1="at" g2="asterisk" k="46" /> +<hkern g1="at" g2="comma" k="56" /> +<hkern g1="at" g2="period" k="56" /> +<hkern g1="at" g2="slash" k="42" /> +<hkern g1="at" g2="A" k="42" /> +<hkern g1="at" g2="T" k="98" /> +<hkern g1="at" g2="V" k="52" /> +<hkern g1="at" g2="X" k="30" /> +<hkern g1="at" g2="Y" k="80" /> +<hkern g1="at" g2="Z" k="70" /> +<hkern g1="at" g2="backslash" k="52" /> +<hkern g1="at" g2="bracketright" k="40" /> +<hkern g1="at" g2="braceright" k="40" /> +<hkern g1="at" g2="ordfeminine" k="46" /> +<hkern g1="at" g2="degree" k="46" /> +<hkern g1="at" g2="ordmasculine" k="46" /> +<hkern g1="at" g2="Agrave" k="42" /> +<hkern g1="at" g2="Aacute" k="42" /> +<hkern g1="at" g2="Acircumflex" k="42" /> +<hkern g1="at" g2="Atilde" k="42" /> +<hkern g1="at" g2="Adieresis" k="42" /> +<hkern g1="at" g2="Aring" k="42" /> +<hkern g1="at" g2="AE" k="42" /> +<hkern g1="at" g2="Yacute" k="80" /> +<hkern g1="at" g2="quoteleft" k="46" /> +<hkern g1="at" g2="quoteright" k="46" /> +<hkern g1="at" g2="quotesinglbase" k="56" /> +<hkern g1="at" g2="quotedblleft" k="46" /> +<hkern g1="at" g2="quotedblright" k="46" /> +<hkern g1="at" g2="quotedblbase" k="56" /> +<hkern g1="A" g2="quotedbl" k="182" /> +<hkern g1="A" g2="quotesingle" k="182" /> +<hkern g1="A" g2="asterisk" k="182" /> +<hkern g1="A" g2="hyphen" k="52" /> +<hkern g1="A" g2="question" k="56" /> +<hkern g1="A" g2="at" k="42" /> +<hkern g1="A" g2="C" k="42" /> +<hkern g1="A" g2="G" k="42" /> +<hkern g1="A" g2="J" k="-50" /> +<hkern g1="A" g2="O" k="42" /> +<hkern g1="A" g2="Q" k="42" /> +<hkern g1="A" g2="T" k="132" /> +<hkern g1="A" g2="U" k="56" /> +<hkern g1="A" g2="V" k="136" /> +<hkern g1="A" g2="W" k="84" /> +<hkern g1="A" g2="Y" k="164" /> +<hkern g1="A" g2="backslash" k="136" /> +<hkern g1="A" g2="v" k="82" /> +<hkern g1="A" g2="y" k="82" /> +<hkern g1="A" g2="ordfeminine" k="182" /> +<hkern g1="A" g2="guillemotleft" k="52" /> +<hkern g1="A" g2="uni00AD" k="52" /> +<hkern g1="A" g2="degree" k="182" /> +<hkern g1="A" g2="twosuperior" k="184" /> +<hkern g1="A" g2="threesuperior" k="184" /> +<hkern g1="A" g2="middot" k="52" /> +<hkern g1="A" g2="onesuperior" k="184" /> +<hkern g1="A" g2="ordmasculine" k="182" /> +<hkern g1="A" g2="guillemotright" k="52" /> +<hkern g1="A" g2="Ccedilla" k="42" /> +<hkern g1="A" g2="Ograve" k="42" /> +<hkern g1="A" g2="Oacute" k="42" /> +<hkern g1="A" g2="Ocircumflex" k="42" /> +<hkern g1="A" g2="Otilde" k="42" /> +<hkern g1="A" g2="Odieresis" k="42" /> +<hkern g1="A" g2="Oslash" k="42" /> +<hkern g1="A" g2="Ugrave" k="56" /> +<hkern g1="A" g2="Uacute" k="56" /> +<hkern g1="A" g2="Ucircumflex" k="56" /> +<hkern g1="A" g2="Udieresis" k="56" /> +<hkern g1="A" g2="Yacute" k="164" /> +<hkern g1="A" g2="OE" k="42" /> +<hkern g1="A" g2="endash" k="52" /> +<hkern g1="A" g2="emdash" k="52" /> +<hkern g1="A" g2="quoteleft" k="182" /> +<hkern g1="A" g2="quoteright" k="182" /> +<hkern g1="A" g2="quotedblleft" k="182" /> +<hkern g1="A" g2="quotedblright" k="182" /> +<hkern g1="A" g2="bullet" k="52" /> +<hkern g1="A" g2="guilsinglleft" k="52" /> +<hkern g1="A" g2="guilsinglright" k="52" /> +<hkern g1="C" g2="hyphen" k="150" /> +<hkern g1="C" g2="guillemotleft" k="150" /> +<hkern g1="C" g2="uni00AD" k="150" /> +<hkern g1="C" g2="middot" k="150" /> +<hkern g1="C" g2="guillemotright" k="150" /> +<hkern g1="C" g2="endash" k="150" /> +<hkern g1="C" g2="emdash" k="150" /> +<hkern g1="C" g2="bullet" k="150" /> +<hkern g1="C" g2="guilsinglleft" k="150" /> +<hkern g1="C" g2="guilsinglright" k="150" /> +<hkern g1="D" g2="quotedbl" k="46" /> +<hkern g1="D" g2="ampersand" k="42" /> +<hkern g1="D" g2="quotesingle" k="46" /> +<hkern g1="D" g2="parenright" k="40" /> +<hkern g1="D" g2="asterisk" k="46" /> +<hkern g1="D" g2="comma" k="56" /> +<hkern g1="D" g2="period" k="56" /> +<hkern g1="D" g2="slash" k="42" /> +<hkern g1="D" g2="A" k="42" /> +<hkern g1="D" g2="T" k="98" /> +<hkern g1="D" g2="V" k="52" /> +<hkern g1="D" g2="X" k="30" /> +<hkern g1="D" g2="Y" k="80" /> +<hkern g1="D" g2="Z" k="70" /> +<hkern g1="D" g2="backslash" k="52" /> +<hkern g1="D" g2="bracketright" k="40" /> +<hkern g1="D" g2="braceright" k="40" /> +<hkern g1="D" g2="ordfeminine" k="46" /> +<hkern g1="D" g2="degree" k="46" /> +<hkern g1="D" g2="ordmasculine" k="46" /> +<hkern g1="D" g2="Agrave" k="42" /> +<hkern g1="D" g2="Aacute" k="42" /> +<hkern g1="D" g2="Acircumflex" k="42" /> +<hkern g1="D" g2="Atilde" k="42" /> +<hkern g1="D" g2="Adieresis" k="42" /> +<hkern g1="D" g2="Aring" k="42" /> +<hkern g1="D" g2="AE" k="42" /> +<hkern g1="D" g2="Yacute" k="80" /> +<hkern g1="D" g2="quoteleft" k="46" /> +<hkern g1="D" g2="quoteright" k="46" /> +<hkern g1="D" g2="quotesinglbase" k="56" /> +<hkern g1="D" g2="quotedblleft" k="46" /> +<hkern g1="D" g2="quotedblright" k="46" /> +<hkern g1="D" g2="quotedblbase" k="56" /> +<hkern g1="F" g2="ampersand" k="132" /> +<hkern g1="F" g2="comma" k="180" /> +<hkern g1="F" g2="period" k="180" /> +<hkern g1="F" g2="slash" k="132" /> +<hkern g1="F" g2="colon" k="60" /> +<hkern g1="F" g2="semicolon" k="60" /> +<hkern g1="F" g2="question" k="-30" /> +<hkern g1="F" g2="A" k="132" /> +<hkern g1="F" g2="J" k="198" /> +<hkern g1="F" g2="c" k="70" /> +<hkern g1="F" g2="d" k="70" /> +<hkern g1="F" g2="e" k="70" /> +<hkern g1="F" g2="m" k="60" /> +<hkern g1="F" g2="n" k="60" /> +<hkern g1="F" g2="o" k="70" /> +<hkern g1="F" g2="p" k="60" /> +<hkern g1="F" g2="q" k="70" /> +<hkern g1="F" g2="r" k="60" /> +<hkern g1="F" g2="u" k="60" /> +<hkern g1="F" g2="mu" k="60" /> +<hkern g1="F" g2="Agrave" k="132" /> +<hkern g1="F" g2="Aacute" k="132" /> +<hkern g1="F" g2="Acircumflex" k="132" /> +<hkern g1="F" g2="Atilde" k="132" /> +<hkern g1="F" g2="Adieresis" k="132" /> +<hkern g1="F" g2="Aring" k="132" /> +<hkern g1="F" g2="AE" k="132" /> +<hkern g1="F" g2="ccedilla" k="70" /> +<hkern g1="F" g2="egrave" k="70" /> +<hkern g1="F" g2="eacute" k="70" /> +<hkern g1="F" g2="ecircumflex" k="70" /> +<hkern g1="F" g2="edieresis" k="70" /> +<hkern g1="F" g2="eth" k="70" /> +<hkern g1="F" g2="ntilde" k="60" /> +<hkern g1="F" g2="ograve" k="70" /> +<hkern g1="F" g2="oacute" k="70" /> +<hkern g1="F" g2="ocircumflex" k="70" /> +<hkern g1="F" g2="otilde" k="70" /> +<hkern g1="F" g2="odieresis" k="70" /> +<hkern g1="F" g2="oslash" k="70" /> +<hkern g1="F" g2="ugrave" k="60" /> +<hkern g1="F" g2="uacute" k="60" /> +<hkern g1="F" g2="ucircumflex" k="60" /> +<hkern g1="F" g2="udieresis" k="60" /> +<hkern g1="F" g2="oe" k="70" /> +<hkern g1="F" g2="quotesinglbase" k="180" /> +<hkern g1="F" g2="quotedblbase" k="180" /> +<hkern g1="J" g2="ampersand" k="56" /> +<hkern g1="J" g2="comma" k="50" /> +<hkern g1="J" g2="period" k="50" /> +<hkern g1="J" g2="slash" k="56" /> +<hkern g1="J" g2="A" k="56" /> +<hkern g1="J" g2="Agrave" k="56" /> +<hkern g1="J" g2="Aacute" k="56" /> +<hkern g1="J" g2="Acircumflex" k="56" /> +<hkern g1="J" g2="Atilde" k="56" /> +<hkern g1="J" g2="Adieresis" k="56" /> +<hkern g1="J" g2="Aring" k="56" /> +<hkern g1="J" g2="AE" k="56" /> +<hkern g1="J" g2="quotesinglbase" k="50" /> +<hkern g1="J" g2="quotedblbase" k="50" /> +<hkern g1="K" g2="hyphen" k="62" /> +<hkern g1="K" g2="at" k="30" /> +<hkern g1="K" g2="C" k="30" /> +<hkern g1="K" g2="G" k="30" /> +<hkern g1="K" g2="O" k="30" /> +<hkern g1="K" g2="Q" k="30" /> +<hkern g1="K" g2="c" k="36" /> +<hkern g1="K" g2="d" k="36" /> +<hkern g1="K" g2="e" k="36" /> +<hkern g1="K" g2="f" k="52" /> +<hkern g1="K" g2="o" k="36" /> +<hkern g1="K" g2="q" k="36" /> +<hkern g1="K" g2="t" k="82" /> +<hkern g1="K" g2="v" k="66" /> +<hkern g1="K" g2="w" k="56" /> +<hkern g1="K" g2="y" k="66" /> +<hkern g1="K" g2="guillemotleft" k="62" /> +<hkern g1="K" g2="uni00AD" k="62" /> +<hkern g1="K" g2="middot" k="62" /> +<hkern g1="K" g2="guillemotright" k="62" /> +<hkern g1="K" g2="Ccedilla" k="30" /> +<hkern g1="K" g2="Ograve" k="30" /> +<hkern g1="K" g2="Oacute" k="30" /> +<hkern g1="K" g2="Ocircumflex" k="30" /> +<hkern g1="K" g2="Otilde" k="30" /> +<hkern g1="K" g2="Odieresis" k="30" /> +<hkern g1="K" g2="Oslash" k="30" /> +<hkern g1="K" g2="ccedilla" k="36" /> +<hkern g1="K" g2="egrave" k="36" /> +<hkern g1="K" g2="eacute" k="36" /> +<hkern g1="K" g2="ecircumflex" k="36" /> +<hkern g1="K" g2="edieresis" k="36" /> +<hkern g1="K" g2="eth" k="36" /> +<hkern g1="K" g2="ograve" k="36" /> +<hkern g1="K" g2="oacute" k="36" /> +<hkern g1="K" g2="ocircumflex" k="36" /> +<hkern g1="K" g2="otilde" k="36" /> +<hkern g1="K" g2="odieresis" k="36" /> +<hkern g1="K" g2="oslash" k="36" /> +<hkern g1="K" g2="OE" k="30" /> +<hkern g1="K" g2="oe" k="36" /> +<hkern g1="K" g2="endash" k="62" /> +<hkern g1="K" g2="emdash" k="62" /> +<hkern g1="K" g2="bullet" k="62" /> +<hkern g1="K" g2="guilsinglleft" k="62" /> +<hkern g1="K" g2="guilsinglright" k="62" /> +<hkern g1="L" g2="quotedbl" k="290" /> +<hkern g1="L" g2="quotesingle" k="290" /> +<hkern g1="L" g2="asterisk" k="290" /> +<hkern g1="L" g2="comma" k="-54" /> +<hkern g1="L" g2="hyphen" k="198" /> +<hkern g1="L" g2="period" k="-54" /> +<hkern g1="L" g2="question" k="50" /> +<hkern g1="L" g2="at" k="80" /> +<hkern g1="L" g2="C" k="80" /> +<hkern g1="L" g2="G" k="80" /> +<hkern g1="L" g2="O" k="80" /> +<hkern g1="L" g2="Q" k="80" /> +<hkern g1="L" g2="T" k="172" /> +<hkern g1="L" g2="V" k="182" /> +<hkern g1="L" g2="W" k="152" /> +<hkern g1="L" g2="Y" k="212" /> +<hkern g1="L" g2="backslash" k="182" /> +<hkern g1="L" g2="c" k="36" /> +<hkern g1="L" g2="d" k="36" /> +<hkern g1="L" g2="e" k="36" /> +<hkern g1="L" g2="o" k="36" /> +<hkern g1="L" g2="q" k="36" /> +<hkern g1="L" g2="v" k="108" /> +<hkern g1="L" g2="w" k="80" /> +<hkern g1="L" g2="y" k="108" /> +<hkern g1="L" g2="ordfeminine" k="290" /> +<hkern g1="L" g2="guillemotleft" k="198" /> +<hkern g1="L" g2="uni00AD" k="198" /> +<hkern g1="L" g2="degree" k="290" /> +<hkern g1="L" g2="twosuperior" k="202" /> +<hkern g1="L" g2="threesuperior" k="202" /> +<hkern g1="L" g2="middot" k="198" /> +<hkern g1="L" g2="onesuperior" k="202" /> +<hkern g1="L" g2="ordmasculine" k="290" /> +<hkern g1="L" g2="guillemotright" k="198" /> +<hkern g1="L" g2="Ccedilla" k="80" /> +<hkern g1="L" g2="Ograve" k="80" /> +<hkern g1="L" g2="Oacute" k="80" /> +<hkern g1="L" g2="Ocircumflex" k="80" /> +<hkern g1="L" g2="Otilde" k="80" /> +<hkern g1="L" g2="Odieresis" k="80" /> +<hkern g1="L" g2="Oslash" k="80" /> +<hkern g1="L" g2="Yacute" k="212" /> +<hkern g1="L" g2="ccedilla" k="36" /> +<hkern g1="L" g2="egrave" k="36" /> +<hkern g1="L" g2="eacute" k="36" /> +<hkern g1="L" g2="ecircumflex" k="36" /> +<hkern g1="L" g2="edieresis" k="36" /> +<hkern g1="L" g2="eth" k="36" /> +<hkern g1="L" g2="ograve" k="36" /> +<hkern g1="L" g2="oacute" k="36" /> +<hkern g1="L" g2="ocircumflex" k="36" /> +<hkern g1="L" g2="otilde" k="36" /> +<hkern g1="L" g2="odieresis" k="36" /> +<hkern g1="L" g2="oslash" k="36" /> +<hkern g1="L" g2="OE" k="80" /> +<hkern g1="L" g2="oe" k="36" /> +<hkern g1="L" g2="endash" k="198" /> +<hkern g1="L" g2="emdash" k="198" /> +<hkern g1="L" g2="quoteleft" k="290" /> +<hkern g1="L" g2="quoteright" k="290" /> +<hkern g1="L" g2="quotesinglbase" k="-54" /> +<hkern g1="L" g2="quotedblleft" k="290" /> +<hkern g1="L" g2="quotedblright" k="290" /> +<hkern g1="L" g2="quotedblbase" k="-54" /> +<hkern g1="L" g2="bullet" k="198" /> +<hkern g1="L" g2="guilsinglleft" k="198" /> +<hkern g1="L" g2="guilsinglright" k="198" /> +<hkern g1="O" g2="quotedbl" k="46" /> +<hkern g1="O" g2="ampersand" k="42" /> +<hkern g1="O" g2="quotesingle" k="46" /> +<hkern g1="O" g2="parenright" k="40" /> +<hkern g1="O" g2="asterisk" k="46" /> +<hkern g1="O" g2="comma" k="56" /> +<hkern g1="O" g2="period" k="56" /> +<hkern g1="O" g2="slash" k="42" /> +<hkern g1="O" g2="A" k="42" /> +<hkern g1="O" g2="T" k="98" /> +<hkern g1="O" g2="V" k="52" /> +<hkern g1="O" g2="X" k="30" /> +<hkern g1="O" g2="Y" k="80" /> +<hkern g1="O" g2="Z" k="70" /> +<hkern g1="O" g2="backslash" k="52" /> +<hkern g1="O" g2="bracketright" k="40" /> +<hkern g1="O" g2="braceright" k="40" /> +<hkern g1="O" g2="ordfeminine" k="46" /> +<hkern g1="O" g2="degree" k="46" /> +<hkern g1="O" g2="ordmasculine" k="46" /> +<hkern g1="O" g2="Agrave" k="42" /> +<hkern g1="O" g2="Aacute" k="42" /> +<hkern g1="O" g2="Acircumflex" k="42" /> +<hkern g1="O" g2="Atilde" k="42" /> +<hkern g1="O" g2="Adieresis" k="42" /> +<hkern g1="O" g2="Aring" k="42" /> +<hkern g1="O" g2="AE" k="42" /> +<hkern g1="O" g2="Yacute" k="80" /> +<hkern g1="O" g2="quoteleft" k="46" /> +<hkern g1="O" g2="quoteright" k="46" /> +<hkern g1="O" g2="quotesinglbase" k="56" /> +<hkern g1="O" g2="quotedblleft" k="46" /> +<hkern g1="O" g2="quotedblright" k="46" /> +<hkern g1="O" g2="quotedblbase" k="56" /> +<hkern g1="P" g2="ampersand" k="138" /> +<hkern g1="P" g2="comma" k="248" /> +<hkern g1="P" g2="period" k="248" /> +<hkern g1="P" g2="slash" k="138" /> +<hkern g1="P" g2="A" k="138" /> +<hkern g1="P" g2="J" k="182" /> +<hkern g1="P" g2="a" k="50" /> +<hkern g1="P" g2="c" k="30" /> +<hkern g1="P" g2="d" k="30" /> +<hkern g1="P" g2="e" k="30" /> +<hkern g1="P" g2="o" k="30" /> +<hkern g1="P" g2="q" k="30" /> +<hkern g1="P" g2="Agrave" k="138" /> +<hkern g1="P" g2="Aacute" k="138" /> +<hkern g1="P" g2="Acircumflex" k="138" /> +<hkern g1="P" g2="Atilde" k="138" /> +<hkern g1="P" g2="Adieresis" k="138" /> +<hkern g1="P" g2="Aring" k="138" /> +<hkern g1="P" g2="AE" k="138" /> +<hkern g1="P" g2="agrave" k="50" /> +<hkern g1="P" g2="aacute" k="50" /> +<hkern g1="P" g2="acircumflex" k="50" /> +<hkern g1="P" g2="atilde" k="50" /> +<hkern g1="P" g2="adieresis" k="50" /> +<hkern g1="P" g2="aring" k="50" /> +<hkern g1="P" g2="ae" k="50" /> +<hkern g1="P" g2="ccedilla" k="30" /> +<hkern g1="P" g2="egrave" k="30" /> +<hkern g1="P" g2="eacute" k="30" /> +<hkern g1="P" g2="ecircumflex" k="30" /> +<hkern g1="P" g2="edieresis" k="30" /> +<hkern g1="P" g2="eth" k="30" /> +<hkern g1="P" g2="ograve" k="30" /> +<hkern g1="P" g2="oacute" k="30" /> +<hkern g1="P" g2="ocircumflex" k="30" /> +<hkern g1="P" g2="otilde" k="30" /> +<hkern g1="P" g2="odieresis" k="30" /> +<hkern g1="P" g2="oslash" k="30" /> +<hkern g1="P" g2="oe" k="30" /> +<hkern g1="P" g2="quotesinglbase" k="248" /> +<hkern g1="P" g2="quotedblbase" k="248" /> +<hkern g1="Q" g2="quotedbl" k="46" /> +<hkern g1="Q" g2="ampersand" k="42" /> +<hkern g1="Q" g2="quotesingle" k="46" /> +<hkern g1="Q" g2="parenright" k="40" /> +<hkern g1="Q" g2="asterisk" k="46" /> +<hkern g1="Q" g2="comma" k="56" /> +<hkern g1="Q" g2="period" k="56" /> +<hkern g1="Q" g2="slash" k="42" /> +<hkern g1="Q" g2="A" k="42" /> +<hkern g1="Q" g2="T" k="98" /> +<hkern g1="Q" g2="V" k="52" /> +<hkern g1="Q" g2="X" k="30" /> +<hkern g1="Q" g2="Y" k="80" /> +<hkern g1="Q" g2="Z" k="70" /> +<hkern g1="Q" g2="backslash" k="52" /> +<hkern g1="Q" g2="bracketright" k="40" /> +<hkern g1="Q" g2="braceright" k="40" /> +<hkern g1="Q" g2="ordfeminine" k="46" /> +<hkern g1="Q" g2="degree" k="46" /> +<hkern g1="Q" g2="ordmasculine" k="46" /> +<hkern g1="Q" g2="Agrave" k="42" /> +<hkern g1="Q" g2="Aacute" k="42" /> +<hkern g1="Q" g2="Acircumflex" k="42" /> +<hkern g1="Q" g2="Atilde" k="42" /> +<hkern g1="Q" g2="Adieresis" k="42" /> +<hkern g1="Q" g2="Aring" k="42" /> +<hkern g1="Q" g2="AE" k="42" /> +<hkern g1="Q" g2="Yacute" k="80" /> +<hkern g1="Q" g2="quoteleft" k="46" /> +<hkern g1="Q" g2="quoteright" k="46" /> +<hkern g1="Q" g2="quotesinglbase" k="56" /> +<hkern g1="Q" g2="quotedblleft" k="46" /> +<hkern g1="Q" g2="quotedblright" k="46" /> +<hkern g1="Q" g2="quotedblbase" k="56" /> +<hkern g1="R" g2="at" k="46" /> +<hkern g1="R" g2="C" k="46" /> +<hkern g1="R" g2="G" k="46" /> +<hkern g1="R" g2="O" k="46" /> +<hkern g1="R" g2="Q" k="46" /> +<hkern g1="R" g2="T" k="52" /> +<hkern g1="R" g2="U" k="42" /> +<hkern g1="R" g2="Ccedilla" k="46" /> +<hkern g1="R" g2="Ograve" k="46" /> +<hkern g1="R" g2="Oacute" k="46" /> +<hkern g1="R" g2="Ocircumflex" k="46" /> +<hkern g1="R" g2="Otilde" k="46" /> +<hkern g1="R" g2="Odieresis" k="46" /> +<hkern g1="R" g2="Oslash" k="46" /> +<hkern g1="R" g2="Ugrave" k="42" /> +<hkern g1="R" g2="Uacute" k="42" /> +<hkern g1="R" g2="Ucircumflex" k="42" /> +<hkern g1="R" g2="Udieresis" k="42" /> +<hkern g1="R" g2="OE" k="46" /> +<hkern g1="T" g2="ampersand" k="132" /> +<hkern g1="T" g2="comma" k="180" /> +<hkern g1="T" g2="hyphen" k="180" /> +<hkern g1="T" g2="period" k="180" /> +<hkern g1="T" g2="slash" k="132" /> +<hkern g1="T" g2="colon" k="160" /> +<hkern g1="T" g2="semicolon" k="160" /> +<hkern g1="T" g2="at" k="98" /> +<hkern g1="T" g2="A" k="132" /> +<hkern g1="T" g2="C" k="98" /> +<hkern g1="T" g2="G" k="98" /> +<hkern g1="T" g2="J" k="200" /> +<hkern g1="T" g2="O" k="98" /> +<hkern g1="T" g2="Q" k="98" /> +<hkern g1="T" g2="a" k="250" /> +<hkern g1="T" g2="c" k="210" /> +<hkern g1="T" g2="d" k="210" /> +<hkern g1="T" g2="e" k="210" /> +<hkern g1="T" g2="g" k="188" /> +<hkern g1="T" g2="m" k="160" /> +<hkern g1="T" g2="n" k="160" /> +<hkern g1="T" g2="o" k="210" /> +<hkern g1="T" g2="p" k="160" /> +<hkern g1="T" g2="q" k="210" /> +<hkern g1="T" g2="r" k="160" /> +<hkern g1="T" g2="s" k="162" /> +<hkern g1="T" g2="u" k="160" /> +<hkern g1="T" g2="v" k="180" /> +<hkern g1="T" g2="w" k="140" /> +<hkern g1="T" g2="x" k="144" /> +<hkern g1="T" g2="y" k="180" /> +<hkern g1="T" g2="z" k="120" /> +<hkern g1="T" g2="guillemotleft" k="180" /> +<hkern g1="T" g2="uni00AD" k="180" /> +<hkern g1="T" g2="mu" k="160" /> +<hkern g1="T" g2="middot" k="180" /> +<hkern g1="T" g2="guillemotright" k="180" /> +<hkern g1="T" g2="Agrave" k="132" /> +<hkern g1="T" g2="Aacute" k="132" /> +<hkern g1="T" g2="Acircumflex" k="132" /> +<hkern g1="T" g2="Atilde" k="132" /> +<hkern g1="T" g2="Adieresis" k="132" /> +<hkern g1="T" g2="Aring" k="132" /> +<hkern g1="T" g2="AE" k="132" /> +<hkern g1="T" g2="Ccedilla" k="98" /> +<hkern g1="T" g2="Ograve" k="98" /> +<hkern g1="T" g2="Oacute" k="98" /> +<hkern g1="T" g2="Ocircumflex" k="98" /> +<hkern g1="T" g2="Otilde" k="98" /> +<hkern g1="T" g2="Odieresis" k="98" /> +<hkern g1="T" g2="Oslash" k="98" /> +<hkern g1="T" g2="agrave" k="250" /> +<hkern g1="T" g2="aacute" k="250" /> +<hkern g1="T" g2="acircumflex" k="250" /> +<hkern g1="T" g2="atilde" k="250" /> +<hkern g1="T" g2="adieresis" k="250" /> +<hkern g1="T" g2="aring" k="250" /> +<hkern g1="T" g2="ae" k="250" /> +<hkern g1="T" g2="ccedilla" k="210" /> +<hkern g1="T" g2="egrave" k="210" /> +<hkern g1="T" g2="eacute" k="210" /> +<hkern g1="T" g2="ecircumflex" k="210" /> +<hkern g1="T" g2="edieresis" k="210" /> +<hkern g1="T" g2="eth" k="210" /> +<hkern g1="T" g2="ntilde" k="160" /> +<hkern g1="T" g2="ograve" k="210" /> +<hkern g1="T" g2="oacute" k="210" /> +<hkern g1="T" g2="ocircumflex" k="210" /> +<hkern g1="T" g2="otilde" k="210" /> +<hkern g1="T" g2="odieresis" k="210" /> +<hkern g1="T" g2="oslash" k="210" /> +<hkern g1="T" g2="ugrave" k="160" /> +<hkern g1="T" g2="uacute" k="160" /> +<hkern g1="T" g2="ucircumflex" k="160" /> +<hkern g1="T" g2="udieresis" k="160" /> +<hkern g1="T" g2="OE" k="98" /> +<hkern g1="T" g2="oe" k="210" /> +<hkern g1="T" g2="endash" k="180" /> +<hkern g1="T" g2="emdash" k="180" /> +<hkern g1="T" g2="quotesinglbase" k="180" /> +<hkern g1="T" g2="quotedblbase" k="180" /> +<hkern g1="T" g2="bullet" k="180" /> +<hkern g1="T" g2="guilsinglleft" k="180" /> +<hkern g1="T" g2="guilsinglright" k="180" /> +<hkern g1="U" g2="ampersand" k="56" /> +<hkern g1="U" g2="comma" k="50" /> +<hkern g1="U" g2="period" k="50" /> +<hkern g1="U" g2="slash" k="56" /> +<hkern g1="U" g2="A" k="56" /> +<hkern g1="U" g2="Agrave" k="56" /> +<hkern g1="U" g2="Aacute" k="56" /> +<hkern g1="U" g2="Acircumflex" k="56" /> +<hkern g1="U" g2="Atilde" k="56" /> +<hkern g1="U" g2="Adieresis" k="56" /> +<hkern g1="U" g2="Aring" k="56" /> +<hkern g1="U" g2="AE" k="56" /> +<hkern g1="U" g2="quotesinglbase" k="50" /> +<hkern g1="U" g2="quotedblbase" k="50" /> +<hkern g1="V" g2="quotedbl" k="-48" /> +<hkern g1="V" g2="ampersand" k="136" /> +<hkern g1="V" g2="quotesingle" k="-48" /> +<hkern g1="V" g2="asterisk" k="-48" /> +<hkern g1="V" g2="comma" k="192" /> +<hkern g1="V" g2="hyphen" k="112" /> +<hkern g1="V" g2="period" k="192" /> +<hkern g1="V" g2="slash" k="136" /> +<hkern g1="V" g2="colon" k="88" /> +<hkern g1="V" g2="semicolon" k="88" /> +<hkern g1="V" g2="question" k="-48" /> +<hkern g1="V" g2="at" k="52" /> +<hkern g1="V" g2="A" k="136" /> +<hkern g1="V" g2="C" k="52" /> +<hkern g1="V" g2="G" k="52" /> +<hkern g1="V" g2="J" k="152" /> +<hkern g1="V" g2="O" k="52" /> +<hkern g1="V" g2="Q" k="52" /> +<hkern g1="V" g2="a" k="116" /> +<hkern g1="V" g2="c" k="116" /> +<hkern g1="V" g2="d" k="116" /> +<hkern g1="V" g2="e" k="116" /> +<hkern g1="V" g2="f" k="30" /> +<hkern g1="V" g2="g" k="136" /> +<hkern g1="V" g2="m" k="88" /> +<hkern g1="V" g2="n" k="88" /> +<hkern g1="V" g2="o" k="116" /> +<hkern g1="V" g2="p" k="88" /> +<hkern g1="V" g2="q" k="116" /> +<hkern g1="V" g2="r" k="88" /> +<hkern g1="V" g2="s" k="106" /> +<hkern g1="V" g2="t" k="42" /> +<hkern g1="V" g2="u" k="88" /> +<hkern g1="V" g2="v" k="48" /> +<hkern g1="V" g2="x" k="52" /> +<hkern g1="V" g2="y" k="48" /> +<hkern g1="V" g2="z" k="82" /> +<hkern g1="V" g2="ordfeminine" k="-48" /> +<hkern g1="V" g2="guillemotleft" k="112" /> +<hkern g1="V" g2="uni00AD" k="112" /> +<hkern g1="V" g2="degree" k="-48" /> +<hkern g1="V" g2="twosuperior" k="-58" /> +<hkern g1="V" g2="threesuperior" k="-58" /> +<hkern g1="V" g2="mu" k="88" /> +<hkern g1="V" g2="middot" k="112" /> +<hkern g1="V" g2="onesuperior" k="-58" /> +<hkern g1="V" g2="ordmasculine" k="-48" /> +<hkern g1="V" g2="guillemotright" k="112" /> +<hkern g1="V" g2="Agrave" k="136" /> +<hkern g1="V" g2="Aacute" k="136" /> +<hkern g1="V" g2="Acircumflex" k="136" /> +<hkern g1="V" g2="Atilde" k="136" /> +<hkern g1="V" g2="Adieresis" k="136" /> +<hkern g1="V" g2="Aring" k="136" /> +<hkern g1="V" g2="AE" k="136" /> +<hkern g1="V" g2="Ccedilla" k="52" /> +<hkern g1="V" g2="Ograve" k="52" /> +<hkern g1="V" g2="Oacute" k="52" /> +<hkern g1="V" g2="Ocircumflex" k="52" /> +<hkern g1="V" g2="Otilde" k="52" /> +<hkern g1="V" g2="Odieresis" k="52" /> +<hkern g1="V" g2="Oslash" k="52" /> +<hkern g1="V" g2="agrave" k="116" /> +<hkern g1="V" g2="aacute" k="116" /> +<hkern g1="V" g2="acircumflex" k="116" /> +<hkern g1="V" g2="atilde" k="116" /> +<hkern g1="V" g2="adieresis" k="116" /> +<hkern g1="V" g2="aring" k="116" /> +<hkern g1="V" g2="ae" k="116" /> +<hkern g1="V" g2="ccedilla" k="116" /> +<hkern g1="V" g2="egrave" k="116" /> +<hkern g1="V" g2="eacute" k="116" /> +<hkern g1="V" g2="ecircumflex" k="116" /> +<hkern g1="V" g2="edieresis" k="116" /> +<hkern g1="V" g2="eth" k="116" /> +<hkern g1="V" g2="ntilde" k="88" /> +<hkern g1="V" g2="ograve" k="116" /> +<hkern g1="V" g2="oacute" k="116" /> +<hkern g1="V" g2="ocircumflex" k="116" /> +<hkern g1="V" g2="otilde" k="116" /> +<hkern g1="V" g2="odieresis" k="116" /> +<hkern g1="V" g2="oslash" k="116" /> +<hkern g1="V" g2="ugrave" k="88" /> +<hkern g1="V" g2="uacute" k="88" /> +<hkern g1="V" g2="ucircumflex" k="88" /> +<hkern g1="V" g2="udieresis" k="88" /> +<hkern g1="V" g2="OE" k="52" /> +<hkern g1="V" g2="oe" k="116" /> +<hkern g1="V" g2="endash" k="112" /> +<hkern g1="V" g2="emdash" k="112" /> +<hkern g1="V" g2="quoteleft" k="-48" /> +<hkern g1="V" g2="quoteright" k="-48" /> +<hkern g1="V" g2="quotesinglbase" k="192" /> +<hkern g1="V" g2="quotedblleft" k="-48" /> +<hkern g1="V" g2="quotedblright" k="-48" /> +<hkern g1="V" g2="quotedblbase" k="192" /> +<hkern g1="V" g2="bullet" k="112" /> +<hkern g1="V" g2="guilsinglleft" k="112" /> +<hkern g1="V" g2="guilsinglright" k="112" /> +<hkern g1="W" g2="quotedbl" k="-48" /> +<hkern g1="W" g2="ampersand" k="94" /> +<hkern g1="W" g2="quotesingle" k="-48" /> +<hkern g1="W" g2="asterisk" k="-48" /> +<hkern g1="W" g2="comma" k="122" /> +<hkern g1="W" g2="hyphen" k="32" /> +<hkern g1="W" g2="period" k="122" /> +<hkern g1="W" g2="slash" k="94" /> +<hkern g1="W" g2="question" k="-34" /> +<hkern g1="W" g2="A" k="94" /> +<hkern g1="W" g2="J" k="102" /> +<hkern g1="W" g2="a" k="88" /> +<hkern g1="W" g2="c" k="32" /> +<hkern g1="W" g2="d" k="32" /> +<hkern g1="W" g2="e" k="32" /> +<hkern g1="W" g2="g" k="98" /> +<hkern g1="W" g2="o" k="32" /> +<hkern g1="W" g2="q" k="32" /> +<hkern g1="W" g2="s" k="46" /> +<hkern g1="W" g2="ordfeminine" k="-48" /> +<hkern g1="W" g2="guillemotleft" k="32" /> +<hkern g1="W" g2="uni00AD" k="32" /> +<hkern g1="W" g2="degree" k="-48" /> +<hkern g1="W" g2="twosuperior" k="-48" /> +<hkern g1="W" g2="threesuperior" k="-48" /> +<hkern g1="W" g2="middot" k="32" /> +<hkern g1="W" g2="onesuperior" k="-48" /> +<hkern g1="W" g2="ordmasculine" k="-48" /> +<hkern g1="W" g2="guillemotright" k="32" /> +<hkern g1="W" g2="Agrave" k="94" /> +<hkern g1="W" g2="Aacute" k="94" /> +<hkern g1="W" g2="Acircumflex" k="94" /> +<hkern g1="W" g2="Atilde" k="94" /> +<hkern g1="W" g2="Adieresis" k="94" /> +<hkern g1="W" g2="Aring" k="94" /> +<hkern g1="W" g2="AE" k="94" /> +<hkern g1="W" g2="agrave" k="88" /> +<hkern g1="W" g2="aacute" k="88" /> +<hkern g1="W" g2="acircumflex" k="88" /> +<hkern g1="W" g2="atilde" k="88" /> +<hkern g1="W" g2="adieresis" k="88" /> +<hkern g1="W" g2="aring" k="88" /> +<hkern g1="W" g2="ae" k="88" /> +<hkern g1="W" g2="ccedilla" k="32" /> +<hkern g1="W" g2="egrave" k="32" /> +<hkern g1="W" g2="eacute" k="32" /> +<hkern g1="W" g2="ecircumflex" k="32" /> +<hkern g1="W" g2="edieresis" k="32" /> +<hkern g1="W" g2="eth" k="32" /> +<hkern g1="W" g2="ograve" k="32" /> +<hkern g1="W" g2="oacute" k="32" /> +<hkern g1="W" g2="ocircumflex" k="32" /> +<hkern g1="W" g2="otilde" k="32" /> +<hkern g1="W" g2="odieresis" k="32" /> +<hkern g1="W" g2="oslash" k="32" /> +<hkern g1="W" g2="oe" k="32" /> +<hkern g1="W" g2="endash" k="32" /> +<hkern g1="W" g2="emdash" k="32" /> +<hkern g1="W" g2="quoteleft" k="-48" /> +<hkern g1="W" g2="quoteright" k="-48" /> +<hkern g1="W" g2="quotesinglbase" k="122" /> +<hkern g1="W" g2="quotedblleft" k="-48" /> +<hkern g1="W" g2="quotedblright" k="-48" /> +<hkern g1="W" g2="quotedblbase" k="122" /> +<hkern g1="W" g2="bullet" k="32" /> +<hkern g1="W" g2="guilsinglleft" k="32" /> +<hkern g1="W" g2="guilsinglright" k="32" /> +<hkern g1="X" g2="hyphen" k="62" /> +<hkern g1="X" g2="at" k="30" /> +<hkern g1="X" g2="C" k="30" /> +<hkern g1="X" g2="G" k="30" /> +<hkern g1="X" g2="O" k="30" /> +<hkern g1="X" g2="Q" k="30" /> +<hkern g1="X" g2="c" k="36" /> +<hkern g1="X" g2="d" k="36" /> +<hkern g1="X" g2="e" k="36" /> +<hkern g1="X" g2="f" k="52" /> +<hkern g1="X" g2="o" k="36" /> +<hkern g1="X" g2="q" k="36" /> +<hkern g1="X" g2="t" k="82" /> +<hkern g1="X" g2="v" k="66" /> +<hkern g1="X" g2="w" k="56" /> +<hkern g1="X" g2="y" k="66" /> +<hkern g1="X" g2="guillemotleft" k="62" /> +<hkern g1="X" g2="uni00AD" k="62" /> +<hkern g1="X" g2="middot" k="62" /> +<hkern g1="X" g2="guillemotright" k="62" /> +<hkern g1="X" g2="Ccedilla" k="30" /> +<hkern g1="X" g2="Ograve" k="30" /> +<hkern g1="X" g2="Oacute" k="30" /> +<hkern g1="X" g2="Ocircumflex" k="30" /> +<hkern g1="X" g2="Otilde" k="30" /> +<hkern g1="X" g2="Odieresis" k="30" /> +<hkern g1="X" g2="Oslash" k="30" /> +<hkern g1="X" g2="ccedilla" k="36" /> +<hkern g1="X" g2="egrave" k="36" /> +<hkern g1="X" g2="eacute" k="36" /> +<hkern g1="X" g2="ecircumflex" k="36" /> +<hkern g1="X" g2="edieresis" k="36" /> +<hkern g1="X" g2="eth" k="36" /> +<hkern g1="X" g2="ograve" k="36" /> +<hkern g1="X" g2="oacute" k="36" /> +<hkern g1="X" g2="ocircumflex" k="36" /> +<hkern g1="X" g2="otilde" k="36" /> +<hkern g1="X" g2="odieresis" k="36" /> +<hkern g1="X" g2="oslash" k="36" /> +<hkern g1="X" g2="OE" k="30" /> +<hkern g1="X" g2="oe" k="36" /> +<hkern g1="X" g2="endash" k="62" /> +<hkern g1="X" g2="emdash" k="62" /> +<hkern g1="X" g2="bullet" k="62" /> +<hkern g1="X" g2="guilsinglleft" k="62" /> +<hkern g1="X" g2="guilsinglright" k="62" /> +<hkern g1="Y" g2="quotedbl" k="-30" /> +<hkern g1="Y" g2="ampersand" k="164" /> +<hkern g1="Y" g2="quotesingle" k="-30" /> +<hkern g1="Y" g2="asterisk" k="-30" /> +<hkern g1="Y" g2="comma" k="152" /> +<hkern g1="Y" g2="hyphen" k="160" /> +<hkern g1="Y" g2="period" k="152" /> +<hkern g1="Y" g2="slash" k="164" /> +<hkern g1="Y" g2="colon" k="122" /> +<hkern g1="Y" g2="semicolon" k="122" /> +<hkern g1="Y" g2="question" k="-34" /> +<hkern g1="Y" g2="at" k="80" /> +<hkern g1="Y" g2="A" k="164" /> +<hkern g1="Y" g2="C" k="80" /> +<hkern g1="Y" g2="G" k="80" /> +<hkern g1="Y" g2="J" k="200" /> +<hkern g1="Y" g2="O" k="80" /> +<hkern g1="Y" g2="Q" k="80" /> +<hkern g1="Y" g2="a" k="128" /> +<hkern g1="Y" g2="c" k="160" /> +<hkern g1="Y" g2="d" k="160" /> +<hkern g1="Y" g2="e" k="160" /> +<hkern g1="Y" g2="g" k="172" /> +<hkern g1="Y" g2="m" k="122" /> +<hkern g1="Y" g2="n" k="122" /> +<hkern g1="Y" g2="o" k="160" /> +<hkern g1="Y" g2="p" k="122" /> +<hkern g1="Y" g2="q" k="160" /> +<hkern g1="Y" g2="r" k="122" /> +<hkern g1="Y" g2="s" k="128" /> +<hkern g1="Y" g2="u" k="122" /> +<hkern g1="Y" g2="v" k="100" /> +<hkern g1="Y" g2="w" k="92" /> +<hkern g1="Y" g2="x" k="132" /> +<hkern g1="Y" g2="y" k="100" /> +<hkern g1="Y" g2="ordfeminine" k="-30" /> +<hkern g1="Y" g2="guillemotleft" k="160" /> +<hkern g1="Y" g2="uni00AD" k="160" /> +<hkern g1="Y" g2="degree" k="-30" /> +<hkern g1="Y" g2="twosuperior" k="-50" /> +<hkern g1="Y" g2="threesuperior" k="-50" /> +<hkern g1="Y" g2="mu" k="122" /> +<hkern g1="Y" g2="middot" k="160" /> +<hkern g1="Y" g2="onesuperior" k="-50" /> +<hkern g1="Y" g2="ordmasculine" k="-30" /> +<hkern g1="Y" g2="guillemotright" k="160" /> +<hkern g1="Y" g2="Agrave" k="164" /> +<hkern g1="Y" g2="Aacute" k="164" /> +<hkern g1="Y" g2="Acircumflex" k="164" /> +<hkern g1="Y" g2="Atilde" k="164" /> +<hkern g1="Y" g2="Adieresis" k="164" /> +<hkern g1="Y" g2="Aring" k="164" /> +<hkern g1="Y" g2="AE" k="164" /> +<hkern g1="Y" g2="Ccedilla" k="80" /> +<hkern g1="Y" g2="Ograve" k="80" /> +<hkern g1="Y" g2="Oacute" k="80" /> +<hkern g1="Y" g2="Ocircumflex" k="80" /> +<hkern g1="Y" g2="Otilde" k="80" /> +<hkern g1="Y" g2="Odieresis" k="80" /> +<hkern g1="Y" g2="Oslash" k="80" /> +<hkern g1="Y" g2="agrave" k="128" /> +<hkern g1="Y" g2="aacute" k="128" /> +<hkern g1="Y" g2="acircumflex" k="128" /> +<hkern g1="Y" g2="atilde" k="128" /> +<hkern g1="Y" g2="adieresis" k="128" /> +<hkern g1="Y" g2="aring" k="128" /> +<hkern g1="Y" g2="ae" k="128" /> +<hkern g1="Y" g2="ccedilla" k="160" /> +<hkern g1="Y" g2="egrave" k="160" /> +<hkern g1="Y" g2="eacute" k="160" /> +<hkern g1="Y" g2="ecircumflex" k="160" /> +<hkern g1="Y" g2="edieresis" k="160" /> +<hkern g1="Y" g2="eth" k="160" /> +<hkern g1="Y" g2="ntilde" k="122" /> +<hkern g1="Y" g2="ograve" k="160" /> +<hkern g1="Y" g2="oacute" k="160" /> +<hkern g1="Y" g2="ocircumflex" k="160" /> +<hkern g1="Y" g2="otilde" k="160" /> +<hkern g1="Y" g2="odieresis" k="160" /> +<hkern g1="Y" g2="oslash" k="160" /> +<hkern g1="Y" g2="ugrave" k="122" /> +<hkern g1="Y" g2="uacute" k="122" /> +<hkern g1="Y" g2="ucircumflex" k="122" /> +<hkern g1="Y" g2="udieresis" k="122" /> +<hkern g1="Y" g2="OE" k="80" /> +<hkern g1="Y" g2="oe" k="160" /> +<hkern g1="Y" g2="endash" k="160" /> +<hkern g1="Y" g2="emdash" k="160" /> +<hkern g1="Y" g2="quoteleft" k="-30" /> +<hkern g1="Y" g2="quoteright" k="-30" /> +<hkern g1="Y" g2="quotesinglbase" k="152" /> +<hkern g1="Y" g2="quotedblleft" k="-30" /> +<hkern g1="Y" g2="quotedblright" k="-30" /> +<hkern g1="Y" g2="quotedblbase" k="152" /> +<hkern g1="Y" g2="bullet" k="160" /> +<hkern g1="Y" g2="guilsinglleft" k="160" /> +<hkern g1="Y" g2="guilsinglright" k="160" /> +<hkern g1="Z" g2="hyphen" k="70" /> +<hkern g1="Z" g2="question" k="-34" /> +<hkern g1="Z" g2="at" k="58" /> +<hkern g1="Z" g2="C" k="58" /> +<hkern g1="Z" g2="G" k="58" /> +<hkern g1="Z" g2="O" k="58" /> +<hkern g1="Z" g2="Q" k="58" /> +<hkern g1="Z" g2="c" k="38" /> +<hkern g1="Z" g2="d" k="38" /> +<hkern g1="Z" g2="e" k="38" /> +<hkern g1="Z" g2="o" k="38" /> +<hkern g1="Z" g2="q" k="38" /> +<hkern g1="Z" g2="s" k="28" /> +<hkern g1="Z" g2="v" k="40" /> +<hkern g1="Z" g2="y" k="40" /> +<hkern g1="Z" g2="guillemotleft" k="70" /> +<hkern g1="Z" g2="uni00AD" k="70" /> +<hkern g1="Z" g2="middot" k="70" /> +<hkern g1="Z" g2="guillemotright" k="70" /> +<hkern g1="Z" g2="Ccedilla" k="58" /> +<hkern g1="Z" g2="Ograve" k="58" /> +<hkern g1="Z" g2="Oacute" k="58" /> +<hkern g1="Z" g2="Ocircumflex" k="58" /> +<hkern g1="Z" g2="Otilde" k="58" /> +<hkern g1="Z" g2="Odieresis" k="58" /> +<hkern g1="Z" g2="Oslash" k="58" /> +<hkern g1="Z" g2="ccedilla" k="38" /> +<hkern g1="Z" g2="egrave" k="38" /> +<hkern g1="Z" g2="eacute" k="38" /> +<hkern g1="Z" g2="ecircumflex" k="38" /> +<hkern g1="Z" g2="edieresis" k="38" /> +<hkern g1="Z" g2="eth" k="38" /> +<hkern g1="Z" g2="ograve" k="38" /> +<hkern g1="Z" g2="oacute" k="38" /> +<hkern g1="Z" g2="ocircumflex" k="38" /> +<hkern g1="Z" g2="otilde" k="38" /> +<hkern g1="Z" g2="odieresis" k="38" /> +<hkern g1="Z" g2="oslash" k="38" /> +<hkern g1="Z" g2="OE" k="58" /> +<hkern g1="Z" g2="oe" k="38" /> +<hkern g1="Z" g2="endash" k="70" /> +<hkern g1="Z" g2="emdash" k="70" /> +<hkern g1="Z" g2="bullet" k="70" /> +<hkern g1="Z" g2="guilsinglleft" k="70" /> +<hkern g1="Z" g2="guilsinglright" k="70" /> +<hkern g1="bracketleft" g2="at" k="40" /> +<hkern g1="bracketleft" g2="C" k="40" /> +<hkern g1="bracketleft" g2="G" k="40" /> +<hkern g1="bracketleft" g2="O" k="40" /> +<hkern g1="bracketleft" g2="Q" k="40" /> +<hkern g1="bracketleft" g2="c" k="32" /> +<hkern g1="bracketleft" g2="d" k="32" /> +<hkern g1="bracketleft" g2="e" k="32" /> +<hkern g1="bracketleft" g2="o" k="32" /> +<hkern g1="bracketleft" g2="q" k="32" /> +<hkern g1="bracketleft" g2="Ccedilla" k="40" /> +<hkern g1="bracketleft" g2="Ograve" k="40" /> +<hkern g1="bracketleft" g2="Oacute" k="40" /> +<hkern g1="bracketleft" g2="Ocircumflex" k="40" /> +<hkern g1="bracketleft" g2="Otilde" k="40" /> +<hkern g1="bracketleft" g2="Odieresis" k="40" /> +<hkern g1="bracketleft" g2="Oslash" k="40" /> +<hkern g1="bracketleft" g2="ccedilla" k="32" /> +<hkern g1="bracketleft" g2="egrave" k="32" /> +<hkern g1="bracketleft" g2="eacute" k="32" /> +<hkern g1="bracketleft" g2="ecircumflex" k="32" /> +<hkern g1="bracketleft" g2="edieresis" k="32" /> +<hkern g1="bracketleft" g2="eth" k="32" /> +<hkern g1="bracketleft" g2="ograve" k="32" /> +<hkern g1="bracketleft" g2="oacute" k="32" /> +<hkern g1="bracketleft" g2="ocircumflex" k="32" /> +<hkern g1="bracketleft" g2="otilde" k="32" /> +<hkern g1="bracketleft" g2="odieresis" k="32" /> +<hkern g1="bracketleft" g2="oslash" k="32" /> +<hkern g1="bracketleft" g2="OE" k="40" /> +<hkern g1="bracketleft" g2="oe" k="32" /> +<hkern g1="backslash" g2="quotedbl" k="182" /> +<hkern g1="backslash" g2="quotesingle" k="182" /> +<hkern g1="backslash" g2="asterisk" k="182" /> +<hkern g1="backslash" g2="hyphen" k="52" /> +<hkern g1="backslash" g2="question" k="56" /> +<hkern g1="backslash" g2="at" k="42" /> +<hkern g1="backslash" g2="C" k="42" /> +<hkern g1="backslash" g2="G" k="42" /> +<hkern g1="backslash" g2="J" k="-50" /> +<hkern g1="backslash" g2="O" k="42" /> +<hkern g1="backslash" g2="Q" k="42" /> +<hkern g1="backslash" g2="T" k="132" /> +<hkern g1="backslash" g2="U" k="56" /> +<hkern g1="backslash" g2="V" k="136" /> +<hkern g1="backslash" g2="W" k="84" /> +<hkern g1="backslash" g2="Y" k="164" /> +<hkern g1="backslash" g2="backslash" k="136" /> +<hkern g1="backslash" g2="v" k="82" /> +<hkern g1="backslash" g2="y" k="82" /> +<hkern g1="backslash" g2="ordfeminine" k="182" /> +<hkern g1="backslash" g2="guillemotleft" k="52" /> +<hkern g1="backslash" g2="uni00AD" k="52" /> +<hkern g1="backslash" g2="degree" k="182" /> +<hkern g1="backslash" g2="twosuperior" k="184" /> +<hkern g1="backslash" g2="threesuperior" k="184" /> +<hkern g1="backslash" g2="middot" k="52" /> +<hkern g1="backslash" g2="onesuperior" k="184" /> +<hkern g1="backslash" g2="ordmasculine" k="182" /> +<hkern g1="backslash" g2="guillemotright" k="52" /> +<hkern g1="backslash" g2="Ccedilla" k="42" /> +<hkern g1="backslash" g2="Ograve" k="42" /> +<hkern g1="backslash" g2="Oacute" k="42" /> +<hkern g1="backslash" g2="Ocircumflex" k="42" /> +<hkern g1="backslash" g2="Otilde" k="42" /> +<hkern g1="backslash" g2="Odieresis" k="42" /> +<hkern g1="backslash" g2="Oslash" k="42" /> +<hkern g1="backslash" g2="Ugrave" k="56" /> +<hkern g1="backslash" g2="Uacute" k="56" /> +<hkern g1="backslash" g2="Ucircumflex" k="56" /> +<hkern g1="backslash" g2="Udieresis" k="56" /> +<hkern g1="backslash" g2="Yacute" k="164" /> +<hkern g1="backslash" g2="OE" k="42" /> +<hkern g1="backslash" g2="endash" k="52" /> +<hkern g1="backslash" g2="emdash" k="52" /> +<hkern g1="backslash" g2="quoteleft" k="182" /> +<hkern g1="backslash" g2="quoteright" k="182" /> +<hkern g1="backslash" g2="quotedblleft" k="182" /> +<hkern g1="backslash" g2="quotedblright" k="182" /> +<hkern g1="backslash" g2="bullet" k="52" /> +<hkern g1="backslash" g2="guilsinglleft" k="52" /> +<hkern g1="backslash" g2="guilsinglright" k="52" /> +<hkern g1="a" g2="quotedbl" k="72" /> +<hkern g1="a" g2="quotesingle" k="72" /> +<hkern g1="a" g2="asterisk" k="72" /> +<hkern g1="a" g2="v" k="32" /> +<hkern g1="a" g2="w" k="16" /> +<hkern g1="a" g2="y" k="32" /> +<hkern g1="a" g2="ordfeminine" k="72" /> +<hkern g1="a" g2="degree" k="72" /> +<hkern g1="a" g2="twosuperior" k="72" /> +<hkern g1="a" g2="threesuperior" k="72" /> +<hkern g1="a" g2="onesuperior" k="72" /> +<hkern g1="a" g2="ordmasculine" k="72" /> +<hkern g1="a" g2="quoteleft" k="72" /> +<hkern g1="a" g2="quoteright" k="72" /> +<hkern g1="a" g2="quotedblleft" k="72" /> +<hkern g1="a" g2="quotedblright" k="72" /> +<hkern g1="b" g2="quotedbl" k="92" /> +<hkern g1="b" g2="quotesingle" k="92" /> +<hkern g1="b" g2="parenright" k="32" /> +<hkern g1="b" g2="asterisk" k="92" /> +<hkern g1="b" g2="V" k="116" /> +<hkern g1="b" g2="W" k="32" /> +<hkern g1="b" g2="backslash" k="116" /> +<hkern g1="b" g2="bracketright" k="32" /> +<hkern g1="b" g2="v" k="26" /> +<hkern g1="b" g2="x" k="60" /> +<hkern g1="b" g2="y" k="26" /> +<hkern g1="b" g2="braceright" k="32" /> +<hkern g1="b" g2="ordfeminine" k="92" /> +<hkern g1="b" g2="degree" k="92" /> +<hkern g1="b" g2="ordmasculine" k="92" /> +<hkern g1="b" g2="quoteleft" k="92" /> +<hkern g1="b" g2="quoteright" k="92" /> +<hkern g1="b" g2="quotedblleft" k="92" /> +<hkern g1="b" g2="quotedblright" k="92" /> +<hkern g1="e" g2="quotedbl" k="92" /> +<hkern g1="e" g2="quotesingle" k="92" /> +<hkern g1="e" g2="parenright" k="32" /> +<hkern g1="e" g2="asterisk" k="92" /> +<hkern g1="e" g2="V" k="116" /> +<hkern g1="e" g2="W" k="32" /> +<hkern g1="e" g2="backslash" k="116" /> +<hkern g1="e" g2="bracketright" k="32" /> +<hkern g1="e" g2="v" k="26" /> +<hkern g1="e" g2="x" k="60" /> +<hkern g1="e" g2="y" k="26" /> +<hkern g1="e" g2="braceright" k="32" /> +<hkern g1="e" g2="ordfeminine" k="92" /> +<hkern g1="e" g2="degree" k="92" /> +<hkern g1="e" g2="ordmasculine" k="92" /> +<hkern g1="e" g2="quoteleft" k="92" /> +<hkern g1="e" g2="quoteright" k="92" /> +<hkern g1="e" g2="quotedblleft" k="92" /> +<hkern g1="e" g2="quotedblright" k="92" /> +<hkern g1="f" g2="quotedbl" k="-68" /> +<hkern g1="f" g2="quotesingle" k="-68" /> +<hkern g1="f" g2="asterisk" k="-68" /> +<hkern g1="f" g2="comma" k="130" /> +<hkern g1="f" g2="period" k="130" /> +<hkern g1="f" g2="ordfeminine" k="-68" /> +<hkern g1="f" g2="degree" k="-68" /> +<hkern g1="f" g2="twosuperior" k="-100" /> +<hkern g1="f" g2="threesuperior" k="-100" /> +<hkern g1="f" g2="onesuperior" k="-100" /> +<hkern g1="f" g2="ordmasculine" k="-68" /> +<hkern g1="f" g2="quoteleft" k="-68" /> +<hkern g1="f" g2="quoteright" k="-68" /> +<hkern g1="f" g2="quotesinglbase" k="130" /> +<hkern g1="f" g2="quotedblleft" k="-68" /> +<hkern g1="f" g2="quotedblright" k="-68" /> +<hkern g1="f" g2="quotedblbase" k="130" /> +<hkern g1="h" g2="quotedbl" k="72" /> +<hkern g1="h" g2="quotesingle" k="72" /> +<hkern g1="h" g2="asterisk" k="72" /> +<hkern g1="h" g2="v" k="32" /> +<hkern g1="h" g2="w" k="16" /> +<hkern g1="h" g2="y" k="32" /> +<hkern g1="h" g2="ordfeminine" k="72" /> +<hkern g1="h" g2="degree" k="72" /> +<hkern g1="h" g2="twosuperior" k="72" /> +<hkern g1="h" g2="threesuperior" k="72" /> +<hkern g1="h" g2="onesuperior" k="72" /> +<hkern g1="h" g2="ordmasculine" k="72" /> +<hkern g1="h" g2="quoteleft" k="72" /> +<hkern g1="h" g2="quoteright" k="72" /> +<hkern g1="h" g2="quotedblleft" k="72" /> +<hkern g1="h" g2="quotedblright" k="72" /> +<hkern g1="k" g2="c" k="60" /> +<hkern g1="k" g2="d" k="60" /> +<hkern g1="k" g2="e" k="60" /> +<hkern g1="k" g2="o" k="60" /> +<hkern g1="k" g2="q" k="60" /> +<hkern g1="k" g2="ccedilla" k="60" /> +<hkern g1="k" g2="egrave" k="60" /> +<hkern g1="k" g2="eacute" k="60" /> +<hkern g1="k" g2="ecircumflex" k="60" /> +<hkern g1="k" g2="edieresis" k="60" /> +<hkern g1="k" g2="eth" k="60" /> +<hkern g1="k" g2="ograve" k="60" /> +<hkern g1="k" g2="oacute" k="60" /> +<hkern g1="k" g2="ocircumflex" k="60" /> +<hkern g1="k" g2="otilde" k="60" /> +<hkern g1="k" g2="odieresis" k="60" /> +<hkern g1="k" g2="oslash" k="60" /> +<hkern g1="k" g2="oe" k="60" /> +<hkern g1="m" g2="quotedbl" k="72" /> +<hkern g1="m" g2="quotesingle" k="72" /> +<hkern g1="m" g2="asterisk" k="72" /> +<hkern g1="m" g2="v" k="32" /> +<hkern g1="m" g2="w" k="16" /> +<hkern g1="m" g2="y" k="32" /> +<hkern g1="m" g2="ordfeminine" k="72" /> +<hkern g1="m" g2="degree" k="72" /> +<hkern g1="m" g2="twosuperior" k="72" /> +<hkern g1="m" g2="threesuperior" k="72" /> +<hkern g1="m" g2="onesuperior" k="72" /> +<hkern g1="m" g2="ordmasculine" k="72" /> +<hkern g1="m" g2="quoteleft" k="72" /> +<hkern g1="m" g2="quoteright" k="72" /> +<hkern g1="m" g2="quotedblleft" k="72" /> +<hkern g1="m" g2="quotedblright" k="72" /> +<hkern g1="n" g2="quotedbl" k="72" /> +<hkern g1="n" g2="quotesingle" k="72" /> +<hkern g1="n" g2="asterisk" k="72" /> +<hkern g1="n" g2="v" k="32" /> +<hkern g1="n" g2="w" k="16" /> +<hkern g1="n" g2="y" k="32" /> +<hkern g1="n" g2="ordfeminine" k="72" /> +<hkern g1="n" g2="degree" k="72" /> +<hkern g1="n" g2="twosuperior" k="72" /> +<hkern g1="n" g2="threesuperior" k="72" /> +<hkern g1="n" g2="onesuperior" k="72" /> +<hkern g1="n" g2="ordmasculine" k="72" /> +<hkern g1="n" g2="quoteleft" k="72" /> +<hkern g1="n" g2="quoteright" k="72" /> +<hkern g1="n" g2="quotedblleft" k="72" /> +<hkern g1="n" g2="quotedblright" k="72" /> +<hkern g1="o" g2="quotedbl" k="92" /> +<hkern g1="o" g2="quotesingle" k="92" /> +<hkern g1="o" g2="parenright" k="32" /> +<hkern g1="o" g2="asterisk" k="92" /> +<hkern g1="o" g2="V" k="116" /> +<hkern g1="o" g2="W" k="32" /> +<hkern g1="o" g2="backslash" k="116" /> +<hkern g1="o" g2="bracketright" k="32" /> +<hkern g1="o" g2="v" k="26" /> +<hkern g1="o" g2="x" k="60" /> +<hkern g1="o" g2="y" k="26" /> +<hkern g1="o" g2="braceright" k="32" /> +<hkern g1="o" g2="ordfeminine" k="92" /> +<hkern g1="o" g2="degree" k="92" /> +<hkern g1="o" g2="ordmasculine" k="92" /> +<hkern g1="o" g2="quoteleft" k="92" /> +<hkern g1="o" g2="quoteright" k="92" /> +<hkern g1="o" g2="quotedblleft" k="92" /> +<hkern g1="o" g2="quotedblright" k="92" /> +<hkern g1="p" g2="quotedbl" k="92" /> +<hkern g1="p" g2="quotesingle" k="92" /> +<hkern g1="p" g2="parenright" k="32" /> +<hkern g1="p" g2="asterisk" k="92" /> +<hkern g1="p" g2="V" k="116" /> +<hkern g1="p" g2="W" k="32" /> +<hkern g1="p" g2="backslash" k="116" /> +<hkern g1="p" g2="bracketright" k="32" /> +<hkern g1="p" g2="v" k="26" /> +<hkern g1="p" g2="x" k="60" /> +<hkern g1="p" g2="y" k="26" /> +<hkern g1="p" g2="braceright" k="32" /> +<hkern g1="p" g2="ordfeminine" k="92" /> +<hkern g1="p" g2="degree" k="92" /> +<hkern g1="p" g2="ordmasculine" k="92" /> +<hkern g1="p" g2="quoteleft" k="92" /> +<hkern g1="p" g2="quoteright" k="92" /> +<hkern g1="p" g2="quotedblleft" k="92" /> +<hkern g1="p" g2="quotedblright" k="92" /> +<hkern g1="r" g2="comma" k="132" /> +<hkern g1="r" g2="period" k="132" /> +<hkern g1="r" g2="a" k="38" /> +<hkern g1="r" g2="agrave" k="38" /> +<hkern g1="r" g2="aacute" k="38" /> +<hkern g1="r" g2="acircumflex" k="38" /> +<hkern g1="r" g2="atilde" k="38" /> +<hkern g1="r" g2="adieresis" k="38" /> +<hkern g1="r" g2="aring" k="38" /> +<hkern g1="r" g2="ae" k="38" /> +<hkern g1="r" g2="quotesinglbase" k="132" /> +<hkern g1="r" g2="quotedblbase" k="132" /> +<hkern g1="v" g2="ampersand" k="82" /> +<hkern g1="v" g2="comma" k="132" /> +<hkern g1="v" g2="period" k="132" /> +<hkern g1="v" g2="slash" k="82" /> +<hkern g1="v" g2="A" k="82" /> +<hkern g1="v" g2="c" k="26" /> +<hkern g1="v" g2="d" k="26" /> +<hkern g1="v" g2="e" k="26" /> +<hkern g1="v" g2="o" k="26" /> +<hkern g1="v" g2="q" k="26" /> +<hkern g1="v" g2="Agrave" k="82" /> +<hkern g1="v" g2="Aacute" k="82" /> +<hkern g1="v" g2="Acircumflex" k="82" /> +<hkern g1="v" g2="Atilde" k="82" /> +<hkern g1="v" g2="Adieresis" k="82" /> +<hkern g1="v" g2="Aring" k="82" /> +<hkern g1="v" g2="AE" k="82" /> +<hkern g1="v" g2="ccedilla" k="26" /> +<hkern g1="v" g2="egrave" k="26" /> +<hkern g1="v" g2="eacute" k="26" /> +<hkern g1="v" g2="ecircumflex" k="26" /> +<hkern g1="v" g2="edieresis" k="26" /> +<hkern g1="v" g2="eth" k="26" /> +<hkern g1="v" g2="ograve" k="26" /> +<hkern g1="v" g2="oacute" k="26" /> +<hkern g1="v" g2="ocircumflex" k="26" /> +<hkern g1="v" g2="otilde" k="26" /> +<hkern g1="v" g2="odieresis" k="26" /> +<hkern g1="v" g2="oslash" k="26" /> +<hkern g1="v" g2="oe" k="26" /> +<hkern g1="v" g2="quotesinglbase" k="132" /> +<hkern g1="v" g2="quotedblbase" k="132" /> +<hkern g1="w" g2="comma" k="62" /> +<hkern g1="w" g2="period" k="62" /> +<hkern g1="w" g2="quotesinglbase" k="62" /> +<hkern g1="w" g2="quotedblbase" k="62" /> +<hkern g1="x" g2="c" k="60" /> +<hkern g1="x" g2="d" k="60" /> +<hkern g1="x" g2="e" k="60" /> +<hkern g1="x" g2="o" k="60" /> +<hkern g1="x" g2="q" k="60" /> +<hkern g1="x" g2="ccedilla" k="60" /> +<hkern g1="x" g2="egrave" k="60" /> +<hkern g1="x" g2="eacute" k="60" /> +<hkern g1="x" g2="ecircumflex" k="60" /> +<hkern g1="x" g2="edieresis" k="60" /> +<hkern g1="x" g2="eth" k="60" /> +<hkern g1="x" g2="ograve" k="60" /> +<hkern g1="x" g2="oacute" k="60" /> +<hkern g1="x" g2="ocircumflex" k="60" /> +<hkern g1="x" g2="otilde" k="60" /> +<hkern g1="x" g2="odieresis" k="60" /> +<hkern g1="x" g2="oslash" k="60" /> +<hkern g1="x" g2="oe" k="60" /> +<hkern g1="y" g2="ampersand" k="82" /> +<hkern g1="y" g2="comma" k="132" /> +<hkern g1="y" g2="period" k="132" /> +<hkern g1="y" g2="slash" k="82" /> +<hkern g1="y" g2="A" k="82" /> +<hkern g1="y" g2="c" k="26" /> +<hkern g1="y" g2="d" k="26" /> +<hkern g1="y" g2="e" k="26" /> +<hkern g1="y" g2="o" k="26" /> +<hkern g1="y" g2="q" k="26" /> +<hkern g1="y" g2="Agrave" k="82" /> +<hkern g1="y" g2="Aacute" k="82" /> +<hkern g1="y" g2="Acircumflex" k="82" /> +<hkern g1="y" g2="Atilde" k="82" /> +<hkern g1="y" g2="Adieresis" k="82" /> +<hkern g1="y" g2="Aring" k="82" /> +<hkern g1="y" g2="AE" k="82" /> +<hkern g1="y" g2="ccedilla" k="26" /> +<hkern g1="y" g2="egrave" k="26" /> +<hkern g1="y" g2="eacute" k="26" /> +<hkern g1="y" g2="ecircumflex" k="26" /> +<hkern g1="y" g2="edieresis" k="26" /> +<hkern g1="y" g2="eth" k="26" /> +<hkern g1="y" g2="ograve" k="26" /> +<hkern g1="y" g2="oacute" k="26" /> +<hkern g1="y" g2="ocircumflex" k="26" /> +<hkern g1="y" g2="otilde" k="26" /> +<hkern g1="y" g2="odieresis" k="26" /> +<hkern g1="y" g2="oslash" k="26" /> +<hkern g1="y" g2="oe" k="26" /> +<hkern g1="y" g2="quotesinglbase" k="132" /> +<hkern g1="y" g2="quotedblbase" k="132" /> +<hkern g1="braceleft" g2="at" k="40" /> +<hkern g1="braceleft" g2="C" k="40" /> +<hkern g1="braceleft" g2="G" k="40" /> +<hkern g1="braceleft" g2="O" k="40" /> +<hkern g1="braceleft" g2="Q" k="40" /> +<hkern g1="braceleft" g2="c" k="32" /> +<hkern g1="braceleft" g2="d" k="32" /> +<hkern g1="braceleft" g2="e" k="32" /> +<hkern g1="braceleft" g2="o" k="32" /> +<hkern g1="braceleft" g2="q" k="32" /> +<hkern g1="braceleft" g2="Ccedilla" k="40" /> +<hkern g1="braceleft" g2="Ograve" k="40" /> +<hkern g1="braceleft" g2="Oacute" k="40" /> +<hkern g1="braceleft" g2="Ocircumflex" k="40" /> +<hkern g1="braceleft" g2="Otilde" k="40" /> +<hkern g1="braceleft" g2="Odieresis" k="40" /> +<hkern g1="braceleft" g2="Oslash" k="40" /> +<hkern g1="braceleft" g2="ccedilla" k="32" /> +<hkern g1="braceleft" g2="egrave" k="32" /> +<hkern g1="braceleft" g2="eacute" k="32" /> +<hkern g1="braceleft" g2="ecircumflex" k="32" /> +<hkern g1="braceleft" g2="edieresis" k="32" /> +<hkern g1="braceleft" g2="eth" k="32" /> +<hkern g1="braceleft" g2="ograve" k="32" /> +<hkern g1="braceleft" g2="oacute" k="32" /> +<hkern g1="braceleft" g2="ocircumflex" k="32" /> +<hkern g1="braceleft" g2="otilde" k="32" /> +<hkern g1="braceleft" g2="odieresis" k="32" /> +<hkern g1="braceleft" g2="oslash" k="32" /> +<hkern g1="braceleft" g2="OE" k="40" /> +<hkern g1="braceleft" g2="oe" k="32" /> +<hkern g1="ordfeminine" g2="ampersand" k="182" /> +<hkern g1="ordfeminine" g2="comma" k="228" /> +<hkern g1="ordfeminine" g2="hyphen" k="178" /> +<hkern g1="ordfeminine" g2="period" k="228" /> +<hkern g1="ordfeminine" g2="slash" k="182" /> +<hkern g1="ordfeminine" g2="at" k="46" /> +<hkern g1="ordfeminine" g2="A" k="182" /> +<hkern g1="ordfeminine" g2="C" k="46" /> +<hkern g1="ordfeminine" g2="G" k="46" /> +<hkern g1="ordfeminine" g2="O" k="46" /> +<hkern g1="ordfeminine" g2="Q" k="46" /> +<hkern g1="ordfeminine" g2="V" k="-48" /> +<hkern g1="ordfeminine" g2="W" k="-48" /> +<hkern g1="ordfeminine" g2="Y" k="-30" /> +<hkern g1="ordfeminine" g2="backslash" k="-48" /> +<hkern g1="ordfeminine" g2="a" k="64" /> +<hkern g1="ordfeminine" g2="c" k="92" /> +<hkern g1="ordfeminine" g2="d" k="92" /> +<hkern g1="ordfeminine" g2="e" k="92" /> +<hkern g1="ordfeminine" g2="o" k="92" /> +<hkern g1="ordfeminine" g2="q" k="92" /> +<hkern g1="ordfeminine" g2="guillemotleft" k="178" /> +<hkern g1="ordfeminine" g2="uni00AD" k="178" /> +<hkern g1="ordfeminine" g2="middot" k="178" /> +<hkern g1="ordfeminine" g2="guillemotright" k="178" /> +<hkern g1="ordfeminine" g2="Agrave" k="182" /> +<hkern g1="ordfeminine" g2="Aacute" k="182" /> +<hkern g1="ordfeminine" g2="Acircumflex" k="182" /> +<hkern g1="ordfeminine" g2="Atilde" k="182" /> +<hkern g1="ordfeminine" g2="Adieresis" k="182" /> +<hkern g1="ordfeminine" g2="Aring" k="182" /> +<hkern g1="ordfeminine" g2="AE" k="182" /> +<hkern g1="ordfeminine" g2="Ccedilla" k="46" /> +<hkern g1="ordfeminine" g2="Ograve" k="46" /> +<hkern g1="ordfeminine" g2="Oacute" k="46" /> +<hkern g1="ordfeminine" g2="Ocircumflex" k="46" /> +<hkern g1="ordfeminine" g2="Otilde" k="46" /> +<hkern g1="ordfeminine" g2="Odieresis" k="46" /> +<hkern g1="ordfeminine" g2="Oslash" k="46" /> +<hkern g1="ordfeminine" g2="Yacute" k="-30" /> +<hkern g1="ordfeminine" g2="agrave" k="64" /> +<hkern g1="ordfeminine" g2="aacute" k="64" /> +<hkern g1="ordfeminine" g2="acircumflex" k="64" /> +<hkern g1="ordfeminine" g2="atilde" k="64" /> +<hkern g1="ordfeminine" g2="adieresis" k="64" /> +<hkern g1="ordfeminine" g2="aring" k="64" /> +<hkern g1="ordfeminine" g2="ae" k="64" /> +<hkern g1="ordfeminine" g2="ccedilla" k="92" /> +<hkern g1="ordfeminine" g2="egrave" k="92" /> +<hkern g1="ordfeminine" g2="eacute" k="92" /> +<hkern g1="ordfeminine" g2="ecircumflex" k="92" /> +<hkern g1="ordfeminine" g2="edieresis" k="92" /> +<hkern g1="ordfeminine" g2="eth" k="92" /> +<hkern g1="ordfeminine" g2="ograve" k="92" /> +<hkern g1="ordfeminine" g2="oacute" k="92" /> +<hkern g1="ordfeminine" g2="ocircumflex" k="92" /> +<hkern g1="ordfeminine" g2="otilde" k="92" /> +<hkern g1="ordfeminine" g2="odieresis" k="92" /> +<hkern g1="ordfeminine" g2="oslash" k="92" /> +<hkern g1="ordfeminine" g2="OE" k="46" /> +<hkern g1="ordfeminine" g2="oe" k="92" /> +<hkern g1="ordfeminine" g2="endash" k="178" /> +<hkern g1="ordfeminine" g2="emdash" k="178" /> +<hkern g1="ordfeminine" g2="quotesinglbase" k="228" /> +<hkern g1="ordfeminine" g2="quotedblbase" k="228" /> +<hkern g1="ordfeminine" g2="bullet" k="178" /> +<hkern g1="ordfeminine" g2="guilsinglleft" k="178" /> +<hkern g1="ordfeminine" g2="guilsinglright" k="178" /> +<hkern g1="guillemotleft" g2="quotedbl" k="178" /> +<hkern g1="guillemotleft" g2="ampersand" k="52" /> +<hkern g1="guillemotleft" g2="quotesingle" k="178" /> +<hkern g1="guillemotleft" g2="asterisk" k="178" /> +<hkern g1="guillemotleft" g2="comma" k="136" /> +<hkern g1="guillemotleft" g2="period" k="136" /> +<hkern g1="guillemotleft" g2="slash" k="52" /> +<hkern g1="guillemotleft" g2="A" k="52" /> +<hkern g1="guillemotleft" g2="T" k="180" /> +<hkern g1="guillemotleft" g2="V" k="112" /> +<hkern g1="guillemotleft" g2="W" k="32" /> +<hkern g1="guillemotleft" g2="X" k="62" /> +<hkern g1="guillemotleft" g2="Y" k="160" /> +<hkern g1="guillemotleft" g2="Z" k="46" /> +<hkern g1="guillemotleft" g2="backslash" k="112" /> +<hkern g1="guillemotleft" g2="ordfeminine" k="178" /> +<hkern g1="guillemotleft" g2="degree" k="178" /> +<hkern g1="guillemotleft" g2="ordmasculine" k="178" /> +<hkern g1="guillemotleft" g2="Agrave" k="52" /> +<hkern g1="guillemotleft" g2="Aacute" k="52" /> +<hkern g1="guillemotleft" g2="Acircumflex" k="52" /> +<hkern g1="guillemotleft" g2="Atilde" k="52" /> +<hkern g1="guillemotleft" g2="Adieresis" k="52" /> +<hkern g1="guillemotleft" g2="Aring" k="52" /> +<hkern g1="guillemotleft" g2="AE" k="52" /> +<hkern g1="guillemotleft" g2="Yacute" k="160" /> +<hkern g1="guillemotleft" g2="quoteleft" k="178" /> +<hkern g1="guillemotleft" g2="quoteright" k="178" /> +<hkern g1="guillemotleft" g2="quotesinglbase" k="136" /> +<hkern g1="guillemotleft" g2="quotedblleft" k="178" /> +<hkern g1="guillemotleft" g2="quotedblright" k="178" /> +<hkern g1="guillemotleft" g2="quotedblbase" k="136" /> +<hkern g1="uni00AD" g2="quotedbl" k="178" /> +<hkern g1="uni00AD" g2="ampersand" k="52" /> +<hkern g1="uni00AD" g2="quotesingle" k="178" /> +<hkern g1="uni00AD" g2="asterisk" k="178" /> +<hkern g1="uni00AD" g2="comma" k="136" /> +<hkern g1="uni00AD" g2="period" k="136" /> +<hkern g1="uni00AD" g2="slash" k="52" /> +<hkern g1="uni00AD" g2="A" k="52" /> +<hkern g1="uni00AD" g2="T" k="180" /> +<hkern g1="uni00AD" g2="V" k="112" /> +<hkern g1="uni00AD" g2="W" k="32" /> +<hkern g1="uni00AD" g2="X" k="62" /> +<hkern g1="uni00AD" g2="Y" k="160" /> +<hkern g1="uni00AD" g2="Z" k="46" /> +<hkern g1="uni00AD" g2="backslash" k="112" /> +<hkern g1="uni00AD" g2="ordfeminine" k="178" /> +<hkern g1="uni00AD" g2="degree" k="178" /> +<hkern g1="uni00AD" g2="ordmasculine" k="178" /> +<hkern g1="uni00AD" g2="Agrave" k="52" /> +<hkern g1="uni00AD" g2="Aacute" k="52" /> +<hkern g1="uni00AD" g2="Acircumflex" k="52" /> +<hkern g1="uni00AD" g2="Atilde" k="52" /> +<hkern g1="uni00AD" g2="Adieresis" k="52" /> +<hkern g1="uni00AD" g2="Aring" k="52" /> +<hkern g1="uni00AD" g2="AE" k="52" /> +<hkern g1="uni00AD" g2="Yacute" k="160" /> +<hkern g1="uni00AD" g2="quoteleft" k="178" /> +<hkern g1="uni00AD" g2="quoteright" k="178" /> +<hkern g1="uni00AD" g2="quotesinglbase" k="136" /> +<hkern g1="uni00AD" g2="quotedblleft" k="178" /> +<hkern g1="uni00AD" g2="quotedblright" k="178" /> +<hkern g1="uni00AD" g2="quotedblbase" k="136" /> +<hkern g1="registered" g2="quotedbl" k="46" /> +<hkern g1="registered" g2="ampersand" k="42" /> +<hkern g1="registered" g2="quotesingle" k="46" /> +<hkern g1="registered" g2="parenright" k="40" /> +<hkern g1="registered" g2="asterisk" k="46" /> +<hkern g1="registered" g2="comma" k="56" /> +<hkern g1="registered" g2="period" k="56" /> +<hkern g1="registered" g2="slash" k="42" /> +<hkern g1="registered" g2="A" k="42" /> +<hkern g1="registered" g2="T" k="98" /> +<hkern g1="registered" g2="V" k="52" /> +<hkern g1="registered" g2="X" k="30" /> +<hkern g1="registered" g2="Y" k="80" /> +<hkern g1="registered" g2="Z" k="70" /> +<hkern g1="registered" g2="backslash" k="52" /> +<hkern g1="registered" g2="bracketright" k="40" /> +<hkern g1="registered" g2="braceright" k="40" /> +<hkern g1="registered" g2="ordfeminine" k="46" /> +<hkern g1="registered" g2="degree" k="46" /> +<hkern g1="registered" g2="ordmasculine" k="46" /> +<hkern g1="registered" g2="Agrave" k="42" /> +<hkern g1="registered" g2="Aacute" k="42" /> +<hkern g1="registered" g2="Acircumflex" k="42" /> +<hkern g1="registered" g2="Atilde" k="42" /> +<hkern g1="registered" g2="Adieresis" k="42" /> +<hkern g1="registered" g2="Aring" k="42" /> +<hkern g1="registered" g2="AE" k="42" /> +<hkern g1="registered" g2="Yacute" k="80" /> +<hkern g1="registered" g2="quoteleft" k="46" /> +<hkern g1="registered" g2="quoteright" k="46" /> +<hkern g1="registered" g2="quotesinglbase" k="56" /> +<hkern g1="registered" g2="quotedblleft" k="46" /> +<hkern g1="registered" g2="quotedblright" k="46" /> +<hkern g1="registered" g2="quotedblbase" k="56" /> +<hkern g1="degree" g2="ampersand" k="182" /> +<hkern g1="degree" g2="comma" k="228" /> +<hkern g1="degree" g2="hyphen" k="178" /> +<hkern g1="degree" g2="period" k="228" /> +<hkern g1="degree" g2="slash" k="182" /> +<hkern g1="degree" g2="at" k="46" /> +<hkern g1="degree" g2="A" k="182" /> +<hkern g1="degree" g2="C" k="46" /> +<hkern g1="degree" g2="G" k="46" /> +<hkern g1="degree" g2="O" k="46" /> +<hkern g1="degree" g2="Q" k="46" /> +<hkern g1="degree" g2="V" k="-48" /> +<hkern g1="degree" g2="W" k="-48" /> +<hkern g1="degree" g2="Y" k="-30" /> +<hkern g1="degree" g2="backslash" k="-48" /> +<hkern g1="degree" g2="a" k="64" /> +<hkern g1="degree" g2="c" k="92" /> +<hkern g1="degree" g2="d" k="92" /> +<hkern g1="degree" g2="e" k="92" /> +<hkern g1="degree" g2="o" k="92" /> +<hkern g1="degree" g2="q" k="92" /> +<hkern g1="degree" g2="guillemotleft" k="178" /> +<hkern g1="degree" g2="uni00AD" k="178" /> +<hkern g1="degree" g2="middot" k="178" /> +<hkern g1="degree" g2="guillemotright" k="178" /> +<hkern g1="degree" g2="Agrave" k="182" /> +<hkern g1="degree" g2="Aacute" k="182" /> +<hkern g1="degree" g2="Acircumflex" k="182" /> +<hkern g1="degree" g2="Atilde" k="182" /> +<hkern g1="degree" g2="Adieresis" k="182" /> +<hkern g1="degree" g2="Aring" k="182" /> +<hkern g1="degree" g2="AE" k="182" /> +<hkern g1="degree" g2="Ccedilla" k="46" /> +<hkern g1="degree" g2="Ograve" k="46" /> +<hkern g1="degree" g2="Oacute" k="46" /> +<hkern g1="degree" g2="Ocircumflex" k="46" /> +<hkern g1="degree" g2="Otilde" k="46" /> +<hkern g1="degree" g2="Odieresis" k="46" /> +<hkern g1="degree" g2="Oslash" k="46" /> +<hkern g1="degree" g2="Yacute" k="-30" /> +<hkern g1="degree" g2="agrave" k="64" /> +<hkern g1="degree" g2="aacute" k="64" /> +<hkern g1="degree" g2="acircumflex" k="64" /> +<hkern g1="degree" g2="atilde" k="64" /> +<hkern g1="degree" g2="adieresis" k="64" /> +<hkern g1="degree" g2="aring" k="64" /> +<hkern g1="degree" g2="ae" k="64" /> +<hkern g1="degree" g2="ccedilla" k="92" /> +<hkern g1="degree" g2="egrave" k="92" /> +<hkern g1="degree" g2="eacute" k="92" /> +<hkern g1="degree" g2="ecircumflex" k="92" /> +<hkern g1="degree" g2="edieresis" k="92" /> +<hkern g1="degree" g2="eth" k="92" /> +<hkern g1="degree" g2="ograve" k="92" /> +<hkern g1="degree" g2="oacute" k="92" /> +<hkern g1="degree" g2="ocircumflex" k="92" /> +<hkern g1="degree" g2="otilde" k="92" /> +<hkern g1="degree" g2="odieresis" k="92" /> +<hkern g1="degree" g2="oslash" k="92" /> +<hkern g1="degree" g2="OE" k="46" /> +<hkern g1="degree" g2="oe" k="92" /> +<hkern g1="degree" g2="endash" k="178" /> +<hkern g1="degree" g2="emdash" k="178" /> +<hkern g1="degree" g2="quotesinglbase" k="228" /> +<hkern g1="degree" g2="quotedblbase" k="228" /> +<hkern g1="degree" g2="bullet" k="178" /> +<hkern g1="degree" g2="guilsinglleft" k="178" /> +<hkern g1="degree" g2="guilsinglright" k="178" /> +<hkern g1="twosuperior" g2="ampersand" k="184" /> +<hkern g1="twosuperior" g2="slash" k="184" /> +<hkern g1="twosuperior" g2="A" k="184" /> +<hkern g1="twosuperior" g2="V" k="-58" /> +<hkern g1="twosuperior" g2="W" k="-58" /> +<hkern g1="twosuperior" g2="Y" k="-40" /> +<hkern g1="twosuperior" g2="backslash" k="-58" /> +<hkern g1="twosuperior" g2="Agrave" k="184" /> +<hkern g1="twosuperior" g2="Aacute" k="184" /> +<hkern g1="twosuperior" g2="Acircumflex" k="184" /> +<hkern g1="twosuperior" g2="Atilde" k="184" /> +<hkern g1="twosuperior" g2="Adieresis" k="184" /> +<hkern g1="twosuperior" g2="Aring" k="184" /> +<hkern g1="twosuperior" g2="AE" k="184" /> +<hkern g1="twosuperior" g2="Yacute" k="-40" /> +<hkern g1="threesuperior" g2="ampersand" k="184" /> +<hkern g1="threesuperior" g2="slash" k="184" /> +<hkern g1="threesuperior" g2="A" k="184" /> +<hkern g1="threesuperior" g2="V" k="-58" /> +<hkern g1="threesuperior" g2="W" k="-58" /> +<hkern g1="threesuperior" g2="Y" k="-40" /> +<hkern g1="threesuperior" g2="backslash" k="-58" /> +<hkern g1="threesuperior" g2="Agrave" k="184" /> +<hkern g1="threesuperior" g2="Aacute" k="184" /> +<hkern g1="threesuperior" g2="Acircumflex" k="184" /> +<hkern g1="threesuperior" g2="Atilde" k="184" /> +<hkern g1="threesuperior" g2="Adieresis" k="184" /> +<hkern g1="threesuperior" g2="Aring" k="184" /> +<hkern g1="threesuperior" g2="AE" k="184" /> +<hkern g1="threesuperior" g2="Yacute" k="-40" /> +<hkern g1="middot" g2="quotedbl" k="178" /> +<hkern g1="middot" g2="ampersand" k="52" /> +<hkern g1="middot" g2="quotesingle" k="178" /> +<hkern g1="middot" g2="asterisk" k="178" /> +<hkern g1="middot" g2="comma" k="136" /> +<hkern g1="middot" g2="period" k="136" /> +<hkern g1="middot" g2="slash" k="52" /> +<hkern g1="middot" g2="A" k="52" /> +<hkern g1="middot" g2="T" k="180" /> +<hkern g1="middot" g2="V" k="112" /> +<hkern g1="middot" g2="W" k="32" /> +<hkern g1="middot" g2="X" k="62" /> +<hkern g1="middot" g2="Y" k="160" /> +<hkern g1="middot" g2="Z" k="46" /> +<hkern g1="middot" g2="backslash" k="112" /> +<hkern g1="middot" g2="ordfeminine" k="178" /> +<hkern g1="middot" g2="degree" k="178" /> +<hkern g1="middot" g2="ordmasculine" k="178" /> +<hkern g1="middot" g2="Agrave" k="52" /> +<hkern g1="middot" g2="Aacute" k="52" /> +<hkern g1="middot" g2="Acircumflex" k="52" /> +<hkern g1="middot" g2="Atilde" k="52" /> +<hkern g1="middot" g2="Adieresis" k="52" /> +<hkern g1="middot" g2="Aring" k="52" /> +<hkern g1="middot" g2="AE" k="52" /> +<hkern g1="middot" g2="Yacute" k="160" /> +<hkern g1="middot" g2="quoteleft" k="178" /> +<hkern g1="middot" g2="quoteright" k="178" /> +<hkern g1="middot" g2="quotesinglbase" k="136" /> +<hkern g1="middot" g2="quotedblleft" k="178" /> +<hkern g1="middot" g2="quotedblright" k="178" /> +<hkern g1="middot" g2="quotedblbase" k="136" /> +<hkern g1="onesuperior" g2="ampersand" k="184" /> +<hkern g1="onesuperior" g2="slash" k="184" /> +<hkern g1="onesuperior" g2="A" k="184" /> +<hkern g1="onesuperior" g2="V" k="-58" /> +<hkern g1="onesuperior" g2="W" k="-58" /> +<hkern g1="onesuperior" g2="Y" k="-40" /> +<hkern g1="onesuperior" g2="backslash" k="-58" /> +<hkern g1="onesuperior" g2="Agrave" k="184" /> +<hkern g1="onesuperior" g2="Aacute" k="184" /> +<hkern g1="onesuperior" g2="Acircumflex" k="184" /> +<hkern g1="onesuperior" g2="Atilde" k="184" /> +<hkern g1="onesuperior" g2="Adieresis" k="184" /> +<hkern g1="onesuperior" g2="Aring" k="184" /> +<hkern g1="onesuperior" g2="AE" k="184" /> +<hkern g1="onesuperior" g2="Yacute" k="-40" /> +<hkern g1="ordmasculine" g2="ampersand" k="182" /> +<hkern g1="ordmasculine" g2="comma" k="228" /> +<hkern g1="ordmasculine" g2="hyphen" k="178" /> +<hkern g1="ordmasculine" g2="period" k="228" /> +<hkern g1="ordmasculine" g2="slash" k="182" /> +<hkern g1="ordmasculine" g2="at" k="46" /> +<hkern g1="ordmasculine" g2="A" k="182" /> +<hkern g1="ordmasculine" g2="C" k="46" /> +<hkern g1="ordmasculine" g2="G" k="46" /> +<hkern g1="ordmasculine" g2="O" k="46" /> +<hkern g1="ordmasculine" g2="Q" k="46" /> +<hkern g1="ordmasculine" g2="V" k="-48" /> +<hkern g1="ordmasculine" g2="W" k="-48" /> +<hkern g1="ordmasculine" g2="Y" k="-30" /> +<hkern g1="ordmasculine" g2="backslash" k="-48" /> +<hkern g1="ordmasculine" g2="a" k="64" /> +<hkern g1="ordmasculine" g2="c" k="92" /> +<hkern g1="ordmasculine" g2="d" k="92" /> +<hkern g1="ordmasculine" g2="e" k="92" /> +<hkern g1="ordmasculine" g2="o" k="92" /> +<hkern g1="ordmasculine" g2="q" k="92" /> +<hkern g1="ordmasculine" g2="guillemotleft" k="178" /> +<hkern g1="ordmasculine" g2="uni00AD" k="178" /> +<hkern g1="ordmasculine" g2="middot" k="178" /> +<hkern g1="ordmasculine" g2="guillemotright" k="178" /> +<hkern g1="ordmasculine" g2="Agrave" k="182" /> +<hkern g1="ordmasculine" g2="Aacute" k="182" /> +<hkern g1="ordmasculine" g2="Acircumflex" k="182" /> +<hkern g1="ordmasculine" g2="Atilde" k="182" /> +<hkern g1="ordmasculine" g2="Adieresis" k="182" /> +<hkern g1="ordmasculine" g2="Aring" k="182" /> +<hkern g1="ordmasculine" g2="AE" k="182" /> +<hkern g1="ordmasculine" g2="Ccedilla" k="46" /> +<hkern g1="ordmasculine" g2="Ograve" k="46" /> +<hkern g1="ordmasculine" g2="Oacute" k="46" /> +<hkern g1="ordmasculine" g2="Ocircumflex" k="46" /> +<hkern g1="ordmasculine" g2="Otilde" k="46" /> +<hkern g1="ordmasculine" g2="Odieresis" k="46" /> +<hkern g1="ordmasculine" g2="Oslash" k="46" /> +<hkern g1="ordmasculine" g2="Yacute" k="-30" /> +<hkern g1="ordmasculine" g2="agrave" k="64" /> +<hkern g1="ordmasculine" g2="aacute" k="64" /> +<hkern g1="ordmasculine" g2="acircumflex" k="64" /> +<hkern g1="ordmasculine" g2="atilde" k="64" /> +<hkern g1="ordmasculine" g2="adieresis" k="64" /> +<hkern g1="ordmasculine" g2="aring" k="64" /> +<hkern g1="ordmasculine" g2="ae" k="64" /> +<hkern g1="ordmasculine" g2="ccedilla" k="92" /> +<hkern g1="ordmasculine" g2="egrave" k="92" /> +<hkern g1="ordmasculine" g2="eacute" k="92" /> +<hkern g1="ordmasculine" g2="ecircumflex" k="92" /> +<hkern g1="ordmasculine" g2="edieresis" k="92" /> +<hkern g1="ordmasculine" g2="eth" k="92" /> +<hkern g1="ordmasculine" g2="ograve" k="92" /> +<hkern g1="ordmasculine" g2="oacute" k="92" /> +<hkern g1="ordmasculine" g2="ocircumflex" k="92" /> +<hkern g1="ordmasculine" g2="otilde" k="92" /> +<hkern g1="ordmasculine" g2="odieresis" k="92" /> +<hkern g1="ordmasculine" g2="oslash" k="92" /> +<hkern g1="ordmasculine" g2="OE" k="46" /> +<hkern g1="ordmasculine" g2="oe" k="92" /> +<hkern g1="ordmasculine" g2="endash" k="178" /> +<hkern g1="ordmasculine" g2="emdash" k="178" /> +<hkern g1="ordmasculine" g2="quotesinglbase" k="228" /> +<hkern g1="ordmasculine" g2="quotedblbase" k="228" /> +<hkern g1="ordmasculine" g2="bullet" k="178" /> +<hkern g1="ordmasculine" g2="guilsinglleft" k="178" /> +<hkern g1="ordmasculine" g2="guilsinglright" k="178" /> +<hkern g1="guillemotright" g2="quotedbl" k="178" /> +<hkern g1="guillemotright" g2="ampersand" k="52" /> +<hkern g1="guillemotright" g2="quotesingle" k="178" /> +<hkern g1="guillemotright" g2="asterisk" k="178" /> +<hkern g1="guillemotright" g2="comma" k="136" /> +<hkern g1="guillemotright" g2="period" k="136" /> +<hkern g1="guillemotright" g2="slash" k="52" /> +<hkern g1="guillemotright" g2="A" k="52" /> +<hkern g1="guillemotright" g2="T" k="180" /> +<hkern g1="guillemotright" g2="V" k="112" /> +<hkern g1="guillemotright" g2="W" k="32" /> +<hkern g1="guillemotright" g2="X" k="62" /> +<hkern g1="guillemotright" g2="Y" k="160" /> +<hkern g1="guillemotright" g2="Z" k="46" /> +<hkern g1="guillemotright" g2="backslash" k="112" /> +<hkern g1="guillemotright" g2="ordfeminine" k="178" /> +<hkern g1="guillemotright" g2="degree" k="178" /> +<hkern g1="guillemotright" g2="ordmasculine" k="178" /> +<hkern g1="guillemotright" g2="Agrave" k="52" /> +<hkern g1="guillemotright" g2="Aacute" k="52" /> +<hkern g1="guillemotright" g2="Acircumflex" k="52" /> +<hkern g1="guillemotright" g2="Atilde" k="52" /> +<hkern g1="guillemotright" g2="Adieresis" k="52" /> +<hkern g1="guillemotright" g2="Aring" k="52" /> +<hkern g1="guillemotright" g2="AE" k="52" /> +<hkern g1="guillemotright" g2="Yacute" k="160" /> +<hkern g1="guillemotright" g2="quoteleft" k="178" /> +<hkern g1="guillemotright" g2="quoteright" k="178" /> +<hkern g1="guillemotright" g2="quotesinglbase" k="136" /> +<hkern g1="guillemotright" g2="quotedblleft" k="178" /> +<hkern g1="guillemotright" g2="quotedblright" k="178" /> +<hkern g1="guillemotright" g2="quotedblbase" k="136" /> +<hkern g1="Agrave" g2="quotedbl" k="182" /> +<hkern g1="Agrave" g2="quotesingle" k="182" /> +<hkern g1="Agrave" g2="asterisk" k="182" /> +<hkern g1="Agrave" g2="hyphen" k="52" /> +<hkern g1="Agrave" g2="question" k="56" /> +<hkern g1="Agrave" g2="at" k="42" /> +<hkern g1="Agrave" g2="C" k="42" /> +<hkern g1="Agrave" g2="G" k="42" /> +<hkern g1="Agrave" g2="J" k="-50" /> +<hkern g1="Agrave" g2="O" k="42" /> +<hkern g1="Agrave" g2="Q" k="42" /> +<hkern g1="Agrave" g2="T" k="132" /> +<hkern g1="Agrave" g2="U" k="56" /> +<hkern g1="Agrave" g2="V" k="136" /> +<hkern g1="Agrave" g2="W" k="84" /> +<hkern g1="Agrave" g2="Y" k="164" /> +<hkern g1="Agrave" g2="backslash" k="136" /> +<hkern g1="Agrave" g2="v" k="82" /> +<hkern g1="Agrave" g2="y" k="82" /> +<hkern g1="Agrave" g2="ordfeminine" k="182" /> +<hkern g1="Agrave" g2="guillemotleft" k="52" /> +<hkern g1="Agrave" g2="uni00AD" k="52" /> +<hkern g1="Agrave" g2="degree" k="182" /> +<hkern g1="Agrave" g2="twosuperior" k="184" /> +<hkern g1="Agrave" g2="threesuperior" k="184" /> +<hkern g1="Agrave" g2="middot" k="52" /> +<hkern g1="Agrave" g2="onesuperior" k="184" /> +<hkern g1="Agrave" g2="ordmasculine" k="182" /> +<hkern g1="Agrave" g2="guillemotright" k="52" /> +<hkern g1="Agrave" g2="Ccedilla" k="42" /> +<hkern g1="Agrave" g2="Ograve" k="42" /> +<hkern g1="Agrave" g2="Oacute" k="42" /> +<hkern g1="Agrave" g2="Ocircumflex" k="42" /> +<hkern g1="Agrave" g2="Otilde" k="42" /> +<hkern g1="Agrave" g2="Odieresis" k="42" /> +<hkern g1="Agrave" g2="Oslash" k="42" /> +<hkern g1="Agrave" g2="Ugrave" k="56" /> +<hkern g1="Agrave" g2="Uacute" k="56" /> +<hkern g1="Agrave" g2="Ucircumflex" k="56" /> +<hkern g1="Agrave" g2="Udieresis" k="56" /> +<hkern g1="Agrave" g2="Yacute" k="164" /> +<hkern g1="Agrave" g2="OE" k="42" /> +<hkern g1="Agrave" g2="endash" k="52" /> +<hkern g1="Agrave" g2="emdash" k="52" /> +<hkern g1="Agrave" g2="quoteleft" k="182" /> +<hkern g1="Agrave" g2="quoteright" k="182" /> +<hkern g1="Agrave" g2="quotedblleft" k="182" /> +<hkern g1="Agrave" g2="quotedblright" k="182" /> +<hkern g1="Agrave" g2="bullet" k="52" /> +<hkern g1="Agrave" g2="guilsinglleft" k="52" /> +<hkern g1="Agrave" g2="guilsinglright" k="52" /> +<hkern g1="Aacute" g2="quotedbl" k="182" /> +<hkern g1="Aacute" g2="quotesingle" k="182" /> +<hkern g1="Aacute" g2="asterisk" k="182" /> +<hkern g1="Aacute" g2="hyphen" k="52" /> +<hkern g1="Aacute" g2="question" k="56" /> +<hkern g1="Aacute" g2="at" k="42" /> +<hkern g1="Aacute" g2="C" k="42" /> +<hkern g1="Aacute" g2="G" k="42" /> +<hkern g1="Aacute" g2="J" k="-50" /> +<hkern g1="Aacute" g2="O" k="42" /> +<hkern g1="Aacute" g2="Q" k="42" /> +<hkern g1="Aacute" g2="T" k="132" /> +<hkern g1="Aacute" g2="U" k="56" /> +<hkern g1="Aacute" g2="V" k="136" /> +<hkern g1="Aacute" g2="W" k="84" /> +<hkern g1="Aacute" g2="Y" k="164" /> +<hkern g1="Aacute" g2="backslash" k="136" /> +<hkern g1="Aacute" g2="v" k="82" /> +<hkern g1="Aacute" g2="y" k="82" /> +<hkern g1="Aacute" g2="ordfeminine" k="182" /> +<hkern g1="Aacute" g2="guillemotleft" k="52" /> +<hkern g1="Aacute" g2="uni00AD" k="52" /> +<hkern g1="Aacute" g2="degree" k="182" /> +<hkern g1="Aacute" g2="twosuperior" k="184" /> +<hkern g1="Aacute" g2="threesuperior" k="184" /> +<hkern g1="Aacute" g2="middot" k="52" /> +<hkern g1="Aacute" g2="onesuperior" k="184" /> +<hkern g1="Aacute" g2="ordmasculine" k="182" /> +<hkern g1="Aacute" g2="guillemotright" k="52" /> +<hkern g1="Aacute" g2="Ccedilla" k="42" /> +<hkern g1="Aacute" g2="Ograve" k="42" /> +<hkern g1="Aacute" g2="Oacute" k="42" /> +<hkern g1="Aacute" g2="Ocircumflex" k="42" /> +<hkern g1="Aacute" g2="Otilde" k="42" /> +<hkern g1="Aacute" g2="Odieresis" k="42" /> +<hkern g1="Aacute" g2="Oslash" k="42" /> +<hkern g1="Aacute" g2="Ugrave" k="56" /> +<hkern g1="Aacute" g2="Uacute" k="56" /> +<hkern g1="Aacute" g2="Ucircumflex" k="56" /> +<hkern g1="Aacute" g2="Udieresis" k="56" /> +<hkern g1="Aacute" g2="Yacute" k="164" /> +<hkern g1="Aacute" g2="OE" k="42" /> +<hkern g1="Aacute" g2="endash" k="52" /> +<hkern g1="Aacute" g2="emdash" k="52" /> +<hkern g1="Aacute" g2="quoteleft" k="182" /> +<hkern g1="Aacute" g2="quoteright" k="182" /> +<hkern g1="Aacute" g2="quotedblleft" k="182" /> +<hkern g1="Aacute" g2="quotedblright" k="182" /> +<hkern g1="Aacute" g2="bullet" k="52" /> +<hkern g1="Aacute" g2="guilsinglleft" k="52" /> +<hkern g1="Aacute" g2="guilsinglright" k="52" /> +<hkern g1="Acircumflex" g2="quotedbl" k="182" /> +<hkern g1="Acircumflex" g2="quotesingle" k="182" /> +<hkern g1="Acircumflex" g2="asterisk" k="182" /> +<hkern g1="Acircumflex" g2="hyphen" k="52" /> +<hkern g1="Acircumflex" g2="question" k="56" /> +<hkern g1="Acircumflex" g2="at" k="42" /> +<hkern g1="Acircumflex" g2="C" k="42" /> +<hkern g1="Acircumflex" g2="G" k="42" /> +<hkern g1="Acircumflex" g2="J" k="-50" /> +<hkern g1="Acircumflex" g2="O" k="42" /> +<hkern g1="Acircumflex" g2="Q" k="42" /> +<hkern g1="Acircumflex" g2="T" k="132" /> +<hkern g1="Acircumflex" g2="U" k="56" /> +<hkern g1="Acircumflex" g2="V" k="136" /> +<hkern g1="Acircumflex" g2="W" k="84" /> +<hkern g1="Acircumflex" g2="Y" k="164" /> +<hkern g1="Acircumflex" g2="backslash" k="136" /> +<hkern g1="Acircumflex" g2="v" k="82" /> +<hkern g1="Acircumflex" g2="y" k="82" /> +<hkern g1="Acircumflex" g2="ordfeminine" k="182" /> +<hkern g1="Acircumflex" g2="guillemotleft" k="52" /> +<hkern g1="Acircumflex" g2="uni00AD" k="52" /> +<hkern g1="Acircumflex" g2="degree" k="182" /> +<hkern g1="Acircumflex" g2="twosuperior" k="184" /> +<hkern g1="Acircumflex" g2="threesuperior" k="184" /> +<hkern g1="Acircumflex" g2="middot" k="52" /> +<hkern g1="Acircumflex" g2="onesuperior" k="184" /> +<hkern g1="Acircumflex" g2="ordmasculine" k="182" /> +<hkern g1="Acircumflex" g2="guillemotright" k="52" /> +<hkern g1="Acircumflex" g2="Ccedilla" k="42" /> +<hkern g1="Acircumflex" g2="Ograve" k="42" /> +<hkern g1="Acircumflex" g2="Oacute" k="42" /> +<hkern g1="Acircumflex" g2="Ocircumflex" k="42" /> +<hkern g1="Acircumflex" g2="Otilde" k="42" /> +<hkern g1="Acircumflex" g2="Odieresis" k="42" /> +<hkern g1="Acircumflex" g2="Oslash" k="42" /> +<hkern g1="Acircumflex" g2="Ugrave" k="56" /> +<hkern g1="Acircumflex" g2="Uacute" k="56" /> +<hkern g1="Acircumflex" g2="Ucircumflex" k="56" /> +<hkern g1="Acircumflex" g2="Udieresis" k="56" /> +<hkern g1="Acircumflex" g2="Yacute" k="164" /> +<hkern g1="Acircumflex" g2="OE" k="42" /> +<hkern g1="Acircumflex" g2="endash" k="52" /> +<hkern g1="Acircumflex" g2="emdash" k="52" /> +<hkern g1="Acircumflex" g2="quoteleft" k="182" /> +<hkern g1="Acircumflex" g2="quoteright" k="182" /> +<hkern g1="Acircumflex" g2="quotedblleft" k="182" /> +<hkern g1="Acircumflex" g2="quotedblright" k="182" /> +<hkern g1="Acircumflex" g2="bullet" k="52" /> +<hkern g1="Acircumflex" g2="guilsinglleft" k="52" /> +<hkern g1="Acircumflex" g2="guilsinglright" k="52" /> +<hkern g1="Atilde" g2="quotedbl" k="182" /> +<hkern g1="Atilde" g2="quotesingle" k="182" /> +<hkern g1="Atilde" g2="asterisk" k="182" /> +<hkern g1="Atilde" g2="hyphen" k="52" /> +<hkern g1="Atilde" g2="question" k="56" /> +<hkern g1="Atilde" g2="at" k="42" /> +<hkern g1="Atilde" g2="C" k="42" /> +<hkern g1="Atilde" g2="G" k="42" /> +<hkern g1="Atilde" g2="J" k="-50" /> +<hkern g1="Atilde" g2="O" k="42" /> +<hkern g1="Atilde" g2="Q" k="42" /> +<hkern g1="Atilde" g2="T" k="132" /> +<hkern g1="Atilde" g2="U" k="56" /> +<hkern g1="Atilde" g2="V" k="136" /> +<hkern g1="Atilde" g2="W" k="84" /> +<hkern g1="Atilde" g2="Y" k="164" /> +<hkern g1="Atilde" g2="backslash" k="136" /> +<hkern g1="Atilde" g2="v" k="82" /> +<hkern g1="Atilde" g2="y" k="82" /> +<hkern g1="Atilde" g2="ordfeminine" k="182" /> +<hkern g1="Atilde" g2="guillemotleft" k="52" /> +<hkern g1="Atilde" g2="uni00AD" k="52" /> +<hkern g1="Atilde" g2="degree" k="182" /> +<hkern g1="Atilde" g2="twosuperior" k="184" /> +<hkern g1="Atilde" g2="threesuperior" k="184" /> +<hkern g1="Atilde" g2="middot" k="52" /> +<hkern g1="Atilde" g2="onesuperior" k="184" /> +<hkern g1="Atilde" g2="ordmasculine" k="182" /> +<hkern g1="Atilde" g2="guillemotright" k="52" /> +<hkern g1="Atilde" g2="Ccedilla" k="42" /> +<hkern g1="Atilde" g2="Ograve" k="42" /> +<hkern g1="Atilde" g2="Oacute" k="42" /> +<hkern g1="Atilde" g2="Ocircumflex" k="42" /> +<hkern g1="Atilde" g2="Otilde" k="42" /> +<hkern g1="Atilde" g2="Odieresis" k="42" /> +<hkern g1="Atilde" g2="Oslash" k="42" /> +<hkern g1="Atilde" g2="Ugrave" k="56" /> +<hkern g1="Atilde" g2="Uacute" k="56" /> +<hkern g1="Atilde" g2="Ucircumflex" k="56" /> +<hkern g1="Atilde" g2="Udieresis" k="56" /> +<hkern g1="Atilde" g2="Yacute" k="164" /> +<hkern g1="Atilde" g2="OE" k="42" /> +<hkern g1="Atilde" g2="endash" k="52" /> +<hkern g1="Atilde" g2="emdash" k="52" /> +<hkern g1="Atilde" g2="quoteleft" k="182" /> +<hkern g1="Atilde" g2="quoteright" k="182" /> +<hkern g1="Atilde" g2="quotedblleft" k="182" /> +<hkern g1="Atilde" g2="quotedblright" k="182" /> +<hkern g1="Atilde" g2="bullet" k="52" /> +<hkern g1="Atilde" g2="guilsinglleft" k="52" /> +<hkern g1="Atilde" g2="guilsinglright" k="52" /> +<hkern g1="Adieresis" g2="quotedbl" k="182" /> +<hkern g1="Adieresis" g2="quotesingle" k="182" /> +<hkern g1="Adieresis" g2="asterisk" k="182" /> +<hkern g1="Adieresis" g2="hyphen" k="52" /> +<hkern g1="Adieresis" g2="question" k="56" /> +<hkern g1="Adieresis" g2="at" k="42" /> +<hkern g1="Adieresis" g2="C" k="42" /> +<hkern g1="Adieresis" g2="G" k="42" /> +<hkern g1="Adieresis" g2="J" k="-50" /> +<hkern g1="Adieresis" g2="O" k="42" /> +<hkern g1="Adieresis" g2="Q" k="42" /> +<hkern g1="Adieresis" g2="T" k="132" /> +<hkern g1="Adieresis" g2="U" k="56" /> +<hkern g1="Adieresis" g2="V" k="136" /> +<hkern g1="Adieresis" g2="W" k="84" /> +<hkern g1="Adieresis" g2="Y" k="164" /> +<hkern g1="Adieresis" g2="backslash" k="136" /> +<hkern g1="Adieresis" g2="v" k="82" /> +<hkern g1="Adieresis" g2="y" k="82" /> +<hkern g1="Adieresis" g2="ordfeminine" k="182" /> +<hkern g1="Adieresis" g2="guillemotleft" k="52" /> +<hkern g1="Adieresis" g2="uni00AD" k="52" /> +<hkern g1="Adieresis" g2="degree" k="182" /> +<hkern g1="Adieresis" g2="twosuperior" k="184" /> +<hkern g1="Adieresis" g2="threesuperior" k="184" /> +<hkern g1="Adieresis" g2="middot" k="52" /> +<hkern g1="Adieresis" g2="onesuperior" k="184" /> +<hkern g1="Adieresis" g2="ordmasculine" k="182" /> +<hkern g1="Adieresis" g2="guillemotright" k="52" /> +<hkern g1="Adieresis" g2="Ccedilla" k="42" /> +<hkern g1="Adieresis" g2="Ograve" k="42" /> +<hkern g1="Adieresis" g2="Oacute" k="42" /> +<hkern g1="Adieresis" g2="Ocircumflex" k="42" /> +<hkern g1="Adieresis" g2="Otilde" k="42" /> +<hkern g1="Adieresis" g2="Odieresis" k="42" /> +<hkern g1="Adieresis" g2="Oslash" k="42" /> +<hkern g1="Adieresis" g2="Ugrave" k="56" /> +<hkern g1="Adieresis" g2="Uacute" k="56" /> +<hkern g1="Adieresis" g2="Ucircumflex" k="56" /> +<hkern g1="Adieresis" g2="Udieresis" k="56" /> +<hkern g1="Adieresis" g2="Yacute" k="164" /> +<hkern g1="Adieresis" g2="OE" k="42" /> +<hkern g1="Adieresis" g2="endash" k="52" /> +<hkern g1="Adieresis" g2="emdash" k="52" /> +<hkern g1="Adieresis" g2="quoteleft" k="182" /> +<hkern g1="Adieresis" g2="quoteright" k="182" /> +<hkern g1="Adieresis" g2="quotedblleft" k="182" /> +<hkern g1="Adieresis" g2="quotedblright" k="182" /> +<hkern g1="Adieresis" g2="bullet" k="52" /> +<hkern g1="Adieresis" g2="guilsinglleft" k="52" /> +<hkern g1="Adieresis" g2="guilsinglright" k="52" /> +<hkern g1="Aring" g2="quotedbl" k="182" /> +<hkern g1="Aring" g2="quotesingle" k="182" /> +<hkern g1="Aring" g2="asterisk" k="182" /> +<hkern g1="Aring" g2="hyphen" k="52" /> +<hkern g1="Aring" g2="question" k="56" /> +<hkern g1="Aring" g2="at" k="42" /> +<hkern g1="Aring" g2="C" k="42" /> +<hkern g1="Aring" g2="G" k="42" /> +<hkern g1="Aring" g2="J" k="-50" /> +<hkern g1="Aring" g2="O" k="42" /> +<hkern g1="Aring" g2="Q" k="42" /> +<hkern g1="Aring" g2="T" k="132" /> +<hkern g1="Aring" g2="U" k="56" /> +<hkern g1="Aring" g2="V" k="136" /> +<hkern g1="Aring" g2="W" k="84" /> +<hkern g1="Aring" g2="Y" k="164" /> +<hkern g1="Aring" g2="backslash" k="136" /> +<hkern g1="Aring" g2="v" k="82" /> +<hkern g1="Aring" g2="y" k="82" /> +<hkern g1="Aring" g2="ordfeminine" k="182" /> +<hkern g1="Aring" g2="guillemotleft" k="52" /> +<hkern g1="Aring" g2="uni00AD" k="52" /> +<hkern g1="Aring" g2="degree" k="182" /> +<hkern g1="Aring" g2="twosuperior" k="184" /> +<hkern g1="Aring" g2="threesuperior" k="184" /> +<hkern g1="Aring" g2="middot" k="52" /> +<hkern g1="Aring" g2="onesuperior" k="184" /> +<hkern g1="Aring" g2="ordmasculine" k="182" /> +<hkern g1="Aring" g2="guillemotright" k="52" /> +<hkern g1="Aring" g2="Ccedilla" k="42" /> +<hkern g1="Aring" g2="Ograve" k="42" /> +<hkern g1="Aring" g2="Oacute" k="42" /> +<hkern g1="Aring" g2="Ocircumflex" k="42" /> +<hkern g1="Aring" g2="Otilde" k="42" /> +<hkern g1="Aring" g2="Odieresis" k="42" /> +<hkern g1="Aring" g2="Oslash" k="42" /> +<hkern g1="Aring" g2="Ugrave" k="56" /> +<hkern g1="Aring" g2="Uacute" k="56" /> +<hkern g1="Aring" g2="Ucircumflex" k="56" /> +<hkern g1="Aring" g2="Udieresis" k="56" /> +<hkern g1="Aring" g2="Yacute" k="164" /> +<hkern g1="Aring" g2="OE" k="42" /> +<hkern g1="Aring" g2="endash" k="52" /> +<hkern g1="Aring" g2="emdash" k="52" /> +<hkern g1="Aring" g2="quoteleft" k="182" /> +<hkern g1="Aring" g2="quoteright" k="182" /> +<hkern g1="Aring" g2="quotedblleft" k="182" /> +<hkern g1="Aring" g2="quotedblright" k="182" /> +<hkern g1="Aring" g2="bullet" k="52" /> +<hkern g1="Aring" g2="guilsinglleft" k="52" /> +<hkern g1="Aring" g2="guilsinglright" k="52" /> +<hkern g1="Ccedilla" g2="hyphen" k="150" /> +<hkern g1="Ccedilla" g2="guillemotleft" k="150" /> +<hkern g1="Ccedilla" g2="uni00AD" k="150" /> +<hkern g1="Ccedilla" g2="middot" k="150" /> +<hkern g1="Ccedilla" g2="guillemotright" k="150" /> +<hkern g1="Ccedilla" g2="endash" k="150" /> +<hkern g1="Ccedilla" g2="emdash" k="150" /> +<hkern g1="Ccedilla" g2="bullet" k="150" /> +<hkern g1="Ccedilla" g2="guilsinglleft" k="150" /> +<hkern g1="Ccedilla" g2="guilsinglright" k="150" /> +<hkern g1="Eth" g2="quotedbl" k="46" /> +<hkern g1="Eth" g2="ampersand" k="42" /> +<hkern g1="Eth" g2="quotesingle" k="46" /> +<hkern g1="Eth" g2="parenright" k="40" /> +<hkern g1="Eth" g2="asterisk" k="46" /> +<hkern g1="Eth" g2="comma" k="56" /> +<hkern g1="Eth" g2="period" k="56" /> +<hkern g1="Eth" g2="slash" k="42" /> +<hkern g1="Eth" g2="A" k="42" /> +<hkern g1="Eth" g2="T" k="98" /> +<hkern g1="Eth" g2="V" k="52" /> +<hkern g1="Eth" g2="X" k="30" /> +<hkern g1="Eth" g2="Y" k="80" /> +<hkern g1="Eth" g2="Z" k="70" /> +<hkern g1="Eth" g2="backslash" k="52" /> +<hkern g1="Eth" g2="bracketright" k="40" /> +<hkern g1="Eth" g2="braceright" k="40" /> +<hkern g1="Eth" g2="ordfeminine" k="46" /> +<hkern g1="Eth" g2="degree" k="46" /> +<hkern g1="Eth" g2="ordmasculine" k="46" /> +<hkern g1="Eth" g2="Agrave" k="42" /> +<hkern g1="Eth" g2="Aacute" k="42" /> +<hkern g1="Eth" g2="Acircumflex" k="42" /> +<hkern g1="Eth" g2="Atilde" k="42" /> +<hkern g1="Eth" g2="Adieresis" k="42" /> +<hkern g1="Eth" g2="Aring" k="42" /> +<hkern g1="Eth" g2="AE" k="42" /> +<hkern g1="Eth" g2="Yacute" k="80" /> +<hkern g1="Eth" g2="quoteleft" k="46" /> +<hkern g1="Eth" g2="quoteright" k="46" /> +<hkern g1="Eth" g2="quotesinglbase" k="56" /> +<hkern g1="Eth" g2="quotedblleft" k="46" /> +<hkern g1="Eth" g2="quotedblright" k="46" /> +<hkern g1="Eth" g2="quotedblbase" k="56" /> +<hkern g1="Ograve" g2="quotedbl" k="46" /> +<hkern g1="Ograve" g2="ampersand" k="42" /> +<hkern g1="Ograve" g2="quotesingle" k="46" /> +<hkern g1="Ograve" g2="parenright" k="40" /> +<hkern g1="Ograve" g2="asterisk" k="46" /> +<hkern g1="Ograve" g2="comma" k="56" /> +<hkern g1="Ograve" g2="period" k="56" /> +<hkern g1="Ograve" g2="slash" k="42" /> +<hkern g1="Ograve" g2="A" k="42" /> +<hkern g1="Ograve" g2="T" k="98" /> +<hkern g1="Ograve" g2="V" k="52" /> +<hkern g1="Ograve" g2="X" k="30" /> +<hkern g1="Ograve" g2="Y" k="80" /> +<hkern g1="Ograve" g2="Z" k="70" /> +<hkern g1="Ograve" g2="backslash" k="52" /> +<hkern g1="Ograve" g2="bracketright" k="40" /> +<hkern g1="Ograve" g2="braceright" k="40" /> +<hkern g1="Ograve" g2="ordfeminine" k="46" /> +<hkern g1="Ograve" g2="degree" k="46" /> +<hkern g1="Ograve" g2="ordmasculine" k="46" /> +<hkern g1="Ograve" g2="Agrave" k="42" /> +<hkern g1="Ograve" g2="Aacute" k="42" /> +<hkern g1="Ograve" g2="Acircumflex" k="42" /> +<hkern g1="Ograve" g2="Atilde" k="42" /> +<hkern g1="Ograve" g2="Adieresis" k="42" /> +<hkern g1="Ograve" g2="Aring" k="42" /> +<hkern g1="Ograve" g2="AE" k="42" /> +<hkern g1="Ograve" g2="Yacute" k="80" /> +<hkern g1="Ograve" g2="quoteleft" k="46" /> +<hkern g1="Ograve" g2="quoteright" k="46" /> +<hkern g1="Ograve" g2="quotesinglbase" k="56" /> +<hkern g1="Ograve" g2="quotedblleft" k="46" /> +<hkern g1="Ograve" g2="quotedblright" k="46" /> +<hkern g1="Ograve" g2="quotedblbase" k="56" /> +<hkern g1="Oacute" g2="quotedbl" k="46" /> +<hkern g1="Oacute" g2="ampersand" k="42" /> +<hkern g1="Oacute" g2="quotesingle" k="46" /> +<hkern g1="Oacute" g2="parenright" k="40" /> +<hkern g1="Oacute" g2="asterisk" k="46" /> +<hkern g1="Oacute" g2="comma" k="56" /> +<hkern g1="Oacute" g2="period" k="56" /> +<hkern g1="Oacute" g2="slash" k="42" /> +<hkern g1="Oacute" g2="A" k="42" /> +<hkern g1="Oacute" g2="T" k="98" /> +<hkern g1="Oacute" g2="V" k="52" /> +<hkern g1="Oacute" g2="X" k="30" /> +<hkern g1="Oacute" g2="Y" k="80" /> +<hkern g1="Oacute" g2="Z" k="70" /> +<hkern g1="Oacute" g2="backslash" k="52" /> +<hkern g1="Oacute" g2="bracketright" k="40" /> +<hkern g1="Oacute" g2="braceright" k="40" /> +<hkern g1="Oacute" g2="ordfeminine" k="46" /> +<hkern g1="Oacute" g2="degree" k="46" /> +<hkern g1="Oacute" g2="ordmasculine" k="46" /> +<hkern g1="Oacute" g2="Agrave" k="42" /> +<hkern g1="Oacute" g2="Aacute" k="42" /> +<hkern g1="Oacute" g2="Acircumflex" k="42" /> +<hkern g1="Oacute" g2="Atilde" k="42" /> +<hkern g1="Oacute" g2="Adieresis" k="42" /> +<hkern g1="Oacute" g2="Aring" k="42" /> +<hkern g1="Oacute" g2="AE" k="42" /> +<hkern g1="Oacute" g2="Yacute" k="80" /> +<hkern g1="Oacute" g2="quoteleft" k="46" /> +<hkern g1="Oacute" g2="quoteright" k="46" /> +<hkern g1="Oacute" g2="quotesinglbase" k="56" /> +<hkern g1="Oacute" g2="quotedblleft" k="46" /> +<hkern g1="Oacute" g2="quotedblright" k="46" /> +<hkern g1="Oacute" g2="quotedblbase" k="56" /> +<hkern g1="Ocircumflex" g2="quotedbl" k="46" /> +<hkern g1="Ocircumflex" g2="ampersand" k="42" /> +<hkern g1="Ocircumflex" g2="quotesingle" k="46" /> +<hkern g1="Ocircumflex" g2="parenright" k="40" /> +<hkern g1="Ocircumflex" g2="asterisk" k="46" /> +<hkern g1="Ocircumflex" g2="comma" k="56" /> +<hkern g1="Ocircumflex" g2="period" k="56" /> +<hkern g1="Ocircumflex" g2="slash" k="42" /> +<hkern g1="Ocircumflex" g2="A" k="42" /> +<hkern g1="Ocircumflex" g2="T" k="98" /> +<hkern g1="Ocircumflex" g2="V" k="52" /> +<hkern g1="Ocircumflex" g2="X" k="30" /> +<hkern g1="Ocircumflex" g2="Y" k="80" /> +<hkern g1="Ocircumflex" g2="Z" k="70" /> +<hkern g1="Ocircumflex" g2="backslash" k="52" /> +<hkern g1="Ocircumflex" g2="bracketright" k="40" /> +<hkern g1="Ocircumflex" g2="braceright" k="40" /> +<hkern g1="Ocircumflex" g2="ordfeminine" k="46" /> +<hkern g1="Ocircumflex" g2="degree" k="46" /> +<hkern g1="Ocircumflex" g2="ordmasculine" k="46" /> +<hkern g1="Ocircumflex" g2="Agrave" k="42" /> +<hkern g1="Ocircumflex" g2="Aacute" k="42" /> +<hkern g1="Ocircumflex" g2="Acircumflex" k="42" /> +<hkern g1="Ocircumflex" g2="Atilde" k="42" /> +<hkern g1="Ocircumflex" g2="Adieresis" k="42" /> +<hkern g1="Ocircumflex" g2="Aring" k="42" /> +<hkern g1="Ocircumflex" g2="AE" k="42" /> +<hkern g1="Ocircumflex" g2="Yacute" k="80" /> +<hkern g1="Ocircumflex" g2="quoteleft" k="46" /> +<hkern g1="Ocircumflex" g2="quoteright" k="46" /> +<hkern g1="Ocircumflex" g2="quotesinglbase" k="56" /> +<hkern g1="Ocircumflex" g2="quotedblleft" k="46" /> +<hkern g1="Ocircumflex" g2="quotedblright" k="46" /> +<hkern g1="Ocircumflex" g2="quotedblbase" k="56" /> +<hkern g1="Otilde" g2="quotedbl" k="46" /> +<hkern g1="Otilde" g2="ampersand" k="42" /> +<hkern g1="Otilde" g2="quotesingle" k="46" /> +<hkern g1="Otilde" g2="parenright" k="40" /> +<hkern g1="Otilde" g2="asterisk" k="46" /> +<hkern g1="Otilde" g2="comma" k="56" /> +<hkern g1="Otilde" g2="period" k="56" /> +<hkern g1="Otilde" g2="slash" k="42" /> +<hkern g1="Otilde" g2="A" k="42" /> +<hkern g1="Otilde" g2="T" k="98" /> +<hkern g1="Otilde" g2="V" k="52" /> +<hkern g1="Otilde" g2="X" k="30" /> +<hkern g1="Otilde" g2="Y" k="80" /> +<hkern g1="Otilde" g2="Z" k="70" /> +<hkern g1="Otilde" g2="backslash" k="52" /> +<hkern g1="Otilde" g2="bracketright" k="40" /> +<hkern g1="Otilde" g2="braceright" k="40" /> +<hkern g1="Otilde" g2="ordfeminine" k="46" /> +<hkern g1="Otilde" g2="degree" k="46" /> +<hkern g1="Otilde" g2="ordmasculine" k="46" /> +<hkern g1="Otilde" g2="Agrave" k="42" /> +<hkern g1="Otilde" g2="Aacute" k="42" /> +<hkern g1="Otilde" g2="Acircumflex" k="42" /> +<hkern g1="Otilde" g2="Atilde" k="42" /> +<hkern g1="Otilde" g2="Adieresis" k="42" /> +<hkern g1="Otilde" g2="Aring" k="42" /> +<hkern g1="Otilde" g2="AE" k="42" /> +<hkern g1="Otilde" g2="Yacute" k="80" /> +<hkern g1="Otilde" g2="quoteleft" k="46" /> +<hkern g1="Otilde" g2="quoteright" k="46" /> +<hkern g1="Otilde" g2="quotesinglbase" k="56" /> +<hkern g1="Otilde" g2="quotedblleft" k="46" /> +<hkern g1="Otilde" g2="quotedblright" k="46" /> +<hkern g1="Otilde" g2="quotedblbase" k="56" /> +<hkern g1="Odieresis" g2="quotedbl" k="46" /> +<hkern g1="Odieresis" g2="ampersand" k="42" /> +<hkern g1="Odieresis" g2="quotesingle" k="46" /> +<hkern g1="Odieresis" g2="parenright" k="40" /> +<hkern g1="Odieresis" g2="asterisk" k="46" /> +<hkern g1="Odieresis" g2="comma" k="56" /> +<hkern g1="Odieresis" g2="period" k="56" /> +<hkern g1="Odieresis" g2="slash" k="42" /> +<hkern g1="Odieresis" g2="A" k="42" /> +<hkern g1="Odieresis" g2="T" k="98" /> +<hkern g1="Odieresis" g2="V" k="52" /> +<hkern g1="Odieresis" g2="X" k="30" /> +<hkern g1="Odieresis" g2="Y" k="80" /> +<hkern g1="Odieresis" g2="Z" k="70" /> +<hkern g1="Odieresis" g2="backslash" k="52" /> +<hkern g1="Odieresis" g2="bracketright" k="40" /> +<hkern g1="Odieresis" g2="braceright" k="40" /> +<hkern g1="Odieresis" g2="ordfeminine" k="46" /> +<hkern g1="Odieresis" g2="degree" k="46" /> +<hkern g1="Odieresis" g2="ordmasculine" k="46" /> +<hkern g1="Odieresis" g2="Agrave" k="42" /> +<hkern g1="Odieresis" g2="Aacute" k="42" /> +<hkern g1="Odieresis" g2="Acircumflex" k="42" /> +<hkern g1="Odieresis" g2="Atilde" k="42" /> +<hkern g1="Odieresis" g2="Adieresis" k="42" /> +<hkern g1="Odieresis" g2="Aring" k="42" /> +<hkern g1="Odieresis" g2="AE" k="42" /> +<hkern g1="Odieresis" g2="Yacute" k="80" /> +<hkern g1="Odieresis" g2="quoteleft" k="46" /> +<hkern g1="Odieresis" g2="quoteright" k="46" /> +<hkern g1="Odieresis" g2="quotesinglbase" k="56" /> +<hkern g1="Odieresis" g2="quotedblleft" k="46" /> +<hkern g1="Odieresis" g2="quotedblright" k="46" /> +<hkern g1="Odieresis" g2="quotedblbase" k="56" /> +<hkern g1="Ugrave" g2="ampersand" k="56" /> +<hkern g1="Ugrave" g2="comma" k="50" /> +<hkern g1="Ugrave" g2="period" k="50" /> +<hkern g1="Ugrave" g2="slash" k="56" /> +<hkern g1="Ugrave" g2="A" k="56" /> +<hkern g1="Ugrave" g2="Agrave" k="56" /> +<hkern g1="Ugrave" g2="Aacute" k="56" /> +<hkern g1="Ugrave" g2="Acircumflex" k="56" /> +<hkern g1="Ugrave" g2="Atilde" k="56" /> +<hkern g1="Ugrave" g2="Adieresis" k="56" /> +<hkern g1="Ugrave" g2="Aring" k="56" /> +<hkern g1="Ugrave" g2="AE" k="56" /> +<hkern g1="Ugrave" g2="quotesinglbase" k="50" /> +<hkern g1="Ugrave" g2="quotedblbase" k="50" /> +<hkern g1="Uacute" g2="ampersand" k="56" /> +<hkern g1="Uacute" g2="comma" k="50" /> +<hkern g1="Uacute" g2="period" k="50" /> +<hkern g1="Uacute" g2="slash" k="56" /> +<hkern g1="Uacute" g2="A" k="56" /> +<hkern g1="Uacute" g2="Agrave" k="56" /> +<hkern g1="Uacute" g2="Aacute" k="56" /> +<hkern g1="Uacute" g2="Acircumflex" k="56" /> +<hkern g1="Uacute" g2="Atilde" k="56" /> +<hkern g1="Uacute" g2="Adieresis" k="56" /> +<hkern g1="Uacute" g2="Aring" k="56" /> +<hkern g1="Uacute" g2="AE" k="56" /> +<hkern g1="Uacute" g2="quotesinglbase" k="50" /> +<hkern g1="Uacute" g2="quotedblbase" k="50" /> +<hkern g1="Ucircumflex" g2="ampersand" k="56" /> +<hkern g1="Ucircumflex" g2="comma" k="50" /> +<hkern g1="Ucircumflex" g2="period" k="50" /> +<hkern g1="Ucircumflex" g2="slash" k="56" /> +<hkern g1="Ucircumflex" g2="A" k="56" /> +<hkern g1="Ucircumflex" g2="Agrave" k="56" /> +<hkern g1="Ucircumflex" g2="Aacute" k="56" /> +<hkern g1="Ucircumflex" g2="Acircumflex" k="56" /> +<hkern g1="Ucircumflex" g2="Atilde" k="56" /> +<hkern g1="Ucircumflex" g2="Adieresis" k="56" /> +<hkern g1="Ucircumflex" g2="Aring" k="56" /> +<hkern g1="Ucircumflex" g2="AE" k="56" /> +<hkern g1="Ucircumflex" g2="quotesinglbase" k="50" /> +<hkern g1="Ucircumflex" g2="quotedblbase" k="50" /> +<hkern g1="Udieresis" g2="ampersand" k="56" /> +<hkern g1="Udieresis" g2="comma" k="50" /> +<hkern g1="Udieresis" g2="period" k="50" /> +<hkern g1="Udieresis" g2="slash" k="56" /> +<hkern g1="Udieresis" g2="A" k="56" /> +<hkern g1="Udieresis" g2="Agrave" k="56" /> +<hkern g1="Udieresis" g2="Aacute" k="56" /> +<hkern g1="Udieresis" g2="Acircumflex" k="56" /> +<hkern g1="Udieresis" g2="Atilde" k="56" /> +<hkern g1="Udieresis" g2="Adieresis" k="56" /> +<hkern g1="Udieresis" g2="Aring" k="56" /> +<hkern g1="Udieresis" g2="AE" k="56" /> +<hkern g1="Udieresis" g2="quotesinglbase" k="50" /> +<hkern g1="Udieresis" g2="quotedblbase" k="50" /> +<hkern g1="Yacute" g2="quotedbl" k="-30" /> +<hkern g1="Yacute" g2="ampersand" k="164" /> +<hkern g1="Yacute" g2="quotesingle" k="-30" /> +<hkern g1="Yacute" g2="asterisk" k="-30" /> +<hkern g1="Yacute" g2="comma" k="152" /> +<hkern g1="Yacute" g2="hyphen" k="160" /> +<hkern g1="Yacute" g2="period" k="152" /> +<hkern g1="Yacute" g2="slash" k="164" /> +<hkern g1="Yacute" g2="colon" k="122" /> +<hkern g1="Yacute" g2="semicolon" k="122" /> +<hkern g1="Yacute" g2="question" k="-34" /> +<hkern g1="Yacute" g2="at" k="80" /> +<hkern g1="Yacute" g2="A" k="164" /> +<hkern g1="Yacute" g2="C" k="80" /> +<hkern g1="Yacute" g2="G" k="80" /> +<hkern g1="Yacute" g2="J" k="200" /> +<hkern g1="Yacute" g2="O" k="80" /> +<hkern g1="Yacute" g2="Q" k="80" /> +<hkern g1="Yacute" g2="a" k="128" /> +<hkern g1="Yacute" g2="c" k="160" /> +<hkern g1="Yacute" g2="d" k="160" /> +<hkern g1="Yacute" g2="e" k="160" /> +<hkern g1="Yacute" g2="g" k="172" /> +<hkern g1="Yacute" g2="m" k="122" /> +<hkern g1="Yacute" g2="n" k="122" /> +<hkern g1="Yacute" g2="o" k="160" /> +<hkern g1="Yacute" g2="p" k="122" /> +<hkern g1="Yacute" g2="q" k="160" /> +<hkern g1="Yacute" g2="r" k="122" /> +<hkern g1="Yacute" g2="s" k="128" /> +<hkern g1="Yacute" g2="u" k="122" /> +<hkern g1="Yacute" g2="v" k="100" /> +<hkern g1="Yacute" g2="w" k="92" /> +<hkern g1="Yacute" g2="x" k="132" /> +<hkern g1="Yacute" g2="y" k="100" /> +<hkern g1="Yacute" g2="ordfeminine" k="-30" /> +<hkern g1="Yacute" g2="guillemotleft" k="160" /> +<hkern g1="Yacute" g2="uni00AD" k="160" /> +<hkern g1="Yacute" g2="degree" k="-30" /> +<hkern g1="Yacute" g2="twosuperior" k="-50" /> +<hkern g1="Yacute" g2="threesuperior" k="-50" /> +<hkern g1="Yacute" g2="mu" k="122" /> +<hkern g1="Yacute" g2="middot" k="160" /> +<hkern g1="Yacute" g2="onesuperior" k="-50" /> +<hkern g1="Yacute" g2="ordmasculine" k="-30" /> +<hkern g1="Yacute" g2="guillemotright" k="160" /> +<hkern g1="Yacute" g2="Agrave" k="164" /> +<hkern g1="Yacute" g2="Aacute" k="164" /> +<hkern g1="Yacute" g2="Acircumflex" k="164" /> +<hkern g1="Yacute" g2="Atilde" k="164" /> +<hkern g1="Yacute" g2="Adieresis" k="164" /> +<hkern g1="Yacute" g2="Aring" k="164" /> +<hkern g1="Yacute" g2="AE" k="164" /> +<hkern g1="Yacute" g2="Ccedilla" k="80" /> +<hkern g1="Yacute" g2="Ograve" k="80" /> +<hkern g1="Yacute" g2="Oacute" k="80" /> +<hkern g1="Yacute" g2="Ocircumflex" k="80" /> +<hkern g1="Yacute" g2="Otilde" k="80" /> +<hkern g1="Yacute" g2="Odieresis" k="80" /> +<hkern g1="Yacute" g2="Oslash" k="80" /> +<hkern g1="Yacute" g2="agrave" k="128" /> +<hkern g1="Yacute" g2="aacute" k="128" /> +<hkern g1="Yacute" g2="acircumflex" k="128" /> +<hkern g1="Yacute" g2="atilde" k="128" /> +<hkern g1="Yacute" g2="adieresis" k="128" /> +<hkern g1="Yacute" g2="aring" k="128" /> +<hkern g1="Yacute" g2="ae" k="128" /> +<hkern g1="Yacute" g2="ccedilla" k="160" /> +<hkern g1="Yacute" g2="egrave" k="160" /> +<hkern g1="Yacute" g2="eacute" k="160" /> +<hkern g1="Yacute" g2="ecircumflex" k="160" /> +<hkern g1="Yacute" g2="edieresis" k="160" /> +<hkern g1="Yacute" g2="eth" k="160" /> +<hkern g1="Yacute" g2="ntilde" k="122" /> +<hkern g1="Yacute" g2="ograve" k="160" /> +<hkern g1="Yacute" g2="oacute" k="160" /> +<hkern g1="Yacute" g2="ocircumflex" k="160" /> +<hkern g1="Yacute" g2="otilde" k="160" /> +<hkern g1="Yacute" g2="odieresis" k="160" /> +<hkern g1="Yacute" g2="oslash" k="160" /> +<hkern g1="Yacute" g2="ugrave" k="122" /> +<hkern g1="Yacute" g2="uacute" k="122" /> +<hkern g1="Yacute" g2="ucircumflex" k="122" /> +<hkern g1="Yacute" g2="udieresis" k="122" /> +<hkern g1="Yacute" g2="OE" k="80" /> +<hkern g1="Yacute" g2="oe" k="160" /> +<hkern g1="Yacute" g2="endash" k="160" /> +<hkern g1="Yacute" g2="emdash" k="160" /> +<hkern g1="Yacute" g2="quoteleft" k="-30" /> +<hkern g1="Yacute" g2="quoteright" k="-30" /> +<hkern g1="Yacute" g2="quotesinglbase" k="152" /> +<hkern g1="Yacute" g2="quotedblleft" k="-30" /> +<hkern g1="Yacute" g2="quotedblright" k="-30" /> +<hkern g1="Yacute" g2="quotedblbase" k="152" /> +<hkern g1="Yacute" g2="bullet" k="160" /> +<hkern g1="Yacute" g2="guilsinglleft" k="160" /> +<hkern g1="Yacute" g2="guilsinglright" k="160" /> +<hkern g1="Thorn" g2="quotedbl" k="46" /> +<hkern g1="Thorn" g2="ampersand" k="42" /> +<hkern g1="Thorn" g2="quotesingle" k="46" /> +<hkern g1="Thorn" g2="parenright" k="40" /> +<hkern g1="Thorn" g2="asterisk" k="46" /> +<hkern g1="Thorn" g2="comma" k="56" /> +<hkern g1="Thorn" g2="period" k="56" /> +<hkern g1="Thorn" g2="slash" k="42" /> +<hkern g1="Thorn" g2="A" k="42" /> +<hkern g1="Thorn" g2="T" k="98" /> +<hkern g1="Thorn" g2="V" k="52" /> +<hkern g1="Thorn" g2="X" k="30" /> +<hkern g1="Thorn" g2="Y" k="80" /> +<hkern g1="Thorn" g2="Z" k="70" /> +<hkern g1="Thorn" g2="backslash" k="52" /> +<hkern g1="Thorn" g2="bracketright" k="40" /> +<hkern g1="Thorn" g2="braceright" k="40" /> +<hkern g1="Thorn" g2="ordfeminine" k="46" /> +<hkern g1="Thorn" g2="degree" k="46" /> +<hkern g1="Thorn" g2="ordmasculine" k="46" /> +<hkern g1="Thorn" g2="Agrave" k="42" /> +<hkern g1="Thorn" g2="Aacute" k="42" /> +<hkern g1="Thorn" g2="Acircumflex" k="42" /> +<hkern g1="Thorn" g2="Atilde" k="42" /> +<hkern g1="Thorn" g2="Adieresis" k="42" /> +<hkern g1="Thorn" g2="Aring" k="42" /> +<hkern g1="Thorn" g2="AE" k="42" /> +<hkern g1="Thorn" g2="Yacute" k="80" /> +<hkern g1="Thorn" g2="quoteleft" k="46" /> +<hkern g1="Thorn" g2="quoteright" k="46" /> +<hkern g1="Thorn" g2="quotesinglbase" k="56" /> +<hkern g1="Thorn" g2="quotedblleft" k="46" /> +<hkern g1="Thorn" g2="quotedblright" k="46" /> +<hkern g1="Thorn" g2="quotedblbase" k="56" /> +<hkern g1="agrave" g2="quotedbl" k="72" /> +<hkern g1="agrave" g2="quotesingle" k="72" /> +<hkern g1="agrave" g2="asterisk" k="72" /> +<hkern g1="agrave" g2="v" k="32" /> +<hkern g1="agrave" g2="w" k="16" /> +<hkern g1="agrave" g2="y" k="32" /> +<hkern g1="agrave" g2="ordfeminine" k="72" /> +<hkern g1="agrave" g2="degree" k="72" /> +<hkern g1="agrave" g2="twosuperior" k="72" /> +<hkern g1="agrave" g2="threesuperior" k="72" /> +<hkern g1="agrave" g2="onesuperior" k="72" /> +<hkern g1="agrave" g2="ordmasculine" k="72" /> +<hkern g1="agrave" g2="quoteleft" k="72" /> +<hkern g1="agrave" g2="quoteright" k="72" /> +<hkern g1="agrave" g2="quotedblleft" k="72" /> +<hkern g1="agrave" g2="quotedblright" k="72" /> +<hkern g1="aacute" g2="quotedbl" k="72" /> +<hkern g1="aacute" g2="quotesingle" k="72" /> +<hkern g1="aacute" g2="asterisk" k="72" /> +<hkern g1="aacute" g2="v" k="32" /> +<hkern g1="aacute" g2="w" k="16" /> +<hkern g1="aacute" g2="y" k="32" /> +<hkern g1="aacute" g2="ordfeminine" k="72" /> +<hkern g1="aacute" g2="degree" k="72" /> +<hkern g1="aacute" g2="twosuperior" k="72" /> +<hkern g1="aacute" g2="threesuperior" k="72" /> +<hkern g1="aacute" g2="onesuperior" k="72" /> +<hkern g1="aacute" g2="ordmasculine" k="72" /> +<hkern g1="aacute" g2="quoteleft" k="72" /> +<hkern g1="aacute" g2="quoteright" k="72" /> +<hkern g1="aacute" g2="quotedblleft" k="72" /> +<hkern g1="aacute" g2="quotedblright" k="72" /> +<hkern g1="acircumflex" g2="quotedbl" k="72" /> +<hkern g1="acircumflex" g2="quotesingle" k="72" /> +<hkern g1="acircumflex" g2="asterisk" k="72" /> +<hkern g1="acircumflex" g2="v" k="32" /> +<hkern g1="acircumflex" g2="w" k="16" /> +<hkern g1="acircumflex" g2="y" k="32" /> +<hkern g1="acircumflex" g2="ordfeminine" k="72" /> +<hkern g1="acircumflex" g2="degree" k="72" /> +<hkern g1="acircumflex" g2="twosuperior" k="72" /> +<hkern g1="acircumflex" g2="threesuperior" k="72" /> +<hkern g1="acircumflex" g2="onesuperior" k="72" /> +<hkern g1="acircumflex" g2="ordmasculine" k="72" /> +<hkern g1="acircumflex" g2="quoteleft" k="72" /> +<hkern g1="acircumflex" g2="quoteright" k="72" /> +<hkern g1="acircumflex" g2="quotedblleft" k="72" /> +<hkern g1="acircumflex" g2="quotedblright" k="72" /> +<hkern g1="atilde" g2="quotedbl" k="72" /> +<hkern g1="atilde" g2="quotesingle" k="72" /> +<hkern g1="atilde" g2="asterisk" k="72" /> +<hkern g1="atilde" g2="v" k="32" /> +<hkern g1="atilde" g2="w" k="16" /> +<hkern g1="atilde" g2="y" k="32" /> +<hkern g1="atilde" g2="ordfeminine" k="72" /> +<hkern g1="atilde" g2="degree" k="72" /> +<hkern g1="atilde" g2="twosuperior" k="72" /> +<hkern g1="atilde" g2="threesuperior" k="72" /> +<hkern g1="atilde" g2="onesuperior" k="72" /> +<hkern g1="atilde" g2="ordmasculine" k="72" /> +<hkern g1="atilde" g2="quoteleft" k="72" /> +<hkern g1="atilde" g2="quoteright" k="72" /> +<hkern g1="atilde" g2="quotedblleft" k="72" /> +<hkern g1="atilde" g2="quotedblright" k="72" /> +<hkern g1="adieresis" g2="quotedbl" k="72" /> +<hkern g1="adieresis" g2="quotesingle" k="72" /> +<hkern g1="adieresis" g2="asterisk" k="72" /> +<hkern g1="adieresis" g2="v" k="32" /> +<hkern g1="adieresis" g2="w" k="16" /> +<hkern g1="adieresis" g2="y" k="32" /> +<hkern g1="adieresis" g2="ordfeminine" k="72" /> +<hkern g1="adieresis" g2="degree" k="72" /> +<hkern g1="adieresis" g2="twosuperior" k="72" /> +<hkern g1="adieresis" g2="threesuperior" k="72" /> +<hkern g1="adieresis" g2="onesuperior" k="72" /> +<hkern g1="adieresis" g2="ordmasculine" k="72" /> +<hkern g1="adieresis" g2="quoteleft" k="72" /> +<hkern g1="adieresis" g2="quoteright" k="72" /> +<hkern g1="adieresis" g2="quotedblleft" k="72" /> +<hkern g1="adieresis" g2="quotedblright" k="72" /> +<hkern g1="aring" g2="quotedbl" k="72" /> +<hkern g1="aring" g2="quotesingle" k="72" /> +<hkern g1="aring" g2="asterisk" k="72" /> +<hkern g1="aring" g2="v" k="32" /> +<hkern g1="aring" g2="w" k="16" /> +<hkern g1="aring" g2="y" k="32" /> +<hkern g1="aring" g2="ordfeminine" k="72" /> +<hkern g1="aring" g2="degree" k="72" /> +<hkern g1="aring" g2="twosuperior" k="72" /> +<hkern g1="aring" g2="threesuperior" k="72" /> +<hkern g1="aring" g2="onesuperior" k="72" /> +<hkern g1="aring" g2="ordmasculine" k="72" /> +<hkern g1="aring" g2="quoteleft" k="72" /> +<hkern g1="aring" g2="quoteright" k="72" /> +<hkern g1="aring" g2="quotedblleft" k="72" /> +<hkern g1="aring" g2="quotedblright" k="72" /> +<hkern g1="ae" g2="quotedbl" k="92" /> +<hkern g1="ae" g2="quotesingle" k="92" /> +<hkern g1="ae" g2="parenright" k="32" /> +<hkern g1="ae" g2="asterisk" k="92" /> +<hkern g1="ae" g2="V" k="116" /> +<hkern g1="ae" g2="W" k="32" /> +<hkern g1="ae" g2="backslash" k="116" /> +<hkern g1="ae" g2="bracketright" k="32" /> +<hkern g1="ae" g2="v" k="26" /> +<hkern g1="ae" g2="x" k="60" /> +<hkern g1="ae" g2="y" k="26" /> +<hkern g1="ae" g2="braceright" k="32" /> +<hkern g1="ae" g2="ordfeminine" k="92" /> +<hkern g1="ae" g2="degree" k="92" /> +<hkern g1="ae" g2="ordmasculine" k="92" /> +<hkern g1="ae" g2="quoteleft" k="92" /> +<hkern g1="ae" g2="quoteright" k="92" /> +<hkern g1="ae" g2="quotedblleft" k="92" /> +<hkern g1="ae" g2="quotedblright" k="92" /> +<hkern g1="egrave" g2="quotedbl" k="92" /> +<hkern g1="egrave" g2="quotesingle" k="92" /> +<hkern g1="egrave" g2="parenright" k="32" /> +<hkern g1="egrave" g2="asterisk" k="92" /> +<hkern g1="egrave" g2="V" k="116" /> +<hkern g1="egrave" g2="W" k="32" /> +<hkern g1="egrave" g2="backslash" k="116" /> +<hkern g1="egrave" g2="bracketright" k="32" /> +<hkern g1="egrave" g2="v" k="26" /> +<hkern g1="egrave" g2="x" k="60" /> +<hkern g1="egrave" g2="y" k="26" /> +<hkern g1="egrave" g2="braceright" k="32" /> +<hkern g1="egrave" g2="ordfeminine" k="92" /> +<hkern g1="egrave" g2="degree" k="92" /> +<hkern g1="egrave" g2="ordmasculine" k="92" /> +<hkern g1="egrave" g2="quoteleft" k="92" /> +<hkern g1="egrave" g2="quoteright" k="92" /> +<hkern g1="egrave" g2="quotedblleft" k="92" /> +<hkern g1="egrave" g2="quotedblright" k="92" /> +<hkern g1="eacute" g2="quotedbl" k="92" /> +<hkern g1="eacute" g2="quotesingle" k="92" /> +<hkern g1="eacute" g2="parenright" k="32" /> +<hkern g1="eacute" g2="asterisk" k="92" /> +<hkern g1="eacute" g2="V" k="116" /> +<hkern g1="eacute" g2="W" k="32" /> +<hkern g1="eacute" g2="backslash" k="116" /> +<hkern g1="eacute" g2="bracketright" k="32" /> +<hkern g1="eacute" g2="v" k="26" /> +<hkern g1="eacute" g2="x" k="60" /> +<hkern g1="eacute" g2="y" k="26" /> +<hkern g1="eacute" g2="braceright" k="32" /> +<hkern g1="eacute" g2="ordfeminine" k="92" /> +<hkern g1="eacute" g2="degree" k="92" /> +<hkern g1="eacute" g2="ordmasculine" k="92" /> +<hkern g1="eacute" g2="quoteleft" k="92" /> +<hkern g1="eacute" g2="quoteright" k="92" /> +<hkern g1="eacute" g2="quotedblleft" k="92" /> +<hkern g1="eacute" g2="quotedblright" k="92" /> +<hkern g1="ecircumflex" g2="quotedbl" k="92" /> +<hkern g1="ecircumflex" g2="quotesingle" k="92" /> +<hkern g1="ecircumflex" g2="parenright" k="32" /> +<hkern g1="ecircumflex" g2="asterisk" k="92" /> +<hkern g1="ecircumflex" g2="V" k="116" /> +<hkern g1="ecircumflex" g2="W" k="32" /> +<hkern g1="ecircumflex" g2="backslash" k="116" /> +<hkern g1="ecircumflex" g2="bracketright" k="32" /> +<hkern g1="ecircumflex" g2="v" k="26" /> +<hkern g1="ecircumflex" g2="x" k="60" /> +<hkern g1="ecircumflex" g2="y" k="26" /> +<hkern g1="ecircumflex" g2="braceright" k="32" /> +<hkern g1="ecircumflex" g2="ordfeminine" k="92" /> +<hkern g1="ecircumflex" g2="degree" k="92" /> +<hkern g1="ecircumflex" g2="ordmasculine" k="92" /> +<hkern g1="ecircumflex" g2="quoteleft" k="92" /> +<hkern g1="ecircumflex" g2="quoteright" k="92" /> +<hkern g1="ecircumflex" g2="quotedblleft" k="92" /> +<hkern g1="ecircumflex" g2="quotedblright" k="92" /> +<hkern g1="edieresis" g2="quotedbl" k="92" /> +<hkern g1="edieresis" g2="quotesingle" k="92" /> +<hkern g1="edieresis" g2="parenright" k="32" /> +<hkern g1="edieresis" g2="asterisk" k="92" /> +<hkern g1="edieresis" g2="V" k="116" /> +<hkern g1="edieresis" g2="W" k="32" /> +<hkern g1="edieresis" g2="backslash" k="116" /> +<hkern g1="edieresis" g2="bracketright" k="32" /> +<hkern g1="edieresis" g2="v" k="26" /> +<hkern g1="edieresis" g2="x" k="60" /> +<hkern g1="edieresis" g2="y" k="26" /> +<hkern g1="edieresis" g2="braceright" k="32" /> +<hkern g1="edieresis" g2="ordfeminine" k="92" /> +<hkern g1="edieresis" g2="degree" k="92" /> +<hkern g1="edieresis" g2="ordmasculine" k="92" /> +<hkern g1="edieresis" g2="quoteleft" k="92" /> +<hkern g1="edieresis" g2="quoteright" k="92" /> +<hkern g1="edieresis" g2="quotedblleft" k="92" /> +<hkern g1="edieresis" g2="quotedblright" k="92" /> +<hkern g1="ntilde" g2="quotedbl" k="72" /> +<hkern g1="ntilde" g2="quotesingle" k="72" /> +<hkern g1="ntilde" g2="asterisk" k="72" /> +<hkern g1="ntilde" g2="v" k="32" /> +<hkern g1="ntilde" g2="w" k="16" /> +<hkern g1="ntilde" g2="y" k="32" /> +<hkern g1="ntilde" g2="ordfeminine" k="72" /> +<hkern g1="ntilde" g2="degree" k="72" /> +<hkern g1="ntilde" g2="twosuperior" k="72" /> +<hkern g1="ntilde" g2="threesuperior" k="72" /> +<hkern g1="ntilde" g2="onesuperior" k="72" /> +<hkern g1="ntilde" g2="ordmasculine" k="72" /> +<hkern g1="ntilde" g2="quoteleft" k="72" /> +<hkern g1="ntilde" g2="quoteright" k="72" /> +<hkern g1="ntilde" g2="quotedblleft" k="72" /> +<hkern g1="ntilde" g2="quotedblright" k="72" /> +<hkern g1="ograve" g2="quotedbl" k="92" /> +<hkern g1="ograve" g2="quotesingle" k="92" /> +<hkern g1="ograve" g2="parenright" k="32" /> +<hkern g1="ograve" g2="asterisk" k="92" /> +<hkern g1="ograve" g2="V" k="116" /> +<hkern g1="ograve" g2="W" k="32" /> +<hkern g1="ograve" g2="backslash" k="116" /> +<hkern g1="ograve" g2="bracketright" k="32" /> +<hkern g1="ograve" g2="v" k="26" /> +<hkern g1="ograve" g2="x" k="60" /> +<hkern g1="ograve" g2="y" k="26" /> +<hkern g1="ograve" g2="braceright" k="32" /> +<hkern g1="ograve" g2="ordfeminine" k="92" /> +<hkern g1="ograve" g2="degree" k="92" /> +<hkern g1="ograve" g2="ordmasculine" k="92" /> +<hkern g1="ograve" g2="quoteleft" k="92" /> +<hkern g1="ograve" g2="quoteright" k="92" /> +<hkern g1="ograve" g2="quotedblleft" k="92" /> +<hkern g1="ograve" g2="quotedblright" k="92" /> +<hkern g1="oacute" g2="quotedbl" k="92" /> +<hkern g1="oacute" g2="quotesingle" k="92" /> +<hkern g1="oacute" g2="parenright" k="32" /> +<hkern g1="oacute" g2="asterisk" k="92" /> +<hkern g1="oacute" g2="V" k="116" /> +<hkern g1="oacute" g2="W" k="32" /> +<hkern g1="oacute" g2="backslash" k="116" /> +<hkern g1="oacute" g2="bracketright" k="32" /> +<hkern g1="oacute" g2="v" k="26" /> +<hkern g1="oacute" g2="x" k="60" /> +<hkern g1="oacute" g2="y" k="26" /> +<hkern g1="oacute" g2="braceright" k="32" /> +<hkern g1="oacute" g2="ordfeminine" k="92" /> +<hkern g1="oacute" g2="degree" k="92" /> +<hkern g1="oacute" g2="ordmasculine" k="92" /> +<hkern g1="oacute" g2="quoteleft" k="92" /> +<hkern g1="oacute" g2="quoteright" k="92" /> +<hkern g1="oacute" g2="quotedblleft" k="92" /> +<hkern g1="oacute" g2="quotedblright" k="92" /> +<hkern g1="ocircumflex" g2="quotedbl" k="92" /> +<hkern g1="ocircumflex" g2="quotesingle" k="92" /> +<hkern g1="ocircumflex" g2="parenright" k="32" /> +<hkern g1="ocircumflex" g2="asterisk" k="92" /> +<hkern g1="ocircumflex" g2="V" k="116" /> +<hkern g1="ocircumflex" g2="W" k="32" /> +<hkern g1="ocircumflex" g2="backslash" k="116" /> +<hkern g1="ocircumflex" g2="bracketright" k="32" /> +<hkern g1="ocircumflex" g2="v" k="26" /> +<hkern g1="ocircumflex" g2="x" k="60" /> +<hkern g1="ocircumflex" g2="y" k="26" /> +<hkern g1="ocircumflex" g2="braceright" k="32" /> +<hkern g1="ocircumflex" g2="ordfeminine" k="92" /> +<hkern g1="ocircumflex" g2="degree" k="92" /> +<hkern g1="ocircumflex" g2="ordmasculine" k="92" /> +<hkern g1="ocircumflex" g2="quoteleft" k="92" /> +<hkern g1="ocircumflex" g2="quoteright" k="92" /> +<hkern g1="ocircumflex" g2="quotedblleft" k="92" /> +<hkern g1="ocircumflex" g2="quotedblright" k="92" /> +<hkern g1="otilde" g2="quotedbl" k="92" /> +<hkern g1="otilde" g2="quotesingle" k="92" /> +<hkern g1="otilde" g2="parenright" k="32" /> +<hkern g1="otilde" g2="asterisk" k="92" /> +<hkern g1="otilde" g2="V" k="116" /> +<hkern g1="otilde" g2="W" k="32" /> +<hkern g1="otilde" g2="backslash" k="116" /> +<hkern g1="otilde" g2="bracketright" k="32" /> +<hkern g1="otilde" g2="v" k="26" /> +<hkern g1="otilde" g2="x" k="60" /> +<hkern g1="otilde" g2="y" k="26" /> +<hkern g1="otilde" g2="braceright" k="32" /> +<hkern g1="otilde" g2="ordfeminine" k="92" /> +<hkern g1="otilde" g2="degree" k="92" /> +<hkern g1="otilde" g2="ordmasculine" k="92" /> +<hkern g1="otilde" g2="quoteleft" k="92" /> +<hkern g1="otilde" g2="quoteright" k="92" /> +<hkern g1="otilde" g2="quotedblleft" k="92" /> +<hkern g1="otilde" g2="quotedblright" k="92" /> +<hkern g1="odieresis" g2="quotedbl" k="92" /> +<hkern g1="odieresis" g2="quotesingle" k="92" /> +<hkern g1="odieresis" g2="parenright" k="32" /> +<hkern g1="odieresis" g2="asterisk" k="92" /> +<hkern g1="odieresis" g2="V" k="116" /> +<hkern g1="odieresis" g2="W" k="32" /> +<hkern g1="odieresis" g2="backslash" k="116" /> +<hkern g1="odieresis" g2="bracketright" k="32" /> +<hkern g1="odieresis" g2="v" k="26" /> +<hkern g1="odieresis" g2="x" k="60" /> +<hkern g1="odieresis" g2="y" k="26" /> +<hkern g1="odieresis" g2="braceright" k="32" /> +<hkern g1="odieresis" g2="ordfeminine" k="92" /> +<hkern g1="odieresis" g2="degree" k="92" /> +<hkern g1="odieresis" g2="ordmasculine" k="92" /> +<hkern g1="odieresis" g2="quoteleft" k="92" /> +<hkern g1="odieresis" g2="quoteright" k="92" /> +<hkern g1="odieresis" g2="quotedblleft" k="92" /> +<hkern g1="odieresis" g2="quotedblright" k="92" /> +<hkern g1="oslash" g2="quotedbl" k="92" /> +<hkern g1="oslash" g2="quotesingle" k="92" /> +<hkern g1="oslash" g2="parenright" k="32" /> +<hkern g1="oslash" g2="asterisk" k="92" /> +<hkern g1="oslash" g2="V" k="116" /> +<hkern g1="oslash" g2="W" k="32" /> +<hkern g1="oslash" g2="backslash" k="116" /> +<hkern g1="oslash" g2="bracketright" k="32" /> +<hkern g1="oslash" g2="v" k="26" /> +<hkern g1="oslash" g2="x" k="60" /> +<hkern g1="oslash" g2="y" k="26" /> +<hkern g1="oslash" g2="braceright" k="32" /> +<hkern g1="oslash" g2="ordfeminine" k="92" /> +<hkern g1="oslash" g2="degree" k="92" /> +<hkern g1="oslash" g2="ordmasculine" k="92" /> +<hkern g1="oslash" g2="quoteleft" k="92" /> +<hkern g1="oslash" g2="quoteright" k="92" /> +<hkern g1="oslash" g2="quotedblleft" k="92" /> +<hkern g1="oslash" g2="quotedblright" k="92" /> +<hkern g1="thorn" g2="quotedbl" k="92" /> +<hkern g1="thorn" g2="quotesingle" k="92" /> +<hkern g1="thorn" g2="parenright" k="32" /> +<hkern g1="thorn" g2="asterisk" k="92" /> +<hkern g1="thorn" g2="V" k="116" /> +<hkern g1="thorn" g2="W" k="32" /> +<hkern g1="thorn" g2="backslash" k="116" /> +<hkern g1="thorn" g2="bracketright" k="32" /> +<hkern g1="thorn" g2="v" k="26" /> +<hkern g1="thorn" g2="x" k="60" /> +<hkern g1="thorn" g2="y" k="26" /> +<hkern g1="thorn" g2="braceright" k="32" /> +<hkern g1="thorn" g2="ordfeminine" k="92" /> +<hkern g1="thorn" g2="degree" k="92" /> +<hkern g1="thorn" g2="ordmasculine" k="92" /> +<hkern g1="thorn" g2="quoteleft" k="92" /> +<hkern g1="thorn" g2="quoteright" k="92" /> +<hkern g1="thorn" g2="quotedblleft" k="92" /> +<hkern g1="thorn" g2="quotedblright" k="92" /> +<hkern g1="oe" g2="quotedbl" k="92" /> +<hkern g1="oe" g2="quotesingle" k="92" /> +<hkern g1="oe" g2="parenright" k="32" /> +<hkern g1="oe" g2="asterisk" k="92" /> +<hkern g1="oe" g2="V" k="116" /> +<hkern g1="oe" g2="W" k="32" /> +<hkern g1="oe" g2="backslash" k="116" /> +<hkern g1="oe" g2="bracketright" k="32" /> +<hkern g1="oe" g2="v" k="26" /> +<hkern g1="oe" g2="x" k="60" /> +<hkern g1="oe" g2="y" k="26" /> +<hkern g1="oe" g2="braceright" k="32" /> +<hkern g1="oe" g2="ordfeminine" k="92" /> +<hkern g1="oe" g2="degree" k="92" /> +<hkern g1="oe" g2="ordmasculine" k="92" /> +<hkern g1="oe" g2="quoteleft" k="92" /> +<hkern g1="oe" g2="quoteright" k="92" /> +<hkern g1="oe" g2="quotedblleft" k="92" /> +<hkern g1="oe" g2="quotedblright" k="92" /> +<hkern g1="endash" g2="quotedbl" k="178" /> +<hkern g1="endash" g2="ampersand" k="52" /> +<hkern g1="endash" g2="quotesingle" k="178" /> +<hkern g1="endash" g2="asterisk" k="178" /> +<hkern g1="endash" g2="comma" k="136" /> +<hkern g1="endash" g2="period" k="136" /> +<hkern g1="endash" g2="slash" k="52" /> +<hkern g1="endash" g2="A" k="52" /> +<hkern g1="endash" g2="T" k="180" /> +<hkern g1="endash" g2="V" k="112" /> +<hkern g1="endash" g2="W" k="32" /> +<hkern g1="endash" g2="X" k="62" /> +<hkern g1="endash" g2="Y" k="160" /> +<hkern g1="endash" g2="Z" k="46" /> +<hkern g1="endash" g2="backslash" k="112" /> +<hkern g1="endash" g2="ordfeminine" k="178" /> +<hkern g1="endash" g2="degree" k="178" /> +<hkern g1="endash" g2="ordmasculine" k="178" /> +<hkern g1="endash" g2="Agrave" k="52" /> +<hkern g1="endash" g2="Aacute" k="52" /> +<hkern g1="endash" g2="Acircumflex" k="52" /> +<hkern g1="endash" g2="Atilde" k="52" /> +<hkern g1="endash" g2="Adieresis" k="52" /> +<hkern g1="endash" g2="Aring" k="52" /> +<hkern g1="endash" g2="AE" k="52" /> +<hkern g1="endash" g2="Yacute" k="160" /> +<hkern g1="endash" g2="quoteleft" k="178" /> +<hkern g1="endash" g2="quoteright" k="178" /> +<hkern g1="endash" g2="quotesinglbase" k="136" /> +<hkern g1="endash" g2="quotedblleft" k="178" /> +<hkern g1="endash" g2="quotedblright" k="178" /> +<hkern g1="endash" g2="quotedblbase" k="136" /> +<hkern g1="emdash" g2="quotedbl" k="178" /> +<hkern g1="emdash" g2="ampersand" k="52" /> +<hkern g1="emdash" g2="quotesingle" k="178" /> +<hkern g1="emdash" g2="asterisk" k="178" /> +<hkern g1="emdash" g2="comma" k="136" /> +<hkern g1="emdash" g2="period" k="136" /> +<hkern g1="emdash" g2="slash" k="52" /> +<hkern g1="emdash" g2="A" k="52" /> +<hkern g1="emdash" g2="T" k="180" /> +<hkern g1="emdash" g2="V" k="112" /> +<hkern g1="emdash" g2="W" k="32" /> +<hkern g1="emdash" g2="X" k="62" /> +<hkern g1="emdash" g2="Y" k="160" /> +<hkern g1="emdash" g2="Z" k="46" /> +<hkern g1="emdash" g2="backslash" k="112" /> +<hkern g1="emdash" g2="ordfeminine" k="178" /> +<hkern g1="emdash" g2="degree" k="178" /> +<hkern g1="emdash" g2="ordmasculine" k="178" /> +<hkern g1="emdash" g2="Agrave" k="52" /> +<hkern g1="emdash" g2="Aacute" k="52" /> +<hkern g1="emdash" g2="Acircumflex" k="52" /> +<hkern g1="emdash" g2="Atilde" k="52" /> +<hkern g1="emdash" g2="Adieresis" k="52" /> +<hkern g1="emdash" g2="Aring" k="52" /> +<hkern g1="emdash" g2="AE" k="52" /> +<hkern g1="emdash" g2="Yacute" k="160" /> +<hkern g1="emdash" g2="quoteleft" k="178" /> +<hkern g1="emdash" g2="quoteright" k="178" /> +<hkern g1="emdash" g2="quotesinglbase" k="136" /> +<hkern g1="emdash" g2="quotedblleft" k="178" /> +<hkern g1="emdash" g2="quotedblright" k="178" /> +<hkern g1="emdash" g2="quotedblbase" k="136" /> +<hkern g1="quoteleft" g2="ampersand" k="182" /> +<hkern g1="quoteleft" g2="comma" k="228" /> +<hkern g1="quoteleft" g2="hyphen" k="178" /> +<hkern g1="quoteleft" g2="period" k="228" /> +<hkern g1="quoteleft" g2="slash" k="182" /> +<hkern g1="quoteleft" g2="at" k="46" /> +<hkern g1="quoteleft" g2="A" k="182" /> +<hkern g1="quoteleft" g2="C" k="46" /> +<hkern g1="quoteleft" g2="G" k="46" /> +<hkern g1="quoteleft" g2="O" k="46" /> +<hkern g1="quoteleft" g2="Q" k="46" /> +<hkern g1="quoteleft" g2="V" k="-48" /> +<hkern g1="quoteleft" g2="W" k="-48" /> +<hkern g1="quoteleft" g2="Y" k="-30" /> +<hkern g1="quoteleft" g2="backslash" k="-48" /> +<hkern g1="quoteleft" g2="a" k="64" /> +<hkern g1="quoteleft" g2="c" k="92" /> +<hkern g1="quoteleft" g2="d" k="92" /> +<hkern g1="quoteleft" g2="e" k="92" /> +<hkern g1="quoteleft" g2="o" k="92" /> +<hkern g1="quoteleft" g2="q" k="92" /> +<hkern g1="quoteleft" g2="guillemotleft" k="178" /> +<hkern g1="quoteleft" g2="uni00AD" k="178" /> +<hkern g1="quoteleft" g2="middot" k="178" /> +<hkern g1="quoteleft" g2="guillemotright" k="178" /> +<hkern g1="quoteleft" g2="Agrave" k="182" /> +<hkern g1="quoteleft" g2="Aacute" k="182" /> +<hkern g1="quoteleft" g2="Acircumflex" k="182" /> +<hkern g1="quoteleft" g2="Atilde" k="182" /> +<hkern g1="quoteleft" g2="Adieresis" k="182" /> +<hkern g1="quoteleft" g2="Aring" k="182" /> +<hkern g1="quoteleft" g2="AE" k="182" /> +<hkern g1="quoteleft" g2="Ccedilla" k="46" /> +<hkern g1="quoteleft" g2="Ograve" k="46" /> +<hkern g1="quoteleft" g2="Oacute" k="46" /> +<hkern g1="quoteleft" g2="Ocircumflex" k="46" /> +<hkern g1="quoteleft" g2="Otilde" k="46" /> +<hkern g1="quoteleft" g2="Odieresis" k="46" /> +<hkern g1="quoteleft" g2="Oslash" k="46" /> +<hkern g1="quoteleft" g2="Yacute" k="-30" /> +<hkern g1="quoteleft" g2="agrave" k="64" /> +<hkern g1="quoteleft" g2="aacute" k="64" /> +<hkern g1="quoteleft" g2="acircumflex" k="64" /> +<hkern g1="quoteleft" g2="atilde" k="64" /> +<hkern g1="quoteleft" g2="adieresis" k="64" /> +<hkern g1="quoteleft" g2="aring" k="64" /> +<hkern g1="quoteleft" g2="ae" k="64" /> +<hkern g1="quoteleft" g2="ccedilla" k="92" /> +<hkern g1="quoteleft" g2="egrave" k="92" /> +<hkern g1="quoteleft" g2="eacute" k="92" /> +<hkern g1="quoteleft" g2="ecircumflex" k="92" /> +<hkern g1="quoteleft" g2="edieresis" k="92" /> +<hkern g1="quoteleft" g2="eth" k="92" /> +<hkern g1="quoteleft" g2="ograve" k="92" /> +<hkern g1="quoteleft" g2="oacute" k="92" /> +<hkern g1="quoteleft" g2="ocircumflex" k="92" /> +<hkern g1="quoteleft" g2="otilde" k="92" /> +<hkern g1="quoteleft" g2="odieresis" k="92" /> +<hkern g1="quoteleft" g2="oslash" k="92" /> +<hkern g1="quoteleft" g2="OE" k="46" /> +<hkern g1="quoteleft" g2="oe" k="92" /> +<hkern g1="quoteleft" g2="endash" k="178" /> +<hkern g1="quoteleft" g2="emdash" k="178" /> +<hkern g1="quoteleft" g2="quotesinglbase" k="228" /> +<hkern g1="quoteleft" g2="quotedblbase" k="228" /> +<hkern g1="quoteleft" g2="bullet" k="178" /> +<hkern g1="quoteleft" g2="guilsinglleft" k="178" /> +<hkern g1="quoteleft" g2="guilsinglright" k="178" /> +<hkern g1="quoteright" g2="ampersand" k="182" /> +<hkern g1="quoteright" g2="comma" k="228" /> +<hkern g1="quoteright" g2="hyphen" k="178" /> +<hkern g1="quoteright" g2="period" k="228" /> +<hkern g1="quoteright" g2="slash" k="182" /> +<hkern g1="quoteright" g2="at" k="46" /> +<hkern g1="quoteright" g2="A" k="182" /> +<hkern g1="quoteright" g2="C" k="46" /> +<hkern g1="quoteright" g2="G" k="46" /> +<hkern g1="quoteright" g2="O" k="46" /> +<hkern g1="quoteright" g2="Q" k="46" /> +<hkern g1="quoteright" g2="V" k="-48" /> +<hkern g1="quoteright" g2="W" k="-48" /> +<hkern g1="quoteright" g2="Y" k="-30" /> +<hkern g1="quoteright" g2="backslash" k="-48" /> +<hkern g1="quoteright" g2="a" k="64" /> +<hkern g1="quoteright" g2="c" k="92" /> +<hkern g1="quoteright" g2="d" k="92" /> +<hkern g1="quoteright" g2="e" k="92" /> +<hkern g1="quoteright" g2="o" k="92" /> +<hkern g1="quoteright" g2="q" k="92" /> +<hkern g1="quoteright" g2="guillemotleft" k="178" /> +<hkern g1="quoteright" g2="uni00AD" k="178" /> +<hkern g1="quoteright" g2="middot" k="178" /> +<hkern g1="quoteright" g2="guillemotright" k="178" /> +<hkern g1="quoteright" g2="Agrave" k="182" /> +<hkern g1="quoteright" g2="Aacute" k="182" /> +<hkern g1="quoteright" g2="Acircumflex" k="182" /> +<hkern g1="quoteright" g2="Atilde" k="182" /> +<hkern g1="quoteright" g2="Adieresis" k="182" /> +<hkern g1="quoteright" g2="Aring" k="182" /> +<hkern g1="quoteright" g2="AE" k="182" /> +<hkern g1="quoteright" g2="Ccedilla" k="46" /> +<hkern g1="quoteright" g2="Ograve" k="46" /> +<hkern g1="quoteright" g2="Oacute" k="46" /> +<hkern g1="quoteright" g2="Ocircumflex" k="46" /> +<hkern g1="quoteright" g2="Otilde" k="46" /> +<hkern g1="quoteright" g2="Odieresis" k="46" /> +<hkern g1="quoteright" g2="Oslash" k="46" /> +<hkern g1="quoteright" g2="Yacute" k="-30" /> +<hkern g1="quoteright" g2="agrave" k="64" /> +<hkern g1="quoteright" g2="aacute" k="64" /> +<hkern g1="quoteright" g2="acircumflex" k="64" /> +<hkern g1="quoteright" g2="atilde" k="64" /> +<hkern g1="quoteright" g2="adieresis" k="64" /> +<hkern g1="quoteright" g2="aring" k="64" /> +<hkern g1="quoteright" g2="ae" k="64" /> +<hkern g1="quoteright" g2="ccedilla" k="92" /> +<hkern g1="quoteright" g2="egrave" k="92" /> +<hkern g1="quoteright" g2="eacute" k="92" /> +<hkern g1="quoteright" g2="ecircumflex" k="92" /> +<hkern g1="quoteright" g2="edieresis" k="92" /> +<hkern g1="quoteright" g2="eth" k="92" /> +<hkern g1="quoteright" g2="ograve" k="92" /> +<hkern g1="quoteright" g2="oacute" k="92" /> +<hkern g1="quoteright" g2="ocircumflex" k="92" /> +<hkern g1="quoteright" g2="otilde" k="92" /> +<hkern g1="quoteright" g2="odieresis" k="92" /> +<hkern g1="quoteright" g2="oslash" k="92" /> +<hkern g1="quoteright" g2="OE" k="46" /> +<hkern g1="quoteright" g2="oe" k="92" /> +<hkern g1="quoteright" g2="endash" k="178" /> +<hkern g1="quoteright" g2="emdash" k="178" /> +<hkern g1="quoteright" g2="quotesinglbase" k="228" /> +<hkern g1="quoteright" g2="quotedblbase" k="228" /> +<hkern g1="quoteright" g2="bullet" k="178" /> +<hkern g1="quoteright" g2="guilsinglleft" k="178" /> +<hkern g1="quoteright" g2="guilsinglright" k="178" /> +<hkern g1="quotesinglbase" g2="quotedbl" k="228" /> +<hkern g1="quotesinglbase" g2="quotesingle" k="228" /> +<hkern g1="quotesinglbase" g2="asterisk" k="228" /> +<hkern g1="quotesinglbase" g2="hyphen" k="136" /> +<hkern g1="quotesinglbase" g2="at" k="56" /> +<hkern g1="quotesinglbase" g2="C" k="56" /> +<hkern g1="quotesinglbase" g2="G" k="56" /> +<hkern g1="quotesinglbase" g2="O" k="56" /> +<hkern g1="quotesinglbase" g2="Q" k="56" /> +<hkern g1="quotesinglbase" g2="T" k="180" /> +<hkern g1="quotesinglbase" g2="V" k="180" /> +<hkern g1="quotesinglbase" g2="W" k="122" /> +<hkern g1="quotesinglbase" g2="Y" k="152" /> +<hkern g1="quotesinglbase" g2="backslash" k="180" /> +<hkern g1="quotesinglbase" g2="v" k="132" /> +<hkern g1="quotesinglbase" g2="w" k="62" /> +<hkern g1="quotesinglbase" g2="y" k="132" /> +<hkern g1="quotesinglbase" g2="ordfeminine" k="228" /> +<hkern g1="quotesinglbase" g2="guillemotleft" k="136" /> +<hkern g1="quotesinglbase" g2="uni00AD" k="136" /> +<hkern g1="quotesinglbase" g2="degree" k="228" /> +<hkern g1="quotesinglbase" g2="middot" k="136" /> +<hkern g1="quotesinglbase" g2="ordmasculine" k="228" /> +<hkern g1="quotesinglbase" g2="guillemotright" k="136" /> +<hkern g1="quotesinglbase" g2="Ccedilla" k="56" /> +<hkern g1="quotesinglbase" g2="Ograve" k="56" /> +<hkern g1="quotesinglbase" g2="Oacute" k="56" /> +<hkern g1="quotesinglbase" g2="Ocircumflex" k="56" /> +<hkern g1="quotesinglbase" g2="Otilde" k="56" /> +<hkern g1="quotesinglbase" g2="Odieresis" k="56" /> +<hkern g1="quotesinglbase" g2="Oslash" k="56" /> +<hkern g1="quotesinglbase" g2="Yacute" k="152" /> +<hkern g1="quotesinglbase" g2="OE" k="56" /> +<hkern g1="quotesinglbase" g2="endash" k="136" /> +<hkern g1="quotesinglbase" g2="emdash" k="136" /> +<hkern g1="quotesinglbase" g2="quoteleft" k="228" /> +<hkern g1="quotesinglbase" g2="quoteright" k="228" /> +<hkern g1="quotesinglbase" g2="quotedblleft" k="228" /> +<hkern g1="quotesinglbase" g2="quotedblright" k="228" /> +<hkern g1="quotesinglbase" g2="bullet" k="136" /> +<hkern g1="quotesinglbase" g2="guilsinglleft" k="136" /> +<hkern g1="quotesinglbase" g2="guilsinglright" k="136" /> +<hkern g1="quotedblleft" g2="ampersand" k="182" /> +<hkern g1="quotedblleft" g2="comma" k="228" /> +<hkern g1="quotedblleft" g2="hyphen" k="178" /> +<hkern g1="quotedblleft" g2="period" k="228" /> +<hkern g1="quotedblleft" g2="slash" k="182" /> +<hkern g1="quotedblleft" g2="at" k="46" /> +<hkern g1="quotedblleft" g2="A" k="182" /> +<hkern g1="quotedblleft" g2="C" k="46" /> +<hkern g1="quotedblleft" g2="G" k="46" /> +<hkern g1="quotedblleft" g2="O" k="46" /> +<hkern g1="quotedblleft" g2="Q" k="46" /> +<hkern g1="quotedblleft" g2="V" k="-48" /> +<hkern g1="quotedblleft" g2="W" k="-48" /> +<hkern g1="quotedblleft" g2="Y" k="-30" /> +<hkern g1="quotedblleft" g2="backslash" k="-48" /> +<hkern g1="quotedblleft" g2="a" k="64" /> +<hkern g1="quotedblleft" g2="c" k="92" /> +<hkern g1="quotedblleft" g2="d" k="92" /> +<hkern g1="quotedblleft" g2="e" k="92" /> +<hkern g1="quotedblleft" g2="o" k="92" /> +<hkern g1="quotedblleft" g2="q" k="92" /> +<hkern g1="quotedblleft" g2="guillemotleft" k="178" /> +<hkern g1="quotedblleft" g2="uni00AD" k="178" /> +<hkern g1="quotedblleft" g2="middot" k="178" /> +<hkern g1="quotedblleft" g2="guillemotright" k="178" /> +<hkern g1="quotedblleft" g2="Agrave" k="182" /> +<hkern g1="quotedblleft" g2="Aacute" k="182" /> +<hkern g1="quotedblleft" g2="Acircumflex" k="182" /> +<hkern g1="quotedblleft" g2="Atilde" k="182" /> +<hkern g1="quotedblleft" g2="Adieresis" k="182" /> +<hkern g1="quotedblleft" g2="Aring" k="182" /> +<hkern g1="quotedblleft" g2="AE" k="182" /> +<hkern g1="quotedblleft" g2="Ccedilla" k="46" /> +<hkern g1="quotedblleft" g2="Ograve" k="46" /> +<hkern g1="quotedblleft" g2="Oacute" k="46" /> +<hkern g1="quotedblleft" g2="Ocircumflex" k="46" /> +<hkern g1="quotedblleft" g2="Otilde" k="46" /> +<hkern g1="quotedblleft" g2="Odieresis" k="46" /> +<hkern g1="quotedblleft" g2="Oslash" k="46" /> +<hkern g1="quotedblleft" g2="Yacute" k="-30" /> +<hkern g1="quotedblleft" g2="agrave" k="64" /> +<hkern g1="quotedblleft" g2="aacute" k="64" /> +<hkern g1="quotedblleft" g2="acircumflex" k="64" /> +<hkern g1="quotedblleft" g2="atilde" k="64" /> +<hkern g1="quotedblleft" g2="adieresis" k="64" /> +<hkern g1="quotedblleft" g2="aring" k="64" /> +<hkern g1="quotedblleft" g2="ae" k="64" /> +<hkern g1="quotedblleft" g2="ccedilla" k="92" /> +<hkern g1="quotedblleft" g2="egrave" k="92" /> +<hkern g1="quotedblleft" g2="eacute" k="92" /> +<hkern g1="quotedblleft" g2="ecircumflex" k="92" /> +<hkern g1="quotedblleft" g2="edieresis" k="92" /> +<hkern g1="quotedblleft" g2="eth" k="92" /> +<hkern g1="quotedblleft" g2="ograve" k="92" /> +<hkern g1="quotedblleft" g2="oacute" k="92" /> +<hkern g1="quotedblleft" g2="ocircumflex" k="92" /> +<hkern g1="quotedblleft" g2="otilde" k="92" /> +<hkern g1="quotedblleft" g2="odieresis" k="92" /> +<hkern g1="quotedblleft" g2="oslash" k="92" /> +<hkern g1="quotedblleft" g2="OE" k="46" /> +<hkern g1="quotedblleft" g2="oe" k="92" /> +<hkern g1="quotedblleft" g2="endash" k="178" /> +<hkern g1="quotedblleft" g2="emdash" k="178" /> +<hkern g1="quotedblleft" g2="quotesinglbase" k="228" /> +<hkern g1="quotedblleft" g2="quotedblbase" k="228" /> +<hkern g1="quotedblleft" g2="bullet" k="178" /> +<hkern g1="quotedblleft" g2="guilsinglleft" k="178" /> +<hkern g1="quotedblleft" g2="guilsinglright" k="178" /> +<hkern g1="quotedblright" g2="ampersand" k="182" /> +<hkern g1="quotedblright" g2="comma" k="228" /> +<hkern g1="quotedblright" g2="hyphen" k="178" /> +<hkern g1="quotedblright" g2="period" k="228" /> +<hkern g1="quotedblright" g2="slash" k="182" /> +<hkern g1="quotedblright" g2="at" k="46" /> +<hkern g1="quotedblright" g2="A" k="182" /> +<hkern g1="quotedblright" g2="C" k="46" /> +<hkern g1="quotedblright" g2="G" k="46" /> +<hkern g1="quotedblright" g2="O" k="46" /> +<hkern g1="quotedblright" g2="Q" k="46" /> +<hkern g1="quotedblright" g2="V" k="-48" /> +<hkern g1="quotedblright" g2="W" k="-48" /> +<hkern g1="quotedblright" g2="Y" k="-30" /> +<hkern g1="quotedblright" g2="backslash" k="-48" /> +<hkern g1="quotedblright" g2="a" k="64" /> +<hkern g1="quotedblright" g2="c" k="92" /> +<hkern g1="quotedblright" g2="d" k="92" /> +<hkern g1="quotedblright" g2="e" k="92" /> +<hkern g1="quotedblright" g2="o" k="92" /> +<hkern g1="quotedblright" g2="q" k="92" /> +<hkern g1="quotedblright" g2="guillemotleft" k="178" /> +<hkern g1="quotedblright" g2="uni00AD" k="178" /> +<hkern g1="quotedblright" g2="middot" k="178" /> +<hkern g1="quotedblright" g2="guillemotright" k="178" /> +<hkern g1="quotedblright" g2="Agrave" k="182" /> +<hkern g1="quotedblright" g2="Aacute" k="182" /> +<hkern g1="quotedblright" g2="Acircumflex" k="182" /> +<hkern g1="quotedblright" g2="Atilde" k="182" /> +<hkern g1="quotedblright" g2="Adieresis" k="182" /> +<hkern g1="quotedblright" g2="Aring" k="182" /> +<hkern g1="quotedblright" g2="AE" k="182" /> +<hkern g1="quotedblright" g2="Ccedilla" k="46" /> +<hkern g1="quotedblright" g2="Ograve" k="46" /> +<hkern g1="quotedblright" g2="Oacute" k="46" /> +<hkern g1="quotedblright" g2="Ocircumflex" k="46" /> +<hkern g1="quotedblright" g2="Otilde" k="46" /> +<hkern g1="quotedblright" g2="Odieresis" k="46" /> +<hkern g1="quotedblright" g2="Oslash" k="46" /> +<hkern g1="quotedblright" g2="Yacute" k="-30" /> +<hkern g1="quotedblright" g2="agrave" k="64" /> +<hkern g1="quotedblright" g2="aacute" k="64" /> +<hkern g1="quotedblright" g2="acircumflex" k="64" /> +<hkern g1="quotedblright" g2="atilde" k="64" /> +<hkern g1="quotedblright" g2="adieresis" k="64" /> +<hkern g1="quotedblright" g2="aring" k="64" /> +<hkern g1="quotedblright" g2="ae" k="64" /> +<hkern g1="quotedblright" g2="ccedilla" k="92" /> +<hkern g1="quotedblright" g2="egrave" k="92" /> +<hkern g1="quotedblright" g2="eacute" k="92" /> +<hkern g1="quotedblright" g2="ecircumflex" k="92" /> +<hkern g1="quotedblright" g2="edieresis" k="92" /> +<hkern g1="quotedblright" g2="eth" k="92" /> +<hkern g1="quotedblright" g2="ograve" k="92" /> +<hkern g1="quotedblright" g2="oacute" k="92" /> +<hkern g1="quotedblright" g2="ocircumflex" k="92" /> +<hkern g1="quotedblright" g2="otilde" k="92" /> +<hkern g1="quotedblright" g2="odieresis" k="92" /> +<hkern g1="quotedblright" g2="oslash" k="92" /> +<hkern g1="quotedblright" g2="OE" k="46" /> +<hkern g1="quotedblright" g2="oe" k="92" /> +<hkern g1="quotedblright" g2="endash" k="178" /> +<hkern g1="quotedblright" g2="emdash" k="178" /> +<hkern g1="quotedblright" g2="quotesinglbase" k="228" /> +<hkern g1="quotedblright" g2="quotedblbase" k="228" /> +<hkern g1="quotedblright" g2="bullet" k="178" /> +<hkern g1="quotedblright" g2="guilsinglleft" k="178" /> +<hkern g1="quotedblright" g2="guilsinglright" k="178" /> +<hkern g1="quotedblbase" g2="quotedbl" k="228" /> +<hkern g1="quotedblbase" g2="quotesingle" k="228" /> +<hkern g1="quotedblbase" g2="asterisk" k="228" /> +<hkern g1="quotedblbase" g2="hyphen" k="136" /> +<hkern g1="quotedblbase" g2="at" k="56" /> +<hkern g1="quotedblbase" g2="C" k="56" /> +<hkern g1="quotedblbase" g2="G" k="56" /> +<hkern g1="quotedblbase" g2="O" k="56" /> +<hkern g1="quotedblbase" g2="Q" k="56" /> +<hkern g1="quotedblbase" g2="T" k="180" /> +<hkern g1="quotedblbase" g2="V" k="180" /> +<hkern g1="quotedblbase" g2="W" k="122" /> +<hkern g1="quotedblbase" g2="Y" k="152" /> +<hkern g1="quotedblbase" g2="backslash" k="180" /> +<hkern g1="quotedblbase" g2="v" k="132" /> +<hkern g1="quotedblbase" g2="w" k="62" /> +<hkern g1="quotedblbase" g2="y" k="132" /> +<hkern g1="quotedblbase" g2="ordfeminine" k="228" /> +<hkern g1="quotedblbase" g2="guillemotleft" k="136" /> +<hkern g1="quotedblbase" g2="uni00AD" k="136" /> +<hkern g1="quotedblbase" g2="degree" k="228" /> +<hkern g1="quotedblbase" g2="middot" k="136" /> +<hkern g1="quotedblbase" g2="ordmasculine" k="228" /> +<hkern g1="quotedblbase" g2="guillemotright" k="136" /> +<hkern g1="quotedblbase" g2="Ccedilla" k="56" /> +<hkern g1="quotedblbase" g2="Ograve" k="56" /> +<hkern g1="quotedblbase" g2="Oacute" k="56" /> +<hkern g1="quotedblbase" g2="Ocircumflex" k="56" /> +<hkern g1="quotedblbase" g2="Otilde" k="56" /> +<hkern g1="quotedblbase" g2="Odieresis" k="56" /> +<hkern g1="quotedblbase" g2="Oslash" k="56" /> +<hkern g1="quotedblbase" g2="Yacute" k="152" /> +<hkern g1="quotedblbase" g2="OE" k="56" /> +<hkern g1="quotedblbase" g2="endash" k="136" /> +<hkern g1="quotedblbase" g2="emdash" k="136" /> +<hkern g1="quotedblbase" g2="quoteleft" k="228" /> +<hkern g1="quotedblbase" g2="quoteright" k="228" /> +<hkern g1="quotedblbase" g2="quotedblleft" k="228" /> +<hkern g1="quotedblbase" g2="quotedblright" k="228" /> +<hkern g1="quotedblbase" g2="bullet" k="136" /> +<hkern g1="quotedblbase" g2="guilsinglleft" k="136" /> +<hkern g1="quotedblbase" g2="guilsinglright" k="136" /> +<hkern g1="bullet" g2="quotedbl" k="178" /> +<hkern g1="bullet" g2="ampersand" k="52" /> +<hkern g1="bullet" g2="quotesingle" k="178" /> +<hkern g1="bullet" g2="asterisk" k="178" /> +<hkern g1="bullet" g2="comma" k="136" /> +<hkern g1="bullet" g2="period" k="136" /> +<hkern g1="bullet" g2="slash" k="52" /> +<hkern g1="bullet" g2="A" k="52" /> +<hkern g1="bullet" g2="T" k="180" /> +<hkern g1="bullet" g2="V" k="112" /> +<hkern g1="bullet" g2="W" k="32" /> +<hkern g1="bullet" g2="X" k="62" /> +<hkern g1="bullet" g2="Y" k="160" /> +<hkern g1="bullet" g2="Z" k="46" /> +<hkern g1="bullet" g2="backslash" k="112" /> +<hkern g1="bullet" g2="ordfeminine" k="178" /> +<hkern g1="bullet" g2="degree" k="178" /> +<hkern g1="bullet" g2="ordmasculine" k="178" /> +<hkern g1="bullet" g2="Agrave" k="52" /> +<hkern g1="bullet" g2="Aacute" k="52" /> +<hkern g1="bullet" g2="Acircumflex" k="52" /> +<hkern g1="bullet" g2="Atilde" k="52" /> +<hkern g1="bullet" g2="Adieresis" k="52" /> +<hkern g1="bullet" g2="Aring" k="52" /> +<hkern g1="bullet" g2="AE" k="52" /> +<hkern g1="bullet" g2="Yacute" k="160" /> +<hkern g1="bullet" g2="quoteleft" k="178" /> +<hkern g1="bullet" g2="quoteright" k="178" /> +<hkern g1="bullet" g2="quotesinglbase" k="136" /> +<hkern g1="bullet" g2="quotedblleft" k="178" /> +<hkern g1="bullet" g2="quotedblright" k="178" /> +<hkern g1="bullet" g2="quotedblbase" k="136" /> +<hkern g1="guilsinglleft" g2="quotedbl" k="178" /> +<hkern g1="guilsinglleft" g2="ampersand" k="52" /> +<hkern g1="guilsinglleft" g2="quotesingle" k="178" /> +<hkern g1="guilsinglleft" g2="asterisk" k="178" /> +<hkern g1="guilsinglleft" g2="comma" k="136" /> +<hkern g1="guilsinglleft" g2="period" k="136" /> +<hkern g1="guilsinglleft" g2="slash" k="52" /> +<hkern g1="guilsinglleft" g2="A" k="52" /> +<hkern g1="guilsinglleft" g2="T" k="180" /> +<hkern g1="guilsinglleft" g2="V" k="112" /> +<hkern g1="guilsinglleft" g2="W" k="32" /> +<hkern g1="guilsinglleft" g2="X" k="62" /> +<hkern g1="guilsinglleft" g2="Y" k="160" /> +<hkern g1="guilsinglleft" g2="Z" k="46" /> +<hkern g1="guilsinglleft" g2="backslash" k="112" /> +<hkern g1="guilsinglleft" g2="ordfeminine" k="178" /> +<hkern g1="guilsinglleft" g2="degree" k="178" /> +<hkern g1="guilsinglleft" g2="ordmasculine" k="178" /> +<hkern g1="guilsinglleft" g2="Agrave" k="52" /> +<hkern g1="guilsinglleft" g2="Aacute" k="52" /> +<hkern g1="guilsinglleft" g2="Acircumflex" k="52" /> +<hkern g1="guilsinglleft" g2="Atilde" k="52" /> +<hkern g1="guilsinglleft" g2="Adieresis" k="52" /> +<hkern g1="guilsinglleft" g2="Aring" k="52" /> +<hkern g1="guilsinglleft" g2="AE" k="52" /> +<hkern g1="guilsinglleft" g2="Yacute" k="160" /> +<hkern g1="guilsinglleft" g2="quoteleft" k="178" /> +<hkern g1="guilsinglleft" g2="quoteright" k="178" /> +<hkern g1="guilsinglleft" g2="quotesinglbase" k="136" /> +<hkern g1="guilsinglleft" g2="quotedblleft" k="178" /> +<hkern g1="guilsinglleft" g2="quotedblright" k="178" /> +<hkern g1="guilsinglleft" g2="quotedblbase" k="136" /> +<hkern g1="guilsinglright" g2="quotedbl" k="178" /> +<hkern g1="guilsinglright" g2="ampersand" k="52" /> +<hkern g1="guilsinglright" g2="quotesingle" k="178" /> +<hkern g1="guilsinglright" g2="asterisk" k="178" /> +<hkern g1="guilsinglright" g2="comma" k="136" /> +<hkern g1="guilsinglright" g2="period" k="136" /> +<hkern g1="guilsinglright" g2="slash" k="52" /> +<hkern g1="guilsinglright" g2="A" k="52" /> +<hkern g1="guilsinglright" g2="T" k="180" /> +<hkern g1="guilsinglright" g2="V" k="112" /> +<hkern g1="guilsinglright" g2="W" k="32" /> +<hkern g1="guilsinglright" g2="X" k="62" /> +<hkern g1="guilsinglright" g2="Y" k="160" /> +<hkern g1="guilsinglright" g2="Z" k="46" /> +<hkern g1="guilsinglright" g2="backslash" k="112" /> +<hkern g1="guilsinglright" g2="ordfeminine" k="178" /> +<hkern g1="guilsinglright" g2="degree" k="178" /> +<hkern g1="guilsinglright" g2="ordmasculine" k="178" /> +<hkern g1="guilsinglright" g2="Agrave" k="52" /> +<hkern g1="guilsinglright" g2="Aacute" k="52" /> +<hkern g1="guilsinglright" g2="Acircumflex" k="52" /> +<hkern g1="guilsinglright" g2="Atilde" k="52" /> +<hkern g1="guilsinglright" g2="Adieresis" k="52" /> +<hkern g1="guilsinglright" g2="Aring" k="52" /> +<hkern g1="guilsinglright" g2="AE" k="52" /> +<hkern g1="guilsinglright" g2="Yacute" k="160" /> +<hkern g1="guilsinglright" g2="quoteleft" k="178" /> +<hkern g1="guilsinglright" g2="quoteright" k="178" /> +<hkern g1="guilsinglright" g2="quotesinglbase" k="136" /> +<hkern g1="guilsinglright" g2="quotedblleft" k="178" /> +<hkern g1="guilsinglright" g2="quotedblright" k="178" /> +<hkern g1="guilsinglright" g2="quotedblbase" k="136" /> +</font> +</defs> +</svg> diff --git a/web/static/fonts/Lato-regular.ttf b/web/static/fonts/Lato-regular.ttf Binary files differnew file mode 100644 index 000000000..7608bc3e0 --- /dev/null +++ b/web/static/fonts/Lato-regular.ttf diff --git a/web/static/fonts/Lato-regular.woff b/web/static/fonts/Lato-regular.woff Binary files differnew file mode 100644 index 000000000..fe27504d0 --- /dev/null +++ b/web/static/fonts/Lato-regular.woff diff --git a/web/static/fonts/Lato-regular.woff2 b/web/static/fonts/Lato-regular.woff2 Binary files differnew file mode 100644 index 000000000..c83fe9554 --- /dev/null +++ b/web/static/fonts/Lato-regular.woff2 diff --git a/web/static/fonts/Lora-regular.eot b/web/static/fonts/Lora-regular.eot Binary files differnew file mode 100644 index 000000000..c209f9ac7 --- /dev/null +++ b/web/static/fonts/Lora-regular.eot diff --git a/web/static/fonts/Lora-regular.svg b/web/static/fonts/Lora-regular.svg new file mode 100644 index 000000000..c3c9968ed --- /dev/null +++ b/web/static/fonts/Lora-regular.svg @@ -0,0 +1,9002 @@ +<?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"> +<defs > +<font id="Lora" horiz-adv-x="1164" ><font-face + font-family="Lora" + units-per-em="2048" + panose-1="2 0 5 3 0 0 0 2 0 4" + ascent="1934" + descent="-551" + alphabetic="0" /> +<glyph unicode=" " glyph-name="space" horiz-adv-x="539" /> +<glyph unicode="!" glyph-name="exclam" horiz-adv-x="545" d="M391 98Q391 71 381 47T354 5T316 -23T270 -33Q246 -33 225 -23T187 5T161 47T151 98Q151 126 161 150T187 193T226 221T272 232Q297 232 319 222T357 193T382 151T391 98ZM309 471H233L153 1316Q151 +1343 157 1370T179 1418T217 1453T272 1467Q305 1467 328 1454T365 1419T385 1370T389 1316L309 471Z" /> +<glyph unicode=""" glyph-name="quotedbl" horiz-adv-x="709" d="M144 1006L127 1467H287L270 1006H144ZM437 1006L420 1467H580L563 1006H437Z" /> +<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="1700" d="M315 -33L408 365H68L101 487H436L548 961H203L236 1083H577L668 1467H803L715 1083H1150L1241 1467H1376L1288 1083H1631V1081L1600 961H1260L1153 487H1495L1463 365H1126L1036 -33H888L981 +365H552L462 -33H315ZM579 487H1009L1121 961H687L579 487Z" /> +<glyph unicode="$" glyph-name="dollar" horiz-adv-x="1083" d="M227 -27H117V406H188Q194 311 222 244T299 133T415 69T563 48Q623 48 673 67T759 119T815 200T835 303Q835 374 804 427T721 522T603 600T469 672T334 748T217 839T134 956T102 1110Q102 1142 111 +1180T139 1258T188 1334T262 1400T361 1447T489 1467V1706H600L598 1466Q656 1460 713 1441T825 1380L817 1467H919V1019H844Q839 1093 822 1160T767 1277T669 1358T518 1388Q453 1388 406 1367T329 1313T283 1236T268 1147Q268 1080 300 1029T384 937T502 859T638 +787T773 710T892 618T976 500T1008 348Q1008 276 984 211T909 93T784 8T609 -33L608 -313H502L500 -33Q464 -32 426 -25T351 -5T280 22T217 56L227 -27Z" /> +<glyph unicode="%" glyph-name="percent" horiz-adv-x="1782" d="M250 1103Q250 1054 258 996T289 886T351 801T451 767Q507 767 544 794T603 864T635 957T645 1056Q645 1107 636 1166T604 1276T543 1360T447 1394Q389 1394 351 1363T291 1288T259 1193T250 1103ZM1500 +1385L338 -35L251 37L1407 1467L1500 1385ZM74 1070Q74 1142 98 1212T169 1338T286 1430T445 1467Q540 1469 611 1437T728 1351T798 1228T821 1089Q821 1010 792 937T711 809T592 720T445 687Q353 687 284 719T168 804T98 927T74 1070ZM1534 331Q1534 364 1531 +401T1518 476T1494 548T1457 609T1404 651T1333 667Q1277 667 1240 640T1181 571T1149 478T1139 379Q1139 327 1149 268T1183 159T1246 75T1342 41Q1400 41 1437 71T1495 147T1525 242T1534 331ZM1710 364Q1710 293 1686 223T1615 96T1499 4T1340 -33Q1245 -35 +1174 -3T1055 84T985 206T961 346Q961 425 991 497T1072 625T1193 714T1340 747Q1431 747 1500 715T1616 630T1686 507T1710 364Z" /> +<glyph unicode="&" glyph-name="ampersand" horiz-adv-x="1423" d="M1121 547Q1123 506 1114 447T1079 322Q1102 301 1127 278T1182 229Q1275 146 1341 107T1440 68V0H1250Q1230 0 1166 38T995 169Q962 127 920 90T823 26T702 -17T554 -33Q465 -33 379 -11T225 +59T116 183T74 369Q74 435 96 493T161 603T262 696T396 771Q355 822 325 868T276 960T249 1051T240 1145Q241 1218 269 1277T348 1379T467 1444T619 1467Q697 1467 760 1445T867 1384T936 1293T961 1180Q961 1123 943 1070T885 967T781 868T624 772Q663 730 705 +687T789 600Q810 577 831 556T878 510T933 456T1004 390Q1014 426 1018 459T1023 520Q1023 555 1016 590T992 655T944 704T869 725V793H1227V709L1057 716Q1089 688 1104 646T1121 547ZM871 283Q732 418 627 521T448 710Q399 681 367 641T315 557T287 473T279 400Q279 +316 305 255T373 153T469 93T580 70Q644 67 697 78T793 111T869 163T929 228Q900 253 871 283ZM412 1161Q412 1117 424 1074T459 988T512 903T579 822Q694 897 749 990T804 1173Q804 1222 791 1264T754 1336T693 1383T609 1400Q567 1400 531 1385T468 1339T427 +1264T412 1161Z" /> +<glyph unicode="'" glyph-name="quotesingle" horiz-adv-x="426" d="M146 1006L127 1467H299L281 1006H146Z" /> +<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="625" d="M280 489Q280 200 355 -49T589 -508L538 -555Q487 -508 433 -445T328 -303T230 -134T149 57T94 266T73 489Q73 603 93 713T148 926T229 1123T327 1297T433 1444T538 1556L589 1509Q430 1297 355 +1039T280 489Z" /> +<glyph unicode=")" glyph-name="parenright" horiz-adv-x="625" d="M346 512Q346 801 271 1050T37 1509L88 1556Q139 1509 193 1446T298 1304T396 1135T477 944T532 735T553 512Q553 398 533 288T478 75T397 -122T299 -296T193 -443T88 -555L37 -508Q196 -296 +271 -38T346 512Z" /> +<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="1065" d="M559 1041Q613 1075 678 1107T806 1170Q828 1181 854 1188T904 1194T947 1182T974 1144Q979 1129 979 1116Q979 1104 974 1091T951 1064T908 1040T858 1025Q825 1019 789 1012T717 1000T646 990T579 +984Q629 944 680 893T780 791Q799 771 812 749T831 709T837 678Q837 663 831 648T806 619Q784 603 763 604T724 618T689 651T659 693Q643 723 625 756T590 822T558 887T532 949Q520 920 505 888T473 822T439 756T405 693Q393 672 377 652T342 619T302 605T257 619Q239 +634 234 647T228 678Q228 690 233 708T252 750T282 791Q330 842 381 894T483 984Q451 985 416 989T344 999T271 1012T202 1025Q178 1030 153 1039T110 1062T86 1091T80 1117Q80 1130 85 1144Q94 1171 113 1182T155 1194T204 1188T253 1170Q316 1141 382 1109T501 +1041Q483 1101 473 1175T454 1318Q451 1342 452 1368T461 1417T486 1453T532 1467Q560 1467 576 1453T600 1417T608 1369T606 1318Q598 1249 588 1175T559 1041Z" /> +<glyph unicode="+" glyph-name="plus" horiz-adv-x="1055" d="M72 711L461 709V1112H593V709L984 707V592L593 590V168H461V589L72 588V711Z" /> +<glyph unicode="," glyph-name="comma" horiz-adv-x="518" d="M186 -325Q203 -304 222 -268T255 -188T278 -96T280 0Q251 -13 225 -11T178 4T147 39T135 88Q135 145 168 176T248 207Q283 207 310 193T355 153T383 94T393 21Q393 -18 382 -70T351 -177T303 -281T241 +-366L186 -325Z" /> +<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="1001" d="M137 727H864V592L137 584V727Z" /> +<glyph unicode="." glyph-name="period" horiz-adv-x="504" d="M370 98Q370 71 360 47T334 5T296 -23T250 -33Q226 -33 205 -23T167 5T141 47T131 98Q131 126 141 150T167 193T206 221T252 232Q277 232 298 222T336 193T361 151T370 98Z" /> +<glyph unicode="/" glyph-name="slash" horiz-adv-x="1413" d="M1372 1473L162 -556L43 -481L1240 1556L1372 1473Z" /> +<glyph unicode="0" glyph-name="zero" horiz-adv-x="1272" d="M326 753Q326 682 331 602T351 444T388 293T448 167T533 80T649 47Q707 47 752 73T830 143T886 249T922 380T942 526T948 677Q948 760 942 845T922 1009T885 1157T828 1278T748 1359T641 1389Q582 +1389 536 1363T454 1292T395 1186T356 1054T333 906T326 753ZM115 711Q115 797 128 886T168 1060T237 1218T339 1347T474 1435T646 1467Q745 1467 821 1436T955 1350T1051 1222T1114 1067T1148 895T1159 721Q1159 636 1147 547T1109 375T1041 217T942 87T808 -1T637 +-33Q533 -33 454 -2T316 84T220 210T158 366T125 537T115 711Z" /> +<glyph unicode="1" glyph-name="one" horiz-adv-x="745" d="M508 223Q508 183 508 147T502 82L674 90V0H152V68Q205 70 239 87T294 134T322 206T330 301L328 1268H324L78 1109L37 1169L437 1467H506L508 223Z" /> +<glyph unicode="2" glyph-name="two" horiz-adv-x="1100" d="M260 1242Q280 1220 288 1197T297 1150Q297 1137 292 1120T275 1089T244 1064T197 1055Q151 1057 127 1089T103 1168Q103 1211 130 1263T211 1361T345 1436T531 1467Q612 1467 689 1448T827 1386T924 +1271T961 1095Q961 1043 939 984T869 857T745 712T559 544Q489 487 431 432T330 328T261 235T227 155L590 145Q665 143 727 143T835 154T906 196T932 287H994L981 0H94Q94 108 128 192T219 347T348 485T498 624Q631 751 690 860T750 1070Q750 1127 739 1183T698 +1285T621 1359T498 1387Q456 1387 418 1376T348 1345T294 1299T260 1242Z" /> +<glyph unicode="3" glyph-name="three" horiz-adv-x="1141" d="M275 1239Q293 1219 300 1198T308 1155Q308 1143 303 1127T287 1098T258 1075T214 1066Q170 1068 148 1098T125 1172Q125 1214 150 1265T228 1362T358 1437T543 1467Q625 1467 699 1448T831 1386T922 +1276T956 1111Q956 1062 939 1014T883 920T780 837T621 769V767Q718 757 795 725T927 643T1010 525T1039 379Q1039 275 996 198T882 69T717 -7T523 -33Q412 -33 331 -7T196 61T116 151T90 246Q90 292 114 324T184 359Q212 360 230 351T260 328T275 297T280 266Q280 +245 274 225T258 184Q268 149 292 125T351 85T425 62T507 54Q580 54 639 74T741 133T805 231T828 365Q828 432 814 496T759 609T647 687T464 714Q430 714 390 711V803H474Q555 803 609 832T696 906T743 1000T757 1093Q757 1156 746 1210T706 1303T632 1364T515 +1387Q469 1387 429 1374T357 1339T304 1291T275 1239Z" /> +<glyph unicode="4" glyph-name="four" horiz-adv-x="1110" d="M834 223Q834 181 833 145T826 78L984 84V0H468V68H484Q536 72 568 91T618 144T642 224T648 326V395H25V496L765 1467H834V518L1041 516V395H834V223ZM160 528L648 522V1175H644L160 528Z" /> +<glyph unicode="5" glyph-name="five" horiz-adv-x="1114" d="M274 187Q280 149 307 122T371 77T450 53T528 47Q603 50 656 80T744 158T795 267T811 393Q811 431 808 476T793 566T761 652T704 726T618 778T494 797Q468 797 432 792T359 778T285 756T223 725L166 +778L161 1434H693Q751 1434 790 1442T852 1466T886 1507T896 1567H953L941 1296L255 1282L256 832Q306 852 384 870T553 889Q679 889 768 849T914 743T997 595T1024 430Q1024 316 983 230T872 85T711 -3T520 -33Q422 -33 345 -7T215 61T134 151T106 246Q106 292 +130 324T200 359Q228 360 246 351T276 328T291 297T296 266Q296 246 290 225T274 187Z" /> +<glyph unicode="6" glyph-name="six" horiz-adv-x="1184" d="M608 803Q560 803 513 785T426 735T355 662T309 577Q314 480 331 385T383 215T472 94T608 47Q680 47 731 75T815 151T862 261T877 391Q877 429 873 474T859 566T829 654T780 730T708 783T608 803ZM879 +1271Q873 1289 857 1310T814 1349T753 1378T676 1390Q598 1390 541 1354T443 1260T377 1129T336 982T315 840T307 722Q332 756 366 787T444 843T539 881T651 895Q774 895 857 853T990 743T1062 595T1084 436Q1084 340 1048 255T947 106T795 5T604 -33Q467 -33 374 +16T223 158T140 380T115 674Q115 735 124 817T156 988T218 1162T320 1315T468 1425T672 1467Q763 1467 831 1441T944 1375T1011 1291T1034 1207Q1034 1163 1013 1133T947 1100Q921 1099 903 1107T874 1128T858 1156T853 1185Q853 1205 859 1228T879 1271Z" /> +<glyph unicode="7" glyph-name="seven" horiz-adv-x="944" d="M400 -33Q359 -30 344 -5T328 58Q328 91 342 141T378 249T423 365T467 475Q495 547 533 644T616 850T709 1073T809 1293L268 1290Q185 1289 140 1252T94 1130H45V1434H903V1294Q853 1192 814 1097T741 +909T678 722T622 529T569 321T512 93Q506 68 497 45T474 4T443 -24T400 -33Z" /> +<glyph unicode="8" glyph-name="eight" horiz-adv-x="1151" d="M984 1136Q984 1075 962 1022T902 924T814 843T707 778Q775 738 837 689T946 585T1021 467T1049 339Q1049 242 1009 172T902 57T748 -11T565 -33Q493 -33 415 -16T272 40T164 145T121 307Q121 376 +147 436T216 549T316 645T432 728Q354 774 300 820T213 913T164 1004T149 1095Q149 1192 188 1262T289 1377T428 1445T584 1467Q662 1467 734 1445T861 1381T950 1278T984 1136ZM509 690Q453 649 413 605T347 515T308 426T293 344Q289 279 307 225T362 132T451 +72T569 49Q702 47 775 114T848 302Q848 355 831 407T774 509T669 604T509 690ZM340 1140Q340 1084 362 1036T424 946T518 873T634 819Q726 882 774 958T824 1113Q826 1245 762 1315T588 1387Q527 1388 481 1367T404 1312T356 1233T340 1140Z" /> +<glyph unicode="9" glyph-name="nine" horiz-adv-x="1184" d="M569 629Q617 629 664 647T752 697T823 768T868 854Q863 950 847 1045T796 1217T706 1340T567 1388Q501 1388 451 1359T368 1281T318 1169T301 1038Q301 1000 305 955T319 864T349 777T398 701T470 +649T569 629ZM308 155Q315 133 330 113T370 78T431 54T516 45Q594 45 650 78T746 165T810 288T848 432T866 577T870 708Q844 674 810 643T733 589T638 551T526 537Q444 537 381 556T270 609T190 688T137 783T107 887T98 993Q98 1093 132 1179T229 1330T381 1430T582 +1467Q726 1467 819 1411T967 1257T1042 1024T1063 735Q1063 660 1056 575T1028 404T970 240T873 101T728 5T526 -33Q425 -34 355 -10T240 52T175 134T154 220Q154 264 176 294T243 327Q268 328 285 320T314 298T330 268T335 239Q335 197 308 155Z" /> +<glyph unicode=":" glyph-name="colon" horiz-adv-x="512" d="M376 98Q376 71 366 47T340 5T302 -23T256 -33Q232 -33 211 -23T173 5T147 47T137 98Q137 126 147 150T173 193T212 221T258 232Q283 232 304 222T342 193T367 151T376 98ZM376 923Q376 896 366 872T340 +830T302 802T256 792Q232 792 211 802T173 830T147 872T137 923Q137 951 147 975T173 1018T212 1046T258 1057Q283 1057 304 1047T342 1018T367 976T376 923Z" /> +<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="539" d="M194 -325Q211 -304 230 -268T263 -188T286 -96T288 0Q259 -13 233 -11T186 4T155 39T143 88Q143 145 176 176T256 207Q291 207 318 193T363 153T391 94T401 21Q401 -18 390 -70T359 -177T311 +-281T249 -366L194 -325ZM382 923Q382 896 372 872T346 830T308 802T262 792Q238 792 217 802T179 830T153 872T143 923Q143 951 153 975T179 1018T218 1046T264 1057Q289 1057 310 1047T348 1018T373 976T382 923Z" /> +<glyph unicode="<" glyph-name="less" horiz-adv-x="1110" d="M70 709L982 1114V987L209 647L982 305V174L70 571V709Z" /> +<glyph unicode="=" glyph-name="equal" horiz-adv-x="1212" d="M150 510L1062 506V387L150 383V510ZM150 895L1062 891V772L150 768V895Z" /> +<glyph unicode=">" glyph-name="greater" horiz-adv-x="1108" d="M1039 579L127 174V301L900 641L127 983V1114L1039 717V579Z" /> +<glyph unicode="?" glyph-name="question" horiz-adv-x="971" d="M226 1242Q237 1224 243 1204T249 1162Q249 1149 244 1133T227 1104T198 1082T155 1074Q111 1076 90 1106T68 1181Q68 1226 96 1276T178 1369T308 1439T482 1467Q600 1467 681 1435T810 1352T878 +1237T894 1109Q890 1040 855 981T768 871T659 776T552 692T470 617T437 547Q437 535 441 523T456 501T482 485T523 479Q537 479 558 482T599 494L623 422Q591 403 546 394T462 385Q432 385 403 392T350 416T313 458T298 522Q298 568 327 608T400 688T495 770T592 +863T667 975T701 1115Q702 1170 691 1219T650 1306T572 1365T451 1387Q407 1387 368 1374T298 1339T249 1292T226 1242ZM585 88Q585 63 577 41T555 3T520 -23T476 -33Q455 -33 435 -25T400 -1T375 37T365 88Q365 113 374 135T399 173T435 199T476 209Q499 209 519 +200T553 174T576 135T585 88Z" /> +<glyph unicode="@" glyph-name="at" horiz-adv-x="1630" d="M1005 907Q957 926 878 926Q806 926 752 882T663 767T609 612T591 446Q591 343 619 282T700 221Q737 221 773 252T844 335T907 457T957 602T991 756T1005 907ZM1544 651Q1544 544 1522 462T1463 321T1381 +223T1277 158T1149 132Q1116 132 1076 144T1006 187T969 256T960 332Q960 364 964 401T980 498H976Q938 381 898 311T816 204T737 155T665 143Q622 143 583 159T513 210T466 299T448 428Q448 540 479 641T571 819T722 941T929 987Q953 987 981 986T1038 981T1096 +973T1150 961Q1142 891 1133 820T1115 680T1100 551T1090 449T1086 369Q1086 327 1094 291T1116 236T1150 209T1185 202Q1223 202 1256 222T1322 288T1376 412T1399 586Q1399 770 1355 889T1237 1080T1068 1185T846 1219Q795 1220 718 1205T556 1139T402 997T297 +787T260 539Q260 428 282 338T345 176T442 53T564 -34T708 -87T853 -106Q943 -106 985 -101T1094 -77T1223 -19T1339 84L1388 33Q1269 -94 1130 -144T856 -195Q714 -195 617 -171T437 -100T290 14T186 162T123 335T102 526Q102 612 121 701T178 874T274 1033T412 +1166T581 1256T740 1296T856 1304Q958 1304 1048 1284T1219 1219T1361 1110T1462 972T1523 815T1544 651Z" /> +<glyph unicode="A" glyph-name="A" horiz-adv-x="1282" d="M262 223Q254 199 248 180T236 145T224 114T211 82L371 90V0H-12V68Q34 68 63 86T112 139T148 220T186 324L608 1473H657L1114 307Q1123 286 1132 257T1150 196T1163 135T1167 82L1307 90V0H838V68Q895 +69 922 89T956 138T956 200T938 262L866 454L333 442Q311 379 294 327T262 223ZM510 942Q463 810 428 710T364 530H838L692 922L600 1174H596L510 942Z" /> +<glyph unicode="B" glyph-name="B" horiz-adv-x="1274" d="M254 1190Q254 1246 255 1286T261 1352L113 1343V1434Q226 1436 339 1437T576 1438Q695 1438 789 1417T947 1353T1045 1247T1078 1087Q1077 1037 1056 987T993 894T888 818T740 770V766Q853 766 938 739T1080 +663T1165 547T1194 401Q1194 307 1158 233T1057 107T904 28T711 0H113V68Q171 69 200 88T241 142T253 224T254 330V1190ZM586 1364Q536 1364 506 1354T460 1321T438 1259T433 1165V784L582 788Q670 790 729 817T825 887T876 983T891 1098Q891 1176 861 1232T787 +1315T690 1353T586 1364ZM426 82Q450 80 483 79T548 78T607 78T643 78Q722 78 787 98T898 157T970 254T996 389Q996 483 967 545T890 644T777 696T643 711Q582 711 532 710T433 705V242Q433 186 432 147T426 82Z" /> +<glyph unicode="C" glyph-name="C" horiz-adv-x="1432" d="M819 1383Q710 1383 615 1337T448 1205T336 997T295 725Q295 628 314 543T370 385T456 255T567 157T698 96T844 74Q911 74 977 89T1105 134T1221 208T1317 309L1370 266Q1304 175 1229 117T1077 26T927 +-20T790 -33Q636 -33 508 23T288 178T145 408T94 694Q94 790 113 885T172 1065T271 1224T409 1352T587 1436T805 1467Q921 1467 1022 1436T1218 1342L1208 1452H1319V977H1245Q1234 1073 1200 1148T1111 1276T982 1355T819 1383Z" /> +<glyph unicode="D" glyph-name="D" horiz-adv-x="1526" d="M433 242Q433 186 432 147T426 82Q467 80 504 79T570 78T620 78T646 78Q778 78 886 127T1070 262T1189 467T1231 723Q1231 868 1192 985T1071 1186T867 1315T574 1360Q516 1360 487 1342T446 1292T434 +1214T433 1114V242ZM596 1436Q782 1436 935 1393T1199 1261T1371 1036T1432 715Q1432 621 1410 532T1344 363T1235 217T1083 102T888 27T652 0H113V68Q171 70 200 89T241 141T253 219T254 319V1204Q254 1246 255 1283T261 1352L113 1343V1434L596 1436Z" /> +<glyph unicode="E" glyph-name="E" horiz-adv-x="1274" d="M433 236Q433 179 432 141T426 76L818 82Q885 83 939 98T1031 150T1091 247T1112 399H1182L1170 0H113V68Q162 69 190 83T233 123T250 182T254 259V319V1204Q254 1246 255 1283T261 1352L113 1343V1434H1098L1108 +1075H1041Q1041 1163 1021 1219T965 1307T881 1350T777 1362L588 1359Q531 1356 500 1341T453 1297T436 1222T433 1114V784H817L802 961H893V530H826Q826 590 816 625T783 680T726 706T642 712Q628 712 613 712T433 705V236Z" /> +<glyph unicode="F" glyph-name="F" horiz-adv-x="1122" d="M433 244Q433 188 432 148T426 82L635 90V0H113V68Q171 70 200 89T241 141T253 219T254 319V1204Q254 1246 255 1283T261 1352L113 1343V1434H1063L1074 1075H1006Q1006 1166 984 1222T923 1310T833 1352T723 +1362L574 1358Q517 1356 488 1337T446 1284T434 1205T433 1106V752H789L774 929H865V498H798Q798 558 788 593T755 648T698 674T614 680Q600 680 585 680T433 673V244Z" /> +<glyph unicode="G" glyph-name="G" horiz-adv-x="1559" d="M1368 74H1312Q1278 74 1222 62T1091 21Q1059 9 1021 -1T944 -18T865 -29T792 -33Q638 -33 510 16T290 158T147 384T96 686Q96 782 115 877T174 1059T273 1220T411 1350T590 1436T809 1467Q864 1467 921 +1459T1033 1437T1139 1401T1233 1354L1224 1452H1337V983H1263Q1256 1079 1220 1154T1126 1280T990 1358T823 1385Q714 1385 618 1337T451 1202T339 996T297 733Q297 588 337 466T449 255T623 116T845 66Q886 66 931 72T1021 90T1111 121T1196 168V616L1052 608V698H1515V631Q1477 +631 1451 617T1409 580T1385 530T1373 475T1369 425T1368 387V74Z" /> +<glyph unicode="H" glyph-name="H" horiz-adv-x="1597" d="M1166 693L433 684V244Q433 188 432 148T426 82L574 90V0H113V68Q171 70 200 89T241 141T253 219T254 319V1204Q254 1246 255 1283T261 1352L113 1343V1434H574V1366Q516 1364 487 1345T446 1292T434 +1214T433 1114V774H1166V1204Q1166 1290 1172 1352L1024 1343V1434H1485V1366Q1428 1364 1399 1345T1357 1292T1345 1214T1344 1114V244Q1344 134 1338 82L1485 90V0H1024V68Q1082 70 1111 89T1153 141T1165 219T1166 319V693Z" /> +<glyph unicode="I" glyph-name="I" horiz-adv-x="686" d="M254 1204Q254 1246 255 1283T261 1352L113 1343V1434H574V1366Q516 1364 487 1345T446 1292T434 1214T433 1114V244Q433 188 432 148T426 82L574 90V0H113V68Q171 70 200 89T241 141T253 219T254 319V1204Z" /> +<glyph unicode="J" glyph-name="J" horiz-adv-x="764" d="M165 83Q171 74 181 68T204 57T227 52T246 51Q276 52 299 65T337 106T359 178T367 285V1352L158 1343V1434H703V1366Q652 1366 621 1351T573 1308T551 1243T545 1163V500Q545 356 526 255T467 89T364 -4T212 +-33Q169 -33 130 -23T61 6T14 52T-4 113Q-4 133 1 151T18 185T42 207T66 217T92 220Q110 220 127 212T154 191T170 161T175 129Q175 119 173 107T165 83Z" /> +<glyph unicode="K" glyph-name="K" horiz-adv-x="1364" d="M254 1204Q254 1246 255 1283T261 1352L113 1343V1434H574V1366Q516 1364 487 1345T446 1292T434 1214T433 1114V778H586L842 1182Q855 1202 871 1225T906 1271T946 1315T988 1354L863 1350V1434H1303V1366Q1238 +1361 1185 1349T1084 1307T989 1226T889 1090L689 770Q718 752 741 732T784 689T822 644T859 596L1088 291Q1146 213 1188 169T1264 102T1327 74T1389 68V0H1139Q1124 0 1101 16T1051 61T993 125T932 201L687 532Q648 583 609 629T533 698L433 696V244Q433 188 +432 148T426 82L574 90V0H113V68Q171 70 200 89T241 141T253 219T254 319V1204Z" /> +<glyph unicode="L" glyph-name="L" horiz-adv-x="1184" d="M433 236Q433 180 432 141T426 76L809 82Q873 83 922 102T1005 163T1055 268T1072 424H1141L1129 0H113V68Q171 70 200 89T241 141T253 219T254 319V1204Q254 1246 255 1283T261 1352L113 1343V1434H574V1366Q516 +1364 487 1345T446 1292T434 1214T433 1114V236Z" /> +<glyph unicode="M" glyph-name="M" horiz-adv-x="1880" d="M129 1434H442Q513 1273 577 1124T704 831T827 543T954 250H958Q970 278 983 312T1011 382T1038 452T1063 514Q1152 738 1249 965T1442 1434H1745V1366Q1706 1367 1678 1356T1632 1318T1607 1249T1603 +1143L1657 211Q1659 175 1660 143T1661 83L1810 90V0H1351V68Q1399 69 1427 85T1469 133T1487 208T1487 311L1434 1184Q1428 1169 1421 1153T1407 1118L946 -20H885Q818 130 750 280T616 582T485 888T360 1202L358 1112Q356 1063 355 1000T351 864T346 714T342 +557T338 402T335 256Q334 210 333 165T327 82L481 90V0H90V68Q138 69 165 84T206 125T225 184T231 256L276 1351L129 1346V1434Z" /> +<glyph unicode="N" glyph-name="N" horiz-adv-x="1561" d="M1332 -33H1233L344 1162H341L348 285Q348 232 348 182T344 82L492 90V0H117V68Q164 68 191 84T231 125T248 177T252 229L254 1352L117 1343V1434H361L1233 267H1235L1237 1204Q1237 1290 1243 1352L1096 +1343V1434H1473V1366Q1415 1364 1387 1345T1347 1292T1335 1214T1336 1114L1332 -33Z" /> +<glyph unicode="O" glyph-name="O" horiz-adv-x="1626" d="M295 754Q295 678 309 597T351 437T423 289T526 166T660 82T827 51Q911 51 981 76T1107 146T1205 251T1275 381T1317 530T1332 678Q1332 752 1316 842T1269 1010T1193 1157T1089 1276T958 1356T800 1385Q674 +1385 579 1329T421 1183T327 981T295 754ZM94 717Q94 803 113 892T171 1064T269 1221T407 1349T586 1435T807 1467Q932 1467 1034 1435T1218 1349T1358 1221T1457 1064T1516 891T1536 717Q1536 632 1517 544T1459 372T1361 215T1223 86T1044 -1T823 -33Q693 -33 +589 -2T403 82T264 208T168 364T112 537T94 717Z" /> +<glyph unicode="P" glyph-name="P" horiz-adv-x="1240" d="M506 539Q496 539 475 539T433 540V244Q433 188 432 148T426 82L615 92V0H113V68Q171 70 200 89T241 141T253 219T254 319V1204Q254 1246 255 1283T261 1352L113 1343V1434Q221 1436 335 1436T570 1437Q868 +1437 1023 1337Q1189 1228 1189 1018Q1189 975 1180 923T1141 816T1062 710T935 622T752 562T506 539ZM433 625Q471 620 499 619T566 618Q653 618 730 644T865 719T956 840T990 1001Q990 1098 959 1166T872 1276T738 1338T566 1357Q511 1357 484 1340T445 1290T433 +1214T433 1114V625Z" /> +<glyph unicode="Q" glyph-name="Q" horiz-adv-x="1630" d="M94 717Q94 803 113 892T171 1064T269 1221T407 1349T586 1435T807 1467Q932 1467 1034 1435T1218 1349T1358 1221T1457 1064T1516 891T1536 717Q1536 632 1517 544T1459 372T1361 215T1223 86T1043 -1Q1017 +-9 990 -15Q995 -16 999 -16Q1035 -17 1067 -22T1133 -40T1202 -79T1282 -145Q1353 -211 1402 -256T1487 -328T1551 -367T1609 -379V-446H1544Q1488 -446 1445 -444T1363 -432T1285 -398T1198 -332Q1129 -270 1078 -216T984 -121T899 -57T809 -33Q687 -31 588 -2Q484 +29 403 82T264 208T168 364T112 537T94 717ZM295 754Q295 678 309 597T351 437T423 289T526 166T660 82T827 51Q911 51 981 76T1107 146T1205 251T1275 381T1317 530T1332 678Q1332 752 1316 842T1269 1010T1193 1157T1089 1276T958 1356T800 1385Q674 1385 579 +1329T421 1183T327 981T295 754Z" /> +<glyph unicode="R" glyph-name="R" horiz-adv-x="1286" d="M572 640Q538 638 503 638T433 642V244Q433 188 432 148T426 82L574 90V0H113V68Q171 70 200 89T241 141T253 219T254 319V1204Q254 1246 255 1283T261 1352L113 1343V1434Q229 1436 346 1437T582 1436Q730 +1433 835 1408T1008 1335T1107 1221T1139 1069Q1139 1009 1123 947T1064 828T947 728T755 660Q795 631 827 586T897 481L1037 262Q1063 221 1087 186T1139 124T1203 83T1287 68V0H1029Q999 26 975 52T930 106T888 163T846 227L709 446Q695 468 680 493T648 545T612 +595T572 640ZM433 720Q465 718 494 717T560 717Q644 720 713 738T833 796T912 896T940 1047Q940 1201 852 1279T574 1358Q516 1358 487 1341T446 1291T434 1214T433 1114V720Z" /> +<glyph unicode="S" glyph-name="S" horiz-adv-x="1161" d="M237 -16H131L119 420H198Q204 329 237 261T323 146T448 77T600 53Q660 53 713 69T807 118T871 199T895 309Q895 384 862 438T775 533T651 608T509 675T368 746T244 833T156 949T123 1106Q123 1141 131 +1181T157 1261T206 1338T283 1404T392 1450T538 1467Q578 1467 623 1462T714 1445T807 1413T895 1361L887 1449H991V1000H917Q912 1074 889 1143T820 1266T709 1352T553 1385Q489 1385 440 1366T358 1313T308 1237T291 1145Q291 1075 324 1024T413 932T538 859T681 +793T824 721T949 632T1037 514T1071 356Q1071 271 1039 200T946 77T796 -4T592 -33Q546 -33 498 -27T402 -7T310 26T227 72L237 -16Z" /> +<glyph unicode="T" glyph-name="T" horiz-adv-x="1311" d="M1186 1001Q1184 1092 1172 1159T1130 1271T1049 1338T919 1360L746 1359L743 244Q743 134 737 82L907 90V0H426V68Q483 70 512 90T553 143T565 222T565 319L568 1357L356 1356Q291 1356 247 1335T174 +1269T134 1159T121 1001H45L57 1434H1251L1263 1001H1186Z" /> +<glyph unicode="U" glyph-name="U" horiz-adv-x="1540" d="M1332 639Q1331 505 1303 384T1210 170T1040 22T781 -33Q617 -33 506 10T328 142T231 370T202 698V1114Q202 1141 202 1174T204 1240T207 1302T210 1352L63 1346V1434H523V1366Q471 1366 443 1349T401 +1306T385 1253T382 1204V688Q382 612 388 538T410 396T456 272T533 173T647 108T806 84Q917 84 996 124T1127 236T1203 409T1230 629L1238 1204Q1238 1290 1244 1352L1097 1343V1434H1478V1366Q1420 1364 1391 1345T1349 1292T1337 1214T1336 1114L1332 639Z" /> +<glyph unicode="V" glyph-name="V" horiz-adv-x="1337" d="M-8 1434H467V1366L465 1364Q414 1361 384 1345T342 1301T336 1234T363 1143Q387 1082 410 1025T456 909T504 791T557 666Q582 608 606 552T652 445T692 349T723 270H727Q1000 1040 1046 1172T1116 1352L959 +1343V1434H1374V1366Q1329 1364 1295 1353T1235 1319T1188 1258T1133 1123T1047 884T952 623T850 345T717 -20H660L195 1069Q172 1121 157 1162T132 1237T116 1298T107 1348L-8 1343V1434Z" /> +<glyph unicode="W" glyph-name="W" horiz-adv-x="2038" d="M14 1434H511V1366Q451 1363 417 1351T368 1313T357 1246T378 1143Q435 956 521 706T623 413T653 322H657Q667 356 679 395T702 471T771 685T855 946T907 1105T1013 1438H1079Q1179 1122 1205 1046T1327 +682T1453 297H1458Q1670 939 1717 1086T1780 1274T1816 1350L1652 1343V1434H2068V1366Q2016 1360 1982 1348T1922 1303T1871 1214T1694 701T1445 -20H1384L1001 1075L640 -20H581Q198 1123 184 1164T159 1239T141 1298T130 1348L14 1343V1434Z" /> +<glyph unicode="X" glyph-name="X" horiz-adv-x="1329" d="M18 1434H548V1366L458 1362Q402 1359 382 1344T361 1305T377 1253T411 1196Q484 1084 555 985T666 830Q940 1224 963 1255T1007 1312T1044 1352L872 1343V1434H1275V1366Q1226 1359 1182 1331T1098 1263T1023 +1175T723 753L1083 276L1224 86L1343 90V0H841V68Q900 65 928 78T962 114T957 164T927 217L627 615Q386 258 347 199T257 80L427 90V0H24V68Q73 78 110 98T179 149T241 221T306 313L571 694Q482 820 373 973T235 1168T187 1241T155 1296T132 1348L18 1343V1434Z" +/> +<glyph unicode="Y" glyph-name="Y" horiz-adv-x="1298" d="M581 553L226 1116Q173 1198 148 1253T115 1348L-12 1343V1434H516V1366Q445 1366 408 1350T361 1304T363 1233T408 1143Q446 1082 480 1028T548 920T618 812T699 696H703Q932 1132 976 1212T1034 1313T1063 +1350L901 1343V1434H1319V1366Q1268 1363 1228 1346T1153 1297T1086 1216T759 614Q758 515 758 380T758 244Q758 134 752 82L922 90V0H441V68Q498 70 527 90T568 143T580 222T580 319L581 553Z" /> +<glyph unicode="Z" glyph-name="Z" horiz-adv-x="1249" d="M88 94Q146 175 219 278T382 512T580 808T815 1174Q844 1220 876 1266T946 1358L424 1350Q363 1347 318 1327T243 1265T198 1160T183 1010H113L125 1434H1141V1362L406 246Q383 213 365 188T330 143T298 +107T266 76L764 84Q831 85 889 105T990 166T1057 271T1082 420H1151L1139 0H88V94Z" /> +<glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="735" d="M164 1546H707V1423L317 1417L308 -393L711 -399V-522H162L164 1546Z" /> +<glyph unicode="\" glyph-name="backslash" horiz-adv-x="1413" d="M43 1473L1253 -556L1372 -481L175 1556L43 1473Z" /> +<glyph unicode="]" glyph-name="bracketright" horiz-adv-x="735" d="M572 -522H29V-399L419 -393L428 1417L25 1423V1546H574L572 -522Z" /> +<glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="1686" d="M936 1467L1563 894H1382L837 1394L291 904H123L754 1467H936Z" /> +<glyph unicode="_" glyph-name="underscore" horiz-adv-x="1493" d="M117 -102L1376 -111V-227H117V-102Z" /> +<glyph unicode="`" glyph-name="grave" horiz-adv-x="516" d="M137 1405Q111 1432 102 1455Q99 1462 96 1472T93 1493Q93 1506 96 1517T110 1541T135 1560T167 1567T206 1556T252 1511L424 1235L367 1188L137 1405Z" /> +<glyph unicode="a" glyph-name="a" horiz-adv-x="1057" d="M694 501Q647 499 597 493T498 473T406 438T331 388T281 321T265 235Q266 197 279 169T314 122T364 94T424 84Q465 84 501 92T569 115T632 153T694 204V501ZM132 811Q132 862 162 907T246 985T374 1038T537 +1057Q709 1057 790 966T871 677L869 217Q869 185 868 153T861 78L1006 86V0H713Q707 35 704 61T699 116Q630 47 549 7T376 -33Q299 -33 242 -15T146 37T89 114T70 210Q70 273 97 325T171 417T280 487T411 536T553 563T695 571V699Q695 752 689 802T663 893T599 +958T498 982Q465 982 435 977T376 958T324 924T285 874Q300 857 305 837T311 797Q311 785 306 770T291 741T264 719T219 710Q179 710 156 739T132 811Z" /> +<glyph unicode="b" glyph-name="b" horiz-adv-x="1192" d="M155 1280Q155 1312 155 1342T161 1413L16 1405V1491Q83 1491 127 1495T200 1508T244 1525T272 1546H331V935Q388 992 466 1024T642 1057Q740 1057 824 1021T971 917T1069 753T1105 536Q1105 405 1061 +300T943 121T773 7T573 -33Q538 -33 499 -28T420 -8T342 31T272 92L223 0H151L155 1280ZM579 956Q511 956 445 925T331 840V322Q331 240 351 188T405 105T482 63T573 51Q647 51 706 82T807 171T871 309T894 486Q894 589 875 675T816 824T718 921T579 956Z" /> +<glyph unicode="c" glyph-name="c" horiz-adv-x="1090" d="M838 871Q824 907 797 928T739 962T676 977T623 981Q553 981 493 953T388 869T319 732T293 544Q293 442 318 356T390 207T501 109T645 74Q693 74 740 87T829 125T906 181T967 250L1020 209Q979 145 927 +100T817 25T701 -19T590 -33Q486 -33 394 2T233 105T124 271T84 494Q84 565 101 634T152 765T232 881T338 974T468 1035T618 1057Q703 1057 773 1036T893 980T970 900T997 804Q997 760 973 729T902 696Q875 695 857 704T828 728T812 758T807 788Q807 808 813 830T838 +871Z" /> +<glyph unicode="d" glyph-name="d" horiz-adv-x="1225" d="M1026 217Q1026 185 1025 153T1018 78L1163 86V0H870Q865 30 862 56T857 107Q798 43 715 5T528 -33Q433 -33 353 3T213 106T120 268T86 483Q86 608 125 713T235 895T401 1014T612 1057Q646 1057 680 1052T745 +1039T804 1021T851 1000L852 1280Q852 1312 852 1342T858 1413L713 1405V1491Q780 1491 824 1495T896 1508T939 1525T967 1546H1026V217ZM602 68Q636 68 671 78T738 106T799 148T851 202Q850 227 850 255T850 315L851 905Q802 943 744 959T625 976Q548 976 486 +942T381 846T317 703T297 502Q297 419 319 334T380 191T474 101T602 68Z" /> +<glyph unicode="e" glyph-name="e" horiz-adv-x="1110" d="M604 977Q484 977 406 907T303 678H825Q825 732 813 785T775 881T706 950T604 977ZM1018 604L297 592Q296 474 315 378T375 214T480 109T635 72Q683 72 733 85T829 120T915 174T980 242L1030 201Q988 +137 933 93T818 20T698 -20T586 -33Q480 -33 389 5T230 114T125 285T86 510Q86 618 123 716T228 891T391 1012T602 1057Q687 1057 762 1029T895 945T985 804T1018 604Z" /> +<glyph unicode="f" glyph-name="f" horiz-adv-x="692" d="M645 1447Q630 1467 605 1475T557 1483Q509 1483 478 1462T429 1405T404 1327T396 1239V1024H672V944L396 939L398 217Q398 176 397 145T389 78L518 84V0H101V61Q148 61 172 79T208 131T220 210T221 311L219 +935L51 932V1024H219V1067Q219 1181 238 1271T302 1425T416 1522T588 1556Q621 1556 659 1548T730 1521T785 1474T807 1405Q807 1364 783 1338T722 1312Q696 1312 680 1320T654 1342T639 1370T634 1397Q634 1409 636 1421T645 1447Z" /> +<glyph unicode="g" glyph-name="g" horiz-adv-x="1133" d="M562 -67Q505 -65 452 -62T351 -51Q294 -88 264 -141T233 -254Q233 -305 257 -345T327 -415T437 -459T581 -475Q669 -475 738 -457T856 -409T929 -340T954 -256Q954 -199 925 -164T843 -108T719 -79T562 +-67ZM544 985Q489 985 446 963T374 902T329 810T313 696Q313 622 329 562T376 457T452 389T554 365Q611 365 653 386T724 444T767 533T782 645Q782 712 767 774T722 882T648 957T544 985ZM992 1065Q966 1061 946 1049T911 1017T887 976T872 930Q923 883 952 820T982 +686Q982 599 947 527T851 402T713 320T548 291Q510 291 481 296T411 301Q373 301 342 291T289 264T260 230T253 201Q253 189 257 176Q264 152 289 137T356 114T453 101T581 94Q699 89 792 72T951 19T1050 -73T1085 -213Q1085 -296 1041 -359T925 -466T764 -532T583 +-555Q445 -555 348 -531T189 -468T100 -379T72 -278Q72 -231 90 -192T135 -122T196 -69T261 -32Q195 -12 157 25T119 129Q119 165 134 199T176 263T240 312T323 340Q276 362 238 393T173 464T132 551T117 652Q117 744 154 819T252 947T390 1028T548 1057Q617 1057 +684 1038T808 980Q823 1023 849 1060T907 1123T978 1165T1057 1180Q1109 1180 1137 1153T1166 1078Q1166 1066 1161 1051T1146 1023T1118 1001T1077 993Q1042 994 1020 1014T992 1065Z" /> +<glyph unicode="h" glyph-name="h" horiz-adv-x="1227" d="M192 1280Q192 1312 192 1342T198 1413L53 1405V1491Q120 1491 164 1495T237 1508T281 1525T309 1546H368V922Q402 950 442 975T525 1018T614 1046T704 1057Q793 1057 857 1030T961 946T1021 803T1042 +599L1044 217Q1044 176 1043 145T1036 78L1165 84V0H747V61Q794 61 818 79T854 131T866 210T868 311V597Q868 774 812 861T634 949Q599 949 560 939T487 912T422 872T368 822V217Q368 176 366 145T358 78L487 84V0H69V61Q116 61 141 79T177 131T190 210T192 311V1280Z" +/> +<glyph unicode="i" glyph-name="i" horiz-adv-x="575" d="M211 778Q211 810 212 840T219 911L74 903V989Q141 989 185 993T257 1006T300 1023T328 1044H387V217Q387 176 386 145T379 78L508 84V0H90V61Q137 61 161 79T197 131T209 210T211 311V778ZM406 1368Q406 +1343 397 1321T372 1283T337 1257T295 1248Q273 1248 253 1257T218 1282T194 1321T185 1368Q185 1394 194 1416T218 1456T254 1482T297 1492Q320 1492 339 1483T374 1456T397 1417T406 1368Z" /> +<glyph unicode="j" glyph-name="j" horiz-adv-x="526" d="M-180 -441Q-180 -403 -156 -374T-92 -344Q-67 -344 -50 -352T-23 -374T-8 -402T-3 -430Q-3 -435 -3 -439T-4 -449Q25 -461 48 -461Q61 -461 83 -456T132 -426Q166 -394 178 -329T191 -177L195 778Q195 +810 195 840T201 911L56 903V989Q123 989 167 993T240 1005T284 1023T312 1044H371V-7Q371 -150 342 -253T260 -424T136 -523T-18 -555Q-60 -555 -91 -546T-141 -520T-170 -484T-180 -441ZM382 1368Q382 1343 373 1321T348 1283T313 1257T271 1248Q249 1248 229 +1257T194 1282T170 1321T161 1368Q161 1394 170 1416T194 1456T230 1482T273 1492Q296 1492 315 1483T350 1456T373 1417T382 1368Z" /> +<glyph unicode="k" glyph-name="k" horiz-adv-x="1100" d="M679 1024H1052V963Q1000 957 953 934T864 878T787 811T724 748L565 580Q605 561 634 533T692 469L837 283Q843 275 857 255T891 211T935 160T984 111T1035 75T1085 61V0H899Q871 0 844 16T791 60T738 +121T683 193Q602 303 546 383T450 502L366 498V217Q366 176 365 145T358 78L489 84V0H71V61Q118 61 142 79T177 131T190 210T192 1280Q192 1312 192 1342T198 1413L53 1405V1491Q120 1491 164 1495T236 1508T279 1525T307 1546H366V578H448L698 840Q732 875 761 +902T819 948L679 942V1024Z" /> +<glyph unicode="l" glyph-name="l" horiz-adv-x="557" d="M190 1280Q190 1312 190 1342T196 1413L51 1405V1491Q118 1491 162 1495T235 1508T279 1525T307 1546H366L368 217Q368 176 366 145T358 78L487 84V0H69V61Q116 61 140 79T176 131T188 210T190 311V1280Z" /> +<glyph unicode="m" glyph-name="m" horiz-adv-x="1831" d="M211 778Q211 810 212 843T219 911L74 903V989Q141 989 183 993T250 1006T290 1023T316 1044H375Q377 1024 379 998T383 935Q414 961 450 983T524 1022T603 1048T684 1057Q788 1057 857 1020T965 919Q999 +948 1040 973T1125 1017T1215 1046T1305 1057Q1394 1057 1459 1031T1567 950T1629 807T1647 599L1645 217Q1645 176 1644 145T1637 78L1766 84V0H1348V61Q1395 61 1419 79T1455 131T1467 210T1469 311V597Q1469 774 1413 861T1235 949Q1171 949 1108 920T997 848Q1018 +779 1018 699L1014 217Q1014 176 1013 145T1006 78L1135 84V0H717V61Q764 61 788 79T823 131T835 210T838 311L840 597Q841 773 789 863T615 953Q552 953 491 926T386 854Q386 830 386 803T387 744V217Q387 176 386 145T379 78L508 84V0H90V61Q137 61 161 79T197 +131T209 210T211 311V778Z" /> +<glyph unicode="n" glyph-name="n" horiz-adv-x="1243" d="M213 778Q213 810 214 843T221 911L76 903V989Q143 989 185 993T252 1006T292 1023T318 1044H377Q379 1021 381 992T386 920Q419 949 458 974T541 1017T629 1046T719 1057Q897 1057 979 946T1061 599V217Q1061 +176 1060 145T1053 78L1182 84V0H764V61Q811 61 835 79T871 131T883 210T885 311V597Q883 774 827 863T649 953Q612 953 575 942T504 914T440 872T388 820Q389 802 389 782T389 740L387 217Q387 176 386 145T379 78L508 84V0H90V61Q137 61 161 79T196 131T208 210T211 +311L213 778Z" /> +<glyph unicode="o" glyph-name="o" horiz-adv-x="1198" d="M598 979Q517 979 460 943T365 847T311 709T293 547Q293 452 312 362T372 203T472 91T614 49Q695 49 750 85T840 182T890 319T905 477Q905 569 888 659T834 820T739 935T598 979ZM598 1057Q706 1057 800 +1018T963 909T1073 744T1114 537Q1114 418 1075 314T966 133T802 12T598 -33Q490 -33 397 5T234 113T124 277T84 487Q84 608 123 712T232 893T395 1013T598 1057Z" /> +<glyph unicode="p" glyph-name="p" horiz-adv-x="1223" d="M196 778Q196 810 197 843T204 911L59 903V989Q126 989 168 993T235 1006T275 1023T300 1044H360Q362 1024 364 997T368 934Q399 961 436 984T515 1023T600 1048T686 1057Q775 1057 856 1022T1000 922T1099 +762T1136 548Q1136 461 1117 384T1062 243T979 127T872 41T749 -14T614 -33Q472 -33 369 34L368 -305Q368 -346 367 -377T360 -444L489 -438V-522H71V-461Q118 -461 142 -443T177 -391T189 -312T192 -211L196 778ZM613 957Q577 957 543 948T478 923T420 886T371 +842Q371 834 371 824T372 788T372 718T372 596T371 405T370 129Q421 91 482 70T610 49Q683 49 741 84T840 181T903 329T925 517Q925 600 908 679T853 820T756 919T613 957Z" /> +<glyph unicode="q" glyph-name="q" horiz-adv-x="1180" d="M1028 -305Q1028 -346 1027 -377T1020 -444L1149 -438V-522H731V-461Q778 -461 802 -443T838 -391T850 -312T852 -211V96Q798 35 721 1T545 -33Q449 -33 366 4T220 109T122 273T86 489Q86 617 127 722T240 +901T407 1016T612 1057Q675 1057 728 1044T825 1020T906 1012T969 1044H1026L1028 -305ZM618 68Q686 68 748 103T852 198V735Q852 797 840 843T800 920T728 966T617 982Q542 982 483 950T382 860T319 720T297 539Q297 440 318 355T381 205T482 105T618 68Z" /> +<glyph unicode="r" glyph-name="r" horiz-adv-x="887" d="M678 945Q639 946 599 931T521 885T448 813T387 720L389 217Q389 176 388 145T381 78L510 84V0H90V61Q137 61 161 79T197 131T209 210T211 311V779Q211 811 212 843T219 911L74 905V989H137Q181 989 210 +993T258 1006T291 1023T316 1044H375Q378 1012 380 965T385 842Q408 880 444 918T525 987T622 1037T729 1057Q757 1057 783 1050T829 1026T861 986T873 928Q873 914 868 897T850 865T818 840T771 830Q748 830 730 840T699 865T681 901T678 945Z" /> +<glyph unicode="s" glyph-name="s" horiz-adv-x="948" d="M474 47Q513 47 552 56T624 86T677 136T698 209Q698 258 673 292T606 353T511 401T402 444T293 492T199 555T132 641T106 760Q106 803 122 854T178 951T285 1026T456 1057Q484 1057 515 1053T580 1039T646 +1011T711 969L706 1047H792V688H728Q724 741 708 793T660 886T580 954T466 980Q418 980 381 968T319 934T280 884T267 825Q267 775 292 739T360 675T456 625T566 579T676 529T772 466T839 382T865 268Q865 191 834 134T753 40T639 -15T510 -33Q406 -33 327 -6T197 +57L204 -14H118L106 338H169Q173 274 198 221T265 129T360 69T474 47Z" /> +<glyph unicode="t" glyph-name="t" horiz-adv-x="793" d="M43 1024Q97 1025 141 1053T218 1124T275 1217T311 1311H381Q381 1229 381 1158T380 1024H725V944L380 940Q379 807 379 713T379 556T378 457T378 401T377 377T377 370Q377 300 384 247T410 157T457 102T532 +83Q585 83 637 115T729 206L784 161Q739 93 695 55T610 -3T536 -28T475 -33Q444 -33 412 -28T348 -9T289 32T240 101T207 203T196 345L200 937L43 936V1024Z" /> +<glyph unicode="u" glyph-name="u" horiz-adv-x="1223" d="M850 755Q850 805 852 840T860 911L713 905V989H776Q820 989 851 993T904 1006T940 1023T967 1044H1026L1024 270Q1024 254 1024 230T1022 179T1020 126T1016 78L1163 86V0H870Q865 35 862 64T856 123Q824 +91 785 63T703 13T613 -20T522 -33Q438 -33 375 -11T270 64T207 201T186 414V778Q186 810 187 843T194 911L53 905V989H117Q160 989 191 993T244 1006T280 1023T307 1044H366V420Q366 331 378 266T416 157T485 93T588 72Q627 72 664 85T736 120T799 170T850 230V315V755Z" +/> +<glyph unicode="v" glyph-name="v" horiz-adv-x="1034" d="M561 -6H479L186 662Q161 720 145 765T119 844T105 903T100 946L12 940V1024H389V963Q342 963 322 944T299 894T309 821T342 735L499 375Q515 340 530 302T561 224H563Q574 254 586 288T611 356L774 805Q791 +854 808 891T835 946L704 940V1024H1028V963Q994 963 969 946T922 894T878 807T829 686L561 -6Z" /> +<glyph unicode="w" glyph-name="w" horiz-adv-x="1640" d="M12 1024H446V963Q400 961 376 945T345 899T344 830T368 741L529 257Q765 957 786 1024H870L1143 242Q1353 851 1367 887T1401 947L1282 940V1024H1638V963Q1585 960 1551 948T1495 915T1459 866T1431 +800L1136 -6H1054L786 769L520 -6H442L174 780Q151 845 139 883T121 946L12 940V1024Z" /> +<glyph unicode="x" glyph-name="x" horiz-adv-x="1085" d="M45 1024H467V963Q421 961 395 951T363 920T374 863T428 776L547 614Q803 927 825 948L684 940V1024H1020V963Q978 951 947 934T887 891T598 555L880 204Q904 174 925 145T970 78L1063 84V0H667V61Q692 +61 711 66T738 84T743 116T717 162L501 428Q292 142 283 130T262 106T236 78L393 84V0H49V61Q80 69 104 82T149 115T448 494Q196 830 174 873T141 945L45 940V1024Z" /> +<glyph unicode="y" glyph-name="y" horiz-adv-x="1081" d="M264 -448Q275 -453 287 -453Q305 -453 333 -438T391 -372Q417 -327 453 -238T535 -23Q188 720 169 765T138 844T118 903T107 945L8 940V1024H432V963L423 962Q380 959 358 943T330 898T336 821T617 207Q830 +828 843 860T869 916T893 948L752 940V1024H1073V963Q1035 948 1008 925T959 868T920 791T627 -18Q580 -147 541 -247T460 -416T367 -519T248 -555Q216 -555 188 -548T139 -525T106 -486T94 -431Q94 -412 100 -394T117 -362T145 -340T182 -331Q206 -331 222 -340T249 +-363T263 -392T267 -420Q267 -426 267 -433T264 -448Z" /> +<glyph unicode="z" glyph-name="z" horiz-adv-x="1047" d="M82 0V84Q702 882 717 900T746 932T770 952L385 946Q328 945 291 922T232 860T197 769T176 657H113L137 1024H940V958L363 199Q350 182 339 168T315 141T289 114T256 84L651 78Q715 77 758 100T829 163T872 +257T897 373H957L932 0H82Z" /> +<glyph unicode="{" glyph-name="braceleft" horiz-adv-x="684" d="M192 537Q236 528 277 507T351 452T402 369T422 256Q422 232 420 200T415 130Q402 -22 400 -47T397 -90T396 -119T395 -145Q395 -232 406 -298T445 -408T523 -475T647 -498H659V-555H602Q497 -555 +427 -527T314 -444T255 -307T237 -117Q237 -72 240 -20T247 86T254 189T258 279Q258 331 249 370T217 434T156 473T61 486H14V592H61Q118 592 156 603T216 639T248 700T258 791Q258 872 248 957T237 1134Q237 1242 254 1321T314 1453T426 1530T602 1556H659V1486H636Q564 +1486 518 1467T444 1408T406 1308T395 1163Q395 1146 396 1126T399 1082L412 943Q417 895 420 863T422 813Q422 749 403 702T351 621T278 569T192 541V537V537Z" /> +<glyph unicode="|" glyph-name="bar" horiz-adv-x="473" d="M315 1556L307 -555H168L162 1556H315Z" /> +<glyph unicode="}" glyph-name="braceright" horiz-adv-x="684" d="M492 537V541Q448 549 407 568T333 621T282 701T262 813Q261 831 264 863T272 943L285 1082Q287 1105 288 1125T289 1163Q289 1247 279 1307T241 1408T167 1467T48 1486H25V1556H82Q187 1556 +257 1531T370 1453T429 1322T447 1134Q447 1043 437 958T426 791Q426 738 435 701T467 639T528 604T623 592H670V486H623Q566 486 528 473T468 435T436 370T426 279Q426 239 429 189T436 86T443 -19T447 -117Q447 -225 430 -307T370 -444T258 -527T82 -555H25V-498H37Q112 +-498 161 -476T238 -409T278 -298T289 -145Q289 -132 289 -120T287 -90T284 -48T269 130Q266 167 264 199T262 256Q262 320 281 368T333 451T406 507T492 537Z" /> +<glyph unicode="~" glyph-name="asciitilde" horiz-adv-x="1188" d="M391 627Q349 627 315 619T251 598T194 566T139 528V657Q171 683 200 703T260 738T324 759T399 766Q454 766 495 755T568 726T626 689T680 651T739 623T813 611Q881 611 940 637T1049 709V580Q1007 +532 947 503T805 473Q754 473 715 484T643 513T583 550T526 587T465 615T391 627Z" /> +<glyph unicode=" " glyph-name="uni00A0" horiz-adv-x="539" /> +<glyph unicode="¡" glyph-name="exclamdown" horiz-adv-x="498" d="M129 926Q129 953 139 977T166 1019T204 1047T250 1057Q274 1057 295 1047T333 1019T359 977T369 926Q369 898 359 874T333 831T294 803T248 792Q223 792 201 802T163 831T138 873T129 926ZM211 +553H287L367 -292Q369 -319 363 -346T341 -394T303 -429T248 -443Q215 -443 192 -430T155 -395T135 -346T131 -292L211 553Z" /> +<glyph unicode="¢" glyph-name="cent" horiz-adv-x="1087" d="M828 873Q814 909 787 930T729 964T666 979T613 983Q543 983 483 955T378 870T309 732T283 544Q283 442 308 355T380 205T491 107T635 71Q683 71 730 85T819 123T896 179T957 249L1010 208Q974 +152 929 110T833 38T731 -9T630 -33L629 -274H510L509 -33Q417 -22 338 19T200 127T108 287T74 494Q74 589 105 682T194 852T333 984T513 1057L512 1274H645L643 1057Q721 1052 784 1030T893 974T962 897T987 806Q987 784 981 765T962 730T933 707T892 698Q865 +698 847 707T818 730T802 760T797 790Q797 810 803 832T828 873Z" /> +<glyph unicode="£" glyph-name="sterling" horiz-adv-x="1122" d="M788 1288Q777 1328 736 1358T622 1389Q564 1389 521 1365T448 1301T405 1209T390 1100Q390 1048 394 1001T406 909T421 822T439 737H749V639H456Q461 602 464 565T468 487Q468 421 439 359T362 +240Q388 244 414 246T468 248Q535 248 594 229T705 187T800 144T878 125Q924 125 953 156T988 254H1052Q1050 192 1036 140T995 49T931 -11T843 -33Q800 -33 760 -19T680 18T601 65T522 113T439 149T350 164Q329 164 317 162Q312 123 298 88T265 25T222 -17T173 +-33Q136 -33 116 -10T96 43Q96 71 109 98T146 149T202 191T274 221Q297 257 312 304T327 408Q327 474 317 529T291 639H128V737H264Q249 797 238 864T227 1018Q227 1120 255 1203T334 1344T453 1435T606 1467Q696 1467 757 1443T856 1383T910 1305T926 1228Q926 +1193 905 1166T844 1139Q821 1139 806 1147T780 1167T766 1193T762 1219Q762 1230 766 1250T788 1288Z" /> +<glyph unicode="¤" glyph-name="currency" horiz-adv-x="1096" d="M208 976L318 838Q364 875 421 896T549 918Q618 918 674 897T779 838L890 976L973 910L847 766Q886 713 906 649T926 521Q926 458 908 396T852 285L973 148L890 82L784 214Q739 179 680 159T548 +138Q476 138 418 158T313 213L208 82L125 148L245 284Q208 335 190 396T172 521Q172 585 192 649T251 767L125 910L208 976ZM549 845Q511 845 481 831T429 793T391 739T366 676T352 612T348 554Q348 505 356 447T387 337T449 252T549 218Q610 218 649 252T710 337T741 +446T750 554Q750 593 740 643T707 738T646 814T549 845Z" /> +<glyph unicode="¥" glyph-name="yen" horiz-adv-x="1444" d="M388 648H590L295 1116Q242 1198 217 1253T184 1348L57 1343V1434H585V1366Q499 1366 462 1342T425 1276Q425 1248 438 1215T477 1143Q515 1082 548 1028T616 920T687 812T768 696H772Q808 766 +841 829T906 953T969 1072T1034 1194Q1041 1209 1051 1229T1075 1271T1102 1313T1132 1350L970 1343V1434H1388V1366Q1337 1363 1297 1346T1222 1297T1155 1216T1087 1102L845 645H1094V557L827 555L826 425L1094 424V336L826 334Q826 244 827 244Q827 134 821 +82L991 90V0H510V68Q558 69 586 84T628 123T645 182T649 257V332H388V426H650V553H388V648Z" /> +<glyph unicode="¦" glyph-name="brokenbar" horiz-adv-x="498" d="M325 1556L317 789H178L172 1556H325ZM325 207L317 -555H178L172 207H325Z" /> +<glyph unicode="§" glyph-name="section" horiz-adv-x="1092" d="M236 698Q236 624 263 568T335 468T438 387T557 316T679 245T790 165Q825 210 843 269T861 385Q861 458 834 514T761 614T658 694T539 765T417 836T306 916Q271 870 254 813T236 698ZM170 +-205Q170 -185 176 -166T195 -133T224 -109T262 -100Q285 -100 300 -108T326 -130T340 -159T344 -192Q344 -203 338 -222T321 -255Q323 -281 340 -304T386 -347T450 -377T527 -388Q597 -388 645 -367T723 -314T766 -244T779 -172Q779 -114 749 -68T670 19T557 96T429 +171T300 253T188 350T108 470T78 622Q78 665 90 710T125 799T182 884T259 962Q220 1007 197 1066T173 1192Q173 1227 181 1268T207 1349T254 1426T327 1493T427 1539T558 1556Q640 1556 707 1534T823 1475T897 1394T924 1302Q924 1283 919 1266T902 1236T876 1215T839 +1207Q813 1207 797 1215T772 1236T758 1263T753 1291Q753 1303 758 1325T778 1360Q768 1385 748 1407T701 1444T639 1469T566 1478Q495 1478 447 1456T370 1401T327 1328T314 1255Q314 1197 344 1151T423 1064T536 987T665 912T794 830T906 733T986 613T1016 461Q1016 +417 1004 372T969 282T912 197T835 119Q873 74 896 19T920 -109Q920 -142 912 -181T885 -260T837 -337T764 -403T665 -449T535 -467Q445 -467 377 -444T263 -383T194 -299T170 -205Z" /> +<glyph unicode="¨" glyph-name="dieresis" horiz-adv-x="793" d="M327 1369Q327 1344 319 1322T296 1284T264 1258T225 1248Q204 1248 186 1257T153 1283T131 1322T123 1369Q123 1394 131 1417T154 1456T187 1483T226 1493Q248 1493 266 1483T298 1457T319 +1417T327 1369ZM669 1369Q669 1344 661 1322T638 1284T606 1258T567 1248Q546 1248 528 1257T495 1283T473 1322T465 1369Q465 1394 473 1417T496 1456T529 1483T568 1493Q590 1493 608 1483T640 1457T661 1417T669 1369Z" /> +<glyph unicode="©" glyph-name="copyright" horiz-adv-x="1796" d="M90 713Q90 826 117 931T195 1127T318 1294T481 1423T677 1506T901 1536Q1020 1536 1126 1507T1322 1423T1484 1294T1606 1128T1683 931T1710 713Q1710 601 1681 497T1600 303T1473 138T1309 +10T1114 -72T897 -102Q715 -102 566 -41T312 129T148 387T90 713ZM228 713Q228 619 249 530T310 361T408 215T542 101T707 27T903 0Q1005 0 1094 26T1258 101T1392 215T1491 360T1553 529T1575 713Q1575 808 1553 898T1490 1069T1389 1216T1254 1333T1088 1409T897 +1436Q797 1436 709 1409T546 1333T412 1217T312 1069T250 899T228 713ZM924 1116Q865 1116 808 1092T706 1019T634 899T606 733Q606 648 632 576T707 451T821 368T969 338Q1003 338 1042 348T1121 378T1198 426T1264 489L1325 418Q1280 356 1226 316T1116 252T1007 +219T910 209Q803 209 713 247T556 353T452 512T414 709Q414 769 428 831T471 950T541 1058T639 1146T764 1205T916 1227Q991 1227 1060 1204T1183 1143L1176 1217H1278V872H1196Q1188 939 1165 985T1105 1061T1023 1103T924 1116Z" /> +<glyph unicode="ª" glyph-name="ordfeminine" horiz-adv-x="838" d="M511 1102Q465 1102 420 1093T338 1066T279 1020T256 954Q256 921 271 902T303 874T335 866T350 865Q392 865 432 885T508 941L511 1102ZM144 1278Q144 1313 164 1347T219 1407T303 1450T410 +1467Q521 1467 580 1408T639 1222L637 994Q636 930 651 901T695 871Q708 871 731 888L754 849Q745 837 731 826T698 805T661 789T623 783Q596 783 577 790T545 810T525 838T513 870Q475 828 426 804T312 779Q212 779 162 822T111 931Q111 993 148 1037T244 1110T374 +1152T512 1166V1236Q512 1267 509 1296T493 1348T454 1384T382 1398Q363 1398 344 1393T307 1377T278 1352T259 1320Q276 1300 276 1270Q276 1260 273 1249T261 1229T241 1213T209 1206Q179 1206 162 1227T144 1278Z" /> +<glyph unicode="«" glyph-name="guillemotleft" horiz-adv-x="1085" d="M65 540V548L626 1123L689 1058L286 540V536L685 50L620 -15L65 540ZM501 546V552L907 951L972 890L724 558V554L968 218L902 157L501 546Z" /> +<glyph unicode="¬" glyph-name="logicalnot" horiz-adv-x="1212" d="M150 705L1062 700V322H957L950 581L150 578V705Z" /> +<glyph unicode="­" glyph-name="uni00AD" horiz-adv-x="1001" d="M137 727H864V592L137 584V727Z" /> +<glyph unicode="®" glyph-name="registered" horiz-adv-x="1798" d="M90 713Q90 826 117 931T195 1128T318 1295T480 1423T677 1506T901 1536Q1021 1536 1127 1507T1324 1424T1485 1295T1607 1129T1683 932T1710 713Q1710 600 1682 496T1601 301T1474 136T1310 +9T1116 -73T897 -102Q714 -102 566 -42T311 127T148 385T90 713ZM230 713Q230 618 250 529T311 360T409 216T541 103T707 29T903 2Q1006 2 1095 28T1259 102T1392 215T1491 360T1553 528T1575 713Q1575 808 1553 898T1490 1069T1389 1217T1254 1333T1089 1409T897 +1436Q796 1436 708 1409T545 1334T413 1218T314 1070T252 899T230 713ZM764 461Q764 426 763 401T760 356L862 360V279H514V348Q551 349 571 361T601 394T611 446T613 512V1047Q613 1074 613 1099T617 1145L514 1135V1221Q546 1222 586 1223T670 1226T757 1229T840 +1230Q953 1230 1035 1210T1169 1154T1247 1068T1272 958Q1272 924 1260 884T1219 806T1143 735T1023 682V680Q1040 672 1062 653T1110 596Q1168 509 1206 459T1271 382T1319 348T1362 340V270H1184Q1153 278 1117 320T1030 434Q985 497 946 556T876 661Q861 658 +833 658Q813 658 794 659T764 662V461ZM764 748H766Q783 746 801 745T837 744Q859 744 888 747T948 760T1008 784T1061 822T1098 877T1112 952Q1112 998 1093 1033T1043 1093T970 1129T886 1142Q838 1142 813 1130T777 1095T765 1040T764 969V748Z" /> +<glyph unicode="¯" glyph-name="overscore" horiz-adv-x="727" d="M92 1434H635V1319L92 1311V1434Z" /> +<glyph unicode="°" glyph-name="degree" horiz-adv-x="829" d="M225 1148Q225 1106 238 1067T277 998T337 951T415 933Q457 933 492 950T552 998T590 1067T604 1148Q604 1190 591 1229T552 1298T492 1347T413 1365Q371 1365 337 1347T277 1299T239 1229T225 +1148ZM96 1148Q96 1215 121 1273T191 1374T293 1442T417 1467Q489 1467 547 1442T647 1374T711 1273T733 1148Q733 1081 707 1023T637 922T535 853T411 828Q339 828 281 853T182 921T118 1023T96 1148Z" /> +<glyph unicode="±" glyph-name="plusminus" horiz-adv-x="1180" d="M133 737L522 735V1057H654V735L1045 733V618L654 616V276H522V615L133 614V737ZM1045 6H133V112L1045 121V6Z" /> +<glyph unicode="²" glyph-name="twosuperior" horiz-adv-x="788" d="M239 1311Q258 1294 258 1264Q258 1255 255 1245T245 1225T226 1210T197 1204Q171 1204 155 1223T139 1270Q139 1300 155 1334T204 1398T283 1447T393 1467Q441 1467 485 1454T563 1414T618 +1346T639 1248Q639 1218 631 1186T598 1115T525 1032T399 929Q262 829 237 742L410 738Q431 737 451 737T488 736Q515 736 537 739T574 751T597 776T606 820H649V627H125Q125 691 144 743T197 842T273 928T365 1008Q408 1043 433 1076T473 1140T491 1198T496 1246Q496 +1312 463 1352T367 1393Q342 1393 321 1386T282 1368T254 1342T239 1311Z" /> +<glyph unicode="³" glyph-name="threesuperior" horiz-adv-x="758" d="M111 808Q111 840 128 861T178 883Q194 883 205 877T224 862T235 840T238 817Q238 806 234 794T222 773Q225 752 237 738T267 714T307 700T352 695Q392 695 422 710T471 749T501 804T511 +867Q511 892 505 922T482 980T428 1026T343 1044Q317 1044 286 1042V1107H310Q369 1107 403 1124T454 1165T475 1214T480 1256Q480 1281 474 1306T452 1352T413 1386T352 1399Q299 1399 269 1373T232 1317Q250 1299 250 1272Q250 1263 247 1253T237 1233T218 1218T189 +1212Q162 1212 147 1232T132 1279Q132 1307 147 1339T193 1400T268 1448T374 1467Q427 1467 470 1453T544 1413T592 1350T609 1268Q609 1242 598 1215T566 1162T512 1117T436 1086V1084Q489 1079 529 1060T596 1012T636 946T650 867Q650 817 631 773T575 696T485 +644T364 625Q302 625 255 641T176 683T128 742T111 808Z" /> +<glyph unicode="´" glyph-name="acute" horiz-adv-x="516" d="M149 1188L92 1235L264 1511Q287 1544 309 1555T348 1567T380 1561T406 1541T419 1517T423 1493Q423 1482 420 1472T414 1455Q405 1432 379 1405L149 1188Z" /> +<glyph unicode="µ" glyph-name="mu" horiz-adv-x="1257" d="M1006 1024L1004 289Q1004 236 1010 200T1029 141T1058 108T1096 98Q1115 98 1134 105T1182 133L1205 102Q1192 84 1171 64T1124 27T1065 -1T998 -12Q960 -12 934 -2T888 27T858 68T841 115Q812 +85 776 58T698 11T613 -21T525 -33Q447 -33 391 11T293 133Q304 21 315 -57T338 -188T359 -276T376 -334T387 -377T392 -421Q392 -441 386 -461T369 -496T340 -522T298 -532Q241 -532 217 -485T193 -355L195 1024H367V483Q367 396 376 321T409 190T476 104T586 +72Q624 72 659 83T727 115T785 161T832 218V1024H1006Z" /> +<glyph unicode="¶" glyph-name="paragraph" horiz-adv-x="1026" d="M823 1434L819 -522H676L680 1350L501 1344L496 -522H352L357 837Q306 841 255 858T162 911T94 1002T68 1136Q68 1209 93 1265T159 1358T252 1415T359 1434H823Z" /> +<glyph unicode="·" glyph-name="middot" horiz-adv-x="512" d="M376 671Q376 644 366 620T340 578T302 550T256 540Q232 540 211 550T173 578T147 620T137 671Q137 699 147 723T173 766T212 794T258 805Q283 805 304 795T342 766T367 724T376 671Z" /> +<glyph unicode="¸" glyph-name="cedilla" horiz-adv-x="598" d="M369 -116Q432 -116 469 -152T506 -251Q506 -292 486 -325T433 -383T358 -427T271 -459T183 -480T104 -494L92 -425Q144 -416 189 -402T267 -368T319 -324T338 -269Q338 -236 319 -222T273 +-208Q250 -208 225 -216T180 -238L111 -204L170 16H285L229 -152Q258 -134 296 -125T369 -116Z" /> +<glyph unicode="¹" glyph-name="onesuperior" horiz-adv-x="580" d="M155 674Q186 674 206 686T237 718T252 765T256 825V1319H251L124 1243L92 1301L320 1467H371L373 762Q373 739 372 719T369 682L473 686V616H155V674V674Z" /> +<glyph unicode="º" glyph-name="ordmasculine" horiz-adv-x="858" d="M425 1398Q387 1398 352 1377T294 1322T259 1243T247 1144Q247 1086 258 1033T293 940T352 875T437 851Q482 851 515 870T572 924T606 1003T618 1101Q618 1159 607 1213T573 1308T515 +1373T425 1398ZM434 1467Q505 1467 564 1443T667 1374T736 1269T761 1133Q761 1055 737 990T668 878T563 805T429 779Q358 779 298 803T193 871T124 975T98 1107Q98 1183 123 1249T194 1363T300 1439T434 1467Z" /> +<glyph unicode="»" glyph-name="guillemotright" horiz-adv-x="1083" d="M1020 568V560L459 -15L396 50L799 568V572L400 1058L465 1123L1020 568ZM584 562V556L178 157L113 218L361 550V554L117 890L183 951L584 562Z" /> +<glyph unicode="¼" glyph-name="onequarter" horiz-adv-x="1563" d="M1278 1402L309 -33L232 20L1188 1467L1278 1402ZM156 674Q187 674 207 686T238 718T253 765T257 825V1319H252L125 1243L93 1301L321 1467H372L374 762Q374 739 373 719T370 682L474 686V616H156V674V674ZM1460 +0H1159V59Q1190 60 1210 70T1241 98T1256 140T1260 195V215H913V276L1321 842H1375V289H1491V215H1376V66L1460 70V0ZM1009 296L1259 292V643H1257L1009 296Z" /> +<glyph unicode="½" glyph-name="onehalf" horiz-adv-x="1642" d="M1276 1402L307 -33L230 20L1186 1467L1276 1402ZM410 674Q441 674 461 686T492 718T507 765T511 825V1319H506L379 1243L347 1301L575 1467H626L628 762Q628 739 627 719T624 682L728 686V616H410V674V674ZM1140 +684Q1159 667 1159 637Q1159 628 1156 618T1146 598T1127 583T1098 577Q1072 577 1056 596T1040 643Q1040 673 1056 707T1105 771T1184 820T1294 840Q1342 840 1386 827T1464 787T1519 719T1540 621Q1540 591 1532 559T1499 488T1426 405T1300 302Q1163 202 1138 +115L1311 111Q1332 110 1352 110T1389 109Q1416 109 1438 112T1475 124T1498 149T1507 193H1550V0H1026Q1026 64 1045 116T1098 215T1174 301T1266 381Q1309 416 1334 449T1374 513T1392 571T1397 619Q1397 685 1364 725T1268 766Q1243 766 1222 759T1183 741T1155 +715T1140 684Z" /> +<glyph unicode="¾" glyph-name="threequarters" horiz-adv-x="1649" d="M1396 1402L427 -33L350 20L1306 1467L1396 1402ZM328 808Q328 840 345 861T395 883Q411 883 422 877T441 862T452 840T455 817Q455 806 451 794T439 773Q442 752 454 738T484 714T524 +700T569 695Q609 695 639 710T688 749T718 804T728 867Q728 892 722 922T699 980T645 1026T560 1044Q534 1044 503 1042V1107H527Q586 1107 620 1124T671 1165T692 1214T697 1256Q697 1281 691 1306T669 1352T630 1386T569 1399Q516 1399 486 1373T449 1317Q467 +1299 467 1272Q467 1263 464 1253T454 1233T435 1218T406 1212Q379 1212 364 1232T349 1279Q349 1307 364 1339T410 1400T485 1448T591 1467Q644 1467 687 1453T761 1413T809 1350T826 1268Q826 1242 815 1215T783 1162T729 1117T653 1086V1084Q706 1079 746 1060T813 +1012T853 946T867 867Q867 817 848 773T792 696T702 644T581 625Q519 625 472 641T393 683T345 742T328 808ZM1582 0H1281V59Q1312 60 1332 70T1363 98T1378 140T1382 195V215H1035V276L1443 842H1497V289H1613V215H1498V66L1582 70V0ZM1131 296L1381 292V643H1379L1131 +296Z" /> +<glyph unicode="¿" glyph-name="questiondown" horiz-adv-x="956" d="M737 -218Q726 -200 720 -180T714 -138Q714 -125 719 -109T736 -80T765 -58T808 -50Q852 -52 873 -82T895 -157Q895 -202 867 -252T785 -345T655 -415T481 -443Q363 -443 282 -411T153 +-328T85 -213T69 -85Q73 -16 108 43T195 153T304 248T411 332T493 407T526 477Q526 489 522 501T507 523T481 539T440 545Q426 545 405 542T364 530L340 602Q372 621 417 630T501 639Q531 639 560 632T613 608T650 566T665 502Q665 456 636 416T563 336T468 254T371 +161T296 49T262 -91Q261 -146 272 -195T313 -282T391 -341T512 -363Q556 -363 595 -350T665 -315T714 -268T737 -218ZM378 936Q378 961 386 983T408 1021T443 1047T487 1057Q508 1057 528 1049T563 1025T588 987T598 936Q598 911 589 889T564 851T528 825T487 815Q464 +815 444 824T410 850T387 889T378 936Z" /> +<glyph unicode="À" glyph-name="Agrave" horiz-adv-x="1282" d="M262 223Q254 199 248 180T236 145T224 114T211 82L371 90V0H-12V68Q34 68 63 86T112 139T148 220T186 324L608 1473H657L1114 307Q1123 286 1132 257T1150 196T1163 135T1167 82L1307 90V0H838V68Q895 +69 922 89T956 138T956 200T938 262L866 454L333 442Q311 379 294 327T262 223ZM510 942Q463 810 428 710T364 530H838L692 922L600 1174H596L510 942ZM336 1739Q301 1760 287 1781T270 1820T272 1851T282 1872Q285 1876 295 1884T323 1896T365 1894T420 1862L678 +1616L633 1556L336 1739Z" /> +<glyph unicode="Á" glyph-name="Aacute" horiz-adv-x="1282" d="M262 223Q254 199 248 180T236 145T224 114T211 82L371 90V0H-12V68Q34 68 63 86T112 139T148 220T186 324L608 1473H657L1114 307Q1123 286 1132 257T1150 196T1163 135T1167 82L1307 90V0H838V68Q895 +69 922 89T956 138T956 200T938 262L866 454L333 442Q311 379 294 327T262 223ZM510 942Q463 810 428 710T364 530H838L692 922L600 1174H596L510 942ZM630 1556L585 1616L843 1862Q873 1888 897 1894T939 1897T967 1885T981 1872Q986 1865 991 1852T993 1820T976 +1781T927 1739L630 1556Z" /> +<glyph unicode="Â" glyph-name="Acircumflex" horiz-adv-x="1282" d="M262 223Q254 199 248 180T236 145T224 114T211 82L371 90V0H-12V68Q34 68 63 86T112 139T148 220T186 324L608 1473H657L1114 307Q1123 286 1132 257T1150 196T1163 135T1167 82L1307 +90V0H838V68Q895 69 922 89T956 138T956 200T938 262L866 454L333 442Q311 379 294 327T262 223ZM510 942Q463 810 428 710T364 530H838L692 922L600 1174H596L510 942ZM634 1907H639L1015 1618L970 1548L630 1729H626L278 1550L237 1616L634 1907Z" /> +<glyph unicode="Ã" glyph-name="Atilde" horiz-adv-x="1282" d="M262 223Q254 199 248 180T236 145T224 114T211 82L371 90V0H-12V68Q34 68 63 86T112 139T148 220T186 324L608 1473H657L1114 307Q1123 286 1132 257T1150 196T1163 135T1167 82L1307 90V0H838V68Q895 +69 922 89T956 138T956 200T938 262L866 454L333 442Q311 379 294 327T262 223ZM510 942Q463 810 428 710T364 530H838L692 922L600 1174H596L510 942ZM448 1737Q404 1737 370 1704T297 1614L227 1653Q245 1698 271 1736T328 1802T392 1846T459 1864Q499 1864 531 +1854T591 1827T641 1792T688 1757T734 1731T786 1720Q813 1720 837 1731T881 1760T919 1802T952 1853L1018 1821Q996 1758 968 1714T908 1643T842 1604T774 1591Q734 1591 702 1602T641 1629T589 1664T541 1699T495 1726T448 1737Z" /> +<glyph unicode="Ä" glyph-name="Adieresis" horiz-adv-x="1282" d="M262 223Q254 199 248 180T236 145T224 114T211 82L371 90V0H-12V68Q34 68 63 86T112 139T148 220T186 324L608 1473H657L1114 307Q1123 286 1132 257T1150 196T1163 135T1167 82L1307 90V0H838V68Q895 +69 922 89T956 138T956 200T938 262L866 454L333 442Q311 379 294 327T262 223ZM510 942Q463 810 428 710T364 530H838L692 922L600 1174H596L510 942ZM932 1718Q932 1691 923 1668T899 1627T863 1599T820 1589Q797 1589 777 1599T742 1626T718 1667T709 1718Q709 +1745 718 1769T743 1811T779 1839T822 1850Q845 1850 865 1840T900 1811T923 1769T932 1718ZM564 1718Q564 1691 555 1668T531 1627T495 1599T452 1589Q429 1589 409 1599T374 1626T350 1667T341 1718Q341 1745 350 1769T375 1811T411 1839T454 1850Q477 1850 497 +1840T532 1811T555 1769T564 1718Z" /> +<glyph unicode="Å" glyph-name="Aring" horiz-adv-x="1286" d="M264 223Q256 199 250 180T238 145T226 114T213 82L373 90V0H-10V68Q36 68 65 86T114 139T150 220T188 324L610 1473H659L1116 307Q1125 286 1134 257T1152 196T1165 135T1169 82L1309 90V0H840V68Q897 +69 924 89T958 138T958 200T940 262L868 454L335 442Q313 379 296 327T264 223ZM512 942Q465 810 430 710T366 530H840L694 922L602 1174H598L512 942ZM622 1847Q574 1844 545 1805T516 1700Q516 1626 548 1581T636 1536Q657 1536 677 1545T712 1573T736 1616T745 +1675Q745 1760 713 1803T629 1847H622ZM629 1917Q670 1917 711 1905T785 1866T840 1799T864 1704Q864 1648 845 1604T793 1529T719 1481T633 1464Q589 1464 547 1477T471 1517T418 1587T397 1687Q397 1739 417 1781T471 1854T545 1900T629 1917Z" /> +<glyph unicode="Æ" glyph-name="AE" horiz-adv-x="1944" d="M1496 530Q1496 597 1483 634T1440 688T1366 708T1256 711L1102 703Q1102 185 1101 147T1096 82L1499 76Q1564 76 1616 93T1705 148T1762 247T1782 399H1852L1840 0H783V74H799Q839 77 863 90T901 +126T919 184T924 266V453L425 442L184 82L340 90V0H-43V68Q-2 68 31 86T92 131T143 192T926 1353L742 1343V1434H1769L1778 1075H1711Q1711 1163 1691 1219T1635 1307T1551 1350T1447 1362H1434L1258 1358Q1200 1356 1169 1341T1122 1297T1105 1222T1102 1114V784H1254Q1318 +784 1364 789T1439 813T1482 870T1496 977H1563V530H1496ZM924 530V1191L483 530H924Z" /> +<glyph unicode="Ç" glyph-name="Ccedilla" horiz-adv-x="1434" d="M619 -454Q671 -445 716 -429T796 -392T849 -345T869 -288Q869 -253 850 -238T803 -223Q781 -223 757 -230T713 -251L640 -217L688 -26Q555 -7 446 55T259 213T139 431T96 694Q96 790 115 +885T174 1065T273 1224T411 1352T589 1436T807 1467Q924 1467 1024 1436T1220 1342L1210 1452H1321V977H1247Q1236 1073 1202 1148T1113 1276T984 1355T821 1383Q712 1383 617 1337T450 1205T338 997T297 725Q297 580 340 461T457 255T632 122T846 74Q913 74 979 +89T1107 134T1223 208T1319 309L1372 266Q1307 176 1234 119T1085 28T938 -18T801 -33L762 -157Q777 -148 795 -142T831 -132T867 -126T896 -124Q935 -124 964 -135T1013 -166T1043 -212T1053 -270Q1053 -312 1032 -346T975 -407T895 -456T803 -492T711 -517T631 +-532L619 -454Z" /> +<glyph unicode="È" glyph-name="Egrave" horiz-adv-x="1274" d="M433 236Q433 179 432 141T426 76L818 82Q885 83 939 98T1031 150T1091 247T1112 399H1182L1170 0H113V68Q162 69 190 83T233 123T250 182T254 259V319V1204Q254 1246 255 1283T261 1352L113 +1343V1434H1098L1108 1075H1041Q1041 1163 1021 1219T965 1307T881 1350T777 1362L588 1359Q531 1356 500 1341T453 1297T436 1222T433 1114V784H817L802 961H893V530H826Q826 590 816 625T783 680T726 706T642 712Q628 712 613 712T433 705V236ZM410 1739Q375 +1760 361 1781T344 1820T346 1851T356 1872Q359 1876 369 1884T397 1896T439 1894T494 1862L752 1616L707 1556L410 1739Z" /> +<glyph unicode="É" glyph-name="Eacute" horiz-adv-x="1274" d="M433 236Q433 179 432 141T426 76L818 82Q885 83 939 98T1031 150T1091 247T1112 399H1182L1170 0H113V68Q162 69 190 83T233 123T250 182T254 259V319V1204Q254 1246 255 1283T261 1352L113 +1343V1434H1098L1108 1075H1041Q1041 1163 1021 1219T965 1307T881 1350T777 1362L588 1359Q531 1356 500 1341T453 1297T436 1222T433 1114V784H817L802 961H893V530H826Q826 590 816 625T783 680T726 706T642 712Q628 712 613 712T433 705V236ZM592 1556L547 +1616L805 1862Q835 1888 859 1894T901 1897T929 1885T943 1872Q948 1865 953 1852T955 1820T938 1781T889 1739L592 1556Z" /> +<glyph unicode="Ê" glyph-name="Ecircumflex" horiz-adv-x="1274" d="M433 236Q433 179 432 141T426 76L818 82Q885 83 939 98T1031 150T1091 247T1112 399H1182L1170 0H113V68Q162 69 190 83T233 123T250 182T254 259V319V1204Q254 1246 255 1283T261 1352L113 +1343V1434H1098L1108 1075H1041Q1041 1163 1021 1219T965 1307T881 1350T777 1362L588 1359Q531 1356 500 1341T453 1297T436 1222T433 1114V784H817L802 961H893V530H826Q826 590 816 625T783 680T726 706T642 712Q628 712 613 712T433 705V236ZM678 1907H683L1059 +1618L1014 1548L674 1729H670L322 1550L281 1616L678 1907Z" /> +<glyph unicode="Ë" glyph-name="Edieresis" horiz-adv-x="1274" d="M433 236Q433 179 432 141T426 76L818 82Q885 83 939 98T1031 150T1091 247T1112 399H1182L1170 0H113V68Q162 69 190 83T233 123T250 182T254 259V319V1204Q254 1246 255 1283T261 1352L113 +1343V1434H1098L1108 1075H1041Q1041 1163 1021 1219T965 1307T881 1350T777 1362L588 1359Q531 1356 500 1341T453 1297T436 1222T433 1114V784H817L802 961H893V530H826Q826 590 816 625T783 680T726 706T642 712Q628 712 613 712T433 705V236ZM966 1718Q966 +1691 957 1668T933 1627T897 1599T854 1589Q831 1589 811 1599T776 1626T752 1667T743 1718Q743 1745 752 1769T777 1811T813 1839T856 1850Q879 1850 899 1840T934 1811T957 1769T966 1718ZM598 1718Q598 1691 589 1668T565 1627T529 1599T486 1589Q463 1589 443 +1599T408 1626T384 1667T375 1718Q375 1745 384 1769T409 1811T445 1839T488 1850Q511 1850 531 1840T566 1811T589 1769T598 1718Z" /> +<glyph unicode="Ì" glyph-name="Igrave" horiz-adv-x="684" d="M509 1204Q509 1246 510 1283T516 1352L368 1343V1434H829V1366Q771 1364 742 1345T701 1292T689 1214T688 1114V244Q688 188 687 148T681 82L829 90V0H368V68Q426 70 455 89T496 141T508 219T509 +319V1204ZM358 1739Q323 1760 309 1781T292 1820T294 1851T304 1872Q307 1876 317 1884T345 1896T387 1894T442 1862L700 1616L655 1556L358 1739Z" /> +<glyph unicode="Í" glyph-name="Iacute" horiz-adv-x="684" d="M254 1204Q254 1246 255 1283T261 1352L113 1343V1434H574V1366Q516 1364 487 1345T446 1292T434 1214T433 1114V244Q433 188 432 148T426 82L574 90V0H113V68Q171 70 200 89T241 141T253 219T254 +319V1204ZM246 1556L201 1616L459 1862Q489 1888 513 1894T555 1897T583 1885T597 1872Q602 1865 607 1852T609 1820T592 1781T543 1739L246 1556Z" /> +<glyph unicode="Î" glyph-name="Icircumflex" horiz-adv-x="686" d="M359 1907H363L719 1618L674 1548L355 1729H351L23 1550L-18 1616L359 1907ZM253 1204Q253 1246 254 1283T260 1352L112 1343V1434H573V1366Q515 1364 486 1345T445 1292T433 1214T432 +1114V244Q432 188 431 148T425 82L573 90V0H112V68Q170 70 199 89T240 141T252 219T253 319V1204Z" /> +<glyph unicode="Ï" glyph-name="Idieresis" horiz-adv-x="684" d="M253 1204Q253 1246 254 1283T260 1352L112 1343V1434H573V1366Q515 1364 486 1345T445 1292T433 1214T432 1114V244Q432 188 431 148T425 82L573 90V0H112V68Q170 70 199 89T240 141T252 +219T253 319V1204ZM635 1714Q635 1688 626 1665T601 1623T565 1596T523 1586Q501 1586 481 1595T445 1623T421 1664T412 1714Q412 1742 421 1766T446 1808T481 1836T525 1846Q548 1846 568 1836T603 1808T626 1766T635 1714ZM309 1714Q309 1688 300 1665T275 1623T239 +1596T197 1586Q175 1586 155 1595T119 1623T95 1664T86 1714Q86 1742 95 1766T120 1808T155 1836T199 1846Q222 1846 242 1836T277 1808T300 1766T309 1714Z" /> +<glyph unicode="Ð" glyph-name="Eth" horiz-adv-x="1528" d="M39 772H256V1204Q256 1246 257 1283T263 1352L115 1343V1434L598 1436Q784 1436 937 1393T1201 1261T1373 1036T1434 715Q1434 621 1412 532T1346 363T1237 217T1085 102T890 27T654 0H115V68Q164 +69 192 83T235 123T252 182T256 259V668L39 666V772ZM684 772V674L435 670V242Q435 185 434 147T428 82Q473 80 512 79T580 78H648Q780 78 888 127T1072 262T1191 467T1233 723Q1233 868 1194 985T1073 1186T869 1315T576 1360Q526 1360 498 1347T456 1310T439 +1251T435 1174V772H684Z" /> +<glyph unicode="Ñ" glyph-name="Ntilde" horiz-adv-x="1563" d="M1332 -33H1233L344 1162H341L348 285Q348 232 348 182T344 82L492 90V0H117V68Q164 68 191 84T231 125T248 177T252 229L254 1352L117 1343V1434H361L1233 267H1235L1237 1204Q1237 1290 1243 +1352L1096 1343V1434H1473V1366Q1415 1364 1387 1345T1347 1292T1335 1214T1336 1114L1332 -33ZM619 1737Q575 1737 541 1704T468 1614L398 1653Q416 1698 442 1736T499 1802T563 1846T630 1864Q670 1864 702 1854T762 1827T812 1792T859 1757T905 1731T957 1720Q984 +1720 1008 1731T1052 1760T1090 1802T1123 1853L1189 1821Q1167 1758 1139 1714T1079 1643T1013 1604T945 1591Q905 1591 873 1602T812 1629T760 1664T712 1699T666 1726T619 1737Z" /> +<glyph unicode="Ò" glyph-name="Ograve" horiz-adv-x="1626" d="M295 754Q295 678 309 597T351 437T423 289T526 166T660 82T827 51Q911 51 981 76T1107 146T1205 251T1275 381T1317 530T1332 678Q1332 752 1316 842T1269 1010T1193 1157T1089 1276T958 1356T800 +1385Q674 1385 579 1329T421 1183T327 981T295 754ZM94 717Q94 803 113 892T171 1064T269 1221T407 1349T586 1435T807 1467Q932 1467 1034 1435T1218 1349T1358 1221T1457 1064T1516 891T1536 717Q1536 632 1517 544T1459 372T1361 215T1223 86T1044 -1T823 -33Q693 +-33 589 -2T403 82T264 208T168 364T112 537T94 717ZM606 1739Q571 1760 557 1781T540 1820T542 1851T552 1872Q555 1876 565 1884T593 1896T635 1894T690 1862L948 1616L903 1556L606 1739Z" /> +<glyph unicode="Ó" glyph-name="Oacute" horiz-adv-x="1626" d="M295 754Q295 678 309 597T351 437T423 289T526 166T660 82T827 51Q911 51 981 76T1107 146T1205 251T1275 381T1317 530T1332 678Q1332 752 1316 842T1269 1010T1193 1157T1089 1276T958 1356T800 +1385Q674 1385 579 1329T421 1183T327 981T295 754ZM94 717Q94 803 113 892T171 1064T269 1221T407 1349T586 1435T807 1467Q932 1467 1034 1435T1218 1349T1358 1221T1457 1064T1516 891T1536 717Q1536 632 1517 544T1459 372T1361 215T1223 86T1044 -1T823 -33Q693 +-33 589 -2T403 82T264 208T168 364T112 537T94 717ZM687 1556L642 1616L900 1862Q930 1888 954 1894T996 1897T1024 1885T1038 1872Q1043 1865 1048 1852T1050 1820T1033 1781T984 1739L687 1556Z" /> +<glyph unicode="Ô" glyph-name="Ocircumflex" horiz-adv-x="1626" d="M295 754Q295 678 309 597T351 437T423 289T526 166T660 82T827 51Q911 51 981 76T1107 146T1205 251T1275 381T1317 530T1332 678Q1332 752 1316 842T1269 1010T1193 1157T1089 1276T958 +1356T800 1385Q674 1385 579 1329T421 1183T327 981T295 754ZM94 717Q94 803 113 892T171 1064T269 1221T407 1349T586 1435T807 1467Q932 1467 1034 1435T1218 1349T1358 1221T1457 1064T1516 891T1536 717Q1536 632 1517 544T1459 372T1361 215T1223 86T1044 +-1T823 -33Q693 -33 589 -2T403 82T264 208T168 364T112 537T94 717ZM829 1907H834L1210 1618L1165 1548L825 1729H821L473 1550L432 1616L829 1907Z" /> +<glyph unicode="Õ" glyph-name="Otilde" horiz-adv-x="1626" d="M295 754Q295 678 309 597T351 437T423 289T526 166T660 82T827 51Q911 51 981 76T1107 146T1205 251T1275 381T1317 530T1332 678Q1332 752 1316 842T1269 1010T1193 1157T1089 1276T958 1356T800 +1385Q674 1385 579 1329T421 1183T327 981T295 754ZM94 717Q94 803 113 892T171 1064T269 1221T407 1349T586 1435T807 1467Q932 1467 1034 1435T1218 1349T1358 1221T1457 1064T1516 891T1536 717Q1536 632 1517 544T1459 372T1361 215T1223 86T1044 -1T823 -33Q693 +-33 589 -2T403 82T264 208T168 364T112 537T94 717ZM653 1737Q609 1737 575 1704T502 1614L432 1653Q450 1698 476 1736T533 1802T597 1846T664 1864Q704 1864 736 1854T796 1827T846 1792T893 1757T939 1731T991 1720Q1018 1720 1042 1731T1086 1760T1124 1802T1157 +1853L1223 1821Q1201 1758 1173 1714T1113 1643T1047 1604T979 1591Q939 1591 907 1602T846 1629T794 1664T746 1699T700 1726T653 1737Z" /> +<glyph unicode="Ö" glyph-name="Odieresis" horiz-adv-x="1626" d="M295 754Q295 678 309 597T351 437T423 289T526 166T660 82T827 51Q911 51 981 76T1107 146T1205 251T1275 381T1317 530T1332 678Q1332 752 1316 842T1269 1010T1193 1157T1089 1276T958 +1356T800 1385Q674 1385 579 1329T421 1183T327 981T295 754ZM94 717Q94 803 113 892T171 1064T269 1221T407 1349T586 1435T807 1467Q932 1467 1034 1435T1218 1349T1358 1221T1457 1064T1516 891T1536 717Q1536 632 1517 544T1459 372T1361 215T1223 86T1044 +-1T823 -33Q693 -33 589 -2T403 82T264 208T168 364T112 537T94 717ZM1108 1718Q1108 1691 1099 1668T1075 1627T1039 1599T996 1589Q973 1589 953 1599T918 1626T894 1667T885 1718Q885 1745 894 1769T919 1811T955 1839T998 1850Q1021 1850 1041 1840T1076 1811T1099 +1769T1108 1718ZM740 1718Q740 1691 731 1668T707 1627T671 1599T628 1589Q605 1589 585 1599T550 1626T526 1667T517 1718Q517 1745 526 1769T551 1811T587 1839T630 1850Q653 1850 673 1840T708 1811T731 1769T740 1718Z" /> +<glyph unicode="×" glyph-name="multiply" horiz-adv-x="1130" d="M111 279L474 635L115 991L210 1083L567 727L941 1094L1023 1006L654 641L1023 274L931 182L561 549L199 190L111 279Z" /> +<glyph unicode="Ø" glyph-name="Oslash" horiz-adv-x="1626" d="M92 717Q92 803 111 892T169 1064T267 1221T405 1349T584 1435T805 1467Q930 1467 1032 1435Q1099 1414 1157 1383L1251 1546L1362 1477L1265 1312Q1315 1271 1356 1220Q1416 1147 1455 1064T1514 +891T1534 717Q1534 632 1515 544T1457 372T1359 215T1221 86T1042 -1T821 -33Q691 -33 586 -2Q545 10 507 26L395 -164L297 -102L403 81Q402 82 401 82Q320 136 262 208T166 364T110 538T92 717ZM293 754Q293 678 307 597T349 437T421 288Q447 246 478 211L1092 +1271L1084 1278Q1025 1328 953 1356T798 1385Q672 1385 577 1329T419 1183T325 981T293 754ZM1189 1161Q1185 1166 1182 1171L568 130Q610 102 658 82Q733 51 825 51Q909 51 979 76T1105 146T1203 251T1273 381T1316 527T1330 678Q1330 764 1314 850T1266 1014T1189 +1161Z" /> +<glyph unicode="Ù" glyph-name="Ugrave" horiz-adv-x="1540" d="M1332 639Q1331 505 1303 384T1210 170T1040 22T781 -33Q617 -33 506 10T328 142T231 370T202 698V1114Q202 1141 202 1174T204 1240T207 1302T210 1352L63 1346V1434H523V1366Q471 1366 443 +1349T401 1306T385 1253T382 1204V688Q382 612 388 538T410 396T456 272T533 173T647 108T806 84Q917 84 996 124T1127 236T1203 409T1230 629L1238 1204Q1238 1290 1244 1352L1097 1343V1434H1478V1366Q1420 1364 1391 1345T1349 1292T1337 1214T1336 1114L1332 +639ZM574 1739Q539 1760 525 1781T508 1820T510 1851T520 1872Q523 1876 533 1884T561 1896T603 1894T658 1862L916 1616L871 1556L574 1739Z" /> +<glyph unicode="Ú" glyph-name="Uacute" horiz-adv-x="1540" d="M1332 639Q1331 505 1303 384T1210 170T1040 22T781 -33Q617 -33 506 10T328 142T231 370T202 698V1114Q202 1141 202 1174T204 1240T207 1302T210 1352L63 1346V1434H523V1366Q471 1366 443 +1349T401 1306T385 1253T382 1204V688Q382 612 388 538T410 396T456 272T533 173T647 108T806 84Q917 84 996 124T1127 236T1203 409T1230 629L1238 1204Q1238 1290 1244 1352L1097 1343V1434H1478V1366Q1420 1364 1391 1345T1349 1292T1337 1214T1336 1114L1332 +639ZM747 1556L702 1616L960 1862Q990 1888 1014 1894T1056 1897T1084 1885T1098 1872Q1103 1865 1108 1852T1110 1820T1093 1781T1044 1739L747 1556Z" /> +<glyph unicode="Û" glyph-name="Ucircumflex" horiz-adv-x="1540" d="M1332 639Q1331 505 1303 384T1210 170T1040 22T781 -33Q617 -33 506 10T328 142T231 370T202 698V1114Q202 1141 202 1174T204 1240T207 1302T210 1352L63 1346V1434H523V1366Q471 1366 +443 1349T401 1306T385 1253T382 1204V688Q382 612 388 538T410 396T456 272T533 173T647 108T806 84Q917 84 996 124T1127 236T1203 409T1230 629L1238 1204Q1238 1290 1244 1352L1097 1343V1434H1478V1366Q1420 1364 1391 1345T1349 1292T1337 1214T1336 1114L1332 +639ZM807 1907H812L1188 1618L1143 1548L803 1729H799L451 1550L410 1616L807 1907Z" /> +<glyph unicode="Ü" glyph-name="Udieresis" horiz-adv-x="1540" d="M1332 639Q1331 505 1303 384T1210 170T1040 22T781 -33Q617 -33 506 10T328 142T231 370T202 698V1114Q202 1141 202 1174T204 1240T207 1302T210 1352L63 1346V1434H523V1366Q471 1366 +443 1349T401 1306T385 1253T382 1204V688Q382 612 388 538T410 396T456 272T533 173T647 108T806 84Q917 84 996 124T1127 236T1203 409T1230 629L1238 1204Q1238 1290 1244 1352L1097 1343V1434H1478V1366Q1420 1364 1391 1345T1349 1292T1337 1214T1336 1114L1332 +639ZM1103 1718Q1103 1691 1094 1668T1070 1627T1034 1599T991 1589Q968 1589 948 1599T913 1626T889 1667T880 1718Q880 1745 889 1769T914 1811T950 1839T993 1850Q1016 1850 1036 1840T1071 1811T1094 1769T1103 1718ZM735 1718Q735 1691 726 1668T702 1627T666 +1599T623 1589Q600 1589 580 1599T545 1626T521 1667T512 1718Q512 1745 521 1769T546 1811T582 1839T625 1850Q648 1850 668 1840T703 1811T726 1769T735 1718Z" /> +<glyph unicode="Ý" glyph-name="Yacute" horiz-adv-x="1298" d="M581 553L226 1116Q173 1198 148 1253T115 1348L-12 1343V1434H516V1366Q445 1366 408 1350T361 1304T363 1233T408 1143Q446 1082 480 1028T548 920T618 812T699 696H703Q932 1132 976 1212T1034 +1313T1063 1350L901 1343V1434H1319V1366Q1268 1363 1228 1346T1153 1297T1086 1216T759 614Q758 515 758 380T758 244Q758 134 752 82L922 90V0H441V68Q498 70 527 90T568 143T580 222T580 319L581 553ZM656 1556L611 1616L869 1862Q899 1888 923 1894T965 1897T993 +1885T1007 1872Q1012 1865 1017 1852T1019 1820T1002 1781T953 1739L656 1556Z" /> +<glyph unicode="Þ" glyph-name="Thorn" horiz-adv-x="1221" d="M254 1204Q254 1246 255 1283T261 1352L113 1343V1434H574V1366Q524 1364 496 1350T454 1311T436 1250Q433 1220 433 1184L543 1186Q846 1186 1007 1086T1169 777Q1169 723 1156 669T1110 565T1025 +473T895 398T720 348T461 330H433V244Q433 187 432 148T426 82L574 90V0H113V68Q162 69 190 83T233 123T250 182T254 259V1204ZM487 1107Q460 1106 433 1104V414Q455 411 473 410Q495 408 518 408Q633 408 718 433T858 506T941 621T969 772Q969 937 866 1022T555 +1108Q517 1108 487 1107Z" /> +<glyph unicode="ß" glyph-name="germandbls" horiz-adv-x="1395" d="M398 217Q398 176 397 145T389 78L518 84V0H101V61Q147 61 172 79T207 131T219 210T221 311L219 936L51 932V1024H219V1026Q219 1140 250 1237T343 1405T497 1516T712 1556Q750 1556 800 +1549T903 1523T1006 1471T1097 1383T1161 1252T1186 1070Q1186 1050 1185 1030T1180 979Q1155 981 1124 982T1059 984Q1013 984 967 978T884 955T823 907T799 825Q799 779 822 744T883 679T969 625T1068 574T1167 519T1254 455T1315 374T1338 270Q1338 192 1313 +135T1242 41T1132 -15T990 -33Q967 -33 938 -29T876 -17T813 3T754 33L760 -16H662V336H725Q729 272 748 219T800 128T879 68T986 47Q1020 47 1052 57T1110 89T1151 141T1166 213Q1166 258 1144 292T1084 353T999 404T902 451T805 503T720 567T660 650T637 760Q637 +827 660 882T729 976T840 1036T994 1057H1009V1079Q1009 1173 994 1238T953 1346T896 1414T830 1451T770 1466T705 1469Q623 1469 558 1430T459 1323T410 1159T396 938L398 217Z" /> +<glyph unicode="à" glyph-name="agrave" horiz-adv-x="1057" d="M694 501Q647 499 597 493T498 473T406 438T331 388T281 321T265 235Q266 197 279 169T314 122T364 94T424 84Q465 84 501 92T569 115T632 153T694 204V501ZM132 811Q132 862 162 907T246 985T374 +1038T537 1057Q709 1057 790 966T871 677L869 217Q869 185 868 153T861 78L1006 86V0H713Q707 35 704 61T699 116Q630 47 549 7T376 -33Q299 -33 242 -15T146 37T89 114T70 210Q70 273 97 325T171 417T280 487T411 536T553 563T695 571V699Q695 752 689 802T663 +893T599 958T498 982Q465 982 435 977T376 958T324 924T285 874Q300 857 305 837T311 797Q311 785 306 770T291 741T264 719T219 710Q179 710 156 739T132 811ZM328 1405Q302 1432 293 1455Q290 1462 287 1472T284 1493Q284 1506 287 1517T301 1541T326 1560T358 +1567T397 1556T443 1511L615 1235L558 1188L328 1405Z" /> +<glyph unicode="á" glyph-name="aacute" horiz-adv-x="1057" d="M694 501Q647 499 597 493T498 473T406 438T331 388T281 321T265 235Q266 197 279 169T314 122T364 94T424 84Q465 84 501 92T569 115T632 153T694 204V501ZM132 811Q132 862 162 907T246 985T374 +1038T537 1057Q709 1057 790 966T871 677L869 217Q869 185 868 153T861 78L1006 86V0H713Q707 35 704 61T699 116Q630 47 549 7T376 -33Q299 -33 242 -15T146 37T89 114T70 210Q70 273 97 325T171 417T280 487T411 536T553 563T695 571V699Q695 752 689 802T663 +893T599 958T498 982Q465 982 435 977T376 958T324 924T285 874Q300 857 305 837T311 797Q311 785 306 770T291 741T264 719T219 710Q179 710 156 739T132 811ZM453 1188L396 1235L568 1511Q591 1544 613 1555T652 1567T684 1561T710 1541T723 1517T727 1493Q727 +1482 724 1472T718 1455Q709 1432 683 1405L453 1188Z" /> +<glyph unicode="â" glyph-name="acircumflex" horiz-adv-x="1057" d="M694 501Q647 499 597 493T498 473T406 438T331 388T281 321T265 235Q266 197 279 169T314 122T364 94T424 84Q465 84 501 92T569 115T632 153T694 204V501ZM132 811Q132 862 162 907T246 +985T374 1038T537 1057Q709 1057 790 966T871 677L869 217Q869 185 868 153T861 78L1006 86V0H713Q707 35 704 61T699 116Q630 47 549 7T376 -33Q299 -33 242 -15T146 37T89 114T70 210Q70 273 97 325T171 417T280 487T411 536T553 563T695 571V699Q695 752 689 +802T663 893T599 958T498 982Q465 982 435 977T376 958T324 924T285 874Q300 857 305 837T311 797Q311 785 306 770T291 741T264 719T219 710Q179 710 156 739T132 811ZM513 1593H517L822 1260L767 1194L507 1417H503L238 1208L187 1268L513 1593Z" /> +<glyph unicode="ã" glyph-name="atilde" horiz-adv-x="1057" d="M694 501Q647 499 597 493T498 473T406 438T331 388T281 321T265 235Q266 197 279 169T314 122T364 94T424 84Q465 84 501 92T569 115T632 153T694 204V501ZM132 811Q132 862 162 907T246 985T374 +1038T537 1057Q709 1057 790 966T871 677L869 217Q869 185 868 153T861 78L1006 86V0H713Q707 35 704 61T699 116Q630 47 549 7T376 -33Q299 -33 242 -15T146 37T89 114T70 210Q70 273 97 325T171 417T280 487T411 536T553 563T695 571V699Q695 752 689 802T663 +893T599 958T498 982Q465 982 435 977T376 958T324 924T285 874Q300 857 305 837T311 797Q311 785 306 770T291 741T264 719T219 710Q179 710 156 739T132 811ZM363 1364Q325 1364 284 1344T213 1278L152 1313Q165 1349 188 1380T241 1436T301 1474T361 1489Q409 +1489 445 1472T511 1435T569 1397T631 1380Q676 1380 716 1407T780 1479L840 1448Q823 1397 799 1361T746 1300T688 1265T631 1253Q583 1253 546 1270T478 1308T419 1346T363 1364Z" /> +<glyph unicode="ä" glyph-name="adieresis" horiz-adv-x="1057" d="M694 501Q647 499 597 493T498 473T406 438T331 388T281 321T265 235Q266 197 279 169T314 122T364 94T424 84Q465 84 501 92T569 115T632 153T694 204V501ZM132 811Q132 862 162 907T246 +985T374 1038T537 1057Q709 1057 790 966T871 677L869 217Q869 185 868 153T861 78L1006 86V0H713Q707 35 704 61T699 116Q630 47 549 7T376 -33Q299 -33 242 -15T146 37T89 114T70 210Q70 273 97 325T171 417T280 487T411 536T553 563T695 571V699Q695 752 689 +802T663 893T599 958T498 982Q465 982 435 977T376 958T324 924T285 874Q300 857 305 837T311 797Q311 785 306 770T291 741T264 719T219 710Q179 710 156 739T132 811ZM430 1369Q430 1344 422 1322T399 1284T367 1258T328 1248Q307 1248 289 1257T256 1283T234 +1322T226 1369Q226 1394 234 1417T257 1456T290 1483T329 1493Q351 1493 369 1483T401 1457T422 1417T430 1369ZM772 1369Q772 1344 764 1322T741 1284T709 1258T670 1248Q649 1248 631 1257T598 1283T576 1322T568 1369Q568 1394 576 1417T599 1456T632 1483T671 +1493Q693 1493 711 1483T743 1457T764 1417T772 1369Z" /> +<glyph unicode="å" glyph-name="aring" horiz-adv-x="1057" d="M694 501Q647 499 597 493T498 473T406 438T331 388T281 321T265 235Q266 197 279 169T314 122T364 94T424 84Q465 84 501 92T569 115T632 153T694 204V501ZM132 811Q132 862 162 907T246 985T374 +1038T537 1057Q709 1057 790 966T871 677L869 217Q869 185 868 153T861 78L1006 86V0H713Q707 35 704 61T699 116Q630 47 549 7T376 -33Q299 -33 242 -15T146 37T89 114T70 210Q70 273 97 325T171 417T280 487T411 536T553 563T695 571V699Q695 752 689 802T663 +893T599 958T498 982Q465 982 435 977T376 958T324 924T285 874Q300 857 305 837T311 797Q311 785 306 770T291 741T264 719T219 710Q179 710 156 739T132 811ZM515 1495Q480 1495 452 1464T424 1372Q424 1343 430 1318T449 1273T480 1242T521 1231Q559 1231 584 +1263T609 1352Q609 1418 585 1456T515 1495ZM515 1559Q551 1559 586 1548T650 1514T698 1454T717 1374Q717 1322 701 1286T656 1223T593 1182T519 1167Q481 1167 445 1178T380 1214T334 1274T316 1362Q316 1406 333 1442T379 1504T442 1544T515 1559Z" /> +<glyph unicode="æ" glyph-name="ae" horiz-adv-x="1591" d="M707 219Q704 240 701 274T695 347T690 424T686 493Q617 490 543 476T407 433T305 356T265 239Q265 192 281 162T322 115T376 90T432 83Q517 83 583 119T707 219ZM1125 977Q1065 977 1023 953T952 +888T908 793T885 678H1311Q1311 732 1305 785T1278 881T1222 950T1125 977ZM136 804Q136 850 162 895T237 977T357 1035T516 1057Q619 1057 690 1011T799 880Q856 958 939 1007T1133 1057Q1211 1057 1277 1032T1391 953T1467 812T1496 604L871 592Q868 553 868 +518Q868 410 891 327T955 187T1052 101T1174 72Q1222 72 1262 85T1337 120T1401 174T1457 242L1508 201Q1466 137 1421 93T1327 20T1228 -20T1125 -33Q1004 -33 910 13T759 161H757Q718 108 673 71T579 11T477 -22T369 -33Q299 -33 244 -15T150 34T91 110T70 205Q70 +269 97 320T170 411T277 479T407 526T548 554T689 563V688Q689 743 684 795T657 889T596 956T486 982Q452 982 420 974T361 949T314 911T282 860Q296 847 303 826T310 793Q310 781 305 766T290 738T262 715T221 706Q183 706 160 732T136 804Z" /> +<glyph unicode="ç" glyph-name="ccedilla" horiz-adv-x="1094" d="M662 -116Q725 -116 762 -152T799 -251Q799 -292 779 -325T726 -383T651 -427T564 -459T476 -480T397 -494L385 -425Q437 -416 482 -402T560 -368T612 -324T631 -269Q631 -236 612 -222T566 +-208Q543 -208 518 -216T473 -238L404 -204L454 -16Q424 -8 396 2Q304 38 235 105T126 271T86 494Q86 565 103 634T154 765T234 881T340 974T470 1035T620 1057Q705 1057 775 1036T895 980T972 899T999 804Q999 782 993 763T974 728T945 705T904 696Q877 696 859 +705T830 728T814 758T809 788Q809 808 815 830T840 871Q826 907 799 928T741 962T678 977T625 981Q555 981 495 953T390 869T321 732T295 544Q295 442 320 356T392 207T503 109T647 74Q695 74 742 87T831 125T908 181T969 250L1022 209Q981 145 929 100T819 25T703 +-19T592 -33Q577 -33 562 -32L522 -152Q551 -134 589 -125T662 -116Z" /> +<glyph unicode="è" glyph-name="egrave" horiz-adv-x="1110" d="M604 977Q484 977 406 907T303 678H825Q825 732 813 785T775 881T706 950T604 977ZM1018 604L297 592Q296 474 315 378T375 214T480 109T635 72Q683 72 733 85T829 120T915 174T980 242L1030 +201Q988 137 933 93T818 20T698 -20T586 -33Q480 -33 389 5T230 114T125 285T86 510Q86 618 123 716T228 891T391 1012T602 1057Q687 1057 762 1029T895 945T985 804T1018 604ZM371 1405Q345 1432 336 1455Q333 1462 330 1472T327 1493Q327 1506 330 1517T344 1541T369 +1560T401 1567T440 1556T486 1511L658 1235L601 1188L371 1405Z" /> +<glyph unicode="é" glyph-name="eacute" horiz-adv-x="1110" d="M604 977Q484 977 406 907T303 678H825Q825 732 813 785T775 881T706 950T604 977ZM1018 604L297 592Q296 474 315 378T375 214T480 109T635 72Q683 72 733 85T829 120T915 174T980 242L1030 +201Q988 137 933 93T818 20T698 -20T586 -33Q480 -33 389 5T230 114T125 285T86 510Q86 618 123 716T228 891T391 1012T602 1057Q687 1057 762 1029T895 945T985 804T1018 604ZM540 1188L483 1235L655 1511Q678 1544 700 1555T739 1567T771 1561T797 1541T810 1517T814 +1493Q814 1482 811 1472T805 1455Q796 1432 770 1405L540 1188Z" /> +<glyph unicode="ê" glyph-name="ecircumflex" horiz-adv-x="1110" d="M604 977Q484 977 406 907T303 678H825Q825 732 813 785T775 881T706 950T604 977ZM1018 604L297 592Q296 474 315 378T375 214T480 109T635 72Q683 72 733 85T829 120T915 174T980 242L1030 +201Q988 137 933 93T818 20T698 -20T586 -33Q480 -33 389 5T230 114T125 285T86 510Q86 618 123 716T228 891T391 1012T602 1057Q687 1057 762 1029T895 945T985 804T1018 604ZM601 1593H605L910 1260L855 1194L595 1417H591L326 1208L275 1268L601 1593Z" /> +<glyph unicode="ë" glyph-name="edieresis" horiz-adv-x="1110" d="M604 977Q484 977 406 907T303 678H825Q825 732 813 785T775 881T706 950T604 977ZM1018 604L297 592Q296 474 315 378T375 214T480 109T635 72Q683 72 733 85T829 120T915 174T980 242L1030 +201Q988 137 933 93T818 20T698 -20T586 -33Q480 -33 389 5T230 114T125 285T86 510Q86 618 123 716T228 891T391 1012T602 1057Q687 1057 762 1029T895 945T985 804T1018 604ZM512 1369Q512 1344 504 1322T481 1284T449 1258T410 1248Q389 1248 371 1257T338 1283T316 +1322T308 1369Q308 1394 316 1417T339 1456T372 1483T411 1493Q433 1493 451 1483T483 1457T504 1417T512 1369ZM854 1369Q854 1344 846 1322T823 1284T791 1258T752 1248Q731 1248 713 1257T680 1283T658 1322T650 1369Q650 1394 658 1417T681 1456T714 1483T753 +1493Q775 1493 793 1483T825 1457T846 1417T854 1369Z" /> +<glyph unicode="ì" glyph-name="igrave" horiz-adv-x="575" d="M466 778Q466 810 467 840T474 911L329 903V989Q396 989 440 993T512 1006T555 1023T583 1044H642V217Q642 176 641 145T634 78L763 84V0H345V61Q391 61 416 79T452 131T464 210T466 311V778ZM309 +1405Q283 1432 274 1455Q271 1462 268 1472T265 1493Q265 1506 268 1517T282 1541T307 1560T339 1567T378 1556T424 1511L596 1235L539 1188L309 1405Z" /> +<glyph unicode="í" glyph-name="iacute" horiz-adv-x="578" d="M212 778Q212 810 213 840T220 911L75 903V989Q142 989 186 993T258 1006T301 1023T329 1044H388V217Q388 176 387 145T380 78L509 84V0H91V61Q137 61 162 79T198 131T210 210T212 311V778ZM263 +1188L206 1235L378 1511Q401 1544 423 1555T462 1567T494 1561T520 1541T533 1517T537 1493Q537 1482 534 1472T528 1455Q519 1432 493 1405L263 1188Z" /> +<glyph unicode="î" glyph-name="icircumflex" horiz-adv-x="575" d="M295 1593H299L574 1260L518 1194L289 1407H285L51 1208L0 1268L295 1593ZM212 778Q212 810 213 840T220 911L75 903V989Q142 989 186 993T258 1006T301 1023T329 1044H388V217Q388 176 +387 145T380 78L509 84V0H91V61Q137 61 162 79T198 131T210 210T212 311V778Z" /> +<glyph unicode="ï" glyph-name="idieresis" horiz-adv-x="575" d="M212 778Q212 810 213 840T220 911L75 903V989Q142 989 186 993T258 1006T301 1023T329 1044H388V217Q388 176 387 145T380 78L509 84V0H91V61Q137 61 162 79T198 131T210 210T212 311V778ZM243 +1368Q243 1343 235 1321T212 1283T180 1257T141 1248Q120 1248 102 1257T69 1282T47 1321T39 1368Q39 1394 47 1416T70 1456T103 1482T142 1492Q164 1492 182 1483T214 1456T235 1417T243 1368ZM530 1368Q530 1343 522 1321T499 1283T467 1257T428 1248Q407 1248 +389 1257T356 1282T334 1321T326 1368Q326 1394 334 1416T357 1456T390 1482T429 1492Q451 1492 469 1483T501 1456T522 1417T530 1368Z" /> +<glyph unicode="ð" glyph-name="eth" horiz-adv-x="1145" d="M299 1274L418 1415Q370 1436 319 1450T211 1470L220 1556Q293 1552 358 1536T485 1494L596 1624L655 1569L565 1455Q675 1393 761 1299T906 1087T996 834T1028 557Q1028 435 1000 328T910 141T755 +14T530 -33Q438 -33 358 0T217 97T123 250T88 455Q88 564 119 665T208 845T349 969T539 1016Q576 1016 617 1009T696 987T768 945T825 881H829Q814 942 786 1009T717 1141T622 1266T498 1370L373 1212L299 1274ZM846 469Q846 517 841 570T823 674T789 772T737 854T665 +911T569 932Q502 932 451 897T364 802T311 664T293 498Q293 388 313 305T370 164T455 78T563 49Q619 49 670 75T759 154T822 285T846 469Z" /> +<glyph unicode="ñ" glyph-name="ntilde" horiz-adv-x="1241" d="M213 778Q213 810 214 843T221 911L76 903V989Q143 989 185 993T252 1006T292 1023T318 1044H377Q379 1021 381 992T386 920Q419 949 458 974T541 1017T629 1046T719 1057Q897 1057 979 946T1061 +599V217Q1061 176 1060 145T1053 78L1182 84V0H764V61Q811 61 835 79T871 131T883 210T885 311V597Q883 774 827 863T649 953Q612 953 575 942T504 914T440 872T388 820Q389 802 389 782T389 740L387 217Q387 176 386 145T379 78L508 84V0H90V61Q137 61 161 79T196 +131T208 210T211 311L213 778ZM490 1364Q452 1364 411 1344T340 1278L279 1313Q292 1349 315 1380T368 1436T428 1474T488 1489Q536 1489 572 1472T638 1435T696 1397T758 1380Q803 1380 843 1407T907 1479L967 1448Q950 1397 926 1361T873 1300T815 1265T758 1253Q710 +1253 673 1270T605 1308T546 1346T490 1364Z" /> +<glyph unicode="ò" glyph-name="ograve" horiz-adv-x="1198" d="M598 979Q517 979 460 943T365 847T311 709T293 547Q293 452 312 362T372 203T472 91T614 49Q695 49 750 85T840 182T890 319T905 477Q905 569 888 659T834 820T739 935T598 979ZM598 1057Q706 +1057 800 1018T963 909T1073 744T1114 537Q1114 418 1075 314T966 133T802 12T598 -33Q490 -33 397 5T234 113T124 277T84 487Q84 608 123 712T232 893T395 1013T598 1057ZM409 1405Q383 1432 374 1455Q371 1462 368 1472T365 1493Q365 1506 368 1517T382 1541T407 +1560T439 1567T478 1556T524 1511L696 1235L639 1188L409 1405Z" /> +<glyph unicode="ó" glyph-name="oacute" horiz-adv-x="1198" d="M598 979Q517 979 460 943T365 847T311 709T293 547Q293 452 312 362T372 203T472 91T614 49Q695 49 750 85T840 182T890 319T905 477Q905 569 888 659T834 820T739 935T598 979ZM598 1057Q706 +1057 800 1018T963 909T1073 744T1114 537Q1114 418 1075 314T966 133T802 12T598 -33Q490 -33 397 5T234 113T124 277T84 487Q84 608 123 712T232 893T395 1013T598 1057ZM540 1188L483 1235L655 1511Q678 1544 700 1555T739 1567T771 1561T797 1541T810 1517T814 +1493Q814 1482 811 1472T805 1455Q796 1432 770 1405L540 1188Z" /> +<glyph unicode="ô" glyph-name="ocircumflex" horiz-adv-x="1198" d="M598 979Q517 979 460 943T365 847T311 709T293 547Q293 452 312 362T372 203T472 91T614 49Q695 49 750 85T840 182T890 319T905 477Q905 569 888 659T834 820T739 935T598 979ZM598 +1057Q706 1057 800 1018T963 909T1073 744T1114 537Q1114 418 1075 314T966 133T802 12T598 -33Q490 -33 397 5T234 113T124 277T84 487Q84 608 123 712T232 893T395 1013T598 1057ZM606 1593H610L915 1260L860 1194L600 1417H596L331 1208L280 1268L606 1593Z" +/> +<glyph unicode="õ" glyph-name="otilde" horiz-adv-x="1198" d="M598 979Q517 979 460 943T365 847T311 709T293 547Q293 452 312 362T372 203T472 91T614 49Q695 49 750 85T840 182T890 319T905 477Q905 569 888 659T834 820T739 935T598 979ZM598 1057Q706 +1057 800 1018T963 909T1073 744T1114 537Q1114 418 1075 314T966 133T802 12T598 -33Q490 -33 397 5T234 113T124 277T84 487Q84 608 123 712T232 893T395 1013T598 1057ZM465 1364Q427 1364 386 1344T315 1278L254 1313Q267 1349 290 1380T343 1436T403 1474T463 +1489Q511 1489 547 1472T613 1435T671 1397T733 1380Q778 1380 818 1407T882 1479L942 1448Q925 1397 901 1361T848 1300T790 1265T733 1253Q685 1253 648 1270T580 1308T521 1346T465 1364Z" /> +<glyph unicode="ö" glyph-name="odieresis" horiz-adv-x="1198" d="M598 979Q517 979 460 943T365 847T311 709T293 547Q293 452 312 362T372 203T472 91T614 49Q695 49 750 85T840 182T890 319T905 477Q905 569 888 659T834 820T739 935T598 979ZM598 1057Q706 +1057 800 1018T963 909T1073 744T1114 537Q1114 418 1075 314T966 133T802 12T598 -33Q490 -33 397 5T234 113T124 277T84 487Q84 608 123 712T232 893T395 1013T598 1057ZM523 1369Q523 1344 515 1322T492 1284T460 1258T421 1248Q400 1248 382 1257T349 1283T327 +1322T319 1369Q319 1394 327 1417T350 1456T383 1483T422 1493Q444 1493 462 1483T494 1457T515 1417T523 1369ZM865 1369Q865 1344 857 1322T834 1284T802 1258T763 1248Q742 1248 724 1257T691 1283T669 1322T661 1369Q661 1394 669 1417T692 1456T725 1483T764 +1493Q786 1493 804 1483T836 1457T857 1417T865 1369Z" /> +<glyph unicode="÷" glyph-name="divide" horiz-adv-x="541" d="M391 221Q391 194 381 170T355 128T317 100T271 90Q247 90 226 100T188 128T162 170T152 221Q152 249 162 273T188 316T227 344T273 355Q298 355 319 345T357 316T382 274T391 221ZM391 923Q391 +896 381 872T355 830T317 802T271 792Q247 792 226 802T188 830T162 872T152 923Q152 951 162 975T188 1018T227 1046T273 1057Q298 1057 319 1047T357 1018T382 976T391 923Z" /> +<glyph unicode="ø" glyph-name="oslash" horiz-adv-x="1198" d="M598 1057Q735 1057 850 993L954 1157L1051 1094L943 927L963 908Q1033 839 1073 744T1114 537Q1114 418 1075 314T966 133T802 12T598 -33Q532 -33 471 -19T356 24L240 -154L164 -98L274 77Q186 +146 135 251T84 487Q84 608 123 712T232 893T395 1013T598 1057ZM598 979Q517 979 460 943T365 847T311 709T293 547Q293 458 310 373T363 218L786 890Q748 933 703 956T598 979ZM614 49Q695 49 750 85T840 182T890 319T905 477Q905 523 901 568T888 659Q881 693 +872 724T850 785L425 130Q465 90 511 70T614 49Z" /> +<glyph unicode="ù" glyph-name="ugrave" horiz-adv-x="1223" d="M850 755Q850 805 852 840T860 911L713 905V989H776Q820 989 851 993T904 1006T940 1023T967 1044H1026L1024 270Q1024 254 1024 230T1022 179T1020 126T1016 78L1163 86V0H870Q865 35 862 +64T856 123Q824 91 785 63T703 13T613 -20T522 -33Q438 -33 375 -11T270 64T207 201T186 414V778Q186 810 187 843T194 911L53 905V989H117Q160 989 191 993T244 1006T280 1023T307 1044H366V420Q366 331 378 266T416 157T485 93T588 72Q627 72 664 85T736 120T799 +170T850 230V315V755ZM417 1405Q391 1432 382 1455Q379 1462 376 1472T373 1493Q373 1506 376 1517T390 1541T415 1560T447 1567T486 1556T532 1511L704 1235L647 1188L417 1405Z" /> +<glyph unicode="ú" glyph-name="uacute" horiz-adv-x="1223" d="M850 755Q850 805 852 840T860 911L713 905V989H776Q820 989 851 993T904 1006T940 1023T967 1044H1026L1024 270Q1024 254 1024 230T1022 179T1020 126T1016 78L1163 86V0H870Q865 35 862 +64T856 123Q824 91 785 63T703 13T613 -20T522 -33Q438 -33 375 -11T270 64T207 201T186 414V778Q186 810 187 843T194 911L53 905V989H117Q160 989 191 993T244 1006T280 1023T307 1044H366V420Q366 331 378 266T416 157T485 93T588 72Q627 72 664 85T736 120T799 +170T850 230V315V755ZM582 1188L525 1235L697 1511Q720 1544 742 1555T781 1567T813 1561T839 1541T852 1517T856 1493Q856 1482 853 1472T847 1455Q838 1432 812 1405L582 1188Z" /> +<glyph unicode="û" glyph-name="ucircumflex" horiz-adv-x="1223" d="M850 755Q850 805 852 840T860 911L713 905V989H776Q820 989 851 993T904 1006T940 1023T967 1044H1026L1024 270Q1024 254 1024 230T1022 179T1020 126T1016 78L1163 86V0H870Q865 35 +862 64T856 123Q824 91 785 63T703 13T613 -20T522 -33Q438 -33 375 -11T270 64T207 201T186 414V778Q186 810 187 843T194 911L53 905V989H117Q160 989 191 993T244 1006T280 1023T307 1044H366V420Q366 331 378 266T416 157T485 93T588 72Q627 72 664 85T736 +120T799 170T850 230V315V755ZM622 1593H626L931 1260L876 1194L616 1417H612L347 1208L296 1268L622 1593Z" /> +<glyph unicode="ü" glyph-name="udieresis" horiz-adv-x="1223" d="M850 755Q850 805 852 840T860 911L713 905V989H776Q820 989 851 993T904 1006T940 1023T967 1044H1026L1024 270Q1024 254 1024 230T1022 179T1020 126T1016 78L1163 86V0H870Q865 35 862 +64T856 123Q824 91 785 63T703 13T613 -20T522 -33Q438 -33 375 -11T270 64T207 201T186 414V778Q186 810 187 843T194 911L53 905V989H117Q160 989 191 993T244 1006T280 1023T307 1044H366V420Q366 331 378 266T416 157T485 93T588 72Q627 72 664 85T736 120T799 +170T850 230V315V755ZM556 1369Q556 1344 548 1322T525 1284T493 1258T454 1248Q433 1248 415 1257T382 1283T360 1322T352 1369Q352 1394 360 1417T383 1456T416 1483T455 1493Q477 1493 495 1483T527 1457T548 1417T556 1369ZM898 1369Q898 1344 890 1322T867 +1284T835 1258T796 1248Q775 1248 757 1257T724 1283T702 1322T694 1369Q694 1394 702 1417T725 1456T758 1483T797 1493Q819 1493 837 1483T869 1457T890 1417T898 1369Z" /> +<glyph unicode="ý" glyph-name="yacute" horiz-adv-x="1081" d="M264 -448Q275 -453 287 -453Q305 -453 333 -438T391 -372Q417 -327 453 -238T535 -23Q188 720 169 765T138 844T118 903T107 945L8 940V1024H432V963L423 962Q380 959 358 943T330 898T336 +821T617 207Q830 828 843 860T869 916T893 948L752 940V1024H1073V963Q1035 948 1008 925T959 868T920 791T627 -18Q580 -147 541 -247T460 -416T367 -519T248 -555Q216 -555 188 -548T139 -525T106 -486T94 -431Q94 -412 100 -394T117 -362T145 -340T182 -331Q206 +-331 222 -340T249 -363T263 -392T267 -420Q267 -426 267 -433T264 -448ZM585 1188L528 1235L700 1511Q723 1544 745 1555T784 1567T816 1561T842 1541T855 1517T859 1493Q859 1482 856 1472T850 1455Q841 1432 815 1405L585 1188Z" /> +<glyph unicode="þ" glyph-name="thorn" horiz-adv-x="1182" d="M155 1280Q155 1312 156 1345T163 1413L18 1405V1491Q85 1491 128 1495T199 1508T242 1525T270 1546H329L328 947Q391 998 471 1027T636 1057Q729 1057 812 1021T957 918T1056 756T1093 541Q1093 +410 1052 304T939 123T773 8T571 -33Q499 -33 439 -18T327 31V-305Q327 -346 326 -377T319 -444L448 -438V-522H30V-461Q77 -461 101 -443T136 -391T148 -312T151 -211L155 1280ZM567 957Q495 957 434 929T328 852L327 127Q430 49 567 49Q640 49 698 83T797 178T860 +323T882 510Q882 592 864 672T808 816T711 918T567 957Z" /> +<glyph unicode="ÿ" glyph-name="ydieresis" horiz-adv-x="1081" d="M264 -448Q275 -453 287 -453Q305 -453 333 -438T391 -372Q417 -327 453 -238T535 -23Q188 720 169 765T138 844T118 903T107 945L8 940V1024H432V963L423 962Q380 959 358 943T330 898T336 +821T617 207Q830 828 843 860T869 916T893 948L752 940V1024H1073V963Q1035 948 1008 925T959 868T920 791T627 -18Q580 -147 541 -247T460 -416T367 -519T248 -555Q216 -555 188 -548T139 -525T106 -486T94 -431Q94 -412 100 -394T117 -362T145 -340T182 -331Q206 +-331 222 -340T249 -363T263 -392T267 -420Q267 -426 267 -433T264 -448ZM524 1369Q524 1344 516 1322T493 1284T461 1258T422 1248Q401 1248 383 1257T350 1283T328 1322T320 1369Q320 1394 328 1417T351 1456T384 1483T423 1493Q445 1493 463 1483T495 1457T516 +1417T524 1369ZM866 1369Q866 1344 858 1322T835 1284T803 1258T764 1248Q743 1248 725 1257T692 1283T670 1322T662 1369Q662 1394 670 1417T693 1456T726 1483T765 1493Q787 1493 805 1483T837 1457T858 1417T866 1369Z" /> +<glyph unicode="–" glyph-name="endash" horiz-adv-x="1208" d="M135 727H1067V592L135 584V727Z" /> +<glyph unicode="—" glyph-name="emdash" horiz-adv-x="1434" d="M135 727H1292V592L135 584V727Z" /> +<glyph unicode="‘" glyph-name="quoteleft" horiz-adv-x="459" d="M301 1514Q284 1493 265 1457T232 1377T209 1285T207 1189Q236 1202 262 1200T309 1185T340 1150T352 1101Q352 1044 319 1013T239 982Q204 982 177 996T132 1036T104 1095T94 1168Q94 +1207 105 1259T136 1366T184 1470T246 1555L301 1514Z" /> +<glyph unicode="’" glyph-name="quoteright" horiz-adv-x="356" d="M102 1025Q119 1046 138 1082T171 1162T194 1254T196 1350Q167 1337 141 1339T94 1354T63 1389T51 1438Q51 1495 84 1526T164 1557Q199 1557 226 1543T271 1503T299 1444T309 1371Q309 +1332 298 1280T267 1173T219 1069T157 984L102 1025Z" /> +<glyph unicode="‚" glyph-name="quotesinglbase" horiz-adv-x="518" d="M186 -325Q203 -304 222 -268T255 -188T278 -96T280 0Q251 -13 225 -11T178 4T147 39T135 88Q135 145 168 176T248 207Q283 207 310 193T355 153T383 94T393 21Q393 -18 382 -70T351 +-177T303 -281T241 -366L186 -325Z" /> +<glyph unicode="“" glyph-name="quotedblleft" horiz-adv-x="819" d="M301 1514Q284 1493 265 1457T232 1377T209 1285T207 1189Q236 1202 262 1200T309 1185T340 1150T352 1101Q352 1044 319 1013T239 982Q204 982 177 996T132 1036T104 1095T94 1168Q94 +1207 105 1259T136 1366T184 1470T246 1555L301 1514ZM662 1514Q645 1493 626 1457T593 1377T570 1285T568 1189Q597 1202 623 1200T670 1185T701 1150T713 1101Q713 1044 680 1013T600 982Q565 982 538 996T493 1036T465 1095T455 1168Q455 1207 466 1259T497 +1366T545 1470T607 1555L662 1514Z" /> +<glyph unicode="”" glyph-name="quotedblright" horiz-adv-x="715" d="M102 1025Q119 1046 138 1082T171 1162T194 1254T196 1350Q167 1337 141 1339T94 1354T63 1389T51 1438Q51 1495 84 1526T164 1557Q199 1557 226 1543T271 1503T299 1444T309 1371Q309 +1332 298 1280T267 1173T219 1069T157 984L102 1025ZM462 1025Q479 1046 498 1082T531 1162T554 1254T556 1350Q527 1337 501 1339T454 1354T423 1389T411 1438Q411 1495 444 1526T524 1557Q559 1557 586 1543T631 1503T659 1444T669 1371Q669 1332 658 1280T627 +1173T579 1069T517 984L462 1025Z" /> +<glyph unicode="„" glyph-name="quotedblbase" horiz-adv-x="879" d="M186 -325Q203 -304 222 -268T255 -188T278 -96T280 0Q251 -13 225 -11T178 4T147 39T135 88Q135 145 168 176T248 207Q283 207 310 193T355 153T383 94T393 21Q393 -18 382 -70T351 +-177T303 -281T241 -366L186 -325ZM546 -325Q563 -304 582 -268T615 -188T638 -96T640 0Q611 -13 585 -11T538 4T507 39T495 88Q495 145 528 176T608 207Q643 207 670 193T715 153T743 94T753 21Q753 -18 742 -70T711 -177T663 -281T601 -366L546 -325Z" /> +<glyph unicode="•" glyph-name="bullet" horiz-adv-x="821" d="M102 766Q102 830 126 885T191 981T289 1045T409 1069Q474 1069 530 1046T627 981T694 885T719 766Q719 702 695 647T628 551T530 487T409 463Q345 463 289 486T192 551T126 647T102 766Z" /> +<glyph unicode="‹" glyph-name="guilsinglleft" horiz-adv-x="784" d="M64 569V561L625 -14L689 51L285 569V573L685 1059L619 1124L64 569Z" /> +<glyph unicode="›" glyph-name="guilsinglright" horiz-adv-x="784" d="M719 569V561L158 -14L94 51L498 569V573L98 1059L164 1124L719 569Z" /> +<hkern g1="quotedbl" g2="ampersand" k="31" /> +<hkern g1="quotedbl" g2="comma" k="258" /> +<hkern g1="quotedbl" g2="period" k="252" /> +<hkern g1="quotedbl" g2="slash" k="231" /> +<hkern g1="quotedbl" g2="four" k="94" /> +<hkern g1="quotedbl" g2="at" k="43" /> +<hkern g1="quotedbl" g2="A" k="100" /> +<hkern g1="quotedbl" g2="a" k="18" /> +<hkern g1="quotedbl" g2="c" k="31" /> +<hkern g1="quotedbl" g2="d" k="53" /> +<hkern g1="quotedbl" g2="e" k="31" /> +<hkern g1="quotedbl" g2="g" k="31" /> +<hkern g1="quotedbl" g2="o" k="31" /> +<hkern g1="quotedbl" g2="q" k="53" /> +<hkern g1="quotedbl" g2="guillemotleft" k="96" /> +<hkern g1="quotedbl" g2="Agrave" k="100" /> +<hkern g1="quotedbl" g2="Aacute" k="100" /> +<hkern g1="quotedbl" g2="Acircumflex" k="100" /> +<hkern g1="quotedbl" g2="Atilde" k="100" /> +<hkern g1="quotedbl" g2="Adieresis" k="100" /> +<hkern g1="quotedbl" g2="Aring" k="100" /> +<hkern g1="quotedbl" g2="AE" k="166" /> +<hkern g1="quotedbl" g2="agrave" k="18" /> +<hkern g1="quotedbl" g2="aacute" k="18" /> +<hkern g1="quotedbl" g2="acircumflex" k="18" /> +<hkern g1="quotedbl" g2="atilde" k="18" /> +<hkern g1="quotedbl" g2="adieresis" k="18" /> +<hkern g1="quotedbl" g2="aring" k="18" /> +<hkern g1="quotedbl" g2="ae" k="18" /> +<hkern g1="quotedbl" g2="ccedilla" k="31" /> +<hkern g1="quotedbl" g2="egrave" k="31" /> +<hkern g1="quotedbl" g2="eacute" k="31" /> +<hkern g1="quotedbl" g2="ecircumflex" k="31" /> +<hkern g1="quotedbl" g2="edieresis" k="31" /> +<hkern g1="quotedbl" g2="eth" k="27" /> +<hkern g1="quotedbl" g2="ograve" k="31" /> +<hkern g1="quotedbl" g2="oacute" k="31" /> +<hkern g1="quotedbl" g2="ocircumflex" k="31" /> +<hkern g1="quotedbl" g2="otilde" k="31" /> +<hkern g1="quotedbl" g2="odieresis" k="31" /> +<hkern g1="quotedbl" g2="oslash" k="31" /> +<hkern g1="quotedbl" g2="oe" k="31" /> +<hkern g1="quotedbl" g2="quotesinglbase" k="258" /> +<hkern g1="quotedbl" g2="quotedblbase" k="279" /> +<hkern g1="quotedbl" g2="guilsinglleft" k="96" /> +<hkern g1="ampersand" g2="quotedbl" k="106" /> +<hkern g1="ampersand" g2="quotesingle" k="106" /> +<hkern g1="ampersand" g2="A" k="-102" /> +<hkern g1="ampersand" g2="J" k="-80" /> +<hkern g1="ampersand" g2="T" k="63" /> +<hkern g1="ampersand" g2="U" k="33" /> +<hkern g1="ampersand" g2="V" k="61" /> +<hkern g1="ampersand" g2="W" k="66" /> +<hkern g1="ampersand" g2="X" k="-68" /> +<hkern g1="ampersand" g2="Y" k="66" /> +<hkern g1="ampersand" g2="h" k="-20" /> +<hkern g1="ampersand" g2="k" k="-20" /> +<hkern g1="ampersand" g2="l" k="-18" /> +<hkern g1="ampersand" g2="v" k="31" /> +<hkern g1="ampersand" g2="w" k="35" /> +<hkern g1="ampersand" g2="x" k="-43" /> +<hkern g1="ampersand" g2="y" k="37" /> +<hkern g1="ampersand" g2="Agrave" k="-102" /> +<hkern g1="ampersand" g2="Aacute" k="-102" /> +<hkern g1="ampersand" g2="Acircumflex" k="-102" /> +<hkern g1="ampersand" g2="Atilde" k="-102" /> +<hkern g1="ampersand" g2="Adieresis" k="-102" /> +<hkern g1="ampersand" g2="Aring" k="-102" /> +<hkern g1="ampersand" g2="AE" k="-133" /> +<hkern g1="ampersand" g2="Ugrave" k="33" /> +<hkern g1="ampersand" g2="Uacute" k="33" /> +<hkern g1="ampersand" g2="Ucircumflex" k="33" /> +<hkern g1="ampersand" g2="Udieresis" k="33" /> +<hkern g1="ampersand" g2="Yacute" k="66" /> +<hkern g1="ampersand" g2="yacute" k="37" /> +<hkern g1="ampersand" g2="ydieresis" k="37" /> +<hkern g1="ampersand" g2="quoteright" k="106" /> +<hkern g1="ampersand" g2="quotedblright" k="106" /> +<hkern g1="quotesingle" g2="ampersand" k="31" /> +<hkern g1="quotesingle" g2="comma" k="213" /> +<hkern g1="quotesingle" g2="period" k="213" /> +<hkern g1="quotesingle" g2="slash" k="213" /> +<hkern g1="quotesingle" g2="four" k="94" /> +<hkern g1="quotesingle" g2="at" k="43" /> +<hkern g1="quotesingle" g2="A" k="100" /> +<hkern g1="quotesingle" g2="a" k="18" /> +<hkern g1="quotesingle" g2="c" k="31" /> +<hkern g1="quotesingle" g2="d" k="53" /> +<hkern g1="quotesingle" g2="e" k="31" /> +<hkern g1="quotesingle" g2="g" k="31" /> +<hkern g1="quotesingle" g2="o" k="31" /> +<hkern g1="quotesingle" g2="q" k="53" /> +<hkern g1="quotesingle" g2="guillemotleft" k="96" /> +<hkern g1="quotesingle" g2="Agrave" k="100" /> +<hkern g1="quotesingle" g2="Aacute" k="100" /> +<hkern g1="quotesingle" g2="Acircumflex" k="100" /> +<hkern g1="quotesingle" g2="Atilde" k="100" /> +<hkern g1="quotesingle" g2="Adieresis" k="100" /> +<hkern g1="quotesingle" g2="Aring" k="100" /> +<hkern g1="quotesingle" g2="AE" k="166" /> +<hkern g1="quotesingle" g2="agrave" k="18" /> +<hkern g1="quotesingle" g2="aacute" k="18" /> +<hkern g1="quotesingle" g2="acircumflex" k="18" /> +<hkern g1="quotesingle" g2="atilde" k="18" /> +<hkern g1="quotesingle" g2="adieresis" k="18" /> +<hkern g1="quotesingle" g2="aring" k="18" /> +<hkern g1="quotesingle" g2="ae" k="18" /> +<hkern g1="quotesingle" g2="ccedilla" k="31" /> +<hkern g1="quotesingle" g2="egrave" k="31" /> +<hkern g1="quotesingle" g2="eacute" k="31" /> +<hkern g1="quotesingle" g2="ecircumflex" k="31" /> +<hkern g1="quotesingle" g2="edieresis" k="31" /> +<hkern g1="quotesingle" g2="eth" k="27" /> +<hkern g1="quotesingle" g2="ograve" k="31" /> +<hkern g1="quotesingle" g2="oacute" k="31" /> +<hkern g1="quotesingle" g2="ocircumflex" k="31" /> +<hkern g1="quotesingle" g2="otilde" k="31" /> +<hkern g1="quotesingle" g2="odieresis" k="31" /> +<hkern g1="quotesingle" g2="oslash" k="31" /> +<hkern g1="quotesingle" g2="oe" k="31" /> +<hkern g1="quotesingle" g2="quotesinglbase" k="213" /> +<hkern g1="quotesingle" g2="quotedblbase" k="213" /> +<hkern g1="quotesingle" g2="guilsinglleft" k="96" /> +<hkern g1="parenleft" g2="parenleft" k="37" /> +<hkern g1="parenleft" g2="zero" k="41" /> +<hkern g1="parenleft" g2="three" k="20" /> +<hkern g1="parenleft" g2="four" k="51" /> +<hkern g1="parenleft" g2="six" k="43" /> +<hkern g1="parenleft" g2="eight" k="27" /> +<hkern g1="parenleft" g2="nine" k="25" /> +<hkern g1="parenleft" g2="A" k="20" /> +<hkern g1="parenleft" g2="C" k="70" /> +<hkern g1="parenleft" g2="G" k="47" /> +<hkern g1="parenleft" g2="O" k="70" /> +<hkern g1="parenleft" g2="Q" k="70" /> +<hkern g1="parenleft" g2="S" k="23" /> +<hkern g1="parenleft" g2="V" k="-85" /> +<hkern g1="parenleft" g2="a" k="55" /> +<hkern g1="parenleft" g2="c" k="100" /> +<hkern g1="parenleft" g2="d" k="66" /> +<hkern g1="parenleft" g2="e" k="100" /> +<hkern g1="parenleft" g2="f" k="23" /> +<hkern g1="parenleft" g2="j" k="-170" /> +<hkern g1="parenleft" g2="m" k="43" /> +<hkern g1="parenleft" g2="n" k="43" /> +<hkern g1="parenleft" g2="o" k="100" /> +<hkern g1="parenleft" g2="q" k="66" /> +<hkern g1="parenleft" g2="r" k="43" /> +<hkern g1="parenleft" g2="s" k="51" /> +<hkern g1="parenleft" g2="t" k="41" /> +<hkern g1="parenleft" g2="u" k="51" /> +<hkern g1="parenleft" g2="v" k="41" /> +<hkern g1="parenleft" g2="w" k="41" /> +<hkern g1="parenleft" g2="x" k="23" /> +<hkern g1="parenleft" g2="z" k="43" /> +<hkern g1="parenleft" g2="braceleft" k="31" /> +<hkern g1="parenleft" g2="Agrave" k="20" /> +<hkern g1="parenleft" g2="Aacute" k="20" /> +<hkern g1="parenleft" g2="Acircumflex" k="20" /> +<hkern g1="parenleft" g2="Atilde" k="20" /> +<hkern g1="parenleft" g2="Adieresis" k="20" /> +<hkern g1="parenleft" g2="Aring" k="20" /> +<hkern g1="parenleft" g2="Ccedilla" k="70" /> +<hkern g1="parenleft" g2="Ograve" k="70" /> +<hkern g1="parenleft" g2="Oacute" k="70" /> +<hkern g1="parenleft" g2="Ocircumflex" k="70" /> +<hkern g1="parenleft" g2="Otilde" k="70" /> +<hkern g1="parenleft" g2="Odieresis" k="70" /> +<hkern g1="parenleft" g2="Oslash" k="70" /> +<hkern g1="parenleft" g2="germandbls" k="23" /> +<hkern g1="parenleft" g2="agrave" k="55" /> +<hkern g1="parenleft" g2="aacute" k="55" /> +<hkern g1="parenleft" g2="acircumflex" k="55" /> +<hkern g1="parenleft" g2="atilde" k="55" /> +<hkern g1="parenleft" g2="adieresis" k="55" /> +<hkern g1="parenleft" g2="aring" k="55" /> +<hkern g1="parenleft" g2="ae" k="55" /> +<hkern g1="parenleft" g2="ccedilla" k="100" /> +<hkern g1="parenleft" g2="egrave" k="100" /> +<hkern g1="parenleft" g2="eacute" k="100" /> +<hkern g1="parenleft" g2="ecircumflex" k="100" /> +<hkern g1="parenleft" g2="edieresis" k="100" /> +<hkern g1="parenleft" g2="igrave" k="-27" /> +<hkern g1="parenleft" g2="eth" k="31" /> +<hkern g1="parenleft" g2="ntilde" k="43" /> +<hkern g1="parenleft" g2="ograve" k="100" /> +<hkern g1="parenleft" g2="oacute" k="100" /> +<hkern g1="parenleft" g2="ocircumflex" k="100" /> +<hkern g1="parenleft" g2="otilde" k="100" /> +<hkern g1="parenleft" g2="odieresis" k="100" /> +<hkern g1="parenleft" g2="oslash" k="100" /> +<hkern g1="parenleft" g2="ugrave" k="51" /> +<hkern g1="parenleft" g2="uacute" k="51" /> +<hkern g1="parenleft" g2="ucircumflex" k="51" /> +<hkern g1="parenleft" g2="udieresis" k="51" /> +<hkern g1="parenleft" g2="OE" k="70" /> +<hkern g1="parenleft" g2="oe" k="100" /> +<hkern g1="parenright" g2="parenright" k="37" /> +<hkern g1="parenright" g2="bracketright" k="49" /> +<hkern g1="parenright" g2="braceright" k="27" /> +<hkern g1="asterisk" g2="A" k="57" /> +<hkern g1="asterisk" g2="B" k="18" /> +<hkern g1="asterisk" g2="D" k="18" /> +<hkern g1="asterisk" g2="E" k="18" /> +<hkern g1="asterisk" g2="F" k="18" /> +<hkern g1="asterisk" g2="H" k="18" /> +<hkern g1="asterisk" g2="I" k="18" /> +<hkern g1="asterisk" g2="J" k="39" /> +<hkern g1="asterisk" g2="K" k="18" /> +<hkern g1="asterisk" g2="L" k="18" /> +<hkern g1="asterisk" g2="M" k="20" /> +<hkern g1="asterisk" g2="N" k="18" /> +<hkern g1="asterisk" g2="P" k="18" /> +<hkern g1="asterisk" g2="R" k="18" /> +<hkern g1="asterisk" g2="T" k="-23" /> +<hkern g1="asterisk" g2="d" k="16" /> +<hkern g1="asterisk" g2="q" k="16" /> +<hkern g1="asterisk" g2="v" k="-55" /> +<hkern g1="asterisk" g2="w" k="-45" /> +<hkern g1="asterisk" g2="y" k="-33" /> +<hkern g1="asterisk" g2="Agrave" k="57" /> +<hkern g1="asterisk" g2="Aacute" k="57" /> +<hkern g1="asterisk" g2="Acircumflex" k="57" /> +<hkern g1="asterisk" g2="Atilde" k="57" /> +<hkern g1="asterisk" g2="Adieresis" k="57" /> +<hkern g1="asterisk" g2="Aring" k="57" /> +<hkern g1="asterisk" g2="AE" k="109" /> +<hkern g1="asterisk" g2="Egrave" k="18" /> +<hkern g1="asterisk" g2="Eacute" k="18" /> +<hkern g1="asterisk" g2="Ecircumflex" k="18" /> +<hkern g1="asterisk" g2="Edieresis" k="18" /> +<hkern g1="asterisk" g2="Igrave" k="18" /> +<hkern g1="asterisk" g2="Iacute" k="18" /> +<hkern g1="asterisk" g2="Icircumflex" k="18" /> +<hkern g1="asterisk" g2="Idieresis" k="18" /> +<hkern g1="asterisk" g2="Eth" k="18" /> +<hkern g1="asterisk" g2="Ntilde" k="18" /> +<hkern g1="asterisk" g2="Thorn" k="18" /> +<hkern g1="asterisk" g2="yacute" k="-33" /> +<hkern g1="asterisk" g2="ydieresis" k="-33" /> +<hkern g1="plus" g2="one" k="39" /> +<hkern g1="plus" g2="two" k="41" /> +<hkern g1="plus" g2="three" k="29" /> +<hkern g1="plus" g2="seven" k="74" /> +<hkern g1="comma" g2="quotedbl" k="258" /> +<hkern g1="comma" g2="quotesingle" k="213" /> +<hkern g1="comma" g2="zero" k="31" /> +<hkern g1="comma" g2="six" k="20" /> +<hkern g1="comma" g2="seven" k="66" /> +<hkern g1="comma" g2="C" k="45" /> +<hkern g1="comma" g2="G" k="39" /> +<hkern g1="comma" g2="O" k="45" /> +<hkern g1="comma" g2="Q" k="45" /> +<hkern g1="comma" g2="T" k="113" /> +<hkern g1="comma" g2="U" k="55" /> +<hkern g1="comma" g2="V" k="139" /> +<hkern g1="comma" g2="W" k="133" /> +<hkern g1="comma" g2="Y" k="125" /> +<hkern g1="comma" g2="t" k="25" /> +<hkern g1="comma" g2="u" k="23" /> +<hkern g1="comma" g2="v" k="80" /> +<hkern g1="comma" g2="w" k="100" /> +<hkern g1="comma" g2="y" k="94" /> +<hkern g1="comma" g2="Ccedilla" k="45" /> +<hkern g1="comma" g2="Ograve" k="45" /> +<hkern g1="comma" g2="Oacute" k="45" /> +<hkern g1="comma" g2="Ocircumflex" k="45" /> +<hkern g1="comma" g2="Otilde" k="45" /> +<hkern g1="comma" g2="Odieresis" k="45" /> +<hkern g1="comma" g2="Oslash" k="45" /> +<hkern g1="comma" g2="Ugrave" k="55" /> +<hkern g1="comma" g2="Uacute" k="55" /> +<hkern g1="comma" g2="Ucircumflex" k="55" /> +<hkern g1="comma" g2="Udieresis" k="55" /> +<hkern g1="comma" g2="Yacute" k="125" /> +<hkern g1="comma" g2="ugrave" k="23" /> +<hkern g1="comma" g2="uacute" k="23" /> +<hkern g1="comma" g2="ucircumflex" k="23" /> +<hkern g1="comma" g2="udieresis" k="23" /> +<hkern g1="comma" g2="yacute" k="94" /> +<hkern g1="comma" g2="ydieresis" k="94" /> +<hkern g1="comma" g2="OE" k="45" /> +<hkern g1="comma" g2="quoteleft" k="227" /> +<hkern g1="comma" g2="quoteright" k="178" /> +<hkern g1="comma" g2="quotedblleft" k="258" /> +<hkern g1="comma" g2="quotedblright" k="258" /> +<hkern g1="hyphen" g2="one" k="53" /> +<hkern g1="hyphen" g2="two" k="66" /> +<hkern g1="hyphen" g2="three" k="49" /> +<hkern g1="hyphen" g2="seven" k="125" /> +<hkern g1="hyphen" g2="A" k="40" /> +<hkern g1="hyphen" g2="B" k="33" /> +<hkern g1="hyphen" g2="D" k="33" /> +<hkern g1="hyphen" g2="E" k="33" /> +<hkern g1="hyphen" g2="F" k="33" /> +<hkern g1="hyphen" g2="H" k="33" /> +<hkern g1="hyphen" g2="I" k="33" /> +<hkern g1="hyphen" g2="J" k="59" /> +<hkern g1="hyphen" g2="K" k="33" /> +<hkern g1="hyphen" g2="L" k="33" /> +<hkern g1="hyphen" g2="M" k="31" /> +<hkern g1="hyphen" g2="N" k="33" /> +<hkern g1="hyphen" g2="P" k="33" /> +<hkern g1="hyphen" g2="R" k="33" /> +<hkern g1="hyphen" g2="S" k="29" /> +<hkern g1="hyphen" g2="T" k="131" /> +<hkern g1="hyphen" g2="U" k="16" /> +<hkern g1="hyphen" g2="V" k="61" /> +<hkern g1="hyphen" g2="W" k="63" /> +<hkern g1="hyphen" g2="X" k="86" /> +<hkern g1="hyphen" g2="Y" k="111" /> +<hkern g1="hyphen" g2="Z" k="68" /> +<hkern g1="hyphen" g2="f" k="18" /> +<hkern g1="hyphen" g2="v" k="-55" /> +<hkern g1="hyphen" g2="w" k="16" /> +<hkern g1="hyphen" g2="y" k="16" /> +<hkern g1="hyphen" g2="Agrave" k="40" /> +<hkern g1="hyphen" g2="Aacute" k="40" /> +<hkern g1="hyphen" g2="Acircumflex" k="40" /> +<hkern g1="hyphen" g2="Atilde" k="40" /> +<hkern g1="hyphen" g2="Adieresis" k="40" /> +<hkern g1="hyphen" g2="Aring" k="40" /> +<hkern g1="hyphen" g2="AE" k="84" /> +<hkern g1="hyphen" g2="Egrave" k="33" /> +<hkern g1="hyphen" g2="Eacute" k="33" /> +<hkern g1="hyphen" g2="Ecircumflex" k="33" /> +<hkern g1="hyphen" g2="Edieresis" k="33" /> +<hkern g1="hyphen" g2="Igrave" k="33" /> +<hkern g1="hyphen" g2="Iacute" k="33" /> +<hkern g1="hyphen" g2="Icircumflex" k="33" /> +<hkern g1="hyphen" g2="Idieresis" k="33" /> +<hkern g1="hyphen" g2="Eth" k="33" /> +<hkern g1="hyphen" g2="Ntilde" k="33" /> +<hkern g1="hyphen" g2="Ugrave" k="16" /> +<hkern g1="hyphen" g2="Uacute" k="16" /> +<hkern g1="hyphen" g2="Ucircumflex" k="16" /> +<hkern g1="hyphen" g2="Udieresis" k="16" /> +<hkern g1="hyphen" g2="Yacute" k="111" /> +<hkern g1="hyphen" g2="Thorn" k="33" /> +<hkern g1="hyphen" g2="germandbls" k="18" /> +<hkern g1="hyphen" g2="yacute" k="16" /> +<hkern g1="hyphen" g2="ydieresis" k="16" /> +<hkern g1="period" g2="quotedbl" k="252" /> +<hkern g1="period" g2="quotesingle" k="213" /> +<hkern g1="period" g2="zero" k="31" /> +<hkern g1="period" g2="six" k="20" /> +<hkern g1="period" g2="seven" k="66" /> +<hkern g1="period" g2="C" k="45" /> +<hkern g1="period" g2="G" k="39" /> +<hkern g1="period" g2="O" k="45" /> +<hkern g1="period" g2="Q" k="45" /> +<hkern g1="period" g2="T" k="113" /> +<hkern g1="period" g2="U" k="55" /> +<hkern g1="period" g2="V" k="139" /> +<hkern g1="period" g2="W" k="133" /> +<hkern g1="period" g2="Y" k="125" /> +<hkern g1="period" g2="t" k="25" /> +<hkern g1="period" g2="u" k="23" /> +<hkern g1="period" g2="v" k="80" /> +<hkern g1="period" g2="w" k="100" /> +<hkern g1="period" g2="y" k="94" /> +<hkern g1="period" g2="Ccedilla" k="45" /> +<hkern g1="period" g2="Ograve" k="45" /> +<hkern g1="period" g2="Oacute" k="45" /> +<hkern g1="period" g2="Ocircumflex" k="45" /> +<hkern g1="period" g2="Otilde" k="45" /> +<hkern g1="period" g2="Odieresis" k="45" /> +<hkern g1="period" g2="Oslash" k="45" /> +<hkern g1="period" g2="Ugrave" k="55" /> +<hkern g1="period" g2="Uacute" k="55" /> +<hkern g1="period" g2="Ucircumflex" k="55" /> +<hkern g1="period" g2="Udieresis" k="55" /> +<hkern g1="period" g2="Yacute" k="125" /> +<hkern g1="period" g2="ugrave" k="23" /> +<hkern g1="period" g2="uacute" k="23" /> +<hkern g1="period" g2="ucircumflex" k="23" /> +<hkern g1="period" g2="udieresis" k="23" /> +<hkern g1="period" g2="yacute" k="94" /> +<hkern g1="period" g2="ydieresis" k="94" /> +<hkern g1="period" g2="OE" k="45" /> +<hkern g1="period" g2="quoteleft" k="227" /> +<hkern g1="period" g2="quoteright" k="178" /> +<hkern g1="period" g2="quotedblleft" k="252" /> +<hkern g1="period" g2="quotedblright" k="252" /> +<hkern g1="slash" g2="slash" k="657" /> +<hkern g1="slash" g2="zero" k="27" /> +<hkern g1="slash" g2="four" k="88" /> +<hkern g1="slash" g2="six" k="33" /> +<hkern g1="slash" g2="A" k="98" /> +<hkern g1="slash" g2="C" k="39" /> +<hkern g1="slash" g2="G" k="41" /> +<hkern g1="slash" g2="O" k="39" /> +<hkern g1="slash" g2="Q" k="39" /> +<hkern g1="slash" g2="Y" k="-10" /> +<hkern g1="slash" g2="a" k="90" /> +<hkern g1="slash" g2="b" k="-10" /> +<hkern g1="slash" g2="c" k="102" /> +<hkern g1="slash" g2="d" k="102" /> +<hkern g1="slash" g2="e" k="102" /> +<hkern g1="slash" g2="g" k="100" /> +<hkern g1="slash" g2="m" k="59" /> +<hkern g1="slash" g2="n" k="59" /> +<hkern g1="slash" g2="o" k="102" /> +<hkern g1="slash" g2="p" k="55" /> +<hkern g1="slash" g2="q" k="102" /> +<hkern g1="slash" g2="r" k="59" /> +<hkern g1="slash" g2="s" k="82" /> +<hkern g1="slash" g2="t" k="27" /> +<hkern g1="slash" g2="u" k="49" /> +<hkern g1="slash" g2="v" k="25" /> +<hkern g1="slash" g2="w" k="25" /> +<hkern g1="slash" g2="x" k="31" /> +<hkern g1="slash" g2="y" k="20" /> +<hkern g1="slash" g2="z" k="63" /> +<hkern g1="slash" g2="Agrave" k="98" /> +<hkern g1="slash" g2="Aacute" k="98" /> +<hkern g1="slash" g2="Acircumflex" k="98" /> +<hkern g1="slash" g2="Atilde" k="98" /> +<hkern g1="slash" g2="Adieresis" k="98" /> +<hkern g1="slash" g2="Aring" k="98" /> +<hkern g1="slash" g2="AE" k="141" /> +<hkern g1="slash" g2="Ccedilla" k="39" /> +<hkern g1="slash" g2="Ograve" k="39" /> +<hkern g1="slash" g2="Oacute" k="39" /> +<hkern g1="slash" g2="Ocircumflex" k="39" /> +<hkern g1="slash" g2="Otilde" k="39" /> +<hkern g1="slash" g2="Odieresis" k="39" /> +<hkern g1="slash" g2="Oslash" k="39" /> +<hkern g1="slash" g2="Yacute" k="-10" /> +<hkern g1="slash" g2="agrave" k="90" /> +<hkern g1="slash" g2="aacute" k="90" /> +<hkern g1="slash" g2="acircumflex" k="90" /> +<hkern g1="slash" g2="atilde" k="90" /> +<hkern g1="slash" g2="adieresis" k="90" /> +<hkern g1="slash" g2="aring" k="90" /> +<hkern g1="slash" g2="ae" k="90" /> +<hkern g1="slash" g2="ccedilla" k="102" /> +<hkern g1="slash" g2="egrave" k="102" /> +<hkern g1="slash" g2="eacute" k="102" /> +<hkern g1="slash" g2="ecircumflex" k="102" /> +<hkern g1="slash" g2="edieresis" k="102" /> +<hkern g1="slash" g2="igrave" k="-23" /> +<hkern g1="slash" g2="ntilde" k="59" /> +<hkern g1="slash" g2="ograve" k="102" /> +<hkern g1="slash" g2="oacute" k="102" /> +<hkern g1="slash" g2="ocircumflex" k="102" /> +<hkern g1="slash" g2="otilde" k="102" /> +<hkern g1="slash" g2="odieresis" k="102" /> +<hkern g1="slash" g2="oslash" k="102" /> +<hkern g1="slash" g2="ugrave" k="49" /> +<hkern g1="slash" g2="uacute" k="49" /> +<hkern g1="slash" g2="ucircumflex" k="49" /> +<hkern g1="slash" g2="udieresis" k="49" /> +<hkern g1="slash" g2="yacute" k="20" /> +<hkern g1="slash" g2="thorn" k="-10" /> +<hkern g1="slash" g2="ydieresis" k="20" /> +<hkern g1="slash" g2="OE" k="39" /> +<hkern g1="slash" g2="oe" k="102" /> +<hkern g1="zero" g2="parenright" k="41" /> +<hkern g1="zero" g2="comma" k="33" /> +<hkern g1="zero" g2="period" k="33" /> +<hkern g1="zero" g2="slash" k="100" /> +<hkern g1="zero" g2="two" k="15" /> +<hkern g1="zero" g2="seven" k="45" /> +<hkern g1="zero" g2="Y" k="20" /> +<hkern g1="zero" g2="backslash" k="27" /> +<hkern g1="zero" g2="bracketright" k="61" /> +<hkern g1="zero" g2="braceright" k="35" /> +<hkern g1="zero" g2="Yacute" k="20" /> +<hkern g1="zero" g2="quotesinglbase" k="33" /> +<hkern g1="zero" g2="quotedblbase" k="33" /> +<hkern g1="one" g2="hyphen" k="25" /> +<hkern g1="one" g2="slash" k="37" /> +<hkern g1="one" g2="A" k="-25" /> +<hkern g1="one" g2="bracketright" k="27" /> +<hkern g1="one" g2="uni00AD" k="25" /> +<hkern g1="one" g2="middot" k="35" /> +<hkern g1="one" g2="Agrave" k="-25" /> +<hkern g1="one" g2="Aacute" k="-25" /> +<hkern g1="one" g2="Acircumflex" k="-25" /> +<hkern g1="one" g2="Atilde" k="-25" /> +<hkern g1="one" g2="Adieresis" k="-25" /> +<hkern g1="one" g2="Aring" k="-25" /> +<hkern g1="one" g2="endash" k="25" /> +<hkern g1="one" g2="emdash" k="25" /> +<hkern g1="one" g2="fraction" k="-39" /> +<hkern g1="one" g2="minus" k="23" /> +<hkern g1="two" g2="hyphen" k="37" /> +<hkern g1="two" g2="slash" k="47" /> +<hkern g1="two" g2="three" k="30" /> +<hkern g1="two" g2="four" k="45" /> +<hkern g1="two" g2="bracketright" k="39" /> +<hkern g1="two" g2="uni00AD" k="37" /> +<hkern g1="two" g2="middot" k="43" /> +<hkern g1="two" g2="endash" k="37" /> +<hkern g1="two" g2="emdash" k="37" /> +<hkern g1="two" g2="minus" k="35" /> +<hkern g1="three" g2="parenright" k="37" /> +<hkern g1="three" g2="slash" k="82" /> +<hkern g1="three" g2="seven" k="50" /> +<hkern g1="three" g2="bracketright" k="49" /> +<hkern g1="three" g2="braceright" k="31" /> +<hkern g1="four" g2="quotedbl" k="25" /> +<hkern g1="four" g2="quotesingle" k="25" /> +<hkern g1="four" g2="parenright" k="25" /> +<hkern g1="four" g2="slash" k="49" /> +<hkern g1="four" g2="bracketright" k="37" /> +<hkern g1="four" g2="degree" k="27" /> +<hkern g1="five" g2="slash" k="78" /> +<hkern g1="six" g2="parenright" k="25" /> +<hkern g1="six" g2="slash" k="82" /> +<hkern g1="six" g2="seven" k="15" /> +<hkern g1="six" g2="bracketright" k="35" /> +<hkern g1="six" g2="braceright" k="23" /> +<hkern g1="seven" g2="plus" k="29" /> +<hkern g1="seven" g2="comma" k="90" /> +<hkern g1="seven" g2="hyphen" k="39" /> +<hkern g1="seven" g2="period" k="90" /> +<hkern g1="seven" g2="slash" k="150" /> +<hkern g1="seven" g2="four" k="29" /> +<hkern g1="seven" g2="colon" k="50" /> +<hkern g1="seven" g2="A" k="45" /> +<hkern g1="seven" g2="V" k="-55" /> +<hkern g1="seven" g2="W" k="-31" /> +<hkern g1="seven" g2="X" k="-25" /> +<hkern g1="seven" g2="Y" k="-53" /> +<hkern g1="seven" g2="bracketright" k="-10" /> +<hkern g1="seven" g2="cent" k="25" /> +<hkern g1="seven" g2="uni00AD" k="39" /> +<hkern g1="seven" g2="middot" k="43" /> +<hkern g1="seven" g2="Agrave" k="45" /> +<hkern g1="seven" g2="Aacute" k="45" /> +<hkern g1="seven" g2="Acircumflex" k="45" /> +<hkern g1="seven" g2="Atilde" k="45" /> +<hkern g1="seven" g2="Adieresis" k="45" /> +<hkern g1="seven" g2="Aring" k="45" /> +<hkern g1="seven" g2="AE" k="120" /> +<hkern g1="seven" g2="Yacute" k="-53" /> +<hkern g1="seven" g2="endash" k="39" /> +<hkern g1="seven" g2="emdash" k="39" /> +<hkern g1="seven" g2="quoteleft" k="-70" /> +<hkern g1="seven" g2="quotesinglbase" k="120" /> +<hkern g1="seven" g2="quotedblleft" k="-70" /> +<hkern g1="seven" g2="quotedblbase" k="90" /> +<hkern g1="seven" g2="fraction" k="66" /> +<hkern g1="seven" g2="minus" k="43" /> +<hkern g1="eight" g2="parenright" k="33" /> +<hkern g1="eight" g2="slash" k="74" /> +<hkern g1="eight" g2="nine" k="15" /> +<hkern g1="eight" g2="bracketright" k="47" /> +<hkern g1="eight" g2="braceright" k="29" /> +<hkern g1="eight" g2="middot" k="23" /> +<hkern g1="nine" g2="parenright" k="37" /> +<hkern g1="nine" g2="comma" k="33" /> +<hkern g1="nine" g2="period" k="33" /> +<hkern g1="nine" g2="slash" k="102" /> +<hkern g1="nine" g2="seven" k="50" /> +<hkern g1="nine" g2="bracketright" k="51" /> +<hkern g1="nine" g2="braceright" k="31" /> +<hkern g1="nine" g2="quotesinglbase" k="33" /> +<hkern g1="nine" g2="quotedblbase" k="33" /> +<hkern g1="equal" g2="one" k="23" /> +<hkern g1="equal" g2="seven" k="72" /> +<hkern g1="at" g2="quotedbl" k="20" /> +<hkern g1="at" g2="quotesingle" k="20" /> +<hkern g1="at" g2="V" k="31" /> +<hkern g1="at" g2="W" k="39" /> +<hkern g1="at" g2="Y" k="53" /> +<hkern g1="at" g2="Yacute" k="53" /> +<hkern g1="at" g2="quoteright" k="43" /> +<hkern g1="at" g2="quotedblright" k="43" /> +<hkern g1="A" g2="quotedbl" k="100" /> +<hkern g1="A" g2="quotesingle" k="100" /> +<hkern g1="A" g2="asterisk" k="57" /> +<hkern g1="A" g2="hyphen" k="40" /> +<hkern g1="A" g2="two" k="-10" /> +<hkern g1="A" g2="seven" k="20" /> +<hkern g1="A" g2="question" k="25" /> +<hkern g1="A" g2="A" k="-95" /> +<hkern g1="A" g2="C" k="10" /> +<hkern g1="A" g2="G" k="12" /> +<hkern g1="A" g2="J" k="-100" /> +<hkern g1="A" g2="O" k="10" /> +<hkern g1="A" g2="Q" k="10" /> +<hkern g1="A" g2="T" k="50" /> +<hkern g1="A" g2="U" k="39" /> +<hkern g1="A" g2="V" k="80" /> +<hkern g1="A" g2="W" k="94" /> +<hkern g1="A" g2="X" k="-85" /> +<hkern g1="A" g2="Y" k="70" /> +<hkern g1="A" g2="Z" k="-20" /> +<hkern g1="A" g2="backslash" k="100" /> +<hkern g1="A" g2="bracketright" k="51" /> +<hkern g1="A" g2="a" k="-55" /> +<hkern g1="A" g2="t" k="14" /> +<hkern g1="A" g2="v" k="40" /> +<hkern g1="A" g2="w" k="40" /> +<hkern g1="A" g2="x" k="-55" /> +<hkern g1="A" g2="y" k="30" /> +<hkern g1="A" g2="z" k="-60" /> +<hkern g1="A" g2="uni00AD" k="40" /> +<hkern g1="A" g2="acute" k="100" /> +<hkern g1="A" g2="Agrave" k="-95" /> +<hkern g1="A" g2="Aacute" k="-95" /> +<hkern g1="A" g2="Acircumflex" k="-95" /> +<hkern g1="A" g2="Atilde" k="-95" /> +<hkern g1="A" g2="Adieresis" k="-95" /> +<hkern g1="A" g2="Aring" k="-95" /> +<hkern g1="A" g2="AE" k="-120" /> +<hkern g1="A" g2="Ccedilla" k="10" /> +<hkern g1="A" g2="Ograve" k="10" /> +<hkern g1="A" g2="Oacute" k="10" /> +<hkern g1="A" g2="Ocircumflex" k="10" /> +<hkern g1="A" g2="Otilde" k="10" /> +<hkern g1="A" g2="Odieresis" k="10" /> +<hkern g1="A" g2="Oslash" k="10" /> +<hkern g1="A" g2="Ugrave" k="39" /> +<hkern g1="A" g2="Uacute" k="39" /> +<hkern g1="A" g2="Ucircumflex" k="39" /> +<hkern g1="A" g2="Udieresis" k="39" /> +<hkern g1="A" g2="Yacute" k="70" /> +<hkern g1="A" g2="agrave" k="-55" /> +<hkern g1="A" g2="aacute" k="-55" /> +<hkern g1="A" g2="acircumflex" k="-55" /> +<hkern g1="A" g2="atilde" k="-55" /> +<hkern g1="A" g2="adieresis" k="-55" /> +<hkern g1="A" g2="aring" k="-55" /> +<hkern g1="A" g2="ae" k="-55" /> +<hkern g1="A" g2="yacute" k="30" /> +<hkern g1="A" g2="ydieresis" k="30" /> +<hkern g1="A" g2="OE" k="10" /> +<hkern g1="A" g2="endash" k="40" /> +<hkern g1="A" g2="emdash" k="40" /> +<hkern g1="A" g2="quoteleft" k="120" /> +<hkern g1="A" g2="quoteright" k="109" /> +<hkern g1="A" g2="quotedblleft" k="120" /> +<hkern g1="A" g2="quotedblright" k="109" /> +<hkern g1="B" g2="parenright" k="43" /> +<hkern g1="B" g2="slash" k="84" /> +<hkern g1="B" g2="B" k="18" /> +<hkern g1="B" g2="D" k="18" /> +<hkern g1="B" g2="E" k="18" /> +<hkern g1="B" g2="F" k="18" /> +<hkern g1="B" g2="H" k="18" /> +<hkern g1="B" g2="I" k="18" /> +<hkern g1="B" g2="J" k="33" /> +<hkern g1="B" g2="K" k="18" /> +<hkern g1="B" g2="L" k="18" /> +<hkern g1="B" g2="M" k="18" /> +<hkern g1="B" g2="N" k="18" /> +<hkern g1="B" g2="P" k="18" /> +<hkern g1="B" g2="R" k="18" /> +<hkern g1="B" g2="T" k="18" /> +<hkern g1="B" g2="U" k="15" /> +<hkern g1="B" g2="V" k="30" /> +<hkern g1="B" g2="W" k="39" /> +<hkern g1="B" g2="X" k="45" /> +<hkern g1="B" g2="Y" k="50" /> +<hkern g1="B" g2="Z" k="12" /> +<hkern g1="B" g2="backslash" k="43" /> +<hkern g1="B" g2="bracketright" k="74" /> +<hkern g1="B" g2="f" k="16" /> +<hkern g1="B" g2="g" k="8" /> +<hkern g1="B" g2="h" k="18" /> +<hkern g1="B" g2="i" k="16" /> +<hkern g1="B" g2="j" k="14" /> +<hkern g1="B" g2="k" k="18" /> +<hkern g1="B" g2="l" k="16" /> +<hkern g1="B" g2="m" k="16" /> +<hkern g1="B" g2="n" k="16" /> +<hkern g1="B" g2="p" k="12" /> +<hkern g1="B" g2="r" k="16" /> +<hkern g1="B" g2="t" k="14" /> +<hkern g1="B" g2="u" k="14" /> +<hkern g1="B" g2="v" k="23" /> +<hkern g1="B" g2="w" k="25" /> +<hkern g1="B" g2="x" k="53" /> +<hkern g1="B" g2="y" k="27" /> +<hkern g1="B" g2="z" k="14" /> +<hkern g1="B" g2="braceright" k="41" /> +<hkern g1="B" g2="AE" k="61" /> +<hkern g1="B" g2="Egrave" k="18" /> +<hkern g1="B" g2="Eacute" k="18" /> +<hkern g1="B" g2="Ecircumflex" k="18" /> +<hkern g1="B" g2="Edieresis" k="18" /> +<hkern g1="B" g2="Igrave" k="18" /> +<hkern g1="B" g2="Iacute" k="18" /> +<hkern g1="B" g2="Icircumflex" k="18" /> +<hkern g1="B" g2="Idieresis" k="18" /> +<hkern g1="B" g2="Eth" k="18" /> +<hkern g1="B" g2="Ntilde" k="18" /> +<hkern g1="B" g2="Ugrave" k="15" /> +<hkern g1="B" g2="Uacute" k="15" /> +<hkern g1="B" g2="Ucircumflex" k="15" /> +<hkern g1="B" g2="Udieresis" k="15" /> +<hkern g1="B" g2="Yacute" k="50" /> +<hkern g1="B" g2="Thorn" k="18" /> +<hkern g1="B" g2="germandbls" k="16" /> +<hkern g1="B" g2="igrave" k="16" /> +<hkern g1="B" g2="iacute" k="16" /> +<hkern g1="B" g2="icircumflex" k="16" /> +<hkern g1="B" g2="idieresis" k="16" /> +<hkern g1="B" g2="ntilde" k="16" /> +<hkern g1="B" g2="ugrave" k="14" /> +<hkern g1="B" g2="uacute" k="14" /> +<hkern g1="B" g2="ucircumflex" k="14" /> +<hkern g1="B" g2="udieresis" k="14" /> +<hkern g1="B" g2="yacute" k="27" /> +<hkern g1="B" g2="ydieresis" k="27" /> +<hkern g1="B" g2="dotlessi" k="16" /> +<hkern g1="C" g2="hyphen" k="39" /> +<hkern g1="C" g2="slash" k="72" /> +<hkern g1="C" g2="A" k="20" /> +<hkern g1="C" g2="g" k="10" /> +<hkern g1="C" g2="z" k="10" /> +<hkern g1="C" g2="uni00AD" k="39" /> +<hkern g1="C" g2="Agrave" k="20" /> +<hkern g1="C" g2="Aacute" k="20" /> +<hkern g1="C" g2="Acircumflex" k="20" /> +<hkern g1="C" g2="Atilde" k="20" /> +<hkern g1="C" g2="Adieresis" k="20" /> +<hkern g1="C" g2="Aring" k="20" /> +<hkern g1="C" g2="AE" k="57" /> +<hkern g1="C" g2="endash" k="39" /> +<hkern g1="C" g2="emdash" k="39" /> +<hkern g1="D" g2="parenright" k="47" /> +<hkern g1="D" g2="comma" k="49" /> +<hkern g1="D" g2="period" k="49" /> +<hkern g1="D" g2="slash" k="121" /> +<hkern g1="D" g2="A" k="33" /> +<hkern g1="D" g2="B" k="20" /> +<hkern g1="D" g2="D" k="20" /> +<hkern g1="D" g2="E" k="20" /> +<hkern g1="D" g2="F" k="20" /> +<hkern g1="D" g2="H" k="20" /> +<hkern g1="D" g2="I" k="20" /> +<hkern g1="D" g2="J" k="55" /> +<hkern g1="D" g2="K" k="20" /> +<hkern g1="D" g2="L" k="20" /> +<hkern g1="D" g2="M" k="20" /> +<hkern g1="D" g2="N" k="20" /> +<hkern g1="D" g2="P" k="20" /> +<hkern g1="D" g2="R" k="20" /> +<hkern g1="D" g2="U" k="10" /> +<hkern g1="D" g2="V" k="27" /> +<hkern g1="D" g2="W" k="30" /> +<hkern g1="D" g2="X" k="55" /> +<hkern g1="D" g2="Y" k="30" /> +<hkern g1="D" g2="Z" k="10" /> +<hkern g1="D" g2="backslash" k="41" /> +<hkern g1="D" g2="bracketright" k="78" /> +<hkern g1="D" g2="a" k="10" /> +<hkern g1="D" g2="b" k="10" /> +<hkern g1="D" g2="g" k="10" /> +<hkern g1="D" g2="h" k="23" /> +<hkern g1="D" g2="k" k="23" /> +<hkern g1="D" g2="l" k="23" /> +<hkern g1="D" g2="x" k="16" /> +<hkern g1="D" g2="braceright" k="41" /> +<hkern g1="D" g2="Agrave" k="33" /> +<hkern g1="D" g2="Aacute" k="33" /> +<hkern g1="D" g2="Acircumflex" k="33" /> +<hkern g1="D" g2="Atilde" k="33" /> +<hkern g1="D" g2="Adieresis" k="33" /> +<hkern g1="D" g2="Aring" k="33" /> +<hkern g1="D" g2="AE" k="113" /> +<hkern g1="D" g2="Egrave" k="20" /> +<hkern g1="D" g2="Eacute" k="20" /> +<hkern g1="D" g2="Ecircumflex" k="20" /> +<hkern g1="D" g2="Edieresis" k="20" /> +<hkern g1="D" g2="Igrave" k="20" /> +<hkern g1="D" g2="Iacute" k="20" /> +<hkern g1="D" g2="Icircumflex" k="20" /> +<hkern g1="D" g2="Idieresis" k="20" /> +<hkern g1="D" g2="Eth" k="20" /> +<hkern g1="D" g2="Ntilde" k="20" /> +<hkern g1="D" g2="Ugrave" k="10" /> +<hkern g1="D" g2="Uacute" k="10" /> +<hkern g1="D" g2="Ucircumflex" k="10" /> +<hkern g1="D" g2="Udieresis" k="10" /> +<hkern g1="D" g2="Yacute" k="30" /> +<hkern g1="D" g2="Thorn" k="20" /> +<hkern g1="D" g2="agrave" k="10" /> +<hkern g1="D" g2="aacute" k="10" /> +<hkern g1="D" g2="acircumflex" k="10" /> +<hkern g1="D" g2="atilde" k="10" /> +<hkern g1="D" g2="adieresis" k="10" /> +<hkern g1="D" g2="aring" k="10" /> +<hkern g1="D" g2="ae" k="10" /> +<hkern g1="D" g2="thorn" k="10" /> +<hkern g1="D" g2="quoteleft" k="31" /> +<hkern g1="D" g2="quoteright" k="18" /> +<hkern g1="D" g2="quotesinglbase" k="49" /> +<hkern g1="D" g2="quotedblleft" k="31" /> +<hkern g1="D" g2="quotedblright" k="18" /> +<hkern g1="D" g2="quotedblbase" k="49" /> +<hkern g1="G" g2="parenright" k="25" /> +<hkern g1="G" g2="comma" k="16" /> +<hkern g1="G" g2="period" k="16" /> +<hkern g1="G" g2="slash" k="82" /> +<hkern g1="G" g2="C" k="25" /> +<hkern g1="G" g2="G" k="25" /> +<hkern g1="G" g2="O" k="25" /> +<hkern g1="G" g2="Q" k="25" /> +<hkern g1="G" g2="T" k="10" /> +<hkern g1="G" g2="V" k="15" /> +<hkern g1="G" g2="W" k="10" /> +<hkern g1="G" g2="bracketright" k="29" /> +<hkern g1="G" g2="x" k="16" /> +<hkern g1="G" g2="Ccedilla" k="25" /> +<hkern g1="G" g2="Ograve" k="25" /> +<hkern g1="G" g2="Oacute" k="25" /> +<hkern g1="G" g2="Ocircumflex" k="25" /> +<hkern g1="G" g2="Otilde" k="25" /> +<hkern g1="G" g2="Odieresis" k="25" /> +<hkern g1="G" g2="Oslash" k="25" /> +<hkern g1="G" g2="OE" k="25" /> +<hkern g1="G" g2="quotesinglbase" k="16" /> +<hkern g1="G" g2="quotedblbase" k="16" /> +<hkern g1="H" g2="asterisk" k="16" /> +<hkern g1="H" g2="hyphen" k="33" /> +<hkern g1="H" g2="slash" k="49" /> +<hkern g1="H" g2="G" k="18" /> +<hkern g1="H" g2="a" k="16" /> +<hkern g1="H" g2="c" k="45" /> +<hkern g1="H" g2="d" k="43" /> +<hkern g1="H" g2="e" k="45" /> +<hkern g1="H" g2="f" k="18" /> +<hkern g1="H" g2="g" k="29" /> +<hkern g1="H" g2="i" k="14" /> +<hkern g1="H" g2="j" k="20" /> +<hkern g1="H" g2="m" k="16" /> +<hkern g1="H" g2="n" k="16" /> +<hkern g1="H" g2="o" k="45" /> +<hkern g1="H" g2="p" k="33" /> +<hkern g1="H" g2="q" k="43" /> +<hkern g1="H" g2="r" k="16" /> +<hkern g1="H" g2="s" k="18" /> +<hkern g1="H" g2="t" k="35" /> +<hkern g1="H" g2="u" k="39" /> +<hkern g1="H" g2="v" k="35" /> +<hkern g1="H" g2="w" k="35" /> +<hkern g1="H" g2="y" k="35" /> +<hkern g1="H" g2="z" k="12" /> +<hkern g1="H" g2="guillemotleft" k="20" /> +<hkern g1="H" g2="uni00AD" k="33" /> +<hkern g1="H" g2="germandbls" k="18" /> +<hkern g1="H" g2="agrave" k="16" /> +<hkern g1="H" g2="aacute" k="16" /> +<hkern g1="H" g2="acircumflex" k="16" /> +<hkern g1="H" g2="atilde" k="16" /> +<hkern g1="H" g2="adieresis" k="16" /> +<hkern g1="H" g2="aring" k="16" /> +<hkern g1="H" g2="ae" k="16" /> +<hkern g1="H" g2="ccedilla" k="45" /> +<hkern g1="H" g2="egrave" k="45" /> +<hkern g1="H" g2="eacute" k="45" /> +<hkern g1="H" g2="ecircumflex" k="45" /> +<hkern g1="H" g2="edieresis" k="45" /> +<hkern g1="H" g2="igrave" k="14" /> +<hkern g1="H" g2="iacute" k="14" /> +<hkern g1="H" g2="icircumflex" k="14" /> +<hkern g1="H" g2="idieresis" k="14" /> +<hkern g1="H" g2="eth" k="43" /> +<hkern g1="H" g2="ntilde" k="16" /> +<hkern g1="H" g2="ograve" k="45" /> +<hkern g1="H" g2="oacute" k="45" /> +<hkern g1="H" g2="ocircumflex" k="45" /> +<hkern g1="H" g2="otilde" k="45" /> +<hkern g1="H" g2="odieresis" k="45" /> +<hkern g1="H" g2="oslash" k="45" /> +<hkern g1="H" g2="ugrave" k="39" /> +<hkern g1="H" g2="uacute" k="39" /> +<hkern g1="H" g2="ucircumflex" k="39" /> +<hkern g1="H" g2="udieresis" k="39" /> +<hkern g1="H" g2="yacute" k="35" /> +<hkern g1="H" g2="ydieresis" k="35" /> +<hkern g1="H" g2="dotlessi" k="14" /> +<hkern g1="H" g2="oe" k="45" /> +<hkern g1="H" g2="endash" k="33" /> +<hkern g1="H" g2="emdash" k="33" /> +<hkern g1="H" g2="guilsinglleft" k="20" /> +<hkern g1="I" g2="asterisk" k="16" /> +<hkern g1="I" g2="hyphen" k="33" /> +<hkern g1="I" g2="slash" k="49" /> +<hkern g1="I" g2="G" k="18" /> +<hkern g1="I" g2="a" k="16" /> +<hkern g1="I" g2="c" k="45" /> +<hkern g1="I" g2="d" k="43" /> +<hkern g1="I" g2="e" k="45" /> +<hkern g1="I" g2="f" k="18" /> +<hkern g1="I" g2="g" k="29" /> +<hkern g1="I" g2="i" k="14" /> +<hkern g1="I" g2="j" k="20" /> +<hkern g1="I" g2="m" k="16" /> +<hkern g1="I" g2="n" k="16" /> +<hkern g1="I" g2="o" k="45" /> +<hkern g1="I" g2="p" k="33" /> +<hkern g1="I" g2="q" k="43" /> +<hkern g1="I" g2="r" k="16" /> +<hkern g1="I" g2="s" k="18" /> +<hkern g1="I" g2="t" k="35" /> +<hkern g1="I" g2="u" k="39" /> +<hkern g1="I" g2="v" k="35" /> +<hkern g1="I" g2="w" k="35" /> +<hkern g1="I" g2="y" k="35" /> +<hkern g1="I" g2="z" k="12" /> +<hkern g1="I" g2="guillemotleft" k="20" /> +<hkern g1="I" g2="uni00AD" k="33" /> +<hkern g1="I" g2="germandbls" k="18" /> +<hkern g1="I" g2="agrave" k="16" /> +<hkern g1="I" g2="aacute" k="16" /> +<hkern g1="I" g2="acircumflex" k="16" /> +<hkern g1="I" g2="atilde" k="16" /> +<hkern g1="I" g2="adieresis" k="16" /> +<hkern g1="I" g2="aring" k="16" /> +<hkern g1="I" g2="ae" k="16" /> +<hkern g1="I" g2="ccedilla" k="45" /> +<hkern g1="I" g2="egrave" k="45" /> +<hkern g1="I" g2="eacute" k="45" /> +<hkern g1="I" g2="ecircumflex" k="45" /> +<hkern g1="I" g2="edieresis" k="45" /> +<hkern g1="I" g2="igrave" k="14" /> +<hkern g1="I" g2="iacute" k="14" /> +<hkern g1="I" g2="icircumflex" k="14" /> +<hkern g1="I" g2="idieresis" k="14" /> +<hkern g1="I" g2="eth" k="43" /> +<hkern g1="I" g2="ntilde" k="16" /> +<hkern g1="I" g2="ograve" k="45" /> +<hkern g1="I" g2="oacute" k="45" /> +<hkern g1="I" g2="ocircumflex" k="45" /> +<hkern g1="I" g2="otilde" k="45" /> +<hkern g1="I" g2="odieresis" k="45" /> +<hkern g1="I" g2="oslash" k="45" /> +<hkern g1="I" g2="ugrave" k="39" /> +<hkern g1="I" g2="uacute" k="39" /> +<hkern g1="I" g2="ucircumflex" k="39" /> +<hkern g1="I" g2="udieresis" k="39" /> +<hkern g1="I" g2="yacute" k="35" /> +<hkern g1="I" g2="ydieresis" k="35" /> +<hkern g1="I" g2="dotlessi" k="14" /> +<hkern g1="I" g2="oe" k="45" /> +<hkern g1="I" g2="endash" k="33" /> +<hkern g1="I" g2="emdash" k="33" /> +<hkern g1="I" g2="guilsinglleft" k="20" /> +<hkern g1="J" g2="comma" k="43" /> +<hkern g1="J" g2="hyphen" k="20" /> +<hkern g1="J" g2="period" k="43" /> +<hkern g1="J" g2="slash" k="113" /> +<hkern g1="J" g2="A" k="60" /> +<hkern g1="J" g2="G" k="12" /> +<hkern g1="J" g2="a" k="30" /> +<hkern g1="J" g2="c" k="30" /> +<hkern g1="J" g2="d" k="30" /> +<hkern g1="J" g2="e" k="30" /> +<hkern g1="J" g2="f" k="20" /> +<hkern g1="J" g2="g" k="50" /> +<hkern g1="J" g2="o" k="10" /> +<hkern g1="J" g2="q" k="10" /> +<hkern g1="J" g2="s" k="20" /> +<hkern g1="J" g2="t" k="20" /> +<hkern g1="J" g2="v" k="10" /> +<hkern g1="J" g2="w" k="10" /> +<hkern g1="J" g2="x" k="18" /> +<hkern g1="J" g2="y" k="20" /> +<hkern g1="J" g2="z" k="30" /> +<hkern g1="J" g2="uni00AD" k="20" /> +<hkern g1="J" g2="Agrave" k="60" /> +<hkern g1="J" g2="Aacute" k="60" /> +<hkern g1="J" g2="Acircumflex" k="60" /> +<hkern g1="J" g2="Atilde" k="60" /> +<hkern g1="J" g2="Adieresis" k="60" /> +<hkern g1="J" g2="Aring" k="60" /> +<hkern g1="J" g2="AE" k="27" /> +<hkern g1="J" g2="germandbls" k="20" /> +<hkern g1="J" g2="agrave" k="30" /> +<hkern g1="J" g2="aacute" k="30" /> +<hkern g1="J" g2="acircumflex" k="30" /> +<hkern g1="J" g2="atilde" k="30" /> +<hkern g1="J" g2="adieresis" k="30" /> +<hkern g1="J" g2="aring" k="30" /> +<hkern g1="J" g2="ae" k="30" /> +<hkern g1="J" g2="ccedilla" k="10" /> +<hkern g1="J" g2="egrave" k="10" /> +<hkern g1="J" g2="eacute" k="10" /> +<hkern g1="J" g2="ecircumflex" k="10" /> +<hkern g1="J" g2="edieresis" k="10" /> +<hkern g1="J" g2="eth" k="43" /> +<hkern g1="J" g2="ograve" k="10" /> +<hkern g1="J" g2="oacute" k="10" /> +<hkern g1="J" g2="ocircumflex" k="10" /> +<hkern g1="J" g2="otilde" k="10" /> +<hkern g1="J" g2="odieresis" k="10" /> +<hkern g1="J" g2="oslash" k="10" /> +<hkern g1="J" g2="yacute" k="20" /> +<hkern g1="J" g2="ydieresis" k="20" /> +<hkern g1="J" g2="oe" k="10" /> +<hkern g1="J" g2="endash" k="20" /> +<hkern g1="J" g2="emdash" k="20" /> +<hkern g1="J" g2="quotesinglbase" k="43" /> +<hkern g1="J" g2="quotedblbase" k="43" /> +<hkern g1="K" g2="asterisk" k="35" /> +<hkern g1="K" g2="hyphen" k="92" /> +<hkern g1="K" g2="two" k="-10" /> +<hkern g1="K" g2="C" k="50" /> +<hkern g1="K" g2="G" k="70" /> +<hkern g1="K" g2="J" k="-95" /> +<hkern g1="K" g2="O" k="50" /> +<hkern g1="K" g2="Q" k="70" /> +<hkern g1="K" g2="T" k="40" /> +<hkern g1="K" g2="c" k="30" /> +<hkern g1="K" g2="d" k="30" /> +<hkern g1="K" g2="e" k="30" /> +<hkern g1="K" g2="o" k="30" /> +<hkern g1="K" g2="q" k="30" /> +<hkern g1="K" g2="t" k="45" /> +<hkern g1="K" g2="u" k="20" /> +<hkern g1="K" g2="v" k="100" /> +<hkern g1="K" g2="w" k="100" /> +<hkern g1="K" g2="y" k="55" /> +<hkern g1="K" g2="guillemotleft" k="29" /> +<hkern g1="K" g2="uni00AD" k="92" /> +<hkern g1="K" g2="Ccedilla" k="50" /> +<hkern g1="K" g2="Ograve" k="50" /> +<hkern g1="K" g2="Oacute" k="50" /> +<hkern g1="K" g2="Ocircumflex" k="50" /> +<hkern g1="K" g2="Otilde" k="50" /> +<hkern g1="K" g2="Odieresis" k="50" /> +<hkern g1="K" g2="Oslash" k="50" /> +<hkern g1="K" g2="ccedilla" k="30" /> +<hkern g1="K" g2="egrave" k="30" /> +<hkern g1="K" g2="eacute" k="30" /> +<hkern g1="K" g2="ecircumflex" k="30" /> +<hkern g1="K" g2="edieresis" k="30" /> +<hkern g1="K" g2="eth" k="51" /> +<hkern g1="K" g2="ograve" k="30" /> +<hkern g1="K" g2="oacute" k="30" /> +<hkern g1="K" g2="ocircumflex" k="30" /> +<hkern g1="K" g2="otilde" k="30" /> +<hkern g1="K" g2="odieresis" k="30" /> +<hkern g1="K" g2="oslash" k="30" /> +<hkern g1="K" g2="ugrave" k="20" /> +<hkern g1="K" g2="uacute" k="20" /> +<hkern g1="K" g2="ucircumflex" k="20" /> +<hkern g1="K" g2="udieresis" k="20" /> +<hkern g1="K" g2="yacute" k="55" /> +<hkern g1="K" g2="ydieresis" k="55" /> +<hkern g1="K" g2="OE" k="50" /> +<hkern g1="K" g2="oe" k="30" /> +<hkern g1="K" g2="endash" k="92" /> +<hkern g1="K" g2="emdash" k="92" /> +<hkern g1="K" g2="guilsinglleft" k="29" /> +<hkern g1="L" g2="quotedbl" k="166" /> +<hkern g1="L" g2="quotesingle" k="166" /> +<hkern g1="L" g2="parenright" k="39" /> +<hkern g1="L" g2="asterisk" k="109" /> +<hkern g1="L" g2="hyphen" k="82" /> +<hkern g1="L" g2="slash" k="29" /> +<hkern g1="L" g2="four" k="-14" /> +<hkern g1="L" g2="seven" k="49" /> +<hkern g1="L" g2="question" k="41" /> +<hkern g1="L" g2="A" k="-35" /> +<hkern g1="L" g2="C" k="40" /> +<hkern g1="L" g2="G" k="40" /> +<hkern g1="L" g2="O" k="40" /> +<hkern g1="L" g2="Q" k="40" /> +<hkern g1="L" g2="T" k="120" /> +<hkern g1="L" g2="U" k="23" /> +<hkern g1="L" g2="V" k="150" /> +<hkern g1="L" g2="W" k="121" /> +<hkern g1="L" g2="Y" k="162" /> +<hkern g1="L" g2="backslash" k="123" /> +<hkern g1="L" g2="bracketright" k="74" /> +<hkern g1="L" g2="a" k="-45" /> +<hkern g1="L" g2="v" k="80" /> +<hkern g1="L" g2="w" k="80" /> +<hkern g1="L" g2="y" k="50" /> +<hkern g1="L" g2="braceright" k="29" /> +<hkern g1="L" g2="ordfeminine" k="200" /> +<hkern g1="L" g2="uni00AD" k="82" /> +<hkern g1="L" g2="middot" k="252" /> +<hkern g1="L" g2="Agrave" k="-35" /> +<hkern g1="L" g2="Aacute" k="-35" /> +<hkern g1="L" g2="Acircumflex" k="-35" /> +<hkern g1="L" g2="Atilde" k="-35" /> +<hkern g1="L" g2="Adieresis" k="-35" /> +<hkern g1="L" g2="Aring" k="-35" /> +<hkern g1="L" g2="AE" k="-45" /> +<hkern g1="L" g2="Ccedilla" k="40" /> +<hkern g1="L" g2="Ograve" k="40" /> +<hkern g1="L" g2="Oacute" k="40" /> +<hkern g1="L" g2="Ocircumflex" k="40" /> +<hkern g1="L" g2="Otilde" k="40" /> +<hkern g1="L" g2="Odieresis" k="40" /> +<hkern g1="L" g2="Oslash" k="40" /> +<hkern g1="L" g2="Ugrave" k="23" /> +<hkern g1="L" g2="Uacute" k="23" /> +<hkern g1="L" g2="Ucircumflex" k="23" /> +<hkern g1="L" g2="Udieresis" k="23" /> +<hkern g1="L" g2="Yacute" k="162" /> +<hkern g1="L" g2="agrave" k="-45" /> +<hkern g1="L" g2="aacute" k="-45" /> +<hkern g1="L" g2="acircumflex" k="-45" /> +<hkern g1="L" g2="atilde" k="-45" /> +<hkern g1="L" g2="adieresis" k="-45" /> +<hkern g1="L" g2="aring" k="-45" /> +<hkern g1="L" g2="ae" k="-45" /> +<hkern g1="L" g2="yacute" k="50" /> +<hkern g1="L" g2="ydieresis" k="50" /> +<hkern g1="L" g2="OE" k="40" /> +<hkern g1="L" g2="endash" k="82" /> +<hkern g1="L" g2="emdash" k="82" /> +<hkern g1="L" g2="quoteleft" k="158" /> +<hkern g1="L" g2="quoteright" k="164" /> +<hkern g1="L" g2="quotedblleft" k="158" /> +<hkern g1="L" g2="quotedblright" k="164" /> +<hkern g1="M" g2="asterisk" k="18" /> +<hkern g1="M" g2="hyphen" k="33" /> +<hkern g1="M" g2="slash" k="39" /> +<hkern g1="M" g2="C" k="10" /> +<hkern g1="M" g2="G" k="10" /> +<hkern g1="M" g2="O" k="10" /> +<hkern g1="M" g2="Q" k="10" /> +<hkern g1="M" g2="Y" k="10" /> +<hkern g1="M" g2="c" k="15" /> +<hkern g1="M" g2="d" k="15" /> +<hkern g1="M" g2="e" k="15" /> +<hkern g1="M" g2="f" k="10" /> +<hkern g1="M" g2="g" k="10" /> +<hkern g1="M" g2="j" k="10" /> +<hkern g1="M" g2="o" k="15" /> +<hkern g1="M" g2="q" k="15" /> +<hkern g1="M" g2="t" k="10" /> +<hkern g1="M" g2="v" k="20" /> +<hkern g1="M" g2="w" k="20" /> +<hkern g1="M" g2="y" k="30" /> +<hkern g1="M" g2="uni00AD" k="33" /> +<hkern g1="M" g2="Ccedilla" k="10" /> +<hkern g1="M" g2="Ograve" k="10" /> +<hkern g1="M" g2="Oacute" k="10" /> +<hkern g1="M" g2="Ocircumflex" k="10" /> +<hkern g1="M" g2="Otilde" k="10" /> +<hkern g1="M" g2="Odieresis" k="10" /> +<hkern g1="M" g2="Oslash" k="10" /> +<hkern g1="M" g2="Yacute" k="10" /> +<hkern g1="M" g2="germandbls" k="10" /> +<hkern g1="M" g2="ccedilla" k="15" /> +<hkern g1="M" g2="egrave" k="15" /> +<hkern g1="M" g2="eacute" k="15" /> +<hkern g1="M" g2="ecircumflex" k="15" /> +<hkern g1="M" g2="edieresis" k="15" /> +<hkern g1="M" g2="eth" k="29" /> +<hkern g1="M" g2="ograve" k="15" /> +<hkern g1="M" g2="oacute" k="15" /> +<hkern g1="M" g2="ocircumflex" k="15" /> +<hkern g1="M" g2="otilde" k="15" /> +<hkern g1="M" g2="odieresis" k="15" /> +<hkern g1="M" g2="oslash" k="15" /> +<hkern g1="M" g2="yacute" k="30" /> +<hkern g1="M" g2="ydieresis" k="30" /> +<hkern g1="M" g2="OE" k="10" /> +<hkern g1="M" g2="oe" k="15" /> +<hkern g1="M" g2="endash" k="33" /> +<hkern g1="M" g2="emdash" k="33" /> +<hkern g1="N" g2="comma" k="29" /> +<hkern g1="N" g2="hyphen" k="23" /> +<hkern g1="N" g2="period" k="29" /> +<hkern g1="N" g2="slash" k="78" /> +<hkern g1="N" g2="C" k="10" /> +<hkern g1="N" g2="a" k="10" /> +<hkern g1="N" g2="c" k="20" /> +<hkern g1="N" g2="d" k="20" /> +<hkern g1="N" g2="e" k="20" /> +<hkern g1="N" g2="f" k="10" /> +<hkern g1="N" g2="g" k="10" /> +<hkern g1="N" g2="o" k="20" /> +<hkern g1="N" g2="q" k="20" /> +<hkern g1="N" g2="s" k="15" /> +<hkern g1="N" g2="t" k="10" /> +<hkern g1="N" g2="v" k="15" /> +<hkern g1="N" g2="w" k="15" /> +<hkern g1="N" g2="x" k="10" /> +<hkern g1="N" g2="y" k="15" /> +<hkern g1="N" g2="z" k="20" /> +<hkern g1="N" g2="uni00AD" k="23" /> +<hkern g1="N" g2="germandbls" k="10" /> +<hkern g1="N" g2="agrave" k="10" /> +<hkern g1="N" g2="aacute" k="10" /> +<hkern g1="N" g2="acircumflex" k="10" /> +<hkern g1="N" g2="atilde" k="10" /> +<hkern g1="N" g2="adieresis" k="10" /> +<hkern g1="N" g2="aring" k="10" /> +<hkern g1="N" g2="ae" k="10" /> +<hkern g1="N" g2="ccedilla" k="20" /> +<hkern g1="N" g2="egrave" k="20" /> +<hkern g1="N" g2="eacute" k="20" /> +<hkern g1="N" g2="ecircumflex" k="20" /> +<hkern g1="N" g2="edieresis" k="20" /> +<hkern g1="N" g2="eth" k="41" /> +<hkern g1="N" g2="ograve" k="20" /> +<hkern g1="N" g2="oacute" k="20" /> +<hkern g1="N" g2="ocircumflex" k="20" /> +<hkern g1="N" g2="otilde" k="20" /> +<hkern g1="N" g2="odieresis" k="20" /> +<hkern g1="N" g2="oslash" k="20" /> +<hkern g1="N" g2="yacute" k="15" /> +<hkern g1="N" g2="ydieresis" k="15" /> +<hkern g1="N" g2="oe" k="20" /> +<hkern g1="N" g2="endash" k="23" /> +<hkern g1="N" g2="emdash" k="23" /> +<hkern g1="N" g2="quotesinglbase" k="29" /> +<hkern g1="N" g2="quotedblbase" k="29" /> +<hkern g1="O" g2="parenright" k="70" /> +<hkern g1="O" g2="comma" k="45" /> +<hkern g1="O" g2="period" k="45" /> +<hkern g1="O" g2="slash" k="115" /> +<hkern g1="O" g2="A" k="27" /> +<hkern g1="O" g2="B" k="18" /> +<hkern g1="O" g2="D" k="18" /> +<hkern g1="O" g2="E" k="18" /> +<hkern g1="O" g2="F" k="18" /> +<hkern g1="O" g2="H" k="18" /> +<hkern g1="O" g2="I" k="18" /> +<hkern g1="O" g2="J" k="45" /> +<hkern g1="O" g2="K" k="18" /> +<hkern g1="O" g2="L" k="18" /> +<hkern g1="O" g2="M" k="10" /> +<hkern g1="O" g2="N" k="18" /> +<hkern g1="O" g2="P" k="18" /> +<hkern g1="O" g2="R" k="18" /> +<hkern g1="O" g2="T" k="45" /> +<hkern g1="O" g2="U" k="10" /> +<hkern g1="O" g2="V" k="25" /> +<hkern g1="O" g2="W" k="30" /> +<hkern g1="O" g2="X" k="50" /> +<hkern g1="O" g2="Y" k="40" /> +<hkern g1="O" g2="backslash" k="39" /> +<hkern g1="O" g2="bracketright" k="74" /> +<hkern g1="O" g2="c" k="10" /> +<hkern g1="O" g2="d" k="10" /> +<hkern g1="O" g2="e" k="10" /> +<hkern g1="O" g2="g" k="10" /> +<hkern g1="O" g2="o" k="10" /> +<hkern g1="O" g2="q" k="10" /> +<hkern g1="O" g2="x" k="15" /> +<hkern g1="O" g2="braceright" k="41" /> +<hkern g1="O" g2="Agrave" k="27" /> +<hkern g1="O" g2="Aacute" k="27" /> +<hkern g1="O" g2="Acircumflex" k="27" /> +<hkern g1="O" g2="Atilde" k="27" /> +<hkern g1="O" g2="Adieresis" k="27" /> +<hkern g1="O" g2="Aring" k="27" /> +<hkern g1="O" g2="AE" k="92" /> +<hkern g1="O" g2="Egrave" k="18" /> +<hkern g1="O" g2="Eacute" k="18" /> +<hkern g1="O" g2="Ecircumflex" k="18" /> +<hkern g1="O" g2="Edieresis" k="18" /> +<hkern g1="O" g2="Igrave" k="18" /> +<hkern g1="O" g2="Iacute" k="18" /> +<hkern g1="O" g2="Icircumflex" k="18" /> +<hkern g1="O" g2="Idieresis" k="18" /> +<hkern g1="O" g2="Eth" k="18" /> +<hkern g1="O" g2="Ntilde" k="18" /> +<hkern g1="O" g2="Ugrave" k="10" /> +<hkern g1="O" g2="Uacute" k="10" /> +<hkern g1="O" g2="Ucircumflex" k="10" /> +<hkern g1="O" g2="Udieresis" k="10" /> +<hkern g1="O" g2="Yacute" k="40" /> +<hkern g1="O" g2="Thorn" k="18" /> +<hkern g1="O" g2="ccedilla" k="10" /> +<hkern g1="O" g2="egrave" k="10" /> +<hkern g1="O" g2="eacute" k="10" /> +<hkern g1="O" g2="ecircumflex" k="10" /> +<hkern g1="O" g2="edieresis" k="10" /> +<hkern g1="O" g2="ograve" k="10" /> +<hkern g1="O" g2="oacute" k="10" /> +<hkern g1="O" g2="ocircumflex" k="10" /> +<hkern g1="O" g2="otilde" k="10" /> +<hkern g1="O" g2="odieresis" k="10" /> +<hkern g1="O" g2="oslash" k="10" /> +<hkern g1="O" g2="oe" k="10" /> +<hkern g1="O" g2="quoteleft" k="31" /> +<hkern g1="O" g2="quoteright" k="20" /> +<hkern g1="O" g2="quotesinglbase" k="45" /> +<hkern g1="O" g2="quotedblleft" k="31" /> +<hkern g1="O" g2="quotedblright" k="20" /> +<hkern g1="O" g2="quotedblbase" k="45" /> +<hkern g1="P" g2="parenright" k="20" /> +<hkern g1="P" g2="asterisk" k="-45" /> +<hkern g1="P" g2="comma" k="160" /> +<hkern g1="P" g2="hyphen" k="27" /> +<hkern g1="P" g2="period" k="172" /> +<hkern g1="P" g2="slash" k="170" /> +<hkern g1="P" g2="four" k="20" /> +<hkern g1="P" g2="A" k="70" /> +<hkern g1="P" g2="B" k="10" /> +<hkern g1="P" g2="D" k="10" /> +<hkern g1="P" g2="E" k="10" /> +<hkern g1="P" g2="F" k="10" /> +<hkern g1="P" g2="H" k="10" /> +<hkern g1="P" g2="I" k="10" /> +<hkern g1="P" g2="J" k="86" /> +<hkern g1="P" g2="K" k="10" /> +<hkern g1="P" g2="L" k="10" /> +<hkern g1="P" g2="M" k="16" /> +<hkern g1="P" g2="N" k="10" /> +<hkern g1="P" g2="P" k="10" /> +<hkern g1="P" g2="R" k="10" /> +<hkern g1="P" g2="X" k="10" /> +<hkern g1="P" g2="bracketright" k="39" /> +<hkern g1="P" g2="a" k="15" /> +<hkern g1="P" g2="c" k="20" /> +<hkern g1="P" g2="d" k="20" /> +<hkern g1="P" g2="e" k="20" /> +<hkern g1="P" g2="g" k="20" /> +<hkern g1="P" g2="h" k="12" /> +<hkern g1="P" g2="k" k="12" /> +<hkern g1="P" g2="l" k="12" /> +<hkern g1="P" g2="o" k="20" /> +<hkern g1="P" g2="q" k="20" /> +<hkern g1="P" g2="s" k="14" /> +<hkern g1="P" g2="v" k="-60" /> +<hkern g1="P" g2="w" k="-60" /> +<hkern g1="P" g2="x" k="-35" /> +<hkern g1="P" g2="y" k="-30" /> +<hkern g1="P" g2="z" k="20" /> +<hkern g1="P" g2="braceright" k="25" /> +<hkern g1="P" g2="uni00AD" k="27" /> +<hkern g1="P" g2="Agrave" k="70" /> +<hkern g1="P" g2="Aacute" k="70" /> +<hkern g1="P" g2="Acircumflex" k="70" /> +<hkern g1="P" g2="Atilde" k="70" /> +<hkern g1="P" g2="Adieresis" k="70" /> +<hkern g1="P" g2="Aring" k="70" /> +<hkern g1="P" g2="AE" k="200" /> +<hkern g1="P" g2="Egrave" k="10" /> +<hkern g1="P" g2="Eacute" k="10" /> +<hkern g1="P" g2="Ecircumflex" k="10" /> +<hkern g1="P" g2="Edieresis" k="10" /> +<hkern g1="P" g2="Igrave" k="10" /> +<hkern g1="P" g2="Iacute" k="10" /> +<hkern g1="P" g2="Icircumflex" k="10" /> +<hkern g1="P" g2="Idieresis" k="10" /> +<hkern g1="P" g2="Eth" k="10" /> +<hkern g1="P" g2="Ntilde" k="10" /> +<hkern g1="P" g2="Thorn" k="10" /> +<hkern g1="P" g2="agrave" k="23" /> +<hkern g1="P" g2="aacute" k="15" /> +<hkern g1="P" g2="acircumflex" k="15" /> +<hkern g1="P" g2="atilde" k="15" /> +<hkern g1="P" g2="adieresis" k="15" /> +<hkern g1="P" g2="aring" k="15" /> +<hkern g1="P" g2="ae" k="15" /> +<hkern g1="P" g2="ccedilla" k="20" /> +<hkern g1="P" g2="egrave" k="20" /> +<hkern g1="P" g2="eacute" k="20" /> +<hkern g1="P" g2="ecircumflex" k="20" /> +<hkern g1="P" g2="edieresis" k="20" /> +<hkern g1="P" g2="eth" k="43" /> +<hkern g1="P" g2="ograve" k="20" /> +<hkern g1="P" g2="oacute" k="20" /> +<hkern g1="P" g2="ocircumflex" k="20" /> +<hkern g1="P" g2="otilde" k="20" /> +<hkern g1="P" g2="odieresis" k="20" /> +<hkern g1="P" g2="oslash" k="20" /> +<hkern g1="P" g2="yacute" k="-30" /> +<hkern g1="P" g2="ydieresis" k="-30" /> +<hkern g1="P" g2="oe" k="20" /> +<hkern g1="P" g2="endash" k="27" /> +<hkern g1="P" g2="emdash" k="27" /> +<hkern g1="P" g2="quotesinglbase" k="172" /> +<hkern g1="P" g2="quotedblbase" k="172" /> +<hkern g1="Q" g2="parenright" k="29" /> +<hkern g1="Q" g2="comma" k="45" /> +<hkern g1="Q" g2="period" k="45" /> +<hkern g1="Q" g2="slash" k="115" /> +<hkern g1="Q" g2="A" k="27" /> +<hkern g1="Q" g2="B" k="18" /> +<hkern g1="Q" g2="D" k="18" /> +<hkern g1="Q" g2="E" k="18" /> +<hkern g1="Q" g2="F" k="18" /> +<hkern g1="Q" g2="H" k="18" /> +<hkern g1="Q" g2="I" k="18" /> +<hkern g1="Q" g2="J" k="45" /> +<hkern g1="Q" g2="K" k="18" /> +<hkern g1="Q" g2="L" k="18" /> +<hkern g1="Q" g2="M" k="10" /> +<hkern g1="Q" g2="N" k="18" /> +<hkern g1="Q" g2="P" k="18" /> +<hkern g1="Q" g2="R" k="18" /> +<hkern g1="Q" g2="T" k="25" /> +<hkern g1="Q" g2="U" k="10" /> +<hkern g1="Q" g2="V" k="30" /> +<hkern g1="Q" g2="W" k="30" /> +<hkern g1="Q" g2="X" k="20" /> +<hkern g1="Q" g2="Y" k="20" /> +<hkern g1="Q" g2="backslash" k="39" /> +<hkern g1="Q" g2="bracketright" k="-27" /> +<hkern g1="Q" g2="c" k="10" /> +<hkern g1="Q" g2="d" k="10" /> +<hkern g1="Q" g2="e" k="10" /> +<hkern g1="Q" g2="g" k="10" /> +<hkern g1="Q" g2="j" k="-219" /> +<hkern g1="Q" g2="o" k="10" /> +<hkern g1="Q" g2="q" k="10" /> +<hkern g1="Q" g2="x" k="15" /> +<hkern g1="Q" g2="braceright" k="-14" /> +<hkern g1="Q" g2="Agrave" k="27" /> +<hkern g1="Q" g2="Aacute" k="27" /> +<hkern g1="Q" g2="Acircumflex" k="27" /> +<hkern g1="Q" g2="Atilde" k="27" /> +<hkern g1="Q" g2="Adieresis" k="27" /> +<hkern g1="Q" g2="Aring" k="27" /> +<hkern g1="Q" g2="AE" k="92" /> +<hkern g1="Q" g2="Egrave" k="18" /> +<hkern g1="Q" g2="Eacute" k="18" /> +<hkern g1="Q" g2="Ecircumflex" k="18" /> +<hkern g1="Q" g2="Edieresis" k="18" /> +<hkern g1="Q" g2="Igrave" k="18" /> +<hkern g1="Q" g2="Iacute" k="18" /> +<hkern g1="Q" g2="Icircumflex" k="18" /> +<hkern g1="Q" g2="Idieresis" k="18" /> +<hkern g1="Q" g2="Eth" k="18" /> +<hkern g1="Q" g2="Ntilde" k="18" /> +<hkern g1="Q" g2="Ugrave" k="10" /> +<hkern g1="Q" g2="Uacute" k="10" /> +<hkern g1="Q" g2="Ucircumflex" k="10" /> +<hkern g1="Q" g2="Udieresis" k="10" /> +<hkern g1="Q" g2="Yacute" k="20" /> +<hkern g1="Q" g2="Thorn" k="18" /> +<hkern g1="Q" g2="ccedilla" k="10" /> +<hkern g1="Q" g2="egrave" k="10" /> +<hkern g1="Q" g2="eacute" k="10" /> +<hkern g1="Q" g2="ecircumflex" k="10" /> +<hkern g1="Q" g2="edieresis" k="10" /> +<hkern g1="Q" g2="ograve" k="10" /> +<hkern g1="Q" g2="oacute" k="10" /> +<hkern g1="Q" g2="ocircumflex" k="10" /> +<hkern g1="Q" g2="otilde" k="10" /> +<hkern g1="Q" g2="odieresis" k="10" /> +<hkern g1="Q" g2="oslash" k="10" /> +<hkern g1="Q" g2="oe" k="10" /> +<hkern g1="Q" g2="quoteleft" k="31" /> +<hkern g1="Q" g2="quoteright" k="20" /> +<hkern g1="Q" g2="quotesinglbase" k="45" /> +<hkern g1="Q" g2="quotedblleft" k="31" /> +<hkern g1="Q" g2="quotedblright" k="20" /> +<hkern g1="Q" g2="quotedblbase" k="45" /> +<hkern g1="R" g2="A" k="-100" /> +<hkern g1="R" g2="J" k="-55" /> +<hkern g1="R" g2="U" k="12" /> +<hkern g1="R" g2="V" k="10" /> +<hkern g1="R" g2="W" k="23" /> +<hkern g1="R" g2="X" k="-60" /> +<hkern g1="R" g2="Y" k="23" /> +<hkern g1="R" g2="backslash" k="27" /> +<hkern g1="R" g2="bracketright" k="51" /> +<hkern g1="R" g2="c" k="15" /> +<hkern g1="R" g2="d" k="15" /> +<hkern g1="R" g2="e" k="15" /> +<hkern g1="R" g2="o" k="15" /> +<hkern g1="R" g2="q" k="15" /> +<hkern g1="R" g2="x" k="-35" /> +<hkern g1="R" g2="y" k="10" /> +<hkern g1="R" g2="guillemotleft" k="39" /> +<hkern g1="R" g2="Agrave" k="-100" /> +<hkern g1="R" g2="Aacute" k="-100" /> +<hkern g1="R" g2="Acircumflex" k="-100" /> +<hkern g1="R" g2="Atilde" k="-100" /> +<hkern g1="R" g2="Adieresis" k="-100" /> +<hkern g1="R" g2="Aring" k="-100" /> +<hkern g1="R" g2="AE" k="-100" /> +<hkern g1="R" g2="Ugrave" k="12" /> +<hkern g1="R" g2="Uacute" k="12" /> +<hkern g1="R" g2="Ucircumflex" k="12" /> +<hkern g1="R" g2="Udieresis" k="12" /> +<hkern g1="R" g2="Yacute" k="23" /> +<hkern g1="R" g2="ccedilla" k="15" /> +<hkern g1="R" g2="egrave" k="15" /> +<hkern g1="R" g2="eacute" k="15" /> +<hkern g1="R" g2="ecircumflex" k="15" /> +<hkern g1="R" g2="edieresis" k="15" /> +<hkern g1="R" g2="eth" k="18" /> +<hkern g1="R" g2="ograve" k="15" /> +<hkern g1="R" g2="oacute" k="15" /> +<hkern g1="R" g2="ocircumflex" k="15" /> +<hkern g1="R" g2="otilde" k="15" /> +<hkern g1="R" g2="odieresis" k="15" /> +<hkern g1="R" g2="oslash" k="15" /> +<hkern g1="R" g2="yacute" k="10" /> +<hkern g1="R" g2="ydieresis" k="10" /> +<hkern g1="R" g2="oe" k="15" /> +<hkern g1="R" g2="guilsinglleft" k="39" /> +<hkern g1="S" g2="slash" k="74" /> +<hkern g1="S" g2="f" k="8" /> +<hkern g1="S" g2="g" k="14" /> +<hkern g1="S" g2="i" k="12" /> +<hkern g1="S" g2="j" k="12" /> +<hkern g1="S" g2="m" k="12" /> +<hkern g1="S" g2="n" k="12" /> +<hkern g1="S" g2="p" k="12" /> +<hkern g1="S" g2="r" k="12" /> +<hkern g1="S" g2="t" k="8" /> +<hkern g1="S" g2="u" k="12" /> +<hkern g1="S" g2="v" k="10" /> +<hkern g1="S" g2="w" k="10" /> +<hkern g1="S" g2="x" k="10" /> +<hkern g1="S" g2="y" k="10" /> +<hkern g1="S" g2="germandbls" k="8" /> +<hkern g1="S" g2="igrave" k="12" /> +<hkern g1="S" g2="iacute" k="12" /> +<hkern g1="S" g2="icircumflex" k="12" /> +<hkern g1="S" g2="idieresis" k="12" /> +<hkern g1="S" g2="ntilde" k="12" /> +<hkern g1="S" g2="ugrave" k="12" /> +<hkern g1="S" g2="uacute" k="12" /> +<hkern g1="S" g2="ucircumflex" k="12" /> +<hkern g1="S" g2="udieresis" k="12" /> +<hkern g1="S" g2="yacute" k="10" /> +<hkern g1="S" g2="ydieresis" k="10" /> +<hkern g1="S" g2="dotlessi" k="12" /> +<hkern g1="T" g2="asterisk" k="-25" /> +<hkern g1="T" g2="comma" k="144" /> +<hkern g1="T" g2="hyphen" k="131" /> +<hkern g1="T" g2="period" k="100" /> +<hkern g1="T" g2="slash" k="145" /> +<hkern g1="T" g2="four" k="57" /> +<hkern g1="T" g2="at" k="25" /> +<hkern g1="T" g2="A" k="50" /> +<hkern g1="T" g2="J" k="45" /> +<hkern g1="T" g2="V" k="-45" /> +<hkern g1="T" g2="X" k="-35" /> +<hkern g1="T" g2="Y" k="-45" /> +<hkern g1="T" g2="a" k="50" /> +<hkern g1="T" g2="c" k="100" /> +<hkern g1="T" g2="d" k="100" /> +<hkern g1="T" g2="e" k="100" /> +<hkern g1="T" g2="g" k="86" /> +<hkern g1="T" g2="m" k="30" /> +<hkern g1="T" g2="n" k="30" /> +<hkern g1="T" g2="o" k="100" /> +<hkern g1="T" g2="p" k="30" /> +<hkern g1="T" g2="q" k="100" /> +<hkern g1="T" g2="r" k="30" /> +<hkern g1="T" g2="s" k="55" /> +<hkern g1="T" g2="u" k="30" /> +<hkern g1="T" g2="x" k="45" /> +<hkern g1="T" g2="z" k="80" /> +<hkern g1="T" g2="guillemotleft" k="78" /> +<hkern g1="T" g2="uni00AD" k="131" /> +<hkern g1="T" g2="Agrave" k="50" /> +<hkern g1="T" g2="Aacute" k="50" /> +<hkern g1="T" g2="Acircumflex" k="50" /> +<hkern g1="T" g2="Atilde" k="50" /> +<hkern g1="T" g2="Adieresis" k="50" /> +<hkern g1="T" g2="Aring" k="50" /> +<hkern g1="T" g2="AE" k="129" /> +<hkern g1="T" g2="Yacute" k="-45" /> +<hkern g1="T" g2="agrave" k="50" /> +<hkern g1="T" g2="aacute" k="50" /> +<hkern g1="T" g2="acircumflex" k="50" /> +<hkern g1="T" g2="atilde" k="50" /> +<hkern g1="T" g2="adieresis" k="50" /> +<hkern g1="T" g2="aring" k="50" /> +<hkern g1="T" g2="ae" k="50" /> +<hkern g1="T" g2="ccedilla" k="100" /> +<hkern g1="T" g2="egrave" k="100" /> +<hkern g1="T" g2="eacute" k="100" /> +<hkern g1="T" g2="ecircumflex" k="100" /> +<hkern g1="T" g2="edieresis" k="100" /> +<hkern g1="T" g2="eth" k="84" /> +<hkern g1="T" g2="ntilde" k="30" /> +<hkern g1="T" g2="ograve" k="100" /> +<hkern g1="T" g2="oacute" k="100" /> +<hkern g1="T" g2="ocircumflex" k="100" /> +<hkern g1="T" g2="otilde" k="100" /> +<hkern g1="T" g2="odieresis" k="100" /> +<hkern g1="T" g2="oslash" k="100" /> +<hkern g1="T" g2="ugrave" k="30" /> +<hkern g1="T" g2="uacute" k="30" /> +<hkern g1="T" g2="ucircumflex" k="30" /> +<hkern g1="T" g2="udieresis" k="30" /> +<hkern g1="T" g2="oe" k="100" /> +<hkern g1="T" g2="endash" k="131" /> +<hkern g1="T" g2="emdash" k="131" /> +<hkern g1="T" g2="quoteleft" k="-100" /> +<hkern g1="T" g2="quotesinglbase" k="170" /> +<hkern g1="T" g2="quotedblleft" k="-100" /> +<hkern g1="T" g2="quotedblbase" k="100" /> +<hkern g1="T" g2="guilsinglleft" k="78" /> +<hkern g1="U" g2="comma" k="80" /> +<hkern g1="U" g2="hyphen" k="18" /> +<hkern g1="U" g2="period" k="59" /> +<hkern g1="U" g2="slash" k="133" /> +<hkern g1="U" g2="semicolon" k="16" /> +<hkern g1="U" g2="A" k="50" /> +<hkern g1="U" g2="C" k="12" /> +<hkern g1="U" g2="G" k="20" /> +<hkern g1="U" g2="O" k="12" /> +<hkern g1="U" g2="Q" k="12" /> +<hkern g1="U" g2="a" k="50" /> +<hkern g1="U" g2="c" k="40" /> +<hkern g1="U" g2="d" k="40" /> +<hkern g1="U" g2="e" k="40" /> +<hkern g1="U" g2="f" k="20" /> +<hkern g1="U" g2="g" k="57" /> +<hkern g1="U" g2="q" k="30" /> +<hkern g1="U" g2="s" k="15" /> +<hkern g1="U" g2="t" k="10" /> +<hkern g1="U" g2="v" k="10" /> +<hkern g1="U" g2="w" k="10" /> +<hkern g1="U" g2="x" k="10" /> +<hkern g1="U" g2="y" k="10" /> +<hkern g1="U" g2="z" k="45" /> +<hkern g1="U" g2="uni00AD" k="18" /> +<hkern g1="U" g2="Agrave" k="50" /> +<hkern g1="U" g2="Aacute" k="50" /> +<hkern g1="U" g2="Acircumflex" k="50" /> +<hkern g1="U" g2="Atilde" k="50" /> +<hkern g1="U" g2="Adieresis" k="50" /> +<hkern g1="U" g2="Aring" k="50" /> +<hkern g1="U" g2="AE" k="80" /> +<hkern g1="U" g2="Ccedilla" k="12" /> +<hkern g1="U" g2="Ograve" k="12" /> +<hkern g1="U" g2="Oacute" k="12" /> +<hkern g1="U" g2="Ocircumflex" k="12" /> +<hkern g1="U" g2="Otilde" k="12" /> +<hkern g1="U" g2="Odieresis" k="12" /> +<hkern g1="U" g2="Oslash" k="12" /> +<hkern g1="U" g2="germandbls" k="20" /> +<hkern g1="U" g2="agrave" k="50" /> +<hkern g1="U" g2="aacute" k="50" /> +<hkern g1="U" g2="acircumflex" k="50" /> +<hkern g1="U" g2="atilde" k="50" /> +<hkern g1="U" g2="adieresis" k="50" /> +<hkern g1="U" g2="aring" k="50" /> +<hkern g1="U" g2="ae" k="50" /> +<hkern g1="U" g2="eth" k="47" /> +<hkern g1="U" g2="yacute" k="10" /> +<hkern g1="U" g2="ydieresis" k="10" /> +<hkern g1="U" g2="OE" k="12" /> +<hkern g1="U" g2="endash" k="18" /> +<hkern g1="U" g2="emdash" k="18" /> +<hkern g1="U" g2="quotesinglbase" k="59" /> +<hkern g1="U" g2="quotedblbase" k="59" /> +<hkern g1="V" g2="parenright" k="-90" /> +<hkern g1="V" g2="comma" k="176" /> +<hkern g1="V" g2="hyphen" k="63" /> +<hkern g1="V" g2="period" k="208" /> +<hkern g1="V" g2="slash" k="172" /> +<hkern g1="V" g2="four" k="51" /> +<hkern g1="V" g2="seven" k="-68" /> +<hkern g1="V" g2="colon" k="96" /> +<hkern g1="V" g2="semicolon" k="80" /> +<hkern g1="V" g2="at" k="47" /> +<hkern g1="V" g2="A" k="90" /> +<hkern g1="V" g2="C" k="30" /> +<hkern g1="V" g2="G" k="30" /> +<hkern g1="V" g2="O" k="30" /> +<hkern g1="V" g2="Q" k="30" /> +<hkern g1="V" g2="T" k="-45" /> +<hkern g1="V" g2="V" k="-120" /> +<hkern g1="V" g2="W" k="-110" /> +<hkern g1="V" g2="X" k="-110" /> +<hkern g1="V" g2="Y" k="-120" /> +<hkern g1="V" g2="backslash" k="-47" /> +<hkern g1="V" g2="bracketright" k="-86" /> +<hkern g1="V" g2="a" k="50" /> +<hkern g1="V" g2="b" k="-80" /> +<hkern g1="V" g2="c" k="80" /> +<hkern g1="V" g2="d" k="80" /> +<hkern g1="V" g2="e" k="80" /> +<hkern g1="V" g2="f" k="12" /> +<hkern g1="V" g2="g" k="80" /> +<hkern g1="V" g2="h" k="-45" /> +<hkern g1="V" g2="k" k="-45" /> +<hkern g1="V" g2="l" k="-45" /> +<hkern g1="V" g2="m" k="30" /> +<hkern g1="V" g2="n" k="30" /> +<hkern g1="V" g2="o" k="80" /> +<hkern g1="V" g2="p" k="30" /> +<hkern g1="V" g2="q" k="80" /> +<hkern g1="V" g2="r" k="30" /> +<hkern g1="V" g2="s" k="60" /> +<hkern g1="V" g2="t" k="20" /> +<hkern g1="V" g2="u" k="30" /> +<hkern g1="V" g2="v" k="30" /> +<hkern g1="V" g2="w" k="30" /> +<hkern g1="V" g2="x" k="30" /> +<hkern g1="V" g2="y" k="37" /> +<hkern g1="V" g2="z" k="80" /> +<hkern g1="V" g2="braceright" k="-43" /> +<hkern g1="V" g2="guillemotleft" k="63" /> +<hkern g1="V" g2="uni00AD" k="63" /> +<hkern g1="V" g2="guillemotright" k="20" /> +<hkern g1="V" g2="Agrave" k="90" /> +<hkern g1="V" g2="Aacute" k="90" /> +<hkern g1="V" g2="Acircumflex" k="90" /> +<hkern g1="V" g2="Atilde" k="90" /> +<hkern g1="V" g2="Adieresis" k="90" /> +<hkern g1="V" g2="Aring" k="90" /> +<hkern g1="V" g2="AE" k="166" /> +<hkern g1="V" g2="Ccedilla" k="30" /> +<hkern g1="V" g2="Ograve" k="30" /> +<hkern g1="V" g2="Oacute" k="30" /> +<hkern g1="V" g2="Ocircumflex" k="30" /> +<hkern g1="V" g2="Otilde" k="30" /> +<hkern g1="V" g2="Odieresis" k="30" /> +<hkern g1="V" g2="Oslash" k="30" /> +<hkern g1="V" g2="Yacute" k="-120" /> +<hkern g1="V" g2="germandbls" k="12" /> +<hkern g1="V" g2="agrave" k="50" /> +<hkern g1="V" g2="aacute" k="50" /> +<hkern g1="V" g2="acircumflex" k="50" /> +<hkern g1="V" g2="atilde" k="50" /> +<hkern g1="V" g2="adieresis" k="50" /> +<hkern g1="V" g2="aring" k="50" /> +<hkern g1="V" g2="ae" k="50" /> +<hkern g1="V" g2="ccedilla" k="80" /> +<hkern g1="V" g2="egrave" k="80" /> +<hkern g1="V" g2="eacute" k="80" /> +<hkern g1="V" g2="ecircumflex" k="80" /> +<hkern g1="V" g2="edieresis" k="80" /> +<hkern g1="V" g2="igrave" k="-80" /> +<hkern g1="V" g2="iacute" k="30" /> +<hkern g1="V" g2="icircumflex" k="-80" /> +<hkern g1="V" g2="idieresis" k="-80" /> +<hkern g1="V" g2="eth" k="72" /> +<hkern g1="V" g2="ntilde" k="30" /> +<hkern g1="V" g2="ograve" k="80" /> +<hkern g1="V" g2="oacute" k="80" /> +<hkern g1="V" g2="ocircumflex" k="80" /> +<hkern g1="V" g2="otilde" k="80" /> +<hkern g1="V" g2="odieresis" k="80" /> +<hkern g1="V" g2="oslash" k="80" /> +<hkern g1="V" g2="ugrave" k="30" /> +<hkern g1="V" g2="uacute" k="30" /> +<hkern g1="V" g2="ucircumflex" k="30" /> +<hkern g1="V" g2="udieresis" k="30" /> +<hkern g1="V" g2="yacute" k="37" /> +<hkern g1="V" g2="thorn" k="-80" /> +<hkern g1="V" g2="ydieresis" k="37" /> +<hkern g1="V" g2="OE" k="30" /> +<hkern g1="V" g2="oe" k="80" /> +<hkern g1="V" g2="endash" k="63" /> +<hkern g1="V" g2="emdash" k="63" /> +<hkern g1="V" g2="quoteleft" k="-110" /> +<hkern g1="V" g2="quotesinglbase" k="180" /> +<hkern g1="V" g2="quotedblleft" k="-110" /> +<hkern g1="V" g2="quotedblbase" k="208" /> +<hkern g1="V" g2="guilsinglleft" k="63" /> +<hkern g1="V" g2="guilsinglright" k="20" /> +<hkern g1="W" g2="ampersand" k="20" /> +<hkern g1="W" g2="parenright" k="-55" /> +<hkern g1="W" g2="comma" k="176" /> +<hkern g1="W" g2="hyphen" k="66" /> +<hkern g1="W" g2="period" k="133" /> +<hkern g1="W" g2="slash" k="174" /> +<hkern g1="W" g2="four" k="53" /> +<hkern g1="W" g2="seven" k="-63" /> +<hkern g1="W" g2="colon" k="41" /> +<hkern g1="W" g2="semicolon" k="43" /> +<hkern g1="W" g2="at" k="51" /> +<hkern g1="W" g2="A" k="90" /> +<hkern g1="W" g2="C" k="30" /> +<hkern g1="W" g2="G" k="30" /> +<hkern g1="W" g2="O" k="30" /> +<hkern g1="W" g2="Q" k="30" /> +<hkern g1="W" g2="T" k="-35" /> +<hkern g1="W" g2="V" k="-110" /> +<hkern g1="W" g2="W" k="-110" /> +<hkern g1="W" g2="X" k="-110" /> +<hkern g1="W" g2="Y" k="-110" /> +<hkern g1="W" g2="backslash" k="-39" /> +<hkern g1="W" g2="bracketright" k="-80" /> +<hkern g1="W" g2="a" k="80" /> +<hkern g1="W" g2="b" k="-76" /> +<hkern g1="W" g2="c" k="80" /> +<hkern g1="W" g2="d" k="80" /> +<hkern g1="W" g2="e" k="80" /> +<hkern g1="W" g2="f" k="10" /> +<hkern g1="W" g2="g" k="100" /> +<hkern g1="W" g2="h" k="-45" /> +<hkern g1="W" g2="k" k="-45" /> +<hkern g1="W" g2="l" k="-41" /> +<hkern g1="W" g2="m" k="55" /> +<hkern g1="W" g2="n" k="55" /> +<hkern g1="W" g2="o" k="80" /> +<hkern g1="W" g2="p" k="55" /> +<hkern g1="W" g2="q" k="80" /> +<hkern g1="W" g2="r" k="55" /> +<hkern g1="W" g2="s" k="80" /> +<hkern g1="W" g2="t" k="35" /> +<hkern g1="W" g2="u" k="70" /> +<hkern g1="W" g2="v" k="20" /> +<hkern g1="W" g2="w" k="20" /> +<hkern g1="W" g2="x" k="50" /> +<hkern g1="W" g2="y" k="35" /> +<hkern g1="W" g2="z" k="96" /> +<hkern g1="W" g2="braceright" k="-39" /> +<hkern g1="W" g2="guillemotleft" k="63" /> +<hkern g1="W" g2="uni00AD" k="66" /> +<hkern g1="W" g2="guillemotright" k="25" /> +<hkern g1="W" g2="Agrave" k="90" /> +<hkern g1="W" g2="Aacute" k="90" /> +<hkern g1="W" g2="Acircumflex" k="90" /> +<hkern g1="W" g2="Atilde" k="90" /> +<hkern g1="W" g2="Adieresis" k="90" /> +<hkern g1="W" g2="Aring" k="90" /> +<hkern g1="W" g2="AE" k="164" /> +<hkern g1="W" g2="Ccedilla" k="30" /> +<hkern g1="W" g2="Ograve" k="30" /> +<hkern g1="W" g2="Oacute" k="30" /> +<hkern g1="W" g2="Ocircumflex" k="30" /> +<hkern g1="W" g2="Otilde" k="30" /> +<hkern g1="W" g2="Odieresis" k="30" /> +<hkern g1="W" g2="Oslash" k="30" /> +<hkern g1="W" g2="Yacute" k="-110" /> +<hkern g1="W" g2="germandbls" k="10" /> +<hkern g1="W" g2="agrave" k="70" /> +<hkern g1="W" g2="aacute" k="70" /> +<hkern g1="W" g2="acircumflex" k="70" /> +<hkern g1="W" g2="atilde" k="70" /> +<hkern g1="W" g2="adieresis" k="70" /> +<hkern g1="W" g2="aring" k="70" /> +<hkern g1="W" g2="ae" k="80" /> +<hkern g1="W" g2="ccedilla" k="80" /> +<hkern g1="W" g2="egrave" k="80" /> +<hkern g1="W" g2="eacute" k="80" /> +<hkern g1="W" g2="ecircumflex" k="80" /> +<hkern g1="W" g2="edieresis" k="80" /> +<hkern g1="W" g2="igrave" k="-70" /> +<hkern g1="W" g2="iacute" k="35" /> +<hkern g1="W" g2="icircumflex" k="-55" /> +<hkern g1="W" g2="idieresis" k="-55" /> +<hkern g1="W" g2="eth" k="82" /> +<hkern g1="W" g2="ntilde" k="55" /> +<hkern g1="W" g2="ograve" k="80" /> +<hkern g1="W" g2="oacute" k="80" /> +<hkern g1="W" g2="ocircumflex" k="80" /> +<hkern g1="W" g2="otilde" k="80" /> +<hkern g1="W" g2="odieresis" k="80" /> +<hkern g1="W" g2="oslash" k="80" /> +<hkern g1="W" g2="ugrave" k="70" /> +<hkern g1="W" g2="uacute" k="70" /> +<hkern g1="W" g2="ucircumflex" k="70" /> +<hkern g1="W" g2="udieresis" k="70" /> +<hkern g1="W" g2="yacute" k="35" /> +<hkern g1="W" g2="thorn" k="-76" /> +<hkern g1="W" g2="ydieresis" k="35" /> +<hkern g1="W" g2="OE" k="30" /> +<hkern g1="W" g2="oe" k="80" /> +<hkern g1="W" g2="endash" k="66" /> +<hkern g1="W" g2="emdash" k="66" /> +<hkern g1="W" g2="quoteleft" k="-90" /> +<hkern g1="W" g2="quotesinglbase" k="180" /> +<hkern g1="W" g2="quotedblleft" k="-90" /> +<hkern g1="W" g2="quotedblbase" k="133" /> +<hkern g1="W" g2="guilsinglleft" k="63" /> +<hkern g1="W" g2="guilsinglright" k="25" /> +<hkern g1="X" g2="asterisk" k="16" /> +<hkern g1="X" g2="hyphen" k="82" /> +<hkern g1="X" g2="A" k="-85" /> +<hkern g1="X" g2="C" k="30" /> +<hkern g1="X" g2="G" k="30" /> +<hkern g1="X" g2="O" k="30" /> +<hkern g1="X" g2="Q" k="30" /> +<hkern g1="X" g2="V" k="-25" /> +<hkern g1="X" g2="W" k="-35" /> +<hkern g1="X" g2="X" k="-75" /> +<hkern g1="X" g2="Y" k="-55" /> +<hkern g1="X" g2="a" k="-45" /> +<hkern g1="X" g2="d" k="33" /> +<hkern g1="X" g2="q" k="33" /> +<hkern g1="X" g2="t" k="10" /> +<hkern g1="X" g2="v" k="50" /> +<hkern g1="X" g2="w" k="25" /> +<hkern g1="X" g2="x" k="-70" /> +<hkern g1="X" g2="y" k="50" /> +<hkern g1="X" g2="z" k="-45" /> +<hkern g1="X" g2="guillemotleft" k="25" /> +<hkern g1="X" g2="uni00AD" k="82" /> +<hkern g1="X" g2="Agrave" k="-85" /> +<hkern g1="X" g2="Aacute" k="-85" /> +<hkern g1="X" g2="Acircumflex" k="-85" /> +<hkern g1="X" g2="Atilde" k="-85" /> +<hkern g1="X" g2="Adieresis" k="-85" /> +<hkern g1="X" g2="Aring" k="-85" /> +<hkern g1="X" g2="AE" k="-120" /> +<hkern g1="X" g2="Ccedilla" k="30" /> +<hkern g1="X" g2="Ograve" k="30" /> +<hkern g1="X" g2="Oacute" k="30" /> +<hkern g1="X" g2="Ocircumflex" k="30" /> +<hkern g1="X" g2="Otilde" k="30" /> +<hkern g1="X" g2="Odieresis" k="30" /> +<hkern g1="X" g2="Oslash" k="30" /> +<hkern g1="X" g2="Yacute" k="-55" /> +<hkern g1="X" g2="agrave" k="-45" /> +<hkern g1="X" g2="aacute" k="-45" /> +<hkern g1="X" g2="acircumflex" k="-45" /> +<hkern g1="X" g2="atilde" k="-45" /> +<hkern g1="X" g2="adieresis" k="-45" /> +<hkern g1="X" g2="aring" k="-45" /> +<hkern g1="X" g2="ae" k="-45" /> +<hkern g1="X" g2="eth" k="31" /> +<hkern g1="X" g2="yacute" k="50" /> +<hkern g1="X" g2="ydieresis" k="50" /> +<hkern g1="X" g2="OE" k="30" /> +<hkern g1="X" g2="endash" k="82" /> +<hkern g1="X" g2="emdash" k="82" /> +<hkern g1="X" g2="guilsinglleft" k="25" /> +<hkern g1="Y" g2="ampersand" k="29" /> +<hkern g1="Y" g2="asterisk" k="23" /> +<hkern g1="Y" g2="comma" k="96" /> +<hkern g1="Y" g2="hyphen" k="115" /> +<hkern g1="Y" g2="period" k="110" /> +<hkern g1="Y" g2="slash" k="143" /> +<hkern g1="Y" g2="zero" k="23" /> +<hkern g1="Y" g2="four" k="80" /> +<hkern g1="Y" g2="six" k="27" /> +<hkern g1="Y" g2="seven" k="-53" /> +<hkern g1="Y" g2="colon" k="55" /> +<hkern g1="Y" g2="semicolon" k="57" /> +<hkern g1="Y" g2="at" k="72" /> +<hkern g1="Y" g2="A" k="70" /> +<hkern g1="Y" g2="C" k="30" /> +<hkern g1="Y" g2="G" k="30" /> +<hkern g1="Y" g2="O" k="40" /> +<hkern g1="Y" g2="Q" k="30" /> +<hkern g1="Y" g2="T" k="-45" /> +<hkern g1="Y" g2="V" k="-110" /> +<hkern g1="Y" g2="W" k="-80" /> +<hkern g1="Y" g2="X" k="-55" /> +<hkern g1="Y" g2="Y" k="-120" /> +<hkern g1="Y" g2="backslash" k="-20" /> +<hkern g1="Y" g2="bracketright" k="-70" /> +<hkern g1="Y" g2="a" k="100" /> +<hkern g1="Y" g2="b" k="-63" /> +<hkern g1="Y" g2="c" k="100" /> +<hkern g1="Y" g2="d" k="100" /> +<hkern g1="Y" g2="e" k="100" /> +<hkern g1="Y" g2="f" k="33" /> +<hkern g1="Y" g2="g" k="120" /> +<hkern g1="Y" g2="h" k="-45" /> +<hkern g1="Y" g2="i" k="12" /> +<hkern g1="Y" g2="k" k="-45" /> +<hkern g1="Y" g2="l" k="-31" /> +<hkern g1="Y" g2="m" k="100" /> +<hkern g1="Y" g2="n" k="100" /> +<hkern g1="Y" g2="o" k="144" /> +<hkern g1="Y" g2="p" k="100" /> +<hkern g1="Y" g2="q" k="100" /> +<hkern g1="Y" g2="r" k="100" /> +<hkern g1="Y" g2="s" k="135" /> +<hkern g1="Y" g2="t" k="60" /> +<hkern g1="Y" g2="u" k="100" /> +<hkern g1="Y" g2="v" k="80" /> +<hkern g1="Y" g2="w" k="80" /> +<hkern g1="Y" g2="x" k="100" /> +<hkern g1="Y" g2="y" k="80" /> +<hkern g1="Y" g2="z" k="100" /> +<hkern g1="Y" g2="braceright" k="-27" /> +<hkern g1="Y" g2="guillemotleft" k="106" /> +<hkern g1="Y" g2="uni00AD" k="115" /> +<hkern g1="Y" g2="registered" k="33" /> +<hkern g1="Y" g2="guillemotright" k="43" /> +<hkern g1="Y" g2="Agrave" k="70" /> +<hkern g1="Y" g2="Aacute" k="70" /> +<hkern g1="Y" g2="Acircumflex" k="70" /> +<hkern g1="Y" g2="Atilde" k="70" /> +<hkern g1="Y" g2="Adieresis" k="70" /> +<hkern g1="Y" g2="Aring" k="70" /> +<hkern g1="Y" g2="AE" k="111" /> +<hkern g1="Y" g2="Ccedilla" k="40" /> +<hkern g1="Y" g2="Ograve" k="40" /> +<hkern g1="Y" g2="Oacute" k="40" /> +<hkern g1="Y" g2="Ocircumflex" k="40" /> +<hkern g1="Y" g2="Otilde" k="40" /> +<hkern g1="Y" g2="Odieresis" k="40" /> +<hkern g1="Y" g2="Oslash" k="40" /> +<hkern g1="Y" g2="Yacute" k="-120" /> +<hkern g1="Y" g2="germandbls" k="33" /> +<hkern g1="Y" g2="agrave" k="100" /> +<hkern g1="Y" g2="aacute" k="100" /> +<hkern g1="Y" g2="acircumflex" k="100" /> +<hkern g1="Y" g2="atilde" k="100" /> +<hkern g1="Y" g2="adieresis" k="145" /> +<hkern g1="Y" g2="aring" k="100" /> +<hkern g1="Y" g2="ae" k="100" /> +<hkern g1="Y" g2="ccedilla" k="144" /> +<hkern g1="Y" g2="egrave" k="144" /> +<hkern g1="Y" g2="eacute" k="144" /> +<hkern g1="Y" g2="ecircumflex" k="144" /> +<hkern g1="Y" g2="edieresis" k="144" /> +<hkern g1="Y" g2="igrave" k="-57" /> +<hkern g1="Y" g2="iacute" k="12" /> +<hkern g1="Y" g2="icircumflex" k="12" /> +<hkern g1="Y" g2="idieresis" k="-43" /> +<hkern g1="Y" g2="eth" k="102" /> +<hkern g1="Y" g2="ntilde" k="100" /> +<hkern g1="Y" g2="ograve" k="144" /> +<hkern g1="Y" g2="oacute" k="144" /> +<hkern g1="Y" g2="ocircumflex" k="144" /> +<hkern g1="Y" g2="otilde" k="144" /> +<hkern g1="Y" g2="odieresis" k="144" /> +<hkern g1="Y" g2="oslash" k="144" /> +<hkern g1="Y" g2="ugrave" k="100" /> +<hkern g1="Y" g2="uacute" k="100" /> +<hkern g1="Y" g2="ucircumflex" k="100" /> +<hkern g1="Y" g2="udieresis" k="100" /> +<hkern g1="Y" g2="yacute" k="80" /> +<hkern g1="Y" g2="thorn" k="-63" /> +<hkern g1="Y" g2="ydieresis" k="80" /> +<hkern g1="Y" g2="dotlessi" k="12" /> +<hkern g1="Y" g2="OE" k="40" /> +<hkern g1="Y" g2="oe" k="144" /> +<hkern g1="Y" g2="endash" k="115" /> +<hkern g1="Y" g2="emdash" k="115" /> +<hkern g1="Y" g2="quoteleft" k="-100" /> +<hkern g1="Y" g2="quotesinglbase" k="110" /> +<hkern g1="Y" g2="quotedblleft" k="-100" /> +<hkern g1="Y" g2="quotedblbase" k="110" /> +<hkern g1="Y" g2="guilsinglleft" k="106" /> +<hkern g1="Y" g2="guilsinglright" k="43" /> +<hkern g1="Z" g2="hyphen" k="39" /> +<hkern g1="Z" g2="slash" k="47" /> +<hkern g1="Z" g2="C" k="10" /> +<hkern g1="Z" g2="O" k="10" /> +<hkern g1="Z" g2="Q" k="10" /> +<hkern g1="Z" g2="i" k="10" /> +<hkern g1="Z" g2="j" k="16" /> +<hkern g1="Z" g2="m" k="12" /> +<hkern g1="Z" g2="n" k="12" /> +<hkern g1="Z" g2="r" k="12" /> +<hkern g1="Z" g2="t" k="10" /> +<hkern g1="Z" g2="v" k="15" /> +<hkern g1="Z" g2="w" k="15" /> +<hkern g1="Z" g2="y" k="50" /> +<hkern g1="Z" g2="uni00AD" k="39" /> +<hkern g1="Z" g2="Ccedilla" k="10" /> +<hkern g1="Z" g2="Ograve" k="10" /> +<hkern g1="Z" g2="Oacute" k="10" /> +<hkern g1="Z" g2="Ocircumflex" k="10" /> +<hkern g1="Z" g2="Otilde" k="10" /> +<hkern g1="Z" g2="Odieresis" k="10" /> +<hkern g1="Z" g2="Oslash" k="10" /> +<hkern g1="Z" g2="igrave" k="10" /> +<hkern g1="Z" g2="iacute" k="10" /> +<hkern g1="Z" g2="icircumflex" k="10" /> +<hkern g1="Z" g2="idieresis" k="10" /> +<hkern g1="Z" g2="ntilde" k="12" /> +<hkern g1="Z" g2="yacute" k="50" /> +<hkern g1="Z" g2="ydieresis" k="50" /> +<hkern g1="Z" g2="dotlessi" k="10" /> +<hkern g1="Z" g2="OE" k="10" /> +<hkern g1="Z" g2="endash" k="39" /> +<hkern g1="Z" g2="emdash" k="39" /> +<hkern g1="bracketleft" g2="parenleft" k="49" /> +<hkern g1="bracketleft" g2="zero" k="61" /> +<hkern g1="bracketleft" g2="one" k="45" /> +<hkern g1="bracketleft" g2="two" k="31" /> +<hkern g1="bracketleft" g2="three" k="37" /> +<hkern g1="bracketleft" g2="four" k="78" /> +<hkern g1="bracketleft" g2="six" k="63" /> +<hkern g1="bracketleft" g2="eight" k="45" /> +<hkern g1="bracketleft" g2="nine" k="45" /> +<hkern g1="bracketleft" g2="A" k="59" /> +<hkern g1="bracketleft" g2="C" k="74" /> +<hkern g1="bracketleft" g2="G" k="74" /> +<hkern g1="bracketleft" g2="O" k="74" /> +<hkern g1="bracketleft" g2="Q" k="74" /> +<hkern g1="bracketleft" g2="S" k="41" /> +<hkern g1="bracketleft" g2="V" k="-53" /> +<hkern g1="bracketleft" g2="W" k="-31" /> +<hkern g1="bracketleft" g2="X" k="-35" /> +<hkern g1="bracketleft" g2="Y" k="-57" /> +<hkern g1="bracketleft" g2="a" k="96" /> +<hkern g1="bracketleft" g2="b" k="-27" /> +<hkern g1="bracketleft" g2="c" k="104" /> +<hkern g1="bracketleft" g2="d" k="98" /> +<hkern g1="bracketleft" g2="e" k="104" /> +<hkern g1="bracketleft" g2="f" k="43" /> +<hkern g1="bracketleft" g2="i" k="25" /> +<hkern g1="bracketleft" g2="j" k="-217" /> +<hkern g1="bracketleft" g2="m" k="90" /> +<hkern g1="bracketleft" g2="n" k="90" /> +<hkern g1="bracketleft" g2="o" k="104" /> +<hkern g1="bracketleft" g2="q" k="98" /> +<hkern g1="bracketleft" g2="r" k="90" /> +<hkern g1="bracketleft" g2="s" k="94" /> +<hkern g1="bracketleft" g2="t" k="78" /> +<hkern g1="bracketleft" g2="u" k="96" /> +<hkern g1="bracketleft" g2="v" k="88" /> +<hkern g1="bracketleft" g2="w" k="88" /> +<hkern g1="bracketleft" g2="x" k="70" /> +<hkern g1="bracketleft" g2="z" k="90" /> +<hkern g1="bracketleft" g2="braceleft" k="35" /> +<hkern g1="bracketleft" g2="Agrave" k="59" /> +<hkern g1="bracketleft" g2="Aacute" k="59" /> +<hkern g1="bracketleft" g2="Acircumflex" k="59" /> +<hkern g1="bracketleft" g2="Atilde" k="59" /> +<hkern g1="bracketleft" g2="Adieresis" k="59" /> +<hkern g1="bracketleft" g2="Aring" k="59" /> +<hkern g1="bracketleft" g2="AE" k="51" /> +<hkern g1="bracketleft" g2="Ccedilla" k="74" /> +<hkern g1="bracketleft" g2="Ograve" k="74" /> +<hkern g1="bracketleft" g2="Oacute" k="74" /> +<hkern g1="bracketleft" g2="Ocircumflex" k="74" /> +<hkern g1="bracketleft" g2="Otilde" k="74" /> +<hkern g1="bracketleft" g2="Odieresis" k="74" /> +<hkern g1="bracketleft" g2="Oslash" k="74" /> +<hkern g1="bracketleft" g2="Yacute" k="-57" /> +<hkern g1="bracketleft" g2="germandbls" k="43" /> +<hkern g1="bracketleft" g2="agrave" k="96" /> +<hkern g1="bracketleft" g2="aacute" k="96" /> +<hkern g1="bracketleft" g2="acircumflex" k="96" /> +<hkern g1="bracketleft" g2="atilde" k="96" /> +<hkern g1="bracketleft" g2="adieresis" k="96" /> +<hkern g1="bracketleft" g2="aring" k="96" /> +<hkern g1="bracketleft" g2="ae" k="96" /> +<hkern g1="bracketleft" g2="ccedilla" k="104" /> +<hkern g1="bracketleft" g2="egrave" k="104" /> +<hkern g1="bracketleft" g2="eacute" k="104" /> +<hkern g1="bracketleft" g2="ecircumflex" k="104" /> +<hkern g1="bracketleft" g2="edieresis" k="104" /> +<hkern g1="bracketleft" g2="igrave" k="-35" /> +<hkern g1="bracketleft" g2="iacute" k="25" /> +<hkern g1="bracketleft" g2="icircumflex" k="25" /> +<hkern g1="bracketleft" g2="idieresis" k="12" /> +<hkern g1="bracketleft" g2="eth" k="35" /> +<hkern g1="bracketleft" g2="ntilde" k="90" /> +<hkern g1="bracketleft" g2="ograve" k="104" /> +<hkern g1="bracketleft" g2="oacute" k="104" /> +<hkern g1="bracketleft" g2="ocircumflex" k="104" /> +<hkern g1="bracketleft" g2="otilde" k="104" /> +<hkern g1="bracketleft" g2="odieresis" k="104" /> +<hkern g1="bracketleft" g2="oslash" k="104" /> +<hkern g1="bracketleft" g2="ugrave" k="96" /> +<hkern g1="bracketleft" g2="uacute" k="96" /> +<hkern g1="bracketleft" g2="ucircumflex" k="96" /> +<hkern g1="bracketleft" g2="udieresis" k="96" /> +<hkern g1="bracketleft" g2="thorn" k="-27" /> +<hkern g1="bracketleft" g2="dotlessi" k="25" /> +<hkern g1="bracketleft" g2="OE" k="74" /> +<hkern g1="bracketleft" g2="oe" k="104" /> +<hkern g1="backslash" g2="quotedbl" k="231" /> +<hkern g1="backslash" g2="quotesingle" k="213" /> +<hkern g1="backslash" g2="zero" k="100" /> +<hkern g1="backslash" g2="one" k="61" /> +<hkern g1="backslash" g2="two" k="43" /> +<hkern g1="backslash" g2="three" k="66" /> +<hkern g1="backslash" g2="four" k="82" /> +<hkern g1="backslash" g2="five" k="70" /> +<hkern g1="backslash" g2="six" k="92" /> +<hkern g1="backslash" g2="seven" k="121" /> +<hkern g1="backslash" g2="eight" k="78" /> +<hkern g1="backslash" g2="nine" k="80" /> +<hkern g1="backslash" g2="B" k="49" /> +<hkern g1="backslash" g2="C" k="115" /> +<hkern g1="backslash" g2="D" k="49" /> +<hkern g1="backslash" g2="E" k="49" /> +<hkern g1="backslash" g2="F" k="49" /> +<hkern g1="backslash" g2="G" k="109" /> +<hkern g1="backslash" g2="H" k="49" /> +<hkern g1="backslash" g2="I" k="49" /> +<hkern g1="backslash" g2="K" k="49" /> +<hkern g1="backslash" g2="L" k="49" /> +<hkern g1="backslash" g2="M" k="43" /> +<hkern g1="backslash" g2="N" k="49" /> +<hkern g1="backslash" g2="O" k="115" /> +<hkern g1="backslash" g2="P" k="49" /> +<hkern g1="backslash" g2="Q" k="115" /> +<hkern g1="backslash" g2="R" k="49" /> +<hkern g1="backslash" g2="S" k="51" /> +<hkern g1="backslash" g2="T" k="154" /> +<hkern g1="backslash" g2="U" k="129" /> +<hkern g1="backslash" g2="V" k="176" /> +<hkern g1="backslash" g2="W" k="174" /> +<hkern g1="backslash" g2="Y" k="162" /> +<hkern g1="backslash" g2="Z" k="43" /> +<hkern g1="backslash" g2="a" k="61" /> +<hkern g1="backslash" g2="b" k="59" /> +<hkern g1="backslash" g2="c" k="94" /> +<hkern g1="backslash" g2="d" k="86" /> +<hkern g1="backslash" g2="e" k="94" /> +<hkern g1="backslash" g2="f" k="51" /> +<hkern g1="backslash" g2="h" k="41" /> +<hkern g1="backslash" g2="i" k="47" /> +<hkern g1="backslash" g2="j" k="-193" /> +<hkern g1="backslash" g2="k" k="41" /> +<hkern g1="backslash" g2="l" k="41" /> +<hkern g1="backslash" g2="m" k="49" /> +<hkern g1="backslash" g2="n" k="49" /> +<hkern g1="backslash" g2="o" k="94" /> +<hkern g1="backslash" g2="q" k="86" /> +<hkern g1="backslash" g2="r" k="49" /> +<hkern g1="backslash" g2="s" k="53" /> +<hkern g1="backslash" g2="t" k="104" /> +<hkern g1="backslash" g2="u" k="106" /> +<hkern g1="backslash" g2="v" k="147" /> +<hkern g1="backslash" g2="w" k="143" /> +<hkern g1="backslash" g2="x" k="29" /> +<hkern g1="backslash" g2="z" k="47" /> +<hkern g1="backslash" g2="Ccedilla" k="115" /> +<hkern g1="backslash" g2="Egrave" k="49" /> +<hkern g1="backslash" g2="Eacute" k="49" /> +<hkern g1="backslash" g2="Ecircumflex" k="49" /> +<hkern g1="backslash" g2="Edieresis" k="49" /> +<hkern g1="backslash" g2="Igrave" k="49" /> +<hkern g1="backslash" g2="Iacute" k="49" /> +<hkern g1="backslash" g2="Icircumflex" k="49" /> +<hkern g1="backslash" g2="Idieresis" k="49" /> +<hkern g1="backslash" g2="Eth" k="49" /> +<hkern g1="backslash" g2="Ntilde" k="49" /> +<hkern g1="backslash" g2="Ograve" k="115" /> +<hkern g1="backslash" g2="Oacute" k="115" /> +<hkern g1="backslash" g2="Ocircumflex" k="115" /> +<hkern g1="backslash" g2="Otilde" k="115" /> +<hkern g1="backslash" g2="Odieresis" k="115" /> +<hkern g1="backslash" g2="Oslash" k="115" /> +<hkern g1="backslash" g2="Ugrave" k="129" /> +<hkern g1="backslash" g2="Uacute" k="129" /> +<hkern g1="backslash" g2="Ucircumflex" k="129" /> +<hkern g1="backslash" g2="Udieresis" k="129" /> +<hkern g1="backslash" g2="Yacute" k="162" /> +<hkern g1="backslash" g2="Thorn" k="49" /> +<hkern g1="backslash" g2="germandbls" k="51" /> +<hkern g1="backslash" g2="agrave" k="61" /> +<hkern g1="backslash" g2="aacute" k="61" /> +<hkern g1="backslash" g2="acircumflex" k="61" /> +<hkern g1="backslash" g2="atilde" k="61" /> +<hkern g1="backslash" g2="adieresis" k="61" /> +<hkern g1="backslash" g2="aring" k="61" /> +<hkern g1="backslash" g2="ae" k="61" /> +<hkern g1="backslash" g2="ccedilla" k="94" /> +<hkern g1="backslash" g2="egrave" k="94" /> +<hkern g1="backslash" g2="eacute" k="94" /> +<hkern g1="backslash" g2="ecircumflex" k="94" /> +<hkern g1="backslash" g2="edieresis" k="94" /> +<hkern g1="backslash" g2="igrave" k="47" /> +<hkern g1="backslash" g2="iacute" k="47" /> +<hkern g1="backslash" g2="icircumflex" k="47" /> +<hkern g1="backslash" g2="idieresis" k="47" /> +<hkern g1="backslash" g2="eth" k="86" /> +<hkern g1="backslash" g2="ntilde" k="49" /> +<hkern g1="backslash" g2="ograve" k="94" /> +<hkern g1="backslash" g2="oacute" k="94" /> +<hkern g1="backslash" g2="ocircumflex" k="94" /> +<hkern g1="backslash" g2="otilde" k="94" /> +<hkern g1="backslash" g2="odieresis" k="94" /> +<hkern g1="backslash" g2="oslash" k="94" /> +<hkern g1="backslash" g2="ugrave" k="106" /> +<hkern g1="backslash" g2="uacute" k="106" /> +<hkern g1="backslash" g2="ucircumflex" k="106" /> +<hkern g1="backslash" g2="udieresis" k="106" /> +<hkern g1="backslash" g2="thorn" k="6" /> +<hkern g1="backslash" g2="dotlessi" k="47" /> +<hkern g1="backslash" g2="OE" k="115" /> +<hkern g1="backslash" g2="oe" k="94" /> +<hkern g1="backslash" g2="quoteright" k="178" /> +<hkern g1="backslash" g2="quotedblright" k="178" /> +<hkern g1="a" g2="quotedbl" k="23" /> +<hkern g1="a" g2="quotesingle" k="23" /> +<hkern g1="a" g2="parenright" k="47" /> +<hkern g1="a" g2="slash" k="37" /> +<hkern g1="a" g2="question" k="35" /> +<hkern g1="a" g2="B" k="10" /> +<hkern g1="a" g2="C" k="23" /> +<hkern g1="a" g2="D" k="10" /> +<hkern g1="a" g2="E" k="10" /> +<hkern g1="a" g2="F" k="10" /> +<hkern g1="a" g2="G" k="15" /> +<hkern g1="a" g2="H" k="10" /> +<hkern g1="a" g2="I" k="10" /> +<hkern g1="a" g2="J" k="-40" /> +<hkern g1="a" g2="K" k="10" /> +<hkern g1="a" g2="L" k="10" /> +<hkern g1="a" g2="N" k="10" /> +<hkern g1="a" g2="O" k="23" /> +<hkern g1="a" g2="P" k="10" /> +<hkern g1="a" g2="Q" k="23" /> +<hkern g1="a" g2="R" k="10" /> +<hkern g1="a" g2="T" k="84" /> +<hkern g1="a" g2="U" k="55" /> +<hkern g1="a" g2="V" k="100" /> +<hkern g1="a" g2="W" k="100" /> +<hkern g1="a" g2="Y" k="125" /> +<hkern g1="a" g2="backslash" k="106" /> +<hkern g1="a" g2="bracketright" k="92" /> +<hkern g1="a" g2="q" k="15" /> +<hkern g1="a" g2="t" k="15" /> +<hkern g1="a" g2="u" k="12" /> +<hkern g1="a" g2="v" k="25" /> +<hkern g1="a" g2="w" k="30" /> +<hkern g1="a" g2="y" k="20" /> +<hkern g1="a" g2="braceright" k="43" /> +<hkern g1="a" g2="Ccedilla" k="23" /> +<hkern g1="a" g2="Egrave" k="10" /> +<hkern g1="a" g2="Eacute" k="10" /> +<hkern g1="a" g2="Ecircumflex" k="10" /> +<hkern g1="a" g2="Edieresis" k="10" /> +<hkern g1="a" g2="Igrave" k="10" /> +<hkern g1="a" g2="Iacute" k="10" /> +<hkern g1="a" g2="Icircumflex" k="10" /> +<hkern g1="a" g2="Idieresis" k="10" /> +<hkern g1="a" g2="Eth" k="10" /> +<hkern g1="a" g2="Ntilde" k="10" /> +<hkern g1="a" g2="Ograve" k="23" /> +<hkern g1="a" g2="Oacute" k="23" /> +<hkern g1="a" g2="Ocircumflex" k="23" /> +<hkern g1="a" g2="Otilde" k="23" /> +<hkern g1="a" g2="Odieresis" k="23" /> +<hkern g1="a" g2="Oslash" k="23" /> +<hkern g1="a" g2="Ugrave" k="55" /> +<hkern g1="a" g2="Uacute" k="55" /> +<hkern g1="a" g2="Ucircumflex" k="55" /> +<hkern g1="a" g2="Udieresis" k="55" /> +<hkern g1="a" g2="Yacute" k="125" /> +<hkern g1="a" g2="Thorn" k="10" /> +<hkern g1="a" g2="ugrave" k="12" /> +<hkern g1="a" g2="uacute" k="12" /> +<hkern g1="a" g2="ucircumflex" k="12" /> +<hkern g1="a" g2="udieresis" k="12" /> +<hkern g1="a" g2="yacute" k="20" /> +<hkern g1="a" g2="ydieresis" k="20" /> +<hkern g1="a" g2="OE" k="23" /> +<hkern g1="a" g2="quoteleft" k="55" /> +<hkern g1="a" g2="quoteright" k="43" /> +<hkern g1="a" g2="quotedblleft" k="55" /> +<hkern g1="a" g2="quotedblright" k="43" /> +<hkern g1="b" g2="quotedbl" k="29" /> +<hkern g1="b" g2="quotesingle" k="29" /> +<hkern g1="b" g2="parenright" k="100" /> +<hkern g1="b" g2="slash" k="98" /> +<hkern g1="b" g2="question" k="35" /> +<hkern g1="b" g2="A" k="15" /> +<hkern g1="b" g2="B" k="49" /> +<hkern g1="b" g2="D" k="49" /> +<hkern g1="b" g2="E" k="49" /> +<hkern g1="b" g2="F" k="49" /> +<hkern g1="b" g2="H" k="49" /> +<hkern g1="b" g2="I" k="49" /> +<hkern g1="b" g2="J" k="20" /> +<hkern g1="b" g2="K" k="49" /> +<hkern g1="b" g2="L" k="49" /> +<hkern g1="b" g2="M" k="43" /> +<hkern g1="b" g2="N" k="49" /> +<hkern g1="b" g2="P" k="49" /> +<hkern g1="b" g2="R" k="49" /> +<hkern g1="b" g2="S" k="12" /> +<hkern g1="b" g2="T" k="64" /> +<hkern g1="b" g2="U" k="41" /> +<hkern g1="b" g2="V" k="70" /> +<hkern g1="b" g2="W" k="80" /> +<hkern g1="b" g2="X" k="94" /> +<hkern g1="b" g2="Y" k="100" /> +<hkern g1="b" g2="Z" k="43" /> +<hkern g1="b" g2="backslash" k="98" /> +<hkern g1="b" g2="bracketright" k="104" /> +<hkern g1="b" g2="f" k="10" /> +<hkern g1="b" g2="v" k="10" /> +<hkern g1="b" g2="w" k="10" /> +<hkern g1="b" g2="x" k="10" /> +<hkern g1="b" g2="y" k="15" /> +<hkern g1="b" g2="braceright" k="53" /> +<hkern g1="b" g2="Agrave" k="15" /> +<hkern g1="b" g2="Aacute" k="15" /> +<hkern g1="b" g2="Acircumflex" k="15" /> +<hkern g1="b" g2="Atilde" k="15" /> +<hkern g1="b" g2="Adieresis" k="15" /> +<hkern g1="b" g2="Aring" k="15" /> +<hkern g1="b" g2="Egrave" k="49" /> +<hkern g1="b" g2="Eacute" k="49" /> +<hkern g1="b" g2="Ecircumflex" k="49" /> +<hkern g1="b" g2="Edieresis" k="49" /> +<hkern g1="b" g2="Igrave" k="49" /> +<hkern g1="b" g2="Iacute" k="49" /> +<hkern g1="b" g2="Icircumflex" k="49" /> +<hkern g1="b" g2="Idieresis" k="49" /> +<hkern g1="b" g2="Eth" k="49" /> +<hkern g1="b" g2="Ntilde" k="49" /> +<hkern g1="b" g2="Ugrave" k="41" /> +<hkern g1="b" g2="Uacute" k="41" /> +<hkern g1="b" g2="Ucircumflex" k="41" /> +<hkern g1="b" g2="Udieresis" k="41" /> +<hkern g1="b" g2="Yacute" k="100" /> +<hkern g1="b" g2="Thorn" k="49" /> +<hkern g1="b" g2="germandbls" k="10" /> +<hkern g1="b" g2="yacute" k="15" /> +<hkern g1="b" g2="ydieresis" k="15" /> +<hkern g1="b" g2="quoteleft" k="70" /> +<hkern g1="b" g2="quoteright" k="53" /> +<hkern g1="b" g2="quotedblleft" k="70" /> +<hkern g1="b" g2="quotedblright" k="53" /> +<hkern g1="c" g2="parenright" k="51" /> +<hkern g1="c" g2="slash" k="70" /> +<hkern g1="c" g2="B" k="39" /> +<hkern g1="c" g2="C" k="12" /> +<hkern g1="c" g2="D" k="39" /> +<hkern g1="c" g2="E" k="39" /> +<hkern g1="c" g2="F" k="39" /> +<hkern g1="c" g2="G" k="12" /> +<hkern g1="c" g2="H" k="39" /> +<hkern g1="c" g2="I" k="39" /> +<hkern g1="c" g2="K" k="39" /> +<hkern g1="c" g2="L" k="39" /> +<hkern g1="c" g2="M" k="31" /> +<hkern g1="c" g2="N" k="39" /> +<hkern g1="c" g2="O" k="12" /> +<hkern g1="c" g2="P" k="39" /> +<hkern g1="c" g2="Q" k="12" /> +<hkern g1="c" g2="R" k="39" /> +<hkern g1="c" g2="T" k="43" /> +<hkern g1="c" g2="U" k="37" /> +<hkern g1="c" g2="V" k="80" /> +<hkern g1="c" g2="W" k="70" /> +<hkern g1="c" g2="X" k="33" /> +<hkern g1="c" g2="Y" k="100" /> +<hkern g1="c" g2="backslash" k="72" /> +<hkern g1="c" g2="bracketright" k="92" /> +<hkern g1="c" g2="a" k="5" /> +<hkern g1="c" g2="c" k="10" /> +<hkern g1="c" g2="d" k="10" /> +<hkern g1="c" g2="e" k="10" /> +<hkern g1="c" g2="o" k="10" /> +<hkern g1="c" g2="q" k="10" /> +<hkern g1="c" g2="t" k="10" /> +<hkern g1="c" g2="v" k="10" /> +<hkern g1="c" g2="w" k="10" /> +<hkern g1="c" g2="x" k="15" /> +<hkern g1="c" g2="y" k="10" /> +<hkern g1="c" g2="z" k="10" /> +<hkern g1="c" g2="braceright" k="39" /> +<hkern g1="c" g2="Ccedilla" k="12" /> +<hkern g1="c" g2="Egrave" k="39" /> +<hkern g1="c" g2="Eacute" k="39" /> +<hkern g1="c" g2="Ecircumflex" k="39" /> +<hkern g1="c" g2="Edieresis" k="39" /> +<hkern g1="c" g2="Igrave" k="39" /> +<hkern g1="c" g2="Iacute" k="39" /> +<hkern g1="c" g2="Icircumflex" k="39" /> +<hkern g1="c" g2="Idieresis" k="39" /> +<hkern g1="c" g2="Eth" k="39" /> +<hkern g1="c" g2="Ntilde" k="39" /> +<hkern g1="c" g2="Ograve" k="12" /> +<hkern g1="c" g2="Oacute" k="12" /> +<hkern g1="c" g2="Ocircumflex" k="12" /> +<hkern g1="c" g2="Otilde" k="12" /> +<hkern g1="c" g2="Odieresis" k="12" /> +<hkern g1="c" g2="Oslash" k="12" /> +<hkern g1="c" g2="Ugrave" k="37" /> +<hkern g1="c" g2="Uacute" k="37" /> +<hkern g1="c" g2="Ucircumflex" k="37" /> +<hkern g1="c" g2="Udieresis" k="37" /> +<hkern g1="c" g2="Yacute" k="100" /> +<hkern g1="c" g2="Thorn" k="39" /> +<hkern g1="c" g2="agrave" k="5" /> +<hkern g1="c" g2="aacute" k="5" /> +<hkern g1="c" g2="acircumflex" k="5" /> +<hkern g1="c" g2="atilde" k="5" /> +<hkern g1="c" g2="adieresis" k="5" /> +<hkern g1="c" g2="aring" k="5" /> +<hkern g1="c" g2="ae" k="5" /> +<hkern g1="c" g2="ccedilla" k="10" /> +<hkern g1="c" g2="egrave" k="10" /> +<hkern g1="c" g2="eacute" k="10" /> +<hkern g1="c" g2="ecircumflex" k="10" /> +<hkern g1="c" g2="edieresis" k="10" /> +<hkern g1="c" g2="ograve" k="10" /> +<hkern g1="c" g2="oacute" k="10" /> +<hkern g1="c" g2="ocircumflex" k="10" /> +<hkern g1="c" g2="otilde" k="10" /> +<hkern g1="c" g2="odieresis" k="10" /> +<hkern g1="c" g2="oslash" k="10" /> +<hkern g1="c" g2="yacute" k="10" /> +<hkern g1="c" g2="ydieresis" k="10" /> +<hkern g1="c" g2="OE" k="12" /> +<hkern g1="c" g2="oe" k="10" /> +<hkern g1="c" g2="quoteleft" k="41" /> +<hkern g1="c" g2="quoteright" k="27" /> +<hkern g1="c" g2="quotedblleft" k="41" /> +<hkern g1="c" g2="quotedblright" k="27" /> +<hkern g1="d" g2="slash" k="41" /> +<hkern g1="d" g2="B" k="14" /> +<hkern g1="d" g2="C" k="23" /> +<hkern g1="d" g2="D" k="14" /> +<hkern g1="d" g2="E" k="14" /> +<hkern g1="d" g2="F" k="14" /> +<hkern g1="d" g2="G" k="23" /> +<hkern g1="d" g2="H" k="14" /> +<hkern g1="d" g2="I" k="14" /> +<hkern g1="d" g2="K" k="14" /> +<hkern g1="d" g2="L" k="14" /> +<hkern g1="d" g2="M" k="8" /> +<hkern g1="d" g2="N" k="14" /> +<hkern g1="d" g2="O" k="23" /> +<hkern g1="d" g2="P" k="14" /> +<hkern g1="d" g2="Q" k="23" /> +<hkern g1="d" g2="R" k="14" /> +<hkern g1="d" g2="T" k="14" /> +<hkern g1="d" g2="U" k="29" /> +<hkern g1="d" g2="W" k="23" /> +<hkern g1="d" g2="Y" k="14" /> +<hkern g1="d" g2="t" k="10" /> +<hkern g1="d" g2="v" k="10" /> +<hkern g1="d" g2="w" k="10" /> +<hkern g1="d" g2="y" k="12" /> +<hkern g1="d" g2="Ccedilla" k="23" /> +<hkern g1="d" g2="Egrave" k="14" /> +<hkern g1="d" g2="Eacute" k="14" /> +<hkern g1="d" g2="Ecircumflex" k="14" /> +<hkern g1="d" g2="Edieresis" k="14" /> +<hkern g1="d" g2="Igrave" k="14" /> +<hkern g1="d" g2="Iacute" k="14" /> +<hkern g1="d" g2="Icircumflex" k="14" /> +<hkern g1="d" g2="Idieresis" k="14" /> +<hkern g1="d" g2="Eth" k="14" /> +<hkern g1="d" g2="Ntilde" k="14" /> +<hkern g1="d" g2="Ograve" k="23" /> +<hkern g1="d" g2="Oacute" k="23" /> +<hkern g1="d" g2="Ocircumflex" k="23" /> +<hkern g1="d" g2="Otilde" k="23" /> +<hkern g1="d" g2="Odieresis" k="23" /> +<hkern g1="d" g2="Oslash" k="23" /> +<hkern g1="d" g2="Ugrave" k="29" /> +<hkern g1="d" g2="Uacute" k="29" /> +<hkern g1="d" g2="Ucircumflex" k="29" /> +<hkern g1="d" g2="Udieresis" k="29" /> +<hkern g1="d" g2="Yacute" k="14" /> +<hkern g1="d" g2="Thorn" k="14" /> +<hkern g1="d" g2="eth" k="8" /> +<hkern g1="d" g2="yacute" k="12" /> +<hkern g1="d" g2="ydieresis" k="12" /> +<hkern g1="d" g2="OE" k="23" /> +<hkern g1="e" g2="quotedbl" k="20" /> +<hkern g1="e" g2="quotesingle" k="20" /> +<hkern g1="e" g2="parenright" k="61" /> +<hkern g1="e" g2="slash" k="78" /> +<hkern g1="e" g2="question" k="29" /> +<hkern g1="e" g2="B" k="33" /> +<hkern g1="e" g2="D" k="33" /> +<hkern g1="e" g2="E" k="33" /> +<hkern g1="e" g2="F" k="33" /> +<hkern g1="e" g2="H" k="33" /> +<hkern g1="e" g2="I" k="33" /> +<hkern g1="e" g2="K" k="33" /> +<hkern g1="e" g2="L" k="33" /> +<hkern g1="e" g2="M" k="25" /> +<hkern g1="e" g2="N" k="33" /> +<hkern g1="e" g2="P" k="33" /> +<hkern g1="e" g2="R" k="33" /> +<hkern g1="e" g2="S" k="10" /> +<hkern g1="e" g2="T" k="88" /> +<hkern g1="e" g2="U" k="41" /> +<hkern g1="e" g2="V" k="80" /> +<hkern g1="e" g2="W" k="70" /> +<hkern g1="e" g2="X" k="27" /> +<hkern g1="e" g2="Y" k="100" /> +<hkern g1="e" g2="Z" k="16" /> +<hkern g1="e" g2="backslash" k="88" /> +<hkern g1="e" g2="bracketright" k="100" /> +<hkern g1="e" g2="a" k="5" /> +<hkern g1="e" g2="c" k="10" /> +<hkern g1="e" g2="d" k="10" /> +<hkern g1="e" g2="e" k="10" /> +<hkern g1="e" g2="o" k="10" /> +<hkern g1="e" g2="q" k="10" /> +<hkern g1="e" g2="t" k="15" /> +<hkern g1="e" g2="v" k="10" /> +<hkern g1="e" g2="w" k="8" /> +<hkern g1="e" g2="x" k="10" /> +<hkern g1="e" g2="y" k="10" /> +<hkern g1="e" g2="braceright" k="47" /> +<hkern g1="e" g2="Egrave" k="33" /> +<hkern g1="e" g2="Eacute" k="33" /> +<hkern g1="e" g2="Ecircumflex" k="33" /> +<hkern g1="e" g2="Edieresis" k="33" /> +<hkern g1="e" g2="Igrave" k="33" /> +<hkern g1="e" g2="Iacute" k="33" /> +<hkern g1="e" g2="Icircumflex" k="33" /> +<hkern g1="e" g2="Idieresis" k="33" /> +<hkern g1="e" g2="Eth" k="33" /> +<hkern g1="e" g2="Ntilde" k="33" /> +<hkern g1="e" g2="Ugrave" k="41" /> +<hkern g1="e" g2="Uacute" k="41" /> +<hkern g1="e" g2="Ucircumflex" k="41" /> +<hkern g1="e" g2="Udieresis" k="41" /> +<hkern g1="e" g2="Yacute" k="100" /> +<hkern g1="e" g2="Thorn" k="33" /> +<hkern g1="e" g2="agrave" k="5" /> +<hkern g1="e" g2="aacute" k="5" /> +<hkern g1="e" g2="acircumflex" k="5" /> +<hkern g1="e" g2="atilde" k="5" /> +<hkern g1="e" g2="adieresis" k="5" /> +<hkern g1="e" g2="aring" k="5" /> +<hkern g1="e" g2="ae" k="5" /> +<hkern g1="e" g2="ccedilla" k="10" /> +<hkern g1="e" g2="egrave" k="10" /> +<hkern g1="e" g2="eacute" k="10" /> +<hkern g1="e" g2="ecircumflex" k="10" /> +<hkern g1="e" g2="edieresis" k="10" /> +<hkern g1="e" g2="ograve" k="10" /> +<hkern g1="e" g2="oacute" k="10" /> +<hkern g1="e" g2="ocircumflex" k="10" /> +<hkern g1="e" g2="otilde" k="10" /> +<hkern g1="e" g2="odieresis" k="10" /> +<hkern g1="e" g2="oslash" k="10" /> +<hkern g1="e" g2="yacute" k="10" /> +<hkern g1="e" g2="ydieresis" k="10" /> +<hkern g1="e" g2="oe" k="10" /> +<hkern g1="e" g2="quoteleft" k="55" /> +<hkern g1="e" g2="quoteright" k="41" /> +<hkern g1="e" g2="quotedblleft" k="55" /> +<hkern g1="e" g2="quotedblright" k="41" /> +<hkern g1="f" g2="exclam" k="-25" /> +<hkern g1="f" g2="quotedbl" k="-74" /> +<hkern g1="f" g2="quotesingle" k="-74" /> +<hkern g1="f" g2="parenright" k="-120" /> +<hkern g1="f" g2="asterisk" k="-25" /> +<hkern g1="f" g2="hyphen" k="20" /> +<hkern g1="f" g2="slash" k="72" /> +<hkern g1="f" g2="question" k="-16" /> +<hkern g1="f" g2="B" k="-63" /> +<hkern g1="f" g2="D" k="-63" /> +<hkern g1="f" g2="E" k="-63" /> +<hkern g1="f" g2="F" k="-63" /> +<hkern g1="f" g2="H" k="-90" /> +<hkern g1="f" g2="I" k="-63" /> +<hkern g1="f" g2="J" k="-80" /> +<hkern g1="f" g2="K" k="-63" /> +<hkern g1="f" g2="L" k="-63" /> +<hkern g1="f" g2="M" k="-96" /> +<hkern g1="f" g2="N" k="-63" /> +<hkern g1="f" g2="P" k="-63" /> +<hkern g1="f" g2="R" k="-63" /> +<hkern g1="f" g2="T" k="-123" /> +<hkern g1="f" g2="U" k="-115" /> +<hkern g1="f" g2="V" k="-186" /> +<hkern g1="f" g2="W" k="-162" /> +<hkern g1="f" g2="X" k="-208" /> +<hkern g1="f" g2="Y" k="-190" /> +<hkern g1="f" g2="Z" k="-53" /> +<hkern g1="f" g2="backslash" k="-119" /> +<hkern g1="f" g2="bracketright" k="-154" /> +<hkern g1="f" g2="b" k="-224" /> +<hkern g1="f" g2="c" k="10" /> +<hkern g1="f" g2="d" k="10" /> +<hkern g1="f" g2="e" k="10" /> +<hkern g1="f" g2="f" k="-20" /> +<hkern g1="f" g2="g" k="10" /> +<hkern g1="f" g2="h" k="-120" /> +<hkern g1="f" g2="i" k="-64" /> +<hkern g1="f" g2="j" k="-112" /> +<hkern g1="f" g2="k" k="-130" /> +<hkern g1="f" g2="l" k="-135" /> +<hkern g1="f" g2="o" k="10" /> +<hkern g1="f" g2="q" k="10" /> +<hkern g1="f" g2="t" k="-25" /> +<hkern g1="f" g2="v" k="-40" /> +<hkern g1="f" g2="w" k="-35" /> +<hkern g1="f" g2="y" k="-25" /> +<hkern g1="f" g2="bar" k="-31" /> +<hkern g1="f" g2="braceright" k="-137" /> +<hkern g1="f" g2="guillemotleft" k="23" /> +<hkern g1="f" g2="uni00AD" k="20" /> +<hkern g1="f" g2="Egrave" k="-63" /> +<hkern g1="f" g2="Eacute" k="-63" /> +<hkern g1="f" g2="Ecircumflex" k="-63" /> +<hkern g1="f" g2="Edieresis" k="-63" /> +<hkern g1="f" g2="Igrave" k="-63" /> +<hkern g1="f" g2="Iacute" k="-63" /> +<hkern g1="f" g2="Icircumflex" k="-63" /> +<hkern g1="f" g2="Idieresis" k="-63" /> +<hkern g1="f" g2="Eth" k="-63" /> +<hkern g1="f" g2="Ntilde" k="-63" /> +<hkern g1="f" g2="Ugrave" k="-115" /> +<hkern g1="f" g2="Uacute" k="-115" /> +<hkern g1="f" g2="Ucircumflex" k="-115" /> +<hkern g1="f" g2="Udieresis" k="-115" /> +<hkern g1="f" g2="Yacute" k="-190" /> +<hkern g1="f" g2="Thorn" k="-63" /> +<hkern g1="f" g2="germandbls" k="-20" /> +<hkern g1="f" g2="ccedilla" k="10" /> +<hkern g1="f" g2="egrave" k="10" /> +<hkern g1="f" g2="eacute" k="10" /> +<hkern g1="f" g2="ecircumflex" k="10" /> +<hkern g1="f" g2="edieresis" k="10" /> +<hkern g1="f" g2="igrave" k="-127" /> +<hkern g1="f" g2="iacute" k="-64" /> +<hkern g1="f" g2="icircumflex" k="-59" /> +<hkern g1="f" g2="idieresis" k="-109" /> +<hkern g1="f" g2="eth" k="23" /> +<hkern g1="f" g2="ograve" k="10" /> +<hkern g1="f" g2="oacute" k="10" /> +<hkern g1="f" g2="ocircumflex" k="10" /> +<hkern g1="f" g2="otilde" k="10" /> +<hkern g1="f" g2="odieresis" k="10" /> +<hkern g1="f" g2="oslash" k="10" /> +<hkern g1="f" g2="yacute" k="-25" /> +<hkern g1="f" g2="thorn" k="-224" /> +<hkern g1="f" g2="ydieresis" k="-25" /> +<hkern g1="f" g2="dotlessi" k="-64" /> +<hkern g1="f" g2="oe" k="10" /> +<hkern g1="f" g2="endash" k="20" /> +<hkern g1="f" g2="emdash" k="20" /> +<hkern g1="f" g2="quoteleft" k="-200" /> +<hkern g1="f" g2="quotedblleft" k="-200" /> +<hkern g1="f" g2="guilsinglleft" k="23" /> +<hkern g1="g" g2="asterisk" k="-86" /> +<hkern g1="g" g2="question" k="-25" /> +<hkern g1="g" g2="M" k="10" /> +<hkern g1="g" g2="T" k="-49" /> +<hkern g1="g" g2="Y" k="8" /> +<hkern g1="g" g2="b" k="-60" /> +<hkern g1="g" g2="c" k="10" /> +<hkern g1="g" g2="d" k="10" /> +<hkern g1="g" g2="f" k="-80" /> +<hkern g1="g" g2="h" k="-50" /> +<hkern g1="g" g2="i" k="-50" /> +<hkern g1="g" g2="j" k="-129" /> +<hkern g1="g" g2="k" k="-48" /> +<hkern g1="g" g2="l" k="-48" /> +<hkern g1="g" g2="p" k="-10" /> +<hkern g1="g" g2="q" k="10" /> +<hkern g1="g" g2="v" k="-22" /> +<hkern g1="g" g2="w" k="-20" /> +<hkern g1="g" g2="y" k="-40" /> +<hkern g1="g" g2="Yacute" k="8" /> +<hkern g1="g" g2="germandbls" k="-80" /> +<hkern g1="g" g2="igrave" k="-50" /> +<hkern g1="g" g2="iacute" k="-50" /> +<hkern g1="g" g2="icircumflex" k="-50" /> +<hkern g1="g" g2="idieresis" k="-50" /> +<hkern g1="g" g2="eth" k="8" /> +<hkern g1="g" g2="yacute" k="-40" /> +<hkern g1="g" g2="thorn" k="-60" /> +<hkern g1="g" g2="ydieresis" k="-40" /> +<hkern g1="g" g2="dotlessi" k="-50" /> +<hkern g1="h" g2="quotedbl" k="27" /> +<hkern g1="h" g2="quotesingle" k="27" /> +<hkern g1="h" g2="parenright" k="51" /> +<hkern g1="h" g2="asterisk" k="18" /> +<hkern g1="h" g2="slash" k="39" /> +<hkern g1="h" g2="seven" k="85" /> +<hkern g1="h" g2="question" k="39" /> +<hkern g1="h" g2="B" k="12" /> +<hkern g1="h" g2="C" k="25" /> +<hkern g1="h" g2="D" k="12" /> +<hkern g1="h" g2="E" k="12" /> +<hkern g1="h" g2="F" k="12" /> +<hkern g1="h" g2="G" k="23" /> +<hkern g1="h" g2="H" k="12" /> +<hkern g1="h" g2="I" k="12" /> +<hkern g1="h" g2="K" k="12" /> +<hkern g1="h" g2="L" k="12" /> +<hkern g1="h" g2="N" k="12" /> +<hkern g1="h" g2="O" k="25" /> +<hkern g1="h" g2="P" k="12" /> +<hkern g1="h" g2="Q" k="25" /> +<hkern g1="h" g2="R" k="12" /> +<hkern g1="h" g2="T" k="90" /> +<hkern g1="h" g2="U" k="57" /> +<hkern g1="h" g2="V" k="80" /> +<hkern g1="h" g2="W" k="80" /> +<hkern g1="h" g2="Y" k="100" /> +<hkern g1="h" g2="backslash" k="113" /> +<hkern g1="h" g2="bracketright" k="96" /> +<hkern g1="h" g2="j" k="10" /> +<hkern g1="h" g2="t" k="18" /> +<hkern g1="h" g2="v" k="10" /> +<hkern g1="h" g2="w" k="10" /> +<hkern g1="h" g2="y" k="15" /> +<hkern g1="h" g2="braceright" k="45" /> +<hkern g1="h" g2="Ccedilla" k="25" /> +<hkern g1="h" g2="Egrave" k="12" /> +<hkern g1="h" g2="Eacute" k="12" /> +<hkern g1="h" g2="Ecircumflex" k="12" /> +<hkern g1="h" g2="Edieresis" k="12" /> +<hkern g1="h" g2="Igrave" k="12" /> +<hkern g1="h" g2="Iacute" k="12" /> +<hkern g1="h" g2="Icircumflex" k="12" /> +<hkern g1="h" g2="Idieresis" k="12" /> +<hkern g1="h" g2="Eth" k="12" /> +<hkern g1="h" g2="Ntilde" k="12" /> +<hkern g1="h" g2="Ograve" k="25" /> +<hkern g1="h" g2="Oacute" k="25" /> +<hkern g1="h" g2="Ocircumflex" k="25" /> +<hkern g1="h" g2="Otilde" k="25" /> +<hkern g1="h" g2="Odieresis" k="25" /> +<hkern g1="h" g2="Oslash" k="25" /> +<hkern g1="h" g2="Ugrave" k="57" /> +<hkern g1="h" g2="Uacute" k="57" /> +<hkern g1="h" g2="Ucircumflex" k="57" /> +<hkern g1="h" g2="Udieresis" k="57" /> +<hkern g1="h" g2="Yacute" k="100" /> +<hkern g1="h" g2="Thorn" k="12" /> +<hkern g1="h" g2="yacute" k="15" /> +<hkern g1="h" g2="ydieresis" k="15" /> +<hkern g1="h" g2="OE" k="25" /> +<hkern g1="h" g2="quoteleft" k="59" /> +<hkern g1="h" g2="quoteright" k="47" /> +<hkern g1="h" g2="quotedblleft" k="59" /> +<hkern g1="h" g2="quotedblright" k="47" /> +<hkern g1="i" g2="slash" k="43" /> +<hkern g1="i" g2="B" k="14" /> +<hkern g1="i" g2="C" k="23" /> +<hkern g1="i" g2="D" k="14" /> +<hkern g1="i" g2="E" k="14" /> +<hkern g1="i" g2="F" k="14" /> +<hkern g1="i" g2="G" k="20" /> +<hkern g1="i" g2="H" k="14" /> +<hkern g1="i" g2="I" k="14" /> +<hkern g1="i" g2="K" k="14" /> +<hkern g1="i" g2="L" k="14" /> +<hkern g1="i" g2="M" k="10" /> +<hkern g1="i" g2="N" k="14" /> +<hkern g1="i" g2="O" k="23" /> +<hkern g1="i" g2="P" k="14" /> +<hkern g1="i" g2="Q" k="23" /> +<hkern g1="i" g2="R" k="14" /> +<hkern g1="i" g2="T" k="14" /> +<hkern g1="i" g2="U" k="25" /> +<hkern g1="i" g2="W" k="18" /> +<hkern g1="i" g2="Y" k="12" /> +<hkern g1="i" g2="t" k="8" /> +<hkern g1="i" g2="w" k="10" /> +<hkern g1="i" g2="y" k="10" /> +<hkern g1="i" g2="Ccedilla" k="23" /> +<hkern g1="i" g2="Egrave" k="14" /> +<hkern g1="i" g2="Eacute" k="14" /> +<hkern g1="i" g2="Ecircumflex" k="14" /> +<hkern g1="i" g2="Edieresis" k="14" /> +<hkern g1="i" g2="Igrave" k="14" /> +<hkern g1="i" g2="Iacute" k="14" /> +<hkern g1="i" g2="Icircumflex" k="14" /> +<hkern g1="i" g2="Idieresis" k="14" /> +<hkern g1="i" g2="Eth" k="14" /> +<hkern g1="i" g2="Ntilde" k="14" /> +<hkern g1="i" g2="Ograve" k="23" /> +<hkern g1="i" g2="Oacute" k="23" /> +<hkern g1="i" g2="Ocircumflex" k="23" /> +<hkern g1="i" g2="Otilde" k="23" /> +<hkern g1="i" g2="Odieresis" k="23" /> +<hkern g1="i" g2="Oslash" k="23" /> +<hkern g1="i" g2="Ugrave" k="25" /> +<hkern g1="i" g2="Uacute" k="25" /> +<hkern g1="i" g2="Ucircumflex" k="25" /> +<hkern g1="i" g2="Udieresis" k="25" /> +<hkern g1="i" g2="Yacute" k="12" /> +<hkern g1="i" g2="Thorn" k="14" /> +<hkern g1="i" g2="yacute" k="10" /> +<hkern g1="i" g2="ydieresis" k="10" /> +<hkern g1="i" g2="OE" k="23" /> +<hkern g1="j" g2="B" k="20" /> +<hkern g1="j" g2="C" k="10" /> +<hkern g1="j" g2="D" k="20" /> +<hkern g1="j" g2="E" k="20" /> +<hkern g1="j" g2="F" k="20" /> +<hkern g1="j" g2="G" k="10" /> +<hkern g1="j" g2="H" k="20" /> +<hkern g1="j" g2="I" k="20" /> +<hkern g1="j" g2="K" k="20" /> +<hkern g1="j" g2="L" k="20" /> +<hkern g1="j" g2="M" k="18" /> +<hkern g1="j" g2="N" k="20" /> +<hkern g1="j" g2="O" k="10" /> +<hkern g1="j" g2="P" k="20" /> +<hkern g1="j" g2="Q" k="10" /> +<hkern g1="j" g2="R" k="20" /> +<hkern g1="j" g2="S" k="10" /> +<hkern g1="j" g2="U" k="14" /> +<hkern g1="j" g2="a" k="-10" /> +<hkern g1="j" g2="j" k="-64" /> +<hkern g1="j" g2="Ccedilla" k="10" /> +<hkern g1="j" g2="Egrave" k="20" /> +<hkern g1="j" g2="Eacute" k="20" /> +<hkern g1="j" g2="Ecircumflex" k="20" /> +<hkern g1="j" g2="Edieresis" k="20" /> +<hkern g1="j" g2="Igrave" k="20" /> +<hkern g1="j" g2="Iacute" k="20" /> +<hkern g1="j" g2="Icircumflex" k="20" /> +<hkern g1="j" g2="Idieresis" k="20" /> +<hkern g1="j" g2="Eth" k="20" /> +<hkern g1="j" g2="Ntilde" k="20" /> +<hkern g1="j" g2="Ograve" k="10" /> +<hkern g1="j" g2="Oacute" k="10" /> +<hkern g1="j" g2="Ocircumflex" k="10" /> +<hkern g1="j" g2="Otilde" k="10" /> +<hkern g1="j" g2="Odieresis" k="10" /> +<hkern g1="j" g2="Oslash" k="10" /> +<hkern g1="j" g2="Ugrave" k="14" /> +<hkern g1="j" g2="Uacute" k="14" /> +<hkern g1="j" g2="Ucircumflex" k="14" /> +<hkern g1="j" g2="Udieresis" k="14" /> +<hkern g1="j" g2="Thorn" k="20" /> +<hkern g1="j" g2="agrave" k="-10" /> +<hkern g1="j" g2="aacute" k="-10" /> +<hkern g1="j" g2="acircumflex" k="-10" /> +<hkern g1="j" g2="atilde" k="-10" /> +<hkern g1="j" g2="adieresis" k="-10" /> +<hkern g1="j" g2="aring" k="-10" /> +<hkern g1="j" g2="ae" k="-10" /> +<hkern g1="j" g2="OE" k="10" /> +<hkern g1="k" g2="hyphen" k="47" /> +<hkern g1="k" g2="A" k="-50" /> +<hkern g1="k" g2="C" k="45" /> +<hkern g1="k" g2="G" k="45" /> +<hkern g1="k" g2="O" k="45" /> +<hkern g1="k" g2="Q" k="45" /> +<hkern g1="k" g2="V" k="31" /> +<hkern g1="k" g2="W" k="43" /> +<hkern g1="k" g2="Y" k="86" /> +<hkern g1="k" g2="bracketright" k="47" /> +<hkern g1="k" g2="c" k="15" /> +<hkern g1="k" g2="d" k="15" /> +<hkern g1="k" g2="e" k="15" /> +<hkern g1="k" g2="o" k="15" /> +<hkern g1="k" g2="q" k="15" /> +<hkern g1="k" g2="uni00AD" k="47" /> +<hkern g1="k" g2="Agrave" k="-50" /> +<hkern g1="k" g2="Aacute" k="-50" /> +<hkern g1="k" g2="Acircumflex" k="-50" /> +<hkern g1="k" g2="Atilde" k="-50" /> +<hkern g1="k" g2="Adieresis" k="-50" /> +<hkern g1="k" g2="Aring" k="-50" /> +<hkern g1="k" g2="Ccedilla" k="45" /> +<hkern g1="k" g2="Ograve" k="45" /> +<hkern g1="k" g2="Oacute" k="45" /> +<hkern g1="k" g2="Ocircumflex" k="45" /> +<hkern g1="k" g2="Otilde" k="45" /> +<hkern g1="k" g2="Odieresis" k="45" /> +<hkern g1="k" g2="Oslash" k="45" /> +<hkern g1="k" g2="Yacute" k="86" /> +<hkern g1="k" g2="ccedilla" k="15" /> +<hkern g1="k" g2="egrave" k="15" /> +<hkern g1="k" g2="eacute" k="15" /> +<hkern g1="k" g2="ecircumflex" k="15" /> +<hkern g1="k" g2="edieresis" k="15" /> +<hkern g1="k" g2="eth" k="57" /> +<hkern g1="k" g2="ograve" k="15" /> +<hkern g1="k" g2="oacute" k="15" /> +<hkern g1="k" g2="ocircumflex" k="15" /> +<hkern g1="k" g2="otilde" k="15" /> +<hkern g1="k" g2="odieresis" k="15" /> +<hkern g1="k" g2="oslash" k="15" /> +<hkern g1="k" g2="OE" k="45" /> +<hkern g1="k" g2="oe" k="15" /> +<hkern g1="k" g2="endash" k="47" /> +<hkern g1="k" g2="emdash" k="47" /> +<hkern g1="k" g2="quoteleft" k="23" /> +<hkern g1="k" g2="quotedblleft" k="23" /> +<hkern g1="l" g2="slash" k="43" /> +<hkern g1="l" g2="B" k="16" /> +<hkern g1="l" g2="C" k="23" /> +<hkern g1="l" g2="D" k="16" /> +<hkern g1="l" g2="E" k="16" /> +<hkern g1="l" g2="F" k="16" /> +<hkern g1="l" g2="G" k="20" /> +<hkern g1="l" g2="H" k="16" /> +<hkern g1="l" g2="I" k="16" /> +<hkern g1="l" g2="K" k="16" /> +<hkern g1="l" g2="L" k="16" /> +<hkern g1="l" g2="M" k="10" /> +<hkern g1="l" g2="N" k="16" /> +<hkern g1="l" g2="O" k="23" /> +<hkern g1="l" g2="P" k="16" /> +<hkern g1="l" g2="Q" k="23" /> +<hkern g1="l" g2="R" k="16" /> +<hkern g1="l" g2="T" k="12" /> +<hkern g1="l" g2="U" k="27" /> +<hkern g1="l" g2="W" k="20" /> +<hkern g1="l" g2="Y" k="12" /> +<hkern g1="l" g2="b" k="-64" /> +<hkern g1="l" g2="v" k="8" /> +<hkern g1="l" g2="w" k="10" /> +<hkern g1="l" g2="y" k="10" /> +<hkern g1="l" g2="middot" k="135" /> +<hkern g1="l" g2="Ccedilla" k="23" /> +<hkern g1="l" g2="Egrave" k="16" /> +<hkern g1="l" g2="Eacute" k="16" /> +<hkern g1="l" g2="Ecircumflex" k="16" /> +<hkern g1="l" g2="Edieresis" k="16" /> +<hkern g1="l" g2="Igrave" k="16" /> +<hkern g1="l" g2="Iacute" k="16" /> +<hkern g1="l" g2="Icircumflex" k="16" /> +<hkern g1="l" g2="Idieresis" k="16" /> +<hkern g1="l" g2="Eth" k="16" /> +<hkern g1="l" g2="Ntilde" k="16" /> +<hkern g1="l" g2="Ograve" k="23" /> +<hkern g1="l" g2="Oacute" k="23" /> +<hkern g1="l" g2="Ocircumflex" k="23" /> +<hkern g1="l" g2="Otilde" k="23" /> +<hkern g1="l" g2="Odieresis" k="23" /> +<hkern g1="l" g2="Oslash" k="23" /> +<hkern g1="l" g2="Ugrave" k="27" /> +<hkern g1="l" g2="Uacute" k="27" /> +<hkern g1="l" g2="Ucircumflex" k="27" /> +<hkern g1="l" g2="Udieresis" k="27" /> +<hkern g1="l" g2="Yacute" k="12" /> +<hkern g1="l" g2="Thorn" k="16" /> +<hkern g1="l" g2="yacute" k="10" /> +<hkern g1="l" g2="thorn" k="-64" /> +<hkern g1="l" g2="ydieresis" k="10" /> +<hkern g1="l" g2="OE" k="23" /> +<hkern g1="m" g2="quotedbl" k="27" /> +<hkern g1="m" g2="quotesingle" k="27" /> +<hkern g1="m" g2="parenright" k="51" /> +<hkern g1="m" g2="asterisk" k="18" /> +<hkern g1="m" g2="slash" k="39" /> +<hkern g1="m" g2="question" k="39" /> +<hkern g1="m" g2="B" k="12" /> +<hkern g1="m" g2="C" k="25" /> +<hkern g1="m" g2="D" k="12" /> +<hkern g1="m" g2="E" k="12" /> +<hkern g1="m" g2="F" k="12" /> +<hkern g1="m" g2="G" k="23" /> +<hkern g1="m" g2="H" k="12" /> +<hkern g1="m" g2="I" k="12" /> +<hkern g1="m" g2="K" k="12" /> +<hkern g1="m" g2="L" k="12" /> +<hkern g1="m" g2="N" k="12" /> +<hkern g1="m" g2="O" k="25" /> +<hkern g1="m" g2="P" k="12" /> +<hkern g1="m" g2="Q" k="25" /> +<hkern g1="m" g2="R" k="12" /> +<hkern g1="m" g2="T" k="100" /> +<hkern g1="m" g2="U" k="57" /> +<hkern g1="m" g2="V" k="80" /> +<hkern g1="m" g2="W" k="80" /> +<hkern g1="m" g2="Y" k="100" /> +<hkern g1="m" g2="backslash" k="113" /> +<hkern g1="m" g2="bracketright" k="96" /> +<hkern g1="m" g2="j" k="10" /> +<hkern g1="m" g2="t" k="18" /> +<hkern g1="m" g2="v" k="10" /> +<hkern g1="m" g2="w" k="10" /> +<hkern g1="m" g2="y" k="15" /> +<hkern g1="m" g2="braceright" k="45" /> +<hkern g1="m" g2="Ccedilla" k="25" /> +<hkern g1="m" g2="Egrave" k="12" /> +<hkern g1="m" g2="Eacute" k="12" /> +<hkern g1="m" g2="Ecircumflex" k="12" /> +<hkern g1="m" g2="Edieresis" k="12" /> +<hkern g1="m" g2="Igrave" k="12" /> +<hkern g1="m" g2="Iacute" k="12" /> +<hkern g1="m" g2="Icircumflex" k="12" /> +<hkern g1="m" g2="Idieresis" k="12" /> +<hkern g1="m" g2="Eth" k="12" /> +<hkern g1="m" g2="Ntilde" k="12" /> +<hkern g1="m" g2="Ograve" k="25" /> +<hkern g1="m" g2="Oacute" k="25" /> +<hkern g1="m" g2="Ocircumflex" k="25" /> +<hkern g1="m" g2="Otilde" k="25" /> +<hkern g1="m" g2="Odieresis" k="25" /> +<hkern g1="m" g2="Oslash" k="25" /> +<hkern g1="m" g2="Ugrave" k="57" /> +<hkern g1="m" g2="Uacute" k="57" /> +<hkern g1="m" g2="Ucircumflex" k="57" /> +<hkern g1="m" g2="Udieresis" k="57" /> +<hkern g1="m" g2="Yacute" k="100" /> +<hkern g1="m" g2="Thorn" k="12" /> +<hkern g1="m" g2="yacute" k="15" /> +<hkern g1="m" g2="ydieresis" k="15" /> +<hkern g1="m" g2="OE" k="25" /> +<hkern g1="m" g2="quoteleft" k="59" /> +<hkern g1="m" g2="quoteright" k="47" /> +<hkern g1="m" g2="quotedblleft" k="59" /> +<hkern g1="m" g2="quotedblright" k="47" /> +<hkern g1="n" g2="quotedbl" k="27" /> +<hkern g1="n" g2="quotesingle" k="27" /> +<hkern g1="n" g2="parenright" k="51" /> +<hkern g1="n" g2="asterisk" k="18" /> +<hkern g1="n" g2="slash" k="39" /> +<hkern g1="n" g2="question" k="39" /> +<hkern g1="n" g2="B" k="12" /> +<hkern g1="n" g2="C" k="25" /> +<hkern g1="n" g2="D" k="12" /> +<hkern g1="n" g2="E" k="12" /> +<hkern g1="n" g2="F" k="12" /> +<hkern g1="n" g2="G" k="23" /> +<hkern g1="n" g2="H" k="12" /> +<hkern g1="n" g2="I" k="12" /> +<hkern g1="n" g2="K" k="12" /> +<hkern g1="n" g2="L" k="12" /> +<hkern g1="n" g2="N" k="12" /> +<hkern g1="n" g2="O" k="25" /> +<hkern g1="n" g2="P" k="12" /> +<hkern g1="n" g2="Q" k="25" /> +<hkern g1="n" g2="R" k="12" /> +<hkern g1="n" g2="T" k="100" /> +<hkern g1="n" g2="U" k="57" /> +<hkern g1="n" g2="V" k="80" /> +<hkern g1="n" g2="W" k="80" /> +<hkern g1="n" g2="Y" k="100" /> +<hkern g1="n" g2="backslash" k="113" /> +<hkern g1="n" g2="bracketright" k="96" /> +<hkern g1="n" g2="j" k="10" /> +<hkern g1="n" g2="t" k="18" /> +<hkern g1="n" g2="v" k="30" /> +<hkern g1="n" g2="w" k="35" /> +<hkern g1="n" g2="y" k="15" /> +<hkern g1="n" g2="braceright" k="45" /> +<hkern g1="n" g2="Ccedilla" k="25" /> +<hkern g1="n" g2="Egrave" k="12" /> +<hkern g1="n" g2="Eacute" k="12" /> +<hkern g1="n" g2="Ecircumflex" k="12" /> +<hkern g1="n" g2="Edieresis" k="12" /> +<hkern g1="n" g2="Igrave" k="12" /> +<hkern g1="n" g2="Iacute" k="12" /> +<hkern g1="n" g2="Icircumflex" k="12" /> +<hkern g1="n" g2="Idieresis" k="12" /> +<hkern g1="n" g2="Eth" k="12" /> +<hkern g1="n" g2="Ntilde" k="12" /> +<hkern g1="n" g2="Ograve" k="25" /> +<hkern g1="n" g2="Oacute" k="25" /> +<hkern g1="n" g2="Ocircumflex" k="25" /> +<hkern g1="n" g2="Otilde" k="25" /> +<hkern g1="n" g2="Odieresis" k="25" /> +<hkern g1="n" g2="Oslash" k="25" /> +<hkern g1="n" g2="Ugrave" k="57" /> +<hkern g1="n" g2="Uacute" k="57" /> +<hkern g1="n" g2="Ucircumflex" k="57" /> +<hkern g1="n" g2="Udieresis" k="57" /> +<hkern g1="n" g2="Yacute" k="100" /> +<hkern g1="n" g2="Thorn" k="12" /> +<hkern g1="n" g2="yacute" k="15" /> +<hkern g1="n" g2="ydieresis" k="15" /> +<hkern g1="n" g2="OE" k="25" /> +<hkern g1="n" g2="quoteleft" k="59" /> +<hkern g1="n" g2="quoteright" k="47" /> +<hkern g1="n" g2="quotedblleft" k="59" /> +<hkern g1="n" g2="quotedblright" k="47" /> +<hkern g1="o" g2="quotedbl" k="29" /> +<hkern g1="o" g2="quotesingle" k="29" /> +<hkern g1="o" g2="parenright" k="100" /> +<hkern g1="o" g2="slash" k="98" /> +<hkern g1="o" g2="question" k="35" /> +<hkern g1="o" g2="A" k="15" /> +<hkern g1="o" g2="B" k="49" /> +<hkern g1="o" g2="D" k="49" /> +<hkern g1="o" g2="E" k="49" /> +<hkern g1="o" g2="F" k="49" /> +<hkern g1="o" g2="H" k="49" /> +<hkern g1="o" g2="I" k="49" /> +<hkern g1="o" g2="K" k="49" /> +<hkern g1="o" g2="L" k="49" /> +<hkern g1="o" g2="M" k="43" /> +<hkern g1="o" g2="N" k="49" /> +<hkern g1="o" g2="P" k="49" /> +<hkern g1="o" g2="R" k="49" /> +<hkern g1="o" g2="S" k="12" /> +<hkern g1="o" g2="T" k="100" /> +<hkern g1="o" g2="U" k="41" /> +<hkern g1="o" g2="V" k="70" /> +<hkern g1="o" g2="W" k="100" /> +<hkern g1="o" g2="X" k="94" /> +<hkern g1="o" g2="Y" k="115" /> +<hkern g1="o" g2="Z" k="43" /> +<hkern g1="o" g2="backslash" k="98" /> +<hkern g1="o" g2="bracketright" k="104" /> +<hkern g1="o" g2="f" k="10" /> +<hkern g1="o" g2="v" k="10" /> +<hkern g1="o" g2="w" k="20" /> +<hkern g1="o" g2="x" k="10" /> +<hkern g1="o" g2="y" k="16" /> +<hkern g1="o" g2="braceright" k="53" /> +<hkern g1="o" g2="Agrave" k="15" /> +<hkern g1="o" g2="Aacute" k="15" /> +<hkern g1="o" g2="Acircumflex" k="15" /> +<hkern g1="o" g2="Atilde" k="15" /> +<hkern g1="o" g2="Adieresis" k="15" /> +<hkern g1="o" g2="Aring" k="15" /> +<hkern g1="o" g2="Egrave" k="49" /> +<hkern g1="o" g2="Eacute" k="49" /> +<hkern g1="o" g2="Ecircumflex" k="49" /> +<hkern g1="o" g2="Edieresis" k="49" /> +<hkern g1="o" g2="Igrave" k="49" /> +<hkern g1="o" g2="Iacute" k="49" /> +<hkern g1="o" g2="Icircumflex" k="49" /> +<hkern g1="o" g2="Idieresis" k="49" /> +<hkern g1="o" g2="Eth" k="49" /> +<hkern g1="o" g2="Ntilde" k="49" /> +<hkern g1="o" g2="Ugrave" k="41" /> +<hkern g1="o" g2="Uacute" k="41" /> +<hkern g1="o" g2="Ucircumflex" k="41" /> +<hkern g1="o" g2="Udieresis" k="41" /> +<hkern g1="o" g2="Yacute" k="115" /> +<hkern g1="o" g2="Thorn" k="49" /> +<hkern g1="o" g2="germandbls" k="10" /> +<hkern g1="o" g2="yacute" k="16" /> +<hkern g1="o" g2="ydieresis" k="16" /> +<hkern g1="o" g2="quoteleft" k="70" /> +<hkern g1="o" g2="quoteright" k="53" /> +<hkern g1="o" g2="quotedblleft" k="70" /> +<hkern g1="o" g2="quotedblright" k="53" /> +<hkern g1="p" g2="quotedbl" k="29" /> +<hkern g1="p" g2="quotesingle" k="29" /> +<hkern g1="p" g2="parenright" k="100" /> +<hkern g1="p" g2="slash" k="98" /> +<hkern g1="p" g2="question" k="35" /> +<hkern g1="p" g2="A" k="15" /> +<hkern g1="p" g2="B" k="49" /> +<hkern g1="p" g2="D" k="49" /> +<hkern g1="p" g2="E" k="49" /> +<hkern g1="p" g2="F" k="49" /> +<hkern g1="p" g2="H" k="49" /> +<hkern g1="p" g2="I" k="49" /> +<hkern g1="p" g2="K" k="49" /> +<hkern g1="p" g2="L" k="49" /> +<hkern g1="p" g2="M" k="25" /> +<hkern g1="p" g2="N" k="49" /> +<hkern g1="p" g2="P" k="49" /> +<hkern g1="p" g2="R" k="49" /> +<hkern g1="p" g2="S" k="12" /> +<hkern g1="p" g2="T" k="100" /> +<hkern g1="p" g2="U" k="41" /> +<hkern g1="p" g2="V" k="70" /> +<hkern g1="p" g2="W" k="100" /> +<hkern g1="p" g2="X" k="94" /> +<hkern g1="p" g2="Y" k="100" /> +<hkern g1="p" g2="Z" k="43" /> +<hkern g1="p" g2="backslash" k="98" /> +<hkern g1="p" g2="bracketright" k="104" /> +<hkern g1="p" g2="f" k="10" /> +<hkern g1="p" g2="v" k="10" /> +<hkern g1="p" g2="w" k="10" /> +<hkern g1="p" g2="x" k="10" /> +<hkern g1="p" g2="y" k="10" /> +<hkern g1="p" g2="braceright" k="53" /> +<hkern g1="p" g2="Agrave" k="15" /> +<hkern g1="p" g2="Aacute" k="15" /> +<hkern g1="p" g2="Acircumflex" k="15" /> +<hkern g1="p" g2="Atilde" k="15" /> +<hkern g1="p" g2="Adieresis" k="15" /> +<hkern g1="p" g2="Aring" k="15" /> +<hkern g1="p" g2="Egrave" k="49" /> +<hkern g1="p" g2="Eacute" k="49" /> +<hkern g1="p" g2="Ecircumflex" k="49" /> +<hkern g1="p" g2="Edieresis" k="49" /> +<hkern g1="p" g2="Igrave" k="49" /> +<hkern g1="p" g2="Iacute" k="49" /> +<hkern g1="p" g2="Icircumflex" k="49" /> +<hkern g1="p" g2="Idieresis" k="49" /> +<hkern g1="p" g2="Eth" k="49" /> +<hkern g1="p" g2="Ntilde" k="49" /> +<hkern g1="p" g2="Ugrave" k="41" /> +<hkern g1="p" g2="Uacute" k="41" /> +<hkern g1="p" g2="Ucircumflex" k="41" /> +<hkern g1="p" g2="Udieresis" k="41" /> +<hkern g1="p" g2="Yacute" k="100" /> +<hkern g1="p" g2="Thorn" k="49" /> +<hkern g1="p" g2="germandbls" k="10" /> +<hkern g1="p" g2="yacute" k="10" /> +<hkern g1="p" g2="ydieresis" k="10" /> +<hkern g1="p" g2="quoteleft" k="70" /> +<hkern g1="p" g2="quoteright" k="53" /> +<hkern g1="p" g2="quotedblleft" k="70" /> +<hkern g1="p" g2="quotedblright" k="53" /> +<hkern g1="q" g2="B" k="33" /> +<hkern g1="q" g2="C" k="10" /> +<hkern g1="q" g2="D" k="33" /> +<hkern g1="q" g2="E" k="33" /> +<hkern g1="q" g2="F" k="33" /> +<hkern g1="q" g2="G" k="10" /> +<hkern g1="q" g2="H" k="33" /> +<hkern g1="q" g2="I" k="33" /> +<hkern g1="q" g2="K" k="33" /> +<hkern g1="q" g2="L" k="33" /> +<hkern g1="q" g2="M" k="31" /> +<hkern g1="q" g2="N" k="33" /> +<hkern g1="q" g2="O" k="10" /> +<hkern g1="q" g2="P" k="33" /> +<hkern g1="q" g2="Q" k="10" /> +<hkern g1="q" g2="R" k="33" /> +<hkern g1="q" g2="S" k="10" /> +<hkern g1="q" g2="T" k="25" /> +<hkern g1="q" g2="U" k="41" /> +<hkern g1="q" g2="V" k="80" /> +<hkern g1="q" g2="W" k="85" /> +<hkern g1="q" g2="Y" k="80" /> +<hkern g1="q" g2="Z" k="14" /> +<hkern g1="q" g2="backslash" k="70" /> +<hkern g1="q" g2="g" k="-48" /> +<hkern g1="q" g2="j" k="-205" /> +<hkern g1="q" g2="p" k="-64" /> +<hkern g1="q" g2="q" k="10" /> +<hkern g1="q" g2="s" k="15" /> +<hkern g1="q" g2="v" k="10" /> +<hkern g1="q" g2="braceright" k="-14" /> +<hkern g1="q" g2="Ccedilla" k="10" /> +<hkern g1="q" g2="Egrave" k="33" /> +<hkern g1="q" g2="Eacute" k="33" /> +<hkern g1="q" g2="Ecircumflex" k="33" /> +<hkern g1="q" g2="Edieresis" k="33" /> +<hkern g1="q" g2="Igrave" k="33" /> +<hkern g1="q" g2="Iacute" k="33" /> +<hkern g1="q" g2="Icircumflex" k="33" /> +<hkern g1="q" g2="Idieresis" k="33" /> +<hkern g1="q" g2="Eth" k="33" /> +<hkern g1="q" g2="Ntilde" k="33" /> +<hkern g1="q" g2="Ograve" k="10" /> +<hkern g1="q" g2="Oacute" k="10" /> +<hkern g1="q" g2="Ocircumflex" k="10" /> +<hkern g1="q" g2="Otilde" k="10" /> +<hkern g1="q" g2="Odieresis" k="10" /> +<hkern g1="q" g2="Oslash" k="10" /> +<hkern g1="q" g2="Ugrave" k="41" /> +<hkern g1="q" g2="Uacute" k="41" /> +<hkern g1="q" g2="Ucircumflex" k="41" /> +<hkern g1="q" g2="Udieresis" k="41" /> +<hkern g1="q" g2="Yacute" k="80" /> +<hkern g1="q" g2="Thorn" k="33" /> +<hkern g1="q" g2="OE" k="10" /> +<hkern g1="q" g2="quoteleft" k="27" /> +<hkern g1="q" g2="quoteright" k="16" /> +<hkern g1="q" g2="quotedblleft" k="27" /> +<hkern g1="q" g2="quotedblright" k="16" /> +<hkern g1="r" g2="ampersand" k="25" /> +<hkern g1="r" g2="parenright" k="49" /> +<hkern g1="r" g2="comma" k="86" /> +<hkern g1="r" g2="hyphen" k="16" /> +<hkern g1="r" g2="period" k="86" /> +<hkern g1="r" g2="slash" k="141" /> +<hkern g1="r" g2="A" k="60" /> +<hkern g1="r" g2="B" k="43" /> +<hkern g1="r" g2="D" k="43" /> +<hkern g1="r" g2="E" k="43" /> +<hkern g1="r" g2="F" k="43" /> +<hkern g1="r" g2="H" k="43" /> +<hkern g1="r" g2="I" k="43" /> +<hkern g1="r" g2="J" k="50" /> +<hkern g1="r" g2="K" k="43" /> +<hkern g1="r" g2="L" k="43" /> +<hkern g1="r" g2="M" k="45" /> +<hkern g1="r" g2="N" k="43" /> +<hkern g1="r" g2="P" k="43" /> +<hkern g1="r" g2="R" k="43" /> +<hkern g1="r" g2="U" k="18" /> +<hkern g1="r" g2="V" k="39" /> +<hkern g1="r" g2="W" k="49" /> +<hkern g1="r" g2="X" k="127" /> +<hkern g1="r" g2="Y" k="100" /> +<hkern g1="r" g2="Z" k="8" /> +<hkern g1="r" g2="backslash" k="39" /> +<hkern g1="r" g2="bracketright" k="94" /> +<hkern g1="r" g2="a" k="15" /> +<hkern g1="r" g2="c" k="15" /> +<hkern g1="r" g2="d" k="15" /> +<hkern g1="r" g2="e" k="15" /> +<hkern g1="r" g2="g" k="10" /> +<hkern g1="r" g2="h" k="8" /> +<hkern g1="r" g2="k" k="8" /> +<hkern g1="r" g2="l" k="8" /> +<hkern g1="r" g2="o" k="15" /> +<hkern g1="r" g2="q" k="15" /> +<hkern g1="r" g2="t" k="-15" /> +<hkern g1="r" g2="v" k="-15" /> +<hkern g1="r" g2="w" k="-15" /> +<hkern g1="r" g2="y" k="-35" /> +<hkern g1="r" g2="braceright" k="41" /> +<hkern g1="r" g2="guillemotleft" k="27" /> +<hkern g1="r" g2="uni00AD" k="16" /> +<hkern g1="r" g2="Agrave" k="60" /> +<hkern g1="r" g2="Aacute" k="60" /> +<hkern g1="r" g2="Acircumflex" k="60" /> +<hkern g1="r" g2="Atilde" k="60" /> +<hkern g1="r" g2="Adieresis" k="60" /> +<hkern g1="r" g2="Aring" k="60" /> +<hkern g1="r" g2="Egrave" k="43" /> +<hkern g1="r" g2="Eacute" k="43" /> +<hkern g1="r" g2="Ecircumflex" k="43" /> +<hkern g1="r" g2="Edieresis" k="43" /> +<hkern g1="r" g2="Igrave" k="43" /> +<hkern g1="r" g2="Iacute" k="43" /> +<hkern g1="r" g2="Icircumflex" k="43" /> +<hkern g1="r" g2="Idieresis" k="43" /> +<hkern g1="r" g2="Eth" k="43" /> +<hkern g1="r" g2="Ntilde" k="43" /> +<hkern g1="r" g2="Ugrave" k="18" /> +<hkern g1="r" g2="Uacute" k="18" /> +<hkern g1="r" g2="Ucircumflex" k="18" /> +<hkern g1="r" g2="Udieresis" k="18" /> +<hkern g1="r" g2="Yacute" k="100" /> +<hkern g1="r" g2="Thorn" k="43" /> +<hkern g1="r" g2="agrave" k="15" /> +<hkern g1="r" g2="aacute" k="15" /> +<hkern g1="r" g2="acircumflex" k="15" /> +<hkern g1="r" g2="atilde" k="15" /> +<hkern g1="r" g2="adieresis" k="15" /> +<hkern g1="r" g2="aring" k="15" /> +<hkern g1="r" g2="ae" k="15" /> +<hkern g1="r" g2="ccedilla" k="15" /> +<hkern g1="r" g2="egrave" k="15" /> +<hkern g1="r" g2="eacute" k="15" /> +<hkern g1="r" g2="ecircumflex" k="15" /> +<hkern g1="r" g2="edieresis" k="15" /> +<hkern g1="r" g2="eth" k="18" /> +<hkern g1="r" g2="ograve" k="15" /> +<hkern g1="r" g2="oacute" k="15" /> +<hkern g1="r" g2="ocircumflex" k="15" /> +<hkern g1="r" g2="otilde" k="15" /> +<hkern g1="r" g2="odieresis" k="15" /> +<hkern g1="r" g2="oslash" k="15" /> +<hkern g1="r" g2="yacute" k="-35" /> +<hkern g1="r" g2="ydieresis" k="-35" /> +<hkern g1="r" g2="oe" k="15" /> +<hkern g1="r" g2="endash" k="16" /> +<hkern g1="r" g2="emdash" k="16" /> +<hkern g1="r" g2="quoteleft" k="23" /> +<hkern g1="r" g2="quotesinglbase" k="86" /> +<hkern g1="r" g2="quotedblleft" k="23" /> +<hkern g1="r" g2="quotedblbase" k="86" /> +<hkern g1="r" g2="guilsinglleft" k="27" /> +<hkern g1="s" g2="parenright" k="53" /> +<hkern g1="s" g2="slash" k="72" /> +<hkern g1="s" g2="B" k="33" /> +<hkern g1="s" g2="C" k="10" /> +<hkern g1="s" g2="D" k="33" /> +<hkern g1="s" g2="E" k="33" /> +<hkern g1="s" g2="F" k="33" /> +<hkern g1="s" g2="G" k="8" /> +<hkern g1="s" g2="H" k="33" /> +<hkern g1="s" g2="I" k="33" /> +<hkern g1="s" g2="K" k="33" /> +<hkern g1="s" g2="L" k="33" /> +<hkern g1="s" g2="M" k="25" /> +<hkern g1="s" g2="N" k="33" /> +<hkern g1="s" g2="O" k="10" /> +<hkern g1="s" g2="P" k="33" /> +<hkern g1="s" g2="Q" k="10" /> +<hkern g1="s" g2="R" k="33" /> +<hkern g1="s" g2="T" k="23" /> +<hkern g1="s" g2="U" k="45" /> +<hkern g1="s" g2="V" k="70" /> +<hkern g1="s" g2="W" k="96" /> +<hkern g1="s" g2="X" k="14" /> +<hkern g1="s" g2="Y" k="120" /> +<hkern g1="s" g2="Z" k="8" /> +<hkern g1="s" g2="backslash" k="68" /> +<hkern g1="s" g2="bracketright" k="96" /> +<hkern g1="s" g2="braceright" k="43" /> +<hkern g1="s" g2="Ccedilla" k="10" /> +<hkern g1="s" g2="Egrave" k="33" /> +<hkern g1="s" g2="Eacute" k="33" /> +<hkern g1="s" g2="Ecircumflex" k="33" /> +<hkern g1="s" g2="Edieresis" k="33" /> +<hkern g1="s" g2="Igrave" k="33" /> +<hkern g1="s" g2="Iacute" k="33" /> +<hkern g1="s" g2="Icircumflex" k="33" /> +<hkern g1="s" g2="Idieresis" k="33" /> +<hkern g1="s" g2="Eth" k="33" /> +<hkern g1="s" g2="Ntilde" k="33" /> +<hkern g1="s" g2="Ograve" k="10" /> +<hkern g1="s" g2="Oacute" k="10" /> +<hkern g1="s" g2="Ocircumflex" k="10" /> +<hkern g1="s" g2="Otilde" k="10" /> +<hkern g1="s" g2="Odieresis" k="10" /> +<hkern g1="s" g2="Oslash" k="10" /> +<hkern g1="s" g2="Ugrave" k="45" /> +<hkern g1="s" g2="Uacute" k="45" /> +<hkern g1="s" g2="Ucircumflex" k="45" /> +<hkern g1="s" g2="Udieresis" k="45" /> +<hkern g1="s" g2="Yacute" k="120" /> +<hkern g1="s" g2="Thorn" k="33" /> +<hkern g1="s" g2="OE" k="10" /> +<hkern g1="s" g2="quoteleft" k="27" /> +<hkern g1="s" g2="quotedblleft" k="27" /> +<hkern g1="t" g2="parenright" k="33" /> +<hkern g1="t" g2="slash" k="49" /> +<hkern g1="t" g2="U" k="14" /> +<hkern g1="t" g2="V" k="41" /> +<hkern g1="t" g2="W" k="49" /> +<hkern g1="t" g2="Y" k="88" /> +<hkern g1="t" g2="backslash" k="43" /> +<hkern g1="t" g2="bracketright" k="72" /> +<hkern g1="t" g2="t" k="-20" /> +<hkern g1="t" g2="v" k="-35" /> +<hkern g1="t" g2="w" k="-35" /> +<hkern g1="t" g2="x" k="-25" /> +<hkern g1="t" g2="y" k="-5" /> +<hkern g1="t" g2="braceright" k="23" /> +<hkern g1="t" g2="Ugrave" k="14" /> +<hkern g1="t" g2="Uacute" k="14" /> +<hkern g1="t" g2="Ucircumflex" k="14" /> +<hkern g1="t" g2="Udieresis" k="14" /> +<hkern g1="t" g2="Yacute" k="88" /> +<hkern g1="t" g2="yacute" k="-5" /> +<hkern g1="t" g2="ydieresis" k="-5" /> +<hkern g1="u" g2="parenright" k="47" /> +<hkern g1="u" g2="slash" k="41" /> +<hkern g1="u" g2="question" k="20" /> +<hkern g1="u" g2="B" k="16" /> +<hkern g1="u" g2="C" k="25" /> +<hkern g1="u" g2="D" k="16" /> +<hkern g1="u" g2="E" k="16" /> +<hkern g1="u" g2="F" k="16" /> +<hkern g1="u" g2="G" k="23" /> +<hkern g1="u" g2="H" k="16" /> +<hkern g1="u" g2="I" k="16" /> +<hkern g1="u" g2="K" k="16" /> +<hkern g1="u" g2="L" k="16" /> +<hkern g1="u" g2="M" k="8" /> +<hkern g1="u" g2="N" k="16" /> +<hkern g1="u" g2="O" k="25" /> +<hkern g1="u" g2="P" k="16" /> +<hkern g1="u" g2="Q" k="25" /> +<hkern g1="u" g2="R" k="16" /> +<hkern g1="u" g2="T" k="47" /> +<hkern g1="u" g2="U" k="53" /> +<hkern g1="u" g2="V" k="80" /> +<hkern g1="u" g2="W" k="121" /> +<hkern g1="u" g2="Y" k="123" /> +<hkern g1="u" g2="backslash" k="86" /> +<hkern g1="u" g2="bracketright" k="94" /> +<hkern g1="u" g2="u" k="8" /> +<hkern g1="u" g2="v" k="10" /> +<hkern g1="u" g2="w" k="12" /> +<hkern g1="u" g2="y" k="12" /> +<hkern g1="u" g2="braceright" k="43" /> +<hkern g1="u" g2="Ccedilla" k="25" /> +<hkern g1="u" g2="Egrave" k="16" /> +<hkern g1="u" g2="Eacute" k="16" /> +<hkern g1="u" g2="Ecircumflex" k="16" /> +<hkern g1="u" g2="Edieresis" k="16" /> +<hkern g1="u" g2="Igrave" k="16" /> +<hkern g1="u" g2="Iacute" k="16" /> +<hkern g1="u" g2="Icircumflex" k="16" /> +<hkern g1="u" g2="Idieresis" k="16" /> +<hkern g1="u" g2="Eth" k="16" /> +<hkern g1="u" g2="Ntilde" k="16" /> +<hkern g1="u" g2="Ograve" k="25" /> +<hkern g1="u" g2="Oacute" k="25" /> +<hkern g1="u" g2="Ocircumflex" k="25" /> +<hkern g1="u" g2="Otilde" k="25" /> +<hkern g1="u" g2="Odieresis" k="25" /> +<hkern g1="u" g2="Oslash" k="25" /> +<hkern g1="u" g2="Ugrave" k="53" /> +<hkern g1="u" g2="Uacute" k="53" /> +<hkern g1="u" g2="Ucircumflex" k="53" /> +<hkern g1="u" g2="Udieresis" k="53" /> +<hkern g1="u" g2="Yacute" k="123" /> +<hkern g1="u" g2="Thorn" k="16" /> +<hkern g1="u" g2="eth" k="8" /> +<hkern g1="u" g2="ugrave" k="8" /> +<hkern g1="u" g2="uacute" k="8" /> +<hkern g1="u" g2="ucircumflex" k="8" /> +<hkern g1="u" g2="udieresis" k="8" /> +<hkern g1="u" g2="yacute" k="12" /> +<hkern g1="u" g2="ydieresis" k="12" /> +<hkern g1="u" g2="OE" k="25" /> +<hkern g1="u" g2="quoteleft" k="35" /> +<hkern g1="u" g2="quoteright" k="23" /> +<hkern g1="u" g2="quotedblleft" k="35" /> +<hkern g1="u" g2="quotedblright" k="23" /> +<hkern g1="v" g2="parenright" k="41" /> +<hkern g1="v" g2="asterisk" k="-55" /> +<hkern g1="v" g2="comma" k="80" /> +<hkern g1="v" g2="hyphen" k="16" /> +<hkern g1="v" g2="period" k="80" /> +<hkern g1="v" g2="slash" k="147" /> +<hkern g1="v" g2="A" k="78" /> +<hkern g1="v" g2="B" k="35" /> +<hkern g1="v" g2="D" k="35" /> +<hkern g1="v" g2="E" k="35" /> +<hkern g1="v" g2="F" k="35" /> +<hkern g1="v" g2="H" k="35" /> +<hkern g1="v" g2="I" k="35" /> +<hkern g1="v" g2="J" k="90" /> +<hkern g1="v" g2="K" k="35" /> +<hkern g1="v" g2="L" k="35" /> +<hkern g1="v" g2="M" k="39" /> +<hkern g1="v" g2="N" k="35" /> +<hkern g1="v" g2="P" k="35" /> +<hkern g1="v" g2="R" k="35" /> +<hkern g1="v" g2="U" k="16" /> +<hkern g1="v" g2="V" k="20" /> +<hkern g1="v" g2="W" k="33" /> +<hkern g1="v" g2="X" k="80" /> +<hkern g1="v" g2="Y" k="70" /> +<hkern g1="v" g2="backslash" k="23" /> +<hkern g1="v" g2="bracketright" k="88" /> +<hkern g1="v" g2="a" k="20" /> +<hkern g1="v" g2="c" k="10" /> +<hkern g1="v" g2="d" k="29" /> +<hkern g1="v" g2="e" k="10" /> +<hkern g1="v" g2="g" k="15" /> +<hkern g1="v" g2="o" k="10" /> +<hkern g1="v" g2="q" k="29" /> +<hkern g1="v" g2="t" k="-35" /> +<hkern g1="v" g2="v" k="-45" /> +<hkern g1="v" g2="w" k="-55" /> +<hkern g1="v" g2="x" k="-30" /> +<hkern g1="v" g2="braceright" k="37" /> +<hkern g1="v" g2="uni00AD" k="16" /> +<hkern g1="v" g2="Agrave" k="78" /> +<hkern g1="v" g2="Aacute" k="78" /> +<hkern g1="v" g2="Acircumflex" k="78" /> +<hkern g1="v" g2="Atilde" k="78" /> +<hkern g1="v" g2="Adieresis" k="78" /> +<hkern g1="v" g2="Aring" k="78" /> +<hkern g1="v" g2="Egrave" k="35" /> +<hkern g1="v" g2="Eacute" k="35" /> +<hkern g1="v" g2="Ecircumflex" k="35" /> +<hkern g1="v" g2="Edieresis" k="35" /> +<hkern g1="v" g2="Igrave" k="35" /> +<hkern g1="v" g2="Iacute" k="35" /> +<hkern g1="v" g2="Icircumflex" k="35" /> +<hkern g1="v" g2="Idieresis" k="35" /> +<hkern g1="v" g2="Eth" k="35" /> +<hkern g1="v" g2="Ntilde" k="35" /> +<hkern g1="v" g2="Ugrave" k="16" /> +<hkern g1="v" g2="Uacute" k="16" /> +<hkern g1="v" g2="Ucircumflex" k="16" /> +<hkern g1="v" g2="Udieresis" k="16" /> +<hkern g1="v" g2="Yacute" k="70" /> +<hkern g1="v" g2="Thorn" k="35" /> +<hkern g1="v" g2="agrave" k="20" /> +<hkern g1="v" g2="aacute" k="20" /> +<hkern g1="v" g2="acircumflex" k="20" /> +<hkern g1="v" g2="atilde" k="20" /> +<hkern g1="v" g2="adieresis" k="20" /> +<hkern g1="v" g2="aring" k="20" /> +<hkern g1="v" g2="ae" k="20" /> +<hkern g1="v" g2="ccedilla" k="10" /> +<hkern g1="v" g2="egrave" k="10" /> +<hkern g1="v" g2="eacute" k="10" /> +<hkern g1="v" g2="ecircumflex" k="10" /> +<hkern g1="v" g2="edieresis" k="10" /> +<hkern g1="v" g2="eth" k="27" /> +<hkern g1="v" g2="ograve" k="10" /> +<hkern g1="v" g2="oacute" k="10" /> +<hkern g1="v" g2="ocircumflex" k="10" /> +<hkern g1="v" g2="otilde" k="10" /> +<hkern g1="v" g2="odieresis" k="10" /> +<hkern g1="v" g2="oslash" k="10" /> +<hkern g1="v" g2="oe" k="10" /> +<hkern g1="v" g2="endash" k="16" /> +<hkern g1="v" g2="emdash" k="16" /> +<hkern g1="v" g2="quotesinglbase" k="120" /> +<hkern g1="v" g2="quotedblbase" k="80" /> +<hkern g1="w" g2="parenright" k="41" /> +<hkern g1="w" g2="asterisk" k="-45" /> +<hkern g1="w" g2="comma" k="96" /> +<hkern g1="w" g2="hyphen" k="35" /> +<hkern g1="w" g2="period" k="100" /> +<hkern g1="w" g2="slash" k="156" /> +<hkern g1="w" g2="A" k="94" /> +<hkern g1="w" g2="B" k="33" /> +<hkern g1="w" g2="D" k="33" /> +<hkern g1="w" g2="E" k="33" /> +<hkern g1="w" g2="F" k="33" /> +<hkern g1="w" g2="H" k="33" /> +<hkern g1="w" g2="I" k="33" /> +<hkern g1="w" g2="J" k="98" /> +<hkern g1="w" g2="K" k="33" /> +<hkern g1="w" g2="L" k="33" /> +<hkern g1="w" g2="M" k="37" /> +<hkern g1="w" g2="N" k="33" /> +<hkern g1="w" g2="P" k="33" /> +<hkern g1="w" g2="R" k="33" /> +<hkern g1="w" g2="U" k="14" /> +<hkern g1="w" g2="V" k="16" /> +<hkern g1="w" g2="W" k="31" /> +<hkern g1="w" g2="X" k="80" /> +<hkern g1="w" g2="Y" k="63" /> +<hkern g1="w" g2="bracketright" k="88" /> +<hkern g1="w" g2="a" k="20" /> +<hkern g1="w" g2="c" k="20" /> +<hkern g1="w" g2="d" k="35" /> +<hkern g1="w" g2="e" k="25" /> +<hkern g1="w" g2="g" k="25" /> +<hkern g1="w" g2="l" k="10" /> +<hkern g1="w" g2="o" k="25" /> +<hkern g1="w" g2="q" k="25" /> +<hkern g1="w" g2="v" k="-55" /> +<hkern g1="w" g2="w" k="-55" /> +<hkern g1="w" g2="x" k="-35" /> +<hkern g1="w" g2="z" k="25" /> +<hkern g1="w" g2="braceright" k="37" /> +<hkern g1="w" g2="guillemotleft" k="23" /> +<hkern g1="w" g2="uni00AD" k="35" /> +<hkern g1="w" g2="Agrave" k="94" /> +<hkern g1="w" g2="Aacute" k="94" /> +<hkern g1="w" g2="Acircumflex" k="94" /> +<hkern g1="w" g2="Atilde" k="94" /> +<hkern g1="w" g2="Adieresis" k="94" /> +<hkern g1="w" g2="Aring" k="94" /> +<hkern g1="w" g2="Egrave" k="33" /> +<hkern g1="w" g2="Eacute" k="33" /> +<hkern g1="w" g2="Ecircumflex" k="33" /> +<hkern g1="w" g2="Edieresis" k="33" /> +<hkern g1="w" g2="Igrave" k="33" /> +<hkern g1="w" g2="Iacute" k="33" /> +<hkern g1="w" g2="Icircumflex" k="33" /> +<hkern g1="w" g2="Idieresis" k="33" /> +<hkern g1="w" g2="Eth" k="33" /> +<hkern g1="w" g2="Ntilde" k="33" /> +<hkern g1="w" g2="Ugrave" k="14" /> +<hkern g1="w" g2="Uacute" k="14" /> +<hkern g1="w" g2="Ucircumflex" k="14" /> +<hkern g1="w" g2="Udieresis" k="14" /> +<hkern g1="w" g2="Yacute" k="63" /> +<hkern g1="w" g2="Thorn" k="33" /> +<hkern g1="w" g2="agrave" k="20" /> +<hkern g1="w" g2="aacute" k="20" /> +<hkern g1="w" g2="acircumflex" k="20" /> +<hkern g1="w" g2="atilde" k="20" /> +<hkern g1="w" g2="adieresis" k="20" /> +<hkern g1="w" g2="aring" k="20" /> +<hkern g1="w" g2="ae" k="20" /> +<hkern g1="w" g2="ccedilla" k="25" /> +<hkern g1="w" g2="egrave" k="25" /> +<hkern g1="w" g2="eacute" k="25" /> +<hkern g1="w" g2="ecircumflex" k="25" /> +<hkern g1="w" g2="edieresis" k="25" /> +<hkern g1="w" g2="eth" k="39" /> +<hkern g1="w" g2="ograve" k="25" /> +<hkern g1="w" g2="oacute" k="25" /> +<hkern g1="w" g2="ocircumflex" k="25" /> +<hkern g1="w" g2="otilde" k="25" /> +<hkern g1="w" g2="odieresis" k="25" /> +<hkern g1="w" g2="oslash" k="25" /> +<hkern g1="w" g2="oe" k="25" /> +<hkern g1="w" g2="endash" k="35" /> +<hkern g1="w" g2="emdash" k="35" /> +<hkern g1="w" g2="quotesinglbase" k="100" /> +<hkern g1="w" g2="quotedblbase" k="100" /> +<hkern g1="w" g2="guilsinglleft" k="23" /> +<hkern g1="x" g2="hyphen" k="20" /> +<hkern g1="x" g2="A" k="-65" /> +<hkern g1="x" g2="G" k="43" /> +<hkern g1="x" g2="U" k="16" /> +<hkern g1="x" g2="V" k="47" /> +<hkern g1="x" g2="W" k="59" /> +<hkern g1="x" g2="Y" k="102" /> +<hkern g1="x" g2="backslash" k="29" /> +<hkern g1="x" g2="bracketright" k="59" /> +<hkern g1="x" g2="c" k="10" /> +<hkern g1="x" g2="d" k="10" /> +<hkern g1="x" g2="e" k="10" /> +<hkern g1="x" g2="o" k="10" /> +<hkern g1="x" g2="q" k="10" /> +<hkern g1="x" g2="uni00AD" k="20" /> +<hkern g1="x" g2="Agrave" k="-65" /> +<hkern g1="x" g2="Aacute" k="-65" /> +<hkern g1="x" g2="Acircumflex" k="-65" /> +<hkern g1="x" g2="Atilde" k="-65" /> +<hkern g1="x" g2="Adieresis" k="-65" /> +<hkern g1="x" g2="Aring" k="-65" /> +<hkern g1="x" g2="Ugrave" k="16" /> +<hkern g1="x" g2="Uacute" k="16" /> +<hkern g1="x" g2="Ucircumflex" k="16" /> +<hkern g1="x" g2="Udieresis" k="16" /> +<hkern g1="x" g2="Yacute" k="102" /> +<hkern g1="x" g2="ccedilla" k="10" /> +<hkern g1="x" g2="egrave" k="10" /> +<hkern g1="x" g2="eacute" k="10" /> +<hkern g1="x" g2="ecircumflex" k="10" /> +<hkern g1="x" g2="edieresis" k="10" /> +<hkern g1="x" g2="eth" k="43" /> +<hkern g1="x" g2="ograve" k="10" /> +<hkern g1="x" g2="oacute" k="10" /> +<hkern g1="x" g2="ocircumflex" k="10" /> +<hkern g1="x" g2="otilde" k="10" /> +<hkern g1="x" g2="odieresis" k="10" /> +<hkern g1="x" g2="oslash" k="10" /> +<hkern g1="x" g2="oe" k="10" /> +<hkern g1="x" g2="endash" k="20" /> +<hkern g1="x" g2="emdash" k="20" /> +<hkern g1="y" g2="parenright" k="39" /> +<hkern g1="y" g2="asterisk" k="-35" /> +<hkern g1="y" g2="comma" k="112" /> +<hkern g1="y" g2="period" k="76" /> +<hkern g1="y" g2="slash" k="119" /> +<hkern g1="y" g2="A" k="80" /> +<hkern g1="y" g2="B" k="37" /> +<hkern g1="y" g2="D" k="37" /> +<hkern g1="y" g2="E" k="37" /> +<hkern g1="y" g2="F" k="37" /> +<hkern g1="y" g2="H" k="37" /> +<hkern g1="y" g2="I" k="37" /> +<hkern g1="y" g2="J" k="86" /> +<hkern g1="y" g2="K" k="37" /> +<hkern g1="y" g2="L" k="37" /> +<hkern g1="y" g2="M" k="39" /> +<hkern g1="y" g2="N" k="37" /> +<hkern g1="y" g2="P" k="37" /> +<hkern g1="y" g2="R" k="37" /> +<hkern g1="y" g2="U" k="16" /> +<hkern g1="y" g2="V" k="20" /> +<hkern g1="y" g2="W" k="35" /> +<hkern g1="y" g2="X" k="40" /> +<hkern g1="y" g2="Y" k="72" /> +<hkern g1="y" g2="backslash" k="23" /> +<hkern g1="y" g2="bracketright" k="82" /> +<hkern g1="y" g2="c" k="20" /> +<hkern g1="y" g2="d" k="20" /> +<hkern g1="y" g2="e" k="20" /> +<hkern g1="y" g2="g" k="25" /> +<hkern g1="y" g2="h" k="10" /> +<hkern g1="y" g2="k" k="10" /> +<hkern g1="y" g2="l" k="10" /> +<hkern g1="y" g2="o" k="20" /> +<hkern g1="y" g2="q" k="20" /> +<hkern g1="y" g2="t" k="-10" /> +<hkern g1="y" g2="y" k="-35" /> +<hkern g1="y" g2="braceright" k="37" /> +<hkern g1="y" g2="Agrave" k="80" /> +<hkern g1="y" g2="Aacute" k="80" /> +<hkern g1="y" g2="Acircumflex" k="80" /> +<hkern g1="y" g2="Atilde" k="80" /> +<hkern g1="y" g2="Adieresis" k="80" /> +<hkern g1="y" g2="Aring" k="80" /> +<hkern g1="y" g2="Egrave" k="37" /> +<hkern g1="y" g2="Eacute" k="37" /> +<hkern g1="y" g2="Ecircumflex" k="37" /> +<hkern g1="y" g2="Edieresis" k="37" /> +<hkern g1="y" g2="Igrave" k="37" /> +<hkern g1="y" g2="Iacute" k="37" /> +<hkern g1="y" g2="Icircumflex" k="37" /> +<hkern g1="y" g2="Idieresis" k="37" /> +<hkern g1="y" g2="Eth" k="37" /> +<hkern g1="y" g2="Ntilde" k="37" /> +<hkern g1="y" g2="Ugrave" k="16" /> +<hkern g1="y" g2="Uacute" k="16" /> +<hkern g1="y" g2="Ucircumflex" k="16" /> +<hkern g1="y" g2="Udieresis" k="16" /> +<hkern g1="y" g2="Yacute" k="72" /> +<hkern g1="y" g2="Thorn" k="37" /> +<hkern g1="y" g2="ccedilla" k="20" /> +<hkern g1="y" g2="egrave" k="20" /> +<hkern g1="y" g2="eacute" k="20" /> +<hkern g1="y" g2="ecircumflex" k="20" /> +<hkern g1="y" g2="edieresis" k="20" /> +<hkern g1="y" g2="eth" k="25" /> +<hkern g1="y" g2="ograve" k="20" /> +<hkern g1="y" g2="oacute" k="20" /> +<hkern g1="y" g2="ocircumflex" k="20" /> +<hkern g1="y" g2="otilde" k="20" /> +<hkern g1="y" g2="odieresis" k="20" /> +<hkern g1="y" g2="oslash" k="20" /> +<hkern g1="y" g2="yacute" k="-35" /> +<hkern g1="y" g2="ydieresis" k="-35" /> +<hkern g1="y" g2="oe" k="20" /> +<hkern g1="y" g2="quotesinglbase" k="76" /> +<hkern g1="y" g2="quotedblbase" k="76" /> +<hkern g1="z" g2="parenright" k="45" /> +<hkern g1="z" g2="hyphen" k="27" /> +<hkern g1="z" g2="slash" k="53" /> +<hkern g1="z" g2="B" k="20" /> +<hkern g1="z" g2="C" k="8" /> +<hkern g1="z" g2="D" k="20" /> +<hkern g1="z" g2="E" k="20" /> +<hkern g1="z" g2="F" k="20" /> +<hkern g1="z" g2="G" k="8" /> +<hkern g1="z" g2="H" k="20" /> +<hkern g1="z" g2="I" k="20" /> +<hkern g1="z" g2="K" k="20" /> +<hkern g1="z" g2="L" k="20" /> +<hkern g1="z" g2="M" k="14" /> +<hkern g1="z" g2="N" k="20" /> +<hkern g1="z" g2="O" k="8" /> +<hkern g1="z" g2="P" k="20" /> +<hkern g1="z" g2="Q" k="8" /> +<hkern g1="z" g2="R" k="20" /> +<hkern g1="z" g2="T" k="50" /> +<hkern g1="z" g2="U" k="37" /> +<hkern g1="z" g2="V" k="80" /> +<hkern g1="z" g2="W" k="90" /> +<hkern g1="z" g2="Y" k="117" /> +<hkern g1="z" g2="backslash" k="59" /> +<hkern g1="z" g2="bracketright" k="90" /> +<hkern g1="z" g2="c" k="15" /> +<hkern g1="z" g2="d" k="15" /> +<hkern g1="z" g2="e" k="10" /> +<hkern g1="z" g2="m" k="10" /> +<hkern g1="z" g2="n" k="10" /> +<hkern g1="z" g2="o" k="15" /> +<hkern g1="z" g2="q" k="15" /> +<hkern g1="z" g2="r" k="10" /> +<hkern g1="z" g2="z" k="10" /> +<hkern g1="z" g2="braceright" k="39" /> +<hkern g1="z" g2="uni00AD" k="27" /> +<hkern g1="z" g2="Ccedilla" k="8" /> +<hkern g1="z" g2="Egrave" k="20" /> +<hkern g1="z" g2="Eacute" k="20" /> +<hkern g1="z" g2="Ecircumflex" k="20" /> +<hkern g1="z" g2="Edieresis" k="20" /> +<hkern g1="z" g2="Igrave" k="20" /> +<hkern g1="z" g2="Iacute" k="20" /> +<hkern g1="z" g2="Icircumflex" k="20" /> +<hkern g1="z" g2="Idieresis" k="20" /> +<hkern g1="z" g2="Eth" k="20" /> +<hkern g1="z" g2="Ntilde" k="20" /> +<hkern g1="z" g2="Ograve" k="8" /> +<hkern g1="z" g2="Oacute" k="8" /> +<hkern g1="z" g2="Ocircumflex" k="8" /> +<hkern g1="z" g2="Otilde" k="8" /> +<hkern g1="z" g2="Odieresis" k="8" /> +<hkern g1="z" g2="Oslash" k="8" /> +<hkern g1="z" g2="Ugrave" k="37" /> +<hkern g1="z" g2="Uacute" k="37" /> +<hkern g1="z" g2="Ucircumflex" k="37" /> +<hkern g1="z" g2="Udieresis" k="37" /> +<hkern g1="z" g2="Yacute" k="117" /> +<hkern g1="z" g2="Thorn" k="20" /> +<hkern g1="z" g2="ccedilla" k="15" /> +<hkern g1="z" g2="egrave" k="15" /> +<hkern g1="z" g2="eacute" k="15" /> +<hkern g1="z" g2="ecircumflex" k="15" /> +<hkern g1="z" g2="edieresis" k="15" /> +<hkern g1="z" g2="ntilde" k="10" /> +<hkern g1="z" g2="ograve" k="15" /> +<hkern g1="z" g2="oacute" k="15" /> +<hkern g1="z" g2="ocircumflex" k="15" /> +<hkern g1="z" g2="otilde" k="15" /> +<hkern g1="z" g2="odieresis" k="15" /> +<hkern g1="z" g2="oslash" k="15" /> +<hkern g1="z" g2="OE" k="8" /> +<hkern g1="z" g2="oe" k="15" /> +<hkern g1="z" g2="endash" k="27" /> +<hkern g1="z" g2="emdash" k="27" /> +<hkern g1="z" g2="quoteleft" k="27" /> +<hkern g1="z" g2="quotedblleft" k="27" /> +<hkern g1="braceleft" g2="parenleft" k="27" /> +<hkern g1="braceleft" g2="zero" k="35" /> +<hkern g1="braceleft" g2="one" k="20" /> +<hkern g1="braceleft" g2="three" k="20" /> +<hkern g1="braceleft" g2="four" k="39" /> +<hkern g1="braceleft" g2="six" k="35" /> +<hkern g1="braceleft" g2="eight" k="25" /> +<hkern g1="braceleft" g2="nine" k="23" /> +<hkern g1="braceleft" g2="C" k="41" /> +<hkern g1="braceleft" g2="G" k="41" /> +<hkern g1="braceleft" g2="O" k="41" /> +<hkern g1="braceleft" g2="Q" k="41" /> +<hkern g1="braceleft" g2="S" k="20" /> +<hkern g1="braceleft" g2="V" k="-23" /> +<hkern g1="braceleft" g2="Y" k="-23" /> +<hkern g1="braceleft" g2="a" k="43" /> +<hkern g1="braceleft" g2="b" k="-27" /> +<hkern g1="braceleft" g2="c" k="53" /> +<hkern g1="braceleft" g2="d" k="51" /> +<hkern g1="braceleft" g2="e" k="53" /> +<hkern g1="braceleft" g2="j" k="-211" /> +<hkern g1="braceleft" g2="m" k="39" /> +<hkern g1="braceleft" g2="n" k="39" /> +<hkern g1="braceleft" g2="o" k="53" /> +<hkern g1="braceleft" g2="q" k="51" /> +<hkern g1="braceleft" g2="r" k="39" /> +<hkern g1="braceleft" g2="s" k="41" /> +<hkern g1="braceleft" g2="t" k="39" /> +<hkern g1="braceleft" g2="u" k="43" /> +<hkern g1="braceleft" g2="v" k="37" /> +<hkern g1="braceleft" g2="w" k="37" /> +<hkern g1="braceleft" g2="z" k="39" /> +<hkern g1="braceleft" g2="braceleft" k="25" /> +<hkern g1="braceleft" g2="Ccedilla" k="41" /> +<hkern g1="braceleft" g2="Ograve" k="41" /> +<hkern g1="braceleft" g2="Oacute" k="41" /> +<hkern g1="braceleft" g2="Ocircumflex" k="41" /> +<hkern g1="braceleft" g2="Otilde" k="41" /> +<hkern g1="braceleft" g2="Odieresis" k="41" /> +<hkern g1="braceleft" g2="Oslash" k="41" /> +<hkern g1="braceleft" g2="Yacute" k="-23" /> +<hkern g1="braceleft" g2="agrave" k="43" /> +<hkern g1="braceleft" g2="aacute" k="43" /> +<hkern g1="braceleft" g2="acircumflex" k="43" /> +<hkern g1="braceleft" g2="atilde" k="43" /> +<hkern g1="braceleft" g2="adieresis" k="43" /> +<hkern g1="braceleft" g2="aring" k="43" /> +<hkern g1="braceleft" g2="ae" k="43" /> +<hkern g1="braceleft" g2="ccedilla" k="53" /> +<hkern g1="braceleft" g2="egrave" k="53" /> +<hkern g1="braceleft" g2="eacute" k="53" /> +<hkern g1="braceleft" g2="ecircumflex" k="53" /> +<hkern g1="braceleft" g2="edieresis" k="53" /> +<hkern g1="braceleft" g2="igrave" k="-39" /> +<hkern g1="braceleft" g2="eth" k="23" /> +<hkern g1="braceleft" g2="ntilde" k="39" /> +<hkern g1="braceleft" g2="ograve" k="53" /> +<hkern g1="braceleft" g2="oacute" k="53" /> +<hkern g1="braceleft" g2="ocircumflex" k="53" /> +<hkern g1="braceleft" g2="otilde" k="53" /> +<hkern g1="braceleft" g2="odieresis" k="53" /> +<hkern g1="braceleft" g2="oslash" k="53" /> +<hkern g1="braceleft" g2="ugrave" k="43" /> +<hkern g1="braceleft" g2="uacute" k="43" /> +<hkern g1="braceleft" g2="ucircumflex" k="43" /> +<hkern g1="braceleft" g2="udieresis" k="43" /> +<hkern g1="braceleft" g2="thorn" k="-27" /> +<hkern g1="braceleft" g2="OE" k="41" /> +<hkern g1="braceleft" g2="oe" k="53" /> +<hkern g1="bar" g2="j" k="-76" /> +<hkern g1="braceright" g2="parenright" k="31" /> +<hkern g1="braceright" g2="bracketright" k="33" /> +<hkern g1="braceright" g2="braceright" k="23" /> +<hkern g1="exclamdown" g2="U" k="25" /> +<hkern g1="exclamdown" g2="V" k="41" /> +<hkern g1="exclamdown" g2="W" k="49" /> +<hkern g1="exclamdown" g2="Y" k="61" /> +<hkern g1="exclamdown" g2="j" k="-86" /> +<hkern g1="exclamdown" g2="Ugrave" k="25" /> +<hkern g1="exclamdown" g2="Uacute" k="25" /> +<hkern g1="exclamdown" g2="Ucircumflex" k="25" /> +<hkern g1="exclamdown" g2="Udieresis" k="25" /> +<hkern g1="exclamdown" g2="Yacute" k="61" /> +<hkern g1="ordfeminine" g2="A" k="30" /> +<hkern g1="ordfeminine" g2="Agrave" k="30" /> +<hkern g1="ordfeminine" g2="Aacute" k="30" /> +<hkern g1="ordfeminine" g2="Acircumflex" k="30" /> +<hkern g1="ordfeminine" g2="Atilde" k="30" /> +<hkern g1="ordfeminine" g2="Adieresis" k="30" /> +<hkern g1="ordfeminine" g2="Aring" k="30" /> +<hkern g1="guillemotleft" g2="W" k="23" /> +<hkern g1="guillemotleft" g2="Y" k="35" /> +<hkern g1="guillemotleft" g2="AE" k="-16" /> +<hkern g1="guillemotleft" g2="Yacute" k="35" /> +<hkern g1="registered" g2="W" k="20" /> +<hkern g1="registered" g2="Y" k="27" /> +<hkern g1="registered" g2="Yacute" k="27" /> +<hkern g1="degree" g2="four" k="66" /> +<hkern g1="middot" g2="one" k="61" /> +<hkern g1="middot" g2="two" k="68" /> +<hkern g1="middot" g2="three" k="55" /> +<hkern g1="middot" g2="seven" k="135" /> +<hkern g1="middot" g2="eight" k="29" /> +<hkern g1="middot" g2="L" k="41" /> +<hkern g1="middot" g2="l" k="135" /> +<hkern g1="guillemotright" g2="quotedbl" k="96" /> +<hkern g1="guillemotright" g2="quotesingle" k="96" /> +<hkern g1="guillemotright" g2="B" k="20" /> +<hkern g1="guillemotright" g2="D" k="20" /> +<hkern g1="guillemotright" g2="E" k="20" /> +<hkern g1="guillemotright" g2="F" k="20" /> +<hkern g1="guillemotright" g2="H" k="20" /> +<hkern g1="guillemotright" g2="I" k="20" /> +<hkern g1="guillemotright" g2="J" k="20" /> +<hkern g1="guillemotright" g2="K" k="20" /> +<hkern g1="guillemotright" g2="L" k="20" /> +<hkern g1="guillemotright" g2="N" k="20" /> +<hkern g1="guillemotright" g2="P" k="20" /> +<hkern g1="guillemotright" g2="R" k="20" /> +<hkern g1="guillemotright" g2="T" k="80" /> +<hkern g1="guillemotright" g2="V" k="59" /> +<hkern g1="guillemotright" g2="W" k="61" /> +<hkern g1="guillemotright" g2="X" k="37" /> +<hkern g1="guillemotright" g2="Y" k="106" /> +<hkern g1="guillemotright" g2="Z" k="41" /> +<hkern g1="guillemotright" g2="AE" k="29" /> +<hkern g1="guillemotright" g2="Egrave" k="20" /> +<hkern g1="guillemotright" g2="Eacute" k="20" /> +<hkern g1="guillemotright" g2="Ecircumflex" k="20" /> +<hkern g1="guillemotright" g2="Edieresis" k="20" /> +<hkern g1="guillemotright" g2="Igrave" k="20" /> +<hkern g1="guillemotright" g2="Iacute" k="20" /> +<hkern g1="guillemotright" g2="Icircumflex" k="20" /> +<hkern g1="guillemotright" g2="Idieresis" k="20" /> +<hkern g1="guillemotright" g2="Eth" k="20" /> +<hkern g1="guillemotright" g2="Ntilde" k="20" /> +<hkern g1="guillemotright" g2="Yacute" k="106" /> +<hkern g1="guillemotright" g2="Thorn" k="20" /> +<hkern g1="guillemotright" g2="quoteright" k="131" /> +<hkern g1="guillemotright" g2="quotedblright" k="131" /> +<hkern g1="questiondown" g2="C" k="45" /> +<hkern g1="questiondown" g2="G" k="43" /> +<hkern g1="questiondown" g2="O" k="45" /> +<hkern g1="questiondown" g2="Q" k="45" /> +<hkern g1="questiondown" g2="T" k="66" /> +<hkern g1="questiondown" g2="U" k="63" /> +<hkern g1="questiondown" g2="V" k="100" /> +<hkern g1="questiondown" g2="W" k="102" /> +<hkern g1="questiondown" g2="Y" k="104" /> +<hkern g1="questiondown" g2="a" k="25" /> +<hkern g1="questiondown" g2="c" k="39" /> +<hkern g1="questiondown" g2="d" k="37" /> +<hkern g1="questiondown" g2="e" k="39" /> +<hkern g1="questiondown" g2="j" k="-63" /> +<hkern g1="questiondown" g2="o" k="39" /> +<hkern g1="questiondown" g2="q" k="37" /> +<hkern g1="questiondown" g2="t" k="43" /> +<hkern g1="questiondown" g2="u" k="43" /> +<hkern g1="questiondown" g2="v" k="49" /> +<hkern g1="questiondown" g2="w" k="49" /> +<hkern g1="questiondown" g2="Ccedilla" k="45" /> +<hkern g1="questiondown" g2="Ograve" k="45" /> +<hkern g1="questiondown" g2="Oacute" k="45" /> +<hkern g1="questiondown" g2="Ocircumflex" k="45" /> +<hkern g1="questiondown" g2="Otilde" k="45" /> +<hkern g1="questiondown" g2="Odieresis" k="45" /> +<hkern g1="questiondown" g2="Oslash" k="45" /> +<hkern g1="questiondown" g2="Ugrave" k="63" /> +<hkern g1="questiondown" g2="Uacute" k="63" /> +<hkern g1="questiondown" g2="Ucircumflex" k="63" /> +<hkern g1="questiondown" g2="Udieresis" k="63" /> +<hkern g1="questiondown" g2="Yacute" k="104" /> +<hkern g1="questiondown" g2="agrave" k="25" /> +<hkern g1="questiondown" g2="aacute" k="25" /> +<hkern g1="questiondown" g2="acircumflex" k="25" /> +<hkern g1="questiondown" g2="atilde" k="25" /> +<hkern g1="questiondown" g2="adieresis" k="25" /> +<hkern g1="questiondown" g2="aring" k="25" /> +<hkern g1="questiondown" g2="ae" k="25" /> +<hkern g1="questiondown" g2="ccedilla" k="39" /> +<hkern g1="questiondown" g2="egrave" k="39" /> +<hkern g1="questiondown" g2="eacute" k="39" /> +<hkern g1="questiondown" g2="ecircumflex" k="39" /> +<hkern g1="questiondown" g2="edieresis" k="39" /> +<hkern g1="questiondown" g2="eth" k="37" /> +<hkern g1="questiondown" g2="ograve" k="39" /> +<hkern g1="questiondown" g2="oacute" k="39" /> +<hkern g1="questiondown" g2="ocircumflex" k="39" /> +<hkern g1="questiondown" g2="otilde" k="39" /> +<hkern g1="questiondown" g2="odieresis" k="39" /> +<hkern g1="questiondown" g2="oslash" k="39" /> +<hkern g1="questiondown" g2="ugrave" k="43" /> +<hkern g1="questiondown" g2="uacute" k="43" /> +<hkern g1="questiondown" g2="ucircumflex" k="43" /> +<hkern g1="questiondown" g2="udieresis" k="43" /> +<hkern g1="questiondown" g2="OE" k="45" /> +<hkern g1="questiondown" g2="oe" k="39" /> +<hkern g1="Agrave" g2="quotedbl" k="100" /> +<hkern g1="Agrave" g2="quotesingle" k="100" /> +<hkern g1="Agrave" g2="asterisk" k="57" /> +<hkern g1="Agrave" g2="hyphen" k="40" /> +<hkern g1="Agrave" g2="two" k="-10" /> +<hkern g1="Agrave" g2="seven" k="20" /> +<hkern g1="Agrave" g2="question" k="25" /> +<hkern g1="Agrave" g2="A" k="-95" /> +<hkern g1="Agrave" g2="C" k="10" /> +<hkern g1="Agrave" g2="G" k="12" /> +<hkern g1="Agrave" g2="J" k="-100" /> +<hkern g1="Agrave" g2="O" k="10" /> +<hkern g1="Agrave" g2="Q" k="10" /> +<hkern g1="Agrave" g2="T" k="50" /> +<hkern g1="Agrave" g2="U" k="39" /> +<hkern g1="Agrave" g2="V" k="80" /> +<hkern g1="Agrave" g2="W" k="94" /> +<hkern g1="Agrave" g2="X" k="-85" /> +<hkern g1="Agrave" g2="Y" k="70" /> +<hkern g1="Agrave" g2="Z" k="-20" /> +<hkern g1="Agrave" g2="backslash" k="100" /> +<hkern g1="Agrave" g2="bracketright" k="51" /> +<hkern g1="Agrave" g2="a" k="-55" /> +<hkern g1="Agrave" g2="t" k="14" /> +<hkern g1="Agrave" g2="v" k="40" /> +<hkern g1="Agrave" g2="w" k="40" /> +<hkern g1="Agrave" g2="x" k="-55" /> +<hkern g1="Agrave" g2="y" k="30" /> +<hkern g1="Agrave" g2="z" k="-60" /> +<hkern g1="Agrave" g2="uni00AD" k="40" /> +<hkern g1="Agrave" g2="acute" k="100" /> +<hkern g1="Agrave" g2="Agrave" k="-95" /> +<hkern g1="Agrave" g2="Aacute" k="-95" /> +<hkern g1="Agrave" g2="Acircumflex" k="-95" /> +<hkern g1="Agrave" g2="Atilde" k="-95" /> +<hkern g1="Agrave" g2="Adieresis" k="-95" /> +<hkern g1="Agrave" g2="Aring" k="-95" /> +<hkern g1="Agrave" g2="AE" k="-120" /> +<hkern g1="Agrave" g2="Ccedilla" k="10" /> +<hkern g1="Agrave" g2="Ograve" k="10" /> +<hkern g1="Agrave" g2="Oacute" k="10" /> +<hkern g1="Agrave" g2="Ocircumflex" k="10" /> +<hkern g1="Agrave" g2="Otilde" k="10" /> +<hkern g1="Agrave" g2="Odieresis" k="10" /> +<hkern g1="Agrave" g2="Oslash" k="10" /> +<hkern g1="Agrave" g2="Ugrave" k="39" /> +<hkern g1="Agrave" g2="Uacute" k="39" /> +<hkern g1="Agrave" g2="Ucircumflex" k="39" /> +<hkern g1="Agrave" g2="Udieresis" k="39" /> +<hkern g1="Agrave" g2="Yacute" k="70" /> +<hkern g1="Agrave" g2="agrave" k="-55" /> +<hkern g1="Agrave" g2="aacute" k="-55" /> +<hkern g1="Agrave" g2="acircumflex" k="-55" /> +<hkern g1="Agrave" g2="atilde" k="-55" /> +<hkern g1="Agrave" g2="adieresis" k="-55" /> +<hkern g1="Agrave" g2="aring" k="-55" /> +<hkern g1="Agrave" g2="ae" k="-55" /> +<hkern g1="Agrave" g2="yacute" k="30" /> +<hkern g1="Agrave" g2="ydieresis" k="30" /> +<hkern g1="Agrave" g2="OE" k="10" /> +<hkern g1="Agrave" g2="endash" k="40" /> +<hkern g1="Agrave" g2="emdash" k="40" /> +<hkern g1="Agrave" g2="quoteleft" k="120" /> +<hkern g1="Agrave" g2="quoteright" k="109" /> +<hkern g1="Agrave" g2="quotedblleft" k="120" /> +<hkern g1="Agrave" g2="quotedblright" k="109" /> +<hkern g1="Aacute" g2="quotedbl" k="100" /> +<hkern g1="Aacute" g2="quotesingle" k="100" /> +<hkern g1="Aacute" g2="asterisk" k="57" /> +<hkern g1="Aacute" g2="hyphen" k="40" /> +<hkern g1="Aacute" g2="two" k="-10" /> +<hkern g1="Aacute" g2="seven" k="20" /> +<hkern g1="Aacute" g2="question" k="25" /> +<hkern g1="Aacute" g2="A" k="-95" /> +<hkern g1="Aacute" g2="C" k="10" /> +<hkern g1="Aacute" g2="G" k="12" /> +<hkern g1="Aacute" g2="J" k="-100" /> +<hkern g1="Aacute" g2="O" k="10" /> +<hkern g1="Aacute" g2="Q" k="10" /> +<hkern g1="Aacute" g2="T" k="50" /> +<hkern g1="Aacute" g2="U" k="39" /> +<hkern g1="Aacute" g2="V" k="80" /> +<hkern g1="Aacute" g2="W" k="94" /> +<hkern g1="Aacute" g2="X" k="-85" /> +<hkern g1="Aacute" g2="Y" k="70" /> +<hkern g1="Aacute" g2="Z" k="-20" /> +<hkern g1="Aacute" g2="backslash" k="100" /> +<hkern g1="Aacute" g2="bracketright" k="51" /> +<hkern g1="Aacute" g2="a" k="-55" /> +<hkern g1="Aacute" g2="t" k="14" /> +<hkern g1="Aacute" g2="v" k="40" /> +<hkern g1="Aacute" g2="w" k="40" /> +<hkern g1="Aacute" g2="x" k="-55" /> +<hkern g1="Aacute" g2="y" k="30" /> +<hkern g1="Aacute" g2="z" k="-60" /> +<hkern g1="Aacute" g2="uni00AD" k="40" /> +<hkern g1="Aacute" g2="acute" k="100" /> +<hkern g1="Aacute" g2="Agrave" k="-95" /> +<hkern g1="Aacute" g2="Aacute" k="-95" /> +<hkern g1="Aacute" g2="Acircumflex" k="-95" /> +<hkern g1="Aacute" g2="Atilde" k="-95" /> +<hkern g1="Aacute" g2="Adieresis" k="-95" /> +<hkern g1="Aacute" g2="Aring" k="-95" /> +<hkern g1="Aacute" g2="AE" k="-120" /> +<hkern g1="Aacute" g2="Ccedilla" k="10" /> +<hkern g1="Aacute" g2="Ograve" k="10" /> +<hkern g1="Aacute" g2="Oacute" k="10" /> +<hkern g1="Aacute" g2="Ocircumflex" k="10" /> +<hkern g1="Aacute" g2="Otilde" k="10" /> +<hkern g1="Aacute" g2="Odieresis" k="10" /> +<hkern g1="Aacute" g2="Oslash" k="10" /> +<hkern g1="Aacute" g2="Ugrave" k="39" /> +<hkern g1="Aacute" g2="Uacute" k="39" /> +<hkern g1="Aacute" g2="Ucircumflex" k="39" /> +<hkern g1="Aacute" g2="Udieresis" k="39" /> +<hkern g1="Aacute" g2="Yacute" k="70" /> +<hkern g1="Aacute" g2="agrave" k="-55" /> +<hkern g1="Aacute" g2="aacute" k="-55" /> +<hkern g1="Aacute" g2="acircumflex" k="-55" /> +<hkern g1="Aacute" g2="atilde" k="-55" /> +<hkern g1="Aacute" g2="adieresis" k="-55" /> +<hkern g1="Aacute" g2="aring" k="-55" /> +<hkern g1="Aacute" g2="ae" k="-55" /> +<hkern g1="Aacute" g2="yacute" k="30" /> +<hkern g1="Aacute" g2="ydieresis" k="30" /> +<hkern g1="Aacute" g2="OE" k="10" /> +<hkern g1="Aacute" g2="endash" k="40" /> +<hkern g1="Aacute" g2="emdash" k="40" /> +<hkern g1="Aacute" g2="quoteleft" k="120" /> +<hkern g1="Aacute" g2="quoteright" k="109" /> +<hkern g1="Aacute" g2="quotedblleft" k="120" /> +<hkern g1="Aacute" g2="quotedblright" k="109" /> +<hkern g1="Acircumflex" g2="quotedbl" k="100" /> +<hkern g1="Acircumflex" g2="quotesingle" k="100" /> +<hkern g1="Acircumflex" g2="asterisk" k="57" /> +<hkern g1="Acircumflex" g2="hyphen" k="40" /> +<hkern g1="Acircumflex" g2="two" k="-10" /> +<hkern g1="Acircumflex" g2="seven" k="20" /> +<hkern g1="Acircumflex" g2="question" k="25" /> +<hkern g1="Acircumflex" g2="A" k="-95" /> +<hkern g1="Acircumflex" g2="C" k="10" /> +<hkern g1="Acircumflex" g2="G" k="12" /> +<hkern g1="Acircumflex" g2="J" k="-100" /> +<hkern g1="Acircumflex" g2="O" k="10" /> +<hkern g1="Acircumflex" g2="Q" k="10" /> +<hkern g1="Acircumflex" g2="T" k="50" /> +<hkern g1="Acircumflex" g2="U" k="39" /> +<hkern g1="Acircumflex" g2="V" k="80" /> +<hkern g1="Acircumflex" g2="W" k="94" /> +<hkern g1="Acircumflex" g2="X" k="-85" /> +<hkern g1="Acircumflex" g2="Y" k="70" /> +<hkern g1="Acircumflex" g2="Z" k="-20" /> +<hkern g1="Acircumflex" g2="backslash" k="100" /> +<hkern g1="Acircumflex" g2="bracketright" k="51" /> +<hkern g1="Acircumflex" g2="a" k="-55" /> +<hkern g1="Acircumflex" g2="t" k="14" /> +<hkern g1="Acircumflex" g2="v" k="40" /> +<hkern g1="Acircumflex" g2="w" k="40" /> +<hkern g1="Acircumflex" g2="x" k="-55" /> +<hkern g1="Acircumflex" g2="y" k="30" /> +<hkern g1="Acircumflex" g2="z" k="-60" /> +<hkern g1="Acircumflex" g2="uni00AD" k="40" /> +<hkern g1="Acircumflex" g2="acute" k="100" /> +<hkern g1="Acircumflex" g2="Agrave" k="-95" /> +<hkern g1="Acircumflex" g2="Aacute" k="-95" /> +<hkern g1="Acircumflex" g2="Acircumflex" k="-95" /> +<hkern g1="Acircumflex" g2="Atilde" k="-95" /> +<hkern g1="Acircumflex" g2="Adieresis" k="-95" /> +<hkern g1="Acircumflex" g2="Aring" k="-95" /> +<hkern g1="Acircumflex" g2="AE" k="-120" /> +<hkern g1="Acircumflex" g2="Ccedilla" k="10" /> +<hkern g1="Acircumflex" g2="Ograve" k="10" /> +<hkern g1="Acircumflex" g2="Oacute" k="10" /> +<hkern g1="Acircumflex" g2="Ocircumflex" k="10" /> +<hkern g1="Acircumflex" g2="Otilde" k="10" /> +<hkern g1="Acircumflex" g2="Odieresis" k="10" /> +<hkern g1="Acircumflex" g2="Oslash" k="10" /> +<hkern g1="Acircumflex" g2="Ugrave" k="39" /> +<hkern g1="Acircumflex" g2="Uacute" k="39" /> +<hkern g1="Acircumflex" g2="Ucircumflex" k="39" /> +<hkern g1="Acircumflex" g2="Udieresis" k="39" /> +<hkern g1="Acircumflex" g2="Yacute" k="70" /> +<hkern g1="Acircumflex" g2="agrave" k="-55" /> +<hkern g1="Acircumflex" g2="aacute" k="-55" /> +<hkern g1="Acircumflex" g2="acircumflex" k="-55" /> +<hkern g1="Acircumflex" g2="atilde" k="-55" /> +<hkern g1="Acircumflex" g2="adieresis" k="-55" /> +<hkern g1="Acircumflex" g2="aring" k="-55" /> +<hkern g1="Acircumflex" g2="ae" k="-55" /> +<hkern g1="Acircumflex" g2="yacute" k="30" /> +<hkern g1="Acircumflex" g2="ydieresis" k="30" /> +<hkern g1="Acircumflex" g2="OE" k="10" /> +<hkern g1="Acircumflex" g2="endash" k="40" /> +<hkern g1="Acircumflex" g2="emdash" k="40" /> +<hkern g1="Acircumflex" g2="quoteleft" k="120" /> +<hkern g1="Acircumflex" g2="quoteright" k="109" /> +<hkern g1="Acircumflex" g2="quotedblleft" k="120" /> +<hkern g1="Acircumflex" g2="quotedblright" k="109" /> +<hkern g1="Atilde" g2="quotedbl" k="100" /> +<hkern g1="Atilde" g2="quotesingle" k="100" /> +<hkern g1="Atilde" g2="asterisk" k="57" /> +<hkern g1="Atilde" g2="hyphen" k="40" /> +<hkern g1="Atilde" g2="two" k="-10" /> +<hkern g1="Atilde" g2="seven" k="20" /> +<hkern g1="Atilde" g2="question" k="25" /> +<hkern g1="Atilde" g2="A" k="-95" /> +<hkern g1="Atilde" g2="C" k="10" /> +<hkern g1="Atilde" g2="G" k="12" /> +<hkern g1="Atilde" g2="J" k="-100" /> +<hkern g1="Atilde" g2="O" k="10" /> +<hkern g1="Atilde" g2="Q" k="10" /> +<hkern g1="Atilde" g2="T" k="50" /> +<hkern g1="Atilde" g2="U" k="39" /> +<hkern g1="Atilde" g2="V" k="80" /> +<hkern g1="Atilde" g2="W" k="94" /> +<hkern g1="Atilde" g2="X" k="-85" /> +<hkern g1="Atilde" g2="Y" k="70" /> +<hkern g1="Atilde" g2="Z" k="-20" /> +<hkern g1="Atilde" g2="backslash" k="100" /> +<hkern g1="Atilde" g2="bracketright" k="51" /> +<hkern g1="Atilde" g2="a" k="-55" /> +<hkern g1="Atilde" g2="t" k="14" /> +<hkern g1="Atilde" g2="v" k="40" /> +<hkern g1="Atilde" g2="w" k="40" /> +<hkern g1="Atilde" g2="x" k="-55" /> +<hkern g1="Atilde" g2="y" k="30" /> +<hkern g1="Atilde" g2="z" k="-60" /> +<hkern g1="Atilde" g2="uni00AD" k="40" /> +<hkern g1="Atilde" g2="acute" k="100" /> +<hkern g1="Atilde" g2="Agrave" k="-95" /> +<hkern g1="Atilde" g2="Aacute" k="-95" /> +<hkern g1="Atilde" g2="Acircumflex" k="-95" /> +<hkern g1="Atilde" g2="Atilde" k="-95" /> +<hkern g1="Atilde" g2="Adieresis" k="-95" /> +<hkern g1="Atilde" g2="Aring" k="-95" /> +<hkern g1="Atilde" g2="AE" k="-120" /> +<hkern g1="Atilde" g2="Ccedilla" k="10" /> +<hkern g1="Atilde" g2="Ograve" k="10" /> +<hkern g1="Atilde" g2="Oacute" k="10" /> +<hkern g1="Atilde" g2="Ocircumflex" k="10" /> +<hkern g1="Atilde" g2="Otilde" k="10" /> +<hkern g1="Atilde" g2="Odieresis" k="10" /> +<hkern g1="Atilde" g2="Oslash" k="10" /> +<hkern g1="Atilde" g2="Ugrave" k="39" /> +<hkern g1="Atilde" g2="Uacute" k="39" /> +<hkern g1="Atilde" g2="Ucircumflex" k="39" /> +<hkern g1="Atilde" g2="Udieresis" k="39" /> +<hkern g1="Atilde" g2="Yacute" k="70" /> +<hkern g1="Atilde" g2="agrave" k="-55" /> +<hkern g1="Atilde" g2="aacute" k="-55" /> +<hkern g1="Atilde" g2="acircumflex" k="-55" /> +<hkern g1="Atilde" g2="atilde" k="-55" /> +<hkern g1="Atilde" g2="adieresis" k="-55" /> +<hkern g1="Atilde" g2="aring" k="-55" /> +<hkern g1="Atilde" g2="ae" k="-55" /> +<hkern g1="Atilde" g2="yacute" k="30" /> +<hkern g1="Atilde" g2="ydieresis" k="30" /> +<hkern g1="Atilde" g2="OE" k="10" /> +<hkern g1="Atilde" g2="endash" k="40" /> +<hkern g1="Atilde" g2="emdash" k="40" /> +<hkern g1="Atilde" g2="quoteleft" k="120" /> +<hkern g1="Atilde" g2="quoteright" k="109" /> +<hkern g1="Atilde" g2="quotedblleft" k="120" /> +<hkern g1="Atilde" g2="quotedblright" k="109" /> +<hkern g1="Adieresis" g2="quotedbl" k="100" /> +<hkern g1="Adieresis" g2="quotesingle" k="100" /> +<hkern g1="Adieresis" g2="asterisk" k="57" /> +<hkern g1="Adieresis" g2="hyphen" k="40" /> +<hkern g1="Adieresis" g2="two" k="-10" /> +<hkern g1="Adieresis" g2="seven" k="20" /> +<hkern g1="Adieresis" g2="question" k="25" /> +<hkern g1="Adieresis" g2="A" k="-95" /> +<hkern g1="Adieresis" g2="C" k="10" /> +<hkern g1="Adieresis" g2="G" k="12" /> +<hkern g1="Adieresis" g2="J" k="-100" /> +<hkern g1="Adieresis" g2="O" k="10" /> +<hkern g1="Adieresis" g2="Q" k="10" /> +<hkern g1="Adieresis" g2="T" k="50" /> +<hkern g1="Adieresis" g2="U" k="39" /> +<hkern g1="Adieresis" g2="V" k="80" /> +<hkern g1="Adieresis" g2="W" k="94" /> +<hkern g1="Adieresis" g2="X" k="-85" /> +<hkern g1="Adieresis" g2="Y" k="70" /> +<hkern g1="Adieresis" g2="Z" k="-20" /> +<hkern g1="Adieresis" g2="backslash" k="100" /> +<hkern g1="Adieresis" g2="bracketright" k="51" /> +<hkern g1="Adieresis" g2="a" k="-55" /> +<hkern g1="Adieresis" g2="t" k="14" /> +<hkern g1="Adieresis" g2="v" k="40" /> +<hkern g1="Adieresis" g2="w" k="40" /> +<hkern g1="Adieresis" g2="x" k="-55" /> +<hkern g1="Adieresis" g2="y" k="30" /> +<hkern g1="Adieresis" g2="z" k="-60" /> +<hkern g1="Adieresis" g2="uni00AD" k="40" /> +<hkern g1="Adieresis" g2="acute" k="100" /> +<hkern g1="Adieresis" g2="Agrave" k="-95" /> +<hkern g1="Adieresis" g2="Aacute" k="-95" /> +<hkern g1="Adieresis" g2="Acircumflex" k="-95" /> +<hkern g1="Adieresis" g2="Atilde" k="-95" /> +<hkern g1="Adieresis" g2="Adieresis" k="-95" /> +<hkern g1="Adieresis" g2="Aring" k="-95" /> +<hkern g1="Adieresis" g2="AE" k="-120" /> +<hkern g1="Adieresis" g2="Ccedilla" k="10" /> +<hkern g1="Adieresis" g2="Ograve" k="10" /> +<hkern g1="Adieresis" g2="Oacute" k="10" /> +<hkern g1="Adieresis" g2="Ocircumflex" k="10" /> +<hkern g1="Adieresis" g2="Otilde" k="10" /> +<hkern g1="Adieresis" g2="Odieresis" k="10" /> +<hkern g1="Adieresis" g2="Oslash" k="10" /> +<hkern g1="Adieresis" g2="Ugrave" k="39" /> +<hkern g1="Adieresis" g2="Uacute" k="39" /> +<hkern g1="Adieresis" g2="Ucircumflex" k="39" /> +<hkern g1="Adieresis" g2="Udieresis" k="39" /> +<hkern g1="Adieresis" g2="Yacute" k="70" /> +<hkern g1="Adieresis" g2="agrave" k="-55" /> +<hkern g1="Adieresis" g2="aacute" k="-55" /> +<hkern g1="Adieresis" g2="acircumflex" k="-55" /> +<hkern g1="Adieresis" g2="atilde" k="-55" /> +<hkern g1="Adieresis" g2="adieresis" k="-55" /> +<hkern g1="Adieresis" g2="aring" k="-55" /> +<hkern g1="Adieresis" g2="ae" k="-55" /> +<hkern g1="Adieresis" g2="yacute" k="30" /> +<hkern g1="Adieresis" g2="ydieresis" k="30" /> +<hkern g1="Adieresis" g2="OE" k="10" /> +<hkern g1="Adieresis" g2="endash" k="40" /> +<hkern g1="Adieresis" g2="emdash" k="40" /> +<hkern g1="Adieresis" g2="quoteleft" k="120" /> +<hkern g1="Adieresis" g2="quoteright" k="109" /> +<hkern g1="Adieresis" g2="quotedblleft" k="120" /> +<hkern g1="Adieresis" g2="quotedblright" k="109" /> +<hkern g1="Aring" g2="quotedbl" k="100" /> +<hkern g1="Aring" g2="quotesingle" k="100" /> +<hkern g1="Aring" g2="asterisk" k="57" /> +<hkern g1="Aring" g2="hyphen" k="40" /> +<hkern g1="Aring" g2="two" k="-10" /> +<hkern g1="Aring" g2="seven" k="20" /> +<hkern g1="Aring" g2="question" k="25" /> +<hkern g1="Aring" g2="A" k="-95" /> +<hkern g1="Aring" g2="C" k="10" /> +<hkern g1="Aring" g2="G" k="12" /> +<hkern g1="Aring" g2="J" k="-100" /> +<hkern g1="Aring" g2="O" k="10" /> +<hkern g1="Aring" g2="Q" k="10" /> +<hkern g1="Aring" g2="T" k="50" /> +<hkern g1="Aring" g2="U" k="39" /> +<hkern g1="Aring" g2="V" k="80" /> +<hkern g1="Aring" g2="W" k="94" /> +<hkern g1="Aring" g2="X" k="-85" /> +<hkern g1="Aring" g2="Y" k="70" /> +<hkern g1="Aring" g2="Z" k="-20" /> +<hkern g1="Aring" g2="backslash" k="100" /> +<hkern g1="Aring" g2="bracketright" k="51" /> +<hkern g1="Aring" g2="a" k="-55" /> +<hkern g1="Aring" g2="t" k="14" /> +<hkern g1="Aring" g2="v" k="40" /> +<hkern g1="Aring" g2="w" k="40" /> +<hkern g1="Aring" g2="x" k="-55" /> +<hkern g1="Aring" g2="y" k="30" /> +<hkern g1="Aring" g2="z" k="-60" /> +<hkern g1="Aring" g2="uni00AD" k="40" /> +<hkern g1="Aring" g2="acute" k="100" /> +<hkern g1="Aring" g2="Agrave" k="-95" /> +<hkern g1="Aring" g2="Aacute" k="-95" /> +<hkern g1="Aring" g2="Acircumflex" k="-95" /> +<hkern g1="Aring" g2="Atilde" k="-95" /> +<hkern g1="Aring" g2="Adieresis" k="-95" /> +<hkern g1="Aring" g2="Aring" k="-95" /> +<hkern g1="Aring" g2="AE" k="-120" /> +<hkern g1="Aring" g2="Ccedilla" k="10" /> +<hkern g1="Aring" g2="Ograve" k="10" /> +<hkern g1="Aring" g2="Oacute" k="10" /> +<hkern g1="Aring" g2="Ocircumflex" k="10" /> +<hkern g1="Aring" g2="Otilde" k="10" /> +<hkern g1="Aring" g2="Odieresis" k="10" /> +<hkern g1="Aring" g2="Oslash" k="10" /> +<hkern g1="Aring" g2="Ugrave" k="39" /> +<hkern g1="Aring" g2="Uacute" k="39" /> +<hkern g1="Aring" g2="Ucircumflex" k="39" /> +<hkern g1="Aring" g2="Udieresis" k="39" /> +<hkern g1="Aring" g2="Yacute" k="70" /> +<hkern g1="Aring" g2="agrave" k="-55" /> +<hkern g1="Aring" g2="aacute" k="-55" /> +<hkern g1="Aring" g2="acircumflex" k="-55" /> +<hkern g1="Aring" g2="atilde" k="-55" /> +<hkern g1="Aring" g2="adieresis" k="-55" /> +<hkern g1="Aring" g2="aring" k="-55" /> +<hkern g1="Aring" g2="ae" k="-55" /> +<hkern g1="Aring" g2="yacute" k="30" /> +<hkern g1="Aring" g2="ydieresis" k="30" /> +<hkern g1="Aring" g2="OE" k="10" /> +<hkern g1="Aring" g2="endash" k="40" /> +<hkern g1="Aring" g2="emdash" k="40" /> +<hkern g1="Aring" g2="quoteleft" k="120" /> +<hkern g1="Aring" g2="quoteright" k="109" /> +<hkern g1="Aring" g2="quotedblleft" k="120" /> +<hkern g1="Aring" g2="quotedblright" k="109" /> +<hkern g1="Ccedilla" g2="hyphen" k="39" /> +<hkern g1="Ccedilla" g2="slash" k="72" /> +<hkern g1="Ccedilla" g2="A" k="20" /> +<hkern g1="Ccedilla" g2="g" k="10" /> +<hkern g1="Ccedilla" g2="z" k="10" /> +<hkern g1="Ccedilla" g2="uni00AD" k="39" /> +<hkern g1="Ccedilla" g2="Agrave" k="20" /> +<hkern g1="Ccedilla" g2="Aacute" k="20" /> +<hkern g1="Ccedilla" g2="Acircumflex" k="20" /> +<hkern g1="Ccedilla" g2="Atilde" k="20" /> +<hkern g1="Ccedilla" g2="Adieresis" k="20" /> +<hkern g1="Ccedilla" g2="Aring" k="20" /> +<hkern g1="Ccedilla" g2="AE" k="57" /> +<hkern g1="Ccedilla" g2="endash" k="39" /> +<hkern g1="Ccedilla" g2="emdash" k="39" /> +<hkern g1="Igrave" g2="asterisk" k="16" /> +<hkern g1="Igrave" g2="hyphen" k="33" /> +<hkern g1="Igrave" g2="slash" k="49" /> +<hkern g1="Igrave" g2="G" k="18" /> +<hkern g1="Igrave" g2="a" k="16" /> +<hkern g1="Igrave" g2="c" k="45" /> +<hkern g1="Igrave" g2="d" k="43" /> +<hkern g1="Igrave" g2="e" k="45" /> +<hkern g1="Igrave" g2="f" k="18" /> +<hkern g1="Igrave" g2="g" k="29" /> +<hkern g1="Igrave" g2="i" k="14" /> +<hkern g1="Igrave" g2="j" k="20" /> +<hkern g1="Igrave" g2="m" k="16" /> +<hkern g1="Igrave" g2="n" k="16" /> +<hkern g1="Igrave" g2="o" k="45" /> +<hkern g1="Igrave" g2="p" k="33" /> +<hkern g1="Igrave" g2="q" k="43" /> +<hkern g1="Igrave" g2="r" k="16" /> +<hkern g1="Igrave" g2="s" k="18" /> +<hkern g1="Igrave" g2="t" k="35" /> +<hkern g1="Igrave" g2="u" k="39" /> +<hkern g1="Igrave" g2="v" k="35" /> +<hkern g1="Igrave" g2="w" k="35" /> +<hkern g1="Igrave" g2="y" k="35" /> +<hkern g1="Igrave" g2="z" k="12" /> +<hkern g1="Igrave" g2="guillemotleft" k="20" /> +<hkern g1="Igrave" g2="uni00AD" k="33" /> +<hkern g1="Igrave" g2="germandbls" k="18" /> +<hkern g1="Igrave" g2="agrave" k="16" /> +<hkern g1="Igrave" g2="aacute" k="16" /> +<hkern g1="Igrave" g2="acircumflex" k="16" /> +<hkern g1="Igrave" g2="atilde" k="16" /> +<hkern g1="Igrave" g2="adieresis" k="16" /> +<hkern g1="Igrave" g2="aring" k="16" /> +<hkern g1="Igrave" g2="ae" k="16" /> +<hkern g1="Igrave" g2="ccedilla" k="45" /> +<hkern g1="Igrave" g2="egrave" k="45" /> +<hkern g1="Igrave" g2="eacute" k="45" /> +<hkern g1="Igrave" g2="ecircumflex" k="45" /> +<hkern g1="Igrave" g2="edieresis" k="45" /> +<hkern g1="Igrave" g2="igrave" k="14" /> +<hkern g1="Igrave" g2="iacute" k="14" /> +<hkern g1="Igrave" g2="icircumflex" k="14" /> +<hkern g1="Igrave" g2="idieresis" k="14" /> +<hkern g1="Igrave" g2="eth" k="43" /> +<hkern g1="Igrave" g2="ntilde" k="16" /> +<hkern g1="Igrave" g2="ograve" k="45" /> +<hkern g1="Igrave" g2="oacute" k="45" /> +<hkern g1="Igrave" g2="ocircumflex" k="45" /> +<hkern g1="Igrave" g2="otilde" k="45" /> +<hkern g1="Igrave" g2="odieresis" k="45" /> +<hkern g1="Igrave" g2="oslash" k="45" /> +<hkern g1="Igrave" g2="ugrave" k="39" /> +<hkern g1="Igrave" g2="uacute" k="39" /> +<hkern g1="Igrave" g2="ucircumflex" k="39" /> +<hkern g1="Igrave" g2="udieresis" k="39" /> +<hkern g1="Igrave" g2="yacute" k="35" /> +<hkern g1="Igrave" g2="ydieresis" k="35" /> +<hkern g1="Igrave" g2="dotlessi" k="14" /> +<hkern g1="Igrave" g2="oe" k="45" /> +<hkern g1="Igrave" g2="endash" k="33" /> +<hkern g1="Igrave" g2="emdash" k="33" /> +<hkern g1="Igrave" g2="guilsinglleft" k="20" /> +<hkern g1="Iacute" g2="asterisk" k="16" /> +<hkern g1="Iacute" g2="hyphen" k="33" /> +<hkern g1="Iacute" g2="slash" k="49" /> +<hkern g1="Iacute" g2="G" k="18" /> +<hkern g1="Iacute" g2="a" k="16" /> +<hkern g1="Iacute" g2="c" k="45" /> +<hkern g1="Iacute" g2="d" k="43" /> +<hkern g1="Iacute" g2="e" k="45" /> +<hkern g1="Iacute" g2="f" k="18" /> +<hkern g1="Iacute" g2="g" k="29" /> +<hkern g1="Iacute" g2="i" k="14" /> +<hkern g1="Iacute" g2="j" k="20" /> +<hkern g1="Iacute" g2="m" k="16" /> +<hkern g1="Iacute" g2="n" k="16" /> +<hkern g1="Iacute" g2="o" k="45" /> +<hkern g1="Iacute" g2="p" k="33" /> +<hkern g1="Iacute" g2="q" k="43" /> +<hkern g1="Iacute" g2="r" k="16" /> +<hkern g1="Iacute" g2="s" k="18" /> +<hkern g1="Iacute" g2="t" k="35" /> +<hkern g1="Iacute" g2="u" k="39" /> +<hkern g1="Iacute" g2="v" k="35" /> +<hkern g1="Iacute" g2="w" k="35" /> +<hkern g1="Iacute" g2="y" k="35" /> +<hkern g1="Iacute" g2="z" k="12" /> +<hkern g1="Iacute" g2="guillemotleft" k="20" /> +<hkern g1="Iacute" g2="uni00AD" k="33" /> +<hkern g1="Iacute" g2="germandbls" k="18" /> +<hkern g1="Iacute" g2="agrave" k="16" /> +<hkern g1="Iacute" g2="aacute" k="16" /> +<hkern g1="Iacute" g2="acircumflex" k="16" /> +<hkern g1="Iacute" g2="atilde" k="16" /> +<hkern g1="Iacute" g2="adieresis" k="16" /> +<hkern g1="Iacute" g2="aring" k="16" /> +<hkern g1="Iacute" g2="ae" k="16" /> +<hkern g1="Iacute" g2="ccedilla" k="45" /> +<hkern g1="Iacute" g2="egrave" k="45" /> +<hkern g1="Iacute" g2="eacute" k="45" /> +<hkern g1="Iacute" g2="ecircumflex" k="45" /> +<hkern g1="Iacute" g2="edieresis" k="45" /> +<hkern g1="Iacute" g2="igrave" k="14" /> +<hkern g1="Iacute" g2="iacute" k="14" /> +<hkern g1="Iacute" g2="icircumflex" k="14" /> +<hkern g1="Iacute" g2="idieresis" k="14" /> +<hkern g1="Iacute" g2="eth" k="43" /> +<hkern g1="Iacute" g2="ntilde" k="16" /> +<hkern g1="Iacute" g2="ograve" k="45" /> +<hkern g1="Iacute" g2="oacute" k="45" /> +<hkern g1="Iacute" g2="ocircumflex" k="45" /> +<hkern g1="Iacute" g2="otilde" k="45" /> +<hkern g1="Iacute" g2="odieresis" k="45" /> +<hkern g1="Iacute" g2="oslash" k="45" /> +<hkern g1="Iacute" g2="ugrave" k="39" /> +<hkern g1="Iacute" g2="uacute" k="39" /> +<hkern g1="Iacute" g2="ucircumflex" k="39" /> +<hkern g1="Iacute" g2="udieresis" k="39" /> +<hkern g1="Iacute" g2="yacute" k="35" /> +<hkern g1="Iacute" g2="ydieresis" k="35" /> +<hkern g1="Iacute" g2="dotlessi" k="14" /> +<hkern g1="Iacute" g2="oe" k="45" /> +<hkern g1="Iacute" g2="endash" k="33" /> +<hkern g1="Iacute" g2="emdash" k="33" /> +<hkern g1="Iacute" g2="guilsinglleft" k="20" /> +<hkern g1="Icircumflex" g2="asterisk" k="16" /> +<hkern g1="Icircumflex" g2="hyphen" k="33" /> +<hkern g1="Icircumflex" g2="slash" k="49" /> +<hkern g1="Icircumflex" g2="G" k="18" /> +<hkern g1="Icircumflex" g2="a" k="16" /> +<hkern g1="Icircumflex" g2="c" k="45" /> +<hkern g1="Icircumflex" g2="d" k="43" /> +<hkern g1="Icircumflex" g2="e" k="45" /> +<hkern g1="Icircumflex" g2="f" k="18" /> +<hkern g1="Icircumflex" g2="g" k="29" /> +<hkern g1="Icircumflex" g2="i" k="14" /> +<hkern g1="Icircumflex" g2="j" k="20" /> +<hkern g1="Icircumflex" g2="m" k="16" /> +<hkern g1="Icircumflex" g2="n" k="16" /> +<hkern g1="Icircumflex" g2="o" k="45" /> +<hkern g1="Icircumflex" g2="p" k="33" /> +<hkern g1="Icircumflex" g2="q" k="43" /> +<hkern g1="Icircumflex" g2="r" k="16" /> +<hkern g1="Icircumflex" g2="s" k="18" /> +<hkern g1="Icircumflex" g2="t" k="35" /> +<hkern g1="Icircumflex" g2="u" k="39" /> +<hkern g1="Icircumflex" g2="v" k="35" /> +<hkern g1="Icircumflex" g2="w" k="35" /> +<hkern g1="Icircumflex" g2="y" k="35" /> +<hkern g1="Icircumflex" g2="z" k="12" /> +<hkern g1="Icircumflex" g2="guillemotleft" k="20" /> +<hkern g1="Icircumflex" g2="uni00AD" k="33" /> +<hkern g1="Icircumflex" g2="germandbls" k="18" /> +<hkern g1="Icircumflex" g2="agrave" k="16" /> +<hkern g1="Icircumflex" g2="aacute" k="16" /> +<hkern g1="Icircumflex" g2="acircumflex" k="16" /> +<hkern g1="Icircumflex" g2="atilde" k="16" /> +<hkern g1="Icircumflex" g2="adieresis" k="16" /> +<hkern g1="Icircumflex" g2="aring" k="16" /> +<hkern g1="Icircumflex" g2="ae" k="16" /> +<hkern g1="Icircumflex" g2="ccedilla" k="45" /> +<hkern g1="Icircumflex" g2="egrave" k="45" /> +<hkern g1="Icircumflex" g2="eacute" k="45" /> +<hkern g1="Icircumflex" g2="ecircumflex" k="45" /> +<hkern g1="Icircumflex" g2="edieresis" k="45" /> +<hkern g1="Icircumflex" g2="igrave" k="14" /> +<hkern g1="Icircumflex" g2="iacute" k="14" /> +<hkern g1="Icircumflex" g2="icircumflex" k="14" /> +<hkern g1="Icircumflex" g2="idieresis" k="14" /> +<hkern g1="Icircumflex" g2="eth" k="43" /> +<hkern g1="Icircumflex" g2="ntilde" k="16" /> +<hkern g1="Icircumflex" g2="ograve" k="45" /> +<hkern g1="Icircumflex" g2="oacute" k="45" /> +<hkern g1="Icircumflex" g2="ocircumflex" k="45" /> +<hkern g1="Icircumflex" g2="otilde" k="45" /> +<hkern g1="Icircumflex" g2="odieresis" k="45" /> +<hkern g1="Icircumflex" g2="oslash" k="45" /> +<hkern g1="Icircumflex" g2="ugrave" k="39" /> +<hkern g1="Icircumflex" g2="uacute" k="39" /> +<hkern g1="Icircumflex" g2="ucircumflex" k="39" /> +<hkern g1="Icircumflex" g2="udieresis" k="39" /> +<hkern g1="Icircumflex" g2="yacute" k="35" /> +<hkern g1="Icircumflex" g2="ydieresis" k="35" /> +<hkern g1="Icircumflex" g2="dotlessi" k="14" /> +<hkern g1="Icircumflex" g2="oe" k="45" /> +<hkern g1="Icircumflex" g2="endash" k="33" /> +<hkern g1="Icircumflex" g2="emdash" k="33" /> +<hkern g1="Icircumflex" g2="quoteright" k="-51" /> +<hkern g1="Icircumflex" g2="quotedblright" k="-51" /> +<hkern g1="Icircumflex" g2="guilsinglleft" k="20" /> +<hkern g1="Idieresis" g2="asterisk" k="16" /> +<hkern g1="Idieresis" g2="hyphen" k="33" /> +<hkern g1="Idieresis" g2="slash" k="49" /> +<hkern g1="Idieresis" g2="G" k="18" /> +<hkern g1="Idieresis" g2="a" k="16" /> +<hkern g1="Idieresis" g2="c" k="45" /> +<hkern g1="Idieresis" g2="d" k="43" /> +<hkern g1="Idieresis" g2="e" k="45" /> +<hkern g1="Idieresis" g2="f" k="18" /> +<hkern g1="Idieresis" g2="g" k="29" /> +<hkern g1="Idieresis" g2="i" k="14" /> +<hkern g1="Idieresis" g2="j" k="20" /> +<hkern g1="Idieresis" g2="m" k="16" /> +<hkern g1="Idieresis" g2="n" k="16" /> +<hkern g1="Idieresis" g2="o" k="45" /> +<hkern g1="Idieresis" g2="p" k="33" /> +<hkern g1="Idieresis" g2="q" k="43" /> +<hkern g1="Idieresis" g2="r" k="16" /> +<hkern g1="Idieresis" g2="s" k="18" /> +<hkern g1="Idieresis" g2="t" k="35" /> +<hkern g1="Idieresis" g2="u" k="39" /> +<hkern g1="Idieresis" g2="v" k="35" /> +<hkern g1="Idieresis" g2="w" k="35" /> +<hkern g1="Idieresis" g2="y" k="35" /> +<hkern g1="Idieresis" g2="z" k="12" /> +<hkern g1="Idieresis" g2="guillemotleft" k="20" /> +<hkern g1="Idieresis" g2="uni00AD" k="33" /> +<hkern g1="Idieresis" g2="germandbls" k="18" /> +<hkern g1="Idieresis" g2="agrave" k="16" /> +<hkern g1="Idieresis" g2="aacute" k="16" /> +<hkern g1="Idieresis" g2="acircumflex" k="16" /> +<hkern g1="Idieresis" g2="atilde" k="16" /> +<hkern g1="Idieresis" g2="adieresis" k="16" /> +<hkern g1="Idieresis" g2="aring" k="16" /> +<hkern g1="Idieresis" g2="ae" k="16" /> +<hkern g1="Idieresis" g2="ccedilla" k="45" /> +<hkern g1="Idieresis" g2="egrave" k="45" /> +<hkern g1="Idieresis" g2="eacute" k="45" /> +<hkern g1="Idieresis" g2="ecircumflex" k="45" /> +<hkern g1="Idieresis" g2="edieresis" k="45" /> +<hkern g1="Idieresis" g2="igrave" k="14" /> +<hkern g1="Idieresis" g2="iacute" k="14" /> +<hkern g1="Idieresis" g2="icircumflex" k="14" /> +<hkern g1="Idieresis" g2="idieresis" k="14" /> +<hkern g1="Idieresis" g2="eth" k="43" /> +<hkern g1="Idieresis" g2="ntilde" k="16" /> +<hkern g1="Idieresis" g2="ograve" k="45" /> +<hkern g1="Idieresis" g2="oacute" k="45" /> +<hkern g1="Idieresis" g2="ocircumflex" k="45" /> +<hkern g1="Idieresis" g2="otilde" k="45" /> +<hkern g1="Idieresis" g2="odieresis" k="45" /> +<hkern g1="Idieresis" g2="oslash" k="45" /> +<hkern g1="Idieresis" g2="ugrave" k="39" /> +<hkern g1="Idieresis" g2="uacute" k="39" /> +<hkern g1="Idieresis" g2="ucircumflex" k="39" /> +<hkern g1="Idieresis" g2="udieresis" k="39" /> +<hkern g1="Idieresis" g2="yacute" k="35" /> +<hkern g1="Idieresis" g2="ydieresis" k="35" /> +<hkern g1="Idieresis" g2="dotlessi" k="14" /> +<hkern g1="Idieresis" g2="oe" k="45" /> +<hkern g1="Idieresis" g2="endash" k="33" /> +<hkern g1="Idieresis" g2="emdash" k="33" /> +<hkern g1="Idieresis" g2="guilsinglleft" k="20" /> +<hkern g1="Eth" g2="parenright" k="47" /> +<hkern g1="Eth" g2="comma" k="49" /> +<hkern g1="Eth" g2="period" k="49" /> +<hkern g1="Eth" g2="slash" k="121" /> +<hkern g1="Eth" g2="A" k="33" /> +<hkern g1="Eth" g2="B" k="20" /> +<hkern g1="Eth" g2="D" k="20" /> +<hkern g1="Eth" g2="E" k="20" /> +<hkern g1="Eth" g2="F" k="20" /> +<hkern g1="Eth" g2="H" k="20" /> +<hkern g1="Eth" g2="I" k="20" /> +<hkern g1="Eth" g2="J" k="55" /> +<hkern g1="Eth" g2="K" k="20" /> +<hkern g1="Eth" g2="L" k="20" /> +<hkern g1="Eth" g2="M" k="20" /> +<hkern g1="Eth" g2="N" k="20" /> +<hkern g1="Eth" g2="P" k="20" /> +<hkern g1="Eth" g2="R" k="20" /> +<hkern g1="Eth" g2="U" k="10" /> +<hkern g1="Eth" g2="V" k="27" /> +<hkern g1="Eth" g2="W" k="30" /> +<hkern g1="Eth" g2="X" k="55" /> +<hkern g1="Eth" g2="Y" k="30" /> +<hkern g1="Eth" g2="Z" k="10" /> +<hkern g1="Eth" g2="backslash" k="41" /> +<hkern g1="Eth" g2="bracketright" k="78" /> +<hkern g1="Eth" g2="a" k="10" /> +<hkern g1="Eth" g2="b" k="10" /> +<hkern g1="Eth" g2="g" k="10" /> +<hkern g1="Eth" g2="h" k="23" /> +<hkern g1="Eth" g2="k" k="23" /> +<hkern g1="Eth" g2="l" k="23" /> +<hkern g1="Eth" g2="x" k="16" /> +<hkern g1="Eth" g2="braceright" k="41" /> +<hkern g1="Eth" g2="Agrave" k="33" /> +<hkern g1="Eth" g2="Aacute" k="33" /> +<hkern g1="Eth" g2="Acircumflex" k="33" /> +<hkern g1="Eth" g2="Atilde" k="33" /> +<hkern g1="Eth" g2="Adieresis" k="33" /> +<hkern g1="Eth" g2="Aring" k="33" /> +<hkern g1="Eth" g2="AE" k="113" /> +<hkern g1="Eth" g2="Egrave" k="20" /> +<hkern g1="Eth" g2="Eacute" k="20" /> +<hkern g1="Eth" g2="Ecircumflex" k="20" /> +<hkern g1="Eth" g2="Edieresis" k="20" /> +<hkern g1="Eth" g2="Igrave" k="20" /> +<hkern g1="Eth" g2="Iacute" k="20" /> +<hkern g1="Eth" g2="Icircumflex" k="20" /> +<hkern g1="Eth" g2="Idieresis" k="20" /> +<hkern g1="Eth" g2="Eth" k="20" /> +<hkern g1="Eth" g2="Ntilde" k="20" /> +<hkern g1="Eth" g2="Ugrave" k="10" /> +<hkern g1="Eth" g2="Uacute" k="10" /> +<hkern g1="Eth" g2="Ucircumflex" k="10" /> +<hkern g1="Eth" g2="Udieresis" k="10" /> +<hkern g1="Eth" g2="Yacute" k="30" /> +<hkern g1="Eth" g2="Thorn" k="20" /> +<hkern g1="Eth" g2="agrave" k="10" /> +<hkern g1="Eth" g2="aacute" k="10" /> +<hkern g1="Eth" g2="acircumflex" k="10" /> +<hkern g1="Eth" g2="atilde" k="10" /> +<hkern g1="Eth" g2="adieresis" k="10" /> +<hkern g1="Eth" g2="aring" k="10" /> +<hkern g1="Eth" g2="ae" k="10" /> +<hkern g1="Eth" g2="thorn" k="10" /> +<hkern g1="Eth" g2="quoteleft" k="31" /> +<hkern g1="Eth" g2="quoteright" k="18" /> +<hkern g1="Eth" g2="quotesinglbase" k="49" /> +<hkern g1="Eth" g2="quotedblleft" k="31" /> +<hkern g1="Eth" g2="quotedblright" k="18" /> +<hkern g1="Eth" g2="quotedblbase" k="49" /> +<hkern g1="Ntilde" g2="comma" k="29" /> +<hkern g1="Ntilde" g2="hyphen" k="23" /> +<hkern g1="Ntilde" g2="period" k="29" /> +<hkern g1="Ntilde" g2="slash" k="78" /> +<hkern g1="Ntilde" g2="C" k="10" /> +<hkern g1="Ntilde" g2="a" k="10" /> +<hkern g1="Ntilde" g2="c" k="20" /> +<hkern g1="Ntilde" g2="d" k="20" /> +<hkern g1="Ntilde" g2="e" k="20" /> +<hkern g1="Ntilde" g2="f" k="10" /> +<hkern g1="Ntilde" g2="g" k="10" /> +<hkern g1="Ntilde" g2="o" k="20" /> +<hkern g1="Ntilde" g2="q" k="20" /> +<hkern g1="Ntilde" g2="s" k="15" /> +<hkern g1="Ntilde" g2="t" k="10" /> +<hkern g1="Ntilde" g2="v" k="15" /> +<hkern g1="Ntilde" g2="w" k="15" /> +<hkern g1="Ntilde" g2="x" k="10" /> +<hkern g1="Ntilde" g2="y" k="15" /> +<hkern g1="Ntilde" g2="z" k="20" /> +<hkern g1="Ntilde" g2="uni00AD" k="23" /> +<hkern g1="Ntilde" g2="germandbls" k="10" /> +<hkern g1="Ntilde" g2="agrave" k="10" /> +<hkern g1="Ntilde" g2="aacute" k="10" /> +<hkern g1="Ntilde" g2="acircumflex" k="10" /> +<hkern g1="Ntilde" g2="atilde" k="10" /> +<hkern g1="Ntilde" g2="adieresis" k="10" /> +<hkern g1="Ntilde" g2="aring" k="10" /> +<hkern g1="Ntilde" g2="ae" k="10" /> +<hkern g1="Ntilde" g2="ccedilla" k="20" /> +<hkern g1="Ntilde" g2="egrave" k="20" /> +<hkern g1="Ntilde" g2="eacute" k="20" /> +<hkern g1="Ntilde" g2="ecircumflex" k="20" /> +<hkern g1="Ntilde" g2="edieresis" k="20" /> +<hkern g1="Ntilde" g2="eth" k="41" /> +<hkern g1="Ntilde" g2="ograve" k="20" /> +<hkern g1="Ntilde" g2="oacute" k="20" /> +<hkern g1="Ntilde" g2="ocircumflex" k="20" /> +<hkern g1="Ntilde" g2="otilde" k="20" /> +<hkern g1="Ntilde" g2="odieresis" k="20" /> +<hkern g1="Ntilde" g2="oslash" k="20" /> +<hkern g1="Ntilde" g2="yacute" k="15" /> +<hkern g1="Ntilde" g2="ydieresis" k="15" /> +<hkern g1="Ntilde" g2="oe" k="20" /> +<hkern g1="Ntilde" g2="endash" k="23" /> +<hkern g1="Ntilde" g2="emdash" k="23" /> +<hkern g1="Ntilde" g2="quotesinglbase" k="29" /> +<hkern g1="Ntilde" g2="quotedblbase" k="29" /> +<hkern g1="Ograve" g2="parenright" k="70" /> +<hkern g1="Ograve" g2="comma" k="45" /> +<hkern g1="Ograve" g2="period" k="45" /> +<hkern g1="Ograve" g2="slash" k="115" /> +<hkern g1="Ograve" g2="A" k="27" /> +<hkern g1="Ograve" g2="B" k="18" /> +<hkern g1="Ograve" g2="D" k="18" /> +<hkern g1="Ograve" g2="E" k="18" /> +<hkern g1="Ograve" g2="F" k="18" /> +<hkern g1="Ograve" g2="H" k="18" /> +<hkern g1="Ograve" g2="I" k="18" /> +<hkern g1="Ograve" g2="J" k="45" /> +<hkern g1="Ograve" g2="K" k="18" /> +<hkern g1="Ograve" g2="L" k="18" /> +<hkern g1="Ograve" g2="M" k="10" /> +<hkern g1="Ograve" g2="N" k="18" /> +<hkern g1="Ograve" g2="P" k="18" /> +<hkern g1="Ograve" g2="R" k="18" /> +<hkern g1="Ograve" g2="T" k="45" /> +<hkern g1="Ograve" g2="U" k="10" /> +<hkern g1="Ograve" g2="V" k="25" /> +<hkern g1="Ograve" g2="W" k="30" /> +<hkern g1="Ograve" g2="X" k="50" /> +<hkern g1="Ograve" g2="Y" k="40" /> +<hkern g1="Ograve" g2="backslash" k="39" /> +<hkern g1="Ograve" g2="bracketright" k="74" /> +<hkern g1="Ograve" g2="c" k="10" /> +<hkern g1="Ograve" g2="d" k="10" /> +<hkern g1="Ograve" g2="e" k="10" /> +<hkern g1="Ograve" g2="g" k="10" /> +<hkern g1="Ograve" g2="o" k="10" /> +<hkern g1="Ograve" g2="q" k="10" /> +<hkern g1="Ograve" g2="x" k="15" /> +<hkern g1="Ograve" g2="braceright" k="41" /> +<hkern g1="Ograve" g2="Agrave" k="27" /> +<hkern g1="Ograve" g2="Aacute" k="27" /> +<hkern g1="Ograve" g2="Acircumflex" k="27" /> +<hkern g1="Ograve" g2="Atilde" k="27" /> +<hkern g1="Ograve" g2="Adieresis" k="27" /> +<hkern g1="Ograve" g2="Aring" k="27" /> +<hkern g1="Ograve" g2="AE" k="92" /> +<hkern g1="Ograve" g2="Egrave" k="18" /> +<hkern g1="Ograve" g2="Eacute" k="18" /> +<hkern g1="Ograve" g2="Ecircumflex" k="18" /> +<hkern g1="Ograve" g2="Edieresis" k="18" /> +<hkern g1="Ograve" g2="Igrave" k="18" /> +<hkern g1="Ograve" g2="Iacute" k="18" /> +<hkern g1="Ograve" g2="Icircumflex" k="18" /> +<hkern g1="Ograve" g2="Idieresis" k="18" /> +<hkern g1="Ograve" g2="Eth" k="18" /> +<hkern g1="Ograve" g2="Ntilde" k="18" /> +<hkern g1="Ograve" g2="Ugrave" k="10" /> +<hkern g1="Ograve" g2="Uacute" k="10" /> +<hkern g1="Ograve" g2="Ucircumflex" k="10" /> +<hkern g1="Ograve" g2="Udieresis" k="10" /> +<hkern g1="Ograve" g2="Yacute" k="40" /> +<hkern g1="Ograve" g2="Thorn" k="18" /> +<hkern g1="Ograve" g2="ccedilla" k="10" /> +<hkern g1="Ograve" g2="egrave" k="10" /> +<hkern g1="Ograve" g2="eacute" k="10" /> +<hkern g1="Ograve" g2="ecircumflex" k="10" /> +<hkern g1="Ograve" g2="edieresis" k="10" /> +<hkern g1="Ograve" g2="ograve" k="10" /> +<hkern g1="Ograve" g2="oacute" k="10" /> +<hkern g1="Ograve" g2="ocircumflex" k="10" /> +<hkern g1="Ograve" g2="otilde" k="10" /> +<hkern g1="Ograve" g2="odieresis" k="10" /> +<hkern g1="Ograve" g2="oslash" k="10" /> +<hkern g1="Ograve" g2="oe" k="10" /> +<hkern g1="Ograve" g2="quoteleft" k="31" /> +<hkern g1="Ograve" g2="quoteright" k="20" /> +<hkern g1="Ograve" g2="quotesinglbase" k="45" /> +<hkern g1="Ograve" g2="quotedblleft" k="31" /> +<hkern g1="Ograve" g2="quotedblright" k="20" /> +<hkern g1="Ograve" g2="quotedblbase" k="45" /> +<hkern g1="Oacute" g2="parenright" k="70" /> +<hkern g1="Oacute" g2="comma" k="45" /> +<hkern g1="Oacute" g2="period" k="45" /> +<hkern g1="Oacute" g2="slash" k="115" /> +<hkern g1="Oacute" g2="A" k="27" /> +<hkern g1="Oacute" g2="B" k="18" /> +<hkern g1="Oacute" g2="D" k="18" /> +<hkern g1="Oacute" g2="E" k="18" /> +<hkern g1="Oacute" g2="F" k="18" /> +<hkern g1="Oacute" g2="H" k="18" /> +<hkern g1="Oacute" g2="I" k="18" /> +<hkern g1="Oacute" g2="J" k="45" /> +<hkern g1="Oacute" g2="K" k="18" /> +<hkern g1="Oacute" g2="L" k="18" /> +<hkern g1="Oacute" g2="M" k="10" /> +<hkern g1="Oacute" g2="N" k="18" /> +<hkern g1="Oacute" g2="P" k="18" /> +<hkern g1="Oacute" g2="R" k="18" /> +<hkern g1="Oacute" g2="T" k="45" /> +<hkern g1="Oacute" g2="U" k="10" /> +<hkern g1="Oacute" g2="V" k="25" /> +<hkern g1="Oacute" g2="W" k="30" /> +<hkern g1="Oacute" g2="X" k="50" /> +<hkern g1="Oacute" g2="Y" k="40" /> +<hkern g1="Oacute" g2="backslash" k="39" /> +<hkern g1="Oacute" g2="bracketright" k="74" /> +<hkern g1="Oacute" g2="c" k="10" /> +<hkern g1="Oacute" g2="d" k="10" /> +<hkern g1="Oacute" g2="e" k="10" /> +<hkern g1="Oacute" g2="g" k="10" /> +<hkern g1="Oacute" g2="o" k="10" /> +<hkern g1="Oacute" g2="q" k="10" /> +<hkern g1="Oacute" g2="x" k="15" /> +<hkern g1="Oacute" g2="braceright" k="41" /> +<hkern g1="Oacute" g2="Agrave" k="27" /> +<hkern g1="Oacute" g2="Aacute" k="27" /> +<hkern g1="Oacute" g2="Acircumflex" k="27" /> +<hkern g1="Oacute" g2="Atilde" k="27" /> +<hkern g1="Oacute" g2="Adieresis" k="27" /> +<hkern g1="Oacute" g2="Aring" k="27" /> +<hkern g1="Oacute" g2="AE" k="92" /> +<hkern g1="Oacute" g2="Egrave" k="18" /> +<hkern g1="Oacute" g2="Eacute" k="18" /> +<hkern g1="Oacute" g2="Ecircumflex" k="18" /> +<hkern g1="Oacute" g2="Edieresis" k="18" /> +<hkern g1="Oacute" g2="Igrave" k="18" /> +<hkern g1="Oacute" g2="Iacute" k="18" /> +<hkern g1="Oacute" g2="Icircumflex" k="18" /> +<hkern g1="Oacute" g2="Idieresis" k="18" /> +<hkern g1="Oacute" g2="Eth" k="18" /> +<hkern g1="Oacute" g2="Ntilde" k="18" /> +<hkern g1="Oacute" g2="Ugrave" k="10" /> +<hkern g1="Oacute" g2="Uacute" k="10" /> +<hkern g1="Oacute" g2="Ucircumflex" k="10" /> +<hkern g1="Oacute" g2="Udieresis" k="10" /> +<hkern g1="Oacute" g2="Yacute" k="40" /> +<hkern g1="Oacute" g2="Thorn" k="18" /> +<hkern g1="Oacute" g2="ccedilla" k="10" /> +<hkern g1="Oacute" g2="egrave" k="10" /> +<hkern g1="Oacute" g2="eacute" k="10" /> +<hkern g1="Oacute" g2="ecircumflex" k="10" /> +<hkern g1="Oacute" g2="edieresis" k="10" /> +<hkern g1="Oacute" g2="ograve" k="10" /> +<hkern g1="Oacute" g2="oacute" k="10" /> +<hkern g1="Oacute" g2="ocircumflex" k="10" /> +<hkern g1="Oacute" g2="otilde" k="10" /> +<hkern g1="Oacute" g2="odieresis" k="10" /> +<hkern g1="Oacute" g2="oslash" k="10" /> +<hkern g1="Oacute" g2="oe" k="10" /> +<hkern g1="Oacute" g2="quoteleft" k="31" /> +<hkern g1="Oacute" g2="quoteright" k="20" /> +<hkern g1="Oacute" g2="quotesinglbase" k="45" /> +<hkern g1="Oacute" g2="quotedblleft" k="31" /> +<hkern g1="Oacute" g2="quotedblright" k="20" /> +<hkern g1="Oacute" g2="quotedblbase" k="45" /> +<hkern g1="Ocircumflex" g2="parenright" k="70" /> +<hkern g1="Ocircumflex" g2="comma" k="45" /> +<hkern g1="Ocircumflex" g2="period" k="45" /> +<hkern g1="Ocircumflex" g2="slash" k="115" /> +<hkern g1="Ocircumflex" g2="A" k="27" /> +<hkern g1="Ocircumflex" g2="B" k="18" /> +<hkern g1="Ocircumflex" g2="D" k="18" /> +<hkern g1="Ocircumflex" g2="E" k="18" /> +<hkern g1="Ocircumflex" g2="F" k="18" /> +<hkern g1="Ocircumflex" g2="H" k="18" /> +<hkern g1="Ocircumflex" g2="I" k="18" /> +<hkern g1="Ocircumflex" g2="J" k="45" /> +<hkern g1="Ocircumflex" g2="K" k="18" /> +<hkern g1="Ocircumflex" g2="L" k="18" /> +<hkern g1="Ocircumflex" g2="M" k="10" /> +<hkern g1="Ocircumflex" g2="N" k="18" /> +<hkern g1="Ocircumflex" g2="P" k="18" /> +<hkern g1="Ocircumflex" g2="R" k="18" /> +<hkern g1="Ocircumflex" g2="T" k="45" /> +<hkern g1="Ocircumflex" g2="U" k="10" /> +<hkern g1="Ocircumflex" g2="V" k="25" /> +<hkern g1="Ocircumflex" g2="W" k="30" /> +<hkern g1="Ocircumflex" g2="X" k="50" /> +<hkern g1="Ocircumflex" g2="Y" k="40" /> +<hkern g1="Ocircumflex" g2="backslash" k="39" /> +<hkern g1="Ocircumflex" g2="bracketright" k="74" /> +<hkern g1="Ocircumflex" g2="c" k="10" /> +<hkern g1="Ocircumflex" g2="d" k="10" /> +<hkern g1="Ocircumflex" g2="e" k="10" /> +<hkern g1="Ocircumflex" g2="g" k="10" /> +<hkern g1="Ocircumflex" g2="o" k="10" /> +<hkern g1="Ocircumflex" g2="q" k="10" /> +<hkern g1="Ocircumflex" g2="x" k="15" /> +<hkern g1="Ocircumflex" g2="braceright" k="41" /> +<hkern g1="Ocircumflex" g2="Agrave" k="27" /> +<hkern g1="Ocircumflex" g2="Aacute" k="27" /> +<hkern g1="Ocircumflex" g2="Acircumflex" k="27" /> +<hkern g1="Ocircumflex" g2="Atilde" k="27" /> +<hkern g1="Ocircumflex" g2="Adieresis" k="27" /> +<hkern g1="Ocircumflex" g2="Aring" k="27" /> +<hkern g1="Ocircumflex" g2="AE" k="92" /> +<hkern g1="Ocircumflex" g2="Egrave" k="18" /> +<hkern g1="Ocircumflex" g2="Eacute" k="18" /> +<hkern g1="Ocircumflex" g2="Ecircumflex" k="18" /> +<hkern g1="Ocircumflex" g2="Edieresis" k="18" /> +<hkern g1="Ocircumflex" g2="Igrave" k="18" /> +<hkern g1="Ocircumflex" g2="Iacute" k="18" /> +<hkern g1="Ocircumflex" g2="Icircumflex" k="18" /> +<hkern g1="Ocircumflex" g2="Idieresis" k="18" /> +<hkern g1="Ocircumflex" g2="Eth" k="18" /> +<hkern g1="Ocircumflex" g2="Ntilde" k="18" /> +<hkern g1="Ocircumflex" g2="Ugrave" k="10" /> +<hkern g1="Ocircumflex" g2="Uacute" k="10" /> +<hkern g1="Ocircumflex" g2="Ucircumflex" k="10" /> +<hkern g1="Ocircumflex" g2="Udieresis" k="10" /> +<hkern g1="Ocircumflex" g2="Yacute" k="40" /> +<hkern g1="Ocircumflex" g2="Thorn" k="18" /> +<hkern g1="Ocircumflex" g2="ccedilla" k="10" /> +<hkern g1="Ocircumflex" g2="egrave" k="10" /> +<hkern g1="Ocircumflex" g2="eacute" k="10" /> +<hkern g1="Ocircumflex" g2="ecircumflex" k="10" /> +<hkern g1="Ocircumflex" g2="edieresis" k="10" /> +<hkern g1="Ocircumflex" g2="ograve" k="10" /> +<hkern g1="Ocircumflex" g2="oacute" k="10" /> +<hkern g1="Ocircumflex" g2="ocircumflex" k="10" /> +<hkern g1="Ocircumflex" g2="otilde" k="10" /> +<hkern g1="Ocircumflex" g2="odieresis" k="10" /> +<hkern g1="Ocircumflex" g2="oslash" k="10" /> +<hkern g1="Ocircumflex" g2="oe" k="10" /> +<hkern g1="Ocircumflex" g2="quoteleft" k="31" /> +<hkern g1="Ocircumflex" g2="quoteright" k="20" /> +<hkern g1="Ocircumflex" g2="quotesinglbase" k="45" /> +<hkern g1="Ocircumflex" g2="quotedblleft" k="31" /> +<hkern g1="Ocircumflex" g2="quotedblright" k="20" /> +<hkern g1="Ocircumflex" g2="quotedblbase" k="45" /> +<hkern g1="Otilde" g2="parenright" k="70" /> +<hkern g1="Otilde" g2="comma" k="45" /> +<hkern g1="Otilde" g2="period" k="45" /> +<hkern g1="Otilde" g2="slash" k="115" /> +<hkern g1="Otilde" g2="A" k="27" /> +<hkern g1="Otilde" g2="B" k="18" /> +<hkern g1="Otilde" g2="D" k="18" /> +<hkern g1="Otilde" g2="E" k="18" /> +<hkern g1="Otilde" g2="F" k="18" /> +<hkern g1="Otilde" g2="H" k="18" /> +<hkern g1="Otilde" g2="I" k="18" /> +<hkern g1="Otilde" g2="J" k="45" /> +<hkern g1="Otilde" g2="K" k="18" /> +<hkern g1="Otilde" g2="L" k="18" /> +<hkern g1="Otilde" g2="M" k="10" /> +<hkern g1="Otilde" g2="N" k="18" /> +<hkern g1="Otilde" g2="P" k="18" /> +<hkern g1="Otilde" g2="R" k="18" /> +<hkern g1="Otilde" g2="T" k="45" /> +<hkern g1="Otilde" g2="U" k="10" /> +<hkern g1="Otilde" g2="V" k="25" /> +<hkern g1="Otilde" g2="W" k="30" /> +<hkern g1="Otilde" g2="X" k="50" /> +<hkern g1="Otilde" g2="Y" k="40" /> +<hkern g1="Otilde" g2="backslash" k="39" /> +<hkern g1="Otilde" g2="bracketright" k="74" /> +<hkern g1="Otilde" g2="c" k="10" /> +<hkern g1="Otilde" g2="d" k="10" /> +<hkern g1="Otilde" g2="e" k="10" /> +<hkern g1="Otilde" g2="g" k="10" /> +<hkern g1="Otilde" g2="o" k="10" /> +<hkern g1="Otilde" g2="q" k="10" /> +<hkern g1="Otilde" g2="x" k="15" /> +<hkern g1="Otilde" g2="braceright" k="41" /> +<hkern g1="Otilde" g2="Agrave" k="27" /> +<hkern g1="Otilde" g2="Aacute" k="27" /> +<hkern g1="Otilde" g2="Acircumflex" k="27" /> +<hkern g1="Otilde" g2="Atilde" k="27" /> +<hkern g1="Otilde" g2="Adieresis" k="27" /> +<hkern g1="Otilde" g2="Aring" k="27" /> +<hkern g1="Otilde" g2="AE" k="92" /> +<hkern g1="Otilde" g2="Egrave" k="18" /> +<hkern g1="Otilde" g2="Eacute" k="18" /> +<hkern g1="Otilde" g2="Ecircumflex" k="18" /> +<hkern g1="Otilde" g2="Edieresis" k="18" /> +<hkern g1="Otilde" g2="Igrave" k="18" /> +<hkern g1="Otilde" g2="Iacute" k="18" /> +<hkern g1="Otilde" g2="Icircumflex" k="18" /> +<hkern g1="Otilde" g2="Idieresis" k="18" /> +<hkern g1="Otilde" g2="Eth" k="18" /> +<hkern g1="Otilde" g2="Ntilde" k="18" /> +<hkern g1="Otilde" g2="Ugrave" k="10" /> +<hkern g1="Otilde" g2="Uacute" k="10" /> +<hkern g1="Otilde" g2="Ucircumflex" k="10" /> +<hkern g1="Otilde" g2="Udieresis" k="10" /> +<hkern g1="Otilde" g2="Yacute" k="40" /> +<hkern g1="Otilde" g2="Thorn" k="18" /> +<hkern g1="Otilde" g2="ccedilla" k="10" /> +<hkern g1="Otilde" g2="egrave" k="10" /> +<hkern g1="Otilde" g2="eacute" k="10" /> +<hkern g1="Otilde" g2="ecircumflex" k="10" /> +<hkern g1="Otilde" g2="edieresis" k="10" /> +<hkern g1="Otilde" g2="ograve" k="10" /> +<hkern g1="Otilde" g2="oacute" k="10" /> +<hkern g1="Otilde" g2="ocircumflex" k="10" /> +<hkern g1="Otilde" g2="otilde" k="10" /> +<hkern g1="Otilde" g2="odieresis" k="10" /> +<hkern g1="Otilde" g2="oslash" k="10" /> +<hkern g1="Otilde" g2="oe" k="10" /> +<hkern g1="Otilde" g2="quoteleft" k="31" /> +<hkern g1="Otilde" g2="quoteright" k="20" /> +<hkern g1="Otilde" g2="quotesinglbase" k="45" /> +<hkern g1="Otilde" g2="quotedblleft" k="31" /> +<hkern g1="Otilde" g2="quotedblright" k="20" /> +<hkern g1="Otilde" g2="quotedblbase" k="45" /> +<hkern g1="Odieresis" g2="parenright" k="70" /> +<hkern g1="Odieresis" g2="comma" k="45" /> +<hkern g1="Odieresis" g2="period" k="45" /> +<hkern g1="Odieresis" g2="slash" k="115" /> +<hkern g1="Odieresis" g2="A" k="27" /> +<hkern g1="Odieresis" g2="B" k="18" /> +<hkern g1="Odieresis" g2="D" k="18" /> +<hkern g1="Odieresis" g2="E" k="18" /> +<hkern g1="Odieresis" g2="F" k="18" /> +<hkern g1="Odieresis" g2="H" k="18" /> +<hkern g1="Odieresis" g2="I" k="18" /> +<hkern g1="Odieresis" g2="J" k="45" /> +<hkern g1="Odieresis" g2="K" k="18" /> +<hkern g1="Odieresis" g2="L" k="18" /> +<hkern g1="Odieresis" g2="M" k="10" /> +<hkern g1="Odieresis" g2="N" k="18" /> +<hkern g1="Odieresis" g2="P" k="18" /> +<hkern g1="Odieresis" g2="R" k="18" /> +<hkern g1="Odieresis" g2="T" k="45" /> +<hkern g1="Odieresis" g2="U" k="10" /> +<hkern g1="Odieresis" g2="V" k="25" /> +<hkern g1="Odieresis" g2="W" k="30" /> +<hkern g1="Odieresis" g2="X" k="50" /> +<hkern g1="Odieresis" g2="Y" k="40" /> +<hkern g1="Odieresis" g2="backslash" k="39" /> +<hkern g1="Odieresis" g2="bracketright" k="74" /> +<hkern g1="Odieresis" g2="c" k="10" /> +<hkern g1="Odieresis" g2="d" k="10" /> +<hkern g1="Odieresis" g2="e" k="10" /> +<hkern g1="Odieresis" g2="g" k="10" /> +<hkern g1="Odieresis" g2="o" k="10" /> +<hkern g1="Odieresis" g2="q" k="10" /> +<hkern g1="Odieresis" g2="x" k="15" /> +<hkern g1="Odieresis" g2="braceright" k="41" /> +<hkern g1="Odieresis" g2="Agrave" k="27" /> +<hkern g1="Odieresis" g2="Aacute" k="27" /> +<hkern g1="Odieresis" g2="Acircumflex" k="27" /> +<hkern g1="Odieresis" g2="Atilde" k="27" /> +<hkern g1="Odieresis" g2="Adieresis" k="27" /> +<hkern g1="Odieresis" g2="Aring" k="27" /> +<hkern g1="Odieresis" g2="AE" k="92" /> +<hkern g1="Odieresis" g2="Egrave" k="18" /> +<hkern g1="Odieresis" g2="Eacute" k="18" /> +<hkern g1="Odieresis" g2="Ecircumflex" k="18" /> +<hkern g1="Odieresis" g2="Edieresis" k="18" /> +<hkern g1="Odieresis" g2="Igrave" k="18" /> +<hkern g1="Odieresis" g2="Iacute" k="18" /> +<hkern g1="Odieresis" g2="Icircumflex" k="18" /> +<hkern g1="Odieresis" g2="Idieresis" k="18" /> +<hkern g1="Odieresis" g2="Eth" k="18" /> +<hkern g1="Odieresis" g2="Ntilde" k="18" /> +<hkern g1="Odieresis" g2="Ugrave" k="10" /> +<hkern g1="Odieresis" g2="Uacute" k="10" /> +<hkern g1="Odieresis" g2="Ucircumflex" k="10" /> +<hkern g1="Odieresis" g2="Udieresis" k="10" /> +<hkern g1="Odieresis" g2="Yacute" k="40" /> +<hkern g1="Odieresis" g2="Thorn" k="18" /> +<hkern g1="Odieresis" g2="ccedilla" k="10" /> +<hkern g1="Odieresis" g2="egrave" k="10" /> +<hkern g1="Odieresis" g2="eacute" k="10" /> +<hkern g1="Odieresis" g2="ecircumflex" k="10" /> +<hkern g1="Odieresis" g2="edieresis" k="10" /> +<hkern g1="Odieresis" g2="ograve" k="10" /> +<hkern g1="Odieresis" g2="oacute" k="10" /> +<hkern g1="Odieresis" g2="ocircumflex" k="10" /> +<hkern g1="Odieresis" g2="otilde" k="10" /> +<hkern g1="Odieresis" g2="odieresis" k="10" /> +<hkern g1="Odieresis" g2="oslash" k="10" /> +<hkern g1="Odieresis" g2="oe" k="10" /> +<hkern g1="Odieresis" g2="quoteleft" k="31" /> +<hkern g1="Odieresis" g2="quoteright" k="20" /> +<hkern g1="Odieresis" g2="quotesinglbase" k="45" /> +<hkern g1="Odieresis" g2="quotedblleft" k="31" /> +<hkern g1="Odieresis" g2="quotedblright" k="20" /> +<hkern g1="Odieresis" g2="quotedblbase" k="45" /> +<hkern g1="Oslash" g2="parenright" k="70" /> +<hkern g1="Oslash" g2="comma" k="45" /> +<hkern g1="Oslash" g2="period" k="45" /> +<hkern g1="Oslash" g2="slash" k="115" /> +<hkern g1="Oslash" g2="A" k="27" /> +<hkern g1="Oslash" g2="B" k="18" /> +<hkern g1="Oslash" g2="D" k="18" /> +<hkern g1="Oslash" g2="E" k="18" /> +<hkern g1="Oslash" g2="F" k="18" /> +<hkern g1="Oslash" g2="H" k="18" /> +<hkern g1="Oslash" g2="I" k="18" /> +<hkern g1="Oslash" g2="J" k="45" /> +<hkern g1="Oslash" g2="K" k="18" /> +<hkern g1="Oslash" g2="L" k="18" /> +<hkern g1="Oslash" g2="M" k="10" /> +<hkern g1="Oslash" g2="N" k="18" /> +<hkern g1="Oslash" g2="P" k="18" /> +<hkern g1="Oslash" g2="R" k="18" /> +<hkern g1="Oslash" g2="T" k="45" /> +<hkern g1="Oslash" g2="U" k="10" /> +<hkern g1="Oslash" g2="V" k="25" /> +<hkern g1="Oslash" g2="W" k="30" /> +<hkern g1="Oslash" g2="X" k="50" /> +<hkern g1="Oslash" g2="Y" k="40" /> +<hkern g1="Oslash" g2="backslash" k="39" /> +<hkern g1="Oslash" g2="bracketright" k="74" /> +<hkern g1="Oslash" g2="c" k="10" /> +<hkern g1="Oslash" g2="d" k="10" /> +<hkern g1="Oslash" g2="e" k="10" /> +<hkern g1="Oslash" g2="g" k="10" /> +<hkern g1="Oslash" g2="o" k="10" /> +<hkern g1="Oslash" g2="q" k="10" /> +<hkern g1="Oslash" g2="x" k="15" /> +<hkern g1="Oslash" g2="braceright" k="41" /> +<hkern g1="Oslash" g2="Agrave" k="27" /> +<hkern g1="Oslash" g2="Aacute" k="27" /> +<hkern g1="Oslash" g2="Acircumflex" k="27" /> +<hkern g1="Oslash" g2="Atilde" k="27" /> +<hkern g1="Oslash" g2="Adieresis" k="27" /> +<hkern g1="Oslash" g2="Aring" k="27" /> +<hkern g1="Oslash" g2="AE" k="92" /> +<hkern g1="Oslash" g2="Egrave" k="18" /> +<hkern g1="Oslash" g2="Eacute" k="18" /> +<hkern g1="Oslash" g2="Ecircumflex" k="18" /> +<hkern g1="Oslash" g2="Edieresis" k="18" /> +<hkern g1="Oslash" g2="Igrave" k="18" /> +<hkern g1="Oslash" g2="Iacute" k="18" /> +<hkern g1="Oslash" g2="Icircumflex" k="18" /> +<hkern g1="Oslash" g2="Idieresis" k="18" /> +<hkern g1="Oslash" g2="Eth" k="18" /> +<hkern g1="Oslash" g2="Ntilde" k="18" /> +<hkern g1="Oslash" g2="Ugrave" k="10" /> +<hkern g1="Oslash" g2="Uacute" k="10" /> +<hkern g1="Oslash" g2="Ucircumflex" k="10" /> +<hkern g1="Oslash" g2="Udieresis" k="10" /> +<hkern g1="Oslash" g2="Yacute" k="40" /> +<hkern g1="Oslash" g2="Thorn" k="18" /> +<hkern g1="Oslash" g2="ccedilla" k="10" /> +<hkern g1="Oslash" g2="egrave" k="10" /> +<hkern g1="Oslash" g2="eacute" k="10" /> +<hkern g1="Oslash" g2="ecircumflex" k="10" /> +<hkern g1="Oslash" g2="edieresis" k="10" /> +<hkern g1="Oslash" g2="ograve" k="10" /> +<hkern g1="Oslash" g2="oacute" k="10" /> +<hkern g1="Oslash" g2="ocircumflex" k="10" /> +<hkern g1="Oslash" g2="otilde" k="10" /> +<hkern g1="Oslash" g2="odieresis" k="10" /> +<hkern g1="Oslash" g2="oslash" k="10" /> +<hkern g1="Oslash" g2="oe" k="10" /> +<hkern g1="Oslash" g2="quoteleft" k="31" /> +<hkern g1="Oslash" g2="quoteright" k="20" /> +<hkern g1="Oslash" g2="quotesinglbase" k="45" /> +<hkern g1="Oslash" g2="quotedblleft" k="31" /> +<hkern g1="Oslash" g2="quotedblright" k="20" /> +<hkern g1="Oslash" g2="quotedblbase" k="45" /> +<hkern g1="Ugrave" g2="comma" k="80" /> +<hkern g1="Ugrave" g2="hyphen" k="18" /> +<hkern g1="Ugrave" g2="period" k="59" /> +<hkern g1="Ugrave" g2="slash" k="133" /> +<hkern g1="Ugrave" g2="semicolon" k="16" /> +<hkern g1="Ugrave" g2="A" k="50" /> +<hkern g1="Ugrave" g2="C" k="12" /> +<hkern g1="Ugrave" g2="G" k="20" /> +<hkern g1="Ugrave" g2="O" k="12" /> +<hkern g1="Ugrave" g2="Q" k="12" /> +<hkern g1="Ugrave" g2="a" k="50" /> +<hkern g1="Ugrave" g2="c" k="40" /> +<hkern g1="Ugrave" g2="d" k="40" /> +<hkern g1="Ugrave" g2="e" k="40" /> +<hkern g1="Ugrave" g2="f" k="20" /> +<hkern g1="Ugrave" g2="g" k="57" /> +<hkern g1="Ugrave" g2="q" k="30" /> +<hkern g1="Ugrave" g2="s" k="15" /> +<hkern g1="Ugrave" g2="t" k="10" /> +<hkern g1="Ugrave" g2="v" k="10" /> +<hkern g1="Ugrave" g2="w" k="10" /> +<hkern g1="Ugrave" g2="x" k="10" /> +<hkern g1="Ugrave" g2="y" k="10" /> +<hkern g1="Ugrave" g2="z" k="45" /> +<hkern g1="Ugrave" g2="uni00AD" k="18" /> +<hkern g1="Ugrave" g2="Agrave" k="50" /> +<hkern g1="Ugrave" g2="Aacute" k="50" /> +<hkern g1="Ugrave" g2="Acircumflex" k="50" /> +<hkern g1="Ugrave" g2="Atilde" k="50" /> +<hkern g1="Ugrave" g2="Adieresis" k="50" /> +<hkern g1="Ugrave" g2="Aring" k="50" /> +<hkern g1="Ugrave" g2="AE" k="80" /> +<hkern g1="Ugrave" g2="Ccedilla" k="12" /> +<hkern g1="Ugrave" g2="Ograve" k="12" /> +<hkern g1="Ugrave" g2="Oacute" k="12" /> +<hkern g1="Ugrave" g2="Ocircumflex" k="12" /> +<hkern g1="Ugrave" g2="Otilde" k="12" /> +<hkern g1="Ugrave" g2="Odieresis" k="12" /> +<hkern g1="Ugrave" g2="Oslash" k="12" /> +<hkern g1="Ugrave" g2="germandbls" k="20" /> +<hkern g1="Ugrave" g2="agrave" k="50" /> +<hkern g1="Ugrave" g2="aacute" k="50" /> +<hkern g1="Ugrave" g2="acircumflex" k="50" /> +<hkern g1="Ugrave" g2="atilde" k="50" /> +<hkern g1="Ugrave" g2="adieresis" k="50" /> +<hkern g1="Ugrave" g2="aring" k="50" /> +<hkern g1="Ugrave" g2="ae" k="50" /> +<hkern g1="Ugrave" g2="eth" k="47" /> +<hkern g1="Ugrave" g2="yacute" k="10" /> +<hkern g1="Ugrave" g2="ydieresis" k="10" /> +<hkern g1="Ugrave" g2="OE" k="12" /> +<hkern g1="Ugrave" g2="endash" k="18" /> +<hkern g1="Ugrave" g2="emdash" k="18" /> +<hkern g1="Ugrave" g2="quotesinglbase" k="59" /> +<hkern g1="Ugrave" g2="quotedblbase" k="59" /> +<hkern g1="Uacute" g2="comma" k="80" /> +<hkern g1="Uacute" g2="hyphen" k="18" /> +<hkern g1="Uacute" g2="period" k="59" /> +<hkern g1="Uacute" g2="slash" k="133" /> +<hkern g1="Uacute" g2="semicolon" k="16" /> +<hkern g1="Uacute" g2="A" k="50" /> +<hkern g1="Uacute" g2="C" k="12" /> +<hkern g1="Uacute" g2="G" k="20" /> +<hkern g1="Uacute" g2="O" k="12" /> +<hkern g1="Uacute" g2="Q" k="12" /> +<hkern g1="Uacute" g2="a" k="50" /> +<hkern g1="Uacute" g2="c" k="40" /> +<hkern g1="Uacute" g2="d" k="40" /> +<hkern g1="Uacute" g2="e" k="40" /> +<hkern g1="Uacute" g2="f" k="20" /> +<hkern g1="Uacute" g2="g" k="57" /> +<hkern g1="Uacute" g2="q" k="30" /> +<hkern g1="Uacute" g2="s" k="15" /> +<hkern g1="Uacute" g2="t" k="10" /> +<hkern g1="Uacute" g2="v" k="10" /> +<hkern g1="Uacute" g2="w" k="10" /> +<hkern g1="Uacute" g2="x" k="10" /> +<hkern g1="Uacute" g2="y" k="10" /> +<hkern g1="Uacute" g2="z" k="45" /> +<hkern g1="Uacute" g2="uni00AD" k="18" /> +<hkern g1="Uacute" g2="Agrave" k="50" /> +<hkern g1="Uacute" g2="Aacute" k="50" /> +<hkern g1="Uacute" g2="Acircumflex" k="50" /> +<hkern g1="Uacute" g2="Atilde" k="50" /> +<hkern g1="Uacute" g2="Adieresis" k="50" /> +<hkern g1="Uacute" g2="Aring" k="50" /> +<hkern g1="Uacute" g2="AE" k="80" /> +<hkern g1="Uacute" g2="Ccedilla" k="12" /> +<hkern g1="Uacute" g2="Ograve" k="12" /> +<hkern g1="Uacute" g2="Oacute" k="12" /> +<hkern g1="Uacute" g2="Ocircumflex" k="12" /> +<hkern g1="Uacute" g2="Otilde" k="12" /> +<hkern g1="Uacute" g2="Odieresis" k="12" /> +<hkern g1="Uacute" g2="Oslash" k="12" /> +<hkern g1="Uacute" g2="germandbls" k="20" /> +<hkern g1="Uacute" g2="agrave" k="50" /> +<hkern g1="Uacute" g2="aacute" k="50" /> +<hkern g1="Uacute" g2="acircumflex" k="50" /> +<hkern g1="Uacute" g2="atilde" k="50" /> +<hkern g1="Uacute" g2="adieresis" k="50" /> +<hkern g1="Uacute" g2="aring" k="50" /> +<hkern g1="Uacute" g2="ae" k="50" /> +<hkern g1="Uacute" g2="eth" k="47" /> +<hkern g1="Uacute" g2="yacute" k="10" /> +<hkern g1="Uacute" g2="ydieresis" k="10" /> +<hkern g1="Uacute" g2="OE" k="12" /> +<hkern g1="Uacute" g2="endash" k="18" /> +<hkern g1="Uacute" g2="emdash" k="18" /> +<hkern g1="Uacute" g2="quotesinglbase" k="59" /> +<hkern g1="Uacute" g2="quotedblbase" k="59" /> +<hkern g1="Ucircumflex" g2="comma" k="80" /> +<hkern g1="Ucircumflex" g2="hyphen" k="18" /> +<hkern g1="Ucircumflex" g2="period" k="59" /> +<hkern g1="Ucircumflex" g2="slash" k="133" /> +<hkern g1="Ucircumflex" g2="semicolon" k="16" /> +<hkern g1="Ucircumflex" g2="A" k="50" /> +<hkern g1="Ucircumflex" g2="C" k="12" /> +<hkern g1="Ucircumflex" g2="G" k="20" /> +<hkern g1="Ucircumflex" g2="O" k="12" /> +<hkern g1="Ucircumflex" g2="Q" k="12" /> +<hkern g1="Ucircumflex" g2="a" k="50" /> +<hkern g1="Ucircumflex" g2="c" k="40" /> +<hkern g1="Ucircumflex" g2="d" k="40" /> +<hkern g1="Ucircumflex" g2="e" k="40" /> +<hkern g1="Ucircumflex" g2="f" k="20" /> +<hkern g1="Ucircumflex" g2="g" k="57" /> +<hkern g1="Ucircumflex" g2="q" k="30" /> +<hkern g1="Ucircumflex" g2="s" k="15" /> +<hkern g1="Ucircumflex" g2="t" k="10" /> +<hkern g1="Ucircumflex" g2="v" k="10" /> +<hkern g1="Ucircumflex" g2="w" k="10" /> +<hkern g1="Ucircumflex" g2="x" k="10" /> +<hkern g1="Ucircumflex" g2="y" k="10" /> +<hkern g1="Ucircumflex" g2="z" k="45" /> +<hkern g1="Ucircumflex" g2="uni00AD" k="18" /> +<hkern g1="Ucircumflex" g2="Agrave" k="50" /> +<hkern g1="Ucircumflex" g2="Aacute" k="50" /> +<hkern g1="Ucircumflex" g2="Acircumflex" k="50" /> +<hkern g1="Ucircumflex" g2="Atilde" k="50" /> +<hkern g1="Ucircumflex" g2="Adieresis" k="50" /> +<hkern g1="Ucircumflex" g2="Aring" k="50" /> +<hkern g1="Ucircumflex" g2="AE" k="80" /> +<hkern g1="Ucircumflex" g2="Ccedilla" k="12" /> +<hkern g1="Ucircumflex" g2="Ograve" k="12" /> +<hkern g1="Ucircumflex" g2="Oacute" k="12" /> +<hkern g1="Ucircumflex" g2="Ocircumflex" k="12" /> +<hkern g1="Ucircumflex" g2="Otilde" k="12" /> +<hkern g1="Ucircumflex" g2="Odieresis" k="12" /> +<hkern g1="Ucircumflex" g2="Oslash" k="12" /> +<hkern g1="Ucircumflex" g2="germandbls" k="20" /> +<hkern g1="Ucircumflex" g2="agrave" k="50" /> +<hkern g1="Ucircumflex" g2="aacute" k="50" /> +<hkern g1="Ucircumflex" g2="acircumflex" k="50" /> +<hkern g1="Ucircumflex" g2="atilde" k="50" /> +<hkern g1="Ucircumflex" g2="adieresis" k="50" /> +<hkern g1="Ucircumflex" g2="aring" k="50" /> +<hkern g1="Ucircumflex" g2="ae" k="50" /> +<hkern g1="Ucircumflex" g2="eth" k="47" /> +<hkern g1="Ucircumflex" g2="yacute" k="10" /> +<hkern g1="Ucircumflex" g2="ydieresis" k="10" /> +<hkern g1="Ucircumflex" g2="OE" k="12" /> +<hkern g1="Ucircumflex" g2="endash" k="18" /> +<hkern g1="Ucircumflex" g2="emdash" k="18" /> +<hkern g1="Ucircumflex" g2="quotesinglbase" k="59" /> +<hkern g1="Ucircumflex" g2="quotedblbase" k="59" /> +<hkern g1="Udieresis" g2="comma" k="80" /> +<hkern g1="Udieresis" g2="hyphen" k="18" /> +<hkern g1="Udieresis" g2="period" k="59" /> +<hkern g1="Udieresis" g2="slash" k="133" /> +<hkern g1="Udieresis" g2="semicolon" k="16" /> +<hkern g1="Udieresis" g2="A" k="50" /> +<hkern g1="Udieresis" g2="C" k="12" /> +<hkern g1="Udieresis" g2="G" k="20" /> +<hkern g1="Udieresis" g2="O" k="12" /> +<hkern g1="Udieresis" g2="Q" k="12" /> +<hkern g1="Udieresis" g2="a" k="50" /> +<hkern g1="Udieresis" g2="c" k="40" /> +<hkern g1="Udieresis" g2="d" k="40" /> +<hkern g1="Udieresis" g2="e" k="40" /> +<hkern g1="Udieresis" g2="f" k="20" /> +<hkern g1="Udieresis" g2="g" k="57" /> +<hkern g1="Udieresis" g2="q" k="30" /> +<hkern g1="Udieresis" g2="s" k="15" /> +<hkern g1="Udieresis" g2="t" k="10" /> +<hkern g1="Udieresis" g2="v" k="10" /> +<hkern g1="Udieresis" g2="w" k="10" /> +<hkern g1="Udieresis" g2="x" k="10" /> +<hkern g1="Udieresis" g2="y" k="10" /> +<hkern g1="Udieresis" g2="z" k="45" /> +<hkern g1="Udieresis" g2="uni00AD" k="18" /> +<hkern g1="Udieresis" g2="Agrave" k="50" /> +<hkern g1="Udieresis" g2="Aacute" k="50" /> +<hkern g1="Udieresis" g2="Acircumflex" k="50" /> +<hkern g1="Udieresis" g2="Atilde" k="50" /> +<hkern g1="Udieresis" g2="Adieresis" k="50" /> +<hkern g1="Udieresis" g2="Aring" k="50" /> +<hkern g1="Udieresis" g2="AE" k="80" /> +<hkern g1="Udieresis" g2="Ccedilla" k="12" /> +<hkern g1="Udieresis" g2="Ograve" k="12" /> +<hkern g1="Udieresis" g2="Oacute" k="12" /> +<hkern g1="Udieresis" g2="Ocircumflex" k="12" /> +<hkern g1="Udieresis" g2="Otilde" k="12" /> +<hkern g1="Udieresis" g2="Odieresis" k="12" /> +<hkern g1="Udieresis" g2="Oslash" k="12" /> +<hkern g1="Udieresis" g2="germandbls" k="20" /> +<hkern g1="Udieresis" g2="agrave" k="50" /> +<hkern g1="Udieresis" g2="aacute" k="50" /> +<hkern g1="Udieresis" g2="acircumflex" k="50" /> +<hkern g1="Udieresis" g2="atilde" k="50" /> +<hkern g1="Udieresis" g2="adieresis" k="50" /> +<hkern g1="Udieresis" g2="aring" k="50" /> +<hkern g1="Udieresis" g2="ae" k="50" /> +<hkern g1="Udieresis" g2="eth" k="47" /> +<hkern g1="Udieresis" g2="yacute" k="10" /> +<hkern g1="Udieresis" g2="ydieresis" k="10" /> +<hkern g1="Udieresis" g2="OE" k="12" /> +<hkern g1="Udieresis" g2="endash" k="18" /> +<hkern g1="Udieresis" g2="emdash" k="18" /> +<hkern g1="Udieresis" g2="quotesinglbase" k="59" /> +<hkern g1="Udieresis" g2="quotedblbase" k="59" /> +<hkern g1="Yacute" g2="ampersand" k="29" /> +<hkern g1="Yacute" g2="asterisk" k="23" /> +<hkern g1="Yacute" g2="comma" k="96" /> +<hkern g1="Yacute" g2="hyphen" k="115" /> +<hkern g1="Yacute" g2="period" k="110" /> +<hkern g1="Yacute" g2="slash" k="143" /> +<hkern g1="Yacute" g2="zero" k="23" /> +<hkern g1="Yacute" g2="four" k="80" /> +<hkern g1="Yacute" g2="six" k="27" /> +<hkern g1="Yacute" g2="seven" k="-53" /> +<hkern g1="Yacute" g2="colon" k="55" /> +<hkern g1="Yacute" g2="semicolon" k="57" /> +<hkern g1="Yacute" g2="at" k="72" /> +<hkern g1="Yacute" g2="A" k="70" /> +<hkern g1="Yacute" g2="C" k="30" /> +<hkern g1="Yacute" g2="G" k="30" /> +<hkern g1="Yacute" g2="O" k="40" /> +<hkern g1="Yacute" g2="Q" k="30" /> +<hkern g1="Yacute" g2="T" k="-45" /> +<hkern g1="Yacute" g2="V" k="-110" /> +<hkern g1="Yacute" g2="W" k="-80" /> +<hkern g1="Yacute" g2="X" k="-55" /> +<hkern g1="Yacute" g2="Y" k="-120" /> +<hkern g1="Yacute" g2="backslash" k="-20" /> +<hkern g1="Yacute" g2="bracketright" k="-70" /> +<hkern g1="Yacute" g2="a" k="100" /> +<hkern g1="Yacute" g2="b" k="-63" /> +<hkern g1="Yacute" g2="c" k="100" /> +<hkern g1="Yacute" g2="d" k="100" /> +<hkern g1="Yacute" g2="e" k="100" /> +<hkern g1="Yacute" g2="f" k="33" /> +<hkern g1="Yacute" g2="g" k="120" /> +<hkern g1="Yacute" g2="h" k="-45" /> +<hkern g1="Yacute" g2="i" k="12" /> +<hkern g1="Yacute" g2="k" k="-45" /> +<hkern g1="Yacute" g2="l" k="-31" /> +<hkern g1="Yacute" g2="m" k="100" /> +<hkern g1="Yacute" g2="n" k="100" /> +<hkern g1="Yacute" g2="o" k="144" /> +<hkern g1="Yacute" g2="p" k="100" /> +<hkern g1="Yacute" g2="q" k="100" /> +<hkern g1="Yacute" g2="r" k="100" /> +<hkern g1="Yacute" g2="s" k="135" /> +<hkern g1="Yacute" g2="t" k="60" /> +<hkern g1="Yacute" g2="u" k="100" /> +<hkern g1="Yacute" g2="v" k="80" /> +<hkern g1="Yacute" g2="w" k="80" /> +<hkern g1="Yacute" g2="x" k="100" /> +<hkern g1="Yacute" g2="y" k="80" /> +<hkern g1="Yacute" g2="z" k="100" /> +<hkern g1="Yacute" g2="braceright" k="-27" /> +<hkern g1="Yacute" g2="guillemotleft" k="106" /> +<hkern g1="Yacute" g2="uni00AD" k="115" /> +<hkern g1="Yacute" g2="registered" k="33" /> +<hkern g1="Yacute" g2="guillemotright" k="43" /> +<hkern g1="Yacute" g2="Agrave" k="70" /> +<hkern g1="Yacute" g2="Aacute" k="70" /> +<hkern g1="Yacute" g2="Acircumflex" k="70" /> +<hkern g1="Yacute" g2="Atilde" k="70" /> +<hkern g1="Yacute" g2="Adieresis" k="70" /> +<hkern g1="Yacute" g2="Aring" k="70" /> +<hkern g1="Yacute" g2="AE" k="111" /> +<hkern g1="Yacute" g2="Ccedilla" k="40" /> +<hkern g1="Yacute" g2="Ograve" k="40" /> +<hkern g1="Yacute" g2="Oacute" k="40" /> +<hkern g1="Yacute" g2="Ocircumflex" k="40" /> +<hkern g1="Yacute" g2="Otilde" k="40" /> +<hkern g1="Yacute" g2="Odieresis" k="40" /> +<hkern g1="Yacute" g2="Oslash" k="40" /> +<hkern g1="Yacute" g2="Yacute" k="-120" /> +<hkern g1="Yacute" g2="germandbls" k="33" /> +<hkern g1="Yacute" g2="agrave" k="100" /> +<hkern g1="Yacute" g2="aacute" k="100" /> +<hkern g1="Yacute" g2="acircumflex" k="100" /> +<hkern g1="Yacute" g2="atilde" k="100" /> +<hkern g1="Yacute" g2="adieresis" k="145" /> +<hkern g1="Yacute" g2="aring" k="100" /> +<hkern g1="Yacute" g2="ae" k="100" /> +<hkern g1="Yacute" g2="ccedilla" k="144" /> +<hkern g1="Yacute" g2="egrave" k="144" /> +<hkern g1="Yacute" g2="eacute" k="144" /> +<hkern g1="Yacute" g2="ecircumflex" k="144" /> +<hkern g1="Yacute" g2="edieresis" k="144" /> +<hkern g1="Yacute" g2="igrave" k="-57" /> +<hkern g1="Yacute" g2="iacute" k="12" /> +<hkern g1="Yacute" g2="icircumflex" k="12" /> +<hkern g1="Yacute" g2="idieresis" k="-43" /> +<hkern g1="Yacute" g2="eth" k="102" /> +<hkern g1="Yacute" g2="ntilde" k="100" /> +<hkern g1="Yacute" g2="ograve" k="144" /> +<hkern g1="Yacute" g2="oacute" k="144" /> +<hkern g1="Yacute" g2="ocircumflex" k="144" /> +<hkern g1="Yacute" g2="otilde" k="144" /> +<hkern g1="Yacute" g2="odieresis" k="144" /> +<hkern g1="Yacute" g2="oslash" k="144" /> +<hkern g1="Yacute" g2="ugrave" k="100" /> +<hkern g1="Yacute" g2="uacute" k="100" /> +<hkern g1="Yacute" g2="ucircumflex" k="100" /> +<hkern g1="Yacute" g2="udieresis" k="100" /> +<hkern g1="Yacute" g2="yacute" k="80" /> +<hkern g1="Yacute" g2="thorn" k="-63" /> +<hkern g1="Yacute" g2="ydieresis" k="80" /> +<hkern g1="Yacute" g2="dotlessi" k="12" /> +<hkern g1="Yacute" g2="OE" k="40" /> +<hkern g1="Yacute" g2="oe" k="144" /> +<hkern g1="Yacute" g2="endash" k="115" /> +<hkern g1="Yacute" g2="emdash" k="115" /> +<hkern g1="Yacute" g2="quoteleft" k="-100" /> +<hkern g1="Yacute" g2="quotesinglbase" k="110" /> +<hkern g1="Yacute" g2="quotedblleft" k="-100" /> +<hkern g1="Yacute" g2="quotedblbase" k="110" /> +<hkern g1="Yacute" g2="guilsinglleft" k="106" /> +<hkern g1="Yacute" g2="guilsinglright" k="43" /> +<hkern g1="Thorn" g2="parenright" k="45" /> +<hkern g1="Thorn" g2="comma" k="129" /> +<hkern g1="Thorn" g2="period" k="129" /> +<hkern g1="Thorn" g2="slash" k="137" /> +<hkern g1="Thorn" g2="A" k="51" /> +<hkern g1="Thorn" g2="B" k="20" /> +<hkern g1="Thorn" g2="D" k="20" /> +<hkern g1="Thorn" g2="E" k="20" /> +<hkern g1="Thorn" g2="F" k="20" /> +<hkern g1="Thorn" g2="H" k="20" /> +<hkern g1="Thorn" g2="I" k="20" /> +<hkern g1="Thorn" g2="J" k="98" /> +<hkern g1="Thorn" g2="K" k="20" /> +<hkern g1="Thorn" g2="L" k="20" /> +<hkern g1="Thorn" g2="M" k="20" /> +<hkern g1="Thorn" g2="N" k="20" /> +<hkern g1="Thorn" g2="P" k="20" /> +<hkern g1="Thorn" g2="R" k="20" /> +<hkern g1="Thorn" g2="V" k="25" /> +<hkern g1="Thorn" g2="W" k="35" /> +<hkern g1="Thorn" g2="X" k="135" /> +<hkern g1="Thorn" g2="Y" k="61" /> +<hkern g1="Thorn" g2="backslash" k="37" /> +<hkern g1="Thorn" g2="bracketright" k="74" /> +<hkern g1="Thorn" g2="h" k="18" /> +<hkern g1="Thorn" g2="k" k="18" /> +<hkern g1="Thorn" g2="l" k="16" /> +<hkern g1="Thorn" g2="braceright" k="37" /> +<hkern g1="Thorn" g2="Agrave" k="51" /> +<hkern g1="Thorn" g2="Aacute" k="51" /> +<hkern g1="Thorn" g2="Acircumflex" k="51" /> +<hkern g1="Thorn" g2="Atilde" k="51" /> +<hkern g1="Thorn" g2="Adieresis" k="51" /> +<hkern g1="Thorn" g2="Aring" k="51" /> +<hkern g1="Thorn" g2="AE" k="190" /> +<hkern g1="Thorn" g2="Egrave" k="20" /> +<hkern g1="Thorn" g2="Eacute" k="20" /> +<hkern g1="Thorn" g2="Ecircumflex" k="20" /> +<hkern g1="Thorn" g2="Edieresis" k="20" /> +<hkern g1="Thorn" g2="Igrave" k="20" /> +<hkern g1="Thorn" g2="Iacute" k="20" /> +<hkern g1="Thorn" g2="Icircumflex" k="20" /> +<hkern g1="Thorn" g2="Idieresis" k="20" /> +<hkern g1="Thorn" g2="Eth" k="20" /> +<hkern g1="Thorn" g2="Ntilde" k="20" /> +<hkern g1="Thorn" g2="Yacute" k="61" /> +<hkern g1="Thorn" g2="Thorn" k="20" /> +<hkern g1="Thorn" g2="quoteleft" k="59" /> +<hkern g1="Thorn" g2="quoteright" k="45" /> +<hkern g1="Thorn" g2="quotesinglbase" k="129" /> +<hkern g1="Thorn" g2="quotedblleft" k="59" /> +<hkern g1="Thorn" g2="quotedblright" k="45" /> +<hkern g1="Thorn" g2="quotedblbase" k="129" /> +<hkern g1="germandbls" g2="parenright" k="39" /> +<hkern g1="germandbls" g2="hyphen" k="29" /> +<hkern g1="germandbls" g2="slash" k="57" /> +<hkern g1="germandbls" g2="backslash" k="35" /> +<hkern g1="germandbls" g2="bracketright" k="51" /> +<hkern g1="germandbls" g2="t" k="8" /> +<hkern g1="germandbls" g2="u" k="8" /> +<hkern g1="germandbls" g2="v" k="20" /> +<hkern g1="germandbls" g2="w" k="23" /> +<hkern g1="germandbls" g2="y" k="25" /> +<hkern g1="germandbls" g2="braceright" k="29" /> +<hkern g1="germandbls" g2="uni00AD" k="29" /> +<hkern g1="germandbls" g2="ugrave" k="8" /> +<hkern g1="germandbls" g2="uacute" k="8" /> +<hkern g1="germandbls" g2="ucircumflex" k="8" /> +<hkern g1="germandbls" g2="udieresis" k="8" /> +<hkern g1="germandbls" g2="yacute" k="25" /> +<hkern g1="germandbls" g2="ydieresis" k="25" /> +<hkern g1="germandbls" g2="endash" k="29" /> +<hkern g1="germandbls" g2="emdash" k="29" /> +<hkern g1="germandbls" g2="quoteleft" k="16" /> +<hkern g1="germandbls" g2="quotedblleft" k="16" /> +<hkern g1="agrave" g2="quotedbl" k="23" /> +<hkern g1="agrave" g2="quotesingle" k="23" /> +<hkern g1="agrave" g2="parenright" k="47" /> +<hkern g1="agrave" g2="slash" k="37" /> +<hkern g1="agrave" g2="question" k="35" /> +<hkern g1="agrave" g2="B" k="10" /> +<hkern g1="agrave" g2="C" k="23" /> +<hkern g1="agrave" g2="D" k="10" /> +<hkern g1="agrave" g2="E" k="10" /> +<hkern g1="agrave" g2="F" k="10" /> +<hkern g1="agrave" g2="G" k="15" /> +<hkern g1="agrave" g2="H" k="10" /> +<hkern g1="agrave" g2="I" k="10" /> +<hkern g1="agrave" g2="J" k="-40" /> +<hkern g1="agrave" g2="K" k="10" /> +<hkern g1="agrave" g2="L" k="10" /> +<hkern g1="agrave" g2="N" k="10" /> +<hkern g1="agrave" g2="O" k="23" /> +<hkern g1="agrave" g2="P" k="10" /> +<hkern g1="agrave" g2="Q" k="23" /> +<hkern g1="agrave" g2="R" k="10" /> +<hkern g1="agrave" g2="T" k="84" /> +<hkern g1="agrave" g2="U" k="55" /> +<hkern g1="agrave" g2="V" k="100" /> +<hkern g1="agrave" g2="W" k="100" /> +<hkern g1="agrave" g2="Y" k="125" /> +<hkern g1="agrave" g2="backslash" k="106" /> +<hkern g1="agrave" g2="bracketright" k="92" /> +<hkern g1="agrave" g2="q" k="15" /> +<hkern g1="agrave" g2="t" k="15" /> +<hkern g1="agrave" g2="u" k="12" /> +<hkern g1="agrave" g2="v" k="25" /> +<hkern g1="agrave" g2="w" k="30" /> +<hkern g1="agrave" g2="y" k="20" /> +<hkern g1="agrave" g2="braceright" k="43" /> +<hkern g1="agrave" g2="Ccedilla" k="23" /> +<hkern g1="agrave" g2="Egrave" k="10" /> +<hkern g1="agrave" g2="Eacute" k="10" /> +<hkern g1="agrave" g2="Ecircumflex" k="10" /> +<hkern g1="agrave" g2="Edieresis" k="10" /> +<hkern g1="agrave" g2="Igrave" k="10" /> +<hkern g1="agrave" g2="Iacute" k="10" /> +<hkern g1="agrave" g2="Icircumflex" k="10" /> +<hkern g1="agrave" g2="Idieresis" k="10" /> +<hkern g1="agrave" g2="Eth" k="10" /> +<hkern g1="agrave" g2="Ntilde" k="10" /> +<hkern g1="agrave" g2="Ograve" k="23" /> +<hkern g1="agrave" g2="Oacute" k="23" /> +<hkern g1="agrave" g2="Ocircumflex" k="23" /> +<hkern g1="agrave" g2="Otilde" k="23" /> +<hkern g1="agrave" g2="Odieresis" k="23" /> +<hkern g1="agrave" g2="Oslash" k="23" /> +<hkern g1="agrave" g2="Ugrave" k="55" /> +<hkern g1="agrave" g2="Uacute" k="55" /> +<hkern g1="agrave" g2="Ucircumflex" k="55" /> +<hkern g1="agrave" g2="Udieresis" k="55" /> +<hkern g1="agrave" g2="Yacute" k="125" /> +<hkern g1="agrave" g2="Thorn" k="10" /> +<hkern g1="agrave" g2="ugrave" k="12" /> +<hkern g1="agrave" g2="uacute" k="12" /> +<hkern g1="agrave" g2="ucircumflex" k="12" /> +<hkern g1="agrave" g2="udieresis" k="12" /> +<hkern g1="agrave" g2="yacute" k="20" /> +<hkern g1="agrave" g2="ydieresis" k="20" /> +<hkern g1="agrave" g2="OE" k="23" /> +<hkern g1="agrave" g2="quoteleft" k="55" /> +<hkern g1="agrave" g2="quoteright" k="43" /> +<hkern g1="agrave" g2="quotedblleft" k="55" /> +<hkern g1="agrave" g2="quotedblright" k="43" /> +<hkern g1="aacute" g2="quotedbl" k="23" /> +<hkern g1="aacute" g2="quotesingle" k="23" /> +<hkern g1="aacute" g2="parenright" k="47" /> +<hkern g1="aacute" g2="slash" k="37" /> +<hkern g1="aacute" g2="question" k="35" /> +<hkern g1="aacute" g2="B" k="10" /> +<hkern g1="aacute" g2="C" k="23" /> +<hkern g1="aacute" g2="D" k="10" /> +<hkern g1="aacute" g2="E" k="10" /> +<hkern g1="aacute" g2="F" k="10" /> +<hkern g1="aacute" g2="G" k="15" /> +<hkern g1="aacute" g2="H" k="10" /> +<hkern g1="aacute" g2="I" k="10" /> +<hkern g1="aacute" g2="J" k="-40" /> +<hkern g1="aacute" g2="K" k="10" /> +<hkern g1="aacute" g2="L" k="10" /> +<hkern g1="aacute" g2="N" k="10" /> +<hkern g1="aacute" g2="O" k="23" /> +<hkern g1="aacute" g2="P" k="10" /> +<hkern g1="aacute" g2="Q" k="23" /> +<hkern g1="aacute" g2="R" k="10" /> +<hkern g1="aacute" g2="T" k="84" /> +<hkern g1="aacute" g2="U" k="55" /> +<hkern g1="aacute" g2="V" k="100" /> +<hkern g1="aacute" g2="W" k="100" /> +<hkern g1="aacute" g2="Y" k="125" /> +<hkern g1="aacute" g2="backslash" k="106" /> +<hkern g1="aacute" g2="bracketright" k="92" /> +<hkern g1="aacute" g2="q" k="15" /> +<hkern g1="aacute" g2="t" k="15" /> +<hkern g1="aacute" g2="u" k="12" /> +<hkern g1="aacute" g2="v" k="25" /> +<hkern g1="aacute" g2="w" k="30" /> +<hkern g1="aacute" g2="y" k="20" /> +<hkern g1="aacute" g2="braceright" k="43" /> +<hkern g1="aacute" g2="Ccedilla" k="23" /> +<hkern g1="aacute" g2="Egrave" k="10" /> +<hkern g1="aacute" g2="Eacute" k="10" /> +<hkern g1="aacute" g2="Ecircumflex" k="10" /> +<hkern g1="aacute" g2="Edieresis" k="10" /> +<hkern g1="aacute" g2="Igrave" k="10" /> +<hkern g1="aacute" g2="Iacute" k="10" /> +<hkern g1="aacute" g2="Icircumflex" k="10" /> +<hkern g1="aacute" g2="Idieresis" k="10" /> +<hkern g1="aacute" g2="Eth" k="10" /> +<hkern g1="aacute" g2="Ntilde" k="10" /> +<hkern g1="aacute" g2="Ograve" k="23" /> +<hkern g1="aacute" g2="Oacute" k="23" /> +<hkern g1="aacute" g2="Ocircumflex" k="23" /> +<hkern g1="aacute" g2="Otilde" k="23" /> +<hkern g1="aacute" g2="Odieresis" k="23" /> +<hkern g1="aacute" g2="Oslash" k="23" /> +<hkern g1="aacute" g2="Ugrave" k="55" /> +<hkern g1="aacute" g2="Uacute" k="55" /> +<hkern g1="aacute" g2="Ucircumflex" k="55" /> +<hkern g1="aacute" g2="Udieresis" k="55" /> +<hkern g1="aacute" g2="Yacute" k="125" /> +<hkern g1="aacute" g2="Thorn" k="10" /> +<hkern g1="aacute" g2="ugrave" k="12" /> +<hkern g1="aacute" g2="uacute" k="12" /> +<hkern g1="aacute" g2="ucircumflex" k="12" /> +<hkern g1="aacute" g2="udieresis" k="12" /> +<hkern g1="aacute" g2="yacute" k="20" /> +<hkern g1="aacute" g2="ydieresis" k="20" /> +<hkern g1="aacute" g2="OE" k="23" /> +<hkern g1="aacute" g2="quoteleft" k="55" /> +<hkern g1="aacute" g2="quoteright" k="43" /> +<hkern g1="aacute" g2="quotedblleft" k="55" /> +<hkern g1="aacute" g2="quotedblright" k="43" /> +<hkern g1="acircumflex" g2="quotedbl" k="23" /> +<hkern g1="acircumflex" g2="quotesingle" k="23" /> +<hkern g1="acircumflex" g2="parenright" k="47" /> +<hkern g1="acircumflex" g2="slash" k="37" /> +<hkern g1="acircumflex" g2="question" k="35" /> +<hkern g1="acircumflex" g2="B" k="10" /> +<hkern g1="acircumflex" g2="C" k="23" /> +<hkern g1="acircumflex" g2="D" k="10" /> +<hkern g1="acircumflex" g2="E" k="10" /> +<hkern g1="acircumflex" g2="F" k="10" /> +<hkern g1="acircumflex" g2="G" k="15" /> +<hkern g1="acircumflex" g2="H" k="10" /> +<hkern g1="acircumflex" g2="I" k="10" /> +<hkern g1="acircumflex" g2="J" k="-40" /> +<hkern g1="acircumflex" g2="K" k="10" /> +<hkern g1="acircumflex" g2="L" k="10" /> +<hkern g1="acircumflex" g2="N" k="10" /> +<hkern g1="acircumflex" g2="O" k="23" /> +<hkern g1="acircumflex" g2="P" k="10" /> +<hkern g1="acircumflex" g2="Q" k="23" /> +<hkern g1="acircumflex" g2="R" k="10" /> +<hkern g1="acircumflex" g2="T" k="84" /> +<hkern g1="acircumflex" g2="U" k="55" /> +<hkern g1="acircumflex" g2="V" k="100" /> +<hkern g1="acircumflex" g2="W" k="100" /> +<hkern g1="acircumflex" g2="Y" k="125" /> +<hkern g1="acircumflex" g2="backslash" k="106" /> +<hkern g1="acircumflex" g2="bracketright" k="92" /> +<hkern g1="acircumflex" g2="q" k="15" /> +<hkern g1="acircumflex" g2="t" k="15" /> +<hkern g1="acircumflex" g2="u" k="12" /> +<hkern g1="acircumflex" g2="v" k="25" /> +<hkern g1="acircumflex" g2="w" k="30" /> +<hkern g1="acircumflex" g2="y" k="20" /> +<hkern g1="acircumflex" g2="braceright" k="43" /> +<hkern g1="acircumflex" g2="Ccedilla" k="23" /> +<hkern g1="acircumflex" g2="Egrave" k="10" /> +<hkern g1="acircumflex" g2="Eacute" k="10" /> +<hkern g1="acircumflex" g2="Ecircumflex" k="10" /> +<hkern g1="acircumflex" g2="Edieresis" k="10" /> +<hkern g1="acircumflex" g2="Igrave" k="10" /> +<hkern g1="acircumflex" g2="Iacute" k="10" /> +<hkern g1="acircumflex" g2="Icircumflex" k="10" /> +<hkern g1="acircumflex" g2="Idieresis" k="10" /> +<hkern g1="acircumflex" g2="Eth" k="10" /> +<hkern g1="acircumflex" g2="Ntilde" k="10" /> +<hkern g1="acircumflex" g2="Ograve" k="23" /> +<hkern g1="acircumflex" g2="Oacute" k="23" /> +<hkern g1="acircumflex" g2="Ocircumflex" k="23" /> +<hkern g1="acircumflex" g2="Otilde" k="23" /> +<hkern g1="acircumflex" g2="Odieresis" k="23" /> +<hkern g1="acircumflex" g2="Oslash" k="23" /> +<hkern g1="acircumflex" g2="Ugrave" k="55" /> +<hkern g1="acircumflex" g2="Uacute" k="55" /> +<hkern g1="acircumflex" g2="Ucircumflex" k="55" /> +<hkern g1="acircumflex" g2="Udieresis" k="55" /> +<hkern g1="acircumflex" g2="Yacute" k="125" /> +<hkern g1="acircumflex" g2="Thorn" k="10" /> +<hkern g1="acircumflex" g2="ugrave" k="12" /> +<hkern g1="acircumflex" g2="uacute" k="12" /> +<hkern g1="acircumflex" g2="ucircumflex" k="12" /> +<hkern g1="acircumflex" g2="udieresis" k="12" /> +<hkern g1="acircumflex" g2="yacute" k="20" /> +<hkern g1="acircumflex" g2="ydieresis" k="20" /> +<hkern g1="acircumflex" g2="OE" k="23" /> +<hkern g1="acircumflex" g2="quoteleft" k="55" /> +<hkern g1="acircumflex" g2="quoteright" k="43" /> +<hkern g1="acircumflex" g2="quotedblleft" k="55" /> +<hkern g1="acircumflex" g2="quotedblright" k="43" /> +<hkern g1="atilde" g2="quotedbl" k="23" /> +<hkern g1="atilde" g2="quotesingle" k="23" /> +<hkern g1="atilde" g2="parenright" k="47" /> +<hkern g1="atilde" g2="slash" k="37" /> +<hkern g1="atilde" g2="question" k="35" /> +<hkern g1="atilde" g2="B" k="10" /> +<hkern g1="atilde" g2="C" k="23" /> +<hkern g1="atilde" g2="D" k="10" /> +<hkern g1="atilde" g2="E" k="10" /> +<hkern g1="atilde" g2="F" k="10" /> +<hkern g1="atilde" g2="G" k="15" /> +<hkern g1="atilde" g2="H" k="10" /> +<hkern g1="atilde" g2="I" k="10" /> +<hkern g1="atilde" g2="J" k="-40" /> +<hkern g1="atilde" g2="K" k="10" /> +<hkern g1="atilde" g2="L" k="10" /> +<hkern g1="atilde" g2="N" k="10" /> +<hkern g1="atilde" g2="O" k="23" /> +<hkern g1="atilde" g2="P" k="10" /> +<hkern g1="atilde" g2="Q" k="23" /> +<hkern g1="atilde" g2="R" k="10" /> +<hkern g1="atilde" g2="T" k="84" /> +<hkern g1="atilde" g2="U" k="55" /> +<hkern g1="atilde" g2="V" k="100" /> +<hkern g1="atilde" g2="W" k="100" /> +<hkern g1="atilde" g2="Y" k="125" /> +<hkern g1="atilde" g2="backslash" k="106" /> +<hkern g1="atilde" g2="bracketright" k="92" /> +<hkern g1="atilde" g2="q" k="15" /> +<hkern g1="atilde" g2="t" k="15" /> +<hkern g1="atilde" g2="u" k="12" /> +<hkern g1="atilde" g2="v" k="25" /> +<hkern g1="atilde" g2="w" k="30" /> +<hkern g1="atilde" g2="y" k="20" /> +<hkern g1="atilde" g2="braceright" k="43" /> +<hkern g1="atilde" g2="Ccedilla" k="23" /> +<hkern g1="atilde" g2="Egrave" k="10" /> +<hkern g1="atilde" g2="Eacute" k="10" /> +<hkern g1="atilde" g2="Ecircumflex" k="10" /> +<hkern g1="atilde" g2="Edieresis" k="10" /> +<hkern g1="atilde" g2="Igrave" k="10" /> +<hkern g1="atilde" g2="Iacute" k="10" /> +<hkern g1="atilde" g2="Icircumflex" k="10" /> +<hkern g1="atilde" g2="Idieresis" k="10" /> +<hkern g1="atilde" g2="Eth" k="10" /> +<hkern g1="atilde" g2="Ntilde" k="10" /> +<hkern g1="atilde" g2="Ograve" k="23" /> +<hkern g1="atilde" g2="Oacute" k="23" /> +<hkern g1="atilde" g2="Ocircumflex" k="23" /> +<hkern g1="atilde" g2="Otilde" k="23" /> +<hkern g1="atilde" g2="Odieresis" k="23" /> +<hkern g1="atilde" g2="Oslash" k="23" /> +<hkern g1="atilde" g2="Ugrave" k="55" /> +<hkern g1="atilde" g2="Uacute" k="55" /> +<hkern g1="atilde" g2="Ucircumflex" k="55" /> +<hkern g1="atilde" g2="Udieresis" k="55" /> +<hkern g1="atilde" g2="Yacute" k="125" /> +<hkern g1="atilde" g2="Thorn" k="10" /> +<hkern g1="atilde" g2="ugrave" k="12" /> +<hkern g1="atilde" g2="uacute" k="12" /> +<hkern g1="atilde" g2="ucircumflex" k="12" /> +<hkern g1="atilde" g2="udieresis" k="12" /> +<hkern g1="atilde" g2="yacute" k="20" /> +<hkern g1="atilde" g2="ydieresis" k="20" /> +<hkern g1="atilde" g2="OE" k="23" /> +<hkern g1="atilde" g2="quoteleft" k="55" /> +<hkern g1="atilde" g2="quoteright" k="43" /> +<hkern g1="atilde" g2="quotedblleft" k="55" /> +<hkern g1="atilde" g2="quotedblright" k="43" /> +<hkern g1="adieresis" g2="quotedbl" k="23" /> +<hkern g1="adieresis" g2="quotesingle" k="23" /> +<hkern g1="adieresis" g2="parenright" k="47" /> +<hkern g1="adieresis" g2="slash" k="37" /> +<hkern g1="adieresis" g2="question" k="35" /> +<hkern g1="adieresis" g2="B" k="10" /> +<hkern g1="adieresis" g2="C" k="23" /> +<hkern g1="adieresis" g2="D" k="10" /> +<hkern g1="adieresis" g2="E" k="10" /> +<hkern g1="adieresis" g2="F" k="10" /> +<hkern g1="adieresis" g2="G" k="15" /> +<hkern g1="adieresis" g2="H" k="10" /> +<hkern g1="adieresis" g2="I" k="10" /> +<hkern g1="adieresis" g2="J" k="-40" /> +<hkern g1="adieresis" g2="K" k="10" /> +<hkern g1="adieresis" g2="L" k="10" /> +<hkern g1="adieresis" g2="N" k="10" /> +<hkern g1="adieresis" g2="O" k="23" /> +<hkern g1="adieresis" g2="P" k="10" /> +<hkern g1="adieresis" g2="Q" k="23" /> +<hkern g1="adieresis" g2="R" k="10" /> +<hkern g1="adieresis" g2="T" k="84" /> +<hkern g1="adieresis" g2="U" k="55" /> +<hkern g1="adieresis" g2="V" k="100" /> +<hkern g1="adieresis" g2="W" k="100" /> +<hkern g1="adieresis" g2="Y" k="125" /> +<hkern g1="adieresis" g2="backslash" k="106" /> +<hkern g1="adieresis" g2="bracketright" k="92" /> +<hkern g1="adieresis" g2="q" k="15" /> +<hkern g1="adieresis" g2="t" k="15" /> +<hkern g1="adieresis" g2="u" k="12" /> +<hkern g1="adieresis" g2="v" k="25" /> +<hkern g1="adieresis" g2="w" k="30" /> +<hkern g1="adieresis" g2="y" k="20" /> +<hkern g1="adieresis" g2="braceright" k="43" /> +<hkern g1="adieresis" g2="Ccedilla" k="23" /> +<hkern g1="adieresis" g2="Egrave" k="10" /> +<hkern g1="adieresis" g2="Eacute" k="10" /> +<hkern g1="adieresis" g2="Ecircumflex" k="10" /> +<hkern g1="adieresis" g2="Edieresis" k="10" /> +<hkern g1="adieresis" g2="Igrave" k="10" /> +<hkern g1="adieresis" g2="Iacute" k="10" /> +<hkern g1="adieresis" g2="Icircumflex" k="10" /> +<hkern g1="adieresis" g2="Idieresis" k="10" /> +<hkern g1="adieresis" g2="Eth" k="10" /> +<hkern g1="adieresis" g2="Ntilde" k="10" /> +<hkern g1="adieresis" g2="Ograve" k="23" /> +<hkern g1="adieresis" g2="Oacute" k="23" /> +<hkern g1="adieresis" g2="Ocircumflex" k="23" /> +<hkern g1="adieresis" g2="Otilde" k="23" /> +<hkern g1="adieresis" g2="Odieresis" k="23" /> +<hkern g1="adieresis" g2="Oslash" k="23" /> +<hkern g1="adieresis" g2="Ugrave" k="55" /> +<hkern g1="adieresis" g2="Uacute" k="55" /> +<hkern g1="adieresis" g2="Ucircumflex" k="55" /> +<hkern g1="adieresis" g2="Udieresis" k="55" /> +<hkern g1="adieresis" g2="Yacute" k="125" /> +<hkern g1="adieresis" g2="Thorn" k="10" /> +<hkern g1="adieresis" g2="ugrave" k="12" /> +<hkern g1="adieresis" g2="uacute" k="12" /> +<hkern g1="adieresis" g2="ucircumflex" k="12" /> +<hkern g1="adieresis" g2="udieresis" k="12" /> +<hkern g1="adieresis" g2="yacute" k="20" /> +<hkern g1="adieresis" g2="ydieresis" k="20" /> +<hkern g1="adieresis" g2="OE" k="23" /> +<hkern g1="adieresis" g2="quoteleft" k="55" /> +<hkern g1="adieresis" g2="quoteright" k="43" /> +<hkern g1="adieresis" g2="quotedblleft" k="55" /> +<hkern g1="adieresis" g2="quotedblright" k="43" /> +<hkern g1="aring" g2="quotedbl" k="23" /> +<hkern g1="aring" g2="quotesingle" k="23" /> +<hkern g1="aring" g2="parenright" k="47" /> +<hkern g1="aring" g2="slash" k="37" /> +<hkern g1="aring" g2="question" k="35" /> +<hkern g1="aring" g2="B" k="10" /> +<hkern g1="aring" g2="C" k="23" /> +<hkern g1="aring" g2="D" k="10" /> +<hkern g1="aring" g2="E" k="10" /> +<hkern g1="aring" g2="F" k="10" /> +<hkern g1="aring" g2="G" k="15" /> +<hkern g1="aring" g2="H" k="10" /> +<hkern g1="aring" g2="I" k="10" /> +<hkern g1="aring" g2="J" k="-40" /> +<hkern g1="aring" g2="K" k="10" /> +<hkern g1="aring" g2="L" k="10" /> +<hkern g1="aring" g2="N" k="10" /> +<hkern g1="aring" g2="O" k="23" /> +<hkern g1="aring" g2="P" k="10" /> +<hkern g1="aring" g2="Q" k="23" /> +<hkern g1="aring" g2="R" k="10" /> +<hkern g1="aring" g2="T" k="84" /> +<hkern g1="aring" g2="U" k="55" /> +<hkern g1="aring" g2="V" k="100" /> +<hkern g1="aring" g2="W" k="100" /> +<hkern g1="aring" g2="Y" k="125" /> +<hkern g1="aring" g2="backslash" k="106" /> +<hkern g1="aring" g2="bracketright" k="92" /> +<hkern g1="aring" g2="q" k="15" /> +<hkern g1="aring" g2="t" k="15" /> +<hkern g1="aring" g2="u" k="12" /> +<hkern g1="aring" g2="v" k="25" /> +<hkern g1="aring" g2="w" k="30" /> +<hkern g1="aring" g2="y" k="20" /> +<hkern g1="aring" g2="braceright" k="43" /> +<hkern g1="aring" g2="Ccedilla" k="23" /> +<hkern g1="aring" g2="Egrave" k="10" /> +<hkern g1="aring" g2="Eacute" k="10" /> +<hkern g1="aring" g2="Ecircumflex" k="10" /> +<hkern g1="aring" g2="Edieresis" k="10" /> +<hkern g1="aring" g2="Igrave" k="10" /> +<hkern g1="aring" g2="Iacute" k="10" /> +<hkern g1="aring" g2="Icircumflex" k="10" /> +<hkern g1="aring" g2="Idieresis" k="10" /> +<hkern g1="aring" g2="Eth" k="10" /> +<hkern g1="aring" g2="Ntilde" k="10" /> +<hkern g1="aring" g2="Ograve" k="23" /> +<hkern g1="aring" g2="Oacute" k="23" /> +<hkern g1="aring" g2="Ocircumflex" k="23" /> +<hkern g1="aring" g2="Otilde" k="23" /> +<hkern g1="aring" g2="Odieresis" k="23" /> +<hkern g1="aring" g2="Oslash" k="23" /> +<hkern g1="aring" g2="Ugrave" k="55" /> +<hkern g1="aring" g2="Uacute" k="55" /> +<hkern g1="aring" g2="Ucircumflex" k="55" /> +<hkern g1="aring" g2="Udieresis" k="55" /> +<hkern g1="aring" g2="Yacute" k="125" /> +<hkern g1="aring" g2="Thorn" k="10" /> +<hkern g1="aring" g2="ugrave" k="12" /> +<hkern g1="aring" g2="uacute" k="12" /> +<hkern g1="aring" g2="ucircumflex" k="12" /> +<hkern g1="aring" g2="udieresis" k="12" /> +<hkern g1="aring" g2="yacute" k="20" /> +<hkern g1="aring" g2="ydieresis" k="20" /> +<hkern g1="aring" g2="OE" k="23" /> +<hkern g1="aring" g2="quoteleft" k="55" /> +<hkern g1="aring" g2="quoteright" k="43" /> +<hkern g1="aring" g2="quotedblleft" k="55" /> +<hkern g1="aring" g2="quotedblright" k="43" /> +<hkern g1="ae" g2="quotedbl" k="20" /> +<hkern g1="ae" g2="quotesingle" k="20" /> +<hkern g1="ae" g2="parenright" k="61" /> +<hkern g1="ae" g2="slash" k="78" /> +<hkern g1="ae" g2="question" k="29" /> +<hkern g1="ae" g2="B" k="33" /> +<hkern g1="ae" g2="D" k="33" /> +<hkern g1="ae" g2="E" k="33" /> +<hkern g1="ae" g2="F" k="33" /> +<hkern g1="ae" g2="H" k="33" /> +<hkern g1="ae" g2="I" k="33" /> +<hkern g1="ae" g2="K" k="33" /> +<hkern g1="ae" g2="L" k="33" /> +<hkern g1="ae" g2="M" k="25" /> +<hkern g1="ae" g2="N" k="33" /> +<hkern g1="ae" g2="P" k="33" /> +<hkern g1="ae" g2="R" k="33" /> +<hkern g1="ae" g2="S" k="10" /> +<hkern g1="ae" g2="T" k="88" /> +<hkern g1="ae" g2="U" k="41" /> +<hkern g1="ae" g2="V" k="80" /> +<hkern g1="ae" g2="W" k="70" /> +<hkern g1="ae" g2="X" k="27" /> +<hkern g1="ae" g2="Y" k="100" /> +<hkern g1="ae" g2="Z" k="16" /> +<hkern g1="ae" g2="backslash" k="88" /> +<hkern g1="ae" g2="bracketright" k="100" /> +<hkern g1="ae" g2="a" k="5" /> +<hkern g1="ae" g2="c" k="10" /> +<hkern g1="ae" g2="d" k="10" /> +<hkern g1="ae" g2="e" k="10" /> +<hkern g1="ae" g2="o" k="10" /> +<hkern g1="ae" g2="q" k="10" /> +<hkern g1="ae" g2="t" k="15" /> +<hkern g1="ae" g2="v" k="10" /> +<hkern g1="ae" g2="w" k="8" /> +<hkern g1="ae" g2="x" k="10" /> +<hkern g1="ae" g2="y" k="10" /> +<hkern g1="ae" g2="braceright" k="47" /> +<hkern g1="ae" g2="Egrave" k="33" /> +<hkern g1="ae" g2="Eacute" k="33" /> +<hkern g1="ae" g2="Ecircumflex" k="33" /> +<hkern g1="ae" g2="Edieresis" k="33" /> +<hkern g1="ae" g2="Igrave" k="33" /> +<hkern g1="ae" g2="Iacute" k="33" /> +<hkern g1="ae" g2="Icircumflex" k="33" /> +<hkern g1="ae" g2="Idieresis" k="33" /> +<hkern g1="ae" g2="Eth" k="33" /> +<hkern g1="ae" g2="Ntilde" k="33" /> +<hkern g1="ae" g2="Ugrave" k="41" /> +<hkern g1="ae" g2="Uacute" k="41" /> +<hkern g1="ae" g2="Ucircumflex" k="41" /> +<hkern g1="ae" g2="Udieresis" k="41" /> +<hkern g1="ae" g2="Yacute" k="100" /> +<hkern g1="ae" g2="Thorn" k="33" /> +<hkern g1="ae" g2="agrave" k="5" /> +<hkern g1="ae" g2="aacute" k="5" /> +<hkern g1="ae" g2="acircumflex" k="5" /> +<hkern g1="ae" g2="atilde" k="5" /> +<hkern g1="ae" g2="adieresis" k="5" /> +<hkern g1="ae" g2="aring" k="5" /> +<hkern g1="ae" g2="ae" k="5" /> +<hkern g1="ae" g2="ccedilla" k="10" /> +<hkern g1="ae" g2="egrave" k="10" /> +<hkern g1="ae" g2="eacute" k="10" /> +<hkern g1="ae" g2="ecircumflex" k="10" /> +<hkern g1="ae" g2="edieresis" k="10" /> +<hkern g1="ae" g2="ograve" k="10" /> +<hkern g1="ae" g2="oacute" k="10" /> +<hkern g1="ae" g2="ocircumflex" k="10" /> +<hkern g1="ae" g2="otilde" k="10" /> +<hkern g1="ae" g2="odieresis" k="10" /> +<hkern g1="ae" g2="oslash" k="10" /> +<hkern g1="ae" g2="yacute" k="10" /> +<hkern g1="ae" g2="ydieresis" k="10" /> +<hkern g1="ae" g2="oe" k="10" /> +<hkern g1="ae" g2="quoteleft" k="55" /> +<hkern g1="ae" g2="quoteright" k="41" /> +<hkern g1="ae" g2="quotedblleft" k="55" /> +<hkern g1="ae" g2="quotedblright" k="41" /> +<hkern g1="ccedilla" g2="parenright" k="51" /> +<hkern g1="ccedilla" g2="slash" k="70" /> +<hkern g1="ccedilla" g2="B" k="39" /> +<hkern g1="ccedilla" g2="C" k="12" /> +<hkern g1="ccedilla" g2="D" k="39" /> +<hkern g1="ccedilla" g2="E" k="39" /> +<hkern g1="ccedilla" g2="F" k="39" /> +<hkern g1="ccedilla" g2="G" k="12" /> +<hkern g1="ccedilla" g2="H" k="39" /> +<hkern g1="ccedilla" g2="I" k="39" /> +<hkern g1="ccedilla" g2="K" k="39" /> +<hkern g1="ccedilla" g2="L" k="39" /> +<hkern g1="ccedilla" g2="M" k="31" /> +<hkern g1="ccedilla" g2="N" k="39" /> +<hkern g1="ccedilla" g2="O" k="12" /> +<hkern g1="ccedilla" g2="P" k="39" /> +<hkern g1="ccedilla" g2="Q" k="12" /> +<hkern g1="ccedilla" g2="R" k="39" /> +<hkern g1="ccedilla" g2="T" k="43" /> +<hkern g1="ccedilla" g2="U" k="37" /> +<hkern g1="ccedilla" g2="V" k="80" /> +<hkern g1="ccedilla" g2="W" k="70" /> +<hkern g1="ccedilla" g2="X" k="33" /> +<hkern g1="ccedilla" g2="Y" k="100" /> +<hkern g1="ccedilla" g2="backslash" k="72" /> +<hkern g1="ccedilla" g2="bracketright" k="92" /> +<hkern g1="ccedilla" g2="a" k="5" /> +<hkern g1="ccedilla" g2="c" k="10" /> +<hkern g1="ccedilla" g2="d" k="10" /> +<hkern g1="ccedilla" g2="e" k="10" /> +<hkern g1="ccedilla" g2="o" k="10" /> +<hkern g1="ccedilla" g2="q" k="10" /> +<hkern g1="ccedilla" g2="t" k="10" /> +<hkern g1="ccedilla" g2="v" k="10" /> +<hkern g1="ccedilla" g2="w" k="10" /> +<hkern g1="ccedilla" g2="x" k="15" /> +<hkern g1="ccedilla" g2="y" k="10" /> +<hkern g1="ccedilla" g2="z" k="10" /> +<hkern g1="ccedilla" g2="braceright" k="39" /> +<hkern g1="ccedilla" g2="Ccedilla" k="12" /> +<hkern g1="ccedilla" g2="Egrave" k="39" /> +<hkern g1="ccedilla" g2="Eacute" k="39" /> +<hkern g1="ccedilla" g2="Ecircumflex" k="39" /> +<hkern g1="ccedilla" g2="Edieresis" k="39" /> +<hkern g1="ccedilla" g2="Igrave" k="39" /> +<hkern g1="ccedilla" g2="Iacute" k="39" /> +<hkern g1="ccedilla" g2="Icircumflex" k="39" /> +<hkern g1="ccedilla" g2="Idieresis" k="39" /> +<hkern g1="ccedilla" g2="Eth" k="39" /> +<hkern g1="ccedilla" g2="Ntilde" k="39" /> +<hkern g1="ccedilla" g2="Ograve" k="12" /> +<hkern g1="ccedilla" g2="Oacute" k="12" /> +<hkern g1="ccedilla" g2="Ocircumflex" k="12" /> +<hkern g1="ccedilla" g2="Otilde" k="12" /> +<hkern g1="ccedilla" g2="Odieresis" k="12" /> +<hkern g1="ccedilla" g2="Oslash" k="12" /> +<hkern g1="ccedilla" g2="Ugrave" k="37" /> +<hkern g1="ccedilla" g2="Uacute" k="37" /> +<hkern g1="ccedilla" g2="Ucircumflex" k="37" /> +<hkern g1="ccedilla" g2="Udieresis" k="37" /> +<hkern g1="ccedilla" g2="Yacute" k="100" /> +<hkern g1="ccedilla" g2="Thorn" k="39" /> +<hkern g1="ccedilla" g2="agrave" k="5" /> +<hkern g1="ccedilla" g2="aacute" k="5" /> +<hkern g1="ccedilla" g2="acircumflex" k="5" /> +<hkern g1="ccedilla" g2="atilde" k="5" /> +<hkern g1="ccedilla" g2="adieresis" k="5" /> +<hkern g1="ccedilla" g2="aring" k="5" /> +<hkern g1="ccedilla" g2="ae" k="5" /> +<hkern g1="ccedilla" g2="ccedilla" k="10" /> +<hkern g1="ccedilla" g2="egrave" k="10" /> +<hkern g1="ccedilla" g2="eacute" k="10" /> +<hkern g1="ccedilla" g2="ecircumflex" k="10" /> +<hkern g1="ccedilla" g2="edieresis" k="10" /> +<hkern g1="ccedilla" g2="ograve" k="10" /> +<hkern g1="ccedilla" g2="oacute" k="10" /> +<hkern g1="ccedilla" g2="ocircumflex" k="10" /> +<hkern g1="ccedilla" g2="otilde" k="10" /> +<hkern g1="ccedilla" g2="odieresis" k="10" /> +<hkern g1="ccedilla" g2="oslash" k="10" /> +<hkern g1="ccedilla" g2="yacute" k="10" /> +<hkern g1="ccedilla" g2="ydieresis" k="10" /> +<hkern g1="ccedilla" g2="OE" k="12" /> +<hkern g1="ccedilla" g2="oe" k="10" /> +<hkern g1="ccedilla" g2="quoteleft" k="41" /> +<hkern g1="ccedilla" g2="quoteright" k="27" /> +<hkern g1="ccedilla" g2="quotedblleft" k="41" /> +<hkern g1="ccedilla" g2="quotedblright" k="27" /> +<hkern g1="egrave" g2="quotedbl" k="20" /> +<hkern g1="egrave" g2="quotesingle" k="20" /> +<hkern g1="egrave" g2="parenright" k="61" /> +<hkern g1="egrave" g2="slash" k="78" /> +<hkern g1="egrave" g2="question" k="29" /> +<hkern g1="egrave" g2="B" k="33" /> +<hkern g1="egrave" g2="D" k="33" /> +<hkern g1="egrave" g2="E" k="33" /> +<hkern g1="egrave" g2="F" k="33" /> +<hkern g1="egrave" g2="H" k="33" /> +<hkern g1="egrave" g2="I" k="33" /> +<hkern g1="egrave" g2="K" k="33" /> +<hkern g1="egrave" g2="L" k="33" /> +<hkern g1="egrave" g2="M" k="25" /> +<hkern g1="egrave" g2="N" k="33" /> +<hkern g1="egrave" g2="P" k="33" /> +<hkern g1="egrave" g2="R" k="33" /> +<hkern g1="egrave" g2="S" k="10" /> +<hkern g1="egrave" g2="T" k="88" /> +<hkern g1="egrave" g2="U" k="41" /> +<hkern g1="egrave" g2="V" k="80" /> +<hkern g1="egrave" g2="W" k="70" /> +<hkern g1="egrave" g2="X" k="27" /> +<hkern g1="egrave" g2="Y" k="100" /> +<hkern g1="egrave" g2="Z" k="16" /> +<hkern g1="egrave" g2="backslash" k="88" /> +<hkern g1="egrave" g2="bracketright" k="100" /> +<hkern g1="egrave" g2="a" k="5" /> +<hkern g1="egrave" g2="c" k="10" /> +<hkern g1="egrave" g2="d" k="10" /> +<hkern g1="egrave" g2="e" k="10" /> +<hkern g1="egrave" g2="o" k="10" /> +<hkern g1="egrave" g2="q" k="10" /> +<hkern g1="egrave" g2="t" k="15" /> +<hkern g1="egrave" g2="v" k="10" /> +<hkern g1="egrave" g2="w" k="8" /> +<hkern g1="egrave" g2="x" k="10" /> +<hkern g1="egrave" g2="y" k="10" /> +<hkern g1="egrave" g2="braceright" k="47" /> +<hkern g1="egrave" g2="Egrave" k="33" /> +<hkern g1="egrave" g2="Eacute" k="33" /> +<hkern g1="egrave" g2="Ecircumflex" k="33" /> +<hkern g1="egrave" g2="Edieresis" k="33" /> +<hkern g1="egrave" g2="Igrave" k="33" /> +<hkern g1="egrave" g2="Iacute" k="33" /> +<hkern g1="egrave" g2="Icircumflex" k="33" /> +<hkern g1="egrave" g2="Idieresis" k="33" /> +<hkern g1="egrave" g2="Eth" k="33" /> +<hkern g1="egrave" g2="Ntilde" k="33" /> +<hkern g1="egrave" g2="Ugrave" k="41" /> +<hkern g1="egrave" g2="Uacute" k="41" /> +<hkern g1="egrave" g2="Ucircumflex" k="41" /> +<hkern g1="egrave" g2="Udieresis" k="41" /> +<hkern g1="egrave" g2="Yacute" k="100" /> +<hkern g1="egrave" g2="Thorn" k="33" /> +<hkern g1="egrave" g2="agrave" k="5" /> +<hkern g1="egrave" g2="aacute" k="5" /> +<hkern g1="egrave" g2="acircumflex" k="5" /> +<hkern g1="egrave" g2="atilde" k="5" /> +<hkern g1="egrave" g2="adieresis" k="5" /> +<hkern g1="egrave" g2="aring" k="5" /> +<hkern g1="egrave" g2="ae" k="5" /> +<hkern g1="egrave" g2="ccedilla" k="10" /> +<hkern g1="egrave" g2="egrave" k="10" /> +<hkern g1="egrave" g2="eacute" k="10" /> +<hkern g1="egrave" g2="ecircumflex" k="10" /> +<hkern g1="egrave" g2="edieresis" k="10" /> +<hkern g1="egrave" g2="ograve" k="10" /> +<hkern g1="egrave" g2="oacute" k="10" /> +<hkern g1="egrave" g2="ocircumflex" k="10" /> +<hkern g1="egrave" g2="otilde" k="10" /> +<hkern g1="egrave" g2="odieresis" k="10" /> +<hkern g1="egrave" g2="oslash" k="10" /> +<hkern g1="egrave" g2="yacute" k="10" /> +<hkern g1="egrave" g2="ydieresis" k="10" /> +<hkern g1="egrave" g2="oe" k="10" /> +<hkern g1="egrave" g2="quoteleft" k="55" /> +<hkern g1="egrave" g2="quoteright" k="41" /> +<hkern g1="egrave" g2="quotedblleft" k="55" /> +<hkern g1="egrave" g2="quotedblright" k="41" /> +<hkern g1="eacute" g2="quotedbl" k="20" /> +<hkern g1="eacute" g2="quotesingle" k="20" /> +<hkern g1="eacute" g2="parenright" k="61" /> +<hkern g1="eacute" g2="slash" k="78" /> +<hkern g1="eacute" g2="question" k="29" /> +<hkern g1="eacute" g2="B" k="33" /> +<hkern g1="eacute" g2="D" k="33" /> +<hkern g1="eacute" g2="E" k="33" /> +<hkern g1="eacute" g2="F" k="33" /> +<hkern g1="eacute" g2="H" k="33" /> +<hkern g1="eacute" g2="I" k="33" /> +<hkern g1="eacute" g2="K" k="33" /> +<hkern g1="eacute" g2="L" k="33" /> +<hkern g1="eacute" g2="M" k="25" /> +<hkern g1="eacute" g2="N" k="33" /> +<hkern g1="eacute" g2="P" k="33" /> +<hkern g1="eacute" g2="R" k="33" /> +<hkern g1="eacute" g2="S" k="10" /> +<hkern g1="eacute" g2="T" k="88" /> +<hkern g1="eacute" g2="U" k="41" /> +<hkern g1="eacute" g2="V" k="80" /> +<hkern g1="eacute" g2="W" k="70" /> +<hkern g1="eacute" g2="X" k="27" /> +<hkern g1="eacute" g2="Y" k="100" /> +<hkern g1="eacute" g2="Z" k="16" /> +<hkern g1="eacute" g2="backslash" k="88" /> +<hkern g1="eacute" g2="bracketright" k="100" /> +<hkern g1="eacute" g2="a" k="5" /> +<hkern g1="eacute" g2="c" k="10" /> +<hkern g1="eacute" g2="d" k="10" /> +<hkern g1="eacute" g2="e" k="10" /> +<hkern g1="eacute" g2="o" k="10" /> +<hkern g1="eacute" g2="q" k="10" /> +<hkern g1="eacute" g2="t" k="15" /> +<hkern g1="eacute" g2="v" k="10" /> +<hkern g1="eacute" g2="w" k="8" /> +<hkern g1="eacute" g2="x" k="10" /> +<hkern g1="eacute" g2="y" k="10" /> +<hkern g1="eacute" g2="braceright" k="47" /> +<hkern g1="eacute" g2="Egrave" k="33" /> +<hkern g1="eacute" g2="Eacute" k="33" /> +<hkern g1="eacute" g2="Ecircumflex" k="33" /> +<hkern g1="eacute" g2="Edieresis" k="33" /> +<hkern g1="eacute" g2="Igrave" k="33" /> +<hkern g1="eacute" g2="Iacute" k="33" /> +<hkern g1="eacute" g2="Icircumflex" k="33" /> +<hkern g1="eacute" g2="Idieresis" k="33" /> +<hkern g1="eacute" g2="Eth" k="33" /> +<hkern g1="eacute" g2="Ntilde" k="33" /> +<hkern g1="eacute" g2="Ugrave" k="41" /> +<hkern g1="eacute" g2="Uacute" k="41" /> +<hkern g1="eacute" g2="Ucircumflex" k="41" /> +<hkern g1="eacute" g2="Udieresis" k="41" /> +<hkern g1="eacute" g2="Yacute" k="100" /> +<hkern g1="eacute" g2="Thorn" k="33" /> +<hkern g1="eacute" g2="agrave" k="5" /> +<hkern g1="eacute" g2="aacute" k="5" /> +<hkern g1="eacute" g2="acircumflex" k="5" /> +<hkern g1="eacute" g2="atilde" k="5" /> +<hkern g1="eacute" g2="adieresis" k="5" /> +<hkern g1="eacute" g2="aring" k="5" /> +<hkern g1="eacute" g2="ae" k="5" /> +<hkern g1="eacute" g2="ccedilla" k="10" /> +<hkern g1="eacute" g2="egrave" k="10" /> +<hkern g1="eacute" g2="eacute" k="10" /> +<hkern g1="eacute" g2="ecircumflex" k="10" /> +<hkern g1="eacute" g2="edieresis" k="10" /> +<hkern g1="eacute" g2="ograve" k="10" /> +<hkern g1="eacute" g2="oacute" k="10" /> +<hkern g1="eacute" g2="ocircumflex" k="10" /> +<hkern g1="eacute" g2="otilde" k="10" /> +<hkern g1="eacute" g2="odieresis" k="10" /> +<hkern g1="eacute" g2="oslash" k="10" /> +<hkern g1="eacute" g2="yacute" k="10" /> +<hkern g1="eacute" g2="ydieresis" k="10" /> +<hkern g1="eacute" g2="oe" k="10" /> +<hkern g1="eacute" g2="quoteleft" k="55" /> +<hkern g1="eacute" g2="quoteright" k="41" /> +<hkern g1="eacute" g2="quotedblleft" k="55" /> +<hkern g1="eacute" g2="quotedblright" k="41" /> +<hkern g1="ecircumflex" g2="quotedbl" k="20" /> +<hkern g1="ecircumflex" g2="quotesingle" k="20" /> +<hkern g1="ecircumflex" g2="parenright" k="61" /> +<hkern g1="ecircumflex" g2="slash" k="78" /> +<hkern g1="ecircumflex" g2="question" k="29" /> +<hkern g1="ecircumflex" g2="B" k="33" /> +<hkern g1="ecircumflex" g2="D" k="33" /> +<hkern g1="ecircumflex" g2="E" k="33" /> +<hkern g1="ecircumflex" g2="F" k="33" /> +<hkern g1="ecircumflex" g2="H" k="33" /> +<hkern g1="ecircumflex" g2="I" k="33" /> +<hkern g1="ecircumflex" g2="K" k="33" /> +<hkern g1="ecircumflex" g2="L" k="33" /> +<hkern g1="ecircumflex" g2="M" k="25" /> +<hkern g1="ecircumflex" g2="N" k="33" /> +<hkern g1="ecircumflex" g2="P" k="33" /> +<hkern g1="ecircumflex" g2="R" k="33" /> +<hkern g1="ecircumflex" g2="S" k="10" /> +<hkern g1="ecircumflex" g2="T" k="88" /> +<hkern g1="ecircumflex" g2="U" k="41" /> +<hkern g1="ecircumflex" g2="V" k="80" /> +<hkern g1="ecircumflex" g2="W" k="70" /> +<hkern g1="ecircumflex" g2="X" k="27" /> +<hkern g1="ecircumflex" g2="Y" k="100" /> +<hkern g1="ecircumflex" g2="Z" k="16" /> +<hkern g1="ecircumflex" g2="backslash" k="88" /> +<hkern g1="ecircumflex" g2="bracketright" k="100" /> +<hkern g1="ecircumflex" g2="a" k="5" /> +<hkern g1="ecircumflex" g2="c" k="10" /> +<hkern g1="ecircumflex" g2="d" k="10" /> +<hkern g1="ecircumflex" g2="e" k="10" /> +<hkern g1="ecircumflex" g2="o" k="10" /> +<hkern g1="ecircumflex" g2="q" k="10" /> +<hkern g1="ecircumflex" g2="t" k="15" /> +<hkern g1="ecircumflex" g2="v" k="10" /> +<hkern g1="ecircumflex" g2="w" k="8" /> +<hkern g1="ecircumflex" g2="x" k="10" /> +<hkern g1="ecircumflex" g2="y" k="10" /> +<hkern g1="ecircumflex" g2="braceright" k="47" /> +<hkern g1="ecircumflex" g2="Egrave" k="33" /> +<hkern g1="ecircumflex" g2="Eacute" k="33" /> +<hkern g1="ecircumflex" g2="Ecircumflex" k="33" /> +<hkern g1="ecircumflex" g2="Edieresis" k="33" /> +<hkern g1="ecircumflex" g2="Igrave" k="33" /> +<hkern g1="ecircumflex" g2="Iacute" k="33" /> +<hkern g1="ecircumflex" g2="Icircumflex" k="33" /> +<hkern g1="ecircumflex" g2="Idieresis" k="33" /> +<hkern g1="ecircumflex" g2="Eth" k="33" /> +<hkern g1="ecircumflex" g2="Ntilde" k="33" /> +<hkern g1="ecircumflex" g2="Ugrave" k="41" /> +<hkern g1="ecircumflex" g2="Uacute" k="41" /> +<hkern g1="ecircumflex" g2="Ucircumflex" k="41" /> +<hkern g1="ecircumflex" g2="Udieresis" k="41" /> +<hkern g1="ecircumflex" g2="Yacute" k="100" /> +<hkern g1="ecircumflex" g2="Thorn" k="33" /> +<hkern g1="ecircumflex" g2="agrave" k="5" /> +<hkern g1="ecircumflex" g2="aacute" k="5" /> +<hkern g1="ecircumflex" g2="acircumflex" k="5" /> +<hkern g1="ecircumflex" g2="atilde" k="5" /> +<hkern g1="ecircumflex" g2="adieresis" k="5" /> +<hkern g1="ecircumflex" g2="aring" k="5" /> +<hkern g1="ecircumflex" g2="ae" k="5" /> +<hkern g1="ecircumflex" g2="ccedilla" k="10" /> +<hkern g1="ecircumflex" g2="egrave" k="10" /> +<hkern g1="ecircumflex" g2="eacute" k="10" /> +<hkern g1="ecircumflex" g2="ecircumflex" k="10" /> +<hkern g1="ecircumflex" g2="edieresis" k="10" /> +<hkern g1="ecircumflex" g2="ograve" k="10" /> +<hkern g1="ecircumflex" g2="oacute" k="10" /> +<hkern g1="ecircumflex" g2="ocircumflex" k="10" /> +<hkern g1="ecircumflex" g2="otilde" k="10" /> +<hkern g1="ecircumflex" g2="odieresis" k="10" /> +<hkern g1="ecircumflex" g2="oslash" k="10" /> +<hkern g1="ecircumflex" g2="yacute" k="10" /> +<hkern g1="ecircumflex" g2="ydieresis" k="10" /> +<hkern g1="ecircumflex" g2="oe" k="10" /> +<hkern g1="ecircumflex" g2="quoteleft" k="55" /> +<hkern g1="ecircumflex" g2="quoteright" k="41" /> +<hkern g1="ecircumflex" g2="quotedblleft" k="55" /> +<hkern g1="ecircumflex" g2="quotedblright" k="41" /> +<hkern g1="edieresis" g2="quotedbl" k="20" /> +<hkern g1="edieresis" g2="quotesingle" k="20" /> +<hkern g1="edieresis" g2="parenright" k="61" /> +<hkern g1="edieresis" g2="slash" k="78" /> +<hkern g1="edieresis" g2="question" k="29" /> +<hkern g1="edieresis" g2="B" k="33" /> +<hkern g1="edieresis" g2="D" k="33" /> +<hkern g1="edieresis" g2="E" k="33" /> +<hkern g1="edieresis" g2="F" k="33" /> +<hkern g1="edieresis" g2="H" k="33" /> +<hkern g1="edieresis" g2="I" k="33" /> +<hkern g1="edieresis" g2="K" k="33" /> +<hkern g1="edieresis" g2="L" k="33" /> +<hkern g1="edieresis" g2="M" k="25" /> +<hkern g1="edieresis" g2="N" k="33" /> +<hkern g1="edieresis" g2="P" k="33" /> +<hkern g1="edieresis" g2="R" k="33" /> +<hkern g1="edieresis" g2="S" k="10" /> +<hkern g1="edieresis" g2="T" k="88" /> +<hkern g1="edieresis" g2="U" k="41" /> +<hkern g1="edieresis" g2="V" k="80" /> +<hkern g1="edieresis" g2="W" k="70" /> +<hkern g1="edieresis" g2="X" k="27" /> +<hkern g1="edieresis" g2="Y" k="100" /> +<hkern g1="edieresis" g2="Z" k="16" /> +<hkern g1="edieresis" g2="backslash" k="88" /> +<hkern g1="edieresis" g2="bracketright" k="100" /> +<hkern g1="edieresis" g2="a" k="5" /> +<hkern g1="edieresis" g2="c" k="10" /> +<hkern g1="edieresis" g2="d" k="10" /> +<hkern g1="edieresis" g2="e" k="10" /> +<hkern g1="edieresis" g2="o" k="10" /> +<hkern g1="edieresis" g2="q" k="10" /> +<hkern g1="edieresis" g2="t" k="15" /> +<hkern g1="edieresis" g2="v" k="10" /> +<hkern g1="edieresis" g2="w" k="8" /> +<hkern g1="edieresis" g2="x" k="10" /> +<hkern g1="edieresis" g2="y" k="10" /> +<hkern g1="edieresis" g2="braceright" k="47" /> +<hkern g1="edieresis" g2="Egrave" k="33" /> +<hkern g1="edieresis" g2="Eacute" k="33" /> +<hkern g1="edieresis" g2="Ecircumflex" k="33" /> +<hkern g1="edieresis" g2="Edieresis" k="33" /> +<hkern g1="edieresis" g2="Igrave" k="33" /> +<hkern g1="edieresis" g2="Iacute" k="33" /> +<hkern g1="edieresis" g2="Icircumflex" k="33" /> +<hkern g1="edieresis" g2="Idieresis" k="33" /> +<hkern g1="edieresis" g2="Eth" k="33" /> +<hkern g1="edieresis" g2="Ntilde" k="33" /> +<hkern g1="edieresis" g2="Ugrave" k="41" /> +<hkern g1="edieresis" g2="Uacute" k="41" /> +<hkern g1="edieresis" g2="Ucircumflex" k="41" /> +<hkern g1="edieresis" g2="Udieresis" k="41" /> +<hkern g1="edieresis" g2="Yacute" k="100" /> +<hkern g1="edieresis" g2="Thorn" k="33" /> +<hkern g1="edieresis" g2="agrave" k="5" /> +<hkern g1="edieresis" g2="aacute" k="5" /> +<hkern g1="edieresis" g2="acircumflex" k="5" /> +<hkern g1="edieresis" g2="atilde" k="5" /> +<hkern g1="edieresis" g2="adieresis" k="5" /> +<hkern g1="edieresis" g2="aring" k="5" /> +<hkern g1="edieresis" g2="ae" k="5" /> +<hkern g1="edieresis" g2="ccedilla" k="10" /> +<hkern g1="edieresis" g2="egrave" k="10" /> +<hkern g1="edieresis" g2="eacute" k="10" /> +<hkern g1="edieresis" g2="ecircumflex" k="10" /> +<hkern g1="edieresis" g2="edieresis" k="10" /> +<hkern g1="edieresis" g2="ograve" k="10" /> +<hkern g1="edieresis" g2="oacute" k="10" /> +<hkern g1="edieresis" g2="ocircumflex" k="10" /> +<hkern g1="edieresis" g2="otilde" k="10" /> +<hkern g1="edieresis" g2="odieresis" k="10" /> +<hkern g1="edieresis" g2="oslash" k="10" /> +<hkern g1="edieresis" g2="yacute" k="10" /> +<hkern g1="edieresis" g2="ydieresis" k="10" /> +<hkern g1="edieresis" g2="oe" k="10" /> +<hkern g1="edieresis" g2="quoteleft" k="55" /> +<hkern g1="edieresis" g2="quoteright" k="41" /> +<hkern g1="edieresis" g2="quotedblleft" k="55" /> +<hkern g1="edieresis" g2="quotedblright" k="41" /> +<hkern g1="igrave" g2="slash" k="43" /> +<hkern g1="igrave" g2="B" k="14" /> +<hkern g1="igrave" g2="C" k="23" /> +<hkern g1="igrave" g2="D" k="14" /> +<hkern g1="igrave" g2="E" k="14" /> +<hkern g1="igrave" g2="F" k="14" /> +<hkern g1="igrave" g2="G" k="20" /> +<hkern g1="igrave" g2="H" k="14" /> +<hkern g1="igrave" g2="I" k="14" /> +<hkern g1="igrave" g2="K" k="14" /> +<hkern g1="igrave" g2="L" k="14" /> +<hkern g1="igrave" g2="M" k="10" /> +<hkern g1="igrave" g2="N" k="14" /> +<hkern g1="igrave" g2="O" k="23" /> +<hkern g1="igrave" g2="P" k="14" /> +<hkern g1="igrave" g2="Q" k="23" /> +<hkern g1="igrave" g2="R" k="14" /> +<hkern g1="igrave" g2="T" k="14" /> +<hkern g1="igrave" g2="U" k="25" /> +<hkern g1="igrave" g2="W" k="18" /> +<hkern g1="igrave" g2="Y" k="12" /> +<hkern g1="igrave" g2="t" k="8" /> +<hkern g1="igrave" g2="w" k="10" /> +<hkern g1="igrave" g2="y" k="10" /> +<hkern g1="igrave" g2="Ccedilla" k="23" /> +<hkern g1="igrave" g2="Egrave" k="14" /> +<hkern g1="igrave" g2="Eacute" k="14" /> +<hkern g1="igrave" g2="Ecircumflex" k="14" /> +<hkern g1="igrave" g2="Edieresis" k="14" /> +<hkern g1="igrave" g2="Igrave" k="14" /> +<hkern g1="igrave" g2="Iacute" k="14" /> +<hkern g1="igrave" g2="Icircumflex" k="14" /> +<hkern g1="igrave" g2="Idieresis" k="14" /> +<hkern g1="igrave" g2="Eth" k="14" /> +<hkern g1="igrave" g2="Ntilde" k="14" /> +<hkern g1="igrave" g2="Ograve" k="23" /> +<hkern g1="igrave" g2="Oacute" k="23" /> +<hkern g1="igrave" g2="Ocircumflex" k="23" /> +<hkern g1="igrave" g2="Otilde" k="23" /> +<hkern g1="igrave" g2="Odieresis" k="23" /> +<hkern g1="igrave" g2="Oslash" k="23" /> +<hkern g1="igrave" g2="Ugrave" k="25" /> +<hkern g1="igrave" g2="Uacute" k="25" /> +<hkern g1="igrave" g2="Ucircumflex" k="25" /> +<hkern g1="igrave" g2="Udieresis" k="25" /> +<hkern g1="igrave" g2="Yacute" k="12" /> +<hkern g1="igrave" g2="Thorn" k="14" /> +<hkern g1="igrave" g2="yacute" k="10" /> +<hkern g1="igrave" g2="ydieresis" k="10" /> +<hkern g1="igrave" g2="OE" k="23" /> +<hkern g1="iacute" g2="parenright" k="-45" /> +<hkern g1="iacute" g2="slash" k="43" /> +<hkern g1="iacute" g2="B" k="14" /> +<hkern g1="iacute" g2="C" k="23" /> +<hkern g1="iacute" g2="D" k="14" /> +<hkern g1="iacute" g2="E" k="14" /> +<hkern g1="iacute" g2="F" k="14" /> +<hkern g1="iacute" g2="G" k="20" /> +<hkern g1="iacute" g2="H" k="14" /> +<hkern g1="iacute" g2="I" k="14" /> +<hkern g1="iacute" g2="K" k="14" /> +<hkern g1="iacute" g2="L" k="14" /> +<hkern g1="iacute" g2="M" k="10" /> +<hkern g1="iacute" g2="N" k="14" /> +<hkern g1="iacute" g2="O" k="23" /> +<hkern g1="iacute" g2="P" k="14" /> +<hkern g1="iacute" g2="Q" k="23" /> +<hkern g1="iacute" g2="R" k="14" /> +<hkern g1="iacute" g2="T" k="14" /> +<hkern g1="iacute" g2="U" k="25" /> +<hkern g1="iacute" g2="W" k="18" /> +<hkern g1="iacute" g2="Y" k="12" /> +<hkern g1="iacute" g2="backslash" k="-43" /> +<hkern g1="iacute" g2="bracketright" k="-59" /> +<hkern g1="iacute" g2="b" k="-33" /> +<hkern g1="iacute" g2="t" k="8" /> +<hkern g1="iacute" g2="w" k="10" /> +<hkern g1="iacute" g2="y" k="10" /> +<hkern g1="iacute" g2="braceright" k="-59" /> +<hkern g1="iacute" g2="Ccedilla" k="23" /> +<hkern g1="iacute" g2="Egrave" k="14" /> +<hkern g1="iacute" g2="Eacute" k="14" /> +<hkern g1="iacute" g2="Ecircumflex" k="14" /> +<hkern g1="iacute" g2="Edieresis" k="14" /> +<hkern g1="iacute" g2="Igrave" k="14" /> +<hkern g1="iacute" g2="Iacute" k="14" /> +<hkern g1="iacute" g2="Icircumflex" k="14" /> +<hkern g1="iacute" g2="Idieresis" k="14" /> +<hkern g1="iacute" g2="Eth" k="14" /> +<hkern g1="iacute" g2="Ntilde" k="14" /> +<hkern g1="iacute" g2="Ograve" k="23" /> +<hkern g1="iacute" g2="Oacute" k="23" /> +<hkern g1="iacute" g2="Ocircumflex" k="23" /> +<hkern g1="iacute" g2="Otilde" k="23" /> +<hkern g1="iacute" g2="Odieresis" k="23" /> +<hkern g1="iacute" g2="Oslash" k="23" /> +<hkern g1="iacute" g2="Ugrave" k="25" /> +<hkern g1="iacute" g2="Uacute" k="25" /> +<hkern g1="iacute" g2="Ucircumflex" k="25" /> +<hkern g1="iacute" g2="Udieresis" k="25" /> +<hkern g1="iacute" g2="Yacute" k="12" /> +<hkern g1="iacute" g2="Thorn" k="14" /> +<hkern g1="iacute" g2="yacute" k="10" /> +<hkern g1="iacute" g2="thorn" k="-33" /> +<hkern g1="iacute" g2="ydieresis" k="10" /> +<hkern g1="iacute" g2="OE" k="23" /> +<hkern g1="icircumflex" g2="slash" k="43" /> +<hkern g1="icircumflex" g2="B" k="14" /> +<hkern g1="icircumflex" g2="C" k="23" /> +<hkern g1="icircumflex" g2="D" k="14" /> +<hkern g1="icircumflex" g2="E" k="14" /> +<hkern g1="icircumflex" g2="F" k="14" /> +<hkern g1="icircumflex" g2="G" k="20" /> +<hkern g1="icircumflex" g2="H" k="14" /> +<hkern g1="icircumflex" g2="I" k="14" /> +<hkern g1="icircumflex" g2="K" k="14" /> +<hkern g1="icircumflex" g2="L" k="14" /> +<hkern g1="icircumflex" g2="M" k="10" /> +<hkern g1="icircumflex" g2="N" k="14" /> +<hkern g1="icircumflex" g2="O" k="23" /> +<hkern g1="icircumflex" g2="P" k="14" /> +<hkern g1="icircumflex" g2="Q" k="23" /> +<hkern g1="icircumflex" g2="R" k="14" /> +<hkern g1="icircumflex" g2="T" k="14" /> +<hkern g1="icircumflex" g2="U" k="25" /> +<hkern g1="icircumflex" g2="V" k="-80" /> +<hkern g1="icircumflex" g2="W" k="-55" /> +<hkern g1="icircumflex" g2="Y" k="12" /> +<hkern g1="icircumflex" g2="t" k="8" /> +<hkern g1="icircumflex" g2="w" k="10" /> +<hkern g1="icircumflex" g2="y" k="10" /> +<hkern g1="icircumflex" g2="Ccedilla" k="23" /> +<hkern g1="icircumflex" g2="Egrave" k="14" /> +<hkern g1="icircumflex" g2="Eacute" k="14" /> +<hkern g1="icircumflex" g2="Ecircumflex" k="14" /> +<hkern g1="icircumflex" g2="Edieresis" k="14" /> +<hkern g1="icircumflex" g2="Igrave" k="14" /> +<hkern g1="icircumflex" g2="Iacute" k="14" /> +<hkern g1="icircumflex" g2="Icircumflex" k="14" /> +<hkern g1="icircumflex" g2="Idieresis" k="14" /> +<hkern g1="icircumflex" g2="Eth" k="14" /> +<hkern g1="icircumflex" g2="Ntilde" k="14" /> +<hkern g1="icircumflex" g2="Ograve" k="23" /> +<hkern g1="icircumflex" g2="Oacute" k="23" /> +<hkern g1="icircumflex" g2="Ocircumflex" k="23" /> +<hkern g1="icircumflex" g2="Otilde" k="23" /> +<hkern g1="icircumflex" g2="Odieresis" k="23" /> +<hkern g1="icircumflex" g2="Oslash" k="23" /> +<hkern g1="icircumflex" g2="Ugrave" k="25" /> +<hkern g1="icircumflex" g2="Uacute" k="25" /> +<hkern g1="icircumflex" g2="Ucircumflex" k="25" /> +<hkern g1="icircumflex" g2="Udieresis" k="25" /> +<hkern g1="icircumflex" g2="Yacute" k="12" /> +<hkern g1="icircumflex" g2="Thorn" k="14" /> +<hkern g1="icircumflex" g2="yacute" k="10" /> +<hkern g1="icircumflex" g2="ydieresis" k="10" /> +<hkern g1="icircumflex" g2="OE" k="23" /> +<hkern g1="idieresis" g2="slash" k="43" /> +<hkern g1="idieresis" g2="B" k="14" /> +<hkern g1="idieresis" g2="C" k="23" /> +<hkern g1="idieresis" g2="D" k="14" /> +<hkern g1="idieresis" g2="E" k="14" /> +<hkern g1="idieresis" g2="F" k="14" /> +<hkern g1="idieresis" g2="G" k="20" /> +<hkern g1="idieresis" g2="H" k="14" /> +<hkern g1="idieresis" g2="I" k="14" /> +<hkern g1="idieresis" g2="K" k="14" /> +<hkern g1="idieresis" g2="L" k="14" /> +<hkern g1="idieresis" g2="M" k="10" /> +<hkern g1="idieresis" g2="N" k="14" /> +<hkern g1="idieresis" g2="O" k="23" /> +<hkern g1="idieresis" g2="P" k="14" /> +<hkern g1="idieresis" g2="Q" k="23" /> +<hkern g1="idieresis" g2="R" k="14" /> +<hkern g1="idieresis" g2="T" k="14" /> +<hkern g1="idieresis" g2="U" k="25" /> +<hkern g1="idieresis" g2="V" k="-57" /> +<hkern g1="idieresis" g2="W" k="-35" /> +<hkern g1="idieresis" g2="Y" k="12" /> +<hkern g1="idieresis" g2="t" k="8" /> +<hkern g1="idieresis" g2="w" k="10" /> +<hkern g1="idieresis" g2="y" k="10" /> +<hkern g1="idieresis" g2="Ccedilla" k="23" /> +<hkern g1="idieresis" g2="Egrave" k="14" /> +<hkern g1="idieresis" g2="Eacute" k="14" /> +<hkern g1="idieresis" g2="Ecircumflex" k="14" /> +<hkern g1="idieresis" g2="Edieresis" k="14" /> +<hkern g1="idieresis" g2="Igrave" k="14" /> +<hkern g1="idieresis" g2="Iacute" k="14" /> +<hkern g1="idieresis" g2="Icircumflex" k="14" /> +<hkern g1="idieresis" g2="Idieresis" k="14" /> +<hkern g1="idieresis" g2="Eth" k="14" /> +<hkern g1="idieresis" g2="Ntilde" k="14" /> +<hkern g1="idieresis" g2="Ograve" k="23" /> +<hkern g1="idieresis" g2="Oacute" k="23" /> +<hkern g1="idieresis" g2="Ocircumflex" k="23" /> +<hkern g1="idieresis" g2="Otilde" k="23" /> +<hkern g1="idieresis" g2="Odieresis" k="23" /> +<hkern g1="idieresis" g2="Oslash" k="23" /> +<hkern g1="idieresis" g2="Ugrave" k="25" /> +<hkern g1="idieresis" g2="Uacute" k="25" /> +<hkern g1="idieresis" g2="Ucircumflex" k="25" /> +<hkern g1="idieresis" g2="Udieresis" k="25" /> +<hkern g1="idieresis" g2="Yacute" k="12" /> +<hkern g1="idieresis" g2="Thorn" k="14" /> +<hkern g1="idieresis" g2="yacute" k="10" /> +<hkern g1="idieresis" g2="ydieresis" k="10" /> +<hkern g1="idieresis" g2="OE" k="23" /> +<hkern g1="eth" g2="quotedbl" k="16" /> +<hkern g1="eth" g2="quotesingle" k="16" /> +<hkern g1="eth" g2="parenright" k="55" /> +<hkern g1="eth" g2="comma" k="16" /> +<hkern g1="eth" g2="period" k="16" /> +<hkern g1="eth" g2="slash" k="98" /> +<hkern g1="eth" g2="backslash" k="51" /> +<hkern g1="eth" g2="bracketright" k="80" /> +<hkern g1="eth" g2="h" k="14" /> +<hkern g1="eth" g2="k" k="14" /> +<hkern g1="eth" g2="l" k="12" /> +<hkern g1="eth" g2="x" k="20" /> +<hkern g1="eth" g2="braceright" k="45" /> +<hkern g1="eth" g2="quoteleft" k="27" /> +<hkern g1="eth" g2="quoteright" k="23" /> +<hkern g1="eth" g2="quotesinglbase" k="16" /> +<hkern g1="eth" g2="quotedblleft" k="27" /> +<hkern g1="eth" g2="quotedblright" k="23" /> +<hkern g1="eth" g2="quotedblbase" k="16" /> +<hkern g1="ntilde" g2="quotedbl" k="27" /> +<hkern g1="ntilde" g2="quotesingle" k="27" /> +<hkern g1="ntilde" g2="parenright" k="51" /> +<hkern g1="ntilde" g2="asterisk" k="18" /> +<hkern g1="ntilde" g2="slash" k="39" /> +<hkern g1="ntilde" g2="question" k="39" /> +<hkern g1="ntilde" g2="B" k="12" /> +<hkern g1="ntilde" g2="C" k="25" /> +<hkern g1="ntilde" g2="D" k="12" /> +<hkern g1="ntilde" g2="E" k="12" /> +<hkern g1="ntilde" g2="F" k="12" /> +<hkern g1="ntilde" g2="G" k="23" /> +<hkern g1="ntilde" g2="H" k="12" /> +<hkern g1="ntilde" g2="I" k="12" /> +<hkern g1="ntilde" g2="K" k="12" /> +<hkern g1="ntilde" g2="L" k="12" /> +<hkern g1="ntilde" g2="N" k="12" /> +<hkern g1="ntilde" g2="O" k="25" /> +<hkern g1="ntilde" g2="P" k="12" /> +<hkern g1="ntilde" g2="Q" k="25" /> +<hkern g1="ntilde" g2="R" k="12" /> +<hkern g1="ntilde" g2="T" k="100" /> +<hkern g1="ntilde" g2="U" k="57" /> +<hkern g1="ntilde" g2="V" k="80" /> +<hkern g1="ntilde" g2="W" k="80" /> +<hkern g1="ntilde" g2="Y" k="100" /> +<hkern g1="ntilde" g2="backslash" k="113" /> +<hkern g1="ntilde" g2="bracketright" k="96" /> +<hkern g1="ntilde" g2="j" k="10" /> +<hkern g1="ntilde" g2="t" k="18" /> +<hkern g1="ntilde" g2="v" k="30" /> +<hkern g1="ntilde" g2="w" k="35" /> +<hkern g1="ntilde" g2="y" k="15" /> +<hkern g1="ntilde" g2="braceright" k="45" /> +<hkern g1="ntilde" g2="Ccedilla" k="25" /> +<hkern g1="ntilde" g2="Egrave" k="12" /> +<hkern g1="ntilde" g2="Eacute" k="12" /> +<hkern g1="ntilde" g2="Ecircumflex" k="12" /> +<hkern g1="ntilde" g2="Edieresis" k="12" /> +<hkern g1="ntilde" g2="Igrave" k="12" /> +<hkern g1="ntilde" g2="Iacute" k="12" /> +<hkern g1="ntilde" g2="Icircumflex" k="12" /> +<hkern g1="ntilde" g2="Idieresis" k="12" /> +<hkern g1="ntilde" g2="Eth" k="12" /> +<hkern g1="ntilde" g2="Ntilde" k="12" /> +<hkern g1="ntilde" g2="Ograve" k="25" /> +<hkern g1="ntilde" g2="Oacute" k="25" /> +<hkern g1="ntilde" g2="Ocircumflex" k="25" /> +<hkern g1="ntilde" g2="Otilde" k="25" /> +<hkern g1="ntilde" g2="Odieresis" k="25" /> +<hkern g1="ntilde" g2="Oslash" k="25" /> +<hkern g1="ntilde" g2="Ugrave" k="57" /> +<hkern g1="ntilde" g2="Uacute" k="57" /> +<hkern g1="ntilde" g2="Ucircumflex" k="57" /> +<hkern g1="ntilde" g2="Udieresis" k="57" /> +<hkern g1="ntilde" g2="Yacute" k="100" /> +<hkern g1="ntilde" g2="Thorn" k="12" /> +<hkern g1="ntilde" g2="yacute" k="15" /> +<hkern g1="ntilde" g2="ydieresis" k="15" /> +<hkern g1="ntilde" g2="OE" k="25" /> +<hkern g1="ntilde" g2="quoteleft" k="59" /> +<hkern g1="ntilde" g2="quoteright" k="47" /> +<hkern g1="ntilde" g2="quotedblleft" k="59" /> +<hkern g1="ntilde" g2="quotedblright" k="47" /> +<hkern g1="ograve" g2="quotedbl" k="29" /> +<hkern g1="ograve" g2="quotesingle" k="29" /> +<hkern g1="ograve" g2="parenright" k="100" /> +<hkern g1="ograve" g2="slash" k="98" /> +<hkern g1="ograve" g2="question" k="35" /> +<hkern g1="ograve" g2="A" k="15" /> +<hkern g1="ograve" g2="B" k="49" /> +<hkern g1="ograve" g2="D" k="49" /> +<hkern g1="ograve" g2="E" k="49" /> +<hkern g1="ograve" g2="F" k="49" /> +<hkern g1="ograve" g2="H" k="49" /> +<hkern g1="ograve" g2="I" k="49" /> +<hkern g1="ograve" g2="K" k="49" /> +<hkern g1="ograve" g2="L" k="49" /> +<hkern g1="ograve" g2="M" k="43" /> +<hkern g1="ograve" g2="N" k="49" /> +<hkern g1="ograve" g2="P" k="49" /> +<hkern g1="ograve" g2="R" k="49" /> +<hkern g1="ograve" g2="S" k="12" /> +<hkern g1="ograve" g2="T" k="100" /> +<hkern g1="ograve" g2="U" k="41" /> +<hkern g1="ograve" g2="V" k="70" /> +<hkern g1="ograve" g2="W" k="100" /> +<hkern g1="ograve" g2="X" k="94" /> +<hkern g1="ograve" g2="Y" k="115" /> +<hkern g1="ograve" g2="Z" k="43" /> +<hkern g1="ograve" g2="backslash" k="98" /> +<hkern g1="ograve" g2="bracketright" k="104" /> +<hkern g1="ograve" g2="f" k="10" /> +<hkern g1="ograve" g2="v" k="10" /> +<hkern g1="ograve" g2="w" k="20" /> +<hkern g1="ograve" g2="x" k="10" /> +<hkern g1="ograve" g2="y" k="16" /> +<hkern g1="ograve" g2="braceright" k="53" /> +<hkern g1="ograve" g2="Agrave" k="15" /> +<hkern g1="ograve" g2="Aacute" k="15" /> +<hkern g1="ograve" g2="Acircumflex" k="15" /> +<hkern g1="ograve" g2="Atilde" k="15" /> +<hkern g1="ograve" g2="Adieresis" k="15" /> +<hkern g1="ograve" g2="Aring" k="15" /> +<hkern g1="ograve" g2="Egrave" k="49" /> +<hkern g1="ograve" g2="Eacute" k="49" /> +<hkern g1="ograve" g2="Ecircumflex" k="49" /> +<hkern g1="ograve" g2="Edieresis" k="49" /> +<hkern g1="ograve" g2="Igrave" k="49" /> +<hkern g1="ograve" g2="Iacute" k="49" /> +<hkern g1="ograve" g2="Icircumflex" k="49" /> +<hkern g1="ograve" g2="Idieresis" k="49" /> +<hkern g1="ograve" g2="Eth" k="49" /> +<hkern g1="ograve" g2="Ntilde" k="49" /> +<hkern g1="ograve" g2="Ugrave" k="41" /> +<hkern g1="ograve" g2="Uacute" k="41" /> +<hkern g1="ograve" g2="Ucircumflex" k="41" /> +<hkern g1="ograve" g2="Udieresis" k="41" /> +<hkern g1="ograve" g2="Yacute" k="115" /> +<hkern g1="ograve" g2="Thorn" k="49" /> +<hkern g1="ograve" g2="germandbls" k="10" /> +<hkern g1="ograve" g2="yacute" k="16" /> +<hkern g1="ograve" g2="ydieresis" k="16" /> +<hkern g1="ograve" g2="quoteleft" k="70" /> +<hkern g1="ograve" g2="quoteright" k="53" /> +<hkern g1="ograve" g2="quotedblleft" k="70" /> +<hkern g1="ograve" g2="quotedblright" k="53" /> +<hkern g1="oacute" g2="quotedbl" k="29" /> +<hkern g1="oacute" g2="quotesingle" k="29" /> +<hkern g1="oacute" g2="parenright" k="100" /> +<hkern g1="oacute" g2="slash" k="98" /> +<hkern g1="oacute" g2="question" k="35" /> +<hkern g1="oacute" g2="A" k="15" /> +<hkern g1="oacute" g2="B" k="49" /> +<hkern g1="oacute" g2="D" k="49" /> +<hkern g1="oacute" g2="E" k="49" /> +<hkern g1="oacute" g2="F" k="49" /> +<hkern g1="oacute" g2="H" k="49" /> +<hkern g1="oacute" g2="I" k="49" /> +<hkern g1="oacute" g2="K" k="49" /> +<hkern g1="oacute" g2="L" k="49" /> +<hkern g1="oacute" g2="M" k="43" /> +<hkern g1="oacute" g2="N" k="49" /> +<hkern g1="oacute" g2="P" k="49" /> +<hkern g1="oacute" g2="R" k="49" /> +<hkern g1="oacute" g2="S" k="12" /> +<hkern g1="oacute" g2="T" k="100" /> +<hkern g1="oacute" g2="U" k="41" /> +<hkern g1="oacute" g2="V" k="70" /> +<hkern g1="oacute" g2="W" k="100" /> +<hkern g1="oacute" g2="X" k="94" /> +<hkern g1="oacute" g2="Y" k="115" /> +<hkern g1="oacute" g2="Z" k="43" /> +<hkern g1="oacute" g2="backslash" k="98" /> +<hkern g1="oacute" g2="bracketright" k="104" /> +<hkern g1="oacute" g2="f" k="10" /> +<hkern g1="oacute" g2="v" k="10" /> +<hkern g1="oacute" g2="w" k="20" /> +<hkern g1="oacute" g2="x" k="10" /> +<hkern g1="oacute" g2="y" k="16" /> +<hkern g1="oacute" g2="braceright" k="53" /> +<hkern g1="oacute" g2="Agrave" k="15" /> +<hkern g1="oacute" g2="Aacute" k="15" /> +<hkern g1="oacute" g2="Acircumflex" k="15" /> +<hkern g1="oacute" g2="Atilde" k="15" /> +<hkern g1="oacute" g2="Adieresis" k="15" /> +<hkern g1="oacute" g2="Aring" k="15" /> +<hkern g1="oacute" g2="Egrave" k="49" /> +<hkern g1="oacute" g2="Eacute" k="49" /> +<hkern g1="oacute" g2="Ecircumflex" k="49" /> +<hkern g1="oacute" g2="Edieresis" k="49" /> +<hkern g1="oacute" g2="Igrave" k="49" /> +<hkern g1="oacute" g2="Iacute" k="49" /> +<hkern g1="oacute" g2="Icircumflex" k="49" /> +<hkern g1="oacute" g2="Idieresis" k="49" /> +<hkern g1="oacute" g2="Eth" k="49" /> +<hkern g1="oacute" g2="Ntilde" k="49" /> +<hkern g1="oacute" g2="Ugrave" k="41" /> +<hkern g1="oacute" g2="Uacute" k="41" /> +<hkern g1="oacute" g2="Ucircumflex" k="41" /> +<hkern g1="oacute" g2="Udieresis" k="41" /> +<hkern g1="oacute" g2="Yacute" k="115" /> +<hkern g1="oacute" g2="Thorn" k="49" /> +<hkern g1="oacute" g2="germandbls" k="10" /> +<hkern g1="oacute" g2="yacute" k="16" /> +<hkern g1="oacute" g2="ydieresis" k="16" /> +<hkern g1="oacute" g2="quoteleft" k="70" /> +<hkern g1="oacute" g2="quoteright" k="53" /> +<hkern g1="oacute" g2="quotedblleft" k="70" /> +<hkern g1="oacute" g2="quotedblright" k="53" /> +<hkern g1="ocircumflex" g2="quotedbl" k="29" /> +<hkern g1="ocircumflex" g2="quotesingle" k="29" /> +<hkern g1="ocircumflex" g2="parenright" k="100" /> +<hkern g1="ocircumflex" g2="slash" k="98" /> +<hkern g1="ocircumflex" g2="question" k="35" /> +<hkern g1="ocircumflex" g2="A" k="15" /> +<hkern g1="ocircumflex" g2="B" k="49" /> +<hkern g1="ocircumflex" g2="D" k="49" /> +<hkern g1="ocircumflex" g2="E" k="49" /> +<hkern g1="ocircumflex" g2="F" k="49" /> +<hkern g1="ocircumflex" g2="H" k="49" /> +<hkern g1="ocircumflex" g2="I" k="49" /> +<hkern g1="ocircumflex" g2="K" k="49" /> +<hkern g1="ocircumflex" g2="L" k="49" /> +<hkern g1="ocircumflex" g2="M" k="43" /> +<hkern g1="ocircumflex" g2="N" k="49" /> +<hkern g1="ocircumflex" g2="P" k="49" /> +<hkern g1="ocircumflex" g2="R" k="49" /> +<hkern g1="ocircumflex" g2="S" k="12" /> +<hkern g1="ocircumflex" g2="T" k="100" /> +<hkern g1="ocircumflex" g2="U" k="41" /> +<hkern g1="ocircumflex" g2="V" k="70" /> +<hkern g1="ocircumflex" g2="W" k="100" /> +<hkern g1="ocircumflex" g2="X" k="94" /> +<hkern g1="ocircumflex" g2="Y" k="115" /> +<hkern g1="ocircumflex" g2="Z" k="43" /> +<hkern g1="ocircumflex" g2="backslash" k="98" /> +<hkern g1="ocircumflex" g2="bracketright" k="104" /> +<hkern g1="ocircumflex" g2="f" k="10" /> +<hkern g1="ocircumflex" g2="v" k="10" /> +<hkern g1="ocircumflex" g2="w" k="20" /> +<hkern g1="ocircumflex" g2="x" k="10" /> +<hkern g1="ocircumflex" g2="y" k="16" /> +<hkern g1="ocircumflex" g2="braceright" k="53" /> +<hkern g1="ocircumflex" g2="Agrave" k="15" /> +<hkern g1="ocircumflex" g2="Aacute" k="15" /> +<hkern g1="ocircumflex" g2="Acircumflex" k="15" /> +<hkern g1="ocircumflex" g2="Atilde" k="15" /> +<hkern g1="ocircumflex" g2="Adieresis" k="15" /> +<hkern g1="ocircumflex" g2="Aring" k="15" /> +<hkern g1="ocircumflex" g2="Egrave" k="49" /> +<hkern g1="ocircumflex" g2="Eacute" k="49" /> +<hkern g1="ocircumflex" g2="Ecircumflex" k="49" /> +<hkern g1="ocircumflex" g2="Edieresis" k="49" /> +<hkern g1="ocircumflex" g2="Igrave" k="49" /> +<hkern g1="ocircumflex" g2="Iacute" k="49" /> +<hkern g1="ocircumflex" g2="Icircumflex" k="49" /> +<hkern g1="ocircumflex" g2="Idieresis" k="49" /> +<hkern g1="ocircumflex" g2="Eth" k="49" /> +<hkern g1="ocircumflex" g2="Ntilde" k="49" /> +<hkern g1="ocircumflex" g2="Ugrave" k="41" /> +<hkern g1="ocircumflex" g2="Uacute" k="41" /> +<hkern g1="ocircumflex" g2="Ucircumflex" k="41" /> +<hkern g1="ocircumflex" g2="Udieresis" k="41" /> +<hkern g1="ocircumflex" g2="Yacute" k="115" /> +<hkern g1="ocircumflex" g2="Thorn" k="49" /> +<hkern g1="ocircumflex" g2="germandbls" k="10" /> +<hkern g1="ocircumflex" g2="yacute" k="16" /> +<hkern g1="ocircumflex" g2="ydieresis" k="16" /> +<hkern g1="ocircumflex" g2="quoteleft" k="70" /> +<hkern g1="ocircumflex" g2="quoteright" k="53" /> +<hkern g1="ocircumflex" g2="quotedblleft" k="70" /> +<hkern g1="ocircumflex" g2="quotedblright" k="53" /> +<hkern g1="otilde" g2="quotedbl" k="29" /> +<hkern g1="otilde" g2="quotesingle" k="29" /> +<hkern g1="otilde" g2="parenright" k="100" /> +<hkern g1="otilde" g2="slash" k="98" /> +<hkern g1="otilde" g2="question" k="35" /> +<hkern g1="otilde" g2="A" k="15" /> +<hkern g1="otilde" g2="B" k="49" /> +<hkern g1="otilde" g2="D" k="49" /> +<hkern g1="otilde" g2="E" k="49" /> +<hkern g1="otilde" g2="F" k="49" /> +<hkern g1="otilde" g2="H" k="49" /> +<hkern g1="otilde" g2="I" k="49" /> +<hkern g1="otilde" g2="K" k="49" /> +<hkern g1="otilde" g2="L" k="49" /> +<hkern g1="otilde" g2="M" k="43" /> +<hkern g1="otilde" g2="N" k="49" /> +<hkern g1="otilde" g2="P" k="49" /> +<hkern g1="otilde" g2="R" k="49" /> +<hkern g1="otilde" g2="S" k="12" /> +<hkern g1="otilde" g2="T" k="100" /> +<hkern g1="otilde" g2="U" k="41" /> +<hkern g1="otilde" g2="V" k="70" /> +<hkern g1="otilde" g2="W" k="100" /> +<hkern g1="otilde" g2="X" k="94" /> +<hkern g1="otilde" g2="Y" k="115" /> +<hkern g1="otilde" g2="Z" k="43" /> +<hkern g1="otilde" g2="backslash" k="98" /> +<hkern g1="otilde" g2="bracketright" k="104" /> +<hkern g1="otilde" g2="f" k="10" /> +<hkern g1="otilde" g2="v" k="10" /> +<hkern g1="otilde" g2="w" k="20" /> +<hkern g1="otilde" g2="x" k="10" /> +<hkern g1="otilde" g2="y" k="16" /> +<hkern g1="otilde" g2="braceright" k="53" /> +<hkern g1="otilde" g2="Agrave" k="15" /> +<hkern g1="otilde" g2="Aacute" k="15" /> +<hkern g1="otilde" g2="Acircumflex" k="15" /> +<hkern g1="otilde" g2="Atilde" k="15" /> +<hkern g1="otilde" g2="Adieresis" k="15" /> +<hkern g1="otilde" g2="Aring" k="15" /> +<hkern g1="otilde" g2="Egrave" k="49" /> +<hkern g1="otilde" g2="Eacute" k="49" /> +<hkern g1="otilde" g2="Ecircumflex" k="49" /> +<hkern g1="otilde" g2="Edieresis" k="49" /> +<hkern g1="otilde" g2="Igrave" k="49" /> +<hkern g1="otilde" g2="Iacute" k="49" /> +<hkern g1="otilde" g2="Icircumflex" k="49" /> +<hkern g1="otilde" g2="Idieresis" k="49" /> +<hkern g1="otilde" g2="Eth" k="49" /> +<hkern g1="otilde" g2="Ntilde" k="49" /> +<hkern g1="otilde" g2="Ugrave" k="41" /> +<hkern g1="otilde" g2="Uacute" k="41" /> +<hkern g1="otilde" g2="Ucircumflex" k="41" /> +<hkern g1="otilde" g2="Udieresis" k="41" /> +<hkern g1="otilde" g2="Yacute" k="115" /> +<hkern g1="otilde" g2="Thorn" k="49" /> +<hkern g1="otilde" g2="germandbls" k="10" /> +<hkern g1="otilde" g2="yacute" k="16" /> +<hkern g1="otilde" g2="ydieresis" k="16" /> +<hkern g1="otilde" g2="quoteleft" k="70" /> +<hkern g1="otilde" g2="quoteright" k="53" /> +<hkern g1="otilde" g2="quotedblleft" k="70" /> +<hkern g1="otilde" g2="quotedblright" k="53" /> +<hkern g1="odieresis" g2="quotedbl" k="29" /> +<hkern g1="odieresis" g2="quotesingle" k="29" /> +<hkern g1="odieresis" g2="parenright" k="100" /> +<hkern g1="odieresis" g2="slash" k="98" /> +<hkern g1="odieresis" g2="question" k="35" /> +<hkern g1="odieresis" g2="A" k="15" /> +<hkern g1="odieresis" g2="B" k="49" /> +<hkern g1="odieresis" g2="D" k="49" /> +<hkern g1="odieresis" g2="E" k="49" /> +<hkern g1="odieresis" g2="F" k="49" /> +<hkern g1="odieresis" g2="H" k="49" /> +<hkern g1="odieresis" g2="I" k="49" /> +<hkern g1="odieresis" g2="K" k="49" /> +<hkern g1="odieresis" g2="L" k="49" /> +<hkern g1="odieresis" g2="M" k="43" /> +<hkern g1="odieresis" g2="N" k="49" /> +<hkern g1="odieresis" g2="P" k="49" /> +<hkern g1="odieresis" g2="R" k="49" /> +<hkern g1="odieresis" g2="S" k="12" /> +<hkern g1="odieresis" g2="T" k="100" /> +<hkern g1="odieresis" g2="U" k="41" /> +<hkern g1="odieresis" g2="V" k="70" /> +<hkern g1="odieresis" g2="W" k="100" /> +<hkern g1="odieresis" g2="X" k="94" /> +<hkern g1="odieresis" g2="Y" k="115" /> +<hkern g1="odieresis" g2="Z" k="43" /> +<hkern g1="odieresis" g2="backslash" k="98" /> +<hkern g1="odieresis" g2="bracketright" k="104" /> +<hkern g1="odieresis" g2="f" k="10" /> +<hkern g1="odieresis" g2="v" k="10" /> +<hkern g1="odieresis" g2="w" k="20" /> +<hkern g1="odieresis" g2="x" k="10" /> +<hkern g1="odieresis" g2="y" k="16" /> +<hkern g1="odieresis" g2="braceright" k="53" /> +<hkern g1="odieresis" g2="Agrave" k="15" /> +<hkern g1="odieresis" g2="Aacute" k="15" /> +<hkern g1="odieresis" g2="Acircumflex" k="15" /> +<hkern g1="odieresis" g2="Atilde" k="15" /> +<hkern g1="odieresis" g2="Adieresis" k="15" /> +<hkern g1="odieresis" g2="Aring" k="15" /> +<hkern g1="odieresis" g2="Egrave" k="49" /> +<hkern g1="odieresis" g2="Eacute" k="49" /> +<hkern g1="odieresis" g2="Ecircumflex" k="49" /> +<hkern g1="odieresis" g2="Edieresis" k="49" /> +<hkern g1="odieresis" g2="Igrave" k="49" /> +<hkern g1="odieresis" g2="Iacute" k="49" /> +<hkern g1="odieresis" g2="Icircumflex" k="49" /> +<hkern g1="odieresis" g2="Idieresis" k="49" /> +<hkern g1="odieresis" g2="Eth" k="49" /> +<hkern g1="odieresis" g2="Ntilde" k="49" /> +<hkern g1="odieresis" g2="Ugrave" k="41" /> +<hkern g1="odieresis" g2="Uacute" k="41" /> +<hkern g1="odieresis" g2="Ucircumflex" k="41" /> +<hkern g1="odieresis" g2="Udieresis" k="41" /> +<hkern g1="odieresis" g2="Yacute" k="115" /> +<hkern g1="odieresis" g2="Thorn" k="49" /> +<hkern g1="odieresis" g2="germandbls" k="10" /> +<hkern g1="odieresis" g2="yacute" k="16" /> +<hkern g1="odieresis" g2="ydieresis" k="16" /> +<hkern g1="odieresis" g2="quoteleft" k="70" /> +<hkern g1="odieresis" g2="quoteright" k="53" /> +<hkern g1="odieresis" g2="quotedblleft" k="70" /> +<hkern g1="odieresis" g2="quotedblright" k="53" /> +<hkern g1="oslash" g2="quotedbl" k="29" /> +<hkern g1="oslash" g2="quotesingle" k="29" /> +<hkern g1="oslash" g2="parenright" k="100" /> +<hkern g1="oslash" g2="slash" k="98" /> +<hkern g1="oslash" g2="question" k="35" /> +<hkern g1="oslash" g2="A" k="15" /> +<hkern g1="oslash" g2="B" k="49" /> +<hkern g1="oslash" g2="D" k="49" /> +<hkern g1="oslash" g2="E" k="49" /> +<hkern g1="oslash" g2="F" k="49" /> +<hkern g1="oslash" g2="H" k="49" /> +<hkern g1="oslash" g2="I" k="49" /> +<hkern g1="oslash" g2="K" k="49" /> +<hkern g1="oslash" g2="L" k="49" /> +<hkern g1="oslash" g2="M" k="43" /> +<hkern g1="oslash" g2="N" k="49" /> +<hkern g1="oslash" g2="P" k="49" /> +<hkern g1="oslash" g2="R" k="49" /> +<hkern g1="oslash" g2="S" k="12" /> +<hkern g1="oslash" g2="T" k="100" /> +<hkern g1="oslash" g2="U" k="41" /> +<hkern g1="oslash" g2="V" k="70" /> +<hkern g1="oslash" g2="W" k="100" /> +<hkern g1="oslash" g2="X" k="94" /> +<hkern g1="oslash" g2="Y" k="115" /> +<hkern g1="oslash" g2="Z" k="43" /> +<hkern g1="oslash" g2="backslash" k="98" /> +<hkern g1="oslash" g2="bracketright" k="104" /> +<hkern g1="oslash" g2="f" k="10" /> +<hkern g1="oslash" g2="v" k="10" /> +<hkern g1="oslash" g2="w" k="20" /> +<hkern g1="oslash" g2="x" k="10" /> +<hkern g1="oslash" g2="y" k="16" /> +<hkern g1="oslash" g2="braceright" k="53" /> +<hkern g1="oslash" g2="Agrave" k="15" /> +<hkern g1="oslash" g2="Aacute" k="15" /> +<hkern g1="oslash" g2="Acircumflex" k="15" /> +<hkern g1="oslash" g2="Atilde" k="15" /> +<hkern g1="oslash" g2="Adieresis" k="15" /> +<hkern g1="oslash" g2="Aring" k="15" /> +<hkern g1="oslash" g2="Egrave" k="49" /> +<hkern g1="oslash" g2="Eacute" k="49" /> +<hkern g1="oslash" g2="Ecircumflex" k="49" /> +<hkern g1="oslash" g2="Edieresis" k="49" /> +<hkern g1="oslash" g2="Igrave" k="49" /> +<hkern g1="oslash" g2="Iacute" k="49" /> +<hkern g1="oslash" g2="Icircumflex" k="49" /> +<hkern g1="oslash" g2="Idieresis" k="49" /> +<hkern g1="oslash" g2="Eth" k="49" /> +<hkern g1="oslash" g2="Ntilde" k="49" /> +<hkern g1="oslash" g2="Ugrave" k="41" /> +<hkern g1="oslash" g2="Uacute" k="41" /> +<hkern g1="oslash" g2="Ucircumflex" k="41" /> +<hkern g1="oslash" g2="Udieresis" k="41" /> +<hkern g1="oslash" g2="Yacute" k="115" /> +<hkern g1="oslash" g2="Thorn" k="49" /> +<hkern g1="oslash" g2="germandbls" k="10" /> +<hkern g1="oslash" g2="yacute" k="16" /> +<hkern g1="oslash" g2="ydieresis" k="16" /> +<hkern g1="oslash" g2="quoteleft" k="70" /> +<hkern g1="oslash" g2="quoteright" k="53" /> +<hkern g1="oslash" g2="quotedblleft" k="70" /> +<hkern g1="oslash" g2="quotedblright" k="53" /> +<hkern g1="ugrave" g2="parenright" k="47" /> +<hkern g1="ugrave" g2="slash" k="41" /> +<hkern g1="ugrave" g2="question" k="20" /> +<hkern g1="ugrave" g2="B" k="16" /> +<hkern g1="ugrave" g2="C" k="25" /> +<hkern g1="ugrave" g2="D" k="16" /> +<hkern g1="ugrave" g2="E" k="16" /> +<hkern g1="ugrave" g2="F" k="16" /> +<hkern g1="ugrave" g2="G" k="23" /> +<hkern g1="ugrave" g2="H" k="16" /> +<hkern g1="ugrave" g2="I" k="16" /> +<hkern g1="ugrave" g2="K" k="16" /> +<hkern g1="ugrave" g2="L" k="16" /> +<hkern g1="ugrave" g2="M" k="8" /> +<hkern g1="ugrave" g2="N" k="16" /> +<hkern g1="ugrave" g2="O" k="25" /> +<hkern g1="ugrave" g2="P" k="16" /> +<hkern g1="ugrave" g2="Q" k="25" /> +<hkern g1="ugrave" g2="R" k="16" /> +<hkern g1="ugrave" g2="T" k="47" /> +<hkern g1="ugrave" g2="U" k="53" /> +<hkern g1="ugrave" g2="V" k="80" /> +<hkern g1="ugrave" g2="W" k="121" /> +<hkern g1="ugrave" g2="Y" k="123" /> +<hkern g1="ugrave" g2="backslash" k="86" /> +<hkern g1="ugrave" g2="bracketright" k="94" /> +<hkern g1="ugrave" g2="u" k="8" /> +<hkern g1="ugrave" g2="v" k="10" /> +<hkern g1="ugrave" g2="w" k="12" /> +<hkern g1="ugrave" g2="y" k="12" /> +<hkern g1="ugrave" g2="braceright" k="43" /> +<hkern g1="ugrave" g2="Ccedilla" k="25" /> +<hkern g1="ugrave" g2="Egrave" k="16" /> +<hkern g1="ugrave" g2="Eacute" k="16" /> +<hkern g1="ugrave" g2="Ecircumflex" k="16" /> +<hkern g1="ugrave" g2="Edieresis" k="16" /> +<hkern g1="ugrave" g2="Igrave" k="16" /> +<hkern g1="ugrave" g2="Iacute" k="16" /> +<hkern g1="ugrave" g2="Icircumflex" k="16" /> +<hkern g1="ugrave" g2="Idieresis" k="16" /> +<hkern g1="ugrave" g2="Eth" k="16" /> +<hkern g1="ugrave" g2="Ntilde" k="16" /> +<hkern g1="ugrave" g2="Ograve" k="25" /> +<hkern g1="ugrave" g2="Oacute" k="25" /> +<hkern g1="ugrave" g2="Ocircumflex" k="25" /> +<hkern g1="ugrave" g2="Otilde" k="25" /> +<hkern g1="ugrave" g2="Odieresis" k="25" /> +<hkern g1="ugrave" g2="Oslash" k="25" /> +<hkern g1="ugrave" g2="Ugrave" k="53" /> +<hkern g1="ugrave" g2="Uacute" k="53" /> +<hkern g1="ugrave" g2="Ucircumflex" k="53" /> +<hkern g1="ugrave" g2="Udieresis" k="53" /> +<hkern g1="ugrave" g2="Yacute" k="123" /> +<hkern g1="ugrave" g2="Thorn" k="16" /> +<hkern g1="ugrave" g2="eth" k="8" /> +<hkern g1="ugrave" g2="ugrave" k="8" /> +<hkern g1="ugrave" g2="uacute" k="8" /> +<hkern g1="ugrave" g2="ucircumflex" k="8" /> +<hkern g1="ugrave" g2="udieresis" k="8" /> +<hkern g1="ugrave" g2="yacute" k="12" /> +<hkern g1="ugrave" g2="ydieresis" k="12" /> +<hkern g1="ugrave" g2="OE" k="25" /> +<hkern g1="ugrave" g2="quoteleft" k="35" /> +<hkern g1="ugrave" g2="quoteright" k="23" /> +<hkern g1="ugrave" g2="quotedblleft" k="35" /> +<hkern g1="ugrave" g2="quotedblright" k="23" /> +<hkern g1="uacute" g2="parenright" k="47" /> +<hkern g1="uacute" g2="slash" k="41" /> +<hkern g1="uacute" g2="question" k="20" /> +<hkern g1="uacute" g2="B" k="16" /> +<hkern g1="uacute" g2="C" k="25" /> +<hkern g1="uacute" g2="D" k="16" /> +<hkern g1="uacute" g2="E" k="16" /> +<hkern g1="uacute" g2="F" k="16" /> +<hkern g1="uacute" g2="G" k="23" /> +<hkern g1="uacute" g2="H" k="16" /> +<hkern g1="uacute" g2="I" k="16" /> +<hkern g1="uacute" g2="K" k="16" /> +<hkern g1="uacute" g2="L" k="16" /> +<hkern g1="uacute" g2="M" k="8" /> +<hkern g1="uacute" g2="N" k="16" /> +<hkern g1="uacute" g2="O" k="25" /> +<hkern g1="uacute" g2="P" k="16" /> +<hkern g1="uacute" g2="Q" k="25" /> +<hkern g1="uacute" g2="R" k="16" /> +<hkern g1="uacute" g2="T" k="47" /> +<hkern g1="uacute" g2="U" k="53" /> +<hkern g1="uacute" g2="V" k="80" /> +<hkern g1="uacute" g2="W" k="121" /> +<hkern g1="uacute" g2="Y" k="123" /> +<hkern g1="uacute" g2="backslash" k="86" /> +<hkern g1="uacute" g2="bracketright" k="94" /> +<hkern g1="uacute" g2="u" k="8" /> +<hkern g1="uacute" g2="v" k="10" /> +<hkern g1="uacute" g2="w" k="12" /> +<hkern g1="uacute" g2="y" k="12" /> +<hkern g1="uacute" g2="braceright" k="43" /> +<hkern g1="uacute" g2="Ccedilla" k="25" /> +<hkern g1="uacute" g2="Egrave" k="16" /> +<hkern g1="uacute" g2="Eacute" k="16" /> +<hkern g1="uacute" g2="Ecircumflex" k="16" /> +<hkern g1="uacute" g2="Edieresis" k="16" /> +<hkern g1="uacute" g2="Igrave" k="16" /> +<hkern g1="uacute" g2="Iacute" k="16" /> +<hkern g1="uacute" g2="Icircumflex" k="16" /> +<hkern g1="uacute" g2="Idieresis" k="16" /> +<hkern g1="uacute" g2="Eth" k="16" /> +<hkern g1="uacute" g2="Ntilde" k="16" /> +<hkern g1="uacute" g2="Ograve" k="25" /> +<hkern g1="uacute" g2="Oacute" k="25" /> +<hkern g1="uacute" g2="Ocircumflex" k="25" /> +<hkern g1="uacute" g2="Otilde" k="25" /> +<hkern g1="uacute" g2="Odieresis" k="25" /> +<hkern g1="uacute" g2="Oslash" k="25" /> +<hkern g1="uacute" g2="Ugrave" k="53" /> +<hkern g1="uacute" g2="Uacute" k="53" /> +<hkern g1="uacute" g2="Ucircumflex" k="53" /> +<hkern g1="uacute" g2="Udieresis" k="53" /> +<hkern g1="uacute" g2="Yacute" k="123" /> +<hkern g1="uacute" g2="Thorn" k="16" /> +<hkern g1="uacute" g2="eth" k="8" /> +<hkern g1="uacute" g2="ugrave" k="8" /> +<hkern g1="uacute" g2="uacute" k="8" /> +<hkern g1="uacute" g2="ucircumflex" k="8" /> +<hkern g1="uacute" g2="udieresis" k="8" /> +<hkern g1="uacute" g2="yacute" k="12" /> +<hkern g1="uacute" g2="ydieresis" k="12" /> +<hkern g1="uacute" g2="OE" k="25" /> +<hkern g1="uacute" g2="quoteleft" k="35" /> +<hkern g1="uacute" g2="quoteright" k="23" /> +<hkern g1="uacute" g2="quotedblleft" k="35" /> +<hkern g1="uacute" g2="quotedblright" k="23" /> +<hkern g1="ucircumflex" g2="parenright" k="47" /> +<hkern g1="ucircumflex" g2="slash" k="41" /> +<hkern g1="ucircumflex" g2="question" k="20" /> +<hkern g1="ucircumflex" g2="B" k="16" /> +<hkern g1="ucircumflex" g2="C" k="25" /> +<hkern g1="ucircumflex" g2="D" k="16" /> +<hkern g1="ucircumflex" g2="E" k="16" /> +<hkern g1="ucircumflex" g2="F" k="16" /> +<hkern g1="ucircumflex" g2="G" k="23" /> +<hkern g1="ucircumflex" g2="H" k="16" /> +<hkern g1="ucircumflex" g2="I" k="16" /> +<hkern g1="ucircumflex" g2="K" k="16" /> +<hkern g1="ucircumflex" g2="L" k="16" /> +<hkern g1="ucircumflex" g2="M" k="8" /> +<hkern g1="ucircumflex" g2="N" k="16" /> +<hkern g1="ucircumflex" g2="O" k="25" /> +<hkern g1="ucircumflex" g2="P" k="16" /> +<hkern g1="ucircumflex" g2="Q" k="25" /> +<hkern g1="ucircumflex" g2="R" k="16" /> +<hkern g1="ucircumflex" g2="T" k="47" /> +<hkern g1="ucircumflex" g2="U" k="53" /> +<hkern g1="ucircumflex" g2="V" k="80" /> +<hkern g1="ucircumflex" g2="W" k="121" /> +<hkern g1="ucircumflex" g2="Y" k="123" /> +<hkern g1="ucircumflex" g2="backslash" k="86" /> +<hkern g1="ucircumflex" g2="bracketright" k="94" /> +<hkern g1="ucircumflex" g2="u" k="8" /> +<hkern g1="ucircumflex" g2="v" k="10" /> +<hkern g1="ucircumflex" g2="w" k="12" /> +<hkern g1="ucircumflex" g2="y" k="12" /> +<hkern g1="ucircumflex" g2="braceright" k="43" /> +<hkern g1="ucircumflex" g2="Ccedilla" k="25" /> +<hkern g1="ucircumflex" g2="Egrave" k="16" /> +<hkern g1="ucircumflex" g2="Eacute" k="16" /> +<hkern g1="ucircumflex" g2="Ecircumflex" k="16" /> +<hkern g1="ucircumflex" g2="Edieresis" k="16" /> +<hkern g1="ucircumflex" g2="Igrave" k="16" /> +<hkern g1="ucircumflex" g2="Iacute" k="16" /> +<hkern g1="ucircumflex" g2="Icircumflex" k="16" /> +<hkern g1="ucircumflex" g2="Idieresis" k="16" /> +<hkern g1="ucircumflex" g2="Eth" k="16" /> +<hkern g1="ucircumflex" g2="Ntilde" k="16" /> +<hkern g1="ucircumflex" g2="Ograve" k="25" /> +<hkern g1="ucircumflex" g2="Oacute" k="25" /> +<hkern g1="ucircumflex" g2="Ocircumflex" k="25" /> +<hkern g1="ucircumflex" g2="Otilde" k="25" /> +<hkern g1="ucircumflex" g2="Odieresis" k="25" /> +<hkern g1="ucircumflex" g2="Oslash" k="25" /> +<hkern g1="ucircumflex" g2="Ugrave" k="53" /> +<hkern g1="ucircumflex" g2="Uacute" k="53" /> +<hkern g1="ucircumflex" g2="Ucircumflex" k="53" /> +<hkern g1="ucircumflex" g2="Udieresis" k="53" /> +<hkern g1="ucircumflex" g2="Yacute" k="123" /> +<hkern g1="ucircumflex" g2="Thorn" k="16" /> +<hkern g1="ucircumflex" g2="eth" k="8" /> +<hkern g1="ucircumflex" g2="ugrave" k="8" /> +<hkern g1="ucircumflex" g2="uacute" k="8" /> +<hkern g1="ucircumflex" g2="ucircumflex" k="8" /> +<hkern g1="ucircumflex" g2="udieresis" k="8" /> +<hkern g1="ucircumflex" g2="yacute" k="12" /> +<hkern g1="ucircumflex" g2="ydieresis" k="12" /> +<hkern g1="ucircumflex" g2="OE" k="25" /> +<hkern g1="ucircumflex" g2="quoteleft" k="35" /> +<hkern g1="ucircumflex" g2="quoteright" k="23" /> +<hkern g1="ucircumflex" g2="quotedblleft" k="35" /> +<hkern g1="ucircumflex" g2="quotedblright" k="23" /> +<hkern g1="udieresis" g2="parenright" k="47" /> +<hkern g1="udieresis" g2="slash" k="41" /> +<hkern g1="udieresis" g2="question" k="20" /> +<hkern g1="udieresis" g2="B" k="16" /> +<hkern g1="udieresis" g2="C" k="25" /> +<hkern g1="udieresis" g2="D" k="16" /> +<hkern g1="udieresis" g2="E" k="16" /> +<hkern g1="udieresis" g2="F" k="16" /> +<hkern g1="udieresis" g2="G" k="23" /> +<hkern g1="udieresis" g2="H" k="16" /> +<hkern g1="udieresis" g2="I" k="16" /> +<hkern g1="udieresis" g2="K" k="16" /> +<hkern g1="udieresis" g2="L" k="16" /> +<hkern g1="udieresis" g2="M" k="8" /> +<hkern g1="udieresis" g2="N" k="16" /> +<hkern g1="udieresis" g2="O" k="25" /> +<hkern g1="udieresis" g2="P" k="16" /> +<hkern g1="udieresis" g2="Q" k="25" /> +<hkern g1="udieresis" g2="R" k="16" /> +<hkern g1="udieresis" g2="T" k="47" /> +<hkern g1="udieresis" g2="U" k="53" /> +<hkern g1="udieresis" g2="V" k="80" /> +<hkern g1="udieresis" g2="W" k="121" /> +<hkern g1="udieresis" g2="Y" k="123" /> +<hkern g1="udieresis" g2="backslash" k="86" /> +<hkern g1="udieresis" g2="bracketright" k="94" /> +<hkern g1="udieresis" g2="u" k="8" /> +<hkern g1="udieresis" g2="v" k="10" /> +<hkern g1="udieresis" g2="w" k="12" /> +<hkern g1="udieresis" g2="y" k="12" /> +<hkern g1="udieresis" g2="braceright" k="43" /> +<hkern g1="udieresis" g2="Ccedilla" k="25" /> +<hkern g1="udieresis" g2="Egrave" k="16" /> +<hkern g1="udieresis" g2="Eacute" k="16" /> +<hkern g1="udieresis" g2="Ecircumflex" k="16" /> +<hkern g1="udieresis" g2="Edieresis" k="16" /> +<hkern g1="udieresis" g2="Igrave" k="16" /> +<hkern g1="udieresis" g2="Iacute" k="16" /> +<hkern g1="udieresis" g2="Icircumflex" k="16" /> +<hkern g1="udieresis" g2="Idieresis" k="16" /> +<hkern g1="udieresis" g2="Eth" k="16" /> +<hkern g1="udieresis" g2="Ntilde" k="16" /> +<hkern g1="udieresis" g2="Ograve" k="25" /> +<hkern g1="udieresis" g2="Oacute" k="25" /> +<hkern g1="udieresis" g2="Ocircumflex" k="25" /> +<hkern g1="udieresis" g2="Otilde" k="25" /> +<hkern g1="udieresis" g2="Odieresis" k="25" /> +<hkern g1="udieresis" g2="Oslash" k="25" /> +<hkern g1="udieresis" g2="Ugrave" k="53" /> +<hkern g1="udieresis" g2="Uacute" k="53" /> +<hkern g1="udieresis" g2="Ucircumflex" k="53" /> +<hkern g1="udieresis" g2="Udieresis" k="53" /> +<hkern g1="udieresis" g2="Yacute" k="123" /> +<hkern g1="udieresis" g2="Thorn" k="16" /> +<hkern g1="udieresis" g2="eth" k="8" /> +<hkern g1="udieresis" g2="ugrave" k="8" /> +<hkern g1="udieresis" g2="uacute" k="8" /> +<hkern g1="udieresis" g2="ucircumflex" k="8" /> +<hkern g1="udieresis" g2="udieresis" k="8" /> +<hkern g1="udieresis" g2="yacute" k="12" /> +<hkern g1="udieresis" g2="ydieresis" k="12" /> +<hkern g1="udieresis" g2="OE" k="25" /> +<hkern g1="udieresis" g2="quoteleft" k="35" /> +<hkern g1="udieresis" g2="quoteright" k="23" /> +<hkern g1="udieresis" g2="quotedblleft" k="35" /> +<hkern g1="udieresis" g2="quotedblright" k="23" /> +<hkern g1="yacute" g2="parenright" k="39" /> +<hkern g1="yacute" g2="asterisk" k="-35" /> +<hkern g1="yacute" g2="comma" k="112" /> +<hkern g1="yacute" g2="period" k="76" /> +<hkern g1="yacute" g2="slash" k="119" /> +<hkern g1="yacute" g2="A" k="80" /> +<hkern g1="yacute" g2="B" k="37" /> +<hkern g1="yacute" g2="D" k="37" /> +<hkern g1="yacute" g2="E" k="37" /> +<hkern g1="yacute" g2="F" k="37" /> +<hkern g1="yacute" g2="H" k="37" /> +<hkern g1="yacute" g2="I" k="37" /> +<hkern g1="yacute" g2="J" k="86" /> +<hkern g1="yacute" g2="K" k="37" /> +<hkern g1="yacute" g2="L" k="37" /> +<hkern g1="yacute" g2="M" k="39" /> +<hkern g1="yacute" g2="N" k="37" /> +<hkern g1="yacute" g2="P" k="37" /> +<hkern g1="yacute" g2="R" k="37" /> +<hkern g1="yacute" g2="U" k="16" /> +<hkern g1="yacute" g2="V" k="20" /> +<hkern g1="yacute" g2="W" k="35" /> +<hkern g1="yacute" g2="X" k="40" /> +<hkern g1="yacute" g2="Y" k="72" /> +<hkern g1="yacute" g2="backslash" k="23" /> +<hkern g1="yacute" g2="bracketright" k="82" /> +<hkern g1="yacute" g2="c" k="20" /> +<hkern g1="yacute" g2="d" k="20" /> +<hkern g1="yacute" g2="e" k="20" /> +<hkern g1="yacute" g2="g" k="25" /> +<hkern g1="yacute" g2="h" k="10" /> +<hkern g1="yacute" g2="k" k="10" /> +<hkern g1="yacute" g2="l" k="10" /> +<hkern g1="yacute" g2="o" k="20" /> +<hkern g1="yacute" g2="q" k="20" /> +<hkern g1="yacute" g2="t" k="-10" /> +<hkern g1="yacute" g2="y" k="-35" /> +<hkern g1="yacute" g2="braceright" k="37" /> +<hkern g1="yacute" g2="Agrave" k="80" /> +<hkern g1="yacute" g2="Aacute" k="80" /> +<hkern g1="yacute" g2="Acircumflex" k="80" /> +<hkern g1="yacute" g2="Atilde" k="80" /> +<hkern g1="yacute" g2="Adieresis" k="80" /> +<hkern g1="yacute" g2="Aring" k="80" /> +<hkern g1="yacute" g2="Egrave" k="37" /> +<hkern g1="yacute" g2="Eacute" k="37" /> +<hkern g1="yacute" g2="Ecircumflex" k="37" /> +<hkern g1="yacute" g2="Edieresis" k="37" /> +<hkern g1="yacute" g2="Igrave" k="37" /> +<hkern g1="yacute" g2="Iacute" k="37" /> +<hkern g1="yacute" g2="Icircumflex" k="37" /> +<hkern g1="yacute" g2="Idieresis" k="37" /> +<hkern g1="yacute" g2="Eth" k="37" /> +<hkern g1="yacute" g2="Ntilde" k="37" /> +<hkern g1="yacute" g2="Ugrave" k="16" /> +<hkern g1="yacute" g2="Uacute" k="16" /> +<hkern g1="yacute" g2="Ucircumflex" k="16" /> +<hkern g1="yacute" g2="Udieresis" k="16" /> +<hkern g1="yacute" g2="Yacute" k="72" /> +<hkern g1="yacute" g2="Thorn" k="37" /> +<hkern g1="yacute" g2="ccedilla" k="20" /> +<hkern g1="yacute" g2="egrave" k="20" /> +<hkern g1="yacute" g2="eacute" k="20" /> +<hkern g1="yacute" g2="ecircumflex" k="20" /> +<hkern g1="yacute" g2="edieresis" k="20" /> +<hkern g1="yacute" g2="eth" k="25" /> +<hkern g1="yacute" g2="ograve" k="20" /> +<hkern g1="yacute" g2="oacute" k="20" /> +<hkern g1="yacute" g2="ocircumflex" k="20" /> +<hkern g1="yacute" g2="otilde" k="20" /> +<hkern g1="yacute" g2="odieresis" k="20" /> +<hkern g1="yacute" g2="oslash" k="20" /> +<hkern g1="yacute" g2="yacute" k="-35" /> +<hkern g1="yacute" g2="ydieresis" k="-35" /> +<hkern g1="yacute" g2="oe" k="20" /> +<hkern g1="yacute" g2="quotesinglbase" k="76" /> +<hkern g1="yacute" g2="quotedblbase" k="76" /> +<hkern g1="thorn" g2="quotedbl" k="29" /> +<hkern g1="thorn" g2="quotesingle" k="29" /> +<hkern g1="thorn" g2="parenright" k="100" /> +<hkern g1="thorn" g2="slash" k="98" /> +<hkern g1="thorn" g2="question" k="35" /> +<hkern g1="thorn" g2="A" k="15" /> +<hkern g1="thorn" g2="B" k="49" /> +<hkern g1="thorn" g2="D" k="49" /> +<hkern g1="thorn" g2="E" k="49" /> +<hkern g1="thorn" g2="F" k="49" /> +<hkern g1="thorn" g2="H" k="49" /> +<hkern g1="thorn" g2="I" k="49" /> +<hkern g1="thorn" g2="K" k="49" /> +<hkern g1="thorn" g2="L" k="49" /> +<hkern g1="thorn" g2="M" k="43" /> +<hkern g1="thorn" g2="N" k="49" /> +<hkern g1="thorn" g2="P" k="49" /> +<hkern g1="thorn" g2="R" k="49" /> +<hkern g1="thorn" g2="S" k="12" /> +<hkern g1="thorn" g2="T" k="100" /> +<hkern g1="thorn" g2="U" k="41" /> +<hkern g1="thorn" g2="V" k="70" /> +<hkern g1="thorn" g2="W" k="100" /> +<hkern g1="thorn" g2="X" k="94" /> +<hkern g1="thorn" g2="Y" k="115" /> +<hkern g1="thorn" g2="Z" k="43" /> +<hkern g1="thorn" g2="backslash" k="98" /> +<hkern g1="thorn" g2="bracketright" k="104" /> +<hkern g1="thorn" g2="f" k="10" /> +<hkern g1="thorn" g2="v" k="10" /> +<hkern g1="thorn" g2="w" k="20" /> +<hkern g1="thorn" g2="x" k="10" /> +<hkern g1="thorn" g2="y" k="16" /> +<hkern g1="thorn" g2="braceright" k="53" /> +<hkern g1="thorn" g2="Agrave" k="15" /> +<hkern g1="thorn" g2="Aacute" k="15" /> +<hkern g1="thorn" g2="Acircumflex" k="15" /> +<hkern g1="thorn" g2="Atilde" k="15" /> +<hkern g1="thorn" g2="Adieresis" k="15" /> +<hkern g1="thorn" g2="Aring" k="15" /> +<hkern g1="thorn" g2="Egrave" k="49" /> +<hkern g1="thorn" g2="Eacute" k="49" /> +<hkern g1="thorn" g2="Ecircumflex" k="49" /> +<hkern g1="thorn" g2="Edieresis" k="49" /> +<hkern g1="thorn" g2="Igrave" k="49" /> +<hkern g1="thorn" g2="Iacute" k="49" /> +<hkern g1="thorn" g2="Icircumflex" k="49" /> +<hkern g1="thorn" g2="Idieresis" k="49" /> +<hkern g1="thorn" g2="Eth" k="49" /> +<hkern g1="thorn" g2="Ntilde" k="49" /> +<hkern g1="thorn" g2="Ugrave" k="41" /> +<hkern g1="thorn" g2="Uacute" k="41" /> +<hkern g1="thorn" g2="Ucircumflex" k="41" /> +<hkern g1="thorn" g2="Udieresis" k="41" /> +<hkern g1="thorn" g2="Yacute" k="115" /> +<hkern g1="thorn" g2="Thorn" k="49" /> +<hkern g1="thorn" g2="germandbls" k="10" /> +<hkern g1="thorn" g2="yacute" k="16" /> +<hkern g1="thorn" g2="ydieresis" k="16" /> +<hkern g1="thorn" g2="quoteleft" k="70" /> +<hkern g1="thorn" g2="quoteright" k="53" /> +<hkern g1="thorn" g2="quotedblleft" k="70" /> +<hkern g1="thorn" g2="quotedblright" k="53" /> +<hkern g1="ydieresis" g2="parenright" k="39" /> +<hkern g1="ydieresis" g2="asterisk" k="-35" /> +<hkern g1="ydieresis" g2="comma" k="112" /> +<hkern g1="ydieresis" g2="period" k="76" /> +<hkern g1="ydieresis" g2="slash" k="119" /> +<hkern g1="ydieresis" g2="A" k="80" /> +<hkern g1="ydieresis" g2="B" k="37" /> +<hkern g1="ydieresis" g2="D" k="37" /> +<hkern g1="ydieresis" g2="E" k="37" /> +<hkern g1="ydieresis" g2="F" k="37" /> +<hkern g1="ydieresis" g2="H" k="37" /> +<hkern g1="ydieresis" g2="I" k="37" /> +<hkern g1="ydieresis" g2="J" k="86" /> +<hkern g1="ydieresis" g2="K" k="37" /> +<hkern g1="ydieresis" g2="L" k="37" /> +<hkern g1="ydieresis" g2="M" k="39" /> +<hkern g1="ydieresis" g2="N" k="37" /> +<hkern g1="ydieresis" g2="P" k="37" /> +<hkern g1="ydieresis" g2="R" k="37" /> +<hkern g1="ydieresis" g2="U" k="16" /> +<hkern g1="ydieresis" g2="V" k="20" /> +<hkern g1="ydieresis" g2="W" k="35" /> +<hkern g1="ydieresis" g2="X" k="40" /> +<hkern g1="ydieresis" g2="Y" k="72" /> +<hkern g1="ydieresis" g2="backslash" k="23" /> +<hkern g1="ydieresis" g2="bracketright" k="82" /> +<hkern g1="ydieresis" g2="c" k="20" /> +<hkern g1="ydieresis" g2="d" k="20" /> +<hkern g1="ydieresis" g2="e" k="20" /> +<hkern g1="ydieresis" g2="g" k="25" /> +<hkern g1="ydieresis" g2="h" k="10" /> +<hkern g1="ydieresis" g2="k" k="10" /> +<hkern g1="ydieresis" g2="l" k="10" /> +<hkern g1="ydieresis" g2="o" k="20" /> +<hkern g1="ydieresis" g2="q" k="20" /> +<hkern g1="ydieresis" g2="t" k="-10" /> +<hkern g1="ydieresis" g2="y" k="-35" /> +<hkern g1="ydieresis" g2="braceright" k="37" /> +<hkern g1="ydieresis" g2="Agrave" k="80" /> +<hkern g1="ydieresis" g2="Aacute" k="80" /> +<hkern g1="ydieresis" g2="Acircumflex" k="80" /> +<hkern g1="ydieresis" g2="Atilde" k="80" /> +<hkern g1="ydieresis" g2="Adieresis" k="80" /> +<hkern g1="ydieresis" g2="Aring" k="80" /> +<hkern g1="ydieresis" g2="Egrave" k="37" /> +<hkern g1="ydieresis" g2="Eacute" k="37" /> +<hkern g1="ydieresis" g2="Ecircumflex" k="37" /> +<hkern g1="ydieresis" g2="Edieresis" k="37" /> +<hkern g1="ydieresis" g2="Igrave" k="37" /> +<hkern g1="ydieresis" g2="Iacute" k="37" /> +<hkern g1="ydieresis" g2="Icircumflex" k="37" /> +<hkern g1="ydieresis" g2="Idieresis" k="37" /> +<hkern g1="ydieresis" g2="Eth" k="37" /> +<hkern g1="ydieresis" g2="Ntilde" k="37" /> +<hkern g1="ydieresis" g2="Ugrave" k="16" /> +<hkern g1="ydieresis" g2="Uacute" k="16" /> +<hkern g1="ydieresis" g2="Ucircumflex" k="16" /> +<hkern g1="ydieresis" g2="Udieresis" k="16" /> +<hkern g1="ydieresis" g2="Yacute" k="72" /> +<hkern g1="ydieresis" g2="Thorn" k="37" /> +<hkern g1="ydieresis" g2="ccedilla" k="20" /> +<hkern g1="ydieresis" g2="egrave" k="20" /> +<hkern g1="ydieresis" g2="eacute" k="20" /> +<hkern g1="ydieresis" g2="ecircumflex" k="20" /> +<hkern g1="ydieresis" g2="edieresis" k="20" /> +<hkern g1="ydieresis" g2="eth" k="25" /> +<hkern g1="ydieresis" g2="ograve" k="20" /> +<hkern g1="ydieresis" g2="oacute" k="20" /> +<hkern g1="ydieresis" g2="ocircumflex" k="20" /> +<hkern g1="ydieresis" g2="otilde" k="20" /> +<hkern g1="ydieresis" g2="odieresis" k="20" /> +<hkern g1="ydieresis" g2="oslash" k="20" /> +<hkern g1="ydieresis" g2="yacute" k="-35" /> +<hkern g1="ydieresis" g2="ydieresis" k="-35" /> +<hkern g1="ydieresis" g2="oe" k="20" /> +<hkern g1="ydieresis" g2="quotesinglbase" k="76" /> +<hkern g1="ydieresis" g2="quotedblbase" k="76" /> +<hkern g1="dotlessi" g2="slash" k="43" /> +<hkern g1="dotlessi" g2="B" k="14" /> +<hkern g1="dotlessi" g2="C" k="23" /> +<hkern g1="dotlessi" g2="D" k="14" /> +<hkern g1="dotlessi" g2="E" k="14" /> +<hkern g1="dotlessi" g2="F" k="14" /> +<hkern g1="dotlessi" g2="G" k="20" /> +<hkern g1="dotlessi" g2="H" k="14" /> +<hkern g1="dotlessi" g2="I" k="14" /> +<hkern g1="dotlessi" g2="K" k="14" /> +<hkern g1="dotlessi" g2="L" k="14" /> +<hkern g1="dotlessi" g2="M" k="10" /> +<hkern g1="dotlessi" g2="N" k="14" /> +<hkern g1="dotlessi" g2="O" k="23" /> +<hkern g1="dotlessi" g2="P" k="14" /> +<hkern g1="dotlessi" g2="Q" k="23" /> +<hkern g1="dotlessi" g2="R" k="14" /> +<hkern g1="dotlessi" g2="T" k="14" /> +<hkern g1="dotlessi" g2="U" k="25" /> +<hkern g1="dotlessi" g2="W" k="18" /> +<hkern g1="dotlessi" g2="Y" k="12" /> +<hkern g1="dotlessi" g2="t" k="8" /> +<hkern g1="dotlessi" g2="w" k="10" /> +<hkern g1="dotlessi" g2="y" k="10" /> +<hkern g1="dotlessi" g2="Ccedilla" k="23" /> +<hkern g1="dotlessi" g2="Egrave" k="14" /> +<hkern g1="dotlessi" g2="Eacute" k="14" /> +<hkern g1="dotlessi" g2="Ecircumflex" k="14" /> +<hkern g1="dotlessi" g2="Edieresis" k="14" /> +<hkern g1="dotlessi" g2="Igrave" k="14" /> +<hkern g1="dotlessi" g2="Iacute" k="14" /> +<hkern g1="dotlessi" g2="Icircumflex" k="14" /> +<hkern g1="dotlessi" g2="Idieresis" k="14" /> +<hkern g1="dotlessi" g2="Eth" k="14" /> +<hkern g1="dotlessi" g2="Ntilde" k="14" /> +<hkern g1="dotlessi" g2="Ograve" k="23" /> +<hkern g1="dotlessi" g2="Oacute" k="23" /> +<hkern g1="dotlessi" g2="Ocircumflex" k="23" /> +<hkern g1="dotlessi" g2="Otilde" k="23" /> +<hkern g1="dotlessi" g2="Odieresis" k="23" /> +<hkern g1="dotlessi" g2="Oslash" k="23" /> +<hkern g1="dotlessi" g2="Ugrave" k="25" /> +<hkern g1="dotlessi" g2="Uacute" k="25" /> +<hkern g1="dotlessi" g2="Ucircumflex" k="25" /> +<hkern g1="dotlessi" g2="Udieresis" k="25" /> +<hkern g1="dotlessi" g2="Yacute" k="12" /> +<hkern g1="dotlessi" g2="Thorn" k="14" /> +<hkern g1="dotlessi" g2="yacute" k="10" /> +<hkern g1="dotlessi" g2="ydieresis" k="10" /> +<hkern g1="dotlessi" g2="OE" k="23" /> +<hkern g1="oe" g2="quotedbl" k="20" /> +<hkern g1="oe" g2="quotesingle" k="20" /> +<hkern g1="oe" g2="parenright" k="61" /> +<hkern g1="oe" g2="slash" k="78" /> +<hkern g1="oe" g2="question" k="29" /> +<hkern g1="oe" g2="B" k="33" /> +<hkern g1="oe" g2="D" k="33" /> +<hkern g1="oe" g2="E" k="33" /> +<hkern g1="oe" g2="F" k="33" /> +<hkern g1="oe" g2="H" k="33" /> +<hkern g1="oe" g2="I" k="33" /> +<hkern g1="oe" g2="K" k="33" /> +<hkern g1="oe" g2="L" k="33" /> +<hkern g1="oe" g2="M" k="25" /> +<hkern g1="oe" g2="N" k="33" /> +<hkern g1="oe" g2="P" k="33" /> +<hkern g1="oe" g2="R" k="33" /> +<hkern g1="oe" g2="S" k="10" /> +<hkern g1="oe" g2="T" k="88" /> +<hkern g1="oe" g2="U" k="41" /> +<hkern g1="oe" g2="V" k="80" /> +<hkern g1="oe" g2="W" k="70" /> +<hkern g1="oe" g2="X" k="27" /> +<hkern g1="oe" g2="Y" k="100" /> +<hkern g1="oe" g2="Z" k="16" /> +<hkern g1="oe" g2="backslash" k="88" /> +<hkern g1="oe" g2="bracketright" k="100" /> +<hkern g1="oe" g2="a" k="5" /> +<hkern g1="oe" g2="c" k="10" /> +<hkern g1="oe" g2="d" k="10" /> +<hkern g1="oe" g2="e" k="10" /> +<hkern g1="oe" g2="o" k="10" /> +<hkern g1="oe" g2="q" k="10" /> +<hkern g1="oe" g2="t" k="15" /> +<hkern g1="oe" g2="v" k="10" /> +<hkern g1="oe" g2="w" k="8" /> +<hkern g1="oe" g2="x" k="10" /> +<hkern g1="oe" g2="y" k="10" /> +<hkern g1="oe" g2="braceright" k="47" /> +<hkern g1="oe" g2="Egrave" k="33" /> +<hkern g1="oe" g2="Eacute" k="33" /> +<hkern g1="oe" g2="Ecircumflex" k="33" /> +<hkern g1="oe" g2="Edieresis" k="33" /> +<hkern g1="oe" g2="Igrave" k="33" /> +<hkern g1="oe" g2="Iacute" k="33" /> +<hkern g1="oe" g2="Icircumflex" k="33" /> +<hkern g1="oe" g2="Idieresis" k="33" /> +<hkern g1="oe" g2="Eth" k="33" /> +<hkern g1="oe" g2="Ntilde" k="33" /> +<hkern g1="oe" g2="Ugrave" k="41" /> +<hkern g1="oe" g2="Uacute" k="41" /> +<hkern g1="oe" g2="Ucircumflex" k="41" /> +<hkern g1="oe" g2="Udieresis" k="41" /> +<hkern g1="oe" g2="Yacute" k="100" /> +<hkern g1="oe" g2="Thorn" k="33" /> +<hkern g1="oe" g2="agrave" k="5" /> +<hkern g1="oe" g2="aacute" k="5" /> +<hkern g1="oe" g2="acircumflex" k="5" /> +<hkern g1="oe" g2="atilde" k="5" /> +<hkern g1="oe" g2="adieresis" k="5" /> +<hkern g1="oe" g2="aring" k="5" /> +<hkern g1="oe" g2="ae" k="5" /> +<hkern g1="oe" g2="ccedilla" k="10" /> +<hkern g1="oe" g2="egrave" k="10" /> +<hkern g1="oe" g2="eacute" k="10" /> +<hkern g1="oe" g2="ecircumflex" k="10" /> +<hkern g1="oe" g2="edieresis" k="10" /> +<hkern g1="oe" g2="ograve" k="10" /> +<hkern g1="oe" g2="oacute" k="10" /> +<hkern g1="oe" g2="ocircumflex" k="10" /> +<hkern g1="oe" g2="otilde" k="10" /> +<hkern g1="oe" g2="odieresis" k="10" /> +<hkern g1="oe" g2="oslash" k="10" /> +<hkern g1="oe" g2="yacute" k="10" /> +<hkern g1="oe" g2="ydieresis" k="10" /> +<hkern g1="oe" g2="oe" k="10" /> +<hkern g1="oe" g2="quoteleft" k="55" /> +<hkern g1="oe" g2="quoteright" k="41" /> +<hkern g1="oe" g2="quotedblleft" k="55" /> +<hkern g1="oe" g2="quotedblright" k="41" /> +<hkern g1="endash" g2="one" k="53" /> +<hkern g1="endash" g2="two" k="66" /> +<hkern g1="endash" g2="three" k="49" /> +<hkern g1="endash" g2="seven" k="125" /> +<hkern g1="endash" g2="A" k="40" /> +<hkern g1="endash" g2="B" k="33" /> +<hkern g1="endash" g2="D" k="33" /> +<hkern g1="endash" g2="E" k="33" /> +<hkern g1="endash" g2="F" k="33" /> +<hkern g1="endash" g2="H" k="33" /> +<hkern g1="endash" g2="I" k="33" /> +<hkern g1="endash" g2="J" k="59" /> +<hkern g1="endash" g2="K" k="33" /> +<hkern g1="endash" g2="L" k="33" /> +<hkern g1="endash" g2="M" k="31" /> +<hkern g1="endash" g2="N" k="33" /> +<hkern g1="endash" g2="P" k="33" /> +<hkern g1="endash" g2="R" k="33" /> +<hkern g1="endash" g2="S" k="29" /> +<hkern g1="endash" g2="T" k="131" /> +<hkern g1="endash" g2="U" k="16" /> +<hkern g1="endash" g2="V" k="61" /> +<hkern g1="endash" g2="W" k="63" /> +<hkern g1="endash" g2="X" k="86" /> +<hkern g1="endash" g2="Y" k="111" /> +<hkern g1="endash" g2="Z" k="68" /> +<hkern g1="endash" g2="f" k="18" /> +<hkern g1="endash" g2="v" k="-55" /> +<hkern g1="endash" g2="w" k="16" /> +<hkern g1="endash" g2="y" k="16" /> +<hkern g1="endash" g2="Agrave" k="40" /> +<hkern g1="endash" g2="Aacute" k="40" /> +<hkern g1="endash" g2="Acircumflex" k="40" /> +<hkern g1="endash" g2="Atilde" k="40" /> +<hkern g1="endash" g2="Adieresis" k="40" /> +<hkern g1="endash" g2="Aring" k="40" /> +<hkern g1="endash" g2="AE" k="84" /> +<hkern g1="endash" g2="Egrave" k="33" /> +<hkern g1="endash" g2="Eacute" k="33" /> +<hkern g1="endash" g2="Ecircumflex" k="33" /> +<hkern g1="endash" g2="Edieresis" k="33" /> +<hkern g1="endash" g2="Igrave" k="33" /> +<hkern g1="endash" g2="Iacute" k="33" /> +<hkern g1="endash" g2="Icircumflex" k="33" /> +<hkern g1="endash" g2="Idieresis" k="33" /> +<hkern g1="endash" g2="Eth" k="33" /> +<hkern g1="endash" g2="Ntilde" k="33" /> +<hkern g1="endash" g2="Ugrave" k="16" /> +<hkern g1="endash" g2="Uacute" k="16" /> +<hkern g1="endash" g2="Ucircumflex" k="16" /> +<hkern g1="endash" g2="Udieresis" k="16" /> +<hkern g1="endash" g2="Yacute" k="111" /> +<hkern g1="endash" g2="Thorn" k="33" /> +<hkern g1="endash" g2="germandbls" k="18" /> +<hkern g1="endash" g2="yacute" k="16" /> +<hkern g1="endash" g2="ydieresis" k="16" /> +<hkern g1="emdash" g2="one" k="53" /> +<hkern g1="emdash" g2="two" k="66" /> +<hkern g1="emdash" g2="three" k="49" /> +<hkern g1="emdash" g2="seven" k="125" /> +<hkern g1="emdash" g2="A" k="40" /> +<hkern g1="emdash" g2="B" k="33" /> +<hkern g1="emdash" g2="D" k="33" /> +<hkern g1="emdash" g2="E" k="33" /> +<hkern g1="emdash" g2="F" k="33" /> +<hkern g1="emdash" g2="H" k="33" /> +<hkern g1="emdash" g2="I" k="33" /> +<hkern g1="emdash" g2="J" k="59" /> +<hkern g1="emdash" g2="K" k="33" /> +<hkern g1="emdash" g2="L" k="33" /> +<hkern g1="emdash" g2="M" k="31" /> +<hkern g1="emdash" g2="N" k="33" /> +<hkern g1="emdash" g2="P" k="33" /> +<hkern g1="emdash" g2="R" k="33" /> +<hkern g1="emdash" g2="S" k="29" /> +<hkern g1="emdash" g2="T" k="131" /> +<hkern g1="emdash" g2="U" k="16" /> +<hkern g1="emdash" g2="V" k="61" /> +<hkern g1="emdash" g2="W" k="63" /> +<hkern g1="emdash" g2="X" k="86" /> +<hkern g1="emdash" g2="Y" k="111" /> +<hkern g1="emdash" g2="Z" k="68" /> +<hkern g1="emdash" g2="f" k="18" /> +<hkern g1="emdash" g2="v" k="-55" /> +<hkern g1="emdash" g2="w" k="16" /> +<hkern g1="emdash" g2="y" k="16" /> +<hkern g1="emdash" g2="Agrave" k="40" /> +<hkern g1="emdash" g2="Aacute" k="40" /> +<hkern g1="emdash" g2="Acircumflex" k="40" /> +<hkern g1="emdash" g2="Atilde" k="40" /> +<hkern g1="emdash" g2="Adieresis" k="40" /> +<hkern g1="emdash" g2="Aring" k="40" /> +<hkern g1="emdash" g2="AE" k="84" /> +<hkern g1="emdash" g2="Egrave" k="33" /> +<hkern g1="emdash" g2="Eacute" k="33" /> +<hkern g1="emdash" g2="Ecircumflex" k="33" /> +<hkern g1="emdash" g2="Edieresis" k="33" /> +<hkern g1="emdash" g2="Igrave" k="33" /> +<hkern g1="emdash" g2="Iacute" k="33" /> +<hkern g1="emdash" g2="Icircumflex" k="33" /> +<hkern g1="emdash" g2="Idieresis" k="33" /> +<hkern g1="emdash" g2="Eth" k="33" /> +<hkern g1="emdash" g2="Ntilde" k="33" /> +<hkern g1="emdash" g2="Ugrave" k="16" /> +<hkern g1="emdash" g2="Uacute" k="16" /> +<hkern g1="emdash" g2="Ucircumflex" k="16" /> +<hkern g1="emdash" g2="Udieresis" k="16" /> +<hkern g1="emdash" g2="Yacute" k="111" /> +<hkern g1="emdash" g2="Thorn" k="33" /> +<hkern g1="emdash" g2="germandbls" k="18" /> +<hkern g1="emdash" g2="yacute" k="16" /> +<hkern g1="emdash" g2="ydieresis" k="16" /> +<hkern g1="quoteleft" g2="comma" k="227" /> +<hkern g1="quoteleft" g2="period" k="227" /> +<hkern g1="quoteleft" g2="A" k="120" /> +<hkern g1="quoteleft" g2="C" k="31" /> +<hkern g1="quoteleft" g2="G" k="33" /> +<hkern g1="quoteleft" g2="O" k="31" /> +<hkern g1="quoteleft" g2="Q" k="31" /> +<hkern g1="quoteleft" g2="T" k="-45" /> +<hkern g1="quoteleft" g2="V" k="-70" /> +<hkern g1="quoteleft" g2="W" k="-50" /> +<hkern g1="quoteleft" g2="X" k="-35" /> +<hkern g1="quoteleft" g2="Y" k="-70" /> +<hkern g1="quoteleft" g2="a" k="50" /> +<hkern g1="quoteleft" g2="c" k="68" /> +<hkern g1="quoteleft" g2="d" k="84" /> +<hkern g1="quoteleft" g2="e" k="68" /> +<hkern g1="quoteleft" g2="g" k="63" /> +<hkern g1="quoteleft" g2="m" k="45" /> +<hkern g1="quoteleft" g2="n" k="45" /> +<hkern g1="quoteleft" g2="o" k="68" /> +<hkern g1="quoteleft" g2="p" k="43" /> +<hkern g1="quoteleft" g2="q" k="84" /> +<hkern g1="quoteleft" g2="r" k="45" /> +<hkern g1="quoteleft" g2="s" k="43" /> +<hkern g1="quoteleft" g2="u" k="41" /> +<hkern g1="quoteleft" g2="z" k="25" /> +<hkern g1="quoteleft" g2="Agrave" k="120" /> +<hkern g1="quoteleft" g2="Aacute" k="120" /> +<hkern g1="quoteleft" g2="Acircumflex" k="120" /> +<hkern g1="quoteleft" g2="Atilde" k="120" /> +<hkern g1="quoteleft" g2="Adieresis" k="120" /> +<hkern g1="quoteleft" g2="Aring" k="120" /> +<hkern g1="quoteleft" g2="AE" k="172" /> +<hkern g1="quoteleft" g2="Ccedilla" k="31" /> +<hkern g1="quoteleft" g2="Ograve" k="31" /> +<hkern g1="quoteleft" g2="Oacute" k="31" /> +<hkern g1="quoteleft" g2="Ocircumflex" k="31" /> +<hkern g1="quoteleft" g2="Otilde" k="31" /> +<hkern g1="quoteleft" g2="Odieresis" k="31" /> +<hkern g1="quoteleft" g2="Oslash" k="31" /> +<hkern g1="quoteleft" g2="Yacute" k="-70" /> +<hkern g1="quoteleft" g2="agrave" k="50" /> +<hkern g1="quoteleft" g2="aacute" k="50" /> +<hkern g1="quoteleft" g2="acircumflex" k="50" /> +<hkern g1="quoteleft" g2="atilde" k="50" /> +<hkern g1="quoteleft" g2="adieresis" k="50" /> +<hkern g1="quoteleft" g2="aring" k="50" /> +<hkern g1="quoteleft" g2="ae" k="50" /> +<hkern g1="quoteleft" g2="ccedilla" k="68" /> +<hkern g1="quoteleft" g2="egrave" k="68" /> +<hkern g1="quoteleft" g2="eacute" k="68" /> +<hkern g1="quoteleft" g2="ecircumflex" k="68" /> +<hkern g1="quoteleft" g2="edieresis" k="68" /> +<hkern g1="quoteleft" g2="eth" k="27" /> +<hkern g1="quoteleft" g2="ntilde" k="45" /> +<hkern g1="quoteleft" g2="ograve" k="68" /> +<hkern g1="quoteleft" g2="oacute" k="68" /> +<hkern g1="quoteleft" g2="ocircumflex" k="68" /> +<hkern g1="quoteleft" g2="otilde" k="68" /> +<hkern g1="quoteleft" g2="odieresis" k="68" /> +<hkern g1="quoteleft" g2="oslash" k="68" /> +<hkern g1="quoteleft" g2="ugrave" k="41" /> +<hkern g1="quoteleft" g2="uacute" k="41" /> +<hkern g1="quoteleft" g2="ucircumflex" k="41" /> +<hkern g1="quoteleft" g2="udieresis" k="41" /> +<hkern g1="quoteleft" g2="OE" k="31" /> +<hkern g1="quoteleft" g2="oe" k="68" /> +<hkern g1="quoteleft" g2="quotesinglbase" k="227" /> +<hkern g1="quoteleft" g2="quotedblbase" k="227" /> +<hkern g1="quoteright" g2="ampersand" k="35" /> +<hkern g1="quoteright" g2="comma" k="178" /> +<hkern g1="quoteright" g2="period" k="178" /> +<hkern g1="quoteright" g2="slash" k="178" /> +<hkern g1="quoteright" g2="at" k="80" /> +<hkern g1="quoteright" g2="A" k="109" /> +<hkern g1="quoteright" g2="C" k="33" /> +<hkern g1="quoteright" g2="G" k="35" /> +<hkern g1="quoteright" g2="O" k="33" /> +<hkern g1="quoteright" g2="Q" k="33" /> +<hkern g1="quoteright" g2="V" k="-12" /> +<hkern g1="quoteright" g2="Y" k="-20" /> +<hkern g1="quoteright" g2="a" k="43" /> +<hkern g1="quoteright" g2="c" k="59" /> +<hkern g1="quoteright" g2="d" k="82" /> +<hkern g1="quoteright" g2="e" k="59" /> +<hkern g1="quoteright" g2="g" k="59" /> +<hkern g1="quoteright" g2="m" k="31" /> +<hkern g1="quoteright" g2="n" k="31" /> +<hkern g1="quoteright" g2="o" k="59" /> +<hkern g1="quoteright" g2="p" k="29" /> +<hkern g1="quoteright" g2="q" k="82" /> +<hkern g1="quoteright" g2="r" k="31" /> +<hkern g1="quoteright" g2="s" k="37" /> +<hkern g1="quoteright" g2="u" k="29" /> +<hkern g1="quoteright" g2="z" k="20" /> +<hkern g1="quoteright" g2="guillemotleft" k="141" /> +<hkern g1="quoteright" g2="registered" k="25" /> +<hkern g1="quoteright" g2="Agrave" k="109" /> +<hkern g1="quoteright" g2="Aacute" k="109" /> +<hkern g1="quoteright" g2="Acircumflex" k="109" /> +<hkern g1="quoteright" g2="Atilde" k="109" /> +<hkern g1="quoteright" g2="Adieresis" k="109" /> +<hkern g1="quoteright" g2="Aring" k="109" /> +<hkern g1="quoteright" g2="AE" k="170" /> +<hkern g1="quoteright" g2="Ccedilla" k="33" /> +<hkern g1="quoteright" g2="Icircumflex" k="-43" /> +<hkern g1="quoteright" g2="Ograve" k="33" /> +<hkern g1="quoteright" g2="Oacute" k="33" /> +<hkern g1="quoteright" g2="Ocircumflex" k="33" /> +<hkern g1="quoteright" g2="Otilde" k="33" /> +<hkern g1="quoteright" g2="Odieresis" k="33" /> +<hkern g1="quoteright" g2="Oslash" k="33" /> +<hkern g1="quoteright" g2="Yacute" k="-20" /> +<hkern g1="quoteright" g2="agrave" k="43" /> +<hkern g1="quoteright" g2="aacute" k="43" /> +<hkern g1="quoteright" g2="acircumflex" k="43" /> +<hkern g1="quoteright" g2="atilde" k="43" /> +<hkern g1="quoteright" g2="adieresis" k="43" /> +<hkern g1="quoteright" g2="aring" k="43" /> +<hkern g1="quoteright" g2="ae" k="43" /> +<hkern g1="quoteright" g2="ccedilla" k="59" /> +<hkern g1="quoteright" g2="egrave" k="59" /> +<hkern g1="quoteright" g2="eacute" k="59" /> +<hkern g1="quoteright" g2="ecircumflex" k="59" /> +<hkern g1="quoteright" g2="edieresis" k="59" /> +<hkern g1="quoteright" g2="eth" k="27" /> +<hkern g1="quoteright" g2="ntilde" k="31" /> +<hkern g1="quoteright" g2="ograve" k="59" /> +<hkern g1="quoteright" g2="oacute" k="59" /> +<hkern g1="quoteright" g2="ocircumflex" k="59" /> +<hkern g1="quoteright" g2="otilde" k="59" /> +<hkern g1="quoteright" g2="odieresis" k="59" /> +<hkern g1="quoteright" g2="oslash" k="59" /> +<hkern g1="quoteright" g2="ugrave" k="29" /> +<hkern g1="quoteright" g2="uacute" k="29" /> +<hkern g1="quoteright" g2="ucircumflex" k="29" /> +<hkern g1="quoteright" g2="udieresis" k="29" /> +<hkern g1="quoteright" g2="OE" k="33" /> +<hkern g1="quoteright" g2="oe" k="59" /> +<hkern g1="quoteright" g2="quotesinglbase" k="178" /> +<hkern g1="quoteright" g2="quotedblbase" k="178" /> +<hkern g1="quoteright" g2="guilsinglleft" k="141" /> +<hkern g1="quotesinglbase" g2="quotedbl" k="258" /> +<hkern g1="quotesinglbase" g2="quotesingle" k="213" /> +<hkern g1="quotesinglbase" g2="zero" k="31" /> +<hkern g1="quotesinglbase" g2="six" k="20" /> +<hkern g1="quotesinglbase" g2="seven" k="66" /> +<hkern g1="quotesinglbase" g2="C" k="45" /> +<hkern g1="quotesinglbase" g2="G" k="39" /> +<hkern g1="quotesinglbase" g2="O" k="45" /> +<hkern g1="quotesinglbase" g2="Q" k="45" /> +<hkern g1="quotesinglbase" g2="T" k="170" /> +<hkern g1="quotesinglbase" g2="U" k="55" /> +<hkern g1="quotesinglbase" g2="V" k="150" /> +<hkern g1="quotesinglbase" g2="W" k="180" /> +<hkern g1="quotesinglbase" g2="Y" k="125" /> +<hkern g1="quotesinglbase" g2="t" k="25" /> +<hkern g1="quotesinglbase" g2="u" k="23" /> +<hkern g1="quotesinglbase" g2="v" k="120" /> +<hkern g1="quotesinglbase" g2="w" k="100" /> +<hkern g1="quotesinglbase" g2="y" k="94" /> +<hkern g1="quotesinglbase" g2="AE" k="-55" /> +<hkern g1="quotesinglbase" g2="Ccedilla" k="45" /> +<hkern g1="quotesinglbase" g2="Ograve" k="45" /> +<hkern g1="quotesinglbase" g2="Oacute" k="45" /> +<hkern g1="quotesinglbase" g2="Ocircumflex" k="45" /> +<hkern g1="quotesinglbase" g2="Otilde" k="45" /> +<hkern g1="quotesinglbase" g2="Odieresis" k="45" /> +<hkern g1="quotesinglbase" g2="Oslash" k="45" /> +<hkern g1="quotesinglbase" g2="Ugrave" k="55" /> +<hkern g1="quotesinglbase" g2="Uacute" k="55" /> +<hkern g1="quotesinglbase" g2="Ucircumflex" k="55" /> +<hkern g1="quotesinglbase" g2="Udieresis" k="55" /> +<hkern g1="quotesinglbase" g2="Yacute" k="125" /> +<hkern g1="quotesinglbase" g2="ugrave" k="23" /> +<hkern g1="quotesinglbase" g2="uacute" k="23" /> +<hkern g1="quotesinglbase" g2="ucircumflex" k="23" /> +<hkern g1="quotesinglbase" g2="udieresis" k="23" /> +<hkern g1="quotesinglbase" g2="yacute" k="94" /> +<hkern g1="quotesinglbase" g2="ydieresis" k="94" /> +<hkern g1="quotesinglbase" g2="OE" k="45" /> +<hkern g1="quotesinglbase" g2="quoteleft" k="227" /> +<hkern g1="quotesinglbase" g2="quoteright" k="178" /> +<hkern g1="quotesinglbase" g2="quotedblleft" k="252" /> +<hkern g1="quotesinglbase" g2="quotedblright" k="252" /> +<hkern g1="quotedblleft" g2="comma" k="258" /> +<hkern g1="quotedblleft" g2="period" k="252" /> +<hkern g1="quotedblleft" g2="A" k="120" /> +<hkern g1="quotedblleft" g2="C" k="31" /> +<hkern g1="quotedblleft" g2="G" k="33" /> +<hkern g1="quotedblleft" g2="O" k="31" /> +<hkern g1="quotedblleft" g2="Q" k="31" /> +<hkern g1="quotedblleft" g2="T" k="-45" /> +<hkern g1="quotedblleft" g2="V" k="-70" /> +<hkern g1="quotedblleft" g2="W" k="-50" /> +<hkern g1="quotedblleft" g2="X" k="-35" /> +<hkern g1="quotedblleft" g2="Y" k="-70" /> +<hkern g1="quotedblleft" g2="a" k="50" /> +<hkern g1="quotedblleft" g2="c" k="68" /> +<hkern g1="quotedblleft" g2="d" k="84" /> +<hkern g1="quotedblleft" g2="e" k="68" /> +<hkern g1="quotedblleft" g2="g" k="63" /> +<hkern g1="quotedblleft" g2="m" k="45" /> +<hkern g1="quotedblleft" g2="n" k="45" /> +<hkern g1="quotedblleft" g2="o" k="68" /> +<hkern g1="quotedblleft" g2="p" k="43" /> +<hkern g1="quotedblleft" g2="q" k="84" /> +<hkern g1="quotedblleft" g2="r" k="45" /> +<hkern g1="quotedblleft" g2="s" k="43" /> +<hkern g1="quotedblleft" g2="u" k="41" /> +<hkern g1="quotedblleft" g2="z" k="25" /> +<hkern g1="quotedblleft" g2="Agrave" k="120" /> +<hkern g1="quotedblleft" g2="Aacute" k="120" /> +<hkern g1="quotedblleft" g2="Acircumflex" k="120" /> +<hkern g1="quotedblleft" g2="Atilde" k="120" /> +<hkern g1="quotedblleft" g2="Adieresis" k="120" /> +<hkern g1="quotedblleft" g2="Aring" k="120" /> +<hkern g1="quotedblleft" g2="AE" k="172" /> +<hkern g1="quotedblleft" g2="Ccedilla" k="31" /> +<hkern g1="quotedblleft" g2="Ograve" k="31" /> +<hkern g1="quotedblleft" g2="Oacute" k="31" /> +<hkern g1="quotedblleft" g2="Ocircumflex" k="31" /> +<hkern g1="quotedblleft" g2="Otilde" k="31" /> +<hkern g1="quotedblleft" g2="Odieresis" k="31" /> +<hkern g1="quotedblleft" g2="Oslash" k="31" /> +<hkern g1="quotedblleft" g2="Yacute" k="-70" /> +<hkern g1="quotedblleft" g2="agrave" k="50" /> +<hkern g1="quotedblleft" g2="aacute" k="50" /> +<hkern g1="quotedblleft" g2="acircumflex" k="50" /> +<hkern g1="quotedblleft" g2="atilde" k="50" /> +<hkern g1="quotedblleft" g2="adieresis" k="50" /> +<hkern g1="quotedblleft" g2="aring" k="50" /> +<hkern g1="quotedblleft" g2="ae" k="50" /> +<hkern g1="quotedblleft" g2="ccedilla" k="68" /> +<hkern g1="quotedblleft" g2="egrave" k="68" /> +<hkern g1="quotedblleft" g2="eacute" k="68" /> +<hkern g1="quotedblleft" g2="ecircumflex" k="68" /> +<hkern g1="quotedblleft" g2="edieresis" k="68" /> +<hkern g1="quotedblleft" g2="eth" k="27" /> +<hkern g1="quotedblleft" g2="ntilde" k="45" /> +<hkern g1="quotedblleft" g2="ograve" k="68" /> +<hkern g1="quotedblleft" g2="oacute" k="68" /> +<hkern g1="quotedblleft" g2="ocircumflex" k="68" /> +<hkern g1="quotedblleft" g2="otilde" k="68" /> +<hkern g1="quotedblleft" g2="odieresis" k="68" /> +<hkern g1="quotedblleft" g2="oslash" k="68" /> +<hkern g1="quotedblleft" g2="ugrave" k="41" /> +<hkern g1="quotedblleft" g2="uacute" k="41" /> +<hkern g1="quotedblleft" g2="ucircumflex" k="41" /> +<hkern g1="quotedblleft" g2="udieresis" k="41" /> +<hkern g1="quotedblleft" g2="OE" k="31" /> +<hkern g1="quotedblleft" g2="oe" k="68" /> +<hkern g1="quotedblleft" g2="quotesinglbase" k="252" /> +<hkern g1="quotedblleft" g2="quotedblbase" k="252" /> +<hkern g1="quotedblright" g2="ampersand" k="35" /> +<hkern g1="quotedblright" g2="comma" k="258" /> +<hkern g1="quotedblright" g2="period" k="252" /> +<hkern g1="quotedblright" g2="slash" k="178" /> +<hkern g1="quotedblright" g2="at" k="80" /> +<hkern g1="quotedblright" g2="A" k="109" /> +<hkern g1="quotedblright" g2="C" k="33" /> +<hkern g1="quotedblright" g2="G" k="35" /> +<hkern g1="quotedblright" g2="O" k="33" /> +<hkern g1="quotedblright" g2="Q" k="33" /> +<hkern g1="quotedblright" g2="V" k="-12" /> +<hkern g1="quotedblright" g2="Y" k="-20" /> +<hkern g1="quotedblright" g2="a" k="43" /> +<hkern g1="quotedblright" g2="c" k="59" /> +<hkern g1="quotedblright" g2="d" k="82" /> +<hkern g1="quotedblright" g2="e" k="59" /> +<hkern g1="quotedblright" g2="g" k="59" /> +<hkern g1="quotedblright" g2="m" k="31" /> +<hkern g1="quotedblright" g2="n" k="31" /> +<hkern g1="quotedblright" g2="o" k="59" /> +<hkern g1="quotedblright" g2="p" k="29" /> +<hkern g1="quotedblright" g2="q" k="82" /> +<hkern g1="quotedblright" g2="r" k="31" /> +<hkern g1="quotedblright" g2="s" k="37" /> +<hkern g1="quotedblright" g2="u" k="29" /> +<hkern g1="quotedblright" g2="z" k="20" /> +<hkern g1="quotedblright" g2="guillemotleft" k="141" /> +<hkern g1="quotedblright" g2="registered" k="25" /> +<hkern g1="quotedblright" g2="Agrave" k="109" /> +<hkern g1="quotedblright" g2="Aacute" k="109" /> +<hkern g1="quotedblright" g2="Acircumflex" k="109" /> +<hkern g1="quotedblright" g2="Atilde" k="109" /> +<hkern g1="quotedblright" g2="Adieresis" k="109" /> +<hkern g1="quotedblright" g2="Aring" k="109" /> +<hkern g1="quotedblright" g2="AE" k="170" /> +<hkern g1="quotedblright" g2="Ccedilla" k="33" /> +<hkern g1="quotedblright" g2="Icircumflex" k="-43" /> +<hkern g1="quotedblright" g2="Ograve" k="33" /> +<hkern g1="quotedblright" g2="Oacute" k="33" /> +<hkern g1="quotedblright" g2="Ocircumflex" k="33" /> +<hkern g1="quotedblright" g2="Otilde" k="33" /> +<hkern g1="quotedblright" g2="Odieresis" k="33" /> +<hkern g1="quotedblright" g2="Oslash" k="33" /> +<hkern g1="quotedblright" g2="Yacute" k="-20" /> +<hkern g1="quotedblright" g2="agrave" k="43" /> +<hkern g1="quotedblright" g2="aacute" k="43" /> +<hkern g1="quotedblright" g2="acircumflex" k="43" /> +<hkern g1="quotedblright" g2="atilde" k="43" /> +<hkern g1="quotedblright" g2="adieresis" k="43" /> +<hkern g1="quotedblright" g2="aring" k="43" /> +<hkern g1="quotedblright" g2="ae" k="43" /> +<hkern g1="quotedblright" g2="ccedilla" k="59" /> +<hkern g1="quotedblright" g2="egrave" k="59" /> +<hkern g1="quotedblright" g2="eacute" k="59" /> +<hkern g1="quotedblright" g2="ecircumflex" k="59" /> +<hkern g1="quotedblright" g2="edieresis" k="59" /> +<hkern g1="quotedblright" g2="eth" k="27" /> +<hkern g1="quotedblright" g2="ntilde" k="31" /> +<hkern g1="quotedblright" g2="ograve" k="59" /> +<hkern g1="quotedblright" g2="oacute" k="59" /> +<hkern g1="quotedblright" g2="ocircumflex" k="59" /> +<hkern g1="quotedblright" g2="otilde" k="59" /> +<hkern g1="quotedblright" g2="odieresis" k="59" /> +<hkern g1="quotedblright" g2="oslash" k="59" /> +<hkern g1="quotedblright" g2="ugrave" k="29" /> +<hkern g1="quotedblright" g2="uacute" k="29" /> +<hkern g1="quotedblright" g2="ucircumflex" k="29" /> +<hkern g1="quotedblright" g2="udieresis" k="29" /> +<hkern g1="quotedblright" g2="OE" k="33" /> +<hkern g1="quotedblright" g2="oe" k="59" /> +<hkern g1="quotedblright" g2="quotesinglbase" k="252" /> +<hkern g1="quotedblright" g2="quotedblbase" k="252" /> +<hkern g1="quotedblright" g2="guilsinglleft" k="141" /> +<hkern g1="quotedblbase" g2="quotedbl" k="281" /> +<hkern g1="quotedblbase" g2="quotesingle" k="213" /> +<hkern g1="quotedblbase" g2="zero" k="31" /> +<hkern g1="quotedblbase" g2="six" k="20" /> +<hkern g1="quotedblbase" g2="seven" k="66" /> +<hkern g1="quotedblbase" g2="C" k="45" /> +<hkern g1="quotedblbase" g2="G" k="39" /> +<hkern g1="quotedblbase" g2="O" k="45" /> +<hkern g1="quotedblbase" g2="Q" k="45" /> +<hkern g1="quotedblbase" g2="T" k="113" /> +<hkern g1="quotedblbase" g2="U" k="55" /> +<hkern g1="quotedblbase" g2="V" k="139" /> +<hkern g1="quotedblbase" g2="W" k="133" /> +<hkern g1="quotedblbase" g2="Y" k="125" /> +<hkern g1="quotedblbase" g2="t" k="25" /> +<hkern g1="quotedblbase" g2="u" k="23" /> +<hkern g1="quotedblbase" g2="v" k="80" /> +<hkern g1="quotedblbase" g2="w" k="100" /> +<hkern g1="quotedblbase" g2="y" k="94" /> +<hkern g1="quotedblbase" g2="Ccedilla" k="45" /> +<hkern g1="quotedblbase" g2="Ograve" k="45" /> +<hkern g1="quotedblbase" g2="Oacute" k="45" /> +<hkern g1="quotedblbase" g2="Ocircumflex" k="45" /> +<hkern g1="quotedblbase" g2="Otilde" k="45" /> +<hkern g1="quotedblbase" g2="Odieresis" k="45" /> +<hkern g1="quotedblbase" g2="Oslash" k="45" /> +<hkern g1="quotedblbase" g2="Ugrave" k="55" /> +<hkern g1="quotedblbase" g2="Uacute" k="55" /> +<hkern g1="quotedblbase" g2="Ucircumflex" k="55" /> +<hkern g1="quotedblbase" g2="Udieresis" k="55" /> +<hkern g1="quotedblbase" g2="Yacute" k="125" /> +<hkern g1="quotedblbase" g2="ugrave" k="23" /> +<hkern g1="quotedblbase" g2="uacute" k="23" /> +<hkern g1="quotedblbase" g2="ucircumflex" k="23" /> +<hkern g1="quotedblbase" g2="udieresis" k="23" /> +<hkern g1="quotedblbase" g2="yacute" k="94" /> +<hkern g1="quotedblbase" g2="ydieresis" k="94" /> +<hkern g1="quotedblbase" g2="OE" k="45" /> +<hkern g1="quotedblbase" g2="quoteleft" k="227" /> +<hkern g1="quotedblbase" g2="quoteright" k="178" /> +<hkern g1="quotedblbase" g2="quotedblleft" k="252" /> +<hkern g1="quotedblbase" g2="quotedblright" k="252" /> +<hkern g1="guilsinglleft" g2="W" k="23" /> +<hkern g1="guilsinglleft" g2="Y" k="35" /> +<hkern g1="guilsinglleft" g2="AE" k="-16" /> +<hkern g1="guilsinglleft" g2="Yacute" k="35" /> +<hkern g1="guilsinglright" g2="quotedbl" k="96" /> +<hkern g1="guilsinglright" g2="quotesingle" k="96" /> +<hkern g1="guilsinglright" g2="B" k="20" /> +<hkern g1="guilsinglright" g2="D" k="20" /> +<hkern g1="guilsinglright" g2="E" k="20" /> +<hkern g1="guilsinglright" g2="F" k="20" /> +<hkern g1="guilsinglright" g2="H" k="20" /> +<hkern g1="guilsinglright" g2="I" k="20" /> +<hkern g1="guilsinglright" g2="J" k="20" /> +<hkern g1="guilsinglright" g2="K" k="20" /> +<hkern g1="guilsinglright" g2="L" k="20" /> +<hkern g1="guilsinglright" g2="N" k="20" /> +<hkern g1="guilsinglright" g2="P" k="20" /> +<hkern g1="guilsinglright" g2="R" k="20" /> +<hkern g1="guilsinglright" g2="T" k="80" /> +<hkern g1="guilsinglright" g2="V" k="59" /> +<hkern g1="guilsinglright" g2="W" k="61" /> +<hkern g1="guilsinglright" g2="X" k="37" /> +<hkern g1="guilsinglright" g2="Y" k="106" /> +<hkern g1="guilsinglright" g2="Z" k="41" /> +<hkern g1="guilsinglright" g2="AE" k="29" /> +<hkern g1="guilsinglright" g2="Egrave" k="20" /> +<hkern g1="guilsinglright" g2="Eacute" k="20" /> +<hkern g1="guilsinglright" g2="Ecircumflex" k="20" /> +<hkern g1="guilsinglright" g2="Edieresis" k="20" /> +<hkern g1="guilsinglright" g2="Igrave" k="20" /> +<hkern g1="guilsinglright" g2="Iacute" k="20" /> +<hkern g1="guilsinglright" g2="Icircumflex" k="20" /> +<hkern g1="guilsinglright" g2="Idieresis" k="20" /> +<hkern g1="guilsinglright" g2="Eth" k="20" /> +<hkern g1="guilsinglright" g2="Ntilde" k="20" /> +<hkern g1="guilsinglright" g2="Yacute" k="106" /> +<hkern g1="guilsinglright" g2="Thorn" k="20" /> +<hkern g1="guilsinglright" g2="quoteright" k="131" /> +<hkern g1="guilsinglright" g2="quotedblright" k="131" /> +<hkern g1="fraction" g2="four" k="82" /> +<hkern g1="fraction" g2="seven" k="-63" /> +<hkern g1="minus" g2="one" k="53" /> +<hkern g1="minus" g2="two" k="53" /> +<hkern g1="minus" g2="three" k="37" /> +<hkern g1="minus" g2="seven" k="115" /> +</font> +</defs> +</svg> diff --git a/web/static/fonts/Lora-regular.ttf b/web/static/fonts/Lora-regular.ttf Binary files differnew file mode 100644 index 000000000..87053298d --- /dev/null +++ b/web/static/fonts/Lora-regular.ttf diff --git a/web/static/fonts/Lora-regular.woff b/web/static/fonts/Lora-regular.woff Binary files differnew file mode 100644 index 000000000..2b9a6be8f --- /dev/null +++ b/web/static/fonts/Lora-regular.woff diff --git a/web/static/fonts/Lora-regular.woff2 b/web/static/fonts/Lora-regular.woff2 Binary files differnew file mode 100644 index 000000000..dfa9891a3 --- /dev/null +++ b/web/static/fonts/Lora-regular.woff2 diff --git a/web/static/fonts/PT-Sans-regular.eot b/web/static/fonts/PT-Sans-regular.eot Binary files differnew file mode 100644 index 000000000..428f39fca --- /dev/null +++ b/web/static/fonts/PT-Sans-regular.eot diff --git a/web/static/fonts/PT-Sans-regular.svg b/web/static/fonts/PT-Sans-regular.svg new file mode 100644 index 000000000..c23a6b1bc --- /dev/null +++ b/web/static/fonts/PT-Sans-regular.svg @@ -0,0 +1,1335 @@ +<?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"> +<defs > +<font id="PTSans" horiz-adv-x="527" ><font-face + font-family="PT Sans" + units-per-em="1000" + panose-1="2 11 5 3 2 2 3 2 2 4" + ascent="1018" + descent="-276" + alphabetic="0" /> +<glyph unicode=" " glyph-name="space" horiz-adv-x="267" /> +<glyph unicode="!" glyph-name="exclam" horiz-adv-x="305" d="M127 700H210V353L193 177H144L127 353V700ZM110 46Q110 73 125 88T167 104Q194 104 210 89T226 46Q226 20 210 4T167 -12Q141 -12 126 4T110 46Z" /> +<glyph unicode=""" glyph-name="quotedbl" horiz-adv-x="335" d="M207 700H285L254 507H207V700ZM90 700H168L137 507H90V700Z" /> +<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="545" d="M280 225H175L136 58H67L106 225H28L42 289H121L152 420H78L92 484H167L205 642H274L236 484H341L379 642H448L410 484H487L471 420H395L364 289H437L421 225H349L310 58H241L280 225ZM190 289H295L326 +420H221L190 289Z" /> +<glyph unicode="$" glyph-name="dollar" horiz-adv-x="545" d="M242 -12Q187 -11 145 -3T76 20L103 93Q123 81 157 71T242 60V330Q212 345 183 362T130 402T93 458T79 534Q79 606 119 652T242 709V800H310V712Q361 710 393 703T452 683L428 613Q408 623 380 630T310 +640V393Q341 377 372 359T427 316T467 260T482 185Q482 107 439 57T310 -8V-100H242V-12ZM399 178Q399 202 391 221T368 255T335 282T294 305V62Q340 69 369 97T399 178ZM162 539Q162 496 189 469T258 420V639Q205 633 184 604T162 539Z" /> +<glyph unicode="%" glyph-name="percent" horiz-adv-x="773" d="M70 542Q70 587 82 619T114 672T163 702T225 712Q258 712 286 703T335 674T368 622T380 542Q380 495 368 463T336 410T287 381T225 372Q192 372 164 381T115 410T82 462T70 542ZM144 542Q144 482 +165 456T225 430Q244 430 259 435T284 453T300 487T306 542Q306 575 301 596T285 630T259 648T225 654Q187 654 166 631T144 542ZM427 171Q427 216 439 248T471 301T520 331T582 341Q615 341 643 332T692 303T725 251T737 171Q737 124 725 92T693 39T644 10T582 +1Q549 1 521 10T472 39T439 91T427 171ZM501 171Q501 111 522 85T582 59Q601 59 616 64T641 82T657 116T663 171Q663 204 658 225T642 259T616 277T582 283Q544 283 523 260T501 171ZM637 713L686 675L173 -12L123 27L637 713Z" /> +<glyph unicode="&" glyph-name="ampersand" horiz-adv-x="814" d="M118 187Q118 227 132 263T170 331T224 388T288 434Q264 470 247 506T229 584Q229 608 237 631T262 672T307 701T374 712Q415 712 443 702T488 674T512 636T520 593Q520 551 488 507T385 421Q401 +392 422 362T468 301T517 242T567 187Q578 199 589 217T610 256T629 299T645 341L707 312Q701 295 690 272T666 224T638 177T612 139Q633 119 650 105T681 80T709 61T737 44L687 -12Q634 14 566 81Q548 63 527 47T478 17T419 -4T347 -12Q300 -12 259 1T186 39T137 +102T118 187ZM519 131Q490 160 462 194T409 262T362 327T325 383Q298 363 275 342T235 298T208 247T198 189Q198 158 211 134T246 93T298 67T359 58Q384 58 407 64T452 81T490 104T519 131ZM307 584Q307 554 319 525T352 466Q405 500 425 528T446 577Q446 609 431 +629T377 649Q341 649 324 631T307 584Z" /> +<glyph unicode="'" glyph-name="quotesingle" horiz-adv-x="218" d="M90 700H168L137 507H90V700Z" /> +<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="280" d="M227 -220Q181 -172 149 -115T98 3T69 125T60 243Q60 298 69 359T98 481T150 602T230 712L278 677Q238 626 212 572T169 461T147 350T140 243Q140 195 147 139T171 26T214 -85T278 -183L227 -220Z" /> +<glyph unicode=")" glyph-name="parenright" horiz-adv-x="280" d="M53 712Q99 664 131 607T182 489T211 367T220 249Q220 194 211 133T182 11T130 -110T50 -220L2 -185Q42 -134 69 -79T111 32T133 143T140 249Q140 297 132 353T108 466T65 577T2 675L53 712Z" /> +<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="351" d="M130 715L155 673L173 617L194 674L218 714L266 688L240 645L194 597L262 609H310V553H264L200 565L246 517L269 478L222 450L196 492L173 553L154 495L129 453L79 481L106 523L148 565L90 553H40V609H90L152 +597L107 641L81 687L130 715Z" /> +<glyph unicode="+" glyph-name="plus" horiz-adv-x="505" d="M40 374H216V555H288V374H464V302H288V122H216V302H40V374Z" /> +<glyph unicode="," glyph-name="comma" horiz-adv-x="225" d="M49 43Q49 67 65 82T106 97Q137 97 156 75T176 11Q176 -25 166 -52T140 -98T105 -130T67 -149L42 -110Q78 -96 95 -67T113 -7Q104 -10 96 -10Q76 -10 63 3T49 43Z" /> +<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="360" d="M59 325H301V251H59V325Z" /> +<glyph unicode="." glyph-name="period" horiz-adv-x="214" d="M49 46Q49 73 64 88T106 104Q133 104 149 89T165 46Q165 20 149 4T106 -12Q80 -12 65 4T49 46Z" /> +<glyph unicode="/" glyph-name="slash" horiz-adv-x="354" d="M328 712L391 684L26 -140L-37 -112L328 712Z" /> +<glyph unicode="0" glyph-name="zero" horiz-adv-x="545" d="M43 350Q43 530 101 621T272 712Q393 712 447 623T502 350Q502 170 444 79T272 -12Q153 -12 98 83T43 350ZM126 350Q126 285 134 232T161 140T206 80T272 58Q348 58 383 128T419 350Q419 414 412 468T387 +561T341 621T272 642Q197 642 162 571T126 350Z" /> +<glyph unicode="1" glyph-name="one" horiz-adv-x="545" d="M108 74H248V558L258 617L218 570L108 491L70 542L290 712H326V74H463V0H108V74Z" /> +<glyph unicode="2" glyph-name="two" horiz-adv-x="545" d="M446 541Q446 488 427 433T376 321T305 212T227 110L178 67V63L242 74H460V0H62V29Q84 52 115 86T179 161T245 249T304 344T347 439T363 528Q363 577 335 609T250 642Q212 642 176 627T114 591L81 648Q116 +678 164 695T267 712Q310 712 343 700T399 664T434 610T446 541Z" /> +<glyph unicode="3" glyph-name="three" horiz-adv-x="545" d="M234 58Q268 58 297 68T347 97T380 144T392 203Q392 273 351 307T236 341H162V370L306 592L352 636L287 626H89V700H446V671L287 432L252 403V401L286 408Q326 407 360 394T419 355T458 294T472 213Q472 +159 453 117T402 47T325 3T232 -12Q187 -12 151 -5T88 13L109 84Q132 73 163 66T234 58Z" /> +<glyph unicode="4" glyph-name="four" horiz-adv-x="545" d="M524 215H406V0H328V215H20V248L352 711H406V285H524V215ZM328 503L338 585H335L300 517L159 326L111 277L181 285H328V503Z" /> +<glyph unicode="5" glyph-name="five" horiz-adv-x="545" d="M213 58Q282 58 327 98T372 214Q372 287 328 323T205 359L121 354V700H433V626H196V427L239 429Q338 428 395 374T452 219Q452 163 433 120T382 47T305 3T211 -12Q166 -12 135 -7T77 8L98 76Q121 67 +147 63T213 58Z" /> +<glyph unicode="6" glyph-name="six" horiz-adv-x="545" d="M492 211Q492 165 478 125T437 54T370 6T279 -12Q229 -12 189 4T120 51T76 129T60 235Q60 334 85 417T156 563T262 663T396 712L413 648Q357 638 311 610T231 541T174 449T144 344Q160 371 198 393T291 +416Q385 416 438 362T492 211ZM409 203Q409 274 376 310T274 346Q225 346 190 322T140 268Q138 254 138 245T138 225Q138 194 146 164T173 111T217 73T280 58Q309 58 332 69T373 99T399 145T409 203Z" /> +<glyph unicode="7" glyph-name="seven" horiz-adv-x="545" d="M110 0L361 586L405 635L346 626H61V700H479V673L191 0H110Z" /> +<glyph unicode="8" glyph-name="eight" horiz-adv-x="545" d="M68 167Q68 230 101 276T204 361Q179 376 158 392T120 430T94 477T84 537Q84 576 97 608T136 663T197 699T278 712Q320 712 354 700T411 667T448 617T461 553Q461 496 435 453T349 367Q375 352 398 +334T439 294T467 245T477 182Q477 139 463 104T422 43T356 3T267 -12Q219 -12 182 2T120 40T81 96T68 167ZM399 177Q399 207 387 229T356 270T311 304T259 333Q198 299 172 257T146 177Q146 153 154 131T178 93T217 68T272 58Q297 58 320 65T360 87T388 124T399 +177ZM162 539Q162 511 173 490T202 451T245 420T295 392Q340 427 361 461T383 536Q383 587 352 614T276 642Q249 642 228 633T192 610T170 578T162 539Z" /> +<glyph unicode="9" glyph-name="nine" horiz-adv-x="545" d="M52 488Q52 536 66 577T107 648T174 695T269 712Q371 712 428 646T485 460Q485 347 460 263T389 120T283 30T149 -12L131 52Q189 61 235 86T315 149T370 235T399 341Q372 309 340 297T254 284Q213 284 +177 297T112 337T68 401T52 488ZM135 496Q135 425 172 390T271 354Q320 354 355 370T405 412Q407 425 407 435T407 456Q407 492 399 525T373 585T329 627T264 642Q203 642 169 604T135 496Z" /> +<glyph unicode=":" glyph-name="colon" horiz-adv-x="219" d="M91 449Q91 476 106 491T148 507Q175 507 191 492T207 449Q207 423 191 407T148 391Q122 391 107 407T91 449ZM91 46Q91 73 106 88T148 104Q175 104 191 89T207 46Q207 20 191 4T148 -12Q122 -12 107 +4T91 46Z" /> +<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="256" d="M89 43Q89 67 105 82T146 97Q177 97 196 75T216 11Q216 -25 206 -52T180 -98T145 -130T107 -149L82 -110Q118 -96 135 -67T153 -7Q144 -10 136 -10Q116 -10 103 3T89 43ZM96 449Q96 476 111 491T153 +507Q180 507 196 492T212 449Q212 423 196 407T153 391Q127 391 112 407T96 449Z" /> +<glyph unicode="<" glyph-name="less" horiz-adv-x="505" d="M42 305V334L420 565L458 503L221 358L130 320L220 288L463 144L425 84L42 305Z" /> +<glyph unicode="=" glyph-name="equal" horiz-adv-x="505" d="M40 457H464V385H40V457ZM40 291H464V219H40V291Z" /> +<glyph unicode=">" glyph-name="greater" horiz-adv-x="505" d="M463 344V315L85 84L47 145L284 290L375 328L285 360L42 504L80 565L463 344Z" /> +<glyph unicode="?" glyph-name="question" horiz-adv-x="436" d="M150 177Q149 182 149 188T149 199Q149 241 161 273T192 331T232 381T272 427T303 477T316 538Q316 584 290 613T201 642Q165 642 128 630T64 600L37 662Q75 685 117 698T221 712Q265 712 298 700T354 +665T388 613T399 549Q399 504 386 471T352 410T308 358T264 308T230 250T216 177H150ZM130 46Q130 73 145 88T187 104Q214 104 230 89T246 46Q246 20 230 4T187 -12Q161 -12 146 4T130 46Z" /> +<glyph unicode="@" glyph-name="at" horiz-adv-x="1064" d="M707 491H741L690 204Q685 178 683 158T680 121Q680 96 688 85T718 73Q752 73 785 91T845 142T887 221T904 326Q904 403 878 462T805 561T693 623T550 644Q469 644 398 614T274 531T191 404T160 243Q160 +154 187 84T266 -34T388 -107T546 -132Q575 -132 612 -126T679 -104L699 -168Q654 -187 616 -193T534 -200Q441 -200 360 -172T218 -89T122 47T87 236Q87 345 124 433T226 583T375 678T555 712Q645 712 722 686T855 610T944 489T977 326Q977 262 955 204T896 101T808 +31T702 4Q660 4 635 22T610 89Q610 98 611 108T614 131H610Q596 108 577 86T535 45T485 16T429 4Q405 4 383 14T345 45T320 92T310 155Q310 219 331 281T387 391T470 468T571 498Q608 498 630 487T673 460L707 491ZM650 393Q633 413 616 420T573 428Q534 428 500 +405T442 344T403 260T388 168Q388 129 404 102T462 74Q482 74 503 87T546 122T586 173T620 230L650 393Z" /> +<glyph unicode="A" glyph-name="A" horiz-adv-x="585" d="M418 194H160L90 0H8L273 711H311L577 0H490L418 194ZM187 266H393L315 479L290 585H289L264 477L187 266Z" /> +<glyph unicode="B" glyph-name="B" horiz-adv-x="584" d="M507 540Q507 515 499 489T475 441T434 401T375 375V371Q405 366 432 354T481 321T515 270T528 199Q528 145 506 106T447 41T363 4T267 -8Q250 -8 227 -8T179 -7T129 -3T85 5V694Q122 700 171 704T278 +708Q317 708 357 702T431 677T485 625T507 540ZM275 64Q307 64 337 71T390 95T426 136T440 193Q440 234 424 259T381 298T321 317T255 322H168V71Q175 69 188 68T216 66T247 65T275 64ZM220 392Q237 392 261 393T301 396Q325 404 346 415T383 442T409 478T419 523Q419 +556 407 577T373 612T325 630T270 636Q237 636 210 635T168 630V392H220Z" /> +<glyph unicode="C" glyph-name="C" horiz-adv-x="571" d="M533 29Q503 6 457 -3T359 -12Q296 -12 241 9T145 75T80 187T56 350Q56 448 82 516T152 628T250 692T360 712Q420 712 458 706T523 688L503 615Q455 638 366 638Q325 638 285 623T214 574T163 485T144 +350Q144 278 162 224T211 134T285 80T378 62Q423 62 456 71T513 94L533 29Z" /> +<glyph unicode="D" glyph-name="D" horiz-adv-x="654" d="M85 700Q104 703 127 704T176 706T226 707T272 708Q356 708 417 682T519 610T578 498T598 355Q598 284 580 219T521 103T417 22T262 -9Q246 -9 221 -9T168 -7T118 -4T85 -1V700ZM274 634Q261 634 246 634T215 +633T188 631T168 629V69Q173 68 187 68T216 67T245 66T264 65Q334 65 381 89T457 153T498 246T510 355Q510 404 499 453T461 543T389 608T274 634Z" /> +<glyph unicode="E" glyph-name="E" horiz-adv-x="536" d="M85 700H466V626H168V397H441V323H168V74H471V0H85V700Z" /> +<glyph unicode="F" glyph-name="F" horiz-adv-x="517" d="M85 700H466V626H168V387H446V313H168V0H85V700Z" /> +<glyph unicode="G" glyph-name="G" horiz-adv-x="612" d="M321 349H556V41Q540 29 518 19T470 2T417 -8T363 -12Q296 -12 240 9T143 75T79 188T56 350Q56 447 84 516T157 628T258 692T370 712Q430 712 469 706T535 688L514 615Q466 638 377 638Q335 638 294 624T219 +575T165 486T144 350Q144 276 161 222T208 133T282 80T376 62Q440 62 485 87V282L321 302V349Z" /> +<glyph unicode="H" glyph-name="H" horiz-adv-x="672" d="M504 321H168V0H85V700H168V395H504V700H587V0H504V321Z" /> +<glyph unicode="I" glyph-name="I" horiz-adv-x="291" d="M104 700H187V0H104V700Z" /> +<glyph unicode="J" glyph-name="J" horiz-adv-x="291" d="M112 700H195V154Q195 74 160 32T52 -10Q44 -10 32 -9T8 -6T-15 -1T-34 6L-18 77Q10 64 43 64Q85 64 98 93T112 174V700Z" /> +<glyph unicode="K" glyph-name="K" horiz-adv-x="610" d="M215 324H168V0H85V700H168V374L213 388L448 700H544L310 399L268 366L319 326L575 0H470L215 324Z" /> +<glyph unicode="L" glyph-name="L" horiz-adv-x="517" d="M499 0H85V700H168V74H499V0Z" /> +<glyph unicode="M" glyph-name="M" horiz-adv-x="791" d="M623 470L633 575H628L590 479L408 163H383L190 480L154 575H149L163 471V0H85V700H147L366 342L399 264H401L432 344L641 700H706V0H623V470Z" /> +<glyph unicode="N" glyph-name="N" horiz-adv-x="673" d="M211 458L157 559H153L163 458V0H85V711H129L464 244L516 148H521L510 244V700H588V-11H544L211 458Z" /> +<glyph unicode="O" glyph-name="O" horiz-adv-x="684" d="M56 350Q56 525 130 618T341 712Q415 712 469 686T558 613T611 499T628 350Q628 175 554 82T341 -12Q268 -12 215 14T126 87T73 201T56 350ZM144 350Q144 292 155 240T191 149T252 86T341 62Q434 62 487 +132T540 350Q540 407 529 459T493 551T431 614T341 638Q249 638 197 568T144 350Z" /> +<glyph unicode="P" glyph-name="P" horiz-adv-x="559" d="M85 693Q123 702 167 705T254 708Q300 708 347 699T434 666T497 600T522 493Q522 429 499 385T438 314T351 274T250 262Q245 262 234 262T210 262T185 264T168 266V0H85V693ZM256 636Q230 636 206 635T168 +630V340Q173 338 184 338T207 337T230 336T246 336Q280 336 313 342T374 366T417 414T434 493Q434 534 419 561T378 605T320 629T256 636Z" /> +<glyph unicode="Q" glyph-name="Q" horiz-adv-x="684" d="M704 -171Q680 -178 657 -180T611 -183Q561 -183 514 -173T422 -150T336 -127T258 -116Q234 -116 212 -122V-49Q226 -46 239 -44T266 -42Q308 -42 349 -52T434 -75T522 -98T617 -109Q661 -109 704 -99V-171ZM56 +350Q56 525 130 618T341 712Q415 712 469 686T558 613T611 499T628 350Q628 175 554 82T341 -12Q268 -12 215 14T126 87T73 201T56 350ZM144 350Q144 292 155 240T191 149T252 86T341 62Q434 62 487 132T540 350Q540 407 529 459T493 551T431 614T341 638Q249 638 +197 568T144 350Z" /> +<glyph unicode="R" glyph-name="R" horiz-adv-x="595" d="M85 693Q123 700 172 704T263 708Q309 708 350 698T423 665T474 605T493 515Q493 433 448 382T334 314L382 277L556 0H459L266 302L168 317V0H85V693ZM265 636Q252 636 238 636T211 635T187 633T168 630V372H246Q315 +372 360 406T405 512Q405 566 368 601T265 636Z" /> +<glyph unicode="S" glyph-name="S" horiz-adv-x="531" d="M401 178Q401 220 376 246T314 293T232 332T151 375T88 438T63 534Q63 616 120 664T282 712Q343 712 393 703T471 680L446 607Q423 618 379 628T278 638Q212 638 179 609T146 539Q146 500 171 474T233 +428T315 387T396 341T459 277T484 185Q484 140 468 104T421 42T346 2T246 -12Q171 -12 122 -1T46 25L74 100Q97 87 142 75T243 62Q276 62 305 68T355 89T388 126T401 178Z" /> +<glyph unicode="T" glyph-name="T" horiz-adv-x="555" d="M537 626H319V0H236V626H18V700H537V626Z" /> +<glyph unicode="U" glyph-name="U" horiz-adv-x="652" d="M487 700H567V233Q567 170 551 124T504 49T430 5T335 -9Q211 -9 148 47T85 217V700H168V256Q168 203 178 167T210 108T262 75T336 65Q417 65 452 109T487 256V700Z" /> +<glyph unicode="V" glyph-name="V" horiz-adv-x="568" d="M267 219L291 113H292L318 221L487 700H570L305 -11H268L-2 700H89L267 219Z" /> +<glyph unicode="W" glyph-name="W" horiz-adv-x="828" d="M222 231L238 115H239L256 233L400 700H440L585 231L602 115H603L621 233L739 700H820L625 -11H579L437 458L419 564H414L396 457L254 -11H208L8 700H96L222 231Z" /> +<glyph unicode="X" glyph-name="X" horiz-adv-x="618" d="M259 356L46 700H146L288 463L313 406L337 463L487 700H579L359 363L589 0H492L334 251L307 311L281 251L119 0H26L259 356Z" /> +<glyph unicode="Y" glyph-name="Y" horiz-adv-x="558" d="M239 278L8 700H105L269 394L286 333H287L305 396L462 700H551L322 279V0H239V278Z" /> +<glyph unicode="Z" glyph-name="Z" horiz-adv-x="545" d="M38 75L391 586L433 626H38V700H508V625L153 111L111 74H508V0H38V75Z" /> +<glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="304" d="M85 700H266V630H163V-160H266V-230H85V700Z" /> +<glyph unicode="\" glyph-name="backslash" horiz-adv-x="380" d="M399 -111L333 -140L-37 684L30 712L399 -111Z" /> +<glyph unicode="]" glyph-name="bracketright" horiz-adv-x="304" d="M220 -230H38V-160H142V630H38V700H220V-230Z" /> +<glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="500" d="M234 711H263L432 435H350L270 570L247 639L216 569L124 435H48L234 711Z" /> +<glyph unicode="_" glyph-name="underscore" horiz-adv-x="408" d="M0 -135H408V-205H0V-135Z" /> +<glyph unicode="`" glyph-name="grave" horiz-adv-x="280" d="M220 571H175L60 699V720H155L220 571Z" /> +<glyph unicode="a" glyph-name="a" horiz-adv-x="496" d="M69 463Q107 486 157 497T263 508Q315 508 346 494T394 458T416 408T422 354Q422 294 419 237T416 129Q416 92 419 59T430 -2H371L350 68H345Q336 54 323 41T290 17T246 -1T189 -8Q157 -8 130 2T82 30T51 +75T39 134Q39 178 57 207T107 254T185 279T286 287Q300 287 313 287T341 285Q344 315 344 339Q344 394 322 416T242 438Q225 438 206 436T166 429T127 418T94 403L69 463ZM211 62Q239 62 261 69T299 88T325 114T341 141V224Q327 225 313 225T284 226Q253 226 224 +223T172 210T136 184T122 142Q122 107 147 85T211 62Z" /> +<glyph unicode="b" glyph-name="b" horiz-adv-x="540" d="M77 700H157V451H161Q184 480 219 496T297 512Q394 512 442 450T491 258Q491 127 427 59T247 -9Q191 -9 146 3T77 29V700ZM283 442Q233 442 202 414T157 335V83Q176 72 203 67T259 61Q327 61 367 109T408 +259Q408 298 401 332T379 390T341 428T283 442Z" /> +<glyph unicode="c" glyph-name="c" horiz-adv-x="451" d="M418 33Q388 11 347 0T261 -12Q203 -12 163 6T98 59T61 142T49 250Q49 377 105 444T266 512Q314 512 347 505T408 483L385 414Q362 427 334 434T274 442Q132 442 132 250Q132 212 139 178T164 117T210 +74T281 58Q317 58 345 69T392 94L418 33Z" /> +<glyph unicode="d" glyph-name="d" horiz-adv-x="538" d="M461 172Q461 121 462 80T471 -2H417L397 69H393Q373 34 335 11T246 -12Q146 -12 98 51T49 248Q49 376 109 442T276 509Q313 509 334 505T381 492V700H461V172ZM259 58Q310 58 340 84T381 165V413Q363 +427 340 433T279 439Q210 439 171 394T132 248Q132 207 138 172T160 112T199 73T259 58Z" /> +<glyph unicode="e" glyph-name="e" horiz-adv-x="508" d="M442 40Q412 16 367 2T270 -12Q213 -12 171 6T102 59T62 142T49 250Q49 378 106 445T269 512Q303 512 337 505T398 476T442 417T459 315Q459 282 453 242H132Q132 198 141 164T169 107T218 71T293 58Q327 +58 361 70T412 98L442 40ZM270 442Q211 442 176 411T133 305H381Q381 381 352 411T270 442Z" /> +<glyph unicode="f" glyph-name="f" horiz-adv-x="319" d="M22 500H100V528Q100 574 107 608T132 663T176 695T243 706Q275 706 299 702T351 687L333 620Q310 630 290 633T251 636Q225 636 211 628T190 605T182 567T180 514V500H313V430H180V0H100V430H22V500Z" /> +<glyph unicode="g" glyph-name="g" horiz-adv-x="537" d="M460 -23Q460 -120 409 -166T256 -212Q196 -212 160 -205T97 -185L118 -117Q141 -126 169 -134T242 -142Q284 -142 310 -135T353 -110T375 -65T381 1V49H377Q357 20 326 5T245 -11Q144 -11 97 52T49 248Q49 +376 110 442T290 509Q347 509 387 500T460 479V-23ZM259 59Q310 59 339 84T380 164V420Q340 439 278 439Q210 439 171 393T132 249Q132 207 139 172T161 112T200 73T259 59Z" /> +<glyph unicode="h" glyph-name="h" horiz-adv-x="547" d="M398 0V285Q398 324 394 353T377 402T345 432T291 442Q244 442 206 412T157 333V0H77V700H157V444H161Q187 475 223 493T314 512Q356 512 387 503T438 469T468 405T478 302V0H398Z" /> +<glyph unicode="i" glyph-name="i" horiz-adv-x="268" d="M94 500H174V0H94V500ZM77 652Q77 675 92 691T132 708Q156 708 173 692T190 652Q190 629 173 614T132 599Q108 599 93 614T77 652Z" /> +<glyph unicode="j" glyph-name="j" horiz-adv-x="267" d="M93 500H173V-27Q173 -120 141 -166T39 -212Q31 -212 24 -212T9 -210V-142Q37 -142 53 -134T79 -107T90 -62T93 3V500ZM76 652Q76 675 91 691T131 708Q155 708 172 692T189 652Q189 629 172 614T131 599Q107 +599 92 614T76 652Z" /> +<glyph unicode="k" glyph-name="k" horiz-adv-x="479" d="M203 225H157V0H77V700H157V274L198 288L353 500H446L293 299L252 266L302 226L469 0H370L203 225Z" /> +<glyph unicode="l" glyph-name="l" horiz-adv-x="292" d="M166 123Q166 88 178 73T212 58Q225 58 240 60T274 69L283 6Q267 -2 239 -7T189 -12Q144 -12 115 13T86 100V700H166V123Z" /> +<glyph unicode="m" glyph-name="m" horiz-adv-x="812" d="M370 0V283Q370 323 367 352T353 402T325 432T276 442Q230 442 200 414T157 344V0H77V500H133L148 439H152Q179 471 214 491T307 512Q355 512 385 494T433 429Q456 468 496 490T588 512Q630 512 659 503T707 +469T734 404T743 300V0H663V301Q663 337 660 363T646 407T617 433T568 442Q518 442 490 414T450 334V0H370Z" /> +<glyph unicode="n" glyph-name="n" horiz-adv-x="547" d="M398 0V285Q398 363 376 402T293 442Q240 442 206 414T157 342V0H77V500H133L148 439H152Q176 471 216 491T313 512Q354 512 385 503T436 469T467 405T478 302V0H398Z" /> +<glyph unicode="o" glyph-name="o" horiz-adv-x="536" d="M49 250Q49 377 105 444T268 512Q324 512 365 494T434 441T474 358T487 250Q487 123 431 56T268 -12Q212 -12 171 6T102 59T62 142T49 250ZM132 250Q132 212 139 177T163 116T205 74T268 58Q404 57 404 +250Q404 289 397 324T373 385T331 426T268 442Q132 443 132 250Z" /> +<glyph unicode="p" glyph-name="p" horiz-adv-x="541" d="M77 500H132L147 440H151Q174 475 210 493T294 512Q394 512 443 453T492 260Q492 197 476 147T429 61T357 7T262 -12Q225 -12 204 -8T157 8V-200H77V500ZM279 442Q228 442 199 416T157 335V87Q175 73 198 +66T259 58Q328 58 368 109T409 261Q409 302 402 335T380 392T340 429T279 442Z" /> +<glyph unicode="q" glyph-name="q" horiz-adv-x="537" d="M460 -200H380V50H376Q356 20 326 4T245 -12Q145 -12 97 51T49 248Q49 377 111 443T292 509Q345 509 391 499T460 478V-200ZM259 58Q310 58 339 84T380 164V420Q343 439 278 439Q209 439 171 393T132 249Q132 +207 139 172T161 111T200 72T259 58Z" /> +<glyph unicode="r" glyph-name="r" horiz-adv-x="340" d="M313 423Q283 433 256 433Q213 433 188 410T157 350V0H77V500H133L148 439H152Q171 473 197 491T265 510Q294 510 330 500L313 423Z" /> +<glyph unicode="s" glyph-name="s" horiz-adv-x="421" d="M297 136Q297 166 279 183T235 211T177 233T119 260T74 303T56 373Q56 445 97 478T211 512Q265 512 301 503T365 480L346 414Q323 425 291 433T221 442Q177 442 157 427T136 375Q136 349 154 335T198 309T256 +286T314 257T359 212T377 139Q377 107 367 79T334 31T280 0T203 -12Q146 -12 106 -1T39 25L63 93Q86 80 123 69T198 58Q241 58 269 75T297 136Z" /> +<glyph unicode="t" glyph-name="t" horiz-adv-x="339" d="M11 500H89V599L169 622V500H305V430H169V153Q169 101 182 80T226 58Q252 58 270 63T310 78L328 17Q301 4 269 -4T200 -12Q139 -12 114 22T89 138V430H11V500Z" /> +<glyph unicode="u" glyph-name="u" horiz-adv-x="539" d="M149 500V215Q149 176 153 147T169 98T199 68T247 58Q274 58 295 66T332 90T361 124T382 166V500H462V142Q462 106 464 68T473 0H418L398 79H393Q370 40 331 14T232 -12Q192 -12 162 -3T111 31T80 95T69 +198V500H149Z" /> +<glyph unicode="v" glyph-name="v" horiz-adv-x="482" d="M221 207L249 112H250L275 209L387 500H473L260 -11H226L9 500H101L221 207Z" /> +<glyph unicode="w" glyph-name="w" horiz-adv-x="735" d="M401 500L516 208L541 112H543L562 210L651 500H727L559 -11H520L389 319L370 401H367L347 318L221 -11H182L8 500H95L194 209L211 112H212L236 211L343 500H401Z" /> +<glyph unicode="x" glyph-name="x" horiz-adv-x="515" d="M208 256L40 500H138L233 362L261 305L290 362L387 500H477L308 260L487 0H392L286 152L256 212L225 152L117 0H28L208 256Z" /> +<glyph unicode="y" glyph-name="y" horiz-adv-x="466" d="M224 176L252 80H257L279 177L376 500H457L309 51Q292 2 276 -44T239 -126T194 -183T136 -205Q100 -205 77 -195L91 -126Q104 -131 116 -131Q144 -131 170 -102T213 0L12 500H104L224 176Z" /> +<glyph unicode="z" glyph-name="z" horiz-adv-x="447" d="M42 70L273 388L315 430H42V500H398V430L165 109L124 70H398V0H42V70Z" /> +<glyph unicode="{" glyph-name="braceleft" horiz-adv-x="346" d="M137 112Q137 163 116 181T57 200V270Q95 270 116 290T137 354V596Q137 643 160 672T232 701H317V631H267Q240 631 228 618T215 572V335Q215 291 194 268T145 240V234Q172 230 193 204T215 135V-101Q215 +-132 227 -146T268 -160H317V-230H232Q187 -230 162 -204T137 -126V112Z" /> +<glyph unicode="|" glyph-name="bar" horiz-adv-x="238" d="M85 700H153V-130H85V700Z" /> +<glyph unicode="}" glyph-name="braceright" horiz-adv-x="346" d="M235 359Q235 308 256 290T315 271V201Q277 201 256 181T235 117V-125Q235 -172 212 -201T140 -230H55V-160H105Q132 -160 144 -147T157 -101V136Q157 180 177 203T226 231V237Q199 241 178 267T157 +336V572Q157 603 145 617T105 631H55V701H141Q185 701 210 675T235 597V359Z" /> +<glyph unicode="~" glyph-name="asciitilde" horiz-adv-x="505" d="M31 361Q74 394 109 407T173 420Q201 420 225 412T271 393T314 374T358 365Q377 365 397 373T440 401L474 340Q436 314 406 304T350 293Q323 293 301 301T258 320T217 339T172 348Q149 348 123 +338T65 301L31 361Z" /> +<glyph unicode=" " glyph-name="uni00A0" horiz-adv-x="267" /> +<glyph unicode="¡" glyph-name="exclamdown" horiz-adv-x="304" d="M176 -200H93V147L110 323H159L176 147V-200ZM77 453Q77 480 92 495T134 511Q161 511 177 496T193 453Q193 427 177 411T134 395Q108 395 93 411T77 453Z" /> +<glyph unicode="¢" glyph-name="cent" horiz-adv-x="545" d="M461 33Q437 16 407 6T341 -9V-100H270V-10Q220 -5 186 15T129 69T97 149T87 250Q87 365 134 431T270 509V600H341V511Q376 509 403 502T452 483L429 415Q409 425 385 432T334 441V58Q366 60 392 +70T435 94L461 33ZM170 250Q170 217 175 187T194 131T228 87T280 62V439Q170 418 170 250Z" /> +<glyph unicode="£" glyph-name="sterling" horiz-adv-x="545" d="M50 383H116Q104 409 96 440T88 513Q88 611 144 661T297 712Q358 712 403 703T477 680L451 609Q428 620 390 629T296 638Q236 638 204 606T171 518Q171 476 181 444T205 383H366V313H235Q243 +290 248 265T253 210Q253 180 244 149T217 97L178 64V60L240 74H496V0H50V72Q82 72 104 83T141 113T163 155T170 203Q170 236 164 262T147 313H50V383Z" /> +<glyph unicode="¤" glyph-name="currency" horiz-adv-x="545" d="M70 596L148 519L169 484Q211 517 272 517Q331 517 375 484L397 519L475 596L524 547L447 469L412 447Q444 404 444 345Q444 285 412 242L447 221L524 143L475 95L397 172L376 205Q333 174 +272 174Q210 174 169 205L148 172L70 95L21 143L98 221L132 243Q101 285 101 345Q101 374 109 400T132 448L98 469L21 547L70 596ZM170 345Q170 300 198 270T272 240Q317 240 346 270T375 345Q375 390 346 420T272 451Q227 451 199 421T170 345Z" /> +<glyph unicode="¥" glyph-name="yen" horiz-adv-x="545" d="M111 328H205L2 700H99L263 394L280 333H281L299 396L456 700H545L342 328H438V268H316V197H438V137H316V0H233V137H111V197H233V268H111V328Z" /> +<glyph unicode="¦" glyph-name="brokenbar" horiz-adv-x="238" d="M85 206H153V-130H85V206ZM153 364H85V700H153V364Z" /> +<glyph unicode="§" glyph-name="section" horiz-adv-x="497" d="M57 353Q57 384 72 413T114 466L155 480Q129 496 112 520T94 586Q94 642 135 677T251 712Q305 712 342 703T407 681L388 614Q364 625 331 633T262 642Q217 642 196 626T174 583Q174 557 193 +543T243 517T307 495T371 467T420 421T440 347Q440 316 425 287T384 235L339 221Q366 205 384 180T403 114Q403 83 391 60T358 20T307 -4T245 -12Q189 -12 153 -3T89 21L109 86Q132 75 164 67T235 58Q277 58 300 71T323 117Q323 143 304 158T254 184T190 206T126 +234T77 280T57 353ZM360 345Q360 370 347 386T313 413T264 433T210 452Q181 439 159 415T137 355Q137 330 150 314T183 287T230 267T284 249Q298 255 311 265T336 287T353 314T360 345Z" /> +<glyph unicode="¨" glyph-name="dieresis" horiz-adv-x="411" d="M60 653Q60 676 73 690T109 704Q131 704 144 690T158 653Q158 632 145 618T109 604Q87 604 74 618T60 653ZM252 653Q252 676 265 690T301 704Q324 704 337 690T351 653Q351 632 338 618T301 +604Q279 604 266 618T252 653Z" /> +<glyph unicode="©" glyph-name="copyright" horiz-adv-x="806" d="M51 290Q51 373 79 438T155 549T267 618T403 642Q475 642 539 618T651 549T727 439T755 290Q755 207 727 142T651 31T539 -38T403 -62Q323 -62 258 -38T147 31T76 141T51 290ZM121 290Q121 +221 143 168T203 78T292 23T403 4Q462 4 513 23T603 78T663 167T685 290Q685 359 663 412T603 502T514 557T403 576Q344 576 293 557T203 502T143 413T121 290ZM519 127Q496 114 468 107T401 100Q320 100 278 151T235 290Q235 381 280 430T401 480Q419 480 433 +478T460 473T485 464T512 453L486 392Q464 403 444 407T410 411Q368 411 342 385T315 290Q315 232 341 201T418 168Q465 168 498 186L519 127Z" /> +<glyph unicode="ª" glyph-name="ordfeminine" horiz-adv-x="386" d="M68 677Q93 690 134 699T225 708Q287 708 310 682T333 607Q333 569 332 534T330 467Q330 443 331 421T338 380H283L270 426H266Q253 409 229 393T162 376Q110 376 79 401T48 471Q48 502 +63 523T103 557T163 576T238 582Q245 582 251 582T265 581Q266 587 266 592T266 603Q266 630 254 641T208 652Q168 652 135 645T83 627L68 677ZM173 432Q194 432 209 437T236 450T254 468T265 487V529Q254 530 244 530T223 530Q202 530 183 528T150 520T127 504T118 +476Q118 456 132 444T173 432Z" /> +<glyph unicode="«" glyph-name="guillemotleft" horiz-adv-x="478" d="M222 259L380 487L433 445L336 301L288 260L336 224L439 83L387 40L222 259ZM39 259L199 489L253 446L155 301L107 260L155 224L259 82L205 38L39 259Z" /> +<glyph unicode="¬" glyph-name="logicalnot" horiz-adv-x="505" d="M41 392H465V200H393V320H41V392Z" /> +<glyph unicode="­" glyph-name="uni00AD" horiz-adv-x="360" d="M58 325H302V251H58V325Z" /> +<glyph unicode="®" glyph-name="registered" horiz-adv-x="700" d="M85 451Q85 515 106 564T163 647T248 698T350 716Q405 716 453 699T538 648T594 565T615 451Q615 387 594 338T537 255T452 204T350 186Q294 186 246 203T162 254T106 337T85 451ZM148 451Q148 +399 164 361T207 297T272 258T350 245Q393 245 430 257T494 295T536 359T552 451Q552 503 536 541T493 605T429 644T350 657Q306 657 269 644T205 606T163 542T148 451ZM247 581Q263 586 292 588T347 591Q389 591 419 574T449 513Q449 481 429 464T378 445L406 +431L480 322H419L347 426L299 441V322H247V581ZM336 546Q325 546 315 546T299 542V471H333Q362 471 378 480T394 511Q394 546 336 546Z" /> +<glyph unicode="¯" glyph-name="overscore" horiz-adv-x="416" d="M60 643H356V581H60V643Z" /> +<glyph unicode="°" glyph-name="degree" horiz-adv-x="425" d="M85 571Q85 602 96 628T126 672T171 701T226 712Q255 712 281 703T326 675T356 630T367 571Q367 538 356 512T326 468T281 440T226 430Q197 430 171 439T126 467T96 512T85 571ZM148 571Q148 +533 171 512T226 490Q257 490 280 511T304 571Q304 609 281 630T226 652Q195 652 172 631T148 571Z" /> +<glyph unicode="±" glyph-name="plusminus" horiz-adv-x="505" d="M40 493H216V674H288V493H464V421H288V301H216V421H40V493ZM40 250H464V178H40V250Z" /> +<glyph unicode="²" glyph-name="twosuperior" horiz-adv-x="394" d="M319 690Q319 659 309 630T281 573T239 518T188 462L142 430V428L199 443H339V380H48V413Q71 432 105 464T172 533T226 609T249 681Q249 712 229 727T180 743Q153 743 128 734T83 712L61 +769Q87 787 121 797T192 807Q255 807 287 776T319 690Z" /> +<glyph unicode="³" glyph-name="threesuperior" horiz-adv-x="394" d="M169 433Q217 433 242 452T268 508Q268 540 245 560T171 580H116V603L213 719L247 746L198 740H68V800H324V767L221 644L196 626V624L219 627Q274 626 306 594T338 508Q338 447 294 410T175 +373Q139 373 113 379T67 392L82 452Q99 444 121 439T169 433Z" /> +<glyph unicode="´" glyph-name="acute" horiz-adv-x="268" d="M119 720H208V699L107 571H60L119 720Z" /> +<glyph unicode="µ" glyph-name="mu" horiz-adv-x="552" d="M148 500V217Q148 138 172 98T258 58Q313 58 351 90T404 176V500H484V163Q484 122 486 81T499 0H444L416 74H412Q392 39 351 14T249 -12Q201 -12 176 2T132 38H127L148 -67V-200H68V500H148Z" /> +<glyph unicode="¶" glyph-name="paragraph" horiz-adv-x="494" d="M341 700H409V-130H341V700ZM185 310Q153 310 126 326T80 370T49 433T37 506Q37 543 48 578T82 640T136 683T208 700H253V-130H185V310Z" /> +<glyph unicode="·" glyph-name="middot" horiz-adv-x="267" d="M76 296Q76 323 91 338T133 354Q160 354 176 339T192 296Q192 270 176 254T133 238Q107 238 92 254T76 296Z" /> +<glyph unicode="¸" glyph-name="cedilla" horiz-adv-x="287" d="M172 0L148 -43Q190 -51 208 -69T227 -118Q227 -157 195 -182T105 -208Q94 -208 83 -207T60 -204L69 -165Q75 -166 80 -166T90 -166Q112 -166 124 -162T143 -153T151 -140T153 -127Q153 -99 +67 -90L115 0H172Z" /> +<glyph unicode="¹" glyph-name="onesuperior" horiz-adv-x="394" d="M72 441H178V695L185 731L158 703L80 656L53 705L207 807H248V441H343V380H72V441Z" /> +<glyph unicode="º" glyph-name="ordmasculine" horiz-adv-x="398" d="M44 542Q44 587 56 619T88 672T137 702T199 712Q232 712 260 703T309 674T342 622T354 542Q354 495 342 463T310 410T261 381T199 372Q166 372 138 381T89 410T56 462T44 542ZM118 542Q118 +482 139 456T199 430Q218 430 233 435T258 453T274 487T280 542Q280 575 275 596T259 630T233 648T199 654Q161 654 140 631T118 542Z" /> +<glyph unicode="»" glyph-name="guillemotright" horiz-adv-x="478" d="M257 268L97 40L45 82L141 226L190 267L141 303L39 444L91 487L257 268ZM439 268L279 38L225 81L323 226L371 267L323 303L219 445L272 489L439 268Z" /> +<glyph unicode="¼" glyph-name="onequarter" horiz-adv-x="837" d="M628 713L680 678L193 -12L141 24L628 713ZM797 96H714V0H647V96H443V133L669 435H714V155H797V96ZM647 283L653 332H651L629 286L551 181L518 150L568 155H647V283ZM179 595L186 631L158 +603L80 556L53 605L207 707H249V280H179V595Z" /> +<glyph unicode="½" glyph-name="onehalf" horiz-adv-x="850" d="M628 713L680 678L193 -12L141 24L628 713ZM790 310Q790 279 780 250T752 193T710 138T659 82L613 50V48L670 63H810V0H519V33Q542 52 576 84T643 153T697 229T720 301Q720 332 700 347T651 +363Q624 363 599 354T554 332L532 389Q558 407 592 417T663 427Q726 427 758 396T790 310ZM179 595L186 631L158 603L80 556L53 605L207 707H249V280H179V595Z" /> +<glyph unicode="¾" glyph-name="threequarters" horiz-adv-x="876" d="M667 713L719 678L232 -12L180 24L667 713ZM836 96H753V0H686V96H482V133L708 435H753V155H836V96ZM686 283L692 332H690L668 286L590 181L557 150L607 155H686V283ZM178 333Q226 333 +251 352T277 408Q277 440 254 460T180 480H125V503L222 619L256 646L207 640H77V700H333V667L230 544L205 526V524L228 527Q283 526 315 494T347 408Q347 347 303 310T184 273Q148 273 122 279T76 292L91 352Q108 344 130 339T178 333Z" /> +<glyph unicode="¿" glyph-name="questiondown" horiz-adv-x="436" d="M286 323Q287 318 287 312T287 301Q287 259 275 227T244 169T204 119T164 73T133 23T120 -38Q120 -84 146 -113T235 -142Q271 -142 308 -130T372 -100L399 -162Q361 -185 319 -198T215 +-212Q171 -212 138 -200T82 -165T48 -114T37 -49Q37 -4 50 29T84 90T128 142T172 192T206 250T220 323H286ZM191 454Q191 481 206 496T248 512Q275 512 291 497T307 454Q307 428 291 412T248 396Q222 396 207 412T191 454Z" /> +<glyph unicode="À" glyph-name="Agrave" horiz-adv-x="585" d="M418 194H160L90 0H8L273 711H311L577 0H490L418 194ZM187 266H393L315 479L290 585H289L264 477L187 266ZM367 752H293L135 849V870H249L367 752Z" /> +<glyph unicode="Á" glyph-name="Aacute" horiz-adv-x="585" d="M418 194H160L90 0H8L273 711H311L577 0H490L418 194ZM187 266H393L315 479L290 585H289L264 477L187 266ZM331 870H445V849L282 752H213L331 870Z" /> +<glyph unicode="Â" glyph-name="Acircumflex" horiz-adv-x="585" d="M418 194H160L90 0H8L273 711H311L577 0H490L418 194ZM187 266H393L315 479L290 585H289L264 477L187 266ZM265 870H325L452 768V747H371L311 796L294 831L275 797L211 747H132V769L265 870Z" /> +<glyph unicode="Ã" glyph-name="Atilde" horiz-adv-x="585" d="M418 194H160L90 0H8L273 711H311L577 0H490L418 194ZM187 266H393L315 479L290 585H289L264 477L187 266ZM135 785Q166 817 192 828T243 840Q262 840 280 835T314 824T347 812T378 807Q404 +807 428 828L453 785Q426 760 402 751T357 741Q338 741 321 746T288 757T255 769T223 774Q207 774 192 768T159 744L135 785Z" /> +<glyph unicode="Ä" glyph-name="Adieresis" horiz-adv-x="585" d="M418 194H160L90 0H8L273 711H311L577 0H490L418 194ZM187 266H393L315 479L290 585H289L264 477L187 266ZM144 794Q144 815 159 828T198 841Q221 841 235 828T250 794Q250 774 236 761T198 +748Q174 748 159 761T144 794ZM336 794Q336 815 350 828T388 841Q412 841 427 828T442 794Q442 774 427 761T388 748Q365 748 351 761T336 794Z" /> +<glyph unicode="Å" glyph-name="Aring" horiz-adv-x="585" d="M188 768Q188 805 213 829T293 853Q343 853 371 832T399 768Q399 736 379 715T320 687L577 0H490L418 194H160L90 0H8L264 687Q226 693 207 714T188 768ZM187 266H393L315 479L290 585H289L264 +477L187 266ZM249 768Q249 751 259 740T293 728Q315 728 326 739T338 768Q338 787 327 798T293 810Q271 810 260 799T249 768Z" /> +<glyph unicode="Æ" glyph-name="AE" horiz-adv-x="846" d="M391 600L357 497L224 268H395V600H391ZM395 198H181L69 0H-22L393 700H776V626H478V397H751V323H478V74H781V0H395V198Z" /> +<glyph unicode="Ç" glyph-name="Ccedilla" horiz-adv-x="571" d="M533 29Q507 9 469 0T386 -11L369 -43Q411 -51 429 -69T448 -118Q448 -157 416 -182T326 -208Q315 -208 304 -207T281 -204L290 -165Q296 -166 301 -166T311 -166Q333 -166 345 -162T364 -153T372 +-140T374 -127Q374 -99 288 -90L330 -10Q272 -6 222 17T135 85T77 195T56 350Q56 448 82 516T152 628T250 692T360 712Q420 712 458 706T523 688L503 615Q455 638 366 638Q325 638 285 623T214 574T163 485T144 350Q144 278 162 224T211 134T285 80T378 62Q423 +62 456 71T513 94L533 29Z" /> +<glyph unicode="È" glyph-name="Egrave" horiz-adv-x="536" d="M85 700H466V626H168V397H441V323H168V74H471V0H85V700ZM326 752H252L94 849V870H208L326 752Z" /> +<glyph unicode="É" glyph-name="Eacute" horiz-adv-x="536" d="M85 700H466V626H168V397H441V323H168V74H471V0H85V700ZM330 870H444V849L281 752H212L330 870Z" /> +<glyph unicode="Ê" glyph-name="Ecircumflex" horiz-adv-x="536" d="M85 700H466V626H168V397H441V323H168V74H471V0H85V700ZM242 870H302L429 768V747H348L288 796L271 831L252 797L188 747H109V769L242 870Z" /> +<glyph unicode="Ë" glyph-name="Edieresis" horiz-adv-x="536" d="M85 700H466V626H168V397H441V323H168V74H471V0H85V700ZM120 794Q120 815 135 828T174 841Q197 841 211 828T226 794Q226 774 212 761T174 748Q150 748 135 761T120 794ZM312 794Q312 815 +326 828T364 841Q388 841 403 828T418 794Q418 774 403 761T364 748Q341 748 327 761T312 794Z" /> +<glyph unicode="Ì" glyph-name="Igrave" horiz-adv-x="291" d="M104 700H187V0H104V700ZM489 752H415L257 849V870H371L489 752Z" /> +<glyph unicode="Í" glyph-name="Iacute" horiz-adv-x="291" d="M104 700H187V0H104V700ZM180 870H294V849L131 752H62L180 870Z" /> +<glyph unicode="Î" glyph-name="Icircumflex" horiz-adv-x="291" d="M104 700H187V0H104V700ZM374 870H434L561 768V747H480L420 796L403 831L384 797L320 747H241V769L374 870Z" /> +<glyph unicode="Ï" glyph-name="Idieresis" horiz-adv-x="291" d="M104 700H187V0H104V700ZM254 794Q254 815 269 828T308 841Q331 841 345 828T360 794Q360 774 346 761T308 748Q284 748 269 761T254 794ZM446 794Q446 815 460 828T498 841Q522 841 537 +828T552 794Q552 774 537 761T498 748Q475 748 461 761T446 794Z" /> +<glyph unicode="Ð" glyph-name="Eth" horiz-adv-x="658" d="M-1 392H89V700Q108 703 131 704T180 706T230 707T276 708Q360 708 421 682T523 610T582 498T602 355Q602 284 584 219T525 103T421 22T266 -9Q250 -9 225 -9T172 -7T122 -4T89 -1V332H-1V392ZM278 +634Q265 634 250 634T219 633T192 631T172 629V392H319V332H172V69Q177 68 191 68T220 67T249 66T268 65Q338 65 385 89T461 153T502 246T514 355Q514 404 503 453T465 543T393 608T278 634Z" /> +<glyph unicode="Ñ" glyph-name="Ntilde" horiz-adv-x="673" d="M211 458L157 559H153L163 458V0H85V711H129L464 244L516 148H521L510 244V700H588V-11H544L211 458ZM179 785Q210 817 236 828T287 840Q306 840 324 835T358 824T391 812T422 807Q448 807 472 +828L497 785Q470 760 446 751T401 741Q382 741 365 746T332 757T299 769T267 774Q251 774 236 768T203 744L179 785Z" /> +<glyph unicode="Ò" glyph-name="Ograve" horiz-adv-x="684" d="M56 350Q56 525 130 618T341 712Q415 712 469 686T558 613T611 499T628 350Q628 175 554 82T341 -12Q268 -12 215 14T126 87T73 201T56 350ZM144 350Q144 292 155 240T191 149T252 86T341 62Q434 +62 487 132T540 350Q540 407 529 459T493 551T431 614T341 638Q249 638 197 568T144 350ZM410 752H336L178 849V870H292L410 752Z" /> +<glyph unicode="Ó" glyph-name="Oacute" horiz-adv-x="684" d="M56 350Q56 525 130 618T341 712Q415 712 469 686T558 613T611 499T628 350Q628 175 554 82T341 -12Q268 -12 215 14T126 87T73 201T56 350ZM144 350Q144 292 155 240T191 149T252 86T341 62Q434 +62 487 132T540 350Q540 407 529 459T493 551T431 614T341 638Q249 638 197 568T144 350ZM415 870H529V849L366 752H297L415 870Z" /> +<glyph unicode="Ô" glyph-name="Ocircumflex" horiz-adv-x="684" d="M56 350Q56 525 130 618T341 712Q415 712 469 686T558 613T611 499T628 350Q628 175 554 82T341 -12Q268 -12 215 14T126 87T73 201T56 350ZM144 350Q144 292 155 240T191 149T252 86T341 +62Q434 62 487 132T540 350Q540 407 529 459T493 551T431 614T341 638Q249 638 197 568T144 350ZM312 870H372L499 768V747H418L358 796L341 831L322 797L258 747H179V769L312 870Z" /> +<glyph unicode="Õ" glyph-name="Otilde" horiz-adv-x="684" d="M56 350Q56 525 130 618T341 712Q415 712 469 686T558 613T611 499T628 350Q628 175 554 82T341 -12Q268 -12 215 14T126 87T73 201T56 350ZM144 350Q144 292 155 240T191 149T252 86T341 62Q434 +62 487 132T540 350Q540 407 529 459T493 551T431 614T341 638Q249 638 197 568T144 350ZM182 785Q213 817 239 828T290 840Q309 840 327 835T361 824T394 812T425 807Q451 807 475 828L500 785Q473 760 449 751T404 741Q385 741 368 746T335 757T302 769T270 774Q254 +774 239 768T206 744L182 785Z" /> +<glyph unicode="Ö" glyph-name="Odieresis" horiz-adv-x="684" d="M56 350Q56 525 130 618T341 712Q415 712 469 686T558 613T611 499T628 350Q628 175 554 82T341 -12Q268 -12 215 14T126 87T73 201T56 350ZM144 350Q144 292 155 240T191 149T252 86T341 +62Q434 62 487 132T540 350Q540 407 529 459T493 551T431 614T341 638Q249 638 197 568T144 350ZM190 794Q190 815 205 828T244 841Q267 841 281 828T296 794Q296 774 282 761T244 748Q220 748 205 761T190 794ZM382 794Q382 815 396 828T434 841Q458 841 473 828T488 +794Q488 774 473 761T434 748Q411 748 397 761T382 794Z" /> +<glyph unicode="×" glyph-name="multiply" horiz-adv-x="505" d="M127 517L253 390L380 517L431 464L305 338L431 211L380 159L253 287L126 159L74 210L202 339L76 464L127 517Z" /> +<glyph unicode="Ø" glyph-name="Oslash" horiz-adv-x="684" d="M122 91Q88 139 72 204T56 350Q56 525 130 618T341 712Q398 712 442 697T520 653L562 713L614 678L563 606Q596 558 612 494T628 350Q628 175 554 82T341 -12Q234 -12 166 44L127 -12L75 24L122 +91ZM144 350Q144 299 152 254T179 171L469 582Q446 608 415 623T341 638Q249 638 197 568T144 350ZM540 350Q540 398 532 443T506 525L216 114Q239 89 270 76T341 62Q434 62 487 132T540 350Z" /> +<glyph unicode="Ù" glyph-name="Ugrave" horiz-adv-x="652" d="M487 700H567V233Q567 170 551 124T504 49T430 5T335 -9Q211 -9 148 47T85 217V700H168V256Q168 203 178 167T210 108T262 75T336 65Q417 65 452 109T487 256V700ZM407 752H333L175 849V870H289L407 +752Z" /> +<glyph unicode="Ú" glyph-name="Uacute" horiz-adv-x="652" d="M487 700H567V233Q567 170 551 124T504 49T430 5T335 -9Q211 -9 148 47T85 217V700H168V256Q168 203 178 167T210 108T262 75T336 65Q417 65 452 109T487 256V700ZM390 870H504V849L341 752H272L390 +870Z" /> +<glyph unicode="Û" glyph-name="Ucircumflex" horiz-adv-x="652" d="M487 700H567V233Q567 170 551 124T504 49T430 5T335 -9Q211 -9 148 47T85 217V700H168V256Q168 203 178 167T210 108T262 75T336 65Q417 65 452 109T487 256V700ZM301 870H361L488 768V747H407L347 +796L330 831L311 797L247 747H168V769L301 870Z" /> +<glyph unicode="Ü" glyph-name="Udieresis" horiz-adv-x="652" d="M487 700H567V233Q567 170 551 124T504 49T430 5T335 -9Q211 -9 148 47T85 217V700H168V256Q168 203 178 167T210 108T262 75T336 65Q417 65 452 109T487 256V700ZM178 794Q178 815 193 828T232 +841Q255 841 269 828T284 794Q284 774 270 761T232 748Q208 748 193 761T178 794ZM370 794Q370 815 384 828T422 841Q446 841 461 828T476 794Q476 774 461 761T422 748Q399 748 385 761T370 794Z" /> +<glyph unicode="Ý" glyph-name="Yacute" horiz-adv-x="558" d="M239 278L8 700H105L269 394L286 333H287L305 396L462 700H551L322 279V0H239V278ZM355 870H469V849L306 752H237L355 870Z" /> +<glyph unicode="Þ" glyph-name="Thorn" horiz-adv-x="559" d="M85 700H168V625Q210 628 254 628Q300 628 347 619T434 586T497 520T522 413Q522 349 499 305T438 234T351 194T250 181Q245 181 234 181T210 181T185 183T168 185V0H85V700ZM256 556Q230 556 +206 555T168 550V260Q173 258 184 258T207 256T230 255T246 255Q280 255 313 261T374 285T417 334T434 413Q434 454 419 481T378 525T320 549T256 556Z" /> +<glyph unicode="ß" glyph-name="germandbls" horiz-adv-x="592" d="M384 559Q384 576 375 590T350 615T317 630T282 636Q254 636 235 629T203 606T186 564T180 498V0H100V430H22V500H100V523Q100 620 147 663T279 706Q320 706 354 696T412 666T450 620T464 +560Q464 522 445 499T404 458T362 423T343 381Q343 359 358 346T396 323T445 303T494 275T532 231T547 159Q547 127 535 97T501 42T444 3T367 -12Q344 -12 327 -11T295 -6T267 3T241 16L264 81Q276 75 285 70T304 62T328 58T360 56Q381 56 400 63T435 84T458 115T467 +156Q467 186 452 203T414 233T365 254T316 278T278 315T263 376Q263 415 282 438T323 480T365 516T384 559Z" /> +<glyph unicode="à" glyph-name="agrave" horiz-adv-x="496" d="M69 463Q107 486 157 497T263 508Q315 508 346 494T394 458T416 408T422 354Q422 294 419 237T416 129Q416 92 419 59T430 -2H371L350 68H345Q336 54 323 41T290 17T246 -1T189 -8Q157 -8 130 +2T82 30T51 75T39 134Q39 178 57 207T107 254T185 279T286 287Q300 287 313 287T341 285Q344 315 344 339Q344 394 322 416T242 438Q225 438 206 436T166 429T127 418T94 403L69 463ZM211 62Q239 62 261 69T299 88T325 114T341 141V224Q327 225 313 225T284 226Q253 +226 224 223T172 210T136 184T122 142Q122 107 147 85T211 62ZM305 571H260L145 699V720H240L305 571Z" /> +<glyph unicode="á" glyph-name="aacute" horiz-adv-x="496" d="M69 463Q107 486 157 497T263 508Q315 508 346 494T394 458T416 408T422 354Q422 294 419 237T416 129Q416 92 419 59T430 -2H371L350 68H345Q336 54 323 41T290 17T246 -1T189 -8Q157 -8 130 +2T82 30T51 75T39 134Q39 178 57 207T107 254T185 279T286 287Q300 287 313 287T341 285Q344 315 344 339Q344 394 322 416T242 438Q225 438 206 436T166 429T127 418T94 403L69 463ZM211 62Q239 62 261 69T299 88T325 114T341 141V224Q327 225 313 225T284 226Q253 +226 224 223T172 210T136 184T122 142Q122 107 147 85T211 62ZM238 720H327V699L226 571H179L238 720Z" /> +<glyph unicode="â" glyph-name="acircumflex" horiz-adv-x="496" d="M69 463Q107 486 157 497T263 508Q315 508 346 494T394 458T416 408T422 354Q422 294 419 237T416 129Q416 92 419 59T430 -2H371L350 68H345Q336 54 323 41T290 17T246 -1T189 -8Q157 +-8 130 2T82 30T51 75T39 134Q39 178 57 207T107 254T185 279T286 287Q300 287 313 287T341 285Q344 315 344 339Q344 394 322 416T242 438Q225 438 206 436T166 429T127 418T94 403L69 463ZM211 62Q239 62 261 69T299 88T325 114T341 141V224Q327 225 313 225T284 +226Q253 226 224 223T172 210T136 184T122 142Q122 107 147 85T211 62ZM239 732H271L382 550H310L271 616L250 674L228 616L183 550H116L239 732Z" /> +<glyph unicode="ã" glyph-name="atilde" horiz-adv-x="496" d="M69 463Q107 486 157 497T263 508Q315 508 346 494T394 458T416 408T422 354Q422 294 419 237T416 129Q416 92 419 59T430 -2H371L350 68H345Q336 54 323 41T290 17T246 -1T189 -8Q157 -8 130 +2T82 30T51 75T39 134Q39 178 57 207T107 254T185 279T286 287Q300 287 313 287T341 285Q344 315 344 339Q344 394 322 416T242 438Q225 438 206 436T166 429T127 418T94 403L69 463ZM211 62Q239 62 261 69T299 88T325 114T341 141V224Q327 225 313 225T284 226Q253 +226 224 223T172 210T136 184T122 142Q122 107 147 85T211 62ZM109 656Q138 689 162 701T206 714Q223 714 237 708T265 694T291 680T318 674Q340 674 364 698L388 655Q362 626 341 616T301 605Q285 605 271 611T244 624T217 638T189 645Q176 645 163 638T132 614L109 +656Z" /> +<glyph unicode="ä" glyph-name="adieresis" horiz-adv-x="496" d="M69 463Q107 486 157 497T263 508Q315 508 346 494T394 458T416 408T422 354Q422 294 419 237T416 129Q416 92 419 59T430 -2H371L350 68H345Q336 54 323 41T290 17T246 -1T189 -8Q157 -8 +130 2T82 30T51 75T39 134Q39 178 57 207T107 254T185 279T286 287Q300 287 313 287T341 285Q344 315 344 339Q344 394 322 416T242 438Q225 438 206 436T166 429T127 418T94 403L69 463ZM211 62Q239 62 261 69T299 88T325 114T341 141V224Q327 225 313 225T284 +226Q253 226 224 223T172 210T136 184T122 142Q122 107 147 85T211 62ZM105 653Q105 676 118 690T154 704Q176 704 189 690T203 653Q203 632 190 618T154 604Q132 604 119 618T105 653ZM297 653Q297 676 310 690T346 704Q369 704 382 690T396 653Q396 632 383 618T346 +604Q324 604 311 618T297 653Z" /> +<glyph unicode="å" glyph-name="aring" horiz-adv-x="496" d="M69 463Q107 486 157 497T263 508Q315 508 346 494T394 458T416 408T422 354Q422 294 419 237T416 129Q416 92 419 59T430 -2H371L350 68H345Q336 54 323 41T290 17T246 -1T189 -8Q157 -8 130 +2T82 30T51 75T39 134Q39 178 57 207T107 254T185 279T286 287Q300 287 313 287T341 285Q344 315 344 339Q344 394 322 416T242 438Q225 438 206 436T166 429T127 418T94 403L69 463ZM211 62Q239 62 261 69T299 88T325 114T341 141V224Q327 225 313 225T284 226Q253 +226 224 223T172 210T136 184T122 142Q122 107 147 85T211 62ZM152 643Q152 685 178 709T249 734Q291 734 319 712T347 643Q347 604 319 579T249 553Q207 553 180 576T152 643ZM206 643Q206 623 219 612T249 601Q268 601 280 611T293 643Q293 665 280 675T249 686Q232 +686 219 676T206 643Z" /> +<glyph unicode="æ" glyph-name="ae" horiz-adv-x="796" d="M211 62Q239 62 261 69T299 88T325 114T341 141V224Q327 225 313 225T284 226Q253 226 224 223T172 210T136 184T122 142Q122 107 147 85T211 62ZM367 84Q354 66 337 50T299 21T250 0T189 -8Q157 +-8 130 2T82 30T51 75T39 134Q39 178 57 207T107 254T185 279T286 287Q300 287 313 287T341 285Q342 300 343 313T344 339Q344 394 322 416T242 438Q225 438 206 436T166 429T127 418T94 403L69 463Q107 486 157 497T263 508Q368 508 399 443Q425 479 469 495T557 +512Q591 512 625 505T686 476T730 415T747 313Q747 297 746 280T742 242H419Q419 155 455 107T580 58Q615 58 648 70T700 98L730 40Q700 16 655 2T558 -12Q497 -12 448 13T374 84H367ZM558 442Q499 442 463 411T421 305H669V317Q669 385 639 413T558 442Z" /> +<glyph unicode="ç" glyph-name="ccedilla" horiz-adv-x="451" d="M418 33Q369 -2 297 -10L279 -43Q321 -51 339 -69T358 -118Q358 -157 326 -182T236 -208Q225 -208 214 -207T191 -204L200 -165Q206 -166 211 -166T221 -166Q243 -166 255 -162T274 -153T282 +-140T284 -127Q284 -99 198 -90L240 -11Q188 -8 152 12T93 66T60 146T49 250Q49 377 105 444T266 512Q314 512 347 505T408 483L385 414Q362 427 334 434T274 442Q132 442 132 250Q132 212 139 178T164 117T210 75T281 59Q317 59 345 69T392 94L418 33Z" /> +<glyph unicode="è" glyph-name="egrave" horiz-adv-x="508" d="M442 40Q412 16 367 2T270 -12Q213 -12 171 6T102 59T62 142T49 250Q49 378 106 445T269 512Q303 512 337 505T398 476T442 417T459 315Q459 282 453 242H132Q132 198 141 164T169 107T218 71T293 +58Q327 58 361 70T412 98L442 40ZM270 442Q211 442 176 411T133 305H381Q381 381 352 411T270 442ZM330 571H285L170 699V720H265L330 571Z" /> +<glyph unicode="é" glyph-name="eacute" horiz-adv-x="508" d="M442 40Q412 16 367 2T270 -12Q213 -12 171 6T102 59T62 142T49 250Q49 378 106 445T269 512Q303 512 337 505T398 476T442 417T459 315Q459 282 453 242H132Q132 198 141 164T169 107T218 71T293 +58Q327 58 361 70T412 98L442 40ZM270 442Q211 442 176 411T133 305H381Q381 381 352 411T270 442ZM291 720H380V699L279 571H232L291 720Z" /> +<glyph unicode="ê" glyph-name="ecircumflex" horiz-adv-x="508" d="M442 40Q412 16 367 2T270 -12Q213 -12 171 6T102 59T62 142T49 250Q49 378 106 445T269 512Q303 512 337 505T398 476T442 417T459 315Q459 282 453 242H132Q132 198 141 164T169 107T218 +71T293 58Q327 58 361 70T412 98L442 40ZM270 442Q211 442 176 411T133 305H381Q381 381 352 411T270 442ZM245 732H277L388 550H316L277 616L256 674L234 616L189 550H122L245 732Z" /> +<glyph unicode="ë" glyph-name="edieresis" horiz-adv-x="508" d="M442 40Q412 16 367 2T270 -12Q213 -12 171 6T102 59T62 142T49 250Q49 378 106 445T269 512Q303 512 337 505T398 476T442 417T459 315Q459 282 453 242H132Q132 198 141 164T169 107T218 +71T293 58Q327 58 361 70T412 98L442 40ZM270 442Q211 442 176 411T133 305H381Q381 381 352 411T270 442ZM119 653Q119 676 132 690T168 704Q190 704 203 690T217 653Q217 632 204 618T168 604Q146 604 133 618T119 653ZM311 653Q311 676 324 690T360 704Q383 +704 396 690T410 653Q410 632 397 618T360 604Q338 604 325 618T311 653Z" /> +<glyph unicode="ì" glyph-name="igrave" horiz-adv-x="268" d="M94 500H174V0H94V500ZM428 571H383L268 699V720H363L428 571Z" /> +<glyph unicode="í" glyph-name="iacute" horiz-adv-x="268" d="M94 500H174V0H94V500ZM154 720H243V699L142 571H95L154 720Z" /> +<glyph unicode="î" glyph-name="icircumflex" horiz-adv-x="268" d="M94 500H174V0H94V500ZM377 732H409L520 550H448L409 616L388 674L366 616L321 550H254L377 732Z" /> +<glyph unicode="ï" glyph-name="idieresis" horiz-adv-x="268" d="M94 500H174V0H94V500ZM244 653Q244 676 257 690T293 704Q315 704 328 690T342 653Q342 632 329 618T293 604Q271 604 258 618T244 653ZM436 653Q436 676 449 690T485 704Q508 704 521 690T535 +653Q535 632 522 618T485 604Q463 604 450 618T436 653Z" /> +<glyph unicode="ð" glyph-name="eth" horiz-adv-x="561" d="M220 596L277 627Q239 650 201 659L236 713Q254 706 282 694T340 661L408 698L434 653L384 626Q408 603 430 573T469 502T496 410T506 295Q506 214 488 156T440 61T369 6T282 -12Q221 -12 178 9T108 +66T69 149T56 251Q56 303 70 350T113 432T183 489T280 510Q325 510 359 496T407 464Q396 501 374 534T323 593L247 552L220 596ZM139 250Q139 152 180 105T286 58Q316 58 341 71T385 112T415 184T426 290Q426 300 426 312T425 337T423 361T419 381Q411 395 397 +406T365 424T327 436T288 440Q249 440 221 425T174 385T148 325T139 250Z" /> +<glyph unicode="ñ" glyph-name="ntilde" horiz-adv-x="547" d="M398 0V285Q398 363 376 402T293 442Q240 442 206 414T157 342V0H77V500H133L148 439H152Q176 471 216 491T313 512Q354 512 385 503T436 469T467 405T478 302V0H398ZM134 656Q163 689 187 701T231 +714Q248 714 262 708T290 694T316 680T343 674Q365 674 389 698L413 655Q387 626 366 616T326 605Q310 605 296 611T269 624T242 638T214 645Q201 645 188 638T157 614L134 656Z" /> +<glyph unicode="ò" glyph-name="ograve" horiz-adv-x="536" d="M49 250Q49 377 105 444T268 512Q324 512 365 494T434 441T474 358T487 250Q487 123 431 56T268 -12Q212 -12 171 6T102 59T62 142T49 250ZM132 250Q132 212 139 177T163 116T205 74T268 58Q404 +57 404 250Q404 289 397 324T373 385T331 426T268 442Q132 443 132 250ZM317 571H272L157 699V720H252L317 571Z" /> +<glyph unicode="ó" glyph-name="oacute" horiz-adv-x="536" d="M49 250Q49 377 105 444T268 512Q324 512 365 494T434 441T474 358T487 250Q487 123 431 56T268 -12Q212 -12 171 6T102 59T62 142T49 250ZM132 250Q132 212 139 177T163 116T205 74T268 58Q404 +57 404 250Q404 289 397 324T373 385T331 426T268 442Q132 443 132 250ZM286 720H375V699L274 571H227L286 720Z" /> +<glyph unicode="ô" glyph-name="ocircumflex" horiz-adv-x="536" d="M49 250Q49 377 105 444T268 512Q324 512 365 494T434 441T474 358T487 250Q487 123 431 56T268 -12Q212 -12 171 6T102 59T62 142T49 250ZM132 250Q132 212 139 177T163 116T205 74T268 +58Q404 57 404 250Q404 289 397 324T373 385T331 426T268 442Q132 443 132 250ZM258 732H290L401 550H329L290 616L269 674L247 616L202 550H135L258 732Z" /> +<glyph unicode="õ" glyph-name="otilde" horiz-adv-x="536" d="M49 250Q49 377 105 444T268 512Q324 512 365 494T434 441T474 358T487 250Q487 123 431 56T268 -12Q212 -12 171 6T102 59T62 142T49 250ZM132 250Q132 212 139 177T163 116T205 74T268 58Q404 +57 404 250Q404 289 397 324T373 385T331 426T268 442Q132 443 132 250ZM129 656Q158 689 182 701T226 714Q243 714 257 708T285 694T311 680T338 674Q360 674 384 698L408 655Q382 626 361 616T321 605Q305 605 291 611T264 624T237 638T209 645Q196 645 183 638T152 +614L129 656Z" /> +<glyph unicode="ö" glyph-name="odieresis" horiz-adv-x="536" d="M49 250Q49 377 105 444T268 512Q324 512 365 494T434 441T474 358T487 250Q487 123 431 56T268 -12Q212 -12 171 6T102 59T62 142T49 250ZM132 250Q132 212 139 177T163 116T205 74T268 +58Q404 57 404 250Q404 289 397 324T373 385T331 426T268 442Q132 443 132 250ZM124 653Q124 676 137 690T173 704Q195 704 208 690T222 653Q222 632 209 618T173 604Q151 604 138 618T124 653ZM316 653Q316 676 329 690T365 704Q388 704 401 690T415 653Q415 632 +402 618T365 604Q343 604 330 618T316 653Z" /> +<glyph unicode="÷" glyph-name="divide" horiz-adv-x="505" d="M40 374H464V302H40V374ZM194 525Q194 552 209 567T251 583Q278 583 294 568T310 525Q310 499 294 483T251 467Q225 467 210 483T194 525ZM194 150Q194 177 209 192T251 208Q278 208 294 193T310 +150Q310 124 294 108T251 92Q225 92 210 108T194 150Z" /> +<glyph unicode="ø" glyph-name="oslash" horiz-adv-x="536" d="M49 250Q49 377 105 444T268 512Q341 512 390 480L416 515L466 478L437 436Q463 402 475 355T487 250Q487 123 431 56T268 -12Q190 -12 140 23L113 -14L61 24L94 70Q71 104 60 149T49 250ZM404 +250Q404 282 399 311T383 365L184 88Q200 75 220 67T268 58Q404 57 404 250ZM132 250Q132 220 136 192T150 141L347 415Q332 427 313 434T268 442Q132 443 132 250Z" /> +<glyph unicode="ù" glyph-name="ugrave" horiz-adv-x="539" d="M149 500V215Q149 176 153 147T169 98T199 68T247 58Q274 58 295 66T332 90T361 124T382 166V500H462V142Q462 106 464 68T473 0H418L398 79H393Q370 40 331 14T232 -12Q192 -12 162 -3T111 +31T80 95T69 198V500H149ZM308 571H263L148 699V720H243L308 571Z" /> +<glyph unicode="ú" glyph-name="uacute" horiz-adv-x="539" d="M149 500V215Q149 176 153 147T169 98T199 68T247 58Q274 58 295 66T332 90T361 124T382 166V500H462V142Q462 106 464 68T473 0H418L398 79H393Q370 40 331 14T232 -12Q192 -12 162 -3T111 +31T80 95T69 198V500H149ZM285 720H374V699L273 571H226L285 720Z" /> +<glyph unicode="û" glyph-name="ucircumflex" horiz-adv-x="539" d="M149 500V215Q149 176 153 147T169 98T199 68T247 58Q274 58 295 66T332 90T361 124T382 166V500H462V142Q462 106 464 68T473 0H418L398 79H393Q370 40 331 14T232 -12Q192 -12 162 -3T111 +31T80 95T69 198V500H149ZM260 732H292L403 550H331L292 616L271 674L249 616L204 550H137L260 732Z" /> +<glyph unicode="ü" glyph-name="udieresis" horiz-adv-x="539" d="M149 500V215Q149 176 153 147T169 98T199 68T247 58Q274 58 295 66T332 90T361 124T382 166V500H462V142Q462 106 464 68T473 0H418L398 79H393Q370 40 331 14T232 -12Q192 -12 162 -3T111 +31T80 95T69 198V500H149ZM125 653Q125 676 138 690T174 704Q196 704 209 690T223 653Q223 632 210 618T174 604Q152 604 139 618T125 653ZM317 653Q317 676 330 690T366 704Q389 704 402 690T416 653Q416 632 403 618T366 604Q344 604 331 618T317 653Z" /> +<glyph unicode="ý" glyph-name="yacute" horiz-adv-x="466" d="M224 176L252 80H257L279 177L376 500H457L309 51Q292 2 276 -44T239 -126T194 -183T136 -205Q100 -205 77 -195L91 -126Q104 -131 116 -131Q144 -131 170 -102T213 0L12 500H104L224 176ZM277 +720H366V699L265 571H218L277 720Z" /> +<glyph unicode="þ" glyph-name="thorn" horiz-adv-x="541" d="M77 700H157V450H161Q181 479 214 495T294 512Q394 512 443 453T492 260Q492 197 476 147T429 61T357 7T262 -12Q225 -12 204 -8T157 8V-200H77V700ZM279 442Q181 443 157 335V86Q175 72 198 +65T259 58Q328 58 368 109T409 261Q409 302 402 335T380 392T340 429T279 442Z" /> +<glyph unicode="ÿ" glyph-name="ydieresis" horiz-adv-x="466" d="M224 176L252 80H257L279 177L376 500H457L309 51Q292 2 276 -44T239 -126T194 -183T136 -205Q100 -205 77 -195L91 -126Q104 -131 116 -131Q144 -131 170 -102T213 0L12 500H104L224 176ZM89 +653Q89 676 102 690T138 704Q160 704 173 690T187 653Q187 632 174 618T138 604Q116 604 103 618T89 653ZM281 653Q281 676 294 690T330 704Q353 704 366 690T380 653Q380 632 367 618T330 604Q308 604 295 618T281 653Z" /> +<glyph unicode="–" glyph-name="endash" horiz-adv-x="660" d="M118 325H542V251H118V325Z" /> +<glyph unicode="—" glyph-name="emdash" horiz-adv-x="820" d="M118 325H702V251H118V325Z" /> +<glyph unicode="‘" glyph-name="quoteleft" horiz-adv-x="194" d="M155 620Q155 597 140 584T102 570Q75 570 58 588T40 641Q40 674 49 697T72 737T100 764T126 778L151 743Q129 732 116 714T102 667Q106 668 113 668Q133 668 144 654T155 620Z" /> +<glyph unicode="’" glyph-name="quoteright" horiz-adv-x="194" d="M40 659Q40 682 54 695T92 708Q120 708 137 691T155 638Q155 605 146 581T123 541T94 514T68 500L43 534Q66 546 79 564T92 611Q88 610 81 610Q62 610 51 623T40 659Z" /> +<glyph unicode="‚" glyph-name="quotesinglbase" horiz-adv-x="194" d="M40 50Q40 73 54 86T92 99Q120 99 137 82T155 29Q155 -4 146 -28T123 -68T94 -95T68 -109L43 -75Q66 -63 79 -45T92 2Q88 1 81 1Q62 1 51 14T40 50Z" /> +<glyph unicode="“" glyph-name="quotedblleft" horiz-adv-x="340" d="M301 620Q301 597 286 584T248 570Q221 570 204 588T186 641Q186 674 195 697T218 737T246 764T272 778L297 743Q275 732 262 714T248 667Q252 668 259 668Q279 668 290 654T301 620ZM155 +620Q155 597 140 584T102 570Q75 570 58 588T40 641Q40 674 49 697T72 737T100 764T126 778L151 743Q129 732 116 714T102 667Q106 668 113 668Q133 668 144 654T155 620Z" /> +<glyph unicode="”" glyph-name="quotedblright" horiz-adv-x="340" d="M186 659Q186 682 200 695T238 708Q266 708 283 691T301 638Q301 605 292 581T269 541T240 514T214 500L189 534Q212 546 225 564T238 611Q234 610 227 610Q208 610 197 623T186 659ZM40 +659Q40 682 54 695T92 708Q120 708 137 691T155 638Q155 605 146 581T123 541T94 514T68 500L43 534Q66 546 79 564T92 611Q88 610 81 610Q62 610 51 623T40 659Z" /> +<glyph unicode="„" glyph-name="quotedblbase" horiz-adv-x="340" d="M186 50Q186 73 200 86T238 99Q266 99 283 82T301 29Q301 -4 292 -28T269 -68T240 -95T214 -109L189 -75Q212 -63 225 -45T238 2Q234 1 227 1Q208 1 197 14T186 50ZM40 50Q40 73 54 +86T92 99Q120 99 137 82T155 29Q155 -4 146 -28T123 -68T94 -95T68 -109L43 -75Q66 -63 79 -45T92 2Q88 1 81 1Q62 1 51 14T40 50Z" /> +<glyph unicode="•" glyph-name="bullet" horiz-adv-x="452" d="M87 311Q87 342 98 367T127 411T171 440T226 450Q255 450 280 441T324 413T354 370T365 311Q365 278 354 253T325 209T281 182T226 172Q197 172 172 181T128 209T98 252T87 311Z" /> +<glyph unicode="‹" glyph-name="guilsinglleft" horiz-adv-x="297" d="M39 259L199 489L252 446L155 301L107 260L155 224L258 82L205 38L39 259Z" /> +<glyph unicode="›" glyph-name="guilsinglright" horiz-adv-x="297" d="M258 268L98 38L45 81L142 226L190 267L142 303L39 445L92 489L258 268Z" /> +<hkern g1="space" g2="quotedbl" k="68" /> +<hkern g1="space" g2="quotesingle" k="68" /> +<hkern g1="space" g2="comma" k="13" /> +<hkern g1="space" g2="hyphen" k="80" /> +<hkern g1="space" g2="period" k="13" /> +<hkern g1="space" g2="A" k="32" /> +<hkern g1="space" g2="T" k="31" /> +<hkern g1="space" g2="V" k="30" /> +<hkern g1="space" g2="W" k="19" /> +<hkern g1="space" g2="X" k="30" /> +<hkern g1="space" g2="Y" k="30" /> +<hkern g1="space" g2="Z" k="22" /> +<hkern g1="space" g2="v" k="14" /> +<hkern g1="space" g2="y" k="14" /> +<hkern g1="space" g2="z" k="30" /> +<hkern g1="space" g2="uni00AD" k="80" /> +<hkern g1="space" g2="Agrave" k="32" /> +<hkern g1="space" g2="Aacute" k="32" /> +<hkern g1="space" g2="Acircumflex" k="32" /> +<hkern g1="space" g2="Atilde" k="32" /> +<hkern g1="space" g2="Adieresis" k="32" /> +<hkern g1="space" g2="Aring" k="32" /> +<hkern g1="space" g2="AE" k="40" /> +<hkern g1="space" g2="Yacute" k="30" /> +<hkern g1="space" g2="yacute" k="14" /> +<hkern g1="space" g2="ydieresis" k="14" /> +<hkern g1="space" g2="endash" k="80" /> +<hkern g1="space" g2="emdash" k="80" /> +<hkern g1="space" g2="quoteleft" k="68" /> +<hkern g1="space" g2="quoteright" k="68" /> +<hkern g1="space" g2="quotesinglbase" k="68" /> +<hkern g1="space" g2="quotedblleft" k="68" /> +<hkern g1="space" g2="quotedblright" k="68" /> +<hkern g1="space" g2="quotedblbase" k="68" /> +<hkern g1="quotedbl" g2="space" k="82" /> +<hkern g1="quotedbl" g2="comma" k="122" /> +<hkern g1="quotedbl" g2="hyphen" k="151" /> +<hkern g1="quotedbl" g2="period" k="122" /> +<hkern g1="quotedbl" g2="A" k="122" /> +<hkern g1="quotedbl" g2="C" k="40" /> +<hkern g1="quotedbl" g2="G" k="40" /> +<hkern g1="quotedbl" g2="O" k="40" /> +<hkern g1="quotedbl" g2="Q" k="40" /> +<hkern g1="quotedbl" g2="V" k="-40" /> +<hkern g1="quotedbl" g2="W" k="-40" /> +<hkern g1="quotedbl" g2="Y" k="-36" /> +<hkern g1="quotedbl" g2="a" k="62" /> +<hkern g1="quotedbl" g2="c" k="101" /> +<hkern g1="quotedbl" g2="e" k="101" /> +<hkern g1="quotedbl" g2="g" k="101" /> +<hkern g1="quotedbl" g2="m" k="62" /> +<hkern g1="quotedbl" g2="n" k="62" /> +<hkern g1="quotedbl" g2="o" k="101" /> +<hkern g1="quotedbl" g2="p" k="62" /> +<hkern g1="quotedbl" g2="q" k="101" /> +<hkern g1="quotedbl" g2="r" k="62" /> +<hkern g1="quotedbl" g2="s" k="62" /> +<hkern g1="quotedbl" g2="u" k="62" /> +<hkern g1="quotedbl" g2="v" k="-30" /> +<hkern g1="quotedbl" g2="y" k="-30" /> +<hkern g1="quotedbl" g2="uni00A0" k="82" /> +<hkern g1="quotedbl" g2="uni00AD" k="151" /> +<hkern g1="quotedbl" g2="Agrave" k="122" /> +<hkern g1="quotedbl" g2="Aacute" k="122" /> +<hkern g1="quotedbl" g2="Acircumflex" k="122" /> +<hkern g1="quotedbl" g2="Atilde" k="122" /> +<hkern g1="quotedbl" g2="Adieresis" k="122" /> +<hkern g1="quotedbl" g2="Aring" k="122" /> +<hkern g1="quotedbl" g2="AE" k="200" /> +<hkern g1="quotedbl" g2="Ccedilla" k="40" /> +<hkern g1="quotedbl" g2="Ograve" k="40" /> +<hkern g1="quotedbl" g2="Oacute" k="40" /> +<hkern g1="quotedbl" g2="Ocircumflex" k="40" /> +<hkern g1="quotedbl" g2="Otilde" k="40" /> +<hkern g1="quotedbl" g2="Odieresis" k="40" /> +<hkern g1="quotedbl" g2="Oslash" k="40" /> +<hkern g1="quotedbl" g2="Yacute" k="-36" /> +<hkern g1="quotedbl" g2="ae" k="62" /> +<hkern g1="quotedbl" g2="ccedilla" k="101" /> +<hkern g1="quotedbl" g2="egrave" k="101" /> +<hkern g1="quotedbl" g2="eacute" k="101" /> +<hkern g1="quotedbl" g2="ecircumflex" k="101" /> +<hkern g1="quotedbl" g2="edieresis" k="101" /> +<hkern g1="quotedbl" g2="eth" k="101" /> +<hkern g1="quotedbl" g2="ograve" k="101" /> +<hkern g1="quotedbl" g2="oacute" k="101" /> +<hkern g1="quotedbl" g2="ocircumflex" k="101" /> +<hkern g1="quotedbl" g2="otilde" k="101" /> +<hkern g1="quotedbl" g2="odieresis" k="101" /> +<hkern g1="quotedbl" g2="oslash" k="101" /> +<hkern g1="quotedbl" g2="yacute" k="-30" /> +<hkern g1="quotedbl" g2="ydieresis" k="-30" /> +<hkern g1="quotedbl" g2="OE" k="40" /> +<hkern g1="quotedbl" g2="oe" k="101" /> +<hkern g1="quotedbl" g2="endash" k="151" /> +<hkern g1="quotedbl" g2="emdash" k="151" /> +<hkern g1="quotesingle" g2="space" k="82" /> +<hkern g1="quotesingle" g2="comma" k="122" /> +<hkern g1="quotesingle" g2="hyphen" k="151" /> +<hkern g1="quotesingle" g2="period" k="122" /> +<hkern g1="quotesingle" g2="A" k="122" /> +<hkern g1="quotesingle" g2="C" k="40" /> +<hkern g1="quotesingle" g2="G" k="40" /> +<hkern g1="quotesingle" g2="O" k="40" /> +<hkern g1="quotesingle" g2="Q" k="40" /> +<hkern g1="quotesingle" g2="V" k="-40" /> +<hkern g1="quotesingle" g2="W" k="-40" /> +<hkern g1="quotesingle" g2="Y" k="-36" /> +<hkern g1="quotesingle" g2="a" k="62" /> +<hkern g1="quotesingle" g2="c" k="101" /> +<hkern g1="quotesingle" g2="e" k="101" /> +<hkern g1="quotesingle" g2="g" k="101" /> +<hkern g1="quotesingle" g2="m" k="62" /> +<hkern g1="quotesingle" g2="n" k="62" /> +<hkern g1="quotesingle" g2="o" k="101" /> +<hkern g1="quotesingle" g2="p" k="62" /> +<hkern g1="quotesingle" g2="q" k="101" /> +<hkern g1="quotesingle" g2="r" k="62" /> +<hkern g1="quotesingle" g2="s" k="62" /> +<hkern g1="quotesingle" g2="u" k="62" /> +<hkern g1="quotesingle" g2="v" k="-30" /> +<hkern g1="quotesingle" g2="y" k="-30" /> +<hkern g1="quotesingle" g2="uni00A0" k="82" /> +<hkern g1="quotesingle" g2="uni00AD" k="151" /> +<hkern g1="quotesingle" g2="Agrave" k="122" /> +<hkern g1="quotesingle" g2="Aacute" k="122" /> +<hkern g1="quotesingle" g2="Acircumflex" k="122" /> +<hkern g1="quotesingle" g2="Atilde" k="122" /> +<hkern g1="quotesingle" g2="Adieresis" k="122" /> +<hkern g1="quotesingle" g2="Aring" k="122" /> +<hkern g1="quotesingle" g2="AE" k="200" /> +<hkern g1="quotesingle" g2="Ccedilla" k="40" /> +<hkern g1="quotesingle" g2="Ograve" k="40" /> +<hkern g1="quotesingle" g2="Oacute" k="40" /> +<hkern g1="quotesingle" g2="Ocircumflex" k="40" /> +<hkern g1="quotesingle" g2="Otilde" k="40" /> +<hkern g1="quotesingle" g2="Odieresis" k="40" /> +<hkern g1="quotesingle" g2="Oslash" k="40" /> +<hkern g1="quotesingle" g2="Yacute" k="-36" /> +<hkern g1="quotesingle" g2="ae" k="62" /> +<hkern g1="quotesingle" g2="ccedilla" k="101" /> +<hkern g1="quotesingle" g2="egrave" k="101" /> +<hkern g1="quotesingle" g2="eacute" k="101" /> +<hkern g1="quotesingle" g2="ecircumflex" k="101" /> +<hkern g1="quotesingle" g2="edieresis" k="101" /> +<hkern g1="quotesingle" g2="eth" k="101" /> +<hkern g1="quotesingle" g2="ograve" k="101" /> +<hkern g1="quotesingle" g2="oacute" k="101" /> +<hkern g1="quotesingle" g2="ocircumflex" k="101" /> +<hkern g1="quotesingle" g2="otilde" k="101" /> +<hkern g1="quotesingle" g2="odieresis" k="101" /> +<hkern g1="quotesingle" g2="oslash" k="101" /> +<hkern g1="quotesingle" g2="yacute" k="-30" /> +<hkern g1="quotesingle" g2="ydieresis" k="-30" /> +<hkern g1="quotesingle" g2="OE" k="40" /> +<hkern g1="quotesingle" g2="oe" k="101" /> +<hkern g1="quotesingle" g2="endash" k="151" /> +<hkern g1="quotesingle" g2="emdash" k="151" /> +<hkern g1="parenleft" g2="hyphen" k="36" /> +<hkern g1="parenleft" g2="V" k="-10" /> +<hkern g1="parenleft" g2="c" k="6" /> +<hkern g1="parenleft" g2="e" k="6" /> +<hkern g1="parenleft" g2="g" k="6" /> +<hkern g1="parenleft" g2="o" k="6" /> +<hkern g1="parenleft" g2="q" k="6" /> +<hkern g1="parenleft" g2="uni00AD" k="36" /> +<hkern g1="parenleft" g2="ccedilla" k="6" /> +<hkern g1="parenleft" g2="egrave" k="6" /> +<hkern g1="parenleft" g2="eacute" k="6" /> +<hkern g1="parenleft" g2="ecircumflex" k="6" /> +<hkern g1="parenleft" g2="edieresis" k="6" /> +<hkern g1="parenleft" g2="eth" k="6" /> +<hkern g1="parenleft" g2="ograve" k="6" /> +<hkern g1="parenleft" g2="oacute" k="6" /> +<hkern g1="parenleft" g2="ocircumflex" k="6" /> +<hkern g1="parenleft" g2="otilde" k="6" /> +<hkern g1="parenleft" g2="odieresis" k="6" /> +<hkern g1="parenleft" g2="oslash" k="6" /> +<hkern g1="parenleft" g2="oe" k="6" /> +<hkern g1="parenleft" g2="endash" k="36" /> +<hkern g1="parenleft" g2="emdash" k="36" /> +<hkern g1="asterisk" g2="space" k="60" /> +<hkern g1="asterisk" g2="comma" k="40" /> +<hkern g1="asterisk" g2="hyphen" k="158" /> +<hkern g1="asterisk" g2="period" k="40" /> +<hkern g1="asterisk" g2="A" k="10" /> +<hkern g1="asterisk" g2="V" k="-12" /> +<hkern g1="asterisk" g2="W" k="-12" /> +<hkern g1="asterisk" g2="c" k="14" /> +<hkern g1="asterisk" g2="e" k="14" /> +<hkern g1="asterisk" g2="g" k="14" /> +<hkern g1="asterisk" g2="o" k="14" /> +<hkern g1="asterisk" g2="q" k="14" /> +<hkern g1="asterisk" g2="v" k="-14" /> +<hkern g1="asterisk" g2="y" k="-14" /> +<hkern g1="asterisk" g2="uni00A0" k="60" /> +<hkern g1="asterisk" g2="uni00AD" k="158" /> +<hkern g1="asterisk" g2="Agrave" k="10" /> +<hkern g1="asterisk" g2="Aacute" k="10" /> +<hkern g1="asterisk" g2="Acircumflex" k="10" /> +<hkern g1="asterisk" g2="Atilde" k="10" /> +<hkern g1="asterisk" g2="Adieresis" k="10" /> +<hkern g1="asterisk" g2="Aring" k="10" /> +<hkern g1="asterisk" g2="AE" k="59" /> +<hkern g1="asterisk" g2="ccedilla" k="14" /> +<hkern g1="asterisk" g2="egrave" k="14" /> +<hkern g1="asterisk" g2="eacute" k="14" /> +<hkern g1="asterisk" g2="ecircumflex" k="14" /> +<hkern g1="asterisk" g2="edieresis" k="14" /> +<hkern g1="asterisk" g2="eth" k="14" /> +<hkern g1="asterisk" g2="ograve" k="14" /> +<hkern g1="asterisk" g2="oacute" k="14" /> +<hkern g1="asterisk" g2="ocircumflex" k="14" /> +<hkern g1="asterisk" g2="otilde" k="14" /> +<hkern g1="asterisk" g2="odieresis" k="14" /> +<hkern g1="asterisk" g2="oslash" k="14" /> +<hkern g1="asterisk" g2="yacute" k="-14" /> +<hkern g1="asterisk" g2="ydieresis" k="-14" /> +<hkern g1="asterisk" g2="oe" k="14" /> +<hkern g1="asterisk" g2="endash" k="158" /> +<hkern g1="asterisk" g2="emdash" k="158" /> +<hkern g1="asterisk" g2="quotesinglbase" k="82" /> +<hkern g1="asterisk" g2="quotedblbase" k="82" /> +<hkern g1="comma" g2="space" k="78" /> +<hkern g1="comma" g2="quotedbl" k="80" /> +<hkern g1="comma" g2="quotesingle" k="80" /> +<hkern g1="comma" g2="asterisk" k="40" /> +<hkern g1="comma" g2="comma" k="-65" /> +<hkern g1="comma" g2="hyphen" k="126" /> +<hkern g1="comma" g2="period" k="-65" /> +<hkern g1="comma" g2="T" k="30" /> +<hkern g1="comma" g2="V" k="58" /> +<hkern g1="comma" g2="W" k="29" /> +<hkern g1="comma" g2="Y" k="13" /> +<hkern g1="comma" g2="v" k="24" /> +<hkern g1="comma" g2="w" k="22" /> +<hkern g1="comma" g2="x" k="-20" /> +<hkern g1="comma" g2="y" k="24" /> +<hkern g1="comma" g2="uni00A0" k="78" /> +<hkern g1="comma" g2="uni00AD" k="126" /> +<hkern g1="comma" g2="registered" k="16" /> +<hkern g1="comma" g2="AE" k="-40" /> +<hkern g1="comma" g2="Yacute" k="13" /> +<hkern g1="comma" g2="yacute" k="24" /> +<hkern g1="comma" g2="ydieresis" k="24" /> +<hkern g1="comma" g2="endash" k="126" /> +<hkern g1="comma" g2="emdash" k="126" /> +<hkern g1="comma" g2="quoteleft" k="80" /> +<hkern g1="comma" g2="quoteright" k="80" /> +<hkern g1="comma" g2="quotedblleft" k="80" /> +<hkern g1="comma" g2="quotedblright" k="80" /> +<hkern g1="hyphen" g2="space" k="80" /> +<hkern g1="hyphen" g2="quotedbl" k="122" /> +<hkern g1="hyphen" g2="quotesingle" k="122" /> +<hkern g1="hyphen" g2="parenright" k="36" /> +<hkern g1="hyphen" g2="asterisk" k="111" /> +<hkern g1="hyphen" g2="comma" k="126" /> +<hkern g1="hyphen" g2="period" k="126" /> +<hkern g1="hyphen" g2="T" k="84" /> +<hkern g1="hyphen" g2="V" k="29" /> +<hkern g1="hyphen" g2="X" k="80" /> +<hkern g1="hyphen" g2="Y" k="13" /> +<hkern g1="hyphen" g2="Z" k="10" /> +<hkern g1="hyphen" g2="bracketright" k="36" /> +<hkern g1="hyphen" g2="braceright" k="36" /> +<hkern g1="hyphen" g2="uni00A0" k="80" /> +<hkern g1="hyphen" g2="AE" k="44" /> +<hkern g1="hyphen" g2="Yacute" k="13" /> +<hkern g1="hyphen" g2="quoteleft" k="122" /> +<hkern g1="hyphen" g2="quoteright" k="122" /> +<hkern g1="hyphen" g2="quotesinglbase" k="87" /> +<hkern g1="hyphen" g2="quotedblleft" k="122" /> +<hkern g1="hyphen" g2="quotedblright" k="122" /> +<hkern g1="hyphen" g2="quotedblbase" k="87" /> +<hkern g1="period" g2="space" k="78" /> +<hkern g1="period" g2="quotedbl" k="80" /> +<hkern g1="period" g2="quotesingle" k="80" /> +<hkern g1="period" g2="asterisk" k="40" /> +<hkern g1="period" g2="comma" k="-65" /> +<hkern g1="period" g2="hyphen" k="126" /> +<hkern g1="period" g2="period" k="-65" /> +<hkern g1="period" g2="T" k="30" /> +<hkern g1="period" g2="V" k="58" /> +<hkern g1="period" g2="W" k="29" /> +<hkern g1="period" g2="Y" k="13" /> +<hkern g1="period" g2="v" k="24" /> +<hkern g1="period" g2="w" k="22" /> +<hkern g1="period" g2="x" k="-20" /> +<hkern g1="period" g2="y" k="24" /> +<hkern g1="period" g2="uni00A0" k="78" /> +<hkern g1="period" g2="uni00AD" k="126" /> +<hkern g1="period" g2="registered" k="16" /> +<hkern g1="period" g2="AE" k="-40" /> +<hkern g1="period" g2="Yacute" k="13" /> +<hkern g1="period" g2="yacute" k="24" /> +<hkern g1="period" g2="ydieresis" k="24" /> +<hkern g1="period" g2="endash" k="126" /> +<hkern g1="period" g2="emdash" k="126" /> +<hkern g1="period" g2="quoteleft" k="80" /> +<hkern g1="period" g2="quoteright" k="80" /> +<hkern g1="period" g2="quotedblleft" k="80" /> +<hkern g1="period" g2="quotedblright" k="80" /> +<hkern g1="seven" g2="space" k="54" /> +<hkern g1="seven" g2="comma" k="110" /> +<hkern g1="seven" g2="hyphen" k="64" /> +<hkern g1="seven" g2="period" k="110" /> +<hkern g1="seven" g2="A" k="58" /> +<hkern g1="seven" g2="C" k="15" /> +<hkern g1="seven" g2="G" k="15" /> +<hkern g1="seven" g2="O" k="15" /> +<hkern g1="seven" g2="Q" k="15" /> +<hkern g1="seven" g2="a" k="45" /> +<hkern g1="seven" g2="c" k="75" /> +<hkern g1="seven" g2="e" k="75" /> +<hkern g1="seven" g2="g" k="75" /> +<hkern g1="seven" g2="m" k="45" /> +<hkern g1="seven" g2="n" k="45" /> +<hkern g1="seven" g2="o" k="75" /> +<hkern g1="seven" g2="p" k="45" /> +<hkern g1="seven" g2="q" k="75" /> +<hkern g1="seven" g2="r" k="45" /> +<hkern g1="seven" g2="s" k="45" /> +<hkern g1="seven" g2="t" k="24" /> +<hkern g1="seven" g2="u" k="45" /> +<hkern g1="seven" g2="uni00A0" k="54" /> +<hkern g1="seven" g2="uni00AD" k="64" /> +<hkern g1="seven" g2="Agrave" k="58" /> +<hkern g1="seven" g2="Aacute" k="58" /> +<hkern g1="seven" g2="Acircumflex" k="58" /> +<hkern g1="seven" g2="Atilde" k="58" /> +<hkern g1="seven" g2="Adieresis" k="58" /> +<hkern g1="seven" g2="Aring" k="58" /> +<hkern g1="seven" g2="AE" k="58" /> +<hkern g1="seven" g2="Ccedilla" k="15" /> +<hkern g1="seven" g2="Ograve" k="15" /> +<hkern g1="seven" g2="Oacute" k="15" /> +<hkern g1="seven" g2="Ocircumflex" k="15" /> +<hkern g1="seven" g2="Otilde" k="15" /> +<hkern g1="seven" g2="Odieresis" k="15" /> +<hkern g1="seven" g2="Oslash" k="15" /> +<hkern g1="seven" g2="agrave" k="24" /> +<hkern g1="seven" g2="aacute" k="24" /> +<hkern g1="seven" g2="acircumflex" k="24" /> +<hkern g1="seven" g2="atilde" k="24" /> +<hkern g1="seven" g2="adieresis" k="24" /> +<hkern g1="seven" g2="aring" k="24" /> +<hkern g1="seven" g2="ae" k="45" /> +<hkern g1="seven" g2="ccedilla" k="75" /> +<hkern g1="seven" g2="egrave" k="75" /> +<hkern g1="seven" g2="eacute" k="75" /> +<hkern g1="seven" g2="ecircumflex" k="75" /> +<hkern g1="seven" g2="edieresis" k="75" /> +<hkern g1="seven" g2="igrave" k="24" /> +<hkern g1="seven" g2="iacute" k="24" /> +<hkern g1="seven" g2="icircumflex" k="24" /> +<hkern g1="seven" g2="idieresis" k="24" /> +<hkern g1="seven" g2="eth" k="75" /> +<hkern g1="seven" g2="ntilde" k="24" /> +<hkern g1="seven" g2="ograve" k="75" /> +<hkern g1="seven" g2="oacute" k="75" /> +<hkern g1="seven" g2="ocircumflex" k="75" /> +<hkern g1="seven" g2="otilde" k="75" /> +<hkern g1="seven" g2="odieresis" k="75" /> +<hkern g1="seven" g2="oslash" k="75" /> +<hkern g1="seven" g2="ugrave" k="24" /> +<hkern g1="seven" g2="uacute" k="24" /> +<hkern g1="seven" g2="ucircumflex" k="24" /> +<hkern g1="seven" g2="udieresis" k="24" /> +<hkern g1="seven" g2="OE" k="15" /> +<hkern g1="seven" g2="oe" k="75" /> +<hkern g1="seven" g2="endash" k="64" /> +<hkern g1="seven" g2="emdash" k="64" /> +<hkern g1="seven" g2="quotesinglbase" k="95" /> +<hkern g1="seven" g2="quotedblbase" k="95" /> +<hkern g1="colon" g2="slash" k="-20" /> +<hkern g1="A" g2="space" k="41" /> +<hkern g1="A" g2="quotedbl" k="89" /> +<hkern g1="A" g2="quotesingle" k="89" /> +<hkern g1="A" g2="asterisk" k="10" /> +<hkern g1="A" g2="comma" k="-27" /> +<hkern g1="A" g2="hyphen" k="40" /> +<hkern g1="A" g2="period" k="-27" /> +<hkern g1="A" g2="C" k="25" /> +<hkern g1="A" g2="G" k="25" /> +<hkern g1="A" g2="O" k="25" /> +<hkern g1="A" g2="Q" k="25" /> +<hkern g1="A" g2="T" k="67" /> +<hkern g1="A" g2="V" k="45" /> +<hkern g1="A" g2="W" k="28" /> +<hkern g1="A" g2="X" k="30" /> +<hkern g1="A" g2="Y" k="68" /> +<hkern g1="A" g2="Z" k="14" /> +<hkern g1="A" g2="c" k="13" /> +<hkern g1="A" g2="e" k="13" /> +<hkern g1="A" g2="g" k="13" /> +<hkern g1="A" g2="o" k="13" /> +<hkern g1="A" g2="q" k="13" /> +<hkern g1="A" g2="t" k="15" /> +<hkern g1="A" g2="v" k="35" /> +<hkern g1="A" g2="w" k="22" /> +<hkern g1="A" g2="x" k="32" /> +<hkern g1="A" g2="y" k="35" /> +<hkern g1="A" g2="z" k="22" /> +<hkern g1="A" g2="uni00A0" k="41" /> +<hkern g1="A" g2="uni00AD" k="40" /> +<hkern g1="A" g2="registered" k="72" /> +<hkern g1="A" g2="AE" k="11" /> +<hkern g1="A" g2="Ccedilla" k="25" /> +<hkern g1="A" g2="Ograve" k="25" /> +<hkern g1="A" g2="Oacute" k="25" /> +<hkern g1="A" g2="Ocircumflex" k="25" /> +<hkern g1="A" g2="Otilde" k="25" /> +<hkern g1="A" g2="Odieresis" k="25" /> +<hkern g1="A" g2="Oslash" k="25" /> +<hkern g1="A" g2="Yacute" k="68" /> +<hkern g1="A" g2="ccedilla" k="13" /> +<hkern g1="A" g2="egrave" k="13" /> +<hkern g1="A" g2="eacute" k="13" /> +<hkern g1="A" g2="ecircumflex" k="13" /> +<hkern g1="A" g2="edieresis" k="13" /> +<hkern g1="A" g2="eth" k="13" /> +<hkern g1="A" g2="ograve" k="13" /> +<hkern g1="A" g2="oacute" k="13" /> +<hkern g1="A" g2="ocircumflex" k="13" /> +<hkern g1="A" g2="otilde" k="13" /> +<hkern g1="A" g2="odieresis" k="13" /> +<hkern g1="A" g2="oslash" k="13" /> +<hkern g1="A" g2="yacute" k="35" /> +<hkern g1="A" g2="ydieresis" k="35" /> +<hkern g1="A" g2="OE" k="25" /> +<hkern g1="A" g2="oe" k="13" /> +<hkern g1="A" g2="endash" k="40" /> +<hkern g1="A" g2="emdash" k="40" /> +<hkern g1="A" g2="quoteleft" k="89" /> +<hkern g1="A" g2="quoteright" k="89" /> +<hkern g1="A" g2="quotesinglbase" k="-24" /> +<hkern g1="A" g2="quotedblleft" k="89" /> +<hkern g1="A" g2="quotedblright" k="89" /> +<hkern g1="A" g2="quotedblbase" k="-24" /> +<hkern g1="B" g2="T" k="30" /> +<hkern g1="C" g2="space" k="40" /> +<hkern g1="C" g2="hyphen" k="78" /> +<hkern g1="C" g2="A" k="28" /> +<hkern g1="C" g2="C" k="26" /> +<hkern g1="C" g2="G" k="26" /> +<hkern g1="C" g2="O" k="26" /> +<hkern g1="C" g2="Q" k="26" /> +<hkern g1="C" g2="T" k="28" /> +<hkern g1="C" g2="V" k="27" /> +<hkern g1="C" g2="W" k="6" /> +<hkern g1="C" g2="X" k="42" /> +<hkern g1="C" g2="Y" k="35" /> +<hkern g1="C" g2="Z" k="24" /> +<hkern g1="C" g2="a" k="17" /> +<hkern g1="C" g2="c" k="35" /> +<hkern g1="C" g2="e" k="35" /> +<hkern g1="C" g2="g" k="35" /> +<hkern g1="C" g2="m" k="17" /> +<hkern g1="C" g2="n" k="17" /> +<hkern g1="C" g2="o" k="35" /> +<hkern g1="C" g2="p" k="17" /> +<hkern g1="C" g2="q" k="35" /> +<hkern g1="C" g2="r" k="17" /> +<hkern g1="C" g2="s" k="17" /> +<hkern g1="C" g2="t" k="35" /> +<hkern g1="C" g2="u" k="17" /> +<hkern g1="C" g2="v" k="42" /> +<hkern g1="C" g2="w" k="40" /> +<hkern g1="C" g2="x" k="28" /> +<hkern g1="C" g2="y" k="42" /> +<hkern g1="C" g2="z" k="23" /> +<hkern g1="C" g2="uni00A0" k="40" /> +<hkern g1="C" g2="uni00AD" k="78" /> +<hkern g1="C" g2="Agrave" k="28" /> +<hkern g1="C" g2="Aacute" k="28" /> +<hkern g1="C" g2="Acircumflex" k="28" /> +<hkern g1="C" g2="Atilde" k="28" /> +<hkern g1="C" g2="Adieresis" k="28" /> +<hkern g1="C" g2="Aring" k="28" /> +<hkern g1="C" g2="AE" k="114" /> +<hkern g1="C" g2="Ccedilla" k="26" /> +<hkern g1="C" g2="Ograve" k="26" /> +<hkern g1="C" g2="Oacute" k="26" /> +<hkern g1="C" g2="Ocircumflex" k="26" /> +<hkern g1="C" g2="Otilde" k="26" /> +<hkern g1="C" g2="Odieresis" k="26" /> +<hkern g1="C" g2="Oslash" k="26" /> +<hkern g1="C" g2="Yacute" k="35" /> +<hkern g1="C" g2="ae" k="17" /> +<hkern g1="C" g2="ccedilla" k="35" /> +<hkern g1="C" g2="egrave" k="35" /> +<hkern g1="C" g2="eacute" k="35" /> +<hkern g1="C" g2="ecircumflex" k="35" /> +<hkern g1="C" g2="edieresis" k="35" /> +<hkern g1="C" g2="eth" k="35" /> +<hkern g1="C" g2="ograve" k="35" /> +<hkern g1="C" g2="oacute" k="35" /> +<hkern g1="C" g2="ocircumflex" k="35" /> +<hkern g1="C" g2="otilde" k="35" /> +<hkern g1="C" g2="odieresis" k="35" /> +<hkern g1="C" g2="oslash" k="35" /> +<hkern g1="C" g2="yacute" k="42" /> +<hkern g1="C" g2="ydieresis" k="42" /> +<hkern g1="C" g2="OE" k="26" /> +<hkern g1="C" g2="oe" k="35" /> +<hkern g1="C" g2="endash" k="78" /> +<hkern g1="C" g2="emdash" k="78" /> +<hkern g1="D" g2="quotedbl" k="40" /> +<hkern g1="D" g2="quotesingle" k="40" /> +<hkern g1="D" g2="comma" k="30" /> +<hkern g1="D" g2="period" k="30" /> +<hkern g1="D" g2="A" k="25" /> +<hkern g1="D" g2="T" k="48" /> +<hkern g1="D" g2="V" k="26" /> +<hkern g1="D" g2="W" k="20" /> +<hkern g1="D" g2="X" k="49" /> +<hkern g1="D" g2="Y" k="41" /> +<hkern g1="D" g2="Z" k="24" /> +<hkern g1="D" g2="v" k="16" /> +<hkern g1="D" g2="x" k="30" /> +<hkern g1="D" g2="y" k="16" /> +<hkern g1="D" g2="z" k="23" /> +<hkern g1="D" g2="Agrave" k="25" /> +<hkern g1="D" g2="Aacute" k="25" /> +<hkern g1="D" g2="Acircumflex" k="25" /> +<hkern g1="D" g2="Atilde" k="25" /> +<hkern g1="D" g2="Adieresis" k="25" /> +<hkern g1="D" g2="Aring" k="25" /> +<hkern g1="D" g2="AE" k="50" /> +<hkern g1="D" g2="Yacute" k="41" /> +<hkern g1="D" g2="yacute" k="16" /> +<hkern g1="D" g2="ydieresis" k="16" /> +<hkern g1="D" g2="quoteleft" k="40" /> +<hkern g1="D" g2="quoteright" k="40" /> +<hkern g1="D" g2="quotesinglbase" k="40" /> +<hkern g1="D" g2="quotedblleft" k="40" /> +<hkern g1="D" g2="quotedblright" k="40" /> +<hkern g1="D" g2="quotedblbase" k="40" /> +<hkern g1="K" g2="space" k="30" /> +<hkern g1="K" g2="hyphen" k="80" /> +<hkern g1="K" g2="A" k="30" /> +<hkern g1="K" g2="C" k="49" /> +<hkern g1="K" g2="G" k="49" /> +<hkern g1="K" g2="O" k="49" /> +<hkern g1="K" g2="Q" k="49" /> +<hkern g1="K" g2="T" k="33" /> +<hkern g1="K" g2="X" k="31" /> +<hkern g1="K" g2="Y" k="27" /> +<hkern g1="K" g2="a" k="28" /> +<hkern g1="K" g2="c" k="48" /> +<hkern g1="K" g2="e" k="48" /> +<hkern g1="K" g2="g" k="48" /> +<hkern g1="K" g2="m" k="28" /> +<hkern g1="K" g2="n" k="28" /> +<hkern g1="K" g2="o" k="48" /> +<hkern g1="K" g2="p" k="28" /> +<hkern g1="K" g2="q" k="48" /> +<hkern g1="K" g2="r" k="28" /> +<hkern g1="K" g2="s" k="28" /> +<hkern g1="K" g2="t" k="38" /> +<hkern g1="K" g2="u" k="28" /> +<hkern g1="K" g2="v" k="54" /> +<hkern g1="K" g2="w" k="54" /> +<hkern g1="K" g2="x" k="38" /> +<hkern g1="K" g2="y" k="54" /> +<hkern g1="K" g2="z" k="32" /> +<hkern g1="K" g2="uni00A0" k="30" /> +<hkern g1="K" g2="uni00AD" k="80" /> +<hkern g1="K" g2="Agrave" k="30" /> +<hkern g1="K" g2="Aacute" k="30" /> +<hkern g1="K" g2="Acircumflex" k="30" /> +<hkern g1="K" g2="Atilde" k="30" /> +<hkern g1="K" g2="Adieresis" k="30" /> +<hkern g1="K" g2="Aring" k="30" /> +<hkern g1="K" g2="AE" k="101" /> +<hkern g1="K" g2="Ccedilla" k="49" /> +<hkern g1="K" g2="Ograve" k="49" /> +<hkern g1="K" g2="Oacute" k="49" /> +<hkern g1="K" g2="Ocircumflex" k="49" /> +<hkern g1="K" g2="Otilde" k="49" /> +<hkern g1="K" g2="Odieresis" k="49" /> +<hkern g1="K" g2="Oslash" k="49" /> +<hkern g1="K" g2="Yacute" k="27" /> +<hkern g1="K" g2="ae" k="28" /> +<hkern g1="K" g2="ccedilla" k="48" /> +<hkern g1="K" g2="egrave" k="48" /> +<hkern g1="K" g2="eacute" k="48" /> +<hkern g1="K" g2="ecircumflex" k="48" /> +<hkern g1="K" g2="edieresis" k="48" /> +<hkern g1="K" g2="eth" k="48" /> +<hkern g1="K" g2="ograve" k="48" /> +<hkern g1="K" g2="oacute" k="48" /> +<hkern g1="K" g2="ocircumflex" k="48" /> +<hkern g1="K" g2="otilde" k="48" /> +<hkern g1="K" g2="odieresis" k="48" /> +<hkern g1="K" g2="oslash" k="48" /> +<hkern g1="K" g2="yacute" k="54" /> +<hkern g1="K" g2="ydieresis" k="54" /> +<hkern g1="K" g2="OE" k="49" /> +<hkern g1="K" g2="oe" k="48" /> +<hkern g1="K" g2="endash" k="80" /> +<hkern g1="K" g2="emdash" k="80" /> +<hkern g1="L" g2="space" k="42" /> +<hkern g1="L" g2="quotedbl" k="124" /> +<hkern g1="L" g2="quotesingle" k="124" /> +<hkern g1="L" g2="asterisk" k="161" /> +<hkern g1="L" g2="hyphen" k="78" /> +<hkern g1="L" g2="A" k="-6" /> +<hkern g1="L" g2="C" k="66" /> +<hkern g1="L" g2="G" k="66" /> +<hkern g1="L" g2="O" k="66" /> +<hkern g1="L" g2="Q" k="66" /> +<hkern g1="L" g2="T" k="122" /> +<hkern g1="L" g2="V" k="104" /> +<hkern g1="L" g2="W" k="73" /> +<hkern g1="L" g2="X" k="104" /> +<hkern g1="L" g2="Y" k="105" /> +<hkern g1="L" g2="Z" k="30" /> +<hkern g1="L" g2="a" k="20" /> +<hkern g1="L" g2="c" k="59" /> +<hkern g1="L" g2="e" k="59" /> +<hkern g1="L" g2="g" k="59" /> +<hkern g1="L" g2="m" k="20" /> +<hkern g1="L" g2="n" k="20" /> +<hkern g1="L" g2="o" k="59" /> +<hkern g1="L" g2="p" k="20" /> +<hkern g1="L" g2="q" k="59" /> +<hkern g1="L" g2="r" k="20" /> +<hkern g1="L" g2="s" k="20" /> +<hkern g1="L" g2="t" k="46" /> +<hkern g1="L" g2="u" k="20" /> +<hkern g1="L" g2="v" k="98" /> +<hkern g1="L" g2="w" k="70" /> +<hkern g1="L" g2="x" k="42" /> +<hkern g1="L" g2="y" k="98" /> +<hkern g1="L" g2="z" k="32" /> +<hkern g1="L" g2="uni00A0" k="42" /> +<hkern g1="L" g2="uni00AD" k="78" /> +<hkern g1="L" g2="registered" k="148" /> +<hkern g1="L" g2="Agrave" k="-6" /> +<hkern g1="L" g2="Aacute" k="-6" /> +<hkern g1="L" g2="Acircumflex" k="-6" /> +<hkern g1="L" g2="Atilde" k="-6" /> +<hkern g1="L" g2="Adieresis" k="-6" /> +<hkern g1="L" g2="Aring" k="-6" /> +<hkern g1="L" g2="AE" k="79" /> +<hkern g1="L" g2="Ccedilla" k="66" /> +<hkern g1="L" g2="Ograve" k="66" /> +<hkern g1="L" g2="Oacute" k="66" /> +<hkern g1="L" g2="Ocircumflex" k="66" /> +<hkern g1="L" g2="Otilde" k="66" /> +<hkern g1="L" g2="Odieresis" k="66" /> +<hkern g1="L" g2="Oslash" k="66" /> +<hkern g1="L" g2="Yacute" k="105" /> +<hkern g1="L" g2="ae" k="20" /> +<hkern g1="L" g2="ccedilla" k="59" /> +<hkern g1="L" g2="egrave" k="59" /> +<hkern g1="L" g2="eacute" k="59" /> +<hkern g1="L" g2="ecircumflex" k="59" /> +<hkern g1="L" g2="edieresis" k="59" /> +<hkern g1="L" g2="eth" k="59" /> +<hkern g1="L" g2="ograve" k="59" /> +<hkern g1="L" g2="oacute" k="59" /> +<hkern g1="L" g2="ocircumflex" k="59" /> +<hkern g1="L" g2="otilde" k="59" /> +<hkern g1="L" g2="odieresis" k="59" /> +<hkern g1="L" g2="oslash" k="59" /> +<hkern g1="L" g2="yacute" k="98" /> +<hkern g1="L" g2="ydieresis" k="98" /> +<hkern g1="L" g2="OE" k="66" /> +<hkern g1="L" g2="oe" k="59" /> +<hkern g1="L" g2="endash" k="78" /> +<hkern g1="L" g2="emdash" k="78" /> +<hkern g1="L" g2="quoteleft" k="124" /> +<hkern g1="L" g2="quoteright" k="124" /> +<hkern g1="L" g2="quotesinglbase" k="-24" /> +<hkern g1="L" g2="quotedblleft" k="124" /> +<hkern g1="L" g2="quotedblright" k="124" /> +<hkern g1="L" g2="quotedblbase" k="-24" /> +<hkern g1="O" g2="quotedbl" k="40" /> +<hkern g1="O" g2="quotesingle" k="40" /> +<hkern g1="O" g2="comma" k="30" /> +<hkern g1="O" g2="period" k="30" /> +<hkern g1="O" g2="A" k="25" /> +<hkern g1="O" g2="T" k="48" /> +<hkern g1="O" g2="V" k="26" /> +<hkern g1="O" g2="W" k="20" /> +<hkern g1="O" g2="X" k="49" /> +<hkern g1="O" g2="Y" k="41" /> +<hkern g1="O" g2="Z" k="24" /> +<hkern g1="O" g2="v" k="16" /> +<hkern g1="O" g2="x" k="30" /> +<hkern g1="O" g2="y" k="16" /> +<hkern g1="O" g2="z" k="23" /> +<hkern g1="O" g2="Agrave" k="25" /> +<hkern g1="O" g2="Aacute" k="25" /> +<hkern g1="O" g2="Acircumflex" k="25" /> +<hkern g1="O" g2="Atilde" k="25" /> +<hkern g1="O" g2="Adieresis" k="25" /> +<hkern g1="O" g2="Aring" k="25" /> +<hkern g1="O" g2="AE" k="50" /> +<hkern g1="O" g2="Yacute" k="41" /> +<hkern g1="O" g2="yacute" k="16" /> +<hkern g1="O" g2="ydieresis" k="16" /> +<hkern g1="O" g2="quoteleft" k="40" /> +<hkern g1="O" g2="quoteright" k="40" /> +<hkern g1="O" g2="quotesinglbase" k="40" /> +<hkern g1="O" g2="quotedblleft" k="40" /> +<hkern g1="O" g2="quotedblright" k="40" /> +<hkern g1="O" g2="quotedblbase" k="40" /> +<hkern g1="P" g2="space" k="40" /> +<hkern g1="P" g2="comma" k="130" /> +<hkern g1="P" g2="period" k="130" /> +<hkern g1="P" g2="A" k="63" /> +<hkern g1="P" g2="C" k="17" /> +<hkern g1="P" g2="G" k="17" /> +<hkern g1="P" g2="O" k="17" /> +<hkern g1="P" g2="Q" k="17" /> +<hkern g1="P" g2="T" k="16" /> +<hkern g1="P" g2="X" k="42" /> +<hkern g1="P" g2="Y" k="25" /> +<hkern g1="P" g2="Z" k="28" /> +<hkern g1="P" g2="a" k="35" /> +<hkern g1="P" g2="c" k="36" /> +<hkern g1="P" g2="e" k="36" /> +<hkern g1="P" g2="g" k="36" /> +<hkern g1="P" g2="m" k="35" /> +<hkern g1="P" g2="n" k="35" /> +<hkern g1="P" g2="o" k="36" /> +<hkern g1="P" g2="p" k="35" /> +<hkern g1="P" g2="q" k="36" /> +<hkern g1="P" g2="r" k="35" /> +<hkern g1="P" g2="s" k="35" /> +<hkern g1="P" g2="u" k="35" /> +<hkern g1="P" g2="x" k="36" /> +<hkern g1="P" g2="z" k="27" /> +<hkern g1="P" g2="uni00A0" k="40" /> +<hkern g1="P" g2="Agrave" k="63" /> +<hkern g1="P" g2="Aacute" k="63" /> +<hkern g1="P" g2="Acircumflex" k="63" /> +<hkern g1="P" g2="Atilde" k="63" /> +<hkern g1="P" g2="Adieresis" k="63" /> +<hkern g1="P" g2="Aring" k="63" /> +<hkern g1="P" g2="AE" k="110" /> +<hkern g1="P" g2="Ccedilla" k="17" /> +<hkern g1="P" g2="Ograve" k="17" /> +<hkern g1="P" g2="Oacute" k="17" /> +<hkern g1="P" g2="Ocircumflex" k="17" /> +<hkern g1="P" g2="Otilde" k="17" /> +<hkern g1="P" g2="Odieresis" k="17" /> +<hkern g1="P" g2="Oslash" k="17" /> +<hkern g1="P" g2="Yacute" k="25" /> +<hkern g1="P" g2="agrave" k="35" /> +<hkern g1="P" g2="aacute" k="35" /> +<hkern g1="P" g2="acircumflex" k="35" /> +<hkern g1="P" g2="atilde" k="35" /> +<hkern g1="P" g2="adieresis" k="35" /> +<hkern g1="P" g2="aring" k="35" /> +<hkern g1="P" g2="ae" k="35" /> +<hkern g1="P" g2="ccedilla" k="36" /> +<hkern g1="P" g2="egrave" k="36" /> +<hkern g1="P" g2="eacute" k="36" /> +<hkern g1="P" g2="ecircumflex" k="36" /> +<hkern g1="P" g2="edieresis" k="36" /> +<hkern g1="P" g2="igrave" k="35" /> +<hkern g1="P" g2="iacute" k="35" /> +<hkern g1="P" g2="icircumflex" k="35" /> +<hkern g1="P" g2="idieresis" k="35" /> +<hkern g1="P" g2="eth" k="36" /> +<hkern g1="P" g2="ntilde" k="35" /> +<hkern g1="P" g2="ograve" k="36" /> +<hkern g1="P" g2="oacute" k="36" /> +<hkern g1="P" g2="ocircumflex" k="36" /> +<hkern g1="P" g2="otilde" k="36" /> +<hkern g1="P" g2="odieresis" k="36" /> +<hkern g1="P" g2="oslash" k="36" /> +<hkern g1="P" g2="ugrave" k="35" /> +<hkern g1="P" g2="uacute" k="35" /> +<hkern g1="P" g2="ucircumflex" k="35" /> +<hkern g1="P" g2="udieresis" k="35" /> +<hkern g1="P" g2="OE" k="17" /> +<hkern g1="P" g2="oe" k="36" /> +<hkern g1="P" g2="quotesinglbase" k="101" /> +<hkern g1="P" g2="quotedblbase" k="101" /> +<hkern g1="Q" g2="quotedbl" k="40" /> +<hkern g1="Q" g2="quotesingle" k="40" /> +<hkern g1="Q" g2="comma" k="30" /> +<hkern g1="Q" g2="period" k="30" /> +<hkern g1="Q" g2="A" k="25" /> +<hkern g1="Q" g2="T" k="48" /> +<hkern g1="Q" g2="V" k="26" /> +<hkern g1="Q" g2="W" k="20" /> +<hkern g1="Q" g2="X" k="49" /> +<hkern g1="Q" g2="Y" k="41" /> +<hkern g1="Q" g2="Z" k="24" /> +<hkern g1="Q" g2="v" k="16" /> +<hkern g1="Q" g2="x" k="30" /> +<hkern g1="Q" g2="y" k="16" /> +<hkern g1="Q" g2="z" k="23" /> +<hkern g1="Q" g2="Agrave" k="25" /> +<hkern g1="Q" g2="Aacute" k="25" /> +<hkern g1="Q" g2="Acircumflex" k="25" /> +<hkern g1="Q" g2="Atilde" k="25" /> +<hkern g1="Q" g2="Adieresis" k="25" /> +<hkern g1="Q" g2="Aring" k="25" /> +<hkern g1="Q" g2="AE" k="50" /> +<hkern g1="Q" g2="Yacute" k="41" /> +<hkern g1="Q" g2="yacute" k="16" /> +<hkern g1="Q" g2="ydieresis" k="16" /> +<hkern g1="Q" g2="quoteleft" k="40" /> +<hkern g1="Q" g2="quoteright" k="40" /> +<hkern g1="Q" g2="quotesinglbase" k="40" /> +<hkern g1="Q" g2="quotedblleft" k="40" /> +<hkern g1="Q" g2="quotedblright" k="40" /> +<hkern g1="Q" g2="quotedblbase" k="40" /> +<hkern g1="R" g2="hyphen" k="40" /> +<hkern g1="R" g2="A" k="26" /> +<hkern g1="R" g2="C" k="44" /> +<hkern g1="R" g2="G" k="44" /> +<hkern g1="R" g2="O" k="44" /> +<hkern g1="R" g2="Q" k="44" /> +<hkern g1="R" g2="T" k="61" /> +<hkern g1="R" g2="V" k="48" /> +<hkern g1="R" g2="W" k="40" /> +<hkern g1="R" g2="X" k="40" /> +<hkern g1="R" g2="Y" k="60" /> +<hkern g1="R" g2="Z" k="24" /> +<hkern g1="R" g2="a" k="10" /> +<hkern g1="R" g2="c" k="48" /> +<hkern g1="R" g2="e" k="48" /> +<hkern g1="R" g2="g" k="48" /> +<hkern g1="R" g2="m" k="10" /> +<hkern g1="R" g2="n" k="10" /> +<hkern g1="R" g2="o" k="48" /> +<hkern g1="R" g2="p" k="10" /> +<hkern g1="R" g2="q" k="48" /> +<hkern g1="R" g2="r" k="10" /> +<hkern g1="R" g2="s" k="10" /> +<hkern g1="R" g2="t" k="24" /> +<hkern g1="R" g2="u" k="10" /> +<hkern g1="R" g2="v" k="33" /> +<hkern g1="R" g2="w" k="29" /> +<hkern g1="R" g2="x" k="38" /> +<hkern g1="R" g2="y" k="33" /> +<hkern g1="R" g2="z" k="27" /> +<hkern g1="R" g2="uni00AD" k="40" /> +<hkern g1="R" g2="Agrave" k="26" /> +<hkern g1="R" g2="Aacute" k="26" /> +<hkern g1="R" g2="Acircumflex" k="26" /> +<hkern g1="R" g2="Atilde" k="26" /> +<hkern g1="R" g2="Adieresis" k="26" /> +<hkern g1="R" g2="Aring" k="26" /> +<hkern g1="R" g2="AE" k="105" /> +<hkern g1="R" g2="Ccedilla" k="44" /> +<hkern g1="R" g2="Ograve" k="44" /> +<hkern g1="R" g2="Oacute" k="44" /> +<hkern g1="R" g2="Ocircumflex" k="44" /> +<hkern g1="R" g2="Otilde" k="44" /> +<hkern g1="R" g2="Odieresis" k="44" /> +<hkern g1="R" g2="Oslash" k="44" /> +<hkern g1="R" g2="Yacute" k="60" /> +<hkern g1="R" g2="agrave" k="10" /> +<hkern g1="R" g2="aacute" k="10" /> +<hkern g1="R" g2="acircumflex" k="10" /> +<hkern g1="R" g2="atilde" k="10" /> +<hkern g1="R" g2="adieresis" k="10" /> +<hkern g1="R" g2="aring" k="10" /> +<hkern g1="R" g2="ae" k="10" /> +<hkern g1="R" g2="ccedilla" k="48" /> +<hkern g1="R" g2="egrave" k="48" /> +<hkern g1="R" g2="eacute" k="48" /> +<hkern g1="R" g2="ecircumflex" k="48" /> +<hkern g1="R" g2="edieresis" k="48" /> +<hkern g1="R" g2="igrave" k="10" /> +<hkern g1="R" g2="iacute" k="10" /> +<hkern g1="R" g2="icircumflex" k="10" /> +<hkern g1="R" g2="idieresis" k="10" /> +<hkern g1="R" g2="eth" k="48" /> +<hkern g1="R" g2="ntilde" k="10" /> +<hkern g1="R" g2="ograve" k="48" /> +<hkern g1="R" g2="oacute" k="48" /> +<hkern g1="R" g2="ocircumflex" k="48" /> +<hkern g1="R" g2="otilde" k="48" /> +<hkern g1="R" g2="odieresis" k="48" /> +<hkern g1="R" g2="oslash" k="48" /> +<hkern g1="R" g2="ugrave" k="10" /> +<hkern g1="R" g2="uacute" k="10" /> +<hkern g1="R" g2="ucircumflex" k="10" /> +<hkern g1="R" g2="udieresis" k="10" /> +<hkern g1="R" g2="yacute" k="33" /> +<hkern g1="R" g2="ydieresis" k="33" /> +<hkern g1="R" g2="OE" k="44" /> +<hkern g1="R" g2="oe" k="48" /> +<hkern g1="R" g2="endash" k="40" /> +<hkern g1="R" g2="emdash" k="40" /> +<hkern g1="T" g2="space" k="40" /> +<hkern g1="T" g2="parenright" k="-27" /> +<hkern g1="T" g2="comma" k="102" /> +<hkern g1="T" g2="hyphen" k="84" /> +<hkern g1="T" g2="period" k="102" /> +<hkern g1="T" g2="A" k="67" /> +<hkern g1="T" g2="C" k="48" /> +<hkern g1="T" g2="G" k="48" /> +<hkern g1="T" g2="O" k="48" /> +<hkern g1="T" g2="Q" k="48" /> +<hkern g1="T" g2="T" k="-20" /> +<hkern g1="T" g2="X" k="33" /> +<hkern g1="T" g2="Y" k="12" /> +<hkern g1="T" g2="Z" k="24" /> +<hkern g1="T" g2="bracketright" k="-27" /> +<hkern g1="T" g2="a" k="105" /> +<hkern g1="T" g2="c" k="128" /> +<hkern g1="T" g2="e" k="128" /> +<hkern g1="T" g2="g" k="128" /> +<hkern g1="T" g2="m" k="105" /> +<hkern g1="T" g2="n" k="105" /> +<hkern g1="T" g2="o" k="128" /> +<hkern g1="T" g2="p" k="105" /> +<hkern g1="T" g2="q" k="128" /> +<hkern g1="T" g2="r" k="105" /> +<hkern g1="T" g2="s" k="105" /> +<hkern g1="T" g2="t" k="61" /> +<hkern g1="T" g2="u" k="105" /> +<hkern g1="T" g2="v" k="128" /> +<hkern g1="T" g2="w" k="128" /> +<hkern g1="T" g2="x" k="128" /> +<hkern g1="T" g2="y" k="128" /> +<hkern g1="T" g2="z" k="128" /> +<hkern g1="T" g2="braceright" k="-27" /> +<hkern g1="T" g2="uni00A0" k="40" /> +<hkern g1="T" g2="uni00AD" k="84" /> +<hkern g1="T" g2="Agrave" k="67" /> +<hkern g1="T" g2="Aacute" k="67" /> +<hkern g1="T" g2="Acircumflex" k="67" /> +<hkern g1="T" g2="Atilde" k="67" /> +<hkern g1="T" g2="Adieresis" k="67" /> +<hkern g1="T" g2="Aring" k="67" /> +<hkern g1="T" g2="AE" k="118" /> +<hkern g1="T" g2="Ccedilla" k="48" /> +<hkern g1="T" g2="Ograve" k="48" /> +<hkern g1="T" g2="Oacute" k="48" /> +<hkern g1="T" g2="Ocircumflex" k="48" /> +<hkern g1="T" g2="Otilde" k="48" /> +<hkern g1="T" g2="Odieresis" k="48" /> +<hkern g1="T" g2="Oslash" k="48" /> +<hkern g1="T" g2="Yacute" k="12" /> +<hkern g1="T" g2="agrave" k="77" /> +<hkern g1="T" g2="aacute" k="77" /> +<hkern g1="T" g2="acircumflex" k="77" /> +<hkern g1="T" g2="atilde" k="77" /> +<hkern g1="T" g2="adieresis" k="77" /> +<hkern g1="T" g2="aring" k="77" /> +<hkern g1="T" g2="ae" k="105" /> +<hkern g1="T" g2="ccedilla" k="128" /> +<hkern g1="T" g2="egrave" k="103" /> +<hkern g1="T" g2="eacute" k="108" /> +<hkern g1="T" g2="ecircumflex" k="101" /> +<hkern g1="T" g2="edieresis" k="82" /> +<hkern g1="T" g2="igrave" k="77" /> +<hkern g1="T" g2="iacute" k="77" /> +<hkern g1="T" g2="icircumflex" k="19" /> +<hkern g1="T" g2="idieresis" k="-27" /> +<hkern g1="T" g2="eth" k="128" /> +<hkern g1="T" g2="ntilde" k="77" /> +<hkern g1="T" g2="ograve" k="104" /> +<hkern g1="T" g2="oacute" k="108" /> +<hkern g1="T" g2="ocircumflex" k="101" /> +<hkern g1="T" g2="otilde" k="100" /> +<hkern g1="T" g2="odieresis" k="99" /> +<hkern g1="T" g2="oslash" k="128" /> +<hkern g1="T" g2="ugrave" k="77" /> +<hkern g1="T" g2="uacute" k="77" /> +<hkern g1="T" g2="ucircumflex" k="77" /> +<hkern g1="T" g2="udieresis" k="77" /> +<hkern g1="T" g2="yacute" k="108" /> +<hkern g1="T" g2="ydieresis" k="59" /> +<hkern g1="T" g2="OE" k="48" /> +<hkern g1="T" g2="oe" k="128" /> +</font> +</defs> +</svg> diff --git a/web/static/fonts/PT-Sans-regular.ttf b/web/static/fonts/PT-Sans-regular.ttf Binary files differnew file mode 100644 index 000000000..d55372b83 --- /dev/null +++ b/web/static/fonts/PT-Sans-regular.ttf diff --git a/web/static/fonts/PT-Sans-regular.woff b/web/static/fonts/PT-Sans-regular.woff Binary files differnew file mode 100644 index 000000000..28d33bc5c --- /dev/null +++ b/web/static/fonts/PT-Sans-regular.woff diff --git a/web/static/fonts/PT-Sans-regular.woff2 b/web/static/fonts/PT-Sans-regular.woff2 Binary files differnew file mode 100644 index 000000000..f2ab5aed0 --- /dev/null +++ b/web/static/fonts/PT-Sans-regular.woff2 diff --git a/web/static/fonts/Roboto-Slab-regular.eot b/web/static/fonts/Roboto-Slab-regular.eot Binary files differnew file mode 100644 index 000000000..926a22baa --- /dev/null +++ b/web/static/fonts/Roboto-Slab-regular.eot diff --git a/web/static/fonts/Roboto-Slab-regular.svg b/web/static/fonts/Roboto-Slab-regular.svg new file mode 100644 index 000000000..ffbbc4596 --- /dev/null +++ b/web/static/fonts/Roboto-Slab-regular.svg @@ -0,0 +1,337 @@ +<?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"> +<defs > +<font id="RobotoSlab" horiz-adv-x="1234" ><font-face + font-family="Roboto Slab" + units-per-em="2048" + panose-1="0 0 0 0 0 0 0 0 0 0" + ascent="2146" + descent="-555" + alphabetic="0" /> +<glyph unicode=" " glyph-name="space" horiz-adv-x="509" /> +<glyph unicode="!" glyph-name="exclam" horiz-adv-x="483" d="M340 478H143V1456H340V478ZM340 0H143V204H340V0Z" /> +<glyph unicode=""" glyph-name="quotedbl" horiz-adv-x="765" d="M324 1290L263 1040H166V1560H324V1290ZM632 1290L571 1040H474V1560H632V1290Z" /> +<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="1246" d="M705 410H449L369 0H218L298 410H63V550H326L394 898H139V1040H422L504 1456H655L573 1040H828L910 1456H1061L979 1040H1179V898H952L884 550H1104V410H856L776 0H625L705 410ZM477 550H733L801 +898H545L477 550Z" /> +<glyph unicode="$" glyph-name="dollar" horiz-adv-x="1110" d="M815 376Q815 466 752 529T541 643Q339 704 236 806T133 1078Q133 1243 228 1347T489 1472V1693H647V1471Q814 1447 906 1328T999 1007H803Q803 1143 741 1227T566 1311Q448 1311 389 1250T330 1081Q330 +984 391 924T610 810Q814 744 913 646T1012 378Q1012 206 909 104T626 -17V-208H470V-17Q298 1 188 108T82 424L84 429H274Q274 275 351 210T542 144Q671 144 743 205T815 376Z" /> +<glyph unicode="%" glyph-name="percent" horiz-adv-x="1460" d="M77 1176Q77 1303 159 1390T377 1477Q515 1477 597 1391T679 1176V1099Q679 972 597 886T379 800Q242 800 160 886T77 1099V1176ZM223 1099Q223 1025 263 974T379 922Q452 922 492 973T533 1099V1176Q533 +1250 492 1302T377 1355Q303 1355 263 1303T223 1176V1099ZM782 357Q782 483 864 570T1082 657Q1219 657 1301 571T1384 357V279Q1384 151 1302 65T1084 -21Q946 -21 864 65T782 279V357ZM928 279Q928 204 968 153T1084 101Q1158 101 1198 152T1238 279V357Q1238 +431 1197 483T1082 535Q1008 535 968 483T928 357V279ZM442 110L333 177L1044 1315L1153 1248L442 110Z" /> +<glyph unicode="&" glyph-name="ampersand" horiz-adv-x="1289" d="M74 392Q74 514 144 605T355 789Q277 888 239 965T201 1125Q201 1294 298 1385T567 1477Q725 1477 824 1386T923 1167Q923 1069 871 998T715 851L606 771L946 362Q987 427 1010 506T1033 +673H1209Q1209 542 1170 430T1057 229L1242 5L1240 0H1011L926 102Q846 42 749 11T548 -21Q331 -21 203 94T74 392ZM548 133Q620 133 690 157T822 228L461 663L421 634Q330 566 301 504T271 392Q271 279 342 206T548 133ZM398 1127Q398 1074 425 1017T506 891L644 +986Q701 1024 721 1068T742 1167Q742 1228 694 1275T567 1322Q486 1322 442 1266T398 1127Z" /> +<glyph unicode="'" glyph-name="quotesingle" horiz-adv-x="460" d="M324 1337L263 1055H166V1560H324V1337Z" /> +<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="662" d="M114 591Q114 985 273 1264T607 1636L613 1635L650 1519Q513 1412 412 1176T311 593V580Q311 232 411 -3T650 -355L613 -463H607Q432 -370 273 -92T114 582V591Z" /> +<glyph unicode=")" glyph-name="parenright" horiz-adv-x="654" d="M547 582Q547 187 388 -91T54 -463H48L11 -355Q146 -250 248 -10T350 580V593Q350 936 245 1177T11 1528L48 1636H54Q228 1543 387 1264T547 591V582Z" /> +<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="958" d="M362 982L66 1071L115 1225L411 1114L401 1456H562L552 1108L845 1218L893 1062L591 973L784 703L653 607L472 894L296 615L164 708L362 982Z" /> +<glyph unicode="+" glyph-name="plus" horiz-adv-x="1145" d="M671 783H1071V605H671V146H474V605H73V783H474V1206H671V783Z" /> +<glyph unicode="," glyph-name="comma" horiz-adv-x="404" d="M315 72Q315 -26 266 -133T134 -311L23 -237Q70 -165 94 -90T118 69V221H315V72Z" /> +<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="797" d="M643 538H154V692H643V538Z" /> +<glyph unicode="." glyph-name="period" horiz-adv-x="493" d="M342 0H145V202H342V0Z" /> +<glyph unicode="/" glyph-name="slash" horiz-adv-x="824" d="M167 -125H0L608 1456H774L167 -125Z" /> +<glyph unicode="0" glyph-name="zero" horiz-adv-x="1168" d="M1048 555Q1048 276 924 128T585 -21Q371 -21 246 128T121 555V900Q121 1178 245 1327T583 1477Q798 1477 923 1328T1048 900V555ZM851 942Q851 1131 783 1226T583 1322Q454 1322 386 1227T318 942V515Q318 +326 387 230T585 133Q716 133 783 229T851 515V942Z" /> +<glyph unicode="1" glyph-name="one" horiz-adv-x="844" d="M121 126L346 154V1245L117 1241V1364L543 1456V154L767 126V0H121V126Z" /> +<glyph unicode="2" glyph-name="two" horiz-adv-x="1131" d="M97 0V135L574 665Q702 808 747 892T793 1064Q793 1173 729 1247T560 1322Q409 1322 338 1245T267 1027H78L76 1033Q71 1221 200 1349T560 1477Q757 1477 873 1363T990 1071Q990 952 920 833T721 576L338 +159L340 154H857L873 321H1040V0H97Z" /> +<glyph unicode="3" glyph-name="three" horiz-adv-x="1106" d="M363 819H535Q666 819 720 884T775 1067Q775 1192 713 1257T530 1322Q415 1322 346 1255T276 1075H87L85 1081Q80 1246 204 1361T530 1477Q732 1477 852 1370T972 1063Q972 973 918 884T754 747Q885 +704 939 612T994 406Q994 207 864 93T530 -21Q330 -21 200 86T75 378L78 384H266Q266 269 336 201T530 133Q655 133 726 201T797 402Q797 537 734 601T535 665H363V819Z" /> +<glyph unicode="4" glyph-name="four" horiz-adv-x="1187" d="M913 490H1114V336H913V154L1076 126V0H554V126L717 154V336H63V447L705 1456H913V490ZM273 490H717V1175L711 1177L691 1124L273 490Z" /> +<glyph unicode="5" glyph-name="five" horiz-adv-x="1081" d="M819 1168L800 1281H365L318 872Q363 906 419 928T550 953Q751 955 866 822T982 464Q982 245 865 112T522 -21Q337 -21 215 80T97 377L99 383H277Q277 265 345 199T522 133Q647 133 716 221T785 462Q785 +603 716 692T523 782Q407 782 355 747T278 640L114 657L198 1456H967V1168H819Z" /> +<glyph unicode="6" glyph-name="six" horiz-adv-x="1144" d="M664 1477Q738 1477 811 1460T933 1417L895 1270Q848 1293 792 1307T664 1322Q511 1322 421 1207T324 858L328 854Q384 906 465 936T640 967Q835 967 951 832T1067 490Q1067 264 944 122T614 -21Q401 +-21 261 134T121 573V769Q121 1115 273 1296T664 1477ZM597 820Q496 820 425 780T317 671V554Q317 351 401 242T614 133Q735 133 802 235T870 490Q870 634 798 727T597 820Z" /> +<glyph unicode="7" glyph-name="seven" horiz-adv-x="1128" d="M1060 1301Q796 987 704 745T570 157L554 0H357L373 157Q415 501 536 772T867 1301H259L244 1134H76V1456H1060V1301Z" /> +<glyph unicode="8" glyph-name="eight" horiz-adv-x="1131" d="M999 1076Q999 962 935 877T762 749Q888 705 963 611T1039 394Q1039 192 908 86T566 -21Q352 -21 222 85T92 394Q92 517 166 611T366 749Q257 791 195 876T133 1076Q133 1268 251 1372T564 1477Q756 +1477 877 1373T999 1076ZM843 398Q843 518 764 595T564 672Q442 672 366 596T289 398Q289 274 364 204T566 133Q689 133 766 204T843 398ZM802 1072Q802 1180 735 1251T564 1322Q459 1322 395 1254T330 1072Q330 961 395 894T566 827Q670 827 736 894T802 1072Z" +/> +<glyph unicode="9" glyph-name="nine" horiz-adv-x="1154" d="M511 133Q653 133 735 241T821 591L817 596Q777 529 705 493T543 457Q330 457 207 588T84 958Q84 1186 215 1331T535 1477Q763 1477 894 1335T1026 913V650Q1026 309 886 144T511 -21Q435 -21 356 +-7T213 38L243 187Q304 158 367 146T511 133ZM543 612Q652 612 724 659T829 779V933Q829 1126 756 1224T541 1322Q432 1322 357 1220T281 958Q281 801 351 707T543 612Z" /> +<glyph unicode=":" glyph-name="colon" horiz-adv-x="419" d="M342 0H145V202H342V0ZM342 880H145V1082H342V880Z" /> +<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="424" d="M343 880H146V1082H343V880ZM345 72Q345 -26 296 -133T164 -311L53 -237Q100 -165 124 -90T148 69V221H345V72Z" /> +<glyph unicode="<" glyph-name="less" horiz-adv-x="1017" d="M333 579L248 561V555L333 536L892 308V107L76 486V635L892 1013V812L333 579Z" /> +<glyph unicode="=" glyph-name="equal" horiz-adv-x="1127" d="M981 823H147V987H981V823ZM981 407H147V571H981V407Z" /> +<glyph unicode=">" glyph-name="greater" horiz-adv-x="1060" d="M125 798V993L980 615V466L125 87V283L723 521L807 538V544L723 564L125 798Z" /> +<glyph unicode="?" glyph-name="question" horiz-adv-x="953" d="M360 410Q361 556 384 611T510 759Q609 876 651 939T693 1091Q693 1197 637 1254T475 1311Q384 1311 321 1262T257 1116H69L66 1122Q63 1283 179 1380T475 1477Q672 1477 781 1377T890 1096Q890 +967 820 860T633 641Q580 587 569 544T557 410H360ZM563 0H358V208H563V0Z" /> +<glyph unicode="@" glyph-name="at" horiz-adv-x="1821" d="M1704 502Q1695 288 1584 134T1252 -21Q1179 -21 1126 20T1049 137Q999 57 927 18T760 -21Q635 -21 566 99T515 416Q538 675 652 831T931 988Q1036 988 1099 962T1240 882L1236 878H1242L1191 293Q1182 +183 1212 142T1294 100Q1417 100 1490 213T1572 502Q1589 884 1429 1097T933 1311Q624 1311 437 1080T235 478Q217 102 385 -116T867 -335Q955 -335 1045 -314T1197 -257L1236 -364Q1168 -406 1065 -429T863 -453Q483 -453 275 -204T86 478Q105 901 335 1166T937 +1431Q1316 1431 1518 1181T1704 502ZM691 416Q680 275 713 201T820 126Q883 126 936 151T1034 239Q1033 251 1033 264T1036 293L1083 831Q1057 843 1029 850T969 857Q844 857 778 748T691 416Z" /> +<glyph unicode="A" glyph-name="A" horiz-adv-x="1500" d="M55 126L163 141L672 1456H841L1341 141L1448 126V0H1030V126L1140 145L1044 413H461L362 145L472 126V0H55V126ZM522 578H984L758 1203H752L522 578Z" /> +<glyph unicode="B" glyph-name="B" horiz-adv-x="1345" d="M709 1456Q937 1456 1065 1358T1194 1062Q1194 965 1133 889T970 775Q1101 747 1177 646T1253 411Q1253 211 1123 106T771 0H71V126L234 154V1301L71 1329V1456H234H709ZM431 683V154H771Q906 154 980 +220T1055 409Q1055 537 993 610T801 683H431ZM431 837H760Q866 840 931 900T997 1066Q997 1184 923 1242T709 1301H431V837Z" /> +<glyph unicode="C" glyph-name="C" horiz-adv-x="1321" d="M1200 1009H1061L1024 1215Q976 1262 906 1292T739 1322Q512 1322 390 1158T268 740V717Q268 464 387 299T719 133Q818 133 899 164T1024 240L1061 446H1200V187Q1137 106 1011 43T719 -21Q435 -21 253 +189T71 717V738Q71 1058 250 1267T719 1477Q885 1477 1011 1413T1200 1268V1009Z" /> +<glyph unicode="D" glyph-name="D" horiz-adv-x="1419" d="M681 1456Q966 1456 1139 1281T1313 827V628Q1313 349 1140 175T681 0H71V126L234 154V1301L71 1329V1456H234H681ZM431 1301V154H681Q883 154 999 287T1116 628V829Q1116 1035 1000 1168T681 1301H431Z" /> +<glyph unicode="E" glyph-name="E" horiz-adv-x="1306" d="M71 0V126L234 154V1301L71 1329V1456H1189V1106H1020L1004 1301H431V830H988V675H431V154H1016L1032 349H1200V0H71Z" /> +<glyph unicode="F" glyph-name="F" horiz-adv-x="1273" d="M71 126L234 154V1301L71 1329V1456H1196V1106H1028L1012 1301H431V799H994V644H431V154L594 126V0H71V126Z" /> +<glyph unicode="G" glyph-name="G" horiz-adv-x="1387" d="M1230 165Q1166 98 1041 39T716 -21Q424 -21 240 184T55 716V740Q55 1069 237 1273T723 1477Q885 1477 1007 1427T1214 1293V1029H1076L1028 1230Q979 1270 910 1296T743 1322Q507 1322 380 1161T252 +742V716Q252 455 375 294T716 133Q835 133 911 158T1033 213V532L794 542V687H1230V165Z" /> +<glyph unicode="H" glyph-name="H" horiz-adv-x="1573" d="M71 1329V1456H594V1329L431 1301V798H1137V1301L974 1329V1456H1137H1334H1497V1329L1334 1301V154L1497 126V0H974V126L1137 154V643H431V154L594 126V0H71V126L234 154V1301L71 1329Z" /> +<glyph unicode="I" glyph-name="I" horiz-adv-x="662" d="M70 1329V1456H593V1329L430 1301V154L593 126V0H70V126L233 154V1301L70 1329Z" /> +<glyph unicode="J" glyph-name="J" horiz-adv-x="1183" d="M1124 1456V1329L961 1301V403Q961 208 838 94T517 -21Q307 -21 183 85T64 395L66 401H255Q255 266 323 200T517 133Q626 133 695 206T764 403V1301L601 1329V1456H961H1124Z" /> +<glyph unicode="K" glyph-name="K" horiz-adv-x="1452" d="M71 126L234 154V1301L71 1329V1456H594V1329L431 1301V812H582L989 1315L880 1329V1456H1342V1329L1205 1304L760 752L1246 151L1383 126V0H905V126L1016 140L601 657H431V154L594 126V0H71V126Z" /> +<glyph unicode="L" glyph-name="L" horiz-adv-x="1199" d="M71 0V126L234 154V1301L71 1329V1456H234H431H594V1329L431 1301V154H937L952 321H1120V0H71Z" /> +<glyph unicode="M" glyph-name="M" horiz-adv-x="1905" d="M1494 1166L1489 1167L1018 0H887L416 1166L411 1165L431 576V154L594 126V0H71V126L234 154V1301L71 1329V1456H234H486L950 273H956L1419 1456H1835V1329L1672 1301V154L1835 126V0H1312V126L1475 154V576L1494 +1166Z" /> +<glyph unicode="N" glyph-name="N" horiz-adv-x="1560" d="M1497 1456V1329L1334 1301V0H1137L437 1124L431 1122V154L594 126V0H71V126L234 154V1301L71 1329V1456H234H431L1131 333L1137 335V1301L974 1329V1456H1334H1497Z" /> +<glyph unicode="O" glyph-name="O" horiz-adv-x="1445" d="M1368 717Q1368 399 1186 189T713 -21Q431 -21 255 189T79 717V738Q79 1055 255 1266T713 1477Q1003 1477 1185 1266T1368 738V717ZM1171 740Q1171 994 1050 1154T713 1315Q507 1315 392 1154T276 740V717Q276 +461 391 301T713 140Q931 140 1051 300T1171 717V740Z" /> +<glyph unicode="P" glyph-name="P" horiz-adv-x="1301" d="M740 1456Q973 1456 1102 1336T1232 1020Q1232 822 1103 703T740 584H431V154L594 126V0H71V126L234 154V1301L71 1329V1456H234H740ZM431 738H740Q888 738 961 817T1035 1018Q1035 1139 962 1220T740 +1301H431V738Z" /> +<glyph unicode="Q" glyph-name="Q" horiz-adv-x="1446" d="M1368 717Q1368 523 1296 363T1095 105L1390 -103L1255 -223L924 13Q874 -3 821 -12T713 -21Q431 -21 255 189T79 717V738Q79 1055 255 1266T713 1477Q1003 1477 1185 1266T1368 738V717ZM1171 740Q1171 +994 1050 1154T713 1315Q507 1315 392 1154T276 740V717Q276 461 391 301T713 140Q931 140 1051 300T1171 717V740Z" /> +<glyph unicode="R" glyph-name="R" horiz-adv-x="1386" d="M710 1455Q948 1455 1075 1350T1202 1050Q1202 944 1143 862T974 733Q1093 694 1145 606T1198 389V272Q1198 205 1215 173T1271 135L1319 129V0H1213Q1098 0 1050 80T1001 274V387Q1001 506 932 578T747 +650H431V154L594 126V0H71V126L234 154V1301L71 1329V1455H234H710ZM431 805H690Q855 805 930 868T1005 1052Q1005 1167 933 1234T710 1301H431V805Z" /> +<glyph unicode="S" glyph-name="S" horiz-adv-x="1247" d="M1125 1026H976L939 1234Q894 1272 819 1297T645 1322Q488 1322 404 1256T320 1082Q320 987 405 924T682 812Q912 755 1031 644T1151 369Q1151 193 1008 86T632 -21Q464 -21 334 34T121 178V449H269L307 +240Q364 193 443 163T632 133Q781 133 867 196T954 367Q954 467 879 534T614 648Q383 703 253 810T123 1079Q123 1250 268 1363T645 1477Q798 1477 923 1425T1125 1297V1026Z" /> +<glyph unicode="T" glyph-name="T" horiz-adv-x="1284" d="M1247 1456V1134H1079L1064 1301H741V154L904 126V0H381V126L544 154V1301H220L206 1134H37V1456H1247Z" /> +<glyph unicode="U" glyph-name="U" horiz-adv-x="1541" d="M583 1456V1329L420 1301V469Q420 304 514 219T762 133Q924 133 1023 218T1122 469V1301L959 1329V1456H1319H1482V1329L1319 1301V469Q1319 232 1165 106T762 -21Q521 -21 372 105T223 469V1301L60 1329V1456H223H583Z" +/> +<glyph unicode="V" glyph-name="V" horiz-adv-x="1470" d="M507 1329L374 1308L700 362L733 247H739L772 362L1097 1309L966 1329V1456H1425V1329L1308 1313L820 0H651L163 1313L47 1329V1456H507V1329Z" /> +<glyph unicode="W" glyph-name="W" horiz-adv-x="1910" d="M489 1329L341 1306L528 504L555 322L561 321L600 504L868 1456H1042L1311 504L1351 317H1357L1386 504L1569 1306L1420 1329V1456H1883V1329L1766 1314L1449 0H1273L985 1010L959 1141H953L928 1010L636 +0H461L144 1314L27 1329V1456H489V1329Z" /> +<glyph unicode="X" glyph-name="X" horiz-adv-x="1404" d="M43 126L174 148L588 734L184 1307L53 1329V1456H525V1329L408 1316L699 879L993 1316L876 1329V1456H1351V1329L1220 1307L816 734L1229 148L1361 126V0H890V126L1005 139L703 587L400 139L517 126V0H43V126Z" /> +<glyph unicode="Y" glyph-name="Y" horiz-adv-x="1416" d="M555 1329L398 1310L703 716L1008 1310L852 1329V1456H1352V1329L1229 1310L797 512V154L960 126V0H438V126L601 154V527L177 1310L55 1329V1456H555V1329Z" /> +<glyph unicode="Z" glyph-name="Z" horiz-adv-x="1220" d="M313 154H944L960 321H1128V0H92V146L869 1301H285L271 1134H102V1456H1095V1315L313 154Z" /> +<glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="573" d="M541 1509H354V-157H541V-312H157V1664H541V1509Z" /> +<glyph unicode="\" glyph-name="backslash" horiz-adv-x="841" d="M36 1456H222L830 -125H644L36 1456Z" /> +<glyph unicode="]" glyph-name="bracketright" horiz-adv-x="552" d="M23 1664H408V-312H23V-157H211V1509H23V1664Z" /> +<glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="864" d="M253 729H71L370 1456H504L802 729H620L454 1148L438 1218H432L416 1148L253 729Z" /> +<glyph unicode="_" glyph-name="underscore" horiz-adv-x="1168" d="M1041 -154H119V0H1041V-154Z" /> +<glyph unicode="`" glyph-name="grave" horiz-adv-x="582" d="M492 1211H333L84 1471L87 1477H317L492 1211Z" /> +<glyph unicode="a" glyph-name="a" horiz-adv-x="1128" d="M795 0Q786 44 781 79T774 149Q717 76 632 28T449 -21Q280 -21 192 61T104 294Q104 448 228 531T570 615H773V741Q773 836 713 891T546 947Q472 947 416 928T324 876L303 762H151V972Q225 1031 330 1066T558 +1102Q742 1102 856 1008T970 739V218Q970 197 970 177T973 137L1053 126V0H795ZM478 144Q576 144 657 191T773 304V482H563Q442 482 372 426T301 290Q301 219 345 182T478 144Z" /> +<glyph unicode="b" glyph-name="b" horiz-adv-x="1186" d="M1079 500Q1079 266 967 123T657 -21Q551 -21 473 19T343 139L325 0H155V1405L-8 1433V1560H352V954Q403 1026 478 1064T655 1102Q855 1102 967 942T1079 521V500ZM881 521Q881 708 813 825T605 942Q514 +942 452 898T352 780V302Q389 227 452 183T607 139Q746 139 813 238T881 500V521Z" /> +<glyph unicode="c" glyph-name="c" horiz-adv-x="1104" d="M575 133Q673 133 747 193T822 342H999L1001 336Q1006 196 877 88T575 -21Q339 -21 215 133T90 520V562Q90 793 215 947T575 1102Q705 1102 808 1059T980 941L989 701H832L789 871Q754 905 699 926T575 +947Q420 947 354 836T287 562V520Q287 354 353 244T575 133Z" /> +<glyph unicode="d" glyph-name="d" horiz-adv-x="1229" d="M818 129Q765 55 689 17T511 -21Q313 -21 202 122T90 500V521Q90 782 201 942T513 1102Q609 1102 682 1067T808 964V1405L645 1433V1560H808H1005V154L1168 126V0H834L818 129ZM287 500Q287 337 354 238T561 +139Q649 139 709 179T808 292V794Q770 862 709 902T563 942Q422 942 355 825T287 521V500Z" /> +<glyph unicode="e" glyph-name="e" horiz-adv-x="1101" d="M583 -21Q357 -21 224 129T90 520V564Q90 795 227 948T553 1102Q771 1102 883 970T996 618V495H294L291 490Q294 334 370 234T583 133Q683 133 758 161T889 240L966 112Q908 56 813 18T583 -21ZM553 947Q454 +947 384 864T298 654L300 649H799V675Q799 791 737 869T553 947Z" /> +<glyph unicode="f" glyph-name="f" horiz-adv-x="728" d="M70 936V1082H239V1219Q239 1392 329 1486T582 1581Q616 1581 650 1576T727 1560L703 1410Q685 1414 660 1417T607 1420Q520 1420 478 1369T436 1219V1082H662V936H436V154L599 126V0H76V126L239 154V936H70Z" /> +<glyph unicode="g" glyph-name="g" horiz-adv-x="1159" d="M90 521Q90 782 204 942T519 1102Q621 1102 698 1062T827 946L845 1082H1011V14Q1011 -196 894 -316T561 -437Q483 -437 392 -416T232 -357L283 -204Q338 -233 413 -252T559 -271Q691 -271 752 -197T814 +14V117Q761 49 687 14T517 -21Q318 -21 204 123T90 500V521ZM287 500Q287 337 356 238T566 139Q655 139 715 179T814 294V792Q776 861 715 901T568 942Q427 942 357 824T287 521V500Z" /> +<glyph unicode="h" glyph-name="h" horiz-adv-x="1322" d="M62 126L225 154V1405L62 1433V1560H422V938Q478 1016 559 1059T739 1102Q913 1102 1009 998T1105 678V154L1268 126V0H745V126L908 154V680Q908 814 851 878T679 942Q598 942 532 904T422 799V154L585 +126V0H62V126Z" /> +<glyph unicode="i" glyph-name="i" horiz-adv-x="673" d="M89 126L252 154V927L89 955V1082H449V154L612 126V0H89V126ZM449 1359H252V1560H449V1359Z" /> +<glyph unicode="j" glyph-name="j" horiz-adv-x="571" d="M424 -89Q424 -256 338 -346T99 -437Q67 -437 41 -433T-13 -419L0 -264Q14 -269 41 -272T85 -276Q150 -276 188 -232T227 -89V927L64 955V1082H424V-89ZM418 1363H221V1560H418V1363Z" /> +<glyph unicode="k" glyph-name="k" horiz-adv-x="1245" d="M62 1433V1560H422V656H548L779 942L680 955V1082H1133V955L1001 929L716 589L1063 150L1186 126V0H737V126L838 139L551 499H422V154L585 126V0H62V126L225 154V1405L62 1433Z" /> +<glyph unicode="l" glyph-name="l" horiz-adv-x="645" d="M62 1433V1560H422V154L585 126V0H62V126L225 154V1405L62 1433Z" /> +<glyph unicode="m" glyph-name="m" horiz-adv-x="1935" d="M50 126L213 154V927L50 955V1082H390L403 941Q455 1018 537 1060T727 1102Q835 1102 912 1052T1029 902Q1080 994 1164 1048T1360 1102Q1526 1102 1622 989T1718 647V154L1881 126V0H1357V126L1520 154V649Q1520 +809 1465 875T1302 942Q1199 942 1137 870T1064 687V154L1227 126V0H704V126L867 154V649Q867 801 811 871T647 942Q557 942 499 905T410 801V154L573 126V0H50V126Z" /> +<glyph unicode="n" glyph-name="n" horiz-adv-x="1318" d="M60 126L223 154V927L60 955V1082H399L413 921Q467 1007 548 1054T734 1102Q909 1102 1005 1000T1101 683V154L1264 126V0H741V126L904 154V679Q904 822 848 882T675 942Q590 942 525 901T420 789V154L583 +126V0H60V126Z" /> +<glyph unicode="o" glyph-name="o" horiz-adv-x="1149" d="M90 551Q90 791 220 946T573 1102Q797 1102 927 947T1058 551V529Q1058 287 928 133T575 -21Q350 -21 220 133T90 529V551ZM287 529Q287 357 359 245T575 133Q715 133 788 245T861 529V551Q861 721 788 +834T573 947Q431 947 359 834T287 551V529Z" /> +<glyph unicode="p" glyph-name="p" horiz-adv-x="1240" d="M65 -289L228 -261V927L65 955V1082H397L415 950Q469 1024 546 1063T726 1102Q927 1102 1038 943T1150 521V500Q1150 266 1038 123T729 -21Q629 -21 554 12T425 112V-261L588 -289V-416H65V-289ZM952 +521Q952 706 880 824T666 942Q582 942 522 904T425 800V273Q462 206 521 170T668 133Q808 133 880 235T952 500V521Z" /> +<glyph unicode="q" glyph-name="q" horiz-adv-x="1155" d="M90 521Q90 782 201 942T513 1102Q608 1102 682 1067T808 963L824 1082H994V-261L1157 -289V-416H634V-289L797 -261V102Q745 41 674 10T511 -21Q313 -21 202 122T90 500V521ZM287 500Q287 336 354 235T561 +133Q643 133 700 169T797 271V814Q758 875 700 911T563 947Q422 947 355 828T287 521V500Z" /> +<glyph unicode="r" glyph-name="r" horiz-adv-x="847" d="M89 955V1082H428L447 925Q493 1008 560 1055T715 1102Q738 1102 762 1099T800 1091L774 908L662 914Q584 914 531 878T449 775V154L612 126V0H89V126L252 154V927L89 955Z" /> +<glyph unicode="s" glyph-name="s" horiz-adv-x="1044" d="M917 742H769L737 872Q701 906 647 926T523 947Q418 947 367 901T316 790Q316 726 361 689T544 623Q749 579 849 504T949 301Q949 157 833 68T528 -21Q405 -21 307 7T132 90L131 337H279L316 192Q350 +161 408 147T528 133Q633 133 692 175T752 287Q752 352 703 394T515 467Q318 510 218 584T118 784Q118 916 230 1009T523 1102Q646 1102 744 1070T907 981L917 742Z" /> +<glyph unicode="t" glyph-name="t" horiz-adv-x="750" d="M433 1343V1082H638V936H433V279Q433 203 464 172T548 141Q574 141 606 145T661 155L688 20Q660 2 606 -9T498 -21Q378 -21 307 51T236 279V936H65V1082H236V1343H433Z" /> +<glyph unicode="u" glyph-name="u" horiz-adv-x="1244" d="M863 160Q812 73 732 26T546 -21Q370 -21 271 92T172 444V927L48 955V1082H172H369V442Q369 269 420 204T579 139Q684 139 752 181T856 302V927L711 955V1082H856H1053V154L1177 126V0H876L863 160Z" /> +<glyph unicode="v" glyph-name="v" horiz-adv-x="1143" d="M460 955L330 935L553 319L571 241H577L596 319L812 935L681 955V1082H1099V955L1010 940L647 0H498L131 940L42 955V1082H460V955Z" /> +<glyph unicode="w" glyph-name="w" horiz-adv-x="1693" d="M473 955L349 933L490 394L513 263H519L547 394L763 1082H921L1138 394L1169 248H1175L1204 394L1337 933L1211 955V1082H1623V955L1529 941L1256 0H1097L887 659L842 841L836 840L794 659L588 0H429L156 +941L61 955V1082H473V955Z" /> +<glyph unicode="x" glyph-name="x" horiz-adv-x="1192" d="M62 126L178 149L497 547L188 932L72 955V1082H496V955L398 943L600 683L803 944L706 955V1082H1133V955L1017 932L708 547L1026 149L1143 126V0H719V126L815 137L603 409L391 137L488 126V0H62V126Z" /> +<glyph unicode="y" glyph-name="y" horiz-adv-x="1162" d="M1117 955L1020 940L608 -166Q567 -275 490 -356T283 -437Q260 -437 223 -432T166 -421L186 -266Q180 -265 221 -268T274 -271Q337 -271 376 -217T444 -91L491 21L134 939L35 955V1082H472V955L350 935L537 +401L573 263H579L804 935L681 955V1082H1117V955Z" /> +<glyph unicode="z" glyph-name="z" horiz-adv-x="1084" d="M346 154H788L804 321H971V0H112V138L697 926H301L286 760H118V1082H938V948L346 154Z" /> +<glyph unicode="{" glyph-name="braceleft" horiz-adv-x="701" d="M631 -364Q436 -309 354 -189T271 101V306Q271 418 220 480T63 543V690Q169 690 220 751T271 926V1132Q271 1303 353 1422T631 1597L671 1480Q561 1445 515 1355T468 1132V926Q468 821 426 741T299 +616Q384 570 426 490T468 306V101Q468 -31 514 -120T671 -246L631 -364Z" /> +<glyph unicode="|" glyph-name="bar" horiz-adv-x="451" d="M307 -270H150V1456H307V-270Z" /> +<glyph unicode="}" glyph-name="braceright" horiz-adv-x="701" d="M27 -246Q135 -210 182 -121T229 101V306Q229 413 274 493T413 616Q319 657 274 737T229 926V1132Q229 1264 182 1354T27 1480L67 1597Q261 1542 343 1423T426 1132V926Q426 813 477 752T635 +690V543Q528 543 477 481T426 306V101Q426 -69 344 -189T67 -364L27 -246Z" /> +<glyph unicode="~" glyph-name="asciitilde" horiz-adv-x="1386" d="M1257 740Q1257 603 1170 502T952 401Q863 401 790 434T631 541Q571 589 522 613T424 637Q357 637 310 584T262 456L121 474Q121 610 206 706T424 803Q512 803 587 769T747 664Q806 613 853 +590T952 567Q1018 567 1066 624T1115 758L1257 740Z" /> +<glyph unicode="¡" glyph-name="exclamdown" horiz-adv-x="481" d="M339 -374H142V604H339V-374ZM339 876H142V1082H339V876Z" /> +<glyph unicode="¢" glyph-name="cent" horiz-adv-x="1118" d="M589 133Q687 133 761 193T836 342H1014L1016 336Q1020 213 917 111T664 -15V-245H467V-8Q289 30 197 175T104 520V562Q104 759 196 904T467 1089V1318H664V1098Q768 1086 852 1046T994 941L1003 +701H846L803 871Q768 905 713 926T589 947Q434 947 368 836T301 562V520Q301 354 367 244T589 133Z" /> +<glyph unicode="£" glyph-name="sterling" horiz-adv-x="1179" d="M427 615L433 466Q433 376 418 295T373 154H924L940 321H1107V154H1108L1107 0H132V154H142Q189 167 213 265T237 466L231 615H68V770H225L215 1040Q215 1244 327 1360T627 1477Q827 1477 +937 1373T1043 1096L1041 1090H852Q852 1208 789 1265T627 1322Q528 1322 470 1248T412 1040L422 770H841V615H427Z" /> +<glyph unicode="¤" glyph-name="currency" horiz-adv-x="1461" d="M1087 108Q1010 46 918 13T724 -20Q623 -20 531 12T362 107L232 -26L94 112L232 252Q182 328 156 418T129 608Q129 710 157 804T240 976L94 1125L232 1264L375 1118Q449 1173 538 1203T724 +1234Q821 1234 910 1203T1074 1116L1220 1265L1360 1125L1210 972Q1262 894 1290 802T1319 608Q1319 510 1293 421T1218 255L1360 112L1220 -27L1087 108ZM311 608Q311 420 431 288T724 155Q894 155 1014 287T1135 608Q1135 794 1015 926T724 1058Q552 1058 432 +926T311 608Z" /> +<glyph unicode="¥" glyph-name="yen" horiz-adv-x="1386" d="M1335 1329L1196 1309L863 738H1175V615H792V448H1175V326H792V154L955 126V0H432V126L595 154V326H220V448H595V615H220V738H531L198 1308L59 1329V1456H501V1329L414 1314L697 793L980 1314L894 +1329V1456H1335V1329Z" /> +<glyph unicode="¦" glyph-name="brokenbar" horiz-adv-x="496" d="M150 -270V522H347V-270H150ZM347 698H150V1456H347V698Z" /> +<glyph unicode="§" glyph-name="section" horiz-adv-x="1233" d="M1144 431Q1144 337 1096 267T960 157Q1030 106 1065 38T1100 -128Q1100 -300 967 -397T609 -495Q387 -495 237 -393T91 -70L93 -64L281 -62Q281 -205 377 -272T609 -340Q745 -340 824 -281T903 +-130Q903 -39 831 11T555 125Q316 188 203 281T90 551Q90 642 136 712T270 824Q202 874 169 943T135 1110Q135 1276 268 1376T627 1477Q859 1477 989 1366T1116 1052L1113 1046H925Q925 1164 846 1243T627 1322Q481 1322 407 1263T332 1112Q332 1013 399 964T677 +856Q921 787 1032 697T1144 431ZM599 689Q551 701 510 714T432 741Q359 722 323 672T287 553Q287 452 354 401T633 291Q685 275 723 264T795 240Q868 260 908 310T948 428Q948 519 875 572T599 689Z" /> +<glyph unicode="¨" glyph-name="dieresis" horiz-adv-x="992" d="M840 1256H622V1456H840V1256ZM370 1256H152V1456H370V1256Z" /> +<glyph unicode="©" glyph-name="copyright" horiz-adv-x="1595" d="M1114 596L1116 590Q1120 439 1033 361T788 282Q628 282 534 388T439 669V788Q439 961 533 1068T788 1175Q945 1175 1033 1096T1117 868L1115 862H969Q969 957 924 1000T788 1044Q693 1044 +642 974T591 789V669Q591 552 642 482T788 412Q878 412 923 455T968 596H1114ZM212 729Q212 464 384 282T802 100Q1046 100 1218 282T1390 729Q1390 992 1218 1173T802 1354Q556 1354 384 1174T212 729ZM92 729Q92 1044 299 1260T802 1476Q1097 1476 1304 1260T1511 +729Q1511 413 1304 196T802 -21Q506 -21 299 196T92 729Z" /> +<glyph unicode="ª" glyph-name="ordfeminine" horiz-adv-x="894" d="M598 706Q590 727 585 751T577 801Q544 754 488 723T355 692Q236 692 171 753T106 920Q106 1030 190 1090T436 1150H574V1202Q574 1265 545 1299T457 1333Q390 1333 354 1306T317 1230L154 +1243L153 1249Q147 1347 232 1412T457 1477Q590 1477 668 1406T747 1201V887Q747 836 753 792T773 706H598ZM397 831Q448 831 502 860T574 926V1036H437Q362 1036 320 1003T278 924Q278 879 307 855T397 831Z" /> +<glyph unicode="«" glyph-name="guillemotleft" horiz-adv-x="935" d="M502 771L757 373H609L314 762V781L609 1170H757L502 771ZM580 515L835 117H687L392 506V525L687 914H835L580 515Z" /> +<glyph unicode="¬" glyph-name="logicalnot" horiz-adv-x="1122" d="M955 375H758V637H121V802H955V375Z" /> +<glyph unicode="­" glyph-name="uni00AD" horiz-adv-x="797" d="M643 538H154V692H643V538Z" /> +<glyph unicode="®" glyph-name="registered" horiz-adv-x="1595" d="M92 729Q92 1044 299 1260T802 1476Q1097 1476 1304 1260T1511 729Q1511 413 1304 196T802 -21Q506 -21 299 196T92 729ZM212 729Q212 464 384 282T802 100Q1046 100 1218 282T1390 729Q1390 +992 1218 1173T802 1354Q556 1354 384 1174T212 729ZM657 654V316H508V1166H788Q940 1166 1026 1101T1112 909Q1112 848 1079 801T984 722Q1050 696 1079 643T1109 515V459Q1109 418 1112 386T1126 332V316H973Q964 337 962 377T960 460V514Q960 586 927 620T816 +654H657ZM657 784H809Q874 785 919 816T964 904Q964 977 925 1006T788 1036H657V784Z" /> +<glyph unicode="¯" glyph-name="overscore" horiz-adv-x="1028" d="M875 1310H154V1456H875V1310Z" /> +<glyph unicode="°" glyph-name="degree" horiz-adv-x="757" d="M124 1216Q124 1322 199 1399T380 1477Q484 1477 558 1400T633 1216Q633 1108 559 1034T380 959Q274 959 199 1033T124 1216ZM254 1216Q254 1161 290 1125T380 1089Q432 1089 467 1125T503 1216Q503 +1271 468 1308T380 1346Q327 1346 291 1309T254 1216Z" /> +<glyph unicode="±" glyph-name="plusminus" horiz-adv-x="1057" d="M633 856H991V702H633V289H455V702H75V856H455V1267H633V856ZM959 5H124V160H959V5Z" /> +<glyph unicode="²" glyph-name="twosuperior" horiz-adv-x="827" d="M714 667H122V797L424 1059Q493 1118 514 1155T536 1236Q536 1286 508 1317T422 1348Q355 1348 319 1316T282 1234H121L119 1240Q113 1339 197 1409T422 1479Q557 1479 633 1415T709 1235Q709 +1155 665 1099T504 938L351 803L353 797H714V667Z" /> +<glyph unicode="³" glyph-name="threesuperior" horiz-adv-x="845" d="M424 1137Q491 1137 523 1165T555 1246Q555 1290 519 1318T414 1347Q358 1347 323 1323T288 1259H126L124 1265Q118 1359 202 1418T414 1478Q559 1478 643 1419T727 1249Q727 1194 692 +1149T594 1077Q665 1053 702 1006T740 890Q740 779 650 717T414 655Q287 655 196 713T111 882L112 888H275Q275 842 312 814T414 785Q486 785 527 814T569 892Q569 955 533 983T424 1011H291V1137H424Z" /> +<glyph unicode="´" glyph-name="acute" horiz-adv-x="599" d="M279 1478H509L511 1472L242 1212H95L279 1478Z" /> +<glyph unicode="µ" glyph-name="mu" horiz-adv-x="1315" d="M900 109Q856 45 792 12T645 -21Q573 -21 519 -5T425 47V-416H229V927L66 955V1082H229H425V460Q425 271 480 202T637 133Q736 133 797 169T889 277V927L726 955V1082H1086V154L1249 126V0H909L900 109Z" /> +<glyph unicode="¶" glyph-name="paragraph" horiz-adv-x="1090" d="M570 520Q336 520 207 649T78 988Q78 1195 207 1325T570 1456H1013V1329L850 1301V154L1013 126V0H490V126L653 154V520H570Z" /> +<glyph unicode="·" glyph-name="middot" horiz-adv-x="516" d="M357 624H159V836H357V624Z" /> +<glyph unicode="¸" glyph-name="cedilla" horiz-adv-x="470" d="M276 0L264 -52Q329 -63 372 -104T415 -225Q415 -321 336 -378T110 -435L103 -326Q175 -326 218 -302T262 -228Q262 -180 226 -161T103 -135L135 0H276Z" /> +<glyph unicode="¹" glyph-name="onesuperior" horiz-adv-x="547" d="M396 665H222V1320H95V1454L396 1477V665Z" /> +<glyph unicode="º" glyph-name="ordmasculine" horiz-adv-x="941" d="M121 1142Q121 1290 214 1383T466 1477Q624 1477 718 1384T812 1142V1025Q812 876 719 784T468 691Q309 691 215 783T121 1025V1142ZM293 1025Q293 937 337 885T468 832Q551 832 595 885T639 +1025V1142Q639 1226 595 1279T466 1333Q382 1333 338 1280T293 1142V1025Z" /> +<glyph unicode="»" glyph-name="guillemotright" horiz-adv-x="938" d="M253 949L548 560V541L253 152H105L359 550L105 949H253ZM598 949L893 560V541L598 152H450L704 550L450 949H598Z" /> +<glyph unicode="¼" glyph-name="onequarter" horiz-adv-x="1443" d="M484 664H310V1319H183V1453L484 1476V664ZM430 118L321 185L1032 1323L1141 1256L430 118ZM1380 282H1506V152H1380V0H1210V152H793L785 254L1206 801H1380V282ZM967 282H1210V592L1204 +593L1191 571L967 282Z" /> +<glyph unicode="½" glyph-name="onehalf" horiz-adv-x="1480" d="M443 118L334 185L1045 1323L1154 1256L443 118ZM484 664H310V1319H183V1453L484 1476V664ZM1524 0H932V130L1234 392Q1303 451 1324 488T1346 569Q1346 619 1318 650T1232 681Q1165 681 1129 +649T1092 567H931L929 573Q923 672 1007 742T1232 812Q1367 812 1443 748T1519 568Q1519 488 1475 432T1314 271L1161 136L1163 130H1524V0Z" /> +<glyph unicode="¾" glyph-name="threequarters" horiz-adv-x="1690" d="M614 118L505 185L1216 1323L1325 1256L614 118ZM1569 282H1695V152H1569V0H1399V152H982L974 254L1395 801H1569V282ZM1156 282H1399V592L1393 593L1380 571L1156 282ZM440 1138Q507 +1138 539 1166T571 1247Q571 1291 535 1319T430 1348Q374 1348 339 1324T304 1260H142L140 1266Q134 1360 218 1419T430 1479Q575 1479 659 1420T743 1250Q743 1195 708 1150T610 1078Q681 1054 718 1007T756 891Q756 780 666 718T430 656Q303 656 212 714T127 +883L128 889H291Q291 843 328 815T430 786Q502 786 543 815T585 893Q585 956 549 984T440 1012H307V1138H440Z" /> +<glyph unicode="¿" glyph-name="questiondown" horiz-adv-x="890" d="M588 672Q586 526 562 470T437 323Q336 203 296 141T255 -8Q255 -115 310 -171T472 -228Q562 -228 626 -179T691 -33H879L882 -39Q884 -200 768 -297T472 -394Q274 -394 166 -294T58 -13Q58 +114 127 220T314 441Q367 494 379 537T391 672H588ZM385 1083H590V874H385V1083Z" /> +<glyph unicode="À" glyph-name="Agrave" horiz-adv-x="1500" d="M55 126L163 141L672 1456H841L1341 141L1448 126V0H1030V126L1140 145L1044 413H461L362 145L472 126V0H55V126ZM522 578H984L758 1203H752L522 578ZM843 1559H684L435 1819L438 1825H668L843 1559Z" /> +<glyph unicode="Á" glyph-name="Aacute" horiz-adv-x="1500" d="M55 126L163 141L672 1456H841L1341 141L1448 126V0H1030V126L1140 145L1044 413H461L362 145L472 126V0H55V126ZM522 578H984L758 1203H752L522 578ZM815 1822H1045L1047 1816L778 1556H631L815 +1822Z" /> +<glyph unicode="Â" glyph-name="Acircumflex" horiz-adv-x="1500" d="M55 126L163 141L672 1456H841L1341 141L1448 126V0H1030V126L1140 145L1044 413H461L362 145L472 126V0H55V126ZM522 578H984L758 1203H752L522 578ZM1065 1612V1587H904L757 1735L612 +1587H452V1613L698 1850H817L1065 1612Z" /> +<glyph unicode="Ã" glyph-name="Atilde" horiz-adv-x="1500" d="M55 126L163 141L672 1456H841L1341 141L1448 126V0H1030V126L1140 145L1044 413H461L362 145L472 126V0H55V126ZM522 578H984L758 1203H752L522 578ZM1095 1843Q1095 1749 1036 1684T886 1619Q815 +1619 738 1665T610 1712Q568 1712 539 1680T509 1601L402 1627Q402 1720 460 1788T610 1857Q666 1857 750 1810T886 1763Q927 1763 957 1795T987 1875L1095 1843Z" /> +<glyph unicode="Ä" glyph-name="Adieresis" horiz-adv-x="1500" d="M55 126L163 141L672 1456H841L1341 141L1448 126V0H1030V126L1140 145L1044 413H461L362 145L472 126V0H55V126ZM522 578H984L758 1203H752L522 578ZM1083 1604H865V1804H1083V1604ZM613 +1604H395V1804H613V1604Z" /> +<glyph unicode="Å" glyph-name="Aring" horiz-adv-x="1500" d="M55 126L163 141L672 1456H841L1341 141L1448 126V0H1030V126L1140 145L1044 413H461L362 145L472 126V0H55V126ZM522 578H984L758 1203H752L522 578ZM555 1735Q555 1819 615 1876T763 1933Q848 +1933 908 1877T968 1735Q968 1649 908 1595T763 1541Q676 1541 616 1595T555 1735ZM658 1735Q658 1692 689 1662T763 1631Q805 1631 835 1660T865 1735Q865 1780 835 1811T763 1842Q719 1842 689 1811T658 1735Z" /> +<glyph unicode="Æ" glyph-name="AE" horiz-adv-x="2096" d="M51 126L192 146L985 1456H1952V1134H1784L1769 1301H1261L1281 835H1871V680H1287L1309 154H1831L1847 321H2014V0H956V126L1112 153L1104 350H548L427 140L509 126V0H51V126ZM651 529H1097L1066 +1239L1061 1241L651 529Z" /> +<glyph unicode="Ç" glyph-name="Ccedilla" horiz-adv-x="1321" d="M1200 1009H1061L1024 1215Q976 1262 906 1292T739 1322Q512 1322 390 1158T268 740V717Q268 464 387 299T719 133Q818 133 899 164T1024 240L1061 446H1200V187Q1137 106 1011 43T719 -21Q435 +-21 253 189T71 717V738Q71 1058 250 1267T719 1477Q885 1477 1011 1413T1200 1268V1009ZM774 -8L762 -60Q827 -71 870 -112T913 -233Q913 -329 834 -386T608 -443L601 -334Q673 -334 716 -310T760 -236Q760 -188 724 -169T601 -143L633 -8H774Z" /> +<glyph unicode="È" glyph-name="Egrave" horiz-adv-x="1306" d="M71 0V126L234 154V1301L71 1329V1456H1189V1106H1020L1004 1301H431V830H988V675H431V154H1016L1032 349H1200V0H71ZM737 1560H578L329 1820L332 1826H562L737 1560Z" /> +<glyph unicode="É" glyph-name="Eacute" horiz-adv-x="1306" d="M71 0V126L234 154V1301L71 1329V1456H1189V1106H1020L1004 1301H431V830H988V675H431V154H1016L1032 349H1200V0H71ZM709 1823H939L941 1817L672 1557H525L709 1823Z" /> +<glyph unicode="Ê" glyph-name="Ecircumflex" horiz-adv-x="1306" d="M71 0V126L234 154V1301L71 1329V1456H1189V1106H1020L1004 1301H431V830H988V675H431V154H1016L1032 349H1200V0H71ZM959 1613V1588H798L651 1736L506 1588H346V1614L592 1851H711L959 1613Z" /> +<glyph unicode="Ë" glyph-name="Edieresis" horiz-adv-x="1306" d="M71 0V126L234 154V1301L71 1329V1456H1189V1106H1020L1004 1301H431V830H988V675H431V154H1016L1032 349H1200V0H71ZM977 1605H759V1805H977V1605ZM507 1605H289V1805H507V1605Z" /> +<glyph unicode="Ì" glyph-name="Igrave" horiz-adv-x="662" d="M70 1329V1456H593V1329L430 1301V154L593 126V0H70V126L233 154V1301L70 1329ZM424 1558H265L16 1818L19 1824H249L424 1558Z" /> +<glyph unicode="Í" glyph-name="Iacute" horiz-adv-x="662" d="M70 1329V1456H593V1329L430 1301V154L593 126V0H70V126L233 154V1301L70 1329ZM395 1821H625L627 1815L358 1555H211L395 1821Z" /> +<glyph unicode="Î" glyph-name="Icircumflex" horiz-adv-x="662" d="M70 1329V1456H593V1329L430 1301V154L593 126V0H70V126L233 154V1301L70 1329ZM646 1611V1586H485L338 1734L193 1586H33V1612L279 1849H398L646 1611Z" /> +<glyph unicode="Ï" glyph-name="Idieresis" horiz-adv-x="662" d="M70 1329V1456H593V1329L430 1301V154L593 126V0H70V126L233 154V1301L70 1329ZM664 1603H446V1803H664V1603ZM194 1603H-24V1803H194V1603Z" /> +<glyph unicode="Ð" glyph-name="Eth" horiz-adv-x="1449" d="M711 1456Q996 1456 1169 1281T1343 827V628Q1343 349 1170 175T711 0H101V126L264 154V663H66V818H264V1301L101 1329V1456H711ZM707 663H461V154H711Q913 154 1029 287T1146 628V829Q1146 1035 +1030 1168T711 1301H461V818H707V663Z" /> +<glyph unicode="Ñ" glyph-name="Ntilde" horiz-adv-x="1560" d="M1497 1456V1329L1334 1301V0H1137L437 1124L431 1122V154L594 126V0H71V126L234 154V1301L71 1329V1456H234H431L1131 333L1137 335V1301L974 1329V1456H1334H1497ZM1089 1844Q1089 1750 1030 +1685T880 1620Q809 1620 732 1666T604 1713Q562 1713 533 1681T503 1602L396 1628Q396 1721 454 1789T604 1858Q660 1858 744 1811T880 1764Q921 1764 951 1796T981 1876L1089 1844Z" /> +<glyph unicode="Ò" glyph-name="Ograve" horiz-adv-x="1445" d="M1368 717Q1368 399 1186 189T713 -21Q431 -21 255 189T79 717V738Q79 1055 255 1266T713 1477Q1003 1477 1185 1266T1368 738V717ZM1171 740Q1171 994 1050 1154T713 1315Q507 1315 392 1154T276 +740V717Q276 461 391 301T713 140Q931 140 1051 300T1171 717V740ZM805 1559H646L397 1819L400 1825H630L805 1559Z" /> +<glyph unicode="Ó" glyph-name="Oacute" horiz-adv-x="1445" d="M1368 717Q1368 399 1186 189T713 -21Q431 -21 255 189T79 717V738Q79 1055 255 1266T713 1477Q1003 1477 1185 1266T1368 738V717ZM1171 740Q1171 994 1050 1154T713 1315Q507 1315 392 1154T276 +740V717Q276 461 391 301T713 140Q931 140 1051 300T1171 717V740ZM777 1822H1007L1009 1816L740 1556H593L777 1822Z" /> +<glyph unicode="Ô" glyph-name="Ocircumflex" horiz-adv-x="1445" d="M1368 717Q1368 399 1186 189T713 -21Q431 -21 255 189T79 717V738Q79 1055 255 1266T713 1477Q1003 1477 1185 1266T1368 738V717ZM1171 740Q1171 994 1050 1154T713 1315Q507 1315 392 +1154T276 740V717Q276 461 391 301T713 140Q931 140 1051 300T1171 717V740ZM1027 1612V1587H866L719 1735L574 1587H414V1613L660 1850H779L1027 1612Z" /> +<glyph unicode="Õ" glyph-name="Otilde" horiz-adv-x="1445" d="M1368 717Q1368 399 1186 189T713 -21Q431 -21 255 189T79 717V738Q79 1055 255 1266T713 1477Q1003 1477 1185 1266T1368 738V717ZM1171 740Q1171 994 1050 1154T713 1315Q507 1315 392 1154T276 +740V717Q276 461 391 301T713 140Q931 140 1051 300T1171 717V740ZM1057 1843Q1057 1749 998 1684T848 1619Q777 1619 700 1665T572 1712Q530 1712 501 1680T471 1601L364 1627Q364 1720 422 1788T572 1857Q628 1857 712 1810T848 1763Q889 1763 919 1795T949 1875L1057 +1843Z" /> +<glyph unicode="Ö" glyph-name="Odieresis" horiz-adv-x="1445" d="M1368 717Q1368 399 1186 189T713 -21Q431 -21 255 189T79 717V738Q79 1055 255 1266T713 1477Q1003 1477 1185 1266T1368 738V717ZM1171 740Q1171 994 1050 1154T713 1315Q507 1315 392 +1154T276 740V717Q276 461 391 301T713 140Q931 140 1051 300T1171 717V740ZM1045 1604H827V1804H1045V1604ZM575 1604H357V1804H575V1604Z" /> +<glyph unicode="×" glyph-name="multiply" horiz-adv-x="1070" d="M79 351L406 685L79 1019L205 1145L531 812L858 1145L984 1019L656 685L984 351L858 225L531 557L205 225L79 351Z" /> +<glyph unicode="Ø" glyph-name="Oslash" horiz-adv-x="1404" d="M1368 717Q1368 399 1186 189T713 -21Q623 -21 543 2T393 69L296 -94H147L291 150Q189 251 134 397T79 717V738Q79 1055 255 1266T713 1477Q800 1477 879 1456T1030 1394L1103 1517H1252L1134 +1318Q1245 1216 1306 1066T1368 738V717ZM1171 740Q1171 869 1138 976T1044 1157L1038 1158L478 213Q526 177 585 159T713 140Q931 140 1051 300T1171 717V740ZM276 717Q276 594 303 491T384 316H390L945 1251Q895 1282 837 1298T713 1315Q507 1315 392 1154T276 +740V717Z" /> +<glyph unicode="Ù" glyph-name="Ugrave" horiz-adv-x="1541" d="M583 1456V1329L420 1301V469Q420 304 514 219T762 133Q924 133 1023 218T1122 469V1301L959 1329V1456H1319H1482V1329L1319 1301V469Q1319 232 1165 106T762 -21Q521 -21 372 105T223 469V1301L60 +1329V1456H223H583ZM838 1559H679L430 1819L433 1825H663L838 1559Z" /> +<glyph unicode="Ú" glyph-name="Uacute" horiz-adv-x="1541" d="M583 1456V1329L420 1301V469Q420 304 514 219T762 133Q924 133 1023 218T1122 469V1301L959 1329V1456H1319H1482V1329L1319 1301V469Q1319 232 1165 106T762 -21Q521 -21 372 105T223 469V1301L60 +1329V1456H223H583ZM810 1822H1040L1042 1816L773 1556H626L810 1822Z" /> +<glyph unicode="Û" glyph-name="Ucircumflex" horiz-adv-x="1541" d="M583 1456V1329L420 1301V469Q420 304 514 219T762 133Q924 133 1023 218T1122 469V1301L959 1329V1456H1319H1482V1329L1319 1301V469Q1319 232 1165 106T762 -21Q521 -21 372 105T223 +469V1301L60 1329V1456H223H583ZM1060 1612V1587H899L752 1735L607 1587H447V1613L693 1850H812L1060 1612Z" /> +<glyph unicode="Ü" glyph-name="Udieresis" horiz-adv-x="1541" d="M583 1456V1329L420 1301V469Q420 304 514 219T762 133Q924 133 1023 218T1122 469V1301L959 1329V1456H1319H1482V1329L1319 1301V469Q1319 232 1165 106T762 -21Q521 -21 372 105T223 +469V1301L60 1329V1456H223H583ZM1078 1604H860V1804H1078V1604ZM608 1604H390V1804H608V1604Z" /> +<glyph unicode="Ý" glyph-name="Yacute" horiz-adv-x="1416" d="M555 1329L398 1310L703 716L1008 1310L852 1329V1456H1352V1329L1229 1310L797 512V154L960 126V0H438V126L601 154V527L177 1310L55 1329V1456H555V1329ZM757 1822H987L989 1816L720 1556H573L757 +1822Z" /> +<glyph unicode="Þ" glyph-name="Thorn" horiz-adv-x="1277" d="M70 126L233 154V1301L70 1329V1456H430H593V1329L430 1301V1163H699Q930 1163 1060 1045T1190 738Q1190 548 1060 431T699 313H430V154L593 126V0H70V126ZM430 1009V467H699Q845 467 919 545T993 +736Q993 850 919 929T699 1009H430Z" /> +<glyph unicode="ß" glyph-name="germandbls" horiz-adv-x="1288" d="M414 0H55V126L218 154V1082Q218 1305 335 1430T636 1555Q796 1555 897 1469T998 1216Q998 1098 934 988T870 821Q870 739 1043 597T1216 316Q1216 149 1112 64T830 -21Q746 -21 658 -1T532 +50L575 209Q617 181 683 157T809 133Q918 133 968 180T1019 306Q1019 390 846 533T673 823Q673 903 743 1013T813 1200Q813 1294 763 1347T646 1401Q541 1401 478 1318T414 1082V0Z" /> +<glyph unicode="à" glyph-name="agrave" horiz-adv-x="1128" d="M795 0Q786 44 781 79T774 149Q717 76 632 28T449 -21Q280 -21 192 61T104 294Q104 448 228 531T570 615H773V741Q773 836 713 891T546 947Q472 947 416 928T324 876L303 762H151V972Q225 1031 +330 1066T558 1102Q742 1102 856 1008T970 739V218Q970 197 970 177T973 137L1053 126V0H795ZM478 144Q576 144 657 191T773 304V482H563Q442 482 372 426T301 290Q301 219 345 182T478 144ZM641 1235H482L233 1495L236 1501H466L641 1235Z" /> +<glyph unicode="á" glyph-name="aacute" horiz-adv-x="1128" d="M795 0Q786 44 781 79T774 149Q717 76 632 28T449 -21Q280 -21 192 61T104 294Q104 448 228 531T570 615H773V741Q773 836 713 891T546 947Q472 947 416 928T324 876L303 762H151V972Q225 1031 +330 1066T558 1102Q742 1102 856 1008T970 739V218Q970 197 970 177T973 137L1053 126V0H795ZM478 144Q576 144 657 191T773 304V482H563Q442 482 372 426T301 290Q301 219 345 182T478 144ZM613 1498H843L845 1492L576 1232H429L613 1498Z" /> +<glyph unicode="â" glyph-name="acircumflex" horiz-adv-x="1128" d="M795 0Q786 44 781 79T774 149Q717 76 632 28T449 -21Q280 -21 192 61T104 294Q104 448 228 531T570 615H773V741Q773 836 713 891T546 947Q472 947 416 928T324 876L303 762H151V972Q225 +1031 330 1066T558 1102Q742 1102 856 1008T970 739V218Q970 197 970 177T973 137L1053 126V0H795ZM478 144Q576 144 657 191T773 304V482H563Q442 482 372 426T301 290Q301 219 345 182T478 144ZM863 1288V1263H702L555 1411L410 1263H250V1289L496 1526H615L863 +1288Z" /> +<glyph unicode="ã" glyph-name="atilde" horiz-adv-x="1128" d="M795 0Q786 44 781 79T774 149Q717 76 632 28T449 -21Q280 -21 192 61T104 294Q104 448 228 531T570 615H773V741Q773 836 713 891T546 947Q472 947 416 928T324 876L303 762H151V972Q225 1031 +330 1066T558 1102Q742 1102 856 1008T970 739V218Q970 197 970 177T973 137L1053 126V0H795ZM478 144Q576 144 657 191T773 304V482H563Q442 482 372 426T301 290Q301 219 345 182T478 144ZM893 1519Q893 1425 834 1360T684 1295Q613 1295 536 1341T408 1388Q366 +1388 337 1356T307 1277L200 1303Q200 1396 258 1464T408 1533Q464 1533 548 1486T684 1439Q725 1439 755 1471T785 1551L893 1519Z" /> +<glyph unicode="ä" glyph-name="adieresis" horiz-adv-x="1128" d="M795 0Q786 44 781 79T774 149Q717 76 632 28T449 -21Q280 -21 192 61T104 294Q104 448 228 531T570 615H773V741Q773 836 713 891T546 947Q472 947 416 928T324 876L303 762H151V972Q225 +1031 330 1066T558 1102Q742 1102 856 1008T970 739V218Q970 197 970 177T973 137L1053 126V0H795ZM478 144Q576 144 657 191T773 304V482H563Q442 482 372 426T301 290Q301 219 345 182T478 144ZM881 1280H663V1480H881V1280ZM411 1280H193V1480H411V1280Z" /> +<glyph unicode="å" glyph-name="aring" horiz-adv-x="1128" d="M795 0Q786 44 781 79T774 149Q717 76 632 28T449 -21Q280 -21 192 61T104 294Q104 448 228 531T570 615H773V741Q773 836 713 891T546 947Q472 947 416 928T324 876L303 762H151V972Q225 1031 +330 1066T558 1102Q742 1102 856 1008T970 739V218Q970 197 970 177T973 137L1053 126V0H795ZM478 144Q576 144 657 191T773 304V482H563Q442 482 372 426T301 290Q301 219 345 182T478 144ZM353 1411Q353 1495 413 1552T561 1609Q646 1609 706 1553T766 1411Q766 +1325 706 1271T561 1217Q474 1217 414 1271T353 1411ZM456 1411Q456 1368 487 1338T561 1307Q603 1307 633 1336T663 1411Q663 1456 633 1487T561 1518Q517 1518 487 1487T456 1411Z" /> +<glyph unicode="æ" glyph-name="ae" horiz-adv-x="1795" d="M1300 -21Q1165 -21 1061 27T891 165Q835 86 723 33T452 -21Q282 -21 190 66T97 304Q97 462 211 548T546 635H775V720Q775 826 724 886T574 947Q471 947 410 892T349 759L161 777L159 783Q154 921 +269 1011T574 1102Q689 1102 776 1062T913 944Q977 1019 1064 1060T1254 1102Q1468 1102 1583 972T1699 614V495H989L987 490Q988 331 1066 232T1300 133Q1404 133 1470 160T1614 239L1682 101Q1627 56 1533 18T1300 -21ZM491 133Q567 133 649 176T775 276V493H548Q428 +493 361 437T294 300Q294 226 344 180T491 133ZM1254 947Q1140 947 1071 863T991 645L993 640H1502V671Q1502 793 1442 870T1254 947Z" /> +<glyph unicode="ç" glyph-name="ccedilla" horiz-adv-x="1104" d="M575 133Q673 133 747 193T822 342H999L1001 336Q1006 196 877 88T575 -21Q339 -21 215 133T90 520V562Q90 793 215 947T575 1102Q705 1102 808 1059T980 941L989 701H832L789 871Q754 905 +699 926T575 947Q420 947 354 836T287 562V520Q287 354 353 244T575 133ZM583 -9L571 -61Q636 -72 679 -113T722 -234Q722 -330 643 -387T417 -444L410 -335Q482 -335 525 -311T569 -237Q569 -189 533 -170T410 -144L442 -9H583Z" /> +<glyph unicode="è" glyph-name="egrave" horiz-adv-x="1101" d="M583 -21Q357 -21 224 129T90 520V564Q90 795 227 948T553 1102Q771 1102 883 970T996 618V495H294L291 490Q294 334 370 234T583 133Q683 133 758 161T889 240L966 112Q908 56 813 18T583 +-21ZM553 947Q454 947 384 864T298 654L300 649H799V675Q799 791 737 869T553 947ZM641 1235H482L233 1495L236 1501H466L641 1235Z" /> +<glyph unicode="é" glyph-name="eacute" horiz-adv-x="1101" d="M583 -21Q357 -21 224 129T90 520V564Q90 795 227 948T553 1102Q771 1102 883 970T996 618V495H294L291 490Q294 334 370 234T583 133Q683 133 758 161T889 240L966 112Q908 56 813 18T583 +-21ZM553 947Q454 947 384 864T298 654L300 649H799V675Q799 791 737 869T553 947ZM613 1498H843L845 1492L576 1232H429L613 1498Z" /> +<glyph unicode="ê" glyph-name="ecircumflex" horiz-adv-x="1101" d="M583 -21Q357 -21 224 129T90 520V564Q90 795 227 948T553 1102Q771 1102 883 970T996 618V495H294L291 490Q294 334 370 234T583 133Q683 133 758 161T889 240L966 112Q908 56 813 18T583 +-21ZM553 947Q454 947 384 864T298 654L300 649H799V675Q799 791 737 869T553 947ZM863 1288V1263H702L555 1411L410 1263H250V1289L496 1526H615L863 1288Z" /> +<glyph unicode="ë" glyph-name="edieresis" horiz-adv-x="1101" d="M583 -21Q357 -21 224 129T90 520V564Q90 795 227 948T553 1102Q771 1102 883 970T996 618V495H294L291 490Q294 334 370 234T583 133Q683 133 758 161T889 240L966 112Q908 56 813 18T583 +-21ZM553 947Q454 947 384 864T298 654L300 649H799V675Q799 791 737 869T553 947ZM881 1280H663V1480H881V1280ZM411 1280H193V1480H411V1280Z" /> +<glyph unicode="ì" glyph-name="igrave" horiz-adv-x="672" d="M90 955V1082H450V154L613 126V0H90V126L253 154V927L90 955ZM688 1234H529L280 1494L283 1500H513L688 1234Z" /> +<glyph unicode="í" glyph-name="iacute" horiz-adv-x="672" d="M90 955V1082H450V154L613 126V0H90V126L253 154V927L90 955ZM403 1497H633L635 1491L366 1231H219L403 1497Z" /> +<glyph unicode="î" glyph-name="icircumflex" horiz-adv-x="672" d="M90 955V1082H450V154L613 126V0H90V126L253 154V927L90 955ZM910 1287V1262H749L602 1410L457 1262H297V1288L543 1525H662L910 1287Z" /> +<glyph unicode="ï" glyph-name="idieresis" horiz-adv-x="672" d="M90 955V1082H450V154L613 126V0H90V126L253 154V927L90 955ZM672 1279H454V1479H672V1279ZM202 1279H-16V1479H202V1279Z" /> +<glyph unicode="ð" glyph-name="eth" horiz-adv-x="1191" d="M859 1286Q963 1165 1020 999T1078 633V535Q1078 290 934 135T575 -21Q357 -21 218 119T78 466Q78 694 216 836T567 978Q650 978 724 946T851 862L855 867Q835 965 793 1046T692 1190L420 1035L343 +1137L588 1277Q552 1300 514 1318T433 1353L493 1517Q568 1495 636 1460T764 1378L997 1511L1074 1409L859 1286ZM881 635Q881 643 881 660T880 685Q845 743 765 783T567 823Q436 823 356 719T275 466Q275 334 357 234T579 133Q712 133 796 247T881 535V635Z" /> +<glyph unicode="ñ" glyph-name="ntilde" horiz-adv-x="1318" d="M60 126L223 154V927L60 955V1082H399L413 921Q467 1007 548 1054T734 1102Q909 1102 1005 1000T1101 683V154L1264 126V0H741V126L904 154V679Q904 822 848 882T675 942Q590 942 525 901T420 +789V154L583 126V0H60V126ZM1007 1519Q1007 1425 948 1360T798 1295Q727 1295 650 1341T522 1388Q480 1388 451 1356T421 1277L314 1303Q314 1396 372 1464T522 1533Q578 1533 662 1486T798 1439Q839 1439 869 1471T899 1551L1007 1519Z" /> +<glyph unicode="ò" glyph-name="ograve" horiz-adv-x="1149" d="M90 551Q90 791 220 946T573 1102Q797 1102 927 947T1058 551V529Q1058 287 928 133T575 -21Q350 -21 220 133T90 529V551ZM287 529Q287 357 359 245T575 133Q715 133 788 245T861 529V551Q861 +721 788 834T573 947Q431 947 359 834T287 551V529ZM659 1235H500L251 1495L254 1501H484L659 1235Z" /> +<glyph unicode="ó" glyph-name="oacute" horiz-adv-x="1149" d="M90 551Q90 791 220 946T573 1102Q797 1102 927 947T1058 551V529Q1058 287 928 133T575 -21Q350 -21 220 133T90 529V551ZM287 529Q287 357 359 245T575 133Q715 133 788 245T861 529V551Q861 +721 788 834T573 947Q431 947 359 834T287 551V529ZM631 1498H861L863 1492L594 1232H447L631 1498Z" /> +<glyph unicode="ô" glyph-name="ocircumflex" horiz-adv-x="1149" d="M90 551Q90 791 220 946T573 1102Q797 1102 927 947T1058 551V529Q1058 287 928 133T575 -21Q350 -21 220 133T90 529V551ZM287 529Q287 357 359 245T575 133Q715 133 788 245T861 529V551Q861 +721 788 834T573 947Q431 947 359 834T287 551V529ZM881 1288V1263H720L573 1411L428 1263H268V1289L514 1526H633L881 1288Z" /> +<glyph unicode="õ" glyph-name="otilde" horiz-adv-x="1149" d="M90 551Q90 791 220 946T573 1102Q797 1102 927 947T1058 551V529Q1058 287 928 133T575 -21Q350 -21 220 133T90 529V551ZM287 529Q287 357 359 245T575 133Q715 133 788 245T861 529V551Q861 +721 788 834T573 947Q431 947 359 834T287 551V529ZM911 1519Q911 1425 852 1360T702 1295Q631 1295 554 1341T426 1388Q384 1388 355 1356T325 1277L218 1303Q218 1396 276 1464T426 1533Q482 1533 566 1486T702 1439Q743 1439 773 1471T803 1551L911 1519Z" /> +<glyph unicode="ö" glyph-name="odieresis" horiz-adv-x="1149" d="M90 551Q90 791 220 946T573 1102Q797 1102 927 947T1058 551V529Q1058 287 928 133T575 -21Q350 -21 220 133T90 529V551ZM287 529Q287 357 359 245T575 133Q715 133 788 245T861 529V551Q861 +721 788 834T573 947Q431 947 359 834T287 551V529ZM899 1280H681V1480H899V1280ZM429 1280H211V1480H429V1280Z" /> +<glyph unicode="÷" glyph-name="divide" horiz-adv-x="1148" d="M1072 597H74V785H1072V597ZM673 999H475V1202H673V999ZM673 180H475V383H673V180Z" /> +<glyph unicode="ø" glyph-name="oslash" horiz-adv-x="1149" d="M90 551Q90 791 220 946T573 1102Q628 1102 678 1091T776 1061L849 1209H978L874 999Q962 925 1010 809T1058 551V529Q1058 287 928 133T575 -21Q523 -21 476 -12T387 13L314 -135H185L286 +71Q191 143 141 262T90 529V551ZM287 529Q287 440 306 365T365 242H371L703 914Q675 930 642 938T573 947Q431 947 359 834T287 551V529ZM861 551Q861 632 844 703T793 822H787L459 158Q484 145 513 139T575 133Q715 133 788 245T861 529V551Z" /> +<glyph unicode="ù" glyph-name="ugrave" horiz-adv-x="1244" d="M863 160Q812 73 732 26T546 -21Q370 -21 271 92T172 444V927L48 955V1082H172H369V442Q369 269 420 204T579 139Q684 139 752 181T856 302V927L711 955V1082H856H1053V154L1177 126V0H876L863 +160ZM671 1234H512L263 1494L266 1500H496L671 1234Z" /> +<glyph unicode="ú" glyph-name="uacute" horiz-adv-x="1244" d="M863 160Q812 73 732 26T546 -21Q370 -21 271 92T172 444V927L48 955V1082H172H369V442Q369 269 420 204T579 139Q684 139 752 181T856 302V927L711 955V1082H856H1053V154L1177 126V0H876L863 +160ZM643 1497H873L875 1491L606 1231H459L643 1497Z" /> +<glyph unicode="û" glyph-name="ucircumflex" horiz-adv-x="1244" d="M863 160Q812 73 732 26T546 -21Q370 -21 271 92T172 444V927L48 955V1082H172H369V442Q369 269 420 204T579 139Q684 139 752 181T856 302V927L711 955V1082H856H1053V154L1177 126V0H876L863 +160ZM893 1287V1262H732L585 1410L440 1262H280V1288L526 1525H645L893 1287Z" /> +<glyph unicode="ü" glyph-name="udieresis" horiz-adv-x="1244" d="M863 160Q812 73 732 26T546 -21Q370 -21 271 92T172 444V927L48 955V1082H172H369V442Q369 269 420 204T579 139Q684 139 752 181T856 302V927L711 955V1082H856H1053V154L1177 126V0H876L863 +160ZM911 1279H693V1479H911V1279ZM441 1279H223V1479H441V1279Z" /> +<glyph unicode="ý" glyph-name="yacute" horiz-adv-x="1162" d="M1117 955L1020 940L608 -166Q567 -275 490 -356T283 -437Q260 -437 223 -432T166 -421L186 -266Q180 -265 221 -268T274 -271Q337 -271 376 -217T444 -91L491 21L134 939L35 955V1082H472V955L350 +935L537 401L573 263H579L804 935L681 955V1082H1117V955ZM635 1497H865L867 1491L598 1231H451L635 1497Z" /> +<glyph unicode="þ" glyph-name="thorn" horiz-adv-x="1273" d="M25 1433V1560H385V962Q438 1030 513 1066T687 1102Q887 1102 998 943T1110 521V500Q1110 266 999 123T690 -21Q590 -21 514 12T385 113V-261L548 -289V-416H25V-289L188 -261V1405L25 1433ZM913 +521Q913 706 841 824T627 942Q542 942 482 904T385 798V275Q422 208 482 171T629 133Q769 133 841 235T913 500V521Z" /> +<glyph unicode="ÿ" glyph-name="ydieresis" horiz-adv-x="1162" d="M1117 955L1020 940L608 -166Q567 -275 490 -356T283 -437Q260 -437 223 -432T166 -421L186 -266Q180 -265 221 -268T274 -271Q337 -271 376 -217T444 -91L491 21L134 939L35 955V1082H472V955L350 +935L537 401L573 263H579L804 935L681 955V1082H1117V955ZM903 1279H685V1479H903V1279ZM433 1279H215V1479H433V1279Z" /> +<glyph unicode="–" glyph-name="endash" horiz-adv-x="1400" d="M1503 648H417V803H1503V648Z" /> +<glyph unicode="—" glyph-name="emdash" horiz-adv-x="1613" d="M1757 648H421V803H1757V648Z" /> +<glyph unicode="‘" glyph-name="quoteleft" horiz-adv-x="418" d="M96 1196Q96 1295 144 1402T276 1579L388 1506Q340 1433 317 1359T293 1199V1020H96V1196Z" /> +<glyph unicode="’" glyph-name="quoteright" horiz-adv-x="418" d="M337 1376Q337 1276 289 1169T157 993L45 1067Q92 1138 116 1212T140 1373V1560H337V1376Z" /> +<glyph unicode="‚" glyph-name="quotesinglbase" horiz-adv-x="417" d="M327 78Q327 -20 278 -127T146 -305L35 -231Q82 -159 106 -85T130 75V249H327V78Z" /> +<glyph unicode="“" glyph-name="quotedblleft" horiz-adv-x="744" d="M96 1196Q96 1295 144 1402T276 1579L388 1506Q340 1433 317 1359T293 1199V1020H96V1196ZM422 1196Q422 1295 470 1402T602 1579L714 1506Q666 1433 643 1359T619 1199V1020H422V1196Z" /> +<glyph unicode="”" glyph-name="quotedblright" horiz-adv-x="752" d="M350 1376Q350 1276 302 1169T170 993L58 1067Q105 1138 129 1212T153 1373V1560H350V1376ZM668 1376Q668 1276 620 1169T488 993L376 1067Q423 1138 447 1212T471 1373V1560H668V1376Z" /> +<glyph unicode="„" glyph-name="quotedblbase" horiz-adv-x="726" d="M327 78Q327 -20 278 -127T146 -305L35 -231Q82 -159 106 -85T130 75V249H327V78ZM634 78Q634 -20 585 -127T453 -305L342 -231Q389 -159 413 -85T437 75V249H634V78Z" /> +<glyph unicode="•" glyph-name="bullet" horiz-adv-x="691" d="M135 793Q135 881 191 937T341 993Q436 993 492 937T549 793V733Q549 644 493 590T342 535Q247 535 191 589T135 733V793Z" /> +<glyph unicode="‹" glyph-name="guilsinglleft" horiz-adv-x="593" d="M256 550L511 152H363L68 541V560L363 949H511L256 550Z" /> +<glyph unicode="›" glyph-name="guilsinglright" horiz-adv-x="593" d="M231 949L526 560V541L231 152H83L337 550L83 949H231Z" /> +</font> +</defs> +</svg> diff --git a/web/static/fonts/Roboto-Slab-regular.ttf b/web/static/fonts/Roboto-Slab-regular.ttf Binary files differnew file mode 100644 index 000000000..141d6c08c --- /dev/null +++ b/web/static/fonts/Roboto-Slab-regular.ttf diff --git a/web/static/fonts/Roboto-Slab-regular.woff b/web/static/fonts/Roboto-Slab-regular.woff Binary files differnew file mode 100644 index 000000000..dab1852d8 --- /dev/null +++ b/web/static/fonts/Roboto-Slab-regular.woff diff --git a/web/static/fonts/Roboto-Slab-regular.woff2 b/web/static/fonts/Roboto-Slab-regular.woff2 Binary files differnew file mode 100644 index 000000000..1444ec418 --- /dev/null +++ b/web/static/fonts/Roboto-Slab-regular.woff2 diff --git a/web/static/fonts/Roboto-regular.eot b/web/static/fonts/Roboto-regular.eot Binary files differnew file mode 100644 index 000000000..d26bc8f51 --- /dev/null +++ b/web/static/fonts/Roboto-regular.eot diff --git a/web/static/fonts/Roboto-regular.svg b/web/static/fonts/Roboto-regular.svg new file mode 100644 index 000000000..ed55c105d --- /dev/null +++ b/web/static/fonts/Roboto-regular.svg @@ -0,0 +1,308 @@ +<?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"> +<defs > +<font id="Roboto" horiz-adv-x="1157" ><font-face + font-family="Roboto" + units-per-em="2048" + panose-1="2 0 0 0 0 0 0 0 0 0" + ascent="1900" + descent="-500" + alphabetic="0" /> +<glyph unicode=" " horiz-adv-x="507" /> +<glyph unicode="!" horiz-adv-x="527" d="M347 411H180L167 1456H361L347 411ZM160 93Q160 138 187 168T269 199T351 169T379 93T351 19T269 -11T188 18T160 93Z" /> +<glyph unicode=""" horiz-adv-x="655" d="M277 1400L247 1042H136L137 1536H277V1400ZM547 1400L517 1042H406L407 1536H547V1400Z" /> +<glyph unicode="#" horiz-adv-x="1261" d="M765 410H501L421 0H278L358 410H119V547H384L453 901H195V1040H480L562 1456H705L623 1040H887L969 1456H1113L1031 1040H1235V901H1004L935 547H1160V410H909L829 0H685L765 410ZM527 547H791L860 901H596L527 547Z" /> +<glyph unicode="$" horiz-adv-x="1150" d="M856 375Q856 467 792 530T574 644Q361 709 264 813T166 1079Q166 1243 261 1348T524 1473V1692H673V1472Q841 1449 934 1331T1028 1008H844Q844 1149 777 1232T596 1315Q477 1315 414 1254T351 1082Q351 980 417 920T636 +810T874 701T1000 562T1041 377Q1041 208 940 105T655 -17V-208H507V-17Q321 0 216 115T110 429H295Q295 290 368 215T575 140Q706 140 781 203T856 375Z" /> +<glyph unicode="%" horiz-adv-x="1500" d="M105 1176Q105 1307 188 1392T403 1477Q536 1477 618 1392T701 1170V1099Q701 967 618 884T405 800Q275 800 190 883T105 1106V1176ZM243 1099Q243 1021 287 971T405 920Q476 920 519 969T563 1103V1176Q563 1254 520 +1305T403 1356T286 1305T243 1172V1099ZM814 357Q814 488 897 572T1112 657T1327 573T1411 350V279Q1411 148 1328 64T1114 -21T899 62T814 285V357ZM952 279Q952 200 996 150T1114 99Q1186 99 1229 148T1272 283V357Q1272 436 1229 486T1112 536Q1041 536 997 +487T952 353V279ZM447 110L342 176L1053 1314L1158 1248L447 110Z" /> +<glyph unicode="&" horiz-adv-x="1273" d="M101 391Q101 496 159 584T383 789Q286 907 253 979T220 1122Q220 1288 318 1382T584 1476Q734 1476 832 1389T930 1168Q930 1080 886 1006T730 849L623 770L947 383Q1015 513 1015 672H1182Q1182 417 1059 249L1267 +0H1045L948 115Q874 49 775 15T572 -20Q359 -20 230 93T101 391ZM572 131Q719 131 841 243L486 668L453 644Q286 521 286 391Q286 273 362 202T572 131ZM405 1128Q405 1032 523 888L641 971Q709 1019 734 1062T759 1168Q759 1235 709 1279T583 1324Q501 1324 453 +1269T405 1128Z" /> +<glyph unicode="'" horiz-adv-x="357" d="M253 1425L232 1057H103L104 1536H253V1425Z" /> +<glyph unicode="(" horiz-adv-x="700" d="M133 591Q133 817 193 1025T374 1403T623 1643L661 1521Q515 1409 422 1179T319 664L318 579Q318 193 459 -91Q544 -261 661 -357L623 -470Q490 -396 369 -222Q133 118 133 591Z" /> +<glyph unicode=")" horiz-adv-x="712" d="M567 581Q567 358 509 154T330 -224T77 -470L38 -357Q192 -239 285 9T381 561V593Q381 803 337 983T215 1307T38 1530L77 1643Q209 1570 328 1399T507 1022T567 581Z" /> +<glyph unicode="*" horiz-adv-x="882" d="M330 983L28 1073L74 1224L376 1112L367 1456H520L510 1107L807 1217L853 1065L546 974L744 703L620 609L434 897L254 616L129 707L330 983Z" /> +<glyph unicode="+" horiz-adv-x="1161" d="M670 781H1076V606H670V146H484V606H78V781H484V1206H670V781Z" /> +<glyph unicode="," horiz-adv-x="402" d="M134 -290L29 -218Q123 -87 127 52V219H308V74Q308 -27 259 -128T134 -290Z" /> +<glyph unicode="-" horiz-adv-x="565" d="M525 543H37V694H525V543Z" /> +<glyph unicode="." horiz-adv-x="539" d="M144 97Q144 145 172 177T258 209T344 177T374 97Q374 51 345 20T258 -11T173 20T144 97Z" /> +<glyph unicode="/" horiz-adv-x="844" d="M177 -125H18L626 1456H784L177 -125Z" /> +<glyph unicode="0" horiz-adv-x="1150" d="M1034 621Q1034 296 923 138T576 -20Q343 -20 231 134T115 596V843Q115 1164 226 1320T574 1476Q809 1476 920 1326T1034 861V621ZM849 874Q849 1109 783 1216T574 1324Q432 1324 367 1217T300 888V592Q300 356 368 244T576 +131Q713 131 779 237T849 571V874Z" /> +<glyph unicode="1" horiz-adv-x="1150" d="M729 0H543V1233L170 1096V1264L700 1463H729V0Z" /> +<glyph unicode="2" horiz-adv-x="1150" d="M1075 0H121V133L625 693Q737 820 779 899T822 1064Q822 1178 753 1251T569 1324Q431 1324 355 1246T278 1027H93Q93 1228 222 1352T569 1476Q772 1476 890 1370T1008 1086Q1008 871 734 574L344 151H1075V0Z" /> +<glyph unicode="3" horiz-adv-x="1150" d="M390 818H529Q660 820 735 887T810 1068Q810 1324 555 1324Q435 1324 364 1256T292 1074H107Q107 1247 233 1361T555 1476Q761 1476 878 1367T995 1064Q995 969 934 880T766 747Q886 709 951 621T1017 406Q1017 210 889 +95T556 -20T223 91T94 384H280Q280 269 355 200T556 131Q690 131 761 201T832 402Q832 529 754 597T529 667H390V818Z" /> +<glyph unicode="4" horiz-adv-x="1150" d="M902 489H1104V338H902V0H716V338H53V447L705 1456H902V489ZM263 489H716V1203L694 1163L263 489Z" /> +<glyph unicode="5" horiz-adv-x="1150" d="M206 730L280 1456H1026V1285H437L393 888Q500 951 636 951Q835 951 952 820T1069 464Q1069 239 948 110T608 -20Q415 -20 293 87T154 383H329Q346 258 418 195T608 131Q737 131 810 219T884 462Q884 608 805 696T593 +785Q472 785 403 732L354 692L206 730Z" /> +<glyph unicode="6" horiz-adv-x="1150" d="M847 1457V1300H813Q597 1296 469 1172T321 823Q436 955 635 955Q825 955 938 821T1052 475Q1052 250 930 115T601 -20Q392 -20 262 140T132 554V625Q132 1027 303 1239T814 1457H847ZM604 801Q509 801 429 744T318 601V533Q318 +353 399 243T601 133Q726 133 797 225T869 466Q869 616 797 708T604 801Z" /> +<glyph unicode="7" horiz-adv-x="1150" d="M1061 1352L458 0H264L865 1304H77V1456H1061V1352Z" /> +<glyph unicode="8" horiz-adv-x="1150" d="M1004 1076Q1004 967 947 882T791 749Q905 700 971 606T1038 393Q1038 204 911 92T575 -20Q365 -20 239 92T112 393Q112 511 176 606T355 750Q258 798 202 883T146 1076Q146 1260 264 1368T575 1476Q767 1476 885 1368T1004 +1076ZM853 397Q853 519 776 596T573 673T373 597T297 397T370 202T575 131Q705 131 779 202T853 397ZM575 1324Q466 1324 399 1257T331 1073Q331 962 397 894T575 825T752 893T819 1073T750 1254T575 1324Z" /> +<glyph unicode="9" horiz-adv-x="1150" d="M830 640Q772 571 692 529T515 487Q389 487 296 549T151 723T100 972Q100 1118 155 1235T313 1414T551 1476Q767 1476 891 1315T1016 874V820Q1016 395 848 200T341 -1H305V155H344Q573 159 696 274T830 640ZM545 640Q638 +640 716 697T831 838V912Q831 1094 752 1208T552 1322Q430 1322 356 1229T282 982Q282 833 353 737T545 640Z" /> +<glyph unicode=":" horiz-adv-x="496" d="M390 97Q390 145 418 177T504 209T590 177T620 97Q620 51 591 20T504 -11T419 20T390 97ZM135 980Q135 1028 163 1060T249 1092T335 1060T365 980Q365 934 336 903T249 872T164 903T135 980Z" /> +<glyph unicode=";" horiz-adv-x="433" d="M111 980Q111 1028 139 1060T225 1092T311 1060T341 980Q341 934 312 903T225 872T140 903T111 980ZM146 -290L41 -218Q135 -87 139 52V219H320V74Q320 -27 271 -128T146 -290Z" /> +<glyph unicode="<" horiz-adv-x="1041" d="M264 644L890 391V195L72 574V720L890 1098V902L264 644Z" /> +<glyph unicode="=" horiz-adv-x="1124" d="M986 814H152V975H986V814ZM986 399H152V559H986V399Z" /> +<glyph unicode=">" horiz-adv-x="1070" d="M795 650L134 909V1099L988 721V575L134 196V388L795 650Z" /> +<glyph unicode="?" horiz-adv-x="967" d="M357 410Q359 529 384 598T486 751L617 886Q701 981 701 1090Q701 1195 646 1254T486 1314Q384 1314 322 1260T260 1115H75Q77 1277 190 1376T486 1476Q675 1476 780 1375T886 1096Q886 921 724 751L615 643Q542 562 542 +410H357ZM349 93Q349 138 376 168T458 199T540 169T568 93T540 19T458 -11T377 18T349 93Z" /> +<glyph unicode="@" horiz-adv-x="1839" d="M1738 502Q1726 260 1618 120T1329 -20Q1142 -20 1089 148Q1035 63 966 22T822 -20Q680 -20 607 96T553 417Q568 582 628 711T784 915T985 989Q1066 989 1130 968T1274 883L1222 329Q1203 98 1350 98Q1463 98 1533 210T1609 +502Q1628 891 1465 1095T967 1299Q766 1299 610 1200T364 912T263 478Q251 230 323 48T542 -231T899 -328Q989 -328 1079 -306T1230 -249L1267 -364Q1205 -403 1103 -428T895 -453Q645 -453 465 -341T196 -17T118 478Q130 753 241 972T542 1311T971 1431Q1220 1431 +1398 1319T1663 996T1738 502ZM712 417Q698 275 738 199T867 123Q927 123 982 174T1074 320L1075 329L1121 832Q1065 861 1001 861Q884 861 808 742T712 417Z" /> +<glyph unicode="A" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538Z" /> +<glyph unicode="B" horiz-adv-x="1275" d="M169 0V1456H645Q882 1456 1001 1358T1121 1068Q1121 966 1063 888T905 766Q1023 733 1091 641T1160 420Q1160 224 1033 112T674 0H169ZM361 681V157H678Q812 157 889 226T967 418Q967 681 681 681H361ZM361 835H651Q777 +835 852 898T928 1069Q928 1189 858 1243T645 1298H361V835Z" /> +<glyph unicode="C" horiz-adv-x="1333" d="M1240 462Q1213 231 1070 106T688 -20Q430 -20 275 165T119 660V800Q119 1003 191 1157T397 1393T705 1476Q937 1476 1077 1347T1240 988H1047Q1022 1162 939 1240T705 1318Q521 1318 417 1182T312 795V654Q312 417 411 +277T688 137Q848 137 933 209T1047 462H1240Z" /> +<glyph unicode="D" horiz-adv-x="1343" d="M169 0V1456H580Q770 1456 916 1372T1141 1133T1222 777V684Q1222 478 1143 323T916 85T572 0H169ZM361 1298V157H563Q785 157 908 295T1032 688V773Q1032 1021 916 1158T585 1298H361Z" /> +<glyph unicode="E" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673Z" /> +<glyph unicode="F" horiz-adv-x="1132" d="M972 643H361V0H169V1456H1071V1298H361V800H972V643Z" /> +<glyph unicode="G" horiz-adv-x="1395" d="M1244 191Q1170 85 1038 33T729 -20Q551 -20 413 63T200 301T122 658V785Q122 1114 275 1295T707 1476Q935 1476 1074 1360T1244 1029H1052Q998 1318 708 1318Q515 1318 416 1183T315 790V671Q315 426 427 282T730 137Q838 +137 919 161T1053 242V569H716V725H1244V191Z" /> +<glyph unicode="H" horiz-adv-x="1460" d="M1288 0H1095V673H361V0H169V1456H361V830H1095V1456H1288V0Z" /> +<glyph unicode="I" horiz-adv-x="557" d="M375 0H183V1456H375V0Z" /> +<glyph unicode="J" horiz-adv-x="1130" d="M779 1456H972V425Q972 216 847 98T512 -20Q295 -20 174 91T53 402H245Q245 277 313 207T512 137Q631 137 704 212T779 422V1456Z" /> +<glyph unicode="K" horiz-adv-x="1284" d="M539 677L361 492V0H169V1456H361V736L1008 1456H1240L667 813L1285 0H1055L539 677Z" /> +<glyph unicode="L" horiz-adv-x="1102" d="M362 157H1052V0H169V1456H362V157Z" /> +<glyph unicode="M" horiz-adv-x="1788" d="M417 1456L893 268L1369 1456H1618V0H1426V567L1444 1179L966 0H819L342 1176L361 567V0H169V1456H417Z" /> +<glyph unicode="N" horiz-adv-x="1460" d="M1288 0H1095L362 1122V0H169V1456H362L1097 329V1456H1288V0Z" /> +<glyph unicode="O" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521 1311 +417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775Z" /> +<glyph unicode="P" horiz-adv-x="1292" d="M361 570V0H169V1456H706Q945 1456 1080 1334T1216 1011Q1216 799 1084 685T704 570H361ZM361 727H706Q860 727 942 799T1024 1009Q1024 1139 942 1217T717 1298H361V727Z" /> +<glyph unicode="Q" horiz-adv-x="1408" d="M1281 681Q1281 470 1214 318T1026 79L1286 -125L1155 -246L848 -2Q776 -20 696 -20Q524 -20 391 64T185 305T109 668V773Q109 983 182 1144T388 1390T694 1476Q870 1476 1003 1391T1209 1147T1281 774V681ZM1089 775Q1089 +1032 987 1171T694 1311Q513 1311 409 1173T301 788V681Q301 431 405 287T696 143T984 278T1089 667V775Z" /> +<glyph unicode="R" horiz-adv-x="1261" d="M703 589H361V0H168V1456H650Q896 1456 1028 1344T1161 1018Q1161 882 1088 781T883 630L1225 12V0H1019L703 589ZM361 746H656Q799 746 883 820T968 1018Q968 1153 888 1225T655 1298H361V746Z" /> +<glyph unicode="S" horiz-adv-x="1215" d="M598 649Q351 720 239 823T126 1079Q126 1251 263 1363T621 1476Q771 1476 888 1418T1070 1258T1135 1035H942Q942 1167 858 1242T621 1318Q479 1318 400 1256T320 1082Q320 993 395 932T652 819T936 707T1088 563T1138 +370Q1138 193 1000 87T631 -20Q481 -20 351 37T151 195T80 422H273Q273 290 370 214T631 137Q783 137 864 199T945 368T870 533T598 649Z" /> +<glyph unicode="T" horiz-adv-x="1222" d="M1175 1298H707V0H516V1298H49V1456H1175V1298Z" /> +<glyph unicode="U" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194Z" /> +<glyph unicode="V" horiz-adv-x="1303" d="M651 255L1067 1456H1277L737 0H567L28 1456H237L651 255Z" /> +<glyph unicode="W" horiz-adv-x="1817" d="M483 459L511 267L552 440L840 1456H1002L1283 440L1323 264L1354 460L1580 1456H1773L1420 0H1245L945 1061L922 1172L899 1061L588 0H413L61 1456H253L483 459Z" /> +<glyph unicode="X" horiz-adv-x="1284" d="M644 898L993 1456H1219L759 734L1230 0H1002L644 568L284 0H57L529 734L68 1456H293L644 898Z" /> +<glyph unicode="Y" horiz-adv-x="1230" d="M613 725L993 1456H1211L709 543V0H517V543L15 1456H235L613 725Z" /> +<glyph unicode="Z" horiz-adv-x="1226" d="M313 157H1146V0H86V144L884 1298H99V1456H1114V1315L313 157Z" /> +<glyph unicode="[" horiz-adv-x="543" d="M523 1512H332V-160H523V-312H146V1664H523V1512Z" /> +<glyph unicode="\" horiz-adv-x="840" d="M40 1456H216L824 -125H648L40 1456Z" /> +<glyph unicode="]" horiz-adv-x="543" d="M9 1664H387V-312H9V-160H202V1512H9V1664Z" /> +<glyph unicode="^" horiz-adv-x="856" d="M426 1211L236 729H64L363 1456H490L788 729H617L426 1211Z" /> +<glyph unicode="_" horiz-adv-x="924" d="M920 -151H4V0H920V-151Z" /> +<glyph unicode="`" horiz-adv-x="633" d="M474 1240H315L57 1534H280L474 1240Z" /> +<glyph unicode="a" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964 +751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141Z" /> +<glyph unicode="b" horiz-adv-x="1149" d="M1056 529Q1056 281 942 131T636 -20Q431 -20 319 125L310 0H140V1536H325V963Q437 1102 634 1102T943 953T1056 545V529ZM871 550Q871 739 798 842T588 945Q405 945 325 775V307Q410 137 590 137Q723 137 797 240T871 550Z" /> +<glyph unicode="c" horiz-adv-x="1072" d="M574 131Q673 131 747 191T829 341H1004Q999 248 940 164T783 30T574 -20Q353 -20 223 127T92 531V562Q92 720 150 843T316 1034T573 1102Q755 1102 875 993T1004 710H829Q821 815 750 882T573 950Q432 950 355 849T277 +555V520Q277 333 354 232T574 131Z" /> +<glyph unicode="d" horiz-adv-x="1155" d="M95 550Q95 799 213 950T522 1102Q712 1102 823 972V1536H1008V0H838L829 116Q718 -20 520 -20Q332 -20 214 134T95 536V550ZM280 529Q280 345 356 241T566 137Q742 137 823 295V792Q740 945 568 945Q432 945 356 840T280 529Z" /> +<glyph unicode="e" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378 869T284 +640H826V654Q818 795 750 872T566 950Z" /> +<glyph unicode="f" horiz-adv-x="711" d="M231 0V939H60V1082H231V1193Q231 1367 324 1462T587 1557Q651 1557 714 1540L704 1390Q657 1399 604 1399Q514 1399 465 1347T416 1196V1082H647V939H416V0H231Z" /> +<glyph unicode="g" horiz-adv-x="1149" d="M96 550Q96 803 213 952T523 1102Q721 1102 832 962L841 1082H1010V26Q1010 -184 886 -305T551 -426Q434 -426 322 -376T151 -239L247 -128Q366 -275 538 -275Q673 -275 748 -199T824 15V108Q713 -20 521 -20Q331 -20 +214 133T96 550ZM282 529Q282 346 357 242T567 137Q742 137 824 296V790Q739 945 569 945Q434 945 358 840T282 529Z" /> +<glyph unicode="h" horiz-adv-x="1128" d="M325 951Q448 1102 645 1102Q988 1102 991 715V0H806V716Q805 833 753 889T589 945Q499 945 431 897T325 771V0H140V1536H325V951Z" /> +<glyph unicode="i" horiz-adv-x="497" d="M341 0H156V1082H341V0ZM141 1369Q141 1414 168 1445T250 1476T332 1445T360 1369T332 1294T250 1264T169 1294T141 1369Z" /> +<glyph unicode="j" horiz-adv-x="489" d="M331 1082V-125Q331 -437 48 -437Q-13 -437 -65 -419V-271Q-33 -279 19 -279Q81 -279 113 -246T146 -129V1082H331ZM127 1369Q127 1413 154 1444T235 1476Q289 1476 317 1445T345 1369T317 1294T235 1264T154 1294T127 1369Z" /> +<glyph unicode="k" horiz-adv-x="1038" d="M442 501L326 380V0H141V1536H326V607L425 726L762 1082H987L566 630L1036 0H819L442 501Z" /> +<glyph unicode="l" horiz-adv-x="497" d="M341 0H156V1536H341V0Z" /> +<glyph unicode="m" horiz-adv-x="1795" d="M314 1082L319 962Q438 1102 640 1102Q867 1102 949 928Q1003 1006 1089 1054T1294 1102Q1650 1102 1656 725V0H1471V714Q1471 830 1418 887T1240 945Q1137 945 1069 884T990 718V0H804V709Q804 945 573 945Q391 945 +324 790V0H139V1082H314Z" /> +<glyph unicode="n" horiz-adv-x="1130" d="M315 1082L321 946Q445 1102 645 1102Q988 1102 991 715V0H806V716Q805 833 753 889T589 945Q499 945 431 897T325 771V0H140V1082H315Z" /> +<glyph unicode="o" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729 807 +839T582 950Q445 950 361 841T277 529Z" /> +<glyph unicode="p" horiz-adv-x="1149" d="M1054 529Q1054 282 941 131T635 -20Q438 -20 325 105V-416H140V1082H309L318 962Q431 1102 632 1102Q827 1102 940 955T1054 546V529ZM869 550Q869 733 791 839T577 945Q409 945 325 796V279Q408 131 579 131Q712 131 +790 236T869 550Z" /> +<glyph unicode="q" horiz-adv-x="1164" d="M95 550Q95 805 212 953T526 1102Q718 1102 829 973L837 1082H1007V-416H822V100Q710 -20 524 -20Q328 -20 212 132T95 537V550ZM280 529Q280 343 358 237T570 131Q735 131 822 277V807Q734 950 572 950Q438 950 359 +844T280 529Z" /> +<glyph unicode="r" horiz-adv-x="693" d="M663 916Q621 923 572 923Q390 923 325 768V0H140V1082H320L323 957Q414 1102 581 1102Q635 1102 663 1088V916Z" /> +<glyph unicode="s" horiz-adv-x="1056" d="M770 287Q770 362 714 403T517 475T294 547T172 647T132 785Q132 918 244 1010T532 1102Q716 1102 830 1007T945 764H759Q759 840 695 895T532 950Q431 950 374 906T317 791Q317 724 370 690T561 625T786 551T913 448T955 +300Q955 155 839 68T538 -20Q408 -20 308 26T152 154T95 333H280Q285 240 354 186T538 131Q643 131 706 173T770 287Z" /> +<glyph unicode="t" horiz-adv-x="669" d="M391 1344V1082H593V939H391V268Q391 203 418 171T510 138Q542 138 598 150V0Q525 -20 456 -20Q332 -20 269 55T206 268V939H9V1082H206V1344H391Z" /> +<glyph unicode="u" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107Z" /> +<glyph unicode="v" horiz-adv-x="992" d="M497 251L765 1082H954L566 0H425L33 1082H222L497 251Z" /> +<glyph unicode="w" horiz-adv-x="1539" d="M1098 255L1306 1082H1491L1176 0H1026L763 820L507 0H357L43 1082H227L440 272L692 1082H841L1098 255Z" /> +<glyph unicode="x" horiz-adv-x="1015" d="M503 687L743 1082H959L605 547L970 0H756L506 405L256 0H41L406 547L52 1082H266L503 687Z" /> +<glyph unicode="y" horiz-adv-x="969" d="M494 271L746 1082H944L509 -167Q408 -437 188 -437L153 -434L84 -421V-271L134 -275Q228 -275 280 -237T367 -98L408 12L22 1082H224L494 271Z" /> +<glyph unicode="z" horiz-adv-x="1015" d="M314 151H947V0H88V136L685 929H97V1082H917V951L314 151Z" /> +<glyph unicode="{" horiz-adv-x="693" d="M632 -366Q455 -316 366 -202T276 101V300Q276 543 64 543V688Q276 688 276 930V1138Q278 1321 365 1433T632 1597L670 1482Q461 1415 461 1133V931Q461 704 294 615Q461 525 461 296V90Q464 -185 670 -251L632 -366Z" /> +<glyph unicode="|" horiz-adv-x="499" d="M324 -270H175V1456H324V-270Z" /> +<glyph unicode="}" horiz-adv-x="693" d="M19 -251Q222 -186 229 80V300Q229 531 410 615Q229 697 229 930V1133Q229 1415 20 1482L58 1597Q235 1547 324 1435T414 1137V927Q414 688 626 688V543Q414 543 414 300V98Q414 -90 324 -203T58 -366L19 -251Z" /> +<glyph unicode="~" horiz-adv-x="1393" d="M1263 777Q1263 619 1170 511T939 402Q867 402 803 428T655 529T533 621T454 639Q376 639 334 586T292 438L131 436Q131 596 223 699T454 802Q530 802 600 770T758 658T910 567L939 565Q1015 565 1062 623T1110 776L1263 777Z" /> +<glyph unicode=" " horiz-adv-x="507" /> +<glyph unicode="¡" horiz-adv-x="499" d="M170 684H338L351 -360H157L170 684ZM358 996Q358 951 331 920T249 889T167 920T139 996T167 1071T249 1101T330 1071T358 996Z" /> +<glyph unicode="¢" horiz-adv-x="1120" d="M586 131Q686 131 760 191T842 341H1017Q1011 215 912 115T669 -12V-245H484V-11Q305 23 205 165T105 527V562Q105 774 206 916T484 1092V1318H669V1095Q819 1072 915 966T1017 710H842Q834 815 763 882T586 950Q445 +950 368 849T290 555V520Q290 333 367 232T586 131Z" /> +<glyph unicode="£" horiz-adv-x="1190" d="M449 622L457 402Q457 248 395 157H1128L1127 0H95V157H172Q212 166 237 231T264 393V401L256 622H91V779H251L242 1039Q242 1238 364 1357T687 1476Q877 1476 988 1370T1099 1087H908Q908 1194 845 1256T670 1318Q565 +1318 500 1241T435 1039L444 779H763V622H449Z" /> +<glyph unicode="¤" horiz-adv-x="1460" d="M1103 112Q944 -20 735 -20Q528 -20 369 110L235 -26L105 109L244 250Q140 406 140 608Q140 814 252 977L105 1128L235 1264L382 1114Q540 1234 735 1234Q931 1234 1090 1113L1239 1265L1371 1128L1220 974Q1330 +811 1330 608Q1330 412 1228 253L1371 109L1239 -27L1103 112ZM311 608Q311 485 368 379T524 212T735 151T946 212T1100 379T1157 608Q1157 730 1101 835T946 1001T735 1062Q622 1062 524 1002T369 836T311 608Z" /> +<glyph unicode="¥" horiz-adv-x="1240" d="M614 782L978 1456H1197L779 736H1091V611H707V446H1091V322H707V0H514V322H136V446H514V611H136V736H449L31 1456H251L614 782Z" /> +<glyph unicode="¦" horiz-adv-x="491" d="M147 -270V521H333V-270H147ZM333 698H147V1456H333V698Z" /> +<glyph unicode="§" horiz-adv-x="1256" d="M1145 431Q1145 242 959 157Q1028 108 1064 40T1100 -128Q1100 -296 970 -395T612 -495Q500 -495 400 -467T229 -382Q90 -269 90 -64L276 -62Q276 -192 366 -267T612 -343Q748 -343 831 -285T914 -130Q914 -41 843 +11T563 126Q381 174 285 229T143 362T96 551Q96 737 278 825Q212 874 177 942T141 1110Q141 1276 274 1376T630 1476Q862 1476 992 1363T1122 1045H937Q937 1170 853 1247T630 1325Q488 1325 408 1268T327 1112Q327 1043 355 1003T450 931T661 858T889 782T1030 +698T1116 585T1145 431ZM602 691Q512 715 437 742Q357 723 320 673T282 553Q282 483 309 443T402 370T611 296T797 238Q875 258 917 308T959 428Q959 516 890 570T602 691Z" /> +<glyph unicode="¨" horiz-adv-x="856" d="M102 1371Q102 1416 129 1446T211 1477T293 1447T321 1371T293 1296T211 1266T130 1296T102 1371ZM532 1369Q532 1414 559 1445T641 1476T723 1445T751 1369T723 1294T641 1264T560 1294T532 1369Z" /> +<glyph unicode="©" horiz-adv-x="1609" d="M1119 597Q1119 444 1033 364T788 283Q631 283 537 388T442 676V786Q442 962 537 1067T788 1173Q948 1173 1034 1091T1120 860H974Q974 959 927 1001T788 1044Q694 1044 640 975T586 783V670Q586 550 640 481T788 +412Q880 412 926 454T973 597H1119ZM206 729Q206 557 286 411T503 181T801 98T1098 181T1315 410T1395 729Q1395 899 1316 1044T1100 1272T801 1356Q641 1356 503 1274T286 1045T206 729ZM91 729Q91 931 184 1104T443 1376T801 1476T1158 1377T1416 1104T1510 729Q1510 +532 1420 360T1165 84T801 -21Q604 -21 439 82T182 358T91 729Z" /> +<glyph unicode="ª" horiz-adv-x="915" d="M618 705Q606 739 600 777Q524 691 396 691Q277 691 212 753T147 918Q147 1029 230 1089T486 1149H594V1201Q594 1336 470 1336Q401 1336 362 1309T322 1231L161 1243Q161 1346 247 1411T470 1476Q603 1476 680 1405T757 +1199V883Q757 786 783 705H618ZM435 828Q478 828 522 848T594 895V1037H482Q399 1036 355 1005T310 922Q310 828 435 828Z" /> +<glyph unicode="«" horiz-adv-x="961" d="M536 804L794 407H653L358 795V814L653 1203H794L536 804ZM610 548L868 151H727L432 539V558L727 947H868L610 548Z" /> +<glyph unicode="¬" horiz-adv-x="1134" d="M958 375H772V639H127V800H958V375Z" /> +<glyph unicode="­" horiz-adv-x="565" d="M525 543H37V694H525V543Z" /> +<glyph unicode="®" horiz-adv-x="1610" d="M90 729Q90 931 183 1104T442 1376T800 1476T1157 1377T1415 1104T1509 729Q1509 532 1419 360T1164 84T800 -21Q603 -21 438 82T181 358T90 729ZM205 729Q205 557 285 411T502 181T800 98Q961 98 1099 182T1315 +412T1394 729Q1394 900 1316 1044T1099 1272T800 1356Q640 1356 502 1274T285 1045T205 729ZM653 654V316H512V1165H788Q941 1165 1025 1100T1110 909Q1110 786 982 721Q1104 671 1105 517V456Q1105 370 1122 332V316H977Q963 352 963 444T960 554Q944 650 829 +654H653ZM653 782H809Q881 784 925 817T969 904Q969 977 930 1007T791 1038H653V782Z" /> +<glyph unicode="¯" horiz-adv-x="938" d="M834 1313H120V1456H834V1313Z" /> +<glyph unicode="°" horiz-adv-x="765" d="M130 1216Q130 1320 204 1398T385 1476Q489 1476 562 1399T636 1216Q636 1110 563 1035T385 960Q280 960 205 1035T130 1216ZM385 1088Q439 1088 476 1123T513 1216Q513 1274 476 1311T385 1349Q330 1349 293 1310T255 +1216T292 1125T385 1088Z" /> +<glyph unicode="±" horiz-adv-x="1094" d="M649 854H1013V703H649V289H482V703H97V854H482V1267H649V854ZM970 0H135V152H970V0Z" /> +<glyph unicode="²" horiz-adv-x="751" d="M683 667H84V775L384 1057Q493 1159 493 1228Q493 1277 461 1307T369 1338Q294 1338 259 1300T223 1205H66Q66 1319 149 1393T365 1467T574 1404T651 1230Q651 1126 544 1019L460 940L284 795H683V667Z" /> +<glyph unicode="³" horiz-adv-x="751" d="M265 1125H349Q423 1125 459 1155T495 1234Q495 1279 464 1308T362 1337Q305 1337 268 1312T230 1245H73Q73 1343 154 1404T360 1466Q497 1466 575 1406T653 1241Q653 1186 618 1141T517 1070Q666 1029 666 886Q666 +780 581 718T360 655Q228 655 145 718T62 888H220Q220 843 259 813T366 783Q436 783 472 813T509 894Q509 1007 353 1009H265V1125Z" /> +<glyph unicode="´" horiz-adv-x="642" d="M316 1534H540L272 1240H123L316 1534Z" /> +<glyph unicode="µ" horiz-adv-x="1160" d="M339 1082V449Q340 286 391 208T559 130Q758 130 820 282V1082H1006V0H839L830 115Q737 -20 567 -20Q420 -20 339 53V-416H154V1082H339Z" /> +<glyph unicode="¶" horiz-adv-x="1001" d="M646 0V520H562Q332 520 200 647T67 988Q67 1201 200 1328T563 1456H832V0H646Z" /> +<glyph unicode="·" horiz-adv-x="534" d="M147 729Q147 777 175 809T261 841T347 809T377 729Q377 682 348 651T261 619T176 650T147 729Z" /> +<glyph unicode="¸" horiz-adv-x="507" d="M285 0L273 -52Q426 -79 426 -225Q426 -322 346 -378T123 -435L116 -328Q195 -328 238 -302T282 -229Q282 -185 250 -164T120 -134L152 0H285Z" /> +<glyph unicode="¹" horiz-adv-x="751" d="M495 674H338V1275L122 1218V1346L477 1463H495V674Z" /> +<glyph unicode="º" horiz-adv-x="931" d="M122 1123Q122 1281 216 1378T464 1476Q619 1476 713 1380T807 1117V1043Q807 884 714 787T466 690T217 787T122 1049V1123ZM285 1043Q285 943 333 886T466 829Q549 829 596 886T644 1045V1123Q644 1222 596 1279T464 +1336Q383 1336 335 1281T285 1129V1043Z" /> +<glyph unicode="»" horiz-adv-x="960" d="M244 949L539 560V541L244 152H102L360 550L102 949H244ZM593 949L888 560V541L593 152H451L709 550L451 949H593Z" /> +<glyph unicode="¼" horiz-adv-x="1500" d="M458 664H301V1265L85 1208V1336L440 1453H458V664ZM443 118L339 184L1050 1322L1154 1256L443 118ZM1318 299H1425V169H1318V0H1161V169H786L780 271L1157 789H1318V299ZM938 299H1161V588L1144 560L938 299Z" /> +<glyph unicode="½" horiz-adv-x="1589" d="M399 118L295 184L1006 1322L1110 1256L399 118ZM453 664H296V1265L80 1208V1336L435 1453H453V664ZM1481 0H882V108L1182 390Q1291 492 1291 561Q1291 610 1259 640T1167 671Q1092 671 1057 633T1021 538H864Q864 +652 947 726T1163 800T1372 737T1449 563Q1449 459 1342 352L1258 273L1082 128H1481V0Z" /> +<glyph unicode="¾" horiz-adv-x="1593" d="M570 118L466 184L1177 1322L1281 1256L570 118ZM1410 299H1517V169H1410V0H1253V169H878L872 271L1249 789H1410V299ZM1030 299H1253V588L1236 560L1030 299ZM314 1126H398Q472 1126 508 1156T544 1235Q544 1280 +513 1309T411 1338Q354 1338 317 1313T279 1246H122Q122 1344 203 1405T409 1467Q546 1467 624 1407T702 1242Q702 1187 667 1142T566 1071Q715 1030 715 887Q715 781 630 719T409 656Q277 656 194 719T111 889H269Q269 844 308 814T415 784Q485 784 521 814T558 +895Q558 1008 402 1010H314V1126Z" /> +<glyph unicode="¿" horiz-adv-x="969" d="M588 680Q587 574 567 511T498 388T358 233T255 37L253 0Q253 -109 311 -166T478 -224Q578 -224 640 -168T703 -20H888Q886 -181 774 -283T478 -385Q282 -385 175 -285T68 -5Q68 168 228 343L337 456Q403 534 403 +680H588ZM596 997Q596 952 569 921T487 890T405 921T377 997Q377 1041 405 1071T487 1101T568 1071T596 997Z" /> +<glyph unicode="À" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM778 1550H619L361 1844H584L778 1550Z" /> +<glyph unicode="Á" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM763 1844H987L719 1550H570L763 1844Z" /> +<glyph unicode="Â" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM975 1572V1562H822L672 1732L523 1562H370V1574L616 1846H728L975 1572Z" /> +<glyph unicode="Ã" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM1027 1814Q1027 1706 966 1639T812 1572Q771 1572 741 1582T663 1623T593 1660T543 1667Q502 1667 473 1636T444 1555L320 +1562Q320 1669 380 1739T534 1809Q569 1809 597 1799T673 1760T746 1722T803 1713Q846 1713 874 1747T903 1826L1027 1814Z" /> +<glyph unicode="Ä" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM351 1681Q351 1726 378 1756T460 1787T542 1757T570 1681T542 1606T460 1576T379 1606T351 1681ZM781 1679Q781 1724 +808 1755T890 1786T972 1755T1000 1679T972 1604T890 1574T809 1604T781 1679Z" /> +<glyph unicode="Å" horiz-adv-x="1336" d="M973 380H363L226 0H28L584 1456H752L1309 0H1112L973 380ZM421 538H916L668 1219L421 538ZM887 1729Q887 1642 825 1584T672 1525Q580 1525 519 1584T457 1729T518 1876T672 1937T825 1876T887 1729ZM556 1729Q556 +1682 589 1648T672 1614Q720 1614 754 1647T788 1729T755 1812T672 1847Q622 1847 589 1812T556 1729Z" /> +<glyph unicode="Æ" horiz-adv-x="1914" d="M1879 0H996L981 353H417L212 0H-14L866 1456H1817V1304H1126L1146 833H1736V682H1152L1174 151H1879V0ZM518 527H974L943 1260L518 527Z" /> +<glyph unicode="Ç" horiz-adv-x="1333" d="M1240 462Q1213 231 1070 106T688 -20Q430 -20 275 165T119 660V800Q119 1003 191 1157T397 1393T705 1476Q937 1476 1077 1347T1240 988H1047Q1022 1162 939 1240T705 1318Q521 1318 417 1182T312 795V654Q312 +417 411 277T688 137Q848 137 933 209T1047 462H1240ZM751 -9L739 -61Q892 -88 892 -234Q892 -331 812 -387T589 -444L582 -337Q661 -337 704 -311T748 -238Q748 -194 716 -173T586 -143L618 -9H751Z" /> +<glyph unicode="È" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM725 1562H566L308 1856H531L725 1562Z" /> +<glyph unicode="É" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM710 1856H934L666 1562H517L710 1856Z" /> +<glyph unicode="Ê" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM922 1584V1574H769L619 1744L470 1574H317V1586L563 1858H675L922 1584Z" /> +<glyph unicode="Ë" horiz-adv-x="1164" d="M992 673H361V157H1094V0H169V1456H1084V1298H361V830H992V673ZM298 1693Q298 1738 325 1768T407 1799T489 1769T517 1693T489 1618T407 1588T326 1618T298 1693ZM728 1691Q728 1736 755 1767T837 1798T919 1767T947 +1691T919 1616T837 1586T756 1616T728 1691Z" /> +<glyph unicode="Ì" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM385 1562H226L-32 1856H191L385 1562Z" /> +<glyph unicode="Í" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM369 1856H593L325 1562H176L369 1856Z" /> +<glyph unicode="Î" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM582 1584V1574H429L279 1744L130 1574H-23V1586L223 1858H335L582 1584Z" /> +<glyph unicode="Ï" horiz-adv-x="557" d="M375 0H183V1456H375V0ZM-42 1693Q-42 1738 -15 1768T67 1799T149 1769T177 1693T149 1618T67 1588T-14 1618T-42 1693ZM388 1691Q388 1736 415 1767T497 1798T579 1767T607 1691T579 1616T497 1586T416 1616T388 1691Z" /> +<glyph unicode="Ð" horiz-adv-x="1373" d="M199 0V666H37V817H199V1456H610Q800 1456 946 1372T1171 1133T1252 777V684Q1252 478 1173 323T946 85T602 0H199ZM673 666H391V157H592Q814 157 937 294T1062 680V773Q1062 1021 946 1158T615 1298H391V817H673V666Z" /> +<glyph unicode="Ñ" horiz-adv-x="1460" d="M1288 0H1095L362 1122V0H169V1456H362L1097 329V1456H1288V0ZM1081 1814Q1081 1706 1020 1639T866 1572Q825 1572 795 1582T717 1623T647 1660T597 1667Q556 1667 527 1636T498 1555L374 1562Q374 1669 434 1739T588 +1809Q623 1809 651 1799T727 1760T800 1722T857 1713Q900 1713 928 1747T957 1826L1081 1814Z" /> +<glyph unicode="Ò" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521 +1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM812 1552H653L395 1846H618L812 1552Z" /> +<glyph unicode="Ó" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521 +1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM797 1846H1021L753 1552H604L797 1846Z" /> +<glyph unicode="Ô" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521 +1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM1009 1574V1564H856L706 1734L557 1564H404V1576L650 1848H762L1009 1574Z" /> +<glyph unicode="Õ" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521 +1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM1061 1816Q1061 1708 1000 1641T846 1574Q805 1574 775 1584T697 1625T627 1662T577 1669Q536 1669 507 1638T478 1557L354 1564Q354 1671 414 1741T568 1811Q603 1811 631 1801T707 +1762T780 1724T837 1715Q880 1715 908 1749T937 1828L1061 1816Z" /> +<glyph unicode="Ö" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q533 -20 400 64T194 305T118 668V773Q118 983 191 1144T397 1390T703 1476Q878 1476 1011 1392T1217 1147T1289 773V681ZM1098 775Q1098 1034 994 1172T703 1311Q521 +1311 417 1173T309 788V681Q309 430 414 287T705 143Q891 143 993 278T1098 667V775ZM385 1683Q385 1728 412 1758T494 1789T576 1759T604 1683T576 1608T494 1578T413 1608T385 1683ZM815 1681Q815 1726 842 1757T924 1788T1006 1757T1034 1681T1006 1606T924 +1576T843 1606T815 1681Z" /> +<glyph unicode="×" horiz-adv-x="1092" d="M89 329L419 665L91 1000L210 1123L539 788L868 1123L987 1000L659 665L989 329L870 206L539 543L208 206L89 329Z" /> +<glyph unicode="Ø" horiz-adv-x="1408" d="M1289 681Q1289 467 1217 308T1013 64T705 -20Q534 -20 403 62L306 -93H164L308 138Q118 330 118 690V773Q118 983 191 1144T397 1390T703 1476Q917 1476 1065 1351L1168 1516H1309L1150 1261Q1287 1074 1289 780V681ZM309 +681Q309 437 407 296L971 1200Q869 1311 703 1311Q521 1311 417 1173T309 788V681ZM1098 775Q1098 957 1042 1088L493 207Q584 143 705 143Q891 143 993 278T1098 667V775Z" /> +<glyph unicode="Ù" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM773 1550H614L356 1844H579L773 1550Z" /> +<glyph unicode="Ú" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM758 1844H982L714 1550H565L758 1844Z" /> +<glyph unicode="Û" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM970 1572V1562H817L667 1732L518 1562H365V1574L611 +1846H723L970 1572Z" /> +<glyph unicode="Ü" horiz-adv-x="1328" d="M1194 1456V466Q1193 260 1065 129T716 -18L665 -20Q426 -20 284 109T140 464V1456H330V470Q330 312 417 225T665 137Q828 137 914 224T1001 469V1456H1194ZM346 1681Q346 1726 373 1756T455 1787T537 1757T565 +1681T537 1606T455 1576T374 1606T346 1681ZM776 1679Q776 1724 803 1755T885 1786T967 1755T995 1679T967 1604T885 1574T804 1604T776 1679Z" /> +<glyph unicode="Ý" horiz-adv-x="1230" d="M613 725L993 1456H1211L709 543V0H517V543L15 1456H235L613 725ZM708 1844H932L664 1550H515L708 1844Z" /> +<glyph unicode="Þ" horiz-adv-x="1210" d="M352 1456V1163H631Q778 1163 888 1111T1057 961T1117 738Q1117 544 985 429T626 313H352V0H166V1456H352ZM352 1011V465H629Q771 465 851 540T931 736Q931 859 851 934T635 1011H352Z" /> +<glyph unicode="ß" horiz-adv-x="1218" d="M324 0H139V1111Q139 1319 242 1436T532 1554Q712 1554 810 1465T909 1216Q909 1091 845 990T781 819Q781 768 818 721T950 601T1087 461T1130 317Q1130 158 1029 69T745 -20Q664 -20 574 2T445 52L488 207Q537 +175 604 153T725 131Q832 131 888 178T945 307Q945 359 908 407T777 528T639 671T595 821Q595 910 664 1013T734 1201Q734 1295 682 1348T542 1402Q324 1402 324 1109V0Z" /> +<glyph unicode="à" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964 +751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM687 1240H528L270 1534H493L687 1240Z" /> +<glyph unicode="á" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964 +751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM672 1534H896L628 1240H479L672 1534Z" /> +<glyph unicode="â" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964 +751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM884 1262V1252H731L581 1422L432 1252H279V1264L525 1536H637L884 1262Z" /> +<glyph unicode="ã" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964 +751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM936 1504Q936 1396 875 1329T721 1262Q680 1262 650 1272T572 1313T502 1350T452 1357Q411 1357 382 1326T353 1245L229 1252Q229 1359 289 +1429T443 1499Q478 1499 506 1489T582 1450T655 1412T712 1403Q755 1403 783 1437T812 1516L936 1504Z" /> +<glyph unicode="ä" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964 +751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM260 1371Q260 1416 287 1446T369 1477T451 1447T479 1371T451 1296T369 1266T288 1296T260 1371ZM690 1369Q690 1414 717 1445T799 1476T881 +1445T909 1369T881 1294T799 1264T718 1294T690 1369Z" /> +<glyph unicode="å" horiz-adv-x="1114" d="M808 0Q792 32 782 114Q653 -20 474 -20Q314 -20 212 70T109 300Q109 469 237 562T599 656H779V741Q779 838 721 895T550 953Q451 953 384 903T317 782H131Q131 863 188 938T344 1058T561 1102Q748 1102 854 1009T964 +751V253Q964 104 1002 16V0H808ZM501 141Q588 141 666 186T779 303V525H634Q294 525 294 326Q294 239 352 190T501 141ZM796 1419Q796 1332 734 1274T581 1215Q489 1215 428 1274T366 1419T427 1566T581 1627T734 1566T796 1419ZM465 1419Q465 1372 498 1338T581 +1304Q629 1304 663 1337T697 1419T664 1502T581 1537Q531 1537 498 1502T465 1419Z" /> +<glyph unicode="æ" horiz-adv-x="1729" d="M1262 -20Q1001 -20 865 160Q800 74 687 27T433 -20Q266 -20 172 66T78 304Q78 461 191 548T526 635H749V720Q749 827 694 888T535 950Q430 950 360 895T290 759L106 778Q106 921 227 1011T535 1102Q650 1102 738 +1061T876 936Q939 1015 1026 1058T1218 1102Q1428 1102 1544 974T1660 612V497H932Q939 321 1026 226T1262 130Q1410 130 1531 206L1578 237L1642 101Q1484 -20 1262 -20ZM469 130Q541 130 620 167T749 258V495H521Q404 493 334 438T264 300Q264 223 317 177T469 +130ZM1218 950Q1103 950 1029 865T937 640H1475V671Q1475 803 1408 876T1218 950Z" /> +<glyph unicode="ç" horiz-adv-x="1072" d="M574 131Q673 131 747 191T829 341H1004Q999 248 940 164T783 30T574 -20Q353 -20 223 127T92 531V562Q92 720 150 843T316 1034T573 1102Q755 1102 875 993T1004 710H829Q821 815 750 882T573 950Q432 950 355 +849T277 555V520Q277 333 354 232T574 131ZM604 -9L592 -61Q745 -88 745 -234Q745 -331 665 -387T442 -444L435 -337Q514 -337 557 -311T601 -238Q601 -194 569 -173T439 -143L471 -9H604Z" /> +<glyph unicode="è" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378 +869T284 640H826V654Q818 795 750 872T566 950ZM671 1240H512L254 1534H477L671 1240Z" /> +<glyph unicode="é" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378 +869T284 640H826V654Q818 795 750 872T566 950ZM656 1534H880L612 1240H463L656 1534Z" /> +<glyph unicode="ê" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378 +869T284 640H826V654Q818 795 750 872T566 950ZM868 1262V1252H715L565 1422L416 1252H263V1264L509 1536H621L868 1262Z" /> +<glyph unicode="ë" horiz-adv-x="1085" d="M589 -20Q369 -20 231 124T93 511V545Q93 706 154 832T326 1030T566 1102Q777 1102 894 963T1011 565V488H278Q282 328 371 230T599 131Q697 131 765 171T884 277L997 189Q861 -20 589 -20ZM566 950Q454 950 378 +869T284 640H826V654Q818 795 750 872T566 950ZM244 1371Q244 1416 271 1446T353 1477T435 1447T463 1371T435 1296T353 1266T272 1296T244 1371ZM674 1369Q674 1414 701 1445T783 1476T865 1445T893 1369T865 1294T783 1264T702 1294T674 1369Z" /> +<glyph unicode="ì" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM615 1495H456L198 1789H421L615 1495Z" /> +<glyph unicode="í" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM343 1789H567L299 1495H150L343 1789Z" /> +<glyph unicode="î" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM556 1261V1251H403L253 1421L104 1251H-49V1263L197 1535H309L556 1261Z" /> +<glyph unicode="ï" horiz-adv-x="506" d="M341 0H155V1082H341V0ZM-68 1370Q-68 1415 -41 1445T41 1476T123 1446T151 1370T123 1295T41 1265T-40 1295T-68 1370ZM362 1368Q362 1413 389 1444T471 1475T553 1444T581 1368T553 1293T471 1263T390 1293T362 1368Z" /> +<glyph unicode="ð" horiz-adv-x="1200" d="M820 1301Q1069 1037 1069 628V535Q1069 377 1011 251T844 52T602 -20Q467 -20 357 44T187 221T126 467Q126 614 182 730T341 912T574 977Q737 977 858 863Q810 1058 669 1199L451 1051L378 1150L570 1281Q438 1372 +255 1421L312 1580Q551 1526 726 1387L915 1516L988 1416L820 1301ZM884 635L882 691Q849 752 780 788T618 825Q473 825 392 730T311 467Q311 327 394 229T606 131Q731 131 807 244T884 541V635Z" /> +<glyph unicode="ñ" horiz-adv-x="1130" d="M315 1082L321 946Q445 1102 645 1102Q988 1102 991 715V0H806V716Q805 833 753 889T589 945Q499 945 431 897T325 771V0H140V1082H315ZM927 1504Q927 1396 866 1329T712 1262Q671 1262 641 1272T563 1313T493 1350T443 +1357Q402 1357 373 1326T344 1245L220 1252Q220 1359 280 1429T434 1499Q469 1499 497 1489T573 1450T646 1412T703 1403Q746 1403 774 1437T803 1516L927 1504Z" /> +<glyph unicode="ò" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729 +807 839T582 950Q445 950 361 841T277 529ZM681 1240H522L264 1534H487L681 1240Z" /> +<glyph unicode="ó" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729 +807 839T582 950Q445 950 361 841T277 529ZM666 1534H890L622 1240H473L666 1534Z" /> +<glyph unicode="ô" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729 +807 839T582 950Q445 950 361 841T277 529ZM878 1262V1252H725L575 1422L426 1252H273V1264L519 1536H631L878 1262Z" /> +<glyph unicode="õ" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729 +807 839T582 950Q445 950 361 841T277 529ZM930 1504Q930 1396 869 1329T715 1262Q674 1262 644 1272T566 1313T496 1350T446 1357Q405 1357 376 1326T347 1245L223 1252Q223 1359 283 1429T437 1499Q472 1499 500 1489T576 1450T649 1412T706 1403Q749 1403 777 +1437T806 1516L930 1504Z" /> +<glyph unicode="ö" horiz-adv-x="1168" d="M91 551Q91 710 153 837T327 1033T582 1102Q803 1102 939 949T1076 542V529Q1076 371 1016 246T843 50T584 -20Q364 -20 228 133T91 538V551ZM277 529Q277 349 360 240T584 131Q725 131 808 241T891 551Q891 729 +807 839T582 950Q445 950 361 841T277 529ZM254 1371Q254 1416 281 1446T363 1477T445 1447T473 1371T445 1296T363 1266T282 1296T254 1371ZM684 1369Q684 1414 711 1445T793 1476T875 1445T903 1369T875 1294T793 1264T712 1294T684 1369Z" /> +<glyph unicode="÷" horiz-adv-x="1169" d="M1069 600H71V784H1069V600ZM461 1098Q461 1146 489 1178T575 1210T661 1178T691 1098Q691 1051 662 1020T575 989T490 1020T461 1098ZM461 281Q461 329 489 361T575 393T661 361T691 281Q691 235 662 204T575 172T490 +203T461 281Z" /> +<glyph unicode="ø" horiz-adv-x="1160" d="M91 551Q91 710 152 836T326 1032T582 1102Q692 1102 786 1060L859 1208H983L881 1003Q1076 849 1076 529Q1076 371 1014 244T840 49T584 -20Q480 -20 394 15L320 -134H196L296 69Q91 218 91 551ZM276 529Q276 335 +373 224L716 918Q654 950 582 950Q444 950 360 841T276 529ZM890 551Q890 733 803 844L463 156Q518 131 584 131Q723 131 806 240T890 535V551Z" /> +<glyph unicode="ù" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM673 1240H514L256 1534H479L673 1240Z" /> +<glyph unicode="ú" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM658 1534H882L614 1240H465L658 1534Z" /> +<glyph unicode="û" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM870 1262V1252H717L567 1422L418 1252H265V1264L511 1536H623L870 1262Z" /> +<glyph unicode="ü" horiz-adv-x="1129" d="M808 107Q700 -20 491 -20Q318 -20 228 80T136 378V1082H321V383Q321 137 521 137Q733 137 803 295V1082H988V0H812L808 107ZM246 1371Q246 1416 273 1446T355 1477T437 1447T465 1371T437 1296T355 1266T274 1296T246 +1371ZM676 1369Q676 1414 703 1445T785 1476T867 1445T895 1369T867 1294T785 1264T704 1294T676 1369Z" /> +<glyph unicode="ý" horiz-adv-x="969" d="M494 271L746 1082H944L509 -167Q408 -437 188 -437L153 -434L84 -421V-271L134 -275Q228 -275 280 -237T367 -98L408 12L22 1082H224L494 271ZM599 1534H823L555 1240H406L599 1534Z" /> +<glyph unicode="þ" horiz-adv-x="1180" d="M1063 529Q1063 282 950 131T644 -20Q447 -20 334 105V-416H149V1536H334V970Q447 1102 641 1102Q836 1102 949 955T1063 546V529ZM878 550Q878 733 800 839T586 945Q418 945 334 796V279Q417 131 588 131Q721 131 +799 236T878 550Z" /> +<glyph unicode="ÿ" horiz-adv-x="969" d="M494 271L746 1082H944L509 -167Q408 -437 188 -437L153 -434L84 -421V-271L134 -275Q228 -275 280 -237T367 -98L408 12L22 1082H224L494 271ZM187 1371Q187 1416 214 1446T296 1477T378 1447T406 1371T378 1296T296 +1266T215 1296T187 1371ZM617 1369Q617 1414 644 1445T726 1476T808 1445T836 1369T808 1294T726 1264T645 1294T617 1369Z" /> +<glyph unicode="–" horiz-adv-x="1344" d="M1421 651H419V802H1421V651Z" /> +<glyph unicode="—" horiz-adv-x="1599" d="M1737 651H401V802H1737V651Z" /> +<glyph unicode="‘" horiz-adv-x="409" d="M270 1555L376 1483Q283 1356 280 1209V1073H96V1189Q96 1291 144 1391T270 1555Z" /> +<glyph unicode="’" horiz-adv-x="409" d="M153 1046L48 1118Q141 1248 144 1392V1536H327V1406Q326 1306 278 1207T153 1046Z" /> +<glyph unicode="‚" horiz-adv-x="407" d="M141 -283L36 -210Q127 -83 130 63V181H315V81Q315 -20 266 -121T141 -283Z" /> +<glyph unicode="“" horiz-adv-x="724" d="M278 1555L384 1483Q291 1356 288 1209V1073H104V1189Q104 1291 152 1391T278 1555ZM593 1555L699 1483Q606 1356 603 1209V1073H419V1189Q419 1291 467 1391T593 1555Z" /> +<glyph unicode="”" horiz-adv-x="731" d="M165 1046L60 1118Q153 1248 156 1392V1536H339V1406Q338 1306 290 1207T165 1046ZM472 1046L367 1118Q460 1248 463 1392V1536H646V1406Q645 1306 597 1207T472 1046Z" /> +<glyph unicode="„" horiz-adv-x="705" d="M141 -301L36 -229Q127 -92 130 61V246H315V82Q315 -26 266 -131T141 -301ZM437 -301L332 -229Q423 -92 426 61V246H612V82Q612 -25 564 -129T437 -301Z" /> +<glyph unicode="•" horiz-adv-x="690" d="M138 772Q138 859 193 915T341 971Q432 971 489 917T546 769V732Q546 645 491 590T342 535Q249 535 194 590T138 734V772Z" /> +<glyph unicode="‹" horiz-adv-x="614" d="M286 550L544 153H403L108 541V560L403 949H544L286 550Z" /> +<glyph unicode="›" horiz-adv-x="614" d="M231 949L526 560V541L231 152H89L347 550L89 949H231Z" /> +</font> +</defs> +</svg> diff --git a/web/static/fonts/Roboto-regular.ttf b/web/static/fonts/Roboto-regular.ttf Binary files differnew file mode 100644 index 000000000..7b25f3ce9 --- /dev/null +++ b/web/static/fonts/Roboto-regular.ttf diff --git a/web/static/fonts/Roboto-regular.woff b/web/static/fonts/Roboto-regular.woff Binary files differnew file mode 100644 index 000000000..5e353cf47 --- /dev/null +++ b/web/static/fonts/Roboto-regular.woff diff --git a/web/static/fonts/Roboto-regular.woff2 b/web/static/fonts/Roboto-regular.woff2 Binary files differnew file mode 100644 index 000000000..d1035f9a1 --- /dev/null +++ b/web/static/fonts/Roboto-regular.woff2 diff --git a/web/static/fonts/Source-Sans-Pro-regular.eot b/web/static/fonts/Source-Sans-Pro-regular.eot Binary files differnew file mode 100644 index 000000000..5dd59e774 --- /dev/null +++ b/web/static/fonts/Source-Sans-Pro-regular.eot diff --git a/web/static/fonts/Source-Sans-Pro-regular.svg b/web/static/fonts/Source-Sans-Pro-regular.svg new file mode 100644 index 000000000..a19acae2c --- /dev/null +++ b/web/static/fonts/Source-Sans-Pro-regular.svg @@ -0,0 +1,345 @@ +<?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"> +<defs > +<font id="SourceSansPro" horiz-adv-x="455" ><font-face + font-family="Source Sans Pro" + units-per-em="1000" + panose-1="2 11 5 3 3 4 3 2 2 4" + ascent="984" + descent="-273" + alphabetic="0" /> +<glyph unicode=" " glyph-name="space" horiz-adv-x="202" /> +<glyph unicode="!" glyph-name="exclam" horiz-adv-x="289" d="M105 576L103 670H186L184 576L173 198H116L105 576ZM85 50Q85 79 102 96T145 114Q169 114 186 97T204 50Q204 23 187 6T145 -12Q120 -12 103 5T85 50Z" /> +<glyph unicode=""" glyph-name="quotedbl" horiz-adv-x="425" d="M83 598L80 690H168L165 598L149 431H99L83 598ZM259 598L256 690H344L341 598L325 431H275L259 598Z" /> +<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="497" d="M115 204H35V261H122L140 409H55V467H147L170 650H223L200 467H333L357 650H410L386 467H467V409H380L362 261H447V204H355L330 0H277L301 204H169L144 0H90L115 204ZM308 261L326 409H194L176 261H308Z" /> +<glyph unicode="$" glyph-name="dollar" horiz-adv-x="497" d="M380 524Q352 551 326 566T258 581Q212 581 185 555T158 485Q158 449 178 426T230 386T297 352T365 312T416 254T437 165Q437 93 396 47T282 -9V-110H222V-11Q174 -6 129 15T52 66L90 123Q122 95 +160 76T245 56Q301 56 328 84T356 159Q356 199 336 225T284 271T217 308T149 347T98 400T77 481Q77 548 116 592T222 648V748H282V649Q330 644 363 623T424 573L380 524Z" /> +<glyph unicode="%" glyph-name="percent" horiz-adv-x="824" d="M184 254Q116 254 76 308T35 462Q35 561 75 614T184 668Q251 668 292 615T333 462Q333 362 292 308T184 254ZM184 305Q222 305 246 344T270 462Q270 540 246 578T184 617Q145 617 121 579T97 462Q97 +384 121 345T184 305ZM202 -12L564 668H620L258 -12H202ZM641 -12Q573 -12 533 42T492 196Q492 295 532 348T641 402Q708 402 749 349T790 196Q790 96 749 42T641 -12ZM641 39Q679 39 703 78T727 196Q727 274 703 312T641 351Q602 351 578 313T554 196Q554 118 +578 79T641 39Z" /> +<glyph unicode="&" glyph-name="ampersand" horiz-adv-x="609" d="M112 175Q112 148 122 126T149 87T190 63T241 54Q275 54 306 68T366 107Q318 149 274 199T194 302Q159 274 136 244T112 175ZM189 514Q189 487 197 458T220 399Q242 414 262 429T298 461T323 +496T332 537Q332 566 318 587T270 609Q233 609 211 582T189 514ZM572 -12Q537 -2 499 16T421 63Q383 29 337 9T232 -12Q187 -12 151 1T88 39T47 96T32 170Q32 203 42 230T71 280T112 322T161 359Q141 400 130 438T118 513Q118 546 129 574T160 623T208 656T270 +668Q331 668 365 632T399 538Q399 506 386 479T352 429T305 385T251 344Q283 293 326 246T417 160Q447 201 470 249T509 354H586Q566 289 538 230T471 119Q505 96 536 80T594 56L572 -12Z" /> +<glyph unicode="'" glyph-name="quotesingle" horiz-adv-x="249" d="M83 598L80 690H168L165 598L149 431H99L83 598Z" /> +<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="303" d="M214 -176Q152 -76 117 35T82 278Q82 410 117 520T214 732L265 708Q207 612 179 503T150 278Q150 163 178 54T265 -152L214 -176V-176Z" /> +<glyph unicode=")" glyph-name="parenright" horiz-adv-x="303" d="M38 -152Q96 -56 124 53T153 278Q153 393 125 502T38 708L89 732Q151 631 186 521T221 278Q221 146 186 35T89 -176L38 -152V-152Z" /> +<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="418" d="M98 449L155 543L58 583L73 629L175 604L184 712H233L242 605L345 629L360 583L263 543L319 449L280 420L209 506L138 420L98 449Z" /> +<glyph unicode="+" glyph-name="plus" horiz-adv-x="497" d="M216 299H34V361H216V556H281V361H463V299H281V104H216V299Z" /> +<glyph unicode="," glyph-name="comma" horiz-adv-x="249" d="M47 -122Q89 -103 113 -72T137 0Q134 -1 127 -1Q103 -1 86 13T68 56Q68 83 86 98T129 114Q161 114 179 88T198 17Q198 -48 163 -96T67 -170L47 -122Z" /> +<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="311" d="M41 282H271V219H41V282Z" /> +<glyph unicode="." glyph-name="period" horiz-adv-x="249" d="M65 50Q65 79 82 96T125 114Q149 114 166 97T184 50Q184 23 167 6T125 -12Q100 -12 83 5T65 50Z" /> +<glyph unicode="/" glyph-name="slash" horiz-adv-x="350" d="M277 710H337L70 -160H10L277 710Z" /> +<glyph unicode="0" glyph-name="zero" horiz-adv-x="497" d="M249 -12Q152 -12 98 74T44 321Q44 482 98 566T249 650Q345 650 399 566T453 321Q453 160 399 74T249 -12ZM249 54Q277 54 299 69T338 117T364 200T373 321Q373 391 364 441T339 522T300 569T249 584Q221 +584 198 569T159 523T133 441T124 321Q124 181 158 118T249 54Z" /> +<glyph unicode="1" glyph-name="one" horiz-adv-x="497" d="M79 68H225V538H109V591Q153 599 185 610T244 638H307V68H439V0H79V68Z" /> +<glyph unicode="2" glyph-name="two" horiz-adv-x="497" d="M40 49Q112 121 168 179T262 286T320 377T340 458Q340 513 310 548T219 583Q179 583 145 561T83 506L36 553Q76 597 121 623T229 650Q318 650 369 599T420 462Q420 417 401 372T347 278T265 177T160 +65Q186 67 214 69T267 71H452V0H40V49Z" /> +<glyph unicode="3" glyph-name="three" horiz-adv-x="497" d="M68 132Q97 102 135 79T231 56Q289 56 326 87T363 173Q363 201 353 224T318 265T255 291T159 300V363Q210 363 244 372T300 397T331 435T340 482Q340 529 311 556T230 583Q190 583 157 565T94 518L50 +570Q87 605 131 627T233 650Q275 650 310 639T370 608T410 557T424 488Q424 430 392 393T308 336V332Q337 325 362 312T406 278T435 230T446 170Q446 128 430 94T385 37T318 1T236 -12Q198 -12 167 -5T109 15T63 44T26 78L68 132Z" /> +<glyph unicode="4" glyph-name="four" horiz-adv-x="497" d="M304 242V427Q304 453 305 488T309 550H305Q293 527 280 505T253 460L104 242H304ZM469 176H382V0H304V176H17V230L290 638H382V242H469V176Z" /> +<glyph unicode="5" glyph-name="five" horiz-adv-x="497" d="M65 129Q93 100 131 78T226 56Q255 56 280 66T325 96T355 142T366 202Q366 268 329 305T230 342Q197 342 174 332T121 303L77 331L98 638H417V567H170L153 378Q176 390 199 397T251 404Q292 404 328 +392T391 356T433 294T449 204Q449 152 431 112T383 45T315 3T234 -12Q196 -12 165 -5T108 15T62 42T25 75L65 129Z" /> +<glyph unicode="6" glyph-name="six" horiz-adv-x="497" d="M268 53Q292 53 312 63T347 91T370 135T379 193Q379 256 350 292T261 328Q231 328 196 309T128 244Q136 150 171 102T268 53ZM399 531Q379 554 352 567T294 581Q261 581 231 567T178 521T141 438T126 +310Q156 347 196 368T275 390Q358 390 407 341T457 193Q457 147 442 110T401 45T341 3T268 -12Q221 -12 181 7T112 64T65 160T48 295Q48 391 68 458T122 568T199 630T291 650Q343 650 380 631T445 582L399 531Z" /> +<glyph unicode="7" glyph-name="seven" horiz-adv-x="497" d="M177 0Q181 90 193 165T226 307T281 438T362 567H44V638H455V587Q398 515 363 449T306 315T276 170T262 0H177V0Z" /> +<glyph unicode="8" glyph-name="eight" horiz-adv-x="497" d="M115 171Q115 144 125 122T154 84T198 58T252 49Q308 49 342 80T377 161Q377 192 363 214T325 252T270 282T204 310Q166 284 141 250T115 171ZM295 348Q327 377 344 409T362 476Q362 524 333 556T251 +589Q206 589 177 561T148 486Q148 457 160 437T192 400T239 372T295 348ZM41 163Q41 194 51 220T78 268T116 306T161 335V339Q126 364 99 399T72 486Q72 523 86 553T124 604T181 638T253 650Q295 650 328 638T384 603T420 549T433 480Q433 455 425 432T404 389T376 +353T345 326V322Q366 310 386 295T421 260T446 215T456 158Q456 122 441 91T399 37T334 1T250 -12Q205 -12 167 1T101 37T57 93T41 163Z" /> +<glyph unicode="9" glyph-name="nine" horiz-adv-x="497" d="M235 310Q266 310 301 329T369 395Q361 489 325 537T228 585Q205 585 185 575T149 547T126 502T117 445Q117 382 146 346T235 310ZM97 107Q117 84 144 70T202 56Q236 56 266 70T319 116T356 201T371 +330Q341 292 301 270T221 248Q138 248 89 297T40 445Q40 491 55 528T95 593T155 635T228 650Q275 650 315 631T385 574T431 478T448 343Q448 247 428 180T374 70T297 8T205 -12Q154 -12 116 7T51 55L97 107Z" /> +<glyph unicode=":" glyph-name="colon" horiz-adv-x="249" d="M65 411Q65 440 82 457T125 475Q149 475 166 458T184 411Q184 384 167 367T125 349Q100 349 83 366T65 411ZM65 50Q65 79 82 96T125 114Q149 114 166 97T184 50Q184 23 167 6T125 -12Q100 -12 83 5T65 50Z" /> +<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="249" d="M65 411Q65 440 82 457T125 475Q149 475 166 458T184 411Q184 384 167 367T125 349Q100 349 83 366T65 411ZM47 -122Q89 -103 113 -72T137 0Q134 -1 127 -1Q103 -1 86 13T68 56Q68 83 86 98T129 +114Q161 114 179 88T198 17Q198 -48 163 -96T67 -170L47 -122Z" /> +<glyph unicode="<" glyph-name="less" horiz-adv-x="497" d="M34 365L463 533V462L252 384L118 334V330L252 280L463 202V131L34 299V365Z" /> +<glyph unicode="=" glyph-name="equal" horiz-adv-x="497" d="M34 468H463V406H34V468ZM34 511H463V449H34V511Z" /> +<glyph unicode=">" glyph-name="greater" horiz-adv-x="497" d="M463 299L34 131V202L245 280L379 330V334L245 384L34 462V533L463 365V299Z" /> +<glyph unicode="?" glyph-name="question" horiz-adv-x="425" d="M160 198Q154 237 162 268T186 326T220 376T257 421T285 467T297 517Q297 557 273 585T200 614Q167 614 138 599T85 556L38 599Q70 635 111 658T206 682Q284 682 330 640T377 522Q377 489 365 462T336 +411T299 364T263 315T237 262T232 198H160ZM139 50Q139 79 156 96T198 114Q223 114 240 97T258 50Q258 23 241 6T198 -12Q173 -12 156 5T139 50Z" /> +<glyph unicode="@" glyph-name="at" horiz-adv-x="847" d="M51 203Q51 303 84 385T175 525T308 614T468 646Q544 646 604 622T707 555T773 450T796 315Q796 249 778 200T730 117T666 66T596 49Q555 49 527 68T493 125H491Q466 96 434 77T369 57Q318 57 284 93T249 +198Q249 238 262 279T301 354T361 409T441 430Q467 430 487 419T521 382H523L534 422H589L550 222Q520 105 604 105Q628 105 651 119T694 159T726 224T738 312Q738 372 721 423T668 512T581 570T461 591Q394 591 331 564T219 486T141 365T111 206Q111 133 133 76T196 +-20T290 -79T409 -100Q455 -100 496 -88T571 -55L593 -104Q508 -155 403 -155Q329 -155 265 -132T154 -64T79 49T51 203ZM315 203Q315 155 335 134T385 113Q406 113 428 127T477 172L506 331Q492 354 477 363T442 373Q412 373 389 357T349 316T324 261T315 203Z" +/> +<glyph unicode="A" glyph-name="A" horiz-adv-x="544" d="M369 267L338 367Q320 422 304 476T272 588H268Q253 531 237 477T203 367L172 267H369ZM390 200H151L88 0H3L225 656H319L541 0H452L390 200Z" /> +<glyph unicode="B" glyph-name="B" horiz-adv-x="588" d="M90 656H285Q335 656 376 647T447 619T493 570T510 496Q510 447 482 408T396 353V349Q468 338 508 299T548 192Q548 144 530 108T479 48T400 12T299 0H90V656ZM270 376Q355 376 391 405T428 489Q428 543 +390 566T274 590H173V376H270ZM287 66Q372 66 419 97T466 196Q466 257 420 285T287 314H173V66H287Z" /> +<glyph unicode="C" glyph-name="C" horiz-adv-x="571" d="M52 328Q52 407 74 470T135 577T227 644T344 668Q404 668 449 644T523 587L476 534Q450 562 419 578T345 595Q298 595 260 577T195 524T153 440T138 330Q138 268 152 219T193 134T256 80T341 61Q389 61 +424 80T492 134L539 83Q500 38 451 13T339 -12Q277 -12 225 11T134 77T74 184T52 328Z" /> +<glyph unicode="D" glyph-name="D" horiz-adv-x="615" d="M90 656H254Q406 656 485 572T564 331Q564 253 544 192T485 88T389 23T258 0H90V656ZM248 68Q363 68 420 137T478 331Q478 456 421 522T248 588H173V68H248Z" /> +<glyph unicode="E" glyph-name="E" horiz-adv-x="527" d="M90 656H468V586H173V380H422V309H173V71H478V0H90V656Z" /> +<glyph unicode="F" glyph-name="F" horiz-adv-x="494" d="M90 656H468V586H173V364H423V294H173V0H90V656Z" /> +<glyph unicode="G" glyph-name="G" horiz-adv-x="617" d="M52 328Q52 407 74 470T137 577T233 644T354 668Q422 668 467 643T542 587L495 534Q470 560 438 577T355 595Q305 595 265 577T197 524T154 440T138 330Q138 268 152 219T194 134T262 80T356 61Q391 61 +422 71T474 100V271H335V340H550V64Q518 31 466 10T347 -12Q282 -12 228 11T135 77T74 184T52 328Z" /> +<glyph unicode="H" glyph-name="H" horiz-adv-x="652" d="M90 656H173V381H478V656H562V0H478V309H173V0H90V656Z" /> +<glyph unicode="I" glyph-name="I" horiz-adv-x="263" d="M90 656H173V0H90V656Z" /> +<glyph unicode="J" glyph-name="J" horiz-adv-x="480" d="M91 135Q113 96 141 79T204 61Q257 61 283 93T309 201V656H393V193Q393 151 383 114T351 48T295 4T212 -12Q89 -12 31 93L91 135Z" /> +<glyph unicode="K" glyph-name="K" horiz-adv-x="579" d="M90 656H173V327H176L449 656H543L338 406L575 0H482L286 341L173 208V0H90V656Z" /> +<glyph unicode="L" glyph-name="L" horiz-adv-x="486" d="M90 656H173V71H460V0H90V656Z" /> +<glyph unicode="M" glyph-name="M" horiz-adv-x="727" d="M90 656H188L315 304L363 170H367L413 304L539 656H637V0H558V361Q558 405 561 458T569 555H565L512 409L386 66H339L212 409L160 555H156Q159 511 163 458T167 361V0H90V656Z" /> +<glyph unicode="N" glyph-name="N" horiz-adv-x="647" d="M90 656H176L413 244L484 108H488Q485 158 482 211T478 317V656H557V0H471L233 413L162 548H158Q162 498 165 447T169 343V0H90V656Z" /> +<glyph unicode="O" glyph-name="O" horiz-adv-x="664" d="M332 -12Q270 -12 219 12T130 80T73 188T52 331Q52 410 72 472T130 578T218 645T332 668Q394 668 445 645T534 578T592 472T613 331Q613 252 593 189T535 81T446 12T332 -12ZM332 61Q376 61 411 80T472 +134T512 219T526 331Q526 392 512 441T473 524T412 576T332 595Q288 595 253 577T192 524T152 441T138 331Q138 269 152 220T191 135T252 80T332 61Z" /> +<glyph unicode="P" glyph-name="P" horiz-adv-x="576" d="M90 656H291Q345 656 390 646T466 614T515 554T533 463Q533 411 516 373T466 310T390 273T291 260H173V0H90V656ZM281 328Q367 328 408 360T450 463Q450 534 408 561T281 589H173V328H281Z" /> +<glyph unicode="Q" glyph-name="Q" horiz-adv-x="664" d="M138 331Q138 268 152 218T191 131T252 76T332 57Q376 57 411 76T472 131T512 217T526 331Q526 392 512 441T473 524T412 576T332 595Q288 595 253 577T192 524T152 441T138 331ZM627 -149Q612 -154 587 +-159T533 -164Q442 -164 381 -121T291 -9Q237 -2 193 25T118 96T69 199T52 331Q52 410 72 472T130 578T218 645T332 668Q394 668 445 645T534 578T592 472T613 331Q613 260 597 202T550 100T476 29T381 -8Q404 -52 446 -73T542 -94Q564 -94 580 -91T611 -84L627 +-149Z" /> +<glyph unicode="R" glyph-name="R" horiz-adv-x="581" d="M173 345H283Q360 345 401 376T442 472Q442 537 401 563T283 589H173V345ZM450 0L292 277H173V0H90V656H295Q345 656 387 647T460 615T508 558T525 472Q525 395 485 349T378 286L544 0H450Z" /> +<glyph unicode="S" glyph-name="S" horiz-adv-x="534" d="M92 143Q127 106 174 84T273 61Q338 61 374 90T410 168Q410 193 402 210T379 240T344 263T301 284L207 325Q184 335 160 349T117 383T86 430T74 494Q74 531 89 563T132 618T197 655T280 668Q339 668 389 +646T474 587L429 533Q399 562 363 578T280 595Q225 595 192 570T158 499Q158 475 167 459T193 430T228 408T267 390L360 350Q388 338 413 323T456 287T484 239T495 175Q495 136 480 102T435 43T365 3T272 -12Q203 -12 144 14T42 85L92 143Z" /> +<glyph unicode="T" glyph-name="T" horiz-adv-x="536" d="M226 586H28V656H508V586H310V0H226V586Z" /> +<glyph unicode="U" glyph-name="U" horiz-adv-x="645" d="M87 656H170V269Q170 210 182 170T214 106T263 72T323 61Q356 61 384 71T433 106T466 170T478 269V656H558V271Q558 192 540 138T491 51T416 3T323 -12Q273 -12 230 2T155 50T105 138T87 271V656Z" /> +<glyph unicode="V" glyph-name="V" horiz-adv-x="515" d="M0 656H89L194 302Q212 243 225 193T258 85H262Q280 143 294 193T325 302L430 656H515L307 0H210L0 656Z" /> +<glyph unicode="W" glyph-name="W" horiz-adv-x="786" d="M23 656H109L178 299Q187 245 197 193T216 87H220Q231 141 243 193T266 299L357 656H433L524 299Q536 247 548 194T572 87H576Q585 141 594 193T613 299L682 656H762L626 0H526L427 395Q418 433 411 469T395 +544H391Q383 506 375 470T358 395L261 0H162L23 656Z" /> +<glyph unicode="X" glyph-name="X" horiz-adv-x="513" d="M206 339L28 656H120L209 488Q222 465 233 444T260 393H264Q278 422 288 443T311 488L398 656H486L307 335L498 0H406L310 177Q297 201 284 226T254 282H250Q236 252 223 227T198 177L103 0H15L206 339Z" /> +<glyph unicode="Y" glyph-name="Y" horiz-adv-x="476" d="M196 254L-1 656H88L173 471Q189 435 204 400T236 328H240Q257 365 274 400T306 471L390 656H477L280 254V0H196V254Z" /> +<glyph unicode="Z" glyph-name="Z" horiz-adv-x="539" d="M45 50L390 586H76V656H494V607L148 71H497V0H45V50Z" /> +<glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="303" d="M94 708H273V661H156V-105H273V-152H94V708Z" /> +<glyph unicode="\" glyph-name="backslash" horiz-adv-x="350" d="M14 710H73L340 -160H281L14 710Z" /> +<glyph unicode="]" glyph-name="bracketright" horiz-adv-x="303" d="M147 -105V661H31V708H209V-152H31V-105H147Z" /> +<glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="497" d="M212 670H285L437 284H365L300 460L251 593H247L197 460L132 284H60L212 670Z" /> +<glyph unicode="_" glyph-name="underscore" horiz-adv-x="500" d="M488 -71V-126H12V-71H488Z" /> +<glyph unicode="`" glyph-name="grave" horiz-adv-x="542" d="M160 714H246L336 573H273L160 714Z" /> +<glyph unicode="a" glyph-name="a" horiz-adv-x="512" d="M58 126Q58 206 129 248T357 308Q357 331 353 353T337 392T306 419T257 430Q214 430 178 414T112 378L79 435Q113 457 162 477T270 498Q359 498 399 444T439 298V0H371L364 58H362Q327 29 287 9T201 -12Q139 +-12 99 24T58 126ZM139 132Q139 90 163 72T224 54Q259 54 290 70T357 119V254Q296 246 254 235T187 209T150 175T139 132Z" /> +<glyph unicode="b" glyph-name="b" horiz-adv-x="555" d="M82 712H164V518L162 430Q195 459 234 478T314 498Q361 498 397 481T457 431T494 353T507 251Q507 189 490 140T444 57T377 6T297 -12Q263 -12 227 3T158 48H155L148 0H82V712ZM164 108Q196 80 227 69T283 +57Q313 57 338 70T382 108T411 169T422 250Q422 290 415 323T393 379T353 416T294 429Q235 429 164 363V108Z" /> +<glyph unicode="c" glyph-name="c" horiz-adv-x="456" d="M46 242Q46 303 65 350T116 431T190 481T280 498Q328 498 362 481T422 440L381 387Q359 406 336 418T283 430Q250 430 222 417T174 378T143 319T131 242Q131 200 142 166T172 108T220 70T281 56Q316 56 +344 70T395 105L432 51Q399 22 359 5T274 -12Q226 -12 184 5T112 54T64 134T46 242Z" /> +<glyph unicode="d" glyph-name="d" horiz-adv-x="555" d="M47 242Q47 301 64 348T111 429T178 480T258 498Q300 498 331 483T394 442L390 525V712H473V0H405L398 57H395Q366 29 329 9T248 -12Q156 -12 102 54T47 242ZM132 243Q132 155 167 106T266 57Q300 57 330 +73T390 124V378Q359 406 331 417T272 429Q243 429 218 416T173 378T143 319T132 243Z" /> +<glyph unicode="e" glyph-name="e" horiz-adv-x="496" d="M46 242Q46 302 64 349T113 430T183 480T264 498Q310 498 346 482T407 436T445 364T458 270Q458 243 455 225H127Q132 146 175 100T289 54Q324 54 353 64T410 92L439 38Q407 18 368 3T279 -12Q230 -12 +188 5T114 55T64 135T46 242ZM386 279Q386 354 355 393T266 433Q240 433 217 423T174 393T143 345T126 279H386Z" /> +<glyph unicode="f" glyph-name="f" horiz-adv-x="292" d="M301 645Q274 657 246 657Q178 657 178 563V486H281V419H178V0H96V419H30V481L96 486V563Q96 638 130 681T238 724Q261 724 281 720T319 708L301 645Z" /> +<glyph unicode="g" glyph-name="g" horiz-adv-x="504" d="M117 -82Q117 -121 154 -144T258 -167Q293 -167 321 -159T370 -137T401 -105T412 -68Q412 -34 387 -21T314 -8H230Q216 -8 200 -7T167 0Q141 -19 129 -40T117 -82ZM45 -93Q45 -62 64 -34T116 17V21Q98 +32 86 51T73 100Q73 131 90 154T126 190V194Q102 214 83 247T63 325Q63 365 77 397T117 451T175 486T246 498Q266 498 283 495T315 486H484V423H384Q401 406 412 380T424 323Q424 284 410 253T372 200T316 166T246 154Q228 154 209 158T173 171Q160 160 151 147T142 +113Q142 90 160 75T228 60H322Q407 60 449 33T492 -56Q492 -90 475 -120T426 -174T349 -210T246 -224Q201 -224 164 -216T101 -190T60 -149T45 -93ZM246 209Q267 209 285 217T318 240T341 276T349 325Q349 379 319 408T246 438Q203 438 173 409T143 325Q143 298 +151 277T173 240T206 217T246 209Z" /> +<glyph unicode="h" glyph-name="h" horiz-adv-x="544" d="M82 712H164V518L161 418Q196 451 234 474T323 498Q400 498 435 450T471 308V0H389V297Q389 366 367 396T297 427Q259 427 230 408T164 352V0H82V712Z" /> +<glyph unicode="i" glyph-name="i" horiz-adv-x="246" d="M124 586Q100 586 84 601T67 639Q67 663 83 677T124 692Q148 692 164 678T181 639Q181 616 165 601T124 586ZM82 486H164V0H82V486Z" /> +<glyph unicode="j" glyph-name="j" horiz-adv-x="247" d="M83 486H165V-55Q165 -129 135 -173T32 -217Q9 -217 -9 -213T-40 -204L-23 -142Q-14 -145 -2 -147T23 -150Q59 -150 71 -125T83 -55V486ZM125 586Q101 586 85 601T68 639Q68 663 84 677T125 692Q148 692 +164 678T181 639Q181 616 165 601T125 586Z" /> +<glyph unicode="k" glyph-name="k" horiz-adv-x="495" d="M82 712H163V230H166L373 486H464L301 291L486 0H396L254 234L163 128V0H82V712Z" /> +<glyph unicode="l" glyph-name="l" horiz-adv-x="255" d="M82 712H164V92Q164 72 171 64T187 56Q191 56 194 56T205 58L216 -4Q208 -8 197 -10T169 -12Q122 -12 102 16T82 98V712Z" /> +<glyph unicode="m" glyph-name="m" horiz-adv-x="829" d="M82 486H150L157 416H160Q192 451 229 474T311 498Q367 498 398 474T445 405Q483 447 521 472T605 498Q680 498 716 450T753 308V0H671V297Q671 366 649 396T581 427Q526 427 459 352V0H377V297Q377 366 +355 396T286 427Q231 427 164 352V0H82V486Z" /> +<glyph unicode="n" glyph-name="n" horiz-adv-x="547" d="M82 486H150L157 416H160Q195 451 233 474T323 498Q400 498 435 450T471 308V0H389V297Q389 366 367 396T297 427Q259 427 230 408T164 352V0H82V486Z" /> +<glyph unicode="o" glyph-name="o" horiz-adv-x="542" d="M46 242Q46 303 64 350T114 431T185 481T271 498Q316 498 356 481T428 431T477 351T496 242Q496 182 478 135T428 55T357 5T271 -12Q226 -12 186 5T114 54T65 134T46 242ZM131 242Q131 200 141 166T169 +108T214 70T271 56Q302 56 328 69T372 107T401 166T411 242Q411 284 401 318T373 378T328 416T271 430Q240 430 214 417T170 378T141 319T131 242Z" /> +<glyph unicode="p" glyph-name="p" horiz-adv-x="555" d="M164 -41V-205H82V486H150L157 430H160Q193 458 232 478T315 498Q362 498 398 481T458 431T494 353T507 250Q507 188 490 140T444 57T377 6T297 -12Q263 -12 230 3T162 44L164 -41ZM164 108Q197 80 228 +69T283 57Q313 57 338 70T382 108T411 169T422 250Q422 290 415 323T393 379T353 416T294 429Q263 429 232 412T164 363V108Z" /> +<glyph unicode="q" glyph-name="q" horiz-adv-x="550" d="M47 242Q47 301 64 348T111 429T178 480T258 498Q300 498 332 484T397 440H399L407 486H473V-205H390V-32L394 54Q365 27 328 8T248 -12Q156 -12 102 54T47 242ZM132 243Q132 155 167 106T266 57Q300 57 +330 73T390 124V378Q359 406 331 417T272 429Q243 429 218 416T173 378T143 319T132 243Z" /> +<glyph unicode="r" glyph-name="r" horiz-adv-x="347" d="M82 486H150L157 398H160Q185 444 220 471T298 498Q327 498 350 488L334 416Q322 420 312 422T287 424Q256 424 223 399T164 312V0H82V486Z" /> +<glyph unicode="s" glyph-name="s" horiz-adv-x="419" d="M69 110Q101 84 134 68T212 52Q260 52 284 74T308 128Q308 147 298 161T273 185T237 204T197 220Q171 229 145 240T99 268T65 307T52 360Q52 389 63 414T96 458T149 487T219 498Q265 498 303 482T370 443L331 +391Q306 410 279 422T220 434Q174 434 153 413T131 364Q131 347 140 335T164 313T198 296T239 280Q265 270 291 259T339 232T373 191T387 133Q387 103 376 77T342 31T286 0T209 -12Q157 -12 110 7T28 55L69 110Z" /> +<glyph unicode="t" glyph-name="t" horiz-adv-x="338" d="M96 419H24V481L100 486L110 622H179V486H310V419H179V149Q179 104 195 80T254 55Q267 55 282 59T309 68L325 6Q305 -1 282 -6T235 -12Q196 -12 170 0T127 33T103 84T96 150V419Z" /> +<glyph unicode="u" glyph-name="u" horiz-adv-x="544" d="M75 486H158V189Q158 120 179 90T249 59Q287 59 316 78T380 141V486H462V0H394L387 76H384Q350 36 313 12T224 -12Q146 -12 111 36T75 178V486Z" /> +<glyph unicode="v" glyph-name="v" horiz-adv-x="467" d="M12 486H97L189 210Q200 174 211 138T234 67H238Q249 102 260 138T282 210L374 486H455L283 0H187L12 486Z" /> +<glyph unicode="w" glyph-name="w" horiz-adv-x="718" d="M24 486H108L180 205Q188 170 195 137T209 70H213Q221 104 229 137T246 205L321 486H401L477 205Q486 170 494 137T511 70H515Q523 104 530 137T545 205L616 486H694L564 0H464L394 261Q385 296 378 330T361 +401H357Q349 364 341 330T323 260L255 0H159L24 486Z" /> +<glyph unicode="x" glyph-name="x" horiz-adv-x="446" d="M173 254L26 486H115L180 379Q191 359 203 339T228 298H232Q243 318 254 338T276 379L335 486H421L274 245L432 0H343L272 113Q259 135 246 157T219 200H215Q202 179 190 158T166 113L100 0H14L173 254Z" /> +<glyph unicode="y" glyph-name="y" horiz-adv-x="467" d="M49 -134Q57 -136 67 -138T86 -141Q128 -141 154 -112T196 -37L207 -1L12 486H97L196 217Q207 185 219 150T243 80H247Q258 113 268 149T288 217L375 486H455L272 -40Q259 -76 243 -107T205 -160T155 -196T90 +-209Q73 -209 59 -207T33 -199L49 -134V-134Z" /> +<glyph unicode="z" glyph-name="z" horiz-adv-x="425" d="M31 44L287 419H59V486H391V442L135 67H399V0H31V44Z" /> +<glyph unicode="{" glyph-name="braceleft" horiz-adv-x="303" d="M273 -105V-152H228Q169 -152 140 -124T111 -19Q111 8 112 32T115 80T118 126T120 174Q120 189 116 202T103 227T76 245T34 252V304Q59 304 76 311T102 328T116 353T120 381Q120 432 116 476T111 +575Q111 652 140 680T228 708H273V661H246Q205 661 192 640T178 570Q178 524 181 482T184 389Q184 340 170 315T124 280V276Q156 267 170 241T184 167Q184 116 181 74T178 -14Q178 -63 191 -84T246 -105H273Z" /> +<glyph unicode="|" glyph-name="bar" horiz-adv-x="241" d="M92 750H150V-250H92V750Z" /> +<glyph unicode="}" glyph-name="braceright" horiz-adv-x="303" d="M57 -105Q98 -105 111 -84T125 -14Q125 32 123 74T120 167Q120 215 133 241T179 276V280Q147 289 134 314T120 389Q120 440 122 482T125 570Q125 619 112 640T57 661H31V708H75Q105 708 127 702T163 +680T185 640T192 575Q192 520 188 476T183 381Q183 352 201 329T269 304V252Q244 252 228 245T201 227T187 203T183 174Q183 149 184 126T187 80T190 33T192 -19Q192 -58 185 -83T164 -124T127 -145T75 -152H31V-105H57Z" /> +<glyph unicode="~" glyph-name="asciitilde" horiz-adv-x="497" d="M36 313Q63 361 96 382T161 403Q191 403 214 390T258 361T298 332T338 319Q360 319 379 333T415 380L461 346Q434 298 401 278T336 257Q306 257 283 270T239 299T199 328T159 341Q137 341 118 +327T82 280L36 313Z" /> +<glyph unicode=" " glyph-name="uni00A0" horiz-adv-x="202" /> +<glyph unicode="¡" glyph-name="exclamdown" horiz-adv-x="289" d="M184 -90L186 -184H103L105 -90L116 288H173L184 -90ZM204 436Q204 407 187 390T145 372Q120 372 103 389T85 436Q85 463 102 480T145 498Q169 498 186 481T204 436Z" /> +<glyph unicode="¢" glyph-name="cent" horiz-adv-x="497" d="M262 477Q207 464 175 420T143 310Q143 243 174 199T262 142V477ZM454 133Q425 107 389 90T314 70V-33H262V71Q217 76 180 94T117 143T76 215T61 310Q61 362 76 403T119 474T183 522T262 547V653H314V550Q358 +548 390 531T445 492L405 440Q385 458 363 469T314 482V138Q346 140 372 153T418 185L454 133Z" /> +<glyph unicode="£" glyph-name="sterling" horiz-adv-x="497" d="M453 71V0H54V50Q105 78 132 125T160 230Q160 244 158 257T153 285H53V337L120 341H138Q128 373 120 403T111 466Q111 508 124 542T162 600T221 637T297 650Q351 650 388 629T452 575L404 +528Q385 551 361 566T303 581Q249 581 221 549T192 464Q192 432 199 403T216 341H375V285H229Q231 271 232 258T234 229Q234 176 218 141T172 75V71H453Z" /> +<glyph unicode="¤" glyph-name="currency" horiz-adv-x="497" d="M26 148L90 213Q73 236 64 265T54 329Q54 364 63 393T90 446L26 512L70 557L138 487Q186 524 249 524Q278 524 307 515T359 487L427 557L471 512L406 446Q423 423 433 394T443 329Q443 294 +433 265T406 213L471 148L427 103L359 172Q336 153 307 144T249 134Q185 134 138 172L70 103L26 148ZM130 329Q130 299 139 275T165 232T203 205T249 195Q273 195 294 204T332 232T357 274T367 329Q367 359 358 383T332 426T295 453T249 463Q225 463 203 454T165 +426T140 384T130 329Z" /> +<glyph unicode="¥" glyph-name="yen" horiz-adv-x="497" d="M109 638L187 467Q202 434 216 401T247 332H251Q268 367 282 400T312 467L390 638H474L310 318H452V271H289V206H452V158H289V0H207V158H45V206H207V271H45V318H186L23 638H109Z" /> +<glyph unicode="¦" glyph-name="brokenbar" horiz-adv-x="241" d="M92 750H150V291H92V750ZM150 214V-250H92V214H150Z" /> +<glyph unicode="§" glyph-name="section" horiz-adv-x="497" d="M320 193Q349 207 364 226T380 278Q380 312 360 334T310 372T245 403T178 435Q149 419 133 399T117 348Q117 315 137 294T187 256T253 226T320 193ZM365 574Q341 594 314 607T254 620Q212 620 +194 602T175 557Q175 530 195 512T247 479T313 449T380 413T431 361T452 284Q452 236 429 207T367 155Q381 138 389 119T397 73Q397 43 385 18T352 -25T301 -53T236 -64Q182 -64 138 -45T63 7L113 52Q138 28 167 14T236 0Q276 0 298 20T321 69Q321 97 301 116T250 +150T183 179T117 215T66 266T45 343Q45 387 69 419T131 472Q116 488 108 508T99 554Q99 580 108 603T137 645T185 673T251 684Q299 684 337 667T405 627L365 574Z" /> +<glyph unicode="¨" glyph-name="dieresis" horiz-adv-x="542" d="M185 588Q163 588 150 602T136 637Q136 658 149 672T185 686Q206 686 220 672T234 637Q234 616 220 602T185 588ZM357 588Q336 588 322 602T308 637Q308 658 322 672T357 686Q379 686 392 +672T406 637Q406 616 393 602T357 588Z" /> +<glyph unicode="©" glyph-name="copyright" horiz-adv-x="744" d="M49 323Q49 399 75 460T145 564T248 630T372 653Q437 653 495 630T598 564T669 460T695 323Q695 246 669 185T599 80T496 13T372 -11Q307 -11 248 12T145 79T75 184T49 323ZM96 323Q96 257 +118 204T177 112T265 52T372 31Q429 31 479 52T566 111T626 203T648 323Q648 388 626 441T567 533T479 591T372 612Q315 612 265 592T178 533T118 442T96 323ZM198 323Q198 366 213 401T254 461T313 499T383 512Q425 512 454 496T508 455L473 416Q453 436 433 446T386 +457Q331 457 298 420T264 323Q264 257 296 219T383 180Q415 180 439 192T485 224L515 182Q487 158 456 142T380 125Q342 125 309 138T251 177T212 239T198 323Z" /> +<glyph unicode="ª" glyph-name="ordfeminine" horiz-adv-x="345" d="M136 258Q91 258 64 284T37 353Q37 406 84 433T236 471Q235 503 222 524T174 545Q148 545 121 535T73 511L50 553Q75 569 109 582T183 596Q243 596 270 561T298 462V266H248L241 303H237Q217 +285 192 272T136 258ZM154 308Q193 308 236 348V433Q159 424 129 405T98 358Q98 332 113 320T154 308Z" /> +<glyph unicode="«" glyph-name="guillemotleft" horiz-adv-x="429" d="M45 221V283L181 438L217 408L99 252L217 94L181 66L45 221ZM203 221V283L339 438L375 408L257 252L375 94L339 66L203 221Z" /> +<glyph unicode="¬" glyph-name="logicalnot" horiz-adv-x="497" d="M34 361H463V104H397V299H34V361Z" /> +<glyph unicode="­" glyph-name="uni00AD" horiz-adv-x="311" d="M41 282H271V219H41V282Z" /> +<glyph unicode="®" glyph-name="registered" horiz-adv-x="423" d="M211 319Q172 319 138 333T79 374T38 436T23 516Q23 560 38 596T78 658T138 698T211 713Q250 713 284 699T344 658T385 596T400 516Q400 472 385 436T345 374T285 334T211 319ZM211 356Q242 +356 269 367T317 400T348 450T360 516Q360 551 349 580T317 631T270 665T211 677Q179 677 152 665T106 632T75 581T63 516Q63 480 74 451T105 400T152 368T211 356ZM139 620H215Q247 620 270 606T293 555Q293 537 283 522T256 500L302 417H256L221 487H180V417H139V620ZM206 +519Q249 519 249 553Q249 568 240 577T208 586H180V519H206Z" /> +<glyph unicode="¯" glyph-name="overscore" horiz-adv-x="542" d="M148 658H394V601H148V658Z" /> +<glyph unicode="°" glyph-name="degree" horiz-adv-x="331" d="M166 429Q141 429 119 438T79 463T51 503T41 556Q41 586 51 609T78 650T118 676T166 685Q191 685 213 676T253 650T281 610T291 556Q291 527 281 504T254 464T214 438T166 429ZM166 475Q199 +475 220 498T241 556Q241 593 220 616T166 639Q133 639 112 616T91 556Q91 521 112 498T166 475Z" /> +<glyph unicode="±" glyph-name="plusminus" horiz-adv-x="497" d="M216 304H34V366H216V556H281V366H463V304H281V127H216V304ZM34 62H463V0H34V62Z" /> +<glyph unicode="²" glyph-name="two.sups" horiz-adv-x="367" d="M52 477Q97 518 132 550T190 610T225 660T237 706Q237 744 217 766T162 788Q137 788 116 772T78 731L40 766Q63 800 96 821T170 842Q229 842 264 810T300 716Q300 688 289 662T259 610T213 +555T155 495H320V440H52V477Z" /> +<glyph unicode="³" glyph-name="three.sups" horiz-adv-x="367" d="M78 537Q96 510 121 495T177 479Q209 479 232 497T255 549Q255 583 223 600T134 618V659Q185 659 212 679T240 729Q240 757 221 774T169 791Q147 791 127 778T90 744L51 778Q77 807 107 +824T179 842Q204 842 226 835T266 815T293 782T303 737Q303 702 284 679T235 641Q268 633 293 609T319 545Q319 518 308 497T278 460T234 436T180 428Q132 428 95 449T35 504L78 537Z" /> +<glyph unicode="´" glyph-name="acute" horiz-adv-x="542" d="M269 573H206L296 714H382L269 573Z" /> +<glyph unicode="µ" glyph-name="uni00B5" horiz-adv-x="550" d="M82 486H164V189Q164 120 186 90T256 59Q294 59 322 78T386 141V486H468V0H400L393 76H391Q362 37 328 15T251 -8Q222 -8 199 0T159 35L164 -55V-200H82V486Z" /> +<glyph unicode="¶" glyph-name="paragraph" horiz-adv-x="560" d="M380 656H464V-80H380V656ZM293 226Q239 226 193 238T113 277T60 345T41 443Q41 502 59 542T109 608T186 645T282 656H326V226H293Z" /> +<glyph unicode="·" glyph-name="middot" horiz-adv-x="249" d="M65 321Q65 350 82 367T125 385Q149 385 166 368T184 321Q184 294 167 277T125 259Q100 259 83 276T65 321Z" /> +<glyph unicode="¸" glyph-name="cedilla" horiz-adv-x="542" d="M258 3H311L286 -50Q310 -58 327 -74T345 -121Q345 -143 333 -159T301 -186T255 -203T200 -213L192 -172Q232 -167 256 -156T281 -124Q281 -104 265 -94T218 -75L258 3Z" /> +<glyph unicode="¹" glyph-name="one.sups" horiz-adv-x="367" d="M172 748H87V790Q120 796 142 805T184 830H236V440H172V748Z" /> +<glyph unicode="º" glyph-name="ordmasculine" horiz-adv-x="365" d="M182 258Q151 258 124 269T75 302T42 355T30 427Q30 467 42 498T75 551T123 584T182 596Q213 596 240 585T289 552T322 499T334 427Q334 387 322 356T289 303T241 270T182 258ZM182 309Q224 +309 247 341T270 427Q270 481 247 513T182 545Q140 545 117 513T93 427Q93 374 116 342T182 309Z" /> +<glyph unicode="»" glyph-name="guillemotright" horiz-adv-x="429" d="M172 252L54 408L89 438L226 283V221L89 66L54 94L172 252ZM330 252L212 408L247 438L384 283V221L247 66L212 94L330 252Z" /> +<glyph unicode="¼" glyph-name="onequarter" horiz-adv-x="781" d="M149 574H64V616Q97 622 119 631T161 656H213V266H149V574ZM180 -12L542 668H598L236 -12H180ZM633 150V220L637 329H633L583 248L522 150H633ZM749 104H691V0H633V104H455V137L619 390H691V150H749V104Z" +/> +<glyph unicode="½" glyph-name="onehalf" horiz-adv-x="808" d="M149 574H64V616Q97 622 119 631T161 656H213V266H149V574ZM159 -12L521 668H577L215 -12H159ZM493 37Q538 78 573 110T631 170T666 220T678 266Q678 304 658 326T603 348Q578 348 557 332T519 +291L481 326Q504 360 537 381T611 402Q670 402 705 370T741 276Q741 248 730 222T700 170T654 115T596 55H761V0H493V37Z" /> +<glyph unicode="¾" glyph-name="threequarters" horiz-adv-x="796" d="M78 363Q96 336 121 321T177 305Q209 305 232 323T255 375Q255 409 223 426T134 444V485Q185 485 212 505T240 555Q240 583 221 600T169 617Q147 617 127 604T90 570L51 604Q77 633 107 +650T179 668Q204 668 226 661T266 641T293 608T303 563Q303 528 284 505T235 467Q268 459 293 435T319 371Q319 344 308 323T278 286T234 262T180 254Q132 254 95 275T35 330L78 363ZM217 -12L579 668H635L273 -12H217ZM648 150V220L652 329H648L598 248L537 150H648ZM764 +104H706V0H648V104H470V137L634 390H706V150H764V104Z" /> +<glyph unicode="¿" glyph-name="questiondown" horiz-adv-x="425" d="M265 288Q270 249 262 218T239 160T205 110T168 65T140 19T128 -31Q128 -71 152 -99T225 -127Q258 -127 287 -112T339 -70L387 -113Q355 -148 314 -172T219 -196Q141 -196 95 -154T48 +-36Q48 -3 60 24T89 75T126 122T162 171T187 224T192 288H265ZM286 436Q286 407 269 390T227 372Q202 372 185 389T167 436Q167 463 184 480T227 498Q251 498 268 481T286 436Z" /> +<glyph unicode="À" glyph-name="Agrave" horiz-adv-x="544" d="M369 267L338 367Q320 422 304 476T272 588H268Q253 531 237 477T203 367L172 267H369ZM390 200H151L88 0H3L225 656H319L541 0H452L390 200ZM140 818H234L322 706H253L140 818Z" /> +<glyph unicode="Á" glyph-name="Aacute" horiz-adv-x="544" d="M369 267L338 367Q320 422 304 476T272 588H268Q253 531 237 477T203 367L172 267H369ZM390 200H151L88 0H3L225 656H319L541 0H452L390 200ZM289 706H220L308 818H402L289 706Z" /> +<glyph unicode="Â" glyph-name="Acircumflex" horiz-adv-x="544" d="M369 267L338 367Q320 422 304 476T272 588H268Q253 531 237 477T203 367L172 267H369ZM390 200H151L88 0H3L225 656H319L541 0H452L390 200ZM135 706L231 818H311L407 706H340L273 774H269L202 +706H135Z" /> +<glyph unicode="Ã" glyph-name="Atilde" horiz-adv-x="544" d="M369 267L338 367Q320 422 304 476T272 588H268Q253 531 237 477T203 367L172 267H369ZM390 200H151L88 0H3L225 656H319L541 0H452L390 200ZM331 711Q311 711 295 719T266 737T239 755T212 +763Q198 763 187 750T172 711H126Q131 758 153 788T211 819Q231 819 247 811T276 793T303 775T330 767Q344 767 355 780T370 819H416Q411 773 389 742T331 711Z" /> +<glyph unicode="Ä" glyph-name="Adieresis" horiz-adv-x="544" d="M369 267L338 367Q320 422 304 476T272 588H268Q253 531 237 477T203 367L172 267H369ZM390 200H151L88 0H3L225 656H319L541 0H452L390 200ZM185 715Q163 715 150 729T136 764Q136 786 149 +799T185 813Q206 813 220 800T234 764Q234 743 220 729T185 715ZM357 715Q336 715 322 729T308 764Q308 786 322 799T357 813Q379 813 392 800T406 764Q406 743 393 729T357 715Z" /> +<glyph unicode="Å" glyph-name="Aring" horiz-adv-x="544" d="M369 267L338 367Q320 422 304 476T272 588H268Q253 531 237 477T203 367L172 267H369ZM390 200H151L88 0H3L225 656H319L541 0H452L390 200ZM271 699Q230 699 204 722T178 787Q178 827 204 851T271 +875Q311 875 337 851T364 787Q364 746 338 723T271 699ZM271 735Q290 735 304 748T318 787Q318 810 304 824T271 838Q251 838 237 824T223 787Q223 762 237 749T271 735Z" /> +<glyph unicode="Æ" glyph-name="AE" horiz-adv-x="822" d="M401 258V590H397Q344 483 290 376L229 258H401ZM773 71V0H401V191H195L96 0H8L352 656H763V586H485V380H717V309H485V71H773Z" /> +<glyph unicode="Ç" glyph-name="Ccedilla" horiz-adv-x="571" d="M52 328Q52 407 74 470T135 577T227 644T344 668Q404 668 449 644T523 587L476 534Q450 562 419 578T345 595Q298 595 260 577T195 524T153 440T138 330Q138 268 152 219T193 134T256 80T341 +61Q389 61 424 80T492 134L539 83Q500 38 451 13T339 -12Q277 -12 225 11T134 77T74 184T52 328ZM324 3H377L352 -50Q376 -58 393 -74T411 -121Q411 -143 399 -159T367 -186T321 -203T266 -213L258 -172Q298 -167 322 -156T347 -124Q347 -104 331 -94T284 -75L324 +3Z" /> +<glyph unicode="È" glyph-name="Egrave" horiz-adv-x="527" d="M90 656H468V586H173V380H422V309H173V71H478V0H90V656ZM153 818H247L335 706H266L153 818Z" /> +<glyph unicode="É" glyph-name="Eacute" horiz-adv-x="527" d="M90 656H468V586H173V380H422V309H173V71H478V0H90V656ZM302 706H233L321 818H415L302 706Z" /> +<glyph unicode="Ê" glyph-name="Ecircumflex" horiz-adv-x="527" d="M90 656H468V586H173V380H422V309H173V71H478V0H90V656ZM148 706L244 818H324L420 706H353L286 774H282L215 706H148Z" /> +<glyph unicode="Ë" glyph-name="Edieresis" horiz-adv-x="527" d="M90 656H468V586H173V380H422V309H173V71H478V0H90V656ZM198 715Q176 715 163 729T149 764Q149 786 162 799T198 813Q219 813 233 800T247 764Q247 743 233 729T198 715ZM370 715Q349 715 +335 729T321 764Q321 786 335 799T370 813Q392 813 405 800T419 764Q419 743 406 729T370 715Z" /> +<glyph unicode="Ì" glyph-name="Igrave" horiz-adv-x="263" d="M90 656H173V0H90V656ZM0 818H94L182 706H113L0 818Z" /> +<glyph unicode="Í" glyph-name="Iacute" horiz-adv-x="263" d="M90 656H173V0H90V656ZM149 706H80L168 818H262L149 706Z" /> +<glyph unicode="Î" glyph-name="Icircumflex" horiz-adv-x="263" d="M90 656H173V0H90V656ZM-5 706L91 818H171L267 706H200L133 774H129L62 706H-5Z" /> +<glyph unicode="Ï" glyph-name="Idieresis" horiz-adv-x="263" d="M90 656H173V0H90V656ZM45 715Q23 715 10 729T-4 764Q-4 786 9 799T45 813Q66 813 80 800T94 764Q94 743 80 729T45 715ZM217 715Q196 715 182 729T168 764Q168 786 182 799T217 813Q239 +813 252 800T266 764Q266 743 253 729T217 715Z" /> +<glyph unicode="Ð" glyph-name="Eth" horiz-adv-x="638" d="M270 68Q385 68 442 137T500 331Q500 456 443 522T270 588H195V368H344V321H195V68H270ZM276 656Q428 656 507 572T586 331Q586 253 566 192T507 88T411 23T280 0H112V321H33V364L112 368V656H276Z" /> +<glyph unicode="Ñ" glyph-name="Ntilde" horiz-adv-x="647" d="M90 656H176L413 244L484 108H488Q485 158 482 211T478 317V656H557V0H471L233 413L162 548H158Q162 498 165 447T169 343V0H90V656ZM386 711Q366 711 350 719T321 737T294 755T267 763Q253 +763 242 750T227 711H181Q186 758 208 788T266 819Q286 819 302 811T331 793T358 775T385 767Q399 767 410 780T425 819H471Q466 773 444 742T386 711Z" /> +<glyph unicode="Ò" glyph-name="Ograve" horiz-adv-x="664" d="M332 -12Q270 -12 219 12T130 80T73 188T52 331Q52 410 72 472T130 578T218 645T332 668Q394 668 445 645T534 578T592 472T613 331Q613 252 593 189T535 81T446 12T332 -12ZM332 61Q376 61 +411 80T472 134T512 219T526 331Q526 392 512 441T473 524T412 576T332 595Q288 595 253 577T192 524T152 441T138 331Q138 269 152 220T191 135T252 80T332 61ZM201 818H295L383 706H314L201 818Z" /> +<glyph unicode="Ó" glyph-name="Oacute" horiz-adv-x="664" d="M332 -12Q270 -12 219 12T130 80T73 188T52 331Q52 410 72 472T130 578T218 645T332 668Q394 668 445 645T534 578T592 472T613 331Q613 252 593 189T535 81T446 12T332 -12ZM332 61Q376 61 +411 80T472 134T512 219T526 331Q526 392 512 441T473 524T412 576T332 595Q288 595 253 577T192 524T152 441T138 331Q138 269 152 220T191 135T252 80T332 61ZM350 706H281L369 818H463L350 706Z" /> +<glyph unicode="Ô" glyph-name="Ocircumflex" horiz-adv-x="664" d="M332 -12Q270 -12 219 12T130 80T73 188T52 331Q52 410 72 472T130 578T218 645T332 668Q394 668 445 645T534 578T592 472T613 331Q613 252 593 189T535 81T446 12T332 -12ZM332 61Q376 +61 411 80T472 134T512 219T526 331Q526 392 512 441T473 524T412 576T332 595Q288 595 253 577T192 524T152 441T138 331Q138 269 152 220T191 135T252 80T332 61ZM196 706L292 818H372L468 706H401L334 774H330L263 706H196Z" /> +<glyph unicode="Õ" glyph-name="Otilde" horiz-adv-x="664" d="M332 -12Q270 -12 219 12T130 80T73 188T52 331Q52 410 72 472T130 578T218 645T332 668Q394 668 445 645T534 578T592 472T613 331Q613 252 593 189T535 81T446 12T332 -12ZM332 61Q376 61 +411 80T472 134T512 219T526 331Q526 392 512 441T473 524T412 576T332 595Q288 595 253 577T192 524T152 441T138 331Q138 269 152 220T191 135T252 80T332 61ZM392 711Q372 711 356 719T327 737T300 755T273 763Q259 763 248 750T233 711H187Q192 758 214 788T272 +819Q292 819 308 811T337 793T364 775T391 767Q405 767 416 780T431 819H477Q472 773 450 742T392 711Z" /> +<glyph unicode="Ö" glyph-name="Odieresis" horiz-adv-x="664" d="M332 -12Q270 -12 219 12T130 80T73 188T52 331Q52 410 72 472T130 578T218 645T332 668Q394 668 445 645T534 578T592 472T613 331Q613 252 593 189T535 81T446 12T332 -12ZM332 61Q376 +61 411 80T472 134T512 219T526 331Q526 392 512 441T473 524T412 576T332 595Q288 595 253 577T192 524T152 441T138 331Q138 269 152 220T191 135T252 80T332 61ZM246 715Q224 715 211 729T197 764Q197 786 210 799T246 813Q267 813 281 800T295 764Q295 743 +281 729T246 715ZM418 715Q397 715 383 729T369 764Q369 786 383 799T418 813Q440 813 453 800T467 764Q467 743 454 729T418 715Z" /> +<glyph unicode="×" glyph-name="multiply" horiz-adv-x="497" d="M50 171L205 330L50 488L94 533L249 374L403 533L447 488L292 330L447 171L403 126L249 286L94 126L50 171Z" /> +<glyph unicode="Ø" glyph-name="Oslash" horiz-adv-x="664" d="M208 116Q233 90 265 76T335 61Q379 61 414 80T475 134T515 219T529 331Q529 379 521 419T496 491L208 116ZM462 541Q411 595 335 595Q291 595 255 577T194 524T154 441T140 331Q140 235 174 +167L462 541ZM550 561Q581 518 598 461T615 331Q615 252 595 189T537 81T448 12T335 -12Q283 -12 239 4T159 53L96 -30L50 6L120 97Q88 141 71 200T54 331Q54 410 74 472T132 578T221 645T335 668Q439 668 510 605L573 686L619 651L550 561Z" /> +<glyph unicode="Ù" glyph-name="Ugrave" horiz-adv-x="645" d="M87 656H170V269Q170 210 182 170T214 106T263 72T323 61Q356 61 384 71T433 106T466 170T478 269V656H558V271Q558 192 540 138T491 51T416 3T323 -12Q273 -12 230 2T155 50T105 138T87 271V656ZM191 +818H285L373 706H304L191 818Z" /> +<glyph unicode="Ú" glyph-name="Uacute" horiz-adv-x="645" d="M87 656H170V269Q170 210 182 170T214 106T263 72T323 61Q356 61 384 71T433 106T466 170T478 269V656H558V271Q558 192 540 138T491 51T416 3T323 -12Q273 -12 230 2T155 50T105 138T87 271V656ZM340 +706H271L359 818H453L340 706Z" /> +<glyph unicode="Û" glyph-name="Ucircumflex" horiz-adv-x="645" d="M87 656H170V269Q170 210 182 170T214 106T263 72T323 61Q356 61 384 71T433 106T466 170T478 269V656H558V271Q558 192 540 138T491 51T416 3T323 -12Q273 -12 230 2T155 50T105 138T87 +271V656ZM186 706L282 818H362L458 706H391L324 774H320L253 706H186Z" /> +<glyph unicode="Ü" glyph-name="Udieresis" horiz-adv-x="645" d="M87 656H170V269Q170 210 182 170T214 106T263 72T323 61Q356 61 384 71T433 106T466 170T478 269V656H558V271Q558 192 540 138T491 51T416 3T323 -12Q273 -12 230 2T155 50T105 138T87 +271V656ZM236 715Q214 715 201 729T187 764Q187 786 200 799T236 813Q257 813 271 800T285 764Q285 743 271 729T236 715ZM408 715Q387 715 373 729T359 764Q359 786 373 799T408 813Q430 813 443 800T457 764Q457 743 444 729T408 715Z" /> +<glyph unicode="Ý" glyph-name="Yacute" horiz-adv-x="476" d="M196 254L-1 656H88L173 471Q189 435 204 400T236 328H240Q257 365 274 400T306 471L390 656H477L280 254V0H196V254ZM256 706H187L275 818H369L256 706Z" /> +<glyph unicode="Þ" glyph-name="Thorn" horiz-adv-x="583" d="M90 656H173V546H291Q345 546 390 536T466 503T515 444T533 353Q533 301 516 263T466 199T390 162T291 150H173V0H90V656ZM281 218Q367 218 408 250T450 353Q450 424 408 451T281 478H173V218H281Z" /> +<glyph unicode="ß" glyph-name="germandbls" horiz-adv-x="576" d="M82 515Q82 609 133 665T278 722Q317 722 347 711T399 679T430 633T441 576Q441 538 427 512T396 463T364 421T350 374Q350 350 364 334T401 306T448 280T496 249T532 204T547 137Q547 105 +536 78T504 31T454 0T387 -12Q345 -12 311 1T246 37L279 95Q305 73 330 63T385 52Q427 52 448 76T469 132Q469 161 455 180T418 213T371 239T323 268T287 306T272 364Q272 398 285 422T315 468T346 513T360 568Q360 606 340 630T277 655Q223 655 194 617T164 500V0H82V515Z" +/> +<glyph unicode="à" glyph-name="agrave" horiz-adv-x="512" d="M58 126Q58 206 129 248T357 308Q357 331 353 353T337 392T306 419T257 430Q214 430 178 414T112 378L79 435Q113 457 162 477T270 498Q359 498 399 444T439 298V0H371L364 58H362Q327 29 287 +9T201 -12Q139 -12 99 24T58 126ZM139 132Q139 90 163 72T224 54Q259 54 290 70T357 119V254Q296 246 254 235T187 209T150 175T139 132ZM158 714H244L334 573H271L158 714Z" /> +<glyph unicode="á" glyph-name="aacute" horiz-adv-x="512" d="M58 126Q58 206 129 248T357 308Q357 331 353 353T337 392T306 419T257 430Q214 430 178 414T112 378L79 435Q113 457 162 477T270 498Q359 498 399 444T439 298V0H371L364 58H362Q327 29 287 +9T201 -12Q139 -12 99 24T58 126ZM139 132Q139 90 163 72T224 54Q259 54 290 70T357 119V254Q296 246 254 235T187 209T150 175T139 132ZM267 573H204L294 714H380L267 573Z" /> +<glyph unicode="â" glyph-name="acircumflex" horiz-adv-x="512" d="M58 126Q58 206 129 248T357 308Q357 331 353 353T337 392T306 419T257 430Q214 430 178 414T112 378L79 435Q113 457 162 477T270 498Q359 498 399 444T439 298V0H371L364 58H362Q327 +29 287 9T201 -12Q139 -12 99 24T58 126ZM139 132Q139 90 163 72T224 54Q259 54 290 70T357 119V254Q296 246 254 235T187 209T150 175T139 132ZM235 714H303L398 573H338L271 664H267L200 573H140L235 714Z" /> +<glyph unicode="ã" glyph-name="atilde" horiz-adv-x="512" d="M58 126Q58 206 129 248T357 308Q357 331 353 353T337 392T306 419T257 430Q214 430 178 414T112 378L79 435Q113 457 162 477T270 498Q359 498 399 444T439 298V0H371L364 58H362Q327 29 287 +9T201 -12Q139 -12 99 24T58 126ZM139 132Q139 90 163 72T224 54Q259 54 290 70T357 119V254Q296 246 254 235T187 209T150 175T139 132ZM130 579Q134 624 154 654T211 685Q230 685 246 677T275 660T301 642T325 634Q353 634 362 685H408Q404 640 384 610T327 579Q308 +579 293 587T264 604T238 622T213 630Q185 630 176 579H130V579Z" /> +<glyph unicode="ä" glyph-name="adieresis" horiz-adv-x="512" d="M58 126Q58 206 129 248T357 308Q357 331 353 353T337 392T306 419T257 430Q214 430 178 414T112 378L79 435Q113 457 162 477T270 498Q359 498 399 444T439 298V0H371L364 58H362Q327 29 +287 9T201 -12Q139 -12 99 24T58 126ZM139 132Q139 90 163 72T224 54Q259 54 290 70T357 119V254Q296 246 254 235T187 209T150 175T139 132ZM183 588Q161 588 148 602T134 637Q134 658 147 672T183 686Q204 686 218 672T232 637Q232 616 218 602T183 588ZM355 +588Q334 588 320 602T306 637Q306 658 320 672T355 686Q377 686 390 672T404 637Q404 616 391 602T355 588Z" /> +<glyph unicode="å" glyph-name="aring" horiz-adv-x="512" d="M58 126Q58 206 129 248T357 308Q357 331 353 353T337 392T306 419T257 430Q214 430 178 414T112 378L79 435Q113 457 162 477T270 498Q359 498 399 444T439 298V0H371L364 58H362Q327 29 287 +9T201 -12Q139 -12 99 24T58 126ZM139 132Q139 90 163 72T224 54Q259 54 290 70T357 119V254Q296 246 254 235T187 209T150 175T139 132ZM269 542Q228 542 202 567T176 635Q176 677 202 702T269 727Q310 727 336 702T362 635Q362 593 336 568T269 542ZM269 579Q289 +579 303 594T317 635Q317 660 303 675T269 690Q249 690 235 675T221 635Q221 609 235 594T269 579Z" /> +<glyph unicode="æ" glyph-name="ae" horiz-adv-x="785" d="M139 132Q139 90 163 72T224 54Q258 54 298 73T371 129Q363 148 358 174T352 229V254Q294 246 254 235T188 209T151 175T139 132ZM79 435Q113 457 161 477T263 498Q317 498 352 471T402 395Q431 +443 471 470T562 498Q607 498 641 482T699 436T735 364T747 269Q747 241 744 223H429Q430 185 442 154T475 101T522 67T580 55Q615 55 643 66T698 95L728 38Q696 18 658 3T570 -12Q509 -12 468 15T399 79Q349 34 299 11T201 -12Q139 -12 99 24T58 126Q58 206 129 +248T352 308Q352 331 348 353T333 392T302 419T253 430Q213 430 177 414T112 378L79 435ZM675 278Q675 353 646 393T560 433Q509 433 473 392T429 278H675Z" /> +<glyph unicode="ç" glyph-name="ccedilla" horiz-adv-x="456" d="M46 242Q46 303 65 350T116 431T190 481T280 498Q328 498 362 481T422 440L381 387Q359 406 336 418T283 430Q250 430 222 417T174 378T143 319T131 242Q131 200 142 166T172 108T220 70T281 +56Q316 56 344 70T395 105L432 51Q399 22 359 5T274 -12Q226 -12 184 5T112 54T64 134T46 242ZM253 3H306L281 -50Q305 -58 322 -74T340 -121Q340 -143 328 -159T296 -186T250 -203T195 -213L187 -172Q227 -167 251 -156T276 -124Q276 -104 260 -94T213 -75L253 +3Z" /> +<glyph unicode="è" glyph-name="egrave" horiz-adv-x="496" d="M46 242Q46 302 64 349T113 430T183 480T264 498Q310 498 346 482T407 436T445 364T458 270Q458 243 455 225H127Q132 146 175 100T289 54Q324 54 353 64T410 92L439 38Q407 18 368 3T279 -12Q230 +-12 188 5T114 55T64 135T46 242ZM386 279Q386 354 355 393T266 433Q240 433 217 423T174 393T143 345T126 279H386ZM154 714H240L330 573H267L154 714Z" /> +<glyph unicode="é" glyph-name="eacute" horiz-adv-x="496" d="M46 242Q46 302 64 349T113 430T183 480T264 498Q310 498 346 482T407 436T445 364T458 270Q458 243 455 225H127Q132 146 175 100T289 54Q324 54 353 64T410 92L439 38Q407 18 368 3T279 -12Q230 +-12 188 5T114 55T64 135T46 242ZM386 279Q386 354 355 393T266 433Q240 433 217 423T174 393T143 345T126 279H386ZM263 573H200L290 714H376L263 573Z" /> +<glyph unicode="ê" glyph-name="ecircumflex" horiz-adv-x="496" d="M46 242Q46 302 64 349T113 430T183 480T264 498Q310 498 346 482T407 436T445 364T458 270Q458 243 455 225H127Q132 146 175 100T289 54Q324 54 353 64T410 92L439 38Q407 18 368 3T279 +-12Q230 -12 188 5T114 55T64 135T46 242ZM386 279Q386 354 355 393T266 433Q240 433 217 423T174 393T143 345T126 279H386ZM231 714H299L394 573H334L267 664H263L196 573H136L231 714Z" /> +<glyph unicode="ë" glyph-name="edieresis" horiz-adv-x="496" d="M46 242Q46 302 64 349T113 430T183 480T264 498Q310 498 346 482T407 436T445 364T458 270Q458 243 455 225H127Q132 146 175 100T289 54Q324 54 353 64T410 92L439 38Q407 18 368 3T279 +-12Q230 -12 188 5T114 55T64 135T46 242ZM386 279Q386 354 355 393T266 433Q240 433 217 423T174 393T143 345T126 279H386ZM179 588Q157 588 144 602T130 637Q130 658 143 672T179 686Q200 686 214 672T228 637Q228 616 214 602T179 588ZM351 588Q330 588 316 +602T302 637Q302 658 316 672T351 686Q373 686 386 672T400 637Q400 616 387 602T351 588Z" /> +<glyph unicode="ì" glyph-name="igrave" horiz-adv-x="246" d="M82 486H164V0H82V486ZM12 714H98L188 573H125L12 714Z" /> +<glyph unicode="í" glyph-name="iacute" horiz-adv-x="246" d="M82 486H164V0H82V486ZM121 573H58L148 714H234L121 573Z" /> +<glyph unicode="î" glyph-name="icircumflex" horiz-adv-x="246" d="M82 486H164V0H82V486ZM89 714H157L252 573H192L125 664H121L54 573H-6L89 714Z" /> +<glyph unicode="ï" glyph-name="idieresis" horiz-adv-x="246" d="M82 486H164V0H82V486ZM37 588Q15 588 2 602T-12 637Q-12 658 1 672T37 686Q58 686 72 672T86 637Q86 616 72 602T37 588ZM209 588Q188 588 174 602T160 637Q160 658 174 672T209 686Q231 +686 244 672T258 637Q258 616 245 602T209 588Z" /> +<glyph unicode="ð" glyph-name="eth" horiz-adv-x="545" d="M271 56Q305 56 330 70T372 111T397 173T406 254Q406 268 406 282T404 309Q371 353 338 368T271 383Q238 383 212 371T168 337T141 286T131 222Q131 184 142 154T172 102T217 68T271 56ZM349 605Q409 +544 447 460T485 257Q485 197 470 148T426 63T358 8T269 -12Q227 -12 188 4T119 50T71 124T53 222Q53 273 69 314T112 385T177 431T259 447Q297 447 332 431T393 381Q379 443 352 489T286 573L145 500L121 541L248 606Q196 646 136 678L174 730Q210 710 245 688T312 +639L454 712L478 671L349 605Z" /> +<glyph unicode="ñ" glyph-name="ntilde" horiz-adv-x="547" d="M82 486H150L157 416H160Q195 451 233 474T323 498Q400 498 435 450T471 308V0H389V297Q389 366 367 396T297 427Q259 427 230 408T164 352V0H82V486ZM153 579Q157 624 177 654T234 685Q253 +685 269 677T298 660T324 642T348 634Q376 634 385 685H431Q427 640 407 610T350 579Q331 579 316 587T287 604T261 622T236 630Q208 630 199 579H153V579Z" /> +<glyph unicode="ò" glyph-name="ograve" horiz-adv-x="542" d="M46 242Q46 303 64 350T114 431T185 481T271 498Q316 498 356 481T428 431T477 351T496 242Q496 182 478 135T428 55T357 5T271 -12Q226 -12 186 5T114 54T65 134T46 242ZM131 242Q131 200 141 +166T169 108T214 70T271 56Q302 56 328 69T372 107T401 166T411 242Q411 284 401 318T373 378T328 416T271 430Q240 430 214 417T170 378T141 319T131 242ZM160 714H246L336 573H273L160 714Z" /> +<glyph unicode="ó" glyph-name="oacute" horiz-adv-x="542" d="M46 242Q46 303 64 350T114 431T185 481T271 498Q316 498 356 481T428 431T477 351T496 242Q496 182 478 135T428 55T357 5T271 -12Q226 -12 186 5T114 54T65 134T46 242ZM131 242Q131 200 141 +166T169 108T214 70T271 56Q302 56 328 69T372 107T401 166T411 242Q411 284 401 318T373 378T328 416T271 430Q240 430 214 417T170 378T141 319T131 242ZM269 573H206L296 714H382L269 573Z" /> +<glyph unicode="ô" glyph-name="ocircumflex" horiz-adv-x="542" d="M46 242Q46 303 64 350T114 431T185 481T271 498Q316 498 356 481T428 431T477 351T496 242Q496 182 478 135T428 55T357 5T271 -12Q226 -12 186 5T114 54T65 134T46 242ZM131 242Q131 +200 141 166T169 108T214 70T271 56Q302 56 328 69T372 107T401 166T411 242Q411 284 401 318T373 378T328 416T271 430Q240 430 214 417T170 378T141 319T131 242ZM237 714H305L400 573H340L273 664H269L202 573H142L237 714Z" /> +<glyph unicode="õ" glyph-name="otilde" horiz-adv-x="542" d="M46 242Q46 303 64 350T114 431T185 481T271 498Q316 498 356 481T428 431T477 351T496 242Q496 182 478 135T428 55T357 5T271 -12Q226 -12 186 5T114 54T65 134T46 242ZM131 242Q131 200 141 +166T169 108T214 70T271 56Q302 56 328 69T372 107T401 166T411 242Q411 284 401 318T373 378T328 416T271 430Q240 430 214 417T170 378T141 319T131 242ZM132 579Q136 624 156 654T213 685Q232 685 248 677T277 660T303 642T327 634Q355 634 364 685H410Q406 +640 386 610T329 579Q310 579 295 587T266 604T240 622T215 630Q187 630 178 579H132V579Z" /> +<glyph unicode="ö" glyph-name="odieresis" horiz-adv-x="542" d="M46 242Q46 303 64 350T114 431T185 481T271 498Q316 498 356 481T428 431T477 351T496 242Q496 182 478 135T428 55T357 5T271 -12Q226 -12 186 5T114 54T65 134T46 242ZM131 242Q131 200 +141 166T169 108T214 70T271 56Q302 56 328 69T372 107T401 166T411 242Q411 284 401 318T373 378T328 416T271 430Q240 430 214 417T170 378T141 319T131 242ZM185 588Q163 588 150 602T136 637Q136 658 149 672T185 686Q206 686 220 672T234 637Q234 616 220 +602T185 588ZM357 588Q336 588 322 602T308 637Q308 658 322 672T357 686Q379 686 392 672T406 637Q406 616 393 602T357 588Z" /> +<glyph unicode="÷" glyph-name="divide" horiz-adv-x="497" d="M249 456Q226 456 210 471T194 510Q194 533 210 548T249 563Q272 563 287 548T303 510Q303 486 288 471T249 456ZM194 150Q194 173 210 188T249 203Q272 203 287 188T303 150Q303 126 288 111T249 +96Q226 96 210 111T194 150ZM34 361H463V299H34V361Z" /> +<glyph unicode="ø" glyph-name="oslash" horiz-adv-x="542" d="M178 93Q217 54 271 54Q302 54 328 67T374 105T404 164T415 239Q415 306 391 353L178 93ZM364 392Q327 432 271 432Q240 432 214 419T168 381T138 322T127 246Q127 179 150 133L364 392ZM442 +415Q467 383 481 340T496 242Q496 182 478 135T428 55T357 5T271 -12Q192 -12 132 37L83 -23L46 6L100 71Q75 103 61 145T46 242Q46 303 64 350T114 431T185 481T271 498Q309 498 345 486T410 448L460 509L496 480L442 415Z" /> +<glyph unicode="ù" glyph-name="ugrave" horiz-adv-x="544" d="M75 486H158V189Q158 120 179 90T249 59Q287 59 316 78T380 141V486H462V0H394L387 76H384Q350 36 313 12T224 -12Q146 -12 111 36T75 178V486ZM161 714H247L337 573H274L161 714Z" /> +<glyph unicode="ú" glyph-name="uacute" horiz-adv-x="544" d="M75 486H158V189Q158 120 179 90T249 59Q287 59 316 78T380 141V486H462V0H394L387 76H384Q350 36 313 12T224 -12Q146 -12 111 36T75 178V486ZM270 573H207L297 714H383L270 573Z" /> +<glyph unicode="û" glyph-name="ucircumflex" horiz-adv-x="544" d="M75 486H158V189Q158 120 179 90T249 59Q287 59 316 78T380 141V486H462V0H394L387 76H384Q350 36 313 12T224 -12Q146 -12 111 36T75 178V486ZM238 714H306L401 573H341L274 664H270L203 +573H143L238 714Z" /> +<glyph unicode="ü" glyph-name="udieresis" horiz-adv-x="544" d="M75 486H158V189Q158 120 179 90T249 59Q287 59 316 78T380 141V486H462V0H394L387 76H384Q350 36 313 12T224 -12Q146 -12 111 36T75 178V486ZM186 588Q164 588 151 602T137 637Q137 658 +150 672T186 686Q207 686 221 672T235 637Q235 616 221 602T186 588ZM358 588Q337 588 323 602T309 637Q309 658 323 672T358 686Q380 686 393 672T407 637Q407 616 394 602T358 588Z" /> +<glyph unicode="ý" glyph-name="yacute" horiz-adv-x="467" d="M49 -134Q57 -136 67 -138T86 -141Q128 -141 154 -112T196 -37L207 -1L12 486H97L196 217Q207 185 219 150T243 80H247Q258 113 268 149T288 217L375 486H455L272 -40Q259 -76 243 -107T205 +-160T155 -196T90 -209Q73 -209 59 -207T33 -199L49 -134V-134ZM240 573H177L267 714H353L240 573Z" /> +<glyph unicode="þ" glyph-name="thorn" horiz-adv-x="555" d="M164 -205H82V712H164V518L163 435Q195 461 233 479T311 498Q359 498 395 481T457 431T494 353T507 250Q507 188 490 140T444 57T377 6T297 -12Q262 -12 229 2T163 42L164 -41V-205ZM164 108Q197 +80 228 69T283 57Q313 57 338 70T382 108T411 169T422 250Q422 290 415 323T393 379T353 416T294 429Q263 429 232 412T164 363V108Z" /> +<glyph unicode="ÿ" glyph-name="ydieresis" horiz-adv-x="467" d="M49 -134Q57 -136 67 -138T86 -141Q128 -141 154 -112T196 -37L207 -1L12 486H97L196 217Q207 185 219 150T243 80H247Q258 113 268 149T288 217L375 486H455L272 -40Q259 -76 243 -107T205 +-160T155 -196T90 -209Q73 -209 59 -207T33 -199L49 -134V-134ZM156 588Q134 588 121 602T107 637Q107 658 120 672T156 686Q177 686 191 672T205 637Q205 616 191 602T156 588ZM328 588Q307 588 293 602T279 637Q279 658 293 672T328 686Q350 686 363 672T377 +637Q377 616 364 602T328 588Z" /> +<glyph unicode="–" glyph-name="endash" horiz-adv-x="480" d="M41 280H439V223H41V280Z" /> +<glyph unicode="—" glyph-name="emdash" horiz-adv-x="800" d="M41 280H759V223H41V280Z" /> +<glyph unicode="‘" glyph-name="quoteleft" horiz-adv-x="249" d="M187 657Q149 632 130 604T111 533Q114 534 120 534Q140 534 156 521T173 483Q173 457 158 443T120 428Q90 428 74 451T57 518Q57 578 84 622T163 696L187 657Z" /> +<glyph unicode="’" glyph-name="quoteright" horiz-adv-x="249" d="M63 469Q101 494 119 522T138 594Q135 593 130 593Q109 593 93 606T77 643Q77 669 92 684T130 699Q159 699 176 676T193 608Q193 548 166 505T86 431L63 469Z" /> +<glyph unicode="‚" glyph-name="quotesinglbase" horiz-adv-x="249" d="M63 -106Q101 -81 119 -53T138 19Q135 18 130 18Q109 18 93 31T77 68Q77 94 92 109T130 124Q159 124 176 101T193 33Q193 -27 166 -70T86 -144L63 -106Z" /> +<glyph unicode="“" glyph-name="quotedblleft" horiz-adv-x="425" d="M187 657Q149 632 130 604T111 533Q114 534 120 534Q140 534 156 521T173 483Q173 457 158 443T120 428Q90 428 74 451T57 518Q57 578 84 622T163 696L187 657ZM363 657Q325 632 306 +604T287 533Q290 534 296 534Q316 534 332 521T349 483Q349 457 334 443T296 428Q266 428 250 451T233 518Q233 578 260 622T339 696L363 657Z" /> +<glyph unicode="”" glyph-name="quotedblright" horiz-adv-x="425" d="M63 469Q101 494 119 522T138 594Q135 593 130 593Q109 593 93 606T77 643Q77 669 92 684T130 699Q159 699 176 676T193 608Q193 548 166 505T86 431L63 469ZM239 469Q277 494 295 +522T314 594Q311 593 306 593Q285 593 269 606T253 643Q253 669 268 684T306 699Q335 699 352 676T369 608Q369 548 342 505T262 431L239 469Z" /> +<glyph unicode="„" glyph-name="quotedblbase" horiz-adv-x="425" d="M63 -106Q101 -81 119 -53T138 19Q135 18 130 18Q109 18 93 31T77 68Q77 94 92 109T130 124Q159 124 176 101T193 33Q193 -27 166 -70T86 -144L63 -106ZM239 -106Q277 -81 295 -53T314 +19Q311 18 306 18Q285 18 269 31T253 68Q253 94 268 109T306 124Q335 124 352 101T369 33Q369 -27 342 -70T262 -144L239 -106Z" /> +<glyph unicode="•" glyph-name="bullet" horiz-adv-x="304" d="M152 143Q129 143 109 151T74 176T49 214T40 263Q40 290 49 312T73 350T109 375T152 384Q174 384 194 375T230 351T255 313T264 263Q264 236 255 214T231 176T195 152T152 143Z" /> +<glyph unicode="‹" glyph-name="guilsinglleft" horiz-adv-x="271" d="M45 221V283L181 438L217 408L99 252L217 94L181 66L45 221Z" /> +<glyph unicode="›" glyph-name="guilsinglright" horiz-adv-x="271" d="M172 252L54 408L89 438L226 283V221L89 66L54 94L172 252Z" /> +</font> +</defs> +</svg> diff --git a/web/static/fonts/Source-Sans-Pro-regular.ttf b/web/static/fonts/Source-Sans-Pro-regular.ttf Binary files differnew file mode 100644 index 000000000..950ff8bd4 --- /dev/null +++ b/web/static/fonts/Source-Sans-Pro-regular.ttf diff --git a/web/static/fonts/Source-Sans-Pro-regular.woff b/web/static/fonts/Source-Sans-Pro-regular.woff Binary files differnew file mode 100644 index 000000000..d97a490d3 --- /dev/null +++ b/web/static/fonts/Source-Sans-Pro-regular.woff diff --git a/web/static/fonts/Source-Sans-Pro-regular.woff2 b/web/static/fonts/Source-Sans-Pro-regular.woff2 Binary files differnew file mode 100644 index 000000000..da49c62c1 --- /dev/null +++ b/web/static/fonts/Source-Sans-Pro-regular.woff2 diff --git a/web/static/fonts/Ubuntu-regular.eot b/web/static/fonts/Ubuntu-regular.eot Binary files differnew file mode 100644 index 000000000..c6fb045b8 --- /dev/null +++ b/web/static/fonts/Ubuntu-regular.eot diff --git a/web/static/fonts/Ubuntu-regular.svg b/web/static/fonts/Ubuntu-regular.svg new file mode 100644 index 000000000..a789385dc --- /dev/null +++ b/web/static/fonts/Ubuntu-regular.svg @@ -0,0 +1,1456 @@ +<?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"> +<defs > +<font id="Ubuntu" horiz-adv-x="602" ><font-face + font-family="Ubuntu" + units-per-em="1000" + panose-1="2 11 5 4 3 6 2 3 2 4" + ascent="932" + descent="-189" + alphabetic="0" /> +<glyph unicode=" " glyph-name="space" horiz-adv-x="231" /> +<glyph unicode="!" glyph-name="exclam" horiz-adv-x="276" d="M188 505Q188 421 182 353T167 216H109Q100 284 94 352T88 505V693H188V505ZM205 54Q205 27 187 7T138 -13Q107 -13 89 7T71 54Q71 81 89 101T138 121Q169 121 187 101T205 54Z" /> +<glyph unicode=""" glyph-name="quotedbl" horiz-adv-x="418" d="M169 760V710Q169 661 163 608T148 501H93Q84 554 78 607T72 711V760H169ZM346 760V710Q346 661 340 608T325 501H270Q261 554 255 607T249 711V760H346Z" /> +<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="667" d="M284 510H446L481 693H565L530 510H618V436H515L481 257H618V183H467L432 0H348L383 183H221L186 0H102L137 183H49V257H151L185 436H49V510H200L235 693H319L284 510ZM235 257H397L432 436H270L235 +257Z" /> +<glyph unicode="$" glyph-name="dollar" horiz-adv-x="564" d="M262 95Q339 95 370 119T401 182Q401 210 388 230T352 265T300 292T239 315Q209 326 180 339T127 372T90 419T75 487Q75 558 117 603T241 661V776H324V664Q368 662 406 653T466 636L447 558Q423 567 +387 576T297 586Q237 586 205 563T172 498Q172 475 181 459T209 431T251 408T306 387Q345 372 380 356T441 318T484 264T500 189Q500 118 457 75T324 20V-109H241V17Q171 19 127 32T61 58L86 133Q116 119 158 107T262 95Z" /> +<glyph unicode="%" glyph-name="percent" horiz-adv-x="858" d="M50 524Q50 569 62 603T95 660T146 696T209 708Q243 708 272 696T322 661T356 603T368 524Q368 479 356 445T323 388T272 352T209 340Q175 340 146 352T96 387T62 445T50 524ZM290 524Q290 578 269 +608T209 639Q170 639 149 609T128 524Q128 470 149 440T209 409Q248 409 269 439T290 524ZM490 169Q490 214 502 248T535 305T586 341T649 353Q683 353 712 341T762 306T796 248T808 169Q808 124 796 90T763 33T712 -3T649 -15Q615 -15 586 -3T536 32T502 90T490 +169ZM730 169Q730 223 709 253T649 284Q610 284 589 254T568 169Q568 115 589 85T649 54Q688 54 709 84T730 169ZM670 693L279 0H188L579 693H670Z" /> +<glyph unicode="&" glyph-name="ampersand" horiz-adv-x="666" d="M46 184Q46 223 58 253T90 308T138 351T194 384Q120 458 120 537Q120 577 133 609T170 663T226 697T298 709Q338 709 369 697T422 665T455 617T466 558Q466 523 455 495T424 444T379 402T326 +368L488 203Q522 266 532 343L609 333Q605 292 589 244T542 147Q577 109 606 72T655 0H557Q545 20 528 41T491 83Q450 42 396 17T272 -9Q207 -9 164 9T95 56T57 119T46 184ZM139 186Q139 168 146 147T169 109T210 80T274 68Q323 68 364 86T438 137L243 334Q225 +325 207 313T173 284T149 242T139 186ZM382 555Q382 589 360 612T298 636Q254 636 231 610T207 544Q207 479 275 417Q297 428 316 441T350 471T373 508T382 555Z" /> +<glyph unicode="'" glyph-name="quotesingle" horiz-adv-x="241" d="M169 760V710Q169 661 163 608T148 501H93Q84 554 78 607T72 711V760H169Z" /> +<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="324" d="M171 299Q171 171 208 62T317 -140L251 -185Q173 -90 126 33T78 299Q78 441 125 564T251 783L317 738Q245 645 208 536T171 299Z" /> +<glyph unicode=")" glyph-name="parenright" horiz-adv-x="324" d="M153 299Q153 427 116 536T7 738L73 783Q151 688 198 565T246 299Q246 157 199 34T73 -185L7 -140Q79 -47 116 62T153 299Z" /> +<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="480" d="M285 685Q285 643 278 605T262 525Q298 545 333 564T409 597L415 599L443 515L435 512Q395 497 355 493T273 485Q306 457 335 431T389 369L394 362L321 311L317 317Q293 353 276 388T240 462Q222 +424 205 389T163 317L159 311L86 362L91 369Q116 404 145 430T207 485Q165 488 125 492T45 512L37 515L65 599L71 597Q112 583 147 564T218 525Q210 566 203 604T195 685V693H285V685Z" /> +<glyph unicode="+" glyph-name="plus" horiz-adv-x="564" d="M53 339H242V545H322V339H511V260H322V53H242V260H53V339Z" /> +<glyph unicode="," glyph-name="comma" horiz-adv-x="246" d="M178 114Q179 106 179 99T179 83Q179 20 161 -41T110 -159L38 -136Q63 -85 71 -33T79 66Q79 79 79 91T77 114H178Z" /> +<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="299" d="M26 343H273V256H26V343Z" /> +<glyph unicode="." glyph-name="period" horiz-adv-x="246" d="M190 54Q190 27 172 7T123 -13Q92 -13 74 7T56 54Q56 81 74 101T123 121Q154 121 172 101T190 54Z" /> +<glyph unicode="/" glyph-name="slash" horiz-adv-x="384" d="M71 -185H-24L315 783H408L71 -185Z" /> +<glyph unicode="0" glyph-name="zero" horiz-adv-x="564" d="M50 347Q50 521 111 615T282 709Q391 709 452 615T514 347Q514 173 453 79T282 -15Q173 -15 112 79T50 347ZM416 347Q416 404 410 455T388 544T346 604T282 627Q244 627 218 605T177 544T155 455T148 +347Q148 290 154 239T176 150T218 90T282 67Q320 67 346 89T387 150T409 239T416 347Z" /> +<glyph unicode="1" glyph-name="one" horiz-adv-x="564" d="M93 550Q150 572 204 606T303 693H369V0H276V564Q264 553 247 541T209 518T166 497T122 480L93 550Z" /> +<glyph unicode="2" glyph-name="two" horiz-adv-x="564" d="M467 516Q467 480 453 447T414 381T360 317T300 255Q283 238 261 215T218 167T185 119T171 79H490V0H70Q69 6 69 12T69 23Q69 70 84 110T125 187T181 255T242 317Q267 341 289 364T329 411T357 460T368 +513Q368 543 359 564T333 599T296 619T250 626Q221 626 197 618T154 600T122 578T102 560L56 626Q65 636 83 650T126 678T182 700T249 709Q358 709 412 659T467 516Z" /> +<glyph unicode="3" glyph-name="three" horiz-adv-x="564" d="M226 68Q315 68 353 103T392 197Q392 235 376 261T334 302T274 324T203 331H179V407H212Q237 407 263 412T312 430T348 465T362 522Q362 550 352 570T326 603T288 621T242 627Q194 627 161 613T104 +584L68 655Q80 663 98 672T140 690T189 703T245 709Q300 709 340 696T406 658T445 600T458 527Q458 473 427 435T352 376Q379 368 404 353T447 315T477 262T489 195Q489 150 474 112T426 45T344 1T228 -15Q202 -15 175 -11T123 -1T81 11T55 21L73 102Q90 94 129 +81T226 68Z" /> +<glyph unicode="4" glyph-name="four" horiz-adv-x="564" d="M40 240Q59 284 92 342T166 463T255 585T351 693H440V253H522V177H440V0H350V177H40V240ZM350 583Q320 551 290 512T230 429T176 341T130 253H350V583Z" /> +<glyph unicode="5" glyph-name="five" horiz-adv-x="564" d="M199 426Q350 420 420 360T491 197Q491 151 476 112T429 45T349 1T235 -15Q209 -15 182 -11T132 -1T91 11T65 21L83 102Q100 94 138 81T233 68Q278 68 308 78T358 105T385 144T394 192Q394 230 381 +259T335 309T247 339T108 350Q114 399 117 442T124 526T129 607T133 693H467V614H214Q213 599 211 574T207 521T203 467T199 426Z" /> +<glyph unicode="6" glyph-name="six" horiz-adv-x="564" d="M63 278Q63 379 91 456T170 587T295 667T461 696L468 618Q409 617 361 605T274 567T210 500T171 397Q197 409 229 417T297 425Q356 425 397 407T464 360T501 292T513 211Q513 173 500 133T461 60T393 +6T296 -15Q182 -15 123 63T63 278ZM287 349Q252 349 222 343T162 323Q161 312 161 301T160 278Q160 234 166 195T187 127T229 80T295 62Q328 62 351 76T389 112T410 159T417 209Q417 277 385 313T287 349Z" /> +<glyph unicode="7" glyph-name="seven" horiz-adv-x="564" d="M163 0Q169 80 191 168T247 340T319 495T397 612H60V693H501V616Q468 578 428 512T353 363T292 187T260 0H163Z" /> +<glyph unicode="8" glyph-name="eight" horiz-adv-x="564" d="M509 180Q509 138 495 103T452 41T380 0T281 -15Q216 -15 173 3T103 50T66 111T55 175Q55 204 64 230T89 280T125 321T169 354Q71 410 71 519Q71 557 86 591T128 652T195 693T282 709Q338 709 378 +692T443 649T480 590T492 528Q492 499 484 474T461 426T428 387T389 357Q507 301 509 180ZM149 174Q149 156 155 137T178 101T219 73T282 62Q316 62 341 72T383 97T407 133T415 174Q415 206 403 230T369 272T315 302T243 324Q198 299 174 262T149 174ZM399 529Q399 +544 393 562T372 595T336 621T282 632Q250 632 228 622T191 597T171 563T164 526Q164 504 172 482T197 441T241 407T307 383Q349 408 374 441T399 529Z" /> +<glyph unicode="9" glyph-name="nine" horiz-adv-x="564" d="M501 416Q501 210 399 105T94 -2L91 76Q154 76 204 88T293 126T356 195T394 298Q368 286 335 279T267 271Q208 271 167 288T100 335T63 403T51 484Q51 521 64 561T103 634T171 688T268 709Q325 709 +368 689T441 631T486 539T501 416ZM277 347Q312 347 343 353T403 373Q404 384 404 394T404 416Q404 459 398 498T377 567T335 614T269 632Q236 632 213 618T175 583T154 536T147 486Q147 418 179 383T277 347Z" /> +<glyph unicode=":" glyph-name="colon" horiz-adv-x="246" d="M190 54Q190 27 172 7T123 -13Q92 -13 74 7T56 54Q56 81 74 101T123 121Q154 121 172 101T190 54ZM190 453Q190 426 172 406T123 386Q92 386 74 406T56 453Q56 480 74 500T123 520Q154 520 172 500T190 453Z" /> +<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="246" d="M178 114Q179 106 179 99T179 83Q179 20 161 -41T110 -159L38 -136Q63 -85 71 -33T79 66Q79 79 79 91T77 114H178ZM190 453Q190 426 172 406T123 386Q92 386 74 406T56 453Q56 480 74 500T123 +520Q154 520 172 500T190 453Z" /> +<glyph unicode="<" glyph-name="less" horiz-adv-x="564" d="M156 299L511 153L485 76L53 259V339L485 522L511 445L156 299Z" /> +<glyph unicode="=" glyph-name="equal" horiz-adv-x="564" d="M53 232H511V153H53V232ZM53 445H511V366H53V445Z" /> +<glyph unicode=">" glyph-name="greater" horiz-adv-x="564" d="M53 445L79 522L511 339V259L79 76L53 153L408 299L53 445Z" /> +<glyph unicode="?" glyph-name="question" horiz-adv-x="404" d="M174 631Q108 631 45 597L19 669Q53 687 95 698T186 709Q243 709 279 694T338 654T368 601T377 544Q377 510 364 484T332 434T290 390T248 347T216 298T203 238Q203 233 203 227T204 216H126Q122 +236 122 258Q122 290 133 316T163 364T201 406T239 446T268 488T280 536Q280 578 253 604T174 631ZM237 54Q237 27 219 7T170 -13Q139 -13 121 7T103 54Q103 81 121 101T170 121Q201 121 219 101T237 54Z" /> +<glyph unicode="@" glyph-name="at" horiz-adv-x="950" d="M690 43Q658 43 637 52T602 76Q580 64 549 56T487 47Q439 47 400 62T331 106T286 179T270 279Q270 327 285 369T329 443T401 493T498 511Q549 511 591 503T657 487V181Q657 149 668 136T697 123Q723 123 +742 141T774 188T793 253T799 328Q799 391 777 446T714 544T615 610T483 634Q410 634 349 610T244 540T176 428T151 278Q151 190 177 124T249 13T359 -54T499 -77Q558 -77 596 -70T646 -59L656 -133Q639 -139 595 -146T499 -153Q410 -153 331 -128T193 -50T100 +84T65 278Q65 386 99 467T190 601T323 682T483 709Q565 709 638 683T766 606T853 484T885 322Q885 254 870 202T828 115T766 61T690 43ZM490 124Q511 124 532 128T571 142Q568 155 567 168T566 193V428Q560 430 543 432T505 434Q434 434 399 390T364 279Q364 208 +398 166T490 124Z" /> +<glyph unicode="A" glyph-name="A" horiz-adv-x="663" d="M549 0Q532 45 517 88T486 177H172L109 0H8Q48 110 83 203T151 381T218 541T287 693H376Q412 618 445 542T511 381T580 204T655 0H549ZM458 257Q426 344 395 425T329 582Q294 507 263 426T200 257H458Z" /> +<glyph unicode="B" glyph-name="B" horiz-adv-x="643" d="M273 -6Q252 -6 228 -5T179 -2T130 3T86 11V683Q106 688 130 691T178 696T227 699T272 700Q332 700 384 691T475 661T536 604T558 518Q558 461 531 425T459 370Q520 352 556 313T592 203Q592 99 516 47T273 +-6ZM182 323V79Q193 78 208 77Q221 76 238 76T279 75Q322 75 360 80T428 100T474 139T492 202Q492 236 479 259T442 297T383 317T307 323H182ZM182 401H284Q320 401 352 406T407 424T444 458T458 511Q458 541 444 561T406 594T348 613T278 619Q241 619 220 618T182 +615V401Z" /> +<glyph unicode="C" glyph-name="C" horiz-adv-x="620" d="M384 -15Q311 -15 251 9T148 79T82 192T58 347Q58 434 84 501T156 615T261 685T389 709Q432 709 466 703T526 689T568 673T590 661L562 581Q553 587 536 594T498 608T451 619T399 624Q344 624 300 605T225 +550T178 463T161 347Q161 285 175 234T219 147T291 90T393 70Q460 70 504 84T570 109L595 29Q588 24 570 17T525 2T462 -10T384 -15Z" /> +<glyph unicode="D" glyph-name="D" horiz-adv-x="713" d="M655 347Q655 257 627 191T548 81T426 16T270 -6Q228 -6 178 -3T86 11V683Q127 693 177 696T270 700Q355 700 426 679T548 614T627 504T655 347ZM278 79Q416 79 484 149T552 347Q552 474 484 544T278 615Q237 +615 215 614T183 612V82Q192 81 214 80T278 79Z" /> +<glyph unicode="E" glyph-name="E" horiz-adv-x="571" d="M86 0V693H509V610H183V404H473V323H183V83H534V0H86Z" /> +<glyph unicode="F" glyph-name="F" horiz-adv-x="537" d="M86 0V693H504V610H183V401H468V319H183V0H86Z" /> +<glyph unicode="G" glyph-name="G" horiz-adv-x="672" d="M509 341H606V17Q594 13 572 8T520 -2T455 -10T384 -14Q311 -14 251 10T148 80T82 193T58 347Q58 434 84 501T156 615T261 685T391 709Q438 709 474 703T537 689T579 673T602 661L571 580Q542 599 494 +611T396 624Q343 624 300 605T226 550T178 463T161 347Q161 285 175 234T219 147T292 90T395 70Q437 70 466 74T509 83V341Z" /> +<glyph unicode="H" glyph-name="H" horiz-adv-x="705" d="M522 693H619V0H522V320H183V0H86V693H183V404H522V693Z" /> +<glyph unicode="I" glyph-name="I" horiz-adv-x="269" d="M86 693H183V0H86V693Z" /> +<glyph unicode="J" glyph-name="J" horiz-adv-x="500" d="M419 223Q419 173 409 130T372 55T301 4T189 -15Q155 -15 127 -10T75 4T35 22T8 41L46 118Q67 103 100 87T184 70Q256 70 289 106T322 232V693H419V223Z" /> +<glyph unicode="K" glyph-name="K" horiz-adv-x="629" d="M599 693Q568 659 529 618T448 533T363 447T284 369Q327 339 375 295T469 201T555 99T623 0H509Q479 47 440 94T358 185T270 266T183 329V0H86V693H183V387Q218 420 260 461T343 545T420 625T482 693H599Z" /> +<glyph unicode="L" glyph-name="L" horiz-adv-x="519" d="M503 84V0H86V693H183V84H503Z" /> +<glyph unicode="M" glyph-name="M" horiz-adv-x="871" d="M397 96Q387 120 371 157T335 237T295 325T254 411T219 484T192 533Q181 415 174 278T162 0H67Q71 90 76 181T87 361T101 534T118 693H203Q230 649 261 589T323 464T383 333T436 213Q460 267 489 332T549 +463T611 589T669 693H754Q788 358 805 0H710Q705 140 698 277T680 533Q670 516 654 484T618 412T578 326T537 237T502 157T475 96H397Z" /> +<glyph unicode="N" glyph-name="N" horiz-adv-x="728" d="M561 0Q539 37 511 83T449 178T381 279T310 377T242 467T181 541V0H86V693H163Q210 643 263 577T369 440T468 301T547 180V693H642V0H561Z" /> +<glyph unicode="O" glyph-name="O" horiz-adv-x="778" d="M58 347Q58 436 84 504T156 617T262 686T391 709Q458 709 517 686T622 618T693 504T720 347Q720 258 694 190T622 77T518 8T391 -15Q323 -15 263 8T157 76T85 190T58 347ZM160 347Q160 284 176 233T221 +145T293 90T389 70Q442 70 484 89T555 145T601 232T617 347Q617 410 601 461T556 549T484 604T389 624Q336 624 294 605T222 549T176 462T160 347Z" /> +<glyph unicode="P" glyph-name="P" horiz-adv-x="608" d="M270 700Q416 700 494 645T573 479Q573 419 552 377T490 308T391 269T260 257H183V0H86V683Q127 693 177 696T270 700ZM278 615Q216 615 183 612V340H256Q306 340 346 346T413 368T456 411T471 480Q471 +520 456 546T414 587T352 609T278 615Z" /> +<glyph unicode="Q" glyph-name="Q" horiz-adv-x="778" d="M58 347Q58 436 84 504T156 617T262 686T391 709Q458 709 517 686T622 618T693 504T720 347Q720 269 700 208T645 103T562 31T460 -7Q461 -30 480 -47T530 -77T597 -97T671 -109L648 -185Q596 -178 549 +-167T463 -136T398 -88T363 -14Q300 -10 244 15T147 86T82 197T58 347ZM160 347Q160 284 176 233T221 145T293 90T389 70Q442 70 484 89T555 145T601 232T617 347Q617 410 601 461T556 549T484 604T389 624Q336 624 294 605T222 549T176 462T160 347Z" /> +<glyph unicode="R" glyph-name="R" horiz-adv-x="629" d="M425 290Q441 270 465 238T516 166T567 83T611 0H505Q485 38 462 77T414 151T367 218T324 272Q311 271 298 271T270 271H183V0H86V683Q127 693 177 696T270 700Q416 700 492 645T569 481Q569 412 533 363T425 +290ZM278 615Q216 615 183 612V351H252Q302 351 342 356T409 375T452 414T467 482Q467 521 452 547T412 588T352 609T278 615Z" /> +<glyph unicode="S" glyph-name="S" horiz-adv-x="532" d="M247 69Q399 69 399 173Q399 205 386 227T349 266T297 295T234 319Q196 332 162 348T103 387T64 441T49 516Q49 607 111 658T282 709Q345 709 396 696T472 666L441 587Q420 600 379 612T282 625Q254 625 +230 619T188 601T160 571T149 527Q149 499 160 480T191 447T237 420T296 396Q341 378 378 360T443 317T486 258T501 174Q501 83 435 34T247 -15Q206 -15 172 -10T110 3T64 19T33 34L62 114Q85 101 132 85T247 69Z" /> +<glyph unicode="T" glyph-name="T" horiz-adv-x="565" d="M549 693V609H331V0H234V609H16V693H549Z" /> +<glyph unicode="U" glyph-name="U" horiz-adv-x="688" d="M344 -15Q276 -15 226 6T144 63T97 150T81 258V693H178V269Q178 165 224 118T344 71Q381 71 411 82T464 118T498 179T510 269V693H607V258Q607 200 592 150T544 64T462 6T344 -15Z" /> +<glyph unicode="V" glyph-name="V" horiz-adv-x="656" d="M646 693Q608 583 574 490T506 312T441 152T374 0H283Q249 75 217 151T151 312T82 489T10 693H117Q171 535 223 389T330 115Q385 242 437 388T542 693H646Z" /> +<glyph unicode="W" glyph-name="W" horiz-adv-x="929" d="M465 470Q423 336 380 222T294 0H197Q144 153 104 323T28 693H130Q144 615 159 537T190 386T222 245T255 121Q295 226 340 351T424 611H508Q547 477 593 352T679 121Q695 177 711 244T742 384T773 536T802 +693H901Q865 493 825 323T732 0H635Q591 108 549 222T465 470Z" /> +<glyph unicode="X" glyph-name="X" horiz-adv-x="631" d="M502 0Q487 30 466 66T420 142T368 221T316 296Q291 261 264 222T213 143T167 67T130 0H23Q68 88 127 179T254 366L32 693H144L315 435L484 693H595L377 370Q445 273 505 181T611 0H502Z" /> +<glyph unicode="Y" glyph-name="Y" horiz-adv-x="598" d="M251 0V278Q182 385 121 489T6 693H120Q158 611 205 527T302 364Q351 442 398 526T484 693H592Q538 593 477 490T348 280V0H251Z" /> +<glyph unicode="Z" glyph-name="Z" horiz-adv-x="573" d="M526 616Q503 590 473 554T408 473T338 379T268 279T202 178T146 83H536V0H33V65Q54 105 82 153T143 251T211 352T280 450T347 538T407 610H51V693H526V616Z" /> +<glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="329" d="M96 783H321V710H183V-112H321V-185H96V783Z" /> +<glyph unicode="\" glyph-name="backslash" horiz-adv-x="384" d="M-24 783H69L408 -185H313L-24 783Z" /> +<glyph unicode="]" glyph-name="bracketright" horiz-adv-x="329" d="M233 -185H8V-112H146V710H8V783H233V-185Z" /> +<glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="564" d="M323 693L517 353L443 315L282 597L121 315L47 353L241 693H323Z" /> +<glyph unicode="_" glyph-name="underscore" horiz-adv-x="492" d="M-4 -106H496V-185H-4V-106Z" /> +<glyph unicode="`" glyph-name="grave" horiz-adv-x="376" d="M121 776L249 622L202 580L61 717L121 776Z" /> +<glyph unicode="a" glyph-name="a" horiz-adv-x="522" d="M256 67Q289 67 314 68T357 74V229Q347 234 325 237T270 241Q249 241 226 238T183 226T150 200T137 156Q137 106 169 87T256 67ZM248 533Q304 533 342 519T404 478T438 415T448 334V9Q436 7 415 4T366 +-3T308 -8T245 -11Q201 -11 164 -2T100 26T58 78T43 155Q43 198 60 229T108 279T178 307T262 316Q276 316 291 315T319 311T343 306T357 303V329Q357 352 352 374T334 414T299 442T240 453Q194 453 160 447T108 433L97 510Q115 518 157 525T248 533Z" /> +<glyph unicode="b" glyph-name="b" horiz-adv-x="589" d="M173 497Q190 508 224 520T304 532Q360 532 403 512T477 456T522 370T538 260Q538 197 520 147T467 61T385 7T277 -12Q212 -12 162 -3T80 15V760L173 776V497ZM173 81Q187 77 212 74T276 70Q351 70 396 +119T441 260Q441 300 433 335T407 395T361 435T292 450Q254 450 222 437T173 410V81Z" /> +<glyph unicode="c" glyph-name="c" horiz-adv-x="465" d="M306 -12Q243 -12 196 8T116 64T67 149T51 259Q51 319 68 369T118 455T196 512T300 533Q335 533 370 527T437 508L416 429Q395 439 368 445T309 451Q231 451 190 402T148 259Q148 217 157 182T187 122T240 +84T318 70Q355 70 385 77T432 92L445 14Q437 9 422 5T388 -3T348 -9T306 -12Z" /> +<glyph unicode="d" glyph-name="d" horiz-adv-x="589" d="M416 410Q399 424 367 437T297 450Q257 450 229 436T182 396T156 335T148 260Q148 169 193 120T313 70Q351 70 376 73T416 81V410ZM416 760L509 776V15Q477 6 427 -3T312 -12Q252 -12 204 7T122 61T70 +146T51 260Q51 320 66 370T112 456T185 512T285 532Q330 532 364 520T416 497V760Z" /> +<glyph unicode="e" glyph-name="e" horiz-adv-x="559" d="M51 259Q51 328 71 379T124 465T200 516T288 533Q393 533 449 468T505 268Q505 262 505 253T504 235H148Q154 154 195 112T323 70Q372 70 405 78T456 95L469 17Q452 8 410 -2T313 -12Q245 -12 196 8T114 +65T67 150T51 259ZM408 310Q409 373 377 413T287 454Q255 454 231 442T189 409T163 363T150 310H408Z" /> +<glyph unicode="f" glyph-name="f" horiz-adv-x="386" d="M283 776Q324 776 353 770T395 759L378 679Q366 685 344 690T290 696Q225 696 199 661T173 565V520H373V442H173V0H80V567Q80 667 129 721T283 776Z" /> +<glyph unicode="g" glyph-name="g" horiz-adv-x="578" d="M406 52Q394 44 360 32T279 19Q232 19 191 34T118 80T69 159T51 271Q51 328 68 375T117 457T197 511T303 531Q368 531 416 522T498 504V40Q498 -80 436 -134T248 -188Q199 -188 156 -180T80 -161L97 -80Q125 +-91 165 -99T250 -108Q333 -108 369 -75T406 30V52ZM405 438Q391 442 368 445T304 449Q229 449 189 400T148 270Q148 225 159 193T190 140T235 109T288 99Q325 99 356 109T405 134V438Z" /> +<glyph unicode="h" glyph-name="h" horiz-adv-x="571" d="M80 0V760L173 776V510Q199 520 228 525T287 531Q349 531 390 514T455 465T490 389T500 292V0H407V272Q407 320 401 354T379 409T339 439T277 449Q262 449 246 447T216 443T190 437T173 432V0H80Z" /> +<glyph unicode="i" glyph-name="i" horiz-adv-x="253" d="M173 0H80V520H173V0ZM126 614Q101 614 84 630T66 675Q66 703 83 719T126 736Q151 736 168 720T186 675Q186 647 169 631T126 614Z" /> +<glyph unicode="j" glyph-name="j" horiz-adv-x="253" d="M-5 -187Q-17 -187 -36 -184T-68 -176L-56 -100Q-46 -103 -33 -105T-9 -107Q39 -107 59 -78T80 9V520H173V10Q173 -90 128 -138T-5 -187ZM126 614Q101 614 84 630T66 675Q66 703 83 719T126 736Q151 736 +168 720T186 675Q186 647 169 631T126 614Z" /> +<glyph unicode="k" glyph-name="k" horiz-adv-x="522" d="M268 286Q298 263 331 229T397 156T459 76T508 0H399Q378 35 351 71T293 141T232 203T173 250V0H80V760L173 776V302Q197 326 226 355T283 414T336 471T379 520H488Q465 495 438 465T382 405T324 344T268 286Z" /> +<glyph unicode="l" glyph-name="l" horiz-adv-x="273" d="M236 -10Q150 -8 114 27T78 136V760L171 776V151Q171 128 175 113T188 89T212 76T249 68L236 -10Z" /> +<glyph unicode="m" glyph-name="m" horiz-adv-x="861" d="M80 505Q112 513 164 522T286 531Q336 531 370 518T427 478Q434 483 449 492T486 509T535 524T593 531Q653 531 691 514T750 464T779 388T787 292V0H694V272Q694 318 690 351T673 406T639 438T583 449Q536 +449 506 437T464 414Q472 388 476 357T480 292V0H387V272Q387 318 382 351T365 406T331 438T276 449Q262 449 246 448T216 446T189 442T173 439V0H80V505Z" /> +<glyph unicode="n" glyph-name="n" horiz-adv-x="574" d="M80 505Q112 513 165 522T287 531Q349 531 390 514T455 465T490 389T500 292V0H407V272Q407 320 401 354T379 409T339 439T277 449Q262 449 246 448T216 446T190 442T173 439V0H80V505Z" /> +<glyph unicode="o" glyph-name="o" horiz-adv-x="590" d="M539 260Q539 198 521 148T471 62T393 7T295 -13Q242 -13 197 6T120 62T69 148T51 260Q51 321 69 371T119 458T197 513T295 533Q348 533 393 514T470 458T521 372T539 260ZM442 260Q442 348 403 399T295 +451Q227 451 188 400T148 260Q148 172 187 121T295 69Q363 69 402 120T442 260Z" /> +<glyph unicode="p" glyph-name="p" horiz-adv-x="589" d="M441 259Q441 350 396 399T276 448Q234 448 211 445T173 438V110Q190 96 222 83T292 70Q332 70 360 84T407 124T433 184T441 259ZM538 259Q538 200 523 150T477 64T404 8T304 -12Q259 -12 225 0T173 23V-185H80V504Q113 +512 162 521T277 531Q337 531 385 512T467 458T519 373T538 259Z" /> +<glyph unicode="q" glyph-name="q" horiz-adv-x="589" d="M148 259Q148 219 156 185T182 125T228 85T297 70Q335 70 367 83T416 110V438Q402 442 379 445T313 448Q238 448 193 399T148 259ZM51 259Q51 322 69 372T122 458T204 512T312 531Q377 531 426 522T509 +504V-185H416V23Q399 12 365 0T285 -12Q229 -12 186 8T112 64T67 150T51 259Z" /> +<glyph unicode="r" glyph-name="r" horiz-adv-x="386" d="M272 531Q284 531 299 530T330 526T357 521T376 516L360 435Q349 439 324 444T258 450Q232 450 207 445T173 437V0H80V498Q113 510 162 520T272 531Z" /> +<glyph unicode="s" glyph-name="s" horiz-adv-x="446" d="M201 67Q258 67 285 82T313 130Q313 164 286 184T197 229Q167 241 140 253T92 283T60 324T48 383Q48 452 99 492T238 533Q260 533 282 531T323 525T356 517T379 510L362 430Q347 438 315 446T238 455Q199 +455 170 440T141 391Q141 374 147 361T167 338T201 318T249 299Q286 285 315 272T364 240T396 197T407 134Q407 62 354 25T201 -12Q132 -12 93 -1T40 17L57 97Q73 91 108 79T201 67Z" /> +<glyph unicode="t" glyph-name="t" horiz-adv-x="402" d="M167 520H364V442H167V202Q167 163 173 138T191 98T221 77T263 71Q305 71 330 80T366 94L384 17Q370 10 335 0T255 -11Q202 -11 168 2T112 43T83 109T74 201V665L167 681V520Z" /> +<glyph unicode="u" glyph-name="u" horiz-adv-x="574" d="M494 15Q462 7 410 -2T288 -11Q228 -11 187 6T121 56T85 131T74 228V520H167V248Q167 153 197 112T298 71Q313 71 329 72T359 74T384 77T401 81V520H494V15Z" /> +<glyph unicode="v" glyph-name="v" horiz-adv-x="502" d="M486 520Q447 374 395 240T293 0H209Q160 106 108 240T16 520H116Q128 471 144 416T179 306T217 200T253 109Q270 149 289 200T326 305T361 415T390 520H486Z" /> +<glyph unicode="w" glyph-name="w" horiz-adv-x="777" d="M505 0Q477 72 446 164T388 357Q362 257 331 165T272 0H191Q145 103 101 235T18 520H118Q128 473 142 418T171 308T204 202T236 113Q253 160 269 212T301 318T329 423T353 520H430Q439 475 452 424T480 +319T511 213T545 113Q560 151 576 202T609 308T639 418T663 520H759Q720 367 676 235T586 0H505Z" /> +<glyph unicode="x" glyph-name="x" horiz-adv-x="511" d="M391 0Q380 22 364 49T329 104T290 161T251 214Q232 189 212 161T174 104T139 48T112 0H16Q51 68 99 138T196 273L24 520H129L253 338L378 520H477L309 279Q357 214 407 142T493 0H391Z" /> +<glyph unicode="y" glyph-name="y" horiz-adv-x="497" d="M19 -97Q30 -102 47 -106T82 -111Q137 -111 168 -87T224 -7Q161 113 107 247T16 520H116Q127 475 142 423T177 316T218 206T264 100Q302 205 330 308T383 520H479Q443 373 399 238T304 -16Q284 -61 263 +-93T215 -147T157 -178T83 -188Q72 -188 60 -187T37 -183T16 -177T2 -172L19 -97Z" /> +<glyph unicode="z" glyph-name="z" horiz-adv-x="471" d="M425 450Q404 427 370 385T296 292T217 185T147 78H433V0H36V62Q60 106 95 159T168 264T243 363T307 442H50V520H425V450Z" /> +<glyph unicode="{" glyph-name="braceleft" horiz-adv-x="333" d="M40 335Q64 335 81 343T109 365T126 396T132 432V612Q132 653 141 685T172 738T230 771T321 783H325V710Q268 710 244 690T219 611V457Q219 391 202 355T152 299Q184 279 201 243T219 141V-13Q219 +-71 243 -91T325 -112V-185H321Q267 -185 231 -174T172 -141T141 -87T132 -14V166Q132 184 127 201T110 232T81 254T40 263V335Z" /> +<glyph unicode="|" glyph-name="bar" horiz-adv-x="279" d="M96 783H183V-185H96V783Z" /> +<glyph unicode="}" glyph-name="braceright" horiz-adv-x="333" d="M293 263Q269 263 252 255T224 233T207 202T201 166V-14Q201 -55 192 -87T161 -141T103 -174T12 -185H8V-112Q65 -112 89 -92T114 -13V141Q114 207 131 243T181 299Q149 319 132 355T114 457V611Q114 +669 90 689T8 710V783H12Q66 783 102 772T161 739T192 685T201 612V432Q201 414 206 397T223 366T252 344T293 335V263Z" /> +<glyph unicode="~" glyph-name="asciitilde" horiz-adv-x="564" d="M520 357Q516 337 508 313T483 268T443 232T383 217Q353 217 328 229T279 255Q252 271 227 286T174 302Q158 302 147 295T128 276T115 251T106 224L42 242Q46 261 55 285T79 331T119 367T179 +382Q209 382 234 370T283 344Q310 328 335 313T388 297Q404 297 415 304T434 323T447 348T456 375L520 357Z" /> +<glyph unicode=" " glyph-name="uni00A0" horiz-adv-x="231" /> +<glyph unicode="¡" glyph-name="exclamdown" horiz-adv-x="276" d="M88 2Q88 86 94 154T109 291H167Q176 223 182 155T188 2V-185H88V2ZM71 453Q71 480 89 500T138 520Q169 520 187 500T205 453Q205 426 187 406T138 386Q107 386 89 406T71 453Z" /> +<glyph unicode="¢" glyph-name="cent" horiz-adv-x="564" d="M86 291Q86 340 99 383T137 460T198 517T279 549V693H362V554Q420 551 472 531L451 454Q430 463 403 469T344 475Q266 475 225 428T183 291Q183 251 192 218T222 160T275 123T353 110Q390 110 +420 117T467 131L480 55Q466 47 432 40T362 30V-109H279V35Q231 44 195 66T135 122T99 199T86 291Z" /> +<glyph unicode="£" glyph-name="sterling" horiz-adv-x="564" d="M246 373H435V298H246V290Q246 240 242 185T230 80H519V0H125Q136 71 144 141T153 283V298H60V373H153V456Q153 530 168 578T212 655T281 695T369 706Q413 706 443 698T501 679L478 599Q425 +624 365 624Q338 624 316 616T279 589T255 538T246 458V373Z" /> +<glyph unicode="¤" glyph-name="currency" horiz-adv-x="564" d="M89 347Q89 408 117 453L44 527L102 585L176 510Q223 539 282 539Q341 539 387 510L462 585L520 527L446 453Q460 431 467 405T475 347Q475 315 468 289T446 241L520 167L462 109L387 183Q339 +155 282 155Q253 155 226 162T176 183L102 109L44 167L117 240Q89 285 89 347ZM400 347Q400 375 391 398T365 437T328 462T282 471Q258 471 237 463T199 438T174 398T164 347Q164 318 173 296T199 257T236 232T282 223Q306 223 327 231T365 256T390 295T400 347Z" +/> +<glyph unicode="¥" glyph-name="yen" horiz-adv-x="564" d="M237 0V106H75V177H237V279H75V350H211Q157 438 109 524T17 693H120Q156 615 198 537T285 387Q329 459 369 537T447 693H548Q504 610 456 524T353 350H490V279H328V177H490V106H328V0H237Z" /> +<glyph unicode="¦" glyph-name="brokenbar" horiz-adv-x="279" d="M96 198H183V-185H96V198ZM96 783H183V400H96V783Z" /> +<glyph unicode="§" glyph-name="section" horiz-adv-x="492" d="M68 -1Q98 -14 134 -23T226 -32Q282 -32 310 -16T339 37Q339 72 312 91T221 133Q185 145 153 159T96 193T57 241T43 309Q43 335 51 357T72 398T101 430T132 453Q107 473 93 499T78 559Q78 628 +126 668T263 709Q314 709 358 699T428 681L407 604Q383 613 349 623T262 633Q223 633 195 617T166 567Q166 549 172 537T191 514T224 494T272 476Q308 464 340 450T397 416T436 368T450 300Q450 275 442 253T422 213T395 181T364 157Q393 136 411 108T429 43Q429 +-32 376 -70T225 -109Q158 -109 115 -99T45 -75L68 -1ZM220 408Q213 410 207 412T193 418Q164 399 146 374T128 318Q128 292 139 275T171 244T220 220T281 198Q286 196 290 195T300 191Q329 210 347 235T365 291Q365 317 354 334T322 365T276 388T220 408Z" /> +<glyph unicode="¨" glyph-name="dieresis" horiz-adv-x="376" d="M93 616Q70 616 53 632T35 675Q35 701 52 717T93 734Q116 734 133 718T151 675Q151 649 134 633T93 616ZM283 616Q260 616 243 632T225 675Q225 701 242 717T283 734Q306 734 323 718T341 +675Q341 649 324 633T283 616Z" /> +<glyph unicode="©" glyph-name="copyright" horiz-adv-x="814" d="M749 347Q749 262 721 195T646 81T537 10T407 -15Q339 -15 277 9T168 80T93 194T65 347Q65 432 93 499T168 613T277 684T407 709Q475 709 537 685T646 614T721 500T749 347ZM676 347Q676 +413 656 467T601 561T516 621T407 642Q348 642 299 621T214 561T158 468T138 347Q138 281 158 227T213 133T298 73T407 52Q466 52 515 73T600 133T656 226T676 347ZM419 140Q376 140 341 154T281 194T241 258T227 347Q227 396 242 434T284 498T345 539T419 553Q445 +553 466 549T504 540T530 529T545 520L522 460Q510 467 484 476T422 486Q371 486 337 451T303 347Q303 285 334 246T425 206Q464 206 489 214T529 230L548 170Q543 167 532 162T503 152T465 144T419 140Z" /> +<glyph unicode="ª" glyph-name="ordfeminine" horiz-adv-x="389" d="M196 391Q218 391 240 392T267 395V495Q256 497 239 498T206 499Q189 499 172 497T140 489T117 473T108 446Q108 416 131 404T196 391ZM189 706Q230 706 258 696T303 668T328 625T336 567V343Q312 +338 271 334T189 329Q156 329 129 335T81 356T50 392T38 446Q38 477 51 499T86 534T137 554T198 560Q212 560 229 559T267 555V558Q267 573 264 588T252 614T227 633T185 641Q162 641 135 638T87 628L77 691Q96 696 126 701T189 706Z" /> +<glyph unicode="«" glyph-name="guillemotleft" horiz-adv-x="499" d="M30 284L186 505L251 470L140 284L251 98L186 63L30 284ZM238 284L394 505L459 470L348 284L459 98L394 63L238 284Z" /> +<glyph unicode="¬" glyph-name="logicalnot" horiz-adv-x="564" d="M511 394V53H431V315H53V394H511Z" /> +<glyph unicode="­" glyph-name="uni00AD" horiz-adv-x="299" d="M26 343H273V256H26V343Z" /> +<glyph unicode="®" glyph-name="registered" horiz-adv-x="814" d="M749 347Q749 262 721 195T646 81T537 10T407 -15Q339 -15 277 9T168 80T93 194T65 347Q65 432 93 499T168 613T277 684T407 709Q475 709 537 685T646 614T721 500T749 347ZM676 347Q676 +413 656 467T601 561T516 621T407 642Q348 642 299 621T214 561T158 468T138 347Q138 281 158 227T213 133T298 73T407 52Q466 52 515 73T600 133T656 226T676 347ZM506 148Q483 193 455 233T405 298H338V148H267V536Q294 542 324 545T379 548Q465 548 510 516T555 +419Q555 382 536 355T480 312Q490 300 503 282T530 242T558 196T583 148H506ZM338 356H376Q421 356 451 368T481 420Q481 457 453 471T384 486Q373 486 361 486T338 484V356Z" /> +<glyph unicode="¯" glyph-name="overscore" horiz-adv-x="376" d="M46 711H330V639H46V711Z" /> +<glyph unicode="°" glyph-name="degree" horiz-adv-x="332" d="M306 637Q306 605 295 579T264 535T220 508T166 498Q138 498 113 507T68 535T38 579T26 637Q26 669 37 695T68 739T112 766T166 776Q194 776 219 767T264 739T294 695T306 637ZM239 637Q239 +672 218 692T166 713Q136 713 115 693T93 637Q93 602 114 582T166 561Q196 561 217 581T239 637Z" /> +<glyph unicode="±" glyph-name="plusminus" horiz-adv-x="564" d="M53 419H242V620H322V419H511V340H322V139H242V340H53V419ZM53 79H511V0H53V79Z" /> +<glyph unicode="²" glyph-name="twosuperior" horiz-adv-x="359" d="M296 598Q296 577 287 557T261 518T224 479T179 438Q162 424 146 408T126 378H312V315H46Q43 348 50 373T72 420T106 458T146 494Q180 523 201 547T223 596Q223 622 207 634T161 646Q144 +646 129 642T102 631T81 618T66 607L30 656Q47 674 81 691T161 709Q230 709 263 680T296 598Z" /> +<glyph unicode="³" glyph-name="threesuperior" horiz-adv-x="359" d="M144 369Q197 369 217 385T237 428Q237 445 228 457T204 476T168 487T127 491H108V548H133Q147 548 162 550T190 559T211 575T219 601Q219 626 201 636T153 647Q126 647 103 638T63 620L38 +675Q54 686 87 697T155 709Q228 709 258 680T289 604Q289 555 234 524Q269 513 289 488T310 427Q310 401 301 380T272 342T221 316T145 307Q114 307 82 314T32 330L47 390Q69 382 93 376T144 369Z" /> +<glyph unicode="´" glyph-name="acute" horiz-adv-x="376" d="M315 717L174 580L127 622L255 776L315 717Z" /> +<glyph unicode="µ" glyph-name="mu" horiz-adv-x="580" d="M173 520V242Q173 147 204 109T304 71Q319 71 335 72T365 74T390 77T407 81V520H500V15Q468 7 418 -2T307 -11Q252 -11 220 0T167 34Q170 6 171 -22T172 -82V-185H80V520H173Z" /> +<glyph unicode="¶" glyph-name="paragraph" horiz-adv-x="646" d="M386 623Q378 623 370 623T356 621V-185H278V262Q167 273 105 325T43 479Q43 534 65 575T130 644T232 686T366 700Q408 700 456 697T545 683V-185H467V618Q453 620 432 621T386 623Z" /> +<glyph unicode="·" glyph-name="middot" horiz-adv-x="246" d="M190 294Q190 267 172 247T123 227Q92 227 74 247T56 294Q56 321 74 341T123 361Q154 361 172 341T190 294Z" /> +<glyph unicode="¸" glyph-name="cedilla" horiz-adv-x="376" d="M199 -37Q228 -51 241 -67T254 -116Q254 -127 249 -140T232 -164T200 -182T151 -189Q125 -189 104 -185T69 -176L80 -119Q92 -123 105 -126T136 -129Q172 -129 172 -106Q172 -95 161 -88T130 +-72L123 -69Q126 -59 132 -46T144 -19T155 4T164 20H228Q222 9 213 -8T199 -37Z" /> +<glyph unicode="¹" glyph-name="onesuperior" horiz-adv-x="359" d="M50 621Q88 634 125 654T189 701H238V315H168V609Q146 595 118 584T69 567L50 621Z" /> +<glyph unicode="º" glyph-name="ordmasculine" horiz-adv-x="446" d="M403 518Q403 475 390 440T352 380T295 342T223 328Q184 328 151 341T94 380T57 440T43 518Q43 561 56 596T94 656T151 694T223 708Q262 708 295 695T352 657T389 597T403 518ZM329 518Q329 +574 302 607T223 641Q173 641 145 608T117 518Q117 463 144 429T223 395Q274 395 301 429T329 518Z" /> +<glyph unicode="»" glyph-name="guillemotright" horiz-adv-x="499" d="M105 63L40 98L151 284L40 470L105 505L261 284L105 63ZM313 63L248 98L359 284L248 470L313 505L469 284L313 63Z" /> +<glyph unicode="¼" glyph-name="onequarter" horiz-adv-x="874" d="M50 621Q88 634 125 654T189 701H238V315H168V609Q146 595 118 584T69 567L50 621ZM674 693L283 0H196L587 693H674ZM800 389V155H850V96H800V3H732V96H539V142Q553 167 575 199T623 265T678 +331T736 389H800ZM732 306Q701 274 669 234T614 155H732V306Z" /> +<glyph unicode="½" glyph-name="onehalf" horiz-adv-x="874" d="M50 621Q88 634 125 654T189 701H238V315H168V609Q146 595 118 584T69 567L50 621ZM653 693L262 0H175L566 693H653ZM811 286Q811 265 802 245T776 206T739 167T694 126Q677 112 661 96T641 +66H827V3H561Q558 36 565 61T587 108T621 146T661 182Q695 211 716 235T738 284Q738 310 722 322T676 334Q659 334 644 330T617 319T596 306T581 295L545 344Q562 362 596 379T676 397Q745 397 778 368T811 286Z" /> +<glyph unicode="¾" glyph-name="threequarters" horiz-adv-x="874" d="M144 369Q197 369 217 385T237 428Q237 445 228 457T204 476T168 487T127 491H108V548H133Q147 548 162 550T190 559T211 575T219 601Q219 626 201 636T153 647Q126 647 103 638T63 620L38 +675Q54 686 87 697T155 709Q228 709 258 680T289 604Q289 555 234 524Q269 513 289 488T310 427Q310 401 301 380T272 342T221 316T145 307Q114 307 82 314T32 330L47 390Q69 382 93 376T144 369ZM689 693L298 0H211L602 693H689ZM800 389V155H850V96H800V3H732V96H539V142Q553 +167 575 199T623 265T678 331T736 389H800ZM732 306Q701 274 669 234T614 155H732V306Z" /> +<glyph unicode="¿" glyph-name="questiondown" horiz-adv-x="404" d="M126 -23Q126 -61 153 -85T230 -110Q296 -110 359 -76L385 -148Q351 -166 309 -177T218 -188Q164 -188 128 -174T70 -138T38 -89T28 -34Q28 -1 40 25T72 74T112 119T153 163T184 213T197 +272Q197 277 197 281T196 291H274Q278 271 278 252Q278 220 267 194T239 146T202 103T166 63T138 22T126 -23ZM163 453Q163 480 181 500T230 520Q261 520 279 500T297 453Q297 426 279 406T230 386Q199 386 181 406T163 453Z" /> +<glyph unicode="À" glyph-name="Agrave" horiz-adv-x="663" d="M549 0Q532 45 517 88T486 177H172L109 0H8Q48 110 83 203T151 381T218 541T287 693H376Q412 618 445 542T511 381T580 204T655 0H549ZM458 257Q426 344 395 425T329 582Q294 507 263 426T200 +257H458ZM271 932L399 778L352 736L211 873L271 932Z" /> +<glyph unicode="Á" glyph-name="Aacute" horiz-adv-x="663" d="M549 0Q532 45 517 88T486 177H172L109 0H8Q48 110 83 203T151 381T218 541T287 693H376Q412 618 445 542T511 381T580 204T655 0H549ZM458 257Q426 344 395 425T329 582Q294 507 263 426T200 +257H458ZM457 873L316 736L269 778L397 932L457 873Z" /> +<glyph unicode="Â" glyph-name="Acircumflex" horiz-adv-x="663" d="M549 0Q532 45 517 88T486 177H172L109 0H8Q48 110 83 203T151 381T218 541T287 693H376Q412 618 445 542T511 381T580 204T655 0H549ZM458 257Q426 344 395 425T329 582Q294 507 263 426T200 +257H458ZM331 925L467 782L428 738L331 826L234 738L195 782L331 925Z" /> +<glyph unicode="Ã" glyph-name="Atilde" horiz-adv-x="663" d="M549 0Q532 45 517 88T486 177H172L109 0H8Q48 110 83 203T151 381T218 541T287 693H376Q412 618 445 542T511 381T580 204T655 0H549ZM458 257Q426 344 395 425T329 582Q294 507 263 426T200 +257H458ZM496 867Q491 855 483 839T461 810T431 787T392 777Q372 777 355 784T321 799Q304 807 292 811T269 815Q252 815 238 801T215 771L167 795Q171 807 180 823T202 852T232 875T271 885Q291 885 308 878T342 863Q359 855 371 851T394 847Q411 847 425 861T448 +891L496 867Z" /> +<glyph unicode="Ä" glyph-name="Adieresis" horiz-adv-x="663" d="M549 0Q532 45 517 88T486 177H172L109 0H8Q48 110 83 203T151 381T218 541T287 693H376Q412 618 445 542T511 381T580 204T655 0H549ZM458 257Q426 344 395 425T329 582Q294 507 263 426T200 +257H458ZM236 772Q213 772 196 788T178 831Q178 857 195 873T236 890Q259 890 276 874T294 831Q294 805 277 789T236 772ZM426 772Q403 772 386 788T368 831Q368 857 385 873T426 890Q449 890 466 874T484 831Q484 805 467 789T426 772Z" /> +<glyph unicode="Å" glyph-name="Aring" horiz-adv-x="663" d="M172 178L109 0H8Q45 102 78 190T142 358T204 510T268 653Q249 667 238 688T227 737Q227 761 235 779T258 811T290 832T330 839Q351 839 369 832T402 812T424 780T433 737Q433 710 422 690T393 +655Q426 584 457 512T519 360T584 192T655 0H549Q532 45 517 89T486 178H172ZM458 257Q426 344 395 425T329 582Q294 507 263 426T200 257H458ZM383 737Q383 763 368 777T330 792Q308 792 293 778T277 737Q277 711 292 697T330 682Q352 682 367 696T383 737Z" /> +<glyph unicode="Æ" glyph-name="AE" horiz-adv-x="935" d="M873 612H572V403H837V324H572V81H898V0H476V178H203Q179 134 156 90T110 0H6Q63 108 117 203T224 384T326 545T427 693H873V612ZM476 617Q423 545 366 454T248 257H476V617Z" /> +<glyph unicode="Ç" glyph-name="Ccedilla" horiz-adv-x="620" d="M330 -11Q268 -3 218 24T133 97T78 205T58 347Q58 434 84 501T156 615T261 685T389 709Q432 709 466 703T526 689T568 673T590 661L562 581Q553 587 536 594T498 608T451 619T399 624Q344 +624 300 605T225 550T178 463T161 347Q161 285 175 234T219 147T291 90T393 70Q460 70 504 84T570 109L595 29Q581 18 528 3T392 -15Q389 -21 387 -26T382 -37Q411 -51 424 -67T437 -116Q437 -127 432 -140T415 -164T383 -182T334 -189Q308 -189 287 -185T252 -176L263 +-119Q275 -123 288 -126T319 -129Q355 -129 355 -106Q355 -95 344 -88T313 -72L306 -69Q310 -57 316 -41T330 -11Z" /> +<glyph unicode="È" glyph-name="Egrave" horiz-adv-x="571" d="M86 0V693H509V610H183V404H473V323H183V83H534V0H86ZM260 932L388 778L341 736L200 873L260 932Z" /> +<glyph unicode="É" glyph-name="Eacute" horiz-adv-x="571" d="M86 0V693H509V610H183V404H473V323H183V83H534V0H86ZM441 873L300 736L253 778L381 932L441 873Z" /> +<glyph unicode="Ê" glyph-name="Ecircumflex" horiz-adv-x="571" d="M86 0V693H509V610H183V404H473V323H183V83H534V0H86ZM297 925L433 782L394 738L297 826L200 738L161 782L297 925Z" /> +<glyph unicode="Ë" glyph-name="Edieresis" horiz-adv-x="571" d="M86 0V693H509V610H183V404H473V323H183V83H534V0H86ZM202 772Q179 772 162 788T144 831Q144 857 161 873T202 890Q225 890 242 874T260 831Q260 805 243 789T202 772ZM392 772Q369 772 352 +788T334 831Q334 857 351 873T392 890Q415 890 432 874T450 831Q450 805 433 789T392 772Z" /> +<glyph unicode="Ì" glyph-name="Igrave" horiz-adv-x="269" d="M86 693H183V0H86V693ZM75 932L203 778L156 736L15 873L75 932Z" /> +<glyph unicode="Í" glyph-name="Iacute" horiz-adv-x="269" d="M86 693H183V0H86V693ZM256 873L115 736L68 778L196 932L256 873Z" /> +<glyph unicode="Î" glyph-name="Icircumflex" horiz-adv-x="269" d="M86 693H183V0H86V693ZM135 925L271 782L232 738L135 826L38 738L-1 782L135 925Z" /> +<glyph unicode="Ï" glyph-name="Idieresis" horiz-adv-x="269" d="M86 693H183V0H86V693ZM40 772Q17 772 0 788T-18 831Q-18 857 -1 873T40 890Q63 890 80 874T98 831Q98 805 81 789T40 772ZM230 772Q207 772 190 788T172 831Q172 857 189 873T230 890Q253 +890 270 874T288 831Q288 805 271 789T230 772Z" /> +<glyph unicode="Ð" glyph-name="Eth" horiz-adv-x="726" d="M668 347Q668 257 640 191T561 81T439 16T283 -6Q241 -6 191 -3T99 11V324H19V399H99V683Q140 693 190 696T283 700Q368 700 439 679T561 614T640 504T668 347ZM291 79Q429 79 497 149T565 347Q565 +474 497 544T291 615Q250 615 228 614T196 612V399H326V324H196V82Q205 81 227 80T291 79Z" /> +<glyph unicode="Ñ" glyph-name="Ntilde" horiz-adv-x="728" d="M561 0Q539 37 511 83T449 178T381 279T310 377T242 467T181 541V0H86V693H163Q210 643 263 577T369 440T468 301T547 180V693H642V0H561ZM529 867Q524 855 516 839T494 810T464 787T425 777Q405 +777 388 784T354 799Q337 807 325 811T302 815Q285 815 271 801T248 771L200 795Q204 807 213 823T235 852T265 875T304 885Q324 885 341 878T375 863Q392 855 404 851T427 847Q444 847 458 861T481 891L529 867Z" /> +<glyph unicode="Ò" glyph-name="Ograve" horiz-adv-x="778" d="M58 347Q58 436 84 504T156 617T262 686T391 709Q458 709 517 686T622 618T693 504T720 347Q720 258 694 190T622 77T518 8T391 -15Q323 -15 263 8T157 76T85 190T58 347ZM160 347Q160 284 176 +233T221 145T293 90T389 70Q442 70 484 89T555 145T601 232T617 347Q617 410 601 461T556 549T484 604T389 624Q336 624 294 605T222 549T176 462T160 347ZM329 932L457 778L410 736L269 873L329 932Z" /> +<glyph unicode="Ó" glyph-name="Oacute" horiz-adv-x="778" d="M58 347Q58 436 84 504T156 617T262 686T391 709Q458 709 517 686T622 618T693 504T720 347Q720 258 694 190T622 77T518 8T391 -15Q323 -15 263 8T157 76T85 190T58 347ZM160 347Q160 284 176 +233T221 145T293 90T389 70Q442 70 484 89T555 145T601 232T617 347Q617 410 601 461T556 549T484 604T389 624Q336 624 294 605T222 549T176 462T160 347ZM510 873L369 736L322 778L450 932L510 873Z" /> +<glyph unicode="Ô" glyph-name="Ocircumflex" horiz-adv-x="778" d="M58 347Q58 436 84 504T156 617T262 686T391 709Q458 709 517 686T622 618T693 504T720 347Q720 258 694 190T622 77T518 8T391 -15Q323 -15 263 8T157 76T85 190T58 347ZM160 347Q160 +284 176 233T221 145T293 90T389 70Q442 70 484 89T555 145T601 232T617 347Q617 410 601 461T556 549T484 604T389 624Q336 624 294 605T222 549T176 462T160 347ZM389 925L525 782L486 738L389 826L292 738L253 782L389 925Z" /> +<glyph unicode="Õ" glyph-name="Otilde" horiz-adv-x="778" d="M58 347Q58 436 84 504T156 617T262 686T391 709Q458 709 517 686T622 618T693 504T720 347Q720 258 694 190T622 77T518 8T391 -15Q323 -15 263 8T157 76T85 190T58 347ZM160 347Q160 284 176 +233T221 145T293 90T389 70Q442 70 484 89T555 145T601 232T617 347Q617 410 601 461T556 549T484 604T389 624Q336 624 294 605T222 549T176 462T160 347ZM554 867Q549 855 541 839T519 810T489 787T450 777Q430 777 413 784T379 799Q362 807 350 811T327 815Q310 +815 296 801T273 771L225 795Q229 807 238 823T260 852T290 875T329 885Q349 885 366 878T400 863Q417 855 429 851T452 847Q469 847 483 861T506 891L554 867Z" /> +<glyph unicode="Ö" glyph-name="Odieresis" horiz-adv-x="778" d="M58 347Q58 436 84 504T156 617T262 686T391 709Q458 709 517 686T622 618T693 504T720 347Q720 258 694 190T622 77T518 8T391 -15Q323 -15 263 8T157 76T85 190T58 347ZM160 347Q160 284 +176 233T221 145T293 90T389 70Q442 70 484 89T555 145T601 232T617 347Q617 410 601 461T556 549T484 604T389 624Q336 624 294 605T222 549T176 462T160 347ZM294 772Q271 772 254 788T236 831Q236 857 253 873T294 890Q317 890 334 874T352 831Q352 805 335 +789T294 772ZM484 772Q461 772 444 788T426 831Q426 857 443 873T484 890Q507 890 524 874T542 831Q542 805 525 789T484 772Z" /> +<glyph unicode="×" glyph-name="multiply" horiz-adv-x="564" d="M428 97L282 243L136 97L80 153L226 299L80 445L136 501L282 355L428 501L484 445L338 299L484 153L428 97Z" /> +<glyph unicode="Ø" glyph-name="Oslash" horiz-adv-x="778" d="M58 347Q58 436 84 504T156 617T262 686T391 709Q497 709 579 653L638 730L700 684L636 601Q675 556 697 493T720 347Q720 258 694 190T622 77T518 8T391 -15Q338 -15 291 -2T202 39L144 -36L82 +10L144 90Q104 135 81 199T58 347ZM160 347Q160 238 204 168L523 581Q468 624 389 624Q336 624 294 605T222 549T176 462T160 347ZM389 70Q442 70 484 89T555 145T601 232T617 347Q617 400 606 443T575 522L257 111Q310 70 389 70Z" /> +<glyph unicode="Ù" glyph-name="Ugrave" horiz-adv-x="688" d="M344 -15Q276 -15 226 6T144 63T97 150T81 258V693H178V269Q178 165 224 118T344 71Q381 71 411 82T464 118T498 179T510 269V693H607V258Q607 200 592 150T544 64T462 6T344 -15ZM284 932L412 +778L365 736L224 873L284 932Z" /> +<glyph unicode="Ú" glyph-name="Uacute" horiz-adv-x="688" d="M344 -15Q276 -15 226 6T144 63T97 150T81 258V693H178V269Q178 165 224 118T344 71Q381 71 411 82T464 118T498 179T510 269V693H607V258Q607 200 592 150T544 64T462 6T344 -15ZM465 873L324 +736L277 778L405 932L465 873Z" /> +<glyph unicode="Û" glyph-name="Ucircumflex" horiz-adv-x="688" d="M344 -15Q276 -15 226 6T144 63T97 150T81 258V693H178V269Q178 165 224 118T344 71Q381 71 411 82T464 118T498 179T510 269V693H607V258Q607 200 592 150T544 64T462 6T344 -15ZM344 +925L480 782L441 738L344 826L247 738L208 782L344 925Z" /> +<glyph unicode="Ü" glyph-name="Udieresis" horiz-adv-x="688" d="M344 -15Q276 -15 226 6T144 63T97 150T81 258V693H178V269Q178 165 224 118T344 71Q381 71 411 82T464 118T498 179T510 269V693H607V258Q607 200 592 150T544 64T462 6T344 -15ZM249 772Q226 +772 209 788T191 831Q191 857 208 873T249 890Q272 890 289 874T307 831Q307 805 290 789T249 772ZM439 772Q416 772 399 788T381 831Q381 857 398 873T439 890Q462 890 479 874T497 831Q497 805 480 789T439 772Z" /> +<glyph unicode="Ý" glyph-name="Yacute" horiz-adv-x="598" d="M251 0V278Q182 385 121 489T6 693H120Q158 611 205 527T302 364Q351 442 398 526T484 693H592Q538 593 477 490T348 280V0H251ZM421 873L280 736L233 778L361 932L421 873Z" /> +<glyph unicode="Þ" glyph-name="Thorn" horiz-adv-x="609" d="M183 222H256Q306 222 346 228T413 251T456 294T471 363Q471 403 456 429T412 471T345 493T259 499Q241 499 222 499T183 497V222ZM183 693V580Q202 582 222 582T262 583Q573 583 573 362Q573 +302 552 261T490 193T391 154T260 142H183V0H86V693H183Z" /> +<glyph unicode="ß" glyph-name="germandbls" horiz-adv-x="623" d="M498 616Q498 591 491 572T474 536T451 505T427 479Q404 454 388 438T372 396Q372 381 379 370T399 351T425 336T455 322Q482 309 505 294T546 260T573 214T583 150Q583 72 535 30T384 -12Q363 +-12 342 -9T303 -2T272 8T252 16L268 97Q274 94 286 89T315 79T351 71T391 67Q441 67 465 89T489 148Q489 187 466 212T386 263Q353 278 332 291T298 319T281 348T276 383Q276 423 298 450T345 503Q355 513 365 525T385 549T399 575T405 602Q405 646 379 670T301 +695Q234 695 204 657T173 552V0H80V554Q80 604 94 645T135 715T202 760T294 776Q348 776 387 764T450 731T486 680T498 616Z" /> +<glyph unicode="à" glyph-name="agrave" horiz-adv-x="522" d="M256 67Q289 67 314 68T357 74V229Q347 234 325 237T270 241Q249 241 226 238T183 226T150 200T137 156Q137 106 169 87T256 67ZM248 533Q304 533 342 519T404 478T438 415T448 334V9Q436 7 +415 4T366 -3T308 -8T245 -11Q201 -11 164 -2T100 26T58 78T43 155Q43 198 60 229T108 279T178 307T262 316Q276 316 291 315T319 311T343 306T357 303V329Q357 352 352 374T334 414T299 442T240 453Q194 453 160 447T108 433L97 510Q115 518 157 525T248 533ZM203 +776L331 622L284 580L143 717L203 776Z" /> +<glyph unicode="á" glyph-name="aacute" horiz-adv-x="522" d="M256 67Q289 67 314 68T357 74V229Q347 234 325 237T270 241Q249 241 226 238T183 226T150 200T137 156Q137 106 169 87T256 67ZM248 533Q304 533 342 519T404 478T438 415T448 334V9Q436 7 +415 4T366 -3T308 -8T245 -11Q201 -11 164 -2T100 26T58 78T43 155Q43 198 60 229T108 279T178 307T262 316Q276 316 291 315T319 311T343 306T357 303V329Q357 352 352 374T334 414T299 442T240 453Q194 453 160 447T108 433L97 510Q115 518 157 525T248 533ZM384 +717L243 580L196 622L324 776L384 717Z" /> +<glyph unicode="â" glyph-name="acircumflex" horiz-adv-x="522" d="M256 67Q289 67 314 68T357 74V229Q347 234 325 237T270 241Q249 241 226 238T183 226T150 200T137 156Q137 106 169 87T256 67ZM248 533Q304 533 342 519T404 478T438 415T448 334V9Q436 +7 415 4T366 -3T308 -8T245 -11Q201 -11 164 -2T100 26T58 78T43 155Q43 198 60 229T108 279T178 307T262 316Q276 316 291 315T319 311T343 306T357 303V329Q357 352 352 374T334 414T299 442T240 453Q194 453 160 447T108 433L97 510Q115 518 157 525T248 533ZM263 +769L399 626L360 582L263 670L166 582L127 626L263 769Z" /> +<glyph unicode="ã" glyph-name="atilde" horiz-adv-x="522" d="M256 67Q289 67 314 68T357 74V229Q347 234 325 237T270 241Q249 241 226 238T183 226T150 200T137 156Q137 106 169 87T256 67ZM248 533Q304 533 342 519T404 478T438 415T448 334V9Q436 7 +415 4T366 -3T308 -8T245 -11Q201 -11 164 -2T100 26T58 78T43 155Q43 198 60 229T108 279T178 307T262 316Q276 316 291 315T319 311T343 306T357 303V329Q357 352 352 374T334 414T299 442T240 453Q194 453 160 447T108 433L97 510Q115 518 157 525T248 533ZM428 +711Q423 699 415 683T393 654T363 631T324 621Q304 621 287 628T253 643Q236 651 224 655T201 659Q184 659 170 645T147 615L99 639Q103 651 112 667T134 696T164 719T203 729Q223 729 240 722T274 707Q291 699 303 695T326 691Q343 691 357 705T380 735L428 711Z" +/> +<glyph unicode="ä" glyph-name="adieresis" horiz-adv-x="522" d="M256 67Q289 67 314 68T357 74V229Q347 234 325 237T270 241Q249 241 226 238T183 226T150 200T137 156Q137 106 169 87T256 67ZM248 533Q304 533 342 519T404 478T438 415T448 334V9Q436 +7 415 4T366 -3T308 -8T245 -11Q201 -11 164 -2T100 26T58 78T43 155Q43 198 60 229T108 279T178 307T262 316Q276 316 291 315T319 311T343 306T357 303V329Q357 352 352 374T334 414T299 442T240 453Q194 453 160 447T108 433L97 510Q115 518 157 525T248 533ZM168 +616Q145 616 128 632T110 675Q110 701 127 717T168 734Q191 734 208 718T226 675Q226 649 209 633T168 616ZM358 616Q335 616 318 632T300 675Q300 701 317 717T358 734Q381 734 398 718T416 675Q416 649 399 633T358 616Z" /> +<glyph unicode="å" glyph-name="aring" horiz-adv-x="522" d="M256 67Q289 67 314 68T357 74V229Q347 234 325 237T270 241Q249 241 226 238T183 226T150 200T137 156Q137 106 169 87T256 67ZM248 533Q304 533 342 519T404 478T438 415T448 334V9Q436 7 415 +4T366 -3T308 -8T245 -11Q201 -11 164 -2T100 26T58 78T43 155Q43 198 60 229T108 279T178 307T262 316Q276 316 291 315T319 311T343 306T357 303V329Q357 352 352 374T334 414T299 442T240 453Q194 453 160 447T108 433L97 510Q115 518 157 525T248 533ZM366 +677Q366 653 358 635T335 603T303 582T263 575Q242 575 224 582T191 602T169 634T160 677Q160 701 168 719T191 751T223 772T263 779Q284 779 302 772T335 752T357 720T366 677ZM316 677Q316 703 301 717T263 732Q241 732 226 718T210 677Q210 651 225 637T263 +622Q285 622 300 636T316 677Z" /> +<glyph unicode="æ" glyph-name="ae" horiz-adv-x="859" d="M613 -12Q556 -12 514 1T439 41Q429 34 413 25T373 8T322 -6T259 -12Q209 -12 170 -3T102 26T59 78T44 155Q44 198 61 229T109 279T179 307T263 316Q277 316 292 315T320 311T343 306T357 303V329Q357 +352 352 374T334 414T299 442T240 453Q194 453 160 447T108 433L97 510Q115 518 156 525T246 533Q315 533 355 510T416 444Q449 489 494 511T588 533Q692 533 748 467T805 268Q805 260 805 255T804 244V235H448Q454 155 495 113T623 70Q672 70 705 78T756 95L769 +17Q752 8 710 -2T613 -12ZM261 67Q313 67 343 78T389 101Q374 129 366 161T356 229Q345 234 324 237T271 241Q250 241 227 238T184 226T151 200T138 156Q138 105 170 86T261 67ZM708 310Q709 373 677 413T587 454Q555 454 531 442T490 409T463 363T450 310H708Z" +/> +<glyph unicode="ç" glyph-name="ccedilla" horiz-adv-x="465" d="M318 -12L307 -37Q336 -51 349 -67T362 -116Q362 -127 357 -140T340 -164T308 -182T259 -189Q233 -189 212 -185T177 -176L188 -119Q200 -123 213 -126T244 -129Q280 -129 280 -106Q280 -95 +269 -88T238 -72L231 -69Q235 -57 242 -40T257 -8Q206 -1 168 21T103 79T64 159T51 259Q51 319 68 369T118 455T196 512T300 533Q335 533 370 527T437 508L416 429Q395 439 368 445T309 451Q231 451 190 402T148 259Q148 217 157 182T187 122T240 84T318 70Q355 +70 385 77T432 92L445 14Q437 10 424 6T393 -2T357 -8T318 -12Z" /> +<glyph unicode="è" glyph-name="egrave" horiz-adv-x="559" d="M51 259Q51 328 71 379T124 465T200 516T288 533Q393 533 449 468T505 268Q505 262 505 253T504 235H148Q154 154 195 112T323 70Q372 70 405 78T456 95L469 17Q452 8 410 -2T313 -12Q245 -12 +196 8T114 65T67 150T51 259ZM408 310Q409 373 377 413T287 454Q255 454 231 442T189 409T163 363T150 310H408ZM226 776L354 622L307 580L166 717L226 776Z" /> +<glyph unicode="é" glyph-name="eacute" horiz-adv-x="559" d="M51 259Q51 328 71 379T124 465T200 516T288 533Q393 533 449 468T505 268Q505 262 505 253T504 235H148Q154 154 195 112T323 70Q372 70 405 78T456 95L469 17Q452 8 410 -2T313 -12Q245 -12 +196 8T114 65T67 150T51 259ZM408 310Q409 373 377 413T287 454Q255 454 231 442T189 409T163 363T150 310H408ZM407 717L266 580L219 622L347 776L407 717Z" /> +<glyph unicode="ê" glyph-name="ecircumflex" horiz-adv-x="559" d="M51 259Q51 328 71 379T124 465T200 516T288 533Q393 533 449 468T505 268Q505 262 505 253T504 235H148Q154 154 195 112T323 70Q372 70 405 78T456 95L469 17Q452 8 410 -2T313 -12Q245 +-12 196 8T114 65T67 150T51 259ZM408 310Q409 373 377 413T287 454Q255 454 231 442T189 409T163 363T150 310H408ZM286 769L422 626L383 582L286 670L189 582L150 626L286 769Z" /> +<glyph unicode="ë" glyph-name="edieresis" horiz-adv-x="559" d="M51 259Q51 328 71 379T124 465T200 516T288 533Q393 533 449 468T505 268Q505 262 505 253T504 235H148Q154 154 195 112T323 70Q372 70 405 78T456 95L469 17Q452 8 410 -2T313 -12Q245 +-12 196 8T114 65T67 150T51 259ZM408 310Q409 373 377 413T287 454Q255 454 231 442T189 409T163 363T150 310H408ZM191 616Q168 616 151 632T133 675Q133 701 150 717T191 734Q214 734 231 718T249 675Q249 649 232 633T191 616ZM381 616Q358 616 341 632T323 +675Q323 701 340 717T381 734Q404 734 421 718T439 675Q439 649 422 633T381 616Z" /> +<glyph unicode="ì" glyph-name="igrave" horiz-adv-x="253" d="M173 0H80V520H173V0ZM323 776L451 622L404 580L263 717L323 776Z" /> +<glyph unicode="í" glyph-name="iacute" horiz-adv-x="253" d="M173 0H80V520H173V0ZM504 717L363 580L316 622L444 776L504 717Z" /> +<glyph unicode="î" glyph-name="icircumflex" horiz-adv-x="253" d="M173 0H80V520H173V0ZM383 769L519 626L480 582L383 670L286 582L247 626L383 769Z" /> +<glyph unicode="ï" glyph-name="idieresis" horiz-adv-x="253" d="M173 0H80V520H173V0ZM288 616Q265 616 248 632T230 675Q230 701 247 717T288 734Q311 734 328 718T346 675Q346 649 329 633T288 616ZM478 616Q455 616 438 632T420 675Q420 701 437 717T478 +734Q501 734 518 718T536 675Q536 649 519 633T478 616Z" /> +<glyph unicode="ð" glyph-name="eth" horiz-adv-x="589" d="M564 657L457 620Q489 566 511 494T533 328Q533 262 522 201T482 92T407 16T287 -13Q228 -13 184 9T110 67T66 150T51 248Q51 304 67 349T114 425T187 473T285 490Q336 490 374 474T430 444Q418 +524 375 592L255 551L232 614L334 649Q301 688 250 725L309 776Q331 762 359 738T417 677L541 720L564 657ZM438 325Q438 333 438 341T437 357Q403 387 366 398T297 409Q256 409 228 397T181 362T155 311T146 248Q146 212 155 180T181 123T225 84T287 69Q333 69 +362 91T408 149T431 231T438 325Z" /> +<glyph unicode="ñ" glyph-name="ntilde" horiz-adv-x="574" d="M80 505Q112 513 165 522T287 531Q349 531 390 514T455 465T490 389T500 292V0H407V272Q407 320 401 354T379 409T339 439T277 449Q262 449 246 448T216 446T190 442T173 439V0H80V505ZM455 +711Q450 699 442 683T420 654T390 631T351 621Q331 621 314 628T280 643Q263 651 251 655T228 659Q211 659 197 645T174 615L126 639Q130 651 139 667T161 696T191 719T230 729Q250 729 267 722T301 707Q318 699 330 695T353 691Q370 691 384 705T407 735L455 711Z" +/> +<glyph unicode="ò" glyph-name="ograve" horiz-adv-x="590" d="M539 260Q539 198 521 148T471 62T393 7T295 -13Q242 -13 197 6T120 62T69 148T51 260Q51 321 69 371T119 458T197 513T295 533Q348 533 393 514T470 458T521 372T539 260ZM442 260Q442 348 +403 399T295 451Q227 451 188 400T148 260Q148 172 187 121T295 69Q363 69 402 120T442 260ZM235 776L363 622L316 580L175 717L235 776Z" /> +<glyph unicode="ó" glyph-name="oacute" horiz-adv-x="590" d="M539 260Q539 198 521 148T471 62T393 7T295 -13Q242 -13 197 6T120 62T69 148T51 260Q51 321 69 371T119 458T197 513T295 533Q348 533 393 514T470 458T521 372T539 260ZM442 260Q442 348 +403 399T295 451Q227 451 188 400T148 260Q148 172 187 121T295 69Q363 69 402 120T442 260ZM416 717L275 580L228 622L356 776L416 717Z" /> +<glyph unicode="ô" glyph-name="ocircumflex" horiz-adv-x="590" d="M539 260Q539 198 521 148T471 62T393 7T295 -13Q242 -13 197 6T120 62T69 148T51 260Q51 321 69 371T119 458T197 513T295 533Q348 533 393 514T470 458T521 372T539 260ZM442 260Q442 +348 403 399T295 451Q227 451 188 400T148 260Q148 172 187 121T295 69Q363 69 402 120T442 260ZM295 769L431 626L392 582L295 670L198 582L159 626L295 769Z" /> +<glyph unicode="õ" glyph-name="otilde" horiz-adv-x="590" d="M539 260Q539 198 521 148T471 62T393 7T295 -13Q242 -13 197 6T120 62T69 148T51 260Q51 321 69 371T119 458T197 513T295 533Q348 533 393 514T470 458T521 372T539 260ZM442 260Q442 348 +403 399T295 451Q227 451 188 400T148 260Q148 172 187 121T295 69Q363 69 402 120T442 260ZM460 711Q455 699 447 683T425 654T395 631T356 621Q336 621 319 628T285 643Q268 651 256 655T233 659Q216 659 202 645T179 615L131 639Q135 651 144 667T166 696T196 +719T235 729Q255 729 272 722T306 707Q323 699 335 695T358 691Q375 691 389 705T412 735L460 711Z" /> +<glyph unicode="ö" glyph-name="odieresis" horiz-adv-x="590" d="M539 260Q539 198 521 148T471 62T393 7T295 -13Q242 -13 197 6T120 62T69 148T51 260Q51 321 69 371T119 458T197 513T295 533Q348 533 393 514T470 458T521 372T539 260ZM442 260Q442 348 +403 399T295 451Q227 451 188 400T148 260Q148 172 187 121T295 69Q363 69 402 120T442 260ZM200 616Q177 616 160 632T142 675Q142 701 159 717T200 734Q223 734 240 718T258 675Q258 649 241 633T200 616ZM390 616Q367 616 350 632T332 675Q332 701 349 717T390 +734Q413 734 430 718T448 675Q448 649 431 633T390 616Z" /> +<glyph unicode="÷" glyph-name="divide" horiz-adv-x="564" d="M282 45Q257 45 240 61T222 106Q222 134 239 150T282 167Q307 167 324 151T342 106Q342 78 325 62T282 45ZM282 431Q257 431 240 447T222 492Q222 520 239 536T282 553Q307 553 324 537T342 +492Q342 464 325 448T282 431ZM53 339H511V260H53V339Z" /> +<glyph unicode="ø" glyph-name="oslash" horiz-adv-x="590" d="M480 445Q508 410 523 364T539 260Q539 198 521 148T471 62T393 7T295 -13Q216 -13 158 28L109 -36L56 4L110 74Q82 109 67 156T51 260Q51 321 69 371T119 458T197 513T295 533Q334 533 368 +522T432 491L481 555L534 515L480 445ZM147 260Q147 195 168 150L380 424Q344 452 295 452Q226 452 187 401T147 260ZM443 260Q443 322 421 369L210 95Q244 68 295 68Q364 68 403 119T443 260Z" /> +<glyph unicode="ù" glyph-name="ugrave" horiz-adv-x="574" d="M494 15Q462 7 410 -2T288 -11Q228 -11 187 6T121 56T85 131T74 228V520H167V248Q167 153 197 112T298 71Q313 71 329 72T359 74T384 77T401 81V520H494V15ZM224 776L352 622L305 580L164 717L224 776Z" /> +<glyph unicode="ú" glyph-name="uacute" horiz-adv-x="574" d="M494 15Q462 7 410 -2T288 -11Q228 -11 187 6T121 56T85 131T74 228V520H167V248Q167 153 197 112T298 71Q313 71 329 72T359 74T384 77T401 81V520H494V15ZM405 717L264 580L217 622L345 776L405 717Z" /> +<glyph unicode="û" glyph-name="ucircumflex" horiz-adv-x="574" d="M494 15Q462 7 410 -2T288 -11Q228 -11 187 6T121 56T85 131T74 228V520H167V248Q167 153 197 112T298 71Q313 71 329 72T359 74T384 77T401 81V520H494V15ZM284 769L420 626L381 582L284 +670L187 582L148 626L284 769Z" /> +<glyph unicode="ü" glyph-name="udieresis" horiz-adv-x="574" d="M494 15Q462 7 410 -2T288 -11Q228 -11 187 6T121 56T85 131T74 228V520H167V248Q167 153 197 112T298 71Q313 71 329 72T359 74T384 77T401 81V520H494V15ZM189 616Q166 616 149 632T131 +675Q131 701 148 717T189 734Q212 734 229 718T247 675Q247 649 230 633T189 616ZM379 616Q356 616 339 632T321 675Q321 701 338 717T379 734Q402 734 419 718T437 675Q437 649 420 633T379 616Z" /> +<glyph unicode="ý" glyph-name="yacute" horiz-adv-x="497" d="M19 -97Q30 -102 47 -106T82 -111Q137 -111 168 -87T224 -7Q161 113 107 247T16 520H116Q127 475 142 423T177 316T218 206T264 100Q302 205 330 308T383 520H479Q443 373 399 238T304 -16Q284 +-61 263 -93T215 -147T157 -178T83 -188Q72 -188 60 -187T37 -183T16 -177T2 -172L19 -97ZM382 717L241 580L194 622L322 776L382 717Z" /> +<glyph unicode="þ" glyph-name="thorn" horiz-adv-x="589" d="M441 259Q441 350 396 399T276 449Q261 449 245 447T215 443T189 437T173 432V110Q190 96 222 83T292 70Q332 70 360 84T407 124T433 184T441 259ZM538 259Q538 200 523 150T477 64T404 8T304 +-12Q259 -12 225 0T173 23V-185H80V760L173 776V511Q199 520 227 525T282 531Q339 531 386 512T467 458T519 373T538 259Z" /> +<glyph unicode="ÿ" glyph-name="ydieresis" horiz-adv-x="497" d="M19 -97Q30 -102 47 -106T82 -111Q137 -111 168 -87T224 -7Q161 113 107 247T16 520H116Q127 475 142 423T177 316T218 206T264 100Q302 205 330 308T383 520H479Q443 373 399 238T304 -16Q284 +-61 263 -93T215 -147T157 -178T83 -188Q72 -188 60 -187T37 -183T16 -177T2 -172L19 -97ZM166 616Q143 616 126 632T108 675Q108 701 125 717T166 734Q189 734 206 718T224 675Q224 649 207 633T166 616ZM356 616Q333 616 316 632T298 675Q298 701 315 717T356 +734Q379 734 396 718T414 675Q414 649 397 633T356 616Z" /> +<glyph unicode="–" glyph-name="endash" horiz-adv-x="496" d="M-2 339H498V260H-2V339Z" /> +<glyph unicode="—" glyph-name="emdash" horiz-adv-x="996" d="M-2 339H998V260H-2V339Z" /> +<glyph unicode="‘" glyph-name="quoteleft" horiz-adv-x="235" d="M60 520Q60 531 60 541T61 562Q65 614 84 665T130 760L202 737Q181 693 171 648T160 564Q160 554 160 543T162 520H60Z" /> +<glyph unicode="’" glyph-name="quoteright" horiz-adv-x="235" d="M175 750Q175 739 175 729T174 708Q170 656 151 606T105 510L33 533Q54 578 64 622T75 706Q75 716 75 727T73 750H175Z" /> +<glyph unicode="‚" glyph-name="quotesinglbase" horiz-adv-x="235" d="M175 114Q175 103 175 93T174 72Q170 20 151 -31T105 -126L33 -103Q54 -59 64 -14T75 70Q75 80 75 91T73 114H175Z" /> +<glyph unicode="“" glyph-name="quotedblleft" horiz-adv-x="417" d="M60 520Q60 531 60 541T61 562Q65 614 84 665T130 760L202 737Q181 693 171 648T160 564Q160 554 160 543T162 520H60ZM242 520Q242 531 242 541T243 562Q247 614 266 665T312 760L384 +737Q363 693 353 648T342 564Q342 554 342 543T344 520H242Z" /> +<glyph unicode="”" glyph-name="quotedblright" horiz-adv-x="417" d="M175 750Q175 739 175 729T174 708Q170 656 151 606T105 510L33 533Q54 578 64 622T75 706Q75 716 75 727T73 750H175ZM357 750Q357 739 357 729T356 708Q352 656 333 606T287 510L215 +533Q236 578 246 622T257 706Q257 716 257 727T255 750H357Z" /> +<glyph unicode="„" glyph-name="quotedblbase" horiz-adv-x="417" d="M175 114Q175 103 175 93T174 72Q170 20 151 -31T105 -126L33 -103Q54 -59 64 -14T75 70Q75 80 75 91T73 114H175ZM357 114Q357 103 357 93T356 72Q352 20 333 -31T287 -126L215 -103Q236 +-59 246 -14T257 70Q257 80 257 91T255 114H357Z" /> +<glyph unicode="•" glyph-name="bullet" horiz-adv-x="360" d="M308 353Q308 327 299 304T274 264T234 237T180 226Q150 226 127 236T87 264T61 304T52 353Q52 378 61 401T86 442T126 469T180 480Q210 480 233 470T273 442T299 402T308 353Z" /> +<glyph unicode="‹" glyph-name="guilsinglleft" horiz-adv-x="291" d="M30 284L186 505L251 470L140 284L251 98L186 63L30 284Z" /> +<glyph unicode="›" glyph-name="guilsinglright" horiz-adv-x="291" d="M105 63L40 98L151 284L40 470L105 505L261 284L105 63Z" /> +<hkern g1="quotesingle" g2="A" k="79" /> +<hkern g1="quotesingle" g2="C" k="25" /> +<hkern g1="quotesingle" g2="G" k="25" /> +<hkern g1="quotesingle" g2="J" k="123" /> +<hkern g1="quotesingle" g2="O" k="25" /> +<hkern g1="quotesingle" g2="Q" k="25" /> +<hkern g1="quotesingle" g2="V" k="-13" /> +<hkern g1="quotesingle" g2="W" k="-10" /> +<hkern g1="quotesingle" g2="Z" k="12" /> +<hkern g1="quotesingle" g2="AE" k="134" /> +<hkern g1="parenleft" g2="parenright" k="-80" /> +<hkern g1="parenleft" g2="C" k="30" /> +<hkern g1="parenleft" g2="G" k="30" /> +<hkern g1="parenleft" g2="O" k="30" /> +<hkern g1="parenleft" g2="Q" k="30" /> +<hkern g1="parenleft" g2="S" k="18" /> +<hkern g1="parenleft" g2="T" k="-11" /> +<hkern g1="parenleft" g2="U" k="10" /> +<hkern g1="parenleft" g2="V" k="-15" /> +<hkern g1="parenleft" g2="Y" k="-17" /> +<hkern g1="parenright" g2="A" k="20" /> +<hkern g1="parenright" g2="C" k="12" /> +<hkern g1="parenright" g2="G" k="12" /> +<hkern g1="parenright" g2="J" k="13" /> +<hkern g1="parenright" g2="O" k="12" /> +<hkern g1="parenright" g2="Q" k="12" /> +<hkern g1="parenright" g2="S" k="12" /> +<hkern g1="parenright" g2="T" k="28" /> +<hkern g1="parenright" g2="V" k="34" /> +<hkern g1="parenright" g2="W" k="18" /> +<hkern g1="parenright" g2="X" k="28" /> +<hkern g1="parenright" g2="Y" k="43" /> +<hkern g1="parenright" g2="Z" k="22" /> +<hkern g1="parenright" g2="AE" k="20" /> +<hkern g1="asterisk" g2="A" k="64" /> +<hkern g1="asterisk" g2="C" k="10" /> +<hkern g1="asterisk" g2="G" k="10" /> +<hkern g1="asterisk" g2="J" k="122" /> +<hkern g1="asterisk" g2="X" k="25" /> +<hkern g1="asterisk" g2="AE" k="97" /> +<hkern g1="hyphen" g2="J" k="28" /> +<hkern g1="hyphen" g2="T" k="50" /> +<hkern g1="hyphen" g2="V" k="12" /> +<hkern g1="hyphen" g2="X" k="31" /> +<hkern g1="hyphen" g2="Y" k="50" /> +<hkern g1="hyphen" g2="Z" k="16" /> +<hkern g1="hyphen" g2="AE" k="14" /> +<hkern g1="period" g2="A" k="-25" /> +<hkern g1="period" g2="C" k="29" /> +<hkern g1="period" g2="G" k="29" /> +<hkern g1="period" g2="J" k="-28" /> +<hkern g1="period" g2="O" k="33" /> +<hkern g1="period" g2="Q" k="33" /> +<hkern g1="period" g2="S" k="-14" /> +<hkern g1="period" g2="T" k="70" /> +<hkern g1="period" g2="U" k="23" /> +<hkern g1="period" g2="V" k="77" /> +<hkern g1="period" g2="W" k="40" /> +<hkern g1="period" g2="X" k="-10" /> +<hkern g1="period" g2="Y" k="80" /> +<hkern g1="period" g2="Z" k="-19" /> +<hkern g1="period" g2="AE" k="-19" /> +<hkern g1="slash" g2="A" k="50" /> +<hkern g1="slash" g2="C" k="27" /> +<hkern g1="slash" g2="G" k="27" /> +<hkern g1="slash" g2="J" k="71" /> +<hkern g1="slash" g2="O" k="26" /> +<hkern g1="slash" g2="Q" k="26" /> +<hkern g1="slash" g2="T" k="-29" /> +<hkern g1="slash" g2="V" k="-32" /> +<hkern g1="slash" g2="W" k="-22" /> +<hkern g1="slash" g2="X" k="-20" /> +<hkern g1="slash" g2="Y" k="-34" /> +<hkern g1="slash" g2="Z" k="-9" /> +<hkern g1="slash" g2="AE" k="77" /> +<hkern g1="colon" g2="C" k="11" /> +<hkern g1="colon" g2="G" k="11" /> +<hkern g1="colon" g2="O" k="11" /> +<hkern g1="colon" g2="Q" k="11" /> +<hkern g1="colon" g2="T" k="85" /> +<hkern g1="colon" g2="U" k="12" /> +<hkern g1="colon" g2="V" k="21" /> +<hkern g1="colon" g2="W" k="13" /> +<hkern g1="colon" g2="Y" k="40" /> +<hkern g1="at" g2="A" k="26" /> +<hkern g1="at" g2="C" k="10" /> +<hkern g1="at" g2="G" k="10" /> +<hkern g1="at" g2="J" k="26" /> +<hkern g1="at" g2="O" k="10" /> +<hkern g1="at" g2="Q" k="10" /> +<hkern g1="at" g2="S" k="18" /> +<hkern g1="at" g2="T" k="44" /> +<hkern g1="at" g2="U" k="12" /> +<hkern g1="at" g2="V" k="36" /> +<hkern g1="at" g2="W" k="23" /> +<hkern g1="at" g2="X" k="39" /> +<hkern g1="at" g2="Y" k="54" /> +<hkern g1="at" g2="Z" k="34" /> +<hkern g1="at" g2="AE" k="38" /> +<hkern g1="A" g2="quotesingle" k="78" /> +<hkern g1="A" g2="parenleft" k="19" /> +<hkern g1="A" g2="asterisk" k="63" /> +<hkern g1="A" g2="period" k="-26" /> +<hkern g1="A" g2="slash" k="-17" /> +<hkern g1="A" g2="at" k="15" /> +<hkern g1="A" g2="A" k="-33" /> +<hkern g1="A" g2="C" k="19" /> +<hkern g1="A" g2="G" k="19" /> +<hkern g1="A" g2="J" k="-29" /> +<hkern g1="A" g2="O" k="19" /> +<hkern g1="A" g2="Q" k="19" /> +<hkern g1="A" g2="S" k="-16" /> +<hkern g1="A" g2="T" k="64" /> +<hkern g1="A" g2="U" k="10" /> +<hkern g1="A" g2="V" k="62" /> +<hkern g1="A" g2="W" k="18" /> +<hkern g1="A" g2="X" k="-25" /> +<hkern g1="A" g2="Y" k="79" /> +<hkern g1="A" g2="Z" k="-19" /> +<hkern g1="A" g2="bracketright" k="27" /> +<hkern g1="A" g2="c" k="13" /> +<hkern g1="A" g2="d" k="13" /> +<hkern g1="A" g2="e" k="13" /> +<hkern g1="A" g2="g" k="16" /> +<hkern g1="A" g2="o" k="13" /> +<hkern g1="A" g2="q" k="13" /> +<hkern g1="A" g2="s" k="-13" /> +<hkern g1="A" g2="u" k="15" /> +<hkern g1="A" g2="v" k="21" /> +<hkern g1="A" g2="w" k="19" /> +<hkern g1="A" g2="x" k="-26" /> +<hkern g1="A" g2="y" k="15" /> +<hkern g1="A" g2="z" k="-15" /> +<hkern g1="A" g2="braceleft" k="20" /> +<hkern g1="A" g2="braceright" k="10" /> +<hkern g1="A" g2="quotesinglbase" k="-25" /> +<hkern g1="A" g2="guilsinglleft" k="19" /> +<hkern g1="A" g2="quoteleft" k="71" /> +<hkern g1="A" g2="quoteright" k="68" /> +<hkern g1="A" g2="AE" k="-34" /> +<hkern g1="A" g2="eth" k="13" /> +<hkern g1="B" g2="quotesingle" k="11" /> +<hkern g1="B" g2="parenleft" k="11" /> +<hkern g1="B" g2="parenright" k="25" /> +<hkern g1="B" g2="asterisk" k="11" /> +<hkern g1="B" g2="period" k="10" /> +<hkern g1="B" g2="slash" k="21" /> +<hkern g1="B" g2="colon" k="11" /> +<hkern g1="B" g2="question" k="20" /> +<hkern g1="B" g2="V" k="19" /> +<hkern g1="B" g2="W" k="13" /> +<hkern g1="B" g2="X" k="21" /> +<hkern g1="B" g2="Y" k="25" /> +<hkern g1="B" g2="bracketright" k="34" /> +<hkern g1="B" g2="z" k="13" /> +<hkern g1="B" g2="braceright" k="22" /> +<hkern g1="B" g2="AE" k="12" /> +<hkern g1="C" g2="parenleft" k="23" /> +<hkern g1="C" g2="hyphen" k="30" /> +<hkern g1="C" g2="period" k="-22" /> +<hkern g1="C" g2="question" k="-15" /> +<hkern g1="C" g2="at" k="17" /> +<hkern g1="C" g2="A" k="-22" /> +<hkern g1="C" g2="C" k="20" /> +<hkern g1="C" g2="G" k="20" /> +<hkern g1="C" g2="J" k="-23" /> +<hkern g1="C" g2="O" k="20" /> +<hkern g1="C" g2="Q" k="20" /> +<hkern g1="C" g2="S" k="-10" /> +<hkern g1="C" g2="T" k="-17" /> +<hkern g1="C" g2="V" k="-17" /> +<hkern g1="C" g2="X" k="-13" /> +<hkern g1="C" g2="Y" k="-17" /> +<hkern g1="C" g2="Z" k="-10" /> +<hkern g1="C" g2="bracketleft" k="10" /> +<hkern g1="C" g2="c" k="15" /> +<hkern g1="C" g2="d" k="15" /> +<hkern g1="C" g2="e" k="15" /> +<hkern g1="C" g2="g" k="15" /> +<hkern g1="C" g2="o" k="15" /> +<hkern g1="C" g2="q" k="15" /> +<hkern g1="C" g2="u" k="20" /> +<hkern g1="C" g2="v" k="16" /> +<hkern g1="C" g2="w" k="17" /> +<hkern g1="C" g2="x" k="-14" /> +<hkern g1="C" g2="y" k="16" /> +<hkern g1="C" g2="braceleft" k="28" /> +<hkern g1="C" g2="quotesinglbase" k="-18" /> +<hkern g1="C" g2="guilsinglleft" k="45" /> +<hkern g1="C" g2="quoteright" k="-13" /> +<hkern g1="C" g2="AE" k="-22" /> +<hkern g1="C" g2="eth" k="15" /> +<hkern g1="D" g2="exclam" k="14" /> +<hkern g1="D" g2="quotesingle" k="26" /> +<hkern g1="D" g2="parenleft" k="12" /> +<hkern g1="D" g2="parenright" k="33" /> +<hkern g1="D" g2="period" k="33" /> +<hkern g1="D" g2="slash" k="43" /> +<hkern g1="D" g2="question" k="39" /> +<hkern g1="D" g2="at" k="11" /> +<hkern g1="D" g2="A" k="19" /> +<hkern g1="D" g2="J" k="25" /> +<hkern g1="D" g2="S" k="11" /> +<hkern g1="D" g2="T" k="27" /> +<hkern g1="D" g2="V" k="17" /> +<hkern g1="D" g2="W" k="17" /> +<hkern g1="D" g2="X" k="24" /> +<hkern g1="D" g2="Y" k="41" /> +<hkern g1="D" g2="Z" k="15" /> +<hkern g1="D" g2="bracketleft" k="11" /> +<hkern g1="D" g2="bracketright" k="42" /> +<hkern g1="D" g2="a" k="14" /> +<hkern g1="D" g2="braceright" k="29" /> +<hkern g1="D" g2="quotesinglbase" k="34" /> +<hkern g1="D" g2="quoteleft" k="20" /> +<hkern g1="D" g2="quoteright" k="12" /> +<hkern g1="D" g2="AE" k="42" /> +<hkern g1="E" g2="quotesingle" k="16" /> +<hkern g1="E" g2="parenleft" k="21" /> +<hkern g1="E" g2="asterisk" k="13" /> +<hkern g1="E" g2="period" k="-11" /> +<hkern g1="E" g2="at" k="16" /> +<hkern g1="E" g2="A" k="-17" /> +<hkern g1="E" g2="C" k="28" /> +<hkern g1="E" g2="G" k="28" /> +<hkern g1="E" g2="J" k="-17" /> +<hkern g1="E" g2="O" k="28" /> +<hkern g1="E" g2="Q" k="28" /> +<hkern g1="E" g2="U" k="22" /> +<hkern g1="E" g2="bracketleft" k="17" /> +<hkern g1="E" g2="bracketright" k="43" /> +<hkern g1="E" g2="c" k="16" /> +<hkern g1="E" g2="d" k="17" /> +<hkern g1="E" g2="e" k="16" /> +<hkern g1="E" g2="g" k="23" /> +<hkern g1="E" g2="o" k="17" /> +<hkern g1="E" g2="q" k="15" /> +<hkern g1="E" g2="t" k="14" /> +<hkern g1="E" g2="u" k="19" /> +<hkern g1="E" g2="v" k="25" /> +<hkern g1="E" g2="w" k="25" /> +<hkern g1="E" g2="x" k="-9" /> +<hkern g1="E" g2="y" k="25" /> +<hkern g1="E" g2="braceleft" k="19" /> +<hkern g1="E" g2="braceright" k="22" /> +<hkern g1="E" g2="guilsinglleft" k="23" /> +<hkern g1="E" g2="quoteleft" k="13" /> +<hkern g1="E" g2="AE" k="-18" /> +<hkern g1="E" g2="eth" k="15" /> +<hkern g1="F" g2="exclam" k="10" /> +<hkern g1="F" g2="parenleft" k="24" /> +<hkern g1="F" g2="period" k="65" /> +<hkern g1="F" g2="slash" k="60" /> +<hkern g1="F" g2="colon" k="18" /> +<hkern g1="F" g2="question" k="-13" /> +<hkern g1="F" g2="at" k="18" /> +<hkern g1="F" g2="A" k="46" /> +<hkern g1="F" g2="C" k="13" /> +<hkern g1="F" g2="G" k="13" /> +<hkern g1="F" g2="J" k="80" /> +<hkern g1="F" g2="O" k="13" /> +<hkern g1="F" g2="Q" k="13" /> +<hkern g1="F" g2="T" k="-14" /> +<hkern g1="F" g2="V" k="-18" /> +<hkern g1="F" g2="Y" k="-20" /> +<hkern g1="F" g2="bracketleft" k="15" /> +<hkern g1="F" g2="bracketright" k="41" /> +<hkern g1="F" g2="a" k="51" /> +<hkern g1="F" g2="c" k="14" /> +<hkern g1="F" g2="d" k="14" /> +<hkern g1="F" g2="e" k="14" /> +<hkern g1="F" g2="g" k="14" /> +<hkern g1="F" g2="n" k="28" /> +<hkern g1="F" g2="o" k="14" /> +<hkern g1="F" g2="p" k="28" /> +<hkern g1="F" g2="q" k="14" /> +<hkern g1="F" g2="r" k="28" /> +<hkern g1="F" g2="u" k="25" /> +<hkern g1="F" g2="x" k="36" /> +<hkern g1="F" g2="z" k="26" /> +<hkern g1="F" g2="quotesinglbase" k="103" /> +<hkern g1="F" g2="guilsinglright" k="21" /> +<hkern g1="F" g2="AE" k="76" /> +<hkern g1="F" g2="eth" k="15" /> +<hkern g1="G" g2="parenright" k="10" /> +<hkern g1="G" g2="asterisk" k="25" /> +<hkern g1="G" g2="bracketright" k="10" /> +<hkern g1="G" g2="v" k="18" /> +<hkern g1="G" g2="y" k="18" /> +<hkern g1="G" g2="braceright" k="10" /> +<hkern g1="J" g2="parenright" k="10" /> +<hkern g1="J" g2="period" k="10" /> +<hkern g1="J" g2="slash" k="36" /> +<hkern g1="J" g2="A" k="10" /> +<hkern g1="J" g2="J" k="15" /> +<hkern g1="J" g2="Z" k="17" /> +<hkern g1="J" g2="bracketright" k="34" /> +<hkern g1="J" g2="z" k="18" /> +<hkern g1="J" g2="braceright" k="19" /> +<hkern g1="J" g2="quotesinglbase" k="13" /> +<hkern g1="J" g2="AE" k="25" /> +<hkern g1="K" g2="parenleft" k="18" /> +<hkern g1="K" g2="asterisk" k="33" /> +<hkern g1="K" g2="hyphen" k="47" /> +<hkern g1="K" g2="period" k="-16" /> +<hkern g1="K" g2="slash" k="-18" /> +<hkern g1="K" g2="question" k="-11" /> +<hkern g1="K" g2="at" k="19" /> +<hkern g1="K" g2="A" k="-34" /> +<hkern g1="K" g2="C" k="35" /> +<hkern g1="K" g2="G" k="35" /> +<hkern g1="K" g2="J" k="-27" /> +<hkern g1="K" g2="O" k="35" /> +<hkern g1="K" g2="Q" k="35" /> +<hkern g1="K" g2="T" k="-17" /> +<hkern g1="K" g2="V" k="-20" /> +<hkern g1="K" g2="W" k="-10" /> +<hkern g1="K" g2="X" k="-26" /> +<hkern g1="K" g2="Y" k="-22" /> +<hkern g1="K" g2="Z" k="-21" /> +<hkern g1="K" g2="bracketright" k="26" /> +<hkern g1="K" g2="c" k="21" /> +<hkern g1="K" g2="d" k="21" /> +<hkern g1="K" g2="e" k="21" /> +<hkern g1="K" g2="g" k="21" /> +<hkern g1="K" g2="o" k="21" /> +<hkern g1="K" g2="q" k="21" /> +<hkern g1="K" g2="s" k="-14" /> +<hkern g1="K" g2="u" k="13" /> +<hkern g1="K" g2="v" k="14" /> +<hkern g1="K" g2="w" k="48" /> +<hkern g1="K" g2="x" k="-27" /> +<hkern g1="K" g2="y" k="10" /> +<hkern g1="K" g2="z" k="-16" /> +<hkern g1="K" g2="braceleft" k="19" /> +<hkern g1="K" g2="quotesinglbase" k="-15" /> +<hkern g1="K" g2="guilsinglleft" k="61" /> +<hkern g1="K" g2="AE" k="-35" /> +<hkern g1="K" g2="idieresis" k="-21" /> +<hkern g1="K" g2="eth" k="25" /> +<hkern g1="L" g2="quotesingle" k="126" /> +<hkern g1="L" g2="parenleft" k="10" /> +<hkern g1="L" g2="asterisk" k="139" /> +<hkern g1="L" g2="hyphen" k="69" /> +<hkern g1="L" g2="period" k="-23" /> +<hkern g1="L" g2="slash" k="-12" /> +<hkern g1="L" g2="A" k="-28" /> +<hkern g1="L" g2="C" k="45" /> +<hkern g1="L" g2="G" k="45" /> +<hkern g1="L" g2="J" k="-28" /> +<hkern g1="L" g2="O" k="45" /> +<hkern g1="L" g2="Q" k="45" /> +<hkern g1="L" g2="S" k="-14" /> +<hkern g1="L" g2="T" k="115" /> +<hkern g1="L" g2="U" k="18" /> +<hkern g1="L" g2="V" k="100" /> +<hkern g1="L" g2="W" k="45" /> +<hkern g1="L" g2="X" k="-20" /> +<hkern g1="L" g2="Y" k="115" /> +<hkern g1="L" g2="Z" k="-14" /> +<hkern g1="L" g2="bracketright" k="32" /> +<hkern g1="L" g2="c" k="12" /> +<hkern g1="L" g2="d" k="12" /> +<hkern g1="L" g2="e" k="12" /> +<hkern g1="L" g2="g" k="12" /> +<hkern g1="L" g2="o" k="12" /> +<hkern g1="L" g2="q" k="12" /> +<hkern g1="L" g2="v" k="40" /> +<hkern g1="L" g2="w" k="37" /> +<hkern g1="L" g2="x" k="-21" /> +<hkern g1="L" g2="y" k="20" /> +<hkern g1="L" g2="z" k="-10" /> +<hkern g1="L" g2="braceleft" k="24" /> +<hkern g1="L" g2="braceright" k="15" /> +<hkern g1="L" g2="quotesinglbase" k="-14" /> +<hkern g1="L" g2="guilsinglleft" k="39" /> +<hkern g1="L" g2="quoteleft" k="120" /> +<hkern g1="L" g2="quoteright" k="118" /> +<hkern g1="L" g2="guilsinglright" k="-11" /> +<hkern g1="L" g2="AE" k="-29" /> +<hkern g1="M" g2="V" k="6" /> +<hkern g1="M" g2="Y" k="8" /> +<hkern g1="O" g2="exclam" k="14" /> +<hkern g1="O" g2="quotesingle" k="23" /> +<hkern g1="O" g2="parenleft" k="12" /> +<hkern g1="O" g2="parenright" k="28" /> +<hkern g1="O" g2="period" k="33" /> +<hkern g1="O" g2="slash" k="42" /> +<hkern g1="O" g2="question" k="34" /> +<hkern g1="O" g2="at" k="11" /> +<hkern g1="O" g2="A" k="19" /> +<hkern g1="O" g2="J" k="25" /> +<hkern g1="O" g2="S" k="10" /> +<hkern g1="O" g2="T" k="27" /> +<hkern g1="O" g2="V" k="17" /> +<hkern g1="O" g2="W" k="16" /> +<hkern g1="O" g2="X" k="24" /> +<hkern g1="O" g2="Y" k="41" /> +<hkern g1="O" g2="Z" k="15" /> +<hkern g1="O" g2="bracketleft" k="10" /> +<hkern g1="O" g2="bracketright" k="42" /> +<hkern g1="O" g2="a" k="13" /> +<hkern g1="O" g2="braceright" k="29" /> +<hkern g1="O" g2="quotesinglbase" k="30" /> +<hkern g1="O" g2="quoteleft" k="16" /> +<hkern g1="O" g2="quoteright" k="10" /> +<hkern g1="O" g2="AE" k="40" /> +<hkern g1="P" g2="exclam" k="11" /> +<hkern g1="P" g2="parenleft" k="12" /> +<hkern g1="P" g2="parenright" k="24" /> +<hkern g1="P" g2="period" k="90" /> +<hkern g1="P" g2="slash" k="62" /> +<hkern g1="P" g2="A" k="50" /> +<hkern g1="P" g2="J" k="95" /> +<hkern g1="P" g2="X" k="18" /> +<hkern g1="P" g2="bracketleft" k="15" /> +<hkern g1="P" g2="bracketright" k="41" /> +<hkern g1="P" g2="a" k="19" /> +<hkern g1="P" g2="c" k="21" /> +<hkern g1="P" g2="d" k="21" /> +<hkern g1="P" g2="e" k="32" /> +<hkern g1="P" g2="g" k="21" /> +<hkern g1="P" g2="o" k="21" /> +<hkern g1="P" g2="q" k="11" /> +<hkern g1="P" g2="v" k="-10" /> +<hkern g1="P" g2="w" k="-9" /> +<hkern g1="P" g2="y" k="-10" /> +<hkern g1="P" g2="braceright" k="24" /> +<hkern g1="P" g2="quotesinglbase" k="115" /> +<hkern g1="P" g2="guilsinglleft" k="18" /> +<hkern g1="P" g2="quoteright" k="-10" /> +<hkern g1="P" g2="AE" k="84" /> +<hkern g1="P" g2="eth" k="16" /> +<hkern g1="Q" g2="exclam" k="14" /> +<hkern g1="Q" g2="quotesingle" k="23" /> +<hkern g1="Q" g2="parenleft" k="12" /> +<hkern g1="Q" g2="period" k="33" /> +<hkern g1="Q" g2="question" k="34" /> +<hkern g1="Q" g2="at" k="11" /> +<hkern g1="Q" g2="A" k="19" /> +<hkern g1="Q" g2="J" k="25" /> +<hkern g1="Q" g2="S" k="10" /> +<hkern g1="Q" g2="T" k="27" /> +<hkern g1="Q" g2="V" k="17" /> +<hkern g1="Q" g2="W" k="16" /> +<hkern g1="Q" g2="X" k="24" /> +<hkern g1="Q" g2="Y" k="41" /> +<hkern g1="Q" g2="Z" k="15" /> +<hkern g1="Q" g2="bracketleft" k="10" /> +<hkern g1="Q" g2="a" k="14" /> +<hkern g1="Q" g2="j" k="-15" /> +<hkern g1="Q" g2="quotesinglbase" k="20" /> +<hkern g1="Q" g2="quoteleft" k="16" /> +<hkern g1="Q" g2="quoteright" k="10" /> +<hkern g1="Q" g2="AE" k="40" /> +<hkern g1="R" g2="parenleft" k="12" /> +<hkern g1="R" g2="period" k="-14" /> +<hkern g1="R" g2="slash" k="-12" /> +<hkern g1="R" g2="question" k="13" /> +<hkern g1="R" g2="at" k="15" /> +<hkern g1="R" g2="A" k="-28" /> +<hkern g1="R" g2="C" k="11" /> +<hkern g1="R" g2="G" k="11" /> +<hkern g1="R" g2="J" k="-22" /> +<hkern g1="R" g2="O" k="11" /> +<hkern g1="R" g2="Q" k="11" /> +<hkern g1="R" g2="V" k="10" /> +<hkern g1="R" g2="X" k="-19" /> +<hkern g1="R" g2="Y" k="19" /> +<hkern g1="R" g2="Z" k="-14" /> +<hkern g1="R" g2="bracketright" k="33" /> +<hkern g1="R" g2="x" k="-21" /> +<hkern g1="R" g2="z" k="-9" /> +<hkern g1="R" g2="braceleft" k="17" /> +<hkern g1="R" g2="braceright" k="16" /> +<hkern g1="R" g2="quotesinglbase" k="-14" /> +<hkern g1="R" g2="guilsinglleft" k="20" /> +<hkern g1="R" g2="AE" k="-29" /> +<hkern g1="R" g2="eth" k="15" /> +<hkern g1="T" g2="parenleft" k="27" /> +<hkern g1="T" g2="parenright" k="-12" /> +<hkern g1="T" g2="hyphen" k="49" /> +<hkern g1="T" g2="period" k="75" /> +<hkern g1="T" g2="slash" k="86" /> +<hkern g1="T" g2="colon" k="84" /> +<hkern g1="T" g2="question" k="-22" /> +<hkern g1="T" g2="at" k="51" /> +<hkern g1="T" g2="A" k="64" /> +<hkern g1="T" g2="C" k="27" /> +<hkern g1="T" g2="G" k="27" /> +<hkern g1="T" g2="J" k="90" /> +<hkern g1="T" g2="O" k="27" /> +<hkern g1="T" g2="Q" k="27" /> +<hkern g1="T" g2="T" k="-24" /> +<hkern g1="T" g2="V" k="-27" /> +<hkern g1="T" g2="W" k="-17" /> +<hkern g1="T" g2="X" k="-15" /> +<hkern g1="T" g2="Y" k="-29" /> +<hkern g1="T" g2="bracketright" k="32" /> +<hkern g1="T" g2="a" k="45" /> +<hkern g1="T" g2="c" k="55" /> +<hkern g1="T" g2="d" k="55" /> +<hkern g1="T" g2="e" k="55" /> +<hkern g1="T" g2="g" k="55" /> +<hkern g1="T" g2="n" k="40" /> +<hkern g1="T" g2="o" k="55" /> +<hkern g1="T" g2="p" k="40" /> +<hkern g1="T" g2="q" k="55" /> +<hkern g1="T" g2="r" k="40" /> +<hkern g1="T" g2="s" k="45" /> +<hkern g1="T" g2="u" k="34" /> +<hkern g1="T" g2="v" k="22" /> +<hkern g1="T" g2="w" k="81" /> +<hkern g1="T" g2="x" k="18" /> +<hkern g1="T" g2="y" k="22" /> +<hkern g1="T" g2="z" k="30" /> +<hkern g1="T" g2="braceleft" k="24" /> +<hkern g1="T" g2="quotesinglbase" k="67" /> +<hkern g1="T" g2="guilsinglleft" k="85" /> +<hkern g1="T" g2="guilsinglright" k="76" /> +<hkern g1="T" g2="AE" k="72" /> +<hkern g1="T" g2="icircumflex" k="-21" /> +<hkern g1="T" g2="idieresis" k="-31" /> +<hkern g1="T" g2="eth" k="79" /> +<hkern g1="U" g2="parenleft" k="10" /> +<hkern g1="U" g2="period" k="10" /> +<hkern g1="U" g2="slash" k="41" /> +<hkern g1="U" g2="colon" k="10" /> +<hkern g1="U" g2="A" k="10" /> +<hkern g1="U" g2="J" k="15" /> +<hkern g1="U" g2="Z" k="16" /> +<hkern g1="U" g2="bracketright" k="37" /> +<hkern g1="U" g2="a" k="16" /> +<hkern g1="U" g2="z" k="18" /> +<hkern g1="U" g2="braceleft" k="10" /> +<hkern g1="U" g2="braceright" k="22" /> +<hkern g1="U" g2="quotesinglbase" k="21" /> +<hkern g1="U" g2="AE" k="34" /> +<hkern g1="V" g2="quotesingle" k="-14" /> +<hkern g1="V" g2="parenleft" k="33" /> +<hkern g1="V" g2="parenright" k="-16" /> +<hkern g1="V" g2="hyphen" k="10" /> +<hkern g1="V" g2="period" k="75" /> +<hkern g1="V" g2="slash" k="67" /> +<hkern g1="V" g2="colon" k="20" /> +<hkern g1="V" g2="question" k="-24" /> +<hkern g1="V" g2="at" k="38" /> +<hkern g1="V" g2="A" k="62" /> +<hkern g1="V" g2="C" k="17" /> +<hkern g1="V" g2="G" k="17" /> +<hkern g1="V" g2="J" k="95" /> +<hkern g1="V" g2="M" k="6" /> +<hkern g1="V" g2="O" k="17" /> +<hkern g1="V" g2="Q" k="17" /> +<hkern g1="V" g2="T" k="-28" /> +<hkern g1="V" g2="V" k="-31" /> +<hkern g1="V" g2="W" k="-21" /> +<hkern g1="V" g2="X" k="-19" /> +<hkern g1="V" g2="Y" k="-33" /> +<hkern g1="V" g2="bracketright" k="28" /> +<hkern g1="V" g2="a" k="25" /> +<hkern g1="V" g2="c" k="45" /> +<hkern g1="V" g2="d" k="45" /> +<hkern g1="V" g2="e" k="45" /> +<hkern g1="V" g2="g" k="45" /> +<hkern g1="V" g2="n" k="30" /> +<hkern g1="V" g2="o" k="45" /> +<hkern g1="V" g2="p" k="30" /> +<hkern g1="V" g2="q" k="45" /> +<hkern g1="V" g2="r" k="30" /> +<hkern g1="V" g2="s" k="15" /> +<hkern g1="V" g2="u" k="24" /> +<hkern g1="V" g2="z" k="2" /> +<hkern g1="V" g2="braceleft" k="24" /> +<hkern g1="V" g2="quotesinglbase" k="74" /> +<hkern g1="V" g2="guilsinglleft" k="43" /> +<hkern g1="V" g2="quoteleft" k="-19" /> +<hkern g1="V" g2="quoteright" k="-24" /> +<hkern g1="V" g2="guilsinglright" k="11" /> +<hkern g1="V" g2="AE" k="82" /> +<hkern g1="V" g2="igrave" k="-11" /> +<hkern g1="V" g2="idieresis" k="-32" /> +<hkern g1="V" g2="eth" k="51" /> +<hkern g1="W" g2="quotesingle" k="-13" /> +<hkern g1="W" g2="parenleft" k="16" /> +<hkern g1="W" g2="period" k="37" /> +<hkern g1="W" g2="slash" k="47" /> +<hkern g1="W" g2="colon" k="11" /> +<hkern g1="W" g2="question" k="-16" /> +<hkern g1="W" g2="at" k="19" /> +<hkern g1="W" g2="A" k="18" /> +<hkern g1="W" g2="C" k="16" /> +<hkern g1="W" g2="G" k="16" /> +<hkern g1="W" g2="J" k="60" /> +<hkern g1="W" g2="O" k="16" /> +<hkern g1="W" g2="Q" k="16" /> +<hkern g1="W" g2="T" k="-19" /> +<hkern g1="W" g2="V" k="-22" /> +<hkern g1="W" g2="W" k="-12" /> +<hkern g1="W" g2="X" k="-10" /> +<hkern g1="W" g2="Y" k="-24" /> +<hkern g1="W" g2="bracketright" k="37" /> +<hkern g1="W" g2="a" k="29" /> +<hkern g1="W" g2="c" k="22" /> +<hkern g1="W" g2="d" k="22" /> +<hkern g1="W" g2="e" k="22" /> +<hkern g1="W" g2="g" k="26" /> +<hkern g1="W" g2="n" k="21" /> +<hkern g1="W" g2="o" k="22" /> +<hkern g1="W" g2="p" k="21" /> +<hkern g1="W" g2="q" k="22" /> +<hkern g1="W" g2="r" k="21" /> +<hkern g1="W" g2="s" k="17" /> +<hkern g1="W" g2="u" k="19" /> +<hkern g1="W" g2="braceleft" k="17" /> +<hkern g1="W" g2="quotesinglbase" k="38" /> +<hkern g1="W" g2="guilsinglleft" k="20" /> +<hkern g1="W" g2="quoteleft" k="-18" /> +<hkern g1="W" g2="quoteright" k="-25" /> +<hkern g1="W" g2="AE" k="49" /> +<hkern g1="W" g2="idieresis" k="-18" /> +<hkern g1="W" g2="eth" k="26" /> +<hkern g1="X" g2="parenleft" k="25" /> +<hkern g1="X" g2="asterisk" k="26" /> +<hkern g1="X" g2="hyphen" k="28" /> +<hkern g1="X" g2="period" k="-13" /> +<hkern g1="X" g2="slash" k="-10" /> +<hkern g1="X" g2="at" k="26" /> +<hkern g1="X" g2="A" k="-27" /> +<hkern g1="X" g2="C" k="24" /> +<hkern g1="X" g2="G" k="24" /> +<hkern g1="X" g2="J" k="-20" /> +<hkern g1="X" g2="O" k="24" /> +<hkern g1="X" g2="Q" k="24" /> +<hkern g1="X" g2="T" k="-13" /> +<hkern g1="X" g2="V" k="-17" /> +<hkern g1="X" g2="X" k="-18" /> +<hkern g1="X" g2="Y" k="-19" /> +<hkern g1="X" g2="Z" k="-13" /> +<hkern g1="X" g2="bracketright" k="34" /> +<hkern g1="X" g2="c" k="18" /> +<hkern g1="X" g2="d" k="18" /> +<hkern g1="X" g2="e" k="18" /> +<hkern g1="X" g2="g" k="18" /> +<hkern g1="X" g2="o" k="18" /> +<hkern g1="X" g2="q" k="18" /> +<hkern g1="X" g2="u" k="10" /> +<hkern g1="X" g2="v" k="11" /> +<hkern g1="X" g2="w" k="37" /> +<hkern g1="X" g2="x" k="-19" /> +<hkern g1="X" g2="y" k="7" /> +<hkern g1="X" g2="braceleft" k="26" /> +<hkern g1="X" g2="quotesinglbase" k="-10" /> +<hkern g1="X" g2="guilsinglleft" k="47" /> +<hkern g1="X" g2="AE" k="-28" /> +<hkern g1="X" g2="eth" k="29" /> +<hkern g1="Y" g2="parenleft" k="42" /> +<hkern g1="Y" g2="parenright" k="-18" /> +<hkern g1="Y" g2="hyphen" k="49" /> +<hkern g1="Y" g2="period" k="65" /> +<hkern g1="Y" g2="slash" k="82" /> +<hkern g1="Y" g2="colon" k="38" /> +<hkern g1="Y" g2="question" k="-25" /> +<hkern g1="Y" g2="at" k="58" /> +<hkern g1="Y" g2="A" k="79" /> +<hkern g1="Y" g2="C" k="41" /> +<hkern g1="Y" g2="G" k="41" /> +<hkern g1="Y" g2="J" k="115" /> +<hkern g1="Y" g2="M" k="8" /> +<hkern g1="Y" g2="O" k="41" /> +<hkern g1="Y" g2="Q" k="41" /> +<hkern g1="Y" g2="T" k="-30" /> +<hkern g1="Y" g2="V" k="-33" /> +<hkern g1="Y" g2="W" k="-23" /> +<hkern g1="Y" g2="X" k="-21" /> +<hkern g1="Y" g2="Y" k="-35" /> +<hkern g1="Y" g2="Z" k="-11" /> +<hkern g1="Y" g2="bracketright" k="26" /> +<hkern g1="Y" g2="a" k="41" /> +<hkern g1="Y" g2="c" k="49" /> +<hkern g1="Y" g2="d" k="49" /> +<hkern g1="Y" g2="e" k="49" /> +<hkern g1="Y" g2="g" k="49" /> +<hkern g1="Y" g2="n" k="40" /> +<hkern g1="Y" g2="o" k="49" /> +<hkern g1="Y" g2="p" k="40" /> +<hkern g1="Y" g2="q" k="49" /> +<hkern g1="Y" g2="r" k="40" /> +<hkern g1="Y" g2="s" k="20" /> +<hkern g1="Y" g2="u" k="34" /> +<hkern g1="Y" g2="x" k="15" /> +<hkern g1="Y" g2="z" k="28" /> +<hkern g1="Y" g2="braceleft" k="22" /> +<hkern g1="Y" g2="quotesinglbase" k="78" /> +<hkern g1="Y" g2="guilsinglleft" k="76" /> +<hkern g1="Y" g2="quoteleft" k="-11" /> +<hkern g1="Y" g2="quoteright" k="-17" /> +<hkern g1="Y" g2="guilsinglright" k="32" /> +<hkern g1="Y" g2="AE" k="80" /> +<hkern g1="Y" g2="idieresis" k="-41" /> +<hkern g1="Y" g2="eth" k="78" /> +<hkern g1="Z" g2="parenleft" k="21" /> +<hkern g1="Z" g2="hyphen" k="60" /> +<hkern g1="Z" g2="period" k="-11" /> +<hkern g1="Z" g2="at" k="16" /> +<hkern g1="Z" g2="A" k="-17" /> +<hkern g1="Z" g2="C" k="36" /> +<hkern g1="Z" g2="G" k="36" /> +<hkern g1="Z" g2="J" k="-17" /> +<hkern g1="Z" g2="O" k="36" /> +<hkern g1="Z" g2="Q" k="36" /> +<hkern g1="Z" g2="U" k="14" /> +<hkern g1="Z" g2="V" k="-10" /> +<hkern g1="Z" g2="Y" k="-12" /> +<hkern g1="Z" g2="bracketleft" k="17" /> +<hkern g1="Z" g2="bracketright" k="43" /> +<hkern g1="Z" g2="c" k="16" /> +<hkern g1="Z" g2="d" k="17" /> +<hkern g1="Z" g2="e" k="16" /> +<hkern g1="Z" g2="g" k="23" /> +<hkern g1="Z" g2="o" k="17" /> +<hkern g1="Z" g2="q" k="15" /> +<hkern g1="Z" g2="t" k="13" /> +<hkern g1="Z" g2="u" k="19" /> +<hkern g1="Z" g2="v" k="23" /> +<hkern g1="Z" g2="w" k="24" /> +<hkern g1="Z" g2="x" k="-9" /> +<hkern g1="Z" g2="y" k="23" /> +<hkern g1="Z" g2="braceleft" k="35" /> +<hkern g1="Z" g2="braceright" k="15" /> +<hkern g1="Z" g2="guilsinglleft" k="50" /> +<hkern g1="Z" g2="AE" k="-18" /> +<hkern g1="Z" g2="idieresis" k="-10" /> +<hkern g1="Z" g2="eth" k="15" /> +<hkern g1="bracketleft" g2="A" k="28" /> +<hkern g1="bracketleft" g2="C" k="43" /> +<hkern g1="bracketleft" g2="G" k="43" /> +<hkern g1="bracketleft" g2="J" k="28" /> +<hkern g1="bracketleft" g2="O" k="43" /> +<hkern g1="bracketleft" g2="Q" k="43" /> +<hkern g1="bracketleft" g2="S" k="26" /> +<hkern g1="bracketleft" g2="T" k="33" /> +<hkern g1="bracketleft" g2="U" k="38" /> +<hkern g1="bracketleft" g2="V" k="29" /> +<hkern g1="bracketleft" g2="W" k="37" /> +<hkern g1="bracketleft" g2="X" k="36" /> +<hkern g1="bracketleft" g2="Y" k="27" /> +<hkern g1="bracketleft" g2="Z" k="41" /> +<hkern g1="bracketleft" g2="bracketright" k="-80" /> +<hkern g1="bracketleft" g2="AE" k="27" /> +<hkern g1="bracketright" g2="C" k="10" /> +<hkern g1="bracketright" g2="G" k="10" /> +<hkern g1="bracketright" g2="O" k="10" /> +<hkern g1="bracketright" g2="Q" k="10" /> +<hkern g1="bracketright" g2="W" k="10" /> +<hkern g1="bracketright" g2="X" k="10" /> +<hkern g1="bracketright" g2="Z" k="16" /> +<hkern g1="a" g2="quotesingle" k="27" /> +<hkern g1="a" g2="parenright" k="24" /> +<hkern g1="a" g2="asterisk" k="20" /> +<hkern g1="a" g2="question" k="28" /> +<hkern g1="a" g2="bracketright" k="30" /> +<hkern g1="a" g2="v" k="15" /> +<hkern g1="a" g2="w" k="12" /> +<hkern g1="a" g2="y" k="15" /> +<hkern g1="a" g2="braceright" k="21" /> +<hkern g1="a" g2="quoteright" k="24" /> +<hkern g1="b" g2="quotesingle" k="37" /> +<hkern g1="b" g2="parenright" k="27" /> +<hkern g1="b" g2="slash" k="22" /> +<hkern g1="b" g2="question" k="28" /> +<hkern g1="b" g2="bracketright" k="30" /> +<hkern g1="b" g2="v" k="13" /> +<hkern g1="b" g2="w" k="12" /> +<hkern g1="b" g2="x" k="17" /> +<hkern g1="b" g2="y" k="13" /> +<hkern g1="b" g2="z" k="20" /> +<hkern g1="b" g2="braceright" k="21" /> +<hkern g1="b" g2="quoteleft" k="33" /> +<hkern g1="b" g2="quoteright" k="33" /> +<hkern g1="c" g2="hyphen" k="32" /> +<hkern g1="c" g2="period" k="-10" /> +<hkern g1="c" g2="bracketright" k="27" /> +<hkern g1="c" g2="d" k="12" /> +<hkern g1="c" g2="g" k="16" /> +<hkern g1="c" g2="o" k="13" /> +<hkern g1="c" g2="v" k="-11" /> +<hkern g1="c" g2="w" k="-10" /> +<hkern g1="c" g2="x" k="-16" /> +<hkern g1="c" g2="y" k="-11" /> +<hkern g1="c" g2="braceleft" k="21" /> +<hkern g1="c" g2="guilsinglleft" k="29" /> +<hkern g1="f" g2="parenright" k="-39" /> +<hkern g1="f" g2="asterisk" k="-11" /> +<hkern g1="f" g2="hyphen" k="35" /> +<hkern g1="f" g2="period" k="52" /> +<hkern g1="f" g2="slash" k="42" /> +<hkern g1="f" g2="question" k="-24" /> +<hkern g1="f" g2="bracketright" k="-39" /> +<hkern g1="f" g2="v" k="-19" /> +<hkern g1="f" g2="w" k="-18" /> +<hkern g1="f" g2="x" k="-15" /> +<hkern g1="f" g2="y" k="-19" /> +<hkern g1="f" g2="braceright" k="-39" /> +<hkern g1="f" g2="quotesinglbase" k="53" /> +<hkern g1="f" g2="guilsinglleft" k="19" /> +<hkern g1="f" g2="quoteright" k="-20" /> +<hkern g1="f" g2="guilsinglright" k="-9" /> +<hkern g1="f" g2="igrave" k="-30" /> +<hkern g1="f" g2="idieresis" k="-40" /> +<hkern g1="f" g2="eth" k="17" /> +<hkern g1="h" g2="quotesingle" k="37" /> +<hkern g1="h" g2="parenright" k="24" /> +<hkern g1="h" g2="asterisk" k="21" /> +<hkern g1="h" g2="question" k="27" /> +<hkern g1="h" g2="bracketright" k="29" /> +<hkern g1="h" g2="v" k="15" /> +<hkern g1="h" g2="w" k="13" /> +<hkern g1="h" g2="y" k="17" /> +<hkern g1="h" g2="braceright" k="21" /> +<hkern g1="h" g2="quoteleft" k="30" /> +<hkern g1="h" g2="quoteright" k="30" /> +<hkern g1="j" g2="j" k="-9" /> +<hkern g1="k" g2="hyphen" k="27" /> +<hkern g1="k" g2="slash" k="-11" /> +<hkern g1="k" g2="at" k="20" /> +<hkern g1="k" g2="bracketright" k="25" /> +<hkern g1="k" g2="c" k="26" /> +<hkern g1="k" g2="d" k="26" /> +<hkern g1="k" g2="e" k="26" /> +<hkern g1="k" g2="g" k="29" /> +<hkern g1="k" g2="o" k="29" /> +<hkern g1="k" g2="q" k="26" /> +<hkern g1="k" g2="x" k="-19" /> +<hkern g1="k" g2="braceleft" k="19" /> +<hkern g1="k" g2="guilsinglleft" k="34" /> +<hkern g1="k" g2="eth" k="27" /> +<hkern g1="n" g2="quotesingle" k="31" /> +<hkern g1="n" g2="parenright" k="25" /> +<hkern g1="n" g2="asterisk" k="22" /> +<hkern g1="n" g2="question" k="28" /> +<hkern g1="n" g2="bracketright" k="30" /> +<hkern g1="n" g2="v" k="16" /> +<hkern g1="n" g2="w" k="14" /> +<hkern g1="n" g2="y" k="18" /> +<hkern g1="n" g2="braceright" k="21" /> +<hkern g1="n" g2="quoteleft" k="22" /> +<hkern g1="n" g2="quoteright" k="26" /> +<hkern g1="o" g2="quotesingle" k="32" /> +<hkern g1="o" g2="parenright" k="27" /> +<hkern g1="o" g2="asterisk" k="20" /> +<hkern g1="o" g2="slash" k="23" /> +<hkern g1="o" g2="question" k="30" /> +<hkern g1="o" g2="bracketright" k="30" /> +<hkern g1="o" g2="v" k="14" /> +<hkern g1="o" g2="w" k="13" /> +<hkern g1="o" g2="x" k="17" /> +<hkern g1="o" g2="y" k="14" /> +<hkern g1="o" g2="z" k="20" /> +<hkern g1="o" g2="braceright" k="21" /> +<hkern g1="o" g2="quoteleft" k="22" /> +<hkern g1="o" g2="quoteright" k="27" /> +<hkern g1="p" g2="quotesingle" k="32" /> +<hkern g1="p" g2="parenright" k="27" /> +<hkern g1="p" g2="asterisk" k="20" /> +<hkern g1="p" g2="slash" k="22" /> +<hkern g1="p" g2="question" k="28" /> +<hkern g1="p" g2="bracketright" k="30" /> +<hkern g1="p" g2="v" k="14" /> +<hkern g1="p" g2="w" k="12" /> +<hkern g1="p" g2="x" k="17" /> +<hkern g1="p" g2="y" k="14" /> +<hkern g1="p" g2="z" k="18" /> +<hkern g1="p" g2="braceright" k="21" /> +<hkern g1="p" g2="quoteleft" k="22" /> +<hkern g1="p" g2="quoteright" k="27" /> +<hkern g1="q" g2="j" k="-30" /> +<hkern g1="r" g2="asterisk" k="-12" /> +<hkern g1="r" g2="hyphen" k="32" /> +<hkern g1="r" g2="period" k="55" /> +<hkern g1="r" g2="slash" k="46" /> +<hkern g1="r" g2="question" k="43" /> +<hkern g1="r" g2="bracketright" k="24" /> +<hkern g1="r" g2="q" k="12" /> +<hkern g1="r" g2="v" k="-21" /> +<hkern g1="r" g2="w" k="-19" /> +<hkern g1="r" g2="x" k="-16" /> +<hkern g1="r" g2="y" k="-21" /> +<hkern g1="r" g2="quotesinglbase" k="52" /> +<hkern g1="r" g2="guilsinglleft" k="21" /> +<hkern g1="r" g2="quoteright" k="-14" /> +<hkern g1="r" g2="eth" k="19" /> +<hkern g1="t" g2="hyphen" k="39" /> +<hkern g1="t" g2="period" k="-11" /> +<hkern g1="t" g2="bracketright" k="27" /> +<hkern g1="t" g2="c" k="13" /> +<hkern g1="t" g2="d" k="14" /> +<hkern g1="t" g2="e" k="10" /> +<hkern g1="t" g2="g" k="10" /> +<hkern g1="t" g2="o" k="14" /> +<hkern g1="t" g2="q" k="12" /> +<hkern g1="t" g2="x" k="-17" /> +<hkern g1="t" g2="braceleft" k="21" /> +<hkern g1="t" g2="guilsinglleft" k="28" /> +<hkern g1="t" g2="eth" k="12" /> +<hkern g1="v" g2="asterisk" k="-9" /> +<hkern g1="v" g2="period" k="35" /> +<hkern g1="v" g2="slash" k="32" /> +<hkern g1="v" g2="question" k="39" /> +<hkern g1="v" g2="bracketright" k="26" /> +<hkern g1="v" g2="c" k="15" /> +<hkern g1="v" g2="d" k="14" /> +<hkern g1="v" g2="e" k="14" /> +<hkern g1="v" g2="g" k="13" /> +<hkern g1="v" g2="o" k="14" /> +<hkern g1="v" g2="q" k="14" /> +<hkern g1="v" g2="v" k="-18" /> +<hkern g1="v" g2="w" k="-17" /> +<hkern g1="v" g2="x" k="-14" /> +<hkern g1="v" g2="y" k="-18" /> +<hkern g1="v" g2="quotesinglbase" k="36" /> +<hkern g1="v" g2="quoteright" k="-12" /> +<hkern g1="v" g2="eth" k="17" /> +<hkern g1="w" g2="asterisk" k="-9" /> +<hkern g1="w" g2="period" k="32" /> +<hkern g1="w" g2="slash" k="28" /> +<hkern g1="w" g2="question" k="35" /> +<hkern g1="w" g2="bracketright" k="26" /> +<hkern g1="w" g2="c" k="13" /> +<hkern g1="w" g2="o" k="12" /> +<hkern g1="w" g2="v" k="-18" /> +<hkern g1="w" g2="w" k="-17" /> +<hkern g1="w" g2="x" k="-14" /> +<hkern g1="w" g2="y" k="-18" /> +<hkern g1="w" g2="quotesinglbase" k="30" /> +<hkern g1="w" g2="quoteright" k="-12" /> +<hkern g1="w" g2="eth" k="14" /> +<hkern g1="x" g2="bracketright" k="27" /> +<hkern g1="x" g2="c" k="21" /> +<hkern g1="x" g2="d" k="21" /> +<hkern g1="x" g2="e" k="21" /> +<hkern g1="x" g2="g" k="21" /> +<hkern g1="x" g2="o" k="21" /> +<hkern g1="x" g2="q" k="21" /> +<hkern g1="x" g2="x" k="-17" /> +<hkern g1="x" g2="braceleft" k="21" /> +<hkern g1="x" g2="guilsinglleft" k="29" /> +<hkern g1="x" g2="eth" k="24" /> +<hkern g1="z" g2="bracketright" k="34" /> +<hkern g1="z" g2="c" k="19" /> +<hkern g1="z" g2="d" k="20" /> +<hkern g1="z" g2="e" k="19" /> +<hkern g1="z" g2="f" k="12" /> +<hkern g1="z" g2="g" k="22" /> +<hkern g1="z" g2="o" k="20" /> +<hkern g1="z" g2="q" k="18" /> +<hkern g1="z" g2="t" k="13" /> +<hkern g1="z" g2="u" k="13" /> +<hkern g1="z" g2="braceleft" k="28" /> +<hkern g1="z" g2="braceright" k="21" /> +<hkern g1="z" g2="guilsinglleft" k="33" /> +<hkern g1="z" g2="eth" k="18" /> +<hkern g1="braceleft" g2="A" k="12" /> +<hkern g1="braceleft" g2="C" k="26" /> +<hkern g1="braceleft" g2="G" k="30" /> +<hkern g1="braceleft" g2="J" k="12" /> +<hkern g1="braceleft" g2="O" k="30" /> +<hkern g1="braceleft" g2="Q" k="30" /> +<hkern g1="braceleft" g2="S" k="21" /> +<hkern g1="braceleft" g2="U" k="23" /> +<hkern g1="braceleft" g2="Z" k="18" /> +<hkern g1="braceleft" g2="braceright" k="-80" /> +<hkern g1="braceleft" g2="AE" k="11" /> +<hkern g1="braceright" g2="A" k="21" /> +<hkern g1="braceright" g2="J" k="21" /> +<hkern g1="braceright" g2="S" k="18" /> +<hkern g1="braceright" g2="T" k="25" /> +<hkern g1="braceright" g2="U" k="11" /> +<hkern g1="braceright" g2="V" k="25" /> +<hkern g1="braceright" g2="W" k="19" /> +<hkern g1="braceright" g2="X" k="29" /> +<hkern g1="braceright" g2="Y" k="24" /> +<hkern g1="braceright" g2="Z" k="34" /> +<hkern g1="braceright" g2="AE" k="20" /> +<hkern g1="quotesinglbase" g2="A" k="-26" /> +<hkern g1="quotesinglbase" g2="C" k="25" /> +<hkern g1="quotesinglbase" g2="G" k="25" /> +<hkern g1="quotesinglbase" g2="J" k="-28" /> +<hkern g1="quotesinglbase" g2="O" k="28" /> +<hkern g1="quotesinglbase" g2="Q" k="31" /> +<hkern g1="quotesinglbase" g2="S" k="-16" /> +<hkern g1="quotesinglbase" g2="T" k="67" /> +<hkern g1="quotesinglbase" g2="U" k="19" /> +<hkern g1="quotesinglbase" g2="V" k="74" /> +<hkern g1="quotesinglbase" g2="W" k="34" /> +<hkern g1="quotesinglbase" g2="X" k="-12" /> +<hkern g1="quotesinglbase" g2="Y" k="77" /> +<hkern g1="quotesinglbase" g2="Z" k="-21" /> +<hkern g1="quotesinglbase" g2="AE" k="-21" /> +<hkern g1="guilsinglleft" g2="T" k="77" /> +<hkern g1="guilsinglleft" g2="V" k="12" /> +<hkern g1="guilsinglleft" g2="Y" k="33" /> +<hkern g1="quoteleft" g2="A" k="75" /> +<hkern g1="quoteleft" g2="C" k="21" /> +<hkern g1="quoteleft" g2="G" k="21" /> +<hkern g1="quoteleft" g2="J" k="115" /> +<hkern g1="quoteleft" g2="O" k="21" /> +<hkern g1="quoteleft" g2="Q" k="21" /> +<hkern g1="quoteleft" g2="V" k="-19" /> +<hkern g1="quoteleft" g2="W" k="-17" /> +<hkern g1="quoteleft" g2="Y" k="-13" /> +<hkern g1="quoteleft" g2="AE" k="132" /> +<hkern g1="guilsinglright" g2="A" k="20" /> +<hkern g1="guilsinglright" g2="J" k="42" /> +<hkern g1="guilsinglright" g2="S" k="21" /> +<hkern g1="guilsinglright" g2="T" k="86" /> +<hkern g1="guilsinglright" g2="V" k="44" /> +<hkern g1="guilsinglright" g2="W" k="21" /> +<hkern g1="guilsinglright" g2="X" k="51" /> +<hkern g1="guilsinglright" g2="Y" k="78" /> +<hkern g1="guilsinglright" g2="Z" k="43" /> +<hkern g1="guilsinglright" g2="AE" k="44" /> +<hkern g1="exclamdown" g2="T" k="83" /> +<hkern g1="exclamdown" g2="U" k="11" /> +<hkern g1="exclamdown" g2="V" k="29" /> +<hkern g1="exclamdown" g2="W" k="21" /> +<hkern g1="exclamdown" g2="Y" k="47" /> +<hkern g1="exclamdown" g2="Z" k="11" /> +<hkern g1="questiondown" g2="A" k="46" /> +<hkern g1="questiondown" g2="C" k="37" /> +<hkern g1="questiondown" g2="G" k="37" /> +<hkern g1="questiondown" g2="J" k="62" /> +<hkern g1="questiondown" g2="O" k="37" /> +<hkern g1="questiondown" g2="Q" k="37" /> +<hkern g1="questiondown" g2="S" k="31" /> +<hkern g1="questiondown" g2="T" k="111" /> +<hkern g1="questiondown" g2="U" k="44" /> +<hkern g1="questiondown" g2="V" k="47" /> +<hkern g1="questiondown" g2="W" k="39" /> +<hkern g1="questiondown" g2="X" k="69" /> +<hkern g1="questiondown" g2="Y" k="66" /> +<hkern g1="questiondown" g2="Z" k="68" /> +<hkern g1="questiondown" g2="AE" k="71" /> +<hkern g1="Thorn" g2="exclam" k="14" /> +<hkern g1="Thorn" g2="quotesingle" k="33" /> +<hkern g1="Thorn" g2="parenright" k="39" /> +<hkern g1="Thorn" g2="period" k="60" /> +<hkern g1="Thorn" g2="slash" k="41" /> +<hkern g1="Thorn" g2="question" k="34" /> +<hkern g1="Thorn" g2="A" k="27" /> +<hkern g1="Thorn" g2="J" k="56" /> +<hkern g1="Thorn" g2="T" k="44" /> +<hkern g1="Thorn" g2="V" k="21" /> +<hkern g1="Thorn" g2="X" k="43" /> +<hkern g1="Thorn" g2="Y" k="42" /> +<hkern g1="Thorn" g2="Z" k="47" /> +<hkern g1="Thorn" g2="bracketleft" k="16" /> +<hkern g1="Thorn" g2="bracketright" k="42" /> +<hkern g1="Thorn" g2="a" k="15" /> +<hkern g1="Thorn" g2="braceright" k="27" /> +<hkern g1="Thorn" g2="quotesinglbase" k="57" /> +<hkern g1="Thorn" g2="quoteleft" k="25" /> +<hkern g1="Thorn" g2="quoteright" k="16" /> +<hkern g1="Thorn" g2="AE" k="49" /> +<hkern g1="germandbls" g2="quotesingle" k="40" /> +<hkern g1="germandbls" g2="parenright" k="27" /> +<hkern g1="germandbls" g2="asterisk" k="33" /> +<hkern g1="germandbls" g2="question" k="20" /> +<hkern g1="germandbls" g2="bracketright" k="21" /> +<hkern g1="germandbls" g2="v" k="28" /> +<hkern g1="germandbls" g2="w" k="25" /> +<hkern g1="germandbls" g2="y" k="28" /> +<hkern g1="germandbls" g2="braceright" k="21" /> +<hkern g1="germandbls" g2="quoteleft" k="31" /> +<hkern g1="germandbls" g2="quoteright" k="30" /> +<hkern g1="eth" g2="slash" k="21" /> +<hkern g1="eth" g2="question" k="-15" /> +<hkern g1="eth" g2="bracketright" k="-13" /> +<hkern g1="eth" g2="braceright" k="-13" /> +<hkern g1="thorn" g2="quotesingle" k="40" /> +<hkern g1="thorn" g2="parenright" k="27" /> +<hkern g1="thorn" g2="asterisk" k="20" /> +<hkern g1="thorn" g2="slash" k="22" /> +<hkern g1="thorn" g2="question" k="28" /> +<hkern g1="thorn" g2="bracketright" k="30" /> +<hkern g1="thorn" g2="v" k="14" /> +<hkern g1="thorn" g2="w" k="12" /> +<hkern g1="thorn" g2="x" k="17" /> +<hkern g1="thorn" g2="y" k="14" /> +<hkern g1="thorn" g2="z" k="18" /> +<hkern g1="thorn" g2="braceright" k="21" /> +<hkern g1="thorn" g2="quoteleft" k="36" /> +<hkern g1="thorn" g2="quoteright" k="36" /> +</font> +</defs> +</svg> diff --git a/web/static/fonts/Ubuntu-regular.ttf b/web/static/fonts/Ubuntu-regular.ttf Binary files differnew file mode 100644 index 000000000..18fecfac8 --- /dev/null +++ b/web/static/fonts/Ubuntu-regular.ttf diff --git a/web/static/fonts/Ubuntu-regular.woff b/web/static/fonts/Ubuntu-regular.woff Binary files differnew file mode 100644 index 000000000..19a6189d1 --- /dev/null +++ b/web/static/fonts/Ubuntu-regular.woff diff --git a/web/static/fonts/Ubuntu-regular.woff2 b/web/static/fonts/Ubuntu-regular.woff2 Binary files differnew file mode 100644 index 000000000..5adbc9934 --- /dev/null +++ b/web/static/fonts/Ubuntu-regular.woff2 diff --git a/web/static/fonts/arvo-bold-webfont.eot b/web/static/fonts/arvo-bold-webfont.eot Binary files differnew file mode 100755 index 000000000..4f5e6ae7c --- /dev/null +++ b/web/static/fonts/arvo-bold-webfont.eot diff --git a/web/static/fonts/arvo-bold-webfont.svg b/web/static/fonts/arvo-bold-webfont.svg new file mode 100755 index 000000000..8e3702ad5 --- /dev/null +++ b/web/static/fonts/arvo-bold-webfont.svg @@ -0,0 +1,320 @@ +<?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="arvobold" horiz-adv-x="1245" > +<font-face units-per-em="2048" ascent="1638" descent="-410" /> +<missing-glyph horiz-adv-x="410" /> +<glyph horiz-adv-x="0" /> +<glyph unicode="
" horiz-adv-x="0" /> +<glyph unicode=" " horiz-adv-x="410" /> +<glyph unicode="	" horiz-adv-x="410" /> +<glyph unicode=" " horiz-adv-x="410" /> +<glyph unicode="!" horiz-adv-x="696" d="M139 145q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68.5 -14t56.5 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56.5 -38t-68.5 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM139 1577h369l-41 -1067h-287z" /> +<glyph unicode=""" horiz-adv-x="651" d="M41 1577h266l-18 -518h-207zM375 1577h260l-47 -518h-199z" /> +<glyph unicode="#" horiz-adv-x="1538" d="M8 281l64 280h149l70 354h-189l64 283h181l63 318h331l-62 -318h326l62 318h332l-62 -318h160l-63 -283h-152l-69 -354h188l-64 -280h-179l-54 -281h-334l55 281h-322l-54 -281h-338l55 281h-158zM557 561h323l69 354h-324z" /> +<glyph unicode="$" d="M102 240v301h342q0 -36 12 -65.5t35 -51t56.5 -33.5t77.5 -12q52 0 79 21t27 55q0 16 -10 29.5t-26 24.5t-36.5 19.5t-40.5 14.5l-186 57q-56 17 -105.5 43.5t-86.5 65.5t-58.5 92.5t-21.5 124.5q0 70 22 125.5t62 96.5t95.5 67.5t121.5 39.5v324h332v-341q42 -14 77 -32 t62 -39h180v-301h-342q-1 37 -12 63.5t-32 45.5t-51 30t-69 11q-49 0 -75.5 -18t-26.5 -50q0 -18 11 -31.5t30 -25t45 -21t55 -18.5l178 -57q134 -42 198 -117.5t64 -196.5q0 -64 -20.5 -119t-58.5 -100t-92 -77.5t-121 -51.5v-321h-332v322q-54 16 -100.5 42t-82.5 64h-176 z" /> +<glyph unicode="%" horiz-adv-x="1833" d="M211 1167q0 75 28 142t78.5 117.5t120 80t152.5 29.5t152.5 -29.5t120 -80t78.5 -117.5t28 -142q0 -74 -27.5 -140.5t-77 -117t-119.5 -80.5t-155 -30q-86 0 -155.5 29.5t-119.5 80t-77 117.5t-27 141zM345 0l1025 1540h266l-1025 -1540h-266zM451 1167q0 -28 10.5 -53.5 t29.5 -44.5t44.5 -30t54.5 -11t54.5 11t44 29.5t29.5 44t11 54.5q0 31 -11 56.5t-29.5 43.5t-44 28t-54.5 10t-54.5 -10t-44.5 -28t-29.5 -43.5t-10.5 -56.5zM1024 379q0 75 28 142t78.5 117.5t120 80t152.5 29.5t152.5 -29.5t120 -80t78.5 -117.5t28 -142q0 -74 -27.5 -141 t-77 -117.5t-119.5 -80.5t-155 -30t-155 29.5t-119.5 80t-77 117.5t-27.5 142zM1264 379q0 -29 10.5 -54t29.5 -44t44.5 -30t54.5 -11t54.5 10.5t44 29.5t29.5 44.5t11 54.5q0 31 -11 56t-29.5 43t-44 28t-54.5 10t-54.5 -10t-44.5 -28t-29.5 -43t-10.5 -56z" /> +<glyph unicode="&" horiz-adv-x="1337" d="M90 455q0 127 59 225t164 172q1 0 3 2l-19 20q-62 66 -95.5 143t-33.5 173q0 82 33 156t91.5 130.5t137 89.5t170.5 33q97 0 176 -34t135 -90.5t86.5 -130t30.5 -152.5q0 -56 -14.5 -108t-40 -97t-59.5 -82.5t-72 -64.5q-17 -12 -33 -23.5t-33 -22.5l164 -162 q14 45 23.5 86.5t15.5 78.5h299q-7 -97 -33.5 -197.5t-72.5 -195.5l255 -250l-231 -203l-201 206q-82 -78 -185.5 -124.5t-231.5 -46.5q-102 0 -191 36t-155 99t-104 149t-38 185zM406 461q0 -33 13 -63.5t36.5 -54.5t56.5 -38t74 -14q63 0 112.5 21.5t89.5 57.5l-262 268 q-27 -17 -49.5 -35t-38 -39t-24 -46.5t-8.5 -56.5zM457 1192q0 -40 14.5 -77.5t40.5 -61.5l56 -55q31 17 58 33t48 32q32 23 45.5 54.5t13.5 74.5q0 27 -10.5 51t-29 42.5t-42.5 29t-51 10.5q-32 0 -58 -10t-45 -28t-29.5 -42.5t-10.5 -52.5z" /> +<glyph unicode="'" horiz-adv-x="340" d="M37 1059v518l287 16l-68 -534h-219z" /> +<glyph unicode="(" horiz-adv-x="721" d="M109 647q0 308 103 594t302 528l246 -172q-77 -101 -137.5 -214t-102.5 -234.5t-64 -248t-22 -253.5q0 -128 22 -255t64 -248.5t102 -235.5t136 -215l-248 -160q-98 120 -172.5 252t-125.5 273t-77 289t-26 300z" /> +<glyph unicode=")" horiz-adv-x="721" d="M6 -295q77 100 137.5 213.5t102.5 235t64 248t22 253.5t-22 254.5t-64 249t-102 235.5t-136 216l248 159q196 -241 298.5 -524.5t102.5 -589.5q0 -307 -103 -593t-302 -529z" /> +<glyph unicode="*" horiz-adv-x="1008" d="M61 1204l78 238l240 -78v252h250v-252l239 78l78 -238l-241 -77l149 -205l-203 -148l-148 206l-147 -206l-202 148l148 205z" /> +<glyph unicode="+" horiz-adv-x="1229" d="M102 436v297h363v363h297v-363h364v-297h-364v-364h-297v364h-363z" /> +<glyph unicode="," horiz-adv-x="532" d="M20 -287l185 570l305 -107l-285 -541z" /> +<glyph unicode="-" horiz-adv-x="770" d="M61 449v274h627v-274h-627z" /> +<glyph unicode="." horiz-adv-x="529" d="M70 162q0 40 14.5 75t41 62t62.5 42.5t77 15.5q39 0 74.5 -15.5t62 -42t41.5 -62.5t15 -75q0 -40 -15.5 -76t-41.5 -62t-61 -41.5t-75 -15.5q-42 0 -77.5 15.5t-62 41.5t-41 61.5t-14.5 76.5z" /> +<glyph unicode="/" horiz-adv-x="807" d="M49 0l584 1556h256l-578 -1556h-262z" /> +<glyph unicode="0" horiz-adv-x="1296" d="M82 754q0 160 31 301.5t101 248t183 168.5t277 62q162 0 274.5 -61t182.5 -166t101.5 -245.5t31.5 -299.5q0 -161 -32.5 -302.5t-103 -246.5t-183.5 -166t-273 -61t-272 59t-182.5 162.5t-103 244t-32.5 302.5zM406 762q0 -101 8.5 -187t36 -148.5t80 -98t141.5 -35.5 t141.5 35.5t80.5 98t36 148.5t8 187q0 99 -8 184.5t-35.5 149t-80 99.5t-140.5 36q-89 0 -142 -36t-81 -99.5t-36.5 -149t-8.5 -184.5z" /> +<glyph unicode="1" horiz-adv-x="815" d="M41 926v348l418 246l145 -2v-1244h160v-274h-649v274h159v791z" /> +<glyph unicode="2" horiz-adv-x="1178" d="M119 1044q0 118 39 210.5t107.5 156t160.5 96.5t197 33q99 0 188.5 -30t158 -88t108.5 -143t40 -196q0 -89 -36.5 -164.5t-98.5 -144.5l-432 -467h565v-307h-989v260l524 557q68 66 105 132t37 134q0 29 -12 57.5t-34.5 51t-55 36t-73.5 13.5q-49 0 -85.5 -15.5 t-61 -42.5t-37.5 -63t-14 -76h-301z" /> +<glyph unicode="3" horiz-adv-x="1087" d="M16 487h314q6 -105 60.5 -154.5t150.5 -49.5q43 0 80.5 14.5t65.5 39t44.5 57.5t16.5 71q0 40 -14.5 74.5t-41.5 59t-66 38.5t-87 14h-140v273h142q44 0 78.5 12t58.5 33t36.5 50t12.5 64q0 30 -13.5 60t-39 54t-61 39t-78.5 15q-37 0 -70.5 -12.5t-59 -33.5t-40.5 -48.5 t-15 -93.5l-311 2q1 97 37 185t100.5 155t155.5 106t203 39q106 0 198 -36.5t160 -98.5t106.5 -143t38.5 -170q0 -97 -40 -176.5t-109 -128.5q36 -20 67 -53t54.5 -76t37 -94t13.5 -107q0 -98 -40 -186t-110.5 -154.5t-166.5 -105.5t-207 -39q-105 0 -195.5 33t-158.5 91.5 t-109.5 138t-49 132.5t-8.5 110z" /> +<glyph unicode="4" horiz-adv-x="1231" d="M10 414v256l539 846h334l-531 -848h320v293l313 4v-297h211v-254h-211v-140h193v-274h-650v274h144v140h-662z" /> +<glyph unicode="5" horiz-adv-x="1206" d="M111 377l309 84q6 -47 25 -84t47.5 -63t66 -40t80.5 -14q48 0 88 18t68 49.5t43.5 73.5t15.5 91q0 41 -16 80t-46 69t-72 48t-93 18q-65 0 -112.5 -12.5t-96.5 -35.5l-271 50v807h963v-306h-674v-284q48 18 103.5 30.5t119.5 12.5q102 0 193.5 -31.5t161 -93 t110.5 -151.5t41 -208q0 -127 -45 -223.5t-119 -161.5t-168.5 -98t-193.5 -33q-98 0 -185.5 25.5t-157.5 76.5t-118.5 127.5t-66.5 178.5z" /> +<glyph unicode="6" horiz-adv-x="1163" d="M66 485q0 50 10 95.5t27 89t39 85.5t46 85l375 678h350l-309 -541q27 2 52.5 -0.5t50.5 -7.5q85 -16 159 -58.5t128.5 -105t86 -141.5t31.5 -168q0 -109 -41.5 -202t-113.5 -161t-167.5 -106.5t-203.5 -38.5q-106 0 -200.5 38.5t-165.5 105t-112.5 157.5t-41.5 196z M360 489q0 -35 13.5 -71.5t41.5 -67t71 -50t102 -19.5q40 0 81 14t73 40t52.5 64.5t20.5 87.5q0 47 -18.5 85t-50.5 65t-74 42t-90 15q-61 0 -110.5 -22.5t-81.5 -64.5q-13 -25 -21.5 -54t-8.5 -64z" /> +<glyph unicode="7" horiz-adv-x="1190" d="M41 1032v484h1108v-226q-118 -242 -240.5 -499.5t-237.5 -516.5h99v-274h-541v274h106q51 118 105 240t107.5 241t105 232.5t98.5 216.5h-423v-172h-287z" /> +<glyph unicode="8" horiz-adv-x="1180" d="M113 457q0 106 50 193.5t135 147.5q-69 58 -108.5 134t-39.5 160q0 93 38.5 175t105 143.5t155.5 97.5t190 36q102 0 192 -36t157 -97t106 -142t39 -171q0 -88 -40.5 -166t-109.5 -137q84 -60 133 -145.5t49 -188.5q0 -98 -40.5 -186t-111 -155.5t-167 -107t-207.5 -39.5 q-74 0 -142 18.5t-126.5 51.5t-106 79t-81 99.5t-52 113.5t-18.5 122zM403 465q0 -41 18 -78t50 -64.5t75 -44t93 -16.5q49 0 91.5 16.5t74 44t49.5 64.5t18 78q0 40 -18 75.5t-49.5 62.5t-74 43t-91.5 16q-50 0 -93 -16t-75 -43t-50 -62.5t-18 -75.5zM440 1081 q0 -34 15 -64.5t42 -53.5t63.5 -36.5t78.5 -13.5t78.5 13.5t63.5 36.5t43 53.5t16 64.5q0 35 -16 66.5t-43 55.5t-63.5 38t-78.5 14t-78.5 -14t-63.5 -38t-42 -55.5t-15 -66.5z" /> +<glyph unicode="9" horiz-adv-x="1151" d="M106 1020q0 109 41.5 202t112.5 161t167 106.5t204 38.5q106 0 201 -38.5t166.5 -105.5t113 -158t41.5 -196q0 -50 -10 -95.5t-27.5 -88.5t-39.5 -85t-46 -85l-375 -678h-350l307 540q-27 -2 -52 1t-48 8q-85 16 -159 58.5t-129 105t-86.5 141.5t-31.5 168zM403 1028 q0 -47 18.5 -85t50 -65t74.5 -42t91 -15q58 0 106 20.5t80 61.5q14 26 23.5 56.5t9.5 66.5q0 34 -13.5 71t-41 68t-70 50.5t-100.5 19.5q-42 0 -82.5 -14t-73 -40.5t-52.5 -65t-20 -87.5z" /> +<glyph unicode=":" horiz-adv-x="539" d="M72 145q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM72 907q0 37 13.5 69.5t37.5 56.5t56.5 38t70.5 14q36 0 68 -14t56 -38t38 -56.5 t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5z" /> +<glyph unicode=";" horiz-adv-x="539" d="M-61 -287l184 570l305 -107l-285 -541zM72 907q0 37 13.5 69.5t37.5 56.5t56.5 38t70.5 14q36 0 68 -14t56 -38t38 -56.5t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5z" /> +<glyph unicode="<" horiz-adv-x="868" d="M31 451v223l755 274v-256l-448 -134l448 -144v-250z" /> +<glyph unicode="=" horiz-adv-x="995" d="M61 281v286h873v-286h-873zM61 711v286h873v-286h-873z" /> +<glyph unicode=">" horiz-adv-x="827" d="M41 164v250l448 144l-448 134v256l756 -274v-223z" /> +<glyph unicode="?" horiz-adv-x="1192" d="M90 1118q2 110 38.5 191.5t100 135.5t150 80.5t188.5 26.5q95 0 178 -28t144.5 -83t97 -135t35.5 -184q0 -109 -50 -200t-153 -172q-53 -38 -88 -71t-56 -72t-29.5 -90t-8.5 -126h-313q0 70 2 123t8.5 94.5t19 74t33 60.5t50.5 54.5t73 56.5q46 38 76 69.5t47 62.5t24 64 t7 74q0 59 -29.5 96t-79.5 37q-31 0 -57.5 -7t-46.5 -26t-31.5 -52t-11.5 -85zM301 145q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5z" /> +<glyph unicode="@" horiz-adv-x="2267" d="M188 494q0 132 34 254t96.5 228t149.5 193t193.5 149t229 96t254.5 34q133 0 256 -33t229.5 -92.5t193.5 -143t149 -184t96 -215t34 -237.5q0 -102 -30 -202t-88.5 -180t-145 -129.5t-199.5 -49.5q-80 0 -140 28t-101 79q-57 -49 -129 -77t-140 -28q-110 0 -203 40 t-160.5 108t-105.5 157.5t-38 189.5q0 97 36 186t100.5 156.5t154 107.5t196.5 40q59 0 111 -12t100 -32v31h287v-647q0 -43 16.5 -70.5t50.5 -27.5q49 0 81 30t50.5 78t25.5 106.5t7 115.5q0 86 -24.5 167t-69.5 152.5t-108 131t-140 102.5t-166 66.5t-186 23.5 q-96 0 -184 -24.5t-165 -69.5t-139.5 -108.5t-107.5 -140t-69.5 -164.5t-24.5 -183q0 -144 54 -270t147.5 -220t219 -148.5t269.5 -54.5q99 0 197 31.5t192 87.5l137 -227q-124 -75 -258 -115.5t-268 -40.5q-132 0 -254.5 34t-229 96t-193.5 149.5t-149.5 193.5t-96.5 228.5 t-34 255.5zM926 479q0 -45 16 -82.5t44 -64.5t65 -41.5t79 -14.5q60 0 110.5 31.5t80.5 88.5v159q-13 29 -32.5 53t-44 41.5t-53 27t-58.5 9.5q-42 0 -80 -16t-66 -44t-44.5 -66t-16.5 -81z" /> +<glyph unicode="A" horiz-adv-x="1491" d="M27 0v274h113l413 1242h401l404 -1242h110v-274h-575v274h151l-68 218h-466l-68 -218h160v-274h-575zM589 748h306l-154 493z" /> +<glyph unicode="B" horiz-adv-x="1386" d="M113 0v274h155v967h-155v277l739 -2q103 0 188.5 -36.5t147.5 -99t96.5 -146t34.5 -177.5q0 -110 -38.5 -182t-109.5 -116q75 -48 118.5 -118.5t43.5 -171.5q0 -103 -35.5 -189t-97 -148.5t-145.5 -97t-181 -34.5h-761zM600 274h252q29 0 54.5 15t44 39.5t29.5 57 t11 67.5q0 37 -11 68.5t-30 55t-44.5 37t-53.5 13.5h-252v-353zM600 901h238q28 0 53 14t43.5 37.5t29.5 53t11 61.5q0 31 -11 62t-29.5 56t-43.5 40.5t-53 15.5h-238v-340z" /> +<glyph unicode="C" horiz-adv-x="1554" d="M66 760q0 163 57 305.5t156 249t232.5 168t287.5 61.5q123 0 207 -30.5t185 -120.5h224v-338h-309q-56 80 -101 113.5t-97 48t-109 14.5q-84 0 -156 -37.5t-124.5 -102t-82.5 -150t-30 -181.5q0 -97 29.5 -182.5t81.5 -149.5t124 -101.5t158 -37.5q60 0 112 19.5 t94.5 51.5t74.5 73.5t50 86.5l322 -90q-31 -98 -91 -181.5t-144.5 -144.5t-190 -96t-227.5 -35q-103 0 -197 28t-175.5 79t-148 123t-113.5 159.5t-73 188t-26 209.5z" /> +<glyph unicode="D" horiz-adv-x="1468" d="M82 0v274h121v967h-121v275h582q104 0 199.5 -27t178 -76t150 -117.5t115.5 -152.5t74 -181t26 -202t-26 -202t-74 -181.5t-115.5 -154t-150 -119t-178 -76.5t-199.5 -27h-582zM535 274h127q81 0 153 38t125 103.5t84 154t31 190.5q0 101 -31 189t-84 153t-125 102 t-153 37h-127v-967z" /> +<glyph unicode="E" horiz-adv-x="1380" d="M113 0v274h159v940h-159v302h1206v-517h-326v215h-389v-299h301v-290h-301v-351h389v269h326v-543h-1206z" /> +<glyph unicode="F" horiz-adv-x="1286" d="M113 0v274h157v938h-157v304h1173v-517h-325v213h-359v-319h311v-291h-311v-328h160v-274h-649z" /> +<glyph unicode="G" horiz-adv-x="1636" d="M66 760q0 107 26 207t73 187t113.5 158.5t148 122.5t175.5 79t197 28q118 0 205 -31.5t187 -117.5h224v-338h-309q-46 71 -86.5 103t-88 53t-132.5 21q-84 0 -156 -38t-124.5 -102.5t-82.5 -152t-30 -179.5q0 -91 27 -173t82 -147.5t128 -100.5t156 -35q106 0 185 62 t114 169h-289v274h702v-809h-299v260q-62 -109 -121 -160t-133 -82q-73 -30 -192 -30h-8q-62 1 -124 14.5t-120 38t-113.5 59t-100.5 79.5q-111 112 -172.5 259.5t-61.5 321.5z" /> +<glyph unicode="H" horiz-adv-x="1890" d="M113 0v274h157v967h-157v275h649v-275h-160v-315h684v315h-158v275h650v-275h-160v-967h160v-274h-650v274h158v388h-684v-388h160v-274h-649z" /> +<glyph unicode="I" horiz-adv-x="810" d="M113 0v274h157v968h-157v274h649v-274h-160v-968h160v-274h-649z" /> +<glyph unicode="J" horiz-adv-x="686" d="M10 -223q59 90 92.5 148.5t67.5 129t53 150.5v1007h-141v304h573v-304h-106v-1040q-22 -81 -64 -148.5t-82.5 -122.5t-113.5 -139z" /> +<glyph unicode="K" horiz-adv-x="1655" d="M113 0v274h157v967h-157v275h649v-275h-160v-441l485 423v293h517v-295h-113l-505 -434l484 -490h123v-297h-503v297l-488 488v-511h160v-274h-649z" /> +<glyph unicode="L" horiz-adv-x="1346" d="M113 0v274h157v967h-157v275h649v-275h-160v-967h330q13 0 25.5 7.5t22 19.5t15.5 26t6 27v203h324v-557h-1212z" /> +<glyph unicode="M" horiz-adv-x="2345" d="M113 0v274h141v967h-141v275h624l447 -1094l415 1094h633v-275h-141v-967h139v-274h-567v274h104v872l-454 -1128h-281l-462 1098v-842h113v-274h-570z" /> +<glyph unicode="N" horiz-adv-x="1698" d="M113 0v274h125v967h-123v275h458l627 -993v718h-129v275h576v-275h-123v-1241h-332l-631 980v-706h127v-274h-575z" /> +<glyph unicode="O" horiz-adv-x="1620" d="M66 758q0 109 26 209.5t73 188t113.5 159t148 122.5t175.5 79t197 28t197.5 -28t176 -79t148 -122.5t114 -159t73.5 -188t26 -209.5q0 -108 -26 -208.5t-73.5 -188t-114 -159t-148 -122.5t-176 -79t-197.5 -28t-197 28t-175.5 79t-148 122.5t-113.5 159t-73 187.5 t-26 209zM406 758q0 -96 29.5 -181.5t81.5 -150t124 -102t158 -37.5q87 0 159.5 37.5t124.5 102t80.5 150t28.5 181.5q0 97 -29 183t-81.5 150.5t-124.5 102t-158 37.5t-158 -37.5t-124 -102t-81.5 -150.5t-29.5 -183z" /> +<glyph unicode="P" horiz-adv-x="1400" d="M113 0v274h157v967h-157v275h700q117 0 215 -36.5t169 -98.5t111 -143t40 -169q0 -106 -31.5 -198.5t-97.5 -160.5t-167 -107.5t-239 -39.5h-211v-289h139v-274h-628zM602 834h137q114 0 181 48t67 152q0 97 -63 152t-185 55h-137v-407z" /> +<glyph unicode="Q" horiz-adv-x="1634" d="M66 758q0 109 26 209.5t73 188t113.5 159t148 122.5t175.5 79t197 28t197.5 -28t176 -79t148 -122.5t114 -159t73.5 -188t26 -209.5q0 -146 -46 -276t-127.5 -233t-193.5 -172t-243 -92q31 -13 61.5 -28.5t61.5 -29t61.5 -23t62.5 -10.5q31 0 60.5 8t53.5 25t41.5 44 t23.5 66l223 -111q-9 -73 -41.5 -132t-83.5 -101t-116 -65t-138 -23q-59 0 -118.5 22.5t-115 49t-104.5 49t-86 22.5q-16 0 -28.5 0.5t-24.5 0t-26.5 -3t-33.5 -9.5l2 252q-128 26 -236.5 95.5t-188 171.5t-124 230.5t-44.5 272.5zM406 758q0 -96 29.5 -181.5t81.5 -150 t124 -102t158 -37.5q87 0 159.5 37.5t124.5 102t80.5 150t28.5 181.5q0 97 -29 183t-81.5 150.5t-124.5 102t-158 37.5t-158 -37.5t-124 -102t-81.5 -150.5t-29.5 -183z" /> +<glyph unicode="R" horiz-adv-x="1530" d="M113 0v274h157v967h-157v275h802q117 0 209 -35t155 -93.5t96.5 -136t33.5 -161.5q0 -77 -16.5 -135t-48 -103t-77.5 -79.5t-105 -62.5q51 -26 90 -79.5t59 -138.5l51 -197h125l2 -295h-440l-60 360q-9 64 -27.5 110.5t-49.5 76t-75.5 43.5t-105.5 14h-129v-330h139v-274 h-628zM602 874h199q57 0 102.5 10.5t78 33t50 56.5t17.5 81q0 88 -63 137t-185 49h-199v-367z" /> +<glyph unicode="S" d="M41 250v301h362v-62q0 -45 14.5 -83t43.5 -66t73 -43.5t103 -15.5q90 0 137 41.5t47 115.5q0 38 -16.5 63.5t-42.5 43t-58 29.5t-63 22l-229 74q-65 20 -125.5 56t-107 90t-74 126.5t-27.5 165.5q0 108 40 192.5t112 142.5t171 88t217 30q93 0 172 -21.5t141.5 -57.5 t106 -82.5t66.5 -96.5h100v-302h-362v88q-5 35 -24.5 66t-50 53.5t-69 35.5t-80.5 13q-38 0 -71 -8t-57.5 -24.5t-39 -42.5t-14.5 -62q0 -45 19.5 -71.5t50 -43.5t67.5 -27t72 -22l275 -92q57 -20 107 -55t86.5 -85t57.5 -115t21 -146q0 -110 -40.5 -201t-113.5 -156 t-175 -101t-226 -36q-87 0 -164.5 19.5t-141.5 56.5t-112 88.5t-75 116.5h-103z" /> +<glyph unicode="T" horiz-adv-x="1430" d="M20 1055v461h1379v-461h-328v196h-209v-977h160v-274h-649v274h157v977h-184v-196h-326z" /> +<glyph unicode="U" horiz-adv-x="1561" d="M51 1241v275h608v-275h-139v-629q0 -86 19.5 -146t54.5 -98t83 -55.5t105 -17.5q59 0 107.5 15t83 51.5t53 97.5t18.5 153v629h-161v275h608v-275h-121v-590q0 -160 -46 -284.5t-126.5 -210.5t-189 -131t-232.5 -45q-123 0 -230 44.5t-186.5 129t-125.5 205.5t-46 274 v608h-137z" /> +<glyph unicode="V" horiz-adv-x="1530" d="M20 1241v275h650v-275h-162l264 -860l263 860h-175v275h649v-275h-135l-405 -1241h-410l-393 1241h-146z" /> +<glyph unicode="W" horiz-adv-x="2357" d="M20 1241v275h650v-275h-158l223 -817l269 1089h372l264 -1089l224 817h-176v275h649v-275h-137l-349 -1241h-432l-229 946l-234 -946h-428l-355 1241h-153z" /> +<glyph unicode="X" horiz-adv-x="1577" d="M33 0v274h69l452 480l-463 487h-54v275h643v-275h-153l244 -257l242 257h-155v275h643v-275h-52l-459 -487l458 -480h49v-274h-643v274h153l-234 248l-233 -248h136v-274h-643z" /> +<glyph unicode="Y" horiz-adv-x="1536" d="M47 1241v275h649v-275h-127l203 -348l215 348h-145v275h649v-275h-112l-451 -612v-355h184v-274h-676v274h168v359l-424 608h-133z" /> +<glyph unicode="Z" horiz-adv-x="1290" d="M61 0v313l737 906h-409v-240h-326v537h1151v-314l-755 -905h428v235h325v-532h-1151z" /> +<glyph unicode="[" horiz-adv-x="670" d="M82 -512v2124h547v-246h-223v-1630h223v-248h-547z" /> +<glyph unicode="\" horiz-adv-x="778" d="M6 1384h236l571 -1677h-242z" /> +<glyph unicode="]" horiz-adv-x="670" d="M43 -264h223v1630h-223v246h547v-2124h-547v248z" /> +<glyph unicode="^" horiz-adv-x="1229" d="M52 723l416 790h303l404 -790h-296l-263 528l-274 -528h-290z" /> +<glyph unicode="_" horiz-adv-x="1024" d="M0 -90h1024v-256h-1024v256z" /> +<glyph unicode="`" horiz-adv-x="774" d="M168 1464v25h326l196 -311h-229z" /> +<glyph unicode="a" horiz-adv-x="1280" d="M72 307q0 72 27.5 133t79.5 104.5t127.5 68t172.5 24.5q71 0 129.5 -7.5t108.5 -18.5v32q0 39 -15 67.5t-42 47t-65 27t-83 8.5q-94 0 -165.5 -18.5t-137.5 -53.5l-96 194q102 70 213.5 107t236.5 37q97 0 179.5 -21.5t141.5 -70t92.5 -126.5t33.5 -190v-377h139v-274 h-432v56q-35 -22 -64 -37.5t-58 -25t-60 -14t-68 -4.5q-93 0 -166.5 25.5t-124 70t-77.5 105t-27 131.5zM354 319q0 -46 33.5 -77t101.5 -31q71 0 129 23t99 56v132h-240q-23 0 -45 -7t-39.5 -20t-28 -32t-10.5 -44z" /> +<glyph unicode="b" horiz-adv-x="1305" d="M29 1282v274h452v-543q54 26 111 40t117 14q115 0 213 -43t169 -117t111.5 -173t40.5 -210q0 -112 -39.5 -211t-110.5 -172.5t-169 -116t-215 -42.5q-63 0 -120 12t-108 34v-28h-307v1282h-145zM481 365q32 -48 85.5 -77.5t119.5 -29.5q51 0 97 18.5t80.5 53t54.5 83 t20 109.5q0 62 -20 112t-54 85t-79.5 53.5t-96.5 18.5q-66 0 -118.5 -30t-88.5 -86v-310z" /> +<glyph unicode="c" horiz-adv-x="1180" d="M72 530q0 115 41.5 213.5t114.5 172.5q74 73 174 114q92 37 197 38q10 0 21 -1q12 1 25 1q71 0 138 -20q79 -23 150 -69h199v-301h-276q-43 54 -96 82q-46 24 -107 24q-9 0 -18 -1q-10 1 -19 1q-46 0 -86 -17q-48 -20 -82.5 -56t-53.5 -85.5t-19 -111.5q0 -55 20 -104 t54.5 -84.5t82 -55.5t103.5 -24q47 4 85.5 19.5t68.5 40t51.5 55t33.5 57.5l275 -76q-17 -60 -58.5 -125t-108 -118.5t-158 -88.5t-208.5 -35q-119 0 -219 43.5t-172 118.5t-112.5 176t-40.5 217z" /> +<glyph unicode="d" horiz-adv-x="1400" d="M72 526q0 114 39.5 212.5t110 171.5t169 115t216.5 42q65 0 122 -12.5t109 -35.5v263h-145v274h453v-1282h202v-274h-510v40q-54 -28 -110.5 -44t-114.5 -16q-119 0 -218.5 42.5t-171 116.5t-111.5 173.5t-40 213.5zM378 523q0 -61 20 -110.5t54.5 -84t80 -52.5t97.5 -20 q66 2 119.5 34t88.5 84v305q-34 53 -90 83q-54 29 -114 28h-4h-5q-49 0 -93 -18q-46 -19 -80 -54t-54 -84t-20 -111z" /> +<glyph unicode="e" horiz-adv-x="1186" d="M51 532q0 114 39.5 214t111.5 174.5t172 117.5t222 43t216.5 -40.5t159.5 -112t100 -168t38 -207.5q4 -25 4 -49v-10q0 -20 -2 -41h-763l3 -31q11 -45 37.5 -79t62.5 -57t80 -34.5t89 -11.5t85.5 5.5t78.5 15t74 22t73 26.5l110 -205q-57 -35 -104.5 -59.5t-95.5 -40.5 t-102 -23.5t-126 -7.5q-135 0 -240 44.5t-176.5 120.5t-109 178t-37.5 216zM358 664h433q-7 34 -20 64t-36 53t-58.5 36.5t-88.5 13.5q-56 0 -95.5 -13.5t-66.5 -37t-43 -53.5t-25 -63z" /> +<glyph unicode="f" horiz-adv-x="815" d="M76 774v262h157v172q0 91 32 160t85.5 116t123.5 71t147 24q57 0 102 -8.5t79 -21.5t57.5 -28t37.5 -28l-115 -211q-23 17 -52 27t-71 10q-27 0 -50.5 -9t-41 -26t-27.5 -42.5t-10 -59.5v-146h189v-262h-189v-500h191v-274h-643v274h155v500h-157z" /> +<glyph unicode="g" horiz-adv-x="1295" d="M72 535q0 109 39.5 205.5t110.5 169t170 114.5t215 43q71 -1 130.5 -15t111.5 -38v22h303v-993q0 -131 -45 -226.5t-120.5 -158t-175.5 -93t-210 -30.5q-136 0 -251.5 37t-205.5 100l125 222q69 -44 150 -69.5t180 -25.5q54 0 99.5 12t79 40.5t52.5 76.5t19 121v5 q-56 -32 -112 -46t-114 -14q-120 0 -221 41t-174.5 113.5t-114.5 171.5t-41 215zM378 534q0 -60 20 -109t54 -83t80.5 -52.5t100.5 -18.5q70 0 126.5 35.5t89.5 93.5l2 252q-34 63 -93 100t-128 38q-49 -1 -96 -19.5t-81.5 -52.5t-54.5 -80.5t-20 -103.5z" /> +<glyph unicode="h" horiz-adv-x="1386" d="M57 0v274h160v1008h-160v274h467v-616q59 54 129.5 84.5t155.5 30.5q187 0 286 -104.5t99 -305.5v-371h152v-274h-463v575q0 87 -43 137t-111 50q-45 0 -98 -25t-107 -73v-390h152v-274h-619z" /> +<glyph unicode="i" horiz-adv-x="790" d="M80 0v274h156v488h-156v274h465v-762h144v-274h-609zM220 1370q0 37 13.5 69.5t37.5 56.5t56.5 38t70.5 14q36 0 68 -14t56 -38t38 -56.5t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5z" /> +<glyph unicode="j" horiz-adv-x="621" d="M51 762v274h455v-1054q0 -119 -29.5 -204t-86 -140t-139.5 -81t-190 -26l-4 227q72 3 107 57.5t35 145.5v801h-148zM182 1370q0 37 13.5 69.5t37.5 56.5t56.5 38t70.5 14q36 0 68.5 -14t57 -38t39 -56.5t14.5 -69.5t-14.5 -69.5t-39 -56.5t-57 -38t-68.5 -14 q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5z" /> +<glyph unicode="k" horiz-adv-x="1450" d="M59 0v274h160v1008h-160v274h467v-897h175l72 103v274h536v-274h-186l-193 -223l197 -238h172v-301h-281l-336 444h-156v-170h106v-274h-573z" /> +<glyph unicode="l" horiz-adv-x="780" d="M59 0v274h160v1008h-160v274h467v-1282h160v-274h-627z" /> +<glyph unicode="m" horiz-adv-x="2156" d="M80 0v274h154v488h-152v274h474v-90q64 51 144 81t165 30q118 0 202.5 -41.5t132.5 -126.5q33 37 74.5 67.5t88.5 53t98.5 35t105.5 12.5q190 0 292 -105t102 -307v-371h147v-274h-473v594q0 88 -45.5 138t-126.5 50q-56 0 -105.5 -26.5t-98.5 -91.5q1 -11 1 -22.5v-23.5 v-344h150v-274h-473v596q0 42 -13 76t-36 58t-54.5 37.5t-69.5 14.5h-4q-48 0 -100 -22q-54 -23 -102 -85v-401h166v-274h-644z" /> +<glyph unicode="n" horiz-adv-x="1460" d="M80 0v274h152v488h-150v274h472v-91q65 51 145.5 80.5t169.5 29.5q187 0 288 -104.5t101 -305.5v-371h147v-274h-473v596q0 87 -46 136.5t-122 49.5q-52 0 -105 -23t-103 -86v-399h168v-274h-644z" /> +<glyph unicode="o" d="M72 522q0 113 41 212t114 173t174 117t222 43t222.5 -43t174.5 -117t113.5 -173t40.5 -212t-39.5 -212.5t-112 -174t-174 -117.5t-225.5 -43q-125 0 -226.5 43t-173.5 117t-111.5 173.5t-39.5 213.5zM371 522q0 -59 20 -108.5t54.5 -85.5t80 -56t97.5 -20q53 0 98.5 19.5 t79 55.5t52.5 85.5t19 109.5q0 62 -19 112t-53 85q-32 35 -78 53q-43 18 -94 18h-5.5h-4.5q-48 0 -92 -18q-46 -18 -80.5 -53t-54.5 -85t-20 -112z" /> +<glyph unicode="p" horiz-adv-x="1368" d="M61 -197h170v959h-112v274h452v-15q48 21 98 33.5t103 12.5q114 0 212 -43t170 -117t112.5 -173t40.5 -210q0 -112 -39.5 -211t-110.5 -172.5t-169.5 -116t-215.5 -42.5q-66 0 -123 12.5t-110 35.5v-227h198v-274h-676v274zM539 373q32 -51 87 -83t124 -32q51 0 97 19.5 t80 55t54 84t20 105.5q0 63 -19.5 113t-53.5 84.5t-80 53t-98 18.5q-63 0 -118 -33t-93 -93v-292z" /> +<glyph unicode="q" horiz-adv-x="1333" d="M61 528q0 111 39.5 209t110 171.5t169 116t216.5 42.5q63 0 118.5 -12t106.5 -34v46h307v-1264h154v-274h-676v274h215v234q-53 -26 -107.5 -41.5t-111.5 -15.5q-119 0 -218.5 42.5t-171 117t-111.5 174.5t-40 214zM367 524q0 -62 20 -111.5t54.5 -84t80.5 -52.5t99 -18 q62 0 113.5 28.5t86.5 78.5v321q-35 49 -89 77t-114 28q-51 0 -97 -19t-80 -54t-54 -84t-20 -110z" /> +<glyph unicode="r" horiz-adv-x="1110" d="M72 0v274h155v488h-153v274h461v-73q44 35 99 54t120 19q66 0 136 -1t130 -1v-375h-281v107q-41 0 -75 -5.5t-59.5 -18.5t-43 -36t-24.5 -57v-375h211v-274h-676z" /> +<glyph unicode="s" horiz-adv-x="1102" d="M55 66v278h283v-6q1 -29 18 -50.5t44.5 -36.5t62.5 -22.5t74 -7.5q90 0 131 23.5t41 60.5q0 29 -20 49.5t-71 32.5l-192 41q-181 35 -273 116.5t-92 209.5q0 75 35 136.5t95 105t140.5 67.5t172.5 24q63 0 112 -7.5t88 -19.5t68.5 -28.5t52.5 -34.5h174v-278h-258 q0 24 -15.5 46t-45.5 38.5t-73.5 26.5t-98.5 10q-21 0 -45 -3.5t-44.5 -12.5t-34 -24.5t-13.5 -39.5q0 -12 3.5 -23t13.5 -21t27.5 -18.5t45.5 -13.5l188 -37q102 -20 171 -50t111 -70t60.5 -89t18.5 -106q0 -89 -41.5 -156t-109 -111.5t-152 -67t-170.5 -22.5 q-56 0 -101.5 7t-82 19t-65 28.5t-52.5 36.5h-181z" /> +<glyph unicode="t" horiz-adv-x="800" d="M10 774v262h150l2 248l311 148l-2 -396h207v-262h-209l-2 -438q0 -38 6 -61.5t17.5 -37.5t27.5 -19t37 -5q38 0 67 7.5t58 17.5l43 -193q-51 -32 -113.5 -51t-148.5 -19q-61 0 -116.5 21t-97.5 63.5t-67 106.5q-24 62 -24 142v7l3 459h-149z" /> +<glyph unicode="u" horiz-adv-x="1410" d="M60 762v274h458v-610q0 -104 53 -155.5t138 -51.5q60 0 109 37t71 100v406h-166v274h490v-762h125v-274h-439v88q-53 -48 -124 -74t-164 -26q-86 0 -162 27t-132.5 81.5t-89 136.5t-32.5 193v336h-135z" /> +<glyph unicode="v" horiz-adv-x="1257" d="M41 762v274h541v-274h-126l169 -445l163 445h-112v274h541v-274h-138l-309 -766h-305l-309 766h-115z" /> +<glyph unicode="w" horiz-adv-x="1898" d="M41 762v274h541v-274h-117l110 -369l213 643h293l215 -676l132 402h-111v274h541v-274h-139l-277 -766h-299l-217 661l-221 -661h-291l-257 766h-116z" /> +<glyph unicode="x" horiz-adv-x="1235" d="M61 0v274h103l257 252l-238 236h-122v274h488v-274h-47l121 -107l116 107h-55v274h487v-274h-114l-239 -237l253 -251h103v-274h-488v274h59l-129 123l-134 -123h67v-274h-488z" /> +<glyph unicode="y" horiz-adv-x="1241" d="M51 762v274h508v-274h-80l149 -388l153 388h-89v274h508v-274h-113l-401 -959h178v-274h-643v274h181l78 197l-324 762h-105z" /> +<glyph unicode="z" horiz-adv-x="1140" d="M61 614v422h908v-180l-451 -588h230v199h262v-467h-916v164l429 606h-201v-156h-261z" /> +<glyph unicode="{" horiz-adv-x="897" d="M102 606v191q35 6 66.5 7t58 5t47.5 14t35.5 33.5t22.5 63t8 102.5v401q0 97 19 164t57 108t94 59t131 18q47 0 83 -1.5t61 -3.5q29 -2 51 -4v-307q-47 -2 -75.5 -9.5t-44.5 -24.5t-21 -46t-5 -73v-410q0 -33 -4.5 -60.5t-16.5 -50.5t-34 -42.5t-57 -35.5 q36 -15 58 -36.5t34 -47.5t16 -55.5t4 -60.5v-371q0 -51 5 -82.5t21 -48.5t44.5 -24t75.5 -9v-327q-22 -3 -51 -5q-25 -2 -61 -3t-83 -1q-75 0 -131 18t-94 59t-57 107.5t-19 164.5v475q-7 62 -28 90.5t-53 39.5t-72 11.5t-85 7.5z" /> +<glyph unicode="|" horiz-adv-x="594" d="M123 -270v1999h252v-1999h-252z" /> +<glyph unicode="}" horiz-adv-x="897" d="M61 -31q47 2 75.5 9t44.5 24t21 48.5t5 82.5v371q0 31 4 60.5t16 55.5t34 47.5t58 36.5q-35 16 -57 35.5t-34 42.5t-16.5 50.5t-4.5 60.5v410q0 44 -5 73t-21 46t-44.5 24.5t-75.5 9.5v307q22 2 51 4q25 2 60.5 3.5t83.5 1.5q62 0 111.5 -12.5t86.5 -40t60.5 -71.5 t34.5 -108q5 -26 6.5 -55.5t1.5 -61.5v-321q0 -86 6 -140t18.5 -85.5t31.5 -45.5t45.5 -19.5t60.5 -7t76 -7.5v-191q-45 -7 -85 -7.5t-72 -11.5t-53 -39.5t-28 -90.5v-475q0 -32 -1.5 -61.5t-6.5 -55.5q-11 -64 -34.5 -108t-60.5 -71.5t-86.5 -40t-111.5 -12.5 q-48 0 -83.5 1t-60.5 3q-29 2 -51 5v327z" /> +<glyph unicode="~" horiz-adv-x="905" d="M-8 512q0 30 5 66t16.5 72.5t31.5 70.5t50 60.5t72 42.5t97 16q24 0 55.5 -11t66.5 -27t72 -35t71.5 -35t64 -26t51.5 -10q47 0 69.5 27.5t30.5 87.5l185 -41q0 -45 -12.5 -100.5t-45.5 -104.5t-90 -84t-147 -35q-55 0 -108 23.5t-101.5 50t-90.5 48.5t-75 22 q-19 0 -36 -5.5t-30 -19t-21 -35.5t-9 -55z" /> +<glyph unicode="¡" horiz-adv-x="696" d="M139 -471l41 1067h287l41 -1067h-369zM139 985q0 37 13.5 69.5t37.5 56.5t56.5 38t70.5 14q36 0 68 -14t56 -38t38 -56.5t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5z" /> +<glyph unicode="¢" d="M72 694q0 97 28 183t79.5 155t123 118.5t158.5 73.5v355h332v-361q35 -11 69.5 -26t66.5 -35h199v-301h-276q-43 50 -96 77.5t-125 27.5q-58 0 -105.5 -20t-82 -56t-53.5 -85.5t-19 -107.5q0 -59 20 -108t54.5 -84.5t82 -55.5t103.5 -20q47 0 85.5 15.5t68.5 40t51.5 55 t33.5 61.5l275 -80q-14 -48 -42.5 -100.5t-72.5 -100.5t-103.5 -87.5t-133.5 -62.5v-353h-332v348q-88 24 -159.5 74.5t-122.5 120.5t-79 156.5t-28 182.5z" /> +<glyph unicode="£" horiz-adv-x="1065" d="M41 584v245h100q-9 43 -14.5 90.5t-5.5 104.5q0 100 34.5 180t94.5 136.5t140.5 87t172.5 30.5q209 0 326.5 -111t134.5 -329l-336 -12q-3 80 -35.5 119.5t-83.5 39.5q-46 0 -79 -33t-33 -106q0 -31 5.5 -65t16 -64.5t24.5 -67.5h269v-245h-173q7 -39 7.5 -81.5t-4 -83.5 t-14.5 -78.5t-23 -66.5h420v-274h-899v274h160q15 54 17.5 118t-8.5 100t-17 54.5t-14 37.5h-183z" /> +<glyph unicode="¤" horiz-adv-x="1438" d="M51 1206l264 242l194 -212q49 21 102 32.5t110 11.5q56 0 109 -11.5t101 -31.5l193 211l265 -242l-194 -211q31 -57 48 -121t17 -133t-17 -133.5t-48 -121.5l179 -191l-264 -240l-178 191q-100 -43 -211 -43q-57 0 -111 11.5t-104 33.5l-176 -193l-264 240l178 195 q-29 57 -45.5 119.5t-16.5 131.5t16.5 132.5t47.5 120.5zM469 750q0 -53 19.5 -99t53.5 -80t80 -53.5t99 -19.5q52 0 98 19.5t80 53.5t54 80t20 99t-20 99t-54 79.5t-80 53t-98 19.5q-53 0 -99 -19.5t-80 -53.5t-53.5 -80t-19.5 -98z" /> +<glyph unicode="¥" horiz-adv-x="1536" d="M47 1241v275h649v-275h-125l201 -307l214 307h-144v275h649v-275h-113l-246 -313h160v-258h-362l-2 -3v-57h364v-258h-364v-78h184v-274h-676v274h168v78h-360v258h360v60h-360v258h169l-232 313h-134z" /> +<glyph unicode="¦" horiz-adv-x="594" d="M123 -270v757h252v-757h-252zM123 971v758h252v-758h-252z" /> +<glyph unicode="§" horiz-adv-x="1128" d="M29 72h348v-91q3 -20 12 -46t33.5 -50.5t62.5 -38.5t90 -14q75 0 113.5 34t38.5 93q0 30 -14 50t-36 33.5t-49 23t-53 18.5l-213 68q-57 18 -111.5 51t-97 82.5t-68.5 116t-26 151.5q0 100 33.5 169.5t82.5 115.5q-15 14 -43.5 47t-54.5 99t-26 151q0 101 38 178.5 t104.5 129.5t158 78.5t199.5 26.5q95 0 174 -23.5t138.5 -62t89.5 -77.5t44 -68h95v-295h-349v49h-2q6 37 -7 72t-39 61t-63 42t-79 16q-29 0 -56 -5t-48 -17.5t-33.5 -33t-12.5 -51.5q0 -39 17 -62t44 -37t59.5 -23t64.5 -19l264 -88q46 -16 87.5 -47.5t72.5 -76.5t49 -104 t18 -131q0 -102 -31.5 -174t-74.5 -121q26 -23 53 -60.5t45.5 -96t18.5 -129.5q0 -102 -37 -186t-104.5 -144t-162 -92.5t-208.5 -32.5q-90 0 -172 24t-146.5 68.5t-93 87.5t-39.5 66h-98v295zM412 571q0 -38 16.5 -61t42.5 -37t58 -23t63 -20l31 -11q35 9 57 29 q37 35 37 95q0 30 -13.5 50t-34.5 33.5t-47 23t-51 18.5l-31 10q-21 -1 -43 -5.5t-41.5 -17t-31.5 -33t-12 -51.5z" /> +<glyph unicode="¨" horiz-adv-x="940" d="M47 1343q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM526 1343q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57 t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="©" horiz-adv-x="1919" d="M102 831q0 118 30.5 227.5t86 204.5t133.5 173t173 133.5t204.5 86t228.5 30.5q118 0 228 -30.5t205.5 -86t174 -133.5t134.5 -173t86.5 -204.5t30.5 -227.5q0 -119 -30.5 -228.5t-86.5 -204.5t-134.5 -173t-174 -133.5t-205.5 -86t-228 -30.5q-119 0 -228.5 30.5 t-204.5 86t-173 133.5t-133.5 173t-86 204.5t-30.5 228.5zM330 831q0 -88 22 -169t62.5 -151t97.5 -127.5t127 -98t150.5 -62.5t168.5 -22t169 22t150.5 62.5t126.5 98t97.5 127.5t62.5 151t22 169t-22 169t-62.5 150.5t-97.5 127t-126.5 98t-150.5 62.5t-169 22 q-87 0 -168 -22t-151 -62.5t-127 -98t-97.5 -127t-62.5 -150.5t-22 -169zM472 831q0 104 39 194.5t106.5 157.5t158 106t193.5 39q112 0 207.5 -43t164.5 -117l-193 -195q-32 42 -78.5 64.5t-100.5 22.5q-49 0 -90 -17.5t-71.5 -49t-48.5 -73.5t-18 -89t18 -89t48.5 -73 t71.5 -48.5t90 -17.5q53 0 99 20.5t81 62.5l190 -191q-70 -74 -164.5 -117.5t-205.5 -43.5q-103 0 -193.5 39t-158 106.5t-106.5 157.5t-39 194z" /> +<glyph unicode="ª" horiz-adv-x="1006" d="M156 1108q0 44 13 79t43 63.5t78.5 46.5t119.5 18q45 0 84 -5t74 -10q-4 52 -38.5 65t-87.5 13q-58 0 -102.5 -8t-93.5 -33l-72 141q74 50 148.5 74.5t162.5 24.5q65 0 121 -13.5t97 -43.5t64.5 -79.5t23.5 -121.5v-224h94v-203h-314v17q-35 -18 -71 -25t-76 -7 q-65 0 -114.5 16t-84 44.5t-52 67t-17.5 103.5zM369 1113q0 -34 14 -48.5t49 -14.5q85 0 138 33v70h-160q-11 0 -26 -7.5t-15 -32.5z" /> +<glyph unicode="«" horiz-adv-x="1038" d="M82 593v74l260 369h223l-211 -406l213 -407h-229zM522 593v74l260 369h224l-211 -406l213 -407h-230z" /> +<glyph unicode="¬" horiz-adv-x="1597" d="M51 782v254h1475v-788h-287v534h-1188z" /> +<glyph unicode="­" horiz-adv-x="770" d="M61 449v274h627v-274h-627z" /> +<glyph unicode="®" horiz-adv-x="2048" d="M102 831q0 118 30.5 227.5t86 204.5t133.5 173t173 133.5t204.5 86t228.5 30.5q118 0 228 -30.5t205.5 -86t174 -133.5t134.5 -173t86.5 -204.5t30.5 -227.5q0 -119 -30.5 -228.5t-86.5 -204.5t-134.5 -173t-174 -133.5t-205.5 -86t-228 -30.5q-119 0 -228.5 30.5 t-204.5 86t-173 133.5t-133.5 173t-86 204.5t-30.5 228.5zM317 831q0 -90 22.5 -172.5t64 -154t99.5 -130t129.5 -100t153.5 -64t172 -22.5t172.5 22.5t153.5 64t129 100t99.5 130t64 154t22.5 172.5t-22.5 172.5t-64 153.5t-99.5 129.5t-129 100t-153.5 64t-172.5 22.5 q-89 0 -171.5 -22.5t-154 -64t-129.5 -100t-99.5 -129.5t-64 -153.5t-22.5 -172.5zM528 373v212h95v497h-91v211h532q79 0 138 -25t98.5 -64.5t59.5 -87.5t20 -93q0 -52 -17.5 -96t-55.5 -79t-86 -54q35 -14 56 -41t33 -88l15 -80h78v-212h-328l-15 194q-5 63 -14.5 85 t-29.5 34t-69 12h-66v-113h79v-212h-432zM881 900h66q69 0 109 19.5t40 69.5q0 44 -38 68.5t-102 24.5h-75v-182z" /> +<glyph unicode="¯" horiz-adv-x="831" d="M82 1176v215h688v-215h-688z" /> +<glyph unicode="°" horiz-adv-x="815" d="M102 1397q0 64 24 120t66 98t98 66.5t120 24.5t120 -23.5t97 -65t64.5 -98.5t23.5 -124q0 -65 -23.5 -121.5t-64.5 -99t-97 -67t-120 -24.5q-65 0 -121.5 24.5t-98 67t-65 100t-23.5 122.5zM258 1389q0 -29 12 -56t32 -47.5t46 -32.5t55 -12q34 0 62.5 11t48.5 31 t31.5 48t11.5 62t-11 63t-31 49t-47.5 31.5t-59.5 11.5t-59 -12t-47.5 -33.5t-32 -50.5t-11.5 -63z" /> +<glyph unicode="±" horiz-adv-x="1229" d="M102 0v274h1024v-274h-1024zM102 651v297h363v363h297v-363h364v-297h-364v-323h-297v323h-363z" /> +<glyph unicode="²" horiz-adv-x="721" d="M80 1303q-1 71 21.5 123t62.5 86t94.5 50.5t118.5 16.5q50 0 100 -14t90.5 -43t66 -72.5t25.5 -103.5q0 -30 -6.5 -53.5t-18.5 -43t-28.5 -36t-36.5 -33.5l-159 -133h249v-205h-573v192l270 201q22 17 33.5 30.5t17 24.5t6.5 19.5t1 15.5q0 17 -13 29t-39 12 q-20 0 -31.5 -7.5t-17 -18t-7 -21t-1.5 -16.5h-225z" /> +<glyph unicode="³" horiz-adv-x="721" d="M58 1102h219q0 -24 7.5 -41t23 -29t45.5 -12q26 0 41 9.5t22.5 24.5t7.5 33q0 29 -19 44.5t-52 15.5h-99v133h108q20 0 34 16t14 43q0 19 -14 36t-42 17q-25 0 -43 -15.5t-18 -55.5h-219q-2 57 15 106.5t53 86t91 57t128 20.5q55 0 106 -18.5t90 -50.5t62 -75.5t23 -93.5 q0 -46 -15.5 -78.5t-32.5 -52.5q18 -16 33.5 -39.5t22 -51t6.5 -56.5q0 -48 -22 -94t-62 -81.5t-94.5 -56t-118.5 -20.5q-74 0 -130 21.5t-94 59t-57.5 88.5t-19.5 110z" /> +<glyph unicode="´" horiz-adv-x="680" d="M41 1178l215 311h326v-25l-306 -286h-235z" /> +<glyph unicode="µ" horiz-adv-x="1350" d="M154 -471v1507h335v-610q0 -104 53 -155.5t137 -51.5q60 0 109.5 37.5t71.5 99.5v680h323v-762h125v-274h-438v88q-53 -48 -124.5 -74t-164.5 -26q-50 0 -95 9v-468h-332z" /> +<glyph unicode="¶" horiz-adv-x="1417" d="M61 1014q0 105 42 196.5t119 159.5t186 107t243 39h684v-275h-141v-1603h-293v1603h-172v-1603h-293v894q-77 21 -145 62t-119 101.5t-81 140t-30 178.5z" /> +<glyph unicode="·" horiz-adv-x="721" d="M201 633q0 37 13.5 69.5t37.5 56.5t56.5 38t70.5 14q36 0 68 -14t56 -38t38 -56.5t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5z" /> +<glyph unicode="¸" horiz-adv-x="926" d="M182 -293q41 3 77.5 19.5t66 46.5t51 73.5t31.5 100.5l243 -86q-23 -79 -65 -138t-100 -98t-128.5 -59t-150.5 -21z" /> +<glyph unicode="¹" horiz-adv-x="539" d="M41 1217v233l238 127h112v-543h121v-194h-461v194h131v250z" /> +<glyph unicode="º" horiz-adv-x="883" d="M61 1210q0 73 28.5 139.5t79 117t120.5 80.5t153 30q82 0 152 -30t120 -81t78.5 -117.5t28.5 -138.5q0 -73 -27.5 -139.5t-77.5 -117.5t-119.5 -81t-154.5 -30q-86 0 -156 30t-120 81t-77.5 117.5t-27.5 139.5zM287 1210q0 -25 12 -50t33 -44.5t49.5 -32t60.5 -12.5 t60 12.5t48.5 32t32 44.5t11.5 50q0 28 -11.5 52.5t-32 43t-48.5 29.5t-60 11t-60.5 -11t-49.5 -29.5t-33 -43t-12 -52.5z" /> +<glyph unicode="»" horiz-adv-x="1100" d="M31 223l213 407l-211 406h223l260 -369v-74l-256 -370h-229zM471 223l213 407l-211 406h223l260 -369v-74l-256 -370h-229z" /> +<glyph unicode="¼" horiz-adv-x="2350" d="M409 -61l1251 1638h256l-1245 -1638h-262zM438 1217v233l238 127h112v-543h121v-194h-461v194h131v250zM1412 348l280 416h215l-282 -422h168v166h202v-166h105v-160h-105v-182h-202v182h-379z" /> +<glyph unicode="½" horiz-adv-x="2446" d="M465 -61l1251 1638h256l-1245 -1638h-262zM494 1217v233l238 127h112v-543h121v-194h-461v194h131v250zM1485 459q-1 71 21.5 123t62.5 86t94.5 50.5t118.5 16.5q50 0 100 -14t90.5 -43t66 -72.5t25.5 -103.5q0 -30 -6.5 -53.5t-18.5 -43t-28.5 -36t-36.5 -33.5 l-159 -133h249v-205h-573v192l270 201q22 17 33.5 30.5t17 24.5t6.5 19.5t1 15.5q0 17 -13 29t-39 12q-20 0 -31.5 -7.5t-17 -18t-7 -21t-1.5 -16.5h-225z" /> +<glyph unicode="¾" horiz-adv-x="2266" d="M290 1102h219q0 -24 7.5 -41t23 -29t45.5 -12q26 0 41 9.5t22.5 24.5t7.5 33q0 29 -19 44.5t-52 15.5h-99v133h108q20 0 34 16t14 43q0 19 -14 36t-42 17q-25 0 -43 -15.5t-18 -55.5h-219q-2 57 15 106.5t53 86t91 57t128 20.5q55 0 106 -18.5t90 -50.5t62 -75.5 t23 -93.5q0 -46 -15.5 -78.5t-32.5 -52.5q18 -16 33.5 -39.5t22 -51t6.5 -56.5q0 -48 -22 -94t-62 -81.5t-94.5 -56t-118.5 -20.5q-74 0 -130 21.5t-94 59t-57.5 88.5t-19.5 110zM325 -61l1251 1638h256l-1245 -1638h-262zM1328 348l280 416h215l-282 -422h168v166h202v-166 h105v-160h-105v-182h-202v182h-379z" /> +<glyph unicode="¿" horiz-adv-x="1100" d="M50 -22q0 109 50 200t153 172q53 38 88 71t56 72t29.5 90t8.5 126h313q0 -70 -2 -123t-8.5 -94.5t-19 -74t-33 -60.5t-51 -54.5t-72.5 -56.5q-46 -38 -76 -69.5t-47 -62.5t-24 -64t-7 -74q0 -59 29.5 -96t79.5 -37q31 0 57.5 7t46.5 26t31.5 52t11.5 85l318 -31 q-2 -110 -38.5 -191.5t-100 -135.5t-150 -80.5t-188.5 -26.5q-95 0 -178 28t-144.5 83t-97 135t-35.5 184zM380 964q0 37 13.5 69.5t37.5 56.5t56.5 38t70.5 14q36 0 68 -14t56 -38t38 -56.5t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38 t-37.5 56.5t-13.5 69.5z" /> +<glyph unicode="À" horiz-adv-x="1491" d="M27 0v274h113l413 1242h401l404 -1242h110v-274h-575v274h151l-68 218h-466l-68 -218h160v-274h-575zM484 1944v25h326l196 -311h-229zM589 748h306l-154 493z" /> +<glyph unicode="Á" horiz-adv-x="1491" d="M27 0v274h113l413 1242h401l404 -1242h110v-274h-575v274h151l-68 218h-466l-68 -218h160v-274h-575zM475 1658l215 311h326v-25l-306 -286h-235zM589 748h306l-154 493z" /> +<glyph unicode="Â" horiz-adv-x="1491" d="M27 0v274h113l413 1242h401l404 -1242h110v-274h-575v274h151l-68 218h-466l-68 -218h160v-274h-575zM352 1656l272 325h240l274 -325h-245l-148 153l-145 -153h-248zM589 748h306l-154 493z" /> +<glyph unicode="Ã" horiz-adv-x="1491" d="M27 0v274h113l413 1242h401l404 -1242h110v-274h-575v274h151l-68 218h-466l-68 -218h160v-274h-575zM307 1744q14 54 47.5 94t74.5 67t84.5 40.5t78.5 13.5q42 0 81 -14.5t76.5 -32t73 -32t70.5 -14.5q42 0 74.5 15t58.5 53l158 -70q-15 -45 -42.5 -84t-63.5 -68.5 t-79 -46t-90 -16.5q-52 0 -94 13.5t-79.5 30t-73.5 30.5t-76 14q-45 0 -76 -18.5t-51 -44.5zM589 748h306l-154 493z" /> +<glyph unicode="Ä" horiz-adv-x="1491" d="M27 0v274h113l413 1242h401l404 -1242h110v-274h-575v274h151l-68 218h-466l-68 -218h160v-274h-575zM328 1823q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38 t-37.5 56.5t-13.5 69.5zM589 748h306l-154 493zM807 1823q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="Å" horiz-adv-x="1491" d="M27 0v274h113l413 1242h401l404 -1242h110v-274h-575v274h151l-68 218h-466l-68 -218h160v-274h-575zM428 1709q0 65 25 123t68 101t101 68t123 25t123 -25t101.5 -68t68.5 -101t25 -123t-25 -123t-68.5 -101.5t-101.5 -68.5t-123 -25t-123 25t-101 68.5t-68 101.5 t-25 123zM589 748h306l-154 493zM620 1709q0 -26 10 -49t27 -40t39.5 -26.5t48.5 -9.5t48.5 9.5t39 26.5t26 40t9.5 49t-9.5 48.5t-26 39t-39 26t-48.5 9.5t-48.5 -9.5t-39.5 -26t-27 -39t-10 -48.5z" /> +<glyph unicode="Æ" horiz-adv-x="2093" d="M-34 0v274h126l791 1242h1149v-517h-326v215h-370v-305h290v-274h-290v-361h370v269h326v-543h-1149v274h121v138h-497l-83 -138h116v-274h-574zM671 686h333v568z" /> +<glyph unicode="Ç" horiz-adv-x="1554" d="M66 760q0 163 57 305.5t156 249t232.5 168t287.5 61.5q123 0 207 -30.5t185 -120.5h224v-338h-309q-56 80 -101 113.5t-97 48t-109 14.5q-84 0 -156 -37.5t-124.5 -102t-82.5 -150t-30 -181.5q0 -97 29.5 -182.5t81.5 -149.5t124 -101.5t158 -37.5q60 0 112 19.5 t94.5 51.5t74.5 73.5t50 86.5l322 -90q-31 -98 -91 -181.5t-144.5 -144.5t-190 -96t-227.5 -35q-103 0 -197 28t-175.5 79t-148 123t-113.5 159.5t-73 188t-26 209.5zM542 -293q41 3 77.5 19.5t66 46.5t51 73.5t31.5 100.5l243 -86q-23 -79 -65 -138t-100 -98t-128.5 -59 t-150.5 -21z" /> +<glyph unicode="È" horiz-adv-x="1380" d="M113 0v274h159v940h-159v302h1206v-517h-326v215h-389v-299h301v-290h-301v-351h389v269h326v-543h-1206zM429 1944v25h326l196 -311h-229z" /> +<glyph unicode="É" horiz-adv-x="1380" d="M113 0v274h159v940h-159v302h1206v-517h-326v215h-389v-299h301v-290h-301v-351h389v269h326v-543h-1206zM419 1658l215 311h326v-25l-306 -286h-235z" /> +<glyph unicode="Ê" horiz-adv-x="1380" d="M113 0v274h159v940h-159v302h1206v-517h-326v215h-389v-299h301v-290h-301v-351h389v269h326v-543h-1206zM297 1656l272 325h240l274 -325h-245l-148 153l-145 -153h-248z" /> +<glyph unicode="Ë" horiz-adv-x="1380" d="M113 0v274h159v940h-159v302h1206v-517h-326v215h-389v-299h301v-290h-301v-351h389v269h326v-543h-1206zM273 1823q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38 t-37.5 56.5t-13.5 69.5zM752 1823q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="Ì" horiz-adv-x="810" d="M113 0v274h157v968h-157v274h649v-274h-160v-968h160v-274h-649zM145 1944v25h326l196 -311h-229z" /> +<glyph unicode="Í" horiz-adv-x="810" d="M113 0v274h157v968h-157v274h649v-274h-160v-968h160v-274h-649zM134 1658l215 311h326v-25l-306 -286h-235z" /> +<glyph unicode="Î" horiz-adv-x="810" d="M13 1656l272 325h240l274 -325h-245l-148 153l-145 -153h-248zM113 0v274h157v968h-157v274h649v-274h-160v-968h160v-274h-649z" /> +<glyph unicode="Ï" horiz-adv-x="810" d="M-11 1823q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM113 0v274h157v968h-157v274h649v-274h-160v-968h160v-274h-649zM468 1823 q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="Ð" horiz-adv-x="1468" d="M65 621v274h138v346h-121v275h582q104 0 199.5 -27t178 -76t150 -117.5t115.5 -152.5t74 -181t26 -202t-26 -202t-74 -181.5t-115.5 -154t-150 -119t-178 -76.5t-199.5 -27h-582v274h121v347h-138zM535 274h127q81 0 153 38t125 103.5t84 154t31 190.5q0 101 -31 189 t-84 153t-125 102t-153 37h-127v-346h157v-274h-157v-347z" /> +<glyph unicode="Ñ" horiz-adv-x="1698" d="M113 0v274h125v967h-123v275h458l627 -993v718h-129v275h576v-275h-123v-1241h-332l-631 980v-706h127v-274h-575zM410 1744q14 54 47.5 94t74.5 67t84.5 40.5t78.5 13.5q42 0 81 -14.5t76.5 -32t73 -32t70.5 -14.5q42 0 74.5 15t58.5 53l158 -70q-15 -45 -42.5 -84 t-63.5 -68.5t-79 -46t-90 -16.5q-52 0 -94 13.5t-79.5 30t-73.5 30.5t-76 14q-45 0 -76 -18.5t-51 -44.5z" /> +<glyph unicode="Ò" horiz-adv-x="1620" d="M66 758q0 109 26 209.5t73 188t113.5 159t148 122.5t175.5 79t197 28t197.5 -28t176 -79t148 -122.5t114 -159t73.5 -188t26 -209.5q0 -108 -26 -208.5t-73.5 -188t-114 -159t-148 -122.5t-176 -79t-197.5 -28t-197 28t-175.5 79t-148 122.5t-113.5 159t-73 187.5 t-26 209zM406 758q0 -96 29.5 -181.5t81.5 -150t124 -102t158 -37.5q87 0 159.5 37.5t124.5 102t80.5 150t28.5 181.5q0 97 -29 183t-81.5 150.5t-124.5 102t-158 37.5t-158 -37.5t-124 -102t-81.5 -150.5t-29.5 -183zM538 1944v25h326l196 -311h-229z" /> +<glyph unicode="Ó" horiz-adv-x="1620" d="M66 758q0 109 26 209.5t73 188t113.5 159t148 122.5t175.5 79t197 28t197.5 -28t176 -79t148 -122.5t114 -159t73.5 -188t26 -209.5q0 -108 -26 -208.5t-73.5 -188t-114 -159t-148 -122.5t-176 -79t-197.5 -28t-197 28t-175.5 79t-148 122.5t-113.5 159t-73 187.5 t-26 209zM406 758q0 -96 29.5 -181.5t81.5 -150t124 -102t158 -37.5q87 0 159.5 37.5t124.5 102t80.5 150t28.5 181.5q0 97 -29 183t-81.5 150.5t-124.5 102t-158 37.5t-158 -37.5t-124 -102t-81.5 -150.5t-29.5 -183zM529 1658l215 311h326v-25l-306 -286h-235z" /> +<glyph unicode="Ô" horiz-adv-x="1620" d="M66 758q0 109 26 209.5t73 188t113.5 159t148 122.5t175.5 79t197 28t197.5 -28t176 -79t148 -122.5t114 -159t73.5 -188t26 -209.5q0 -108 -26 -208.5t-73.5 -188t-114 -159t-148 -122.5t-176 -79t-197.5 -28t-197 28t-175.5 79t-148 122.5t-113.5 159t-73 187.5 t-26 209zM406 758q0 -96 29.5 -181.5t81.5 -150t124 -102t158 -37.5q87 0 159.5 37.5t124.5 102t80.5 150t28.5 181.5q0 97 -29 183t-81.5 150.5t-124.5 102t-158 37.5t-158 -37.5t-124 -102t-81.5 -150.5t-29.5 -183zM406 1656l272 325h240l274 -325h-245l-148 153 l-145 -153h-248z" /> +<glyph unicode="Õ" horiz-adv-x="1620" d="M66 758q0 109 26 209.5t73 188t113.5 159t148 122.5t175.5 79t197 28t197.5 -28t176 -79t148 -122.5t114 -159t73.5 -188t26 -209.5q0 -108 -26 -208.5t-73.5 -188t-114 -159t-148 -122.5t-176 -79t-197.5 -28t-197 28t-175.5 79t-148 122.5t-113.5 159t-73 187.5 t-26 209zM361 1744q14 54 47.5 94t74.5 67t84.5 40.5t78.5 13.5q42 0 81 -14.5t76.5 -32t73 -32t70.5 -14.5q42 0 74.5 15t58.5 53l158 -70q-15 -45 -42.5 -84t-63.5 -68.5t-79 -46t-90 -16.5q-52 0 -94 13.5t-79.5 30t-73.5 30.5t-76 14q-45 0 -76 -18.5t-51 -44.5z M406 758q0 -96 29.5 -181.5t81.5 -150t124 -102t158 -37.5q87 0 159.5 37.5t124.5 102t80.5 150t28.5 181.5q0 97 -29 183t-81.5 150.5t-124.5 102t-158 37.5t-158 -37.5t-124 -102t-81.5 -150.5t-29.5 -183z" /> +<glyph unicode="Ö" horiz-adv-x="1620" d="M66 758q0 109 26 209.5t73 188t113.5 159t148 122.5t175.5 79t197 28t197.5 -28t176 -79t148 -122.5t114 -159t73.5 -188t26 -209.5q0 -108 -26 -208.5t-73.5 -188t-114 -159t-148 -122.5t-176 -79t-197.5 -28t-197 28t-175.5 79t-148 122.5t-113.5 159t-73 187.5 t-26 209zM382 1823q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM406 758q0 -96 29.5 -181.5t81.5 -150t124 -102t158 -37.5q87 0 159.5 37.5 t124.5 102t80.5 150t28.5 181.5q0 97 -29 183t-81.5 150.5t-124.5 102t-158 37.5t-158 -37.5t-124 -102t-81.5 -150.5t-29.5 -183zM861 1823q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14 q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="×" horiz-adv-x="1239" d="M61 1053l222 200l336 -366l337 366l222 -200l-356 -387l343 -373l-221 -199l-325 352l-324 -352l-221 199l343 373z" /> +<glyph unicode="Ø" horiz-adv-x="1591" d="M55 -34l201 263q-90 105 -140 240t-50 289q0 109 26 209.5t73 188t113.5 159t148 122.5t175.5 79t197 28q105 0 199.5 -29t177.5 -81l130 170h256l-230 -303q94 -106 148 -245t54 -298q0 -108 -26 -208.5t-73.5 -188t-114 -159t-148 -122.5t-176 -79t-197.5 -28 q-108 0 -205.5 30.5t-182.5 86.5l-94 -124h-262zM406 758q0 -70 15.5 -134.5t44.5 -119.5l516 675q-41 25 -86.5 38.5t-96.5 13.5q-86 0 -158 -37.5t-124 -102t-81.5 -150.5t-29.5 -183zM605 345q42 -28 91 -43t103 -15q87 0 159.5 37.5t124.5 102t80.5 150t28.5 181.5 q0 75 -18 143.5t-50 126.5z" /> +<glyph unicode="Ù" horiz-adv-x="1561" d="M51 1241v275h608v-275h-139v-629q0 -86 19.5 -146t54.5 -98t83 -55.5t105 -17.5q59 0 107.5 15t83 51.5t53 97.5t18.5 153v629h-161v275h608v-275h-121v-590q0 -160 -46 -284.5t-126.5 -210.5t-189 -131t-232.5 -45q-123 0 -230 44.5t-186.5 129t-125.5 205.5t-46 274 v608h-137zM519 1944v25h326l196 -311h-229z" /> +<glyph unicode="Ú" horiz-adv-x="1561" d="M51 1241v275h608v-275h-139v-629q0 -86 19.5 -146t54.5 -98t83 -55.5t105 -17.5q59 0 107.5 15t83 51.5t53 97.5t18.5 153v629h-161v275h608v-275h-121v-590q0 -160 -46 -284.5t-126.5 -210.5t-189 -131t-232.5 -45q-123 0 -230 44.5t-186.5 129t-125.5 205.5t-46 274 v608h-137zM510 1658l215 311h326v-25l-306 -286h-235z" /> +<glyph unicode="Û" horiz-adv-x="1561" d="M51 1241v275h608v-275h-139v-629q0 -86 19.5 -146t54.5 -98t83 -55.5t105 -17.5q59 0 107.5 15t83 51.5t53 97.5t18.5 153v629h-161v275h608v-275h-121v-590q0 -160 -46 -284.5t-126.5 -210.5t-189 -131t-232.5 -45q-123 0 -230 44.5t-186.5 129t-125.5 205.5t-46 274 v608h-137zM387 1656l272 325h240l274 -325h-245l-148 153l-145 -153h-248z" /> +<glyph unicode="Ü" horiz-adv-x="1561" d="M51 1241v275h608v-275h-139v-629q0 -86 19.5 -146t54.5 -98t83 -55.5t105 -17.5q59 0 107.5 15t83 51.5t53 97.5t18.5 153v629h-161v275h608v-275h-121v-590q0 -160 -46 -284.5t-126.5 -210.5t-189 -131t-232.5 -45q-123 0 -230 44.5t-186.5 129t-125.5 205.5t-46 274 v608h-137zM363 1823q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM842 1823q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57 t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="Ý" horiz-adv-x="1536" d="M47 1241v275h649v-275h-127l203 -348l215 348h-145v275h649v-275h-112l-451 -612v-355h184v-274h-676v274h168v359l-424 608h-133zM497 1658l215 311h326v-25l-306 -286h-235z" /> +<glyph unicode="Þ" horiz-adv-x="1450" d="M112 0v274h159v967h-159v275h649v-275h-158v-47h210q117 0 215 -33.5t169 -92.5t111 -139t40 -173q0 -85 -31.5 -163t-97.5 -138t-167 -95.5t-239 -35.5h-210v-50h158v-274h-649zM603 594h136q114 0 181 38.5t67 121.5q0 78 -63 122t-185 44h-136v-326z" /> +<glyph unicode="ß" horiz-adv-x="1354" d="M37 0v274h207v908q0 70 31 141t90 128t145 92.5t197 35.5q107 0 193.5 -32.5t147 -88.5t93.5 -130.5t33 -158.5q0 -50 -8.5 -91t-23.5 -74.5t-34.5 -59.5t-41.5 -46q105 -64 163.5 -168t58.5 -236q0 -128 -41 -223t-112.5 -158t-169 -94t-211.5 -31q-20 0 -37 1.5 t-37 4.5l14 276q16 -3 28 -3.5t28 -0.5q45 0 84 16.5t67.5 45.5t45 68.5t16.5 86.5q0 44 -16.5 82.5t-45 67t-67 45t-82.5 16.5h-68l-2 285h72q37 1 59 16.5t37.5 37.5t24 47.5t8.5 47.5q0 79 -46.5 128t-129.5 49q-36 0 -65.5 -12.5t-50.5 -36t-32.5 -56.5t-11.5 -74v-1124 h-37v-2h-473z" /> +<glyph unicode="à" horiz-adv-x="1280" d="M72 307q0 72 27.5 133t79.5 104.5t127.5 68t172.5 24.5q71 0 129.5 -7.5t108.5 -18.5v32q0 39 -15 67.5t-42 47t-65 27t-83 8.5q-94 0 -165.5 -18.5t-137.5 -53.5l-96 194q102 70 213.5 107t236.5 37q97 0 179.5 -21.5t141.5 -70t92.5 -126.5t33.5 -190v-377h139v-274 h-432v56q-35 -22 -64 -37.5t-58 -25t-60 -14t-68 -4.5q-93 0 -166.5 25.5t-124 70t-77.5 105t-27 131.5zM354 319q0 -46 33.5 -77t101.5 -31q71 0 129 23t99 56v132h-240q-23 0 -45 -7t-39.5 -20t-28 -32t-10.5 -44zM369 1464v25h326l196 -311h-229z" /> +<glyph unicode="á" horiz-adv-x="1280" d="M72 307q0 72 27.5 133t79.5 104.5t127.5 68t172.5 24.5q71 0 129.5 -7.5t108.5 -18.5v32q0 39 -15 67.5t-42 47t-65 27t-83 8.5q-94 0 -165.5 -18.5t-137.5 -53.5l-96 194q102 70 213.5 107t236.5 37q97 0 179.5 -21.5t141.5 -70t92.5 -126.5t33.5 -190v-377h139v-274 h-432v56q-35 -22 -64 -37.5t-58 -25t-60 -14t-68 -4.5q-93 0 -166.5 25.5t-124 70t-77.5 105t-27 131.5zM354 319q0 -46 33.5 -77t101.5 -31q71 0 129 23t99 56v132h-240q-23 0 -45 -7t-39.5 -20t-28 -32t-10.5 -44zM359 1178l215 311h326v-25l-306 -286h-235z" /> +<glyph unicode="â" horiz-adv-x="1280" d="M72 307q0 72 27.5 133t79.5 104.5t127.5 68t172.5 24.5q71 0 129.5 -7.5t108.5 -18.5v32q0 39 -15 67.5t-42 47t-65 27t-83 8.5q-94 0 -165.5 -18.5t-137.5 -53.5l-96 194q102 70 213.5 107t236.5 37q97 0 179.5 -21.5t141.5 -70t92.5 -126.5t33.5 -190v-377h139v-274 h-432v56q-35 -22 -64 -37.5t-58 -25t-60 -14t-68 -4.5q-93 0 -166.5 25.5t-124 70t-77.5 105t-27 131.5zM237 1176l272 325h240l274 -325h-245l-148 153l-145 -153h-248zM354 319q0 -46 33.5 -77t101.5 -31q71 0 129 23t99 56v132h-240q-23 0 -45 -7t-39.5 -20t-28 -32 t-10.5 -44z" /> +<glyph unicode="ã" horiz-adv-x="1280" d="M72 307q0 72 27.5 133t79.5 104.5t127.5 68t172.5 24.5q71 0 129.5 -7.5t108.5 -18.5v32q0 39 -15 67.5t-42 47t-65 27t-83 8.5q-94 0 -165.5 -18.5t-137.5 -53.5l-96 194q102 70 213.5 107t236.5 37q97 0 179.5 -21.5t141.5 -70t92.5 -126.5t33.5 -190v-377h139v-274 h-432v56q-35 -22 -64 -37.5t-58 -25t-60 -14t-68 -4.5q-93 0 -166.5 25.5t-124 70t-77.5 105t-27 131.5zM191 1264q14 54 47.5 94t74.5 67t84.5 40.5t78.5 13.5q42 0 81 -14.5t76.5 -32t73 -32t70.5 -14.5q42 0 74.5 15t58.5 53l158 -70q-15 -45 -42.5 -84t-63.5 -68.5 t-79 -46t-90 -16.5q-52 0 -94 13.5t-79.5 30t-73.5 30.5t-76 14q-45 0 -76 -18.5t-51 -44.5zM354 319q0 -46 33.5 -77t101.5 -31q71 0 129 23t99 56v132h-240q-23 0 -45 -7t-39.5 -20t-28 -32t-10.5 -44z" /> +<glyph unicode="ä" horiz-adv-x="1280" d="M72 307q0 72 27.5 133t79.5 104.5t127.5 68t172.5 24.5q71 0 129.5 -7.5t108.5 -18.5v32q0 39 -15 67.5t-42 47t-65 27t-83 8.5q-94 0 -165.5 -18.5t-137.5 -53.5l-96 194q102 70 213.5 107t236.5 37q97 0 179.5 -21.5t141.5 -70t92.5 -126.5t33.5 -190v-377h139v-274 h-432v56q-35 -22 -64 -37.5t-58 -25t-60 -14t-68 -4.5q-93 0 -166.5 25.5t-124 70t-77.5 105t-27 131.5zM213 1343q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38 t-37.5 56.5t-13.5 69.5zM354 319q0 -46 33.5 -77t101.5 -31q71 0 129 23t99 56v132h-240q-23 0 -45 -7t-39.5 -20t-28 -32t-10.5 -44zM692 1343q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14 q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="å" horiz-adv-x="1280" d="M72 307q0 72 27.5 133t79.5 104.5t127.5 68t172.5 24.5q71 0 129.5 -7.5t108.5 -18.5v32q0 39 -15 67.5t-42 47t-65 27t-83 8.5q-94 0 -165.5 -18.5t-137.5 -53.5l-96 194q102 70 213.5 107t236.5 37q97 0 179.5 -21.5t141.5 -70t92.5 -126.5t33.5 -190v-377h139v-274 h-432v56q-35 -22 -64 -37.5t-58 -25t-60 -14t-68 -4.5q-93 0 -166.5 25.5t-124 70t-77.5 105t-27 131.5zM259 1416q0 65 25 123t68 101t101 68t123 25t123 -25t101.5 -68t68.5 -101t25 -123t-25 -123t-68.5 -101.5t-101.5 -68.5t-123 -25t-123 25t-101 68.5t-68 101.5 t-25 123zM354 319q0 -46 33.5 -77t101.5 -31q71 0 129 23t99 56v132h-240q-23 0 -45 -7t-39.5 -20t-28 -32t-10.5 -44zM451 1416q0 -26 10 -49t27 -40t39.5 -26.5t48.5 -9.5t48.5 9.5t39 26.5t26 40t9.5 49t-9.5 48.5t-26 39t-39 26t-48.5 9.5t-48.5 -9.5t-39.5 -26t-27 -39 t-10 -48.5z" /> +<glyph unicode="æ" horiz-adv-x="1851" d="M72 307q0 72 27.5 133t79.5 104.5t127.5 68t172.5 24.5q76 0 138 -8q50 -7 94 -16v30q0 79 -54 114.5t-145 35.5q-94 0 -165.5 -18.5t-137.5 -53.5l-96 194q102 70 213.5 107t236.5 37q97 0 178 -21.5t153 -83.5q60 51 137 84q100 43 222 43t216.5 -40.5t159.5 -112 t100 -168t38 -164.5t3.5 -92.5t-1.5 -50.5h-763l3 -31q11 -45 37.5 -79t62.5 -57t80 -34.5t89 -11.5t85.5 5.5t78.5 15t74 22t73 26.5l110 -205q-57 -35 -104.5 -59.5t-95.5 -40.5t-102 -23.5t-126 -7.5q-135 0 -240 44.5t-176 119.5q-28 -28 -64 -56.5t-84.5 -52.5 t-108 -38.5t-131.5 -14.5q-93 0 -166.5 25.5t-124 70t-77.5 105t-27 131.5zM354 319q0 -46 33.5 -77t101.5 -31q93 0 159 30q55 26 101 64q-2 5 -4 11q-19 51 -28 106h-240q-23 0 -45 -7t-39.5 -20t-28 -32t-10.5 -44zM1015 664h433q-7 34 -20 64t-36 53t-58.5 36.5 t-88.5 13.5q-56 0 -95.5 -13.5t-66.5 -37t-43 -53.5t-25 -63z" /> +<glyph unicode="ç" horiz-adv-x="1180" d="M72 530q0 115 41.5 213.5t114.5 172t173.5 114.5t218.5 37q84 4 163 -19t150 -69h199v-301h-276q-43 54 -96 81.5t-125 23.5q-58 4 -105.5 -16t-82 -56t-53.5 -85.5t-19 -111.5q0 -55 20 -104t54.5 -84.5t82 -55.5t103.5 -24q47 4 85.5 19.5t68.5 40t51.5 55t33.5 57.5 l275 -76q-17 -60 -58.5 -125t-108 -118.5t-158 -88.5t-208.5 -35q-119 0 -219 43.5t-172 118.5t-112.5 176t-40.5 217zM355 -293q41 3 77.5 19.5t66 46.5t51 73.5t31.5 100.5l243 -86q-23 -79 -65 -138t-100 -98t-128.5 -59t-150.5 -21z" /> +<glyph unicode="è" horiz-adv-x="1186" d="M51 532q0 114 39.5 214t111.5 174.5t172 117.5t222 43t216.5 -40.5t159.5 -112t100 -168t38 -207.5q3 -25 3.5 -49.5t-1.5 -50.5h-763l3 -31q11 -45 37.5 -79t62.5 -57t80 -34.5t89 -11.5t85.5 5.5t78.5 15t74 22t73 26.5l110 -205q-57 -35 -104.5 -59.5t-95.5 -40.5 t-102 -23.5t-126 -7.5q-135 0 -240 44.5t-176.5 120.5t-109 178t-37.5 216zM332 1464v25h326l196 -311h-229zM358 664h433q-7 34 -20 64t-36 53t-58.5 36.5t-88.5 13.5q-56 0 -95.5 -13.5t-66.5 -37t-43 -53.5t-25 -63z" /> +<glyph unicode="é" horiz-adv-x="1186" d="M51 532q0 114 39.5 214t111.5 174.5t172 117.5t222 43t216.5 -40.5t159.5 -112t100 -168t38 -207.5q3 -25 3.5 -49.5t-1.5 -50.5h-763l3 -31q11 -45 37.5 -79t62.5 -57t80 -34.5t89 -11.5t85.5 5.5t78.5 15t74 22t73 26.5l110 -205q-57 -35 -104.5 -59.5t-95.5 -40.5 t-102 -23.5t-126 -7.5q-135 0 -240 44.5t-176.5 120.5t-109 178t-37.5 216zM322 1178l215 311h326v-25l-306 -286h-235zM358 664h433q-7 34 -20 64t-36 53t-58.5 36.5t-88.5 13.5q-56 0 -95.5 -13.5t-66.5 -37t-43 -53.5t-25 -63z" /> +<glyph unicode="ê" horiz-adv-x="1186" d="M51 532q0 114 39.5 214t111.5 174.5t172 117.5t222 43t216.5 -40.5t159.5 -112t100 -168t38 -207.5q3 -25 3.5 -49.5t-1.5 -50.5h-763l3 -31q11 -45 37.5 -79t62.5 -57t80 -34.5t89 -11.5t85.5 5.5t78.5 15t74 22t73 26.5l110 -205q-57 -35 -104.5 -59.5t-95.5 -40.5 t-102 -23.5t-126 -7.5q-135 0 -240 44.5t-176.5 120.5t-109 178t-37.5 216zM200 1176l272 325h240l274 -325h-245l-148 153l-145 -153h-248zM358 664h433q-7 34 -20 64t-36 53t-58.5 36.5t-88.5 13.5q-56 0 -95.5 -13.5t-66.5 -37t-43 -53.5t-25 -63z" /> +<glyph unicode="ë" horiz-adv-x="1186" d="M51 532q0 114 39.5 214t111.5 174.5t172 117.5t222 43t216.5 -40.5t159.5 -112t100 -168t38 -207.5q3 -25 3.5 -49.5t-1.5 -50.5h-763l3 -31q11 -45 37.5 -79t62.5 -57t80 -34.5t89 -11.5t85.5 5.5t78.5 15t74 22t73 26.5l110 -205q-57 -35 -104.5 -59.5t-95.5 -40.5 t-102 -23.5t-126 -7.5q-135 0 -240 44.5t-176.5 120.5t-109 178t-37.5 216zM176 1343q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM358 664h433 q-7 34 -20 64t-36 53t-58.5 36.5t-88.5 13.5q-56 0 -95.5 -13.5t-66.5 -37t-43 -53.5t-25 -63zM655 1343q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z " /> +<glyph unicode="ì" horiz-adv-x="790" d="M55 1464v25h326l196 -311h-229zM80 762v275l467 -1v-762h142v-274h-608v274h156v488h-157z" /> +<glyph unicode="í" horiz-adv-x="790" d="M80 762v275l467 -1v-762h142v-274h-608v274h156v488h-157zM124 1178l215 311h326v-25l-306 -286h-235z" /> +<glyph unicode="î" horiz-adv-x="790" d="M3 1176l272 325h240l274 -325h-245l-148 153l-145 -153h-248zM80 762v275l467 -1v-762h142v-274h-608v274h156v488h-157z" /> +<glyph unicode="ï" horiz-adv-x="790" d="M-21 1343q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM80 762v275l467 -1v-762h142v-274h-608v274h156v488h-157zM458 1343q0 37 14 69.5 t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="ð" horiz-adv-x="1250" d="M106 512q0 89 31.5 168t86.5 141.5t129 105t159 58.5q23 5 48 7.5t52 1.5l-65 114l-219 -53l-64 268l142 34l-101 177h350l57 -104l209 50l64 -267l-135 -33l180 -324q24 -43 46 -85t39.5 -85t27.5 -88.5t10 -95.5q0 -105 -41.5 -196t-113 -158t-166.5 -105.5t-201 -38.5 q-108 0 -204 38.5t-167 106.5t-112.5 161t-41.5 202zM403 504q0 -49 20 -87.5t52.5 -65t73 -40.5t82.5 -14q58 0 100.5 19.5t70 50.5t41 67.5t13.5 71.5q0 50 -17 88.5t-46 64.5t-69.5 39t-86.5 13q-48 0 -91 -15t-74.5 -42t-50 -65t-18.5 -85z" /> +<glyph unicode="ñ" horiz-adv-x="1460" d="M80 0v274h152v488h-150v274h472v-91q65 51 145.5 80.5t169.5 29.5q187 0 288 -104.5t101 -305.5v-371h147v-274h-473v596q0 87 -46 136.5t-122 49.5q-52 0 -105 -23t-103 -86v-399h168v-274h-644zM291 1264q14 54 47.5 94t74.5 67t84.5 40.5t78.5 13.5q42 0 81 -14.5 t76.5 -32t73 -32t70.5 -14.5q42 0 74.5 15t58.5 53l158 -70q-15 -45 -42.5 -84t-63.5 -68.5t-79 -46t-90 -16.5q-52 0 -94 13.5t-79.5 30t-73.5 30.5t-76 14q-45 0 -76 -18.5t-51 -44.5z" /> +<glyph unicode="ò" d="M72 522q0 113 41 212t114 173t174 117t222 43t222.5 -43t174.5 -117t113.5 -173t40.5 -212t-39.5 -212.5t-112 -174t-174 -117.5t-225.5 -43q-125 0 -226.5 43t-173.5 117t-111.5 173.5t-39.5 213.5zM361 1464v25h326l196 -311h-229zM371 522q0 -59 20 -108.5t54.5 -85.5 t80 -56t97.5 -20q53 0 98.5 19.5t79 55.5t52.5 85.5t19 109.5q0 62 -19 112t-52.5 85t-79 53.5t-98.5 17.5q-52 1 -97.5 -17.5t-80 -53.5t-54.5 -85t-20 -112z" /> +<glyph unicode="ó" d="M72 522q0 113 41 212t114 173t174 117t222 43t222.5 -43t174.5 -117t113.5 -173t40.5 -212t-39.5 -212.5t-112 -174t-174 -117.5t-225.5 -43q-125 0 -226.5 43t-173.5 117t-111.5 173.5t-39.5 213.5zM352 1178l215 311h326v-25l-306 -286h-235zM371 522q0 -59 20 -108.5 t54.5 -85.5t80 -56t97.5 -20q53 0 98.5 19.5t79 55.5t52.5 85.5t19 109.5q0 62 -19 112t-52.5 85t-79 53.5t-98.5 17.5q-52 1 -97.5 -17.5t-80 -53.5t-54.5 -85t-20 -112z" /> +<glyph unicode="ô" d="M72 522q0 113 41 212t114 173t174 117t222 43t222.5 -43t174.5 -117t113.5 -173t40.5 -212t-39.5 -212.5t-112 -174t-174 -117.5t-225.5 -43q-125 0 -226.5 43t-173.5 117t-111.5 173.5t-39.5 213.5zM229 1176l272 325h240l274 -325h-245l-148 153l-145 -153h-248z M371 522q0 -59 20 -108.5t54.5 -85.5t80 -56t97.5 -20q53 0 98.5 19.5t79 55.5t52.5 85.5t19 109.5q0 62 -19 112t-52.5 85t-79 53.5t-98.5 17.5q-52 1 -97.5 -17.5t-80 -53.5t-54.5 -85t-20 -112z" /> +<glyph unicode="õ" d="M72 522q0 113 41 212t114 173t174 117t222 43t222.5 -43t174.5 -117t113.5 -173t40.5 -212t-39.5 -212.5t-112 -174t-174 -117.5t-225.5 -43q-125 0 -226.5 43t-173.5 117t-111.5 173.5t-39.5 213.5zM184 1264q14 54 47.5 94t74.5 67t84.5 40.5t78.5 13.5q42 0 81 -14.5 t76.5 -32t73 -32t70.5 -14.5q42 0 74.5 15t58.5 53l158 -70q-15 -45 -42.5 -84t-63.5 -68.5t-79 -46t-90 -16.5q-52 0 -94 13.5t-79.5 30t-73.5 30.5t-76 14q-45 0 -76 -18.5t-51 -44.5zM371 522q0 -59 20 -108.5t54.5 -85.5t80 -56t97.5 -20q53 0 98.5 19.5t79 55.5 t52.5 85.5t19 109.5q0 62 -19 112t-52.5 85t-79 53.5t-98.5 17.5q-52 1 -97.5 -17.5t-80 -53.5t-54.5 -85t-20 -112z" /> +<glyph unicode="ö" d="M72 522q0 113 41 212t114 173t174 117t222 43t222.5 -43t174.5 -117t113.5 -173t40.5 -212t-39.5 -212.5t-112 -174t-174 -117.5t-225.5 -43q-125 0 -226.5 43t-173.5 117t-111.5 173.5t-39.5 213.5zM205 1343q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14 t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM371 522q0 -59 20 -108.5t54.5 -85.5t80 -56t97.5 -20q53 0 98.5 19.5t79 55.5t52.5 85.5t19 109.5q0 62 -19 112t-52.5 85t-79 53.5t-98.5 17.5 q-52 1 -97.5 -17.5t-80 -53.5t-54.5 -85t-20 -112zM684 1343q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="÷" horiz-adv-x="1270" d="M52 394v274h1125v-274h-1125zM398 145q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM398 907q0 37 13.5 69.5t37.5 56.5t56.5 38t70.5 14 q36 0 68 -14t56 -38t38 -56.5t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5z" /> +<glyph unicode="ø" horiz-adv-x="1196" d="M30 -61l164 216q-63 73 -97.5 166.5t-34.5 200.5q0 113 41 212t114 173t174 117t222 43q66 0 125.5 -13t113.5 -37l114 150h256l-204 -269q69 -74 107.5 -170t38.5 -206q0 -113 -39.5 -212.5t-112 -174t-174 -117.5t-225.5 -43q-71 0 -134 14t-119 40l-68 -90h-262z M361 522q0 -66 24 -118l289 380q-26 7 -61 7q-52 0 -97.5 -18.5t-80 -53.5t-54.5 -85t-20 -112zM538 263q36 -11 75 -11q53 0 98.5 19.5t79 55.5t52.5 85.5t19 109.5q0 74 -28 133z" /> +<glyph unicode="ù" horiz-adv-x="1410" d="M60 762v274h458v-610q0 -104 53 -155.5t138 -51.5q60 0 109 37t71 100v406h-166v274h490v-762h125v-274h-439v88q-53 -48 -124 -74t-164 -26q-86 0 -162 27t-132.5 81.5t-89 136.5t-32.5 193v336h-135zM444 1464v25h326l196 -311h-229z" /> +<glyph unicode="ú" horiz-adv-x="1410" d="M60 762v274h458v-610q0 -104 53 -155.5t138 -51.5q60 0 109 37t71 100v406h-166v274h490v-762h125v-274h-439v88q-53 -48 -124 -74t-164 -26q-86 0 -162 27t-132.5 81.5t-89 136.5t-32.5 193v336h-135zM434 1178l215 311h326v-25l-306 -286h-235z" /> +<glyph unicode="û" horiz-adv-x="1410" d="M60 762v274h458v-610q0 -104 53 -155.5t138 -51.5q60 0 109 37t71 100v406h-166v274h490v-762h125v-274h-439v88q-53 -48 -124 -74t-164 -26q-86 0 -162 27t-132.5 81.5t-89 136.5t-32.5 193v336h-135zM312 1176l272 325h240l274 -325h-245l-148 153l-145 -153h-248z" /> +<glyph unicode="ü" horiz-adv-x="1410" d="M60 762v274h458v-610q0 -104 53 -155.5t138 -51.5q60 0 109 37t71 100v406h-166v274h490v-762h125v-274h-439v88q-53 -48 -124 -74t-164 -26q-86 0 -162 27t-132.5 81.5t-89 136.5t-32.5 193v336h-135zM288 1343q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14 t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM767 1343q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38 t-38 56.5t-14 69.5z" /> +<glyph unicode="ý" horiz-adv-x="1241" d="M51 762v274h508v-274h-80l149 -388l153 388h-89v274h508v-274h-113l-401 -959h178v-274h-643v274h181l78 197l-324 762h-105zM350 1178l215 311h326v-25l-306 -286h-235z" /> +<glyph unicode="þ" horiz-adv-x="1198" d="M28 -197h144v1478h-144v275h451v-538q54 27 109 43t108 16q119 0 219 -43.5t172.5 -118t113 -174t40.5 -211.5q0 -113 -39.5 -212.5t-110.5 -173.5t-169 -117t-215 -43q-124 0 -228 46v-227h225v-274h-676v274zM479 371q32 -48 85.5 -77.5t119.5 -29.5q51 0 97 19.5 t80.5 54.5t54.5 83.5t20 106.5q0 59 -20 107t-54 81.5t-79.5 51.5t-96.5 18q-63 0 -116.5 -28.5t-90.5 -79.5v-307z" /> +<glyph unicode="ÿ" horiz-adv-x="1241" d="M51 762v274h508v-274h-80l149 -388l153 388h-89v274h508v-274h-113l-401 -959h178v-274h-643v274h181l78 197l-324 762h-105zM203 1343q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14 q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM682 1343q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="Ÿ" horiz-adv-x="1536" d="M47 1241v275h649v-275h-127l203 -348l215 348h-145v275h649v-275h-112l-451 -612v-355h184v-274h-676v274h168v359l-424 608h-133zM351 1823q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14 q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM830 1823q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="ˆ" horiz-adv-x="827" d="M86 1176l272 325h240l274 -325h-245l-148 153l-145 -153h-248z" /> +<glyph unicode="˜" horiz-adv-x="903" d="M10 1264q14 54 47.5 94t74.5 67t84.5 40.5t78.5 13.5q42 0 81 -14.5t76.5 -32t73 -32t70.5 -14.5q42 0 74.5 15t58.5 53l158 -70q-15 -45 -42.5 -84t-63.5 -68.5t-79 -46t-90 -16.5q-52 0 -94 13.5t-79.5 30t-73.5 30.5t-76 14q-45 0 -76 -18.5t-51 -44.5z" /> +<glyph unicode=" " horiz-adv-x="1013" /> +<glyph unicode=" " horiz-adv-x="2026" /> +<glyph unicode=" " horiz-adv-x="1013" /> +<glyph unicode=" " horiz-adv-x="2026" /> +<glyph unicode=" " horiz-adv-x="675" /> +<glyph unicode=" " horiz-adv-x="506" /> +<glyph unicode=" " horiz-adv-x="337" /> +<glyph unicode=" " horiz-adv-x="337" /> +<glyph unicode=" " horiz-adv-x="253" /> +<glyph unicode=" " horiz-adv-x="405" /> +<glyph unicode=" " horiz-adv-x="112" /> +<glyph unicode="‐" horiz-adv-x="770" d="M61 449v274h627v-274h-627z" /> +<glyph unicode="‑" horiz-adv-x="770" d="M61 449v274h627v-274h-627z" /> +<glyph unicode="‒" horiz-adv-x="770" d="M61 449v274h627v-274h-627z" /> +<glyph unicode="–" horiz-adv-x="1229" d="M102 459v274h1024v-274h-1024z" /> +<glyph unicode="—" horiz-adv-x="1843" d="M0 459v274h1843v-274h-1843z" /> +<glyph unicode="‘" horiz-adv-x="530" d="M20 1110l285 541l205 -78l-184 -569z" /> +<glyph unicode="’" horiz-adv-x="532" d="M20 1065l185 569l305 -106l-285 -541z" /> +<glyph unicode="“" horiz-adv-x="938" d="M-31 1106l305 557l222 -92l-242 -572zM459 1096l278 561l221 -84l-215 -584z" /> +<glyph unicode="”" horiz-adv-x="981" d="M-6 1079l215 584l285 -107l-279 -561zM457 1081l241 572l285 -107l-305 -557z" /> +<glyph unicode="„" horiz-adv-x="981" d="M-6 -308l215 584l285 -107l-279 -561zM457 -306l241 572l285 -107l-305 -557z" /> +<glyph unicode="•" horiz-adv-x="1024" d="M180 778q0 69 26.5 129t71.5 104.5t105.5 70.5t128.5 26t128 -26t105 -70.5t71 -104.5t26 -129q0 -68 -26 -128.5t-71 -105.5t-105 -71.5t-128 -26.5t-128.5 26.5t-105.5 71.5t-71.5 105.5t-26.5 128.5z" /> +<glyph unicode="…" horiz-adv-x="1315" d="M31 143q0 37 14.5 69t40 55t59.5 36.5t72 13.5q37 0 72 -13.5t61 -36.5t42 -55t16 -69q0 -35 -16 -66.5t-42 -55.5t-61 -38t-72 -14q-38 0 -72 14t-59.5 38t-40 55.5t-14.5 66.5zM469 143q0 37 14.5 69t40 55t59.5 36.5t72 13.5t72.5 -13.5t61 -36.5t42 -55t15.5 -69 q0 -35 -15.5 -66.5t-42 -55.5t-61 -38t-72.5 -14t-72 14t-59.5 38t-40 55.5t-14.5 66.5zM907 143q0 37 14.5 69t40 55t59.5 36.5t73 13.5q37 0 71.5 -13.5t61 -36.5t42 -55t15.5 -69q0 -35 -15.5 -66.5t-42 -55.5t-61 -38t-71.5 -14q-39 0 -73 14t-59.5 38t-40 55.5 t-14.5 66.5z" /> +<glyph unicode=" " horiz-adv-x="405" /> +<glyph unicode="‹" horiz-adv-x="598" d="M82 593v74l260 369h223l-211 -406l213 -407h-229z" /> +<glyph unicode="›" horiz-adv-x="594" d="M31 223l213 407l-211 406h223l260 -369v-74l-256 -370h-229z" /> +<glyph unicode=" " horiz-adv-x="506" /> +<glyph unicode="◼" horiz-adv-x="1035" d="M0 0v1035h1035v-1035h-1035z" /> +<hkern u1="A" u2="Y" k="150" /> +<hkern u1="A" u2="V" k="100" /> +<hkern u1="A" u2="T" k="100" /> +<hkern u1="F" u2="." k="250" /> +<hkern u1="F" u2="," k="220" /> +<hkern u1="P" u2="." k="300" /> +<hkern u1="P" u2="," k="300" /> +<hkern u1="T" u2="Æ" k="100" /> +<hkern u1="T" u2="Å" k="100" /> +<hkern u1="T" u2="Ä" k="100" /> +<hkern u1="T" u2="Ã" k="100" /> +<hkern u1="T" u2="Â" k="100" /> +<hkern u1="T" u2="Á" k="100" /> +<hkern u1="T" u2="À" k="100" /> +<hkern u1="T" u2="q" k="200" /> +<hkern u1="T" u2="o" k="200" /> +<hkern u1="T" u2="g" k="200" /> +<hkern u1="T" u2="e" k="200" /> +<hkern u1="T" u2="d" k="200" /> +<hkern u1="T" u2="c" k="200" /> +<hkern u1="T" u2="a" k="150" /> +<hkern u1="T" u2="A" k="100" /> +<hkern u1="T" u2="." k="280" /> +<hkern u1="T" u2="," k="280" /> +<hkern u1="V" u2="Æ" k="200" /> +<hkern u1="V" u2="Å" k="100" /> +<hkern u1="V" u2="Ä" k="100" /> +<hkern u1="V" u2="Ã" k="100" /> +<hkern u1="V" u2="Â" k="100" /> +<hkern u1="V" u2="Á" k="100" /> +<hkern u1="V" u2="À" k="100" /> +<hkern u1="V" u2="u" k="100" /> +<hkern u1="V" u2="q" k="160" /> +<hkern u1="V" u2="o" k="160" /> +<hkern u1="V" u2="m" k="100" /> +<hkern u1="V" u2="g" k="160" /> +<hkern u1="V" u2="e" k="160" /> +<hkern u1="V" u2="d" k="160" /> +<hkern u1="V" u2="c" k="160" /> +<hkern u1="V" u2="a" k="100" /> +<hkern u1="V" u2="A" k="100" /> +<hkern u1="V" u2="." k="180" /> +<hkern u1="V" u2="," k="180" /> +<hkern u1="Y" u2="Æ" k="250" /> +<hkern u1="Y" u2="Å" k="100" /> +<hkern u1="Y" u2="Ä" k="100" /> +<hkern u1="Y" u2="Ã" k="100" /> +<hkern u1="Y" u2="Â" k="100" /> +<hkern u1="Y" u2="Á" k="100" /> +<hkern u1="Y" u2="À" k="100" /> +<hkern u1="Y" u2="q" k="200" /> +<hkern u1="Y" u2="o" k="200" /> +<hkern u1="Y" u2="e" k="200" /> +<hkern u1="Y" u2="d" k="200" /> +<hkern u1="Y" u2="c" k="200" /> +<hkern u1="Y" u2="a" k="150" /> +<hkern u1="Y" u2="A" k="100" /> +<hkern u1="Y" u2="." k="225" /> +<hkern u1="Y" u2="," k="200" /> +<hkern u1="f" u2="." k="50" /> +<hkern u1="f" u2="," k="90" /> +<hkern u1="k" u2="e" k="50" /> +<hkern u1="k" u2="c" k="50" /> +<hkern u1="y" u2="." k="200" /> +<hkern u1="y" u2="," k="150" /> +<hkern u1="À" u2="Y" k="150" /> +<hkern u1="À" u2="V" k="100" /> +<hkern u1="À" u2="T" k="100" /> +<hkern u1="Á" u2="Y" k="150" /> +<hkern u1="Á" u2="V" k="100" /> +<hkern u1="Á" u2="T" k="100" /> +<hkern u1="Â" u2="Y" k="150" /> +<hkern u1="Â" u2="V" k="100" /> +<hkern u1="Â" u2="T" k="100" /> +<hkern u1="Ã" u2="Y" k="150" /> +<hkern u1="Ã" u2="V" k="100" /> +<hkern u1="Ã" u2="T" k="100" /> +<hkern u1="Ä" u2="Y" k="150" /> +<hkern u1="Ä" u2="V" k="100" /> +<hkern u1="Ä" u2="T" k="100" /> +<hkern u1="Å" u2="Y" k="150" /> +<hkern u1="Å" u2="V" k="100" /> +<hkern u1="Å" u2="T" k="100" /> +<hkern u1="Æ" u2="V" k="100" /> +<hkern u1="Æ" u2="T" k="100" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/arvo-bold-webfont.ttf b/web/static/fonts/arvo-bold-webfont.ttf Binary files differnew file mode 100755 index 000000000..404037cd0 --- /dev/null +++ b/web/static/fonts/arvo-bold-webfont.ttf diff --git a/web/static/fonts/arvo-bold-webfont.woff b/web/static/fonts/arvo-bold-webfont.woff Binary files differnew file mode 100755 index 000000000..e342dce29 --- /dev/null +++ b/web/static/fonts/arvo-bold-webfont.woff diff --git a/web/static/fonts/arvo-bold-webfont.woff2 b/web/static/fonts/arvo-bold-webfont.woff2 Binary files differnew file mode 100755 index 000000000..09f4de874 --- /dev/null +++ b/web/static/fonts/arvo-bold-webfont.woff2 diff --git a/web/static/fonts/arvo-bolditalic-webfont.eot b/web/static/fonts/arvo-bolditalic-webfont.eot Binary files differnew file mode 100755 index 000000000..898d82e24 --- /dev/null +++ b/web/static/fonts/arvo-bolditalic-webfont.eot diff --git a/web/static/fonts/arvo-bolditalic-webfont.svg b/web/static/fonts/arvo-bolditalic-webfont.svg new file mode 100755 index 000000000..ad78670ac --- /dev/null +++ b/web/static/fonts/arvo-bolditalic-webfont.svg @@ -0,0 +1,311 @@ +<?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="arvobold_italic" horiz-adv-x="1479" > +<font-face units-per-em="2048" ascent="1638" descent="-410" /> +<missing-glyph horiz-adv-x="492" /> +<glyph horiz-adv-x="0" /> +<glyph unicode="
" horiz-adv-x="0" /> +<glyph unicode=" " horiz-adv-x="492" /> +<glyph unicode="	" horiz-adv-x="492" /> +<glyph unicode=" " horiz-adv-x="492" /> +<glyph unicode="!" horiz-adv-x="866" d="M246 145q0 37 14 69.5t38 56.5t56.5 38t70.5 14q36 0 68 -14t56 -38t38 -56.5t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5zM329 516l204 1061h375l-286 -1061h-293z" /> +<glyph unicode=""" horiz-adv-x="913" d="M246 1059l71 518l289 16l-141 -534h-219zM676 1059l72 518l288 16l-141 -534h-219z" /> +<glyph unicode="#" horiz-adv-x="1835" d="M143 287l123 274h199l156 363h-205l123 274h199l128 299h326l-127 -299h320l128 299h326l-128 -299h206l-123 -274h-199l-155 -363h205l-123 -274h-198l-122 -287h-328l122 287h-318l-121 -287h-332l123 287h-205zM795 561h318l155 363h-319z" /> +<glyph unicode="$" horiz-adv-x="1292" d="M20 276l60 256h364l-18 -76q-14 -89 37 -142.5t170 -53.5q56 0 100.5 15t76 41.5t48 63t16.5 79.5q0 33 -14 57t-37.5 41.5t-54.5 30.5t-66 24l-172 60q-60 20 -109.5 55.5t-85 83.5t-55.5 108.5t-20 129.5q0 108 35.5 192t100 145t155.5 97.5t201 50.5l53 229h332 l-58 -249q109 -33 174 -96.5t76 -141.5h115l-60 -256h-362l11 49q10 46 0 82.5t-36 61.5t-65 38t-86 13q-49 0 -93 -9.5t-77 -30t-52.5 -52.5t-19.5 -76q0 -39 16.5 -63.5t42.5 -40.5t57.5 -26.5t61.5 -21.5l207 -76q128 -46 187 -139t59 -227q0 -108 -37 -196.5 t-104.5 -154.5t-161 -108t-207.5 -58l-49 -214h-332l53 229q-113 32 -182.5 103.5t-81.5 172.5h-113z" /> +<glyph unicode="%" horiz-adv-x="1927" d="M164 -16l1401 1556h383l-1401 -1556h-383zM168 1108q0 92 37.5 174.5t103 144.5t153 98t187.5 36q76 0 139 -27.5t108 -74t70 -107t25 -127.5q0 -89 -36.5 -170.5t-101 -143.5t-152.5 -99.5t-191 -37.5q-77 0 -140 28t-108 74.5t-69.5 106.5t-24.5 125zM461 1145 q0 -40 23.5 -68t68.5 -28q28 0 55.5 11t49 30.5t34.5 45.5t13 56q0 43 -26 67.5t-73 24.5q-29 0 -55.5 -10t-46.5 -28.5t-31.5 -44t-11.5 -56.5zM1104 283q0 60 17 117.5t48.5 108t75.5 93t97.5 73t115.5 47.5t129 17q76 0 138.5 -27.5t107.5 -74t69.5 -108t24.5 -128.5 q0 -90 -36 -171t-100 -142.5t-152.5 -98t-192.5 -36.5q-76 0 -139 27t-108 72.5t-70 105.5t-25 125zM1397 319q0 -37 24.5 -64.5t69.5 -27.5q28 0 55 11t48 30.5t33.5 46t12.5 56.5q0 43 -26.5 67.5t-71.5 24.5q-29 0 -55.5 -10.5t-46.5 -29t-31.5 -45t-11.5 -59.5z" /> +<glyph unicode="&" horiz-adv-x="1300" d="M41 385q0 77 21.5 136.5t62.5 110t100 95t97.5 68t42.5 25.5q-52 71 -70.5 133.5t-18.5 131.5q0 102 35 186.5t98 145t151.5 94t195.5 33.5q84 0 155 -30t122 -79t79.5 -111.5t28.5 -127.5q0 -71 -19.5 -127t-55 -102t-85 -85.5t-109.5 -76.5q-19 -12 -37.5 -23 t-38.5 -22l133 -169q23 45 39 88t27 85h291q-23 -109 -63.5 -215.5t-102.5 -201.5l166 -210l-270 -196l-123 166q-89 -62 -196.5 -97t-237.5 -35q-91 0 -167.5 33.5t-132 89.5t-87 130.5t-31.5 156.5zM358 408q0 -27 9.5 -52t27.5 -44t44.5 -30.5t60.5 -11.5q60 0 115 19.5 t104 52.5l-199 269q-38 -21 -68 -42t-51 -45t-32 -52t-11 -64zM571 1110q0 -28 10 -58.5t59 -92.5q34 17 64 32.5t54 30.5q48 31 69 65t21 82q0 45 -28.5 77t-76.5 32q-35 0 -66 -12.5t-54.5 -35t-37.5 -53t-14 -67.5z" /> +<glyph unicode="'" horiz-adv-x="483" d="M246 1059l71 518l289 16l-141 -534h-219z" /> +<glyph unicode="(" horiz-adv-x="874" d="M164 328q0 196 47.5 386t138.5 370.5t222.5 352t299.5 332.5l207 -172q-130 -131 -237 -275t-184 -299.5t-119.5 -320t-42.5 -335.5q0 -86 9.5 -177t27.5 -179.5t44.5 -169.5t61.5 -148l-285 -160q-47 81 -82.5 176.5t-59.5 198.5t-36 210t-12 210z" /> +<glyph unicode=")" horiz-adv-x="874" d="M-102 -295q130 130 237 274.5t184 300t119.5 320.5t42.5 336q0 86 -9.5 177t-27.5 179t-45 169.5t-61 148.5l285 159q47 -81 82.5 -176.5t59.5 -198.5t36 -209.5t12 -209.5q0 -197 -47.5 -386.5t-138.5 -370.5t-223 -353t-300 -332z" /> +<glyph unicode="*" horiz-adv-x="983" d="M102 1204l134 242l208 -74l56 244h264l-56 -248l253 76l22 -256l-248 -74l94 -192l-237 -148l-92 191l-185 -195l-186 170l181 192z" /> +<glyph unicode="+" horiz-adv-x="1237" d="M102 449l64 274h366l86 373h297l-86 -373h367l-63 -274h-368l-87 -377h-297l87 377h-366z" /> +<glyph unicode="," horiz-adv-x="532" d="M20 -287l185 570l305 -107l-285 -541z" /> +<glyph unicode="-" horiz-adv-x="831" d="M143 449l64 274h627l-64 -274h-627z" /> +<glyph unicode="." horiz-adv-x="539" d="M102 145q0 37 14 69.5t38 56.5t56.5 38t70.5 14q36 0 68 -14t56 -38t38 -56.5t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="/" horiz-adv-x="983" d="M31 0l829 1556h277l-824 -1556h-282z" /> +<glyph unicode="0" horiz-adv-x="1360" d="M102 512q0 110 23 229t69 232.5t114 215.5t158 178.5t201 121.5t244 45q122 0 207.5 -41t139 -112.5t78 -168t24.5 -206.5q0 -119 -24 -241t-70.5 -235t-115.5 -212.5t-159 -173t-200.5 -116t-239.5 -42.5q-121 0 -206 40t-139 110.5t-79 167t-25 208.5zM426 547 q0 -55 9.5 -101.5t32.5 -80.5t61 -53t94 -19q59 0 113 32t99.5 85.5t82.5 123.5t63.5 146t40.5 152.5t14 144.5q0 54 -9.5 100t-32 80.5t-60 54t-92.5 19.5q-59 0 -113 -32.5t-100.5 -86.5t-84 -124t-63.5 -146t-40.5 -152.5t-14.5 -142.5z" /> +<glyph unicode="1" horiz-adv-x="813" d="M20 0l64 274h174l182 792l-266 -140l82 348l473 246l145 -2l-286 -1244h172l-64 -274h-676z" /> +<glyph unicode="2" horiz-adv-x="1137" d="M-41 0l59 260l654 557q54 44 93.5 81t64.5 71.5t37 68.5t12 72q0 25 -9 49t-27 42t-44.5 29t-61.5 11q-49 0 -84.5 -15.5t-61 -42.5t-42 -63t-27.5 -76h-329q27 118 80 210.5t128.5 156t171.5 96.5t207 33q98 0 179 -33t138.5 -89.5t89.5 -131.5t32 -160 q0 -51 -8.5 -98.5t-29.5 -94t-56 -91.5t-87 -90l-515 -445h497l-72 -307h-989z" /> +<glyph unicode="3" horiz-adv-x="1204" d="M47 416q2 14 2 31t6 40h342q-9 -52 -2.5 -90.5t25 -63.5t48.5 -37.5t69 -12.5q48 0 93 17t79.5 47t55.5 70t21 85q0 72 -44 110.5t-128 38.5h-139l64 273h141q52 0 94 15t71.5 40.5t45.5 58.5t16 70q0 27 -10 52.5t-30 46t-49.5 32.5t-67.5 12q-37 0 -69 -12.5 t-56.5 -33.5t-41.5 -48.5t-24 -58.5q-3 -11 -4.5 -17.5t-3.5 -17.5l-358 2q21 105 74.5 194t134.5 153.5t186.5 101t230.5 36.5q97 0 179 -30t141.5 -81.5t93 -120t33.5 -144.5q0 -69 -16 -127.5t-46 -105.5t-72 -83.5t-94 -62.5q24 -17 43.5 -42.5t33.5 -57.5t22 -70t8 -78 q0 -118 -52.5 -221t-144 -179.5t-216.5 -120.5t-269 -44q-105 0 -188 34.5t-138.5 93.5t-79.5 138t-10 168z" /> +<glyph unicode="4" horiz-adv-x="1251" d="M20 414l56 256l737 846h363l-727 -848h298l68 293l315 4l-69 -297h211l-58 -254h-211l-33 -140h187l-63 -274h-676l63 274h175l33 140h-669z" /> +<glyph unicode="5" horiz-adv-x="1163" d="M23 377l329 84q-5 -47 6.5 -84t35.5 -63t58.5 -40t77.5 -14q58 0 107.5 22.5t85.5 60t56 86.5t20 101q0 35 -13 67t-37 56.5t-58.5 39t-78.5 14.5q-32 0 -59.5 -3t-53.5 -9t-51 -15t-53 -21l-258 50l187 807h962l-72 -306h-649l-63 -273q44 14 94 23t113 9q87 0 163 -25 t133 -73.5t90 -119.5t33 -163q0 -139 -52.5 -253t-143.5 -195.5t-212.5 -126t-260.5 -44.5q-92 0 -173 28t-141 80.5t-93.5 128.5t-28.5 171z" /> +<glyph unicode="6" horiz-adv-x="1133" d="M61 439q0 60 14 116.5t37.5 107.5t53 97t61.5 86l528 670h387l-444 -541h13q93 0 166.5 -37t125.5 -98t79.5 -138t27.5 -157q0 -114 -47.5 -215t-127 -176.5t-183.5 -119.5t-218 -44q-92 0 -163.5 20.5t-124 55t-88 79.5t-57 95t-31 101.5t-9.5 97.5zM352 453 q0 -36 11 -69.5t33.5 -59.5t57 -41.5t81.5 -15.5q51 0 97.5 21t82 57t57 85.5t21.5 106.5q0 83 -49 132.5t-148 49.5q-113 0 -192 -106q-21 -32 -36.5 -71t-15.5 -89z" /> +<glyph unicode="7" horiz-adv-x="1243" d="M80 0l63 274h150q79 118 161.5 240t163.5 241t159 232.5t148 216.5h-391l-40 -172h-328l113 484h1148l-53 -226q-172 -242 -354.5 -499.5t-357.5 -516.5h157l-63 -274h-676z" /> +<glyph unicode="8" horiz-adv-x="1196" d="M61 393q0 66 21 126t58.5 112.5t89.5 97t114 78.5q-46 50 -71 110.5t-25 124.5q0 104 48 195.5t131 159.5t194.5 107.5t238.5 39.5q91 0 168 -27t132.5 -77.5t86.5 -124t31 -166.5q0 -57 -18 -109.5t-50.5 -100t-77 -88t-98.5 -72.5q60 -56 94.5 -128t34.5 -151 q0 -105 -49.5 -200t-136.5 -168t-205 -116t-256 -43q-104 0 -188.5 35.5t-143.5 94t-91 134t-32 156.5zM371 432q0 -35 14 -65.5t39.5 -54t61 -37t79.5 -13.5q55 0 106 19.5t91 52t64 75t24 87.5q0 34 -14 64.5t-39.5 53t-61 35.5t-78.5 13q-56 0 -107.5 -18.5t-91.5 -50 t-63.5 -73.5t-23.5 -88zM551 1055q0 -29 11.5 -55t33 -45.5t52 -30.5t67.5 -11q46 0 90 16t78 43t54.5 62.5t20.5 73.5q0 30 -12 56.5t-33.5 47t-51.5 32t-66 11.5q-48 0 -92 -17t-77.5 -45t-54 -64t-20.5 -74z" /> +<glyph unicode="9" horiz-adv-x="1118" d="M92 0l448 549h-14q-93 0 -166.5 37t-125.5 98t-79.5 138t-27.5 157q0 76 21.5 147t60 132.5t92.5 112.5t118 87t136 56t148 20q93 0 164 -20.5t123.5 -55t88 -79.5t57 -95t31 -101.5t9.5 -97.5q0 -60 -14 -116t-37.5 -107t-53.5 -97.5t-61 -86.5l-531 -678h-387zM444 987 q0 -83 49 -132.5t148 -49.5q113 0 192 106q21 31 36.5 70t15.5 90q0 36 -11 69.5t-33.5 59.5t-57 41.5t-81.5 15.5q-51 0 -97.5 -21t-82 -57t-57 -85.5t-21.5 -106.5z" /> +<glyph unicode=":" horiz-adv-x="600" d="M82 145q0 37 14 69.5t38 56.5t56.5 38t70.5 14q36 0 68 -14t56 -38t38 -56.5t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5zM245 907q0 37 14 69.5t38 56.5t56.5 38t70.5 14q36 0 68 -14t56 -38t38 -56.5t14 -69.5 t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode=";" horiz-adv-x="610" d="M-41 -287l184 570l305 -107l-284 -541zM256 907q0 37 14 69.5t38 56.5t56.5 38t70.5 14q36 0 68 -14t56 -38t38 -56.5t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="<" horiz-adv-x="971" d="M102 465l56 240l813 270l-68 -287l-450 -124l393 -130l-58 -254z" /> +<glyph unicode="=" horiz-adv-x="1176" d="M102 252l64 274h872l-63 -274h-873zM217 750l64 274h872l-63 -274h-873z" /> +<glyph unicode=">" horiz-adv-x="971" d="M41 180l68 287l449 123l-392 131l57 254l686 -285l-55 -239z" /> +<glyph unicode="?" horiz-adv-x="1085" d="M205 1118q23 108 69 189t113 135.5t153 82t189 27.5q88 0 164 -28t132.5 -77.5t89 -118.5t32.5 -150q0 -60 -9.5 -115t-35 -106.5t-71.5 -100t-118 -94.5q-38 -25 -71 -44.5t-62 -38.5t-53 -38.5t-43.5 -44t-34 -55t-24.5 -70.5h-320q12 63 28 111t37 85.5t47 67t58.5 56 t71.5 52.5t86 56q50 33 81 63.5t48 59.5t23 58t6 59q0 24 -8 44.5t-22 35t-32 22.5t-39 8t-44.5 -7t-44.5 -25t-38.5 -50t-27.5 -82zM239 145q0 37 14 69.5t38 56.5t56.5 38t70.5 14q36 0 68 -14t56 -38t38 -56.5t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14 q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="@" horiz-adv-x="2140" d="M123 346q0 156 41 298t115.5 264.5t180 222t234 170t277 109t309.5 38.5q122 0 230.5 -28.5t199.5 -79.5t163 -121.5t122.5 -156t77 -182.5t26.5 -200q0 -94 -19 -182t-54.5 -165.5t-87.5 -142t-117.5 -111t-144 -72t-167.5 -25.5q-81 0 -139.5 28.5t-91.5 81.5 q-64 -53 -140.5 -80.5t-156.5 -27.5q-95 0 -171 33t-129.5 89t-82.5 130t-29 157q0 93 25 171.5t68 142.5t100 113t122 82t134 50t135 17q74 0 127.5 -18t98.5 -47l12 52h286l-149 -647q-6 -21 -6 -39t6 -31t17 -20.5t28 -7.5q49 0 87 26.5t66 68t47.5 92t31.5 99t17 89 t5 61.5q0 110 -40 207.5t-113.5 171t-177 116t-230.5 42.5q-117 0 -227 -28.5t-206.5 -80.5t-176 -125t-137 -163.5t-89 -195.5t-31.5 -220q0 -129 39.5 -234t111.5 -180t173 -115.5t225 -40.5q99 0 204.5 31.5t211.5 87.5l84 -227q-140 -75 -273.5 -115.5t-267.5 -40.5 q-114 0 -216 28.5t-189 80.5t-157 125t-119.5 163t-76 194t-26.5 218zM879 434q0 -36 12 -65t33.5 -50t51.5 -32t66 -11q29 0 58.5 8t57.5 23t53.5 37t47.5 50l38 162q-7 29 -22 53t-36 41t-47.5 26.5t-56.5 9.5q-48 0 -94 -20.5t-82 -55t-58 -80t-22 -96.5z" /> +<glyph unicode="A" d="M-102 0l63 274h128l689 1242h436l114 -1242h192l-64 -274h-612l63 274h84l-16 209h-418l-111 -209h127l-63 -274h-612zM711 772h243l-30 402z" /> +<glyph unicode="B" horiz-adv-x="1516" d="M61 0l64 274h153l224 967h-172l63 275h766q96 0 170 -29t124.5 -80.5t76.5 -121.5t26 -152q0 -85 -28 -164.5t-93 -142.5q-48 -45 -118 -79q8 -6 14 -12q51 -47 77 -108t26 -131q0 -124 -40.5 -217t-115.5 -155t-181 -93t-237 -31h-799zM628 274h249q52 0 92.5 15.5 t68 44t42 68t14.5 87.5q0 29 -9 54.5t-26 44t-43 29t-60 10.5h-246zM774 901h232q45 0 84 13.5t67.5 39t45 61t16.5 79.5q0 30 -9.5 56.5t-27.5 47t-45.5 32t-63.5 11.5h-220z" /> +<glyph unicode="C" horiz-adv-x="1493" d="M102 608q0 142 36 266.5t99.5 228.5t150 186t188 138.5t213 86.5t225.5 30q91 0 168 -19t141 -54t102.5 -73.5t61.5 -68.5h190l-63 -274h-389q-26 68 -91.5 110.5t-162.5 42.5q-68 0 -132 -21.5t-120.5 -60t-103 -91.5t-80 -116t-52 -133.5t-18.5 -144.5q0 -75 21 -136.5 t60.5 -106t95 -69t124.5 -24.5q55 0 103 15t89.5 41.5t75.5 62t62 76.5l317 -158q-114 -180 -286.5 -276.5t-399.5 -96.5q-136 0 -250.5 46.5t-198 130.5t-130 201.5t-46.5 260.5z" /> +<glyph unicode="D" horiz-adv-x="1585" d="M61 0l64 274h155l224 967h-156l64 275h608q137 0 252 -42t198.5 -121.5t130 -195.5t46.5 -264q0 -125 -29 -239.5t-85 -213.5t-138 -180t-188 -139t-235.5 -89.5t-279.5 -31.5h-631zM630 274h107q73 0 141.5 21.5t129 60t111 92.5t87 119.5t56.5 140.5t20 156 q0 105 -26.5 177t-71 116.5t-102.5 64t-121 19.5h-106z" /> +<glyph unicode="E" horiz-adv-x="1505" d="M61 0l64 274h155l224 967h-174l63 275h1297l-119 -517h-350l55 242h-421l-76 -326h337l-67 -290h-337l-82 -351h396l61 269h351l-125 -543h-1252z" /> +<glyph unicode="F" horiz-adv-x="1450" d="M61 0l64 274h151l224 967h-215l63 275h1305l-119 -517h-348l55 242h-390l-81 -348h363l-68 -291h-363l-76 -328h175l-64 -274h-676z" /> +<glyph unicode="G" horiz-adv-x="1575" d="M123 608q0 142 36 266.5t99.5 228.5t150 186t187.5 138.5t212.5 86.5t225.5 30q78 0 152 -16.5t138.5 -46t115 -69t84.5 -83.5h178l-64 -274h-389q-13 31 -36.5 60t-56.5 51t-74.5 35t-90.5 13q-102 0 -194 -48t-161 -128t-110 -183t-41 -214q0 -75 20.5 -138t59 -109.5 t94 -72.5t125.5 -26q65 0 127.5 19.5t115 54t89 78t55.5 88.5h-319l63 274h705l-188 -809h-299l53 228q-40 -64 -103.5 -124.5t-156 -97.5t-189.5 -37q-131 0 -243 46.5t-194.5 130.5t-129.5 201.5t-47 260.5z" /> +<glyph unicode="H" horiz-adv-x="1946" d="M61 0l64 274h155l224 967h-172l63 275h676l-63 -275h-153l-72 -309h665l72 309h-170l63 275h676l-64 -275h-155l-224 -967h175l-64 -274h-676l64 274h151l90 388h-666l-90 -388h171l-64 -274h-676z" /> +<glyph unicode="I" horiz-adv-x="926" d="M61 0l64 274h155l224 967h-174l63 275h676l-63 -275h-151l-225 -967h171l-64 -274h-676z" /> +<glyph unicode="J" horiz-adv-x="782" d="M-82 -223q84 90 132 144.5t97.5 123.5t81.5 160l239 1036h-179l63 275h676l-63 -275h-149l-247 -1069q-42 -81 -75 -124.5t-121 -128.5q-77 -79 -174 -165z" /> +<glyph unicode="K" horiz-adv-x="1745" d="M61 0l64 274h155l224 967h-174l63 275h676l-63 -275h-151l-225 -967h171l-64 -274h-676zM772 793l598 450l64 273h618l-63 -275h-134l-642 -477l350 -490h147l-61 -274h-564l64 274z" /> +<glyph unicode="L" horiz-adv-x="1317" d="M61 0l64 274h153l224 967h-172l63 275h676l-63 -275h-153l-225 -967h287q36 0 61.5 23.5t35.5 58.5l49 201h338l-127 -557h-1211z" /> +<glyph unicode="M" horiz-adv-x="2406" d="M51 0l64 274h136l224 967h-174l64 275h688l181 -1016l619 1016h707l-63 -275h-154l-225 -967h149l-63 -274h-613l64 274h115l189 814l-677 -1070h-301l-199 1082l-199 -826h144l-63 -274h-613z" /> +<glyph unicode="N" horiz-adv-x="1786" d="M61 0l64 274h135l223 967h-164l64 275h516l374 -936l154 661h-133l64 275h612l-63 -275h-130l-286 -1241h-344l-386 935l-153 -661h129l-63 -274h-613z" /> +<glyph unicode="O" horiz-adv-x="1597" d="M123 608q0 142 36 266.5t99.5 228.5t150 186t187.5 138.5t212.5 86.5t225.5 30q142 0 257.5 -47t197 -131.5t126 -202.5t44.5 -260q0 -139 -33.5 -262t-94.5 -227t-145 -186.5t-185.5 -140t-216 -88t-236.5 -30.5q-136 0 -250.5 46.5t-198 130.5t-130 201.5t-46.5 260.5z M485 641q0 -75 21 -136.5t60.5 -106t95 -69t124.5 -24.5q67 0 131 21.5t120 59.5t103 91t80.5 116t52.5 134t19 145q0 75 -20.5 136.5t-59.5 106t-95 69t-126 24.5q-102 0 -194 -47t-161 -126t-110 -181t-41 -213z" /> +<glyph unicode="P" horiz-adv-x="1354" d="M61 0l64 274h155l224 967h-174l63 275h705q104 0 186 -31.5t138.5 -86.5t86 -129.5t29.5 -160.5q0 -110 -35.5 -209t-114 -173.5t-204.5 -118.5t-307 -44h-180l-67 -289h171l-64 -274h-676zM760 834h106q68 0 123.5 14.5t95 44.5t61 75t21.5 107q0 76 -51.5 121 t-154.5 45h-106z" /> +<glyph unicode="Q" horiz-adv-x="1556" d="M102 608q0 142 36 266.5t99.5 228.5t150 186t188 138.5t213 86.5t225.5 30q142 0 257.5 -47t197 -131.5t125.5 -202.5t44 -260q0 -139 -33.5 -262t-94.5 -227t-145 -186.5t-185.5 -140t-216.5 -87.5q-41 -11 -82 -18l69 -27q100 -60 162 -61q58 0 103 19t69 52t39 72 l199 -111q-26 -73 -72.5 -132t-107.5 -101t-131.5 -65t-143.5 -23q-38 0 -73 10.5t-69 26.5t-67 34.5t-67 34.5t-70 26.5t-74 10.5q-25 0 -43 -2t-43 -10l58 241q-75 11 -143 38q-114 47 -197.5 131t-130 201.5t-46.5 260.5zM465 641q0 -75 21 -136.5t60.5 -106t95 -69 t124.5 -24.5q67 0 130.5 21.5t120 59.5t103 91t80.5 116t53 134t19 145q0 75 -21 136.5t-60 106t-94.5 69t-125.5 24.5q-68 0 -132 -21.5t-120.5 -60t-103 -91.5t-80 -116t-52 -133.5t-18.5 -144.5z" /> +<glyph unicode="R" horiz-adv-x="1483" d="M61 0l64 274h134l225 967h-175l64 275h807q100 0 173 -34t120 -88.5t69.5 -124t22.5 -141.5q0 -98 -28 -175t-87 -137t-116 -88t-81 -39q10 -9 27 -29.5t31 -64t16 -103.5l6 -218h144l-64 -274h-450l24 360q1 20 1 39q0 39 -6 71q-8 46 -32.5 76t-65.5 44t-102 14h-96 l-77 -330h128l-63 -274h-613zM748 874h190q62 0 112.5 12.5t86.5 38.5t55.5 66t19.5 94q0 71 -41.5 113.5t-138.5 42.5h-198z" /> +<glyph unicode="S" horiz-adv-x="1268" d="M20 276l60 256h364q-21 -78 -21 -121q0 -13 2 -22q8 -42 33.5 -70t69 -43.5t105.5 -15.5q56 0 100.5 15t76 41.5t48 63t16.5 79.5q0 33 -14 57t-37.5 41.5t-54.5 30.5t-66 24l-172 60q-60 20 -109.5 55.5t-85 83.5t-55.5 108.5t-20 129.5q0 123 46 215.5t128.5 154 t197 92.5t251.5 31q99 0 180 -23t139.5 -61.5t89 -86t37.5 -95.5h115l-60 -256h-362q15 65 15 102q0 16 -3 27q-9 36 -35 62t-65.5 39.5t-87.5 13.5q-49 0 -93 -9.5t-77 -30t-52.5 -52.5t-19.5 -76q0 -39 16.5 -63.5t53 -43t108.5 -45.5l207 -76q128 -46 187 -139t59 -227 q0 -124 -48.5 -221.5t-134.5 -165.5t-205.5 -104t-260.5 -36q-105 0 -191.5 26t-146.5 73.5t-85 101.5t-31 100h-112z" /> +<glyph unicode="T" horiz-adv-x="1368" d="M143 1055l107 461h1425l-106 -461h-344l43 186h-194l-225 -967h169l-64 -274h-675l63 274h157l225 967h-194l-43 -186h-344z" /> +<glyph unicode="U" horiz-adv-x="1534" d="M206 424q-1 17 -1 35q0 81 20 174l142 608h-150l64 275h612l-64 -275h-116l-146 -629q-15 -70 -14 -118q0 -22 2 -38q9 -56 39 -95.5t74 -57.5t104 -18q58 0 104.5 16.5t83.5 55t65.5 101t49.5 154.5l145 629h-137l64 275h612l-63 -275h-130l-155 -674 q-36 -158 -97 -271.5t-147 -186t-197.5 -106.5t-248.5 -34q-113 0 -207.5 33.5t-163 94t-103.5 146t-41 181.5z" /> +<glyph unicode="V" horiz-adv-x="1399" d="M164 1241l63 275h613l-64 -275h-113l62 -784l443 784h-117l63 275h612l-63 -275h-120l-709 -1241h-408l-107 1241h-155z" /> +<glyph unicode="W" horiz-adv-x="2046" d="M158 1241l63 275h613l-64 -275h-125l39 -829l530 1104h361l16 -1100l417 825h-157l64 275h612l-63 -275h-119l-649 -1241h-410l-8 975l-477 -975h-410l-69 1241h-164z" /> +<glyph unicode="X" horiz-adv-x="1618" d="M-41 0l64 274h121l584 512l-297 455h-173l64 275h675l-63 -275h-117l156 -239l272 239h-100l63 275h676l-63 -275h-125l-558 -491l312 -476h170l-64 -274h-675l63 274h118l-170 260l-295 -260h101l-63 -274h-676z" /> +<glyph unicode="Y" horiz-adv-x="1393" d="M184 1241l64 275h612l-63 -275h-105l133 -328l25 26l262 302h-88l63 275h613l-64 -275h-101l-594 -626l-79 -341h170l-63 -274h-676l63 274h160l82 361l-280 606h-134z" /> +<glyph unicode="Z" horiz-adv-x="1320" d="M20 0l71 313l956 928h-405l-59 -262h-344l125 537h1163l-72 -314l-974 -928h430l59 258h348l-123 -532h-1175z" /> +<glyph unicode="[" horiz-adv-x="772" d="M-41 -289l492 2124h567l-57 -246h-224l-377 -1630h224l-58 -248h-567z" /> +<glyph unicode="\" horiz-adv-x="829" d="M164 1589h235l185 -1677h-242z" /> +<glyph unicode="]" horiz-adv-x="711" d="M-246 -289l58 248h223l377 1630h-224l58 246h567l-491 -2124h-568z" /> +<glyph unicode="^" horiz-adv-x="1073" d="M102 725l600 791h230l219 -791h-248l-138 524l-394 -524h-269z" /> +<glyph unicode="_" horiz-adv-x="1083" d="M-82 -346l59 256h1024l-59 -256h-1024z" /> +<glyph unicode="`" horiz-adv-x="774" d="M168 1464v25h326l196 -311h-229z" /> +<glyph unicode="a" horiz-adv-x="1391" d="M102 438q0 96 25 179.5t69 153t104.5 123.5t132 91t151 56.5t161.5 19.5q46 0 78.5 -6t74.5 -18t98 -52l12 51h340l-177 -762h191l-64 -274h-530l18 79q-37 -39 -98 -66q-65 -29 -153 -29q-81 0 -159 29t-138.5 86.5t-98 142.5t-37.5 196zM440 485q0 -48 15 -84t41 -60 t60 -36t73 -12q33 0 67.5 8.5t66.5 26t60 44.5l44 55l50 216q-12 23 -31 44.5t-47.5 37.5t-62 24.5t-67.5 8.5q-54 0 -103 -21.5t-85.5 -58t-58.5 -86.5t-22 -107z" /> +<glyph unicode="b" horiz-adv-x="1327" d="M102 0l296 1282h-197l63 274h537l-136 -589q37 38 97 65q65 29 153 29q85 0 163 -29.5t138 -87t96 -142.5t36 -196q0 -137 -50.5 -251.5t-137.5 -197t-204.5 -128t-250.5 -45.5q-37 0 -74 6t-71 16.5t-62 24.5q-25 12 -43 26l-13 -57h-340zM534 400q11 -23 27 -41 q22 -23 50.5 -39t61.5 -24.5t68 -8.5q54 0 103 21.5t85.5 58t58.5 86t22 106.5q0 48 -15 84t-41 60t-60 36.5t-73 12.5q-33 0 -67.5 -8.5t-66.5 -26.5t-60 -45q-24 -23 -43 -53z" /> +<glyph unicode="c" horiz-adv-x="1171" d="M102 436q0 143 51.5 259.5t138.5 199t201.5 127.5t241.5 45q80 0 148 -23t123 -63q25 -18 47 -39h192l-63 -274h-330q-16 42 -59 68t-93 26q-56 0 -105.5 -22.5t-86.5 -62t-58.5 -92t-21.5 -112.5q0 -45 14.5 -80.5t38.5 -61t56 -39t67 -13.5q83 0 138.5 38.5t91.5 100.5 l272 -148q-32 -62 -84 -116t-121 -94t-152.5 -62.5t-177.5 -22.5q-101 0 -186.5 36.5t-148.5 99t-98.5 146.5t-35.5 179z" /> +<glyph unicode="d" horiz-adv-x="1405" d="M102 438q0 96 25 179.5t69 153t104.5 123.5t132 91t151 56.5t161.5 19.5q35 0 72 -5.5t71.5 -15.5t63.5 -24q26 -12 43 -27l68 293h-207l64 274h546l-295 -1282h191l-64 -274h-530l18 78q-16 -18 -38 -34q-25 -18 -58 -32t-72 -22t-83 -8q-102 0 -182.5 37t-136 99.5 t-85 145t-29.5 174.5zM453 496q0 -43 13.5 -78t36.5 -59.5t55 -38t69 -13.5q72 0 138 36q61 33 102 89l52 226q-9 18 -23 34q-22 24 -51 40t-62.5 24t-67.5 8q-54 0 -101.5 -20.5t-83.5 -56.5t-56.5 -85t-20.5 -106z" /> +<glyph unicode="e" horiz-adv-x="1178" d="M102 432q0 143 51.5 260t138.5 200.5t201.5 129t241.5 45.5q101 0 186 -35.5t146.5 -95t96 -137.5t34.5 -162q0 -20 -2 -45t-6 -51.5t-10 -52.5t-13 -48h-739q2 -24 8 -46q10 -38 33.5 -66.5t61.5 -45t92 -16.5q40 0 73.5 8t63.5 22.5t57.5 34.5t54.5 44l220 -193 q-101 -108 -233 -158.5t-284 -50.5q-98 0 -184 32t-150 91.5t-101.5 144.5t-37.5 191zM464 666h433q-2 27 -17.5 52.5t-41 45.5t-60 32.5t-76.5 12.5q-50 0 -95.5 -15t-80 -43.5t-55.5 -70.5q-4 -7 -7 -14z" /> +<glyph unicode="f" horiz-adv-x="801" d="M31 -471l284 1214h-200l67 293h202l40 170q22 97 67 167.5t106.5 116.5t137.5 67.5t160 21.5q58 0 105 -9.5t81.5 -23.5t57 -30.5t30.5 -30.5l-184 -232q-17 17 -37.5 26t-58.5 9q-45 0 -84 -30t-53 -89l-31 -133h221l-68 -293h-222l-283 -1214h-338z" /> +<glyph unicode="g" horiz-adv-x="1303" d="M-20 -338l176 264q60 -43 138 -71.5t169 -28.5q51 0 99 9t89 34t72 68.5t47 111.5l7 30q-37 -32 -101 -55q-67 -24 -150 -24q-79 0 -156.5 28t-138.5 83t-99 137t-38 190q0 134 49.5 248t136 197.5t204 130.5t253.5 47q39 0 77.5 -6.5t72.5 -17t100 -48.5l17 72h339 l-235 -1018q-35 -153 -97.5 -252.5t-147 -157.5t-189.5 -81t-225 -23q-159 0 -275.5 36.5t-193.5 96.5zM438 492q0 -48 15 -84t41 -60t60 -36.5t73 -12.5q33 0 66.5 8.5t65 26t58.5 44.5q22 21 40 49l54 232q-35 54 -68 71.5t-66 25.5t-70 8q-54 0 -103 -21.5t-85.5 -58 t-58.5 -86t-22 -106.5z" /> +<glyph unicode="h" horiz-adv-x="1370" d="M94 0l296 1282h-187l63 274h537l-140 -604l1 1q45 35 93 60.5t99 39.5t105 14q87 0 152.5 -29.5t104 -85t48.5 -134.5q3 -24 3 -50q0 -59 -16 -129l-84 -365h191l-64 -274h-532l129 557q6 26 6 50q1 9 -1 19q-4 32 -16.5 54.5t-34 34.5t-48.5 12q-51 0 -126 -39 q-40 -21 -83 -53l-146 -635h-350z" /> +<glyph unicode="i" horiz-adv-x="778" d="M143 762l64 274h532l-176 -762h191l-64 -274h-532l176 762h-191zM434 1370q0 37 13.5 69.5t37.5 56.5t56.5 38t70.5 14q36 0 68 -14t56 -38t38 -56.5t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5z" /> +<glyph unicode="j" horiz-adv-x="707" d="M-72 -469l39 264q33 0 64 11t57 33t45.5 54t28.5 74l184 795h-233l63 274h569l-239 -1038q-29 -126 -80 -214.5t-123.5 -145t-166.5 -82t-208 -25.5zM414 1370q0 37 13.5 69.5t37.5 56.5t56.5 38t70.5 14q36 0 68 -14t56 -38t38 -56.5t14 -69.5t-14 -69.5t-38 -56.5 t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5z" /> +<glyph unicode="k" horiz-adv-x="1311" d="M102 0l296 1282h-199l63 274h539l-202 -874h114l159 169l43 185h457l-63 -274h-140l-235 -223l135 -265h156l-64 -274h-301l-196 406h-129l-93 -406h-340z" /> +<glyph unicode="l" horiz-adv-x="729" d="M102 0l296 1282h-199l63 274h539l-296 -1282h189l-63 -274h-529z" /> +<glyph unicode="m" horiz-adv-x="2083" d="M139 0l176 762h-172l64 274h518l-19 -93q56 43 104 67t99 37.5t105 13.5q132 0 213 -66q53 -43 77 -108q78 76 167 123q96 51 204 51q87 0 152.5 -29t104.5 -83q39 -55 49 -133q3 -24 3 -49q0 -59 -16 -128l-84 -365h189l-64 -274h-530l129 557q6 26 6 50q0 9 -2 19 q-4 32 -16 54.5t-33.5 34.5t-49.5 12q-51 0 -126 -39q-38 -20 -81 -52l-147 -636h-350l129 557q6 27 6 51v18q-4 32 -16.5 54.5t-34 34.5t-49.5 12q-51 0 -126 -39q-39 -20 -82 -52l-147 -636h-350z" /> +<glyph unicode="n" horiz-adv-x="1421" d="M143 762l64 274h526l-16 -85v1q45 34 93 58t99 37.5t105 13.5q87 0 152 -29t104 -83q40 -55 50 -133q3 -25 2 -51q0 -58 -15 -126l-85 -365h189l-63 -274h-531l129 557q6 27 6 51v18q-4 32 -16.5 54.5t-34 34.5t-49.5 12q-51 0 -126 -39q-39 -20 -81 -52l-147 -636h-351 l176 762h-180z" /> +<glyph unicode="o" horiz-adv-x="1182" d="M102 436q0 143 51.5 259.5t138.5 199t201.5 127.5t241.5 45q98 0 183.5 -36t148.5 -98.5t99 -147t36 -181.5q0 -137 -48.5 -252t-133 -199t-200 -131t-249.5 -47q-101 0 -186.5 36.5t-148.5 99t-98.5 146.5t-35.5 179zM428 473q0 -44 13 -80.5t36.5 -63t56 -41 t70.5 -14.5q52 0 101 22.5t87.5 62t61.5 93t23 115.5q0 51 -14.5 88.5t-38.5 62.5t-56 37.5t-68 12.5q-57 0 -106.5 -23.5t-86 -63.5t-58 -93.5t-21.5 -114.5z" /> +<glyph unicode="p" horiz-adv-x="1366" d="M41 -471l286 1233h-188l64 274h520l-11 -73q37 40 99 68q66 30 154 30q84 0 162 -29.5t138 -87t96 -142.5t36 -196q0 -96 -25 -179.5t-69 -152.5t-104.5 -123t-132 -91t-151 -56.5t-161.5 -19.5q-37 0 -74 6t-71 16.5t-62 24.5q-26 12 -44 26l-59 -254h201l-63 -274h-541 zM583 401q10 -23 26 -41q22 -24 51 -40t63 -24.5t68 -8.5q54 0 102.5 21.5t85 58t58.5 86t22 106.5q0 48 -15 84t-41 60t-60 36.5t-73 12.5q-33 0 -67.5 -8.5t-66.5 -26.5t-60 -45q-23 -22 -42 -51z" /> +<glyph unicode="q" horiz-adv-x="1317" d="M109 438q0 96 24.5 179.5t68.5 153t104.5 123.5t132 91t151 56.5t162.5 19.5q34 0 71 -6t71 -16.5t63 -24.5q27 -13 46 -29l15 51h336l-285 -1233h182l-63 -274h-522l127 551q-36 -40 -99 -67q-65 -29 -153 -29q-81 0 -158.5 29t-138 86.5t-98 142.5t-37.5 196zM446 485 q0 -48 15 -84t41 -60t60 -36t73 -12q33 0 67.5 8.5t66.5 26t60 44.5q24 23 43 53l51 218q-12 23 -29 42q-21 24 -49.5 40t-62 24.5t-67.5 8.5q-54 0 -103 -21.5t-85.5 -58t-58.5 -86.5t-22 -107z" /> +<glyph unicode="r" horiz-adv-x="1145" d="M143 762l64 274h530l-20 -90q41 37 98 62q63 28 148 28h284l-94 -403h-326l25 104q-34 0 -62.5 -7t-55 -21t-51.5 -35q-17 -14 -34 -31l-86 -369h217l-63 -274h-559l176 762h-191z" /> +<glyph unicode="s" horiz-adv-x="1018" d="M31 66l63 274h299q-7 -43 -1.5 -62.5t22.5 -35t43 -23.5t59 -8q69 0 109.5 25t40.5 67q0 25 -18 43t-66 31l-131 33q-71 18 -124.5 50.5t-89.5 74.5t-54.5 91.5t-18.5 100.5q0 84 37.5 148t101.5 106.5t147 64t175 21.5q66 0 121.5 -11.5t98.5 -31.5q25 -11 45 -23h210 l-64 -274h-270q-5 46 -44 65q-41 21 -106 21q-27 0 -51.5 -4.5t-42.5 -14t-28.5 -24t-10.5 -33.5q0 -15 12.5 -31t47.5 -24l164 -35q77 -17 131 -48t88 -71t49.5 -85.5t15.5 -90.5q0 -103 -42 -175.5t-110.5 -118.5t-154.5 -67.5t-174 -21.5q-147 0 -234 40q-48 23 -80 57 h-165z" /> +<glyph unicode="t" horiz-adv-x="890" d="M82 762l63 274h193l59 248l383 164l-98 -412h190l-63 -274h-192l-87 -371q-13 -49 -13 -81v-8q2 -33 21.5 -47.5t45.5 -14.5q21 0 45.5 4t52.5 12l4 -229q-32 -12 -63 -22t-65.5 -16.5t-73 -10t-83.5 -3.5q-72 0 -126.5 16.5t-86.5 55.5t-38 105q-1 14 -1 29q0 57 19 134 l105 447h-191z" /> +<glyph unicode="u" horiz-adv-x="1356" d="M111 762l63 274h488l-136 -585q-6 -27 -6 -50q0 -13 2 -27q6 -34 25 -59t49.5 -38t69.5 -13q32 0 64 11t60.5 30.5t55.5 49.5l94 407h-158l64 274h477l-177 -762h191l-63 -274h-500l19 81q-31 -25 -65 -44q-43 -24 -94 -36.5t-112 -12.5q-102 0 -183.5 39t-114.5 101 q-32 63 -40 136q-2 17 -2 35q0 59 19 127l77 336h-167z" /> +<glyph unicode="v" horiz-adv-x="1133" d="M41 762l63 274h512l-63 -274h-81l69 -421l258 421h-88l63 274h512l-63 -274h-96l-492 -762h-338l-141 762h-115z" /> +<glyph unicode="w" horiz-adv-x="1780" d="M31 762l63 274h512l-63 -274h-67l24 -316l340 590h334l61 -630l205 356h-92l63 274h512l-63 -274h-96l-459 -762h-336l-66 614h-4l-360 -614h-324l-82 762h-102z" /> +<glyph unicode="x" horiz-adv-x="1237" d="M10 0l64 274h75l328 264l-175 224h-122l64 274h512l-64 -274h-80l89 -104l136 104h-63l64 274h512l-64 -274h-101l-305 -246l189 -242h107l-64 -274h-498l64 274h73l-97 118l-157 -118h74l-63 -274h-498z" /> +<glyph unicode="y" horiz-adv-x="1126" d="M-20 -471l73 274h136l126 200l-167 759h-105l63 274h512l-63 -274h-77l66 -393l246 393h-85l63 274h512l-63 -274h-81l-634 -959h125l-74 -274h-573z" /> +<glyph unicode="z" horiz-adv-x="1150" d="M25 0l37 164l574 606h-206l-36 -156h-260l96 422h907l-41 -180l-578 -588h222l43 183h260l-103 -451h-915z" /> +<glyph unicode="{" horiz-adv-x="817" d="M118 629l45 190q100 9 146 22.5t70.5 37.5t41.5 64.5t32 104.5l91 396q8 32 16 61.5t26 74.5t52 89t77 71.5t95.5 39.5t114.5 12q94 0 143 -4l49 -4l-75 -328q-23 -1 -42 -3t-35 -6q-23 -6 -39.5 -16t-28.5 -28t-20.5 -45t-17.5 -66l-86 -370q-9 -41 -22 -73t-43.5 -67 t-90.5 -60q26 -16 48 -44t23 -77t-12 -99l-87 -379q-10 -45 -11.5 -74t10 -46t38.5 -24.5t74 -9.5l-72 -307q-103 -8 -197 -8q-25 0 -47.5 2t-52.5 8t-59.5 22.5t-48 43.5t-26.5 65.5t-6 70.5t6.5 60.5t7.5 44t7 31.5l74 322q20 86 26 139.5t1 85.5t-21 46t-41 19t-133 15z " /> +<glyph unicode="|" horiz-adv-x="631" d="M61 -270l461 1999h273l-461 -1999h-273z" /> +<glyph unicode="}" horiz-adv-x="938" d="M-102 -338l75 328q23 1 42 3t38.5 7t36 15t28.5 28t20.5 45t17.5 66l86 370q28 90 72.5 137.5t83.5 62.5q-65 55 -69.5 105.5t3.5 84.5t94 409q10 45 11.5 74t-10 46t-38.5 24.5t-74 9.5l72 307l51.5 4t145.5 4q70 -4 100 -10t59.5 -22.5t48 -43.5t26.5 -65.5t4.5 -84.5 t-19.5 -122l-74 -322q-20 -86 -26 -139.5t-1 -85.5t21 -46t41 -19t133 -15l-45 -190q-100 -9 -150.5 -23t-70.5 -37.5t-37 -64t-32 -104.5l-90 -418q-7 -30 -32 -100t-59 -111t-77.5 -67t-97 -37t-116.5 -11q-94 0 -192 8z" /> +<glyph unicode="~" horiz-adv-x="905" d="M-8 512q0 30 5 66t16.5 72.5t31.5 70.5t50 60.5t72 42.5t97 16q24 0 55.5 -11t66.5 -27t72 -35t71.5 -35t64 -26t51.5 -10q47 0 69.5 27.5t30.5 87.5l185 -41q0 -45 -12.5 -100.5t-45.5 -104.5t-90 -84t-147 -35q-55 0 -108 23.5t-101.5 50t-90.5 48.5t-75 22 q-19 0 -36 -5.5t-30 -19t-21 -35.5t-9 -55z" /> +<glyph horiz-adv-x="0" /> +<glyph unicode="¡" horiz-adv-x="948" d="M184 -543l287 1061h293l-205 -1061h-375zM491 889q0 37 14 69.5t38 56.5t56 38t68 14q38 0 70.5 -14t56.5 -38t38 -56.5t14 -69.5t-14 -69.5t-38 -56.5t-56.5 -38t-70.5 -14q-36 0 -68 14t-56 38t-38 56.5t-14 69.5z" /> +<glyph unicode="¢" horiz-adv-x="1171" d="M102 436q0 122 38 225t104 182.5t155.5 132.5t192.5 76l65 277h332l-70 -299q75 -33 134 -88h192l-63 -274h-330q-16 42 -59 68t-93 26q-56 0 -105.5 -22.5t-86.5 -62t-58.5 -92t-21.5 -112.5q0 -45 14.5 -80.5t38.5 -61t56 -39t67 -13.5q83 0 138.5 38.5t91.5 100.5 l272 -148q-27 -53 -69 -100.5t-97 -85t-120.5 -63.5t-140.5 -37l-52 -226h-332l61 266q-58 28 -105 71t-80 96t-51 115t-18 130z" /> +<glyph unicode="£" horiz-adv-x="1180" d="M61 0l64 274h161q26 54 43 118t14.5 99.5t-8.5 92.5h-183l57 245h99l-1 45q0 145 43 254.5t115.5 183t167 110t198.5 36.5q107 0 188.5 -27.5t134 -82.5t74 -137.5t7.5 -192.5l-326 -12q8 40 3.5 69.5t-17.5 49.5t-33.5 30t-44.5 10q-29 0 -56.5 -11t-48.5 -35t-33.5 -63 t-12.5 -95q3 -95 7 -132h267l-57 -245h-171q-1 -76 -29 -158t-79 -152h420l-63 -274h-900z" /> +<glyph unicode="¤" horiz-adv-x="1497" d="M61 299l236 206q-14 37 -20.5 76t-6.5 81q0 101 34 192t94 167l-142 208l303 229l149 -217q52 19 106.5 29t111.5 10t108.5 -13.5t97.5 -37.5l254 223l213 -248l-253 -221q14 -38 22 -79t8 -83q0 -102 -35 -193.5t-96 -168.5l133 -191l-303 -227l-140 199 q-52 -18 -106 -27.5t-110 -9.5q-58 0 -111 13.5t-100 39.5l-234 -203zM563 694q0 -43 14.5 -80t40.5 -64t63.5 -42.5t82.5 -15.5q60 0 117 24t101.5 65t71.5 95t27 115q0 43 -14.5 80.5t-41 65t-63.5 43t-81 15.5q-61 0 -118 -24.5t-101.5 -65.5t-71.5 -95.5t-27 -115.5z " /> +<glyph unicode="¥" horiz-adv-x="1511" d="M184 356l58 248h362l15 72h-361l57 248h173l-161 317h-126l63 275h613l-64 -275h-113l139 -317l282 317h-81l64 275h612l-63 -275h-111l-323 -317h145l-57 -248h-348l-16 -72h347l-57 -248h-347l-19 -82h182l-64 -274h-676l64 274h155l19 82h-363z" /> +<glyph unicode="¦" horiz-adv-x="647" d="M-37 -268l172 749h272l-172 -749h-272zM249 979l174 750h273l-175 -750h-272z" /> +<glyph unicode="§" horiz-adv-x="1223" d="M-61 -203l63 275h369l-18 -77l-3 -19t3.5 -49t26 -51t53 -32.5t81.5 -11.5q44 0 78 11.5t57.5 31t36 46t12.5 56.5q0 25 -11.5 41.5t-30 28.5t-41 20.5t-44.5 16.5l-196 68q-51 18 -92.5 50.5t-70.5 78t-44.5 103.5t-15.5 126q0 123 51.5 210.5t139.5 143.5 q-30 45 -47 102.5t-17 129.5q0 110 44.5 194.5t121.5 141.5t181.5 86.5t223.5 29.5q97 0 174.5 -22t132.5 -57.5t86.5 -81t37.5 -91.5h108l-64 -274h-371l18 78q4 37 -4.5 67t-28.5 51t-50 32.5t-68 11.5q-35 0 -67.5 -7.5t-57 -23.5t-39 -41t-14.5 -60q0 -30 14.5 -48.5 t37 -30t50.5 -19.5t54 -18l143 -52q67 -25 116 -51t80.5 -63.5t46.5 -91t15 -133.5q0 -53 -13 -103.5t-37 -97t-58.5 -87.5t-77.5 -76q29 -42 45 -99.5t16 -124.5q0 -111 -45 -203.5t-124.5 -159.5t-188.5 -104t-236 -37q-83 0 -156.5 18t-130.5 52.5t-94.5 83.5t-49.5 112 h-111zM518 547q0 -24 9.5 -40.5t24.5 -27.5t34.5 -19t40.5 -15l71 -26q30 6 53.5 19.5t39 32.5t24 41.5t8.5 48.5q0 28 -14 46.5t-44 34.5l-92 36q-29 -1 -57 -8.5t-50 -22.5t-35 -39.5t-13 -60.5z" /> +<glyph unicode="¨" horiz-adv-x="940" d="M47 1343q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM526 1343q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57 t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="©" horiz-adv-x="1919" d="M102 831q0 118 30.5 227.5t86 204.5t133.5 173t173 133.5t204.5 86t228.5 30.5q118 0 228 -30.5t205.5 -86t174 -133.5t134.5 -173t86.5 -204.5t30.5 -227.5q0 -119 -30.5 -228.5t-86.5 -204.5t-134.5 -173t-174 -133.5t-205.5 -86t-228 -30.5q-119 0 -228.5 30.5 t-204.5 86t-173 133.5t-133.5 173t-86 204.5t-30.5 228.5zM330 831q0 -88 22 -169t62.5 -151t97.5 -127.5t127 -98t150.5 -62.5t168.5 -22t169 22t150.5 62.5t126.5 98t97.5 127.5t62.5 151t22 169t-22 169t-62.5 150.5t-97.5 127t-126.5 98t-150.5 62.5t-169 22 q-87 0 -168 -22t-151 -62.5t-127 -98t-97.5 -127t-62.5 -150.5t-22 -169zM472 831q0 104 39 194.5t106.5 157.5t158 106t193.5 39q112 0 207.5 -43t164.5 -117l-193 -195q-32 42 -78.5 64.5t-100.5 22.5q-49 0 -90 -17.5t-71.5 -49t-48.5 -73.5t-18 -89t18 -89t48.5 -73 t71.5 -48.5t90 -17.5q53 0 99 20.5t81 62.5l190 -191q-70 -74 -164.5 -117.5t-205.5 -43.5q-103 0 -193.5 39t-158 106.5t-106.5 157.5t-39 194z" /> +<glyph unicode="ª" horiz-adv-x="1032" d="M205 1038q0 57 25.5 102.5t71.5 77.5t109.5 49t139.5 17q51 0 95.5 -4.5t81.5 -11.5q0 1 0.5 2t0.5 2q10 49 -27 74.5t-106 25.5q-63 0 -117.5 -11.5t-111.5 -37.5l-39 137q86 53 173.5 80t180.5 27q49 0 94.5 -8.5t82.5 -26.5t64 -46.5t40 -67.5q5 -16 7.5 -33t2.5 -37 q0 -28 -4.5 -62t-12.5 -72.5t-18 -79t-21 -81.5h95l-47 -211h-332l11 49q-40 -29 -88.5 -47.5t-111.5 -18.5q-57 0 -101 18t-75 47.5t-47 68t-16 79.5zM432 1057q0 -20 19 -39t65 -19q47 0 88 10.5t75 32.5l17 80h-142q-24 0 -46.5 -2.5t-39 -9t-26.5 -19.5t-10 -34z" /> +<glyph unicode="«" horiz-adv-x="1069" d="M123 535l18 73l330 361h240l-355 -424l166 -389h-223zM563 535l19 73l329 361h240l-355 -424l167 -389h-224z" /> +<glyph unicode="¬" horiz-adv-x="1821" d="M242 762l63 274h1475l-183 -788h-286l119 514h-1188z" /> +<glyph unicode="­" horiz-adv-x="831" d="M143 449l64 274h627l-64 -274h-627z" /> +<glyph unicode="®" horiz-adv-x="2048" d="M102 831q0 118 30.5 227.5t86 204.5t133.5 173t173 133.5t204.5 86t228.5 30.5q118 0 228 -30.5t205.5 -86t174 -133.5t134.5 -173t86.5 -204.5t30.5 -227.5q0 -119 -30.5 -228.5t-86.5 -204.5t-134.5 -173t-174 -133.5t-205.5 -86t-228 -30.5q-119 0 -228.5 30.5 t-204.5 86t-173 133.5t-133.5 173t-86 204.5t-30.5 228.5zM317 831q0 -90 22.5 -172.5t64 -154t99.5 -130t129.5 -100t153.5 -64t172 -22.5t172.5 22.5t153.5 64t129 100t99.5 130t64 154t22.5 172.5t-22.5 172.5t-64 153.5t-99.5 129.5t-129 100t-153.5 64t-172.5 22.5 q-89 0 -171.5 -22.5t-154 -64t-129.5 -100t-99.5 -129.5t-64 -153.5t-22.5 -172.5zM528 373v212h95v497h-91v211h532q79 0 138 -25t98.5 -64.5t59.5 -87.5t20 -93q0 -52 -17.5 -96t-55.5 -79t-86 -54q35 -14 56 -41t33 -88l15 -80h78v-212h-328l-15 194q-5 63 -14.5 85 t-29.5 34t-69 12h-66v-113h79v-212h-432zM881 900h66q69 0 109 19.5t40 69.5q0 44 -38 68.5t-102 24.5h-75v-182z" /> +<glyph unicode="¯" horiz-adv-x="831" d="M82 1176v215h688v-215h-688z" /> +<glyph unicode="°" horiz-adv-x="815" d="M102 1397q0 64 24 120t66 98t98 66.5t120 24.5t120 -23.5t97 -65t64.5 -98.5t23.5 -124q0 -65 -23.5 -121.5t-64.5 -99t-97 -67t-120 -24.5q-65 0 -121.5 24.5t-98 67t-65 100t-23.5 122.5zM258 1389q0 -29 12 -56t32 -47.5t46 -32.5t55 -12q34 0 62.5 11t48.5 31 t31.5 48t11.5 62t-11 63t-31 49t-47.5 31.5t-59.5 11.5t-59 -12t-47.5 -33.5t-32 -50.5t-11.5 -63z" /> +<glyph unicode="±" horiz-adv-x="1298" d="M1 0l63 274h1024l-63 -274h-1024zM152 660l67 297h363l63 296h297l-63 -296h364l-67 -297h-365l-71 -291h-297l71 291h-362z" /> +<glyph unicode="²" horiz-adv-x="860" d="M205 842l45 192l315 201q25 16 41 31t24.5 27.5t11.5 22.5t3 17q0 14 -10.5 23.5t-32.5 9.5q-20 0 -33 -7.5t-21 -18t-12 -21t-6 -16.5h-225q15 71 49.5 123t82.5 86t106.5 50.5t122.5 16.5q43 0 85.5 -11.5t75.5 -35t53.5 -59.5t20.5 -84q0 -39 -9.5 -68.5t-26.5 -53.5 t-42.5 -44.5t-56.5 -42.5l-190 -133h249l-47 -205h-573z" /> +<glyph unicode="³" horiz-adv-x="797" d="M167 996q-8 49 5 106h219q-3 -15 -1.5 -29.5t8.5 -26t19.5 -19t31.5 -7.5t35 7.5t28 19t18.5 24.5t6.5 25q0 15 -12 28t-46 13h-102l31 133h112q18 0 29.5 8.5t18 20t9.5 24t3 20.5q0 16 -9 27.5t-30 11.5q-29 0 -52 -15.5t-32 -55.5h-219q10 57 38.5 106.5t73 86t104 57 t132.5 20.5q49 0 91.5 -15.5t73.5 -42.5t48.5 -64t17.5 -79q0 -29 -7.5 -53t-19.5 -44t-26 -35.5t-27 -26.5q15 -16 24 -46t9 -61q0 -53 -29 -103.5t-78.5 -89.5t-114.5 -63t-136 -24q-74 0 -125.5 20.5t-81.5 56.5t-38 85z" /> +<glyph unicode="´" horiz-adv-x="680" d="M41 1178l215 311h326v-25l-306 -286h-235z" /> +<glyph unicode="µ" horiz-adv-x="1348" d="M0 -471l348 1507h320l-140 -601q-6 -40 1.5 -71.5t26.5 -53.5t48.5 -34t67.5 -12q24 0 48.5 6.5t47.5 18.5t44.5 28.5t39.5 37.5l158 681h319l-176 -762h162l-64 -274h-471l19 81q-27 -22 -56.5 -39.5t-63 -29.5t-71 -18t-80.5 -6q-26 0 -51.5 3t-49.5 8l-108 -470h-319z " /> +<glyph unicode="¶" horiz-adv-x="1446" d="M205 913q0 82 25 159t71 144t111 122t145 95t173 61.5t196 21.5h684l-64 -275h-141l-371 -1603h-293l371 1603h-172l-371 -1603h-293l207 895q-60 19 -110.5 52.5t-88 81t-58.5 109.5t-21 137z" /> +<glyph unicode="·" horiz-adv-x="539" d="M143 653q0 37 14 69.5t38 56.5t56.5 38t70.5 14q36 0 68 -14t56 -38t38 -56.5t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="¸" horiz-adv-x="705" d="M102 -289q52 12 90.5 32.5t66.5 50t47 69t32 90.5l264 -92q-29 -69 -72 -123.5t-98.5 -93.5t-121 -63.5t-138.5 -33.5z" /> +<glyph unicode="¹" horiz-adv-x="715" d="M184 840l45 194h131l57 250l-157 -67l53 233l269 127h112l-125 -543h121l-45 -194h-461z" /> +<glyph unicode="º" horiz-adv-x="823" d="M205 1167q0 87 33.5 162t93.5 130t141.5 86.5t177.5 31.5q73 0 134.5 -27t106.5 -72t70 -103t25 -120q0 -84 -33.5 -159.5t-93 -131.5t-141 -89t-178.5 -33q-74 0 -135.5 25.5t-106 69.5t-69.5 103t-25 127zM444 1186q0 -25 8.5 -46.5t24 -37t39 -24.5t53.5 -9 q37 0 69 14t56 37t37.5 53t13.5 62q0 24 -8.5 45t-24 36t-38 23.5t-49.5 8.5q-37 0 -70 -13t-57.5 -35t-39 -51.5t-14.5 -62.5z" /> +<glyph unicode="»" horiz-adv-x="1069" d="M41 156l345 423l-157 390h224l176 -379l-19 -74l-329 -360h-240zM481 156l345 423l-156 390h223l176 -379l-18 -74l-330 -360h-240z" /> +<glyph unicode="¼" horiz-adv-x="2025" d="M-4 -61l1630 1638h301l-1624 -1638h-307zM241 840l45 194h131l57 250l-157 -67l53 233l269 127h112l-125 -543h121l-45 -194h-461zM1109 182l35 166l376 416h216l-380 -422h167l38 166h203l-38 -166h106l-37 -160h-106l-42 -182h-202l41 182h-377z" /> +<glyph unicode="½" horiz-adv-x="1964" d="M-4 -61l1630 1638h301l-1624 -1638h-307zM241 840l45 194h131l57 250l-157 -67l53 233l269 127h112l-125 -543h121l-45 -194h-461zM1106 0l45 193l322 221q25 17 40 32.5t23.5 27.5t11 20.5t2.5 11.5q0 17 -10.5 24t-30.5 7q-17 0 -29.5 -6t-21.5 -15t-15 -20.5t-9 -22.5 h-226q16 72 50.5 124t82.5 86t106 50.5t122 16.5q45 0 87 -10.5t75 -33.5t53 -59.5t20 -87.5q0 -41 -10.5 -69.5t-24.5 -47t-27 -29t-18 -14.5l-243 -174h250l-52 -225h-573z" /> +<glyph unicode="¾" horiz-adv-x="2025" d="M37 -61l1630 1638h301l-1624 -1638h-307zM171 952q-8 49 5 106h219q-3 -15 -1.5 -29.5t8.5 -26t19.5 -19t31.5 -7.5t35 7.5t28 19t18.5 24.5t6.5 25q0 15 -12 28t-46 13h-102l31 133h112q18 0 29.5 8.5t18 20t9.5 24t3 20.5q0 16 -9 27.5t-30 11.5q-29 0 -52 -15.5 t-32 -55.5h-219q10 57 38.5 106.5t73 86t104 57t132.5 20.5q49 0 91.5 -15.5t73.5 -42.5t48.5 -64t17.5 -79q0 -29 -7.5 -53t-19.5 -44t-26 -35.5t-27 -26.5q15 -16 24 -46t9 -61q0 -53 -29 -103.5t-78.5 -89.5t-114.5 -63t-136 -24q-74 0 -125.5 20.5t-81.5 56.5t-38 85z M1129 182l35 166l376 416h216l-380 -422h167l38 166h203l-38 -166h106l-37 -160h-106l-42 -182h-202l41 182h-377z" /> +<glyph unicode="¿" horiz-adv-x="1044" d="M41 -143q0 60 9.5 115t35 106.5t71 99.5t117.5 94q38 25 71.5 45t62.5 38.5t53 38t43.5 44t34 55t24.5 70.5h320q-12 -63 -28.5 -111t-37 -85.5t-47 -67t-59 -56t-71.5 -52.5t-85 -56q-50 -33 -81 -63.5t-48 -59.5t-23 -57.5t-6 -58.5q0 -25 8 -45.5t21.5 -35t32 -22.5 t39.5 -8t44.5 7t44.5 25t38.5 50t27.5 82l330 -33q-23 -108 -69 -189t-113 -135.5t-153 -82t-189 -27.5q-88 0 -164 28t-132.5 78t-89 119t-32.5 150zM590 889q0 37 14 69.5t38 56.5t56 38t68 14q38 0 70.5 -14t56.5 -38t38 -56.5t14 -69.5t-14 -69.5t-38 -56.5t-56.5 -38 t-70.5 -14q-36 0 -68 14t-56 38t-38 56.5t-14 69.5z" /> +<glyph unicode="À" d="M-102 0l63 274h128l689 1242h436l114 -1242h192l-64 -274h-612l63 274h84l-16 209h-418l-111 -209h127l-63 -274h-612zM568 1944v25h326l196 -311h-229zM711 772h243l-30 402z" /> +<glyph unicode="Á" d="M-102 0l63 274h128l689 1242h436l114 -1242h192l-64 -274h-612l63 274h84l-16 209h-418l-111 -209h127l-63 -274h-612zM711 772h243l-30 402zM841 1658l215 311h326v-25l-306 -286h-235z" /> +<glyph unicode="Â" d="M-102 0l63 274h128l689 1242h436l114 -1242h192l-64 -274h-612l63 274h84l-16 209h-418l-111 -209h127l-63 -274h-612zM600 1658l357 325h239l197 -325h-248l-96 157l-172 -157h-277zM711 772h243l-30 402z" /> +<glyph unicode="Ã" d="M-102 0l63 274h128l689 1242h436l114 -1242h192l-64 -274h-612l63 274h84l-16 209h-418l-111 -209h127l-63 -274h-612zM650 1744q14 54 47.5 94t74.5 67t84.5 40.5t78.5 13.5q42 0 81 -14.5t76.5 -32t73 -32t70.5 -14.5q42 0 74.5 15t58.5 53l158 -70q-15 -45 -42.5 -84 t-63.5 -68.5t-79 -46t-90 -16.5q-52 0 -94 13.5t-79.5 30t-73.5 30.5t-76 14q-45 0 -76 -18.5t-51 -44.5zM711 772h243l-30 402z" /> +<glyph unicode="Ä" d="M-102 0l63 274h128l689 1242h436l114 -1242h192l-64 -274h-612l63 274h84l-16 209h-418l-111 -209h127l-63 -274h-612zM711 772h243l-30 402zM716 1821q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38 t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM1195 1821q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="Å" d="M-102 0l63 274h128l627 1130q-34 36 -52.5 80.5t-18.5 94.5q0 59 26.5 111t72.5 91t107 61.5t130 22.5t130.5 -22.5t107.5 -61.5t73 -91t27 -111q0 -57 -24.5 -107.5t-68.5 -89.5l102 -1108h192l-64 -274h-612l63 274h84l-16 209h-418l-111 -209h127l-63 -274h-612z M711 772h243l-30 402zM854 1579q0 -24 10 -44.5t27 -35.5t40.5 -24t49.5 -9q27 0 50 9t40 24t26.5 35.5t9.5 44.5q0 23 -9.5 43.5t-26.5 35.5t-40 23.5t-50 8.5q-26 0 -49.5 -8.5t-40.5 -23.5t-27 -35.5t-10 -43.5z" /> +<glyph unicode="Æ" horiz-adv-x="2191" d="M-143 0l63 274h137l967 1242h1352l-119 -517h-350l55 242h-421l-76 -326h337l-67 -290h-337l-82 -351h396l62 269h350l-125 -543h-1096l28 121l84 362h-402l-163 -209h146l-64 -274h-675zM837 772h245l104 448z" /> +<glyph unicode="Ç" horiz-adv-x="1493" d="M102 608q0 142 36 266.5t99.5 228.5t150 186t188 138.5t213 86.5t225.5 30q91 0 168 -19t141 -54t102.5 -73.5t61.5 -68.5h190l-63 -274h-389q-26 68 -91.5 110.5t-162.5 42.5q-68 0 -132 -21.5t-120.5 -60t-103 -91.5t-80 -116t-52 -133.5t-18.5 -144.5q0 -75 21 -136.5 t60.5 -106t95 -69t124.5 -24.5q55 0 103 15t89.5 41.5t75.5 62t62 76.5l317 -158q-114 -180 -286.5 -276.5t-399.5 -96.5q-136 0 -250.5 46.5t-198 130.5t-130 201.5t-46.5 260.5zM268 -289q52 12 90.5 32.5t66.5 50t47 69t32 90.5l264 -92q-29 -69 -72 -123.5t-98.5 -93.5 t-121 -63.5t-138.5 -33.5z" /> +<glyph unicode="È" horiz-adv-x="1505" d="M61 0l64 274h155l224 967h-174l63 275h1297l-119 -517h-350l55 242h-421l-76 -326h337l-67 -290h-337l-82 -351h396l61 269h351l-125 -543h-1252zM775 1944v25h326l196 -311h-229z" /> +<glyph unicode="É" horiz-adv-x="1505" d="M61 0l64 274h155l224 967h-174l63 275h1297l-119 -517h-350l55 242h-421l-76 -326h337l-67 -290h-337l-82 -351h396l61 269h351l-125 -543h-1252zM953 1658l215 311h326v-25l-306 -286h-235z" /> +<glyph unicode="Ê" horiz-adv-x="1505" d="M61 0l64 274h155l224 967h-174l63 275h1297l-119 -517h-350l55 242h-421l-76 -326h337l-67 -290h-337l-82 -351h396l61 269h351l-125 -543h-1252zM713 1658l357 325h239l197 -325h-248l-96 157l-172 -157h-277z" /> +<glyph unicode="Ë" horiz-adv-x="1505" d="M61 0l64 274h155l224 967h-174l63 275h1297l-119 -517h-350l55 242h-421l-76 -326h337l-67 -290h-337l-82 -351h396l61 269h351l-125 -543h-1252zM646 1821q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38 t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM1125 1821q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="Ì" horiz-adv-x="926" d="M61 0l64 274h155l224 967h-174l63 275h676l-63 -275h-151l-225 -967h171l-64 -274h-676zM426 1944v25h326l196 -311h-229z" /> +<glyph unicode="Í" horiz-adv-x="926" d="M61 0l64 274h155l224 967h-174l63 275h676l-63 -275h-151l-225 -967h171l-64 -274h-676zM604 1658l215 311h326v-25l-306 -286h-235z" /> +<glyph unicode="Î" horiz-adv-x="926" d="M61 0l64 274h155l224 967h-174l63 275h676l-63 -275h-151l-225 -967h171l-64 -274h-676zM364 1658l357 325h239l197 -325h-248l-96 157l-172 -157h-277z" /> +<glyph unicode="Ï" horiz-adv-x="926" d="M61 0l64 274h155l224 967h-174l63 275h676l-63 -275h-151l-225 -967h171l-64 -274h-676zM297 1821q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5 t-13.5 69.5zM776 1821q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="Ð" horiz-adv-x="1585" d="M-20 0l64 274h155l85 366h-196l64 274h195l76 327h-156l64 275h608q137 0 252 -42t198.5 -121.5t130 -195.5t46.5 -264q0 -125 -29 -239.5t-85 -213.5t-138 -180t-188 -139t-235.5 -89.5t-279.5 -31.5h-631zM549 274h107q73 0 141.5 21.5t129 60t111 92.5t87 119.5 t56.5 140.5t20 156q0 105 -26.5 177t-71 116.5t-102.5 64t-121 19.5h-106l-76 -327h252l-64 -274h-252z" /> +<glyph unicode="Ñ" horiz-adv-x="1786" d="M61 0l64 274h135l223 967h-164l64 275h516l374 -936l154 661h-133l64 275h612l-63 -275h-130l-286 -1241h-344l-386 935l-153 -661h129l-63 -274h-613zM678 1744q14 54 47.5 94t74.5 67t84.5 40.5t78.5 13.5q42 0 81 -14.5t76.5 -32t73 -32t70.5 -14.5q42 0 74.5 15 t58.5 53l158 -70q-15 -45 -42.5 -84t-63.5 -68.5t-79 -46t-90 -16.5q-52 0 -94 13.5t-79.5 30t-73.5 30.5t-76 14q-45 0 -76 -18.5t-51 -44.5z" /> +<glyph unicode="Ò" horiz-adv-x="1597" d="M123 608q0 142 36 266.5t99.5 228.5t150 186t187.5 138.5t212.5 86.5t225.5 30q142 0 257.5 -47t197 -131.5t126 -202.5t44.5 -260q0 -139 -33.5 -262t-94.5 -227t-145 -186.5t-185.5 -140t-216 -88t-236.5 -30.5q-136 0 -250.5 46.5t-198 130.5t-130 201.5t-46.5 260.5z M485 641q0 -75 21 -136.5t60.5 -106t95 -69t124.5 -24.5q67 0 131 21.5t120 59.5t103 91t80.5 116t52.5 134t19 145q0 75 -20.5 136.5t-59.5 106t-95 69t-126 24.5q-102 0 -194 -47t-161 -126t-110 -181t-41 -213zM709 1944v25h326l196 -311h-229z" /> +<glyph unicode="Ó" horiz-adv-x="1597" d="M123 608q0 142 36 266.5t99.5 228.5t150 186t187.5 138.5t212.5 86.5t225.5 30q142 0 257.5 -47t197 -131.5t126 -202.5t44.5 -260q0 -139 -33.5 -262t-94.5 -227t-145 -186.5t-185.5 -140t-216 -88t-236.5 -30.5q-136 0 -250.5 46.5t-198 130.5t-130 201.5t-46.5 260.5z M485 641q0 -75 21 -136.5t60.5 -106t95 -69t124.5 -24.5q67 0 131 21.5t120 59.5t103 91t80.5 116t52.5 134t19 145q0 75 -20.5 136.5t-59.5 106t-95 69t-126 24.5q-102 0 -194 -47t-161 -126t-110 -181t-41 -213zM887 1658l215 311h326v-25l-306 -286h-235z" /> +<glyph unicode="Ô" horiz-adv-x="1597" d="M123 608q0 142 36 266.5t99.5 228.5t150 186t187.5 138.5t212.5 86.5t225.5 30q142 0 257.5 -47t197 -131.5t126 -202.5t44.5 -260q0 -139 -33.5 -262t-94.5 -227t-145 -186.5t-185.5 -140t-216 -88t-236.5 -30.5q-136 0 -250.5 46.5t-198 130.5t-130 201.5t-46.5 260.5z M485 641q0 -75 21 -136.5t60.5 -106t95 -69t124.5 -24.5q67 0 131 21.5t120 59.5t103 91t80.5 116t52.5 134t19 145q0 75 -20.5 136.5t-59.5 106t-95 69t-126 24.5q-102 0 -194 -47t-161 -126t-110 -181t-41 -213zM647 1658l357 325h239l197 -325h-248l-96 157l-172 -157 h-277z" /> +<glyph unicode="Õ" horiz-adv-x="1597" d="M123 608q0 142 36 266.5t99.5 228.5t150 186t187.5 138.5t212.5 86.5t225.5 30q142 0 257.5 -47t197 -131.5t126 -202.5t44.5 -260q0 -139 -33.5 -262t-94.5 -227t-145 -186.5t-185.5 -140t-216 -88t-236.5 -30.5q-136 0 -250.5 46.5t-198 130.5t-130 201.5t-46.5 260.5z M485 641q0 -75 21 -136.5t60.5 -106t95 -69t124.5 -24.5q67 0 131 21.5t120 59.5t103 91t80.5 116t52.5 134t19 145q0 75 -20.5 136.5t-59.5 106t-95 69t-126 24.5q-102 0 -194 -47t-161 -126t-110 -181t-41 -213zM514 1744q14 54 47.5 94t74.5 67t84.5 40.5t78.5 13.5 q42 0 81 -14.5t76.5 -32t73 -32t70.5 -14.5q42 0 74.5 15t58.5 53l158 -70q-15 -45 -42.5 -84t-63.5 -68.5t-79 -46t-90 -16.5q-52 0 -94 13.5t-79.5 30t-73.5 30.5t-76 14q-45 0 -76 -18.5t-51 -44.5z" /> +<glyph unicode="Ö" horiz-adv-x="1597" d="M123 608q0 142 36 266.5t99.5 228.5t150 186t187.5 138.5t212.5 86.5t225.5 30q142 0 257.5 -47t197 -131.5t126 -202.5t44.5 -260q0 -139 -33.5 -262t-94.5 -227t-145 -186.5t-185.5 -140t-216 -88t-236.5 -30.5q-136 0 -250.5 46.5t-198 130.5t-130 201.5t-46.5 260.5z M485 641q0 -75 21 -136.5t60.5 -106t95 -69t124.5 -24.5q67 0 131 21.5t120 59.5t103 91t80.5 116t52.5 134t19 145q0 75 -20.5 136.5t-59.5 106t-95 69t-126 24.5q-102 0 -194 -47t-161 -126t-110 -181t-41 -213zM580 1821q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14 q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM1059 1821q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14 q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="×" horiz-adv-x="1262" d="M31 301l435 379l-259 377l254 192l247 -359l427 372l188 -215l-453 -393l252 -365l-254 -191l-239 346l-410 -356z" /> +<glyph unicode="Ø" horiz-adv-x="1597" d="M-87 -61l306 308q-47 75 -71.5 165.5t-24.5 195.5q0 142 36 266.5t99.5 228.5t150 186t187.5 138.5t213 86.5t225 30q109 0 202 -28t168 -79l139 140h301l-291 -293q51 -78 78.5 -174t27.5 -207q0 -139 -33.5 -262t-94.5 -227t-145 -186.5t-185.5 -140t-216 -88 t-236.5 -30.5q-111 0 -207 30.5t-174 87.5l-147 -148h-307zM485 641q0 -31 3.5 -59t10.5 -54l641 644q-32 17 -69 26.5t-80 9.5q-102 0 -194 -47t-161 -126t-110 -181t-41 -213zM626 348q33 -21 73 -32t87 -11q67 0 131 21.5t120 59.5t103 91t80.5 116t52.5 134t19 145 q0 35 -5 67.5t-14 61.5z" /> +<glyph unicode="Ù" horiz-adv-x="1534" d="M205.5 424q-5.5 96 19.5 209l142 608h-150l64 275h612l-64 -275h-116l-146 -629q-21 -100 -12 -155.5t39 -95.5t74 -58t104 -18q58 0 104.5 16.5t83.5 55t65.5 101t49.5 154.5l145 629h-137l64 275h612l-63 -275h-130l-155 -674q-36 -158 -97 -271.5t-147 -186 t-197.5 -106.5t-248.5 -34q-113 0 -207.5 33.5t-163 94t-104 146t-41 181.5zM483 1944v25h326l196 -311h-229z" /> +<glyph unicode="Ú" horiz-adv-x="1534" d="M205.5 424q-5.5 96 19.5 209l142 608h-150l64 275h612l-64 -275h-116l-146 -629q-21 -100 -12 -155.5t39 -95.5t74 -58t104 -18q58 0 104.5 16.5t83.5 55t65.5 101t49.5 154.5l145 629h-137l64 275h612l-63 -275h-130l-155 -674q-36 -158 -97 -271.5t-147 -186 t-197.5 -106.5t-248.5 -34q-113 0 -207.5 33.5t-163 94t-104 146t-41 181.5zM861 1658l215 311h326v-25l-306 -286h-235z" /> +<glyph unicode="Û" horiz-adv-x="1534" d="M205.5 424q-5.5 96 19.5 209l142 608h-150l64 275h612l-64 -275h-116l-146 -629q-21 -100 -12 -155.5t39 -95.5t74 -58t104 -18q58 0 104.5 16.5t83.5 55t65.5 101t49.5 154.5l145 629h-137l64 275h612l-63 -275h-130l-155 -674q-36 -158 -97 -271.5t-147 -186 t-197.5 -106.5t-248.5 -34q-113 0 -207.5 33.5t-163 94t-104 146t-41 181.5zM621 1658l357 325h239l197 -325h-248l-96 157l-172 -157h-277z" /> +<glyph unicode="Ü" horiz-adv-x="1534" d="M205.5 424q-5.5 96 19.5 209l142 608h-150l64 275h612l-64 -275h-116l-146 -629q-21 -100 -12 -155.5t39 -95.5t74 -58t104 -18q58 0 104.5 16.5t83.5 55t65.5 101t49.5 154.5l145 629h-137l64 275h612l-63 -275h-130l-155 -674q-36 -158 -97 -271.5t-147 -186 t-197.5 -106.5t-248.5 -34q-113 0 -207.5 33.5t-163 94t-104 146t-41 181.5zM554 1821q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM1033 1821 q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="Ý" horiz-adv-x="1393" d="M184 1241l64 275h612l-63 -275h-105l133 -328l25 26l262 302h-88l63 275h613l-64 -275h-101l-594 -626l-79 -341h170l-63 -274h-676l63 274h160l82 361l-280 606h-134zM781 1658l215 311h326v-25l-306 -286h-235z" /> +<glyph unicode="Þ" horiz-adv-x="1370" d="M61 0l64 274h155l223 967h-173l63 275h525l-37 -158l-36 -158h185q104 0 186 -29.5t139 -82t87.5 -124t30.5 -155.5q0 -86 -32.5 -164t-97 -141t-160.5 -106t-223 -58q-32 -4 -65.5 -6t-59.5 -2h-191l-77 -332h-506zM706 602h128q22 0 42 1.5t39 3.5q46 6 81.5 20.5 t60 37.5t37 54t12.5 72q0 62 -48.5 98.5t-154.5 36.5h-122z" /> +<glyph unicode="ß" d="M20 0l64 274h188l209 906q20 86 70.5 158.5t124.5 125.5t167 83t199 30q94 0 170.5 -29.5t131 -79.5t84.5 -116t30 -138q0 -66 -17 -118t-44 -92.5t-62 -69.5t-71 -49q72 -54 113.5 -138t41.5 -184q0 -141 -50 -248.5t-137 -180t-204 -109.5t-250 -37q-20 0 -48.5 1.5 t-47.5 4.5l68 289q14 -3 32 -5t33 -2q50 0 97 19t84 52.5t59 78.5t22 96q0 34 -11.5 65t-33.5 53.5t-52.5 36t-68.5 13.5h-67l65 289h74q35 0 65.5 14.5t53 39t35 57t12.5 67.5q0 60 -35.5 100.5t-103.5 40.5q-36 0 -68 -12.5t-58 -35t-45 -55t-28 -71.5l-260 -1124h-531z " /> +<glyph unicode="à" horiz-adv-x="1391" d="M102 438q0 96 25 179.5t69 153t104.5 123.5t132 91t151 56.5t161.5 19.5q46 0 78.5 -6t74.5 -18t98 -52l12 51h340l-177 -762h191l-64 -274h-530l18 79q-37 -39 -98 -66q-65 -29 -153 -29q-81 0 -159 29t-138.5 86.5t-98 142.5t-37.5 196zM378 1464v25h326l196 -311h-229 zM440 485q0 -48 15 -84t41 -60t60 -36t73 -12q33 0 67.5 8.5t66.5 26t60 44.5l44 55l50 216q-12 23 -31 44.5t-47.5 37.5t-62 24.5t-67.5 8.5q-54 0 -103 -21.5t-85.5 -58t-58.5 -86.5t-22 -107z" /> +<glyph unicode="á" horiz-adv-x="1391" d="M102 438q0 96 25 179.5t69 153t104.5 123.5t132 91t151 56.5t161.5 19.5q46 0 78.5 -6t74.5 -18t98 -52l12 51h340l-177 -762h191l-64 -274h-530l18 79q-37 -39 -98 -66q-65 -29 -153 -29q-81 0 -159 29t-138.5 86.5t-98 142.5t-37.5 196zM440 485q0 -48 15 -84t41 -60 t60 -36t73 -12q33 0 67.5 8.5t66.5 26t60 44.5l44 55l50 216q-12 23 -31 44.5t-47.5 37.5t-62 24.5t-67.5 8.5q-54 0 -103 -21.5t-85.5 -58t-58.5 -86.5t-22 -107zM556 1178l215 311h326v-25l-306 -286h-235z" /> +<glyph unicode="â" horiz-adv-x="1391" d="M102 438q0 96 25 179.5t69 153t104.5 123.5t132 91t151 56.5t161.5 19.5q46 0 78.5 -6t74.5 -18t98 -52l12 51h340l-177 -762h191l-64 -274h-530l18 79q-37 -39 -98 -66q-65 -29 -153 -29q-81 0 -159 29t-138.5 86.5t-98 142.5t-37.5 196zM316 1178l357 325h239l197 -325 h-248l-96 157l-172 -157h-277zM440 485q0 -48 15 -84t41 -60t60 -36t73 -12q33 0 67.5 8.5t66.5 26t60 44.5l44 55l50 216q-12 23 -31 44.5t-47.5 37.5t-62 24.5t-67.5 8.5q-54 0 -103 -21.5t-85.5 -58t-58.5 -86.5t-22 -107z" /> +<glyph unicode="ã" horiz-adv-x="1391" d="M102 438q0 96 25 179.5t69 153t104.5 123.5t132 91t151 56.5t161.5 19.5q46 0 78.5 -6t74.5 -18t98 -52l12 51h340l-177 -762h191l-64 -274h-530l18 79q-37 -39 -98 -66q-65 -29 -153 -29q-81 0 -159 29t-138.5 86.5t-98 142.5t-37.5 196zM183 1264q14 54 47.5 94 t74.5 67t84.5 40.5t78.5 13.5q42 0 81 -14.5t76.5 -32t73 -32t70.5 -14.5q42 0 74.5 15t58.5 53l158 -70q-15 -45 -42.5 -84t-63.5 -68.5t-79 -46t-90 -16.5q-52 0 -94 13.5t-79.5 30t-73.5 30.5t-76 14q-45 0 -76 -18.5t-51 -44.5zM440 485q0 -48 15 -84t41 -60t60 -36 t73 -12q33 0 67.5 8.5t66.5 26t60 44.5l44 55l50 216q-12 23 -31 44.5t-47.5 37.5t-62 24.5t-67.5 8.5q-54 0 -103 -21.5t-85.5 -58t-58.5 -86.5t-22 -107z" /> +<glyph unicode="ä" horiz-adv-x="1391" d="M102 438q0 96 25 179.5t69 153t104.5 123.5t132 91t151 56.5t161.5 19.5q46 0 78.5 -6t74.5 -18t98 -52l12 51h340l-177 -762h191l-64 -274h-530l18 79q-37 -39 -98 -66q-65 -29 -153 -29q-81 0 -159 29t-138.5 86.5t-98 142.5t-37.5 196zM249 1343q0 37 13.5 69.5 t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM440 485q0 -48 15 -84t41 -60t60 -36t73 -12q33 0 67.5 8.5t66.5 26t60 44.5l44 55l50 216q-12 23 -31 44.5 t-47.5 37.5t-62 24.5t-67.5 8.5q-54 0 -103 -21.5t-85.5 -58t-58.5 -86.5t-22 -107zM728 1343q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="å" horiz-adv-x="1391" d="M102 438q0 96 25 179.5t69 153t104.5 123.5t132 91t151 56.5t161.5 19.5q46 0 78.5 -6t74.5 -18t98 -52l12 51h340l-177 -762h191l-64 -274h-530l18 79q-37 -39 -98 -66q-65 -29 -153 -29q-81 0 -159 29t-138.5 86.5t-98 142.5t-37.5 196zM440 485q0 -48 15 -84t41 -60 t60 -36t73 -12q33 0 67.5 8.5t66.5 26t60 44.5l44 55l50 216q-12 23 -31 44.5t-47.5 37.5t-62 24.5t-67.5 8.5q-54 0 -103 -21.5t-85.5 -58t-58.5 -86.5t-22 -107zM649 1229q0 65 25 123t68 101t101 68t123 25t123 -25t101.5 -68t68.5 -101t25 -123t-25 -123t-68.5 -101.5 t-101.5 -68.5t-123 -25t-123 25t-101 68.5t-68 101.5t-25 123zM841 1229q0 -26 10 -49t27 -40t39.5 -26.5t48.5 -9.5t48.5 9.5t39 26.5t26 40t9.5 49t-9.5 48.5t-26 39t-39 26t-48.5 9.5t-48.5 -9.5t-39.5 -26t-27 -39t-10 -48.5z" /> +<glyph unicode="æ" horiz-adv-x="1849" d="M41 268q0 55 15.5 103.5t45 89.5t72 73.5t97 55.5t119.5 35t140 12q69 0 123.5 -6.5t101.5 -17.5l7 30q9 39 1.5 67.5t-29 47t-56.5 27t-80 8.5q-47 0 -88.5 -4.5t-80.5 -13.5t-76 -22.5t-74 -31.5l-52 194q54 34 109.5 61t112.5 45.5t115.5 28t119.5 9.5 q100 0 181 -25.5t134 -79.5q79 54 172 83.5t195 29.5q100 0 185 -35.5t147 -95t96.5 -137.5t34.5 -162q0 -20 -2 -45t-6 -51.5t-10 -52.5t-13 -48h-739q2 -25 7.5 -47t16.5 -42t27 -35.5t37 -26.5t47.5 -17t58.5 -6q40 0 74 8t64 22.5t57.5 34.5t54.5 44l219 -193 q-50 -54 -108.5 -93t-124 -65t-137 -38.5t-146.5 -12.5q-60 0 -115.5 12t-105 35t-91.5 56.5t-74 76.5q-39 -40 -83 -72.5t-95.5 -56t-113 -36.5t-135.5 -13q-88 0 -154 24t-110 64.5t-66 93.5t-22 111zM330 299q0 -38 27 -63t85 -25q91 0 165.5 29.5t137.5 77.5 q-4 17 -6 34l-4 34q-2 19 -2 36h-203q-36 0 -71.5 -4t-64 -17t-46.5 -37.5t-18 -64.5zM1094 666h434q-2 27 -17.5 52.5t-41 45.5t-60 32.5t-76.5 12.5q-40 0 -77 -9.5t-68.5 -28t-55.5 -45t-38 -60.5z" /> +<glyph unicode="ç" horiz-adv-x="1171" d="M102 436q0 143 51.5 259.5t138.5 199t201.5 127.5t241.5 45q80 0 148 -23t123 -63q25 -18 47 -39h192l-63 -274h-330q-16 42 -59 68t-93 26q-56 0 -105.5 -22.5t-86.5 -62t-58.5 -92t-21.5 -112.5q0 -45 14.5 -80.5t38.5 -61t56 -39t67 -13.5q83 0 138.5 38.5t91.5 100.5 l272 -148q-32 -62 -84 -116t-121 -94t-152.5 -62.5t-177.5 -22.5q-101 0 -186.5 36.5t-148.5 99t-98.5 146.5t-35.5 179zM167 -289q52 12 90.5 32.5t66.5 50t47 69t32 90.5l264 -92q-29 -69 -72 -123.5t-98.5 -93.5t-121 -63.5t-138.5 -33.5z" /> +<glyph unicode="è" horiz-adv-x="1178" d="M102 432q0 143 51.5 260t138.5 200.5t201.5 129t241.5 45.5q101 0 186 -35.5t146.5 -95t96 -137.5t34.5 -162q0 -20 -2 -45t-6 -51.5t-10 -52.5t-13 -48h-739q2 -24 8 -46q10 -38 33.5 -66.5t61.5 -45t92 -16.5q40 0 73.5 8t63.5 22.5t57.5 34.5t54.5 44l220 -193 q-101 -108 -233 -158.5t-284 -50.5q-98 0 -184 32t-150 91.5t-101.5 144.5t-37.5 191zM464 666h433q-2 27 -17.5 52.5t-41 45.5t-60 32.5t-76.5 12.5q-50 0 -95.5 -15t-80 -43.5t-55.5 -70.5q-4 -7 -7 -14zM530 1464v25h326l196 -311h-229z" /> +<glyph unicode="é" horiz-adv-x="1178" d="M102 432q0 143 51.5 260t138.5 200.5t201.5 129t241.5 45.5q101 0 186 -35.5t146.5 -95t96 -137.5t34.5 -162q0 -20 -2 -45t-6 -51.5t-10 -52.5t-13 -48h-739q2 -24 8 -46q10 -38 33.5 -66.5t61.5 -45t92 -16.5q40 0 73.5 8t63.5 22.5t57.5 34.5t54.5 44l220 -193 q-101 -108 -233 -158.5t-284 -50.5q-98 0 -184 32t-150 91.5t-101.5 144.5t-37.5 191zM464 666h433q-2 27 -17.5 52.5t-41 45.5t-60 32.5t-76.5 12.5q-50 0 -95.5 -15t-80 -43.5t-55.5 -70.5q-4 -7 -7 -14zM796 1178l215 311h326v-25l-306 -286h-235z" /> +<glyph unicode="ê" horiz-adv-x="1178" d="M102 432q0 143 51.5 260t138.5 200.5t201.5 129t241.5 45.5q101 0 186 -35.5t146.5 -95t96 -137.5t34.5 -162q0 -20 -2 -45t-6 -51.5t-10 -52.5t-13 -48h-739q2 -24 8 -46q10 -38 33.5 -66.5t61.5 -45t92 -16.5q40 0 73.5 8t63.5 22.5t57.5 34.5t54.5 44l220 -193 q-101 -108 -233 -158.5t-284 -50.5q-98 0 -184 32t-150 91.5t-101.5 144.5t-37.5 191zM350 1178l357 325h239l197 -325h-248l-96 157l-172 -157h-277zM464 666h433q-2 27 -17.5 52.5t-41 45.5t-60 32.5t-76.5 12.5q-50 0 -95.5 -15t-80 -43.5t-55.5 -70.5q-4 -7 -7 -14z" /> +<glyph unicode="ë" horiz-adv-x="1178" d="M102 432q0 143 51.5 260t138.5 200.5t201.5 129t241.5 45.5q101 0 186 -35.5t146.5 -95t96 -137.5t34.5 -162q0 -20 -2 -45t-6 -51.5t-10 -52.5t-13 -48h-739q2 -24 8 -46q10 -38 33.5 -66.5t61.5 -45t92 -16.5q40 0 73.5 8t63.5 22.5t57.5 34.5t54.5 44l220 -193 q-101 -108 -233 -158.5t-284 -50.5q-98 0 -184 32t-150 91.5t-101.5 144.5t-37.5 191zM464 666h433q-2 27 -17.5 52.5t-41 45.5t-60 32.5t-76.5 12.5q-50 0 -95.5 -15t-80 -43.5t-55.5 -70.5q-4 -7 -7 -14zM477 1342q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14 t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM956 1342q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38 t-38 56.5t-14 69.5z" /> +<glyph unicode="ì" horiz-adv-x="860" d="M78 762l63 274h564l-177 -762h240l-63 -274h-582l176 762h-221zM157 1464v25h326l196 -311h-229z" /> +<glyph unicode="í" horiz-adv-x="860" d="M78 762l63 274h564l-177 -762h240l-63 -274h-582l176 762h-221zM370 1178l215 311h326v-25l-306 -286h-235z" /> +<glyph unicode="î" horiz-adv-x="860" d="M78 762l63 274h564l-177 -762h240l-63 -274h-582l176 762h-221zM130 1178l357 325h239l197 -325h-248l-96 157l-172 -157h-277z" /> +<glyph unicode="ï" horiz-adv-x="860" d="M78 762l63 274h564l-177 -762h240l-63 -274h-582l176 762h-221zM103 1342q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM582 1342 q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="ð" horiz-adv-x="1182" d="M102 436q0 95 23.5 178t63.5 151.5t94 122t116 90.5t128 56t131 19q35 0 63.5 0.5t51.5 -1.5q-15 27 -31 52.5t-33 51.5l-170 -56l-86 260l66 21q-47 46 -97 89t-104 86h405q27 -18 52.5 -36t48.5 -38l189 63l85 -261l-71 -24q45 -69 78 -144.5t54.5 -157.5t32 -171 t10.5 -183q0 -58 -13.5 -127t-44 -139t-79 -135.5t-119 -116t-163.5 -81t-212 -30.5q-101 0 -186.5 36.5t-148.5 99t-98.5 146.5t-35.5 179zM428 473q0 -35 8.5 -70.5t29 -64t54 -46.5t84.5 -18q48 0 97 22.5t88 62t63.5 93t24.5 115.5q0 9 -0.5 19t-0.5 20t-0.5 20 t-18 48.5t-63.5 66t-94 27.5q-38 0 -72.5 -10t-65 -29t-55 -45.5t-42.5 -59t-27.5 -71t-9.5 -80.5z" /> +<glyph unicode="ñ" horiz-adv-x="1421" d="M143 762l64 274h526l-16 -85v1q45 34 93 58t99 37.5t105 13.5q87 0 152 -29t104 -83t49.5 -132.5t-12.5 -177.5l-85 -365h189l-63 -274h-531l129 557q9 38 5.5 69.5t-16 54t-34 34.5t-49.5 12q-51 0 -126 -39q-39 -20 -81 -52l-147 -636h-351l176 762h-180zM326 1264 q14 54 47.5 94t74.5 67t84.5 40.5t78.5 13.5q42 0 81 -14.5t76.5 -32t73 -32t70.5 -14.5q42 0 74.5 15t58.5 53l158 -70q-15 -45 -42.5 -84t-63.5 -68.5t-79 -46t-90 -16.5q-52 0 -94 13.5t-79.5 30t-73.5 30.5t-76 14q-45 0 -76 -18.5t-51 -44.5z" /> +<glyph unicode="ò" horiz-adv-x="1182" d="M102 436q0 143 51.5 259.5t138.5 199t201.5 127.5t241.5 45q98 0 183.5 -36t148.5 -98.5t99 -147t36 -181.5q0 -137 -48.5 -252t-133 -199t-200 -131t-249.5 -47q-101 0 -186.5 36.5t-148.5 99t-98.5 146.5t-35.5 179zM428 473q0 -44 13 -80.5t36.5 -63t56 -41 t70.5 -14.5q52 0 101 22.5t87.5 62t61.5 93t23 115.5q0 51 -14.5 88.5t-38.5 62.5t-56 37.5t-68 12.5q-57 0 -106.5 -23.5t-86 -63.5t-58 -93.5t-21.5 -114.5zM440 1464v25h326l196 -311h-229z" /> +<glyph unicode="ó" horiz-adv-x="1182" d="M102 436q0 143 51.5 259.5t138.5 199t201.5 127.5t241.5 45q98 0 183.5 -36t148.5 -98.5t99 -147t36 -181.5q0 -137 -48.5 -252t-133 -199t-200 -131t-249.5 -47q-101 0 -186.5 36.5t-148.5 99t-98.5 146.5t-35.5 179zM428 473q0 -44 13 -80.5t36.5 -63t56 -41 t70.5 -14.5q52 0 101 22.5t87.5 62t61.5 93t23 115.5q0 51 -14.5 88.5t-38.5 62.5t-56 37.5t-68 12.5q-57 0 -106.5 -23.5t-86 -63.5t-58 -93.5t-21.5 -114.5zM618 1178l215 311h326v-25l-306 -286h-235z" /> +<glyph unicode="ô" horiz-adv-x="1182" d="M102 436q0 143 51.5 259.5t138.5 199t201.5 127.5t241.5 45q98 0 183.5 -36t148.5 -98.5t99 -147t36 -181.5q0 -137 -48.5 -252t-133 -199t-200 -131t-249.5 -47q-101 0 -186.5 36.5t-148.5 99t-98.5 146.5t-35.5 179zM378 1178l357 325h239l197 -325h-248l-96 157 l-172 -157h-277zM428 473q0 -44 13 -80.5t36.5 -63t56 -41t70.5 -14.5q52 0 101 22.5t87.5 62t61.5 93t23 115.5q0 51 -14.5 88.5t-38.5 62.5t-56 37.5t-68 12.5q-57 0 -106.5 -23.5t-86 -63.5t-58 -93.5t-21.5 -114.5z" /> +<glyph unicode="õ" horiz-adv-x="1182" d="M102 436q0 143 51.5 259.5t138.5 199t201.5 127.5t241.5 45q98 0 183.5 -36t148.5 -98.5t99 -147t36 -181.5q0 -137 -48.5 -252t-133 -199t-200 -131t-249.5 -47q-101 0 -186.5 36.5t-148.5 99t-98.5 146.5t-35.5 179zM245 1264q14 54 47.5 94t74.5 67t84.5 40.5 t78.5 13.5q42 0 81 -14.5t76.5 -32t73 -32t70.5 -14.5q42 0 74.5 15t58.5 53l158 -70q-15 -45 -42.5 -84t-63.5 -68.5t-79 -46t-90 -16.5q-52 0 -94 13.5t-79.5 30t-73.5 30.5t-76 14q-45 0 -76 -18.5t-51 -44.5zM428 473q0 -44 13 -80.5t36.5 -63t56 -41t70.5 -14.5 q52 0 101 22.5t87.5 62t61.5 93t23 115.5q0 51 -14.5 88.5t-38.5 62.5t-56 37.5t-68 12.5q-57 0 -106.5 -23.5t-86 -63.5t-58 -93.5t-21.5 -114.5z" /> +<glyph unicode="ö" horiz-adv-x="1182" d="M102 436q0 143 51.5 259.5t138.5 199t201.5 127.5t241.5 45q98 0 183.5 -36t148.5 -98.5t99 -147t36 -181.5q0 -137 -48.5 -252t-133 -199t-200 -131t-249.5 -47q-101 0 -186.5 36.5t-148.5 99t-98.5 146.5t-35.5 179zM311 1342q0 37 13.5 69.5t37.5 57t56.5 38.5 t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM428 473q0 -44 13 -80.5t36.5 -63t56 -41t70.5 -14.5q52 0 101 22.5t87.5 62t61.5 93t23 115.5q0 51 -14.5 88.5t-38.5 62.5t-56 37.5 t-68 12.5q-57 0 -106.5 -23.5t-86 -63.5t-58 -93.5t-21.5 -114.5zM790 1342q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="÷" horiz-adv-x="1100" d="M50 383l64 275h975l-64 -275h-975zM351 145q0 37 14 69.5t38 56.5t56.5 38t70.5 14q36 0 68 -14t56 -38t38 -56.5t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5zM514 907q0 37 14 69.5t38 56.5t56.5 38t70.5 14q36 0 68 -14 t56 -38t38 -56.5t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="ø" horiz-adv-x="1182" d="M-70 -61l243 244q-34 54 -52.5 117t-18.5 132q0 95 23.5 179t65.5 155t100.5 126.5t129 94.5t150.5 59.5t164 20.5q69 0 132 -18.5t117 -52.5l108 108h292l-253 -256q34 -54 52.5 -116.5t18.5 -131.5q0 -91 -22 -173t-62.5 -152t-97.5 -127t-127 -96.5t-151.5 -61 t-170.5 -21.5q-69 0 -131 17.5t-115 49.5l-96 -97h-299zM406 469q0 -32 9 -62l351 353q-14 5 -29.5 7.5t-31.5 2.5q-62 0 -116.5 -24.5t-95 -65.5t-64 -95.5t-23.5 -115.5zM544 274q13 -4 27 -6t29 -2q57 0 111 23.5t95.5 64t67 95t25.5 116.5q0 16 -2 31t-6 29z" /> +<glyph unicode="ù" horiz-adv-x="1356" d="M111 762l63 274h488l-136 -585q-10 -43 -4 -77.5t25 -59t49.5 -37.5t69.5 -13q32 0 64 11t60.5 30.5t55.5 49.5l94 407h-158l64 274h477l-177 -762h191l-63 -274h-500l19 81q-31 -25 -65 -44q-43 -24 -94 -36.5t-112 -12.5q-102 0 -183.5 39t-114.5 101.5t-40.5 135.5 t17.5 162l77 336h-167zM373 1464v25h326l196 -311h-229z" /> +<glyph unicode="ú" horiz-adv-x="1356" d="M111 762l63 274h488l-136 -585q-10 -43 -4 -77.5t25 -59t49.5 -37.5t69.5 -13q32 0 64 11t60.5 30.5t55.5 49.5l94 407h-158l64 274h477l-177 -762h191l-63 -274h-500l19 81q-31 -25 -65 -44q-43 -24 -94 -36.5t-112 -12.5q-102 0 -183.5 39t-114.5 101.5t-40.5 135.5 t17.5 162l77 336h-167zM551 1178l215 311h326v-25l-306 -286h-235z" /> +<glyph unicode="û" horiz-adv-x="1356" d="M111 762l63 274h488l-136 -585q-10 -43 -4 -77.5t25 -59t49.5 -37.5t69.5 -13q32 0 64 11t60.5 30.5t55.5 49.5l94 407h-158l64 274h477l-177 -762h191l-63 -274h-500l19 81q-31 -25 -65 -44q-43 -24 -94 -36.5t-112 -12.5q-102 0 -183.5 39t-114.5 101.5t-40.5 135.5 t17.5 162l77 336h-167zM311 1178l357 325h239l197 -325h-248l-96 157l-172 -157h-277z" /> +<glyph unicode="ü" horiz-adv-x="1356" d="M111 762l63 274h488l-136 -585q-10 -43 -4 -77.5t25 -59t49.5 -37.5t69.5 -13q32 0 64 11t60.5 30.5t55.5 49.5l94 407h-158l64 274h477l-177 -762h191l-63 -274h-500l19 81q-31 -25 -65 -44q-43 -24 -94 -36.5t-112 -12.5q-102 0 -183.5 39t-114.5 101.5t-40.5 135.5 t17.5 162l77 336h-167zM244 1342q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM723 1342q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14 t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="ý" horiz-adv-x="1126" d="M-20 -471l73 274h136l126 200l-167 759h-105l63 274h512l-63 -274h-77l66 -393l246 393h-85l63 274h512l-63 -274h-81l-634 -959h125l-74 -274h-573zM590 1178l215 311h326v-25l-306 -286h-235z" /> +<glyph unicode="þ" horiz-adv-x="1343" d="M-164 -471l64 274h173l341 1479h-195l64 274h534l-137 -593q35 41 99.5 69.5t152.5 28.5q99 0 179 -35.5t136 -97.5t86.5 -145.5t30.5 -178.5q0 -137 -50.5 -251.5t-137.5 -197t-204.5 -128t-250.5 -45.5q-33 0 -69 5t-70 14t-63 22t-49 29l-57 -249h162l-63 -274h-676z M547 387q13 -27 35 -47t49.5 -33.5t58.5 -20.5t62 -7q54 0 102 21t83.5 57.5t56 86t20.5 105.5q0 43 -13 78.5t-36 60.5t-54.5 39t-68.5 14q-71 0 -135.5 -36t-107.5 -96z" /> +<glyph unicode="ÿ" horiz-adv-x="1126" d="M-20 -471l73 274h136l126 200l-167 759h-105l63 274h512l-63 -274h-77l66 -393l246 393h-85l63 274h512l-63 -274h-81l-634 -959h125l-74 -274h-573zM283 1342q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5 t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM762 1342q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="Ÿ" horiz-adv-x="1393" d="M184 1241l64 275h612l-63 -275h-105l133 -328l25 26l262 302h-88l63 275h613l-64 -275h-101l-594 -626l-79 -341h170l-63 -274h-676l63 274h160l82 361l-280 606h-134zM547 1821q0 37 13.5 69.5t37.5 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5 t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-37.5 56.5t-13.5 69.5zM1026 1821q0 37 14 69.5t38 57t56.5 38.5t70.5 14q36 0 68 -14t56 -38.5t38 -57t14 -69.5t-14 -69.5t-38 -56.5t-56 -38t-68 -14q-38 0 -70.5 14t-56.5 38t-38 56.5t-14 69.5z" /> +<glyph unicode="ˆ" horiz-adv-x="991" d="M100 1178l357 325h239l197 -325h-248l-96 157l-172 -157h-277z" /> +<glyph unicode="˜" horiz-adv-x="903" d="M10 1264q14 54 47.5 94t74.5 67t84.5 40.5t78.5 13.5q42 0 81 -14.5t76.5 -32t73 -32t70.5 -14.5q42 0 74.5 15t58.5 53l158 -70q-15 -45 -42.5 -84t-63.5 -68.5t-79 -46t-90 -16.5q-52 0 -94 13.5t-79.5 30t-73.5 30.5t-76 14q-45 0 -76 -18.5t-51 -44.5z" /> +<glyph unicode=" " horiz-adv-x="1000" /> +<glyph unicode=" " horiz-adv-x="2000" /> +<glyph unicode=" " horiz-adv-x="1000" /> +<glyph unicode=" " horiz-adv-x="2000" /> +<glyph unicode=" " horiz-adv-x="666" /> +<glyph unicode=" " horiz-adv-x="500" /> +<glyph unicode=" " horiz-adv-x="333" /> +<glyph unicode=" " horiz-adv-x="333" /> +<glyph unicode=" " horiz-adv-x="250" /> +<glyph unicode=" " horiz-adv-x="400" /> +<glyph unicode=" " horiz-adv-x="111" /> +<glyph unicode="‐" horiz-adv-x="831" d="M143 449l64 274h627l-64 -274h-627z" /> +<glyph unicode="‑" horiz-adv-x="831" d="M143 449l64 274h627l-64 -274h-627z" /> +<glyph unicode="‒" horiz-adv-x="831" d="M143 449l64 274h627l-64 -274h-627z" /> +<glyph unicode="–" horiz-adv-x="1393" d="M332 459l63 274h1024l-63 -274h-1024z" /> +<glyph unicode="—" horiz-adv-x="2396" d="M434 459l64 274h1843l-64 -274h-1843z" /> +<glyph unicode="‘" horiz-adv-x="608" d="M205 1096l358 561l209 -84l-297 -584z" /> +<glyph unicode="’" horiz-adv-x="608" d="M266 1079l297 584l271 -107l-359 -561z" /> +<glyph unicode="“" horiz-adv-x="1096" d="M205 1106l383 557l209 -92l-322 -572zM692 1096l359 561l209 -84l-297 -584z" /> +<glyph unicode="”" horiz-adv-x="1096" d="M266 1079l297 584l271 -107l-359 -561zM729 1081l322 572l270 -107l-383 -557z" /> +<glyph unicode="„" horiz-adv-x="1102" d="M-30 -300l297 584l271 -107l-359 -561zM433 -298l322 572l270 -107l-383 -557z" /> +<glyph unicode="•" horiz-adv-x="1270" d="M307 553q0 81 30.5 151.5t83.5 123.5t123.5 83.5t151.5 30.5t151.5 -30.5t123.5 -83.5t83.5 -123.5t30.5 -151.5t-30.5 -151.5t-83.5 -123.5t-123.5 -83.5t-151.5 -30.5t-151.5 30.5t-123.5 83.5t-83.5 123.5t-30.5 151.5z" /> +<glyph unicode="…" horiz-adv-x="1315" d="M31 143q0 37 14.5 69t40 55t59.5 36.5t72 13.5q37 0 72 -13.5t61 -36.5t42 -55t16 -69q0 -35 -16 -66.5t-42 -55.5t-61 -38t-72 -14q-38 0 -72 14t-59.5 38t-40 55.5t-14.5 66.5zM469 143q0 37 14.5 69t40 55t59.5 36.5t72 13.5t72.5 -13.5t61 -36.5t42 -55t15.5 -69 q0 -35 -15.5 -66.5t-42 -55.5t-61 -38t-72.5 -14t-72 14t-59.5 38t-40 55.5t-14.5 66.5zM907 143q0 37 14.5 69t40 55t59.5 36.5t73 13.5q37 0 71.5 -13.5t61 -36.5t42 -55t15.5 -69q0 -35 -15.5 -66.5t-42 -55.5t-61 -38t-71.5 -14q-39 0 -73 14t-59.5 38t-40 55.5 t-14.5 66.5z" /> +<glyph unicode=" " horiz-adv-x="400" /> +<glyph unicode="‹" horiz-adv-x="629" d="M123 535l18 73l330 361h240l-335 -424l146 -389h-223z" /> +<glyph unicode="›" horiz-adv-x="629" d="M41 156l335 423l-147 390h224l176 -379l-19 -74l-329 -360h-240z" /> +<glyph unicode=" " horiz-adv-x="500" /> +<glyph unicode="◼" horiz-adv-x="1035" d="M0 0v1035h1035v-1035h-1035z" /> +<hkern u1="A" u2="Y" k="100" /> +<hkern u1="A" u2="V" k="100" /> +<hkern u1="A" u2="T" k="100" /> +<hkern u1="F" u2="." k="300" /> +<hkern u1="F" u2="," k="200" /> +<hkern u1="P" u2="." k="250" /> +<hkern u1="P" u2="," k="200" /> +<hkern u1="T" u2="Æ" k="100" /> +<hkern u1="T" u2="Å" k="75" /> +<hkern u1="T" u2="Ä" k="75" /> +<hkern u1="T" u2="Ã" k="75" /> +<hkern u1="T" u2="Â" k="75" /> +<hkern u1="T" u2="Á" k="75" /> +<hkern u1="T" u2="À" k="75" /> +<hkern u1="T" u2="q" k="150" /> +<hkern u1="T" u2="o" k="150" /> +<hkern u1="T" u2="g" k="150" /> +<hkern u1="T" u2="e" k="150" /> +<hkern u1="T" u2="d" k="150" /> +<hkern u1="T" u2="c" k="150" /> +<hkern u1="T" u2="a" k="150" /> +<hkern u1="T" u2="A" k="75" /> +<hkern u1="T" u2="." k="280" /> +<hkern u1="V" u2="Æ" k="100" /> +<hkern u1="V" u2="Å" k="50" /> +<hkern u1="V" u2="Ä" k="50" /> +<hkern u1="V" u2="Ã" k="50" /> +<hkern u1="V" u2="Â" k="50" /> +<hkern u1="V" u2="Á" k="50" /> +<hkern u1="V" u2="À" k="50" /> +<hkern u1="V" u2="q" k="75" /> +<hkern u1="V" u2="o" k="75" /> +<hkern u1="V" u2="g" k="75" /> +<hkern u1="V" u2="e" k="75" /> +<hkern u1="V" u2="d" k="75" /> +<hkern u1="V" u2="c" k="75" /> +<hkern u1="V" u2="a" k="75" /> +<hkern u1="V" u2="A" k="50" /> +<hkern u1="V" u2="." k="180" /> +<hkern u1="V" u2="," k="180" /> +<hkern u1="Y" u2="Æ" k="100" /> +<hkern u1="Y" u2="Å" k="100" /> +<hkern u1="Y" u2="Ä" k="100" /> +<hkern u1="Y" u2="Ã" k="100" /> +<hkern u1="Y" u2="Â" k="100" /> +<hkern u1="Y" u2="Á" k="100" /> +<hkern u1="Y" u2="À" k="100" /> +<hkern u1="Y" u2="c" k="140" /> +<hkern u1="Y" u2="A" k="100" /> +<hkern u1="Y" u2="." k="250" /> +<hkern u1="Y" u2="," k="200" /> +<hkern u1="f" u2="." k="160" /> +<hkern u1="f" u2="," k="120" /> +<hkern u1="k" u2="e" k="25" /> +<hkern u1="k" u2="c" k="25" /> +<hkern u1="y" u2="." k="175" /> +<hkern u1="y" u2="," k="150" /> +<hkern u1="À" u2="Y" k="100" /> +<hkern u1="À" u2="V" k="100" /> +<hkern u1="À" u2="T" k="100" /> +<hkern u1="Á" u2="Y" k="100" /> +<hkern u1="Á" u2="V" k="100" /> +<hkern u1="Á" u2="T" k="100" /> +<hkern u1="Â" u2="Y" k="100" /> +<hkern u1="Â" u2="V" k="100" /> +<hkern u1="Â" u2="T" k="100" /> +<hkern u1="Ã" u2="Y" k="100" /> +<hkern u1="Ã" u2="V" k="100" /> +<hkern u1="Ã" u2="T" k="100" /> +<hkern u1="Ä" u2="Y" k="100" /> +<hkern u1="Ä" u2="V" k="100" /> +<hkern u1="Ä" u2="T" k="100" /> +<hkern u1="Å" u2="Y" k="100" /> +<hkern u1="Å" u2="V" k="100" /> +<hkern u1="Å" u2="T" k="100" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/arvo-bolditalic-webfont.ttf b/web/static/fonts/arvo-bolditalic-webfont.ttf Binary files differnew file mode 100755 index 000000000..98db8e8fb --- /dev/null +++ b/web/static/fonts/arvo-bolditalic-webfont.ttf diff --git a/web/static/fonts/arvo-bolditalic-webfont.woff b/web/static/fonts/arvo-bolditalic-webfont.woff Binary files differnew file mode 100755 index 000000000..006c70f96 --- /dev/null +++ b/web/static/fonts/arvo-bolditalic-webfont.woff diff --git a/web/static/fonts/arvo-bolditalic-webfont.woff2 b/web/static/fonts/arvo-bolditalic-webfont.woff2 Binary files differnew file mode 100755 index 000000000..23320bef2 --- /dev/null +++ b/web/static/fonts/arvo-bolditalic-webfont.woff2 diff --git a/web/static/fonts/arvo-italic-webfont.eot b/web/static/fonts/arvo-italic-webfont.eot Binary files differnew file mode 100755 index 000000000..a7a2849f9 --- /dev/null +++ b/web/static/fonts/arvo-italic-webfont.eot diff --git a/web/static/fonts/arvo-italic-webfont.svg b/web/static/fonts/arvo-italic-webfont.svg new file mode 100755 index 000000000..647e95773 --- /dev/null +++ b/web/static/fonts/arvo-italic-webfont.svg @@ -0,0 +1,320 @@ +<?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="arvoitalic" horiz-adv-x="1235" > +<font-face units-per-em="2048" ascent="1638" descent="-410" /> +<missing-glyph horiz-adv-x="471" /> +<glyph horiz-adv-x="0" /> +<glyph unicode="
" horiz-adv-x="0" /> +<glyph unicode=" " horiz-adv-x="471" /> +<glyph unicode="	" horiz-adv-x="471" /> +<glyph unicode=" " horiz-adv-x="471" /> +<glyph unicode="!" horiz-adv-x="842" d="M198 119q0 27 10.5 51t28.5 41.5t42 28t52 10.5q27 0 51 -10.5t41.5 -28t28 -41.5t10.5 -51t-10.5 -51.5t-28 -43t-41.5 -29.5t-51 -11q-28 0 -52 11t-42 29.5t-28.5 43t-10.5 51.5zM284 410l230 1167h260l-312 -1167h-178z" /> +<glyph unicode=""" horiz-adv-x="745" d="M163 1059l71 510l183 12l-129 -522h-125zM450 1059l71 510l182 12l-129 -522h-124z" /> +<glyph unicode="#" horiz-adv-x="1455" d="M34 389l92 172h221l193 451h-256l90 172h240l135 313h201l-134 -313h358l134 313h201l-134 -313h226l-90 -172h-209l-192 -451h243l-88 -172h-228l-165 -389h-203l166 389h-357l-165 -389h-207l167 389h-239zM551 561h357l193 451h-358z" /> +<glyph unicode="$" horiz-adv-x="1278" d="M123 363q9 35 17.5 68.5t17.5 68.5h233q-4 -16 -8 -31t-7.5 -39.5t10 -50t41 -43t69.5 -26t96 -8.5q57 0 104 13t81.5 36.5t53.5 56t19 71.5q0 43 -29 70.5t-54 42t-64 22.5l-158 43q-53 14 -93.5 37t-69 54.5t-43 71.5t-14.5 87q0 77 32.5 139.5t93.5 107t148 68.5 q53 14 114 20l74 317h196l-75 -324q7 -2 40 -9.5t77.5 -32t74 -58t40.5 -73.5h82q-9 -35 -17.5 -68.5t-17.5 -68.5h-225q2 5 2.5 9.5t5.5 25.5t-6.5 48.5t-38.5 46.5t-66 29t-83 10q-61 0 -109.5 -12.5t-82.5 -34t-52.5 -52t-18.5 -66.5q0 -32 14.5 -52.5t37.5 -33.5 t50.5 -21t53.5 -16l153 -49q112 -35 168 -96t56 -157q0 -81 -35.5 -147t-99 -112.5t-132 -66t-121.5 -25.5l-77 -334h-197l77 335q-28 4 -72.5 15.5t-88 40.5t-67.5 68.5t-30 84.5h-80z" /> +<glyph unicode="%" horiz-adv-x="1671" d="M20 -16l1401 1556h225l-1400 -1556h-226zM160 1108q0 79 32.5 150t89 124.5t132 85t161.5 31.5q62 0 114.5 -23t91 -61.5t60 -88t21.5 -103.5q0 -76 -31.5 -146.5t-87 -124.5t-132 -86t-165.5 -32q-64 0 -116.5 22.5t-90 60.5t-58.5 87.5t-21 103.5zM334 1137 q0 -31 9.5 -57t27.5 -45t43 -29.5t57 -10.5q40 0 79 16.5t69 44.5t48.5 65.5t18.5 78.5q0 29 -10 54t-27.5 43t-42.5 28t-55 10q-41 0 -80 -15.5t-69.5 -42.5t-49 -63t-18.5 -77zM844 239q0 65 15 114.5t42 92.5t65 79t84 62t99 40t110 14q62 0 114.5 -22.5t91 -61t60 -88 t21.5 -103.5q0 -76 -31.5 -146.5t-87 -125t-131.5 -87t-166 -32.5q-64 0 -116.5 23t-90 61.5t-58.5 87.5t-21 92zM1020 278q0 -62 36 -101.5t99 -39.5q40 0 79 16.5t69 44.5t48.5 65t18.5 79q0 29 -10 53.5t-27.5 42.5t-42.5 28.5t-55 10.5q-41 0 -79.5 -15.5t-68.5 -42.5 t-48.5 -63t-18.5 -78z" /> +<glyph unicode="&" horiz-adv-x="1382" d="M75 356q0 83 32 155.5t84.5 131.5t120 104t138.5 74q-19 26 -41 56.5t-41 68t-32 83t-13 101.5q0 88 35.5 163.5t96 131t142.5 87.5t175 32q71 0 133 -26t108 -70.5t72.5 -102t26.5 -120.5q0 -69 -16 -122.5t-46.5 -97t-76 -80t-103.5 -73.5q-37 -25 -75.5 -46t-79.5 -41 l226 -288q48 75 83.5 147.5t58.5 131.5h180q-38 -101 -92 -207.5t-124 -205.5l194 -247l-166 -116l-154 213q-49 -50 -103 -91t-113 -70.5t-123.5 -46t-133.5 -16.5q-81 0 -149 30t-118 82.5t-78 123t-28 151.5zM249 362q0 -48 16 -89.5t45.5 -71.5t71 -47t91.5 -17 q51 0 98.5 14t91.5 38.5t84.5 58.5t76.5 74l-277 370q-23 -9 -45 -17.5t-44 -17.5q-43 -18 -81 -48.5t-66.5 -69.5t-45 -84.5t-16.5 -92.5zM493 1139q0 -34 8.5 -63.5t24.5 -58.5t39 -59.5t51 -66.5q61 26 117.5 56.5t105.5 72.5q38 34 67 80t29 100q0 37 -14 70t-38 58 t-57 39.5t-71 14.5q-55 0 -103 -19t-83 -52t-55.5 -77t-20.5 -95z" /> +<glyph unicode="'" horiz-adv-x="414" d="M150 1059l71 510l183 12l-129 -522h-125z" /> +<glyph unicode="(" horiz-adv-x="825" d="M239 397q0 203 44 387.5t130 352t199.5 310t267.5 270.5l124 -124q-139 -128 -238 -249.5t-172.5 -274.5t-112.5 -318t-39 -345q0 -92 9.5 -182.5t28.5 -175t48 -162t67 -144.5l-163 -111q-45 78 -81 169t-61 189t-38 201t-13 207z" /> +<glyph unicode=")" horiz-adv-x="948" d="M-109 -258q133 130 241 270t183.5 289.5t116.5 308.5t41 328q0 92 -9.5 182t-29 175t-48.5 162.5t-67 144.5l163 110q46 -78 82 -168.5t60.5 -189t37.5 -201.5t13 -207q0 -193 -48 -368t-136.5 -337t-212.5 -313.5t-276 -296.5z" /> +<glyph unicode="*" horiz-adv-x="808" d="M101 1260l66 122l225 -79l55 243h146l-57 -246l260 78l12 -137l-257 -76l101 -202l-125 -70l-98 202l-184 -194l-109 82l190 199z" /> +<glyph unicode="+" horiz-adv-x="1270" d="M101 614l39 172h416l98 424h195l-98 -424h415l-39 -172h-416l-98 -428h-194l98 428h-416z" /> +<glyph unicode="," horiz-adv-x="569" d="M-3 -273l208 556l219 -86l-256 -537z" /> +<glyph unicode="-" horiz-adv-x="856" d="M137 496l40 172h571l-40 -172h-571z" /> +<glyph unicode="." horiz-adv-x="514" d="M50 119q0 27 10.5 51t28.5 41.5t42 28t52 10.5q27 0 51 -10.5t41.5 -28t28 -41.5t10.5 -51t-10.5 -51.5t-28 -43t-41.5 -29.5t-51 -11q-28 0 -52 11t-42 29.5t-28.5 43t-10.5 51.5z" /> +<glyph unicode="/" horiz-adv-x="900" d="M-98 0l1137 1556h248l-1137 -1556h-248z" /> +<glyph unicode="0" horiz-adv-x="1409" d="M143 492q0 110 23.5 231t69 237.5t112 221.5t152.5 184.5t191 126.5t227 47q120 0 205.5 -41.5t140 -112t79.5 -164t25 -198.5q0 -115 -24 -236.5t-70.5 -237.5t-113.5 -219t-153 -180.5t-190 -123t-223 -45.5q-118 0 -203.5 39t-140.5 107.5t-81 162t-26 201.5zM352 504 q0 -70 13.5 -131.5t44.5 -107.5t81.5 -72.5t124.5 -26.5q78 0 148.5 39.5t131 106t109 153t83 180t53 187.5t18.5 176q0 71 -13.5 135.5t-44 113t-81 77t-125.5 28.5q-77 0 -147.5 -41.5t-130.5 -111t-109 -158.5t-83.5 -184.5t-53.5 -189.5t-19 -173z" /> +<glyph unicode="1" horiz-adv-x="844" d="M143 0l39 172h147l254 1109l-343 -167l47 209l477 236h80l-320 -1387h150l-39 -172h-492z" /> +<glyph unicode="2" horiz-adv-x="1143" d="M-20 0l34 154l680 639q39 37 83 78t81 87t61.5 95.5t24.5 103.5q0 41 -15 76.5t-42.5 62t-67 41.5t-88.5 15q-51 0 -98.5 -16.5t-87 -48t-69.5 -78t-46 -107.5h-207q24 103 76.5 185t124.5 138.5t159 86.5t179 30q85 0 155 -28.5t120.5 -77.5t78 -114.5t27.5 -139.5 q0 -59 -10.5 -109t-38 -101t-76.5 -108.5t-127 -130.5l-601 -561h621l-39 -172h-892z" /> +<glyph unicode="3" horiz-adv-x="1124" d="M23 371h200q1 -48 17.5 -89.5t47.5 -73t75.5 -49.5t101.5 -18q74 0 136.5 28t107.5 76.5t70.5 113t25.5 137.5q0 49 -17 89.5t-47 69t-71.5 44.5t-91.5 16h-89l35 157h74q75 0 137.5 23t107.5 61.5t70 89t25 105.5q0 43 -16.5 83.5t-46 71.5t-71 49.5t-91.5 18.5 q-62 0 -110 -16t-83.5 -43t-58.5 -61.5t-35 -71.5q-2 -5 -2.5 -7.5t-1.5 -5.5t-2.5 -8t-3.5 -14l-201 2q15 91 61 164.5t114 125.5t155.5 79.5t185.5 27.5q88 0 163.5 -25.5t131 -73t87.5 -114.5t32 -151q0 -61 -15.5 -119.5t-50 -110t-89.5 -93t-133 -69.5 q33 -16 61.5 -42.5t49.5 -62.5t32.5 -79t11.5 -92q0 -117 -43 -216.5t-119.5 -172.5t-181 -114.5t-228.5 -41.5q-71 0 -138.5 20.5t-123 58t-94 91t-51.5 119.5q-6 26 -9 54t-1 59z" /> +<glyph unicode="4" horiz-adv-x="1153" d="M20 438l39 158l752 920h231l-744 -906h392l58 250l200 14l-61 -264h225l-41 -172h-224l-62 -266h145l-39 -172h-492l39 172h150l62 266h-630z" /> +<glyph unicode="5" horiz-adv-x="1192" d="M20 297l183 78q11 -45 34.5 -86t60.5 -72.5t87 -50.5t115 -19q70 0 139 26t124 75.5t89.5 122.5t34.5 168q0 56 -19 104t-54 83.5t-84 56t-109 20.5q-81 0 -154 -28t-129 -75l-154 29l185 787h864l-41 -173h-676l-101 -433q56 31 113.5 47t130.5 16q91 0 170 -30 t137 -85.5t91 -133.5t33 -173q0 -96 -24.5 -176t-67 -145t-101 -113.5t-126 -81.5t-141.5 -49.5t-149 -16.5q-93 0 -171 25t-137.5 69t-98.5 104t-54 130z" /> +<glyph unicode="6" horiz-adv-x="1253" d="M124 416q0 55 12 111.5t38.5 118t69 129t104.5 144.5l479 597h244l-445 -539q38 11 66 14t50 3q96 0 177 -33t140 -90.5t92 -135.5t33 -168q0 -131 -50.5 -237.5t-134 -182t-192.5 -116.5t-226 -41q-105 0 -189.5 34t-144 92.5t-91.5 135.5t-32 164zM324 426 q0 -57 19 -106t55 -85t87.5 -56.5t117.5 -20.5q74 0 142.5 28.5t121.5 81t85 127.5t32 167q0 64 -23 115.5t-62 87.5t-90 55t-106 19q-100 0 -181 -47.5t-127 -116.5t-58.5 -128t-12.5 -121z" /> +<glyph unicode="7" horiz-adv-x="1212" d="M61 0l39 172h138q92 158 196.5 320t208.5 315t201.5 290t176.5 246h-573l-32 -137h-195l72 310h1001l-34 -150q-97 -130 -202.5 -275.5t-212 -298.5t-208.5 -310t-191 -310h146l-39 -172h-492z" /> +<glyph unicode="8" horiz-adv-x="1247" d="M102 383q0 77 25 147.5t69.5 130.5t105.5 107.5t134 78.5q-50 48 -78 111.5t-28 133.5q0 93 42 175.5t112.5 144t164 97t195.5 35.5q78 0 144.5 -26.5t115 -73.5t75.5 -110.5t27 -137.5q0 -62 -19 -119t-53 -106.5t-80.5 -90.5t-101.5 -71q70 -55 111 -134t41 -169 q0 -108 -44 -203.5t-122 -166t-185.5 -111.5t-234.5 -41q-98 0 -175 32t-130.5 87t-82 127t-28.5 153zM297 399q0 -53 16.5 -96.5t48 -74t77 -47.5t102.5 -17q85 0 153.5 27.5t116.5 74t74 106t26 124.5q0 48 -17.5 90.5t-49.5 73.5t-76 49t-98 18q-75 0 -143 -26.5 t-119 -71.5t-81 -104.5t-30 -125.5zM512 1098q0 -41 14.5 -76.5t41 -62t64 -41.5t83.5 -15q57 0 112 22t98.5 60t70 88.5t26.5 106.5q0 43 -14 79t-39.5 62t-62.5 40.5t-83 14.5q-62 0 -118 -23t-99 -61t-68.5 -88.5t-25.5 -105.5z" /> +<glyph unicode="9" horiz-adv-x="1294" d="M184 953q0 131 50.5 237.5t134 182t192.5 116.5t226 41q105 0 189.5 -34t144 -92.5t91.5 -135.5t32 -164q0 -55 -12 -111.5t-38.5 -118t-69.5 -129t-104 -144.5l-481 -601h-244l447 543q-38 -12 -66.5 -14.5t-49.5 -2.5q-96 0 -177 33t-140 90.5t-92 135.5t-33 168z M384 958q0 -65 23 -116t62 -87t90 -55t106 -19q121 0 208 60t146 188q14 40 19.5 81t5.5 84q0 57 -19 106t-55 85t-87.5 56.5t-117.5 20.5q-74 0 -142.5 -28.5t-121.5 -81t-85 -127.5t-32 -167z" /> +<glyph unicode=":" horiz-adv-x="542" d="M44 119q0 27 10.5 51t28.5 41.5t42 28t52 10.5q27 0 51 -10.5t41.5 -28t28 -41.5t10.5 -51t-10.5 -51.5t-28 -43t-41.5 -29.5t-51 -11q-28 0 -52 11t-42 29.5t-28.5 43t-10.5 51.5zM198 905q0 27 10.5 51t28.5 41.5t42 28t52 10.5q27 0 51 -10.5t41.5 -28t28 -41.5 t10.5 -51t-10.5 -51.5t-28 -43t-41.5 -29.5t-51 -11q-28 0 -52 11t-42 29.5t-28.5 43t-10.5 51.5z" /> +<glyph unicode=";" horiz-adv-x="555" d="M-117 -269l210 552l223 -86l-260 -539zM191 905q0 27 10.5 51t28.5 41.5t42 28t52 10.5q27 0 51 -10.5t41.5 -28t28 -41.5t10.5 -51t-10.5 -51.5t-28 -43t-41.5 -29.5t-51 -11q-28 0 -52 11t-42 29.5t-28.5 43t-10.5 51.5z" /> +<glyph unicode="<" horiz-adv-x="1067" d="M-7 508l33 145l850 295l-45 -186l-611 -192l521 -203l-37 -164z" /> +<glyph unicode="=" horiz-adv-x="1053" d="M130 336l39 172h750l-39 -172h-750zM214 705l39 172h750l-39 -172h-750z" /> +<glyph unicode=">" horiz-adv-x="1067" d="M-68 203l45 186l611 192l-521 203l37 164l711 -305l-33 -145z" /> +<glyph unicode="?" horiz-adv-x="1128" d="M198 1155q23 94 70 170.5t113 130.5t149.5 83.5t179.5 29.5q95 0 168 -29.5t122.5 -77.5t75 -109t25.5 -124q0 -72 -19 -130t-55 -107.5t-89.5 -93t-122.5 -85.5q-49 -29 -87 -51t-68.5 -44.5t-53.5 -47.5t-42 -60t-35 -82.5t-32 -113.5h-198q14 69 28.5 122.5t32.5 95.5 t40 75t51.5 62.5t67.5 57.5t87 60q70 45 123.5 80t89 69.5t53.5 74t18 93.5q0 36 -14 67.5t-40.5 55.5t-64 37.5t-85.5 13.5q-56 0 -105.5 -18t-91 -59t-63 -88t-21.5 -76zM235 125q0 27 10.5 51t28.5 41.5t42 28t52 10.5q27 0 51 -10.5t41.5 -28t28 -41.5t10.5 -51 t-10.5 -51.5t-28 -43t-41.5 -29.5t-51 -11q-28 0 -52 11t-42 29.5t-28.5 43t-10.5 51.5z" /> +<glyph unicode="@" horiz-adv-x="2351" d="M98 328q0 167 47 318.5t130.5 280.5t199 233.5t252 178t289 113t311.5 39.5q128 0 240.5 -29t206.5 -81.5t167.5 -126.5t124.5 -163t77.5 -190.5t26.5 -210.5q0 -90 -19 -177.5t-54.5 -166t-87 -145t-116.5 -115t-142.5 -75.5t-165.5 -27q-97 0 -153 37t-79 99 q-72 -53 -157 -82.5t-177 -29.5q-89 0 -162 32.5t-124.5 87.5t-80 127.5t-28.5 152.5q0 77 22.5 147.5t63 130.5t96 109t121.5 83.5t139.5 53t149.5 18.5q77 0 143 -22t117 -63l21 91h184l-154 -663q-10 -51 -1.5 -81t28.5 -46t53 -16q84 0 151.5 45.5t115.5 119.5t74 168 t26 191q0 138 -47 254t-133.5 200.5t-208 131.5t-269.5 47q-130 0 -256 -33.5t-239.5 -95.5t-209.5 -149.5t-166 -195t-109.5 -232t-39.5 -261.5q0 -139 46 -260t130.5 -210t204 -140.5t265.5 -51.5q115 0 229 30.5t219 86.5l57 -157q-128 -69 -257 -106.5t-271 -37.5 q-119 0 -226 30t-198 85t-164.5 131.5t-125 169t-79.5 198.5t-28 220zM819 424q0 -48 16 -90.5t46 -73.5t74 -49t101 -18q47 0 90.5 12t81.5 33t70.5 50t57.5 64l64 272q-21 66 -82 106t-151 40q-72 0 -138.5 -29t-117.5 -77t-81.5 -110.5t-30.5 -129.5z" /> +<glyph unicode="A" horiz-adv-x="1458" d="M-150 0l39 172h131l760 1344h323l158 -1344h150l-39 -172h-492l39 172h127l-37 342h-574l-191 -342h136l-38 -172h-492zM531 686h459l-75 688z" /> +<glyph unicode="B" horiz-adv-x="1500" d="M75 0l39 172h134l270 1171h-148l41 173h678q85 0 151.5 -27t112 -75.5t69 -115.5t23.5 -147q0 -143 -72 -245t-204 -153q66 -48 101.5 -122t35.5 -166q0 -105 -42.5 -191t-116 -147t-172.5 -94t-212 -33h-688zM457 172h335q67 0 122 21.5t94 58.5t60 87.5t21 109.5 q0 51 -13 92.5t-36.5 71t-57 45.5t-73.5 16h-337zM612 848h330q60 0 112 19.5t90.5 55.5t61 86t22.5 111q0 47 -11 87.5t-33.5 70.5t-56.5 47.5t-79 17.5h-323z" /> +<glyph unicode="C" horiz-adv-x="1468" d="M75 655q0 125 29.5 240t83.5 213.5t131 179t172.5 137.5t207 88t234.5 31q170 0 302.5 -68.5t217.5 -189.5h156l-41 -172h-276q-22 51 -58.5 94t-85 73.5t-108.5 47.5t-129 17q-132 0 -244 -53.5t-194 -145.5t-128 -214.5t-46 -260.5q0 -115 36 -207.5t96 -157t139 -99 t165 -34.5q151 0 265.5 62.5t201.5 187.5l192 -102q-58 -82 -129 -146.5t-156 -109t-184 -68t-213 -23.5q-137 0 -253.5 51.5t-201.5 142.5t-133.5 215.5t-48.5 270.5z" /> +<glyph unicode="D" horiz-adv-x="1561" d="M75 0l39 172h132l270 1171h-131l40 173h549q133 0 240.5 -50.5t183 -138t116 -204.5t40.5 -249q0 -131 -31.5 -246.5t-89 -213t-139.5 -174t-182 -130t-216 -82t-243 -28.5h-578zM455 172h220q83 0 164 22t154.5 64t136 102t108 136t71.5 167t26 195q0 97 -27.5 184.5 t-78 154.5t-122 106.5t-159.5 39.5h-225z" /> +<glyph unicode="E" horiz-adv-x="1415" d="M75 0l39 172h134l270 1171h-148l41 173h1100l-100 -433h-207l61 260h-540l-111 -485h446l-43 -172h-442l-118 -514h534l61 262h209l-100 -434h-1086z" /> +<glyph unicode="F" horiz-adv-x="1331" d="M75 0l39 172h130l270 1171h-148l41 173h1102l-98 -429h-197l57 256h-550l-111 -487h522l-39 -172h-523l-117 -512h153l-39 -172h-492z" /> +<glyph unicode="G" horiz-adv-x="1616" d="M75 655q0 124 29 238t83 213t130.5 179.5t172 138t207.5 89t236 31.5q95 0 176 -22t147 -58t115.5 -82.5t81.5 -95.5h156l-41 -172h-276q-22 51 -58.5 94t-85 73.5t-108.5 47.5t-129 17q-90 0 -170 -24t-148 -68.5t-122.5 -106t-92.5 -136.5t-58.5 -161t-20.5 -178 q0 -109 34.5 -200.5t93.5 -157.5t138.5 -103t169.5 -37q91 0 171.5 25.5t147 74t118.5 118t86 157.5h-423l41 176h643l-164 -725h-200l50 222q-92 -126 -218.5 -186.5t-274.5 -60.5q-137 0 -254 52.5t-202 144.5t-133 216t-48 267z" /> +<glyph unicode="H" horiz-adv-x="1933" d="M75 0l39 172h134l270 1171h-148l41 173h492l-41 -173h-137l-105 -458h858l105 458h-148l41 173h492l-41 -173h-137l-268 -1171h149l-39 -172h-492l39 172h134l126 545h-857l-125 -545h149l-39 -172h-492z" /> +<glyph unicode="I" horiz-adv-x="883" d="M75 0l39 172h144l270 1171h-143l40 173h492l-41 -173h-141l-268 -1171h139l-39 -172h-492z" /> +<glyph unicode="J" horiz-adv-x="762" d="M-75 -223q80 90 140 168.5t109.5 150t61.5 109.5l263 1138h-150l41 173h491l-41 -173h-141l-271 -1171q-14 -42 -61 -103.5t-117 -142t-157 -164.5z" /> +<glyph unicode="K" horiz-adv-x="1642" d="M75 0l39 172h134l270 1171h-148l41 173h492l-41 -173h-137l-268 -1171h149l-39 -172h-492zM598 774l792 569l41 173h389l-41 -173h-94l-837 -589l468 -582h158l-39 -172h-407l39 172z" /> +<glyph unicode="L" horiz-adv-x="1376" d="M75 0l39 172h134l270 1171h-148l41 173h492l-41 -173h-137l-268 -1171h505q43 0 66.5 23t31.5 57l47 197h201l-104 -449h-1129z" /> +<glyph unicode="M" horiz-adv-x="2290" d="M75 0l39 172h136l270 1171h-150l41 173h459l197 -1301l784 1301h473l-41 -173h-137l-270 -1171h159l-39 -172h-491l39 172h132l266 1154l-800 -1326h-231l-202 1323l-266 -1151h163l-39 -172h-492z" /> +<glyph unicode="N" horiz-adv-x="1786" d="M75 0l39 172h133l271 1171h-150l41 173h416l408 -1246l246 1073h-148l39 173h491l-39 -173h-136l-308 -1343h-262l-413 1255l-249 -1083h152l-39 -172h-492z" /> +<glyph unicode="O" horiz-adv-x="1577" d="M75 655q0 131 31 247.5t87 215.5t134.5 178t174 134t204.5 84.5t227 29.5q128 0 243.5 -44.5t203 -129.5t139 -208.5t51.5 -280.5q0 -134 -30 -254t-84.5 -221t-132 -182t-173 -137.5t-206.5 -87t-232 -30.5q-128 0 -243.5 49t-203 138.5t-139 216t-51.5 282.5zM299 672 q0 -107 32.5 -198.5t90.5 -158.5t138 -105t175 -38q86 0 165 24t147 68.5t123.5 107t94.5 139.5t60.5 166t21.5 187q0 109 -32.5 197t-90.5 150.5t-138 96t-175 33.5q-124 0 -235 -50t-195 -139.5t-133 -212t-49 -267.5z" /> +<glyph unicode="P" horiz-adv-x="1313" d="M75 0l39 172h132l270 1171h-148l41 173h608q87 0 159 -30t124 -81.5t80.5 -120.5t28.5 -147q0 -103 -39 -191t-114.5 -152t-187 -100.5t-255.5 -36.5h-247l-111 -485h151l-39 -172h-492zM606 829h229q81 0 148 19.5t115 57t74 92.5t26 126q0 42 -14 81.5t-43 70t-74 49 t-107 18.5h-237z" /> +<glyph unicode="Q" horiz-adv-x="1559" d="M75 655q0 131 31 247.5t87 215.5t134.5 178t174 134t204.5 84.5t227 29.5q128 0 243.5 -44.5t203 -129.5t139 -208.5t51.5 -280.5q0 -128 -27 -242t-77 -212.5t-120.5 -178.5t-158 -138.5t-189.5 -93.5t-214 -44q42 -13 75.5 -33.5t66.5 -39.5t70 -32.5t87 -13.5 q57 0 108.5 28.5t79.5 87.5l135 -69q-25 -56 -67 -98.5t-92.5 -71t-103.5 -42.5t-101 -14q-50 0 -90.5 11.5t-76 28.5t-67.5 36t-63.5 33.5t-64.5 22.5q-18 4 -37 4q-16 0 -33 -3q-31 -3 -51 -10l42 182q-110 19 -205.5 75t-167 143.5t-112.5 203t-41 254.5zM299 672 q0 -107 32.5 -198.5t90.5 -158.5t138 -105t175 -38q86 0 165 24t147 68.5t123.5 107t94.5 139.5t60.5 166t21.5 187q0 109 -32.5 197t-90.5 150.5t-138 96t-175 33.5q-124 0 -235 -50t-195 -139.5t-133 -212t-49 -267.5z" /> +<glyph unicode="R" horiz-adv-x="1438" d="M75 0l39 172h134l270 1171h-150l41 173h617q87 0 158 -26t121.5 -73t78 -112.5t27.5 -143.5q0 -81 -27.5 -149.5t-74 -122t-108 -92t-129.5 -60.5q39 -28 66 -84t29 -133l6 -348h129l-39 -172h-293l-6 461q-2 125 -57 183t-166 58h-163l-121 -530h149l-39 -172h-492z M617 870h237q75 0 138.5 17t109.5 52t72 88t26 124q0 42 -14 77.5t-43.5 61t-75 39.5t-107.5 14h-235z" /> +<glyph unicode="S" horiz-adv-x="1278" d="M15 281l39 159h272l-18 -74q-2 -17 -2 -32q0 -84 65 -129q77 -53 223 -53q75 0 138 21t108.5 58.5t71.5 90t26 114.5q0 48 -17 83t-46.5 60.5t-69 44t-84.5 33.5l-174 56q-136 43 -206 128t-70 218q0 102 39 189.5t113.5 152t181 101t241.5 36.5q85 0 156 -19t125.5 -53 t92 -82t54.5 -106h101l-39 -160h-260l4 19q5 22 5 43q1 28 -9 51q-16 41 -52.5 69.5t-87.5 43t-108 14.5q-83 0 -148.5 -22t-110.5 -60t-69 -88.5t-24 -106.5q0 -50 19 -81t48 -51t64.5 -32t68.5 -24l187 -68q72 -24 126 -57t90 -76.5t54 -99t18 -125.5q0 -111 -43 -203 t-120.5 -157.5t-186.5 -101.5t-241 -36q-119 0 -201.5 25.5t-135.5 69t-79.5 99.5t-33.5 118h-95z" /> +<glyph unicode="T" horiz-adv-x="1362" d="M135 1116l92 400h1352l-93 -400h-204l53 236h-368l-270 -1180h142l-39 -172h-491l39 172h140l272 1180h-367l-53 -236h-205z" /> +<glyph unicode="U" horiz-adv-x="1581" d="M202 455q0 45 6 89.5t17 94.5l162 704h-144l39 173h492l-39 -173h-140l-161 -704q-8 -35 -14.5 -74.5t-6.5 -89.5v-6q0 -53 17 -103q18 -54 56 -96t97 -68t141 -26q83 0 153.5 23.5t127.5 78t100.5 143t73.5 218.5l162 704h-152l39 173h492l-39 -173h-133l-166 -722 q-39 -171 -103.5 -293.5t-150.5 -201t-192 -115t-230 -36.5q-109 0 -202.5 32.5t-161.5 94.5q-66 61 -104 150q-36 84 -36 192v11z" /> +<glyph unicode="V" horiz-adv-x="1470" d="M175 1343l39 173h491l-39 -173h-140l99 -1169l645 1169h-135l39 173h492l-39 -173h-133l-746 -1343h-305l-129 1343h-139z" /> +<glyph unicode="W" horiz-adv-x="2271" d="M175 1343l39 173h491l-39 -173h-132l69 -1148l659 1321h213l49 -1321l605 1148h-152l39 173h491l-39 -173h-138l-703 -1343h-285l-53 1171l-586 -1171h-285l-89 1343h-154z" /> +<glyph unicode="X" horiz-adv-x="1487" d="M-65 0l39 172h121l590 621l-268 550h-146l41 173h491l-41 -173h-130l193 -402l382 402h-133l41 173h491l-41 -173h-104l-551 -579l284 -592h150l-39 -172h-491l38 172h137l-218 446l-424 -446h118l-39 -172h-491z" /> +<glyph unicode="Y" horiz-adv-x="1323" d="M175 1343l39 173h491l-39 -173h-122l175 -473l411 473h-122l39 173h492l-39 -173h-123l-586 -656l-120 -515h141l-39 -172h-492l39 172h141l120 519l-259 652h-147z" /> +<glyph unicode="Z" horiz-adv-x="1298" d="M-25 0l51 231l1135 1108h-660l-59 -258h-207l100 435h1102l-47 -218l-1152 -1120h681l57 252h207l-98 -430h-1110z" /> +<glyph unicode="[" horiz-adv-x="762" d="M22 -213l444 1933h424l-34 -151h-220l-374 -1630h219l-35 -152h-424z" /> +<glyph unicode="\" horiz-adv-x="700" d="M101 1581h162l334 -1606h-162z" /> +<glyph unicode="]" horiz-adv-x="762" d="M-75 -213l35 152h219l375 1630h-220l35 151h424l-444 -1933h-424z" /> +<glyph unicode="^" horiz-adv-x="1229" d="M81 725l589 791h111l225 -791h-139l-167 627l-466 -627h-153z" /> +<glyph unicode="_" horiz-adv-x="1049" d="M-117 -256l24 102h1024l-24 -102h-1024z" /> +<glyph unicode="`" horiz-adv-x="590" d="M100 1460v17h248l184 -299h-145z" /> +<glyph unicode="a" horiz-adv-x="1319" d="M105 406q0 145 51 266t138.5 208t204 135t247.5 48q75 0 141 -22.5t108 -58.5l13 54h201l-200 -864h161l-39 -172h-363l16 70q-67 -45 -134.5 -66.5t-139.5 -21.5q-85 0 -159 33t-128.5 90t-86 134.5t-31.5 166.5zM312 426q0 -64 18 -114.5t50 -85.5t77.5 -53.5 t99.5 -18.5q37 0 75.5 9t73.5 23t66 32.5t55 38.5l129 554q-26 33 -81 56.5t-144 23.5q-77 0 -152 -31.5t-134 -91t-96 -146t-37 -196.5z" /> +<glyph unicode="b" horiz-adv-x="1272" d="M85 0l318 1384h-192l41 172h392l-135 -585q134 92 278 92q85 0 159 -33t128.5 -90t86 -134.5t31.5 -166.5q0 -97 -23 -183t-65 -159t-101 -131.5t-130 -99t-152.5 -62.5t-169.5 -22q-77 0 -143 23t-108 59l-15 -64h-200zM339 235q26 -33 81.5 -57t145.5 -24 q77 0 152 31.5t134.5 91t96.5 145.5t37 196q0 64 -18 114.5t-50.5 85.5t-78 54t-99.5 19q-71 0 -142.5 -28.5t-131.5 -78.5z" /> +<glyph unicode="c" horiz-adv-x="1135" d="M95 449q0 136 51 249.5t134 195.5t187.5 127.5t211.5 45.5q50 0 100 -9.5t96 -30t86 -51.5t72 -73h125l-28 -172h-209q-16 40 -42.5 70t-60.5 50t-74 30t-83 10q-55 0 -117.5 -28.5t-116 -83.5t-88.5 -135t-35 -183q0 -75 22 -132.5t59 -96.5t86 -58.5t104 -19.5 q40 0 75 6.5t66.5 22t61.5 40.5t59 62l145 -109q-39 -55 -88 -93.5t-103 -62.5t-111.5 -34.5t-113.5 -10.5q-102 0 -188.5 36.5t-149 100.5t-98 150.5t-35.5 186.5z" /> +<glyph unicode="d" horiz-adv-x="1285" d="M75 426q0 138 49 255t133.5 203t197 134.5t240.5 48.5q80 0 149 -23t120 -63l93 403h-175l41 172h374l-319 -1384h172l-39 -172h-373l15 67q-57 -39 -119.5 -63t-134.5 -24q-89 0 -166 34t-134.5 94t-90.5 141.5t-33 176.5zM282 444q0 -67 19.5 -120.5t54.5 -91t83.5 -58 t106.5 -20.5q63 0 130.5 28t122.5 82l124 537q-37 43 -96 66.5t-144 23.5q-75 0 -147.5 -31.5t-128.5 -89.5t-90.5 -141t-34.5 -185z" /> +<glyph unicode="e" horiz-adv-x="1171" d="M115 444q0 129 45.5 242.5t126 198t190.5 133.5t238 49q99 0 176.5 -33.5t131.5 -88.5t82 -127t28 -148q0 -51 -5.5 -98.5t-13.5 -88.5h-796q-1 -14 -2 -24t-1 -19q0 -63 20.5 -117t57 -93.5t87 -62t110.5 -22.5q80 0 152.5 32.5t121.5 94.5l148 -108q-34 -45 -81 -81 t-104 -61.5t-121.5 -39t-131.5 -13.5q-96 0 -179.5 32t-146 93t-98 149.5t-35.5 200.5zM350 645h590v7q0 58 -16 102q-18 48 -51.5 79.5t-80.5 47.5t-104 16q-60 0 -112.5 -19t-95.5 -53t-76 -80t-54 -100z" /> +<glyph unicode="f" horiz-adv-x="811" d="M35 -471l305 1335h-213l41 172h212l42 183q22 96 62 164t94.5 111t122.5 63t147 20q48 0 88.5 -6t73.5 -15t59 -19.5t44 -20.5l-103 -154q-26 17 -71.5 30t-98.5 13q-80 0 -136 -44.5t-81 -152.5l-40 -172h282l-41 -172h-280l-306 -1335h-203z" /> +<glyph unicode="g" horiz-adv-x="1249" d="M-37 -322l129 146q24 -26 58 -47.5t75 -37.5t86.5 -25t92.5 -9q72 0 131 15.5t105.5 54t81 104t61.5 185.5q-63 -44 -129.5 -63t-143.5 -19q-85 0 -159 33t-128.5 90t-86 134.5t-31.5 166.5q0 145 51 266t138.5 208t204 135t247.5 48q75 0 141 -22.5t108 -58.5l13 54h203 l-238 -1024q-30 -130 -80 -221.5t-122 -149.5t-167.5 -85t-216.5 -27q-55 0 -114 9t-115.5 27.5t-106.5 46.5t-88 66zM312 426q0 -64 18 -114.5t50 -85.5t77.5 -53.5t99.5 -18.5q78 0 146 28t125 76l128 552q-26 33 -81 57t-144 24q-77 0 -152 -31.5t-134 -91t-96 -146 t-37 -196.5z" /> +<glyph unicode="h" horiz-adv-x="1307" d="M105 0l318 1384h-200l41 172h402l-145 -626q73 57 156 91t171 34q80 0 144.5 -24t105 -73t54.5 -122q5 -28 5 -59q0 -51 -14 -111l-114 -494h147l-39 -172h-350l149 641q11 44 11 81q1 60 -29 97q-46 60 -156 60q-67 0 -139 -29t-138 -77l-178 -773h-202z" /> +<glyph unicode="i" horiz-adv-x="725" d="M145 0l200 864h-186l41 172h387l-200 -864h166l-39 -172h-369zM391 1401q0 27 10.5 51t28.5 41.5t42 28t52 10.5q27 0 51 -10.5t41.5 -28t28 -41.5t10.5 -51t-10.5 -51.5t-28 -43t-41.5 -29.5t-51 -11q-28 0 -52 11t-42 29.5t-28.5 43t-10.5 51.5z" /> +<glyph unicode="j" horiz-adv-x="668" d="M-110 -471l16 145q90 13 146 83t82 186l214 921h-204l41 172h405l-258 -1112q-21 -91 -61 -163.5t-97 -123t-128.5 -78.5t-155.5 -30zM396 1401q0 27 10.5 51t28.5 41.5t42 28t52 10.5q27 0 51 -10.5t41.5 -28t28 -41.5t10.5 -51t-10.5 -51.5t-28 -43t-41.5 -29.5 t-51 -11q-28 0 -52 11t-42 29.5t-28.5 43t-10.5 51.5z" /> +<glyph unicode="k" d="M105 0l318 1384h-185l41 172h387l-223 -964h112l340 288l37 156h336l-41 -172h-107l-389 -329l250 -365h125l-39 -170h-219l-311 469h-122l-108 -469h-202z" /> +<glyph unicode="l" horiz-adv-x="653" d="M105 0l318 1384h-200l41 172h402l-320 -1384h172l-39 -172h-374z" /> +<glyph unicode="m" horiz-adv-x="2100" d="M145 0l200 864h-194l41 172h387l-25 -106q71 59 155.5 92t178.5 33q106 0 183 -43t109 -130q37 38 81 69.5t93.5 54.5t104 36t111.5 13q80 0 144.5 -24t105.5 -73t54 -122q5 -27 5 -58q0 -51 -14 -112l-114 -494h149l-39 -172h-352l149 641q11 45 11 81q0 60 -29 97 q-46 60 -156 60q-78 0 -148 -33.5t-133 -92.5l-173 -753h-203l149 641q11 45 11 81q0 60 -29 97q-46 60 -156 60q-78 0 -148 -33.5t-133 -93.5l-173 -752h-203z" /> +<glyph unicode="n" horiz-adv-x="1368" d="M145 0l200 864h-198l41 172h391l-25 -106q71 59 155.5 92t178.5 33q80 0 144.5 -24t105.5 -73t54 -122q5 -27 5 -58q0 -51 -14 -112l-114 -494h147l-39 -172h-350l149 641q11 45 11 81q0 60 -29 97q-46 60 -156 60q-78 0 -148 -33.5t-133 -93.5l-173 -752h-203z" /> +<glyph unicode="o" d="M75 449q0 86 21.5 165t61 148t95 125t122.5 96t143.5 62t158.5 22q103 0 191 -36.5t152 -100t100.5 -149t36.5 -183.5q0 -87 -22 -167t-61.5 -149t-94.5 -126t-122.5 -97t-144.5 -62t-160 -22q-104 0 -191 36.5t-151 100.5t-99.5 150.5t-35.5 186.5zM284 463 q0 -70 20.5 -127.5t57.5 -98t89 -63t114 -22.5q73 0 142.5 32t122.5 89t85.5 137t32.5 176q0 70 -21.5 126t-59.5 96t-89.5 61.5t-112.5 21.5q-74 0 -142.5 -31.5t-121.5 -88t-85 -135.5t-32 -173z" /> +<glyph unicode="p" horiz-adv-x="1333" d="M35 -471l311 1335h-198l41 172h393l-14 -68q69 48 138 71.5t144 23.5q85 0 159.5 -33t129 -90t86 -134.5t31.5 -166.5q0 -145 -51 -266t-138.5 -208t-204 -135t-247.5 -48q-76 0 -142.5 22.5t-109.5 58.5l-83 -362h171l-39 -172h-377zM403 236q26 -33 80.5 -57.5 t145.5 -24.5q77 0 152 31.5t134.5 91t96.5 145.5t37 196q0 64 -18 114.5t-50.5 85.5t-77.5 54t-100 19q-70 0 -141.5 -28.5t-131.5 -77.5z" /> +<glyph unicode="q" horiz-adv-x="1246" d="M75 406q0 145 51 266t138.5 208t204 135t247.5 48q75 0 140.5 -22.5t108.5 -57.5l15 53h197l-309 -1335h182l-39 -172h-381l124 541q-67 -45 -134.5 -66.5t-139.5 -21.5q-85 0 -159 33t-128.5 90t-86 134.5t-31.5 166.5zM282 426q0 -64 18 -114.5t50 -85.5t77.5 -53.5 t99.5 -18.5q69 0 140 27.5t130 75.5l127 555q-26 32 -80.5 55.5t-142.5 23.5q-77 0 -152 -31.5t-134 -91t-96 -146t-37 -196.5z" /> +<glyph unicode="r" horiz-adv-x="1053" d="M145 0l200 864h-198l41 172h391l-33 -142q28 32 60 59.5t67.5 47.5t74 31.5t77.5 11.5q36 0 62 -1t55.5 -3.5t81.5 -9.5l-66 -280h-203l29 122q-97 0 -165 -49.5t-112 -130.5l-120 -520h172l-39 -172h-375z" /> +<glyph unicode="s" horiz-adv-x="1012" d="M-15 115l41 172h211q-1 -10 -1 -19q0 -28 11 -50q15 -30 43 -50.5t66.5 -30.5t81.5 -10t80.5 11t65.5 32t44.5 52t16.5 71q0 38 -27 69.5t-84 51.5l-184 67q-89 35 -137 102.5t-48 151.5q0 74 26 135t77 105t128 68t179 24q59 0 109 -11.5t89 -31.5t67 -46.5t45 -57.5 h112l-41 -172h-207q-1 39 -15.5 69t-40 50.5t-60 31t-74.5 10.5t-76 -9.5t-63 -28.5t-42.5 -46t-15.5 -61q0 -40 25.5 -66.5t80.5 -48.5l193 -69q88 -32 134 -99.5t46 -163.5q0 -86 -31.5 -151t-87.5 -109t-133.5 -66t-169.5 -22q-56 0 -107 9t-94.5 27.5t-76 46t-50.5 63.5 h-106z" /> +<glyph unicode="t" horiz-adv-x="778" d="M145 864l41 172h173l61 248l211 86l-79 -334h218l-41 -172h-218l-132 -559q-5 -20 -9.5 -40.5t-4.5 -43.5q0 -45 24.5 -63.5t77.5 -18.5q57 0 137 33l17 -143q-53 -25 -102 -39.5t-109 -14.5q-63 0 -115 15.5t-86 51.5q-34 34 -45 92q-4 21 -4 46q0 43 12 96l144 588 h-171z" /> +<glyph unicode="u" horiz-adv-x="1290" d="M135 864l41 172h340l-123 -526q-23 -97 -23 -167q0 -64 20 -106q40 -87 171 -87q58 0 102.5 19.5t81 54.5t61.5 74l132 566h-136l41 172h336l-200 -864h155l-39 -172h-348l24 105q-32 -33 -69 -56.5t-75.5 -38t-76 -21.5t-69.5 -7q-68 0 -128.5 19.5t-101.5 57.5 q-25 25 -46.5 58.5t-33.5 80.5q-11 43 -11 100v9q1 62 20 144l95 413h-140z" /> +<glyph unicode="v" horiz-adv-x="1155" d="M95 864l40 172h379l-41 -172h-79l62 -639l407 639h-84l41 172h378l-41 -172h-79l-594 -880h-176l-116 880h-97z" /> +<glyph unicode="w" horiz-adv-x="1649" d="M95 864l41 172h379l-41 -172h-80l33 -624l416 796h192l41 -796l334 624h-96l41 172h379l-41 -172h-90l-482 -880h-196l-37 794h-4l-414 -794h-197l-74 880h-104z" /> +<glyph unicode="x" horiz-adv-x="1137" d="M-35 0l39 172h85l389 365l-227 327h-108l41 172h379l-41 -172h-66l137 -222l225 222h-73l41 172h379l-41 -172h-74l-374 -341l234 -351h95l-39 -172h-379l39 172h75l-146 238l-237 -238h64l-38 -172h-379z" /> +<glyph unicode="y" horiz-adv-x="1165" d="M-10 -471l43 172h101l185 290l-114 873h-98l41 172h379l-41 -172h-79l61 -639l408 639h-85l41 172h379l-41 -172h-87l-741 -1163h101l-43 -172h-410z" /> +<glyph unicode="z" horiz-adv-x="995" d="M-15 0l25 117l718 760h-337l-35 -148h-197l72 307h790l-26 -121l-714 -755h366l41 178h196l-78 -338h-821z" /> +<glyph unicode="{" horiz-adv-x="713" d="M34 670q8 32 15.5 63.5t15.5 63.5q28 0 53.5 10.5t48.5 29t43 43.5t36 54.5t28 62.5t20 66q75 326 86 373q15 63 44 112t66.5 83t79 51.5t81.5 17.5h68.5h68.5q-8 -32 -14.5 -63.5t-14.5 -63.5h-34.5h-34.5q-27 0 -48 -13.5t-38 -39t-30 -62.5t-24 -84 q-20 -88 -39.5 -174t-39.5 -174q-14 -62 -38.5 -110t-56 -84t-67.5 -60t-74 -37q-1 -1 -1 -2t-1 -2q19 -8 36 -20t30.5 -27.5t23.5 -36t16 -44.5q8 -33 6.5 -73t-12.5 -90q-20 -88 -40 -174t-40 -174q-11 -48 -14.5 -84t1.5 -62q3 -13 8 -22.5t12.5 -16t18 -10t24.5 -3.5 h34.5h34.5q-7 -32 -14 -63.5t-14 -63.5h-34.5h-34.5h-34.5h-34.5q-39 0 -73 17.5t-56.5 51.5t-29.5 83t8 112l86 372q14 60 12 117t-24 95q-5 8 -10.5 15.5t-12.5 13.5t-15 11t-17 8.5t-19 5t-21 1.5z" /> +<glyph unicode="|" horiz-adv-x="519" d="M-68 -270l461 1996h176l-461 -1996h-176z" /> +<glyph unicode="}" horiz-adv-x="734" d="M-70 -233q8 32 14.5 63.5t14.5 63.5h34.5h34.5q27 0 48 13.5t38 39t30 62t24 83.5q20 88 40 174t40 174q14 61 38.5 109.5t55 84.5t67 60t74.5 37q1 1 1 2t1 2q-20 8 -36.5 20t-30 27.5t-23.5 36t-16 44.5q-8 33 -7 73t13 90q21 88 40.5 174t39.5 174q10 47 14 84 t-1.5 62.5t-20.5 39t-42 13.5h-34.5h-34.5q7 32 14 63.5t14 63.5h34.5h34.5h34.5h34.5q33 0 62 -13.5t50.5 -39t34 -62.5t12.5 -84q0 -9 -3 -28.5t-12 -60.5t-11 -50l-68 -299q-8 -33 -10.5 -66t0 -62.5t11 -54.5t23 -43.5t35 -29t48.5 -10.5q-8 -32 -15.5 -63.5 t-15.5 -63.5q-28 0 -54 -10.5t-48.5 -29t-42.5 -44t-36 -55t-28 -62.5t-20 -66q-11 -47 -42.5 -186.5t-43.5 -185.5q-15 -63 -44 -112t-66.5 -83t-79.5 -51.5t-81 -17.5h-68.5h-68.5z" /> +<glyph unicode="~" horiz-adv-x="1229" d="M141 483q45 84 106 130t150 46q58 0 119.5 -22.5t119.5 -49t109 -49t89 -22.5q43 0 86.5 34.5t93.5 117.5l73 -115q-45 -84 -105.5 -130t-150.5 -46q-39 0 -79 10.5t-80.5 26.5t-79 34.5t-74 34.5t-67 26.5t-56.5 10.5q-43 0 -86.5 -34t-93.5 -117z" /> +<glyph unicode="¡" horiz-adv-x="924" d="M34 -528l312 1167h178l-230 -1167h-260zM346 936q0 27 10.5 51t28.5 41.5t42 28t52 10.5q27 0 51 -10.5t41.5 -28t28 -41.5t10.5 -51t-10.5 -51.5t-28 -43t-41.5 -29.5t-51 -11q-28 0 -52 11t-42 29.5t-28.5 43t-10.5 51.5z" /> +<glyph unicode="¢" horiz-adv-x="1135" d="M106 449q0 136 51 249.5t134 195.5t178 123.5t184 47.5l57 246h197l-62 -268q77 -26 122 -62t77 -78h125l-29 -172h-209q-16 40 -42.5 70t-60.5 50t-74 30t-83 10q-36 0 -76.5 -13t-80 -38t-75.5 -61.5t-63.5 -84.5t-44 -106.5t-16.5 -126.5q0 -75 22 -132.5t59 -96.5 t86 -58.5t103 -19.5q40 0 75 6.5t66.5 22t61.5 40.5t59 62l146 -109q-39 -55 -88 -93.5t-103.5 -62.5t-106 -33.5t-97.5 -11.5l-50 -217h-196l57 245q-100 38 -166.5 105.5t-101.5 154t-35 186.5z" /> +<glyph unicode="£" horiz-adv-x="1006" d="M-68 0l39 168h110q69 35 117 83.5t76.5 106t38 123t8 97t-10.5 79.5h-253l33 146h199q-6 43 -9.5 86.5t-3.5 87.5q0 96 24 175.5t68.5 139.5t108 99t123.5 51t116 12q75 0 134.5 -27t96 -74t48 -112t-9.5 -141l-166 -10q8 38 5.5 74t-16.5 64t-40 45t-64 17 q-66 0 -111 -24.5t-72 -65t-38 -93.5t-9 -110q1 -38 3.5 -90.5t7.5 -103.5h278l-32 -146h-235q3 -42 5 -80.5t2 -70.5q0 -99 -56.5 -187.5t-159.5 -150.5h483l-39 -168h-799z" /> +<glyph unicode="¤" horiz-adv-x="1305" d="M75 317l205 179q-22 42 -33.5 88t-11.5 96q0 103 42 192.5t113 158.5l-126 177l143 117l133 -190q56 27 116 42t122 15t116.5 -18t100.5 -50l190 166l113 -131l-188 -166q23 -42 35 -88.5t12 -97.5q0 -99 -39 -185t-105 -154l121 -169l-147 -113l-123 172 q-59 -30 -122.5 -46.5t-129.5 -16.5q-62 0 -117 18t-101 51l-206 -180zM411 694q0 -48 16 -89t45 -72t70 -48.5t92 -17.5q66 0 129.5 27t113 72.5t80 106t30.5 128.5q0 48 -16 89t-45.5 72t-71 48.5t-91.5 17.5q-67 0 -130 -27t-112.5 -72.5t-79.5 -106.5t-30 -128z" /> +<glyph unicode="¥" horiz-adv-x="1384" d="M178 1343l39 173h491l-39 -173h-122l175 -473l411 473h-122l39 173h492l-39 -173h-123l-442 -495h163l-32 -141h-271l-34 -148h270l-33 -141h-270l-57 -246h141l-39 -172h-492l39 172h141l57 246h-270l33 141h270l33 148h-268l33 141h170l-197 495h-147z" /> +<glyph unicode="¦" horiz-adv-x="647" d="M-37 -268l172 749h176l-172 -749h-176zM249 979l174 750h177l-175 -750h-176z" /> +<glyph unicode="§" horiz-adv-x="1202" d="M-150 -190l37 165h260l-7 -37q-14 -69 4.5 -122.5t74.5 -80t123 -26.5q75 0 140.5 29t100.5 92t35 127q0 41 -14 71t-36.5 51.5t-50 35.5t-55.5 24l-149 54q-71 25 -130.5 73t-84.5 117t-25 143q0 131 70.5 225t201.5 146q-87 98 -87 240q0 91 32.5 166.5t95.5 130 t156 84.5t213 30q92 0 170 -24.5t133.5 -81t68.5 -129.5h89l-39 -166h-250l8 36q8 51 -19 99t-79.5 68t-105.5 20q-65 0 -114.5 -16t-83 -43.5t-50.5 -65t-17 -80.5q0 -36 13.5 -63t34.5 -47t48 -34.5t54 -25.5l158 -61q120 -47 187 -125t67 -197q0 -90 -32.5 -171.5 t-91.5 -136t-157 -92.5q86 -90 86 -226q0 -108 -39 -193t-107.5 -144t-162 -90.5t-203.5 -31.5q-109 0 -200.5 38.5t-132.5 108.5t-45 136h-93zM280 551q0 -50 20.5 -84t53 -53t104.5 -47l58 -23q69 2 124 20.5t93.5 51t59 76.5t20.5 96q0 40 -16 69t-42 49.5t-96 48.5 l-50 17q-81 -2 -142.5 -21t-103 -49.5t-62.5 -69.5t-21 -81z" /> +<glyph unicode="¨" horiz-adv-x="1200" d="M249 1360q0 26 10.5 49.5t28 41t41 28t49.5 10.5q25 0 48 -10.5t40 -28t27 -41t10 -49.5q0 -27 -10 -51t-27 -42.5t-40 -29t-48 -10.5q-26 0 -49.5 10.5t-41 29t-28 42.5t-10.5 51zM708 1360q0 26 10.5 49.5t28 41t41 28t49.5 10.5q25 0 47.5 -10.5t40 -28t27.5 -41 t10 -49.5q0 -27 -10 -51t-27.5 -42.5t-40 -29t-47.5 -10.5q-26 0 -49.5 10.5t-41 29t-28 42.5t-10.5 51z" /> +<glyph unicode="©" horiz-adv-x="1919" d="M102 831q0 118 30.5 227.5t86 204.5t133.5 173t173 133.5t204.5 86t228.5 30.5q118 0 228 -30.5t205.5 -86t174 -133.5t134.5 -173t86.5 -204.5t30.5 -227.5q0 -119 -30.5 -228.5t-86.5 -204.5t-134.5 -173t-174 -133.5t-205.5 -86t-228 -30.5q-119 0 -228.5 30.5 t-204.5 86t-173 133.5t-133.5 173t-86 204.5t-30.5 228.5zM283 831q0 -142 52.5 -265.5t144 -215t214.5 -144t264 -52.5t263.5 52.5t215 144t145 215t52.5 265.5q0 140 -52.5 269.5t-145 215.5t-215 138.5t-263.5 52.5t-264 -52.5t-214.5 -138.5t-144 -215.5t-52.5 -269.5z M477 834q0 104 39 195.5t107 160t159.5 108t196.5 39.5q58 0 109.5 -12.5t96 -33t81 -47t65.5 -54.5l-141 -131q-48 46 -100.5 67t-110.5 21q-64 0 -120 -24.5t-97.5 -67.5t-65.5 -100t-24 -121t24 -120t65.5 -98t97.5 -66t120 -24q56 0 108.5 22.5t83.5 57.5l134 -129 q-23 -30 -59 -56.5t-79 -46t-91.5 -31t-96.5 -11.5q-105 0 -196.5 39t-159.5 107t-107 159.5t-39 196.5z" /> +<glyph unicode="ª" horiz-adv-x="834" d="M116 1018q0 69 31 115.5t80.5 74.5t111.5 40t123 12q47 0 86 -4.5t68 -10.5l12 49q16 67 -20 98t-105 31q-65 0 -119.5 -13.5t-95.5 -33.5l-26 97q62 37 134 57t144 20q54 0 99 -11t77 -33.5t50 -58t18 -83.5q0 -15 -7.5 -54t-73.5 -323h81l-29 -131h-227l12 52 q-43 -35 -89 -52.5t-109 -17.5q-50 0 -91.5 14.5t-71.5 39t-46.5 57t-16.5 69.5zM262 1034q0 -38 30 -59t82 -21q56 0 106.5 18t84.5 49l31 136h-156q-36 0 -68.5 -8.5t-56.5 -24t-38.5 -38.5t-14.5 -52z" /> +<glyph unicode="«" horiz-adv-x="981" d="M55 567l319 391h197l-322 -413l131 -373h-186zM479 567l319 391h197l-322 -413l131 -373h-186z" /> +<glyph unicode="¬" horiz-adv-x="1382" d="M141 827l39 172h1093l-131 -567h-188l92 395h-905z" /> +<glyph unicode="­" horiz-adv-x="856" d="M137 496l40 172h571l-40 -172h-571z" /> +<glyph unicode="®" horiz-adv-x="1919" d="M102 831q0 118 30.5 227.5t86 204.5t133.5 173t173 133.5t204.5 86t228.5 30.5q118 0 228 -30.5t205.5 -86t174 -133.5t134.5 -173t86.5 -204.5t30.5 -227.5q0 -119 -30.5 -228.5t-86.5 -204.5t-134.5 -173t-174 -133.5t-205.5 -86t-228 -30.5q-119 0 -228.5 30.5 t-204.5 86t-173 133.5t-133.5 173t-86 204.5t-30.5 228.5zM283 831q0 -142 52.5 -265.5t144 -215t214.5 -144t264 -52.5t263.5 52.5t215 144t145 215t52.5 265.5q0 94 -52.5 246.5t-145 238.5t-215 138.5t-263.5 52.5t-264 -52.5t-214.5 -138.5t-144 -215.5t-52.5 -269.5z M551 1188v158h483q73 0 132 -21t100 -58t63.5 -87.5t22.5 -108.5q0 -49 -10 -87t-30.5 -67.5t-50.5 -51.5t-69 -39q31 -17 55.5 -52.5t36.5 -87.5l41 -168h82l2 -158h-256l-51 254q-14 84 -64 121t-129 37h-67v-254h92v-158h-379v158h98v670h-102zM842 928h143 q74 0 118 30.5t44 98.5q0 62 -41.5 96.5t-128.5 34.5h-135v-260z" /> +<glyph unicode="¯" horiz-adv-x="797" d="M39 1229v117h758v-117h-758z" /> +<glyph unicode="°" horiz-adv-x="682" d="M102 1497q0 49 19 92.5t51 76.5t75.5 52t92.5 19t92.5 -19t76.5 -52t52 -76.5t19 -92.5t-19 -92t-52 -75.5t-76.5 -51t-92.5 -18.5t-92.5 18.5t-75.5 51t-51 75.5t-19 92zM205 1497q0 -28 10.5 -52.5t29 -43t43 -29t52.5 -10.5t52.5 10.5t43.5 29t30 43t11 52.5t-11 52.5 t-30 43.5t-43.5 30t-52.5 11t-52.5 -11t-43 -30t-29 -43.5t-10.5 -52.5z" /> +<glyph unicode="±" horiz-adv-x="1105" d="M-96 0l39 172h1024l-39 -172h-1024zM43 589l43 182h419l78 344h183l-78 -344h422l-43 -182h-421l-88 -354h-182l87 354h-420z" /> +<glyph unicode="²" horiz-adv-x="609" d="M-27 842l22 102l338 277q27 21 49 40t37.5 37t24 37.5t8.5 42.5q0 32 -26 56t-72 24q-53 0 -91 -30t-51 -78h-124q12 52 38 94.5t62.5 72.5t81.5 46t96 16q46 0 86.5 -15t71 -40.5t48 -60t17.5 -74.5q0 -54 -22.5 -101.5t-83.5 -99.5l-278 -225h284l-29 -121h-487z" /> +<glyph unicode="³" horiz-adv-x="622" d="M14 1054h133q0 -99 107 -99q63 0 107 34t44 89q0 86 -106 86h-58l25 107h55q64 0 105 31t41 77q0 35 -27 60.5t-74 25.5q-110 0 -137 -98h-137q9 52 51 107.5t103 82.5t132 27q63 0 113 -25.5t78.5 -71.5t28.5 -98q0 -117 -131 -171q75 -41 75 -128q0 -63 -36 -124 t-107.5 -96.5t-157.5 -35.5q-58 0 -113 24t-84.5 71t-29.5 125z" /> +<glyph unicode="´" horiz-adv-x="645" d="M84 1178l213 299h240v-17l-299 -282h-154z" /> +<glyph unicode="¶" horiz-adv-x="1343" d="M178 1028q0 114 44 204.5t123.5 153.5t190 96.5t244.5 33.5h618l-41 -173h-94l-395 -1712h-187l395 1712h-223l-395 -1712h-186l247 1071q-79 6 -142 32.5t-107.5 69t-68 99.5t-23.5 125z" /> +<glyph unicode="·" horiz-adv-x="612" d="M174 666q0 26 10.5 49.5t28 41t41.5 28t51 10.5q26 0 49.5 -10.5t41 -28t28 -41t10.5 -49.5q0 -27 -10.5 -51.5t-28 -42.5t-41 -29t-49.5 -11q-27 0 -51 11t-41.5 29t-28 42.5t-10.5 51.5z" /> +<glyph unicode="¸" horiz-adv-x="940" d="M182 -303q55 1 99.5 19.5t78 48.5t55 70.5t29.5 86.5l150 -45q-18 -73 -56 -130.5t-90.5 -97t-117.5 -60.5t-137 -21z" /> +<glyph unicode="¹" horiz-adv-x="486" d="M75 840l25 116h84l103 436l-161 -75l35 143l244 119h61l-142 -623h81l-26 -116h-304z" /> +<glyph unicode="º" horiz-adv-x="772" d="M75 1153q0 91 35 167.5t94.5 132t137.5 87t165 31.5q69 0 127.5 -23t101 -63.5t67 -95t24.5 -117.5q0 -92 -32.5 -170t-90.5 -134.5t-137 -88t-172 -31.5q-69 0 -128 24.5t-101.5 66.5t-66.5 97t-24 117zM231 1163q0 -38 13.5 -71.5t37 -58t55 -38.5t68.5 -14 q54 0 102.5 20t85 56.5t58.5 88t22 114.5q0 40 -14 73t-38 55.5t-56.5 35t-69.5 12.5q-52 0 -100 -19t-84.5 -54.5t-58 -86t-21.5 -113.5z" /> +<glyph unicode="»" horiz-adv-x="981" d="M14 172l321 414l-131 372h187l139 -395l-320 -391h-196zM438 172l321 414l-131 372h187l139 -395l-320 -391h-196z" /> +<glyph unicode="¼" horiz-adv-x="2058" d="M157 -61l1634 1638h220l-1635 -1638h-219zM292 791l25 116h84l103 436l-161 -75l35 143l244 119h61l-142 -623h81l-26 -116h-304zM1264 196l23 108l387 457h147l-378 -455h183l38 164h135l-38 -164h112l-25 -110h-113l-45 -196h-135l45 196h-336z" /> +<glyph unicode="½" horiz-adv-x="1956" d="M157 -61l1634 1638h220l-1635 -1638h-219zM372 791l25 116h84l103 436l-161 -75l35 143l244 119h61l-142 -623h81l-26 -116h-304zM1197 0l22 102l338 277q27 21 49 40t37.5 37t24 37.5t8.5 42.5q0 32 -26 56t-72 24q-53 0 -91 -30t-51 -78h-124q12 52 38 94.5t62.5 72.5 t81.5 46t96 16q46 0 86.5 -15t71 -40.5t48 -60t17.5 -74.5q0 -54 -22.5 -101.5t-83.5 -99.5l-278 -225h284l-29 -121h-487z" /> +<glyph unicode="¾" horiz-adv-x="2213" d="M157 -61l1634 1638h220l-1635 -1638h-219zM168 1005h133q0 -99 107 -99q63 0 107 34t44 89q0 86 -106 86h-58l25 107h55q64 0 105 31t41 77q0 35 -27 60.5t-74 25.5q-110 0 -137 -98h-137q9 52 51 107.5t103 82.5t132 27q63 0 113 -25.5t78.5 -71.5t28.5 -98 q0 -117 -131 -171q75 -41 75 -128q0 -63 -36 -124t-107.5 -96.5t-157.5 -35.5q-58 0 -113 24t-84.5 71t-29.5 125zM1264 196l23 108l387 457h147l-378 -455h183l38 164h135l-38 -164h112l-25 -110h-113l-45 -196h-135l45 196h-336z" /> +<glyph unicode="¿" horiz-adv-x="1112" d="M-68 -193q0 72 19 130t55.5 107.5t90 93t122.5 85.5q49 29 87 51t68 44.5t53.5 47.5t42.5 60t35 82.5t31 114.5h199q-14 -70 -29 -123.5t-33 -95.5t-40 -75t-51 -62.5t-67 -57.5t-87 -59q-71 -45 -124.5 -80t-89 -70t-53.5 -74.5t-18 -93.5q0 -36 14 -67.5t40.5 -55.5 t64.5 -37.5t86 -13.5q55 0 101 18t81 50t60 76.5t38 97.5l207 -19q-23 -95 -70 -171t-113 -130t-149.5 -83t-179.5 -29q-95 0 -168 29.5t-122.5 77.5t-75 108.5t-25.5 123.5zM546 932q0 27 10.5 51.5t28 43t41.5 29.5t51 11q28 0 52 -11t42 -29.5t28.5 -43t10.5 -51.5 t-10.5 -51t-28.5 -41.5t-42 -28t-52 -10.5q-27 0 -51 10.5t-41.5 28t-28 41.5t-10.5 51z" /> +<glyph unicode="À" horiz-adv-x="1458" d="M-150 0l39 172h131l760 1344h323l158 -1344h150l-39 -172h-492l39 172h127l-37 342h-574l-191 -342h136l-38 -172h-492zM441 1940v17h248l184 -299h-145zM531 686h459l-75 688z" /> +<glyph unicode="Á" horiz-adv-x="1458" d="M-150 0l39 172h131l760 1344h323l158 -1344h150l-39 -172h-492l39 172h127l-37 342h-574l-191 -342h136l-38 -172h-492zM531 686h459l-75 688zM784 1658l213 299h240v-17l-299 -282h-154z" /> +<glyph unicode="Â" horiz-adv-x="1458" d="M-150 0l39 172h131l760 1344h323l158 -1344h150l-39 -172h-492l39 172h127l-37 342h-574l-191 -342h136l-38 -172h-492zM531 686h459l-75 688zM589 1651l297 273h111l151 -273h-170l-64 125l-119 -125h-206z" /> +<glyph unicode="Ã" horiz-adv-x="1458" d="M-150 0l39 172h131l760 1344h323l158 -1344h150l-39 -172h-492l39 172h127l-37 342h-574l-191 -342h136l-38 -172h-492zM507 1731q13 47 37 78.5t54 50.5t64.5 27t69.5 8q50 0 86.5 -16.5t68 -36t62.5 -35.5t70 -16q28 0 54.5 19t35.5 61l119 -35q-20 -85 -78 -131.5 t-139 -46.5q-56 0 -95 15.5t-71 33.5t-60 33.5t-61 15.5q-15 0 -30.5 -2t-30.5 -9.5t-27.5 -23t-19.5 -43.5zM531 686h459l-75 688z" /> +<glyph unicode="Ä" horiz-adv-x="1458" d="M-150 0l39 172h131l760 1344h323l158 -1344h150l-39 -172h-492l39 172h127l-37 342h-574l-191 -342h136l-38 -172h-492zM531 686h459l-75 688zM611 1840q0 26 10.5 49.5t28 41t41 28t49.5 10.5q25 0 48 -10.5t40 -28t27 -41t10 -49.5q0 -27 -10 -51t-27 -42.5t-40 -29 t-48 -10.5q-26 0 -49.5 10.5t-41 29t-28 42.5t-10.5 51zM1070 1840q0 26 10.5 49.5t28 41t41 28t49.5 10.5q25 0 47.5 -10.5t40 -28t27.5 -41t10 -49.5q0 -27 -10 -51t-27.5 -42.5t-40 -29t-47.5 -10.5q-26 0 -49.5 10.5t-41 29t-28 42.5t-10.5 51z" /> +<glyph unicode="Å" horiz-adv-x="1458" d="M-150 0l39 172h131l760 1344h323l158 -1344h150l-39 -172h-492l39 172h127l-37 342h-574l-191 -342h136l-38 -172h-492zM531 686h459l-75 688zM690 1822q0 52 20.5 99t55.5 81.5t81.5 55t98.5 20.5t99 -20.5t81.5 -55t55 -81.5t20.5 -99t-20.5 -98.5t-55 -81.5 t-81.5 -55.5t-99 -20.5t-98.5 20.5t-81.5 55.5t-55.5 81.5t-20.5 98.5zM842 1822q0 -21 8.5 -39.5t23 -33t33 -23t39.5 -8.5t40 8.5t33.5 23t23 33t8.5 39.5t-8.5 40t-23 33.5t-33.5 23t-40 8.5t-39.5 -8.5t-33 -23t-23 -33.5t-8.5 -40z" /> +<glyph unicode="Æ" horiz-adv-x="1991" d="M-170 0l38 172h127l990 1344h1101l-100 -433h-207l62 260h-541l-111 -485h447l-43 -172h-443l-118 -514h534l62 262h209l-101 -434h-1085l39 172h133l79 342h-412l-252 -342h122l-39 -172h-491zM617 686h325l148 642z" /> +<glyph unicode="Ç" horiz-adv-x="1468" d="M75 655q0 125 29.5 240t83.5 213.5t131 179t172.5 137.5t207 88t234.5 31q170 0 302.5 -68.5t217.5 -189.5h156l-41 -172h-276q-22 51 -58.5 94t-85 73.5t-108.5 47.5t-129 17q-132 0 -244 -53.5t-194 -145.5t-128 -214.5t-46 -260.5q0 -115 36 -207.5t96 -157t139 -99 t165 -34.5q151 0 265.5 62.5t201.5 187.5l192 -102q-58 -82 -129 -146.5t-156 -109t-184 -68t-213 -23.5q-137 0 -253.5 51.5t-201.5 142.5t-133.5 215.5t-48.5 270.5zM551 -303q55 1 99.5 19.5t78 48.5t55 70.5t29.5 86.5l150 -45q-18 -73 -56 -130.5t-90.5 -97 t-117.5 -60.5t-137 -21z" /> +<glyph unicode="È" horiz-adv-x="1415" d="M75 0l39 172h134l270 1171h-148l41 173h1100l-100 -433h-207l61 260h-540l-111 -485h446l-43 -172h-442l-118 -514h534l61 262h209l-100 -434h-1086zM628 1940v17h248l184 -299h-145z" /> +<glyph unicode="É" horiz-adv-x="1415" d="M75 0l39 172h134l270 1171h-148l41 173h1100l-100 -433h-207l61 260h-540l-111 -485h446l-43 -172h-442l-118 -514h534l61 262h209l-100 -434h-1086zM685 1658l213 299h240v-17l-299 -282h-154z" /> +<glyph unicode="Ê" horiz-adv-x="1415" d="M75 0l39 172h134l270 1171h-148l41 173h1100l-100 -433h-207l61 260h-540l-111 -485h446l-43 -172h-442l-118 -514h534l61 262h209l-100 -434h-1086zM666 1651l297 273h111l151 -273h-170l-64 125l-119 -125h-206z" /> +<glyph unicode="Ë" horiz-adv-x="1415" d="M75 0l39 172h134l270 1171h-148l41 173h1100l-100 -433h-207l61 260h-540l-111 -485h446l-43 -172h-442l-118 -514h534l61 262h209l-100 -434h-1086zM609 1840q0 26 10.5 49.5t28 41t41 28t49.5 10.5q25 0 48 -10.5t40 -28t27 -41t10 -49.5q0 -27 -10 -51t-27 -42.5 t-40 -29t-48 -10.5q-26 0 -49.5 10.5t-41 29t-28 42.5t-10.5 51zM1068 1840q0 26 10.5 49.5t28 41t41 28t49.5 10.5q25 0 47.5 -10.5t40 -28t27.5 -41t10 -49.5q0 -27 -10 -51t-27.5 -42.5t-40 -29t-47.5 -10.5q-26 0 -49.5 10.5t-41 29t-28 42.5t-10.5 51z" /> +<glyph unicode="Ì" horiz-adv-x="883" d="M75 0l39 172h144l270 1171h-143l40 173h492l-41 -173h-141l-268 -1171h139l-39 -172h-492zM252 1940v17h248l184 -299h-145z" /> +<glyph unicode="Í" horiz-adv-x="883" d="M75 0l39 172h144l270 1171h-143l40 173h492l-41 -173h-141l-268 -1171h139l-39 -172h-492zM419 1658l213 299h240v-17l-299 -282h-154z" /> +<glyph unicode="Î" horiz-adv-x="883" d="M75 0l39 172h144l270 1171h-143l40 173h492l-41 -173h-141l-268 -1171h139l-39 -172h-492zM365 1651l297 273h111l151 -273h-170l-64 125l-119 -125h-206z" /> +<glyph unicode="Ï" horiz-adv-x="883" d="M75 0l39 172h144l270 1171h-143l40 173h492l-41 -173h-141l-268 -1171h139l-39 -172h-492zM374 1883q0 26 10.5 49.5t28 41t41.5 28t51 10.5q26 0 49.5 -10.5t41 -28t28 -41t10.5 -49.5q0 -27 -10.5 -51t-28 -42.5t-41 -29t-49.5 -10.5q-27 0 -51 10.5t-41.5 29t-28 42.5 t-10.5 51zM724 1883q0 26 10.5 49.5t28 41t41.5 28t51 10.5q26 0 49.5 -10.5t41 -28t28 -41t10.5 -49.5q0 -27 -10.5 -51t-28 -42.5t-41 -29t-49.5 -10.5q-27 0 -51 10.5t-41.5 29t-28 42.5t-10.5 51z" /> +<glyph unicode="Ð" horiz-adv-x="1561" d="M75 0l39 172h132l119 518h-181l39 172h182l111 481h-131l40 173h549q133 0 240.5 -50.5t183 -138t116 -204.5t40.5 -249q0 -131 -31.5 -246.5t-89 -213t-139.5 -174t-182 -130t-216 -82t-243 -28.5h-578zM455 172h220q83 0 164 22t154.5 64t136 102t108 136t71.5 167 t26 195q0 97 -27.5 184.5t-78 154.5t-122 106.5t-159.5 39.5h-225l-110 -481h241l-39 -172h-242z" /> +<glyph unicode="Ñ" horiz-adv-x="1786" d="M75 0l39 172h133l271 1171h-150l41 173h416l408 -1246l246 1073h-148l39 173h491l-39 -173h-136l-308 -1343h-262l-413 1255l-249 -1083h152l-39 -172h-492zM700 1731q13 47 37 78.5t54 50.5t64.5 27t69.5 8q50 0 86.5 -16.5t68 -36t62.5 -35.5t70 -16q28 0 54.5 19 t35.5 61l119 -35q-20 -85 -78 -131.5t-139 -46.5q-56 0 -95 15.5t-71 33.5t-60 33.5t-61 15.5q-15 0 -30.5 -2t-30.5 -9.5t-27.5 -23t-19.5 -43.5z" /> +<glyph unicode="Ò" horiz-adv-x="1577" d="M75 655q0 131 31 247.5t87 215.5t134.5 178t174 134t204.5 84.5t227 29.5q128 0 243.5 -44.5t203 -129.5t139 -208.5t51.5 -280.5q0 -134 -30 -254t-84.5 -221t-132 -182t-173 -137.5t-206.5 -87t-232 -30.5q-128 0 -243.5 49t-203 138.5t-139 216t-51.5 282.5zM299 672 q0 -107 32.5 -198.5t90.5 -158.5t138 -105t175 -38q86 0 165 24t147 68.5t123.5 107t94.5 139.5t60.5 166t21.5 187q0 109 -32.5 197t-90.5 150.5t-138 96t-175 33.5q-124 0 -235 -50t-195 -139.5t-133 -212t-49 -267.5zM567 1940v17h248l184 -299h-145z" /> +<glyph unicode="Ó" horiz-adv-x="1577" d="M75 655q0 131 31 247.5t87 215.5t134.5 178t174 134t204.5 84.5t227 29.5q128 0 243.5 -44.5t203 -129.5t139 -208.5t51.5 -280.5q0 -134 -30 -254t-84.5 -221t-132 -182t-173 -137.5t-206.5 -87t-232 -30.5q-128 0 -243.5 49t-203 138.5t-139 216t-51.5 282.5zM299 672 q0 -107 32.5 -198.5t90.5 -158.5t138 -105t175 -38q86 0 165 24t147 68.5t123.5 107t94.5 139.5t60.5 166t21.5 187q0 109 -32.5 197t-90.5 150.5t-138 96t-175 33.5q-124 0 -235 -50t-195 -139.5t-133 -212t-49 -267.5zM690 1658l213 299h240v-17l-299 -282h-154z" /> +<glyph unicode="Ô" horiz-adv-x="1577" d="M75 655q0 131 31 247.5t87 215.5t134.5 178t174 134t204.5 84.5t227 29.5q128 0 243.5 -44.5t203 -129.5t139 -208.5t51.5 -280.5q0 -134 -30 -254t-84.5 -221t-132 -182t-173 -137.5t-206.5 -87t-232 -30.5q-128 0 -243.5 49t-203 138.5t-139 216t-51.5 282.5zM299 672 q0 -107 32.5 -198.5t90.5 -158.5t138 -105t175 -38q86 0 165 24t147 68.5t123.5 107t94.5 139.5t60.5 166t21.5 187q0 109 -32.5 197t-90.5 150.5t-138 96t-175 33.5q-124 0 -235 -50t-195 -139.5t-133 -212t-49 -267.5zM716 1651l297 273h111l151 -273h-170l-64 125 l-119 -125h-206z" /> +<glyph unicode="Õ" horiz-adv-x="1577" d="M75 655q0 131 31 247.5t87 215.5t134.5 178t174 134t204.5 84.5t227 29.5q128 0 243.5 -44.5t203 -129.5t139 -208.5t51.5 -280.5q0 -134 -30 -254t-84.5 -221t-132 -182t-173 -137.5t-206.5 -87t-232 -30.5q-128 0 -243.5 49t-203 138.5t-139 216t-51.5 282.5zM299 672 q0 -107 32.5 -198.5t90.5 -158.5t138 -105t175 -38q86 0 165 24t147 68.5t123.5 107t94.5 139.5t60.5 166t21.5 187q0 109 -32.5 197t-90.5 150.5t-138 96t-175 33.5q-124 0 -235 -50t-195 -139.5t-133 -212t-49 -267.5zM576 1731q13 47 37 78.5t54 50.5t64.5 27t69.5 8 q50 0 86.5 -16.5t68 -36t62.5 -35.5t70 -16q28 0 54.5 19t35.5 61l119 -35q-20 -85 -78 -131.5t-139 -46.5q-56 0 -95 15.5t-71 33.5t-60 33.5t-61 15.5q-15 0 -30.5 -2t-30.5 -9.5t-27.5 -23t-19.5 -43.5z" /> +<glyph unicode="Ö" horiz-adv-x="1577" d="M75 655q0 131 31 247.5t87 215.5t134.5 178t174 134t204.5 84.5t227 29.5q128 0 243.5 -44.5t203 -129.5t139 -208.5t51.5 -280.5q0 -134 -30 -254t-84.5 -221t-132 -182t-173 -137.5t-206.5 -87t-232 -30.5q-128 0 -243.5 49t-203 138.5t-139 216t-51.5 282.5zM299 672 q0 -107 32.5 -198.5t90.5 -158.5t138 -105t175 -38q86 0 165 24t147 68.5t123.5 107t94.5 139.5t60.5 166t21.5 187q0 109 -32.5 197t-90.5 150.5t-138 96t-175 33.5q-124 0 -235 -50t-195 -139.5t-133 -212t-49 -267.5zM614 1840q0 26 10.5 49.5t28 41t41 28t49.5 10.5 q25 0 48 -10.5t40 -28t27 -41t10 -49.5q0 -27 -10 -51t-27 -42.5t-40 -29t-48 -10.5q-26 0 -49.5 10.5t-41 29t-28 42.5t-10.5 51zM1073 1840q0 26 10.5 49.5t28 41t41 28t49.5 10.5q25 0 47.5 -10.5t40 -28t27.5 -41t10 -49.5q0 -27 -10 -51t-27.5 -42.5t-40 -29 t-47.5 -10.5q-26 0 -49.5 10.5t-41 29t-28 42.5t-10.5 51z" /> +<glyph unicode="×" horiz-adv-x="1221" d="M20 242l490 460l-256 426l160 117l244 -405l450 422l133 -140l-480 -452l273 -451l-164 -113l-257 425l-459 -431z" /> +<glyph unicode="Ø" horiz-adv-x="1577" d="M75 655q0 131 31 247.5t87 215.5t134.5 178t174 134t204.5 84.5t227 29.5q165 0 301 -71l46 63h228l-124 -171q84 -83 135 -205t51 -279q0 -134 -30 -254t-84.5 -221t-132 -182t-173 -137.5t-206.5 -87t-232 -30.5q-158 0 -293 72l-45 -61h-228l124 171 q-92 95 -143.5 221.5t-51.5 282.5zM299 672q0 -107 30 -192t76 -145l701 963q-100 43 -195 43q-124 0 -235 -50t-195 -139.5t-133 -212t-49 -267.5zM546 216q94 -44 189 -44q86 0 165 24t147 68.5t123.5 107t94.5 139.5t60.5 166t21.5 187q0 109 -29 186.5t-69 130.5z" /> +<glyph unicode="Ù" horiz-adv-x="1581" d="M202 455q0 45 6 89.5t17 94.5l162 704h-144l39 173h492l-39 -173h-140l-161 -704q-8 -35 -14.5 -74.5t-6.5 -89.5q-1 -55 17 -108.5t56 -96t97 -68.5t141 -26q83 0 153.5 23.5t127.5 78t100.5 143t73.5 218.5l162 704h-152l39 173h492l-39 -173h-133l-166 -722 q-39 -171 -103.5 -293.5t-150.5 -201t-192 -115t-230 -36.5q-109 0 -202.5 32.5t-161 94t-105 150.5t-35.5 203zM490 1940v17h248l184 -299h-145z" /> +<glyph unicode="Ú" horiz-adv-x="1581" d="M202 455q0 45 6 89.5t17 94.5l162 704h-144l39 173h492l-39 -173h-140l-161 -704q-8 -35 -14.5 -74.5t-6.5 -89.5q-1 -55 17 -108.5t56 -96t97 -68.5t141 -26q83 0 153.5 23.5t127.5 78t100.5 143t73.5 218.5l162 704h-152l39 173h492l-39 -173h-133l-166 -722 q-39 -171 -103.5 -293.5t-150.5 -201t-192 -115t-230 -36.5q-109 0 -202.5 32.5t-161 94t-105 150.5t-35.5 203zM756 1658l213 299h240v-17l-299 -282h-154z" /> +<glyph unicode="Û" horiz-adv-x="1581" d="M202 455q0 45 6 89.5t17 94.5l162 704h-144l39 173h492l-39 -173h-140l-161 -704q-8 -35 -14.5 -74.5t-6.5 -89.5q-1 -55 17 -108.5t56 -96t97 -68.5t141 -26q83 0 153.5 23.5t127.5 78t100.5 143t73.5 218.5l162 704h-152l39 173h492l-39 -173h-133l-166 -722 q-39 -171 -103.5 -293.5t-150.5 -201t-192 -115t-230 -36.5q-109 0 -202.5 32.5t-161 94t-105 150.5t-35.5 203zM689 1651l297 273h111l151 -273h-170l-64 125l-119 -125h-206z" /> +<glyph unicode="Ü" horiz-adv-x="1581" d="M202 455q0 45 6 89.5t17 94.5l162 704h-144l39 173h492l-39 -173h-140l-161 -704q-8 -35 -14.5 -74.5t-6.5 -89.5q-1 -55 17 -108.5t56 -96t97 -68.5t141 -26q83 0 153.5 23.5t127.5 78t100.5 143t73.5 218.5l162 704h-152l39 173h492l-39 -173h-133l-166 -722 q-39 -171 -103.5 -293.5t-150.5 -201t-192 -115t-230 -36.5q-109 0 -202.5 32.5t-161 94t-105 150.5t-35.5 203zM624 1883q0 26 10.5 49.5t28 41t41.5 28t51 10.5q26 0 49.5 -10.5t41 -28t28 -41t10.5 -49.5q0 -27 -10.5 -51t-28 -42.5t-41 -29t-49.5 -10.5q-27 0 -51 10.5 t-41.5 29t-28 42.5t-10.5 51zM1174 1883q0 26 10.5 49.5t28 41t41.5 28t51 10.5q26 0 49.5 -10.5t41 -28t28 -41t10.5 -49.5q0 -27 -10.5 -51t-28 -42.5t-41 -29t-49.5 -10.5q-27 0 -51 10.5t-41.5 29t-28 42.5t-10.5 51z" /> +<glyph unicode="Ý" horiz-adv-x="1323" d="M175 1343l39 173h491l-39 -173h-122l175 -473l411 473h-122l39 173h492l-39 -173h-123l-586 -656l-120 -515h141l-39 -172h-492l39 172h141l120 519l-259 652h-147zM628 1658l213 299h240v-17l-299 -282h-154z" /> +<glyph unicode="Þ" horiz-adv-x="1320" d="M75 0l39 172h144l270 1171h-143l40 173h492l-41 -173h-141l-31 -135h272q88 0 162.5 -23t128.5 -67.5t84.5 -108.5t30.5 -145q0 -104 -38.5 -191.5t-110 -151t-173 -99t-227.5 -35.5h-317l-49 -215h139l-39 -172h-492zM556 559h291q69 0 128 18.5t102.5 54.5t68.5 90 t25 126q0 85 -57 136.5t-181 51.5h-268z" /> +<glyph unicode="ß" horiz-adv-x="1348" d="M-48 0l39 172h195l233 1008q21 92 63.5 165.5t104 125t142 79t178.5 27.5q84 0 152.5 -27.5t117.5 -76t76 -114.5t27 -142q0 -63 -17.5 -113t-45 -89.5t-61.5 -69.5t-67 -54q34 -27 64 -61.5t52.5 -76t35 -89.5t12.5 -101q0 -128 -49 -233.5t-133 -180.5t-197 -116 t-240 -41q-20 0 -47 1.5t-47 4.5l43 184q20 -5 37 -6.5t37 -1.5q75 0 146 27.5t126.5 77t89 117t33.5 147.5q0 57 -20 104.5t-54 81t-79 52t-95 18.5h-80l44 186h75q45 0 87.5 15.5t75.5 44.5t53 69.5t20 91.5q0 40 -13.5 74t-39 58.5t-62 38.5t-82.5 14q-48 0 -91 -17.5 t-78 -48.5t-60 -74t-37 -94l-266 -1157h-398z" /> +<glyph unicode="à" horiz-adv-x="1319" d="M105 406q0 145 51 266t138.5 208t204 135t247.5 48q75 0 141 -22.5t108 -58.5l13 54h201l-200 -864h161l-39 -172h-363l16 70q-67 -45 -134.5 -66.5t-139.5 -21.5q-85 0 -159 33t-128.5 90t-86 134.5t-31.5 166.5zM312 426q0 -64 18 -114.5t50 -85.5t77.5 -53.5 t99.5 -18.5q37 0 75.5 9t73.5 23t66 32.5t55 38.5l129 554q-26 33 -81 56.5t-144 23.5q-77 0 -152 -31.5t-134 -91t-96 -146t-37 -196.5zM418 1460v17h248l184 -299h-145z" /> +<glyph unicode="á" horiz-adv-x="1319" d="M105 406q0 145 51 266t138.5 208t204 135t247.5 48q75 0 141 -22.5t108 -58.5l13 54h201l-200 -864h161l-39 -172h-363l16 70q-67 -45 -134.5 -66.5t-139.5 -21.5q-85 0 -159 33t-128.5 90t-86 134.5t-31.5 166.5zM312 426q0 -64 18 -114.5t50 -85.5t77.5 -53.5 t99.5 -18.5q37 0 75.5 9t73.5 23t66 32.5t55 38.5l129 554q-26 33 -81 56.5t-144 23.5q-77 0 -152 -31.5t-134 -91t-96 -146t-37 -196.5zM504 1178l213 299h240v-17l-299 -282h-154z" /> +<glyph unicode="â" horiz-adv-x="1319" d="M105 406q0 145 51 266t138.5 208t204 135t247.5 48q75 0 141 -22.5t108 -58.5l13 54h201l-200 -864h161l-39 -172h-363l16 70q-67 -45 -134.5 -66.5t-139.5 -21.5q-85 0 -159 33t-128.5 90t-86 134.5t-31.5 166.5zM312 426q0 -64 18 -114.5t50 -85.5t77.5 -53.5 t99.5 -18.5q37 0 75.5 9t73.5 23t66 32.5t55 38.5l129 554q-26 33 -81 56.5t-144 23.5q-77 0 -152 -31.5t-134 -91t-96 -146t-37 -196.5zM530 1171l297 273h111l151 -273h-170l-64 125l-119 -125h-206z" /> +<glyph unicode="ã" horiz-adv-x="1319" d="M105 406q0 145 51 266t138.5 208t204 135t247.5 48q75 0 141 -22.5t108 -58.5l13 54h201l-200 -864h161l-39 -172h-363l16 70q-67 -45 -134.5 -66.5t-139.5 -21.5q-85 0 -159 33t-128.5 90t-86 134.5t-31.5 166.5zM312 426q0 -64 18 -114.5t50 -85.5t77.5 -53.5 t99.5 -18.5q37 0 75.5 9t73.5 23t66 32.5t55 38.5l129 554q-26 33 -81 56.5t-144 23.5q-77 0 -152 -31.5t-134 -91t-96 -146t-37 -196.5zM367 1251q13 47 37 78.5t54 50.5t64.5 27t69.5 8q50 0 86.5 -16.5t68 -36t62.5 -35.5t70 -16q28 0 54.5 19t35.5 61l119 -35 q-20 -85 -78 -131.5t-139 -46.5q-56 0 -95 15.5t-71 33.5t-60 33.5t-61 15.5q-15 0 -30.5 -2t-30.5 -9.5t-27.5 -23t-19.5 -43.5z" /> +<glyph unicode="ä" horiz-adv-x="1319" d="M105 406q0 145 51 266t138.5 208t204 135t247.5 48q75 0 141 -22.5t108 -58.5l13 54h201l-200 -864h161l-39 -172h-363l16 70q-67 -45 -134.5 -66.5t-139.5 -21.5q-85 0 -159 33t-128.5 90t-86 134.5t-31.5 166.5zM312 426q0 -64 18 -114.5t50 -85.5t77.5 -53.5 t99.5 -18.5q37 0 75.5 9t73.5 23t66 32.5t55 38.5l129 554q-26 33 -81 56.5t-144 23.5q-77 0 -152 -31.5t-134 -91t-96 -146t-37 -196.5zM428 1360q0 26 10.5 49.5t28 41t41 28t49.5 10.5q25 0 48 -10.5t40 -28t27 -41t10 -49.5q0 -27 -10 -51t-27 -42.5t-40 -29t-48 -10.5 q-26 0 -49.5 10.5t-41 29t-28 42.5t-10.5 51zM887 1360q0 26 10.5 49.5t28 41t41 28t49.5 10.5q25 0 47.5 -10.5t40 -28t27.5 -41t10 -49.5q0 -27 -10 -51t-27.5 -42.5t-40 -29t-47.5 -10.5q-26 0 -49.5 10.5t-41 29t-28 42.5t-10.5 51z" /> +<glyph unicode="å" horiz-adv-x="1319" d="M105 406q0 145 51 266t138.5 208t204 135t247.5 48q75 0 141 -22.5t108 -58.5l13 54h201l-200 -864h161l-39 -172h-363l16 70q-67 -45 -134.5 -66.5t-139.5 -21.5q-85 0 -159 33t-128.5 90t-86 134.5t-31.5 166.5zM312 426q0 -64 18 -114.5t50 -85.5t77.5 -53.5 t99.5 -18.5q37 0 75.5 9t73.5 23t66 32.5t55 38.5l129 554q-26 33 -81 56.5t-144 23.5q-77 0 -152 -31.5t-134 -91t-96 -146t-37 -196.5zM500 1426q0 52 20.5 99t55.5 81.5t81.5 55t98.5 20.5t99 -20.5t81.5 -55t55 -81.5t20.5 -99t-20.5 -98.5t-55 -81.5t-81.5 -55.5 t-99 -20.5t-98.5 20.5t-81.5 55.5t-55.5 81.5t-20.5 98.5zM652 1426q0 -21 8.5 -39.5t23 -33t33 -23t39.5 -8.5t40 8.5t33.5 23t23 33t8.5 39.5t-8.5 40t-23 33.5t-33.5 23t-40 8.5t-39.5 -8.5t-33 -23t-23 -33.5t-8.5 -40z" /> +<glyph unicode="æ" horiz-adv-x="1772" d="M-7 246q0 74 24 129t64.5 95t93 66.5t109.5 42t114.5 21.5t108.5 6q68 0 119.5 -5.5t89.5 -15.5l23 95q13 55 6 95.5t-30 67t-61.5 39.5t-88.5 13q-47 0 -91.5 -6.5t-85 -17t-75 -24t-60.5 -28.5l-30 129q42 24 91 44.5t100.5 35t104 23t101.5 8.5q109 0 182.5 -33.5 t107.5 -105.5q78 69 177.5 108t214.5 39q99 0 176.5 -33.5t131.5 -88.5t82 -127t28 -148q0 -51 -5.5 -98.5t-13.5 -88.5h-796q-1 -14 -1.5 -24t-0.5 -19q0 -63 20.5 -117t56.5 -93.5t86.5 -62t110.5 -22.5q81 0 153 32.5t122 94.5l147 -108q-34 -45 -81 -81t-104 -61.5 t-121.5 -39t-131.5 -13.5q-64 0 -122.5 14.5t-109.5 42t-92.5 68t-71.5 92.5q-39 -53 -87.5 -93t-104 -67t-115.5 -41t-123 -14q-72 0 -134.5 16t-108.5 50t-72.5 85.5t-26.5 123.5zM182 272q0 -74 46.5 -109.5t125.5 -35.5q104 0 198 46.5t166 131.5q-8 32 -12 66.5 t-4 72.5q0 16 1 33h-230q-61 0 -114 -14t-92.5 -40t-62 -64.5t-22.5 -86.5zM937 645h590q1 62 -16.5 109.5t-51 79t-80.5 47.5t-104 16q-59 0 -111.5 -19t-96 -53t-76.5 -80t-54 -100z" /> +<glyph unicode="ç" horiz-adv-x="1135" d="M95 449q0 136 51 249.5t134 195.5t187.5 127.5t211.5 45.5q50 0 100 -9.5t96 -30t86 -51.5t72 -73h125l-28 -172h-209q-16 40 -42.5 70t-60.5 50t-74 30t-83 10q-55 0 -117.5 -28.5t-116 -83.5t-88.5 -135t-35 -183q0 -75 22 -132.5t59 -96.5t86 -58.5t104 -19.5 q40 0 75 6.5t66.5 22t61.5 40.5t59 62l145 -109q-39 -55 -88 -93.5t-103 -62.5t-111.5 -34.5t-113.5 -10.5q-102 0 -188.5 36.5t-149 100.5t-98 150.5t-35.5 186.5zM232 -303q55 1 99.5 19.5t78 48.5t55 70.5t29.5 86.5l150 -45q-18 -73 -56 -130.5t-90.5 -97t-117.5 -60.5 t-137 -21z" /> +<glyph unicode="è" horiz-adv-x="1171" d="M115 444q0 129 45.5 242.5t126 198t190.5 133.5t238 49q99 0 176.5 -33.5t131.5 -88.5t82 -127t28 -148q0 -51 -5.5 -98.5t-13.5 -88.5h-796q-1 -14 -2 -24t-1 -19q0 -63 20.5 -117t57 -93.5t87 -62t110.5 -22.5q80 0 152.5 32.5t121.5 94.5l148 -108q-34 -45 -81 -81 t-104 -61.5t-121.5 -39t-131.5 -13.5q-96 0 -179.5 32t-146 93t-98 149.5t-35.5 200.5zM313 1460v17h248l184 -299h-145zM350 645h590q1 62 -16.5 109.5t-51 79t-80.5 47.5t-104 16q-60 0 -112.5 -19t-95.5 -53t-76 -80t-54 -100z" /> +<glyph unicode="é" horiz-adv-x="1171" d="M115 444q0 129 45.5 242.5t126 198t190.5 133.5t238 49q99 0 176.5 -33.5t131.5 -88.5t82 -127t28 -148q0 -51 -5.5 -98.5t-13.5 -88.5h-796q-1 -14 -2 -24t-1 -19q0 -63 20.5 -117t57 -93.5t87 -62t110.5 -22.5q80 0 152.5 32.5t121.5 94.5l148 -108q-34 -45 -81 -81 t-104 -61.5t-121.5 -39t-131.5 -13.5q-96 0 -179.5 32t-146 93t-98 149.5t-35.5 200.5zM350 645h590q1 62 -16.5 109.5t-51 79t-80.5 47.5t-104 16q-60 0 -112.5 -19t-95.5 -53t-76 -80t-54 -100zM487 1178l213 299h240v-17l-299 -282h-154z" /> +<glyph unicode="ê" horiz-adv-x="1171" d="M115 444q0 129 45.5 242.5t126 198t190.5 133.5t238 49q99 0 176.5 -33.5t131.5 -88.5t82 -127t28 -148q0 -51 -5.5 -98.5t-13.5 -88.5h-796q-1 -14 -2 -24t-1 -19q0 -63 20.5 -117t57 -93.5t87 -62t110.5 -22.5q80 0 152.5 32.5t121.5 94.5l148 -108q-34 -45 -81 -81 t-104 -61.5t-121.5 -39t-131.5 -13.5q-96 0 -179.5 32t-146 93t-98 149.5t-35.5 200.5zM350 645h590q1 62 -16.5 109.5t-51 79t-80.5 47.5t-104 16q-60 0 -112.5 -19t-95.5 -53t-76 -80t-54 -100zM404 1171l297 273h111l151 -273h-170l-64 125l-119 -125h-206z" /> +<glyph unicode="ë" horiz-adv-x="1171" d="M115 444q0 129 45.5 242.5t126 198t190.5 133.5t238 49q99 0 176.5 -33.5t131.5 -88.5t82 -127t28 -148q0 -51 -5.5 -98.5t-13.5 -88.5h-796q-1 -14 -2 -24t-1 -19q0 -63 20.5 -117t57 -93.5t87 -62t110.5 -22.5q80 0 152.5 32.5t121.5 94.5l148 -108q-34 -45 -81 -81 t-104 -61.5t-121.5 -39t-131.5 -13.5q-96 0 -179.5 32t-146 93t-98 149.5t-35.5 200.5zM350 645h590q1 62 -16.5 109.5t-51 79t-80.5 47.5t-104 16q-60 0 -112.5 -19t-95.5 -53t-76 -80t-54 -100zM411 1360q0 26 10.5 49.5t28 41t41 28t49.5 10.5q25 0 48 -10.5t40 -28 t27 -41t10 -49.5q0 -27 -10 -51t-27 -42.5t-40 -29t-48 -10.5q-26 0 -49.5 10.5t-41 29t-28 42.5t-10.5 51zM870 1360q0 26 10.5 49.5t28 41t41 28t49.5 10.5q25 0 47.5 -10.5t40 -28t27.5 -41t10 -49.5q0 -27 -10 -51t-27.5 -42.5t-40 -29t-47.5 -10.5q-26 0 -49.5 10.5 t-41 29t-28 42.5t-10.5 51z" /> +<glyph unicode="ì" horiz-adv-x="698" d="M207 1460v17h248l184 -299h-145zM295 0l200 864h-186l41 172h387l-200 -864h166l-39 -172h-369z" /> +<glyph unicode="í" horiz-adv-x="698" d="M295 0l200 864h-186l41 172h387l-200 -864h166l-39 -172h-369zM364 1178l213 299h240v-17l-299 -282h-154z" /> +<glyph unicode="î" horiz-adv-x="698" d="M260 1171l297 273h111l151 -273h-170l-64 125l-119 -125h-206zM295 0l200 864h-186l41 172h387l-200 -864h166l-39 -172h-369z" /> +<glyph unicode="ï" horiz-adv-x="698" d="M295 0l200 864h-186l41 172h387l-200 -864h166l-39 -172h-369zM408 1403q0 26 10.5 49.5t28 41t41.5 28t51 10.5q26 0 49.5 -10.5t41 -28t28 -41t10.5 -49.5q0 -27 -10.5 -51t-28 -42.5t-41 -29t-49.5 -10.5q-27 0 -51 10.5t-41.5 29t-28 42.5t-10.5 51zM728 1403 q0 26 10.5 49.5t28 41t41.5 28t51 10.5q26 0 49.5 -10.5t41 -28t28 -41t10.5 -49.5q0 -27 -10.5 -51t-28 -42.5t-41 -29t-49.5 -10.5q-27 0 -51 10.5t-41.5 29t-28 42.5t-10.5 51z" /> +<glyph unicode="ð" d="M75 449q0 86 21.5 165t60.5 147.5t93.5 125t119.5 96.5t139 62t153 22q32 0 59 -3l-69 112l-169 -69l-66 159l143 59l-127 207h244l76 -128l156 64l66 -159l-133 -55l179 -298q36 -60 64.5 -119t46 -134.5t17.5 -150.5q0 -91 -47.5 -209.5t-141.5 -205.5t-208 -124.5 t-198 -37.5q-108 0 -196.5 36.5t-151 100.5t-97 150.5t-34.5 186.5zM284 463q0 -64 16.5 -120.5t50.5 -99t87 -67t127 -24.5q67 0 135.5 30t123.5 86t89.5 136.5t34.5 181.5q0 66 -15 115.5t-49.5 94.5t-93.5 70t-125 25q-80 0 -159.5 -44t-131 -115.5t-71 -143.5 t-19.5 -125z" /> +<glyph unicode="ñ" horiz-adv-x="1368" d="M145 0l200 864h-198l41 172h391l-25 -106q71 59 155.5 92t178.5 33q80 0 144.5 -24t105.5 -73t54 -122t-9 -170l-114 -494h147l-39 -172h-350l149 641q28 118 -18 178t-156 60q-78 0 -148 -33.5t-133 -93.5l-173 -752h-203zM366 1251q13 47 37 78.5t54 50.5t64.5 27 t69.5 8q50 0 86.5 -16.5t68 -36t62.5 -35.5t70 -16q28 0 54.5 19t35.5 61l119 -35q-20 -85 -78 -131.5t-139 -46.5q-56 0 -95 15.5t-71 33.5t-60 33.5t-61 15.5q-15 0 -30.5 -2t-30.5 -9.5t-27.5 -23t-19.5 -43.5z" /> +<glyph unicode="ò" d="M75 449q0 86 21.5 165t61 148t95 125t122.5 96t143.5 62t158.5 22q103 0 191 -36.5t152 -100t100.5 -149t36.5 -183.5q0 -87 -22 -167t-61.5 -149t-94.5 -126t-122.5 -97t-144.5 -62t-160 -22q-104 0 -191 36.5t-151 100.5t-99.5 150.5t-35.5 186.5zM284 463 q0 -70 20.5 -127.5t57.5 -98t89 -63t114 -22.5q73 0 142.5 32t122.5 89t85.5 137t32.5 176q0 70 -21.5 126t-59.5 96t-89.5 61.5t-112.5 21.5q-74 0 -142.5 -31.5t-121.5 -88t-85 -135.5t-32 -173zM374 1491v17h248l184 -299h-145z" /> +<glyph unicode="ó" d="M75 449q0 86 21.5 165t61 148t95 125t122.5 96t143.5 62t158.5 22q103 0 191 -36.5t152 -100t100.5 -149t36.5 -183.5q0 -87 -22 -167t-61.5 -149t-94.5 -126t-122.5 -97t-144.5 -62t-160 -22q-104 0 -191 36.5t-151 100.5t-99.5 150.5t-35.5 186.5zM284 463 q0 -70 20.5 -127.5t57.5 -98t89 -63t114 -22.5q73 0 142.5 32t122.5 89t85.5 137t32.5 176q0 70 -21.5 126t-59.5 96t-89.5 61.5t-112.5 21.5q-74 0 -142.5 -31.5t-121.5 -88t-85 -135.5t-32 -173zM453 1209l213 299h240v-17l-299 -282h-154z" /> +<glyph unicode="ô" d="M75 449q0 86 21.5 165t61 148t95 125t122.5 96t143.5 62t158.5 22q103 0 191 -36.5t152 -100t100.5 -149t36.5 -183.5q0 -87 -22 -167t-61.5 -149t-94.5 -126t-122.5 -97t-144.5 -62t-160 -22q-104 0 -191 36.5t-151 100.5t-99.5 150.5t-35.5 186.5zM284 463 q0 -70 20.5 -127.5t57.5 -98t89 -63t114 -22.5q73 0 142.5 32t122.5 89t85.5 137t32.5 176q0 70 -21.5 126t-59.5 96t-89.5 61.5t-112.5 21.5q-74 0 -142.5 -31.5t-121.5 -88t-85 -135.5t-32 -173zM399 1202l297 273h111l151 -273h-170l-64 125l-119 -125h-206z" /> +<glyph unicode="õ" d="M75 449q0 86 21.5 165t61 148t95 125t122.5 96t143.5 62t158.5 22q103 0 191 -36.5t152 -100t100.5 -149t36.5 -183.5q0 -87 -22 -167t-61.5 -149t-94.5 -126t-122.5 -97t-144.5 -62t-160 -22q-104 0 -191 36.5t-151 100.5t-99.5 150.5t-35.5 186.5zM284 463 q0 -70 20.5 -127.5t57.5 -98t89 -63t114 -22.5q73 0 142.5 32t122.5 89t85.5 137t32.5 176q0 70 -21.5 126t-59.5 96t-89.5 61.5t-112.5 21.5q-74 0 -142.5 -31.5t-121.5 -88t-85 -135.5t-32 -173zM340 1282q13 47 37 78.5t54 50.5t64.5 27t69.5 8q50 0 86.5 -16.5t68 -36 t62.5 -35.5t70 -16q28 0 54.5 19t35.5 61l119 -35q-20 -85 -78 -131.5t-139 -46.5q-56 0 -95 15.5t-71 33.5t-60 33.5t-61 15.5q-15 0 -30.5 -2t-30.5 -9.5t-27.5 -23t-19.5 -43.5z" /> +<glyph unicode="ö" d="M75 449q0 86 21.5 165t61 148t95 125t122.5 96t143.5 62t158.5 22q103 0 191 -36.5t152 -100t100.5 -149t36.5 -183.5q0 -87 -22 -167t-61.5 -149t-94.5 -126t-122.5 -97t-144.5 -62t-160 -22q-104 0 -191 36.5t-151 100.5t-99.5 150.5t-35.5 186.5zM284 463 q0 -70 20.5 -127.5t57.5 -98t89 -63t114 -22.5q73 0 142.5 32t122.5 89t85.5 137t32.5 176q0 70 -21.5 126t-59.5 96t-89.5 61.5t-112.5 21.5q-74 0 -142.5 -31.5t-121.5 -88t-85 -135.5t-32 -173zM377 1391q0 26 10.5 49.5t28 41t41 28t49.5 10.5q25 0 48 -10.5t40 -28 t27 -41t10 -49.5q0 -27 -10 -51t-27 -42.5t-40 -29t-48 -10.5q-26 0 -49.5 10.5t-41 29t-28 42.5t-10.5 51zM836 1391q0 26 10.5 49.5t28 41t41 28t49.5 10.5q25 0 47.5 -10.5t40 -28t27.5 -41t10 -49.5q0 -27 -10 -51t-27.5 -42.5t-40 -29t-47.5 -10.5q-26 0 -49.5 10.5 t-41 29t-28 42.5t-10.5 51z" /> +<glyph unicode="÷" horiz-adv-x="1310" d="M225 614l39 172h946l-39 -172h-946zM496 303q0 27 10.5 51t28.5 41.5t42 28t52 10.5q27 0 51 -10.5t41.5 -28t28 -41.5t10.5 -51t-10.5 -51.5t-28 -43t-41.5 -29.5t-51 -11q-28 0 -52 11t-42 29.5t-28.5 43t-10.5 51.5zM650 1089q0 27 10.5 51t28.5 41.5t42 28t52 10.5 q27 0 51 -10.5t41.5 -28t28 -41.5t10.5 -51t-10.5 -51.5t-28 -43t-41.5 -29.5t-51 -11q-28 0 -52 11t-42 29.5t-28.5 43t-10.5 51.5z" /> +<glyph unicode="ø" d="M-55 -30l209 209q-26 39 -52.5 104.5t-26.5 165.5q0 86 21.5 165t61 148t95 125t122.5 96t143.5 62t158.5 22q103 0 170.5 -28t107.5 -56l151 152h219l-258 -259q90 -117 90 -278q0 -87 -22 -167t-61.5 -149t-94.5 -126t-122.5 -97t-144.5 -62t-160 -22q-104 0 -175 29.5 t-116 62.5l-97 -97h-219zM284 463q0 -70 21 -131l514 515q-62 44 -154 44q-74 0 -142.5 -31.5t-121.5 -88t-85 -135.5t-32 -173zM397 204q79 -52 168 -52q73 0 142.5 32t122.5 89t85.5 137t32.5 176q0 70 -29 142z" /> +<glyph unicode="ù" horiz-adv-x="1290" d="M135 864l41 172h340l-123 -526q-44 -186 -3.5 -273t171.5 -87q58 0 102.5 19.5t81 54.5t61.5 74l132 566h-136l41 172h336l-200 -864h155l-39 -172h-348l24 105q-32 -33 -69 -56.5t-75.5 -38t-76 -21.5t-69.5 -7q-68 0 -128.5 19.5t-101.5 57.5q-25 25 -46.5 58.5 t-33.5 80.5t-11 109t20 144l95 413h-140zM202 1460v17h248l184 -299h-145z" /> +<glyph unicode="ú" horiz-adv-x="1290" d="M135 864l41 172h340l-123 -526q-44 -186 -3.5 -273t171.5 -87q58 0 102.5 19.5t81 54.5t61.5 74l132 566h-136l41 172h336l-200 -864h155l-39 -172h-348l24 105q-32 -33 -69 -56.5t-75.5 -38t-76 -21.5t-69.5 -7q-68 0 -128.5 19.5t-101.5 57.5q-25 25 -46.5 58.5 t-33.5 80.5t-11 109t20 144l95 413h-140zM448 1178l213 299h240v-17l-299 -282h-154z" /> +<glyph unicode="û" horiz-adv-x="1290" d="M135 864l41 172h340l-123 -526q-44 -186 -3.5 -273t171.5 -87q58 0 102.5 19.5t81 54.5t61.5 74l132 566h-136l41 172h336l-200 -864h155l-39 -172h-348l24 105q-32 -33 -69 -56.5t-75.5 -38t-76 -21.5t-69.5 -7q-68 0 -128.5 19.5t-101.5 57.5q-25 25 -46.5 58.5 t-33.5 80.5t-11 109t20 144l95 413h-140zM354 1171l297 273h111l151 -273h-170l-64 125l-119 -125h-206z" /> +<glyph unicode="ü" horiz-adv-x="1290" d="M135 864l41 172h340l-123 -526q-44 -186 -3.5 -273t171.5 -87q58 0 102.5 19.5t81 54.5t61.5 74l132 566h-136l41 172h336l-200 -864h155l-39 -172h-348l24 105q-32 -33 -69 -56.5t-75.5 -38t-76 -21.5t-69.5 -7q-68 0 -128.5 19.5t-101.5 57.5q-25 25 -46.5 58.5 t-33.5 80.5t-11 109t20 144l95 413h-140zM372 1360q0 26 10.5 49.5t28 41t41 28t49.5 10.5q25 0 48 -10.5t40 -28t27 -41t10 -49.5q0 -27 -10 -51t-27 -42.5t-40 -29t-48 -10.5q-26 0 -49.5 10.5t-41 29t-28 42.5t-10.5 51zM831 1360q0 26 10.5 49.5t28 41t41 28t49.5 10.5 q25 0 47.5 -10.5t40 -28t27.5 -41t10 -49.5q0 -27 -10 -51t-27.5 -42.5t-40 -29t-47.5 -10.5q-26 0 -49.5 10.5t-41 29t-28 42.5t-10.5 51z" /> +<glyph unicode="ý" horiz-adv-x="1165" d="M-10 -471l43 172h101l185 290l-114 873h-98l41 172h379l-41 -172h-79l61 -639l408 639h-85l41 172h379l-41 -172h-87l-741 -1163h101l-43 -172h-410zM419 1178l213 299h240v-17l-299 -282h-154z" /> +<glyph unicode="þ" horiz-adv-x="1255" d="M-193 -471l39 172h154l388 1683h-194l41 172h393l-135 -585q134 92 279 92q85 0 159 -33t128.5 -90t86 -134.5t31.5 -166.5q0 -145 -51 -266t-138.5 -208t-204 -135t-247.5 -48q-77 0 -143.5 23t-108.5 59l-84 -363h137l-38 -172h-492zM324 236q25 -33 80 -57.5 t146 -24.5q77 0 152 31.5t134.5 91t96.5 145.5t37 196q0 64 -18 114.5t-50.5 85.5t-77.5 54t-100 19q-70 0 -142 -28.5t-132 -78.5z" /> +<glyph unicode="ÿ" horiz-adv-x="1165" d="M-10 -471l43 172h101l185 290l-114 873h-98l41 172h379l-41 -172h-79l61 -639l408 639h-85l41 172h379l-41 -172h-87l-741 -1163h101l-43 -172h-410zM343 1360q0 26 10.5 49.5t28 41t41 28t49.5 10.5q25 0 48 -10.5t40 -28t27 -41t10 -49.5q0 -27 -10 -51t-27 -42.5 t-40 -29t-48 -10.5q-26 0 -49.5 10.5t-41 29t-28 42.5t-10.5 51zM802 1360q0 26 10.5 49.5t28 41t41 28t49.5 10.5q25 0 47.5 -10.5t40 -28t27.5 -41t10 -49.5q0 -27 -10 -51t-27.5 -42.5t-40 -29t-47.5 -10.5q-26 0 -49.5 10.5t-41 29t-28 42.5t-10.5 51z" /> +<glyph unicode="Ÿ" horiz-adv-x="1323" d="M175 1343l39 173h491l-39 -173h-122l175 -473l411 473h-122l39 173h492l-39 -173h-123l-586 -656l-120 -515h141l-39 -172h-492l39 172h141l120 519l-259 652h-147zM552 1840q0 26 10.5 49.5t28 41t41 28t49.5 10.5q25 0 48 -10.5t40 -28t27 -41t10 -49.5q0 -27 -10 -51 t-27 -42.5t-40 -29t-48 -10.5q-26 0 -49.5 10.5t-41 29t-28 42.5t-10.5 51zM1011 1840q0 26 10.5 49.5t28 41t41 28t49.5 10.5q25 0 47.5 -10.5t40 -28t27.5 -41t10 -49.5q0 -27 -10 -51t-27.5 -42.5t-40 -29t-47.5 -10.5q-26 0 -49.5 10.5t-41 29t-28 42.5t-10.5 51z" /> +<glyph unicode="ˆ" horiz-adv-x="860" d="M172 1171l297 273h111l151 -273h-170l-64 125l-119 -125h-206z" /> +<glyph unicode="˜" horiz-adv-x="1000" d="M150 1251q13 47 37 78.5t54 50.5t64.5 27t69.5 8q50 0 86.5 -16.5t68 -36t62.5 -35.5t70 -16q28 0 54.5 19t35.5 61l119 -35q-20 -85 -78 -131.5t-139 -46.5q-56 0 -95 15.5t-71 33.5t-60 33.5t-61 15.5q-15 0 -30.5 -2t-30.5 -9.5t-27.5 -23t-19.5 -43.5z" /> +<glyph unicode=" " horiz-adv-x="1039" /> +<glyph unicode=" " horiz-adv-x="2078" /> +<glyph unicode=" " horiz-adv-x="1039" /> +<glyph unicode=" " horiz-adv-x="2078" /> +<glyph unicode=" " horiz-adv-x="692" /> +<glyph unicode=" " horiz-adv-x="519" /> +<glyph unicode=" " horiz-adv-x="346" /> +<glyph unicode=" " horiz-adv-x="346" /> +<glyph unicode=" " horiz-adv-x="259" /> +<glyph unicode=" " horiz-adv-x="415" /> +<glyph unicode=" " horiz-adv-x="115" /> +<glyph unicode="‐" horiz-adv-x="856" d="M137 496l40 172h571l-40 -172h-571z" /> +<glyph unicode="‑" horiz-adv-x="856" d="M137 496l40 172h571l-40 -172h-571z" /> +<glyph unicode="‒" horiz-adv-x="856" d="M137 496l40 172h571l-40 -172h-571z" /> +<glyph unicode="–" horiz-adv-x="1024" d="M0 485l40 162h1024l-40 -162h-1024z" /> +<glyph unicode="—" horiz-adv-x="2048" d="M0 485l40 162h2048l-40 -162h-2048z" /> +<glyph unicode="‘" horiz-adv-x="487" d="M178 1059l319 502l127 -64l-264 -518z" /> +<glyph unicode="’" horiz-adv-x="509" d="M175 1044l264 519l185 -80l-324 -504z" /> +<glyph unicode="“" horiz-adv-x="918" d="M178 1059l321 504l129 -66l-268 -516zM608 1059l319 502l127 -64l-264 -518z" /> +<glyph unicode="”" horiz-adv-x="918" d="M157 1044l264 519l185 -80l-324 -504zM585 1044l264 517l185 -78l-324 -504z" /> +<glyph unicode="„" horiz-adv-x="920" d="M-48 -253l264 519l185 -80l-324 -504zM380 -253l264 517l185 -78l-324 -504z" /> +<glyph unicode="•" horiz-adv-x="989" d="M219 545q0 54 20 101t55 82t82 55t101 20t101 -20t82.5 -54.5t56 -82t20.5 -101.5q0 -55 -20.5 -102t-56 -81.5t-82.5 -54.5t-101 -20t-101 20t-82 54.5t-55 81.5t-20 102z" /> +<glyph unicode="…" horiz-adv-x="1899" d="M246 119q0 27 10.5 51t28.5 41.5t42 28t52 10.5q27 0 51 -10.5t41.5 -28t28 -41.5t10.5 -51t-10.5 -51.5t-28 -43t-41.5 -29.5t-51 -11q-28 0 -52 11t-42 29.5t-28.5 43t-10.5 51.5zM879 119q0 27 10.5 51t28.5 41.5t42 28t52 10.5q27 0 51 -10.5t41.5 -28t28 -41.5 t10.5 -51t-10.5 -51.5t-28 -43t-41.5 -29.5t-51 -11q-28 0 -52 11t-42 29.5t-28.5 43t-10.5 51.5zM1512 119q0 27 10.5 51t28.5 41.5t42 28t52 10.5q27 0 51 -10.5t41.5 -28t28 -41.5t10.5 -51t-10.5 -51.5t-28 -43t-41.5 -29.5t-51 -11q-28 0 -52 11t-42 29.5t-28.5 43 t-10.5 51.5z" /> +<glyph unicode=" " horiz-adv-x="415" /> +<glyph unicode="‹" horiz-adv-x="557" d="M70 567l319 391h197l-322 -413l131 -373h-186z" /> +<glyph unicode="›" horiz-adv-x="539" d="M29 172l321 414l-131 372h187l139 -395l-320 -391h-196z" /> +<glyph unicode=" " horiz-adv-x="519" /> +<glyph unicode="◼" horiz-adv-x="1035" d="M0 0v1035h1035v-1035h-1035z" /> +<hkern u1="A" u2="Y" k="100" /> +<hkern u1="A" u2="V" k="100" /> +<hkern u1="A" u2="T" k="100" /> +<hkern u1="F" u2="." k="150" /> +<hkern u1="F" u2="," k="150" /> +<hkern u1="P" u2="." k="150" /> +<hkern u1="P" u2="," k="150" /> +<hkern u1="T" u2="Æ" k="100" /> +<hkern u1="T" u2="Å" k="100" /> +<hkern u1="T" u2="Ä" k="100" /> +<hkern u1="T" u2="Ã" k="100" /> +<hkern u1="T" u2="Â" k="100" /> +<hkern u1="T" u2="Á" k="100" /> +<hkern u1="T" u2="À" k="100" /> +<hkern u1="T" u2="y" k="120" /> +<hkern u1="T" u2="v" k="110" /> +<hkern u1="T" u2="u" k="160" /> +<hkern u1="T" u2="q" k="200" /> +<hkern u1="T" u2="o" k="200" /> +<hkern u1="T" u2="n" k="150" /> +<hkern u1="T" u2="m" k="150" /> +<hkern u1="T" u2="g" k="200" /> +<hkern u1="T" u2="e" k="200" /> +<hkern u1="T" u2="d" k="200" /> +<hkern u1="T" u2="c" k="200" /> +<hkern u1="T" u2="a" k="200" /> +<hkern u1="T" u2="A" k="100" /> +<hkern u1="T" u2="." k="280" /> +<hkern u1="T" u2="," k="280" /> +<hkern u1="V" u2="Æ" k="100" /> +<hkern u1="V" u2="Å" k="100" /> +<hkern u1="V" u2="Ä" k="100" /> +<hkern u1="V" u2="Ã" k="100" /> +<hkern u1="V" u2="Â" k="100" /> +<hkern u1="V" u2="Á" k="100" /> +<hkern u1="V" u2="À" k="100" /> +<hkern u1="V" u2="u" k="100" /> +<hkern u1="V" u2="q" k="160" /> +<hkern u1="V" u2="o" k="160" /> +<hkern u1="V" u2="m" k="100" /> +<hkern u1="V" u2="g" k="160" /> +<hkern u1="V" u2="e" k="160" /> +<hkern u1="V" u2="d" k="160" /> +<hkern u1="V" u2="c" k="160" /> +<hkern u1="V" u2="a" k="160" /> +<hkern u1="V" u2="A" k="100" /> +<hkern u1="V" u2="." k="180" /> +<hkern u1="V" u2="," k="180" /> +<hkern u1="Y" u2="Æ" k="100" /> +<hkern u1="Y" u2="Å" k="100" /> +<hkern u1="Y" u2="Ä" k="100" /> +<hkern u1="Y" u2="Ã" k="100" /> +<hkern u1="Y" u2="Â" k="100" /> +<hkern u1="Y" u2="Á" k="100" /> +<hkern u1="Y" u2="À" k="100" /> +<hkern u1="Y" u2="c" k="140" /> +<hkern u1="Y" u2="A" k="100" /> +<hkern u1="Y" u2="." k="200" /> +<hkern u1="Y" u2="," k="200" /> +<hkern u1="f" u2="." k="160" /> +<hkern u1="f" u2="," k="160" /> +<hkern u1="k" u2="e" k="50" /> +<hkern u1="k" u2="c" k="50" /> +<hkern u1="y" u2="." k="250" /> +<hkern u1="y" u2="," k="250" /> +<hkern u1="À" u2="Y" k="100" /> +<hkern u1="À" u2="V" k="100" /> +<hkern u1="À" u2="T" k="100" /> +<hkern u1="Á" u2="Y" k="100" /> +<hkern u1="Á" u2="V" k="100" /> +<hkern u1="Á" u2="T" k="100" /> +<hkern u1="Â" u2="Y" k="100" /> +<hkern u1="Â" u2="V" k="100" /> +<hkern u1="Â" u2="T" k="100" /> +<hkern u1="Ã" u2="Y" k="100" /> +<hkern u1="Ã" u2="V" k="100" /> +<hkern u1="Ã" u2="T" k="100" /> +<hkern u1="Ä" u2="Y" k="100" /> +<hkern u1="Ä" u2="V" k="100" /> +<hkern u1="Ä" u2="T" k="100" /> +<hkern u1="Å" u2="Y" k="100" /> +<hkern u1="Å" u2="V" k="100" /> +<hkern u1="Å" u2="T" k="100" /> +<hkern u1="Æ" u2="Y" k="100" /> +<hkern u1="Æ" u2="V" k="100" /> +<hkern u1="Æ" u2="T" k="100" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/arvo-italic-webfont.ttf b/web/static/fonts/arvo-italic-webfont.ttf Binary files differnew file mode 100755 index 000000000..3c5c55c02 --- /dev/null +++ b/web/static/fonts/arvo-italic-webfont.ttf diff --git a/web/static/fonts/arvo-italic-webfont.woff b/web/static/fonts/arvo-italic-webfont.woff Binary files differnew file mode 100755 index 000000000..a423bd349 --- /dev/null +++ b/web/static/fonts/arvo-italic-webfont.woff diff --git a/web/static/fonts/arvo-italic-webfont.woff2 b/web/static/fonts/arvo-italic-webfont.woff2 Binary files differnew file mode 100755 index 000000000..3a549271a --- /dev/null +++ b/web/static/fonts/arvo-italic-webfont.woff2 diff --git a/web/static/fonts/droidserif-bold-webfont.eot b/web/static/fonts/droidserif-bold-webfont.eot Binary files differnew file mode 100755 index 000000000..7b7a947a2 --- /dev/null +++ b/web/static/fonts/droidserif-bold-webfont.eot diff --git a/web/static/fonts/droidserif-bold-webfont.svg b/web/static/fonts/droidserif-bold-webfont.svg new file mode 100755 index 000000000..5ce6c097a --- /dev/null +++ b/web/static/fonts/droidserif-bold-webfont.svg @@ -0,0 +1,1454 @@ +<?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="droid_serifbold" horiz-adv-x="1145" > +<font-face units-per-em="2048" ascent="1638" descent="-410" /> +<missing-glyph horiz-adv-x="532" /> +<glyph horiz-adv-x="0" /> +<glyph unicode="
" horiz-adv-x="2048" /> +<glyph unicode=" " horiz-adv-x="532" /> +<glyph unicode="	" horiz-adv-x="532" /> +<glyph unicode=" " horiz-adv-x="532" /> +<glyph unicode="!" horiz-adv-x="782" d="M213 1462h356l-120 -995h-115zM225 147q0 47 13 78.5t35.5 50.5t53.5 27t66 8q34 0 64.5 -8t53.5 -27t36.5 -50.5t13.5 -78.5q0 -46 -13.5 -77t-36.5 -50t-53.5 -27.5t-64.5 -8.5q-35 0 -66 8.5t-53.5 27.5t-35.5 50t-13 77z" /> +<glyph unicode=""" horiz-adv-x="1040" d="M137 1462h320l-92 -563h-136zM584 1462h319l-72 -563h-135z" /> +<glyph unicode="#" d="M57 410v141h232l71 371h-237v143h264l72 397h147l-74 -397h213l76 397h146l-76 -397h196v-143h-223l-69 -371h227v-141h-256l-76 -410h-145l76 410h-213l-78 -410h-146l78 410h-205zM434 551h215l72 371h-215z" /> +<glyph unicode="$" d="M100 375q0 45 16.5 76t43.5 50.5t61.5 28.5t71.5 9q0 -77 16.5 -137t47 -102.5t73 -68.5t94.5 -34v442l-35 14q-98 40 -163.5 81t-106 87.5t-57.5 100.5t-17 120q0 74 28 135.5t78 107.5t119.5 75.5t153.5 38.5v157h115v-155q91 -3 157 -20t109 -44.5t63.5 -63.5 t20.5 -77q0 -65 -56 -107t-169 -42q0 30 -7 65t-22 67.5t-38.5 59t-57.5 41.5v-399q6 -3 23 -9.5t28 -11.5q94 -37 161 -76t109.5 -85t62 -99.5t19.5 -118.5q0 -78 -27.5 -144.5t-79 -117.5t-126.5 -83.5t-170 -43.5v-254h-115v250q-117 3 -198 30t-131.5 68t-72.5 91 t-22 98zM385 1128q0 -27 6 -52t22 -48.5t43 -46t68 -45.5v354q-60 -11 -99.5 -51.5t-39.5 -110.5zM639 201q77 17 118.5 68t41.5 120q0 65 -40 111t-120 88v-387z" /> +<glyph unicode="%" horiz-adv-x="1855" d="M70 1030q0 103 21 186.5t66 143t115 91.5t168 32q92 0 161 -32t115 -91.5t68.5 -143t22.5 -186.5t-23 -187t-68.5 -144t-115 -93t-162.5 -33q-97 0 -167 33t-114.5 93t-65.5 144t-21 187zM301 1030q0 -84 7.5 -149.5t23.5 -111t42.5 -69.5t63.5 -24q39 0 64.5 24 t41.5 69.5t22.5 111t6.5 149.5q0 82 -6.5 146.5t-22 109.5t-41 68.5t-63.5 23.5t-64.5 -23.5t-43 -68.5t-24 -109.5t-7.5 -146.5zM492 0l706 1462h158l-705 -1462h-159zM1049 436q0 103 21 186.5t66 143t115 91.5t168 32q92 0 161 -32t115 -91.5t68.5 -143t22.5 -186.5 t-23 -187t-68.5 -144t-115 -92.5t-162.5 -32.5q-97 0 -167 32.5t-114.5 92.5t-65.5 144t-21 187zM1280 436q0 -84 7.5 -149.5t23.5 -111t42.5 -69.5t63.5 -24q39 0 64.5 24t41.5 69.5t22.5 111t6.5 149.5q0 82 -6.5 146.5t-22 109.5t-41 68.5t-63.5 23.5t-64.5 -23.5 t-43 -68.5t-24 -109.5t-7.5 -146.5z" /> +<glyph unicode="&" horiz-adv-x="1640" d="M96 416q0 90 28.5 153.5t76.5 110t111.5 79t133.5 60.5q-40 48 -69.5 91.5t-48.5 86.5t-28 88t-9 97q0 68 26 123t77.5 95t128.5 61.5t179 21.5q99 0 172.5 -23t122 -63t73 -93t24.5 -112q0 -62 -19 -112t-57.5 -92.5t-97 -79.5t-138.5 -74q5 -8 15 -15l290 -305 q13 71 17 140.5t4 127.5v90h448v-108h-32q-34 0 -66.5 -4t-60.5 -18.5t-49.5 -42t-34.5 -74.5q-16 -57 -37.5 -121.5t-52.5 -130.5l204 -213q29 -31 71 -41t97 -10h19v-109h-406l-141 150q-38 -38 -84.5 -69t-102.5 -53.5t-121.5 -35t-142.5 -12.5q-126 0 -223 29.5 t-163 85.5t-100 137t-34 184zM397 406q0 -61 19.5 -113.5t54.5 -91.5t85.5 -61.5t111.5 -22.5q109 0 184 35.5t125 95.5l-438 467q-43 -31 -70.5 -65.5t-43.5 -73t-22 -81t-6 -89.5zM569 1188q0 -35 8 -67t23.5 -63.5t39.5 -63.5t56 -68q43 24 72 51t46 58.5t24.5 69.5 t7.5 85q0 36 -6.5 67t-22.5 54t-44 36t-71 13q-34 0 -59.5 -13t-41.5 -36t-24 -54.5t-8 -68.5z" /> +<glyph unicode="'" horiz-adv-x="594" d="M137 1462h320l-92 -563h-136z" /> +<glyph unicode="(" horiz-adv-x="819" d="M117 651q0 165 35.5 305.5t112 256.5t197.5 208t292 160v-129q-95 -63 -155 -150.5t-94 -191.5t-46.5 -220.5t-12.5 -238.5t12.5 -239.5t46.5 -222t94 -192.5t155 -151v-131q-171 69 -292 161.5t-197.5 209.5t-112 258t-35.5 307z" /> +<glyph unicode=")" horiz-adv-x="819" d="M66 -154q95 63 155 151t93.5 192.5t46 222t12.5 239.5t-12.5 238.5t-46 220.5t-93.5 191.5t-155 150.5v129q171 -68 292 -160t197.5 -208t111.5 -256.5t35 -305.5q0 -166 -35 -307t-111.5 -258t-197.5 -209.5t-292 -161.5v131z" /> +<glyph unicode="*" horiz-adv-x="1028" d="M72 1071l319 84l-319 82l92 207l305 -221l-68 333h230l-74 -329l307 213l92 -205l-319 -80l319 -82l-92 -203l-307 213l72 -331h-228l66 333l-303 -217z" /> +<glyph unicode="+" d="M133 659v146h365v366h147v-366h367v-146h-367v-366h-147v366h-365z" /> +<glyph unicode="," horiz-adv-x="602" d="M92 -209q45 16 78.5 32t56 34.5t34 41t11.5 52.5q0 19 -11 31.5t-27.5 23.5t-36 22.5t-36 29.5t-27.5 44.5t-11 67.5q0 69 42 105t105 36q87 0 138 -60t51 -165q0 -65 -20 -126t-64 -113t-113.5 -93.5t-169.5 -68.5v106z" /> +<glyph unicode="-" horiz-adv-x="635" d="M51 451v215h533v-215h-533z" /> +<glyph unicode="." horiz-adv-x="623" d="M143 147q0 47 13 78.5t35.5 50.5t53.5 27t66 8q34 0 64.5 -8t53.5 -27t36.5 -50.5t13.5 -78.5q0 -46 -13.5 -77t-36.5 -50t-53.5 -27.5t-64.5 -8.5q-35 0 -66 8.5t-53.5 27.5t-35.5 50t-13 77z" /> +<glyph unicode="/" horiz-adv-x="590" d="M0 -248l446 1804h144l-443 -1806z" /> +<glyph unicode="0" d="M70 735q0 170 26 308t85.5 236t156 151t237.5 53q133 0 228 -53t155.5 -151t88.5 -236.5t28 -309.5q0 -169 -28 -308t-89 -238t-156 -153t-229 -54q-140 0 -236 54t-155.5 153t-85.5 238.5t-26 309.5zM387 733q0 -147 8 -262t28.5 -194.5t56.5 -121.5t93 -42t93 42 t56.5 121.5t28 194.5t7.5 262t-7.5 261.5t-27.5 193.5t-56 120.5t-92 41.5q-57 0 -93.5 -41.5t-57.5 -120.5t-29 -193.5t-8 -261.5z" /> +<glyph unicode="1" d="M86 1206q31 8 65 19.5t72.5 30t82.5 45t95 63.5l144 106h229v-1228q0 -32 4.5 -57t16 -42t32 -25.5t52.5 -8.5h165v-109h-845v109h168q26 0 45 6.5t32 21.5t19 40.5t6 64.5v1026q-39 -48 -73.5 -87t-66.5 -67t-62.5 -43.5t-61.5 -15.5q-25 0 -46.5 10.5t-37.5 30.5 t-25.5 48t-9.5 62z" /> +<glyph unicode="2" d="M72 0v211l303 309q95 97 156 175t96 149t49 140.5t14 148.5q0 117 -42.5 171t-117.5 54q-104 0 -146 -89.5t-42 -264.5q-58 0 -106.5 11t-83 35t-53.5 62.5t-19 93.5q0 56 28.5 106t84.5 88t140.5 60.5t196.5 22.5q115 0 202.5 -23.5t147 -67.5t89.5 -107t30 -142 q0 -48 -10.5 -93t-35 -93t-64.5 -101.5t-99 -118t-137.5 -142.5t-181.5 -175l-205 -195h477q63 0 107.5 36.5t62.5 105.5l17 63h121l-11 -430h-968z" /> +<glyph unicode="3" d="M57 225q0 39 14 69t38 50.5t55.5 30.5t66.5 10q0 -65 18.5 -114t51.5 -82t79.5 -49.5t102.5 -16.5q50 0 95.5 14t80.5 48t55.5 92.5t20.5 146.5q0 59 -20.5 108t-61 84.5t-99.5 55.5t-136 20h-127v127h135q66 0 115 21.5t81 61.5t48 95.5t16 122.5q0 112 -43 175t-127 63 q-55 0 -89.5 -27t-53.5 -72t-26 -102t-7 -117q-128 0 -197 44.5t-69 138.5q0 54 28.5 101.5t85.5 83t141.5 55.5t196.5 20q109 0 196.5 -22t149 -65t94.5 -105t33 -142q0 -69 -24 -127t-66 -104t-99 -80.5t-124 -57.5q62 -11 126.5 -35.5t117.5 -66.5t87 -105t34 -151 q0 -125 -46.5 -210t-124 -136.5t-177 -73.5t-205.5 -22q-116 0 -199.5 20t-137 54t-79 78.5t-25.5 92.5z" /> +<glyph unicode="4" d="M27 381v125l581 956h285v-946h213v-135h-213v-125q0 -48 13.5 -77t36 -44.5t53.5 -20.5t65 -5h26v-109h-718v109h57q35 0 65.5 5t53 20.5t36 44.5t13.5 77v125h-567zM170 516h424v358q0 90 3 194t11 200q-10 -24 -32 -66t-47 -86.5t-48 -84t-35 -58.5z" /> +<glyph unicode="5" d="M82 227q0 72 44.5 107t119.5 35q0 -44 11.5 -88t38 -79t69.5 -57t106 -22q51 0 96.5 16t80 53.5t55 101t20.5 157.5q0 153 -73 228t-206 75q-39 0 -70.5 -3t-58.5 -8.5t-51 -12t-47 -13.5l-94 37l65 708h775l10 -372h-117l-16 69q-5 18 -11 32.5t-16.5 24.5t-26.5 15.5 t-41 5.5h-426q0 -1 -1.5 -17.5t-3.5 -43.5t-5 -61t-6 -69l-16 -188q16 6 41.5 11.5t55.5 10t63.5 7t64.5 2.5q119 0 215.5 -27.5t165 -82t106 -136.5t37.5 -192q0 -133 -48.5 -223.5t-125.5 -145.5t-172 -78.5t-188 -23.5q-115 0 -195 20.5t-130 55t-72.5 79t-22.5 92.5z " /> +<glyph unicode="6" d="M92 676q0 169 35.5 316t108 256t182.5 172t258 63q99 0 168 -19t112 -50.5t62.5 -72t19.5 -84.5q0 -31 -13 -60t-42 -51t-75.5 -35t-114.5 -13q0 46 -6 93t-21 85t-41.5 62t-67.5 24q-60 0 -108.5 -36t-84 -105t-56.5 -169.5t-27 -230.5q21 14 48 27.5t61.5 24.5t78 17.5 t95.5 6.5q93 0 168.5 -29t129 -83.5t82.5 -133t29 -178.5q0 -110 -30 -200.5t-89.5 -155.5t-148 -101t-205.5 -36q-114 0 -207.5 41.5t-160 127.5t-103.5 217t-37 310zM381 674q1 -147 18.5 -253t48 -174t71 -100t87.5 -32q79 0 124.5 80.5t45.5 257.5q0 166 -50 242.5 t-138 76.5q-28 0 -59 -8.5t-59.5 -22.5t-52 -31.5t-36.5 -35.5z" /> +<glyph unicode="7" d="M90 1032l10 430h977v-100l-565 -1362h-174l545 1239h-539q-56 0 -84.5 -26.5t-34.5 -77.5l-12 -103h-123z" /> +<glyph unicode="8" d="M61 373q0 66 21.5 119t61.5 96.5t95.5 80t122.5 70.5q-122 71 -187.5 161t-65.5 210q0 71 24.5 138.5t80.5 119.5t147 83.5t223 31.5q108 0 189.5 -27t136.5 -75t82.5 -113.5t27.5 -143.5q0 -61 -19.5 -108t-55.5 -85.5t-87 -71.5t-115 -66q92 -45 157 -90.5t105.5 -95 t59 -104t18.5 -116.5q0 -97 -35.5 -172.5t-103 -127.5t-164.5 -79.5t-221 -27.5q-128 0 -222 31t-155.5 84t-91 125t-29.5 153zM338 365q0 -60 16.5 -109.5t47 -85t73 -55t94.5 -19.5q53 0 95.5 19t72.5 53t46 81t16 103q0 50 -17 90.5t-53.5 76t-93 69t-135.5 69.5 q-34 -22 -64 -50.5t-51.5 -64t-34 -79.5t-12.5 -98zM397 1135q0 -53 14.5 -93t42.5 -72t69 -57.5t95 -50.5q38 22 65 47t44.5 57t26 71.5t8.5 90.5q0 44 -12.5 86.5t-36.5 75.5t-59.5 53.5t-82.5 20.5q-42 0 -74.5 -17.5t-54.5 -48t-33.5 -72.5t-11.5 -91z" /> +<glyph unicode="9" d="M72 987q0 111 32 202t92.5 156.5t147.5 101.5t197 36q111 0 205 -40t162.5 -124t106.5 -214t38 -310q0 -169 -33 -317.5t-103.5 -259t-182 -174.5t-269.5 -64q-93 0 -157 19.5t-104 52t-57.5 74t-17.5 85.5q0 45 24 75.5t76 41.5q15 -46 36 -86t50.5 -69.5t69 -46.5 t90.5 -17q138 0 212.5 149t84.5 444q-24 -30 -53.5 -55t-66.5 -44t-81.5 -29.5t-97.5 -10.5q-88 0 -161.5 27.5t-127 81t-83 133t-29.5 182.5zM369 999q0 -142 48 -215t144 -73q74 0 127 37.5t84 99.5q-1 131 -17.5 225t-45 154.5t-68.5 89.5t-88 29q-88 0 -136 -86.5 t-48 -260.5z" /> +<glyph unicode=":" horiz-adv-x="623" d="M143 147q0 47 13 78.5t35.5 50.5t53.5 27t66 8q34 0 64.5 -8t53.5 -27t36.5 -50.5t13.5 -78.5q0 -46 -13.5 -77t-36.5 -50t-53.5 -27.5t-64.5 -8.5q-35 0 -66 8.5t-53.5 27.5t-35.5 50t-13 77zM143 952q0 47 13 78.5t35.5 50.5t53.5 27t66 8q34 0 64.5 -8t53.5 -27 t36.5 -50.5t13.5 -78.5q0 -46 -13.5 -77.5t-36.5 -50.5t-53.5 -27.5t-64.5 -8.5q-35 0 -66 8.5t-53.5 27.5t-35.5 50.5t-13 77.5z" /> +<glyph unicode=";" horiz-adv-x="602" d="M92 -209q45 16 78.5 32t56 34.5t34 41t11.5 52.5q0 19 -11 31.5t-27.5 23.5t-36 22.5t-36 29.5t-27.5 44.5t-11 67.5q0 69 42 105t105 36q87 0 138 -60t51 -165q0 -65 -20 -126t-64 -113t-113.5 -93.5t-169.5 -68.5v106zM143 952q0 47 13 78.5t35.5 50.5t53.5 27t66 8 q34 0 64.5 -8t53.5 -27t36.5 -50.5t13.5 -78.5q0 -46 -13.5 -77.5t-36.5 -50.5t-53.5 -27.5t-64.5 -8.5q-35 0 -66 8.5t-53.5 27.5t-35.5 50.5t-13 77.5z" /> +<glyph unicode="<" d="M133 690v84l879 479v-161l-660 -361l660 -356v-162z" /> +<glyph unicode="=" d="M129 461v143h887v-143h-887zM129 858v143h887v-143h-887z" /> +<glyph unicode=">" d="M133 213v162l660 356l-660 361v161l879 -479v-84z" /> +<glyph unicode="?" horiz-adv-x="1126" d="M76 1245q0 50 26 93.5t79.5 75.5t135.5 50.5t195 18.5q108 0 200 -25.5t159 -74t105 -118.5t38 -159q0 -82 -25.5 -147t-76.5 -119t-127.5 -99.5t-178.5 -87.5l-41 -186h-125l-41 252q88 35 144 82.5t88.5 102t44.5 114.5t12 121q0 49 -9 89.5t-28.5 70t-50 45.5 t-72.5 16q-46 0 -77 -21t-50 -56t-27.5 -82t-8.5 -99q-63 0 -116 9t-91.5 26.5t-60 44.5t-21.5 63zM332 147q0 47 13 78.5t35.5 50.5t53.5 27t66 8q34 0 64.5 -8t53.5 -27t36.5 -50.5t13.5 -78.5q0 -46 -13.5 -77t-36.5 -50t-53.5 -27.5t-64.5 -8.5q-35 0 -66 8.5 t-53.5 27.5t-35.5 50t-13 77z" /> +<glyph unicode="@" horiz-adv-x="1886" d="M104 500q0 137 33.5 262t95 231.5t149.5 193t197 148t236.5 94.5t269.5 33q178 0 313 -51t225.5 -139.5t136.5 -209t46 -259.5q0 -153 -37 -273t-97 -202.5t-135.5 -126t-152.5 -43.5q-91 0 -154 44.5t-97 147.5h-13q-21 -40 -48 -75t-61 -61t-76.5 -41t-96.5 -15 q-64 0 -122.5 21t-103 64t-70.5 109t-26 156q0 55 13 119t41.5 127.5t72 123t105 105t141 73t178.5 27.5q71 0 122 -18t83 -43l86 43h49l-86 -512q-2 -12 -4.5 -31t-4.5 -39t-3.5 -38.5t-1.5 -30.5q0 -42 9 -69t23 -42.5t31.5 -21t34.5 -5.5q41 0 82.5 34t75.5 99.5 t55.5 162.5t21.5 223q0 140 -42.5 245.5t-118 176t-180 106t-228.5 35.5q-97 0 -191.5 -27t-180 -79t-157.5 -127.5t-125 -172t-82.5 -213.5t-29.5 -252q0 -181 54 -309t146.5 -209t216 -118t261.5 -37q83 0 162 15t150 39t132 55t109 63l49 -78q-54 -41 -122.5 -77 t-149 -63t-171 -43t-188.5 -16q-117 0 -225 21.5t-202.5 65.5t-172.5 109.5t-133.5 153.5t-86 198t-30.5 243zM768 487q0 -102 36 -156.5t95 -54.5q44 0 75.5 21t53 55.5t35.5 77.5t22 88l82 418q-6 14 -17.5 24.5t-26.5 18t-31.5 11t-32.5 3.5q-52 0 -93.5 -26t-74 -68.5 t-55.5 -97t-38.5 -110.5t-22.5 -109.5t-7 -94.5z" /> +<glyph unicode="A" horiz-adv-x="1542" d="M8 0v109h25q27 0 49.5 6t42 22.5t37 45.5t35.5 75l444 1204h281l428 -1206q15 -43 31.5 -71.5t36 -45t41.5 -23.5t46 -7h37v-109h-676v109h80q15 0 31 4.5t28.5 14t20.5 24.5t8 36q0 25 -6 48t-12 40l-72 205h-498l-59 -176q-8 -25 -16.5 -58.5t-8.5 -58.5q0 -20 8 -35 t21 -24.5t29.5 -14.5t34.5 -5h86v-109h-533zM489 606h414l-108 336q-11 35 -22.5 73.5t-23 78.5t-22 79.5t-18.5 75.5q-9 -31 -21 -68t-25.5 -76l-27 -78t-25.5 -75z" /> +<glyph unicode="B" horiz-adv-x="1376" d="M57 0v109h84q23 0 42.5 4.5t33.5 18.5t22.5 40t8.5 70v981q0 41 -8.5 66.5t-23 39.5t-34 19.5t-41.5 5.5h-84v108h598q292 0 439 -90t147 -282q0 -68 -18.5 -118.5t-52.5 -87t-81.5 -62.5t-105.5 -44v-10q71 -18 129.5 -49.5t101 -77t66 -105.5t23.5 -135 q0 -202 -147 -301.5t-439 -99.5h-660zM571 125h136q68 0 116 15t78 48.5t43.5 87.5t13.5 132q0 75 -12 130.5t-41 91.5t-76 54t-118 18h-140v-577zM571 827h78q72 0 119.5 15t76 46.5t40.5 81.5t12 120t-13.5 117t-43.5 76t-78 41.5t-117 12.5h-74v-510z" /> +<glyph unicode="C" horiz-adv-x="1368" d="M113 733q0 166 45 304t133.5 237t221 154t306.5 55q118 0 205.5 -18.5t145.5 -50.5t87 -75.5t29 -93.5q0 -38 -16.5 -70.5t-49 -56.5t-80.5 -37.5t-110 -13.5q0 51 -11 101.5t-37.5 91.5t-69.5 66.5t-107 25.5q-97 0 -164 -41t-107.5 -120t-58.5 -194.5t-18 -263.5 t22 -259t71 -184.5t127.5 -110t192.5 -36.5q75 0 133.5 17.5t104.5 45.5t80.5 63t60.5 69q16 -12 25.5 -37t9.5 -51q0 -43 -23 -90.5t-77 -87.5t-143 -66t-220 -26q-178 0 -311 54t-221 153t-132 238t-44 308z" /> +<glyph unicode="D" horiz-adv-x="1571" d="M57 0v109h86q23 0 42 4.5t33 18.5t22 40t8 70v987q0 41 -8 65.5t-22.5 37.5t-33.5 17.5t-41 4.5h-86v108h676q170 0 304.5 -44.5t228 -133t143 -220.5t49.5 -306q0 -168 -46 -307.5t-137.5 -239.5t-227 -155.5t-314.5 -55.5h-676zM571 127h115q105 0 185 43.5 t133.5 125.5t80.5 198.5t27 263.5q0 293 -107.5 436t-316.5 143h-117v-1210z" /> +<glyph unicode="E" horiz-adv-x="1337" d="M57 0v109h86q22 0 41 4t33.5 16.5t22.5 37t8 64.5v990q0 44 -8 70t-22 40t-33 18.5t-42 4.5h-86v108h1137l8 -377h-143l-10 97q-8 75 -38 115t-93 40h-345v-512h486v-123h-486v-577h410q31 0 53 11.5t38 32.5t25.5 49.5t14.5 62.5l16 96h142l-15 -377h-1200z" /> +<glyph unicode="F" horiz-adv-x="1272" d="M57 0v109h86q22 0 41 4t33.5 16.5t22.5 37t8 64.5v998q0 41 -8 65.5t-22.5 37.5t-33.5 17.5t-41 4.5h-86v108h1135l10 -377h-143l-10 99q-10 81 -49.5 117t-102.5 36h-326v-559h486v-121h-486v-415q0 -44 8.5 -70t22.5 -40t34 -18.5t42 -4.5h127v-109h-748z" /> +<glyph unicode="G" horiz-adv-x="1575" d="M113 733q0 166 49 304t145 237t239 154t331 55q128 0 223.5 -18.5t160 -50.5t96.5 -75.5t32 -93.5q0 -36 -17 -67.5t-51 -55.5t-83 -37.5t-114 -13.5q0 62 -15 114t-46.5 89t-79.5 57.5t-113 20.5q-112 0 -190.5 -41t-128 -120t-72 -194.5t-22.5 -263.5t23.5 -262.5 t76 -192.5t136 -118.5t204.5 -40.5q38 0 76 3t74 11v301q0 82 -37 114t-109 32h-27v108h644v-108h-27q-31 0 -54 -7.5t-38 -25.5t-22 -47.5t-7 -73.5v-336q-120 -55 -242 -82.5t-262 -27.5q-190 0 -331.5 54t-235.5 153t-140 238t-46 308z" /> +<glyph unicode="H" horiz-adv-x="1677" d="M57 0v109h86q22 0 41 4.5t33.5 18.5t22.5 40t8 70v986q0 41 -8.5 65.5t-23 37.5t-33.5 17.5t-40 4.5h-86v109h707v-109h-88q-22 0 -41 -4.5t-33 -18.5t-22.5 -40t-8.5 -70v-395h535v395q0 44 -8 70t-22.5 40t-33.5 18.5t-41 4.5h-88v109h707v-109h-86q-21 0 -40 -4.5 t-33.5 -18.5t-22.5 -40t-8 -70v-989q0 -40 8.5 -64.5t23 -37t33 -16.5t39.5 -4h86v-109h-707v109h88q22 0 41 4.5t33.5 18.5t22.5 40t8 70v458h-535v-458q0 -44 8.5 -70t22.5 -40t33 -18.5t41 -4.5h88v-109h-707z" /> +<glyph unicode="I" horiz-adv-x="821" d="M57 0v109h86q23 0 42 4.5t33 18.5t22 40t8 70v978q0 44 -8 70t-22 40t-33 18.5t-42 4.5h-86v109h707v-109h-86q-22 0 -41.5 -4.5t-33.5 -18.5t-22 -40t-8 -70v-978q0 -44 8 -70t22 -40t33.5 -18.5t41.5 -4.5h86v-109h-707z" /> +<glyph unicode="J" horiz-adv-x="754" d="M-80 -373h37q49 0 95.5 18.5t82.5 61.5t58 113.5t22 173.5v1235q0 41 -8 65.5t-22.5 37.5t-33.5 17.5t-40 4.5h-86v108h706v-108h-86q-22 0 -41.5 -4.5t-33.5 -18.5t-22.5 -40t-8.5 -70v-1225q0 -93 -21 -165t-58 -126.5t-88.5 -92t-112 -60.5t-128 -33.5t-137.5 -10.5 h-74v119z" /> +<glyph unicode="K" horiz-adv-x="1503" d="M57 0v109h86q22 0 41 4t33.5 16.5t22.5 37t8 64.5v998q0 41 -8 65.5t-22.5 37.5t-33.5 17.5t-41 4.5h-86v108h707v-108h-86q-22 0 -42 -4.5t-34 -18.5t-22.5 -40t-8.5 -70v-478l318 347q33 35 55.5 63.5t36 53t19.5 46.5t6 43q0 34 -26 47t-89 13v106h555v-106 q-42 0 -79.5 -13t-73.5 -37t-71 -57t-71 -73l-270 -297l381 -605q30 -48 57.5 -79.5t55.5 -50.5t57 -27t63 -8h8v-109h-110q-78 0 -137 5t-103.5 15t-76.5 25.5t-56 36.5t-43.5 47.5t-38.5 58.5l-276 471l-91 -71v-346q0 -44 8.5 -70t22.5 -40t34 -18.5t42 -4.5h86v-109 h-707z" /> +<glyph unicode="L" horiz-adv-x="1339" d="M57 0v109h86q23 0 42 4.5t33 18.5t22 40t8 70v979q0 44 -8 70t-22 40t-33 18.5t-42 4.5h-86v108h707v-108h-86q-21 0 -40.5 -4.5t-33.5 -17.5t-22.5 -37.5t-8.5 -65.5v-1104h381q72 0 112 45.5t58 132.5l33 154h115l-15 -457h-1200z" /> +<glyph unicode="M" horiz-adv-x="1950" d="M57 0v109h86q22 0 41 4t33.5 16.5t22.5 37t8 64.5v998q0 41 -8 65.5t-22.5 37.5t-33.5 17.5t-41 4.5h-86v108h590l340 -989l326 989h579v-108h-86q-22 0 -41 -4.5t-33 -18.5t-22 -40t-8 -70v-979q0 -44 8 -70t22 -40t33 -18.5t41 -4.5h86v-109h-655v109h20q32 0 56.5 4 t40.5 16t24 34.5t8 59.5v1037l-413 -1260h-139l-433 1260v-1018q0 -44 10.5 -70t30 -40t47.5 -18.5t64 -4.5h12v-109h-508z" /> +<glyph unicode="N" horiz-adv-x="1614" d="M57 0v109h86q22 0 41 4.5t33.5 18.5t22.5 40t8 70v987q0 41 -8.5 65.5t-23 37.5t-33.5 17.5t-40 4.5h-86v108h455l723 -1022v789q0 41 -8.5 65.5t-23 37.5t-33.5 17.5t-40 4.5h-86v108h535v-108h-86q-21 0 -40 -4.5t-33.5 -18.5t-22.5 -40t-8 -70v-1221h-189l-799 1128 v-886q0 -44 8.5 -70t22.5 -40t33.5 -18.5t40.5 -4.5h86v-109h-535z" /> +<glyph unicode="O" horiz-adv-x="1612" d="M113 735q0 170 43 308.5t129.5 236.5t217 151.5t306.5 53.5q166 0 294.5 -53.5t216.5 -152t133.5 -237t45.5 -309.5q0 -169 -45.5 -308t-134 -238t-217 -153t-295.5 -54q-175 0 -305.5 54t-216.5 153t-129 238.5t-43 309.5zM457 733q0 -147 19 -262t61 -194.5 t108.5 -121.5t161.5 -42q96 0 162.5 42t107.5 121.5t59.5 194.5t18.5 262t-18.5 262t-59.5 194.5t-107 121t-161 41.5q-96 0 -163 -41.5t-109 -121t-61 -194.5t-19 -262z" /> +<glyph unicode="P" horiz-adv-x="1307" d="M57 0v109h86q23 0 42 4.5t33 18.5t22 40t8 70v987q0 41 -8 65.5t-22.5 37.5t-33.5 17.5t-41 4.5h-86v108h629q142 0 247 -30t174.5 -86.5t103.5 -136.5t34 -181q0 -92 -32 -177t-104 -150t-187 -103.5t-281 -38.5h-70v-328q0 -40 9 -64.5t24 -37t35 -16.5t41 -4h125v-109 h-748zM571 678h50q76 0 129 19t86.5 60t49 106t15.5 157q0 82 -13.5 142.5t-43 100t-77 59t-116.5 19.5h-80v-663z" /> +<glyph unicode="Q" horiz-adv-x="1612" d="M113 735q0 170 43 308.5t129.5 236.5t217 151.5t306.5 53.5q166 0 294.5 -53.5t216.5 -152t133.5 -237t45.5 -309.5q0 -144 -32.5 -265.5t-95.5 -215.5t-156 -158.5t-214 -93.5q9 -113 37 -185.5t68.5 -114t89.5 -57.5t100 -16h33v-119h-147q-92 0 -181.5 27t-162 85.5 t-121 150t-58.5 221.5q-138 21 -240.5 83.5t-170.5 158.5t-101.5 223t-33.5 278zM457 733q0 -147 19 -262t61 -194.5t108.5 -121.5t161.5 -42q96 0 162.5 42t107.5 121.5t59.5 194.5t18.5 262t-18.5 262t-59.5 194.5t-107 121t-161 41.5q-96 0 -163 -41.5t-109 -121 t-61 -194.5t-19 -262z" /> +<glyph unicode="R" horiz-adv-x="1448" d="M57 0v109h86q21 0 40 4t33.5 16.5t23 37t8.5 64.5v998q0 41 -8.5 65.5t-23 37.5t-33.5 17.5t-40 4.5h-86v108h660q290 0 425.5 -97t135.5 -282q0 -81 -24 -144t-63.5 -110t-89.5 -79.5t-102 -53.5l244 -420q26 -44 50.5 -75.5t49 -52t50.5 -30t55 -9.5h8v-109h-67 q-92 0 -160.5 7t-120 27.5t-89 56.5t-69.5 93l-243 451h-136v-404q0 -40 8.5 -64.5t23 -37t33.5 -16.5t40 -4h88v-109h-707zM571 754h115q71 0 118.5 19t76 56.5t41 94t12.5 131.5q0 78 -14 132t-44 88.5t-78 50t-116 15.5h-111v-587z" /> +<glyph unicode="S" horiz-adv-x="1200" d="M61 266q0 53 19.5 89t52 59t74 33t86.5 10q0 -88 21 -154.5t58 -111t88.5 -67t112.5 -22.5q60 0 107 17t80 47t50 70.5t17 87.5q0 52 -21 92.5t-63.5 75t-107 66t-150.5 67.5q-107 44 -180.5 90.5t-118.5 100.5t-64.5 117t-19.5 138q0 94 38 170t105 130t159 83t200 29 q113 0 195 -18.5t135.5 -50.5t79.5 -75.5t26 -93.5q0 -36 -15.5 -67t-47 -54t-79 -36t-110.5 -13q0 43 -11.5 92.5t-37.5 92t-67.5 70.5t-100.5 28q-41 0 -78 -12t-64.5 -36t-43.5 -59.5t-16 -81.5q0 -43 14 -81t51.5 -74.5t103 -73t169.5 -78.5q105 -43 179 -88 t121.5 -96.5t69 -113t21.5 -136.5q0 -99 -39 -181.5t-112 -141.5t-175.5 -92t-230.5 -33q-138 0 -230 26t-147.5 67t-79 92t-23.5 101z" /> +<glyph unicode="T" horiz-adv-x="1337" d="M20 1065l11 397h1276l10 -397h-137l-15 127q-4 34 -13.5 61t-29 45.5t-50.5 28.5t-77 10h-164v-1095q0 -44 8 -70t22.5 -40t33.5 -18.5t41 -4.5h86v-109h-707v109h86q23 0 42 4.5t33 18.5t22 40t8 70v1095h-164q-46 0 -77 -10t-50.5 -28.5t-29 -45.5t-13.5 -61l-14 -127 h-138z" /> +<glyph unicode="U" horiz-adv-x="1530" d="M33 1354v108h706v-108h-86q-21 0 -40 -4.5t-33.5 -18.5t-22.5 -40t-8 -70v-791q0 -86 21.5 -144.5t61.5 -94t96 -51t126 -15.5q68 0 123 17.5t93.5 54.5t59.5 94t21 135v803q0 41 -8 65.5t-22.5 37.5t-33.5 17.5t-40 4.5h-86v108h536v-108h-88q-21 0 -40 -4.5 t-33.5 -18.5t-22.5 -40t-8 -70v-799q0 -103 -29.5 -185t-92 -139t-159.5 -87.5t-231 -30.5t-239.5 25.5t-178.5 81.5t-111.5 144.5t-38.5 214.5v783q0 41 -8.5 65.5t-23 37.5t-33 17.5t-39.5 4.5h-88z" /> +<glyph unicode="V" horiz-adv-x="1430" d="M0 1354v108h676v-108h-94q-15 0 -29 -3.5t-25.5 -11.5t-18.5 -21t-7 -32q0 -20 6 -45.5t12 -42.5l209 -631q8 -23 16.5 -54t16.5 -65t14.5 -67.5t9.5 -61.5q3 17 10.5 46.5t17.5 64t20.5 69t19.5 62.5l211 623q4 11 8.5 24.5t8 27.5t6 27t2.5 21q0 34 -22.5 52t-59.5 18 h-107v108h529v-108h-99q-14 0 -25 -6t-22 -22.5t-23 -45.5t-28 -76l-418 -1204h-205l-436 1255q-10 29 -25.5 48.5t-33 30.5t-35.5 15.5t-33 4.5h-47z" /> +<glyph unicode="W" horiz-adv-x="2185" d="M0 1354v108h684v-108h-47q-62 0 -92.5 -24t-30.5 -75q0 -17 6.5 -49.5t14.5 -60.5l137 -473q11 -39 23.5 -84.5t23.5 -92t20 -89.5t13 -76q14 66 30.5 123.5t34.5 117.5l270 877h150l283 -782q18 -48 33.5 -97.5t28.5 -94.5t23 -83t15 -65q8 37 17 82t19.5 94.5t22 101.5 t23.5 101l108 442q3 12 6.5 28t6.5 31.5t4.5 29t1.5 21.5q0 53 -31.5 75t-99.5 22h-47v108h534v-108h-39q-30 0 -53 -6t-41 -23.5t-32.5 -48.5t-28.5 -82l-318 -1194h-233l-344 961l-295 -961h-254l-375 1245q-9 32 -22 53t-30.5 33.5t-40 17.5t-52.5 5h-27z" /> +<glyph unicode="X" horiz-adv-x="1499" d="M20 0v109h13q37 0 65 10t52.5 28.5t47.5 45t48 59.5l358 467l-338 526q-17 27 -33.5 47.5t-37 34t-45.5 20.5t-60 7h-27v108h678v-108h-6q-35 0 -58.5 -4.5t-37.5 -13t-19.5 -19.5t-5.5 -23q0 -21 15.5 -53t38.5 -67l170 -254l178 249q18 28 36.5 62.5t18.5 62.5 q0 18 -9 30t-24.5 18.5t-36.5 9t-45 2.5h-6v108h480v-108h-19q-30 0 -54 -7.5t-47.5 -25t-47.5 -45.5t-54 -70l-297 -405l377 -584q40 -63 83 -85.5t81 -22.5h27v-109h-676v109h10q123 0 123 67q0 12 -2 23t-9.5 26t-20.5 37t-36 55l-188 285l-221 -299q-19 -26 -36 -59.5 t-17 -65.5q0 -34 28 -51.5t96 -17.5h7v-109h-517z" /> +<glyph unicode="Y" horiz-adv-x="1419" d="M0 1354v108h686v-108h-35q-62 0 -92.5 -25t-30.5 -67q0 -26 9.5 -56.5t21.5 -56.5l152 -301q32 -65 52.5 -115t37.5 -98q21 54 48.5 117.5t61.5 132.5l119 245q22 45 28.5 75.5t6.5 47.5q0 53 -33.5 77t-101.5 24h-47v108h536v-108h-39q-26 0 -44.5 -7t-35 -25t-34 -49 t-41.5 -79l-348 -678v-280q0 -45 9 -70t24.5 -38t36 -16t44.5 -3h101v-109h-756v109h96q25 0 46.5 3t37.5 15.5t25.5 37.5t9.5 68v285l-379 727q-15 30 -28.5 51t-29.5 33.5t-36.5 18.5t-50.5 6h-27z" /> +<glyph unicode="Z" horiz-adv-x="1364" d="M86 0v102l768 1235h-403q-48 0 -79 -13t-49.5 -37.5t-27 -59t-12.5 -76.5l-11 -111h-147l10 422h1094v-104l-770 -1233h442q63 0 103 17.5t63.5 46.5t34 65.5t14.5 75.5l10 92h148l-10 -422h-1178z" /> +<glyph unicode="[" horiz-adv-x="848" d="M205 -262v1818h567v-108h-88q-34 0 -65 -5t-53.5 -20.5t-36 -44.5t-13.5 -78v-1306q0 -48 13.5 -77.5t36 -45t53.5 -20.5t65 -5h88v-108h-567z" /> +<glyph unicode="\" horiz-adv-x="590" d="M0 1556h145l445 -1804h-148z" /> +<glyph unicode="]" horiz-adv-x="848" d="M76 -154h88q35 0 65.5 5t53 20.5t36 45t13.5 77.5v1306q0 49 -13.5 78t-36 44.5t-53 20.5t-65.5 5h-88v108h567v-1818h-567v108z" /> +<glyph unicode="^" d="M94 537l432 925h88l435 -925h-160l-320 702l-315 -702h-160z" /> +<glyph unicode="_" horiz-adv-x="940" d="M-10 -170h960v-121h-960v121z" /> +<glyph unicode="`" horiz-adv-x="1182" d="M332 1548v21h321q16 -34 41 -74.5t52.5 -81t55.5 -78.5t50 -67v-27h-139q-48 28 -106.5 69.5t-113 85.5t-98.5 84.5t-63 67.5z" /> +<glyph unicode="a" horiz-adv-x="1227" d="M92 313q0 167 114.5 247t344.5 87l168 6v113q0 51 -4 94t-17 74t-38.5 48t-67.5 17q-39 0 -65.5 -16.5t-42.5 -46t-22.5 -70t-6.5 -88.5q-138 0 -207.5 31t-69.5 106q0 56 33.5 96t91 65t134 36.5t163.5 11.5q108 0 188.5 -18.5t134 -59.5t80.5 -107.5t27 -162.5v-522 q0 -42 6.5 -70t20.5 -44.5t38 -23.5t58 -7h8v-109h-381l-43 141h-18q-34 -41 -64 -71.5t-64 -50.5t-76.5 -29.5t-100.5 -9.5q-68 0 -126.5 20t-102 61.5t-68.5 104t-25 147.5zM410 305q0 -88 28 -132t88 -44q44 0 79.5 18.5t61 52.5t39 82.5t13.5 108.5v154l-92 -6 q-61 -3 -103 -19.5t-67 -45.5t-36 -71t-11 -98z" /> +<glyph unicode="b" horiz-adv-x="1329" d="M35 0v109h14q29 0 57 5t50 20t35.5 43t13.5 75v1059q0 44 -13 70.5t-35 41.5t-51.5 20t-62.5 5h-8v108h481v-350q0 -32 -2.5 -75t-5.5 -81q-4 -45 -8 -92h14q44 76 117.5 120t189.5 44q100 0 176.5 -33.5t129 -103t79.5 -177t27 -255.5q0 -149 -27.5 -257t-80.5 -178.5 t-131.5 -104t-180.5 -33.5q-59 0 -107 13t-86.5 37t-68 57t-51.5 73h-19l-57 -160h-389zM516 553q0 -101 10 -179.5t34 -132t65 -81t102 -27.5q101 0 146 109t45 313q0 209 -45 312.5t-148 103.5q-61 0 -101 -25.5t-64 -77.5t-34 -130.5t-10 -184.5z" /> +<glyph unicode="c" horiz-adv-x="1079" d="M96 545q0 166 38.5 277t106 178t159.5 95.5t198 28.5q99 0 175 -16.5t127 -45.5t77.5 -68.5t26.5 -84.5q0 -33 -11.5 -64.5t-41 -55.5t-81 -39t-131.5 -15q0 53 -6.5 101t-21.5 84t-40.5 57.5t-64.5 21.5q-45 0 -80.5 -21.5t-61 -73.5t-39 -139t-13.5 -218 q0 -208 57 -311t186 -103q53 0 99.5 12.5t84.5 35t66.5 53t46.5 65.5q25 -15 37 -40.5t12 -53.5q0 -39 -23 -79t-71.5 -72.5t-123.5 -53t-179 -20.5q-113 0 -206.5 29t-160.5 96t-104 175t-37 265z" /> +<glyph unicode="d" horiz-adv-x="1329" d="M94 547q0 148 27.5 256.5t80.5 179t130 105t176 34.5q58 0 104.5 -12.5t84 -34t66.5 -51.5t50 -66h14q-4 57 -8 107q-1 21 -2.5 43t-3 41.5t-2 34.5t-0.5 24v113q0 42 -13.5 67.5t-36 38.5t-52.5 17t-64 4h-16v108h493v-1304q0 -47 14 -75t37.5 -43t54 -20t64.5 -5h8 v-109h-397l-57 160h-19q-23 -42 -52.5 -75t-68 -56.5t-86.5 -36t-108 -12.5q-100 0 -178 33.5t-131.5 103t-81 176.5t-27.5 254zM410 549q0 -209 43.5 -312.5t146.5 -103.5q61 0 101.5 25.5t65 77.5t34.5 130.5t10 184.5q0 101 -10 179.5t-34.5 132t-65 81t-101.5 27.5 q-51 0 -87.5 -27.5t-59 -81.5t-33 -132.5t-10.5 -180.5z" /> +<glyph unicode="e" horiz-adv-x="1169" d="M96 543q0 144 34 253t99 182t159.5 109.5t215.5 36.5q111 0 200 -31.5t151 -93.5t95 -154t33 -214v-105h-671q3 -103 22.5 -177t54 -122t84 -71t113.5 -23q53 0 98 12.5t81.5 35t64 53t45.5 65.5q55 -30 55 -100q0 -44 -24 -83.5t-74 -69.5t-125.5 -48t-179.5 -18 q-130 0 -229.5 38t-166.5 110t-101 176.5t-34 238.5zM416 657h354q0 78 -9 140t-28.5 105t-50 66t-74.5 23q-86 0 -136.5 -85t-55.5 -249z" /> +<glyph unicode="f" horiz-adv-x="834" d="M39 0v109h45q22 0 47.5 4.5t47 18.5t36 40t14.5 70v716h-182v140h182v76q0 95 24.5 169.5t76 126t130.5 78.5t187 27q99 0 165 -11.5t105 -32t55.5 -47.5t16.5 -59q0 -69 -62.5 -101t-189.5 -32q0 25 -5 54t-17 54t-31.5 41.5t-48.5 16.5q-25 0 -43 -13.5t-29.5 -43 t-16.5 -76.5t-5 -115v-112h282v-140h-282v-716q0 -44 14.5 -70t36 -40t47 -18.5t47.5 -4.5h96v-109h-743z" /> +<glyph unicode="g" horiz-adv-x="1147" d="M4 -207q0 110 71 168.5t206 69.5q-28 11 -55 27t-48 38.5t-34 51.5t-13 65q0 34 13.5 63t37.5 55.5t57.5 50t73.5 46.5q-45 16 -83.5 44.5t-66 68.5t-43.5 91t-16 113q0 180 104.5 279.5t323.5 99.5q73 0 135.5 -18.5t108.5 -44.5q17 18 37.5 38.5t46.5 37.5t58 28t71 11 q37 0 64.5 -9.5t46 -25.5t28 -37t9.5 -45q0 -23 -7 -44.5t-23.5 -37.5t-45 -25.5t-70.5 -9.5q0 21 -6.5 37t-17.5 27t-25 16.5t-29 5.5q-17 0 -36.5 -7t-30.5 -15q21 -23 39 -52.5t31.5 -63.5t21.5 -70.5t8 -74.5q0 -77 -24.5 -142.5t-75.5 -113.5t-129 -75t-185 -27 q-11 0 -28 0.5l-34 1t-32.5 2t-23.5 2.5q-13 -7 -26.5 -17.5t-24 -23.5t-17 -29t-6.5 -34q0 -34 26.5 -50t69.5 -16h248q102 0 176 -21.5t122.5 -61.5t71.5 -98.5t23 -131.5q0 -95 -36 -169.5t-109.5 -126t-185 -79t-263.5 -27.5q-242 0 -360.5 72.5t-118.5 212.5zM246 -203 q0 -85 61.5 -125.5t179.5 -40.5q180 0 262 52t82 153q0 65 -41 91t-124 26h-238q-31 0 -63 -5.5t-58.5 -22.5t-43.5 -47.5t-17 -80.5zM383 745q0 -54 7.5 -97.5t24.5 -74.5t44 -48t67 -17q41 0 68 16.5t43 48t22.5 76t6.5 99.5q0 57 -7 103.5t-23.5 79.5t-43.5 51.5 t-68 18.5q-40 0 -67 -19t-43.5 -53t-23.5 -81t-7 -103z" /> +<glyph unicode="h" horiz-adv-x="1366" d="M35 1448v108h481v-337q0 -40 -2.5 -86t-5.5 -85q-4 -46 -8 -90h18q31 58 65.5 91t73.5 49.5t82.5 21t91.5 4.5q79 0 142 -23t106.5 -71t66.5 -122.5t23 -178.5v-475q0 -48 8.5 -76.5t25.5 -43.5t43 -20t61 -5h6v-109h-455v674q0 66 -8.5 117.5t-28 86.5t-51 53.5 t-76.5 18.5q-51 0 -85 -26t-54.5 -69.5t-29.5 -101t-9 -120.5v-391q0 -43 10.5 -69t29.5 -40.5t46.5 -19t61.5 -4.5h6v-109h-629v109h4q35 0 64 4.5t50.5 19.5t33.5 43t12 74v1073q0 41 -14.5 65.5t-36.5 38t-47.5 17.5t-47.5 4h-24z" /> +<glyph unicode="i" horiz-adv-x="721" d="M35 0v109h24q23 0 48.5 4.5t47 18.5t36 40t14.5 70v622q0 41 -14.5 65.5t-36.5 38t-47.5 17.5t-47.5 4h-24v109h481v-856q0 -44 14.5 -70t36 -40t47.5 -18.5t48 -4.5h24v-109h-651zM176 1430q0 39 13.5 67t37 45.5t55 26t68.5 8.5q35 0 67 -8.5t56 -26t38.5 -45.5 t14.5 -67q0 -38 -14.5 -66t-38.5 -46t-56 -27t-67 -9q-37 0 -68.5 9t-55 27t-37 46t-13.5 66z" /> +<glyph unicode="j" horiz-adv-x="707" d="M-41 -365h14q56 0 99.5 18t73 60t44.5 112t15 175v854q0 44 -13 70.5t-35.5 41t-52.5 19t-63 4.5h-6v109h481v-1114q0 -138 -38.5 -229.5t-107 -146t-163 -77.5t-207.5 -23h-41v127zM178 1430q0 39 13.5 67t37 45.5t55 26t68.5 8.5q35 0 67 -8.5t56 -26t38.5 -45.5 t14.5 -67q0 -38 -14.5 -66t-38.5 -46t-56 -27t-67 -9q-37 0 -68.5 9t-55 27t-37 46t-13.5 66z" /> +<glyph unicode="k" horiz-adv-x="1303" d="M35 0v109h24q23 0 48.5 4.5t47 18.5t36 40t14.5 70v1081q0 41 -14.5 65.5t-36.5 38t-47.5 17.5t-47.5 4h-24v108h481v-790q0 -28 -1.5 -64.5t-3.5 -69.5q-3 -39 -5 -79l258 289q34 38 44.5 60.5t10.5 37.5q0 26 -27.5 40.5t-78.5 14.5v103h516v-103q-71 0 -139.5 -41.5 t-149.5 -132.5l-129 -147l272 -406q54 -81 109 -120t104 -39h7v-109h-29q-112 0 -188 5t-131 23t-95 54.5t-80 99.5l-182 287l-82 -61v-166q0 -44 14.5 -70t36 -40t47.5 -18.5t48 -4.5h24v-109h-651z" /> +<glyph unicode="l" horiz-adv-x="721" d="M35 0v109h24q23 0 48.5 4.5t47 18.5t36 40t14.5 70v1081q0 41 -14.5 65.5t-36.5 38t-47.5 17.5t-47.5 4h-24v108h481v-1314q0 -44 14.5 -70t36 -40t47.5 -18.5t48 -4.5h24v-109h-651z" /> +<glyph unicode="m" horiz-adv-x="2019" d="M41 0v109h4q35 0 64 4.5t50.5 19.5t33.5 43t12 74v612q0 43 -10.5 69t-30 40.5t-46.5 19t-61 4.5h-6v103h430l27 -146h10q31 58 65.5 92t73.5 52t82.5 23t91.5 5q113 0 193 -40.5t117 -131.5h18q31 58 67.5 92t78 52t87 23t93.5 5q79 0 142 -23t106.5 -71t66.5 -122.5 t23 -178.5v-475q0 -48 8.5 -76.5t25.5 -43.5t43 -20t60 -5h6v-109h-455v674q0 132 -36.5 204t-126.5 72q-48 0 -82 -23.5t-55.5 -63.5t-31.5 -93.5t-10 -112.5v-403q0 -48 8.5 -76.5t25.5 -43.5t43 -20t61 -5h6v-109h-455v674q0 66 -8.5 117.5t-28 86.5t-51 53.5t-76.5 18.5 q-51 0 -85 -26t-54.5 -69.5t-29.5 -101t-9 -120.5v-391q0 -43 10.5 -69t29.5 -40.5t46.5 -19t61.5 -4.5h6v-109h-629z" /> +<glyph unicode="n" horiz-adv-x="1366" d="M41 0v109h4q35 0 64 4.5t50.5 19.5t33.5 43t12 74v606q0 43 -10.5 69t-30 40.5t-46.5 19t-61 4.5h-6v109h430l27 -146h10q31 58 65.5 92t73.5 52t82.5 23t91.5 5q79 0 142 -23t106.5 -71t66.5 -122.5t23 -178.5v-475q0 -48 8.5 -76.5t25.5 -43.5t43 -20t61 -5h6v-109 h-455v674q0 66 -8.5 117.5t-28 86.5t-51 53.5t-76.5 18.5q-51 0 -85 -26t-54.5 -69.5t-29.5 -101t-9 -120.5v-391q0 -43 10.5 -69t29.5 -40.5t46.5 -19t61.5 -4.5h6v-109h-629z" /> +<glyph unicode="o" horiz-adv-x="1255" d="M96 553q0 289 135.5 430t399.5 141q123 0 220.5 -35t166 -106t105 -178.5t36.5 -251.5q0 -289 -135.5 -431t-398.5 -142q-123 0 -221 35.5t-166.5 106.5t-105 179t-36.5 252zM414 553q0 -109 11.5 -192t37 -139t66.5 -84.5t100 -28.5t99.5 28.5t66 84.5t36.5 139t11 192 q0 110 -11.5 192.5t-37 137.5t-66.5 82.5t-100 27.5t-100 -27.5t-66 -82.5t-36 -137.5t-11 -192.5z" /> +<glyph unicode="p" horiz-adv-x="1321" d="M27 -383h24q23 0 48.5 4.5t47 18.5t36 40t14.5 70v1096q0 47 -10.5 75t-29 43t-44 20t-54.5 5h-14v109h401l37 -160h9q22 40 51.5 73t68 57t86.5 37t107 13q102 0 180.5 -33.5t131.5 -104t80.5 -178.5t27.5 -257q0 -148 -27 -255.5t-79.5 -177.5t-129 -103.5 t-176.5 -33.5q-117 0 -190 44.5t-117 119.5h-14q4 -47 8 -92q3 -38 5.5 -81t2.5 -75v-141q0 -44 14.5 -70t36 -40t47 -18.5t47.5 -4.5h45v-109h-671v109zM508 545q0 -106 10 -184.5t34 -130.5t64 -77.5t101 -25.5q103 0 147.5 103.5t44.5 312.5q0 204 -44.5 313t-145.5 109 q-61 0 -102 -27.5t-65 -81t-34 -132t-10 -179.5z" /> +<glyph unicode="q" horiz-adv-x="1327" d="M94 551q0 147 27.5 254t81 176.5t131.5 103t178 33.5q60 0 108 -12.5t86.5 -36t68 -56.5t52.5 -75h19l41 160h413v-109h-8q-34 0 -64.5 -5t-54 -20t-37.5 -43t-14 -75v-1102q0 -42 13.5 -67.5t36 -38.5t52.5 -17t64 -4h37v-109h-717v109h37q34 0 64 4t52.5 17t36 38.5 t13.5 67.5v150q0 9 0.5 24t2 34.5t3 41t2.5 42.5q4 49 8 107h-14q-21 -35 -50 -65t-66.5 -51.5t-84 -34t-104.5 -12.5q-99 0 -176 33.5t-130 103.5t-80.5 178t-27.5 256zM410 549q0 -205 43.5 -311.5t146.5 -106.5q61 0 101.5 27t65 79.5t34.5 130t10 179.5q0 106 -10 184.5 t-34.5 130.5t-65 77.5t-101.5 25.5q-103 0 -146.5 -103.5t-43.5 -312.5z" /> +<glyph unicode="r" horiz-adv-x="1071" d="M41 0v109h6q35 0 64 5t50 20.5t32.5 44.5t11.5 77v594q0 45 -10.5 72.5t-30 42.5t-46.5 19.5t-61 4.5h-6v109h414l41 -160h10q20 46 44 80.5t57.5 57.5t79 34.5t108.5 11.5q121 0 178 -42.5t57 -123.5q0 -94 -68 -146t-192 -52q0 42 -4.5 74t-16 53t-31 32t-48.5 11 q-36 0 -62 -18t-44 -46.5t-29.5 -64.5t-18 -72.5t-8.5 -69.5t-2 -57v-354q0 -45 11 -72.5t30 -41.5t45.5 -18.5t56.5 -4.5h66v-109h-684z" /> +<glyph unicode="s" horiz-adv-x="999" d="M61 219q0 50 19.5 80.5t49 47.5t62.5 22.5t60 5.5q0 -64 16 -115t45 -86.5t69.5 -54.5t90.5 -19q53 0 91.5 11t63 30.5t36.5 45t12 53.5q0 34 -12.5 60.5t-41.5 50t-77.5 46t-120.5 47.5q-83 29 -146.5 61.5t-107 74t-66 95t-22.5 122.5q0 82 31.5 143t89.5 101.5 t139 60.5t180 20q97 0 165 -16.5t111 -43.5t63 -61t20 -69q0 -69 -48.5 -105t-160.5 -36q0 102 -45.5 158.5t-134.5 56.5q-33 0 -63.5 -8t-53 -24t-36 -39.5t-13.5 -55.5q0 -33 12.5 -59t44 -49.5t85.5 -47.5t138 -53q68 -24 125.5 -54.5t99 -70t64.5 -90t23 -115.5 q0 -85 -29.5 -152t-86.5 -113t-140 -70.5t-189 -24.5q-111 0 -189.5 18t-128 50t-72 76t-22.5 95z" /> +<glyph unicode="t" horiz-adv-x="829" d="M43 958v105q66 0 118 26t83 60q63 66 94 203h170v-254h262v-140h-262v-634q0 -93 31.5 -136t103.5 -43q40 0 76.5 5.5t68.5 13.5v-133q-16 -8 -43.5 -17t-64 -16.5t-82.5 -12.5t-100 -5q-69 0 -125 16.5t-95 55t-60 100t-21 151.5v655h-154z" /> +<glyph unicode="u" horiz-adv-x="1366" d="M53 989v109h455v-656q0 -66 7.5 -119t25.5 -90.5t48 -58t75 -20.5q49 0 84.5 21.5t58 62t33 98t10.5 129.5v393q0 45 -12 71t-32 39.5t-47 17t-57 3.5h-6v109h465v-860q0 -45 10.5 -70.5t28.5 -38.5t43 -16.5t55 -3.5h17v-109h-408l-45 145h-10q-31 -53 -67 -85.5 t-77 -50t-86.5 -23.5t-93.5 -6q-160 0 -245.5 99t-85.5 306v459q0 45 -8 73t-25 44t-43.5 22t-63.5 6h-4z" /> +<glyph unicode="v" horiz-adv-x="1241" d="M0 989v109h635v-109h-86q-31 0 -49.5 -16.5t-18.5 -48.5q0 -25 6.5 -49t12.5 -41l137 -388q25 -65 43.5 -131t28.5 -118q5 24 14 56t18 62.5t16.5 55.5l10.5 35l139 411q10 28 16.5 56.5t6.5 56.5q0 34 -22.5 46.5t-57.5 12.5h-59v109h450v-109h-41q-21 0 -37.5 -5 t-32 -20.5t-30.5 -45t-33 -78.5l-297 -840h-270l-336 891q-11 29 -25.5 48t-34 30t-45 15.5t-59.5 4.5z" /> +<glyph unicode="w" horiz-adv-x="1753" d="M-6 989v109h600v-109h-27q-62 0 -92.5 -17.5t-30.5 -68.5q0 -17 5.5 -41t11.5 -47l76 -266q10 -37 19 -76t17 -76t14.5 -70t10.5 -59h6q9 51 24.5 105.5t41.5 130.5l209 583h133l200 -604q25 -74 36 -125.5t18 -89.5h6q5 26 9.5 49t11 48t14.5 54.5t20 67.5l90 299 q8 26 13.5 56t5.5 47q0 52 -33.5 76t-102.5 24h-14v109h469v-109h-26q-30 0 -52 -6t-39 -23.5t-32 -49t-31 -81.5l-264 -829h-221l-224 680l-235 -680h-223l-263 881q-11 32 -24 53t-30 33t-39 17t-52 5h-6z" /> +<glyph unicode="x" horiz-adv-x="1323" d="M23 0v109h18q37 0 65 6.5t52.5 21.5t49.5 40t56 63l258 311l-258 330q-43 54 -86 81t-90 27h-27v109h644v-109h-7q-35 0 -57.5 -4.5t-35.5 -12.5t-18 -19t-5 -23q0 -22 11 -42.5t36 -51.5l114 -140l97 117q24 31 37.5 59t13.5 56q0 37 -28.5 49t-76.5 12h-6v109h473v-109 h-18q-30 0 -53.5 -5.5t-47 -20t-48.5 -40t-58 -65.5l-211 -258l301 -383q47 -59 86.5 -83.5t77.5 -24.5h27v-109h-652v109h11q123 0 123 67q0 12 -3 24t-11 28t-23.5 37.5t-40.5 51.5l-117 142l-143 -178q-19 -25 -31 -51t-12 -52q0 -34 29 -51.5t98 -17.5h6v-109h-520z" /> +<glyph unicode="y" horiz-adv-x="1186" d="M0 977v121h584v-109q-60 0 -94.5 -15.5t-34.5 -60.5q0 -17 7 -40.5t13 -38.5q18 -43 37.5 -93.5t38 -101t35.5 -97.5t30 -83q15 -39 25 -70.5t16.5 -57t10.5 -47t6 -42.5q2 21 8 46.5t13 49t14 42t10 26.5l135 401q4 10 7.5 23.5t6.5 27.5t4.5 27t1.5 22q0 47 -39 64.5 t-110 17.5v109h461v-109q-31 0 -54.5 -7t-42.5 -24.5t-35 -46t-32 -71.5q-36 -102 -75 -208t-78.5 -212.5t-79 -212t-76.5 -207.5q-36 -99 -68 -174t-67.5 -130t-78.5 -91t-100 -57.5t-132.5 -30.5t-176.5 -9h-35v119q107 0 182 26t127 74t85.5 115t58.5 148l-369 901 q-12 29 -27 46t-32 26t-37 11.5t-43 2.5z" /> +<glyph unicode="z" horiz-adv-x="1083" d="M37 0v84l604 874h-299q-23 0 -40 -6.5t-30.5 -23t-24.5 -44t-22 -69.5l-12 -49h-123l25 332h884v-88l-606 -871h361q31 0 52.5 9t37 29t26 51.5t19.5 76.5l12 66h121l-10 -371h-975z" /> +<glyph unicode="{" horiz-adv-x="905" d="M61 590v125q50 2 93.5 10t75.5 29t50.5 57.5t18.5 93.5v352q0 144 88.5 221.5t261.5 77.5h195v-108h-80q-44 0 -72 -13t-44.5 -38t-23 -62.5t-6.5 -85.5v-348q0 -93 -53 -152.5t-172 -86.5v-17q118 -29 171.5 -89t53.5 -153v-350q0 -48 6.5 -85.5t23 -63t44.5 -38.5 t72 -13h80v-109h-195q-86 0 -151.5 21t-109.5 60.5t-66.5 95.5t-22.5 126v350q0 59 -18.5 95.5t-50.5 57.5t-75.5 29.5t-93.5 10.5z" /> +<glyph unicode="|" d="M498 -492v2048h147v-2048h-147z" /> +<glyph unicode="}" horiz-adv-x="905" d="M61 -147h80q44 0 72 13t44.5 38.5t23 63t6.5 85.5v350q0 93 53.5 153t171.5 89v17q-119 27 -172 86.5t-53 152.5v348q0 48 -6.5 85.5t-23 62.5t-44.5 38t-72 13h-80v108h195q173 0 261.5 -77.5t88.5 -221.5v-352q0 -57 18.5 -93.5t50.5 -57.5t75.5 -29t93.5 -10v-125 q-50 -2 -93.5 -10.5t-75.5 -29.5t-50.5 -57.5t-18.5 -95.5v-350q0 -70 -22.5 -126t-66.5 -95.5t-109.5 -60.5t-151.5 -21h-195v109z" /> +<glyph unicode="~" horiz-adv-x="1149" d="M113 598v158q99 108 247 108q29 0 54 -2.5t52.5 -9t61 -19t80.5 -32.5q37 -16 65 -27t51 -17.5t43.5 -9t41.5 -2.5q29 0 58.5 9.5t59 26t57.5 38.5t52 47v-157q-98 -109 -248 -109q-29 0 -53.5 2.5t-52 9.5t-61 19.5t-80.5 32.5q-37 16 -65 26.5t-50.5 17t-43 9 t-42.5 2.5q-28 0 -58 -9.5t-59.5 -25.5t-57.5 -38t-52 -48z" /> +<glyph unicode="¡" horiz-adv-x="782" d="M213 -369l121 996h115l120 -996h-356zM221 946q0 46 13.5 77.5t36.5 50.5t53.5 27.5t64.5 8.5q35 0 66 -8.5t53.5 -27.5t35.5 -50.5t13 -77.5q0 -47 -13 -78.5t-35.5 -50.5t-53.5 -27t-66 -8q-34 0 -64.5 8t-53.5 27t-36.5 50.5t-13.5 78.5z" /> +<glyph unicode="¢" d="M117 733q0 153 34 259.5t94.5 174.5t144 102t181.5 42v151h127v-151q88 -5 156 -23.5t114 -47t69.5 -65t23.5 -77.5q0 -33 -11.5 -64.5t-41 -55.5t-80.5 -39t-131 -15q0 43 -5 84t-16.5 75t-30.5 58.5t-47 36.5v-856q52 1 97.5 14.5t83 35t66 51t46.5 64.5 q26 -15 38.5 -40.5t12.5 -53.5q0 -35 -20.5 -72t-62.5 -68.5t-107 -54t-154 -28.5v-170h-127v170q-103 7 -186.5 41.5t-143 101.5t-92 170.5t-32.5 249.5zM430 735q0 -158 33.5 -255t107.5 -134v828q-33 -15 -59 -46.5t-44.5 -84t-28 -128.5t-9.5 -180z" /> +<glyph unicode="£" d="M49 709v125h191q-11 25 -22.5 57t-21.5 68t-16 75t-6 78q0 180 117 275.5t338 95.5q110 0 187 -18.5t125.5 -50.5t70.5 -75.5t22 -93.5q0 -72 -65 -119t-191 -47q0 47 -7 96.5t-25 90t-50 66.5t-82 26q-77 0 -122.5 -58.5t-45.5 -179.5q0 -42 6.5 -82.5t16 -77.5 t21.5 -69t24 -57h363v-125l-324 2q7 -23 12.5 -42.5t9.5 -39t6.5 -40t2.5 -46.5q0 -161 -185 -281l7 -10q6 2 18.5 5t29 6t35.5 5t37 2q21 0 40 -2.5t39.5 -8t45 -13t56.5 -17.5q45 -14 81.5 -22t81.5 -8q70 0 122.5 41.5t92.5 109.5v-229q-40 -71 -98 -106t-139 -35 q-31 0 -64.5 4t-65.5 10t-61.5 14t-52.5 17q-50 17 -105.5 31t-97.5 14q-35 0 -65.5 -4.5t-58.5 -12.5t-54.5 -19.5t-54.5 -25.5l-90 -47v184l65 41q32 20 65 48t60 66.5t44.5 88t17.5 111.5q0 59 -12.5 107.5t-32.5 101.5h-236z" /> +<glyph unicode="¤" d="M135 403l119 119q-59 91 -59 207q0 59 16.5 113.5t48.5 99.5l-123 123l103 102l122 -123q45 29 97 45.5t110 16.5q57 0 109.5 -16.5t97.5 -47.5l127 127l103 -104l-125 -127q31 -45 48 -97.5t17 -111.5t-16 -110.5t-45 -96.5l121 -121l-103 -102l-121 121 q-46 -31 -100 -48.5t-113 -17.5q-58 0 -112 16.5t-99 47.5l-118 -119zM334 729q0 -49 18.5 -92t50 -75.5t74.5 -51t92 -18.5q51 0 94.5 18.5t75 51t49 75.5t17.5 92q0 51 -17.5 94.5t-49 76t-75 51t-94.5 18.5q-49 0 -92 -18.5t-74.5 -51t-50 -76t-18.5 -94.5z" /> +<glyph unicode="¥" horiz-adv-x="1104" d="M-6 1354v108h586v-108h-15q-62 0 -89 -19t-27 -61q0 -25 8.5 -54.5t23.5 -66.5l78 -195q26 -65 45 -125t27 -102q6 28 21 67t32 83l86 225q13 35 21 60t12.5 44.5t6 34t1.5 27.5q0 42 -28.5 62t-96.5 20h-6v108h426v-108h-6q-26 0 -46 -7t-37.5 -25t-34.5 -49t-38 -79 l-211 -496h268v-120h-286v-119h286v-121h-286v-102q0 -49 13.5 -75t36 -37.5t53.5 -13t65 -1.5h47v-109h-735v109h47q34 0 64 1t52.5 11.5t36.5 34.5t15 69v113h-287v121h287v119h-287v120h252l-242 547q-14 31 -26.5 52t-27.5 33.5t-34 18t-45 5.5h-6z" /> +<glyph unicode="¦" d="M498 328h147v-820h-147v820zM498 737v819h147v-819h-147z" /> +<glyph unicode="§" horiz-adv-x="1114" d="M133 772q0 69 37 124.5t96 86.5q-35 37 -61.5 98.5t-26.5 145.5q0 78 30 139.5t84 103.5t128 64t162 22q90 0 158.5 -17.5t114.5 -48.5t69.5 -73.5t23.5 -93.5q0 -63 -50 -105t-144 -42q0 45 -8 92.5t-28.5 86.5t-55.5 64t-89 25q-86 0 -138 -50t-52 -143 q0 -49 16.5 -82.5t48 -59.5t76.5 -49t103 -50q108 -52 185.5 -98t127 -94t73 -101t23.5 -119q0 -37 -10.5 -73t-28 -68t-41.5 -58t-51 -43q34 -43 53 -101t19 -118q0 -81 -26 -149t-77.5 -116.5t-129 -75.5t-179.5 -27q-115 0 -191.5 23.5t-122 61t-64.5 84t-19 93.5 q0 40 13.5 70t37.5 50.5t57.5 31t73.5 10.5q0 -68 15.5 -125.5t45.5 -99.5t75.5 -65.5t105.5 -23.5q99 0 154 54t55 145q0 42 -12.5 74.5t-50 66t-106.5 73t-183 95.5q-85 42 -145.5 85t-98 89.5t-55 98t-17.5 112.5zM315 825q0 -42 14.5 -75t48 -63.5t89 -62t137.5 -71.5 q66 -34 115.5 -60.5t89.5 -54.5q11 16 19 38t8 50q0 35 -11 66t-39 62.5t-76.5 64t-123.5 69.5q-68 32 -128 62.5t-110 64.5q-15 -17 -24 -40.5t-9 -49.5z" /> +<glyph unicode="¨" horiz-adv-x="1182" d="M258 1409q0 35 10 59.5t26.5 39.5t38.5 21.5t46 6.5t46 -6.5t39 -21.5t27.5 -39.5t10.5 -59.5q0 -34 -10.5 -58.5t-27.5 -39.5t-39 -22t-46 -7t-46 7t-38.5 22t-26.5 39.5t-10 58.5zM678 1409q0 35 10 59.5t27 39.5t39 21.5t47 6.5q23 0 44.5 -6.5t38.5 -21.5t27.5 -39.5 t10.5 -59.5q0 -34 -10.5 -58.5t-27.5 -39.5t-38.5 -22t-44.5 -7q-25 0 -47 7t-39 22t-27 39.5t-10 58.5z" /> +<glyph unicode="©" horiz-adv-x="1731" d="M113 731q0 104 27 200.5t75.5 180t117 152.5t152 118t179.5 76t200 27t200.5 -27t180 -76t152.5 -118t118 -152.5t76 -180t27 -200.5t-27 -200t-76 -179.5t-118 -152t-152.5 -117.5t-180 -75.5t-200.5 -26.5t-200 26.5t-179.5 75.5t-152 117.5t-117 152t-75.5 179.5 t-27 200zM225 731q0 -88 23 -169.5t64.5 -152.5t100 -129.5t129.5 -100t152.5 -64.5t169.5 -23q89 0 171 23t153 64.5t129.5 100t100 129.5t64.5 152.5t23 169.5t-23 170t-64.5 153.5t-100 130t-129.5 100t-153 64.5t-171 23q-88 0 -169.5 -23t-152.5 -64.5t-129.5 -100 t-100 -130t-64.5 -153t-23 -170.5zM465 733q0 100 28 183t83.5 143t137 93.5t189.5 33.5q71 0 123.5 -11.5t87.5 -31t52.5 -46t17.5 -57.5q0 -22 -11 -40t-30 -30.5t-44.5 -19t-54.5 -6.5q0 29 -7.5 56.5t-24.5 50t-44.5 36t-68.5 13.5q-72 0 -122.5 -24t-82.5 -71 t-46.5 -115t-14.5 -157q0 -177 69 -272.5t199 -95.5q47 0 87 12t72 32t55.5 45t37.5 50q12 -9 20.5 -25.5t8.5 -38.5q0 -28 -19.5 -57t-58 -53t-96 -39t-134.5 -15q-102 0 -178.5 33t-128 93t-77 144t-25.5 187z" /> +<glyph unicode="ª" horiz-adv-x="860" d="M59 987q0 102 86 150.5t261 56.5l92 4v55q0 29 -3 53.5t-11.5 41.5t-24.5 26.5t-43 9.5q-25 0 -40 -9.5t-23.5 -27t-11.5 -40.5t-3 -50q-106 0 -164.5 20.5t-58.5 68.5q0 35 24 59t65.5 39t97 22t118.5 7q155 0 232 -48.5t77 -164.5v-302q0 -45 19.5 -61t68.5 -16v-90 h-239l-50 100h-14q-18 -22 -41 -42.5t-51.5 -36.5t-63 -25t-75.5 -9q-104 0 -164 53t-60 156zM295 991q0 -54 23 -76t55 -22q63 0 94 39.5t31 101.5v84l-47 -2q-85 -3 -120.5 -34.5t-35.5 -90.5z" /> +<glyph unicode="«" horiz-adv-x="1135" d="M133 500v106l313 357h144l-207 -410l207 -410h-144zM545 500v106l313 357h143l-206 -410l206 -410h-143z" /> +<glyph unicode="¬" d="M133 659v146h879v-512h-148v366h-731z" /> +<glyph unicode="­" horiz-adv-x="635" d="M51 451v215h533v-215h-533z" /> +<glyph unicode="®" horiz-adv-x="1731" d="M113 731q0 104 27 200.5t75.5 180t117 152.5t152 118t179.5 76t200 27t200.5 -27t180 -76t152.5 -118t118 -152.5t76 -180t27 -200.5t-27 -200t-76 -179.5t-118 -152t-152.5 -117.5t-180 -75.5t-200.5 -26.5t-200 26.5t-179.5 75.5t-152 117.5t-117 152t-75.5 179.5 t-27 200zM225 731q0 -88 23 -169.5t64.5 -152.5t100 -129.5t129.5 -100t152.5 -64.5t169.5 -23q89 0 171 23t153 64.5t129.5 100t100 129.5t64.5 152.5t23 169.5t-23 170t-64.5 153.5t-100 130t-129.5 100t-153 64.5t-171 23q-88 0 -169.5 -23t-152.5 -64.5t-129.5 -100 t-100 -130t-64.5 -153t-23 -170.5zM477 289v69h27q20 0 38 2.5t32 10t22 21.5t8 38v600q0 24 -8 38.5t-22 22t-32 9.5t-38 2h-27v72h369q352 0 352 -244q0 -49 -16 -86t-42 -64t-59.5 -45.5t-68.5 -29.5l182 -293q10 -17 19.5 -27.5t22.5 -16.5t30.5 -8t42.5 -2v-69h-217 l-226 381h-108v-240q2 -24 10 -38t21.5 -21.5t31 -10t37.5 -2.5h29v-69h-410zM758 748h86q55 0 92 11t59 33t31.5 56t9.5 80q0 45 -11 77t-34.5 51.5t-61 28.5t-91.5 9h-80v-346z" /> +<glyph unicode="¯" horiz-adv-x="940" d="M-10 1556v121h960v-121h-960z" /> +<glyph unicode="°" horiz-adv-x="819" d="M98 1151q0 65 24.5 121.5t66.5 98.5t98.5 66.5t120.5 24.5q65 0 121.5 -24.5t98.5 -66.5t66.5 -98.5t24.5 -121.5q0 -64 -24.5 -120.5t-66.5 -98.5t-98.5 -66t-121.5 -24q-64 0 -120.5 24t-98.5 66t-66.5 98.5t-24.5 120.5zM240 1151q0 -34 13 -65t36 -54.5t53.5 -37 t65.5 -13.5q36 0 67 13.5t54 37t36 54.5t13 65q0 36 -13 67.5t-36 54.5t-54 36.5t-67 13.5q-35 0 -65.5 -13.5t-53.5 -36.5t-36 -54.5t-13 -67.5z" /> +<glyph unicode="±" d="M133 0v145h879v-145h-879zM133 659v146h365v366h147v-366h367v-146h-367v-366h-147v366h-365z" /> +<glyph unicode="²" horiz-adv-x="819" d="M76 586v147l225 189q53 44 87.5 85.5t54.5 81.5t28 80t8 82q0 66 -21.5 103t-74.5 37q-35 0 -56 -18.5t-32.5 -47.5t-15 -65.5t-3.5 -71.5q-34 0 -67 7t-59 21.5t-42 38t-16 56.5q0 37 19 68.5t56 54.5t91.5 36t124.5 13q83 0 142.5 -15.5t98 -44t56.5 -69t18 -90.5 q0 -45 -12.5 -85t-45.5 -84t-90.5 -96t-146.5 -122l-167 -132h327q44 0 62 19.5t24 48.5l10 55h76l-8 -282h-651z" /> +<glyph unicode="³" horiz-adv-x="819" d="M80 623v106q22 -9 50 -18t58.5 -16.5t62.5 -12t62 -4.5q98 0 152.5 39.5t54.5 128.5q0 69 -55.5 106t-167.5 37h-68v96h68q38 0 71.5 12.5t58 35.5t38.5 55.5t14 71.5q0 63 -21.5 97t-74.5 34q-32 0 -53.5 -14.5t-34 -39.5t-18 -57t-5.5 -68q-41 0 -74 4t-56 13.5 t-35.5 26.5t-12.5 44q0 38 19 71.5t56 58t92 39t126 14.5t128 -14t98 -40t63 -63.5t22 -85.5q0 -90 -56 -146.5t-153 -80.5v-11q46 -7 90 -18t78 -33t55 -57.5t21 -91.5q0 -75 -38 -126.5t-96.5 -83t-128 -45.5t-132.5 -14q-84 0 -151 15t-107 35z" /> +<glyph unicode="´" horiz-adv-x="1182" d="M330 1241v27q22 29 49.5 67t55.5 78.5t52.5 81t40.5 74.5h322v-21q-19 -27 -63 -67.5t-98.5 -84.5t-113 -85.5t-106.5 -69.5h-139z" /> +<glyph unicode="µ" horiz-adv-x="1362" d="M166 -223q0 61 3 127.5t7.5 147.5t8.5 181t5 228v637h312v-676q0 -55 7.5 -104t25 -85.5t47.5 -57.5t75 -21q43 0 77.5 23t59 64.5t37.5 100t13 129.5v627h311v-815q0 -94 34 -134t105 -40h15v-109h-179q-105 0 -172.5 49t-93.5 129h-10q-24 -45 -50.5 -82t-59.5 -62.5 t-75 -39.5t-96 -14q-85 0 -145 31.5t-100 88.5q0 -85 7 -157t30 -126t66.5 -87.5t115.5 -42.5q0 -39 -13 -71.5t-37.5 -56.5t-59.5 -37.5t-79 -13.5q-38 0 -73 14t-61.5 45.5t-42 83t-15.5 126.5z" /> +<glyph unicode="¶" horiz-adv-x="1284" d="M82 1192q0 82 17 149t55 115t98 74t147 26h803v-108h-26q-35 0 -65.5 -5t-53.5 -20.5t-36 -44.5t-13 -78v-1273q0 -48 13 -77t36 -44.5t53.5 -20t65.5 -4.5h26v-108h-342v1657h-172v-1657h-342v108h27q35 0 65.5 4.5t53 20t36 44.5t13.5 77v764h-146q-90 0 -150 32.5 t-96 88t-51.5 128t-15.5 152.5z" /> +<glyph unicode="·" horiz-adv-x="623" d="M143 727q0 47 13 78.5t35.5 50.5t53.5 27t66 8q34 0 64.5 -8t53.5 -27t36.5 -50.5t13.5 -78.5q0 -46 -13.5 -77.5t-36.5 -50.5t-53.5 -27.5t-64.5 -8.5q-35 0 -66 8.5t-53.5 27.5t-35.5 50.5t-13 77.5z" /> +<glyph unicode="¸" horiz-adv-x="682" d="M102 -344q38 -8 75 -12t65 -4q58 0 91.5 20.5t33.5 73.5q0 30 -11.5 49t-32.5 30.5t-49 17t-61 7.5l43 180h117l-21 -88q50 -4 90.5 -18.5t69 -38.5t44 -57.5t15.5 -73.5q0 -54 -21 -97.5t-59 -74t-91.5 -46.5t-118.5 -16q-16 0 -39 1.5t-48 4.5t-49 7.5t-43 9.5v125z " /> +<glyph unicode="¹" horiz-adv-x="819" d="M96 1311q37 9 82.5 29.5t106.5 64.5l92 68h151v-717q0 -26 7.5 -41.5t20.5 -23.5t30.5 -10.5t36.5 -2.5h84v-90h-578v90h104q20 0 36.5 2.5t29.5 10.5t20 23.5t7 41.5v581q-48 -57 -85.5 -92t-74.5 -35q-29 0 -49.5 29.5t-20.5 71.5z" /> +<glyph unicode="º" horiz-adv-x="895" d="M72 1126q0 176 96 261.5t283 85.5q86 0 155 -21.5t117 -64.5t74 -108t26 -153q0 -176 -95.5 -262t-281.5 -86q-178 0 -276 86.5t-98 261.5zM311 1126q0 -121 30.5 -183t107.5 -62q75 0 106 62t31 183t-32 180.5t-108 59.5q-75 0 -105 -59.5t-30 -180.5z" /> +<glyph unicode="»" horiz-adv-x="1135" d="M133 143l207 410l-207 410h143l314 -357v-106l-314 -357h-143zM545 143l207 410l-207 410h143l313 -357v-106l-313 -357h-143z" /> +<glyph unicode="¼" horiz-adv-x="1720" d="M11 1311q37 9 82.5 29.5t106.5 64.5l92 68h151v-717q0 -26 7.5 -41.5t20.5 -23.5t30.5 -10.5t36.5 -2.5h84v-90h-578v90h104q20 0 36.5 2.5t29.5 10.5t20 23.5t7 41.5v581q-48 -57 -85.5 -92t-74.5 -35q-29 0 -49.5 29.5t-20.5 71.5zM418 0l731 1462h158l-729 -1462h-160 zM930 240v82l407 564h185v-537h159v-109h-159v-71q0 -26 7 -41.5t19 -23.5t27.5 -10.5t32.5 -2.5h41v-90h-471v90h57q17 0 32 2.5t26.5 10.5t18.5 23.5t7 41.5v71h-389zM1065 349h254v246q0 32 2.5 63.5t7.5 69.5q-8 -17 -17 -33.5t-14 -24.5z" /> +<glyph unicode="½" horiz-adv-x="1720" d="M11 1311q37 9 82.5 29.5t106.5 64.5l92 68h151v-717q0 -26 7.5 -41.5t20.5 -23.5t30.5 -10.5t36.5 -2.5h84v-90h-578v90h104q20 0 36.5 2.5t29.5 10.5t20 23.5t7 41.5v581q-48 -57 -85.5 -92t-74.5 -35q-29 0 -49.5 29.5t-20.5 71.5zM377 0l731 1462h158l-729 -1462h-160 zM1006 1v147l225 189q53 44 87.5 85.5t54.5 81.5t28 80t8 82q0 66 -21.5 103t-74.5 37q-35 0 -56 -18.5t-32.5 -47.5t-15 -65.5t-3.5 -71.5q-34 0 -67 7t-59 21.5t-42 38t-16 56.5q0 37 19 68.5t56 54.5t91.5 36t124.5 13q83 0 142.5 -15.5t98 -44t56.5 -69t18 -90.5 q0 -45 -12.5 -85t-45.5 -84t-90.5 -96t-146.5 -122l-167 -132h327q44 0 62 19.5t24 48.5l10 55h76l-8 -282h-651z" /> +<glyph unicode="¾" horiz-adv-x="1720" d="M80 623v106q22 -9 50 -18t58.5 -16.5t62.5 -12t62 -4.5q98 0 152.5 39.5t54.5 128.5q0 69 -55.5 106t-167.5 37h-68v96h68q38 0 71.5 12.5t58 35.5t38.5 55.5t14 71.5q0 63 -21.5 97t-74.5 34q-32 0 -53.5 -14.5t-34 -39.5t-18 -57t-5.5 -68q-41 0 -74 4t-56 13.5 t-35.5 26.5t-12.5 44q0 38 19 71.5t56 58t92 39t126 14.5t128 -14t98 -40t63 -63.5t22 -85.5q0 -90 -56 -146.5t-153 -80.5v-11q46 -7 90 -18t78 -33t55 -57.5t21 -91.5q0 -75 -38 -126.5t-96.5 -83t-128 -45.5t-132.5 -14q-84 0 -151 15t-107 35zM459 0l731 1462h158 l-729 -1462h-160zM930 240v82l407 564h185v-537h159v-109h-159v-71q0 -26 7 -41.5t19 -23.5t27.5 -10.5t32.5 -2.5h41v-90h-471v90h57q17 0 32 2.5t26.5 10.5t18.5 23.5t7 41.5v71h-389zM1065 349h254v246q0 32 2.5 63.5t7.5 69.5q-8 -17 -17 -33.5t-14 -24.5z" /> +<glyph unicode="¿" horiz-adv-x="1126" d="M113 -14q0 82 25.5 147t76 119t127 99t178.5 87l41 187h125l41 -252q-87 -35 -143.5 -82.5t-88.5 -102t-44.5 -114.5t-12.5 -121q0 -49 9 -89.5t28.5 -70t50 -45.5t72.5 -16q46 0 77.5 20.5t50.5 56t27.5 82t8.5 99.5q63 0 116 -9t91.5 -27t60 -45t21.5 -63 q0 -50 -26 -93t-79.5 -75t-136 -50.5t-195.5 -18.5q-108 0 -200 25.5t-158.5 74t-104.5 118.5t-38 159zM459 944q0 46 13.5 77.5t36.5 50.5t53.5 27.5t64.5 8.5q35 0 66 -8.5t53.5 -27.5t35.5 -50.5t13 -77.5q0 -47 -13 -78.5t-35.5 -50.5t-53.5 -27t-66 -8q-34 0 -64.5 8 t-53.5 27t-36.5 50.5t-13.5 78.5z" /> +<glyph unicode="À" horiz-adv-x="1542" d="M8 0v109h25q27 0 49.5 6t42 22.5t37 45.5t35.5 75l444 1204h281l428 -1206q15 -43 31.5 -71.5t36 -45t41.5 -23.5t46 -7h37v-109h-676v109h80q15 0 31 4.5t28.5 14t20.5 24.5t8 36q0 25 -6 48t-12 40l-72 205h-498l-59 -176q-8 -25 -16.5 -58.5t-8.5 -58.5q0 -20 8 -35 t21 -24.5t29.5 -14.5t34.5 -5h86v-109h-533zM377 1886v21h321q16 -34 41 -74.5t52.5 -81t55.5 -78.5t50 -67v-27h-139q-48 28 -106.5 69.5t-113 85.5t-98.5 84.5t-63 67.5zM489 606h414l-108 336q-11 35 -22.5 73.5t-23 78.5t-22 79.5t-18.5 75.5q-9 -31 -21 -68t-25.5 -76 l-27 -78t-25.5 -75z" /> +<glyph unicode="Á" horiz-adv-x="1542" d="M8 0v109h25q27 0 49.5 6t42 22.5t37 45.5t35.5 75l444 1204h281l428 -1206q15 -43 31.5 -71.5t36 -45t41.5 -23.5t46 -7h37v-109h-676v109h80q15 0 31 4.5t28.5 14t20.5 24.5t8 36q0 25 -6 48t-12 40l-72 205h-498l-59 -176q-8 -25 -16.5 -58.5t-8.5 -58.5q0 -20 8 -35 t21 -24.5t29.5 -14.5t34.5 -5h86v-109h-533zM489 606h414l-108 336q-11 35 -22.5 73.5t-23 78.5t-22 79.5t-18.5 75.5q-9 -31 -21 -68t-25.5 -76l-27 -78t-25.5 -75zM641 1579v27q22 29 49.5 67t55.5 78.5t52.5 81t40.5 74.5h322v-21q-19 -27 -63 -67.5t-98.5 -84.5 t-113 -85.5t-106.5 -69.5h-139z" /> +<glyph unicode="Â" horiz-adv-x="1542" d="M8 0v109h25q27 0 49.5 6t42 22.5t37 45.5t35.5 75l444 1204h281l428 -1206q15 -43 31.5 -71.5t36 -45t41.5 -23.5t46 -7h37v-109h-676v109h80q15 0 31 4.5t28.5 14t20.5 24.5t8 36q0 25 -6 48t-12 40l-72 205h-498l-59 -176q-8 -25 -16.5 -58.5t-8.5 -58.5q0 -20 8 -35 t21 -24.5t29.5 -14.5t34.5 -5h86v-109h-533zM415 1579v27q24 29 56.5 67t64.5 78.5t60.5 81t44.5 74.5h276q16 -34 44.5 -74.5t60.5 -81t64 -78.5t56 -67v-27h-141q-21 17 -50 40t-60 48t-60.5 50t-52.5 46q-23 -21 -52.5 -46t-60 -50t-59 -48t-49.5 -40h-142zM489 606h414 l-108 336q-11 35 -22.5 73.5t-23 78.5t-22 79.5t-18.5 75.5q-9 -31 -21 -68t-25.5 -76l-27 -78t-25.5 -75z" /> +<glyph unicode="Ã" horiz-adv-x="1542" d="M8 0v109h25q27 0 49.5 6t42 22.5t37 45.5t35.5 75l444 1204h281l428 -1206q15 -43 31.5 -71.5t36 -45t41.5 -23.5t46 -7h37v-109h-676v109h80q15 0 31 4.5t28.5 14t20.5 24.5t8 36q0 25 -6 48t-12 40l-72 205h-498l-59 -176q-8 -25 -16.5 -58.5t-8.5 -58.5q0 -20 8 -35 t21 -24.5t29.5 -14.5t34.5 -5h86v-109h-533zM364 1600q3 62 23.5 117t54 96.5t79.5 65.5t101 24t99.5 -20t83 -44.5t72 -44.5t65.5 -20q22 0 39.5 9t30 24t20 34.5t10.5 40.5h133q-3 -62 -23 -117t-53.5 -96.5t-79 -65.5t-100.5 -24t-99.5 20t-83 44.5t-72 44.5t-66.5 20 q-23 0 -40.5 -9t-30 -24t-20 -34.5t-10.5 -40.5h-133zM489 606h414l-108 336q-11 35 -22.5 73.5t-23 78.5t-22 79.5t-18.5 75.5q-9 -31 -21 -68t-25.5 -76l-27 -78t-25.5 -75z" /> +<glyph unicode="Ä" horiz-adv-x="1542" d="M8 0v109h25q27 0 49.5 6t42 22.5t37 45.5t35.5 75l444 1204h281l428 -1206q15 -43 31.5 -71.5t36 -45t41.5 -23.5t46 -7h37v-109h-676v109h80q15 0 31 4.5t28.5 14t20.5 24.5t8 36q0 25 -6 48t-12 40l-72 205h-498l-59 -176q-8 -25 -16.5 -58.5t-8.5 -58.5q0 -20 8 -35 t21 -24.5t29.5 -14.5t34.5 -5h86v-109h-533zM436 1747q0 35 10 59.5t26.5 39.5t38.5 21.5t46 6.5t46 -6.5t39 -21.5t27.5 -39.5t10.5 -59.5q0 -34 -10.5 -58.5t-27.5 -39.5t-39 -22t-46 -7t-46 7t-38.5 22t-26.5 39.5t-10 58.5zM489 606h414l-108 336q-11 35 -22.5 73.5 t-23 78.5t-22 79.5t-18.5 75.5q-9 -31 -21 -68t-25.5 -76l-27 -78t-25.5 -75zM856 1747q0 35 10 59.5t27 39.5t39 21.5t47 6.5q23 0 44.5 -6.5t38.5 -21.5t27.5 -39.5t10.5 -59.5q0 -34 -10.5 -58.5t-27.5 -39.5t-38.5 -22t-44.5 -7q-25 0 -47 7t-39 22t-27 39.5t-10 58.5z " /> +<glyph unicode="Å" horiz-adv-x="1542" d="M8 0v109h25q27 0 49.5 6t42 22.5t37 45.5t35.5 75l444 1204h281l428 -1206q15 -43 31.5 -71.5t36 -45t41.5 -23.5t46 -7h37v-109h-676v109h80q15 0 31 4.5t28.5 14t20.5 24.5t8 36q0 25 -6 48t-12 40l-72 205h-498l-59 -176q-8 -25 -16.5 -58.5t-8.5 -58.5q0 -20 8 -35 t21 -24.5t29.5 -14.5t34.5 -5h86v-109h-533zM489 606h414l-108 336q-11 35 -22.5 73.5t-23 78.5t-22 79.5t-18.5 75.5q-9 -31 -21 -68t-25.5 -76l-27 -78t-25.5 -75zM532 1573q0 54 19 96t52.5 70t78.5 42.5t96 14.5t96 -14.5t78.5 -42.5t52.5 -70t19 -96q0 -55 -19 -96.5 t-52.5 -69.5t-78.5 -42.5t-96 -14.5t-96 14.5t-78.5 42.5t-52.5 69.5t-19 96.5zM657 1573q0 -30 9.5 -51t26 -34.5t38.5 -19.5t47 -6t47 6t38.5 19.5t26 34.5t9.5 51t-9.5 51t-26 34t-38.5 19t-47 6t-47 -6t-38.5 -19t-26 -34t-9.5 -51z" /> +<glyph unicode="Æ" horiz-adv-x="2034" d="M0 0v109h25q53 0 95 38.5t87 120.5l575 1075l-135 11v108h1243l8 -377h-143l-10 97q-8 75 -38 115t-93 40h-344v-512h485v-123h-485v-577h409q31 0 53 11.5t38 32.5t25.5 49.5t14.5 62.5l17 96h141l-14 -377h-1200v109h86q56 0 80 34.5t24 87.5v238h-471l-86 -172 q-17 -32 -25 -61t-8 -48q0 -42 31.5 -60.5t91.5 -18.5h35v-109h-512zM539 592h405v745h-20z" /> +<glyph unicode="Ç" horiz-adv-x="1368" d="M113 733q0 166 45 304t133.5 237t221 154t306.5 55q118 0 205.5 -18.5t145.5 -50.5t87 -75.5t29 -93.5q0 -38 -16.5 -70.5t-49 -56.5t-80.5 -37.5t-110 -13.5q0 51 -11 101.5t-37.5 91.5t-69.5 66.5t-107 25.5q-97 0 -164 -41t-107.5 -120t-58.5 -194.5t-18 -263.5 t22 -259t71 -184.5t127.5 -110t192.5 -36.5q75 0 133.5 17.5t104.5 45.5t80.5 63t60.5 69q16 -12 25.5 -37t9.5 -51q0 -43 -23 -90.5t-77 -87.5t-143 -66t-220 -26q-178 0 -311 54t-221 153t-132 238t-44 308zM493 -344q38 -8 75 -12t65 -4q58 0 91.5 20.5t33.5 73.5 q0 30 -11.5 49t-32.5 30.5t-49 17t-61 7.5l43 180h117l-21 -88q50 -4 90.5 -18.5t69 -38.5t44 -57.5t15.5 -73.5q0 -54 -21 -97.5t-59 -74t-91.5 -46.5t-118.5 -16q-16 0 -39 1.5t-48 4.5t-49 7.5t-43 9.5v125z" /> +<glyph unicode="È" horiz-adv-x="1337" d="M57 0v109h86q22 0 41 4t33.5 16.5t22.5 37t8 64.5v990q0 44 -8 70t-22 40t-33 18.5t-42 4.5h-86v108h1137l8 -377h-143l-10 97q-8 75 -38 115t-93 40h-345v-512h486v-123h-486v-577h410q31 0 53 11.5t38 32.5t25.5 49.5t14.5 62.5l16 96h142l-15 -377h-1200zM308 1886v21 h321q16 -34 41 -74.5t52.5 -81t55.5 -78.5t50 -67v-27h-139q-48 28 -106.5 69.5t-113 85.5t-98.5 84.5t-63 67.5z" /> +<glyph unicode="É" horiz-adv-x="1337" d="M57 0v109h86q22 0 41 4t33.5 16.5t22.5 37t8 64.5v990q0 44 -8 70t-22 40t-33 18.5t-42 4.5h-86v108h1137l8 -377h-143l-10 97q-8 75 -38 115t-93 40h-345v-512h486v-123h-486v-577h410q31 0 53 11.5t38 32.5t25.5 49.5t14.5 62.5l16 96h142l-15 -377h-1200zM523 1579v27 q22 29 49.5 67t55.5 78.5t52.5 81t40.5 74.5h322v-21q-19 -27 -63 -67.5t-98.5 -84.5t-113 -85.5t-106.5 -69.5h-139z" /> +<glyph unicode="Ê" horiz-adv-x="1337" d="M57 0v109h86q22 0 41 4t33.5 16.5t22.5 37t8 64.5v990q0 44 -8 70t-22 40t-33 18.5t-42 4.5h-86v108h1137l8 -377h-143l-10 97q-8 75 -38 115t-93 40h-345v-512h486v-123h-486v-577h410q31 0 53 11.5t38 32.5t25.5 49.5t14.5 62.5l16 96h142l-15 -377h-1200zM288 1579v27 q24 29 56.5 67t64.5 78.5t60.5 81t44.5 74.5h276q16 -34 44.5 -74.5t60.5 -81t64 -78.5t56 -67v-27h-141q-21 17 -50 40t-60 48t-60.5 50t-52.5 46q-23 -21 -52.5 -46t-60 -50t-59 -48t-49.5 -40h-142z" /> +<glyph unicode="Ë" horiz-adv-x="1337" d="M57 0v109h86q22 0 41 4t33.5 16.5t22.5 37t8 64.5v990q0 44 -8 70t-22 40t-33 18.5t-42 4.5h-86v108h1137l8 -377h-143l-10 97q-8 75 -38 115t-93 40h-345v-512h486v-123h-486v-577h410q31 0 53 11.5t38 32.5t25.5 49.5t14.5 62.5l16 96h142l-15 -377h-1200zM356 1747 q0 35 10 59.5t26.5 39.5t38.5 21.5t46 6.5t46 -6.5t39 -21.5t27.5 -39.5t10.5 -59.5q0 -34 -10.5 -58.5t-27.5 -39.5t-39 -22t-46 -7t-46 7t-38.5 22t-26.5 39.5t-10 58.5zM776 1747q0 35 10 59.5t27 39.5t39 21.5t47 6.5q23 0 44.5 -6.5t38.5 -21.5t27.5 -39.5t10.5 -59.5 q0 -34 -10.5 -58.5t-27.5 -39.5t-38.5 -22t-44.5 -7q-25 0 -47 7t-39 22t-27 39.5t-10 58.5z" /> +<glyph unicode="Ì" horiz-adv-x="821" d="M48 1886v21h321q16 -34 41 -74.5t52.5 -81t55.5 -78.5t50 -67v-27h-139q-48 28 -106.5 69.5t-113 85.5t-98.5 84.5t-63 67.5zM57 0v109h86q23 0 42 4.5t33 18.5t22 40t8 70v978q0 44 -8 70t-22 40t-33 18.5t-42 4.5h-86v109h707v-109h-86q-22 0 -41.5 -4.5t-33.5 -18.5 t-22 -40t-8 -70v-978q0 -44 8 -70t22 -40t33.5 -18.5t41.5 -4.5h86v-109h-707z" /> +<glyph unicode="Í" horiz-adv-x="821" d="M57 0v109h86q23 0 42 4.5t33 18.5t22 40t8 70v978q0 44 -8 70t-22 40t-33 18.5t-42 4.5h-86v109h707v-109h-86q-22 0 -41.5 -4.5t-33.5 -18.5t-22 -40t-8 -70v-978q0 -44 8 -70t22 -40t33.5 -18.5t41.5 -4.5h86v-109h-707zM253 1579v27q22 29 49.5 67t55.5 78.5t52.5 81 t40.5 74.5h322v-21q-19 -27 -63 -67.5t-98.5 -84.5t-113 -85.5t-106.5 -69.5h-139z" /> +<glyph unicode="Î" horiz-adv-x="821" d="M48 1579v27q24 29 56.5 67t64.5 78.5t60.5 81t44.5 74.5h276q16 -34 44.5 -74.5t60.5 -81t64 -78.5t56 -67v-27h-141q-21 17 -50 40t-60 48t-60.5 50t-52.5 46q-23 -21 -52.5 -46t-60 -50t-59 -48t-49.5 -40h-142zM57 0v109h86q23 0 42 4.5t33 18.5t22 40t8 70v978 q0 44 -8 70t-22 40t-33 18.5t-42 4.5h-86v109h707v-109h-86q-22 0 -41.5 -4.5t-33.5 -18.5t-22 -40t-8 -70v-978q0 -44 8 -70t22 -40t33.5 -18.5t41.5 -4.5h86v-109h-707z" /> +<glyph unicode="Ï" horiz-adv-x="821" d="M57 0v109h86q23 0 42 4.5t33 18.5t22 40t8 70v978q0 44 -8 70t-22 40t-33 18.5t-42 4.5h-86v109h707v-109h-86q-22 0 -41.5 -4.5t-33.5 -18.5t-22 -40t-8 -70v-978q0 -44 8 -70t22 -40t33.5 -18.5t41.5 -4.5h86v-109h-707zM79 1747q0 35 10 59.5t26.5 39.5t38.5 21.5 t46 6.5t46 -6.5t39 -21.5t27.5 -39.5t10.5 -59.5q0 -34 -10.5 -58.5t-27.5 -39.5t-39 -22t-46 -7t-46 7t-38.5 22t-26.5 39.5t-10 58.5zM499 1747q0 35 10 59.5t27 39.5t39 21.5t47 6.5q23 0 44.5 -6.5t38.5 -21.5t27.5 -39.5t10.5 -59.5q0 -34 -10.5 -58.5t-27.5 -39.5 t-38.5 -22t-44.5 -7q-25 0 -47 7t-39 22t-27 39.5t-10 58.5z" /> +<glyph unicode="Ð" horiz-adv-x="1571" d="M57 0v109h86q23 0 42 4.5t33 18.5t22 40t8 70v460h-170v125h170v402q0 41 -8 65.5t-22.5 37.5t-33.5 17.5t-41 4.5h-86v108h676q170 0 304.5 -44.5t228 -133t143 -220.5t49.5 -306q0 -168 -46 -307.5t-137.5 -239.5t-227 -155.5t-314.5 -55.5h-676zM571 127h115 q105 0 185 43.5t133.5 125.5t80.5 198.5t27 263.5q0 293 -107.5 436t-316.5 143h-117v-510h256v-125h-256v-575z" /> +<glyph unicode="Ñ" horiz-adv-x="1614" d="M57 0v109h86q22 0 41 4.5t33.5 18.5t22.5 40t8 70v987q0 41 -8.5 65.5t-23 37.5t-33.5 17.5t-40 4.5h-86v108h455l723 -1022v789q0 41 -8.5 65.5t-23 37.5t-33.5 17.5t-40 4.5h-86v108h535v-108h-86q-21 0 -40 -4.5t-33.5 -18.5t-22.5 -40t-8 -70v-1221h-189l-799 1128 v-886q0 -44 8.5 -70t22.5 -40t33.5 -18.5t40.5 -4.5h86v-109h-535zM420 1600q3 62 23.5 117t54 96.5t79.5 65.5t101 24t99.5 -20t83 -44.5t72 -44.5t65.5 -20q22 0 39.5 9t30 24t20 34.5t10.5 40.5h133q-3 -62 -23 -117t-53.5 -96.5t-79 -65.5t-100.5 -24t-99.5 20t-83 44.5 t-72 44.5t-66.5 20q-23 0 -40.5 -9t-30 -24t-20 -34.5t-10.5 -40.5h-133z" /> +<glyph unicode="Ò" horiz-adv-x="1612" d="M113 735q0 170 43 308.5t129.5 236.5t217 151.5t306.5 53.5q166 0 294.5 -53.5t216.5 -152t133.5 -237t45.5 -309.5q0 -169 -45.5 -308t-134 -238t-217 -153t-295.5 -54q-175 0 -305.5 54t-216.5 153t-129 238.5t-43 309.5zM432 1886v21h321q16 -34 41 -74.5t52.5 -81 t55.5 -78.5t50 -67v-27h-139q-48 28 -106.5 69.5t-113 85.5t-98.5 84.5t-63 67.5zM457 733q0 -147 19 -262t61 -194.5t108.5 -121.5t161.5 -42q96 0 162.5 42t107.5 121.5t59.5 194.5t18.5 262t-18.5 262t-59.5 194.5t-107 121t-161 41.5q-96 0 -163 -41.5t-109 -121 t-61 -194.5t-19 -262z" /> +<glyph unicode="Ó" horiz-adv-x="1612" d="M113 735q0 170 43 308.5t129.5 236.5t217 151.5t306.5 53.5q166 0 294.5 -53.5t216.5 -152t133.5 -237t45.5 -309.5q0 -169 -45.5 -308t-134 -238t-217 -153t-295.5 -54q-175 0 -305.5 54t-216.5 153t-129 238.5t-43 309.5zM457 733q0 -147 19 -262t61 -194.5 t108.5 -121.5t161.5 -42q96 0 162.5 42t107.5 121.5t59.5 194.5t18.5 262t-18.5 262t-59.5 194.5t-107 121t-161 41.5q-96 0 -163 -41.5t-109 -121t-61 -194.5t-19 -262zM666 1579v27q22 29 49.5 67t55.5 78.5t52.5 81t40.5 74.5h322v-21q-19 -27 -63 -67.5t-98.5 -84.5 t-113 -85.5t-106.5 -69.5h-139z" /> +<glyph unicode="Ô" horiz-adv-x="1612" d="M113 735q0 170 43 308.5t129.5 236.5t217 151.5t306.5 53.5q166 0 294.5 -53.5t216.5 -152t133.5 -237t45.5 -309.5q0 -169 -45.5 -308t-134 -238t-217 -153t-295.5 -54q-175 0 -305.5 54t-216.5 153t-129 238.5t-43 309.5zM440 1579v27q24 29 56.5 67t64.5 78.5t60.5 81 t44.5 74.5h276q16 -34 44.5 -74.5t60.5 -81t64 -78.5t56 -67v-27h-141q-21 17 -50 40t-60 48t-60.5 50t-52.5 46q-23 -21 -52.5 -46t-60 -50t-59 -48t-49.5 -40h-142zM457 733q0 -147 19 -262t61 -194.5t108.5 -121.5t161.5 -42q96 0 162.5 42t107.5 121.5t59.5 194.5 t18.5 262t-18.5 262t-59.5 194.5t-107 121t-161 41.5q-96 0 -163 -41.5t-109 -121t-61 -194.5t-19 -262z" /> +<glyph unicode="Õ" horiz-adv-x="1612" d="M113 735q0 170 43 308.5t129.5 236.5t217 151.5t306.5 53.5q166 0 294.5 -53.5t216.5 -152t133.5 -237t45.5 -309.5q0 -169 -45.5 -308t-134 -238t-217 -153t-295.5 -54q-175 0 -305.5 54t-216.5 153t-129 238.5t-43 309.5zM397 1600q3 62 23.5 117t54 96.5t79.5 65.5 t101 24t99.5 -20t83 -44.5t72 -44.5t65.5 -20q22 0 39.5 9t30 24t20 34.5t10.5 40.5h133q-3 -62 -23 -117t-53.5 -96.5t-79 -65.5t-100.5 -24t-99.5 20t-83 44.5t-72 44.5t-66.5 20q-23 0 -40.5 -9t-30 -24t-20 -34.5t-10.5 -40.5h-133zM457 733q0 -147 19 -262t61 -194.5 t108.5 -121.5t161.5 -42q96 0 162.5 42t107.5 121.5t59.5 194.5t18.5 262t-18.5 262t-59.5 194.5t-107 121t-161 41.5q-96 0 -163 -41.5t-109 -121t-61 -194.5t-19 -262z" /> +<glyph unicode="Ö" horiz-adv-x="1612" d="M113 735q0 170 43 308.5t129.5 236.5t217 151.5t306.5 53.5q166 0 294.5 -53.5t216.5 -152t133.5 -237t45.5 -309.5q0 -169 -45.5 -308t-134 -238t-217 -153t-295.5 -54q-175 0 -305.5 54t-216.5 153t-129 238.5t-43 309.5zM457 733q0 -147 19 -262t61 -194.5 t108.5 -121.5t161.5 -42q96 0 162.5 42t107.5 121.5t59.5 194.5t18.5 262t-18.5 262t-59.5 194.5t-107 121t-161 41.5q-96 0 -163 -41.5t-109 -121t-61 -194.5t-19 -262zM463 1747q0 35 10 59.5t26.5 39.5t38.5 21.5t46 6.5t46 -6.5t39 -21.5t27.5 -39.5t10.5 -59.5 q0 -34 -10.5 -58.5t-27.5 -39.5t-39 -22t-46 -7t-46 7t-38.5 22t-26.5 39.5t-10 58.5zM883 1747q0 35 10 59.5t27 39.5t39 21.5t47 6.5q23 0 44.5 -6.5t38.5 -21.5t27.5 -39.5t10.5 -59.5q0 -34 -10.5 -58.5t-27.5 -39.5t-38.5 -22t-44.5 -7q-25 0 -47 7t-39 22t-27 39.5 t-10 58.5z" /> +<glyph unicode="×" d="M166 432l301 303l-301 301l104 103l301 -301l301 303l105 -105l-303 -303l303 -303l-103 -102l-303 303l-301 -303z" /> +<glyph unicode="Ø" horiz-adv-x="1612" d="M113 735q0 170 43 308.5t129.5 236.5t217 151.5t306.5 53.5q85 0 160 -15t141 -43l64 119h143l-96 -178q136 -96 207 -258t71 -377q0 -169 -45.5 -308t-134 -238t-217 -153t-295.5 -54q-173 0 -303 53l-62 -115h-145l94 174q-140 96 -209 260.5t-69 382.5zM457 733 q0 -128 14 -230t45 -179l506 942q-38 42 -91.5 64t-121.5 22q-96 0 -163 -41.5t-109 -121t-61 -194.5t-19 -262zM592 197q40 -42 93 -63t122 -21q96 0 162.5 42t107.5 121.5t59.5 194.5t18.5 262q0 127 -14 228.5t-43 179.5z" /> +<glyph unicode="Ù" horiz-adv-x="1530" d="M33 1354v108h706v-108h-86q-21 0 -40 -4.5t-33.5 -18.5t-22.5 -40t-8 -70v-791q0 -86 21.5 -144.5t61.5 -94t96 -51t126 -15.5q68 0 123 17.5t93.5 54.5t59.5 94t21 135v803q0 41 -8 65.5t-22.5 37.5t-33.5 17.5t-40 4.5h-86v108h536v-108h-88q-21 0 -40 -4.5 t-33.5 -18.5t-22.5 -40t-8 -70v-799q0 -103 -29.5 -185t-92 -139t-159.5 -87.5t-231 -30.5t-239.5 25.5t-178.5 81.5t-111.5 144.5t-38.5 214.5v783q0 41 -8.5 65.5t-23 37.5t-33 17.5t-39.5 4.5h-88zM432 1886v21h321q16 -34 41 -74.5t52.5 -81t55.5 -78.5t50 -67v-27h-139 q-48 28 -106.5 69.5t-113 85.5t-98.5 84.5t-63 67.5z" /> +<glyph unicode="Ú" horiz-adv-x="1530" d="M33 1354v108h706v-108h-86q-21 0 -40 -4.5t-33.5 -18.5t-22.5 -40t-8 -70v-791q0 -86 21.5 -144.5t61.5 -94t96 -51t126 -15.5q68 0 123 17.5t93.5 54.5t59.5 94t21 135v803q0 41 -8 65.5t-22.5 37.5t-33.5 17.5t-40 4.5h-86v108h536v-108h-88q-21 0 -40 -4.5 t-33.5 -18.5t-22.5 -40t-8 -70v-799q0 -103 -29.5 -185t-92 -139t-159.5 -87.5t-231 -30.5t-239.5 25.5t-178.5 81.5t-111.5 144.5t-38.5 214.5v783q0 41 -8.5 65.5t-23 37.5t-33 17.5t-39.5 4.5h-88zM643 1579v27q22 29 49.5 67t55.5 78.5t52.5 81t40.5 74.5h322v-21 q-19 -27 -63 -67.5t-98.5 -84.5t-113 -85.5t-106.5 -69.5h-139z" /> +<glyph unicode="Û" horiz-adv-x="1530" d="M33 1354v108h706v-108h-86q-21 0 -40 -4.5t-33.5 -18.5t-22.5 -40t-8 -70v-791q0 -86 21.5 -144.5t61.5 -94t96 -51t126 -15.5q68 0 123 17.5t93.5 54.5t59.5 94t21 135v803q0 41 -8 65.5t-22.5 37.5t-33.5 17.5t-40 4.5h-86v108h536v-108h-88q-21 0 -40 -4.5 t-33.5 -18.5t-22.5 -40t-8 -70v-799q0 -103 -29.5 -185t-92 -139t-159.5 -87.5t-231 -30.5t-239.5 25.5t-178.5 81.5t-111.5 144.5t-38.5 214.5v783q0 41 -8.5 65.5t-23 37.5t-33 17.5t-39.5 4.5h-88zM454 1579v27q24 29 56.5 67t64.5 78.5t60.5 81t44.5 74.5h276 q16 -34 44.5 -74.5t60.5 -81t64 -78.5t56 -67v-27h-141q-21 17 -50 40t-60 48t-60.5 50t-52.5 46q-23 -21 -52.5 -46t-60 -50t-59 -48t-49.5 -40h-142z" /> +<glyph unicode="Ü" horiz-adv-x="1530" d="M33 1354v108h706v-108h-86q-21 0 -40 -4.5t-33.5 -18.5t-22.5 -40t-8 -70v-791q0 -86 21.5 -144.5t61.5 -94t96 -51t126 -15.5q68 0 123 17.5t93.5 54.5t59.5 94t21 135v803q0 41 -8 65.5t-22.5 37.5t-33.5 17.5t-40 4.5h-86v108h536v-108h-88q-21 0 -40 -4.5 t-33.5 -18.5t-22.5 -40t-8 -70v-799q0 -103 -29.5 -185t-92 -139t-159.5 -87.5t-231 -30.5t-239.5 25.5t-178.5 81.5t-111.5 144.5t-38.5 214.5v783q0 41 -8.5 65.5t-23 37.5t-33 17.5t-39.5 4.5h-88zM494 1747q0 35 10 59.5t26.5 39.5t38.5 21.5t46 6.5t46 -6.5t39 -21.5 t27.5 -39.5t10.5 -59.5q0 -34 -10.5 -58.5t-27.5 -39.5t-39 -22t-46 -7t-46 7t-38.5 22t-26.5 39.5t-10 58.5zM914 1747q0 35 10 59.5t27 39.5t39 21.5t47 6.5q23 0 44.5 -6.5t38.5 -21.5t27.5 -39.5t10.5 -59.5q0 -34 -10.5 -58.5t-27.5 -39.5t-38.5 -22t-44.5 -7 q-25 0 -47 7t-39 22t-27 39.5t-10 58.5z" /> +<glyph unicode="Ý" horiz-adv-x="1419" d="M0 1354v108h686v-108h-35q-62 0 -92.5 -25t-30.5 -67q0 -26 9.5 -56.5t21.5 -56.5l152 -301q32 -65 52.5 -115t37.5 -98q21 54 48.5 117.5t61.5 132.5l119 245q22 45 28.5 75.5t6.5 47.5q0 53 -33.5 77t-101.5 24h-47v108h536v-108h-39q-26 0 -44.5 -7t-35 -25t-34 -49 t-41.5 -79l-348 -678v-280q0 -45 9 -70t24.5 -38t36 -16t44.5 -3h101v-109h-756v109h96q25 0 46.5 3t37.5 15.5t25.5 37.5t9.5 68v285l-379 727q-15 30 -28.5 51t-29.5 33.5t-36.5 18.5t-50.5 6h-27zM602 1579v27q22 29 49.5 67t55.5 78.5t52.5 81t40.5 74.5h322v-21 q-19 -27 -63 -67.5t-98.5 -84.5t-113 -85.5t-106.5 -69.5h-139z" /> +<glyph unicode="Þ" horiz-adv-x="1307" d="M57 0v109h86q23 0 42 4.5t33 18.5t22 40t8 70v979q0 44 -8 70t-22 40t-33 18.5t-42 4.5h-86v108h707v-108h-84q-21 0 -41 -4t-35 -17t-24 -37t-9 -65v-37h115q142 -2 247 -32.5t174.5 -86t103.5 -135t34 -180.5q0 -92 -32 -177t-104 -150t-187 -103.5t-281 -38.5h-70v-60 q2 -40 11 -64.5t23.5 -37t34 -16.5t40.5 -4h84v-109h-707zM571 410h50q76 0 129 19t86.5 60t49 106t15.5 157q0 82 -13.5 142.5t-43 100t-77 59t-116.5 19.5h-80v-663z" /> +<glyph unicode="ß" horiz-adv-x="1446" d="M12 0v109h88q22 0 41 4.5t33.5 18.5t22.5 40t8 70v714h-164v142h164v20q0 128 41 216t112.5 142t168.5 77.5t210 23.5q142 0 241 -37t161.5 -109.5t91 -179t29.5 -245.5h-115q-50 0 -93.5 -6t-76 -22t-51.5 -42.5t-19 -67.5q0 -36 12.5 -63t39.5 -50.5t70.5 -47 t105.5 -52.5q64 -30 108 -67.5t71.5 -80.5t39.5 -89t12 -94q0 -87 -27.5 -151.5t-79 -107.5t-126.5 -64t-170 -21q-93 0 -176.5 18.5t-149.5 56.5v248h110q7 -41 24.5 -78t44 -64.5t61.5 -44t77 -16.5q69 0 109.5 36t40.5 102q0 36 -9.5 66.5t-33 58.5t-63.5 55t-101 55 q-75 35 -124.5 75.5t-79 86.5t-42 96t-12.5 103q0 71 24.5 122.5t69 86t105.5 53t133 22.5q-1 94 -16.5 159.5t-44.5 106.5t-70.5 59.5t-94.5 18.5q-52 0 -94.5 -17t-72.5 -52.5t-46 -90t-16 -128.5v-1174h-502z" /> +<glyph unicode="à" horiz-adv-x="1227" d="M92 313q0 167 114.5 247t344.5 87l168 6v113q0 51 -4 94t-17 74t-38.5 48t-67.5 17q-39 0 -65.5 -16.5t-42.5 -46t-22.5 -70t-6.5 -88.5q-138 0 -207.5 31t-69.5 106q0 56 33.5 96t91 65t134 36.5t163.5 11.5q108 0 188.5 -18.5t134 -59.5t80.5 -107.5t27 -162.5v-522 q0 -42 6.5 -70t20.5 -44.5t38 -23.5t58 -7h8v-109h-381l-43 141h-18q-34 -41 -64 -71.5t-64 -50.5t-76.5 -29.5t-100.5 -9.5q-68 0 -126.5 20t-102 61.5t-68.5 104t-25 147.5zM237 1548v21h321q16 -34 41 -74.5t52.5 -81t55.5 -78.5t50 -67v-27h-139q-48 28 -106.5 69.5 t-113 85.5t-98.5 84.5t-63 67.5zM410 305q0 -88 28 -132t88 -44q44 0 79.5 18.5t61 52.5t39 82.5t13.5 108.5v154l-92 -6q-61 -3 -103 -19.5t-67 -45.5t-36 -71t-11 -98z" /> +<glyph unicode="á" horiz-adv-x="1227" d="M92 313q0 167 114.5 247t344.5 87l168 6v113q0 51 -4 94t-17 74t-38.5 48t-67.5 17q-39 0 -65.5 -16.5t-42.5 -46t-22.5 -70t-6.5 -88.5q-138 0 -207.5 31t-69.5 106q0 56 33.5 96t91 65t134 36.5t163.5 11.5q108 0 188.5 -18.5t134 -59.5t80.5 -107.5t27 -162.5v-522 q0 -42 6.5 -70t20.5 -44.5t38 -23.5t58 -7h8v-109h-381l-43 141h-18q-34 -41 -64 -71.5t-64 -50.5t-76.5 -29.5t-100.5 -9.5q-68 0 -126.5 20t-102 61.5t-68.5 104t-25 147.5zM410 305q0 -88 28 -132t88 -44q44 0 79.5 18.5t61 52.5t39 82.5t13.5 108.5v154l-92 -6 q-61 -3 -103 -19.5t-67 -45.5t-36 -71t-11 -98zM467 1241v27q22 29 49.5 67t55.5 78.5t52.5 81t40.5 74.5h322v-21q-19 -27 -63 -67.5t-98.5 -84.5t-113 -85.5t-106.5 -69.5h-139z" /> +<glyph unicode="â" horiz-adv-x="1227" d="M92 313q0 167 114.5 247t344.5 87l168 6v113q0 51 -4 94t-17 74t-38.5 48t-67.5 17q-39 0 -65.5 -16.5t-42.5 -46t-22.5 -70t-6.5 -88.5q-138 0 -207.5 31t-69.5 106q0 56 33.5 96t91 65t134 36.5t163.5 11.5q108 0 188.5 -18.5t134 -59.5t80.5 -107.5t27 -162.5v-522 q0 -42 6.5 -70t20.5 -44.5t38 -23.5t58 -7h8v-109h-381l-43 141h-18q-34 -41 -64 -71.5t-64 -50.5t-76.5 -29.5t-100.5 -9.5q-68 0 -126.5 20t-102 61.5t-68.5 104t-25 147.5zM256 1241v27q24 29 56.5 67t64.5 78.5t60.5 81t44.5 74.5h276q16 -34 44.5 -74.5t60.5 -81 t64 -78.5t56 -67v-27h-141q-21 17 -50 40t-60 48t-60.5 50t-52.5 46q-23 -21 -52.5 -46t-60 -50t-59 -48t-49.5 -40h-142zM410 305q0 -88 28 -132t88 -44q44 0 79.5 18.5t61 52.5t39 82.5t13.5 108.5v154l-92 -6q-61 -3 -103 -19.5t-67 -45.5t-36 -71t-11 -98z" /> +<glyph unicode="ã" horiz-adv-x="1227" d="M92 313q0 167 114.5 247t344.5 87l168 6v113q0 51 -4 94t-17 74t-38.5 48t-67.5 17q-39 0 -65.5 -16.5t-42.5 -46t-22.5 -70t-6.5 -88.5q-138 0 -207.5 31t-69.5 106q0 56 33.5 96t91 65t134 36.5t163.5 11.5q108 0 188.5 -18.5t134 -59.5t80.5 -107.5t27 -162.5v-522 q0 -42 6.5 -70t20.5 -44.5t38 -23.5t58 -7h8v-109h-381l-43 141h-18q-34 -41 -64 -71.5t-64 -50.5t-76.5 -29.5t-100.5 -9.5q-68 0 -126.5 20t-102 61.5t-68.5 104t-25 147.5zM211 1262q3 62 23.5 117t54 96.5t79.5 65.5t101 24t99.5 -20t83 -44.5t72 -44.5t65.5 -20 q22 0 39.5 9t30 24t20 34.5t10.5 40.5h133q-3 -62 -23 -117t-53.5 -96.5t-79 -65.5t-100.5 -24t-99.5 20t-83 44.5t-72 44.5t-66.5 20q-23 0 -40.5 -9t-30 -24t-20 -34.5t-10.5 -40.5h-133zM410 305q0 -88 28 -132t88 -44q44 0 79.5 18.5t61 52.5t39 82.5t13.5 108.5v154 l-92 -6q-61 -3 -103 -19.5t-67 -45.5t-36 -71t-11 -98z" /> +<glyph unicode="ä" horiz-adv-x="1227" d="M92 313q0 167 114.5 247t344.5 87l168 6v113q0 51 -4 94t-17 74t-38.5 48t-67.5 17q-39 0 -65.5 -16.5t-42.5 -46t-22.5 -70t-6.5 -88.5q-138 0 -207.5 31t-69.5 106q0 56 33.5 96t91 65t134 36.5t163.5 11.5q108 0 188.5 -18.5t134 -59.5t80.5 -107.5t27 -162.5v-522 q0 -42 6.5 -70t20.5 -44.5t38 -23.5t58 -7h8v-109h-381l-43 141h-18q-34 -41 -64 -71.5t-64 -50.5t-76.5 -29.5t-100.5 -9.5q-68 0 -126.5 20t-102 61.5t-68.5 104t-25 147.5zM278 1409q0 35 10 59.5t26.5 39.5t38.5 21.5t46 6.5t46 -6.5t39 -21.5t27.5 -39.5t10.5 -59.5 q0 -34 -10.5 -58.5t-27.5 -39.5t-39 -22t-46 -7t-46 7t-38.5 22t-26.5 39.5t-10 58.5zM410 305q0 -88 28 -132t88 -44q44 0 79.5 18.5t61 52.5t39 82.5t13.5 108.5v154l-92 -6q-61 -3 -103 -19.5t-67 -45.5t-36 -71t-11 -98zM698 1409q0 35 10 59.5t27 39.5t39 21.5t47 6.5 q23 0 44.5 -6.5t38.5 -21.5t27.5 -39.5t10.5 -59.5q0 -34 -10.5 -58.5t-27.5 -39.5t-38.5 -22t-44.5 -7q-25 0 -47 7t-39 22t-27 39.5t-10 58.5z" /> +<glyph unicode="å" horiz-adv-x="1227" d="M92 313q0 167 114.5 247t344.5 87l168 6v113q0 51 -4 94t-17 74t-38.5 48t-67.5 17q-39 0 -65.5 -16.5t-42.5 -46t-22.5 -70t-6.5 -88.5q-138 0 -207.5 31t-69.5 106q0 56 33.5 96t91 65t134 36.5t163.5 11.5q108 0 188.5 -18.5t134 -59.5t80.5 -107.5t27 -162.5v-522 q0 -42 6.5 -70t20.5 -44.5t38 -23.5t58 -7h8v-109h-381l-43 141h-18q-34 -41 -64 -71.5t-64 -50.5t-76.5 -29.5t-100.5 -9.5q-68 0 -126.5 20t-102 61.5t-68.5 104t-25 147.5zM373 1444q0 54 19 96t52.5 70t78.5 42.5t96 14.5t96 -14.5t78.5 -42.5t52.5 -70t19 -96 q0 -55 -19 -96.5t-52.5 -69.5t-78.5 -42.5t-96 -14.5t-96 14.5t-78.5 42.5t-52.5 69.5t-19 96.5zM410 305q0 -88 28 -132t88 -44q44 0 79.5 18.5t61 52.5t39 82.5t13.5 108.5v154l-92 -6q-61 -3 -103 -19.5t-67 -45.5t-36 -71t-11 -98zM498 1444q0 -30 9.5 -51t26 -34.5 t38.5 -19.5t47 -6t47 6t38.5 19.5t26 34.5t9.5 51t-9.5 51t-26 34t-38.5 19t-47 6t-47 -6t-38.5 -19t-26 -34t-9.5 -51z" /> +<glyph unicode="æ" horiz-adv-x="1792" d="M92 313q0 167 114.5 247t344.5 87l168 6v113q0 51 -4 94t-17 74t-38.5 48t-67.5 17q-39 0 -65.5 -16.5t-42.5 -46t-22.5 -70t-6.5 -88.5q-138 0 -207.5 31t-69.5 106q0 56 33.5 96t91 65t134 36.5t163.5 11.5q109 0 190.5 -27t135.5 -89q60 57 135 86.5t166 29.5 q111 0 200 -31.5t151 -93.5t95 -154t33 -214v-105h-672q3 -103 22.5 -177t54.5 -122t84.5 -71t113.5 -23q53 0 98 12.5t81.5 35t63.5 53t45 65.5q56 -30 56 -100q0 -44 -23.5 -83.5t-72.5 -69.5t-124.5 -48t-179.5 -18q-151 0 -260.5 50t-175.5 146q-69 -103 -171 -149.5 t-232 -46.5q-68 0 -126.5 20t-102 61.5t-68.5 104t-25 147.5zM410 305q0 -88 28 -132t88 -44q44 0 79.5 18.5t61 52.5t39 82.5t13.5 108.5v154l-92 -6q-61 -3 -103 -19.5t-67 -45.5t-36 -71t-11 -98zM1038 657h355q0 160 -39 247t-123 87q-85 0 -136.5 -85t-56.5 -249z" /> +<glyph unicode="ç" horiz-adv-x="1079" d="M96 545q0 166 38.5 277t106 178t159.5 95.5t198 28.5q99 0 175 -16.5t127 -45.5t77.5 -68.5t26.5 -84.5q0 -33 -11.5 -64.5t-41 -55.5t-81 -39t-131.5 -15q0 53 -6.5 101t-21.5 84t-40.5 57.5t-64.5 21.5q-45 0 -80.5 -21.5t-61 -73.5t-39 -139t-13.5 -218 q0 -208 57 -311t186 -103q53 0 99.5 12.5t84.5 35t66.5 53t46.5 65.5q25 -15 37 -40.5t12 -53.5q0 -39 -23 -79t-71.5 -72.5t-123.5 -53t-179 -20.5q-113 0 -206.5 29t-160.5 96t-104 175t-37 265zM370 -344q38 -8 75 -12t65 -4q58 0 91.5 20.5t33.5 73.5q0 30 -11.5 49 t-32.5 30.5t-49 17t-61 7.5l43 180h117l-21 -88q50 -4 90.5 -18.5t69 -38.5t44 -57.5t15.5 -73.5q0 -54 -21 -97.5t-59 -74t-91.5 -46.5t-118.5 -16q-16 0 -39 1.5t-48 4.5t-49 7.5t-43 9.5v125z" /> +<glyph unicode="è" horiz-adv-x="1169" d="M96 543q0 144 34 253t99 182t159.5 109.5t215.5 36.5q111 0 200 -31.5t151 -93.5t95 -154t33 -214v-105h-671q3 -103 22.5 -177t54 -122t84 -71t113.5 -23q53 0 98 12.5t81.5 35t64 53t45.5 65.5q55 -30 55 -100q0 -44 -24 -83.5t-74 -69.5t-125.5 -48t-179.5 -18 q-130 0 -229.5 38t-166.5 110t-101 176.5t-34 238.5zM261 1548v21h321q16 -34 41 -74.5t52.5 -81t55.5 -78.5t50 -67v-27h-139q-48 28 -106.5 69.5t-113 85.5t-98.5 84.5t-63 67.5zM416 657h354q0 78 -9 140t-28.5 105t-50 66t-74.5 23q-86 0 -136.5 -85t-55.5 -249z" /> +<glyph unicode="é" horiz-adv-x="1169" d="M96 543q0 144 34 253t99 182t159.5 109.5t215.5 36.5q111 0 200 -31.5t151 -93.5t95 -154t33 -214v-105h-671q3 -103 22.5 -177t54 -122t84 -71t113.5 -23q53 0 98 12.5t81.5 35t64 53t45.5 65.5q55 -30 55 -100q0 -44 -24 -83.5t-74 -69.5t-125.5 -48t-179.5 -18 q-130 0 -229.5 38t-166.5 110t-101 176.5t-34 238.5zM416 657h354q0 78 -9 140t-28.5 105t-50 66t-74.5 23q-86 0 -136.5 -85t-55.5 -249zM473 1241v27q22 29 49.5 67t55.5 78.5t52.5 81t40.5 74.5h322v-21q-19 -27 -63 -67.5t-98.5 -84.5t-113 -85.5t-106.5 -69.5h-139z " /> +<glyph unicode="ê" horiz-adv-x="1169" d="M96 543q0 144 34 253t99 182t159.5 109.5t215.5 36.5q111 0 200 -31.5t151 -93.5t95 -154t33 -214v-105h-671q3 -103 22.5 -177t54 -122t84 -71t113.5 -23q53 0 98 12.5t81.5 35t64 53t45.5 65.5q55 -30 55 -100q0 -44 -24 -83.5t-74 -69.5t-125.5 -48t-179.5 -18 q-130 0 -229.5 38t-166.5 110t-101 176.5t-34 238.5zM254 1241v27q24 29 56.5 67t64.5 78.5t60.5 81t44.5 74.5h276q16 -34 44.5 -74.5t60.5 -81t64 -78.5t56 -67v-27h-141q-21 17 -50 40t-60 48t-60.5 50t-52.5 46q-23 -21 -52.5 -46t-60 -50t-59 -48t-49.5 -40h-142z M416 657h354q0 78 -9 140t-28.5 105t-50 66t-74.5 23q-86 0 -136.5 -85t-55.5 -249z" /> +<glyph unicode="ë" horiz-adv-x="1169" d="M96 543q0 144 34 253t99 182t159.5 109.5t215.5 36.5q111 0 200 -31.5t151 -93.5t95 -154t33 -214v-105h-671q3 -103 22.5 -177t54 -122t84 -71t113.5 -23q53 0 98 12.5t81.5 35t64 53t45.5 65.5q55 -30 55 -100q0 -44 -24 -83.5t-74 -69.5t-125.5 -48t-179.5 -18 q-130 0 -229.5 38t-166.5 110t-101 176.5t-34 238.5zM281 1409q0 35 10 59.5t26.5 39.5t38.5 21.5t46 6.5t46 -6.5t39 -21.5t27.5 -39.5t10.5 -59.5q0 -34 -10.5 -58.5t-27.5 -39.5t-39 -22t-46 -7t-46 7t-38.5 22t-26.5 39.5t-10 58.5zM416 657h354q0 78 -9 140t-28.5 105 t-50 66t-74.5 23q-86 0 -136.5 -85t-55.5 -249zM701 1409q0 35 10 59.5t27 39.5t39 21.5t47 6.5q23 0 44.5 -6.5t38.5 -21.5t27.5 -39.5t10.5 -59.5q0 -34 -10.5 -58.5t-27.5 -39.5t-38.5 -22t-44.5 -7q-25 0 -47 7t-39 22t-27 39.5t-10 58.5z" /> +<glyph unicode="ì" horiz-adv-x="721" d="M-11 1548v21h321q16 -34 41 -74.5t52.5 -81t55.5 -78.5t50 -67v-27h-139q-48 28 -106.5 69.5t-113 85.5t-98.5 84.5t-63 67.5zM35 0v109h24q23 0 48.5 4.5t47 18.5t36 40t14.5 70v622q0 41 -14.5 65.5t-36.5 38t-47.5 17.5t-47.5 4h-24v109h481v-856q0 -44 14.5 -70 t36 -40t47.5 -18.5t48 -4.5h24v-109h-651z" /> +<glyph unicode="í" horiz-adv-x="721" d="M35 0v109h24q23 0 48.5 4.5t47 18.5t36 40t14.5 70v622q0 41 -14.5 65.5t-36.5 38t-47.5 17.5t-47.5 4h-24v109h481v-856q0 -44 14.5 -70t36 -40t47.5 -18.5t48 -4.5h24v-109h-651zM267 1241v27q22 29 49.5 67t55.5 78.5t52.5 81t40.5 74.5h322v-21q-19 -27 -63 -67.5 t-98.5 -84.5t-113 -85.5t-106.5 -69.5h-139z" /> +<glyph unicode="î" horiz-adv-x="721" d="M-30 1241v27q24 29 56.5 67t64.5 78.5t60.5 81t44.5 74.5h276q16 -34 44.5 -74.5t60.5 -81t64 -78.5t56 -67v-27h-141q-21 17 -50 40t-60 48t-60.5 50t-52.5 46q-23 -21 -52.5 -46t-60 -50t-59 -48t-49.5 -40h-142zM35 0v109h24q23 0 48.5 4.5t47 18.5t36 40t14.5 70v622 q0 41 -14.5 65.5t-36.5 38t-47.5 17.5t-47.5 4h-24v109h481v-856q0 -44 14.5 -70t36 -40t47.5 -18.5t48 -4.5h24v-109h-651z" /> +<glyph unicode="ï" horiz-adv-x="721" d="M-1 1409q0 35 10 59.5t26.5 39.5t38.5 21.5t46 6.5t46 -6.5t39 -21.5t27.5 -39.5t10.5 -59.5q0 -34 -10.5 -58.5t-27.5 -39.5t-39 -22t-46 -7t-46 7t-38.5 22t-26.5 39.5t-10 58.5zM35 0v109h24q23 0 48.5 4.5t47 18.5t36 40t14.5 70v622q0 41 -14.5 65.5t-36.5 38 t-47.5 17.5t-47.5 4h-24v109h481v-856q0 -44 14.5 -70t36 -40t47.5 -18.5t48 -4.5h24v-109h-651zM419 1409q0 35 10 59.5t27 39.5t39 21.5t47 6.5q23 0 44.5 -6.5t38.5 -21.5t27.5 -39.5t10.5 -59.5q0 -34 -10.5 -58.5t-27.5 -39.5t-38.5 -22t-44.5 -7q-25 0 -47 7t-39 22 t-27 39.5t-10 58.5z" /> +<glyph unicode="ð" horiz-adv-x="1253" d="M96 522q0 136 32.5 237.5t95.5 169t155 101t211 33.5q68 0 126.5 -16t96.5 -39q-11 33 -25 65.5t-34 65t-48 65t-67 64.5l-289 -148v133l182 95q-51 32 -108.5 50.5t-132.5 31.5v129q38 -3 90.5 -14.5t108.5 -29t109.5 -39.5t92.5 -46l258 131v-136l-143 -73 q78 -61 142.5 -140.5t110.5 -175.5t71.5 -206.5t25.5 -233.5q0 -312 -135.5 -464t-398.5 -152q-122 0 -219.5 33t-166 100.5t-105 169.5t-36.5 239zM414 520q0 -101 11.5 -178t37 -128.5t66.5 -78t100 -26.5q58 0 98.5 26.5t66 78t37 128.5t11.5 178q0 105 -11.5 182.5 t-37 128.5t-66.5 76t-100 25q-58 0 -99 -24.5t-66 -75t-36.5 -128t-11.5 -184.5z" /> +<glyph unicode="ñ" horiz-adv-x="1366" d="M41 0v109h4q35 0 64 4.5t50.5 19.5t33.5 43t12 74v606q0 43 -10.5 69t-30 40.5t-46.5 19t-61 4.5h-6v109h430l27 -146h10q31 58 65.5 92t73.5 52t82.5 23t91.5 5q79 0 142 -23t106.5 -71t66.5 -122.5t23 -178.5v-475q0 -48 8.5 -76.5t25.5 -43.5t43 -20t61 -5h6v-109 h-455v674q0 66 -8.5 117.5t-28 86.5t-51 53.5t-76.5 18.5q-51 0 -85 -26t-54.5 -69.5t-29.5 -101t-9 -120.5v-391q0 -43 10.5 -69t29.5 -40.5t46.5 -19t61.5 -4.5h6v-109h-629zM264 1262q3 62 23.5 117t54 96.5t79.5 65.5t101 24t99.5 -20t83 -44.5t72 -44.5t65.5 -20 q22 0 39.5 9t30 24t20 34.5t10.5 40.5h133q-3 -62 -23 -117t-53.5 -96.5t-79 -65.5t-100.5 -24t-99.5 20t-83 44.5t-72 44.5t-66.5 20q-23 0 -40.5 -9t-30 -24t-20 -34.5t-10.5 -40.5h-133z" /> +<glyph unicode="ò" horiz-adv-x="1255" d="M96 553q0 289 135.5 430t399.5 141q123 0 220.5 -35t166 -106t105 -178.5t36.5 -251.5q0 -289 -135.5 -431t-398.5 -142q-123 0 -221 35.5t-166.5 106.5t-105 179t-36.5 252zM237 1548v21h321q16 -34 41 -74.5t52.5 -81t55.5 -78.5t50 -67v-27h-139q-48 28 -106.5 69.5 t-113 85.5t-98.5 84.5t-63 67.5zM414 553q0 -109 11.5 -192t37 -139t66.5 -84.5t100 -28.5t99.5 28.5t66 84.5t36.5 139t11 192q0 110 -11.5 192.5t-37 137.5t-66.5 82.5t-100 27.5t-100 -27.5t-66 -82.5t-36 -137.5t-11 -192.5z" /> +<glyph unicode="ó" horiz-adv-x="1255" d="M96 553q0 289 135.5 430t399.5 141q123 0 220.5 -35t166 -106t105 -178.5t36.5 -251.5q0 -289 -135.5 -431t-398.5 -142q-123 0 -221 35.5t-166.5 106.5t-105 179t-36.5 252zM414 553q0 -109 11.5 -192t37 -139t66.5 -84.5t100 -28.5t99.5 28.5t66 84.5t36.5 139t11 192 q0 110 -11.5 192.5t-37 137.5t-66.5 82.5t-100 27.5t-100 -27.5t-66 -82.5t-36 -137.5t-11 -192.5zM504 1241v27q22 29 49.5 67t55.5 78.5t52.5 81t40.5 74.5h322v-21q-19 -27 -63 -67.5t-98.5 -84.5t-113 -85.5t-106.5 -69.5h-139z" /> +<glyph unicode="ô" horiz-adv-x="1255" d="M96 553q0 289 135.5 430t399.5 141q123 0 220.5 -35t166 -106t105 -178.5t36.5 -251.5q0 -289 -135.5 -431t-398.5 -142q-123 0 -221 35.5t-166.5 106.5t-105 179t-36.5 252zM262 1241v27q24 29 56.5 67t64.5 78.5t60.5 81t44.5 74.5h276q16 -34 44.5 -74.5t60.5 -81 t64 -78.5t56 -67v-27h-141q-21 17 -50 40t-60 48t-60.5 50t-52.5 46q-23 -21 -52.5 -46t-60 -50t-59 -48t-49.5 -40h-142zM414 553q0 -109 11.5 -192t37 -139t66.5 -84.5t100 -28.5t99.5 28.5t66 84.5t36.5 139t11 192q0 110 -11.5 192.5t-37 137.5t-66.5 82.5t-100 27.5 t-100 -27.5t-66 -82.5t-36 -137.5t-11 -192.5z" /> +<glyph unicode="õ" horiz-adv-x="1255" d="M96 553q0 289 135.5 430t399.5 141q123 0 220.5 -35t166 -106t105 -178.5t36.5 -251.5q0 -289 -135.5 -431t-398.5 -142q-123 0 -221 35.5t-166.5 106.5t-105 179t-36.5 252zM217 1262q3 62 23.5 117t54 96.5t79.5 65.5t101 24t99.5 -20t83 -44.5t72 -44.5t65.5 -20 q22 0 39.5 9t30 24t20 34.5t10.5 40.5h133q-3 -62 -23 -117t-53.5 -96.5t-79 -65.5t-100.5 -24t-99.5 20t-83 44.5t-72 44.5t-66.5 20q-23 0 -40.5 -9t-30 -24t-20 -34.5t-10.5 -40.5h-133zM414 553q0 -109 11.5 -192t37 -139t66.5 -84.5t100 -28.5t99.5 28.5t66 84.5 t36.5 139t11 192q0 110 -11.5 192.5t-37 137.5t-66.5 82.5t-100 27.5t-100 -27.5t-66 -82.5t-36 -137.5t-11 -192.5z" /> +<glyph unicode="ö" horiz-adv-x="1255" d="M96 553q0 289 135.5 430t399.5 141q123 0 220.5 -35t166 -106t105 -178.5t36.5 -251.5q0 -289 -135.5 -431t-398.5 -142q-123 0 -221 35.5t-166.5 106.5t-105 179t-36.5 252zM293 1409q0 35 10 59.5t26.5 39.5t38.5 21.5t46 6.5t46 -6.5t39 -21.5t27.5 -39.5t10.5 -59.5 q0 -34 -10.5 -58.5t-27.5 -39.5t-39 -22t-46 -7t-46 7t-38.5 22t-26.5 39.5t-10 58.5zM414 553q0 -109 11.5 -192t37 -139t66.5 -84.5t100 -28.5t99.5 28.5t66 84.5t36.5 139t11 192q0 110 -11.5 192.5t-37 137.5t-66.5 82.5t-100 27.5t-100 -27.5t-66 -82.5t-36 -137.5 t-11 -192.5zM713 1409q0 35 10 59.5t27 39.5t39 21.5t47 6.5q23 0 44.5 -6.5t38.5 -21.5t27.5 -39.5t10.5 -59.5q0 -34 -10.5 -58.5t-27.5 -39.5t-38.5 -22t-44.5 -7q-25 0 -47 7t-39 22t-27 39.5t-10 58.5z" /> +<glyph unicode="÷" d="M133 659v146h879v-146h-879zM459 344q0 35 8.5 59t24 38.5t36.5 21t45 6.5t45 -6.5t36.5 -21t24.5 -38.5t9 -59q0 -34 -9 -58t-24.5 -39t-36.5 -21.5t-45 -6.5q-49 0 -81.5 28t-32.5 97zM459 1120q0 35 8.5 59t24 38.5t36.5 21t45 6.5t45 -6.5t36.5 -21t24.5 -38.5t9 -59 q0 -34 -9 -58t-24.5 -39t-36.5 -21.5t-45 -6.5q-49 0 -81.5 28t-32.5 97z" /> +<glyph unicode="ø" horiz-adv-x="1255" d="M96 553q0 289 135.5 430t399.5 141q72 0 136 -12t118 -37l65 105h144l-105 -172q82 -72 126 -184t44 -271q0 -289 -135.5 -431t-398.5 -142q-138 0 -242 43l-66 -105h-145l102 168q-86 71 -132 187t-46 280zM414 553q0 -63 3 -117.5t11 -99.5l352 571q-52 86 -153 86 q-59 0 -100 -27.5t-66 -82.5t-36 -137.5t-11 -192.5zM481 184q51 -75 148 -75q59 0 99.5 28.5t66 84.5t36.5 139t11 192q0 56 -3 104.5t-10 92.5z" /> +<glyph unicode="ù" horiz-adv-x="1366" d="M53 989v109h455v-656q0 -66 7.5 -119t25.5 -90.5t48 -58t75 -20.5q49 0 84.5 21.5t58 62t33 98t10.5 129.5v393q0 45 -12 71t-32 39.5t-47 17t-57 3.5h-6v109h465v-860q0 -45 10.5 -70.5t28.5 -38.5t43 -16.5t55 -3.5h17v-109h-408l-45 145h-10q-31 -53 -67 -85.5 t-77 -50t-86.5 -23.5t-93.5 -6q-160 0 -245.5 99t-85.5 306v459q0 45 -8 73t-25 44t-43.5 22t-63.5 6h-4zM253 1548v21h321q16 -34 41 -74.5t52.5 -81t55.5 -78.5t50 -67v-27h-139q-48 28 -106.5 69.5t-113 85.5t-98.5 84.5t-63 67.5z" /> +<glyph unicode="ú" horiz-adv-x="1366" d="M53 989v109h455v-656q0 -66 7.5 -119t25.5 -90.5t48 -58t75 -20.5q49 0 84.5 21.5t58 62t33 98t10.5 129.5v393q0 45 -12 71t-32 39.5t-47 17t-57 3.5h-6v109h465v-860q0 -45 10.5 -70.5t28.5 -38.5t43 -16.5t55 -3.5h17v-109h-408l-45 145h-10q-31 -53 -67 -85.5 t-77 -50t-86.5 -23.5t-93.5 -6q-160 0 -245.5 99t-85.5 306v459q0 45 -8 73t-25 44t-43.5 22t-63.5 6h-4zM527 1241v27q22 29 49.5 67t55.5 78.5t52.5 81t40.5 74.5h322v-21q-19 -27 -63 -67.5t-98.5 -84.5t-113 -85.5t-106.5 -69.5h-139z" /> +<glyph unicode="û" horiz-adv-x="1366" d="M53 989v109h455v-656q0 -66 7.5 -119t25.5 -90.5t48 -58t75 -20.5q49 0 84.5 21.5t58 62t33 98t10.5 129.5v393q0 45 -12 71t-32 39.5t-47 17t-57 3.5h-6v109h465v-860q0 -45 10.5 -70.5t28.5 -38.5t43 -16.5t55 -3.5h17v-109h-408l-45 145h-10q-31 -53 -67 -85.5 t-77 -50t-86.5 -23.5t-93.5 -6q-160 0 -245.5 99t-85.5 306v459q0 45 -8 73t-25 44t-43.5 22t-63.5 6h-4zM295 1241v27q24 29 56.5 67t64.5 78.5t60.5 81t44.5 74.5h276q16 -34 44.5 -74.5t60.5 -81t64 -78.5t56 -67v-27h-141q-21 17 -50 40t-60 48t-60.5 50t-52.5 46 q-23 -21 -52.5 -46t-60 -50t-59 -48t-49.5 -40h-142z" /> +<glyph unicode="ü" horiz-adv-x="1366" d="M53 989v109h455v-656q0 -66 7.5 -119t25.5 -90.5t48 -58t75 -20.5q49 0 84.5 21.5t58 62t33 98t10.5 129.5v393q0 45 -12 71t-32 39.5t-47 17t-57 3.5h-6v109h465v-860q0 -45 10.5 -70.5t28.5 -38.5t43 -16.5t55 -3.5h17v-109h-408l-45 145h-10q-31 -53 -67 -85.5 t-77 -50t-86.5 -23.5t-93.5 -6q-160 0 -245.5 99t-85.5 306v459q0 45 -8 73t-25 44t-43.5 22t-63.5 6h-4zM332 1409q0 35 10 59.5t26.5 39.5t38.5 21.5t46 6.5t46 -6.5t39 -21.5t27.5 -39.5t10.5 -59.5q0 -34 -10.5 -58.5t-27.5 -39.5t-39 -22t-46 -7t-46 7t-38.5 22 t-26.5 39.5t-10 58.5zM752 1409q0 35 10 59.5t27 39.5t39 21.5t47 6.5q23 0 44.5 -6.5t38.5 -21.5t27.5 -39.5t10.5 -59.5q0 -34 -10.5 -58.5t-27.5 -39.5t-38.5 -22t-44.5 -7q-25 0 -47 7t-39 22t-27 39.5t-10 58.5z" /> +<glyph unicode="ý" horiz-adv-x="1186" d="M0 977v121h584v-109q-60 0 -94.5 -15.5t-34.5 -60.5q0 -17 7 -40.5t13 -38.5q18 -43 37.5 -93.5t38 -101t35.5 -97.5t30 -83q15 -39 25 -70.5t16.5 -57t10.5 -47t6 -42.5q2 21 8 46.5t13 49t14 42t10 26.5l135 401q4 10 7.5 23.5t6.5 27.5t4.5 27t1.5 22q0 47 -39 64.5 t-110 17.5v109h461v-109q-31 0 -54.5 -7t-42.5 -24.5t-35 -46t-32 -71.5q-36 -102 -75 -208t-78.5 -212.5t-79 -212t-76.5 -207.5q-36 -99 -68 -174t-67.5 -130t-78.5 -91t-100 -57.5t-132.5 -30.5t-176.5 -9h-35v119q107 0 182 26t127 74t85.5 115t58.5 148l-369 901 q-12 29 -27 46t-32 26t-37 11.5t-43 2.5zM463 1241v27q22 29 49.5 67t55.5 78.5t52.5 81t40.5 74.5h322v-21q-19 -27 -63 -67.5t-98.5 -84.5t-113 -85.5t-106.5 -69.5h-139z" /> +<glyph unicode="þ" horiz-adv-x="1321" d="M27 -383h24q22 0 48 4.5t47.5 18.5t36 40t14.5 70v1555q0 47 -10.5 75t-29 43t-44 20t-54.5 5h-14v108h463v-376q0 -29 -4 -70.5t-9 -79.5q-5 -45 -12 -92h9q22 40 51.5 73t68 57t86.5 37t107 13q102 0 180.5 -33.5t131.5 -104t80.5 -178.5t27.5 -257q0 -148 -27 -255.5 t-79.5 -177.5t-129 -103.5t-176.5 -33.5q-117 0 -190 44.5t-117 119.5h-14q4 -47 8 -92q3 -38 5.5 -81t2.5 -75v-141q0 -44 14.5 -70t36 -40t47 -18.5t47.5 -4.5h45v-109h-671v109zM508 545q0 -106 10 -184.5t34 -130.5t64 -77.5t101 -25.5q103 0 147.5 103.5t44.5 312.5 q0 204 -44.5 313t-145.5 109q-62 0 -102.5 -27.5t-64.5 -81t-34 -132t-10 -179.5z" /> +<glyph unicode="ÿ" horiz-adv-x="1186" d="M0 977v121h584v-109q-60 0 -94.5 -15.5t-34.5 -60.5q0 -17 7 -40.5t13 -38.5q18 -43 37.5 -93.5t38 -101t35.5 -97.5t30 -83q15 -39 25 -70.5t16.5 -57t10.5 -47t6 -42.5q2 21 8 46.5t13 49t14 42t10 26.5l135 401q4 10 7.5 23.5t6.5 27.5t4.5 27t1.5 22q0 47 -39 64.5 t-110 17.5v109h461v-109q-31 0 -54.5 -7t-42.5 -24.5t-35 -46t-32 -71.5q-36 -102 -75 -208t-78.5 -212.5t-79 -212t-76.5 -207.5q-36 -99 -68 -174t-67.5 -130t-78.5 -91t-100 -57.5t-132.5 -30.5t-176.5 -9h-35v119q107 0 182 26t127 74t85.5 115t58.5 148l-369 901 q-12 29 -27 46t-32 26t-37 11.5t-43 2.5zM266 1409q0 35 10 59.5t26.5 39.5t38.5 21.5t46 6.5t46 -6.5t39 -21.5t27.5 -39.5t10.5 -59.5q0 -34 -10.5 -58.5t-27.5 -39.5t-39 -22t-46 -7t-46 7t-38.5 22t-26.5 39.5t-10 58.5zM686 1409q0 35 10 59.5t27 39.5t39 21.5t47 6.5 q23 0 44.5 -6.5t38.5 -21.5t27.5 -39.5t10.5 -59.5q0 -34 -10.5 -58.5t-27.5 -39.5t-38.5 -22t-44.5 -7q-25 0 -47 7t-39 22t-27 39.5t-10 58.5z" /> +<glyph unicode="ˆ" horiz-adv-x="1182" d="M227 1241v27q24 29 56.5 67t64.5 78.5t60.5 81t44.5 74.5h276q16 -34 44.5 -74.5t60.5 -81t64 -78.5t56 -67v-27h-141q-21 17 -50 40t-60 48t-60.5 50t-52.5 46q-23 -21 -52.5 -46t-60 -50t-59 -48t-49.5 -40h-142z" /> +<glyph unicode="˜" horiz-adv-x="1182" d="M184 1262q3 62 23.5 117t54 96.5t79.5 65.5t101 24t99.5 -20t83 -44.5t72 -44.5t65.5 -20q22 0 39.5 9t30 24t20 34.5t10.5 40.5h133q-3 -62 -23 -117t-53.5 -96.5t-79 -65.5t-100.5 -24t-99.5 20t-83 44.5t-72 44.5t-66.5 20q-23 0 -40.5 -9t-30 -24t-20 -34.5 t-10.5 -40.5h-133z" /> +<glyph unicode=" " horiz-adv-x="953" /> +<glyph unicode=" " horiz-adv-x="1907" /> +<glyph unicode=" " horiz-adv-x="953" /> +<glyph unicode=" " horiz-adv-x="1907" /> +<glyph unicode=" " horiz-adv-x="635" /> +<glyph unicode=" " horiz-adv-x="476" /> +<glyph unicode=" " horiz-adv-x="317" /> +<glyph unicode=" " horiz-adv-x="317" /> +<glyph unicode=" " horiz-adv-x="238" /> +<glyph unicode=" " horiz-adv-x="381" /> +<glyph unicode=" " horiz-adv-x="105" /> +<glyph unicode="‐" horiz-adv-x="635" d="M51 451v215h533v-215h-533z" /> +<glyph unicode="‑" horiz-adv-x="635" d="M51 451v215h533v-215h-533z" /> +<glyph unicode="‒" horiz-adv-x="635" d="M51 451v215h533v-215h-533z" /> +<glyph unicode="–" horiz-adv-x="1024" d="M-10 477v146h1044v-146h-1044z" /> +<glyph unicode="—" horiz-adv-x="2048" d="M-10 477v146h2068v-146h-2068z" /> +<glyph unicode="‘" horiz-adv-x="573" d="M115 1061q0 65 20 126t63.5 113t113 93.5t169.5 68.5v-106q-45 -16 -78.5 -32t-56 -34.5t-34 -41t-11.5 -52.5q0 -20 11 -32t28 -23t36 -22.5t36 -29t28 -44.5t11 -68q0 -69 -42.5 -105t-105.5 -36q-87 0 -137.5 60t-50.5 165z" /> +<glyph unicode="’" horiz-adv-x="573" d="M92 836v106q45 16 78.5 32t56 34.5t34 41t11.5 52.5q0 20 -11 32t-27.5 23t-36 22.5t-36 29.5t-27.5 44.5t-11 67.5q0 69 42 105t105 36q87 0 138 -60t51 -165q0 -65 -20 -126t-64 -113t-113.5 -93.5t-169.5 -68.5z" /> +<glyph unicode="‚" horiz-adv-x="602" d="M92 -209q45 16 78.5 32t56 34.5t34 41t11.5 52.5q0 19 -11 31.5t-27.5 23.5t-36 22.5t-36 29.5t-27.5 44.5t-11 67.5q0 69 42 105t105 36q87 0 138 -60t51 -165q0 -65 -20 -126t-64 -113t-113.5 -93.5t-169.5 -68.5v106z" /> +<glyph unicode="“" horiz-adv-x="1001" d="M115 1061q0 65 20 126t63.5 113t113 93.5t169.5 68.5v-106q-45 -16 -78.5 -32t-56 -34.5t-34 -41t-11.5 -52.5q0 -20 11 -32t28 -23t36 -22.5t36 -29t28 -44.5t11 -68q0 -69 -42.5 -105t-105.5 -36q-87 0 -137.5 60t-50.5 165zM543 1061q0 65 20 126t63.5 113t113 93.5 t169.5 68.5v-106q-44 -16 -78 -32t-56.5 -34.5t-34 -41t-11.5 -52.5q0 -20 11 -32t28 -23t36 -22.5t36 -29t28 -44.5t11 -68q0 -69 -42.5 -105t-105.5 -36q-87 0 -137.5 60t-50.5 165z" /> +<glyph unicode="”" horiz-adv-x="1001" d="M92 836v106q45 16 78.5 32t56 34.5t34 41t11.5 52.5q0 20 -11 32t-27.5 23t-36 22.5t-36 29.5t-27.5 44.5t-11 67.5q0 69 42 105t105 36q87 0 138 -60t51 -165q0 -65 -20 -126t-64 -113t-113.5 -93.5t-169.5 -68.5zM520 836v106q45 16 78.5 32t56 34.5t34 41t11.5 52.5 q0 20 -11 32t-27.5 23t-36 22.5t-36 29.5t-27.5 44.5t-11 67.5q0 69 42 105t105 36q87 0 138 -60t51 -165q0 -65 -20 -126t-64 -113t-113.5 -93.5t-169.5 -68.5z" /> +<glyph unicode="„" horiz-adv-x="1030" d="M92 -209q45 16 78.5 32t56 34.5t34 41t11.5 52.5q0 19 -11 31.5t-27.5 23.5t-36 22.5t-36 29.5t-27.5 44.5t-11 67.5q0 69 42 105t105 36q87 0 138 -60t51 -165q0 -65 -20 -126t-64 -113t-113.5 -93.5t-169.5 -68.5v106zM520 -209q45 16 78.5 32t56 34.5t34 41t11.5 52.5 q0 19 -11 31.5t-27.5 23.5t-36 22.5t-36 29.5t-27.5 44.5t-11 67.5q0 69 42 105t105 36q87 0 138 -60t51 -165q0 -65 -20 -126t-64 -113t-113.5 -93.5t-169.5 -68.5v106z" /> +<glyph unicode="•" horiz-adv-x="819" d="M115 729q0 92 22 154.5t61.5 100t93.5 53.5t118 16q60 0 114 -16t94 -53.5t63.5 -100t23.5 -154.5q0 -91 -23.5 -153t-63.5 -100t-94 -54t-114 -16q-64 0 -118 16t-93.5 54t-61.5 100t-22 153z" /> +<glyph unicode=" " horiz-adv-x="381" /> +<glyph unicode="‹" horiz-adv-x="723" d="M133 500v106l313 357h144l-207 -410l207 -410h-144z" /> +<glyph unicode="›" horiz-adv-x="723" d="M133 143l207 410l-207 410h143l314 -357v-106l-314 -357h-143z" /> +<glyph unicode=" " horiz-adv-x="476" /> +<glyph unicode="◼" horiz-adv-x="1100" d="M0 0v1100h1100v-1100h-1100z" /> +<hkern u1=""" u2="Æ" k="246" /> +<hkern u1=""" u2="Å" k="164" /> +<hkern u1=""" u2="Ä" k="164" /> +<hkern u1=""" u2="Ã" k="164" /> +<hkern u1=""" u2="Â" k="164" /> +<hkern u1=""" u2="Á" k="164" /> +<hkern u1=""" u2="À" k="164" /> +<hkern u1=""" u2="g" k="82" /> +<hkern u1=""" u2="A" k="164" /> +<hkern u1="'" u2="Æ" k="246" /> +<hkern u1="'" u2="Å" k="164" /> +<hkern u1="'" u2="Ä" k="164" /> +<hkern u1="'" u2="Ã" k="164" /> +<hkern u1="'" u2="Â" k="164" /> +<hkern u1="'" u2="Á" k="164" /> +<hkern u1="'" u2="À" k="164" /> +<hkern u1="'" u2="g" k="82" /> +<hkern u1="'" u2="A" k="164" /> +<hkern u1="*" u2="„" k="246" /> +<hkern u1="*" u2="‚" k="246" /> +<hkern u1="*" u2="Æ" k="164" /> +<hkern u1="*" u2="Å" k="102" /> +<hkern u1="*" u2="Ä" k="102" /> +<hkern u1="*" u2="Ã" k="102" /> +<hkern u1="*" u2="Â" k="102" /> +<hkern u1="*" u2="Á" k="102" /> +<hkern u1="*" u2="À" k="102" /> +<hkern u1="*" u2="A" k="102" /> +<hkern u1="*" u2="." k="246" /> +<hkern u1="*" u2="," k="246" /> +<hkern u1="A" u2="”" k="143" /> +<hkern u1="A" u2="’" k="143" /> +<hkern u1="A" u2="ÿ" k="102" /> +<hkern u1="A" u2="ý" k="102" /> +<hkern u1="A" u2="ü" k="41" /> +<hkern u1="A" u2="û" k="41" /> +<hkern u1="A" u2="ú" k="41" /> +<hkern u1="A" u2="ù" k="41" /> +<hkern u1="A" u2="ø" k="41" /> +<hkern u1="A" u2="ö" k="41" /> +<hkern u1="A" u2="õ" k="41" /> +<hkern u1="A" u2="ô" k="41" /> +<hkern u1="A" u2="ó" k="41" /> +<hkern u1="A" u2="ò" k="41" /> +<hkern u1="A" u2="ð" k="41" /> +<hkern u1="A" u2="ë" k="41" /> +<hkern u1="A" u2="ê" k="41" /> +<hkern u1="A" u2="é" k="41" /> +<hkern u1="A" u2="è" k="41" /> +<hkern u1="A" u2="ç" k="41" /> +<hkern u1="A" u2="Ý" k="143" /> +<hkern u1="A" u2="Ü" k="41" /> +<hkern u1="A" u2="Û" k="41" /> +<hkern u1="A" u2="Ú" k="41" /> +<hkern u1="A" u2="Ù" k="41" /> +<hkern u1="A" u2="Ø" k="41" /> +<hkern u1="A" u2="Ö" k="41" /> +<hkern u1="A" u2="Õ" k="41" /> +<hkern u1="A" u2="Ô" k="41" /> +<hkern u1="A" u2="Ó" k="41" /> +<hkern u1="A" u2="Ò" k="41" /> +<hkern u1="A" u2="y" k="102" /> +<hkern u1="A" u2="w" k="61" /> +<hkern u1="A" u2="v" k="123" /> +<hkern u1="A" u2="u" k="41" /> +<hkern u1="A" u2="q" k="41" /> +<hkern u1="A" u2="o" k="41" /> +<hkern u1="A" u2="g" k="41" /> +<hkern u1="A" u2="e" k="41" /> +<hkern u1="A" u2="d" k="41" /> +<hkern u1="A" u2="c" k="41" /> +<hkern u1="A" u2="Y" k="143" /> +<hkern u1="A" u2="W" k="143" /> +<hkern u1="A" u2="V" k="164" /> +<hkern u1="A" u2="U" k="41" /> +<hkern u1="A" u2="T" k="123" /> +<hkern u1="A" u2="Q" k="41" /> +<hkern u1="A" u2="O" k="41" /> +<hkern u1="A" u2="G" k="41" /> +<hkern u1="A" u2="C" k="41" /> +<hkern u1="A" u2="?" k="123" /> +<hkern u1="A" u2="*" k="143" /> +<hkern u1="A" u2="'" k="164" /> +<hkern u1="A" u2=""" k="164" /> +<hkern u1="B" u2="”" k="41" /> +<hkern u1="B" u2="’" k="41" /> +<hkern u1="B" u2="ÿ" k="41" /> +<hkern u1="B" u2="ý" k="41" /> +<hkern u1="B" u2="Ý" k="82" /> +<hkern u1="B" u2="Æ" k="61" /> +<hkern u1="B" u2="Å" k="41" /> +<hkern u1="B" u2="Ä" k="41" /> +<hkern u1="B" u2="Ã" k="41" /> +<hkern u1="B" u2="Â" k="41" /> +<hkern u1="B" u2="Á" k="41" /> +<hkern u1="B" u2="À" k="41" /> +<hkern u1="B" u2="y" k="41" /> +<hkern u1="B" u2="w" k="20" /> +<hkern u1="B" u2="Z" k="41" /> +<hkern u1="B" u2="Y" k="82" /> +<hkern u1="B" u2="X" k="41" /> +<hkern u1="B" u2="W" k="61" /> +<hkern u1="B" u2="V" k="82" /> +<hkern u1="B" u2="T" k="41" /> +<hkern u1="B" u2="A" k="41" /> +<hkern u1="B" u2="?" k="41" /> +<hkern u1="B" u2="*" k="41" /> +<hkern u1="D" u2="Ý" k="61" /> +<hkern u1="D" u2="Æ" k="102" /> +<hkern u1="D" u2="Å" k="41" /> +<hkern u1="D" u2="Ä" k="41" /> +<hkern u1="D" u2="Ã" k="41" /> +<hkern u1="D" u2="Â" k="41" /> +<hkern u1="D" u2="Á" k="41" /> +<hkern u1="D" u2="À" k="41" /> +<hkern u1="D" u2="Y" k="61" /> +<hkern u1="D" u2="X" k="41" /> +<hkern u1="D" u2="W" k="41" /> +<hkern u1="D" u2="V" k="41" /> +<hkern u1="D" u2="T" k="41" /> +<hkern u1="D" u2="A" k="41" /> +<hkern u1="D" u2="?" k="41" /> +<hkern u1="E" u2="Ý" k="41" /> +<hkern u1="E" u2="Y" k="41" /> +<hkern u1="E" u2="W" k="41" /> +<hkern u1="E" u2="V" k="41" /> +<hkern u1="F" u2="ø" k="82" /> +<hkern u1="F" u2="ö" k="82" /> +<hkern u1="F" u2="õ" k="82" /> +<hkern u1="F" u2="ô" k="82" /> +<hkern u1="F" u2="ó" k="82" /> +<hkern u1="F" u2="ò" k="82" /> +<hkern u1="F" u2="ð" k="82" /> +<hkern u1="F" u2="ë" k="82" /> +<hkern u1="F" u2="ê" k="82" /> +<hkern u1="F" u2="é" k="82" /> +<hkern u1="F" u2="è" k="82" /> +<hkern u1="F" u2="ç" k="82" /> +<hkern u1="F" u2="æ" k="82" /> +<hkern u1="F" u2="å" k="82" /> +<hkern u1="F" u2="ä" k="82" /> +<hkern u1="F" u2="ã" k="82" /> +<hkern u1="F" u2="â" k="82" /> +<hkern u1="F" u2="á" k="82" /> +<hkern u1="F" u2="à" k="82" /> +<hkern u1="F" u2="Æ" k="225" /> +<hkern u1="F" u2="Å" k="143" /> +<hkern u1="F" u2="Ä" k="143" /> +<hkern u1="F" u2="Ã" k="143" /> +<hkern u1="F" u2="Â" k="143" /> +<hkern u1="F" u2="Á" k="143" /> +<hkern u1="F" u2="À" k="143" /> +<hkern u1="F" u2="q" k="82" /> +<hkern u1="F" u2="o" k="82" /> +<hkern u1="F" u2="g" k="82" /> +<hkern u1="F" u2="e" k="82" /> +<hkern u1="F" u2="d" k="82" /> +<hkern u1="F" u2="c" k="82" /> +<hkern u1="F" u2="a" k="82" /> +<hkern u1="F" u2="A" k="143" /> +<hkern u1="G" u2="Ý" k="41" /> +<hkern u1="G" u2="Æ" k="41" /> +<hkern u1="G" u2="Y" k="41" /> +<hkern u1="G" u2="W" k="41" /> +<hkern u1="G" u2="V" k="41" /> +<hkern u1="G" u2="T" k="41" /> +<hkern u1="G" u2="?" k="41" /> +<hkern u1="K" u2="ÿ" k="61" /> +<hkern u1="K" u2="ý" k="61" /> +<hkern u1="K" u2="ü" k="41" /> +<hkern u1="K" u2="û" k="41" /> +<hkern u1="K" u2="ú" k="41" /> +<hkern u1="K" u2="ù" k="41" /> +<hkern u1="K" u2="ø" k="41" /> +<hkern u1="K" u2="ö" k="41" /> +<hkern u1="K" u2="õ" k="41" /> +<hkern u1="K" u2="ô" k="41" /> +<hkern u1="K" u2="ó" k="41" /> +<hkern u1="K" u2="ò" k="41" /> +<hkern u1="K" u2="ð" k="41" /> +<hkern u1="K" u2="ë" k="41" /> +<hkern u1="K" u2="ê" k="41" /> +<hkern u1="K" u2="é" k="41" /> +<hkern u1="K" u2="è" k="41" /> +<hkern u1="K" u2="ç" k="41" /> +<hkern u1="K" u2="Ø" k="41" /> +<hkern u1="K" u2="Ö" k="41" /> +<hkern u1="K" u2="Õ" k="41" /> +<hkern u1="K" u2="Ô" k="41" /> +<hkern u1="K" u2="Ó" k="41" /> +<hkern u1="K" u2="Ò" k="41" /> +<hkern u1="K" u2="y" k="61" /> +<hkern u1="K" u2="w" k="61" /> +<hkern u1="K" u2="u" k="41" /> +<hkern u1="K" u2="q" k="41" /> +<hkern u1="K" u2="o" k="41" /> +<hkern u1="K" u2="g" k="41" /> +<hkern u1="K" u2="e" k="41" /> +<hkern u1="K" u2="d" k="41" /> +<hkern u1="K" u2="c" k="41" /> +<hkern u1="K" u2="Q" k="41" /> +<hkern u1="K" u2="O" k="41" /> +<hkern u1="K" u2="G" k="41" /> +<hkern u1="K" u2="C" k="41" /> +<hkern u1="L" u2="”" k="164" /> +<hkern u1="L" u2="’" k="164" /> +<hkern u1="L" u2="Ý" k="123" /> +<hkern u1="L" u2="Y" k="123" /> +<hkern u1="L" u2="W" k="102" /> +<hkern u1="L" u2="V" k="102" /> +<hkern u1="L" u2="T" k="143" /> +<hkern u1="L" u2="?" k="143" /> +<hkern u1="L" u2="*" k="164" /> +<hkern u1="L" u2="'" k="123" /> +<hkern u1="L" u2=""" k="123" /> +<hkern u1="O" u2="Ý" k="61" /> +<hkern u1="O" u2="Æ" k="102" /> +<hkern u1="O" u2="Å" k="41" /> +<hkern u1="O" u2="Ä" k="41" /> +<hkern u1="O" u2="Ã" k="41" /> +<hkern u1="O" u2="Â" k="41" /> +<hkern u1="O" u2="Á" k="41" /> +<hkern u1="O" u2="À" k="41" /> +<hkern u1="O" u2="Y" k="61" /> +<hkern u1="O" u2="X" k="41" /> +<hkern u1="O" u2="W" k="41" /> +<hkern u1="O" u2="V" k="41" /> +<hkern u1="O" u2="T" k="41" /> +<hkern u1="O" u2="A" k="41" /> +<hkern u1="O" u2="?" k="41" /> +<hkern u1="P" u2="„" k="246" /> +<hkern u1="P" u2="‚" k="246" /> +<hkern u1="P" u2="Æ" k="164" /> +<hkern u1="P" u2="Å" k="102" /> +<hkern u1="P" u2="Ä" k="102" /> +<hkern u1="P" u2="Ã" k="102" /> +<hkern u1="P" u2="Â" k="102" /> +<hkern u1="P" u2="Á" k="102" /> +<hkern u1="P" u2="À" k="102" /> +<hkern u1="P" u2="A" k="102" /> +<hkern u1="P" u2="." k="246" /> +<hkern u1="P" u2="," k="246" /> +<hkern u1="Q" u2="Ý" k="61" /> +<hkern u1="Q" u2="Æ" k="102" /> +<hkern u1="Q" u2="Å" k="41" /> +<hkern u1="Q" u2="Ä" k="41" /> +<hkern u1="Q" u2="Ã" k="41" /> +<hkern u1="Q" u2="Â" k="41" /> +<hkern u1="Q" u2="Á" k="41" /> +<hkern u1="Q" u2="À" k="41" /> +<hkern u1="Q" u2="Y" k="61" /> +<hkern u1="Q" u2="X" k="41" /> +<hkern u1="Q" u2="W" k="41" /> +<hkern u1="Q" u2="V" k="41" /> +<hkern u1="Q" u2="T" k="41" /> +<hkern u1="Q" u2="A" k="41" /> +<hkern u1="Q" u2="?" k="41" /> +<hkern u1="R" u2="”" k="41" /> +<hkern u1="R" u2="’" k="41" /> +<hkern u1="R" u2="ÿ" k="41" /> +<hkern u1="R" u2="ý" k="41" /> +<hkern u1="R" u2="Ý" k="61" /> +<hkern u1="R" u2="Ü" k="20" /> +<hkern u1="R" u2="Û" k="20" /> +<hkern u1="R" u2="Ú" k="20" /> +<hkern u1="R" u2="Ù" k="20" /> +<hkern u1="R" u2="Ø" k="41" /> +<hkern u1="R" u2="Ö" k="41" /> +<hkern u1="R" u2="Õ" k="41" /> +<hkern u1="R" u2="Ô" k="41" /> +<hkern u1="R" u2="Ó" k="41" /> +<hkern u1="R" u2="Ò" k="41" /> +<hkern u1="R" u2="y" k="41" /> +<hkern u1="R" u2="w" k="41" /> +<hkern u1="R" u2="Y" k="61" /> +<hkern u1="R" u2="W" k="61" /> +<hkern u1="R" u2="V" k="61" /> +<hkern u1="R" u2="U" k="20" /> +<hkern u1="R" u2="T" k="41" /> +<hkern u1="R" u2="Q" k="41" /> +<hkern u1="R" u2="O" k="41" /> +<hkern u1="R" u2="G" k="41" /> +<hkern u1="R" u2="C" k="41" /> +<hkern u1="R" u2="?" k="41" /> +<hkern u1="R" u2="*" k="41" /> +<hkern u1="S" u2="ÿ" k="41" /> +<hkern u1="S" u2="ý" k="41" /> +<hkern u1="S" u2="Ý" k="41" /> +<hkern u1="S" u2="Æ" k="41" /> +<hkern u1="S" u2="Å" k="41" /> +<hkern u1="S" u2="Ä" k="41" /> +<hkern u1="S" u2="Ã" k="41" /> +<hkern u1="S" u2="Â" k="41" /> +<hkern u1="S" u2="Á" k="41" /> +<hkern u1="S" u2="À" k="41" /> +<hkern u1="S" u2="y" k="41" /> +<hkern u1="S" u2="w" k="20" /> +<hkern u1="S" u2="Y" k="41" /> +<hkern u1="S" u2="X" k="41" /> +<hkern u1="S" u2="W" k="41" /> +<hkern u1="S" u2="V" k="41" /> +<hkern u1="S" u2="T" k="41" /> +<hkern u1="S" u2="A" k="41" /> +<hkern u1="S" u2="?" k="41" /> +<hkern u1="T" u2="„" k="184" /> +<hkern u1="T" u2="‚" k="184" /> +<hkern u1="T" u2="ø" k="61" /> +<hkern u1="T" u2="ö" k="61" /> +<hkern u1="T" u2="õ" k="61" /> +<hkern u1="T" u2="ô" k="61" /> +<hkern u1="T" u2="ó" k="61" /> +<hkern u1="T" u2="ò" k="61" /> +<hkern u1="T" u2="ð" k="61" /> +<hkern u1="T" u2="ë" k="61" /> +<hkern u1="T" u2="ê" k="61" /> +<hkern u1="T" u2="é" k="61" /> +<hkern u1="T" u2="è" k="61" /> +<hkern u1="T" u2="ç" k="61" /> +<hkern u1="T" u2="æ" k="61" /> +<hkern u1="T" u2="å" k="61" /> +<hkern u1="T" u2="ä" k="61" /> +<hkern u1="T" u2="ã" k="61" /> +<hkern u1="T" u2="â" k="61" /> +<hkern u1="T" u2="á" k="61" /> +<hkern u1="T" u2="à" k="61" /> +<hkern u1="T" u2="Ø" k="41" /> +<hkern u1="T" u2="Ö" k="41" /> +<hkern u1="T" u2="Õ" k="41" /> +<hkern u1="T" u2="Ô" k="41" /> +<hkern u1="T" u2="Ó" k="41" /> +<hkern u1="T" u2="Ò" k="41" /> +<hkern u1="T" u2="Æ" k="164" /> +<hkern u1="T" u2="Å" k="123" /> +<hkern u1="T" u2="Ä" k="123" /> +<hkern u1="T" u2="Ã" k="123" /> +<hkern u1="T" u2="Â" k="123" /> +<hkern u1="T" u2="Á" k="123" /> +<hkern u1="T" u2="À" k="123" /> +<hkern u1="T" u2="q" k="61" /> +<hkern u1="T" u2="o" k="61" /> +<hkern u1="T" u2="g" k="61" /> +<hkern u1="T" u2="e" k="61" /> +<hkern u1="T" u2="d" k="61" /> +<hkern u1="T" u2="c" k="61" /> +<hkern u1="T" u2="a" k="61" /> +<hkern u1="T" u2="Q" k="41" /> +<hkern u1="T" u2="O" k="41" /> +<hkern u1="T" u2="G" k="41" /> +<hkern u1="T" u2="C" k="41" /> +<hkern u1="T" u2="A" k="123" /> +<hkern u1="T" u2="." k="184" /> +<hkern u1="T" u2="," k="184" /> +<hkern u1="U" u2="Å" k="41" /> +<hkern u1="U" u2="Ä" k="41" /> +<hkern u1="U" u2="Ã" k="41" /> +<hkern u1="U" u2="Â" k="41" /> +<hkern u1="U" u2="Á" k="41" /> +<hkern u1="U" u2="À" k="41" /> +<hkern u1="U" u2="A" k="41" /> +<hkern u1="V" u2="„" k="225" /> +<hkern u1="V" u2="‚" k="225" /> +<hkern u1="V" u2="ø" k="123" /> +<hkern u1="V" u2="ö" k="123" /> +<hkern u1="V" u2="õ" k="123" /> +<hkern u1="V" u2="ô" k="123" /> +<hkern u1="V" u2="ó" k="123" /> +<hkern u1="V" u2="ò" k="123" /> +<hkern u1="V" u2="ð" k="123" /> +<hkern u1="V" u2="ë" k="123" /> +<hkern u1="V" u2="ê" k="123" /> +<hkern u1="V" u2="é" k="123" /> +<hkern u1="V" u2="è" k="123" /> +<hkern u1="V" u2="ç" k="123" /> +<hkern u1="V" u2="æ" k="123" /> +<hkern u1="V" u2="å" k="123" /> +<hkern u1="V" u2="ä" k="123" /> +<hkern u1="V" u2="ã" k="123" /> +<hkern u1="V" u2="â" k="123" /> +<hkern u1="V" u2="á" k="123" /> +<hkern u1="V" u2="à" k="123" /> +<hkern u1="V" u2="Ø" k="41" /> +<hkern u1="V" u2="Ö" k="41" /> +<hkern u1="V" u2="Õ" k="41" /> +<hkern u1="V" u2="Ô" k="41" /> +<hkern u1="V" u2="Ó" k="41" /> +<hkern u1="V" u2="Ò" k="41" /> +<hkern u1="V" u2="Æ" k="266" /> +<hkern u1="V" u2="Å" k="164" /> +<hkern u1="V" u2="Ä" k="164" /> +<hkern u1="V" u2="Ã" k="164" /> +<hkern u1="V" u2="Â" k="164" /> +<hkern u1="V" u2="Á" k="164" /> +<hkern u1="V" u2="À" k="164" /> +<hkern u1="V" u2="s" k="82" /> +<hkern u1="V" u2="q" k="123" /> +<hkern u1="V" u2="o" k="123" /> +<hkern u1="V" u2="g" k="123" /> +<hkern u1="V" u2="e" k="123" /> +<hkern u1="V" u2="d" k="123" /> +<hkern u1="V" u2="c" k="123" /> +<hkern u1="V" u2="a" k="123" /> +<hkern u1="V" u2="Q" k="41" /> +<hkern u1="V" u2="O" k="41" /> +<hkern u1="V" u2="G" k="41" /> +<hkern u1="V" u2="C" k="41" /> +<hkern u1="V" u2="A" k="164" /> +<hkern u1="V" u2="." k="225" /> +<hkern u1="V" u2="," k="225" /> +<hkern u1="W" u2="„" k="184" /> +<hkern u1="W" u2="‚" k="184" /> +<hkern u1="W" u2="ø" k="123" /> +<hkern u1="W" u2="ö" k="123" /> +<hkern u1="W" u2="õ" k="123" /> +<hkern u1="W" u2="ô" k="123" /> +<hkern u1="W" u2="ó" k="123" /> +<hkern u1="W" u2="ò" k="123" /> +<hkern u1="W" u2="ð" k="123" /> +<hkern u1="W" u2="ë" k="123" /> +<hkern u1="W" u2="ê" k="123" /> +<hkern u1="W" u2="é" k="123" /> +<hkern u1="W" u2="è" k="123" /> +<hkern u1="W" u2="ç" k="123" /> +<hkern u1="W" u2="æ" k="102" /> +<hkern u1="W" u2="å" k="102" /> +<hkern u1="W" u2="ä" k="102" /> +<hkern u1="W" u2="ã" k="102" /> +<hkern u1="W" u2="â" k="102" /> +<hkern u1="W" u2="á" k="102" /> +<hkern u1="W" u2="à" k="102" /> +<hkern u1="W" u2="Ø" k="41" /> +<hkern u1="W" u2="Ö" k="41" /> +<hkern u1="W" u2="Õ" k="41" /> +<hkern u1="W" u2="Ô" k="41" /> +<hkern u1="W" u2="Ó" k="41" /> +<hkern u1="W" u2="Ò" k="41" /> +<hkern u1="W" u2="Æ" k="266" /> +<hkern u1="W" u2="Å" k="123" /> +<hkern u1="W" u2="Ä" k="123" /> +<hkern u1="W" u2="Ã" k="123" /> +<hkern u1="W" u2="Â" k="123" /> +<hkern u1="W" u2="Á" k="123" /> +<hkern u1="W" u2="À" k="123" /> +<hkern u1="W" u2="q" k="123" /> +<hkern u1="W" u2="o" k="123" /> +<hkern u1="W" u2="g" k="123" /> +<hkern u1="W" u2="e" k="123" /> +<hkern u1="W" u2="d" k="123" /> +<hkern u1="W" u2="c" k="123" /> +<hkern u1="W" u2="a" k="102" /> +<hkern u1="W" u2="Q" k="41" /> +<hkern u1="W" u2="O" k="41" /> +<hkern u1="W" u2="G" k="41" /> +<hkern u1="W" u2="C" k="41" /> +<hkern u1="W" u2="A" k="123" /> +<hkern u1="W" u2="." k="184" /> +<hkern u1="W" u2="," k="184" /> +<hkern u1="X" u2="ÿ" k="102" /> +<hkern u1="X" u2="ý" k="102" /> +<hkern u1="X" u2="Ø" k="41" /> +<hkern u1="X" u2="Ö" k="41" /> +<hkern u1="X" u2="Õ" k="41" /> +<hkern u1="X" u2="Ô" k="41" /> +<hkern u1="X" u2="Ó" k="41" /> +<hkern u1="X" u2="Ò" k="41" /> +<hkern u1="X" u2="y" k="102" /> +<hkern u1="X" u2="w" k="61" /> +<hkern u1="X" u2="S" k="20" /> +<hkern u1="X" u2="Q" k="41" /> +<hkern u1="X" u2="O" k="41" /> +<hkern u1="X" u2="G" k="41" /> +<hkern u1="X" u2="C" k="41" /> +<hkern u1="Y" u2="„" k="164" /> +<hkern u1="Y" u2="‚" k="164" /> +<hkern u1="Y" u2="ø" k="143" /> +<hkern u1="Y" u2="ö" k="143" /> +<hkern u1="Y" u2="õ" k="143" /> +<hkern u1="Y" u2="ô" k="143" /> +<hkern u1="Y" u2="ó" k="143" /> +<hkern u1="Y" u2="ò" k="143" /> +<hkern u1="Y" u2="ð" k="143" /> +<hkern u1="Y" u2="ë" k="143" /> +<hkern u1="Y" u2="ê" k="143" /> +<hkern u1="Y" u2="é" k="143" /> +<hkern u1="Y" u2="è" k="143" /> +<hkern u1="Y" u2="ç" k="143" /> +<hkern u1="Y" u2="æ" k="123" /> +<hkern u1="Y" u2="å" k="123" /> +<hkern u1="Y" u2="ä" k="123" /> +<hkern u1="Y" u2="ã" k="123" /> +<hkern u1="Y" u2="â" k="123" /> +<hkern u1="Y" u2="á" k="123" /> +<hkern u1="Y" u2="à" k="123" /> +<hkern u1="Y" u2="Ø" k="61" /> +<hkern u1="Y" u2="Ö" k="61" /> +<hkern u1="Y" u2="Õ" k="61" /> +<hkern u1="Y" u2="Ô" k="61" /> +<hkern u1="Y" u2="Ó" k="61" /> +<hkern u1="Y" u2="Ò" k="61" /> +<hkern u1="Y" u2="Æ" k="184" /> +<hkern u1="Y" u2="Å" k="143" /> +<hkern u1="Y" u2="Ä" k="143" /> +<hkern u1="Y" u2="Ã" k="143" /> +<hkern u1="Y" u2="Â" k="143" /> +<hkern u1="Y" u2="Á" k="143" /> +<hkern u1="Y" u2="À" k="143" /> +<hkern u1="Y" u2="s" k="123" /> +<hkern u1="Y" u2="q" k="143" /> +<hkern u1="Y" u2="o" k="143" /> +<hkern u1="Y" u2="g" k="143" /> +<hkern u1="Y" u2="e" k="143" /> +<hkern u1="Y" u2="d" k="143" /> +<hkern u1="Y" u2="c" k="143" /> +<hkern u1="Y" u2="a" k="123" /> +<hkern u1="Y" u2="S" k="41" /> +<hkern u1="Y" u2="Q" k="61" /> +<hkern u1="Y" u2="O" k="61" /> +<hkern u1="Y" u2="G" k="61" /> +<hkern u1="Y" u2="C" k="61" /> +<hkern u1="Y" u2="A" k="143" /> +<hkern u1="Y" u2="." k="164" /> +<hkern u1="Y" u2="," k="164" /> +<hkern u1="a" u2="ÿ" k="41" /> +<hkern u1="a" u2="ý" k="41" /> +<hkern u1="a" u2="y" k="41" /> +<hkern u1="a" u2="'" k="82" /> +<hkern u1="a" u2=""" k="82" /> +<hkern u1="b" u2="ÿ" k="41" /> +<hkern u1="b" u2="ý" k="41" /> +<hkern u1="b" u2="y" k="41" /> +<hkern u1="f" u2="”" k="-164" /> +<hkern u1="f" u2="’" k="-164" /> +<hkern u1="f" u2="}" k="-184" /> +<hkern u1="f" u2="]" k="-184" /> +<hkern u1="f" u2="*" k="-164" /> +<hkern u1="f" u2=")" k="-184" /> +<hkern u1="f" u2="'" k="-164" /> +<hkern u1="f" u2=""" k="-164" /> +<hkern u1="h" u2="ÿ" k="41" /> +<hkern u1="h" u2="ý" k="41" /> +<hkern u1="h" u2="y" k="41" /> +<hkern u1="h" u2=""" k="82" /> +<hkern u1="k" u2="ø" k="41" /> +<hkern u1="k" u2="ö" k="41" /> +<hkern u1="k" u2="õ" k="41" /> +<hkern u1="k" u2="ô" k="41" /> +<hkern u1="k" u2="ó" k="41" /> +<hkern u1="k" u2="ò" k="41" /> +<hkern u1="k" u2="ð" k="41" /> +<hkern u1="k" u2="ë" k="41" /> +<hkern u1="k" u2="ê" k="41" /> +<hkern u1="k" u2="é" k="41" /> +<hkern u1="k" u2="è" k="41" /> +<hkern u1="k" u2="ç" k="41" /> +<hkern u1="k" u2="q" k="41" /> +<hkern u1="k" u2="o" k="41" /> +<hkern u1="k" u2="g" k="41" /> +<hkern u1="k" u2="e" k="41" /> +<hkern u1="k" u2="d" k="41" /> +<hkern u1="k" u2="c" k="41" /> +<hkern u1="n" u2="ÿ" k="41" /> +<hkern u1="n" u2="ý" k="41" /> +<hkern u1="n" u2="y" k="41" /> +<hkern u1="n" u2="'" k="82" /> +<hkern u1="n" u2=""" k="82" /> +<hkern u1="o" u2="ÿ" k="41" /> +<hkern u1="o" u2="ý" k="41" /> +<hkern u1="o" u2="y" k="41" /> +<hkern u1="p" u2="ÿ" k="41" /> +<hkern u1="p" u2="ý" k="41" /> +<hkern u1="p" u2="y" k="41" /> +<hkern u1="r" u2="”" k="-61" /> +<hkern u1="r" u2="’" k="-61" /> +<hkern u1="r" u2="æ" k="41" /> +<hkern u1="r" u2="å" k="41" /> +<hkern u1="r" u2="ä" k="41" /> +<hkern u1="r" u2="ã" k="41" /> +<hkern u1="r" u2="â" k="41" /> +<hkern u1="r" u2="á" k="41" /> +<hkern u1="r" u2="à" k="41" /> +<hkern u1="r" u2="a" k="41" /> +<hkern u1="r" u2="*" k="-61" /> +<hkern u1="v" u2="." k="143" /> +<hkern u1="v" u2="," k="102" /> +<hkern u1="w" u2="„" k="143" /> +<hkern u1="w" u2="‚" k="143" /> +<hkern u1="w" u2="." k="143" /> +<hkern u1="w" u2="," k="143" /> +<hkern u1="y" u2="„" k="184" /> +<hkern u1="y" u2="‚" k="184" /> +<hkern u1="y" u2="." k="184" /> +<hkern u1="y" u2="," k="184" /> +<hkern u1="À" u2="”" k="143" /> +<hkern u1="À" u2="’" k="143" /> +<hkern u1="À" u2="ÿ" k="102" /> +<hkern u1="À" u2="ý" k="102" /> +<hkern u1="À" u2="ü" k="41" /> +<hkern u1="À" u2="û" k="41" /> +<hkern u1="À" u2="ú" k="41" /> +<hkern u1="À" u2="ù" k="41" /> +<hkern u1="À" u2="ø" k="41" /> +<hkern u1="À" u2="ö" k="41" /> +<hkern u1="À" u2="õ" k="41" /> +<hkern u1="À" u2="ô" k="41" /> +<hkern u1="À" u2="ó" k="41" /> +<hkern u1="À" u2="ò" k="41" /> +<hkern u1="À" u2="ð" k="41" /> +<hkern u1="À" u2="ë" k="41" /> +<hkern u1="À" u2="ê" k="41" /> +<hkern u1="À" u2="é" k="41" /> +<hkern u1="À" u2="è" k="41" /> +<hkern u1="À" u2="ç" k="41" /> +<hkern u1="À" u2="Ý" k="143" /> +<hkern u1="À" u2="Ü" k="41" /> +<hkern u1="À" u2="Û" k="41" /> +<hkern u1="À" u2="Ú" k="41" /> +<hkern u1="À" u2="Ù" k="41" /> +<hkern u1="À" u2="Ø" k="41" /> +<hkern u1="À" u2="Ö" k="41" /> +<hkern u1="À" u2="Õ" k="41" /> +<hkern u1="À" u2="Ô" k="41" /> +<hkern u1="À" u2="Ó" k="41" /> +<hkern u1="À" u2="Ò" k="41" /> +<hkern u1="À" u2="y" k="102" /> +<hkern u1="À" u2="w" k="61" /> +<hkern u1="À" u2="v" k="102" /> +<hkern u1="À" u2="u" k="41" /> +<hkern u1="À" u2="q" k="41" /> +<hkern u1="À" u2="o" k="41" /> +<hkern u1="À" u2="g" k="41" /> +<hkern u1="À" u2="e" k="41" /> +<hkern u1="À" u2="d" k="41" /> +<hkern u1="À" u2="c" k="41" /> +<hkern u1="À" u2="Y" k="143" /> +<hkern u1="À" u2="W" k="143" /> +<hkern u1="À" u2="V" k="164" /> +<hkern u1="À" u2="U" k="41" /> +<hkern u1="À" u2="T" k="123" /> +<hkern u1="À" u2="Q" k="41" /> +<hkern u1="À" u2="O" k="41" /> +<hkern u1="À" u2="G" k="41" /> +<hkern u1="À" u2="C" k="41" /> +<hkern u1="À" u2="?" k="123" /> +<hkern u1="À" u2="*" k="143" /> +<hkern u1="À" u2="'" k="164" /> +<hkern u1="À" u2=""" k="164" /> +<hkern u1="Á" u2="”" k="143" /> +<hkern u1="Á" u2="’" k="143" /> +<hkern u1="Á" u2="ÿ" k="102" /> +<hkern u1="Á" u2="ý" k="102" /> +<hkern u1="Á" u2="ü" k="41" /> +<hkern u1="Á" u2="û" k="41" /> +<hkern u1="Á" u2="ú" k="41" /> +<hkern u1="Á" u2="ù" k="41" /> +<hkern u1="Á" u2="ø" k="41" /> +<hkern u1="Á" u2="ö" k="41" /> +<hkern u1="Á" u2="õ" k="41" /> +<hkern u1="Á" u2="ô" k="41" /> +<hkern u1="Á" u2="ó" k="41" /> +<hkern u1="Á" u2="ò" k="41" /> +<hkern u1="Á" u2="ð" k="41" /> +<hkern u1="Á" u2="ë" k="41" /> +<hkern u1="Á" u2="ê" k="41" /> +<hkern u1="Á" u2="é" k="41" /> +<hkern u1="Á" u2="è" k="41" /> +<hkern u1="Á" u2="ç" k="41" /> +<hkern u1="Á" u2="Ý" k="143" /> +<hkern u1="Á" u2="Ü" k="41" /> +<hkern u1="Á" u2="Û" k="41" /> +<hkern u1="Á" u2="Ú" k="41" /> +<hkern u1="Á" u2="Ù" k="41" /> +<hkern u1="Á" u2="Ø" k="41" /> +<hkern u1="Á" u2="Ö" k="41" /> +<hkern u1="Á" u2="Õ" k="41" /> +<hkern u1="Á" u2="Ô" k="41" /> +<hkern u1="Á" u2="Ó" k="41" /> +<hkern u1="Á" u2="Ò" k="41" /> +<hkern u1="Á" u2="y" k="102" /> +<hkern u1="Á" u2="w" k="61" /> +<hkern u1="Á" u2="v" k="102" /> +<hkern u1="Á" u2="u" k="41" /> +<hkern u1="Á" u2="q" k="41" /> +<hkern u1="Á" u2="o" k="41" /> +<hkern u1="Á" u2="g" k="41" /> +<hkern u1="Á" u2="e" k="41" /> +<hkern u1="Á" u2="d" k="41" /> +<hkern u1="Á" u2="c" k="41" /> +<hkern u1="Á" u2="Y" k="143" /> +<hkern u1="Á" u2="W" k="143" /> +<hkern u1="Á" u2="V" k="164" /> +<hkern u1="Á" u2="U" k="41" /> +<hkern u1="Á" u2="T" k="123" /> +<hkern u1="Á" u2="Q" k="41" /> +<hkern u1="Á" u2="O" k="41" /> +<hkern u1="Á" u2="G" k="41" /> +<hkern u1="Á" u2="C" k="41" /> +<hkern u1="Á" u2="?" k="123" /> +<hkern u1="Á" u2="*" k="143" /> +<hkern u1="Á" u2="'" k="164" /> +<hkern u1="Á" u2=""" k="164" /> +<hkern u1="Â" u2="”" k="143" /> +<hkern u1="Â" u2="’" k="143" /> +<hkern u1="Â" u2="ÿ" k="102" /> +<hkern u1="Â" u2="ý" k="102" /> +<hkern u1="Â" u2="ü" k="41" /> +<hkern u1="Â" u2="û" k="41" /> +<hkern u1="Â" u2="ú" k="41" /> +<hkern u1="Â" u2="ù" k="41" /> +<hkern u1="Â" u2="ø" k="41" /> +<hkern u1="Â" u2="ö" k="41" /> +<hkern u1="Â" u2="õ" k="41" /> +<hkern u1="Â" u2="ô" k="41" /> +<hkern u1="Â" u2="ó" k="41" /> +<hkern u1="Â" u2="ò" k="41" /> +<hkern u1="Â" u2="ð" k="41" /> +<hkern u1="Â" u2="ë" k="41" /> +<hkern u1="Â" u2="ê" k="41" /> +<hkern u1="Â" u2="é" k="41" /> +<hkern u1="Â" u2="è" k="41" /> +<hkern u1="Â" u2="ç" k="41" /> +<hkern u1="Â" u2="Ý" k="143" /> +<hkern u1="Â" u2="Ü" k="41" /> +<hkern u1="Â" u2="Û" k="41" /> +<hkern u1="Â" u2="Ú" k="41" /> +<hkern u1="Â" u2="Ù" k="41" /> +<hkern u1="Â" u2="Ø" k="41" /> +<hkern u1="Â" u2="Ö" k="41" /> +<hkern u1="Â" u2="Õ" k="41" /> +<hkern u1="Â" u2="Ô" k="41" /> +<hkern u1="Â" u2="Ó" k="41" /> +<hkern u1="Â" u2="Ò" k="41" /> +<hkern u1="Â" u2="y" k="102" /> +<hkern u1="Â" u2="w" k="61" /> +<hkern u1="Â" u2="v" k="102" /> +<hkern u1="Â" u2="u" k="41" /> +<hkern u1="Â" u2="q" k="41" /> +<hkern u1="Â" u2="o" k="41" /> +<hkern u1="Â" u2="g" k="41" /> +<hkern u1="Â" u2="e" k="41" /> +<hkern u1="Â" u2="d" k="41" /> +<hkern u1="Â" u2="c" k="41" /> +<hkern u1="Â" u2="Y" k="143" /> +<hkern u1="Â" u2="W" k="143" /> +<hkern u1="Â" u2="V" k="164" /> +<hkern u1="Â" u2="U" k="41" /> +<hkern u1="Â" u2="T" k="123" /> +<hkern u1="Â" u2="Q" k="41" /> +<hkern u1="Â" u2="O" k="41" /> +<hkern u1="Â" u2="G" k="41" /> +<hkern u1="Â" u2="C" k="41" /> +<hkern u1="Â" u2="?" k="123" /> +<hkern u1="Â" u2="*" k="143" /> +<hkern u1="Â" u2="'" k="164" /> +<hkern u1="Â" u2=""" k="164" /> +<hkern u1="Ã" u2="”" k="143" /> +<hkern u1="Ã" u2="’" k="143" /> +<hkern u1="Ã" u2="ÿ" k="102" /> +<hkern u1="Ã" u2="ý" k="102" /> +<hkern u1="Ã" u2="ü" k="41" /> +<hkern u1="Ã" u2="û" k="41" /> +<hkern u1="Ã" u2="ú" k="41" /> +<hkern u1="Ã" u2="ù" k="41" /> +<hkern u1="Ã" u2="ø" k="41" /> +<hkern u1="Ã" u2="ö" k="41" /> +<hkern u1="Ã" u2="õ" k="41" /> +<hkern u1="Ã" u2="ô" k="41" /> +<hkern u1="Ã" u2="ó" k="41" /> +<hkern u1="Ã" u2="ò" k="41" /> +<hkern u1="Ã" u2="ð" k="41" /> +<hkern u1="Ã" u2="ë" k="41" /> +<hkern u1="Ã" u2="ê" k="41" /> +<hkern u1="Ã" u2="é" k="41" /> +<hkern u1="Ã" u2="è" k="41" /> +<hkern u1="Ã" u2="ç" k="41" /> +<hkern u1="Ã" u2="Ý" k="143" /> +<hkern u1="Ã" u2="Ü" k="41" /> +<hkern u1="Ã" u2="Û" k="41" /> +<hkern u1="Ã" u2="Ú" k="41" /> +<hkern u1="Ã" u2="Ù" k="41" /> +<hkern u1="Ã" u2="Ø" k="41" /> +<hkern u1="Ã" u2="Ö" k="41" /> +<hkern u1="Ã" u2="Õ" k="41" /> +<hkern u1="Ã" u2="Ô" k="41" /> +<hkern u1="Ã" u2="Ó" k="41" /> +<hkern u1="Ã" u2="Ò" k="41" /> +<hkern u1="Ã" u2="y" k="102" /> +<hkern u1="Ã" u2="w" k="61" /> +<hkern u1="Ã" u2="v" k="102" /> +<hkern u1="Ã" u2="u" k="41" /> +<hkern u1="Ã" u2="q" k="41" /> +<hkern u1="Ã" u2="o" k="41" /> +<hkern u1="Ã" u2="g" k="41" /> +<hkern u1="Ã" u2="e" k="41" /> +<hkern u1="Ã" u2="d" k="41" /> +<hkern u1="Ã" u2="c" k="41" /> +<hkern u1="Ã" u2="Y" k="143" /> +<hkern u1="Ã" u2="W" k="143" /> +<hkern u1="Ã" u2="V" k="164" /> +<hkern u1="Ã" u2="U" k="41" /> +<hkern u1="Ã" u2="T" k="123" /> +<hkern u1="Ã" u2="Q" k="41" /> +<hkern u1="Ã" u2="O" k="41" /> +<hkern u1="Ã" u2="G" k="41" /> +<hkern u1="Ã" u2="C" k="41" /> +<hkern u1="Ã" u2="?" k="123" /> +<hkern u1="Ã" u2="*" k="143" /> +<hkern u1="Ã" u2="'" k="164" /> +<hkern u1="Ã" u2=""" k="164" /> +<hkern u1="Ä" u2="”" k="143" /> +<hkern u1="Ä" u2="’" k="143" /> +<hkern u1="Ä" u2="ÿ" k="102" /> +<hkern u1="Ä" u2="ý" k="102" /> +<hkern u1="Ä" u2="ü" k="41" /> +<hkern u1="Ä" u2="û" k="41" /> +<hkern u1="Ä" u2="ú" k="41" /> +<hkern u1="Ä" u2="ù" k="41" /> +<hkern u1="Ä" u2="ø" k="41" /> +<hkern u1="Ä" u2="ö" k="41" /> +<hkern u1="Ä" u2="õ" k="41" /> +<hkern u1="Ä" u2="ô" k="41" /> +<hkern u1="Ä" u2="ó" k="41" /> +<hkern u1="Ä" u2="ò" k="41" /> +<hkern u1="Ä" u2="ð" k="41" /> +<hkern u1="Ä" u2="ë" k="41" /> +<hkern u1="Ä" u2="ê" k="41" /> +<hkern u1="Ä" u2="é" k="41" /> +<hkern u1="Ä" u2="è" k="41" /> +<hkern u1="Ä" u2="ç" k="41" /> +<hkern u1="Ä" u2="Ý" k="143" /> +<hkern u1="Ä" u2="Ü" k="41" /> +<hkern u1="Ä" u2="Û" k="41" /> +<hkern u1="Ä" u2="Ú" k="41" /> +<hkern u1="Ä" u2="Ù" k="41" /> +<hkern u1="Ä" u2="Ø" k="41" /> +<hkern u1="Ä" u2="Ö" k="41" /> +<hkern u1="Ä" u2="Õ" k="41" /> +<hkern u1="Ä" u2="Ô" k="41" /> +<hkern u1="Ä" u2="Ó" k="41" /> +<hkern u1="Ä" u2="Ò" k="41" /> +<hkern u1="Ä" u2="y" k="102" /> +<hkern u1="Ä" u2="w" k="61" /> +<hkern u1="Ä" u2="v" k="102" /> +<hkern u1="Ä" u2="u" k="41" /> +<hkern u1="Ä" u2="q" k="41" /> +<hkern u1="Ä" u2="o" k="41" /> +<hkern u1="Ä" u2="g" k="41" /> +<hkern u1="Ä" u2="e" k="41" /> +<hkern u1="Ä" u2="d" k="41" /> +<hkern u1="Ä" u2="c" k="41" /> +<hkern u1="Ä" u2="Y" k="143" /> +<hkern u1="Ä" u2="W" k="143" /> +<hkern u1="Ä" u2="V" k="164" /> +<hkern u1="Ä" u2="U" k="41" /> +<hkern u1="Ä" u2="T" k="123" /> +<hkern u1="Ä" u2="Q" k="41" /> +<hkern u1="Ä" u2="O" k="41" /> +<hkern u1="Ä" u2="G" k="41" /> +<hkern u1="Ä" u2="C" k="41" /> +<hkern u1="Ä" u2="?" k="123" /> +<hkern u1="Ä" u2="*" k="143" /> +<hkern u1="Ä" u2="'" k="164" /> +<hkern u1="Ä" u2=""" k="164" /> +<hkern u1="Å" u2="”" k="143" /> +<hkern u1="Å" u2="’" k="143" /> +<hkern u1="Å" u2="ÿ" k="102" /> +<hkern u1="Å" u2="ý" k="102" /> +<hkern u1="Å" u2="ü" k="41" /> +<hkern u1="Å" u2="û" k="41" /> +<hkern u1="Å" u2="ú" k="41" /> +<hkern u1="Å" u2="ù" k="41" /> +<hkern u1="Å" u2="ø" k="41" /> +<hkern u1="Å" u2="ö" k="41" /> +<hkern u1="Å" u2="õ" k="41" /> +<hkern u1="Å" u2="ô" k="41" /> +<hkern u1="Å" u2="ó" k="41" /> +<hkern u1="Å" u2="ò" k="41" /> +<hkern u1="Å" u2="ð" k="41" /> +<hkern u1="Å" u2="ë" k="41" /> +<hkern u1="Å" u2="ê" k="41" /> +<hkern u1="Å" u2="é" k="41" /> +<hkern u1="Å" u2="è" k="41" /> +<hkern u1="Å" u2="ç" k="41" /> +<hkern u1="Å" u2="Ý" k="143" /> +<hkern u1="Å" u2="Ü" k="41" /> +<hkern u1="Å" u2="Û" k="41" /> +<hkern u1="Å" u2="Ú" k="41" /> +<hkern u1="Å" u2="Ù" k="41" /> +<hkern u1="Å" u2="Ø" k="41" /> +<hkern u1="Å" u2="Ö" k="41" /> +<hkern u1="Å" u2="Õ" k="41" /> +<hkern u1="Å" u2="Ô" k="41" /> +<hkern u1="Å" u2="Ó" k="41" /> +<hkern u1="Å" u2="Ò" k="41" /> +<hkern u1="Å" u2="y" k="102" /> +<hkern u1="Å" u2="w" k="61" /> +<hkern u1="Å" u2="v" k="102" /> +<hkern u1="Å" u2="u" k="41" /> +<hkern u1="Å" u2="q" k="41" /> +<hkern u1="Å" u2="o" k="41" /> +<hkern u1="Å" u2="g" k="41" /> +<hkern u1="Å" u2="e" k="41" /> +<hkern u1="Å" u2="d" k="41" /> +<hkern u1="Å" u2="c" k="41" /> +<hkern u1="Å" u2="Y" k="143" /> +<hkern u1="Å" u2="W" k="143" /> +<hkern u1="Å" u2="V" k="164" /> +<hkern u1="Å" u2="U" k="41" /> +<hkern u1="Å" u2="T" k="123" /> +<hkern u1="Å" u2="Q" k="41" /> +<hkern u1="Å" u2="O" k="41" /> +<hkern u1="Å" u2="G" k="41" /> +<hkern u1="Å" u2="C" k="41" /> +<hkern u1="Å" u2="?" k="123" /> +<hkern u1="Å" u2="*" k="143" /> +<hkern u1="Å" u2="'" k="164" /> +<hkern u1="Å" u2=""" k="164" /> +<hkern u1="Æ" u2="Ý" k="41" /> +<hkern u1="Æ" u2="Y" k="41" /> +<hkern u1="Æ" u2="W" k="41" /> +<hkern u1="Æ" u2="V" k="41" /> +<hkern u1="È" u2="Ý" k="41" /> +<hkern u1="È" u2="Y" k="41" /> +<hkern u1="È" u2="W" k="41" /> +<hkern u1="È" u2="V" k="41" /> +<hkern u1="É" u2="Ý" k="41" /> +<hkern u1="É" u2="Y" k="41" /> +<hkern u1="É" u2="W" k="41" /> +<hkern u1="É" u2="V" k="41" /> +<hkern u1="Ê" u2="Ý" k="41" /> +<hkern u1="Ê" u2="Y" k="41" /> +<hkern u1="Ê" u2="W" k="41" /> +<hkern u1="Ê" u2="V" k="41" /> +<hkern u1="Ë" u2="Ý" k="41" /> +<hkern u1="Ë" u2="Y" k="41" /> +<hkern u1="Ë" u2="W" k="41" /> +<hkern u1="Ë" u2="V" k="41" /> +<hkern u1="Ð" u2="Ý" k="61" /> +<hkern u1="Ð" u2="Æ" k="102" /> +<hkern u1="Ð" u2="Å" k="41" /> +<hkern u1="Ð" u2="Ä" k="41" /> +<hkern u1="Ð" u2="Ã" k="41" /> +<hkern u1="Ð" u2="Â" k="41" /> +<hkern u1="Ð" u2="Á" k="41" /> +<hkern u1="Ð" u2="À" k="41" /> +<hkern u1="Ð" u2="Y" k="61" /> +<hkern u1="Ð" u2="X" k="41" /> +<hkern u1="Ð" u2="W" k="41" /> +<hkern u1="Ð" u2="V" k="41" /> +<hkern u1="Ð" u2="T" k="41" /> +<hkern u1="Ð" u2="A" k="41" /> +<hkern u1="Ð" u2="?" k="41" /> +<hkern u1="Ò" u2="Ý" k="61" /> +<hkern u1="Ò" u2="Æ" k="102" /> +<hkern u1="Ò" u2="Å" k="41" /> +<hkern u1="Ò" u2="Ä" k="41" /> +<hkern u1="Ò" u2="Ã" k="41" /> +<hkern u1="Ò" u2="Â" k="41" /> +<hkern u1="Ò" u2="Á" k="41" /> +<hkern u1="Ò" u2="À" k="41" /> +<hkern u1="Ò" u2="Y" k="61" /> +<hkern u1="Ò" u2="X" k="41" /> +<hkern u1="Ò" u2="W" k="41" /> +<hkern u1="Ò" u2="V" k="41" /> +<hkern u1="Ò" u2="T" k="41" /> +<hkern u1="Ò" u2="A" k="41" /> +<hkern u1="Ò" u2="?" k="41" /> +<hkern u1="Ó" u2="Ý" k="61" /> +<hkern u1="Ó" u2="Æ" k="102" /> +<hkern u1="Ó" u2="Å" k="41" /> +<hkern u1="Ó" u2="Ä" k="41" /> +<hkern u1="Ó" u2="Ã" k="41" /> +<hkern u1="Ó" u2="Â" k="41" /> +<hkern u1="Ó" u2="Á" k="41" /> +<hkern u1="Ó" u2="À" k="41" /> +<hkern u1="Ó" u2="Y" k="61" /> +<hkern u1="Ó" u2="X" k="41" /> +<hkern u1="Ó" u2="W" k="41" /> +<hkern u1="Ó" u2="V" k="41" /> +<hkern u1="Ó" u2="T" k="41" /> +<hkern u1="Ó" u2="A" k="41" /> +<hkern u1="Ó" u2="?" k="41" /> +<hkern u1="Ô" u2="Ý" k="61" /> +<hkern u1="Ô" u2="Æ" k="102" /> +<hkern u1="Ô" u2="Å" k="41" /> +<hkern u1="Ô" u2="Ä" k="41" /> +<hkern u1="Ô" u2="Ã" k="41" /> +<hkern u1="Ô" u2="Â" k="41" /> +<hkern u1="Ô" u2="Á" k="41" /> +<hkern u1="Ô" u2="À" k="41" /> +<hkern u1="Ô" u2="Y" k="61" /> +<hkern u1="Ô" u2="X" k="41" /> +<hkern u1="Ô" u2="W" k="41" /> +<hkern u1="Ô" u2="V" k="41" /> +<hkern u1="Ô" u2="T" k="41" /> +<hkern u1="Ô" u2="A" k="41" /> +<hkern u1="Ô" u2="?" k="41" /> +<hkern u1="Õ" u2="Ý" k="61" /> +<hkern u1="Õ" u2="Æ" k="102" /> +<hkern u1="Õ" u2="Å" k="41" /> +<hkern u1="Õ" u2="Ä" k="41" /> +<hkern u1="Õ" u2="Ã" k="41" /> +<hkern u1="Õ" u2="Â" k="41" /> +<hkern u1="Õ" u2="Á" k="41" /> +<hkern u1="Õ" u2="À" k="41" /> +<hkern u1="Õ" u2="Y" k="61" /> +<hkern u1="Õ" u2="X" k="41" /> +<hkern u1="Õ" u2="W" k="41" /> +<hkern u1="Õ" u2="V" k="41" /> +<hkern u1="Õ" u2="T" k="41" /> +<hkern u1="Õ" u2="A" k="41" /> +<hkern u1="Õ" u2="?" k="41" /> +<hkern u1="Ö" u2="Ý" k="61" /> +<hkern u1="Ö" u2="Æ" k="102" /> +<hkern u1="Ö" u2="Å" k="41" /> +<hkern u1="Ö" u2="Ä" k="41" /> +<hkern u1="Ö" u2="Ã" k="41" /> +<hkern u1="Ö" u2="Â" k="41" /> +<hkern u1="Ö" u2="Á" k="41" /> +<hkern u1="Ö" u2="À" k="41" /> +<hkern u1="Ö" u2="Y" k="61" /> +<hkern u1="Ö" u2="X" k="41" /> +<hkern u1="Ö" u2="W" k="41" /> +<hkern u1="Ö" u2="V" k="41" /> +<hkern u1="Ö" u2="T" k="41" /> +<hkern u1="Ö" u2="A" k="41" /> +<hkern u1="Ö" u2="?" k="41" /> +<hkern u1="Ø" u2="Ý" k="61" /> +<hkern u1="Ø" u2="Æ" k="102" /> +<hkern u1="Ø" u2="Å" k="41" /> +<hkern u1="Ø" u2="Ä" k="41" /> +<hkern u1="Ø" u2="Ã" k="41" /> +<hkern u1="Ø" u2="Â" k="41" /> +<hkern u1="Ø" u2="Á" k="41" /> +<hkern u1="Ø" u2="À" k="41" /> +<hkern u1="Ø" u2="Y" k="61" /> +<hkern u1="Ø" u2="X" k="41" /> +<hkern u1="Ø" u2="W" k="41" /> +<hkern u1="Ø" u2="V" k="41" /> +<hkern u1="Ø" u2="T" k="41" /> +<hkern u1="Ø" u2="A" k="41" /> +<hkern u1="Ø" u2="?" k="41" /> +<hkern u1="Ù" u2="Å" k="41" /> +<hkern u1="Ù" u2="Ä" k="41" /> +<hkern u1="Ù" u2="Ã" k="41" /> +<hkern u1="Ù" u2="Â" k="41" /> +<hkern u1="Ù" u2="Á" k="41" /> +<hkern u1="Ù" u2="À" k="41" /> +<hkern u1="Ù" u2="A" k="41" /> +<hkern u1="Ú" u2="Å" k="41" /> +<hkern u1="Ú" u2="Ä" k="41" /> +<hkern u1="Ú" u2="Ã" k="41" /> +<hkern u1="Ú" u2="Â" k="41" /> +<hkern u1="Ú" u2="Á" k="41" /> +<hkern u1="Ú" u2="À" k="41" /> +<hkern u1="Ú" u2="A" k="41" /> +<hkern u1="Û" u2="Å" k="41" /> +<hkern u1="Û" u2="Ä" k="41" /> +<hkern u1="Û" u2="Ã" k="41" /> +<hkern u1="Û" u2="Â" k="41" /> +<hkern u1="Û" u2="Á" k="41" /> +<hkern u1="Û" u2="À" k="41" /> +<hkern u1="Û" u2="A" k="41" /> +<hkern u1="Ü" u2="Å" k="41" /> +<hkern u1="Ü" u2="Ä" k="41" /> +<hkern u1="Ü" u2="Ã" k="41" /> +<hkern u1="Ü" u2="Â" k="41" /> +<hkern u1="Ü" u2="Á" k="41" /> +<hkern u1="Ü" u2="À" k="41" /> +<hkern u1="Ü" u2="A" k="41" /> +<hkern u1="Ý" u2="„" k="164" /> +<hkern u1="Ý" u2="‚" k="164" /> +<hkern u1="Ý" u2="ø" k="143" /> +<hkern u1="Ý" u2="ö" k="143" /> +<hkern u1="Ý" u2="õ" k="143" /> +<hkern u1="Ý" u2="ô" k="143" /> +<hkern u1="Ý" u2="ó" k="143" /> +<hkern u1="Ý" u2="ò" k="143" /> +<hkern u1="Ý" u2="ð" k="143" /> +<hkern u1="Ý" u2="ë" k="143" /> +<hkern u1="Ý" u2="ê" k="143" /> +<hkern u1="Ý" u2="é" k="143" /> +<hkern u1="Ý" u2="è" k="143" /> +<hkern u1="Ý" u2="ç" k="143" /> +<hkern u1="Ý" u2="æ" k="123" /> +<hkern u1="Ý" u2="å" k="123" /> +<hkern u1="Ý" u2="ä" k="123" /> +<hkern u1="Ý" u2="ã" k="123" /> +<hkern u1="Ý" u2="â" k="123" /> +<hkern u1="Ý" u2="á" k="123" /> +<hkern u1="Ý" u2="à" k="123" /> +<hkern u1="Ý" u2="Ø" k="61" /> +<hkern u1="Ý" u2="Ö" k="61" /> +<hkern u1="Ý" u2="Õ" k="61" /> +<hkern u1="Ý" u2="Ô" k="61" /> +<hkern u1="Ý" u2="Ó" k="61" /> +<hkern u1="Ý" u2="Ò" k="61" /> +<hkern u1="Ý" u2="Æ" k="184" /> +<hkern u1="Ý" u2="Å" k="143" /> +<hkern u1="Ý" u2="Ä" k="143" /> +<hkern u1="Ý" u2="Ã" k="143" /> +<hkern u1="Ý" u2="Â" k="143" /> +<hkern u1="Ý" u2="Á" k="143" /> +<hkern u1="Ý" u2="À" k="143" /> +<hkern u1="Ý" u2="s" k="123" /> +<hkern u1="Ý" u2="q" k="143" /> +<hkern u1="Ý" u2="o" k="143" /> +<hkern u1="Ý" u2="g" k="143" /> +<hkern u1="Ý" u2="e" k="143" /> +<hkern u1="Ý" u2="d" k="143" /> +<hkern u1="Ý" u2="c" k="143" /> +<hkern u1="Ý" u2="a" k="123" /> +<hkern u1="Ý" u2="S" k="41" /> +<hkern u1="Ý" u2="Q" k="61" /> +<hkern u1="Ý" u2="O" k="61" /> +<hkern u1="Ý" u2="G" k="61" /> +<hkern u1="Ý" u2="C" k="61" /> +<hkern u1="Ý" u2="A" k="143" /> +<hkern u1="Ý" u2="." k="164" /> +<hkern u1="Ý" u2="," k="164" /> +<hkern u1="Þ" u2="Ý" k="61" /> +<hkern u1="Þ" u2="Æ" k="102" /> +<hkern u1="Þ" u2="Å" k="41" /> +<hkern u1="Þ" u2="Ä" k="41" /> +<hkern u1="Þ" u2="Ã" k="41" /> +<hkern u1="Þ" u2="Â" k="41" /> +<hkern u1="Þ" u2="Á" k="41" /> +<hkern u1="Þ" u2="À" k="41" /> +<hkern u1="Þ" u2="Y" k="61" /> +<hkern u1="Þ" u2="X" k="41" /> +<hkern u1="Þ" u2="W" k="41" /> +<hkern u1="Þ" u2="V" k="41" /> +<hkern u1="Þ" u2="T" k="41" /> +<hkern u1="Þ" u2="A" k="41" /> +<hkern u1="Þ" u2="?" k="41" /> +<hkern u1="ß" u2="ÿ" k="41" /> +<hkern u1="ß" u2="ý" k="41" /> +<hkern u1="ß" u2="y" k="41" /> +<hkern u1="à" u2="ÿ" k="41" /> +<hkern u1="à" u2="ý" k="41" /> +<hkern u1="à" u2="y" k="41" /> +<hkern u1="à" u2="'" k="82" /> +<hkern u1="à" u2=""" k="82" /> +<hkern u1="á" u2="ÿ" k="41" /> +<hkern u1="á" u2="ý" k="41" /> +<hkern u1="á" u2="y" k="41" /> +<hkern u1="á" u2="'" k="82" /> +<hkern u1="á" u2=""" k="82" /> +<hkern u1="â" u2="ÿ" k="41" /> +<hkern u1="â" u2="ý" k="41" /> +<hkern u1="â" u2="y" k="41" /> +<hkern u1="â" u2="'" k="82" /> +<hkern u1="â" u2=""" k="82" /> +<hkern u1="ã" u2="ÿ" k="41" /> +<hkern u1="ã" u2="ý" k="41" /> +<hkern u1="ã" u2="y" k="41" /> +<hkern u1="ã" u2="'" k="82" /> +<hkern u1="ã" u2=""" k="82" /> +<hkern u1="ä" u2="ÿ" k="41" /> +<hkern u1="ä" u2="ý" k="41" /> +<hkern u1="ä" u2="y" k="41" /> +<hkern u1="ä" u2="'" k="82" /> +<hkern u1="ä" u2=""" k="82" /> +<hkern u1="å" u2="ÿ" k="41" /> +<hkern u1="å" u2="ý" k="41" /> +<hkern u1="å" u2="y" k="41" /> +<hkern u1="å" u2="'" k="82" /> +<hkern u1="å" u2=""" k="82" /> +<hkern u1="ð" u2="ÿ" k="41" /> +<hkern u1="ð" u2="ý" k="41" /> +<hkern u1="ð" u2="y" k="41" /> +<hkern u1="ñ" u2="ÿ" k="41" /> +<hkern u1="ñ" u2="ý" k="41" /> +<hkern u1="ñ" u2="y" k="41" /> +<hkern u1="ñ" u2="'" k="82" /> +<hkern u1="ñ" u2=""" k="82" /> +<hkern u1="ò" u2="ÿ" k="41" /> +<hkern u1="ò" u2="ý" k="41" /> +<hkern u1="ò" u2="y" k="41" /> +<hkern u1="ó" u2="ÿ" k="41" /> +<hkern u1="ó" u2="ý" k="41" /> +<hkern u1="ó" u2="y" k="41" /> +<hkern u1="ô" u2="ÿ" k="41" /> +<hkern u1="ô" u2="ý" k="41" /> +<hkern u1="ô" u2="y" k="41" /> +<hkern u1="õ" u2="ÿ" k="41" /> +<hkern u1="õ" u2="ý" k="41" /> +<hkern u1="õ" u2="y" k="41" /> +<hkern u1="ö" u2="ÿ" k="41" /> +<hkern u1="ö" u2="ý" k="41" /> +<hkern u1="ö" u2="y" k="41" /> +<hkern u1="ø" u2="ÿ" k="41" /> +<hkern u1="ø" u2="ý" k="41" /> +<hkern u1="ø" u2="y" k="41" /> +<hkern u1="ý" u2="„" k="184" /> +<hkern u1="ý" u2="‚" k="184" /> +<hkern u1="ý" u2="." k="184" /> +<hkern u1="ý" u2="," k="184" /> +<hkern u1="þ" u2="ÿ" k="41" /> +<hkern u1="þ" u2="ý" k="41" /> +<hkern u1="þ" u2="y" k="41" /> +<hkern u1="ÿ" u2="„" k="184" /> +<hkern u1="ÿ" u2="‚" k="184" /> +<hkern u1="ÿ" u2="." k="184" /> +<hkern u1="ÿ" u2="," k="184" /> +<hkern u1="‘" u2="Æ" k="287" /> +<hkern u1="‘" u2="Å" k="143" /> +<hkern u1="‘" u2="Ä" k="143" /> +<hkern u1="‘" u2="Ã" k="143" /> +<hkern u1="‘" u2="Â" k="143" /> +<hkern u1="‘" u2="Á" k="143" /> +<hkern u1="‘" u2="À" k="143" /> +<hkern u1="‘" u2="A" k="143" /> +<hkern u1="’" u2="s" k="102" /> +<hkern u1="“" u2="Æ" k="287" /> +<hkern u1="“" u2="Å" k="143" /> +<hkern u1="“" u2="Ä" k="143" /> +<hkern u1="“" u2="Ã" k="143" /> +<hkern u1="“" u2="Â" k="143" /> +<hkern u1="“" u2="Á" k="143" /> +<hkern u1="“" u2="À" k="143" /> +<hkern u1="“" u2="A" k="143" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/droidserif-bold-webfont.ttf b/web/static/fonts/droidserif-bold-webfont.ttf Binary files differnew file mode 100755 index 000000000..685217420 --- /dev/null +++ b/web/static/fonts/droidserif-bold-webfont.ttf diff --git a/web/static/fonts/droidserif-bold-webfont.woff b/web/static/fonts/droidserif-bold-webfont.woff Binary files differnew file mode 100755 index 000000000..be27d582d --- /dev/null +++ b/web/static/fonts/droidserif-bold-webfont.woff diff --git a/web/static/fonts/droidserif-bold-webfont.woff2 b/web/static/fonts/droidserif-bold-webfont.woff2 Binary files differnew file mode 100755 index 000000000..2acfbc16c --- /dev/null +++ b/web/static/fonts/droidserif-bold-webfont.woff2 diff --git a/web/static/fonts/droidserif-bolditalic-webfont.eot b/web/static/fonts/droidserif-bolditalic-webfont.eot Binary files differnew file mode 100755 index 000000000..226dea7b8 --- /dev/null +++ b/web/static/fonts/droidserif-bolditalic-webfont.eot diff --git a/web/static/fonts/droidserif-bolditalic-webfont.svg b/web/static/fonts/droidserif-bolditalic-webfont.svg new file mode 100755 index 000000000..1e5620aab --- /dev/null +++ b/web/static/fonts/droidserif-bolditalic-webfont.svg @@ -0,0 +1,1457 @@ +<?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="droid_serifbold_italic" horiz-adv-x="1145" > +<font-face units-per-em="2048" ascent="1638" descent="-410" /> +<missing-glyph horiz-adv-x="532" /> +<glyph horiz-adv-x="0" /> +<glyph unicode="
" horiz-adv-x="2048" /> +<glyph unicode=" " horiz-adv-x="532" /> +<glyph unicode="	" horiz-adv-x="532" /> +<glyph unicode=" " horiz-adv-x="532" /> +<glyph unicode="!" horiz-adv-x="809" d="M158 131q0 42 12.5 76t35.5 58t56 37t74 13q35 0 65.5 -9t53 -27t35 -46t12.5 -65q0 -51 -15.5 -86.5t-41 -57t-57.5 -31t-64 -9.5q-75 0 -120.5 36t-45.5 111zM313 467l117 995h356l-354 -995h-119z" /> +<glyph unicode=""" horiz-adv-x="1040" d="M311 899l49 563h320l-234 -563h-135zM778 899l29 563h319l-213 -563h-135z" /> +<glyph unicode="#" d="M57 410l15 141h231l111 371h-238l17 143h264l112 397h148l-115 -397h213l117 397h145l-116 -397h196l-16 -143h-223l-109 -371h227l-14 -141h-256l-119 -410h-145l119 410h-213l-121 -410h-146l121 410h-205zM449 551h215l110 371h-215z" /> +<glyph unicode="$" d="M51 352q0 97 59.5 141t168.5 44q0 -72 12 -127t34.5 -95t53.5 -66t70 -40l92 436q-73 39 -129 78.5t-94.5 86t-58 102t-19.5 126.5q0 85 33.5 152.5t94.5 114.5t146.5 73t190.5 29l32 149h115l-35 -153q162 -13 243 -68t81 -139q0 -42 -12 -75t-39 -56t-71.5 -35 t-109.5 -12q0 37 -7 75.5t-21 74t-36.5 64t-53.5 44.5l-86 -404l47 -24q141 -74 209.5 -162t68.5 -205q0 -95 -34.5 -169t-99 -126t-156 -80t-205.5 -30l-50 -238h-114l51 240q-187 15 -279 87t-92 187zM504 1106q0 -59 24.5 -98t73.5 -74l76 356q-35 -5 -66.5 -17.5 t-55.5 -35t-38 -55t-14 -76.5zM559 193q48 1 86.5 15.5t65.5 40.5t42 62t15 78q0 28 -5 52.5t-19 47.5t-38.5 47t-62.5 50z" /> +<glyph unicode="%" horiz-adv-x="1835" d="M147 872q0 64 12 134t37.5 138t63.5 129.5t90.5 108t119 74t148.5 27.5q78 0 134 -23t92 -64t53.5 -97t17.5 -121q0 -59 -12.5 -127t-37.5 -135t-64 -129t-92.5 -109.5t-121.5 -76t-151 -28.5q-66 0 -119.5 19.5t-91 57.5t-58 93.5t-20.5 128.5zM367 0l1015 1462h154 l-1010 -1462h-159zM369 856q0 -81 20 -129.5t70 -48.5q40 0 73.5 27.5t60.5 71.5t47.5 100.5t34 114.5t20.5 112.5t7 95.5q0 82 -19.5 128t-70.5 48q-40 0 -73.5 -27.5t-60.5 -71.5t-47.5 -100t-34 -114t-20.5 -112.5t-7 -94.5zM997 279q0 64 12 134t37.5 138t63.5 129 t90.5 107.5t119 74t148.5 27.5q78 0 134 -23t92 -64t53.5 -97t17.5 -121q0 -59 -12.5 -126.5t-37.5 -135t-64 -129t-92.5 -109t-121.5 -76t-151 -28.5q-66 0 -119.5 19.5t-91 57t-58 93.5t-20.5 129zM1219 262q0 -81 20 -129.5t70 -48.5q40 0 73.5 27.5t60.5 71.5 t47.5 100.5t34 114.5t20.5 112.5t7 95.5q0 82 -19.5 128t-70.5 48q-40 0 -73.5 -27.5t-60.5 -71.5t-47.5 -100t-34 -114t-20.5 -112.5t-7 -94.5z" /> +<glyph unicode="&" horiz-adv-x="1640" d="M70 365q0 102 36 174.5t97 125.5t142 91t171 71q-46 79 -71 155t-25 148q0 88 31 154t89.5 110t144 66.5t194.5 22.5q94 0 162.5 -20.5t113.5 -56.5t66.5 -84.5t21.5 -104.5q0 -71 -21 -124.5t-68.5 -98.5t-123.5 -85.5t-186 -85.5l252 -331q35 74 60 151t40 152l16 77 h410l-23 -108h-18q-35 0 -68 -4t-64.5 -18.5t-59.5 -41.5t-52 -73q-31 -60 -65.5 -127.5t-79.5 -137.5l129 -169q31 -42 77.5 -63t112.5 -21h15l-23 -109h-393l-102 141q-85 -72 -197.5 -116.5t-261.5 -44.5q-124 0 -214 29t-149 81t-87.5 122t-28.5 153zM371 381 q0 -57 16 -105.5t47 -83.5t76 -55t102 -20q96 0 174.5 36.5t141.5 98.5l-334 463q-61 -34 -103.5 -70t-69 -76.5t-38.5 -87t-12 -100.5zM696 1147q0 -59 20 -112t60 -113q63 27 107.5 54t72.5 58t41 68.5t13 85.5q0 81 -36.5 126.5t-109.5 45.5q-36 0 -67 -14t-53.5 -41 t-35 -67t-12.5 -91z" /> +<glyph unicode="'" horiz-adv-x="594" d="M311 899l29 563h319l-213 -563h-135z" /> +<glyph unicode="(" horiz-adv-x="819" d="M86 381q0 127 23.5 256t70.5 251t118 233t166.5 202t215 157.5t264.5 100.5l-20 -129q-77 -42 -137.5 -97t-107.5 -117t-82 -129t-60.5 -133t-43 -128t-30.5 -115q-38 -154 -50 -264.5t-12 -183.5q0 -63 9 -126t30 -120.5t55.5 -107t84.5 -85.5l-27 -131 q-124 43 -212.5 111t-145 154.5t-83 188t-26.5 212.5z" /> +<glyph unicode=")" horiz-adv-x="819" d="M-90 -285l20 131q77 42 137.5 97t107.5 117t82 129t60.5 133t43 128t30.5 115q38 155 50 264.5t12 184.5q0 63 -9 126t-30 120t-55.5 106.5t-84.5 85.5l27 131q124 -43 212.5 -111t145 -154.5t83 -188t26.5 -211.5q0 -127 -23.5 -256t-70.5 -251t-118 -233t-166.5 -202 t-215 -158t-264.5 -103z" /> +<glyph unicode="*" horiz-adv-x="1266" d="M260 1161l330 17l-295 145l133 184l252 -280l4 340l225 -47l-141 -308l344 146l47 -219l-328 -13l295 -147l-133 -178l-256 272l2 -340l-223 47l135 314l-342 -150z" /> +<glyph unicode="+" d="M166 659v146h364v366h148v-366h366v-146h-366v-366h-148v366h-364z" /> +<glyph unicode="," horiz-adv-x="602" d="M-23 -309l23 108q211 50 211 170q0 21 -8.5 36.5t-21.5 28t-27.5 24.5t-27.5 27.5t-21.5 36t-8.5 50.5q0 33 12.5 59t33.5 44.5t49 28t59 9.5q37 0 69.5 -12.5t56.5 -36t38 -58t14 -79.5q0 -78 -28.5 -148t-85 -127t-141 -98.5t-196.5 -62.5z" /> +<glyph unicode="-" horiz-adv-x="635" d="M20 451l48 215h532l-47 -215h-533z" /> +<glyph unicode="." horiz-adv-x="623" d="M90 131q0 42 12.5 76t36 58t56 37t73.5 13q35 0 65.5 -9t53 -27t35 -46t12.5 -65q0 -51 -15.5 -86.5t-41 -57t-57.5 -31t-64 -9.5q-74 0 -120 36t-46 111z" /> +<glyph unicode="/" horiz-adv-x="590" d="M-211 -248l873 1804h159l-872 -1804h-160z" /> +<glyph unicode="0" d="M76 473q0 106 17.5 222t53 228.5t89.5 214.5t127.5 179t166.5 122.5t207 45.5q88 0 164 -27.5t132.5 -85t89 -146t32.5 -210.5q0 -103 -17 -220.5t-51.5 -233t-87.5 -221.5t-125.5 -187t-165.5 -129t-206 -48q-95 0 -173.5 32t-134.5 95t-87 155.5t-31 213.5zM356 385 q0 -137 43 -202.5t115 -65.5q60 0 111 47.5t92 126.5t72.5 180t52.5 208.5t32 212.5t11 191q0 135 -41.5 200t-116.5 65q-58 0 -108 -47t-91 -125t-73 -179t-54 -208t-33.5 -212t-11.5 -192z" /> +<glyph unicode="1" d="M82 0l22 109h121q73 0 118 29.5t60 103.5l158 745q13 62 25 113t22 89q11 44 21 79h-8q-48 -50 -88.5 -89.5t-75.5 -67t-67.5 -42t-65.5 -14.5q-44 0 -71.5 39.5t-27.5 111.5q35 9 72 21t79 30t90.5 43.5t106.5 63.5l166 106h230l-260 -1222q-3 -13 -8 -36t-5 -36 q0 -22 11.5 -35.5t32.5 -20.5t49 -9t61 -2h100l-22 -109h-846z" /> +<glyph unicode="2" d="M-29 0l43 211l478 403q104 88 171 161t106 137.5t54 125t15 125.5q0 42 -9.5 77.5t-28 61t-45.5 40t-61 14.5q-51 0 -90.5 -27t-67.5 -73.5t-44.5 -109.5t-20.5 -136q-51 0 -94 10.5t-74.5 32t-49 55t-17.5 78.5q0 61 31.5 115t92 94.5t150 64t205.5 23.5q105 0 186 -20 t136 -56.5t83.5 -89.5t28.5 -119q0 -68 -28 -133.5t-83.5 -134.5t-138.5 -144.5t-192 -164.5l-492 -396h477q49 0 83.5 14.5t58.5 38t40.5 53.5t30.5 62l15 37h120l-100 -430h-969z" /> +<glyph unicode="3" d="M-2 227q0 81 59.5 127.5t165.5 46.5q0 -60 14 -110.5t43 -87t73 -57.5t104 -21q51 0 99 20t85 60.5t59.5 100.5t22.5 140q0 118 -76 182t-213 64h-88l21 127h65q86 0 159 26t126.5 74t83.5 115t30 148q0 38 -8.5 70.5t-25.5 56t-43.5 36.5t-63.5 13q-56 0 -95.5 -25 t-66.5 -67t-44 -97.5t-27 -115.5q-49 0 -91.5 6.5t-73.5 21.5t-49 40t-18 63q0 63 39.5 117.5t107.5 95t159.5 63.5t195.5 23q94 0 171.5 -19.5t133 -57t85.5 -92t30 -124.5q0 -72 -25.5 -141t-77 -126.5t-129 -100t-180.5 -60.5q71 -8 128 -31t96.5 -61t61 -90.5 t21.5 -118.5q0 -91 -26 -162t-71 -124t-105 -90.5t-128 -60.5t-140.5 -33.5t-141.5 -10.5q-120 0 -202.5 22.5t-133.5 58t-73.5 79.5t-22.5 87z" /> +<glyph unicode="4" d="M0 381l29 127l784 954h287l-203 -946h213l-29 -135h-213l-26 -127q-3 -12 -5.5 -33t-2.5 -31q0 -26 9.5 -42t27 -24.5t42.5 -11.5t56 -3h37l-23 -109h-719l21 109h59q30 0 61 3.5t58 18t48 44t32 81.5l26 125h-569zM188 516h410l76 358q8 41 19 89.5t23.5 100.5t26.5 104 t29 100q-22 -35 -51 -77t-59.5 -84.5t-59.5 -80.5t-51 -65z" /> +<glyph unicode="5" d="M20 219q0 34 11.5 63.5t35 52t59.5 35.5t85 13q1 -44 10.5 -90t34 -84t67.5 -62t111 -24q67 0 121.5 23t93 69t59.5 115.5t21 161.5q0 66 -19 115t-52 82t-78.5 49t-98.5 16q-37 0 -67 -4t-55 -10.5t-47 -14.5t-42 -16l-86 43l209 710h774l-59 -372h-125q2 26 4 55.5 t2 42.5q0 23 -21 37t-79 14h-412l-121 -383q38 11 88 22t125 11q106 0 192 -25t146.5 -73.5t93.5 -120t33 -164.5q0 -112 -43 -208.5t-123.5 -167t-196.5 -110.5t-263 -40q-107 0 -181 19t-120 51.5t-66.5 76t-20.5 92.5z" /> +<glyph unicode="6" d="M104 475q0 128 23.5 252t69 236t111.5 207t150.5 165t187 109t220.5 39q84 0 147.5 -17t106.5 -46.5t64.5 -67.5t21.5 -80q0 -82 -67 -128t-189 -46q0 50 -3.5 97.5t-16 84.5t-36.5 59.5t-65 22.5q-132 0 -231 -140.5t-162 -426.5q23 18 53 36t67.5 32.5t82 24t96.5 9.5 q89 0 154.5 -29t108 -78.5t63 -115.5t20.5 -139q0 -108 -33.5 -208t-102 -177t-172 -123.5t-243.5 -46.5q-88 0 -165.5 30.5t-135.5 92.5t-91.5 154.5t-33.5 217.5zM385 410q0 -155 47 -226t127 -71q52 0 95 31t74 85.5t48 128.5t17 160q0 124 -38.5 189t-113.5 65 q-33 0 -65.5 -9.5t-62.5 -24.5t-56 -34t-47 -38q-25 -149 -25 -256z" /> +<glyph unicode="7" d="M201 1032l84 430h977l-23 -121l-852 -1341h-174l809 1239h-526q-56 0 -92 -26.5t-50 -77.5l-28 -103h-125z" /> +<glyph unicode="8" d="M27 332q0 86 31 148t85 109t127.5 83t159.5 69q-44 33 -80 73.5t-62 86.5t-40.5 97t-14.5 106q0 77 28.5 146t91 120.5t161 82t238.5 30.5q97 0 173 -22.5t128.5 -62.5t80 -95t27.5 -119q0 -78 -25 -137.5t-70.5 -106.5t-109 -84.5t-139.5 -71.5q53 -34 98.5 -72.5 t78.5 -84t52 -98.5t19 -115q0 -112 -41 -194t-115.5 -135t-177 -79t-225.5 -26q-108 0 -196 26t-151 73t-97.5 111.5t-34.5 141.5zM303 324q0 -106 58 -166t161 -60q54 0 102 16t84 48.5t57 80.5t21 113q0 50 -15 92t-44 79.5t-72.5 71t-101.5 65.5q-117 -48 -183.5 -131 t-66.5 -209zM516 1114q0 -160 174 -266q59 31 100 66.5t66 75.5t36 85t11 94q0 42 -9.5 77.5t-29.5 61.5t-50.5 41t-72.5 15q-48 0 -89 -17.5t-71 -50t-47.5 -78.5t-17.5 -104z" /> +<glyph unicode="9" d="M57 190q0 69 42.5 105.5t117.5 36.5q1 -39 11 -79t31 -72t53.5 -52t78.5 -20q75 0 135.5 39t111 114t92.5 185.5t81 254.5q-26 -27 -58 -52t-70 -44.5t-83 -31t-98 -11.5q-82 0 -146 25.5t-107.5 70.5t-66 107.5t-22.5 136.5q0 128 46.5 235t125.5 183.5t183.5 119 t221.5 42.5q92 0 166.5 -27t127 -78.5t80.5 -126.5t28 -172q0 -24 -2 -60t-6.5 -78t-12 -88.5t-18.5 -92.5q-22 -99 -55.5 -195t-80 -182.5t-106 -160.5t-133.5 -127.5t-162.5 -84t-193.5 -30.5q-82 0 -141 17t-97 45.5t-56 66.5t-18 81zM455 913q0 -100 41 -151t110 -51 q40 1 74.5 15t64 36.5t53.5 50.5t42 57q6 25 11.5 55t9.5 60t6.5 58t2.5 49q0 67 -11 115.5t-31.5 79t-48 45t-60.5 14.5q-58 0 -106.5 -38t-83.5 -99.5t-54.5 -139t-19.5 -156.5z" /> +<glyph unicode=":" horiz-adv-x="733" d="M90 131q0 42 12.5 76t36 58t56 37t73.5 13q35 0 65.5 -9t53 -27t35 -46t12.5 -65q0 -51 -15.5 -86.5t-41 -57t-57.5 -31t-64 -9.5q-74 0 -120 36t-46 111zM270 924q0 41 12.5 75t36 58t56.5 37.5t74 13.5q35 0 65.5 -9t52.5 -27t34.5 -46t12.5 -65q0 -52 -15.5 -87.5 t-41 -57t-57.5 -31t-64 -9.5q-74 0 -120 36t-46 112z" /> +<glyph unicode=";" horiz-adv-x="733" d="M-23 -309l23 108q211 50 211 170q0 21 -8.5 36.5t-21.5 28t-27.5 24.5t-27.5 27.5t-21.5 36t-8.5 50.5q0 33 12.5 59t33.5 44.5t49 28t59 9.5q37 0 69.5 -12.5t56.5 -36t38 -58t14 -79.5q0 -78 -28.5 -148t-85 -127t-141 -98.5t-196.5 -62.5zM270 924q0 41 12.5 75t36 58 t56.5 37.5t74 13.5q35 0 65.5 -9t52.5 -27t34.5 -46t12.5 -65q0 -52 -15.5 -87.5t-41 -57t-57.5 -31t-64 -9.5q-74 0 -120 36t-46 112z" /> +<glyph unicode="<" d="M166 690v84l878 479v-161l-659 -361l659 -356v-162z" /> +<glyph unicode="=" d="M166 461v143h887v-143h-887zM166 858v143h887v-143h-887z" /> +<glyph unicode=">" d="M166 213v162l659 356l-659 361v161l878 -479v-84z" /> +<glyph unicode="?" horiz-adv-x="1096" d="M207 1217q0 55 33 103.5t94.5 84.5t149 57t196.5 21q102 0 184 -20t139 -62t88 -106t31 -152q0 -89 -39 -162.5t-107 -134t-161.5 -109.5t-202.5 -88l-73 -182h-131l-5 254q91 33 164.5 72.5t126 90t81 115t28.5 148.5q0 51 -11.5 90t-31 66t-47 41t-58.5 14 q-48 0 -82.5 -25t-57.5 -66.5t-36 -95.5t-20 -112q-252 0 -252 158zM258 131q0 42 12.5 76t36 58t56 37t73.5 13q35 0 65.5 -9t53 -27t35 -46t12.5 -65q0 -51 -15.5 -86.5t-41 -57t-57.5 -31t-64 -9.5q-74 0 -120 36t-46 111z" /> +<glyph unicode="@" horiz-adv-x="1886" d="M88 500q0 137 33.5 262t95 231.5t149.5 193t197 148t236.5 94.5t269.5 33q177 0 312 -51t226 -139.5t137 -209t46 -259.5q0 -153 -37 -273t-97 -202.5t-135.5 -126t-152.5 -43.5q-91 0 -154.5 44.5t-97.5 147.5h-12q-21 -40 -48 -75t-61 -61t-77 -41t-97 -15 q-65 0 -123 21t-102 64t-70 109t-26 156q0 55 13 119t41 127.5t72 123t105 105t140.5 73t179.5 27.5q71 0 121.5 -18t82.5 -43l86 43h50l-86 -512q-3 -12 -5.5 -31t-4.5 -39t-3.5 -38.5t-1.5 -30.5q0 -42 9 -69t23 -42.5t32 -21t35 -5.5q40 0 82 34t76 99.5t55.5 162.5 t21.5 223q0 140 -42.5 245.5t-118.5 176t-180.5 106t-227.5 35.5q-97 0 -191.5 -27t-180 -79t-157.5 -127.5t-125 -172t-82.5 -213.5t-29.5 -252q0 -181 54 -309t146.5 -209t216 -118t261.5 -37q83 0 162 15t150 39t132 55t109 63l49 -78q-54 -41 -123 -77t-149 -63 t-171 -43t-188 -16q-117 0 -225 21.5t-202.5 65.5t-172.5 109.5t-133.5 153.5t-86 198t-30.5 243zM752 487q0 -102 36 -156.5t95 -54.5q43 0 74.5 21t53.5 55.5t36 77.5t22 88l82 418q-6 14 -17.5 24.5t-26.5 18t-32 11t-33 3.5q-52 0 -93.5 -26t-73.5 -68.5t-55.5 -97 t-38.5 -110.5t-22 -109.5t-7 -94.5z" /> +<glyph unicode="A" horiz-adv-x="1542" d="M-100 0l22 109h43q28 0 49.5 6.5t41.5 24.5t41.5 49t49.5 79l695 1194h280l172 -1206q5 -32 13.5 -59t22.5 -46.5t35.5 -30.5t53.5 -11h37l-22 -109h-676l22 109h47q66 0 105 20.5t39 65.5q0 17 -1 33.5t-3 31.5l-31 221h-498l-100 -184q-20 -37 -29.5 -65t-9.5 -50 q0 -38 28 -55.5t87 -17.5h41l-23 -109h-532zM508 606h414l-37 344q-5 45 -9.5 84.5t-8 76.5t-6 72t-3.5 72q-15 -37 -30 -68.5t-32 -64t-37.5 -69t-47.5 -84.5z" /> +<glyph unicode="B" horiz-adv-x="1376" d="M-47 0l22 109h27q32 0 62.5 4t55.5 17t43.5 37t26.5 64l209 986q5 20 9 39.5t4 27.5q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h635q238 0 358.5 -77.5t120.5 -229.5q0 -84 -25.5 -148t-70.5 -110.5t-106 -76.5t-132 -46l-2 -8q55 -10 101 -34t79 -61.5 t51.5 -88.5t18.5 -115q0 -112 -38 -199t-112 -146.5t-184.5 -90.5t-255.5 -31h-745zM489 125h142q87 0 147.5 23t98.5 68t55.5 111.5t17.5 153.5q0 112 -51 166.5t-158 54.5h-129zM639 829h115q145 0 209.5 75.5t64.5 215.5q0 109 -49 163t-143 54h-91z" /> +<glyph unicode="C" horiz-adv-x="1368" d="M129 530q0 123 29 242t84 226t134.5 197t180 156t220.5 103t257 37q102 0 178.5 -17.5t127 -49t75.5 -77t25 -100.5q0 -45 -22 -79t-60.5 -57.5t-91.5 -35.5t-115 -12q0 43 -6 95t-24.5 97t-52.5 75t-91 30q-81 0 -149.5 -37t-125 -100.5t-100 -147.5t-73 -177.5 t-45 -191t-15.5 -188.5q0 -175 89 -270.5t265 -95.5q71 0 128 16t102 42.5t79 59.5t60 68q12 -9 23.5 -28t11.5 -42q0 -51 -31 -102.5t-91.5 -93t-149.5 -67t-205 -25.5q-147 0 -262.5 36.5t-195 107t-121.5 173t-42 233.5z" /> +<glyph unicode="D" horiz-adv-x="1573" d="M-49 0l22 109h29q32 0 62.5 4t55.5 17t43.5 37t26.5 64l213 1006q4 11 6.5 25t2.5 22q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h655q147 0 262.5 -36t195 -106.5t121.5 -174.5t42 -240q0 -122 -25.5 -236.5t-75 -215t-122.5 -184t-169 -143.5t-214.5 -93 t-257.5 -33h-721zM492 127h92q144 0 257 58.5t191 164t119 251.5t41 321q0 107 -25 185.5t-71.5 129.5t-113 75.5t-148.5 24.5h-86z" /> +<glyph unicode="E" horiz-adv-x="1296" d="M-47 0l22 109h27q32 0 62.5 4t55.5 17t43.5 37t26.5 64l213 1006q4 11 6.5 25t2.5 22q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h1112l-72 -381h-145q1 7 2.5 25t3 37.5t3 36t1.5 20.5q0 28 -8 53t-25 44t-44.5 29.5t-67.5 10.5h-272l-109 -512h465l-27 -123 h-465l-123 -577h324q48 0 86 13.5t66 36.5t47.5 53.5t31.5 64.5l33 88h146l-95 -381h-1175z" /> +<glyph unicode="F" horiz-adv-x="1272" d="M-47 0l22 109h27q32 0 62.5 4t55.5 17t43.5 37t26.5 64l209 983q13 53 13 70q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h1126l-71 -381h-146q2 17 4 36t3.5 36.5t2.5 30t1 16.5q0 29 -8 54t-26 43.5t-47.5 29t-72.5 10.5h-278l-119 -559h485l-24 -121h-486 l-90 -415q-5 -23 -7.5 -39.5t-2.5 -24.5q0 -22 11 -35.5t31 -21t47.5 -10t59.5 -2.5h27l-23 -109h-704z" /> +<glyph unicode="G" horiz-adv-x="1630" d="M129 528q0 132 31 254.5t89 228.5t142 193t189 149t230.5 96t266.5 34q118 0 205 -21t145 -55t86.5 -78t28.5 -90q0 -40 -23.5 -74.5t-63.5 -60t-94.5 -40.5t-115.5 -15q0 64 -13.5 119.5t-42 96.5t-72 64t-103.5 23q-78 0 -149 -32t-132 -89t-110.5 -136t-84.5 -173 t-54 -200.5t-19 -217.5q0 -86 17 -156.5t54.5 -121.5t96 -79t141.5 -28q47 0 96 8t86 20l68 304q12 54 12 69q0 22 -11 36t-30.5 21.5t-46.5 10t-59 2.5h-27l23 108h682l-23 -108h-2q-34 0 -65.5 -4.5t-57 -17.5t-44.5 -38t-27 -65l-78 -391q-62 -24 -121.5 -41.5 t-121 -29.5t-126.5 -17.5t-137 -5.5q-158 0 -276.5 38t-198.5 109t-120 172.5t-40 228.5z" /> +<glyph unicode="H" horiz-adv-x="1677" d="M-47 0l22 109h27q32 0 62.5 4t55.5 17t43.5 37t26.5 64l209 983q13 53 13 70q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h707l-23 -108h-26q-34 0 -65.5 -4.5t-57.5 -17.5t-45 -38t-27 -65l-84 -404h535l86 398q5 21 7.5 37t2.5 24q0 22 -11.5 36t-31.5 21.5 t-47.5 10t-59.5 2.5h-26l22 108h707l-23 -108h-26q-33 0 -64 -4.5t-57 -17.5t-44.5 -38t-27.5 -65l-211 -1004q-3 -11 -5.5 -25t-2.5 -22q0 -22 11 -35.5t30.5 -21t46.5 -10t59 -2.5h27l-23 -109h-706l22 109h27q33 0 64 4t57 17.5t44.5 37.5t27.5 65l98 467h-535l-100 -475 q-3 -11 -5.5 -25t-2.5 -22q0 -22 11 -35.5t31 -21t47.5 -10t59.5 -2.5h27l-23 -109h-704z" /> +<glyph unicode="I" horiz-adv-x="821" d="M-47 0l22 109h27q32 0 62.5 4t55.5 17t43.5 37t26.5 64l213 1006q4 11 6.5 25t2.5 22q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h707l-23 -108h-26q-34 0 -65.5 -4.5t-57.5 -17.5t-45 -38t-27 -65l-211 -1004q-2 -11 -5 -25t-3 -22q0 -22 11 -35.5t31 -21 t47.5 -10t59.5 -2.5h27l-23 -109h-704z" /> +<glyph unicode="J" horiz-adv-x="821" d="M-324 -469l29 113q13 -5 29.5 -8.5t34.5 -6t36 -3.5t33 -1q53 0 98.5 19t83 62.5t67.5 114t52 173.5l264 1243q4 11 6.5 25t2.5 22q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h707l-23 -108h-26q-34 0 -65.5 -4.5t-57.5 -17.5t-45 -38t-27 -65l-260 -1235 q-26 -125 -87 -216.5t-144 -151.5t-183 -89t-205 -29q-55 0 -92.5 6t-75.5 17z" /> +<glyph unicode="K" horiz-adv-x="1518" d="M-47 0l22 109h27q32 0 62.5 4t55.5 17t43.5 37t26.5 64l209 983q13 53 13 70q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h707l-23 -108h-26q-34 0 -65.5 -4.5t-57.5 -17.5t-45 -38t-27 -65l-102 -486l415 367q42 37 68.5 66.5t42 53t21.5 41.5t6 32 q0 26 -20 39.5t-71 13.5l23 106h553l-23 -106q-41 0 -79 -10t-77 -31t-81.5 -53t-91.5 -76l-332 -293l239 -576q25 -57 45.5 -97t42 -64.5t47 -35.5t60.5 -11h6l-20 -109h-107q-102 0 -169.5 12.5t-114 44.5t-79 86.5t-65.5 139.5l-151 391l-121 -86l-76 -363q-2 -11 -5 -25 t-3 -22q0 -22 11 -35.5t31 -21t47.5 -10t59.5 -2.5h27l-23 -109h-704z" /> +<glyph unicode="L" horiz-adv-x="1339" d="M-47 0l22 109h27q32 0 62.5 4t55.5 17t43.5 37t26.5 64l209 983q13 53 13 70q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h707l-23 -108h-26q-34 0 -65.5 -4.5t-57.5 -17.5t-45 -38t-27 -65l-231 -1104h342q56 0 97 14t71.5 41.5t53.5 69.5t42 98l37 109h131 l-113 -457h-1200z" /> +<glyph unicode="M" horiz-adv-x="1950" d="M-47 0l22 109h27q32 0 62.5 4t55.5 17t43.5 37t26.5 64l209 983q13 53 13 70q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h571l138 -995l536 995h592l-22 -108h-27q-33 0 -64 -4.5t-57 -17.5t-44.5 -38t-27.5 -65l-210 -1004q-4 -11 -6.5 -25t-2.5 -22 q0 -22 11 -35.5t30.5 -21t47 -10t59.5 -2.5h26l-22 -109h-698l22 109h27q33 0 64 4t56.5 17.5t44.5 37.5t27 65l217 1027l-678 -1260h-141l-166 1260l-217 -1018q-5 -23 -7.5 -39.5t-2.5 -24.5q0 -22 11 -35.5t31 -21t47.5 -10t59.5 -2.5h7l-23 -109h-516z" /> +<glyph unicode="N" horiz-adv-x="1614" d="M-47 0l22 109h27q32 0 62.5 4t55.5 17t43.5 37t26.5 64l209 983q13 53 13 70q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h455l499 -1050l172 809q11 47 11 63q0 22 -11.5 36t-31.5 21.5t-47.5 10t-59.5 2.5h-6l23 108h516l-23 -108h-26q-32 0 -62.5 -4.5 t-55.5 -17.5t-43.5 -37t-27.5 -64l-260 -1231h-188l-555 1159l-193 -917q-5 -23 -7.5 -39.5t-2.5 -24.5q0 -22 11 -35.5t31 -21t47.5 -10t59.5 -2.5h7l-23 -109h-516z" /> +<glyph unicode="O" horiz-adv-x="1622" d="M129 545q0 98 24.5 206t73.5 212.5t122 199t169.5 166t217.5 114t265 42.5q113 0 215.5 -33t180.5 -102t124 -175t46 -253q0 -94 -23.5 -201t-71 -212t-119 -201t-168 -169.5t-218 -117.5t-267.5 -44q-121 0 -225.5 36.5t-181 108.5t-120.5 178t-44 245zM463 496 q0 -101 21.5 -173.5t59 -119t88.5 -68.5t109 -22q85 0 154.5 41t124.5 109.5t95.5 157t67 183.5t39.5 189.5t13 175.5q0 100 -21 172t-57.5 119t-87.5 69.5t-111 22.5q-85 0 -154.5 -41t-124.5 -109.5t-96 -157t-67.5 -184t-39.5 -190t-13 -174.5z" /> +<glyph unicode="P" horiz-adv-x="1358" d="M-47 0l22 109h27q32 0 62.5 4t55.5 17t43.5 37t26.5 64l209 983q13 53 13 70q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h586q120 0 217 -25.5t164.5 -76t104 -125t36.5 -172.5q0 -52 -10 -110t-35.5 -114t-70.5 -106.5t-114.5 -89t-167 -61.5t-229.5 -23h-155 l-74 -334q-3 -11 -5.5 -25t-2.5 -22q0 -22 11 -35.5t31 -21t47.5 -10t59.5 -2.5h68l-23 -109h-745zM610 678h86q93 0 157.5 28t104.5 78.5t58 120t18 152.5q0 77 -17.5 131t-48.5 88t-74.5 49.5t-94.5 15.5h-45z" /> +<glyph unicode="Q" horiz-adv-x="1612" d="M127 545q0 98 24.5 206t73.5 212.5t122 199t169.5 166t217.5 114t265 42.5q113 0 215.5 -33t180.5 -102t124 -175t46 -253q0 -84 -18.5 -177t-55 -186.5t-92.5 -182t-130.5 -163t-168.5 -130.5t-207 -83q3 -113 21 -185.5t49 -114t72.5 -57.5t92.5 -16h33l-26 -119h-148 q-92 0 -171 27.5t-137.5 86t-92.5 150.5t-37 222q-93 19 -170.5 63.5t-133.5 114t-87 163t-31 210.5zM461 496q0 -101 21.5 -173.5t59 -119t88.5 -68.5t109 -22q85 0 154.5 41t124.5 109.5t95.5 157t67 183.5t39.5 189.5t13 175.5q0 100 -21 172t-57.5 119t-87.5 69.5 t-111 22.5q-85 0 -154.5 -41t-124.5 -109.5t-96 -157t-67.5 -184t-39.5 -190t-13 -174.5zM700 -23z" /> +<glyph unicode="R" horiz-adv-x="1448" d="M-47 0l22 109h27q32 0 62.5 4t55.5 17t43.5 37t26.5 64l209 983q13 53 13 70q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h658q245 0 366 -85t121 -257q0 -104 -33.5 -177t-86 -122.5t-117.5 -78.5t-128 -44l142 -381q21 -58 41 -98t42.5 -64.5t49 -35 t61.5 -10.5h8l-22 -109h-21q-107 0 -185.5 9t-134.5 34.5t-93 71t-60 118.5l-129 402h-141l-80 -375q-8 -37 -11 -55.5t-3 -26.5q0 -22 11 -35.5t31 -21t47.5 -10t59.5 -2.5h68l-23 -109h-745zM621 754h127q65 0 121.5 19t98 59.5t65.5 105t24 156.5q0 69 -12 116t-37 76.5 t-63 42t-89 12.5h-104z" /> +<glyph unicode="S" horiz-adv-x="1200" d="M29 279q0 48 19.5 84t55 60t84 36t107.5 12q0 -94 20 -163t56 -114.5t86 -67.5t110 -22q58 0 103 16.5t76.5 45t48 67t16.5 82.5q0 43 -10.5 79t-38.5 70t-77 69t-126 77q-80 44 -140.5 90.5t-101 100.5t-61 118.5t-20.5 145.5q0 92 37 169t106 132.5t167 86t220 30.5 q114 0 199 -18t141.5 -49t84.5 -73t28 -90q0 -83 -63 -130.5t-206 -47.5q0 46 -9 96t-32 91.5t-62 68.5t-99 27q-41 0 -81.5 -13t-72.5 -39t-52 -65.5t-20 -93.5t17 -92t51 -70.5t85 -63t120 -67.5q155 -84 229 -185.5t74 -232.5q0 -109 -39.5 -194t-113 -143t-177.5 -88.5 t-233 -30.5q-127 0 -222 23t-158 63t-94.5 94.5t-31.5 118.5z" /> +<glyph unicode="T" horiz-adv-x="1337" d="M139 1065l94 397h1274l-71 -397h-138q1 7 3.5 31.5t5.5 52.5t5.5 51.5t2.5 28.5q0 54 -32.5 81t-111.5 27h-163l-236 -1112q-2 -11 -5 -25t-3 -22q0 -22 11 -35.5t31 -21t47.5 -10t59.5 -2.5h27l-22 -109h-705l23 109h26q32 0 62.5 4t55.5 17t43.5 37t27.5 64l231 1106 h-164q-48 0 -81.5 -12t-58 -35.5t-41.5 -57.5t-32 -79l-29 -88h-137z" /> +<glyph unicode="U" horiz-adv-x="1530" d="M203 334q0 16 2 40t5 49.5t7 50t8 42.5l150 698q12 55 12 70q0 22 -11 36t-30.5 21.5t-46.5 10t-59 2.5h-27l23 108h708l-22 -108h-27q-34 0 -65.5 -4.5t-57.5 -17t-44.5 -36.5t-27.5 -63l-155 -721q-4 -18 -8.5 -40t-8 -45.5t-6 -47.5t-2.5 -45q0 -103 64 -156t188 -53 q93 0 157 27t107 74.5t69 113t42 143.5l158 740q3 17 5.5 35t2.5 26q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h539l-23 -108h-26q-33 0 -64 -4.5t-57 -17.5t-44.5 -38t-27.5 -65l-164 -778q-24 -115 -71.5 -203t-121 -147.5t-173.5 -90t-230 -30.5 q-120 0 -212 23.5t-155 69t-95.5 111.5t-32.5 150z" /> +<glyph unicode="V" horiz-adv-x="1430" d="M174 1354l23 108h675l-22 -108h-47q-66 0 -105 -16.5t-39 -65.5q0 -17 1.5 -36.5t3.5 -33.5l65 -540q4 -36 7.5 -83.5t5 -96t2.5 -92t1 -71.5q12 28 25.5 59t26 60t23.5 54t20 40l368 662q20 35 28.5 61t8.5 48q0 30 -30 40.5t-89 10.5h-47l21 108h534l-22 -108h-49 q-30 0 -51.5 -5t-40.5 -19.5t-38 -41.5t-44 -71l-682 -1217h-205l-172 1255q-5 31 -16.5 50.5t-28 30.5t-38 14.5t-46.5 3.5h-27z" /> +<glyph unicode="W" horiz-adv-x="2185" d="M176 1354l23 108h669l-22 -108h-47q-66 0 -105 -16.5t-39 -65.5q0 -17 1 -39t3 -51l39 -510q3 -27 6 -71.5t5.5 -93.5t4 -96.5t1.5 -80.5q21 60 49 120.5t59 120.5l457 877h150l116 -782q14 -97 24.5 -185.5t10.5 -154.5q12 34 29 79t37.5 95.5t43.5 102.5t46 102 l227 489q14 29 22.5 58t8.5 51q0 30 -27 40.5t-86 10.5h-47l20 108h535l-23 -108h-49q-30 0 -53 -6t-42.5 -22.5t-39 -46t-41.5 -75.5l-573 -1204h-234l-141 977l-498 -977h-254l-110 1255q-3 31 -14 50.5t-28.5 30.5t-39.5 14.5t-47 3.5h-27z" /> +<glyph unicode="X" horiz-adv-x="1499" d="M-86 0l23 109h20q31 0 57.5 7.5t54 24.5t59 45t71.5 70l452 467l-229 526q-15 34 -30.5 55t-34.5 32t-42.5 14.5t-52.5 3.5h-18l22 108h678l-22 -108h-48q-51 0 -73.5 -15t-22.5 -43q0 -20 9.5 -49.5t27.5 -72.5l109 -254l241 258q28 29 50 63t22 62q0 26 -25 38.5 t-73 12.5h-6l22 108h477l-22 -108h-19q-30 0 -55 -7t-51.5 -24t-56 -45t-68.5 -70l-385 -405l252 -586q28 -63 65.5 -85.5t75.5 -22.5h27l-23 -109h-676l23 109h31q61 0 88.5 18.5t27.5 52.5q0 29 -10 64.5t-29 77.5l-125 282l-286 -297q-37 -38 -59.5 -73t-22.5 -64 q0 -15 5 -26t17.5 -19t34 -12t55.5 -4h7l-23 -109h-516z" /> +<glyph unicode="Y" horiz-adv-x="1419" d="M180 1354l23 108h665l-22 -108h-92q-47 0 -66.5 -16t-19.5 -44q0 -18 6 -52t18 -81l74 -289q7 -30 15 -64t14.5 -68t11 -66.5t6.5 -57.5q19 41 58 104t92 138l202 289q25 35 43.5 76t18.5 75q0 28 -28.5 42t-96.5 14h-43l24 108h537l-23 -108h-38q-23 0 -42.5 -6 t-39.5 -21.5t-42.5 -41t-50.5 -64.5l-507 -705l-62 -291q-2 -11 -5 -25t-3 -22q0 -22 11 -35.5t31 -21t47.5 -10t59.5 -2.5h50l-23 -109h-756l23 109h55q32 0 62 4.5t55 18t43 37.5t27 64l59 285l-221 727q-9 30 -18.5 51t-22.5 33.5t-32.5 18.5t-49.5 6h-27z" /> +<glyph unicode="Z" horiz-adv-x="1364" d="M-4 0l18 102l1010 1235h-356q-93 0 -149.5 -42t-82.5 -136l-35 -119h-147l100 422h1090l-21 -104l-1011 -1233h422q46 0 87 12t75 38t61 68.5t45 104.5l22 74h148l-98 -422h-1178z" /> +<glyph unicode="[" horiz-adv-x="848" d="M43 -262l387 1818h567l-22 -108h-88q-34 0 -65.5 -5t-58.5 -20.5t-47 -44.5t-30 -78l-276 -1306q-3 -16 -5 -28t-2 -23q0 -32 11 -51t30.5 -29t45.5 -13.5t55 -3.5h88l-23 -108h-567z" /> +<glyph unicode="\" horiz-adv-x="590" d="M221 1556h144l110 -1804h-143z" /> +<glyph unicode="]" horiz-adv-x="848" d="M-109 -262l23 108h88q34 0 65.5 5t57.5 20.5t46 45t30 77.5l276 1306q6 31 6 52q0 31 -11 50t-30 29.5t-45 13.5t-55 3h-88l22 108h568l-387 -1818h-566z" /> +<glyph unicode="^" d="M137 537l432 925h88l435 -925h-160l-320 702l-315 -702h-160z" /> +<glyph unicode="_" horiz-adv-x="940" d="M-186 -291l26 121h959l-27 -121h-958z" /> +<glyph unicode="`" horiz-adv-x="1182" d="M498 1548l6 21h301q12 -37 31.5 -80t40.5 -84t42.5 -77t38.5 -60l-6 -27h-121q-44 26 -93.5 66t-95.5 83.5t-84.5 85.5t-59.5 72z" /> +<glyph unicode="a" horiz-adv-x="1362" d="M82 354q0 80 18.5 167.5t55.5 172.5t91.5 162t126 135t159.5 92.5t192 34.5q40 0 81.5 -6.5t79.5 -16.5t71.5 -22.5t56.5 -25.5l108 49h109l-135 -639q-4 -17 -10 -45t-11.5 -59.5t-9.5 -61t-4 -49.5q0 -51 20 -76t52 -25q29 0 55.5 12.5t58.5 30.5l45 -82 q-26 -20 -59 -41.5t-73.5 -39.5t-88 -29.5t-102.5 -11.5q-91 0 -146 41.5t-55 121.5q0 32 3 62.5t11 70.5h-14q-38 -71 -75.5 -126.5t-83.5 -93t-102.5 -57t-131.5 -19.5q-73 0 -128 28.5t-91.5 78.5t-55 118.5t-18.5 148.5zM393 352q0 -59 8.5 -99t23 -64.5t35 -35 t44.5 -10.5q45 0 93 39t90 102.5t75.5 143.5t50.5 162l72 340q-20 29 -55.5 43t-75.5 14q-60 0 -109.5 -31t-89.5 -83t-70.5 -118t-51 -137t-30.5 -140t-10 -126z" /> +<glyph unicode="b" horiz-adv-x="1276" d="M43 -6l272 1280q3 13 6 27t5 26.5t3 21.5t1 13q0 28 -6 45t-19 26t-34 12t-50 3h-47l19 108h497l-82 -389q-4 -19 -12.5 -48t-19 -63t-23 -69.5t-23.5 -67.5t-20 -58t-14 -40h10q37 75 77 130.5t87 92.5t102 55.5t123 18.5q65 0 120 -24t94.5 -70.5t62 -116t22.5 -159.5 q0 -83 -20 -172t-59 -174.5t-95.5 -162t-130 -134t-162.5 -91.5t-192 -34q-42 0 -81 6t-72.5 16t-61 23t-46.5 28l-116 -59h-115zM391 168q22 -25 56 -41t77 -16q60 0 110 31.5t90 83t69.5 117.5t49.5 135t30 135.5t10 119.5q0 61 -8.5 103t-23.5 68t-35 38t-42 12 q-38 0 -73 -22.5t-66.5 -58.5t-58 -80.5t-47 -89t-34.5 -84t-20 -64.5z" /> +<glyph unicode="c" horiz-adv-x="1081" d="M82 403q0 76 19 158.5t57 162t94.5 151t131.5 125.5t168 86t204 32q85 0 146.5 -17.5t101 -47t58.5 -69t19 -83.5q0 -32 -13.5 -62.5t-43.5 -55t-77.5 -39.5t-115.5 -15q0 54 -9.5 102.5t-28.5 85t-46.5 57.5t-64.5 21q-44 0 -82.5 -29.5t-70.5 -78t-56.5 -111t-42 -129 t-26.5 -131t-9 -117.5q0 -125 57 -194.5t169 -69.5q54 0 97.5 14.5t78.5 38.5t62 54t48 61q13 -12 22 -35.5t9 -54.5q0 -40 -23.5 -81.5t-73 -75t-125.5 -55t-181 -21.5q-93 0 -175.5 26t-144 79t-97.5 132t-36 186z" /> +<glyph unicode="d" horiz-adv-x="1362" d="M82 354q0 80 18.5 167.5t55 172.5t90 162t123.5 135t155.5 92.5t186.5 34.5q60 0 112 -13t92 -36q3 13 6 30.5t6.5 35t7 33t5.5 24.5l18 82q3 13 6 27t5 26.5t3 21.5t1 13q0 28 -6 45t-19 26t-34 12t-50 3h-47l19 108h493l-237 -1116l-8.5 -42.5t-10.5 -57.5t-8.5 -59 t-3.5 -48q0 -48 22 -70t50 -22q26 0 57.5 14t56.5 29l45 -80q-27 -22 -61 -44t-74.5 -40t-87.5 -29t-100 -11q-45 0 -82 10.5t-63.5 30.5t-41 50.5t-14.5 71.5q0 19 1 34t2.5 29.5t4 31t6.5 38.5h-12q-38 -79 -80 -135t-89.5 -92t-102 -52.5t-117.5 -16.5q-79 0 -135.5 30 t-93 81t-53.5 119t-17 144zM393 352q0 -58 8.5 -98t23 -64.5t35 -35.5t44.5 -11q45 0 92.5 39t89.5 102t75.5 143t51.5 163l72 340q-22 28 -60 42.5t-75 14.5q-58 0 -107 -31.5t-88.5 -83t-70 -118t-50.5 -137t-30.5 -140t-10.5 -125.5z" /> +<glyph unicode="e" horiz-adv-x="1096" d="M82 403q0 76 20 159t59.5 162.5t98 151t135.5 125.5t172.5 85.5t208.5 31.5q147 0 228 -63.5t81 -177.5q0 -83 -46 -159t-127 -133.5t-193 -91.5t-244 -34h-37t-39 2q-3 -20 -3.5 -40.5t-0.5 -37.5q0 -119 55.5 -183.5t167.5 -64.5q50 0 95 14.5t83.5 38t69 53t52.5 60.5 q12 -15 19 -38.5t7 -49.5q0 -37 -24 -78t-73.5 -75.5t-126 -57t-181.5 -22.5q-94 0 -177 26t-145.5 78.5t-98.5 132t-36 186.5zM414 578h18q76 0 141.5 20t114 57.5t76 89.5t27.5 117q0 63 -26.5 98t-74.5 35q-50 0 -95 -37.5t-81 -97.5t-62 -134.5t-38 -147.5z" /> +<glyph unicode="f" horiz-adv-x="827" d="M-285 -475l25 119q17 -5 44 -10t50 -5q50 0 88.5 17t69 57.5t55 108.5t45.5 170l207 976h-186l20 97l197 43l16 76q24 101 64 176.5t99 126t138.5 75.5t183.5 25q79 0 139.5 -14t101 -38t61 -56.5t20.5 -69.5q0 -68 -60 -106t-175 -38q0 39 -4.5 75.5t-15.5 64.5 t-29 44.5t-46 16.5q-65 0 -99.5 -56t-55.5 -171l-27 -131h258l-29 -140h-260l-194 -915q-23 -109 -59.5 -191t-82 -141.5t-98.5 -98.5t-109 -62t-114 -32.5t-113 -9.5q-15 0 -33 1.5t-35 4t-32 5.5t-25 6z" /> +<glyph unicode="g" horiz-adv-x="1188" d="M-119 -231q0 54 27.5 98t73.5 76.5t105 54.5t122 33q-20 10 -39 27.5t-33.5 40t-23.5 48t-9 52.5q0 32 13 60t40 55t69 54.5t100 59.5q-68 32 -106 95t-38 151q0 71 31.5 149.5t95 144t159.5 108t226 42.5q68 0 127.5 -15.5t104.5 -49.5q23 29 49 54.5t55 44t62 29.5 t71 11q63 0 92 -30.5t29 -78.5q0 -25 -6.5 -51t-21.5 -47t-40.5 -34t-62.5 -13q0 42 -18.5 65t-53.5 23q-28 0 -51 -10t-43 -27q22 -29 36.5 -73t14.5 -91q0 -45 -13 -94.5t-39 -98t-66 -93t-95 -78.5t-125 -54t-155 -20q-9 0 -23.5 0.5t-29.5 1t-29 1.5t-23 3 q-48 -21 -80 -48.5t-32 -59.5q0 -17 8.5 -28t23 -17.5t34.5 -10.5t44 -6l230 -22q150 -14 233.5 -81.5t83.5 -197.5q0 -93 -42.5 -169.5t-124 -130.5t-200 -84t-270.5 -30q-125 0 -213.5 18.5t-144.5 52.5t-82.5 82.5t-26.5 107.5zM125 -217q0 -32 11.5 -59.5t40 -48 t78 -32.5t124.5 -12q90 0 154.5 16t106 43t61.5 62.5t20 73.5q0 58 -44.5 89t-150.5 40l-182 16q-45 -6 -84.5 -23t-69.5 -42t-47.5 -56.5t-17.5 -66.5zM440 653q0 -75 29 -108t82 -33q36 0 66 17t54 45t42 63.5t29.5 73.5t17.5 74.5t6 66.5q0 72 -28.5 105.5t-82.5 33.5 q-53 0 -93 -35t-67 -87t-41 -110.5t-14 -105.5z" /> +<glyph unicode="h" horiz-adv-x="1343" d="M43 0l270 1274q3 13 6 27t5 26.5t3 21.5t1 13q0 28 -6 45t-19 26t-34 12t-50 3h-43l19 108h495l-96 -450q-8 -31 -17.5 -70t-18.5 -74q-11 -41 -21 -83h12q39 61 80.5 106t89.5 74.5t104.5 44t124.5 14.5q65 0 110 -19t72.5 -51.5t39.5 -75t12 -89.5q0 -26 -4 -55.5 t-9.5 -59.5t-12 -60t-11.5 -57l-47 -219q-13 -56 -21 -104.5t-8 -91.5q0 -45 19 -69t53 -24q32 0 58.5 12t62.5 35l49 -69q-25 -26 -56 -51.5t-69.5 -45.5t-85.5 -32t-103 -12q-117 0 -180 55.5t-63 154.5q0 44 7.5 105t24.5 139l35 162q5 20 11.5 49t12 60.5t9.5 63t4 56.5 q0 19 -3.5 40t-12.5 38t-26 28t-44 11q-35 0 -69.5 -23.5t-66.5 -62t-60.5 -88t-52 -101.5t-40.5 -102t-26 -90l-107 -475h-307z" /> +<glyph unicode="i" horiz-adv-x="725" d="M117 989l18 109h486l-142 -666q-12 -56 -20 -104.5t-8 -91.5q0 -45 18.5 -69t52.5 -24q32 0 59 12t62 35l49 -69q-24 -26 -55 -51.5t-70 -45.5t-85.5 -32t-102.5 -12q-118 0 -181 55.5t-63 154.5q0 44 8 105t25 139l80 381q3 13 5.5 27t4.5 26.5t3 21.5t1 13q0 28 -6 45 t-19 26t-33.5 12t-49.5 3h-37zM319 1409q0 45 15.5 76.5t41.5 52t61 30t73 9.5q33 0 62.5 -7t52 -23t36 -40.5t13.5 -58.5q0 -42 -16.5 -73.5t-44 -52t-62.5 -30.5t-72 -10q-34 0 -63 7.5t-50.5 23.5t-34 40t-12.5 56z" /> +<glyph unicode="j" horiz-adv-x="692" d="M-287 -467l25 107q15 -5 42.5 -10t49.5 -5q48 0 83.5 17.5t63.5 59.5t50.5 111t44.5 171l176 831q3 13 5.5 27t4.5 26.5t3 21.5t1 13q0 28 -6 45t-19 26t-33.5 12t-49.5 3h-37l18 109h486l-238 -1114q-28 -137 -75 -228.5t-108.5 -146.5t-133.5 -78t-150 -23 q-65 0 -112 7t-91 18zM319 1409q0 45 15.5 76.5t41.5 52t61 30t73 9.5q33 0 62.5 -7t52 -23t36 -40.5t13.5 -58.5q0 -42 -16.5 -73.5t-44 -52t-62.5 -30.5t-72 -10q-34 0 -63 7.5t-50.5 23.5t-34 40t-12.5 56z" /> +<glyph unicode="k" horiz-adv-x="1223" d="M43 0l270 1274q3 13 6 27t5 26.5t3 21.5t1 13q0 28 -6 45t-19 26t-34 12t-50 3h-43l19 108h495l-108 -499q-18 -81 -31.5 -144.5t-27 -120.5t-28 -114t-32.5 -125l319 289q25 22 40 39t23.5 29.5t11.5 22t3 17.5q0 22 -25 33.5t-71 11.5l20 103h516l-20 -103 q-71 0 -149 -41.5t-177 -132.5l-163 -151l153 -334q33 -72 64 -116t58 -69t50 -33.5t41 -8.5h8l-22 -109h-105q-75 0 -134 10.5t-104 34t-77 60t-53 88.5l-121 286l-111 -71l-88 -408h-307z" /> +<glyph unicode="l" horiz-adv-x="725" d="M102 190q0 88 33 244l178 840q3 13 6 27t5 26.5t3 21.5t1 13q0 28 -6 45t-19 26t-34 12t-50 3h-43l19 108h495l-244 -1124q-12 -56 -20 -104.5t-8 -91.5q0 -45 18.5 -69t52.5 -24q32 0 59 12t62 35l49 -69q-24 -26 -55 -51.5t-69.5 -45.5t-85.5 -32t-103 -12 q-118 0 -181 55.5t-63 154.5z" /> +<glyph unicode="m" horiz-adv-x="1985" d="M76 0l172 815q3 13 5.5 27t4.5 26.5t3 21.5t1 13q0 28 -6 45t-19 26t-33.5 12t-49.5 3h-37l18 109h475l-39 -209h15q40 62 82.5 105.5t89.5 71t99.5 40t113.5 12.5q64 0 107 -18t69 -49t37.5 -71t11.5 -85v-16h12q38 61 78.5 107t87.5 76.5t102 46t121 15.5q63 0 106 -19 t70 -51.5t38.5 -75t11.5 -89.5q0 -26 -4 -55.5t-9.5 -59.5t-12 -60t-11.5 -57l-47 -219q-13 -55 -21 -104t-8 -92q0 -45 19 -68.5t53 -23.5q32 0 58.5 12t62.5 35l49 -70q-25 -26 -56 -51.5t-69.5 -45.5t-85.5 -32t-103 -12q-117 0 -180 56t-63 155q0 43 7.5 104t24.5 139 l35 162q5 20 11.5 49t12 60.5t9.5 63t4 56.5q0 19 -3.5 40t-12.5 38t-25 28t-41 11q-33 0 -65.5 -23t-63.5 -60.5t-58.5 -86t-50 -99.5t-38.5 -100.5t-23 -89.5l-16 -86q-4 -21 -9.5 -57.5t-11.5 -78.5t-12 -86t-10.5 -81.5t-7 -64.5t-2.5 -35h-318q0 12 3.5 42t9.5 70.5 t14 87.5l16 94t16 89.5t15 73.5l31 143q4 19 9.5 48t11 60.5t9.5 63.5t4 57q0 19 -2 39t-8.5 36.5t-20 27t-36.5 10.5q-34 0 -67.5 -21t-64.5 -56t-59 -80t-50.5 -92.5t-39 -94t-24.5 -84.5l-115 -514h-307z" /> +<glyph unicode="n" horiz-adv-x="1376" d="M76 0l172 815q3 13 5.5 27t4.5 26.5t3 21.5t1 13q0 28 -6 45t-19 26t-33.5 12t-49.5 3h-37l18 109h455l-23 -219h13q39 61 80.5 106t89.5 74.5t104.5 44t124.5 14.5q65 0 109.5 -19t72 -51.5t39.5 -75t12 -89.5q0 -26 -3.5 -55.5t-9 -59.5t-12 -60t-11.5 -57l-46 -219 q-12 -56 -20 -104.5t-8 -91.5q0 -45 18.5 -69t53.5 -24q32 0 58.5 12t61.5 35l49 -69q-24 -26 -55 -51.5t-69.5 -45.5t-85.5 -32t-103 -12q-118 0 -181 55.5t-63 154.5q0 88 33 244l33 162q4 20 10 49t12 60.5t10.5 63t4.5 56.5q0 19 -3.5 40t-13 38t-26 28t-43.5 11 q-35 0 -69.5 -23.5t-66.5 -62t-61 -88t-52.5 -101.5t-40.5 -102t-26 -90l-104 -475h-307z" /> +<glyph unicode="o" horiz-adv-x="1266" d="M82 410q0 77 18 159t54.5 161t91.5 149.5t129.5 123.5t169 84t209.5 31q88 0 166 -24.5t136 -76.5t92 -133.5t34 -195.5q0 -74 -17 -155t-52.5 -159.5t-90 -150t-128.5 -125.5t-168 -86t-210 -32q-96 0 -176 26.5t-137 80t-89 134.5t-32 189zM395 360q0 -125 42 -179 t116 -54q55 0 99.5 31.5t80 83t61.5 117.5t42.5 136t25 137.5t8.5 121.5q0 121 -41.5 174t-113.5 53q-52 0 -96 -30t-79.5 -80t-62.5 -114.5t-45.5 -133.5t-27.5 -137.5t-9 -125.5z" /> +<glyph unicode="p" horiz-adv-x="1276" d="M-61 -492l278 1307q3 13 5.5 27t4.5 26.5t3 21.5t1 13q0 28 -6 45t-19 26t-33.5 12t-49.5 3h-37l18 109h441l-53 -273h14q35 64 72 118t82 93t102 60.5t133 21.5q67 0 122.5 -24t94.5 -71t60.5 -116t21.5 -159q0 -74 -17.5 -159.5t-52.5 -171t-87.5 -164.5t-123.5 -139.5 t-159.5 -97t-194.5 -36.5q-62 0 -115.5 12.5t-93.5 34.5q-1 -16 -4 -33q-2 -14 -5 -31.5t-7 -34.5l-29 -137q-3 -13 -5.5 -27t-4.5 -26.5t-3 -21.5t-1 -13q0 -28 6 -45t19 -26t33.5 -12t49.5 -3h78l-18 -109h-520zM391 168q9 -9 24 -19.5t34 -18.5t41.5 -13.5t46.5 -5.5 q55 0 102.5 30t86 80t68.5 114.5t50 133.5t30.5 137.5t10.5 126.5q0 42 -5.5 81.5t-18 70.5t-34 50t-53.5 19q-34 0 -67.5 -19.5t-65 -52.5t-59 -76t-50 -89.5t-39 -93.5t-24.5 -88z" /> +<glyph unicode="q" horiz-adv-x="1292" d="M82 354q0 80 19.5 167.5t56.5 172.5t91.5 162t124.5 135t154.5 92.5t182.5 34.5q45 0 88 -6t82 -15.5t72 -21.5t59 -24l121 67h102l-281 -1327q-6 -26 -10 -55t-4 -49q0 -37 25 -53.5t84 -16.5h77l-18 -109h-485l82 410q3 16 8 39.5t11 51.5t12.5 58.5t12.5 60.5 q15 70 33 148h-12q-35 -67 -72 -121.5t-82.5 -93.5t-104.5 -60t-138 -21q-65 0 -118.5 24t-91.5 71t-59.5 117t-21.5 162zM393 360q0 -59 8.5 -100t23 -67t35 -38t44.5 -12q31 0 62.5 18.5t62.5 51t59.5 76.5t52 94t42 103.5t28.5 105.5l74 338q-14 23 -49 40t-84 17 q-61 0 -111 -32t-90 -84.5t-69.5 -119.5t-49 -136.5t-29.5 -136t-10 -118.5z" /> +<glyph unicode="r" horiz-adv-x="1128" d="M76 0l174 823q3 17 7.5 45t4.5 50q0 38 -25 54.5t-83 16.5h-37l18 109h453l-43 -281h10q35 74 70.5 130t78 94t96.5 57.5t126 19.5q109 0 162 -41t53 -119q0 -106 -62 -158t-180 -52q0 46 -4.5 83.5t-16 64t-31 40.5t-48.5 14t-61 -23.5t-64 -64.5t-62.5 -97.5 t-58.5 -123t-51 -139.5t-39 -148l-78 -354h-309z" /> +<glyph unicode="s" horiz-adv-x="1053" d="M35 205q0 48 19 81t49.5 53.5t70 30t80.5 9.5q0 -55 11 -105t35 -88.5t62.5 -61t94.5 -22.5q42 0 78 10.5t62 30t41 48t15 65.5q0 35 -13.5 62t-42 50.5t-72 46.5t-103.5 52q-60 28 -108.5 60t-82.5 71t-52.5 87t-18.5 108q0 75 32 135t92 102.5t145.5 65t193.5 22.5 q103 0 174.5 -16t116 -42.5t64 -61.5t19.5 -72q0 -82 -63 -119t-172 -37q0 41 -8 82.5t-27 75.5t-49 55t-74 21q-40 0 -71.5 -11.5t-54 -31t-34.5 -45.5t-12 -56q0 -34 13.5 -59t42 -47t72.5 -43.5t104 -48.5q66 -30 114 -63.5t79.5 -73t47 -86t15.5 -103.5 q0 -83 -31.5 -149t-94.5 -112t-156 -70.5t-216 -24.5q-88 0 -159.5 15t-122 44t-78 71t-27.5 95z" /> +<glyph unicode="t" horiz-adv-x="854" d="M123 958l22 105q44 0 96 15t106.5 49t109 89t102.5 134h119l-53 -252h247l-28 -140h-250l-123 -561q-11 -45 -15.5 -81.5t-4.5 -65.5q0 -51 28 -77t74 -26q48 0 87 16t73 38l47 -78q-34 -29 -71.5 -55t-81.5 -45.5t-94.5 -31t-109.5 -11.5q-56 0 -104.5 14.5t-84.5 44 t-56.5 74.5t-20.5 106q0 18 1.5 40t4.5 45t7 45.5t8 41.5l123 567h-158z" /> +<glyph unicode="u" horiz-adv-x="1378" d="M117 989l18 109h492l-135 -613q-6 -24 -12 -54t-11 -60t-8.5 -57t-3.5 -46q0 -45 19 -71.5t69 -26.5q45 0 92.5 40.5t91 105t77.5 144t52 156.5l109 482h305l-139 -666q-13 -56 -21 -104.5t-8 -91.5q0 -45 18.5 -69t53.5 -24q32 0 58.5 12t61.5 35l50 -69 q-25 -26 -56 -51.5t-69.5 -45.5t-85.5 -32t-103 -12q-68 0 -113.5 15.5t-73.5 42t-40 62t-12 76.5q0 9 1 21t2.5 25t3 24.5t3.5 19.5h-17q-45 -64 -88.5 -116t-92.5 -89.5t-106 -58t-130 -20.5q-66 0 -111 18.5t-72 49.5t-39 72.5t-12 86.5q0 51 12 112t23 113l74 361 q8 42 13 76t5 51q0 41 -25 54t-83 13h-37z" /> +<glyph unicode="v" horiz-adv-x="1200" d="M33 989l24 109h402l94 -606q15 -104 21.5 -185.5t11.5 -132.5h6q70 72 134 155t113 166.5t78 162t29 141.5q0 69 -39 101t-96 32q0 84 46 134t124 50q32 0 60 -10.5t49 -33.5t33 -59t12 -87q0 -80 -26 -167t-68.5 -174.5t-97.5 -172t-113.5 -160t-115.5 -140t-104 -110.5 l-270 -20l-145 899q-6 32 -17.5 53t-29 33t-41.5 17t-54 5h-20z" /> +<glyph unicode="w" horiz-adv-x="1792" d="M76 989l33 109h395q6 -102 11 -203.5t8 -190t5 -159t2 -111.5q0 -78 -1 -125.5t-1 -52.5h15q51 81 102 177t101 202t98 218.5t92 225.5l250 8q6 -51 11.5 -125t10.5 -158t9.5 -172t8 -166.5t5.5 -142t2 -98.5h14q90 111 149 200.5t93.5 163.5t48.5 134t14 111q0 30 -9 54 t-23 41.5t-32.5 28t-37.5 15.5q3 39 16.5 66.5t34 45t46.5 25.5t55 8q68 0 105.5 -45t37.5 -129q0 -106 -45 -224t-120 -240.5t-172 -244t-200 -233.5l-250 -22q0 63 -1.5 136.5t-3 151.5l-3 156t-3.5 149t-4 131t-3 103q-80 -190 -183 -394.5t-239 -406.5l-268 -18l-21 852 q-1 47 -12 76t-29.5 45.5t-44 22t-55.5 5.5h-12z" /> +<glyph unicode="x" horiz-adv-x="1237" d="M-41 0l21 109h26q29 0 52.5 4.5t47 18.5t51.5 40t66 68l258 284l-141 340q-16 39 -31.5 63t-33.5 38t-40 19t-51 5h-24l20 109h385l144 -389l284 389h250l-20 -109h-37q-30 0 -53.5 -6t-47 -22.5t-50 -45t-62.5 -73.5l-211 -244l149 -344q19 -43 35.5 -71t34.5 -44.5 t40 -23t52 -6.5h27l-21 -109h-397l-154 414l-319 -414h-250z" /> +<glyph unicode="y" horiz-adv-x="1200" d="M-344 -455l31 115q24 -8 67.5 -17.5t106.5 -9.5q94 0 172 25t144.5 67.5t125 99.5t113.5 122l-256 934q-17 61 -49.5 84.5t-92.5 23.5h-20l25 109h401l135 -531q10 -40 21 -93.5t21 -107t17 -100t9 -71.5h6q61 82 115 165t94.5 161.5t64 149.5t23.5 130q0 69 -33.5 105 t-93.5 36q0 40 12.5 72.5t34.5 55.5t52 35.5t65 12.5q83 0 125.5 -46t42.5 -128q0 -80 -27 -169t-77 -189t-121.5 -212t-161.5 -237q-74 -104 -139 -191t-127.5 -157t-127 -122.5t-137 -88t-158 -53t-190.5 -17.5q-59 0 -114.5 10t-98.5 27z" /> +<glyph unicode="z" horiz-adv-x="1143" d="M0 0l23 104l684 854h-261q-41 0 -69 -13.5t-49.5 -37.5t-39 -58t-36.5 -75l-4 -8h-125l90 332h879l-23 -107l-686 -852h332q35 0 62 16.5t47.5 43t36.5 59.5t30 66l20 47h119l-88 -371h-942z" /> +<glyph unicode="{" horiz-adv-x="905" d="M80 590l26 125q51 1 96.5 9.5t82 29.5t62.5 57.5t38 93.5l74 352q16 77 46 133.5t78.5 93t119.5 54.5t169 18h195l-23 -108h-79q-44 0 -74.5 -13t-52 -38t-35.5 -62.5t-25 -85.5l-76 -348q-20 -93 -84.5 -152.5t-189.5 -86.5l-4 -17q93 -25 136.5 -70.5t43.5 -113.5 q0 -27 -6 -58l-76 -350q-6 -26 -8 -49t-2 -43q0 -53 26 -80.5t89 -27.5h80l-25 -109h-195q-146 0 -219 59t-73 164q0 9 0.5 20t2.5 27t6 39.5t11 57.5l61 286q7 29 7 56q0 40 -15.5 66t-43 41.5t-64.5 21.5t-80 8z" /> +<glyph unicode="|" d="M530 -492v2048h148v-2048h-148z" /> +<glyph unicode="}" horiz-adv-x="905" d="M-111 -254l23 109h80q44 0 74.5 13t52 38t35 62t24.5 85l76 348q20 93 84.5 152.5t189.5 87.5l4 16q-92 25 -136 71t-44 114q0 27 6 57l76 350q6 26 8 49t2 43q0 53 -25.5 81t-88.5 28h-80l24 109h195q147 0 220 -59t73 -165q0 -9 -0.5 -20t-3 -27t-6.5 -39t-11 -57 l-61 -287q-6 -30 -6 -55q0 -41 15.5 -67t43 -41t64.5 -21.5t80 -7.5l-27 -125q-51 -2 -96 -10t-81.5 -29t-63 -57.5t-38.5 -94.5l-73 -352q-16 -77 -46 -133.5t-79 -93t-120 -54.5t-169 -18h-195z" /> +<glyph unicode="~" horiz-adv-x="1149" d="M100 598v158q100 108 248 108q29 0 54 -2.5t52.5 -9t61 -19t80.5 -32.5q37 -16 64.5 -27t51 -17.5t43.5 -9t42 -2.5q28 0 58 9.5t59 26t57 38.5t53 47v-157q-50 -54 -111 -81.5t-137 -27.5q-29 0 -54 2.5t-52.5 9.5t-61 19.5t-80.5 32.5q-37 16 -64.5 26.5t-50 17t-43 9 t-42.5 2.5q-29 0 -58.5 -9.5t-59 -25.5t-57.5 -38.5t-53 -47.5z" /> +<glyph unicode="¡" horiz-adv-x="809" d="M25 -367l354 996h119l-117 -996h-356zM309 928q0 51 15.5 86.5t41 57t57.5 31t64 9.5q75 0 120.5 -36t45.5 -111q0 -42 -12.5 -76t-35.5 -58t-56 -37.5t-74 -13.5q-35 0 -65.5 9t-53 27t-35 46t-12.5 66z" /> +<glyph unicode="¢" d="M137 592q0 71 17.5 148.5t52.5 153.5t87.5 145.5t121.5 125.5t154.5 93.5t187.5 48.5l33 155h127l-33 -151q77 -5 132.5 -24t91 -48t52.5 -66t17 -77q0 -32 -14 -62.5t-44 -55t-77.5 -39.5t-114.5 -15q0 74 -19 135t-57 96l-176 -831h16q59 0 106 14.5t84.5 38.5t66.5 54 t52 61q13 -13 23 -36.5t10 -54.5q0 -38 -23 -78t-71 -73.5t-122 -56t-175 -25.5l-35 -168h-127l37 174q-81 12 -151 43.5t-121 83.5t-80 124.5t-29 166.5zM451 588q0 -84 26.5 -142.5t79.5 -89.5l174 830q-44 -10 -81.5 -44.5t-68.5 -84.5t-55 -111t-41 -124t-25.5 -124 t-8.5 -110z" /> +<glyph unicode="£" d="M-12 106l69 44q51 30 102.5 71.5t93 94.5t67.5 118.5t26 143.5q0 34 -3.5 66.5t-8.5 64.5h-236l29 125h192q-6 38 -13 91t-7 103q0 108 38 193t107.5 143t168 88.5t218.5 30.5q87 0 154 -17.5t112.5 -48t69 -71t23.5 -86.5q0 -88 -66 -134.5t-190 -46.5q0 140 -40 209.5 t-110 69.5q-103 0 -158 -86t-55 -244q0 -60 7 -109.5t12 -84.5h364l-28 -125l-326 2q1 -8 2 -20t2 -26t1.5 -29t0.5 -28q0 -63 -20 -114.5t-58 -95t-93 -81t-126 -71.5l2 -8q54 20 98 28t83 8q46 0 95 -11.5t95.5 -25t88 -25t73.5 -11.5q35 0 62 4.5t50.5 14t46.5 24.5 t50 37l65 -103q-24 -25 -64 -59t-88.5 -65t-102.5 -52.5t-105 -21.5t-99.5 14.5t-99 32.5t-105.5 32.5t-118 14.5q-41 0 -75.5 -3.5t-66 -11t-63 -19.5t-65.5 -28l-33 -14z" /> +<glyph unicode="¤" d="M168 403l119 119q-60 92 -60 207q0 59 17 113.5t49 99.5l-123 123l102 102l123 -123q45 29 96.5 45.5t110.5 16.5q57 0 109.5 -16.5t97.5 -47.5l127 127l102 -104l-125 -127q31 -45 48.5 -97.5t17.5 -111.5t-16 -110.5t-45 -96.5l120 -121l-102 -102l-121 121 q-46 -31 -100 -48.5t-113 -17.5t-112.5 16.5t-98.5 47.5l-119 -119zM367 729q0 -49 18.5 -92t50 -75.5t74.5 -51t92 -18.5q51 0 94 18.5t74.5 51t49.5 75.5t18 92q0 51 -18 94.5t-49.5 76t-74.5 51t-94 18.5q-49 0 -92 -18.5t-74.5 -51t-50 -76t-18.5 -94.5z" /> +<glyph unicode="¥" horiz-adv-x="1104" d="M70 0l22 109h55q32 0 62 4.5t55 18t43 37.5t27 64l22 105h-286l24 121h287l27 119h-287l24 120h271l-125 547q-7 31 -14 51.5t-18.5 33.5t-30 18.5t-48.5 5.5h-26l22 108h559l-22 -108h-58q-46 0 -66 -16t-20 -44q0 -18 8 -55.5t17 -85.5l37 -195q12 -65 21.5 -125 t9.5 -102q11 28 32 67t47 83l158 266q22 37 42 77t20 74q0 28 -23 42t-57 14h-41l24 108h434l-22 -108h-6q-47 0 -91.5 -39t-97.5 -121l-319 -496h262l-25 -120h-286l-27 -119h287l-25 -121h-286l-23 -98q-5 -22 -7.5 -38t-2.5 -24q0 -22 11 -35.5t30.5 -21t46.5 -10 t59 -2.5h49l-22 -109h-733z" /> +<glyph unicode="¦" d="M528 328h148v-820h-148v820zM528 737v819h148v-819h-148z" /> +<glyph unicode="§" horiz-adv-x="1114" d="M45 10q0 52 19 85.5t48 52t63 25.5t63 7q0 -65 15.5 -120t45 -95t72 -63t96.5 -23q53 0 95.5 17t72 46t45.5 69t16 85q0 41 -11 73.5t-41 64t-82 65.5t-134 78q-78 41 -129 82t-81 83t-42 87t-12 94q0 50 16.5 91.5t43.5 76t61.5 62t70.5 48.5q-18 29 -33.5 76t-15.5 109 q0 88 35.5 157t96 116t140.5 72t169 25q93 0 160.5 -17.5t112 -47.5t66 -70.5t21.5 -85.5q0 -44 -14.5 -73.5t-41.5 -47t-64.5 -25t-82.5 -7.5q0 55 -11.5 103t-34 83t-55.5 55.5t-75 20.5q-37 0 -73.5 -12t-66 -37t-47.5 -63.5t-18 -90.5q0 -45 12.5 -78.5t41.5 -63 t76.5 -58.5t117.5 -66q75 -40 127 -77.5t84.5 -76t46.5 -79t14 -87.5q0 -48 -15.5 -91t-42.5 -81.5t-62.5 -71t-75.5 -57.5q18 -29 32.5 -72.5t14.5 -97.5q0 -87 -32 -163.5t-91 -133.5t-142.5 -90t-185.5 -33q-93 0 -167 18t-125.5 50.5t-79 78t-27.5 99.5zM344 788 q0 -33 11 -61t37 -54.5t70.5 -54t112.5 -59.5q57 -28 111.5 -60t89.5 -61q32 26 51 60.5t19 76.5q0 23 -9 48t-32.5 51t-63.5 53.5t-102 56.5q-66 31 -120.5 62.5t-100.5 68.5q-32 -24 -53 -53.5t-21 -73.5z" /> +<glyph unicode="¨" horiz-adv-x="1182" d="M381 1386q0 66 33 105t90 39q49 0 80.5 -28t31.5 -85q0 -40 -11 -67t-28 -44t-39 -24.5t-44 -7.5q-51 0 -82 27.5t-31 84.5zM809 1386q0 66 33 105t90 39q49 0 80.5 -28t31.5 -85q0 -40 -11 -67t-28 -44t-39 -24.5t-44 -7.5q-51 0 -82 27.5t-31 84.5z" /> +<glyph unicode="©" horiz-adv-x="1731" d="M129 731q0 104 27 200.5t75.5 180t117.5 152.5t152.5 118t179.5 76t200 27t200 -27t179.5 -76t152.5 -118t118 -152.5t76 -180t27 -200.5t-27 -200t-76 -179.5t-118 -152t-152.5 -117.5t-179.5 -75.5t-200 -26.5t-200 26.5t-179.5 75.5t-152.5 117.5t-117.5 152 t-75.5 179.5t-27 200zM242 731q0 -88 23 -169.5t64.5 -152.5t99.5 -129.5t129 -100t153 -64.5t170 -23q89 0 170.5 23t153 64.5t130 100t100 129.5t64.5 152.5t23 169.5q0 133 -50.5 249.5t-137.5 203.5t-203.5 137.5t-249.5 50.5q-88 0 -170 -23t-153 -64.5t-129 -100 t-99.5 -130t-64.5 -153.5t-23 -170zM481 733q0 100 28 183t83.5 143t137.5 93.5t190 33.5q70 0 123 -11.5t87.5 -31t52 -46t17.5 -57.5q0 -22 -11 -40t-29.5 -30.5t-44 -19t-54.5 -6.5q0 28 -7.5 56t-24.5 50.5t-45 36t-69 13.5q-72 0 -122.5 -24t-82.5 -71t-46.5 -115.5 t-14.5 -156.5q0 -177 69 -272.5t200 -95.5q46 0 86 12t72.5 32t55.5 44.5t37 50.5q13 -9 21 -25.5t8 -38.5q0 -28 -19 -57t-57.5 -53t-96 -39t-134.5 -15q-102 0 -179 33t-128.5 93t-77 144t-25.5 187z" /> +<glyph unicode="ª" horiz-adv-x="883" d="M156 1010q0 48 12 101t37 104.5t63.5 97.5t90 81t117 55.5t145.5 20.5q55 0 91.5 -12t67.5 -31l72 29h70l-76 -373q-8 -42 -15.5 -75.5t-7.5 -59.5q0 -53 43 -53q20 0 42.5 9.5t45.5 23.5l27 -49q-13 -14 -34.5 -31t-48.5 -31.5t-59.5 -24.5t-66.5 -10q-68 0 -105.5 27.5 t-37.5 75.5q0 25 3.5 57t6.5 55h-8q-26 -48 -55.5 -87t-63.5 -67t-73.5 -43.5t-84.5 -15.5q-51 0 -88.5 17.5t-62 48t-36 71.5t-11.5 89zM395 1022q0 -34 5 -56.5t14 -36.5t20.5 -20t24.5 -6q27 0 56 24.5t54 62t45 80.5t29 81l49 195q-12 18 -37.5 28t-50.5 10 q-34 0 -63 -17.5t-52 -47t-40.5 -67.5t-29.5 -78t-18 -79.5t-6 -72.5z" /> +<glyph unicode="«" horiz-adv-x="1135" d="M121 514l22 107l389 342h144l-293 -410l119 -410h-144zM532 514l23 107l389 342h143l-292 -410l118 -410h-143z" /> +<glyph unicode="¬" d="M166 659v146h878v-512h-147v366h-731z" /> +<glyph unicode="­" horiz-adv-x="635" d="M20 451l48 215h532l-47 -215h-533z" /> +<glyph unicode="®" horiz-adv-x="1731" d="M129 731q0 104 27 200.5t75.5 180t117.5 152.5t152.5 118t179.5 76t200 27t200 -27t179.5 -76t152.5 -118t118 -152.5t76 -180t27 -200.5t-27 -200t-76 -179.5t-118 -152t-152.5 -117.5t-179.5 -75.5t-200 -26.5t-200 26.5t-179.5 75.5t-152.5 117.5t-117.5 152 t-75.5 179.5t-27 200zM242 731q0 -88 23 -169.5t64.5 -152.5t99.5 -129.5t129 -100t153 -64.5t170 -23q89 0 170.5 23t153 64.5t130 100t100 129.5t64.5 152.5t23 169.5q0 133 -50.5 249.5t-137.5 203.5t-203.5 137.5t-249.5 50.5q-88 0 -170 -23t-153 -64.5t-129 -100 t-99.5 -130t-64.5 -153.5t-23 -170zM494 289v69h26q20 0 38 2.5t32 10t22.5 21.5t8.5 38v600q0 24 -8.5 38t-22.5 21.5t-32 10t-38 2.5h-26v72h368q352 0 352 -244q0 -49 -16 -86t-42 -64t-59.5 -45.5t-68.5 -29.5l182 -293q10 -17 19.5 -27.5t22.5 -16.5t30 -8t43 -2v-69 h-217l-225 381h-109v-240q1 -24 9.5 -38t22 -21.5t31 -10t37.5 -2.5h29v-69h-409zM774 748h86q55 0 92.5 11t59.5 33t31.5 56t9.5 80q0 45 -11 77t-35 51.5t-61.5 28.5t-91.5 9h-80v-346z" /> +<glyph unicode="¯" horiz-adv-x="940" d="M-10 1556v121h960v-121h-960z" /> +<glyph unicode="°" horiz-adv-x="819" d="M225 1151q0 64 24 121t66 99t98.5 66.5t121.5 24.5q64 0 121 -24.5t99 -66.5t66.5 -99t24.5 -121q0 -65 -24.5 -121t-66.5 -98t-99 -66t-121 -24q-65 0 -121.5 24t-98.5 66t-66 98t-24 121zM367 1151q0 -35 13 -65.5t36 -54t53.5 -37t65.5 -13.5q36 0 67 13.5t54 37 t36 54t13 65.5q0 36 -13 67.5t-36 54.5t-54 36.5t-67 13.5q-35 0 -65.5 -13.5t-53.5 -36.5t-36 -54.5t-13 -67.5z" /> +<glyph unicode="±" d="M166 0v145h878v-145h-878zM166 659v146h364v366h148v-366h366v-146h-366v-366h-148v366h-364z" /> +<glyph unicode="²" horiz-adv-x="819" d="M59 586l29 147l303 221q62 45 104 86.5t67 81.5t35.5 80.5t10.5 83.5q0 20 -4.5 39t-14.5 33.5t-26.5 23.5t-40.5 9q-29 0 -52 -17t-40.5 -45t-29 -64.5t-15.5 -76.5q-72 0 -114 29t-42 75q0 42 22 77t63.5 60.5t100.5 39.5t134 14q64 0 115.5 -13.5t87.5 -37.5t55.5 -58 t19.5 -76q0 -43 -14.5 -82.5t-50 -82t-93.5 -92t-145 -111.5l-256 -185h301q48 0 72.5 25t36.5 59l16 43h80l-57 -286h-658z" /> +<glyph unicode="³" horiz-adv-x="819" d="M59 739q0 28 11.5 49.5t32 36.5t48.5 23t60 8q0 -29 9 -60.5t29 -57t52 -42t78 -16.5q37 0 69.5 9t56.5 29.5t38 52.5t14 77q0 28 -11 54t-33.5 45t-58 30.5t-83.5 11.5h-68l16 96h70q43 0 82 14.5t68.5 41.5t47 66.5t17.5 90.5q0 41 -18.5 67t-59.5 26 q-33 0 -57.5 -14.5t-42 -39.5t-28 -57t-15.5 -68q-75 0 -120.5 22.5t-45.5 72.5q0 36 22 68t63.5 56t101.5 38t135 14q73 0 126.5 -14.5t88.5 -40t52 -59.5t17 -73q0 -54 -19 -94t-53.5 -69t-82 -48t-103.5 -30l-2 -11q94 -11 150.5 -57t56.5 -131q0 -69 -31 -122 t-85.5 -88.5t-130 -54t-163.5 -18.5q-149 0 -225 44.5t-76 121.5z" /> +<glyph unicode="´" horiz-adv-x="1182" d="M498 1241l6 27q28 29 61 67t65.5 78.5t63 80.5t54.5 75h321l-6 -21q-16 -18 -44 -42.5t-63.5 -52.5t-76 -57.5t-82.5 -57.5t-83 -53.5t-77 -43.5h-139z" /> +<glyph unicode="µ" horiz-adv-x="1386" d="M-4 -344q0 61 17 137t44 173t60 219t65 276l135 637h312l-137 -643l-7 -35t-7.5 -42.5t-6 -45t-2.5 -41.5q0 -28 6.5 -53t21 -43.5t36 -29.5t51.5 -11q95 0 160 91.5t106 286.5l121 566h311l-141 -666q-13 -56 -21 -104.5t-8 -91.5q0 -45 19 -69t53 -24q32 0 58.5 12 t62.5 35l49 -69q-25 -26 -56 -51.5t-71 -45.5t-89 -32t-110 -12q-63 0 -104.5 17.5t-66 46t-34.5 66t-10 78.5h-10q-35 -47 -68.5 -85.5t-70.5 -65.5t-79 -42t-93 -15q-91 0 -154 40.5t-100 106.5q-7 -36 -12.5 -74t-9 -74t-5.5 -68.5t-2 -57.5q0 -35 6.5 -63.5t25 -49.5 t51 -34.5t83.5 -18.5q-8 -45 -31.5 -79t-57 -56t-74.5 -33t-83 -11q-29 0 -53.5 7.5t-42 25t-27.5 45.5t-10 70z" /> +<glyph unicode="¶" horiz-adv-x="1284" d="M131 1192q0 82 17 149t55 115t98.5 74t147.5 26h802v-108h-26q-35 0 -65.5 -5t-53 -20.5t-36 -44.5t-13.5 -78v-1273q0 -48 13.5 -77t36 -44.5t53 -20t65.5 -4.5h26v-108h-342v1657h-172v-1657h-342v108h27q34 0 65 4.5t53.5 20t36 44.5t13.5 77v764h-146 q-90 0 -150 32.5t-96 88t-51.5 128t-15.5 152.5z" /> +<glyph unicode="·" horiz-adv-x="623" d="M174 709q0 42 12.5 76t36 58t56 37t73.5 13q35 0 65.5 -9t53 -27t35 -46t12.5 -65q0 -51 -15.5 -86.5t-41 -57t-57.5 -31t-64 -9.5q-74 0 -120 36t-46 111z" /> +<glyph unicode="¸" horiz-adv-x="682" d="M51 -465l27 121q35 -8 70 -12t63 -4q31 0 59 6t48 18.5t32 32t12 47.5q0 20 -10.5 36.5t-28.5 29t-43 19.5t-53 9l82 180h117l-39 -88q41 -5 74.5 -20t57.5 -37.5t37 -51t13 -61.5q0 -66 -30.5 -113.5t-81.5 -78.5t-116.5 -45.5t-135.5 -14.5q-32 0 -75.5 7.5t-78.5 19.5 z" /> +<glyph unicode="¹" horiz-adv-x="819" d="M131 588l19 90h104q19 0 36.5 2.5t31.5 10.5t24.5 23.5t15.5 41.5l123 581q-58 -57 -103.5 -92t-82.5 -35q-29 0 -44 29.5t-15 71.5q24 4 48 11t50 18t56 27t65 38l106 68h152l-146 -689q-5 -18 -6.5 -33t-1.5 -20q0 -18 6.5 -28.5t17.5 -16t25.5 -7t30.5 -1.5h84 l-18 -90h-578z" /> +<glyph unicode="º" horiz-adv-x="834" d="M147 1038q0 46 13.5 96.5t39.5 98.5t65 91.5t91 76.5t116 52.5t140 19.5q64 0 120.5 -15t98.5 -46t66.5 -79t24.5 -114q0 -43 -12 -92t-37 -98t-62.5 -94t-89 -79.5t-116.5 -55t-144 -20.5q-71 0 -129 16.5t-99 49.5t-63.5 81t-22.5 111zM379 1028q0 -69 23 -107t69 -38 q55 0 96.5 34.5t69 86.5t41.5 111.5t14 109.5q0 68 -21 103.5t-69 35.5q-52 0 -93.5 -33t-70 -83.5t-44 -109.5t-15.5 -110z" /> +<glyph unicode="»" horiz-adv-x="1135" d="M45 143l295 410l-121 410h143l236 -369l-23 -107l-387 -344h-143zM457 143l295 410l-121 410h143l236 -369l-23 -107l-387 -344h-143z" /> +<glyph unicode="¼" horiz-adv-x="1720" d="M54 588l19 90h104q19 0 36.5 2.5t31.5 10.5t24.5 23.5t15.5 41.5l123 581q-58 -57 -103.5 -92t-82.5 -35q-29 0 -44 29.5t-15 71.5q24 4 48 11t50 18t56 27t65 38l106 68h152l-146 -689q-5 -18 -6.5 -33t-1.5 -20q0 -18 6.5 -28.5t17.5 -16t25.5 -7t30.5 -1.5h84l-18 -90 h-578zM286 0l1039 1462h172l-1037 -1462h-174zM876 240l17 82l528 564h182l-112 -537h159l-24 -109h-160l-8 -36q-5 -22 -6.5 -39t-1.5 -23q0 -17 5.5 -27t15.5 -15.5t23 -7t27 -1.5h41l-18 -90h-471l18 90h58q17 0 32.5 2.5t29 10.5t23.5 23.5t15 41.5l14 71h-387z M1044 349h244l47 229q6 32 17 63.5t22 69.5q-11 -17 -24 -33t-19 -24z" /> +<glyph unicode="½" horiz-adv-x="1720" d="M54 588l19 90h104q19 0 36.5 2.5t31.5 10.5t24.5 23.5t15.5 41.5l123 581q-58 -57 -103.5 -92t-82.5 -35q-29 0 -44 29.5t-15 71.5q24 4 48 11t50 18t56 27t65 38l106 68h152l-146 -689q-5 -18 -6.5 -33t-1.5 -20q0 -18 6.5 -28.5t17.5 -16t25.5 -7t30.5 -1.5h84l-18 -90 h-578zM276 0l1039 1462h172l-1037 -1462h-174zM899 1l29 147l303 221q62 45 104 86.5t67 81.5t35.5 80.5t10.5 83.5q0 20 -4.5 39t-14.5 33.5t-26.5 23.5t-40.5 9q-29 0 -52 -17t-40.5 -45t-29 -64.5t-15.5 -76.5q-72 0 -114 29t-42 75q0 42 22 77t63.5 60.5t100.5 39.5 t134 14q64 0 115.5 -13.5t87.5 -37.5t55.5 -58t19.5 -76q0 -43 -14.5 -82.5t-50 -82t-93.5 -92t-145 -111.5l-256 -185h301q48 0 72.5 25t36.5 59l16 43h80l-57 -286h-658z" /> +<glyph unicode="¾" horiz-adv-x="1720" d="M56 739q0 28 11.5 49.5t32 36.5t48.5 23t60 8q0 -29 9 -60.5t29 -57t52 -42t78 -16.5q37 0 69.5 9t56.5 29.5t38 52.5t14 77q0 28 -11 54t-33.5 45t-58 30.5t-83.5 11.5h-68l16 96h70q43 0 82 14.5t68.5 41.5t47 66.5t17.5 90.5q0 41 -18.5 67t-59.5 26 q-33 0 -57.5 -14.5t-42 -39.5t-28 -57t-15.5 -68q-75 0 -120.5 22.5t-45.5 72.5q0 36 22 68t63.5 56t101.5 38t135 14q73 0 126.5 -14.5t88.5 -40t52 -59.5t17 -73q0 -54 -19 -94t-53.5 -69t-82 -48t-103.5 -30l-2 -11q94 -11 150.5 -57t56.5 -131q0 -69 -31 -122 t-85.5 -88.5t-130 -54t-163.5 -18.5q-149 0 -225 44.5t-76 121.5zM340 0l1039 1462h172l-1037 -1462h-174zM884 240l17 82l528 564h182l-112 -537h159l-24 -109h-160l-8 -36q-5 -22 -6.5 -39t-1.5 -23q0 -17 5.5 -27t15.5 -15.5t23 -7t27 -1.5h41l-18 -90h-471l18 90h58 q17 0 32.5 2.5t29 10.5t23.5 23.5t15 41.5l14 71h-387zM1052 349h244l47 229q6 32 17 63.5t22 69.5q-11 -17 -24 -33t-19 -24z" /> +<glyph unicode="¿" horiz-adv-x="1096" d="M4 -49q0 89 39 162.5t107 134t161.5 109t202.5 87.5l74 183h131l4 -254q-91 -33 -164.5 -72.5t-125.5 -90t-80.5 -115t-28.5 -148.5q0 -51 11 -90t31 -66t46.5 -41t58.5 -14q48 0 82.5 25t57.5 66t36.5 95t20.5 113q252 0 252 -158q0 -55 -33 -103.5t-94.5 -84.5 t-149.5 -57t-197 -21q-102 0 -184 20t-139 61.5t-88 105.5t-31 153zM524 926q0 51 15.5 86.5t41 57t57.5 31t64 9.5q75 0 120.5 -36t45.5 -111q0 -42 -12.5 -76t-35.5 -58t-56 -37.5t-74 -13.5q-35 0 -65.5 9t-53 27t-35 46t-12.5 66z" /> +<glyph unicode="À" horiz-adv-x="1542" d="M-100 0l22 109h43q28 0 49.5 6.5t41.5 24.5t41.5 49t49.5 79l695 1194h280l172 -1206q5 -32 13.5 -59t22.5 -46.5t35.5 -30.5t53.5 -11h37l-22 -109h-676l22 109h47q66 0 105 20.5t39 65.5q0 17 -1 33.5t-3 31.5l-31 221h-498l-100 -184q-20 -37 -29.5 -65t-9.5 -50 q0 -38 28 -55.5t87 -17.5h41l-23 -109h-532zM508 606h414l-37 344q-5 45 -9.5 84.5t-8 76.5t-6 72t-3.5 72q-15 -37 -30 -68.5t-32 -64t-37.5 -69t-47.5 -84.5zM654 1886l6 21h301q12 -37 31.5 -80t40.5 -84t42.5 -77t38.5 -60l-6 -27h-121q-44 26 -93.5 66t-95.5 83.5 t-84.5 85.5t-59.5 72z" /> +<glyph unicode="Á" horiz-adv-x="1542" d="M-100 0l22 109h43q28 0 49.5 6.5t41.5 24.5t41.5 49t49.5 79l695 1194h280l172 -1206q5 -32 13.5 -59t22.5 -46.5t35.5 -30.5t53.5 -11h37l-22 -109h-676l22 109h47q66 0 105 20.5t39 65.5q0 17 -1 33.5t-3 31.5l-31 221h-498l-100 -184q-20 -37 -29.5 -65t-9.5 -50 q0 -38 28 -55.5t87 -17.5h41l-23 -109h-532zM508 606h414l-37 344q-5 45 -9.5 84.5t-8 76.5t-6 72t-3.5 72q-15 -37 -30 -68.5t-32 -64t-37.5 -69t-47.5 -84.5zM858 1579l6 27q28 29 61 67t65.5 78.5t63 80.5t54.5 75h321l-6 -21q-16 -18 -44 -42.5t-63.5 -52.5t-76 -57.5 t-82.5 -57.5t-83 -53.5t-77 -43.5h-139z" /> +<glyph unicode="Â" horiz-adv-x="1542" d="M-100 0l22 109h43q28 0 49.5 6.5t41.5 24.5t41.5 49t49.5 79l695 1194h280l172 -1206q5 -32 13.5 -59t22.5 -46.5t35.5 -30.5t53.5 -11h37l-22 -109h-676l22 109h47q66 0 105 20.5t39 65.5q0 17 -1 33.5t-3 31.5l-31 221h-498l-100 -184q-20 -37 -29.5 -65t-9.5 -50 q0 -38 28 -55.5t87 -17.5h41l-23 -109h-532zM508 606h414l-37 344q-5 45 -9.5 84.5t-8 76.5t-6 72t-3.5 72q-15 -37 -30 -68.5t-32 -64t-37.5 -69t-47.5 -84.5zM613 1579l6 27q30 29 68 66.5t78 77.5t78 80.5t67 76.5h276q13 -32 33 -72t42.5 -81t44.5 -80t40 -68l-6 -27 h-129q-18 17 -42 40t-49 48t-49.5 50t-42.5 46q-27 -21 -61 -46t-69 -50t-68 -48t-58 -40h-159z" /> +<glyph unicode="Ã" horiz-adv-x="1542" d="M-100 0l22 109h43q28 0 49.5 6.5t41.5 24.5t41.5 49t49.5 79l695 1194h280l172 -1206q5 -32 13.5 -59t22.5 -46.5t35.5 -30.5t53.5 -11h37l-22 -109h-676l22 109h47q66 0 105 20.5t39 65.5q0 17 -1 33.5t-3 31.5l-31 221h-498l-100 -184q-20 -37 -29.5 -65t-9.5 -50 q0 -38 28 -55.5t87 -17.5h41l-23 -109h-532zM508 606h414l-37 344q-5 45 -9.5 84.5t-8 76.5t-6 72t-3.5 72q-15 -37 -30 -68.5t-32 -64t-37.5 -69t-47.5 -84.5zM607 1600q9 46 32.5 99.5t59.5 98.5t82.5 75t101.5 30q54 0 96.5 -20t78 -44.5t67 -44.5t63.5 -20q26 0 45 9 t32.5 24t22 34.5t13.5 40.5h123q-11 -49 -33.5 -102.5t-56 -98t-78 -73.5t-99.5 -29t-99 20t-81 44.5t-69.5 44.5t-65.5 20q-21 0 -40 -9t-34 -24t-25 -34.5t-14 -40.5h-122z" /> +<glyph unicode="Ä" horiz-adv-x="1542" d="M-100 0l22 109h43q28 0 49.5 6.5t41.5 24.5t41.5 49t49.5 79l695 1194h280l172 -1206q5 -32 13.5 -59t22.5 -46.5t35.5 -30.5t53.5 -11h37l-22 -109h-676l22 109h47q66 0 105 20.5t39 65.5q0 17 -1 33.5t-3 31.5l-31 221h-498l-100 -184q-20 -37 -29.5 -65t-9.5 -50 q0 -38 28 -55.5t87 -17.5h41l-23 -109h-532zM508 606h414l-37 344q-5 45 -9.5 84.5t-8 76.5t-6 72t-3.5 72q-15 -37 -30 -68.5t-32 -64t-37.5 -69t-47.5 -84.5zM678 1724q0 66 33 105t90 39q49 0 80.5 -28t31.5 -85q0 -40 -11 -67t-28 -44t-39 -24.5t-44 -7.5 q-51 0 -82 27.5t-31 84.5zM1106 1724q0 66 33 105t90 39q49 0 80.5 -28t31.5 -85q0 -40 -11 -67t-28 -44t-39 -24.5t-44 -7.5q-51 0 -82 27.5t-31 84.5z" /> +<glyph unicode="Å" horiz-adv-x="1542" d="M-100 0l22 109h43q28 0 49.5 6.5t41.5 24.5t41.5 49t49.5 79l695 1194h280l172 -1206q5 -32 13.5 -59t22.5 -46.5t35.5 -30.5t53.5 -11h37l-22 -109h-676l22 109h47q66 0 105 20.5t39 65.5q0 17 -1 33.5t-3 31.5l-31 221h-498l-100 -184q-20 -37 -29.5 -65t-9.5 -50 q0 -38 28 -55.5t87 -17.5h41l-23 -109h-532zM508 606h414l-37 344q-5 45 -9.5 84.5t-8 76.5t-6 72t-3.5 72q-15 -37 -30 -68.5t-32 -64t-37.5 -69t-47.5 -84.5zM725 1573q0 54 19 96t52.5 70t78.5 42.5t96 14.5t96 -14.5t78.5 -42.5t52.5 -70t19 -96q0 -55 -19 -96.5 t-52.5 -70t-78.5 -43t-96 -14.5t-96 14.5t-78.5 43t-52.5 70t-19 96.5zM850 1573q0 -30 9.5 -51t26 -34.5t38.5 -19.5t47 -6q24 0 46 6t38.5 19.5t26.5 34.5t10 51t-10 50.5t-26.5 34t-38.5 19.5t-46 6q-25 0 -47 -6t-38.5 -19.5t-26 -34t-9.5 -50.5z" /> +<glyph unicode="Æ" horiz-adv-x="2034" d="M-90 0l22 109h25q27 0 52 9.5t50.5 29t52.5 49.5t58 71l805 1075l-133 11l22 108h1219l-72 -381h-145q1 7 2.5 25t3 37.5t3 36t1.5 20.5q0 28 -8 53t-25 44t-44.5 29.5t-67.5 10.5h-273l-108 -512h465l-27 -123h-465l-123 -577h324q48 0 85.5 13.5t66 36.5t48 53.5 t31.5 64.5l33 88h145l-94 -381h-1175l22 109h27q32 0 62.5 4t55.5 17t43.5 37t26.5 64l49 238h-467l-121 -172q-30 -43 -43.5 -76.5t-13.5 -50.5q0 -32 28 -46.5t81 -14.5h35l-23 -109h-516zM575 592h402l158 745h-21z" /> +<glyph unicode="Ç" horiz-adv-x="1368" d="M129 530q0 123 29 242t84 226t134.5 197t180 156t220.5 103t257 37q102 0 178.5 -17.5t127 -49t75.5 -77t25 -100.5q0 -45 -22 -79t-60.5 -57.5t-91.5 -35.5t-115 -12q0 43 -6 95t-24.5 97t-52.5 75t-91 30q-81 0 -149.5 -37t-125 -100.5t-100 -147.5t-73 -177.5 t-45 -191t-15.5 -188.5q0 -175 89 -270.5t265 -95.5q71 0 128 16t102 42.5t79 59.5t60 68q12 -9 23.5 -28t11.5 -42q0 -51 -31 -102.5t-91.5 -93t-149.5 -67t-205 -25.5q-147 0 -262.5 36.5t-195 107t-121.5 173t-42 233.5zM348 -465l27 121q35 -8 70 -12t63 -4q31 0 59 6 t48 18.5t32 32t12 47.5q0 20 -10.5 36.5t-28.5 29t-43 19.5t-53 9l82 180h117l-39 -88q41 -5 74.5 -20t57.5 -37.5t37 -51t13 -61.5q0 -66 -30.5 -113.5t-81.5 -78.5t-116.5 -45.5t-135.5 -14.5q-32 0 -75.5 7.5t-78.5 19.5z" /> +<glyph unicode="È" horiz-adv-x="1296" d="M-47 0l22 109h27q32 0 62.5 4t55.5 17t43.5 37t26.5 64l213 1006q4 11 6.5 25t2.5 22q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h1112l-72 -381h-145q1 7 2.5 25t3 37.5t3 36t1.5 20.5q0 28 -8 53t-25 44t-44.5 29.5t-67.5 10.5h-272l-109 -512h465l-27 -123 h-465l-123 -577h324q48 0 86 13.5t66 36.5t47.5 53.5t31.5 64.5l33 88h146l-95 -381h-1175zM537 1886l6 21h301q12 -37 31.5 -80t40.5 -84t42.5 -77t38.5 -60l-6 -27h-121q-44 26 -93.5 66t-95.5 83.5t-84.5 85.5t-59.5 72z" /> +<glyph unicode="É" horiz-adv-x="1296" d="M-47 0l22 109h27q32 0 62.5 4t55.5 17t43.5 37t26.5 64l213 1006q4 11 6.5 25t2.5 22q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h1112l-72 -381h-145q1 7 2.5 25t3 37.5t3 36t1.5 20.5q0 28 -8 53t-25 44t-44.5 29.5t-67.5 10.5h-272l-109 -512h465l-27 -123 h-465l-123 -577h324q48 0 86 13.5t66 36.5t47.5 53.5t31.5 64.5l33 88h146l-95 -381h-1175zM742 1579l6 27q28 29 61 67t65.5 78.5t63 80.5t54.5 75h321l-6 -21q-16 -18 -44 -42.5t-63.5 -52.5t-76 -57.5t-82.5 -57.5t-83 -53.5t-77 -43.5h-139z" /> +<glyph unicode="Ê" horiz-adv-x="1296" d="M-47 0l22 109h27q32 0 62.5 4t55.5 17t43.5 37t26.5 64l213 1006q4 11 6.5 25t2.5 22q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h1112l-72 -381h-145q1 7 2.5 25t3 37.5t3 36t1.5 20.5q0 28 -8 53t-25 44t-44.5 29.5t-67.5 10.5h-272l-109 -512h465l-27 -123 h-465l-123 -577h324q48 0 86 13.5t66 36.5t47.5 53.5t31.5 64.5l33 88h146l-95 -381h-1175zM551 1579l6 27q30 29 68 66.5t78 77.5t78 80.5t67 76.5h276q13 -32 33 -72t42.5 -81t44.5 -80t40 -68l-6 -27h-129q-18 17 -42 40t-49 48t-49.5 50t-42.5 46q-27 -21 -61 -46 t-69 -50t-68 -48t-58 -40h-159z" /> +<glyph unicode="Ë" horiz-adv-x="1296" d="M-47 0l22 109h27q32 0 62.5 4t55.5 17t43.5 37t26.5 64l213 1006q4 11 6.5 25t2.5 22q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h1112l-72 -381h-145q1 7 2.5 25t3 37.5t3 36t1.5 20.5q0 28 -8 53t-25 44t-44.5 29.5t-67.5 10.5h-272l-109 -512h465l-27 -123 h-465l-123 -577h324q48 0 86 13.5t66 36.5t47.5 53.5t31.5 64.5l33 88h146l-95 -381h-1175zM576 1724q0 66 33 105t90 39q49 0 80.5 -28t31.5 -85q0 -40 -11 -67t-28 -44t-39 -24.5t-44 -7.5q-51 0 -82 27.5t-31 84.5zM1004 1724q0 66 33 105t90 39q49 0 80.5 -28t31.5 -85 q0 -40 -11 -67t-28 -44t-39 -24.5t-44 -7.5q-51 0 -82 27.5t-31 84.5z" /> +<glyph unicode="Ì" horiz-adv-x="821" d="M-47 0l22 109h27q32 0 62.5 4t55.5 17t43.5 37t26.5 64l213 1006q4 11 6.5 25t2.5 22q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h707l-23 -108h-26q-34 0 -65.5 -4.5t-57.5 -17.5t-45 -38t-27 -65l-211 -1004q-2 -11 -5 -25t-3 -22q0 -22 11 -35.5t31 -21 t47.5 -10t59.5 -2.5h27l-23 -109h-704zM296 1886l6 21h301q12 -37 31.5 -80t40.5 -84t42.5 -77t38.5 -60l-6 -27h-121q-44 26 -93.5 66t-95.5 83.5t-84.5 85.5t-59.5 72z" /> +<glyph unicode="Í" horiz-adv-x="821" d="M-47 0l22 109h27q32 0 62.5 4t55.5 17t43.5 37t26.5 64l213 1006q4 11 6.5 25t2.5 22q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h707l-23 -108h-26q-34 0 -65.5 -4.5t-57.5 -17.5t-45 -38t-27 -65l-211 -1004q-2 -11 -5 -25t-3 -22q0 -22 11 -35.5t31 -21 t47.5 -10t59.5 -2.5h27l-23 -109h-704zM495 1579l6 27q28 29 61 67t65.5 78.5t63 80.5t54.5 75h321l-6 -21q-16 -18 -44 -42.5t-63.5 -52.5t-76 -57.5t-82.5 -57.5t-83 -53.5t-77 -43.5h-139z" /> +<glyph unicode="Î" horiz-adv-x="821" d="M-47 0l22 109h27q32 0 62.5 4t55.5 17t43.5 37t26.5 64l213 1006q4 11 6.5 25t2.5 22q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h707l-23 -108h-26q-34 0 -65.5 -4.5t-57.5 -17.5t-45 -38t-27 -65l-211 -1004q-2 -11 -5 -25t-3 -22q0 -22 11 -35.5t31 -21 t47.5 -10t59.5 -2.5h27l-23 -109h-704zM266 1579l6 27q30 29 68 66.5t78 77.5t78 80.5t67 76.5h276q13 -32 33 -72t42.5 -81t44.5 -80t40 -68l-6 -27h-129q-18 17 -42 40t-49 48t-49.5 50t-42.5 46q-27 -21 -61 -46t-69 -50t-68 -48t-58 -40h-159z" /> +<glyph unicode="Ï" horiz-adv-x="821" d="M-47 0l22 109h27q32 0 62.5 4t55.5 17t43.5 37t26.5 64l213 1006q4 11 6.5 25t2.5 22q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h707l-23 -108h-26q-34 0 -65.5 -4.5t-57.5 -17.5t-45 -38t-27 -65l-211 -1004q-2 -11 -5 -25t-3 -22q0 -22 11 -35.5t31 -21 t47.5 -10t59.5 -2.5h27l-23 -109h-704zM321 1724q0 66 33 105t90 39q49 0 80.5 -28t31.5 -85q0 -40 -11 -67t-28 -44t-39 -24.5t-44 -7.5q-51 0 -82 27.5t-31 84.5zM749 1724q0 66 33 105t90 39q49 0 80.5 -28t31.5 -85q0 -40 -11 -67t-28 -44t-39 -24.5t-44 -7.5 q-51 0 -82 27.5t-31 84.5z" /> +<glyph unicode="Ð" horiz-adv-x="1573" d="M-49 0l22 109h29q32 0 62.5 4t55.5 17t43.5 37t26.5 64l99 471h-168l26 125h168l88 410q3 11 5.5 25t2.5 22q0 22 -11 36t-30.5 21.5t-46.5 10t-59 2.5h-27l23 108h655q147 0 262 -36t195 -106.5t122 -174.5t42 -240q0 -122 -25.5 -236.5t-75 -215t-122.5 -184 t-169 -143.5t-214.5 -93t-257.5 -33h-721zM491 127h93q144 0 257 58.5t191 164t119 251.5t41 321q0 107 -25 185.5t-72 129.5t-113.5 75.5t-148.5 24.5h-86l-108 -510h258l-27 -125h-258z" /> +<glyph unicode="Ñ" horiz-adv-x="1614" d="M-47 0l22 109h27q32 0 62.5 4t55.5 17t43.5 37t26.5 64l209 983q13 53 13 70q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h455l499 -1050l172 809q11 47 11 63q0 22 -11.5 36t-31.5 21.5t-47.5 10t-59.5 2.5h-6l23 108h516l-23 -108h-26q-32 0 -62.5 -4.5 t-55.5 -17.5t-43.5 -37t-27.5 -64l-260 -1231h-188l-555 1159l-193 -917q-5 -23 -7.5 -39.5t-2.5 -24.5q0 -22 11 -35.5t31 -21t47.5 -10t59.5 -2.5h7l-23 -109h-516zM666 1600q9 46 32.5 99.5t59.5 98.5t82.5 75t101.5 30q54 0 96.5 -20t78 -44.5t67 -44.5t63.5 -20 q26 0 45 9t32.5 24t22 34.5t13.5 40.5h123q-11 -49 -33.5 -102.5t-56 -98t-78 -73.5t-99.5 -29t-99 20t-81 44.5t-69.5 44.5t-65.5 20q-21 0 -40 -9t-34 -24t-25 -34.5t-14 -40.5h-122z" /> +<glyph unicode="Ò" horiz-adv-x="1622" d="M129 545q0 98 24.5 206t73.5 212.5t122 199t169.5 166t217.5 114t265 42.5q113 0 215.5 -33t180.5 -102t124 -175t46 -253q0 -94 -23.5 -201t-71 -212t-119 -201t-168 -169.5t-218 -117.5t-267.5 -44q-121 0 -225.5 36.5t-181 108.5t-120.5 178t-44 245zM463 496 q0 -101 21.5 -173.5t59 -119t88.5 -68.5t109 -22q85 0 154.5 41t124.5 109.5t95.5 157t67 183.5t39.5 189.5t13 175.5q0 100 -21 172t-57.5 119t-87.5 69.5t-111 22.5q-85 0 -154.5 -41t-124.5 -109.5t-96 -157t-67.5 -184t-39.5 -190t-13 -174.5zM650 1886l6 21h301 q12 -37 31.5 -80t40.5 -84t42.5 -77t38.5 -60l-6 -27h-121q-44 26 -93.5 66t-95.5 83.5t-84.5 85.5t-59.5 72z" /> +<glyph unicode="Ó" horiz-adv-x="1622" d="M129 545q0 98 24.5 206t73.5 212.5t122 199t169.5 166t217.5 114t265 42.5q113 0 215.5 -33t180.5 -102t124 -175t46 -253q0 -94 -23.5 -201t-71 -212t-119 -201t-168 -169.5t-218 -117.5t-267.5 -44q-121 0 -225.5 36.5t-181 108.5t-120.5 178t-44 245zM463 496 q0 -101 21.5 -173.5t59 -119t88.5 -68.5t109 -22q85 0 154.5 41t124.5 109.5t95.5 157t67 183.5t39.5 189.5t13 175.5q0 100 -21 172t-57.5 119t-87.5 69.5t-111 22.5q-85 0 -154.5 -41t-124.5 -109.5t-96 -157t-67.5 -184t-39.5 -190t-13 -174.5zM875 1579l6 27 q28 29 61 67t65.5 78.5t63 80.5t54.5 75h321l-6 -21q-16 -18 -44 -42.5t-63.5 -52.5t-76 -57.5t-82.5 -57.5t-83 -53.5t-77 -43.5h-139z" /> +<glyph unicode="Ô" horiz-adv-x="1622" d="M129 545q0 98 24.5 206t73.5 212.5t122 199t169.5 166t217.5 114t265 42.5q113 0 215.5 -33t180.5 -102t124 -175t46 -253q0 -94 -23.5 -201t-71 -212t-119 -201t-168 -169.5t-218 -117.5t-267.5 -44q-121 0 -225.5 36.5t-181 108.5t-120.5 178t-44 245zM463 496 q0 -101 21.5 -173.5t59 -119t88.5 -68.5t109 -22q85 0 154.5 41t124.5 109.5t95.5 157t67 183.5t39.5 189.5t13 175.5q0 100 -21 172t-57.5 119t-87.5 69.5t-111 22.5q-85 0 -154.5 -41t-124.5 -109.5t-96 -157t-67.5 -184t-39.5 -190t-13 -174.5zM646 1579l6 27 q30 29 68 66.5t78 77.5t78 80.5t67 76.5h276q13 -32 33 -72t42.5 -81t44.5 -80t40 -68l-6 -27h-129q-18 17 -42 40t-49 48t-49.5 50t-42.5 46q-27 -21 -61 -46t-69 -50t-68 -48t-58 -40h-159z" /> +<glyph unicode="Õ" horiz-adv-x="1622" d="M129 545q0 98 24.5 206t73.5 212.5t122 199t169.5 166t217.5 114t265 42.5q113 0 215.5 -33t180.5 -102t124 -175t46 -253q0 -94 -23.5 -201t-71 -212t-119 -201t-168 -169.5t-218 -117.5t-267.5 -44q-121 0 -225.5 36.5t-181 108.5t-120.5 178t-44 245zM463 496 q0 -101 21.5 -173.5t59 -119t88.5 -68.5t109 -22q85 0 154.5 41t124.5 109.5t95.5 157t67 183.5t39.5 189.5t13 175.5q0 100 -21 172t-57.5 119t-87.5 69.5t-111 22.5q-85 0 -154.5 -41t-124.5 -109.5t-96 -157t-67.5 -184t-39.5 -190t-13 -174.5zM603 1600q9 46 32.5 99.5 t59.5 98.5t82.5 75t101.5 30q54 0 96.5 -20t78 -44.5t67 -44.5t63.5 -20q26 0 45 9t32.5 24t22 34.5t13.5 40.5h123q-11 -49 -33.5 -102.5t-56 -98t-78 -73.5t-99.5 -29t-99 20t-81 44.5t-69.5 44.5t-65.5 20q-21 0 -40 -9t-34 -24t-25 -34.5t-14 -40.5h-122z" /> +<glyph unicode="Ö" horiz-adv-x="1622" d="M129 545q0 98 24.5 206t73.5 212.5t122 199t169.5 166t217.5 114t265 42.5q113 0 215.5 -33t180.5 -102t124 -175t46 -253q0 -94 -23.5 -201t-71 -212t-119 -201t-168 -169.5t-218 -117.5t-267.5 -44q-121 0 -225.5 36.5t-181 108.5t-120.5 178t-44 245zM463 496 q0 -101 21.5 -173.5t59 -119t88.5 -68.5t109 -22q85 0 154.5 41t124.5 109.5t95.5 157t67 183.5t39.5 189.5t13 175.5q0 100 -21 172t-57.5 119t-87.5 69.5t-111 22.5q-85 0 -154.5 -41t-124.5 -109.5t-96 -157t-67.5 -184t-39.5 -190t-13 -174.5zM707 1724q0 66 33 105 t90 39q49 0 80.5 -28t31.5 -85q0 -40 -11 -67t-28 -44t-39 -24.5t-44 -7.5q-51 0 -82 27.5t-31 84.5zM1135 1724q0 66 33 105t90 39q49 0 80.5 -28t31.5 -85q0 -40 -11 -67t-28 -44t-39 -24.5t-44 -7.5q-51 0 -82 27.5t-31 84.5z" /> +<glyph unicode="×" d="M199 432l301 303l-301 301l104 103l301 -301l301 303l105 -105l-303 -303l303 -303l-103 -102l-303 303l-301 -303z" /> +<glyph unicode="Ø" horiz-adv-x="1622" d="M129 545q0 98 24.5 206t73.5 212.5t122 199t169.5 166t217.5 114t265 42.5q162 0 295 -68l97 129h143l-145 -192q80 -69 128 -176t48 -256q0 -94 -23.5 -201t-71 -212t-119 -201t-168 -169.5t-218 -117.5t-267.5 -44q-81 0 -154 17t-138 49l-93 -125h-145l143 186 q-86 73 -135 182.5t-49 258.5zM463 496q0 -96 18 -166l686 915q-37 54 -90.5 80.5t-118.5 26.5q-85 0 -154.5 -41t-124.5 -109.5t-96 -157t-67.5 -184t-39.5 -190t-13 -174.5zM537 213q37 -53 89.5 -76.5t114.5 -23.5q85 0 154.5 41t124.5 109.5t95.5 157t67 183.5 t39.5 189.5t13 175.5q0 43 -4 82t-12 71z" /> +<glyph unicode="Ù" horiz-adv-x="1530" d="M203 334q0 16 2 40t5 49.5t7 50t8 42.5l150 698q12 55 12 70q0 22 -11 36t-30.5 21.5t-46.5 10t-59 2.5h-27l23 108h708l-22 -108h-27q-34 0 -65.5 -4.5t-57.5 -17t-44.5 -36.5t-27.5 -63l-155 -721q-4 -18 -8.5 -40t-8 -45.5t-6 -47.5t-2.5 -45q0 -103 64 -156t188 -53 q93 0 157 27t107 74.5t69 113t42 143.5l158 740q3 17 5.5 35t2.5 26q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h539l-23 -108h-26q-33 0 -64 -4.5t-57 -17.5t-44.5 -38t-27.5 -65l-164 -778q-24 -115 -71.5 -203t-121 -147.5t-173.5 -90t-230 -30.5 q-120 0 -212 23.5t-155 69t-95.5 111.5t-32.5 150zM682 1886l6 21h301q12 -37 31.5 -80t40.5 -84t42.5 -77t38.5 -60l-6 -27h-121q-44 26 -93.5 66t-95.5 83.5t-84.5 85.5t-59.5 72z" /> +<glyph unicode="Ú" horiz-adv-x="1530" d="M203 334q0 16 2 40t5 49.5t7 50t8 42.5l150 698q12 55 12 70q0 22 -11 36t-30.5 21.5t-46.5 10t-59 2.5h-27l23 108h708l-22 -108h-27q-34 0 -65.5 -4.5t-57.5 -17t-44.5 -36.5t-27.5 -63l-155 -721q-4 -18 -8.5 -40t-8 -45.5t-6 -47.5t-2.5 -45q0 -103 64 -156t188 -53 q93 0 157 27t107 74.5t69 113t42 143.5l158 740q3 17 5.5 35t2.5 26q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h539l-23 -108h-26q-33 0 -64 -4.5t-57 -17.5t-44.5 -38t-27.5 -65l-164 -778q-24 -115 -71.5 -203t-121 -147.5t-173.5 -90t-230 -30.5 q-120 0 -212 23.5t-155 69t-95.5 111.5t-32.5 150zM908 1579l6 27q28 29 61 67t65.5 78.5t63 80.5t54.5 75h321l-6 -21q-16 -18 -44 -42.5t-63.5 -52.5t-76 -57.5t-82.5 -57.5t-83 -53.5t-77 -43.5h-139z" /> +<glyph unicode="Û" horiz-adv-x="1530" d="M203 334q0 16 2 40t5 49.5t7 50t8 42.5l150 698q12 55 12 70q0 22 -11 36t-30.5 21.5t-46.5 10t-59 2.5h-27l23 108h708l-22 -108h-27q-34 0 -65.5 -4.5t-57.5 -17t-44.5 -36.5t-27.5 -63l-155 -721q-4 -18 -8.5 -40t-8 -45.5t-6 -47.5t-2.5 -45q0 -103 64 -156t188 -53 q93 0 157 27t107 74.5t69 113t42 143.5l158 740q3 17 5.5 35t2.5 26q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h539l-23 -108h-26q-33 0 -64 -4.5t-57 -17.5t-44.5 -38t-27.5 -65l-164 -778q-24 -115 -71.5 -203t-121 -147.5t-173.5 -90t-230 -30.5 q-120 0 -212 23.5t-155 69t-95.5 111.5t-32.5 150zM691 1579l6 27q30 29 68 66.5t78 77.5t78 80.5t67 76.5h276q13 -32 33 -72t42.5 -81t44.5 -80t40 -68l-6 -27h-129q-18 17 -42 40t-49 48t-49.5 50t-42.5 46q-27 -21 -61 -46t-69 -50t-68 -48t-58 -40h-159z" /> +<glyph unicode="Ü" horiz-adv-x="1530" d="M203 334q0 16 2 40t5 49.5t7 50t8 42.5l150 698q12 55 12 70q0 22 -11 36t-30.5 21.5t-46.5 10t-59 2.5h-27l23 108h708l-22 -108h-27q-34 0 -65.5 -4.5t-57.5 -17t-44.5 -36.5t-27.5 -63l-155 -721q-4 -18 -8.5 -40t-8 -45.5t-6 -47.5t-2.5 -45q0 -103 64 -156t188 -53 q93 0 157 27t107 74.5t69 113t42 143.5l158 740q3 17 5.5 35t2.5 26q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h539l-23 -108h-26q-33 0 -64 -4.5t-57 -17.5t-44.5 -38t-27.5 -65l-164 -778q-24 -115 -71.5 -203t-121 -147.5t-173.5 -90t-230 -30.5 q-120 0 -212 23.5t-155 69t-95.5 111.5t-32.5 150zM721 1724q0 66 33 105t90 39q49 0 80.5 -28t31.5 -85q0 -40 -11 -67t-28 -44t-39 -24.5t-44 -7.5q-51 0 -82 27.5t-31 84.5zM1149 1724q0 66 33 105t90 39q49 0 80.5 -28t31.5 -85q0 -40 -11 -67t-28 -44t-39 -24.5 t-44 -7.5q-51 0 -82 27.5t-31 84.5z" /> +<glyph unicode="Ý" horiz-adv-x="1419" d="M180 1354l23 108h665l-22 -108h-92q-47 0 -66.5 -16t-19.5 -44q0 -18 6 -52t18 -81l74 -289q7 -30 15 -64t14.5 -68t11 -66.5t6.5 -57.5q19 41 58 104t92 138l202 289q25 35 43.5 76t18.5 75q0 28 -28.5 42t-96.5 14h-43l24 108h537l-23 -108h-38q-23 0 -42.5 -6 t-39.5 -21.5t-42.5 -41t-50.5 -64.5l-507 -705l-62 -291q-2 -11 -5 -25t-3 -22q0 -22 11 -35.5t31 -21t47.5 -10t59.5 -2.5h50l-23 -109h-756l23 109h55q32 0 62 4.5t55 18t43 37.5t27 64l59 285l-221 727q-9 30 -18.5 51t-22.5 33.5t-32.5 18.5t-49.5 6h-27zM826 1579l6 27 q28 29 61 67t65.5 78.5t63 80.5t54.5 75h321l-6 -21q-16 -18 -44 -42.5t-63.5 -52.5t-76 -57.5t-82.5 -57.5t-83 -53.5t-77 -43.5h-139z" /> +<glyph unicode="Þ" horiz-adv-x="1307" d="M-47 0l22 109h27q32 0 62.5 4t55.5 17t43.5 37t26.5 64l213 1006q4 11 6.5 25t2.5 22q0 22 -11 36t-30.5 21.5t-47 10t-59.5 2.5h-26l22 108h707l-23 -108h-26q-34 0 -65.5 -4.5t-57.5 -17.5t-45 -38t-27 -65l-6 -31h67q121 0 217.5 -25.5t164.5 -76t104.5 -125 t36.5 -172.5q0 -52 -10 -110t-35.5 -114t-70.5 -106.5t-114.5 -89t-167.5 -61.5t-229 -23h-154l-14 -70q-2 -11 -5 -25t-3 -22q0 -22 11 -35.5t31 -21t47.5 -10t59.5 -2.5h27l-23 -109h-704zM551 414h84q93 0 157.5 28t104.5 78t58 120t18 153q0 76 -17.5 130t-49 88.5 t-75 50t-94.5 15.5h-45z" /> +<glyph unicode="ß" horiz-adv-x="1423" d="M-299 -471l29 113q17 -5 40.5 -9t55.5 -4q45 0 81 19.5t65.5 62t53.5 109.5t46 162l207 976h-166l26 140h170l17 63q27 116 81.5 195.5t130.5 129t170 71.5t201 22q111 0 194 -23t138.5 -64.5t83 -100.5t27.5 -131q0 -26 -3.5 -58.5t-8.5 -66.5t-11.5 -67.5t-13.5 -61.5 h-117q-61 0 -105 -12t-72.5 -33.5t-42 -51.5t-13.5 -67q0 -29 8.5 -53t28.5 -47t54.5 -47.5t86.5 -55.5q99 -57 141.5 -129.5t42.5 -171.5q0 -81 -32.5 -147t-92 -113t-143 -72.5t-185.5 -25.5q-77 0 -140 15t-108 44t-69.5 70t-24.5 94q0 40 15 71.5t43 53t66.5 32.5 t86.5 11q0 -48 8 -95t26.5 -85t48 -61.5t71.5 -23.5q68 0 103.5 45t35.5 119q0 32 -6 60.5t-23 55.5t-47.5 53t-78.5 55q-96 55 -149.5 131t-53.5 176q0 83 31.5 142.5t83 98t116.5 56.5t133 18q10 47 15.5 85.5t5.5 72.5q0 84 -41 135t-127 51q-55 0 -97.5 -19.5t-74 -56 t-53 -89t-33.5 -119.5l-256 -1192q-20 -94 -54.5 -166t-78 -125t-94.5 -88.5t-105 -57t-109.5 -30.5t-107.5 -9q-40 0 -75.5 6.5t-55.5 14.5z" /> +<glyph unicode="à" horiz-adv-x="1362" d="M82 354q0 80 18.5 167.5t55.5 172.5t91.5 162t126 135t159.5 92.5t192 34.5q40 0 81.5 -6.5t79.5 -16.5t71.5 -22.5t56.5 -25.5l108 49h109l-135 -639q-4 -17 -10 -45t-11.5 -59.5t-9.5 -61t-4 -49.5q0 -51 20 -76t52 -25q29 0 55.5 12.5t58.5 30.5l45 -82 q-26 -20 -59 -41.5t-73.5 -39.5t-88 -29.5t-102.5 -11.5q-91 0 -146 41.5t-55 121.5q0 32 3 62.5t11 70.5h-14q-38 -71 -75.5 -126.5t-83.5 -93t-102.5 -57t-131.5 -19.5q-73 0 -128 28.5t-91.5 78.5t-55 118.5t-18.5 148.5zM393 352q0 -59 8.5 -99t23 -64.5t35 -35 t44.5 -10.5q45 0 93 39t90 102.5t75.5 143.5t50.5 162l72 340q-20 29 -55.5 43t-75.5 14q-60 0 -109.5 -31t-89.5 -83t-70.5 -118t-51 -137t-30.5 -140t-10 -126zM425 1548l6 21h301q12 -37 31.5 -80t40.5 -84t42.5 -77t38.5 -60l-6 -27h-121q-44 26 -93.5 66t-95.5 83.5 t-84.5 85.5t-59.5 72z" /> +<glyph unicode="á" horiz-adv-x="1362" d="M82 354q0 80 18.5 167.5t55.5 172.5t91.5 162t126 135t159.5 92.5t192 34.5q40 0 81.5 -6.5t79.5 -16.5t71.5 -22.5t56.5 -25.5l108 49h109l-135 -639q-4 -17 -10 -45t-11.5 -59.5t-9.5 -61t-4 -49.5q0 -51 20 -76t52 -25q29 0 55.5 12.5t58.5 30.5l45 -82 q-26 -20 -59 -41.5t-73.5 -39.5t-88 -29.5t-102.5 -11.5q-91 0 -146 41.5t-55 121.5q0 32 3 62.5t11 70.5h-14q-38 -71 -75.5 -126.5t-83.5 -93t-102.5 -57t-131.5 -19.5q-73 0 -128 28.5t-91.5 78.5t-55 118.5t-18.5 148.5zM393 352q0 -59 8.5 -99t23 -64.5t35 -35 t44.5 -10.5q45 0 93 39t90 102.5t75.5 143.5t50.5 162l72 340q-20 29 -55.5 43t-75.5 14q-60 0 -109.5 -31t-89.5 -83t-70.5 -118t-51 -137t-30.5 -140t-10 -126zM631 1241l6 27q28 29 61 67t65.5 78.5t63 80.5t54.5 75h321l-6 -21q-16 -18 -44 -42.5t-63.5 -52.5t-76 -57.5 t-82.5 -57.5t-83 -53.5t-77 -43.5h-139z" /> +<glyph unicode="â" horiz-adv-x="1362" d="M82 354q0 80 18.5 167.5t55.5 172.5t91.5 162t126 135t159.5 92.5t192 34.5q40 0 81.5 -6.5t79.5 -16.5t71.5 -22.5t56.5 -25.5l108 49h109l-135 -639q-4 -17 -10 -45t-11.5 -59.5t-9.5 -61t-4 -49.5q0 -51 20 -76t52 -25q29 0 55.5 12.5t58.5 30.5l45 -82 q-26 -20 -59 -41.5t-73.5 -39.5t-88 -29.5t-102.5 -11.5q-91 0 -146 41.5t-55 121.5q0 32 3 62.5t11 70.5h-14q-38 -71 -75.5 -126.5t-83.5 -93t-102.5 -57t-131.5 -19.5q-73 0 -128 28.5t-91.5 78.5t-55 118.5t-18.5 148.5zM383 1241l6 27q30 29 68 66.5t78 77.5t78 80.5 t67 76.5h276q13 -32 33 -72t42.5 -81t44.5 -80t40 -68l-6 -27h-129q-18 17 -42 40t-49 48t-49.5 50t-42.5 46q-27 -21 -61 -46t-69 -50t-68 -48t-58 -40h-159zM393 352q0 -59 8.5 -99t23 -64.5t35 -35t44.5 -10.5q45 0 93 39t90 102.5t75.5 143.5t50.5 162l72 340 q-20 29 -55.5 43t-75.5 14q-60 0 -109.5 -31t-89.5 -83t-70.5 -118t-51 -137t-30.5 -140t-10 -126z" /> +<glyph unicode="ã" horiz-adv-x="1362" d="M82 354q0 80 18.5 167.5t55.5 172.5t91.5 162t126 135t159.5 92.5t192 34.5q40 0 81.5 -6.5t79.5 -16.5t71.5 -22.5t56.5 -25.5l108 49h109l-135 -639q-4 -17 -10 -45t-11.5 -59.5t-9.5 -61t-4 -49.5q0 -51 20 -76t52 -25q29 0 55.5 12.5t58.5 30.5l45 -82 q-26 -20 -59 -41.5t-73.5 -39.5t-88 -29.5t-102.5 -11.5q-91 0 -146 41.5t-55 121.5q0 32 3 62.5t11 70.5h-14q-38 -71 -75.5 -126.5t-83.5 -93t-102.5 -57t-131.5 -19.5q-73 0 -128 28.5t-91.5 78.5t-55 118.5t-18.5 148.5zM393 352q0 -59 8.5 -99t23 -64.5t35 -35 t44.5 -10.5q45 0 93 39t90 102.5t75.5 143.5t50.5 162l72 340q-20 29 -55.5 43t-75.5 14q-60 0 -109.5 -31t-89.5 -83t-70.5 -118t-51 -137t-30.5 -140t-10 -126zM398 1262q9 46 32.5 99.5t59.5 98.5t82.5 75t101.5 30q54 0 96.5 -20t78 -44.5t67 -44.5t63.5 -20q26 0 45 9 t32.5 24t22 34.5t13.5 40.5h123q-11 -49 -33.5 -102.5t-56 -98t-78 -73.5t-99.5 -29t-99 20t-81 44.5t-69.5 44.5t-65.5 20q-21 0 -40 -9t-34 -24t-25 -34.5t-14 -40.5h-122z" /> +<glyph unicode="ä" horiz-adv-x="1362" d="M82 354q0 80 18.5 167.5t55.5 172.5t91.5 162t126 135t159.5 92.5t192 34.5q40 0 81.5 -6.5t79.5 -16.5t71.5 -22.5t56.5 -25.5l108 49h109l-135 -639q-4 -17 -10 -45t-11.5 -59.5t-9.5 -61t-4 -49.5q0 -51 20 -76t52 -25q29 0 55.5 12.5t58.5 30.5l45 -82 q-26 -20 -59 -41.5t-73.5 -39.5t-88 -29.5t-102.5 -11.5q-91 0 -146 41.5t-55 121.5q0 32 3 62.5t11 70.5h-14q-38 -71 -75.5 -126.5t-83.5 -93t-102.5 -57t-131.5 -19.5q-73 0 -128 28.5t-91.5 78.5t-55 118.5t-18.5 148.5zM393 352q0 -59 8.5 -99t23 -64.5t35 -35 t44.5 -10.5q45 0 93 39t90 102.5t75.5 143.5t50.5 162l72 340q-20 29 -55.5 43t-75.5 14q-60 0 -109.5 -31t-89.5 -83t-70.5 -118t-51 -137t-30.5 -140t-10 -126zM424 1386q0 66 33 105t90 39q49 0 80.5 -28t31.5 -85q0 -40 -11 -67t-28 -44t-39 -24.5t-44 -7.5 q-51 0 -82 27.5t-31 84.5zM852 1386q0 66 33 105t90 39q49 0 80.5 -28t31.5 -85q0 -40 -11 -67t-28 -44t-39 -24.5t-44 -7.5q-51 0 -82 27.5t-31 84.5z" /> +<glyph unicode="å" horiz-adv-x="1362" d="M82 354q0 80 18.5 167.5t55.5 172.5t91.5 162t126 135t159.5 92.5t192 34.5q40 0 81.5 -6.5t79.5 -16.5t71.5 -22.5t56.5 -25.5l108 49h109l-135 -639q-4 -17 -10 -45t-11.5 -59.5t-9.5 -61t-4 -49.5q0 -51 20 -76t52 -25q29 0 55.5 12.5t58.5 30.5l45 -82 q-26 -20 -59 -41.5t-73.5 -39.5t-88 -29.5t-102.5 -11.5q-91 0 -146 41.5t-55 121.5q0 32 3 62.5t11 70.5h-14q-38 -71 -75.5 -126.5t-83.5 -93t-102.5 -57t-131.5 -19.5q-73 0 -128 28.5t-91.5 78.5t-55 118.5t-18.5 148.5zM393 352q0 -59 8.5 -99t23 -64.5t35 -35 t44.5 -10.5q45 0 93 39t90 102.5t75.5 143.5t50.5 162l72 340q-20 29 -55.5 43t-75.5 14q-60 0 -109.5 -31t-89.5 -83t-70.5 -118t-51 -137t-30.5 -140t-10 -126zM557 1432q0 54 19 96t52.5 70t78.5 42.5t96 14.5t96 -14.5t78.5 -42.5t52.5 -70t19 -96q0 -55 -19 -96.5 t-52.5 -70t-78.5 -43t-96 -14.5t-96 14.5t-78.5 43t-52.5 70t-19 96.5zM682 1432q0 -30 9.5 -51t26 -34.5t38.5 -19.5t47 -6q24 0 46 6t38.5 19.5t26.5 34.5t10 51t-10 50.5t-26.5 34t-38.5 19.5t-46 6q-25 0 -47 -6t-38.5 -19.5t-26 -34t-9.5 -50.5z" /> +<glyph unicode="æ" horiz-adv-x="1802" d="M82 354q0 80 18.5 167.5t55.5 172.5t91.5 162t126 135t159.5 92.5t192 34.5q103 0 186 -31.5t154 -93.5q80 62 181.5 95.5t226.5 33.5q154 0 236.5 -63.5t82.5 -177.5q0 -83 -46 -159.5t-127 -135t-193 -93t-244 -34.5h-37.5t-38.5 2q-3 -20 -3.5 -40.5t-0.5 -37.5 q0 -119 55.5 -183.5t167.5 -64.5q50 0 95 14.5t83 38t69 53t52 60.5q12 -15 19.5 -38.5t7.5 -49.5q0 -37 -24 -78t-73.5 -75.5t-126.5 -57t-182 -22.5q-187 0 -299.5 75t-150.5 221h-19q-38 -71 -77 -126.5t-86 -93t-105 -57t-133 -19.5q-73 0 -128 28.5t-91.5 78.5 t-55 118.5t-18.5 148.5zM393 352q0 -59 8.5 -99t23 -64.5t35 -35t44.5 -10.5q37 0 77 28t77.5 74.5t70.5 108t57 129.5q10 53 24 107.5t33.5 106.5t44 101t56.5 91q-10 15 -29.5 32t-45 31.5t-55 24.5t-60.5 10q-60 0 -109.5 -31t-89.5 -83t-70.5 -118t-51 -137t-30.5 -140 t-10 -126zM1120 578h19q76 0 141.5 21t113.5 58.5t75.5 90.5t27.5 118q0 63 -26 98t-74 35q-33 0 -64.5 -17.5t-59.5 -48t-52 -71.5t-44 -88t-34.5 -97t-22.5 -99z" /> +<glyph unicode="ç" horiz-adv-x="1081" d="M82 403q0 76 19 158.5t57 162t94.5 151t131.5 125.5t168 86t204 32q85 0 146.5 -17.5t101 -47t58.5 -69t19 -83.5q0 -32 -13.5 -62.5t-43.5 -55t-77.5 -39.5t-115.5 -15q0 54 -9.5 102.5t-28.5 85t-46.5 57.5t-64.5 21q-44 0 -82.5 -29.5t-70.5 -78t-56.5 -111t-42 -129 t-26.5 -131t-9 -117.5q0 -125 57 -194.5t169 -69.5q54 0 97.5 14.5t78.5 38.5t62 54t48 61q13 -12 22 -35.5t9 -54.5q0 -40 -23.5 -81.5t-73 -75t-125.5 -55t-181 -21.5q-93 0 -175.5 26t-144 79t-97.5 132t-36 186zM151 -465l27 121q35 -8 70 -12t63 -4q31 0 59 6t48 18.5 t32 32t12 47.5q0 20 -10.5 36.5t-28.5 29t-43 19.5t-53 9l82 180h117l-39 -88q41 -5 74.5 -20t57.5 -37.5t37 -51t13 -61.5q0 -66 -30.5 -113.5t-81.5 -78.5t-116.5 -45.5t-135.5 -14.5q-32 0 -75.5 7.5t-78.5 19.5z" /> +<glyph unicode="è" horiz-adv-x="1096" d="M82 403q0 76 20 159t59.5 162.5t98 151t135.5 125.5t172.5 85.5t208.5 31.5q147 0 228 -63.5t81 -177.5q0 -83 -46 -159t-127 -133.5t-193 -91.5t-244 -34h-37t-39 2q-3 -20 -3.5 -40.5t-0.5 -37.5q0 -119 55.5 -183.5t167.5 -64.5q50 0 95 14.5t83.5 38t69 53t52.5 60.5 q12 -15 19 -38.5t7 -49.5q0 -37 -24 -78t-73.5 -75.5t-126 -57t-181.5 -22.5q-94 0 -177 26t-145.5 78.5t-98.5 132t-36 186.5zM414 578h18q76 0 141.5 20t114 57.5t76 89.5t27.5 117q0 63 -26.5 98t-74.5 35q-50 0 -95 -37.5t-81 -97.5t-62 -134.5t-38 -147.5zM429 1548 l6 21h301q12 -37 31.5 -80t40.5 -84t42.5 -77t38.5 -60l-6 -27h-121q-44 26 -93.5 66t-95.5 83.5t-84.5 85.5t-59.5 72z" /> +<glyph unicode="é" horiz-adv-x="1096" d="M82 403q0 76 20 159t59.5 162.5t98 151t135.5 125.5t172.5 85.5t208.5 31.5q147 0 228 -63.5t81 -177.5q0 -83 -46 -159t-127 -133.5t-193 -91.5t-244 -34h-37t-39 2q-3 -20 -3.5 -40.5t-0.5 -37.5q0 -119 55.5 -183.5t167.5 -64.5q50 0 95 14.5t83.5 38t69 53t52.5 60.5 q12 -15 19 -38.5t7 -49.5q0 -37 -24 -78t-73.5 -75.5t-126 -57t-181.5 -22.5q-94 0 -177 26t-145.5 78.5t-98.5 132t-36 186.5zM414 578h18q76 0 141.5 20t114 57.5t76 89.5t27.5 117q0 63 -26.5 98t-74.5 35q-50 0 -95 -37.5t-81 -97.5t-62 -134.5t-38 -147.5zM627 1241 l6 27q28 29 61 67t65.5 78.5t63 80.5t54.5 75h321l-6 -21q-16 -18 -44 -42.5t-63.5 -52.5t-76 -57.5t-82.5 -57.5t-83 -53.5t-77 -43.5h-139z" /> +<glyph unicode="ê" horiz-adv-x="1096" d="M82 403q0 76 20 159t59.5 162.5t98 151t135.5 125.5t172.5 85.5t208.5 31.5q147 0 228 -63.5t81 -177.5q0 -83 -46 -159t-127 -133.5t-193 -91.5t-244 -34h-37t-39 2q-3 -20 -3.5 -40.5t-0.5 -37.5q0 -119 55.5 -183.5t167.5 -64.5q50 0 95 14.5t83.5 38t69 53t52.5 60.5 q12 -15 19 -38.5t7 -49.5q0 -37 -24 -78t-73.5 -75.5t-126 -57t-181.5 -22.5q-94 0 -177 26t-145.5 78.5t-98.5 132t-36 186.5zM365 1241l6 27q30 29 68 66.5t78 77.5t78 80.5t67 76.5h276q13 -32 33 -72t42.5 -81t44.5 -80t40 -68l-6 -27h-129q-18 17 -42 40t-49 48 t-49.5 50t-42.5 46q-27 -21 -61 -46t-69 -50t-68 -48t-58 -40h-159zM414 578h18q76 0 141.5 20t114 57.5t76 89.5t27.5 117q0 63 -26.5 98t-74.5 35q-50 0 -95 -37.5t-81 -97.5t-62 -134.5t-38 -147.5z" /> +<glyph unicode="ë" horiz-adv-x="1096" d="M82 403q0 76 20 159t59.5 162.5t98 151t135.5 125.5t172.5 85.5t208.5 31.5q147 0 228 -63.5t81 -177.5q0 -83 -46 -159t-127 -133.5t-193 -91.5t-244 -34h-37t-39 2q-3 -20 -3.5 -40.5t-0.5 -37.5q0 -119 55.5 -183.5t167.5 -64.5q50 0 95 14.5t83.5 38t69 53t52.5 60.5 q12 -15 19 -38.5t7 -49.5q0 -37 -24 -78t-73.5 -75.5t-126 -57t-181.5 -22.5q-94 0 -177 26t-145.5 78.5t-98.5 132t-36 186.5zM399 1386q0 66 33 105t90 39q49 0 80.5 -28t31.5 -85q0 -40 -11 -67t-28 -44t-39 -24.5t-44 -7.5q-51 0 -82 27.5t-31 84.5zM414 578h18 q76 0 141.5 20t114 57.5t76 89.5t27.5 117q0 63 -26.5 98t-74.5 35q-50 0 -95 -37.5t-81 -97.5t-62 -134.5t-38 -147.5zM827 1386q0 66 33 105t90 39q49 0 80.5 -28t31.5 -85q0 -40 -11 -67t-28 -44t-39 -24.5t-44 -7.5q-51 0 -82 27.5t-31 84.5z" /> +<glyph unicode="ì" horiz-adv-x="725" d="M117 989l18 109h486l-142 -666q-12 -56 -20 -104.5t-8 -91.5q0 -45 18.5 -69t52.5 -24q32 0 59 12t62 35l49 -69q-24 -26 -55 -51.5t-70 -45.5t-85.5 -32t-102.5 -12q-118 0 -181 55.5t-63 154.5q0 44 8 105t25 139l80 381q3 13 5.5 27t4.5 26.5t3 21.5t1 13q0 28 -6 45 t-19 26t-33.5 12t-49.5 3h-37zM124 1548l6 21h301q12 -37 31.5 -80t40.5 -84t42.5 -77t38.5 -60l-6 -27h-121q-44 26 -93.5 66t-95.5 83.5t-84.5 85.5t-59.5 72z" /> +<glyph unicode="í" horiz-adv-x="725" d="M117 989l18 109h486l-142 -666q-12 -56 -20 -104.5t-8 -91.5q0 -45 18.5 -69t52.5 -24q32 0 59 12t62 35l49 -69q-24 -26 -55 -51.5t-70 -45.5t-85.5 -32t-102.5 -12q-118 0 -181 55.5t-63 154.5q0 44 8 105t25 139l80 381q3 13 5.5 27t4.5 26.5t3 21.5t1 13q0 28 -6 45 t-19 26t-33.5 12t-49.5 3h-37zM339 1241l6 27q28 29 61 67t65.5 78.5t63 80.5t54.5 75h321l-6 -21q-16 -18 -44 -42.5t-63.5 -52.5t-76 -57.5t-82.5 -57.5t-83 -53.5t-77 -43.5h-139z" /> +<glyph unicode="î" horiz-adv-x="725" d="M63 1241l6 27q30 29 68 66.5t78 77.5t78 80.5t67 76.5h276q13 -32 33 -72t42.5 -81t44.5 -80t40 -68l-6 -27h-129q-18 17 -42 40t-49 48t-49.5 50t-42.5 46q-27 -21 -61 -46t-69 -50t-68 -48t-58 -40h-159zM117 989l18 109h486l-142 -666q-12 -56 -20 -104.5t-8 -91.5 q0 -45 18.5 -69t52.5 -24q32 0 59 12t62 35l49 -69q-24 -26 -55 -51.5t-70 -45.5t-85.5 -32t-102.5 -12q-118 0 -181 55.5t-63 154.5q0 44 8 105t25 139l80 381q3 13 5.5 27t4.5 26.5t3 21.5t1 13q0 28 -6 45t-19 26t-33.5 12t-49.5 3h-37z" /> +<glyph unicode="ï" horiz-adv-x="725" d="M117 989l18 109h486l-142 -666q-12 -56 -20 -104.5t-8 -91.5q0 -45 18.5 -69t52.5 -24q32 0 59 12t62 35l49 -69q-24 -26 -55 -51.5t-70 -45.5t-85.5 -32t-102.5 -12q-118 0 -181 55.5t-63 154.5q0 44 8 105t25 139l80 381q3 13 5.5 27t4.5 26.5t3 21.5t1 13q0 28 -6 45 t-19 26t-33.5 12t-49.5 3h-37zM120 1386q0 66 33 105t90 39q49 0 80.5 -28t31.5 -85q0 -40 -11 -67t-28 -44t-39 -24.5t-44 -7.5q-51 0 -82 27.5t-31 84.5zM548 1386q0 66 33 105t90 39q49 0 80.5 -28t31.5 -85q0 -40 -11 -67t-28 -44t-39 -24.5t-44 -7.5q-51 0 -82 27.5 t-31 84.5z" /> +<glyph unicode="ð" horiz-adv-x="1260" d="M82 410q0 63 16.5 135t49.5 143t83 137t118 116t153.5 80t189.5 30q51 0 98.5 -15t79.5 -41q-14 81 -46.5 146t-82.5 119l-321 -150l29 143l194 90q-48 35 -102 59.5t-113 43.5l39 125q91 -22 177.5 -59t164.5 -91l305 140l-31 -146l-170 -78q59 -56 108 -122t84 -144.5 t54 -170.5t19 -200q0 -89 -17.5 -177t-53 -168t-89.5 -148.5t-128 -119t-168.5 -79t-209.5 -28.5q-95 0 -174 26.5t-136 79.5t-88.5 134t-31.5 190zM393 393q0 -69 11.5 -117.5t33 -78.5t52.5 -44t69 -14q55 0 99 25.5t78 68t58.5 97.5t40 114t22.5 117.5t7 108.5 q0 125 -42.5 182t-121.5 57q-56 0 -100.5 -25.5t-78.5 -68t-58 -96.5t-39.5 -111.5t-23 -113.5t-7.5 -101z" /> +<glyph unicode="ñ" horiz-adv-x="1376" d="M90 0l172 815q3 13 5.5 27t4.5 26.5t3 21.5t1 13q0 28 -6 45t-19 26t-33.5 12t-49.5 3h-37l18 109h455l-23 -219h13q39 61 80.5 106t89.5 74.5t104.5 44t124.5 14.5q65 0 109.5 -19t72 -51.5t39.5 -75t12 -89.5q0 -26 -3.5 -55.5t-9 -59.5t-12 -60t-11.5 -57l-46 -219 q-12 -56 -20 -104.5t-8 -91.5q0 -45 18.5 -69t53.5 -24q32 0 58.5 12t61.5 35l49 -69q-24 -26 -55 -51.5t-69.5 -45.5t-85.5 -32t-103 -12q-118 0 -181 55.5t-63 154.5q0 88 33 244l33 162q4 20 10 49t12 60.5t10.5 63t4.5 56.5q0 19 -3.5 40t-13 38t-26 28t-43.5 11 q-35 0 -69.5 -23.5t-66.5 -62t-61 -88t-52.5 -101.5t-40.5 -102t-26 -90l-104 -475h-307zM414 1262q9 46 32.5 99.5t59.5 98.5t82.5 75t101.5 30q54 0 96.5 -20t78 -44.5t67 -44.5t63.5 -20q26 0 45 9t32.5 24t22 34.5t13.5 40.5h123q-11 -49 -33.5 -102.5t-56 -98 t-78 -73.5t-99.5 -29t-99 20t-81 44.5t-69.5 44.5t-65.5 20q-21 0 -40 -9t-34 -24t-25 -34.5t-14 -40.5h-122z" /> +<glyph unicode="ò" horiz-adv-x="1266" d="M82 410q0 77 18 159t54.5 161t91.5 149.5t129.5 123.5t169 84t209.5 31q88 0 166 -24.5t136 -76.5t92 -133.5t34 -195.5q0 -74 -17 -155t-52.5 -159.5t-90 -150t-128.5 -125.5t-168 -86t-210 -32q-96 0 -176 26.5t-137 80t-89 134.5t-32 189zM395 360q0 -125 42 -179 t116 -54q55 0 99.5 31.5t80 83t61.5 117.5t42.5 136t25 137.5t8.5 121.5q0 121 -41.5 174t-113.5 53q-52 0 -96 -30t-79.5 -80t-62.5 -114.5t-45.5 -133.5t-27.5 -137.5t-9 -125.5zM425 1548l6 21h301q12 -37 31.5 -80t40.5 -84t42.5 -77t38.5 -60l-6 -27h-121 q-44 26 -93.5 66t-95.5 83.5t-84.5 85.5t-59.5 72z" /> +<glyph unicode="ó" horiz-adv-x="1266" d="M82 410q0 77 18 159t54.5 161t91.5 149.5t129.5 123.5t169 84t209.5 31q88 0 166 -24.5t136 -76.5t92 -133.5t34 -195.5q0 -74 -17 -155t-52.5 -159.5t-90 -150t-128.5 -125.5t-168 -86t-210 -32q-96 0 -176 26.5t-137 80t-89 134.5t-32 189zM395 360q0 -125 42 -179 t116 -54q55 0 99.5 31.5t80 83t61.5 117.5t42.5 136t25 137.5t8.5 121.5q0 121 -41.5 174t-113.5 53q-52 0 -96 -30t-79.5 -80t-62.5 -114.5t-45.5 -133.5t-27.5 -137.5t-9 -125.5zM668 1241l6 27q28 29 61 67t65.5 78.5t63 80.5t54.5 75h321l-6 -21q-16 -18 -44 -42.5 t-63.5 -52.5t-76 -57.5t-82.5 -57.5t-83 -53.5t-77 -43.5h-139z" /> +<glyph unicode="ô" horiz-adv-x="1266" d="M82 410q0 77 18 159t54.5 161t91.5 149.5t129.5 123.5t169 84t209.5 31q88 0 166 -24.5t136 -76.5t92 -133.5t34 -195.5q0 -74 -17 -155t-52.5 -159.5t-90 -150t-128.5 -125.5t-168 -86t-210 -32q-96 0 -176 26.5t-137 80t-89 134.5t-32 189zM395 360q0 -125 42 -179 t116 -54q55 0 99.5 31.5t80 83t61.5 117.5t42.5 136t25 137.5t8.5 121.5q0 121 -41.5 174t-113.5 53q-52 0 -96 -30t-79.5 -80t-62.5 -114.5t-45.5 -133.5t-27.5 -137.5t-9 -125.5zM402 1241l6 27q30 29 68 66.5t78 77.5t78 80.5t67 76.5h276q13 -32 33 -72t42.5 -81 t44.5 -80t40 -68l-6 -27h-129q-18 17 -42 40t-49 48t-49.5 50t-42.5 46q-27 -21 -61 -46t-69 -50t-68 -48t-58 -40h-159z" /> +<glyph unicode="õ" horiz-adv-x="1266" d="M82 410q0 77 18 159t54.5 161t91.5 149.5t129.5 123.5t169 84t209.5 31q88 0 166 -24.5t136 -76.5t92 -133.5t34 -195.5q0 -74 -17 -155t-52.5 -159.5t-90 -150t-128.5 -125.5t-168 -86t-210 -32q-96 0 -176 26.5t-137 80t-89 134.5t-32 189zM377 1262q9 46 32.5 99.5 t59.5 98.5t82.5 75t101.5 30q54 0 96.5 -20t78 -44.5t67 -44.5t63.5 -20q26 0 45 9t32.5 24t22 34.5t13.5 40.5h123q-11 -49 -33.5 -102.5t-56 -98t-78 -73.5t-99.5 -29t-99 20t-81 44.5t-69.5 44.5t-65.5 20q-21 0 -40 -9t-34 -24t-25 -34.5t-14 -40.5h-122zM395 360 q0 -125 42 -179t116 -54q55 0 99.5 31.5t80 83t61.5 117.5t42.5 136t25 137.5t8.5 121.5q0 121 -41.5 174t-113.5 53q-52 0 -96 -30t-79.5 -80t-62.5 -114.5t-45.5 -133.5t-27.5 -137.5t-9 -125.5z" /> +<glyph unicode="ö" horiz-adv-x="1266" d="M82 410q0 77 18 159t54.5 161t91.5 149.5t129.5 123.5t169 84t209.5 31q88 0 166 -24.5t136 -76.5t92 -133.5t34 -195.5q0 -74 -17 -155t-52.5 -159.5t-90 -150t-128.5 -125.5t-168 -86t-210 -32q-96 0 -176 26.5t-137 80t-89 134.5t-32 189zM395 360q0 -125 42 -179 t116 -54q55 0 99.5 31.5t80 83t61.5 117.5t42.5 136t25 137.5t8.5 121.5q0 121 -41.5 174t-113.5 53q-52 0 -96 -30t-79.5 -80t-62.5 -114.5t-45.5 -133.5t-27.5 -137.5t-9 -125.5zM455 1386q0 66 33 105t90 39q49 0 80.5 -28t31.5 -85q0 -40 -11 -67t-28 -44t-39 -24.5 t-44 -7.5q-51 0 -82 27.5t-31 84.5zM883 1386q0 66 33 105t90 39q49 0 80.5 -28t31.5 -85q0 -40 -11 -67t-28 -44t-39 -24.5t-44 -7.5q-51 0 -82 27.5t-31 84.5z" /> +<glyph unicode="÷" d="M166 659v146h878v-146h-878zM492 344q0 70 32.5 97.5t81.5 27.5q24 0 45 -6.5t36.5 -21t24.5 -38.5t9 -59t-9 -58.5t-24.5 -38.5t-36.5 -21.5t-45 -6.5q-49 0 -81.5 28t-32.5 97zM492 1120q0 70 32.5 97.5t81.5 27.5q24 0 45 -6.5t36.5 -21t24.5 -38.5t9 -59t-9 -58.5 t-24.5 -38.5t-36.5 -21.5t-45 -6.5q-49 0 -81.5 28t-32.5 97z" /> +<glyph unicode="ø" horiz-adv-x="1266" d="M27 -82l153 188q-48 54 -73 129.5t-25 174.5q0 77 18 159t54.5 161t91.5 149.5t129.5 123.5t169 84t209.5 31q60 0 114.5 -11t102.5 -34l92 107h154l-146 -179q51 -52 81 -129.5t30 -183.5q0 -74 -17 -155t-52.5 -159.5t-90 -150t-128.5 -125.5t-168 -86t-210 -32 q-137 0 -240 53l-94 -115h-155zM395 369l443 542q-20 35 -51.5 52.5t-71.5 17.5q-52 0 -95.5 -29.5t-79 -78t-62.5 -112t-45 -131.5t-28 -135.5t-10 -125.5zM420 209q20 -43 53.5 -62.5t79.5 -19.5q55 0 99.5 31.5t80 83t61.5 117.5t42.5 136t25 137.5t8.5 121.5v4z" /> +<glyph unicode="ù" horiz-adv-x="1378" d="M117 989l18 109h492l-135 -613q-6 -24 -12 -54t-11 -60t-8.5 -57t-3.5 -46q0 -45 19 -71.5t69 -26.5q45 0 92.5 40.5t91 105t77.5 144t52 156.5l109 482h305l-139 -666q-13 -56 -21 -104.5t-8 -91.5q0 -45 18.5 -69t53.5 -24q32 0 58.5 12t61.5 35l50 -69 q-25 -26 -56 -51.5t-69.5 -45.5t-85.5 -32t-103 -12q-68 0 -113.5 15.5t-73.5 42t-40 62t-12 76.5q0 9 1 21t2.5 25t3 24.5t3.5 19.5h-17q-45 -64 -88.5 -116t-92.5 -89.5t-106 -58t-130 -20.5q-66 0 -111 18.5t-72 49.5t-39 72.5t-12 86.5q0 51 12 112t23 113l74 361 q8 42 13 76t5 51q0 41 -25 54t-83 13h-37zM419 1548l6 21h301q12 -37 31.5 -80t40.5 -84t42.5 -77t38.5 -60l-6 -27h-121q-44 26 -93.5 66t-95.5 83.5t-84.5 85.5t-59.5 72z" /> +<glyph unicode="ú" horiz-adv-x="1378" d="M117 989l18 109h492l-135 -613q-6 -24 -12 -54t-11 -60t-8.5 -57t-3.5 -46q0 -45 19 -71.5t69 -26.5q45 0 92.5 40.5t91 105t77.5 144t52 156.5l109 482h305l-139 -666q-13 -56 -21 -104.5t-8 -91.5q0 -45 18.5 -69t53.5 -24q32 0 58.5 12t61.5 35l50 -69 q-25 -26 -56 -51.5t-69.5 -45.5t-85.5 -32t-103 -12q-68 0 -113.5 15.5t-73.5 42t-40 62t-12 76.5q0 9 1 21t2.5 25t3 24.5t3.5 19.5h-17q-45 -64 -88.5 -116t-92.5 -89.5t-106 -58t-130 -20.5q-66 0 -111 18.5t-72 49.5t-39 72.5t-12 86.5q0 51 12 112t23 113l74 361 q8 42 13 76t5 51q0 41 -25 54t-83 13h-37zM682 1241l6 27q28 29 61 67t65.5 78.5t63 80.5t54.5 75h321l-6 -21q-16 -18 -44 -42.5t-63.5 -52.5t-76 -57.5t-82.5 -57.5t-83 -53.5t-77 -43.5h-139z" /> +<glyph unicode="û" horiz-adv-x="1378" d="M117 989l18 109h492l-135 -613q-6 -24 -12 -54t-11 -60t-8.5 -57t-3.5 -46q0 -45 19 -71.5t69 -26.5q45 0 92.5 40.5t91 105t77.5 144t52 156.5l109 482h305l-139 -666q-13 -56 -21 -104.5t-8 -91.5q0 -45 18.5 -69t53.5 -24q32 0 58.5 12t61.5 35l50 -69 q-25 -26 -56 -51.5t-69.5 -45.5t-85.5 -32t-103 -12q-68 0 -113.5 15.5t-73.5 42t-40 62t-12 76.5q0 9 1 21t2.5 25t3 24.5t3.5 19.5h-17q-45 -64 -88.5 -116t-92.5 -89.5t-106 -58t-130 -20.5q-66 0 -111 18.5t-72 49.5t-39 72.5t-12 86.5q0 51 12 112t23 113l74 361 q8 42 13 76t5 51q0 41 -25 54t-83 13h-37zM445 1241l6 27q30 29 68 66.5t78 77.5t78 80.5t67 76.5h276q13 -32 33 -72t42.5 -81t44.5 -80t40 -68l-6 -27h-129q-18 17 -42 40t-49 48t-49.5 50t-42.5 46q-27 -21 -61 -46t-69 -50t-68 -48t-58 -40h-159z" /> +<glyph unicode="ü" horiz-adv-x="1378" d="M117 989l18 109h492l-135 -613q-6 -24 -12 -54t-11 -60t-8.5 -57t-3.5 -46q0 -45 19 -71.5t69 -26.5q45 0 92.5 40.5t91 105t77.5 144t52 156.5l109 482h305l-139 -666q-13 -56 -21 -104.5t-8 -91.5q0 -45 18.5 -69t53.5 -24q32 0 58.5 12t61.5 35l50 -69 q-25 -26 -56 -51.5t-69.5 -45.5t-85.5 -32t-103 -12q-68 0 -113.5 15.5t-73.5 42t-40 62t-12 76.5q0 9 1 21t2.5 25t3 24.5t3.5 19.5h-17q-45 -64 -88.5 -116t-92.5 -89.5t-106 -58t-130 -20.5q-66 0 -111 18.5t-72 49.5t-39 72.5t-12 86.5q0 51 12 112t23 113l74 361 q8 42 13 76t5 51q0 41 -25 54t-83 13h-37zM496 1386q0 66 33 105t90 39q49 0 80.5 -28t31.5 -85q0 -40 -11 -67t-28 -44t-39 -24.5t-44 -7.5q-51 0 -82 27.5t-31 84.5zM924 1386q0 66 33 105t90 39q49 0 80.5 -28t31.5 -85q0 -40 -11 -67t-28 -44t-39 -24.5t-44 -7.5 q-51 0 -82 27.5t-31 84.5z" /> +<glyph unicode="ý" horiz-adv-x="1200" d="M-344 -455l31 115q24 -8 67.5 -17.5t106.5 -9.5q94 0 172 25t144.5 67.5t125 99.5t113.5 122l-256 934q-17 61 -49.5 84.5t-92.5 23.5h-20l25 109h401l135 -531q10 -40 21 -93.5t21 -107t17 -100t9 -71.5h6q61 82 115 165t94.5 161.5t64 149.5t23.5 130q0 69 -33.5 105 t-93.5 36q0 40 12.5 72.5t34.5 55.5t52 35.5t65 12.5q83 0 125.5 -46t42.5 -128q0 -80 -27 -169t-77 -189t-121.5 -212t-161.5 -237q-74 -104 -139 -191t-127.5 -157t-127 -122.5t-137 -88t-158 -53t-190.5 -17.5q-59 0 -114.5 10t-98.5 27zM502 1241l6 27q28 29 61 67 t65.5 78.5t63 80.5t54.5 75h321l-6 -21q-16 -18 -44 -42.5t-63.5 -52.5t-76 -57.5t-82.5 -57.5t-83 -53.5t-77 -43.5h-139z" /> +<glyph unicode="þ" horiz-adv-x="1276" d="M-61 -492l376 1766q3 13 6 27t5 26.5t3 21.5t1 13q0 28 -6 45t-19 26t-34 12t-50 3h-47l19 108h497l-82 -389q-4 -19 -13 -48t-20 -62t-23.5 -68t-24 -66.5t-21 -57.5t-14.5 -40h14q35 64 72 118t82 93t102 60.5t133 21.5q67 0 122.5 -24t94.5 -71t60.5 -116t21.5 -159 q0 -74 -17.5 -159.5t-52.5 -171t-87.5 -164.5t-123.5 -139.5t-159.5 -97t-194.5 -36.5q-62 0 -115.5 12.5t-93.5 34.5q-1 -16 -4 -33q-2 -14 -5 -31.5t-7 -34.5l-29 -137q-3 -13 -5.5 -27t-4.5 -26.5t-3 -21.5t-1 -13q0 -28 6 -45t19 -26t33.5 -12t49.5 -3h78l-18 -109h-520 zM391 168q9 -9 24 -19.5t34 -18.5t41.5 -13.5t46.5 -5.5q55 0 102.5 30t86 80t68.5 114.5t50 133.5t30.5 137.5t10.5 126.5q0 42 -5.5 81.5t-18 70.5t-34 50t-53.5 19q-34 0 -67.5 -19.5t-65 -52.5t-59 -76t-50 -89.5t-39 -93.5t-24.5 -88z" /> +<glyph unicode="ÿ" horiz-adv-x="1200" d="M-344 -455l31 115q24 -8 67.5 -17.5t106.5 -9.5q94 0 172 25t144.5 67.5t125 99.5t113.5 122l-256 934q-17 61 -49.5 84.5t-92.5 23.5h-20l25 109h401l135 -531q10 -40 21 -93.5t21 -107t17 -100t9 -71.5h6q61 82 115 165t94.5 161.5t64 149.5t23.5 130q0 69 -33.5 105 t-93.5 36q0 40 12.5 72.5t34.5 55.5t52 35.5t65 12.5q83 0 125.5 -46t42.5 -128q0 -80 -27 -169t-77 -189t-121.5 -212t-161.5 -237q-74 -104 -139 -191t-127.5 -157t-127 -122.5t-137 -88t-158 -53t-190.5 -17.5q-59 0 -114.5 10t-98.5 27zM321 1386q0 66 33 105t90 39 q49 0 80.5 -28t31.5 -85q0 -40 -11 -67t-28 -44t-39 -24.5t-44 -7.5q-51 0 -82 27.5t-31 84.5zM749 1386q0 66 33 105t90 39q49 0 80.5 -28t31.5 -85q0 -40 -11 -67t-28 -44t-39 -24.5t-44 -7.5q-51 0 -82 27.5t-31 84.5z" /> +<glyph unicode="ˆ" horiz-adv-x="1182" d="M324 1241l6 27q30 29 68 66.5t78 77.5t78 80.5t67 76.5h276q13 -32 33 -72t42.5 -81t44.5 -80t40 -68l-6 -27h-129q-18 17 -42 40t-49 48t-49.5 50t-42.5 46q-27 -21 -61 -46t-69 -50t-68 -48t-58 -40h-159z" /> +<glyph unicode="˜" horiz-adv-x="1182" d="M324 1262q9 46 32.5 99.5t59.5 98.5t82.5 75t101.5 30q54 0 96.5 -20t78 -44.5t67 -44.5t63.5 -20q26 0 45 9t32.5 24t22 34.5t13.5 40.5h123q-11 -49 -33.5 -102.5t-56 -98t-78 -73.5t-99.5 -29t-99 20t-81 44.5t-69.5 44.5t-65.5 20q-21 0 -40 -9t-34 -24t-25 -34.5 t-14 -40.5h-122z" /> +<glyph unicode=" " horiz-adv-x="953" /> +<glyph unicode=" " horiz-adv-x="1907" /> +<glyph unicode=" " horiz-adv-x="953" /> +<glyph unicode=" " horiz-adv-x="1907" /> +<glyph unicode=" " horiz-adv-x="635" /> +<glyph unicode=" " horiz-adv-x="476" /> +<glyph unicode=" " horiz-adv-x="317" /> +<glyph unicode=" " horiz-adv-x="317" /> +<glyph unicode=" " horiz-adv-x="238" /> +<glyph unicode=" " horiz-adv-x="381" /> +<glyph unicode=" " horiz-adv-x="105" /> +<glyph unicode="‐" horiz-adv-x="635" d="M20 451l48 215h532l-47 -215h-533z" /> +<glyph unicode="‑" horiz-adv-x="635" d="M20 451l48 215h532l-47 -215h-533z" /> +<glyph unicode="‒" horiz-adv-x="635" d="M20 451l48 215h532l-47 -215h-533z" /> +<glyph unicode="–" horiz-adv-x="1024" d="M-25 477l29 146h1045l-31 -146h-1043z" /> +<glyph unicode="—" horiz-adv-x="2048" d="M-25 477l29 146h2069l-31 -146h-2067z" /> +<glyph unicode="‘" horiz-adv-x="573" d="M231 1028q0 78 28.5 148t85 127t141 98.5t196.5 62.5l-23 -108q-210 -50 -210 -170q0 -22 8.5 -37t21 -27.5t27.5 -24.5t27.5 -27.5t21 -36t8.5 -50.5q0 -33 -12.5 -59t-33.5 -44.5t-48.5 -28t-58.5 -9.5q-37 0 -69.5 12.5t-57 36t-38.5 58t-14 79.5z" /> +<glyph unicode="’" horiz-adv-x="573" d="M178 842l23 108q211 50 211 170q0 21 -8.5 36.5t-21.5 28t-27.5 24.5t-27.5 27.5t-21.5 36t-8.5 50.5q0 33 12.5 59t33.5 44.5t49 28t59 9.5q37 0 69.5 -12.5t56.5 -36t38 -58t14 -79.5q0 -78 -28.5 -148t-85 -127t-141 -98.5t-196.5 -62.5z" /> +<glyph unicode="‚" horiz-adv-x="602" d="M-23 -309l23 108q211 50 211 170q0 21 -8.5 36.5t-21.5 28t-27.5 24.5t-27.5 27.5t-21.5 36t-8.5 50.5q0 33 12.5 59t33.5 44.5t49 28t59 9.5q37 0 69.5 -12.5t56.5 -36t38 -58t14 -79.5q0 -78 -28.5 -148t-85 -127t-141 -98.5t-196.5 -62.5z" /> +<glyph unicode="“" horiz-adv-x="1001" d="M231 1028q0 78 28.5 148t85 127t141 98.5t196.5 62.5l-23 -108q-210 -50 -210 -170q0 -22 8.5 -37t21 -27.5t27.5 -24.5t27.5 -27.5t21 -36t8.5 -50.5q0 -33 -12.5 -59t-33.5 -44.5t-48.5 -28t-58.5 -9.5q-37 0 -69.5 12.5t-57 36t-38.5 58t-14 79.5zM659 1028 q0 78 28.5 148t85 127t141 98.5t196.5 62.5l-23 -108q-210 -50 -210 -170q0 -22 8.5 -37t21 -27.5t27.5 -24.5t27.5 -27.5t21 -36t8.5 -50.5q0 -33 -12.5 -59t-33.5 -44.5t-48.5 -28t-58.5 -9.5q-37 0 -69.5 12.5t-57 36t-38.5 58t-14 79.5z" /> +<glyph unicode="”" horiz-adv-x="1001" d="M178 842l23 108q211 50 211 170q0 21 -8.5 36.5t-21.5 28t-27.5 24.5t-27.5 27.5t-21.5 36t-8.5 50.5q0 33 12.5 59t33.5 44.5t49 28t59 9.5q37 0 69.5 -12.5t56.5 -36t38 -58t14 -79.5q0 -78 -28.5 -148t-85 -127t-141 -98.5t-196.5 -62.5zM604 842l23 108 q211 50 211 170q0 21 -8.5 36.5t-21.5 28t-27.5 24.5t-27.5 27.5t-21.5 36t-8.5 50.5q0 33 12.5 59t33.5 44.5t49 28t59 9.5q37 0 69.5 -12.5t56.5 -36t38 -58t14 -79.5q0 -78 -28.5 -148t-85 -127t-141 -98.5t-196.5 -62.5z" /> +<glyph unicode="„" horiz-adv-x="1001" d="M-23 -309l23 108q211 50 211 170q0 21 -8.5 36.5t-21.5 28t-27.5 24.5t-27.5 27.5t-21.5 36t-8.5 50.5q0 33 12.5 59t33.5 44.5t49 28t59 9.5q37 0 69.5 -12.5t56.5 -36t38 -58t14 -79.5q0 -78 -28.5 -148t-85 -127t-141 -98.5t-196.5 -62.5zM403 -309l23 108 q211 50 211 170q0 21 -8.5 36.5t-21.5 28t-27.5 24.5t-27.5 27.5t-21.5 36t-8.5 50.5q0 33 12.5 59t33.5 44.5t49 28t59 9.5q37 0 69.5 -12.5t56.5 -36t38 -58t14 -79.5q0 -78 -28.5 -148t-85 -127t-141 -98.5t-196.5 -62.5z" /> +<glyph unicode="•" horiz-adv-x="819" d="M158 692q0 81 22 148t62.5 114t98 73t128.5 26q62 0 115.5 -17.5t92.5 -53t61 -89.5t22 -127q0 -101 -27.5 -169.5t-72 -111t-100 -61t-111.5 -18.5q-65 0 -118.5 17.5t-92 53t-59.5 89t-21 126.5z" /> +<glyph unicode=" " horiz-adv-x="381" /> +<glyph unicode="‹" horiz-adv-x="723" d="M125 516l22 107l385 340h144l-293 -410l119 -410h-144z" /> +<glyph unicode="›" horiz-adv-x="723" d="M45 143l295 410l-121 410h143l234 -371l-23 -107l-385 -342h-143z" /> +<glyph unicode=" " horiz-adv-x="476" /> +<glyph unicode="◼" horiz-adv-x="1100" d="M0 0v1100h1100v-1100h-1100z" /> +<hkern u1=""" u2="Æ" k="246" /> +<hkern u1=""" u2="Å" k="164" /> +<hkern u1=""" u2="Ä" k="164" /> +<hkern u1=""" u2="Ã" k="164" /> +<hkern u1=""" u2="Â" k="164" /> +<hkern u1=""" u2="Á" k="164" /> +<hkern u1=""" u2="À" k="164" /> +<hkern u1=""" u2="g" k="82" /> +<hkern u1=""" u2="A" k="164" /> +<hkern u1="'" u2="Æ" k="246" /> +<hkern u1="'" u2="Å" k="164" /> +<hkern u1="'" u2="Ä" k="164" /> +<hkern u1="'" u2="Ã" k="164" /> +<hkern u1="'" u2="Â" k="164" /> +<hkern u1="'" u2="Á" k="164" /> +<hkern u1="'" u2="À" k="164" /> +<hkern u1="'" u2="g" k="82" /> +<hkern u1="'" u2="A" k="164" /> +<hkern u1="*" u2="„" k="246" /> +<hkern u1="*" u2="‚" k="246" /> +<hkern u1="*" u2="Æ" k="164" /> +<hkern u1="*" u2="Å" k="102" /> +<hkern u1="*" u2="Ä" k="102" /> +<hkern u1="*" u2="Ã" k="102" /> +<hkern u1="*" u2="Â" k="102" /> +<hkern u1="*" u2="Á" k="102" /> +<hkern u1="*" u2="À" k="102" /> +<hkern u1="*" u2="A" k="102" /> +<hkern u1="*" u2="." k="246" /> +<hkern u1="*" u2="," k="246" /> +<hkern u1="A" u2="”" k="143" /> +<hkern u1="A" u2="’" k="143" /> +<hkern u1="A" u2="ÿ" k="102" /> +<hkern u1="A" u2="ý" k="102" /> +<hkern u1="A" u2="ü" k="41" /> +<hkern u1="A" u2="û" k="41" /> +<hkern u1="A" u2="ú" k="41" /> +<hkern u1="A" u2="ù" k="41" /> +<hkern u1="A" u2="ø" k="41" /> +<hkern u1="A" u2="ö" k="41" /> +<hkern u1="A" u2="õ" k="41" /> +<hkern u1="A" u2="ô" k="41" /> +<hkern u1="A" u2="ó" k="41" /> +<hkern u1="A" u2="ò" k="41" /> +<hkern u1="A" u2="ð" k="41" /> +<hkern u1="A" u2="ë" k="41" /> +<hkern u1="A" u2="ê" k="41" /> +<hkern u1="A" u2="é" k="41" /> +<hkern u1="A" u2="è" k="41" /> +<hkern u1="A" u2="ç" k="41" /> +<hkern u1="A" u2="Ý" k="143" /> +<hkern u1="A" u2="Ü" k="41" /> +<hkern u1="A" u2="Û" k="41" /> +<hkern u1="A" u2="Ú" k="41" /> +<hkern u1="A" u2="Ù" k="41" /> +<hkern u1="A" u2="Ø" k="41" /> +<hkern u1="A" u2="Ö" k="41" /> +<hkern u1="A" u2="Õ" k="41" /> +<hkern u1="A" u2="Ô" k="41" /> +<hkern u1="A" u2="Ó" k="41" /> +<hkern u1="A" u2="Ò" k="41" /> +<hkern u1="A" u2="y" k="102" /> +<hkern u1="A" u2="w" k="61" /> +<hkern u1="A" u2="v" k="123" /> +<hkern u1="A" u2="u" k="41" /> +<hkern u1="A" u2="q" k="41" /> +<hkern u1="A" u2="o" k="41" /> +<hkern u1="A" u2="g" k="41" /> +<hkern u1="A" u2="e" k="41" /> +<hkern u1="A" u2="d" k="41" /> +<hkern u1="A" u2="c" k="41" /> +<hkern u1="A" u2="Y" k="143" /> +<hkern u1="A" u2="W" k="143" /> +<hkern u1="A" u2="V" k="164" /> +<hkern u1="A" u2="U" k="41" /> +<hkern u1="A" u2="T" k="123" /> +<hkern u1="A" u2="Q" k="41" /> +<hkern u1="A" u2="O" k="41" /> +<hkern u1="A" u2="G" k="41" /> +<hkern u1="A" u2="C" k="41" /> +<hkern u1="A" u2="?" k="123" /> +<hkern u1="A" u2="*" k="143" /> +<hkern u1="A" u2="'" k="164" /> +<hkern u1="A" u2=""" k="164" /> +<hkern u1="B" u2="”" k="41" /> +<hkern u1="B" u2="’" k="41" /> +<hkern u1="B" u2="ÿ" k="41" /> +<hkern u1="B" u2="ý" k="41" /> +<hkern u1="B" u2="Ý" k="82" /> +<hkern u1="B" u2="Æ" k="61" /> +<hkern u1="B" u2="Å" k="41" /> +<hkern u1="B" u2="Ä" k="41" /> +<hkern u1="B" u2="Ã" k="41" /> +<hkern u1="B" u2="Â" k="41" /> +<hkern u1="B" u2="Á" k="41" /> +<hkern u1="B" u2="À" k="41" /> +<hkern u1="B" u2="y" k="41" /> +<hkern u1="B" u2="w" k="20" /> +<hkern u1="B" u2="Z" k="41" /> +<hkern u1="B" u2="Y" k="82" /> +<hkern u1="B" u2="X" k="41" /> +<hkern u1="B" u2="W" k="61" /> +<hkern u1="B" u2="V" k="82" /> +<hkern u1="B" u2="T" k="41" /> +<hkern u1="B" u2="A" k="41" /> +<hkern u1="B" u2="?" k="41" /> +<hkern u1="B" u2="*" k="41" /> +<hkern u1="D" u2="Ý" k="61" /> +<hkern u1="D" u2="Æ" k="102" /> +<hkern u1="D" u2="Å" k="41" /> +<hkern u1="D" u2="Ä" k="41" /> +<hkern u1="D" u2="Ã" k="41" /> +<hkern u1="D" u2="Â" k="41" /> +<hkern u1="D" u2="Á" k="41" /> +<hkern u1="D" u2="À" k="41" /> +<hkern u1="D" u2="Y" k="61" /> +<hkern u1="D" u2="X" k="41" /> +<hkern u1="D" u2="W" k="41" /> +<hkern u1="D" u2="V" k="41" /> +<hkern u1="D" u2="T" k="41" /> +<hkern u1="D" u2="A" k="41" /> +<hkern u1="D" u2="?" k="41" /> +<hkern u1="E" u2="Ý" k="41" /> +<hkern u1="E" u2="Y" k="41" /> +<hkern u1="E" u2="W" k="41" /> +<hkern u1="E" u2="V" k="41" /> +<hkern u1="F" u2="ø" k="82" /> +<hkern u1="F" u2="ö" k="82" /> +<hkern u1="F" u2="õ" k="82" /> +<hkern u1="F" u2="ô" k="82" /> +<hkern u1="F" u2="ó" k="82" /> +<hkern u1="F" u2="ò" k="82" /> +<hkern u1="F" u2="ð" k="82" /> +<hkern u1="F" u2="ë" k="82" /> +<hkern u1="F" u2="ê" k="82" /> +<hkern u1="F" u2="é" k="82" /> +<hkern u1="F" u2="è" k="82" /> +<hkern u1="F" u2="ç" k="82" /> +<hkern u1="F" u2="æ" k="82" /> +<hkern u1="F" u2="å" k="82" /> +<hkern u1="F" u2="ä" k="82" /> +<hkern u1="F" u2="ã" k="82" /> +<hkern u1="F" u2="â" k="82" /> +<hkern u1="F" u2="á" k="82" /> +<hkern u1="F" u2="à" k="82" /> +<hkern u1="F" u2="Æ" k="225" /> +<hkern u1="F" u2="Å" k="143" /> +<hkern u1="F" u2="Ä" k="143" /> +<hkern u1="F" u2="Ã" k="143" /> +<hkern u1="F" u2="Â" k="143" /> +<hkern u1="F" u2="Á" k="143" /> +<hkern u1="F" u2="À" k="143" /> +<hkern u1="F" u2="q" k="82" /> +<hkern u1="F" u2="o" k="82" /> +<hkern u1="F" u2="g" k="82" /> +<hkern u1="F" u2="e" k="82" /> +<hkern u1="F" u2="d" k="82" /> +<hkern u1="F" u2="c" k="82" /> +<hkern u1="F" u2="a" k="82" /> +<hkern u1="F" u2="A" k="143" /> +<hkern u1="G" u2="Ý" k="41" /> +<hkern u1="G" u2="Æ" k="41" /> +<hkern u1="G" u2="Y" k="41" /> +<hkern u1="G" u2="W" k="41" /> +<hkern u1="G" u2="V" k="41" /> +<hkern u1="G" u2="T" k="41" /> +<hkern u1="G" u2="?" k="41" /> +<hkern u1="K" u2="ÿ" k="61" /> +<hkern u1="K" u2="ý" k="61" /> +<hkern u1="K" u2="ü" k="41" /> +<hkern u1="K" u2="û" k="41" /> +<hkern u1="K" u2="ú" k="41" /> +<hkern u1="K" u2="ù" k="41" /> +<hkern u1="K" u2="ø" k="41" /> +<hkern u1="K" u2="ö" k="41" /> +<hkern u1="K" u2="õ" k="41" /> +<hkern u1="K" u2="ô" k="41" /> +<hkern u1="K" u2="ó" k="41" /> +<hkern u1="K" u2="ò" k="41" /> +<hkern u1="K" u2="ð" k="41" /> +<hkern u1="K" u2="ë" k="41" /> +<hkern u1="K" u2="ê" k="41" /> +<hkern u1="K" u2="é" k="41" /> +<hkern u1="K" u2="è" k="41" /> +<hkern u1="K" u2="ç" k="41" /> +<hkern u1="K" u2="Ø" k="41" /> +<hkern u1="K" u2="Ö" k="41" /> +<hkern u1="K" u2="Õ" k="41" /> +<hkern u1="K" u2="Ô" k="41" /> +<hkern u1="K" u2="Ó" k="41" /> +<hkern u1="K" u2="Ò" k="41" /> +<hkern u1="K" u2="y" k="61" /> +<hkern u1="K" u2="w" k="61" /> +<hkern u1="K" u2="u" k="41" /> +<hkern u1="K" u2="q" k="41" /> +<hkern u1="K" u2="o" k="41" /> +<hkern u1="K" u2="g" k="41" /> +<hkern u1="K" u2="e" k="41" /> +<hkern u1="K" u2="d" k="41" /> +<hkern u1="K" u2="c" k="41" /> +<hkern u1="K" u2="Q" k="41" /> +<hkern u1="K" u2="O" k="41" /> +<hkern u1="K" u2="G" k="41" /> +<hkern u1="K" u2="C" k="41" /> +<hkern u1="L" u2="”" k="164" /> +<hkern u1="L" u2="’" k="164" /> +<hkern u1="L" u2="Ý" k="123" /> +<hkern u1="L" u2="Y" k="123" /> +<hkern u1="L" u2="W" k="102" /> +<hkern u1="L" u2="V" k="102" /> +<hkern u1="L" u2="T" k="143" /> +<hkern u1="L" u2="?" k="143" /> +<hkern u1="L" u2="*" k="164" /> +<hkern u1="L" u2="'" k="123" /> +<hkern u1="L" u2=""" k="123" /> +<hkern u1="O" u2="Ý" k="61" /> +<hkern u1="O" u2="Æ" k="102" /> +<hkern u1="O" u2="Å" k="41" /> +<hkern u1="O" u2="Ä" k="41" /> +<hkern u1="O" u2="Ã" k="41" /> +<hkern u1="O" u2="Â" k="41" /> +<hkern u1="O" u2="Á" k="41" /> +<hkern u1="O" u2="À" k="41" /> +<hkern u1="O" u2="Y" k="61" /> +<hkern u1="O" u2="X" k="41" /> +<hkern u1="O" u2="W" k="41" /> +<hkern u1="O" u2="V" k="41" /> +<hkern u1="O" u2="T" k="41" /> +<hkern u1="O" u2="A" k="41" /> +<hkern u1="O" u2="?" k="41" /> +<hkern u1="P" u2="„" k="246" /> +<hkern u1="P" u2="‚" k="246" /> +<hkern u1="P" u2="Æ" k="164" /> +<hkern u1="P" u2="Å" k="102" /> +<hkern u1="P" u2="Ä" k="102" /> +<hkern u1="P" u2="Ã" k="102" /> +<hkern u1="P" u2="Â" k="102" /> +<hkern u1="P" u2="Á" k="102" /> +<hkern u1="P" u2="À" k="102" /> +<hkern u1="P" u2="A" k="102" /> +<hkern u1="P" u2="." k="246" /> +<hkern u1="P" u2="," k="246" /> +<hkern u1="Q" u2="Ý" k="61" /> +<hkern u1="Q" u2="Æ" k="102" /> +<hkern u1="Q" u2="Å" k="41" /> +<hkern u1="Q" u2="Ä" k="41" /> +<hkern u1="Q" u2="Ã" k="41" /> +<hkern u1="Q" u2="Â" k="41" /> +<hkern u1="Q" u2="Á" k="41" /> +<hkern u1="Q" u2="À" k="41" /> +<hkern u1="Q" u2="Y" k="61" /> +<hkern u1="Q" u2="X" k="41" /> +<hkern u1="Q" u2="W" k="41" /> +<hkern u1="Q" u2="V" k="41" /> +<hkern u1="Q" u2="T" k="41" /> +<hkern u1="Q" u2="A" k="41" /> +<hkern u1="Q" u2="?" k="41" /> +<hkern u1="R" u2="”" k="41" /> +<hkern u1="R" u2="’" k="41" /> +<hkern u1="R" u2="ÿ" k="41" /> +<hkern u1="R" u2="ý" k="41" /> +<hkern u1="R" u2="Ý" k="61" /> +<hkern u1="R" u2="Ü" k="20" /> +<hkern u1="R" u2="Û" k="20" /> +<hkern u1="R" u2="Ú" k="20" /> +<hkern u1="R" u2="Ù" k="20" /> +<hkern u1="R" u2="Ø" k="41" /> +<hkern u1="R" u2="Ö" k="41" /> +<hkern u1="R" u2="Õ" k="41" /> +<hkern u1="R" u2="Ô" k="41" /> +<hkern u1="R" u2="Ó" k="41" /> +<hkern u1="R" u2="Ò" k="41" /> +<hkern u1="R" u2="y" k="41" /> +<hkern u1="R" u2="w" k="41" /> +<hkern u1="R" u2="Y" k="61" /> +<hkern u1="R" u2="W" k="61" /> +<hkern u1="R" u2="V" k="61" /> +<hkern u1="R" u2="U" k="20" /> +<hkern u1="R" u2="T" k="41" /> +<hkern u1="R" u2="Q" k="41" /> +<hkern u1="R" u2="O" k="41" /> +<hkern u1="R" u2="G" k="41" /> +<hkern u1="R" u2="C" k="41" /> +<hkern u1="R" u2="?" k="41" /> +<hkern u1="R" u2="*" k="41" /> +<hkern u1="S" u2="ÿ" k="41" /> +<hkern u1="S" u2="ý" k="41" /> +<hkern u1="S" u2="Ý" k="41" /> +<hkern u1="S" u2="Æ" k="41" /> +<hkern u1="S" u2="Å" k="41" /> +<hkern u1="S" u2="Ä" k="41" /> +<hkern u1="S" u2="Ã" k="41" /> +<hkern u1="S" u2="Â" k="41" /> +<hkern u1="S" u2="Á" k="41" /> +<hkern u1="S" u2="À" k="41" /> +<hkern u1="S" u2="y" k="41" /> +<hkern u1="S" u2="w" k="20" /> +<hkern u1="S" u2="Y" k="41" /> +<hkern u1="S" u2="X" k="41" /> +<hkern u1="S" u2="W" k="41" /> +<hkern u1="S" u2="V" k="41" /> +<hkern u1="S" u2="T" k="41" /> +<hkern u1="S" u2="A" k="41" /> +<hkern u1="S" u2="?" k="41" /> +<hkern u1="T" u2="„" k="184" /> +<hkern u1="T" u2="‚" k="184" /> +<hkern u1="T" u2="ø" k="61" /> +<hkern u1="T" u2="ö" k="61" /> +<hkern u1="T" u2="õ" k="61" /> +<hkern u1="T" u2="ô" k="61" /> +<hkern u1="T" u2="ó" k="61" /> +<hkern u1="T" u2="ò" k="61" /> +<hkern u1="T" u2="ð" k="61" /> +<hkern u1="T" u2="ë" k="61" /> +<hkern u1="T" u2="ê" k="61" /> +<hkern u1="T" u2="é" k="61" /> +<hkern u1="T" u2="è" k="61" /> +<hkern u1="T" u2="ç" k="61" /> +<hkern u1="T" u2="æ" k="61" /> +<hkern u1="T" u2="å" k="61" /> +<hkern u1="T" u2="ä" k="61" /> +<hkern u1="T" u2="ã" k="61" /> +<hkern u1="T" u2="â" k="61" /> +<hkern u1="T" u2="á" k="61" /> +<hkern u1="T" u2="à" k="61" /> +<hkern u1="T" u2="Ø" k="41" /> +<hkern u1="T" u2="Ö" k="41" /> +<hkern u1="T" u2="Õ" k="41" /> +<hkern u1="T" u2="Ô" k="41" /> +<hkern u1="T" u2="Ó" k="41" /> +<hkern u1="T" u2="Ò" k="41" /> +<hkern u1="T" u2="Æ" k="164" /> +<hkern u1="T" u2="Å" k="123" /> +<hkern u1="T" u2="Ä" k="123" /> +<hkern u1="T" u2="Ã" k="123" /> +<hkern u1="T" u2="Â" k="123" /> +<hkern u1="T" u2="Á" k="123" /> +<hkern u1="T" u2="À" k="123" /> +<hkern u1="T" u2="q" k="61" /> +<hkern u1="T" u2="o" k="61" /> +<hkern u1="T" u2="g" k="61" /> +<hkern u1="T" u2="e" k="61" /> +<hkern u1="T" u2="d" k="61" /> +<hkern u1="T" u2="c" k="61" /> +<hkern u1="T" u2="a" k="61" /> +<hkern u1="T" u2="Q" k="41" /> +<hkern u1="T" u2="O" k="41" /> +<hkern u1="T" u2="G" k="41" /> +<hkern u1="T" u2="C" k="41" /> +<hkern u1="T" u2="A" k="123" /> +<hkern u1="T" u2="." k="184" /> +<hkern u1="T" u2="," k="184" /> +<hkern u1="U" u2="Å" k="41" /> +<hkern u1="U" u2="Ä" k="41" /> +<hkern u1="U" u2="Ã" k="41" /> +<hkern u1="U" u2="Â" k="41" /> +<hkern u1="U" u2="Á" k="41" /> +<hkern u1="U" u2="À" k="41" /> +<hkern u1="U" u2="A" k="41" /> +<hkern u1="V" u2="„" k="225" /> +<hkern u1="V" u2="‚" k="225" /> +<hkern u1="V" u2="ø" k="123" /> +<hkern u1="V" u2="ö" k="123" /> +<hkern u1="V" u2="õ" k="123" /> +<hkern u1="V" u2="ô" k="123" /> +<hkern u1="V" u2="ó" k="123" /> +<hkern u1="V" u2="ò" k="123" /> +<hkern u1="V" u2="ð" k="123" /> +<hkern u1="V" u2="ë" k="123" /> +<hkern u1="V" u2="ê" k="123" /> +<hkern u1="V" u2="é" k="123" /> +<hkern u1="V" u2="è" k="123" /> +<hkern u1="V" u2="ç" k="123" /> +<hkern u1="V" u2="æ" k="123" /> +<hkern u1="V" u2="å" k="123" /> +<hkern u1="V" u2="ä" k="123" /> +<hkern u1="V" u2="ã" k="123" /> +<hkern u1="V" u2="â" k="123" /> +<hkern u1="V" u2="á" k="123" /> +<hkern u1="V" u2="à" k="123" /> +<hkern u1="V" u2="Ø" k="41" /> +<hkern u1="V" u2="Ö" k="41" /> +<hkern u1="V" u2="Õ" k="41" /> +<hkern u1="V" u2="Ô" k="41" /> +<hkern u1="V" u2="Ó" k="41" /> +<hkern u1="V" u2="Ò" k="41" /> +<hkern u1="V" u2="Æ" k="266" /> +<hkern u1="V" u2="Å" k="164" /> +<hkern u1="V" u2="Ä" k="164" /> +<hkern u1="V" u2="Ã" k="164" /> +<hkern u1="V" u2="Â" k="164" /> +<hkern u1="V" u2="Á" k="164" /> +<hkern u1="V" u2="À" k="164" /> +<hkern u1="V" u2="s" k="82" /> +<hkern u1="V" u2="q" k="123" /> +<hkern u1="V" u2="o" k="123" /> +<hkern u1="V" u2="g" k="123" /> +<hkern u1="V" u2="e" k="123" /> +<hkern u1="V" u2="d" k="123" /> +<hkern u1="V" u2="c" k="123" /> +<hkern u1="V" u2="a" k="123" /> +<hkern u1="V" u2="Q" k="41" /> +<hkern u1="V" u2="O" k="41" /> +<hkern u1="V" u2="G" k="41" /> +<hkern u1="V" u2="C" k="41" /> +<hkern u1="V" u2="A" k="164" /> +<hkern u1="V" u2="." k="225" /> +<hkern u1="V" u2="," k="225" /> +<hkern u1="W" u2="„" k="184" /> +<hkern u1="W" u2="‚" k="184" /> +<hkern u1="W" u2="ø" k="123" /> +<hkern u1="W" u2="ö" k="123" /> +<hkern u1="W" u2="õ" k="123" /> +<hkern u1="W" u2="ô" k="123" /> +<hkern u1="W" u2="ó" k="123" /> +<hkern u1="W" u2="ò" k="123" /> +<hkern u1="W" u2="ð" k="123" /> +<hkern u1="W" u2="ë" k="123" /> +<hkern u1="W" u2="ê" k="123" /> +<hkern u1="W" u2="é" k="123" /> +<hkern u1="W" u2="è" k="123" /> +<hkern u1="W" u2="ç" k="123" /> +<hkern u1="W" u2="æ" k="102" /> +<hkern u1="W" u2="å" k="102" /> +<hkern u1="W" u2="ä" k="102" /> +<hkern u1="W" u2="ã" k="102" /> +<hkern u1="W" u2="â" k="102" /> +<hkern u1="W" u2="á" k="102" /> +<hkern u1="W" u2="à" k="102" /> +<hkern u1="W" u2="Ø" k="41" /> +<hkern u1="W" u2="Ö" k="41" /> +<hkern u1="W" u2="Õ" k="41" /> +<hkern u1="W" u2="Ô" k="41" /> +<hkern u1="W" u2="Ó" k="41" /> +<hkern u1="W" u2="Ò" k="41" /> +<hkern u1="W" u2="Æ" k="266" /> +<hkern u1="W" u2="Å" k="123" /> +<hkern u1="W" u2="Ä" k="123" /> +<hkern u1="W" u2="Ã" k="123" /> +<hkern u1="W" u2="Â" k="123" /> +<hkern u1="W" u2="Á" k="123" /> +<hkern u1="W" u2="À" k="123" /> +<hkern u1="W" u2="q" k="123" /> +<hkern u1="W" u2="o" k="123" /> +<hkern u1="W" u2="g" k="123" /> +<hkern u1="W" u2="e" k="123" /> +<hkern u1="W" u2="d" k="123" /> +<hkern u1="W" u2="c" k="123" /> +<hkern u1="W" u2="a" k="102" /> +<hkern u1="W" u2="Q" k="41" /> +<hkern u1="W" u2="O" k="41" /> +<hkern u1="W" u2="G" k="41" /> +<hkern u1="W" u2="C" k="41" /> +<hkern u1="W" u2="A" k="123" /> +<hkern u1="W" u2="." k="184" /> +<hkern u1="W" u2="," k="184" /> +<hkern u1="X" u2="ÿ" k="102" /> +<hkern u1="X" u2="ý" k="102" /> +<hkern u1="X" u2="Ø" k="41" /> +<hkern u1="X" u2="Ö" k="41" /> +<hkern u1="X" u2="Õ" k="41" /> +<hkern u1="X" u2="Ô" k="41" /> +<hkern u1="X" u2="Ó" k="41" /> +<hkern u1="X" u2="Ò" k="41" /> +<hkern u1="X" u2="y" k="102" /> +<hkern u1="X" u2="w" k="61" /> +<hkern u1="X" u2="S" k="20" /> +<hkern u1="X" u2="Q" k="41" /> +<hkern u1="X" u2="O" k="41" /> +<hkern u1="X" u2="G" k="41" /> +<hkern u1="X" u2="C" k="41" /> +<hkern u1="Y" u2="„" k="164" /> +<hkern u1="Y" u2="‚" k="164" /> +<hkern u1="Y" u2="ø" k="143" /> +<hkern u1="Y" u2="ö" k="143" /> +<hkern u1="Y" u2="õ" k="143" /> +<hkern u1="Y" u2="ô" k="143" /> +<hkern u1="Y" u2="ó" k="143" /> +<hkern u1="Y" u2="ò" k="143" /> +<hkern u1="Y" u2="ð" k="143" /> +<hkern u1="Y" u2="ë" k="143" /> +<hkern u1="Y" u2="ê" k="143" /> +<hkern u1="Y" u2="é" k="143" /> +<hkern u1="Y" u2="è" k="143" /> +<hkern u1="Y" u2="ç" k="143" /> +<hkern u1="Y" u2="æ" k="123" /> +<hkern u1="Y" u2="å" k="123" /> +<hkern u1="Y" u2="ä" k="123" /> +<hkern u1="Y" u2="ã" k="123" /> +<hkern u1="Y" u2="â" k="123" /> +<hkern u1="Y" u2="á" k="123" /> +<hkern u1="Y" u2="à" k="123" /> +<hkern u1="Y" u2="Ø" k="61" /> +<hkern u1="Y" u2="Ö" k="61" /> +<hkern u1="Y" u2="Õ" k="61" /> +<hkern u1="Y" u2="Ô" k="61" /> +<hkern u1="Y" u2="Ó" k="61" /> +<hkern u1="Y" u2="Ò" k="61" /> +<hkern u1="Y" u2="Æ" k="184" /> +<hkern u1="Y" u2="Å" k="143" /> +<hkern u1="Y" u2="Ä" k="143" /> +<hkern u1="Y" u2="Ã" k="143" /> +<hkern u1="Y" u2="Â" k="143" /> +<hkern u1="Y" u2="Á" k="143" /> +<hkern u1="Y" u2="À" k="143" /> +<hkern u1="Y" u2="s" k="123" /> +<hkern u1="Y" u2="q" k="143" /> +<hkern u1="Y" u2="o" k="143" /> +<hkern u1="Y" u2="g" k="143" /> +<hkern u1="Y" u2="e" k="143" /> +<hkern u1="Y" u2="d" k="143" /> +<hkern u1="Y" u2="c" k="143" /> +<hkern u1="Y" u2="a" k="123" /> +<hkern u1="Y" u2="S" k="41" /> +<hkern u1="Y" u2="Q" k="61" /> +<hkern u1="Y" u2="O" k="61" /> +<hkern u1="Y" u2="G" k="61" /> +<hkern u1="Y" u2="C" k="61" /> +<hkern u1="Y" u2="A" k="143" /> +<hkern u1="Y" u2="." k="164" /> +<hkern u1="Y" u2="," k="164" /> +<hkern u1="a" u2="ÿ" k="41" /> +<hkern u1="a" u2="ý" k="41" /> +<hkern u1="a" u2="y" k="41" /> +<hkern u1="a" u2="'" k="82" /> +<hkern u1="a" u2=""" k="82" /> +<hkern u1="b" u2="ÿ" k="41" /> +<hkern u1="b" u2="ý" k="41" /> +<hkern u1="b" u2="y" k="41" /> +<hkern u1="f" u2="”" k="-164" /> +<hkern u1="f" u2="’" k="-164" /> +<hkern u1="f" u2="}" k="-184" /> +<hkern u1="f" u2="]" k="-184" /> +<hkern u1="f" u2="*" k="-164" /> +<hkern u1="f" u2=")" k="-184" /> +<hkern u1="f" u2="'" k="-164" /> +<hkern u1="f" u2=""" k="-164" /> +<hkern u1="h" u2="ÿ" k="41" /> +<hkern u1="h" u2="ý" k="41" /> +<hkern u1="h" u2="y" k="41" /> +<hkern u1="h" u2="'" k="82" /> +<hkern u1="h" u2=""" k="82" /> +<hkern u1="k" u2="ø" k="41" /> +<hkern u1="k" u2="ö" k="41" /> +<hkern u1="k" u2="õ" k="41" /> +<hkern u1="k" u2="ô" k="41" /> +<hkern u1="k" u2="ó" k="41" /> +<hkern u1="k" u2="ò" k="41" /> +<hkern u1="k" u2="ð" k="41" /> +<hkern u1="k" u2="ë" k="41" /> +<hkern u1="k" u2="ê" k="41" /> +<hkern u1="k" u2="é" k="41" /> +<hkern u1="k" u2="è" k="41" /> +<hkern u1="k" u2="ç" k="41" /> +<hkern u1="k" u2="q" k="41" /> +<hkern u1="k" u2="o" k="41" /> +<hkern u1="k" u2="g" k="41" /> +<hkern u1="k" u2="e" k="41" /> +<hkern u1="k" u2="d" k="41" /> +<hkern u1="k" u2="c" k="41" /> +<hkern u1="n" u2="ÿ" k="41" /> +<hkern u1="n" u2="ý" k="41" /> +<hkern u1="n" u2="y" k="41" /> +<hkern u1="n" u2="'" k="82" /> +<hkern u1="n" u2=""" k="82" /> +<hkern u1="o" u2="ÿ" k="41" /> +<hkern u1="o" u2="ý" k="41" /> +<hkern u1="o" u2="y" k="41" /> +<hkern u1="p" u2="ÿ" k="41" /> +<hkern u1="p" u2="ý" k="41" /> +<hkern u1="p" u2="y" k="41" /> +<hkern u1="r" u2="”" k="-61" /> +<hkern u1="r" u2="’" k="-61" /> +<hkern u1="r" u2="æ" k="41" /> +<hkern u1="r" u2="å" k="41" /> +<hkern u1="r" u2="ä" k="41" /> +<hkern u1="r" u2="ã" k="41" /> +<hkern u1="r" u2="â" k="41" /> +<hkern u1="r" u2="á" k="41" /> +<hkern u1="r" u2="à" k="41" /> +<hkern u1="r" u2="a" k="41" /> +<hkern u1="r" u2="*" k="-61" /> +<hkern u1="v" u2="„" k="143" /> +<hkern u1="v" u2="‚" k="143" /> +<hkern u1="v" u2="." k="143" /> +<hkern u1="v" u2="," k="102" /> +<hkern u1="w" u2="„" k="143" /> +<hkern u1="w" u2="‚" k="143" /> +<hkern u1="w" u2="." k="143" /> +<hkern u1="w" u2="," k="143" /> +<hkern u1="y" u2="„" k="184" /> +<hkern u1="y" u2="‚" k="184" /> +<hkern u1="y" u2="." k="184" /> +<hkern u1="y" u2="," k="184" /> +<hkern u1="À" u2="”" k="143" /> +<hkern u1="À" u2="’" k="143" /> +<hkern u1="À" u2="ÿ" k="102" /> +<hkern u1="À" u2="ý" k="102" /> +<hkern u1="À" u2="ü" k="41" /> +<hkern u1="À" u2="û" k="41" /> +<hkern u1="À" u2="ú" k="41" /> +<hkern u1="À" u2="ù" k="41" /> +<hkern u1="À" u2="ø" k="41" /> +<hkern u1="À" u2="ö" k="41" /> +<hkern u1="À" u2="õ" k="41" /> +<hkern u1="À" u2="ô" k="41" /> +<hkern u1="À" u2="ó" k="41" /> +<hkern u1="À" u2="ò" k="41" /> +<hkern u1="À" u2="ð" k="41" /> +<hkern u1="À" u2="ë" k="41" /> +<hkern u1="À" u2="ê" k="41" /> +<hkern u1="À" u2="é" k="41" /> +<hkern u1="À" u2="è" k="41" /> +<hkern u1="À" u2="ç" k="41" /> +<hkern u1="À" u2="Ý" k="143" /> +<hkern u1="À" u2="Ü" k="41" /> +<hkern u1="À" u2="Û" k="41" /> +<hkern u1="À" u2="Ú" k="41" /> +<hkern u1="À" u2="Ù" k="41" /> +<hkern u1="À" u2="Ø" k="41" /> +<hkern u1="À" u2="Ö" k="41" /> +<hkern u1="À" u2="Õ" k="41" /> +<hkern u1="À" u2="Ô" k="41" /> +<hkern u1="À" u2="Ó" k="41" /> +<hkern u1="À" u2="Ò" k="41" /> +<hkern u1="À" u2="y" k="102" /> +<hkern u1="À" u2="w" k="61" /> +<hkern u1="À" u2="v" k="102" /> +<hkern u1="À" u2="u" k="41" /> +<hkern u1="À" u2="q" k="41" /> +<hkern u1="À" u2="o" k="41" /> +<hkern u1="À" u2="g" k="41" /> +<hkern u1="À" u2="e" k="41" /> +<hkern u1="À" u2="d" k="41" /> +<hkern u1="À" u2="c" k="41" /> +<hkern u1="À" u2="Y" k="143" /> +<hkern u1="À" u2="W" k="143" /> +<hkern u1="À" u2="V" k="164" /> +<hkern u1="À" u2="U" k="41" /> +<hkern u1="À" u2="T" k="123" /> +<hkern u1="À" u2="Q" k="41" /> +<hkern u1="À" u2="O" k="41" /> +<hkern u1="À" u2="G" k="41" /> +<hkern u1="À" u2="C" k="41" /> +<hkern u1="À" u2="?" k="123" /> +<hkern u1="À" u2="*" k="143" /> +<hkern u1="À" u2="'" k="164" /> +<hkern u1="À" u2=""" k="164" /> +<hkern u1="Á" u2="”" k="143" /> +<hkern u1="Á" u2="’" k="143" /> +<hkern u1="Á" u2="ÿ" k="102" /> +<hkern u1="Á" u2="ý" k="102" /> +<hkern u1="Á" u2="ü" k="41" /> +<hkern u1="Á" u2="û" k="41" /> +<hkern u1="Á" u2="ú" k="41" /> +<hkern u1="Á" u2="ù" k="41" /> +<hkern u1="Á" u2="ø" k="41" /> +<hkern u1="Á" u2="ö" k="41" /> +<hkern u1="Á" u2="õ" k="41" /> +<hkern u1="Á" u2="ô" k="41" /> +<hkern u1="Á" u2="ó" k="41" /> +<hkern u1="Á" u2="ò" k="41" /> +<hkern u1="Á" u2="ð" k="41" /> +<hkern u1="Á" u2="ë" k="41" /> +<hkern u1="Á" u2="ê" k="41" /> +<hkern u1="Á" u2="é" k="41" /> +<hkern u1="Á" u2="è" k="41" /> +<hkern u1="Á" u2="ç" k="41" /> +<hkern u1="Á" u2="Ý" k="143" /> +<hkern u1="Á" u2="Ü" k="41" /> +<hkern u1="Á" u2="Û" k="41" /> +<hkern u1="Á" u2="Ú" k="41" /> +<hkern u1="Á" u2="Ù" k="41" /> +<hkern u1="Á" u2="Ø" k="41" /> +<hkern u1="Á" u2="Ö" k="41" /> +<hkern u1="Á" u2="Õ" k="41" /> +<hkern u1="Á" u2="Ô" k="41" /> +<hkern u1="Á" u2="Ó" k="41" /> +<hkern u1="Á" u2="Ò" k="41" /> +<hkern u1="Á" u2="y" k="102" /> +<hkern u1="Á" u2="w" k="61" /> +<hkern u1="Á" u2="v" k="102" /> +<hkern u1="Á" u2="u" k="41" /> +<hkern u1="Á" u2="q" k="41" /> +<hkern u1="Á" u2="o" k="41" /> +<hkern u1="Á" u2="g" k="41" /> +<hkern u1="Á" u2="e" k="41" /> +<hkern u1="Á" u2="d" k="41" /> +<hkern u1="Á" u2="c" k="41" /> +<hkern u1="Á" u2="Y" k="143" /> +<hkern u1="Á" u2="W" k="143" /> +<hkern u1="Á" u2="V" k="164" /> +<hkern u1="Á" u2="U" k="41" /> +<hkern u1="Á" u2="T" k="123" /> +<hkern u1="Á" u2="Q" k="41" /> +<hkern u1="Á" u2="O" k="41" /> +<hkern u1="Á" u2="G" k="41" /> +<hkern u1="Á" u2="C" k="41" /> +<hkern u1="Á" u2="?" k="123" /> +<hkern u1="Á" u2="*" k="143" /> +<hkern u1="Á" u2="'" k="164" /> +<hkern u1="Á" u2=""" k="164" /> +<hkern u1="Â" u2="”" k="143" /> +<hkern u1="Â" u2="’" k="143" /> +<hkern u1="Â" u2="ÿ" k="102" /> +<hkern u1="Â" u2="ý" k="102" /> +<hkern u1="Â" u2="ü" k="41" /> +<hkern u1="Â" u2="û" k="41" /> +<hkern u1="Â" u2="ú" k="41" /> +<hkern u1="Â" u2="ù" k="41" /> +<hkern u1="Â" u2="ø" k="41" /> +<hkern u1="Â" u2="ö" k="41" /> +<hkern u1="Â" u2="õ" k="41" /> +<hkern u1="Â" u2="ô" k="41" /> +<hkern u1="Â" u2="ó" k="41" /> +<hkern u1="Â" u2="ò" k="41" /> +<hkern u1="Â" u2="ð" k="41" /> +<hkern u1="Â" u2="ë" k="41" /> +<hkern u1="Â" u2="ê" k="41" /> +<hkern u1="Â" u2="é" k="41" /> +<hkern u1="Â" u2="è" k="41" /> +<hkern u1="Â" u2="ç" k="41" /> +<hkern u1="Â" u2="Ý" k="143" /> +<hkern u1="Â" u2="Ü" k="41" /> +<hkern u1="Â" u2="Û" k="41" /> +<hkern u1="Â" u2="Ú" k="41" /> +<hkern u1="Â" u2="Ù" k="41" /> +<hkern u1="Â" u2="Ø" k="41" /> +<hkern u1="Â" u2="Ö" k="41" /> +<hkern u1="Â" u2="Õ" k="41" /> +<hkern u1="Â" u2="Ô" k="41" /> +<hkern u1="Â" u2="Ó" k="41" /> +<hkern u1="Â" u2="Ò" k="41" /> +<hkern u1="Â" u2="y" k="102" /> +<hkern u1="Â" u2="w" k="61" /> +<hkern u1="Â" u2="v" k="102" /> +<hkern u1="Â" u2="u" k="41" /> +<hkern u1="Â" u2="q" k="41" /> +<hkern u1="Â" u2="o" k="41" /> +<hkern u1="Â" u2="g" k="41" /> +<hkern u1="Â" u2="e" k="41" /> +<hkern u1="Â" u2="d" k="41" /> +<hkern u1="Â" u2="c" k="41" /> +<hkern u1="Â" u2="Y" k="143" /> +<hkern u1="Â" u2="W" k="143" /> +<hkern u1="Â" u2="V" k="164" /> +<hkern u1="Â" u2="U" k="41" /> +<hkern u1="Â" u2="T" k="123" /> +<hkern u1="Â" u2="Q" k="41" /> +<hkern u1="Â" u2="O" k="41" /> +<hkern u1="Â" u2="G" k="41" /> +<hkern u1="Â" u2="C" k="41" /> +<hkern u1="Â" u2="?" k="123" /> +<hkern u1="Â" u2="*" k="143" /> +<hkern u1="Â" u2="'" k="164" /> +<hkern u1="Â" u2=""" k="164" /> +<hkern u1="Ã" u2="”" k="143" /> +<hkern u1="Ã" u2="’" k="143" /> +<hkern u1="Ã" u2="ÿ" k="102" /> +<hkern u1="Ã" u2="ý" k="102" /> +<hkern u1="Ã" u2="ü" k="41" /> +<hkern u1="Ã" u2="û" k="41" /> +<hkern u1="Ã" u2="ú" k="41" /> +<hkern u1="Ã" u2="ù" k="41" /> +<hkern u1="Ã" u2="ø" k="41" /> +<hkern u1="Ã" u2="ö" k="41" /> +<hkern u1="Ã" u2="õ" k="41" /> +<hkern u1="Ã" u2="ô" k="41" /> +<hkern u1="Ã" u2="ó" k="41" /> +<hkern u1="Ã" u2="ò" k="41" /> +<hkern u1="Ã" u2="ð" k="41" /> +<hkern u1="Ã" u2="ë" k="41" /> +<hkern u1="Ã" u2="ê" k="41" /> +<hkern u1="Ã" u2="é" k="41" /> +<hkern u1="Ã" u2="è" k="41" /> +<hkern u1="Ã" u2="ç" k="41" /> +<hkern u1="Ã" u2="Ý" k="143" /> +<hkern u1="Ã" u2="Ü" k="41" /> +<hkern u1="Ã" u2="Û" k="41" /> +<hkern u1="Ã" u2="Ú" k="41" /> +<hkern u1="Ã" u2="Ù" k="41" /> +<hkern u1="Ã" u2="Ø" k="41" /> +<hkern u1="Ã" u2="Ö" k="41" /> +<hkern u1="Ã" u2="Õ" k="41" /> +<hkern u1="Ã" u2="Ô" k="41" /> +<hkern u1="Ã" u2="Ó" k="41" /> +<hkern u1="Ã" u2="Ò" k="41" /> +<hkern u1="Ã" u2="y" k="102" /> +<hkern u1="Ã" u2="w" k="61" /> +<hkern u1="Ã" u2="v" k="102" /> +<hkern u1="Ã" u2="u" k="41" /> +<hkern u1="Ã" u2="q" k="41" /> +<hkern u1="Ã" u2="o" k="41" /> +<hkern u1="Ã" u2="g" k="41" /> +<hkern u1="Ã" u2="e" k="41" /> +<hkern u1="Ã" u2="d" k="41" /> +<hkern u1="Ã" u2="c" k="41" /> +<hkern u1="Ã" u2="Y" k="143" /> +<hkern u1="Ã" u2="W" k="143" /> +<hkern u1="Ã" u2="V" k="164" /> +<hkern u1="Ã" u2="U" k="41" /> +<hkern u1="Ã" u2="T" k="123" /> +<hkern u1="Ã" u2="Q" k="41" /> +<hkern u1="Ã" u2="O" k="41" /> +<hkern u1="Ã" u2="G" k="41" /> +<hkern u1="Ã" u2="C" k="41" /> +<hkern u1="Ã" u2="?" k="123" /> +<hkern u1="Ã" u2="*" k="143" /> +<hkern u1="Ã" u2="'" k="164" /> +<hkern u1="Ã" u2=""" k="164" /> +<hkern u1="Ä" u2="”" k="143" /> +<hkern u1="Ä" u2="’" k="143" /> +<hkern u1="Ä" u2="ÿ" k="102" /> +<hkern u1="Ä" u2="ý" k="102" /> +<hkern u1="Ä" u2="ü" k="41" /> +<hkern u1="Ä" u2="û" k="41" /> +<hkern u1="Ä" u2="ú" k="41" /> +<hkern u1="Ä" u2="ù" k="41" /> +<hkern u1="Ä" u2="ø" k="41" /> +<hkern u1="Ä" u2="ö" k="41" /> +<hkern u1="Ä" u2="õ" k="41" /> +<hkern u1="Ä" u2="ô" k="41" /> +<hkern u1="Ä" u2="ó" k="41" /> +<hkern u1="Ä" u2="ò" k="41" /> +<hkern u1="Ä" u2="ð" k="41" /> +<hkern u1="Ä" u2="ë" k="41" /> +<hkern u1="Ä" u2="ê" k="41" /> +<hkern u1="Ä" u2="é" k="41" /> +<hkern u1="Ä" u2="è" k="41" /> +<hkern u1="Ä" u2="ç" k="41" /> +<hkern u1="Ä" u2="Ý" k="143" /> +<hkern u1="Ä" u2="Ü" k="41" /> +<hkern u1="Ä" u2="Û" k="41" /> +<hkern u1="Ä" u2="Ú" k="41" /> +<hkern u1="Ä" u2="Ù" k="41" /> +<hkern u1="Ä" u2="Ø" k="41" /> +<hkern u1="Ä" u2="Ö" k="41" /> +<hkern u1="Ä" u2="Õ" k="41" /> +<hkern u1="Ä" u2="Ô" k="41" /> +<hkern u1="Ä" u2="Ó" k="41" /> +<hkern u1="Ä" u2="Ò" k="41" /> +<hkern u1="Ä" u2="y" k="102" /> +<hkern u1="Ä" u2="w" k="61" /> +<hkern u1="Ä" u2="v" k="102" /> +<hkern u1="Ä" u2="u" k="41" /> +<hkern u1="Ä" u2="q" k="41" /> +<hkern u1="Ä" u2="o" k="41" /> +<hkern u1="Ä" u2="g" k="41" /> +<hkern u1="Ä" u2="e" k="41" /> +<hkern u1="Ä" u2="d" k="41" /> +<hkern u1="Ä" u2="c" k="41" /> +<hkern u1="Ä" u2="Y" k="143" /> +<hkern u1="Ä" u2="W" k="143" /> +<hkern u1="Ä" u2="V" k="164" /> +<hkern u1="Ä" u2="U" k="41" /> +<hkern u1="Ä" u2="T" k="123" /> +<hkern u1="Ä" u2="Q" k="41" /> +<hkern u1="Ä" u2="O" k="41" /> +<hkern u1="Ä" u2="G" k="41" /> +<hkern u1="Ä" u2="C" k="41" /> +<hkern u1="Ä" u2="?" k="123" /> +<hkern u1="Ä" u2="*" k="143" /> +<hkern u1="Ä" u2="'" k="164" /> +<hkern u1="Ä" u2=""" k="164" /> +<hkern u1="Å" u2="”" k="143" /> +<hkern u1="Å" u2="’" k="143" /> +<hkern u1="Å" u2="ÿ" k="102" /> +<hkern u1="Å" u2="ý" k="102" /> +<hkern u1="Å" u2="ü" k="41" /> +<hkern u1="Å" u2="û" k="41" /> +<hkern u1="Å" u2="ú" k="41" /> +<hkern u1="Å" u2="ù" k="41" /> +<hkern u1="Å" u2="ø" k="41" /> +<hkern u1="Å" u2="ö" k="41" /> +<hkern u1="Å" u2="õ" k="41" /> +<hkern u1="Å" u2="ô" k="41" /> +<hkern u1="Å" u2="ó" k="41" /> +<hkern u1="Å" u2="ò" k="41" /> +<hkern u1="Å" u2="ð" k="41" /> +<hkern u1="Å" u2="ë" k="41" /> +<hkern u1="Å" u2="ê" k="41" /> +<hkern u1="Å" u2="é" k="41" /> +<hkern u1="Å" u2="è" k="41" /> +<hkern u1="Å" u2="ç" k="41" /> +<hkern u1="Å" u2="Ý" k="143" /> +<hkern u1="Å" u2="Ü" k="41" /> +<hkern u1="Å" u2="Û" k="41" /> +<hkern u1="Å" u2="Ú" k="41" /> +<hkern u1="Å" u2="Ù" k="41" /> +<hkern u1="Å" u2="Ø" k="41" /> +<hkern u1="Å" u2="Ö" k="41" /> +<hkern u1="Å" u2="Õ" k="41" /> +<hkern u1="Å" u2="Ô" k="41" /> +<hkern u1="Å" u2="Ó" k="41" /> +<hkern u1="Å" u2="Ò" k="41" /> +<hkern u1="Å" u2="y" k="102" /> +<hkern u1="Å" u2="w" k="61" /> +<hkern u1="Å" u2="v" k="102" /> +<hkern u1="Å" u2="u" k="41" /> +<hkern u1="Å" u2="q" k="41" /> +<hkern u1="Å" u2="o" k="41" /> +<hkern u1="Å" u2="g" k="41" /> +<hkern u1="Å" u2="e" k="41" /> +<hkern u1="Å" u2="d" k="41" /> +<hkern u1="Å" u2="c" k="41" /> +<hkern u1="Å" u2="Y" k="143" /> +<hkern u1="Å" u2="W" k="143" /> +<hkern u1="Å" u2="V" k="164" /> +<hkern u1="Å" u2="U" k="41" /> +<hkern u1="Å" u2="T" k="123" /> +<hkern u1="Å" u2="Q" k="41" /> +<hkern u1="Å" u2="O" k="41" /> +<hkern u1="Å" u2="G" k="41" /> +<hkern u1="Å" u2="C" k="41" /> +<hkern u1="Å" u2="?" k="123" /> +<hkern u1="Å" u2="*" k="143" /> +<hkern u1="Å" u2="'" k="164" /> +<hkern u1="Å" u2=""" k="164" /> +<hkern u1="Æ" u2="Ý" k="41" /> +<hkern u1="Æ" u2="Y" k="41" /> +<hkern u1="Æ" u2="W" k="41" /> +<hkern u1="Æ" u2="V" k="41" /> +<hkern u1="È" u2="Ý" k="41" /> +<hkern u1="È" u2="Y" k="41" /> +<hkern u1="È" u2="W" k="41" /> +<hkern u1="È" u2="V" k="41" /> +<hkern u1="É" u2="Ý" k="41" /> +<hkern u1="É" u2="Y" k="41" /> +<hkern u1="É" u2="W" k="41" /> +<hkern u1="É" u2="V" k="41" /> +<hkern u1="Ê" u2="Ý" k="41" /> +<hkern u1="Ê" u2="Y" k="41" /> +<hkern u1="Ê" u2="W" k="41" /> +<hkern u1="Ê" u2="V" k="41" /> +<hkern u1="Ë" u2="Ý" k="41" /> +<hkern u1="Ë" u2="Y" k="41" /> +<hkern u1="Ë" u2="W" k="41" /> +<hkern u1="Ë" u2="V" k="41" /> +<hkern u1="Ð" u2="Ý" k="61" /> +<hkern u1="Ð" u2="Æ" k="102" /> +<hkern u1="Ð" u2="Å" k="41" /> +<hkern u1="Ð" u2="Ä" k="41" /> +<hkern u1="Ð" u2="Ã" k="41" /> +<hkern u1="Ð" u2="Â" k="41" /> +<hkern u1="Ð" u2="Á" k="41" /> +<hkern u1="Ð" u2="À" k="41" /> +<hkern u1="Ð" u2="Y" k="61" /> +<hkern u1="Ð" u2="X" k="41" /> +<hkern u1="Ð" u2="W" k="41" /> +<hkern u1="Ð" u2="V" k="41" /> +<hkern u1="Ð" u2="T" k="41" /> +<hkern u1="Ð" u2="A" k="41" /> +<hkern u1="Ð" u2="?" k="41" /> +<hkern u1="Ò" u2="Ý" k="61" /> +<hkern u1="Ò" u2="Æ" k="102" /> +<hkern u1="Ò" u2="Å" k="41" /> +<hkern u1="Ò" u2="Ä" k="41" /> +<hkern u1="Ò" u2="Ã" k="41" /> +<hkern u1="Ò" u2="Â" k="41" /> +<hkern u1="Ò" u2="Á" k="41" /> +<hkern u1="Ò" u2="À" k="41" /> +<hkern u1="Ò" u2="Y" k="61" /> +<hkern u1="Ò" u2="X" k="41" /> +<hkern u1="Ò" u2="W" k="41" /> +<hkern u1="Ò" u2="V" k="41" /> +<hkern u1="Ò" u2="T" k="41" /> +<hkern u1="Ò" u2="A" k="41" /> +<hkern u1="Ò" u2="?" k="41" /> +<hkern u1="Ó" u2="Ý" k="61" /> +<hkern u1="Ó" u2="Æ" k="102" /> +<hkern u1="Ó" u2="Å" k="41" /> +<hkern u1="Ó" u2="Ä" k="41" /> +<hkern u1="Ó" u2="Ã" k="41" /> +<hkern u1="Ó" u2="Â" k="41" /> +<hkern u1="Ó" u2="Á" k="41" /> +<hkern u1="Ó" u2="À" k="41" /> +<hkern u1="Ó" u2="Y" k="61" /> +<hkern u1="Ó" u2="X" k="41" /> +<hkern u1="Ó" u2="W" k="41" /> +<hkern u1="Ó" u2="V" k="41" /> +<hkern u1="Ó" u2="T" k="41" /> +<hkern u1="Ó" u2="A" k="41" /> +<hkern u1="Ó" u2="?" k="41" /> +<hkern u1="Ô" u2="Ý" k="61" /> +<hkern u1="Ô" u2="Æ" k="102" /> +<hkern u1="Ô" u2="Å" k="41" /> +<hkern u1="Ô" u2="Ä" k="41" /> +<hkern u1="Ô" u2="Ã" k="41" /> +<hkern u1="Ô" u2="Â" k="41" /> +<hkern u1="Ô" u2="Á" k="41" /> +<hkern u1="Ô" u2="À" k="41" /> +<hkern u1="Ô" u2="Y" k="61" /> +<hkern u1="Ô" u2="X" k="41" /> +<hkern u1="Ô" u2="W" k="41" /> +<hkern u1="Ô" u2="V" k="41" /> +<hkern u1="Ô" u2="T" k="41" /> +<hkern u1="Ô" u2="A" k="41" /> +<hkern u1="Ô" u2="?" k="41" /> +<hkern u1="Õ" u2="Ý" k="61" /> +<hkern u1="Õ" u2="Æ" k="102" /> +<hkern u1="Õ" u2="Å" k="41" /> +<hkern u1="Õ" u2="Ä" k="41" /> +<hkern u1="Õ" u2="Ã" k="41" /> +<hkern u1="Õ" u2="Â" k="41" /> +<hkern u1="Õ" u2="Á" k="41" /> +<hkern u1="Õ" u2="À" k="41" /> +<hkern u1="Õ" u2="Y" k="61" /> +<hkern u1="Õ" u2="X" k="41" /> +<hkern u1="Õ" u2="W" k="41" /> +<hkern u1="Õ" u2="V" k="41" /> +<hkern u1="Õ" u2="T" k="41" /> +<hkern u1="Õ" u2="A" k="41" /> +<hkern u1="Õ" u2="?" k="41" /> +<hkern u1="Ö" u2="Ý" k="61" /> +<hkern u1="Ö" u2="Æ" k="102" /> +<hkern u1="Ö" u2="Å" k="41" /> +<hkern u1="Ö" u2="Ä" k="41" /> +<hkern u1="Ö" u2="Ã" k="41" /> +<hkern u1="Ö" u2="Â" k="41" /> +<hkern u1="Ö" u2="Á" k="41" /> +<hkern u1="Ö" u2="À" k="41" /> +<hkern u1="Ö" u2="Y" k="61" /> +<hkern u1="Ö" u2="X" k="41" /> +<hkern u1="Ö" u2="W" k="41" /> +<hkern u1="Ö" u2="V" k="41" /> +<hkern u1="Ö" u2="T" k="41" /> +<hkern u1="Ö" u2="A" k="41" /> +<hkern u1="Ö" u2="?" k="41" /> +<hkern u1="Ø" u2="Ý" k="61" /> +<hkern u1="Ø" u2="Æ" k="102" /> +<hkern u1="Ø" u2="Å" k="41" /> +<hkern u1="Ø" u2="Ä" k="41" /> +<hkern u1="Ø" u2="Ã" k="41" /> +<hkern u1="Ø" u2="Â" k="41" /> +<hkern u1="Ø" u2="Á" k="41" /> +<hkern u1="Ø" u2="À" k="41" /> +<hkern u1="Ø" u2="Y" k="61" /> +<hkern u1="Ø" u2="X" k="41" /> +<hkern u1="Ø" u2="W" k="41" /> +<hkern u1="Ø" u2="V" k="41" /> +<hkern u1="Ø" u2="T" k="41" /> +<hkern u1="Ø" u2="A" k="41" /> +<hkern u1="Ø" u2="?" k="41" /> +<hkern u1="Ù" u2="Å" k="41" /> +<hkern u1="Ù" u2="Ä" k="41" /> +<hkern u1="Ù" u2="Ã" k="41" /> +<hkern u1="Ù" u2="Â" k="41" /> +<hkern u1="Ù" u2="Á" k="41" /> +<hkern u1="Ù" u2="À" k="41" /> +<hkern u1="Ù" u2="A" k="41" /> +<hkern u1="Ú" u2="Å" k="41" /> +<hkern u1="Ú" u2="Ä" k="41" /> +<hkern u1="Ú" u2="Ã" k="41" /> +<hkern u1="Ú" u2="Â" k="41" /> +<hkern u1="Ú" u2="Á" k="41" /> +<hkern u1="Ú" u2="À" k="41" /> +<hkern u1="Ú" u2="A" k="41" /> +<hkern u1="Û" u2="Å" k="41" /> +<hkern u1="Û" u2="Ä" k="41" /> +<hkern u1="Û" u2="Ã" k="41" /> +<hkern u1="Û" u2="Â" k="41" /> +<hkern u1="Û" u2="Á" k="41" /> +<hkern u1="Û" u2="À" k="41" /> +<hkern u1="Û" u2="A" k="41" /> +<hkern u1="Ü" u2="Å" k="41" /> +<hkern u1="Ü" u2="Ä" k="41" /> +<hkern u1="Ü" u2="Ã" k="41" /> +<hkern u1="Ü" u2="Â" k="41" /> +<hkern u1="Ü" u2="Á" k="41" /> +<hkern u1="Ü" u2="À" k="41" /> +<hkern u1="Ü" u2="A" k="41" /> +<hkern u1="Ý" u2="„" k="164" /> +<hkern u1="Ý" u2="‚" k="164" /> +<hkern u1="Ý" u2="ø" k="143" /> +<hkern u1="Ý" u2="ö" k="143" /> +<hkern u1="Ý" u2="õ" k="143" /> +<hkern u1="Ý" u2="ô" k="143" /> +<hkern u1="Ý" u2="ó" k="143" /> +<hkern u1="Ý" u2="ò" k="143" /> +<hkern u1="Ý" u2="ð" k="143" /> +<hkern u1="Ý" u2="ë" k="143" /> +<hkern u1="Ý" u2="ê" k="143" /> +<hkern u1="Ý" u2="é" k="143" /> +<hkern u1="Ý" u2="è" k="143" /> +<hkern u1="Ý" u2="ç" k="143" /> +<hkern u1="Ý" u2="æ" k="123" /> +<hkern u1="Ý" u2="å" k="123" /> +<hkern u1="Ý" u2="ä" k="123" /> +<hkern u1="Ý" u2="ã" k="123" /> +<hkern u1="Ý" u2="â" k="123" /> +<hkern u1="Ý" u2="á" k="123" /> +<hkern u1="Ý" u2="à" k="123" /> +<hkern u1="Ý" u2="Ø" k="61" /> +<hkern u1="Ý" u2="Ö" k="61" /> +<hkern u1="Ý" u2="Õ" k="61" /> +<hkern u1="Ý" u2="Ô" k="61" /> +<hkern u1="Ý" u2="Ó" k="61" /> +<hkern u1="Ý" u2="Ò" k="61" /> +<hkern u1="Ý" u2="Æ" k="184" /> +<hkern u1="Ý" u2="Å" k="143" /> +<hkern u1="Ý" u2="Ä" k="143" /> +<hkern u1="Ý" u2="Ã" k="143" /> +<hkern u1="Ý" u2="Â" k="143" /> +<hkern u1="Ý" u2="Á" k="143" /> +<hkern u1="Ý" u2="À" k="143" /> +<hkern u1="Ý" u2="s" k="123" /> +<hkern u1="Ý" u2="q" k="143" /> +<hkern u1="Ý" u2="o" k="143" /> +<hkern u1="Ý" u2="g" k="143" /> +<hkern u1="Ý" u2="e" k="143" /> +<hkern u1="Ý" u2="d" k="143" /> +<hkern u1="Ý" u2="c" k="143" /> +<hkern u1="Ý" u2="a" k="123" /> +<hkern u1="Ý" u2="S" k="41" /> +<hkern u1="Ý" u2="Q" k="61" /> +<hkern u1="Ý" u2="O" k="61" /> +<hkern u1="Ý" u2="G" k="61" /> +<hkern u1="Ý" u2="C" k="61" /> +<hkern u1="Ý" u2="A" k="143" /> +<hkern u1="Ý" u2="." k="164" /> +<hkern u1="Ý" u2="," k="164" /> +<hkern u1="Þ" u2="Ý" k="61" /> +<hkern u1="Þ" u2="Æ" k="102" /> +<hkern u1="Þ" u2="Å" k="41" /> +<hkern u1="Þ" u2="Ä" k="41" /> +<hkern u1="Þ" u2="Ã" k="41" /> +<hkern u1="Þ" u2="Â" k="41" /> +<hkern u1="Þ" u2="Á" k="41" /> +<hkern u1="Þ" u2="À" k="41" /> +<hkern u1="Þ" u2="Y" k="61" /> +<hkern u1="Þ" u2="X" k="41" /> +<hkern u1="Þ" u2="W" k="41" /> +<hkern u1="Þ" u2="V" k="41" /> +<hkern u1="Þ" u2="T" k="41" /> +<hkern u1="Þ" u2="A" k="41" /> +<hkern u1="Þ" u2="?" k="41" /> +<hkern u1="ß" u2="ÿ" k="41" /> +<hkern u1="ß" u2="ý" k="41" /> +<hkern u1="ß" u2="y" k="41" /> +<hkern u1="à" u2="ÿ" k="41" /> +<hkern u1="à" u2="ý" k="41" /> +<hkern u1="à" u2="y" k="41" /> +<hkern u1="à" u2="'" k="82" /> +<hkern u1="à" u2=""" k="82" /> +<hkern u1="á" u2="ÿ" k="41" /> +<hkern u1="á" u2="ý" k="41" /> +<hkern u1="á" u2="y" k="41" /> +<hkern u1="á" u2="'" k="82" /> +<hkern u1="á" u2=""" k="82" /> +<hkern u1="â" u2="ÿ" k="41" /> +<hkern u1="â" u2="ý" k="41" /> +<hkern u1="â" u2="y" k="41" /> +<hkern u1="â" u2="'" k="82" /> +<hkern u1="â" u2=""" k="82" /> +<hkern u1="ã" u2="ÿ" k="41" /> +<hkern u1="ã" u2="ý" k="41" /> +<hkern u1="ã" u2="y" k="41" /> +<hkern u1="ã" u2="'" k="82" /> +<hkern u1="ã" u2=""" k="82" /> +<hkern u1="ä" u2="ÿ" k="41" /> +<hkern u1="ä" u2="ý" k="41" /> +<hkern u1="ä" u2="y" k="41" /> +<hkern u1="ä" u2="'" k="82" /> +<hkern u1="ä" u2=""" k="82" /> +<hkern u1="å" u2="ÿ" k="41" /> +<hkern u1="å" u2="ý" k="41" /> +<hkern u1="å" u2="y" k="41" /> +<hkern u1="å" u2="'" k="82" /> +<hkern u1="å" u2=""" k="82" /> +<hkern u1="ð" u2="ÿ" k="41" /> +<hkern u1="ð" u2="ý" k="41" /> +<hkern u1="ð" u2="y" k="41" /> +<hkern u1="ñ" u2="ÿ" k="41" /> +<hkern u1="ñ" u2="ý" k="41" /> +<hkern u1="ñ" u2="y" k="41" /> +<hkern u1="ñ" u2="'" k="82" /> +<hkern u1="ñ" u2=""" k="82" /> +<hkern u1="ò" u2="ÿ" k="41" /> +<hkern u1="ò" u2="ý" k="41" /> +<hkern u1="ò" u2="y" k="41" /> +<hkern u1="ó" u2="ÿ" k="41" /> +<hkern u1="ó" u2="ý" k="41" /> +<hkern u1="ó" u2="y" k="41" /> +<hkern u1="ô" u2="ÿ" k="41" /> +<hkern u1="ô" u2="ý" k="41" /> +<hkern u1="ô" u2="y" k="41" /> +<hkern u1="õ" u2="ÿ" k="41" /> +<hkern u1="õ" u2="ý" k="41" /> +<hkern u1="õ" u2="y" k="41" /> +<hkern u1="ö" u2="ÿ" k="41" /> +<hkern u1="ö" u2="ý" k="41" /> +<hkern u1="ö" u2="y" k="41" /> +<hkern u1="ø" u2="ÿ" k="41" /> +<hkern u1="ø" u2="ý" k="41" /> +<hkern u1="ø" u2="y" k="41" /> +<hkern u1="ý" u2="„" k="184" /> +<hkern u1="ý" u2="‚" k="184" /> +<hkern u1="ý" u2="." k="184" /> +<hkern u1="ý" u2="," k="184" /> +<hkern u1="þ" u2="ÿ" k="41" /> +<hkern u1="þ" u2="ý" k="41" /> +<hkern u1="þ" u2="y" k="41" /> +<hkern u1="ÿ" u2="„" k="184" /> +<hkern u1="ÿ" u2="‚" k="184" /> +<hkern u1="ÿ" u2="." k="184" /> +<hkern u1="ÿ" u2="," k="184" /> +<hkern u1="‘" u2="Æ" k="287" /> +<hkern u1="‘" u2="Å" k="143" /> +<hkern u1="‘" u2="Ä" k="143" /> +<hkern u1="‘" u2="Ã" k="143" /> +<hkern u1="‘" u2="Â" k="143" /> +<hkern u1="‘" u2="Á" k="143" /> +<hkern u1="‘" u2="À" k="143" /> +<hkern u1="‘" u2="A" k="143" /> +<hkern u1="’" u2="s" k="102" /> +<hkern u1="“" u2="Æ" k="287" /> +<hkern u1="“" u2="Å" k="143" /> +<hkern u1="“" u2="Ä" k="143" /> +<hkern u1="“" u2="Ã" k="143" /> +<hkern u1="“" u2="Â" k="143" /> +<hkern u1="“" u2="Á" k="143" /> +<hkern u1="“" u2="À" k="143" /> +<hkern u1="“" u2="A" k="143" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/droidserif-bolditalic-webfont.ttf b/web/static/fonts/droidserif-bolditalic-webfont.ttf Binary files differnew file mode 100755 index 000000000..8deafb88f --- /dev/null +++ b/web/static/fonts/droidserif-bolditalic-webfont.ttf diff --git a/web/static/fonts/droidserif-bolditalic-webfont.woff b/web/static/fonts/droidserif-bolditalic-webfont.woff Binary files differnew file mode 100755 index 000000000..670906af6 --- /dev/null +++ b/web/static/fonts/droidserif-bolditalic-webfont.woff diff --git a/web/static/fonts/droidserif-bolditalic-webfont.woff2 b/web/static/fonts/droidserif-bolditalic-webfont.woff2 Binary files differnew file mode 100755 index 000000000..48fa37444 --- /dev/null +++ b/web/static/fonts/droidserif-bolditalic-webfont.woff2 diff --git a/web/static/fonts/droidserif-italic-webfont.eot b/web/static/fonts/droidserif-italic-webfont.eot Binary files differnew file mode 100755 index 000000000..0d82d1489 --- /dev/null +++ b/web/static/fonts/droidserif-italic-webfont.eot diff --git a/web/static/fonts/droidserif-italic-webfont.svg b/web/static/fonts/droidserif-italic-webfont.svg new file mode 100755 index 000000000..276f91f70 --- /dev/null +++ b/web/static/fonts/droidserif-italic-webfont.svg @@ -0,0 +1,1457 @@ +<?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="droid_serifitalic" horiz-adv-x="1145" > +<font-face units-per-em="2048" ascent="1638" descent="-410" /> +<missing-glyph horiz-adv-x="532" /> +<glyph horiz-adv-x="0" /> +<glyph unicode="
" horiz-adv-x="2048" /> +<glyph unicode=" " horiz-adv-x="532" /> +<glyph unicode="	" horiz-adv-x="532" /> +<glyph unicode=" " horiz-adv-x="532" /> +<glyph unicode="!" horiz-adv-x="682" d="M123 109q0 71 36.5 114t98.5 43q127 0 127 -125q0 -73 -36.5 -115t-98.5 -42q-127 0 -127 125zM258 412l152 1050h237l-295 -1050h-94z" /> +<glyph unicode=""" horiz-adv-x="836" d="M268 981l41 481h217l-164 -481h-94zM653 981l41 481h217l-163 -481h-95z" /> +<glyph unicode="#" d="M68 416l14 121h190l119 401h-244l13 121h266l117 403h125l-119 -403h285l118 403h123l-119 -403h160l-12 -121h-182l-117 -401h233l-14 -121h-258l-121 -416h-123l121 416h-285l-120 -416h-123l121 416h-168zM397 537h285l117 401h-285z" /> +<glyph unicode="$" d="M49 352q0 77 50.5 122.5t107.5 45.5q0 -135 60.5 -227.5t164.5 -114.5l107 502q-271 135 -271 350q0 167 111.5 264t314.5 107l33 155h102l-32 -155q295 -26 295 -205q0 -141 -166 -141q0 220 -150 254l-104 -492l22 -12q185 -101 235 -174t50 -162q0 -168 -123.5 -275 t-343.5 -120l-49 -236h-103l52 238q-170 12 -266.5 88t-96.5 188zM459 1059q0 -119 121 -195l94 447q-215 -36 -215 -252zM535 174q116 10 182.5 79t66.5 171q0 132 -151 211z" /> +<glyph unicode="%" horiz-adv-x="1835" d="M135 901q0 216 118 398t312 182q273 0 273 -326q0 -207 -120.5 -393.5t-318.5 -186.5q-125 0 -194.5 83.5t-69.5 242.5zM297 870q0 -211 111 -211t185.5 177.5t74.5 351.5q0 211 -111 211t-185.5 -177t-74.5 -352zM342 0l1028 1462h143l-1019 -1462h-152zM1040 309 q0 216 118 398t312 182q273 0 273 -326q0 -207 -120.5 -393t-317.5 -186q-265 0 -265 325zM1202 279q0 -211 111 -211t185.5 176.5t74.5 351.5q0 211 -111 211t-185.5 -176.5t-74.5 -351.5z" /> +<glyph unicode="&" horiz-adv-x="1520" d="M72 362q0 159 96 269t334 198q-99 167 -99 301q0 170 111.5 261.5t325.5 91.5q166 0 256 -72t90 -194q0 -133 -75 -215t-372 -189l287 -393q87 164 129 362l16 80h369l-18 -86h-19q-102 0 -148 -30.5t-66.5 -59t-102.5 -199.5q-39 -81 -90 -161l112 -154q63 -86 201 -86 h18l-18 -86h-313l-123 170q-185 -190 -453 -190q-211 0 -329.5 104.5t-118.5 277.5zM274 367q0 -119 71.5 -196t195.5 -77q212 0 368 164l-348 483q-160 -73 -223.5 -155.5t-63.5 -218.5zM600 1145q0 -114 82 -250q173 65 245 130.5t72 176.5q0 81 -47.5 130.5t-126.5 49.5 q-225 0 -225 -237z" /> +<glyph unicode="'" horiz-adv-x="451" d="M260 981l41 481h217l-164 -481h-94z" /> +<glyph unicode="(" horiz-adv-x="709" d="M86 381q0 413 198.5 746t551.5 429l-21 -92q-283 -154 -409.5 -517.5t-126.5 -661.5q0 -321 190 -453l-20 -94q-363 159 -363 643z" /> +<glyph unicode=")" horiz-adv-x="709" d="M-100 -279l20 93q284 153 410.5 519.5t126.5 659.5q0 320 -191 453l21 94q362 -158 362 -643q0 -415 -200 -748.5t-549 -427.5z" /> +<glyph unicode="*" horiz-adv-x="1024" d="M238 1153l358 29l-315 172l104 143l266 -260l17 330l174 -37l-123 -305l350 123l37 -172l-361 -27l318 -170l-102 -139l-271 252l-12 -328l-174 37l119 305l-349 -125z" /> +<glyph unicode="+" d="M150 672v121h376v378h123v-378h379v-121h-379v-379h-123v379h-376z" /> +<glyph unicode="," horiz-adv-x="512" d="M-57 -299l8 86q209 47 209 172q0 36 -66 78q-67 42 -67 104q0 55 35 88t92 33q69 0 114 -45.5t45 -122.5q0 -150 -95 -253.5t-275 -139.5z" /> +<glyph unicode="-" horiz-adv-x="635" d="M29 481l32 154h533l-33 -154h-532z" /> +<glyph unicode="." horiz-adv-x="586" d="M90 109q0 71 36.5 114t98.5 43q127 0 127 -125q0 -72 -36.5 -114.5t-98.5 -42.5q-127 0 -127 125z" /> +<glyph unicode="/" horiz-adv-x="590" d="M-190 -248l841 1804h129l-841 -1804h-129z" /> +<glyph unicode="0" d="M82 473q0 394 170 703t444 309q180 0 284.5 -123t104.5 -346q0 -394 -167 -716.5t-441 -322.5q-183 0 -289 131t-106 365zM281 414q0 -324 213 -324q178 0 285.5 295.5t107.5 669.5q0 319 -211 319q-179 0 -287 -297t-108 -663z" /> +<glyph unicode="1" d="M78 0l16 86h109q97 0 141 36.5t59 110.5l160 754q35 164 76 322h-8q-129 -127 -192 -170t-117 -43q-82 0 -82 110q140 34 335 158l166 106h131l-264 -1245q-8 -38 -8 -57q0 -82 148 -82h110l-18 -86h-762z" /> +<glyph unicode="2" d="M-35 0l43 166l481 434q191 172 268 298t77 276q0 95 -51 150.5t-138 55.5q-236 0 -291 -309q-145 0 -145 131q0 114 123.5 197.5t322.5 83.5q185 0 286 -78t101 -221q0 -122 -87 -251.5t-339 -354.5l-460 -414h475q67 0 114.5 30.5t88.5 122.5l14 33h86l-82 -350h-887z " /> +<glyph unicode="3" d="M-6 195q0 68 43 109.5t113 41.5q0 -112 67 -183t189 -71q146 0 239.5 93t93.5 253q0 127 -75.5 197t-212.5 70h-89l21 104h66q174 0 286.5 107t112.5 278q0 186 -174 186q-228 0 -291 -305q-152 0 -152 131q0 119 127.5 198t323.5 79q174 0 275.5 -79t101.5 -214 q0 -156 -110.5 -271t-301.5 -149q147 -15 227 -98.5t80 -210.5q0 -231 -159.5 -356t-403.5 -125q-197 0 -297 58.5t-100 156.5z" /> +<glyph unicode="4" d="M-29 401l19 84l839 977h197l-203 -946h254l-24 -115h-254l-35 -176q-8 -40 -8 -57q0 -82 147 -82h47l-18 -86h-670l17 86h90q97 0 141 36.5t59 110.5l33 168h-631zM162 516h465l80 383q49 232 100 397q-85 -129 -180 -235z" /> +<glyph unicode="5" d="M16 184q0 127 154 127q7 -219 223 -219q165 0 257.5 103t92.5 288q0 132 -71.5 205.5t-190.5 73.5q-110 0 -223 -45l-70 14l220 731h684l-56 -309h-86q6 78 6 96q0 49 -94 49h-397l-135 -456q99 32 196 32q202 0 316 -100t114 -276q0 -228 -159.5 -373t-421.5 -145 q-359 0 -359 204z" /> +<glyph unicode="6" d="M123 475q0 413 198.5 710.5t501.5 297.5q146 0 230 -53t84 -132q0 -153 -179 -153q0 139 -35 189t-104 50q-308 0 -459 -602q152 107 302 107q162 0 254 -97.5t92 -261.5q0 -238 -134.5 -394t-365.5 -156q-173 0 -279 131.5t-106 363.5zM309 399q0 -307 211 -307 q124 0 204.5 120t80.5 306q0 266 -184 266q-137 0 -283 -118q-29 -164 -29 -267z" /> +<glyph unicode="7" d="M184 1092l88 370h916l-12 -59l-801 -1403h-154l758 1298h-539q-112 0 -141 -104l-29 -102h-86z" /> +<glyph unicode="8" d="M20 332q0 142 90 238t316 178q-201 144 -201 339q0 187 126.5 291.5t363.5 104.5q174 0 275.5 -82.5t101.5 -216.5q0 -132 -80.5 -227.5t-276.5 -176.5q260 -151 260 -366q0 -209 -145 -321.5t-395 -112.5q-198 0 -316.5 98t-118.5 254zM217 328q0 -115 71 -181.5 t193 -66.5q144 0 232 76t88 209q0 106 -68 181.5t-213 147.5q-303 -111 -303 -366zM422 1110q0 -165 215 -281q272 116 272 340q0 100 -56 155.5t-155 55.5q-125 0 -200.5 -74t-75.5 -196z" /> +<glyph unicode="9" d="M72 164q0 51 32 85t89 34q4 -93 52.5 -148t129.5 -55q142 0 243.5 145.5t190.5 476.5q-134 -139 -313 -139q-159 0 -252.5 93t-93.5 247q0 250 157.5 415t382.5 165q173 0 274 -106t101 -298q0 -394 -188 -746.5t-519 -352.5q-286 0 -286 184zM354 897q0 -109 52.5 -165 t140.5 -56q164 0 295 174q32 133 32 242q0 278 -190 278q-135 0 -232.5 -144t-97.5 -329z" /> +<glyph unicode=":" horiz-adv-x="588" d="M66 109q0 71 36.5 114t98.5 43q60 0 93.5 -34t33.5 -91q0 -73 -36.5 -115t-98.5 -42q-127 0 -127 125zM250 950q0 71 36.5 114.5t98.5 43.5q127 0 127 -125q0 -74 -36.5 -116t-98.5 -42q-127 0 -127 125z" /> +<glyph unicode=";" horiz-adv-x="586" d="M37 -299l8 86q209 47 209 172q0 36 -66 78q-67 42 -67 104q0 55 35 88t92 33q69 0 114.5 -46.5t45.5 -121.5q0 -151 -96.5 -254t-274.5 -139zM254 950q0 71 36.5 114.5t98.5 43.5q127 0 127 -125q0 -74 -36.5 -116t-98.5 -42q-127 0 -127 125z" /> +<glyph unicode="<" d="M150 696v72l878 473v-137l-688 -373l688 -369v-137z" /> +<glyph unicode="=" d="M150 469v121h878v-121h-878zM150 872v121h878v-121h-878z" /> +<glyph unicode=">" d="M150 225v137l688 369l-688 373v137l878 -473v-72z" /> +<glyph unicode="?" horiz-adv-x="1024" d="M268 1212q0 114 114.5 192.5t299.5 78.5q387 0 387 -340q0 -311 -504 -494l-51 -237h-125l64 303q415 154 415 444q0 100 -54 160.5t-144 60.5q-211 0 -254 -290q-148 0 -148 122zM279 109q0 71 36.5 114t98.5 43q60 0 93.5 -34t33.5 -91q0 -73 -36.5 -115t-98.5 -42 q-127 0 -127 125z" /> +<glyph unicode="@" horiz-adv-x="1886" d="M133 446q0 439 270 727.5t682 288.5q322 0 507.5 -179.5t185.5 -479.5q0 -278 -124.5 -461.5t-277.5 -183.5q-178 0 -241 186h-11q-97 -186 -276 -186q-139 0 -225 93t-86 257q0 218 141 396.5t381 178.5q114 0 192 -61l82 43h49l-104 -522q-14 -70 -14 -137 q0 -63 33.5 -101.5t91.5 -38.5q101 0 182.5 152.5t81.5 390.5q0 255 -156 402t-424 147q-318 0 -548 -255.5t-230 -651.5q0 -305 163 -470t447 -165q282 0 520 170l48 -74q-275 -203 -588 -203q-352 0 -552 194.5t-200 542.5zM727 479q0 -108 43.5 -160.5t112.5 -52.5 q172 0 221 256l78 416q-29 61 -115 61q-154 0 -247 -168t-93 -352z" /> +<glyph unicode="A" horiz-adv-x="1444" d="M-115 0l17 86h39q55 0 92 28.5t98 131.5l713 1216h160l194 -1267q10 -64 35 -86.5t86 -22.5h27l-17 -86h-557l16 86h48q147 0 147 104q0 42 -4 70l-33 229h-538l-123 -215q-39 -68 -39 -114q0 -74 114 -74h48l-17 -86h-506zM469 592h463l-51 358q-31 218 -33 324 q-47 -111 -160 -305z" /> +<glyph unicode="B" horiz-adv-x="1339" d="M-43 0l16 86h27q170 0 201 147l213 1004q8 38 8 57q0 82 -148 82h-26l18 86h531q479 0 479 -307q0 -303 -334 -381l-2 -8q250 -50 250 -299q0 -225 -151 -346t-439 -121h-643zM379 102h199q391 0 391 379q0 234 -287 234h-172zM530 817h158q365 0 365 311q0 232 -283 232 h-123z" /> +<glyph unicode="C" horiz-adv-x="1284" d="M106 528q0 388 242 671.5t602 283.5q179 0 279 -61.5t100 -166.5q0 -73 -55 -116t-146 -43q0 278 -204 278q-253 0 -423.5 -275.5t-170.5 -602.5q0 -383 364 -383q237 0 379 186q27 -19 27 -68q0 -98 -114 -174.5t-314 -76.5q-267 0 -416.5 143t-149.5 405z" /> +<glyph unicode="D" horiz-adv-x="1485" d="M-43 0l16 86h27q170 0 201 147l213 1004q8 38 8 57q0 82 -148 82h-26l18 86h574q279 0 430 -144.5t151 -412.5q0 -392 -223 -648.5t-596 -256.5h-645zM379 104h178q296 0 468.5 227t172.5 597q0 432 -389 432h-162z" /> +<glyph unicode="E" horiz-adv-x="1276" d="M-43 0l16 86h27q104 0 144.5 36.5t54.5 100.5l213 1006q6 28 6 49q0 48 -28 73t-116 25h-26l18 86h1032l-65 -358h-107l6 63q5 48 5 56q0 137 -146 137h-344l-117 -545h494l-20 -100h-494l-131 -613h395q173 0 232 168l32 88h107l-90 -358h-1098z" /> +<glyph unicode="F" horiz-adv-x="1208" d="M-43 0l16 86h27q96 0 138 33t61 104l215 1014q8 38 8 57q0 82 -148 82h-26l18 86h1032l-65 -358h-107l4 36q1 19 3 36q4 34 4 47q0 137 -154 137h-336l-127 -592h494l-21 -100h-493l-92 -435q-7 -33 -7 -51q0 -96 142 -96h67l-16 -86h-637z" /> +<glyph unicode="G" horiz-adv-x="1462" d="M106 528q0 407 250 681t631 274q204 0 318 -62t114 -159q0 -76 -61 -119t-156 -43q0 132 -67 203t-191 71q-253 0 -433.5 -261.5t-180.5 -616.5q0 -400 395 -400q115 0 231 29l68 326q8 38 8 57q0 82 -147 82h-19l19 86h545l-19 -86h-8q-82 0 -120 -36.5t-54 -111.5 l-78 -368q-217 -94 -463 -94q-280 0 -431 143.5t-151 404.5z" /> +<glyph unicode="H" horiz-adv-x="1624" d="M-43 0l16 86h27q99 0 142 37.5t59 109.5l213 1004q8 38 8 57q0 82 -148 82h-26l18 86h596l-18 -86h-27q-98 0 -141 -37t-58 -110l-88 -414h666l90 422q8 38 8 57q0 82 -147 82h-27l19 86h596l-19 -86h-26q-98 0 -141 -37.5t-58 -109.5l-213 -1004q-8 -38 -8 -57 q0 -82 147 -82h27l-19 -86h-596l17 86h26q98 0 142 36.5t59 110.5l101 480h-666l-102 -488q-9 -43 -9 -57q0 -82 148 -82h26l-18 -86h-596z" /> +<glyph unicode="I" horiz-adv-x="752" d="M-43 0l16 86h27q170 0 201 147l213 1004q8 38 8 57q0 82 -148 82h-26l18 86h596l-18 -86h-27q-98 0 -141 -37t-58 -110l-212 -1004q-9 -43 -9 -57q0 -82 148 -82h26l-18 -86h-596z" /> +<glyph unicode="J" horiz-adv-x="731" d="M-317 -469l28 92q51 -18 133 -18q119 0 185 89t108 288l266 1255q9 42 9 57q0 82 -148 82h-26l18 86h596l-18 -86h-27q-98 0 -141 -37t-58 -110l-266 -1245q-54 -251 -171.5 -363.5t-320.5 -112.5q-91 0 -167 23z" /> +<glyph unicode="K" horiz-adv-x="1434" d="M-43 0l16 86h27q99 0 142 37.5t59 109.5l213 1004q8 38 8 57q0 82 -148 82h-26l18 86h596l-18 -86h-27q-98 0 -141 -37t-58 -110l-88 -414l-36 -151l528 485q154 141 154 184q0 45 -91 45l17 84h452l-16 -84q-53 0 -118 -35.5t-197 -156.5l-373 -338l248 -598 q68 -164 194 -164h6l-18 -86h-29q-162 0 -241 33.5t-127 156.5l-199 506l-211 -147l-67 -324q-9 -44 -9 -57q0 -82 148 -82h26l-18 -86h-596z" /> +<glyph unicode="L" horiz-adv-x="1276" d="M-41 0l18 86h27q96 0 138 37.5t59 109.5l213 1004q8 38 8 57q0 82 -148 82h-26l18 86h596l-18 -86h-27q-97 0 -139 -34.5t-57 -104.5l-242 -1135h403q157 0 219 185l54 153h106l-106 -440h-1096z" /> +<glyph unicode="M" horiz-adv-x="1921" d="M-41 0l18 86h27q102 0 141.5 36t53.5 101l215 1014q8 38 8 57q0 82 -148 82h-26l18 86h465l174 -1167l670 1167h457l-19 -86h-26q-98 0 -141 -37.5t-58 -109.5l-213 -1004q-8 -38 -8 -57q0 -82 147 -82h27l-19 -86h-544l18 86h6q87 0 122 32.5t52 96.5l234 1094 l-748 -1309h-110l-199 1309l-229 -1084q-9 -43 -9 -57q0 -82 148 -82h26l-18 -86h-512z" /> +<glyph unicode="N" horiz-adv-x="1563" d="M-41 0l18 86h27q96 0 138 37.5t59 109.5l213 1004q8 38 8 57q0 82 -148 82h-26l18 86h373l496 -1130l192 905q8 38 8 57q0 82 -147 82h-27l19 86h514l-19 -86h-26q-98 0 -140.5 -37.5t-58.5 -109.5l-260 -1229h-133l-527 1200l-206 -975q-9 -43 -9 -57q0 -82 148 -82h26 l-18 -86h-512z" /> +<glyph unicode="O" horiz-adv-x="1520" d="M106 545q0 352 230 646t590 294q238 0 384 -148t146 -415q0 -351 -228 -648t-585 -297q-243 0 -390 153.5t-147 414.5zM330 487q0 -192 87 -294.5t238 -102.5q255 0 415.5 282.5t160.5 604.5q0 191 -84.5 294t-237.5 103q-256 0 -417.5 -283.5t-161.5 -603.5z" /> +<glyph unicode="P" horiz-adv-x="1270" d="M-41 0l18 86h27q96 0 139 37t58 110l213 1004q8 38 8 57q0 82 -148 82h-26l18 86h525q222 0 344 -103t122 -292q0 -233 -156.5 -365.5t-469.5 -132.5h-152l-73 -344q-9 -42 -9 -57q0 -82 148 -82h67l-18 -86h-635zM500 666h108q432 0 432 399q0 299 -299 299h-94z" /> +<glyph unicode="Q" horiz-adv-x="1520" d="M106 545q0 352 230 646t590 294q238 0 384 -148t146 -415q0 -311 -191 -598.5t-513 -337.5q9 -183 61.5 -265.5t159.5 -82.5q74 0 139 18l14 -86q-103 -33 -202 -33q-377 0 -394 451q-199 34 -311.5 183t-112.5 374zM330 487q0 -192 87 -294.5t238 -102.5 q255 0 415.5 282.5t160.5 604.5q0 191 -84.5 294t-237.5 103q-256 0 -417.5 -283.5t-161.5 -603.5z" /> +<glyph unicode="R" horiz-adv-x="1325" d="M-76 0l19 86h26q102 0 141.5 36t53.5 101l215 1014q8 38 8 57q0 82 -147 82h-27l18 86h537q469 0 469 -348q0 -338 -379 -428l148 -438q36 -105 73 -133.5t95 -28.5h16l-16 -86h-27q-176 0 -249 46.5t-116 193.5l-118 405h-203l-90 -420q-9 -42 -9 -57q0 -82 148 -82h68 l-19 -86h-635zM481 741h158q183 0 282 93.5t99 267.5q0 136 -60.5 199t-207.5 63h-140z" /> +<glyph unicode="S" horiz-adv-x="1114" d="M14 272q0 71 44.5 113.5t113.5 42.5q0 -157 83 -252.5t228 -95.5q143 0 227.5 71t84.5 193q0 97 -48.5 164t-209.5 158q-164 95 -227.5 195t-63.5 226q0 177 134 286.5t363 109.5q178 0 284 -62t106 -159q0 -142 -181 -142q0 120 -57 190t-168 70q-122 0 -200 -70 t-78 -188q0 -87 41.5 -150.5t211.5 -162.5q161 -94 232.5 -187t71.5 -212q0 -203 -142 -316.5t-395 -113.5q-209 0 -332 82.5t-123 209.5z" /> +<glyph unicode="T" horiz-adv-x="1255" d="M156 1104l86 358h1153l-66 -358h-106q10 80 10 125q0 131 -135 131h-199l-242 -1135q-8 -38 -8 -57q0 -82 148 -82h47l-19 -86h-637l19 86h47q103 0 143 35.5t54 101.5l241 1137h-196q-146 0 -205 -168l-29 -88h-106z" /> +<glyph unicode="U" horiz-adv-x="1495" d="M197 334q0 83 22 182l152 721q8 38 8 57q0 82 -148 82h-26l18 86h596l-16 -86h-27q-96 0 -140 -36.5t-61 -110.5l-153 -723q-25 -118 -25 -191q0 -213 295 -213q166 0 263 74t135 246l174 815q8 37 8 57q0 82 -148 82h-26l18 86h514l-16 -86h-27q-96 0 -140 -36.5 t-61 -110.5l-172 -811q-93 -438 -552 -438q-226 0 -345.5 92t-119.5 262z" /> +<glyph unicode="V" horiz-adv-x="1382" d="M168 1376l18 86h557l-16 -86h-47q-66 0 -107 -27.5t-41 -76.5q0 -35 5 -70l81 -665q21 -172 21 -336q76 177 166 336l364 651q39 70 39 115q0 73 -114 73h-47l16 86h506l-19 -86h-39q-69 0 -103.5 -35t-84.5 -124l-682 -1217h-149l-175 1268q-8 61 -33.5 84.5t-88.5 23.5 h-27z" /> +<glyph unicode="W" horiz-adv-x="2140" d="M182 1376l19 86h557l-19 -86h-47q-147 0 -147 -104q0 -42 4 -70l49 -655q14 -187 14 -346q86 202 168 368l430 879h148l67 -887q12 -159 12 -291q0 -35 -1 -69q90 209 153 336l326 651q39 78 39 115q0 73 -115 73h-49l16 86h500l-18 -86h-39q-66 0 -103.5 -32t-85.5 -127 l-604 -1217h-188l-92 1135l-551 -1135h-187l-106 1268q-5 55 -30 81.5t-93 26.5h-27z" /> +<glyph unicode="X" horiz-adv-x="1352" d="M-100 0l18 86h8q67 0 119.5 35t122.5 112l453 494l-220 545q-42 104 -159 104h-27l18 86h555l-18 -86h-47q-96 0 -96 -57q0 -29 37 -123l116 -299l256 295q78 90 78 133q0 51 -98 51h-6l18 86h449l-19 -86h-18q-56 0 -100.5 -30t-131.5 -123l-387 -428l246 -600 q45 -109 141 -109h27l-18 -86h-553l18 86h23q61 0 96 20.5t35 51.5q0 42 -39 141l-133 326l-306 -340q-82 -91 -82 -144q0 -55 121 -55h6l-18 -86h-485z" /> +<glyph unicode="Y" horiz-adv-x="1280" d="M158 1376l18 86h553l-18 -86h-103q-84 0 -84 -55q0 -40 27 -119l92 -274q49 -146 55 -246q20 38 154 215l195 260q75 100 75 166q0 53 -98 53h-76l19 86h506l-19 -86h-39q-39 0 -77.5 -31.5t-108.5 -123.5l-477 -625l-80 -371q-8 -37 -8 -57q0 -82 147 -82h47l-18 -86 h-637l18 86h47q103 0 143 35.5t54 101.5l80 377l-238 668q-23 65 -45.5 86.5t-77.5 21.5h-26z" /> +<glyph unicode="Z" horiz-adv-x="1239" d="M-35 0l17 82l1030 1278h-477q-151 0 -205 -168l-29 -88h-106l86 358h1011l-16 -84l-1032 -1276h547q152 0 206 168l29 88h107l-86 -358h-1082z" /> +<glyph unicode="[" horiz-adv-x="735" d="M10 -262l387 1818h457l-18 -86h-88q-96 0 -139.5 -36t-59.5 -111l-291 -1360q-8 -37 -8 -57q0 -82 147 -82h88l-18 -86h-457z" /> +<glyph unicode="\" horiz-adv-x="590" d="M231 1556h119l88 -1804h-121z" /> +<glyph unicode="]" horiz-adv-x="737" d="M-96 -262l18 86h88q96 0 139 37t58 110l291 1360q8 37 8 58q0 81 -148 81h-88l19 86h456l-387 -1818h-454z" /> +<glyph unicode="^" d="M121 545l431 917h72l431 -917h-137l-330 729l-330 -729h-137z" /> +<glyph unicode="_" horiz-adv-x="940" d="M-186 -291l26 121h959l-27 -121h-958z" /> +<glyph unicode="`" horiz-adv-x="1182" d="M565 1548l6 21h205q60 -155 137 -301l-6 -27h-78q-154 150 -264 307z" /> +<glyph unicode="a" horiz-adv-x="1186" d="M88 354q0 282 175.5 523t434.5 241q139 0 240 -74l90 52h66l-140 -656q-30 -141 -30 -227q0 -104 67 -104q58 0 148 53l37 -60q-147 -122 -289 -122q-160 0 -160 170q0 65 21 159h-13q-147 -329 -383 -329q-125 0 -194.5 98.5t-69.5 275.5zM297 346q0 -237 129 -237 q102 0 214 151t148 330l76 362q-47 74 -155 74q-175 0 -293.5 -222.5t-118.5 -457.5z" /> +<glyph unicode="b" horiz-adv-x="1151" d="M55 -6l271 1272q18 84 18 108q0 96 -143 96h-17l19 86h387l-98 -460q-21 -99 -74 -271h10q151 293 375 293q122 0 191 -94t69 -276q0 -285 -176 -526.5t-434 -241.5q-147 0 -240 73l-92 -59h-66zM285 145q62 -73 159 -73q178 0 294 227t116 451q0 239 -129 239 q-112 0 -218.5 -155.5t-133.5 -282.5z" /> +<glyph unicode="c" horiz-adv-x="997" d="M88 403q0 268 173 491.5t437 223.5q141 0 220 -56t79 -140q0 -62 -49.5 -103t-132.5 -41q0 109 -42 175.5t-116 66.5q-143 0 -249.5 -214t-106.5 -419q0 -278 225 -278q179 0 295 147q21 -13 21 -51q0 -82 -96.5 -153.5t-258.5 -71.5q-179 0 -289 113t-110 310z" /> +<glyph unicode="d" horiz-adv-x="1186" d="M88 354q0 282 175.5 523t434.5 241q115 0 201 -49q16 94 23 115l20 98q14 69 14 92q0 96 -143 96h-16l18 86h377l-238 -1116q-30 -141 -30 -227q0 -104 67 -104q58 0 148 53l37 -60q-147 -122 -289 -122q-160 0 -160 170q0 65 21 159h-13q-147 -329 -383 -329 q-125 0 -194.5 98.5t-69.5 275.5zM297 346q0 -237 129 -237q102 0 214 151t148 330l76 362q-47 74 -155 74q-175 0 -293.5 -222.5t-118.5 -457.5z" /> +<glyph unicode="e" horiz-adv-x="1010" d="M88 403q0 268 173 491.5t437 223.5q130 0 201.5 -62t71.5 -173q0 -166 -172.5 -289t-421.5 -123h-35q-18 0 -37 2q-4 -28 -4 -86q0 -278 225 -278q175 0 295 147q21 -13 21 -51q0 -82 -96.5 -153.5t-258.5 -71.5q-179 0 -289 113t-110 310zM324 567h20q181 0 298.5 88 t117.5 228q0 137 -119 137q-99 0 -185 -124.5t-132 -328.5z" /> +<glyph unicode="f" horiz-adv-x="651" d="M-287 -475l19 94q51 -14 94 -14q99 0 156 85t102 292l215 999h-186l12 74l197 43l22 112q72 367 389 367q131 0 197.5 -41.5t66.5 -110.5q0 -133 -170 -133q0 191 -104 191q-75 0 -116.5 -62t-65.5 -192l-27 -131h227l-22 -117h-230l-213 -997q-53 -247 -155 -361.5 t-289 -114.5q-58 0 -119 17z" /> +<glyph unicode="g" horiz-adv-x="1139" d="M-72 -225q0 110 89.5 187.5t244.5 107.5q-98 48 -98 141q0 63 40.5 107t153.5 102q-143 67 -143 242q0 173 130.5 314.5t344.5 141.5q131 0 211 -65q97 145 221 145q103 0 103 -94q0 -127 -121 -127q0 74 -57 74q-40 0 -101 -47q45 -64 45 -158q0 -172 -129 -315.5 t-340 -143.5q-47 0 -65 4q-146 -59 -146 -129q0 -51 105 -61l196 -21q318 -34 318 -268q0 -191 -144 -297.5t-411 -106.5q-447 0 -447 267zM94 -213q0 -178 289 -178q180 0 274.5 66.5t94.5 179.5q0 134 -191 151l-199 19h-1q-17 0 -87 -20q-74 -21 -127 -78t-53 -140z M403 653q0 -168 142 -168q117 0 188.5 116.5t71.5 254.5q0 168 -141 168q-120 0 -190.5 -117.5t-70.5 -253.5z" /> +<glyph unicode="h" horiz-adv-x="1227" d="M90 0l266 1266q19 90 19 108q0 96 -144 96h-16l18 86h377l-80 -376q-36 -168 -81 -340h22q170 276 379 276q219 0 219 -227q0 -65 -37 -225l-53 -242q-27 -123 -27 -215q0 -98 72 -98q59 0 131 47l37 -60q-134 -116 -250 -116q-85 0 -135.5 55t-50.5 149t39 277l47 212 q30 124 30 191q0 121 -94 121q-114 0 -234.5 -155.5t-152.5 -305.5l-110 -524h-191z" /> +<glyph unicode="i" horiz-adv-x="623" d="M127 1012l18 86h367l-139 -658q-31 -147 -31 -227q0 -104 68 -104q59 0 147 53l37 -60q-142 -122 -277 -122q-76 0 -123 55t-47 139q0 92 46 322l79 376q7 33 7 54q0 86 -125 86h-27zM344 1415q0 65 33.5 104.5t89.5 39.5q115 0 115 -113q0 -70 -34.5 -106.5t-88.5 -36.5 q-115 0 -115 112z" /> +<glyph unicode="j" horiz-adv-x="596" d="M-287 -475l19 94q51 -14 94 -14q103 0 161.5 91.5t98.5 287.5l188 888q7 33 7 54q0 86 -125 86h-27l18 86h367l-235 -1114q-52 -244 -155.5 -360t-291.5 -116q-58 0 -119 17zM346 1415q0 65 33.5 104.5t89.5 39.5q115 0 115 -113q0 -70 -34.5 -106.5t-88.5 -36.5 q-115 0 -115 112z" /> +<glyph unicode="k" horiz-adv-x="1165" d="M90 0l266 1266q19 90 19 108q0 96 -144 96h-16l18 86h377l-80 -376q-110 -517 -159 -674l323 280q151 131 151 193q0 31 -91 31l18 86h453l-19 -86q-119 0 -329 -191l-185 -170l187 -405q79 -172 208 -172l-18 -86q-170 0 -250 39.5t-135 171.5l-133 327l-186 -118 l-84 -406h-191z" /> +<glyph unicode="l" horiz-adv-x="623" d="M150 174q0 97 45 322l167 786q13 61 13 92q0 96 -144 96h-24l18 86h387l-237 -1116q-31 -146 -31 -227q0 -104 68 -104q59 0 147 53l37 -60q-142 -122 -277 -122q-74 0 -121.5 54t-47.5 140z" /> +<glyph unicode="m" horiz-adv-x="1835" d="M90 0l172 823q12 57 12 92q0 97 -143 97h-16l18 86h379l-55 -258h20q166 276 373 276q219 0 219 -227q0 -25 -4 -49h20q167 276 373 276q219 0 219 -227q0 -65 -37 -225l-53 -242q-26 -119 -26 -215q0 -98 71 -98q59 0 131 47l37 -60q-130 -116 -250 -116q-84 0 -135 55 t-51 149t39 277l35 160q43 197 43 243q0 121 -95 121q-105 0 -217 -134.5t-157 -281.5l-33 -147q-13 -56 -36 -219t-23 -203h-195q0 46 26 212.5t44 248.5l47 212q30 124 30 191q0 121 -94 121q-114 0 -234.5 -155.5t-152.5 -305.5l-110 -524h-191z" /> +<glyph unicode="n" horiz-adv-x="1227" d="M90 0l172 823q12 57 12 92q0 97 -143 97h-16l18 86h379l-55 -258h20q166 276 373 276q219 0 219 -227q0 -65 -37 -225l-53 -242q-27 -123 -27 -215q0 -98 72 -98q59 0 131 47l37 -60q-134 -116 -250 -116q-85 0 -135.5 55t-50.5 149t39 277l47 212q30 124 30 191 q0 121 -94 121q-114 0 -233.5 -154t-153.5 -307l-110 -524h-191z" /> +<glyph unicode="o" horiz-adv-x="1176" d="M88 403q0 276 168.5 495.5t441.5 219.5q181 0 285 -109t104 -315q0 -273 -167 -493.5t-439 -220.5q-185 0 -289 112t-104 311zM301 362q0 -282 203 -282q169 0 269.5 200.5t100.5 444.5q0 285 -200 285q-167 0 -270 -201t-103 -447z" /> +<glyph unicode="p" horiz-adv-x="1182" d="M-14 -492l272 1299q18 86 18 108q0 97 -143 97h-16l18 86h363l-49 -273h10q148 293 375 293q125 0 192.5 -95t67.5 -275q0 -275 -171.5 -521.5t-439.5 -246.5q-117 0 -200 47q-9 -66 -17 -99l-28 -125q-19 -85 -19 -114q0 -95 143 -95h27l-18 -86h-385zM315 145 q66 -73 162 -73q171 0 289.5 223.5t118.5 454.5q0 239 -129 239q-106 0 -214 -147.5t-143 -306.5z" /> +<glyph unicode="q" horiz-adv-x="1147" d="M88 354q0 282 175.5 523t434.5 241q128 0 228 -55l50 28q48 27 52 27h72l-283 -1335q-12 -57 -12 -92q0 -97 141 -97h17l-19 -86h-373l86 410q8 39 91 391h-13q-149 -329 -383 -329q-124 0 -194 98.5t-70 275.5zM297 344q0 -235 129 -235q101 0 212 148.5t150 332.5 l76 362q-45 74 -155 74q-177 0 -294.5 -226t-117.5 -456z" /> +<glyph unicode="r" horiz-adv-x="958" d="M90 0l172 823q12 57 12 92q0 97 -163 97h-17l19 86h362l-43 -295h21q82 183 162 249t186 66q168 0 168 -141q0 -156 -170 -156q0 162 -82 162q-95 0 -201.5 -187t-157.5 -423l-77 -373h-191z" /> +<glyph unicode="s" horiz-adv-x="950" d="M51 211q0 66 36.5 100.5t92.5 34.5q0 -127 61.5 -197.5t172.5 -70.5q221 0 221 190q0 73 -47 123.5t-160 102.5q-147 70 -197.5 144.5t-50.5 172.5q0 134 109.5 219.5t285.5 85.5q151 0 235.5 -56t84.5 -138q0 -127 -154 -127q0 103 -48.5 165t-135.5 62 q-92 0 -145.5 -49.5t-53.5 -126.5q0 -68 51 -116t158 -95q246 -110 246 -318q0 -151 -116 -244t-308 -93q-155 0 -246.5 62.5t-91.5 168.5z" /> +<glyph unicode="t" horiz-adv-x="754" d="M141 981l19 82q200 0 313 287h94l-53 -252h248l-25 -117h-248l-124 -584q-25 -118 -25 -176q0 -112 109 -112q83 0 167 45l35 -76q-138 -98 -276 -98q-223 0 -223 239q0 77 20 172l125 590h-156z" /> +<glyph unicode="u" horiz-adv-x="1227" d="M117 1012l18 86h381l-135 -613q-41 -186 -41 -247q0 -125 100 -125q105 0 226.5 151.5t158.5 323.5l107 510h198l-141 -658q-31 -145 -31 -227q0 -104 68 -104q58 0 131 45l37 -60q-130 -114 -260 -114q-77 0 -124.5 55t-47.5 139q0 53 10 121h-16q-111 -183 -198.5 -248 t-197.5 -65q-219 0 -219 227q0 65 37 225l80 359q18 81 18 122q0 97 -143 97h-16z" /> +<glyph unicode="v" horiz-adv-x="1102" d="M35 1012l16 86h307l95 -606q36 -232 47 -363h6q153 147 265 343.5t112 315.5q0 72 -35 114t-92 42q0 74 40 119t99 45q139 0 139 -190q0 -186 -141.5 -435.5t-368.5 -480.5l-184 -20l-143 921q-17 109 -142 109h-20z" /> +<glyph unicode="w" horiz-adv-x="1677" d="M76 1012l28 86h308q6 -432 6 -934h8q267 469 457 915l170 8q43 -539 43 -937h14q167 205 276 405.5t109 318.5q0 94 -88 123q18 121 121 121q108 0 108 -153q0 -295 -514 -963l-202 -22l-31 886q-93 -221 -432 -860l-211 -24l-15 882q-1 72 -28.5 110t-106.5 38h-20z" /> +<glyph unicode="x" horiz-adv-x="1118" d="M-41 0l23 86h26q56 0 97.5 25.5t115.5 115.5l262 318l-133 319q-39 95 -64.5 121.5t-82.5 26.5h-27l17 86h272l156 -414l272 414h262l-33 -86h-26q-60 0 -100.5 -29t-112.5 -119l-215 -276l141 -355q36 -92 61.5 -119.5t85.5 -27.5h27l-16 -86h-275l-166 451l-307 -451 h-260z" /> +<glyph unicode="y" horiz-adv-x="1081" d="M-332 -455l31 103q72 -23 160 -23q293 0 575 373l-270 905q-18 60 -49 84.5t-92 24.5h-21l16 86h299l160 -553q74 -257 86 -371h6q277 421 277 680q0 111 -101 111q0 69 40 110t94 41q139 0 139 -172q0 -247 -276 -694.5t-442.5 -594.5t-438.5 -147q-108 0 -193 37z" /> +<glyph unicode="z" horiz-adv-x="1047" d="M-2 0l16 82l697 899h-260q-71 0 -109.5 -34t-83.5 -132l-4 -8h-86l82 291h717l-17 -84l-698 -897h364q49 0 89.5 31t85.5 137l20 47h86l-80 -332h-819z" /> +<glyph unicode="{" horiz-adv-x="877" d="M139 606v86q242 5 242 215v357q0 292 295 292h135v-88h-61q-168 0 -168 -215v-350q0 -214 -228 -252v-2q228 -39 228 -254v-354q0 -215 168 -215h61v-88h-135q-139 0 -217 77t-78 218v356q0 210 -242 217z" /> +<glyph unicode="|" d="M526 -492v2048h123v-2048h-123z" /> +<glyph unicode="}" horiz-adv-x="877" d="M129 -174h61q168 0 168 215v354q0 215 228 254v2q-228 38 -228 252v350q0 215 -168 215h-61v88h135q295 0 295 -292v-357q0 -210 242 -215v-86q-242 -7 -242 -217v-356q0 -141 -78 -218t-217 -77h-135v88z" /> +<glyph unicode="~" horiz-adv-x="1149" d="M129 551q28 358 258 358q94 0 248 -135q107 -102 168 -102q57 0 84 62t41 175h123q-39 -358 -258 -358q-97 0 -238 129q-118 108 -176 108q-60 0 -89 -58.5t-40 -178.5h-121z" /> +<glyph unicode="¡" horiz-adv-x="682" d="M23 -367l294 1051h95l-152 -1051h-237zM285 954q0 74 36.5 116t98.5 42q127 0 127 -125q0 -71 -36.5 -114.5t-98.5 -43.5q-127 0 -127 125z" /> +<glyph unicode="¢" d="M172 600q0 249 155 468.5t406 244.5l33 149h102l-32 -151q116 -11 180.5 -64.5t64.5 -128.5q0 -62 -49.5 -102.5t-132.5 -40.5q0 166 -88 221l-188 -891q169 6 282 148q21 -15 21 -52q0 -79 -88 -149t-242 -76l-37 -176h-102l39 182q-156 26 -240 136t-84 282zM385 584 q0 -214 139 -265l189 893q-138 -25 -233 -232t-95 -396z" /> +<glyph unicode="£" d="M-2 80l72 41q295 168 295 442q0 50 -15 127h-227l22 103h189q-27 126 -27 206q0 226 135.5 355t364.5 129q155 0 247.5 -56t92.5 -145q0 -162 -170 -162q0 260 -201 260q-139 0 -214 -96.5t-75 -271.5q0 -80 29 -219h348l-22 -103h-312q7 -44 7 -108q0 -237 -258 -389 l2 -9q84 37 157 37q60 0 179 -39q118 -39 159 -39q114 0 205 93l55 -68q-185 -188 -348 -188q-65 0 -189 46t-198 46q-114 0 -238 -60l-28 -14z" /> +<glyph unicode="¤" d="M147 379l134 135q-68 99 -68 219q0 124 70 219l-136 135l86 87l134 -136q99 72 221 72q116 0 217 -72l137 138l86 -89l-135 -135q72 -99 72 -219t-72 -219l135 -135l-84 -86l-137 135q-104 -70 -219 -70q-124 0 -219 70l-136 -135zM328 733q0 -107 76.5 -184.5 t183.5 -77.5q108 0 185 77.5t77 184.5q0 110 -76 187t-186 77q-108 0 -184 -77t-76 -187z" /> +<glyph unicode="¥" horiz-adv-x="1104" d="M121 0l18 86h47q104 0 144 36t53 101l29 139h-287l20 97h287l31 143h-287l21 96h247l-157 570q-16 58 -39 83t-84 25h-6l18 86h479l-18 -86h-4q-69 0 -105 -13t-36 -56t24 -131l53 -220q35 -146 43 -249q22 39 107 167l170 250q92 135 92 193q0 59 -111 59h-6l19 86h417 l-18 -86h-18q-46 0 -78 -23.5t-111 -135.5l-360 -519h254l-21 -96h-286l-31 -143h287l-21 -97h-287l-28 -137q-9 -44 -9 -57q0 -82 148 -82h47l-18 -86h-629z" /> +<glyph unicode="¦" d="M526 328h123v-820h-123v820zM526 737v819h123v-819h-123z" /> +<glyph unicode="§" horiz-adv-x="1114" d="M41 -4q0 65 36.5 100t92.5 35q0 -120 67 -193t183 -73q125 0 202.5 66.5t77.5 174.5q0 65 -51.5 125t-240.5 162q-228 124 -228 330q0 166 180 278q-49 83 -49 185q0 168 123 269t314 101q143 0 233 -60t90 -144q0 -74 -37 -108t-129 -34q0 115 -49.5 182.5t-144.5 67.5 q-100 0 -171 -56t-71 -153q0 -80 41.5 -133.5t228.5 -154.5q250 -134 250 -318q0 -172 -178 -309q41 -76 41 -152q0 -183 -127 -301.5t-336 -118.5q-157 0 -252.5 63.5t-95.5 168.5zM324 799q0 -76 50 -130t187 -130q121 -67 199 -138q76 83 76 156q0 123 -211 238 q-145 79 -219 149q-82 -60 -82 -145z" /> +<glyph unicode="¨" horiz-adv-x="1182" d="M412 1397q0 129 110 129q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103zM801 1397q0 129 110 129q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103z" /> +<glyph unicode="©" horiz-adv-x="1731" d="M129 731q0 311 221 532.5t531 221.5q309 0 531 -221.5t222 -532.5q0 -309 -221 -530t-532 -221q-312 0 -532 221t-220 530zM242 731q0 -262 187 -450.5t452 -188.5q264 0 452.5 188t188.5 451q0 264 -188.5 452.5t-452.5 188.5q-265 0 -452 -189t-187 -452zM481 733 q0 210 117 331.5t322 121.5q132 0 206 -40t74 -106q0 -43 -39 -69.5t-100 -26.5q0 156 -146 156q-266 0 -266 -367q0 -177 69 -272.5t200 -95.5q170 0 251 139q29 -21 29 -64q0 -64 -83.5 -114t-223.5 -50q-194 0 -302 120t-108 337z" /> +<glyph unicode="ª" horiz-adv-x="805" d="M123 1008q0 166 119.5 312t300.5 146q98 0 164 -43l63 29h45l-96 -379q-21 -83 -21 -131q0 -61 41 -61q35 0 88 32l23 -39q-93 -92 -178 -92q-113 0 -113 103q0 57 14 110h-8q-107 -213 -262 -213q-86 0 -133 60t-47 166zM301 1012q0 -133 70 -133q54 0 115.5 85.5 t88.5 182.5l54 203q-29 41 -90 41q-102 0 -170 -125.5t-68 -253.5z" /> +<glyph unicode="«" horiz-adv-x="1053" d="M125 520l14 66l389 356h103l-295 -399l129 -379h-103zM496 520l14 66l389 356h102l-294 -399l129 -379h-103z" /> +<glyph unicode="¬" d="M150 672v121h878v-541h-123v420h-755z" /> +<glyph unicode="­" horiz-adv-x="635" d="M29 481l32 154h533l-33 -154h-532z" /> +<glyph unicode="®" horiz-adv-x="1731" d="M129 731q0 311 221 532.5t531 221.5q309 0 531 -221.5t222 -532.5q0 -309 -221 -530t-532 -221q-312 0 -532 221t-220 530zM242 731q0 -262 187 -450.5t452 -188.5q264 0 452.5 188t188.5 451q0 264 -188.5 452.5t-452.5 188.5q-265 0 -452 -189t-187 -452zM494 289v69 h26q101 0 101 72v600q0 72 -101 72h-26v72h368q352 0 352 -244q0 -164 -186 -225l182 -293q20 -33 40.5 -43.5t74.5 -10.5v-69h-217l-225 381h-109v-240q0 -72 100 -72h29v-69h-409zM774 748h86q103 0 148 40t45 140q0 91 -46 128.5t-153 37.5h-80v-346z" /> +<glyph unicode="¯" horiz-adv-x="940" d="M-10 1556v121h960v-121h-960z" /> +<glyph unicode="°" horiz-adv-x="819" d="M172 1151q0 130 91.5 220.5t217.5 90.5q128 0 220 -91t92 -220q0 -127 -91 -218t-221 -91q-128 0 -218.5 90.5t-90.5 218.5zM295 1151q0 -78 55.5 -133t130.5 -55q79 0 134 55t55 133q0 80 -55.5 135t-133.5 55q-75 0 -130.5 -54.5t-55.5 -135.5z" /> +<glyph unicode="±" d="M150 0v121h878v-121h-878zM150 672v121h376v378h123v-378h379v-121h-379v-379h-123v379h-376z" /> +<glyph unicode="²" horiz-adv-x="819" d="M41 586l10 61l318 262q111 91 166 175.5t55 197.5q0 119 -103 119q-62 0 -107.5 -53.5t-57.5 -141.5q-62 0 -97 27.5t-35 71.5q0 77 84.5 127.5t227.5 50.5q124 0 196 -54t72 -141q0 -97 -62.5 -181t-220.5 -210l-245 -195h282q77 0 109 84l16 43h70l-57 -243h-621z" /> +<glyph unicode="³" horiz-adv-x="819" d="M80 731q0 111 117 111q0 -75 45 -125.5t120 -50.5q195 0 195 182q0 69 -49 111t-137 42h-68l16 84h68q97 0 162 62t65 158t-94 96q-136 0 -172 -178q-135 0 -135 86q0 73 84.5 123.5t228.5 50.5q131 0 204 -51t73 -136q0 -189 -262 -241l-2 -11q206 -27 206 -188 q0 -133 -107.5 -208t-289.5 -75q-130 0 -199 43t-69 115z" /> +<glyph unicode="´" horiz-adv-x="1182" d="M502 1241l6 27q117 135 219 301h219l-6 -21q-157 -183 -356 -307h-82z" /> +<glyph unicode="µ" horiz-adv-x="1237" d="M-4 -344q0 91 61 310q87 314 125 495l135 637h193l-135 -641q-23 -109 -23 -189q0 -157 150 -157q106 0 188 90t113 241l139 656h193l-164 -766q-25 -117 -25 -158q0 -65 60 -65q44 0 112 34l35 -69q-136 -94 -238 -94q-145 0 -153 196h-10q-133 -196 -297 -196 q-169 0 -232 120q-33 -170 -33 -247q0 -149 113 -166q-19 -179 -174 -179q-133 0 -133 148z" /> +<glyph unicode="¶" horiz-adv-x="1264" d="M98 1192q0 364 318 364h780v-86h-27q-98 0 -133 -37.5t-35 -109.5v-1317q0 -72 35 -109.5t133 -37.5h27v-86h-319v1679h-195v-1679h-320v86h27q99 0 133.5 38t34.5 109v785h-145q-314 0 -314 401z" /> +<glyph unicode="·" horiz-adv-x="586" d="M188 713q0 71 36.5 114t98.5 43q127 0 127 -125q0 -73 -36.5 -115t-98.5 -42q-127 0 -127 125z" /> +<glyph unicode="¸" horiz-adv-x="682" d="M72 -469l22 104q70 -16 137 -16q152 0 152 125q0 102 -131 115l78 159h96l-39 -88q74 -10 119 -58t45 -112q0 -119 -86.5 -185.5t-239.5 -66.5q-79 0 -153 23z" /> +<glyph unicode="¹" horiz-adv-x="819" d="M135 588l15 69h94q85 0 100 78l125 590h-190l14 70h102q143 0 187 78h102l-143 -678q-15 -71 -15 -86q0 -52 72 -52h94l-14 -69h-543z" /> +<glyph unicode="º" horiz-adv-x="813" d="M137 1036q0 162 117 297t303 135q130 0 204.5 -66.5t74.5 -184.5q0 -164 -115 -300.5t-301 -136.5q-133 0 -208 68.5t-75 187.5zM317 1014q0 -152 103 -152q99 0 161 118.5t62 260.5q0 145 -100 145q-98 0 -162 -119t-64 -253z" /> +<glyph unicode="»" horiz-adv-x="1053" d="M49 164l299 399l-133 379h102l238 -356l-14 -66l-389 -356h-103zM420 164l299 399l-133 379h102l238 -356l-15 -66l-389 -356h-102z" /> +<glyph unicode="¼" horiz-adv-x="1720" d="M27 588l15 69h94q85 0 100 78l125 590h-190l14 70h102q143 0 187 78h102l-143 -678q-15 -71 -15 -86q0 -52 72 -52h94l-14 -69h-543zM277 0l1032 1462h139l-1028 -1462h-143zM892 261l11 70l501 555h164l-112 -537h196l-18 -88h-197l-18 -84q-8 -37 -8 -55q0 -52 71 -52 h41l-14 -69h-451l15 69h57q85 0 100 78l25 113h-363zM1030 349h243l50 223q25 113 41 160l-43 -59z" /> +<glyph unicode="½" horiz-adv-x="1720" d="M27 588l15 69h94q85 0 100 78l125 590h-190l14 70h102q143 0 187 78h102l-143 -678q-15 -71 -15 -86q0 -52 72 -52h94l-14 -69h-543zM256 0l1032 1462h139l-1028 -1462h-143zM922 1l10 61l318 262q111 91 166 175.5t55 197.5q0 119 -103 119q-62 0 -107.5 -53.5 t-57.5 -141.5q-62 0 -97 27.5t-35 71.5q0 77 84.5 127.5t227.5 50.5q124 0 196 -54t72 -141q0 -97 -62.5 -181t-220.5 -210l-245 -195h282q77 0 109 84l16 43h70l-57 -243h-621z" /> +<glyph unicode="¾" horiz-adv-x="1720" d="M38 731q0 111 117 111q0 -75 45 -125.5t120 -50.5q195 0 195 182q0 69 -49 111t-137 42h-68l16 84h68q97 0 162 62t65 158t-94 96q-136 0 -172 -178q-135 0 -135 86q0 73 84.5 123.5t228.5 50.5q131 0 204 -51t73 -136q0 -189 -262 -241l-2 -11q206 -27 206 -188 q0 -133 -107.5 -208t-289.5 -75q-130 0 -199 43t-69 115zM332 0l1032 1462h139l-1028 -1462h-143zM913 261l11 70l501 555h164l-112 -537h196l-18 -88h-197l-18 -84q-8 -37 -8 -55q0 -52 71 -52h41l-14 -69h-451l15 69h57q85 0 100 78l25 113h-363zM1051 349h243l50 223 q25 113 41 160l-43 -59z" /> +<glyph unicode="¿" horiz-adv-x="1024" d="M2 -49q0 311 504 493l51 238h125l-64 -303q-415 -152 -415 -445q0 -100 54 -160.5t144 -60.5q212 0 254 291q148 0 148 -123q0 -113 -114.5 -191.5t-299.5 -78.5q-387 0 -387 340zM530 952q0 75 37 116.5t99 41.5q127 0 127 -125q0 -71 -37 -114.5t-99 -43.5 q-60 0 -93.5 34.5t-33.5 90.5z" /> +<glyph unicode="À" horiz-adv-x="1444" d="M-115 0l17 86h39q55 0 92 28.5t98 131.5l713 1216h160l194 -1267q10 -64 35 -86.5t86 -22.5h27l-17 -86h-557l16 86h48q147 0 147 104q0 42 -4 70l-33 229h-538l-123 -215q-39 -68 -39 -114q0 -74 114 -74h48l-17 -86h-506zM469 592h463l-51 358q-31 218 -33 324 q-47 -111 -160 -305zM659 1886l6 21h205q60 -155 137 -301l-6 -27h-78q-154 150 -264 307z" /> +<glyph unicode="Á" horiz-adv-x="1444" d="M-115 0l17 86h39q55 0 92 28.5t98 131.5l713 1216h160l194 -1267q10 -64 35 -86.5t86 -22.5h27l-17 -86h-557l16 86h48q147 0 147 104q0 42 -4 70l-33 229h-538l-123 -215q-39 -68 -39 -114q0 -74 114 -74h48l-17 -86h-506zM469 592h463l-51 358q-31 218 -33 324 q-47 -111 -160 -305zM832 1579l6 27q117 135 219 301h219l-6 -21q-157 -183 -356 -307h-82z" /> +<glyph unicode="Â" horiz-adv-x="1444" d="M-115 0l17 86h39q55 0 92 28.5t98 131.5l713 1216h160l194 -1267q10 -64 35 -86.5t86 -22.5h27l-17 -86h-557l16 86h48q147 0 147 104q0 42 -4 70l-33 229h-538l-123 -215q-39 -68 -39 -114q0 -74 114 -74h48l-17 -86h-506zM469 592h463l-51 358q-31 218 -33 324 q-47 -111 -160 -305zM611 1579l6 27q186 183 270 301h195q29 -117 139 -301l-6 -27h-72q-95 65 -182 184q-150 -127 -262 -184h-88z" /> +<glyph unicode="Ã" horiz-adv-x="1444" d="M-115 0l17 86h39q55 0 92 28.5t98 131.5l713 1216h160l194 -1267q10 -64 35 -86.5t86 -22.5h27l-17 -86h-557l16 86h48q147 0 147 104q0 42 -4 70l-33 229h-538l-123 -215q-39 -68 -39 -114q0 -74 114 -74h48l-17 -86h-506zM469 592h463l-51 358q-31 218 -33 324 q-47 -111 -160 -305zM545 1600q72 241 268 241q82 0 169 -64q87 -65 124 -65q89 0 123 109h92q-72 -242 -266 -242q-81 0 -169 65q-89 64 -126 64q-88 0 -123 -108h-92z" /> +<glyph unicode="Ä" horiz-adv-x="1444" d="M-115 0l17 86h39q55 0 92 28.5t98 131.5l713 1216h160l194 -1267q10 -64 35 -86.5t86 -22.5h27l-17 -86h-557l16 86h48q147 0 147 104q0 42 -4 70l-33 229h-538l-123 -215q-39 -68 -39 -114q0 -74 114 -74h48l-17 -86h-506zM469 592h463l-51 358q-31 218 -33 324 q-47 -111 -160 -305zM654 1735q0 129 110 129q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103zM1043 1735q0 129 110 129q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103z" /> +<glyph unicode="Å" horiz-adv-x="1444" d="M-115 0l17 86h39q55 0 92 28.5t98 131.5l713 1216h160l194 -1267q10 -64 35 -86.5t86 -22.5h27l-17 -86h-557l16 86h48q147 0 147 104q0 42 -4 70l-33 229h-538l-123 -215q-39 -68 -39 -114q0 -74 114 -74h48l-17 -86h-506zM469 592h463l-51 358q-31 218 -33 324 q-47 -111 -160 -305zM668 1585q0 104 69 163.5t177 59.5t177 -59.5t69 -163.5q0 -105 -69.5 -164t-176.5 -59t-176.5 59t-69.5 164zM779 1585q0 -123 135 -123t135 123t-135 123t-135 -123z" /> +<glyph unicode="Æ" horiz-adv-x="1948" d="M-127 0l29 86h39q54 0 94.5 28t116.5 132l815 1118l-174 12l18 86h1159l-65 -358h-107q10 70 10 119q0 137 -145 137h-344l-117 -545h494l-21 -100h-493l-131 -613h395q172 0 231 168l33 88h107l-91 -358h-1097l16 86h27q103 0 144 35.5t54 101.5l56 266h-463l-154 -215 q-55 -77 -55 -120q0 -68 104 -68h48l-29 -86h-504zM539 592h409l162 768h-39q-97 -168 -260 -391z" /> +<glyph unicode="Ç" horiz-adv-x="1284" d="M106 528q0 388 242 671.5t602 283.5q179 0 279 -61.5t100 -166.5q0 -73 -55 -116t-146 -43q0 278 -204 278q-253 0 -423.5 -275.5t-170.5 -602.5q0 -383 364 -383q237 0 379 186q27 -19 27 -68q0 -98 -114 -174.5t-314 -76.5q-267 0 -416.5 143t-149.5 405zM334 -469 l22 104q70 -16 137 -16q152 0 152 125q0 102 -131 115l78 159h96l-39 -88q74 -10 119 -58t45 -112q0 -119 -86.5 -185.5t-239.5 -66.5q-79 0 -153 23z" /> +<glyph unicode="È" horiz-adv-x="1276" d="M-43 0l16 86h27q104 0 144.5 36.5t54.5 100.5l213 1006q6 28 6 49q0 48 -28 73t-116 25h-26l18 86h1032l-65 -358h-107l6 63q5 48 5 56q0 137 -146 137h-344l-117 -545h494l-20 -100h-494l-131 -613h395q173 0 232 168l32 88h107l-90 -358h-1098zM585 1886l6 21h205 q60 -155 137 -301l-6 -27h-78q-154 150 -264 307z" /> +<glyph unicode="É" horiz-adv-x="1276" d="M-43 0l16 86h27q104 0 144.5 36.5t54.5 100.5l213 1006q6 28 6 49q0 48 -28 73t-116 25h-26l18 86h1032l-65 -358h-107l6 63q5 48 5 56q0 137 -146 137h-344l-117 -545h494l-20 -100h-494l-131 -613h395q173 0 232 168l32 88h107l-90 -358h-1098zM719 1579l6 27 q117 135 219 301h219l-6 -21q-157 -183 -356 -307h-82z" /> +<glyph unicode="Ê" horiz-adv-x="1276" d="M-43 0l16 86h27q104 0 144.5 36.5t54.5 100.5l213 1006q6 28 6 49q0 48 -28 73t-116 25h-26l18 86h1032l-65 -358h-107l6 63q5 48 5 56q0 137 -146 137h-344l-117 -545h494l-20 -100h-494l-131 -613h395q173 0 232 168l32 88h107l-90 -358h-1098zM545 1579l6 27 q186 183 270 301h195q29 -117 139 -301l-6 -27h-72q-95 65 -182 184q-150 -127 -262 -184h-88z" /> +<glyph unicode="Ë" horiz-adv-x="1276" d="M-43 0l16 86h27q104 0 144.5 36.5t54.5 100.5l213 1006q6 28 6 49q0 48 -28 73t-116 25h-26l18 86h1032l-65 -358h-107l6 63q5 48 5 56q0 137 -146 137h-344l-117 -545h494l-20 -100h-494l-131 -613h395q173 0 232 168l32 88h107l-90 -358h-1098zM541 1735q0 129 110 129 q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103zM930 1735q0 129 110 129q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103z" /> +<glyph unicode="Ì" horiz-adv-x="752" d="M-43 0l16 86h27q170 0 201 147l213 1004q8 38 8 57q0 82 -148 82h-26l18 86h596l-18 -86h-27q-98 0 -141 -37t-58 -110l-212 -1004q-9 -43 -9 -57q0 -82 148 -82h26l-18 -86h-596zM343 1886l6 21h205q60 -155 137 -301l-6 -27h-78q-154 150 -264 307z" /> +<glyph unicode="Í" horiz-adv-x="752" d="M-43 0l16 86h27q170 0 201 147l213 1004q8 38 8 57q0 82 -148 82h-26l18 86h596l-18 -86h-27q-98 0 -141 -37t-58 -110l-212 -1004q-9 -43 -9 -57q0 -82 148 -82h26l-18 -86h-596zM470 1579l6 27q117 135 219 301h219l-6 -21q-157 -183 -356 -307h-82z" /> +<glyph unicode="Î" horiz-adv-x="752" d="M-43 0l16 86h27q170 0 201 147l213 1004q8 38 8 57q0 82 -148 82h-26l18 86h596l-18 -86h-27q-98 0 -141 -37t-58 -110l-212 -1004q-9 -43 -9 -57q0 -82 148 -82h26l-18 -86h-596zM274 1579l6 27q186 183 270 301h195q29 -117 139 -301l-6 -27h-72q-95 65 -182 184 q-150 -127 -262 -184h-88z" /> +<glyph unicode="Ï" horiz-adv-x="752" d="M-43 0l16 86h27q170 0 201 147l213 1004q8 38 8 57q0 82 -148 82h-26l18 86h596l-18 -86h-27q-98 0 -141 -37t-58 -110l-212 -1004q-9 -43 -9 -57q0 -82 148 -82h26l-18 -86h-596zM302 1735q0 129 110 129q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103zM691 1735 q0 129 110 129q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103z" /> +<glyph unicode="Ð" horiz-adv-x="1530" d="M-43 0l16 86h27q170 0 201 147l102 482h-199l23 100h197l90 422q8 38 8 57q0 82 -148 82h-26l18 86h615q279 0 430 -144.5t151 -412.5q0 -392 -223 -648.5t-596 -256.5h-686zM379 104h219q294 0 467.5 226t173.5 598q0 432 -389 432h-203l-117 -545h388l-23 -100h-387z " /> +<glyph unicode="Ñ" horiz-adv-x="1563" d="M-41 0l18 86h27q96 0 138 37.5t59 109.5l213 1004q8 38 8 57q0 82 -148 82h-26l18 86h373l496 -1130l192 905q8 38 8 57q0 82 -147 82h-27l19 86h514l-19 -86h-26q-98 0 -140.5 -37.5t-58.5 -109.5l-260 -1229h-133l-527 1200l-206 -975q-9 -43 -9 -57q0 -82 148 -82h26 l-18 -86h-512zM663 1600q72 241 268 241q82 0 169 -64q87 -65 124 -65q89 0 123 109h92q-72 -242 -266 -242q-81 0 -169 65q-89 64 -126 64q-88 0 -123 -108h-92z" /> +<glyph unicode="Ò" horiz-adv-x="1520" d="M106 545q0 352 230 646t590 294q238 0 384 -148t146 -415q0 -351 -228 -648t-585 -297q-243 0 -390 153.5t-147 414.5zM330 487q0 -192 87 -294.5t238 -102.5q255 0 415.5 282.5t160.5 604.5q0 191 -84.5 294t-237.5 103q-256 0 -417.5 -283.5t-161.5 -603.5zM758 1886 l6 21h205q60 -155 137 -301l-6 -27h-78q-154 150 -264 307z" /> +<glyph unicode="Ó" horiz-adv-x="1520" d="M106 545q0 352 230 646t590 294q238 0 384 -148t146 -415q0 -351 -228 -648t-585 -297q-243 0 -390 153.5t-147 414.5zM330 487q0 -192 87 -294.5t238 -102.5q255 0 415.5 282.5t160.5 604.5q0 191 -84.5 294t-237.5 103q-256 0 -417.5 -283.5t-161.5 -603.5zM821 1579 l6 27q117 135 219 301h219l-6 -21q-157 -183 -356 -307h-82z" /> +<glyph unicode="Ô" horiz-adv-x="1520" d="M106 545q0 352 230 646t590 294q238 0 384 -148t146 -415q0 -351 -228 -648t-585 -297q-243 0 -390 153.5t-147 414.5zM330 487q0 -192 87 -294.5t238 -102.5q255 0 415.5 282.5t160.5 604.5q0 191 -84.5 294t-237.5 103q-256 0 -417.5 -283.5t-161.5 -603.5zM633 1579 l6 27q186 183 270 301h195q29 -117 139 -301l-6 -27h-72q-95 65 -182 184q-150 -127 -262 -184h-88z" /> +<glyph unicode="Õ" horiz-adv-x="1520" d="M106 545q0 352 230 646t590 294q238 0 384 -148t146 -415q0 -351 -228 -648t-585 -297q-243 0 -390 153.5t-147 414.5zM330 487q0 -192 87 -294.5t238 -102.5q255 0 415.5 282.5t160.5 604.5q0 191 -84.5 294t-237.5 103q-256 0 -417.5 -283.5t-161.5 -603.5zM588 1600 q72 241 268 241q82 0 169 -64q87 -65 124 -65q89 0 123 109h92q-72 -242 -266 -242q-81 0 -169 65q-89 64 -126 64q-88 0 -123 -108h-92z" /> +<glyph unicode="Ö" horiz-adv-x="1520" d="M106 545q0 352 230 646t590 294q238 0 384 -148t146 -415q0 -351 -228 -648t-585 -297q-243 0 -390 153.5t-147 414.5zM330 487q0 -192 87 -294.5t238 -102.5q255 0 415.5 282.5t160.5 604.5q0 191 -84.5 294t-237.5 103q-256 0 -417.5 -283.5t-161.5 -603.5zM678 1735 q0 129 110 129q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103zM1067 1735q0 129 110 129q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103z" /> +<glyph unicode="×" d="M145 395l340 340l-340 338l86 86l340 -340l340 342l86 -88l-340 -340l340 -340l-86 -86l-340 340l-340 -340z" /> +<glyph unicode="Ø" horiz-adv-x="1520" d="M106 545q0 352 230 646t590 294q165 0 291 -76l106 137h119l-150 -194q164 -152 164 -430q0 -351 -228 -648t-585 -297q-165 0 -289 74l-96 -133h-121l137 191q-168 156 -168 436zM330 487q0 -139 49 -237l751 1038q-84 86 -221 86q-256 0 -417.5 -283.5t-161.5 -603.5z M438 168q86 -78 217 -78q255 0 415.5 282.5t160.5 604.5q0 129 -43 227z" /> +<glyph unicode="Ù" horiz-adv-x="1495" d="M197 334q0 83 22 182l152 721q8 38 8 57q0 82 -148 82h-26l18 86h596l-16 -86h-27q-96 0 -140 -36.5t-61 -110.5l-153 -723q-25 -118 -25 -191q0 -213 295 -213q166 0 263 74t135 246l174 815q8 37 8 57q0 82 -148 82h-26l18 86h514l-16 -86h-27q-96 0 -140 -36.5 t-61 -110.5l-172 -811q-93 -438 -552 -438q-226 0 -345.5 92t-119.5 262zM717 1886l6 21h205q60 -155 137 -301l-6 -27h-78q-154 150 -264 307z" /> +<glyph unicode="Ú" horiz-adv-x="1495" d="M197 334q0 83 22 182l152 721q8 38 8 57q0 82 -148 82h-26l18 86h596l-16 -86h-27q-96 0 -140 -36.5t-61 -110.5l-153 -723q-25 -118 -25 -191q0 -213 295 -213q166 0 263 74t135 246l174 815q8 37 8 57q0 82 -148 82h-26l18 86h514l-16 -86h-27q-96 0 -140 -36.5 t-61 -110.5l-172 -811q-93 -438 -552 -438q-226 0 -345.5 92t-119.5 262zM858 1579l6 27q117 135 219 301h219l-6 -21q-157 -183 -356 -307h-82z" /> +<glyph unicode="Û" horiz-adv-x="1495" d="M197 334q0 83 22 182l152 721q8 38 8 57q0 82 -148 82h-26l18 86h596l-16 -86h-27q-96 0 -140 -36.5t-61 -110.5l-153 -723q-25 -118 -25 -191q0 -213 295 -213q166 0 263 74t135 246l174 815q8 37 8 57q0 82 -148 82h-26l18 86h514l-16 -86h-27q-96 0 -140 -36.5 t-61 -110.5l-172 -811q-93 -438 -552 -438q-226 0 -345.5 92t-119.5 262zM674 1579l6 27q186 183 270 301h195q29 -117 139 -301l-6 -27h-72q-95 65 -182 184q-150 -127 -262 -184h-88z" /> +<glyph unicode="Ü" horiz-adv-x="1495" d="M197 334q0 83 22 182l152 721q8 38 8 57q0 82 -148 82h-26l18 86h596l-16 -86h-27q-96 0 -140 -36.5t-61 -110.5l-153 -723q-25 -118 -25 -191q0 -213 295 -213q166 0 263 74t135 246l174 815q8 37 8 57q0 82 -148 82h-26l18 86h514l-16 -86h-27q-96 0 -140 -36.5 t-61 -110.5l-172 -811q-93 -438 -552 -438q-226 0 -345.5 92t-119.5 262zM672 1735q0 129 110 129q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103zM1061 1735q0 129 110 129q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103z" /> +<glyph unicode="Ý" horiz-adv-x="1280" d="M158 1376l18 86h553l-18 -86h-103q-84 0 -84 -55q0 -40 27 -119l92 -274q49 -146 55 -246q20 38 154 215l195 260q75 100 75 166q0 53 -98 53h-76l19 86h506l-19 -86h-39q-39 0 -77.5 -31.5t-108.5 -123.5l-477 -625l-80 -371q-8 -37 -8 -57q0 -82 147 -82h47l-18 -86 h-637l18 86h47q103 0 143 35.5t54 101.5l80 377l-238 668q-23 65 -45.5 86.5t-77.5 21.5h-26zM764 1579l6 27q117 135 219 301h219l-6 -21q-157 -183 -356 -307h-82z" /> +<glyph unicode="Þ" horiz-adv-x="1237" d="M-41 0l18 86h27q96 0 139 37t58 110l213 1004q8 38 8 57q0 82 -148 82h-26l18 86h617l-19 -86h-47q-103 0 -144 -38.5t-55 -108.5l-4 -21h121q222 0 344.5 -103t122.5 -292q0 -233 -157.5 -365.5t-469.5 -132.5h-151l-18 -90q-9 -45 -9 -57q0 -82 148 -82h47l-19 -86 h-614zM444 412h109q432 0 432 399q0 299 -299 299h-94z" /> +<glyph unicode="ß" horiz-adv-x="1284" d="M-279 -475l19 94q51 -14 94 -14q102 0 159 87.5t99 289.5l217 1019h-166l21 97h166l14 61q94 408 512 408q373 0 373 -314q0 -109 -29 -247h-176q-225 0 -225 -168q0 -70 44.5 -117t125.5 -94q192 -113 192 -308q0 -162 -101.5 -250.5t-293.5 -88.5q-145 0 -228 55.5 t-83 152.5q0 60 43.5 97t109.5 37q0 -244 172 -244q91 0 146 52.5t55 141.5q0 138 -156 230q-204 126 -204 293q0 307 407 307q23 103 23 170q0 203 -201 203q-243 0 -307 -287l-258 -1204q-54 -250 -156.5 -363t-288.5 -113q-58 0 -119 17z" /> +<glyph unicode="à" horiz-adv-x="1186" d="M88 354q0 282 175.5 523t434.5 241q139 0 240 -74l90 52h66l-140 -656q-30 -141 -30 -227q0 -104 67 -104q58 0 148 53l37 -60q-147 -122 -289 -122q-160 0 -160 170q0 65 21 159h-13q-147 -329 -383 -329q-125 0 -194.5 98.5t-69.5 275.5zM297 346q0 -237 129 -237 q102 0 214 151t148 330l76 362q-47 74 -155 74q-175 0 -293.5 -222.5t-118.5 -457.5zM441 1548l6 21h205q60 -155 137 -301l-6 -27h-78q-154 150 -264 307z" /> +<glyph unicode="á" horiz-adv-x="1186" d="M88 354q0 282 175.5 523t434.5 241q139 0 240 -74l90 52h66l-140 -656q-30 -141 -30 -227q0 -104 67 -104q58 0 148 53l37 -60q-147 -122 -289 -122q-160 0 -160 170q0 65 21 159h-13q-147 -329 -383 -329q-125 0 -194.5 98.5t-69.5 275.5zM297 346q0 -237 129 -237 q102 0 214 151t148 330l76 362q-47 74 -155 74q-175 0 -293.5 -222.5t-118.5 -457.5zM631 1241l6 27q117 135 219 301h219l-6 -21q-157 -183 -356 -307h-82z" /> +<glyph unicode="â" horiz-adv-x="1186" d="M88 354q0 282 175.5 523t434.5 241q139 0 240 -74l90 52h66l-140 -656q-30 -141 -30 -227q0 -104 67 -104q58 0 148 53l37 -60q-147 -122 -289 -122q-160 0 -160 170q0 65 21 159h-13q-147 -329 -383 -329q-125 0 -194.5 98.5t-69.5 275.5zM297 346q0 -237 129 -237 q102 0 214 151t148 330l76 362q-47 74 -155 74q-175 0 -293.5 -222.5t-118.5 -457.5zM404 1241l6 27q186 183 270 301h195q29 -117 139 -301l-6 -27h-72q-95 65 -182 184q-150 -127 -262 -184h-88z" /> +<glyph unicode="ã" horiz-adv-x="1186" d="M88 354q0 282 175.5 523t434.5 241q139 0 240 -74l90 52h66l-140 -656q-30 -141 -30 -227q0 -104 67 -104q58 0 148 53l37 -60q-147 -122 -289 -122q-160 0 -160 170q0 65 21 159h-13q-147 -329 -383 -329q-125 0 -194.5 98.5t-69.5 275.5zM297 346q0 -237 129 -237 q102 0 214 151t148 330l76 362q-47 74 -155 74q-175 0 -293.5 -222.5t-118.5 -457.5zM341 1262q72 241 268 241q82 0 169 -64q87 -65 124 -65q89 0 123 109h92q-72 -242 -266 -242q-81 0 -169 65q-89 64 -126 64q-88 0 -123 -108h-92z" /> +<glyph unicode="ä" horiz-adv-x="1186" d="M88 354q0 282 175.5 523t434.5 241q139 0 240 -74l90 52h66l-140 -656q-30 -141 -30 -227q0 -104 67 -104q58 0 148 53l37 -60q-147 -122 -289 -122q-160 0 -160 170q0 65 21 159h-13q-147 -329 -383 -329q-125 0 -194.5 98.5t-69.5 275.5zM297 346q0 -237 129 -237 q102 0 214 151t148 330l76 362q-47 74 -155 74q-175 0 -293.5 -222.5t-118.5 -457.5zM403 1397q0 129 110 129q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103zM792 1397q0 129 110 129q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103z" /> +<glyph unicode="å" horiz-adv-x="1186" d="M88 354q0 282 175.5 523t434.5 241q139 0 240 -74l90 52h66l-140 -656q-30 -141 -30 -227q0 -104 67 -104q58 0 148 53l37 -60q-147 -122 -289 -122q-160 0 -160 170q0 65 21 159h-13q-147 -329 -383 -329q-125 0 -194.5 98.5t-69.5 275.5zM297 346q0 -237 129 -237 q102 0 214 151t148 330l76 362q-47 74 -155 74q-175 0 -293.5 -222.5t-118.5 -457.5zM491 1444q0 104 69 163.5t177 59.5t177 -59.5t69 -163.5q0 -105 -69.5 -164t-176.5 -59t-176.5 59t-69.5 164zM602 1444q0 -123 135 -123t135 123t-135 123t-135 -123z" /> +<glyph unicode="æ" horiz-adv-x="1665" d="M88 387q0 278 164.5 504.5t433.5 226.5q161 0 313 -127q153 127 355 127q130 0 201 -62t71 -173q0 -166 -172.5 -289t-421.5 -123h-35q-18 0 -36 2q-5 -25 -5 -86q0 -278 226 -278q171 0 295 147q20 -14 20 -51q0 -84 -96.5 -154.5t-257.5 -70.5q-141 0 -243 75t-136 219 q-116 -294 -367 -294q-140 0 -224.5 108t-84.5 299zM297 365q0 -122 45.5 -189t126.5 -67q102 0 177 99t104 267q38 233 155 418q-97 133 -209 133q-173 0 -286 -217t-113 -444zM979 567h20q181 0 298.5 88t117.5 228q0 137 -119 137q-100 0 -186.5 -127.5t-130.5 -325.5z " /> +<glyph unicode="ç" horiz-adv-x="997" d="M88 403q0 268 173 491.5t437 223.5q141 0 220 -56t79 -140q0 -62 -49.5 -103t-132.5 -41q0 109 -42 175.5t-116 66.5q-143 0 -249.5 -214t-106.5 -419q0 -278 225 -278q179 0 295 147q21 -13 21 -51q0 -82 -96.5 -153.5t-258.5 -71.5q-179 0 -289 113t-110 310zM172 -469 l22 104q70 -16 137 -16q152 0 152 125q0 102 -131 115l78 159h96l-39 -88q74 -10 119 -58t45 -112q0 -119 -86.5 -185.5t-239.5 -66.5q-79 0 -153 23z" /> +<glyph unicode="è" horiz-adv-x="1010" d="M88 403q0 268 173 491.5t437 223.5q130 0 201.5 -62t71.5 -173q0 -166 -172.5 -289t-421.5 -123h-35q-18 0 -37 2q-4 -28 -4 -86q0 -278 225 -278q175 0 295 147q21 -13 21 -51q0 -82 -96.5 -153.5t-258.5 -71.5q-179 0 -289 113t-110 310zM324 567h20q181 0 298.5 88 t117.5 228q0 137 -119 137q-99 0 -185 -124.5t-132 -328.5zM457 1548l6 21h205q60 -155 137 -301l-6 -27h-78q-154 150 -264 307z" /> +<glyph unicode="é" horiz-adv-x="1010" d="M88 403q0 268 173 491.5t437 223.5q130 0 201.5 -62t71.5 -173q0 -166 -172.5 -289t-421.5 -123h-35q-18 0 -37 2q-4 -28 -4 -86q0 -278 225 -278q175 0 295 147q21 -13 21 -51q0 -82 -96.5 -153.5t-258.5 -71.5q-179 0 -289 113t-110 310zM324 567h20q181 0 298.5 88 t117.5 228q0 137 -119 137q-99 0 -185 -124.5t-132 -328.5zM608 1241l6 27q117 135 219 301h219l-6 -21q-157 -183 -356 -307h-82z" /> +<glyph unicode="ê" horiz-adv-x="1010" d="M88 403q0 268 173 491.5t437 223.5q130 0 201.5 -62t71.5 -173q0 -166 -172.5 -289t-421.5 -123h-35q-18 0 -37 2q-4 -28 -4 -86q0 -278 225 -278q175 0 295 147q21 -13 21 -51q0 -82 -96.5 -153.5t-258.5 -71.5q-179 0 -289 113t-110 310zM324 567h20q181 0 298.5 88 t117.5 228q0 137 -119 137q-99 0 -185 -124.5t-132 -328.5zM381 1241l6 27q186 183 270 301h195q29 -117 139 -301l-6 -27h-72q-95 65 -182 184q-150 -127 -262 -184h-88z" /> +<glyph unicode="ë" horiz-adv-x="1010" d="M88 403q0 268 173 491.5t437 223.5q130 0 201.5 -62t71.5 -173q0 -166 -172.5 -289t-421.5 -123h-35q-18 0 -37 2q-4 -28 -4 -86q0 -278 225 -278q175 0 295 147q21 -13 21 -51q0 -82 -96.5 -153.5t-258.5 -71.5q-179 0 -289 113t-110 310zM324 567h20q181 0 298.5 88 t117.5 228q0 137 -119 137q-99 0 -185 -124.5t-132 -328.5zM407 1397q0 129 110 129q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103zM796 1397q0 129 110 129q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103z" /> +<glyph unicode="ì" horiz-adv-x="623" d="M127 1012l18 86h367l-139 -658q-31 -147 -31 -227q0 -104 68 -104q59 0 147 53l37 -60q-142 -122 -277 -122q-76 0 -123 55t-47 139q0 92 46 322l79 376q7 33 7 54q0 86 -125 86h-27zM191 1548l6 21h205q60 -155 137 -301l-6 -27h-78q-154 150 -264 307z" /> +<glyph unicode="í" horiz-adv-x="623" d="M127 1012l18 86h367l-139 -658q-31 -147 -31 -227q0 -104 68 -104q59 0 147 53l37 -60q-142 -122 -277 -122q-76 0 -123 55t-47 139q0 92 46 322l79 376q7 33 7 54q0 86 -125 86h-27zM327 1241l6 27q117 135 219 301h219l-6 -21q-157 -183 -356 -307h-82z" /> +<glyph unicode="î" horiz-adv-x="623" d="M73 1241l6 27q186 183 270 301h195q29 -117 139 -301l-6 -27h-72q-95 65 -182 184q-150 -127 -262 -184h-88zM127 1012l18 86h367l-139 -658q-31 -147 -31 -227q0 -104 68 -104q59 0 147 53l37 -60q-142 -122 -277 -122q-76 0 -123 55t-47 139q0 92 46 322l79 376 q7 33 7 54q0 86 -125 86h-27z" /> +<glyph unicode="ï" horiz-adv-x="623" d="M106 1397q0 129 110 129q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103zM127 1012l18 86h367l-139 -658q-31 -147 -31 -227q0 -104 68 -104q59 0 147 53l37 -60q-142 -122 -277 -122q-76 0 -123 55t-47 139q0 92 46 322l79 376q7 33 7 54q0 86 -125 86h-27zM495 1397 q0 129 110 129q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103z" /> +<glyph unicode="ð" horiz-adv-x="1182" d="M88 369q0 254 168 461.5t442 207.5q109 0 179 -55q-45 185 -144 291l-293 -150l25 115l199 102q-89 68 -226 115l35 103q184 -47 324 -152l297 154l-27 -117l-201 -103q102 -101 161.5 -262t59.5 -338q0 -348 -161.5 -561t-444.5 -213q-180 0 -286.5 106.5t-106.5 295.5z M301 336q0 -268 203 -268q169 0 269.5 186.5t100.5 409.5q0 268 -200 268q-168 0 -270.5 -186.5t-102.5 -409.5z" /> +<glyph unicode="ñ" horiz-adv-x="1227" d="M90 0l172 823q12 57 12 92q0 97 -143 97h-16l18 86h379l-55 -258h20q166 276 373 276q219 0 219 -227q0 -65 -37 -225l-53 -242q-27 -123 -27 -215q0 -98 72 -98q59 0 131 47l37 -60q-134 -116 -250 -116q-85 0 -135.5 55t-50.5 149t39 277l47 212q30 124 30 191 q0 121 -94 121q-114 0 -233.5 -154t-153.5 -307l-110 -524h-191zM362 1262q72 241 268 241q82 0 169 -64q87 -65 124 -65q89 0 123 109h92q-72 -242 -266 -242q-81 0 -169 65q-89 64 -126 64q-88 0 -123 -108h-92z" /> +<glyph unicode="ò" horiz-adv-x="1176" d="M88 403q0 276 168.5 495.5t441.5 219.5q181 0 285 -109t104 -315q0 -273 -167 -493.5t-439 -220.5q-185 0 -289 112t-104 311zM301 362q0 -282 203 -282q169 0 269.5 200.5t100.5 444.5q0 285 -200 285q-167 0 -270 -201t-103 -447zM470 1548l6 21h205q60 -155 137 -301 l-6 -27h-78q-154 150 -264 307z" /> +<glyph unicode="ó" horiz-adv-x="1176" d="M88 403q0 276 168.5 495.5t441.5 219.5q181 0 285 -109t104 -315q0 -273 -167 -493.5t-439 -220.5q-185 0 -289 112t-104 311zM301 362q0 -282 203 -282q169 0 269.5 200.5t100.5 444.5q0 285 -200 285q-167 0 -270 -201t-103 -447zM623 1241l6 27q117 135 219 301h219 l-6 -21q-157 -183 -356 -307h-82z" /> +<glyph unicode="ô" horiz-adv-x="1176" d="M88 403q0 276 168.5 495.5t441.5 219.5q181 0 285 -109t104 -315q0 -273 -167 -493.5t-439 -220.5q-185 0 -289 112t-104 311zM301 362q0 -282 203 -282q169 0 269.5 200.5t100.5 444.5q0 285 -200 285q-167 0 -270 -201t-103 -447zM393 1241l6 27q186 183 270 301h195 q29 -117 139 -301l-6 -27h-72q-95 65 -182 184q-150 -127 -262 -184h-88z" /> +<glyph unicode="õ" horiz-adv-x="1176" d="M88 403q0 276 168.5 495.5t441.5 219.5q181 0 285 -109t104 -315q0 -273 -167 -493.5t-439 -220.5q-185 0 -289 112t-104 311zM301 362q0 -282 203 -282q169 0 269.5 200.5t100.5 444.5q0 285 -200 285q-167 0 -270 -201t-103 -447zM339 1262q72 241 268 241 q82 0 169 -64q87 -65 124 -65q89 0 123 109h92q-72 -242 -266 -242q-81 0 -169 65q-89 64 -126 64q-88 0 -123 -108h-92z" /> +<glyph unicode="ö" horiz-adv-x="1176" d="M88 403q0 276 168.5 495.5t441.5 219.5q181 0 285 -109t104 -315q0 -273 -167 -493.5t-439 -220.5q-185 0 -289 112t-104 311zM301 362q0 -282 203 -282q169 0 269.5 200.5t100.5 444.5q0 285 -200 285q-167 0 -270 -201t-103 -447zM416 1397q0 129 110 129 q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103zM805 1397q0 129 110 129q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103z" /> +<glyph unicode="÷" d="M150 672v121h878v-121h-878zM485 344q0 113 105 113q104 0 104 -113t-104 -113q-105 0 -105 113zM485 1120q0 113 105 113q104 0 104 -113q0 -112 -104 -112q-105 0 -105 112z" /> +<glyph unicode="ø" horiz-adv-x="1182" d="M10 -82l162 195q-84 110 -84 290q0 276 168.5 495.5t441.5 219.5q149 0 244 -74l115 136h119l-166 -203q77 -106 77 -283q0 -275 -167 -497t-439 -222q-141 0 -243 72l-107 -129h-121zM301 362q0 -65 4 -88l533 644q-49 92 -164 92q-167 0 -270 -201t-103 -447zM338 168 q46 -92 166 -92q168 0 269 201.5t101 447.5q0 44 -6 84z" /> +<glyph unicode="ù" horiz-adv-x="1227" d="M117 1012l18 86h381l-135 -613q-41 -186 -41 -247q0 -125 100 -125q105 0 226.5 151.5t158.5 323.5l107 510h198l-141 -658q-31 -145 -31 -227q0 -104 68 -104q58 0 131 45l37 -60q-130 -114 -260 -114q-77 0 -124.5 55t-47.5 139q0 53 10 121h-16q-111 -183 -198.5 -248 t-197.5 -65q-219 0 -219 227q0 65 37 225l80 359q18 81 18 122q0 97 -143 97h-16zM486 1548l6 21h205q60 -155 137 -301l-6 -27h-78q-154 150 -264 307z" /> +<glyph unicode="ú" horiz-adv-x="1227" d="M117 1012l18 86h381l-135 -613q-41 -186 -41 -247q0 -125 100 -125q105 0 226.5 151.5t158.5 323.5l107 510h198l-141 -658q-31 -145 -31 -227q0 -104 68 -104q58 0 131 45l37 -60q-130 -114 -260 -114q-77 0 -124.5 55t-47.5 139q0 53 10 121h-16q-111 -183 -198.5 -248 t-197.5 -65q-219 0 -219 227q0 65 37 225l80 359q18 81 18 122q0 97 -143 97h-16zM641 1241l6 27q117 135 219 301h219l-6 -21q-157 -183 -356 -307h-82z" /> +<glyph unicode="û" horiz-adv-x="1227" d="M117 1012l18 86h381l-135 -613q-41 -186 -41 -247q0 -125 100 -125q105 0 226.5 151.5t158.5 323.5l107 510h198l-141 -658q-31 -145 -31 -227q0 -104 68 -104q58 0 131 45l37 -60q-130 -114 -260 -114q-77 0 -124.5 55t-47.5 139q0 53 10 121h-16q-111 -183 -198.5 -248 t-197.5 -65q-219 0 -219 227q0 65 37 225l80 359q18 81 18 122q0 97 -143 97h-16zM428 1241l6 27q186 183 270 301h195q29 -117 139 -301l-6 -27h-72q-95 65 -182 184q-150 -127 -262 -184h-88z" /> +<glyph unicode="ü" horiz-adv-x="1227" d="M117 1012l18 86h381l-135 -613q-41 -186 -41 -247q0 -125 100 -125q105 0 226.5 151.5t158.5 323.5l107 510h198l-141 -658q-31 -145 -31 -227q0 -104 68 -104q58 0 131 45l37 -60q-130 -114 -260 -114q-77 0 -124.5 55t-47.5 139q0 53 10 121h-16q-111 -183 -198.5 -248 t-197.5 -65q-219 0 -219 227q0 65 37 225l80 359q18 81 18 122q0 97 -143 97h-16zM469 1397q0 129 110 129q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103zM858 1397q0 129 110 129q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103z" /> +<glyph unicode="ý" horiz-adv-x="1081" d="M-332 -455l31 103q72 -23 160 -23q293 0 575 373l-270 905q-18 60 -49 84.5t-92 24.5h-21l16 86h299l160 -553q74 -257 86 -371h6q277 421 277 680q0 111 -101 111q0 69 40 110t94 41q139 0 139 -172q0 -247 -276 -694.5t-442.5 -594.5t-438.5 -147q-108 0 -193 37z M529 1241l6 27q117 135 219 301h219l-6 -21q-157 -183 -356 -307h-82z" /> +<glyph unicode="þ" horiz-adv-x="1151" d="M-49 -492l373 1758q18 85 18 108q0 96 -143 96h-17l19 86h377l-105 -491q-17 -79 -61 -240h12q148 293 375 293q125 0 194.5 -95t69.5 -275q0 -275 -173 -521.5t-439 -246.5q-120 0 -203 47q-9 -78 -15 -99l-31 -151q-14 -58 -14 -94q0 -89 144 -89h26l-18 -86h-389z M281 145q65 -73 163 -73q171 0 290.5 223t119.5 455q0 113 -35.5 176t-97.5 63q-107 0 -216 -150.5t-140 -303.5z" /> +<glyph unicode="ÿ" horiz-adv-x="1081" d="M-332 -455l31 103q72 -23 160 -23q293 0 575 373l-270 905q-18 60 -49 84.5t-92 24.5h-21l16 86h299l160 -553q74 -257 86 -371h6q277 421 277 680q0 111 -101 111q0 69 40 110t94 41q139 0 139 -172q0 -247 -276 -694.5t-442.5 -594.5t-438.5 -147q-108 0 -193 37z M311 1397q0 129 110 129q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103zM700 1397q0 129 110 129q103 0 103 -103q0 -129 -111 -129q-102 0 -102 103z" /> +<glyph unicode="ˆ" horiz-adv-x="1182" d="M375 1241l6 27q186 183 270 301h195q29 -117 139 -301l-6 -27h-72q-95 65 -182 184q-150 -127 -262 -184h-88z" /> +<glyph unicode="˜" horiz-adv-x="1182" d="M344 1262q72 241 268 241q82 0 169 -64q87 -65 124 -65q89 0 123 109h92q-72 -242 -266 -242q-81 0 -169 65q-89 64 -126 64q-88 0 -123 -108h-92z" /> +<glyph unicode=" " horiz-adv-x="953" /> +<glyph unicode=" " horiz-adv-x="1907" /> +<glyph unicode=" " horiz-adv-x="953" /> +<glyph unicode=" " horiz-adv-x="1907" /> +<glyph unicode=" " horiz-adv-x="635" /> +<glyph unicode=" " horiz-adv-x="476" /> +<glyph unicode=" " horiz-adv-x="317" /> +<glyph unicode=" " horiz-adv-x="317" /> +<glyph unicode=" " horiz-adv-x="238" /> +<glyph unicode=" " horiz-adv-x="381" /> +<glyph unicode=" " horiz-adv-x="105" /> +<glyph unicode="‐" horiz-adv-x="635" d="M29 481l32 154h533l-33 -154h-532z" /> +<glyph unicode="‑" horiz-adv-x="635" d="M29 481l32 154h533l-33 -154h-532z" /> +<glyph unicode="‒" horiz-adv-x="635" d="M29 481l32 154h533l-33 -154h-532z" /> +<glyph unicode="–" horiz-adv-x="1024" d="M-6 489l24 121h1045l-27 -121h-1042z" /> +<glyph unicode="—" horiz-adv-x="2048" d="M-6 489l24 121h2069l-27 -121h-2066z" /> +<glyph unicode="‘" horiz-adv-x="512" d="M215 1069q0 148 95 252t276 141l-8 -86q-209 -46 -209 -172q0 -36 67 -78q66 -42 66 -104q0 -55 -35 -88t-92 -33q-67 0 -113.5 46.5t-46.5 121.5z" /> +<glyph unicode="’" horiz-adv-x="512" d="M168 901l8 86q209 47 209 172q0 36 -66 78q-67 42 -67 104q0 55 35 88t92 33q69 0 114.5 -46.5t45.5 -121.5q0 -151 -96.5 -254t-274.5 -139z" /> +<glyph unicode="‚" horiz-adv-x="512" d="M-57 -299l8 86q209 47 209 172q0 36 -66 78q-67 42 -67 104q0 55 35 88t92 33q69 0 114 -45.5t45 -122.5q0 -150 -95 -253.5t-275 -139.5z" /> +<glyph unicode="“" horiz-adv-x="922" d="M215 1069q0 148 95 252t276 141l-8 -86q-209 -46 -209 -172q0 -36 67 -78q66 -42 66 -104q0 -55 -35 -88t-92 -33q-67 0 -113.5 46.5t-46.5 121.5zM625 1069q0 150 95 253.5t275 139.5l-8 -86q-209 -47 -209 -172q0 -36 67 -78q66 -42 66 -104q0 -55 -34.5 -88t-92.5 -33 q-68 0 -113.5 46.5t-45.5 121.5z" /> +<glyph unicode="”" horiz-adv-x="922" d="M168 901l8 86q209 47 209 172q0 36 -66 78q-67 42 -67 104q0 55 35 88t92 33q69 0 114.5 -46.5t45.5 -121.5q0 -151 -96.5 -254t-274.5 -139zM578 901l8 86q209 47 209 172q0 36 -66 78q-67 42 -67 104q0 55 34 88t92 33q69 0 114.5 -46.5t45.5 -121.5q0 -152 -96.5 -255 t-273.5 -138z" /> +<glyph unicode="„" horiz-adv-x="922" d="M-57 -299l8 86q209 47 209 172q0 36 -66 78q-67 42 -67 104q0 55 35 88t92 33q69 0 114 -45.5t45 -122.5q0 -150 -95 -253.5t-275 -139.5zM350 -299l8 86q209 47 209 172q0 36 -66 78q-67 42 -67 104q0 55 35 88t92 33q69 0 114.5 -46.5t45.5 -121.5q0 -151 -96.5 -254 t-274.5 -139z" /> +<glyph unicode="•" horiz-adv-x="741" d="M117 729q0 297 270 297t270 -297t-270 -297t-270 297z" /> +<glyph unicode=" " horiz-adv-x="381" /> +<glyph unicode="‹" horiz-adv-x="682" d="M125 520l14 66l389 356h103l-295 -397l129 -381h-103z" /> +<glyph unicode="›" horiz-adv-x="682" d="M51 164l299 397l-133 381h102l238 -356l-14 -66l-389 -356h-103z" /> +<glyph unicode=" " horiz-adv-x="476" /> +<glyph unicode="◼" horiz-adv-x="1100" d="M0 0v1100h1100v-1100h-1100z" /> +<hkern u1=""" u2="Æ" k="246" /> +<hkern u1=""" u2="Å" k="164" /> +<hkern u1=""" u2="Ä" k="164" /> +<hkern u1=""" u2="Ã" k="164" /> +<hkern u1=""" u2="Â" k="164" /> +<hkern u1=""" u2="Á" k="164" /> +<hkern u1=""" u2="À" k="164" /> +<hkern u1=""" u2="g" k="82" /> +<hkern u1=""" u2="A" k="164" /> +<hkern u1="'" u2="Æ" k="246" /> +<hkern u1="'" u2="Å" k="164" /> +<hkern u1="'" u2="Ä" k="164" /> +<hkern u1="'" u2="Ã" k="164" /> +<hkern u1="'" u2="Â" k="164" /> +<hkern u1="'" u2="Á" k="164" /> +<hkern u1="'" u2="À" k="164" /> +<hkern u1="'" u2="g" k="82" /> +<hkern u1="'" u2="A" k="164" /> +<hkern u1="*" u2="„" k="246" /> +<hkern u1="*" u2="‚" k="246" /> +<hkern u1="*" u2="Æ" k="164" /> +<hkern u1="*" u2="Å" k="102" /> +<hkern u1="*" u2="Ä" k="102" /> +<hkern u1="*" u2="Ã" k="102" /> +<hkern u1="*" u2="Â" k="102" /> +<hkern u1="*" u2="Á" k="102" /> +<hkern u1="*" u2="À" k="102" /> +<hkern u1="*" u2="A" k="102" /> +<hkern u1="*" u2="." k="246" /> +<hkern u1="*" u2="," k="246" /> +<hkern u1="A" u2="”" k="143" /> +<hkern u1="A" u2="’" k="143" /> +<hkern u1="A" u2="ÿ" k="102" /> +<hkern u1="A" u2="ý" k="102" /> +<hkern u1="A" u2="ü" k="41" /> +<hkern u1="A" u2="û" k="41" /> +<hkern u1="A" u2="ú" k="41" /> +<hkern u1="A" u2="ù" k="41" /> +<hkern u1="A" u2="ø" k="41" /> +<hkern u1="A" u2="ö" k="41" /> +<hkern u1="A" u2="õ" k="41" /> +<hkern u1="A" u2="ô" k="41" /> +<hkern u1="A" u2="ó" k="41" /> +<hkern u1="A" u2="ò" k="41" /> +<hkern u1="A" u2="ð" k="41" /> +<hkern u1="A" u2="ë" k="41" /> +<hkern u1="A" u2="ê" k="41" /> +<hkern u1="A" u2="é" k="41" /> +<hkern u1="A" u2="è" k="41" /> +<hkern u1="A" u2="ç" k="41" /> +<hkern u1="A" u2="Ý" k="143" /> +<hkern u1="A" u2="Ü" k="41" /> +<hkern u1="A" u2="Û" k="41" /> +<hkern u1="A" u2="Ú" k="41" /> +<hkern u1="A" u2="Ù" k="41" /> +<hkern u1="A" u2="Ø" k="41" /> +<hkern u1="A" u2="Ö" k="41" /> +<hkern u1="A" u2="Õ" k="41" /> +<hkern u1="A" u2="Ô" k="41" /> +<hkern u1="A" u2="Ó" k="41" /> +<hkern u1="A" u2="Ò" k="41" /> +<hkern u1="A" u2="y" k="102" /> +<hkern u1="A" u2="w" k="61" /> +<hkern u1="A" u2="v" k="123" /> +<hkern u1="A" u2="u" k="41" /> +<hkern u1="A" u2="q" k="41" /> +<hkern u1="A" u2="o" k="41" /> +<hkern u1="A" u2="g" k="41" /> +<hkern u1="A" u2="e" k="41" /> +<hkern u1="A" u2="d" k="41" /> +<hkern u1="A" u2="c" k="41" /> +<hkern u1="A" u2="Y" k="143" /> +<hkern u1="A" u2="W" k="143" /> +<hkern u1="A" u2="V" k="164" /> +<hkern u1="A" u2="U" k="41" /> +<hkern u1="A" u2="T" k="123" /> +<hkern u1="A" u2="Q" k="41" /> +<hkern u1="A" u2="O" k="41" /> +<hkern u1="A" u2="G" k="41" /> +<hkern u1="A" u2="C" k="41" /> +<hkern u1="A" u2="?" k="123" /> +<hkern u1="A" u2="*" k="143" /> +<hkern u1="A" u2="'" k="164" /> +<hkern u1="A" u2=""" k="164" /> +<hkern u1="B" u2="”" k="41" /> +<hkern u1="B" u2="’" k="41" /> +<hkern u1="B" u2="ÿ" k="41" /> +<hkern u1="B" u2="ý" k="41" /> +<hkern u1="B" u2="Ý" k="82" /> +<hkern u1="B" u2="Æ" k="61" /> +<hkern u1="B" u2="Å" k="41" /> +<hkern u1="B" u2="Ä" k="41" /> +<hkern u1="B" u2="Ã" k="41" /> +<hkern u1="B" u2="Â" k="41" /> +<hkern u1="B" u2="Á" k="41" /> +<hkern u1="B" u2="À" k="41" /> +<hkern u1="B" u2="y" k="41" /> +<hkern u1="B" u2="w" k="20" /> +<hkern u1="B" u2="Z" k="41" /> +<hkern u1="B" u2="Y" k="82" /> +<hkern u1="B" u2="X" k="41" /> +<hkern u1="B" u2="W" k="61" /> +<hkern u1="B" u2="V" k="82" /> +<hkern u1="B" u2="T" k="41" /> +<hkern u1="B" u2="A" k="41" /> +<hkern u1="B" u2="?" k="41" /> +<hkern u1="B" u2="*" k="41" /> +<hkern u1="D" u2="Ý" k="61" /> +<hkern u1="D" u2="Æ" k="102" /> +<hkern u1="D" u2="Å" k="41" /> +<hkern u1="D" u2="Ä" k="41" /> +<hkern u1="D" u2="Ã" k="41" /> +<hkern u1="D" u2="Â" k="41" /> +<hkern u1="D" u2="Á" k="41" /> +<hkern u1="D" u2="À" k="41" /> +<hkern u1="D" u2="Y" k="61" /> +<hkern u1="D" u2="X" k="41" /> +<hkern u1="D" u2="W" k="41" /> +<hkern u1="D" u2="V" k="41" /> +<hkern u1="D" u2="T" k="41" /> +<hkern u1="D" u2="A" k="41" /> +<hkern u1="D" u2="?" k="41" /> +<hkern u1="E" u2="Ý" k="41" /> +<hkern u1="E" u2="Y" k="41" /> +<hkern u1="E" u2="W" k="41" /> +<hkern u1="E" u2="V" k="41" /> +<hkern u1="F" u2="ø" k="82" /> +<hkern u1="F" u2="ö" k="82" /> +<hkern u1="F" u2="õ" k="82" /> +<hkern u1="F" u2="ô" k="82" /> +<hkern u1="F" u2="ó" k="82" /> +<hkern u1="F" u2="ò" k="82" /> +<hkern u1="F" u2="ð" k="82" /> +<hkern u1="F" u2="ë" k="82" /> +<hkern u1="F" u2="ê" k="82" /> +<hkern u1="F" u2="é" k="82" /> +<hkern u1="F" u2="è" k="82" /> +<hkern u1="F" u2="ç" k="82" /> +<hkern u1="F" u2="æ" k="82" /> +<hkern u1="F" u2="å" k="82" /> +<hkern u1="F" u2="ä" k="82" /> +<hkern u1="F" u2="ã" k="82" /> +<hkern u1="F" u2="â" k="82" /> +<hkern u1="F" u2="á" k="82" /> +<hkern u1="F" u2="à" k="82" /> +<hkern u1="F" u2="Æ" k="225" /> +<hkern u1="F" u2="Å" k="143" /> +<hkern u1="F" u2="Ä" k="143" /> +<hkern u1="F" u2="Ã" k="143" /> +<hkern u1="F" u2="Â" k="143" /> +<hkern u1="F" u2="Á" k="143" /> +<hkern u1="F" u2="À" k="143" /> +<hkern u1="F" u2="q" k="82" /> +<hkern u1="F" u2="o" k="82" /> +<hkern u1="F" u2="g" k="82" /> +<hkern u1="F" u2="e" k="82" /> +<hkern u1="F" u2="d" k="82" /> +<hkern u1="F" u2="c" k="82" /> +<hkern u1="F" u2="a" k="82" /> +<hkern u1="F" u2="A" k="143" /> +<hkern u1="G" u2="Ý" k="41" /> +<hkern u1="G" u2="Æ" k="41" /> +<hkern u1="G" u2="Y" k="41" /> +<hkern u1="G" u2="W" k="41" /> +<hkern u1="G" u2="V" k="41" /> +<hkern u1="G" u2="T" k="41" /> +<hkern u1="G" u2="?" k="41" /> +<hkern u1="K" u2="ÿ" k="61" /> +<hkern u1="K" u2="ý" k="61" /> +<hkern u1="K" u2="ü" k="41" /> +<hkern u1="K" u2="û" k="41" /> +<hkern u1="K" u2="ú" k="41" /> +<hkern u1="K" u2="ù" k="41" /> +<hkern u1="K" u2="ø" k="41" /> +<hkern u1="K" u2="ö" k="41" /> +<hkern u1="K" u2="õ" k="41" /> +<hkern u1="K" u2="ô" k="41" /> +<hkern u1="K" u2="ó" k="41" /> +<hkern u1="K" u2="ò" k="41" /> +<hkern u1="K" u2="ð" k="41" /> +<hkern u1="K" u2="ë" k="41" /> +<hkern u1="K" u2="ê" k="41" /> +<hkern u1="K" u2="é" k="41" /> +<hkern u1="K" u2="è" k="41" /> +<hkern u1="K" u2="ç" k="41" /> +<hkern u1="K" u2="Ø" k="41" /> +<hkern u1="K" u2="Ö" k="41" /> +<hkern u1="K" u2="Õ" k="41" /> +<hkern u1="K" u2="Ô" k="41" /> +<hkern u1="K" u2="Ó" k="41" /> +<hkern u1="K" u2="Ò" k="41" /> +<hkern u1="K" u2="y" k="61" /> +<hkern u1="K" u2="w" k="61" /> +<hkern u1="K" u2="u" k="41" /> +<hkern u1="K" u2="q" k="41" /> +<hkern u1="K" u2="o" k="41" /> +<hkern u1="K" u2="g" k="41" /> +<hkern u1="K" u2="e" k="41" /> +<hkern u1="K" u2="d" k="41" /> +<hkern u1="K" u2="c" k="41" /> +<hkern u1="K" u2="Q" k="41" /> +<hkern u1="K" u2="O" k="41" /> +<hkern u1="K" u2="G" k="41" /> +<hkern u1="K" u2="C" k="41" /> +<hkern u1="L" u2="”" k="164" /> +<hkern u1="L" u2="’" k="164" /> +<hkern u1="L" u2="Ý" k="123" /> +<hkern u1="L" u2="Y" k="123" /> +<hkern u1="L" u2="W" k="102" /> +<hkern u1="L" u2="V" k="102" /> +<hkern u1="L" u2="T" k="143" /> +<hkern u1="L" u2="?" k="143" /> +<hkern u1="L" u2="*" k="164" /> +<hkern u1="L" u2="'" k="123" /> +<hkern u1="L" u2=""" k="123" /> +<hkern u1="O" u2="Ý" k="61" /> +<hkern u1="O" u2="Æ" k="102" /> +<hkern u1="O" u2="Å" k="41" /> +<hkern u1="O" u2="Ä" k="41" /> +<hkern u1="O" u2="Ã" k="41" /> +<hkern u1="O" u2="Â" k="41" /> +<hkern u1="O" u2="Á" k="41" /> +<hkern u1="O" u2="À" k="41" /> +<hkern u1="O" u2="Y" k="61" /> +<hkern u1="O" u2="X" k="41" /> +<hkern u1="O" u2="W" k="41" /> +<hkern u1="O" u2="V" k="41" /> +<hkern u1="O" u2="T" k="41" /> +<hkern u1="O" u2="A" k="41" /> +<hkern u1="O" u2="?" k="41" /> +<hkern u1="P" u2="„" k="246" /> +<hkern u1="P" u2="‚" k="246" /> +<hkern u1="P" u2="Æ" k="164" /> +<hkern u1="P" u2="Å" k="102" /> +<hkern u1="P" u2="Ä" k="102" /> +<hkern u1="P" u2="Ã" k="102" /> +<hkern u1="P" u2="Â" k="102" /> +<hkern u1="P" u2="Á" k="102" /> +<hkern u1="P" u2="À" k="102" /> +<hkern u1="P" u2="A" k="102" /> +<hkern u1="P" u2="." k="246" /> +<hkern u1="P" u2="," k="246" /> +<hkern u1="Q" u2="Ý" k="61" /> +<hkern u1="Q" u2="Æ" k="102" /> +<hkern u1="Q" u2="Å" k="41" /> +<hkern u1="Q" u2="Ä" k="41" /> +<hkern u1="Q" u2="Ã" k="41" /> +<hkern u1="Q" u2="Â" k="41" /> +<hkern u1="Q" u2="Á" k="41" /> +<hkern u1="Q" u2="À" k="41" /> +<hkern u1="Q" u2="Y" k="61" /> +<hkern u1="Q" u2="X" k="41" /> +<hkern u1="Q" u2="W" k="41" /> +<hkern u1="Q" u2="V" k="41" /> +<hkern u1="Q" u2="T" k="41" /> +<hkern u1="Q" u2="A" k="41" /> +<hkern u1="Q" u2="?" k="41" /> +<hkern u1="R" u2="”" k="41" /> +<hkern u1="R" u2="’" k="41" /> +<hkern u1="R" u2="ÿ" k="41" /> +<hkern u1="R" u2="ý" k="41" /> +<hkern u1="R" u2="Ý" k="61" /> +<hkern u1="R" u2="Ü" k="20" /> +<hkern u1="R" u2="Û" k="20" /> +<hkern u1="R" u2="Ú" k="20" /> +<hkern u1="R" u2="Ù" k="20" /> +<hkern u1="R" u2="Ø" k="41" /> +<hkern u1="R" u2="Ö" k="41" /> +<hkern u1="R" u2="Õ" k="41" /> +<hkern u1="R" u2="Ô" k="41" /> +<hkern u1="R" u2="Ó" k="41" /> +<hkern u1="R" u2="Ò" k="41" /> +<hkern u1="R" u2="y" k="41" /> +<hkern u1="R" u2="w" k="41" /> +<hkern u1="R" u2="Y" k="61" /> +<hkern u1="R" u2="W" k="61" /> +<hkern u1="R" u2="V" k="61" /> +<hkern u1="R" u2="U" k="20" /> +<hkern u1="R" u2="T" k="41" /> +<hkern u1="R" u2="Q" k="41" /> +<hkern u1="R" u2="O" k="41" /> +<hkern u1="R" u2="G" k="41" /> +<hkern u1="R" u2="C" k="41" /> +<hkern u1="R" u2="?" k="41" /> +<hkern u1="R" u2="*" k="41" /> +<hkern u1="S" u2="ÿ" k="41" /> +<hkern u1="S" u2="ý" k="41" /> +<hkern u1="S" u2="Ý" k="41" /> +<hkern u1="S" u2="Æ" k="41" /> +<hkern u1="S" u2="Å" k="41" /> +<hkern u1="S" u2="Ä" k="41" /> +<hkern u1="S" u2="Ã" k="41" /> +<hkern u1="S" u2="Â" k="41" /> +<hkern u1="S" u2="Á" k="41" /> +<hkern u1="S" u2="À" k="41" /> +<hkern u1="S" u2="y" k="41" /> +<hkern u1="S" u2="w" k="20" /> +<hkern u1="S" u2="Y" k="41" /> +<hkern u1="S" u2="X" k="41" /> +<hkern u1="S" u2="W" k="41" /> +<hkern u1="S" u2="V" k="41" /> +<hkern u1="S" u2="T" k="41" /> +<hkern u1="S" u2="A" k="41" /> +<hkern u1="S" u2="?" k="41" /> +<hkern u1="T" u2="„" k="184" /> +<hkern u1="T" u2="‚" k="184" /> +<hkern u1="T" u2="ø" k="61" /> +<hkern u1="T" u2="ö" k="61" /> +<hkern u1="T" u2="õ" k="61" /> +<hkern u1="T" u2="ô" k="61" /> +<hkern u1="T" u2="ó" k="61" /> +<hkern u1="T" u2="ò" k="61" /> +<hkern u1="T" u2="ð" k="61" /> +<hkern u1="T" u2="ë" k="61" /> +<hkern u1="T" u2="ê" k="61" /> +<hkern u1="T" u2="é" k="61" /> +<hkern u1="T" u2="è" k="61" /> +<hkern u1="T" u2="ç" k="61" /> +<hkern u1="T" u2="æ" k="61" /> +<hkern u1="T" u2="å" k="61" /> +<hkern u1="T" u2="ä" k="61" /> +<hkern u1="T" u2="ã" k="61" /> +<hkern u1="T" u2="â" k="61" /> +<hkern u1="T" u2="á" k="61" /> +<hkern u1="T" u2="à" k="61" /> +<hkern u1="T" u2="Ø" k="41" /> +<hkern u1="T" u2="Ö" k="41" /> +<hkern u1="T" u2="Õ" k="41" /> +<hkern u1="T" u2="Ô" k="41" /> +<hkern u1="T" u2="Ó" k="41" /> +<hkern u1="T" u2="Ò" k="41" /> +<hkern u1="T" u2="Æ" k="164" /> +<hkern u1="T" u2="Å" k="123" /> +<hkern u1="T" u2="Ä" k="123" /> +<hkern u1="T" u2="Ã" k="123" /> +<hkern u1="T" u2="Â" k="123" /> +<hkern u1="T" u2="Á" k="123" /> +<hkern u1="T" u2="À" k="123" /> +<hkern u1="T" u2="q" k="61" /> +<hkern u1="T" u2="o" k="61" /> +<hkern u1="T" u2="g" k="61" /> +<hkern u1="T" u2="e" k="61" /> +<hkern u1="T" u2="d" k="61" /> +<hkern u1="T" u2="c" k="61" /> +<hkern u1="T" u2="a" k="61" /> +<hkern u1="T" u2="Q" k="41" /> +<hkern u1="T" u2="O" k="41" /> +<hkern u1="T" u2="G" k="41" /> +<hkern u1="T" u2="C" k="41" /> +<hkern u1="T" u2="A" k="123" /> +<hkern u1="T" u2="." k="184" /> +<hkern u1="T" u2="," k="184" /> +<hkern u1="U" u2="Å" k="41" /> +<hkern u1="U" u2="Ä" k="41" /> +<hkern u1="U" u2="Ã" k="41" /> +<hkern u1="U" u2="Â" k="41" /> +<hkern u1="U" u2="Á" k="41" /> +<hkern u1="U" u2="À" k="41" /> +<hkern u1="U" u2="A" k="41" /> +<hkern u1="V" u2="„" k="225" /> +<hkern u1="V" u2="‚" k="225" /> +<hkern u1="V" u2="ø" k="123" /> +<hkern u1="V" u2="ö" k="123" /> +<hkern u1="V" u2="õ" k="123" /> +<hkern u1="V" u2="ô" k="123" /> +<hkern u1="V" u2="ó" k="123" /> +<hkern u1="V" u2="ò" k="123" /> +<hkern u1="V" u2="ð" k="123" /> +<hkern u1="V" u2="ë" k="123" /> +<hkern u1="V" u2="ê" k="123" /> +<hkern u1="V" u2="é" k="123" /> +<hkern u1="V" u2="è" k="123" /> +<hkern u1="V" u2="ç" k="123" /> +<hkern u1="V" u2="æ" k="123" /> +<hkern u1="V" u2="å" k="123" /> +<hkern u1="V" u2="ä" k="123" /> +<hkern u1="V" u2="ã" k="123" /> +<hkern u1="V" u2="â" k="123" /> +<hkern u1="V" u2="á" k="123" /> +<hkern u1="V" u2="à" k="123" /> +<hkern u1="V" u2="Ø" k="41" /> +<hkern u1="V" u2="Ö" k="41" /> +<hkern u1="V" u2="Õ" k="41" /> +<hkern u1="V" u2="Ô" k="41" /> +<hkern u1="V" u2="Ó" k="41" /> +<hkern u1="V" u2="Ò" k="41" /> +<hkern u1="V" u2="Æ" k="266" /> +<hkern u1="V" u2="Å" k="164" /> +<hkern u1="V" u2="Ä" k="164" /> +<hkern u1="V" u2="Ã" k="164" /> +<hkern u1="V" u2="Â" k="164" /> +<hkern u1="V" u2="Á" k="164" /> +<hkern u1="V" u2="À" k="164" /> +<hkern u1="V" u2="s" k="82" /> +<hkern u1="V" u2="q" k="123" /> +<hkern u1="V" u2="o" k="123" /> +<hkern u1="V" u2="g" k="123" /> +<hkern u1="V" u2="e" k="123" /> +<hkern u1="V" u2="d" k="123" /> +<hkern u1="V" u2="c" k="123" /> +<hkern u1="V" u2="a" k="123" /> +<hkern u1="V" u2="Q" k="41" /> +<hkern u1="V" u2="O" k="41" /> +<hkern u1="V" u2="G" k="41" /> +<hkern u1="V" u2="C" k="41" /> +<hkern u1="V" u2="A" k="164" /> +<hkern u1="V" u2="." k="225" /> +<hkern u1="V" u2="," k="225" /> +<hkern u1="W" u2="„" k="184" /> +<hkern u1="W" u2="‚" k="184" /> +<hkern u1="W" u2="ø" k="123" /> +<hkern u1="W" u2="ö" k="123" /> +<hkern u1="W" u2="õ" k="123" /> +<hkern u1="W" u2="ô" k="123" /> +<hkern u1="W" u2="ó" k="123" /> +<hkern u1="W" u2="ò" k="123" /> +<hkern u1="W" u2="ð" k="123" /> +<hkern u1="W" u2="ë" k="123" /> +<hkern u1="W" u2="ê" k="123" /> +<hkern u1="W" u2="é" k="123" /> +<hkern u1="W" u2="è" k="123" /> +<hkern u1="W" u2="ç" k="123" /> +<hkern u1="W" u2="æ" k="102" /> +<hkern u1="W" u2="å" k="102" /> +<hkern u1="W" u2="ä" k="102" /> +<hkern u1="W" u2="ã" k="102" /> +<hkern u1="W" u2="â" k="102" /> +<hkern u1="W" u2="á" k="102" /> +<hkern u1="W" u2="à" k="102" /> +<hkern u1="W" u2="Ø" k="41" /> +<hkern u1="W" u2="Ö" k="41" /> +<hkern u1="W" u2="Õ" k="41" /> +<hkern u1="W" u2="Ô" k="41" /> +<hkern u1="W" u2="Ó" k="41" /> +<hkern u1="W" u2="Ò" k="41" /> +<hkern u1="W" u2="Æ" k="266" /> +<hkern u1="W" u2="Å" k="123" /> +<hkern u1="W" u2="Ä" k="123" /> +<hkern u1="W" u2="Ã" k="123" /> +<hkern u1="W" u2="Â" k="123" /> +<hkern u1="W" u2="Á" k="123" /> +<hkern u1="W" u2="À" k="123" /> +<hkern u1="W" u2="q" k="123" /> +<hkern u1="W" u2="o" k="123" /> +<hkern u1="W" u2="g" k="123" /> +<hkern u1="W" u2="e" k="123" /> +<hkern u1="W" u2="d" k="123" /> +<hkern u1="W" u2="c" k="123" /> +<hkern u1="W" u2="a" k="102" /> +<hkern u1="W" u2="Q" k="41" /> +<hkern u1="W" u2="O" k="41" /> +<hkern u1="W" u2="G" k="41" /> +<hkern u1="W" u2="C" k="41" /> +<hkern u1="W" u2="A" k="123" /> +<hkern u1="W" u2="." k="184" /> +<hkern u1="W" u2="," k="184" /> +<hkern u1="X" u2="ÿ" k="102" /> +<hkern u1="X" u2="ý" k="102" /> +<hkern u1="X" u2="Ø" k="41" /> +<hkern u1="X" u2="Ö" k="41" /> +<hkern u1="X" u2="Õ" k="41" /> +<hkern u1="X" u2="Ô" k="41" /> +<hkern u1="X" u2="Ó" k="41" /> +<hkern u1="X" u2="Ò" k="41" /> +<hkern u1="X" u2="y" k="102" /> +<hkern u1="X" u2="w" k="61" /> +<hkern u1="X" u2="S" k="20" /> +<hkern u1="X" u2="Q" k="41" /> +<hkern u1="X" u2="O" k="41" /> +<hkern u1="X" u2="G" k="41" /> +<hkern u1="X" u2="C" k="41" /> +<hkern u1="Y" u2="„" k="164" /> +<hkern u1="Y" u2="‚" k="164" /> +<hkern u1="Y" u2="ø" k="143" /> +<hkern u1="Y" u2="ö" k="143" /> +<hkern u1="Y" u2="õ" k="143" /> +<hkern u1="Y" u2="ô" k="143" /> +<hkern u1="Y" u2="ó" k="143" /> +<hkern u1="Y" u2="ò" k="143" /> +<hkern u1="Y" u2="ð" k="143" /> +<hkern u1="Y" u2="ë" k="143" /> +<hkern u1="Y" u2="ê" k="143" /> +<hkern u1="Y" u2="é" k="143" /> +<hkern u1="Y" u2="è" k="143" /> +<hkern u1="Y" u2="ç" k="143" /> +<hkern u1="Y" u2="æ" k="123" /> +<hkern u1="Y" u2="å" k="123" /> +<hkern u1="Y" u2="ä" k="123" /> +<hkern u1="Y" u2="ã" k="123" /> +<hkern u1="Y" u2="â" k="123" /> +<hkern u1="Y" u2="á" k="123" /> +<hkern u1="Y" u2="à" k="123" /> +<hkern u1="Y" u2="Ø" k="61" /> +<hkern u1="Y" u2="Ö" k="61" /> +<hkern u1="Y" u2="Õ" k="61" /> +<hkern u1="Y" u2="Ô" k="61" /> +<hkern u1="Y" u2="Ó" k="61" /> +<hkern u1="Y" u2="Ò" k="61" /> +<hkern u1="Y" u2="Æ" k="184" /> +<hkern u1="Y" u2="Å" k="143" /> +<hkern u1="Y" u2="Ä" k="143" /> +<hkern u1="Y" u2="Ã" k="143" /> +<hkern u1="Y" u2="Â" k="143" /> +<hkern u1="Y" u2="Á" k="143" /> +<hkern u1="Y" u2="À" k="143" /> +<hkern u1="Y" u2="s" k="123" /> +<hkern u1="Y" u2="q" k="143" /> +<hkern u1="Y" u2="o" k="143" /> +<hkern u1="Y" u2="g" k="143" /> +<hkern u1="Y" u2="e" k="143" /> +<hkern u1="Y" u2="d" k="143" /> +<hkern u1="Y" u2="c" k="143" /> +<hkern u1="Y" u2="a" k="123" /> +<hkern u1="Y" u2="S" k="41" /> +<hkern u1="Y" u2="Q" k="61" /> +<hkern u1="Y" u2="O" k="61" /> +<hkern u1="Y" u2="G" k="61" /> +<hkern u1="Y" u2="C" k="61" /> +<hkern u1="Y" u2="A" k="143" /> +<hkern u1="Y" u2="." k="164" /> +<hkern u1="Y" u2="," k="164" /> +<hkern u1="a" u2="ÿ" k="41" /> +<hkern u1="a" u2="ý" k="41" /> +<hkern u1="a" u2="y" k="41" /> +<hkern u1="a" u2="'" k="82" /> +<hkern u1="a" u2=""" k="82" /> +<hkern u1="b" u2="ÿ" k="41" /> +<hkern u1="b" u2="ý" k="41" /> +<hkern u1="b" u2="y" k="41" /> +<hkern u1="f" u2="”" k="-164" /> +<hkern u1="f" u2="’" k="-164" /> +<hkern u1="f" u2="}" k="-184" /> +<hkern u1="f" u2="]" k="-184" /> +<hkern u1="f" u2="*" k="-164" /> +<hkern u1="f" u2=")" k="-184" /> +<hkern u1="f" u2="'" k="-164" /> +<hkern u1="f" u2=""" k="-164" /> +<hkern u1="h" u2="ÿ" k="41" /> +<hkern u1="h" u2="ý" k="41" /> +<hkern u1="h" u2="y" k="41" /> +<hkern u1="h" u2="'" k="82" /> +<hkern u1="h" u2=""" k="82" /> +<hkern u1="k" u2="ø" k="41" /> +<hkern u1="k" u2="ö" k="41" /> +<hkern u1="k" u2="õ" k="41" /> +<hkern u1="k" u2="ô" k="41" /> +<hkern u1="k" u2="ó" k="41" /> +<hkern u1="k" u2="ò" k="41" /> +<hkern u1="k" u2="ð" k="41" /> +<hkern u1="k" u2="ë" k="41" /> +<hkern u1="k" u2="ê" k="41" /> +<hkern u1="k" u2="é" k="41" /> +<hkern u1="k" u2="è" k="41" /> +<hkern u1="k" u2="ç" k="41" /> +<hkern u1="k" u2="q" k="41" /> +<hkern u1="k" u2="o" k="41" /> +<hkern u1="k" u2="g" k="41" /> +<hkern u1="k" u2="e" k="41" /> +<hkern u1="k" u2="d" k="41" /> +<hkern u1="k" u2="c" k="41" /> +<hkern u1="n" u2="ÿ" k="41" /> +<hkern u1="n" u2="ý" k="41" /> +<hkern u1="n" u2="y" k="41" /> +<hkern u1="n" u2="'" k="82" /> +<hkern u1="n" u2=""" k="82" /> +<hkern u1="o" u2="ÿ" k="41" /> +<hkern u1="o" u2="ý" k="41" /> +<hkern u1="o" u2="y" k="41" /> +<hkern u1="p" u2="ÿ" k="41" /> +<hkern u1="p" u2="ý" k="41" /> +<hkern u1="p" u2="y" k="41" /> +<hkern u1="r" u2="”" k="-61" /> +<hkern u1="r" u2="’" k="-61" /> +<hkern u1="r" u2="æ" k="41" /> +<hkern u1="r" u2="å" k="41" /> +<hkern u1="r" u2="ä" k="41" /> +<hkern u1="r" u2="ã" k="41" /> +<hkern u1="r" u2="â" k="41" /> +<hkern u1="r" u2="á" k="41" /> +<hkern u1="r" u2="à" k="41" /> +<hkern u1="r" u2="a" k="41" /> +<hkern u1="r" u2="*" k="-61" /> +<hkern u1="v" u2="„" k="143" /> +<hkern u1="v" u2="‚" k="143" /> +<hkern u1="v" u2="." k="143" /> +<hkern u1="v" u2="," k="102" /> +<hkern u1="w" u2="„" k="143" /> +<hkern u1="w" u2="‚" k="143" /> +<hkern u1="w" u2="." k="143" /> +<hkern u1="w" u2="," k="143" /> +<hkern u1="y" u2="„" k="184" /> +<hkern u1="y" u2="‚" k="184" /> +<hkern u1="y" u2="." k="184" /> +<hkern u1="y" u2="," k="184" /> +<hkern u1="À" u2="”" k="143" /> +<hkern u1="À" u2="’" k="143" /> +<hkern u1="À" u2="ÿ" k="102" /> +<hkern u1="À" u2="ý" k="102" /> +<hkern u1="À" u2="ü" k="41" /> +<hkern u1="À" u2="û" k="41" /> +<hkern u1="À" u2="ú" k="41" /> +<hkern u1="À" u2="ù" k="41" /> +<hkern u1="À" u2="ø" k="41" /> +<hkern u1="À" u2="ö" k="41" /> +<hkern u1="À" u2="õ" k="41" /> +<hkern u1="À" u2="ô" k="41" /> +<hkern u1="À" u2="ó" k="41" /> +<hkern u1="À" u2="ò" k="41" /> +<hkern u1="À" u2="ð" k="41" /> +<hkern u1="À" u2="ë" k="41" /> +<hkern u1="À" u2="ê" k="41" /> +<hkern u1="À" u2="é" k="41" /> +<hkern u1="À" u2="è" k="41" /> +<hkern u1="À" u2="ç" k="41" /> +<hkern u1="À" u2="Ý" k="143" /> +<hkern u1="À" u2="Ü" k="41" /> +<hkern u1="À" u2="Û" k="41" /> +<hkern u1="À" u2="Ú" k="41" /> +<hkern u1="À" u2="Ù" k="41" /> +<hkern u1="À" u2="Ø" k="41" /> +<hkern u1="À" u2="Ö" k="41" /> +<hkern u1="À" u2="Õ" k="41" /> +<hkern u1="À" u2="Ô" k="41" /> +<hkern u1="À" u2="Ó" k="41" /> +<hkern u1="À" u2="Ò" k="41" /> +<hkern u1="À" u2="y" k="102" /> +<hkern u1="À" u2="w" k="61" /> +<hkern u1="À" u2="v" k="102" /> +<hkern u1="À" u2="u" k="41" /> +<hkern u1="À" u2="q" k="41" /> +<hkern u1="À" u2="o" k="41" /> +<hkern u1="À" u2="g" k="41" /> +<hkern u1="À" u2="e" k="41" /> +<hkern u1="À" u2="d" k="41" /> +<hkern u1="À" u2="c" k="41" /> +<hkern u1="À" u2="Y" k="143" /> +<hkern u1="À" u2="W" k="143" /> +<hkern u1="À" u2="V" k="164" /> +<hkern u1="À" u2="U" k="41" /> +<hkern u1="À" u2="T" k="123" /> +<hkern u1="À" u2="Q" k="41" /> +<hkern u1="À" u2="O" k="41" /> +<hkern u1="À" u2="G" k="41" /> +<hkern u1="À" u2="C" k="41" /> +<hkern u1="À" u2="?" k="123" /> +<hkern u1="À" u2="*" k="143" /> +<hkern u1="À" u2="'" k="164" /> +<hkern u1="À" u2=""" k="164" /> +<hkern u1="Á" u2="”" k="143" /> +<hkern u1="Á" u2="’" k="143" /> +<hkern u1="Á" u2="ÿ" k="102" /> +<hkern u1="Á" u2="ý" k="102" /> +<hkern u1="Á" u2="ü" k="41" /> +<hkern u1="Á" u2="û" k="41" /> +<hkern u1="Á" u2="ú" k="41" /> +<hkern u1="Á" u2="ù" k="41" /> +<hkern u1="Á" u2="ø" k="41" /> +<hkern u1="Á" u2="ö" k="41" /> +<hkern u1="Á" u2="õ" k="41" /> +<hkern u1="Á" u2="ô" k="41" /> +<hkern u1="Á" u2="ó" k="41" /> +<hkern u1="Á" u2="ò" k="41" /> +<hkern u1="Á" u2="ð" k="41" /> +<hkern u1="Á" u2="ë" k="41" /> +<hkern u1="Á" u2="ê" k="41" /> +<hkern u1="Á" u2="é" k="41" /> +<hkern u1="Á" u2="è" k="41" /> +<hkern u1="Á" u2="ç" k="41" /> +<hkern u1="Á" u2="Ý" k="143" /> +<hkern u1="Á" u2="Ü" k="41" /> +<hkern u1="Á" u2="Û" k="41" /> +<hkern u1="Á" u2="Ú" k="41" /> +<hkern u1="Á" u2="Ù" k="41" /> +<hkern u1="Á" u2="Ø" k="41" /> +<hkern u1="Á" u2="Ö" k="41" /> +<hkern u1="Á" u2="Õ" k="41" /> +<hkern u1="Á" u2="Ô" k="41" /> +<hkern u1="Á" u2="Ó" k="41" /> +<hkern u1="Á" u2="Ò" k="41" /> +<hkern u1="Á" u2="y" k="102" /> +<hkern u1="Á" u2="w" k="61" /> +<hkern u1="Á" u2="v" k="102" /> +<hkern u1="Á" u2="u" k="41" /> +<hkern u1="Á" u2="q" k="41" /> +<hkern u1="Á" u2="o" k="41" /> +<hkern u1="Á" u2="g" k="41" /> +<hkern u1="Á" u2="e" k="41" /> +<hkern u1="Á" u2="d" k="41" /> +<hkern u1="Á" u2="c" k="41" /> +<hkern u1="Á" u2="Y" k="143" /> +<hkern u1="Á" u2="W" k="143" /> +<hkern u1="Á" u2="V" k="164" /> +<hkern u1="Á" u2="U" k="41" /> +<hkern u1="Á" u2="T" k="123" /> +<hkern u1="Á" u2="Q" k="41" /> +<hkern u1="Á" u2="O" k="41" /> +<hkern u1="Á" u2="G" k="41" /> +<hkern u1="Á" u2="C" k="41" /> +<hkern u1="Á" u2="?" k="123" /> +<hkern u1="Á" u2="*" k="143" /> +<hkern u1="Á" u2="'" k="164" /> +<hkern u1="Á" u2=""" k="164" /> +<hkern u1="Â" u2="”" k="143" /> +<hkern u1="Â" u2="’" k="143" /> +<hkern u1="Â" u2="ÿ" k="102" /> +<hkern u1="Â" u2="ý" k="102" /> +<hkern u1="Â" u2="ü" k="41" /> +<hkern u1="Â" u2="û" k="41" /> +<hkern u1="Â" u2="ú" k="41" /> +<hkern u1="Â" u2="ù" k="41" /> +<hkern u1="Â" u2="ø" k="41" /> +<hkern u1="Â" u2="ö" k="41" /> +<hkern u1="Â" u2="õ" k="41" /> +<hkern u1="Â" u2="ô" k="41" /> +<hkern u1="Â" u2="ó" k="41" /> +<hkern u1="Â" u2="ò" k="41" /> +<hkern u1="Â" u2="ð" k="41" /> +<hkern u1="Â" u2="ë" k="41" /> +<hkern u1="Â" u2="ê" k="41" /> +<hkern u1="Â" u2="é" k="41" /> +<hkern u1="Â" u2="è" k="41" /> +<hkern u1="Â" u2="ç" k="41" /> +<hkern u1="Â" u2="Ý" k="143" /> +<hkern u1="Â" u2="Ü" k="41" /> +<hkern u1="Â" u2="Û" k="41" /> +<hkern u1="Â" u2="Ú" k="41" /> +<hkern u1="Â" u2="Ù" k="41" /> +<hkern u1="Â" u2="Ø" k="41" /> +<hkern u1="Â" u2="Ö" k="41" /> +<hkern u1="Â" u2="Õ" k="41" /> +<hkern u1="Â" u2="Ô" k="41" /> +<hkern u1="Â" u2="Ó" k="41" /> +<hkern u1="Â" u2="Ò" k="41" /> +<hkern u1="Â" u2="y" k="102" /> +<hkern u1="Â" u2="w" k="61" /> +<hkern u1="Â" u2="v" k="102" /> +<hkern u1="Â" u2="u" k="41" /> +<hkern u1="Â" u2="q" k="41" /> +<hkern u1="Â" u2="o" k="41" /> +<hkern u1="Â" u2="g" k="41" /> +<hkern u1="Â" u2="e" k="41" /> +<hkern u1="Â" u2="d" k="41" /> +<hkern u1="Â" u2="c" k="41" /> +<hkern u1="Â" u2="Y" k="143" /> +<hkern u1="Â" u2="W" k="143" /> +<hkern u1="Â" u2="V" k="164" /> +<hkern u1="Â" u2="U" k="41" /> +<hkern u1="Â" u2="T" k="123" /> +<hkern u1="Â" u2="Q" k="41" /> +<hkern u1="Â" u2="O" k="41" /> +<hkern u1="Â" u2="G" k="41" /> +<hkern u1="Â" u2="C" k="41" /> +<hkern u1="Â" u2="?" k="123" /> +<hkern u1="Â" u2="*" k="143" /> +<hkern u1="Â" u2="'" k="164" /> +<hkern u1="Â" u2=""" k="164" /> +<hkern u1="Ã" u2="”" k="143" /> +<hkern u1="Ã" u2="’" k="143" /> +<hkern u1="Ã" u2="ÿ" k="102" /> +<hkern u1="Ã" u2="ý" k="102" /> +<hkern u1="Ã" u2="ü" k="41" /> +<hkern u1="Ã" u2="û" k="41" /> +<hkern u1="Ã" u2="ú" k="41" /> +<hkern u1="Ã" u2="ù" k="41" /> +<hkern u1="Ã" u2="ø" k="41" /> +<hkern u1="Ã" u2="ö" k="41" /> +<hkern u1="Ã" u2="õ" k="41" /> +<hkern u1="Ã" u2="ô" k="41" /> +<hkern u1="Ã" u2="ó" k="41" /> +<hkern u1="Ã" u2="ò" k="41" /> +<hkern u1="Ã" u2="ð" k="41" /> +<hkern u1="Ã" u2="ë" k="41" /> +<hkern u1="Ã" u2="ê" k="41" /> +<hkern u1="Ã" u2="é" k="41" /> +<hkern u1="Ã" u2="è" k="41" /> +<hkern u1="Ã" u2="ç" k="41" /> +<hkern u1="Ã" u2="Ý" k="143" /> +<hkern u1="Ã" u2="Ü" k="41" /> +<hkern u1="Ã" u2="Û" k="41" /> +<hkern u1="Ã" u2="Ú" k="41" /> +<hkern u1="Ã" u2="Ù" k="41" /> +<hkern u1="Ã" u2="Ø" k="41" /> +<hkern u1="Ã" u2="Ö" k="41" /> +<hkern u1="Ã" u2="Õ" k="41" /> +<hkern u1="Ã" u2="Ô" k="41" /> +<hkern u1="Ã" u2="Ó" k="41" /> +<hkern u1="Ã" u2="Ò" k="41" /> +<hkern u1="Ã" u2="y" k="102" /> +<hkern u1="Ã" u2="w" k="61" /> +<hkern u1="Ã" u2="v" k="102" /> +<hkern u1="Ã" u2="u" k="41" /> +<hkern u1="Ã" u2="q" k="41" /> +<hkern u1="Ã" u2="o" k="41" /> +<hkern u1="Ã" u2="g" k="41" /> +<hkern u1="Ã" u2="e" k="41" /> +<hkern u1="Ã" u2="d" k="41" /> +<hkern u1="Ã" u2="c" k="41" /> +<hkern u1="Ã" u2="Y" k="143" /> +<hkern u1="Ã" u2="W" k="143" /> +<hkern u1="Ã" u2="V" k="164" /> +<hkern u1="Ã" u2="U" k="41" /> +<hkern u1="Ã" u2="T" k="123" /> +<hkern u1="Ã" u2="Q" k="41" /> +<hkern u1="Ã" u2="O" k="41" /> +<hkern u1="Ã" u2="G" k="41" /> +<hkern u1="Ã" u2="C" k="41" /> +<hkern u1="Ã" u2="?" k="123" /> +<hkern u1="Ã" u2="*" k="143" /> +<hkern u1="Ã" u2="'" k="164" /> +<hkern u1="Ã" u2=""" k="164" /> +<hkern u1="Ä" u2="”" k="143" /> +<hkern u1="Ä" u2="’" k="143" /> +<hkern u1="Ä" u2="ÿ" k="102" /> +<hkern u1="Ä" u2="ý" k="102" /> +<hkern u1="Ä" u2="ü" k="41" /> +<hkern u1="Ä" u2="û" k="41" /> +<hkern u1="Ä" u2="ú" k="41" /> +<hkern u1="Ä" u2="ù" k="41" /> +<hkern u1="Ä" u2="ø" k="41" /> +<hkern u1="Ä" u2="ö" k="41" /> +<hkern u1="Ä" u2="õ" k="41" /> +<hkern u1="Ä" u2="ô" k="41" /> +<hkern u1="Ä" u2="ó" k="41" /> +<hkern u1="Ä" u2="ò" k="41" /> +<hkern u1="Ä" u2="ð" k="41" /> +<hkern u1="Ä" u2="ë" k="41" /> +<hkern u1="Ä" u2="ê" k="41" /> +<hkern u1="Ä" u2="é" k="41" /> +<hkern u1="Ä" u2="è" k="41" /> +<hkern u1="Ä" u2="ç" k="41" /> +<hkern u1="Ä" u2="Ý" k="143" /> +<hkern u1="Ä" u2="Ü" k="41" /> +<hkern u1="Ä" u2="Û" k="41" /> +<hkern u1="Ä" u2="Ú" k="41" /> +<hkern u1="Ä" u2="Ù" k="41" /> +<hkern u1="Ä" u2="Ø" k="41" /> +<hkern u1="Ä" u2="Ö" k="41" /> +<hkern u1="Ä" u2="Õ" k="41" /> +<hkern u1="Ä" u2="Ô" k="41" /> +<hkern u1="Ä" u2="Ó" k="41" /> +<hkern u1="Ä" u2="Ò" k="41" /> +<hkern u1="Ä" u2="y" k="102" /> +<hkern u1="Ä" u2="w" k="61" /> +<hkern u1="Ä" u2="v" k="102" /> +<hkern u1="Ä" u2="u" k="41" /> +<hkern u1="Ä" u2="q" k="41" /> +<hkern u1="Ä" u2="o" k="41" /> +<hkern u1="Ä" u2="g" k="41" /> +<hkern u1="Ä" u2="e" k="41" /> +<hkern u1="Ä" u2="d" k="41" /> +<hkern u1="Ä" u2="c" k="41" /> +<hkern u1="Ä" u2="Y" k="143" /> +<hkern u1="Ä" u2="W" k="143" /> +<hkern u1="Ä" u2="V" k="164" /> +<hkern u1="Ä" u2="U" k="41" /> +<hkern u1="Ä" u2="T" k="123" /> +<hkern u1="Ä" u2="Q" k="41" /> +<hkern u1="Ä" u2="O" k="41" /> +<hkern u1="Ä" u2="G" k="41" /> +<hkern u1="Ä" u2="C" k="41" /> +<hkern u1="Ä" u2="?" k="123" /> +<hkern u1="Ä" u2="*" k="143" /> +<hkern u1="Ä" u2="'" k="164" /> +<hkern u1="Ä" u2=""" k="164" /> +<hkern u1="Å" u2="”" k="143" /> +<hkern u1="Å" u2="’" k="143" /> +<hkern u1="Å" u2="ÿ" k="102" /> +<hkern u1="Å" u2="ý" k="102" /> +<hkern u1="Å" u2="ü" k="41" /> +<hkern u1="Å" u2="û" k="41" /> +<hkern u1="Å" u2="ú" k="41" /> +<hkern u1="Å" u2="ù" k="41" /> +<hkern u1="Å" u2="ø" k="41" /> +<hkern u1="Å" u2="ö" k="41" /> +<hkern u1="Å" u2="õ" k="41" /> +<hkern u1="Å" u2="ô" k="41" /> +<hkern u1="Å" u2="ó" k="41" /> +<hkern u1="Å" u2="ò" k="41" /> +<hkern u1="Å" u2="ð" k="41" /> +<hkern u1="Å" u2="ë" k="41" /> +<hkern u1="Å" u2="ê" k="41" /> +<hkern u1="Å" u2="é" k="41" /> +<hkern u1="Å" u2="è" k="41" /> +<hkern u1="Å" u2="ç" k="41" /> +<hkern u1="Å" u2="Ý" k="143" /> +<hkern u1="Å" u2="Ü" k="41" /> +<hkern u1="Å" u2="Û" k="41" /> +<hkern u1="Å" u2="Ú" k="41" /> +<hkern u1="Å" u2="Ù" k="41" /> +<hkern u1="Å" u2="Ø" k="41" /> +<hkern u1="Å" u2="Ö" k="41" /> +<hkern u1="Å" u2="Õ" k="41" /> +<hkern u1="Å" u2="Ô" k="41" /> +<hkern u1="Å" u2="Ó" k="41" /> +<hkern u1="Å" u2="Ò" k="41" /> +<hkern u1="Å" u2="y" k="102" /> +<hkern u1="Å" u2="w" k="61" /> +<hkern u1="Å" u2="v" k="102" /> +<hkern u1="Å" u2="u" k="41" /> +<hkern u1="Å" u2="q" k="41" /> +<hkern u1="Å" u2="o" k="41" /> +<hkern u1="Å" u2="g" k="41" /> +<hkern u1="Å" u2="e" k="41" /> +<hkern u1="Å" u2="d" k="41" /> +<hkern u1="Å" u2="c" k="41" /> +<hkern u1="Å" u2="Y" k="143" /> +<hkern u1="Å" u2="W" k="143" /> +<hkern u1="Å" u2="V" k="164" /> +<hkern u1="Å" u2="U" k="41" /> +<hkern u1="Å" u2="T" k="123" /> +<hkern u1="Å" u2="Q" k="41" /> +<hkern u1="Å" u2="O" k="41" /> +<hkern u1="Å" u2="G" k="41" /> +<hkern u1="Å" u2="C" k="41" /> +<hkern u1="Å" u2="?" k="123" /> +<hkern u1="Å" u2="*" k="143" /> +<hkern u1="Å" u2="'" k="164" /> +<hkern u1="Å" u2=""" k="164" /> +<hkern u1="Æ" u2="Ý" k="41" /> +<hkern u1="Æ" u2="Y" k="41" /> +<hkern u1="Æ" u2="W" k="41" /> +<hkern u1="Æ" u2="V" k="41" /> +<hkern u1="È" u2="Ý" k="41" /> +<hkern u1="È" u2="Y" k="41" /> +<hkern u1="È" u2="W" k="41" /> +<hkern u1="È" u2="V" k="41" /> +<hkern u1="É" u2="Ý" k="41" /> +<hkern u1="É" u2="Y" k="41" /> +<hkern u1="É" u2="W" k="41" /> +<hkern u1="É" u2="V" k="41" /> +<hkern u1="Ê" u2="Ý" k="41" /> +<hkern u1="Ê" u2="Y" k="41" /> +<hkern u1="Ê" u2="W" k="41" /> +<hkern u1="Ê" u2="V" k="41" /> +<hkern u1="Ë" u2="Ý" k="41" /> +<hkern u1="Ë" u2="Y" k="41" /> +<hkern u1="Ë" u2="W" k="41" /> +<hkern u1="Ë" u2="V" k="41" /> +<hkern u1="Ð" u2="Ý" k="61" /> +<hkern u1="Ð" u2="Æ" k="102" /> +<hkern u1="Ð" u2="Å" k="41" /> +<hkern u1="Ð" u2="Ä" k="41" /> +<hkern u1="Ð" u2="Ã" k="41" /> +<hkern u1="Ð" u2="Â" k="41" /> +<hkern u1="Ð" u2="Á" k="41" /> +<hkern u1="Ð" u2="À" k="41" /> +<hkern u1="Ð" u2="Y" k="61" /> +<hkern u1="Ð" u2="X" k="41" /> +<hkern u1="Ð" u2="W" k="41" /> +<hkern u1="Ð" u2="V" k="41" /> +<hkern u1="Ð" u2="T" k="41" /> +<hkern u1="Ð" u2="A" k="41" /> +<hkern u1="Ð" u2="?" k="41" /> +<hkern u1="Ò" u2="Ý" k="61" /> +<hkern u1="Ò" u2="Æ" k="102" /> +<hkern u1="Ò" u2="Å" k="41" /> +<hkern u1="Ò" u2="Ä" k="41" /> +<hkern u1="Ò" u2="Ã" k="41" /> +<hkern u1="Ò" u2="Â" k="41" /> +<hkern u1="Ò" u2="Á" k="41" /> +<hkern u1="Ò" u2="À" k="41" /> +<hkern u1="Ò" u2="Y" k="61" /> +<hkern u1="Ò" u2="X" k="41" /> +<hkern u1="Ò" u2="W" k="41" /> +<hkern u1="Ò" u2="V" k="41" /> +<hkern u1="Ò" u2="T" k="41" /> +<hkern u1="Ò" u2="A" k="41" /> +<hkern u1="Ò" u2="?" k="41" /> +<hkern u1="Ó" u2="Ý" k="61" /> +<hkern u1="Ó" u2="Æ" k="102" /> +<hkern u1="Ó" u2="Å" k="41" /> +<hkern u1="Ó" u2="Ä" k="41" /> +<hkern u1="Ó" u2="Ã" k="41" /> +<hkern u1="Ó" u2="Â" k="41" /> +<hkern u1="Ó" u2="Á" k="41" /> +<hkern u1="Ó" u2="À" k="41" /> +<hkern u1="Ó" u2="Y" k="61" /> +<hkern u1="Ó" u2="X" k="41" /> +<hkern u1="Ó" u2="W" k="41" /> +<hkern u1="Ó" u2="V" k="41" /> +<hkern u1="Ó" u2="T" k="41" /> +<hkern u1="Ó" u2="A" k="41" /> +<hkern u1="Ó" u2="?" k="41" /> +<hkern u1="Ô" u2="Ý" k="61" /> +<hkern u1="Ô" u2="Æ" k="102" /> +<hkern u1="Ô" u2="Å" k="41" /> +<hkern u1="Ô" u2="Ä" k="41" /> +<hkern u1="Ô" u2="Ã" k="41" /> +<hkern u1="Ô" u2="Â" k="41" /> +<hkern u1="Ô" u2="Á" k="41" /> +<hkern u1="Ô" u2="À" k="41" /> +<hkern u1="Ô" u2="Y" k="61" /> +<hkern u1="Ô" u2="X" k="41" /> +<hkern u1="Ô" u2="W" k="41" /> +<hkern u1="Ô" u2="V" k="41" /> +<hkern u1="Ô" u2="T" k="41" /> +<hkern u1="Ô" u2="A" k="41" /> +<hkern u1="Ô" u2="?" k="41" /> +<hkern u1="Õ" u2="Ý" k="61" /> +<hkern u1="Õ" u2="Æ" k="102" /> +<hkern u1="Õ" u2="Å" k="41" /> +<hkern u1="Õ" u2="Ä" k="41" /> +<hkern u1="Õ" u2="Ã" k="41" /> +<hkern u1="Õ" u2="Â" k="41" /> +<hkern u1="Õ" u2="Á" k="41" /> +<hkern u1="Õ" u2="À" k="41" /> +<hkern u1="Õ" u2="Y" k="61" /> +<hkern u1="Õ" u2="X" k="41" /> +<hkern u1="Õ" u2="W" k="41" /> +<hkern u1="Õ" u2="V" k="41" /> +<hkern u1="Õ" u2="T" k="41" /> +<hkern u1="Õ" u2="A" k="41" /> +<hkern u1="Õ" u2="?" k="41" /> +<hkern u1="Ö" u2="Ý" k="61" /> +<hkern u1="Ö" u2="Æ" k="102" /> +<hkern u1="Ö" u2="Å" k="41" /> +<hkern u1="Ö" u2="Ä" k="41" /> +<hkern u1="Ö" u2="Ã" k="41" /> +<hkern u1="Ö" u2="Â" k="41" /> +<hkern u1="Ö" u2="Á" k="41" /> +<hkern u1="Ö" u2="À" k="41" /> +<hkern u1="Ö" u2="Y" k="61" /> +<hkern u1="Ö" u2="X" k="41" /> +<hkern u1="Ö" u2="W" k="41" /> +<hkern u1="Ö" u2="V" k="41" /> +<hkern u1="Ö" u2="T" k="41" /> +<hkern u1="Ö" u2="A" k="41" /> +<hkern u1="Ö" u2="?" k="41" /> +<hkern u1="Ø" u2="Ý" k="61" /> +<hkern u1="Ø" u2="Æ" k="102" /> +<hkern u1="Ø" u2="Å" k="41" /> +<hkern u1="Ø" u2="Ä" k="41" /> +<hkern u1="Ø" u2="Ã" k="41" /> +<hkern u1="Ø" u2="Â" k="41" /> +<hkern u1="Ø" u2="Á" k="41" /> +<hkern u1="Ø" u2="À" k="41" /> +<hkern u1="Ø" u2="Y" k="61" /> +<hkern u1="Ø" u2="X" k="41" /> +<hkern u1="Ø" u2="W" k="41" /> +<hkern u1="Ø" u2="V" k="41" /> +<hkern u1="Ø" u2="T" k="41" /> +<hkern u1="Ø" u2="A" k="41" /> +<hkern u1="Ø" u2="?" k="41" /> +<hkern u1="Ù" u2="Å" k="41" /> +<hkern u1="Ù" u2="Ä" k="41" /> +<hkern u1="Ù" u2="Ã" k="41" /> +<hkern u1="Ù" u2="Â" k="41" /> +<hkern u1="Ù" u2="Á" k="41" /> +<hkern u1="Ù" u2="À" k="41" /> +<hkern u1="Ù" u2="A" k="41" /> +<hkern u1="Ú" u2="Å" k="41" /> +<hkern u1="Ú" u2="Ä" k="41" /> +<hkern u1="Ú" u2="Ã" k="41" /> +<hkern u1="Ú" u2="Â" k="41" /> +<hkern u1="Ú" u2="Á" k="41" /> +<hkern u1="Ú" u2="À" k="41" /> +<hkern u1="Ú" u2="A" k="41" /> +<hkern u1="Û" u2="Å" k="41" /> +<hkern u1="Û" u2="Ä" k="41" /> +<hkern u1="Û" u2="Ã" k="41" /> +<hkern u1="Û" u2="Â" k="41" /> +<hkern u1="Û" u2="Á" k="41" /> +<hkern u1="Û" u2="À" k="41" /> +<hkern u1="Û" u2="A" k="41" /> +<hkern u1="Ü" u2="Å" k="41" /> +<hkern u1="Ü" u2="Ä" k="41" /> +<hkern u1="Ü" u2="Ã" k="41" /> +<hkern u1="Ü" u2="Â" k="41" /> +<hkern u1="Ü" u2="Á" k="41" /> +<hkern u1="Ü" u2="À" k="41" /> +<hkern u1="Ü" u2="A" k="41" /> +<hkern u1="Ý" u2="„" k="164" /> +<hkern u1="Ý" u2="‚" k="164" /> +<hkern u1="Ý" u2="ø" k="143" /> +<hkern u1="Ý" u2="ö" k="143" /> +<hkern u1="Ý" u2="õ" k="143" /> +<hkern u1="Ý" u2="ô" k="143" /> +<hkern u1="Ý" u2="ó" k="143" /> +<hkern u1="Ý" u2="ò" k="143" /> +<hkern u1="Ý" u2="ð" k="143" /> +<hkern u1="Ý" u2="ë" k="143" /> +<hkern u1="Ý" u2="ê" k="143" /> +<hkern u1="Ý" u2="é" k="143" /> +<hkern u1="Ý" u2="è" k="143" /> +<hkern u1="Ý" u2="ç" k="143" /> +<hkern u1="Ý" u2="æ" k="123" /> +<hkern u1="Ý" u2="å" k="123" /> +<hkern u1="Ý" u2="ä" k="123" /> +<hkern u1="Ý" u2="ã" k="123" /> +<hkern u1="Ý" u2="â" k="123" /> +<hkern u1="Ý" u2="á" k="123" /> +<hkern u1="Ý" u2="à" k="123" /> +<hkern u1="Ý" u2="Ø" k="61" /> +<hkern u1="Ý" u2="Ö" k="61" /> +<hkern u1="Ý" u2="Õ" k="61" /> +<hkern u1="Ý" u2="Ô" k="61" /> +<hkern u1="Ý" u2="Ó" k="61" /> +<hkern u1="Ý" u2="Ò" k="61" /> +<hkern u1="Ý" u2="Æ" k="184" /> +<hkern u1="Ý" u2="Å" k="143" /> +<hkern u1="Ý" u2="Ä" k="143" /> +<hkern u1="Ý" u2="Ã" k="143" /> +<hkern u1="Ý" u2="Â" k="143" /> +<hkern u1="Ý" u2="Á" k="143" /> +<hkern u1="Ý" u2="À" k="143" /> +<hkern u1="Ý" u2="s" k="123" /> +<hkern u1="Ý" u2="q" k="143" /> +<hkern u1="Ý" u2="o" k="143" /> +<hkern u1="Ý" u2="g" k="143" /> +<hkern u1="Ý" u2="e" k="143" /> +<hkern u1="Ý" u2="d" k="143" /> +<hkern u1="Ý" u2="c" k="143" /> +<hkern u1="Ý" u2="a" k="123" /> +<hkern u1="Ý" u2="S" k="41" /> +<hkern u1="Ý" u2="Q" k="61" /> +<hkern u1="Ý" u2="O" k="61" /> +<hkern u1="Ý" u2="G" k="61" /> +<hkern u1="Ý" u2="C" k="61" /> +<hkern u1="Ý" u2="A" k="143" /> +<hkern u1="Ý" u2="." k="164" /> +<hkern u1="Ý" u2="," k="164" /> +<hkern u1="Þ" u2="Ý" k="61" /> +<hkern u1="Þ" u2="Æ" k="102" /> +<hkern u1="Þ" u2="Å" k="41" /> +<hkern u1="Þ" u2="Ä" k="41" /> +<hkern u1="Þ" u2="Ã" k="41" /> +<hkern u1="Þ" u2="Â" k="41" /> +<hkern u1="Þ" u2="Á" k="41" /> +<hkern u1="Þ" u2="À" k="41" /> +<hkern u1="Þ" u2="Y" k="61" /> +<hkern u1="Þ" u2="X" k="41" /> +<hkern u1="Þ" u2="W" k="41" /> +<hkern u1="Þ" u2="V" k="41" /> +<hkern u1="Þ" u2="T" k="41" /> +<hkern u1="Þ" u2="A" k="41" /> +<hkern u1="Þ" u2="?" k="41" /> +<hkern u1="ß" u2="ÿ" k="41" /> +<hkern u1="ß" u2="ý" k="41" /> +<hkern u1="ß" u2="y" k="41" /> +<hkern u1="à" u2="ÿ" k="41" /> +<hkern u1="à" u2="ý" k="41" /> +<hkern u1="à" u2="y" k="41" /> +<hkern u1="à" u2="'" k="82" /> +<hkern u1="à" u2=""" k="82" /> +<hkern u1="á" u2="ÿ" k="41" /> +<hkern u1="á" u2="ý" k="41" /> +<hkern u1="á" u2="y" k="41" /> +<hkern u1="á" u2="'" k="82" /> +<hkern u1="á" u2=""" k="82" /> +<hkern u1="â" u2="ÿ" k="41" /> +<hkern u1="â" u2="ý" k="41" /> +<hkern u1="â" u2="y" k="41" /> +<hkern u1="â" u2="'" k="82" /> +<hkern u1="â" u2=""" k="82" /> +<hkern u1="ã" u2="ÿ" k="41" /> +<hkern u1="ã" u2="ý" k="41" /> +<hkern u1="ã" u2="y" k="41" /> +<hkern u1="ã" u2="'" k="82" /> +<hkern u1="ã" u2=""" k="82" /> +<hkern u1="ä" u2="ÿ" k="41" /> +<hkern u1="ä" u2="ý" k="41" /> +<hkern u1="ä" u2="y" k="41" /> +<hkern u1="ä" u2="'" k="82" /> +<hkern u1="ä" u2=""" k="82" /> +<hkern u1="å" u2="ÿ" k="41" /> +<hkern u1="å" u2="ý" k="41" /> +<hkern u1="å" u2="y" k="41" /> +<hkern u1="å" u2="'" k="82" /> +<hkern u1="å" u2=""" k="82" /> +<hkern u1="ð" u2="ÿ" k="41" /> +<hkern u1="ð" u2="ý" k="41" /> +<hkern u1="ð" u2="y" k="41" /> +<hkern u1="ñ" u2="ÿ" k="41" /> +<hkern u1="ñ" u2="ý" k="41" /> +<hkern u1="ñ" u2="y" k="41" /> +<hkern u1="ñ" u2="'" k="82" /> +<hkern u1="ñ" u2=""" k="82" /> +<hkern u1="ò" u2="ÿ" k="41" /> +<hkern u1="ò" u2="ý" k="41" /> +<hkern u1="ò" u2="y" k="41" /> +<hkern u1="ó" u2="ÿ" k="41" /> +<hkern u1="ó" u2="ý" k="41" /> +<hkern u1="ó" u2="y" k="41" /> +<hkern u1="ô" u2="ÿ" k="41" /> +<hkern u1="ô" u2="ý" k="41" /> +<hkern u1="ô" u2="y" k="41" /> +<hkern u1="õ" u2="ÿ" k="41" /> +<hkern u1="õ" u2="ý" k="41" /> +<hkern u1="õ" u2="y" k="41" /> +<hkern u1="ö" u2="ÿ" k="41" /> +<hkern u1="ö" u2="ý" k="41" /> +<hkern u1="ö" u2="y" k="41" /> +<hkern u1="ø" u2="ÿ" k="41" /> +<hkern u1="ø" u2="ý" k="41" /> +<hkern u1="ø" u2="y" k="41" /> +<hkern u1="ý" u2="„" k="184" /> +<hkern u1="ý" u2="‚" k="184" /> +<hkern u1="ý" u2="." k="184" /> +<hkern u1="ý" u2="," k="184" /> +<hkern u1="þ" u2="ÿ" k="41" /> +<hkern u1="þ" u2="ý" k="41" /> +<hkern u1="þ" u2="y" k="41" /> +<hkern u1="ÿ" u2="„" k="184" /> +<hkern u1="ÿ" u2="‚" k="184" /> +<hkern u1="ÿ" u2="." k="184" /> +<hkern u1="ÿ" u2="," k="184" /> +<hkern u1="‘" u2="Æ" k="287" /> +<hkern u1="‘" u2="Å" k="143" /> +<hkern u1="‘" u2="Ä" k="143" /> +<hkern u1="‘" u2="Ã" k="143" /> +<hkern u1="‘" u2="Â" k="143" /> +<hkern u1="‘" u2="Á" k="143" /> +<hkern u1="‘" u2="À" k="143" /> +<hkern u1="‘" u2="A" k="143" /> +<hkern u1="’" u2="s" k="102" /> +<hkern u1="“" u2="Æ" k="287" /> +<hkern u1="“" u2="Å" k="143" /> +<hkern u1="“" u2="Ä" k="143" /> +<hkern u1="“" u2="Ã" k="143" /> +<hkern u1="“" u2="Â" k="143" /> +<hkern u1="“" u2="Á" k="143" /> +<hkern u1="“" u2="À" k="143" /> +<hkern u1="“" u2="A" k="143" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/droidserif-italic-webfont.ttf b/web/static/fonts/droidserif-italic-webfont.ttf Binary files differnew file mode 100755 index 000000000..72a20f1cb --- /dev/null +++ b/web/static/fonts/droidserif-italic-webfont.ttf diff --git a/web/static/fonts/droidserif-italic-webfont.woff b/web/static/fonts/droidserif-italic-webfont.woff Binary files differnew file mode 100755 index 000000000..c47ffa875 --- /dev/null +++ b/web/static/fonts/droidserif-italic-webfont.woff diff --git a/web/static/fonts/droidserif-italic-webfont.woff2 b/web/static/fonts/droidserif-italic-webfont.woff2 Binary files differnew file mode 100755 index 000000000..b7514c352 --- /dev/null +++ b/web/static/fonts/droidserif-italic-webfont.woff2 diff --git a/web/static/fonts/exo2-bold-webfont.eot b/web/static/fonts/exo2-bold-webfont.eot Binary files differnew file mode 100755 index 000000000..3a9eed760 --- /dev/null +++ b/web/static/fonts/exo2-bold-webfont.eot diff --git a/web/static/fonts/exo2-bold-webfont.svg b/web/static/fonts/exo2-bold-webfont.svg new file mode 100755 index 000000000..ee6f678e6 --- /dev/null +++ b/web/static/fonts/exo2-bold-webfont.svg @@ -0,0 +1,1717 @@ +<?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="exo_2bold" horiz-adv-x="1331" > +<font-face units-per-em="2048" ascent="1638" descent="-410" /> +<missing-glyph horiz-adv-x="444" /> +<glyph horiz-adv-x="0" /> +<glyph unicode="
" horiz-adv-x="681" /> +<glyph unicode=" " horiz-adv-x="444" /> +<glyph unicode="	" horiz-adv-x="444" /> +<glyph unicode=" " horiz-adv-x="444" /> +<glyph unicode="!" horiz-adv-x="614" d="M156 870v553h301v-553l-31 -421h-238zM166 106v99q0 59 23.5 81.5t82.5 22.5h70q59 0 83 -22.5t24 -81.5v-99q0 -59 -24 -82.5t-83 -23.5h-70q-59 0 -82.5 23.5t-23.5 82.5z" /> +<glyph unicode=""" horiz-adv-x="768" d="M109 1413h221l-19 -452h-186zM438 1413h224l-19 -452h-186z" /> +<glyph unicode="#" horiz-adv-x="1454" d="M66 403l34 183h236l49 286h-233l34 181h232l61 360h230l-64 -360h287l61 360h230l-64 -360h230l-35 -181h-226l-49 -286h224l-35 -183h-221l-70 -403h-229l69 403h-285l-69 -403h-230l70 403h-237zM565 586h285l49 286h-285z" /> +<glyph unicode="$" horiz-adv-x="1181" d="M92 1049q0 156 50.5 240.5t149.5 116.5t277 34l19 184h227l-20 -192q147 -14 264 -48l-19 -213q-178 6 -438 7q-121 0 -162 -21.5t-41 -107.5q0 -70 32 -100.5t118 -59.5l262 -92q162 -57 228.5 -156.5t66.5 -259.5q0 -225 -103.5 -313t-361.5 -93l-20 -221h-228l21 228 q-141 10 -308 45l21 229q342 -8 461 -8q123 0 165 25.5t42 105.5q0 72 -29 101.5t-107 54.5l-278 100q-156 57 -222.5 155.5t-66.5 258.5z" /> +<glyph unicode="%" horiz-adv-x="1857" d="M70 1020q0 236 77.5 328t272.5 92q197 0 274.5 -92.5t77.5 -327.5q0 -233 -78 -326.5t-274 -93.5q-195 0 -272.5 93t-77.5 327zM293 1020q0 -154 25.5 -203t99.5 -49q78 0 103.5 49t25.5 203t-25.5 203t-103.5 49q-74 0 -99.5 -50.5t-25.5 -201.5zM406 0l847 1413h193 l-846 -1413h-194zM1087 397q0 233 77 326.5t272 93.5q197 0 274.5 -93t77.5 -327q0 -236 -78 -329t-274 -93q-195 0 -272 93.5t-77 328.5zM1311 397q-2 -154 23.5 -203t101 -49t101.5 49.5t26 202.5q0 152 -26 201t-101.5 49t-101 -48t-23.5 -202z" /> +<glyph unicode="&" horiz-adv-x="1566" d="M104 358q0 170 64.5 264.5t214.5 106.5v8q-125 12 -180.5 92t-55.5 238q0 123 29 196.5t101.5 111.5t165 50.5t253.5 12.5q201 0 334 -25l-37 -215q-209 6 -305 6q-135 0 -180 -34.5t-45 -149.5q0 -109 40 -147.5t150 -38.5h312l20 217h254v-217h219v-211h-219v-297 q0 -59 21.5 -82t76.5 -23h127l33 -205q-106 -41 -260 -41q-203 0 -262 150q-84 -80 -185.5 -115t-257.5 -35q-231 0 -329.5 86t-98.5 297zM434 420q0 -117 37 -156t150 -39q203 4 333 92v306h-317q-119 0 -161 -42t-42 -161z" /> +<glyph unicode="'" horiz-adv-x="436" d="M109 1413h221l-19 -452h-186z" /> +<glyph unicode="(" horiz-adv-x="747" d="M80 639q0 408 143.5 645.5t450.5 333.5l35 -131q-336 -154 -336 -846q0 -682 336 -848l-35 -131q-307 98 -450.5 334.5t-143.5 642.5z" /> +<glyph unicode=")" horiz-adv-x="747" d="M39 -207q336 166 336 848q0 692 -336 846l35 131q307 -96 450.5 -333.5t143.5 -645.5q0 -406 -143.5 -642.5t-450.5 -334.5z" /> +<glyph unicode="*" horiz-adv-x="925" d="M78 1094l51 159l238 -100v-74l-37 -45zM184 809l219 262l-24 344h168l-25 -342l217 -264l-133 -100l-143 249l-144 -247zM559 1079v74l238 100l51 -159l-250 -60z" /> +<glyph unicode="+" horiz-adv-x="1103" d="M86 506v221h352v344h226v-344h354v-221h-354v-342h-224v342h-354z" /> +<glyph unicode="," horiz-adv-x="497" d="M102 94l2 111q2 59 26 81.5t83 22.5h72q59 0 81.5 -22.5t22.5 -81.5v-131q0 -205 -104 -375l-125 39q29 121 28 262q-82 0 -86 94z" /> +<glyph unicode="-" horiz-adv-x="847" d="M119 422v199h610v-199h-610z" /> +<glyph unicode="." horiz-adv-x="503" d="M104 106v99q0 59 24 81.5t83 22.5h82q59 0 82.5 -22.5t23.5 -81.5v-99q0 -59 -23.5 -82.5t-82.5 -23.5h-82q-59 0 -83 23.5t-24 82.5z" /> +<glyph unicode="/" horiz-adv-x="1126" d="M41 -147l805 1560h239l-804 -1560h-240z" /> +<glyph unicode="0" horiz-adv-x="1288" d="M100 706.5q0 405.5 121 569.5t422 164q303 0 424 -164t121 -569.5t-121 -569.5t-424 -164q-301 0 -422 164t-121 569.5zM408 706.5q0 -286.5 48 -386t185 -99.5q141 0 190.5 99.5t49.5 386t-49.5 386t-190.5 99.5q-137 0 -185 -99.5t-48 -386z" /> +<glyph unicode="1" horiz-adv-x="878" d="M23 1272l354 141h311v-1413h-311v995q0 90 12 154l-330 -86z" /> +<glyph unicode="2" horiz-adv-x="1183" d="M92 0v174q0 80 45 127l346 373q254 264 252 403q-2 59 -45 76.5t-147 17.5q-217 0 -426 -18l-13 236q238 49 475.5 49t355.5 -70t118 -258q0 -127 -46 -224.5t-184 -242.5l-362 -377q78 14 209 15h424v-281h-1002z" /> +<glyph unicode="3" horiz-adv-x="1159" d="M84 10l12 234q229 -14 389 -15q150 0 205 42t55 163q0 104 -45 150.5t-172 44.5h-264v213h264q123 0 159 46t34 142q0 100 -43 128t-176 28q-176 0 -377 -8l-14 225q227 37 444 37q252 0 356.5 -72t104.5 -256q0 -160 -47 -248t-168 -108v-8q137 -23 193.5 -108 t58.5 -247q4 -223 -106.5 -321.5t-377.5 -98.5q-209 0 -485 37z" /> +<glyph unicode="4" horiz-adv-x="1302" d="M66 541l366 872h295l-336 -813q-14 -35 -2 -51.5t43 -16.5h342v381l51 226h238v-607h176v-192l-172 -29h-4v-311h-289v311h-559q-92 0 -138 72t-11 158z" /> +<glyph unicode="5" horiz-adv-x="1128" d="M78 20l28 242q227 -25 365 -24q154 0 206 45t56 155q6 127 -59.5 164t-270.5 55l-172 21q-45 4 -72.5 37t-25.5 78l35 620h831l-10 -242h-579l-17 -256l203 -24q244 -27 345 -141.5t101 -317.5q0 -457 -493 -457q-205 0 -471 45z" /> +<glyph unicode="6" horiz-adv-x="1204" d="M104 692q0 193 25 326t69 215t120.5 128t162.5 61.5t213 15.5q201 0 334 -37l-16 -205q-106 4 -318 4q-160 0 -218 -69.5t-68 -301.5q113 102 311 103q229 0 316 -101.5t87 -347.5q0 -131 -20.5 -219t-72.5 -156.5t-151.5 -100.5t-250.5 -32q-213 0 -322.5 62.5t-155 213 t-45.5 441.5zM406 631q2 -266 39 -341t184 -75q129 0 163.5 56.5t34.5 205.5q0 133 -39.5 180.5t-158.5 47.5q-111 0 -223 -74z" /> +<glyph unicode="7" horiz-adv-x="1077" d="M55 1413h848q78 0 114 -48t11 -118l-428 -1247h-307l358 1024q25 76 60 133h-643z" /> +<glyph unicode="8" horiz-adv-x="1267" d="M109 352q-1 354 243 377v8q-106 12 -157.5 101.5t-51.5 222.5q0 207 101.5 292t390.5 85t390 -85t101 -292q0 -133 -52 -222t-156 -102v-8q135 -12 188 -110.5t53 -266.5q0 -207 -108.5 -292t-415.5 -87q-305 -2 -415.5 85t-110.5 294zM401 416q0 -119 47.5 -160 t188.5 -41q137 0 182 41t45 160q0 127 -44 168t-181 41q-143 0 -190.5 -42t-47.5 -167zM424 1024q0 -109 43 -145.5t172 -36.5q127 0 166 35.5t39 146.5q0 115 -40 152.5t-167 37.5q-129 0 -171 -37.5t-42 -152.5z" /> +<glyph unicode="9" horiz-adv-x="1204" d="M86 930q-2 270 108.5 389t389.5 119q133 0 220 -21.5t146.5 -67.5t90 -134.5t43 -202t12.5 -291.5q0 -238 -30 -383t-105.5 -226t-179 -109t-273.5 -28q-213 0 -363 37l19 207q115 -4 342 -4q160 0 220 77t69 296q-115 -106 -314 -107q-395 0 -395 449zM379 936 q-2 -125 40 -177t154 -52q106 0 224 77q0 264 -36 340t-179 76q-127 0 -166 -59.5t-37 -204.5z" /> +<glyph unicode=":" horiz-adv-x="530" d="M106 106v99q0 59 24 82.5t83 23.5h82q59 0 82.5 -23.5t23.5 -82.5v-99q0 -59 -23.5 -82.5t-82.5 -23.5h-82q-59 0 -83 23.5t-24 82.5zM106 719v98q0 59 24 83t83 24h82q59 0 82.5 -23.5t23.5 -83.5v-98q0 -59 -23.5 -82t-82.5 -23h-82q-59 0 -83 22.5t-24 82.5z" /> +<glyph unicode=";" horiz-adv-x="530" d="M119 94l4 111q2 59 25.5 81.5t80.5 22.5h72q59 0 82 -22.5t25 -81.5v-131q-2 -207 -107 -375l-125 39q27 104 31 262q-84 0 -88 94zM121 719v98q0 59 23.5 83t82.5 24h82q59 0 83 -23.5t24 -83.5v-98q0 -59 -23.5 -82t-83.5 -23h-82q-59 0 -82.5 22.5t-23.5 82.5z" /> +<glyph unicode="<" horiz-adv-x="1060" d="M82 500v233l860 338v-235l-604 -220l604 -219v-235z" /> +<glyph unicode="=" horiz-adv-x="1185" d="M123 283v215h940v-215h-940zM123 719v215h940v-215h-940z" /> +<glyph unicode=">" horiz-adv-x="1058" d="M117 162v235l604 219l-604 220v235l860 -338v-233z" /> +<glyph unicode="?" horiz-adv-x="1056" d="M63 1409q23 4 83.5 15.5t85 14.5t77.5 9t111.5 8t136.5 2q221 0 329.5 -77.5t108.5 -239.5q0 -82 -35.5 -152.5t-87 -124t-104.5 -109t-94 -134t-47 -172.5h-246q-4 123 39 227t97 163.5t103.5 125t53.5 116.5q6 68 -39 99.5t-150 31.5q-180 0 -411 -10zM360 106v99 q0 59 24 81.5t83 22.5h72q59 0 82.5 -22.5t23.5 -81.5v-99q0 -59 -23.5 -82.5t-82.5 -23.5h-72q-59 0 -83 23.5t-24 82.5z" /> +<glyph unicode="@" horiz-adv-x="1548" d="M117 549q0 162 6 259t32.5 181t65.5 125t117 70.5t174 38t252 8.5h311q178 0 267.5 -79t89.5 -261v-615h-224l-26 142q-57 -66 -152.5 -115t-206.5 -49q-127 0 -207.5 67.5t-80.5 190.5v98q0 106 67.5 166t192.5 60h356v51q0 70 -29.5 94.5t-107.5 24.5h-250 q-96 0 -142.5 -2.5t-96.5 -18.5t-68.5 -40.5t-37 -80t-21.5 -126t-3 -189.5q0 -123 3 -194.5t27 -129t42 -81t83.5 -39t117 -16.5t174.5 -1h10h578v-203q-354 -27 -576 -26q-176 0 -285.5 7t-198.5 36.5t-134.5 71.5t-75 127t-36.5 184.5t-7 263.5zM807 559q0 -94 98 -94 q143 0 246 90v129l-248 -8q-53 -2 -74.5 -21.5t-21.5 -62.5v-33z" /> +<glyph unicode="A" d="M2 0l408 1331q8 37 38.5 59.5t69.5 22.5h295q88 0 109 -82l407 -1331h-317l-103 371h-485l-102 -371h-320zM489 612h353l-119 432q-25 102 -29 134h-55q-4 -20 -14.5 -65.5t-16.5 -68.5z" /> +<glyph unicode="B" horiz-adv-x="1304" d="M143 0v1413q182 16 531 17q283 0 391.5 -77t108.5 -292q0 -154 -58.5 -233t-189.5 -91v-8q158 -14 225.5 -107.5t67.5 -269.5q0 -213 -109 -290.5t-371 -77.5q-393 0 -596 16zM449 219h237q129 0 174 38t45 155q0 127 -47 171t-180 46h-229v-410zM449 836h227 q115 0 156.5 36.5t41.5 145.5q0 106 -45 141t-170 35l-210 2v-360z" /> +<glyph unicode="C" horiz-adv-x="1200" d="M96 706.5q0 403.5 133 567.5t461 164q238 0 424 -47l-27 -234q-166 10 -397 10q-154 0 -210 -97t-56 -363.5t56.5 -363.5t209.5 -97q285 0 426 18l27 -231q-184 -57 -453 -58q-328 0 -461 164t-133 567.5z" /> +<glyph unicode="D" horiz-adv-x="1392" d="M143 0v1413q291 18 549 19q338 0 470 -156t132 -569.5t-132 -569t-470 -155.5q-258 0 -549 18zM455 229q35 0 113.5 -1t123.5 -1q158 0 216.5 100.5t58.5 379t-58.5 380t-216.5 101.5l-237 -2v-957z" /> +<glyph unicode="E" horiz-adv-x="1179" d="M131 279v856q2 131 86 207.5t225 76.5q463 0 656 -20l-15 -232h-542q-51 0 -74 -24.5t-23 -79.5v-215h564v-225h-564v-273q0 -57 22.5 -81.5t74.5 -24.5h542l15 -230q-193 -20 -656 -20q-141 0 -225 76.5t-86 208.5z" /> +<glyph unicode="F" horiz-adv-x="1134" d="M139 0v1126q0 135 85 214t227 79q451 0 634 -22l-16 -230h-506q-59 0 -84.5 -24.5t-25.5 -79.5v-242h540v-227h-540v-594h-314z" /> +<glyph unicode="G" horiz-adv-x="1320" d="M96 711q0 414 140.5 571.5t492.5 157.5q256 0 434 -49l-24 -230q-231 10 -400 10q-94 0 -148 -15t-95 -66.5t-55.5 -142.5t-14.5 -247q0 -264 49 -362t182 -98q123 0 254 71v504h301v-815h-229l-29 141q-164 -168 -407 -168q-238 0 -344.5 174.5t-106.5 563.5z" /> +<glyph unicode="H" horiz-adv-x="1409" d="M143 0v1413h312v-541h499v541h312v-1413h-312v631h-499v-631h-312z" /> +<glyph unicode="I" horiz-adv-x="598" d="M143 0v1413h312v-1413h-312z" /> +<glyph unicode="J" horiz-adv-x="755" d="M41 16l35 209h96q135 0 135 109v1079h311v-1116q0 -154 -83.5 -238t-235.5 -84q-170 0 -258 41z" /> +<glyph unicode="K" horiz-adv-x="1292" d="M143 0v1413h312v-399q0 -90 -15 -168h121l359 567h337l-364 -563q-35 -61 -102 -113v-8q74 -51 118 -125l373 -604h-348l-373 623h-121q14 -82 15 -136v-487h-312z" /> +<glyph unicode="L" horiz-adv-x="1089" d="M139 295v1118h312v-1055q0 -55 25.5 -79.5t84.5 -24.5h486l14 -238q-198 -22 -566 -22h-32q-164 0 -244 82t-80 219z" /> +<glyph unicode="M" horiz-adv-x="1865" d="M117 0l51 1296q6 117 117 117h301q100 0 123 -100l172 -705q16 -68 37 -198h26q2 10 15.5 83.5t21.5 114.5l170 705q25 100 127 100h301q113 0 117 -117l55 -1296h-295l-47 1169h-35l-213 -874q-20 -100 -127 -100h-205q-106 0 -127 100l-215 874h-34l-41 -1169h-295z " /> +<glyph unicode="N" horiz-adv-x="1478" d="M143 0v1300q0 113 113 113h190q47 0 74 -21.5t51 -70.5l359 -731q51 -102 102 -228h21q-12 160 -13 238v813h295v-1300q0 -113 -110 -113h-195q-47 0 -73.5 21.5t-51.5 70.5l-370 754q-70 150 -86 219h-23q14 -102 14 -225v-840h-297z" /> +<glyph unicode="O" horiz-adv-x="1400" d="M96 706.5q0 419.5 132 576.5t472 157t473.5 -157t133.5 -576.5t-133.5 -576.5t-473.5 -157t-472 157t-132 576.5zM424 706.5q0 -280.5 58.5 -381t218 -100.5t218 100.5t58.5 381t-58.5 381t-218 100.5t-218 -100.5t-58.5 -381z" /> +<glyph unicode="P" horiz-adv-x="1257" d="M143 0v1413q190 18 537 19q297 0 406.5 -96.5t109.5 -365t-103.5 -365.5t-371.5 -97q-135 0 -266 16v-524h-312zM455 748h219q121 2 165 47t44 176t-44 176t-165 45l-219 -2v-442z" /> +<glyph unicode="Q" horiz-adv-x="1404" d="M96 706.5q0 419.5 133 576.5t473 157t472.5 -157t132.5 -576.5t-132.5 -576.5t-472.5 -157t-473 157t-133 576.5zM426 706.5q0 -280.5 58.5 -381t218 -100.5t218 100.5t58.5 381t-58.5 381t-218 100.5t-218 -100.5t-58.5 -381zM526 -238l74 166q246 -86 614 -139 l-88 -278q-307 75 -600 251z" /> +<glyph unicode="R" horiz-adv-x="1316" d="M143 0v1413q190 18 539 19q285 0 403.5 -90.5t118.5 -327.5q0 -156 -62.5 -244t-207.5 -106v-11q162 -37 201 -213l122 -440h-329l-107 432q-20 68 -54 93.5t-97 25.5l-219 2v-553h-308zM451 793h225q123 0 168 42t45 158.5t-44 157.5t-169 41l-225 -2v-397z" /> +<glyph unicode="S" horiz-adv-x="1191" d="M88 1049q0 233 113.5 312t400.5 79q270 0 465 -56l-20 -213q-178 6 -443 7q-123 0 -164 -21.5t-41 -107.5q0 -70 31 -100.5t117 -59.5l268 -92q164 -57 231.5 -156.5t67.5 -259.5q0 -238 -114.5 -323t-409.5 -85q-240 0 -486 54l19 225q436 -10 467 -10q125 0 167 26.5 t42 110.5q0 72 -28.5 101.5t-104.5 54.5l-285 100q-158 57 -225.5 155.5t-67.5 258.5z" /> +<glyph unicode="T" horiz-adv-x="1230" d="M37 1159v254h1157v-254h-422v-1159h-313v1159h-422z" /> +<glyph unicode="U" horiz-adv-x="1394" d="M133 563v850h311v-850q0 -195 54.5 -266.5t199.5 -71.5q143 0 197.5 72t54.5 266v850h314v-850q0 -324 -124 -457t-427 -133q-319 0 -449.5 133.5t-130.5 456.5z" /> +<glyph unicode="V" horiz-adv-x="1302" d="M14 1413h322l256 -1020q20 -82 35 -157h51q6 39 35 157l254 1020h321l-383 -1327q-10 -39 -39.5 -62.5t-70.5 -23.5h-285q-41 0 -70.5 23.5t-40.5 62.5z" /> +<glyph unicode="W" horiz-adv-x="1992" d="M53 1413h320l137 -981q12 -92 18 -205h41q6 57 31 205l152 885q6 43 35.5 69.5t74.5 26.5h271q43 0 72.5 -26.5t35.5 -69.5l152 -887q25 -152 28 -203h43q8 117 19 201l139 985h317l-223 -1327q-8 -39 -38.5 -62.5t-73.5 -23.5h-299q-43 0 -74 24.5t-37 63.5l-154 924 q-16 90 -24 178h-39q0 -6 -9.5 -76t-15.5 -104l-151 -922q-6 -39 -38 -63.5t-75 -24.5h-299q-41 0 -72.5 23.5t-40.5 62.5z" /> +<glyph unicode="X" horiz-adv-x="1312" d="M20 0l369 725l-340 688h320l272 -584h31l272 584h320l-340 -688l368 -725h-323l-301 629h-25l-301 -629h-322z" /> +<glyph unicode="Y" horiz-adv-x="1245" d="M0 1413h326l235 -518q20 -45 53 -178h21q25 111 51 178l236 518h321l-463 -946v-467h-313v467z" /> +<glyph unicode="Z" horiz-adv-x="1193" d="M82 0v240l672 934h-656v239h1000v-239l-672 -934h688v-240h-1032z" /> +<glyph unicode="[" horiz-adv-x="708" d="M156 -180v1595q0 70 44 114t113 44h328v-189h-164q-39 0 -39 -38v-1457q0 -39 39 -39h164v-188h-328q-158 0 -157 158z" /> +<glyph unicode="\" horiz-adv-x="1128" d="M41 1413h242l804 -1560h-241z" /> +<glyph unicode="]" horiz-adv-x="708" d="M68 -150h163q39 0 39 39v1457q0 39 -39 38h-163v189h325q70 0 115 -44t45 -114v-1595q0 -70 -45 -114t-115 -44h-325v188z" /> +<glyph unicode="^" horiz-adv-x="946" d="M61 823l304 461h219l301 -461l-119 -65l-283 338h-16l-289 -338z" /> +<glyph unicode="_" horiz-adv-x="1140" d="M115 0h911v-199h-911v199z" /> +<glyph unicode="`" horiz-adv-x="722" d="M57 1298l140 209l411 -303l-88 -131z" /> +<glyph unicode="a" horiz-adv-x="1161" d="M74 266v103q0 121 82 188.5t227 67.5h360v45q-2 78 -35.5 104.5t-129.5 26.5q-168 -1 -426 -17l-29 205q272 49 526 49q205 0 301.5 -83t96.5 -287v-668h-240l-31 154q-152 -178 -373 -179q-145 0 -237 77t-92 214zM373 307q0 -104 119 -104q123 0 251 98v141h-272 q-98 -2 -98 -96v-39z" /> +<glyph unicode="b" horiz-adv-x="1212" d="M121 53v1381h305v-322q0 -141 -27 -238q160 164 359 164q197 0 283.5 -121.5t86.5 -402.5q0 -260 -106.5 -399.5t-386.5 -139.5q-123 0 -275.5 20.5t-238.5 57.5zM424 219q85 -19 169 -19q18 0 36 1q104 4 146 69.5t42 241.5q0 168 -34.5 226.5t-145.5 58.5 q-84 0 -213 -86v-492z" /> +<glyph unicode="c" horiz-adv-x="1038" d="M82 506q0 293 114.5 412.5t395.5 119.5q229 0 373 -63l-33 -189q-221 4 -289 5q-139 0 -191.5 -59.5t-52.5 -225.5t52.5 -225.5t191.5 -59.5q178 1 309 19l27 -197q-156 -68 -391 -68q-279 0 -392.5 120t-113.5 411z" /> +<glyph unicode="d" horiz-adv-x="1216" d="M84 514q0 291 94 407.5t293 116.5q195 0 328 -90q-10 113 -11 211v275h304v-1434h-240l-25 147q-145 -172 -385 -172q-188 0 -273 136.5t-85 402.5zM395 516q0 -174 37 -232.5t131 -58.5q63 0 108 17.5t117 64.5v467q-137 39 -215 39q-102 0 -140 -57.5t-38 -239.5z" /> +<glyph unicode="e" horiz-adv-x="1146" d="M82 504q0 297 117.5 415.5t396.5 118.5q252 0 364.5 -87t114.5 -265q0 -141 -72.5 -212t-234.5 -71h-365q14 -111 66.5 -148.5t173.5 -37.5q162 0 377 23l29 -189q-158 -76 -441 -76q-285 0 -405.5 123t-120.5 406zM397 586h287q55 0 74.5 26.5t19.5 77.5 q0 72 -36.5 99.5t-135.5 27.5q-117 0 -160 -46t-49 -185z" /> +<glyph unicode="f" horiz-adv-x="827" d="M39 807v192l176 11v153q0 311 332 312q215 0 327 -21l-28 -201h-191q-76 0 -105.5 -28.5t-29.5 -102.5v-112h279v-203h-279v-807h-305v807h-176z" /> +<glyph unicode="g" horiz-adv-x="1185" d="M49 -90q0 78 36 128t124 91q-59 57 -59 136q0 15 2 31q14 99 90 144q-150 70 -150 273q0 178 106.5 251.5t370.5 73.5q160 0 265 -28h325l-14 -133l-127 -17q24 -55 24 -138v-7q0 -176 -105.5 -250t-369.5 -74q-88 0 -174 10q-15 -20 -15 -44q0 -14 6 -29q15 -41 69 -47 l366 -43q156 -18 224.5 -90t68.5 -211q0 -193 -115.5 -260.5t-414.5 -67.5q-311 0 -422 64.5t-111 236.5zM338 -51q0 -74 45 -94.5t194.5 -20.5t197.5 21.5t48 89.5q0 53 -31 67.5t-135 26.5l-254 27q-66 -53 -65 -117zM371 715q0 -74 41.5 -102.5t154.5 -28.5 q111 0 153 28.5t42 102.5q0 76 -41 102.5t-153.5 26.5t-154.5 -26.5t-42 -102.5z" /> +<glyph unicode="h" horiz-adv-x="1226" d="M125 0v1434h305v-351q0 -104 -18 -211q211 166 413 166q137 0 210 -71.5t73 -208.5v-758h-301v664q0 68 -21.5 93t-76.5 25q-109 0 -281 -92v-690h-303z" /> +<glyph unicode="i" horiz-adv-x="565" d="M127 1257v111q0 88 88 88h135q88 0 88 -88v-111q0 -88 -88 -88h-135q-88 0 -88 88zM133 0v1010h301v-1010h-301z" /> +<glyph unicode="j" horiz-adv-x="569" d="M10 -270q125 141 125 317v963h301v-963q0 -141 -69.5 -263t-190.5 -187zM129 1266v110q0 88 88 88h133q88 0 88 -88v-110q0 -88 -88 -88h-133q-88 0 -88 88z" /> +<glyph unicode="k" horiz-adv-x="1140" d="M125 0v1434h303v-592q0 -100 -14 -185h94l250 353h340l-262 -351q-33 -55 -95 -96v-4q51 -35 95 -108l297 -451h-340l-283 469h-96q14 -92 14 -152v-317h-303z" /> +<glyph unicode="l" horiz-adv-x="669" d="M127 254v1180h301v-1104q0 -102 115 -103h82l34 -211q-78 -41 -241 -41q-135 0 -213 73t-78 206z" /> +<glyph unicode="m" horiz-adv-x="1798" d="M125 0v1010h242l20 -148q193 176 385 176q205 0 260 -164q178 164 369 164q137 0 208.5 -71.5t71.5 -208.5v-758h-301v664q0 66 -22.5 92t-83.5 26q-49 0 -94 -18.5t-131 -71.5v-692h-291v664q0 66 -25.5 92t-83.5 26q-80 0 -223 -88v-694h-301z" /> +<glyph unicode="n" horiz-adv-x="1226" d="M125 0v1010h246l22 -150q219 178 432 178q137 0 210 -71.5t73 -208.5v-758h-301v664q0 68 -21.5 93t-76.5 25q-96 0 -281 -92v-690h-303z" /> +<glyph unicode="o" horiz-adv-x="1202" d="M82 504q0 293 117.5 413.5t402.5 120.5q283 0 400.5 -121.5t117.5 -412.5t-117.5 -411t-400.5 -120q-285 0 -402.5 120t-117.5 411zM399 504q0 -180 41 -241.5t162 -61.5q117 0 159 61.5t42 241.5q0 182 -41 244.5t-160 62.5q-121 0 -162 -61.5t-41 -245.5z" /> +<glyph unicode="p" horiz-adv-x="1228" d="M125 -389v1399h246l22 -148q63 76 175 125t227 49q348 0 348 -540q0 -291 -93.5 -407t-291.5 -116q-205 0 -338 99q7 -74 7 -153q0 -32 -1 -64v-244h-301zM426 240q160 -41 229 -41q100 0 138 57t38 240q0 178 -34.5 240.5t-122.5 62.5q-101 -1 -248 -97v-462z" /> +<glyph unicode="q" horiz-adv-x="1210" d="M82 500q0 270 106.5 404t393.5 134q121 0 271.5 -20.5t236.5 -59.5v-1347h-304v295q0 133 25 229q-178 -162 -366.5 -162t-275.5 129t-87 398zM393 492q0 -150 34 -208.5t134 -58.5q92 0 227 78v490q-94 21 -174 21q-16 0 -32 -1q-109 -4 -149 -69.5t-40 -251.5z" /> +<glyph unicode="r" horiz-adv-x="870" d="M125 0v1010h235l27 -148q207 176 410 176h53l-31 -280h-82q-100 0 -309 -70v-688h-303z" /> +<glyph unicode="s" horiz-adv-x="1079" d="M76 750q0 158 97 223t333 65q272 -4 467 -39l-21 -194q-258 4 -389 4q-72 0 -99.5 -1t-55 -7t-33.5 -19.5t-6 -40.5q0 -10 1 -18t5 -15.5t7 -11.5t11 -9t13.5 -7t18.5 -7t20.5 -7t27 -7.5t29.5 -7.5l258 -69q135 -39 192.5 -103.5t57.5 -191.5q0 -180 -104.5 -245 t-358.5 -65q-246 0 -453 35l19 197q74 -4 350 -4q158 0 206 13t48 63q0 10 -1 18t-5 15.5t-8.5 11.5t-13.5 9t-14 8t-19.5 8t-22.5 7t-29 7.5t-31 9.5l-251 67q-139 41 -192.5 112t-53.5 196z" /> +<glyph unicode="t" horiz-adv-x="841" d="M39 807v192l178 11v282h301v-282h281v-203h-281v-477q0 -57 24.5 -80t86.5 -23h129l33 -211q-117 -41 -285 -41q-137 0 -213 77t-76 214v541h-178z" /> +<glyph unicode="u" horiz-adv-x="1208" d="M119 254v756h303v-664v-10q0 -58 22 -82q24 -26 86 -27q88 0 252 84v699h301v-1010h-239l-23 139q-209 -166 -418 -166q-285 0 -284 281z" /> +<glyph unicode="v" horiz-adv-x="1153" d="M14 1010h322l182 -633q23 -84 43 -180h27l47 180l182 633h320l-332 -938q-25 -72 -98 -72h-263q-74 0 -98 72z" /> +<glyph unicode="w" horiz-adv-x="1734" d="M33 1010h305l137 -656q20 -111 25 -166h26q4 29 13.5 84.5t13.5 81.5l102 566q14 90 105 90h213q41 0 70.5 -24.5t35.5 -67.5l101 -564q4 -29 14 -84t14 -82h25l24 166l140 656h305l-248 -930q-20 -80 -104 -80h-238q-41 0 -71.5 25.5t-36.5 66.5l-103 572q-2 18 -9 77.5 t-13 92.5h-25l-25 -170l-100 -572q-6 -41 -36.5 -66.5t-74.5 -25.5h-233q-84 0 -104 80z" /> +<glyph unicode="x" horiz-adv-x="1155" d="M20 0l312 518l-289 492h309l215 -389h21l215 389h309l-289 -492l312 -518h-312l-239 424h-13l-239 -424h-312z" /> +<glyph unicode="y" horiz-adv-x="1150" d="M14 1010h324l188 -654q18 -72 31 -151h27q6 25 20 77t21 74l186 654h324l-359 -1024q-29 -82 -70.5 -152t-107.5 -134.5t-163 -95.5q-66 -20 -143 -20q-36 0 -73 4l-24 179q123 33 192.5 85t108.5 140l4 8h-58q-76 0 -98 74z" /> +<glyph unicode="z" horiz-adv-x="1075" d="M82 0v217l557 578h-547v215h891v-215l-555 -578h565v-217h-911z" /> +<glyph unicode="{" horiz-adv-x="694" d="M70 573v197q43 14 55 18.5t29.5 20.5t19.5 38.5t2 67.5v373q0 158 109 236t336 49v-187q-92 0 -124 -25.5t-32 -100.5v-310q2 -133 -42 -195.5t-169 -82.5q125 -35 171 -96.5t48 -174.5v-430q0 -76 32 -99.5t124 -23.5v-186q-227 -29 -336 48t-109 237v489q0 37 -4 57.5 t-24.5 37t-30.5 20.5z" /> +<glyph unicode="|" horiz-adv-x="534" d="M160 -346v1945h213v-1945h-213z" /> +<glyph unicode="}" horiz-adv-x="696" d="M68 -152q92 0 123.5 24t31.5 99v430q2 113 48 174.5t171 96.5q-123 20 -168 82.5t-43 195.5v310q0 76 -31.5 101t-123.5 25v187q227 29 335.5 -49t108.5 -236v-373q0 -45 2 -67.5t19.5 -38.5t30 -20.5t55.5 -18.5v-197q-80 -33 -95 -51q-20 -27 -20 -86v-489 q0 -160 -108.5 -237t-335.5 -48v186z" /> +<glyph unicode="~" horiz-adv-x="1050" d="M127 444q-23 147 26.5 224t139.5 75q66 -4 227.5 -52t194.5 -52q47 -8 60 12.5t13 81.5h138q23 -145 -25.5 -223t-140.5 -74q-72 2 -231.5 50.5t-192.5 52.5q-47 8 -59.5 -13t-12.5 -82h-137z" /> +<glyph unicode="¡" horiz-adv-x="579" d="M139 168l33 422h238l30 -422v-547h-301v547zM150 831v101q0 59 23.5 82.5t82.5 23.5h70q59 0 82.5 -23.5t23.5 -82.5v-101q0 -59 -23.5 -81.5t-82.5 -22.5h-70q-59 0 -82.5 22.5t-23.5 81.5z" /> +<glyph unicode="¢" horiz-adv-x="1067" d="M80 713q0 281 106.5 401.5t360.5 128.5l18 170h228l-21 -180q117 -18 195 -51l-33 -185q-147 8 -291 9q-152 0 -208 -60.5t-56 -232.5t56.5 -232.5t207.5 -60.5q178 0 311 16l27 -186q-139 -59 -324 -66l-20 -184h-227l20 193q-188 29 -269 149.5t-81 370.5z" /> +<glyph unicode="£" horiz-adv-x="1198" d="M94 823h150l-17 232q-12 225 87.5 304t332.5 79q184 0 422 -21l-16 -233q-88 2 -367 2q-92 0 -126 -31t-28 -113l19 -219h367l-9 -157h-346l6 -86q8 -131 -27.5 -203t-119.5 -139q51 14 156 14h536v-252h-1012v252q176 80 158 328l-6 86h-158z" /> +<glyph unicode="¤" horiz-adv-x="1198" d="M98 362l144 144q-59 98 -60 213q0 125 68 227l-144 141l127 125l142 -143q96 66 223 66q125 0 225 -68l146 145l125 -125l-146 -145q63 -98 64 -223q0 -119 -66 -221l148 -146l-127 -125l-146 144q-104 -66 -223 -66t-223 66l-142 -142zM356 721q0 -100 72 -171t170 -71 q96 0 167 71t71 171t-71 172t-167 72q-98 0 -170 -72t-72 -172z" /> +<glyph unicode="¥" horiz-adv-x="1347" d="M51 1413h322l237 -485q10 -18 56 -180h20q45 158 55 180l232 485h321l-342 -674h209v-192h-966l-2 192h204zM193 483h968v-190h-332v-293h-309v293h-325z" /> +<glyph unicode="¦" horiz-adv-x="538" d="M162 -346v819h213v-819h-213zM162 780v819h213v-819h-213z" /> +<glyph unicode="§" horiz-adv-x="1132" d="M98 1139q0 174 108.5 237.5t348.5 63.5q248 0 461 -25l-21 -217q-111 6 -352 6q-121 2 -169 -11t-52 -65q-4 -47 23.5 -76.5t86.5 -60.5l281 -147q162 -82 201 -207t-21 -299h-211q6 123 -23.5 180.5t-129.5 112.5l-324 180q-49 29 -75.5 48.5t-62.5 58t-52.5 93 t-16.5 128.5zM119 -342l20 217q156 -8 353 -8q121 0 169 14.5t50 65.5q6 47 -23 76.5t-86 60.5l-278 147q-164 82 -204 206t19 298h211q-6 -121 25 -178t131 -113l321 -178q47 -27 76 -48t63.5 -60t51 -94.5t16.5 -129.5q0 -178 -109.5 -239.5t-344.5 -61.5q-264 0 -461 25z " /> +<glyph unicode="¨" horiz-adv-x="868" d="M133 1264v118q0 68 66 68h100q66 0 66 -68v-118q0 -68 -66 -68h-100q-66 0 -66 68zM504 1264v118q-1 68 67 68h99q68 0 67 -68v-118q0 -68 -67 -68h-99q-68 0 -67 68z" /> +<glyph unicode="©" horiz-adv-x="1658" d="M88 706.5q0 317.5 214 525.5t527 208q315 0 528.5 -208t213.5 -525.5t-213 -525.5t-529 -208q-313 0 -527 208t-214 525.5zM242 706.5q0 -251.5 172 -419.5t415 -168q246 0 417 168t171 419.5t-171 419.5t-417 168q-244 0 -415.5 -168t-171.5 -419.5zM440 711 q0 233 90.5 328.5t309.5 95.5q162 0 278 -29l-18 -164q-176 4 -262 4q-98 0 -132 -48t-34 -187q0 -141 32.5 -188.5t133.5 -47.5q198 0 282 8l19 -164q-129 -37 -299 -36q-219 0 -309.5 96t-90.5 332z" /> +<glyph unicode="ª" horiz-adv-x="894" d="M96 733v74q0 80 56.5 126t154.5 46h252v29q0 41 -22.5 60t-77.5 19q-121 0 -305 -10l-23 150q201 33 377 33q137 0 204.5 -57.5t67.5 -196.5v-443h-176l-22 111q-113 -129 -265 -129q-96 0 -158.5 49t-62.5 139zM311 774q0 -61 82 -61q76 0 166 61v94l-174 -14 q-74 -6 -74 -59v-21z" /> +<glyph unicode="«" horiz-adv-x="1060" d="M70 481v66l323 405l160 -102l-215 -336l217 -346l-160 -100zM494 481v66l325 405l160 -102l-217 -336l217 -346l-158 -100z" /> +<glyph unicode="¬" horiz-adv-x="1191" d="M119 512v215h942v-451h-225v236h-717z" /> +<glyph unicode="­" horiz-adv-x="847" d="M119 422v199h610v-199h-610z" /> +<glyph unicode="®" horiz-adv-x="1071" d="M80 985q0 188 133.5 321.5t323.5 133.5q188 0 321 -133t133 -322q0 -190 -133 -323.5t-321 -133.5q-190 0 -323.5 133.5t-133.5 323.5zM172 985q0 -154 106.5 -261.5t258.5 -107.5q150 0 257 107.5t107 261.5q0 152 -107.5 259.5t-256.5 107.5q-152 0 -258.5 -107.5 t-106.5 -259.5zM334 752v477q68 6 217 6q115 0 163 -30.5t48 -110.5q0 -105 -111 -115v-4q66 -8 82 -76l49 -147h-137l-39 143q-16 39 -61 39h-84v-182h-127zM461 1018h86q51 2 68.5 15.5t17.5 47.5q0 37 -17.5 49.5t-68.5 12.5h-86v-125z" /> +<glyph unicode="¯" horiz-adv-x="819" d="M102 1225v194h615v-194h-615z" /> +<glyph unicode="°" horiz-adv-x="704" d="M74 1169.5q0 112.5 81.5 191.5t196.5 79q113 0 196 -79t83 -191.5t-82 -193.5t-196.5 -81t-196.5 81t-82 193.5zM233 1169.5q0 -53.5 35 -88t84 -34.5t84 34.5t35 88t-34 86t-85 32.5t-85 -32.5t-34 -86z" /> +<glyph unicode="±" horiz-adv-x="1175" d="M121 92v221h934v-221h-934zM121 651v223h354v246h225v-246h355v-223h-357v-243h-223v243h-354z" /> +<glyph unicode="²" horiz-adv-x="884" d="M100 737v121q0 61 35 96l207 191q147 133 164 207q4 35 -22.5 45t-88.5 10q-96 0 -278 -6l-8 172q158 27 307 26q184 0 263 -44t79 -173q0 -113 -148 -254l-221 -200q59 10 127 10l268 -4v-197h-684z" /> +<glyph unicode="³" horiz-adv-x="845" d="M94 743l8 168q113 -6 258 -6q94 0 127 20.5t33 80.5q0 47 -25.5 68.5t-103.5 21.5l-176 4v151l176 2q74 2 96.5 24.5t22.5 65.5q0 45 -26.5 59.5t-106.5 14.5q-188 0 -256 -2l-8 164q162 23 303 23q180 0 249.5 -43t69.5 -154q0 -98 -33.5 -150.5t-126.5 -64.5v-4 q100 -14 140.5 -63.5t42.5 -149.5q4 -135 -73 -193.5t-261 -58.5q-137 0 -330 22z" /> +<glyph unicode="´" horiz-adv-x="722" d="M98 1204l412 303l139 -209l-461 -225z" /> +<glyph unicode="¶" horiz-adv-x="1234" d="M59 922q0 283 149.5 399.5t504.5 116.5q211 0 350 -35v-1403h-201v1249q-90 4 -129 4v-1683h-201v842q-254 23 -363.5 141.5t-109.5 368.5z" /> +<glyph unicode="·" horiz-adv-x="520" d="M113 479v99q0 59 23.5 82.5t82.5 23.5h82q59 0 83 -23.5t24 -82.5v-99q0 -59 -24 -82.5t-83 -23.5h-82q-59 0 -82.5 23.5t-23.5 82.5z" /> +<glyph unicode="¸" horiz-adv-x="507" d="M49 -487l39 133q168 -4 176 118q2 27 -21.5 33t-107.5 6l29 119q170 18 234.5 -6.5t60.5 -126.5q-6 -150 -121 -224.5t-289 -51.5z" /> +<glyph unicode="¹" horiz-adv-x="626" d="M41 1501l229 84h232v-848h-232v555q0 68 9 103l-211 -43z" /> +<glyph unicode="º" horiz-adv-x="899" d="M88 901q0 197 82 278t280.5 81t279.5 -81t81 -278q0 -195 -81 -274.5t-279.5 -79.5t-280.5 80t-82 274zM317 901q2 -115 29 -153.5t105 -38.5q76 0 103.5 38.5t27.5 153.5q0 117 -27.5 156t-103.5 39q-78 0 -105 -39t-29 -156z" /> +<glyph unicode="»" horiz-adv-x="1060" d="M82 168l217 346l-215 336l158 102l325 -405v-66l-325 -413zM508 168l217 346l-217 336l160 102l325 -405v-66l-327 -413z" /> +<glyph unicode="¼" horiz-adv-x="1843" d="M55 1329l224 84h231v-848h-231v555q0 59 10 103l-207 -43zM311 0l854 1413h193l-852 -1413h-195zM1006 315l231 533h213l-207 -479q-12 -33 29 -33h192v215l37 131h178v-346h97v-141l-97 -19v-176h-215v174h-366q-59 0 -90 40t-2 101z" /> +<glyph unicode="½" horiz-adv-x="1869" d="M55 1329l224 84h231v-848h-231v555q0 59 10 103l-207 -43zM301 0l852 1413h195l-852 -1413h-195zM1106 0v121q0 61 35 96l205 191q150 137 161 206q6 35 -20.5 45.5t-87.5 10.5q-97 0 -277 -6l-8 172q158 27 305 26q184 0 263 -44t79 -173q0 -113 -149 -254l-217 -201 q59 10 127 11l264 -4v-197h-680z" /> +<glyph unicode="¾" horiz-adv-x="2015" d="M88 567l8 168q115 -6 256 -6q94 0 126 19.5t32 78.5q0 49 -25.5 72t-101.5 25h-174v147l174 4q72 0 93.5 22.5t21.5 67.5t-26 60.5t-103 15.5q-186 0 -254 -2l-9 164q150 20 304 20q176 0 244.5 -42t68.5 -152q0 -100 -33 -151.5t-125 -63.5v-4q102 -14 141 -63.5 t42 -149.5q2 -137 -74 -195.5t-258 -58.5q-150 0 -328 24zM498 0l852 1413h194l-852 -1413h-194zM1182 315l229 533h213l-207 -479q-12 -33 29 -33h192v215l37 131h178v-346h97v-141l-97 -19v-176h-215v174h-364q-59 0 -90 40t-2 101z" /> +<glyph unicode="¿" horiz-adv-x="1046" d="M59 -98q0 82 36 152.5t87 123.5t104.5 108.5t94.5 134.5t49 173h242q4 -123 -38 -227.5t-97.5 -164t-104.5 -125t-53 -116.5q-6 -68 39 -99.5t149 -31.5q180 0 412 10l10 -207q-16 -2 -60 -11t-60.5 -11t-54.5 -8t-63.5 -8.5t-66.5 -5.5t-87 -4t-101 -1q-221 0 -329 78 t-108 240zM412 838v98q0 59 23.5 82.5t82.5 23.5h70q59 0 82.5 -23.5t23.5 -82.5v-98q0 -59 -23.5 -83t-82.5 -24h-70q-59 0 -82.5 23.5t-23.5 83.5z" /> +<glyph unicode="À" d="M2 0l408 1331q8 37 38.5 59.5t69.5 22.5h295q88 0 109 -82l407 -1331h-317l-103 371h-485l-102 -371h-320zM264 1704l137 211l414 -305l-90 -129zM489 612h353l-119 432q-25 102 -29 134h-55q-4 -20 -14.5 -65.5t-16.5 -68.5z" /> +<glyph unicode="Á" d="M2 0l408 1331q8 37 38.5 59.5t69.5 22.5h295q88 0 109 -82l407 -1331h-317l-103 371h-485l-102 -371h-320zM489 612h353l-119 432q-25 102 -29 134h-55q-4 -20 -14.5 -65.5t-16.5 -68.5zM496 1610l413 305l138 -211l-461 -223z" /> +<glyph unicode="Â" d="M2 0l408 1331q8 37 38.5 59.5t69.5 22.5h295q88 0 109 -82l407 -1331h-317l-103 371h-485l-102 -371h-320zM285 1591l274 271h219l271 -277l-84 -112l-289 194h-17l-290 -194zM489 612h353l-119 432q-25 102 -29 134h-55q-4 -20 -14.5 -65.5t-16.5 -68.5z" /> +<glyph unicode="Ã" d="M2 0l408 1331q8 37 38.5 59.5t69.5 22.5h295q88 0 109 -82l407 -1331h-317l-103 371h-485l-102 -371h-320zM311 1550q-23 145 28.5 221t137.5 70q72 -6 175.5 -48t152.5 -50q47 -8 62.5 11.5t15.5 76.5h131q20 -139 -29 -217t-139 -72q-78 6 -183.5 50t-144.5 50 q-49 8 -63.5 -12.5t-14.5 -79.5h-129zM489 612h353l-119 432q-25 102 -29 134h-55q-4 -20 -14.5 -65.5t-16.5 -68.5z" /> +<glyph unicode="Ä" d="M2 0l408 1331q8 37 38.5 59.5t69.5 22.5h295q88 0 109 -82l407 -1331h-317l-103 371h-485l-102 -371h-320zM362 1630v117q0 68 68 68h98q68 0 68 -68v-117q0 -67 -68 -67h-98q-68 0 -68 67zM489 612h353l-119 432q-25 102 -29 134h-55q-4 -20 -14.5 -65.5t-16.5 -68.5z M735 1630v117q0 68 68 68h98q68 0 68 -68v-117q0 -67 -68 -67h-98q-68 0 -68 67z" /> +<glyph unicode="Å" d="M2 0l408 1331q8 37 38.5 59.5t69.5 22.5h295q88 0 109 -82l407 -1331h-317l-103 371h-485l-102 -371h-320zM426 1695.5q0 98.5 71.5 167t170 68.5t170 -68.5t71.5 -167t-70.5 -167t-171 -68.5t-171 68.5t-70.5 167zM489 612h353l-119 432q-25 102 -29 134h-55 q-4 -20 -14.5 -65.5t-16.5 -68.5zM565 1696q0 -47 30 -76t73 -29t72.5 29t29.5 76q0 45 -29.5 74.5t-72.5 29.5t-73 -29.5t-30 -74.5z" /> +<glyph unicode="Æ" horiz-adv-x="1906" d="M-23 0l596 1143q53 106 119 162.5t177.5 83t295.5 26.5q444 0 660 -16l-15 -230h-501q-47 0 -78 -29.5t-31 -80.5v-213h535v-221h-535v-275q0 -57 25.5 -81.5t83.5 -24.5h501l15 -230q-203 -20 -649 -20q-121 0 -194 80t-73 205v110h-417l-193 -389h-322zM608 623h301 v458q0 82 47 138h-22q-39 -33 -82 -109z" /> +<glyph unicode="Ç" horiz-adv-x="1200" d="M96 706.5q0 403.5 133 567.5t461 164q238 0 424 -47l-27 -234q-166 10 -397 10q-154 0 -210 -97t-56 -363.5t56.5 -363.5t209.5 -97q285 0 426 18l27 -231q-184 -57 -453 -58q-328 0 -461 164t-133 567.5zM432 -526l39 131q76 -2 124 27.5t52 91.5q2 27 -21.5 32.5 t-109.5 5.5l31 119q168 18 233.5 -6.5t61.5 -126.5q-6 -150 -122 -224.5t-288 -49.5z" /> +<glyph unicode="È" horiz-adv-x="1179" d="M131 279v856q2 131 86 207.5t225 76.5q463 0 656 -20l-15 -232h-542q-51 0 -74 -24.5t-23 -79.5v-215h564v-225h-564v-273q0 -57 22.5 -81.5t74.5 -24.5h542l15 -230q-193 -20 -656 -20q-141 0 -225 76.5t-86 208.5zM242 1729l137 208l414 -303l-91 -129z" /> +<glyph unicode="É" horiz-adv-x="1179" d="M131 279v856q2 131 86 207.5t225 76.5q463 0 656 -20l-15 -232h-542q-51 0 -74 -24.5t-23 -79.5v-215h564v-225h-564v-273q0 -57 22.5 -81.5t74.5 -24.5h542l15 -230q-193 -20 -656 -20q-141 0 -225 76.5t-86 208.5zM473 1634l414 303l137 -208l-461 -224z" /> +<glyph unicode="Ê" horiz-adv-x="1179" d="M131 279v856q2 131 86 207.5t225 76.5q463 0 656 -20l-15 -232h-542q-51 0 -74 -24.5t-23 -79.5v-215h564v-225h-564v-273q0 -57 22.5 -81.5t74.5 -24.5h542l15 -230q-193 -20 -656 -20q-141 0 -225 76.5t-86 208.5zM262 1616l275 270h219l270 -276l-84 -113l-289 195 h-16l-291 -195z" /> +<glyph unicode="Ë" horiz-adv-x="1179" d="M131 279v856q2 131 86 207.5t225 76.5q463 0 656 -20l-15 -232h-542q-51 0 -74 -24.5t-23 -79.5v-215h564v-225h-564v-273q0 -57 22.5 -81.5t74.5 -24.5h542l15 -230q-193 -20 -656 -20q-141 0 -225 76.5t-86 208.5zM340 1653v119q0 68 68 67h100q66 0 65 -67v-119 q1 -66 -65 -66h-100q-68 0 -68 66zM713 1653v119q0 68 67 67h99q68 0 67 -67v-119q1 -66 -67 -66h-99q-68 0 -67 66z" /> +<glyph unicode="Ì" horiz-adv-x="598" d="M-104 1704l139 211l411 -305l-90 -129zM143 0v1413h312v-1413h-312z" /> +<glyph unicode="Í" horiz-adv-x="598" d="M129 1610l412 305l137 -211l-461 -223zM143 0v1413h312v-1413h-312z" /> +<glyph unicode="Î" horiz-adv-x="598" d="M-84 1591l274 271h220l272 -277l-86 -112l-287 194h-16l-293 -194zM143 0v1413h312v-1413h-312z" /> +<glyph unicode="Ï" horiz-adv-x="598" d="M-4 1630v117q-1 68 65 68h101q66 0 65 -68v-117q0 -68 -65 -67h-101q-66 0 -65 67zM143 0v1413h312v-1413h-312zM367 1630v117q-1 68 67 68h101q68 0 67 -68v-117q0 -68 -67 -67h-101q-68 0 -67 67z" /> +<glyph unicode="Ð" horiz-adv-x="1398" d="M33 662v157h117v594q291 18 550 19q336 0 468 -156t132 -569.5t-132 -569t-468 -155.5q-260 0 -550 18v662h-117zM461 229q35 0 114.5 -1t124.5 -1q158 0 215.5 101.5t57.5 378.5q0 279 -57.5 380t-215.5 101l-239 -2v-367h254v-157h-254v-433z" /> +<glyph unicode="Ñ" horiz-adv-x="1478" d="M143 0v1300q0 113 113 113h190q47 0 74 -21.5t51 -70.5l359 -731q51 -102 102 -228h21q-12 160 -13 238v813h295v-1300q0 -113 -110 -113h-195q-47 0 -73.5 21.5t-51.5 70.5l-370 754q-70 150 -86 219h-23q14 -102 14 -225v-840h-297zM397 1550q-23 145 28.5 221 t137.5 70q72 -6 175.5 -48t152.5 -50q47 -8 62.5 11.5t15.5 76.5h129q23 -139 -26.5 -217t-139.5 -72q-78 6 -183.5 50t-144.5 50q-49 8 -63.5 -12.5t-14.5 -79.5h-129z" /> +<glyph unicode="Ò" horiz-adv-x="1400" d="M96 706.5q0 419.5 132 576.5t472 157t473.5 -157t133.5 -576.5t-133.5 -576.5t-473.5 -157t-472 157t-132 576.5zM295 1704l139 211l412 -305l-88 -129zM424 706.5q0 -280.5 58.5 -381t218 -100.5t218 100.5t58.5 381t-58.5 381t-218 100.5t-218 -100.5t-58.5 -381z" /> +<glyph unicode="Ó" horiz-adv-x="1400" d="M96 706.5q0 419.5 132 576.5t472 157t473.5 -157t133.5 -576.5t-133.5 -576.5t-473.5 -157t-472 157t-132 576.5zM424 706.5q0 -280.5 58.5 -381t218 -100.5t218 100.5t58.5 381t-58.5 381t-218 100.5t-218 -100.5t-58.5 -381zM528 1610l412 305l137 -211l-461 -223z" /> +<glyph unicode="Ô" horiz-adv-x="1400" d="M96 706.5q0 419.5 132 576.5t472 157t473.5 -157t133.5 -576.5t-133.5 -576.5t-473.5 -157t-472 157t-132 576.5zM315 1591l275 271h219l272 -277l-86 -112l-286 194h-17l-293 -194zM424 706.5q0 -280.5 58.5 -381t218 -100.5t218 100.5t58.5 381t-58.5 381t-218 100.5 t-218 -100.5t-58.5 -381z" /> +<glyph unicode="Õ" horiz-adv-x="1400" d="M96 706.5q0 419.5 132 576.5t472 157t473.5 -157t133.5 -576.5t-133.5 -576.5t-473.5 -157t-472 157t-132 576.5zM342 1550q-23 145 29.5 221t138.5 70q72 -6 175 -49t151 -49q49 -8 64 11.5t15 76.5h129q23 -139 -26 -217t-139 -72q-78 6 -185.5 50t-144.5 50 q-47 8 -61.5 -12.5t-14.5 -79.5h-131zM424 706.5q0 -280.5 58.5 -381t218 -100.5t218 100.5t58.5 381t-58.5 381t-218 100.5t-218 -100.5t-58.5 -381z" /> +<glyph unicode="Ö" horiz-adv-x="1400" d="M96 706.5q0 419.5 132 576.5t472 157t473.5 -157t133.5 -576.5t-133.5 -576.5t-473.5 -157t-472 157t-132 576.5zM395 1630v117q0 68 66 68h100q66 0 66 -68v-117q0 -68 -66 -67h-100q-66 0 -66 67zM424 706.5q0 -280.5 58.5 -381t218 -100.5t218 100.5t58.5 381 t-58.5 381t-218 100.5t-218 -100.5t-58.5 -381zM766 1630v117q0 68 68 68h100q68 0 67 -68v-117q0 -68 -67 -67h-100q-68 0 -68 67z" /> +<glyph unicode="×" horiz-adv-x="1007" d="M63 844l746 -666l143 170l-745 668z" /> +<glyph unicode="Ø" horiz-adv-x="1400" d="M96 707q0 420 132 576.5t472 156.5q115 0 195 -15l92 201l236 -113l-88 -190q92 -80 132 -227.5t40 -388.5q0 -420 -133.5 -577t-473.5 -157q-113 0 -196 15l-98 -211l-236 114l96 201q-170 150 -170 615zM424 706.5q0 -280.5 58.5 -381t218 -100.5t218 100.5t58.5 381 t-58.5 381t-218 100.5t-218 -100.5t-58.5 -381z" /> +<glyph unicode="Ù" horiz-adv-x="1394" d="M133 563v850h311v-850q0 -195 54.5 -266.5t199.5 -71.5q143 0 197.5 72t54.5 266v850h314v-850q0 -324 -124 -457t-427 -133q-319 0 -449.5 133.5t-130.5 456.5zM295 1704l139 211l412 -305l-88 -129z" /> +<glyph unicode="Ú" horiz-adv-x="1394" d="M133 563v850h311v-850q0 -195 54.5 -266.5t199.5 -71.5q143 0 197.5 72t54.5 266v850h314v-850q0 -324 -124 -457t-427 -133q-319 0 -449.5 133.5t-130.5 456.5zM528 1610l412 305l137 -211l-461 -223z" /> +<glyph unicode="Û" horiz-adv-x="1394" d="M133 563v850h311v-850q0 -195 54.5 -266.5t199.5 -71.5q143 0 197.5 72t54.5 266v850h314v-850q0 -324 -124 -457t-427 -133q-319 0 -449.5 133.5t-130.5 456.5zM315 1591l275 271h219l272 -277l-86 -112l-286 194h-17l-293 -194z" /> +<glyph unicode="Ü" horiz-adv-x="1394" d="M133 563v850h311v-850q0 -195 54.5 -266.5t199.5 -71.5q143 0 197.5 72t54.5 266v850h314v-850q0 -324 -124 -457t-427 -133q-319 0 -449.5 133.5t-130.5 456.5zM395 1630v117q0 68 66 68h100q66 0 66 -68v-117q0 -68 -66 -67h-100q-66 0 -66 67zM766 1630v117 q0 68 68 68h100q68 0 67 -68v-117q0 -68 -67 -67h-100q-68 0 -68 67z" /> +<glyph unicode="Ý" horiz-adv-x="1245" d="M0 1413h326l235 -518q20 -45 53 -178h21q25 111 51 178l236 518h321l-463 -946v-467h-313v467zM451 1610l411 305l139 -211l-460 -223z" /> +<glyph unicode="Þ" horiz-adv-x="1249" d="M143 0v1157v256h314v-237h219q291 0 399.5 -97.5t108.5 -369.5q0 -270 -102.5 -367.5t-366.5 -97.5q-131 0 -258 16v-260h-314zM457 485h211q119 0 160.5 45t41.5 179q0 135 -42 181t-160 46l-211 -2v-449z" /> +<glyph unicode="ß" horiz-adv-x="1443" d="M37 805v201l176 4v125q0 213 118 288.5t396 75.5q285 0 390.5 -68.5t105.5 -242.5q0 -72 -27 -127t-111 -127q-14 -12 -44.5 -37t-43 -35t-29 -27.5t-21.5 -33t-5 -33.5q0 -23 17.5 -45.5t32 -32.5t59.5 -39l18 -12l160 -92q98 -63 134 -118.5t36 -156.5 q0 -162 -89 -228.5t-304 -66.5q-154 0 -342 23l18 203q172 -4 254 -4q98 0 130 14t32 72q0 23 -7.5 40t-34 38.5t-38.5 29.5t-62 41l-145 78q-154 94 -154 240q0 45 19.5 83.5t33 55t67.5 62.5t67 59q59 53 79.5 84.5t20.5 77.5q0 55 -41 78.5t-170 23.5q-131 0 -174 -35 t-43 -141v-1100h-303v805h-176z" /> +<glyph unicode="à" horiz-adv-x="1161" d="M74 266v103q0 121 82 188.5t227 67.5h360v45q-2 78 -35.5 104.5t-129.5 26.5q-168 -1 -426 -17l-29 205q272 49 526 49q205 0 301.5 -83t96.5 -287v-668h-240l-31 154q-152 -178 -373 -179q-145 0 -237 77t-92 214zM176 1331l137 209l414 -303l-90 -131zM373 307 q0 -104 119 -104q123 0 251 98v141h-272q-98 -2 -98 -96v-39z" /> +<glyph unicode="á" horiz-adv-x="1161" d="M74 266v103q0 121 82 188.5t227 67.5h360v45q-2 78 -35.5 104.5t-129.5 26.5q-168 -1 -426 -17l-29 205q272 49 526 49q205 0 301.5 -83t96.5 -287v-668h-240l-31 154q-152 -178 -373 -179q-145 0 -237 77t-92 214zM373 307q0 -104 119 -104q123 0 251 98v141h-272 q-98 -2 -98 -96v-39zM408 1237l411 303l139 -209l-460 -225z" /> +<glyph unicode="â" horiz-adv-x="1161" d="M74 266v103q0 121 82 188.5t227 67.5h360v45q-2 78 -35.5 104.5t-129.5 26.5q-168 -1 -426 -17l-29 205q272 49 526 49q205 0 301.5 -83t96.5 -287v-668h-240l-31 154q-152 -178 -373 -179q-145 0 -237 77t-92 214zM197 1219l274 270h219l271 -277l-84 -112l-289 194h-17 l-290 -194zM373 307q0 -104 119 -104q123 0 251 98v141h-272q-98 -2 -98 -96v-39z" /> +<glyph unicode="ã" horiz-adv-x="1161" d="M74 266v103q0 121 82 188.5t227 67.5h360v45q-2 78 -35.5 104.5t-129.5 26.5q-168 -1 -426 -17l-29 205q272 49 526 49q205 0 301.5 -83t96.5 -287v-668h-240l-31 154q-152 -178 -373 -179q-145 0 -237 77t-92 214zM223 1178q-23 143 28.5 219t137.5 69q74 -6 177.5 -48 t150.5 -50q49 -8 63.5 12.5t14.5 75.5h131q20 -139 -29 -216t-139 -71q-78 6 -183.5 50.5t-144.5 50.5q-49 6 -63.5 -14.5t-14.5 -77.5h-129zM373 307q0 -104 119 -104q123 0 251 98v141h-272q-98 -2 -98 -96v-39z" /> +<glyph unicode="ä" horiz-adv-x="1161" d="M74 266v103q0 121 82 188.5t227 67.5h360v45q-2 78 -35.5 104.5t-129.5 26.5q-168 -1 -426 -17l-29 205q272 49 526 49q205 0 301.5 -83t96.5 -287v-668h-240l-31 154q-152 -178 -373 -179q-145 0 -237 77t-92 214zM274 1255v119q0 68 68 68h98q68 0 68 -68v-119 q0 -67 -68 -67h-98q-68 0 -68 67zM373 307q0 -104 119 -104q123 0 251 98v141h-272q-98 -2 -98 -96v-39zM647 1255v119q0 68 68 68h98q68 0 68 -68v-119q0 -67 -68 -67h-98q-68 0 -68 67z" /> +<glyph unicode="å" horiz-adv-x="1161" d="M74 266v103q0 121 82 188.5t227 67.5h360v45q-2 78 -35.5 104.5t-129.5 26.5q-168 -1 -426 -17l-29 205q272 49 526 49q205 0 301.5 -83t96.5 -287v-668h-240l-31 154q-152 -178 -373 -179q-145 0 -237 77t-92 214zM338 1321q0 98 70.5 166.5t171.5 68.5 q98 0 169.5 -68.5t71.5 -166.5t-70.5 -167t-171 -69t-171 69t-70.5 167zM373 307q0 -104 119 -104q123 0 251 98v141h-272q-98 -2 -98 -96v-39zM477 1321q0 -47 30 -75.5t73 -28.5t72.5 28.5t29.5 75.5t-29.5 76.5t-72.5 29.5t-73 -29.5t-30 -76.5z" /> +<glyph unicode="æ" horiz-adv-x="1792" d="M74 266v103q0 119 82 186.5t225 67.5h354v47q0 76 -33.5 103.5t-128.5 27.5q-166 0 -423 -17l-27 205q268 49 520 49q184 0 279 -65q113 66 323 65q250 0 361.5 -87t111.5 -265q2 -141 -70.5 -212t-234.5 -71h-364q14 -111 67 -148.5t176 -37.5q158 0 373 23l29 -189 q-158 -76 -439 -76q-346 0 -456 199q-156 -199 -400 -199q-143 0 -234 77t-91 214zM373 307q0 -104 114 -104q127 0 265 108q-14 63 -17 131h-266q-96 -2 -96 -96v-39zM1044 586h285q55 0 74.5 26.5t19.5 77.5q0 72 -36.5 99.5t-131.5 27.5q-119 0 -163 -46t-48 -185z" /> +<glyph unicode="ç" horiz-adv-x="1038" d="M82 506q0 293 114.5 412.5t395.5 119.5q229 0 373 -63l-33 -189q-221 4 -289 5q-139 0 -191.5 -59.5t-52.5 -225.5t52.5 -225.5t191.5 -59.5q178 1 309 19l27 -197q-156 -68 -391 -68q-279 0 -392.5 120t-113.5 411zM336 -516l39 133q76 -2 124 27.5t52 91.5 q2 27 -21.5 33t-109.5 6l31 119q168 18 233.5 -6.5t60.5 -127.5q-6 -150 -121.5 -224.5t-287.5 -51.5z" /> +<glyph unicode="è" horiz-adv-x="1146" d="M82 504q0 297 117.5 415.5t396.5 118.5q252 0 364.5 -87t114.5 -265q0 -141 -72.5 -212t-234.5 -71h-365q14 -111 66.5 -148.5t173.5 -37.5q162 0 377 23l29 -189q-158 -76 -441 -76q-285 0 -405.5 123t-120.5 406zM197 1331l139 209l412 -303l-91 -131zM397 586h287 q55 0 74.5 26.5t19.5 77.5q0 72 -36.5 99.5t-135.5 27.5q-117 0 -160 -46t-49 -185z" /> +<glyph unicode="é" horiz-adv-x="1146" d="M82 504q0 297 117.5 415.5t396.5 118.5q252 0 364.5 -87t114.5 -265q0 -141 -72.5 -212t-234.5 -71h-365q14 -111 66.5 -148.5t173.5 -37.5q162 0 377 23l29 -189q-158 -76 -441 -76q-285 0 -405.5 123t-120.5 406zM397 586h287q55 0 74.5 26.5t19.5 77.5 q0 72 -36.5 99.5t-135.5 27.5q-117 0 -160 -46t-49 -185zM428 1237l414 303l137 -209l-461 -225z" /> +<glyph unicode="ê" horiz-adv-x="1146" d="M82 504q0 297 117.5 415.5t396.5 118.5q252 0 364.5 -87t114.5 -265q0 -141 -72.5 -212t-234.5 -71h-365q14 -111 66.5 -148.5t173.5 -37.5q162 0 377 23l29 -189q-158 -76 -441 -76q-285 0 -405.5 123t-120.5 406zM217 1219l275 270h219l270 -277l-84 -112l-289 194h-16 l-291 -194zM397 586h287q55 0 74.5 26.5t19.5 77.5q0 72 -36.5 99.5t-135.5 27.5q-117 0 -160 -46t-49 -185z" /> +<glyph unicode="ë" horiz-adv-x="1146" d="M82 504q0 297 117.5 415.5t396.5 118.5q252 0 364.5 -87t114.5 -265q0 -141 -72.5 -212t-234.5 -71h-365q14 -111 66.5 -148.5t173.5 -37.5q162 0 377 23l29 -189q-158 -76 -441 -76q-285 0 -405.5 123t-120.5 406zM295 1255v119q0 68 67 68h101q66 0 65 -68v-119 q1 -67 -65 -67h-101q-68 0 -67 67zM397 586h287q55 0 74.5 26.5t19.5 77.5q0 72 -36.5 99.5t-135.5 27.5q-117 0 -160 -46t-49 -185zM668 1255v119q0 68 67 68h99q68 0 67 -68v-119q1 -67 -67 -67h-99q-68 0 -67 67z" /> +<glyph unicode="ì" horiz-adv-x="569" d="M-117 1331l137 209l412 -303l-88 -131zM133 0v1010h303v-1010h-303z" /> +<glyph unicode="í" horiz-adv-x="569" d="M115 1237l411 303l140 -209l-463 -225zM133 0v1010h303v-1010h-303z" /> +<glyph unicode="î" horiz-adv-x="569" d="M-98 1219l274 270h219l273 -277l-84 -112l-289 194h-16l-293 -194zM133 0v1010h303v-1010h-303z" /> +<glyph unicode="ï" horiz-adv-x="569" d="M-18 1255v119q-1 68 65 68h100q66 0 66 -68v-119q0 -68 -66 -67h-100q-66 0 -65 67zM133 0v1010h303v-1010h-303zM354 1255v119q0 68 68 68h98q68 0 68 -68v-119q0 -68 -68 -67h-98q-68 0 -68 67z" /> +<glyph unicode="ð" horiz-adv-x="1173" d="M80 442q0 246 100.5 364t335.5 118q133 0 229 -43q-43 207 -162.5 283.5t-334.5 64.5l26 201q240 14 422 -70l172 170l170 -172l-147 -144q197 -223 196 -626q0 -319 -115.5 -467t-393.5 -148q-256 0 -377 114t-121 355zM395 449q0 -141 42.5 -194.5t144.5 -53.5 q119 0 154.5 83t35.5 308l-2 86q-86 18 -188.5 18t-144.5 -55t-42 -192z" /> +<glyph unicode="ñ" horiz-adv-x="1226" d="M125 0v1010h246l22 -150q219 178 432 178q137 0 210 -71.5t73 -208.5v-758h-301v664q0 68 -21.5 93t-76.5 25q-96 0 -281 -92v-690h-303zM272 1178q-23 143 29.5 219t138.5 69q74 -6 176.5 -48t149.5 -50q49 -8 64.5 12.5t15.5 75.5h129q23 -139 -26.5 -216t-141.5 -71 q-78 6 -183.5 50.5t-144.5 50.5q-49 6 -63.5 -14.5t-14.5 -77.5h-129z" /> +<glyph unicode="ò" horiz-adv-x="1202" d="M82 504q0 293 117.5 413.5t402.5 120.5q283 0 400.5 -121.5t117.5 -412.5t-117.5 -411t-400.5 -120q-285 0 -402.5 120t-117.5 411zM199 1331l139 209l412 -303l-91 -131zM399 504q0 -180 41 -241.5t162 -61.5q117 0 159 61.5t42 241.5q0 182 -41 244.5t-160 62.5 q-121 0 -162 -61.5t-41 -245.5z" /> +<glyph unicode="ó" horiz-adv-x="1202" d="M82 504q0 293 117.5 413.5t402.5 120.5q283 0 400.5 -121.5t117.5 -412.5t-117.5 -411t-400.5 -120q-285 0 -402.5 120t-117.5 411zM399 504q0 -180 41 -241.5t162 -61.5q117 0 159 61.5t42 241.5q0 182 -41 244.5t-160 62.5q-121 0 -162 -61.5t-41 -245.5zM432 1237 l412 303l137 -209l-461 -225z" /> +<glyph unicode="ô" horiz-adv-x="1202" d="M82 504q0 293 117.5 413.5t402.5 120.5q283 0 400.5 -121.5t117.5 -412.5t-117.5 -411t-400.5 -120q-285 0 -402.5 120t-117.5 411zM219 1219l275 270h219l272 -277l-86 -112l-287 194h-16l-293 -194zM399 504q0 -180 41 -241.5t162 -61.5q117 0 159 61.5t42 241.5 q0 182 -41 244.5t-160 62.5q-121 0 -162 -61.5t-41 -245.5z" /> +<glyph unicode="õ" horiz-adv-x="1202" d="M82 504q0 293 117.5 413.5t402.5 120.5q283 0 400.5 -121.5t117.5 -412.5t-117.5 -411t-400.5 -120q-285 0 -402.5 120t-117.5 411zM246 1178q-23 143 29.5 219t138.5 69q74 -6 176 -48t149 -50q49 -8 64.5 12.5t15.5 75.5h129q23 -139 -25.5 -216t-140.5 -71 q-78 6 -185.5 50.5t-143.5 50.5q-47 6 -61.5 -14.5t-14.5 -77.5h-131zM399 504q0 -180 41 -241.5t162 -61.5q117 0 159 61.5t42 241.5q0 182 -41 244.5t-160 62.5q-121 0 -162 -61.5t-41 -245.5z" /> +<glyph unicode="ö" horiz-adv-x="1202" d="M82 504q0 293 117.5 413.5t402.5 120.5q283 0 400.5 -121.5t117.5 -412.5t-117.5 -411t-400.5 -120q-285 0 -402.5 120t-117.5 411zM299 1255v119q0 68 66 68h100q66 0 65 -68v-119q0 -68 -65 -67h-100q-66 0 -66 67zM399 504q0 -180 41 -241.5t162 -61.5q117 0 159 61.5 t42 241.5q0 182 -41 244.5t-160 62.5q-121 0 -162 -61.5t-41 -245.5zM670 1255v119q-1 68 67 68h101q68 0 67 -68v-119q0 -68 -67 -67h-101q-68 0 -67 67z" /> +<glyph unicode="÷" horiz-adv-x="1132" d="M96 494v215h940v-215h-940zM418 182v68q0 63 23.5 86.5t84.5 23.5h74q63 0 87 -23.5t24 -86.5v-68q0 -63 -23.5 -86.5t-87.5 -23.5h-74q-61 0 -84.5 23.5t-23.5 86.5zM418 946v70q0 63 23.5 86.5t84.5 23.5h74q63 0 87 -23.5t24 -86.5v-70q0 -61 -23.5 -84.5t-87.5 -23.5 h-74q-61 0 -84.5 23.5t-23.5 84.5z" /> +<glyph unicode="ø" horiz-adv-x="1202" d="M82 504q0 293 117.5 413.5t402.5 120.5q66 0 117 -6l92 191l209 -105l-76 -153q176 -113 176 -461q0 -291 -117.5 -411t-400.5 -120q-80 0 -131 9l-88 -185l-209 103l74 153q-166 113 -166 451zM399 504q0 -180 41 -241.5t162 -61.5q117 0 159 61.5t42 241.5 q0 182 -41 244.5t-160 62.5q-121 0 -162 -61.5t-41 -245.5z" /> +<glyph unicode="ù" horiz-adv-x="1208" d="M119 254v756h303v-664q-2 -66 22.5 -92.5t85.5 -26.5q88 0 252 84v699h301v-1010h-239l-23 139q-209 -166 -418 -166q-285 0 -284 281zM205 1346l139 208l412 -303l-88 -129z" /> +<glyph unicode="ú" horiz-adv-x="1208" d="M119 254v756h303v-664q-2 -66 22.5 -92.5t85.5 -26.5q88 0 252 84v699h301v-1010h-239l-23 139q-209 -166 -418 -166q-285 0 -284 281zM438 1251l412 303l137 -208l-461 -224z" /> +<glyph unicode="û" horiz-adv-x="1208" d="M119 254v756h303v-664q-2 -66 22.5 -92.5t85.5 -26.5q88 0 252 84v699h301v-1010h-239l-23 139q-209 -166 -418 -166q-285 0 -284 281zM225 1233l275 270h219l272 -276l-86 -113l-287 195h-16l-293 -195z" /> +<glyph unicode="ü" horiz-adv-x="1208" d="M119 254v756h303v-664q-2 -66 22.5 -92.5t85.5 -26.5q88 0 252 84v699h301v-1010h-239l-23 139q-209 -166 -418 -166q-285 0 -284 281zM305 1272v117q0 68 66 67h100q66 0 66 -67v-117q0 -68 -66 -68h-100q-66 0 -66 68zM676 1272v117q0 68 67 67h101q68 0 67 -67v-117 q1 -68 -67 -68h-101q-68 0 -67 68z" /> +<glyph unicode="ý" horiz-adv-x="1150" d="M14 1010h324l188 -654q18 -72 31 -151h27q6 25 20 77t21 74l186 654h324l-359 -1024q-29 -82 -70.5 -152t-107.5 -134.5t-163 -95t-216 -16.5l-24 179q123 33 192.5 85t108.5 140l4 8h-58q-76 0 -98 74zM412 1237l411 303l138 -209l-461 -225z" /> +<glyph unicode="þ" horiz-adv-x="1216" d="M125 -389v1823h303v-277q0 -113 -10 -246q139 123 348 123q195 0 279.5 -131t84.5 -407q0 -295 -88 -409t-286 -114q-197 0 -336 84q8 -88 8 -202v-244h-303zM428 242q127 -49 213 -49q100 0 139 61t39 240q0 182 -38 244.5t-132 62.5t-221 -88v-471z" /> +<glyph unicode="ÿ" horiz-adv-x="1150" d="M14 1010h324l188 -654q18 -72 31 -151h27q6 25 20 77t21 74l186 654h324l-359 -1024q-29 -82 -70.5 -152t-107.5 -134.5t-163 -95t-216 -16.5l-24 179q123 33 192.5 85t108.5 140l4 8h-58q-76 0 -98 74zM279 1255v119q0 68 65 68h100q66 0 66 -68v-119q0 -67 -66 -67 h-100q-66 0 -65 67zM649 1255v119q0 68 68 68h100q66 0 66 -68v-119q0 -67 -66 -67h-100q-68 0 -68 67z" /> +<glyph unicode="Œ" horiz-adv-x="1935" d="M96 706.5q0 286.5 59.5 444.5t186.5 223.5t354 65.5q199 0 359 -60q68 39 149 39q461 0 649 -20l-14 -232h-506q-57 0 -82.5 -24.5t-25.5 -79.5v-217h540v-221h-540v-275q0 -57 25.5 -81.5t82.5 -24.5h506l14 -230q-193 -20 -661 -20q-86 0 -158 45q-139 -66 -338 -66 q-227 0 -354 65.5t-186.5 223.5t-59.5 444.5zM426 707q0 -281 56.5 -381.5t213.5 -100.5q131 0 217 23q-2 16 -2 47v823q0 33 2 49q-92 20 -217 21q-158 0 -214 -99.5t-56 -381.5z" /> +<glyph unicode="œ" horiz-adv-x="1853" d="M82 504q0 293 116.5 413.5t399.5 120.5q236 0 354 -86q115 84 342 84q485 0 486 -336q0 -164 -77.5 -227t-272.5 -63h-320q14 -117 66.5 -156t177.5 -39q166 0 370 25l29 -191q-158 -76 -436 -76q-240 0 -361 90q-117 -90 -358 -90q-283 0 -399.5 120t-116.5 411z M399 504q0 -180 41 -241.5t158 -61.5q111 0 154 51t47 197v57v57q-4 145 -47 196.5t-152 51.5q-119 0 -160 -61.5t-41 -245.5zM1106 586h270q66 0 88.5 24.5t20.5 94.5q-4 59 -46 84.5t-139 25.5q-106 2 -147 -45t-47 -184z" /> +<glyph unicode="Ÿ" horiz-adv-x="1245" d="M0 1413h326l235 -518q20 -45 53 -178h21q25 111 51 178l236 518h321l-463 -946v-467h-313v467zM317 1630v117q0 68 66 68h100q68 0 68 -68v-117q0 -67 -68 -67h-100q-66 0 -66 67zM690 1630v117q0 68 68 68h98q68 0 68 -68v-117q0 -67 -68 -67h-98q-68 0 -68 67z" /> +<glyph unicode="ˆ" horiz-adv-x="917" d="M78 1212l274 269h219l271 -275l-84 -112l-289 192h-16l-291 -192z" /> +<glyph unicode="˜" horiz-adv-x="901" d="M100 1167q-23 145 28.5 221t137.5 70q72 -6 175.5 -49t150.5 -49q49 -8 64.5 12.5t15.5 75.5h129q23 -139 -26.5 -217t-139.5 -72q-78 6 -185.5 51t-142.5 52q-49 6 -63.5 -15t-14.5 -80h-129z" /> +<glyph unicode=" " horiz-adv-x="968" /> +<glyph unicode=" " horiz-adv-x="1937" /> +<glyph unicode=" " horiz-adv-x="968" /> +<glyph unicode=" " horiz-adv-x="1937" /> +<glyph unicode=" " horiz-adv-x="645" /> +<glyph unicode=" " horiz-adv-x="484" /> +<glyph unicode=" " horiz-adv-x="322" /> +<glyph unicode=" " horiz-adv-x="322" /> +<glyph unicode=" " horiz-adv-x="242" /> +<glyph unicode=" " horiz-adv-x="387" /> +<glyph unicode=" " horiz-adv-x="107" /> +<glyph unicode="‐" horiz-adv-x="847" d="M119 422v199h610v-199h-610z" /> +<glyph unicode="‑" horiz-adv-x="847" d="M119 422v199h610v-199h-610z" /> +<glyph unicode="‒" horiz-adv-x="847" d="M119 422v199h610v-199h-610z" /> +<glyph unicode="–" horiz-adv-x="1148" d="M119 422v199h911v-199h-911z" /> +<glyph unicode="—" horiz-adv-x="1755" d="M119 422v199h1517v-199h-1517z" /> +<glyph unicode="‘" horiz-adv-x="456" d="M96 1018v121q0 188 101 338l118 -33q-29 -113 -28 -240q82 0 82 -86l-2 -100q-4 -53 -26 -74.5t-77 -21.5h-67q-57 0 -79 21.5t-22 74.5z" /> +<glyph unicode="’" horiz-adv-x="450" d="M86 1264l2 100q2 55 24.5 76.5t77.5 21.5h68q57 0 78.5 -21.5t21.5 -76.5v-119q-2 -186 -100 -340l-119 35q25 98 29 240q-82 0 -82 84z" /> +<glyph unicode="‚" horiz-adv-x="479" d="M102 90l2 105q4 57 26 78.5t77 21.5h69q55 0 77 -21.5t22 -78.5v-125q0 -195 -99 -353l-120 35q29 115 28 250q-78 0 -82 88z" /> +<glyph unicode="“" horiz-adv-x="823" d="M96 1018v121q0 188 101 338l118 -33q-29 -113 -28 -240q82 0 82 -86l-2 -100q-4 -53 -26 -74.5t-77 -21.5h-67q-57 0 -79 21.5t-22 74.5zM463 1018v121q2 188 100 338l121 -33q-29 -102 -29 -240q78 0 82 -86l-4 -100q-2 -53 -24.5 -74.5t-77.5 -21.5h-68 q-55 0 -76.5 21.5t-23.5 74.5z" /> +<glyph unicode="”" horiz-adv-x="817" d="M86 1264l2 100q2 55 24.5 76.5t77.5 21.5h68q57 0 78.5 -21.5t21.5 -76.5v-119q-2 -186 -100 -340l-119 35q25 98 29 240q-82 0 -82 84zM453 1264l2 100q2 55 25.5 76.5t76.5 21.5h70q55 0 76.5 -21.5t21.5 -76.5v-119q0 -186 -98 -340l-121 35q29 113 29 240 q-78 0 -82 84z" /> +<glyph unicode="„" horiz-adv-x="845" d="M102 74l2 100q2 55 25 75.5t78 20.5h67q57 0 79 -20.5t22 -75.5v-119q-2 -186 -101 -340l-118 35q25 98 28 240q-82 0 -82 84zM469 74l2 100q2 55 24.5 75.5t77.5 20.5h70q55 0 76.5 -20.5t21.5 -75.5v-119q0 -186 -98 -340l-121 35q29 113 29 240q-78 0 -82 84z" /> +<glyph unicode="•" horiz-adv-x="761" d="M152 539v30q0 117 48 163t173 46h28q119 0 165 -46t46 -163v-30q0 -125 -46 -173.5t-165 -48.5h-28q-127 0 -174 48.5t-47 173.5z" /> +<glyph unicode="…" horiz-adv-x="1828" d="M94 106v99q0 59 23 81.5t82 22.5h82q59 0 82.5 -22.5t23.5 -81.5v-99q0 -59 -23.5 -82.5t-82.5 -23.5h-82q-59 0 -82 23.5t-23 82.5zM756 106v99q0 59 23.5 81.5t82.5 22.5h82q59 0 83 -22.5t24 -81.5v-99q0 -59 -23.5 -82.5t-83.5 -23.5h-82q-59 0 -82.5 23.5 t-23.5 82.5zM1419 106v99q0 59 24 81.5t83 22.5h82q59 0 82.5 -22.5t23.5 -81.5v-99q0 -59 -23.5 -82.5t-82.5 -23.5h-82q-59 0 -83 23.5t-24 82.5z" /> +<glyph unicode=" " horiz-adv-x="387" /> +<glyph unicode="‹" horiz-adv-x="636" d="M70 481v66l323 405l160 -102l-215 -336l217 -346l-160 -100z" /> +<glyph unicode="›" horiz-adv-x="638" d="M82 168l219 346l-217 336l158 102l327 -405v-66l-327 -413z" /> +<glyph unicode=" " horiz-adv-x="484" /> +<glyph unicode="€" horiz-adv-x="1308" d="M80 483v193h891l-19 -193h-385q23 -121 82.5 -179t169.5 -64q180 -19 385 18l25 -225q-168 -57 -387 -58q-283 0 -425.5 124t-178.5 384h-158zM82 754v194h156q39 252 181 371t423 119q190 0 356 -47l-27 -228q-223 29 -352 11q-102 -10 -161.5 -63.5t-86.5 -162.5h457 l-20 -194h-926z" /> +<glyph unicode="™" horiz-adv-x="2007" d="M115 1262v163h696v-163h-244v-615h-209v615h-243zM887 647l28 703q4 76 74 75h197q63 0 80 -65l92 -352q4 -18 10 -56.5t10 -56.5h15q2 14 9 54t13 61l88 350q12 66 80 65h201q70 0 76 -75l26 -703h-192l-27 621h-20l-115 -443q-14 -63 -82 -63h-129q-66 0 -82 63 l-115 443h-20l-25 -621h-192z" /> +<glyph unicode="◼" horiz-adv-x="1013" d="M0 0v1014h1014v-1014h-1014z" /> +<glyph unicode="fi" horiz-adv-x="1366" d="M39 807v192l176 11v135q0 330 332 330q168 0 270 -21v-201h-164q-76 0 -105.5 -32.5t-29.5 -114.5v-96h715v-1010h-303v807h-412v-807h-303v807h-176zM926 1266v110q0 88 88 88h133q90 0 90 -88v-110q0 -88 -90 -88h-133q-88 0 -88 88z" /> +<glyph unicode="fl" horiz-adv-x="1476" d="M37 807v192l176 11v135q0 160 78 246t252 84q508 0 704 -37v-1125q0 -104 109 -104h76l34 -193q-76 -41 -235 -41q-133 0 -209 70t-76 193v1019h-297q-76 0 -104.5 -33.5t-28.5 -117.5v-96h254v-203h-254v-807h-303v807h-176z" /> +<hkern u1=" " u2="þ" k="-2" /> +<hkern u1=" " u2="Ð" k="8" /> +<hkern u1=" " u2="Æ" k="59" /> +<hkern u1=" " u2="v" k="45" /> +<hkern u1=" " u2="V" k="47" /> +<hkern u1=" " u2="J" k="39" /> +<hkern u1=""" u2="ï" k="-12" /> +<hkern u1=""" u2="î" k="-53" /> +<hkern u1=""" u2="ì" k="-76" /> +<hkern u1="#" u2="3" k="14" /> +<hkern u1="#" u2="2" k="12" /> +<hkern u1="&" u2="Æ" k="-14" /> +<hkern u1="&" u2="X" k="-4" /> +<hkern u1="&" u2="V" k="39" /> +<hkern u1="'" u2="ï" k="-12" /> +<hkern u1="'" u2="î" k="-53" /> +<hkern u1="'" u2="ì" k="-76" /> +<hkern u1="(" u2="þ" k="16" /> +<hkern u1="(" u2="ð" k="78" /> +<hkern u1="(" u2="ï" k="-29" /> +<hkern u1="(" u2="ì" k="-43" /> +<hkern u1="(" u2="Ï" k="-6" /> +<hkern u1="(" u2="Î" k="-88" /> +<hkern u1="(" u2="Æ" k="35" /> +<hkern u1="(" u2="{" k="20" /> +<hkern u1="(" u2="x" k="49" /> +<hkern u1="(" u2="v" k="94" /> +<hkern u1="(" u2="q" k="104" /> +<hkern u1="(" u2="j" k="-25" /> +<hkern u1="(" u2="V" k="-6" /> +<hkern u1="(" u2="M" k="41" /> +<hkern u1="(" u2="J" k="45" /> +<hkern u1="(" u2="F" k="53" /> +<hkern u1="(" u2="9" k="55" /> +<hkern u1="(" u2="8" k="68" /> +<hkern u1="(" u2="6" k="82" /> +<hkern u1="(" u2="5" k="20" /> +<hkern u1="(" u2="4" k="100" /> +<hkern u1="(" u2="1" k="35" /> +<hkern u1="(" u2="0" k="82" /> +<hkern u1="(" u2="(" k="70" /> +<hkern u1=")" u2="}" k="35" /> +<hkern u1=")" u2="]" k="45" /> +<hkern u1=")" u2=")" k="70" /> +<hkern u1="*" u2="ð" k="35" /> +<hkern u1="*" u2="ï" k="-8" /> +<hkern u1="*" u2="î" k="-72" /> +<hkern u1="*" u2="ì" k="-31" /> +<hkern u1="*" u2="Æ" k="139" /> +<hkern u1="*" u2="v" k="-8" /> +<hkern u1="*" u2="q" k="31" /> +<hkern u1="*" u2="J" k="66" /> +<hkern u1="+" u2="7" k="43" /> +<hkern u1="+" u2="3" k="14" /> +<hkern u1="+" u2="2" k="12" /> +<hkern u1="+" u2="1" k="23" /> +<hkern u1="/" u2="ð" k="53" /> +<hkern u1="/" u2="ï" k="-39" /> +<hkern u1="/" u2="î" k="-27" /> +<hkern u1="/" u2="ì" k="-104" /> +<hkern u1="/" u2="Æ" k="176" /> +<hkern u1="/" u2="x" k="39" /> +<hkern u1="/" u2="v" k="25" /> +<hkern u1="/" u2="q" k="100" /> +<hkern u1="/" u2="V" k="-6" /> +<hkern u1="/" u2="J" k="57" /> +<hkern u1="/" u2="6" k="33" /> +<hkern u1="/" u2="4" k="90" /> +<hkern u1="/" u2="0" k="29" /> +<hkern u1="/" u2="/" k="205" /> +<hkern u1="0" u2="Æ" k="10" /> +<hkern u1="0" u2="}" k="41" /> +<hkern u1="0" u2="]" k="47" /> +<hkern u1="0" u2="\" k="29" /> +<hkern u1="0" u2="/" k="66" /> +<hkern u1="0" u2=")" k="82" /> +<hkern u1="1" u2="}" k="12" /> +<hkern u1="1" u2="]" k="14" /> +<hkern u1="1" u2="/" k="12" /> +<hkern u1="1" u2=")" k="25" /> +<hkern u1="2" u2="÷" k="18" /> +<hkern u1="2" u2="Æ" k="-8" /> +<hkern u1="2" u2="}" k="14" /> +<hkern u1="2" u2="]" k="25" /> +<hkern u1="2" u2="4" k="12" /> +<hkern u1="2" u2=")" k="41" /> +<hkern u1="3" u2="}" k="29" /> +<hkern u1="3" u2="]" k="35" /> +<hkern u1="3" u2="/" k="39" /> +<hkern u1="3" u2=")" k="63" /> +<hkern u1="4" u2="°" k="27" /> +<hkern u1="4" u2="}" k="37" /> +<hkern u1="4" u2="]" k="53" /> +<hkern u1="4" u2="\" k="86" /> +<hkern u1="4" u2="V" k="41" /> +<hkern u1="4" u2="J" k="14" /> +<hkern u1="4" u2="7" k="59" /> +<hkern u1="4" u2="1" k="35" /> +<hkern u1="4" u2="/" k="45" /> +<hkern u1="4" u2=")" k="92" /> +<hkern u1="5" u2="/" k="41" /> +<hkern u1="5" u2=")" k="14" /> +<hkern u1="6" u2="]" k="12" /> +<hkern u1="6" u2="/" k="39" /> +<hkern u1="6" u2=")" k="39" /> +<hkern u1="7" u2="÷" k="33" /> +<hkern u1="7" u2="×" k="88" /> +<hkern u1="7" u2="Æ" k="102" /> +<hkern u1="7" u2="·" k="39" /> +<hkern u1="7" u2="V" k="-4" /> +<hkern u1="7" u2="J" k="47" /> +<hkern u1="7" u2="4" k="37" /> +<hkern u1="7" u2="1" k="-12" /> +<hkern u1="7" u2="/" k="137" /> +<hkern u1="7" u2="+" k="29" /> +<hkern u1="7" u2="#" k="14" /> +<hkern u1="8" u2="}" k="29" /> +<hkern u1="8" u2="]" k="39" /> +<hkern u1="8" u2="/" k="35" /> +<hkern u1="8" u2=")" k="68" /> +<hkern u1="9" u2="Æ" k="10" /> +<hkern u1="9" u2="}" k="37" /> +<hkern u1="9" u2="]" k="43" /> +<hkern u1="9" u2="\" k="8" /> +<hkern u1="9" u2="/" k="66" /> +<hkern u1="9" u2=")" k="76" /> +<hkern u1="=" u2="7" k="18" /> +<hkern u1="B" u2="þ" k="45" /> +<hkern u1="B" u2="î" k="-18" /> +<hkern u1="B" u2="Æ" k="14" /> +<hkern u1="B" u2="}" k="35" /> +<hkern u1="B" u2="]" k="45" /> +<hkern u1="B" u2="X" k="6" /> +<hkern u1="B" u2="V" k="16" /> +<hkern u1="B" u2="/" k="33" /> +<hkern u1="B" u2=")" k="72" /> +<hkern u1="C" u2="þ" k="37" /> +<hkern u1="C" u2="ï" k="-6" /> +<hkern u1="C" u2="î" k="-35" /> +<hkern u1="C" u2="ì" k="-70" /> +<hkern u1="D" u2="þ" k="23" /> +<hkern u1="E" u2="þ" k="41" /> +<hkern u1="E" u2="ï" k="-8" /> +<hkern u1="E" u2="î" k="-49" /> +<hkern u1="E" u2="ì" k="-78" /> +<hkern u1="F" u2="þ" k="45" /> +<hkern u1="F" u2="ð" k="43" /> +<hkern u1="F" u2="ï" k="-23" /> +<hkern u1="F" u2="î" k="-80" /> +<hkern u1="F" u2="ì" k="-106" /> +<hkern u1="F" u2="Æ" k="184" /> +<hkern u1="F" u2="x" k="10" /> +<hkern u1="F" u2="q" k="35" /> +<hkern u1="F" u2="J" k="86" /> +<hkern u1="F" u2="/" k="147" /> +<hkern u1="F" u2=" " k="35" /> +<hkern u1="G" u2="î" k="-8" /> +<hkern u1="G" u2="ì" k="-8" /> +<hkern u1="H" u2="þ" k="39" /> +<hkern u1="H" u2="î" k="-25" /> +<hkern u1="H" u2="ì" k="-23" /> +<hkern u1="I" u2="þ" k="39" /> +<hkern u1="I" u2="î" k="-25" /> +<hkern u1="I" u2="ì" k="-23" /> +<hkern u1="J" u2="þ" k="41" /> +<hkern u1="J" u2="î" k="-27" /> +<hkern u1="J" u2="ì" k="-25" /> +<hkern u1="K" u2="þ" k="25" /> +<hkern u1="K" u2="ï" k="-29" /> +<hkern u1="K" u2="î" k="-25" /> +<hkern u1="K" u2="ì" k="-84" /> +<hkern u1="M" u2="î" k="-16" /> +<hkern u1="M" u2="ì" k="-10" /> +<hkern u1="M" u2="}" k="14" /> +<hkern u1="M" u2="]" k="18" /> +<hkern u1="M" u2="V" k="4" /> +<hkern u1="M" u2=")" k="41" /> +<hkern u1="N" u2="þ" k="39" /> +<hkern u1="N" u2="î" k="-25" /> +<hkern u1="N" u2="ì" k="-23" /> +<hkern u1="O" u2="þ" k="23" /> +<hkern u1="O" u2="î" k="-4" /> +<hkern u1="P" u2="þ" k="43" /> +<hkern u1="P" u2="ð" k="23" /> +<hkern u1="P" u2="î" k="-49" /> +<hkern u1="P" u2="ì" k="-18" /> +<hkern u1="P" u2="Æ" k="152" /> +<hkern u1="P" u2="}" k="29" /> +<hkern u1="P" u2="v" k="-6" /> +<hkern u1="P" u2="q" k="12" /> +<hkern u1="P" u2="]" k="35" /> +<hkern u1="P" u2="X" k="33" /> +<hkern u1="P" u2="J" k="88" /> +<hkern u1="P" u2="/" k="143" /> +<hkern u1="P" u2="*" k="-4" /> +<hkern u1="P" u2=")" k="66" /> +<hkern u1="P" u2=" " k="37" /> +<hkern u1="Q" u2="þ" k="23" /> +<hkern u1="Q" u2="î" k="-4" /> +<hkern u1="R" u2="þ" k="49" /> +<hkern u1="R" u2="î" k="-18" /> +<hkern u1="S" u2="þ" k="23" /> +<hkern u1="S" u2="î" k="-25" /> +<hkern u1="S" u2="ì" k="-25" /> +<hkern u1="T" u2="ô" k="66" /> +<hkern u1="T" u2="ò" k="123" /> +<hkern u1="T" u2="ï" k="-33" /> +<hkern u1="T" u2="î" k="-109" /> +<hkern u1="T" u2="ì" k="-127" /> +<hkern u1="T" u2="è" k="119" /> +<hkern u1="U" u2="þ" k="49" /> +<hkern u1="U" u2="î" k="-29" /> +<hkern u1="U" u2="ì" k="-27" /> +<hkern u1="V" u2="þ" k="37" /> +<hkern u1="V" u2="ð" k="68" /> +<hkern u1="V" u2="ï" k="-45" /> +<hkern u1="V" u2="î" k="-74" /> +<hkern u1="V" u2="ì" k="-127" /> +<hkern u1="V" u2="Æ" k="145" /> +<hkern u1="V" u2="x" k="10" /> +<hkern u1="V" u2="q" k="78" /> +<hkern u1="V" u2="\" k="-6" /> +<hkern u1="V" u2="M" k="4" /> +<hkern u1="V" u2="J" k="80" /> +<hkern u1="V" u2="F" k="4" /> +<hkern u1="V" u2="@" k="23" /> +<hkern u1="V" u2="7" k="-8" /> +<hkern u1="V" u2="4" k="43" /> +<hkern u1="V" u2="/" k="133" /> +<hkern u1="V" u2=")" k="-6" /> +<hkern u1="V" u2=" " k="47" /> +<hkern u1="W" u2="þ" k="49" /> +<hkern u1="W" u2="ï" k="-14" /> +<hkern u1="W" u2="î" k="-59" /> +<hkern u1="W" u2="ì" k="-96" /> +<hkern u1="X" u2="þ" k="45" /> +<hkern u1="X" u2="ð" k="27" /> +<hkern u1="X" u2="ï" k="-23" /> +<hkern u1="X" u2="î" k="-27" /> +<hkern u1="X" u2="ì" k="-82" /> +<hkern u1="X" u2="º" k="33" /> +<hkern u1="X" u2="ª" k="23" /> +<hkern u1="X" u2="©" k="43" /> +<hkern u1="X" u2="v" k="43" /> +<hkern u1="X" u2="q" k="25" /> +<hkern u1="X" u2="4" k="20" /> +<hkern u1="Y" u2="þ" k="37" /> +<hkern u1="Y" u2="ï" k="-59" /> +<hkern u1="Y" u2="î" k="-53" /> +<hkern u1="Y" u2="í" k="8" /> +<hkern u1="Y" u2="ì" k="-127" /> +<hkern u1="Z" u2="þ" k="41" /> +<hkern u1="Z" u2="î" k="-49" /> +<hkern u1="Z" u2="ì" k="-68" /> +<hkern u1="[" u2="ð" k="51" /> +<hkern u1="[" u2="ï" k="-23" /> +<hkern u1="[" u2="î" k="-29" /> +<hkern u1="[" u2="ì" k="-84" /> +<hkern u1="[" u2="Î" k="-80" /> +<hkern u1="[" u2="Æ" k="37" /> +<hkern u1="[" u2="{" k="14" /> +<hkern u1="[" u2="x" k="43" /> +<hkern u1="[" u2="v" k="55" /> +<hkern u1="[" u2="q" k="70" /> +<hkern u1="[" u2="j" k="-14" /> +<hkern u1="[" u2="M" k="18" /> +<hkern u1="[" u2="J" k="41" /> +<hkern u1="[" u2="F" k="25" /> +<hkern u1="[" u2="9" k="25" /> +<hkern u1="[" u2="8" k="39" /> +<hkern u1="[" u2="6" k="49" /> +<hkern u1="[" u2="4" k="55" /> +<hkern u1="[" u2="1" k="18" /> +<hkern u1="[" u2="0" k="47" /> +<hkern u1="[" u2="(" k="45" /> +<hkern u1="\" u2="ð" k="45" /> +<hkern u1="\" u2="v" k="109" /> +<hkern u1="\" u2="q" k="43" /> +<hkern u1="\" u2="j" k="-4" /> +<hkern u1="\" u2="V" k="133" /> +<hkern u1="\" u2="9" k="8" /> +<hkern u1="\" u2="8" k="35" /> +<hkern u1="\" u2="7" k="84" /> +<hkern u1="\" u2="6" k="57" /> +<hkern u1="\" u2="4" k="68" /> +<hkern u1="\" u2="1" k="119" /> +<hkern u1="\" u2="0" k="66" /> +<hkern u1="b" u2="™" k="66" /> +<hkern u1="b" u2="Æ" k="14" /> +<hkern u1="b" u2="}" k="53" /> +<hkern u1="b" u2="x" k="25" /> +<hkern u1="b" u2="v" k="16" /> +<hkern u1="b" u2="]" k="68" /> +<hkern u1="b" u2="\" k="94" /> +<hkern u1="b" u2="X" k="33" /> +<hkern u1="b" u2="V" k="74" /> +<hkern u1="b" u2="J" k="14" /> +<hkern u1="b" u2="?" k="63" /> +<hkern u1="b" u2="/" k="49" /> +<hkern u1="b" u2="*" k="31" /> +<hkern u1="b" u2=")" k="102" /> +<hkern u1="d" u2="î" k="-31" /> +<hkern u1="d" u2="ì" k="-20" /> +<hkern u1="f" u2="™" k="-25" /> +<hkern u1="f" u2="ð" k="33" /> +<hkern u1="f" u2="ï" k="-102" /> +<hkern u1="f" u2="î" k="-113" /> +<hkern u1="f" u2="ì" k="-170" /> +<hkern u1="f" u2="Ð" k="-6" /> +<hkern u1="f" u2="Æ" k="90" /> +<hkern u1="f" u2="}" k="-39" /> +<hkern u1="f" u2="q" k="10" /> +<hkern u1="f" u2="]" k="-49" /> +<hkern u1="f" u2="\" k="-68" /> +<hkern u1="f" u2="X" k="-33" /> +<hkern u1="f" u2="V" k="-70" /> +<hkern u1="f" u2="J" k="37" /> +<hkern u1="f" u2="?" k="-45" /> +<hkern u1="f" u2="/" k="94" /> +<hkern u1="f" u2="*" k="-10" /> +<hkern u1="f" u2=")" k="-45" /> +<hkern u1="f" u2=" " k="39" /> +<hkern u1="g" u2="j" k="-4" /> +<hkern u1="i" u2="î" k="-29" /> +<hkern u1="i" u2="ì" k="-27" /> +<hkern u1="j" u2="î" k="-25" /> +<hkern u1="j" u2="ì" k="-27" /> +<hkern u1="v" u2="™" k="31" /> +<hkern u1="v" u2="ð" k="31" /> +<hkern u1="v" u2="Æ" k="90" /> +<hkern u1="v" u2="}" k="39" /> +<hkern u1="v" u2="q" k="18" /> +<hkern u1="v" u2="]" k="55" /> +<hkern u1="v" u2="\" k="25" /> +<hkern u1="v" u2="X" k="43" /> +<hkern u1="v" u2="J" k="76" /> +<hkern u1="v" u2="/" k="109" /> +<hkern u1="v" u2="*" k="-8" /> +<hkern u1="v" u2=")" k="94" /> +<hkern u1="v" u2=" " k="45" /> +<hkern u1="x" u2="™" k="43" /> +<hkern u1="x" u2="ð" k="33" /> +<hkern u1="x" u2="}" k="18" /> +<hkern u1="x" u2="q" k="23" /> +<hkern u1="x" u2="]" k="43" /> +<hkern u1="x" u2="\" k="39" /> +<hkern u1="x" u2="V" k="10" /> +<hkern u1="x" u2=")" k="49" /> +<hkern u1="{" u2="ð" k="45" /> +<hkern u1="{" u2="ï" k="-16" /> +<hkern u1="{" u2="î" k="-25" /> +<hkern u1="{" u2="ì" k="-72" /> +<hkern u1="{" u2="Ï" k="-4" /> +<hkern u1="{" u2="Î" k="-70" /> +<hkern u1="{" u2="Æ" k="8" /> +<hkern u1="{" u2="{" k="12" /> +<hkern u1="{" u2="x" k="18" /> +<hkern u1="{" u2="v" k="39" /> +<hkern u1="{" u2="q" k="53" /> +<hkern u1="{" u2="j" k="-12" /> +<hkern u1="{" u2="M" k="14" /> +<hkern u1="{" u2="J" k="18" /> +<hkern u1="{" u2="F" k="18" /> +<hkern u1="{" u2="9" k="18" /> +<hkern u1="{" u2="8" k="31" /> +<hkern u1="{" u2="6" k="39" /> +<hkern u1="{" u2="4" k="41" /> +<hkern u1="{" u2="0" k="41" /> +<hkern u1="{" u2="(" k="35" /> +<hkern u1="|" u2="î" k="-25" /> +<hkern u1="|" u2="ì" k="-23" /> +<hkern u1="|" u2="Î" k="-14" /> +<hkern u1="}" u2="}" k="12" /> +<hkern u1="}" u2="]" k="14" /> +<hkern u1="}" u2=")" k="20" /> +<hkern u1="¡" u2="V" k="31" /> +<hkern u1="£" u2="4" k="20" /> +<hkern u1="°" u2="4" k="41" /> +<hkern u1="·" u2="7" k="72" /> +<hkern u1="·" u2="3" k="14" /> +<hkern u1="·" u2="2" k="16" /> +<hkern u1="·" u2="1" k="55" /> +<hkern u1="¿" u2="ð" k="113" /> +<hkern u1="¿" u2="Æ" k="33" /> +<hkern u1="¿" u2="x" k="53" /> +<hkern u1="¿" u2="v" k="96" /> +<hkern u1="¿" u2="q" k="109" /> +<hkern u1="¿" u2="j" k="31" /> +<hkern u1="¿" u2="X" k="47" /> +<hkern u1="¿" u2="V" k="125" /> +<hkern u1="¿" u2="M" k="61" /> +<hkern u1="¿" u2="J" k="51" /> +<hkern u1="¿" u2="F" k="72" /> +<hkern u1="Æ" u2="þ" k="41" /> +<hkern u1="Ç" u2="þ" k="37" /> +<hkern u1="È" u2="þ" k="41" /> +<hkern u1="É" u2="þ" k="41" /> +<hkern u1="Ê" u2="þ" k="41" /> +<hkern u1="Ë" u2="þ" k="41" /> +<hkern u1="Ì" u2="þ" k="39" /> +<hkern u1="Í" u2="þ" k="39" /> +<hkern u1="Î" u2="þ" k="39" /> +<hkern u1="Î" u2="}" k="-74" /> +<hkern u1="Î" u2="|" k="-16" /> +<hkern u1="Î" u2="]" k="-82" /> +<hkern u1="Î" u2=")" k="-90" /> +<hkern u1="Ï" u2="þ" k="39" /> +<hkern u1="Ï" u2=")" k="-6" /> +<hkern u1="Ð" u2="þ" k="23" /> +<hkern u1="Ñ" u2="þ" k="39" /> +<hkern u1="Ò" u2="þ" k="23" /> +<hkern u1="Ó" u2="þ" k="23" /> +<hkern u1="Ô" u2="þ" k="23" /> +<hkern u1="Õ" u2="þ" k="23" /> +<hkern u1="Ö" u2="þ" k="23" /> +<hkern u1="×" u2="3" k="31" /> +<hkern u1="×" u2="2" k="18" /> +<hkern u1="Ø" u2="þ" k="23" /> +<hkern u1="Ù" u2="þ" k="49" /> +<hkern u1="Ú" u2="þ" k="49" /> +<hkern u1="Û" u2="þ" k="49" /> +<hkern u1="Ü" u2="þ" k="49" /> +<hkern u1="Ý" u2="þ" k="37" /> +<hkern u1="Þ" u2="™" k="43" /> +<hkern u1="Þ" u2="Æ" k="57" /> +<hkern u1="Þ" u2="}" k="43" /> +<hkern u1="Þ" u2="]" k="55" /> +<hkern u1="Þ" u2="\" k="53" /> +<hkern u1="Þ" u2="X" k="63" /> +<hkern u1="Þ" u2="V" k="20" /> +<hkern u1="Þ" u2="J" k="53" /> +<hkern u1="Þ" u2="?" k="43" /> +<hkern u1="Þ" u2="7" k="27" /> +<hkern u1="Þ" u2="3" k="14" /> +<hkern u1="Þ" u2="2" k="18" /> +<hkern u1="Þ" u2="/" k="90" /> +<hkern u1="Þ" u2=")" k="96" /> +<hkern u1="ß" u2="™" k="31" /> +<hkern u1="ß" u2="º" k="35" /> +<hkern u1="ß" u2="®" k="35" /> +<hkern u1="ß" u2="ª" k="33" /> +<hkern u1="ß" u2="}" k="29" /> +<hkern u1="ß" u2="x" k="4" /> +<hkern u1="ß" u2="v" k="61" /> +<hkern u1="ß" u2="]" k="45" /> +<hkern u1="ß" u2="\" k="47" /> +<hkern u1="ß" u2="V" k="57" /> +<hkern u1="ß" u2="?" k="37" /> +<hkern u1="ß" u2="*" k="33" /> +<hkern u1="ß" u2=")" k="68" /> +<hkern u1="ß" u2=" " k="35" /> +<hkern u1="í" u2="™" k="-72" /> +<hkern u1="í" u2="”" k="-76" /> +<hkern u1="í" u2="“" k="-31" /> +<hkern u1="í" u2="’" k="-76" /> +<hkern u1="í" u2="‘" k="-31" /> +<hkern u1="í" u2="þ" k="-29" /> +<hkern u1="í" u2="®" k="-8" /> +<hkern u1="í" u2="}" k="-47" /> +<hkern u1="í" u2="|" k="-20" /> +<hkern u1="í" u2="l" k="-29" /> +<hkern u1="í" u2="k" k="-29" /> +<hkern u1="í" u2="j" k="-27" /> +<hkern u1="í" u2="i" k="-27" /> +<hkern u1="í" u2="h" k="-29" /> +<hkern u1="í" u2="b" k="-29" /> +<hkern u1="í" u2="]" k="-59" /> +<hkern u1="í" u2="\" k="-80" /> +<hkern u1="í" u2="?" k="-96" /> +<hkern u1="í" u2="*" k="-31" /> +<hkern u1="í" u2=")" k="-35" /> +<hkern u1="í" u2="'" k="-55" /> +<hkern u1="í" u2="&" k="-10" /> +<hkern u1="í" u2=""" k="-55" /> +<hkern u1="í" u2="!" k="-25" /> +<hkern u1="î" u2="™" k="-47" /> +<hkern u1="î" u2="”" k="-53" /> +<hkern u1="î" u2="“" k="-66" /> +<hkern u1="î" u2="’" k="-53" /> +<hkern u1="î" u2="‘" k="-66" /> +<hkern u1="î" u2="þ" k="-29" /> +<hkern u1="î" u2="º" k="-20" /> +<hkern u1="î" u2="®" k="-33" /> +<hkern u1="î" u2="ª" k="-33" /> +<hkern u1="î" u2="}" k="-20" /> +<hkern u1="î" u2="|" k="-23" /> +<hkern u1="î" u2="l" k="-29" /> +<hkern u1="î" u2="k" k="-31" /> +<hkern u1="î" u2="j" k="-25" /> +<hkern u1="î" u2="i" k="-25" /> +<hkern u1="î" u2="h" k="-31" /> +<hkern u1="î" u2="b" k="-31" /> +<hkern u1="î" u2="]" k="-23" /> +<hkern u1="î" u2="\" k="-23" /> +<hkern u1="î" u2="?" k="-74" /> +<hkern u1="î" u2="*" k="-76" /> +<hkern u1="î" u2="'" k="-55" /> +<hkern u1="î" u2="&" k="-23" /> +<hkern u1="î" u2=""" k="-55" /> +<hkern u1="î" u2="!" k="-25" /> +<hkern u1="ï" u2="™" k="-10" /> +<hkern u1="ï" u2="”" k="-16" /> +<hkern u1="ï" u2="’" k="-16" /> +<hkern u1="ï" u2="}" k="-14" /> +<hkern u1="ï" u2="]" k="-18" /> +<hkern u1="ï" u2="\" k="-39" /> +<hkern u1="ï" u2="?" k="-18" /> +<hkern u1="ï" u2="*" k="-6" /> +<hkern u1="ï" u2=")" k="-27" /> +<hkern u1="ï" u2="'" k="-10" /> +<hkern u1="ï" u2=""" k="-10" /> +<hkern u1="ð" u2="™" k="14" /> +<hkern u1="ð" u2="ì" k="-16" /> +<hkern u1="ð" u2="Æ" k="18" /> +<hkern u1="ð" u2="}" k="25" /> +<hkern u1="ð" u2="x" k="20" /> +<hkern u1="ð" u2="v" k="4" /> +<hkern u1="ð" u2="]" k="29" /> +<hkern u1="ð" u2="\" k="18" /> +<hkern u1="ð" u2="X" k="31" /> +<hkern u1="ð" u2="V" k="25" /> +<hkern u1="ð" u2="J" k="25" /> +<hkern u1="ð" u2="?" k="20" /> +<hkern u1="ð" u2="/" k="55" /> +<hkern u1="ð" u2=")" k="59" /> +<hkern u1="÷" u2="7" k="70" /> +<hkern u1="÷" u2="3" k="31" /> +<hkern u1="÷" u2="2" k="33" /> +<hkern u1="÷" u2="1" k="53" /> +<hkern u1="Œ" u2="þ" k="41" /> +<hkern u1="Ÿ" u2="þ" k="37" /> +<hkern u1="‘" u2="î" k="-41" /> +<hkern u1="‘" u2="ì" k="-25" /> +<hkern u1="’" u2="ï" k="-16" /> +<hkern u1="’" u2="î" k="-72" /> +<hkern u1="’" u2="ì" k="-92" /> +<hkern u1="“" u2="î" k="-41" /> +<hkern u1="“" u2="ì" k="-25" /> +<hkern u1="”" u2="ï" k="-16" /> +<hkern u1="”" u2="î" k="-72" /> +<hkern u1="”" u2="ì" k="-92" /> +<hkern u1="fi" u2="î" k="-29" /> +<hkern u1="fi" u2="ì" k="-27" /> +<hkern g1="germandbls" g2="Y,Yacute,Ydieresis" k="82" /> +<hkern g1="germandbls" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="10" /> +<hkern g1="germandbls" g2="f,germandbls,thorn,uniFB01,uniFB02" k="37" /> +<hkern g1="germandbls" g2="quoteleft,quotedblleft" k="33" /> +<hkern g1="germandbls" g2="T" k="68" /> +<hkern g1="germandbls" g2="quoteright,quotedblright" k="33" /> +<hkern g1="germandbls" g2="w" k="35" /> +<hkern g1="germandbls" g2="W" k="37" /> +<hkern g1="germandbls" g2="quotedbl,quotesingle" k="35" /> +<hkern g1="germandbls" g2="y,yacute,ydieresis" k="61" /> +<hkern g1="germandbls" g2="t" k="41" /> +<hkern g1="r" g2="Y,Yacute,Ydieresis" k="27" /> +<hkern g1="r" g2="parenright" k="90" /> +<hkern g1="r" g2="T" k="90" /> +<hkern g1="r" g2="Z" k="12" /> +<hkern g1="r" g2="space,uni00A0" k="39" /> +<hkern g1="r" g2="hyphen,uni00AD,endash,emdash" k="53" /> +<hkern g1="r" g2="q" k="12" /> +<hkern g1="r" g2="trademark" k="31" /> +<hkern g1="r" g2="bracketright" k="51" /> +<hkern g1="r" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="72" /> +<hkern g1="r" g2="eth" k="41" /> +<hkern g1="r" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="14" /> +<hkern g1="r" g2="asterisk" k="-18" /> +<hkern g1="r" g2="X" k="53" /> +<hkern g1="r" g2="slash" k="131" /> +<hkern g1="r" g2="AE" k="139" /> +<hkern g1="r" g2="braceright" k="39" /> +<hkern g1="r" g2="d" k="8" /> +<hkern g1="r" g2="J" k="88" /> +<hkern g1="r" g2="guilsinglleft" k="39" /> +<hkern g1="r" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="106" /> +<hkern g1="r" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="4" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="parenright" k="20" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="16" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="eth" k="6" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="slash" k="63" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="AE" k="39" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="J" k="29" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="10" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="g" k="8" /> +<hkern g1="Thorn" g2="Y,Yacute,Ydieresis" k="63" /> +<hkern g1="Thorn" g2="T" k="61" /> +<hkern g1="Thorn" g2="Z" k="25" /> +<hkern g1="Thorn" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="18" /> +<hkern g1="Thorn" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="16" /> +<hkern g1="b" g2="Y,Yacute,Ydieresis" k="145" /> +<hkern g1="b" g2="quoteleft,quotedblleft" k="29" /> +<hkern g1="b" g2="T" k="201" /> +<hkern g1="b" g2="quoteright,quotedblright" k="45" /> +<hkern g1="b" g2="w" k="8" /> +<hkern g1="b" g2="W" k="29" /> +<hkern g1="b" g2="quotedbl,quotesingle" k="37" /> +<hkern g1="b" g2="y,yacute,ydieresis" k="16" /> +<hkern g1="b" g2="Z" k="12" /> +<hkern g1="b" g2="S" k="10" /> +<hkern g1="M" g2="Y,Yacute,Ydieresis" k="14" /> +<hkern g1="M" g2="W" k="4" /> +<hkern g1="w" g2="Y,Yacute,Ydieresis" k="47" /> +<hkern g1="w" g2="parenright" k="90" /> +<hkern g1="w" g2="T" k="121" /> +<hkern g1="w" g2="Z" k="8" /> +<hkern g1="w" g2="space,uni00A0" k="39" /> +<hkern g1="w" g2="q" k="10" /> +<hkern g1="w" g2="trademark" k="31" /> +<hkern g1="w" g2="bracketright" k="53" /> +<hkern g1="w" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="23" /> +<hkern g1="w" g2="eth" k="18" /> +<hkern g1="w" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="10" /> +<hkern g1="w" g2="X" k="35" /> +<hkern g1="w" g2="slash" k="82" /> +<hkern g1="w" g2="AE" k="57" /> +<hkern g1="w" g2="braceright" k="39" /> +<hkern g1="w" g2="d" k="8" /> +<hkern g1="w" g2="J" k="55" /> +<hkern g1="w" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="37" /> +<hkern g1="w" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="10" /> +<hkern g1="w" g2="g" k="4" /> +<hkern g1="w" g2="backslash" k="31" /> +<hkern g1="Z" g2="f,germandbls,thorn,uniFB01,uniFB02" k="12" /> +<hkern g1="Z" g2="w" k="6" /> +<hkern g1="Z" g2="y,yacute,ydieresis" k="8" /> +<hkern g1="Z" g2="t" k="14" /> +<hkern g1="Z" g2="ordmasculine" k="10" /> +<hkern g1="Z" g2="four" k="18" /> +<hkern g1="Z" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="10" /> +<hkern g1="Z" g2="v" k="8" /> +<hkern g1="Z" g2="copyright" k="20" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="Y,Yacute,Ydieresis" k="150" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="parenright" k="104" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="f,germandbls,thorn,uniFB01,uniFB02" k="4" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quoteleft,quotedblleft" k="27" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="T" k="205" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quoteright,quotedblright" k="45" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="w" k="10" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="W" k="33" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quotedbl,quotesingle" k="37" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="y,yacute,ydieresis" k="18" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="t" k="4" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="Z" k="12" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="trademark" k="63" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="bracketright" k="68" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="asterisk" k="29" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="X" k="29" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="slash" k="47" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="AE" k="12" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="braceright" k="51" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="J" k="8" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="S" k="12" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="backslash" k="98" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="v" k="18" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="V" k="80" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="x" k="27" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="question" k="63" /> +<hkern g1="R" g2="Y,Yacute,Ydieresis" k="33" /> +<hkern g1="R" g2="parenright" k="47" /> +<hkern g1="R" g2="T" k="12" /> +<hkern g1="R" g2="W" k="4" /> +<hkern g1="R" g2="q" k="4" /> +<hkern g1="R" g2="bracketright" k="31" /> +<hkern g1="R" g2="eth" k="14" /> +<hkern g1="R" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="10" /> +<hkern g1="R" g2="braceright" k="20" /> +<hkern g1="R" g2="d" k="4" /> +<hkern g1="R" g2="guilsinglleft" k="18" /> +<hkern g1="R" g2="backslash" k="23" /> +<hkern g1="R" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="4" /> +<hkern g1="R" g2="V" k="14" /> +<hkern g1="g" g2="Y,Yacute,Ydieresis" k="45" /> +<hkern g1="g" g2="T" k="127" /> +<hkern g1="g" g2="q" k="8" /> +<hkern g1="g" g2="trademark" k="37" /> +<hkern g1="g" g2="eth" k="16" /> +<hkern g1="g" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="10" /> +<hkern g1="g" g2="asterisk" k="-8" /> +<hkern g1="g" g2="AE" k="-8" /> +<hkern g1="g" g2="d" k="8" /> +<hkern g1="g" g2="guilsinglleft" k="20" /> +<hkern g1="g" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="8" /> +<hkern g1="g" g2="backslash" k="29" /> +<hkern g1="g" g2="V" k="10" /> +<hkern g1="g" g2="registered" k="-4" /> +<hkern g1="t" g2="Y,Yacute,Ydieresis" k="49" /> +<hkern g1="t" g2="parenright" k="59" /> +<hkern g1="t" g2="T" k="131" /> +<hkern g1="t" g2="trademark" k="31" /> +<hkern g1="t" g2="bracketright" k="39" /> +<hkern g1="t" g2="braceright" k="23" /> +<hkern g1="t" g2="guilsinglleft" k="20" /> +<hkern g1="t" g2="backslash" k="37" /> +<hkern g1="t" g2="V" k="4" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="eth" k="4" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="4" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="14" /> +<hkern g1="W" g2="space,uni00A0" k="14" /> +<hkern g1="W" g2="hyphen,uni00AD,endash,emdash" k="10" /> +<hkern g1="W" g2="q" k="33" /> +<hkern g1="W" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="43" /> +<hkern g1="W" g2="eth" k="37" /> +<hkern g1="W" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="33" /> +<hkern g1="W" g2="slash" k="86" /> +<hkern g1="W" g2="AE" k="76" /> +<hkern g1="W" g2="d" k="29" /> +<hkern g1="W" g2="J" k="53" /> +<hkern g1="W" g2="guilsinglleft" k="29" /> +<hkern g1="W" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="41" /> +<hkern g1="W" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="25" /> +<hkern g1="W" g2="g" k="29" /> +<hkern g1="W" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="4" /> +<hkern g1="W" g2="s" k="16" /> +<hkern g1="W" g2="z" k="6" /> +<hkern g1="W" g2="m,n,p,r,ntilde" k="23" /> +<hkern g1="W" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="W" g2="M" k="4" /> +<hkern g1="B" g2="Y,Yacute,Ydieresis" k="31" /> +<hkern g1="B" g2="T" k="10" /> +<hkern g1="B" g2="W" k="4" /> +<hkern g1="l,uniFB02" g2="Y,Yacute,Ydieresis" k="72" /> +<hkern g1="l,uniFB02" g2="parenright" k="41" /> +<hkern g1="l,uniFB02" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="20" /> +<hkern g1="l,uniFB02" g2="f,germandbls,thorn,uniFB01,uniFB02" k="16" /> +<hkern g1="l,uniFB02" g2="quoteleft,quotedblleft" k="31" /> +<hkern g1="l,uniFB02" g2="T" k="70" /> +<hkern g1="l,uniFB02" g2="quoteright,quotedblright" k="31" /> +<hkern g1="l,uniFB02" g2="w" k="33" /> +<hkern g1="l,uniFB02" g2="W" k="39" /> +<hkern g1="l,uniFB02" g2="quotedbl,quotesingle" k="33" /> +<hkern g1="l,uniFB02" g2="y,yacute,ydieresis" k="53" /> +<hkern g1="l,uniFB02" g2="t" k="25" /> +<hkern g1="l,uniFB02" g2="space,uni00A0" k="43" /> +<hkern g1="l,uniFB02" g2="hyphen,uni00AD,endash,emdash" k="33" /> +<hkern g1="l,uniFB02" g2="trademark" k="33" /> +<hkern g1="l,uniFB02" g2="bracketright" k="35" /> +<hkern g1="l,uniFB02" g2="asterisk" k="33" /> +<hkern g1="l,uniFB02" g2="braceright" k="14" /> +<hkern g1="l,uniFB02" g2="guilsinglleft" k="39" /> +<hkern g1="l,uniFB02" g2="backslash" k="45" /> +<hkern g1="l,uniFB02" g2="ordmasculine" k="31" /> +<hkern g1="l,uniFB02" g2="v" k="51" /> +<hkern g1="l,uniFB02" g2="copyright" k="20" /> +<hkern g1="l,uniFB02" g2="V" k="55" /> +<hkern g1="l,uniFB02" g2="question" k="41" /> +<hkern g1="l,uniFB02" g2="registered" k="33" /> +<hkern g1="l,uniFB02" g2="ordfeminine" k="33" /> +<hkern g1="l,uniFB02" g2="periodcentered" k="190" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Y,Yacute,Ydieresis" k="41" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="parenright" k="84" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="T" k="14" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="W" k="4" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Z" k="10" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="trademark" k="10" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="bracketright" k="47" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="14" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="X" k="41" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="slash" k="66" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="AE" k="37" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="braceright" k="41" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="J" k="25" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="backslash" k="29" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="V" k="16" /> +<hkern g1="y,yacute,ydieresis" g2="Y,Yacute,Ydieresis" k="39" /> +<hkern g1="y,yacute,ydieresis" g2="parenright" k="90" /> +<hkern g1="y,yacute,ydieresis" g2="T" k="115" /> +<hkern g1="y,yacute,ydieresis" g2="Z" k="8" /> +<hkern g1="y,yacute,ydieresis" g2="space,uni00A0" k="45" /> +<hkern g1="y,yacute,ydieresis" g2="hyphen,uni00AD,endash,emdash" k="8" /> +<hkern g1="y,yacute,ydieresis" g2="q" k="18" /> +<hkern g1="y,yacute,ydieresis" g2="trademark" k="31" /> +<hkern g1="y,yacute,ydieresis" g2="bracketright" k="53" /> +<hkern g1="y,yacute,ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="41" /> +<hkern g1="y,yacute,ydieresis" g2="eth" k="29" /> +<hkern g1="y,yacute,ydieresis" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="18" /> +<hkern g1="y,yacute,ydieresis" g2="asterisk" k="-8" /> +<hkern g1="y,yacute,ydieresis" g2="X" k="43" /> +<hkern g1="y,yacute,ydieresis" g2="slash" k="100" /> +<hkern g1="y,yacute,ydieresis" g2="AE" k="86" /> +<hkern g1="y,yacute,ydieresis" g2="braceright" k="37" /> +<hkern g1="y,yacute,ydieresis" g2="d" k="16" /> +<hkern g1="y,yacute,ydieresis" g2="J" k="76" /> +<hkern g1="y,yacute,ydieresis" g2="guilsinglleft" k="27" /> +<hkern g1="y,yacute,ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="57" /> +<hkern g1="y,yacute,ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="16" /> +<hkern g1="y,yacute,ydieresis" g2="g" k="12" /> +<hkern g1="y,yacute,ydieresis" g2="backslash" k="25" /> +<hkern g1="y,yacute,ydieresis" g2="s" k="6" /> +<hkern g1="G" g2="Y,Yacute,Ydieresis" k="20" /> +<hkern g1="G" g2="parenright" k="27" /> +<hkern g1="G" g2="T" k="14" /> +<hkern g1="G" g2="W" k="4" /> +<hkern g1="G" g2="bracketright" k="12" /> +<hkern g1="G" g2="V" k="8" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="Y,Yacute,Ydieresis" k="115" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="parenright" k="82" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="T" k="143" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="W" k="23" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="trademark" k="55" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="bracketright" k="57" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="braceright" k="41" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="backslash" k="68" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="V" k="47" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="question" k="37" /> +<hkern g1="T" g2="f,germandbls,thorn,uniFB01,uniFB02" k="51" /> +<hkern g1="T" g2="w" k="123" /> +<hkern g1="T" g2="y,yacute,ydieresis" k="117" /> +<hkern g1="T" g2="t" k="47" /> +<hkern g1="T" g2="space,uni00A0" k="45" /> +<hkern g1="T" g2="hyphen,uni00AD,endash,emdash" k="109" /> +<hkern g1="T" g2="q" k="207" /> +<hkern g1="T" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="119" /> +<hkern g1="T" g2="eth" k="111" /> +<hkern g1="T" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="207" /> +<hkern g1="T" g2="asterisk" k="-8" /> +<hkern g1="T" g2="slash" k="150" /> +<hkern g1="T" g2="AE" k="160" /> +<hkern g1="T" g2="d" k="199" /> +<hkern g1="T" g2="J" k="78" /> +<hkern g1="T" g2="guilsinglleft" k="141" /> +<hkern g1="T" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="113" /> +<hkern g1="T" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="176" /> +<hkern g1="T" g2="g" k="201" /> +<hkern g1="T" g2="four" k="70" /> +<hkern g1="T" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="14" /> +<hkern g1="T" g2="v" k="117" /> +<hkern g1="T" g2="copyright" k="25" /> +<hkern g1="T" g2="s" k="197" /> +<hkern g1="T" g2="z" k="166" /> +<hkern g1="T" g2="x" k="135" /> +<hkern g1="T" g2="m,n,p,r,ntilde" k="154" /> +<hkern g1="T" g2="u,ugrave,uacute,ucircumflex,udieresis" k="156" /> +<hkern g1="T" g2="at" k="33" /> +<hkern g1="T" g2="colon,semicolon" k="102" /> +<hkern g1="T" g2="one" k="-8" /> +<hkern g1="T" g2="guilsinglright" k="125" /> +<hkern g1="eth" g2="Y,Yacute,Ydieresis" k="39" /> +<hkern g1="eth" g2="T" k="41" /> +<hkern g1="eth" g2="W" k="14" /> +<hkern g1="eth" g2="y,yacute,ydieresis" k="4" /> +<hkern g1="eth" g2="Z" k="16" /> +<hkern g1="eth" g2="S" k="6" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="Y,Yacute,Ydieresis" k="139" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="parenright" k="82" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="6" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="quoteleft,quotedblleft" k="20" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="T" k="201" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="quoteright,quotedblright" k="37" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="W" k="31" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="quotedbl,quotesingle" k="27" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="y,yacute,ydieresis" k="6" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="trademark" k="63" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="bracketright" k="61" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="asterisk" k="27" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="braceright" k="45" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="backslash" k="94" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="v" k="6" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="V" k="74" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="question" k="57" /> +<hkern g1="L" g2="Y,Yacute,Ydieresis" k="184" /> +<hkern g1="L" g2="parenright" k="49" /> +<hkern g1="L" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="23" /> +<hkern g1="L" g2="f,germandbls,thorn,uniFB01,uniFB02" k="41" /> +<hkern g1="L" g2="quoteleft,quotedblleft" k="188" /> +<hkern g1="L" g2="T" k="195" /> +<hkern g1="L" g2="quoteright,quotedblright" k="188" /> +<hkern g1="L" g2="w" k="72" /> +<hkern g1="L" g2="W" k="70" /> +<hkern g1="L" g2="quotedbl,quotesingle" k="188" /> +<hkern g1="L" g2="y,yacute,ydieresis" k="115" /> +<hkern g1="L" g2="t" k="57" /> +<hkern g1="L" g2="space,uni00A0" k="45" /> +<hkern g1="L" g2="hyphen,uni00AD,endash,emdash" k="55" /> +<hkern g1="L" g2="trademark" k="186" /> +<hkern g1="L" g2="bracketright" k="45" /> +<hkern g1="L" g2="asterisk" k="188" /> +<hkern g1="L" g2="AE" k="-6" /> +<hkern g1="L" g2="braceright" k="23" /> +<hkern g1="L" g2="guilsinglleft" k="14" /> +<hkern g1="L" g2="backslash" k="174" /> +<hkern g1="L" g2="ordmasculine" k="178" /> +<hkern g1="L" g2="four" k="39" /> +<hkern g1="L" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="20" /> +<hkern g1="L" g2="v" k="117" /> +<hkern g1="L" g2="copyright" k="27" /> +<hkern g1="L" g2="V" k="152" /> +<hkern g1="L" g2="question" k="86" /> +<hkern g1="L" g2="registered" k="182" /> +<hkern g1="L" g2="ordfeminine" k="168" /> +<hkern g1="L" g2="periodcentered" k="223" /> +<hkern g1="L" g2="one" k="92" /> +<hkern g1="L" g2="seven" k="68" /> +<hkern g1="D,Eth" g2="Y,Yacute,Ydieresis" k="43" /> +<hkern g1="D,Eth" g2="parenright" k="84" /> +<hkern g1="D,Eth" g2="T" k="16" /> +<hkern g1="D,Eth" g2="W" k="4" /> +<hkern g1="D,Eth" g2="Z" k="10" /> +<hkern g1="D,Eth" g2="trademark" k="10" /> +<hkern g1="D,Eth" g2="bracketright" k="51" /> +<hkern g1="D,Eth" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="14" /> +<hkern g1="D,Eth" g2="X" k="43" /> +<hkern g1="D,Eth" g2="slash" k="66" /> +<hkern g1="D,Eth" g2="AE" k="39" /> +<hkern g1="D,Eth" g2="braceright" k="41" /> +<hkern g1="D,Eth" g2="J" k="29" /> +<hkern g1="D,Eth" g2="backslash" k="33" /> +<hkern g1="D,Eth" g2="V" k="16" /> +<hkern g1="Y,Yacute,Ydieresis" g2="parenright" k="-10" /> +<hkern g1="Y,Yacute,Ydieresis" g2="f,germandbls,thorn,uniFB01,uniFB02" k="37" /> +<hkern g1="Y,Yacute,Ydieresis" g2="w" k="47" /> +<hkern g1="Y,Yacute,Ydieresis" g2="y,yacute,ydieresis" k="39" /> +<hkern g1="Y,Yacute,Ydieresis" g2="t" k="37" /> +<hkern g1="Y,Yacute,Ydieresis" g2="space,uni00A0" k="55" /> +<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,uni00AD,endash,emdash" k="100" /> +<hkern g1="Y,Yacute,Ydieresis" g2="q" k="147" /> +<hkern g1="Y,Yacute,Ydieresis" g2="trademark" k="-8" /> +<hkern g1="Y,Yacute,Ydieresis" g2="bracketright" k="-8" /> +<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="121" /> +<hkern g1="Y,Yacute,Ydieresis" g2="eth" k="106" /> +<hkern g1="Y,Yacute,Ydieresis" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="150" /> +<hkern g1="Y,Yacute,Ydieresis" g2="slash" k="156" /> +<hkern g1="Y,Yacute,Ydieresis" g2="AE" k="197" /> +<hkern g1="Y,Yacute,Ydieresis" g2="d" k="143" /> +<hkern g1="Y,Yacute,Ydieresis" g2="J" k="90" /> +<hkern g1="Y,Yacute,Ydieresis" g2="guilsinglleft" k="113" /> +<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="123" /> +<hkern g1="Y,Yacute,Ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="127" /> +<hkern g1="Y,Yacute,Ydieresis" g2="g" k="147" /> +<hkern g1="Y,Yacute,Ydieresis" g2="S" k="16" /> +<hkern g1="Y,Yacute,Ydieresis" g2="backslash" k="-12" /> +<hkern g1="Y,Yacute,Ydieresis" g2="ordmasculine" k="18" /> +<hkern g1="Y,Yacute,Ydieresis" g2="four" k="82" /> +<hkern g1="Y,Yacute,Ydieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="41" /> +<hkern g1="Y,Yacute,Ydieresis" g2="v" k="39" /> +<hkern g1="Y,Yacute,Ydieresis" g2="copyright" k="53" /> +<hkern g1="Y,Yacute,Ydieresis" g2="s" k="125" /> +<hkern g1="Y,Yacute,Ydieresis" g2="z" k="88" /> +<hkern g1="Y,Yacute,Ydieresis" g2="x" k="55" /> +<hkern g1="Y,Yacute,Ydieresis" g2="question" k="-8" /> +<hkern g1="Y,Yacute,Ydieresis" g2="m,n,p,r,ntilde" k="121" /> +<hkern g1="Y,Yacute,Ydieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="115" /> +<hkern g1="Y,Yacute,Ydieresis" g2="M" k="14" /> +<hkern g1="Y,Yacute,Ydieresis" g2="at" k="57" /> +<hkern g1="Y,Yacute,Ydieresis" g2="colon,semicolon" k="63" /> +<hkern g1="Y,Yacute,Ydieresis" g2="guilsinglright" k="78" /> +<hkern g1="Y,Yacute,Ydieresis" g2="seven" k="-14" /> +<hkern g1="Y,Yacute,Ydieresis" g2="six" k="25" /> +<hkern g1="Y,Yacute,Ydieresis" g2="F" k="20" /> +<hkern g1="Y,Yacute,Ydieresis" g2="eight" k="8" /> +<hkern g1="Y,Yacute,Ydieresis" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="18" /> +<hkern g1="Y,Yacute,Ydieresis" g2="ampersand" k="8" /> +<hkern g1="Y,Yacute,Ydieresis" g2="zero" k="12" /> +<hkern g1="v" g2="Y,Yacute,Ydieresis" k="39" /> +<hkern g1="v" g2="T" k="117" /> +<hkern g1="v" g2="Z" k="12" /> +<hkern g1="v" g2="hyphen,uni00AD,endash,emdash" k="8" /> +<hkern g1="v" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="43" /> +<hkern g1="v" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="18" /> +<hkern g1="v" g2="d" k="16" /> +<hkern g1="v" g2="guilsinglleft" k="27" /> +<hkern g1="v" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="57" /> +<hkern g1="v" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="16" /> +<hkern g1="v" g2="g" k="12" /> +<hkern g1="v" g2="s" k="6" /> +<hkern g1="f" g2="Y,Yacute,Ydieresis" k="-84" /> +<hkern g1="f" g2="quoteleft,quotedblleft" k="-6" /> +<hkern g1="f" g2="T" k="-51" /> +<hkern g1="f" g2="quoteright,quotedblright" k="-23" /> +<hkern g1="f" g2="W" k="-33" /> +<hkern g1="f" g2="quotedbl,quotesingle" k="-23" /> +<hkern g1="f" g2="Z" k="-10" /> +<hkern g1="f" g2="hyphen,uni00AD,endash,emdash" k="51" /> +<hkern g1="f" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="49" /> +<hkern g1="f" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="10" /> +<hkern g1="f" g2="d" k="4" /> +<hkern g1="f" g2="guilsinglleft" k="43" /> +<hkern g1="f" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="59" /> +<hkern g1="f" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="4" /> +<hkern g1="s" g2="Y,Yacute,Ydieresis" k="104" /> +<hkern g1="s" g2="parenright" k="88" /> +<hkern g1="s" g2="T" k="172" /> +<hkern g1="s" g2="W" k="16" /> +<hkern g1="s" g2="y,yacute,ydieresis" k="8" /> +<hkern g1="s" g2="trademark" k="57" /> +<hkern g1="s" g2="bracketright" k="59" /> +<hkern g1="s" g2="slash" k="12" /> +<hkern g1="s" g2="braceright" k="41" /> +<hkern g1="s" g2="backslash" k="66" /> +<hkern g1="s" g2="v" k="8" /> +<hkern g1="s" g2="V" k="43" /> +<hkern g1="s" g2="question" k="35" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="Y,Yacute,Ydieresis" k="121" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="parenright" k="27" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="16" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="f,germandbls,thorn,uniFB01,uniFB02" k="18" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quoteleft,quotedblleft" k="74" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="T" k="119" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quoteright,quotedblright" k="82" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="w" k="23" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="W" k="43" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quotedbl,quotesingle" k="76" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="y,yacute,ydieresis" k="43" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="t" k="29" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="space,uni00A0" k="47" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="trademark" k="92" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="bracketright" k="27" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="asterisk" k="70" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="backslash" k="111" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="ordmasculine" k="43" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="14" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="v" k="43" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="V" k="74" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="question" k="72" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="registered" k="53" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="ordfeminine" k="37" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="one" k="63" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="seven" k="53" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="five" k="-4" /> +<hkern g1="V" g2="f,germandbls,thorn,uniFB01,uniFB02" k="4" /> +<hkern g1="V" g2="hyphen,uni00AD,endash,emdash" k="41" /> +<hkern g1="V" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="74" /> +<hkern g1="V" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="80" /> +<hkern g1="V" g2="d" k="74" /> +<hkern g1="V" g2="guilsinglleft" k="53" /> +<hkern g1="V" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="84" /> +<hkern g1="V" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="57" /> +<hkern g1="V" g2="g" k="68" /> +<hkern g1="V" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="16" /> +<hkern g1="V" g2="s" k="47" /> +<hkern g1="V" g2="z" k="29" /> +<hkern g1="V" g2="m,n,p,r,ntilde" k="49" /> +<hkern g1="V" g2="u,ugrave,uacute,ucircumflex,udieresis" k="45" /> +<hkern g1="V" g2="colon,semicolon" k="27" /> +<hkern g1="V" g2="guilsinglright" k="33" /> +<hkern g1="k" g2="Y,Yacute,Ydieresis" k="63" /> +<hkern g1="k" g2="parenright" k="39" /> +<hkern g1="k" g2="T" k="137" /> +<hkern g1="k" g2="space,uni00A0" k="12" /> +<hkern g1="k" g2="hyphen,uni00AD,endash,emdash" k="41" /> +<hkern g1="k" g2="q" k="35" /> +<hkern g1="k" g2="trademark" k="49" /> +<hkern g1="k" g2="bracketright" k="39" /> +<hkern g1="k" g2="eth" k="43" /> +<hkern g1="k" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="39" /> +<hkern g1="k" g2="braceright" k="16" /> +<hkern g1="k" g2="d" k="33" /> +<hkern g1="k" g2="guilsinglleft" k="59" /> +<hkern g1="k" g2="backslash" k="45" /> +<hkern g1="k" g2="V" k="14" /> +<hkern g1="k" g2="question" k="16" /> +<hkern g1="N,Ntilde" g2="parenright" k="23" /> +<hkern g1="N,Ntilde" g2="slash" k="12" /> +<hkern g1="c,ccedilla" g2="Y,Yacute,Ydieresis" k="92" /> +<hkern g1="c,ccedilla" g2="parenright" k="74" /> +<hkern g1="c,ccedilla" g2="T" k="180" /> +<hkern g1="c,ccedilla" g2="W" k="4" /> +<hkern g1="c,ccedilla" g2="hyphen,uni00AD,endash,emdash" k="25" /> +<hkern g1="c,ccedilla" g2="q" k="12" /> +<hkern g1="c,ccedilla" g2="trademark" k="51" /> +<hkern g1="c,ccedilla" g2="bracketright" k="53" /> +<hkern g1="c,ccedilla" g2="eth" k="16" /> +<hkern g1="c,ccedilla" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="14" /> +<hkern g1="c,ccedilla" g2="braceright" k="39" /> +<hkern g1="c,ccedilla" g2="d" k="12" /> +<hkern g1="c,ccedilla" g2="guilsinglleft" k="39" /> +<hkern g1="c,ccedilla" g2="backslash" k="59" /> +<hkern g1="c,ccedilla" g2="V" k="27" /> +<hkern g1="c,ccedilla" g2="question" k="20" /> +<hkern g1="J" g2="parenright" k="20" /> +<hkern g1="J" g2="slash" k="41" /> +<hkern g1="J" g2="AE" k="12" /> +<hkern g1="J" g2="J" k="6" /> +<hkern g1="J" g2="g" k="6" /> +<hkern g1="F" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="90" /> +<hkern g1="F" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="33" /> +<hkern g1="F" g2="d" k="31" /> +<hkern g1="F" g2="guilsinglleft" k="14" /> +<hkern g1="F" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="143" /> +<hkern g1="F" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="41" /> +<hkern g1="F" g2="g" k="33" /> +<hkern g1="F" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="8" /> +<hkern g1="F" g2="s" k="20" /> +<hkern g1="F" g2="z" k="20" /> +<hkern g1="F" g2="m,n,p,r,ntilde" k="29" /> +<hkern g1="F" g2="u,ugrave,uacute,ucircumflex,udieresis" k="29" /> +<hkern g1="F" g2="colon,semicolon" k="8" /> +<hkern g1="F" g2="guilsinglright" k="8" /> +<hkern g1="x" g2="Y,Yacute,Ydieresis" k="55" /> +<hkern g1="x" g2="T" k="135" /> +<hkern g1="x" g2="hyphen,uni00AD,endash,emdash" k="33" /> +<hkern g1="x" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="27" /> +<hkern g1="x" g2="d" k="20" /> +<hkern g1="x" g2="guilsinglleft" k="51" /> +<hkern g1="x" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="4" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="Y,Yacute,Ydieresis" k="141" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="parenright" k="88" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quoteleft,quotedblleft" k="16" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="T" k="203" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quoteright,quotedblright" k="27" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="w" k="4" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="W" k="20" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quotedbl,quotesingle" k="18" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="y,yacute,ydieresis" k="10" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="trademark" k="55" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="bracketright" k="59" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="asterisk" k="10" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="slash" k="8" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="braceright" k="47" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="backslash" k="82" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="v" k="10" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="V" k="55" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="x" k="4" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="question" k="47" /> +<hkern g1="p,thorn" g2="Y,Yacute,Ydieresis" k="143" /> +<hkern g1="p,thorn" g2="parenright" k="102" /> +<hkern g1="p,thorn" g2="quoteleft,quotedblleft" k="25" /> +<hkern g1="p,thorn" g2="T" k="199" /> +<hkern g1="p,thorn" g2="quoteright,quotedblright" k="43" /> +<hkern g1="p,thorn" g2="w" k="10" /> +<hkern g1="p,thorn" g2="W" k="33" /> +<hkern g1="p,thorn" g2="quotedbl,quotesingle" k="33" /> +<hkern g1="p,thorn" g2="y,yacute,ydieresis" k="16" /> +<hkern g1="p,thorn" g2="Z" k="6" /> +<hkern g1="p,thorn" g2="trademark" k="63" /> +<hkern g1="p,thorn" g2="bracketright" k="68" /> +<hkern g1="p,thorn" g2="asterisk" k="29" /> +<hkern g1="p,thorn" g2="X" k="25" /> +<hkern g1="p,thorn" g2="slash" k="43" /> +<hkern g1="p,thorn" g2="AE" k="4" /> +<hkern g1="p,thorn" g2="braceright" k="51" /> +<hkern g1="p,thorn" g2="J" k="8" /> +<hkern g1="p,thorn" g2="S" k="8" /> +<hkern g1="p,thorn" g2="backslash" k="98" /> +<hkern g1="p,thorn" g2="v" k="16" /> +<hkern g1="p,thorn" g2="V" k="76" /> +<hkern g1="p,thorn" g2="x" k="20" /> +<hkern g1="p,thorn" g2="question" k="61" /> +<hkern g1="S" g2="Y,Yacute,Ydieresis" k="10" /> +<hkern g1="S" g2="parenright" k="27" /> +<hkern g1="S" g2="f,germandbls,thorn,uniFB01,uniFB02" k="14" /> +<hkern g1="S" g2="w" k="6" /> +<hkern g1="S" g2="y,yacute,ydieresis" k="14" /> +<hkern g1="S" g2="t" k="10" /> +<hkern g1="S" g2="slash" k="14" /> +<hkern g1="S" g2="AE" k="8" /> +<hkern g1="S" g2="v" k="12" /> +<hkern g1="h,m,n,ntilde" g2="Y,Yacute,Ydieresis" k="135" /> +<hkern g1="h,m,n,ntilde" g2="parenright" k="80" /> +<hkern g1="h,m,n,ntilde" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="6" /> +<hkern g1="h,m,n,ntilde" g2="quoteleft,quotedblleft" k="18" /> +<hkern g1="h,m,n,ntilde" g2="T" k="199" /> +<hkern g1="h,m,n,ntilde" g2="quoteright,quotedblright" k="29" /> +<hkern g1="h,m,n,ntilde" g2="W" k="29" /> +<hkern g1="h,m,n,ntilde" g2="quotedbl,quotesingle" k="20" /> +<hkern g1="h,m,n,ntilde" g2="trademark" k="61" /> +<hkern g1="h,m,n,ntilde" g2="bracketright" k="61" /> +<hkern g1="h,m,n,ntilde" g2="asterisk" k="20" /> +<hkern g1="h,m,n,ntilde" g2="braceright" k="43" /> +<hkern g1="h,m,n,ntilde" g2="backslash" k="88" /> +<hkern g1="h,m,n,ntilde" g2="V" k="66" /> +<hkern g1="h,m,n,ntilde" g2="question" k="51" /> +<hkern g1="K" g2="f,germandbls,thorn,uniFB01,uniFB02" k="31" /> +<hkern g1="K" g2="w" k="45" /> +<hkern g1="K" g2="y,yacute,ydieresis" k="57" /> +<hkern g1="K" g2="t" k="41" /> +<hkern g1="K" g2="space,uni00A0" k="20" /> +<hkern g1="K" g2="hyphen,uni00AD,endash,emdash" k="39" /> +<hkern g1="K" g2="q" k="29" /> +<hkern g1="K" g2="eth" k="31" /> +<hkern g1="K" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="35" /> +<hkern g1="K" g2="d" k="31" /> +<hkern g1="K" g2="guilsinglleft" k="31" /> +<hkern g1="K" g2="backslash" k="-4" /> +<hkern g1="K" g2="ordmasculine" k="45" /> +<hkern g1="K" g2="four" k="39" /> +<hkern g1="K" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="51" /> +<hkern g1="K" g2="v" k="57" /> +<hkern g1="K" g2="copyright" k="51" /> +<hkern g1="K" g2="registered" k="10" /> +<hkern g1="K" g2="u,ugrave,uacute,ucircumflex,udieresis" k="10" /> +<hkern g1="K" g2="ordfeminine" k="31" /> +<hkern g1="K" g2="seven" k="-6" /> +<hkern g1="K" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="23" /> +<hkern g1="K" g2="five" k="-6" /> +<hkern g1="C,Ccedilla" g2="f,germandbls,thorn,uniFB01,uniFB02" k="8" /> +<hkern g1="C,Ccedilla" g2="w" k="8" /> +<hkern g1="C,Ccedilla" g2="y,yacute,ydieresis" k="10" /> +<hkern g1="C,Ccedilla" g2="t" k="10" /> +<hkern g1="C,Ccedilla" g2="hyphen,uni00AD,endash,emdash" k="10" /> +<hkern g1="C,Ccedilla" g2="ordmasculine" k="20" /> +<hkern g1="C,Ccedilla" g2="four" k="20" /> +<hkern g1="C,Ccedilla" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="20" /> +<hkern g1="C,Ccedilla" g2="v" k="8" /> +<hkern g1="C,Ccedilla" g2="copyright" k="23" /> +<hkern g1="C,Ccedilla" g2="ordfeminine" k="12" /> +<hkern g1="X" g2="f,germandbls,thorn,uniFB01,uniFB02" k="29" /> +<hkern g1="X" g2="w" k="35" /> +<hkern g1="X" g2="y,yacute,ydieresis" k="43" /> +<hkern g1="X" g2="t" k="35" /> +<hkern g1="X" g2="hyphen,uni00AD,endash,emdash" k="31" /> +<hkern g1="X" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="29" /> +<hkern g1="X" g2="d" k="27" /> +<hkern g1="X" g2="guilsinglleft" k="35" /> +<hkern g1="X" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="41" /> +<hkern g1="X" g2="u,ugrave,uacute,ucircumflex,udieresis" k="10" /> +<hkern g1="X" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="14" /> +<hkern g1="P" g2="Y,Yacute,Ydieresis" k="6" /> +<hkern g1="P" g2="y,yacute,ydieresis" k="-6" /> +<hkern g1="P" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="70" /> +<hkern g1="P" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="8" /> +<hkern g1="P" g2="d" k="6" /> +<hkern g1="P" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="147" /> +<hkern g1="P" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="10" /> +<hkern g1="z" g2="Y,Yacute,Ydieresis" k="92" /> +<hkern g1="z" g2="parenright" k="68" /> +<hkern g1="z" g2="T" k="166" /> +<hkern g1="z" g2="W" k="6" /> +<hkern g1="z" g2="hyphen,uni00AD,endash,emdash" k="20" /> +<hkern g1="z" g2="trademark" k="53" /> +<hkern g1="z" g2="bracketright" k="53" /> +<hkern g1="z" g2="eth" k="10" /> +<hkern g1="z" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="4" /> +<hkern g1="z" g2="braceright" k="35" /> +<hkern g1="z" g2="guilsinglleft" k="35" /> +<hkern g1="z" g2="backslash" k="57" /> +<hkern g1="z" g2="V" k="31" /> +<hkern g1="z" g2="question" k="20" /> +<hkern g1="guilsinglright" g2="quoteright,quotedblright" k="59" /> +<hkern g1="guilsinglright" g2="quotedbl,quotesingle" k="53" /> +<hkern g1="guilsinglright" g2="y,yacute,ydieresis" k="27" /> +<hkern g1="guilsinglright" g2="T" k="141" /> +<hkern g1="guilsinglright" g2="v" k="27" /> +<hkern g1="guilsinglright" g2="Y,Yacute,Ydieresis" k="113" /> +<hkern g1="guilsinglright" g2="f,germandbls,thorn,uniFB01,uniFB02" k="29" /> +<hkern g1="guilsinglright" g2="V" k="55" /> +<hkern g1="guilsinglright" g2="x" k="51" /> +<hkern g1="guilsinglright" g2="X" k="35" /> +<hkern g1="guilsinglright" g2="z" k="35" /> +<hkern g1="guilsinglright" g2="AE" k="35" /> +<hkern g1="guilsinglright" g2="t" k="31" /> +<hkern g1="guilsinglright" g2="J" k="31" /> +<hkern g1="guilsinglright" g2="W" k="29" /> +<hkern g1="questiondown" g2="y,yacute,ydieresis" k="35" /> +<hkern g1="questiondown" g2="T" k="162" /> +<hkern g1="questiondown" g2="Y,Yacute,Ydieresis" k="150" /> +<hkern g1="questiondown" g2="f,germandbls,thorn,uniFB01,uniFB02" k="82" /> +<hkern g1="questiondown" g2="z" k="61" /> +<hkern g1="questiondown" g2="t" k="90" /> +<hkern g1="questiondown" g2="W" k="111" /> +<hkern g1="questiondown" g2="Z" k="59" /> +<hkern g1="questiondown" g2="i,j,igrave,iacute,icircumflex,idieresis" k="76" /> +<hkern g1="questiondown" g2="m,n,p,r,ntilde" k="76" /> +<hkern g1="questiondown" g2="S" k="88" /> +<hkern g1="questiondown" g2="b,h,k" k="76" /> +<hkern g1="questiondown" g2="L" k="100" /> +<hkern g1="questiondown" g2="u,ugrave,uacute,ucircumflex,udieresis" k="94" /> +<hkern g1="questiondown" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="39" /> +<hkern g1="questiondown" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="98" /> +<hkern g1="questiondown" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="109" /> +<hkern g1="questiondown" g2="B,D,H,I,K,P,R,Igrave,Iacute,Icircumflex,Idieresis,Eth,Thorn" k="74" /> +<hkern g1="questiondown" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="106" /> +<hkern g1="questiondown" g2="d" k="106" /> +<hkern g1="questiondown" g2="s" k="88" /> +<hkern g1="questiondown" g2="N,Ntilde" k="74" /> +<hkern g1="questiondown" g2="w" k="94" /> +<hkern g1="questiondown" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="100" /> +<hkern g1="questiondown" g2="l" k="98" /> +<hkern g1="questiondown" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="102" /> +<hkern g1="nine" g2="Y,Yacute,Ydieresis" k="10" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="quoteright,quotedblright" k="115" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="quotedbl,quotesingle" k="127" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="y,yacute,ydieresis" k="8" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="T" k="109" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="v" k="8" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Y,Yacute,Ydieresis" k="100" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="f,germandbls,thorn,uniFB01,uniFB02" k="12" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="V" k="41" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="x" k="33" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="X" k="31" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="z" k="20" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="AE" k="6" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="t" k="25" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="J" k="61" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="W" k="10" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="S" k="14" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="seven" k="78" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="one" k="61" /> +<hkern g1="space,uni00A0" g2="quoteright,quotedblright" k="27" /> +<hkern g1="space,uni00A0" g2="quotedbl,quotesingle" k="25" /> +<hkern g1="space,uni00A0" g2="y,yacute,ydieresis" k="45" /> +<hkern g1="space,uni00A0" g2="T" k="45" /> +<hkern g1="space,uni00A0" g2="Y,Yacute,Ydieresis" k="55" /> +<hkern g1="space,uni00A0" g2="f,germandbls,thorn,uniFB01,uniFB02" k="31" /> +<hkern g1="space,uni00A0" g2="t" k="37" /> +<hkern g1="space,uni00A0" g2="W" k="12" /> +<hkern g1="space,uni00A0" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="47" /> +<hkern g1="space,uni00A0" g2="w" k="39" /> +<hkern g1="colon,semicolon" g2="T" k="102" /> +<hkern g1="colon,semicolon" g2="Y,Yacute,Ydieresis" k="63" /> +<hkern g1="colon,semicolon" g2="V" k="27" /> +<hkern g1="seven" g2="T" k="-8" /> +<hkern g1="seven" g2="Y,Yacute,Ydieresis" k="-4" /> +<hkern g1="seven" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="63" /> +<hkern g1="seven" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="84" /> +<hkern g1="seven" g2="hyphen,uni00AD,endash,emdash" k="39" /> +<hkern g1="braceleft" g2="y,yacute,ydieresis" k="8" /> +<hkern g1="braceleft" g2="f,germandbls,thorn,uniFB01,uniFB02" k="31" /> +<hkern g1="braceleft" g2="z" k="35" /> +<hkern g1="braceleft" g2="t" k="37" /> +<hkern g1="braceleft" g2="m,n,p,r,ntilde" k="41" /> +<hkern g1="braceleft" g2="S" k="14" /> +<hkern g1="braceleft" g2="u,ugrave,uacute,ucircumflex,udieresis" k="47" /> +<hkern g1="braceleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="12" /> +<hkern g1="braceleft" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="31" /> +<hkern g1="braceleft" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="51" /> +<hkern g1="braceleft" g2="d" k="51" /> +<hkern g1="braceleft" g2="s" k="45" /> +<hkern g1="braceleft" g2="w" k="39" /> +<hkern g1="braceleft" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="41" /> +<hkern g1="braceleft" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="43" /> +<hkern g1="parenleft" g2="y,yacute,ydieresis" k="37" /> +<hkern g1="parenleft" g2="Y,Yacute,Ydieresis" k="-12" /> +<hkern g1="parenleft" g2="f,germandbls,thorn,uniFB01,uniFB02" k="74" /> +<hkern g1="parenleft" g2="z" k="70" /> +<hkern g1="parenleft" g2="t" k="84" /> +<hkern g1="parenleft" g2="i,j,igrave,iacute,icircumflex,idieresis" k="20" /> +<hkern g1="parenleft" g2="m,n,p,r,ntilde" k="80" /> +<hkern g1="parenleft" g2="S" k="47" /> +<hkern g1="parenleft" g2="b,h,k" k="18" /> +<hkern g1="parenleft" g2="L" k="20" /> +<hkern g1="parenleft" g2="u,ugrave,uacute,ucircumflex,udieresis" k="92" /> +<hkern g1="parenleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="27" /> +<hkern g1="parenleft" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="66" /> +<hkern g1="parenleft" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="104" /> +<hkern g1="parenleft" g2="B,D,H,I,K,P,R,Igrave,Iacute,Icircumflex,Idieresis,Eth,Thorn" k="20" /> +<hkern g1="parenleft" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="20" /> +<hkern g1="parenleft" g2="d" k="100" /> +<hkern g1="parenleft" g2="s" k="80" /> +<hkern g1="parenleft" g2="N,Ntilde" k="35" /> +<hkern g1="parenleft" g2="w" k="90" /> +<hkern g1="parenleft" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="84" /> +<hkern g1="parenleft" g2="l" k="16" /> +<hkern g1="parenleft" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="90" /> +<hkern g1="two" g2="Y,Yacute,Ydieresis" k="8" /> +<hkern g1="bracketleft" g2="y,yacute,ydieresis" k="29" /> +<hkern g1="bracketleft" g2="Y,Yacute,Ydieresis" k="-8" /> +<hkern g1="bracketleft" g2="f,germandbls,thorn,uniFB01,uniFB02" k="43" /> +<hkern g1="bracketleft" g2="z" k="53" /> +<hkern g1="bracketleft" g2="t" k="47" /> +<hkern g1="bracketleft" g2="m,n,p,r,ntilde" k="57" /> +<hkern g1="bracketleft" g2="S" k="20" /> +<hkern g1="bracketleft" g2="u,ugrave,uacute,ucircumflex,udieresis" k="59" /> +<hkern g1="bracketleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="27" /> +<hkern g1="bracketleft" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="37" /> +<hkern g1="bracketleft" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="68" /> +<hkern g1="bracketleft" g2="d" k="68" /> +<hkern g1="bracketleft" g2="s" k="59" /> +<hkern g1="bracketleft" g2="N,Ntilde" k="14" /> +<hkern g1="bracketleft" g2="w" k="53" /> +<hkern g1="bracketleft" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="49" /> +<hkern g1="bracketleft" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="61" /> +<hkern g1="backslash" g2="quoteright,quotedblright" k="152" /> +<hkern g1="backslash" g2="quotedbl,quotesingle" k="150" /> +<hkern g1="backslash" g2="y,yacute,ydieresis" k="84" /> +<hkern g1="backslash" g2="T" k="150" /> +<hkern g1="backslash" g2="Y,Yacute,Ydieresis" k="156" /> +<hkern g1="backslash" g2="f,germandbls,thorn,uniFB01,uniFB02" k="53" /> +<hkern g1="backslash" g2="t" k="84" /> +<hkern g1="backslash" g2="W" k="86" /> +<hkern g1="backslash" g2="L" k="43" /> +<hkern g1="backslash" g2="u,ugrave,uacute,ucircumflex,udieresis" k="33" /> +<hkern g1="backslash" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="41" /> +<hkern g1="backslash" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="47" /> +<hkern g1="backslash" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="68" /> +<hkern g1="backslash" g2="d" k="45" /> +<hkern g1="backslash" g2="w" k="84" /> +<hkern g1="backslash" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="66" /> +<hkern g1="backslash" g2="l" k="35" /> +<hkern g1="backslash" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="23" /> +<hkern g1="periodcentered" g2="l" k="104" /> +<hkern g1="quoteleft,quotedblleft" g2="AE" k="145" /> +<hkern g1="quoteleft,quotedblleft" g2="J" k="72" /> +<hkern g1="quoteleft,quotedblleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="72" /> +<hkern g1="quoteleft,quotedblleft" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="27" /> +<hkern g1="quoteleft,quotedblleft" g2="d" k="29" /> +<hkern g1="quoteleft,quotedblleft" g2="s" k="10" /> +<hkern g1="quoteleft,quotedblleft" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="217" /> +<hkern g1="quoteleft,quotedblleft" g2="q" k="27" /> +<hkern g1="quoteleft,quotedblleft" g2="eth" k="37" /> +<hkern g1="quoteleft,quotedblleft" g2="g" k="18" /> +<hkern g1="slash" g2="y,yacute,ydieresis" k="27" /> +<hkern g1="slash" g2="Y,Yacute,Ydieresis" k="-12" /> +<hkern g1="slash" g2="f,germandbls,thorn,uniFB01,uniFB02" k="25" /> +<hkern g1="slash" g2="z" k="57" /> +<hkern g1="slash" g2="t" k="27" /> +<hkern g1="slash" g2="m,n,p,r,ntilde" k="68" /> +<hkern g1="slash" g2="u,ugrave,uacute,ucircumflex,udieresis" k="63" /> +<hkern g1="slash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="111" /> +<hkern g1="slash" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="98" /> +<hkern g1="slash" g2="d" k="94" /> +<hkern g1="slash" g2="s" k="78" /> +<hkern g1="slash" g2="w" k="33" /> +<hkern g1="slash" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="33" /> +<hkern g1="slash" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="78" /> +<hkern g1="slash" g2="g" k="92" /> +<hkern g1="quotedbl,quotesingle" g2="AE" k="152" /> +<hkern g1="quotedbl,quotesingle" g2="J" k="74" /> +<hkern g1="quotedbl,quotesingle" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="76" /> +<hkern g1="quotedbl,quotesingle" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="37" /> +<hkern g1="quotedbl,quotesingle" g2="d" k="37" /> +<hkern g1="quotedbl,quotesingle" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="219" /> +<hkern g1="quotedbl,quotesingle" g2="hyphen,uni00AD,endash,emdash" k="127" /> +<hkern g1="quotedbl,quotesingle" g2="q" k="37" /> +<hkern g1="quotedbl,quotesingle" g2="eth" k="39" /> +<hkern g1="quotedbl,quotesingle" g2="g" k="23" /> +<hkern g1="quotedbl,quotesingle" g2="space,uni00A0" k="27" /> +<hkern g1="quotedbl,quotesingle" g2="four" k="39" /> +<hkern g1="quotedbl,quotesingle" g2="slash" k="150" /> +<hkern g1="quotedbl,quotesingle" g2="guilsinglleft" k="53" /> +<hkern g1="ampersand" g2="quoteright,quotedblright" k="49" /> +<hkern g1="ampersand" g2="quotedbl,quotesingle" k="49" /> +<hkern g1="ampersand" g2="T" k="109" /> +<hkern g1="ampersand" g2="Y,Yacute,Ydieresis" k="80" /> +<hkern g1="ampersand" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-8" /> +<hkern g1="at" g2="T" k="18" /> +<hkern g1="at" g2="Y,Yacute,Ydieresis" k="43" /> +<hkern g1="exclamdown" g2="T" k="86" /> +<hkern g1="exclamdown" g2="Y,Yacute,Ydieresis" k="61" /> +<hkern g1="eight" g2="Y,Yacute,Ydieresis" k="8" /> +<hkern g1="asterisk" g2="y,yacute,ydieresis" k="-8" /> +<hkern g1="asterisk" g2="T" k="-8" /> +<hkern g1="asterisk" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="70" /> +<hkern g1="asterisk" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="31" /> +<hkern g1="asterisk" g2="d" k="31" /> +<hkern g1="asterisk" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="16" /> +<hkern g1="asterisk" g2="g" k="14" /> +<hkern g1="guilsinglleft" g2="quoteright,quotedblright" k="14" /> +<hkern g1="guilsinglleft" g2="T" k="125" /> +<hkern g1="guilsinglleft" g2="Y,Yacute,Ydieresis" k="78" /> +<hkern g1="guilsinglleft" g2="V" k="33" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="quoteright,quotedblright" k="219" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="quotedbl,quotesingle" k="219" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="y,yacute,ydieresis" k="57" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="T" k="113" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="v" k="57" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="Y,Yacute,Ydieresis" k="123" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="f,germandbls,thorn,uniFB01,uniFB02" k="27" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="V" k="84" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="t" k="31" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="W" k="41" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="10" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="w" k="39" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="seven" k="66" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="one" k="86" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="quoteleft,quotedblleft" k="219" /> +<hkern g1="four" g2="quotedbl,quotesingle" k="10" /> +<hkern g1="four" g2="T" k="16" /> +<hkern g1="four" g2="Y,Yacute,Ydieresis" k="29" /> +<hkern g1="quoteright,quotedblright" g2="AE" k="156" /> +<hkern g1="quoteright,quotedblright" g2="J" k="74" /> +<hkern g1="quoteright,quotedblright" g2="m,n,p,r,ntilde" k="10" /> +<hkern g1="quoteright,quotedblright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="82" /> +<hkern g1="quoteright,quotedblright" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="45" /> +<hkern g1="quoteright,quotedblright" g2="d" k="47" /> +<hkern g1="quoteright,quotedblright" g2="s" k="18" /> +<hkern g1="quoteright,quotedblright" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="14" /> +<hkern g1="quoteright,quotedblright" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="219" /> +<hkern g1="quoteright,quotedblright" g2="hyphen,uni00AD,endash,emdash" k="106" /> +<hkern g1="quoteright,quotedblright" g2="q" k="45" /> +<hkern g1="quoteright,quotedblright" g2="eth" k="33" /> +<hkern g1="quoteright,quotedblright" g2="g" k="27" /> +<hkern g1="quoteright,quotedblright" g2="space,uni00A0" k="27" /> +<hkern g1="quoteright,quotedblright" g2="slash" k="152" /> +<hkern g1="quoteright,quotedblright" g2="guilsinglleft" k="59" /> +<hkern g1="quoteright,quotedblright" g2="colon,semicolon" k="10" /> +<hkern g1="quoteright,quotedblright" g2="guilsinglright" k="16" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/exo2-bold-webfont.ttf b/web/static/fonts/exo2-bold-webfont.ttf Binary files differnew file mode 100755 index 000000000..6bef5aef9 --- /dev/null +++ b/web/static/fonts/exo2-bold-webfont.ttf diff --git a/web/static/fonts/exo2-bold-webfont.woff b/web/static/fonts/exo2-bold-webfont.woff Binary files differnew file mode 100755 index 000000000..6a472d44e --- /dev/null +++ b/web/static/fonts/exo2-bold-webfont.woff diff --git a/web/static/fonts/exo2-bold-webfont.woff2 b/web/static/fonts/exo2-bold-webfont.woff2 Binary files differnew file mode 100755 index 000000000..6eec88000 --- /dev/null +++ b/web/static/fonts/exo2-bold-webfont.woff2 diff --git a/web/static/fonts/exo2-bolditalic-webfont.eot b/web/static/fonts/exo2-bolditalic-webfont.eot Binary files differnew file mode 100755 index 000000000..a9fc3a3be --- /dev/null +++ b/web/static/fonts/exo2-bolditalic-webfont.eot diff --git a/web/static/fonts/exo2-bolditalic-webfont.svg b/web/static/fonts/exo2-bolditalic-webfont.svg new file mode 100755 index 000000000..2f7aa7aca --- /dev/null +++ b/web/static/fonts/exo2-bolditalic-webfont.svg @@ -0,0 +1,1693 @@ +<?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="exo_2bold_italic" horiz-adv-x="1392" > +<font-face units-per-em="2048" ascent="1638" descent="-410" /> +<missing-glyph horiz-adv-x="444" /> +<glyph horiz-adv-x="0" /> +<glyph unicode="
" horiz-adv-x="681" /> +<glyph unicode=" " horiz-adv-x="444" /> +<glyph unicode="	" horiz-adv-x="444" /> +<glyph unicode=" " horiz-adv-x="444" /> +<glyph unicode="!" horiz-adv-x="610" d="M94 113l15 98q12 98 114 98h66q119 0 100 -110l-12 -99q-12 -100 -117 -100h-65q-115 0 -101 113zM166 449l27 421l77 553h299l-77 -553l-89 -421h-237z" /> +<glyph unicode=""" horiz-adv-x="765" d="M174 961l45 452h223l-82 -452h-186zM504 961l47 452h221l-80 -452h-188z" /> +<glyph unicode="#" horiz-adv-x="1456" d="M37 403l59 183h236l90 286h-234l62 181h229l113 360h231l-112 -360h282l113 360h231l-112 -360h229l-61 -181h-226l-90 -286h226l-62 -183h-221l-127 -403h-231l129 403h-285l-127 -403h-232l129 403h-239zM563 586h283l90 286h-283z" /> +<glyph unicode="$" horiz-adv-x="1171" d="M31 29l32 223q426 -10 437 -10q139 0 189 27.5t63 117.5q10 70 -10.5 97.5t-88.5 52.5l-264 108q-152 63 -204 163.5t-33 252.5q29 221 149.5 298t372.5 81l47 186h227l-49 -196q129 -13 252 -48l-31 -211q-182 6 -434 7q-121 2 -166 -20.5t-57 -115.5q-10 -70 11.5 -97 t98.5 -58l250 -99q160 -66 210 -161t30 -258q-29 -227 -141.5 -309.5t-378.5 -86.5l-49 -217h-228l53 228q-143 10 -288 45z" /> +<glyph unicode="%" horiz-adv-x="1857" d="M127 1032q33 231 117 319.5t270 88.5q201 0 271.5 -97.5t37.5 -334.5q-33 -231 -117.5 -319.5t-273.5 -88.5q-197 0 -267.5 97.5t-37.5 334.5zM315 0l1047 1413h205l-1045 -1413h-207zM343 816.5q17 -48.5 89 -48.5q86 0 118 51t54 213q18 143 1 191.5t-89 48.5 q-86 0 -116.5 -51.5t-53.5 -212.5q-20 -143 -3 -191.5zM1063 408q35 231 119 320t270 89q199 0 270.5 -98t38.5 -334q-35 -231 -118.5 -320.5t-274.5 -89.5q-197 0 -267.5 98.5t-37.5 334.5zM1280 192.5q16 -47.5 88 -47.5q88 0 120 50.5t52 212.5q18 145 2 192t-90 47 q-84 0 -114.5 -50t-53.5 -212q-20 -145 -4 -192.5z" /> +<glyph unicode="&" horiz-adv-x="1531" d="M63 371q37 338 326 358l2 10q-113 8 -162 100.5t-24 237.5q16 92 51 157.5t81 104.5t116.5 61.5t142.5 30t172 7.5q195 0 354 -45l-49 -215q-129 27 -293 26q-143 0 -198.5 -35.5t-71.5 -152.5q-14 -106 20.5 -144t143.5 -38h389q4 68 4 217h260q2 -100 -4 -217h184 l-30 -211h-177q-29 -176 -100 -301q-190 -346 -692 -347q-258 0 -363.5 94.5t-81.5 301.5zM395 410q-14 -102 24 -143.5t150 -41.5q270 0 387 195q53 76 80 203h-393q-119 0 -175 -46.5t-73 -166.5z" /> +<glyph unicode="'" horiz-adv-x="436" d="M174 961l45 452h223l-82 -452h-186z" /> +<glyph unicode="(" horiz-adv-x="745" d="M86 651q57 406 229.5 639.5t489.5 329.5l35 -137q-367 -154 -463 -854q-51 -315 -2 -532.5t213 -303.5l-39 -125q-293 96 -406.5 339t-56.5 644z" /> +<glyph unicode=")" horiz-adv-x="745" d="M-82 -203q367 164 463 856q53 322 4 538t-215 296l39 127q293 -96 406.5 -338t56.5 -649q-57 -401 -229.5 -635t-489.5 -332z" /> +<glyph unicode="*" horiz-adv-x="925" d="M145 1096l68 157l231 -100l-8 -72l-43 -45zM215 809l256 262l23 344h170l-76 -342l182 -264l-139 -100l-111 249l-178 -247zM629 1079l10 74l246 100l33 -163l-256 -56z" /> +<glyph unicode="+" horiz-adv-x="1097" d="M70 506l32 221h353l49 344h225l-49 -344h352l-31 -221h-354l-47 -342h-223l47 342h-354z" /> +<glyph unicode="," horiz-adv-x="499" d="M33 98l16 109q10 59 38 80.5t89 21.5h68q59 0 81.5 -25.5t14.5 -84.5l-18 -131q-27 -197 -150 -373l-133 47q55 160 78 264q-94 -6 -84 92z" /> +<glyph unicode="-" horiz-adv-x="847" d="M94 422l29 199h608l-26 -199h-611z" /> +<glyph unicode="." horiz-adv-x="493" d="M33 113l14 98q15 98 117 98h76q117 0 100 -110l-14 -99q-12 -100 -115 -100h-76q-115 0 -102 113z" /> +<glyph unicode="/" horiz-adv-x="1144" d="M-59 -147l1024 1560h247l-1024 -1560h-247z" /> +<glyph unicode="0" horiz-adv-x="1284" d="M117 719q55 399 194 560t430 161q303 0 407.5 -172t47.5 -574q-55 -399 -194.5 -560t-432.5 -161q-295 0 -402.5 172t-49.5 574zM410.5 317q31.5 -96 169.5 -96q145 0 209.5 100.5t103.5 389t6 385t-168 96.5q-143 0 -207.5 -100.5t-103.5 -389.5q-41 -289 -9.5 -385z " /> +<glyph unicode="1" horiz-adv-x="878" d="M111 1270l385 143h307l-199 -1413h-311l143 1001q10 88 31 152l-340 -90z" /> +<glyph unicode="2" horiz-adv-x="1171" d="M4 0l27 180q14 88 51 127l399 371q168 154 237.5 240t80.5 159q8 59 -29 76.5t-133 17.5q-227 0 -436 -18l2 238q240 47 465 47q117 0 197.5 -14.5t144 -51.5t88 -104.5t14.5 -169.5q-14 -121 -74.5 -221.5t-206.5 -235.5l-411 -379q86 18 207 19h415l-36 -281h-1002z " /> +<glyph unicode="3" horiz-adv-x="1144" d="M8 10l29 230q289 -14 377 -11q270 12 305 215q16 92 -23 137.5t-151 47.5l-277 4l29 209h268q117 0 162 50t55 150q8 86 -26.5 115t-167.5 29q-166 0 -375 -8v225q227 37 432 37q242 0 345.5 -81t86.5 -259q-10 -133 -74.5 -236.5t-185.5 -115.5l-2 -9q252 -39 209 -342 q-27 -203 -164 -311.5t-414 -112.5q-168 -6 -438 37z" /> +<glyph unicode="4" horiz-adv-x="1292" d="M53 390q-47 79 4 167l484 856h303l-453 -819q-37 -61 23 -62h348l53 381l84 226h238l-84 -607h168l-27 -192l-168 -29h-4l-45 -311h-287l41 311h-520q-111 0 -158 79z" /> +<glyph unicode="5" horiz-adv-x="1116" d="M6 20l47 242q195 -35 342 -24q147 8 221 64t91 167q12 96 -41.5 135t-210.5 53l-195 23q-53 6 -80.5 44t-19.5 89l119 600h825l-47 -242h-563l-54 -262l162 -18q455 -51 408 -442q-57 -446 -551 -474q-201 -10 -453 45z" /> +<glyph unicode="6" horiz-adv-x="1196" d="M117 702q27 190 68.5 322.5t93 213.5t129 125t159.5 59.5t205 15.5q163 0 356 -39l-28 -203q-106 4 -307 4q-172 0 -241 -72.5t-114 -306.5q141 111 312 111q211 0 297 -105.5t51 -355.5q-39 -262 -161 -379t-398 -117q-301 0 -391.5 161t-30.5 566zM391 286.5 q29 -71.5 162 -71.5q131 0 181 61t73 213q18 129 -8.5 172.5t-132.5 43.5q-127 0 -267 -111q-37 -236 -8 -307.5z" /> +<glyph unicode="7" horiz-adv-x="1079" d="M141 1159l23 254h844q86 0 116.5 -48t-4.5 -124l-608 -1241h-309l506 1030q33 70 82 129h-650z" /> +<glyph unicode="8" horiz-adv-x="1261" d="M68 365q23 164 90.5 260t206.5 108l2 8q-205 29 -164 332q27 199 138.5 283t383.5 82q287 0 385 -91.5t70 -297.5q-43 -287 -256 -314l-2 -8q244 -25 192 -387q-27 -199 -141.5 -282t-407.5 -85q-295 0 -408.5 95.5t-88.5 296.5zM369 403q-16 -113 24.5 -150.5 t186.5 -37.5q133 0 184 43t67 168q18 123 -20.5 161t-183.5 38q-137 0 -188.5 -41t-69.5 -181zM477 1012q-14 -102 22 -136t169 -34q125 0 169 39t60 155q16 109 -18.5 143.5t-165.5 34.5t-175 -39.5t-61 -162.5z" /> +<glyph unicode="9" horiz-adv-x="1196" d="M68 14l30 205q104 -4 336 -4q170 4 243 84t114 295q-129 -115 -308 -115q-117 0 -195.5 41t-111.5 106.5t-45 150.5t4 171q33 272 157 380t402 108q203 0 302.5 -62.5t130 -224.5t-16.5 -440q-33 -225 -82 -365.5t-130 -224.5t-185.5 -115t-263.5 -31q-197 0 -381 41z M422 946q-16 -135 12.5 -188t130.5 -53q74 0 131.5 23.5t128.5 84.5q37 238 9.5 311.5t-166.5 73.5q-129 0 -179.5 -54.5t-66.5 -197.5z" /> +<glyph unicode=":" horiz-adv-x="526" d="M20 113l15 98q15 100 117 100h75q115 0 101 -112l-15 -99q-12 -100 -114 -100h-76q-115 0 -103 113zM106 725l15 100q15 99 117 99h75q115 0 101 -113l-15 -96q-12 -100 -114 -101h-76q-115 0 -103 111z" /> +<glyph unicode=";" horiz-adv-x="532" d="M51 98l17 109q10 59 38 80.5t89 21.5h67q59 0 82 -25.5t14 -84.5l-18 -131q-27 -197 -150 -373l-133 47q55 160 78 264q-94 -6 -84 92zM135 725l15 100q14 99 116 99h76q115 0 100 -113l-14 -96q-12 -100 -115 -101h-75q-119 0 -103 111z" /> +<glyph unicode="<" horiz-adv-x="1054" d="M63 500l33 233l908 336l-33 -244l-635 -211l573 -223l-32 -231z" /> +<glyph unicode="=" horiz-adv-x="1185" d="M78 281l33 221h940l-33 -221h-940zM139 713l31 221h940l-33 -221h-938z" /> +<glyph unicode=">" horiz-adv-x="1052" d="M55 162l33 244l633 221l-569 221l30 223l811 -338l-32 -233z" /> +<glyph unicode="?" horiz-adv-x="1056" d="M164 1202v207q16 4 62 12.5t61.5 10.5t54.5 8t64.5 8t66.5 5t86 4t98 1q219 0 324.5 -82t83.5 -248q-12 -82 -56 -150.5t-103.5 -120.5t-120 -106.5t-114 -132t-73.5 -172.5h-242q12 119 68.5 223.5t119 165t120 129t69.5 119.5q16 78 -16.5 103.5t-130.5 25.5 q-191 0 -422 -10zM291 113l14 96q13 100 115 100h65q117 0 103 -110l-15 -99q-12 -100 -114 -100h-66q-115 0 -102 113z" /> +<glyph unicode="@" horiz-adv-x="1636" d="M88 473q25 147 67 241.5t108.5 140.5t136 61.5t175.5 15.5q190 0 506 -58l-94 -591q-8 -82 53 -82q100 0 138.5 90t81.5 381q14 88 21 145t3 108.5t-8 79t-31.5 52t-48 34t-79 15.5t-102.5 7t-136 1h-686l18 205q305 16 674 20q160 2 263 -6t189 -35.5t129 -72.5 t66.5 -124t21.5 -184.5t-24 -261.5q-53 -406 -153.5 -540.5t-368.5 -134.5q-250 0 -293 190q-147 -195 -350 -195q-358 0 -277 498zM359.5 250q17.5 -41 91 -41t134 45t138.5 152l53 313l-137 2q-143 0 -193.5 -44t-78.5 -218q-25 -168 -7.5 -209z" /> +<glyph unicode="A" horiz-adv-x="1325" d="M-80 0l594 1337q29 76 113 76h295q39 0 68.5 -25.5t31.5 -62.5l221 -1325h-311l-47 369h-488l-151 -369h-326zM500 616h352l-55 428q-6 45 -11 138h-59q-37 -104 -49 -135z" /> +<glyph unicode="B" horiz-adv-x="1300" d="M57 0l199 1413q182 16 514 17q272 0 378 -82q84 -65 85 -215q0 -39 -6 -84q-23 -152 -88.5 -225.5t-198.5 -86.5l-2 -12q250 -19 250 -283q0 -47 -8 -102q-31 -211 -143.5 -283.5t-370.5 -72.5q-402 0 -609 16zM393 221h219q137 0 189.5 40t70.5 163q5 36 5 65 q-1 68 -27 96q-38 40 -162 42h-237zM481 838h215q117 0 166 40t64 152q4 28 4 51q0 57 -25 79q-35 32 -147 32h-228z" /> +<glyph unicode="C" horiz-adv-x="1193" d="M111 719q57 410 204.5 564.5t475.5 154.5q236 0 421 -49l-41 -232q-166 10 -393 10q-109 0 -170 -34.5t-103 -136t-69 -302.5q-18 -129 -18 -216q0 -93 20 -140q39 -92 191 -92h44q217 0 384 18l12 -233q-184 -55 -451 -56q-328 -1 -446 173q-80 118 -79 338 q0 105 18 233z" /> +<glyph unicode="D" horiz-adv-x="1388" d="M57 0l199 1413q266 18 506 19q233 0 362 -66q130 -66 176 -228q25 -88 25 -211q0 -104 -18 -233q-33 -229 -83 -368.5t-139.5 -216t-200 -102t-292.5 -25.5q-232 0 -535 18zM401 229q35 0 98.5 -1t88.5 -1q98 0 156.5 17.5t107.5 70t76.5 148.5t50.5 256q23 154 24 242v6 q0 84 -27 135q-28 53 -79 69.5t-145 16.5l-215 -2z" /> +<glyph unicode="E" horiz-adv-x="1171" d="M92 334l113 807q18 131 105 204.5t233 73.5q446 0 651 -22l-39 -230h-528q-59 0 -85 -23.5t-34 -86.5l-31 -213h557l-28 -221h-560l-36 -273q-2 -16 -2 -29q0 -35 15 -51q21 -24 79 -24h522l-8 -232q-180 -20 -613 -20q-171 0 -251 91q-64 73 -64 188q0 29 4 61z" /> +<glyph unicode="F" horiz-adv-x="1128" d="M53 0l158 1133q20 137 108.5 211.5t229.5 74.5q436 0 633 -24l-39 -228h-494q-70 0 -98.5 -22.5t-36.5 -87.5l-33 -240h539l-31 -221h-538l-84 -596h-314z" /> +<glyph unicode="G" horiz-adv-x="1316" d="M113 719q29 221 85 364.5t149 221t206 106.5t281 29q254 0 432 -51l-39 -228q-231 10 -389 10q-199 0 -280 -93t-120 -384q-16 -130 -16 -219t16 -136q33 -95 156 -95q86 0 147.5 33.5t141.5 107.5l59 432h299l-115 -817h-227l-8 174q-184 -201 -426 -201 q-217 0 -308 179q-60 117 -60 326q0 109 16 241z" /> +<glyph unicode="H" horiz-adv-x="1400" d="M57 0l199 1413h313l-75 -541h491l76 541h311l-198 -1413h-312l88 629h-489l-90 -629h-314z" /> +<glyph unicode="I" horiz-adv-x="598" d="M57 0l199 1413h313l-198 -1413h-314z" /> +<glyph unicode="J" horiz-adv-x="747" d="M-33 18l53 207h84q139 0 156 115l152 1073h313l-158 -1122q-20 -154 -109 -235t-231 -81q-166 0 -260 43z" /> +<glyph unicode="K" horiz-adv-x="1290" d="M57 0l199 1413h313l-59 -416q-10 -78 -33 -151h115l422 567h360l-440 -582q-49 -67 -123 -108l-2 -8q49 -41 92 -129l293 -586h-344l-291 623h-117q2 -26 2 -52q0 -44 -6 -90l-67 -481h-314z" /> +<glyph unicode="L" horiz-adv-x="1081" d="M100 319l150 1094h313l-149 -1055q-1 -13 -2 -24q0 -34 15 -54q19 -26 79 -26h483l-6 -240q-201 -20 -594 -20q-151 0 -231 87q-62 68 -63 176q0 29 5 62z" /> +<glyph unicode="M" horiz-adv-x="1861" d="M33 0l235 1303q10 57 39 83.5t84 26.5h293q100 0 111 -106l79 -705q10 -84 11 -201h28q29 94 66 195l266 721q31 94 133 96h301q57 -1 86 -33q24 -27 24 -69q0 -9 -1 -19l-127 -1292h-295l123 1169h-35l-334 -880q-31 -94 -133 -94h-205q-106 0 -116 104l-101 870h-35 l-202 -1169h-295z" /> +<glyph unicode="N" horiz-adv-x="1468" d="M57 0l185 1307q14 106 118 106h172q45 0 70 -23.5t45 -74.5l273 -729q47 -125 73 -230h25q0 121 14 228l113 829h297l-185 -1307q-14 -106 -116 -106h-174q-47 0 -71 22.5t-46 75.5l-281 754q-39 102 -61 213h-21q-4 -125 -16 -221l-117 -844h-297z" /> +<glyph unicode="O" d="M111 719q57 408 207.5 564.5t476 156.5t450.5 -167q86 -115 86 -345q0 -105 -18 -234q-55 -414 -206 -567.5t-474 -153.5q-332 0 -455 164q-85 113 -85 345q0 106 18 237zM438 694q-19 -135 -19 -226q0 -96 21 -146q41 -96 199 -97q162 0 233.5 101.5t114.5 392.5 q20 139 20 232q0 95 -21 143q-42 94 -202 94q-164 0 -233.5 -99.5t-112.5 -394.5z" /> +<glyph unicode="P" horiz-adv-x="1247" d="M57 0l199 1413q188 18 520 19q286 0 392 -106q79 -78 78 -243q0 -57 -9 -125q-37 -270 -149.5 -360t-380.5 -90q-141 0 -265 18l-73 -526h-312zM473 748h213q127 0 175 45t69 188q6 42 6 75q0 63 -22 92q-34 44 -146 44l-231 -2z" /> +<glyph unicode="Q" d="M111 719q57 408 207.5 564.5t476 156.5t450.5 -167q86 -115 86 -345q0 -105 -18 -234q-55 -414 -206 -567.5t-474 -153.5q-332 0 -455 164q-85 113 -85 345q0 106 18 237zM391 -238l101 164q240 -96 598 -151l-119 -279q-330 92 -580 266zM438 694q-19 -135 -19 -226 q0 -97 21 -146q41 -97 199 -97q162 0 233.5 101.5t114.5 392.5q20 139 20 232q0 95 -21 143q-42 94 -202 94q-164 0 -233.5 -99.5t-112.5 -394.5z" /> +<glyph unicode="R" horiz-adv-x="1312" d="M57 0l199 1413q188 18 522 19q264 0 386 -98q96 -77 96 -239q0 -44 -7 -94q-20 -150 -93 -234.5t-224 -102.5l-2 -13q141 -33 170 -217l74 -434h-320l-65 438q-8 66 -35 89.5t-84 23.5l-234 2l-78 -553h-305zM475 793h221q123 0 175.5 45t70.5 168q5 32 5 58q1 60 -25 88 q-36 40 -150 40l-242 -2z" /> +<glyph unicode="S" horiz-adv-x="1183" d="M31 29l32 223q434 -10 441 -10q143 0 194.5 27.5t65.5 117.5q2 20 2 36q0 41 -14 61q-20 26 -90 53l-269 108q-154 63 -207 163q-39 74 -39 176q0 37 5 77q31 225 156.5 302t391.5 77q264 0 461 -58l-31 -211q-184 6 -438 7h-21q-108 0 -149 -20q-45 -22 -59 -116 q-3 -22 -3 -40q0 -38 14 -57q22 -27 101 -58l254 -99q161 -63 213 -158q37 -67 37 -171q0 -42 -6 -90q-31 -233 -150.5 -314.5t-406.5 -81.5q-238 0 -485 56z" /> +<glyph unicode="T" horiz-adv-x="1216" d="M111 1159l34 254h1153l-34 -254h-422l-162 -1159h-313l163 1159h-419z" /> +<glyph unicode="U" horiz-adv-x="1386" d="M125 569l119 844h313l-121 -856q-12 -80 -12 -139q0 -84 24 -124q41 -70 185 -69q147 0 212.5 74t94.5 270l119 844h313l-123 -856q-47 -324 -184 -454t-432 -130q-301 -1 -426 139q-93 104 -93 306q0 70 11 151z" /> +<glyph unicode="V" horiz-adv-x="1296" d="M125 1413h315l111 -1016q8 -82 12 -166h51q18 74 56 168l397 1014h330l-576 -1333q-33 -80 -112 -80h-283q-39 0 -67.5 26.5t-32.5 63.5z" /> +<glyph unicode="W" horiz-adv-x="1980" d="M162 1413h311v-987q0 -35 -3 -109.5t-3 -95.5h41q10 43 59 217l273 885q27 90 118 90h265q43 0 70.5 -29.5t27.5 -72.5l39 -887q3 -89 3 -149q0 -30 -1 -54h43q31 139 51 213l270 979h318l-414 -1333q-25 -80 -114 -80h-295q-41 0 -72 27.5t-33 66.5l-26 914v180h-39 q-27 -113 -47 -182l-281 -924q-25 -82 -117 -82h-297q-41 0 -72.5 26.5t-31.5 65.5z" /> +<glyph unicode="X" horiz-adv-x="1306" d="M-66 0l472 725l-240 688h309l184 -584h27l363 584h327l-438 -688l264 -725h-313l-205 629h-22l-383 -629h-345z" /> +<glyph unicode="Y" horiz-adv-x="1239" d="M113 1413h313l160 -524q23 -90 26 -182h23q20 94 74 186l307 520h336l-600 -952l-64 -461h-315l67 477z" /> +<glyph unicode="Z" horiz-adv-x="1183" d="M-2 0l31 240l788 934h-639l33 239h993l-35 -239l-786 -934h672l-33 -240h-1024z" /> +<glyph unicode="[" horiz-adv-x="704" d="M45 -174l223 1595q10 72 56.5 112t115.5 40h336l-26 -189h-156q-47 0 -53 -45l-205 -1452q-4 -37 29 -37h170l-27 -188h-320q-166 0 -143 164z" /> +<glyph unicode="\" horiz-adv-x="1112" d="M152 1413h227l592 -1560h-228z" /> +<glyph unicode="]" horiz-adv-x="704" d="M-66 -338l25 188h156q47 0 53 46l205 1452q6 37 -29 36h-168l27 189h317q70 0 113 -47t33 -117l-226 -1595q-10 -70 -56 -111t-116 -41h-334z" /> +<glyph unicode="^" horiz-adv-x="944" d="M104 823l363 461h219l242 -461l-123 -65l-232 340h-16l-338 -340z" /> +<glyph unicode="_" horiz-adv-x="1142" d="M4 -199l29 199h909l-29 -199h-909z" /> +<glyph unicode="`" horiz-adv-x="722" d="M152 1307l135 198l418 -303l-101 -129z" /> +<glyph unicode="a" horiz-adv-x="1208" d="M76 524q20 139 57 234.5t82 151t116.5 84t138.5 36.5t169 8q109 0 260.5 -18.5t241.5 -42.5l-137 -977h-236l2 182q-156 -201 -414 -207h-17q-175 0 -239 124q-40 79 -41 219q0 90 17 206zM368 271q14 -50 79 -50h10q135 2 303 191l57 403h-155q-147 0 -200.5 -51 t-80.5 -244q-18 -127 -18 -194q0 -36 5 -55z" /> +<glyph unicode="b" horiz-adv-x="1212" d="M43 53l195 1381h301l-45 -351q-16 -131 -58 -239q200 192 398 192h2q184 0 252 -122q41 -75 41 -215q0 -89 -17 -203q-39 -287 -160 -405t-366 -118q-123 0 -286 22.5t-257 57.5zM369 201q131 -4 157 -4q150 2 201 59t80 260q14 105 14 165q-1 41 -7 61q-16 50 -87 49 q-119 0 -297 -150z" /> +<glyph unicode="c" horiz-adv-x="1038" d="M68 518q41 285 163.5 402.5t393.5 117.5q240 0 387 -65l-41 -185q-238 4 -305 5q-141 0 -202 -58.5t-81 -230.5q-9 -67 -8 -116q0 -80 23 -114q38 -52 173 -53q191 1 320 19l20 -199q-156 -66 -393 -66q-274 0 -382 127q-79 92 -79 270q0 67 11 146z" /> +<glyph unicode="d" horiz-adv-x="1212" d="M74 524q23 162 63.5 266.5t103 156.5t129 71.5t158.5 19.5q162 0 326 -26q4 127 14 198l37 224h303l-202 -1434h-238v184q-205 -209 -420 -209q-170 0 -242 129q-46 83 -46 235q0 82 14 185zM370 290q14 -59 84 -59h4q74 2 141 38t157 116l61 440h-162q-150 0 -198.5 -52 t-75.5 -253q-16 -108 -16 -171q0 -37 5 -59z" /> +<glyph unicode="e" horiz-adv-x="1146" d="M70 526q37 295 168 403.5t417 108.5q265 0 361 -88q76 -70 76 -192q0 -32 -5 -68q-20 -143 -116.5 -204.5t-296.5 -75.5l-299 -23q2 -100 50 -135t153 -35q199 0 389 23l20 -193q-170 -72 -444 -72q-289 -1 -397 135q-83 104 -84 293q0 58 8 123zM393 565l236 23 q82 6 119.5 32.5t46.5 98.5q1 11 1 20q0 50 -27 64q-28 14 -112 14h-22q-119 0 -167 -50t-75 -202z" /> +<glyph unicode="f" horiz-adv-x="821" d="M-221 -377l47 201h131q82 0 118 27.5t48 107.5l121 848h-174l24 192l178 11l23 157q43 307 354 308q203 0 332 -21l-49 -201h-180q-80 0 -116 -27.5t-48 -107.5l-15 -108h277l-27 -203h-280l-129 -899q-43 -307 -355 -307q-88 0 -280 22z" /> +<glyph unicode="g" horiz-adv-x="1214" d="M18 -367l23 179q70 -2 289 -2q328 0 389 186q8 23 21.5 71t27.5 88t37 72q-76 -111 -191.5 -176t-257.5 -67h-11q-175 0 -241 122q-43 78 -43 218q0 88 17 200q20 139 56 235.5t77 151t104.5 84t121 36.5t145.5 7q315 0 565 -61l-125 -887q-33 -272 -189.5 -392 t-437.5 -120q-240 0 -377 55zM372 272q14 -51 79 -51h10q137 6 303 191l59 403h-164q-150 0 -197.5 -52t-76.5 -243q-19 -126 -19 -193q0 -36 6 -55z" /> +<glyph unicode="h" horiz-adv-x="1220" d="M39 0l201 1434h303l-49 -357q-18 -127 -54 -248q233 209 430 209q139 0 208 -74q53 -57 53 -151q0 -29 -5 -61l-106 -752h-301l94 670q3 26 3 45q0 31 -8 45q-13 22 -58 22q-68 0 -140.5 -37.5t-183.5 -123.5l-84 -621h-303z" /> +<glyph unicode="i" horiz-adv-x="563" d="M47 0l141 1010h301l-141 -1010h-301zM221 1264l15 108q8 84 96 84h127q87 0 87 -77q0 -8 -1 -17l-15 -111q-12 -82 -98 -82h-129q-83 0 -83 75q0 9 1 20z" /> +<glyph unicode="j" horiz-adv-x="565" d="M-117 -266q147 143 170 319l137 957h302l-138 -969q-18 -141 -99 -262t-206 -185zM219 1264l17 108q8 84 96 84h127q85 0 85 -74q0 -10 -1 -20l-15 -111q-12 -82 -98 -82h-127q-85 0 -85 75q0 9 1 20z" /> +<glyph unicode="k" horiz-adv-x="1153" d="M39 0l201 1434h303l-84 -617q-16 -121 -74 -250q158 82 275.5 198t150.5 245h309q-76 -287 -332 -465q47 -49 84 -127l187 -418h-316l-178 418q-76 -35 -174 -74l-49 -344h-303z" /> +<glyph unicode="l" horiz-adv-x="665" d="M76 260l166 1174h301l-158 -1110q-2 -16 -2 -29q-1 -32 13 -47q20 -21 83 -21h88l15 -215q-72 -37 -236 -37q-141 0 -214 76q-59 62 -59 161q0 23 3 48z" /> +<glyph unicode="m" horiz-adv-x="1794" d="M39 0l141 1010h236v-183q111 111 206 161t199 50q111 0 174.5 -49t73.5 -139q190 188 381 188q140 0 204 -76q50 -60 50 -155q0 -26 -4 -55l-105 -752h-301l95 670q2 19 2 35q-1 37 -13 53q-18 24 -63 24q-51 0 -108.5 -32.5t-155.5 -120.5l-88 -629h-291l92 670 q4 23 4 41q0 29 -10 45q-16 26 -66 26q-53 0 -111.5 -31.5t-152.5 -113.5l-88 -637h-301z" /> +<glyph unicode="n" horiz-adv-x="1220" d="M39 0l141 1010h238v-201q236 229 461 229q129 0 199 -74q53 -57 53 -152q0 -28 -5 -60l-106 -752h-301l92 662q4 30 4 52q0 31 -8 45q-13 23 -57 23h-7q-115 -2 -315 -159l-86 -623h-303z" /> +<glyph unicode="o" horiz-adv-x="1200" d="M68 516q41 287 169.5 404.5t407.5 117.5q281 0 391 -127q81 -93 81 -273q0 -67 -11 -146q-39 -285 -169 -402t-405 -117q-279 0 -392 127q-83 93 -83 274q0 65 11 142zM383 492q-11 -79 -11 -134q0 -68 17 -100q31 -58 150 -57q123 0 176 64.5t80 250.5q12 81 12 137 q0 67 -17 99q-32 60 -147 59q-125 0 -179 -63.5t-81 -255.5z" /> +<glyph unicode="p" horiz-adv-x="1214" d="M-16 -389l196 1399h240l-4 -195q90 92 202.5 155.5t221.5 63.5q178 0 246 -125q41 -78 41 -223q0 -88 -15 -201q-18 -131 -50 -224t-73 -148.5t-99.5 -87t-116.5 -42t-138 -10.5q-150 0 -301 27q0 -96 -15 -190l-32 -199h-303zM371 184h155q156 0 204 52.5t75 252.5 q15 119 15 185q0 42 -6 62q-15 55 -85 55q-53 0 -135 -45.5t-164 -120.5z" /> +<glyph unicode="q" horiz-adv-x="1206" d="M72 516q43 297 157.5 409.5t360.5 112.5q131 0 292.5 -22.5t256.5 -57.5l-193 -1347h-301l45 311q16 137 55 238q-193 -184 -391 -185q-176 0 -250 125q-47 80 -47 229q0 83 15 187zM370 288q17 -57 91 -57q72 0 136.5 36t158.5 116l59 428q-68 4 -162 4 q-145 -4 -195 -56t-79 -247q-15 -101 -15 -162q0 -40 6 -62z" /> +<glyph unicode="r" horiz-adv-x="866" d="M39 0l141 1010h236v-191q231 219 430 219h61l-67 -280h-74q-63 0 -134 -28t-204 -97l-86 -633h-303z" /> +<glyph unicode="s" horiz-adv-x="1073" d="M18 14l29 195q74 -4 322 -4q176 0 233 12t66 53q4 31 -15.5 45.5t-77.5 36.5q-16 6 -26 10l-244 101q-123 49 -172 125q-38 59 -38 141q0 23 3 49q16 138 122 200q103 60 317 60h14q279 -4 467 -41l-29 -192q-393 6 -399 6q-119 0 -158 -9t-45 -44q-4 -35 19.5 -52.5 t91.5 -43.5l247 -99q125 -49 177 -119q40 -54 39 -136q0 -24 -3 -50q-12 -90 -48 -147.5t-103.5 -86t-145 -38t-198.5 -9.5q-184 0 -445 37z" /> +<glyph unicode="t" horiz-adv-x="839" d="M66 807l24 192l186 11l41 282h297l-39 -282h279l-29 -203h-280l-68 -483q-3 -18 -2 -32q-1 -31 11 -45q18 -20 79 -20h135l15 -213q-109 -39 -283 -39q-142 0 -212 79q-54 61 -54 159q0 28 4 59l78 535h-182z" /> +<glyph unicode="u" horiz-adv-x="1202" d="M70 258l104 752h303l-96 -670q-3 -19 -2 -35q-1 -34 11 -52q18 -26 67 -26q66 0 128 35t167 123l86 625h299l-140 -1010h-233v190q-225 -217 -436 -217q-145 0 -212 76q-51 58 -51 149q0 28 5 60z" /> +<glyph unicode="v" horiz-adv-x="1161" d="M76 1010h323l82 -805h25q41 0 64.5 17.5t54.5 72.5q53 100 108 278q53 165 94 437h324q-43 -254 -141 -516q-74 -201 -158 -334q-57 -90 -120.5 -125t-176.5 -35h-231q-35 0 -60.5 21.5t-30.5 56.5z" /> +<glyph unicode="w" horiz-adv-x="1818" d="M82 1012h311l70 -803h22q59 0 99 102q35 82 67 236q27 117 64 389q12 74 86 74h284q33 0 54.5 -20.5t23.5 -51.5l56 -729h20q29 0 46.5 26.5t35.5 77.5q47 100 94 262q55 201 80 435h307q-51 -285 -129 -510q-70 -209 -139 -326q-51 -96 -114.5 -135t-184.5 -39h-150 q-37 0 -61.5 22.5t-26.5 57.5l-47 745h-24q-12 -141 -54 -338q-41 -172 -88 -274q-49 -129 -125.5 -171t-197.5 -42h-164q-37 0 -61.5 22.5t-28.5 57.5z" /> +<glyph unicode="x" horiz-adv-x="1150" d="M-66 0l385 520l-215 490h289l160 -389h25l278 389h313l-358 -492l236 -518h-293l-181 424h-16l-301 -424h-322z" /> +<glyph unicode="y" horiz-adv-x="1183" d="M72 1010h325l97 -772q4 -33 34 -33h82l8 18q162 336 236 787h320q-43 -233 -128 -476t-180 -417q-154 -279 -329 -398.5t-416 -138.5l-37 187q141 37 230 83t171 150h-120q-49 0 -83 28.5t-44 73.5z" /> +<glyph unicode="z" horiz-adv-x="1069" d="M-2 0l29 217h-2l628 578h-534l28 215h887l-26 -215l-627 -578h553l-29 -217h-907z" /> +<glyph unicode="{" horiz-adv-x="698" d="M66 575l24 197q43 12 58.5 18.5t35 22.5t27.5 41t14 68l51 370q48 334 476 281l-17 -187q-88 0 -128 -27.5t-48 -103.5l-45 -311q-16 -135 -65.5 -194.5t-180.5 -79.5q115 -37 155 -99.5t23 -173.5l-59 -424q-10 -70 17.5 -97.5t115.5 -27.5l-10 -186q-227 -29 -331.5 52 t-80.5 239l68 489q2 14 2 26.5t1 22t-3 17.5t-5 13t-9.5 11.5t-10.5 9.5t-15 9t-16.5 7t-21.5 8t-22 9z" /> +<glyph unicode="|" horiz-adv-x="532" d="M27 -346l272 1945h215l-274 -1945h-213z" /> +<glyph unicode="}" horiz-adv-x="700" d="M-57 -338l16 186q90 0 128 27t48 102l60 431q18 115 70 173t186 93q-115 20 -153 84.5t-17 195.5l45 312q10 70 -18 95t-118 25l11 187q231 31 332.5 -52t80.5 -239l-51 -373q-2 -18 -3 -31.5t-2 -25.5t1 -20.5t3 -14.5t8.5 -12t9.5 -9t13 -7.5t16 -6.5t21.5 -7t24.5 -7 l-26 -197q-55 -20 -76 -29.5t-40 -37t-26 -74.5l-69 -487q-23 -162 -134.5 -236t-340.5 -45z" /> +<glyph unicode="~" horiz-adv-x="1046" d="M104 451q-2 147 52.5 220.5t136.5 71.5q72 -2 227.5 -51t179.5 -53q51 -8 74 15.5t31 82.5l135 -10q2 -145 -50 -220t-138 -71q-78 2 -231.5 51.5t-178.5 53.5q-51 8 -72.5 -17t-29.5 -86z" /> +<glyph unicode="¡" horiz-adv-x="579" d="M4 -379l76 547l90 422h238l-29 -422l-76 -547h-299zM182 838l13 98q14 102 116 102h66q115 0 100 -112l-14 -99q-12 -100 -115 -100h-65q-117 0 -101 111z" /> +<glyph unicode="¢" horiz-adv-x="1060" d="M98 723q39 279 156 396.5t369 123.5l43 170h227l-47 -184q114 -18 188 -51l-43 -185q-233 4 -301 4q-139 0 -197.5 -58t-80.5 -230q-23 -178 15 -230.5t171 -52.5q188 0 317 18l19 -198q-137 -55 -340 -64l-45 -182h-225l49 197q-174 35 -242 161.5t-33 364.5z" /> +<glyph unicode="£" horiz-adv-x="1189" d="M18 0l31 256q193 82 211 330l6 80h-157l20 159h147l17 236q18 225 122.5 301t329.5 76q195 -1 426 -21l-30 -233q-88 2 -363 2q-96 0 -136 -31t-48 -117l-12 -213h364l-31 -159h-344l-6 -93q-8 -127 -54 -199.5t-140 -140.5q51 18 149 19h541l-35 -252h-1008z" /> +<glyph unicode="¤" horiz-adv-x="1198" d="M74 373l155 139q-47 102 -28 221q14 127 90 228l-133 147l135 125l135 -154q102 57 225 58q133 0 228 -64l155 139l121 -137l-160 -141q47 -100 29 -225q-14 -125 -88 -224l137 -147l-135 -123l-137 152q-100 -59 -231.5 -59.5t-225.5 65.5l-151 -135zM373 719 q-14 -113 44 -178.5t163 -65.5q113 0 187.5 67.5t86.5 184.5q14 111 -44 176.5t-165 65.5q-113 0 -185.5 -67.5t-86.5 -182.5z" /> +<glyph unicode="¥" horiz-adv-x="1337" d="M137 272l25 193h966l-26 -193h-330l-37 -272h-315l41 272h-324zM162 1413h313l158 -514q23 -80 26 -182h25q14 80 72 186l307 510h334l-443 -696h207l-26 -193h-963l25 193h211z" /> +<glyph unicode="¦" horiz-adv-x="534" d="M29 -346l114 819h213l-114 -819h-213zM186 780l117 819h213l-117 -819h-213z" /> +<glyph unicode="§" horiz-adv-x="1112" d="M-6 -342l35 217q213 -8 329 -8q123 0 176.5 16.5t63.5 75.5q8 45 -10.5 72.5t-65.5 54.5l-250 150q-150 82 -174 202.5t58 296.5l213 -6q-23 -121 -5.5 -177t105.5 -112l289 -178q57 -37 90 -66.5t59.5 -101t12.5 -170.5q-12 -92 -48 -150.5t-99.5 -89t-136.5 -41 t-183 -10.5q-248 0 -459 25zM174 1149q23 172 137.5 231.5t329.5 59.5q256 0 461 -25l-35 -217q-92 6 -346 6q-121 2 -169 -14t-56 -72q-6 -43 14 -73.5t72 -61.5l243 -145q147 -86 171 -208t-58 -296l-211 6q23 119 3.5 179.5t-105.5 115.5l-287 184q-59 39 -95 74 t-58.5 101.5t-10.5 154.5z" /> +<glyph unicode="¨" horiz-adv-x="866" d="M244 1257l20 127q8 66 74 66h102q66 0 58 -64l-21 -129q-6 -61 -67 -61h-109q-63 0 -57 61zM602 1257l21 129q8 64 71 64h105q66 0 57 -64l-20 -129q-6 -61 -68 -61h-109q-66 0 -57 61z" /> +<glyph unicode="©" horiz-adv-x="1660" d="M106 719q39 322 258 521.5t549 199.5q336 0 523.5 -206t148.5 -540q-37 -322 -257 -521.5t-554 -199.5q-338 0 -523 207t-145 539zM256 694q-29 -264 111.5 -422.5t402.5 -158.5q268 0 451.5 165.5t214.5 440.5q29 260 -109.5 420.5t-404.5 160.5q-272 0 -454.5 -166.5 t-211.5 -439.5zM459 721q31 236 132 325t331 89q137 0 260 -31l-25 -162q-180 4 -237 4q-123 0 -169 -43t-65 -196q-18 -139 8.5 -185.5t122.5 -46.5q166 -4 279 8l12 -164q-125 -37 -277 -36q-242 0 -323.5 97t-48.5 341z" /> +<glyph unicode="ª" horiz-adv-x="917" d="M133 915q12 94 40 159t58.5 100.5t82 54t94.5 22.5t112 4q201 4 359 -41l-93 -651h-176v111q-104 -123 -270 -125q-135 -4 -184.5 84t-22.5 282zM354.5 757.5q10.5 -32.5 55.5 -30.5q84 0 196 119l37 252h-104q-94 0 -127 -31t-52 -156q-16 -121 -5.5 -153.5z" /> +<glyph unicode="«" horiz-adv-x="1050" d="M57 487l4 66l361 399l143 -106l-250 -332l181 -346l-154 -102zM481 487l4 66l361 399l145 -106l-250 -332l179 -346l-154 -102z" /> +<glyph unicode="¬" horiz-adv-x="1185" d="M102 508l33 223h940l-65 -455h-234l33 232h-707z" /> +<glyph unicode="­" horiz-adv-x="847" d="M92 422l29 199h610l-29 -199h-610z" /> +<glyph unicode="®" horiz-adv-x="1075" d="M137 995q25 203 159 324t343 121q193 0 311.5 -126t93.5 -341q-25 -205 -157.5 -325t-339.5 -120q-205 0 -320.5 131.5t-89.5 335.5zM223 979q-18 -174 74 -272.5t254 -98.5q174 0 281.5 103.5t125.5 283.5q16 170 -74.5 266.5t-250.5 96.5q-176 0 -282.5 -103.5 t-127.5 -275.5zM354 752l68 477q70 6 213 6q104 0 155.5 -32t38.5 -118q-10 -90 -108 -110l-2 -4q43 -12 55 -76l29 -143h-133l-23 145q-8 37 -47 37h-92l-25 -182h-129zM520 1018h84q51 2 70.5 13t25.5 52q4 37 -8 48.5t-55 11.5h-100z" /> +<glyph unicode="¯" horiz-adv-x="819" d="M205 1225l26 194h613l-27 -194h-612z" /> +<glyph unicode="°" horiz-adv-x="710" d="M156 1178q10 115 90 186.5t203 71.5q127 0 202.5 -81t61.5 -200q-12 -117 -93 -188.5t-204 -71.5q-127 0 -200 81t-60 202zM315 1171q-6 -57 25 -92t86 -35q53 0 88 32t39 87q4 53 -25 88t-86 35q-55 0 -89 -30.5t-38 -84.5z" /> +<glyph unicode="±" horiz-adv-x="1169" d="M47 92l33 221h932l-33 -221h-932zM127 651l33 223h352l35 246h225l-35 -246h355l-33 -223h-354l-35 -243h-224l35 243h-354z" /> +<glyph unicode="²" horiz-adv-x="845" d="M121 737l18 133q8 70 35 93l223 190q174 139 193 207q8 29 -11.5 40t-66.5 11q-116 0 -274 -8v170q139 27 294.5 26.5t236.5 -46.5t65 -175q-8 -66 -44 -120t-124 -128l-242 -198q63 14 123 8h248l-29 -203h-645z" /> +<glyph unicode="³" horiz-adv-x="806" d="M119 743l18 170q246 -4 252 -4q145 8 160 105q8 45 -12.5 65.5t-77.5 20.5h-183l21 153h176q59 0 84 23.5t29 73.5q4 39 -15.5 52t-89.5 13q-57 0 -241 -4v168q143 23 282 23q164 0 229.5 -50.5t55.5 -156.5q-8 -78 -47 -141.5t-119 -69.5l-2 -4q166 -25 137 -217 q-16 -113 -97 -176.5t-267 -65.5q-106 -2 -293 22z" /> +<glyph unicode="´" horiz-adv-x="722" d="M197 1204l446 307l117 -219l-488 -219z" /> +<glyph unicode="¶" horiz-adv-x="1210" d="M100 934q39 279 197 391.5t496 112.5q209 0 356 -35l-197 -1403h-198l174 1251q-45 2 -121 2l-238 -1683h-198l116 842q-236 27 -328.5 154.5t-58.5 367.5z" /> +<glyph unicode="·" horiz-adv-x="514" d="M94 485l15 99q12 100 116 100h74q119 0 100 -113l-12 -96q-12 -102 -115 -102h-75q-119 0 -103 112z" /> +<glyph unicode="¸" horiz-adv-x="507" d="M-82 -485l41 131q76 -2 132 28.5t69 89.5q4 25 -15.5 32t-101.5 7l31 119q160 18 230.5 -10.5t51.5 -132.5q-25 -147 -146.5 -218t-291.5 -46z" /> +<glyph unicode="¹" horiz-adv-x="614" d="M166 1503l233 82h230l-119 -848h-229l79 559q12 74 23 101l-211 -49z" /> +<glyph unicode="º" horiz-adv-x="894" d="M127 911q27 193 115 271t278 78q203 0 280 -85t48 -286q-27 -190 -114 -266t-279 -76q-199 0 -277 84t-51 280zM354 889q-14 -102 6.5 -141t98.5 -39t111.5 42t50.5 160q14 113 -6.5 149t-96.5 36q-82 0 -114.5 -41t-49.5 -166z" /> +<glyph unicode="»" horiz-adv-x="1054" d="M35 168l252 332l-181 346l154 102l285 -422l-4 -65l-361 -398zM461 168l250 332l-181 346l154 102l285 -422l-4 -65l-361 -398z" /> +<glyph unicode="¼" horiz-adv-x="1849" d="M156 1329l233 84h232l-119 -848h-232l78 561q14 80 23 103l-209 -49zM221 0l1051 1413h203l-1051 -1413h-203zM964 221q-26 45 9 109l301 518h215l-268 -479q-14 -33 18 -33h197l28 209l58 137h174l-49 -346h104l-20 -141l-107 -19l-25 -176h-208l22 176h-360 q-63 0 -89 45z" /> +<glyph unicode="½" horiz-adv-x="1859" d="M156 1329l233 84h232l-119 -848h-234l80 561q6 55 23 103l-209 -49zM211 0l1049 1413h202l-1050 -1413h-201zM1020 0l18 127q6 63 37 94l234 189q170 133 198 206q12 33 -8 45.5t-74 12.5q-98 0 -286 -6v168q147 27 299 26q182 0 263 -47t60 -182q-16 -115 -172 -242 l-262 -201q47 10 125 11l277 -4l-27 -197h-682z" /> +<glyph unicode="¾" horiz-adv-x="2007" d="M92 569l14 168q121 -6 263 -6q90 0 128 25.5t46 85.5q6 41 -13.5 61.5t-87.5 22.5h-188l20 151h183q113 0 121 99q6 41 -13.5 54t-87.5 13q-39 0 -128 -1t-136 -1l-2 164q145 23 293 22q184 0 251.5 -46t51.5 -162q-22 -185 -182 -203l-11 -6q98 -12 134 -68.5t24 -155.5 q-16 -125 -95 -183t-261 -58q-123 0 -324 24zM406 0l1048 1413h203l-1049 -1413h-202zM1125.5 222q-25.5 46 9.5 110l299 518h217l-271 -479q-14 -33 19 -33h196l29 207l57 139h174l-49 -346h105l-21 -141l-106 -19l-25 -176h-209l25 174h-361q-63 0 -88.5 46z" /> +<glyph unicode="¿" horiz-adv-x="1042" d="M-41 -88q10 82 55 150.5t105.5 121t122 106.5t113 131t71.5 169h242q-10 -102 -49 -189.5t-89.5 -145.5t-99.5 -107.5t-89 -98.5t-52 -92q-16 -66 17.5 -96.5t131.5 -30.5q264 0 420 10v-207q-16 -2 -62 -11t-60.5 -11t-53.5 -8t-64.5 -8.5t-66.5 -5.5t-86 -4t-98 -1 q-221 0 -324.5 87t-83.5 241zM442 842l13 100q12 100 114 100h66q119 0 100 -112l-14 -99q-12 -100 -115 -100h-65q-115 0 -99 111z" /> +<glyph unicode="À" horiz-adv-x="1325" d="M-80 0l594 1337q29 76 113 76h295q39 0 68.5 -25.5t31.5 -62.5l221 -1325h-311l-47 369h-488l-151 -369h-326zM399 1714l136 199l417 -303l-100 -129zM500 616h352l-55 428q-6 45 -11 138h-59q-37 -104 -49 -135z" /> +<glyph unicode="Á" horiz-adv-x="1325" d="M-80 0l594 1337q29 76 113 76h295q39 0 68.5 -25.5t31.5 -62.5l221 -1325h-311l-47 369h-488l-151 -369h-326zM500 616h352l-55 428q-6 45 -11 138h-59q-37 -104 -49 -135zM635 1610l446 309l117 -221l-487 -217z" /> +<glyph unicode="Â" horiz-adv-x="1325" d="M-80 0l594 1337q29 76 113 76h295q39 0 68.5 -25.5t31.5 -62.5l221 -1325h-311l-47 369h-488l-151 -369h-326zM418 1595l305 273h207l260 -285l-92 -106l-269 200h-16l-319 -196zM500 616h352l-55 428q-6 45 -11 138h-59q-37 -104 -49 -135z" /> +<glyph unicode="Ã" horiz-adv-x="1325" d="M-80 0l594 1337q29 76 113 76h295q39 0 68.5 -25.5t31.5 -62.5l221 -1325h-311l-47 369h-488l-151 -369h-326zM442 1556q0 143 54.5 216t138.5 69q68 -4 171 -49t138 -51q97 -17 109 94l129 -10q2 -141 -50.5 -214t-138.5 -69q-74 4 -180 51t-135 52q-53 8 -75.5 -17.5 t-31.5 -83.5zM500 616h352l-55 428q-6 45 -11 138h-59q-37 -104 -49 -135z" /> +<glyph unicode="Ä" horiz-adv-x="1325" d="M-80 0l594 1337q29 76 113 76h295q39 0 68.5 -25.5t31.5 -62.5l221 -1325h-311l-47 369h-488l-151 -369h-326zM500 616h352l-55 428q-6 45 -11 138h-59q-37 -104 -49 -135zM510 1622l20 129q8 63 74 64h101q68 0 59 -62l-21 -129q-8 -61 -67 -61h-109q-66 0 -57 59z M868 1622l21 129q8 63 72 64h102q68 0 59 -62l-20 -129q-9 -61 -68 -61h-108q-66 0 -58 59z" /> +<glyph unicode="Å" horiz-adv-x="1325" d="M-80 0l594 1337q29 76 113 76h295q39 0 68.5 -25.5t31.5 -62.5l221 -1325h-311l-47 369h-488l-151 -369h-326zM500 616h352l-55 428q-6 45 -11 138h-59q-37 -104 -49 -135zM580 1706q10 94 77.5 157.5t171.5 63.5q106 0 175 -69.5t55 -174.5q-12 -94 -79 -156.5 t-171 -62.5q-109 0 -175.5 70t-53.5 172zM717 1698q-4 -51 22.5 -80t71.5 -29q47 0 77 31t34 80q4 47 -23 74.5t-72 27.5t-75.5 -29.5t-34.5 -74.5z" /> +<glyph unicode="Æ" horiz-adv-x="1906" d="M-104 0l753 1149q98 154 225 210t392 56q453 0 665 -16l-39 -230h-497q-57 0 -88 -24.5t-39 -85.5l-31 -217h532l-26 -215h-537l-39 -277q-6 -59 13.5 -82.5t79.5 -23.5h501l-8 -230q-195 -20 -604 -20q-147 0 -222 86t-55 231l11 70h-416l-246 -381h-325zM627 629h291 l63 458q10 80 61 136h-14q-47 -45 -96 -119z" /> +<glyph unicode="Ç" horiz-adv-x="1193" d="M111 719q57 410 204.5 564.5t475.5 154.5q236 0 421 -49l-41 -232q-166 10 -393 10q-109 0 -170 -34.5t-103 -136t-69 -302.5q-37 -264 2 -356t191 -92q244 -2 428 18l12 -233q-184 -55 -451 -56q-328 0 -445.5 173.5t-61.5 570.5zM279 -526l43 131q76 -2 131 28.5 t67 90.5q4 25 -15.5 31.5t-101.5 6.5l31 119q162 18 231.5 -10.5t53.5 -132.5q-25 -147 -147.5 -218t-292.5 -46z" /> +<glyph unicode="È" horiz-adv-x="1171" d="M92 334l113 807q18 131 105 204.5t233 73.5q446 0 651 -22l-39 -230h-528q-59 0 -85 -23.5t-34 -86.5l-31 -213h557l-28 -221h-560l-36 -273q-8 -57 13 -80.5t79 -23.5h522l-8 -232q-180 -20 -613 -20q-172 0 -251.5 91t-59.5 249zM379 1739l135 198l416 -305l-99 -127z " /> +<glyph unicode="É" horiz-adv-x="1171" d="M92 334l113 807q18 131 105 204.5t233 73.5q446 0 651 -22l-39 -230h-528q-59 0 -85 -23.5t-34 -86.5l-31 -213h557l-28 -221h-560l-36 -273q-8 -57 13 -80.5t79 -23.5h522l-8 -232q-180 -20 -613 -20q-172 0 -251.5 91t-59.5 249zM614 1634l447 310l117 -222l-488 -217z " /> +<glyph unicode="Ê" horiz-adv-x="1171" d="M92 334l113 807q18 131 105 204.5t233 73.5q446 0 651 -22l-39 -230h-528q-59 0 -85 -23.5t-34 -86.5l-31 -213h557l-28 -221h-560l-36 -273q-8 -57 13 -80.5t79 -23.5h522l-8 -232q-180 -20 -613 -20q-172 0 -251.5 91t-59.5 249zM397 1618l305 272h207l260 -282 l-92 -109l-268 203h-16l-320 -199z" /> +<glyph unicode="Ë" horiz-adv-x="1171" d="M92 334l113 807q18 131 105 204.5t233 73.5q446 0 651 -22l-39 -230h-528q-59 0 -85 -23.5t-34 -86.5l-31 -213h557l-28 -221h-560l-36 -273q-8 -57 13 -80.5t79 -23.5h522l-8 -232q-180 -20 -613 -20q-172 0 -251.5 91t-59.5 249zM489 1647l21 129q8 63 74 63h100 q68 0 59 -63l-20 -129q-9 -60 -68 -60h-108q-66 0 -58 60zM848 1647l20 129q8 63 72 63h102q68 0 60 -63l-21 -127q-8 -62 -67 -62h-109q-66 0 -57 60z" /> +<glyph unicode="Ì" horiz-adv-x="598" d="M35 1714l135 199l418 -303l-101 -129zM57 0l199 1413h313l-198 -1413h-314z" /> +<glyph unicode="Í" horiz-adv-x="598" d="M57 0l199 1413h313l-198 -1413h-314zM270 1610l449 309l115 -221l-488 -217z" /> +<glyph unicode="Î" horiz-adv-x="598" d="M55 1595l303 273h207l260 -285l-92 -106l-268 200h-16l-318 -196zM57 0l199 1413h313l-198 -1413h-314z" /> +<glyph unicode="Ï" horiz-adv-x="598" d="M57 0l199 1413h313l-198 -1413h-314zM145 1622l21 129q8 64 74 64h102q37 0 49 -14.5t8 -47.5l-20 -129q-6 -61 -68 -61h-108q-63 0 -58 59zM504 1622l20 129q9 64 72 64h104q66 0 58 -62l-21 -129q-6 -61 -67 -61h-109q-63 0 -57 59z" /> +<glyph unicode="Ð" horiz-adv-x="1388" d="M39 668l20 155h115l82 590q266 18 506 19q233 0 362 -66t175.5 -227.5t7.5 -444.5q-33 -229 -83 -368.5t-139.5 -216t-200 -102t-292.5 -25.5q-231 0 -535 18l95 668h-113zM401 229q35 0 98.5 -1t88.5 -1q98 0 156.5 17.5t107.5 70t76.5 148.5t50.5 256q23 154 24 242 t-27 141t-79 69.5t-145 16.5l-215 -2l-52 -363h250l-20 -155h-252z" /> +<glyph unicode="Ñ" horiz-adv-x="1468" d="M57 0l185 1307q14 106 118 106h172q45 0 70 -23.5t45 -74.5l273 -729q47 -125 73 -230h25q0 121 14 228l113 829h297l-185 -1307q-14 -106 -116 -106h-174q-47 0 -71 22.5t-46 75.5l-281 754q-39 102 -61 213h-21q-4 -125 -16 -221l-117 -844h-297zM518 1556 q0 143 53.5 216t137.5 69q70 -4 172 -49t137 -51q55 -8 78.5 15.5t31.5 78.5l127 -10q2 -141 -50 -214t-138 -69q-74 4 -179.5 51t-133.5 52q-53 8 -77 -18t-32 -83z" /> +<glyph unicode="Ò" d="M111 719q57 408 207.5 564.5t476 156.5t450.5 -167t68 -579q-55 -414 -206 -567.5t-474 -153.5q-332 0 -455 164t-67 582zM432 1714l135 199l418 -303l-100 -129zM438 694q-39 -276 2 -372.5t199 -96.5q162 0 233.5 101.5t114.5 392.5q41 281 -1 375t-202 94 q-164 0 -233.5 -99.5t-112.5 -394.5z" /> +<glyph unicode="Ó" d="M111 719q57 408 207.5 564.5t476 156.5t450.5 -167t68 -579q-55 -414 -206 -567.5t-474 -153.5q-332 0 -455 164t-67 582zM438 694q-39 -276 2 -372.5t199 -96.5q162 0 233.5 101.5t114.5 392.5q41 281 -1 375t-202 94q-164 0 -233.5 -99.5t-112.5 -394.5zM668 1610 l448 309l115 -221l-486 -217z" /> +<glyph unicode="Ô" d="M111 719q57 408 207.5 564.5t476 156.5t450.5 -167t68 -579q-55 -414 -206 -567.5t-474 -153.5q-332 0 -455 164t-67 582zM438 694q-39 -276 2 -372.5t199 -96.5q162 0 233.5 101.5t114.5 392.5q41 281 -1 375t-202 94q-164 0 -233.5 -99.5t-112.5 -394.5zM453 1595 l303 273h207l262 -285l-95 -106l-268 200h-16l-318 -196z" /> +<glyph unicode="Õ" d="M111 719q57 408 207.5 564.5t476 156.5t450.5 -167t68 -579q-55 -414 -206 -567.5t-474 -153.5q-332 0 -455 164t-67 582zM438 694q-39 -276 2 -372.5t199 -96.5q162 0 233.5 101.5t114.5 392.5q41 281 -1 375t-202 94q-164 0 -233.5 -99.5t-112.5 -394.5zM475 1556 q2 143 55.5 216t137.5 69q68 -4 171 -49t138 -51q55 -8 78.5 15.5t31.5 78.5l127 -10q2 -141 -50 -214t-138 -69q-74 4 -179.5 51t-133.5 52q-53 8 -77 -18t-32 -83z" /> +<glyph unicode="Ö" d="M111 719q57 408 207.5 564.5t476 156.5t450.5 -167t68 -579q-55 -414 -206 -567.5t-474 -153.5q-332 0 -455 164t-67 582zM438 694q-39 -276 2 -372.5t199 -96.5q162 0 233.5 101.5t114.5 392.5q41 281 -1 375t-202 94q-164 0 -233.5 -99.5t-112.5 -394.5zM545 1622 l18 129q8 64 74 64h102q37 0 49.5 -14.5t8.5 -47.5l-21 -129q-6 -61 -65 -61h-111q-63 0 -55 59zM903 1622l19 129q12 64 71 64h105q66 0 57 -62l-20 -129q-6 -61 -66 -61h-111q-63 0 -55 59z" /> +<glyph unicode="×" horiz-adv-x="1075" d="M53 356l312 244l-236 244l162 164l258 -263l352 279l121 -184l-317 -252l239 -244l-162 -172l-262 270l-344 -272z" /> +<glyph unicode="Ø" d="M94 -96l119 194q-164 164 -102 621q57 408 207.5 564.5t476.5 156.5q115 0 204 -19l134 219l217 -112l-131 -221q158 -170 94 -613q-55 -414 -206 -567.5t-474 -153.5q-119 0 -199 17l-123 -201zM438 694q-39 -276 2 -372.5t199 -96.5q162 0 233.5 101.5t114.5 392.5 q41 281 -1 375t-202 94q-164 0 -233.5 -99.5t-112.5 -394.5z" /> +<glyph unicode="Ù" horiz-adv-x="1386" d="M125 569l119 844h313l-121 -856q-29 -193 12 -262.5t185 -69.5q147 0 212.5 74t94.5 270l119 844h313l-123 -856q-47 -324 -184 -454t-432 -130q-301 0 -426 139.5t-82 456.5zM428 1714l135 199l418 -303l-100 -129z" /> +<glyph unicode="Ú" horiz-adv-x="1386" d="M125 569l119 844h313l-121 -856q-29 -193 12 -262.5t185 -69.5q147 0 212.5 74t94.5 270l119 844h313l-123 -856q-47 -324 -184 -454t-432 -130q-301 0 -426 139.5t-82 456.5zM664 1610l448 309l115 -221l-486 -217z" /> +<glyph unicode="Û" horiz-adv-x="1386" d="M125 569l119 844h313l-121 -856q-29 -193 12 -262.5t185 -69.5q147 0 212.5 74t94.5 270l119 844h313l-123 -856q-47 -324 -184 -454t-432 -130q-301 0 -426 139.5t-82 456.5zM449 1595l303 273h206l263 -285l-95 -106l-268 200h-16l-318 -196z" /> +<glyph unicode="Ü" horiz-adv-x="1386" d="M125 569l119 844h313l-121 -856q-29 -193 12 -262.5t185 -69.5q147 0 212.5 74t94.5 270l119 844h313l-123 -856q-47 -324 -184 -454t-432 -130q-301 0 -426 139.5t-82 456.5zM539 1622l20 129q8 64 74 64h102q37 0 49.5 -14.5t8.5 -47.5l-21 -129q-6 -61 -65 -61h-111 q-63 0 -57 59zM897 1622l21 129q12 64 71 64h105q66 0 57 -62l-21 -129q-6 -61 -65 -61h-111q-63 0 -57 59z" /> +<glyph unicode="Ý" horiz-adv-x="1239" d="M113 1413h313l160 -524q23 -90 26 -182h23q20 94 74 186l307 520h336l-600 -952l-64 -461h-315l67 477zM582 1610l446 309l115 -221l-486 -217z" /> +<glyph unicode="Þ" horiz-adv-x="1247" d="M57 0l199 1413h313l-32 -237h202q279 0 388.5 -104.5t72.5 -375.5q-37 -264 -150.5 -358t-367.5 -94q-123 0 -274 18l-37 -262h-314zM438 485h211q121 0 170 46.5t70 189.5q18 129 -13.5 172t-144.5 43l-229 -2z" /> +<glyph unicode="ß" horiz-adv-x="1435" d="M-217 -377l47 201h131q80 0 115 27.5t49 107.5l119 848h-176l24 192l180 11l19 131q29 211 150.5 284.5t387.5 73.5q297 0 401.5 -72.5t76.5 -246.5q-23 -141 -166 -254q-14 -12 -55.5 -42t-57.5 -43.5t-34.5 -36t-22.5 -42.5q-8 -43 82 -111q8 -8 14 -12l145 -109 q86 -70 117 -133t19 -155q-23 -150 -118 -207.5t-304 -57.5q-152 0 -340 23l30 205q172 -4 242 -4q98 0 140 16t46 68q4 37 -16 62.5t-88 82.5l-135 92q-141 109 -123 244q6 47 38 91t63.5 71.5t107.5 87.5q74 57 100.5 92t32.5 76q6 49 -27.5 70.5t-150.5 21.5 q-139 0 -193.5 -37t-68.5 -143l-166 -1188q-25 -152 -111 -229.5t-254 -77.5q-80 0 -270 22z" /> +<glyph unicode="à" horiz-adv-x="1208" d="M76 524q20 139 57 234.5t82 151t116.5 84t138.5 36.5t169 8q109 0 260.5 -18.5t241.5 -42.5l-137 -977h-236l2 182q-156 -201 -414 -207q-190 -6 -256.5 124t-23.5 425zM293 1339l135 201l418 -305l-101 -127zM368.5 271q14.5 -54 88.5 -50q135 2 303 191l57 403h-155 q-147 0 -200.5 -51t-80.5 -244q-27 -195 -12.5 -249z" /> +<glyph unicode="á" horiz-adv-x="1208" d="M76 524q20 139 57 234.5t82 151t116.5 84t138.5 36.5t169 8q109 0 260.5 -18.5t241.5 -42.5l-137 -977h-236l2 182q-156 -201 -414 -207q-190 -6 -256.5 124t-23.5 425zM368.5 271q14.5 -54 88.5 -50q135 2 303 191l57 403h-155q-147 0 -200.5 -51t-80.5 -244 q-27 -195 -12.5 -249zM530 1237l447 307l115 -219l-486 -217z" /> +<glyph unicode="â" horiz-adv-x="1208" d="M76 524q20 139 57 234.5t82 151t116.5 84t138.5 36.5t169 8q109 0 260.5 -18.5t241.5 -42.5l-137 -977h-236l2 182q-156 -201 -414 -207q-190 -6 -256.5 124t-23.5 425zM313 1221l303 272h207l262 -285l-92 -106l-270 203h-16l-318 -199zM368.5 271q14.5 -54 88.5 -50 q135 2 303 191l57 403h-155q-147 0 -200.5 -51t-80.5 -244q-27 -195 -12.5 -249z" /> +<glyph unicode="ã" horiz-adv-x="1208" d="M76 524q20 139 57 234.5t82 151t116.5 84t138.5 36.5t169 8q109 0 260.5 -18.5t241.5 -42.5l-137 -977h-236l2 182q-156 -201 -414 -207q-190 -6 -256.5 124t-23.5 425zM338 1182q0 145 53 216.5t137 67.5q68 -4 170.5 -48t139.5 -50q55 -8 78.5 14.5t31.5 79.5l127 -12 q2 -141 -50 -213t-138 -68q-74 4 -179.5 50.5t-134.5 50.5q-53 8 -76.5 -16.5t-31.5 -82.5zM368.5 271q14.5 -54 88.5 -50q135 2 303 191l57 403h-155q-147 0 -200.5 -51t-80.5 -244q-27 -195 -12.5 -249z" /> +<glyph unicode="ä" horiz-adv-x="1208" d="M76 524q20 139 57 234.5t82 151t116.5 84t138.5 36.5t169 8q109 0 260.5 -18.5t241.5 -42.5l-137 -977h-236l2 182q-156 -201 -414 -207q-190 -6 -256.5 124t-23.5 425zM368.5 271q14.5 -54 88.5 -50q135 2 303 191l57 403h-155q-147 0 -200.5 -51t-80.5 -244 q-27 -195 -12.5 -249zM406 1249l18 127q8 66 74 66h102q70 0 57 -64l-20 -129q-7 -61 -66 -61h-110q-63 0 -55 61zM764 1249l18 129q12 63 72 64h104q70 0 58 -64l-21 -129q-6 -61 -65 -61h-111q-66 0 -55 61z" /> +<glyph unicode="å" horiz-adv-x="1208" d="M76 524q20 139 57 234.5t82 151t116.5 84t138.5 36.5t169 8q109 0 260.5 -18.5t241.5 -42.5l-137 -977h-236l2 182q-156 -201 -414 -207q-190 -6 -256.5 124t-23.5 425zM368.5 271q14.5 -54 88.5 -50q135 2 303 191l57 403h-155q-147 0 -200.5 -51t-80.5 -244 q-27 -195 -12.5 -249zM475 1333q10 92 76.5 156.5t171.5 64.5q109 0 176.5 -69.5t54.5 -173.5q-12 -94 -80 -157.5t-172 -63.5q-109 0 -175 69.5t-52 173.5zM612 1325q-6 -51 22 -79.5t73 -28.5q47 0 76.5 30.5t33.5 79.5q4 45 -23.5 72.5t-72.5 27.5t-75 -28.5t-34 -73.5z " /> +<glyph unicode="æ" horiz-adv-x="1824" d="M76 524q18 139 54 234.5t77 150t107.5 84t128 37.5t157.5 8q233 0 442 -41q111 41 293 41q264 0 359.5 -88t72.5 -260q-23 -143 -118 -204.5t-293 -75.5l-301 -25q2 -100 50 -134t155 -34q194 0 378 23l19 -193q-162 -72 -432 -72q-356 0 -447 222q-158 -215 -422 -222 q-190 -6 -255.5 124t-24.5 425zM371.5 271.5q13.5 -54.5 87.5 -50.5q129 0 286 178q0 37 9 127q25 184 77 287l-172 2q-147 0 -197 -50t-77 -244.5t-13.5 -249zM1071 565l238 23q82 6 118.5 32.5t45.5 98.5q8 68 -25 84t-133 14q-119 0 -168 -50t-76 -202z" /> +<glyph unicode="ç" horiz-adv-x="1038" d="M68 518q41 285 163.5 402.5t393.5 117.5q240 0 387 -65l-41 -185q-238 4 -305 5q-141 0 -202 -58.5t-81 -230.5q-23 -178 15 -230.5t173 -52.5q191 1 320 19l20 -199q-156 -66 -393 -66q-274 0 -382.5 127t-67.5 416zM186 -510l43 131q76 -2 131.5 29t67.5 90 q4 25 -15.5 32t-101.5 7l31 119q162 18 231.5 -10.5t53.5 -133.5q-25 -147 -148 -218t-293 -46z" /> +<glyph unicode="è" horiz-adv-x="1146" d="M70 526q37 295 168 403.5t417 108.5q266 0 361.5 -88t70.5 -260q-20 -143 -116.5 -204.5t-296.5 -75.5l-299 -23q2 -100 50 -135t153 -35q199 0 389 23l20 -193q-170 -72 -444 -72q-289 0 -397.5 135.5t-75.5 415.5zM279 1339l135 201l417 -305l-100 -127zM393 565 l236 23q82 6 119.5 32.5t46.5 98.5q6 68 -26 84t-134 14q-119 0 -167 -50t-75 -202z" /> +<glyph unicode="é" horiz-adv-x="1146" d="M70 526q37 295 168 403.5t417 108.5q266 0 361.5 -88t70.5 -260q-20 -143 -116.5 -204.5t-296.5 -75.5l-299 -23q2 -100 50 -135t153 -35q199 0 389 23l20 -193q-170 -72 -444 -72q-289 0 -397.5 135.5t-75.5 415.5zM393 565l236 23q82 6 119.5 32.5t46.5 98.5 q6 68 -26 84t-134 14q-119 0 -167 -50t-75 -202zM514 1237l449 307l114 -219l-487 -217z" /> +<glyph unicode="ê" horiz-adv-x="1146" d="M70 526q37 295 168 403.5t417 108.5q266 0 361.5 -88t70.5 -260q-20 -143 -116.5 -204.5t-296.5 -75.5l-299 -23q2 -100 50 -135t153 -35q199 0 389 23l20 -193q-170 -72 -444 -72q-289 0 -397.5 135.5t-75.5 415.5zM299 1221l303 272h207l260 -285l-92 -106l-268 203 h-17l-317 -199zM393 565l236 23q82 6 119.5 32.5t46.5 98.5q6 68 -26 84t-134 14q-119 0 -167 -50t-75 -202z" /> +<glyph unicode="ë" horiz-adv-x="1146" d="M70 526q37 295 168 403.5t417 108.5q266 0 361.5 -88t70.5 -260q-20 -143 -116.5 -204.5t-296.5 -75.5l-299 -23q2 -100 50 -135t153 -35q199 0 389 23l20 -193q-170 -72 -444 -72q-289 0 -397.5 135.5t-75.5 415.5zM389 1249l21 127q8 66 73 66h103q66 0 57 -64 l-20 -129q-7 -61 -68 -61h-109q-63 0 -57 61zM393 565l236 23q82 6 119.5 32.5t46.5 98.5q6 68 -26 84t-134 14q-119 0 -167 -50t-75 -202zM748 1249l20 129q8 63 72 64h104q66 0 57 -64l-20 -129q-7 -61 -68 -61h-108q-63 0 -57 61z" /> +<glyph unicode="ì" horiz-adv-x="565" d="M-39 1339l135 201l418 -305l-100 -127zM47 0l141 1010h304l-142 -1010h-303z" /> +<glyph unicode="í" horiz-adv-x="565" d="M47 0l141 1010h304l-142 -1010h-303zM197 1237l448 307l115 -219l-486 -217z" /> +<glyph unicode="î" horiz-adv-x="565" d="M-18 1221l303 272h207l262 -285l-95 -106l-268 203h-16l-318 -199zM47 0l141 1010h304l-142 -1010h-303z" /> +<glyph unicode="ï" horiz-adv-x="565" d="M47 0l141 1010h304l-142 -1010h-303zM72 1249l20 127q8 66 74 66h102q66 0 58 -64l-21 -129q-6 -61 -65 -61h-111q-63 0 -57 61zM430 1249l21 129q12 64 71 64h105q66 0 57 -64l-20 -129q-6 -61 -66 -61h-111q-63 0 -57 61z" /> +<glyph unicode="ð" horiz-adv-x="1179" d="M61 455q31 236 146 352.5t328 116.5q160 0 256 -76q-2 227 -105.5 309t-337.5 72l39 201q268 12 432 -72l191 166l145 -172l-166 -142q147 -209 96 -635q-41 -317 -176 -459.5t-411 -142.5q-500 0 -437 482zM376.5 444.5q-20.5 -137.5 10.5 -190.5t129 -53q119 0 173 87 t85 314l6 60q-76 43 -166 43q-113 0 -165 -61.5t-72.5 -199z" /> +<glyph unicode="ñ" horiz-adv-x="1220" d="M39 0l141 1010h238v-201q236 229 461 229q129 0 198.5 -74.5t48.5 -211.5l-106 -752h-301l92 662q10 72 -4 97t-64 23q-115 -2 -315 -159l-86 -623h-303zM346 1182q0 145 53.5 216.5t137.5 67.5q68 -4 170 -48t139 -50q55 -8 78.5 14.5t31.5 79.5l127 -12 q2 -141 -49 -213t-137 -68q-76 4 -181.5 50.5t-133.5 50.5q-53 8 -77 -16.5t-32 -82.5z" /> +<glyph unicode="ò" horiz-adv-x="1200" d="M68 516q41 287 169.5 404.5t407.5 117.5q281 0 391.5 -127t69.5 -419q-39 -285 -169 -402t-405 -117q-279 0 -392 127t-72 416zM283 1339l135 201l418 -305l-101 -127zM383 492q-25 -176 6 -233.5t150 -57.5q123 0 176 64.5t80 250.5q27 176 -5 235.5t-147 59.5 q-125 0 -179 -63.5t-81 -255.5z" /> +<glyph unicode="ó" horiz-adv-x="1200" d="M68 516q41 287 169.5 404.5t407.5 117.5q281 0 391.5 -127t69.5 -419q-39 -285 -169 -402t-405 -117q-279 0 -392 127t-72 416zM383 492q-25 -176 6 -233.5t150 -57.5q123 0 176 64.5t80 250.5q27 176 -5 235.5t-147 59.5q-125 0 -179 -63.5t-81 -255.5zM518 1237 l449 307l114 -219l-487 -217z" /> +<glyph unicode="ô" horiz-adv-x="1200" d="M68 516q41 287 169.5 404.5t407.5 117.5q281 0 391.5 -127t69.5 -419q-39 -285 -169 -402t-405 -117q-279 0 -392 127t-72 416zM303 1221l303 272h207l260 -285l-92 -106l-268 203h-17l-317 -199zM383 492q-25 -176 6 -233.5t150 -57.5q123 0 176 64.5t80 250.5 q27 176 -5 235.5t-147 59.5q-125 0 -179 -63.5t-81 -255.5z" /> +<glyph unicode="õ" horiz-adv-x="1200" d="M68 516q41 287 169.5 404.5t407.5 117.5q281 0 391.5 -127t69.5 -419q-39 -285 -169 -402t-405 -117q-279 0 -392 127t-72 416zM326 1182q0 143 54 215.5t138 68.5q68 -4 170.5 -48t138.5 -50q53 -8 78 15.5t33 78.5l127 -12q2 -141 -50 -213t-138 -68q-76 4 -181.5 50.5 t-134.5 50.5q-53 8 -75.5 -17t-30.5 -82zM383 492q-25 -176 6 -233.5t150 -57.5q123 0 176 64.5t80 250.5q27 176 -5 235.5t-147 59.5q-125 0 -179 -63.5t-81 -255.5z" /> +<glyph unicode="ö" horiz-adv-x="1200" d="M68 516q41 287 169.5 404.5t407.5 117.5q281 0 391.5 -127t69.5 -419q-39 -285 -169 -402t-405 -117q-279 0 -392 127t-72 416zM383 492q-25 -176 6 -233.5t150 -57.5q123 0 176 64.5t80 250.5q27 176 -5 235.5t-147 59.5q-125 0 -179 -63.5t-81 -255.5zM393 1249l21 127 q7 66 73 66h103q66 0 57 -64l-20 -129q-6 -61 -68 -61h-108q-63 0 -58 61zM752 1249l20 129q9 64 72 64h104q66 0 58 -64l-21 -129q-6 -61 -67 -61h-109q-63 0 -57 61z" /> +<glyph unicode="÷" horiz-adv-x="1120" d="M76 489l33 224h938l-33 -224h-938zM348 186l8 64q8 61 38 85.5t91 24.5h66q66 0 90.5 -26.5t15.5 -89.5l-10 -68q-8 -61 -35.5 -84.5t-89.5 -23.5h-69q-66 0 -90.5 27.5t-14.5 90.5zM457 954l10 66q8 61 37 85.5t92 24.5h66q66 0 90 -26.5t16 -89.5l-8 -66 q-10 -61 -38 -85.5t-89 -24.5h-70q-66 0 -90 26.5t-16 89.5z" /> +<glyph unicode="ø" horiz-adv-x="1200" d="M68 516q41 287 170 404.5t407 117.5q72 0 148 -10l116 191l195 -107l-105 -166q154 -125 107 -454q-39 -285 -169 -402t-405 -117q-74 0 -122 9l-119 -191l-193 105l97 155q-174 119 -127 465zM383 492q-25 -176 6 -233.5t150 -57.5q123 0 176 64.5t80 250.5 q27 176 -5 235.5t-147 59.5q-125 0 -179 -63.5t-81 -255.5z" /> +<glyph unicode="ù" horiz-adv-x="1202" d="M70 258l104 752h303l-96 -670q-8 -61 9.5 -87t66.5 -26q66 0 128 35t167 123l86 625h299l-140 -1010h-233v190q-225 -217 -436 -217q-145 0 -212 76t-46 209zM289 1356l135 198l418 -303l-101 -129z" /> +<glyph unicode="ú" horiz-adv-x="1202" d="M70 258l104 752h303l-96 -670q-8 -61 9.5 -87t66.5 -26q66 0 128 35t167 123l86 625h299l-140 -1010h-233v190q-225 -217 -436 -217q-145 0 -212 76t-46 209zM524 1251l449 310l114 -222l-485 -217z" /> +<glyph unicode="û" horiz-adv-x="1202" d="M70 258l104 752h303l-96 -670q-8 -61 9.5 -87t66.5 -26q66 0 128 35t167 123l86 625h299l-140 -1010h-233v190q-225 -217 -436 -217q-145 0 -212 76t-46 209zM309 1237l303 272h207l262 -284l-94 -107l-268 201h-17l-317 -199z" /> +<glyph unicode="ü" horiz-adv-x="1202" d="M70 258l104 752h303l-96 -670q-8 -61 9.5 -87t66.5 -26q66 0 128 35t167 123l86 625h299l-140 -1010h-233v190q-225 -217 -436 -217q-145 0 -212 76t-46 209zM399 1264l21 129q8 63 74 63h102q66 0 57 -61l-20 -131q-7 -60 -66 -60h-110q-63 0 -58 60zM758 1264l20 129 q12 63 72 63h104q66 0 58 -61l-21 -129q-6 -62 -65 -62h-111q-63 0 -57 60z" /> +<glyph unicode="ý" horiz-adv-x="1183" d="M72 1010h325l97 -772q4 -33 34 -33h82l8 18q162 336 236 787h320q-43 -233 -128 -476t-180 -417q-154 -279 -329 -398.5t-416 -138.5l-37 187q141 37 230 83t171 150h-120q-49 0 -83 28.5t-44 73.5zM481 1237l447 307l114 -219l-485 -217z" /> +<glyph unicode="þ" horiz-adv-x="1212" d="M-14 -389l254 1823h303l-39 -283q-22 -162 -49 -258l4 -14q160 156 370 155q180 0 251 -125t32 -424q-20 -156 -61 -260t-104.5 -157.5t-132.5 -74t-163 -20.5q-164 0 -313 25q-8 -98 -19 -148l-32 -239h-301zM369 188l157 -2q152 0 201 52.5t76 250.5q25 182 10.5 242 t-88.5 60q-82 0 -150.5 -48.5t-150.5 -144.5z" /> +<glyph unicode="ÿ" horiz-adv-x="1183" d="M72 1010h325l97 -772q4 -33 34 -33h82l8 18q162 336 236 787h320q-43 -233 -128 -476t-180 -417q-154 -279 -329 -398.5t-416 -138.5l-37 187q141 37 230 83t171 150h-120q-49 0 -83 28.5t-44 73.5zM356 1249l21 127q8 66 74 66h100q70 0 57 -64l-18 -129q-9 -61 -68 -61 h-108q-66 0 -58 61zM715 1249l20 129q8 63 70 64h104q70 0 58 -64l-19 -129q-8 -61 -67 -61h-111q-66 0 -55 61z" /> +<glyph unicode="Œ" horiz-adv-x="1943" d="M94 360.5q-8 143.5 17 358.5q59 416 207.5 568.5t476.5 152.5q205 0 348 -58q70 37 168 37q449 0 653 -22l-39 -230h-522q-106 0 -119 -110l-31 -215h551l-26 -215h-553l-39 -283q-8 -53 11.5 -75.5t72.5 -22.5h524l-6 -232q-184 -20 -619 -20q-117 0 -198 49 q-154 -70 -348 -70q-174 0 -282 36t-173.5 122t-73.5 229.5zM437 322.5q38 -97.5 188 -97.5q141 0 237 29q0 16 4 57l115 830l6 30q-82 16 -192 17q-164 0 -241 -104.5t-116 -389.5q-39 -274 -1 -371.5z" /> +<glyph unicode="œ" horiz-adv-x="1851" d="M68 516q41 287 169 404.5t402 117.5q221 0 340 -98q131 98 385 98q264 0 359.5 -88t70.5 -260q-20 -143 -115.5 -204.5t-294.5 -75.5l-297 -23q2 -102 49.5 -136t151.5 -34q195 0 379 23l19 -193q-166 -72 -435 -72q-229 0 -350 109q-137 -111 -375 -111 q-276 0 -387.5 127t-70.5 416zM383 492q-25 -176 4.5 -233.5t144.5 -57.5q119 0 170.5 64.5t77.5 250.5q27 176 -2.5 235.5t-142.5 59.5q-121 0 -173 -63.5t-79 -255.5zM1106 565l231 23q82 6 119 32.5t45 98.5q6 68 -25.5 84t-132.5 14q-117 0 -163.5 -50t-73.5 -202z" /> +<glyph unicode="Ÿ" horiz-adv-x="1239" d="M113 1413h313l160 -524q23 -90 26 -182h23q20 94 74 186l307 520h336l-600 -952l-64 -461h-315l67 477zM457 1622l20 129q8 63 74 64h100q70 0 58 -62l-19 -129q-8 -61 -67 -61h-111q-63 0 -55 59zM815 1622l21 129q8 63 69 64h105q70 0 57 -62l-18 -129q-9 -61 -68 -61 h-111q-63 0 -55 59z" /> +<glyph unicode="ˆ" horiz-adv-x="917" d="M176 1214l303 273h209l260 -285l-92 -106l-268 200h-17l-319 -196z" /> +<glyph unicode="˜" horiz-adv-x="899" d="M193 1174q2 143 55 215.5t137 68.5q68 -4 170 -48t139 -50q55 -10 79 13.5t32 80.5l127 -12q2 -141 -50.5 -214t-138.5 -69q-74 4 -178 51t-135 52q-53 8 -76.5 -17t-31.5 -84z" /> +<glyph unicode=" " horiz-adv-x="972" /> +<glyph unicode=" " horiz-adv-x="1944" /> +<glyph unicode=" " horiz-adv-x="972" /> +<glyph unicode=" " horiz-adv-x="1944" /> +<glyph unicode=" " horiz-adv-x="648" /> +<glyph unicode=" " horiz-adv-x="486" /> +<glyph unicode=" " horiz-adv-x="324" /> +<glyph unicode=" " horiz-adv-x="324" /> +<glyph unicode=" " horiz-adv-x="243" /> +<glyph unicode=" " horiz-adv-x="388" /> +<glyph unicode=" " horiz-adv-x="108" /> +<glyph unicode="‐" horiz-adv-x="847" d="M94 422l29 199h608l-26 -199h-611z" /> +<glyph unicode="‑" horiz-adv-x="847" d="M94 422l29 199h608l-26 -199h-611z" /> +<glyph unicode="‒" horiz-adv-x="847" d="M94 422l29 199h608l-26 -199h-611z" /> +<glyph unicode="–" horiz-adv-x="1148" d="M94 422l29 199h909l-26 -199h-912z" /> +<glyph unicode="—" horiz-adv-x="1759" d="M94 422l29 199h1517l-28 -199h-1518z" /> +<glyph unicode="‘" horiz-adv-x="458" d="M154 1014l14 119q25 174 143 340l127 -46q-43 -111 -73 -237q45 2 63 -20.5t14 -65.5l-14 -98q-8 -53 -35 -74t-86 -21h-63q-109 0 -90 103z" /> +<glyph unicode="’" horiz-adv-x="454" d="M176 1257l14 99q10 55 36 74.5t85 19.5h64q57 0 78.5 -23.5t13.5 -78.5l-16 -119q-25 -174 -144 -338l-127 43q51 131 76 240q-90 -6 -80 83z" /> +<glyph unicode="‚" horiz-adv-x="479" d="M29 78l14 98q10 53 36 72.5t85 19.5h63q57 0 79 -23.5t13 -76.5l-16 -121q-25 -174 -143 -338l-127 43q51 131 76 240q-47 -2 -65.5 19.5t-14.5 66.5z" /> +<glyph unicode="“" horiz-adv-x="825" d="M154 1014l14 119q25 174 143 340l127 -46q-43 -111 -73 -237q45 2 63 -20.5t14 -65.5l-14 -98q-8 -53 -35 -74t-86 -21h-63q-109 0 -90 103zM520 1014l17 119q25 174 143 340l127 -46q-49 -123 -76 -237q47 2 65.5 -20.5t14.5 -65.5l-14 -98q-10 -53 -37 -74t-84 -21h-64 q-57 0 -78.5 25t-13.5 78z" /> +<glyph unicode="”" horiz-adv-x="823" d="M176 1257l14 99q10 55 36 74.5t85 19.5h64q57 0 78.5 -23.5t13.5 -78.5l-16 -119q-25 -174 -144 -338l-127 43q51 131 76 240q-90 -6 -80 83zM545 1257l14 99q8 55 35 74.5t84 19.5h65q55 0 77 -23.5t14 -78.5l-17 -119q-23 -174 -143 -338l-125 43q45 119 74 240 q-88 -6 -78 83z" /> +<glyph unicode="„" horiz-adv-x="847" d="M29 76l14 98q10 55 36 74.5t85 19.5h63q57 0 79 -23.5t13 -78.5l-16 -119q-25 -174 -143 -340l-127 45q49 123 76 238q-47 -2 -65.5 20.5t-14.5 65.5zM397 76l15 98q8 55 34.5 74.5t85.5 19.5h64q55 0 76.5 -23.5t13.5 -78.5l-16 -119q-23 -174 -142 -340l-127 45 q43 111 74 238q-45 -2 -63.5 20.5t-14.5 65.5z" /> +<glyph unicode="•" horiz-adv-x="757" d="M141 545l4 28q16 119 66.5 162t173.5 43h35q115 0 158 -49t26 -166l-4 -31q-18 -125 -66.5 -170t-164.5 -45h-39q-121 0 -163 51.5t-26 176.5z" /> +<glyph unicode="…" horiz-adv-x="1820" d="M6 113l14 98q15 98 117 98h76q115 0 100 -110l-14 -99q-12 -100 -115 -100h-75q-117 0 -103 113zM670 113l14 98q13 98 117 98h73q119 0 101 -110l-12 -99q-12 -100 -115 -100h-76q-117 0 -102 113zM1333 113l15 98q12 98 114 98h76q117 0 100 -110l-12 -99 q-14 -100 -117 -100h-75q-115 0 -101 113z" /> +<glyph unicode=" " horiz-adv-x="388" /> +<glyph unicode="‹" horiz-adv-x="626" d="M57 487l4 66l361 399l143 -106l-250 -332l181 -346l-154 -102z" /> +<glyph unicode="›" horiz-adv-x="626" d="M35 170l250 334l-179 346l154 102l285 -422l-6 -65l-361 -399z" /> +<glyph unicode=" " horiz-adv-x="486" /> +<glyph unicode="€" horiz-adv-x="1300" d="M61 483l29 193h889l-45 -193h-389q4 -119 52 -178t155 -67q184 -16 387 22l12 -229q-162 -55 -387 -56q-272 0 -404.5 125t-138.5 383h-160zM100 756l29 192h154q70 252 223 371t430 119q195 0 356 -49l-41 -226q-168 23 -340 11q-119 -8 -187.5 -60.5t-109.5 -165.5h459 l-47 -192h-926z" /> +<glyph unicode="™" horiz-adv-x="1998" d="M203 1262l22 163h697l-21 -163h-246l-86 -615h-209l86 615h-243zM889 647l129 711q6 37 22.5 52t51.5 15h194q70 0 74 -71l47 -344q4 -39 4 -121h19q14 61 32 119l142 358q21 59 82 59h200q35 0 54.5 -22.5t15.5 -59.5l-70 -696h-190l59 621h-20l-179 -447 q-20 -59 -81 -59h-125q-33 0 -54.5 19.5t-23.5 49.5l-58 437h-22l-111 -621h-192z" /> +<glyph unicode="◼" horiz-adv-x="1013" d="M0 0v1014h1014v-1014h-1014z" /> +<glyph unicode="fi" horiz-adv-x="1355" d="M-221 -377l47 201h133q80 0 115 27.5t47 107.5l123 848h-174l24 192l178 11l21 141q25 160 107.5 242t250.5 82q170 0 281 -21l-35 -201h-145q-78 0 -116 -34.5t-50 -118.5l-13 -90h713l-143 -1010h-301l112 807h-409l-131 -899q-43 -307 -355 -307q-88 0 -280 22z M1016 1272l16 108q8 84 90 84h133q45 0 68 -25.5t14 -68.5l-14 -110q-6 -45 -25.5 -63.5t-64.5 -18.5h-135q-94 0 -82 94z" /> +<glyph unicode="fl" horiz-adv-x="1460" d="M-217 -377l47 201h131q80 0 115 27.5t47 107.5l119 848h-174l24 192l178 11l21 141q23 160 106.5 243t251.5 81q502 0 707 -37l-152 -1131q-8 -53 11.5 -75.5t72.5 -22.5h84l14 -197q-72 -37 -229 -37q-139 0 -209.5 72t-54.5 195l143 1015h-286q-78 0 -116 -35.5 t-50 -121.5l-13 -90h258l-26 -203h-260l-125 -899q-43 -307 -357 -307q-88 0 -278 22z" /> +<hkern u1=" " u2="þ" k="-2" /> +<hkern u1=" " u2="Æ" k="57" /> +<hkern u1=" " u2="v" k="43" /> +<hkern u1=" " u2="V" k="49" /> +<hkern u1=" " u2="J" k="35" /> +<hkern u1=""" u2="ï" k="-16" /> +<hkern u1=""" u2="î" k="-63" /> +<hkern u1=""" u2="ì" k="-102" /> +<hkern u1="#" u2="7" k="14" /> +<hkern u1="#" u2="3" k="16" /> +<hkern u1="#" u2="2" k="14" /> +<hkern u1="&" u2="Æ" k="63" /> +<hkern u1="&" u2="X" k="59" /> +<hkern u1="&" u2="V" k="20" /> +<hkern u1="&" u2="J" k="43" /> +<hkern u1="'" u2="ï" k="-16" /> +<hkern u1="'" u2="î" k="-63" /> +<hkern u1="'" u2="ì" k="-102" /> +<hkern u1="(" u2="þ" k="-2" /> +<hkern u1="(" u2="ð" k="74" /> +<hkern u1="(" u2="ï" k="-41" /> +<hkern u1="(" u2="î" k="-16" /> +<hkern u1="(" u2="ì" k="-106" /> +<hkern u1="(" u2="Ï" k="10" /> +<hkern u1="(" u2="Î" k="-84" /> +<hkern u1="(" u2="Æ" k="37" /> +<hkern u1="(" u2="{" k="20" /> +<hkern u1="(" u2="x" k="53" /> +<hkern u1="(" u2="v" k="74" /> +<hkern u1="(" u2="q" k="98" /> +<hkern u1="(" u2="j" k="-20" /> +<hkern u1="(" u2="V" k="-14" /> +<hkern u1="(" u2="M" k="35" /> +<hkern u1="(" u2="J" k="47" /> +<hkern u1="(" u2="F" k="51" /> +<hkern u1="(" u2="9" k="49" /> +<hkern u1="(" u2="8" k="61" /> +<hkern u1="(" u2="6" k="76" /> +<hkern u1="(" u2="5" k="14" /> +<hkern u1="(" u2="4" k="100" /> +<hkern u1="(" u2="1" k="25" /> +<hkern u1="(" u2="0" k="76" /> +<hkern u1="(" u2="(" k="70" /> +<hkern u1=")" u2="}" k="35" /> +<hkern u1=")" u2="]" k="45" /> +<hkern u1=")" u2=")" k="68" /> +<hkern u1="*" u2="ð" k="33" /> +<hkern u1="*" u2="ï" k="-14" /> +<hkern u1="*" u2="î" k="-80" /> +<hkern u1="*" u2="ì" k="-33" /> +<hkern u1="*" u2="Æ" k="133" /> +<hkern u1="*" u2="v" k="-6" /> +<hkern u1="*" u2="q" k="23" /> +<hkern u1="*" u2="J" k="59" /> +<hkern u1="+" u2="7" k="70" /> +<hkern u1="+" u2="1" k="49" /> +<hkern u1="/" u2="ð" k="51" /> +<hkern u1="/" u2="ï" k="-29" /> +<hkern u1="/" u2="î" k="-33" /> +<hkern u1="/" u2="ì" k="-129" /> +<hkern u1="/" u2="Æ" k="174" /> +<hkern u1="/" u2="x" k="14" /> +<hkern u1="/" u2="v" k="10" /> +<hkern u1="/" u2="q" k="57" /> +<hkern u1="/" u2="V" k="-4" /> +<hkern u1="/" u2="J" k="51" /> +<hkern u1="/" u2="6" k="25" /> +<hkern u1="/" u2="4" k="88" /> +<hkern u1="/" u2="0" k="25" /> +<hkern u1="/" u2="/" k="209" /> +<hkern u1="0" u2="Æ" k="8" /> +<hkern u1="0" u2="}" k="41" /> +<hkern u1="0" u2="]" k="51" /> +<hkern u1="0" u2="\" k="37" /> +<hkern u1="0" u2="/" k="59" /> +<hkern u1="0" u2=")" k="88" /> +<hkern u1="1" u2="}" k="14" /> +<hkern u1="1" u2="]" k="14" /> +<hkern u1="1" u2="/" k="25" /> +<hkern u1="1" u2=")" k="29" /> +<hkern u1="2" u2="÷" k="18" /> +<hkern u1="2" u2="Æ" k="-10" /> +<hkern u1="2" u2="·" k="14" /> +<hkern u1="2" u2="}" k="14" /> +<hkern u1="2" u2="]" k="27" /> +<hkern u1="2" u2="\" k="8" /> +<hkern u1="2" u2="4" k="18" /> +<hkern u1="2" u2=")" k="39" /> +<hkern u1="3" u2="}" k="35" /> +<hkern u1="3" u2="]" k="45" /> +<hkern u1="3" u2="\" k="8" /> +<hkern u1="3" u2="/" k="43" /> +<hkern u1="3" u2=")" k="76" /> +<hkern u1="4" u2="°" k="20" /> +<hkern u1="4" u2="}" k="35" /> +<hkern u1="4" u2="]" k="51" /> +<hkern u1="4" u2="\" k="84" /> +<hkern u1="4" u2="V" k="45" /> +<hkern u1="4" u2="7" k="57" /> +<hkern u1="4" u2="1" k="37" /> +<hkern u1="4" u2="/" k="41" /> +<hkern u1="4" u2=")" k="88" /> +<hkern u1="5" u2="/" k="45" /> +<hkern u1="5" u2=")" k="20" /> +<hkern u1="6" u2="}" k="14" /> +<hkern u1="6" u2="]" k="16" /> +<hkern u1="6" u2="/" k="37" /> +<hkern u1="6" u2=")" k="49" /> +<hkern u1="7" u2="÷" k="29" /> +<hkern u1="7" u2="Æ" k="96" /> +<hkern u1="7" u2="·" k="39" /> +<hkern u1="7" u2="J" k="41" /> +<hkern u1="7" u2="4" k="33" /> +<hkern u1="7" u2="1" k="-16" /> +<hkern u1="7" u2="/" k="137" /> +<hkern u1="7" u2=")" k="14" /> +<hkern u1="8" u2="}" k="33" /> +<hkern u1="8" u2="]" k="43" /> +<hkern u1="8" u2="\" k="10" /> +<hkern u1="8" u2="/" k="35" /> +<hkern u1="8" u2=")" k="72" /> +<hkern u1="9" u2="Æ" k="8" /> +<hkern u1="9" u2="}" k="39" /> +<hkern u1="9" u2="]" k="47" /> +<hkern u1="9" u2="\" k="29" /> +<hkern u1="9" u2="/" k="63" /> +<hkern u1="9" u2=")" k="82" /> +<hkern u1="=" u2="7" k="27" /> +<hkern u1="=" u2="1" k="12" /> +<hkern u1="@" u2="V" k="8" /> +<hkern u1="B" u2="™" k="6" /> +<hkern u1="B" u2="þ" k="25" /> +<hkern u1="B" u2="î" k="-12" /> +<hkern u1="B" u2="Æ" k="12" /> +<hkern u1="B" u2="}" k="35" /> +<hkern u1="B" u2="]" k="47" /> +<hkern u1="B" u2="\" k="29" /> +<hkern u1="B" u2="X" k="4" /> +<hkern u1="B" u2="V" k="23" /> +<hkern u1="B" u2="/" k="29" /> +<hkern u1="B" u2=")" k="78" /> +<hkern u1="C" u2="þ" k="33" /> +<hkern u1="C" u2="ï" k="-4" /> +<hkern u1="C" u2="î" k="-57" /> +<hkern u1="C" u2="ì" k="-96" /> +<hkern u1="E" u2="þ" k="41" /> +<hkern u1="E" u2="ï" k="-8" /> +<hkern u1="E" u2="î" k="-57" /> +<hkern u1="E" u2="ì" k="-96" /> +<hkern u1="F" u2="þ" k="43" /> +<hkern u1="F" u2="ð" k="35" /> +<hkern u1="F" u2="ï" k="-20" /> +<hkern u1="F" u2="î" k="-90" /> +<hkern u1="F" u2="ì" k="-129" /> +<hkern u1="F" u2="Æ" k="184" /> +<hkern u1="F" u2="x" k="8" /> +<hkern u1="F" u2="q" k="27" /> +<hkern u1="F" u2="J" k="76" /> +<hkern u1="F" u2="1" k="-4" /> +<hkern u1="F" u2="/" k="147" /> +<hkern u1="F" u2=")" k="18" /> +<hkern u1="F" u2=" " k="33" /> +<hkern u1="G" u2="î" k="-14" /> +<hkern u1="G" u2="ì" k="-25" /> +<hkern u1="H" u2="þ" k="37" /> +<hkern u1="H" u2="î" k="-33" /> +<hkern u1="H" u2="ì" k="-45" /> +<hkern u1="I" u2="þ" k="37" /> +<hkern u1="I" u2="î" k="-33" /> +<hkern u1="I" u2="ì" k="-45" /> +<hkern u1="J" u2="þ" k="39" /> +<hkern u1="J" u2="î" k="-33" /> +<hkern u1="J" u2="ì" k="-51" /> +<hkern u1="K" u2="þ" k="39" /> +<hkern u1="K" u2="ï" k="-37" /> +<hkern u1="K" u2="î" k="-41" /> +<hkern u1="K" u2="ì" k="-127" /> +<hkern u1="M" u2="þ" k="18" /> +<hkern u1="M" u2="î" k="-23" /> +<hkern u1="M" u2="ì" k="-18" /> +<hkern u1="M" u2="}" k="16" /> +<hkern u1="M" u2="]" k="20" /> +<hkern u1="M" u2="V" k="6" /> +<hkern u1="M" u2=")" k="45" /> +<hkern u1="N" u2="þ" k="37" /> +<hkern u1="N" u2="î" k="-33" /> +<hkern u1="N" u2="ì" k="-49" /> +<hkern u1="P" u2="þ" k="41" /> +<hkern u1="P" u2="ð" k="12" /> +<hkern u1="P" u2="î" k="-47" /> +<hkern u1="P" u2="ì" k="-16" /> +<hkern u1="P" u2="Æ" k="147" /> +<hkern u1="P" u2="}" k="35" /> +<hkern u1="P" u2="]" k="41" /> +<hkern u1="P" u2="X" k="47" /> +<hkern u1="P" u2="J" k="82" /> +<hkern u1="P" u2="/" k="143" /> +<hkern u1="P" u2=")" k="78" /> +<hkern u1="P" u2=" " k="37" /> +<hkern u1="R" u2="þ" k="47" /> +<hkern u1="R" u2="î" k="-20" /> +<hkern u1="S" u2="þ" k="18" /> +<hkern u1="S" u2="î" k="-33" /> +<hkern u1="S" u2="ì" k="-55" /> +<hkern u1="T" u2="ô" k="63" /> +<hkern u1="T" u2="ò" k="100" /> +<hkern u1="T" u2="ï" k="-29" /> +<hkern u1="T" u2="î" k="-121" /> +<hkern u1="T" u2="ì" k="-156" /> +<hkern u1="T" u2="ê" k="61" /> +<hkern u1="T" u2="è" k="162" /> +<hkern u1="T" u2="à" k="106" /> +<hkern u1="U" u2="þ" k="45" /> +<hkern u1="U" u2="î" k="-37" /> +<hkern u1="U" u2="ì" k="-57" /> +<hkern u1="V" u2="þ" k="37" /> +<hkern u1="V" u2="ð" k="59" /> +<hkern u1="V" u2="ï" k="-47" /> +<hkern u1="V" u2="î" k="-88" /> +<hkern u1="V" u2="ì" k="-158" /> +<hkern u1="V" u2="Æ" k="145" /> +<hkern u1="V" u2="x" k="12" /> +<hkern u1="V" u2="q" k="68" /> +<hkern u1="V" u2="\" k="-8" /> +<hkern u1="V" u2="J" k="68" /> +<hkern u1="V" u2="7" k="-10" /> +<hkern u1="V" u2="4" k="37" /> +<hkern u1="V" u2="1" k="-8" /> +<hkern u1="V" u2="/" k="137" /> +<hkern u1="V" u2=" " k="47" /> +<hkern u1="W" u2="þ" k="45" /> +<hkern u1="W" u2="ï" k="-18" /> +<hkern u1="W" u2="î" k="-72" /> +<hkern u1="W" u2="ì" k="-127" /> +<hkern u1="X" u2="þ" k="39" /> +<hkern u1="X" u2="ð" k="37" /> +<hkern u1="X" u2="ï" k="-29" /> +<hkern u1="X" u2="î" k="-39" /> +<hkern u1="X" u2="ì" k="-117" /> +<hkern u1="X" u2="º" k="25" /> +<hkern u1="X" u2="ª" k="23" /> +<hkern u1="X" u2="©" k="39" /> +<hkern u1="X" u2="v" k="25" /> +<hkern u1="X" u2="q" k="33" /> +<hkern u1="X" u2="4" k="35" /> +<hkern u1="Y" u2="þ" k="25" /> +<hkern u1="Y" u2="ï" k="-57" /> +<hkern u1="Y" u2="î" k="-61" /> +<hkern u1="Y" u2="ì" k="-160" /> +<hkern u1="Z" u2="þ" k="37" /> +<hkern u1="Z" u2="ï" k="-6" /> +<hkern u1="Z" u2="î" k="-57" /> +<hkern u1="Z" u2="ì" k="-94" /> +<hkern u1="[" u2="þ" k="-2" /> +<hkern u1="[" u2="ð" k="51" /> +<hkern u1="[" u2="ï" k="-27" /> +<hkern u1="[" u2="î" k="-37" /> +<hkern u1="[" u2="ì" k="-123" /> +<hkern u1="[" u2="ß" k="-16" /> +<hkern u1="[" u2="Ï" k="-4" /> +<hkern u1="[" u2="Î" k="-80" /> +<hkern u1="[" u2="Æ" k="39" /> +<hkern u1="[" u2="{" k="14" /> +<hkern u1="[" u2="x" k="41" /> +<hkern u1="[" u2="v" k="49" /> +<hkern u1="[" u2="q" k="66" /> +<hkern u1="[" u2="j" k="-12" /> +<hkern u1="[" u2="M" k="16" /> +<hkern u1="[" u2="J" k="37" /> +<hkern u1="[" u2="F" k="23" /> +<hkern u1="[" u2="9" k="23" /> +<hkern u1="[" u2="8" k="35" /> +<hkern u1="[" u2="6" k="45" /> +<hkern u1="[" u2="4" k="55" /> +<hkern u1="[" u2="0" k="45" /> +<hkern u1="[" u2="(" k="43" /> +<hkern u1="\" u2="ð" k="51" /> +<hkern u1="\" u2="v" k="98" /> +<hkern u1="\" u2="q" k="47" /> +<hkern u1="\" u2="j" k="-8" /> +<hkern u1="\" u2="V" k="137" /> +<hkern u1="\" u2="9" k="8" /> +<hkern u1="\" u2="8" k="45" /> +<hkern u1="\" u2="7" k="80" /> +<hkern u1="\" u2="6" k="61" /> +<hkern u1="\" u2="4" k="74" /> +<hkern u1="\" u2="1" k="119" /> +<hkern u1="\" u2="0" k="74" /> +<hkern u1="b" u2="™" k="66" /> +<hkern u1="b" u2="Æ" k="6" /> +<hkern u1="b" u2="}" k="49" /> +<hkern u1="b" u2="x" k="20" /> +<hkern u1="b" u2="v" k="10" /> +<hkern u1="b" u2="]" k="66" /> +<hkern u1="b" u2="\" k="104" /> +<hkern u1="b" u2="X" k="18" /> +<hkern u1="b" u2="V" k="76" /> +<hkern u1="b" u2="?" k="82" /> +<hkern u1="b" u2="/" k="31" /> +<hkern u1="b" u2="*" k="33" /> +<hkern u1="b" u2=")" k="96" /> +<hkern u1="d" u2="î" k="-39" /> +<hkern u1="d" u2="ì" k="-41" /> +<hkern u1="f" u2="™" k="-18" /> +<hkern u1="f" u2="ð" k="27" /> +<hkern u1="f" u2="ï" k="-96" /> +<hkern u1="f" u2="î" k="-123" /> +<hkern u1="f" u2="ì" k="-190" /> +<hkern u1="f" u2="Ð" k="-6" /> +<hkern u1="f" u2="Æ" k="80" /> +<hkern u1="f" u2="®" k="-4" /> +<hkern u1="f" u2="}" k="-37" /> +<hkern u1="f" u2="]" k="-47" /> +<hkern u1="f" u2="\" k="-66" /> +<hkern u1="f" u2="X" k="-25" /> +<hkern u1="f" u2="V" k="-70" /> +<hkern u1="f" u2="J" k="23" /> +<hkern u1="f" u2="@" k="-10" /> +<hkern u1="f" u2="?" k="-55" /> +<hkern u1="f" u2="/" k="72" /> +<hkern u1="f" u2="*" k="-12" /> +<hkern u1="f" u2=")" k="-37" /> +<hkern u1="f" u2=" " k="39" /> +<hkern u1="i" u2="î" k="-37" /> +<hkern u1="i" u2="ì" k="-61" /> +<hkern u1="j" u2="î" k="-37" /> +<hkern u1="j" u2="ì" k="-61" /> +<hkern u1="q" u2=")" k="18" /> +<hkern u1="v" u2="™" k="43" /> +<hkern u1="v" u2="ð" k="4" /> +<hkern u1="v" u2="Æ" k="47" /> +<hkern u1="v" u2="}" k="49" /> +<hkern u1="v" u2="]" k="63" /> +<hkern u1="v" u2="\" k="47" /> +<hkern u1="v" u2="X" k="39" /> +<hkern u1="v" u2="V" k="20" /> +<hkern u1="v" u2="J" k="53" /> +<hkern u1="v" u2="?" k="39" /> +<hkern u1="v" u2="/" k="68" /> +<hkern u1="v" u2=")" k="102" /> +<hkern u1="x" u2="™" k="39" /> +<hkern u1="x" u2="ð" k="33" /> +<hkern u1="x" u2="}" k="18" /> +<hkern u1="x" u2="q" k="20" /> +<hkern u1="x" u2="]" k="41" /> +<hkern u1="x" u2="\" k="35" /> +<hkern u1="x" u2="V" k="10" /> +<hkern u1="x" u2="?" k="20" /> +<hkern u1="x" u2=")" k="41" /> +<hkern u1="{" u2="þ" k="-2" /> +<hkern u1="{" u2="ð" k="43" /> +<hkern u1="{" u2="ï" k="-18" /> +<hkern u1="{" u2="î" k="-29" /> +<hkern u1="{" u2="ì" k="-111" /> +<hkern u1="{" u2="ß" k="-23" /> +<hkern u1="{" u2="Î" k="-57" /> +<hkern u1="{" u2="{" k="12" /> +<hkern u1="{" u2="x" k="18" /> +<hkern u1="{" u2="v" k="39" /> +<hkern u1="{" u2="q" k="53" /> +<hkern u1="{" u2="j" k="-14" /> +<hkern u1="{" u2="J" k="27" /> +<hkern u1="{" u2="F" k="16" /> +<hkern u1="{" u2="9" k="14" /> +<hkern u1="{" u2="8" k="29" /> +<hkern u1="{" u2="6" k="39" /> +<hkern u1="{" u2="4" k="45" /> +<hkern u1="{" u2="0" k="39" /> +<hkern u1="{" u2="(" k="35" /> +<hkern u1="|" u2="î" k="-31" /> +<hkern u1="|" u2="ì" k="-53" /> +<hkern u1="|" u2="Î" k="-14" /> +<hkern u1="}" u2="}" k="14" /> +<hkern u1="}" u2="]" k="14" /> +<hkern u1="}" u2=")" k="20" /> +<hkern u1="¡" u2="V" k="35" /> +<hkern u1="£" u2="4" k="27" /> +<hkern u1="°" u2="4" k="35" /> +<hkern u1="·" u2="7" k="92" /> +<hkern u1="·" u2="1" k="74" /> +<hkern u1="¿" u2="þ" k="-2" /> +<hkern u1="¿" u2="ð" k="111" /> +<hkern u1="¿" u2="ß" k="-20" /> +<hkern u1="¿" u2="Æ" k="47" /> +<hkern u1="¿" u2="x" k="61" /> +<hkern u1="¿" u2="v" k="98" /> +<hkern u1="¿" u2="q" k="109" /> +<hkern u1="¿" u2="j" k="20" /> +<hkern u1="¿" u2="X" k="57" /> +<hkern u1="¿" u2="V" k="131" /> +<hkern u1="¿" u2="M" k="76" /> +<hkern u1="¿" u2="J" k="61" /> +<hkern u1="¿" u2="F" k="80" /> +<hkern u1="Æ" u2="þ" k="41" /> +<hkern u1="Ç" u2="þ" k="33" /> +<hkern u1="È" u2="þ" k="41" /> +<hkern u1="É" u2="þ" k="41" /> +<hkern u1="Ê" u2="þ" k="41" /> +<hkern u1="Ë" u2="þ" k="41" /> +<hkern u1="Ì" u2="þ" k="37" /> +<hkern u1="Í" u2="þ" k="37" /> +<hkern u1="Î" u2="þ" k="37" /> +<hkern u1="Î" u2="}" k="-92" /> +<hkern u1="Î" u2="|" k="-8" /> +<hkern u1="Î" u2="]" k="-90" /> +<hkern u1="Î" u2=")" k="-102" /> +<hkern u1="Ï" u2="þ" k="37" /> +<hkern u1="Ï" u2="}" k="-14" /> +<hkern u1="Ï" u2="]" k="-8" /> +<hkern u1="Ï" u2=")" k="-4" /> +<hkern u1="Ñ" u2="þ" k="37" /> +<hkern u1="×" u2="7" k="49" /> +<hkern u1="×" u2="1" k="29" /> +<hkern u1="Ù" u2="þ" k="45" /> +<hkern u1="Ú" u2="þ" k="45" /> +<hkern u1="Û" u2="þ" k="45" /> +<hkern u1="Ü" u2="þ" k="45" /> +<hkern u1="Ý" u2="þ" k="25" /> +<hkern u1="Þ" u2="™" k="49" /> +<hkern u1="Þ" u2="Æ" k="43" /> +<hkern u1="Þ" u2="}" k="43" /> +<hkern u1="Þ" u2="]" k="55" /> +<hkern u1="Þ" u2="\" k="57" /> +<hkern u1="Þ" u2="X" k="59" /> +<hkern u1="Þ" u2="V" k="27" /> +<hkern u1="Þ" u2="J" k="39" /> +<hkern u1="Þ" u2="?" k="57" /> +<hkern u1="Þ" u2="7" k="47" /> +<hkern u1="Þ" u2="2" k="14" /> +<hkern u1="Þ" u2="/" k="84" /> +<hkern u1="Þ" u2=")" k="96" /> +<hkern u1="ß" u2="™" k="29" /> +<hkern u1="ß" u2="º" k="35" /> +<hkern u1="ß" u2="®" k="29" /> +<hkern u1="ß" u2="ª" k="31" /> +<hkern u1="ß" u2="}" k="31" /> +<hkern u1="ß" u2="v" k="49" /> +<hkern u1="ß" u2="]" k="45" /> +<hkern u1="ß" u2="\" k="45" /> +<hkern u1="ß" u2="V" k="55" /> +<hkern u1="ß" u2="?" k="33" /> +<hkern u1="ß" u2="*" k="27" /> +<hkern u1="ß" u2=")" k="63" /> +<hkern u1="ß" u2=" " k="35" /> +<hkern u1="í" u2="™" k="-74" /> +<hkern u1="í" u2="”" k="-74" /> +<hkern u1="í" u2="“" k="-31" /> +<hkern u1="í" u2="’" k="-74" /> +<hkern u1="í" u2="‘" k="-31" /> +<hkern u1="í" u2="þ" k="-23" /> +<hkern u1="í" u2="í" k="-4" /> +<hkern u1="í" u2="®" k="-16" /> +<hkern u1="í" u2="}" k="-37" /> +<hkern u1="í" u2="|" k="-16" /> +<hkern u1="í" u2="l" k="-23" /> +<hkern u1="í" u2="k" k="-23" /> +<hkern u1="í" u2="j" k="-20" /> +<hkern u1="í" u2="i" k="-20" /> +<hkern u1="í" u2="h" k="-23" /> +<hkern u1="í" u2="b" k="-23" /> +<hkern u1="í" u2="]" k="-53" /> +<hkern u1="í" u2="\" k="-80" /> +<hkern u1="í" u2="?" k="-98" /> +<hkern u1="í" u2="*" k="-18" /> +<hkern u1="í" u2=")" k="-23" /> +<hkern u1="í" u2="'" k="-51" /> +<hkern u1="í" u2="&" k="-8" /> +<hkern u1="í" u2=""" k="-51" /> +<hkern u1="í" u2="!" k="-20" /> +<hkern u1="î" u2="™" k="-35" /> +<hkern u1="î" u2="”" k="-41" /> +<hkern u1="î" u2="“" k="-68" /> +<hkern u1="î" u2="’" k="-49" /> +<hkern u1="î" u2="‘" k="-68" /> +<hkern u1="î" u2="þ" k="-18" /> +<hkern u1="î" u2="º" k="-8" /> +<hkern u1="î" u2="®" k="-53" /> +<hkern u1="î" u2="ª" k="-4" /> +<hkern u1="î" u2="}" k="-6" /> +<hkern u1="î" u2="|" k="-10" /> +<hkern u1="î" u2="l" k="-18" /> +<hkern u1="î" u2="k" k="-18" /> +<hkern u1="î" u2="j" k="-12" /> +<hkern u1="î" u2="i" k="-12" /> +<hkern u1="î" u2="h" k="-18" /> +<hkern u1="î" u2="b" k="-18" /> +<hkern u1="î" u2="]" k="-12" /> +<hkern u1="î" u2="\" k="-29" /> +<hkern u1="î" u2="?" k="-61" /> +<hkern u1="î" u2="*" k="-88" /> +<hkern u1="î" u2="'" k="-57" /> +<hkern u1="î" u2="&" k="-14" /> +<hkern u1="î" u2=""" k="-57" /> +<hkern u1="î" u2="!" k="-14" /> +<hkern u1="ï" u2="™" k="-6" /> +<hkern u1="ï" u2="”" k="-12" /> +<hkern u1="ï" u2="’" k="-12" /> +<hkern u1="ï" u2="}" k="-10" /> +<hkern u1="ï" u2="]" k="-12" /> +<hkern u1="ï" u2="\" k="-35" /> +<hkern u1="ï" u2="?" k="-27" /> +<hkern u1="ï" u2=")" k="-20" /> +<hkern u1="ï" u2="'" k="-4" /> +<hkern u1="ï" u2=""" k="-4" /> +<hkern u1="ð" u2="™" k="14" /> +<hkern u1="ð" u2="ï" k="-10" /> +<hkern u1="ð" u2="î" k="-27" /> +<hkern u1="ð" u2="ì" k="-35" /> +<hkern u1="ð" u2="Æ" k="6" /> +<hkern u1="ð" u2="}" k="25" /> +<hkern u1="ð" u2="x" k="18" /> +<hkern u1="ð" u2="]" k="31" /> +<hkern u1="ð" u2="\" k="16" /> +<hkern u1="ð" u2="X" k="20" /> +<hkern u1="ð" u2="V" k="23" /> +<hkern u1="ð" u2="J" k="10" /> +<hkern u1="ð" u2="?" k="20" /> +<hkern u1="ð" u2="/" k="37" /> +<hkern u1="ð" u2="*" k="10" /> +<hkern u1="ð" u2=")" k="63" /> +<hkern u1="÷" u2="7" k="84" /> +<hkern u1="÷" u2="3" k="12" /> +<hkern u1="÷" u2="2" k="12" /> +<hkern u1="÷" u2="1" k="68" /> +<hkern u1="Œ" u2="þ" k="41" /> +<hkern u1="Ÿ" u2="þ" k="25" /> +<hkern u1="‘" u2="î" k="-33" /> +<hkern u1="‘" u2="ì" k="-55" /> +<hkern u1="’" u2="ï" k="-18" /> +<hkern u1="’" u2="î" k="-80" /> +<hkern u1="’" u2="ì" k="-117" /> +<hkern u1="‚" u2="f" k="4" /> +<hkern u1="“" u2="î" k="-33" /> +<hkern u1="“" u2="ì" k="-55" /> +<hkern u1="”" u2="ï" k="-18" /> +<hkern u1="”" u2="î" k="-80" /> +<hkern u1="”" u2="ì" k="-117" /> +<hkern u1="„" u2="f" k="4" /> +<hkern u1="fi" u2="î" k="-37" /> +<hkern u1="fi" u2="ì" k="-61" /> +<hkern g1="germandbls" g2="Y,Yacute,Ydieresis" k="80" /> +<hkern g1="germandbls" g2="quoteright,quotedblright" k="31" /> +<hkern g1="germandbls" g2="y,yacute,ydieresis" k="51" /> +<hkern g1="germandbls" g2="W" k="37" /> +<hkern g1="germandbls" g2="t" k="41" /> +<hkern g1="germandbls" g2="quotedbl,quotesingle" k="31" /> +<hkern g1="germandbls" g2="T" k="57" /> +<hkern g1="germandbls" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="12" /> +<hkern g1="germandbls" g2="w" k="41" /> +<hkern g1="germandbls" g2="f,germandbls,thorn,uniFB01,uniFB02" k="33" /> +<hkern g1="germandbls" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="16" /> +<hkern g1="germandbls" g2="quoteleft,quotedblleft" k="29" /> +<hkern g1="r" g2="Y,Yacute,Ydieresis" k="29" /> +<hkern g1="r" g2="parenright" k="92" /> +<hkern g1="r" g2="T" k="92" /> +<hkern g1="r" g2="Z" k="20" /> +<hkern g1="r" g2="space,uni00A0" k="39" /> +<hkern g1="r" g2="hyphen,uni00AD,endash,emdash" k="47" /> +<hkern g1="r" g2="q" k="4" /> +<hkern g1="r" g2="trademark" k="29" /> +<hkern g1="r" g2="bracketright" k="51" /> +<hkern g1="r" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="66" /> +<hkern g1="r" g2="eth" k="33" /> +<hkern g1="r" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="6" /> +<hkern g1="r" g2="asterisk" k="-10" /> +<hkern g1="r" g2="X" k="57" /> +<hkern g1="r" g2="slash" k="119" /> +<hkern g1="r" g2="AE" k="131" /> +<hkern g1="r" g2="braceright" k="39" /> +<hkern g1="r" g2="d" k="4" /> +<hkern g1="r" g2="J" k="76" /> +<hkern g1="r" g2="guilsinglleft" k="33" /> +<hkern g1="r" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="106" /> +<hkern g1="r" g2="backslash" k="8" /> +<hkern g1="r" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="10" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="parenright" k="27" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="4" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="slash" k="61" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="AE" k="31" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="J" k="20" /> +<hkern g1="Thorn" g2="Y,Yacute,Ydieresis" k="82" /> +<hkern g1="Thorn" g2="W" k="4" /> +<hkern g1="Thorn" g2="T" k="78" /> +<hkern g1="Thorn" g2="Z" k="23" /> +<hkern g1="Thorn" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="16" /> +<hkern g1="b" g2="Y,Yacute,Ydieresis" k="143" /> +<hkern g1="b" g2="quoteright,quotedblright" k="47" /> +<hkern g1="b" g2="y,yacute,ydieresis" k="12" /> +<hkern g1="b" g2="W" k="33" /> +<hkern g1="b" g2="quotedbl,quotesingle" k="39" /> +<hkern g1="b" g2="T" k="199" /> +<hkern g1="b" g2="w" k="4" /> +<hkern g1="b" g2="f,germandbls,thorn,uniFB01,uniFB02" k="4" /> +<hkern g1="b" g2="quoteleft,quotedblleft" k="37" /> +<hkern g1="b" g2="Z" k="10" /> +<hkern g1="exclam,numbersign,dollar,percent,parenright,plus,zero,one,two,three,five,six,eight,nine,less,equal,greater,question,M,bracketright,asciicircum,underscore,braceright,asciitilde,cent,sterling,currency,yen,ordfeminine,logicalnot,plusminus,uni00B2,uni00B3,uni00B9,ordmasculine,onequarter,onehalf,threequarters,multiply,divide,bullet,ellipsis" g2="Y,Yacute,Ydieresis" k="23" /> +<hkern g1="exclam,numbersign,dollar,percent,parenright,plus,zero,one,two,three,five,six,eight,nine,less,equal,greater,question,M,bracketright,asciicircum,underscore,braceright,asciitilde,cent,sterling,currency,yen,ordfeminine,logicalnot,plusminus,uni00B2,uni00B3,uni00B9,ordmasculine,onequarter,onehalf,threequarters,multiply,divide,bullet,ellipsis" g2="W" k="4" /> +<hkern g1="exclam,numbersign,dollar,percent,parenright,plus,zero,one,two,three,five,six,eight,nine,less,equal,greater,question,M,bracketright,asciicircum,underscore,braceright,asciitilde,cent,sterling,currency,yen,ordfeminine,logicalnot,plusminus,uni00B2,uni00B3,uni00B9,ordmasculine,onequarter,onehalf,threequarters,multiply,divide,bullet,ellipsis" g2="b,h,k" k="-203" /> +<hkern g1="w" g2="Y,Yacute,Ydieresis" k="86" /> +<hkern g1="w" g2="parenright" k="102" /> +<hkern g1="w" g2="W" k="6" /> +<hkern g1="w" g2="T" k="152" /> +<hkern g1="w" g2="Z" k="14" /> +<hkern g1="w" g2="trademark" k="43" /> +<hkern g1="w" g2="bracketright" k="63" /> +<hkern g1="w" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="12" /> +<hkern g1="w" g2="X" k="31" /> +<hkern g1="w" g2="slash" k="59" /> +<hkern g1="w" g2="AE" k="37" /> +<hkern g1="w" g2="braceright" k="49" /> +<hkern g1="w" g2="J" k="43" /> +<hkern g1="w" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="16" /> +<hkern g1="w" g2="backslash" k="49" /> +<hkern g1="w" g2="V" k="23" /> +<hkern g1="w" g2="question" k="41" /> +<hkern g1="Z" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="12" /> +<hkern g1="Z" g2="hyphen,uni00AD,endash,emdash" k="20" /> +<hkern g1="Z" g2="q" k="6" /> +<hkern g1="Z" g2="eth" k="12" /> +<hkern g1="Z" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="12" /> +<hkern g1="Z" g2="d" k="10" /> +<hkern g1="Z" g2="guilsinglleft" k="8" /> +<hkern g1="Z" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="12" /> +<hkern g1="Z" g2="four" k="27" /> +<hkern g1="Z" g2="copyright" k="16" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="Y,Yacute,Ydieresis" k="152" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="parenright" k="98" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quoteright,quotedblright" k="51" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="y,yacute,ydieresis" k="16" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="W" k="39" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="t" k="12" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quotedbl,quotesingle" k="47" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="T" k="207" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="w" k="12" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="f,germandbls,thorn,uniFB01,uniFB02" k="10" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quoteleft,quotedblleft" k="43" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="trademark" k="66" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="bracketright" k="68" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="asterisk" k="39" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="X" k="16" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="slash" k="27" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="AE" k="4" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="braceright" k="51" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="backslash" k="115" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="V" k="84" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="question" k="84" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="x" k="25" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="S" k="6" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="v" k="16" /> +<hkern g1="R" g2="Y,Yacute,Ydieresis" k="47" /> +<hkern g1="R" g2="parenright" k="43" /> +<hkern g1="R" g2="W" k="6" /> +<hkern g1="R" g2="T" k="23" /> +<hkern g1="R" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="4" /> +<hkern g1="R" g2="q" k="6" /> +<hkern g1="R" g2="trademark" k="14" /> +<hkern g1="R" g2="bracketright" k="43" /> +<hkern g1="R" g2="eth" k="16" /> +<hkern g1="R" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="12" /> +<hkern g1="R" g2="braceright" k="20" /> +<hkern g1="R" g2="d" k="10" /> +<hkern g1="R" g2="guilsinglleft" k="29" /> +<hkern g1="R" g2="backslash" k="33" /> +<hkern g1="R" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="12" /> +<hkern g1="R" g2="V" k="20" /> +<hkern g1="R" g2="question" k="20" /> +<hkern g1="R" g2="four" k="14" /> +<hkern g1="R" g2="seven" k="14" /> +<hkern g1="g" g2="Y,Yacute,Ydieresis" k="131" /> +<hkern g1="g" g2="quoteright,quotedblright" k="10" /> +<hkern g1="g" g2="W" k="25" /> +<hkern g1="g" g2="T" k="184" /> +<hkern g1="g" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="6" /> +<hkern g1="g" g2="trademark" k="55" /> +<hkern g1="g" g2="asterisk" k="12" /> +<hkern g1="g" g2="backslash" k="78" /> +<hkern g1="g" g2="V" k="57" /> +<hkern g1="g" g2="question" k="55" /> +<hkern g1="t" g2="Y,Yacute,Ydieresis" k="49" /> +<hkern g1="t" g2="parenright" k="53" /> +<hkern g1="t" g2="T" k="131" /> +<hkern g1="t" g2="trademark" k="31" /> +<hkern g1="t" g2="bracketright" k="39" /> +<hkern g1="t" g2="braceright" k="16" /> +<hkern g1="t" g2="guilsinglleft" k="14" /> +<hkern g1="t" g2="backslash" k="37" /> +<hkern g1="t" g2="V" k="4" /> +<hkern g1="t" g2="question" k="18" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="parenright" k="16" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="14" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="q" k="6" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="eth" k="10" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="10" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="d" k="4" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="12" /> +<hkern g1="W" g2="space,uni00A0" k="18" /> +<hkern g1="W" g2="q" k="29" /> +<hkern g1="W" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="39" /> +<hkern g1="W" g2="eth" k="33" /> +<hkern g1="W" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="29" /> +<hkern g1="W" g2="slash" k="86" /> +<hkern g1="W" g2="AE" k="66" /> +<hkern g1="W" g2="d" k="27" /> +<hkern g1="W" g2="J" k="47" /> +<hkern g1="W" g2="guilsinglleft" k="8" /> +<hkern g1="W" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="37" /> +<hkern g1="W" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="29" /> +<hkern g1="W" g2="s" k="14" /> +<hkern g1="W" g2="m,n,p,r,ntilde" k="18" /> +<hkern g1="W" g2="z" k="6" /> +<hkern g1="W" g2="u,ugrave,uacute,ucircumflex,udieresis" k="16" /> +<hkern g1="B" g2="Y,Yacute,Ydieresis" k="45" /> +<hkern g1="B" g2="W" k="8" /> +<hkern g1="B" g2="T" k="16" /> +<hkern g1="l,uniFB02" g2="Y,Yacute,Ydieresis" k="76" /> +<hkern g1="l,uniFB02" g2="parenright" k="27" /> +<hkern g1="l,uniFB02" g2="quoteright,quotedblright" k="31" /> +<hkern g1="l,uniFB02" g2="y,yacute,ydieresis" k="49" /> +<hkern g1="l,uniFB02" g2="W" k="45" /> +<hkern g1="l,uniFB02" g2="t" k="33" /> +<hkern g1="l,uniFB02" g2="quotedbl,quotesingle" k="31" /> +<hkern g1="l,uniFB02" g2="T" k="68" /> +<hkern g1="l,uniFB02" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="23" /> +<hkern g1="l,uniFB02" g2="w" k="39" /> +<hkern g1="l,uniFB02" g2="f,germandbls,thorn,uniFB01,uniFB02" k="16" /> +<hkern g1="l,uniFB02" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="35" /> +<hkern g1="l,uniFB02" g2="quoteleft,quotedblleft" k="31" /> +<hkern g1="l,uniFB02" g2="space,uni00A0" k="47" /> +<hkern g1="l,uniFB02" g2="hyphen,uni00AD,endash,emdash" k="33" /> +<hkern g1="l,uniFB02" g2="trademark" k="33" /> +<hkern g1="l,uniFB02" g2="bracketright" k="27" /> +<hkern g1="l,uniFB02" g2="eth" k="4" /> +<hkern g1="l,uniFB02" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="4" /> +<hkern g1="l,uniFB02" g2="asterisk" k="35" /> +<hkern g1="l,uniFB02" g2="braceright" k="14" /> +<hkern g1="l,uniFB02" g2="d" k="4" /> +<hkern g1="l,uniFB02" g2="guilsinglleft" k="49" /> +<hkern g1="l,uniFB02" g2="backslash" k="45" /> +<hkern g1="l,uniFB02" g2="V" k="57" /> +<hkern g1="l,uniFB02" g2="question" k="41" /> +<hkern g1="l,uniFB02" g2="copyright" k="35" /> +<hkern g1="l,uniFB02" g2="v" k="45" /> +<hkern g1="l,uniFB02" g2="registered" k="33" /> +<hkern g1="l,uniFB02" g2="ordfeminine" k="31" /> +<hkern g1="l,uniFB02" g2="periodcentered" k="188" /> +<hkern g1="l,uniFB02" g2="ordmasculine" k="31" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Y,Yacute,Ydieresis" k="59" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="parenright" k="88" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="W" k="6" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="T" k="25" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Z" k="10" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="trademark" k="29" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="bracketright" k="53" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="12" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="X" k="41" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="slash" k="59" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="AE" k="29" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="braceright" k="41" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="J" k="18" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="backslash" k="41" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="V" k="23" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="question" k="18" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="seven" k="12" /> +<hkern g1="d" g2="parenright" k="20" /> +<hkern g1="y,yacute,ydieresis" g2="Y,Yacute,Ydieresis" k="80" /> +<hkern g1="y,yacute,ydieresis" g2="parenright" k="92" /> +<hkern g1="y,yacute,ydieresis" g2="W" k="4" /> +<hkern g1="y,yacute,ydieresis" g2="T" k="139" /> +<hkern g1="y,yacute,ydieresis" g2="Z" k="16" /> +<hkern g1="y,yacute,ydieresis" g2="trademark" k="43" /> +<hkern g1="y,yacute,ydieresis" g2="bracketright" k="59" /> +<hkern g1="y,yacute,ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="18" /> +<hkern g1="y,yacute,ydieresis" g2="eth" k="4" /> +<hkern g1="y,yacute,ydieresis" g2="X" k="33" /> +<hkern g1="y,yacute,ydieresis" g2="slash" k="70" /> +<hkern g1="y,yacute,ydieresis" g2="AE" k="37" /> +<hkern g1="y,yacute,ydieresis" g2="braceright" k="45" /> +<hkern g1="y,yacute,ydieresis" g2="J" k="47" /> +<hkern g1="y,yacute,ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="23" /> +<hkern g1="y,yacute,ydieresis" g2="backslash" k="45" /> +<hkern g1="y,yacute,ydieresis" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="4" /> +<hkern g1="y,yacute,ydieresis" g2="V" k="20" /> +<hkern g1="y,yacute,ydieresis" g2="question" k="37" /> +<hkern g1="G" g2="Y,Yacute,Ydieresis" k="23" /> +<hkern g1="G" g2="parenright" k="41" /> +<hkern g1="G" g2="W" k="6" /> +<hkern g1="G" g2="T" k="8" /> +<hkern g1="G" g2="bracketright" k="14" /> +<hkern g1="G" g2="V" k="8" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="Y,Yacute,Ydieresis" k="121" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="parenright" k="78" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="W" k="23" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="T" k="170" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="trademark" k="53" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="bracketright" k="57" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="asterisk" k="10" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="braceright" k="43" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="backslash" k="68" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="V" k="53" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="question" k="51" /> +<hkern g1="T" g2="y,yacute,ydieresis" k="86" /> +<hkern g1="T" g2="t" k="43" /> +<hkern g1="T" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="8" /> +<hkern g1="T" g2="w" k="78" /> +<hkern g1="T" g2="f,germandbls,thorn,uniFB01,uniFB02" k="41" /> +<hkern g1="T" g2="space,uni00A0" k="45" /> +<hkern g1="T" g2="hyphen,uni00AD,endash,emdash" k="106" /> +<hkern g1="T" g2="q" k="190" /> +<hkern g1="T" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="117" /> +<hkern g1="T" g2="eth" k="109" /> +<hkern g1="T" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="197" /> +<hkern g1="T" g2="asterisk" k="-10" /> +<hkern g1="T" g2="slash" k="150" /> +<hkern g1="T" g2="AE" k="160" /> +<hkern g1="T" g2="d" k="188" /> +<hkern g1="T" g2="J" k="63" /> +<hkern g1="T" g2="guilsinglleft" k="133" /> +<hkern g1="T" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="113" /> +<hkern g1="T" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="190" /> +<hkern g1="T" g2="four" k="63" /> +<hkern g1="T" g2="copyright" k="12" /> +<hkern g1="T" g2="x" k="115" /> +<hkern g1="T" g2="v" k="88" /> +<hkern g1="T" g2="s" k="182" /> +<hkern g1="T" g2="m,n,p,r,ntilde" k="125" /> +<hkern g1="T" g2="z" k="145" /> +<hkern g1="T" g2="u,ugrave,uacute,ucircumflex,udieresis" k="133" /> +<hkern g1="T" g2="colon,semicolon" k="96" /> +<hkern g1="T" g2="one" k="-12" /> +<hkern g1="T" g2="guilsinglright" k="109" /> +<hkern g1="i,j,igrave,iacute,icircumflex,idieresis,uniFB01" g2="parenright" k="25" /> +<hkern g1="eth" g2="Y,Yacute,Ydieresis" k="37" /> +<hkern g1="eth" g2="quoteright,quotedblright" k="10" /> +<hkern g1="eth" g2="W" k="14" /> +<hkern g1="eth" g2="T" k="43" /> +<hkern g1="eth" g2="quoteleft,quotedblleft" k="10" /> +<hkern g1="eth" g2="Z" k="6" /> +<hkern g1="eth" g2="S" k="6" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="Y,Yacute,Ydieresis" k="129" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="parenright" k="78" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="quoteright,quotedblright" k="10" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="W" k="27" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="T" k="188" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="6" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="trademark" k="55" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="bracketright" k="59" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="asterisk" k="12" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="braceright" k="43" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="backslash" k="78" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="V" k="57" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="question" k="55" /> +<hkern g1="L" g2="Y,Yacute,Ydieresis" k="186" /> +<hkern g1="L" g2="parenright" k="41" /> +<hkern g1="L" g2="quoteright,quotedblright" k="184" /> +<hkern g1="L" g2="y,yacute,ydieresis" k="102" /> +<hkern g1="L" g2="W" k="76" /> +<hkern g1="L" g2="t" k="61" /> +<hkern g1="L" g2="quotedbl,quotesingle" k="186" /> +<hkern g1="L" g2="T" k="195" /> +<hkern g1="L" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="33" /> +<hkern g1="L" g2="w" k="78" /> +<hkern g1="L" g2="f,germandbls,thorn,uniFB01,uniFB02" k="35" /> +<hkern g1="L" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="35" /> +<hkern g1="L" g2="quoteleft,quotedblleft" k="184" /> +<hkern g1="L" g2="space,uni00A0" k="49" /> +<hkern g1="L" g2="hyphen,uni00AD,endash,emdash" k="63" /> +<hkern g1="L" g2="trademark" k="186" /> +<hkern g1="L" g2="bracketright" k="41" /> +<hkern g1="L" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="8" /> +<hkern g1="L" g2="asterisk" k="186" /> +<hkern g1="L" g2="AE" k="-8" /> +<hkern g1="L" g2="braceright" k="12" /> +<hkern g1="L" g2="guilsinglleft" k="41" /> +<hkern g1="L" g2="backslash" k="176" /> +<hkern g1="L" g2="V" k="158" /> +<hkern g1="L" g2="question" k="84" /> +<hkern g1="L" g2="four" k="61" /> +<hkern g1="L" g2="copyright" k="43" /> +<hkern g1="L" g2="v" k="92" /> +<hkern g1="L" g2="seven" k="61" /> +<hkern g1="L" g2="registered" k="184" /> +<hkern g1="L" g2="ordfeminine" k="184" /> +<hkern g1="L" g2="periodcentered" k="236" /> +<hkern g1="L" g2="ordmasculine" k="186" /> +<hkern g1="L" g2="one" k="92" /> +<hkern g1="L" g2="L" k="6" /> +<hkern g1="D,Eth" g2="Y,Yacute,Ydieresis" k="59" /> +<hkern g1="D,Eth" g2="parenright" k="88" /> +<hkern g1="D,Eth" g2="W" k="6" /> +<hkern g1="D,Eth" g2="T" k="27" /> +<hkern g1="D,Eth" g2="Z" k="10" /> +<hkern g1="D,Eth" g2="trademark" k="29" /> +<hkern g1="D,Eth" g2="bracketright" k="51" /> +<hkern g1="D,Eth" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="12" /> +<hkern g1="D,Eth" g2="X" k="41" /> +<hkern g1="D,Eth" g2="slash" k="57" /> +<hkern g1="D,Eth" g2="AE" k="29" /> +<hkern g1="D,Eth" g2="braceright" k="41" /> +<hkern g1="D,Eth" g2="J" k="18" /> +<hkern g1="D,Eth" g2="backslash" k="41" /> +<hkern g1="D,Eth" g2="V" k="23" /> +<hkern g1="D,Eth" g2="question" k="18" /> +<hkern g1="Y,Yacute,Ydieresis" g2="parenright" k="-8" /> +<hkern g1="Y,Yacute,Ydieresis" g2="y,yacute,ydieresis" k="37" /> +<hkern g1="Y,Yacute,Ydieresis" g2="t" k="33" /> +<hkern g1="Y,Yacute,Ydieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="35" /> +<hkern g1="Y,Yacute,Ydieresis" g2="w" k="45" /> +<hkern g1="Y,Yacute,Ydieresis" g2="f,germandbls,thorn,uniFB01,uniFB02" k="29" /> +<hkern g1="Y,Yacute,Ydieresis" g2="space,uni00A0" k="55" /> +<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,uni00AD,endash,emdash" k="100" /> +<hkern g1="Y,Yacute,Ydieresis" g2="q" k="145" /> +<hkern g1="Y,Yacute,Ydieresis" g2="trademark" k="-10" /> +<hkern g1="Y,Yacute,Ydieresis" g2="bracketright" k="-6" /> +<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="121" /> +<hkern g1="Y,Yacute,Ydieresis" g2="eth" k="96" /> +<hkern g1="Y,Yacute,Ydieresis" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="150" /> +<hkern g1="Y,Yacute,Ydieresis" g2="slash" k="160" /> +<hkern g1="Y,Yacute,Ydieresis" g2="AE" k="193" /> +<hkern g1="Y,Yacute,Ydieresis" g2="braceright" k="-4" /> +<hkern g1="Y,Yacute,Ydieresis" g2="d" k="141" /> +<hkern g1="Y,Yacute,Ydieresis" g2="J" k="82" /> +<hkern g1="Y,Yacute,Ydieresis" g2="guilsinglleft" k="98" /> +<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="125" /> +<hkern g1="Y,Yacute,Ydieresis" g2="backslash" k="-14" /> +<hkern g1="Y,Yacute,Ydieresis" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="143" /> +<hkern g1="Y,Yacute,Ydieresis" g2="question" k="-10" /> +<hkern g1="Y,Yacute,Ydieresis" g2="four" k="78" /> +<hkern g1="Y,Yacute,Ydieresis" g2="copyright" k="37" /> +<hkern g1="Y,Yacute,Ydieresis" g2="x" k="55" /> +<hkern g1="Y,Yacute,Ydieresis" g2="S" k="16" /> +<hkern g1="Y,Yacute,Ydieresis" g2="v" k="37" /> +<hkern g1="Y,Yacute,Ydieresis" g2="seven" k="-18" /> +<hkern g1="Y,Yacute,Ydieresis" g2="s" k="111" /> +<hkern g1="Y,Yacute,Ydieresis" g2="m,n,p,r,ntilde" k="113" /> +<hkern g1="Y,Yacute,Ydieresis" g2="z" k="86" /> +<hkern g1="Y,Yacute,Ydieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="104" /> +<hkern g1="Y,Yacute,Ydieresis" g2="ordfeminine" k="18" /> +<hkern g1="Y,Yacute,Ydieresis" g2="ordmasculine" k="16" /> +<hkern g1="Y,Yacute,Ydieresis" g2="colon,semicolon" k="61" /> +<hkern g1="Y,Yacute,Ydieresis" g2="guilsinglright" k="70" /> +<hkern g1="Y,Yacute,Ydieresis" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="6" /> +<hkern g1="Y,Yacute,Ydieresis" g2="ampersand" k="8" /> +<hkern g1="Y,Yacute,Ydieresis" g2="zero" k="23" /> +<hkern g1="v" g2="Y,Yacute,Ydieresis" k="80" /> +<hkern g1="v" g2="W" k="4" /> +<hkern g1="v" g2="T" k="145" /> +<hkern g1="v" g2="Z" k="18" /> +<hkern g1="v" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="20" /> +<hkern g1="v" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="27" /> +<hkern g1="f" g2="Y,Yacute,Ydieresis" k="-80" /> +<hkern g1="f" g2="quoteright,quotedblright" k="-20" /> +<hkern g1="f" g2="W" k="-33" /> +<hkern g1="f" g2="quotedbl,quotesingle" k="-16" /> +<hkern g1="f" g2="T" k="-51" /> +<hkern g1="f" g2="quoteleft,quotedblleft" k="-6" /> +<hkern g1="f" g2="Z" k="-4" /> +<hkern g1="f" g2="hyphen,uni00AD,endash,emdash" k="49" /> +<hkern g1="f" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="41" /> +<hkern g1="f" g2="guilsinglleft" k="37" /> +<hkern g1="f" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="59" /> +<hkern g1="f" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="8" /> +<hkern g1="s" g2="Y,Yacute,Ydieresis" k="115" /> +<hkern g1="s" g2="parenright" k="82" /> +<hkern g1="s" g2="quoteright,quotedblright" k="6" /> +<hkern g1="s" g2="y,yacute,ydieresis" k="4" /> +<hkern g1="s" g2="W" k="18" /> +<hkern g1="s" g2="T" k="176" /> +<hkern g1="s" g2="trademark" k="59" /> +<hkern g1="s" g2="bracketright" k="59" /> +<hkern g1="s" g2="asterisk" k="12" /> +<hkern g1="s" g2="braceright" k="41" /> +<hkern g1="s" g2="guilsinglleft" k="14" /> +<hkern g1="s" g2="backslash" k="72" /> +<hkern g1="s" g2="V" k="49" /> +<hkern g1="s" g2="question" k="51" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="Y,Yacute,Ydieresis" k="121" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="parenright" k="25" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quoteright,quotedblright" k="86" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="y,yacute,ydieresis" k="37" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="W" k="47" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="t" k="35" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quotedbl,quotesingle" k="82" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="T" k="121" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="18" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="w" k="29" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="f,germandbls,thorn,uniFB01,uniFB02" k="18" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="23" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quoteleft,quotedblleft" k="76" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="space,uni00A0" k="51" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="trademark" k="98" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="bracketright" k="25" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="asterisk" k="76" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="backslash" k="113" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="V" k="78" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="question" k="76" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="copyright" k="23" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="v" k="33" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="seven" k="49" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="registered" k="59" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="ordfeminine" k="47" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="ordmasculine" k="49" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="one" k="68" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="L" k="4" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="4" /> +<hkern g1="V" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="16" /> +<hkern g1="V" g2="w" k="4" /> +<hkern g1="V" g2="hyphen,uni00AD,endash,emdash" k="41" /> +<hkern g1="V" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="76" /> +<hkern g1="V" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="70" /> +<hkern g1="V" g2="d" k="66" /> +<hkern g1="V" g2="guilsinglleft" k="47" /> +<hkern g1="V" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="82" /> +<hkern g1="V" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="72" /> +<hkern g1="V" g2="s" k="39" /> +<hkern g1="V" g2="m,n,p,r,ntilde" k="47" /> +<hkern g1="V" g2="z" k="27" /> +<hkern g1="V" g2="u,ugrave,uacute,ucircumflex,udieresis" k="37" /> +<hkern g1="V" g2="colon,semicolon" k="27" /> +<hkern g1="V" g2="guilsinglright" k="25" /> +<hkern g1="k" g2="Y,Yacute,Ydieresis" k="98" /> +<hkern g1="k" g2="parenright" k="31" /> +<hkern g1="k" g2="W" k="18" /> +<hkern g1="k" g2="T" k="152" /> +<hkern g1="k" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="6" /> +<hkern g1="k" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="14" /> +<hkern g1="k" g2="hyphen,uni00AD,endash,emdash" k="29" /> +<hkern g1="k" g2="q" k="16" /> +<hkern g1="k" g2="trademark" k="57" /> +<hkern g1="k" g2="bracketright" k="39" /> +<hkern g1="k" g2="eth" k="25" /> +<hkern g1="k" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="k" g2="asterisk" k="10" /> +<hkern g1="k" g2="braceright" k="16" /> +<hkern g1="k" g2="d" k="16" /> +<hkern g1="k" g2="guilsinglleft" k="49" /> +<hkern g1="k" g2="backslash" k="61" /> +<hkern g1="k" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="16" /> +<hkern g1="k" g2="V" k="39" /> +<hkern g1="k" g2="question" k="49" /> +<hkern g1="k" g2="L" k="6" /> +<hkern g1="k" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="6" /> +<hkern g1="N,Ntilde" g2="parenright" k="25" /> +<hkern g1="N,Ntilde" g2="slash" k="10" /> +<hkern g1="c,ccedilla" g2="Y,Yacute,Ydieresis" k="100" /> +<hkern g1="c,ccedilla" g2="parenright" k="66" /> +<hkern g1="c,ccedilla" g2="W" k="6" /> +<hkern g1="c,ccedilla" g2="T" k="201" /> +<hkern g1="c,ccedilla" g2="hyphen,uni00AD,endash,emdash" k="25" /> +<hkern g1="c,ccedilla" g2="q" k="12" /> +<hkern g1="c,ccedilla" g2="trademark" k="53" /> +<hkern g1="c,ccedilla" g2="bracketright" k="55" /> +<hkern g1="c,ccedilla" g2="eth" k="20" /> +<hkern g1="c,ccedilla" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="14" /> +<hkern g1="c,ccedilla" g2="braceright" k="39" /> +<hkern g1="c,ccedilla" g2="d" k="10" /> +<hkern g1="c,ccedilla" g2="guilsinglleft" k="39" /> +<hkern g1="c,ccedilla" g2="backslash" k="63" /> +<hkern g1="c,ccedilla" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="12" /> +<hkern g1="c,ccedilla" g2="V" k="31" /> +<hkern g1="c,ccedilla" g2="question" k="47" /> +<hkern g1="J" g2="parenright" k="25" /> +<hkern g1="J" g2="slash" k="41" /> +<hkern g1="F" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="8" /> +<hkern g1="F" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="82" /> +<hkern g1="F" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="27" /> +<hkern g1="F" g2="d" k="27" /> +<hkern g1="F" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="135" /> +<hkern g1="F" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="29" /> +<hkern g1="F" g2="s" k="16" /> +<hkern g1="F" g2="m,n,p,r,ntilde" k="25" /> +<hkern g1="F" g2="z" k="16" /> +<hkern g1="F" g2="u,ugrave,uacute,ucircumflex,udieresis" k="18" /> +<hkern g1="F" g2="colon,semicolon" k="16" /> +<hkern g1="x" g2="Y,Yacute,Ydieresis" k="53" /> +<hkern g1="x" g2="T" k="135" /> +<hkern g1="x" g2="hyphen,uni00AD,endash,emdash" k="33" /> +<hkern g1="x" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="25" /> +<hkern g1="x" g2="d" k="18" /> +<hkern g1="x" g2="guilsinglleft" k="53" /> +<hkern g1="x" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="20" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="Y,Yacute,Ydieresis" k="150" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="parenright" k="80" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quoteright,quotedblright" k="31" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="y,yacute,ydieresis" k="4" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="W" k="23" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quotedbl,quotesingle" k="25" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="T" k="201" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quoteleft,quotedblleft" k="18" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="trademark" k="55" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="bracketright" k="59" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="asterisk" k="23" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="braceright" k="45" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="backslash" k="94" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="V" k="59" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="question" k="68" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="v" k="4" /> +<hkern g1="p,thorn" g2="Y,Yacute,Ydieresis" k="143" /> +<hkern g1="p,thorn" g2="parenright" k="98" /> +<hkern g1="p,thorn" g2="quoteright,quotedblright" k="43" /> +<hkern g1="p,thorn" g2="y,yacute,ydieresis" k="12" /> +<hkern g1="p,thorn" g2="W" k="35" /> +<hkern g1="p,thorn" g2="t" k="4" /> +<hkern g1="p,thorn" g2="quotedbl,quotesingle" k="35" /> +<hkern g1="p,thorn" g2="T" k="199" /> +<hkern g1="p,thorn" g2="w" k="8" /> +<hkern g1="p,thorn" g2="f,germandbls,thorn,uniFB01,uniFB02" k="4" /> +<hkern g1="p,thorn" g2="quoteleft,quotedblleft" k="33" /> +<hkern g1="p,thorn" g2="Z" k="6" /> +<hkern g1="p,thorn" g2="trademark" k="63" /> +<hkern g1="p,thorn" g2="bracketright" k="68" /> +<hkern g1="p,thorn" g2="asterisk" k="33" /> +<hkern g1="p,thorn" g2="X" k="14" /> +<hkern g1="p,thorn" g2="slash" k="27" /> +<hkern g1="p,thorn" g2="AE" k="4" /> +<hkern g1="p,thorn" g2="braceright" k="51" /> +<hkern g1="p,thorn" g2="backslash" k="106" /> +<hkern g1="p,thorn" g2="V" k="80" /> +<hkern g1="p,thorn" g2="question" k="80" /> +<hkern g1="p,thorn" g2="x" k="20" /> +<hkern g1="p,thorn" g2="v" k="14" /> +<hkern g1="S" g2="Y,Yacute,Ydieresis" k="14" /> +<hkern g1="S" g2="parenright" k="41" /> +<hkern g1="S" g2="y,yacute,ydieresis" k="8" /> +<hkern g1="S" g2="t" k="8" /> +<hkern g1="S" g2="w" k="6" /> +<hkern g1="S" g2="f,germandbls,thorn,uniFB01,uniFB02" k="8" /> +<hkern g1="S" g2="bracketright" k="12" /> +<hkern g1="S" g2="slash" k="10" /> +<hkern g1="S" g2="AE" k="6" /> +<hkern g1="S" g2="V" k="4" /> +<hkern g1="S" g2="v" k="6" /> +<hkern g1="h,m,n,ntilde" g2="Y,Yacute,Ydieresis" k="137" /> +<hkern g1="h,m,n,ntilde" g2="parenright" k="76" /> +<hkern g1="h,m,n,ntilde" g2="quoteright,quotedblright" k="33" /> +<hkern g1="h,m,n,ntilde" g2="W" k="31" /> +<hkern g1="h,m,n,ntilde" g2="quotedbl,quotesingle" k="27" /> +<hkern g1="h,m,n,ntilde" g2="T" k="195" /> +<hkern g1="h,m,n,ntilde" g2="w" k="4" /> +<hkern g1="h,m,n,ntilde" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="8" /> +<hkern g1="h,m,n,ntilde" g2="quoteleft,quotedblleft" k="20" /> +<hkern g1="h,m,n,ntilde" g2="trademark" k="63" /> +<hkern g1="h,m,n,ntilde" g2="bracketright" k="59" /> +<hkern g1="h,m,n,ntilde" g2="asterisk" k="27" /> +<hkern g1="h,m,n,ntilde" g2="braceright" k="43" /> +<hkern g1="h,m,n,ntilde" g2="backslash" k="100" /> +<hkern g1="h,m,n,ntilde" g2="V" k="72" /> +<hkern g1="h,m,n,ntilde" g2="question" k="70" /> +<hkern g1="K" g2="y,yacute,ydieresis" k="33" /> +<hkern g1="K" g2="t" k="25" /> +<hkern g1="K" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="55" /> +<hkern g1="K" g2="w" k="33" /> +<hkern g1="K" g2="f,germandbls,thorn,uniFB01,uniFB02" k="16" /> +<hkern g1="K" g2="space,uni00A0" k="20" /> +<hkern g1="K" g2="hyphen,uni00AD,endash,emdash" k="47" /> +<hkern g1="K" g2="q" k="39" /> +<hkern g1="K" g2="eth" k="47" /> +<hkern g1="K" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="49" /> +<hkern g1="K" g2="d" k="41" /> +<hkern g1="K" g2="guilsinglleft" k="41" /> +<hkern g1="K" g2="backslash" k="-6" /> +<hkern g1="K" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="37" /> +<hkern g1="K" g2="four" k="53" /> +<hkern g1="K" g2="copyright" k="45" /> +<hkern g1="K" g2="v" k="31" /> +<hkern g1="K" g2="seven" k="-10" /> +<hkern g1="K" g2="u,ugrave,uacute,ucircumflex,udieresis" k="16" /> +<hkern g1="K" g2="ordfeminine" k="31" /> +<hkern g1="K" g2="ordmasculine" k="31" /> +<hkern g1="K" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="23" /> +<hkern g1="C,Ccedilla" g2="parenright" k="14" /> +<hkern g1="C,Ccedilla" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="23" /> +<hkern g1="C,Ccedilla" g2="hyphen,uni00AD,endash,emdash" k="25" /> +<hkern g1="C,Ccedilla" g2="eth" k="10" /> +<hkern g1="C,Ccedilla" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="10" /> +<hkern g1="C,Ccedilla" g2="d" k="4" /> +<hkern g1="C,Ccedilla" g2="guilsinglleft" k="25" /> +<hkern g1="C,Ccedilla" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="6" /> +<hkern g1="C,Ccedilla" g2="four" k="31" /> +<hkern g1="C,Ccedilla" g2="copyright" k="20" /> +<hkern g1="C,Ccedilla" g2="ordfeminine" k="10" /> +<hkern g1="C,Ccedilla" g2="ordmasculine" k="12" /> +<hkern g1="X" g2="y,yacute,ydieresis" k="27" /> +<hkern g1="X" g2="t" k="25" /> +<hkern g1="X" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="41" /> +<hkern g1="X" g2="w" k="27" /> +<hkern g1="X" g2="f,germandbls,thorn,uniFB01,uniFB02" k="16" /> +<hkern g1="X" g2="hyphen,uni00AD,endash,emdash" k="37" /> +<hkern g1="X" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="39" /> +<hkern g1="X" g2="d" k="31" /> +<hkern g1="X" g2="guilsinglleft" k="41" /> +<hkern g1="X" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="29" /> +<hkern g1="X" g2="u,ugrave,uacute,ucircumflex,udieresis" k="14" /> +<hkern g1="X" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="18" /> +<hkern g1="P" g2="Y,Yacute,Ydieresis" k="14" /> +<hkern g1="P" g2="Z" k="12" /> +<hkern g1="P" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="59" /> +<hkern g1="P" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="135" /> +<hkern g1="z" g2="Y,Yacute,Ydieresis" k="94" /> +<hkern g1="z" g2="parenright" k="63" /> +<hkern g1="z" g2="W" k="6" /> +<hkern g1="z" g2="T" k="168" /> +<hkern g1="z" g2="hyphen,uni00AD,endash,emdash" k="18" /> +<hkern g1="z" g2="trademark" k="51" /> +<hkern g1="z" g2="bracketright" k="51" /> +<hkern g1="z" g2="eth" k="10" /> +<hkern g1="z" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="4" /> +<hkern g1="z" g2="braceright" k="35" /> +<hkern g1="z" g2="guilsinglleft" k="37" /> +<hkern g1="z" g2="backslash" k="57" /> +<hkern g1="z" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="4" /> +<hkern g1="z" g2="V" k="33" /> +<hkern g1="z" g2="question" k="43" /> +<hkern g1="guilsinglright" g2="quoteright,quotedblright" k="88" /> +<hkern g1="guilsinglright" g2="quotedbl,quotesingle" k="90" /> +<hkern g1="guilsinglright" g2="y,yacute,ydieresis" k="29" /> +<hkern g1="guilsinglright" g2="T" k="139" /> +<hkern g1="guilsinglright" g2="v" k="27" /> +<hkern g1="guilsinglright" g2="Y,Yacute,Ydieresis" k="131" /> +<hkern g1="guilsinglright" g2="f,germandbls,thorn,uniFB01,uniFB02" k="37" /> +<hkern g1="guilsinglright" g2="s" k="14" /> +<hkern g1="guilsinglright" g2="V" k="72" /> +<hkern g1="guilsinglright" g2="x" k="51" /> +<hkern g1="guilsinglright" g2="X" k="35" /> +<hkern g1="guilsinglright" g2="z" k="35" /> +<hkern g1="guilsinglright" g2="AE" k="8" /> +<hkern g1="guilsinglright" g2="w" k="14" /> +<hkern g1="guilsinglright" g2="Z" k="12" /> +<hkern g1="guilsinglright" g2="t" k="37" /> +<hkern g1="guilsinglright" g2="W" k="39" /> +<hkern g1="questiondown" g2="y,yacute,ydieresis" k="39" /> +<hkern g1="questiondown" g2="T" k="172" /> +<hkern g1="questiondown" g2="Y,Yacute,Ydieresis" k="154" /> +<hkern g1="questiondown" g2="f,germandbls,thorn,uniFB01,uniFB02" k="-80" /> +<hkern g1="questiondown" g2="s" k="94" /> +<hkern g1="questiondown" g2="z" k="78" /> +<hkern g1="questiondown" g2="w" k="96" /> +<hkern g1="questiondown" g2="Z" k="70" /> +<hkern g1="questiondown" g2="t" k="90" /> +<hkern g1="questiondown" g2="W" k="115" /> +<hkern g1="questiondown" g2="i,j,igrave,iacute,icircumflex,idieresis" k="82" /> +<hkern g1="questiondown" g2="m,n,p,r,ntilde" k="82" /> +<hkern g1="questiondown" g2="S" k="96" /> +<hkern g1="questiondown" g2="b,h,k" k="80" /> +<hkern g1="questiondown" g2="L" k="102" /> +<hkern g1="questiondown" g2="u,ugrave,uacute,ucircumflex,udieresis" k="100" /> +<hkern g1="questiondown" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="49" /> +<hkern g1="questiondown" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="102" /> +<hkern g1="questiondown" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="109" /> +<hkern g1="questiondown" g2="B,D,H,I,K,P,R,Igrave,Iacute,Icircumflex,Idieresis,Eth,Thorn" k="80" /> +<hkern g1="questiondown" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="106" /> +<hkern g1="questiondown" g2="d" k="104" /> +<hkern g1="questiondown" g2="N,Ntilde" k="80" /> +<hkern g1="questiondown" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="104" /> +<hkern g1="questiondown" g2="l" k="100" /> +<hkern g1="questiondown" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="104" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="quoteright,quotedblright" k="125" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="quotedbl,quotesingle" k="141" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="T" k="106" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Y,Yacute,Ydieresis" k="106" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="f,germandbls,thorn,uniFB01,uniFB02" k="20" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="V" k="43" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="x" k="33" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="X" k="20" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="z" k="18" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="t" k="25" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="W" k="16" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="seven" k="92" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="one" k="78" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="J" k="55" /> +<hkern g1="space,uni00A0" g2="quoteright,quotedblright" k="27" /> +<hkern g1="space,uni00A0" g2="quotedbl,quotesingle" k="27" /> +<hkern g1="space,uni00A0" g2="y,yacute,ydieresis" k="43" /> +<hkern g1="space,uni00A0" g2="T" k="47" /> +<hkern g1="space,uni00A0" g2="Y,Yacute,Ydieresis" k="59" /> +<hkern g1="space,uni00A0" g2="f,germandbls,thorn,uniFB01,uniFB02" k="31" /> +<hkern g1="space,uni00A0" g2="w" k="27" /> +<hkern g1="space,uni00A0" g2="t" k="37" /> +<hkern g1="space,uni00A0" g2="W" k="14" /> +<hkern g1="space,uni00A0" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="43" /> +<hkern g1="colon,semicolon" g2="quoteright,quotedblright" k="18" /> +<hkern g1="colon,semicolon" g2="quotedbl,quotesingle" k="8" /> +<hkern g1="colon,semicolon" g2="T" k="104" /> +<hkern g1="colon,semicolon" g2="Y,Yacute,Ydieresis" k="70" /> +<hkern g1="colon,semicolon" g2="V" k="33" /> +<hkern g1="seven" g2="hyphen,uni00AD,endash,emdash" k="37" /> +<hkern g1="seven" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="84" /> +<hkern g1="seven" g2="T" k="-8" /> +<hkern g1="seven" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="59" /> +<hkern g1="braceleft" g2="y,yacute,ydieresis" k="10" /> +<hkern g1="braceleft" g2="f,germandbls,thorn,uniFB01,uniFB02" k="-74" /> +<hkern g1="braceleft" g2="s" k="43" /> +<hkern g1="braceleft" g2="z" k="37" /> +<hkern g1="braceleft" g2="w" k="41" /> +<hkern g1="braceleft" g2="t" k="37" /> +<hkern g1="braceleft" g2="m,n,p,r,ntilde" k="43" /> +<hkern g1="braceleft" g2="u,ugrave,uacute,ucircumflex,udieresis" k="47" /> +<hkern g1="braceleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="14" /> +<hkern g1="braceleft" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="29" /> +<hkern g1="braceleft" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="53" /> +<hkern g1="braceleft" g2="d" k="53" /> +<hkern g1="braceleft" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="41" /> +<hkern g1="braceleft" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="53" /> +<hkern g1="parenleft" g2="y,yacute,ydieresis" k="37" /> +<hkern g1="parenleft" g2="Y,Yacute,Ydieresis" k="-18" /> +<hkern g1="parenleft" g2="f,germandbls,thorn,uniFB01,uniFB02" k="-70" /> +<hkern g1="parenleft" g2="s" k="80" /> +<hkern g1="parenleft" g2="z" k="72" /> +<hkern g1="parenleft" g2="w" k="76" /> +<hkern g1="parenleft" g2="t" k="68" /> +<hkern g1="parenleft" g2="i,j,igrave,iacute,icircumflex,idieresis" k="16" /> +<hkern g1="parenleft" g2="m,n,p,r,ntilde" k="80" /> +<hkern g1="parenleft" g2="S" k="43" /> +<hkern g1="parenleft" g2="b,h,k" k="16" /> +<hkern g1="parenleft" g2="L" k="18" /> +<hkern g1="parenleft" g2="u,ugrave,uacute,ucircumflex,udieresis" k="86" /> +<hkern g1="parenleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="39" /> +<hkern g1="parenleft" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="57" /> +<hkern g1="parenleft" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="102" /> +<hkern g1="parenleft" g2="B,D,H,I,K,P,R,Igrave,Iacute,Icircumflex,Idieresis,Eth,Thorn" k="18" /> +<hkern g1="parenleft" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="20" /> +<hkern g1="parenleft" g2="d" k="98" /> +<hkern g1="parenleft" g2="N,Ntilde" k="25" /> +<hkern g1="parenleft" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="80" /> +<hkern g1="parenleft" g2="l" k="14" /> +<hkern g1="parenleft" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="98" /> +<hkern g1="bracketleft" g2="y,yacute,ydieresis" k="29" /> +<hkern g1="bracketleft" g2="Y,Yacute,Ydieresis" k="-6" /> +<hkern g1="bracketleft" g2="f,germandbls,thorn,uniFB01,uniFB02" k="-63" /> +<hkern g1="bracketleft" g2="s" k="57" /> +<hkern g1="bracketleft" g2="z" k="51" /> +<hkern g1="bracketleft" g2="w" k="51" /> +<hkern g1="bracketleft" g2="t" k="45" /> +<hkern g1="bracketleft" g2="m,n,p,r,ntilde" k="57" /> +<hkern g1="bracketleft" g2="S" k="20" /> +<hkern g1="bracketleft" g2="u,ugrave,uacute,ucircumflex,udieresis" k="59" /> +<hkern g1="bracketleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="29" /> +<hkern g1="bracketleft" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="33" /> +<hkern g1="bracketleft" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="68" /> +<hkern g1="bracketleft" g2="d" k="66" /> +<hkern g1="bracketleft" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="47" /> +<hkern g1="bracketleft" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="68" /> +<hkern g1="backslash" g2="quoteright,quotedblright" k="152" /> +<hkern g1="backslash" g2="quotedbl,quotesingle" k="150" /> +<hkern g1="backslash" g2="y,yacute,ydieresis" k="90" /> +<hkern g1="backslash" g2="T" k="147" /> +<hkern g1="backslash" g2="Y,Yacute,Ydieresis" k="154" /> +<hkern g1="backslash" g2="f,germandbls,thorn,uniFB01,uniFB02" k="-6" /> +<hkern g1="backslash" g2="w" k="88" /> +<hkern g1="backslash" g2="t" k="88" /> +<hkern g1="backslash" g2="W" k="92" /> +<hkern g1="backslash" g2="L" k="49" /> +<hkern g1="backslash" g2="u,ugrave,uacute,ucircumflex,udieresis" k="35" /> +<hkern g1="backslash" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="49" /> +<hkern g1="backslash" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="55" /> +<hkern g1="backslash" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="76" /> +<hkern g1="backslash" g2="d" k="47" /> +<hkern g1="backslash" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="76" /> +<hkern g1="backslash" g2="l" k="37" /> +<hkern g1="backslash" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="45" /> +<hkern g1="periodcentered" g2="l" k="102" /> +<hkern g1="quoteleft,quotedblleft" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="201" /> +<hkern g1="quoteleft,quotedblleft" g2="AE" k="139" /> +<hkern g1="quoteleft,quotedblleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="68" /> +<hkern g1="quoteleft,quotedblleft" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="18" /> +<hkern g1="quoteleft,quotedblleft" g2="d" k="20" /> +<hkern g1="quoteleft,quotedblleft" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="18" /> +<hkern g1="quoteleft,quotedblleft" g2="J" k="66" /> +<hkern g1="quoteleft,quotedblleft" g2="q" k="16" /> +<hkern g1="quoteleft,quotedblleft" g2="eth" k="29" /> +<hkern g1="slash" g2="y,yacute,ydieresis" k="10" /> +<hkern g1="slash" g2="Y,Yacute,Ydieresis" k="-10" /> +<hkern g1="slash" g2="s" k="37" /> +<hkern g1="slash" g2="z" k="33" /> +<hkern g1="slash" g2="w" k="12" /> +<hkern g1="slash" g2="m,n,p,r,ntilde" k="43" /> +<hkern g1="slash" g2="u,ugrave,uacute,ucircumflex,udieresis" k="39" /> +<hkern g1="slash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="111" /> +<hkern g1="slash" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="57" /> +<hkern g1="slash" g2="d" k="57" /> +<hkern g1="slash" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="25" /> +<hkern g1="slash" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="61" /> +<hkern g1="quotedbl,quotesingle" g2="hyphen,uni00AD,endash,emdash" k="117" /> +<hkern g1="quotedbl,quotesingle" g2="guilsinglleft" k="33" /> +<hkern g1="quotedbl,quotesingle" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="209" /> +<hkern g1="quotedbl,quotesingle" g2="AE" k="145" /> +<hkern g1="quotedbl,quotesingle" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="76" /> +<hkern g1="quotedbl,quotesingle" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="29" /> +<hkern g1="quotedbl,quotesingle" g2="d" k="31" /> +<hkern g1="quotedbl,quotesingle" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="31" /> +<hkern g1="quotedbl,quotesingle" g2="J" k="68" /> +<hkern g1="quotedbl,quotesingle" g2="q" k="25" /> +<hkern g1="quotedbl,quotesingle" g2="eth" k="35" /> +<hkern g1="quotedbl,quotesingle" g2="space,uni00A0" k="25" /> +<hkern g1="quotedbl,quotesingle" g2="four" k="35" /> +<hkern g1="quotedbl,quotesingle" g2="slash" k="154" /> +<hkern g1="ampersand" g2="quoteright,quotedblright" k="33" /> +<hkern g1="ampersand" g2="quotedbl,quotesingle" k="27" /> +<hkern g1="ampersand" g2="T" k="102" /> +<hkern g1="ampersand" g2="Y,Yacute,Ydieresis" k="63" /> +<hkern g1="ampersand" g2="Z" k="49" /> +<hkern g1="ampersand" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="14" /> +<hkern g1="at" g2="T" k="14" /> +<hkern g1="at" g2="Y,Yacute,Ydieresis" k="49" /> +<hkern g1="exclamdown" g2="T" k="98" /> +<hkern g1="exclamdown" g2="Y,Yacute,Ydieresis" k="68" /> +<hkern g1="exclamdown" g2="W" k="8" /> +<hkern g1="asterisk" g2="y,yacute,ydieresis" k="-8" /> +<hkern g1="asterisk" g2="T" k="-8" /> +<hkern g1="asterisk" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="68" /> +<hkern g1="asterisk" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="25" /> +<hkern g1="asterisk" g2="d" k="27" /> +<hkern g1="asterisk" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="27" /> +<hkern g1="guilsinglleft" g2="quoteright,quotedblright" k="29" /> +<hkern g1="guilsinglleft" g2="quotedbl,quotesingle" k="12" /> +<hkern g1="guilsinglleft" g2="T" k="133" /> +<hkern g1="guilsinglleft" g2="Y,Yacute,Ydieresis" k="88" /> +<hkern g1="guilsinglleft" g2="V" k="43" /> +<hkern g1="guilsinglleft" g2="W" k="8" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="quoteright,quotedblright" k="227" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="quotedbl,quotesingle" k="217" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="y,yacute,ydieresis" k="51" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="T" k="111" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="v" k="47" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="Y,Yacute,Ydieresis" k="119" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="f,germandbls,thorn,uniFB01,uniFB02" k="27" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="V" k="84" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="w" k="39" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="t" k="35" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="W" k="45" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="23" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="14" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="seven" k="57" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="one" k="86" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="four" k="20" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="quoteleft,quotedblleft" k="227" /> +<hkern g1="four" g2="quotedbl,quotesingle" k="29" /> +<hkern g1="four" g2="T" k="53" /> +<hkern g1="four" g2="Y,Yacute,Ydieresis" k="76" /> +<hkern g1="four" g2="W" k="14" /> +<hkern g1="quoteright,quotedblright" g2="hyphen,uni00AD,endash,emdash" k="88" /> +<hkern g1="quoteright,quotedblright" g2="guilsinglleft" k="37" /> +<hkern g1="quoteright,quotedblright" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="209" /> +<hkern g1="quoteright,quotedblright" g2="AE" k="147" /> +<hkern g1="quoteright,quotedblright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="78" /> +<hkern g1="quoteright,quotedblright" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="31" /> +<hkern g1="quoteright,quotedblright" g2="d" k="35" /> +<hkern g1="quoteright,quotedblright" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="33" /> +<hkern g1="quoteright,quotedblright" g2="J" k="68" /> +<hkern g1="quoteright,quotedblright" g2="q" k="31" /> +<hkern g1="quoteright,quotedblright" g2="eth" k="29" /> +<hkern g1="quoteright,quotedblright" g2="space,uni00A0" k="16" /> +<hkern g1="quoteright,quotedblright" g2="slash" k="154" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/exo2-bolditalic-webfont.ttf b/web/static/fonts/exo2-bolditalic-webfont.ttf Binary files differnew file mode 100755 index 000000000..9ed76e500 --- /dev/null +++ b/web/static/fonts/exo2-bolditalic-webfont.ttf diff --git a/web/static/fonts/exo2-bolditalic-webfont.woff b/web/static/fonts/exo2-bolditalic-webfont.woff Binary files differnew file mode 100755 index 000000000..109621b41 --- /dev/null +++ b/web/static/fonts/exo2-bolditalic-webfont.woff diff --git a/web/static/fonts/exo2-bolditalic-webfont.woff2 b/web/static/fonts/exo2-bolditalic-webfont.woff2 Binary files differnew file mode 100755 index 000000000..bf54c7ecd --- /dev/null +++ b/web/static/fonts/exo2-bolditalic-webfont.woff2 diff --git a/web/static/fonts/exo2-italic-webfont.eot b/web/static/fonts/exo2-italic-webfont.eot Binary files differnew file mode 100755 index 000000000..df5c87aac --- /dev/null +++ b/web/static/fonts/exo2-italic-webfont.eot diff --git a/web/static/fonts/exo2-italic-webfont.svg b/web/static/fonts/exo2-italic-webfont.svg new file mode 100755 index 000000000..ec09501a8 --- /dev/null +++ b/web/static/fonts/exo2-italic-webfont.svg @@ -0,0 +1,1640 @@ +<?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="exo_2italic" horiz-adv-x="1173" > +<font-face units-per-em="2048" ascent="1638" descent="-410" /> +<missing-glyph horiz-adv-x="456" /> +<glyph horiz-adv-x="0" /> +<glyph unicode="
" horiz-adv-x="681" /> +<glyph unicode=" " horiz-adv-x="456" /> +<glyph unicode="	" horiz-adv-x="456" /> +<glyph unicode=" " horiz-adv-x="456" /> +<glyph unicode="!" horiz-adv-x="555" d="M115 68l16 114q9 60 70 60h47q70 0 57 -68l-14 -113q-8 -61 -68 -61h-47q-70 0 -61 68zM186 432l33 365l88 626h172l-88 -626l-67 -365h-138z" /> +<glyph unicode=""" horiz-adv-x="716" d="M203 973l51 440h141l-73 -440h-119zM498 973l51 440h141l-72 -440h-120z" /> +<glyph unicode="#" horiz-adv-x="1396" d="M63 436l37 113h238l117 369h-238l39 112h233l121 383h138l-119 -383h375l120 383h138l-119 -383h227l-39 -112h-225l-117 -369h225l-34 -113h-226l-137 -436h-137l137 436h-377l-137 -436h-137l137 436h-240zM475 549h377l117 369h-377z" /> +<glyph unicode="$" horiz-adv-x="1155" d="M59 14l23 133q313 -10 352 -10l109 506l-131 47q-145 53 -197.5 147.5t-30.5 245.5q12 94 42 159t70 103.5t103.5 59t127 27t157.5 6.5h41l43 198h86l-43 -202q150 -6 291 -37l-21 -131q-109 6 -303 10l-106 -496l110 -41q156 -57 206 -146t28 -251q-31 -221 -146.5 -294 t-380.5 -73h-4l-51 -235h-86l51 237q-160 4 -340 37zM365 1065q-14 -104 14.5 -145t126.5 -78l86 -33l100 467h-14q-70 0 -102.5 -1t-77.5 -11.5t-65.5 -32t-40 -62.5t-27.5 -104zM520 137q166 4 231.5 46t84.5 177q14 104 -14.5 146.5t-127.5 79.5l-71 26z" /> +<glyph unicode="%" horiz-adv-x="1830" d="M151.5 1026q32.5 227 115.5 320.5t259 93.5q184 0 248 -98.5t33 -327.5q-33 -225 -116 -319.5t-261 -94.5q-184 0 -247.5 99.5t-31 326.5zM283 1014q-23 -172 6.5 -237.5t134.5 -65.5q125 0 175 68.5t75 246.5q25 172 -5 237.5t-139 65.5q-123 0 -172 -67.5t-75 -247.5z M303 0l1114 1413h135l-1114 -1413h-135zM1055 406q31 225 114 319t261 94q186 0 248.5 -99t29.5 -329q-31 -223 -115 -317t-262 -94q-184 0 -246.5 99t-29.5 327zM1186 391q-23 -172 6 -237.5t135 -65.5q123 0 174 68.5t76 249.5q25 172 -4.5 237.5t-138.5 65.5 q-123 0 -172.5 -69t-75.5 -249z" /> +<glyph unicode="&" horiz-adv-x="1546" d="M90 365q23 174 109 265t243 99l2 10q-256 18 -200 334q37 217 158.5 289t375.5 72q182 0 346 -43l-30 -136q-133 31 -312 31q-188 0 -263 -48t-99 -200q-23 -139 31.5 -188t216.5 -49h434q6 82 6 264h160q2 -141 -6 -264h227l-23 -137h-219q-35 -229 -127 -375 q-190 -307 -633 -312q-236 -2 -330 87.5t-67 300.5zM281 381q-23 -143 26 -195.5t193 -52.5q324 0 475 223q83 118 112 308h-438q-180 -2 -261 -59.5t-107 -223.5z" /> +<glyph unicode="'" horiz-adv-x="421" d="M203 973l51 440h141l-73 -440h-119z" /> +<glyph unicode="(" horiz-adv-x="729" d="M114.5 649q55.5 393 216 629t453.5 342l21 -86q-219 -100 -345 -318.5t-175 -580.5q-49 -348 11 -567.5t247 -323.5l-23 -80q-262 106 -361.5 349t-44 636z" /> +<glyph unicode=")" horiz-adv-x="729" d="M-61 -254q422 205 520 901q49 352 -12.5 571.5t-247.5 317.5l22 80q262 -104 363.5 -346t44.5 -641q-57 -391 -218 -625.5t-454 -343.5z" /> +<glyph unicode="*" horiz-adv-x="917" d="M180 1133l41 98l240 -94l-6 -45l-27 -29zM246 825l243 260l29 330h109l-66 -330l172 -264l-88 -61l-125 252l-192 -250zM604 1092v45l258 94l23 -107l-264 -61z" /> +<glyph unicode="+" horiz-adv-x="1120" d="M104 547l19 131h381l51 360h135l-51 -360h381l-19 -131h-380l-52 -363h-133l49 363h-381z" /> +<glyph unicode="," horiz-adv-x="464" d="M49 -242q51 156 68 246q-29 -2 -43.5 13.5t-10.5 41.5l17 121q8 37 23.5 49.5t56.5 12.5h53q35 0 48 -15.5t7 -52.5l-18 -131q-18 -145 -115 -315z" /> +<glyph unicode="-" horiz-adv-x="915" d="M125 451l18 133h623l-16 -133h-625z" /> +<glyph unicode="." horiz-adv-x="460" d="M63 68l17 114q9 60 70 60h57q68 0 59 -68l-14 -113q-10 -61 -70 -61h-57q-72 0 -62 68z" /> +<glyph unicode="/" horiz-adv-x="1073" d="M-43 -135l1022 1548h149l-1022 -1548h-149z" /> +<glyph unicode="0" horiz-adv-x="1230" d="M145.5 713q55.5 391 185.5 559t392 168q270 0 359 -175t34 -564.5t-186 -558.5t-391 -169q-268 0 -358.5 174.5t-35 565.5zM319 700q-45 -315 2.5 -442t215.5 -127q180 0 270 131t135 451q45 315 -2 442t-219 127q-180 0 -269.5 -132t-132.5 -450z" /> +<glyph unicode="1" horiz-adv-x="808" d="M135 1268l379 145h180l-198 -1413h-179l158 1124q6 61 25 123l-361 -112z" /> +<glyph unicode="2" horiz-adv-x="1140" d="M27 0l16 117q6 51 31 76l477 462q160 154 238.5 264.5t89.5 213.5q10 92 -44.5 118.5t-189.5 26.5q-209 0 -416 -33l-2 139q236 53 432 54q215 0 318.5 -65.5t83.5 -246.5q-16 -129 -87 -241.5t-233 -270.5l-462 -448q92 8 219 8h481l-25 -174h-927z" /> +<glyph unicode="3" horiz-adv-x="1126" d="M29 10l22 140q283 -20 377 -15q326 23 369 285q45 250 -238 252l-266 4l18 137h258q152 2 214.5 73.5t74.5 190.5q14 123 -36 163t-228 40q-149 0 -350 -16l-6 139q223 37 395 37q233 0 324.5 -81t74.5 -253q-14 -133 -76.5 -238.5t-177.5 -119.5l-2 -9q121 -20 171 -111 t28 -241q-61 -395 -535 -414q-180 -6 -411 37z" /> +<glyph unicode="4" horiz-adv-x="1249" d="M81 423q-42 77 11 159l512 831h182l-512 -840q-49 -80 33 -79h488l59 415l66 234h137l-90 -649h182l-19 -129l-184 -19l-49 -346h-170l47 346h-549q-102 0 -144 77z" /> +<glyph unicode="5" horiz-adv-x="1091" d="M33 27l33 145q186 -47 335 -37q342 18 379 309q20 154 -62.5 208.5t-324.5 64.5l-133 10q-37 4 -57.5 29.5t-12.5 62.5l115 594h750l-31 -153h-594l-74 -386l146 -12q254 -18 366.5 -114.5t85.5 -317.5q-10 -80 -36.5 -149.5t-82 -140t-156.5 -114.5t-239 -51 q-193 -10 -407 52z" /> +<glyph unicode="6" horiz-adv-x="1165" d="M123 284.5q-14 159.5 24 411.5q35 240 86.5 388.5t132 225t173 102.5t237.5 26q133 0 299 -33l-24 -129q-90 8 -265 8q-147 0 -227 -40t-133 -151.5t-92 -334.5q156 160 375 164q195 4 279.5 -103.5t47.5 -363.5q-35 -244 -149.5 -362t-366.5 -118q-195 0 -289 75 t-108 234.5zM307 594q-39 -270 4 -367.5t219 -97.5q166 0 238 83t96 257q27 174 -12 241.5t-186 65.5q-88 -2 -172 -42t-187 -140z" /> +<glyph unicode="7" horiz-adv-x="1044" d="M172 1260l12 153h801q63 0 85 -35t-7 -92l-621 -1286h-180l559 1159q41 76 60 101h-709z" /> +<glyph unicode="8" horiz-adv-x="1241" d="M104 358q25 176 88.5 269.5t194.5 105.5l4 8q-199 25 -155 326q29 201 132 285t357 82q264 0 349 -88.5t59 -290.5q-43 -297 -246 -320l-4 -8q233 -25 180 -381q-27 -201 -135.5 -282.5t-384.5 -83.5q-264 -2 -365.5 89t-73.5 289zM279 383q-20 -145 35 -197.5t245 -52.5 q180 0 251 56.5t89 207.5q25 164 -26 214.5t-246 50.5q-190 -2 -257 -53.5t-91 -225.5zM395 1038q-20 -143 30 -188t230 -45q172 0 231.5 48t80.5 198q20 139 -28 188t-226 49q-174 0 -235.5 -52t-82.5 -198z" /> +<glyph unicode="9" horiz-adv-x="1165" d="M96 8l27 131q111 -10 280 -10q223 6 312.5 111.5t148.5 423.5q-84 -92 -168 -131t-194 -41q-215 -2 -291 119.5t-47 346.5q31 256 154.5 368t363.5 112q274 0 352 -158t15 -563q-37 -233 -85.5 -376.5t-127 -225.5t-175 -111t-247.5 -29q-175 0 -318 33zM332 944 q-23 -168 22.5 -239.5t182.5 -69.5q96 2 173.5 42t180.5 144q39 268 -3 365.5t-218 97.5q-170 0 -242 -78t-96 -262z" /> +<glyph unicode=":" horiz-adv-x="481" d="M72 68l16 114q9 60 70 60h57q68 0 59 -68l-14 -113q-10 -61 -70 -61h-57q-72 0 -61 68zM164 729l18 113q7 59 68 59h59q70 0 58 -67l-15 -113q-8 -61 -67 -62h-60q-70 0 -61 70z" /> +<glyph unicode=";" horiz-adv-x="489" d="M63 -242q45 141 66 246q-27 -2 -41 13.5t-10 41.5l16 121q8 37 23.5 49.5t56.5 12.5h51q35 0 48.5 -15.5t7.5 -52.5l-17 -131q-20 -145 -114 -315zM166 729l18 113q7 59 68 59h59q70 0 60 -67l-17 -113q-6 -61 -67 -62h-60q-70 0 -61 70z" /> +<glyph unicode="<" horiz-adv-x="1077" d="M96 541l19 139l882 352l-20 -145l-721 -281l641 -282l-18 -136z" /> +<glyph unicode="=" horiz-adv-x="1200" d="M113 317l18 132h897l-18 -132h-897zM172 752l18 129h897l-18 -129h-897z" /> +<glyph unicode=">" horiz-adv-x="1077" d="M84 190l18 148l721 280l-641 283l21 135l782 -356l-20 -139z" /> +<glyph unicode="?" horiz-adv-x="1021" d="M180 1415q12 2 64.5 11.5t66 11.5t57.5 8t74.5 7t80.5 3t108 2q203 0 302 -81t77 -242q-10 -84 -58.5 -156t-110 -126t-124 -109.5t-113.5 -136.5t-67 -177h-148q12 104 58.5 192.5t105.5 147.5t116.5 112.5t101.5 114t52 121.5q14 109 -37 151t-192 42q-183 -1 -412 -21 zM324 68l16 112q9 62 70 62h45q70 0 61 -68l-16 -113q-6 -61 -68 -61h-47q-70 0 -61 68z" /> +<glyph unicode="@" horiz-adv-x="1581" d="M117 469q25 145 63.5 235.5t101 138.5t135 64.5t187.5 16.5q172 0 440 -47l-98 -644q-6 -55 10.5 -78.5t61.5 -23.5q117 0 165 106.5t89 419.5q14 100 21 166t4 125.5t-8 92t-32.5 60t-51 39t-81 19.5t-106.5 9t-141 1h-650l15 129q246 12 639 17q143 2 233 -6.5t165 -35 t110.5 -69.5t55 -123t14.5 -182t-25 -256q-33 -266 -81 -405.5t-129 -196.5t-220 -57q-223 0 -230 211q-182 -219 -403 -220q-174 0 -235.5 120t-18.5 374zM278.5 195q24.5 -72 129.5 -72q96 0 184 55t201 176l65 422q-141 6 -194 6q-209 0 -275.5 -57t-103.5 -270 q-31 -188 -6.5 -260z" /> +<glyph unicode="A" horiz-adv-x="1267" d="M-61 0l647 1366q14 47 69 47h189q25 0 42 -15.5t19 -37.5l264 -1360h-180l-76 440h-583l-201 -440h-190zM401 598h484l-99 557q-2 18 -7 59t-9 62h-61l-54 -121z" /> +<glyph unicode="B" horiz-adv-x="1265" d="M92 0l199 1413q164 16 452 17q261 0 359 -81q75 -62 75 -200q0 -43 -8 -94q-23 -154 -88 -230.5t-194 -89.5l-2 -8q238 -21 238 -275q0 -49 -9 -106q-33 -215 -138.5 -288.5t-350.5 -73.5q-349 0 -533 16zM289 139q82 -2 309 -2q176 0 248 51.5t92 200.5q7 47 7 85 q1 91 -39 130q-56 55 -232 60h-312zM383 801h299q158 2 225.5 53t87.5 193q5 35 5 64q0 88 -41 121q-54 44 -224 44h-286z" /> +<glyph unicode="C" horiz-adv-x="1159" d="M139 713q57 403 199.5 564t445.5 161q227 0 385 -43l-28 -135q-182 18 -359 18q-213 0 -311 -120t-143 -458q-19 -138 -20 -239q0 -133 34 -202q59 -122 260 -124q220 0 404 23l10 -138q-168 -45 -416 -45q-304 -1 -410 173q-70 114 -70 324q0 108 19 241z" /> +<glyph unicode="D" horiz-adv-x="1355" d="M92 0l199 1413q250 18 463 19q328 0 438 -162q72 -106 73 -318q0 -111 -20 -252q-33 -229 -82 -370.5t-135 -218t-191.5 -103t-275.5 -26.5q-201 0 -469 18zM293 143q184 -4 266 -4q127 0 205 21.5t138.5 86t95 174t61.5 292.5q20 141 21 236v12q0 87 -14 149 q-15 66 -58 101.5t-103.5 50t-154.5 14.5t-299 -4z" /> +<glyph unicode="E" horiz-adv-x="1142" d="M119 281l125 893q16 115 92 178t205 63q422 0 610 -12l-25 -141h-563q-70 0 -102.5 -33t-42.5 -107l-43 -307h608l-18 -139h-609l-53 -391q-3 -19 -3 -35q0 -42 20 -66q26 -32 96 -32h553l-4 -142q-180 -12 -572 -12q-153 0 -223 74q-55 59 -55 154q0 26 4 55z" /> +<glyph unicode="F" horiz-adv-x="1099" d="M88 0l162 1165q18 121 95 185.5t204 64.5q410 0 590 -14l-25 -139h-526q-80 0 -116 -30t-46 -110l-47 -329h592l-21 -140h-590l-92 -653h-180z" /> +<glyph unicode="G" horiz-adv-x="1277" d="M139 713q29 219 82 362.5t140.5 223t191.5 110.5t256 31q233 0 405 -45l-26 -133q-172 16 -357 16q-129 0 -208.5 -22.5t-141 -88t-96.5 -176t-57 -291.5q-15 -134 -15 -234q0 -135 27 -207q47 -126 207 -126q102 0 188 50t199 161l65 475h175l-117 -819h-129l4 195 q-193 -221 -445 -222q-223 0 -307 177q-56 118 -56 326q0 107 15 237z" /> +<glyph unicode="H" horiz-adv-x="1363" d="M92 0l199 1413h182l-82 -582h651l82 582h179l-199 -1413h-178l94 676h-651l-95 -676h-182z" /> +<glyph unicode="I" horiz-adv-x="534" d="M92 0l199 1413h182l-199 -1413h-182z" /> +<glyph unicode="J" horiz-adv-x="694" d="M-18 8l34 127h97q166 0 188 158l156 1120h182l-160 -1120q-20 -154 -99 -232.5t-208 -78.5q-106 0 -190 26z" /> +<glyph unicode="K" horiz-adv-x="1214" d="M92 0l199 1413h180l-63 -444q-12 -82 -33 -160h166l506 604h219l-492 -586q-55 -63 -96 -90v-8q35 -41 67 -102l349 -627h-205l-363 664h-174q0 -92 -10 -154l-70 -510h-180z" /> +<glyph unicode="L" horiz-adv-x="1042" d="M131 291l154 1122h182l-158 -1128q-3 -17 -3 -32q0 -101 116 -101h512l-4 -142q-178 -12 -547 -12q-135 0 -203 76q-53 59 -54 157q0 28 5 60z" /> +<glyph unicode="M" horiz-adv-x="1794" d="M66 0l243 1341q12 72 80 72h199q57 0 67 -65l152 -861q6 -31 27 -192h38q27 68 80 190l383 869q25 57 84 59h201q70 0 70 -69v-11l-129 -1333h-181l131 1264h-41l-460 -1045q-25 -59 -84 -59h-162q-63 0 -76 65l-178 1039h-41l-225 -1264h-178z" /> +<glyph unicode="N" horiz-adv-x="1439" d="M92 0l189 1346q12 67 73 67h2h160q51 0 74 -61l344 -975q47 -135 65 -205h39q6 113 21 207l141 1034h178l-190 -1345q-8 -68 -72 -68h-164q-51 0 -73 61l-355 1002q-41 111 -55 182h-35q-2 -84 -16 -186l-146 -1059h-180z" /> +<glyph unicode="O" horiz-adv-x="1363" d="M139 713q55 401 200 564t454 163q297 0 407 -169q72 -111 73 -322q0 -111 -20 -249q-55 -408 -198.5 -567.5t-446.5 -159.5q-300 0 -412 167q-76 112 -75 332q0 108 18 241zM328 700q-19 -138 -19 -239q0 -135 34 -205q60 -122 269 -121q211 0 310 125q98 124 145 452 q21 143 21 247q0 133 -34 200q-60 119 -272 119q-215 0 -312 -123t-142 -455z" /> +<glyph unicode="P" horiz-adv-x="1204" d="M92 0l199 1413q176 18 479 19q248 0 341 -102q68 -74 67 -223q0 -56 -9 -124q-37 -262 -143 -349t-356 -87q-170 0 -318 20l-80 -567h-180zM371 702h293q168 0 234.5 60.5t92.5 234.5q8 54 8 97q1 86 -33 124q-50 58 -202 58q-231 0 -313 -2z" /> +<glyph unicode="Q" horiz-adv-x="1363" d="M139 713q55 401 200 564t454 163q297 0 407 -169q73 -111 73 -322q0 -111 -20 -249q-55 -408 -198.5 -567.5t-446.5 -159.5q-299 0 -412 167q-75 112 -75 332q0 108 18 241zM328 700q-19 -138 -19 -239q0 -135 34 -205q60 -121 269 -121q211 0 309.5 125t145.5 452 q21 144 21 247q0 133 -34 200q-61 119 -272 119q-215 0 -312 -123t-142 -455zM426 -197l70 107q223 -111 526 -158l-72 -180q-293 67 -524 231z" /> +<glyph unicode="R" horiz-adv-x="1265" d="M92 0l199 1413q176 18 479 19q232 0 336 -94q80 -72 81 -226q0 -45 -7 -96q-25 -166 -98.5 -252t-217.5 -105l-2 -10q117 -33 150 -207l90 -442h-184l-84 446q-14 78 -52.5 111t-107.5 33l-322 2l-84 -592h-176zM375 745h301q158 2 228.5 60.5t92.5 216.5q6 43 6 78 q-1 84 -35 122q-48 54 -202 54q-236 0 -317 -2z" /> +<glyph unicode="S" horiz-adv-x="1146" d="M53 14l23 133q295 -10 385 -10h24q184 0 255 41t89 182q5 35 5 63q0 57 -20 85q-28 42 -126 78l-280 104q-146 52 -198 146q-38 68 -38 167q0 38 6 80q12 94 42 159t70 103.5t103.5 59.5t127 27t157.5 6q254 -4 418 -41l-19 -131q-231 10 -403 10q-70 0 -103.5 -1 t-79 -11.5t-65.5 -32t-39.5 -62.5t-28.5 -104q-5 -34 -5 -61q-1 -55 19 -83q28 -42 128 -79l276 -103q156 -57 206 -146q35 -62 35 -159q0 -43 -7 -92q-31 -221 -146.5 -294t-380.5 -73q-219 0 -430 39z" /> +<glyph unicode="T" d="M133 1253l23 160h1089l-20 -160h-457l-176 -1253h-180l176 1253h-455z" /> +<glyph unicode="U" horiz-adv-x="1359" d="M160 547l119 866h182l-123 -874q-12 -81 -12 -144q0 -113 38 -171q60 -88 242 -89q188 0 278.5 92t123.5 320l118 866h183l-123 -874q-45 -307 -176 -436.5t-400 -129.5q-276 1 -384 135q-78 96 -78 280q0 72 12 159z" /> +<glyph unicode="V" horiz-adv-x="1239" d="M141 1413h183l178 -1122q16 -100 20 -156h53q35 96 64 162l491 1116h191l-625 -1366q-18 -47 -69 -47h-181q-53 0 -61 55z" /> +<glyph unicode="W" horiz-adv-x="1931" d="M170 1413h184l66 -1104q0 -10 6 -176h49l60 182l362 1041q16 57 74 57h194q25 0 42.5 -18.5t19.5 -44.5l84 -1043q8 -115 8 -174h51l55 178l371 1102h189l-482 -1364q-16 -49 -73 -49h-201q-27 0 -45.5 16.5t-20.5 42.5l-73 1063q0 6 -5.5 65.5t-7.5 90.5h-43l-55 -164 l-367 -1063q-16 -51 -73 -51h-199q-27 0 -46.5 16.5t-21.5 40.5z" /> +<glyph unicode="X" horiz-adv-x="1247" d="M-37 0l504 731l-274 682h184l237 -610h58l420 610h198l-471 -682l297 -731h-184l-260 664h-56l-444 -664h-209z" /> +<glyph unicode="Y" horiz-adv-x="1157" d="M131 1413h184l213 -600q31 -92 41 -160h17q31 82 84 166l381 594h196l-598 -919l-69 -494h-183l72 502z" /> +<glyph unicode="Z" horiz-adv-x="1150" d="M12 0l21 154l905 1106h-739l22 153h940l-22 -153l-908 -1106h766l-22 -154h-963z" /> +<glyph unicode="[" horiz-adv-x="665" d="M68 -225l237 1691q6 49 39 78t82 29h295l-16 -115h-201q-14 0 -26.5 -11t-14.5 -26l-227 -1616q-4 -29 20 -28h213l-16 -115h-287q-51 0 -79 28.5t-19 84.5z" /> +<glyph unicode="\" horiz-adv-x="1040" d="M162 1413h137l592 -1548h-137z" /> +<glyph unicode="]" horiz-adv-x="665" d="M-51 -338l14 115h201q35 0 43 37l227 1616q4 29 -22 28h-211l16 115h285q49 0 78.5 -33t21.5 -80l-237 -1691q-6 -47 -40 -77t-81 -30h-295z" /> +<glyph unicode="^" horiz-adv-x="872" d="M102 799l373 432h127l252 -434l-76 -43l-239 356h-17l-350 -356z" /> +<glyph unicode="_" horiz-adv-x="1189" d="M47 -133l19 133h897l-21 -133h-895z" /> +<glyph unicode="`" horiz-adv-x="643" d="M162 1358l94 123l348 -301l-63 -78z" /> +<glyph unicode="a" d="M104 510q23 166 63 269.5t105.5 155.5t139 69.5t190.5 17.5q223 0 469 -47l-137 -975h-137l12 201q-193 -225 -444 -226q-180 0 -242 120q-37 71 -37 203q0 91 18 212zM272 199q24 -72 127 -72q179 0 408 223l74 520q-147 6 -226 7q-207 0 -273.5 -67t-102.5 -314 q-18 -128 -18 -206q1 -60 11 -91z" /> +<glyph unicode="b" d="M76 47l194 1387h172l-55 -414q-23 -154 -53 -244q100 104 220 175t224 71q178 0 240 -114q38 -69 38 -209q0 -91 -16 -212q-23 -166 -62.5 -270t-104 -156.5t-133 -70t-177.5 -17.5q-246 0 -487 74zM260 129q131 -10 240 -10q201 0 265 67.5t97 313.5q17 126 17 204 q1 64 -11 96q-26 70 -131 70q-151 0 -405 -225z" /> +<glyph unicode="c" horiz-adv-x="991" d="M94 506q41 285 161 400.5t376 115.5q197 0 319 -49l-28 -109q-111 10 -263 10q-188 0 -271 -77.5t-112 -304.5q-10 -78 -10 -138q0 -112 36 -159q54 -72 233 -72q170 0 299 20l12 -118q-158 -49 -342 -50q-262 0 -356 122q-66 85 -66 250q0 72 12 159z" /> +<glyph unicode="d" horiz-adv-x="1171" d="M102 510q25 164 64 267.5t103.5 156.5t135 70.5t179.5 17.5q141 0 323 -25q4 100 17 191l34 246h175l-201 -1434h-137l14 217q-221 -242 -465 -242q-158 0 -220 123q-38 74 -38 209q0 89 16 203zM270 204q22 -77 123 -77q96 0 192.5 54t223.5 175l70 518q-197 4 -230 5 q-109 0 -166 -11.5t-101 -55.5t-64.5 -114.5t-38.5 -201.5q-18 -125 -18 -203q0 -57 9 -89z" /> +<glyph unicode="e" horiz-adv-x="1099" d="M98 522q41 291 159 395.5t386 104.5q227 0 312 -79q65 -60 65 -170q0 -33 -6 -71q-25 -141 -112 -202.5t-267 -75.5l-369 -33v-18q0 -143 60 -195q64 -55 206 -55h14q171 0 353 24l12 -116q-141 -55 -407 -56q-256 -1 -350 131q-67 93 -67 263q0 70 11 153zM279 520 l354 35q102 8 148 42t61 120q4 26 4 47q0 64 -37 85q-49 28 -188 28q-168 0 -237.5 -69t-104.5 -288z" /> +<glyph unicode="f" horiz-adv-x="772" d="M-246 -397l27 131h156q98 0 142 34.5t58 135.5l133 956h-178l17 127l182 8l24 185q41 288 322 288h2q174 0 283 -14l-27 -129h-201q-100 0 -146 -36t-61 -136l-22 -156h319l-20 -137h-318l-139 -983q-39 -289 -315 -289q-106 0 -238 15z" /> +<glyph unicode="g" horiz-adv-x="1177" d="M31 -399l18 116q86 -4 185 -4q67 0 139 2q340 10 389 269q41 195 82 258q-90 -119 -217 -193t-267 -74q-168 0 -234 120q-38 71 -38 204q0 91 18 211q25 166 65 269.5t103.5 155.5t133 69.5t178.5 17.5q238 0 487 -47h4l-139 -957q-53 -438 -567 -450q-32 -1 -63 -1 q-157 0 -277 34zM274 200q23 -73 127 -73q177 0 408 225l78 518q-152 6 -236 7q-201 0 -267.5 -67t-100.5 -314q-19 -130 -19 -209q0 -57 10 -87z" /> +<glyph unicode="h" horiz-adv-x="1183" d="M72 0l202 1434h175l-56 -402q-16 -133 -47 -246q270 236 473 236q127 0 191 -70q49 -55 49 -150q0 -27 -4 -57l-107 -745h-174l100 702q4 32 4 58q0 51 -16 76q-24 38 -96 38q-90 0 -184.5 -53t-245.5 -174l-90 -647h-174z" /> +<glyph unicode="i" horiz-adv-x="503" d="M82 0l139 997h172l-139 -997h-172zM250 1255l16 115q7 51 56 51h81q27 0 41 -16q10 -12 9 -30v-11l-15 -117q-8 -49 -57 -49h-80q-52 0 -52 47q0 5 1 10z" /> +<glyph unicode="j" horiz-adv-x="503" d="M-84 -338q137 143 162 318l143 1017h172l-143 -1026q-14 -119 -79 -220t-161 -169zM250 1255l16 115q7 51 56 51h81q27 0 41 -16q10 -12 10 -30q0 -5 -1 -11l-15 -117q-8 -49 -57 -49h-80q-52 0 -52 47q0 5 1 10z" /> +<glyph unicode="k" horiz-adv-x="1067" d="M74 0l200 1434h175l-93 -693q-18 -121 -61 -237q203 90 350.5 216.5t194.5 276.5h178q-88 -270 -338 -444q31 -51 59 -115l197 -438h-186l-203 471q-102 -55 -248 -115l-53 -356h-172z" /> +<glyph unicode="l" horiz-adv-x="600" d="M109 240l167 1194h175l-164 -1164q-3 -20 -3 -36q0 -42 18 -64q26 -30 97 -29h101l6 -135q-57 -24 -171 -24h-9q-118 0 -176 68q-45 53 -45 138q0 25 4 52z" /> +<glyph unicode="m" horiz-adv-x="1785" d="M72 0l141 997h133l-12 -217q242 242 436 242q116 0 178 -60q58 -57 58 -154v-13q229 227 417 227q131 0 191 -74q47 -57 47 -147q0 -27 -4 -56l-105 -745h-172l99 702q3 27 3 50q0 56 -20 83q-30 39 -104 39t-151 -48t-220 -179l-90 -647h-168l98 702q4 29 4 52 q-1 52 -19 80q-26 40 -105 40q-76 0 -152 -48t-219 -175l-90 -651h-174z" /> +<glyph unicode="n" horiz-adv-x="1183" d="M72 0l141 997h139l-14 -219q274 244 481 244q127 0 191 -70q49 -55 49 -150q0 -27 -4 -57l-107 -745h-174l100 702q4 32 4 58q0 51 -16 76q-24 38 -96 38q-90 0 -185.5 -53t-244.5 -172l-90 -649h-174z" /> +<glyph unicode="o" horiz-adv-x="1155" d="M94 504q41 283 161 400.5t374 117.5t349 -123q66 -86 66 -252q0 -72 -12 -158q-39 -283 -159.5 -399.5t-370.5 -116.5q-252 0 -350 123q-70 88 -69 258q0 69 11 150zM276 489q-12 -83 -12 -146q0 -99 30 -145q48 -78 208 -77q168 0 244.5 82t107.5 301q12 84 12 148 q0 98 -29 144q-48 78 -208 78q-168 0 -245 -79.5t-108 -305.5z" /> +<glyph unicode="p" horiz-adv-x="1177" d="M12 -416l203 1413h137l-14 -221q96 102 221 174t227 72q180 0 240 -116q34 -67 34 -197q0 -94 -18 -222q-23 -166 -62.5 -269t-104 -156.5t-136 -71t-184.5 -17.5q-141 0 -315 27q-4 -100 -17 -190l-35 -226h-176zM266 123q150 -6 226 -6q207 0 273 66.5t101 316.5 q18 129 18 208q0 60 -10 90q-24 72 -126 72q-74 0 -185.5 -60.5t-224.5 -166.5z" /> +<glyph unicode="q" horiz-adv-x="1167" d="M102 510q23 164 63 268.5t102.5 156.5t130 69.5t171.5 17.5q252 0 496 -70l-195 -1368h-174l58 391q23 145 61 250q-217 -250 -463 -250q-160 0 -226 119q-40 73 -40 214q0 88 16 202zM272 202q25 -75 129 -75q98 0 185.5 51t222.5 176l70 514q-127 10 -242 11 q-195 0 -260.5 -68t-97.5 -315q-17 -122 -17 -200q0 -61 10 -94z" /> +<glyph unicode="r" horiz-adv-x="815" d="M72 0l141 997h133l-14 -231q260 256 459 256h51l-43 -164h-51q-82 0 -172.5 -49t-239.5 -164l-90 -645h-174z" /> +<glyph unicode="s" horiz-adv-x="1036" d="M43 6l20 127q123 -10 320 -10q190 2 258 24.5t80 92.5q6 37 -8.5 61.5t-32.5 35.5t-66 32q-14 6 -22 10l-279 123q-111 50 -157 114q-36 50 -36 128q0 20 3 42q19 140 117 190q91 47 272 46h29q227 -4 420 -31l-23 -125q-252 8 -393 11q-143 0 -193.5 -16.5t-58.5 -86.5 q-2 -13 -2 -25q1 -39 21 -59q26 -26 102 -61l278 -123q123 -52 168 -112q34 -45 34 -121q0 -23 -3 -50q-8 -66 -35 -110.5t-62.5 -71.5t-96 -41t-121 -18.5t-152.5 -4.5q-70 0 -124 3.5t-80.5 5.5t-85 9t-91.5 11z" /> +<glyph unicode="t" horiz-adv-x="772" d="M86 860l16 127l187 8l41 297h172l-41 -295h317l-20 -137h-318l-82 -590q-3 -21 -3 -38q-1 -42 17 -62q24 -28 97 -29h156l6 -133q-92 -27 -218 -27q-2 1 -5 1q-128 0 -186 72q-44 54 -44 142q0 27 4 58l86 606h-182z" /> +<glyph unicode="u" horiz-adv-x="1161" d="M102 252l105 745h174l-100 -702q-5 -31 -5 -56q0 -49 18 -75q28 -39 105 -39q88 0 174 53t226 178l88 641h174l-139 -997h-136l15 217q-250 -244 -461 -244q-134 0 -196 74q-46 56 -47 144q0 29 5 61z" /> +<glyph unicode="v" horiz-adv-x="1087" d="M92 997h182l152 -860h33q39 0 62.5 12.5t49.5 47.5q70 94 154 292q105 229 154 508h180q-59 -289 -191 -579q-90 -201 -174 -314q-41 -55 -83 -79.5t-113 -24.5h-154q-47 0 -57 47z" /> +<glyph unicode="w" horiz-adv-x="1740" d="M92 997h180l142 -860h26q55 0 97 72q61 109 112 280q57 174 107 465q6 43 49 43h190q41 0 45 -41l101 -819h24q45 0 84 64q90 141 146 288q84 213 133 508h182q-76 -338 -182 -579q-96 -219 -176 -320q-41 -51 -80 -74.5t-96 -23.5h-115q-47 0 -55 47l-95 836h-26 q-23 -205 -94 -437q-61 -199 -138 -317q-74 -129 -219 -129h-102q-45 0 -56 47z" /> +<glyph unicode="x" horiz-adv-x="1077" d="M-39 0l408 516l-240 481h174l197 -411h57l320 411h188l-377 -483l260 -514h-176l-221 451h-47l-348 -451h-195z" /> +<glyph unicode="y" horiz-adv-x="1103" d="M72 -297q125 29 224 96.5t193 200.5h-90q-45 0 -75.5 25.5t-40.5 66.5l-193 905h182l158 -821q10 -39 47 -39h98l19.5 39t21.5 41q193 377 275 780h180q-109 -481 -303 -831q-158 -293 -308.5 -422t-355.5 -166z" /> +<glyph unicode="z" horiz-adv-x="1032" d="M12 0l19 141l733 713h-623l19 143h825l-18 -143l-734 -713h639l-20 -141h-840z" /> +<glyph unicode="{" horiz-adv-x="651" d="M92 610l17 127q51 14 65 20.5t36.5 24t31 43t14.5 74.5l57 406q18 150 107.5 216t275.5 52l-6 -111q-104 0 -153.5 -42t-61.5 -136l-51 -366q-16 -127 -58 -177.5t-157 -70.5q104 -35 136 -86.5t17 -157.5l-67 -483q-14 -96 18.5 -133t137.5 -37l-7 -111 q-180 -14 -259 57.5t-56 217.5l74 524q10 72 -10.5 95.5t-88.5 49.5q-8 2 -12 4z" /> +<glyph unicode="|" horiz-adv-x="501" d="M53 -346l273 1945h129l-273 -1945h-129z" /> +<glyph unicode="}" horiz-adv-x="653" d="M-49 -338l6 111q104 0 152.5 41t60.5 135l70 485q16 109 59 156t164 84q-102 20 -134 72.5t-14 179.5l54 366q12 94 -20 132t-138 38l8 111q182 14 258 -59.5t58 -215.5l-58 -407q-12 -92 4.5 -112.5t98.5 -45.5l-17 -127q-49 -18 -64.5 -24.5t-41 -23.5t-34.5 -40.5 t-15 -64.5l-72 -523q-20 -150 -107.5 -216t-277.5 -52z" /> +<glyph unicode="~" horiz-adv-x="1069" d="M135 471q2 121 54.5 183.5t127.5 58.5q80 -4 215.5 -59.5t190.5 -61.5t81.5 20.5t37.5 92.5l88 -7q-2 -119 -52.5 -180t-127.5 -57q-92 4 -226.5 60.5t-181.5 60.5q-55 6 -82 -22.5t-35 -96.5z" /> +<glyph unicode="¡" horiz-adv-x="522" d="M35 -401l86 614l69 365h138l-35 -365l-86 -614h-172zM209 836l14 112q9 62 70 62h47q70 0 57 -68l-14 -113q-10 -61 -70 -61h-45q-72 0 -59 68z" /> +<glyph unicode="¢" horiz-adv-x="1034" d="M125 719q41 285 161 400.5t376 115.5h22l41 178h86l-43 -182q127 -10 211 -45l-27 -109q-119 10 -219 10l-166 -751q156 0 297 22l13 -120q-156 -49 -345 -50h-4l-43 -188h-86l45 193q-209 18 -282.5 141t-36.5 385zM307 707q-27 -199 11 -277t163 -90l166 747 q-164 -6 -238.5 -85.5t-101.5 -294.5z" /> +<glyph unicode="£" horiz-adv-x="1163" d="M39 0l20 156q197 92 222 385l12 151h-162l14 107h156l23 272q20 223 121.5 295t310.5 72q163 -1 368 -21l-20 -143q-213 8 -354 8q-127 0 -184.5 -48t-67.5 -173l-21 -262h436l-20 -107h-424l-12 -155q-12 -143 -58.5 -233.5t-144.5 -158.5q43 8 133 9h612l-20 -154h-940 z" /> +<glyph unicode="¤" horiz-adv-x="1220" d="M106 342l160 141q-59 104 -41 244q18 154 109 256l-139 158l81 76l140 -162q109 70 252 69q147 0 243 -77l160 143l72 -86l-160 -139q63 -104 45 -250q-18 -150 -106 -250l141 -158l-80 -74l-141 160q-109 -74 -258 -74q-147 0 -246 80l-158 -141zM330 715 q-14 -133 54.5 -213t197.5 -82q139 -2 232 82t108 227q14 133 -55.5 214t-202.5 81q-139 0 -228.5 -84t-105.5 -225z" /> +<glyph unicode="¥" horiz-adv-x="1259" d="M139 326l13 104h358l12 88l-14 37h-336l12 107h283l-285 751h183l215 -584q31 -92 41 -159h18q27 76 86 166l377 577h196l-497 -751h284l-14 -107h-340l-31 -45l-10 -80h365l-17 -104h-362l-47 -326h-180l47 326h-357z" /> +<glyph unicode="¦" horiz-adv-x="501" d="M53 -346l115 819h129l-115 -819h-129zM211 780l117 819h127l-115 -819h-129z" /> +<glyph unicode="§" horiz-adv-x="1114" d="M16 -307l23 137q190 -12 383 -14q72 0 111.5 3t84 15t66 40t27.5 73q10 68 -16.5 108.5t-84.5 75.5l-307 186q-135 78 -159 193t42 281h127q-33 -129 -16.5 -207t104.5 -131l328 -203q96 -61 139 -132t27 -190q-25 -162 -125 -211t-307 -49q-252 4 -447 25zM209 1184 q20 154 120.5 205t307.5 51q266 -4 450 -25l-22 -135q-106 8 -381 10q-154 2 -217.5 -20.5t-75.5 -104.5q-10 -66 16.5 -106.5t86.5 -77.5l311 -190q131 -80 153.5 -197t-40.5 -283h-127q33 129 14 213.5t-105 137.5l-325 202q-98 61 -140 132t-26 188z" /> +<glyph unicode="¨" horiz-adv-x="841" d="M279 1257l16 115q8 49 57 49h54q53 0 45 -49l-17 -112q-6 -49 -55 -50h-57q-49 0 -43 47zM625 1257l16 115q10 49 57 49h54q55 0 45 -49l-17 -112q-6 -49 -55 -50h-57q-49 0 -43 47z" /> +<glyph unicode="©" horiz-adv-x="1708" d="M135 713q39 317 261 522t554 205q326 0 511.5 -206t142.5 -534q-41 -319 -264.5 -523t-555.5 -204q-330 0 -510 209t-139 531zM229 700q-35 -287 121 -462t432 -175q291 0 492 182.5t235 467.5q35 279 -118.5 458t-434.5 179q-293 0 -491.5 -182.5t-235.5 -467.5z M481 719q35 252 138.5 348t332.5 96q131 0 258 -28l-20 -99q-115 8 -225 8q-178 0 -249 -65.5t-100 -273.5q-27 -186 17.5 -256t187.5 -70q191 0 293 12l8 -100q-131 -31 -280 -31q-238 0 -317 100.5t-44 358.5z" /> +<glyph unicode="ª" horiz-adv-x="913" d="M162 899q14 113 45 184.5t79 105.5t96 44t124 10q174 0 338 -35l-90 -653h-109l4 119q-123 -133 -289 -133q-125 0 -175 79.5t-23 278.5zM296 703.5q19 -44.5 91 -44.5q111 0 268 136l47 335l-151 3q-139 0 -185.5 -41t-68.5 -201q-20 -143 -1 -187.5z" /> +<glyph unicode="«" horiz-adv-x="976" d="M76 504l2 39l383 397l71 -66l-313 -362l223 -373l-88 -59zM446 504l5 39l380 397l72 -66l-313 -362l223 -373l-86 -59z" /> +<glyph unicode="¬" horiz-adv-x="1202" d="M139 543l19 133h897l-58 -404h-133l39 271h-764z" /> +<glyph unicode="­" horiz-adv-x="915" d="M123 451l18 133h625l-18 -133h-625z" /> +<glyph unicode="®" horiz-adv-x="1134" d="M166 993q23 205 158 325t338 120q201 0 318.5 -123t94.5 -340q-23 -207 -155 -328t-334 -121q-211 0 -327 129t-93 338zM227 985q-20 -190 79.5 -296.5t279.5 -106.5q182 0 297 111.5t131 295.5q18 186 -79 288.5t-276 102.5q-186 0 -299.5 -108.5t-132.5 -286.5z M377 721l76 528q74 6 219 6q104 0 154.5 -30.5t37.5 -128.5q-6 -59 -33.5 -88t-91.5 -43v-4q35 -16 52 -78l43 -162h-86l-39 164q-14 53 -72 53l-148 2l-30 -219h-82zM498 999h135q78 2 109.5 20.5t39.5 82.5q8 55 -16.5 72.5t-95.5 17.5l-146 -2z" /> +<glyph unicode="¯" horiz-adv-x="819" d="M229 1247l17 129h571l-16 -129h-572z" /> +<glyph unicode="°" horiz-adv-x="743" d="M188 1188q8 113 88 182.5t195 69.5q121 0 188.5 -77t57.5 -191.5t-90 -184t-195 -69.5q-123 0 -188.5 78.5t-55.5 191.5zM297 1182q-6 -72 33 -116t108.5 -44t115.5 43t52 112.5t-31.5 113.5t-109.5 44q-68 0 -114 -42t-54 -111z" /> +<glyph unicode="±" horiz-adv-x="1198" d="M86 143l18 129h897l-18 -129h-897zM160 670l18 131h381l39 272h135l-39 -272h381l-18 -131h-381l-39 -275h-133l39 275h-383z" /> +<glyph unicode="²" horiz-adv-x="839" d="M143 737l11 88q8 43 22 56l285 256q193 170 203 270q4 47 -27 60.5t-111 13.5q-135 -1 -264 -19v107q143 31 279 30q133 0 202.5 -41.5t55.5 -150.5q-10 -78 -51 -141.5t-142 -155.5l-278 -250q55 8 135 8h291l-19 -131h-592z" /> +<glyph unicode="³" horiz-adv-x="806" d="M141 743l17 107q217 -10 237 -8q195 14 217 151q12 66 -19.5 100.5t-121.5 36.5h-168l14 105h162q92 0 127 37t43 104q8 63 -21.5 85t-135.5 22q-115 0 -224 -10l-2 106q152 23 256 23q145 0 205.5 -51.5t50.5 -151.5q-8 -78 -46 -144.5t-109 -72.5l-2 -4 q154 -25 127 -209q-37 -238 -345 -248q-106 -2 -262 22z" /> +<glyph unicode="´" horiz-adv-x="643" d="M207 1182l393 301l84 -135l-424 -246z" /> +<glyph unicode="¶" horiz-adv-x="1208" d="M123 938q39 281 192.5 390.5t489.5 109.5q188 0 321 -35l-196 -1403h-135l186 1315q-96 8 -201 8l-245 -1753h-134l119 842q-244 25 -338 151.5t-59 374.5z" /> +<glyph unicode="·" horiz-adv-x="477" d="M127 475l16 113q9 61 70 61h57q68 0 60 -69l-15 -111q-8 -61 -69 -61h-58q-70 0 -61 67z" /> +<glyph unicode="¸" horiz-adv-x="479" d="M-63 -469l32 92q82 -2 142.5 40t72.5 110q6 35 -14 45t-94 12l20 82q127 12 178.5 -18.5t34.5 -122.5q-20 -125 -123.5 -192.5t-248.5 -47.5z" /> +<glyph unicode="¹" horiz-adv-x="585" d="M193 1499l241 86h135l-118 -848h-136l93 643q6 49 16 82l-229 -63z" /> +<glyph unicode="º" horiz-adv-x="903" d="M158 899q27 190 108.5 267t261.5 77q186 0 254 -82t39 -276q-27 -190 -109.5 -267t-260.5 -77q-182 0 -251 83t-42 275zM293 885q-18 -137 14.5 -185.5t145 -48.5t163 53.5t70.5 194.5q20 137 -13.5 186.5t-144.5 49.5q-119 0 -166 -52.5t-69 -197.5z" /> +<glyph unicode="»" horiz-adv-x="978" d="M49 139l313 363l-223 375l86 57l281 -422l-4 -41l-381 -395zM420 139l313 363l-223 375l88 57l279 -422l-3 -41l-382 -395z" /> +<glyph unicode="¼" horiz-adv-x="1757" d="M174 1325l250 88h137l-119 -848h-137l90 649q8 49 17 80l-236 -63zM186 0l1117 1413h127l-1115 -1413h-129zM916.5 236.5q-23.5 37.5 11.5 99.5l332 512h135l-320 -500q-12 -16 -6 -28.5t29 -12.5h307l33 240l43 139h106l-53 -379h106l-14 -96l-106 -10l-29 -201h-127 l27 199h-396q-55 0 -78.5 37.5z" /> +<glyph unicode="½" horiz-adv-x="1798" d="M174 0l1114 1413h127l-1114 -1413h-127zM174 1325l250 88h135l-119 -848h-137l92 649q8 49 17 80l-236 -63zM983 0l12 80q4 39 25 59l299 254q193 162 213 271q8 53 -25.5 67t-120.5 14q-141 0 -278 -16l-4 102q145 31 287 31q168 0 237.5 -41t50.5 -159 q-18 -131 -204 -291l-306 -252q66 6 144 2h327l-18 -121h-639z" /> +<glyph unicode="¾" horiz-adv-x="1949" d="M113 567l10 103q121 -10 258 -11q115 0 168 37t65 125q8 63 -21.5 97t-133.5 34h-178l12 103h172q168 2 186 147q10 66 -22.5 87.5t-139.5 21.5q-162 0 -249 -8l-4 100q137 20 268 20q174 0 236.5 -45t45.5 -157q-12 -90 -51 -142.5t-125 -64.5l-12 -6q94 -14 128 -67.5 t24 -152.5q-16 -129 -91 -186t-241 -57q-133 0 -305 22zM397 0l1116 1413h127l-1114 -1413h-129zM1107 236.5q-24 37.5 11 99.5l332 512h135l-319 -500q-12 -16 -6 -28.5t28 -12.5h301l35 240l43 139h107l-54 -379h111l-14 -96l-113 -10l-27 -201h-129l27 199h-389 q-55 0 -79 37.5z" /> +<glyph unicode="¿" horiz-adv-x="1011" d="M-23 -111q10 84 58.5 156t111 126t125 110.5t114 135.5t67.5 171h145q-12 -104 -58 -191.5t-104.5 -147t-115 -111.5t-101.5 -111.5t-55 -122.5q-16 -98 38 -144.5t191 -46.5q225 0 412 19l2 -125q-12 -2 -64.5 -11.5t-65.5 -11.5t-57.5 -8t-75 -7t-80.5 -3t-108 -2 q-205 0 -301 88t-78 237zM475 848l17 115q6 59 67 59h45q70 0 62 -68l-17 -112q-8 -61 -69 -62h-43q-70 0 -62 68z" /> +<glyph unicode="À" horiz-adv-x="1267" d="M-61 0l647 1366q14 47 69 47h189q25 0 42 -15.5t19 -37.5l264 -1360h-180l-76 440h-583l-201 -440h-190zM401 598h484l-99 557q-2 18 -7 59t-9 62h-61l-54 -121zM434 1747l94 123l346 -301l-61 -78z" /> +<glyph unicode="Á" horiz-adv-x="1267" d="M-61 0l647 1366q14 47 69 47h189q25 0 42 -15.5t19 -37.5l264 -1360h-180l-76 440h-583l-201 -440h-190zM401 598h484l-99 557q-2 18 -7 59t-9 62h-61l-54 -121zM641 1573l393 299l84 -133l-422 -248z" /> +<glyph unicode="Â" horiz-adv-x="1267" d="M-61 0l647 1366q14 47 69 47h189q25 0 42 -15.5t19 -37.5l264 -1360h-180l-76 440h-583l-201 -440h-190zM401 598h484l-99 557q-2 18 -7 59t-9 62h-61l-54 -121zM444 1575l304 260h124l252 -270l-63 -70l-246 207h-16l-305 -203z" /> +<glyph unicode="Ã" horiz-adv-x="1267" d="M-61 0l647 1366q14 47 69 47h189q25 0 42 -15.5t19 -37.5l264 -1360h-180l-76 440h-583l-201 -440h-190zM401 598h484l-99 557q-2 18 -7 59t-9 62h-61l-54 -121zM453 1571q6 119 57 178t127 53q68 -6 154 -57t135 -57q59 -6 88 20.5t37 87.5l82 -8q-4 -113 -54.5 -172.5 t-128.5 -52.5q-80 6 -168 58t-125 58q-57 6 -84.5 -22.5t-37.5 -91.5z" /> +<glyph unicode="Ä" horiz-adv-x="1267" d="M-61 0l647 1366q14 47 69 47h189q25 0 42 -15.5t19 -37.5l264 -1360h-180l-76 440h-583l-201 -440h-190zM401 598h484l-99 557q-2 18 -7 59t-9 62h-61l-54 -121zM532 1618l19 113q6 51 57 51h54q51 0 45 -51l-19 -111q-6 -49 -53 -49h-57q-51 0 -46 47zM879 1618l18 113 q6 51 57 51h54q51 0 45 -51l-19 -111q-6 -49 -53 -49h-57q-51 0 -45 47z" /> +<glyph unicode="Å" horiz-adv-x="1267" d="M-61 0l647 1366q14 47 69 47h189q25 0 42 -15.5t19 -37.5l264 -1360h-180l-76 440h-583l-201 -440h-190zM401 598h484l-99 557q-2 18 -7 59t-9 62h-61l-54 -121zM575 1686q10 88 72 147t158 59q98 0 157.5 -62.5t49.5 -158.5q-10 -88 -73 -147.5t-159 -59.5 q-100 0 -157.5 62.5t-47.5 159.5zM672 1677q-6 -57 25.5 -91t84.5 -34q55 0 91 37t40 92q6 53 -23.5 88t-84.5 35t-91 -36t-42 -91z" /> +<glyph unicode="Æ" horiz-adv-x="1867" d="M-86 0l868 1194q92 131 194.5 176t291.5 45q391 0 608 -12l-25 -141h-522q-137 0 -158 -142l-41 -305h580l-18 -141h-582l-53 -389q-10 -70 16.5 -101.5t95.5 -31.5h529l-8 -142q-184 -12 -553 -12q-133 0 -202 76t-48 207l24 178h-475l-330 -459h-192zM549 614h383 l76 533q4 43 27.5 84t54.5 59h-11q-70 -37 -137 -133z" /> +<glyph unicode="Ç" horiz-adv-x="1159" d="M139 713q57 403 199.5 564t445.5 161q227 0 385 -43l-28 -135q-182 18 -359 18q-213 0 -311 -120t-143 -458q-45 -319 14 -441t260 -124q220 0 404 23l10 -138q-168 -45 -416 -45q-303 0 -409.5 173.5t-51.5 564.5zM307 -494l33 93q82 -2 143.5 40t73.5 109 q4 35 -16.5 45t-94.5 12l21 82q127 12 179 -18.5t36 -122.5q-23 -127 -126 -193.5t-249 -46.5z" /> +<glyph unicode="È" horiz-adv-x="1142" d="M119 281l125 893q16 115 92 178t205 63q422 0 610 -12l-25 -141h-563q-70 0 -102.5 -33t-42.5 -107l-43 -307h608l-18 -139h-609l-53 -391q-10 -70 16.5 -101.5t96.5 -31.5h553l-4 -142q-180 -12 -572 -12q-154 0 -223.5 74.5t-50.5 208.5zM426 1790l96 123l346 -301 l-63 -78z" /> +<glyph unicode="É" horiz-adv-x="1142" d="M119 281l125 893q16 115 92 178t205 63q422 0 610 -12l-25 -141h-563q-70 0 -102.5 -33t-42.5 -107l-43 -307h608l-18 -139h-609l-53 -391q-10 -70 16.5 -101.5t96.5 -31.5h553l-4 -142q-180 -12 -572 -12q-154 0 -223.5 74.5t-50.5 208.5zM635 1614l393 301l84 -135 l-422 -246z" /> +<glyph unicode="Ê" horiz-adv-x="1142" d="M119 281l125 893q16 115 92 178t205 63q422 0 610 -12l-25 -141h-563q-70 0 -102.5 -33t-42.5 -107l-43 -307h608l-18 -139h-609l-53 -391q-10 -70 16.5 -101.5t96.5 -31.5h553l-4 -142q-180 -12 -572 -12q-154 0 -223.5 74.5t-50.5 208.5zM438 1616l303 262h123 l254 -272l-63 -70l-246 209h-16l-306 -205z" /> +<glyph unicode="Ë" horiz-adv-x="1142" d="M119 281l125 893q16 115 92 178t205 63q422 0 610 -12l-25 -141h-563q-70 0 -102.5 -33t-42.5 -107l-43 -307h608l-18 -139h-609l-53 -391q-10 -70 16.5 -101.5t96.5 -31.5h553l-4 -142q-180 -12 -572 -12q-154 0 -223.5 74.5t-50.5 208.5zM526 1661l19 113q6 49 57 49 h51q31 0 41.5 -11.5t5.5 -37.5l-18 -111q-6 -49 -53 -49h-58q-51 0 -45 47zM872 1661l19 113q6 49 57 49h51q31 0 41.5 -11.5t6.5 -37.5l-19 -111q-6 -49 -53 -49h-57q-51 0 -46 47z" /> +<glyph unicode="Ì" horiz-adv-x="534" d="M59 1747l97 123l346 -301l-64 -78zM92 0l199 1413h182l-199 -1413h-182z" /> +<glyph unicode="Í" horiz-adv-x="534" d="M92 0l199 1413h182l-199 -1413h-182zM268 1573l391 299l84 -133l-421 -248z" /> +<glyph unicode="Î" horiz-adv-x="534" d="M70 1575l305 260h123l254 -270l-66 -70l-244 207h-16l-305 -203zM92 0l199 1413h182l-199 -1413h-182z" /> +<glyph unicode="Ï" horiz-adv-x="534" d="M92 0l199 1413h182l-199 -1413h-182zM158 1618l18 113q8 51 57 51h54q29 0 39 -12.5t6 -38.5l-19 -111q-2 -49 -53 -49h-57q-47 0 -45 47zM504 1618l18 113q9 51 58 51h53q29 0 39 -12.5t6 -38.5l-19 -111q-2 -49 -53 -49h-57q-47 0 -45 47z" /> +<glyph unicode="Ð" horiz-adv-x="1355" d="M55 700l15 101h135l86 612q250 18 463 19q328 0 438.5 -162t52.5 -570q-33 -229 -82 -370.5t-135 -218t-191.5 -103t-275.5 -26.5q-201 0 -469 18l98 700h-135zM293 143q184 -4 266 -4q127 0 205 21.5t138.5 86t95 174t61.5 292.5q20 141 21 236t-14 161t-58 101.5 t-103.5 50t-155 14.5t-298.5 -4l-66 -471h315l-12 -101h-317z" /> +<glyph unicode="Ñ" horiz-adv-x="1439" d="M92 0l189 1346q12 68 75 67h160q51 0 74 -61l344 -975q47 -135 65 -205h39q6 113 21 207l141 1034h178l-190 -1345q-8 -68 -72 -68h-164q-51 0 -73 61l-355 1002q-41 111 -55 182h-35q-2 -84 -16 -186l-146 -1059h-180zM547 1571q6 119 57 178t127 53q68 -6 153 -57 t136 -57q59 -6 88 20.5t37 87.5l80 -8q-2 -113 -52.5 -172.5t-128.5 -52.5q-80 6 -168 58t-124 58q-57 6 -86 -22.5t-37 -91.5z" /> +<glyph unicode="Ò" horiz-adv-x="1363" d="M139 713q55 401 200 564t454 163q297 0 407.5 -169t52.5 -571q-55 -408 -198.5 -567.5t-446.5 -159.5q-299 0 -411.5 167t-57.5 573zM328 700q-45 -322 15 -443.5t269 -121.5q211 0 309.5 125t145.5 452.5t-13.5 446.5t-271.5 119q-215 0 -312 -123t-142 -455zM475 1747 l96 123l347 -301l-64 -78z" /> +<glyph unicode="Ó" horiz-adv-x="1363" d="M139 713q55 401 200 564t454 163q297 0 407.5 -169t52.5 -571q-55 -408 -198.5 -567.5t-446.5 -159.5q-299 0 -411.5 167t-57.5 573zM328 700q-45 -322 15 -443.5t269 -121.5q211 0 309.5 125t145.5 452.5t-13.5 446.5t-271.5 119q-215 0 -312 -123t-142 -455zM684 1573 l393 299l84 -133l-422 -248z" /> +<glyph unicode="Ô" horiz-adv-x="1363" d="M139 713q55 401 200 564t454 163q297 0 407.5 -169t52.5 -571q-55 -408 -198.5 -567.5t-446.5 -159.5q-299 0 -411.5 167t-57.5 573zM328 700q-45 -322 15 -443.5t269 -121.5q211 0 309.5 125t145.5 452.5t-13.5 446.5t-271.5 119q-215 0 -312 -123t-142 -455zM487 1575 l304 260h122l254 -270l-63 -70l-246 207h-16l-305 -203z" /> +<glyph unicode="Õ" horiz-adv-x="1363" d="M139 713q55 401 200 564t454 163q297 0 407.5 -169t52.5 -571q-55 -408 -198.5 -567.5t-446.5 -159.5q-299 0 -411.5 167t-57.5 573zM328 700q-45 -322 15 -443.5t269 -121.5q211 0 309.5 125t145.5 452.5t-13.5 446.5t-271.5 119q-215 0 -312 -123t-142 -455zM496 1571 q6 119 57 178t127 53q68 -6 153 -57t136 -57q59 -6 87.5 20.5t37.5 87.5l80 -8q-2 -113 -52.5 -172.5t-128.5 -52.5q-80 6 -168 58t-125 58q-57 6 -85.5 -22.5t-36.5 -91.5z" /> +<glyph unicode="Ö" horiz-adv-x="1363" d="M139 713q55 401 200 564t454 163q297 0 407.5 -169t52.5 -571q-55 -408 -198.5 -567.5t-446.5 -159.5q-299 0 -411.5 167t-57.5 573zM328 700q-45 -322 15 -443.5t269 -121.5q211 0 309.5 125t145.5 452.5t-13.5 446.5t-271.5 119q-215 0 -312 -123t-142 -455zM575 1618 l19 113q6 51 57 51h51q53 0 48 -51l-19 -111q-6 -49 -53 -49h-57q-51 0 -46 47zM922 1618l18 113q6 51 57 51h52q53 0 47 -51l-19 -111q-6 -49 -53 -49h-59q-49 0 -43 47z" /> +<glyph unicode="×" horiz-adv-x="1075" d="M86 322l348 274l-264 272l96 97l275 -283l370 295l80 -113l-354 -282l260 -273l-94 -96l-275 285l-362 -289z" /> +<glyph unicode="Ø" horiz-adv-x="1363" d="M139 713q55 401 199.5 564t454.5 163q164 0 264 -47l90 149l86 -49l-92 -152q182 -158 112 -641q-55 -408 -198.5 -567.5t-446.5 -159.5q-168 0 -270 47l-86 -143l-84 51l88 146q-182 158 -117 639zM328 700q-50 -345 26 -462l613 1007q-59 33 -185 33q-215 0 -312 -123 t-142 -455zM428 170q68 -35 184 -35q211 0 309.5 125t145.5 453q51 348 -25 467z" /> +<glyph unicode="Ù" horiz-adv-x="1359" d="M160 547l119 866h182l-123 -874q-33 -227 26.5 -315.5t241.5 -88.5q188 0 278.5 92t123.5 320l118 866h183l-123 -874q-45 -307 -176 -436.5t-400 -129.5q-276 0 -384.5 134.5t-65.5 439.5zM473 1747l96 123l346 -301l-63 -78z" /> +<glyph unicode="Ú" horiz-adv-x="1359" d="M160 547l119 866h182l-123 -874q-33 -227 26.5 -315.5t241.5 -88.5q188 0 278.5 92t123.5 320l118 866h183l-123 -874q-45 -307 -176 -436.5t-400 -129.5q-276 0 -384.5 134.5t-65.5 439.5zM682 1573l393 299l84 -133l-422 -248z" /> +<glyph unicode="Û" horiz-adv-x="1359" d="M160 547l119 866h182l-123 -874q-33 -227 26.5 -315.5t241.5 -88.5q188 0 278.5 92t123.5 320l118 866h183l-123 -874q-45 -307 -176 -436.5t-400 -129.5q-276 0 -384.5 134.5t-65.5 439.5zM485 1575l303 260h123l254 -270l-63 -70l-246 207h-16l-305 -203z" /> +<glyph unicode="Ü" horiz-adv-x="1359" d="M160 547l119 866h182l-123 -874q-33 -227 26.5 -315.5t241.5 -88.5q188 0 278.5 92t123.5 320l118 866h183l-123 -874q-45 -307 -176 -436.5t-400 -129.5q-276 0 -384.5 134.5t-65.5 439.5zM573 1618l19 113q6 51 57 51h51q53 0 48 -51l-19 -111q-6 -49 -53 -49h-58 q-51 0 -45 47zM920 1618l18 113q6 51 57 51h52q53 0 47 -51l-19 -111q-6 -49 -53 -49h-59q-49 0 -43 47z" /> +<glyph unicode="Ý" horiz-adv-x="1157" d="M131 1413h184l213 -600q31 -92 41 -160h17q31 82 84 166l381 594h196l-598 -919l-69 -494h-183l72 502zM573 1573l392 299l84 -133l-422 -248z" /> +<glyph unicode="Þ" horiz-adv-x="1206" d="M92 0l199 1413h180l-35 -256q80 4 297 4q244 0 339 -98t58.5 -354t-143 -348.5t-340.5 -92.5q-176 0 -334 19l-41 -287h-180zM332 424h293q164 2 233.5 62.5t93.5 236.5q23 170 -23 227.5t-202 57.5q-231 0 -313 -2z" /> +<glyph unicode="ß" horiz-adv-x="1376" d="M-246 -397l27 131h156q98 0 142 34.5t58 135.5l135 956h-182l19 125l182 10l16 119q16 117 55 190.5t108 110.5t144.5 49.5t192.5 12.5q264 0 363.5 -60.5t78.5 -214.5q-10 -84 -57 -144.5t-156 -123.5l-53 -26.5t-54.5 -28t-42 -24.5t-39.5 -30.5t-23.5 -33t-16.5 -39.5 q-6 -41 17.5 -68t86.5 -66l201 -120q90 -55 124 -112.5t21 -160.5q-20 -147 -113 -197.5t-284 -50.5q-168 0 -325 23l20 133q182 -10 274 -8q129 0 185.5 24.5t66.5 100.5q4 39 -9 67.5t-30.5 43t-60.5 40.5l-207 125q-156 92 -135 232q4 37 22.5 70.5t37 54t63.5 50.5 t67.5 42t85.5 45q84 49 122 88t44 98q6 66 -44 96.5t-216 30.5q-180 0 -250.5 -49t-91.5 -194l-172 -1213q-23 -147 -101.5 -218t-225.5 -71q-96 0 -226 15z" /> +<glyph unicode="à" d="M104 510q23 166 63 269.5t105.5 155.5t139 69.5t190.5 17.5q223 0 469 -47l-137 -975h-137l12 201q-193 -225 -444 -226q-180 0 -242 120t-19 415zM271.5 199q23.5 -72 127.5 -72q179 0 408 223l74 520q-147 6 -226 7q-207 0 -273.5 -67t-102.5 -314q-31 -225 -7.5 -297z M328 1378l94 123l346 -301l-61 -78z" /> +<glyph unicode="á" d="M104 510q23 166 63 269.5t105.5 155.5t139 69.5t190.5 17.5q223 0 469 -47l-137 -975h-137l12 201q-193 -225 -444 -226q-180 0 -242 120t-19 415zM271.5 199q23.5 -72 127.5 -72q179 0 408 223l74 520q-147 6 -226 7q-207 0 -273.5 -67t-102.5 -314q-31 -225 -7.5 -297z M535 1204l393 299l84 -133l-422 -248z" /> +<glyph unicode="â" d="M104 510q23 166 63 269.5t105.5 155.5t139 69.5t190.5 17.5q223 0 469 -47l-137 -975h-137l12 201q-193 -225 -444 -226q-180 0 -242 120t-19 415zM271.5 199q23.5 -72 127.5 -72q179 0 408 223l74 520q-147 6 -226 7q-207 0 -273.5 -67t-102.5 -314q-31 -225 -7.5 -297z M338 1206l303 260h125l254 -270l-66 -70l-243 207h-19l-303 -203z" /> +<glyph unicode="ã" d="M104 510q23 166 63 269.5t105.5 155.5t139 69.5t190.5 17.5q223 0 469 -47l-137 -975h-137l12 201q-193 -225 -444 -226q-180 0 -242 120t-19 415zM271.5 199q23.5 -72 127.5 -72q179 0 408 223l74 520q-147 6 -226 7q-207 0 -273.5 -67t-102.5 -314q-31 -225 -7.5 -297z M346 1202q6 119 57.5 178.5t126.5 53.5q70 -6 155 -57.5t134 -57.5q59 -6 88 20.5t37 87.5l82 -8q-4 -113 -54 -172t-128 -53q-80 6 -167 59.5t-124 57.5q-57 6 -86 -22.5t-39 -92.5z" /> +<glyph unicode="ä" d="M104 510q23 166 63 269.5t105.5 155.5t139 69.5t190.5 17.5q223 0 469 -47l-137 -975h-137l12 201q-193 -225 -444 -226q-180 0 -242 120t-19 415zM271.5 199q23.5 -72 127.5 -72q179 0 408 223l74 520q-147 6 -226 7q-207 0 -273.5 -67t-102.5 -314q-31 -225 -7.5 -297z M426 1249l18 115q6 49 58 49h53q51 0 45 -49l-18 -113q-7 -49 -54 -49h-57q-51 0 -45 47zM772 1249l19 115q6 49 57 49h53q51 0 45 -49l-18 -113q-7 -49 -54 -49h-57q-51 0 -45 47z" /> +<glyph unicode="å" d="M104 510q23 166 63 269.5t105.5 155.5t139 69.5t190.5 17.5q223 0 469 -47l-137 -975h-137l12 201q-193 -225 -444 -226q-180 0 -242 120t-19 415zM271.5 199q23.5 -72 127.5 -72q179 0 408 223l74 520q-147 6 -226 7q-207 0 -273.5 -67t-102.5 -314q-31 -225 -7.5 -297z M469 1317q10 88 72.5 148.5t156.5 60.5q98 0 157.5 -63.5t49.5 -159.5q-10 -88 -72.5 -147.5t-158.5 -59.5q-100 0 -157.5 62.5t-47.5 158.5zM567 1309q-8 -55 25 -89t84 -34q53 0 90 35.5t41 91.5q6 53 -23.5 88t-83.5 35q-57 0 -93 -36t-40 -91z" /> +<glyph unicode="æ" horiz-adv-x="1787" d="M102 510q23 166 63 269.5t106.5 155.5t139 69.5t187.5 17.5q211 0 442 -45q104 45 293 45q227 0 311.5 -79t59.5 -241q-25 -141 -112 -202.5t-267 -75.5l-369 -33q-6 -158 58.5 -213t208.5 -55q180 -1 358 24l12 -116q-135 -55 -401 -56q-324 0 -393 224 q-186 -223 -441 -224q-178 0 -237.5 122t-18.5 413zM273.5 200q21.5 -73 119.5 -73q172 0 383 205q-2 86 12 190q31 236 113 344q-180 10 -250 11q-203 0 -268.5 -68t-99.5 -313q-31 -223 -9.5 -296zM969 520l354 35q100 8 146.5 42t60.5 120q16 104 -32 132t-187 28 q-170 0 -239.5 -69t-102.5 -288z" /> +<glyph unicode="ç" horiz-adv-x="991" d="M94 506q41 285 161 400.5t376 115.5q197 0 319 -49l-28 -109q-111 10 -263 10q-188 0 -271 -77.5t-112 -304.5q-29 -225 25.5 -297t233.5 -72q170 0 299 20l12 -118q-158 -49 -342 -50q-262 0 -356.5 122t-53.5 409zM213 -494l33 93q82 -2 142.5 40t72.5 109 q6 35 -14.5 45t-94.5 12l21 82q127 12 178 -18.5t35 -122.5q-20 -125 -124 -192.5t-249 -47.5z" /> +<glyph unicode="è" horiz-adv-x="1099" d="M98 522q41 291 159 395.5t386 104.5q227 0 312 -79t59 -241q-25 -141 -112 -202.5t-267 -75.5l-369 -33q-4 -158 59.5 -213t206.5 -55q177 -1 367 24l12 -116q-141 -55 -407 -56q-256 0 -350.5 131.5t-55.5 415.5zM279 520l354 35q102 8 148 42t61 120q16 104 -33 132 t-188 28q-168 0 -237.5 -69t-104.5 -288zM313 1378l97 123l346 -301l-64 -78z" /> +<glyph unicode="é" horiz-adv-x="1099" d="M98 522q41 291 159 395.5t386 104.5q227 0 312 -79t59 -241q-25 -141 -112 -202.5t-267 -75.5l-369 -33q-4 -158 59.5 -213t206.5 -55q177 -1 367 24l12 -116q-141 -55 -407 -56q-256 0 -350.5 131.5t-55.5 415.5zM279 520l354 35q102 8 148 42t61 120q16 104 -33 132 t-188 28q-168 0 -237.5 -69t-104.5 -288zM522 1204l391 299l86 -133l-424 -248z" /> +<glyph unicode="ê" horiz-adv-x="1099" d="M98 522q41 291 159 395.5t386 104.5q227 0 312 -79t59 -241q-25 -141 -112 -202.5t-267 -75.5l-369 -33q-4 -158 59.5 -213t206.5 -55q177 -1 367 24l12 -116q-141 -55 -407 -56q-256 0 -350.5 131.5t-55.5 415.5zM279 520l354 35q102 8 148 42t61 120q16 104 -33 132 t-188 28q-168 0 -237.5 -69t-104.5 -288zM324 1206l305 260h123l254 -270l-66 -70l-244 207h-16l-305 -203z" /> +<glyph unicode="ë" horiz-adv-x="1099" d="M98 522q41 291 159 395.5t386 104.5q227 0 312 -79t59 -241q-25 -141 -112 -202.5t-267 -75.5l-369 -33q-4 -158 59.5 -213t206.5 -55q177 -1 367 24l12 -116q-141 -55 -407 -56q-256 0 -350.5 131.5t-55.5 415.5zM279 520l354 35q102 8 148 42t61 120q16 104 -33 132 t-188 28q-168 0 -237.5 -69t-104.5 -288zM412 1249l18 115q8 49 57 49h54q53 0 45 -49l-19 -113q-2 -49 -53 -49h-57q-47 0 -45 47zM758 1249l18 115q10 49 58 49h53q55 0 45 -49l-19 -113q-4 -49 -53 -49h-57q-47 0 -45 47z" /> +<glyph unicode="ì" horiz-adv-x="503" d="M-6 1378l96 123l346 -301l-63 -78zM80 0l141 997h174l-141 -997h-174z" /> +<glyph unicode="í" horiz-adv-x="503" d="M80 0l141 997h174l-141 -997h-174zM203 1204l391 299l84 -133l-422 -248z" /> +<glyph unicode="î" horiz-adv-x="503" d="M4 1206l305 260h123l254 -270l-65 -70l-244 207h-17l-305 -203zM80 0l141 997h174l-141 -997h-174z" /> +<glyph unicode="ï" horiz-adv-x="503" d="M80 0l141 997h174l-141 -997h-174zM92 1249l19 115q8 49 57 49h53q51 0 45 -49l-18 -113q-2 -49 -53 -49h-58q-47 0 -45 47zM438 1249l19 115q10 49 57 49h53q51 0 45 -49l-18 -113q-4 -49 -53 -49h-58q-47 0 -45 47z" /> +<glyph unicode="ð" horiz-adv-x="1136" d="M90 455q29 225 139.5 344t321.5 119q184 0 293 -111q0 258 -115 379l-182 -125l-47 69l157 111q-109 66 -313 62l27 127q254 10 415 -97l172 121l52 -74l-154 -104q215 -215 150 -705q-39 -299 -157 -448.5t-378 -149.5q-229 0 -321.5 118t-59.5 364zM270 442 q-27 -176 23.5 -248.5t185.5 -72.5q166 0 242 110.5t108 364.5q8 66 11 94q-104 82 -252 82q-150 0 -222.5 -82t-95.5 -248z" /> +<glyph unicode="ñ" horiz-adv-x="1183" d="M72 0l141 997h139l-14 -219q274 244 481 244q127 0 190.5 -70.5t45.5 -206.5l-107 -745h-174l100 702q12 96 -12 134t-96 38q-90 0 -185.5 -53t-244.5 -172l-90 -649h-174zM356 1202q6 119 57.5 178.5t127.5 53.5q68 -6 152.5 -57.5t135.5 -57.5q59 -6 87 20.5t38 87.5 l80 -8q-2 -113 -52 -172t-128 -53q-80 6 -168 59.5t-125 57.5q-57 6 -86 -22.5t-37 -92.5z" /> +<glyph unicode="ò" horiz-adv-x="1155" d="M94 504q41 283 161 400.5t374 117.5t349 -123t54 -410q-39 -283 -159.5 -399.5t-370.5 -116.5q-252 0 -349.5 123t-58.5 408zM276 489q-31 -213 17.5 -290.5t208.5 -77.5q168 0 244.5 82t107.5 301q31 215 -17 292.5t-208 77.5q-168 0 -245 -79.5t-108 -305.5zM315 1378 l97 123l346 -301l-64 -78z" /> +<glyph unicode="ó" horiz-adv-x="1155" d="M94 504q41 283 161 400.5t374 117.5t349 -123t54 -410q-39 -283 -159.5 -399.5t-370.5 -116.5q-252 0 -349.5 123t-58.5 408zM276 489q-31 -213 17.5 -290.5t208.5 -77.5q168 0 244.5 82t107.5 301q31 215 -17 292.5t-208 77.5q-168 0 -245 -79.5t-108 -305.5zM524 1204 l394 299l83 -133l-423 -248z" /> +<glyph unicode="ô" horiz-adv-x="1155" d="M94 504q41 283 161 400.5t374 117.5t349 -123t54 -410q-39 -283 -159.5 -399.5t-370.5 -116.5q-252 0 -349.5 123t-58.5 408zM276 489q-31 -213 17.5 -290.5t208.5 -77.5q168 0 244.5 82t107.5 301q31 215 -17 292.5t-208 77.5q-168 0 -245 -79.5t-108 -305.5zM328 1206 l303 260h123l254 -270l-66 -70l-244 207h-16l-305 -203z" /> +<glyph unicode="õ" horiz-adv-x="1155" d="M94 504q41 283 161 400.5t374 117.5t349 -123t54 -410q-39 -283 -159.5 -399.5t-370.5 -116.5q-252 0 -349.5 123t-58.5 408zM276 489q-31 -213 17.5 -290.5t208.5 -77.5q168 0 244.5 82t107.5 301q31 215 -17 292.5t-208 77.5q-168 0 -245 -79.5t-108 -305.5zM336 1202 q4 119 56 178.5t128 53.5q68 -6 153 -57.5t136 -57.5q57 -6 86 20.5t39 87.5l80 -8q-2 -113 -52.5 -172t-127.5 -53q-80 6 -168 59.5t-125 57.5q-57 6 -86 -23t-37 -92z" /> +<glyph unicode="ö" horiz-adv-x="1155" d="M94 504q41 283 161 400.5t374 117.5t349 -123t54 -410q-39 -283 -159.5 -399.5t-370.5 -116.5q-252 0 -349.5 123t-58.5 408zM276 489q-31 -213 17.5 -290.5t208.5 -77.5q168 0 244.5 82t107.5 301q31 215 -17 292.5t-208 77.5q-168 0 -245 -79.5t-108 -305.5zM416 1249 l16 115q10 49 57 49h54q55 0 45 -49l-17 -113q-6 -49 -53 -49h-59q-49 0 -43 47zM762 1249l16 115q9 49 58 49h53q53 0 45 -49l-16 -113q-6 -49 -56 -49h-57q-49 0 -43 47z" /> +<glyph unicode="÷" horiz-adv-x="1161" d="M123 539l20 131h897l-20 -131h-897zM436 201l15 96q6 63 65 63h47q70 0 62 -69l-17 -101q-6 -59 -67 -59h-47q-66 0 -58 70zM535 913l14 99q8 63 69 63h46q72 -2 59 -69l-12 -101q-8 -59 -70 -59h-45q-72 0 -61 67z" /> +<glyph unicode="ø" horiz-adv-x="1155" d="M94 504q41 283 161 400.5t374 117.5q125 0 198 -25l93 156l77 -45l-88 -145q176 -111 123 -474q-39 -283 -159.5 -399.5t-370.5 -116.5q-106 0 -180 21l-91 -148l-75 45l82 136q-195 104 -144 477zM276 489q-34 -253 46 -323l421 696q-37 12 -114 12q-168 0 -245 -79.5 t-108 -305.5zM403 129q39 -8 99 -8q168 0 244.5 82t107.5 301q33 241 -33 313z" /> +<glyph unicode="ù" horiz-adv-x="1161" d="M102 252l105 745h174l-100 -702q-14 -92 13.5 -131t104.5 -39q88 0 174 53t226 178l88 641h174l-139 -997h-136l15 217q-250 -244 -461 -244q-135 0 -196.5 74t-41.5 205zM324 1386l96 123l346 -301l-64 -78z" /> +<glyph unicode="ú" horiz-adv-x="1161" d="M102 252l105 745h174l-100 -702q-14 -92 13.5 -131t104.5 -39q88 0 174 53t226 178l88 641h174l-139 -997h-136l15 217q-250 -244 -461 -244q-135 0 -196.5 74t-41.5 205zM532 1210l394 301l84 -135l-424 -246z" /> +<glyph unicode="û" horiz-adv-x="1161" d="M102 252l105 745h174l-100 -702q-14 -92 13.5 -131t104.5 -39q88 0 174 53t226 178l88 641h174l-139 -997h-136l15 217q-250 -244 -461 -244q-135 0 -196.5 74t-41.5 205zM336 1214l303 261h123l254 -271l-64 -69l-245 206h-17l-305 -202z" /> +<glyph unicode="ü" horiz-adv-x="1161" d="M102 252l105 745h174l-100 -702q-14 -92 13.5 -131t104.5 -39q88 0 174 53t226 178l88 641h174l-139 -997h-136l15 217q-250 -244 -461 -244q-135 0 -196.5 74t-41.5 205zM424 1257l16 113q8 51 58 51h53q53 0 45 -51l-16 -110q-7 -50 -54 -50h-59q-49 0 -43 47z M770 1257l16 113q8 51 58 51h53q53 0 45 -51l-16 -110q-7 -50 -54 -50h-59q-49 0 -43 47z" /> +<glyph unicode="ý" horiz-adv-x="1103" d="M72 -297q125 29 224 96.5t193 200.5h-90q-45 0 -75.5 25.5t-40.5 66.5l-193 905h182l158 -821q10 -39 47 -39h98l19.5 39t21.5 41q193 377 275 780h180q-109 -481 -303 -831q-158 -293 -308.5 -422t-355.5 -166zM467 1204l393 299l84 -133l-422 -248z" /> +<glyph unicode="þ" d="M16 -412l258 1846h175l-54 -383q-18 -136 -41 -224l2 -12q188 207 430 207q170 0 233.5 -119t22.5 -416q-23 -166 -62.5 -269t-104 -156.5t-136 -71t-184.5 -17.5q-131 0 -309 25q-16 -127 -21 -148l-37 -262h-172zM266 125q197 -4 226 -4q205 0 270 65.5t100 313.5 q31 227 8.5 298.5t-122.5 71.5q-179 0 -412 -227z" /> +<glyph unicode="ÿ" horiz-adv-x="1103" d="M72 -297q125 29 224 96.5t193 200.5h-90q-45 0 -75.5 25.5t-40.5 66.5l-193 905h182l158 -821q10 -39 47 -39h98l19.5 39t21.5 41q193 377 275 780h180q-109 -481 -303 -831q-158 -293 -308.5 -422t-355.5 -166zM358 1249l19 115q6 49 57 49h53q51 0 45 -49l-18 -113 q-6 -49 -53 -49h-58q-51 0 -45 47zM705 1249l18 115q6 49 57 49h54q51 0 45 -49l-19 -113q-6 -49 -53 -49h-57q-51 0 -45 47z" /> +<glyph unicode="Œ" horiz-adv-x="1882" d="M141 713q57 412 199.5 569.5t454.5 157.5q182 0 329 -64q66 39 168 39q414 0 596 -12l-22 -141h-551q-131 0 -148 -140l-43 -307h598l-18 -141h-598l-53 -389q-10 -72 16.5 -102.5t95.5 -30.5h545l-6 -142q-176 -12 -561 -12q-121 0 -191 47q-160 -72 -342 -72 q-319 0 -423.5 162t-45.5 578zM328 700q-47 -322 14 -443.5t272 -121.5q139 0 256 35q-10 50 0 111l123 893q4 29 21 77q-102 27 -221 27q-217 0 -318.5 -124t-146.5 -454z" /> +<glyph unicode="œ" horiz-adv-x="1853" d="M94 504q39 283 160 400.5t375 117.5q266 0 356 -133q63 74 161.5 103.5t254.5 29.5q227 0 311 -79t60 -241q-25 -141 -112 -202.5t-269 -75.5l-367 -35q-6 -156 57.5 -211t208.5 -55q177 -1 359 24l12 -116q-135 -55 -401 -56q-264 0 -359 146q-121 -147 -399 -148 q-254 0 -350.5 123t-57.5 408zM276 489q-31 -213 16.5 -290.5t209.5 -77.5q168 0 244.5 83t105.5 300q33 215 -15.5 292.5t-207.5 77.5q-168 0 -245 -79.5t-108 -305.5zM1036 520l355 35q100 8 146 42t60 120q16 106 -31.5 131.5t-189.5 25.5q-168 0 -237.5 -68.5 t-102.5 -285.5z" /> +<glyph unicode="Ÿ" horiz-adv-x="1157" d="M131 1413h184l213 -600q31 -92 41 -160h17q31 82 84 166l381 594h196l-598 -919l-69 -494h-183l72 502zM463 1618l18 113q6 51 58 51h53q51 0 45 -51l-19 -111q-6 -49 -53 -49h-57q-51 0 -45 47zM809 1618l18 113q6 51 58 51h53q51 0 45 -51l-18 -111q-7 -49 -54 -49h-57 q-51 0 -45 47z" /> +<glyph unicode="ˆ" horiz-adv-x="860" d="M197 1200l305 260h123l254 -272l-66 -68l-244 207h-16l-305 -205z" /> +<glyph unicode="˜" horiz-adv-x="858" d="M205 1202q4 119 56 177.5t128 52.5q68 -6 152 -56.5t135 -56.5q59 -8 88 18.5t37 87.5l82 -6q-2 -113 -53.5 -173t-129 -54t-166 59.5t-124.5 57.5q-57 6 -86 -23t-37 -92z" /> +<glyph unicode=" " horiz-adv-x="957" /> +<glyph unicode=" " horiz-adv-x="1915" /> +<glyph unicode=" " horiz-adv-x="957" /> +<glyph unicode=" " horiz-adv-x="1915" /> +<glyph unicode=" " horiz-adv-x="638" /> +<glyph unicode=" " horiz-adv-x="478" /> +<glyph unicode=" " horiz-adv-x="319" /> +<glyph unicode=" " horiz-adv-x="319" /> +<glyph unicode=" " horiz-adv-x="239" /> +<glyph unicode=" " horiz-adv-x="383" /> +<glyph unicode=" " horiz-adv-x="106" /> +<glyph unicode="‐" horiz-adv-x="915" d="M125 451l18 133h623l-16 -133h-625z" /> +<glyph unicode="‑" horiz-adv-x="915" d="M125 451l18 133h623l-16 -133h-625z" /> +<glyph unicode="‒" horiz-adv-x="915" d="M125 451l18 133h623l-16 -133h-625z" /> +<glyph unicode="–" horiz-adv-x="1210" d="M125 451l18 133h918l-19 -133h-917z" /> +<glyph unicode="—" horiz-adv-x="1832" d="M125 451l18 133h1540l-18 -133h-1540z" /> +<glyph unicode="‘" horiz-adv-x="444" d="M197 1067l16 125q20 133 115 293l84 -29q-53 -170 -66 -229q29 2 43 -12.5t10 -38.5l-18 -113q-6 -35 -21.5 -46t-56.5 -11h-51q-68 0 -55 61z" /> +<glyph unicode="’" horiz-adv-x="440" d="M209 1014q53 168 65 229q-29 -2 -43 13.5t-10 39.5l19 113q6 35 21 46t56 11h52q68 0 55 -63l-16 -123q-20 -133 -115 -293z" /> +<glyph unicode="‚" horiz-adv-x="466" d="M49 -227q53 170 66 229q-29 -2 -42.5 12.5t-11.5 40.5l19 113q8 33 23.5 45t56.5 12h53q68 0 55 -63l-18 -123q-16 -129 -115 -295z" /> +<glyph unicode="“" horiz-adv-x="755" d="M197 1067l16 125q20 133 115 293l84 -29q-53 -170 -66 -229q29 2 43 -12.5t10 -38.5l-18 -113q-6 -35 -21.5 -46t-56.5 -11h-51q-68 0 -55 61zM510 1067l16 125q16 131 113 293l86 -29q-47 -139 -66 -229q27 2 41.5 -12.5t12.5 -38.5l-19 -113q-8 -35 -23.5 -46 t-54.5 -11h-53q-66 0 -53 61z" /> +<glyph unicode="”" horiz-adv-x="753" d="M209 1014q53 168 65 229q-29 -2 -43 13.5t-10 39.5l19 113q6 35 21 46t56 11h52q68 0 55 -63l-16 -123q-20 -133 -115 -293zM520 1014q51 150 66 229q-27 -2 -41.5 13.5t-9.5 39.5l16 113q8 35 23.5 46t54.5 11h53q68 0 55 -63l-18 -123q-16 -131 -113 -293z" /> +<glyph unicode="„" horiz-adv-x="778" d="M49 -229q53 170 66 229q-29 -2 -43.5 13.5t-10.5 39.5l19 113q6 35 21.5 46t56.5 11h51q68 0 55 -63l-16 -123q-20 -137 -115 -293zM360 -229q51 152 66 229q-27 -2 -41 13.5t-10 39.5l16 113q8 35 23.5 46t56.5 11h51q68 0 56 -63l-19 -123q-16 -135 -113 -293z" /> +<glyph unicode="•" horiz-adv-x="739" d="M176 543l4 26q12 96 53.5 130t141.5 34h24q94 0 129 -40t23 -134l-4 -27q-14 -100 -54 -135t-137 -35h-24q-100 0 -135 40t-21 141z" /> +<glyph unicode="…" horiz-adv-x="1722" d="M63 68l17 114q9 60 70 60h57q68 0 59 -68l-16 -113q-6 -61 -68 -61h-57q-72 0 -62 68zM694 68l17 114q8 60 69 60h58q68 0 59 -68l-14 -113q-10 -61 -70 -61h-57q-72 0 -62 68zM1325 68l18 114q7 60 68 60h59q70 0 60 -68l-17 -113q-6 -61 -67 -61h-60q-72 0 -61 68z" /> +<glyph unicode=" " horiz-adv-x="383" /> +<glyph unicode="‹" horiz-adv-x="606" d="M76 504l2 39l383 397l71 -66l-313 -362l223 -373l-88 -59z" /> +<glyph unicode="›" horiz-adv-x="608" d="M49 145l313 365l-221 373l86 57l279 -422l-2 -39l-383 -399z" /> +<glyph unicode=" " horiz-adv-x="478" /> +<glyph unicode="€" horiz-adv-x="1298" d="M94 535l17 108h170l8 70q6 55 14 90h-170l17 108h176q68 270 215 398.5t413 128.5q181 0 328 -43l-29 -138q-154 25 -311 19q-174 -6 -274.5 -91t-151.5 -274h522l-30 -108h-516q-4 -18 -19 -107l-6 -53h463l-31 -108h-442q-8 -207 63.5 -300.5t241.5 -97.5 q184 -6 352 25l8 -142q-154 -45 -354 -45q-270 0 -388 137.5t-108 422.5h-178z" /> +<glyph unicode="™" horiz-adv-x="1959" d="M231 1321l13 104h665l-14 -104h-270l-95 -674h-124l92 674h-267zM901 647l133 733q8 45 49 45h129q43 0 48 -43l94 -452q4 -16 9 -53t7 -56h25q20 59 43 109l219 459q16 36 53 36h133q23 0 36 -15t9 -38l-69 -725h-117l63 682h-22l-264 -553q-16 -37 -54 -37h-96 q-45 0 -49 45l-115 545h-24l-123 -682h-117z" /> +<glyph unicode="◼" horiz-adv-x="993" d="M0 0v993h993v-993h-993z" /> +<glyph unicode="fi" horiz-adv-x="1234" d="M-246 -397l27 131h156q98 0 142 34.5t58 135.5l133 956h-178l17 127l182 8l22 164q23 156 98.5 232.5t227.5 76.5q145 0 246 -14l-13 -129h-178q-98 0 -146 -44t-63 -148l-20 -136h663l-141 -997h-174l121 860h-488l-139 -983q-39 -289 -315 -289q-106 0 -238 15z M981 1255l16 115q7 51 56 51h82q27 0 40 -16t9 -41l-15 -117q-8 -49 -57 -49h-82q-55 0 -49 57z" /> +<glyph unicode="fl" horiz-adv-x="1359" d="M-246 -397l27 131h156q98 0 142 34.5t58 135.5l133 956h-178l17 127l182 8l22 164q23 156 98.5 233.5t227.5 75.5q453 -6 571 -24l-161 -1194q-18 -131 110 -131h101l8 -113q-59 -25 -178 -24q-117 0 -176.5 63.5t-45.5 173.5l156 1108h-330q-98 0 -146 -44t-63 -150 l-20 -136h299l-19 -137h-299l-139 -983q-39 -289 -315 -289q-106 0 -238 15z" /> +<hkern u1=" " u2="þ" k="-2" /> +<hkern u1=" " u2="Æ" k="57" /> +<hkern u1=" " u2="v" k="45" /> +<hkern u1=" " u2="V" k="51" /> +<hkern u1=" " u2="J" k="37" /> +<hkern u1=""" u2="î" k="-14" /> +<hkern u1=""" u2="ì" k="-61" /> +<hkern u1="#" u2="7" k="27" /> +<hkern u1="#" u2="3" k="29" /> +<hkern u1="#" u2="2" k="29" /> +<hkern u1="&" u2="Æ" k="63" /> +<hkern u1="&" u2="X" k="63" /> +<hkern u1="&" u2="V" k="23" /> +<hkern u1="&" u2="J" k="51" /> +<hkern u1="'" u2="î" k="-14" /> +<hkern u1="'" u2="ì" k="-61" /> +<hkern u1="(" u2="þ" k="-2" /> +<hkern u1="(" u2="ð" k="78" /> +<hkern u1="(" u2="ì" k="-57" /> +<hkern u1="(" u2="Ï" k="23" /> +<hkern u1="(" u2="Î" k="-63" /> +<hkern u1="(" u2="Æ" k="47" /> +<hkern u1="(" u2="{" k="37" /> +<hkern u1="(" u2="x" k="70" /> +<hkern u1="(" u2="v" k="90" /> +<hkern u1="(" u2="q" k="113" /> +<hkern u1="(" u2="X" k="6" /> +<hkern u1="(" u2="M" k="51" /> +<hkern u1="(" u2="J" k="57" /> +<hkern u1="(" u2="F" k="63" /> +<hkern u1="(" u2="9" k="63" /> +<hkern u1="(" u2="8" k="76" /> +<hkern u1="(" u2="6" k="90" /> +<hkern u1="(" u2="5" k="33" /> +<hkern u1="(" u2="4" k="117" /> +<hkern u1="(" u2="3" k="8" /> +<hkern u1="(" u2="2" k="8" /> +<hkern u1="(" u2="1" k="43" /> +<hkern u1="(" u2="0" k="92" /> +<hkern u1="(" u2="(" k="78" /> +<hkern u1=")" u2="}" k="37" /> +<hkern u1=")" u2="]" k="53" /> +<hkern u1=")" u2=")" k="76" /> +<hkern u1="*" u2="ð" k="35" /> +<hkern u1="*" u2="î" k="-41" /> +<hkern u1="*" u2="Æ" k="135" /> +<hkern u1="*" u2="q" k="27" /> +<hkern u1="*" u2="J" k="57" /> +<hkern u1="+" u2="7" k="86" /> +<hkern u1="+" u2="1" k="55" /> +<hkern u1="/" u2="ð" k="35" /> +<hkern u1="/" u2="ì" k="-102" /> +<hkern u1="/" u2="Æ" k="176" /> +<hkern u1="/" u2="q" k="45" /> +<hkern u1="/" u2="J" k="59" /> +<hkern u1="/" u2="6" k="23" /> +<hkern u1="/" u2="4" k="90" /> +<hkern u1="/" u2="0" k="23" /> +<hkern u1="/" u2="/" k="203" /> +<hkern u1="0" u2="}" k="43" /> +<hkern u1="0" u2="]" k="59" /> +<hkern u1="0" u2="\" k="33" /> +<hkern u1="0" u2="7" k="10" /> +<hkern u1="0" u2="2" k="6" /> +<hkern u1="0" u2="/" k="53" /> +<hkern u1="0" u2=")" k="102" /> +<hkern u1="1" u2="}" k="31" /> +<hkern u1="1" u2="]" k="35" /> +<hkern u1="1" u2="/" k="25" /> +<hkern u1="1" u2=")" k="53" /> +<hkern u1="2" u2="÷" k="31" /> +<hkern u1="2" u2="·" k="25" /> +<hkern u1="2" u2="}" k="25" /> +<hkern u1="2" u2="]" k="43" /> +<hkern u1="2" u2="4" k="37" /> +<hkern u1="2" u2=")" k="49" /> +<hkern u1="3" u2="}" k="41" /> +<hkern u1="3" u2="]" k="57" /> +<hkern u1="3" u2="/" k="37" /> +<hkern u1="3" u2=")" k="90" /> +<hkern u1="4" u2="°" k="33" /> +<hkern u1="4" u2="}" k="43" /> +<hkern u1="4" u2="]" k="66" /> +<hkern u1="4" u2="\" k="82" /> +<hkern u1="4" u2="V" k="45" /> +<hkern u1="4" u2="7" k="76" /> +<hkern u1="4" u2="3" k="8" /> +<hkern u1="4" u2="2" k="6" /> +<hkern u1="4" u2="1" k="39" /> +<hkern u1="4" u2="/" k="39" /> +<hkern u1="4" u2=")" k="106" /> +<hkern u1="5" u2="}" k="8" /> +<hkern u1="5" u2="]" k="12" /> +<hkern u1="5" u2="/" k="39" /> +<hkern u1="5" u2=")" k="39" /> +<hkern u1="6" u2="}" k="27" /> +<hkern u1="6" u2="]" k="31" /> +<hkern u1="6" u2="1" k="6" /> +<hkern u1="6" u2="/" k="29" /> +<hkern u1="6" u2=")" k="59" /> +<hkern u1="7" u2="÷" k="33" /> +<hkern u1="7" u2="Æ" k="98" /> +<hkern u1="7" u2="·" k="39" /> +<hkern u1="7" u2="}" k="8" /> +<hkern u1="7" u2="]" k="10" /> +<hkern u1="7" u2="J" k="49" /> +<hkern u1="7" u2="4" k="37" /> +<hkern u1="7" u2="/" k="135" /> +<hkern u1="7" u2=")" k="29" /> +<hkern u1="7" u2="#" k="8" /> +<hkern u1="8" u2="}" k="39" /> +<hkern u1="8" u2="]" k="55" /> +<hkern u1="8" u2="/" k="33" /> +<hkern u1="8" u2=")" k="86" /> +<hkern u1="9" u2="}" k="43" /> +<hkern u1="9" u2="]" k="57" /> +<hkern u1="9" u2="\" k="16" /> +<hkern u1="9" u2="J" k="6" /> +<hkern u1="9" u2="7" k="8" /> +<hkern u1="9" u2="/" k="55" /> +<hkern u1="9" u2=")" k="96" /> +<hkern u1="=" u2="7" k="43" /> +<hkern u1="=" u2="1" k="20" /> +<hkern u1="@" u2="V" k="8" /> +<hkern u1="B" u2="™" k="8" /> +<hkern u1="B" u2="þ" k="29" /> +<hkern u1="B" u2="Æ" k="8" /> +<hkern u1="B" u2="}" k="41" /> +<hkern u1="B" u2="]" k="59" /> +<hkern u1="B" u2="\" k="16" /> +<hkern u1="B" u2="X" k="4" /> +<hkern u1="B" u2="V" k="14" /> +<hkern u1="B" u2="J" k="6" /> +<hkern u1="B" u2="?" k="10" /> +<hkern u1="B" u2="7" k="8" /> +<hkern u1="B" u2="/" k="25" /> +<hkern u1="B" u2=")" k="92" /> +<hkern u1="C" u2="þ" k="20" /> +<hkern u1="C" u2="î" k="-16" /> +<hkern u1="C" u2="ì" k="-63" /> +<hkern u1="D" u2="þ" k="4" /> +<hkern u1="E" u2="þ" k="29" /> +<hkern u1="E" u2="î" k="-14" /> +<hkern u1="E" u2="ì" k="-61" /> +<hkern u1="F" u2="þ" k="37" /> +<hkern u1="F" u2="ð" k="35" /> +<hkern u1="F" u2="î" k="-37" /> +<hkern u1="F" u2="ì" k="-84" /> +<hkern u1="F" u2="Æ" k="203" /> +<hkern u1="F" u2="}" k="6" /> +<hkern u1="F" u2="x" k="10" /> +<hkern u1="F" u2="q" k="29" /> +<hkern u1="F" u2="]" k="12" /> +<hkern u1="F" u2="J" k="86" /> +<hkern u1="F" u2="/" k="150" /> +<hkern u1="F" u2=")" k="33" /> +<hkern u1="F" u2=" " k="35" /> +<hkern u1="G" u2="ì" k="-12" /> +<hkern u1="H" u2="þ" k="23" /> +<hkern u1="H" u2="ì" k="-18" /> +<hkern u1="I" u2="þ" k="23" /> +<hkern u1="I" u2="ì" k="-18" /> +<hkern u1="J" u2="þ" k="25" /> +<hkern u1="J" u2="ì" k="-20" /> +<hkern u1="K" u2="þ" k="27" /> +<hkern u1="K" u2="ì" k="-84" /> +<hkern u1="M" u2="}" k="29" /> +<hkern u1="M" u2="]" k="39" /> +<hkern u1="M" u2=")" k="57" /> +<hkern u1="N" u2="þ" k="23" /> +<hkern u1="N" u2="ì" k="-18" /> +<hkern u1="O" u2="þ" k="4" /> +<hkern u1="P" u2="þ" k="31" /> +<hkern u1="P" u2="ð" k="12" /> +<hkern u1="P" u2="î" k="-10" /> +<hkern u1="P" u2="Æ" k="154" /> +<hkern u1="P" u2="}" k="39" /> +<hkern u1="P" u2="]" k="53" /> +<hkern u1="P" u2="X" k="45" /> +<hkern u1="P" u2="J" k="88" /> +<hkern u1="P" u2="/" k="141" /> +<hkern u1="P" u2=")" k="90" /> +<hkern u1="P" u2=" " k="37" /> +<hkern u1="Q" u2="þ" k="4" /> +<hkern u1="R" u2="þ" k="39" /> +<hkern u1="S" u2="ì" k="-27" /> +<hkern u1="T" u2="ò" k="121" /> +<hkern u1="T" u2="î" k="-66" /> +<hkern u1="T" u2="í" k="12" /> +<hkern u1="T" u2="ì" k="-117" /> +<hkern u1="T" u2="è" k="119" /> +<hkern u1="T" u2="à" k="127" /> +<hkern u1="T" u2="ß" k="20" /> +<hkern u1="U" u2="þ" k="35" /> +<hkern u1="U" u2="ì" k="-25" /> +<hkern u1="V" u2="þ" k="25" /> +<hkern u1="V" u2="ð" k="45" /> +<hkern u1="V" u2="ï" k="-12" /> +<hkern u1="V" u2="î" k="-35" /> +<hkern u1="V" u2="ì" k="-121" /> +<hkern u1="V" u2="Æ" k="154" /> +<hkern u1="V" u2="}" k="6" /> +<hkern u1="V" u2="x" k="10" /> +<hkern u1="V" u2="q" k="72" /> +<hkern u1="V" u2="]" k="8" /> +<hkern u1="V" u2="J" k="70" /> +<hkern u1="V" u2="4" k="39" /> +<hkern u1="V" u2="/" k="139" /> +<hkern u1="V" u2=")" k="8" /> +<hkern u1="V" u2=" " k="51" /> +<hkern u1="W" u2="þ" k="25" /> +<hkern u1="W" u2="î" k="-27" /> +<hkern u1="W" u2="ì" k="-94" /> +<hkern u1="X" u2="þ" k="25" /> +<hkern u1="X" u2="ð" k="31" /> +<hkern u1="X" u2="ì" k="-80" /> +<hkern u1="X" u2="º" k="27" /> +<hkern u1="X" u2="ª" k="25" /> +<hkern u1="X" u2="©" k="39" /> +<hkern u1="X" u2="v" k="23" /> +<hkern u1="X" u2="q" k="27" /> +<hkern u1="X" u2="]" k="8" /> +<hkern u1="X" u2="4" k="45" /> +<hkern u1="X" u2=")" k="6" /> +<hkern u1="X" u2=" " k="6" /> +<hkern u1="Y" u2="þ" k="29" /> +<hkern u1="Y" u2="ï" k="-16" /> +<hkern u1="Y" u2="î" k="-14" /> +<hkern u1="Y" u2="ì" k="-123" /> +<hkern u1="Z" u2="þ" k="25" /> +<hkern u1="Z" u2="î" k="-18" /> +<hkern u1="Z" u2="ì" k="-61" /> +<hkern u1="[" u2="þ" k="-2" /> +<hkern u1="[" u2="ð" k="53" /> +<hkern u1="[" u2="ì" k="-72" /> +<hkern u1="[" u2="Î" k="-59" /> +<hkern u1="[" u2="Æ" k="43" /> +<hkern u1="[" u2="{" k="25" /> +<hkern u1="[" u2="x" k="53" /> +<hkern u1="[" u2="v" k="59" /> +<hkern u1="[" u2="q" k="76" /> +<hkern u1="[" u2="X" k="6" /> +<hkern u1="[" u2="M" k="31" /> +<hkern u1="[" u2="J" k="47" /> +<hkern u1="[" u2="F" k="41" /> +<hkern u1="[" u2="9" k="41" /> +<hkern u1="[" u2="8" k="47" /> +<hkern u1="[" u2="6" k="55" /> +<hkern u1="[" u2="5" k="10" /> +<hkern u1="[" u2="4" k="66" /> +<hkern u1="[" u2="3" k="10" /> +<hkern u1="[" u2="2" k="10" /> +<hkern u1="[" u2="1" k="12" /> +<hkern u1="[" u2="0" k="55" /> +<hkern u1="[" u2="(" k="51" /> +<hkern u1="\" u2="ð" k="39" /> +<hkern u1="\" u2="v" k="98" /> +<hkern u1="\" u2="q" k="37" /> +<hkern u1="\" u2="V" k="135" /> +<hkern u1="\" u2="8" k="37" /> +<hkern u1="\" u2="7" k="88" /> +<hkern u1="\" u2="6" k="53" /> +<hkern u1="\" u2="4" k="72" /> +<hkern u1="\" u2="1" k="111" /> +<hkern u1="\" u2="0" k="61" /> +<hkern u1="b" u2="™" k="74" /> +<hkern u1="b" u2="}" k="51" /> +<hkern u1="b" u2="x" k="16" /> +<hkern u1="b" u2="v" k="6" /> +<hkern u1="b" u2="]" k="76" /> +<hkern u1="b" u2="\" k="100" /> +<hkern u1="b" u2="X" k="8" /> +<hkern u1="b" u2="V" k="76" /> +<hkern u1="b" u2="J" k="6" /> +<hkern u1="b" u2="?" k="90" /> +<hkern u1="b" u2="/" k="16" /> +<hkern u1="b" u2="*" k="37" /> +<hkern u1="b" u2=")" k="106" /> +<hkern u1="d" u2="ì" k="-14" /> +<hkern u1="f" u2="ð" k="39" /> +<hkern u1="f" u2="ï" k="-51" /> +<hkern u1="f" u2="î" k="-47" /> +<hkern u1="f" u2="ì" k="-160" /> +<hkern u1="f" u2="Æ" k="98" /> +<hkern u1="f" u2="}" k="-14" /> +<hkern u1="f" u2="q" k="4" /> +<hkern u1="f" u2="]" k="-25" /> +<hkern u1="f" u2="\" k="-49" /> +<hkern u1="f" u2="X" k="10" /> +<hkern u1="f" u2="V" k="-41" /> +<hkern u1="f" u2="J" k="33" /> +<hkern u1="f" u2="?" k="-35" /> +<hkern u1="f" u2="/" k="82" /> +<hkern u1="f" u2=" " k="39" /> +<hkern u1="i" u2="ì" k="-29" /> +<hkern u1="j" u2="ì" k="-29" /> +<hkern u1="v" u2="™" k="47" /> +<hkern u1="v" u2="ð" k="2" /> +<hkern u1="v" u2="Æ" k="59" /> +<hkern u1="v" u2="}" k="49" /> +<hkern u1="v" u2="]" k="70" /> +<hkern u1="v" u2="\" k="43" /> +<hkern u1="v" u2="X" k="37" /> +<hkern u1="v" u2="V" k="16" /> +<hkern u1="v" u2="J" k="66" /> +<hkern u1="v" u2="?" k="45" /> +<hkern u1="v" u2="/" k="68" /> +<hkern u1="v" u2=")" k="117" /> +<hkern u1="v" u2=" " k="10" /> +<hkern u1="x" u2="™" k="47" /> +<hkern u1="x" u2="ð" k="31" /> +<hkern u1="x" u2="}" k="33" /> +<hkern u1="x" u2="q" k="18" /> +<hkern u1="x" u2="]" k="53" /> +<hkern u1="x" u2="\" k="35" /> +<hkern u1="x" u2="V" k="8" /> +<hkern u1="x" u2="?" k="37" /> +<hkern u1="x" u2=")" k="61" /> +<hkern u1="{" u2="þ" k="-2" /> +<hkern u1="{" u2="ð" k="43" /> +<hkern u1="{" u2="ì" k="-68" /> +<hkern u1="{" u2="Î" k="-47" /> +<hkern u1="{" u2="{" k="23" /> +<hkern u1="{" u2="x" k="33" /> +<hkern u1="{" u2="v" k="43" /> +<hkern u1="{" u2="q" k="57" /> +<hkern u1="{" u2="M" k="8" /> +<hkern u1="{" u2="J" k="31" /> +<hkern u1="{" u2="F" k="29" /> +<hkern u1="{" u2="9" k="29" /> +<hkern u1="{" u2="8" k="37" /> +<hkern u1="{" u2="6" k="41" /> +<hkern u1="{" u2="5" k="8" /> +<hkern u1="{" u2="4" k="49" /> +<hkern u1="{" u2="1" k="8" /> +<hkern u1="{" u2="0" k="43" /> +<hkern u1="{" u2="(" k="37" /> +<hkern u1="|" u2="ì" k="-27" /> +<hkern u1="}" u2="}" k="25" /> +<hkern u1="}" u2="]" k="27" /> +<hkern u1="}" u2=")" k="35" /> +<hkern u1="¡" u2="V" k="31" /> +<hkern u1="£" u2="4" k="47" /> +<hkern u1="°" u2="4" k="39" /> +<hkern u1="·" u2="7" k="98" /> +<hkern u1="·" u2="1" k="76" /> +<hkern u1="¿" u2="þ" k="-2" /> +<hkern u1="¿" u2="ð" k="117" /> +<hkern u1="¿" u2="Æ" k="86" /> +<hkern u1="¿" u2="x" k="106" /> +<hkern u1="¿" u2="v" k="98" /> +<hkern u1="¿" u2="q" k="117" /> +<hkern u1="¿" u2="j" k="37" /> +<hkern u1="¿" u2="X" k="102" /> +<hkern u1="¿" u2="V" k="133" /> +<hkern u1="¿" u2="M" k="111" /> +<hkern u1="¿" u2="J" k="109" /> +<hkern u1="¿" u2="F" k="111" /> +<hkern u1="Æ" u2="þ" k="29" /> +<hkern u1="Ç" u2="þ" k="20" /> +<hkern u1="È" u2="þ" k="29" /> +<hkern u1="É" u2="þ" k="29" /> +<hkern u1="Ê" u2="þ" k="29" /> +<hkern u1="Ë" u2="þ" k="29" /> +<hkern u1="Ì" u2="þ" k="23" /> +<hkern u1="Í" u2="þ" k="23" /> +<hkern u1="Î" u2="þ" k="23" /> +<hkern u1="Î" u2="}" k="-74" /> +<hkern u1="Î" u2="]" k="-78" /> +<hkern u1="Î" u2=")" k="-78" /> +<hkern u1="Ï" u2="þ" k="23" /> +<hkern u1="Ï" u2=")" k="20" /> +<hkern u1="Ð" u2="þ" k="4" /> +<hkern u1="Ñ" u2="þ" k="23" /> +<hkern u1="Ò" u2="þ" k="4" /> +<hkern u1="Ó" u2="þ" k="4" /> +<hkern u1="Ô" u2="þ" k="4" /> +<hkern u1="Õ" u2="þ" k="4" /> +<hkern u1="Ö" u2="þ" k="4" /> +<hkern u1="×" u2="7" k="59" /> +<hkern u1="×" u2="1" k="27" /> +<hkern u1="Ø" u2="þ" k="4" /> +<hkern u1="Ù" u2="þ" k="35" /> +<hkern u1="Ú" u2="þ" k="35" /> +<hkern u1="Û" u2="þ" k="35" /> +<hkern u1="Ü" u2="þ" k="35" /> +<hkern u1="Ý" u2="þ" k="29" /> +<hkern u1="Þ" u2="™" k="51" /> +<hkern u1="Þ" u2="Æ" k="37" /> +<hkern u1="Þ" u2="}" k="45" /> +<hkern u1="Þ" u2="]" k="61" /> +<hkern u1="Þ" u2="\" k="55" /> +<hkern u1="Þ" u2="X" k="59" /> +<hkern u1="Þ" u2="V" k="23" /> +<hkern u1="Þ" u2="J" k="55" /> +<hkern u1="Þ" u2="?" k="70" /> +<hkern u1="Þ" u2="7" k="66" /> +<hkern u1="Þ" u2="3" k="8" /> +<hkern u1="Þ" u2="2" k="27" /> +<hkern u1="Þ" u2="1" k="10" /> +<hkern u1="Þ" u2="/" k="76" /> +<hkern u1="Þ" u2=")" k="111" /> +<hkern u1="ß" u2="™" k="27" /> +<hkern u1="ß" u2="º" k="29" /> +<hkern u1="ß" u2="®" k="23" /> +<hkern u1="ß" u2="ª" k="27" /> +<hkern u1="ß" u2="}" k="35" /> +<hkern u1="ß" u2="v" k="55" /> +<hkern u1="ß" u2="]" k="55" /> +<hkern u1="ß" u2="\" k="33" /> +<hkern u1="ß" u2="V" k="37" /> +<hkern u1="ß" u2="?" k="27" /> +<hkern u1="ß" u2="*" k="18" /> +<hkern u1="ß" u2=")" k="78" /> +<hkern u1="ß" u2=" " k="35" /> +<hkern u1="í" u2="™" k="-41" /> +<hkern u1="í" u2="”" k="-33" /> +<hkern u1="í" u2="’" k="-33" /> +<hkern u1="í" u2="]" k="-14" /> +<hkern u1="í" u2="\" k="-61" /> +<hkern u1="í" u2="?" k="-63" /> +<hkern u1="í" u2="'" k="-16" /> +<hkern u1="í" u2=""" k="-16" /> +<hkern u1="î" u2="“" k="-45" /> +<hkern u1="î" u2="’" k="-8" /> +<hkern u1="î" u2="‘" k="-45" /> +<hkern u1="î" u2="®" k="-31" /> +<hkern u1="î" u2="\" k="-16" /> +<hkern u1="î" u2="?" k="-31" /> +<hkern u1="î" u2="*" k="-70" /> +<hkern u1="î" u2="'" k="-31" /> +<hkern u1="î" u2=""" k="-31" /> +<hkern u1="ï" u2="\" k="-16" /> +<hkern u1="ï" u2="?" k="-12" /> +<hkern u1="ð" u2="™" k="25" /> +<hkern u1="ð" u2="}" k="43" /> +<hkern u1="ð" u2="x" k="18" /> +<hkern u1="ð" u2="]" k="53" /> +<hkern u1="ð" u2="\" k="18" /> +<hkern u1="ð" u2="X" k="27" /> +<hkern u1="ð" u2="V" k="33" /> +<hkern u1="ð" u2="J" k="25" /> +<hkern u1="ð" u2="?" k="31" /> +<hkern u1="ð" u2="/" k="29" /> +<hkern u1="ð" u2="*" k="18" /> +<hkern u1="ð" u2=")" k="82" /> +<hkern u1="÷" u2="7" k="88" /> +<hkern u1="÷" u2="5" k="6" /> +<hkern u1="÷" u2="3" k="23" /> +<hkern u1="÷" u2="2" k="23" /> +<hkern u1="÷" u2="1" k="63" /> +<hkern u1="Œ" u2="þ" k="29" /> +<hkern u1="Ÿ" u2="þ" k="29" /> +<hkern u1="‘" u2="î" k="-12" /> +<hkern u1="‘" u2="ì" k="-37" /> +<hkern u1="’" u2="î" k="-29" /> +<hkern u1="’" u2="ì" k="-74" /> +<hkern u1="“" u2="î" k="-12" /> +<hkern u1="“" u2="ì" k="-37" /> +<hkern u1="”" u2="î" k="-29" /> +<hkern u1="”" u2="ì" k="-74" /> +<hkern u1="fi" u2="ì" k="-29" /> +<hkern g1="germandbls" g2="quoteright,quotedblright" k="23" /> +<hkern g1="germandbls" g2="s" k="2" /> +<hkern g1="germandbls" g2="y,yacute,ydieresis" k="57" /> +<hkern g1="germandbls" g2="W" k="27" /> +<hkern g1="germandbls" g2="t" k="33" /> +<hkern g1="germandbls" g2="quotedbl,quotesingle" k="20" /> +<hkern g1="germandbls" g2="Y,Yacute,Ydieresis" k="53" /> +<hkern g1="germandbls" g2="T" k="43" /> +<hkern g1="germandbls" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="10" /> +<hkern g1="germandbls" g2="w" k="53" /> +<hkern g1="germandbls" g2="f,germandbls,thorn,uniFB01,uniFB02" k="29" /> +<hkern g1="germandbls" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="18" /> +<hkern g1="germandbls" g2="quoteleft,quotedblleft" k="18" /> +<hkern g1="r" g2="bracketright" k="57" /> +<hkern g1="r" g2="parenright" k="104" /> +<hkern g1="r" g2="braceright" k="39" /> +<hkern g1="r" g2="Y,Yacute,Ydieresis" k="20" /> +<hkern g1="r" g2="T" k="145" /> +<hkern g1="r" g2="Z" k="27" /> +<hkern g1="r" g2="space,uni00A0" k="43" /> +<hkern g1="r" g2="hyphen,uni00AD,endash,emdash" k="86" /> +<hkern g1="r" g2="q" k="14" /> +<hkern g1="r" g2="trademark" k="31" /> +<hkern g1="r" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="82" /> +<hkern g1="r" g2="eth" k="53" /> +<hkern g1="r" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="r" g2="question" k="6" /> +<hkern g1="r" g2="X" k="57" /> +<hkern g1="r" g2="slash" k="123" /> +<hkern g1="r" g2="AE" k="139" /> +<hkern g1="r" g2="d" k="16" /> +<hkern g1="r" g2="J" k="80" /> +<hkern g1="r" g2="guilsinglleft" k="63" /> +<hkern g1="r" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="113" /> +<hkern g1="r" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="20" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="bracketright" k="14" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="parenright" k="49" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="braceright" k="10" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="slash" k="53" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="AE" k="25" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="J" k="31" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="4" /> +<hkern g1="Thorn" g2="Y,Yacute,Ydieresis" k="70" /> +<hkern g1="Thorn" g2="T" k="113" /> +<hkern g1="Thorn" g2="Z" k="29" /> +<hkern g1="Thorn" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="16" /> +<hkern g1="Thorn" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="4" /> +<hkern g1="b" g2="quoteright,quotedblright" k="59" /> +<hkern g1="b" g2="y,yacute,ydieresis" k="6" /> +<hkern g1="b" g2="W" k="37" /> +<hkern g1="b" g2="quotedbl,quotesingle" k="43" /> +<hkern g1="b" g2="Y,Yacute,Ydieresis" k="129" /> +<hkern g1="b" g2="T" k="221" /> +<hkern g1="b" g2="f,germandbls,thorn,uniFB01,uniFB02" k="2" /> +<hkern g1="b" g2="quoteleft,quotedblleft" k="57" /> +<hkern g1="b" g2="Z" k="8" /> +<hkern g1="b" g2="S" k="4" /> +<hkern g1="exclam,numbersign,dollar,percent,parenright,plus,zero,one,two,three,five,six,eight,nine,less,equal,greater,question,M,bracketright,asciicircum,underscore,braceright,asciitilde,cent,sterling,currency,yen,ordfeminine,logicalnot,plusminus,uni00B2,uni00B3,uni00B9,ordmasculine,onequarter,onehalf,threequarters,multiply,divide,bullet,ellipsis" g2="Y,Yacute,Ydieresis" k="12" /> +<hkern g1="exclam,numbersign,dollar,percent,parenright,plus,zero,one,two,three,five,six,eight,nine,less,equal,greater,question,M,bracketright,asciicircum,underscore,braceright,asciitilde,cent,sterling,currency,yen,ordfeminine,logicalnot,plusminus,uni00B2,uni00B3,uni00B9,ordmasculine,onequarter,onehalf,threequarters,multiply,divide,bullet,ellipsis" g2="hyphen,uni00AD,endash,emdash" k="10" /> +<hkern g1="exclam,numbersign,dollar,percent,parenright,plus,zero,one,two,three,five,six,eight,nine,less,equal,greater,question,M,bracketright,asciicircum,underscore,braceright,asciitilde,cent,sterling,currency,yen,ordfeminine,logicalnot,plusminus,uni00B2,uni00B3,uni00B9,ordmasculine,onequarter,onehalf,threequarters,multiply,divide,bullet,ellipsis" g2="b,h,k" k="-106" /> +<hkern g1="w" g2="bracketright" k="74" /> +<hkern g1="w" g2="parenright" k="117" /> +<hkern g1="w" g2="braceright" k="51" /> +<hkern g1="w" g2="Y,Yacute,Ydieresis" k="74" /> +<hkern g1="w" g2="T" k="174" /> +<hkern g1="w" g2="Z" k="18" /> +<hkern g1="w" g2="trademark" k="49" /> +<hkern g1="w" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="20" /> +<hkern g1="w" g2="question" k="45" /> +<hkern g1="w" g2="X" k="35" /> +<hkern g1="w" g2="slash" k="63" /> +<hkern g1="w" g2="AE" k="53" /> +<hkern g1="w" g2="J" k="63" /> +<hkern g1="w" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="31" /> +<hkern g1="w" g2="V" k="18" /> +<hkern g1="w" g2="backslash" k="43" /> +<hkern g1="Z" g2="bracketright" k="10" /> +<hkern g1="Z" g2="parenright" k="6" /> +<hkern g1="Z" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="12" /> +<hkern g1="Z" g2="hyphen,uni00AD,endash,emdash" k="29" /> +<hkern g1="Z" g2="q" k="12" /> +<hkern g1="Z" g2="eth" k="10" /> +<hkern g1="Z" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="12" /> +<hkern g1="Z" g2="d" k="10" /> +<hkern g1="Z" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="12" /> +<hkern g1="Z" g2="four" k="49" /> +<hkern g1="Z" g2="ordfeminine" k="8" /> +<hkern g1="Z" g2="copyright" k="29" /> +<hkern g1="Z" g2="ordmasculine" k="8" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="bracketright" k="76" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="parenright" k="113" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="braceright" k="53" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quoteright,quotedblright" k="61" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="y,yacute,ydieresis" k="10" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="W" k="41" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="t" k="10" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quotedbl,quotesingle" k="47" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="Y,Yacute,Ydieresis" k="137" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="T" k="219" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="w" k="8" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="f,germandbls,thorn,uniFB01,uniFB02" k="10" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quoteleft,quotedblleft" k="59" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="trademark" k="72" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="question" k="88" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="X" k="10" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="slash" k="14" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="J" k="6" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="S" k="12" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="V" k="82" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="backslash" k="109" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="x" k="23" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="asterisk" k="39" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="v" k="12" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="z" k="2" /> +<hkern g1="R" g2="bracketright" k="55" /> +<hkern g1="R" g2="parenright" k="59" /> +<hkern g1="R" g2="braceright" k="35" /> +<hkern g1="R" g2="Y,Yacute,Ydieresis" k="33" /> +<hkern g1="R" g2="T" k="33" /> +<hkern g1="R" g2="q" k="10" /> +<hkern g1="R" g2="trademark" k="25" /> +<hkern g1="R" g2="eth" k="16" /> +<hkern g1="R" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="10" /> +<hkern g1="R" g2="question" k="35" /> +<hkern g1="R" g2="d" k="8" /> +<hkern g1="R" g2="guilsinglleft" k="23" /> +<hkern g1="R" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="10" /> +<hkern g1="R" g2="V" k="12" /> +<hkern g1="R" g2="backslash" k="23" /> +<hkern g1="R" g2="four" k="25" /> +<hkern g1="R" g2="seven" k="25" /> +<hkern g1="g" g2="bracketright" k="6" /> +<hkern g1="g" g2="parenright" k="6" /> +<hkern g1="g" g2="quoteright,quotedblright" k="14" /> +<hkern g1="g" g2="W" k="29" /> +<hkern g1="g" g2="Y,Yacute,Ydieresis" k="123" /> +<hkern g1="g" g2="T" k="213" /> +<hkern g1="g" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="8" /> +<hkern g1="g" g2="trademark" k="61" /> +<hkern g1="g" g2="question" k="61" /> +<hkern g1="g" g2="V" k="63" /> +<hkern g1="g" g2="backslash" k="72" /> +<hkern g1="g" g2="asterisk" k="20" /> +<hkern g1="t" g2="bracketright" k="45" /> +<hkern g1="t" g2="parenright" k="59" /> +<hkern g1="t" g2="braceright" k="18" /> +<hkern g1="t" g2="Y,Yacute,Ydieresis" k="35" /> +<hkern g1="t" g2="T" k="170" /> +<hkern g1="t" g2="hyphen,uni00AD,endash,emdash" k="4" /> +<hkern g1="t" g2="trademark" k="31" /> +<hkern g1="t" g2="eth" k="2" /> +<hkern g1="t" g2="question" k="23" /> +<hkern g1="t" g2="guilsinglleft" k="29" /> +<hkern g1="t" g2="backslash" k="25" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="bracketright" k="10" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="parenright" k="27" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="14" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="hyphen,uni00AD,endash,emdash" k="6" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="q" k="8" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="eth" k="10" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="8" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="10" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="four" k="8" /> +<hkern g1="W" g2="bracketright" k="8" /> +<hkern g1="W" g2="parenright" k="8" /> +<hkern g1="W" g2="braceright" k="6" /> +<hkern g1="W" g2="s" k="12" /> +<hkern g1="W" g2="space,uni00A0" k="33" /> +<hkern g1="W" g2="hyphen,uni00AD,endash,emdash" k="10" /> +<hkern g1="W" g2="q" k="31" /> +<hkern g1="W" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="45" /> +<hkern g1="W" g2="eth" k="31" /> +<hkern g1="W" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="33" /> +<hkern g1="W" g2="slash" k="92" /> +<hkern g1="W" g2="AE" k="84" /> +<hkern g1="W" g2="d" k="29" /> +<hkern g1="W" g2="J" k="53" /> +<hkern g1="W" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="53" /> +<hkern g1="W" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="35" /> +<hkern g1="W" g2="four" k="6" /> +<hkern g1="W" g2="m,n,p,r,ntilde" k="23" /> +<hkern g1="W" g2="u,ugrave,uacute,ucircumflex,udieresis" k="23" /> +<hkern g1="B" g2="Y,Yacute,Ydieresis" k="31" /> +<hkern g1="B" g2="T" k="25" /> +<hkern g1="l,uniFB02" g2="bracketright" k="45" /> +<hkern g1="l,uniFB02" g2="parenright" k="47" /> +<hkern g1="l,uniFB02" g2="braceright" k="25" /> +<hkern g1="l,uniFB02" g2="quoteright,quotedblright" k="37" /> +<hkern g1="l,uniFB02" g2="y,yacute,ydieresis" k="43" /> +<hkern g1="l,uniFB02" g2="W" k="41" /> +<hkern g1="l,uniFB02" g2="t" k="16" /> +<hkern g1="l,uniFB02" g2="quotedbl,quotesingle" k="37" /> +<hkern g1="l,uniFB02" g2="Y,Yacute,Ydieresis" k="66" /> +<hkern g1="l,uniFB02" g2="T" k="66" /> +<hkern g1="l,uniFB02" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="23" /> +<hkern g1="l,uniFB02" g2="w" k="37" /> +<hkern g1="l,uniFB02" g2="f,germandbls,thorn,uniFB01,uniFB02" k="8" /> +<hkern g1="l,uniFB02" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="31" /> +<hkern g1="l,uniFB02" g2="quoteleft,quotedblleft" k="37" /> +<hkern g1="l,uniFB02" g2="space,uni00A0" k="53" /> +<hkern g1="l,uniFB02" g2="hyphen,uni00AD,endash,emdash" k="39" /> +<hkern g1="l,uniFB02" g2="trademark" k="37" /> +<hkern g1="l,uniFB02" g2="question" k="45" /> +<hkern g1="l,uniFB02" g2="guilsinglleft" k="53" /> +<hkern g1="l,uniFB02" g2="V" k="51" /> +<hkern g1="l,uniFB02" g2="backslash" k="45" /> +<hkern g1="l,uniFB02" g2="ordfeminine" k="37" /> +<hkern g1="l,uniFB02" g2="copyright" k="39" /> +<hkern g1="l,uniFB02" g2="ordmasculine" k="37" /> +<hkern g1="l,uniFB02" g2="asterisk" k="39" /> +<hkern g1="l,uniFB02" g2="v" k="41" /> +<hkern g1="l,uniFB02" g2="registered" k="37" /> +<hkern g1="l,uniFB02" g2="periodcentered" k="207" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="bracketright" k="61" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="parenright" k="102" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="braceright" k="43" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Y,Yacute,Ydieresis" k="45" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="T" k="37" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Z" k="12" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="trademark" k="31" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="14" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="question" k="33" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="X" k="39" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="slash" k="53" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="AE" k="20" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="J" k="29" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="V" k="18" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="backslash" k="35" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="seven" k="25" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="two" k="6" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="three" k="6" /> +<hkern g1="d" g2="bracketright" k="10" /> +<hkern g1="d" g2="parenright" k="41" /> +<hkern g1="d" g2="braceright" k="8" /> +<hkern g1="d" g2="T" k="8" /> +<hkern g1="y,yacute,ydieresis" g2="bracketright" k="66" /> +<hkern g1="y,yacute,ydieresis" g2="parenright" k="106" /> +<hkern g1="y,yacute,ydieresis" g2="braceright" k="47" /> +<hkern g1="y,yacute,ydieresis" g2="Y,Yacute,Ydieresis" k="74" /> +<hkern g1="y,yacute,ydieresis" g2="T" k="168" /> +<hkern g1="y,yacute,ydieresis" g2="Z" k="18" /> +<hkern g1="y,yacute,ydieresis" g2="space,uni00A0" k="6" /> +<hkern g1="y,yacute,ydieresis" g2="trademark" k="47" /> +<hkern g1="y,yacute,ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="18" /> +<hkern g1="y,yacute,ydieresis" g2="question" k="47" /> +<hkern g1="y,yacute,ydieresis" g2="X" k="33" /> +<hkern g1="y,yacute,ydieresis" g2="slash" k="68" /> +<hkern g1="y,yacute,ydieresis" g2="AE" k="45" /> +<hkern g1="y,yacute,ydieresis" g2="J" k="59" /> +<hkern g1="y,yacute,ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="31" /> +<hkern g1="y,yacute,ydieresis" g2="V" k="18" /> +<hkern g1="y,yacute,ydieresis" g2="backslash" k="43" /> +<hkern g1="G" g2="bracketright" k="33" /> +<hkern g1="G" g2="parenright" k="53" /> +<hkern g1="G" g2="braceright" k="8" /> +<hkern g1="G" g2="Y,Yacute,Ydieresis" k="10" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="bracketright" k="68" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="parenright" k="94" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="braceright" k="47" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="W" k="29" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="Y,Yacute,Ydieresis" k="119" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="T" k="207" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="trademark" k="59" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="question" k="59" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="V" k="59" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="backslash" k="68" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="asterisk" k="20" /> +<hkern g1="T" g2="s" k="195" /> +<hkern g1="T" g2="y,yacute,ydieresis" k="109" /> +<hkern g1="T" g2="t" k="66" /> +<hkern g1="T" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="20" /> +<hkern g1="T" g2="w" k="109" /> +<hkern g1="T" g2="f,germandbls,thorn,uniFB01,uniFB02" k="47" /> +<hkern g1="T" g2="space,uni00A0" k="47" /> +<hkern g1="T" g2="hyphen,uni00AD,endash,emdash" k="113" /> +<hkern g1="T" g2="q" k="209" /> +<hkern g1="T" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="125" /> +<hkern g1="T" g2="eth" k="76" /> +<hkern g1="T" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="213" /> +<hkern g1="T" g2="slash" k="150" /> +<hkern g1="T" g2="AE" k="168" /> +<hkern g1="T" g2="d" k="209" /> +<hkern g1="T" g2="J" k="70" /> +<hkern g1="T" g2="guilsinglleft" k="135" /> +<hkern g1="T" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="117" /> +<hkern g1="T" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="213" /> +<hkern g1="T" g2="four" k="76" /> +<hkern g1="T" g2="ordfeminine" k="16" /> +<hkern g1="T" g2="copyright" k="29" /> +<hkern g1="T" g2="ordmasculine" k="14" /> +<hkern g1="T" g2="x" k="137" /> +<hkern g1="T" g2="v" k="111" /> +<hkern g1="T" g2="z" k="168" /> +<hkern g1="T" g2="m,n,p,r,ntilde" k="152" /> +<hkern g1="T" g2="u,ugrave,uacute,ucircumflex,udieresis" k="150" /> +<hkern g1="T" g2="at" k="8" /> +<hkern g1="T" g2="colon,semicolon" k="102" /> +<hkern g1="T" g2="guilsinglright" k="113" /> +<hkern g1="i,j,igrave,iacute,icircumflex,idieresis,uniFB01" g2="bracketright" k="16" /> +<hkern g1="i,j,igrave,iacute,icircumflex,idieresis,uniFB01" g2="parenright" k="47" /> +<hkern g1="i,j,igrave,iacute,icircumflex,idieresis,uniFB01" g2="braceright" k="8" /> +<hkern g1="eth" g2="quoteright,quotedblright" k="14" /> +<hkern g1="eth" g2="W" k="20" /> +<hkern g1="eth" g2="Y,Yacute,Ydieresis" k="51" /> +<hkern g1="eth" g2="T" k="70" /> +<hkern g1="eth" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="2" /> +<hkern g1="eth" g2="quoteleft,quotedblleft" k="12" /> +<hkern g1="eth" g2="Z" k="16" /> +<hkern g1="eth" g2="S" k="12" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="bracketright" k="70" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="parenright" k="94" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="braceright" k="47" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="quoteright,quotedblright" k="18" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="W" k="29" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="Y,Yacute,Ydieresis" k="121" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="T" k="217" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="8" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="quoteleft,quotedblleft" k="4" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="trademark" k="61" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="question" k="61" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="V" k="61" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="backslash" k="74" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="asterisk" k="20" /> +<hkern g1="L" g2="bracketright" k="45" /> +<hkern g1="L" g2="parenright" k="47" /> +<hkern g1="L" g2="braceright" k="14" /> +<hkern g1="L" g2="quoteright,quotedblright" k="176" /> +<hkern g1="L" g2="y,yacute,ydieresis" k="127" /> +<hkern g1="L" g2="W" k="102" /> +<hkern g1="L" g2="t" k="55" /> +<hkern g1="L" g2="quotedbl,quotesingle" k="176" /> +<hkern g1="L" g2="Y,Yacute,Ydieresis" k="193" /> +<hkern g1="L" g2="T" k="211" /> +<hkern g1="L" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="49" /> +<hkern g1="L" g2="w" k="113" /> +<hkern g1="L" g2="f,germandbls,thorn,uniFB01,uniFB02" k="31" /> +<hkern g1="L" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="53" /> +<hkern g1="L" g2="quoteleft,quotedblleft" k="176" /> +<hkern g1="L" g2="space,uni00A0" k="51" /> +<hkern g1="L" g2="hyphen,uni00AD,endash,emdash" k="115" /> +<hkern g1="L" g2="q" k="4" /> +<hkern g1="L" g2="trademark" k="176" /> +<hkern g1="L" g2="eth" k="6" /> +<hkern g1="L" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="14" /> +<hkern g1="L" g2="question" k="82" /> +<hkern g1="L" g2="d" k="4" /> +<hkern g1="L" g2="guilsinglleft" k="53" /> +<hkern g1="L" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="4" /> +<hkern g1="L" g2="V" k="170" /> +<hkern g1="L" g2="backslash" k="176" /> +<hkern g1="L" g2="four" k="109" /> +<hkern g1="L" g2="ordfeminine" k="176" /> +<hkern g1="L" g2="copyright" k="59" /> +<hkern g1="L" g2="ordmasculine" k="176" /> +<hkern g1="L" g2="asterisk" k="176" /> +<hkern g1="L" g2="v" k="117" /> +<hkern g1="L" g2="seven" k="66" /> +<hkern g1="L" g2="u,ugrave,uacute,ucircumflex,udieresis" k="2" /> +<hkern g1="L" g2="registered" k="176" /> +<hkern g1="L" g2="periodcentered" k="295" /> +<hkern g1="L" g2="L" k="12" /> +<hkern g1="L" g2="one" k="80" /> +<hkern g1="L" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="4" /> +<hkern g1="D,Eth" g2="bracketright" k="59" /> +<hkern g1="D,Eth" g2="parenright" k="102" /> +<hkern g1="D,Eth" g2="braceright" k="43" /> +<hkern g1="D,Eth" g2="Y,Yacute,Ydieresis" k="45" /> +<hkern g1="D,Eth" g2="T" k="39" /> +<hkern g1="D,Eth" g2="Z" k="12" /> +<hkern g1="D,Eth" g2="trademark" k="31" /> +<hkern g1="D,Eth" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="14" /> +<hkern g1="D,Eth" g2="question" k="33" /> +<hkern g1="D,Eth" g2="X" k="39" /> +<hkern g1="D,Eth" g2="slash" k="53" /> +<hkern g1="D,Eth" g2="AE" k="20" /> +<hkern g1="D,Eth" g2="J" k="29" /> +<hkern g1="D,Eth" g2="V" k="18" /> +<hkern g1="D,Eth" g2="backslash" k="35" /> +<hkern g1="D,Eth" g2="seven" k="10" /> +<hkern g1="D,Eth" g2="two" k="6" /> +<hkern g1="D,Eth" g2="three" k="6" /> +<hkern g1="Y,Yacute,Ydieresis" g2="bracketright" k="6" /> +<hkern g1="Y,Yacute,Ydieresis" g2="parenright" k="6" /> +<hkern g1="Y,Yacute,Ydieresis" g2="braceright" k="6" /> +<hkern g1="Y,Yacute,Ydieresis" g2="s" k="100" /> +<hkern g1="Y,Yacute,Ydieresis" g2="y,yacute,ydieresis" k="33" /> +<hkern g1="Y,Yacute,Ydieresis" g2="t" k="23" /> +<hkern g1="Y,Yacute,Ydieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="29" /> +<hkern g1="Y,Yacute,Ydieresis" g2="w" k="33" /> +<hkern g1="Y,Yacute,Ydieresis" g2="f,germandbls,thorn,uniFB01,uniFB02" k="20" /> +<hkern g1="Y,Yacute,Ydieresis" g2="space,uni00A0" k="57" /> +<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,uni00AD,endash,emdash" k="106" /> +<hkern g1="Y,Yacute,Ydieresis" g2="q" k="127" /> +<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="113" /> +<hkern g1="Y,Yacute,Ydieresis" g2="eth" k="63" /> +<hkern g1="Y,Yacute,Ydieresis" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="135" /> +<hkern g1="Y,Yacute,Ydieresis" g2="slash" k="154" /> +<hkern g1="Y,Yacute,Ydieresis" g2="AE" k="190" /> +<hkern g1="Y,Yacute,Ydieresis" g2="d" k="127" /> +<hkern g1="Y,Yacute,Ydieresis" g2="J" k="80" /> +<hkern g1="Y,Yacute,Ydieresis" g2="guilsinglleft" k="90" /> +<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="125" /> +<hkern g1="Y,Yacute,Ydieresis" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="131" /> +<hkern g1="Y,Yacute,Ydieresis" g2="S" k="8" /> +<hkern g1="Y,Yacute,Ydieresis" g2="four" k="78" /> +<hkern g1="Y,Yacute,Ydieresis" g2="ordfeminine" k="16" /> +<hkern g1="Y,Yacute,Ydieresis" g2="copyright" k="35" /> +<hkern g1="Y,Yacute,Ydieresis" g2="ordmasculine" k="18" /> +<hkern g1="Y,Yacute,Ydieresis" g2="x" k="51" /> +<hkern g1="Y,Yacute,Ydieresis" g2="v" k="33" /> +<hkern g1="Y,Yacute,Ydieresis" g2="z" k="70" /> +<hkern g1="Y,Yacute,Ydieresis" g2="m,n,p,r,ntilde" k="117" /> +<hkern g1="Y,Yacute,Ydieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="111" /> +<hkern g1="Y,Yacute,Ydieresis" g2="colon,semicolon" k="61" /> +<hkern g1="Y,Yacute,Ydieresis" g2="guilsinglright" k="63" /> +<hkern g1="Y,Yacute,Ydieresis" g2="ampersand" k="6" /> +<hkern g1="Y,Yacute,Ydieresis" g2="zero" k="14" /> +<hkern g1="v" g2="Y,Yacute,Ydieresis" k="72" /> +<hkern g1="v" g2="T" k="168" /> +<hkern g1="v" g2="Z" k="18" /> +<hkern g1="v" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="20" /> +<hkern g1="v" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="35" /> +<hkern g1="f" g2="W" k="-14" /> +<hkern g1="f" g2="Y,Yacute,Ydieresis" k="-45" /> +<hkern g1="f" g2="T" k="-6" /> +<hkern g1="f" g2="Z" k="4" /> +<hkern g1="f" g2="hyphen,uni00AD,endash,emdash" k="61" /> +<hkern g1="f" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="53" /> +<hkern g1="f" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="6" /> +<hkern g1="f" g2="d" k="6" /> +<hkern g1="f" g2="guilsinglleft" k="47" /> +<hkern g1="f" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="70" /> +<hkern g1="f" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="12" /> +<hkern g1="s" g2="bracketright" k="68" /> +<hkern g1="s" g2="parenright" k="94" /> +<hkern g1="s" g2="braceright" k="45" /> +<hkern g1="s" g2="W" k="18" /> +<hkern g1="s" g2="Y,Yacute,Ydieresis" k="100" /> +<hkern g1="s" g2="T" k="193" /> +<hkern g1="s" g2="hyphen,uni00AD,endash,emdash" k="4" /> +<hkern g1="s" g2="trademark" k="61" /> +<hkern g1="s" g2="question" k="57" /> +<hkern g1="s" g2="guilsinglleft" k="23" /> +<hkern g1="s" g2="V" k="45" /> +<hkern g1="s" g2="backslash" k="61" /> +<hkern g1="s" g2="asterisk" k="18" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="bracketright" k="43" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="parenright" k="41" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quoteright,quotedblright" k="90" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="y,yacute,ydieresis" k="37" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="W" k="45" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="t" k="29" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quotedbl,quotesingle" k="80" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="Y,Yacute,Ydieresis" k="113" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="T" k="125" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="18" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="w" k="31" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="f,germandbls,thorn,uniFB01,uniFB02" k="14" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="18" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quoteleft,quotedblleft" k="86" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="space,uni00A0" k="53" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="trademark" k="100" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="question" k="78" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="V" k="72" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="backslash" k="117" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="ordfeminine" k="45" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="copyright" k="23" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="ordmasculine" k="49" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="asterisk" k="76" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="v" k="35" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="seven" k="59" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="registered" k="57" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="one" k="68" /> +<hkern g1="V" g2="s" k="35" /> +<hkern g1="V" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="14" /> +<hkern g1="V" g2="hyphen,uni00AD,endash,emdash" k="47" /> +<hkern g1="V" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="72" /> +<hkern g1="V" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="72" /> +<hkern g1="V" g2="d" k="72" /> +<hkern g1="V" g2="guilsinglleft" k="41" /> +<hkern g1="V" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="94" /> +<hkern g1="V" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="72" /> +<hkern g1="V" g2="z" k="23" /> +<hkern g1="V" g2="m,n,p,r,ntilde" k="53" /> +<hkern g1="V" g2="u,ugrave,uacute,ucircumflex,udieresis" k="49" /> +<hkern g1="V" g2="colon,semicolon" k="25" /> +<hkern g1="V" g2="guilsinglright" k="25" /> +<hkern g1="k" g2="bracketright" k="53" /> +<hkern g1="k" g2="parenright" k="57" /> +<hkern g1="k" g2="braceright" k="29" /> +<hkern g1="k" g2="W" k="12" /> +<hkern g1="k" g2="Y,Yacute,Ydieresis" k="88" /> +<hkern g1="k" g2="T" k="176" /> +<hkern g1="k" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="10" /> +<hkern g1="k" g2="quoteleft,quotedblleft" k="4" /> +<hkern g1="k" g2="hyphen,uni00AD,endash,emdash" k="27" /> +<hkern g1="k" g2="q" k="10" /> +<hkern g1="k" g2="trademark" k="61" /> +<hkern g1="k" g2="eth" k="16" /> +<hkern g1="k" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="12" /> +<hkern g1="k" g2="question" k="55" /> +<hkern g1="k" g2="d" k="10" /> +<hkern g1="k" g2="guilsinglleft" k="45" /> +<hkern g1="k" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="10" /> +<hkern g1="k" g2="V" k="33" /> +<hkern g1="k" g2="backslash" k="55" /> +<hkern g1="k" g2="asterisk" k="14" /> +<hkern g1="k" g2="L" k="8" /> +<hkern g1="N,Ntilde" g2="bracketright" k="14" /> +<hkern g1="N,Ntilde" g2="parenright" k="47" /> +<hkern g1="N,Ntilde" g2="braceright" k="8" /> +<hkern g1="c,ccedilla" g2="bracketright" k="61" /> +<hkern g1="c,ccedilla" g2="parenright" k="74" /> +<hkern g1="c,ccedilla" g2="braceright" k="39" /> +<hkern g1="c,ccedilla" g2="Y,Yacute,Ydieresis" k="82" /> +<hkern g1="c,ccedilla" g2="T" k="233" /> +<hkern g1="c,ccedilla" g2="hyphen,uni00AD,endash,emdash" k="43" /> +<hkern g1="c,ccedilla" g2="q" k="12" /> +<hkern g1="c,ccedilla" g2="trademark" k="51" /> +<hkern g1="c,ccedilla" g2="eth" k="23" /> +<hkern g1="c,ccedilla" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="16" /> +<hkern g1="c,ccedilla" g2="question" k="51" /> +<hkern g1="c,ccedilla" g2="d" k="12" /> +<hkern g1="c,ccedilla" g2="guilsinglleft" k="45" /> +<hkern g1="c,ccedilla" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="12" /> +<hkern g1="c,ccedilla" g2="V" k="23" /> +<hkern g1="c,ccedilla" g2="backslash" k="51" /> +<hkern g1="J" g2="bracketright" k="14" /> +<hkern g1="J" g2="parenright" k="49" /> +<hkern g1="J" g2="braceright" k="8" /> +<hkern g1="J" g2="slash" k="37" /> +<hkern g1="J" g2="J" k="4" /> +<hkern g1="F" g2="s" k="18" /> +<hkern g1="F" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="12" /> +<hkern g1="F" g2="hyphen,uni00AD,endash,emdash" k="16" /> +<hkern g1="F" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="94" /> +<hkern g1="F" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="29" /> +<hkern g1="F" g2="d" k="29" /> +<hkern g1="F" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="147" /> +<hkern g1="F" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="33" /> +<hkern g1="F" g2="z" k="14" /> +<hkern g1="F" g2="m,n,p,r,ntilde" k="31" /> +<hkern g1="F" g2="u,ugrave,uacute,ucircumflex,udieresis" k="25" /> +<hkern g1="F" g2="colon,semicolon" k="12" /> +<hkern g1="x" g2="Y,Yacute,Ydieresis" k="49" /> +<hkern g1="x" g2="T" k="170" /> +<hkern g1="x" g2="hyphen,uni00AD,endash,emdash" k="37" /> +<hkern g1="x" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="23" /> +<hkern g1="x" g2="d" k="18" /> +<hkern g1="x" g2="guilsinglleft" k="51" /> +<hkern g1="x" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="18" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="bracketright" k="68" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="parenright" k="92" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="braceright" k="47" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quoteright,quotedblright" k="35" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="W" k="23" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quotedbl,quotesingle" k="23" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="Y,Yacute,Ydieresis" k="133" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="T" k="209" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quoteleft,quotedblleft" k="31" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="trademark" k="63" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="question" k="72" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="V" k="59" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="backslash" k="90" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="asterisk" k="23" /> +<hkern g1="p,thorn" g2="bracketright" k="76" /> +<hkern g1="p,thorn" g2="parenright" k="111" /> +<hkern g1="p,thorn" g2="braceright" k="53" /> +<hkern g1="p,thorn" g2="quoteright,quotedblright" k="47" /> +<hkern g1="p,thorn" g2="y,yacute,ydieresis" k="6" /> +<hkern g1="p,thorn" g2="W" k="37" /> +<hkern g1="p,thorn" g2="quotedbl,quotesingle" k="33" /> +<hkern g1="p,thorn" g2="Y,Yacute,Ydieresis" k="129" /> +<hkern g1="p,thorn" g2="T" k="221" /> +<hkern g1="p,thorn" g2="w" k="6" /> +<hkern g1="p,thorn" g2="f,germandbls,thorn,uniFB01,uniFB02" k="2" /> +<hkern g1="p,thorn" g2="quoteleft,quotedblleft" k="43" /> +<hkern g1="p,thorn" g2="Z" k="8" /> +<hkern g1="p,thorn" g2="trademark" k="70" /> +<hkern g1="p,thorn" g2="question" k="82" /> +<hkern g1="p,thorn" g2="X" k="10" /> +<hkern g1="p,thorn" g2="slash" k="14" /> +<hkern g1="p,thorn" g2="J" k="8" /> +<hkern g1="p,thorn" g2="S" k="4" /> +<hkern g1="p,thorn" g2="V" k="74" /> +<hkern g1="p,thorn" g2="backslash" k="100" /> +<hkern g1="p,thorn" g2="x" k="18" /> +<hkern g1="p,thorn" g2="asterisk" k="33" /> +<hkern g1="p,thorn" g2="v" k="8" /> +<hkern g1="S" g2="bracketright" k="29" /> +<hkern g1="S" g2="parenright" k="53" /> +<hkern g1="S" g2="braceright" k="8" /> +<hkern g1="S" g2="y,yacute,ydieresis" k="12" /> +<hkern g1="S" g2="t" k="10" /> +<hkern g1="S" g2="Y,Yacute,Ydieresis" k="8" /> +<hkern g1="S" g2="w" k="10" /> +<hkern g1="S" g2="f,germandbls,thorn,uniFB01,uniFB02" k="8" /> +<hkern g1="S" g2="ordfeminine" k="8" /> +<hkern g1="S" g2="ordmasculine" k="8" /> +<hkern g1="S" g2="asterisk" k="8" /> +<hkern g1="S" g2="v" k="12" /> +<hkern g1="S" g2="registered" k="6" /> +<hkern g1="h,m,n,ntilde" g2="bracketright" k="72" /> +<hkern g1="h,m,n,ntilde" g2="parenright" k="92" /> +<hkern g1="h,m,n,ntilde" g2="braceright" k="49" /> +<hkern g1="h,m,n,ntilde" g2="quoteright,quotedblright" k="37" /> +<hkern g1="h,m,n,ntilde" g2="W" k="33" /> +<hkern g1="h,m,n,ntilde" g2="quotedbl,quotesingle" k="27" /> +<hkern g1="h,m,n,ntilde" g2="Y,Yacute,Ydieresis" k="125" /> +<hkern g1="h,m,n,ntilde" g2="T" k="225" /> +<hkern g1="h,m,n,ntilde" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="8" /> +<hkern g1="h,m,n,ntilde" g2="quoteleft,quotedblleft" k="37" /> +<hkern g1="h,m,n,ntilde" g2="trademark" k="68" /> +<hkern g1="h,m,n,ntilde" g2="question" k="76" /> +<hkern g1="h,m,n,ntilde" g2="S" k="4" /> +<hkern g1="h,m,n,ntilde" g2="V" k="72" /> +<hkern g1="h,m,n,ntilde" g2="backslash" k="94" /> +<hkern g1="h,m,n,ntilde" g2="asterisk" k="29" /> +<hkern g1="K" g2="bracketright" k="8" /> +<hkern g1="K" g2="parenright" k="6" /> +<hkern g1="K" g2="y,yacute,ydieresis" k="35" /> +<hkern g1="K" g2="t" k="18" /> +<hkern g1="K" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="51" /> +<hkern g1="K" g2="w" k="33" /> +<hkern g1="K" g2="f,germandbls,thorn,uniFB01,uniFB02" k="10" /> +<hkern g1="K" g2="space,uni00A0" k="20" /> +<hkern g1="K" g2="hyphen,uni00AD,endash,emdash" k="51" /> +<hkern g1="K" g2="q" k="31" /> +<hkern g1="K" g2="eth" k="35" /> +<hkern g1="K" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="39" /> +<hkern g1="K" g2="d" k="31" /> +<hkern g1="K" g2="guilsinglleft" k="23" /> +<hkern g1="K" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="31" /> +<hkern g1="K" g2="four" k="61" /> +<hkern g1="K" g2="ordfeminine" k="35" /> +<hkern g1="K" g2="copyright" k="47" /> +<hkern g1="K" g2="ordmasculine" k="37" /> +<hkern g1="K" g2="v" k="35" /> +<hkern g1="K" g2="u,ugrave,uacute,ucircumflex,udieresis" k="14" /> +<hkern g1="K" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="14" /> +<hkern g1="C,Ccedilla" g2="bracketright" k="10" /> +<hkern g1="C,Ccedilla" g2="parenright" k="23" /> +<hkern g1="C,Ccedilla" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="23" /> +<hkern g1="C,Ccedilla" g2="hyphen,uni00AD,endash,emdash" k="31" /> +<hkern g1="C,Ccedilla" g2="eth" k="10" /> +<hkern g1="C,Ccedilla" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="10" /> +<hkern g1="C,Ccedilla" g2="guilsinglleft" k="16" /> +<hkern g1="C,Ccedilla" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="8" /> +<hkern g1="C,Ccedilla" g2="four" k="55" /> +<hkern g1="C,Ccedilla" g2="ordfeminine" k="25" /> +<hkern g1="C,Ccedilla" g2="copyright" k="35" /> +<hkern g1="C,Ccedilla" g2="ordmasculine" k="25" /> +<hkern g1="X" g2="y,yacute,ydieresis" k="25" /> +<hkern g1="X" g2="t" k="14" /> +<hkern g1="X" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="41" /> +<hkern g1="X" g2="w" k="20" /> +<hkern g1="X" g2="f,germandbls,thorn,uniFB01,uniFB02" k="8" /> +<hkern g1="X" g2="hyphen,uni00AD,endash,emdash" k="39" /> +<hkern g1="X" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="31" /> +<hkern g1="X" g2="d" k="25" /> +<hkern g1="X" g2="guilsinglleft" k="25" /> +<hkern g1="X" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="25" /> +<hkern g1="X" g2="u,ugrave,uacute,ucircumflex,udieresis" k="14" /> +<hkern g1="X" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="8" /> +<hkern g1="P" g2="Y,Yacute,Ydieresis" k="8" /> +<hkern g1="P" g2="Z" k="12" /> +<hkern g1="P" g2="hyphen,uni00AD,endash,emdash" k="8" /> +<hkern g1="P" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="66" /> +<hkern g1="P" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="143" /> +<hkern g1="P" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="4" /> +<hkern g1="z" g2="bracketright" k="61" /> +<hkern g1="z" g2="parenright" k="74" /> +<hkern g1="z" g2="braceright" k="41" /> +<hkern g1="z" g2="Y,Yacute,Ydieresis" k="80" /> +<hkern g1="z" g2="T" k="193" /> +<hkern g1="z" g2="hyphen,uni00AD,endash,emdash" k="33" /> +<hkern g1="z" g2="trademark" k="55" /> +<hkern g1="z" g2="eth" k="12" /> +<hkern g1="z" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="2" /> +<hkern g1="z" g2="question" k="47" /> +<hkern g1="z" g2="guilsinglleft" k="39" /> +<hkern g1="z" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="2" /> +<hkern g1="z" g2="V" k="25" /> +<hkern g1="z" g2="backslash" k="49" /> +<hkern g1="guilsinglright" g2="quoteright,quotedblright" k="100" /> +<hkern g1="guilsinglright" g2="quotedbl,quotesingle" k="74" /> +<hkern g1="guilsinglright" g2="y,yacute,ydieresis" k="20" /> +<hkern g1="guilsinglright" g2="T" k="139" /> +<hkern g1="guilsinglright" g2="v" k="18" /> +<hkern g1="guilsinglright" g2="Y,Yacute,Ydieresis" k="119" /> +<hkern g1="guilsinglright" g2="f,germandbls,thorn,uniFB01,uniFB02" k="27" /> +<hkern g1="guilsinglright" g2="s" k="18" /> +<hkern g1="guilsinglright" g2="V" k="68" /> +<hkern g1="guilsinglright" g2="x" k="51" /> +<hkern g1="guilsinglright" g2="X" k="25" /> +<hkern g1="guilsinglright" g2="z" k="41" /> +<hkern g1="guilsinglright" g2="w" k="18" /> +<hkern g1="guilsinglright" g2="Z" k="20" /> +<hkern g1="guilsinglright" g2="J" k="6" /> +<hkern g1="guilsinglright" g2="t" k="25" /> +<hkern g1="guilsinglright" g2="W" k="41" /> +<hkern g1="questiondown" g2="y,yacute,ydieresis" k="25" /> +<hkern g1="questiondown" g2="T" k="203" /> +<hkern g1="questiondown" g2="Y,Yacute,Ydieresis" k="154" /> +<hkern g1="questiondown" g2="f,germandbls,thorn,uniFB01,uniFB02" k="-88" /> +<hkern g1="questiondown" g2="s" k="111" /> +<hkern g1="questiondown" g2="z" k="111" /> +<hkern g1="questiondown" g2="w" k="98" /> +<hkern g1="questiondown" g2="Z" k="117" /> +<hkern g1="questiondown" g2="t" k="96" /> +<hkern g1="questiondown" g2="W" k="121" /> +<hkern g1="questiondown" g2="i,j,igrave,iacute,icircumflex,idieresis" k="113" /> +<hkern g1="questiondown" g2="m,n,p,r,ntilde" k="111" /> +<hkern g1="questiondown" g2="S" k="113" /> +<hkern g1="questiondown" g2="b,h,k" k="111" /> +<hkern g1="questiondown" g2="L" k="113" /> +<hkern g1="questiondown" g2="u,ugrave,uacute,ucircumflex,udieresis" k="111" /> +<hkern g1="questiondown" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="92" /> +<hkern g1="questiondown" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="113" /> +<hkern g1="questiondown" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="113" /> +<hkern g1="questiondown" g2="B,D,H,I,K,P,R,Igrave,Iacute,Icircumflex,Idieresis,Eth,Thorn" k="111" /> +<hkern g1="questiondown" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="113" /> +<hkern g1="questiondown" g2="d" k="113" /> +<hkern g1="questiondown" g2="N,Ntilde" k="111" /> +<hkern g1="questiondown" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="109" /> +<hkern g1="questiondown" g2="l" k="111" /> +<hkern g1="questiondown" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="115" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="quoteright,quotedblright" k="160" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="quotedbl,quotesingle" k="143" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="T" k="113" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Y,Yacute,Ydieresis" k="111" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="f,germandbls,thorn,uniFB01,uniFB02" k="14" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="V" k="49" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="x" k="37" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="X" k="23" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="z" k="35" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="J" k="78" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="t" k="16" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="W" k="25" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="S" k="8" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="seven" k="102" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="nine" k="6" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="one" k="78" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="three" k="6" /> +<hkern g1="space,uni00A0" g2="quoteright,quotedblright" k="29" /> +<hkern g1="space,uni00A0" g2="quotedbl,quotesingle" k="27" /> +<hkern g1="space,uni00A0" g2="y,yacute,ydieresis" k="45" /> +<hkern g1="space,uni00A0" g2="T" k="51" /> +<hkern g1="space,uni00A0" g2="Y,Yacute,Ydieresis" k="59" /> +<hkern g1="space,uni00A0" g2="f,germandbls,thorn,uniFB01,uniFB02" k="33" /> +<hkern g1="space,uni00A0" g2="w" k="43" /> +<hkern g1="space,uni00A0" g2="t" k="37" /> +<hkern g1="space,uni00A0" g2="W" k="31" /> +<hkern g1="space,uni00A0" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="45" /> +<hkern g1="colon,semicolon" g2="quoteright,quotedblright" k="14" /> +<hkern g1="colon,semicolon" g2="T" k="109" /> +<hkern g1="colon,semicolon" g2="Y,Yacute,Ydieresis" k="63" /> +<hkern g1="colon,semicolon" g2="V" k="31" /> +<hkern g1="seven" g2="hyphen,uni00AD,endash,emdash" k="41" /> +<hkern g1="seven" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="92" /> +<hkern g1="seven" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="68" /> +<hkern g1="braceleft" g2="y,yacute,ydieresis" k="10" /> +<hkern g1="braceleft" g2="f,germandbls,thorn,uniFB01,uniFB02" k="-55" /> +<hkern g1="braceleft" g2="s" k="47" /> +<hkern g1="braceleft" g2="z" k="41" /> +<hkern g1="braceleft" g2="w" k="41" /> +<hkern g1="braceleft" g2="t" k="37" /> +<hkern g1="braceleft" g2="i,j,igrave,iacute,icircumflex,idieresis" k="8" /> +<hkern g1="braceleft" g2="m,n,p,r,ntilde" k="47" /> +<hkern g1="braceleft" g2="S" k="8" /> +<hkern g1="braceleft" g2="b,h,k" k="8" /> +<hkern g1="braceleft" g2="L" k="8" /> +<hkern g1="braceleft" g2="u,ugrave,uacute,ucircumflex,udieresis" k="51" /> +<hkern g1="braceleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="25" /> +<hkern g1="braceleft" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="31" /> +<hkern g1="braceleft" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="57" /> +<hkern g1="braceleft" g2="B,D,H,I,K,P,R,Igrave,Iacute,Icircumflex,Idieresis,Eth,Thorn" k="8" /> +<hkern g1="braceleft" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="10" /> +<hkern g1="braceleft" g2="d" k="55" /> +<hkern g1="braceleft" g2="N,Ntilde" k="8" /> +<hkern g1="braceleft" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="43" /> +<hkern g1="braceleft" g2="l" k="8" /> +<hkern g1="braceleft" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="57" /> +<hkern g1="parenleft" g2="y,yacute,ydieresis" k="45" /> +<hkern g1="parenleft" g2="f,germandbls,thorn,uniFB01,uniFB02" k="-57" /> +<hkern g1="parenleft" g2="s" k="94" /> +<hkern g1="parenleft" g2="z" k="84" /> +<hkern g1="parenleft" g2="w" k="90" /> +<hkern g1="parenleft" g2="t" k="82" /> +<hkern g1="parenleft" g2="i,j,igrave,iacute,icircumflex,idieresis" k="35" /> +<hkern g1="parenleft" g2="m,n,p,r,ntilde" k="96" /> +<hkern g1="parenleft" g2="S" k="53" /> +<hkern g1="parenleft" g2="b,h,k" k="33" /> +<hkern g1="parenleft" g2="L" k="39" /> +<hkern g1="parenleft" g2="u,ugrave,uacute,ucircumflex,udieresis" k="102" /> +<hkern g1="parenleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="55" /> +<hkern g1="parenleft" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="70" /> +<hkern g1="parenleft" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="113" /> +<hkern g1="parenleft" g2="B,D,H,I,K,P,R,Igrave,Iacute,Icircumflex,Idieresis,Eth,Thorn" k="37" /> +<hkern g1="parenleft" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="41" /> +<hkern g1="parenleft" g2="d" k="111" /> +<hkern g1="parenleft" g2="N,Ntilde" k="45" /> +<hkern g1="parenleft" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="94" /> +<hkern g1="parenleft" g2="l" k="33" /> +<hkern g1="parenleft" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="113" /> +<hkern g1="bracketleft" g2="y,yacute,ydieresis" k="35" /> +<hkern g1="bracketleft" g2="f,germandbls,thorn,uniFB01,uniFB02" k="-53" /> +<hkern g1="bracketleft" g2="s" k="68" /> +<hkern g1="bracketleft" g2="z" k="61" /> +<hkern g1="bracketleft" g2="w" k="59" /> +<hkern g1="bracketleft" g2="Z" k="6" /> +<hkern g1="bracketleft" g2="t" k="55" /> +<hkern g1="bracketleft" g2="i,j,igrave,iacute,icircumflex,idieresis" k="14" /> +<hkern g1="bracketleft" g2="m,n,p,r,ntilde" k="68" /> +<hkern g1="bracketleft" g2="S" k="37" /> +<hkern g1="bracketleft" g2="b,h,k" k="10" /> +<hkern g1="bracketleft" g2="L" k="12" /> +<hkern g1="bracketleft" g2="u,ugrave,uacute,ucircumflex,udieresis" k="70" /> +<hkern g1="bracketleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="49" /> +<hkern g1="bracketleft" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="45" /> +<hkern g1="bracketleft" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="76" /> +<hkern g1="bracketleft" g2="B,D,H,I,K,P,R,Igrave,Iacute,Icircumflex,Idieresis,Eth,Thorn" k="12" /> +<hkern g1="bracketleft" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="12" /> +<hkern g1="bracketleft" g2="d" k="76" /> +<hkern g1="bracketleft" g2="N,Ntilde" k="12" /> +<hkern g1="bracketleft" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="59" /> +<hkern g1="bracketleft" g2="l" k="10" /> +<hkern g1="bracketleft" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="76" /> +<hkern g1="backslash" g2="quoteright,quotedblright" k="156" /> +<hkern g1="backslash" g2="quotedbl,quotesingle" k="147" /> +<hkern g1="backslash" g2="y,yacute,ydieresis" k="98" /> +<hkern g1="backslash" g2="T" k="143" /> +<hkern g1="backslash" g2="Y,Yacute,Ydieresis" k="145" /> +<hkern g1="backslash" g2="f,germandbls,thorn,uniFB01,uniFB02" k="16" /> +<hkern g1="backslash" g2="w" k="92" /> +<hkern g1="backslash" g2="t" k="72" /> +<hkern g1="backslash" g2="W" k="96" /> +<hkern g1="backslash" g2="L" k="37" /> +<hkern g1="backslash" g2="u,ugrave,uacute,ucircumflex,udieresis" k="29" /> +<hkern g1="backslash" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="37" /> +<hkern g1="backslash" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="47" /> +<hkern g1="backslash" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="59" /> +<hkern g1="backslash" g2="d" k="37" /> +<hkern g1="backslash" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="66" /> +<hkern g1="backslash" g2="l" k="29" /> +<hkern g1="backslash" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="39" /> +<hkern g1="periodcentered" g2="l" k="104" /> +<hkern g1="quoteleft,quotedblleft" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="207" /> +<hkern g1="quoteleft,quotedblleft" g2="J" k="66" /> +<hkern g1="quoteleft,quotedblleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="80" /> +<hkern g1="quoteleft,quotedblleft" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="33" /> +<hkern g1="quoteleft,quotedblleft" g2="d" k="45" /> +<hkern g1="quoteleft,quotedblleft" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="35" /> +<hkern g1="quoteleft,quotedblleft" g2="q" k="29" /> +<hkern g1="quoteleft,quotedblleft" g2="eth" k="29" /> +<hkern g1="quoteleft,quotedblleft" g2="AE" k="152" /> +<hkern g1="slash" g2="s" k="18" /> +<hkern g1="slash" g2="z" k="18" /> +<hkern g1="slash" g2="m,n,p,r,ntilde" k="35" /> +<hkern g1="slash" g2="u,ugrave,uacute,ucircumflex,udieresis" k="33" /> +<hkern g1="slash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="119" /> +<hkern g1="slash" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="45" /> +<hkern g1="slash" g2="d" k="47" /> +<hkern g1="slash" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="25" /> +<hkern g1="slash" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="47" /> +<hkern g1="quotedbl,quotesingle" g2="hyphen,uni00AD,endash,emdash" k="113" /> +<hkern g1="quotedbl,quotesingle" g2="guilsinglleft" k="18" /> +<hkern g1="quotedbl,quotesingle" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="205" /> +<hkern g1="quotedbl,quotesingle" g2="J" k="68" /> +<hkern g1="quotedbl,quotesingle" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="78" /> +<hkern g1="quotedbl,quotesingle" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="29" /> +<hkern g1="quotedbl,quotesingle" g2="d" k="33" /> +<hkern g1="quotedbl,quotesingle" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="29" /> +<hkern g1="quotedbl,quotesingle" g2="q" k="25" /> +<hkern g1="quotedbl,quotesingle" g2="eth" k="29" /> +<hkern g1="quotedbl,quotesingle" g2="AE" k="145" /> +<hkern g1="quotedbl,quotesingle" g2="space,uni00A0" k="27" /> +<hkern g1="quotedbl,quotesingle" g2="four" k="37" /> +<hkern g1="quotedbl,quotesingle" g2="slash" k="154" /> +<hkern g1="ampersand" g2="quoteright,quotedblright" k="68" /> +<hkern g1="ampersand" g2="quotedbl,quotesingle" k="55" /> +<hkern g1="ampersand" g2="T" k="119" /> +<hkern g1="ampersand" g2="Y,Yacute,Ydieresis" k="66" /> +<hkern g1="ampersand" g2="Z" k="59" /> +<hkern g1="ampersand" g2="S" k="10" /> +<hkern g1="ampersand" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="29" /> +<hkern g1="at" g2="T" k="47" /> +<hkern g1="at" g2="Y,Yacute,Ydieresis" k="45" /> +<hkern g1="exclamdown" g2="T" k="127" /> +<hkern g1="exclamdown" g2="Y,Yacute,Ydieresis" k="59" /> +<hkern g1="asterisk" g2="T" k="6" /> +<hkern g1="asterisk" g2="Z" k="6" /> +<hkern g1="asterisk" g2="m,n,p,r,ntilde" k="4" /> +<hkern g1="asterisk" g2="u,ugrave,uacute,ucircumflex,udieresis" k="4" /> +<hkern g1="asterisk" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="70" /> +<hkern g1="asterisk" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="27" /> +<hkern g1="asterisk" g2="d" k="31" /> +<hkern g1="asterisk" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="27" /> +<hkern g1="guilsinglleft" g2="quoteright,quotedblright" k="29" /> +<hkern g1="guilsinglleft" g2="T" k="133" /> +<hkern g1="guilsinglleft" g2="Y,Yacute,Ydieresis" k="70" /> +<hkern g1="guilsinglleft" g2="V" k="33" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="quoteright,quotedblright" k="219" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="quotedbl,quotesingle" k="211" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="y,yacute,ydieresis" k="57" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="T" k="115" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="v" k="57" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="Y,Yacute,Ydieresis" k="119" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="f,germandbls,thorn,uniFB01,uniFB02" k="23" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="V" k="98" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="w" k="51" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="t" k="31" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="W" k="57" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="23" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="27" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="seven" k="66" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="one" k="82" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="four" k="47" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="zero" k="6" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="quoteleft,quotedblleft" k="221" /> +<hkern g1="four" g2="quotedbl,quotesingle" k="31" /> +<hkern g1="four" g2="T" k="74" /> +<hkern g1="four" g2="Y,Yacute,Ydieresis" k="72" /> +<hkern g1="four" g2="W" k="25" /> +<hkern g1="quoteright,quotedblright" g2="hyphen,uni00AD,endash,emdash" k="129" /> +<hkern g1="quoteright,quotedblright" g2="guilsinglleft" k="51" /> +<hkern g1="quoteright,quotedblright" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="215" /> +<hkern g1="quoteright,quotedblright" g2="J" k="68" /> +<hkern g1="quoteright,quotedblright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="88" /> +<hkern g1="quoteright,quotedblright" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="43" /> +<hkern g1="quoteright,quotedblright" g2="d" k="51" /> +<hkern g1="quoteright,quotedblright" g2="a,g,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="43" /> +<hkern g1="quoteright,quotedblright" g2="q" k="37" /> +<hkern g1="quoteright,quotedblright" g2="eth" k="23" /> +<hkern g1="quoteright,quotedblright" g2="AE" k="156" /> +<hkern g1="quoteright,quotedblright" g2="space,uni00A0" k="27" /> +<hkern g1="quoteright,quotedblright" g2="slash" k="162" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/exo2-italic-webfont.ttf b/web/static/fonts/exo2-italic-webfont.ttf Binary files differnew file mode 100755 index 000000000..8207df8ce --- /dev/null +++ b/web/static/fonts/exo2-italic-webfont.ttf diff --git a/web/static/fonts/exo2-italic-webfont.woff b/web/static/fonts/exo2-italic-webfont.woff Binary files differnew file mode 100755 index 000000000..d37d0725e --- /dev/null +++ b/web/static/fonts/exo2-italic-webfont.woff diff --git a/web/static/fonts/exo2-italic-webfont.woff2 b/web/static/fonts/exo2-italic-webfont.woff2 Binary files differnew file mode 100755 index 000000000..98164ded5 --- /dev/null +++ b/web/static/fonts/exo2-italic-webfont.woff2 diff --git a/web/static/fonts/generator_config.txt b/web/static/fonts/generator_config.txt new file mode 100755 index 000000000..47dd0367b --- /dev/null +++ b/web/static/fonts/generator_config.txt @@ -0,0 +1,5 @@ +# Font Squirrel Font-face Generator Configuration File +# Upload this file to the generator to recreate the settings +# you used to create these fonts. + +{"mode":"optimal","formats":["ttf","woff","woff2","eotz"],"tt_instructor":"default","fix_gasp":"xy","fix_vertical_metrics":"Y","metrics_ascent":"","metrics_descent":"","metrics_linegap":"","add_spaces":"Y","add_hyphens":"Y","fallback":"none","fallback_custom":"100","options_subset":"basic","subset_custom":"","subset_custom_range":"","subset_ot_features_list":"","css_stylesheet":"stylesheet.css","filename_suffix":"-webfont","emsquare":"2048","spacing_adjustment":"0"}
\ No newline at end of file diff --git a/web/static/fonts/lato-bold-webfont.eot b/web/static/fonts/lato-bold-webfont.eot Binary files differnew file mode 100755 index 000000000..8d6f85c25 --- /dev/null +++ b/web/static/fonts/lato-bold-webfont.eot diff --git a/web/static/fonts/lato-bold-webfont.svg b/web/static/fonts/lato-bold-webfont.svg new file mode 100755 index 000000000..80674cfe2 --- /dev/null +++ b/web/static/fonts/lato-bold-webfont.svg @@ -0,0 +1,4551 @@ +<?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="latobold" horiz-adv-x="1187" > +<font-face units-per-em="2048" ascent="1649" descent="-399" /> +<missing-glyph horiz-adv-x="395" /> +<glyph unicode="fi" horiz-adv-x="1230" d="M24 938v103h156v34q0 96 32 178.5t96.5 143t162.5 95t232 34.5q43 0 88.5 -4.5t77.5 -15.5l-8 -131q-2 -24 -25.5 -28.5t-58.5 -4.5q-99 0 -166 -17t-108.5 -51.5t-59.5 -86t-18 -120.5v-26h651v-1041h-253v861h-390v-861h-253v860l-91 14q-30 5 -47.5 20.5t-17.5 43.5z " /> +<glyph unicode="fl" horiz-adv-x="1263" d="M24 938v103h156v44q0 84 26 161t80.5 136t137.5 94t197 35q93 0 176.5 -6t166.5 -6h142v-1499h-252v1323q-54 2 -106 5t-88 3q-115 0 -175 -64t-60 -182v-44h249v-180h-241v-861h-253v860l-91 14q-30 5 -47.5 20.5t-17.5 43.5z" /> +<glyph horiz-adv-x="0" /> +<glyph unicode="
" horiz-adv-x="0" /> +<glyph horiz-adv-x="0" /> +<glyph horiz-adv-x="0" /> +<glyph unicode=" " horiz-adv-x="395" /> +<glyph unicode="	" horiz-adv-x="395" /> +<glyph unicode=" " horiz-adv-x="395" /> +<glyph unicode="!" horiz-adv-x="738" d="M214 139q0 32 12 60.5t33 49t49.5 33t61.5 12.5q32 0 60.5 -12.5t49 -33t32.5 -49t12 -60.5q0 -33 -12 -61t-32.5 -48.5t-49.5 -32t-60 -11.5q-33 0 -61.5 11.5t-49.5 32t-33 48.5t-12 61zM253 895v586h239v-586q0 -93 -9.5 -182.5t-24.5 -190.5h-171q-15 100 -24.5 190 t-9.5 183z" /> +<glyph unicode=""" horiz-adv-x="864" d="M134 1186v295h220v-295l-23 -160q-7 -45 -26 -69t-62 -24q-37 0 -58.5 24t-27.5 69zM511 1186v295h220v-295l-23 -160q-7 -45 -26 -69t-62 -24q-37 0 -58.5 24t-27.5 69z" /> +<glyph unicode="#" d="M40 486q0 14 3 33l13 81h195l53 283h-219l19 105q7 39 32 58t80 19h114l63 330q8 41 38 63.5t70 22.5h114l-77 -416h208l79 416h113q36 0 58.5 -20.5t22.5 -52.5q0 -10 -1 -15l-64 -328h208l-19 -106q-7 -39 -32.5 -57.5t-79.5 -18.5h-102l-52 -283h145q33 0 50 -16 t17 -54q0 -14 -4 -32l-12 -80h-222l-79 -418h-116q-31 0 -53 24.5t-22 60.5q0 5 0.5 9.5t1.5 9.5l60 314h-210l-59 -326q-9 -49 -42 -70.5t-73 -21.5h-112l78 418h-117q-33 0 -50.5 16t-17.5 52zM459 600h210l52 283h-209z" /> +<glyph unicode="$" d="M71 178l77 116q10 15 27.5 25t35.5 10q23 0 48.5 -16t58 -37.5t74.5 -43t100 -31.5l38 458q-73 20 -144 48t-127.5 73.5t-91.5 115.5t-35 174q0 78 31.5 152t90.5 132.5t146 96.5t200 43l11 129q2 25 20.5 44.5t48.5 19.5h93l-17 -202q109 -17 187.5 -61.5t136.5 -99.5 l-61 -93q-14 -20 -28.5 -30.5t-35.5 -10.5q-15 0 -36 9.5t-48 23.5t-60 28.5t-73 23.5l-36 -424q74 -23 146.5 -50t130 -70t93.5 -107t36 -160q0 -95 -32 -178.5t-92.5 -147.5t-150 -104t-203.5 -48l-13 -151q-2 -24 -20 -43.5t-48 -19.5h-93l18 219q-120 16 -225 65 t-178 122zM371 1095q0 -39 13 -69t37 -53t57 -41t72 -32l32 379q-56 -7 -96.5 -24t-66 -41.5t-37 -54.5t-11.5 -64zM648 198q109 14 164.5 73t55.5 154q0 39 -13.5 68t-38.5 51.5t-59 39t-74 29.5z" /> +<glyph unicode="%" horiz-adv-x="1644" d="M62 1122q0 86 26 156t71.5 118t108 74t135.5 26q74 0 137 -26t109 -74t71.5 -118t25.5 -156q0 -84 -28 -151.5t-75 -115t-109.5 -73t-130.5 -25.5q-74 0 -136 25.5t-107.5 73t-71.5 115t-26 151.5zM139 0l1100 1441q12 15 30.5 27.5t51.5 12.5h183l-1100 -1443 q-12 -16 -31 -27t-45 -11h-189zM259 1122q0 -57 11 -95.5t30 -62t46 -33.5t57 -10q31 0 58 10t47 33.5t31.5 62t11.5 95.5q0 59 -11.5 99.5t-31.5 65t-47 35t-58 10.5t-57.5 -10.5t-45.5 -35t-30 -64.5t-11 -100zM898 348q0 86 25.5 155.5t71 118t108 74.5t136.5 26t137 -26 t109 -74.5t71.5 -118t25.5 -155.5q0 -84 -28 -151.5t-75 -115t-109.5 -73.5t-130.5 -26q-74 0 -136.5 26t-108 73.5t-71 115t-25.5 151.5zM1095 348q0 -57 11 -96t30 -62.5t45.5 -34t57.5 -10.5t58 10.5t47 34t32 62.5t12 96q0 59 -12 99t-32 65t-47 35.5t-58 10.5 t-57.5 -10.5t-45.5 -35.5t-30 -64.5t-11 -99.5z" /> +<glyph unicode="&" horiz-adv-x="1462" d="M66 408q0 69 22.5 130.5t62 115t94.5 96.5t121 73q-54 77 -79.5 150.5t-25.5 145.5q0 77 28 146t82 120.5t132 81.5t176 30q90 0 161 -27.5t122 -73.5t80 -105.5t34 -123.5l-161 -33q-3 -1 -6.5 -1h-6.5q-17 0 -31 9.5t-22 29.5q-9 27 -23.5 51t-35 42t-48 29t-63.5 11 q-43 0 -77 -15t-57.5 -40t-35.5 -58.5t-12 -70.5q0 -31 6.5 -59.5t21 -57t37.5 -59t56 -64.5l394 -409q34 65 54 136.5t27 145.5q2 24 15 38t37 14h159q-1 -135 -39 -258t-109 -226l310 -322h-247q-19 0 -34.5 2t-28.5 7.5t-25.5 15t-25.5 23.5l-103 106q-98 -80 -218 -125 t-261 -45q-86 0 -168 29t-146.5 84.5t-103.5 133.5t-39 177zM323 428q0 -56 19 -101t53 -76.5t78.5 -48.5t94.5 -17q90 0 164.5 28.5t135.5 78.5l-389 399q-82 -53 -119 -119.5t-37 -143.5z" /> +<glyph unicode="'" horiz-adv-x="487" d="M134 1186v295h220v-295l-23 -160q-7 -45 -26 -69t-62 -24q-37 0 -58.5 24t-27.5 69z" /> +<glyph unicode="(" horiz-adv-x="614" d="M109 642q0 128 15.5 251.5t49.5 243t87 237t129 234.5l113 -68q14 -8 24.5 -21t10.5 -32t-14 -46q-94 -179 -145 -383.5t-51 -415.5t51 -414.5t146 -383.5q7 -13 10 -24t3 -21q0 -20 -10.5 -33t-24.5 -21l-113 -69q-76 117 -129 235t-87 237.5t-49.5 242.5t-15.5 251z " /> +<glyph unicode=")" horiz-adv-x="614" d="M77 -201q0 9 2.5 20.5t9.5 24.5q95 179 146.5 383t51.5 415t-51.5 415.5t-145.5 383.5q-13 27 -13 46t10 32t25 21l112 68q76 -117 129.5 -234.5t87 -237t49.5 -243t16 -251.5t-16 -251t-49.5 -242.5t-87 -237.5t-129.5 -235l-112 69q-14 8 -24.5 21t-10.5 33z" /> +<glyph unicode="*" horiz-adv-x="819" d="M78 1081l163 95q18 11 36 18t37 10q-19 2 -37 10.5t-36 19.5l-163 95l59 103l163 -97q17 -11 33 -23t27 -26q-7 17 -9.5 36.5t-2.5 40.5v189h121v-187q0 -22 -2.5 -41.5t-9.5 -37.5q11 14 26.5 26t33.5 23l162 95l60 -103l-162 -93q-18 -11 -36.5 -19t-37.5 -11 q35 -6 74 -28l162 -96l-59 -102l-163 95q-18 11 -33.5 22.5t-27.5 25.5q13 -33 13 -75v-189h-121v187q0 20 2.5 40t8.5 37q-11 -14 -26.5 -25.5t-32.5 -22.5l-162 -94z" /> +<glyph unicode="+" d="M93 594v187h396v420h205v-420h399v-187h-399v-422h-205v422h-396z" /> +<glyph unicode="," horiz-adv-x="460" d="M82 156q0 29 10.5 53.5t30 43.5t47.5 30t60 11q39 0 68 -14t48.5 -38t28.5 -55t9 -66q0 -49 -15 -103.5t-43.5 -108.5t-70.5 -105.5t-96 -94.5l-44 40q-18 15 -19 38q0 8 6 18.5t14 18.5l27.5 30t33 41t30 50t19.5 58q-32 0 -58.5 12t-45.5 32.5t-29.5 48t-10.5 60.5z " /> +<glyph unicode="-" horiz-adv-x="735" d="M102 513v211h531v-211h-531z" /> +<glyph unicode="." horiz-adv-x="460" d="M75 139q0 32 11.5 60.5t32.5 49t50 33t61 12.5t60.5 -12.5t49 -33t33 -49t12.5 -60.5q0 -33 -12.5 -61t-33 -48.5t-49 -32t-60.5 -11.5q-33 0 -61.5 11.5t-49.5 32t-32.5 48.5t-11.5 61z" /> +<glyph unicode="/" horiz-adv-x="792" d="M-18 -97l598 1530q17 43 50 66t79 23h107l-593 -1525q-9 -24 -23.5 -41t-33 -29t-38.5 -18t-40 -6h-106z" /> +<glyph unicode="0" d="M51 740q0 195 41 337.5t114 235.5t171.5 138.5t214.5 45.5t215.5 -45.5t173 -138.5t115 -235.5t41.5 -337.5q0 -194 -41.5 -336.5t-115 -235.5t-173 -138.5t-215.5 -45.5t-214.5 45.5t-171.5 138.5t-114 236t-41 336zM312 740q0 -161 23 -266t62 -167.5t90 -87.5t105 -25 q55 0 106.5 25t90.5 87.5t63 167.5t24 266t-24 266.5t-63 168t-90.5 87.5t-106.5 25q-54 0 -105 -25t-90 -87.5t-62 -168t-23 -266.5z" /> +<glyph unicode="1" d="M169 1099l452 384h207v-1294h267v-189h-820v189h300v864q0 50 4 105l-213 -178q-13 -11 -27 -15t-28 -4q-20 0 -37 8.5t-25 19.5z" /> +<glyph unicode="2" d="M86 0v84q0 26 11 53.5t34 50.5l450 451q56 57 100.5 109.5t74.5 103.5t46 104t16 111q0 53 -15.5 93.5t-44 68t-68 41.5t-88.5 14q-91 0 -150 -46t-82 -124q-11 -39 -34 -56t-57 -17q-15 0 -34 3l-133 24q15 106 59 186.5t110 134.5t151.5 81t183.5 27q102 0 187.5 -30 t146 -85.5t94 -133.5t33.5 -173q0 -82 -24 -151.5t-64.5 -133t-94.5 -123t-114 -120.5l-334 -341q49 14 96.5 22t90.5 8h380q41 0 65 -23.5t24 -60.5v-152h-1016z" /> +<glyph unicode="3" d="M92 376l112 46q29 12 58 12q27 0 48 -11t32 -33q18 -36 40 -70.5t53 -62t72.5 -44t98.5 -16.5q65 0 113 21t80 54.5t48 75t16 83.5q0 53 -11 96.5t-47 74.5t-103 48.5t-180 17.5v180q93 1 154.5 17.5t98 45.5t51 70t14.5 90q0 105 -57.5 159t-156.5 54 q-90 0 -149.5 -47.5t-83.5 -122.5q-12 -39 -33.5 -56t-56.5 -17q-16 0 -35 3l-133 24q15 106 59.5 186.5t110.5 134.5t151.5 81t183.5 27q102 0 184.5 -29t141 -81t89.5 -121.5t31 -150.5q0 -71 -15.5 -124.5t-46 -93.5t-74 -67.5t-98.5 -46.5q133 -42 198.5 -128t65.5 -216 q0 -111 -41 -195.5t-110.5 -142.5t-161 -87.5t-194.5 -29.5q-112 0 -194.5 25.5t-144 75.5t-104.5 123t-74 168z" /> +<glyph unicode="4" d="M24 545l701 937h240v-924h186v-146q0 -20 -13.5 -35.5t-38.5 -15.5h-134v-361h-222v361h-624q-26 0 -45.5 16t-24.5 40zM293 558h450v484q0 33 2.5 71t7.5 79z" /> +<glyph unicode="5" d="M78 158l78 107q25 35 65 35q26 0 52 -16.5t61 -36t81 -35.5t111 -16q70 0 123 22.5t88.5 63t53.5 96t18 121.5q0 121 -70 189t-207 68q-108 0 -216 -39l-157 45l123 719h731v-108q0 -54 -34.5 -88t-114.5 -34h-407l-54 -309q100 20 184 21q117 0 205.5 -35t148.5 -96.5 t91 -144t31 -177.5q0 -118 -41.5 -215t-115 -166.5t-174.5 -107t-220 -37.5q-70 0 -132.5 14t-117 38t-101 55.5t-83.5 66.5z" /> +<glyph unicode="6" d="M89 504q0 104 42.5 214t131.5 229l353 474q18 25 54 42.5t82 17.5h225l-439 -538q-14 -17 -27 -32.5t-26 -31.5q43 22 93 34t108 12q84 0 163.5 -28t140 -83.5t97 -138.5t36.5 -194q0 -103 -37.5 -193.5t-106.5 -158.5t-165.5 -106.5t-213.5 -38.5q-119 0 -213 37.5 t-160.5 106t-102 164t-35.5 212.5zM332 465q0 -61 17 -112t50 -87t82 -56t114 -20q60 0 111 20.5t87 57.5t56.5 86.5t20.5 108.5q0 63 -19.5 114t-55 86t-86 53.5t-110.5 18.5t-109.5 -20.5t-84.5 -56.5t-54 -86t-19 -107z" /> +<glyph unicode="7" d="M98 1310v171h1024v-110q0 -49 -10.5 -79t-20.5 -51l-561 -1155q-17 -36 -48.5 -61t-86.5 -25h-183l573 1132q36 70 80 119h-708q-24 0 -41.5 17.5t-17.5 41.5z" /> +<glyph unicode="8" d="M80 416q0 131 64.5 221.5t200.5 134.5q-109 45 -162.5 128t-53.5 200q0 84 34.5 156.5t96 126.5t147 84t187.5 30t187.5 -30t147 -84t96 -126.5t34.5 -156.5q0 -117 -54.5 -200t-161.5 -128q136 -44 200.5 -134.5t64.5 -221.5q0 -98 -37.5 -178t-105 -136.5t-162 -87 t-209.5 -30.5t-209.5 30.5t-162 87t-105 136t-37.5 178.5zM340 420q0 -51 16.5 -95t48.5 -76t79.5 -50t109.5 -18t109.5 18t79.5 50t48.5 76t16.5 95q0 122 -67.5 184.5t-186.5 62.5t-186.5 -62.5t-67.5 -184.5zM376 1096q0 -44 10.5 -85.5t36.5 -74t68 -52t103 -19.5 t103 19.5t68 52t36.5 74t10.5 85.5q0 42 -13.5 79.5t-40 67t-67.5 47t-97 17.5t-97 -17.5t-68.5 -47t-40 -67t-12.5 -79.5z" /> +<glyph unicode="9" d="M133 1017q0 99 37 186t103.5 152.5t159.5 103.5t206 38q114 0 204.5 -36t154.5 -100.5t98 -154.5t34 -197q0 -69 -11.5 -130.5t-33.5 -118.5t-53 -110.5t-68 -107.5l-339 -484q-17 -25 -51.5 -41.5t-78.5 -16.5h-233l460 574q17 22 32.5 42.5t29.5 40.5 q-51 -33 -112 -49.5t-129 -16.5q-77 0 -151 26.5t-131.5 80.5t-92.5 133t-35 186zM386 1036q0 -124 64 -189t182 -65q61 0 108.5 19.5t80.5 53.5t50 80t17 99q0 60 -18.5 108t-52.5 80.5t-80.5 50t-101.5 17.5q-57 0 -103.5 -19t-78.5 -52.5t-49.5 -80t-17.5 -102.5z" /> +<glyph unicode=":" horiz-adv-x="542" d="M116 139q0 32 11.5 60.5t32.5 49t50 33t61 12.5t60.5 -12.5t49 -33t33 -49t12.5 -60.5q0 -33 -12.5 -61t-33 -48.5t-49 -32t-60.5 -11.5q-33 0 -61.5 11.5t-49.5 32t-32.5 48.5t-11.5 61zM116 869q0 32 11.5 60.5t32.5 49t50 33t61 12.5t60.5 -12.5t49 -33t33 -49 t12.5 -60.5q0 -33 -12.5 -61t-33 -48.5t-49 -32t-60.5 -11.5q-33 0 -61.5 11.5t-49.5 32t-32.5 48.5t-11.5 61z" /> +<glyph unicode=";" horiz-adv-x="542" d="M116 869q0 32 11.5 60.5t32.5 49t50 33t61 12.5t60.5 -12.5t49 -33t33 -49t12.5 -60.5q0 -33 -12.5 -61t-33 -48.5t-49 -32t-60.5 -11.5q-33 0 -61.5 11.5t-49.5 32t-32.5 48.5t-11.5 61zM123 156q0 29 10.5 53.5t30 43.5t47.5 30t60 11q39 0 68 -14t48.5 -38t28.5 -55 t9 -66q0 -49 -15 -103.5t-43.5 -108.5t-70.5 -105.5t-96 -94.5l-44 40q-18 15 -19 38q0 8 5.5 18.5t14.5 18.5l27.5 30t32.5 41t30 50t20 58q-32 0 -58.5 12t-45.5 32.5t-29.5 48t-10.5 60.5z" /> +<glyph unicode="<" d="M142 639v102l811 423v-180q0 -20 -10 -37t-34 -29l-371 -191q-24 -12 -50 -21t-56 -16q30 -7 56 -15.5t50 -21.5l371 -191q24 -12 34 -29t10 -38v-180z" /> +<glyph unicode="=" d="M139 414v188h908v-188h-908zM139 775v188h908v-188h-908z" /> +<glyph unicode=">" d="M234 215v180q0 20 10.5 37.5t34.5 29.5l371 191q45 23 106 37q-30 7 -56 16t-50 21l-371 191q-24 12 -34.5 29t-10.5 37v180l812 -423v-102z" /> +<glyph unicode="?" horiz-adv-x="861" d="M38 1347q35 31 76.5 58.5t89.5 48t104.5 32t121.5 11.5q89 0 162.5 -24.5t125.5 -70t80.5 -110t28.5 -144.5q0 -78 -22.5 -135t-56.5 -99t-74 -72.5t-76 -57.5t-62 -53t-31 -59l-24 -150h-173l-17 167q-1 5 -1 8.5v9.5q0 45 22.5 78t56 62.5t72.5 57t73 59.5t56.5 73 t22.5 97q0 37 -14 66t-38.5 50t-59 32t-73.5 11q-58 0 -99 -12.5t-69 -28.5t-47.5 -29t-34.5 -13q-37 0 -54 31zM231 139q0 32 12 60.5t33 49t49.5 33t61.5 12.5q32 0 60.5 -12.5t49 -33t33 -49t12.5 -60.5q0 -33 -12.5 -61t-33 -48.5t-49 -32t-60.5 -11.5q-33 0 -61.5 11.5 t-49.5 32t-33 48.5t-12 61z" /> +<glyph unicode="@" horiz-adv-x="1684" d="M69 597q0 110 28 213t80 194t126 166.5t164 130t195 84.5t220 30q145 0 278.5 -48.5t236.5 -139t164.5 -221t61.5 -294.5q0 -110 -32 -205.5t-90 -166.5t-136.5 -111.5t-170.5 -40.5q-70 0 -124.5 33t-76.5 106q-60 -74 -127.5 -106t-145.5 -32q-65 0 -112.5 22.5 t-79.5 62t-48 93.5t-16 117q0 58 15 118.5t44.5 116t74 104t105 85t135 57.5t166.5 21q79 0 135 -12t108 -35l-98 -380q-16 -66 -16 -109q0 -31 7.5 -51.5t20.5 -33t31 -17t40 -4.5q43 0 81.5 27t67 76.5t45.5 117t17 147.5q0 133 -41.5 234.5t-116 169.5t-177.5 102 t-226 34q-134 0 -249.5 -50.5t-200 -138.5t-132 -208t-47.5 -258q0 -168 52 -295.5t143.5 -213t214.5 -128.5t267 -43q79 0 147.5 8.5t126 23.5t104.5 34t84 41q20 11 34 11q30 0 42 -33l35 -91q-106 -70 -248.5 -114t-324.5 -44q-185 0 -343 58.5t-273 167.5t-180 265.5 t-65 352.5zM659 490q0 -66 28.5 -102t82.5 -36q27 0 54 8.5t51.5 29.5t45 55.5t33.5 86.5l75 289q-33 6 -67 6q-63 0 -119 -27.5t-96 -74.5t-64 -108t-24 -127z" /> +<glyph unicode="A" horiz-adv-x="1454" d="M6 0l582 1481h281l582 -1481h-213q-36 0 -59 18t-33 44l-111 303h-613l-111 -303q-8 -24 -32 -43t-59 -19h-214zM493 559h472l-181 493q-12 33 -27 77.5t-29 96.5q-14 -52 -28 -97.5t-27 -78.5z" /> +<glyph unicode="B" horiz-adv-x="1334" d="M150 0v1481h510q145 0 248.5 -28t169.5 -79t96.5 -123.5t30.5 -164.5q0 -52 -15 -99.5t-47.5 -89t-82 -75.5t-118.5 -57q305 -69 305 -330q0 -94 -35.5 -174t-104.5 -137.5t-169 -90.5t-229 -33h-559zM425 215h280q77 0 128.5 18.5t82.5 49t45 71.5t14 87 q0 48 -15.5 86.5t-48 66t-84 41.5t-124.5 14h-278v-434zM425 840h220q140 0 213 51t73 163q0 116 -65.5 165t-205.5 49h-235v-428z" /> +<glyph unicode="C" horiz-adv-x="1373" d="M63 740q0 167 55.5 306t156 239t240 156t308.5 56q165 0 288.5 -52.5t211.5 -139.5l-92 -128q-8 -12 -21 -21.5t-35 -9.5q-24 0 -48.5 18.5t-62.5 40t-96 40t-147 18.5q-104 0 -191.5 -36.5t-150.5 -104t-98.5 -164.5t-35.5 -218q0 -125 35.5 -222t96 -163.5t142 -102 t176.5 -35.5q56 0 101.5 6t84 19.5t72.5 34.5t68 52q10 9 21.5 14.5t24.5 5.5q23 0 39 -17l109 -118q-90 -112 -221.5 -171t-316.5 -59q-165 0 -296.5 56t-224.5 156.5t-143 239.5t-50 304z" /> +<glyph unicode="D" horiz-adv-x="1530" d="M150 0v1481h565q168 0 306 -55t236.5 -152.5t152.5 -234t54 -299.5t-54 -299t-152.5 -234t-236.5 -152.5t-306 -54.5h-565zM427 219h288q109 0 195 36t146.5 103t93.5 163.5t33 218.5t-33 219t-93.5 164t-147 103t-194.5 36h-288v-1043z" /> +<glyph unicode="E" horiz-adv-x="1172" d="M150 0v1481h933v-219h-656v-411h517v-212h-517v-419h656v-220h-933z" /> +<glyph unicode="F" horiz-adv-x="1149" d="M150 0v1481h933v-219h-656v-439h554v-220h-554v-603h-277z" /> +<glyph unicode="G" horiz-adv-x="1480" d="M63 740q0 167 54.5 306.5t154.5 239.5t242 155.5t320 55.5q181 0 313.5 -53.5t224.5 -139.5l-80 -125q-24 -38 -62 -38q-25 0 -50 16q-33 19 -67.5 38.5t-76 34t-93 24t-119.5 9.5q-110 0 -198 -37t-150.5 -105.5t-96.5 -165t-34 -215.5q0 -128 36 -227.5t100.5 -168.5 t153.5 -105t194 -36q93 0 162.5 17t131.5 46v270h-185q-27 0 -42 14.5t-15 36.5v155h492v-599q-56 -41 -117 -71t-130 -49.5t-148 -29t-170 -9.5q-162 0 -298 56t-235.5 156.5t-155.5 239.5t-56 304z" /> +<glyph unicode="H" horiz-adv-x="1548" d="M150 0v1481h277v-637h694v637h278v-1481h-278v647h-694v-647h-277z" /> +<glyph unicode="I" horiz-adv-x="643" d="M183 0v1481h277v-1481h-277z" /> +<glyph unicode="J" horiz-adv-x="894" d="M39 11l14 164q2 23 17 36.5t44 13.5q17 0 45 -7t71 -7q58 0 103.5 17t75.5 53.5t45.5 95.5t15.5 143v961h275v-955q0 -125 -30.5 -225t-91.5 -171t-152 -108.5t-212 -37.5q-55 0 -108.5 6.5t-111.5 20.5z" /> +<glyph unicode="K" horiz-adv-x="1429" d="M159 0v1482h275v-622h65q39 0 64.5 11t43.5 34l409 517q26 33 54 46t71 13h237l-498 -616q-24 -29 -45.5 -48t-46.5 -32q34 -12 61.5 -34.5t52.5 -57.5l514 -693h-244q-49 0 -73 14t-40 40l-419 547q-20 27 -46 38.5t-73 11.5h-87v-651h-275z" /> +<glyph unicode="L" horiz-adv-x="1058" d="M150 0v1481h275v-1254h593v-227h-868z" /> +<glyph unicode="M" horiz-adv-x="1904" d="M150 0v1481h207q18 0 31.5 -1t24.5 -5.5t20 -13.5t18 -24l442 -823q17 -33 32 -68t29 -71q14 37 29.5 73t33.5 68l438 821q8 15 17 24t19.5 13.5t24 5.5t31.5 1h208v-1481h-243v956q0 27 2 59t5 64l-448 -839q-15 -29 -39.5 -45t-57.5 -16h-38q-33 0 -57.5 16t-39.5 45 l-454 842q4 -34 5.5 -66t1.5 -60v-956h-242z" /> +<glyph unicode="N" horiz-adv-x="1548" d="M150 0v1481h144q18 0 30.5 -1.5t22 -6.5t19 -13.5t20.5 -22.5l777 -991q-4 36 -5.5 70.5t-1.5 64.5v900h243v-1481h-143q-33 0 -54 10t-42 37l-774 986q3 -33 4.5 -65t1.5 -59v-909h-242z" /> +<glyph unicode="O" horiz-adv-x="1637" d="M69 740q0 163 54 302t153 240t237.5 158t306.5 57t306.5 -57.5t236.5 -158t152.5 -239.5t54.5 -302t-54.5 -301.5t-152.5 -240t-236.5 -158t-306.5 -56.5t-306.5 56.5t-237.5 158t-153 240.5t-54 301zM350 740q0 -122 33 -218.5t94 -163.5t148 -103t195 -36 q109 0 195.5 36t147 103t92.5 163.5t32 218.5t-32 219t-92.5 164.5t-147 103.5t-195.5 36t-195.5 -36t-147.5 -103.5t-94 -164.5t-33 -219z" /> +<glyph unicode="P" horiz-adv-x="1280" d="M159 0v1481h482q148 0 257 -35t179.5 -97.5t104 -149.5t33.5 -190q0 -108 -35.5 -197.5t-107.5 -154t-179.5 -100.5t-251.5 -36h-207v-521h-275zM434 736h207q76 0 132 19t93 54.5t55.5 86t18.5 113.5q0 59 -18.5 107t-55.5 82t-93 52t-132 18h-207v-532z" /> +<glyph unicode="Q" horiz-adv-x="1637" d="M69 740q0 163 54 302t153 240t237.5 158t306.5 57t306.5 -57.5t236.5 -158t152.5 -239.5t54.5 -302q0 -99 -20.5 -189.5t-59 -169.5t-94 -145t-125.5 -116l376 -410h-228q-49 0 -88.5 13.5t-72.5 49.5l-217 239q-52 -14 -106.5 -21t-114.5 -7q-168 0 -306.5 56.5 t-237.5 158t-153 240.5t-54 301zM350 740q0 -122 33 -218.5t94 -163.5t148 -103t195 -36q109 0 195.5 36t147 103t92.5 163.5t32 218.5t-32 219t-92.5 164.5t-147 103.5t-195.5 36t-195.5 -36t-147.5 -103.5t-94 -164.5t-33 -219z" /> +<glyph unicode="R" horiz-adv-x="1341" d="M159 0v1481h451q152 0 260 -31.5t177 -87.5t101.5 -134.5t32.5 -172.5q0 -75 -22 -141.5t-63.5 -121t-102.5 -95.5t-139 -65q52 -30 90 -85l371 -547h-248q-36 0 -61 14.5t-42 40.5l-312 474q-17 27 -38 38.5t-62 11.5h-118v-579h-275zM434 776h172q78 0 136 19.5t95 54 t55.5 81.5t18.5 103q0 113 -74 173.5t-227 60.5h-176v-492z" /> +<glyph unicode="S" horiz-adv-x="1098" d="M37 178l80 132q11 14 27 24t35 10q26 0 55.5 -21t70 -46.5t95.5 -46.5t131 -21q118 0 182.5 56t64.5 160q0 58 -29 95t-77 62t-109.5 42.5t-125 38t-125 49t-109.5 75t-77.5 115.5t-29.5 170q0 81 32.5 158t94.5 136t152 95t206 36q131 0 241.5 -41t188.5 -115l-68 -130 q-11 -23 -26 -32t-35 -9t-46 16t-61 35.5t-81.5 35.5t-109.5 16q-57 0 -100 -14t-72 -38.5t-43.5 -59t-14.5 -75.5q0 -52 29.5 -86.5t77.5 -59.5t109.5 -44t125.5 -41t125.5 -51.5t109.5 -74t77 -109t29 -156.5q0 -100 -34 -188t-100 -153t-161.5 -102t-218.5 -37 q-71 0 -139.5 13.5t-131.5 39t-117.5 61.5t-97.5 80z" /> +<glyph unicode="T" horiz-adv-x="1218" d="M25 1254v227h1168v-227h-445v-1254h-276v1254h-447z" /> +<glyph unicode="U" horiz-adv-x="1490" d="M132 594v887h276v-886q0 -85 23 -153.5t66 -117.5t105.5 -75.5t142.5 -26.5t143 26.5t106.5 75t66.5 117t23 153.5v887h276v-887q0 -132 -42.5 -244t-122.5 -193.5t-193.5 -127t-256.5 -45.5q-142 0 -255.5 45.5t-193 127t-122 193.5t-42.5 244z" /> +<glyph unicode="V" horiz-adv-x="1454" d="M4 1481h222q36 0 58.5 -17.5t33.5 -45.5l349 -903q17 -44 33 -96.5t30 -111.5q24 118 58 208l348 903q9 24 32.5 43.5t58.5 19.5h222l-598 -1481h-249z" /> +<glyph unicode="W" horiz-adv-x="2143" d="M12 1481h232q36 0 60 -17t32 -46l252 -886q9 -33 16.5 -71t15.5 -81q8 43 17.5 81.5t20.5 70.5l291 886q8 24 32.5 43.5t58.5 19.5h81q36 0 59.5 -17t32.5 -46l289 -886q23 -66 39 -145q7 40 15 77t16 68l252 886q7 26 31.5 44.5t59.5 18.5h216l-460 -1481h-249 l-323 1012q-6 19 -13 41.5t-13 48.5q-6 -26 -12.5 -48.5t-12.5 -41.5l-327 -1012h-249z" /> +<glyph unicode="X" horiz-adv-x="1390" d="M12 0l493 762l-472 719h274q29 0 41.5 -8t23.5 -25l337 -544q5 13 11 26t14 26l308 487q23 38 59 38h264l-477 -708l490 -773h-275q-28 0 -45 14.5t-28 32.5l-343 567q-4 -12 -9 -22.5t-10 -20.5l-329 -524q-11 -17 -27.5 -32t-41.5 -15h-258z" /> +<glyph unicode="Y" horiz-adv-x="1340" d="M-7 1481h243q36 0 56.5 -17.5t35.5 -44.5l271 -494q24 -44 41 -83.5t32 -77.5q13 39 30 78.5t40 82.5l270 494q11 23 33.5 42.5t57.5 19.5h244l-539 -906v-575h-276v575z" /> +<glyph unicode="Z" horiz-adv-x="1263" d="M63 0v109q0 20 7.5 39t18.5 35l762 1079h-739v219h1095v-102q0 -47 -26 -86l-760 -1073h768v-220h-1126z" /> +<glyph unicode="[" horiz-adv-x="614" d="M118 -315v1899h420v-99q0 -27 -19 -46t-49 -19h-141v-1572h141q30 0 49 -18.5t19 -45.5v-99h-420z" /> +<glyph unicode="\" horiz-adv-x="799" d="M-29 1522h109q45 0 78 -23t51 -66l597 -1530h-107q-40 0 -78 23.5t-56 70.5z" /> +<glyph unicode="]" horiz-adv-x="614" d="M77 -216q0 27 19 45.5t48 18.5h142v1572h-142q-30 0 -48.5 19t-18.5 46v99h420v-1899h-420v99z" /> +<glyph unicode="^" d="M125 796l382 685h164l382 -685h-186q-24 0 -38.5 12t-24.5 30l-163 296q-15 29 -28 54t-21 52q-8 -27 -19.5 -53t-26.5 -53l-160 -296q-9 -17 -24.5 -29.5t-42.5 -12.5h-194z" /> +<glyph unicode="_" horiz-adv-x="806" d="M0 -137h807v-164h-807v164z" /> +<glyph unicode="`" horiz-adv-x="653" d="M-1 1497h237q42 0 61.5 -14t35.5 -40l146 -249h-144q-29 0 -47 7.5t-36 28.5z" /> +<glyph unicode="a" horiz-adv-x="1072" d="M83 268q0 59 31 117t104 105t193.5 77.5t300.5 34.5v62q0 105 -44.5 155.5t-129.5 50.5q-61 0 -102.5 -14t-71.5 -32t-55.5 -32.5t-56.5 -14.5q-26 0 -44.5 13.5t-29.5 32.5l-46 81q181 166 437 166q92 0 164.5 -30t122.5 -84t76 -128.5t26 -163.5v-664h-113 q-36 0 -56.5 11t-30.5 43l-23 75q-40 -36 -78.5 -63t-79 -45.5t-87 -27.5t-102.5 -9q-67 0 -123 17.5t-96.5 53.5t-63 89.5t-22.5 123.5zM325 282q0 -67 39.5 -95.5t102.5 -28.5q39 0 71.5 7t62 21.5t56.5 35.5t55 49v178q-111 -5 -185 -19t-119.5 -35.5t-64 -50.5 t-18.5 -62z" /> +<glyph unicode="b" horiz-adv-x="1167" d="M138 0v1522h253v-600q62 67 141 106t185 39q86 0 157 -35.5t123 -103t80 -166.5t28 -228q0 -118 -32 -218.5t-90.5 -174t-142 -115t-187.5 -41.5q-48 0 -88 9.5t-72.5 27t-61 42.5t-53.5 56l-11 -71q-6 -27 -21 -38t-41 -11h-167zM391 272q43 -53 94 -74t110 -21 q57 0 103 21.5t78.5 65.5t50 111t17.5 159t-15 156t-42.5 104t-67 58t-89.5 18q-79 0 -135 -33t-104 -94v-471z" /> +<glyph unicode="c" horiz-adv-x="976" d="M65 527q0 116 33 215t97.5 171t160 113t218.5 41q118 0 206.5 -38t159.5 -108l-67 -93q-11 -14 -21.5 -22t-31.5 -8q-19 0 -37.5 11.5t-44 26.5t-61 26.5t-87.5 11.5q-67 0 -117 -24t-83.5 -69t-49.5 -109t-16 -145q0 -84 17.5 -149.5t51.5 -110t82 -67.5t109 -23 q60 0 97.5 15t63 33t44.5 32.5t42 14.5q31 0 47 -23l72 -92q-42 -49 -91 -82.5t-101.5 -53.5t-109 -28t-111.5 -8q-97 0 -183.5 36t-150.5 106t-101 170.5t-37 229.5z" /> +<glyph unicode="d" horiz-adv-x="1167" d="M62 522q0 117 32 217.5t91.5 174t142.5 115t186 41.5q88 0 150.5 -28t111.5 -75v555h253v-1522h-155q-49 0 -64 46l-20 101q-33 -37 -69 -66.5t-77.5 -51t-89 -33t-102.5 -11.5q-86 0 -158 35.5t-123.5 104t-80 168.5t-28.5 229zM324 522q0 -92 14.5 -156t42.5 -104.5 t68 -58.5t89 -18q79 0 134 33t104 93v471q-43 52 -93.5 74t-109.5 22q-57 0 -103.5 -21.5t-79 -65t-49.5 -111t-17 -158.5z" /> +<glyph unicode="e" horiz-adv-x="1094" d="M65 548q0 108 34.5 202.5t99.5 164.5t158.5 111t211.5 41q99 0 183 -31.5t144 -92.5t94 -149.5t34 -202.5q0 -29 -2.5 -48t-9 -29.5t-18 -15t-28.5 -4.5h-650q11 -162 87 -238t201 -76q61 0 106 14.5t78 32t58 31.5t49 14q15 0 26.5 -6t19.5 -17l74 -92 q-42 -49 -94.5 -82.5t-109 -53.5t-115.5 -28t-114 -8q-110 0 -204 36t-164 107.5t-109.5 176.5t-39.5 243zM322 646h475q0 49 -13.5 92.5t-41 76.5t-70 52t-98.5 19q-111 0 -173 -62.5t-79 -177.5z" /> +<glyph unicode="f" horiz-adv-x="717" d="M24 938v103h156v78q0 90 27 162t78 122t123.5 76.5t163.5 26.5q73 0 136 -19l-6 -127q-2 -30 -27.5 -37t-59.5 -7q-45 0 -80 -10t-59.5 -34t-37.5 -63.5t-13 -97.5v-70h273v-180h-265v-861h-253v860l-91 14q-30 5 -47.5 20.5t-17.5 43.5z" /> +<glyph unicode="g" horiz-adv-x="1059" d="M33 -92q0 74 45 124t125 80q-39 22 -62.5 57.5t-23.5 92.5q0 24 8 49t25 49.5t42.5 46.5t60.5 39q-80 43 -125.5 115t-45.5 168q0 78 31 141t87 107.5t132.5 68t166.5 23.5q68 0 127 -14t108 -40h302v-94q0 -24 -12 -37.5t-42 -18.5l-94 -17q10 -27 15.5 -56.5t5.5 -62.5 q0 -78 -31 -141t-86 -107t-130 -68t-163 -24q-59 0 -116 11q-49 -30 -49 -66q0 -32 29 -47t76.5 -21t108 -7.5t124 -6.5t124 -18t108 -40.5t77 -75t29.5 -122.5q0 -70 -34.5 -135.5t-99.5 -116.5t-159 -82.5t-215 -31.5q-120 0 -208 23t-146 61.5t-86.5 89t-28.5 104.5z M252 -59q0 -28 14 -52t44 -41.5t78 -27t118 -9.5q71 0 122 10.5t84 29.5t48.5 45t15.5 57t-18.5 50.5t-50 30t-74 15.5t-90 7.5t-98.5 5.5t-98 9q-43 -24 -69 -56t-26 -74zM312 723q0 -37 12 -68.5t35 -54.5t58.5 -36t81.5 -13q47 0 81.5 13t58 35.5t35 54t11.5 69.5 q0 78 -46.5 123.5t-139.5 45.5t-140 -45.5t-47 -123.5z" /> +<glyph unicode="h" horiz-adv-x="1164" d="M135 0v1522h253v-585q61 58 135 94t173 36q86 0 152.5 -29t111.5 -82t68 -126t23 -161v-669h-253v669q0 96 -44.5 148.5t-133.5 52.5q-66 0 -123.5 -29.5t-108.5 -80.5v-760h-253z" /> +<glyph unicode="i" horiz-adv-x="555" d="M119 1357q0 34 12.5 63.5t34 51t51 34.5t62.5 13q34 0 63.5 -13t51.5 -34.5t35 -51t13 -63.5q0 -33 -13 -61.5t-35 -50t-52 -34.5t-63 -13t-62.5 13t-51 34.5t-34 50t-12.5 61.5zM152 0v1051h252v-1051h-252z" /> +<glyph unicode="j" horiz-adv-x="550" d="M-59 -349l8 136q3 20 16 26t51 6t64 7.5t42 24.5t23 44.5t7 68.5v1087h252v-1087q0 -69 -17.5 -129t-57 -105.5t-103.5 -72t-156 -26.5q-36 0 -67 5t-62 15zM119 1357q0 34 12.5 63.5t34 51t51 34.5t62.5 13q34 0 63.5 -13t51.5 -34.5t35 -51t13 -63.5q0 -33 -13 -61.5 t-35 -50t-52 -34.5t-63 -13t-62.5 13t-51 34.5t-34 50t-12.5 61.5z" /> +<glyph unicode="k" horiz-adv-x="1129" d="M138 0v1522h253v-872h47q26 0 40.5 7.5t30.5 26.5l261 323q17 20 36.5 32t51.5 12h232l-327 -391q-17 -22 -35.5 -39.5t-40.5 -30.5q22 -15 38 -35.5t33 -44.5l350 -510h-228q-30 0 -50.5 10t-36.5 35l-268 398q-15 24 -30.5 31t-45.5 7h-58v-481h-253z" /> +<glyph unicode="l" horiz-adv-x="555" d="M152 0v1522h252v-1522h-252z" /> +<glyph unicode="m" horiz-adv-x="1724" d="M135 0v1051h155q49 0 64 -46l17 -78q28 31 58 56.5t64 44t73.5 29t86.5 10.5q99 0 163.5 -54t95.5 -143q25 52 62 89.5t81 61t93.5 35t99.5 11.5q87 0 154.5 -26.5t114 -78t70.5 -125t24 -168.5v-669h-253v669q0 100 -44 150.5t-129 50.5q-39 0 -72.5 -13t-58.5 -38 t-39.5 -63t-14.5 -87v-669h-254v669q0 105 -42 153t-125 48q-54 0 -102 -27t-89 -74v-769h-253z" /> +<glyph unicode="n" horiz-adv-x="1164" d="M135 0v1051h155q49 0 64 -46l18 -83q32 33 67 59.5t74.5 46t84.5 29.5t98 10q86 0 152.5 -29t111.5 -82t68 -126t23 -161v-669h-253v669q0 96 -44.5 148.5t-133.5 52.5q-66 0 -123.5 -29.5t-108.5 -80.5v-760h-253z" /> +<glyph unicode="o" horiz-adv-x="1164" d="M62 527q0 124 37.5 224.5t105.5 170t164.5 107.5t214.5 38t213.5 -38t163 -107.5t104.5 -170t37 -224.5q0 -125 -37 -225t-104.5 -171t-163.5 -108.5t-213 -37.5q-118 0 -214.5 37.5t-164.5 108.5t-105.5 171t-37.5 225zM324 525q0 -169 63.5 -257.5t196.5 -88.5 q131 0 194 88t63 258t-63 259t-194 89q-133 0 -196.5 -89.5t-63.5 -258.5z" /> +<glyph unicode="p" horiz-adv-x="1158" d="M135 -343v1394h155q25 0 42 -11.5t22 -34.5l21 -98q63 73 145.5 118t193.5 45q86 0 157 -36t123 -104t80 -167.5t28 -228.5q0 -118 -32 -218.5t-90.5 -174t-142 -115t-187.5 -41.5q-89 0 -151 27t-111 75v-430h-253zM388 272q43 -53 93.5 -74t109.5 -21q57 0 103.5 21.5 t79 65.5t50 111t17.5 159t-15 156t-42.5 104t-67 58t-89.5 18q-79 0 -135 -33t-104 -94v-471z" /> +<glyph unicode="q" horiz-adv-x="1167" d="M62 522q0 117 32 217.5t91.5 174t142.5 115t186 41.5q49 0 89.5 -8.5t75 -25t63 -39t55.5 -51.5l13 59q5 24 22.5 35t41.5 11h155v-1394h-253v475q-32 -34 -67 -61t-75 -46t-85 -29.5t-97 -10.5q-86 0 -158 35.5t-123.5 104t-80 168.5t-28.5 229zM324 522 q0 -92 14.5 -156t42.5 -104.5t68 -58.5t89 -18q79 0 134 33t104 93v471q-43 52 -93.5 74t-109.5 22q-57 0 -103.5 -21.5t-79 -65t-49.5 -111t-17 -158.5z" /> +<glyph unicode="r" horiz-adv-x="836" d="M135 0v1051h149q39 0 54 -14.5t20 -49.5l16 -127q56 97 132 153.5t170 56.5q78 0 129 -36l-33 -189q-3 -18 -13 -26t-28 -8q-15 0 -41.5 7t-71.5 7q-79 0 -135 -43.5t-95 -127.5v-654h-253z" /> +<glyph unicode="s" horiz-adv-x="894" d="M43 113l58 96q11 17 26.5 26.5t39.5 9.5t44.5 -13.5t48.5 -29t65 -28.5t95 -13q45 0 77 10.5t53 28t31 40.5t10 48q0 37 -22 60.5t-58.5 41t-83 31t-95 30t-95.5 38.5t-83 56t-58 83t-22 118q0 65 25.5 123.5t75 102t124 69.5t171.5 26q109 0 198 -36t148 -94l-57 -91 q-10 -16 -21.5 -23t-28.5 -7q-18 0 -39.5 10.5t-49 23t-63 23t-83.5 10.5q-75 0 -118 -32t-43 -83q0 -34 22 -57t58.5 -40.5t82.5 -31t94 -30t94.5 -37.5t82.5 -53.5t58 -77.5t22 -108q0 -76 -27.5 -140t-80.5 -110.5t-131.5 -72.5t-179.5 -26q-54 0 -106 9.5t-99.5 27 t-88 41t-71.5 51.5z" /> +<glyph unicode="t" horiz-adv-x="792" d="M40 914v101l169 27l53 287q4 20 19 31.5t37 11.5h132v-331h276v-180h-276v-569q0 -49 24.5 -77t65.5 -28q24 0 39.5 6t27 12t21 11.5t18.5 5.5q11 0 18.5 -5.5t15.5 -16.5l76 -123q-55 -46 -127 -69.5t-149 -23.5q-136 0 -209.5 77t-73.5 213v587h-107q-20 0 -35 13.5 t-15 39.5z" /> +<glyph unicode="u" horiz-adv-x="1164" d="M114 383v668h253v-668q0 -96 44.5 -149t133.5 -53q66 0 123 29.5t108 80.5v760h253v-1051h-155q-49 0 -64 46l-17 84q-33 -33 -68 -60t-74.5 -46t-85 -29.5t-97.5 -10.5q-86 0 -152 29t-111 82t-68 126.5t-23 161.5z" /> +<glyph unicode="v" horiz-adv-x="1092" d="M14 1051h210q28 0 47 -13.5t26 -33.5l203 -562q17 -49 29 -96t21 -94q9 47 21 94t30 96l208 562q7 20 25.5 33.5t44.5 13.5h199l-416 -1051h-230z" /> +<glyph unicode="w" horiz-adv-x="1619" d="M7 1051h201q29 0 48 -13.5t25 -33.5l150 -562q12 -46 20 -90t15 -88q11 44 24 88t27 90l174 564q6 20 24.5 33.5t43.5 13.5h111q28 0 46.5 -13.5t24.5 -33.5l172 -574q13 -44 24 -85.5t21 -83.5q7 44 16 88t22 91l156 562q5 20 24.5 33.5t44.5 13.5h192l-333 -1051h-204 q-33 0 -47 45l-189 607q-9 30 -17 60t-13 60q-6 -31 -13 -61t-17 -61l-191 -605q-14 -45 -55 -45h-194z" /> +<glyph unicode="x" horiz-adv-x="1105" d="M25 0l359 542l-345 509h244q28 0 41 -8t23 -25l220 -351q5 17 13 34.5t19 34.5l177 277q12 19 25.5 28.5t33.5 9.5h232l-346 -498l360 -553h-243q-28 0 -45 14.5t-28 32.5l-223 366q-9 -37 -26 -62l-197 -304q-11 -17 -27.5 -32t-40.5 -15h-226z" /> +<glyph unicode="y" horiz-adv-x="1092" d="M7 1051h221q31 0 47.5 -14.5t24.5 -32.5l224 -545q11 -27 19.5 -55.5t14.5 -57.5q8 30 18 57.5t21 56.5l211 544q8 20 27 33.5t43 13.5h202l-572 -1340q-11 -27 -29 -40.5t-55 -13.5h-188l196 421z" /> +<glyph unicode="z" horiz-adv-x="961" d="M69 0v105q0 17 8 41.5t25 46.5l504 664h-508v194h797v-105q0 -27 -9.5 -52t-23.5 -42l-500 -657h519v-195h-812z" /> +<glyph unicode="{" horiz-adv-x="614" d="M30 561v147q65 0 94 39t29 102q0 48 -7 95.5t-15.5 96t-15 97t-6.5 98.5q0 78 22.5 142t69 110t117.5 71t167 25h55v-113q0 -13 -6 -22.5t-14.5 -16t-17.5 -9.5t-17 -3h-9q-72 0 -109.5 -45t-37.5 -124q0 -56 6 -107.5t12.5 -100.5t13 -96t6.5 -95q0 -39 -11 -74t-32 -63 t-50 -49.5t-66 -31.5q37 -11 66 -32t50 -50t32 -63.5t11 -72.5q0 -48 -6.5 -95.5t-13 -96t-12.5 -100t-6 -108.5q0 -78 37.5 -123t109.5 -45h9q7 0 16.5 -3t18 -9t14.5 -16t6 -24v-111h-55q-96 0 -167 25t-117.5 70.5t-69 109.5t-22.5 142q0 50 6.5 98.5t15 96.5t15.5 96.5 t7 96.5q0 62 -29.5 101.5t-93.5 39.5z" /> +<glyph unicode="|" horiz-adv-x="614" d="M209 -343v1927h197v-1927h-197z" /> +<glyph unicode="}" horiz-adv-x="614" d="M75 -204q0 13 5.5 23.5t14 16.5t18 9t16.5 3h9q72 0 110 45.5t38 122.5q0 56 -6.5 108t-13 100.5t-12.5 96t-6 95.5q0 38 10.5 72.5t31 63.5t50.5 50t67 32q-37 10 -67 31.5t-50.5 49.5t-31 63t-10.5 74q0 48 6 95t12.5 96t13 100.5t6.5 107.5q0 79 -38 124t-110 45h-9 q-7 0 -16.5 3t-18 9.5t-14 16t-5.5 22.5v113h54q96 0 167.5 -25t118 -71t69 -110t22.5 -142q0 -50 -6.5 -98.5t-15.5 -97t-15.5 -96t-6.5 -95.5q0 -62 29 -101.5t94 -39.5v-147q-65 0 -94 -39.5t-29 -101.5q0 -48 6.5 -96.5t15.5 -96.5t15.5 -96.5t6.5 -98.5 q0 -78 -22.5 -142t-69 -109.5t-118 -70.5t-167.5 -25h-54v111z" /> +<glyph unicode="~" d="M100 408q0 79 21 142.5t60.5 109.5t97 70.5t131.5 24.5q54 0 103.5 -14.5t94 -31.5t83.5 -31t72 -14q57 0 89 36.5t32 103.5h203q0 -79 -20.5 -143t-60 -109.5t-97 -70t-131.5 -24.5q-54 0 -103.5 14t-94 31t-83.5 31.5t-72 14.5q-57 0 -89 -37t-32 -103h-204z" /> +<glyph unicode="¡" horiz-adv-x="738" d="M214 913q0 33 12 61t32.5 48.5t49 32.5t61.5 12t61 -12t49 -32.5t33 -48.5t12 -61t-12 -61t-33 -48.5t-49.5 -32.5t-60.5 -12q-33 0 -61.5 12t-49 32.5t-32.5 48.5t-12 61zM253 203q0 93 9 182.5t25 189.5h171q15 -100 24.5 -189.5t9.5 -182.5v-546h-239v546z" /> +<glyph unicode="¢" d="M126 525q0 112 34 208.5t100 168.5t162.5 115t221.5 48l14 161q2 24 20.5 43.5t48.5 19.5h93l-20 -234q81 -14 146.5 -48.5t120.5 -85.5l-66 -90q-10 -14 -20 -21t-31 -7q-14 0 -29.5 6.5t-35.5 17t-44.5 20.5t-57.5 18l-59 -689q54 5 90.5 20t62.5 30.5t45.5 27.5 t40.5 12q31 0 47 -21l69 -90q-36 -42 -79 -72t-90 -50t-98 -30.5t-104 -14.5l-13 -151q-2 -25 -20.5 -44.5t-47.5 -19.5h-93l18 219q-91 13 -169 54.5t-135.5 109.5t-89.5 161t-32 208zM376 525q0 -137 50 -221.5t143 -114.5l59 683q-129 -16 -190.5 -106t-61.5 -241z" /> +<glyph unicode="£" d="M40 614v81q0 35 21.5 60t63.5 25h111v242q0 96 28.5 182.5t87 151.5t146.5 103t207 38q82 0 146.5 -21t115.5 -57t88.5 -84.5t63.5 -104.5l-101 -65q-33 -16 -59 -16q-38 0 -67 34q-19 23 -38 41.5t-41 32t-48.5 20.5t-59.5 7q-105 0 -157.5 -69t-52.5 -192v-243h418 v-100q0 -25 -20 -45.5t-51 -20.5h-347v-198q0 -68 -25.5 -120.5t-69.5 -97.5q76 17 151 17h600v-106q0 -18 -7.5 -38t-22 -36t-34.5 -25.5t-45 -9.5h-982v159q35 8 67 23t56 38t38.5 54t14.5 73v267h-196z" /> +<glyph unicode="¤" d="M113 1039l128 125l153 -153q44 27 94.5 41.5t105.5 14.5q53 0 102 -14t92 -39l156 155l126 -126l-155 -154q27 -44 42 -94.5t15 -105.5q0 -54 -14 -102t-39 -91l156 -156l-128 -126l-154 154q-43 -27 -93.5 -41.5t-105.5 -14.5q-53 0 -102 13.5t-92 39.5l-156 -156 l-126 127l154 153q-27 44 -41.5 94.5t-14.5 105.5q0 54 14 103t39 92zM402 689q0 -39 15 -74t41 -61.5t61 -41.5t75 -15t75.5 15t61.5 41.5t41 61.5t15 74q0 41 -15 76.5t-41 61.5t-61.5 41.5t-75.5 15.5t-75 -15.5t-61 -41.5t-41 -61.5t-15 -76.5z" /> +<glyph unicode="¥" d="M11 1481h210q36 0 58.5 -17t34.5 -45l225 -499q20 -46 32.5 -85t20.5 -77q8 38 20 77t32 85l222 499q11 24 34 43t57 19h212l-408 -833h282v-141h-326v-97h326v-141h-326v-269h-253v269h-328v141h328v97h-328v141h283z" /> +<glyph unicode="¦" horiz-adv-x="614" d="M209 -343v827h197v-827h-197zM209 756v828h197v-828h-197z" /> +<glyph unicode="§" horiz-adv-x="1034" d="M96 701q0 81 42.5 145t129.5 102q-47 40 -76.5 95t-29.5 133q0 65 25 122.5t75 101.5t124 70t171 26q109 0 198.5 -36t147.5 -94l-56 -91q-10 -16 -21.5 -23.5t-28.5 -7.5q-19 0 -40.5 10.5t-49 23t-63 23t-83.5 10.5q-43 0 -75.5 -10t-54.5 -27t-34 -39.5t-12 -47.5 q0 -33 24 -57.5t64 -46.5t90.5 -42.5t104 -43.5t104 -50.5t90.5 -63.5t64 -83t24 -109q0 -83 -38.5 -150t-123.5 -108q46 -38 75.5 -88t29.5 -120q0 -76 -27 -139.5t-80.5 -110.5t-132 -73t-180.5 -26q-54 0 -106 10t-99.5 27t-88 40.5t-70.5 51.5l59 96q11 17 26 26.5 t38 9.5q24 0 45 -13t49.5 -28.5t68.5 -29t101 -13.5q84 0 130.5 35t46.5 96q0 41 -24.5 71t-65.5 53t-93 42t-105.5 40.5t-105.5 47.5t-93 62t-65.5 85t-24.5 116zM321 742q0 -43 29.5 -74t77 -56t107 -48t117.5 -50q41 20 59.5 51.5t18.5 68.5q0 45 -28.5 76t-74.5 57 t-104 48.5t-115 48.5q-46 -25 -66.5 -54t-20.5 -68z" /> +<glyph unicode="¨" horiz-adv-x="653" d="M-6 1323q0 30 11 56t30.5 45.5t44.5 30.5t53 11q29 0 55 -11t46 -30.5t31 -45.5t11 -56q0 -29 -11 -54t-31 -43.5t-46 -29t-55 -10.5q-28 0 -53 10.5t-44.5 29t-30.5 43.5t-11 54zM377 1323q0 30 11 56t30 45.5t44.5 30.5t54.5 11t55 -11t45.5 -30.5t30.5 -45.5t11 -56 q0 -29 -11 -54t-30.5 -43.5t-45.5 -29t-55 -10.5t-54.5 10.5t-44.5 29t-30 43.5t-11 54z" /> +<glyph unicode="©" horiz-adv-x="1620" d="M54 740q0 104 27.5 201t76.5 181t118 153.5t153 118.5t180.5 76t200.5 27t201 -27t181 -76t153 -118.5t118 -153.5t76.5 -180.5t27.5 -201.5q0 -103 -27.5 -200t-76.5 -180.5t-118 -152.5t-153 -118t-181 -76t-201 -27t-200.5 27t-180.5 76t-153 118t-118 152.5 t-76.5 180t-27.5 200.5zM193 740q0 -133 47.5 -248.5t131 -201t196 -135t242.5 -49.5t243.5 49.5t197.5 135t132.5 201t48.5 248.5q0 89 -22 171t-62 153.5t-97 129t-125.5 99t-148.5 64t-167 22.5t-166.5 -22.5t-148 -64t-124.5 -99t-95.5 -129t-61 -153.5t-21.5 -171z M362 743q0 104 36 191.5t99.5 150.5t149 98t186.5 35q115 0 196 -38t136 -99l-66 -91q-6 -8 -16.5 -16t-27.5 -8t-32.5 10t-37 22.5t-54.5 22.5t-85 10q-61 0 -109.5 -20t-81.5 -57.5t-50.5 -90.5t-17.5 -120q0 -70 18 -123t49.5 -89t75 -55t94.5 -19q50 0 82.5 8t55 19.5 t39.5 22.5t40 17q11 0 20.5 -4.5t15.5 -12.5l84 -89q-57 -73 -144 -111.5t-205 -38.5q-102 0 -185 36.5t-142 100.5t-91 150.5t-32 187.5z" /> +<glyph unicode="ª" horiz-adv-x="712" d="M83 1026q0 34 17.5 69t60.5 64t115.5 48t183.5 22v25q0 55 -24 78.5t-70 23.5q-35 0 -57.5 -7.5t-40 -16.5t-33 -16t-36.5 -7q-19 0 -32.5 10t-21.5 23l-31 59q57 52 125.5 76t148.5 24q57 0 103.5 -18.5t78.5 -51.5t49.5 -78t17.5 -99v-393h-85q-25 0 -39 6.5t-23 30.5 l-12 37q-25 -20 -47 -35.5t-46 -26t-51 -15.5t-61 -5q-43 0 -77.5 11.5t-59.5 33.5t-39 54t-14 74zM257 1035q0 -33 19 -45.5t55 -12.5q39 0 68.5 14t60.5 43v83q-60 -2 -99 -9t-62.5 -18t-32.5 -24.5t-9 -30.5z" /> +<glyph unicode="«" horiz-adv-x="995" d="M126 535v32l262 406l83 -39q20 -9 29.5 -23.5t9.5 -31.5q0 -22 -13 -44l-142 -241q-14 -27 -32 -43q16 -14 32 -43l142 -242q13 -23 13 -45q0 -35 -39 -53l-83 -39zM463 535v32l262 406l83 -39q20 -9 29.5 -23.5t9.5 -31.5q0 -22 -13 -44l-142 -241q-14 -27 -33 -43 q16 -14 33 -43l142 -242q13 -23 13 -45q0 -35 -39 -53l-83 -39z" /> +<glyph unicode="¬" d="M139 594v187h908v-477h-214v290h-694z" /> +<glyph unicode="­" horiz-adv-x="735" d="M102 513v211h531v-211h-531z" /> +<glyph unicode="®" horiz-adv-x="1620" d="M54 740q0 104 27.5 201t76.5 181t118 153.5t153 118.5t180.5 76t200.5 27t201 -27t181 -76t153 -118.5t118 -153.5t76.5 -180.5t27.5 -201.5q0 -103 -27.5 -200t-76.5 -180.5t-118 -152.5t-153 -118t-181 -76t-201 -27t-200.5 27t-180.5 76t-153 118t-118 152.5 t-76.5 180t-27.5 200.5zM193 740q0 -133 47.5 -248.5t131 -201t196 -135t242.5 -49.5t243.5 49.5t197.5 135t132.5 201t48.5 248.5q0 89 -22 171t-62 153.5t-97 129t-125.5 99t-148.5 64t-167 22.5t-166.5 -22.5t-148 -64t-124.5 -99t-95.5 -129t-61 -153.5t-21.5 -171z M476 284v918h329q191 0 280.5 -68.5t89.5 -196.5q0 -91 -47.5 -159t-146.5 -100q24 -13 39 -33t31 -47l185 -314h-211q-46 0 -64 33l-148 270q-10 14 -23 21.5t-38 7.5h-57v-332h-219zM695 773h91q52 0 86 9t53 26t26 43t7 58t-6 56t-23 40t-47 23.5t-77 7.5h-110v-263z" /> +<glyph unicode="¯" horiz-adv-x="653" d="M20 1243v162h613v-162h-613z" /> +<glyph unicode="°" horiz-adv-x="822" d="M56 1150q0 73 27.5 137t75 111t112 74t139.5 27t139.5 -27t113 -74t76 -111t27.5 -137q0 -71 -27.5 -134.5t-76 -111t-113.5 -75t-139 -27.5q-75 0 -139.5 27.5t-112 75t-75 111t-27.5 134.5zM232 1148q0 -38 13.5 -71t37.5 -57t56.5 -37.5t70.5 -13.5t70.5 13.5 t56.5 37.5t37.5 57t13.5 71q0 39 -13.5 72t-37.5 58t-57 39t-70 14q-38 0 -70.5 -14t-56.5 -39t-37.5 -58t-13.5 -72z" /> +<glyph unicode="±" d="M93 82v187h1000v-187h-1000zM93 720v188h396v363h205v-363h399v-188h-399v-349h-205v349h-396z" /> +<glyph unicode="²" horiz-adv-x="681" d="M71 922v58q0 17 6.5 36.5t22.5 36.5l214 211q23 23 43.5 47.5t35 49.5t23 50.5t8.5 48.5q0 37 -20 60t-56 23q-34 0 -54.5 -17t-33.5 -48q-11 -18 -24 -27.5t-36 -9.5q-5 0 -11 0.5t-13 1.5l-101 15q17 118 92.5 174.5t190.5 56.5q59 0 106 -17.5t79 -47.5t48.5 -70.5 t16.5 -87.5q0 -42 -12.5 -76.5t-33.5 -66.5t-49 -61.5t-57 -60.5l-131 -133q29 8 56.5 12.5t50.5 4.5h132q29 0 45 -15t16 -41v-107h-554z" /> +<glyph unicode="³" horiz-adv-x="681" d="M76 1119l79 32q23 8 41 8q38 0 52 -29q6 -11 14 -23t20.5 -22t29 -16t37.5 -6q46 0 70.5 25.5t24.5 61.5q0 28 -7 46t-24 29.5t-46 16t-72 4.5v119q43 0 71 6.5t44 18.5t22.5 29.5t6.5 38.5q0 38 -20 60t-60 22q-36 0 -56.5 -17t-32.5 -43q-9 -20 -21 -30t-33 -10 q-11 0 -27 3l-93 15q8 58 32.5 102t60 72.5t82 42.5t98.5 14q58 0 103 -17t77 -45t48 -63t16 -73q0 -65 -26.5 -109.5t-84.5 -68.5q61 -20 93 -57.5t32 -98.5q0 -63 -23.5 -109t-61.5 -76t-86 -44.5t-98 -14.5q-55 0 -99 11t-78.5 35t-60 63.5t-44.5 96.5z" /> +<glyph unicode="´" horiz-adv-x="653" d="M193 1194l145 249q15 27 35.5 40.5t61.5 13.5h246l-253 -267q-19 -20 -37 -28t-47 -8h-151z" /> +<glyph unicode="µ" horiz-adv-x="1164" d="M114 -238v1289h253v-668q0 -96 44.5 -149t133.5 -53q66 0 123 29.5t108 80.5v760h253v-1051h-155q-49 0 -64 46l-17 85q-32 -32 -63 -54t-62.5 -35.5t-66 -20t-73.5 -6.5q-60 0 -109 18.5t-87 52.5q11 -45 14.5 -93t3.5 -90v-246h-125q-53 0 -82 27t-29 78z" /> +<glyph unicode="¶" horiz-adv-x="1434" d="M34 1062q0 93 33 170t94 132t147 86t193 31h902v-212h-219v-1483h-221v1483h-241v-1483h-221v859q-106 0 -192.5 33.5t-147.5 90t-94 132.5t-33 161z" /> +<glyph unicode="·" horiz-adv-x="572" d="M93 609q0 40 15 75.5t41 61.5t61 41t75 15q41 0 76 -15t61.5 -41t41.5 -61.5t15 -75.5t-15 -74t-41.5 -60t-61.5 -41t-76 -15q-40 0 -75 15t-61 41t-41 60t-15 74z" /> +<glyph unicode="¸" horiz-adv-x="653" d="M135 -334l24 78q5 24 28 24q7 0 15 -2.5t17.5 -5.5t21.5 -5t28 -2q34 0 51 13t17 31q0 30 -37 43t-114 23l46 151h158l-20 -70q91 -23 128 -61.5t37 -90.5q0 -34 -18 -61.5t-51 -47t-79 -30t-101 -10.5q-42 0 -78.5 6t-72.5 17z" /> +<glyph unicode="¹" horiz-adv-x="681" d="M97 1482l239 198h152v-642h118v-116h-441v116h142v369l5 52l-79 -62q-16 -12 -34 -13q-15 0 -27.5 6.5t-17.5 14.5z" /> +<glyph unicode="º" horiz-adv-x="794" d="M62 1177q0 75 25 134.5t69 101t105.5 64t137.5 22.5q74 0 135.5 -22.5t105.5 -64t68 -101.5t24 -134q0 -76 -24 -137t-68 -103.5t-105.5 -65t-135.5 -22.5q-76 0 -137.5 22.5t-105.5 65t-69 103.5t-25 137zM260 1175q0 -91 33 -135t106 -44q69 0 102.5 43.5t33.5 135.5 q0 91 -33.5 134t-102.5 43q-73 0 -106 -43t-33 -134z" /> +<glyph unicode="»" horiz-adv-x="995" d="M147 223q0 20 14 43l141 242q16 29 33 43q-18 16 -33 43l-141 241q-13 23 -14 44q0 37 39 55l83 39l262 -406v-32l-262 -406l-83 39q-20 9 -29.5 23.5t-9.5 31.5zM484 223q0 20 14 43l141 242q16 29 33 43q-18 16 -33 43l-141 241q-13 23 -14 44q0 37 39 55l83 39 l262 -406v-32l-262 -406l-83 39q-20 9 -29.5 23.5t-9.5 31.5z" /> +<glyph unicode="¼" horiz-adv-x="1458" d="M78 1283l238 199h153v-642h118v-117h-442v117h143v368l5 53l-79 -63q-16 -12 -35 -12q-15 0 -27.5 6t-17.5 14zM231 0l854 1398q24 39 55.5 61t78.5 22h107l-860 -1408q-27 -42 -57 -57.5t-69 -15.5h-109zM834 281l343 478h175v-470h96v-90q0 -13 -9 -23.5t-26 -10.5h-61 v-165h-152v165h-296q-25 0 -38.5 10.5t-16.5 27.5zM1000 289h200v172q0 24 1.5 52.5t5.5 58.5z" /> +<glyph unicode="½" horiz-adv-x="1458" d="M78 1283l238 199h153v-642h118v-117h-442v117h143v368l5 53l-79 -63q-16 -12 -35 -12q-15 0 -27.5 6t-17.5 14zM189 0l854 1398q24 39 55.5 61t78.5 22h107l-860 -1408q-27 -42 -57 -57.5t-69 -15.5h-109zM867 0v58q0 17 7 37t23 36l214 211q23 23 43.5 48t34.5 50t23 50 t9 49q0 37 -20 60t-56 23q-34 0 -53.5 -16t-34.5 -50q-16 -37 -61 -37q-5 0 -10.5 0.5t-12.5 1.5l-102 16q17 118 93 174t191 56q59 0 106 -17.5t79 -47t48.5 -70t16.5 -87.5q0 -42 -13 -77t-34 -66.5t-48.5 -61.5t-57.5 -60l-131 -134q29 8 56.5 13t51.5 5h132 q29 0 44.5 -15.5t15.5 -40.5v-108h-554z" /> +<glyph unicode="¾" horiz-adv-x="1459" d="M56 921l79 31q23 8 41 9q38 0 52 -29q6 -11 14.5 -23.5t20.5 -22t28.5 -16t38.5 -6.5q46 0 70.5 25.5t24.5 61.5q0 28 -7 46.5t-24 29.5t-46.5 16t-72.5 5v118q43 0 71.5 7t44.5 18.5t22.5 29t6.5 39.5q0 38 -20 59.5t-60 21.5q-36 0 -57 -16t-32 -44q-10 -20 -22 -30 t-32 -10q-11 0 -27 3l-93 16q8 58 32 101.5t60 72t82 42.5t98 14q58 0 103.5 -17t77 -44.5t48 -63t16.5 -73.5q0 -65 -26.5 -109t-85.5 -69q61 -20 93 -57.5t32 -98.5q0 -63 -23.5 -108.5t-61.5 -76t-86 -44.5t-97 -14q-55 0 -99 10.5t-78.5 34.5t-60 63.5t-45.5 97.5z M234 0l855 1398q24 39 55.5 61t77.5 22h107l-860 -1408q-27 -42 -57 -57.5t-69 -15.5h-109zM834 281l343 478h175v-470h96v-90q0 -13 -9 -23.5t-26 -10.5h-61v-165h-152v165h-296q-25 0 -38.5 10.5t-16.5 27.5zM1000 289h200v172q0 24 1.5 52.5t5.5 58.5z" /> +<glyph unicode="¿" horiz-adv-x="861" d="M49 -17q0 78 22.5 132t57 92.5t75 65t76 50t62 47.5t31.5 57l23 148h173l18 -166q1 -5 1 -10v-10q0 -47 -22.5 -78.5t-56.5 -56.5t-73 -47t-72.5 -49t-56 -63.5t-22.5 -89.5q0 -37 13.5 -66t38 -50t58.5 -32.5t74 -11.5q58 0 98.5 13.5t69 29t47.5 28.5t36 13 q36 0 52 -31l68 -106q-36 -31 -77.5 -58t-89.5 -48t-104.5 -32.5t-122.5 -11.5q-89 0 -162 23.5t-125.5 67.5t-81 107t-28.5 143zM332 913q0 32 11.5 60.5t32.5 49t50 33t61 12.5t61 -12.5t49 -33t32.5 -49t12.5 -60.5q0 -33 -12.5 -61t-32.5 -48.5t-49 -32t-61 -11.5 q-33 0 -61.5 11.5t-49.5 32t-32.5 48.5t-11.5 61z" /> +<glyph unicode="À" horiz-adv-x="1454" d="M6 0l582 1481h281l582 -1481h-213q-36 0 -59 18t-33 44l-111 303h-613l-111 -303q-8 -24 -32 -43t-59 -19h-214zM301 1834h281q20 0 34.5 -1.5t26 -6t22 -13t22.5 -20.5l202 -207h-200q-14 0 -25 0.5t-20 3t-18.5 8t-20.5 13.5zM493 559h472l-181 493q-12 33 -27 77.5 t-29 96.5q-14 -52 -28 -97.5t-27 -78.5z" /> +<glyph unicode="Á" horiz-adv-x="1454" d="M6 0l582 1481h281l582 -1481h-213q-36 0 -59 18t-33 44l-111 303h-613l-111 -303q-8 -24 -32 -43t-59 -19h-214zM493 559h472l-181 493q-12 33 -27 77.5t-29 96.5q-14 -52 -28 -97.5t-27 -78.5zM533 1586l201 207q12 12 23 20.5t22.5 13t25.5 6t35 1.5h281l-303 -221 q-11 -8 -21 -13.5t-19.5 -8.5t-20.5 -4t-25 -1h-199z" /> +<glyph unicode="Â" horiz-adv-x="1454" d="M6 0l582 1481h281l582 -1481h-213q-36 0 -59 18t-33 44l-111 303h-613l-111 -303q-8 -24 -32 -43t-59 -19h-214zM354 1586l248 224h252l247 -224h-191q-15 0 -33.5 4t-30.5 13l-103 68q-4 2 -7.5 5t-7.5 6q-2 -2 -6.5 -5t-9.5 -6l-103 -68q-11 -8 -29.5 -12.5t-34.5 -4.5 h-191zM493 559h472l-181 493q-12 33 -27 77.5t-29 96.5q-14 -52 -28 -97.5t-27 -78.5z" /> +<glyph unicode="Ã" horiz-adv-x="1454" d="M6 0l582 1481h281l582 -1481h-213q-36 0 -59 18t-33 44l-111 303h-613l-111 -303q-8 -24 -32 -43t-59 -19h-214zM415 1581q0 50 13.5 92.5t39 73.5t61.5 47.5t81 16.5q37 0 71.5 -11t66 -24.5t58 -24.5t48.5 -11q28 0 44.5 16t17.5 48h137q0 -51 -13 -93t-37.5 -71.5 t-60.5 -46.5t-82 -17q-37 0 -71.5 11t-65.5 24.5t-58 25t-49 11.5q-28 0 -44 -17t-17 -50h-140zM493 559h472l-181 493q-12 33 -27 77.5t-29 96.5q-14 -52 -28 -97.5t-27 -78.5z" /> +<glyph unicode="Ä" horiz-adv-x="1454" d="M6 0l582 1481h281l582 -1481h-213q-36 0 -59 18t-33 44l-111 303h-613l-111 -303q-8 -24 -32 -43t-59 -19h-214zM369 1707q0 28 11 53t29.5 44t42.5 30t50 11q29 0 54.5 -11t45 -30t31 -44t11.5 -53t-11.5 -52.5t-31 -43t-45 -28.5t-54.5 -10q-27 0 -50.5 10t-42 28.5 t-29.5 43t-11 52.5zM493 559h472l-181 493q-12 33 -27 77.5t-29 96.5q-14 -52 -28 -97.5t-27 -78.5zM812 1707q0 28 10.5 53t29.5 44t44 30t53 11q29 0 54 -11t43.5 -30t29 -44t10.5 -53t-10.5 -52.5t-29 -43t-43.5 -28.5t-54 -10q-28 0 -53 10t-44 28.5t-29.5 43 t-10.5 52.5z" /> +<glyph unicode="Å" horiz-adv-x="1454" d="M6 0l582 1481h281l582 -1481h-213q-36 0 -59 18t-33 44l-111 303h-613l-111 -303q-8 -24 -32 -43t-59 -19h-214zM493 559h472l-181 493q-12 33 -27 77.5t-29 96.5q-14 -52 -28 -97.5t-27 -78.5zM517 1723q0 44 17.5 80t46 61.5t66.5 40t80 14.5q44 0 82.5 -14.5t68.5 -40 t47.5 -61.5t17.5 -80q0 -43 -17.5 -78t-47.5 -60.5t-68.5 -39.5t-82.5 -14q-42 0 -80 14t-66.5 39.5t-46 60.5t-17.5 78zM638 1723q0 -40 24 -65.5t69 -25.5q41 0 65.5 25.5t24.5 65.5q0 43 -24.5 68t-65.5 25q-45 0 -69 -25t-24 -68z" /> +<glyph unicode="Æ" horiz-adv-x="1912" d="M-29 0l753 1481h1099v-219h-711l51 -411h521v-212h-495l51 -419h583v-220h-816l-45 365h-533l-145 -304q-13 -28 -40 -44.5t-64 -16.5h-209zM523 559h415l-88 717q-16 -52 -34 -98t-36 -85z" /> +<glyph unicode="Ç" horiz-adv-x="1373" d="M63 740q0 167 55.5 306t156 239t240 156t308.5 56q165 0 288.5 -52.5t211.5 -139.5l-92 -128q-8 -12 -21 -21.5t-35 -9.5q-24 0 -48.5 18.5t-62.5 40t-96 40t-147 18.5q-104 0 -191.5 -36.5t-150.5 -104t-98.5 -164.5t-35.5 -218q0 -125 35.5 -222t96 -163.5t142 -102 t176.5 -35.5q56 0 101.5 6t84 19.5t72.5 34.5t68 52q10 9 21.5 14.5t24.5 5.5q23 0 39 -17l109 -118q-82 -102 -198.5 -160t-274.5 -68l-13 -42q91 -23 128 -61.5t37 -90.5q0 -34 -18 -61.5t-50.5 -47t-78.5 -30t-102 -10.5q-42 0 -78 6t-72 17l23 78q6 24 29 24 q7 0 15 -2.5t17.5 -5.5t21.5 -5t28 -2q34 0 51 13t17 31q0 30 -37 43t-114 23l38 126q-144 15 -259 77t-195 161t-123.5 229.5t-43.5 283.5z" /> +<glyph unicode="È" horiz-adv-x="1172" d="M150 0v1481h933v-219h-656v-411h517v-212h-517v-419h656v-220h-933zM205 1834h281q20 0 34.5 -1.5t26 -6t22 -13t22.5 -20.5l202 -207h-200q-14 0 -25 0.5t-20 3t-18.5 8t-20.5 13.5z" /> +<glyph unicode="É" horiz-adv-x="1172" d="M150 0v1481h933v-219h-656v-411h517v-212h-517v-419h656v-220h-933zM437 1586l201 207q12 12 23 20.5t22.5 13t25.5 6t35 1.5h281l-303 -221q-11 -8 -21 -13.5t-19.5 -8.5t-20.5 -4t-25 -1h-199z" /> +<glyph unicode="Ê" horiz-adv-x="1172" d="M150 0v1481h933v-219h-656v-411h517v-212h-517v-419h656v-220h-933zM258 1586l248 224h252l247 -224h-191q-15 0 -33.5 4t-30.5 13l-103 68q-4 2 -7.5 5t-7.5 6q-2 -2 -6.5 -5t-9.5 -6l-103 -68q-11 -8 -29.5 -12.5t-34.5 -4.5h-191z" /> +<glyph unicode="Ë" horiz-adv-x="1172" d="M150 0v1481h933v-219h-656v-411h517v-212h-517v-419h656v-220h-933zM273 1707q0 28 11 53t29.5 44t42.5 30t50 11q29 0 54.5 -11t45 -30t31 -44t11.5 -53t-11.5 -52.5t-31 -43t-45 -28.5t-54.5 -10q-27 0 -50.5 10t-42 28.5t-29.5 43t-11 52.5zM716 1707q0 28 10.5 53 t29.5 44t44 30t53 11q29 0 54 -11t43.5 -30t29 -44t10.5 -53t-10.5 -52.5t-29 -43t-43.5 -28.5t-54 -10q-28 0 -53 10t-44 28.5t-29.5 43t-10.5 52.5z" /> +<glyph unicode="Ì" horiz-adv-x="643" d="M-100 1834h281q20 0 34.5 -1.5t26 -6t22 -13t22.5 -20.5l202 -207h-200q-14 0 -25 0.5t-20 3t-18.5 8t-20.5 13.5zM183 0v1481h277v-1481h-277z" /> +<glyph unicode="Í" horiz-adv-x="643" d="M132 1586l201 207q12 12 23 20.5t22.5 13t25.5 6t35 1.5h281l-303 -221q-11 -8 -21 -13.5t-19.5 -8.5t-20.5 -4t-25 -1h-199zM183 0v1481h277v-1481h-277z" /> +<glyph unicode="Î" horiz-adv-x="643" d="M-48 1586l248 224h252l247 -224h-191q-15 0 -33.5 4t-30.5 13l-103 68q-4 2 -7.5 5t-7.5 6q-2 -2 -6.5 -5t-9.5 -6l-103 -68q-11 -8 -29.5 -12.5t-34.5 -4.5h-191zM183 0v1481h277v-1481h-277z" /> +<glyph unicode="Ï" horiz-adv-x="643" d="M-33 1707q0 28 11 53t29.5 44t42.5 30t50 11q29 0 54.5 -11t45 -30t31 -44t11.5 -53t-11.5 -52.5t-31 -43t-45 -28.5t-54.5 -10q-27 0 -50.5 10t-42 28.5t-29.5 43t-11 52.5zM183 0v1481h277v-1481h-277zM410 1707q0 28 10.5 53t29.5 44t44 30t53 11q29 0 54 -11 t43.5 -30t29 -44t10.5 -53t-10.5 -52.5t-29 -43t-43.5 -28.5t-54 -10q-28 0 -53 10t-44 28.5t-29.5 43t-10.5 52.5z" /> +<glyph unicode="Ð" horiz-adv-x="1618" d="M54 667v156h185v658h565q168 0 306 -55t236.5 -152.5t152.5 -234t54 -299.5t-54 -299t-152.5 -234t-236.5 -152.5t-306 -54.5h-565v667h-185zM516 219h288q109 0 195 36t146.5 103t93 163.5t32.5 218.5t-32.5 219t-93 164t-147 103t-194.5 36h-288v-439h370v-156h-370 v-448z" /> +<glyph unicode="Ñ" horiz-adv-x="1548" d="M150 0v1481h144q18 0 30.5 -1.5t22 -6.5t19 -13.5t20.5 -22.5l777 -991q-4 36 -5.5 70.5t-1.5 64.5v900h243v-1481h-143q-33 0 -54 10t-42 37l-774 986q3 -33 4.5 -65t1.5 -59v-909h-242zM478 1581q0 50 13.5 92.5t39 73.5t61.5 47.5t81 16.5q37 0 71.5 -11t66 -24.5 t58 -24.5t48.5 -11q28 0 44.5 16t17.5 48h137q0 -51 -13 -93t-37.5 -71.5t-60.5 -46.5t-82 -17q-37 0 -71.5 11t-65.5 24.5t-58 25t-49 11.5q-28 0 -44 -17t-17 -50h-140z" /> +<glyph unicode="Ò" horiz-adv-x="1637" d="M69 740q0 163 54 302t153 240t237.5 158t306.5 57t306.5 -57.5t236.5 -158t152.5 -239.5t54.5 -302t-54.5 -301.5t-152.5 -240t-236.5 -158t-306.5 -56.5t-306.5 56.5t-237.5 158t-153 240.5t-54 301zM350 740q0 -122 33 -218.5t94 -163.5t148 -103t195 -36 q109 0 195.5 36t147 103t92.5 163.5t32 218.5t-32 219t-92.5 164.5t-147 103.5t-195.5 36t-195.5 -36t-147.5 -103.5t-94 -164.5t-33 -219zM395 1834h281q20 0 34.5 -1.5t26 -6t22 -13t22.5 -20.5l202 -207h-200q-14 0 -25 0.5t-20 3t-18.5 8t-20.5 13.5z" /> +<glyph unicode="Ó" horiz-adv-x="1637" d="M69 740q0 163 54 302t153 240t237.5 158t306.5 57t306.5 -57.5t236.5 -158t152.5 -239.5t54.5 -302t-54.5 -301.5t-152.5 -240t-236.5 -158t-306.5 -56.5t-306.5 56.5t-237.5 158t-153 240.5t-54 301zM350 740q0 -122 33 -218.5t94 -163.5t148 -103t195 -36 q109 0 195.5 36t147 103t92.5 163.5t32 218.5t-32 219t-92.5 164.5t-147 103.5t-195.5 36t-195.5 -36t-147.5 -103.5t-94 -164.5t-33 -219zM627 1586l201 207q12 12 23 20.5t22.5 13t25.5 6t35 1.5h281l-303 -221q-11 -8 -21 -13.5t-19.5 -8.5t-20.5 -4t-25 -1h-199z" /> +<glyph unicode="Ô" horiz-adv-x="1637" d="M69 740q0 163 54 302t153 240t237.5 158t306.5 57t306.5 -57.5t236.5 -158t152.5 -239.5t54.5 -302t-54.5 -301.5t-152.5 -240t-236.5 -158t-306.5 -56.5t-306.5 56.5t-237.5 158t-153 240.5t-54 301zM350 740q0 -122 33 -218.5t94 -163.5t148 -103t195 -36 q109 0 195.5 36t147 103t92.5 163.5t32 218.5t-32 219t-92.5 164.5t-147 103.5t-195.5 36t-195.5 -36t-147.5 -103.5t-94 -164.5t-33 -219zM449 1586l248 224h252l247 -224h-191q-15 0 -33.5 4t-30.5 13l-103 68q-4 2 -7.5 5t-7.5 6q-2 -2 -6.5 -5t-9.5 -6l-103 -68 q-11 -8 -29.5 -12.5t-34.5 -4.5h-191z" /> +<glyph unicode="Õ" horiz-adv-x="1637" d="M69 740q0 163 54 302t153 240t237.5 158t306.5 57t306.5 -57.5t236.5 -158t152.5 -239.5t54.5 -302t-54.5 -301.5t-152.5 -240t-236.5 -158t-306.5 -56.5t-306.5 56.5t-237.5 158t-153 240.5t-54 301zM350 740q0 -122 33 -218.5t94 -163.5t148 -103t195 -36 q109 0 195.5 36t147 103t92.5 163.5t32 218.5t-32 219t-92.5 164.5t-147 103.5t-195.5 36t-195.5 -36t-147.5 -103.5t-94 -164.5t-33 -219zM510 1581q0 50 13.5 92.5t39 73.5t61.5 47.5t81 16.5q37 0 71.5 -11t66 -24.5t58 -24.5t48.5 -11q28 0 44.5 16t17.5 48h137 q0 -51 -13 -93t-37.5 -71.5t-60.5 -46.5t-82 -17q-37 0 -71.5 11t-65.5 24.5t-58 25t-49 11.5q-28 0 -44 -17t-17 -50h-140z" /> +<glyph unicode="Ö" horiz-adv-x="1637" d="M69 740q0 163 54 302t153 240t237.5 158t306.5 57t306.5 -57.5t236.5 -158t152.5 -239.5t54.5 -302t-54.5 -301.5t-152.5 -240t-236.5 -158t-306.5 -56.5t-306.5 56.5t-237.5 158t-153 240.5t-54 301zM350 740q0 -122 33 -218.5t94 -163.5t148 -103t195 -36 q109 0 195.5 36t147 103t92.5 163.5t32 218.5t-32 219t-92.5 164.5t-147 103.5t-195.5 36t-195.5 -36t-147.5 -103.5t-94 -164.5t-33 -219zM464 1707q0 28 11 53t29.5 44t42.5 30t50 11q29 0 54.5 -11t45 -30t31 -44t11.5 -53t-11.5 -52.5t-31 -43t-45 -28.5t-54.5 -10 q-27 0 -50.5 10t-42 28.5t-29.5 43t-11 52.5zM907 1707q0 28 10.5 53t29.5 44t44 30t53 11q29 0 54 -11t43.5 -30t29 -44t10.5 -53t-10.5 -52.5t-29 -43t-43.5 -28.5t-54 -10q-28 0 -53 10t-44 28.5t-29.5 43t-10.5 52.5z" /> +<glyph unicode="×" d="M109 337l350 350l-335 335l133 133l335 -335l332 333l134 -133l-333 -333l349 -348l-134 -132l-348 347l-349 -349z" /> +<glyph unicode="Ø" horiz-adv-x="1637" d="M69 740q0 163 54 302t153 240t237.5 158t306.5 57q113 0 211.5 -25.5t182.5 -74.5l61 84q13 18 24.5 31.5t24 21t28 11t38.5 3.5h141l-183 -252q106 -102 164 -244t58 -312q0 -163 -54.5 -301.5t-152.5 -240t-236.5 -158t-306.5 -56.5q-103 0 -194 21.5t-171 62.5 l-78 -108q-30 -41 -71.5 -57.5t-80.5 -16.5h-108l199 275q-118 102 -182.5 250.5t-64.5 328.5zM350 740q0 -118 30 -211t87 -160l603 829q-106 65 -250 65q-109 0 -195.5 -36t-147.5 -103.5t-94 -164.5t-33 -219zM599 266q97 -47 221 -47q109 0 195.5 36t147 103t92.5 163.5 t32 218.5q0 105 -24 191.5t-70 151.5z" /> +<glyph unicode="Ù" horiz-adv-x="1490" d="M132 594v887h276v-886q0 -85 23 -153.5t66 -117.5t105.5 -75.5t142.5 -26.5t143 26.5t106.5 75t66.5 117t23 153.5v887h276v-887q0 -132 -42.5 -244t-122.5 -193.5t-193.5 -127t-256.5 -45.5q-142 0 -255.5 45.5t-193 127t-122 193.5t-42.5 244zM319 1834h281 q20 0 34.5 -1.5t26 -6t22 -13t22.5 -20.5l202 -207h-200q-14 0 -25 0.5t-20 3t-18.5 8t-20.5 13.5z" /> +<glyph unicode="Ú" horiz-adv-x="1490" d="M132 594v887h276v-886q0 -85 23 -153.5t66 -117.5t105.5 -75.5t142.5 -26.5t143 26.5t106.5 75t66.5 117t23 153.5v887h276v-887q0 -132 -42.5 -244t-122.5 -193.5t-193.5 -127t-256.5 -45.5q-142 0 -255.5 45.5t-193 127t-122 193.5t-42.5 244zM551 1586l201 207 q12 12 23 20.5t22.5 13t25.5 6t35 1.5h281l-303 -221q-11 -8 -21 -13.5t-19.5 -8.5t-20.5 -4t-25 -1h-199z" /> +<glyph unicode="Û" horiz-adv-x="1490" d="M132 594v887h276v-886q0 -85 23 -153.5t66 -117.5t105.5 -75.5t142.5 -26.5t143 26.5t106.5 75t66.5 117t23 153.5v887h276v-887q0 -132 -42.5 -244t-122.5 -193.5t-193.5 -127t-256.5 -45.5q-142 0 -255.5 45.5t-193 127t-122 193.5t-42.5 244zM372 1586l248 224h252 l247 -224h-191q-15 0 -33.5 4t-30.5 13l-103 68q-4 2 -7.5 5t-7.5 6q-2 -2 -6.5 -5t-9.5 -6l-103 -68q-11 -8 -29.5 -12.5t-34.5 -4.5h-191z" /> +<glyph unicode="Ü" horiz-adv-x="1490" d="M132 594v887h276v-886q0 -85 23 -153.5t66 -117.5t105.5 -75.5t142.5 -26.5t143 26.5t106.5 75t66.5 117t23 153.5v887h276v-887q0 -132 -42.5 -244t-122.5 -193.5t-193.5 -127t-256.5 -45.5q-142 0 -255.5 45.5t-193 127t-122 193.5t-42.5 244zM387 1707q0 28 11 53 t29.5 44t42.5 30t50 11q29 0 54.5 -11t45 -30t31 -44t11.5 -53t-11.5 -52.5t-31 -43t-45 -28.5t-54.5 -10q-27 0 -50.5 10t-42 28.5t-29.5 43t-11 52.5zM830 1707q0 28 10.5 53t29.5 44t44 30t53 11q29 0 54 -11t43.5 -30t29 -44t10.5 -53t-10.5 -52.5t-29 -43t-43.5 -28.5 t-54 -10q-28 0 -53 10t-44 28.5t-29.5 43t-10.5 52.5z" /> +<glyph unicode="Ý" horiz-adv-x="1340" d="M-7 1481h243q36 0 56.5 -17.5t35.5 -44.5l271 -494q24 -44 41 -83.5t32 -77.5q13 39 30 78.5t40 82.5l270 494q11 23 33.5 42.5t57.5 19.5h244l-539 -906v-575h-276v575zM478 1586l201 207q12 12 23 20.5t22.5 13t25.5 6t35 1.5h281l-303 -221q-11 -8 -21 -13.5 t-19.5 -8.5t-20.5 -4t-25 -1h-199z" /> +<glyph unicode="Þ" horiz-adv-x="1280" d="M159 0v1481h275v-254h207q148 0 257 -35t179.5 -97.5t104 -149.5t33.5 -190q0 -108 -35.5 -197.5t-107.5 -154t-179.5 -100.5t-251.5 -36h-207v-267h-275zM434 482h207q76 0 132 19t93 54.5t55.5 86t18.5 113.5q0 59 -18.5 107t-55.5 82t-93 52t-132 18h-207v-532z" /> +<glyph unicode="ß" horiz-adv-x="1300" d="M180 0v1008q0 109 37.5 199.5t106.5 157.5t168.5 104t224.5 37q120 0 205 -34.5t138 -87t77.5 -113t24.5 -112.5q0 -59 -20 -101t-50 -74t-65 -55.5t-65 -45t-50 -44.5t-20 -53q0 -34 25.5 -58.5t63.5 -48t83 -50t83 -65t63.5 -92.5t25.5 -133q0 -87 -32.5 -153 t-87.5 -111t-128.5 -68t-154.5 -23q-47 0 -93.5 9.5t-89 27t-80.5 41t-68 51.5l59 96q10 17 25.5 26.5t39.5 9.5t45 -13.5t46.5 -29t58.5 -28.5t79 -13q65 0 104.5 38.5t39.5 99.5q0 48 -27.5 80t-69 57t-89.5 49t-89.5 56t-69 78.5t-27.5 116.5q0 58 21.5 100.5t53.5 75 t70 58.5t70 54t54 59.5t22 74.5q0 34 -12 64t-37.5 52t-66 35.5t-96.5 13.5q-134 0 -203.5 -82.5t-69.5 -241.5v-999h-253z" /> +<glyph unicode="à" horiz-adv-x="1072" d="M83 268q0 59 31 117t104 105t193.5 77.5t300.5 34.5v62q0 105 -44.5 155.5t-129.5 50.5q-61 0 -102.5 -14t-71.5 -32t-55.5 -32.5t-56.5 -14.5q-26 0 -44.5 13.5t-29.5 32.5l-46 81q181 166 437 166q92 0 164.5 -30t122.5 -84t76 -128.5t26 -163.5v-664h-113 q-36 0 -56.5 11t-30.5 43l-23 75q-40 -36 -78.5 -63t-79 -45.5t-87 -27.5t-102.5 -9q-67 0 -123 17.5t-96.5 53.5t-63 89.5t-22.5 123.5zM231 1497h237q42 0 61.5 -14t35.5 -40l146 -249h-144q-29 0 -47 7.5t-36 28.5zM325 282q0 -67 39.5 -95.5t102.5 -28.5q39 0 71.5 7 t62 21.5t56.5 35.5t55 49v178q-111 -5 -185 -19t-119.5 -35.5t-64 -50.5t-18.5 -62z" /> +<glyph unicode="á" horiz-adv-x="1072" d="M83 268q0 59 31 117t104 105t193.5 77.5t300.5 34.5v62q0 105 -44.5 155.5t-129.5 50.5q-61 0 -102.5 -14t-71.5 -32t-55.5 -32.5t-56.5 -14.5q-26 0 -44.5 13.5t-29.5 32.5l-46 81q181 166 437 166q92 0 164.5 -30t122.5 -84t76 -128.5t26 -163.5v-664h-113 q-36 0 -56.5 11t-30.5 43l-23 75q-40 -36 -78.5 -63t-79 -45.5t-87 -27.5t-102.5 -9q-67 0 -123 17.5t-96.5 53.5t-63 89.5t-22.5 123.5zM325 282q0 -67 39.5 -95.5t102.5 -28.5q39 0 71.5 7t62 21.5t56.5 35.5t55 49v178q-111 -5 -185 -19t-119.5 -35.5t-64 -50.5 t-18.5 -62zM425 1194l145 249q15 27 35.5 40.5t61.5 13.5h246l-253 -267q-19 -20 -37 -28t-47 -8h-151z" /> +<glyph unicode="â" horiz-adv-x="1072" d="M83 268q0 59 31 117t104 105t193.5 77.5t300.5 34.5v62q0 105 -44.5 155.5t-129.5 50.5q-61 0 -102.5 -14t-71.5 -32t-55.5 -32.5t-56.5 -14.5q-26 0 -44.5 13.5t-29.5 32.5l-46 81q181 166 437 166q92 0 164.5 -30t122.5 -84t76 -128.5t26 -163.5v-664h-113 q-36 0 -56.5 11t-30.5 43l-23 75q-40 -36 -78.5 -63t-79 -45.5t-87 -27.5t-102.5 -9q-67 0 -123 17.5t-96.5 53.5t-63 89.5t-22.5 123.5zM205 1196l235 285h237l235 -285h-169q-32 0 -51 18l-108 98q-5 5 -10.5 10t-10.5 12q-5 -7 -11 -12t-11 -10l-109 -98q-8 -7 -22 -12.5 t-30 -5.5h-175zM325 282q0 -67 39.5 -95.5t102.5 -28.5q39 0 71.5 7t62 21.5t56.5 35.5t55 49v178q-111 -5 -185 -19t-119.5 -35.5t-64 -50.5t-18.5 -62z" /> +<glyph unicode="ã" horiz-adv-x="1072" d="M83 268q0 59 31 117t104 105t193.5 77.5t300.5 34.5v62q0 105 -44.5 155.5t-129.5 50.5q-61 0 -102.5 -14t-71.5 -32t-55.5 -32.5t-56.5 -14.5q-26 0 -44.5 13.5t-29.5 32.5l-46 81q181 166 437 166q92 0 164.5 -30t122.5 -84t76 -128.5t26 -163.5v-664h-113 q-36 0 -56.5 11t-30.5 43l-23 75q-40 -36 -78.5 -63t-79 -45.5t-87 -27.5t-102.5 -9q-67 0 -123 17.5t-96.5 53.5t-63 89.5t-22.5 123.5zM233 1222q0 57 16 103.5t44.5 80t67 52t83.5 18.5q37 0 69 -13.5t60 -29t51.5 -28.5t43.5 -13q31 0 48.5 16.5t17.5 60.5h153 q0 -57 -15.5 -103.5t-43.5 -80t-66 -51t-85 -17.5q-37 0 -68.5 13t-59 28.5t-51.5 28.5t-45 13q-30 0 -46.5 -17.5t-16.5 -60.5h-157zM325 282q0 -67 39.5 -95.5t102.5 -28.5q39 0 71.5 7t62 21.5t56.5 35.5t55 49v178q-111 -5 -185 -19t-119.5 -35.5t-64 -50.5t-18.5 -62z " /> +<glyph unicode="ä" horiz-adv-x="1072" d="M83 268q0 59 31 117t104 105t193.5 77.5t300.5 34.5v62q0 105 -44.5 155.5t-129.5 50.5q-61 0 -102.5 -14t-71.5 -32t-55.5 -32.5t-56.5 -14.5q-26 0 -44.5 13.5t-29.5 32.5l-46 81q181 166 437 166q92 0 164.5 -30t122.5 -84t76 -128.5t26 -163.5v-664h-113 q-36 0 -56.5 11t-30.5 43l-23 75q-40 -36 -78.5 -63t-79 -45.5t-87 -27.5t-102.5 -9q-67 0 -123 17.5t-96.5 53.5t-63 89.5t-22.5 123.5zM226 1323q0 30 11 56t30.5 45.5t44.5 30.5t53 11q29 0 55 -11t46 -30.5t31 -45.5t11 -56q0 -29 -11 -54t-31 -43.5t-46 -29t-55 -10.5 q-28 0 -53 10.5t-44.5 29t-30.5 43.5t-11 54zM325 282q0 -67 39.5 -95.5t102.5 -28.5q39 0 71.5 7t62 21.5t56.5 35.5t55 49v178q-111 -5 -185 -19t-119.5 -35.5t-64 -50.5t-18.5 -62zM609 1323q0 30 11 56t30 45.5t44.5 30.5t54.5 11t55 -11t45.5 -30.5t30.5 -45.5t11 -56 q0 -29 -11 -54t-30.5 -43.5t-45.5 -29t-55 -10.5t-54.5 10.5t-44.5 29t-30 43.5t-11 54z" /> +<glyph unicode="å" horiz-adv-x="1072" d="M83 268q0 59 31 117t104 105t193.5 77.5t300.5 34.5v62q0 105 -44.5 155.5t-129.5 50.5q-61 0 -102.5 -14t-71.5 -32t-55.5 -32.5t-56.5 -14.5q-26 0 -44.5 13.5t-29.5 32.5l-46 81q181 166 437 166q92 0 164.5 -30t122.5 -84t76 -128.5t26 -163.5v-664h-113 q-36 0 -56.5 11t-30.5 43l-23 75q-40 -36 -78.5 -63t-79 -45.5t-87 -27.5t-102.5 -9q-67 0 -123 17.5t-96.5 53.5t-63 89.5t-22.5 123.5zM325 282q0 -67 39.5 -95.5t102.5 -28.5q39 0 71.5 7t62 21.5t56.5 35.5t55 49v178q-111 -5 -185 -19t-119.5 -35.5t-64 -50.5 t-18.5 -62zM331 1357q0 47 18.5 86t50 66.5t72.5 43t86 15.5q46 0 88 -15.5t73.5 -43t50.5 -66.5t19 -86q0 -46 -19 -84t-50.5 -65t-73.5 -42t-88 -15q-45 0 -86 15t-72.5 42t-50 65t-18.5 84zM469 1357q0 -39 24 -65t69 -26q41 0 65.5 26t24.5 65q0 43 -24.5 68t-65.5 25 q-45 0 -69 -25t-24 -68z" /> +<glyph unicode="æ" horiz-adv-x="1690" d="M83 282q0 59 31 119t104 109t193.5 81.5t300.5 36.5v36q0 105 -44.5 159.5t-129.5 54.5q-61 0 -102.5 -16t-71.5 -34.5t-55.5 -34.5t-56.5 -16q-26 0 -44.5 13.5t-29.5 32.5l-46 81q91 83 190 124.5t220 41.5q119 0 194.5 -45t115.5 -124q58 77 145 121.5t205 44.5 q89 0 166 -34.5t132.5 -99t87.5 -156.5t32 -207q0 -29 -2.5 -47.5t-8.5 -29.5t-17 -15.5t-28 -4.5h-613q14 -151 85.5 -222t184.5 -71q70 0 113 13.5t72 30t48.5 29.5t40.5 13q18 0 30.5 -6t20.5 -17l68 -86q-42 -49 -92.5 -82.5t-105 -53.5t-111 -28t-109.5 -8 q-112 0 -208.5 50t-159.5 156q-31 -55 -75.5 -94t-99 -64.5t-116 -37t-123.5 -11.5q-77 0 -138 19.5t-104 56.5t-66 93t-23 129zM325 294q0 -71 39.5 -103.5t109.5 -32.5q50 0 93.5 15t75.5 47.5t50.5 83.5t18.5 122v47q-111 -5 -185 -21t-119.5 -39.5t-64 -54t-18.5 -64.5z M952 626h444q0 50 -12.5 97t-37.5 83.5t-64 58t-91 21.5q-108 0 -166.5 -68t-72.5 -192z" /> +<glyph unicode="ç" horiz-adv-x="976" d="M65 527q0 116 33 215t97.5 171t160 113t218.5 41q118 0 206.5 -38t159.5 -108l-67 -93q-11 -14 -21.5 -22t-31.5 -8q-19 0 -37.5 11.5t-44 26.5t-61 26.5t-87.5 11.5q-67 0 -117 -24t-83.5 -69t-49.5 -109t-16 -145q0 -84 17.5 -149.5t51.5 -110t82 -67.5t109 -23 q60 0 97.5 15t63 33t44.5 32.5t42 14.5q28 0 47 -23l72 -92q-71 -83 -159 -121.5t-182 -46.5l-12 -45q91 -23 128 -61.5t37 -90.5q0 -34 -18 -61.5t-51 -47t-79 -30t-101 -10.5q-42 0 -78.5 6t-72.5 17l24 78q6 24 29 24q7 0 14.5 -2.5t17.5 -5.5t21.5 -5t28.5 -2 q34 0 50.5 13t16.5 31q0 30 -37 43t-113 23l39 129q-82 14 -153.5 56.5t-123.5 110.5t-81.5 161t-29.5 207z" /> +<glyph unicode="è" horiz-adv-x="1094" d="M65 548q0 108 34.5 202.5t99.5 164.5t158.5 111t211.5 41q99 0 183 -31.5t144 -92.5t94 -149.5t34 -202.5q0 -29 -2.5 -48t-9 -29.5t-18 -15t-28.5 -4.5h-650q11 -162 87 -238t201 -76q61 0 106 14.5t78 32t58 31.5t49 14q15 0 26.5 -6t19.5 -17l74 -92 q-42 -49 -94.5 -82.5t-109 -53.5t-115.5 -28t-114 -8q-110 0 -204 36t-164 107.5t-109.5 176.5t-39.5 243zM248 1497h237q42 0 61.5 -14t35.5 -40l146 -249h-144q-29 0 -47 7.5t-36 28.5zM322 646h475q0 49 -13.5 92.5t-41 76.5t-70 52t-98.5 19q-111 0 -173 -62.5 t-79 -177.5z" /> +<glyph unicode="é" horiz-adv-x="1094" d="M65 548q0 108 34.5 202.5t99.5 164.5t158.5 111t211.5 41q99 0 183 -31.5t144 -92.5t94 -149.5t34 -202.5q0 -29 -2.5 -48t-9 -29.5t-18 -15t-28.5 -4.5h-650q11 -162 87 -238t201 -76q61 0 106 14.5t78 32t58 31.5t49 14q15 0 26.5 -6t19.5 -17l74 -92 q-42 -49 -94.5 -82.5t-109 -53.5t-115.5 -28t-114 -8q-110 0 -204 36t-164 107.5t-109.5 176.5t-39.5 243zM322 646h475q0 49 -13.5 92.5t-41 76.5t-70 52t-98.5 19q-111 0 -173 -62.5t-79 -177.5zM442 1194l145 249q15 27 35.5 40.5t61.5 13.5h246l-253 -267 q-19 -20 -37 -28t-47 -8h-151z" /> +<glyph unicode="ê" horiz-adv-x="1094" d="M65 548q0 108 34.5 202.5t99.5 164.5t158.5 111t211.5 41q99 0 183 -31.5t144 -92.5t94 -149.5t34 -202.5q0 -29 -2.5 -48t-9 -29.5t-18 -15t-28.5 -4.5h-650q11 -162 87 -238t201 -76q61 0 106 14.5t78 32t58 31.5t49 14q15 0 26.5 -6t19.5 -17l74 -92 q-42 -49 -94.5 -82.5t-109 -53.5t-115.5 -28t-114 -8q-110 0 -204 36t-164 107.5t-109.5 176.5t-39.5 243zM222 1196l235 285h237l235 -285h-169q-32 0 -51 18l-108 98q-5 5 -10.5 10t-10.5 12q-5 -7 -11 -12t-11 -10l-109 -98q-8 -7 -22 -12.5t-30 -5.5h-175zM322 646h475 q0 49 -13.5 92.5t-41 76.5t-70 52t-98.5 19q-111 0 -173 -62.5t-79 -177.5z" /> +<glyph unicode="ë" horiz-adv-x="1094" d="M65 548q0 108 34.5 202.5t99.5 164.5t158.5 111t211.5 41q99 0 183 -31.5t144 -92.5t94 -149.5t34 -202.5q0 -29 -2.5 -48t-9 -29.5t-18 -15t-28.5 -4.5h-650q11 -162 87 -238t201 -76q61 0 106 14.5t78 32t58 31.5t49 14q15 0 26.5 -6t19.5 -17l74 -92 q-42 -49 -94.5 -82.5t-109 -53.5t-115.5 -28t-114 -8q-110 0 -204 36t-164 107.5t-109.5 176.5t-39.5 243zM243 1323q0 30 11 56t30.5 45.5t44.5 30.5t53 11q29 0 55 -11t46 -30.5t31 -45.5t11 -56q0 -29 -11 -54t-31 -43.5t-46 -29t-55 -10.5q-28 0 -53 10.5t-44.5 29 t-30.5 43.5t-11 54zM322 646h475q0 49 -13.5 92.5t-41 76.5t-70 52t-98.5 19q-111 0 -173 -62.5t-79 -177.5zM626 1323q0 30 11 56t30 45.5t44.5 30.5t54.5 11t55 -11t45.5 -30.5t30.5 -45.5t11 -56q0 -29 -11 -54t-30.5 -43.5t-45.5 -29t-55 -10.5t-54.5 10.5t-44.5 29 t-30 43.5t-11 54z" /> +<glyph unicode="ì" horiz-adv-x="555" d="M-42 1497h237q42 0 61.5 -14t35.5 -40l146 -249h-144q-29 0 -47 7.5t-36 28.5zM152 0v1051h252v-1051h-252z" /> +<glyph unicode="í" horiz-adv-x="555" d="M152 0v1051h252v-1051h-252zM152 1194l145 249q15 27 35.5 40.5t61.5 13.5h246l-253 -267q-19 -20 -37 -28t-47 -8h-151z" /> +<glyph unicode="î" horiz-adv-x="555" d="M-68 1196l235 285h237l235 -285h-169q-32 0 -51 18l-108 98q-5 5 -10.5 10t-10.5 12q-5 -7 -11 -12t-11 -10l-109 -98q-8 -7 -22 -12.5t-30 -5.5h-175zM152 0v1051h252v-1051h-252z" /> +<glyph unicode="ï" horiz-adv-x="555" d="M-47 1323q0 30 11 56t30.5 45.5t44.5 30.5t53 11q29 0 55 -11t46 -30.5t31 -45.5t11 -56q0 -29 -11 -54t-31 -43.5t-46 -29t-55 -10.5q-28 0 -53 10.5t-44.5 29t-30.5 43.5t-11 54zM152 0v1051h252v-1051h-252zM336 1323q0 30 11 56t30 45.5t44.5 30.5t54.5 11t55 -11 t45.5 -30.5t30.5 -45.5t11 -56q0 -29 -11 -54t-30.5 -43.5t-45.5 -29t-55 -10.5t-54.5 10.5t-44.5 29t-30 43.5t-11 54z" /> +<glyph unicode="ð" horiz-adv-x="1163" d="M68 485q0 94 33 179.5t94 149.5t147 101.5t193 37.5q97 0 178 -35t143 -103q-22 109 -73 187t-138 137l-203 -131l-47 79q-10 16 -10 34q0 31 33 49l77 44q-33 13 -69.5 24.5t-76.5 23.5q-26 7 -42.5 25.5t-16.5 48.5q0 16 8 43l30 87q103 -17 199 -49t181 -82l180 117 l50 -82q10 -17 10 -32q0 -14 -7.5 -26.5t-21.5 -20.5l-83 -47q58 -52 105 -116t81 -141t52 -168t18 -196q0 -151 -34.5 -269t-101 -200.5t-165 -125.5t-225.5 -43q-106 0 -197 34t-158 98.5t-105 157.5t-38 210zM318 483q0 -75 20 -131.5t54.5 -95.5t80.5 -59t99 -20 q59 0 109.5 21.5t87.5 69t59 123.5t25 184q-15 38 -39 72t-57 59t-75.5 40t-95.5 15q-66 0 -115.5 -21.5t-83.5 -59.5t-51.5 -88t-17.5 -109z" /> +<glyph unicode="ñ" horiz-adv-x="1164" d="M135 0v1051h155q49 0 64 -46l18 -83q32 33 67 59.5t74.5 46t84.5 29.5t98 10q86 0 152.5 -29t111.5 -82t68 -126t23 -161v-669h-253v669q0 96 -44.5 148.5t-133.5 52.5q-66 0 -123.5 -29.5t-108.5 -80.5v-760h-253zM266 1222q0 57 16 103.5t44.5 80t67 52t83.5 18.5 q37 0 69 -13.5t60 -29t51.5 -28.5t43.5 -13q31 0 48.5 16.5t17.5 60.5h153q0 -57 -15.5 -103.5t-43.5 -80t-66 -51t-85 -17.5q-37 0 -68.5 13t-59 28.5t-51.5 28.5t-45 13q-30 0 -46.5 -17.5t-16.5 -60.5h-157z" /> +<glyph unicode="ò" horiz-adv-x="1164" d="M62 527q0 124 37.5 224.5t105.5 170t164.5 107.5t214.5 38t213.5 -38t163 -107.5t104.5 -170t37 -224.5q0 -125 -37 -225t-104.5 -171t-163.5 -108.5t-213 -37.5q-118 0 -214.5 37.5t-164.5 108.5t-105.5 171t-37.5 225zM257 1497h237q42 0 61.5 -14t35.5 -40l146 -249 h-144q-29 0 -47 7.5t-36 28.5zM324 525q0 -169 63.5 -257.5t196.5 -88.5q131 0 194 88t63 258t-63 259t-194 89q-133 0 -196.5 -89.5t-63.5 -258.5z" /> +<glyph unicode="ó" horiz-adv-x="1164" d="M62 527q0 124 37.5 224.5t105.5 170t164.5 107.5t214.5 38t213.5 -38t163 -107.5t104.5 -170t37 -224.5q0 -125 -37 -225t-104.5 -171t-163.5 -108.5t-213 -37.5q-118 0 -214.5 37.5t-164.5 108.5t-105.5 171t-37.5 225zM324 525q0 -169 63.5 -257.5t196.5 -88.5 q131 0 194 88t63 258t-63 259t-194 89q-133 0 -196.5 -89.5t-63.5 -258.5zM451 1194l145 249q15 27 35.5 40.5t61.5 13.5h246l-253 -267q-19 -20 -37 -28t-47 -8h-151z" /> +<glyph unicode="ô" horiz-adv-x="1164" d="M62 527q0 124 37.5 224.5t105.5 170t164.5 107.5t214.5 38t213.5 -38t163 -107.5t104.5 -170t37 -224.5q0 -125 -37 -225t-104.5 -171t-163.5 -108.5t-213 -37.5q-118 0 -214.5 37.5t-164.5 108.5t-105.5 171t-37.5 225zM231 1196l235 285h237l235 -285h-169 q-32 0 -51 18l-108 98q-5 5 -10.5 10t-10.5 12q-5 -7 -11 -12t-11 -10l-109 -98q-8 -7 -22 -12.5t-30 -5.5h-175zM324 525q0 -169 63.5 -257.5t196.5 -88.5q131 0 194 88t63 258t-63 259t-194 89q-133 0 -196.5 -89.5t-63.5 -258.5z" /> +<glyph unicode="õ" horiz-adv-x="1164" d="M62 527q0 124 37.5 224.5t105.5 170t164.5 107.5t214.5 38t213.5 -38t163 -107.5t104.5 -170t37 -224.5q0 -125 -37 -225t-104.5 -171t-163.5 -108.5t-213 -37.5q-118 0 -214.5 37.5t-164.5 108.5t-105.5 171t-37.5 225zM259 1222q0 57 16 103.5t44.5 80t67 52t83.5 18.5 q37 0 69 -13.5t60 -29t51.5 -28.5t43.5 -13q31 0 48.5 16.5t17.5 60.5h153q0 -57 -15.5 -103.5t-43.5 -80t-66 -51t-85 -17.5q-37 0 -68.5 13t-59 28.5t-51.5 28.5t-45 13q-30 0 -46.5 -17.5t-16.5 -60.5h-157zM324 525q0 -169 63.5 -257.5t196.5 -88.5q131 0 194 88t63 258 t-63 259t-194 89q-133 0 -196.5 -89.5t-63.5 -258.5z" /> +<glyph unicode="ö" horiz-adv-x="1164" d="M62 527q0 124 37.5 224.5t105.5 170t164.5 107.5t214.5 38t213.5 -38t163 -107.5t104.5 -170t37 -224.5q0 -125 -37 -225t-104.5 -171t-163.5 -108.5t-213 -37.5q-118 0 -214.5 37.5t-164.5 108.5t-105.5 171t-37.5 225zM252 1323q0 30 11 56t30.5 45.5t44.5 30.5t53 11 q29 0 55 -11t46 -30.5t31 -45.5t11 -56q0 -29 -11 -54t-31 -43.5t-46 -29t-55 -10.5q-28 0 -53 10.5t-44.5 29t-30.5 43.5t-11 54zM324 525q0 -169 63.5 -257.5t196.5 -88.5q131 0 194 88t63 258t-63 259t-194 89q-133 0 -196.5 -89.5t-63.5 -258.5zM635 1323q0 30 11 56 t30 45.5t44.5 30.5t54.5 11t55 -11t45.5 -30.5t30.5 -45.5t11 -56q0 -29 -11 -54t-30.5 -43.5t-45.5 -29t-55 -10.5t-54.5 10.5t-44.5 29t-30 43.5t-11 54z" /> +<glyph unicode="÷" d="M93 594v187h1000v-187h-1000zM437 323q0 32 12 60.5t32.5 49t49 32.5t61.5 12q32 0 60.5 -12t49.5 -32.5t33.5 -49.5t12.5 -60q0 -33 -12.5 -61.5t-33.5 -48.5t-49.5 -32t-60.5 -12q-33 0 -61.5 12t-49 32t-32.5 48.5t-12 61.5zM437 1052q0 32 12 60.5t32.5 49t49 32.5 t61.5 12q32 0 60.5 -12t49.5 -32.5t33.5 -49.5t12.5 -60q0 -33 -12.5 -61t-33.5 -48.5t-49.5 -32.5t-60.5 -12q-33 0 -61.5 12t-49 32.5t-32.5 48.5t-12 61z" /> +<glyph unicode="ø" horiz-adv-x="1164" d="M44 -79l158 214q-68 71 -104 169.5t-36 222.5t37.5 224.5t105.5 170t164.5 107.5t214.5 38q74 0 139 -15.5t121 -43.5l57 76q13 18 24.5 31t24.5 21.5t28 12t38 3.5h125l-175 -238q66 -71 101 -168t35 -219q0 -125 -37 -225t-104.5 -171t-163.5 -108.5t-213 -37.5 q-74 0 -139 14.5t-121 43.5l-35 -48q-30 -40 -71.5 -57t-80.5 -17h-93zM307 525q0 -122 33 -201l385 522q-57 35 -141 35q-134 0 -205.5 -93t-71.5 -263zM442 204q57 -33 142 -33q131 0 202 92t71 262q0 60 -8 109.5t-24 88.5z" /> +<glyph unicode="ù" horiz-adv-x="1164" d="M114 383v668h253v-668q0 -96 44.5 -149t133.5 -53q66 0 123 29.5t108 80.5v760h253v-1051h-155q-49 0 -64 46l-17 84q-33 -33 -68 -60t-74.5 -46t-85 -29.5t-97.5 -10.5q-86 0 -152 29t-111 82t-68 126.5t-23 161.5zM252 1497h237q42 0 61.5 -14t35.5 -40l146 -249h-144 q-29 0 -47 7.5t-36 28.5z" /> +<glyph unicode="ú" horiz-adv-x="1164" d="M114 383v668h253v-668q0 -96 44.5 -149t133.5 -53q66 0 123 29.5t108 80.5v760h253v-1051h-155q-49 0 -64 46l-17 84q-33 -33 -68 -60t-74.5 -46t-85 -29.5t-97.5 -10.5q-86 0 -152 29t-111 82t-68 126.5t-23 161.5zM446 1194l145 249q15 27 35.5 40.5t61.5 13.5h246 l-253 -267q-19 -20 -37 -28t-47 -8h-151z" /> +<glyph unicode="û" horiz-adv-x="1164" d="M114 383v668h253v-668q0 -96 44.5 -149t133.5 -53q66 0 123 29.5t108 80.5v760h253v-1051h-155q-49 0 -64 46l-17 84q-33 -33 -68 -60t-74.5 -46t-85 -29.5t-97.5 -10.5q-86 0 -152 29t-111 82t-68 126.5t-23 161.5zM226 1196l235 285h237l235 -285h-169q-32 0 -51 18 l-108 98q-5 5 -10.5 10t-10.5 12q-5 -7 -11 -12t-11 -10l-109 -98q-8 -7 -22 -12.5t-30 -5.5h-175z" /> +<glyph unicode="ü" horiz-adv-x="1164" d="M114 383v668h253v-668q0 -96 44.5 -149t133.5 -53q66 0 123 29.5t108 80.5v760h253v-1051h-155q-49 0 -64 46l-17 84q-33 -33 -68 -60t-74.5 -46t-85 -29.5t-97.5 -10.5q-86 0 -152 29t-111 82t-68 126.5t-23 161.5zM247 1323q0 30 11 56t30.5 45.5t44.5 30.5t53 11 q29 0 55 -11t46 -30.5t31 -45.5t11 -56q0 -29 -11 -54t-31 -43.5t-46 -29t-55 -10.5q-28 0 -53 10.5t-44.5 29t-30.5 43.5t-11 54zM630 1323q0 30 11 56t30 45.5t44.5 30.5t54.5 11t55 -11t45.5 -30.5t30.5 -45.5t11 -56q0 -29 -11 -54t-30.5 -43.5t-45.5 -29t-55 -10.5 t-54.5 10.5t-44.5 29t-30 43.5t-11 54z" /> +<glyph unicode="ý" horiz-adv-x="1092" d="M7 1051h221q31 0 47.5 -14.5t24.5 -32.5l224 -545q11 -27 19.5 -55.5t14.5 -57.5q8 30 18 57.5t21 56.5l211 544q8 20 27 33.5t43 13.5h202l-572 -1340q-11 -27 -29 -40.5t-55 -13.5h-188l196 421zM433 1194l145 249q15 27 35.5 40.5t61.5 13.5h246l-253 -267 q-19 -20 -37 -28t-47 -8h-151z" /> +<glyph unicode="þ" horiz-adv-x="1158" d="M135 -343v1865h253v-600q62 67 141 106t185 39q86 0 157 -35.5t123 -103t80 -166.5t28 -228q0 -118 -32 -218.5t-90.5 -174t-142 -115t-187.5 -41.5q-45 0 -83 8t-69.5 24t-58 38t-51.5 49v-447h-253zM388 272q43 -53 93.5 -74t109.5 -21q57 0 103.5 21.5t79 65.5t50 111 t17.5 159t-15 156t-42.5 104t-67 58t-89.5 18q-79 0 -135 -33t-104 -94v-471z" /> +<glyph unicode="ÿ" horiz-adv-x="1092" d="M7 1051h221q31 0 47.5 -14.5t24.5 -32.5l224 -545q11 -27 19.5 -55.5t14.5 -57.5q8 30 18 57.5t21 56.5l211 544q8 20 27 33.5t43 13.5h202l-572 -1340q-11 -27 -29 -40.5t-55 -13.5h-188l196 421zM234 1323q0 30 11 56t30.5 45.5t44.5 30.5t53 11q29 0 55 -11t46 -30.5 t31 -45.5t11 -56q0 -29 -11 -54t-31 -43.5t-46 -29t-55 -10.5q-28 0 -53 10.5t-44.5 29t-30.5 43.5t-11 54zM617 1323q0 30 11 56t30 45.5t44.5 30.5t54.5 11t55 -11t45.5 -30.5t30.5 -45.5t11 -56q0 -29 -11 -54t-30.5 -43.5t-45.5 -29t-55 -10.5t-54.5 10.5t-44.5 29 t-30 43.5t-11 54z" /> +<glyph unicode="Œ" horiz-adv-x="2214" d="M69 740q0 163 48.5 302t137.5 240t213.5 158t275.5 57q148 0 269.5 -54t210.5 -152v190h901v-219h-657v-411h519v-212h-519v-419h657v-220h-901v189q-89 -96 -209.5 -150t-270.5 -54q-152 0 -276 56.5t-213 157.5t-137.5 240t-48.5 301zM350 740q0 -122 29.5 -219.5 t83.5 -166t133 -105.5t177 -37q97 0 175 37t132.5 105.5t83 166t28.5 219.5t-28.5 220t-83 167t-132.5 106t-175 37q-98 0 -177 -37t-133 -106t-83.5 -167t-29.5 -220z" /> +<glyph unicode="œ" horiz-adv-x="1790" d="M62 527q0 124 36 224.5t100 170t153.5 107.5t197.5 38q127 0 222.5 -52.5t156.5 -150.5q56 92 150.5 147.5t224.5 55.5q89 0 165.5 -34.5t132.5 -99t87.5 -156.5t31.5 -207q0 -29 -2.5 -47.5t-8.5 -29.5t-17 -15.5t-28 -4.5h-612q14 -151 85 -222t184 -71q57 0 98 14.5 t72.5 32t56 31.5t47.5 14q27 0 45 -23l74 -92q-42 -49 -92 -82.5t-105 -53.5t-111 -28t-110 -8q-111 0 -207.5 49.5t-158.5 155.5q-61 -99 -160 -152t-230 -53q-104 0 -192 37.5t-151.5 108.5t-99 171t-35.5 225zM324 525q0 -170 57.5 -258t181.5 -88q121 0 179.5 88 t58.5 258t-58.5 259t-179.5 89q-123 0 -181 -89.5t-58 -258.5zM1053 626h443q0 50 -12.5 97t-37.5 83.5t-64 58t-91 21.5q-108 0 -166.5 -68t-71.5 -192z" /> +<glyph unicode="Ÿ" horiz-adv-x="1340" d="M-7 1481h243q36 0 56.5 -17.5t35.5 -44.5l271 -494q24 -44 41 -83.5t32 -77.5q13 39 30 78.5t40 82.5l270 494q11 23 33.5 42.5t57.5 19.5h244l-539 -906v-575h-276v575zM314 1707q0 28 11 53t29.5 44t42.5 30t50 11q29 0 54.5 -11t45 -30t31 -44t11.5 -53t-11.5 -52.5 t-31 -43t-45 -28.5t-54.5 -10q-27 0 -50.5 10t-42 28.5t-29.5 43t-11 52.5zM757 1707q0 28 10.5 53t29.5 44t44 30t53 11q29 0 54 -11t43.5 -30t29 -44t10.5 -53t-10.5 -52.5t-29 -43t-43.5 -28.5t-54 -10q-28 0 -53 10t-44 28.5t-29.5 43t-10.5 52.5z" /> +<glyph unicode="ˆ" horiz-adv-x="653" d="M-27 1196l235 285h237l235 -285h-169q-32 0 -51 18l-108 98q-5 5 -10.5 10t-10.5 12q-5 -7 -11 -12t-11 -10l-109 -98q-8 -7 -22 -12.5t-30 -5.5h-175z" /> +<glyph unicode="˜" horiz-adv-x="653" d="M1 1222q0 57 16 103.5t44.5 80t67 52t83.5 18.5q37 0 69 -13.5t60 -29t51.5 -28.5t43.5 -13q31 0 48.5 16.5t17.5 60.5h153q0 -57 -15.5 -103.5t-43.5 -80t-66 -51t-85 -17.5q-37 0 -68.5 13t-59 28.5t-51.5 28.5t-45 13q-30 0 -46.5 -17.5t-16.5 -60.5h-157z" /> +<glyph unicode=" " horiz-adv-x="959" /> +<glyph unicode=" " horiz-adv-x="1919" /> +<glyph unicode=" " horiz-adv-x="959" /> +<glyph unicode=" " horiz-adv-x="1919" /> +<glyph unicode=" " horiz-adv-x="639" /> +<glyph unicode=" " horiz-adv-x="479" /> +<glyph unicode=" " horiz-adv-x="319" /> +<glyph unicode=" " horiz-adv-x="319" /> +<glyph unicode=" " horiz-adv-x="239" /> +<glyph unicode=" " horiz-adv-x="383" /> +<glyph unicode=" " horiz-adv-x="106" /> +<glyph unicode="‐" horiz-adv-x="735" d="M102 513v211h531v-211h-531z" /> +<glyph unicode="‑" horiz-adv-x="735" d="M102 513v211h531v-211h-531z" /> +<glyph unicode="‒" horiz-adv-x="735" d="M102 513v211h531v-211h-531z" /> +<glyph unicode="–" horiz-adv-x="1164" d="M167 524v179h830v-179h-830z" /> +<glyph unicode="—" horiz-adv-x="1724" d="M167 524v179h1389v-179h-1389z" /> +<glyph unicode="‘" horiz-adv-x="460" d="M100 1230q0 102 52 196t150 171l79 -48q10 -6 14 -14.5t4 -16.5q0 -9 -4 -17.5t-9 -14.5q-13 -15 -28 -35.5t-27.5 -45t-20.5 -53t-8 -61.5q0 -35 11.5 -74t37.5 -82q9 -14 9 -29q0 -33 -36 -46l-154 -60q-70 114 -70 230z" /> +<glyph unicode="’" horiz-adv-x="460" d="M88 1052q0 19 13 32q13 15 28 35.5t27.5 44.5t20 52.5t7.5 61.5q0 35 -11 74.5t-38 83.5q-9 13 -9 27q0 33 38 46l152 60q36 -57 53 -114.5t17 -115.5q0 -102 -51.5 -195t-149.5 -172l-79 48q-10 6 -14 14.5t-4 17.5z" /> +<glyph unicode="‚" horiz-adv-x="460" d="M88 -219q0 19 13 33q13 15 28 35t27.5 44t20 52.5t7.5 61.5q0 35 -11 74.5t-38 83.5q-9 13 -9 28q0 33 38 46l152 59q36 -57 53 -114.5t17 -114.5q0 -102 -51.5 -195.5t-149.5 -172.5l-79 48q-10 6 -14 15t-4 17z" /> +<glyph unicode="“" horiz-adv-x="800" d="M100 1230q0 102 52 196t150 171l79 -48q10 -6 14 -14.5t4 -16.5q0 -9 -4 -17.5t-9 -14.5q-13 -15 -28 -35.5t-27.5 -45t-20.5 -53t-8 -61.5q0 -35 11.5 -74t37.5 -82q9 -14 9 -29q0 -33 -36 -46l-154 -60q-70 114 -70 230zM440 1230q0 102 52 196t150 171l79 -48 q10 -6 14 -14.5t4 -16.5q0 -9 -4 -17.5t-9 -14.5q-13 -15 -28 -35.5t-27.5 -45t-20.5 -53t-8 -61.5q0 -35 11.5 -74t37.5 -82q9 -14 9 -29q0 -33 -36 -46l-154 -60q-70 114 -70 230z" /> +<glyph unicode="”" horiz-adv-x="800" d="M88 1052q0 19 13 32q13 15 28 35t27.5 44.5t20 53t7.5 61.5q0 35 -11 74.5t-38 83.5q-9 13 -9 27q0 33 38 46l152 60q36 -57 53 -114.5t17 -115.5q0 -102 -51.5 -195t-149.5 -172l-79 48q-10 6 -14 14.5t-4 17.5zM428 1052q0 19 13 32q13 15 28 35t27.5 44.5t20 53 t7.5 61.5q0 35 -11 74.5t-38 83.5q-9 13 -9 27q0 33 38 46l152 60q36 -57 53 -114.5t17 -115.5q0 -102 -51.5 -195t-149.5 -172l-79 48q-10 6 -14 14.5t-4 17.5z" /> +<glyph unicode="„" horiz-adv-x="800" d="M88 -219q0 19 13 33q13 15 28 34.5t27.5 44t20 53t7.5 61.5q0 35 -11 74.5t-38 83.5q-9 13 -9 28q0 33 38 46l152 59q36 -57 53 -114.5t17 -114.5q0 -102 -51.5 -195.5t-149.5 -172.5l-79 48q-10 6 -14 15t-4 17zM428 -219q0 19 13 33q13 15 28 34.5t27.5 44t20 53 t7.5 61.5q0 35 -11 74.5t-38 83.5q-9 13 -9 28q0 33 38 46l152 59q36 -57 53 -114.5t17 -114.5q0 -102 -51.5 -195.5t-149.5 -172.5l-79 48q-10 6 -14 15t-4 17z" /> +<glyph unicode="•" d="M146 607q0 92 35.5 173t96 142t141.5 96t173 35t174 -35t142.5 -96t95.5 -142t35 -173q0 -91 -35 -171.5t-95.5 -141t-142.5 -95t-174 -34.5t-173 34.5t-141.5 95t-96 141t-35.5 171.5z" /> +<glyph unicode="…" horiz-adv-x="1553" d="M75 139q0 32 11.5 60.5t32.5 49t50 33t61 12.5t60.5 -12.5t49 -33t33 -49t12.5 -60.5q0 -33 -12.5 -61t-33 -48.5t-49 -32t-60.5 -11.5q-33 0 -61.5 11.5t-49.5 32t-32.5 48.5t-11.5 61zM622 139q0 32 11.5 60.5t32.5 49t49.5 33t61.5 12.5q32 0 60.5 -12.5t49 -33 t33 -49t12.5 -60.5q0 -33 -12.5 -61t-33 -48.5t-49 -32t-60.5 -11.5q-33 0 -61.5 11.5t-49.5 32t-32.5 48.5t-11.5 61zM1168 139q0 32 12 60.5t33 49t49.5 33t61.5 12.5q32 0 60.5 -12.5t49 -33t33 -49t12.5 -60.5q0 -33 -12.5 -61t-33 -48.5t-49 -32t-60.5 -11.5 q-33 0 -61.5 11.5t-49.5 32t-33 48.5t-12 61z" /> +<glyph unicode=" " horiz-adv-x="383" /> +<glyph unicode="‹" horiz-adv-x="657" d="M126 535v32l262 406l83 -39q20 -9 29.5 -23.5t9.5 -31.5q0 -22 -13 -44l-142 -241q-14 -27 -32 -43q16 -14 32 -43l142 -242q13 -23 13 -44q0 -36 -39 -54l-83 -39z" /> +<glyph unicode="›" horiz-adv-x="657" d="M147 223q0 20 14 43l141 242q16 29 33 43q-18 16 -33 43l-141 241q-13 23 -14 44q0 37 39 55l83 39l262 -406v-32l-262 -406l-83 39q-20 9 -29.5 23.5t-9.5 31.5z" /> +<glyph unicode=" " horiz-adv-x="479" /> +<glyph unicode="€" d="M38 552v140h119q-1 11 -1 23.5v24.5v34.5t1 34.5h-119v141h136q24 125 75 226t124.5 171.5t167 109t202.5 38.5q142 0 244 -55t170 -148l-89 -96q-10 -11 -21.5 -20t-31.5 -9q-14 0 -26 8.5t-26.5 20.5t-32 26.5t-41.5 27t-56.5 20.5t-77.5 8q-121 0 -204 -83t-116 -245 h514v-78q0 -24 -19 -43.5t-51 -19.5h-461q-1 -17 -1 -34v-35v-24.5t1 -23.5h434v-77q0 -24 -19 -43.5t-51 -19.5h-352q29 -176 110.5 -262.5t201.5 -86.5q74 0 118.5 20t73 44.5t47 44.5t41.5 20q11 0 20 -3.5t17 -14.5l109 -100q-72 -111 -182 -169.5t-257 -58.5 q-120 0 -215.5 40.5t-166.5 114t-116 178t-63 233.5h-130z" /> +<glyph unicode="™" horiz-adv-x="1486" d="M58 1337v144h510v-144h-168v-474h-175v474h-167zM642 863v618h151q23 0 34.5 -3t21.5 -24l134 -261q8 -18 15 -36t12 -37q6 18 13 37t16 36l137 261q10 19 22 23t34 4h150v-618h-153v309l11 102l-157 -309q-19 -38 -59 -38h-25q-42 0 -60 38l-155 304l12 -97v-309h-154z " /> +<glyph unicode="◼" horiz-adv-x="1049" d="M0 0v1050h1050v-1050h-1050z" /> +<hkern u1=""" u2="›" k="173" /> +<hkern u1=""" u2="‹" k="173" /> +<hkern u1=""" u2="•" k="173" /> +<hkern u1=""" u2="„" k="218" /> +<hkern u1=""" u2="‚" k="218" /> +<hkern u1=""" u2="—" k="173" /> +<hkern u1=""" u2="–" k="173" /> +<hkern u1=""" u2="Ÿ" k="-37" /> +<hkern u1=""" u2="œ" k="98" /> +<hkern u1=""" u2="Œ" k="43" /> +<hkern u1=""" u2="ø" k="98" /> +<hkern u1=""" u2="ö" k="98" /> +<hkern u1=""" u2="õ" k="98" /> +<hkern u1=""" u2="ô" k="98" /> +<hkern u1=""" u2="ó" k="98" /> +<hkern u1=""" u2="ò" k="98" /> +<hkern u1=""" u2="ð" k="98" /> +<hkern u1=""" u2="ë" k="98" /> +<hkern u1=""" u2="ê" k="98" /> +<hkern u1=""" u2="é" k="98" /> +<hkern u1=""" u2="è" k="98" /> +<hkern u1=""" u2="ç" k="98" /> +<hkern u1=""" u2="æ" k="68" /> +<hkern u1=""" u2="å" k="68" /> +<hkern u1=""" u2="ä" k="68" /> +<hkern u1=""" u2="ã" k="68" /> +<hkern u1=""" u2="â" k="68" /> +<hkern u1=""" u2="á" k="68" /> +<hkern u1=""" u2="à" k="68" /> +<hkern u1=""" u2="Ý" k="-37" /> +<hkern u1=""" u2="Ø" k="43" /> +<hkern u1=""" u2="Ö" k="43" /> +<hkern u1=""" u2="Õ" k="43" /> +<hkern u1=""" u2="Ô" k="43" /> +<hkern u1=""" u2="Ó" k="43" /> +<hkern u1=""" u2="Ò" k="43" /> +<hkern u1=""" u2="Ç" k="43" /> +<hkern u1=""" u2="Æ" k="196" /> +<hkern u1=""" u2="Å" k="196" /> +<hkern u1=""" u2="Ä" k="196" /> +<hkern u1=""" u2="Ã" k="196" /> +<hkern u1=""" u2="Â" k="196" /> +<hkern u1=""" u2="Á" k="196" /> +<hkern u1=""" u2="À" k="196" /> +<hkern u1=""" u2="»" k="173" /> +<hkern u1=""" u2="·" k="173" /> +<hkern u1=""" u2="®" k="43" /> +<hkern u1=""" u2="­" k="173" /> +<hkern u1=""" u2="«" k="173" /> +<hkern u1=""" u2="©" k="43" /> +<hkern u1=""" u2="q" k="98" /> +<hkern u1=""" u2="o" k="98" /> +<hkern u1=""" u2="e" k="98" /> +<hkern u1=""" u2="d" k="98" /> +<hkern u1=""" u2="c" k="98" /> +<hkern u1=""" u2="a" k="68" /> +<hkern u1=""" u2="\" k="-45" /> +<hkern u1=""" u2="Y" k="-37" /> +<hkern u1=""" u2="W" k="-45" /> +<hkern u1=""" u2="V" k="-45" /> +<hkern u1=""" u2="Q" k="43" /> +<hkern u1=""" u2="O" k="43" /> +<hkern u1=""" u2="G" k="43" /> +<hkern u1=""" u2="C" k="43" /> +<hkern u1=""" u2="A" k="196" /> +<hkern u1=""" u2="@" k="43" /> +<hkern u1=""" u2="/" k="196" /> +<hkern u1=""" u2="." k="218" /> +<hkern u1=""" u2="-" k="173" /> +<hkern u1=""" u2="," k="218" /> +<hkern u1=""" u2="&" k="196" /> +<hkern u1="'" u2="›" k="173" /> +<hkern u1="'" u2="‹" k="173" /> +<hkern u1="'" u2="•" k="173" /> +<hkern u1="'" u2="„" k="218" /> +<hkern u1="'" u2="‚" k="218" /> +<hkern u1="'" u2="—" k="173" /> +<hkern u1="'" u2="–" k="173" /> +<hkern u1="'" u2="Ÿ" k="-37" /> +<hkern u1="'" u2="œ" k="98" /> +<hkern u1="'" u2="Œ" k="43" /> +<hkern u1="'" u2="ø" k="98" /> +<hkern u1="'" u2="ö" k="98" /> +<hkern u1="'" u2="õ" k="98" /> +<hkern u1="'" u2="ô" k="98" /> +<hkern u1="'" u2="ó" k="98" /> +<hkern u1="'" u2="ò" k="98" /> +<hkern u1="'" u2="ð" k="98" /> +<hkern u1="'" u2="ë" k="98" /> +<hkern u1="'" u2="ê" k="98" /> +<hkern u1="'" u2="é" k="98" /> +<hkern u1="'" u2="è" k="98" /> +<hkern u1="'" u2="ç" k="98" /> +<hkern u1="'" u2="æ" k="68" /> +<hkern u1="'" u2="å" k="68" /> +<hkern u1="'" u2="ä" k="68" /> +<hkern u1="'" u2="ã" k="68" /> +<hkern u1="'" u2="â" k="68" /> +<hkern u1="'" u2="á" k="68" /> +<hkern u1="'" u2="à" k="68" /> +<hkern u1="'" u2="Ý" k="-37" /> +<hkern u1="'" u2="Ø" k="43" /> +<hkern u1="'" u2="Ö" k="43" /> +<hkern u1="'" u2="Õ" k="43" /> +<hkern u1="'" u2="Ô" k="43" /> +<hkern u1="'" u2="Ó" k="43" /> +<hkern u1="'" u2="Ò" k="43" /> +<hkern u1="'" u2="Ç" k="43" /> +<hkern u1="'" u2="Æ" k="196" /> +<hkern u1="'" u2="Å" k="196" /> +<hkern u1="'" u2="Ä" k="196" /> +<hkern u1="'" u2="Ã" k="196" /> +<hkern u1="'" u2="Â" k="196" /> +<hkern u1="'" u2="Á" k="196" /> +<hkern u1="'" u2="À" k="196" /> +<hkern u1="'" u2="»" k="173" /> +<hkern u1="'" u2="·" k="173" /> +<hkern u1="'" u2="®" k="43" /> +<hkern u1="'" u2="­" k="173" /> +<hkern u1="'" u2="«" k="173" /> +<hkern u1="'" u2="©" k="43" /> +<hkern u1="'" u2="q" k="98" /> +<hkern u1="'" u2="o" k="98" /> +<hkern u1="'" u2="e" k="98" /> +<hkern u1="'" u2="d" k="98" /> +<hkern u1="'" u2="c" k="98" /> +<hkern u1="'" u2="a" k="68" /> +<hkern u1="'" u2="\" k="-45" /> +<hkern u1="'" u2="Y" k="-37" /> +<hkern u1="'" u2="W" k="-45" /> +<hkern u1="'" u2="V" k="-45" /> +<hkern u1="'" u2="Q" k="43" /> +<hkern u1="'" u2="O" k="43" /> +<hkern u1="'" u2="G" k="43" /> +<hkern u1="'" u2="C" k="43" /> +<hkern u1="'" u2="A" k="196" /> +<hkern u1="'" u2="@" k="43" /> +<hkern u1="'" u2="/" k="196" /> +<hkern u1="'" u2="." k="218" /> +<hkern u1="'" u2="-" k="173" /> +<hkern u1="'" u2="," k="218" /> +<hkern u1="'" u2="&" k="196" /> +<hkern u1="(" u2="œ" k="37" /> +<hkern u1="(" u2="Œ" k="41" /> +<hkern u1="(" u2="ø" k="37" /> +<hkern u1="(" u2="ö" k="37" /> +<hkern u1="(" u2="õ" k="37" /> +<hkern u1="(" u2="ô" k="37" /> +<hkern u1="(" u2="ó" k="37" /> +<hkern u1="(" u2="ò" k="37" /> +<hkern u1="(" u2="ð" k="37" /> +<hkern u1="(" u2="ë" k="37" /> +<hkern u1="(" u2="ê" k="37" /> +<hkern u1="(" u2="é" k="37" /> +<hkern u1="(" u2="è" k="37" /> +<hkern u1="(" u2="ç" k="37" /> +<hkern u1="(" u2="Ø" k="41" /> +<hkern u1="(" u2="Ö" k="41" /> +<hkern u1="(" u2="Õ" k="41" /> +<hkern u1="(" u2="Ô" k="41" /> +<hkern u1="(" u2="Ó" k="41" /> +<hkern u1="(" u2="Ò" k="41" /> +<hkern u1="(" u2="Ç" k="41" /> +<hkern u1="(" u2="®" k="41" /> +<hkern u1="(" u2="©" k="41" /> +<hkern u1="(" u2="q" k="37" /> +<hkern u1="(" u2="o" k="37" /> +<hkern u1="(" u2="e" k="37" /> +<hkern u1="(" u2="d" k="37" /> +<hkern u1="(" u2="c" k="37" /> +<hkern u1="(" u2="Q" k="41" /> +<hkern u1="(" u2="O" k="41" /> +<hkern u1="(" u2="G" k="41" /> +<hkern u1="(" u2="C" k="41" /> +<hkern u1="(" u2="@" k="41" /> +<hkern u1="*" u2="›" k="173" /> +<hkern u1="*" u2="‹" k="173" /> +<hkern u1="*" u2="•" k="173" /> +<hkern u1="*" u2="„" k="218" /> +<hkern u1="*" u2="‚" k="218" /> +<hkern u1="*" u2="—" k="173" /> +<hkern u1="*" u2="–" k="173" /> +<hkern u1="*" u2="Ÿ" k="-37" /> +<hkern u1="*" u2="œ" k="98" /> +<hkern u1="*" u2="Œ" k="43" /> +<hkern u1="*" u2="ø" k="98" /> +<hkern u1="*" u2="ö" k="98" /> +<hkern u1="*" u2="õ" k="98" /> +<hkern u1="*" u2="ô" k="98" /> +<hkern u1="*" u2="ó" k="98" /> +<hkern u1="*" u2="ò" k="98" /> +<hkern u1="*" u2="ð" k="98" /> +<hkern u1="*" u2="ë" k="98" /> +<hkern u1="*" u2="ê" k="98" /> +<hkern u1="*" u2="é" k="98" /> +<hkern u1="*" u2="è" k="98" /> +<hkern u1="*" u2="ç" k="98" /> +<hkern u1="*" u2="æ" k="68" /> +<hkern u1="*" u2="å" k="68" /> +<hkern u1="*" u2="ä" k="68" /> +<hkern u1="*" u2="ã" k="68" /> +<hkern u1="*" u2="â" k="68" /> +<hkern u1="*" u2="á" k="68" /> +<hkern u1="*" u2="à" k="68" /> +<hkern u1="*" u2="Ý" k="-37" /> +<hkern u1="*" u2="Ø" k="43" /> +<hkern u1="*" u2="Ö" k="43" /> +<hkern u1="*" u2="Õ" k="43" /> +<hkern u1="*" u2="Ô" k="43" /> +<hkern u1="*" u2="Ó" k="43" /> +<hkern u1="*" u2="Ò" k="43" /> +<hkern u1="*" u2="Ç" k="43" /> +<hkern u1="*" u2="Æ" k="196" /> +<hkern u1="*" u2="Å" k="196" /> +<hkern u1="*" u2="Ä" k="196" /> +<hkern u1="*" u2="Ã" k="196" /> +<hkern u1="*" u2="Â" k="196" /> +<hkern u1="*" u2="Á" k="196" /> +<hkern u1="*" u2="À" k="196" /> +<hkern u1="*" u2="»" k="173" /> +<hkern u1="*" u2="·" k="173" /> +<hkern u1="*" u2="®" k="43" /> +<hkern u1="*" u2="­" k="173" /> +<hkern u1="*" u2="«" k="173" /> +<hkern u1="*" u2="©" k="43" /> +<hkern u1="*" u2="q" k="98" /> +<hkern u1="*" u2="o" k="98" /> +<hkern u1="*" u2="e" k="98" /> +<hkern u1="*" u2="d" k="98" /> +<hkern u1="*" u2="c" k="98" /> +<hkern u1="*" u2="a" k="68" /> +<hkern u1="*" u2="\" k="-45" /> +<hkern u1="*" u2="Y" k="-37" /> +<hkern u1="*" u2="W" k="-45" /> +<hkern u1="*" u2="V" k="-45" /> +<hkern u1="*" u2="Q" k="43" /> +<hkern u1="*" u2="O" k="43" /> +<hkern u1="*" u2="G" k="43" /> +<hkern u1="*" u2="C" k="43" /> +<hkern u1="*" u2="A" k="196" /> +<hkern u1="*" u2="@" k="43" /> +<hkern u1="*" u2="/" k="196" /> +<hkern u1="*" u2="." k="218" /> +<hkern u1="*" u2="-" k="173" /> +<hkern u1="*" u2="," k="218" /> +<hkern u1="*" u2="&" k="196" /> +<hkern u1="," u2="™" k="218" /> +<hkern u1="," u2="›" k="135" /> +<hkern u1="," u2="‹" k="135" /> +<hkern u1="," u2="•" k="135" /> +<hkern u1="," u2="”" k="218" /> +<hkern u1="," u2="“" k="218" /> +<hkern u1="," u2="’" k="218" /> +<hkern u1="," u2="‘" k="218" /> +<hkern u1="," u2="—" k="135" /> +<hkern u1="," u2="–" k="135" /> +<hkern u1="," u2="Ÿ" k="171" /> +<hkern u1="," u2="Œ" k="53" /> +<hkern u1="," u2="ÿ" k="139" /> +<hkern u1="," u2="ý" k="139" /> +<hkern u1="," u2="Ý" k="171" /> +<hkern u1="," u2="Ø" k="53" /> +<hkern u1="," u2="Ö" k="53" /> +<hkern u1="," u2="Õ" k="53" /> +<hkern u1="," u2="Ô" k="53" /> +<hkern u1="," u2="Ó" k="53" /> +<hkern u1="," u2="Ò" k="53" /> +<hkern u1="," u2="Ç" k="53" /> +<hkern u1="," u2="»" k="135" /> +<hkern u1="," u2="º" k="218" /> +<hkern u1="," u2="·" k="135" /> +<hkern u1="," u2="°" k="218" /> +<hkern u1="," u2="®" k="53" /> +<hkern u1="," u2="­" k="135" /> +<hkern u1="," u2="«" k="135" /> +<hkern u1="," u2="ª" k="218" /> +<hkern u1="," u2="©" k="53" /> +<hkern u1="," u2="y" k="139" /> +<hkern u1="," u2="w" k="73" /> +<hkern u1="," u2="v" k="139" /> +<hkern u1="," u2="\" k="184" /> +<hkern u1="," u2="Y" k="171" /> +<hkern u1="," u2="W" k="134" /> +<hkern u1="," u2="V" k="184" /> +<hkern u1="," u2="T" k="184" /> +<hkern u1="," u2="Q" k="53" /> +<hkern u1="," u2="O" k="53" /> +<hkern u1="," u2="G" k="53" /> +<hkern u1="," u2="C" k="53" /> +<hkern u1="," u2="@" k="53" /> +<hkern u1="," u2="-" k="135" /> +<hkern u1="," u2="*" k="218" /> +<hkern u1="," u2="'" k="218" /> +<hkern u1="," u2=""" k="218" /> +<hkern u1="-" u2="™" k="173" /> +<hkern u1="-" u2="„" k="135" /> +<hkern u1="-" u2="”" k="173" /> +<hkern u1="-" u2="“" k="173" /> +<hkern u1="-" u2="‚" k="135" /> +<hkern u1="-" u2="’" k="173" /> +<hkern u1="-" u2="‘" k="173" /> +<hkern u1="-" u2="Ÿ" k="164" /> +<hkern u1="-" u2="Ý" k="164" /> +<hkern u1="-" u2="Æ" k="69" /> +<hkern u1="-" u2="Å" k="69" /> +<hkern u1="-" u2="Ä" k="69" /> +<hkern u1="-" u2="Ã" k="69" /> +<hkern u1="-" u2="Â" k="69" /> +<hkern u1="-" u2="Á" k="69" /> +<hkern u1="-" u2="À" k="69" /> +<hkern u1="-" u2="º" k="173" /> +<hkern u1="-" u2="°" k="173" /> +<hkern u1="-" u2="ª" k="173" /> +<hkern u1="-" u2="\" k="119" /> +<hkern u1="-" u2="Z" k="49" /> +<hkern u1="-" u2="Y" k="164" /> +<hkern u1="-" u2="X" k="68" /> +<hkern u1="-" u2="W" k="37" /> +<hkern u1="-" u2="V" k="119" /> +<hkern u1="-" u2="T" k="184" /> +<hkern u1="-" u2="A" k="69" /> +<hkern u1="-" u2="/" k="69" /> +<hkern u1="-" u2="." k="135" /> +<hkern u1="-" u2="," k="135" /> +<hkern u1="-" u2="*" k="173" /> +<hkern u1="-" u2="'" k="173" /> +<hkern u1="-" u2="&" k="69" /> +<hkern u1="-" u2=""" k="173" /> +<hkern u1="." u2="™" k="218" /> +<hkern u1="." u2="›" k="135" /> +<hkern u1="." u2="‹" k="135" /> +<hkern u1="." u2="•" k="135" /> +<hkern u1="." u2="”" k="218" /> +<hkern u1="." u2="“" k="218" /> +<hkern u1="." u2="’" k="218" /> +<hkern u1="." u2="‘" k="218" /> +<hkern u1="." u2="—" k="135" /> +<hkern u1="." u2="–" k="135" /> +<hkern u1="." u2="Ÿ" k="171" /> +<hkern u1="." u2="Œ" k="53" /> +<hkern u1="." u2="ÿ" k="139" /> +<hkern u1="." u2="ý" k="139" /> +<hkern u1="." u2="Ý" k="171" /> +<hkern u1="." u2="Ø" k="53" /> +<hkern u1="." u2="Ö" k="53" /> +<hkern u1="." u2="Õ" k="53" /> +<hkern u1="." u2="Ô" k="53" /> +<hkern u1="." u2="Ó" k="53" /> +<hkern u1="." u2="Ò" k="53" /> +<hkern u1="." u2="Ç" k="53" /> +<hkern u1="." u2="»" k="135" /> +<hkern u1="." u2="º" k="218" /> +<hkern u1="." u2="·" k="135" /> +<hkern u1="." u2="°" k="218" /> +<hkern u1="." u2="®" k="53" /> +<hkern u1="." u2="­" k="135" /> +<hkern u1="." u2="«" k="135" /> +<hkern u1="." u2="ª" k="218" /> +<hkern u1="." u2="©" k="53" /> +<hkern u1="." u2="y" k="139" /> +<hkern u1="." u2="w" k="73" /> +<hkern u1="." u2="v" k="139" /> +<hkern u1="." u2="\" k="184" /> +<hkern u1="." u2="Y" k="171" /> +<hkern u1="." u2="W" k="134" /> +<hkern u1="." u2="V" k="184" /> +<hkern u1="." u2="T" k="184" /> +<hkern u1="." u2="Q" k="53" /> +<hkern u1="." u2="O" k="53" /> +<hkern u1="." u2="G" k="53" /> +<hkern u1="." u2="C" k="53" /> +<hkern u1="." u2="@" k="53" /> +<hkern u1="." u2="-" k="135" /> +<hkern u1="." u2="*" k="218" /> +<hkern u1="." u2="'" k="218" /> +<hkern u1="." u2=""" k="218" /> +<hkern u1="/" u2="™" k="-45" /> +<hkern u1="/" u2="›" k="119" /> +<hkern u1="/" u2="‹" k="119" /> +<hkern u1="/" u2="•" k="119" /> +<hkern u1="/" u2="„" k="201" /> +<hkern u1="/" u2="”" k="-45" /> +<hkern u1="/" u2="“" k="-45" /> +<hkern u1="/" u2="‚" k="201" /> +<hkern u1="/" u2="’" k="-45" /> +<hkern u1="/" u2="‘" k="-45" /> +<hkern u1="/" u2="—" k="119" /> +<hkern u1="/" u2="–" k="119" /> +<hkern u1="/" u2="œ" k="126" /> +<hkern u1="/" u2="Œ" k="57" /> +<hkern u1="/" u2="ÿ" k="60" /> +<hkern u1="/" u2="ý" k="60" /> +<hkern u1="/" u2="ü" k="101" /> +<hkern u1="/" u2="û" k="101" /> +<hkern u1="/" u2="ú" k="101" /> +<hkern u1="/" u2="ù" k="101" /> +<hkern u1="/" u2="ø" k="126" /> +<hkern u1="/" u2="ö" k="126" /> +<hkern u1="/" u2="õ" k="126" /> +<hkern u1="/" u2="ô" k="126" /> +<hkern u1="/" u2="ó" k="126" /> +<hkern u1="/" u2="ò" k="126" /> +<hkern u1="/" u2="ñ" k="101" /> +<hkern u1="/" u2="ð" k="126" /> +<hkern u1="/" u2="ë" k="126" /> +<hkern u1="/" u2="ê" k="126" /> +<hkern u1="/" u2="é" k="126" /> +<hkern u1="/" u2="è" k="126" /> +<hkern u1="/" u2="ç" k="126" /> +<hkern u1="/" u2="æ" k="126" /> +<hkern u1="/" u2="å" k="126" /> +<hkern u1="/" u2="ä" k="126" /> +<hkern u1="/" u2="ã" k="126" /> +<hkern u1="/" u2="â" k="126" /> +<hkern u1="/" u2="á" k="126" /> +<hkern u1="/" u2="à" k="126" /> +<hkern u1="/" u2="Ø" k="57" /> +<hkern u1="/" u2="Ö" k="57" /> +<hkern u1="/" u2="Õ" k="57" /> +<hkern u1="/" u2="Ô" k="57" /> +<hkern u1="/" u2="Ó" k="57" /> +<hkern u1="/" u2="Ò" k="57" /> +<hkern u1="/" u2="Ç" k="57" /> +<hkern u1="/" u2="Æ" k="173" /> +<hkern u1="/" u2="Å" k="173" /> +<hkern u1="/" u2="Ä" k="173" /> +<hkern u1="/" u2="Ã" k="173" /> +<hkern u1="/" u2="Â" k="173" /> +<hkern u1="/" u2="Á" k="173" /> +<hkern u1="/" u2="À" k="173" /> +<hkern u1="/" u2="»" k="119" /> +<hkern u1="/" u2="º" k="-45" /> +<hkern u1="/" u2="¹" k="-50" /> +<hkern u1="/" u2="·" k="119" /> +<hkern u1="/" u2="µ" k="101" /> +<hkern u1="/" u2="³" k="-50" /> +<hkern u1="/" u2="²" k="-50" /> +<hkern u1="/" u2="°" k="-45" /> +<hkern u1="/" u2="®" k="57" /> +<hkern u1="/" u2="­" k="119" /> +<hkern u1="/" u2="«" k="119" /> +<hkern u1="/" u2="ª" k="-45" /> +<hkern u1="/" u2="©" k="57" /> +<hkern u1="/" u2="z" k="93" /> +<hkern u1="/" u2="y" k="60" /> +<hkern u1="/" u2="x" k="69" /> +<hkern u1="/" u2="v" k="60" /> +<hkern u1="/" u2="u" k="101" /> +<hkern u1="/" u2="t" k="47" /> +<hkern u1="/" u2="s" k="111" /> +<hkern u1="/" u2="r" k="101" /> +<hkern u1="/" u2="q" k="126" /> +<hkern u1="/" u2="p" k="101" /> +<hkern u1="/" u2="o" k="126" /> +<hkern u1="/" u2="n" k="101" /> +<hkern u1="/" u2="m" k="101" /> +<hkern u1="/" u2="g" k="141" /> +<hkern u1="/" u2="f" k="31" /> +<hkern u1="/" u2="e" k="126" /> +<hkern u1="/" u2="d" k="126" /> +<hkern u1="/" u2="c" k="126" /> +<hkern u1="/" u2="a" k="126" /> +<hkern u1="/" u2="Q" k="57" /> +<hkern u1="/" u2="O" k="57" /> +<hkern u1="/" u2="J" k="160" /> +<hkern u1="/" u2="G" k="57" /> +<hkern u1="/" u2="C" k="57" /> +<hkern u1="/" u2="A" k="173" /> +<hkern u1="/" u2="@" k="57" /> +<hkern u1="/" u2="?" k="-40" /> +<hkern u1="/" u2=";" k="101" /> +<hkern u1="/" u2=":" k="101" /> +<hkern u1="/" u2="/" k="173" /> +<hkern u1="/" u2="." k="201" /> +<hkern u1="/" u2="-" k="119" /> +<hkern u1="/" u2="," k="201" /> +<hkern u1="/" u2="*" k="-45" /> +<hkern u1="/" u2="'" k="-45" /> +<hkern u1="/" u2="&" k="173" /> +<hkern u1="/" u2=""" k="-45" /> +<hkern u1="@" u2="™" k="43" /> +<hkern u1="@" u2="„" k="53" /> +<hkern u1="@" u2="”" k="43" /> +<hkern u1="@" u2="“" k="43" /> +<hkern u1="@" u2="‚" k="53" /> +<hkern u1="@" u2="’" k="43" /> +<hkern u1="@" u2="‘" k="43" /> +<hkern u1="@" u2="Ÿ" k="82" /> +<hkern u1="@" u2="Ý" k="82" /> +<hkern u1="@" u2="Æ" k="52" /> +<hkern u1="@" u2="Å" k="52" /> +<hkern u1="@" u2="Ä" k="52" /> +<hkern u1="@" u2="Ã" k="52" /> +<hkern u1="@" u2="Â" k="52" /> +<hkern u1="@" u2="Á" k="52" /> +<hkern u1="@" u2="À" k="52" /> +<hkern u1="@" u2="º" k="43" /> +<hkern u1="@" u2="°" k="43" /> +<hkern u1="@" u2="ª" k="43" /> +<hkern u1="@" u2="}" k="41" /> +<hkern u1="@" u2="]" k="41" /> +<hkern u1="@" u2="\" k="57" /> +<hkern u1="@" u2="Z" k="66" /> +<hkern u1="@" u2="Y" k="82" /> +<hkern u1="@" u2="X" k="31" /> +<hkern u1="@" u2="V" k="57" /> +<hkern u1="@" u2="T" k="80" /> +<hkern u1="@" u2="A" k="52" /> +<hkern u1="@" u2="/" k="52" /> +<hkern u1="@" u2="." k="53" /> +<hkern u1="@" u2="," k="53" /> +<hkern u1="@" u2="*" k="43" /> +<hkern u1="@" u2=")" k="41" /> +<hkern u1="@" u2="'" k="43" /> +<hkern u1="@" u2="&" k="52" /> +<hkern u1="@" u2=""" k="43" /> +<hkern u1="A" u2="™" k="196" /> +<hkern u1="A" u2="›" k="69" /> +<hkern u1="A" u2="‹" k="69" /> +<hkern u1="A" u2="•" k="69" /> +<hkern u1="A" u2="”" k="196" /> +<hkern u1="A" u2="“" k="196" /> +<hkern u1="A" u2="’" k="196" /> +<hkern u1="A" u2="‘" k="196" /> +<hkern u1="A" u2="—" k="69" /> +<hkern u1="A" u2="–" k="69" /> +<hkern u1="A" u2="Ÿ" k="186" /> +<hkern u1="A" u2="Œ" k="52" /> +<hkern u1="A" u2="ÿ" k="93" /> +<hkern u1="A" u2="ý" k="93" /> +<hkern u1="A" u2="Ý" k="186" /> +<hkern u1="A" u2="Ü" k="53" /> +<hkern u1="A" u2="Û" k="53" /> +<hkern u1="A" u2="Ú" k="53" /> +<hkern u1="A" u2="Ù" k="53" /> +<hkern u1="A" u2="Ø" k="52" /> +<hkern u1="A" u2="Ö" k="52" /> +<hkern u1="A" u2="Õ" k="52" /> +<hkern u1="A" u2="Ô" k="52" /> +<hkern u1="A" u2="Ó" k="52" /> +<hkern u1="A" u2="Ò" k="52" /> +<hkern u1="A" u2="Ç" k="52" /> +<hkern u1="A" u2="»" k="69" /> +<hkern u1="A" u2="º" k="196" /> +<hkern u1="A" u2="¹" k="207" /> +<hkern u1="A" u2="·" k="69" /> +<hkern u1="A" u2="³" k="207" /> +<hkern u1="A" u2="²" k="207" /> +<hkern u1="A" u2="°" k="196" /> +<hkern u1="A" u2="®" k="52" /> +<hkern u1="A" u2="­" k="69" /> +<hkern u1="A" u2="«" k="69" /> +<hkern u1="A" u2="ª" k="196" /> +<hkern u1="A" u2="©" k="52" /> +<hkern u1="A" u2="y" k="93" /> +<hkern u1="A" u2="v" k="93" /> +<hkern u1="A" u2="\" k="173" /> +<hkern u1="A" u2="Y" k="186" /> +<hkern u1="A" u2="W" k="104" /> +<hkern u1="A" u2="V" k="173" /> +<hkern u1="A" u2="U" k="53" /> +<hkern u1="A" u2="T" k="151" /> +<hkern u1="A" u2="Q" k="52" /> +<hkern u1="A" u2="O" k="52" /> +<hkern u1="A" u2="J" k="-57" /> +<hkern u1="A" u2="G" k="52" /> +<hkern u1="A" u2="C" k="52" /> +<hkern u1="A" u2="@" k="52" /> +<hkern u1="A" u2="?" k="65" /> +<hkern u1="A" u2="-" k="69" /> +<hkern u1="A" u2="*" k="196" /> +<hkern u1="A" u2="'" k="196" /> +<hkern u1="A" u2=""" k="196" /> +<hkern u1="C" u2="›" k="147" /> +<hkern u1="C" u2="‹" k="147" /> +<hkern u1="C" u2="•" k="147" /> +<hkern u1="C" u2="—" k="147" /> +<hkern u1="C" u2="–" k="147" /> +<hkern u1="C" u2="»" k="147" /> +<hkern u1="C" u2="·" k="147" /> +<hkern u1="C" u2="­" k="147" /> +<hkern u1="C" u2="«" k="147" /> +<hkern u1="C" u2="-" k="147" /> +<hkern u1="D" u2="™" k="43" /> +<hkern u1="D" u2="„" k="53" /> +<hkern u1="D" u2="”" k="43" /> +<hkern u1="D" u2="“" k="43" /> +<hkern u1="D" u2="‚" k="53" /> +<hkern u1="D" u2="’" k="43" /> +<hkern u1="D" u2="‘" k="43" /> +<hkern u1="D" u2="Ÿ" k="82" /> +<hkern u1="D" u2="Ý" k="82" /> +<hkern u1="D" u2="Æ" k="52" /> +<hkern u1="D" u2="Å" k="52" /> +<hkern u1="D" u2="Ä" k="52" /> +<hkern u1="D" u2="Ã" k="52" /> +<hkern u1="D" u2="Â" k="52" /> +<hkern u1="D" u2="Á" k="52" /> +<hkern u1="D" u2="À" k="52" /> +<hkern u1="D" u2="º" k="43" /> +<hkern u1="D" u2="°" k="43" /> +<hkern u1="D" u2="ª" k="43" /> +<hkern u1="D" u2="}" k="41" /> +<hkern u1="D" u2="]" k="41" /> +<hkern u1="D" u2="\" k="57" /> +<hkern u1="D" u2="Z" k="66" /> +<hkern u1="D" u2="Y" k="82" /> +<hkern u1="D" u2="X" k="31" /> +<hkern u1="D" u2="V" k="57" /> +<hkern u1="D" u2="T" k="80" /> +<hkern u1="D" u2="A" k="52" /> +<hkern u1="D" u2="/" k="52" /> +<hkern u1="D" u2="." k="53" /> +<hkern u1="D" u2="," k="53" /> +<hkern u1="D" u2="*" k="43" /> +<hkern u1="D" u2=")" k="41" /> +<hkern u1="D" u2="'" k="43" /> +<hkern u1="D" u2="&" k="52" /> +<hkern u1="D" u2=""" k="43" /> +<hkern u1="F" u2="„" k="184" /> +<hkern u1="F" u2="‚" k="184" /> +<hkern u1="F" u2="œ" k="66" /> +<hkern u1="F" u2="ü" k="61" /> +<hkern u1="F" u2="û" k="61" /> +<hkern u1="F" u2="ú" k="61" /> +<hkern u1="F" u2="ù" k="61" /> +<hkern u1="F" u2="ø" k="66" /> +<hkern u1="F" u2="ö" k="66" /> +<hkern u1="F" u2="õ" k="66" /> +<hkern u1="F" u2="ô" k="66" /> +<hkern u1="F" u2="ó" k="66" /> +<hkern u1="F" u2="ò" k="66" /> +<hkern u1="F" u2="ñ" k="61" /> +<hkern u1="F" u2="ð" k="66" /> +<hkern u1="F" u2="ë" k="66" /> +<hkern u1="F" u2="ê" k="66" /> +<hkern u1="F" u2="é" k="66" /> +<hkern u1="F" u2="è" k="66" /> +<hkern u1="F" u2="ç" k="66" /> +<hkern u1="F" u2="Æ" k="151" /> +<hkern u1="F" u2="Å" k="151" /> +<hkern u1="F" u2="Ä" k="151" /> +<hkern u1="F" u2="Ã" k="151" /> +<hkern u1="F" u2="Â" k="151" /> +<hkern u1="F" u2="Á" k="151" /> +<hkern u1="F" u2="À" k="151" /> +<hkern u1="F" u2="µ" k="61" /> +<hkern u1="F" u2="u" k="61" /> +<hkern u1="F" u2="r" k="61" /> +<hkern u1="F" u2="q" k="66" /> +<hkern u1="F" u2="p" k="61" /> +<hkern u1="F" u2="o" k="66" /> +<hkern u1="F" u2="n" k="61" /> +<hkern u1="F" u2="m" k="61" /> +<hkern u1="F" u2="e" k="66" /> +<hkern u1="F" u2="d" k="66" /> +<hkern u1="F" u2="c" k="66" /> +<hkern u1="F" u2="J" k="194" /> +<hkern u1="F" u2="A" k="151" /> +<hkern u1="F" u2="?" k="-31" /> +<hkern u1="F" u2=";" k="61" /> +<hkern u1="F" u2=":" k="61" /> +<hkern u1="F" u2="/" k="151" /> +<hkern u1="F" u2="." k="184" /> +<hkern u1="F" u2="," k="184" /> +<hkern u1="F" u2="&" k="151" /> +<hkern u1="J" u2="„" k="51" /> +<hkern u1="J" u2="‚" k="51" /> +<hkern u1="J" u2="Æ" k="53" /> +<hkern u1="J" u2="Å" k="53" /> +<hkern u1="J" u2="Ä" k="53" /> +<hkern u1="J" u2="Ã" k="53" /> +<hkern u1="J" u2="Â" k="53" /> +<hkern u1="J" u2="Á" k="53" /> +<hkern u1="J" u2="À" k="53" /> +<hkern u1="J" u2="A" k="53" /> +<hkern u1="J" u2="/" k="53" /> +<hkern u1="J" u2="." k="51" /> +<hkern u1="J" u2="," k="51" /> +<hkern u1="J" u2="&" k="53" /> +<hkern u1="K" u2="›" k="68" /> +<hkern u1="K" u2="‹" k="68" /> +<hkern u1="K" u2="•" k="68" /> +<hkern u1="K" u2="—" k="68" /> +<hkern u1="K" u2="–" k="68" /> +<hkern u1="K" u2="œ" k="44" /> +<hkern u1="K" u2="Œ" k="31" /> +<hkern u1="K" u2="ÿ" k="75" /> +<hkern u1="K" u2="ý" k="75" /> +<hkern u1="K" u2="ø" k="44" /> +<hkern u1="K" u2="ö" k="44" /> +<hkern u1="K" u2="õ" k="44" /> +<hkern u1="K" u2="ô" k="44" /> +<hkern u1="K" u2="ó" k="44" /> +<hkern u1="K" u2="ò" k="44" /> +<hkern u1="K" u2="ð" k="44" /> +<hkern u1="K" u2="ë" k="44" /> +<hkern u1="K" u2="ê" k="44" /> +<hkern u1="K" u2="é" k="44" /> +<hkern u1="K" u2="è" k="44" /> +<hkern u1="K" u2="ç" k="44" /> +<hkern u1="K" u2="Ø" k="31" /> +<hkern u1="K" u2="Ö" k="31" /> +<hkern u1="K" u2="Õ" k="31" /> +<hkern u1="K" u2="Ô" k="31" /> +<hkern u1="K" u2="Ó" k="31" /> +<hkern u1="K" u2="Ò" k="31" /> +<hkern u1="K" u2="Ç" k="31" /> +<hkern u1="K" u2="»" k="68" /> +<hkern u1="K" u2="·" k="68" /> +<hkern u1="K" u2="®" k="31" /> +<hkern u1="K" u2="­" k="68" /> +<hkern u1="K" u2="«" k="68" /> +<hkern u1="K" u2="©" k="31" /> +<hkern u1="K" u2="y" k="75" /> +<hkern u1="K" u2="w" k="53" /> +<hkern u1="K" u2="v" k="75" /> +<hkern u1="K" u2="t" k="93" /> +<hkern u1="K" u2="q" k="44" /> +<hkern u1="K" u2="o" k="44" /> +<hkern u1="K" u2="f" k="57" /> +<hkern u1="K" u2="e" k="44" /> +<hkern u1="K" u2="d" k="44" /> +<hkern u1="K" u2="c" k="44" /> +<hkern u1="K" u2="Q" k="31" /> +<hkern u1="K" u2="O" k="31" /> +<hkern u1="K" u2="G" k="31" /> +<hkern u1="K" u2="C" k="31" /> +<hkern u1="K" u2="@" k="31" /> +<hkern u1="K" u2="-" k="68" /> +<hkern u1="L" u2="™" k="291" /> +<hkern u1="L" u2="›" k="182" /> +<hkern u1="L" u2="‹" k="182" /> +<hkern u1="L" u2="•" k="182" /> +<hkern u1="L" u2="„" k="-59" /> +<hkern u1="L" u2="”" k="291" /> +<hkern u1="L" u2="“" k="291" /> +<hkern u1="L" u2="‚" k="-59" /> +<hkern u1="L" u2="’" k="291" /> +<hkern u1="L" u2="‘" k="291" /> +<hkern u1="L" u2="—" k="182" /> +<hkern u1="L" u2="–" k="182" /> +<hkern u1="L" u2="Ÿ" k="232" /> +<hkern u1="L" u2="œ" k="39" /> +<hkern u1="L" u2="Œ" k="82" /> +<hkern u1="L" u2="ÿ" k="122" /> +<hkern u1="L" u2="ý" k="122" /> +<hkern u1="L" u2="ø" k="39" /> +<hkern u1="L" u2="ö" k="39" /> +<hkern u1="L" u2="õ" k="39" /> +<hkern u1="L" u2="ô" k="39" /> +<hkern u1="L" u2="ó" k="39" /> +<hkern u1="L" u2="ò" k="39" /> +<hkern u1="L" u2="ð" k="39" /> +<hkern u1="L" u2="ë" k="39" /> +<hkern u1="L" u2="ê" k="39" /> +<hkern u1="L" u2="é" k="39" /> +<hkern u1="L" u2="è" k="39" /> +<hkern u1="L" u2="ç" k="39" /> +<hkern u1="L" u2="Ý" k="232" /> +<hkern u1="L" u2="Ø" k="82" /> +<hkern u1="L" u2="Ö" k="82" /> +<hkern u1="L" u2="Õ" k="82" /> +<hkern u1="L" u2="Ô" k="82" /> +<hkern u1="L" u2="Ó" k="82" /> +<hkern u1="L" u2="Ò" k="82" /> +<hkern u1="L" u2="Ç" k="82" /> +<hkern u1="L" u2="»" k="182" /> +<hkern u1="L" u2="º" k="291" /> +<hkern u1="L" u2="¹" k="216" /> +<hkern u1="L" u2="·" k="182" /> +<hkern u1="L" u2="³" k="216" /> +<hkern u1="L" u2="²" k="216" /> +<hkern u1="L" u2="°" k="291" /> +<hkern u1="L" u2="®" k="82" /> +<hkern u1="L" u2="­" k="182" /> +<hkern u1="L" u2="«" k="182" /> +<hkern u1="L" u2="ª" k="291" /> +<hkern u1="L" u2="©" k="82" /> +<hkern u1="L" u2="y" k="122" /> +<hkern u1="L" u2="w" k="82" /> +<hkern u1="L" u2="v" k="122" /> +<hkern u1="L" u2="q" k="39" /> +<hkern u1="L" u2="o" k="39" /> +<hkern u1="L" u2="e" k="39" /> +<hkern u1="L" u2="d" k="39" /> +<hkern u1="L" u2="c" k="39" /> +<hkern u1="L" u2="\" k="196" /> +<hkern u1="L" u2="Y" k="232" /> +<hkern u1="L" u2="W" k="171" /> +<hkern u1="L" u2="V" k="196" /> +<hkern u1="L" u2="T" k="180" /> +<hkern u1="L" u2="Q" k="82" /> +<hkern u1="L" u2="O" k="82" /> +<hkern u1="L" u2="G" k="82" /> +<hkern u1="L" u2="C" k="82" /> +<hkern u1="L" u2="@" k="82" /> +<hkern u1="L" u2="?" k="51" /> +<hkern u1="L" u2="." k="-59" /> +<hkern u1="L" u2="-" k="182" /> +<hkern u1="L" u2="," k="-59" /> +<hkern u1="L" u2="*" k="291" /> +<hkern u1="L" u2="'" k="291" /> +<hkern u1="L" u2=""" k="291" /> +<hkern u1="O" u2="™" k="43" /> +<hkern u1="O" u2="„" k="53" /> +<hkern u1="O" u2="”" k="43" /> +<hkern u1="O" u2="“" k="43" /> +<hkern u1="O" u2="‚" k="53" /> +<hkern u1="O" u2="’" k="43" /> +<hkern u1="O" u2="‘" k="43" /> +<hkern u1="O" u2="Ÿ" k="82" /> +<hkern u1="O" u2="Ý" k="82" /> +<hkern u1="O" u2="Æ" k="52" /> +<hkern u1="O" u2="Å" k="52" /> +<hkern u1="O" u2="Ä" k="52" /> +<hkern u1="O" u2="Ã" k="52" /> +<hkern u1="O" u2="Â" k="52" /> +<hkern u1="O" u2="Á" k="52" /> +<hkern u1="O" u2="À" k="52" /> +<hkern u1="O" u2="º" k="43" /> +<hkern u1="O" u2="°" k="43" /> +<hkern u1="O" u2="ª" k="43" /> +<hkern u1="O" u2="}" k="41" /> +<hkern u1="O" u2="]" k="41" /> +<hkern u1="O" u2="\" k="57" /> +<hkern u1="O" u2="Z" k="66" /> +<hkern u1="O" u2="Y" k="82" /> +<hkern u1="O" u2="X" k="31" /> +<hkern u1="O" u2="V" k="57" /> +<hkern u1="O" u2="T" k="80" /> +<hkern u1="O" u2="A" k="52" /> +<hkern u1="O" u2="/" k="52" /> +<hkern u1="O" u2="." k="53" /> +<hkern u1="O" u2="," k="53" /> +<hkern u1="O" u2="*" k="43" /> +<hkern u1="O" u2=")" k="41" /> +<hkern u1="O" u2="'" k="43" /> +<hkern u1="O" u2="&" k="52" /> +<hkern u1="O" u2=""" k="43" /> +<hkern u1="P" u2="„" k="271" /> +<hkern u1="P" u2="‚" k="271" /> +<hkern u1="P" u2="œ" k="31" /> +<hkern u1="P" u2="ø" k="31" /> +<hkern u1="P" u2="ö" k="31" /> +<hkern u1="P" u2="õ" k="31" /> +<hkern u1="P" u2="ô" k="31" /> +<hkern u1="P" u2="ó" k="31" /> +<hkern u1="P" u2="ò" k="31" /> +<hkern u1="P" u2="ð" k="31" /> +<hkern u1="P" u2="ë" k="31" /> +<hkern u1="P" u2="ê" k="31" /> +<hkern u1="P" u2="é" k="31" /> +<hkern u1="P" u2="è" k="31" /> +<hkern u1="P" u2="ç" k="31" /> +<hkern u1="P" u2="æ" k="51" /> +<hkern u1="P" u2="å" k="51" /> +<hkern u1="P" u2="ä" k="51" /> +<hkern u1="P" u2="ã" k="51" /> +<hkern u1="P" u2="â" k="51" /> +<hkern u1="P" u2="á" k="51" /> +<hkern u1="P" u2="à" k="51" /> +<hkern u1="P" u2="Æ" k="159" /> +<hkern u1="P" u2="Å" k="159" /> +<hkern u1="P" u2="Ä" k="159" /> +<hkern u1="P" u2="Ã" k="159" /> +<hkern u1="P" u2="Â" k="159" /> +<hkern u1="P" u2="Á" k="159" /> +<hkern u1="P" u2="À" k="159" /> +<hkern u1="P" u2="q" k="31" /> +<hkern u1="P" u2="o" k="31" /> +<hkern u1="P" u2="e" k="31" /> +<hkern u1="P" u2="d" k="31" /> +<hkern u1="P" u2="c" k="31" /> +<hkern u1="P" u2="a" k="51" /> +<hkern u1="P" u2="J" k="196" /> +<hkern u1="P" u2="A" k="159" /> +<hkern u1="P" u2="/" k="159" /> +<hkern u1="P" u2="." k="271" /> +<hkern u1="P" u2="," k="271" /> +<hkern u1="P" u2="&" k="159" /> +<hkern u1="Q" u2="™" k="43" /> +<hkern u1="Q" u2="„" k="53" /> +<hkern u1="Q" u2="”" k="43" /> +<hkern u1="Q" u2="“" k="43" /> +<hkern u1="Q" u2="‚" k="53" /> +<hkern u1="Q" u2="’" k="43" /> +<hkern u1="Q" u2="‘" k="43" /> +<hkern u1="Q" u2="Ÿ" k="82" /> +<hkern u1="Q" u2="Ý" k="82" /> +<hkern u1="Q" u2="Æ" k="52" /> +<hkern u1="Q" u2="Å" k="52" /> +<hkern u1="Q" u2="Ä" k="52" /> +<hkern u1="Q" u2="Ã" k="52" /> +<hkern u1="Q" u2="Â" k="52" /> +<hkern u1="Q" u2="Á" k="52" /> +<hkern u1="Q" u2="À" k="52" /> +<hkern u1="Q" u2="º" k="43" /> +<hkern u1="Q" u2="°" k="43" /> +<hkern u1="Q" u2="ª" k="43" /> +<hkern u1="Q" u2="}" k="41" /> +<hkern u1="Q" u2="]" k="41" /> +<hkern u1="Q" u2="\" k="57" /> +<hkern u1="Q" u2="Z" k="66" /> +<hkern u1="Q" u2="Y" k="82" /> +<hkern u1="Q" u2="X" k="31" /> +<hkern u1="Q" u2="V" k="57" /> +<hkern u1="Q" u2="T" k="80" /> +<hkern u1="Q" u2="A" k="52" /> +<hkern u1="Q" u2="/" k="52" /> +<hkern u1="Q" u2="." k="53" /> +<hkern u1="Q" u2="," k="53" /> +<hkern u1="Q" u2="*" k="43" /> +<hkern u1="Q" u2=")" k="41" /> +<hkern u1="Q" u2="'" k="43" /> +<hkern u1="Q" u2="&" k="52" /> +<hkern u1="Q" u2=""" k="43" /> +<hkern u1="R" u2="Œ" k="49" /> +<hkern u1="R" u2="Ü" k="52" /> +<hkern u1="R" u2="Û" k="52" /> +<hkern u1="R" u2="Ú" k="52" /> +<hkern u1="R" u2="Ù" k="52" /> +<hkern u1="R" u2="Ø" k="49" /> +<hkern u1="R" u2="Ö" k="49" /> +<hkern u1="R" u2="Õ" k="49" /> +<hkern u1="R" u2="Ô" k="49" /> +<hkern u1="R" u2="Ó" k="49" /> +<hkern u1="R" u2="Ò" k="49" /> +<hkern u1="R" u2="Ç" k="49" /> +<hkern u1="R" u2="®" k="49" /> +<hkern u1="R" u2="©" k="49" /> +<hkern u1="R" u2="U" k="52" /> +<hkern u1="R" u2="T" k="57" /> +<hkern u1="R" u2="Q" k="49" /> +<hkern u1="R" u2="O" k="49" /> +<hkern u1="R" u2="G" k="49" /> +<hkern u1="R" u2="C" k="49" /> +<hkern u1="R" u2="@" k="49" /> +<hkern u1="T" u2="›" k="184" /> +<hkern u1="T" u2="‹" k="184" /> +<hkern u1="T" u2="•" k="184" /> +<hkern u1="T" u2="„" k="184" /> +<hkern u1="T" u2="‚" k="184" /> +<hkern u1="T" u2="—" k="184" /> +<hkern u1="T" u2="–" k="184" /> +<hkern u1="T" u2="œ" k="209" /> +<hkern u1="T" u2="Œ" k="80" /> +<hkern u1="T" u2="ÿ" k="184" /> +<hkern u1="T" u2="ý" k="184" /> +<hkern u1="T" u2="ü" k="164" /> +<hkern u1="T" u2="û" k="164" /> +<hkern u1="T" u2="ú" k="164" /> +<hkern u1="T" u2="ù" k="164" /> +<hkern u1="T" u2="ø" k="209" /> +<hkern u1="T" u2="ö" k="209" /> +<hkern u1="T" u2="õ" k="209" /> +<hkern u1="T" u2="ô" k="209" /> +<hkern u1="T" u2="ó" k="209" /> +<hkern u1="T" u2="ò" k="209" /> +<hkern u1="T" u2="ñ" k="164" /> +<hkern u1="T" u2="ð" k="209" /> +<hkern u1="T" u2="ë" k="209" /> +<hkern u1="T" u2="ê" k="209" /> +<hkern u1="T" u2="é" k="209" /> +<hkern u1="T" u2="è" k="209" /> +<hkern u1="T" u2="ç" k="209" /> +<hkern u1="T" u2="æ" k="250" /> +<hkern u1="T" u2="å" k="250" /> +<hkern u1="T" u2="ä" k="250" /> +<hkern u1="T" u2="ã" k="250" /> +<hkern u1="T" u2="â" k="250" /> +<hkern u1="T" u2="á" k="250" /> +<hkern u1="T" u2="à" k="250" /> +<hkern u1="T" u2="Ø" k="80" /> +<hkern u1="T" u2="Ö" k="80" /> +<hkern u1="T" u2="Õ" k="80" /> +<hkern u1="T" u2="Ô" k="80" /> +<hkern u1="T" u2="Ó" k="80" /> +<hkern u1="T" u2="Ò" k="80" /> +<hkern u1="T" u2="Ç" k="80" /> +<hkern u1="T" u2="Æ" k="151" /> +<hkern u1="T" u2="Å" k="151" /> +<hkern u1="T" u2="Ä" k="151" /> +<hkern u1="T" u2="Ã" k="151" /> +<hkern u1="T" u2="Â" k="151" /> +<hkern u1="T" u2="Á" k="151" /> +<hkern u1="T" u2="À" k="151" /> +<hkern u1="T" u2="»" k="184" /> +<hkern u1="T" u2="·" k="184" /> +<hkern u1="T" u2="µ" k="164" /> +<hkern u1="T" u2="®" k="80" /> +<hkern u1="T" u2="­" k="184" /> +<hkern u1="T" u2="«" k="184" /> +<hkern u1="T" u2="©" k="80" /> +<hkern u1="T" u2="z" k="123" /> +<hkern u1="T" u2="y" k="184" /> +<hkern u1="T" u2="x" k="140" /> +<hkern u1="T" u2="w" k="143" /> +<hkern u1="T" u2="v" k="184" /> +<hkern u1="T" u2="u" k="164" /> +<hkern u1="T" u2="s" k="143" /> +<hkern u1="T" u2="r" k="164" /> +<hkern u1="T" u2="q" k="209" /> +<hkern u1="T" u2="p" k="164" /> +<hkern u1="T" u2="o" k="209" /> +<hkern u1="T" u2="n" k="164" /> +<hkern u1="T" u2="m" k="164" /> +<hkern u1="T" u2="g" k="185" /> +<hkern u1="T" u2="e" k="209" /> +<hkern u1="T" u2="d" k="209" /> +<hkern u1="T" u2="c" k="209" /> +<hkern u1="T" u2="a" k="250" /> +<hkern u1="T" u2="Q" k="80" /> +<hkern u1="T" u2="O" k="80" /> +<hkern u1="T" u2="J" k="205" /> +<hkern u1="T" u2="G" k="80" /> +<hkern u1="T" u2="C" k="80" /> +<hkern u1="T" u2="A" k="151" /> +<hkern u1="T" u2="@" k="80" /> +<hkern u1="T" u2=";" k="164" /> +<hkern u1="T" u2=":" k="164" /> +<hkern u1="T" u2="/" k="151" /> +<hkern u1="T" u2="." k="184" /> +<hkern u1="T" u2="-" k="184" /> +<hkern u1="T" u2="," k="184" /> +<hkern u1="T" u2="&" k="151" /> +<hkern u1="U" u2="„" k="51" /> +<hkern u1="U" u2="‚" k="51" /> +<hkern u1="U" u2="Æ" k="53" /> +<hkern u1="U" u2="Å" k="53" /> +<hkern u1="U" u2="Ä" k="53" /> +<hkern u1="U" u2="Ã" k="53" /> +<hkern u1="U" u2="Â" k="53" /> +<hkern u1="U" u2="Á" k="53" /> +<hkern u1="U" u2="À" k="53" /> +<hkern u1="U" u2="A" k="53" /> +<hkern u1="U" u2="/" k="53" /> +<hkern u1="U" u2="." k="51" /> +<hkern u1="U" u2="," k="51" /> +<hkern u1="U" u2="&" k="53" /> +<hkern u1="V" u2="™" k="-45" /> +<hkern u1="V" u2="›" k="119" /> +<hkern u1="V" u2="‹" k="119" /> +<hkern u1="V" u2="•" k="119" /> +<hkern u1="V" u2="„" k="201" /> +<hkern u1="V" u2="”" k="-45" /> +<hkern u1="V" u2="“" k="-45" /> +<hkern u1="V" u2="‚" k="201" /> +<hkern u1="V" u2="’" k="-45" /> +<hkern u1="V" u2="‘" k="-45" /> +<hkern u1="V" u2="—" k="119" /> +<hkern u1="V" u2="–" k="119" /> +<hkern u1="V" u2="œ" k="126" /> +<hkern u1="V" u2="Œ" k="57" /> +<hkern u1="V" u2="ÿ" k="60" /> +<hkern u1="V" u2="ý" k="60" /> +<hkern u1="V" u2="ü" k="101" /> +<hkern u1="V" u2="û" k="101" /> +<hkern u1="V" u2="ú" k="101" /> +<hkern u1="V" u2="ù" k="101" /> +<hkern u1="V" u2="ø" k="126" /> +<hkern u1="V" u2="ö" k="126" /> +<hkern u1="V" u2="õ" k="126" /> +<hkern u1="V" u2="ô" k="126" /> +<hkern u1="V" u2="ó" k="126" /> +<hkern u1="V" u2="ò" k="126" /> +<hkern u1="V" u2="ñ" k="101" /> +<hkern u1="V" u2="ð" k="126" /> +<hkern u1="V" u2="ë" k="126" /> +<hkern u1="V" u2="ê" k="126" /> +<hkern u1="V" u2="é" k="126" /> +<hkern u1="V" u2="è" k="126" /> +<hkern u1="V" u2="ç" k="126" /> +<hkern u1="V" u2="æ" k="126" /> +<hkern u1="V" u2="å" k="126" /> +<hkern u1="V" u2="ä" k="126" /> +<hkern u1="V" u2="ã" k="126" /> +<hkern u1="V" u2="â" k="126" /> +<hkern u1="V" u2="á" k="126" /> +<hkern u1="V" u2="à" k="126" /> +<hkern u1="V" u2="Ø" k="57" /> +<hkern u1="V" u2="Ö" k="57" /> +<hkern u1="V" u2="Õ" k="57" /> +<hkern u1="V" u2="Ô" k="57" /> +<hkern u1="V" u2="Ó" k="57" /> +<hkern u1="V" u2="Ò" k="57" /> +<hkern u1="V" u2="Ç" k="57" /> +<hkern u1="V" u2="Æ" k="173" /> +<hkern u1="V" u2="Å" k="173" /> +<hkern u1="V" u2="Ä" k="173" /> +<hkern u1="V" u2="Ã" k="173" /> +<hkern u1="V" u2="Â" k="173" /> +<hkern u1="V" u2="Á" k="173" /> +<hkern u1="V" u2="À" k="173" /> +<hkern u1="V" u2="»" k="119" /> +<hkern u1="V" u2="º" k="-45" /> +<hkern u1="V" u2="¹" k="-50" /> +<hkern u1="V" u2="·" k="119" /> +<hkern u1="V" u2="µ" k="101" /> +<hkern u1="V" u2="³" k="-50" /> +<hkern u1="V" u2="²" k="-50" /> +<hkern u1="V" u2="°" k="-45" /> +<hkern u1="V" u2="®" k="57" /> +<hkern u1="V" u2="­" k="119" /> +<hkern u1="V" u2="«" k="119" /> +<hkern u1="V" u2="ª" k="-45" /> +<hkern u1="V" u2="©" k="57" /> +<hkern u1="V" u2="z" k="93" /> +<hkern u1="V" u2="y" k="60" /> +<hkern u1="V" u2="x" k="69" /> +<hkern u1="V" u2="v" k="60" /> +<hkern u1="V" u2="u" k="101" /> +<hkern u1="V" u2="t" k="47" /> +<hkern u1="V" u2="s" k="111" /> +<hkern u1="V" u2="r" k="101" /> +<hkern u1="V" u2="q" k="126" /> +<hkern u1="V" u2="p" k="101" /> +<hkern u1="V" u2="o" k="126" /> +<hkern u1="V" u2="n" k="101" /> +<hkern u1="V" u2="m" k="101" /> +<hkern u1="V" u2="g" k="141" /> +<hkern u1="V" u2="f" k="31" /> +<hkern u1="V" u2="e" k="126" /> +<hkern u1="V" u2="d" k="126" /> +<hkern u1="V" u2="c" k="126" /> +<hkern u1="V" u2="a" k="126" /> +<hkern u1="V" u2="Q" k="57" /> +<hkern u1="V" u2="O" k="57" /> +<hkern u1="V" u2="J" k="160" /> +<hkern u1="V" u2="G" k="57" /> +<hkern u1="V" u2="C" k="57" /> +<hkern u1="V" u2="A" k="173" /> +<hkern u1="V" u2="@" k="57" /> +<hkern u1="V" u2="?" k="-40" /> +<hkern u1="V" u2=";" k="101" /> +<hkern u1="V" u2=":" k="101" /> +<hkern u1="V" u2="/" k="173" /> +<hkern u1="V" u2="." k="201" /> +<hkern u1="V" u2="-" k="119" /> +<hkern u1="V" u2="," k="201" /> +<hkern u1="V" u2="*" k="-45" /> +<hkern u1="V" u2="'" k="-45" /> +<hkern u1="V" u2="&" k="173" /> +<hkern u1="V" u2=""" k="-45" /> +<hkern u1="W" u2="™" k="-45" /> +<hkern u1="W" u2="›" k="37" /> +<hkern u1="W" u2="‹" k="37" /> +<hkern u1="W" u2="•" k="37" /> +<hkern u1="W" u2="„" k="134" /> +<hkern u1="W" u2="”" k="-45" /> +<hkern u1="W" u2="“" k="-45" /> +<hkern u1="W" u2="‚" k="134" /> +<hkern u1="W" u2="’" k="-45" /> +<hkern u1="W" u2="‘" k="-45" /> +<hkern u1="W" u2="—" k="37" /> +<hkern u1="W" u2="–" k="37" /> +<hkern u1="W" u2="œ" k="42" /> +<hkern u1="W" u2="ø" k="42" /> +<hkern u1="W" u2="ö" k="42" /> +<hkern u1="W" u2="õ" k="42" /> +<hkern u1="W" u2="ô" k="42" /> +<hkern u1="W" u2="ó" k="42" /> +<hkern u1="W" u2="ò" k="42" /> +<hkern u1="W" u2="ð" k="42" /> +<hkern u1="W" u2="ë" k="42" /> +<hkern u1="W" u2="ê" k="42" /> +<hkern u1="W" u2="é" k="42" /> +<hkern u1="W" u2="è" k="42" /> +<hkern u1="W" u2="ç" k="42" /> +<hkern u1="W" u2="æ" k="101" /> +<hkern u1="W" u2="å" k="101" /> +<hkern u1="W" u2="ä" k="101" /> +<hkern u1="W" u2="ã" k="101" /> +<hkern u1="W" u2="â" k="101" /> +<hkern u1="W" u2="á" k="101" /> +<hkern u1="W" u2="à" k="101" /> +<hkern u1="W" u2="Æ" k="121" /> +<hkern u1="W" u2="Å" k="121" /> +<hkern u1="W" u2="Ä" k="121" /> +<hkern u1="W" u2="Ã" k="121" /> +<hkern u1="W" u2="Â" k="121" /> +<hkern u1="W" u2="Á" k="121" /> +<hkern u1="W" u2="À" k="121" /> +<hkern u1="W" u2="»" k="37" /> +<hkern u1="W" u2="º" k="-45" /> +<hkern u1="W" u2="¹" k="-45" /> +<hkern u1="W" u2="·" k="37" /> +<hkern u1="W" u2="³" k="-45" /> +<hkern u1="W" u2="²" k="-45" /> +<hkern u1="W" u2="°" k="-45" /> +<hkern u1="W" u2="­" k="37" /> +<hkern u1="W" u2="«" k="37" /> +<hkern u1="W" u2="ª" k="-45" /> +<hkern u1="W" u2="s" k="54" /> +<hkern u1="W" u2="q" k="42" /> +<hkern u1="W" u2="o" k="42" /> +<hkern u1="W" u2="g" k="98" /> +<hkern u1="W" u2="e" k="42" /> +<hkern u1="W" u2="d" k="42" /> +<hkern u1="W" u2="c" k="42" /> +<hkern u1="W" u2="a" k="101" /> +<hkern u1="W" u2="J" k="114" /> +<hkern u1="W" u2="A" k="121" /> +<hkern u1="W" u2="?" k="-33" /> +<hkern u1="W" u2="/" k="121" /> +<hkern u1="W" u2="." k="134" /> +<hkern u1="W" u2="-" k="37" /> +<hkern u1="W" u2="," k="134" /> +<hkern u1="W" u2="*" k="-45" /> +<hkern u1="W" u2="'" k="-45" /> +<hkern u1="W" u2="&" k="121" /> +<hkern u1="W" u2=""" k="-45" /> +<hkern u1="X" u2="›" k="68" /> +<hkern u1="X" u2="‹" k="68" /> +<hkern u1="X" u2="•" k="68" /> +<hkern u1="X" u2="—" k="68" /> +<hkern u1="X" u2="–" k="68" /> +<hkern u1="X" u2="œ" k="44" /> +<hkern u1="X" u2="Œ" k="31" /> +<hkern u1="X" u2="ÿ" k="75" /> +<hkern u1="X" u2="ý" k="75" /> +<hkern u1="X" u2="ø" k="44" /> +<hkern u1="X" u2="ö" k="44" /> +<hkern u1="X" u2="õ" k="44" /> +<hkern u1="X" u2="ô" k="44" /> +<hkern u1="X" u2="ó" k="44" /> +<hkern u1="X" u2="ò" k="44" /> +<hkern u1="X" u2="ð" k="44" /> +<hkern u1="X" u2="ë" k="44" /> +<hkern u1="X" u2="ê" k="44" /> +<hkern u1="X" u2="é" k="44" /> +<hkern u1="X" u2="è" k="44" /> +<hkern u1="X" u2="ç" k="44" /> +<hkern u1="X" u2="Ø" k="31" /> +<hkern u1="X" u2="Ö" k="31" /> +<hkern u1="X" u2="Õ" k="31" /> +<hkern u1="X" u2="Ô" k="31" /> +<hkern u1="X" u2="Ó" k="31" /> +<hkern u1="X" u2="Ò" k="31" /> +<hkern u1="X" u2="Ç" k="31" /> +<hkern u1="X" u2="»" k="68" /> +<hkern u1="X" u2="·" k="68" /> +<hkern u1="X" u2="®" k="31" /> +<hkern u1="X" u2="­" k="68" /> +<hkern u1="X" u2="«" k="68" /> +<hkern u1="X" u2="©" k="31" /> +<hkern u1="X" u2="y" k="75" /> +<hkern u1="X" u2="w" k="53" /> +<hkern u1="X" u2="v" k="75" /> +<hkern u1="X" u2="t" k="93" /> +<hkern u1="X" u2="q" k="44" /> +<hkern u1="X" u2="o" k="44" /> +<hkern u1="X" u2="f" k="57" /> +<hkern u1="X" u2="e" k="44" /> +<hkern u1="X" u2="d" k="44" /> +<hkern u1="X" u2="c" k="44" /> +<hkern u1="X" u2="Q" k="31" /> +<hkern u1="X" u2="O" k="31" /> +<hkern u1="X" u2="G" k="31" /> +<hkern u1="X" u2="C" k="31" /> +<hkern u1="X" u2="@" k="31" /> +<hkern u1="X" u2="-" k="68" /> +<hkern u1="Y" u2="™" k="-37" /> +<hkern u1="Y" u2="›" k="164" /> +<hkern u1="Y" u2="‹" k="164" /> +<hkern u1="Y" u2="•" k="164" /> +<hkern u1="Y" u2="„" k="171" /> +<hkern u1="Y" u2="”" k="-37" /> +<hkern u1="Y" u2="“" k="-37" /> +<hkern u1="Y" u2="‚" k="171" /> +<hkern u1="Y" u2="’" k="-37" /> +<hkern u1="Y" u2="‘" k="-37" /> +<hkern u1="Y" u2="—" k="164" /> +<hkern u1="Y" u2="–" k="164" /> +<hkern u1="Y" u2="œ" k="164" /> +<hkern u1="Y" u2="Œ" k="82" /> +<hkern u1="Y" u2="ÿ" k="102" /> +<hkern u1="Y" u2="ý" k="102" /> +<hkern u1="Y" u2="ü" k="134" /> +<hkern u1="Y" u2="û" k="134" /> +<hkern u1="Y" u2="ú" k="134" /> +<hkern u1="Y" u2="ù" k="134" /> +<hkern u1="Y" u2="ø" k="164" /> +<hkern u1="Y" u2="ö" k="164" /> +<hkern u1="Y" u2="õ" k="164" /> +<hkern u1="Y" u2="ô" k="164" /> +<hkern u1="Y" u2="ó" k="164" /> +<hkern u1="Y" u2="ò" k="164" /> +<hkern u1="Y" u2="ñ" k="134" /> +<hkern u1="Y" u2="ð" k="164" /> +<hkern u1="Y" u2="ë" k="164" /> +<hkern u1="Y" u2="ê" k="164" /> +<hkern u1="Y" u2="é" k="164" /> +<hkern u1="Y" u2="è" k="164" /> +<hkern u1="Y" u2="ç" k="164" /> +<hkern u1="Y" u2="æ" k="148" /> +<hkern u1="Y" u2="å" k="148" /> +<hkern u1="Y" u2="ä" k="148" /> +<hkern u1="Y" u2="ã" k="148" /> +<hkern u1="Y" u2="â" k="148" /> +<hkern u1="Y" u2="á" k="148" /> +<hkern u1="Y" u2="à" k="148" /> +<hkern u1="Y" u2="Ø" k="82" /> +<hkern u1="Y" u2="Ö" k="82" /> +<hkern u1="Y" u2="Õ" k="82" /> +<hkern u1="Y" u2="Ô" k="82" /> +<hkern u1="Y" u2="Ó" k="82" /> +<hkern u1="Y" u2="Ò" k="82" /> +<hkern u1="Y" u2="Ç" k="82" /> +<hkern u1="Y" u2="Æ" k="186" /> +<hkern u1="Y" u2="Å" k="186" /> +<hkern u1="Y" u2="Ä" k="186" /> +<hkern u1="Y" u2="Ã" k="186" /> +<hkern u1="Y" u2="Â" k="186" /> +<hkern u1="Y" u2="Á" k="186" /> +<hkern u1="Y" u2="À" k="186" /> +<hkern u1="Y" u2="»" k="164" /> +<hkern u1="Y" u2="º" k="-37" /> +<hkern u1="Y" u2="¹" k="-57" /> +<hkern u1="Y" u2="·" k="164" /> +<hkern u1="Y" u2="µ" k="134" /> +<hkern u1="Y" u2="³" k="-57" /> +<hkern u1="Y" u2="²" k="-57" /> +<hkern u1="Y" u2="°" k="-37" /> +<hkern u1="Y" u2="®" k="82" /> +<hkern u1="Y" u2="­" k="164" /> +<hkern u1="Y" u2="«" k="164" /> +<hkern u1="Y" u2="ª" k="-37" /> +<hkern u1="Y" u2="©" k="82" /> +<hkern u1="Y" u2="y" k="102" /> +<hkern u1="Y" u2="x" k="139" /> +<hkern u1="Y" u2="w" k="98" /> +<hkern u1="Y" u2="v" k="102" /> +<hkern u1="Y" u2="u" k="134" /> +<hkern u1="Y" u2="s" k="142" /> +<hkern u1="Y" u2="r" k="134" /> +<hkern u1="Y" u2="q" k="164" /> +<hkern u1="Y" u2="p" k="134" /> +<hkern u1="Y" u2="o" k="164" /> +<hkern u1="Y" u2="n" k="134" /> +<hkern u1="Y" u2="m" k="134" /> +<hkern u1="Y" u2="g" k="180" /> +<hkern u1="Y" u2="e" k="164" /> +<hkern u1="Y" u2="d" k="164" /> +<hkern u1="Y" u2="c" k="164" /> +<hkern u1="Y" u2="a" k="148" /> +<hkern u1="Y" u2="Q" k="82" /> +<hkern u1="Y" u2="O" k="82" /> +<hkern u1="Y" u2="J" k="205" /> +<hkern u1="Y" u2="G" k="82" /> +<hkern u1="Y" u2="C" k="82" /> +<hkern u1="Y" u2="A" k="186" /> +<hkern u1="Y" u2="@" k="82" /> +<hkern u1="Y" u2="?" k="-33" /> +<hkern u1="Y" u2=";" k="134" /> +<hkern u1="Y" u2=":" k="134" /> +<hkern u1="Y" u2="/" k="186" /> +<hkern u1="Y" u2="." k="171" /> +<hkern u1="Y" u2="-" k="164" /> +<hkern u1="Y" u2="," k="171" /> +<hkern u1="Y" u2="*" k="-37" /> +<hkern u1="Y" u2="'" k="-37" /> +<hkern u1="Y" u2="&" k="186" /> +<hkern u1="Y" u2=""" k="-37" /> +<hkern u1="Z" u2="›" k="66" /> +<hkern u1="Z" u2="‹" k="66" /> +<hkern u1="Z" u2="•" k="66" /> +<hkern u1="Z" u2="—" k="66" /> +<hkern u1="Z" u2="–" k="66" /> +<hkern u1="Z" u2="œ" k="30" /> +<hkern u1="Z" u2="Œ" k="50" /> +<hkern u1="Z" u2="ÿ" k="35" /> +<hkern u1="Z" u2="ý" k="35" /> +<hkern u1="Z" u2="ø" k="30" /> +<hkern u1="Z" u2="ö" k="30" /> +<hkern u1="Z" u2="õ" k="30" /> +<hkern u1="Z" u2="ô" k="30" /> +<hkern u1="Z" u2="ó" k="30" /> +<hkern u1="Z" u2="ò" k="30" /> +<hkern u1="Z" u2="ð" k="30" /> +<hkern u1="Z" u2="ë" k="30" /> +<hkern u1="Z" u2="ê" k="30" /> +<hkern u1="Z" u2="é" k="30" /> +<hkern u1="Z" u2="è" k="30" /> +<hkern u1="Z" u2="ç" k="30" /> +<hkern u1="Z" u2="Ø" k="50" /> +<hkern u1="Z" u2="Ö" k="50" /> +<hkern u1="Z" u2="Õ" k="50" /> +<hkern u1="Z" u2="Ô" k="50" /> +<hkern u1="Z" u2="Ó" k="50" /> +<hkern u1="Z" u2="Ò" k="50" /> +<hkern u1="Z" u2="Ç" k="50" /> +<hkern u1="Z" u2="»" k="66" /> +<hkern u1="Z" u2="·" k="66" /> +<hkern u1="Z" u2="®" k="50" /> +<hkern u1="Z" u2="­" k="66" /> +<hkern u1="Z" u2="«" k="66" /> +<hkern u1="Z" u2="©" k="50" /> +<hkern u1="Z" u2="y" k="35" /> +<hkern u1="Z" u2="v" k="35" /> +<hkern u1="Z" u2="s" k="19" /> +<hkern u1="Z" u2="q" k="30" /> +<hkern u1="Z" u2="o" k="30" /> +<hkern u1="Z" u2="e" k="30" /> +<hkern u1="Z" u2="d" k="30" /> +<hkern u1="Z" u2="c" k="30" /> +<hkern u1="Z" u2="Q" k="50" /> +<hkern u1="Z" u2="O" k="50" /> +<hkern u1="Z" u2="G" k="50" /> +<hkern u1="Z" u2="C" k="50" /> +<hkern u1="Z" u2="@" k="50" /> +<hkern u1="Z" u2="?" k="-33" /> +<hkern u1="Z" u2="-" k="66" /> +<hkern u1="[" u2="œ" k="37" /> +<hkern u1="[" u2="Œ" k="41" /> +<hkern u1="[" u2="ø" k="37" /> +<hkern u1="[" u2="ö" k="37" /> +<hkern u1="[" u2="õ" k="37" /> +<hkern u1="[" u2="ô" k="37" /> +<hkern u1="[" u2="ó" k="37" /> +<hkern u1="[" u2="ò" k="37" /> +<hkern u1="[" u2="ð" k="37" /> +<hkern u1="[" u2="ë" k="37" /> +<hkern u1="[" u2="ê" k="37" /> +<hkern u1="[" u2="é" k="37" /> +<hkern u1="[" u2="è" k="37" /> +<hkern u1="[" u2="ç" k="37" /> +<hkern u1="[" u2="Ø" k="41" /> +<hkern u1="[" u2="Ö" k="41" /> +<hkern u1="[" u2="Õ" k="41" /> +<hkern u1="[" u2="Ô" k="41" /> +<hkern u1="[" u2="Ó" k="41" /> +<hkern u1="[" u2="Ò" k="41" /> +<hkern u1="[" u2="Ç" k="41" /> +<hkern u1="[" u2="®" k="41" /> +<hkern u1="[" u2="©" k="41" /> +<hkern u1="[" u2="q" k="37" /> +<hkern u1="[" u2="o" k="37" /> +<hkern u1="[" u2="e" k="37" /> +<hkern u1="[" u2="d" k="37" /> +<hkern u1="[" u2="c" k="37" /> +<hkern u1="[" u2="Q" k="41" /> +<hkern u1="[" u2="O" k="41" /> +<hkern u1="[" u2="G" k="41" /> +<hkern u1="[" u2="C" k="41" /> +<hkern u1="[" u2="@" k="41" /> +<hkern u1="\" u2="™" k="196" /> +<hkern u1="\" u2="›" k="69" /> +<hkern u1="\" u2="‹" k="69" /> +<hkern u1="\" u2="•" k="69" /> +<hkern u1="\" u2="”" k="196" /> +<hkern u1="\" u2="“" k="196" /> +<hkern u1="\" u2="’" k="196" /> +<hkern u1="\" u2="‘" k="196" /> +<hkern u1="\" u2="—" k="69" /> +<hkern u1="\" u2="–" k="69" /> +<hkern u1="\" u2="Ÿ" k="186" /> +<hkern u1="\" u2="Œ" k="52" /> +<hkern u1="\" u2="ÿ" k="93" /> +<hkern u1="\" u2="ý" k="93" /> +<hkern u1="\" u2="Ý" k="186" /> +<hkern u1="\" u2="Ü" k="53" /> +<hkern u1="\" u2="Û" k="53" /> +<hkern u1="\" u2="Ú" k="53" /> +<hkern u1="\" u2="Ù" k="53" /> +<hkern u1="\" u2="Ø" k="52" /> +<hkern u1="\" u2="Ö" k="52" /> +<hkern u1="\" u2="Õ" k="52" /> +<hkern u1="\" u2="Ô" k="52" /> +<hkern u1="\" u2="Ó" k="52" /> +<hkern u1="\" u2="Ò" k="52" /> +<hkern u1="\" u2="Ç" k="52" /> +<hkern u1="\" u2="»" k="69" /> +<hkern u1="\" u2="º" k="196" /> +<hkern u1="\" u2="¹" k="207" /> +<hkern u1="\" u2="·" k="69" /> +<hkern u1="\" u2="³" k="207" /> +<hkern u1="\" u2="²" k="207" /> +<hkern u1="\" u2="°" k="196" /> +<hkern u1="\" u2="®" k="52" /> +<hkern u1="\" u2="­" k="69" /> +<hkern u1="\" u2="«" k="69" /> +<hkern u1="\" u2="ª" k="196" /> +<hkern u1="\" u2="©" k="52" /> +<hkern u1="\" u2="y" k="93" /> +<hkern u1="\" u2="v" k="93" /> +<hkern u1="\" u2="\" k="173" /> +<hkern u1="\" u2="Y" k="186" /> +<hkern u1="\" u2="W" k="104" /> +<hkern u1="\" u2="V" k="173" /> +<hkern u1="\" u2="U" k="53" /> +<hkern u1="\" u2="T" k="151" /> +<hkern u1="\" u2="Q" k="52" /> +<hkern u1="\" u2="O" k="52" /> +<hkern u1="\" u2="J" k="-57" /> +<hkern u1="\" u2="G" k="52" /> +<hkern u1="\" u2="C" k="52" /> +<hkern u1="\" u2="@" k="52" /> +<hkern u1="\" u2="?" k="65" /> +<hkern u1="\" u2="-" k="69" /> +<hkern u1="\" u2="*" k="196" /> +<hkern u1="\" u2="'" k="196" /> +<hkern u1="\" u2=""" k="196" /> +<hkern u1="a" u2="™" k="78" /> +<hkern u1="a" u2="”" k="78" /> +<hkern u1="a" u2="“" k="78" /> +<hkern u1="a" u2="’" k="78" /> +<hkern u1="a" u2="‘" k="78" /> +<hkern u1="a" u2="ÿ" k="37" /> +<hkern u1="a" u2="ý" k="37" /> +<hkern u1="a" u2="º" k="78" /> +<hkern u1="a" u2="¹" k="78" /> +<hkern u1="a" u2="³" k="78" /> +<hkern u1="a" u2="²" k="78" /> +<hkern u1="a" u2="°" k="78" /> +<hkern u1="a" u2="ª" k="78" /> +<hkern u1="a" u2="y" k="37" /> +<hkern u1="a" u2="w" k="18" /> +<hkern u1="a" u2="v" k="37" /> +<hkern u1="a" u2="*" k="78" /> +<hkern u1="a" u2="'" k="78" /> +<hkern u1="a" u2=""" k="78" /> +<hkern u1="b" u2="™" k="98" /> +<hkern u1="b" u2="”" k="98" /> +<hkern u1="b" u2="“" k="98" /> +<hkern u1="b" u2="’" k="98" /> +<hkern u1="b" u2="‘" k="98" /> +<hkern u1="b" u2="ÿ" k="34" /> +<hkern u1="b" u2="ý" k="34" /> +<hkern u1="b" u2="º" k="98" /> +<hkern u1="b" u2="°" k="98" /> +<hkern u1="b" u2="ª" k="98" /> +<hkern u1="b" u2="}" k="37" /> +<hkern u1="b" u2="y" k="34" /> +<hkern u1="b" u2="x" k="61" /> +<hkern u1="b" u2="v" k="34" /> +<hkern u1="b" u2="]" k="37" /> +<hkern u1="b" u2="\" k="126" /> +<hkern u1="b" u2="W" k="42" /> +<hkern u1="b" u2="V" k="126" /> +<hkern u1="b" u2="*" k="98" /> +<hkern u1="b" u2=")" k="37" /> +<hkern u1="b" u2="'" k="98" /> +<hkern u1="b" u2=""" k="98" /> +<hkern u1="e" u2="™" k="98" /> +<hkern u1="e" u2="”" k="98" /> +<hkern u1="e" u2="“" k="98" /> +<hkern u1="e" u2="’" k="98" /> +<hkern u1="e" u2="‘" k="98" /> +<hkern u1="e" u2="ÿ" k="34" /> +<hkern u1="e" u2="ý" k="34" /> +<hkern u1="e" u2="º" k="98" /> +<hkern u1="e" u2="°" k="98" /> +<hkern u1="e" u2="ª" k="98" /> +<hkern u1="e" u2="}" k="37" /> +<hkern u1="e" u2="y" k="34" /> +<hkern u1="e" u2="x" k="61" /> +<hkern u1="e" u2="v" k="34" /> +<hkern u1="e" u2="]" k="37" /> +<hkern u1="e" u2="\" k="126" /> +<hkern u1="e" u2="W" k="42" /> +<hkern u1="e" u2="V" k="126" /> +<hkern u1="e" u2="*" k="98" /> +<hkern u1="e" u2=")" k="37" /> +<hkern u1="e" u2="'" k="98" /> +<hkern u1="e" u2=""" k="98" /> +<hkern u1="f" u2="™" k="-66" /> +<hkern u1="f" u2="„" k="127" /> +<hkern u1="f" u2="”" k="-66" /> +<hkern u1="f" u2="“" k="-66" /> +<hkern u1="f" u2="‚" k="127" /> +<hkern u1="f" u2="’" k="-66" /> +<hkern u1="f" u2="‘" k="-66" /> +<hkern u1="f" u2="º" k="-66" /> +<hkern u1="f" u2="¹" k="-102" /> +<hkern u1="f" u2="³" k="-102" /> +<hkern u1="f" u2="²" k="-102" /> +<hkern u1="f" u2="°" k="-66" /> +<hkern u1="f" u2="ª" k="-66" /> +<hkern u1="f" u2="." k="127" /> +<hkern u1="f" u2="," k="127" /> +<hkern u1="f" u2="*" k="-66" /> +<hkern u1="f" u2="'" k="-66" /> +<hkern u1="f" u2=""" k="-66" /> +<hkern u1="h" u2="™" k="78" /> +<hkern u1="h" u2="”" k="78" /> +<hkern u1="h" u2="“" k="78" /> +<hkern u1="h" u2="’" k="78" /> +<hkern u1="h" u2="‘" k="78" /> +<hkern u1="h" u2="ÿ" k="37" /> +<hkern u1="h" u2="ý" k="37" /> +<hkern u1="h" u2="º" k="78" /> +<hkern u1="h" u2="¹" k="78" /> +<hkern u1="h" u2="³" k="78" /> +<hkern u1="h" u2="²" k="78" /> +<hkern u1="h" u2="°" k="78" /> +<hkern u1="h" u2="ª" k="78" /> +<hkern u1="h" u2="y" k="37" /> +<hkern u1="h" u2="w" k="18" /> +<hkern u1="h" u2="v" k="37" /> +<hkern u1="h" u2="*" k="78" /> +<hkern u1="h" u2="'" k="78" /> +<hkern u1="h" u2=""" k="78" /> +<hkern u1="k" u2="œ" k="61" /> +<hkern u1="k" u2="ø" k="61" /> +<hkern u1="k" u2="ö" k="61" /> +<hkern u1="k" u2="õ" k="61" /> +<hkern u1="k" u2="ô" k="61" /> +<hkern u1="k" u2="ó" k="61" /> +<hkern u1="k" u2="ò" k="61" /> +<hkern u1="k" u2="ð" k="61" /> +<hkern u1="k" u2="ë" k="61" /> +<hkern u1="k" u2="ê" k="61" /> +<hkern u1="k" u2="é" k="61" /> +<hkern u1="k" u2="è" k="61" /> +<hkern u1="k" u2="ç" k="61" /> +<hkern u1="k" u2="q" k="61" /> +<hkern u1="k" u2="o" k="61" /> +<hkern u1="k" u2="e" k="61" /> +<hkern u1="k" u2="d" k="61" /> +<hkern u1="k" u2="c" k="61" /> +<hkern u1="m" u2="™" k="78" /> +<hkern u1="m" u2="”" k="78" /> +<hkern u1="m" u2="“" k="78" /> +<hkern u1="m" u2="’" k="78" /> +<hkern u1="m" u2="‘" k="78" /> +<hkern u1="m" u2="ÿ" k="37" /> +<hkern u1="m" u2="ý" k="37" /> +<hkern u1="m" u2="º" k="78" /> +<hkern u1="m" u2="¹" k="78" /> +<hkern u1="m" u2="³" k="78" /> +<hkern u1="m" u2="²" k="78" /> +<hkern u1="m" u2="°" k="78" /> +<hkern u1="m" u2="ª" k="78" /> +<hkern u1="m" u2="y" k="37" /> +<hkern u1="m" u2="w" k="18" /> +<hkern u1="m" u2="v" k="37" /> +<hkern u1="m" u2="*" k="78" /> +<hkern u1="m" u2="'" k="78" /> +<hkern u1="m" u2=""" k="78" /> +<hkern u1="n" u2="™" k="78" /> +<hkern u1="n" u2="”" k="78" /> +<hkern u1="n" u2="“" k="78" /> +<hkern u1="n" u2="’" k="78" /> +<hkern u1="n" u2="‘" k="78" /> +<hkern u1="n" u2="ÿ" k="37" /> +<hkern u1="n" u2="ý" k="37" /> +<hkern u1="n" u2="º" k="78" /> +<hkern u1="n" u2="¹" k="78" /> +<hkern u1="n" u2="³" k="78" /> +<hkern u1="n" u2="²" k="78" /> +<hkern u1="n" u2="°" k="78" /> +<hkern u1="n" u2="ª" k="78" /> +<hkern u1="n" u2="y" k="37" /> +<hkern u1="n" u2="w" k="18" /> +<hkern u1="n" u2="v" k="37" /> +<hkern u1="n" u2="*" k="78" /> +<hkern u1="n" u2="'" k="78" /> +<hkern u1="n" u2=""" k="78" /> +<hkern u1="o" u2="™" k="98" /> +<hkern u1="o" u2="”" k="98" /> +<hkern u1="o" u2="“" k="98" /> +<hkern u1="o" u2="’" k="98" /> +<hkern u1="o" u2="‘" k="98" /> +<hkern u1="o" u2="ÿ" k="34" /> +<hkern u1="o" u2="ý" k="34" /> +<hkern u1="o" u2="º" k="98" /> +<hkern u1="o" u2="°" k="98" /> +<hkern u1="o" u2="ª" k="98" /> +<hkern u1="o" u2="}" k="37" /> +<hkern u1="o" u2="y" k="34" /> +<hkern u1="o" u2="x" k="61" /> +<hkern u1="o" u2="v" k="34" /> +<hkern u1="o" u2="]" k="37" /> +<hkern u1="o" u2="\" k="126" /> +<hkern u1="o" u2="W" k="42" /> +<hkern u1="o" u2="V" k="126" /> +<hkern u1="o" u2="*" k="98" /> +<hkern u1="o" u2=")" k="37" /> +<hkern u1="o" u2="'" k="98" /> +<hkern u1="o" u2=""" k="98" /> +<hkern u1="p" u2="™" k="98" /> +<hkern u1="p" u2="”" k="98" /> +<hkern u1="p" u2="“" k="98" /> +<hkern u1="p" u2="’" k="98" /> +<hkern u1="p" u2="‘" k="98" /> +<hkern u1="p" u2="ÿ" k="34" /> +<hkern u1="p" u2="ý" k="34" /> +<hkern u1="p" u2="º" k="98" /> +<hkern u1="p" u2="°" k="98" /> +<hkern u1="p" u2="ª" k="98" /> +<hkern u1="p" u2="}" k="37" /> +<hkern u1="p" u2="y" k="34" /> +<hkern u1="p" u2="x" k="61" /> +<hkern u1="p" u2="v" k="34" /> +<hkern u1="p" u2="]" k="37" /> +<hkern u1="p" u2="\" k="126" /> +<hkern u1="p" u2="W" k="42" /> +<hkern u1="p" u2="V" k="126" /> +<hkern u1="p" u2="*" k="98" /> +<hkern u1="p" u2=")" k="37" /> +<hkern u1="p" u2="'" k="98" /> +<hkern u1="p" u2=""" k="98" /> +<hkern u1="r" u2="„" k="139" /> +<hkern u1="r" u2="‚" k="139" /> +<hkern u1="r" u2="æ" k="30" /> +<hkern u1="r" u2="å" k="30" /> +<hkern u1="r" u2="ä" k="30" /> +<hkern u1="r" u2="ã" k="30" /> +<hkern u1="r" u2="â" k="30" /> +<hkern u1="r" u2="á" k="30" /> +<hkern u1="r" u2="à" k="30" /> +<hkern u1="r" u2="a" k="30" /> +<hkern u1="r" u2="." k="139" /> +<hkern u1="r" u2="," k="139" /> +<hkern u1="v" u2="„" k="139" /> +<hkern u1="v" u2="‚" k="139" /> +<hkern u1="v" u2="œ" k="34" /> +<hkern u1="v" u2="ø" k="34" /> +<hkern u1="v" u2="ö" k="34" /> +<hkern u1="v" u2="õ" k="34" /> +<hkern u1="v" u2="ô" k="34" /> +<hkern u1="v" u2="ó" k="34" /> +<hkern u1="v" u2="ò" k="34" /> +<hkern u1="v" u2="ð" k="34" /> +<hkern u1="v" u2="ë" k="34" /> +<hkern u1="v" u2="ê" k="34" /> +<hkern u1="v" u2="é" k="34" /> +<hkern u1="v" u2="è" k="34" /> +<hkern u1="v" u2="ç" k="34" /> +<hkern u1="v" u2="Æ" k="93" /> +<hkern u1="v" u2="Å" k="93" /> +<hkern u1="v" u2="Ä" k="93" /> +<hkern u1="v" u2="Ã" k="93" /> +<hkern u1="v" u2="Â" k="93" /> +<hkern u1="v" u2="Á" k="93" /> +<hkern u1="v" u2="À" k="93" /> +<hkern u1="v" u2="q" k="34" /> +<hkern u1="v" u2="o" k="34" /> +<hkern u1="v" u2="e" k="34" /> +<hkern u1="v" u2="d" k="34" /> +<hkern u1="v" u2="c" k="34" /> +<hkern u1="v" u2="A" k="93" /> +<hkern u1="v" u2="/" k="93" /> +<hkern u1="v" u2="." k="139" /> +<hkern u1="v" u2="," k="139" /> +<hkern u1="v" u2="&" k="93" /> +<hkern u1="w" u2="„" k="73" /> +<hkern u1="w" u2="‚" k="73" /> +<hkern u1="w" u2="." k="73" /> +<hkern u1="w" u2="," k="73" /> +<hkern u1="x" u2="œ" k="61" /> +<hkern u1="x" u2="ø" k="61" /> +<hkern u1="x" u2="ö" k="61" /> +<hkern u1="x" u2="õ" k="61" /> +<hkern u1="x" u2="ô" k="61" /> +<hkern u1="x" u2="ó" k="61" /> +<hkern u1="x" u2="ò" k="61" /> +<hkern u1="x" u2="ð" k="61" /> +<hkern u1="x" u2="ë" k="61" /> +<hkern u1="x" u2="ê" k="61" /> +<hkern u1="x" u2="é" k="61" /> +<hkern u1="x" u2="è" k="61" /> +<hkern u1="x" u2="ç" k="61" /> +<hkern u1="x" u2="q" k="61" /> +<hkern u1="x" u2="o" k="61" /> +<hkern u1="x" u2="e" k="61" /> +<hkern u1="x" u2="d" k="61" /> +<hkern u1="x" u2="c" k="61" /> +<hkern u1="y" u2="„" k="139" /> +<hkern u1="y" u2="‚" k="139" /> +<hkern u1="y" u2="œ" k="34" /> +<hkern u1="y" u2="ø" k="34" /> +<hkern u1="y" u2="ö" k="34" /> +<hkern u1="y" u2="õ" k="34" /> +<hkern u1="y" u2="ô" k="34" /> +<hkern u1="y" u2="ó" k="34" /> +<hkern u1="y" u2="ò" k="34" /> +<hkern u1="y" u2="ð" k="34" /> +<hkern u1="y" u2="ë" k="34" /> +<hkern u1="y" u2="ê" k="34" /> +<hkern u1="y" u2="é" k="34" /> +<hkern u1="y" u2="è" k="34" /> +<hkern u1="y" u2="ç" k="34" /> +<hkern u1="y" u2="Æ" k="93" /> +<hkern u1="y" u2="Å" k="93" /> +<hkern u1="y" u2="Ä" k="93" /> +<hkern u1="y" u2="Ã" k="93" /> +<hkern u1="y" u2="Â" k="93" /> +<hkern u1="y" u2="Á" k="93" /> +<hkern u1="y" u2="À" k="93" /> +<hkern u1="y" u2="q" k="34" /> +<hkern u1="y" u2="o" k="34" /> +<hkern u1="y" u2="e" k="34" /> +<hkern u1="y" u2="d" k="34" /> +<hkern u1="y" u2="c" k="34" /> +<hkern u1="y" u2="A" k="93" /> +<hkern u1="y" u2="/" k="93" /> +<hkern u1="y" u2="." k="139" /> +<hkern u1="y" u2="," k="139" /> +<hkern u1="y" u2="&" k="93" /> +<hkern u1="{" u2="œ" k="37" /> +<hkern u1="{" u2="Œ" k="41" /> +<hkern u1="{" u2="ø" k="37" /> +<hkern u1="{" u2="ö" k="37" /> +<hkern u1="{" u2="õ" k="37" /> +<hkern u1="{" u2="ô" k="37" /> +<hkern u1="{" u2="ó" k="37" /> +<hkern u1="{" u2="ò" k="37" /> +<hkern u1="{" u2="ð" k="37" /> +<hkern u1="{" u2="ë" k="37" /> +<hkern u1="{" u2="ê" k="37" /> +<hkern u1="{" u2="é" k="37" /> +<hkern u1="{" u2="è" k="37" /> +<hkern u1="{" u2="ç" k="37" /> +<hkern u1="{" u2="Ø" k="41" /> +<hkern u1="{" u2="Ö" k="41" /> +<hkern u1="{" u2="Õ" k="41" /> +<hkern u1="{" u2="Ô" k="41" /> +<hkern u1="{" u2="Ó" k="41" /> +<hkern u1="{" u2="Ò" k="41" /> +<hkern u1="{" u2="Ç" k="41" /> +<hkern u1="{" u2="®" k="41" /> +<hkern u1="{" u2="©" k="41" /> +<hkern u1="{" u2="q" k="37" /> +<hkern u1="{" u2="o" k="37" /> +<hkern u1="{" u2="e" k="37" /> +<hkern u1="{" u2="d" k="37" /> +<hkern u1="{" u2="c" k="37" /> +<hkern u1="{" u2="Q" k="41" /> +<hkern u1="{" u2="O" k="41" /> +<hkern u1="{" u2="G" k="41" /> +<hkern u1="{" u2="C" k="41" /> +<hkern u1="{" u2="@" k="41" /> +<hkern u1="©" u2="™" k="43" /> +<hkern u1="©" u2="„" k="53" /> +<hkern u1="©" u2="”" k="43" /> +<hkern u1="©" u2="“" k="43" /> +<hkern u1="©" u2="‚" k="53" /> +<hkern u1="©" u2="’" k="43" /> +<hkern u1="©" u2="‘" k="43" /> +<hkern u1="©" u2="Ÿ" k="82" /> +<hkern u1="©" u2="Ý" k="82" /> +<hkern u1="©" u2="Æ" k="52" /> +<hkern u1="©" u2="Å" k="52" /> +<hkern u1="©" u2="Ä" k="52" /> +<hkern u1="©" u2="Ã" k="52" /> +<hkern u1="©" u2="Â" k="52" /> +<hkern u1="©" u2="Á" k="52" /> +<hkern u1="©" u2="À" k="52" /> +<hkern u1="©" u2="º" k="43" /> +<hkern u1="©" u2="°" k="43" /> +<hkern u1="©" u2="ª" k="43" /> +<hkern u1="©" u2="}" k="41" /> +<hkern u1="©" u2="]" k="41" /> +<hkern u1="©" u2="\" k="57" /> +<hkern u1="©" u2="Z" k="66" /> +<hkern u1="©" u2="Y" k="82" /> +<hkern u1="©" u2="X" k="31" /> +<hkern u1="©" u2="V" k="57" /> +<hkern u1="©" u2="T" k="80" /> +<hkern u1="©" u2="A" k="52" /> +<hkern u1="©" u2="/" k="52" /> +<hkern u1="©" u2="." k="53" /> +<hkern u1="©" u2="," k="53" /> +<hkern u1="©" u2="*" k="43" /> +<hkern u1="©" u2=")" k="41" /> +<hkern u1="©" u2="'" k="43" /> +<hkern u1="©" u2="&" k="52" /> +<hkern u1="©" u2=""" k="43" /> +<hkern u1="ª" u2="›" k="173" /> +<hkern u1="ª" u2="‹" k="173" /> +<hkern u1="ª" u2="•" k="173" /> +<hkern u1="ª" u2="„" k="218" /> +<hkern u1="ª" u2="‚" k="218" /> +<hkern u1="ª" u2="—" k="173" /> +<hkern u1="ª" u2="–" k="173" /> +<hkern u1="ª" u2="Ÿ" k="-37" /> +<hkern u1="ª" u2="œ" k="98" /> +<hkern u1="ª" u2="Œ" k="43" /> +<hkern u1="ª" u2="ø" k="98" /> +<hkern u1="ª" u2="ö" k="98" /> +<hkern u1="ª" u2="õ" k="98" /> +<hkern u1="ª" u2="ô" k="98" /> +<hkern u1="ª" u2="ó" k="98" /> +<hkern u1="ª" u2="ò" k="98" /> +<hkern u1="ª" u2="ð" k="98" /> +<hkern u1="ª" u2="ë" k="98" /> +<hkern u1="ª" u2="ê" k="98" /> +<hkern u1="ª" u2="é" k="98" /> +<hkern u1="ª" u2="è" k="98" /> +<hkern u1="ª" u2="ç" k="98" /> +<hkern u1="ª" u2="æ" k="68" /> +<hkern u1="ª" u2="å" k="68" /> +<hkern u1="ª" u2="ä" k="68" /> +<hkern u1="ª" u2="ã" k="68" /> +<hkern u1="ª" u2="â" k="68" /> +<hkern u1="ª" u2="á" k="68" /> +<hkern u1="ª" u2="à" k="68" /> +<hkern u1="ª" u2="Ý" k="-37" /> +<hkern u1="ª" u2="Ø" k="43" /> +<hkern u1="ª" u2="Ö" k="43" /> +<hkern u1="ª" u2="Õ" k="43" /> +<hkern u1="ª" u2="Ô" k="43" /> +<hkern u1="ª" u2="Ó" k="43" /> +<hkern u1="ª" u2="Ò" k="43" /> +<hkern u1="ª" u2="Ç" k="43" /> +<hkern u1="ª" u2="Æ" k="196" /> +<hkern u1="ª" u2="Å" k="196" /> +<hkern u1="ª" u2="Ä" k="196" /> +<hkern u1="ª" u2="Ã" k="196" /> +<hkern u1="ª" u2="Â" k="196" /> +<hkern u1="ª" u2="Á" k="196" /> +<hkern u1="ª" u2="À" k="196" /> +<hkern u1="ª" u2="»" k="173" /> +<hkern u1="ª" u2="·" k="173" /> +<hkern u1="ª" u2="®" k="43" /> +<hkern u1="ª" u2="­" k="173" /> +<hkern u1="ª" u2="«" k="173" /> +<hkern u1="ª" u2="©" k="43" /> +<hkern u1="ª" u2="q" k="98" /> +<hkern u1="ª" u2="o" k="98" /> +<hkern u1="ª" u2="e" k="98" /> +<hkern u1="ª" u2="d" k="98" /> +<hkern u1="ª" u2="c" k="98" /> +<hkern u1="ª" u2="a" k="68" /> +<hkern u1="ª" u2="\" k="-45" /> +<hkern u1="ª" u2="Y" k="-37" /> +<hkern u1="ª" u2="W" k="-45" /> +<hkern u1="ª" u2="V" k="-45" /> +<hkern u1="ª" u2="Q" k="43" /> +<hkern u1="ª" u2="O" k="43" /> +<hkern u1="ª" u2="G" k="43" /> +<hkern u1="ª" u2="C" k="43" /> +<hkern u1="ª" u2="A" k="196" /> +<hkern u1="ª" u2="@" k="43" /> +<hkern u1="ª" u2="/" k="196" /> +<hkern u1="ª" u2="." k="218" /> +<hkern u1="ª" u2="-" k="173" /> +<hkern u1="ª" u2="," k="218" /> +<hkern u1="ª" u2="&" k="196" /> +<hkern u1="«" u2="™" k="173" /> +<hkern u1="«" u2="„" k="135" /> +<hkern u1="«" u2="”" k="173" /> +<hkern u1="«" u2="“" k="173" /> +<hkern u1="«" u2="‚" k="135" /> +<hkern u1="«" u2="’" k="173" /> +<hkern u1="«" u2="‘" k="173" /> +<hkern u1="«" u2="Ÿ" k="164" /> +<hkern u1="«" u2="Ý" k="164" /> +<hkern u1="«" u2="Æ" k="69" /> +<hkern u1="«" u2="Å" k="69" /> +<hkern u1="«" u2="Ä" k="69" /> +<hkern u1="«" u2="Ã" k="69" /> +<hkern u1="«" u2="Â" k="69" /> +<hkern u1="«" u2="Á" k="69" /> +<hkern u1="«" u2="À" k="69" /> +<hkern u1="«" u2="º" k="173" /> +<hkern u1="«" u2="°" k="173" /> +<hkern u1="«" u2="ª" k="173" /> +<hkern u1="«" u2="\" k="119" /> +<hkern u1="«" u2="Z" k="49" /> +<hkern u1="«" u2="Y" k="164" /> +<hkern u1="«" u2="X" k="68" /> +<hkern u1="«" u2="W" k="37" /> +<hkern u1="«" u2="V" k="119" /> +<hkern u1="«" u2="T" k="184" /> +<hkern u1="«" u2="A" k="69" /> +<hkern u1="«" u2="/" k="69" /> +<hkern u1="«" u2="." k="135" /> +<hkern u1="«" u2="," k="135" /> +<hkern u1="«" u2="*" k="173" /> +<hkern u1="«" u2="'" k="173" /> +<hkern u1="«" u2="&" k="69" /> +<hkern u1="«" u2=""" k="173" /> +<hkern u1="­" u2="™" k="173" /> +<hkern u1="­" u2="„" k="135" /> +<hkern u1="­" u2="”" k="173" /> +<hkern u1="­" u2="“" k="173" /> +<hkern u1="­" u2="‚" k="135" /> +<hkern u1="­" u2="’" k="173" /> +<hkern u1="­" u2="‘" k="173" /> +<hkern u1="­" u2="Ÿ" k="164" /> +<hkern u1="­" u2="Ý" k="164" /> +<hkern u1="­" u2="Æ" k="69" /> +<hkern u1="­" u2="Å" k="69" /> +<hkern u1="­" u2="Ä" k="69" /> +<hkern u1="­" u2="Ã" k="69" /> +<hkern u1="­" u2="Â" k="69" /> +<hkern u1="­" u2="Á" k="69" /> +<hkern u1="­" u2="À" k="69" /> +<hkern u1="­" u2="º" k="173" /> +<hkern u1="­" u2="°" k="173" /> +<hkern u1="­" u2="ª" k="173" /> +<hkern u1="­" u2="\" k="119" /> +<hkern u1="­" u2="Z" k="49" /> +<hkern u1="­" u2="Y" k="164" /> +<hkern u1="­" u2="X" k="68" /> +<hkern u1="­" u2="W" k="37" /> +<hkern u1="­" u2="V" k="119" /> +<hkern u1="­" u2="T" k="184" /> +<hkern u1="­" u2="A" k="69" /> +<hkern u1="­" u2="/" k="69" /> +<hkern u1="­" u2="." k="135" /> +<hkern u1="­" u2="," k="135" /> +<hkern u1="­" u2="*" k="173" /> +<hkern u1="­" u2="'" k="173" /> +<hkern u1="­" u2="&" k="69" /> +<hkern u1="­" u2=""" k="173" /> +<hkern u1="®" u2="™" k="43" /> +<hkern u1="®" u2="„" k="53" /> +<hkern u1="®" u2="”" k="43" /> +<hkern u1="®" u2="“" k="43" /> +<hkern u1="®" u2="‚" k="53" /> +<hkern u1="®" u2="’" k="43" /> +<hkern u1="®" u2="‘" k="43" /> +<hkern u1="®" u2="Ÿ" k="82" /> +<hkern u1="®" u2="Ý" k="82" /> +<hkern u1="®" u2="Æ" k="52" /> +<hkern u1="®" u2="Å" k="52" /> +<hkern u1="®" u2="Ä" k="52" /> +<hkern u1="®" u2="Ã" k="52" /> +<hkern u1="®" u2="Â" k="52" /> +<hkern u1="®" u2="Á" k="52" /> +<hkern u1="®" u2="À" k="52" /> +<hkern u1="®" u2="º" k="43" /> +<hkern u1="®" u2="°" k="43" /> +<hkern u1="®" u2="ª" k="43" /> +<hkern u1="®" u2="}" k="41" /> +<hkern u1="®" u2="]" k="41" /> +<hkern u1="®" u2="\" k="57" /> +<hkern u1="®" u2="Z" k="66" /> +<hkern u1="®" u2="Y" k="82" /> +<hkern u1="®" u2="X" k="31" /> +<hkern u1="®" u2="V" k="57" /> +<hkern u1="®" u2="T" k="80" /> +<hkern u1="®" u2="A" k="52" /> +<hkern u1="®" u2="/" k="52" /> +<hkern u1="®" u2="." k="53" /> +<hkern u1="®" u2="," k="53" /> +<hkern u1="®" u2="*" k="43" /> +<hkern u1="®" u2=")" k="41" /> +<hkern u1="®" u2="'" k="43" /> +<hkern u1="®" u2="&" k="52" /> +<hkern u1="®" u2=""" k="43" /> +<hkern u1="°" u2="›" k="173" /> +<hkern u1="°" u2="‹" k="173" /> +<hkern u1="°" u2="•" k="173" /> +<hkern u1="°" u2="„" k="218" /> +<hkern u1="°" u2="‚" k="218" /> +<hkern u1="°" u2="—" k="173" /> +<hkern u1="°" u2="–" k="173" /> +<hkern u1="°" u2="Ÿ" k="-37" /> +<hkern u1="°" u2="œ" k="98" /> +<hkern u1="°" u2="Œ" k="43" /> +<hkern u1="°" u2="ø" k="98" /> +<hkern u1="°" u2="ö" k="98" /> +<hkern u1="°" u2="õ" k="98" /> +<hkern u1="°" u2="ô" k="98" /> +<hkern u1="°" u2="ó" k="98" /> +<hkern u1="°" u2="ò" k="98" /> +<hkern u1="°" u2="ð" k="98" /> +<hkern u1="°" u2="ë" k="98" /> +<hkern u1="°" u2="ê" k="98" /> +<hkern u1="°" u2="é" k="98" /> +<hkern u1="°" u2="è" k="98" /> +<hkern u1="°" u2="ç" k="98" /> +<hkern u1="°" u2="æ" k="68" /> +<hkern u1="°" u2="å" k="68" /> +<hkern u1="°" u2="ä" k="68" /> +<hkern u1="°" u2="ã" k="68" /> +<hkern u1="°" u2="â" k="68" /> +<hkern u1="°" u2="á" k="68" /> +<hkern u1="°" u2="à" k="68" /> +<hkern u1="°" u2="Ý" k="-37" /> +<hkern u1="°" u2="Ø" k="43" /> +<hkern u1="°" u2="Ö" k="43" /> +<hkern u1="°" u2="Õ" k="43" /> +<hkern u1="°" u2="Ô" k="43" /> +<hkern u1="°" u2="Ó" k="43" /> +<hkern u1="°" u2="Ò" k="43" /> +<hkern u1="°" u2="Ç" k="43" /> +<hkern u1="°" u2="Æ" k="196" /> +<hkern u1="°" u2="Å" k="196" /> +<hkern u1="°" u2="Ä" k="196" /> +<hkern u1="°" u2="Ã" k="196" /> +<hkern u1="°" u2="Â" k="196" /> +<hkern u1="°" u2="Á" k="196" /> +<hkern u1="°" u2="À" k="196" /> +<hkern u1="°" u2="»" k="173" /> +<hkern u1="°" u2="·" k="173" /> +<hkern u1="°" u2="®" k="43" /> +<hkern u1="°" u2="­" k="173" /> +<hkern u1="°" u2="«" k="173" /> +<hkern u1="°" u2="©" k="43" /> +<hkern u1="°" u2="q" k="98" /> +<hkern u1="°" u2="o" k="98" /> +<hkern u1="°" u2="e" k="98" /> +<hkern u1="°" u2="d" k="98" /> +<hkern u1="°" u2="c" k="98" /> +<hkern u1="°" u2="a" k="68" /> +<hkern u1="°" u2="\" k="-45" /> +<hkern u1="°" u2="Y" k="-37" /> +<hkern u1="°" u2="W" k="-45" /> +<hkern u1="°" u2="V" k="-45" /> +<hkern u1="°" u2="Q" k="43" /> +<hkern u1="°" u2="O" k="43" /> +<hkern u1="°" u2="G" k="43" /> +<hkern u1="°" u2="C" k="43" /> +<hkern u1="°" u2="A" k="196" /> +<hkern u1="°" u2="@" k="43" /> +<hkern u1="°" u2="/" k="196" /> +<hkern u1="°" u2="." k="218" /> +<hkern u1="°" u2="-" k="173" /> +<hkern u1="°" u2="," k="218" /> +<hkern u1="°" u2="&" k="196" /> +<hkern u1="²" u2="Ÿ" k="-41" /> +<hkern u1="²" u2="Ý" k="-41" /> +<hkern u1="²" u2="Æ" k="207" /> +<hkern u1="²" u2="Å" k="207" /> +<hkern u1="²" u2="Ä" k="207" /> +<hkern u1="²" u2="Ã" k="207" /> +<hkern u1="²" u2="Â" k="207" /> +<hkern u1="²" u2="Á" k="207" /> +<hkern u1="²" u2="À" k="207" /> +<hkern u1="²" u2="\" k="-50" /> +<hkern u1="²" u2="Y" k="-41" /> +<hkern u1="²" u2="W" k="-50" /> +<hkern u1="²" u2="V" k="-50" /> +<hkern u1="²" u2="A" k="207" /> +<hkern u1="²" u2="/" k="207" /> +<hkern u1="²" u2="&" k="207" /> +<hkern u1="³" u2="Ÿ" k="-41" /> +<hkern u1="³" u2="Ý" k="-41" /> +<hkern u1="³" u2="Æ" k="207" /> +<hkern u1="³" u2="Å" k="207" /> +<hkern u1="³" u2="Ä" k="207" /> +<hkern u1="³" u2="Ã" k="207" /> +<hkern u1="³" u2="Â" k="207" /> +<hkern u1="³" u2="Á" k="207" /> +<hkern u1="³" u2="À" k="207" /> +<hkern u1="³" u2="\" k="-50" /> +<hkern u1="³" u2="Y" k="-41" /> +<hkern u1="³" u2="W" k="-50" /> +<hkern u1="³" u2="V" k="-50" /> +<hkern u1="³" u2="A" k="207" /> +<hkern u1="³" u2="/" k="207" /> +<hkern u1="³" u2="&" k="207" /> +<hkern u1="·" u2="™" k="173" /> +<hkern u1="·" u2="„" k="135" /> +<hkern u1="·" u2="”" k="173" /> +<hkern u1="·" u2="“" k="173" /> +<hkern u1="·" u2="‚" k="135" /> +<hkern u1="·" u2="’" k="173" /> +<hkern u1="·" u2="‘" k="173" /> +<hkern u1="·" u2="Ÿ" k="164" /> +<hkern u1="·" u2="Ý" k="164" /> +<hkern u1="·" u2="Æ" k="69" /> +<hkern u1="·" u2="Å" k="69" /> +<hkern u1="·" u2="Ä" k="69" /> +<hkern u1="·" u2="Ã" k="69" /> +<hkern u1="·" u2="Â" k="69" /> +<hkern u1="·" u2="Á" k="69" /> +<hkern u1="·" u2="À" k="69" /> +<hkern u1="·" u2="º" k="173" /> +<hkern u1="·" u2="°" k="173" /> +<hkern u1="·" u2="ª" k="173" /> +<hkern u1="·" u2="\" k="119" /> +<hkern u1="·" u2="Z" k="49" /> +<hkern u1="·" u2="Y" k="164" /> +<hkern u1="·" u2="X" k="68" /> +<hkern u1="·" u2="W" k="37" /> +<hkern u1="·" u2="V" k="119" /> +<hkern u1="·" u2="T" k="184" /> +<hkern u1="·" u2="A" k="69" /> +<hkern u1="·" u2="/" k="69" /> +<hkern u1="·" u2="." k="135" /> +<hkern u1="·" u2="," k="135" /> +<hkern u1="·" u2="*" k="173" /> +<hkern u1="·" u2="'" k="173" /> +<hkern u1="·" u2="&" k="69" /> +<hkern u1="·" u2=""" k="173" /> +<hkern u1="¹" u2="Ÿ" k="-41" /> +<hkern u1="¹" u2="Ý" k="-41" /> +<hkern u1="¹" u2="Æ" k="207" /> +<hkern u1="¹" u2="Å" k="207" /> +<hkern u1="¹" u2="Ä" k="207" /> +<hkern u1="¹" u2="Ã" k="207" /> +<hkern u1="¹" u2="Â" k="207" /> +<hkern u1="¹" u2="Á" k="207" /> +<hkern u1="¹" u2="À" k="207" /> +<hkern u1="¹" u2="\" k="-50" /> +<hkern u1="¹" u2="Y" k="-41" /> +<hkern u1="¹" u2="W" k="-50" /> +<hkern u1="¹" u2="V" k="-50" /> +<hkern u1="¹" u2="A" k="207" /> +<hkern u1="¹" u2="/" k="207" /> +<hkern u1="¹" u2="&" k="207" /> +<hkern u1="º" u2="›" k="173" /> +<hkern u1="º" u2="‹" k="173" /> +<hkern u1="º" u2="•" k="173" /> +<hkern u1="º" u2="„" k="218" /> +<hkern u1="º" u2="‚" k="218" /> +<hkern u1="º" u2="—" k="173" /> +<hkern u1="º" u2="–" k="173" /> +<hkern u1="º" u2="Ÿ" k="-37" /> +<hkern u1="º" u2="œ" k="98" /> +<hkern u1="º" u2="Œ" k="43" /> +<hkern u1="º" u2="ø" k="98" /> +<hkern u1="º" u2="ö" k="98" /> +<hkern u1="º" u2="õ" k="98" /> +<hkern u1="º" u2="ô" k="98" /> +<hkern u1="º" u2="ó" k="98" /> +<hkern u1="º" u2="ò" k="98" /> +<hkern u1="º" u2="ð" k="98" /> +<hkern u1="º" u2="ë" k="98" /> +<hkern u1="º" u2="ê" k="98" /> +<hkern u1="º" u2="é" k="98" /> +<hkern u1="º" u2="è" k="98" /> +<hkern u1="º" u2="ç" k="98" /> +<hkern u1="º" u2="æ" k="68" /> +<hkern u1="º" u2="å" k="68" /> +<hkern u1="º" u2="ä" k="68" /> +<hkern u1="º" u2="ã" k="68" /> +<hkern u1="º" u2="â" k="68" /> +<hkern u1="º" u2="á" k="68" /> +<hkern u1="º" u2="à" k="68" /> +<hkern u1="º" u2="Ý" k="-37" /> +<hkern u1="º" u2="Ø" k="43" /> +<hkern u1="º" u2="Ö" k="43" /> +<hkern u1="º" u2="Õ" k="43" /> +<hkern u1="º" u2="Ô" k="43" /> +<hkern u1="º" u2="Ó" k="43" /> +<hkern u1="º" u2="Ò" k="43" /> +<hkern u1="º" u2="Ç" k="43" /> +<hkern u1="º" u2="Æ" k="196" /> +<hkern u1="º" u2="Å" k="196" /> +<hkern u1="º" u2="Ä" k="196" /> +<hkern u1="º" u2="Ã" k="196" /> +<hkern u1="º" u2="Â" k="196" /> +<hkern u1="º" u2="Á" k="196" /> +<hkern u1="º" u2="À" k="196" /> +<hkern u1="º" u2="»" k="173" /> +<hkern u1="º" u2="·" k="173" /> +<hkern u1="º" u2="®" k="43" /> +<hkern u1="º" u2="­" k="173" /> +<hkern u1="º" u2="«" k="173" /> +<hkern u1="º" u2="©" k="43" /> +<hkern u1="º" u2="q" k="98" /> +<hkern u1="º" u2="o" k="98" /> +<hkern u1="º" u2="e" k="98" /> +<hkern u1="º" u2="d" k="98" /> +<hkern u1="º" u2="c" k="98" /> +<hkern u1="º" u2="a" k="68" /> +<hkern u1="º" u2="\" k="-45" /> +<hkern u1="º" u2="Y" k="-37" /> +<hkern u1="º" u2="W" k="-45" /> +<hkern u1="º" u2="V" k="-45" /> +<hkern u1="º" u2="Q" k="43" /> +<hkern u1="º" u2="O" k="43" /> +<hkern u1="º" u2="G" k="43" /> +<hkern u1="º" u2="C" k="43" /> +<hkern u1="º" u2="A" k="196" /> +<hkern u1="º" u2="@" k="43" /> +<hkern u1="º" u2="/" k="196" /> +<hkern u1="º" u2="." k="218" /> +<hkern u1="º" u2="-" k="173" /> +<hkern u1="º" u2="," k="218" /> +<hkern u1="º" u2="&" k="196" /> +<hkern u1="»" u2="™" k="173" /> +<hkern u1="»" u2="„" k="135" /> +<hkern u1="»" u2="”" k="173" /> +<hkern u1="»" u2="“" k="173" /> +<hkern u1="»" u2="‚" k="135" /> +<hkern u1="»" u2="’" k="173" /> +<hkern u1="»" u2="‘" k="173" /> +<hkern u1="»" u2="Ÿ" k="164" /> +<hkern u1="»" u2="Ý" k="164" /> +<hkern u1="»" u2="Æ" k="69" /> +<hkern u1="»" u2="Å" k="69" /> +<hkern u1="»" u2="Ä" k="69" /> +<hkern u1="»" u2="Ã" k="69" /> +<hkern u1="»" u2="Â" k="69" /> +<hkern u1="»" u2="Á" k="69" /> +<hkern u1="»" u2="À" k="69" /> +<hkern u1="»" u2="º" k="173" /> +<hkern u1="»" u2="°" k="173" /> +<hkern u1="»" u2="ª" k="173" /> +<hkern u1="»" u2="\" k="119" /> +<hkern u1="»" u2="Z" k="49" /> +<hkern u1="»" u2="Y" k="164" /> +<hkern u1="»" u2="X" k="68" /> +<hkern u1="»" u2="W" k="37" /> +<hkern u1="»" u2="V" k="119" /> +<hkern u1="»" u2="T" k="184" /> +<hkern u1="»" u2="A" k="69" /> +<hkern u1="»" u2="/" k="69" /> +<hkern u1="»" u2="." k="135" /> +<hkern u1="»" u2="," k="135" /> +<hkern u1="»" u2="*" k="173" /> +<hkern u1="»" u2="'" k="173" /> +<hkern u1="»" u2="&" k="69" /> +<hkern u1="»" u2=""" k="173" /> +<hkern u1="À" u2="™" k="196" /> +<hkern u1="À" u2="›" k="69" /> +<hkern u1="À" u2="‹" k="69" /> +<hkern u1="À" u2="•" k="69" /> +<hkern u1="À" u2="”" k="196" /> +<hkern u1="À" u2="“" k="196" /> +<hkern u1="À" u2="’" k="196" /> +<hkern u1="À" u2="‘" k="196" /> +<hkern u1="À" u2="—" k="69" /> +<hkern u1="À" u2="–" k="69" /> +<hkern u1="À" u2="Ÿ" k="186" /> +<hkern u1="À" u2="Œ" k="52" /> +<hkern u1="À" u2="ÿ" k="93" /> +<hkern u1="À" u2="ý" k="93" /> +<hkern u1="À" u2="Ý" k="186" /> +<hkern u1="À" u2="Ü" k="53" /> +<hkern u1="À" u2="Û" k="53" /> +<hkern u1="À" u2="Ú" k="53" /> +<hkern u1="À" u2="Ù" k="53" /> +<hkern u1="À" u2="Ø" k="52" /> +<hkern u1="À" u2="Ö" k="52" /> +<hkern u1="À" u2="Õ" k="52" /> +<hkern u1="À" u2="Ô" k="52" /> +<hkern u1="À" u2="Ó" k="52" /> +<hkern u1="À" u2="Ò" k="52" /> +<hkern u1="À" u2="Ç" k="52" /> +<hkern u1="À" u2="»" k="69" /> +<hkern u1="À" u2="º" k="196" /> +<hkern u1="À" u2="¹" k="207" /> +<hkern u1="À" u2="·" k="69" /> +<hkern u1="À" u2="³" k="207" /> +<hkern u1="À" u2="²" k="207" /> +<hkern u1="À" u2="°" k="196" /> +<hkern u1="À" u2="®" k="52" /> +<hkern u1="À" u2="­" k="69" /> +<hkern u1="À" u2="«" k="69" /> +<hkern u1="À" u2="ª" k="196" /> +<hkern u1="À" u2="©" k="52" /> +<hkern u1="À" u2="y" k="93" /> +<hkern u1="À" u2="v" k="93" /> +<hkern u1="À" u2="\" k="173" /> +<hkern u1="À" u2="Y" k="186" /> +<hkern u1="À" u2="W" k="104" /> +<hkern u1="À" u2="V" k="173" /> +<hkern u1="À" u2="U" k="53" /> +<hkern u1="À" u2="T" k="151" /> +<hkern u1="À" u2="Q" k="52" /> +<hkern u1="À" u2="O" k="52" /> +<hkern u1="À" u2="J" k="-57" /> +<hkern u1="À" u2="G" k="52" /> +<hkern u1="À" u2="C" k="52" /> +<hkern u1="À" u2="@" k="52" /> +<hkern u1="À" u2="?" k="65" /> +<hkern u1="À" u2="-" k="69" /> +<hkern u1="À" u2="*" k="196" /> +<hkern u1="À" u2="'" k="196" /> +<hkern u1="À" u2=""" k="196" /> +<hkern u1="Á" u2="™" k="196" /> +<hkern u1="Á" u2="›" k="69" /> +<hkern u1="Á" u2="‹" k="69" /> +<hkern u1="Á" u2="•" k="69" /> +<hkern u1="Á" u2="”" k="196" /> +<hkern u1="Á" u2="“" k="196" /> +<hkern u1="Á" u2="’" k="196" /> +<hkern u1="Á" u2="‘" k="196" /> +<hkern u1="Á" u2="—" k="69" /> +<hkern u1="Á" u2="–" k="69" /> +<hkern u1="Á" u2="Ÿ" k="186" /> +<hkern u1="Á" u2="Œ" k="52" /> +<hkern u1="Á" u2="ÿ" k="93" /> +<hkern u1="Á" u2="ý" k="93" /> +<hkern u1="Á" u2="Ý" k="186" /> +<hkern u1="Á" u2="Ü" k="53" /> +<hkern u1="Á" u2="Û" k="53" /> +<hkern u1="Á" u2="Ú" k="53" /> +<hkern u1="Á" u2="Ù" k="53" /> +<hkern u1="Á" u2="Ø" k="52" /> +<hkern u1="Á" u2="Ö" k="52" /> +<hkern u1="Á" u2="Õ" k="52" /> +<hkern u1="Á" u2="Ô" k="52" /> +<hkern u1="Á" u2="Ó" k="52" /> +<hkern u1="Á" u2="Ò" k="52" /> +<hkern u1="Á" u2="Ç" k="52" /> +<hkern u1="Á" u2="»" k="69" /> +<hkern u1="Á" u2="º" k="196" /> +<hkern u1="Á" u2="¹" k="207" /> +<hkern u1="Á" u2="·" k="69" /> +<hkern u1="Á" u2="³" k="207" /> +<hkern u1="Á" u2="²" k="207" /> +<hkern u1="Á" u2="°" k="196" /> +<hkern u1="Á" u2="®" k="52" /> +<hkern u1="Á" u2="­" k="69" /> +<hkern u1="Á" u2="«" k="69" /> +<hkern u1="Á" u2="ª" k="196" /> +<hkern u1="Á" u2="©" k="52" /> +<hkern u1="Á" u2="y" k="93" /> +<hkern u1="Á" u2="v" k="93" /> +<hkern u1="Á" u2="\" k="173" /> +<hkern u1="Á" u2="Y" k="186" /> +<hkern u1="Á" u2="W" k="104" /> +<hkern u1="Á" u2="V" k="173" /> +<hkern u1="Á" u2="U" k="53" /> +<hkern u1="Á" u2="T" k="151" /> +<hkern u1="Á" u2="Q" k="52" /> +<hkern u1="Á" u2="O" k="52" /> +<hkern u1="Á" u2="J" k="-57" /> +<hkern u1="Á" u2="G" k="52" /> +<hkern u1="Á" u2="C" k="52" /> +<hkern u1="Á" u2="@" k="52" /> +<hkern u1="Á" u2="?" k="65" /> +<hkern u1="Á" u2="-" k="69" /> +<hkern u1="Á" u2="*" k="196" /> +<hkern u1="Á" u2="'" k="196" /> +<hkern u1="Á" u2=""" k="196" /> +<hkern u1="Â" u2="™" k="196" /> +<hkern u1="Â" u2="›" k="69" /> +<hkern u1="Â" u2="‹" k="69" /> +<hkern u1="Â" u2="•" k="69" /> +<hkern u1="Â" u2="”" k="196" /> +<hkern u1="Â" u2="“" k="196" /> +<hkern u1="Â" u2="’" k="196" /> +<hkern u1="Â" u2="‘" k="196" /> +<hkern u1="Â" u2="—" k="69" /> +<hkern u1="Â" u2="–" k="69" /> +<hkern u1="Â" u2="Ÿ" k="186" /> +<hkern u1="Â" u2="Œ" k="52" /> +<hkern u1="Â" u2="ÿ" k="93" /> +<hkern u1="Â" u2="ý" k="93" /> +<hkern u1="Â" u2="Ý" k="186" /> +<hkern u1="Â" u2="Ü" k="53" /> +<hkern u1="Â" u2="Û" k="53" /> +<hkern u1="Â" u2="Ú" k="53" /> +<hkern u1="Â" u2="Ù" k="53" /> +<hkern u1="Â" u2="Ø" k="52" /> +<hkern u1="Â" u2="Ö" k="52" /> +<hkern u1="Â" u2="Õ" k="52" /> +<hkern u1="Â" u2="Ô" k="52" /> +<hkern u1="Â" u2="Ó" k="52" /> +<hkern u1="Â" u2="Ò" k="52" /> +<hkern u1="Â" u2="Ç" k="52" /> +<hkern u1="Â" u2="»" k="69" /> +<hkern u1="Â" u2="º" k="196" /> +<hkern u1="Â" u2="¹" k="207" /> +<hkern u1="Â" u2="·" k="69" /> +<hkern u1="Â" u2="³" k="207" /> +<hkern u1="Â" u2="²" k="207" /> +<hkern u1="Â" u2="°" k="196" /> +<hkern u1="Â" u2="®" k="52" /> +<hkern u1="Â" u2="­" k="69" /> +<hkern u1="Â" u2="«" k="69" /> +<hkern u1="Â" u2="ª" k="196" /> +<hkern u1="Â" u2="©" k="52" /> +<hkern u1="Â" u2="y" k="93" /> +<hkern u1="Â" u2="v" k="93" /> +<hkern u1="Â" u2="\" k="173" /> +<hkern u1="Â" u2="Y" k="186" /> +<hkern u1="Â" u2="W" k="104" /> +<hkern u1="Â" u2="V" k="173" /> +<hkern u1="Â" u2="U" k="53" /> +<hkern u1="Â" u2="T" k="151" /> +<hkern u1="Â" u2="Q" k="52" /> +<hkern u1="Â" u2="O" k="52" /> +<hkern u1="Â" u2="J" k="-57" /> +<hkern u1="Â" u2="G" k="52" /> +<hkern u1="Â" u2="C" k="52" /> +<hkern u1="Â" u2="@" k="52" /> +<hkern u1="Â" u2="?" k="65" /> +<hkern u1="Â" u2="-" k="69" /> +<hkern u1="Â" u2="*" k="196" /> +<hkern u1="Â" u2="'" k="196" /> +<hkern u1="Â" u2=""" k="196" /> +<hkern u1="Ã" u2="™" k="196" /> +<hkern u1="Ã" u2="›" k="69" /> +<hkern u1="Ã" u2="‹" k="69" /> +<hkern u1="Ã" u2="•" k="69" /> +<hkern u1="Ã" u2="”" k="196" /> +<hkern u1="Ã" u2="“" k="196" /> +<hkern u1="Ã" u2="’" k="196" /> +<hkern u1="Ã" u2="‘" k="196" /> +<hkern u1="Ã" u2="—" k="69" /> +<hkern u1="Ã" u2="–" k="69" /> +<hkern u1="Ã" u2="Ÿ" k="186" /> +<hkern u1="Ã" u2="Œ" k="52" /> +<hkern u1="Ã" u2="ÿ" k="93" /> +<hkern u1="Ã" u2="ý" k="93" /> +<hkern u1="Ã" u2="Ý" k="186" /> +<hkern u1="Ã" u2="Ü" k="53" /> +<hkern u1="Ã" u2="Û" k="53" /> +<hkern u1="Ã" u2="Ú" k="53" /> +<hkern u1="Ã" u2="Ù" k="53" /> +<hkern u1="Ã" u2="Ø" k="52" /> +<hkern u1="Ã" u2="Ö" k="52" /> +<hkern u1="Ã" u2="Õ" k="52" /> +<hkern u1="Ã" u2="Ô" k="52" /> +<hkern u1="Ã" u2="Ó" k="52" /> +<hkern u1="Ã" u2="Ò" k="52" /> +<hkern u1="Ã" u2="Ç" k="52" /> +<hkern u1="Ã" u2="»" k="69" /> +<hkern u1="Ã" u2="º" k="196" /> +<hkern u1="Ã" u2="¹" k="207" /> +<hkern u1="Ã" u2="·" k="69" /> +<hkern u1="Ã" u2="³" k="207" /> +<hkern u1="Ã" u2="²" k="207" /> +<hkern u1="Ã" u2="°" k="196" /> +<hkern u1="Ã" u2="®" k="52" /> +<hkern u1="Ã" u2="­" k="69" /> +<hkern u1="Ã" u2="«" k="69" /> +<hkern u1="Ã" u2="ª" k="196" /> +<hkern u1="Ã" u2="©" k="52" /> +<hkern u1="Ã" u2="y" k="93" /> +<hkern u1="Ã" u2="v" k="93" /> +<hkern u1="Ã" u2="\" k="173" /> +<hkern u1="Ã" u2="Y" k="186" /> +<hkern u1="Ã" u2="W" k="104" /> +<hkern u1="Ã" u2="V" k="173" /> +<hkern u1="Ã" u2="U" k="53" /> +<hkern u1="Ã" u2="T" k="151" /> +<hkern u1="Ã" u2="Q" k="52" /> +<hkern u1="Ã" u2="O" k="52" /> +<hkern u1="Ã" u2="J" k="-57" /> +<hkern u1="Ã" u2="G" k="52" /> +<hkern u1="Ã" u2="C" k="52" /> +<hkern u1="Ã" u2="@" k="52" /> +<hkern u1="Ã" u2="?" k="65" /> +<hkern u1="Ã" u2="-" k="69" /> +<hkern u1="Ã" u2="*" k="196" /> +<hkern u1="Ã" u2="'" k="196" /> +<hkern u1="Ã" u2=""" k="196" /> +<hkern u1="Ä" u2="™" k="196" /> +<hkern u1="Ä" u2="›" k="69" /> +<hkern u1="Ä" u2="‹" k="69" /> +<hkern u1="Ä" u2="•" k="69" /> +<hkern u1="Ä" u2="”" k="196" /> +<hkern u1="Ä" u2="“" k="196" /> +<hkern u1="Ä" u2="’" k="196" /> +<hkern u1="Ä" u2="‘" k="196" /> +<hkern u1="Ä" u2="—" k="69" /> +<hkern u1="Ä" u2="–" k="69" /> +<hkern u1="Ä" u2="Ÿ" k="186" /> +<hkern u1="Ä" u2="Œ" k="52" /> +<hkern u1="Ä" u2="ÿ" k="93" /> +<hkern u1="Ä" u2="ý" k="93" /> +<hkern u1="Ä" u2="Ý" k="186" /> +<hkern u1="Ä" u2="Ü" k="53" /> +<hkern u1="Ä" u2="Û" k="53" /> +<hkern u1="Ä" u2="Ú" k="53" /> +<hkern u1="Ä" u2="Ù" k="53" /> +<hkern u1="Ä" u2="Ø" k="52" /> +<hkern u1="Ä" u2="Ö" k="52" /> +<hkern u1="Ä" u2="Õ" k="52" /> +<hkern u1="Ä" u2="Ô" k="52" /> +<hkern u1="Ä" u2="Ó" k="52" /> +<hkern u1="Ä" u2="Ò" k="52" /> +<hkern u1="Ä" u2="Ç" k="52" /> +<hkern u1="Ä" u2="»" k="69" /> +<hkern u1="Ä" u2="º" k="196" /> +<hkern u1="Ä" u2="¹" k="207" /> +<hkern u1="Ä" u2="·" k="69" /> +<hkern u1="Ä" u2="³" k="207" /> +<hkern u1="Ä" u2="²" k="207" /> +<hkern u1="Ä" u2="°" k="196" /> +<hkern u1="Ä" u2="®" k="52" /> +<hkern u1="Ä" u2="­" k="69" /> +<hkern u1="Ä" u2="«" k="69" /> +<hkern u1="Ä" u2="ª" k="196" /> +<hkern u1="Ä" u2="©" k="52" /> +<hkern u1="Ä" u2="y" k="93" /> +<hkern u1="Ä" u2="v" k="93" /> +<hkern u1="Ä" u2="\" k="173" /> +<hkern u1="Ä" u2="Y" k="186" /> +<hkern u1="Ä" u2="W" k="104" /> +<hkern u1="Ä" u2="V" k="173" /> +<hkern u1="Ä" u2="U" k="53" /> +<hkern u1="Ä" u2="T" k="151" /> +<hkern u1="Ä" u2="Q" k="52" /> +<hkern u1="Ä" u2="O" k="52" /> +<hkern u1="Ä" u2="J" k="-57" /> +<hkern u1="Ä" u2="G" k="52" /> +<hkern u1="Ä" u2="C" k="52" /> +<hkern u1="Ä" u2="@" k="52" /> +<hkern u1="Ä" u2="?" k="65" /> +<hkern u1="Ä" u2="-" k="69" /> +<hkern u1="Ä" u2="*" k="196" /> +<hkern u1="Ä" u2="'" k="196" /> +<hkern u1="Ä" u2=""" k="196" /> +<hkern u1="Å" u2="™" k="196" /> +<hkern u1="Å" u2="›" k="69" /> +<hkern u1="Å" u2="‹" k="69" /> +<hkern u1="Å" u2="•" k="69" /> +<hkern u1="Å" u2="”" k="196" /> +<hkern u1="Å" u2="“" k="196" /> +<hkern u1="Å" u2="’" k="196" /> +<hkern u1="Å" u2="‘" k="196" /> +<hkern u1="Å" u2="—" k="69" /> +<hkern u1="Å" u2="–" k="69" /> +<hkern u1="Å" u2="Ÿ" k="186" /> +<hkern u1="Å" u2="Œ" k="52" /> +<hkern u1="Å" u2="ÿ" k="93" /> +<hkern u1="Å" u2="ý" k="93" /> +<hkern u1="Å" u2="Ý" k="186" /> +<hkern u1="Å" u2="Ü" k="53" /> +<hkern u1="Å" u2="Û" k="53" /> +<hkern u1="Å" u2="Ú" k="53" /> +<hkern u1="Å" u2="Ù" k="53" /> +<hkern u1="Å" u2="Ø" k="52" /> +<hkern u1="Å" u2="Ö" k="52" /> +<hkern u1="Å" u2="Õ" k="52" /> +<hkern u1="Å" u2="Ô" k="52" /> +<hkern u1="Å" u2="Ó" k="52" /> +<hkern u1="Å" u2="Ò" k="52" /> +<hkern u1="Å" u2="Ç" k="52" /> +<hkern u1="Å" u2="»" k="69" /> +<hkern u1="Å" u2="º" k="196" /> +<hkern u1="Å" u2="¹" k="207" /> +<hkern u1="Å" u2="·" k="69" /> +<hkern u1="Å" u2="³" k="207" /> +<hkern u1="Å" u2="²" k="207" /> +<hkern u1="Å" u2="°" k="196" /> +<hkern u1="Å" u2="®" k="52" /> +<hkern u1="Å" u2="­" k="69" /> +<hkern u1="Å" u2="«" k="69" /> +<hkern u1="Å" u2="ª" k="196" /> +<hkern u1="Å" u2="©" k="52" /> +<hkern u1="Å" u2="y" k="93" /> +<hkern u1="Å" u2="v" k="93" /> +<hkern u1="Å" u2="\" k="173" /> +<hkern u1="Å" u2="Y" k="186" /> +<hkern u1="Å" u2="W" k="104" /> +<hkern u1="Å" u2="V" k="173" /> +<hkern u1="Å" u2="U" k="53" /> +<hkern u1="Å" u2="T" k="151" /> +<hkern u1="Å" u2="Q" k="52" /> +<hkern u1="Å" u2="O" k="52" /> +<hkern u1="Å" u2="J" k="-57" /> +<hkern u1="Å" u2="G" k="52" /> +<hkern u1="Å" u2="C" k="52" /> +<hkern u1="Å" u2="@" k="52" /> +<hkern u1="Å" u2="?" k="65" /> +<hkern u1="Å" u2="-" k="69" /> +<hkern u1="Å" u2="*" k="196" /> +<hkern u1="Å" u2="'" k="196" /> +<hkern u1="Å" u2=""" k="196" /> +<hkern u1="Ç" u2="›" k="147" /> +<hkern u1="Ç" u2="‹" k="147" /> +<hkern u1="Ç" u2="•" k="147" /> +<hkern u1="Ç" u2="—" k="147" /> +<hkern u1="Ç" u2="–" k="147" /> +<hkern u1="Ç" u2="»" k="147" /> +<hkern u1="Ç" u2="·" k="147" /> +<hkern u1="Ç" u2="­" k="147" /> +<hkern u1="Ç" u2="«" k="147" /> +<hkern u1="Ç" u2="-" k="147" /> +<hkern u1="Ð" u2="™" k="43" /> +<hkern u1="Ð" u2="„" k="53" /> +<hkern u1="Ð" u2="”" k="43" /> +<hkern u1="Ð" u2="“" k="43" /> +<hkern u1="Ð" u2="‚" k="53" /> +<hkern u1="Ð" u2="’" k="43" /> +<hkern u1="Ð" u2="‘" k="43" /> +<hkern u1="Ð" u2="Ÿ" k="82" /> +<hkern u1="Ð" u2="Ý" k="82" /> +<hkern u1="Ð" u2="Æ" k="52" /> +<hkern u1="Ð" u2="Å" k="52" /> +<hkern u1="Ð" u2="Ä" k="52" /> +<hkern u1="Ð" u2="Ã" k="52" /> +<hkern u1="Ð" u2="Â" k="52" /> +<hkern u1="Ð" u2="Á" k="52" /> +<hkern u1="Ð" u2="À" k="52" /> +<hkern u1="Ð" u2="º" k="43" /> +<hkern u1="Ð" u2="°" k="43" /> +<hkern u1="Ð" u2="ª" k="43" /> +<hkern u1="Ð" u2="}" k="41" /> +<hkern u1="Ð" u2="]" k="41" /> +<hkern u1="Ð" u2="\" k="57" /> +<hkern u1="Ð" u2="Z" k="66" /> +<hkern u1="Ð" u2="Y" k="82" /> +<hkern u1="Ð" u2="X" k="31" /> +<hkern u1="Ð" u2="V" k="57" /> +<hkern u1="Ð" u2="T" k="80" /> +<hkern u1="Ð" u2="A" k="52" /> +<hkern u1="Ð" u2="/" k="52" /> +<hkern u1="Ð" u2="." k="53" /> +<hkern u1="Ð" u2="," k="53" /> +<hkern u1="Ð" u2="*" k="43" /> +<hkern u1="Ð" u2=")" k="41" /> +<hkern u1="Ð" u2="'" k="43" /> +<hkern u1="Ð" u2="&" k="52" /> +<hkern u1="Ð" u2=""" k="43" /> +<hkern u1="Ò" u2="™" k="43" /> +<hkern u1="Ò" u2="„" k="53" /> +<hkern u1="Ò" u2="”" k="43" /> +<hkern u1="Ò" u2="“" k="43" /> +<hkern u1="Ò" u2="‚" k="53" /> +<hkern u1="Ò" u2="’" k="43" /> +<hkern u1="Ò" u2="‘" k="43" /> +<hkern u1="Ò" u2="Ÿ" k="82" /> +<hkern u1="Ò" u2="Ý" k="82" /> +<hkern u1="Ò" u2="Æ" k="52" /> +<hkern u1="Ò" u2="Å" k="52" /> +<hkern u1="Ò" u2="Ä" k="52" /> +<hkern u1="Ò" u2="Ã" k="52" /> +<hkern u1="Ò" u2="Â" k="52" /> +<hkern u1="Ò" u2="Á" k="52" /> +<hkern u1="Ò" u2="À" k="52" /> +<hkern u1="Ò" u2="º" k="43" /> +<hkern u1="Ò" u2="°" k="43" /> +<hkern u1="Ò" u2="ª" k="43" /> +<hkern u1="Ò" u2="}" k="41" /> +<hkern u1="Ò" u2="]" k="41" /> +<hkern u1="Ò" u2="\" k="57" /> +<hkern u1="Ò" u2="Z" k="66" /> +<hkern u1="Ò" u2="Y" k="82" /> +<hkern u1="Ò" u2="X" k="31" /> +<hkern u1="Ò" u2="V" k="57" /> +<hkern u1="Ò" u2="T" k="80" /> +<hkern u1="Ò" u2="A" k="52" /> +<hkern u1="Ò" u2="/" k="52" /> +<hkern u1="Ò" u2="." k="53" /> +<hkern u1="Ò" u2="," k="53" /> +<hkern u1="Ò" u2="*" k="43" /> +<hkern u1="Ò" u2=")" k="41" /> +<hkern u1="Ò" u2="'" k="43" /> +<hkern u1="Ò" u2="&" k="52" /> +<hkern u1="Ò" u2=""" k="43" /> +<hkern u1="Ó" u2="™" k="43" /> +<hkern u1="Ó" u2="„" k="53" /> +<hkern u1="Ó" u2="”" k="43" /> +<hkern u1="Ó" u2="“" k="43" /> +<hkern u1="Ó" u2="‚" k="53" /> +<hkern u1="Ó" u2="’" k="43" /> +<hkern u1="Ó" u2="‘" k="43" /> +<hkern u1="Ó" u2="Ÿ" k="82" /> +<hkern u1="Ó" u2="Ý" k="82" /> +<hkern u1="Ó" u2="Æ" k="52" /> +<hkern u1="Ó" u2="Å" k="52" /> +<hkern u1="Ó" u2="Ä" k="52" /> +<hkern u1="Ó" u2="Ã" k="52" /> +<hkern u1="Ó" u2="Â" k="52" /> +<hkern u1="Ó" u2="Á" k="52" /> +<hkern u1="Ó" u2="À" k="52" /> +<hkern u1="Ó" u2="º" k="43" /> +<hkern u1="Ó" u2="°" k="43" /> +<hkern u1="Ó" u2="ª" k="43" /> +<hkern u1="Ó" u2="}" k="41" /> +<hkern u1="Ó" u2="]" k="41" /> +<hkern u1="Ó" u2="\" k="57" /> +<hkern u1="Ó" u2="Z" k="66" /> +<hkern u1="Ó" u2="Y" k="82" /> +<hkern u1="Ó" u2="X" k="31" /> +<hkern u1="Ó" u2="V" k="57" /> +<hkern u1="Ó" u2="T" k="80" /> +<hkern u1="Ó" u2="A" k="52" /> +<hkern u1="Ó" u2="/" k="52" /> +<hkern u1="Ó" u2="." k="53" /> +<hkern u1="Ó" u2="," k="53" /> +<hkern u1="Ó" u2="*" k="43" /> +<hkern u1="Ó" u2=")" k="41" /> +<hkern u1="Ó" u2="'" k="43" /> +<hkern u1="Ó" u2="&" k="52" /> +<hkern u1="Ó" u2=""" k="43" /> +<hkern u1="Ô" u2="™" k="43" /> +<hkern u1="Ô" u2="„" k="53" /> +<hkern u1="Ô" u2="”" k="43" /> +<hkern u1="Ô" u2="“" k="43" /> +<hkern u1="Ô" u2="‚" k="53" /> +<hkern u1="Ô" u2="’" k="43" /> +<hkern u1="Ô" u2="‘" k="43" /> +<hkern u1="Ô" u2="Ÿ" k="82" /> +<hkern u1="Ô" u2="Ý" k="82" /> +<hkern u1="Ô" u2="Æ" k="52" /> +<hkern u1="Ô" u2="Å" k="52" /> +<hkern u1="Ô" u2="Ä" k="52" /> +<hkern u1="Ô" u2="Ã" k="52" /> +<hkern u1="Ô" u2="Â" k="52" /> +<hkern u1="Ô" u2="Á" k="52" /> +<hkern u1="Ô" u2="À" k="52" /> +<hkern u1="Ô" u2="º" k="43" /> +<hkern u1="Ô" u2="°" k="43" /> +<hkern u1="Ô" u2="ª" k="43" /> +<hkern u1="Ô" u2="}" k="41" /> +<hkern u1="Ô" u2="]" k="41" /> +<hkern u1="Ô" u2="\" k="57" /> +<hkern u1="Ô" u2="Z" k="66" /> +<hkern u1="Ô" u2="Y" k="82" /> +<hkern u1="Ô" u2="X" k="31" /> +<hkern u1="Ô" u2="V" k="57" /> +<hkern u1="Ô" u2="T" k="80" /> +<hkern u1="Ô" u2="A" k="52" /> +<hkern u1="Ô" u2="/" k="52" /> +<hkern u1="Ô" u2="." k="53" /> +<hkern u1="Ô" u2="," k="53" /> +<hkern u1="Ô" u2="*" k="43" /> +<hkern u1="Ô" u2=")" k="41" /> +<hkern u1="Ô" u2="'" k="43" /> +<hkern u1="Ô" u2="&" k="52" /> +<hkern u1="Ô" u2=""" k="43" /> +<hkern u1="Õ" u2="™" k="43" /> +<hkern u1="Õ" u2="„" k="53" /> +<hkern u1="Õ" u2="”" k="43" /> +<hkern u1="Õ" u2="“" k="43" /> +<hkern u1="Õ" u2="‚" k="53" /> +<hkern u1="Õ" u2="’" k="43" /> +<hkern u1="Õ" u2="‘" k="43" /> +<hkern u1="Õ" u2="Ÿ" k="82" /> +<hkern u1="Õ" u2="Ý" k="82" /> +<hkern u1="Õ" u2="Æ" k="52" /> +<hkern u1="Õ" u2="Å" k="52" /> +<hkern u1="Õ" u2="Ä" k="52" /> +<hkern u1="Õ" u2="Ã" k="52" /> +<hkern u1="Õ" u2="Â" k="52" /> +<hkern u1="Õ" u2="Á" k="52" /> +<hkern u1="Õ" u2="À" k="52" /> +<hkern u1="Õ" u2="º" k="43" /> +<hkern u1="Õ" u2="°" k="43" /> +<hkern u1="Õ" u2="ª" k="43" /> +<hkern u1="Õ" u2="}" k="41" /> +<hkern u1="Õ" u2="]" k="41" /> +<hkern u1="Õ" u2="\" k="57" /> +<hkern u1="Õ" u2="Z" k="66" /> +<hkern u1="Õ" u2="Y" k="82" /> +<hkern u1="Õ" u2="X" k="31" /> +<hkern u1="Õ" u2="V" k="57" /> +<hkern u1="Õ" u2="T" k="80" /> +<hkern u1="Õ" u2="A" k="52" /> +<hkern u1="Õ" u2="/" k="52" /> +<hkern u1="Õ" u2="." k="53" /> +<hkern u1="Õ" u2="," k="53" /> +<hkern u1="Õ" u2="*" k="43" /> +<hkern u1="Õ" u2=")" k="41" /> +<hkern u1="Õ" u2="'" k="43" /> +<hkern u1="Õ" u2="&" k="52" /> +<hkern u1="Õ" u2=""" k="43" /> +<hkern u1="Ö" u2="™" k="43" /> +<hkern u1="Ö" u2="„" k="53" /> +<hkern u1="Ö" u2="”" k="43" /> +<hkern u1="Ö" u2="“" k="43" /> +<hkern u1="Ö" u2="‚" k="53" /> +<hkern u1="Ö" u2="’" k="43" /> +<hkern u1="Ö" u2="‘" k="43" /> +<hkern u1="Ö" u2="Ÿ" k="82" /> +<hkern u1="Ö" u2="Ý" k="82" /> +<hkern u1="Ö" u2="Æ" k="52" /> +<hkern u1="Ö" u2="Å" k="52" /> +<hkern u1="Ö" u2="Ä" k="52" /> +<hkern u1="Ö" u2="Ã" k="52" /> +<hkern u1="Ö" u2="Â" k="52" /> +<hkern u1="Ö" u2="Á" k="52" /> +<hkern u1="Ö" u2="À" k="52" /> +<hkern u1="Ö" u2="º" k="43" /> +<hkern u1="Ö" u2="°" k="43" /> +<hkern u1="Ö" u2="ª" k="43" /> +<hkern u1="Ö" u2="}" k="41" /> +<hkern u1="Ö" u2="]" k="41" /> +<hkern u1="Ö" u2="\" k="57" /> +<hkern u1="Ö" u2="Z" k="66" /> +<hkern u1="Ö" u2="Y" k="82" /> +<hkern u1="Ö" u2="X" k="31" /> +<hkern u1="Ö" u2="V" k="57" /> +<hkern u1="Ö" u2="T" k="80" /> +<hkern u1="Ö" u2="A" k="52" /> +<hkern u1="Ö" u2="/" k="52" /> +<hkern u1="Ö" u2="." k="53" /> +<hkern u1="Ö" u2="," k="53" /> +<hkern u1="Ö" u2="*" k="43" /> +<hkern u1="Ö" u2=")" k="41" /> +<hkern u1="Ö" u2="'" k="43" /> +<hkern u1="Ö" u2="&" k="52" /> +<hkern u1="Ö" u2=""" k="43" /> +<hkern u1="Ø" u2="™" k="43" /> +<hkern u1="Ø" u2="„" k="53" /> +<hkern u1="Ø" u2="”" k="43" /> +<hkern u1="Ø" u2="“" k="43" /> +<hkern u1="Ø" u2="‚" k="53" /> +<hkern u1="Ø" u2="’" k="43" /> +<hkern u1="Ø" u2="‘" k="43" /> +<hkern u1="Ø" u2="Ÿ" k="82" /> +<hkern u1="Ø" u2="Ý" k="82" /> +<hkern u1="Ø" u2="Æ" k="52" /> +<hkern u1="Ø" u2="Å" k="52" /> +<hkern u1="Ø" u2="Ä" k="52" /> +<hkern u1="Ø" u2="Ã" k="52" /> +<hkern u1="Ø" u2="Â" k="52" /> +<hkern u1="Ø" u2="Á" k="52" /> +<hkern u1="Ø" u2="À" k="52" /> +<hkern u1="Ø" u2="º" k="43" /> +<hkern u1="Ø" u2="°" k="43" /> +<hkern u1="Ø" u2="ª" k="43" /> +<hkern u1="Ø" u2="}" k="41" /> +<hkern u1="Ø" u2="]" k="41" /> +<hkern u1="Ø" u2="\" k="57" /> +<hkern u1="Ø" u2="Z" k="66" /> +<hkern u1="Ø" u2="Y" k="82" /> +<hkern u1="Ø" u2="X" k="31" /> +<hkern u1="Ø" u2="V" k="57" /> +<hkern u1="Ø" u2="T" k="80" /> +<hkern u1="Ø" u2="A" k="52" /> +<hkern u1="Ø" u2="/" k="52" /> +<hkern u1="Ø" u2="." k="53" /> +<hkern u1="Ø" u2="," k="53" /> +<hkern u1="Ø" u2="*" k="43" /> +<hkern u1="Ø" u2=")" k="41" /> +<hkern u1="Ø" u2="'" k="43" /> +<hkern u1="Ø" u2="&" k="52" /> +<hkern u1="Ø" u2=""" k="43" /> +<hkern u1="Ù" u2="„" k="51" /> +<hkern u1="Ù" u2="‚" k="51" /> +<hkern u1="Ù" u2="Æ" k="53" /> +<hkern u1="Ù" u2="Å" k="53" /> +<hkern u1="Ù" u2="Ä" k="53" /> +<hkern u1="Ù" u2="Ã" k="53" /> +<hkern u1="Ù" u2="Â" k="53" /> +<hkern u1="Ù" u2="Á" k="53" /> +<hkern u1="Ù" u2="À" k="53" /> +<hkern u1="Ù" u2="A" k="53" /> +<hkern u1="Ù" u2="/" k="53" /> +<hkern u1="Ù" u2="." k="51" /> +<hkern u1="Ù" u2="," k="51" /> +<hkern u1="Ù" u2="&" k="53" /> +<hkern u1="Ú" u2="„" k="51" /> +<hkern u1="Ú" u2="‚" k="51" /> +<hkern u1="Ú" u2="Æ" k="53" /> +<hkern u1="Ú" u2="Å" k="53" /> +<hkern u1="Ú" u2="Ä" k="53" /> +<hkern u1="Ú" u2="Ã" k="53" /> +<hkern u1="Ú" u2="Â" k="53" /> +<hkern u1="Ú" u2="Á" k="53" /> +<hkern u1="Ú" u2="À" k="53" /> +<hkern u1="Ú" u2="A" k="53" /> +<hkern u1="Ú" u2="/" k="53" /> +<hkern u1="Ú" u2="." k="51" /> +<hkern u1="Ú" u2="," k="51" /> +<hkern u1="Ú" u2="&" k="53" /> +<hkern u1="Û" u2="„" k="51" /> +<hkern u1="Û" u2="‚" k="51" /> +<hkern u1="Û" u2="Æ" k="53" /> +<hkern u1="Û" u2="Å" k="53" /> +<hkern u1="Û" u2="Ä" k="53" /> +<hkern u1="Û" u2="Ã" k="53" /> +<hkern u1="Û" u2="Â" k="53" /> +<hkern u1="Û" u2="Á" k="53" /> +<hkern u1="Û" u2="À" k="53" /> +<hkern u1="Û" u2="A" k="53" /> +<hkern u1="Û" u2="/" k="53" /> +<hkern u1="Û" u2="." k="51" /> +<hkern u1="Û" u2="," k="51" /> +<hkern u1="Û" u2="&" k="53" /> +<hkern u1="Ü" u2="„" k="51" /> +<hkern u1="Ü" u2="‚" k="51" /> +<hkern u1="Ü" u2="Æ" k="53" /> +<hkern u1="Ü" u2="Å" k="53" /> +<hkern u1="Ü" u2="Ä" k="53" /> +<hkern u1="Ü" u2="Ã" k="53" /> +<hkern u1="Ü" u2="Â" k="53" /> +<hkern u1="Ü" u2="Á" k="53" /> +<hkern u1="Ü" u2="À" k="53" /> +<hkern u1="Ü" u2="A" k="53" /> +<hkern u1="Ü" u2="/" k="53" /> +<hkern u1="Ü" u2="." k="51" /> +<hkern u1="Ü" u2="," k="51" /> +<hkern u1="Ü" u2="&" k="53" /> +<hkern u1="Ý" u2="™" k="-37" /> +<hkern u1="Ý" u2="›" k="164" /> +<hkern u1="Ý" u2="‹" k="164" /> +<hkern u1="Ý" u2="•" k="164" /> +<hkern u1="Ý" u2="„" k="171" /> +<hkern u1="Ý" u2="”" k="-37" /> +<hkern u1="Ý" u2="“" k="-37" /> +<hkern u1="Ý" u2="‚" k="171" /> +<hkern u1="Ý" u2="’" k="-37" /> +<hkern u1="Ý" u2="‘" k="-37" /> +<hkern u1="Ý" u2="—" k="164" /> +<hkern u1="Ý" u2="–" k="164" /> +<hkern u1="Ý" u2="œ" k="164" /> +<hkern u1="Ý" u2="Œ" k="82" /> +<hkern u1="Ý" u2="ÿ" k="102" /> +<hkern u1="Ý" u2="ý" k="102" /> +<hkern u1="Ý" u2="ü" k="134" /> +<hkern u1="Ý" u2="û" k="134" /> +<hkern u1="Ý" u2="ú" k="134" /> +<hkern u1="Ý" u2="ù" k="134" /> +<hkern u1="Ý" u2="ø" k="164" /> +<hkern u1="Ý" u2="ö" k="164" /> +<hkern u1="Ý" u2="õ" k="164" /> +<hkern u1="Ý" u2="ô" k="164" /> +<hkern u1="Ý" u2="ó" k="164" /> +<hkern u1="Ý" u2="ò" k="164" /> +<hkern u1="Ý" u2="ñ" k="134" /> +<hkern u1="Ý" u2="ð" k="164" /> +<hkern u1="Ý" u2="ë" k="164" /> +<hkern u1="Ý" u2="ê" k="164" /> +<hkern u1="Ý" u2="é" k="164" /> +<hkern u1="Ý" u2="è" k="164" /> +<hkern u1="Ý" u2="ç" k="164" /> +<hkern u1="Ý" u2="æ" k="148" /> +<hkern u1="Ý" u2="å" k="148" /> +<hkern u1="Ý" u2="ä" k="148" /> +<hkern u1="Ý" u2="ã" k="148" /> +<hkern u1="Ý" u2="â" k="148" /> +<hkern u1="Ý" u2="á" k="148" /> +<hkern u1="Ý" u2="à" k="148" /> +<hkern u1="Ý" u2="Ø" k="82" /> +<hkern u1="Ý" u2="Ö" k="82" /> +<hkern u1="Ý" u2="Õ" k="82" /> +<hkern u1="Ý" u2="Ô" k="82" /> +<hkern u1="Ý" u2="Ó" k="82" /> +<hkern u1="Ý" u2="Ò" k="82" /> +<hkern u1="Ý" u2="Ç" k="82" /> +<hkern u1="Ý" u2="Æ" k="186" /> +<hkern u1="Ý" u2="Å" k="186" /> +<hkern u1="Ý" u2="Ä" k="186" /> +<hkern u1="Ý" u2="Ã" k="186" /> +<hkern u1="Ý" u2="Â" k="186" /> +<hkern u1="Ý" u2="Á" k="186" /> +<hkern u1="Ý" u2="À" k="186" /> +<hkern u1="Ý" u2="»" k="164" /> +<hkern u1="Ý" u2="º" k="-37" /> +<hkern u1="Ý" u2="¹" k="-57" /> +<hkern u1="Ý" u2="·" k="164" /> +<hkern u1="Ý" u2="µ" k="134" /> +<hkern u1="Ý" u2="³" k="-57" /> +<hkern u1="Ý" u2="²" k="-57" /> +<hkern u1="Ý" u2="°" k="-37" /> +<hkern u1="Ý" u2="®" k="82" /> +<hkern u1="Ý" u2="­" k="164" /> +<hkern u1="Ý" u2="«" k="164" /> +<hkern u1="Ý" u2="ª" k="-37" /> +<hkern u1="Ý" u2="©" k="82" /> +<hkern u1="Ý" u2="y" k="102" /> +<hkern u1="Ý" u2="x" k="139" /> +<hkern u1="Ý" u2="w" k="98" /> +<hkern u1="Ý" u2="v" k="102" /> +<hkern u1="Ý" u2="u" k="134" /> +<hkern u1="Ý" u2="s" k="142" /> +<hkern u1="Ý" u2="r" k="134" /> +<hkern u1="Ý" u2="q" k="164" /> +<hkern u1="Ý" u2="p" k="134" /> +<hkern u1="Ý" u2="o" k="164" /> +<hkern u1="Ý" u2="n" k="134" /> +<hkern u1="Ý" u2="m" k="134" /> +<hkern u1="Ý" u2="g" k="180" /> +<hkern u1="Ý" u2="e" k="164" /> +<hkern u1="Ý" u2="d" k="164" /> +<hkern u1="Ý" u2="c" k="164" /> +<hkern u1="Ý" u2="a" k="148" /> +<hkern u1="Ý" u2="Q" k="82" /> +<hkern u1="Ý" u2="O" k="82" /> +<hkern u1="Ý" u2="J" k="205" /> +<hkern u1="Ý" u2="G" k="82" /> +<hkern u1="Ý" u2="C" k="82" /> +<hkern u1="Ý" u2="A" k="186" /> +<hkern u1="Ý" u2="@" k="82" /> +<hkern u1="Ý" u2="?" k="-33" /> +<hkern u1="Ý" u2=";" k="134" /> +<hkern u1="Ý" u2=":" k="134" /> +<hkern u1="Ý" u2="/" k="186" /> +<hkern u1="Ý" u2="." k="171" /> +<hkern u1="Ý" u2="-" k="164" /> +<hkern u1="Ý" u2="," k="171" /> +<hkern u1="Ý" u2="*" k="-37" /> +<hkern u1="Ý" u2="'" k="-37" /> +<hkern u1="Ý" u2="&" k="186" /> +<hkern u1="Ý" u2=""" k="-37" /> +<hkern u1="Þ" u2="™" k="43" /> +<hkern u1="Þ" u2="„" k="53" /> +<hkern u1="Þ" u2="”" k="43" /> +<hkern u1="Þ" u2="“" k="43" /> +<hkern u1="Þ" u2="‚" k="53" /> +<hkern u1="Þ" u2="’" k="43" /> +<hkern u1="Þ" u2="‘" k="43" /> +<hkern u1="Þ" u2="Ÿ" k="82" /> +<hkern u1="Þ" u2="Ý" k="82" /> +<hkern u1="Þ" u2="Æ" k="52" /> +<hkern u1="Þ" u2="Å" k="52" /> +<hkern u1="Þ" u2="Ä" k="52" /> +<hkern u1="Þ" u2="Ã" k="52" /> +<hkern u1="Þ" u2="Â" k="52" /> +<hkern u1="Þ" u2="Á" k="52" /> +<hkern u1="Þ" u2="À" k="52" /> +<hkern u1="Þ" u2="º" k="43" /> +<hkern u1="Þ" u2="°" k="43" /> +<hkern u1="Þ" u2="ª" k="43" /> +<hkern u1="Þ" u2="}" k="41" /> +<hkern u1="Þ" u2="]" k="41" /> +<hkern u1="Þ" u2="\" k="57" /> +<hkern u1="Þ" u2="Z" k="66" /> +<hkern u1="Þ" u2="Y" k="82" /> +<hkern u1="Þ" u2="X" k="31" /> +<hkern u1="Þ" u2="V" k="57" /> +<hkern u1="Þ" u2="T" k="80" /> +<hkern u1="Þ" u2="A" k="52" /> +<hkern u1="Þ" u2="/" k="52" /> +<hkern u1="Þ" u2="." k="53" /> +<hkern u1="Þ" u2="," k="53" /> +<hkern u1="Þ" u2="*" k="43" /> +<hkern u1="Þ" u2=")" k="41" /> +<hkern u1="Þ" u2="'" k="43" /> +<hkern u1="Þ" u2="&" k="52" /> +<hkern u1="Þ" u2=""" k="43" /> +<hkern u1="à" u2="™" k="78" /> +<hkern u1="à" u2="”" k="78" /> +<hkern u1="à" u2="“" k="78" /> +<hkern u1="à" u2="’" k="78" /> +<hkern u1="à" u2="‘" k="78" /> +<hkern u1="à" u2="ÿ" k="37" /> +<hkern u1="à" u2="ý" k="37" /> +<hkern u1="à" u2="º" k="78" /> +<hkern u1="à" u2="¹" k="78" /> +<hkern u1="à" u2="³" k="78" /> +<hkern u1="à" u2="²" k="78" /> +<hkern u1="à" u2="°" k="78" /> +<hkern u1="à" u2="ª" k="78" /> +<hkern u1="à" u2="y" k="37" /> +<hkern u1="à" u2="w" k="18" /> +<hkern u1="à" u2="v" k="37" /> +<hkern u1="à" u2="*" k="78" /> +<hkern u1="à" u2="'" k="78" /> +<hkern u1="à" u2=""" k="78" /> +<hkern u1="á" u2="™" k="78" /> +<hkern u1="á" u2="”" k="78" /> +<hkern u1="á" u2="“" k="78" /> +<hkern u1="á" u2="’" k="78" /> +<hkern u1="á" u2="‘" k="78" /> +<hkern u1="á" u2="ÿ" k="37" /> +<hkern u1="á" u2="ý" k="37" /> +<hkern u1="á" u2="º" k="78" /> +<hkern u1="á" u2="¹" k="78" /> +<hkern u1="á" u2="³" k="78" /> +<hkern u1="á" u2="²" k="78" /> +<hkern u1="á" u2="°" k="78" /> +<hkern u1="á" u2="ª" k="78" /> +<hkern u1="á" u2="y" k="37" /> +<hkern u1="á" u2="w" k="18" /> +<hkern u1="á" u2="v" k="37" /> +<hkern u1="á" u2="*" k="78" /> +<hkern u1="á" u2="'" k="78" /> +<hkern u1="á" u2=""" k="78" /> +<hkern u1="â" u2="™" k="78" /> +<hkern u1="â" u2="”" k="78" /> +<hkern u1="â" u2="“" k="78" /> +<hkern u1="â" u2="’" k="78" /> +<hkern u1="â" u2="‘" k="78" /> +<hkern u1="â" u2="ÿ" k="37" /> +<hkern u1="â" u2="ý" k="37" /> +<hkern u1="â" u2="º" k="78" /> +<hkern u1="â" u2="¹" k="78" /> +<hkern u1="â" u2="³" k="78" /> +<hkern u1="â" u2="²" k="78" /> +<hkern u1="â" u2="°" k="78" /> +<hkern u1="â" u2="ª" k="78" /> +<hkern u1="â" u2="y" k="37" /> +<hkern u1="â" u2="w" k="18" /> +<hkern u1="â" u2="v" k="37" /> +<hkern u1="â" u2="*" k="78" /> +<hkern u1="â" u2="'" k="78" /> +<hkern u1="â" u2=""" k="78" /> +<hkern u1="ã" u2="™" k="78" /> +<hkern u1="ã" u2="”" k="78" /> +<hkern u1="ã" u2="“" k="78" /> +<hkern u1="ã" u2="’" k="78" /> +<hkern u1="ã" u2="‘" k="78" /> +<hkern u1="ã" u2="ÿ" k="37" /> +<hkern u1="ã" u2="ý" k="37" /> +<hkern u1="ã" u2="º" k="78" /> +<hkern u1="ã" u2="¹" k="78" /> +<hkern u1="ã" u2="³" k="78" /> +<hkern u1="ã" u2="²" k="78" /> +<hkern u1="ã" u2="°" k="78" /> +<hkern u1="ã" u2="ª" k="78" /> +<hkern u1="ã" u2="y" k="37" /> +<hkern u1="ã" u2="w" k="18" /> +<hkern u1="ã" u2="v" k="37" /> +<hkern u1="ã" u2="*" k="78" /> +<hkern u1="ã" u2="'" k="78" /> +<hkern u1="ã" u2=""" k="78" /> +<hkern u1="ä" u2="™" k="78" /> +<hkern u1="ä" u2="”" k="78" /> +<hkern u1="ä" u2="“" k="78" /> +<hkern u1="ä" u2="’" k="78" /> +<hkern u1="ä" u2="‘" k="78" /> +<hkern u1="ä" u2="ÿ" k="37" /> +<hkern u1="ä" u2="ý" k="37" /> +<hkern u1="ä" u2="º" k="78" /> +<hkern u1="ä" u2="¹" k="78" /> +<hkern u1="ä" u2="³" k="78" /> +<hkern u1="ä" u2="²" k="78" /> +<hkern u1="ä" u2="°" k="78" /> +<hkern u1="ä" u2="ª" k="78" /> +<hkern u1="ä" u2="y" k="37" /> +<hkern u1="ä" u2="w" k="18" /> +<hkern u1="ä" u2="v" k="37" /> +<hkern u1="ä" u2="*" k="78" /> +<hkern u1="ä" u2="'" k="78" /> +<hkern u1="ä" u2=""" k="78" /> +<hkern u1="å" u2="™" k="78" /> +<hkern u1="å" u2="”" k="78" /> +<hkern u1="å" u2="“" k="78" /> +<hkern u1="å" u2="’" k="78" /> +<hkern u1="å" u2="‘" k="78" /> +<hkern u1="å" u2="ÿ" k="37" /> +<hkern u1="å" u2="ý" k="37" /> +<hkern u1="å" u2="º" k="78" /> +<hkern u1="å" u2="¹" k="78" /> +<hkern u1="å" u2="³" k="78" /> +<hkern u1="å" u2="²" k="78" /> +<hkern u1="å" u2="°" k="78" /> +<hkern u1="å" u2="ª" k="78" /> +<hkern u1="å" u2="y" k="37" /> +<hkern u1="å" u2="w" k="18" /> +<hkern u1="å" u2="v" k="37" /> +<hkern u1="å" u2="*" k="78" /> +<hkern u1="å" u2="'" k="78" /> +<hkern u1="å" u2=""" k="78" /> +<hkern u1="æ" u2="™" k="98" /> +<hkern u1="æ" u2="”" k="98" /> +<hkern u1="æ" u2="“" k="98" /> +<hkern u1="æ" u2="’" k="98" /> +<hkern u1="æ" u2="‘" k="98" /> +<hkern u1="æ" u2="ÿ" k="34" /> +<hkern u1="æ" u2="ý" k="34" /> +<hkern u1="æ" u2="º" k="98" /> +<hkern u1="æ" u2="°" k="98" /> +<hkern u1="æ" u2="ª" k="98" /> +<hkern u1="æ" u2="}" k="37" /> +<hkern u1="æ" u2="y" k="34" /> +<hkern u1="æ" u2="x" k="61" /> +<hkern u1="æ" u2="v" k="34" /> +<hkern u1="æ" u2="]" k="37" /> +<hkern u1="æ" u2="\" k="126" /> +<hkern u1="æ" u2="W" k="42" /> +<hkern u1="æ" u2="V" k="126" /> +<hkern u1="æ" u2="*" k="98" /> +<hkern u1="æ" u2=")" k="37" /> +<hkern u1="æ" u2="'" k="98" /> +<hkern u1="æ" u2=""" k="98" /> +<hkern u1="è" u2="™" k="98" /> +<hkern u1="è" u2="”" k="98" /> +<hkern u1="è" u2="“" k="98" /> +<hkern u1="è" u2="’" k="98" /> +<hkern u1="è" u2="‘" k="98" /> +<hkern u1="è" u2="ÿ" k="34" /> +<hkern u1="è" u2="ý" k="34" /> +<hkern u1="è" u2="º" k="98" /> +<hkern u1="è" u2="°" k="98" /> +<hkern u1="è" u2="ª" k="98" /> +<hkern u1="è" u2="}" k="37" /> +<hkern u1="è" u2="y" k="34" /> +<hkern u1="è" u2="x" k="61" /> +<hkern u1="è" u2="v" k="34" /> +<hkern u1="è" u2="]" k="37" /> +<hkern u1="è" u2="\" k="126" /> +<hkern u1="è" u2="W" k="42" /> +<hkern u1="è" u2="V" k="126" /> +<hkern u1="è" u2="*" k="98" /> +<hkern u1="è" u2=")" k="37" /> +<hkern u1="è" u2="'" k="98" /> +<hkern u1="è" u2=""" k="98" /> +<hkern u1="é" u2="™" k="98" /> +<hkern u1="é" u2="”" k="98" /> +<hkern u1="é" u2="“" k="98" /> +<hkern u1="é" u2="’" k="98" /> +<hkern u1="é" u2="‘" k="98" /> +<hkern u1="é" u2="ÿ" k="34" /> +<hkern u1="é" u2="ý" k="34" /> +<hkern u1="é" u2="º" k="98" /> +<hkern u1="é" u2="°" k="98" /> +<hkern u1="é" u2="ª" k="98" /> +<hkern u1="é" u2="}" k="37" /> +<hkern u1="é" u2="y" k="34" /> +<hkern u1="é" u2="x" k="61" /> +<hkern u1="é" u2="v" k="34" /> +<hkern u1="é" u2="]" k="37" /> +<hkern u1="é" u2="\" k="126" /> +<hkern u1="é" u2="W" k="42" /> +<hkern u1="é" u2="V" k="126" /> +<hkern u1="é" u2="*" k="98" /> +<hkern u1="é" u2=")" k="37" /> +<hkern u1="é" u2="'" k="98" /> +<hkern u1="é" u2=""" k="98" /> +<hkern u1="ê" u2="™" k="98" /> +<hkern u1="ê" u2="”" k="98" /> +<hkern u1="ê" u2="“" k="98" /> +<hkern u1="ê" u2="’" k="98" /> +<hkern u1="ê" u2="‘" k="98" /> +<hkern u1="ê" u2="ÿ" k="34" /> +<hkern u1="ê" u2="ý" k="34" /> +<hkern u1="ê" u2="º" k="98" /> +<hkern u1="ê" u2="°" k="98" /> +<hkern u1="ê" u2="ª" k="98" /> +<hkern u1="ê" u2="}" k="37" /> +<hkern u1="ê" u2="y" k="34" /> +<hkern u1="ê" u2="x" k="61" /> +<hkern u1="ê" u2="v" k="34" /> +<hkern u1="ê" u2="]" k="37" /> +<hkern u1="ê" u2="\" k="126" /> +<hkern u1="ê" u2="W" k="42" /> +<hkern u1="ê" u2="V" k="126" /> +<hkern u1="ê" u2="*" k="98" /> +<hkern u1="ê" u2=")" k="37" /> +<hkern u1="ê" u2="'" k="98" /> +<hkern u1="ê" u2=""" k="98" /> +<hkern u1="ë" u2="™" k="98" /> +<hkern u1="ë" u2="”" k="98" /> +<hkern u1="ë" u2="“" k="98" /> +<hkern u1="ë" u2="’" k="98" /> +<hkern u1="ë" u2="‘" k="98" /> +<hkern u1="ë" u2="ÿ" k="34" /> +<hkern u1="ë" u2="ý" k="34" /> +<hkern u1="ë" u2="º" k="98" /> +<hkern u1="ë" u2="°" k="98" /> +<hkern u1="ë" u2="ª" k="98" /> +<hkern u1="ë" u2="}" k="37" /> +<hkern u1="ë" u2="y" k="34" /> +<hkern u1="ë" u2="x" k="61" /> +<hkern u1="ë" u2="v" k="34" /> +<hkern u1="ë" u2="]" k="37" /> +<hkern u1="ë" u2="\" k="126" /> +<hkern u1="ë" u2="W" k="42" /> +<hkern u1="ë" u2="V" k="126" /> +<hkern u1="ë" u2="*" k="98" /> +<hkern u1="ë" u2=")" k="37" /> +<hkern u1="ë" u2="'" k="98" /> +<hkern u1="ë" u2=""" k="98" /> +<hkern u1="ñ" u2="™" k="78" /> +<hkern u1="ñ" u2="”" k="78" /> +<hkern u1="ñ" u2="“" k="78" /> +<hkern u1="ñ" u2="’" k="78" /> +<hkern u1="ñ" u2="‘" k="78" /> +<hkern u1="ñ" u2="ÿ" k="37" /> +<hkern u1="ñ" u2="ý" k="37" /> +<hkern u1="ñ" u2="º" k="78" /> +<hkern u1="ñ" u2="¹" k="78" /> +<hkern u1="ñ" u2="³" k="78" /> +<hkern u1="ñ" u2="²" k="78" /> +<hkern u1="ñ" u2="°" k="78" /> +<hkern u1="ñ" u2="ª" k="78" /> +<hkern u1="ñ" u2="y" k="37" /> +<hkern u1="ñ" u2="w" k="18" /> +<hkern u1="ñ" u2="v" k="37" /> +<hkern u1="ñ" u2="*" k="78" /> +<hkern u1="ñ" u2="'" k="78" /> +<hkern u1="ñ" u2=""" k="78" /> +<hkern u1="ò" u2="™" k="98" /> +<hkern u1="ò" u2="”" k="98" /> +<hkern u1="ò" u2="“" k="98" /> +<hkern u1="ò" u2="’" k="98" /> +<hkern u1="ò" u2="‘" k="98" /> +<hkern u1="ò" u2="ÿ" k="34" /> +<hkern u1="ò" u2="ý" k="34" /> +<hkern u1="ò" u2="º" k="98" /> +<hkern u1="ò" u2="°" k="98" /> +<hkern u1="ò" u2="ª" k="98" /> +<hkern u1="ò" u2="}" k="37" /> +<hkern u1="ò" u2="y" k="34" /> +<hkern u1="ò" u2="x" k="61" /> +<hkern u1="ò" u2="v" k="34" /> +<hkern u1="ò" u2="]" k="37" /> +<hkern u1="ò" u2="\" k="126" /> +<hkern u1="ò" u2="W" k="42" /> +<hkern u1="ò" u2="V" k="126" /> +<hkern u1="ò" u2="*" k="98" /> +<hkern u1="ò" u2=")" k="37" /> +<hkern u1="ò" u2="'" k="98" /> +<hkern u1="ò" u2=""" k="98" /> +<hkern u1="ó" u2="™" k="98" /> +<hkern u1="ó" u2="”" k="98" /> +<hkern u1="ó" u2="“" k="98" /> +<hkern u1="ó" u2="’" k="98" /> +<hkern u1="ó" u2="‘" k="98" /> +<hkern u1="ó" u2="ÿ" k="34" /> +<hkern u1="ó" u2="ý" k="34" /> +<hkern u1="ó" u2="º" k="98" /> +<hkern u1="ó" u2="°" k="98" /> +<hkern u1="ó" u2="ª" k="98" /> +<hkern u1="ó" u2="}" k="37" /> +<hkern u1="ó" u2="y" k="34" /> +<hkern u1="ó" u2="x" k="61" /> +<hkern u1="ó" u2="v" k="34" /> +<hkern u1="ó" u2="]" k="37" /> +<hkern u1="ó" u2="\" k="126" /> +<hkern u1="ó" u2="W" k="42" /> +<hkern u1="ó" u2="V" k="126" /> +<hkern u1="ó" u2="*" k="98" /> +<hkern u1="ó" u2=")" k="37" /> +<hkern u1="ó" u2="'" k="98" /> +<hkern u1="ó" u2=""" k="98" /> +<hkern u1="ô" u2="™" k="98" /> +<hkern u1="ô" u2="”" k="98" /> +<hkern u1="ô" u2="“" k="98" /> +<hkern u1="ô" u2="’" k="98" /> +<hkern u1="ô" u2="‘" k="98" /> +<hkern u1="ô" u2="ÿ" k="34" /> +<hkern u1="ô" u2="ý" k="34" /> +<hkern u1="ô" u2="º" k="98" /> +<hkern u1="ô" u2="°" k="98" /> +<hkern u1="ô" u2="ª" k="98" /> +<hkern u1="ô" u2="}" k="37" /> +<hkern u1="ô" u2="y" k="34" /> +<hkern u1="ô" u2="x" k="61" /> +<hkern u1="ô" u2="v" k="34" /> +<hkern u1="ô" u2="]" k="37" /> +<hkern u1="ô" u2="\" k="126" /> +<hkern u1="ô" u2="W" k="42" /> +<hkern u1="ô" u2="V" k="126" /> +<hkern u1="ô" u2="*" k="98" /> +<hkern u1="ô" u2=")" k="37" /> +<hkern u1="ô" u2="'" k="98" /> +<hkern u1="ô" u2=""" k="98" /> +<hkern u1="õ" u2="™" k="98" /> +<hkern u1="õ" u2="”" k="98" /> +<hkern u1="õ" u2="“" k="98" /> +<hkern u1="õ" u2="’" k="98" /> +<hkern u1="õ" u2="‘" k="98" /> +<hkern u1="õ" u2="ÿ" k="34" /> +<hkern u1="õ" u2="ý" k="34" /> +<hkern u1="õ" u2="º" k="98" /> +<hkern u1="õ" u2="°" k="98" /> +<hkern u1="õ" u2="ª" k="98" /> +<hkern u1="õ" u2="}" k="37" /> +<hkern u1="õ" u2="y" k="34" /> +<hkern u1="õ" u2="x" k="61" /> +<hkern u1="õ" u2="v" k="34" /> +<hkern u1="õ" u2="]" k="37" /> +<hkern u1="õ" u2="\" k="126" /> +<hkern u1="õ" u2="W" k="42" /> +<hkern u1="õ" u2="V" k="126" /> +<hkern u1="õ" u2="*" k="98" /> +<hkern u1="õ" u2=")" k="37" /> +<hkern u1="õ" u2="'" k="98" /> +<hkern u1="õ" u2=""" k="98" /> +<hkern u1="ö" u2="™" k="98" /> +<hkern u1="ö" u2="”" k="98" /> +<hkern u1="ö" u2="“" k="98" /> +<hkern u1="ö" u2="’" k="98" /> +<hkern u1="ö" u2="‘" k="98" /> +<hkern u1="ö" u2="ÿ" k="34" /> +<hkern u1="ö" u2="ý" k="34" /> +<hkern u1="ö" u2="º" k="98" /> +<hkern u1="ö" u2="°" k="98" /> +<hkern u1="ö" u2="ª" k="98" /> +<hkern u1="ö" u2="}" k="37" /> +<hkern u1="ö" u2="y" k="34" /> +<hkern u1="ö" u2="x" k="61" /> +<hkern u1="ö" u2="v" k="34" /> +<hkern u1="ö" u2="]" k="37" /> +<hkern u1="ö" u2="\" k="126" /> +<hkern u1="ö" u2="W" k="42" /> +<hkern u1="ö" u2="V" k="126" /> +<hkern u1="ö" u2="*" k="98" /> +<hkern u1="ö" u2=")" k="37" /> +<hkern u1="ö" u2="'" k="98" /> +<hkern u1="ö" u2=""" k="98" /> +<hkern u1="ø" u2="™" k="98" /> +<hkern u1="ø" u2="”" k="98" /> +<hkern u1="ø" u2="“" k="98" /> +<hkern u1="ø" u2="’" k="98" /> +<hkern u1="ø" u2="‘" k="98" /> +<hkern u1="ø" u2="ÿ" k="34" /> +<hkern u1="ø" u2="ý" k="34" /> +<hkern u1="ø" u2="º" k="98" /> +<hkern u1="ø" u2="°" k="98" /> +<hkern u1="ø" u2="ª" k="98" /> +<hkern u1="ø" u2="}" k="37" /> +<hkern u1="ø" u2="y" k="34" /> +<hkern u1="ø" u2="x" k="61" /> +<hkern u1="ø" u2="v" k="34" /> +<hkern u1="ø" u2="]" k="37" /> +<hkern u1="ø" u2="\" k="126" /> +<hkern u1="ø" u2="W" k="42" /> +<hkern u1="ø" u2="V" k="126" /> +<hkern u1="ø" u2="*" k="98" /> +<hkern u1="ø" u2=")" k="37" /> +<hkern u1="ø" u2="'" k="98" /> +<hkern u1="ø" u2=""" k="98" /> +<hkern u1="ý" u2="„" k="139" /> +<hkern u1="ý" u2="‚" k="139" /> +<hkern u1="ý" u2="œ" k="34" /> +<hkern u1="ý" u2="ø" k="34" /> +<hkern u1="ý" u2="ö" k="34" /> +<hkern u1="ý" u2="õ" k="34" /> +<hkern u1="ý" u2="ô" k="34" /> +<hkern u1="ý" u2="ó" k="34" /> +<hkern u1="ý" u2="ò" k="34" /> +<hkern u1="ý" u2="ð" k="34" /> +<hkern u1="ý" u2="ë" k="34" /> +<hkern u1="ý" u2="ê" k="34" /> +<hkern u1="ý" u2="é" k="34" /> +<hkern u1="ý" u2="è" k="34" /> +<hkern u1="ý" u2="ç" k="34" /> +<hkern u1="ý" u2="Æ" k="93" /> +<hkern u1="ý" u2="Å" k="93" /> +<hkern u1="ý" u2="Ä" k="93" /> +<hkern u1="ý" u2="Ã" k="93" /> +<hkern u1="ý" u2="Â" k="93" /> +<hkern u1="ý" u2="Á" k="93" /> +<hkern u1="ý" u2="À" k="93" /> +<hkern u1="ý" u2="q" k="34" /> +<hkern u1="ý" u2="o" k="34" /> +<hkern u1="ý" u2="e" k="34" /> +<hkern u1="ý" u2="d" k="34" /> +<hkern u1="ý" u2="c" k="34" /> +<hkern u1="ý" u2="A" k="93" /> +<hkern u1="ý" u2="/" k="93" /> +<hkern u1="ý" u2="." k="139" /> +<hkern u1="ý" u2="," k="139" /> +<hkern u1="ý" u2="&" k="93" /> +<hkern u1="þ" u2="™" k="98" /> +<hkern u1="þ" u2="”" k="98" /> +<hkern u1="þ" u2="“" k="98" /> +<hkern u1="þ" u2="’" k="98" /> +<hkern u1="þ" u2="‘" k="98" /> +<hkern u1="þ" u2="ÿ" k="34" /> +<hkern u1="þ" u2="ý" k="34" /> +<hkern u1="þ" u2="º" k="98" /> +<hkern u1="þ" u2="°" k="98" /> +<hkern u1="þ" u2="ª" k="98" /> +<hkern u1="þ" u2="}" k="37" /> +<hkern u1="þ" u2="y" k="34" /> +<hkern u1="þ" u2="x" k="61" /> +<hkern u1="þ" u2="v" k="34" /> +<hkern u1="þ" u2="]" k="37" /> +<hkern u1="þ" u2="\" k="126" /> +<hkern u1="þ" u2="W" k="42" /> +<hkern u1="þ" u2="V" k="126" /> +<hkern u1="þ" u2="*" k="98" /> +<hkern u1="þ" u2=")" k="37" /> +<hkern u1="þ" u2="'" k="98" /> +<hkern u1="þ" u2=""" k="98" /> +<hkern u1="ÿ" u2="„" k="139" /> +<hkern u1="ÿ" u2="‚" k="139" /> +<hkern u1="ÿ" u2="œ" k="34" /> +<hkern u1="ÿ" u2="ø" k="34" /> +<hkern u1="ÿ" u2="ö" k="34" /> +<hkern u1="ÿ" u2="õ" k="34" /> +<hkern u1="ÿ" u2="ô" k="34" /> +<hkern u1="ÿ" u2="ó" k="34" /> +<hkern u1="ÿ" u2="ò" k="34" /> +<hkern u1="ÿ" u2="ð" k="34" /> +<hkern u1="ÿ" u2="ë" k="34" /> +<hkern u1="ÿ" u2="ê" k="34" /> +<hkern u1="ÿ" u2="é" k="34" /> +<hkern u1="ÿ" u2="è" k="34" /> +<hkern u1="ÿ" u2="ç" k="34" /> +<hkern u1="ÿ" u2="Æ" k="93" /> +<hkern u1="ÿ" u2="Å" k="93" /> +<hkern u1="ÿ" u2="Ä" k="93" /> +<hkern u1="ÿ" u2="Ã" k="93" /> +<hkern u1="ÿ" u2="Â" k="93" /> +<hkern u1="ÿ" u2="Á" k="93" /> +<hkern u1="ÿ" u2="À" k="93" /> +<hkern u1="ÿ" u2="q" k="34" /> +<hkern u1="ÿ" u2="o" k="34" /> +<hkern u1="ÿ" u2="e" k="34" /> +<hkern u1="ÿ" u2="d" k="34" /> +<hkern u1="ÿ" u2="c" k="34" /> +<hkern u1="ÿ" u2="A" k="93" /> +<hkern u1="ÿ" u2="/" k="93" /> +<hkern u1="ÿ" u2="." k="139" /> +<hkern u1="ÿ" u2="," k="139" /> +<hkern u1="ÿ" u2="&" k="93" /> +<hkern u1="œ" u2="™" k="98" /> +<hkern u1="œ" u2="”" k="98" /> +<hkern u1="œ" u2="“" k="98" /> +<hkern u1="œ" u2="’" k="98" /> +<hkern u1="œ" u2="‘" k="98" /> +<hkern u1="œ" u2="ÿ" k="34" /> +<hkern u1="œ" u2="ý" k="34" /> +<hkern u1="œ" u2="º" k="98" /> +<hkern u1="œ" u2="°" k="98" /> +<hkern u1="œ" u2="ª" k="98" /> +<hkern u1="œ" u2="}" k="37" /> +<hkern u1="œ" u2="y" k="34" /> +<hkern u1="œ" u2="x" k="61" /> +<hkern u1="œ" u2="v" k="34" /> +<hkern u1="œ" u2="]" k="37" /> +<hkern u1="œ" u2="\" k="126" /> +<hkern u1="œ" u2="W" k="42" /> +<hkern u1="œ" u2="V" k="126" /> +<hkern u1="œ" u2="*" k="98" /> +<hkern u1="œ" u2=")" k="37" /> +<hkern u1="œ" u2="'" k="98" /> +<hkern u1="œ" u2=""" k="98" /> +<hkern u1="Ÿ" u2="™" k="-37" /> +<hkern u1="Ÿ" u2="›" k="164" /> +<hkern u1="Ÿ" u2="‹" k="164" /> +<hkern u1="Ÿ" u2="•" k="164" /> +<hkern u1="Ÿ" u2="„" k="171" /> +<hkern u1="Ÿ" u2="”" k="-37" /> +<hkern u1="Ÿ" u2="“" k="-37" /> +<hkern u1="Ÿ" u2="‚" k="171" /> +<hkern u1="Ÿ" u2="’" k="-37" /> +<hkern u1="Ÿ" u2="‘" k="-37" /> +<hkern u1="Ÿ" u2="—" k="164" /> +<hkern u1="Ÿ" u2="–" k="164" /> +<hkern u1="Ÿ" u2="œ" k="164" /> +<hkern u1="Ÿ" u2="Œ" k="82" /> +<hkern u1="Ÿ" u2="ÿ" k="102" /> +<hkern u1="Ÿ" u2="ý" k="102" /> +<hkern u1="Ÿ" u2="ü" k="134" /> +<hkern u1="Ÿ" u2="û" k="134" /> +<hkern u1="Ÿ" u2="ú" k="134" /> +<hkern u1="Ÿ" u2="ù" k="134" /> +<hkern u1="Ÿ" u2="ø" k="164" /> +<hkern u1="Ÿ" u2="ö" k="164" /> +<hkern u1="Ÿ" u2="õ" k="164" /> +<hkern u1="Ÿ" u2="ô" k="164" /> +<hkern u1="Ÿ" u2="ó" k="164" /> +<hkern u1="Ÿ" u2="ò" k="164" /> +<hkern u1="Ÿ" u2="ñ" k="134" /> +<hkern u1="Ÿ" u2="ð" k="164" /> +<hkern u1="Ÿ" u2="ë" k="164" /> +<hkern u1="Ÿ" u2="ê" k="164" /> +<hkern u1="Ÿ" u2="é" k="164" /> +<hkern u1="Ÿ" u2="è" k="164" /> +<hkern u1="Ÿ" u2="ç" k="164" /> +<hkern u1="Ÿ" u2="æ" k="148" /> +<hkern u1="Ÿ" u2="å" k="148" /> +<hkern u1="Ÿ" u2="ä" k="148" /> +<hkern u1="Ÿ" u2="ã" k="148" /> +<hkern u1="Ÿ" u2="â" k="148" /> +<hkern u1="Ÿ" u2="á" k="148" /> +<hkern u1="Ÿ" u2="à" k="148" /> +<hkern u1="Ÿ" u2="Ø" k="82" /> +<hkern u1="Ÿ" u2="Ö" k="82" /> +<hkern u1="Ÿ" u2="Õ" k="82" /> +<hkern u1="Ÿ" u2="Ô" k="82" /> +<hkern u1="Ÿ" u2="Ó" k="82" /> +<hkern u1="Ÿ" u2="Ò" k="82" /> +<hkern u1="Ÿ" u2="Ç" k="82" /> +<hkern u1="Ÿ" u2="Æ" k="186" /> +<hkern u1="Ÿ" u2="Å" k="186" /> +<hkern u1="Ÿ" u2="Ä" k="186" /> +<hkern u1="Ÿ" u2="Ã" k="186" /> +<hkern u1="Ÿ" u2="Â" k="186" /> +<hkern u1="Ÿ" u2="Á" k="186" /> +<hkern u1="Ÿ" u2="À" k="186" /> +<hkern u1="Ÿ" u2="»" k="164" /> +<hkern u1="Ÿ" u2="º" k="-37" /> +<hkern u1="Ÿ" u2="¹" k="-57" /> +<hkern u1="Ÿ" u2="·" k="164" /> +<hkern u1="Ÿ" u2="µ" k="134" /> +<hkern u1="Ÿ" u2="³" k="-57" /> +<hkern u1="Ÿ" u2="²" k="-57" /> +<hkern u1="Ÿ" u2="°" k="-37" /> +<hkern u1="Ÿ" u2="®" k="82" /> +<hkern u1="Ÿ" u2="­" k="164" /> +<hkern u1="Ÿ" u2="«" k="164" /> +<hkern u1="Ÿ" u2="ª" k="-37" /> +<hkern u1="Ÿ" u2="©" k="82" /> +<hkern u1="Ÿ" u2="y" k="102" /> +<hkern u1="Ÿ" u2="x" k="139" /> +<hkern u1="Ÿ" u2="w" k="98" /> +<hkern u1="Ÿ" u2="v" k="102" /> +<hkern u1="Ÿ" u2="u" k="134" /> +<hkern u1="Ÿ" u2="s" k="142" /> +<hkern u1="Ÿ" u2="r" k="134" /> +<hkern u1="Ÿ" u2="q" k="164" /> +<hkern u1="Ÿ" u2="p" k="134" /> +<hkern u1="Ÿ" u2="o" k="164" /> +<hkern u1="Ÿ" u2="n" k="134" /> +<hkern u1="Ÿ" u2="m" k="134" /> +<hkern u1="Ÿ" u2="g" k="180" /> +<hkern u1="Ÿ" u2="e" k="164" /> +<hkern u1="Ÿ" u2="d" k="164" /> +<hkern u1="Ÿ" u2="c" k="164" /> +<hkern u1="Ÿ" u2="a" k="148" /> +<hkern u1="Ÿ" u2="Q" k="82" /> +<hkern u1="Ÿ" u2="O" k="82" /> +<hkern u1="Ÿ" u2="J" k="205" /> +<hkern u1="Ÿ" u2="G" k="82" /> +<hkern u1="Ÿ" u2="C" k="82" /> +<hkern u1="Ÿ" u2="A" k="186" /> +<hkern u1="Ÿ" u2="@" k="82" /> +<hkern u1="Ÿ" u2="?" k="-33" /> +<hkern u1="Ÿ" u2=";" k="134" /> +<hkern u1="Ÿ" u2=":" k="134" /> +<hkern u1="Ÿ" u2="/" k="186" /> +<hkern u1="Ÿ" u2="." k="171" /> +<hkern u1="Ÿ" u2="-" k="164" /> +<hkern u1="Ÿ" u2="," k="171" /> +<hkern u1="Ÿ" u2="*" k="-37" /> +<hkern u1="Ÿ" u2="'" k="-37" /> +<hkern u1="Ÿ" u2="&" k="186" /> +<hkern u1="Ÿ" u2=""" k="-37" /> +<hkern u1="–" u2="™" k="173" /> +<hkern u1="–" u2="„" k="135" /> +<hkern u1="–" u2="”" k="173" /> +<hkern u1="–" u2="“" k="173" /> +<hkern u1="–" u2="‚" k="135" /> +<hkern u1="–" u2="’" k="173" /> +<hkern u1="–" u2="‘" k="173" /> +<hkern u1="–" u2="Ÿ" k="164" /> +<hkern u1="–" u2="Ý" k="164" /> +<hkern u1="–" u2="Æ" k="69" /> +<hkern u1="–" u2="Å" k="69" /> +<hkern u1="–" u2="Ä" k="69" /> +<hkern u1="–" u2="Ã" k="69" /> +<hkern u1="–" u2="Â" k="69" /> +<hkern u1="–" u2="Á" k="69" /> +<hkern u1="–" u2="À" k="69" /> +<hkern u1="–" u2="º" k="173" /> +<hkern u1="–" u2="°" k="173" /> +<hkern u1="–" u2="ª" k="173" /> +<hkern u1="–" u2="\" k="119" /> +<hkern u1="–" u2="Z" k="49" /> +<hkern u1="–" u2="Y" k="164" /> +<hkern u1="–" u2="X" k="68" /> +<hkern u1="–" u2="W" k="37" /> +<hkern u1="–" u2="V" k="119" /> +<hkern u1="–" u2="T" k="184" /> +<hkern u1="–" u2="A" k="69" /> +<hkern u1="–" u2="/" k="69" /> +<hkern u1="–" u2="." k="135" /> +<hkern u1="–" u2="," k="135" /> +<hkern u1="–" u2="*" k="173" /> +<hkern u1="–" u2="'" k="173" /> +<hkern u1="–" u2="&" k="69" /> +<hkern u1="–" u2=""" k="173" /> +<hkern u1="—" u2="™" k="173" /> +<hkern u1="—" u2="„" k="135" /> +<hkern u1="—" u2="”" k="173" /> +<hkern u1="—" u2="“" k="173" /> +<hkern u1="—" u2="‚" k="135" /> +<hkern u1="—" u2="’" k="173" /> +<hkern u1="—" u2="‘" k="173" /> +<hkern u1="—" u2="Ÿ" k="164" /> +<hkern u1="—" u2="Ý" k="164" /> +<hkern u1="—" u2="Æ" k="69" /> +<hkern u1="—" u2="Å" k="69" /> +<hkern u1="—" u2="Ä" k="69" /> +<hkern u1="—" u2="Ã" k="69" /> +<hkern u1="—" u2="Â" k="69" /> +<hkern u1="—" u2="Á" k="69" /> +<hkern u1="—" u2="À" k="69" /> +<hkern u1="—" u2="º" k="173" /> +<hkern u1="—" u2="°" k="173" /> +<hkern u1="—" u2="ª" k="173" /> +<hkern u1="—" u2="\" k="119" /> +<hkern u1="—" u2="Z" k="49" /> +<hkern u1="—" u2="Y" k="164" /> +<hkern u1="—" u2="X" k="68" /> +<hkern u1="—" u2="W" k="37" /> +<hkern u1="—" u2="V" k="119" /> +<hkern u1="—" u2="T" k="184" /> +<hkern u1="—" u2="A" k="69" /> +<hkern u1="—" u2="/" k="69" /> +<hkern u1="—" u2="." k="135" /> +<hkern u1="—" u2="," k="135" /> +<hkern u1="—" u2="*" k="173" /> +<hkern u1="—" u2="'" k="173" /> +<hkern u1="—" u2="&" k="69" /> +<hkern u1="—" u2=""" k="173" /> +<hkern u1="‘" u2="›" k="173" /> +<hkern u1="‘" u2="‹" k="173" /> +<hkern u1="‘" u2="•" k="173" /> +<hkern u1="‘" u2="„" k="218" /> +<hkern u1="‘" u2="‚" k="218" /> +<hkern u1="‘" u2="—" k="173" /> +<hkern u1="‘" u2="–" k="173" /> +<hkern u1="‘" u2="Ÿ" k="-37" /> +<hkern u1="‘" u2="œ" k="98" /> +<hkern u1="‘" u2="Œ" k="43" /> +<hkern u1="‘" u2="ø" k="98" /> +<hkern u1="‘" u2="ö" k="98" /> +<hkern u1="‘" u2="õ" k="98" /> +<hkern u1="‘" u2="ô" k="98" /> +<hkern u1="‘" u2="ó" k="98" /> +<hkern u1="‘" u2="ò" k="98" /> +<hkern u1="‘" u2="ð" k="98" /> +<hkern u1="‘" u2="ë" k="98" /> +<hkern u1="‘" u2="ê" k="98" /> +<hkern u1="‘" u2="é" k="98" /> +<hkern u1="‘" u2="è" k="98" /> +<hkern u1="‘" u2="ç" k="98" /> +<hkern u1="‘" u2="æ" k="68" /> +<hkern u1="‘" u2="å" k="68" /> +<hkern u1="‘" u2="ä" k="68" /> +<hkern u1="‘" u2="ã" k="68" /> +<hkern u1="‘" u2="â" k="68" /> +<hkern u1="‘" u2="á" k="68" /> +<hkern u1="‘" u2="à" k="68" /> +<hkern u1="‘" u2="Ý" k="-37" /> +<hkern u1="‘" u2="Ø" k="43" /> +<hkern u1="‘" u2="Ö" k="43" /> +<hkern u1="‘" u2="Õ" k="43" /> +<hkern u1="‘" u2="Ô" k="43" /> +<hkern u1="‘" u2="Ó" k="43" /> +<hkern u1="‘" u2="Ò" k="43" /> +<hkern u1="‘" u2="Ç" k="43" /> +<hkern u1="‘" u2="Æ" k="196" /> +<hkern u1="‘" u2="Å" k="196" /> +<hkern u1="‘" u2="Ä" k="196" /> +<hkern u1="‘" u2="Ã" k="196" /> +<hkern u1="‘" u2="Â" k="196" /> +<hkern u1="‘" u2="Á" k="196" /> +<hkern u1="‘" u2="À" k="196" /> +<hkern u1="‘" u2="»" k="173" /> +<hkern u1="‘" u2="·" k="173" /> +<hkern u1="‘" u2="®" k="43" /> +<hkern u1="‘" u2="­" k="173" /> +<hkern u1="‘" u2="«" k="173" /> +<hkern u1="‘" u2="©" k="43" /> +<hkern u1="‘" u2="q" k="98" /> +<hkern u1="‘" u2="o" k="98" /> +<hkern u1="‘" u2="e" k="98" /> +<hkern u1="‘" u2="d" k="98" /> +<hkern u1="‘" u2="c" k="98" /> +<hkern u1="‘" u2="a" k="68" /> +<hkern u1="‘" u2="\" k="-45" /> +<hkern u1="‘" u2="Y" k="-37" /> +<hkern u1="‘" u2="W" k="-45" /> +<hkern u1="‘" u2="V" k="-45" /> +<hkern u1="‘" u2="Q" k="43" /> +<hkern u1="‘" u2="O" k="43" /> +<hkern u1="‘" u2="G" k="43" /> +<hkern u1="‘" u2="C" k="43" /> +<hkern u1="‘" u2="A" k="196" /> +<hkern u1="‘" u2="@" k="43" /> +<hkern u1="‘" u2="/" k="196" /> +<hkern u1="‘" u2="." k="218" /> +<hkern u1="‘" u2="-" k="173" /> +<hkern u1="‘" u2="," k="218" /> +<hkern u1="‘" u2="&" k="196" /> +<hkern u1="’" u2="›" k="173" /> +<hkern u1="’" u2="‹" k="173" /> +<hkern u1="’" u2="•" k="173" /> +<hkern u1="’" u2="„" k="218" /> +<hkern u1="’" u2="‚" k="218" /> +<hkern u1="’" u2="—" k="173" /> +<hkern u1="’" u2="–" k="173" /> +<hkern u1="’" u2="Ÿ" k="-37" /> +<hkern u1="’" u2="œ" k="98" /> +<hkern u1="’" u2="Œ" k="43" /> +<hkern u1="’" u2="ø" k="98" /> +<hkern u1="’" u2="ö" k="98" /> +<hkern u1="’" u2="õ" k="98" /> +<hkern u1="’" u2="ô" k="98" /> +<hkern u1="’" u2="ó" k="98" /> +<hkern u1="’" u2="ò" k="98" /> +<hkern u1="’" u2="ð" k="98" /> +<hkern u1="’" u2="ë" k="98" /> +<hkern u1="’" u2="ê" k="98" /> +<hkern u1="’" u2="é" k="98" /> +<hkern u1="’" u2="è" k="98" /> +<hkern u1="’" u2="ç" k="98" /> +<hkern u1="’" u2="æ" k="68" /> +<hkern u1="’" u2="å" k="68" /> +<hkern u1="’" u2="ä" k="68" /> +<hkern u1="’" u2="ã" k="68" /> +<hkern u1="’" u2="â" k="68" /> +<hkern u1="’" u2="á" k="68" /> +<hkern u1="’" u2="à" k="68" /> +<hkern u1="’" u2="Ý" k="-37" /> +<hkern u1="’" u2="Ø" k="43" /> +<hkern u1="’" u2="Ö" k="43" /> +<hkern u1="’" u2="Õ" k="43" /> +<hkern u1="’" u2="Ô" k="43" /> +<hkern u1="’" u2="Ó" k="43" /> +<hkern u1="’" u2="Ò" k="43" /> +<hkern u1="’" u2="Ç" k="43" /> +<hkern u1="’" u2="Æ" k="196" /> +<hkern u1="’" u2="Å" k="196" /> +<hkern u1="’" u2="Ä" k="196" /> +<hkern u1="’" u2="Ã" k="196" /> +<hkern u1="’" u2="Â" k="196" /> +<hkern u1="’" u2="Á" k="196" /> +<hkern u1="’" u2="À" k="196" /> +<hkern u1="’" u2="»" k="173" /> +<hkern u1="’" u2="·" k="173" /> +<hkern u1="’" u2="®" k="43" /> +<hkern u1="’" u2="­" k="173" /> +<hkern u1="’" u2="«" k="173" /> +<hkern u1="’" u2="©" k="43" /> +<hkern u1="’" u2="q" k="98" /> +<hkern u1="’" u2="o" k="98" /> +<hkern u1="’" u2="e" k="98" /> +<hkern u1="’" u2="d" k="98" /> +<hkern u1="’" u2="c" k="98" /> +<hkern u1="’" u2="a" k="68" /> +<hkern u1="’" u2="\" k="-45" /> +<hkern u1="’" u2="Y" k="-37" /> +<hkern u1="’" u2="W" k="-45" /> +<hkern u1="’" u2="V" k="-45" /> +<hkern u1="’" u2="Q" k="43" /> +<hkern u1="’" u2="O" k="43" /> +<hkern u1="’" u2="G" k="43" /> +<hkern u1="’" u2="C" k="43" /> +<hkern u1="’" u2="A" k="196" /> +<hkern u1="’" u2="@" k="43" /> +<hkern u1="’" u2="/" k="196" /> +<hkern u1="’" u2="." k="218" /> +<hkern u1="’" u2="-" k="173" /> +<hkern u1="’" u2="," k="218" /> +<hkern u1="’" u2="&" k="196" /> +<hkern u1="‚" u2="™" k="218" /> +<hkern u1="‚" u2="›" k="135" /> +<hkern u1="‚" u2="‹" k="135" /> +<hkern u1="‚" u2="•" k="135" /> +<hkern u1="‚" u2="”" k="218" /> +<hkern u1="‚" u2="“" k="218" /> +<hkern u1="‚" u2="’" k="218" /> +<hkern u1="‚" u2="‘" k="218" /> +<hkern u1="‚" u2="—" k="135" /> +<hkern u1="‚" u2="–" k="135" /> +<hkern u1="‚" u2="Ÿ" k="171" /> +<hkern u1="‚" u2="Œ" k="53" /> +<hkern u1="‚" u2="ÿ" k="139" /> +<hkern u1="‚" u2="ý" k="139" /> +<hkern u1="‚" u2="Ý" k="171" /> +<hkern u1="‚" u2="Ø" k="53" /> +<hkern u1="‚" u2="Ö" k="53" /> +<hkern u1="‚" u2="Õ" k="53" /> +<hkern u1="‚" u2="Ô" k="53" /> +<hkern u1="‚" u2="Ó" k="53" /> +<hkern u1="‚" u2="Ò" k="53" /> +<hkern u1="‚" u2="Ç" k="53" /> +<hkern u1="‚" u2="»" k="135" /> +<hkern u1="‚" u2="º" k="218" /> +<hkern u1="‚" u2="·" k="135" /> +<hkern u1="‚" u2="°" k="218" /> +<hkern u1="‚" u2="®" k="53" /> +<hkern u1="‚" u2="­" k="135" /> +<hkern u1="‚" u2="«" k="135" /> +<hkern u1="‚" u2="ª" k="218" /> +<hkern u1="‚" u2="©" k="53" /> +<hkern u1="‚" u2="y" k="139" /> +<hkern u1="‚" u2="w" k="73" /> +<hkern u1="‚" u2="v" k="139" /> +<hkern u1="‚" u2="\" k="184" /> +<hkern u1="‚" u2="Y" k="171" /> +<hkern u1="‚" u2="W" k="134" /> +<hkern u1="‚" u2="V" k="184" /> +<hkern u1="‚" u2="T" k="184" /> +<hkern u1="‚" u2="Q" k="53" /> +<hkern u1="‚" u2="O" k="53" /> +<hkern u1="‚" u2="G" k="53" /> +<hkern u1="‚" u2="C" k="53" /> +<hkern u1="‚" u2="@" k="53" /> +<hkern u1="‚" u2="-" k="135" /> +<hkern u1="‚" u2="*" k="218" /> +<hkern u1="‚" u2="'" k="218" /> +<hkern u1="‚" u2=""" k="218" /> +<hkern u1="“" u2="›" k="173" /> +<hkern u1="“" u2="‹" k="173" /> +<hkern u1="“" u2="•" k="173" /> +<hkern u1="“" u2="„" k="218" /> +<hkern u1="“" u2="‚" k="218" /> +<hkern u1="“" u2="—" k="173" /> +<hkern u1="“" u2="–" k="173" /> +<hkern u1="“" u2="Ÿ" k="-37" /> +<hkern u1="“" u2="œ" k="98" /> +<hkern u1="“" u2="Œ" k="43" /> +<hkern u1="“" u2="ø" k="98" /> +<hkern u1="“" u2="ö" k="98" /> +<hkern u1="“" u2="õ" k="98" /> +<hkern u1="“" u2="ô" k="98" /> +<hkern u1="“" u2="ó" k="98" /> +<hkern u1="“" u2="ò" k="98" /> +<hkern u1="“" u2="ð" k="98" /> +<hkern u1="“" u2="ë" k="98" /> +<hkern u1="“" u2="ê" k="98" /> +<hkern u1="“" u2="é" k="98" /> +<hkern u1="“" u2="è" k="98" /> +<hkern u1="“" u2="ç" k="98" /> +<hkern u1="“" u2="æ" k="68" /> +<hkern u1="“" u2="å" k="68" /> +<hkern u1="“" u2="ä" k="68" /> +<hkern u1="“" u2="ã" k="68" /> +<hkern u1="“" u2="â" k="68" /> +<hkern u1="“" u2="á" k="68" /> +<hkern u1="“" u2="à" k="68" /> +<hkern u1="“" u2="Ý" k="-37" /> +<hkern u1="“" u2="Ø" k="43" /> +<hkern u1="“" u2="Ö" k="43" /> +<hkern u1="“" u2="Õ" k="43" /> +<hkern u1="“" u2="Ô" k="43" /> +<hkern u1="“" u2="Ó" k="43" /> +<hkern u1="“" u2="Ò" k="43" /> +<hkern u1="“" u2="Ç" k="43" /> +<hkern u1="“" u2="Æ" k="196" /> +<hkern u1="“" u2="Å" k="196" /> +<hkern u1="“" u2="Ä" k="196" /> +<hkern u1="“" u2="Ã" k="196" /> +<hkern u1="“" u2="Â" k="196" /> +<hkern u1="“" u2="Á" k="196" /> +<hkern u1="“" u2="À" k="196" /> +<hkern u1="“" u2="»" k="173" /> +<hkern u1="“" u2="·" k="173" /> +<hkern u1="“" u2="®" k="43" /> +<hkern u1="“" u2="­" k="173" /> +<hkern u1="“" u2="«" k="173" /> +<hkern u1="“" u2="©" k="43" /> +<hkern u1="“" u2="q" k="98" /> +<hkern u1="“" u2="o" k="98" /> +<hkern u1="“" u2="e" k="98" /> +<hkern u1="“" u2="d" k="98" /> +<hkern u1="“" u2="c" k="98" /> +<hkern u1="“" u2="a" k="68" /> +<hkern u1="“" u2="\" k="-45" /> +<hkern u1="“" u2="Y" k="-37" /> +<hkern u1="“" u2="W" k="-45" /> +<hkern u1="“" u2="V" k="-45" /> +<hkern u1="“" u2="Q" k="43" /> +<hkern u1="“" u2="O" k="43" /> +<hkern u1="“" u2="G" k="43" /> +<hkern u1="“" u2="C" k="43" /> +<hkern u1="“" u2="A" k="196" /> +<hkern u1="“" u2="@" k="43" /> +<hkern u1="“" u2="/" k="196" /> +<hkern u1="“" u2="." k="218" /> +<hkern u1="“" u2="-" k="173" /> +<hkern u1="“" u2="," k="218" /> +<hkern u1="“" u2="&" k="196" /> +<hkern u1="”" u2="›" k="173" /> +<hkern u1="”" u2="‹" k="173" /> +<hkern u1="”" u2="•" k="173" /> +<hkern u1="”" u2="„" k="218" /> +<hkern u1="”" u2="‚" k="218" /> +<hkern u1="”" u2="—" k="173" /> +<hkern u1="”" u2="–" k="173" /> +<hkern u1="”" u2="Ÿ" k="-37" /> +<hkern u1="”" u2="œ" k="98" /> +<hkern u1="”" u2="Œ" k="43" /> +<hkern u1="”" u2="ø" k="98" /> +<hkern u1="”" u2="ö" k="98" /> +<hkern u1="”" u2="õ" k="98" /> +<hkern u1="”" u2="ô" k="98" /> +<hkern u1="”" u2="ó" k="98" /> +<hkern u1="”" u2="ò" k="98" /> +<hkern u1="”" u2="ð" k="98" /> +<hkern u1="”" u2="ë" k="98" /> +<hkern u1="”" u2="ê" k="98" /> +<hkern u1="”" u2="é" k="98" /> +<hkern u1="”" u2="è" k="98" /> +<hkern u1="”" u2="ç" k="98" /> +<hkern u1="”" u2="æ" k="68" /> +<hkern u1="”" u2="å" k="68" /> +<hkern u1="”" u2="ä" k="68" /> +<hkern u1="”" u2="ã" k="68" /> +<hkern u1="”" u2="â" k="68" /> +<hkern u1="”" u2="á" k="68" /> +<hkern u1="”" u2="à" k="68" /> +<hkern u1="”" u2="Ý" k="-37" /> +<hkern u1="”" u2="Ø" k="43" /> +<hkern u1="”" u2="Ö" k="43" /> +<hkern u1="”" u2="Õ" k="43" /> +<hkern u1="”" u2="Ô" k="43" /> +<hkern u1="”" u2="Ó" k="43" /> +<hkern u1="”" u2="Ò" k="43" /> +<hkern u1="”" u2="Ç" k="43" /> +<hkern u1="”" u2="Æ" k="196" /> +<hkern u1="”" u2="Å" k="196" /> +<hkern u1="”" u2="Ä" k="196" /> +<hkern u1="”" u2="Ã" k="196" /> +<hkern u1="”" u2="Â" k="196" /> +<hkern u1="”" u2="Á" k="196" /> +<hkern u1="”" u2="À" k="196" /> +<hkern u1="”" u2="»" k="173" /> +<hkern u1="”" u2="·" k="173" /> +<hkern u1="”" u2="®" k="43" /> +<hkern u1="”" u2="­" k="173" /> +<hkern u1="”" u2="«" k="173" /> +<hkern u1="”" u2="©" k="43" /> +<hkern u1="”" u2="q" k="98" /> +<hkern u1="”" u2="o" k="98" /> +<hkern u1="”" u2="e" k="98" /> +<hkern u1="”" u2="d" k="98" /> +<hkern u1="”" u2="c" k="98" /> +<hkern u1="”" u2="a" k="68" /> +<hkern u1="”" u2="\" k="-45" /> +<hkern u1="”" u2="Y" k="-37" /> +<hkern u1="”" u2="W" k="-45" /> +<hkern u1="”" u2="V" k="-45" /> +<hkern u1="”" u2="Q" k="43" /> +<hkern u1="”" u2="O" k="43" /> +<hkern u1="”" u2="G" k="43" /> +<hkern u1="”" u2="C" k="43" /> +<hkern u1="”" u2="A" k="196" /> +<hkern u1="”" u2="@" k="43" /> +<hkern u1="”" u2="/" k="196" /> +<hkern u1="”" u2="." k="218" /> +<hkern u1="”" u2="-" k="173" /> +<hkern u1="”" u2="," k="218" /> +<hkern u1="”" u2="&" k="196" /> +<hkern u1="„" u2="™" k="218" /> +<hkern u1="„" u2="›" k="135" /> +<hkern u1="„" u2="‹" k="135" /> +<hkern u1="„" u2="•" k="135" /> +<hkern u1="„" u2="”" k="218" /> +<hkern u1="„" u2="“" k="218" /> +<hkern u1="„" u2="’" k="218" /> +<hkern u1="„" u2="‘" k="218" /> +<hkern u1="„" u2="—" k="135" /> +<hkern u1="„" u2="–" k="135" /> +<hkern u1="„" u2="Ÿ" k="171" /> +<hkern u1="„" u2="Œ" k="53" /> +<hkern u1="„" u2="ÿ" k="139" /> +<hkern u1="„" u2="ý" k="139" /> +<hkern u1="„" u2="Ý" k="171" /> +<hkern u1="„" u2="Ø" k="53" /> +<hkern u1="„" u2="Ö" k="53" /> +<hkern u1="„" u2="Õ" k="53" /> +<hkern u1="„" u2="Ô" k="53" /> +<hkern u1="„" u2="Ó" k="53" /> +<hkern u1="„" u2="Ò" k="53" /> +<hkern u1="„" u2="Ç" k="53" /> +<hkern u1="„" u2="»" k="135" /> +<hkern u1="„" u2="º" k="218" /> +<hkern u1="„" u2="·" k="135" /> +<hkern u1="„" u2="°" k="218" /> +<hkern u1="„" u2="®" k="53" /> +<hkern u1="„" u2="­" k="135" /> +<hkern u1="„" u2="«" k="135" /> +<hkern u1="„" u2="ª" k="218" /> +<hkern u1="„" u2="©" k="53" /> +<hkern u1="„" u2="y" k="139" /> +<hkern u1="„" u2="w" k="73" /> +<hkern u1="„" u2="v" k="139" /> +<hkern u1="„" u2="\" k="184" /> +<hkern u1="„" u2="Y" k="171" /> +<hkern u1="„" u2="W" k="134" /> +<hkern u1="„" u2="V" k="184" /> +<hkern u1="„" u2="T" k="184" /> +<hkern u1="„" u2="Q" k="53" /> +<hkern u1="„" u2="O" k="53" /> +<hkern u1="„" u2="G" k="53" /> +<hkern u1="„" u2="C" k="53" /> +<hkern u1="„" u2="@" k="53" /> +<hkern u1="„" u2="-" k="135" /> +<hkern u1="„" u2="*" k="218" /> +<hkern u1="„" u2="'" k="218" /> +<hkern u1="„" u2=""" k="218" /> +<hkern u1="•" u2="™" k="173" /> +<hkern u1="•" u2="„" k="135" /> +<hkern u1="•" u2="”" k="173" /> +<hkern u1="•" u2="“" k="173" /> +<hkern u1="•" u2="‚" k="135" /> +<hkern u1="•" u2="’" k="173" /> +<hkern u1="•" u2="‘" k="173" /> +<hkern u1="•" u2="Ÿ" k="164" /> +<hkern u1="•" u2="Ý" k="164" /> +<hkern u1="•" u2="Æ" k="69" /> +<hkern u1="•" u2="Å" k="69" /> +<hkern u1="•" u2="Ä" k="69" /> +<hkern u1="•" u2="Ã" k="69" /> +<hkern u1="•" u2="Â" k="69" /> +<hkern u1="•" u2="Á" k="69" /> +<hkern u1="•" u2="À" k="69" /> +<hkern u1="•" u2="º" k="173" /> +<hkern u1="•" u2="°" k="173" /> +<hkern u1="•" u2="ª" k="173" /> +<hkern u1="•" u2="\" k="119" /> +<hkern u1="•" u2="Z" k="49" /> +<hkern u1="•" u2="Y" k="164" /> +<hkern u1="•" u2="X" k="68" /> +<hkern u1="•" u2="W" k="37" /> +<hkern u1="•" u2="V" k="119" /> +<hkern u1="•" u2="T" k="184" /> +<hkern u1="•" u2="A" k="69" /> +<hkern u1="•" u2="/" k="69" /> +<hkern u1="•" u2="." k="135" /> +<hkern u1="•" u2="," k="135" /> +<hkern u1="•" u2="*" k="173" /> +<hkern u1="•" u2="'" k="173" /> +<hkern u1="•" u2="&" k="69" /> +<hkern u1="•" u2=""" k="173" /> +<hkern u1="‹" u2="™" k="173" /> +<hkern u1="‹" u2="„" k="135" /> +<hkern u1="‹" u2="”" k="173" /> +<hkern u1="‹" u2="“" k="173" /> +<hkern u1="‹" u2="‚" k="135" /> +<hkern u1="‹" u2="’" k="173" /> +<hkern u1="‹" u2="‘" k="173" /> +<hkern u1="‹" u2="Ÿ" k="164" /> +<hkern u1="‹" u2="Ý" k="164" /> +<hkern u1="‹" u2="Æ" k="69" /> +<hkern u1="‹" u2="Å" k="69" /> +<hkern u1="‹" u2="Ä" k="69" /> +<hkern u1="‹" u2="Ã" k="69" /> +<hkern u1="‹" u2="Â" k="69" /> +<hkern u1="‹" u2="Á" k="69" /> +<hkern u1="‹" u2="À" k="69" /> +<hkern u1="‹" u2="º" k="173" /> +<hkern u1="‹" u2="°" k="173" /> +<hkern u1="‹" u2="ª" k="173" /> +<hkern u1="‹" u2="\" k="119" /> +<hkern u1="‹" u2="Z" k="49" /> +<hkern u1="‹" u2="Y" k="164" /> +<hkern u1="‹" u2="X" k="68" /> +<hkern u1="‹" u2="W" k="37" /> +<hkern u1="‹" u2="V" k="119" /> +<hkern u1="‹" u2="T" k="184" /> +<hkern u1="‹" u2="A" k="69" /> +<hkern u1="‹" u2="/" k="69" /> +<hkern u1="‹" u2="." k="135" /> +<hkern u1="‹" u2="," k="135" /> +<hkern u1="‹" u2="*" k="173" /> +<hkern u1="‹" u2="'" k="173" /> +<hkern u1="‹" u2="&" k="69" /> +<hkern u1="‹" u2=""" k="173" /> +<hkern u1="›" u2="™" k="173" /> +<hkern u1="›" u2="„" k="135" /> +<hkern u1="›" u2="”" k="173" /> +<hkern u1="›" u2="“" k="173" /> +<hkern u1="›" u2="‚" k="135" /> +<hkern u1="›" u2="’" k="173" /> +<hkern u1="›" u2="‘" k="173" /> +<hkern u1="›" u2="Ÿ" k="164" /> +<hkern u1="›" u2="Ý" k="164" /> +<hkern u1="›" u2="Æ" k="69" /> +<hkern u1="›" u2="Å" k="69" /> +<hkern u1="›" u2="Ä" k="69" /> +<hkern u1="›" u2="Ã" k="69" /> +<hkern u1="›" u2="Â" k="69" /> +<hkern u1="›" u2="Á" k="69" /> +<hkern u1="›" u2="À" k="69" /> +<hkern u1="›" u2="º" k="173" /> +<hkern u1="›" u2="°" k="173" /> +<hkern u1="›" u2="ª" k="173" /> +<hkern u1="›" u2="\" k="119" /> +<hkern u1="›" u2="Z" k="49" /> +<hkern u1="›" u2="Y" k="164" /> +<hkern u1="›" u2="X" k="68" /> +<hkern u1="›" u2="W" k="37" /> +<hkern u1="›" u2="V" k="119" /> +<hkern u1="›" u2="T" k="184" /> +<hkern u1="›" u2="A" k="69" /> +<hkern u1="›" u2="/" k="69" /> +<hkern u1="›" u2="." k="135" /> +<hkern u1="›" u2="," k="135" /> +<hkern u1="›" u2="*" k="173" /> +<hkern u1="›" u2="'" k="173" /> +<hkern u1="›" u2="&" k="69" /> +<hkern u1="›" u2=""" k="173" /> +<hkern u1="™" u2="›" k="173" /> +<hkern u1="™" u2="‹" k="173" /> +<hkern u1="™" u2="•" k="173" /> +<hkern u1="™" u2="„" k="218" /> +<hkern u1="™" u2="‚" k="218" /> +<hkern u1="™" u2="—" k="173" /> +<hkern u1="™" u2="–" k="173" /> +<hkern u1="™" u2="Ÿ" k="-37" /> +<hkern u1="™" u2="œ" k="98" /> +<hkern u1="™" u2="Œ" k="43" /> +<hkern u1="™" u2="ø" k="98" /> +<hkern u1="™" u2="ö" k="98" /> +<hkern u1="™" u2="õ" k="98" /> +<hkern u1="™" u2="ô" k="98" /> +<hkern u1="™" u2="ó" k="98" /> +<hkern u1="™" u2="ò" k="98" /> +<hkern u1="™" u2="ð" k="98" /> +<hkern u1="™" u2="ë" k="98" /> +<hkern u1="™" u2="ê" k="98" /> +<hkern u1="™" u2="é" k="98" /> +<hkern u1="™" u2="è" k="98" /> +<hkern u1="™" u2="ç" k="98" /> +<hkern u1="™" u2="æ" k="68" /> +<hkern u1="™" u2="å" k="68" /> +<hkern u1="™" u2="ä" k="68" /> +<hkern u1="™" u2="ã" k="68" /> +<hkern u1="™" u2="â" k="68" /> +<hkern u1="™" u2="á" k="68" /> +<hkern u1="™" u2="à" k="68" /> +<hkern u1="™" u2="Ý" k="-37" /> +<hkern u1="™" u2="Ø" k="43" /> +<hkern u1="™" u2="Ö" k="43" /> +<hkern u1="™" u2="Õ" k="43" /> +<hkern u1="™" u2="Ô" k="43" /> +<hkern u1="™" u2="Ó" k="43" /> +<hkern u1="™" u2="Ò" k="43" /> +<hkern u1="™" u2="Ç" k="43" /> +<hkern u1="™" u2="Æ" k="196" /> +<hkern u1="™" u2="Å" k="196" /> +<hkern u1="™" u2="Ä" k="196" /> +<hkern u1="™" u2="Ã" k="196" /> +<hkern u1="™" u2="Â" k="196" /> +<hkern u1="™" u2="Á" k="196" /> +<hkern u1="™" u2="À" k="196" /> +<hkern u1="™" u2="»" k="173" /> +<hkern u1="™" u2="·" k="173" /> +<hkern u1="™" u2="®" k="43" /> +<hkern u1="™" u2="­" k="173" /> +<hkern u1="™" u2="«" k="173" /> +<hkern u1="™" u2="©" k="43" /> +<hkern u1="™" u2="q" k="98" /> +<hkern u1="™" u2="o" k="98" /> +<hkern u1="™" u2="e" k="98" /> +<hkern u1="™" u2="d" k="98" /> +<hkern u1="™" u2="c" k="98" /> +<hkern u1="™" u2="a" k="68" /> +<hkern u1="™" u2="\" k="-45" /> +<hkern u1="™" u2="Y" k="-37" /> +<hkern u1="™" u2="W" k="-45" /> +<hkern u1="™" u2="V" k="-45" /> +<hkern u1="™" u2="Q" k="43" /> +<hkern u1="™" u2="O" k="43" /> +<hkern u1="™" u2="G" k="43" /> +<hkern u1="™" u2="C" k="43" /> +<hkern u1="™" u2="A" k="196" /> +<hkern u1="™" u2="@" k="43" /> +<hkern u1="™" u2="/" k="196" /> +<hkern u1="™" u2="." k="218" /> +<hkern u1="™" u2="-" k="173" /> +<hkern u1="™" u2="," k="218" /> +<hkern u1="™" u2="&" k="196" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/lato-bold-webfont.ttf b/web/static/fonts/lato-bold-webfont.ttf Binary files differnew file mode 100755 index 000000000..0eb9a7118 --- /dev/null +++ b/web/static/fonts/lato-bold-webfont.ttf diff --git a/web/static/fonts/lato-bold-webfont.woff b/web/static/fonts/lato-bold-webfont.woff Binary files differnew file mode 100755 index 000000000..c58a1c5af --- /dev/null +++ b/web/static/fonts/lato-bold-webfont.woff diff --git a/web/static/fonts/lato-bold-webfont.woff2 b/web/static/fonts/lato-bold-webfont.woff2 Binary files differnew file mode 100755 index 000000000..35c45da47 --- /dev/null +++ b/web/static/fonts/lato-bold-webfont.woff2 diff --git a/web/static/fonts/lato-bolditalic-webfont.eot b/web/static/fonts/lato-bolditalic-webfont.eot Binary files differnew file mode 100755 index 000000000..a920cf8a2 --- /dev/null +++ b/web/static/fonts/lato-bolditalic-webfont.eot diff --git a/web/static/fonts/lato-bolditalic-webfont.svg b/web/static/fonts/lato-bolditalic-webfont.svg new file mode 100755 index 000000000..f217ac7fd --- /dev/null +++ b/web/static/fonts/lato-bolditalic-webfont.svg @@ -0,0 +1,4072 @@ +<?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="latobold_italic" horiz-adv-x="1187" > +<font-face units-per-em="2048" ascent="1649" descent="-399" /> +<missing-glyph horiz-adv-x="395" /> +<glyph unicode="fi" horiz-adv-x="1138" d="M454 1041h604l-126 -1041h-249l107 861h-349l-100 -819l-51 -193q-13 -50 -44.5 -77t-86.5 -27h-102l138 1115l-78 14q-26 5 -41 17t-15 36l12 114h144l4 34q11 96 50.5 177.5t107.5 141.5t164.5 94t222.5 34q40 0 84 -5t74 -15l-25 -126q-5 -24 -27 -27t-53 -3 q-94 0 -159 -17t-107.5 -51.5t-65 -86t-30.5 -121.5z" /> +<glyph unicode="fl" horiz-adv-x="1165" d="M442 861l-101 -819l-51 -193q-13 -50 -44.5 -77t-86.5 -27h-102l138 1115l-78 14q-26 5 -41 17t-15 36l13 114h142l6 46q10 84 44 160.5t91.5 135t138.5 92.5t186 34q80 0 151.5 -6t143.5 -6h164l-185 -1497h-244l159 1317q-44 5 -88 9.5t-85 4.5q-101 0 -163.5 -61.5 t-74.5 -182.5l-5 -46h222l-21 -180h-214z" /> +<glyph horiz-adv-x="0" /> +<glyph unicode="
" horiz-adv-x="0" /> +<glyph horiz-adv-x="0" /> +<glyph horiz-adv-x="0" /> +<glyph unicode=" " horiz-adv-x="395" /> +<glyph unicode="	" horiz-adv-x="395" /> +<glyph unicode=" " horiz-adv-x="395" /> +<glyph unicode="!" horiz-adv-x="684" d="M580 1481l-72 -587q-11 -93 -31.5 -182.5t-47.5 -191.5h-165q0 20 -0.5 40.5t-0.5 39.5q0 77 3.5 148.5t13.5 145.5l71 587h229zM158 139q0 32 11.5 60.5t32 49t49.5 33t61 12.5q33 0 61 -12.5t49 -33t33.5 -49t12.5 -60.5q0 -33 -12.5 -61t-33.5 -48.5t-49 -32 t-61 -11.5t-61.5 11.5t-49 32t-32 48.5t-11.5 61z" /> +<glyph unicode=""" horiz-adv-x="802" d="M452 1480l-37 -295l-41 -161q-11 -43 -32 -66.5t-64 -23.5q-36 0 -53 23.5t-22 66.5v161l37 295h212zM805 1480l-37 -295l-41 -161q-11 -43 -32 -66.5t-64 -23.5q-36 0 -53 23.5t-22 66.5v161l37 295h212z" /> +<glyph unicode="#" d="M828 419l-130 -419h-112q-27 0 -44.5 19.5t-17.5 49.5q0 14 5 32l100 318h-216l-102 -330q-14 -48 -48.5 -68.5t-72.5 -20.5h-108l131 419h-122q-28 0 -43 12t-15 40q0 17 8 47l21 77h197l90 291h-221l31 100q11 39 38 57t81 18h118l106 336q12 39 44 61t70 22h112 l-132 -419h215l131 419h110q31 0 50 -17.5t19 -44.5q0 -13 -4 -24l-105 -333h210l-33 -102q-12 -38 -38 -55.5t-78 -17.5h-108l-91 -291h151q29 0 44 -11.5t15 -39.5q0 -17 -8 -47l-22 -78h-226zM459 595h216l90 291h-215z" /> +<glyph unicode="$" d="M416 -9q-118 15 -217 64t-163 123l89 112q11 14 28.5 23.5t36.5 9.5q22 0 45 -16.5t53 -38t70.5 -43.5t98.5 -32l96 470q-65 19 -127 44t-111.5 65t-80 100t-30.5 148q0 89 35.5 172t103.5 148t164 106.5t217 46.5l27 130q5 25 25.5 44t47.5 19h90l-41 -201 q106 -17 179.5 -61t124.5 -100l-70 -89q-15 -20 -30 -30t-36 -10q-15 0 -35 10t-45 24.5t-57.5 29t-72.5 23.5l-89 -434q44 -14 88 -29.5t84.5 -35.5t75 -45t60 -59t40.5 -77t15 -98q0 -100 -37.5 -191t-107 -160.5t-169.5 -114t-225 -52.5l-31 -155q-5 -24 -26 -42.5 t-48 -18.5h-90zM866 444q0 35 -12.5 61.5t-35.5 47t-54.5 36t-68.5 28.5l-87 -428q125 14 191.5 82.5t66.5 172.5zM438 1074q0 -35 12.5 -61.5t34 -48t51 -38t65.5 -30.5l80 390q-65 -7 -111 -26.5t-75 -47.5t-43 -63.5t-14 -74.5z" /> +<glyph unicode="%" horiz-adv-x="1518" d="M771 1178q0 -98 -31.5 -176.5t-83.5 -133.5t-118 -84t-135 -29q-61 0 -112 22t-87 63t-56 98.5t-20 129.5q0 97 28.5 176t78.5 134.5t117 85.5t143 30q61 0 112 -22t87.5 -63.5t56.5 -99.5t20 -131zM582 1177q0 86 -30.5 122.5t-76.5 36.5q-34 0 -63 -14.5t-50.5 -47 t-33.5 -83t-12 -123.5q0 -42 8 -71.5t22 -48t33.5 -27t43.5 -8.5q33 0 62 14t50.5 45.5t34 81.5t12.5 123zM1254 1441q14 14 33.5 26.5t50.5 12.5h178l-1194 -1443q-13 -16 -33 -26.5t-46 -10.5h-181zM1449 404q0 -98 -32 -176t-83 -133t-117.5 -84t-135.5 -29 q-61 0 -112 22.5t-87 63t-56 98t-20 128.5q0 98 28.5 177.5t78.5 135t117 85.5t142 30q61 0 112.5 -22.5t88 -64t56.5 -100t20 -131.5zM1261 403q0 86 -31 122.5t-77 36.5q-34 0 -63 -15t-50.5 -47t-33.5 -82.5t-12 -123.5q0 -83 30 -119t77 -36q34 0 63 14t50.5 45t34 81.5 t12.5 123.5z" /> +<glyph unicode="&" horiz-adv-x="1347" d="M745 1496q78 0 141.5 -23.5t108 -66.5t69.5 -103.5t25 -135.5l-146 -28q-14 -3 -24 -3q-37 0 -48 41q-7 29 -19 52.5t-30.5 41.5t-42.5 28.5t-56 10.5q-43 0 -77.5 -17.5t-58.5 -48t-36.5 -70.5t-12.5 -87q0 -49 17.5 -101.5t61.5 -109.5l304 -394q34 61 57.5 128 t37.5 138q5 24 16.5 38t37.5 14h171q-17 -136 -67 -259t-124 -226l243 -315h-212q-30 0 -50.5 3.5t-37.5 12.5t-31 22t-29 33l-53 69q-95 -74 -205 -115t-230 -41q-94 0 -168.5 26t-127 74.5t-80 117.5t-27.5 155q0 79 25 149.5t69.5 129t105.5 105.5t132 80 q-33 65 -48.5 128.5t-15.5 121.5q0 87 31 164.5t87 135t136.5 91.5t180.5 34zM293 390q0 -99 52.5 -155.5t152.5 -56.5q74 0 141.5 29.5t126.5 81.5l-303 400q-91 -59 -130.5 -135.5t-39.5 -163.5z" /> +<glyph unicode="'" horiz-adv-x="451" d="M452 1480l-37 -295l-41 -161q-11 -43 -32 -66.5t-64 -23.5q-36 0 -54 23.5t-21 66.5v161l37 295h212z" /> +<glyph unicode="(" horiz-adv-x="565" d="M309 443q0 -71 6 -149.5t17.5 -158t29 -154.5t41.5 -140q7 -18 8 -36q0 -23 -12 -36.5t-29 -23.5l-116 -64q-42 87 -71.5 181t-48.5 189.5t-28.5 190.5t-9.5 183q0 153 19 296.5t64 287t121 290.5t189 306l102 -65q11 -8 19 -18.5t8 -25.5q0 -10 -4 -23t-14 -29 q-70 -117 -124 -233t-91 -238t-56.5 -253.5t-19.5 -276.5z" /> +<glyph unicode=")" horiz-adv-x="565" d="M291 842q0 71 -5.5 149.5t-17.5 158t-29.5 154.5t-41.5 140q-7 18 -8 36q0 23 12 36.5t29 23.5l116 65q41 -87 71 -181.5t49 -190t28.5 -190.5t9.5 -183q0 -153 -19 -296.5t-64 -287t-121 -290.5t-189 -305l-102 64q-11 8 -19 18.5t-8 25.5q0 10 4 23t14 29 q70 117 124 233t91 238t56.5 253.5t19.5 276.5z" /> +<glyph unicode="*" horiz-adv-x="753" d="M356 860l24 189q2 20 6.5 38t12.5 35q-13 -13 -28.5 -22.5t-32.5 -21.5l-159 -96l-45 99l159 96q19 11 38 18.5t39 9.5q-39 6 -70 29l-136 96l69 100l137 -98l28 -22t23 -25q-3 10 -4 20.5t-1 21.5q0 8 0.5 16.5t1.5 16.5l23 190h117l-23 -188q-2 -20 -7.5 -38.5 t-13.5 -35.5q11 11 25.5 21t29.5 19l166 100l45 -99l-158 -95q-37 -23 -75 -29q17 -3 34 -10t33 -18l136 -97l-69 -98l-136 96q-14 11 -28 21.5t-23 22.5q5 -23 5 -43q0 -7 -0.5 -14t-1.5 -14l-25 -191h-116z" /> +<glyph unicode="+" d="M777 1200l-52 -422h401l-22 -181h-401l-52 -424h-198l52 424h-399l23 181h398l53 422h197z" /> +<glyph unicode="," horiz-adv-x="460" d="M41 156q0 29 10.5 53.5t30 43.5t47 30t59.5 11q39 0 68.5 -14t48.5 -38t28.5 -55t9.5 -66q0 -49 -15 -103.5t-43.5 -108.5t-70.5 -105.5t-97 -94.5l-44 40q-18 15 -19 37q0 15 17.5 35t39.5 46.5t43.5 60t30.5 75.5q-33 0 -59 12t-45.5 32.5t-29.5 48t-10 60.5z" /> +<glyph unicode="-" horiz-adv-x="679" d="M121 720h492l-25 -204h-492z" /> +<glyph unicode="." horiz-adv-x="460" d="M35 139q0 32 11.5 60.5t32.5 49t49.5 33t60.5 12.5q33 0 61.5 -12.5t49.5 -33t33 -49t12 -60.5q0 -33 -12 -61t-33 -48.5t-49.5 -32t-61.5 -11.5t-61 11.5t-49 32t-32.5 48.5t-11.5 61z" /> +<glyph unicode="/" horiz-adv-x="741" d="M155 -7q-22 -45 -62.5 -68.5t-77.5 -23.5h-104l720 1503q20 42 55.5 64t79.5 22h102z" /> +<glyph unicode="0" d="M713 1496q100 0 183.5 -38t143.5 -113t93 -188.5t33 -263.5q0 -230 -50 -401t-137 -284.5t-204 -168.5t-250 -55q-100 0 -183.5 37.5t-143.5 113t-93 188.5t-33 264q0 230 50 401t137 284t204 168.5t250 55.5zM558 186q74 0 138.5 43t112 130t75 219t27.5 310 q0 115 -19 192.5t-51 125t-74 67.5t-87 20q-74 0 -138.5 -43t-112 -130t-75 -218.5t-27.5 -309.5q0 -115 19 -192.5t51 -125t74 -68t87 -20.5z" /> +<glyph unicode="1" d="M239 183h302l110 904l20 87l-249 -191q-14 -11 -27.5 -15t-25.5 -4q-20 0 -36.5 8.5t-22.5 19.5l-62 107l495 384h202l-161 -1300h271l-23 -183h-815z" /> +<glyph unicode="2" d="M731 1496q93 0 169 -26.5t129.5 -74.5t83 -117t29.5 -152q0 -92 -28.5 -168.5t-77 -145.5t-114 -133.5t-140.5 -131.5l-382 -348q49 13 97 20.5t90 7.5h394q36 0 56.5 -19.5t20.5 -50.5q0 -2 -0.5 -6t-2 -18.5t-5.5 -46t-12 -86.5h-1009l9 81q3 24 16.5 51.5t38.5 49.5 l508 454q74 66 127.5 123t89.5 112.5t53.5 111t17.5 119.5q0 91 -53.5 139.5t-144.5 48.5q-46 0 -86.5 -12.5t-73 -36t-57.5 -56.5t-42 -72q-15 -38 -39 -54.5t-58 -16.5q-14 0 -33 4l-125 22q29 105 82 185.5t126 134.5t161 81t185 27z" /> +<glyph unicode="3" d="M762 1496q94 0 168.5 -26t126 -72t78.5 -108.5t27 -135.5q0 -81 -19 -141.5t-54.5 -105t-88 -74t-118.5 -48.5q115 -39 171 -116t56 -186q0 -120 -46.5 -213t-125 -156.5t-180 -96.5t-211.5 -33q-104 0 -183 23t-136 71t-93 121.5t-55 174.5l114 44q31 12 58 12t44.5 -10 t25.5 -31q16 -51 37.5 -88.5t51 -62.5t68.5 -37.5t90 -12.5q71 0 126.5 25t93 65t57.5 92.5t20 107.5q0 42 -13 77.5t-49 60.5t-98.5 40t-160.5 15l23 173q95 1 162.5 19t109.5 51.5t61 81t19 109.5q0 91 -53 138t-143 47q-94 0 -161 -49t-100 -128q-15 -38 -39 -54.5 t-56 -16.5q-14 0 -33 4l-125 22q28 105 81 185.5t125 134.5t160.5 81t186.5 27z" /> +<glyph unicode="4" d="M974 553h185l-19 -139q-2 -19 -17 -34t-40 -15h-133l-44 -365h-221l44 365h-614q-26 0 -49 15t-26 38l-9 124l818 940h237zM814 1056q8 59 27 133l-543 -636h455z" /> +<glyph unicode="5" d="M1119 1376q-6 -51 -43.5 -83.5t-114.5 -32.5h-414l-95 -322q96 19 181 19q109 0 189.5 -29.5t135 -82t81.5 -124.5t27 -156q0 -86 -22 -162.5t-62 -141.5t-96.5 -116.5t-124.5 -87t-146.5 -54.5t-163.5 -19q-70 0 -130.5 13.5t-111.5 37t-93.5 55t-75.5 65.5l87 105 q14 17 31.5 24.5t35.5 7.5q26 0 50 -16.5t56.5 -35.5t77.5 -35.5t111 -16.5q79 0 140.5 27t103.5 74t64 109.5t22 135.5q0 102 -64 163t-194 61q-47 0 -101 -9t-119 -27l-146 43l211 716h726z" /> +<glyph unicode="6" d="M735 922q78 0 148 -25.5t123.5 -73.5t84.5 -120t31 -165q0 -116 -44.5 -217t-122.5 -175.5t-185 -118t-233 -43.5q-106 0 -190.5 32.5t-142.5 91.5t-88 141.5t-30 180.5q0 67 15 130t44 126t73 127t103 131l414 477q20 25 57 42t80 17h218l-505 -540l-62 -67 q47 24 100 36.5t112 12.5zM317 421q0 -52 15.5 -96t46 -76t75 -49.5t102.5 -17.5q68 0 126 24t101 66t68 100.5t25 126.5q0 55 -17.5 99.5t-50 76t-77.5 47.5t-101 16q-68 0 -125.5 -24t-98.5 -66.5t-65 -100t-24 -126.5z" /> +<glyph unicode="7" d="M1242 1481l-11 -97q-4 -34 -13 -63.5t-20 -48.5l-741 -1215q-14 -24 -41 -40.5t-57 -16.5h-203l718 1144q22 35 44.5 62.5t48.5 53.5h-716q-22 0 -36.5 14.5t-14.5 35.5l21 171h1021z" /> +<glyph unicode="8" d="M530 -16q-105 0 -190.5 27t-146.5 77t-93.5 120.5t-32.5 156.5q0 153 78 257t239 150q-91 41 -136 112.5t-45 168.5q0 94 39 175.5t107.5 140.5t162.5 93t204 34q95 0 172 -27.5t131 -75.5t84 -113t30 -139q0 -133 -66.5 -228t-195.5 -144q116 -40 172.5 -118.5 t56.5 -187.5q0 -110 -43 -198.5t-119 -151t-180.5 -96t-227.5 -33.5zM553 175q71 0 125.5 21t92.5 58.5t57.5 89.5t19.5 115q0 52 -16.5 91.5t-47 66t-73.5 40t-97 13.5q-68 0 -121.5 -19t-92 -55t-58.5 -89t-20 -121q0 -46 14.5 -84.5t44 -66.5t72.5 -44t100 -16zM637 860 q75 0 124 24.5t78 63t41 85t12 90.5q0 38 -11.5 72t-35.5 59.5t-61.5 41t-89.5 15.5q-63 0 -111 -20.5t-80 -55t-48 -80.5t-16 -98q0 -38 10.5 -73.5t34 -63t61.5 -44t92 -16.5z" /> +<glyph unicode="9" d="M557 593q-72 0 -137.5 23.5t-115.5 70t-79.5 115t-29.5 160.5q0 111 43 208t118.5 169.5t179 114.5t224.5 42q102 0 183 -31t137 -87.5t85 -134.5t29 -171q0 -78 -16 -146t-45 -131.5t-72 -125.5t-96 -126l-402 -487q-20 -24 -54.5 -40t-77.5 -16h-224l529 575 q20 23 39.5 44.5t36.5 43.5q-56 -35 -120.5 -52.5t-134.5 -17.5zM963 1070q0 52 -17 94t-47.5 71.5t-73 45t-93.5 15.5q-63 0 -116.5 -22.5t-92 -62.5t-60 -95.5t-21.5 -121.5q0 -104 57 -160.5t166 -56.5q69 0 124 22.5t94 62.5t59.5 93.5t20.5 114.5z" /> +<glyph unicode=":" horiz-adv-x="460" d="M35 139q0 32 11.5 60.5t32.5 49t49.5 33t60.5 12.5q33 0 61.5 -12.5t49.5 -33t33 -49t12 -60.5q0 -33 -12 -61t-33 -48.5t-49.5 -32t-61.5 -11.5t-61 11.5t-49 32t-32.5 48.5t-11.5 61zM135 869q0 32 12 60.5t33 49t49 33t61 12.5t61 -12.5t49 -33t33 -49t12 -60.5 q0 -33 -12 -61t-33 -48.5t-49 -32t-61 -11.5t-61 11.5t-49 32t-33 48.5t-12 61z" /> +<glyph unicode=";" horiz-adv-x="460" d="M36 156q0 29 10.5 53.5t30 43.5t47 30t59.5 11q39 0 68.5 -14t48 -38t28.5 -55t10 -66q0 -49 -15 -103.5t-43.5 -108.5t-70.5 -105.5t-97 -94.5l-44 40q-18 15 -19 37q0 15 17.5 35t39.5 46.5t43.5 60t30.5 75.5q-33 0 -59 12t-45.5 32.5t-29.5 48t-10 60.5zM137 869 q0 32 12 60.5t33 49t49 33t61 12.5t61 -12.5t49 -33t33 -49t12 -60.5q0 -33 -12 -61t-33 -48.5t-49 -32t-61 -11.5t-61 11.5t-49 32t-33 48.5t-12 61z" /> +<glyph unicode="<" horiz-adv-x="1092" d="M163 741l863 423l-22 -180q-2 -20 -14.5 -37t-38.5 -29l-395 -191q-26 -12 -53 -21t-57 -16q28 -7 53 -15.5t48 -21.5l349 -191q20 -11 28.5 -25t8.5 -31q0 -1 -0.5 -5.5t-3 -23t-7 -56t-13.5 -106.5l-758 424z" /> +<glyph unicode="=" d="M152 600h904l-23 -181h-904zM197 958h902l-21 -182h-904z" /> +<glyph unicode=">" horiz-adv-x="1092" d="M979 639l-863 -423l22 180q2 20 14.5 37.5t37.5 29.5l396 190q26 12 53 21t56 16q-28 7 -53 16t-47 21l-349 192q-20 11 -28.5 24.5t-8.5 31.5q0 1 0.5 5t2.5 22.5t7 56.5t13 106l759 -424z" /> +<glyph unicode="?" horiz-adv-x="798" d="M138 1346q37 31 78.5 58t89 48t101.5 32.5t114 11.5q80 0 142 -23t104 -63t63.5 -93.5t21.5 -115.5q0 -65 -13.5 -114.5t-36 -87.5t-51 -68t-60 -55t-62.5 -47t-58 -45.5t-47.5 -50t-29.5 -61.5l-41 -152h-168v168q0 51 25 91t63.5 74t82.5 65t82.5 66t63.5 76t25 95 q0 67 -38 105t-113 38q-52 0 -90.5 -13t-66 -29t-47 -29.5t-35.5 -13.5q-15 0 -27.5 7.5t-19.5 23.5zM187 139q0 32 12 60.5t32.5 49t49 33t61.5 12.5t61 -12.5t49 -33t33.5 -49t12.5 -60.5q0 -33 -12.5 -61t-33.5 -48.5t-49 -32t-61 -11.5t-61.5 11.5t-49 32t-32.5 48.5 t-12 61z" /> +<glyph unicode="@" horiz-adv-x="1526" d="M1046 188q-65 0 -111 32.5t-57 105.5q-65 -74 -131.5 -105.5t-139.5 -31.5q-52 0 -90 18.5t-63.5 51.5t-38 77.5t-12.5 95.5q0 62 16.5 127.5t49 127t80 115t110 94t140 64t168.5 23.5q38 0 68.5 -3t57 -8.5t50 -14t47.5 -19.5l-138 -379q-17 -46 -23.5 -80.5t-6.5 -58.5 q0 -46 21.5 -63t55.5 -17q46 0 88 35t74 96t51.5 145t19.5 183q0 111 -31 196t-89 143t-140.5 87.5t-183.5 29.5q-90 0 -173.5 -26.5t-155.5 -75.5t-130.5 -118t-100.5 -155t-65 -186t-23 -211q0 -139 38 -245.5t108 -178.5t167 -109.5t215 -37.5q73 0 136 8t114.5 22 t92 31.5t70.5 34.5q14 8 26.5 11.5t22.5 3.5q22 0 33 -12.5t16 -29.5l18 -70q-106 -70 -242 -114t-305 -44q-156 0 -282.5 51t-216.5 144.5t-139.5 226.5t-49.5 299q0 128 31 247.5t86 224t133 190t172 146.5t201.5 95t221.5 34q124 0 232.5 -42.5t190 -122t128.5 -193 t47 -254.5q0 -129 -36 -240.5t-98.5 -193.5t-146 -129.5t-178.5 -47.5zM676 347q24 0 48.5 9t48.5 30.5t46.5 57.5t42.5 91l106 290q-28 6 -60 6q-61 0 -118 -31.5t-100.5 -83.5t-69.5 -119.5t-26 -137.5q0 -52 20.5 -82t61.5 -30z" /> +<glyph unicode="A" horiz-adv-x="1313" d="M1267 0h-206q-35 0 -55.5 16.5t-25.5 43.5l-61 310h-552l-138 -310q-11 -24 -36.5 -42t-57.5 -18h-209l716 1481h271zM450 557h431l-101 507q-8 37 -16 78t-15 92q-19 -51 -38.5 -94.5t-35.5 -76.5z" /> +<glyph unicode="B" horiz-adv-x="1228" d="M72 0l182 1481h475q123 0 210.5 -24t143.5 -68t82.5 -106.5t26.5 -139.5q0 -63 -17 -121t-53 -107.5t-91 -88.5t-132 -64q126 -32 187.5 -103t61.5 -181q0 -102 -38 -189.5t-109.5 -151.5t-174.5 -100.5t-233 -36.5h-521zM417 652l-55 -445h251q72 0 123 19.5t84.5 54.5 t49.5 85t16 109q0 81 -51.5 129t-167.5 48h-250zM439 836h197q137 0 211.5 64.5t74.5 197.5q0 93 -53 135.5t-164 42.5h-211z" /> +<glyph unicode="C" horiz-adv-x="1235" d="M694 209q62 0 109 9.5t81.5 25t59 32.5t43 32.5t32.5 25t29 9.5q12 0 20 -5t13 -10l94 -116q-96 -111 -226.5 -169.5t-299.5 -58.5q-136 0 -242.5 48.5t-180 134.5t-112 203.5t-38.5 257.5q0 128 27.5 242t78.5 211t123 173.5t159 131t188 83t210 28.5q81 0 147.5 -15 t121 -41.5t97.5 -64t78 -83.5l-93 -110q-10 -12 -23.5 -21.5t-34.5 -9.5q-23 0 -43 18.5t-51.5 40.5t-81 40.5t-130.5 18.5q-106 0 -197.5 -43.5t-159 -124.5t-106 -195t-38.5 -257q0 -103 26 -185t72.5 -139t109.5 -87t138 -30z" /> +<glyph unicode="D" horiz-adv-x="1406" d="M1386 840q0 -184 -59 -339t-165 -266t-251.5 -173t-317.5 -62h-521l182 1481h522q141 0 254.5 -48.5t192.5 -133.5t121 -202.5t42 -256.5zM1114 834q0 99 -24.5 180t-71 137.5t-114 87.5t-154.5 31h-255l-130 -1058h255q112 0 202.5 43t155.5 123.5t100.5 196t35.5 259.5 z" /> +<glyph unicode="E" horiz-adv-x="1076" d="M1117 1481l-26 -212h-596l-52 -421h468l-25 -204h-468l-53 -432h598l-27 -212h-864l182 1481h863z" /> +<glyph unicode="F" horiz-adv-x="1056" d="M1091 1269h-596l-56 -451h503l-28 -212h-500l-75 -606h-267l182 1481h863z" /> +<glyph unicode="G" horiz-adv-x="1358" d="M724 196q83 0 146.5 15.5t121.5 44.5l35 283h-164q-24 0 -36.5 11.5t-12.5 30.5l17 157h461l-73 -595q-113 -82 -243 -120.5t-297 -38.5q-136 0 -247 49t-190.5 136.5t-122.5 208t-43 262.5q0 125 27.5 237t78 207.5t122 171.5t160 130t191 82.5t214.5 28.5q90 0 164 -16 t133.5 -43.5t106.5 -64.5t84 -78l-86 -110q-28 -36 -66 -36q-24 0 -45 14q-34 23 -65.5 42.5t-67.5 33.5t-78.5 22.5t-98.5 8.5q-111 0 -203 -44.5t-158.5 -126t-103.5 -195.5t-37 -255q0 -106 27 -190t76.5 -142.5t118.5 -89.5t154 -31z" /> +<glyph unicode="H" horiz-adv-x="1425" d="M1229 0h-267l79 650h-622l-80 -650h-267l182 1481h267l-80 -642h624l80 642h267z" /> +<glyph unicode="I" horiz-adv-x="593" d="M369 0h-268l182 1481h267z" /> +<glyph unicode="J" horiz-adv-x="821" d="M689 513q-15 -123 -55 -221t-104 -166.5t-152 -105t-200 -36.5q-54 0 -103.5 6.5t-102.5 20.5l20 156q2 22 14.5 36t39.5 14q24 0 54.5 -7t78.5 -7q47 0 87 16.5t72 52.5t53.5 94t31.5 141l119 974h266z" /> +<glyph unicode="K" horiz-adv-x="1320" d="M449 855h57q36 0 61 11t45 35l428 522q27 33 56.5 45.5t69.5 12.5h229l-525 -620q-24 -28 -45.5 -47t-46.5 -31q31 -12 53 -33.5t40 -56.5l376 -693h-233q-24 0 -40.5 3.5t-28 10t-19 16.5t-14.5 22l-305 552q-14 27 -36.5 38.5t-66.5 11.5h-80l-81 -654h-264l181 1482 h266z" /> +<glyph unicode="L" horiz-adv-x="974" d="M364 220h538l-25 -220h-805l182 1481h265z" /> +<glyph unicode="M" horiz-adv-x="1756" d="M845 592q9 -27 16 -54.5t15 -56.5q12 29 26 56.5t31 54.5l514 846q9 15 19 23.5t20.5 13t24 5.5t30.5 1h202l-182 -1481h-234l119 965q3 27 9 58.5t13 63.5l-509 -845q-17 -29 -43 -43.5t-57 -14.5h-37q-31 0 -54 14.5t-33 43.5l-305 842q-1 -32 -2.5 -61.5t-4.5 -53.5 l-117 -969h-234l182 1481h200q17 0 30.5 -1t23.5 -5.5t17 -13t14 -23.5l306 -846v0z" /> +<glyph unicode="N" horiz-adv-x="1425" d="M393 1481q17 0 29 -1.5t21.5 -6.5t16.5 -13t15 -22l577 -1011q2 30 4.5 58t5.5 53l116 943h234l-183 -1481h-136q-31 0 -52.5 9.5t-35.5 36.5l-574 1011q-2 -25 -4 -48t-4 -43l-117 -966h-234l182 1481h139v0z" /> +<glyph unicode="O" horiz-adv-x="1499" d="M1481 840q0 -123 -27.5 -234t-78 -206.5t-121.5 -172t-159.5 -131t-192 -83.5t-217.5 -29q-141 0 -254 50t-192 138t-121 208t-42 260q0 123 27 234t77.5 206.5t122 172t160 131.5t192 84t217.5 29q141 0 254 -50t192 -138t121 -208.5t42 -260.5zM1208 834q0 100 -25 182 t-72.5 140t-116 90t-154.5 32q-111 0 -201.5 -45t-155 -128t-100 -200t-35.5 -259q0 -100 24.5 -182t72 -140t115.5 -89t155 -31q112 0 203 45t155.5 127t99.5 198.5t35 259.5z" /> +<glyph unicode="P" horiz-adv-x="1182" d="M408 524l-65 -524h-264l181 1481h451q126 0 216.5 -30.5t149 -84.5t86.5 -128.5t28 -163.5q0 -119 -37.5 -219.5t-112 -174t-187 -115t-261.5 -41.5h-185zM501 1276l-68 -545h187q78 0 135 23.5t95 66t56 101t18 129.5q0 50 -14.5 92t-44 71t-74.5 45.5t-106 16.5h-184z " /> +<glyph unicode="Q" horiz-adv-x="1499" d="M1481 840q0 -118 -25 -225.5t-72.5 -200t-113.5 -169t-149 -131.5l296 -405h-217q-48 0 -84.5 12.5t-61.5 48.5l-170 238q-47 -11 -97 -17.5t-102 -6.5q-141 0 -254 50t-192 138t-121 208t-42 260q0 123 27 234t77.5 206.5t122 172t160 131.5t192 84t217.5 29 q141 0 254 -50t192 -138t121 -208.5t42 -260.5zM1208 834q0 100 -25 182t-72.5 140t-116 90t-154.5 32q-111 0 -201.5 -45t-155 -128t-100 -200t-35.5 -259q0 -100 24.5 -182t72 -140t115.5 -89t155 -31q112 0 203 45t155.5 127t99.5 198.5t35 259.5z" /> +<glyph unicode="R" horiz-adv-x="1238" d="M415 584l-72 -584h-264l181 1481h421q128 0 219 -27.5t149.5 -76t86 -116t27.5 -148.5q0 -86 -24 -161t-69 -136.5t-110.5 -107.5t-148.5 -72q24 -14 43 -34.5t34 -49.5l264 -552h-239q-34 0 -56.5 14t-34.5 39l-217 481q-12 27 -30 38.5t-56 11.5h-104zM501 1276 l-63 -503h154q80 0 137.5 23t95 63.5t56 95t18.5 116.5q0 96 -59.5 150.5t-183.5 54.5h-155z" /> +<glyph unicode="S" horiz-adv-x="1012" d="M957 1214q-14 -20 -28.5 -29.5t-34.5 -9.5t-42 16t-51.5 36t-70 36.5t-97.5 16.5q-56 0 -99.5 -16.5t-72.5 -45t-44 -67.5t-15 -84q0 -47 24.5 -78.5t63 -55t89 -42t102 -38.5t102 -47t89 -66t62.5 -93.5t24 -132.5q0 -109 -37 -205t-107.5 -168t-170 -114.5 t-224.5 -42.5q-65 0 -127.5 13.5t-117.5 39t-102 61.5t-82 80l94 127q11 14 28.5 23.5t34.5 9.5q16 0 32.5 -10.5t35 -25t41 -32.5t51 -33t64.5 -25t83 -10q116 0 181 65.5t65 181.5q0 51 -23.5 83.5t-62.5 55t-88 39.5t-100.5 36t-101 44t-88 64.5t-62 97t-23.5 141.5 q0 95 35 183t100.5 155t159.5 107.5t211 40.5q60 0 116 -12.5t104.5 -35t89 -53.5t69.5 -69z" /> +<glyph unicode="T" horiz-adv-x="1122" d="M1221 1481l-28 -218h-406l-155 -1263h-264l154 1263h-406l26 218h1079z" /> +<glyph unicode="U" horiz-adv-x="1370" d="M650 213q72 0 132 27t105 77t74 119.5t39 154.5l110 890h265l-108 -890q-16 -131 -69.5 -242.5t-137 -192.5t-194.5 -126.5t-243 -45.5q-120 0 -213.5 37t-157.5 105t-97 161.5t-33 206.5q0 46 6 97l108 890h266l-110 -889q-2 -19 -3 -37.5t-1 -36.5q0 -70 17 -126 t50 -96t82.5 -61.5t112.5 -21.5z" /> +<glyph unicode="V" horiz-adv-x="1347" d="M124 1481h213q35 0 55.5 -17t25.5 -44l197 -922q10 -48 19.5 -97t17.5 -104q17 55 39 106t42 95l421 922q10 23 36.5 42t58.5 19h215l-731 -1481h-241z" /> +<glyph unicode="W" horiz-adv-x="1979" d="M131 1481h209q35 0 56 -17t25 -44l130 -908q5 -33 6.5 -71t3.5 -80q27 84 54 151l369 908q9 23 35.5 42t58.5 19h62q35 0 56.5 -17t26.5 -44l147 -908q5 -33 9.5 -69.5t6.5 -76.5q11 40 22.5 77t24.5 69l351 908q9 24 36 42.5t60 18.5h210l-605 -1481h-241l-167 1026 q-3 19 -6.5 42.5t-5.5 48.5q-8 -26 -17 -48.5l-17 -42.5l-419 -1026h-239z" /> +<glyph unicode="X" horiz-adv-x="1291" d="M497 791l-333 690h240q27 0 39 -8t20 -26l227 -511q10 22 25 43l314 465q25 37 61 37h277l-504 -678l372 -803h-238q-27 0 -41.5 14.5t-22.5 31.5l-257 593q-5 -8 -9.5 -16.5t-10.5 -16.5l-383 -560q-17 -26 -37.5 -36t-45.5 -10h-265z" /> +<glyph unicode="Y" horiz-adv-x="1241" d="M763 577l-72 -577h-266l72 578l-385 903h236q35 0 53.5 -17t28.5 -44l192 -512q14 -37 22.5 -72t14.5 -69q16 34 35.5 68.5t42.5 72.5l319 512q14 24 37 42.5t57 18.5h220z" /> +<glyph unicode="Z" horiz-adv-x="1160" d="M1233 1481l-11 -83q-2 -17 -10.5 -32.5t-19.5 -31.5l-818 -1122h686l-27 -212h-1040l10 81q2 17 9.5 33t19.5 30l820 1125h-657l25 212h1013z" /> +<glyph unicode="[" horiz-adv-x="565" d="M4 -312l233 1894h392l-12 -96q-3 -25 -23.5 -43.5t-47.5 -18.5h-124l-196 -1580h127q23 0 39.5 -12.5t16.5 -35.5l-13 -108h-392z" /> +<glyph unicode="\" horiz-adv-x="739" d="M106 1490h103q44 0 74.5 -22.5t40.5 -63.5l350 -1503h-103q-39 0 -73 23.5t-45 68.5z" /> +<glyph unicode="]" horiz-adv-x="565" d="M-32 -312l13 94q3 27 23 44.5t47 17.5h126l195 1580h-126q-26 0 -41.5 16t-15.5 39l13 103h392l-234 -1894h-392z" /> +<glyph unicode="^" d="M1108 796h-185q-24 0 -39 12t-25 30l-162 296q-15 29 -28 54.5t-22 51.5q-8 -27 -19.5 -53t-26.5 -53l-159 -296q-9 -17 -25 -29.5t-42 -12.5h-195l382 685h164z" /> +<glyph unicode="_" horiz-adv-x="743" d="M664 -141l-20 -159h-743l19 159h744z" /> +<glyph unicode="`" horiz-adv-x="605" d="M266 1496q39 0 56.5 -13.5t28.5 -39.5l103 -249h-140q-27 0 -43.5 7t-30.5 28l-203 267h229z" /> +<glyph unicode="a" horiz-adv-x="1059" d="M879 0h-134q-46 0 -64 21.5t-18 54.5l8 143q-70 -109 -157 -171.5t-191 -62.5q-59 0 -111 23.5t-90.5 70t-60.5 116.5t-22 164t23.5 183.5t67 167.5t105 144t138 113t165 73t186.5 26q71 0 142 -10t140 -37zM422 191q42 0 82.5 29t76 79.5t66.5 119t53 147.5l40 318 q-28 3 -51 3q-85 0 -157.5 -39t-126 -105t-83.5 -153.5t-30 -185.5q0 -111 35 -162t95 -51z" /> +<glyph unicode="b" horiz-adv-x="1101" d="M61 0l186 1522h247l-83 -679q74 103 164.5 163.5t192.5 60.5q66 0 119.5 -24t91.5 -72t58.5 -122t20.5 -173q0 -89 -18.5 -175t-52.5 -163t-80.5 -141.5t-104 -111.5t-122.5 -73.5t-134 -26.5q-81 0 -144 32t-106 87l-8 -34q-8 -37 -27.5 -53.5t-61.5 -16.5h-138z M670 868q-42 0 -85 -28.5t-83.5 -78.5t-75 -118.5t-58.5 -145.5l-31 -251q35 -38 80 -53.5t89 -15.5q68 0 123 42t94.5 109.5t61 152t21.5 169.5q0 111 -35.5 164.5t-100.5 53.5z" /> +<glyph unicode="c" horiz-adv-x="891" d="M858 186q-52 -57 -99.5 -96t-97 -62.5t-103.5 -33t-119 -9.5q-91 0 -163 31t-122.5 88.5t-76.5 138.5t-26 180q0 128 41 244t115 205t175 141.5t221 52.5q104 0 177.5 -37t130.5 -110l-81 -97q-9 -9 -20.5 -16.5t-26.5 -7.5q-17 0 -31.5 10.5t-33.5 23t-47 23t-73 10.5 q-58 0 -111.5 -31.5t-94 -90t-64.5 -140.5t-24 -181q0 -116 51.5 -179t138.5 -63q58 0 96.5 17t65 37t47.5 37t46 17q12 0 23.5 -7t21.5 -17l64 -78v0z" /> +<glyph unicode="d" horiz-adv-x="1103" d="M779 0q-46 0 -64.5 21.5t-18.5 54.5l9 153q-76 -113 -170.5 -178.5t-200.5 -65.5q-66 0 -119.5 24t-91.5 72t-58.5 121.5t-20.5 174.5q0 89 18.5 174.5t52 162.5t80.5 141.5t104 111.5t122 73.5t135 26.5q71 0 128 -25.5t100 -69.5l69 550h248l-188 -1522h-134zM432 183 q41 0 84 28.5t83 78t74.5 116.5t58.5 145l32 255q-35 38 -80 53t-88 15q-68 0 -123 -41.5t-94.5 -109.5t-61 -152.5t-21.5 -169.5q0 -111 35.5 -164.5t100.5 -53.5z" /> +<glyph unicode="e" horiz-adv-x="968" d="M940 807q0 -71 -28 -129t-101 -104.5t-197.5 -79.5t-316.5 -53v-13q0 -248 210 -248q45 0 80 9t61 21t47 27.5t39 28t35 21t38 8.5q12 0 24.5 -5.5t20.5 -17.5l64 -77q-54 -54 -106 -94.5t-106.5 -66t-115 -37.5t-131.5 -12q-92 0 -167 31t-128 88t-82.5 137.5 t-29.5 179.5q0 83 18 163t52 151.5t83 132t111 104.5t136 68.5t159 24.5q83 0 145 -23.5t103.5 -61t62 -83.5t20.5 -90zM595 889q-51 0 -95 -21t-79.5 -59t-61.5 -90.5t-42 -115.5q127 17 204.5 38t120 45.5t56.5 52t14 59.5q0 15 -7 31.5t-20.5 29t-35.5 21.5t-54 9z" /> +<glyph unicode="f" horiz-adv-x="651" d="M442 861l-99 -818l-52 -193q-14 -50 -44.5 -76.5t-85.5 -26.5h-102l135 1114l-81 15q-23 4 -37.5 16.5t-14.5 36.5q0 1 0.5 4t2 13.5t4 32.5t7.5 62h141l9 78q11 90 47.5 162t92.5 122t128.5 76.5t156.5 26.5q66 0 121 -19l-22 -131q-2 -11 -10 -18t-19 -10t-25 -4 t-28 -1q-41 0 -75.5 -11.5t-60.5 -36.5t-43 -65.5t-24 -98.5l-8 -70h235l-23 -180h-226z" /> +<glyph unicode="g" horiz-adv-x="993" d="M881 746q0 -47 -10.5 -84t-25.5 -69t-32 -60t-32.5 -57.5t-25.5 -61.5t-10 -71q0 -42 17.5 -77.5t38 -72t38 -78.5t17.5 -98q0 -78 -35 -148t-100.5 -122.5t-159.5 -83.5t-213 -31q-97 0 -174.5 20t-132 56t-84 84.5t-29.5 107.5q0 87 44 146t114 95.5t156.5 52.5 t172.5 16q42 0 82 -3.5t75 -9.5q-4 16 -6.5 32.5t-2.5 34.5q0 59 33 131q-39 -27 -88 -41t-119 -14q-59 0 -113 19.5t-95 59.5t-65 100t-24 139q0 77 29 150.5t85 131t139 92.5t193 35q58 0 110.5 -14t96.5 -40h294l-11 -82q-4 -25 -16 -42.5t-34 -23.5l-108 -28 q5 -20 8 -43t3 -48zM461 493q46 0 81 21.5t59 56t36 78t12 88.5q0 77 -35.5 118t-104.5 41q-46 0 -81 -20t-58.5 -53t-35 -76.5t-11.5 -89.5q0 -79 35 -121.5t103 -42.5zM626 -4q0 14 -1.5 28t-3.5 26q-55 9 -102 13.5t-88 4.5q-70 0 -119.5 -11.5t-81.5 -30t-47 -43 t-15 -52.5q0 -61 49 -93t152 -32q57 0 104 14.5t81 40t53 60.5t19 75z" /> +<glyph unicode="h" horiz-adv-x="1111" d="M61 0l186 1522h252l-79 -651q77 99 166.5 147.5t182.5 48.5q59 0 107.5 -21t82 -61.5t52 -99.5t18.5 -135q0 -19 -1.5 -39.5t-3.5 -41.5l-79 -669h-253l79 669q2 18 3.5 34.5t1.5 30.5q0 68 -25.5 97.5t-77.5 29.5q-39 0 -81 -22t-81 -62.5t-73 -97.5t-57 -128l-67 -551 h-253z" /> +<glyph unicode="i" horiz-adv-x="527" d="M452 1051l-126 -1051h-250l126 1051h250zM515 1357q0 -33 -14 -61.5t-36 -50t-50.5 -34.5t-59.5 -13q-30 0 -58 13t-49.5 34.5t-34 50t-12.5 61.5t13 62.5t34.5 51.5t50 35t57.5 13q31 0 59.5 -13t50.5 -34.5t35.5 -51t13.5 -63.5z" /> +<glyph unicode="j" horiz-adv-x="518" d="M452 1051l-134 -1087q-8 -69 -34 -129t-69.5 -105.5t-105.5 -72t-143 -26.5q-40 0 -69 5t-58 15l25 136q6 20 19.5 26t47.5 6q35 0 59 7.5t40.5 24.5t26 44.5t14.5 68.5l133 1087h248zM507 1357q0 -33 -14 -61.5t-36 -50t-50.5 -34.5t-59.5 -13q-30 0 -58 13t-49.5 34.5 t-34 50t-12.5 61.5t13 62.5t34.5 51.5t49.5 35t58 13q31 0 59.5 -13t50.5 -34.5t35.5 -51t13.5 -63.5z" /> +<glyph unicode="k" horiz-adv-x="1043" d="M500 1522l-107 -872h26q24 0 38.5 7.5t30.5 26.5l279 323q18 20 37.5 32t49.5 12h225l-346 -391q-19 -22 -38.5 -39.5t-41.5 -30.5q19 -14 32 -35t26 -45l260 -510h-219q-28 0 -46 10t-30 35l-204 398q-12 24 -25 31t-41 7h-34l-59 -481h-250l187 1522h250z" /> +<glyph unicode="l" horiz-adv-x="510" d="M67 0l184 1522h249l-185 -1522h-248z" /> +<glyph unicode="m" horiz-adv-x="1618" d="M53 0l128 1052h128q39 0 61.5 -18.5t22.5 -58.5v-3t-0.5 -14l-1.5 -36t-3 -68q71 108 154 160.5t173 52.5q97 0 153 -64.5t65 -186.5q74 129 163.5 190t194.5 61q118 0 182 -79.5t64 -228.5q0 -20 -1 -43.5t-4 -46.5l-79 -669h-250q20 174 34.5 295.5t24 203t14.5 127.5 t7.5 71t3 33.5t0.5 13.5q0 61 -20.5 88.5t-66.5 27.5q-39 0 -76 -20.5t-70 -59.5t-61 -95t-50 -127l-65 -558h-249l79 669q2 22 3.5 40.5t1.5 34.5q0 61 -20 88.5t-66 27.5q-40 0 -78 -21.5t-71.5 -62t-61.5 -98t-49 -129.5l-66 -549h-248z" /> +<glyph unicode="n" horiz-adv-x="1102" d="M53 0l126 1052h129q40 0 62 -19.5t22 -62.5l-7 -136q80 118 177 175.5t201 57.5q58 0 105.5 -21t81.5 -61.5t52.5 -99.5t18.5 -135q0 -19 -1.5 -39.5t-3.5 -41.5l-79 -669h-253q20 173 34.5 293.5t24 200t14.5 125.5t7.5 69.5t3 31t0.5 12.5q0 68 -24.5 98t-76.5 30 q-42 0 -87 -24.5t-86 -69.5t-75 -108.5t-55 -141.5l-58 -516h-253z" /> +<glyph unicode="o" horiz-adv-x="1044" d="M471 179q63 0 114.5 36.5t88 97.5t56 142t19.5 170q0 128 -43.5 188t-132.5 60q-63 0 -114 -35.5t-87 -97t-55.5 -142.5t-19.5 -171q0 -128 43 -188t131 -60zM449 -15q-87 0 -161.5 29t-128.5 85.5t-84.5 138t-30.5 187.5q0 136 43.5 254t119 204t175.5 135t214 49 q87 0 161 -29t128.5 -85.5t85 -138.5t30.5 -187q0 -135 -44 -252.5t-119 -204t-175 -136t-214 -49.5z" /> +<glyph unicode="p" horiz-adv-x="1085" d="M11 -343l170 1395h128q35 0 59.5 -15t24.5 -49v-3t-1 -19t-2 -50t-4 -97q76 114 171.5 181t202.5 67q66 0 119.5 -24t91.5 -72t58.5 -122t20.5 -173q0 -89 -18.5 -175t-52.5 -163t-80.5 -141.5t-104 -111.5t-122.5 -73.5t-134 -26.5q-71 0 -129 25t-100 70l-52 -423h-246 zM662 868q-42 0 -85 -28t-83 -77.5t-74.5 -117t-59.5 -145.5l-30 -255q35 -37 79.5 -52.5t88.5 -15.5q68 0 123 42t94.5 109.5t61 152t21.5 169.5q0 111 -35.5 164.5t-100.5 53.5z" /> +<glyph unicode="q" horiz-adv-x="1059" d="M836 -343h-164q-22 0 -36.5 7t-23.5 18.5t-13 25.5t-4 29q0 1 0.5 4.5t2 17t4.5 41t9 77t16 126t24 187.5q-68 -96 -149.5 -150.5t-178.5 -54.5q-59 0 -111 23.5t-90.5 70t-60.5 116.5t-22 164t23.5 183.5t67 167.5t105 144t138 113t165 73t186.5 26q71 0 142 -10 t140 -37zM422 191q41 0 81.5 28.5t76 78t66 117t52.5 145.5l42 325q-14 1 -26.5 1.5t-24.5 0.5q-85 0 -157.5 -39t-126 -105t-83.5 -153.5t-30 -185.5q0 -111 35 -162t95 -51z" /> +<glyph unicode="r" horiz-adv-x="744" d="M53 0l128 1052h128q37 0 60.5 -16.5t23.5 -52.5v-3q0 -4 -1 -21.5t-2 -55t-4 -104.5q65 124 141.5 191.5t159.5 67.5q42 0 85 -19l-46 -241q-51 22 -97 21q-91 0 -160 -87t-113 -272l-55 -460h-248z" /> +<glyph unicode="s" horiz-adv-x="803" d="M751 853q-11 -16 -21.5 -23t-27.5 -7t-35.5 10.5t-42.5 23t-55 23t-75 10.5q-81 0 -124 -36.5t-43 -90.5q0 -32 17.5 -54t46.5 -38.5t66 -30t75.5 -29.5t75.5 -36t65.5 -48.5t46.5 -69t18 -97.5q0 -76 -30 -144.5t-86.5 -120t-136 -81.5t-178.5 -30q-50 0 -96.5 9.5 t-87.5 27t-74.5 41t-56.5 51.5l61 96q11 17 27 26.5t38 9.5t39 -13.5t40.5 -29.5t57 -29t85.5 -13q42 0 74 11t54 30.5t33.5 45t11.5 54.5q0 35 -17.5 58t-46.5 40t-66 29.5t-75.5 27t-74.5 33t-65.5 46.5t-47 68.5t-17.5 98.5q0 70 27 136t78.5 117t127 81.5t172.5 30.5 q100 0 177.5 -34.5t130.5 -87.5z" /> +<glyph unicode="t" horiz-adv-x="726" d="M151 214v17t1.5 29t5 50t9.5 80l58 471h-99q-17 0 -28 11t-11 32q0 1 0.5 4t1.5 14t3.5 32.5t6.5 60.5l160 27l84 287q6 20 21 31.5t36 11.5h136l-41 -331h254l-22 -180h-255l-56 -458q-5 -42 -7.5 -66.5t-4.5 -38t-2.5 -19.5t-0.5 -8q0 -39 19 -61.5t54 -22.5q22 0 37 6 t26.5 12t20 11.5t16.5 5.5q11 0 18 -5.5t12 -16.5l54 -123q-56 -46 -124.5 -69.5t-138.5 -23.5q-112 0 -176.5 60t-67.5 170z" /> +<glyph unicode="u" horiz-adv-x="1100" d="M419 1051q-20 -173 -34.5 -293t-24 -200t-14.5 -126t-7.5 -69.5t-3 -31.5t-0.5 -14q0 -68 25 -97t76 -29q40 0 82.5 22.5t82 63t73.5 99t57 130.5l66 545h253l-127 -1051h-128q-17 0 -33.5 4.5t-29 14t-20 23.5t-7.5 34v4l6 128q-80 -113 -175 -168t-196 -55 q-58 0 -106 21t-81.5 60.5t-52 98.5t-18.5 135q0 20 1 40.5t4 43.5l79 667h253z" /> +<glyph unicode="v" horiz-adv-x="1017" d="M71 1051h207q27 0 42.5 -13.5t19.5 -33.5l111 -562q10 -50 14 -99.5t7 -98.5q14 49 31 97.5t41 100.5l251 562q9 20 28 33.5t41 13.5h200l-518 -1051h-213z" /> +<glyph unicode="w" horiz-adv-x="1502" d="M79 1051h191q27 0 44.5 -13.5t19.5 -33.5l61 -562q5 -46 5.5 -89t2.5 -86q15 43 32.5 86t35.5 89l228 564q8 20 26.5 33.5t41.5 13.5h109q27 0 42 -13.5t18 -33.5l88 -564q7 -46 12 -89l10 -86q11 43 23.5 86t30.5 89l204 562q7 20 25.5 33.5t41.5 13.5h184l-433 -1051 h-195q-32 0 -39 45l-101 607q-6 41 -9 79l-14 -40t-15 -41l-250 -605q-18 -45 -55 -45h-187z" /> +<glyph unicode="x" horiz-adv-x="1030" d="M361 568l-243 483h229q26 0 37 -7.5t19 -24.5l145 -313q6 12 13 24.5t17 26.5l184 258q12 17 25.5 26.5t30.5 9.5h230l-370 -484l270 -567h-230q-26 0 -40.5 14t-23.5 32l-160 369q-5 -11 -11.5 -22.5t-12.5 -20.5l-233 -326q-13 -17 -30 -31.5t-40 -14.5h-222z" /> +<glyph unicode="y" horiz-adv-x="1017" d="M380 -291q-27 -52 -82 -52h-187l233 423l-265 971h212q28 0 41.5 -14t18.5 -33l129 -545q6 -27 10 -52.5t6 -52.5q11 27 22.5 53t24.5 53l259 545q10 20 29.5 33t39.5 13h203z" /> +<glyph unicode="z" horiz-adv-x="897" d="M890 946q-3 -27 -14 -52.5t-27 -41.5l-525 -657h461l-22 -195h-764l13 105q2 17 13 42t28 46l530 664h-452l24 194h748z" /> +<glyph unicode="{" horiz-adv-x="565" d="M128 452q0 49 -23 80.5t-73 31.5l17 142q76 0 105.5 62.5t29.5 193.5q0 16 -1 37.5t-1.5 44.5t-1.5 45t-1 39q0 109 24.5 193.5t74.5 142.5t125.5 88t179.5 30h48l-14 -109q-2 -12 -8 -21.5t-14.5 -15.5t-18 -9t-16.5 -3h-7q-68 0 -106.5 -48.5t-47.5 -138.5 q-5 -52 -6 -100t-1 -94t-1 -89.5t-5 -87.5q-4 -43 -18 -80t-37 -67.5t-53.5 -52.5t-67.5 -32q59 -20 91 -71t32 -116q0 -59 -13.5 -116t-30 -113.5t-29.5 -114.5t-13 -120q0 -61 28 -100t83 -39h9q14 0 29.5 -9.5t15.5 -33.5v-3.5t-1.5 -13t-4.5 -33t-8 -63.5h-49 q-82 0 -141.5 21.5t-97.5 59.5t-57 91.5t-19 117.5q0 67 14.5 127.5t32 118t32.5 114t15 114.5z" /> +<glyph unicode="|" horiz-adv-x="614" d="M147 1584h197v-1927h-197v1927z" /> +<glyph unicode="}" horiz-adv-x="565" d="M469 818q0 -49 23 -80.5t73 -31.5l-17 -142q-76 0 -105.5 -63t-29.5 -193q0 -16 1 -37.5t1.5 -44.5t1.5 -45.5t1 -39.5q0 -109 -24.5 -193t-74.5 -142t-126 -88t-179 -30h-48l14 109q1 12 7.5 21.5t15 15.5t18 8.5t16.5 2.5h7q68 0 106.5 49t47.5 139q5 52 6 100t1 93.5 t1 89t5 87.5q4 43 18 80.5t37 68t53.5 52t67.5 32.5q-59 20 -91 71t-32 115q0 59 13.5 116t30 114t29.5 115t13 120q0 61 -28 99.5t-83 38.5h-9q-14 0 -29.5 10t-15.5 33v4t1.5 13.5t4.5 33t8 63.5h49q81 0 141 -21.5t98 -60t57 -91.5t19 -118q0 -67 -14.5 -127t-32 -117.5 t-32.5 -114t-15 -114.5z" /> +<glyph unicode="~" d="M701 664q57 0 89 36.5t32 103.5h204q0 -79 -21 -143t-60.5 -109.5t-96.5 -70t-131 -24.5q-54 0 -104 14t-94.5 31t-83.5 31.5t-71 14.5q-57 0 -89 -37t-32 -103h-204q0 79 21 142.5t60.5 109.5t96.5 70.5t131 24.5q54 0 104 -14.5t94.5 -31.5t83 -31t71.5 -14z" /> +<glyph unicode="¡" horiz-adv-x="684" d="M131 -345l68 548q11 93 30.5 182t44.5 190h160q0 -17 0.5 -34.5t0.5 -34.5q0 -80 -4 -153t-13 -150l-67 -548h-220zM238 912q0 32 11.5 60.5t32.5 49t49 33t61 12.5t61 -12.5t49 -33t33.5 -49t12.5 -60.5q0 -33 -12.5 -61t-33.5 -48.5t-49 -32t-61 -11.5t-61 11.5t-49 32 t-32.5 48.5t-11.5 61z" /> +<glyph unicode="¢" d="M493 -9q-81 12 -149 49t-116 96t-75 137.5t-27 176.5q0 127 40 237t115 192t184.5 130.5t248.5 53.5l34 164q5 24 25.5 43t47.5 19h90l-49 -235q80 -14 142 -48t111 -85l-74 -85q-12 -14 -22.5 -21.5t-30.5 -7.5q-14 0 -28.5 7t-33.5 17t-43.5 20.5t-57.5 18.5l-144 -700 q56 5 95 20t67 30.5t49 27.5t42 12q31 0 43 -20l56 -86q-40 -41 -86 -71t-95.5 -50t-102.5 -30.5t-106 -14.5l-32 -155q-5 -24 -25.5 -42.5t-47.5 -18.5h-91zM367 462q0 -110 42.5 -181t121.5 -98l144 695q-78 -8 -136 -41.5t-96.5 -87.5t-57 -126.5t-18.5 -160.5z" /> +<glyph unicode="£" d="M932 678q-2 -24 -23.5 -43t-51.5 -19h-391l-25 -210q-8 -70 -32 -122.5t-67 -96.5q40 9 80 14.5t80 5.5h612l-13 -102q-2 -18 -12 -37t-25 -34t-35.5 -24.5t-44.5 -9.5h-983l19 154q71 16 111 58.5t51 127.5l34 276h-159l13 99q3 23 24 41.5t51 18.5h91l29 247 q11 96 53.5 182.5t112 151t164.5 102.5t213 38q88 0 153.5 -20t113 -55.5t79.5 -84t52 -105.5l-106 -64q-30 -15 -58 -15q-17 0 -33.5 7t-28.5 25q-18 25 -35 44.5t-38.5 33.5t-51 21t-71.5 7q-54 0 -100 -18.5t-81.5 -52.5t-58 -83.5t-29.5 -111.5l-30 -249h458l-11 -97v0z " /> +<glyph unicode="¤" d="M255 689q0 54 14 103t39 92l-155 155l127 125l154 -153q43 27 93.5 41.5t105.5 14.5q53 0 102 -14t92 -39l156 155l127 -126l-156 -154q27 -43 42.5 -94t15.5 -106q0 -54 -14 -102t-40 -91l156 -156l-128 -126l-155 154q-43 -27 -93 -41.5t-105 -14.5q-53 0 -102 13.5 t-92 39.5l-155 -156l-127 127l154 153q-27 43 -41.5 94t-14.5 106zM442 689q0 -39 15 -74t41 -61.5t61 -41.5t74 -15q40 0 75 15t61.5 41.5t41.5 61.5t15 74q0 41 -15 76.5t-41.5 61.5t-61.5 41.5t-75 15.5q-39 0 -74 -15.5t-61 -41.5t-41 -61.5t-15 -76.5z" /> +<glyph unicode="¥" d="M156 646h286l-307 834h205q33 0 53 -17t28 -44l169 -511q14 -43 21 -80.5t13 -74.5q12 37 28 74.5t40 80.5l293 511q13 24 37.5 42.5t56.5 18.5h206l-513 -834h288l-17 -135h-329l-13 -98h329l-16 -137h-330l-34 -276h-243l33 276h-330l18 137h329l11 98h-329z" /> +<glyph unicode="¦" horiz-adv-x="614" d="M147 1584h197v-828h-197v828zM147 484h197v-827h-197v827z" /> +<glyph unicode="§" horiz-adv-x="952" d="M876 1278q-11 -15 -23 -22.5t-29 -7.5q-18 0 -36.5 11t-42 23t-55 23t-74.5 11q-41 0 -73 -11.5t-54 -30.5t-34 -44.5t-12 -52.5q0 -30 20 -53.5t52.5 -44.5t73.5 -40.5t84.5 -41t84.5 -47.5t73 -59t52 -75.5t20 -96.5q0 -91 -44 -167t-141 -121q34 -33 55 -76t21 -100 q0 -80 -29.5 -149t-85 -120.5t-136.5 -80.5t-186 -29q-50 0 -97 10t-89 26.5t-77 40t-59 51.5l68 92q12 17 27.5 26t39.5 9q23 0 40.5 -13.5t41 -28.5t58 -28.5t89.5 -13.5q83 0 129 41.5t46 109.5q0 38 -19.5 65t-52.5 49t-75 40.5t-86 38.5t-86 44t-75 56.5t-52.5 75.5 t-19.5 102q0 93 48 165.5t145 113.5q-34 35 -55 81t-21 109q0 72 27.5 136t79.5 113.5t128.5 78t174.5 28.5q102 0 180.5 -35.5t124.5 -92.5zM330 730q0 -40 24.5 -69t63.5 -53t87 -46.5t96 -48.5q44 25 63 59t19 76q0 41 -23.5 71t-61.5 53.5t-85 45t-94 46.5 q-49 -28 -69 -60t-20 -74z" /> +<glyph unicode="¨" horiz-adv-x="605" d="M357 1346q0 -29 -11 -54t-31 -43.5t-46 -29.5t-56 -11q-28 0 -53 11t-44 29.5t-30 43.5t-11 54q0 30 11 55.5t30 45t44 31t53 11.5q30 0 56 -11.5t46 -31t31 -45t11 -55.5zM739 1346q0 -29 -11 -54t-30 -43.5t-45 -29.5t-56 -11q-29 0 -54.5 11t-44.5 29.5t-30 43.5 t-11 54q0 30 11 55.5t30 45t44.5 31t54.5 11.5q30 0 56 -11.5t45 -31t30 -45t11 -55.5z" /> +<glyph unicode="©" horiz-adv-x="1620" d="M1070 524q11 0 20.5 -4.5t15.5 -12.5l84 -89q-57 -73 -144.5 -111.5t-204.5 -38.5q-102 0 -185.5 36.5t-142 100.5t-90.5 150.5t-32 187.5q0 104 36 191.5t99.5 150.5t149 98t185.5 35q114 0 196 -38.5t137 -98.5l-67 -91q-6 -8 -16.5 -16t-27.5 -8t-32.5 10t-37 22.5 t-54.5 22.5t-86 10q-61 0 -108.5 -20t-81 -57.5t-51 -90.5t-17.5 -120q0 -70 18 -123t49.5 -89t75 -55t95.5 -19q50 0 82.5 8t55 19.5t39.5 22.5t40 17zM83 740q0 104 27 201t76.5 181t118.5 153.5t152.5 118.5t179.5 76t201 27q104 0 201 -27t181 -76t153 -118.5 t118 -153.5t76 -180.5t27 -201.5q0 -103 -27 -200t-76 -180.5t-118 -152.5t-153 -118t-181 -76t-201 -27q-103 0 -200 27t-180.5 76t-152.5 118t-118.5 152.5t-76.5 180t-27 200.5zM221 740q0 -133 47.5 -248.5t130.5 -201t196 -135t243 -49.5q87 0 166.5 23t149 63.5 t126 98t96.5 128t62 151.5t22 170t-22 171t-62 153.5t-96.5 129t-126 99t-149 64t-166.5 22.5q-86 0 -165.5 -22.5t-148 -64t-124.5 -99t-96 -129t-61.5 -153.5t-21.5 -171z" /> +<glyph unicode="ª" horiz-adv-x="657" d="M552 861q-24 0 -35 7.5t-19 28.5l-8 37q-25 -20 -47 -35.5t-45 -25.5t-48 -15t-56 -5q-73 0 -115.5 38t-42.5 108q0 39 17 78.5t59.5 72t114 53.5t182.5 24l3 43q0 19 -3 35.5t-11.5 28.5t-21.5 18.5t-35 6.5q-31 0 -51.5 -8t-37.5 -16.5t-33 -16t-35 -7.5q-18 0 -29 9.5 t-17 21.5l-25 58q59 52 126.5 75.5t140.5 23.5q47 0 85 -17t64.5 -45.5t41 -67t14.5 -82.5v-7.5t-1.5 -21t-4.5 -43t-8.5 -74t-15 -115.5t-21.5 -165h-82zM365 973q35 0 62.5 13.5t57.5 42.5l11 90q-54 -2 -90.5 -9.5t-58.5 -20.5t-31.5 -30.5t-9.5 -37.5q0 -27 15.5 -37.5 t43.5 -10.5z" /> +<glyph unicode="«" horiz-adv-x="943" d="M124 535l5 30l292 405l75 -38q33 -13 32 -45q0 -11 -5.5 -23.5t-13.5 -26.5l-157 -245q-17 -26 -38 -43q8 -7 14.5 -18t12.5 -23l97 -245q8 -19 8 -36q0 -42 -44 -61l-85 -37zM440 535l5 30l292 405l75 -38q33 -13 33 -45q0 -11 -5.5 -23.5t-14.5 -26.5l-156 -245 q-17 -26 -38 -43q8 -7 14 -18t12 -23l98 -245q8 -19 8 -36q0 -42 -44 -61l-85 -37z" /> +<glyph unicode="¬" d="M175 778h904l-58 -471h-207l36 290h-696z" /> +<glyph unicode="­" horiz-adv-x="679" d="M121 720h492l-25 -204h-492z" /> +<glyph unicode="®" horiz-adv-x="1620" d="M81 740q0 157 59.5 294.5t161.5 240.5t239.5 162.5t294.5 59.5q104 0 201 -27t181 -76t153 -118.5t118 -153.5t76 -180.5t27 -201.5q0 -103 -27 -200t-76 -180.5t-118 -152.5t-153 -118t-181 -76t-201 -27t-200.5 27t-180.5 76t-153 118t-118 152.5t-76 180t-27 200.5z M218 740q0 -133 47.5 -248.5t131 -201t196.5 -135t243 -49.5q87 0 166.5 23t149 63.5t126 98t96.5 128t62 151.5t22 170t-22 171t-62 153.5t-96.5 129t-126 99t-149 64t-166.5 22.5t-166.5 -22.5t-148 -64t-124.5 -99t-96 -129t-61.5 -153.5t-21.5 -171zM721 616v-332h-219 v918h328q191 0 280.5 -68.5t89.5 -196.5q0 -91 -47 -159t-146 -99q24 -13 39 -33.5t30 -47.5l186 -314h-211q-45 0 -64 33l-148 270q-8 15 -21.5 22t-40.5 7h-56zM721 773h91q53 0 86.5 9t52.5 26t26 43t7 58t-6 56t-23 40t-47 23.5t-78 7.5h-109v-263z" /> +<glyph unicode="¯" horiz-adv-x="605" d="M132 1402h566l-19 -157h-566z" /> +<glyph unicode="°" horiz-adv-x="802" d="M130 1150q0 73 27 137t75 111t112.5 74t138.5 27q75 0 140 -27t112.5 -74t75.5 -111t28 -137q0 -71 -28 -134.5t-75.5 -111t-112.5 -75t-140 -27.5t-139 27.5t-112 75t-75 111t-27 134.5zM305 1148q0 -38 13.5 -71t37.5 -57t56 -37.5t71 -13.5q38 0 70.5 13.5t56.5 37.5 t37 57t13 71q0 39 -13 72t-37 58t-56.5 39t-70.5 14q-39 0 -71 -14t-56 -39t-37.5 -58t-13.5 -72z" /> +<glyph unicode="±" d="M785 1266l-45 -366h401l-23 -181h-400l-43 -352h-198l43 352h-397l20 181h400l45 366h197zM66 263h996l-23 -181h-995z" /> +<glyph unicode="²" horiz-adv-x="681" d="M500 1687q54 0 95.5 -15t69.5 -41t42.5 -62t14.5 -78q0 -47 -15.5 -86t-41.5 -73.5t-60 -66t-70 -64.5l-155 -140q30 8 58.5 13t51.5 5h142q52 0 52 -45q0 -1 -1.5 -13.5t-3 -27t-2.5 -27.5t-1 -14l-4 -30h-552l8 57q2 16 10.5 34.5t26.5 34.5l242 213q29 25 53.5 51 t43 53.5t29.5 54.5t11 53q0 33 -19 53t-52 20q-35 0 -58 -18.5t-42 -49.5q-11 -19 -25 -28t-37 -9q-5 0 -11.5 0.5t-13.5 1.5l-95 15q15 58 44.5 101t69.5 71.5t89.5 42.5t105.5 14z" /> +<glyph unicode="³" horiz-adv-x="681" d="M520 1687q53 0 94.5 -15t70 -39.5t42.5 -57.5t14 -69q0 -70 -30 -115t-100 -70q52 -18 77.5 -51.5t25.5 -86.5q0 -69 -27 -119.5t-70 -84t-96 -50t-106 -16.5q-55 0 -98 11t-73.5 35t-51 63t-32.5 95l81 33q18 7 39 7q38 0 49 -28q4 -11 10.5 -23.5t17.5 -23.5t27 -17.5 t40 -6.5q52 0 82.5 31.5t30.5 77.5q0 44 -31.5 62t-110.5 18l16 122q87 1 122 24.5t35 79.5q0 33 -19 51.5t-55 18.5q-39 0 -62.5 -17t-38.5 -46q-13 -20 -25.5 -29.5t-32.5 -9.5q-5 0 -11.5 0.5t-13.5 1.5l-89 15q15 58 44.5 101t69 71.5t86.5 42.5t99 14z" /> +<glyph unicode="´" horiz-adv-x="605" d="M760 1496l-268 -267q-20 -20 -39 -27.5t-46 -7.5h-146l164 249q17 27 38 40t60 13h237z" /> +<glyph unicode="µ" horiz-adv-x="1075" d="M415 1050q-22 -175 -37.5 -296t-25 -200t-14.5 -122.5t-7.5 -64.5t-3 -26t-0.5 -7q0 -76 34 -117.5t103 -41.5q57 0 111 28t106 79l96 768h243l-129 -1050h-150q-46 0 -55 45l-7 83q-33 -31 -62.5 -53t-60 -35.5t-62 -20t-66.5 -6.5q-52 0 -93.5 17t-71.5 49 q2 -14 2 -27.5v-27.5q0 -30 -2 -60t-5 -56l-31 -253h-121q-46 0 -71 22t-25 63v8t1 9l160 1293h244z" /> +<glyph unicode="¶" horiz-adv-x="1434" d="M1522 1481l-26 -212h-220l-182 -1483h-221l182 1483h-241l-181 -1483h-221l105 859q-96 0 -174 27t-132 76.5t-84 117t-30 148.5q0 95 38 180t106.5 149t165 101t213.5 37h902z" /> +<glyph unicode="·" horiz-adv-x="572" d="M114 609q0 40 15 75.5t41.5 61.5t61 41t74.5 15q41 0 76.5 -15t61.5 -41t41.5 -61.5t15.5 -75.5t-15.5 -74t-41.5 -60t-61.5 -41t-76.5 -15q-40 0 -74.5 15t-61 41t-41.5 60t-15 74z" /> +<glyph unicode="¸" horiz-adv-x="605" d="M85 -236q7 0 13.5 -2.5t15 -5.5t18.5 -5.5t25 -2.5q32 0 48 16t16 37q0 27 -30.5 40t-97.5 22l61 151h152l-28 -73q75 -19 105.5 -53.5t30.5 -78.5q0 -39 -19 -70t-53 -52.5t-80.5 -32.5t-101.5 -11q-39 0 -72 6t-65 18l33 76q9 21 29 21z" /> +<glyph unicode="¹" horiz-adv-x="681" d="M239 1049h142l44 365l11 50l-90 -65q-10 -7 -19.5 -10t-17.5 -3q-14 0 -24.5 6.5t-15.5 13.5l-45 76l261 197h148l-78 -630h105l-15 -127h-423z" /> +<glyph unicode="º" horiz-adv-x="734" d="M490 1498q62 0 112.5 -19.5t86 -56t55 -87.5t19.5 -113q0 -86 -26.5 -155t-73.5 -117.5t-111.5 -74.5t-139.5 -26q-63 0 -114.5 19.5t-87.5 56t-55.5 88t-19.5 115.5q0 85 26.5 153.5t74.5 116.5t112.5 74t141.5 26zM429 991q77 0 110.5 61t33.5 170q0 65 -25 99.5 t-75 34.5q-44 0 -72.5 -17t-45.5 -47t-23.5 -72.5t-6.5 -94.5q0 -66 25.5 -100t78.5 -34z" /> +<glyph unicode="»" horiz-adv-x="943" d="M516 565l-3 -30l-292 -406l-75 37q-32 15 -31 46q0 23 17 51l159 245q8 12 17 23t19 18q-17 16 -26 43l-99 245q-6 16 -6 32q0 42 45 63l84 38zM833 565l-4 -30l-291 -406l-75 37q-32 15 -32 46q0 23 18 51l158 245q8 12 17.5 23t18.5 18q-17 16 -26 43l-99 245 q-6 16 -6 32q0 42 45 63l84 38z" /> +<glyph unicode="¼" horiz-adv-x="1510" d="M471 73q-30 -43 -62 -58t-71 -15h-100l960 1396q29 41 62.5 62.5t78.5 21.5h101zM1332 302h98l-12 -102q-2 -12 -11.5 -22.5t-26.5 -10.5h-64l-21 -167h-147l20 167h-297q-24 0 -36 10.5t-13 26.5l-7 87l405 466h169zM201 850h142l43 359q2 17 4.5 29.5t7.5 27.5l-90 -66 q-16 -12 -36 -12q-14 0 -25 7t-19 18l-42 70l261 198h148l-78 -631h106l-16 -127h-423zM1206 469q3 25 8.5 54t13.5 60l-238 -281h196z" /> +<glyph unicode="½" horiz-adv-x="1510" d="M437 73q-30 -43 -62 -58t-71 -15h-100l960 1396q29 41 63 62.5t79 21.5h100zM1198 765q54 0 95.5 -15t70 -41t42.5 -62t14 -78q0 -47 -15 -86t-41.5 -73t-60 -66t-70.5 -64l-155 -141q30 8 58.5 13.5t52.5 5.5h141q52 0 52 -45q0 -2 -3 -30l-9 -83h-552l8 57q2 16 11 35 t26 34l242 213q29 25 54 51.5t43.5 53.5t29 54t10.5 53q0 33 -19 53.5t-52 20.5q-35 0 -58.5 -18.5t-41.5 -50.5q-10 -19 -24 -28t-36 -9q-10 0 -32 3l-89 15q15 58 44.5 100.5t69 71t89 42.5t105.5 14zM208 850h142l43 359q2 17 4.5 29.5t8.5 27.5l-91 -66q-16 -12 -35 -12 q-14 0 -25.5 7t-18.5 18l-42 70l261 198h147l-78 -631h106l-16 -127h-423z" /> +<glyph unicode="¾" horiz-adv-x="1510" d="M487 73q-30 -43 -62 -58t-71 -15h-100l960 1396q29 41 63 62.5t79 21.5h100zM1345 302h97l-11 -102q-2 -12 -12 -22.5t-26 -10.5h-65l-20 -167h-148l21 167h-297q-24 0 -36 10.5t-13 26.5l-8 87l405 466h169zM497 1488q53 0 94.5 -15t69.5 -39.5t42.5 -57.5t14.5 -68 q0 -70 -30.5 -115.5t-99.5 -70.5q52 -18 77 -51.5t25 -86.5q0 -69 -26.5 -119.5t-69.5 -83.5t-96.5 -49.5t-106.5 -16.5q-55 0 -97.5 10.5t-73.5 34.5t-51.5 63t-32.5 96l81 32q22 8 39 8q38 0 49 -28q11 -30 32 -51t63 -21q52 0 82.5 32t30.5 78q0 44 -31 62t-110 18 l15 121q87 1 122.5 25t35.5 79q0 33 -19 52t-56 19q-39 0 -62.5 -17.5t-37.5 -46.5q-10 -20 -23.5 -29.5t-34.5 -9.5q-5 0 -13 0.5t-25 3.5l-76 14q15 58 44 100.5t68.5 71t87 42.5t99.5 14zM1219 469q3 25 8 54t13 60l-238 -281h196z" /> +<glyph unicode="¿" horiz-adv-x="798" d="M692 -210q-37 -30 -78.5 -57t-89 -47.5t-100.5 -32.5t-115 -12q-76 0 -136.5 20.5t-103.5 58.5t-66 93.5t-23 124.5q0 82 23.5 140t58.5 100t78 73t82.5 57.5t69.5 53.5t40 63l42 150h166v-167q0 -46 -23.5 -81t-59 -65.5t-76.5 -58.5t-76.5 -59.5t-59 -70.5t-23.5 -90 q0 -36 11 -63.5t29 -45.5t42 -27.5t51 -9.5q52 0 90.5 13.5t66.5 29.5t47.5 29t34.5 13q34 0 46 -28zM336 913q0 32 11.5 60.5t32 49t49.5 33t61 12.5q33 0 61.5 -12.5t49.5 -33t33 -49t12 -60.5q0 -33 -12 -61t-33 -48.5t-49.5 -32t-61.5 -11.5t-61.5 11.5t-49 32t-32 48.5 t-11.5 61z" /> +<glyph unicode="À" horiz-adv-x="1313" d="M1267 0h-206q-35 0 -55.5 16.5t-25.5 43.5l-61 310h-552l-138 -310q-11 -24 -36.5 -42t-57.5 -18h-209l716 1481h271zM450 557h431l-101 507q-8 37 -16 78t-15 92q-19 -51 -38.5 -94.5t-35.5 -76.5zM681 1832q19 0 32.5 -1.5t23.5 -6t19 -12t20 -19.5l157 -207h-207 q-28 0 -43 9t-34 26l-240 211h272z" /> +<glyph unicode="Á" horiz-adv-x="1313" d="M1267 0h-206q-35 0 -55.5 16.5t-25.5 43.5l-61 310h-552l-138 -310q-11 -24 -36.5 -42t-57.5 -18h-209l716 1481h271zM450 557h431l-101 507q-8 37 -16 78t-15 92q-19 -51 -38.5 -94.5t-35.5 -76.5zM1231 1832l-291 -211q-24 -17 -46 -26t-49 -9h-198l209 207 q12 12 23 20t23 12t25.5 5.5t34.5 1.5h269z" /> +<glyph unicode="Â" horiz-adv-x="1313" d="M1267 0h-206q-35 0 -55.5 16.5t-25.5 43.5l-61 310h-552l-138 -310q-11 -24 -36.5 -42t-57.5 -18h-209l716 1481h271zM450 557h431l-101 507q-8 37 -16 78t-15 92q-19 -51 -38.5 -94.5t-35.5 -76.5zM1135 1586h-185q-14 0 -30 5t-27 12l-81 71q-3 3 -7.5 6.5t-7.5 8.5 l-16 -15l-99 -71q-11 -8 -29 -12.5t-34 -4.5h-183l255 223h244z" /> +<glyph unicode="Ã" horiz-adv-x="1313" d="M1267 0h-206q-35 0 -55.5 16.5t-25.5 43.5l-61 310h-552l-138 -310q-11 -24 -36.5 -42t-57.5 -18h-209l716 1481h271zM450 557h431l-101 507q-8 37 -16 78t-15 92q-19 -51 -38.5 -94.5t-35.5 -76.5zM924 1736q25 0 42.5 16t21.5 49h133q-6 -49 -23.5 -90.5t-44.5 -71.5 t-63 -46.5t-79 -16.5q-34 0 -64.5 11.5t-57.5 25.5t-50.5 26t-42.5 12q-25 0 -41.5 -18t-20.5 -52h-136q6 50 24 92t45.5 72t63 46.5t77.5 16.5q35 0 66 -11t58 -25t50 -25t42 -11z" /> +<glyph unicode="Ä" horiz-adv-x="1313" d="M1267 0h-206q-35 0 -55.5 16.5t-25.5 43.5l-61 310h-552l-138 -310q-11 -24 -36.5 -42t-57.5 -18h-209l716 1481h271zM450 557h431l-101 507q-8 37 -16 78t-15 92q-19 -51 -38.5 -94.5t-35.5 -76.5zM723 1706q0 -25 -10.5 -47t-27.5 -38t-40 -26t-48 -10t-47 10t-39 26 t-26.5 38t-9.5 47q0 26 9.5 49t26.5 39.5t39 26.5t47 10q26 0 48.5 -10t39.5 -26.5t27.5 -39.5t10.5 -49zM1082 1706q0 -25 -9.5 -47t-26.5 -38t-39.5 -26t-48.5 -10t-47.5 10t-38.5 26t-27 38t-10 47q0 26 10 49t27 39.5t39 26.5t47 10q26 0 48.5 -10t39.5 -26.5 t26.5 -39.5t9.5 -49z" /> +<glyph unicode="Å" horiz-adv-x="1313" d="M1267 0h-206q-35 0 -55.5 16.5t-25.5 43.5l-61 310h-552l-138 -310q-11 -24 -36.5 -42t-57.5 -18h-209l716 1481h271zM450 557h431l-101 507q-8 37 -16 78t-15 92q-19 -51 -38.5 -94.5t-35.5 -76.5zM575 1723q0 44 17.5 80t46.5 61.5t67 40t80 14.5q43 0 82.5 -14.5 t68.5 -40t46.5 -61.5t17.5 -80q0 -43 -17.5 -78t-46.5 -60.5t-68.5 -39.5t-82.5 -14q-42 0 -80 14t-67 39.5t-46.5 60.5t-17.5 78zM697 1723q0 -40 23.5 -65.5t68.5 -25.5q41 0 66 25.5t25 65.5q0 43 -25 68t-66 25q-45 0 -68.5 -25t-23.5 -68z" /> +<glyph unicode="Æ" horiz-adv-x="1752" d="M761 1481h1031l-26 -212h-658v-422h478l-25 -204h-453v-431h528l-26 -212h-753v370h-478l-169 -310q-13 -24 -40.5 -42t-59.5 -18h-207zM481 557h376v707q-18 -46 -36.5 -85.5t-39.5 -74.5z" /> +<glyph unicode="Ç" horiz-adv-x="1235" d="M508 -236q7 0 13.5 -2.5t15 -5.5t18.5 -5.5t25 -2.5q32 0 48 16t16 37q0 27 -30.5 40t-97.5 22l50 126q-117 14 -208.5 67.5t-154 138t-95 195t-32.5 238.5t27.5 242t78.5 211t123 173.5t159 131t188 83t210 28.5q81 0 147.5 -15t121 -41.5t97.5 -64t78 -83.5l-93 -110 q-10 -12 -23.5 -21.5t-34.5 -9.5q-23 0 -43 18.5t-51.5 40.5t-81 40.5t-130.5 18.5q-106 0 -197.5 -43.5t-159 -124.5t-106 -195t-38.5 -257q0 -103 26 -185t72.5 -139t110 -87t137.5 -30q62 0 109 9.5t81.5 25t59 32.5t43 32.5t32.5 25t29 9.5q12 0 20 -5t13 -10l94 -116 q-87 -99 -200 -156.5t-257 -68.5l-18 -46q75 -19 106 -53.5t31 -78.5q0 -39 -19 -70t-53 -52.5t-80.5 -32.5t-101.5 -11q-39 0 -72 6t-66 18l34 76q9 21 29 21z" /> +<glyph unicode="È" horiz-adv-x="1076" d="M1117 1481l-26 -212h-596l-52 -421h468l-25 -204h-468l-53 -432h598l-27 -212h-864l182 1481h863zM595 1832q19 0 32.5 -1.5t23.5 -6t19 -12t20 -19.5l157 -207h-207q-28 0 -43 9t-34 26l-240 211h272z" /> +<glyph unicode="É" horiz-adv-x="1076" d="M1117 1481l-26 -212h-596l-52 -421h468l-25 -204h-468l-53 -432h598l-27 -212h-864l182 1481h863zM1121 1832l-291 -211q-24 -17 -46 -26t-49 -9h-198l209 207q12 12 23 20t23 12t25.5 5.5t34.5 1.5h269z" /> +<glyph unicode="Ê" horiz-adv-x="1076" d="M1117 1481l-26 -212h-596l-52 -421h468l-25 -204h-468l-53 -432h598l-27 -212h-864l182 1481h863zM1049 1586h-185q-14 0 -30 5t-27 12l-81 71q-3 3 -7.5 6.5t-7.5 8.5l-16 -15l-99 -71q-11 -8 -29 -12.5t-34 -4.5h-183l255 223h244z" /> +<glyph unicode="Ë" horiz-adv-x="1076" d="M1117 1481l-26 -212h-596l-52 -421h468l-25 -204h-468l-53 -432h598l-27 -212h-864l182 1481h863zM637 1706q0 -25 -10.5 -47t-27.5 -38t-40 -26t-48 -10t-47 10t-39 26t-26.5 38t-9.5 47q0 26 9.5 49t26.5 39.5t39 26.5t47 10q26 0 48.5 -10t39.5 -26.5t27.5 -39.5 t10.5 -49zM996 1706q0 -25 -9.5 -47t-26.5 -38t-39.5 -26t-48.5 -10t-47.5 10t-38.5 26t-27 38t-10 47q0 26 10 49t27 39.5t39 26.5t47 10q26 0 48.5 -10t39.5 -26.5t26.5 -39.5t9.5 -49z" /> +<glyph unicode="Ì" horiz-adv-x="593" d="M369 0h-268l182 1481h267zM325 1832q19 0 32.5 -1.5t23.5 -6t19 -12t20 -19.5l157 -207h-207q-28 0 -43 9t-34 26l-240 211h272z" /> +<glyph unicode="Í" horiz-adv-x="593" d="M369 0h-268l182 1481h267zM851 1832l-291 -211q-24 -17 -46 -26t-49 -9h-198l209 207q12 12 23 20t23 12t25.5 5.5t34.5 1.5h269z" /> +<glyph unicode="Î" horiz-adv-x="593" d="M369 0h-268l182 1481h267zM779 1586h-185q-14 0 -30 5t-27 12l-81 71q-3 3 -7.5 6.5t-7.5 8.5l-16 -15l-99 -71q-11 -8 -29 -12.5t-34 -4.5h-183l255 223h244z" /> +<glyph unicode="Ï" horiz-adv-x="593" d="M369 0h-268l182 1481h267zM367 1706q0 -25 -10.5 -47t-27.5 -38t-40 -26t-48 -10t-47 10t-39 26t-26.5 38t-9.5 47q0 26 9.5 49t26.5 39.5t39 26.5t47 10q26 0 48.5 -10t39.5 -26.5t27.5 -39.5t10.5 -49zM726 1706q0 -25 -9.5 -47t-26.5 -38t-39.5 -26t-48.5 -10 t-47.5 10t-38.5 26t-27 38t-10 47q0 26 10 49t27 39.5t39 26.5t47 10q26 0 48.5 -10t39.5 -26.5t26.5 -39.5t9.5 -49z" /> +<glyph unicode="Ð" horiz-adv-x="1489" d="M90 820h166l81 661h522q141 0 254.5 -48.5t192.5 -133.5t121 -202.5t42 -256.5q0 -184 -59 -339t-164.5 -266t-250.5 -173t-316 -62h-522l81 669h-168zM1197 834q0 99 -24.5 180t-71 137.5t-114 87.5t-153.5 31h-255l-56 -450h337l-17 -151h-338l-55 -457h255 q112 0 202.5 43t155 123.5t99.5 196t35 259.5z" /> +<glyph unicode="Ñ" horiz-adv-x="1425" d="M393 1481q17 0 29 -1.5t21.5 -6.5t16.5 -13t15 -22l577 -1011q2 30 4.5 58t5.5 53l116 943h234l-183 -1481h-136q-31 0 -52.5 9.5t-35.5 36.5l-574 1011q-2 -25 -4 -48t-4 -43l-117 -966h-234l182 1481h139v0zM975 1736q25 0 42.5 16t21.5 49h133q-6 -49 -23.5 -90.5 t-44.5 -71.5t-63 -46.5t-79 -16.5q-34 0 -64.5 11.5t-57.5 25.5t-50.5 26t-42.5 12q-25 0 -41.5 -18t-20.5 -52h-136q6 50 24 92t45.5 72t63 46.5t77.5 16.5q35 0 66 -11t58 -25t50 -25t42 -11z" /> +<glyph unicode="Ò" horiz-adv-x="1499" d="M1481 840q0 -123 -27.5 -234t-78 -206.5t-121.5 -172t-159.5 -131t-192 -83.5t-217.5 -29q-141 0 -254 50t-192 138t-121 208t-42 260q0 123 27 234t77.5 206.5t122 172t160 131.5t192 84t217.5 29q141 0 254 -50t192 -138t121 -208.5t42 -260.5zM1208 834q0 100 -25 182 t-72.5 140t-116 90t-154.5 32q-111 0 -201.5 -45t-155 -128t-100 -200t-35.5 -259q0 -100 24.5 -182t72 -140t115.5 -89t155 -31q112 0 203 45t155.5 127t99.5 198.5t35 259.5zM771 1832q19 0 32.5 -1.5t23.5 -6t19 -12t20 -19.5l157 -207h-207q-28 0 -43 9t-34 26l-240 211 h272z" /> +<glyph unicode="Ó" horiz-adv-x="1499" d="M1481 840q0 -123 -27.5 -234t-78 -206.5t-121.5 -172t-159.5 -131t-192 -83.5t-217.5 -29q-141 0 -254 50t-192 138t-121 208t-42 260q0 123 27 234t77.5 206.5t122 172t160 131.5t192 84t217.5 29q141 0 254 -50t192 -138t121 -208.5t42 -260.5zM1208 834q0 100 -25 182 t-72.5 140t-116 90t-154.5 32q-111 0 -201.5 -45t-155 -128t-100 -200t-35.5 -259q0 -100 24.5 -182t72 -140t115.5 -89t155 -31q112 0 203 45t155.5 127t99.5 198.5t35 259.5zM1297 1832l-291 -211q-24 -17 -46 -26t-49 -9h-198l209 207q12 12 23 20t23 12t25.5 5.5 t34.5 1.5h269z" /> +<glyph unicode="Ô" horiz-adv-x="1499" d="M1481 840q0 -123 -27.5 -234t-78 -206.5t-121.5 -172t-159.5 -131t-192 -83.5t-217.5 -29q-141 0 -254 50t-192 138t-121 208t-42 260q0 123 27 234t77.5 206.5t122 172t160 131.5t192 84t217.5 29q141 0 254 -50t192 -138t121 -208.5t42 -260.5zM1208 834q0 100 -25 182 t-72.5 140t-116 90t-154.5 32q-111 0 -201.5 -45t-155 -128t-100 -200t-35.5 -259q0 -100 24.5 -182t72 -140t115.5 -89t155 -31q112 0 203 45t155.5 127t99.5 198.5t35 259.5zM1225 1586h-185q-14 0 -30 5t-27 12l-81 71q-3 3 -7.5 6.5t-7.5 8.5l-16 -15l-99 -71 q-11 -8 -29 -12.5t-34 -4.5h-183l255 223h244z" /> +<glyph unicode="Õ" horiz-adv-x="1499" d="M1481 840q0 -123 -27.5 -234t-78 -206.5t-121.5 -172t-159.5 -131t-192 -83.5t-217.5 -29q-141 0 -254 50t-192 138t-121 208t-42 260q0 123 27 234t77.5 206.5t122 172t160 131.5t192 84t217.5 29q141 0 254 -50t192 -138t121 -208.5t42 -260.5zM1208 834q0 100 -25 182 t-72.5 140t-116 90t-154.5 32q-111 0 -201.5 -45t-155 -128t-100 -200t-35.5 -259q0 -100 24.5 -182t72 -140t115.5 -89t155 -31q112 0 203 45t155.5 127t99.5 198.5t35 259.5zM1014 1736q25 0 42.5 16t21.5 49h133q-6 -49 -23.5 -90.5t-44.5 -71.5t-63 -46.5t-79 -16.5 q-34 0 -64.5 11.5t-57.5 25.5t-50.5 26t-42.5 12q-25 0 -41.5 -18t-20.5 -52h-136q6 50 24 92t45.5 72t63 46.5t77.5 16.5q35 0 66 -11t58 -25t50 -25t42 -11z" /> +<glyph unicode="Ö" horiz-adv-x="1499" d="M1481 840q0 -123 -27.5 -234t-78 -206.5t-121.5 -172t-159.5 -131t-192 -83.5t-217.5 -29q-141 0 -254 50t-192 138t-121 208t-42 260q0 123 27 234t77.5 206.5t122 172t160 131.5t192 84t217.5 29q141 0 254 -50t192 -138t121 -208.5t42 -260.5zM1208 834q0 100 -25 182 t-72.5 140t-116 90t-154.5 32q-111 0 -201.5 -45t-155 -128t-100 -200t-35.5 -259q0 -100 24.5 -182t72 -140t115.5 -89t155 -31q112 0 203 45t155.5 127t99.5 198.5t35 259.5zM813 1706q0 -25 -10.5 -47t-27.5 -38t-40 -26t-48 -10t-47 10t-39 26t-26.5 38t-9.5 47 q0 26 9.5 49t26.5 39.5t39 26.5t47 10q26 0 48.5 -10t39.5 -26.5t27.5 -39.5t10.5 -49zM1172 1706q0 -25 -9.5 -47t-26.5 -38t-39.5 -26t-48.5 -10t-47.5 10t-38.5 26t-27 38t-10 47q0 26 10 49t27 39.5t39 26.5t47 10q26 0 48.5 -10t39.5 -26.5t26.5 -39.5t9.5 -49z" /> +<glyph unicode="×" d="M1120 1023l-377 -335l308 -350l-144 -128l-308 350l-395 -352l-113 128l395 352l-295 337l145 128l295 -337l376 335z" /> +<glyph unicode="Ø" horiz-adv-x="1499" d="M1481 840q0 -123 -27.5 -234t-78 -206.5t-121.5 -172t-159.5 -131t-192 -83.5t-217.5 -29q-93 0 -172 21.5t-146 60.5l-85 -108q-33 -41 -75 -56.5t-80 -15.5h-104l221 280q-82 89 -125 210t-43 264q0 123 27 234t77.5 206.5t122 172t160 131.5t192 84t217.5 29 q101 0 187.5 -26t157.5 -74l66 84q14 18 26.5 30.5t25.5 20t28.5 11t37.5 3.5h136l-204 -257q72 -88 110 -202t38 -247zM348 646q0 -81 16 -148.5t46 -121.5l654 827q-45 36 -101 55.5t-123 19.5q-111 0 -201.5 -45t-155 -128t-100 -200t-35.5 -259zM1208 834 q0 69 -11.5 128.5t-34.5 109.5l-644 -815q83 -53 197 -53q112 0 203 45t155.5 127t99.5 198.5t35 259.5z" /> +<glyph unicode="Ù" horiz-adv-x="1370" d="M650 213q72 0 132 27t105 77t74 119.5t39 154.5l110 890h265l-108 -890q-16 -131 -69.5 -242.5t-137 -192.5t-194.5 -126.5t-243 -45.5q-120 0 -213.5 37t-157.5 105t-97 161.5t-33 206.5q0 46 6 97l108 890h266l-110 -889q-2 -19 -3 -37.5t-1 -36.5q0 -70 17 -126 t50 -96t82.5 -61.5t112.5 -21.5zM711 1831q19 0 32.5 -1.5t23.5 -6t19 -12t20 -19.5l157 -207h-207q-28 0 -43 9t-34 26l-240 211h272z" /> +<glyph unicode="Ú" horiz-adv-x="1370" d="M650 213q72 0 132 27t105 77t74 119.5t39 154.5l110 890h265l-108 -890q-16 -131 -69.5 -242.5t-137 -192.5t-194.5 -126.5t-243 -45.5q-120 0 -213.5 37t-157.5 105t-97 161.5t-33 206.5q0 46 6 97l108 890h266l-110 -889q-2 -19 -3 -37.5t-1 -36.5q0 -70 17 -126 t50 -96t82.5 -61.5t112.5 -21.5zM1237 1831l-291 -211q-24 -17 -46 -26t-49 -9h-198l209 207q12 12 23 20t23 12t25.5 5.5t34.5 1.5h269z" /> +<glyph unicode="Û" horiz-adv-x="1370" d="M650 213q72 0 132 27t105 77t74 119.5t39 154.5l110 890h265l-108 -890q-16 -131 -69.5 -242.5t-137 -192.5t-194.5 -126.5t-243 -45.5q-120 0 -213.5 37t-157.5 105t-97 161.5t-33 206.5q0 46 6 97l108 890h266l-110 -889q-2 -19 -3 -37.5t-1 -36.5q0 -70 17 -126 t50 -96t82.5 -61.5t112.5 -21.5zM1165 1585h-185q-14 0 -30 5t-27 12l-81 71q-3 3 -7.5 6.5t-7.5 8.5l-16 -15l-99 -71q-11 -8 -29 -12.5t-34 -4.5h-183l255 223h244z" /> +<glyph unicode="Ü" horiz-adv-x="1370" d="M650 213q72 0 132 27t105 77t74 119.5t39 154.5l110 890h265l-108 -890q-16 -131 -69.5 -242.5t-137 -192.5t-194.5 -126.5t-243 -45.5q-120 0 -213.5 37t-157.5 105t-97 161.5t-33 206.5q0 46 6 97l108 890h266l-110 -889q-2 -19 -3 -37.5t-1 -36.5q0 -70 17 -126 t50 -96t82.5 -61.5t112.5 -21.5zM753 1705q0 -25 -10.5 -47t-27.5 -38t-40 -26t-48 -10t-47 10t-39 26t-26.5 38t-9.5 47q0 26 9.5 49t26.5 39.5t39 26.5t47 10q26 0 48.5 -10t39.5 -26.5t27.5 -39.5t10.5 -49zM1112 1705q0 -25 -9.5 -47t-26.5 -38t-39.5 -26t-48.5 -10 t-47.5 10t-38.5 26t-27 38t-10 47q0 26 10 49t27 39.5t39 26.5t47 10q26 0 48.5 -10t39.5 -26.5t26.5 -39.5t9.5 -49z" /> +<glyph unicode="Ý" horiz-adv-x="1241" d="M763 577l-72 -577h-266l72 578l-385 903h236q35 0 53.5 -17t28.5 -44l192 -512q14 -37 22.5 -72t14.5 -69q16 34 35.5 68.5t42.5 72.5l319 512q14 24 37 42.5t57 18.5h220zM1194 1830l-291 -211q-24 -17 -46 -26t-49 -9h-198l209 207q12 12 23 20t23 12t25.5 5.5 t34.5 1.5h269z" /> +<glyph unicode="Þ" horiz-adv-x="1182" d="M556 1223h186q124 0 215 -30.5t149.5 -84t87 -128t28.5 -162.5q0 -120 -37.5 -220t-113 -173.5t-187.5 -114.5t-260 -41h-187l-33 -269h-264l182 1481h266zM530 1017l-67 -542h187q79 0 136.5 23.5t95 66t55 101.5t17.5 130q0 50 -14 91t-44 69.5t-74.5 44.5t-105.5 16 h-186z" /> +<glyph unicode="ß" horiz-adv-x="1185" d="M776 1505q104 0 175.5 -31t116 -77.5t64 -102.5t19.5 -105q0 -68 -22 -115.5t-54.5 -82.5t-70.5 -60t-70.5 -48.5t-54.5 -48.5t-22 -59q0 -31 20.5 -54t51 -44.5t67 -45.5t67.5 -57.5t51.5 -80.5t20.5 -112q0 -97 -35.5 -171t-94 -124.5t-134 -76t-156.5 -25.5 q-43 0 -84.5 9.5t-79 27t-69.5 41t-58 51.5l69 93q11 15 27.5 24.5t38.5 9.5t40 -13.5t39.5 -30t49.5 -29.5t69 -13q30 0 56.5 12t46 34t30.5 52t11 63q0 42 -22.5 71.5t-57 53t-73.5 45.5t-73.5 51t-57 68.5t-22.5 98.5q0 69 23.5 116.5t59.5 83t77 64t76.5 59t59 66.5 t23.5 89q0 29 -9.5 56t-30 47t-52.5 32t-79 12q-61 0 -111 -35t-87.5 -92.5t-62 -132.5t-33.5 -155l-106 -870l-52 -193q-14 -50 -44.5 -76.5t-85.5 -26.5h-102l136 1114l-94 17q-27 5 -41 17t-14 35l11 108h170q28 92 79.5 176.5t122.5 149t158.5 103t188.5 38.5z" /> +<glyph unicode="à" horiz-adv-x="1059" d="M879 0h-134q-46 0 -64 21.5t-18 54.5l8 143q-70 -109 -157 -171.5t-191 -62.5q-59 0 -111 23.5t-90.5 70t-60.5 116.5t-22 164t23.5 183.5t67 167.5t105 144t138 113t165 73t186.5 26q71 0 142 -10t140 -37zM422 191q42 0 82.5 29t76 79.5t66.5 119t53 147.5l40 318 q-28 3 -51 3q-85 0 -157.5 -39t-126 -105t-83.5 -153.5t-30 -185.5q0 -111 35 -162t95 -51zM654 1496q39 0 56.5 -13.5t28.5 -39.5l103 -249h-140q-27 0 -43.5 7t-30.5 28l-203 267h229z" /> +<glyph unicode="á" horiz-adv-x="1059" d="M879 0h-134q-46 0 -64 21.5t-18 54.5l8 143q-70 -109 -157 -171.5t-191 -62.5q-59 0 -111 23.5t-90.5 70t-60.5 116.5t-22 164t23.5 183.5t67 167.5t105 144t138 113t165 73t186.5 26q71 0 142 -10t140 -37zM422 191q42 0 82.5 29t76 79.5t66.5 119t53 147.5l40 318 q-28 3 -51 3q-85 0 -157.5 -39t-126 -105t-83.5 -153.5t-30 -185.5q0 -111 35 -162t95 -51zM1065 1496l-268 -267q-20 -20 -39 -27.5t-46 -7.5h-146l164 249q17 27 38 40t60 13h237z" /> +<glyph unicode="â" horiz-adv-x="1059" d="M879 0h-134q-46 0 -64 21.5t-18 54.5l8 143q-70 -109 -157 -171.5t-191 -62.5q-59 0 -111 23.5t-90.5 70t-60.5 116.5t-22 164t23.5 183.5t67 167.5t105 144t138 113t165 73t186.5 26q71 0 142 -10t140 -37zM422 191q42 0 82.5 29t76 79.5t66.5 119t53 147.5l40 318 q-28 3 -51 3q-85 0 -157.5 -39t-126 -105t-83.5 -153.5t-30 -185.5q0 -111 35 -162t95 -51zM1020 1196h-162q-14 0 -27.5 5.5t-19.5 12.5l-83 102q-8 8 -17 20q-6 -6 -12 -11t-11 -9l-111 -102q-8 -7 -21.5 -12.5t-29.5 -5.5h-169l252 284h230z" /> +<glyph unicode="ã" horiz-adv-x="1059" d="M879 0h-134q-46 0 -64 21.5t-18 54.5l8 143q-70 -109 -157 -171.5t-191 -62.5q-59 0 -111 23.5t-90.5 70t-60.5 116.5t-22 164t23.5 183.5t67 167.5t105 144t138 113t165 73t186.5 26q71 0 142 -10t140 -37zM422 191q42 0 82.5 29t76 79.5t66.5 119t53 147.5l40 318 q-28 3 -51 3q-85 0 -157.5 -39t-126 -105t-83.5 -153.5t-30 -185.5q0 -111 35 -162t95 -51zM815 1388q27 0 44 17t25 61h147q-7 -56 -27.5 -101.5t-50.5 -78t-68.5 -50t-81.5 -17.5q-34 0 -62 13t-51.5 29t-44 29.5t-39.5 13.5q-27 0 -44 -18.5t-22 -61.5h-150 q7 56 27.5 101.5t51.5 78.5t69 51t80 18q34 0 62.5 -13.5t52.5 -29.5t44 -29t38 -13z" /> +<glyph unicode="ä" horiz-adv-x="1059" d="M879 0h-134q-46 0 -64 21.5t-18 54.5l8 143q-70 -109 -157 -171.5t-191 -62.5q-59 0 -111 23.5t-90.5 70t-60.5 116.5t-22 164t23.5 183.5t67 167.5t105 144t138 113t165 73t186.5 26q71 0 142 -10t140 -37zM422 191q42 0 82.5 29t76 79.5t66.5 119t53 147.5l40 318 q-28 3 -51 3q-85 0 -157.5 -39t-126 -105t-83.5 -153.5t-30 -185.5q0 -111 35 -162t95 -51zM658 1346q0 -29 -11 -54t-31 -43.5t-46 -29.5t-56 -11q-28 0 -53 11t-44 29.5t-30 43.5t-11 54q0 30 11 55.5t30 45t44 31t53 11.5q30 0 56 -11.5t46 -31t31 -45t11 -55.5z M1040 1346q0 -29 -11 -54t-30 -43.5t-45 -29.5t-56 -11q-29 0 -54.5 11t-44.5 29.5t-30 43.5t-11 54q0 30 11 55.5t30 45t44.5 31t54.5 11.5q30 0 56 -11.5t45 -31t30 -45t11 -55.5z" /> +<glyph unicode="å" horiz-adv-x="1059" d="M879 0h-134q-46 0 -64 21.5t-18 54.5l8 143q-70 -109 -157 -171.5t-191 -62.5q-59 0 -111 23.5t-90.5 70t-60.5 116.5t-22 164t23.5 183.5t67 167.5t105 144t138 113t165 73t186.5 26q71 0 142 -10t140 -37zM422 191q42 0 82.5 29t76 79.5t66.5 119t53 147.5l40 318 q-28 3 -51 3q-85 0 -157.5 -39t-126 -105t-83.5 -153.5t-30 -185.5q0 -111 35 -162t95 -51zM500 1357q0 47 18.5 86t50 66.5t72 43t85.5 15.5q46 0 88.5 -15.5t74 -43t50.5 -66.5t19 -86q0 -46 -19 -84t-50.5 -65t-73.5 -42t-89 -15q-45 0 -85.5 15t-72 42t-50 65t-18.5 84z M637 1357q0 -39 24.5 -65t69.5 -26q41 0 65.5 26t24.5 65q0 43 -24.5 68t-65.5 25q-45 0 -69.5 -25t-24.5 -68z" /> +<glyph unicode="æ" horiz-adv-x="1495" d="M1146 1066q66 0 122 -21t97.5 -58t65 -86t23.5 -104q0 -38 -10.5 -76.5t-37 -74t-70.5 -66.5t-111 -55t-160 -39.5t-216 -18.5q0 -150 55 -218.5t155 -68.5q69 0 112.5 18t75.5 39.5t57 39.5t55 18q12 0 24.5 -5.5t20.5 -17.5l64 -77q-54 -54 -105.5 -94.5t-106.5 -66 t-115.5 -37.5t-131.5 -12q-99 0 -181.5 50t-129.5 154q-35 -54 -79.5 -93t-94 -64t-102 -36.5t-103.5 -11.5q-152 0 -228 65t-76 188q0 69 30 135t101.5 120t191.5 89t299 41q5 46 6.5 65t1.5 31q0 80 -33.5 118t-99.5 38q-55 0 -93.5 -14.5t-69 -32t-55.5 -32.5t-54 -15 q-25 0 -41.5 12.5t-24.5 31.5l-34 79q93 83 190.5 124.5t209.5 41.5q108 0 171.5 -42.5t92.5 -117.5q63 74 148.5 115.5t193.5 41.5zM617 472q-108 -5 -178 -22t-112 -44t-59 -62.5t-17 -76.5q0 -58 30 -87t86 -29q45 0 86 15.5t73 49.5t54.5 85.5t31.5 123.5zM1114 890 q-53 0 -95 -20t-74 -56.5t-53 -87.5t-32 -115q115 9 187.5 26t114 39.5t57 50.5t15.5 57q0 46 -29.5 76t-90.5 30z" /> +<glyph unicode="ç" horiz-adv-x="891" d="M294 -236q7 0 13.5 -2.5t15 -5.5t18.5 -5.5t25 -2.5q32 0 48 16t16 37q0 27 -30.5 40t-97.5 22l51 130q-72 13 -128 49.5t-94.5 91.5t-59 128.5t-20.5 160.5q0 128 41 244t115 205t175 141.5t221 52.5q104 0 177.5 -37t130.5 -110l-81 -97q-8 -10 -20 -17t-27 -7 q-17 0 -31.5 10.5t-33.5 23t-47 23t-73 10.5q-58 0 -111.5 -31.5t-94 -90t-64.5 -140.5t-24 -181q0 -116 51.5 -179t138.5 -63q58 0 96.5 17t65 37t47.5 37t46 17q27 0 45 -24l64 -78q-45 -50 -86.5 -85t-84 -59t-87 -37t-95.5 -17l-19 -47q75 -19 106 -53.5t31 -78.5 q0 -39 -19 -70t-53 -52.5t-80.5 -32.5t-101.5 -11q-39 0 -72 6t-66 18l34 76q9 21 29 21z" /> +<glyph unicode="è" horiz-adv-x="968" d="M940 807q0 -71 -28 -129t-101 -104.5t-197.5 -79.5t-316.5 -53v-13q0 -248 210 -248q45 0 80 9t61 21t47 27.5t39 28t35 21t38 8.5q12 0 24.5 -5.5t20.5 -17.5l64 -77q-54 -54 -106 -94.5t-106.5 -66t-115 -37.5t-131.5 -12q-92 0 -167 31t-128 88t-82.5 137.5 t-29.5 179.5q0 83 18 163t52 151.5t83 132t111 104.5t136 68.5t159 24.5q83 0 145 -23.5t103.5 -61t62 -83.5t20.5 -90zM595 889q-51 0 -95 -21t-79.5 -59t-61.5 -90.5t-42 -115.5q127 17 204.5 38t120 45.5t56.5 52t14 59.5q0 15 -7 31.5t-20.5 29t-35.5 21.5t-54 9z M536 1496q39 0 56.5 -13.5t28.5 -39.5l103 -249h-140q-27 0 -43.5 7t-30.5 28l-203 267h229z" /> +<glyph unicode="é" horiz-adv-x="968" d="M940 807q0 -71 -28 -129t-101 -104.5t-197.5 -79.5t-316.5 -53v-13q0 -248 210 -248q45 0 80 9t61 21t47 27.5t39 28t35 21t38 8.5q12 0 24.5 -5.5t20.5 -17.5l64 -77q-54 -54 -106 -94.5t-106.5 -66t-115 -37.5t-131.5 -12q-92 0 -167 31t-128 88t-82.5 137.5 t-29.5 179.5q0 83 18 163t52 151.5t83 132t111 104.5t136 68.5t159 24.5q83 0 145 -23.5t103.5 -61t62 -83.5t20.5 -90zM595 889q-51 0 -95 -21t-79.5 -59t-61.5 -90.5t-42 -115.5q127 17 204.5 38t120 45.5t56.5 52t14 59.5q0 15 -7 31.5t-20.5 29t-35.5 21.5t-54 9z M984 1496l-268 -267q-20 -20 -39 -27.5t-46 -7.5h-146l164 249q17 27 38 40t60 13h237z" /> +<glyph unicode="ê" horiz-adv-x="968" d="M940 807q0 -71 -28 -129t-101 -104.5t-197.5 -79.5t-316.5 -53v-13q0 -248 210 -248q45 0 80 9t61 21t47 27.5t39 28t35 21t38 8.5q12 0 24.5 -5.5t20.5 -17.5l64 -77q-54 -54 -106 -94.5t-106.5 -66t-115 -37.5t-131.5 -12q-92 0 -167 31t-128 88t-82.5 137.5 t-29.5 179.5q0 83 18 163t52 151.5t83 132t111 104.5t136 68.5t159 24.5q83 0 145 -23.5t103.5 -61t62 -83.5t20.5 -90zM595 889q-51 0 -95 -21t-79.5 -59t-61.5 -90.5t-42 -115.5q127 17 204.5 38t120 45.5t56.5 52t14 59.5q0 15 -7 31.5t-20.5 29t-35.5 21.5t-54 9z M943 1196h-162q-14 0 -27.5 5.5t-19.5 12.5l-83 102q-8 8 -17 20q-6 -6 -12 -11t-11 -9l-111 -102q-8 -7 -21.5 -12.5t-29.5 -5.5h-169l252 284h230z" /> +<glyph unicode="ë" horiz-adv-x="968" d="M940 807q0 -71 -28 -129t-101 -104.5t-197.5 -79.5t-316.5 -53v-13q0 -248 210 -248q45 0 80 9t61 21t47 27.5t39 28t35 21t38 8.5q12 0 24.5 -5.5t20.5 -17.5l64 -77q-54 -54 -106 -94.5t-106.5 -66t-115 -37.5t-131.5 -12q-92 0 -167 31t-128 88t-82.5 137.5 t-29.5 179.5q0 83 18 163t52 151.5t83 132t111 104.5t136 68.5t159 24.5q83 0 145 -23.5t103.5 -61t62 -83.5t20.5 -90zM595 889q-51 0 -95 -21t-79.5 -59t-61.5 -90.5t-42 -115.5q127 17 204.5 38t120 45.5t56.5 52t14 59.5q0 15 -7 31.5t-20.5 29t-35.5 21.5t-54 9z M581 1346q0 -29 -11 -54t-31 -43.5t-46 -29.5t-56 -11q-28 0 -53 11t-44 29.5t-30 43.5t-11 54q0 30 11 55.5t30 45t44 31t53 11.5q30 0 56 -11.5t46 -31t31 -45t11 -55.5zM963 1346q0 -29 -11 -54t-30 -43.5t-45 -29.5t-56 -11q-29 0 -54.5 11t-44.5 29.5t-30 43.5t-11 54 q0 30 11 55.5t30 45t44.5 31t54.5 11.5q30 0 56 -11.5t45 -31t30 -45t11 -55.5z" /> +<glyph unicode="ì" horiz-adv-x="527" d="M452 1051l-126 -1051h-250l126 1051h250zM263 1496q39 0 56.5 -13.5t28.5 -39.5l103 -249h-140q-27 0 -43.5 7t-30.5 28l-203 267h229z" /> +<glyph unicode="í" horiz-adv-x="527" d="M452 1051l-126 -1051h-250l126 1051h250zM710 1496l-268 -267q-20 -20 -39 -27.5t-46 -7.5h-146l164 249q17 27 38 40t60 13h237z" /> +<glyph unicode="î" horiz-adv-x="527" d="M452 1051l-126 -1051h-250l126 1051h250zM669 1196h-162q-14 0 -27.5 5.5t-19.5 12.5l-83 102q-8 8 -17 20q-6 -6 -12 -11t-11 -9l-111 -102q-8 -7 -21.5 -12.5t-29.5 -5.5h-169l252 284h230z" /> +<glyph unicode="ï" horiz-adv-x="527" d="M452 1051l-126 -1051h-250l126 1051h250zM307 1346q0 -29 -11 -54t-31 -43.5t-46 -29.5t-56 -11q-28 0 -53 11t-44 29.5t-30 43.5t-11 54q0 30 11 55.5t30 45t44 31t53 11.5q30 0 56 -11.5t46 -31t31 -45t11 -55.5zM689 1346q0 -29 -11 -54t-30 -43.5t-45 -29.5t-56 -11 q-29 0 -54.5 11t-44.5 29.5t-30 43.5t-11 54q0 30 11 55.5t30 45t44.5 31t54.5 11.5q30 0 56 -11.5t45 -31t30 -45t11 -55.5z" /> +<glyph unicode="ð" horiz-adv-x="1070" d="M440 1085q-7 11 -7 25q0 25 22 38l118 77q-69 36 -154 61q-50 16 -50 54q0 20 12 45l37 78q96 -17 183 -51t161 -87l188 117l41 -80q7 -14 7 -27q0 -25 -25 -42l-105 -66q77 -87 120 -207t43 -277q0 -174 -38.5 -314t-111.5 -239t-180 -152t-243 -53q-89 0 -164 29.5 t-128.5 85.5t-84 135.5t-30.5 179.5q0 110 37.5 207.5t103.5 171t156 116.5t197 43q96 0 169 -38.5t123 -115.5q-5 112 -38 195t-101 147l-212 -136zM487 171q52 0 100 21t87.5 69t69 126t46.5 192q-10 38 -28 72.5t-44 60t-62 41t-85 15.5q-65 0 -116.5 -26.5t-87 -72.5 t-54.5 -108.5t-19 -134.5q0 -60 14.5 -108t40 -80.5t61 -49.5t77.5 -17z" /> +<glyph unicode="ñ" horiz-adv-x="1102" d="M53 0l126 1052h129q40 0 62 -19.5t22 -62.5l-7 -136q80 118 177 175.5t201 57.5q58 0 105.5 -21t81.5 -61.5t52.5 -99.5t18.5 -135q0 -19 -1.5 -39.5t-3.5 -41.5l-79 -669h-253q20 173 34.5 293.5t24 200t14.5 125.5t7.5 69.5t3 31t0.5 12.5q0 68 -24.5 98t-76.5 30 q-42 0 -87 -24.5t-86 -69.5t-75 -108.5t-55 -141.5l-58 -516h-253zM777 1390q27 0 44 17t25 61h147q-7 -56 -27.5 -101.5t-50.5 -78t-68.5 -50t-81.5 -17.5q-34 0 -62 13t-51.5 29t-44 29.5t-39.5 13.5q-27 0 -44 -18.5t-22 -61.5h-150q7 56 27.5 101.5t51.5 78.5t69 51 t80 18q34 0 62.5 -13.5t52.5 -29.5t44 -29t38 -13z" /> +<glyph unicode="ò" horiz-adv-x="1044" d="M471 179q63 0 114.5 36.5t88 97.5t56 142t19.5 170q0 128 -43.5 188t-132.5 60q-63 0 -114 -35.5t-87 -97t-55.5 -142.5t-19.5 -171q0 -128 43 -188t131 -60zM449 -15q-87 0 -161.5 29t-128.5 85.5t-84.5 138t-30.5 187.5q0 136 43.5 254t119 204t175.5 135t214 49 q87 0 161 -29t128.5 -85.5t85 -138.5t30.5 -187q0 -135 -44 -252.5t-119 -204t-175 -136t-214 -49.5zM525 1498q39 0 56.5 -13.5t28.5 -39.5l103 -249h-140q-27 0 -43.5 7t-30.5 28l-203 267h229z" /> +<glyph unicode="ó" horiz-adv-x="1044" d="M471 179q63 0 114.5 36.5t88 97.5t56 142t19.5 170q0 128 -43.5 188t-132.5 60q-63 0 -114 -35.5t-87 -97t-55.5 -142.5t-19.5 -171q0 -128 43 -188t131 -60zM449 -15q-87 0 -161.5 29t-128.5 85.5t-84.5 138t-30.5 187.5q0 136 43.5 254t119 204t175.5 135t214 49 q87 0 161 -29t128.5 -85.5t85 -138.5t30.5 -187q0 -135 -44 -252.5t-119 -204t-175 -136t-214 -49.5zM973 1498l-268 -267q-20 -20 -39 -27.5t-46 -7.5h-146l164 249q17 27 38 40t60 13h237z" /> +<glyph unicode="ô" horiz-adv-x="1044" d="M471 179q63 0 114.5 36.5t88 97.5t56 142t19.5 170q0 128 -43.5 188t-132.5 60q-63 0 -114 -35.5t-87 -97t-55.5 -142.5t-19.5 -171q0 -128 43 -188t131 -60zM449 -15q-87 0 -161.5 29t-128.5 85.5t-84.5 138t-30.5 187.5q0 136 43.5 254t119 204t175.5 135t214 49 q87 0 161 -29t128.5 -85.5t85 -138.5t30.5 -187q0 -135 -44 -252.5t-119 -204t-175 -136t-214 -49.5zM932 1198h-162q-14 0 -27.5 5.5t-19.5 12.5l-83 102q-8 8 -17 20q-6 -6 -12 -11t-11 -9l-111 -102q-8 -7 -21.5 -12.5t-29.5 -5.5h-169l252 284h230z" /> +<glyph unicode="õ" horiz-adv-x="1044" d="M471 179q63 0 114.5 36.5t88 97.5t56 142t19.5 170q0 128 -43.5 188t-132.5 60q-63 0 -114 -35.5t-87 -97t-55.5 -142.5t-19.5 -171q0 -128 43 -188t131 -60zM449 -15q-87 0 -161.5 29t-128.5 85.5t-84.5 138t-30.5 187.5q0 136 43.5 254t119 204t175.5 135t214 49 q87 0 161 -29t128.5 -85.5t85 -138.5t30.5 -187q0 -135 -44 -252.5t-119 -204t-175 -136t-214 -49.5zM727 1390q27 0 44 17t25 61h147q-7 -56 -27.5 -101.5t-50.5 -78t-68.5 -50t-81.5 -17.5q-34 0 -62 13t-51.5 29t-44 29.5t-39.5 13.5q-27 0 -44 -18.5t-22 -61.5h-150 q7 56 27.5 101.5t51.5 78.5t69 51t80 18q34 0 62.5 -13.5t52.5 -29.5t44 -29t38 -13z" /> +<glyph unicode="ö" horiz-adv-x="1044" d="M471 179q63 0 114.5 36.5t88 97.5t56 142t19.5 170q0 128 -43.5 188t-132.5 60q-63 0 -114 -35.5t-87 -97t-55.5 -142.5t-19.5 -171q0 -128 43 -188t131 -60zM449 -15q-87 0 -161.5 29t-128.5 85.5t-84.5 138t-30.5 187.5q0 136 43.5 254t119 204t175.5 135t214 49 q87 0 161 -29t128.5 -85.5t85 -138.5t30.5 -187q0 -135 -44 -252.5t-119 -204t-175 -136t-214 -49.5zM570 1348q0 -29 -11 -54t-31 -43.5t-46 -29.5t-56 -11q-28 0 -53 11t-44 29.5t-30 43.5t-11 54q0 30 11 55.5t30 45t44 31t53 11.5q30 0 56 -11.5t46 -31t31 -45t11 -55.5 zM952 1348q0 -29 -11 -54t-30 -43.5t-45 -29.5t-56 -11q-29 0 -54.5 11t-44.5 29.5t-30 43.5t-11 54q0 30 11 55.5t30 45t44.5 31t54.5 11.5q30 0 56 -11.5t45 -31t30 -45t11 -55.5z" /> +<glyph unicode="÷" d="M129 778h997l-22 -181h-998zM508 1034q0 35 14 65.5t37 54t54 36.5t66 13q29 0 54 -10.5t42.5 -29t27.5 -43t10 -53.5q0 -36 -14 -66t-38 -52t-54.5 -35t-64.5 -13q-30 0 -55 10.5t-42.5 28t-27 42t-9.5 52.5zM418 305q0 35 13.5 65.5t37 53.5t54.5 36.5t66 13.5 q29 0 54 -10.5t42 -29t27.5 -43t10.5 -53.5q0 -36 -14 -66t-38 -52t-54.5 -35t-64.5 -13q-30 0 -55 10.5t-42.5 28t-27 42t-9.5 52.5z" /> +<glyph unicode="ø" horiz-adv-x="1044" d="M449 -15q-120 0 -210 52l-11 -13q-30 -41 -70.5 -57.5t-80.5 -16.5h-93l140 191q-39 54 -59.5 125t-20.5 159q0 136 43.5 254t119 204t175.5 135t214 49q119 0 211 -53l13 18q13 18 25 31t24.5 21.5t27.5 12t38 3.5h125l-139 -191q39 -54 59.5 -124.5t20.5 -157.5 q0 -135 -44 -252.5t-119 -204t-175 -136t-214 -49.5zM281 427q0 -49 8 -93l382 526q-43 29 -98 29q-63 0 -117 -34t-92.5 -95t-60.5 -146t-22 -187zM471 163q63 0 117 34t93 95.5t61 146t22 186.5q0 25 -2 47t-6 43l-382 -525q41 -27 97 -27z" /> +<glyph unicode="ù" horiz-adv-x="1100" d="M419 1051q-20 -173 -34.5 -293t-24 -200t-14.5 -126t-7.5 -69.5t-3 -31.5t-0.5 -14q0 -68 25 -97t76 -29q40 0 82.5 22.5t82 63t73.5 99t57 130.5l66 545h253l-127 -1051h-128q-17 0 -33.5 4.5t-29 14t-20 23.5t-7.5 34v4l6 128q-80 -113 -175 -168t-196 -55 q-58 0 -106 21t-81.5 60.5t-52 98.5t-18.5 135q0 20 1 40.5t4 43.5l79 667h253zM542 1498q39 0 56.5 -13.5t28.5 -39.5l103 -249h-140q-27 0 -43.5 7t-30.5 28l-203 267h229z" /> +<glyph unicode="ú" horiz-adv-x="1100" d="M419 1051q-20 -173 -34.5 -293t-24 -200t-14.5 -126t-7.5 -69.5t-3 -31.5t-0.5 -14q0 -68 25 -97t76 -29q40 0 82.5 22.5t82 63t73.5 99t57 130.5l66 545h253l-127 -1051h-128q-17 0 -33.5 4.5t-29 14t-20 23.5t-7.5 34v4l6 128q-80 -113 -175 -168t-196 -55 q-58 0 -106 21t-81.5 60.5t-52 98.5t-18.5 135q0 20 1 40.5t4 43.5l79 667h253zM990 1498l-268 -267q-20 -20 -39 -27.5t-46 -7.5h-146l164 249q17 27 38 40t60 13h237z" /> +<glyph unicode="û" horiz-adv-x="1100" d="M419 1051q-20 -173 -34.5 -293t-24 -200t-14.5 -126t-7.5 -69.5t-3 -31.5t-0.5 -14q0 -68 25 -97t76 -29q40 0 82.5 22.5t82 63t73.5 99t57 130.5l66 545h253l-127 -1051h-128q-17 0 -33.5 4.5t-29 14t-20 23.5t-7.5 34v4l6 128q-80 -113 -175 -168t-196 -55 q-58 0 -106 21t-81.5 60.5t-52 98.5t-18.5 135q0 20 1 40.5t4 43.5l79 667h253zM949 1198h-162q-14 0 -27.5 5.5t-19.5 12.5l-83 102q-8 8 -17 20q-6 -6 -12 -11t-11 -9l-111 -102q-8 -7 -21.5 -12.5t-29.5 -5.5h-169l252 284h230z" /> +<glyph unicode="ü" horiz-adv-x="1100" d="M419 1051q-20 -173 -34.5 -293t-24 -200t-14.5 -126t-7.5 -69.5t-3 -31.5t-0.5 -14q0 -68 25 -97t76 -29q40 0 82.5 22.5t82 63t73.5 99t57 130.5l66 545h253l-127 -1051h-128q-17 0 -33.5 4.5t-29 14t-20 23.5t-7.5 34v4l6 128q-80 -113 -175 -168t-196 -55 q-58 0 -106 21t-81.5 60.5t-52 98.5t-18.5 135q0 20 1 40.5t4 43.5l79 667h253zM587 1348q0 -29 -11 -54t-31 -43.5t-46 -29.5t-56 -11q-28 0 -53 11t-44 29.5t-30 43.5t-11 54q0 30 11 55.5t30 45t44 31t53 11.5q30 0 56 -11.5t46 -31t31 -45t11 -55.5zM969 1348 q0 -29 -11 -54t-30 -43.5t-45 -29.5t-56 -11q-29 0 -54.5 11t-44.5 29.5t-30 43.5t-11 54q0 30 11 55.5t30 45t44.5 31t54.5 11.5q30 0 56 -11.5t45 -31t30 -45t11 -55.5z" /> +<glyph unicode="ý" horiz-adv-x="1017" d="M380 -291q-27 -52 -82 -52h-187l233 423l-265 971h212q28 0 41.5 -14t18.5 -33l129 -545q6 -27 10 -52.5t6 -52.5q11 27 22.5 53t24.5 53l259 545q10 20 29.5 33t39.5 13h203zM960 1498l-268 -267q-20 -20 -39 -27.5t-46 -7.5h-146l164 249q17 27 38 40t60 13h237z" /> +<glyph unicode="þ" horiz-adv-x="1094" d="M19 -343l228 1865h249l-84 -678q74 103 164.5 163t192.5 60q66 0 119 -24t91 -72t58.5 -122t20.5 -173q0 -89 -18.5 -175t-52.5 -163t-80.5 -141.5t-104 -111.5t-122.5 -73.5t-134 -26.5q-71 0 -128.5 25t-100.5 70l-41 -339q-4 -33 -30.5 -58.5t-69.5 -25.5h-157z M670 868q-41 0 -83.5 -28t-82.5 -77t-75 -116t-59 -144l-32 -258q35 -37 80 -52.5t89 -15.5q68 0 123 42t94.5 109.5t61 152t21.5 169.5q0 111 -36 164.5t-101 53.5z" /> +<glyph unicode="ÿ" horiz-adv-x="1017" d="M380 -291q-27 -52 -82 -52h-187l233 423l-265 971h212q28 0 41.5 -14t18.5 -33l129 -545q6 -27 10 -52.5t6 -52.5q11 27 22.5 53t24.5 53l259 545q10 20 29.5 33t39.5 13h203zM557 1348q0 -29 -11 -54t-31 -43.5t-46 -29.5t-56 -11q-28 0 -53 11t-44 29.5t-30 43.5 t-11 54q0 30 11 55.5t30 45t44 31t53 11.5q30 0 56 -11.5t46 -31t31 -45t11 -55.5zM939 1348q0 -29 -11 -54t-30 -43.5t-45 -29.5t-56 -11q-29 0 -54.5 11t-44.5 29.5t-30 43.5t-11 54q0 30 11 55.5t30 45t44.5 31t54.5 11.5q30 0 56 -11.5t45 -31t30 -45t11 -55.5z" /> +<glyph unicode="ı" horiz-adv-x="527" d="M452 1051l-126 -1051h-250l126 1051h250z" /> +<glyph unicode="Œ" horiz-adv-x="2027" d="M2068 1481l-26 -212h-595l-52 -422h467l-25 -204h-467l-52 -431h594l-26 -212h-831l21 177q-90 -92 -206 -142t-254 -50q-126 0 -226 49t-169.5 135t-107 204.5t-37.5 256.5q0 124 25 236.5t70.5 208.5t111 174t146 133.5t174.5 85t198 29.5q138 0 241 -59t169 -161 l26 204h831zM1121 844q0 98 -21 179.5t-61.5 140t-99.5 90.5t-136 32q-103 0 -187 -47.5t-143.5 -133t-92 -205.5t-32.5 -264q0 -98 21 -179t61.5 -139.5t100.5 -90t138 -31.5q102 0 185.5 47t143 132.5t91.5 205t32 263.5z" /> +<glyph unicode="œ" horiz-adv-x="1594" d="M1260 1066q70 0 126.5 -19t96.5 -54t62 -83.5t22 -106.5q0 -68 -28.5 -125.5t-99 -104t-192 -79.5t-307.5 -52q3 -135 58.5 -198.5t151.5 -63.5q69 0 113 18t75 39.5t56 39.5t55 18q29 0 46 -23l65 -77q-54 -54 -106 -94.5t-107.5 -66t-116 -37.5t-130.5 -12 q-97 0 -178.5 49t-127.5 149q-75 -95 -178 -146.5t-227 -51.5q-85 0 -150 31t-109 83.5t-66.5 122t-22.5 146.5q0 171 46.5 301.5t125 218.5t181 133t212.5 45q101 0 173.5 -43t114.5 -120q67 77 158 120t208 43zM450 172q58 0 102.5 23t77.5 61.5t54.5 88.5t34.5 104.5 t18.5 108.5t5.5 102q0 103 -39 160.5t-120 57.5q-70 0 -125 -36t-93 -101t-58.5 -156.5t-20.5 -203.5q0 -41 8 -79t27.5 -66.5t51 -46t76.5 -17.5zM1220 891q-100 0 -172.5 -76t-97.5 -219q124 16 203 38.5t124 48.5t62 54t17 57q0 39 -32.5 68t-103.5 29z" /> +<glyph unicode="Ÿ" horiz-adv-x="1241" d="M763 577l-72 -577h-266l72 578l-385 903h236q35 0 53.5 -17t28.5 -44l192 -512q14 -37 22.5 -72t14.5 -69q16 34 35.5 68.5t42.5 72.5l319 512q14 24 37 42.5t57 18.5h220zM710 1704q0 -25 -10.5 -47t-27.5 -38t-40 -26t-48 -10t-47 10t-39 26t-26.5 38t-9.5 47 q0 26 9.5 49t26.5 39.5t39 26.5t47 10q26 0 48.5 -10t39.5 -26.5t27.5 -39.5t10.5 -49zM1069 1704q0 -25 -9.5 -47t-26.5 -38t-39.5 -26t-48.5 -10t-47.5 10t-38.5 26t-27 38t-10 47q0 26 10 49t27 39.5t39 26.5t47 10q26 0 48.5 -10t39.5 -26.5t26.5 -39.5t9.5 -49z" /> +<glyph unicode="ˆ" horiz-adv-x="605" d="M719 1196h-162q-14 0 -27.5 5.5t-19.5 12.5l-83 102q-8 8 -17 20q-6 -6 -12 -11t-11 -9l-111 -102q-8 -7 -21.5 -12.5t-29.5 -5.5h-169l252 284h230z" /> +<glyph unicode="˚" horiz-adv-x="605" d="M178 1357q0 47 18.5 86t50 66.5t72 43t85.5 15.5q46 0 88.5 -15.5t74 -43t50.5 -66.5t19 -86q0 -46 -19 -84t-50.5 -65t-73.5 -42t-89 -15q-45 0 -85.5 15t-72 42t-50 65t-18.5 84zM315 1357q0 -39 24.5 -65t69.5 -26q41 0 65.5 26t24.5 65q0 43 -24.5 68t-65.5 25 q-45 0 -69.5 -25t-24.5 -68z" /> +<glyph unicode="˜" horiz-adv-x="605" d="M514 1388q27 0 44 17t25 61h147q-7 -56 -27.5 -101.5t-50.5 -78t-68.5 -50t-81.5 -17.5q-34 0 -62 13t-51.5 29t-44 29.5t-39.5 13.5q-27 0 -44 -18.5t-22 -61.5h-150q7 56 27.5 101.5t51.5 78.5t69 51t80 18q34 0 62.5 -13.5t52.5 -29.5t44 -29t38 -13z" /> +<glyph unicode=" " horiz-adv-x="959" /> +<glyph unicode=" " horiz-adv-x="1919" /> +<glyph unicode=" " horiz-adv-x="959" /> +<glyph unicode=" " horiz-adv-x="1919" /> +<glyph unicode=" " horiz-adv-x="639" /> +<glyph unicode=" " horiz-adv-x="479" /> +<glyph unicode=" " horiz-adv-x="319" /> +<glyph unicode=" " horiz-adv-x="319" /> +<glyph unicode=" " horiz-adv-x="239" /> +<glyph unicode=" " horiz-adv-x="383" /> +<glyph unicode=" " horiz-adv-x="106" /> +<glyph unicode="‐" horiz-adv-x="679" d="M121 720h492l-25 -204h-492z" /> +<glyph unicode="‑" horiz-adv-x="679" d="M121 720h492l-25 -204h-492z" /> +<glyph unicode="‒" horiz-adv-x="679" d="M121 720h492l-25 -204h-492z" /> +<glyph unicode="–" horiz-adv-x="1075" d="M180 699h765l-21 -174h-765z" /> +<glyph unicode="—" horiz-adv-x="1592" d="M180 699h1282l-21 -174h-1282z" /> +<glyph unicode="‘" horiz-adv-x="427" d="M217 1006q-41 88 -41 178q0 114 61.5 218.5t175.5 191.5l68 -45q15 -9 16 -28q0 -11 -6 -21t-19 -24q-12 -14 -28 -36.5t-29.5 -50.5t-22.5 -62t-9 -72q0 -30 6.5 -61.5t22.5 -65.5q3 -8 3 -16q0 -15 -11.5 -28t-31.5 -21z" /> +<glyph unicode="’" horiz-adv-x="427" d="M414 1563q41 -88 41 -179q0 -114 -61.5 -218.5t-176.5 -191.5l-69 45q-15 10 -15 29q0 11 6 20t20 24q12 14 28 36t29 50.5t22.5 62.5t9.5 72q0 30 -7 61.5t-22 64.5q-3 9 -3 16q0 16 11.5 29t31.5 21z" /> +<glyph unicode="‚" horiz-adv-x="470" d="M271 292q41 -88 41 -178q0 -114 -61.5 -219t-175.5 -192l-69 45q-15 10 -15 29q0 11 6 20t19 24q12 14 28 36t29.5 51t22.5 62.5t9 71.5q0 30 -6.5 61.5t-21.5 64.5q-3 9 -3 16q0 16 11 29t32 21z" /> +<glyph unicode="“" horiz-adv-x="744" d="M217 1006q-41 88 -41 178q0 114 61.5 218.5t175.5 191.5l68 -45q15 -9 16 -28q0 -11 -6 -21t-19 -24q-12 -14 -28 -36.5t-29.5 -50.5t-22.5 -62t-9 -72q0 -30 6.5 -61.5t22.5 -65.5q3 -8 3 -16q0 -15 -11.5 -28t-31.5 -21zM536 1006q-41 88 -41 178q0 114 61 218.5 t175 191.5l69 -45q15 -9 15 -28q0 -11 -5.5 -21t-18.5 -24q-12 -14 -28.5 -36.5t-29.5 -50.5t-22.5 -62t-9.5 -72q0 -30 7 -61.5t22 -65.5q3 -8 3 -16q0 -15 -11 -28t-32 -21z" /> +<glyph unicode="”" horiz-adv-x="744" d="M418 1563q41 -88 41 -179q0 -114 -61.5 -218.5t-176.5 -191.5l-68 45q-15 10 -16 29q0 11 6.5 20t19.5 24q12 14 28 36t29 50.5t22.5 62.5t9.5 72q0 30 -6.5 61.5t-22.5 64.5q-3 9 -3 16q0 16 11.5 29t31.5 21zM735 1563q41 -88 41 -179q0 -114 -61.5 -218.5 t-175.5 -191.5l-69 45q-15 10 -15 29q0 11 6 20t19 24q12 14 28 36t29.5 50.5t22.5 62.5t9 72q0 30 -6.5 61.5t-21.5 64.5q-3 9 -3 16q0 16 11 29t32 21z" /> +<glyph unicode="„" horiz-adv-x="744" d="M253 292q41 -88 41 -178q0 -114 -61.5 -219t-176.5 -192l-68 45q-15 10 -16 29q0 11 6.5 20t19.5 24q12 14 28 36t29.5 51t22.5 62.5t9 71.5q0 30 -6.5 61.5t-22.5 64.5q-3 9 -3 16q0 16 11.5 29t31.5 21zM571 292q41 -88 41 -178q0 -114 -61.5 -219t-175.5 -192l-69 45 q-15 10 -15 29q0 11 6 20t19 24q12 14 28 36t29.5 51t23 62.5t9.5 71.5q0 30 -7 61.5t-22 64.5q-3 9 -3 16q0 16 11 29t32 21z" /> +<glyph unicode="•" d="M166 607q0 92 35.5 173t95.5 142t141 96t173 35q93 0 174.5 -35t142 -96t96 -142t35.5 -173q0 -91 -35.5 -171.5t-96 -141t-141.5 -95t-175 -34.5q-92 0 -173 34.5t-141 95t-95.5 141t-35.5 171.5z" /> +<glyph unicode="…" horiz-adv-x="1553" d="M35 139q0 32 11.5 60.5t32.5 49t49.5 33t60.5 12.5q33 0 61.5 -12.5t49.5 -33t33 -49t12 -60.5q0 -33 -12 -61t-33 -48.5t-49.5 -32t-61.5 -11.5t-61 11.5t-49 32t-32.5 48.5t-11.5 61zM582 139q0 32 11.5 60.5t32.5 49t49 33t61 12.5t61 -12.5t49 -33t33.5 -49 t12.5 -60.5q0 -33 -12.5 -61t-33.5 -48.5t-49 -32t-61 -11.5t-61 11.5t-49 32t-32.5 48.5t-11.5 61zM1128 139q0 32 12 60.5t32.5 49t49 33t61.5 12.5t61 -12.5t49 -33t33.5 -49t12.5 -60.5q0 -33 -12.5 -61t-33.5 -48.5t-49 -32t-61 -11.5t-61.5 11.5t-49 32t-32.5 48.5 t-12 61z" /> +<glyph unicode=" " horiz-adv-x="383" /> +<glyph unicode="‹" horiz-adv-x="627" d="M124 535l5 30l292 405l75 -38q33 -13 32 -45q0 -11 -5.5 -23.5t-13.5 -26.5l-157 -245q-17 -26 -38 -43q8 -7 14.5 -18t12.5 -23l97 -245q8 -19 8 -36q0 -42 -44 -61l-85 -37z" /> +<glyph unicode="›" horiz-adv-x="627" d="M516 565l-3 -30l-292 -406l-75 37q-32 15 -31 46q0 23 17 51l159 245q8 12 17 23t19 18q-17 16 -26 43l-99 245q-6 16 -6 32q0 42 45 63l84 38z" /> +<glyph unicode=" " horiz-adv-x="479" /> +<glyph unicode="€" d="M92 947h132q37 127 100 228.5t146 172t183.5 108.5t212.5 38q141 0 235.5 -55t151.5 -146l-97 -93q-11 -11 -22.5 -19.5t-31.5 -8.5t-36 17.5t-41.5 38.5t-65.5 38.5t-109 17.5q-130 0 -228.5 -86t-148.5 -251h528l-8 -77q-2 -22 -23 -40.5t-54 -18.5h-474 q-9 -58 -12 -122h444l-9 -74q-3 -24 -24.5 -42.5t-50.5 -18.5h-361q11 -176 83.5 -267t193.5 -91q50 0 87.5 9.5t66 24t49.5 31.5t37.5 31t30.5 24t29 10q11 0 17.5 -4t15.5 -13l94 -97q-85 -109 -202.5 -167.5t-262.5 -58.5q-117 0 -206.5 41.5t-150.5 116.5t-94.5 179.5 t-38.5 230.5h-134l16 135h120q2 32 5 62t9 60h-118z" /> +<glyph unicode="™" horiz-adv-x="1370" d="M988 1185q11 -36 18 -69q8 17 16 33.5t19 35.5l153 268q11 19 24 23t34 4h144l-75 -617h-147l38 318q2 20 8 42t15 53l-177 -311q-10 -17 -26.5 -26.5t-36.5 -9.5h-23q-18 0 -33 9t-20 27l-99 305q0 -36 -0.5 -57.5t-1.5 -31.5l-38 -318h-147l75 617h145q22 0 33.5 -3.5 t17.5 -23.5zM644 1480l-17 -140h-153l-58 -477h-167l57 477h-151l18 140h471z" /> +<glyph unicode="◼" horiz-adv-x="1049" d="M0 1050h1050v-1050h-1050v1050z" /> +<glyph horiz-adv-x="605" d="M326 1832q19 0 32.5 -1.5t23.5 -6t19 -12t20 -19.5l157 -207h-207q-28 0 -43 9t-34 26l-240 211h272z" /> +<glyph horiz-adv-x="605" d="M368 1706q0 -25 -10.5 -47t-27.5 -38t-40 -26t-48 -10t-47 10t-39 26t-26.5 38t-9.5 47q0 26 9.5 49t26.5 39.5t39 26.5t47 10q26 0 48.5 -10t39.5 -26.5t27.5 -39.5t10.5 -49zM727 1706q0 -25 -9.5 -47t-26.5 -38t-39.5 -26t-48.5 -10t-47.5 10t-38.5 26t-27 38t-10 47 q0 26 10 49t27 39.5t39 26.5t47 10q26 0 48.5 -10t39.5 -26.5t26.5 -39.5t9.5 -49z" /> +<glyph horiz-adv-x="605" d="M852 1832l-291 -211q-24 -17 -46 -26t-49 -9h-198l209 207q12 12 23 20t23 12t25.5 5.5t34.5 1.5h269z" /> +<glyph horiz-adv-x="605" d="M780 1586h-185q-14 0 -30 5t-27 12l-81 71q-3 3 -7.5 6.5t-7.5 8.5l-16 -15l-99 -71q-11 -8 -29 -12.5t-34 -4.5h-183l255 223h244z" /> +<glyph horiz-adv-x="605" d="M217 1723q0 44 17.5 80t46.5 61.5t67 40t80 14.5q43 0 82.5 -14.5t68.5 -40t46.5 -61.5t17.5 -80q0 -43 -17.5 -78t-46.5 -60.5t-68.5 -39.5t-82.5 -14q-42 0 -80 14t-67 39.5t-46.5 60.5t-17.5 78zM339 1723q0 -40 23.5 -65.5t68.5 -25.5q41 0 66 25.5t25 65.5 q0 43 -25 68t-66 25q-45 0 -68.5 -25t-23.5 -68z" /> +<glyph horiz-adv-x="605" d="M569 1736q25 0 42.5 16t21.5 49h133q-6 -49 -23.5 -90.5t-44.5 -71.5t-63 -46.5t-79 -16.5q-34 0 -64.5 11.5t-57.5 25.5t-50.5 26t-42.5 12q-25 0 -41.5 -18t-20.5 -52h-136q6 50 24 92t45.5 72t63 46.5t77.5 16.5q35 0 66 -11t58 -25t50 -25t42 -11z" /> +<hkern u1=""" u2="›" k="41" /> +<hkern u1=""" u2="‹" k="41" /> +<hkern u1=""" u2="…" k="45" /> +<hkern u1=""" u2="•" k="41" /> +<hkern u1=""" u2="„" k="45" /> +<hkern u1=""" u2="‚" k="45" /> +<hkern u1=""" u2="—" k="41" /> +<hkern u1=""" u2="–" k="41" /> +<hkern u1=""" u2="Ÿ" k="-43" /> +<hkern u1=""" u2="œ" k="98" /> +<hkern u1=""" u2="ø" k="98" /> +<hkern u1=""" u2="ö" k="98" /> +<hkern u1=""" u2="õ" k="98" /> +<hkern u1=""" u2="ô" k="98" /> +<hkern u1=""" u2="ó" k="98" /> +<hkern u1=""" u2="ò" k="98" /> +<hkern u1=""" u2="ð" k="98" /> +<hkern u1=""" u2="ë" k="98" /> +<hkern u1=""" u2="ê" k="98" /> +<hkern u1=""" u2="é" k="98" /> +<hkern u1=""" u2="è" k="98" /> +<hkern u1=""" u2="ç" k="98" /> +<hkern u1=""" u2="æ" k="98" /> +<hkern u1=""" u2="å" k="98" /> +<hkern u1=""" u2="ä" k="98" /> +<hkern u1=""" u2="ã" k="98" /> +<hkern u1=""" u2="â" k="98" /> +<hkern u1=""" u2="á" k="98" /> +<hkern u1=""" u2="à" k="98" /> +<hkern u1=""" u2="Ý" k="-43" /> +<hkern u1=""" u2="Æ" k="180" /> +<hkern u1=""" u2="Å" k="180" /> +<hkern u1=""" u2="Ä" k="180" /> +<hkern u1=""" u2="Ã" k="180" /> +<hkern u1=""" u2="Â" k="180" /> +<hkern u1=""" u2="Á" k="180" /> +<hkern u1=""" u2="À" k="180" /> +<hkern u1=""" u2="»" k="41" /> +<hkern u1=""" u2="·" k="41" /> +<hkern u1=""" u2="­" k="41" /> +<hkern u1=""" u2="«" k="41" /> +<hkern u1=""" u2="q" k="98" /> +<hkern u1=""" u2="o" k="98" /> +<hkern u1=""" u2="e" k="98" /> +<hkern u1=""" u2="d" k="98" /> +<hkern u1=""" u2="c" k="98" /> +<hkern u1=""" u2="a" k="98" /> +<hkern u1=""" u2="\" k="-48" /> +<hkern u1=""" u2="Y" k="-43" /> +<hkern u1=""" u2="W" k="-34" /> +<hkern u1=""" u2="V" k="-48" /> +<hkern u1=""" u2="A" k="180" /> +<hkern u1=""" u2="/" k="180" /> +<hkern u1=""" u2="." k="45" /> +<hkern u1=""" u2="-" k="41" /> +<hkern u1=""" u2="," k="45" /> +<hkern u1=""" u2="&" k="180" /> +<hkern u1="'" u2="›" k="41" /> +<hkern u1="'" u2="‹" k="41" /> +<hkern u1="'" u2="…" k="45" /> +<hkern u1="'" u2="•" k="41" /> +<hkern u1="'" u2="„" k="45" /> +<hkern u1="'" u2="‚" k="45" /> +<hkern u1="'" u2="—" k="41" /> +<hkern u1="'" u2="–" k="41" /> +<hkern u1="'" u2="Ÿ" k="-43" /> +<hkern u1="'" u2="œ" k="98" /> +<hkern u1="'" u2="ø" k="98" /> +<hkern u1="'" u2="ö" k="98" /> +<hkern u1="'" u2="õ" k="98" /> +<hkern u1="'" u2="ô" k="98" /> +<hkern u1="'" u2="ó" k="98" /> +<hkern u1="'" u2="ò" k="98" /> +<hkern u1="'" u2="ð" k="98" /> +<hkern u1="'" u2="ë" k="98" /> +<hkern u1="'" u2="ê" k="98" /> +<hkern u1="'" u2="é" k="98" /> +<hkern u1="'" u2="è" k="98" /> +<hkern u1="'" u2="ç" k="98" /> +<hkern u1="'" u2="æ" k="98" /> +<hkern u1="'" u2="å" k="98" /> +<hkern u1="'" u2="ä" k="98" /> +<hkern u1="'" u2="ã" k="98" /> +<hkern u1="'" u2="â" k="98" /> +<hkern u1="'" u2="á" k="98" /> +<hkern u1="'" u2="à" k="98" /> +<hkern u1="'" u2="Ý" k="-43" /> +<hkern u1="'" u2="Æ" k="180" /> +<hkern u1="'" u2="Å" k="180" /> +<hkern u1="'" u2="Ä" k="180" /> +<hkern u1="'" u2="Ã" k="180" /> +<hkern u1="'" u2="Â" k="180" /> +<hkern u1="'" u2="Á" k="180" /> +<hkern u1="'" u2="À" k="180" /> +<hkern u1="'" u2="»" k="41" /> +<hkern u1="'" u2="·" k="41" /> +<hkern u1="'" u2="­" k="41" /> +<hkern u1="'" u2="«" k="41" /> +<hkern u1="'" u2="q" k="98" /> +<hkern u1="'" u2="o" k="98" /> +<hkern u1="'" u2="e" k="98" /> +<hkern u1="'" u2="d" k="98" /> +<hkern u1="'" u2="c" k="98" /> +<hkern u1="'" u2="a" k="98" /> +<hkern u1="'" u2="\" k="-48" /> +<hkern u1="'" u2="Y" k="-43" /> +<hkern u1="'" u2="W" k="-34" /> +<hkern u1="'" u2="V" k="-48" /> +<hkern u1="'" u2="A" k="180" /> +<hkern u1="'" u2="/" k="180" /> +<hkern u1="'" u2="." k="45" /> +<hkern u1="'" u2="-" k="41" /> +<hkern u1="'" u2="," k="45" /> +<hkern u1="'" u2="&" k="180" /> +<hkern u1="(" u2="œ" k="37" /> +<hkern u1="(" u2="Œ" k="41" /> +<hkern u1="(" u2="ø" k="37" /> +<hkern u1="(" u2="ö" k="37" /> +<hkern u1="(" u2="õ" k="37" /> +<hkern u1="(" u2="ô" k="37" /> +<hkern u1="(" u2="ó" k="37" /> +<hkern u1="(" u2="ò" k="37" /> +<hkern u1="(" u2="ð" k="37" /> +<hkern u1="(" u2="ë" k="37" /> +<hkern u1="(" u2="ê" k="37" /> +<hkern u1="(" u2="é" k="37" /> +<hkern u1="(" u2="è" k="37" /> +<hkern u1="(" u2="ç" k="37" /> +<hkern u1="(" u2="æ" k="37" /> +<hkern u1="(" u2="å" k="37" /> +<hkern u1="(" u2="ä" k="37" /> +<hkern u1="(" u2="ã" k="37" /> +<hkern u1="(" u2="â" k="37" /> +<hkern u1="(" u2="á" k="37" /> +<hkern u1="(" u2="à" k="37" /> +<hkern u1="(" u2="Ø" k="41" /> +<hkern u1="(" u2="Ö" k="41" /> +<hkern u1="(" u2="Õ" k="41" /> +<hkern u1="(" u2="Ô" k="41" /> +<hkern u1="(" u2="Ó" k="41" /> +<hkern u1="(" u2="Ò" k="41" /> +<hkern u1="(" u2="Ç" k="41" /> +<hkern u1="(" u2="®" k="41" /> +<hkern u1="(" u2="©" k="41" /> +<hkern u1="(" u2="q" k="37" /> +<hkern u1="(" u2="o" k="37" /> +<hkern u1="(" u2="e" k="37" /> +<hkern u1="(" u2="d" k="37" /> +<hkern u1="(" u2="c" k="37" /> +<hkern u1="(" u2="a" k="37" /> +<hkern u1="(" u2="Q" k="41" /> +<hkern u1="(" u2="O" k="41" /> +<hkern u1="(" u2="G" k="41" /> +<hkern u1="(" u2="C" k="41" /> +<hkern u1="(" u2="@" k="41" /> +<hkern u1="*" u2="›" k="41" /> +<hkern u1="*" u2="‹" k="41" /> +<hkern u1="*" u2="…" k="45" /> +<hkern u1="*" u2="•" k="41" /> +<hkern u1="*" u2="„" k="45" /> +<hkern u1="*" u2="‚" k="45" /> +<hkern u1="*" u2="—" k="41" /> +<hkern u1="*" u2="–" k="41" /> +<hkern u1="*" u2="Ÿ" k="-43" /> +<hkern u1="*" u2="œ" k="98" /> +<hkern u1="*" u2="ø" k="98" /> +<hkern u1="*" u2="ö" k="98" /> +<hkern u1="*" u2="õ" k="98" /> +<hkern u1="*" u2="ô" k="98" /> +<hkern u1="*" u2="ó" k="98" /> +<hkern u1="*" u2="ò" k="98" /> +<hkern u1="*" u2="ð" k="98" /> +<hkern u1="*" u2="ë" k="98" /> +<hkern u1="*" u2="ê" k="98" /> +<hkern u1="*" u2="é" k="98" /> +<hkern u1="*" u2="è" k="98" /> +<hkern u1="*" u2="ç" k="98" /> +<hkern u1="*" u2="æ" k="98" /> +<hkern u1="*" u2="å" k="98" /> +<hkern u1="*" u2="ä" k="98" /> +<hkern u1="*" u2="ã" k="98" /> +<hkern u1="*" u2="â" k="98" /> +<hkern u1="*" u2="á" k="98" /> +<hkern u1="*" u2="à" k="98" /> +<hkern u1="*" u2="Ý" k="-43" /> +<hkern u1="*" u2="Æ" k="180" /> +<hkern u1="*" u2="Å" k="180" /> +<hkern u1="*" u2="Ä" k="180" /> +<hkern u1="*" u2="Ã" k="180" /> +<hkern u1="*" u2="Â" k="180" /> +<hkern u1="*" u2="Á" k="180" /> +<hkern u1="*" u2="À" k="180" /> +<hkern u1="*" u2="»" k="41" /> +<hkern u1="*" u2="·" k="41" /> +<hkern u1="*" u2="­" k="41" /> +<hkern u1="*" u2="«" k="41" /> +<hkern u1="*" u2="q" k="98" /> +<hkern u1="*" u2="o" k="98" /> +<hkern u1="*" u2="e" k="98" /> +<hkern u1="*" u2="d" k="98" /> +<hkern u1="*" u2="c" k="98" /> +<hkern u1="*" u2="a" k="98" /> +<hkern u1="*" u2="\" k="-48" /> +<hkern u1="*" u2="Y" k="-43" /> +<hkern u1="*" u2="W" k="-34" /> +<hkern u1="*" u2="V" k="-48" /> +<hkern u1="*" u2="A" k="180" /> +<hkern u1="*" u2="/" k="180" /> +<hkern u1="*" u2="." k="45" /> +<hkern u1="*" u2="-" k="41" /> +<hkern u1="*" u2="," k="45" /> +<hkern u1="*" u2="&" k="180" /> +<hkern u1="," u2="›" k="214" /> +<hkern u1="," u2="‹" k="214" /> +<hkern u1="," u2="•" k="214" /> +<hkern u1="," u2="”" k="58" /> +<hkern u1="," u2="“" k="58" /> +<hkern u1="," u2="’" k="58" /> +<hkern u1="," u2="‘" k="58" /> +<hkern u1="," u2="—" k="214" /> +<hkern u1="," u2="–" k="214" /> +<hkern u1="," u2="Ÿ" k="237" /> +<hkern u1="," u2="Œ" k="53" /> +<hkern u1="," u2="ÿ" k="155" /> +<hkern u1="," u2="ý" k="155" /> +<hkern u1="," u2="Ý" k="237" /> +<hkern u1="," u2="Ø" k="53" /> +<hkern u1="," u2="Ö" k="53" /> +<hkern u1="," u2="Õ" k="53" /> +<hkern u1="," u2="Ô" k="53" /> +<hkern u1="," u2="Ó" k="53" /> +<hkern u1="," u2="Ò" k="53" /> +<hkern u1="," u2="Ç" k="53" /> +<hkern u1="," u2="»" k="214" /> +<hkern u1="," u2="º" k="58" /> +<hkern u1="," u2="·" k="214" /> +<hkern u1="," u2="°" k="58" /> +<hkern u1="," u2="®" k="53" /> +<hkern u1="," u2="­" k="214" /> +<hkern u1="," u2="«" k="214" /> +<hkern u1="," u2="ª" k="58" /> +<hkern u1="," u2="©" k="53" /> +<hkern u1="," u2="y" k="151" /> +<hkern u1="," u2="w" k="89" /> +<hkern u1="," u2="v" k="155" /> +<hkern u1="," u2="\" k="232" /> +<hkern u1="," u2="Y" k="237" /> +<hkern u1="," u2="W" k="122" /> +<hkern u1="," u2="V" k="232" /> +<hkern u1="," u2="T" k="218" /> +<hkern u1="," u2="Q" k="53" /> +<hkern u1="," u2="O" k="53" /> +<hkern u1="," u2="G" k="53" /> +<hkern u1="," u2="C" k="53" /> +<hkern u1="," u2="@" k="53" /> +<hkern u1="," u2="-" k="214" /> +<hkern u1="," u2="*" k="58" /> +<hkern u1="," u2="'" k="58" /> +<hkern u1="," u2=""" k="58" /> +<hkern u1="-" u2="…" k="175" /> +<hkern u1="-" u2="„" k="175" /> +<hkern u1="-" u2="”" k="41" /> +<hkern u1="-" u2="“" k="41" /> +<hkern u1="-" u2="‚" k="175" /> +<hkern u1="-" u2="’" k="41" /> +<hkern u1="-" u2="‘" k="41" /> +<hkern u1="-" u2="Ÿ" k="212" /> +<hkern u1="-" u2="Ý" k="212" /> +<hkern u1="-" u2="Æ" k="69" /> +<hkern u1="-" u2="Å" k="69" /> +<hkern u1="-" u2="Ä" k="69" /> +<hkern u1="-" u2="Ã" k="69" /> +<hkern u1="-" u2="Â" k="69" /> +<hkern u1="-" u2="Á" k="69" /> +<hkern u1="-" u2="À" k="69" /> +<hkern u1="-" u2="º" k="41" /> +<hkern u1="-" u2="°" k="41" /> +<hkern u1="-" u2="ª" k="41" /> +<hkern u1="-" u2="\" k="134" /> +<hkern u1="-" u2="Z" k="59" /> +<hkern u1="-" u2="Y" k="212" /> +<hkern u1="-" u2="X" k="72" /> +<hkern u1="-" u2="V" k="134" /> +<hkern u1="-" u2="T" k="201" /> +<hkern u1="-" u2="A" k="69" /> +<hkern u1="-" u2="/" k="69" /> +<hkern u1="-" u2="." k="175" /> +<hkern u1="-" u2="," k="175" /> +<hkern u1="-" u2="*" k="41" /> +<hkern u1="-" u2="'" k="41" /> +<hkern u1="-" u2="&" k="69" /> +<hkern u1="-" u2=""" k="41" /> +<hkern u1="." u2="›" k="214" /> +<hkern u1="." u2="‹" k="214" /> +<hkern u1="." u2="•" k="214" /> +<hkern u1="." u2="”" k="58" /> +<hkern u1="." u2="“" k="58" /> +<hkern u1="." u2="’" k="58" /> +<hkern u1="." u2="‘" k="58" /> +<hkern u1="." u2="—" k="214" /> +<hkern u1="." u2="–" k="214" /> +<hkern u1="." u2="Ÿ" k="237" /> +<hkern u1="." u2="Œ" k="53" /> +<hkern u1="." u2="ÿ" k="155" /> +<hkern u1="." u2="ý" k="155" /> +<hkern u1="." u2="Ý" k="237" /> +<hkern u1="." u2="Ø" k="53" /> +<hkern u1="." u2="Ö" k="53" /> +<hkern u1="." u2="Õ" k="53" /> +<hkern u1="." u2="Ô" k="53" /> +<hkern u1="." u2="Ó" k="53" /> +<hkern u1="." u2="Ò" k="53" /> +<hkern u1="." u2="Ç" k="53" /> +<hkern u1="." u2="»" k="214" /> +<hkern u1="." u2="º" k="58" /> +<hkern u1="." u2="·" k="214" /> +<hkern u1="." u2="°" k="58" /> +<hkern u1="." u2="®" k="53" /> +<hkern u1="." u2="­" k="214" /> +<hkern u1="." u2="«" k="214" /> +<hkern u1="." u2="ª" k="58" /> +<hkern u1="." u2="©" k="53" /> +<hkern u1="." u2="y" k="151" /> +<hkern u1="." u2="w" k="89" /> +<hkern u1="." u2="v" k="155" /> +<hkern u1="." u2="\" k="232" /> +<hkern u1="." u2="Y" k="237" /> +<hkern u1="." u2="W" k="122" /> +<hkern u1="." u2="V" k="232" /> +<hkern u1="." u2="T" k="218" /> +<hkern u1="." u2="Q" k="53" /> +<hkern u1="." u2="O" k="53" /> +<hkern u1="." u2="G" k="53" /> +<hkern u1="." u2="C" k="53" /> +<hkern u1="." u2="@" k="53" /> +<hkern u1="." u2="-" k="214" /> +<hkern u1="." u2="*" k="58" /> +<hkern u1="." u2="'" k="58" /> +<hkern u1="." u2=""" k="58" /> +<hkern u1="/" u2="›" k="134" /> +<hkern u1="/" u2="‹" k="134" /> +<hkern u1="/" u2="…" k="201" /> +<hkern u1="/" u2="•" k="134" /> +<hkern u1="/" u2="„" k="201" /> +<hkern u1="/" u2="”" k="-48" /> +<hkern u1="/" u2="“" k="-48" /> +<hkern u1="/" u2="‚" k="201" /> +<hkern u1="/" u2="’" k="-48" /> +<hkern u1="/" u2="‘" k="-48" /> +<hkern u1="/" u2="—" k="134" /> +<hkern u1="/" u2="–" k="134" /> +<hkern u1="/" u2="œ" k="132" /> +<hkern u1="/" u2="Œ" k="41" /> +<hkern u1="/" u2="ÿ" k="44" /> +<hkern u1="/" u2="ý" k="44" /> +<hkern u1="/" u2="ü" k="90" /> +<hkern u1="/" u2="û" k="90" /> +<hkern u1="/" u2="ú" k="90" /> +<hkern u1="/" u2="ù" k="90" /> +<hkern u1="/" u2="ø" k="132" /> +<hkern u1="/" u2="ö" k="132" /> +<hkern u1="/" u2="õ" k="132" /> +<hkern u1="/" u2="ô" k="132" /> +<hkern u1="/" u2="ó" k="132" /> +<hkern u1="/" u2="ò" k="132" /> +<hkern u1="/" u2="ñ" k="90" /> +<hkern u1="/" u2="ð" k="132" /> +<hkern u1="/" u2="ë" k="132" /> +<hkern u1="/" u2="ê" k="132" /> +<hkern u1="/" u2="é" k="132" /> +<hkern u1="/" u2="è" k="132" /> +<hkern u1="/" u2="ç" k="132" /> +<hkern u1="/" u2="æ" k="132" /> +<hkern u1="/" u2="å" k="132" /> +<hkern u1="/" u2="ä" k="132" /> +<hkern u1="/" u2="ã" k="132" /> +<hkern u1="/" u2="â" k="132" /> +<hkern u1="/" u2="á" k="132" /> +<hkern u1="/" u2="à" k="132" /> +<hkern u1="/" u2="Ø" k="41" /> +<hkern u1="/" u2="Ö" k="41" /> +<hkern u1="/" u2="Õ" k="41" /> +<hkern u1="/" u2="Ô" k="41" /> +<hkern u1="/" u2="Ó" k="41" /> +<hkern u1="/" u2="Ò" k="41" /> +<hkern u1="/" u2="Ç" k="41" /> +<hkern u1="/" u2="Æ" k="141" /> +<hkern u1="/" u2="Å" k="141" /> +<hkern u1="/" u2="Ä" k="141" /> +<hkern u1="/" u2="Ã" k="141" /> +<hkern u1="/" u2="Â" k="141" /> +<hkern u1="/" u2="Á" k="141" /> +<hkern u1="/" u2="À" k="141" /> +<hkern u1="/" u2="»" k="134" /> +<hkern u1="/" u2="º" k="-48" /> +<hkern u1="/" u2="¹" k="-82" /> +<hkern u1="/" u2="·" k="134" /> +<hkern u1="/" u2="µ" k="90" /> +<hkern u1="/" u2="³" k="-82" /> +<hkern u1="/" u2="²" k="-82" /> +<hkern u1="/" u2="°" k="-48" /> +<hkern u1="/" u2="®" k="41" /> +<hkern u1="/" u2="­" k="134" /> +<hkern u1="/" u2="«" k="134" /> +<hkern u1="/" u2="ª" k="-48" /> +<hkern u1="/" u2="©" k="41" /> +<hkern u1="/" u2="z" k="89" /> +<hkern u1="/" u2="y" k="44" /> +<hkern u1="/" u2="w" k="44" /> +<hkern u1="/" u2="v" k="44" /> +<hkern u1="/" u2="u" k="90" /> +<hkern u1="/" u2="s" k="130" /> +<hkern u1="/" u2="r" k="90" /> +<hkern u1="/" u2="q" k="132" /> +<hkern u1="/" u2="p" k="90" /> +<hkern u1="/" u2="o" k="132" /> +<hkern u1="/" u2="n" k="90" /> +<hkern u1="/" u2="m" k="90" /> +<hkern u1="/" u2="e" k="132" /> +<hkern u1="/" u2="d" k="132" /> +<hkern u1="/" u2="c" k="132" /> +<hkern u1="/" u2="a" k="132" /> +<hkern u1="/" u2="Q" k="41" /> +<hkern u1="/" u2="O" k="41" /> +<hkern u1="/" u2="J" k="160" /> +<hkern u1="/" u2="G" k="41" /> +<hkern u1="/" u2="C" k="41" /> +<hkern u1="/" u2="A" k="141" /> +<hkern u1="/" u2="@" k="41" /> +<hkern u1="/" u2="?" k="-50" /> +<hkern u1="/" u2=";" k="90" /> +<hkern u1="/" u2=":" k="90" /> +<hkern u1="/" u2="/" k="141" /> +<hkern u1="/" u2="." k="201" /> +<hkern u1="/" u2="-" k="134" /> +<hkern u1="/" u2="," k="201" /> +<hkern u1="/" u2="*" k="-48" /> +<hkern u1="/" u2="'" k="-48" /> +<hkern u1="/" u2="&" k="141" /> +<hkern u1="/" u2=""" k="-48" /> +<hkern u1="@" u2="”" k="53" /> +<hkern u1="@" u2="“" k="53" /> +<hkern u1="@" u2="’" k="53" /> +<hkern u1="@" u2="‘" k="53" /> +<hkern u1="@" u2="Ÿ" k="82" /> +<hkern u1="@" u2="Ý" k="82" /> +<hkern u1="@" u2="Æ" k="44" /> +<hkern u1="@" u2="Å" k="44" /> +<hkern u1="@" u2="Ä" k="44" /> +<hkern u1="@" u2="Ã" k="44" /> +<hkern u1="@" u2="Â" k="44" /> +<hkern u1="@" u2="Á" k="44" /> +<hkern u1="@" u2="À" k="44" /> +<hkern u1="@" u2="º" k="53" /> +<hkern u1="@" u2="°" k="53" /> +<hkern u1="@" u2="ª" k="53" /> +<hkern u1="@" u2="}" k="41" /> +<hkern u1="@" u2="]" k="41" /> +<hkern u1="@" u2="\" k="57" /> +<hkern u1="@" u2="Z" k="66" /> +<hkern u1="@" u2="Y" k="82" /> +<hkern u1="@" u2="X" k="87" /> +<hkern u1="@" u2="V" k="57" /> +<hkern u1="@" u2="T" k="80" /> +<hkern u1="@" u2="A" k="44" /> +<hkern u1="@" u2="/" k="44" /> +<hkern u1="@" u2="*" k="53" /> +<hkern u1="@" u2=")" k="41" /> +<hkern u1="@" u2="'" k="53" /> +<hkern u1="@" u2="&" k="44" /> +<hkern u1="@" u2=""" k="53" /> +<hkern u1="A" u2="›" k="69" /> +<hkern u1="A" u2="‹" k="69" /> +<hkern u1="A" u2="•" k="69" /> +<hkern u1="A" u2="”" k="196" /> +<hkern u1="A" u2="“" k="196" /> +<hkern u1="A" u2="’" k="196" /> +<hkern u1="A" u2="‘" k="196" /> +<hkern u1="A" u2="—" k="69" /> +<hkern u1="A" u2="–" k="69" /> +<hkern u1="A" u2="Ÿ" k="171" /> +<hkern u1="A" u2="Œ" k="60" /> +<hkern u1="A" u2="ÿ" k="60" /> +<hkern u1="A" u2="ý" k="60" /> +<hkern u1="A" u2="Ý" k="171" /> +<hkern u1="A" u2="Ü" k="41" /> +<hkern u1="A" u2="Û" k="41" /> +<hkern u1="A" u2="Ú" k="41" /> +<hkern u1="A" u2="Ù" k="41" /> +<hkern u1="A" u2="Ø" k="60" /> +<hkern u1="A" u2="Ö" k="60" /> +<hkern u1="A" u2="Õ" k="60" /> +<hkern u1="A" u2="Ô" k="60" /> +<hkern u1="A" u2="Ó" k="60" /> +<hkern u1="A" u2="Ò" k="60" /> +<hkern u1="A" u2="Ç" k="60" /> +<hkern u1="A" u2="»" k="69" /> +<hkern u1="A" u2="º" k="196" /> +<hkern u1="A" u2="¹" k="207" /> +<hkern u1="A" u2="·" k="69" /> +<hkern u1="A" u2="³" k="207" /> +<hkern u1="A" u2="²" k="207" /> +<hkern u1="A" u2="°" k="196" /> +<hkern u1="A" u2="®" k="60" /> +<hkern u1="A" u2="­" k="69" /> +<hkern u1="A" u2="«" k="69" /> +<hkern u1="A" u2="ª" k="196" /> +<hkern u1="A" u2="©" k="60" /> +<hkern u1="A" u2="y" k="60" /> +<hkern u1="A" u2="w" k="48" /> +<hkern u1="A" u2="v" k="60" /> +<hkern u1="A" u2="t" k="71" /> +<hkern u1="A" u2="\" k="141" /> +<hkern u1="A" u2="Y" k="171" /> +<hkern u1="A" u2="W" k="104" /> +<hkern u1="A" u2="V" k="141" /> +<hkern u1="A" u2="U" k="41" /> +<hkern u1="A" u2="T" k="151" /> +<hkern u1="A" u2="Q" k="60" /> +<hkern u1="A" u2="O" k="60" /> +<hkern u1="A" u2="J" k="-73" /> +<hkern u1="A" u2="G" k="60" /> +<hkern u1="A" u2="C" k="60" /> +<hkern u1="A" u2="@" k="60" /> +<hkern u1="A" u2="-" k="69" /> +<hkern u1="A" u2="*" k="196" /> +<hkern u1="A" u2="'" k="196" /> +<hkern u1="A" u2=""" k="196" /> +<hkern u1="C" u2="›" k="116" /> +<hkern u1="C" u2="‹" k="116" /> +<hkern u1="C" u2="•" k="116" /> +<hkern u1="C" u2="—" k="116" /> +<hkern u1="C" u2="–" k="116" /> +<hkern u1="C" u2="»" k="116" /> +<hkern u1="C" u2="·" k="116" /> +<hkern u1="C" u2="­" k="116" /> +<hkern u1="C" u2="«" k="116" /> +<hkern u1="C" u2="-" k="116" /> +<hkern u1="D" u2="”" k="53" /> +<hkern u1="D" u2="“" k="53" /> +<hkern u1="D" u2="’" k="53" /> +<hkern u1="D" u2="‘" k="53" /> +<hkern u1="D" u2="Ÿ" k="82" /> +<hkern u1="D" u2="Ý" k="82" /> +<hkern u1="D" u2="Æ" k="44" /> +<hkern u1="D" u2="Å" k="44" /> +<hkern u1="D" u2="Ä" k="44" /> +<hkern u1="D" u2="Ã" k="44" /> +<hkern u1="D" u2="Â" k="44" /> +<hkern u1="D" u2="Á" k="44" /> +<hkern u1="D" u2="À" k="44" /> +<hkern u1="D" u2="º" k="53" /> +<hkern u1="D" u2="°" k="53" /> +<hkern u1="D" u2="ª" k="53" /> +<hkern u1="D" u2="}" k="41" /> +<hkern u1="D" u2="]" k="41" /> +<hkern u1="D" u2="\" k="57" /> +<hkern u1="D" u2="Z" k="66" /> +<hkern u1="D" u2="Y" k="82" /> +<hkern u1="D" u2="X" k="87" /> +<hkern u1="D" u2="V" k="57" /> +<hkern u1="D" u2="T" k="80" /> +<hkern u1="D" u2="A" k="44" /> +<hkern u1="D" u2="/" k="44" /> +<hkern u1="D" u2="*" k="53" /> +<hkern u1="D" u2=")" k="41" /> +<hkern u1="D" u2="'" k="53" /> +<hkern u1="D" u2="&" k="44" /> +<hkern u1="D" u2=""" k="53" /> +<hkern u1="F" u2="…" k="184" /> +<hkern u1="F" u2="„" k="184" /> +<hkern u1="F" u2="‚" k="184" /> +<hkern u1="F" u2="œ" k="66" /> +<hkern u1="F" u2="ü" k="61" /> +<hkern u1="F" u2="û" k="61" /> +<hkern u1="F" u2="ú" k="61" /> +<hkern u1="F" u2="ù" k="61" /> +<hkern u1="F" u2="ø" k="66" /> +<hkern u1="F" u2="ö" k="66" /> +<hkern u1="F" u2="õ" k="66" /> +<hkern u1="F" u2="ô" k="66" /> +<hkern u1="F" u2="ó" k="66" /> +<hkern u1="F" u2="ò" k="66" /> +<hkern u1="F" u2="ñ" k="61" /> +<hkern u1="F" u2="ð" k="66" /> +<hkern u1="F" u2="ë" k="66" /> +<hkern u1="F" u2="ê" k="66" /> +<hkern u1="F" u2="é" k="66" /> +<hkern u1="F" u2="è" k="66" /> +<hkern u1="F" u2="ç" k="66" /> +<hkern u1="F" u2="æ" k="66" /> +<hkern u1="F" u2="å" k="66" /> +<hkern u1="F" u2="ä" k="66" /> +<hkern u1="F" u2="ã" k="66" /> +<hkern u1="F" u2="â" k="66" /> +<hkern u1="F" u2="á" k="66" /> +<hkern u1="F" u2="à" k="66" /> +<hkern u1="F" u2="Æ" k="151" /> +<hkern u1="F" u2="Å" k="151" /> +<hkern u1="F" u2="Ä" k="151" /> +<hkern u1="F" u2="Ã" k="151" /> +<hkern u1="F" u2="Â" k="151" /> +<hkern u1="F" u2="Á" k="151" /> +<hkern u1="F" u2="À" k="151" /> +<hkern u1="F" u2="µ" k="61" /> +<hkern u1="F" u2="u" k="61" /> +<hkern u1="F" u2="r" k="61" /> +<hkern u1="F" u2="q" k="66" /> +<hkern u1="F" u2="p" k="61" /> +<hkern u1="F" u2="o" k="66" /> +<hkern u1="F" u2="n" k="61" /> +<hkern u1="F" u2="m" k="61" /> +<hkern u1="F" u2="e" k="66" /> +<hkern u1="F" u2="d" k="66" /> +<hkern u1="F" u2="c" k="66" /> +<hkern u1="F" u2="a" k="66" /> +<hkern u1="F" u2="J" k="194" /> +<hkern u1="F" u2="A" k="151" /> +<hkern u1="F" u2="?" k="-20" /> +<hkern u1="F" u2=";" k="61" /> +<hkern u1="F" u2=":" k="61" /> +<hkern u1="F" u2="/" k="151" /> +<hkern u1="F" u2="." k="184" /> +<hkern u1="F" u2="," k="184" /> +<hkern u1="F" u2="&" k="151" /> +<hkern u1="J" u2="Æ" k="41" /> +<hkern u1="J" u2="Å" k="41" /> +<hkern u1="J" u2="Ä" k="41" /> +<hkern u1="J" u2="Ã" k="41" /> +<hkern u1="J" u2="Â" k="41" /> +<hkern u1="J" u2="Á" k="41" /> +<hkern u1="J" u2="À" k="41" /> +<hkern u1="J" u2="A" k="41" /> +<hkern u1="J" u2="/" k="41" /> +<hkern u1="J" u2="&" k="41" /> +<hkern u1="K" u2="›" k="72" /> +<hkern u1="K" u2="‹" k="72" /> +<hkern u1="K" u2="•" k="72" /> +<hkern u1="K" u2="”" k="-37" /> +<hkern u1="K" u2="“" k="-37" /> +<hkern u1="K" u2="’" k="-37" /> +<hkern u1="K" u2="‘" k="-37" /> +<hkern u1="K" u2="—" k="72" /> +<hkern u1="K" u2="–" k="72" /> +<hkern u1="K" u2="Œ" k="114" /> +<hkern u1="K" u2="ÿ" k="73" /> +<hkern u1="K" u2="ý" k="73" /> +<hkern u1="K" u2="Ø" k="114" /> +<hkern u1="K" u2="Ö" k="114" /> +<hkern u1="K" u2="Õ" k="114" /> +<hkern u1="K" u2="Ô" k="114" /> +<hkern u1="K" u2="Ó" k="114" /> +<hkern u1="K" u2="Ò" k="114" /> +<hkern u1="K" u2="Ç" k="114" /> +<hkern u1="K" u2="»" k="72" /> +<hkern u1="K" u2="º" k="-37" /> +<hkern u1="K" u2="·" k="72" /> +<hkern u1="K" u2="°" k="-37" /> +<hkern u1="K" u2="®" k="114" /> +<hkern u1="K" u2="­" k="72" /> +<hkern u1="K" u2="«" k="72" /> +<hkern u1="K" u2="ª" k="-37" /> +<hkern u1="K" u2="©" k="114" /> +<hkern u1="K" u2="y" k="73" /> +<hkern u1="K" u2="w" k="49" /> +<hkern u1="K" u2="v" k="73" /> +<hkern u1="K" u2="t" k="130" /> +<hkern u1="K" u2="f" k="57" /> +<hkern u1="K" u2="Q" k="114" /> +<hkern u1="K" u2="O" k="114" /> +<hkern u1="K" u2="G" k="114" /> +<hkern u1="K" u2="C" k="114" /> +<hkern u1="K" u2="@" k="114" /> +<hkern u1="K" u2="-" k="72" /> +<hkern u1="K" u2="*" k="-37" /> +<hkern u1="K" u2="'" k="-37" /> +<hkern u1="K" u2=""" k="-37" /> +<hkern u1="L" u2="›" k="182" /> +<hkern u1="L" u2="‹" k="182" /> +<hkern u1="L" u2="•" k="182" /> +<hkern u1="L" u2="”" k="244" /> +<hkern u1="L" u2="“" k="244" /> +<hkern u1="L" u2="’" k="244" /> +<hkern u1="L" u2="‘" k="244" /> +<hkern u1="L" u2="—" k="182" /> +<hkern u1="L" u2="–" k="182" /> +<hkern u1="L" u2="Ÿ" k="232" /> +<hkern u1="L" u2="Œ" k="98" /> +<hkern u1="L" u2="ÿ" k="134" /> +<hkern u1="L" u2="ý" k="134" /> +<hkern u1="L" u2="Ý" k="232" /> +<hkern u1="L" u2="Ø" k="98" /> +<hkern u1="L" u2="Ö" k="98" /> +<hkern u1="L" u2="Õ" k="98" /> +<hkern u1="L" u2="Ô" k="98" /> +<hkern u1="L" u2="Ó" k="98" /> +<hkern u1="L" u2="Ò" k="98" /> +<hkern u1="L" u2="Ç" k="98" /> +<hkern u1="L" u2="»" k="182" /> +<hkern u1="L" u2="º" k="244" /> +<hkern u1="L" u2="¹" k="232" /> +<hkern u1="L" u2="·" k="182" /> +<hkern u1="L" u2="³" k="232" /> +<hkern u1="L" u2="²" k="232" /> +<hkern u1="L" u2="°" k="244" /> +<hkern u1="L" u2="®" k="98" /> +<hkern u1="L" u2="­" k="182" /> +<hkern u1="L" u2="«" k="182" /> +<hkern u1="L" u2="ª" k="244" /> +<hkern u1="L" u2="©" k="98" /> +<hkern u1="L" u2="y" k="134" /> +<hkern u1="L" u2="w" k="90" /> +<hkern u1="L" u2="v" k="134" /> +<hkern u1="L" u2="\" k="196" /> +<hkern u1="L" u2="Y" k="232" /> +<hkern u1="L" u2="W" k="171" /> +<hkern u1="L" u2="V" k="196" /> +<hkern u1="L" u2="T" k="205" /> +<hkern u1="L" u2="Q" k="98" /> +<hkern u1="L" u2="O" k="98" /> +<hkern u1="L" u2="G" k="98" /> +<hkern u1="L" u2="C" k="98" /> +<hkern u1="L" u2="@" k="98" /> +<hkern u1="L" u2="-" k="182" /> +<hkern u1="L" u2="*" k="244" /> +<hkern u1="L" u2="'" k="244" /> +<hkern u1="L" u2=""" k="244" /> +<hkern u1="O" u2="”" k="53" /> +<hkern u1="O" u2="“" k="53" /> +<hkern u1="O" u2="’" k="53" /> +<hkern u1="O" u2="‘" k="53" /> +<hkern u1="O" u2="Ÿ" k="82" /> +<hkern u1="O" u2="Ý" k="82" /> +<hkern u1="O" u2="Æ" k="44" /> +<hkern u1="O" u2="Å" k="44" /> +<hkern u1="O" u2="Ä" k="44" /> +<hkern u1="O" u2="Ã" k="44" /> +<hkern u1="O" u2="Â" k="44" /> +<hkern u1="O" u2="Á" k="44" /> +<hkern u1="O" u2="À" k="44" /> +<hkern u1="O" u2="º" k="53" /> +<hkern u1="O" u2="°" k="53" /> +<hkern u1="O" u2="ª" k="53" /> +<hkern u1="O" u2="}" k="41" /> +<hkern u1="O" u2="]" k="41" /> +<hkern u1="O" u2="\" k="57" /> +<hkern u1="O" u2="Z" k="66" /> +<hkern u1="O" u2="Y" k="82" /> +<hkern u1="O" u2="X" k="87" /> +<hkern u1="O" u2="V" k="57" /> +<hkern u1="O" u2="T" k="80" /> +<hkern u1="O" u2="A" k="44" /> +<hkern u1="O" u2="/" k="44" /> +<hkern u1="O" u2="*" k="53" /> +<hkern u1="O" u2=")" k="41" /> +<hkern u1="O" u2="'" k="53" /> +<hkern u1="O" u2="&" k="44" /> +<hkern u1="O" u2=""" k="53" /> +<hkern u1="P" u2="…" k="188" /> +<hkern u1="P" u2="„" k="188" /> +<hkern u1="P" u2="‚" k="188" /> +<hkern u1="P" u2="œ" k="31" /> +<hkern u1="P" u2="ø" k="31" /> +<hkern u1="P" u2="ö" k="31" /> +<hkern u1="P" u2="õ" k="31" /> +<hkern u1="P" u2="ô" k="31" /> +<hkern u1="P" u2="ó" k="31" /> +<hkern u1="P" u2="ò" k="31" /> +<hkern u1="P" u2="ð" k="31" /> +<hkern u1="P" u2="ë" k="31" /> +<hkern u1="P" u2="ê" k="31" /> +<hkern u1="P" u2="é" k="31" /> +<hkern u1="P" u2="è" k="31" /> +<hkern u1="P" u2="ç" k="31" /> +<hkern u1="P" u2="æ" k="31" /> +<hkern u1="P" u2="å" k="31" /> +<hkern u1="P" u2="ä" k="31" /> +<hkern u1="P" u2="ã" k="31" /> +<hkern u1="P" u2="â" k="31" /> +<hkern u1="P" u2="á" k="31" /> +<hkern u1="P" u2="à" k="31" /> +<hkern u1="P" u2="Æ" k="159" /> +<hkern u1="P" u2="Å" k="159" /> +<hkern u1="P" u2="Ä" k="159" /> +<hkern u1="P" u2="Ã" k="159" /> +<hkern u1="P" u2="Â" k="159" /> +<hkern u1="P" u2="Á" k="159" /> +<hkern u1="P" u2="À" k="159" /> +<hkern u1="P" u2="q" k="31" /> +<hkern u1="P" u2="o" k="31" /> +<hkern u1="P" u2="e" k="31" /> +<hkern u1="P" u2="d" k="31" /> +<hkern u1="P" u2="c" k="31" /> +<hkern u1="P" u2="a" k="31" /> +<hkern u1="P" u2="J" k="196" /> +<hkern u1="P" u2="A" k="159" /> +<hkern u1="P" u2="/" k="159" /> +<hkern u1="P" u2="." k="188" /> +<hkern u1="P" u2="," k="188" /> +<hkern u1="P" u2="&" k="159" /> +<hkern u1="Q" u2="”" k="53" /> +<hkern u1="Q" u2="“" k="53" /> +<hkern u1="Q" u2="’" k="53" /> +<hkern u1="Q" u2="‘" k="53" /> +<hkern u1="Q" u2="Ÿ" k="82" /> +<hkern u1="Q" u2="Ý" k="82" /> +<hkern u1="Q" u2="Æ" k="44" /> +<hkern u1="Q" u2="Å" k="44" /> +<hkern u1="Q" u2="Ä" k="44" /> +<hkern u1="Q" u2="Ã" k="44" /> +<hkern u1="Q" u2="Â" k="44" /> +<hkern u1="Q" u2="Á" k="44" /> +<hkern u1="Q" u2="À" k="44" /> +<hkern u1="Q" u2="º" k="53" /> +<hkern u1="Q" u2="°" k="53" /> +<hkern u1="Q" u2="ª" k="53" /> +<hkern u1="Q" u2="}" k="41" /> +<hkern u1="Q" u2="]" k="41" /> +<hkern u1="Q" u2="\" k="57" /> +<hkern u1="Q" u2="Z" k="66" /> +<hkern u1="Q" u2="Y" k="82" /> +<hkern u1="Q" u2="X" k="87" /> +<hkern u1="Q" u2="V" k="57" /> +<hkern u1="Q" u2="T" k="80" /> +<hkern u1="Q" u2="A" k="44" /> +<hkern u1="Q" u2="/" k="44" /> +<hkern u1="Q" u2="*" k="53" /> +<hkern u1="Q" u2=")" k="41" /> +<hkern u1="Q" u2="'" k="53" /> +<hkern u1="Q" u2="&" k="44" /> +<hkern u1="Q" u2=""" k="53" /> +<hkern u1="R" u2="Œ" k="41" /> +<hkern u1="R" u2="Ü" k="52" /> +<hkern u1="R" u2="Û" k="52" /> +<hkern u1="R" u2="Ú" k="52" /> +<hkern u1="R" u2="Ù" k="52" /> +<hkern u1="R" u2="Ø" k="41" /> +<hkern u1="R" u2="Ö" k="41" /> +<hkern u1="R" u2="Õ" k="41" /> +<hkern u1="R" u2="Ô" k="41" /> +<hkern u1="R" u2="Ó" k="41" /> +<hkern u1="R" u2="Ò" k="41" /> +<hkern u1="R" u2="Ç" k="41" /> +<hkern u1="R" u2="®" k="41" /> +<hkern u1="R" u2="©" k="41" /> +<hkern u1="R" u2="U" k="52" /> +<hkern u1="R" u2="T" k="57" /> +<hkern u1="R" u2="Q" k="41" /> +<hkern u1="R" u2="O" k="41" /> +<hkern u1="R" u2="G" k="41" /> +<hkern u1="R" u2="C" k="41" /> +<hkern u1="R" u2="@" k="41" /> +<hkern u1="T" u2="›" k="184" /> +<hkern u1="T" u2="‹" k="184" /> +<hkern u1="T" u2="…" k="184" /> +<hkern u1="T" u2="•" k="184" /> +<hkern u1="T" u2="„" k="184" /> +<hkern u1="T" u2="‚" k="184" /> +<hkern u1="T" u2="—" k="184" /> +<hkern u1="T" u2="–" k="184" /> +<hkern u1="T" u2="œ" k="209" /> +<hkern u1="T" u2="Œ" k="80" /> +<hkern u1="T" u2="ÿ" k="168" /> +<hkern u1="T" u2="ý" k="168" /> +<hkern u1="T" u2="ü" k="151" /> +<hkern u1="T" u2="û" k="151" /> +<hkern u1="T" u2="ú" k="151" /> +<hkern u1="T" u2="ù" k="151" /> +<hkern u1="T" u2="ø" k="209" /> +<hkern u1="T" u2="ö" k="209" /> +<hkern u1="T" u2="õ" k="209" /> +<hkern u1="T" u2="ô" k="209" /> +<hkern u1="T" u2="ó" k="209" /> +<hkern u1="T" u2="ò" k="209" /> +<hkern u1="T" u2="ñ" k="151" /> +<hkern u1="T" u2="ð" k="209" /> +<hkern u1="T" u2="ë" k="209" /> +<hkern u1="T" u2="ê" k="209" /> +<hkern u1="T" u2="é" k="209" /> +<hkern u1="T" u2="è" k="209" /> +<hkern u1="T" u2="ç" k="209" /> +<hkern u1="T" u2="æ" k="209" /> +<hkern u1="T" u2="å" k="209" /> +<hkern u1="T" u2="ä" k="209" /> +<hkern u1="T" u2="ã" k="209" /> +<hkern u1="T" u2="â" k="209" /> +<hkern u1="T" u2="á" k="209" /> +<hkern u1="T" u2="à" k="209" /> +<hkern u1="T" u2="Ø" k="80" /> +<hkern u1="T" u2="Ö" k="80" /> +<hkern u1="T" u2="Õ" k="80" /> +<hkern u1="T" u2="Ô" k="80" /> +<hkern u1="T" u2="Ó" k="80" /> +<hkern u1="T" u2="Ò" k="80" /> +<hkern u1="T" u2="Ç" k="80" /> +<hkern u1="T" u2="Æ" k="151" /> +<hkern u1="T" u2="Å" k="151" /> +<hkern u1="T" u2="Ä" k="151" /> +<hkern u1="T" u2="Ã" k="151" /> +<hkern u1="T" u2="Â" k="151" /> +<hkern u1="T" u2="Á" k="151" /> +<hkern u1="T" u2="À" k="151" /> +<hkern u1="T" u2="»" k="184" /> +<hkern u1="T" u2="·" k="184" /> +<hkern u1="T" u2="µ" k="151" /> +<hkern u1="T" u2="®" k="80" /> +<hkern u1="T" u2="­" k="184" /> +<hkern u1="T" u2="«" k="184" /> +<hkern u1="T" u2="©" k="80" /> +<hkern u1="T" u2="z" k="170" /> +<hkern u1="T" u2="y" k="184" /> +<hkern u1="T" u2="x" k="177" /> +<hkern u1="T" u2="w" k="127" /> +<hkern u1="T" u2="v" k="168" /> +<hkern u1="T" u2="u" k="151" /> +<hkern u1="T" u2="s" k="182" /> +<hkern u1="T" u2="r" k="151" /> +<hkern u1="T" u2="q" k="209" /> +<hkern u1="T" u2="p" k="151" /> +<hkern u1="T" u2="o" k="209" /> +<hkern u1="T" u2="n" k="151" /> +<hkern u1="T" u2="m" k="151" /> +<hkern u1="T" u2="g" k="187" /> +<hkern u1="T" u2="e" k="209" /> +<hkern u1="T" u2="d" k="209" /> +<hkern u1="T" u2="c" k="209" /> +<hkern u1="T" u2="a" k="209" /> +<hkern u1="T" u2="Q" k="80" /> +<hkern u1="T" u2="O" k="80" /> +<hkern u1="T" u2="J" k="205" /> +<hkern u1="T" u2="G" k="80" /> +<hkern u1="T" u2="C" k="80" /> +<hkern u1="T" u2="A" k="151" /> +<hkern u1="T" u2="@" k="80" /> +<hkern u1="T" u2="?" k="-35" /> +<hkern u1="T" u2=";" k="151" /> +<hkern u1="T" u2=":" k="151" /> +<hkern u1="T" u2="/" k="151" /> +<hkern u1="T" u2="." k="184" /> +<hkern u1="T" u2="-" k="184" /> +<hkern u1="T" u2="," k="184" /> +<hkern u1="T" u2="&" k="151" /> +<hkern u1="U" u2="Æ" k="41" /> +<hkern u1="U" u2="Å" k="41" /> +<hkern u1="U" u2="Ä" k="41" /> +<hkern u1="U" u2="Ã" k="41" /> +<hkern u1="U" u2="Â" k="41" /> +<hkern u1="U" u2="Á" k="41" /> +<hkern u1="U" u2="À" k="41" /> +<hkern u1="U" u2="A" k="41" /> +<hkern u1="U" u2="/" k="41" /> +<hkern u1="U" u2="&" k="41" /> +<hkern u1="V" u2="›" k="134" /> +<hkern u1="V" u2="‹" k="134" /> +<hkern u1="V" u2="…" k="201" /> +<hkern u1="V" u2="•" k="134" /> +<hkern u1="V" u2="„" k="201" /> +<hkern u1="V" u2="”" k="-48" /> +<hkern u1="V" u2="“" k="-48" /> +<hkern u1="V" u2="‚" k="201" /> +<hkern u1="V" u2="’" k="-48" /> +<hkern u1="V" u2="‘" k="-48" /> +<hkern u1="V" u2="—" k="134" /> +<hkern u1="V" u2="–" k="134" /> +<hkern u1="V" u2="œ" k="132" /> +<hkern u1="V" u2="Œ" k="41" /> +<hkern u1="V" u2="ÿ" k="44" /> +<hkern u1="V" u2="ý" k="44" /> +<hkern u1="V" u2="ü" k="90" /> +<hkern u1="V" u2="û" k="90" /> +<hkern u1="V" u2="ú" k="90" /> +<hkern u1="V" u2="ù" k="90" /> +<hkern u1="V" u2="ø" k="132" /> +<hkern u1="V" u2="ö" k="132" /> +<hkern u1="V" u2="õ" k="132" /> +<hkern u1="V" u2="ô" k="132" /> +<hkern u1="V" u2="ó" k="132" /> +<hkern u1="V" u2="ò" k="132" /> +<hkern u1="V" u2="ñ" k="90" /> +<hkern u1="V" u2="ð" k="132" /> +<hkern u1="V" u2="ë" k="132" /> +<hkern u1="V" u2="ê" k="132" /> +<hkern u1="V" u2="é" k="132" /> +<hkern u1="V" u2="è" k="132" /> +<hkern u1="V" u2="ç" k="132" /> +<hkern u1="V" u2="æ" k="132" /> +<hkern u1="V" u2="å" k="132" /> +<hkern u1="V" u2="ä" k="132" /> +<hkern u1="V" u2="ã" k="132" /> +<hkern u1="V" u2="â" k="132" /> +<hkern u1="V" u2="á" k="132" /> +<hkern u1="V" u2="à" k="132" /> +<hkern u1="V" u2="Ø" k="41" /> +<hkern u1="V" u2="Ö" k="41" /> +<hkern u1="V" u2="Õ" k="41" /> +<hkern u1="V" u2="Ô" k="41" /> +<hkern u1="V" u2="Ó" k="41" /> +<hkern u1="V" u2="Ò" k="41" /> +<hkern u1="V" u2="Ç" k="41" /> +<hkern u1="V" u2="Æ" k="141" /> +<hkern u1="V" u2="Å" k="141" /> +<hkern u1="V" u2="Ä" k="141" /> +<hkern u1="V" u2="Ã" k="141" /> +<hkern u1="V" u2="Â" k="141" /> +<hkern u1="V" u2="Á" k="141" /> +<hkern u1="V" u2="À" k="141" /> +<hkern u1="V" u2="»" k="134" /> +<hkern u1="V" u2="º" k="-48" /> +<hkern u1="V" u2="¹" k="-82" /> +<hkern u1="V" u2="·" k="134" /> +<hkern u1="V" u2="µ" k="90" /> +<hkern u1="V" u2="³" k="-82" /> +<hkern u1="V" u2="²" k="-82" /> +<hkern u1="V" u2="°" k="-48" /> +<hkern u1="V" u2="®" k="41" /> +<hkern u1="V" u2="­" k="134" /> +<hkern u1="V" u2="«" k="134" /> +<hkern u1="V" u2="ª" k="-48" /> +<hkern u1="V" u2="©" k="41" /> +<hkern u1="V" u2="z" k="89" /> +<hkern u1="V" u2="y" k="44" /> +<hkern u1="V" u2="w" k="44" /> +<hkern u1="V" u2="v" k="44" /> +<hkern u1="V" u2="u" k="90" /> +<hkern u1="V" u2="s" k="130" /> +<hkern u1="V" u2="r" k="90" /> +<hkern u1="V" u2="q" k="132" /> +<hkern u1="V" u2="p" k="90" /> +<hkern u1="V" u2="o" k="132" /> +<hkern u1="V" u2="n" k="90" /> +<hkern u1="V" u2="m" k="90" /> +<hkern u1="V" u2="e" k="132" /> +<hkern u1="V" u2="d" k="132" /> +<hkern u1="V" u2="c" k="132" /> +<hkern u1="V" u2="a" k="132" /> +<hkern u1="V" u2="Q" k="41" /> +<hkern u1="V" u2="O" k="41" /> +<hkern u1="V" u2="J" k="160" /> +<hkern u1="V" u2="G" k="41" /> +<hkern u1="V" u2="C" k="41" /> +<hkern u1="V" u2="A" k="141" /> +<hkern u1="V" u2="@" k="41" /> +<hkern u1="V" u2="?" k="-50" /> +<hkern u1="V" u2=";" k="90" /> +<hkern u1="V" u2=":" k="90" /> +<hkern u1="V" u2="/" k="141" /> +<hkern u1="V" u2="." k="201" /> +<hkern u1="V" u2="-" k="134" /> +<hkern u1="V" u2="," k="201" /> +<hkern u1="V" u2="*" k="-48" /> +<hkern u1="V" u2="'" k="-48" /> +<hkern u1="V" u2="&" k="141" /> +<hkern u1="V" u2=""" k="-48" /> +<hkern u1="W" u2="…" k="102" /> +<hkern u1="W" u2="„" k="102" /> +<hkern u1="W" u2="”" k="-50" /> +<hkern u1="W" u2="“" k="-50" /> +<hkern u1="W" u2="‚" k="102" /> +<hkern u1="W" u2="’" k="-50" /> +<hkern u1="W" u2="‘" k="-50" /> +<hkern u1="W" u2="œ" k="124" /> +<hkern u1="W" u2="ü" k="75" /> +<hkern u1="W" u2="û" k="75" /> +<hkern u1="W" u2="ú" k="75" /> +<hkern u1="W" u2="ù" k="75" /> +<hkern u1="W" u2="ø" k="124" /> +<hkern u1="W" u2="ö" k="124" /> +<hkern u1="W" u2="õ" k="124" /> +<hkern u1="W" u2="ô" k="124" /> +<hkern u1="W" u2="ó" k="124" /> +<hkern u1="W" u2="ò" k="124" /> +<hkern u1="W" u2="ñ" k="75" /> +<hkern u1="W" u2="ð" k="124" /> +<hkern u1="W" u2="ë" k="124" /> +<hkern u1="W" u2="ê" k="124" /> +<hkern u1="W" u2="é" k="124" /> +<hkern u1="W" u2="è" k="124" /> +<hkern u1="W" u2="ç" k="124" /> +<hkern u1="W" u2="æ" k="124" /> +<hkern u1="W" u2="å" k="124" /> +<hkern u1="W" u2="ä" k="124" /> +<hkern u1="W" u2="ã" k="124" /> +<hkern u1="W" u2="â" k="124" /> +<hkern u1="W" u2="á" k="124" /> +<hkern u1="W" u2="à" k="124" /> +<hkern u1="W" u2="Æ" k="89" /> +<hkern u1="W" u2="Å" k="89" /> +<hkern u1="W" u2="Ä" k="89" /> +<hkern u1="W" u2="Ã" k="89" /> +<hkern u1="W" u2="Â" k="89" /> +<hkern u1="W" u2="Á" k="89" /> +<hkern u1="W" u2="À" k="89" /> +<hkern u1="W" u2="º" k="-50" /> +<hkern u1="W" u2="¹" k="-61" /> +<hkern u1="W" u2="µ" k="75" /> +<hkern u1="W" u2="³" k="-61" /> +<hkern u1="W" u2="²" k="-61" /> +<hkern u1="W" u2="°" k="-50" /> +<hkern u1="W" u2="ª" k="-50" /> +<hkern u1="W" u2="u" k="75" /> +<hkern u1="W" u2="s" k="95" /> +<hkern u1="W" u2="r" k="75" /> +<hkern u1="W" u2="q" k="124" /> +<hkern u1="W" u2="p" k="75" /> +<hkern u1="W" u2="o" k="124" /> +<hkern u1="W" u2="n" k="75" /> +<hkern u1="W" u2="m" k="75" /> +<hkern u1="W" u2="g" k="92" /> +<hkern u1="W" u2="e" k="124" /> +<hkern u1="W" u2="d" k="124" /> +<hkern u1="W" u2="c" k="124" /> +<hkern u1="W" u2="a" k="124" /> +<hkern u1="W" u2="J" k="114" /> +<hkern u1="W" u2="A" k="89" /> +<hkern u1="W" u2=";" k="75" /> +<hkern u1="W" u2=":" k="75" /> +<hkern u1="W" u2="/" k="89" /> +<hkern u1="W" u2="." k="102" /> +<hkern u1="W" u2="," k="102" /> +<hkern u1="W" u2="*" k="-50" /> +<hkern u1="W" u2="'" k="-50" /> +<hkern u1="W" u2="&" k="89" /> +<hkern u1="W" u2=""" k="-50" /> +<hkern u1="X" u2="›" k="72" /> +<hkern u1="X" u2="‹" k="72" /> +<hkern u1="X" u2="•" k="72" /> +<hkern u1="X" u2="”" k="-37" /> +<hkern u1="X" u2="“" k="-37" /> +<hkern u1="X" u2="’" k="-37" /> +<hkern u1="X" u2="‘" k="-37" /> +<hkern u1="X" u2="—" k="72" /> +<hkern u1="X" u2="–" k="72" /> +<hkern u1="X" u2="Œ" k="114" /> +<hkern u1="X" u2="ÿ" k="73" /> +<hkern u1="X" u2="ý" k="73" /> +<hkern u1="X" u2="Ø" k="114" /> +<hkern u1="X" u2="Ö" k="114" /> +<hkern u1="X" u2="Õ" k="114" /> +<hkern u1="X" u2="Ô" k="114" /> +<hkern u1="X" u2="Ó" k="114" /> +<hkern u1="X" u2="Ò" k="114" /> +<hkern u1="X" u2="Ç" k="114" /> +<hkern u1="X" u2="»" k="72" /> +<hkern u1="X" u2="º" k="-37" /> +<hkern u1="X" u2="·" k="72" /> +<hkern u1="X" u2="°" k="-37" /> +<hkern u1="X" u2="®" k="114" /> +<hkern u1="X" u2="­" k="72" /> +<hkern u1="X" u2="«" k="72" /> +<hkern u1="X" u2="ª" k="-37" /> +<hkern u1="X" u2="©" k="114" /> +<hkern u1="X" u2="y" k="73" /> +<hkern u1="X" u2="w" k="49" /> +<hkern u1="X" u2="v" k="73" /> +<hkern u1="X" u2="t" k="130" /> +<hkern u1="X" u2="f" k="57" /> +<hkern u1="X" u2="Q" k="114" /> +<hkern u1="X" u2="O" k="114" /> +<hkern u1="X" u2="G" k="114" /> +<hkern u1="X" u2="C" k="114" /> +<hkern u1="X" u2="@" k="114" /> +<hkern u1="X" u2="-" k="72" /> +<hkern u1="X" u2="*" k="-37" /> +<hkern u1="X" u2="'" k="-37" /> +<hkern u1="X" u2=""" k="-37" /> +<hkern u1="Y" u2="›" k="196" /> +<hkern u1="Y" u2="‹" k="196" /> +<hkern u1="Y" u2="…" k="266" /> +<hkern u1="Y" u2="•" k="196" /> +<hkern u1="Y" u2="„" k="266" /> +<hkern u1="Y" u2="”" k="-59" /> +<hkern u1="Y" u2="“" k="-59" /> +<hkern u1="Y" u2="‚" k="266" /> +<hkern u1="Y" u2="’" k="-59" /> +<hkern u1="Y" u2="‘" k="-59" /> +<hkern u1="Y" u2="—" k="196" /> +<hkern u1="Y" u2="–" k="196" /> +<hkern u1="Y" u2="œ" k="201" /> +<hkern u1="Y" u2="Œ" k="66" /> +<hkern u1="Y" u2="ü" k="115" /> +<hkern u1="Y" u2="û" k="115" /> +<hkern u1="Y" u2="ú" k="115" /> +<hkern u1="Y" u2="ù" k="115" /> +<hkern u1="Y" u2="ø" k="201" /> +<hkern u1="Y" u2="ö" k="201" /> +<hkern u1="Y" u2="õ" k="201" /> +<hkern u1="Y" u2="ô" k="201" /> +<hkern u1="Y" u2="ó" k="201" /> +<hkern u1="Y" u2="ò" k="201" /> +<hkern u1="Y" u2="ñ" k="115" /> +<hkern u1="Y" u2="ð" k="201" /> +<hkern u1="Y" u2="ë" k="201" /> +<hkern u1="Y" u2="ê" k="201" /> +<hkern u1="Y" u2="é" k="201" /> +<hkern u1="Y" u2="è" k="201" /> +<hkern u1="Y" u2="ç" k="201" /> +<hkern u1="Y" u2="æ" k="201" /> +<hkern u1="Y" u2="å" k="201" /> +<hkern u1="Y" u2="ä" k="201" /> +<hkern u1="Y" u2="ã" k="201" /> +<hkern u1="Y" u2="â" k="201" /> +<hkern u1="Y" u2="á" k="201" /> +<hkern u1="Y" u2="à" k="201" /> +<hkern u1="Y" u2="Ø" k="66" /> +<hkern u1="Y" u2="Ö" k="66" /> +<hkern u1="Y" u2="Õ" k="66" /> +<hkern u1="Y" u2="Ô" k="66" /> +<hkern u1="Y" u2="Ó" k="66" /> +<hkern u1="Y" u2="Ò" k="66" /> +<hkern u1="Y" u2="Ç" k="66" /> +<hkern u1="Y" u2="Æ" k="155" /> +<hkern u1="Y" u2="Å" k="155" /> +<hkern u1="Y" u2="Ä" k="155" /> +<hkern u1="Y" u2="Ã" k="155" /> +<hkern u1="Y" u2="Â" k="155" /> +<hkern u1="Y" u2="Á" k="155" /> +<hkern u1="Y" u2="À" k="155" /> +<hkern u1="Y" u2="»" k="196" /> +<hkern u1="Y" u2="º" k="-59" /> +<hkern u1="Y" u2="¹" k="-73" /> +<hkern u1="Y" u2="·" k="196" /> +<hkern u1="Y" u2="µ" k="115" /> +<hkern u1="Y" u2="³" k="-73" /> +<hkern u1="Y" u2="²" k="-73" /> +<hkern u1="Y" u2="°" k="-59" /> +<hkern u1="Y" u2="®" k="66" /> +<hkern u1="Y" u2="­" k="196" /> +<hkern u1="Y" u2="«" k="196" /> +<hkern u1="Y" u2="ª" k="-59" /> +<hkern u1="Y" u2="©" k="66" /> +<hkern u1="Y" u2="z" k="119" /> +<hkern u1="Y" u2="u" k="115" /> +<hkern u1="Y" u2="s" k="201" /> +<hkern u1="Y" u2="r" k="115" /> +<hkern u1="Y" u2="q" k="201" /> +<hkern u1="Y" u2="p" k="115" /> +<hkern u1="Y" u2="o" k="201" /> +<hkern u1="Y" u2="n" k="115" /> +<hkern u1="Y" u2="m" k="115" /> +<hkern u1="Y" u2="g" k="179" /> +<hkern u1="Y" u2="e" k="201" /> +<hkern u1="Y" u2="d" k="201" /> +<hkern u1="Y" u2="c" k="201" /> +<hkern u1="Y" u2="a" k="201" /> +<hkern u1="Y" u2="Q" k="66" /> +<hkern u1="Y" u2="O" k="66" /> +<hkern u1="Y" u2="J" k="205" /> +<hkern u1="Y" u2="G" k="66" /> +<hkern u1="Y" u2="C" k="66" /> +<hkern u1="Y" u2="A" k="155" /> +<hkern u1="Y" u2="@" k="66" /> +<hkern u1="Y" u2="?" k="-51" /> +<hkern u1="Y" u2=";" k="115" /> +<hkern u1="Y" u2=":" k="115" /> +<hkern u1="Y" u2="/" k="155" /> +<hkern u1="Y" u2="." k="266" /> +<hkern u1="Y" u2="-" k="196" /> +<hkern u1="Y" u2="," k="266" /> +<hkern u1="Y" u2="*" k="-59" /> +<hkern u1="Y" u2="'" k="-59" /> +<hkern u1="Y" u2="&" k="155" /> +<hkern u1="Y" u2=""" k="-59" /> +<hkern u1="Z" u2="›" k="84" /> +<hkern u1="Z" u2="‹" k="84" /> +<hkern u1="Z" u2="•" k="84" /> +<hkern u1="Z" u2="—" k="84" /> +<hkern u1="Z" u2="–" k="84" /> +<hkern u1="Z" u2="Œ" k="50" /> +<hkern u1="Z" u2="Ø" k="50" /> +<hkern u1="Z" u2="Ö" k="50" /> +<hkern u1="Z" u2="Õ" k="50" /> +<hkern u1="Z" u2="Ô" k="50" /> +<hkern u1="Z" u2="Ó" k="50" /> +<hkern u1="Z" u2="Ò" k="50" /> +<hkern u1="Z" u2="Ç" k="50" /> +<hkern u1="Z" u2="»" k="84" /> +<hkern u1="Z" u2="·" k="84" /> +<hkern u1="Z" u2="®" k="50" /> +<hkern u1="Z" u2="­" k="84" /> +<hkern u1="Z" u2="«" k="84" /> +<hkern u1="Z" u2="©" k="50" /> +<hkern u1="Z" u2="Q" k="50" /> +<hkern u1="Z" u2="O" k="50" /> +<hkern u1="Z" u2="G" k="50" /> +<hkern u1="Z" u2="C" k="50" /> +<hkern u1="Z" u2="@" k="50" /> +<hkern u1="Z" u2="?" k="-39" /> +<hkern u1="Z" u2="-" k="84" /> +<hkern u1="[" u2="œ" k="37" /> +<hkern u1="[" u2="Œ" k="41" /> +<hkern u1="[" u2="ø" k="37" /> +<hkern u1="[" u2="ö" k="37" /> +<hkern u1="[" u2="õ" k="37" /> +<hkern u1="[" u2="ô" k="37" /> +<hkern u1="[" u2="ó" k="37" /> +<hkern u1="[" u2="ò" k="37" /> +<hkern u1="[" u2="ð" k="37" /> +<hkern u1="[" u2="ë" k="37" /> +<hkern u1="[" u2="ê" k="37" /> +<hkern u1="[" u2="é" k="37" /> +<hkern u1="[" u2="è" k="37" /> +<hkern u1="[" u2="ç" k="37" /> +<hkern u1="[" u2="æ" k="37" /> +<hkern u1="[" u2="å" k="37" /> +<hkern u1="[" u2="ä" k="37" /> +<hkern u1="[" u2="ã" k="37" /> +<hkern u1="[" u2="â" k="37" /> +<hkern u1="[" u2="á" k="37" /> +<hkern u1="[" u2="à" k="37" /> +<hkern u1="[" u2="Ø" k="41" /> +<hkern u1="[" u2="Ö" k="41" /> +<hkern u1="[" u2="Õ" k="41" /> +<hkern u1="[" u2="Ô" k="41" /> +<hkern u1="[" u2="Ó" k="41" /> +<hkern u1="[" u2="Ò" k="41" /> +<hkern u1="[" u2="Ç" k="41" /> +<hkern u1="[" u2="®" k="41" /> +<hkern u1="[" u2="©" k="41" /> +<hkern u1="[" u2="q" k="37" /> +<hkern u1="[" u2="o" k="37" /> +<hkern u1="[" u2="e" k="37" /> +<hkern u1="[" u2="d" k="37" /> +<hkern u1="[" u2="c" k="37" /> +<hkern u1="[" u2="a" k="37" /> +<hkern u1="[" u2="Q" k="41" /> +<hkern u1="[" u2="O" k="41" /> +<hkern u1="[" u2="G" k="41" /> +<hkern u1="[" u2="C" k="41" /> +<hkern u1="[" u2="@" k="41" /> +<hkern u1="\" u2="›" k="69" /> +<hkern u1="\" u2="‹" k="69" /> +<hkern u1="\" u2="•" k="69" /> +<hkern u1="\" u2="”" k="196" /> +<hkern u1="\" u2="“" k="196" /> +<hkern u1="\" u2="’" k="196" /> +<hkern u1="\" u2="‘" k="196" /> +<hkern u1="\" u2="—" k="69" /> +<hkern u1="\" u2="–" k="69" /> +<hkern u1="\" u2="Ÿ" k="171" /> +<hkern u1="\" u2="Œ" k="60" /> +<hkern u1="\" u2="ÿ" k="60" /> +<hkern u1="\" u2="ý" k="60" /> +<hkern u1="\" u2="Ý" k="171" /> +<hkern u1="\" u2="Ü" k="41" /> +<hkern u1="\" u2="Û" k="41" /> +<hkern u1="\" u2="Ú" k="41" /> +<hkern u1="\" u2="Ù" k="41" /> +<hkern u1="\" u2="Ø" k="60" /> +<hkern u1="\" u2="Ö" k="60" /> +<hkern u1="\" u2="Õ" k="60" /> +<hkern u1="\" u2="Ô" k="60" /> +<hkern u1="\" u2="Ó" k="60" /> +<hkern u1="\" u2="Ò" k="60" /> +<hkern u1="\" u2="Ç" k="60" /> +<hkern u1="\" u2="»" k="69" /> +<hkern u1="\" u2="º" k="196" /> +<hkern u1="\" u2="¹" k="207" /> +<hkern u1="\" u2="·" k="69" /> +<hkern u1="\" u2="³" k="207" /> +<hkern u1="\" u2="²" k="207" /> +<hkern u1="\" u2="°" k="196" /> +<hkern u1="\" u2="®" k="60" /> +<hkern u1="\" u2="­" k="69" /> +<hkern u1="\" u2="«" k="69" /> +<hkern u1="\" u2="ª" k="196" /> +<hkern u1="\" u2="©" k="60" /> +<hkern u1="\" u2="y" k="60" /> +<hkern u1="\" u2="w" k="48" /> +<hkern u1="\" u2="v" k="60" /> +<hkern u1="\" u2="t" k="71" /> +<hkern u1="\" u2="\" k="141" /> +<hkern u1="\" u2="Y" k="171" /> +<hkern u1="\" u2="W" k="104" /> +<hkern u1="\" u2="V" k="141" /> +<hkern u1="\" u2="U" k="41" /> +<hkern u1="\" u2="T" k="151" /> +<hkern u1="\" u2="Q" k="60" /> +<hkern u1="\" u2="O" k="60" /> +<hkern u1="\" u2="J" k="-73" /> +<hkern u1="\" u2="G" k="60" /> +<hkern u1="\" u2="C" k="60" /> +<hkern u1="\" u2="@" k="60" /> +<hkern u1="\" u2="-" k="69" /> +<hkern u1="\" u2="*" k="196" /> +<hkern u1="\" u2="'" k="196" /> +<hkern u1="\" u2=""" k="196" /> +<hkern u1="b" u2="”" k="82" /> +<hkern u1="b" u2="“" k="82" /> +<hkern u1="b" u2="’" k="82" /> +<hkern u1="b" u2="‘" k="82" /> +<hkern u1="b" u2="º" k="82" /> +<hkern u1="b" u2="°" k="82" /> +<hkern u1="b" u2="ª" k="82" /> +<hkern u1="b" u2="}" k="37" /> +<hkern u1="b" u2="x" k="57" /> +<hkern u1="b" u2="]" k="37" /> +<hkern u1="b" u2="*" k="82" /> +<hkern u1="b" u2=")" k="37" /> +<hkern u1="b" u2="'" k="82" /> +<hkern u1="b" u2=""" k="82" /> +<hkern u1="e" u2="”" k="82" /> +<hkern u1="e" u2="“" k="82" /> +<hkern u1="e" u2="’" k="82" /> +<hkern u1="e" u2="‘" k="82" /> +<hkern u1="e" u2="º" k="82" /> +<hkern u1="e" u2="°" k="82" /> +<hkern u1="e" u2="ª" k="82" /> +<hkern u1="e" u2="}" k="37" /> +<hkern u1="e" u2="x" k="57" /> +<hkern u1="e" u2="]" k="37" /> +<hkern u1="e" u2="*" k="82" /> +<hkern u1="e" u2=")" k="37" /> +<hkern u1="e" u2="'" k="82" /> +<hkern u1="e" u2=""" k="82" /> +<hkern u1="f" u2="…" k="127" /> +<hkern u1="f" u2="„" k="127" /> +<hkern u1="f" u2="”" k="-66" /> +<hkern u1="f" u2="“" k="-66" /> +<hkern u1="f" u2="‚" k="127" /> +<hkern u1="f" u2="’" k="-66" /> +<hkern u1="f" u2="‘" k="-66" /> +<hkern u1="f" u2="º" k="-66" /> +<hkern u1="f" u2="¹" k="-102" /> +<hkern u1="f" u2="³" k="-102" /> +<hkern u1="f" u2="²" k="-102" /> +<hkern u1="f" u2="°" k="-66" /> +<hkern u1="f" u2="ª" k="-66" /> +<hkern u1="f" u2="." k="127" /> +<hkern u1="f" u2="," k="127" /> +<hkern u1="f" u2="*" k="-66" /> +<hkern u1="f" u2="'" k="-66" /> +<hkern u1="f" u2=""" k="-66" /> +<hkern u1="h" u2="”" k="61" /> +<hkern u1="h" u2="“" k="61" /> +<hkern u1="h" u2="’" k="61" /> +<hkern u1="h" u2="‘" k="61" /> +<hkern u1="h" u2="ÿ" k="37" /> +<hkern u1="h" u2="ý" k="37" /> +<hkern u1="h" u2="º" k="61" /> +<hkern u1="h" u2="¹" k="125" /> +<hkern u1="h" u2="³" k="125" /> +<hkern u1="h" u2="²" k="125" /> +<hkern u1="h" u2="°" k="61" /> +<hkern u1="h" u2="ª" k="61" /> +<hkern u1="h" u2="y" k="52" /> +<hkern u1="h" u2="v" k="37" /> +<hkern u1="h" u2="*" k="61" /> +<hkern u1="h" u2="'" k="61" /> +<hkern u1="h" u2=""" k="61" /> +<hkern u1="k" u2="œ" k="57" /> +<hkern u1="k" u2="ø" k="57" /> +<hkern u1="k" u2="ö" k="57" /> +<hkern u1="k" u2="õ" k="57" /> +<hkern u1="k" u2="ô" k="57" /> +<hkern u1="k" u2="ó" k="57" /> +<hkern u1="k" u2="ò" k="57" /> +<hkern u1="k" u2="ð" k="57" /> +<hkern u1="k" u2="ë" k="57" /> +<hkern u1="k" u2="ê" k="57" /> +<hkern u1="k" u2="é" k="57" /> +<hkern u1="k" u2="è" k="57" /> +<hkern u1="k" u2="ç" k="57" /> +<hkern u1="k" u2="æ" k="57" /> +<hkern u1="k" u2="å" k="57" /> +<hkern u1="k" u2="ä" k="57" /> +<hkern u1="k" u2="ã" k="57" /> +<hkern u1="k" u2="â" k="57" /> +<hkern u1="k" u2="á" k="57" /> +<hkern u1="k" u2="à" k="57" /> +<hkern u1="k" u2="q" k="57" /> +<hkern u1="k" u2="o" k="57" /> +<hkern u1="k" u2="e" k="57" /> +<hkern u1="k" u2="d" k="57" /> +<hkern u1="k" u2="c" k="57" /> +<hkern u1="k" u2="a" k="57" /> +<hkern u1="m" u2="”" k="61" /> +<hkern u1="m" u2="“" k="61" /> +<hkern u1="m" u2="’" k="61" /> +<hkern u1="m" u2="‘" k="61" /> +<hkern u1="m" u2="ÿ" k="37" /> +<hkern u1="m" u2="ý" k="37" /> +<hkern u1="m" u2="º" k="61" /> +<hkern u1="m" u2="¹" k="125" /> +<hkern u1="m" u2="³" k="125" /> +<hkern u1="m" u2="²" k="125" /> +<hkern u1="m" u2="°" k="61" /> +<hkern u1="m" u2="ª" k="61" /> +<hkern u1="m" u2="y" k="52" /> +<hkern u1="m" u2="v" k="37" /> +<hkern u1="m" u2="*" k="61" /> +<hkern u1="m" u2="'" k="61" /> +<hkern u1="m" u2=""" k="61" /> +<hkern u1="n" u2="”" k="61" /> +<hkern u1="n" u2="“" k="61" /> +<hkern u1="n" u2="’" k="61" /> +<hkern u1="n" u2="‘" k="61" /> +<hkern u1="n" u2="ÿ" k="37" /> +<hkern u1="n" u2="ý" k="37" /> +<hkern u1="n" u2="º" k="61" /> +<hkern u1="n" u2="¹" k="125" /> +<hkern u1="n" u2="³" k="125" /> +<hkern u1="n" u2="²" k="125" /> +<hkern u1="n" u2="°" k="61" /> +<hkern u1="n" u2="ª" k="61" /> +<hkern u1="n" u2="y" k="52" /> +<hkern u1="n" u2="v" k="37" /> +<hkern u1="n" u2="*" k="61" /> +<hkern u1="n" u2="'" k="61" /> +<hkern u1="n" u2=""" k="61" /> +<hkern u1="o" u2="”" k="82" /> +<hkern u1="o" u2="“" k="82" /> +<hkern u1="o" u2="’" k="82" /> +<hkern u1="o" u2="‘" k="82" /> +<hkern u1="o" u2="º" k="82" /> +<hkern u1="o" u2="°" k="82" /> +<hkern u1="o" u2="ª" k="82" /> +<hkern u1="o" u2="}" k="37" /> +<hkern u1="o" u2="x" k="57" /> +<hkern u1="o" u2="]" k="37" /> +<hkern u1="o" u2="*" k="82" /> +<hkern u1="o" u2=")" k="37" /> +<hkern u1="o" u2="'" k="82" /> +<hkern u1="o" u2=""" k="82" /> +<hkern u1="p" u2="”" k="82" /> +<hkern u1="p" u2="“" k="82" /> +<hkern u1="p" u2="’" k="82" /> +<hkern u1="p" u2="‘" k="82" /> +<hkern u1="p" u2="º" k="82" /> +<hkern u1="p" u2="°" k="82" /> +<hkern u1="p" u2="ª" k="82" /> +<hkern u1="p" u2="}" k="37" /> +<hkern u1="p" u2="x" k="57" /> +<hkern u1="p" u2="]" k="37" /> +<hkern u1="p" u2="*" k="82" /> +<hkern u1="p" u2=")" k="37" /> +<hkern u1="p" u2="'" k="82" /> +<hkern u1="p" u2=""" k="82" /> +<hkern u1="r" u2="…" k="171" /> +<hkern u1="r" u2="„" k="171" /> +<hkern u1="r" u2="‚" k="171" /> +<hkern u1="r" u2="œ" k="41" /> +<hkern u1="r" u2="ø" k="41" /> +<hkern u1="r" u2="ö" k="41" /> +<hkern u1="r" u2="õ" k="41" /> +<hkern u1="r" u2="ô" k="41" /> +<hkern u1="r" u2="ó" k="41" /> +<hkern u1="r" u2="ò" k="41" /> +<hkern u1="r" u2="ð" k="41" /> +<hkern u1="r" u2="ë" k="41" /> +<hkern u1="r" u2="ê" k="41" /> +<hkern u1="r" u2="é" k="41" /> +<hkern u1="r" u2="è" k="41" /> +<hkern u1="r" u2="ç" k="41" /> +<hkern u1="r" u2="æ" k="41" /> +<hkern u1="r" u2="å" k="41" /> +<hkern u1="r" u2="ä" k="41" /> +<hkern u1="r" u2="ã" k="41" /> +<hkern u1="r" u2="â" k="41" /> +<hkern u1="r" u2="á" k="41" /> +<hkern u1="r" u2="à" k="41" /> +<hkern u1="r" u2="q" k="41" /> +<hkern u1="r" u2="o" k="41" /> +<hkern u1="r" u2="e" k="41" /> +<hkern u1="r" u2="d" k="41" /> +<hkern u1="r" u2="c" k="41" /> +<hkern u1="r" u2="a" k="41" /> +<hkern u1="r" u2="." k="171" /> +<hkern u1="r" u2="," k="171" /> +<hkern u1="v" u2="…" k="155" /> +<hkern u1="v" u2="„" k="155" /> +<hkern u1="v" u2="‚" k="155" /> +<hkern u1="v" u2="œ" k="34" /> +<hkern u1="v" u2="ø" k="34" /> +<hkern u1="v" u2="ö" k="34" /> +<hkern u1="v" u2="õ" k="34" /> +<hkern u1="v" u2="ô" k="34" /> +<hkern u1="v" u2="ó" k="34" /> +<hkern u1="v" u2="ò" k="34" /> +<hkern u1="v" u2="ð" k="34" /> +<hkern u1="v" u2="ë" k="34" /> +<hkern u1="v" u2="ê" k="34" /> +<hkern u1="v" u2="é" k="34" /> +<hkern u1="v" u2="è" k="34" /> +<hkern u1="v" u2="ç" k="34" /> +<hkern u1="v" u2="æ" k="34" /> +<hkern u1="v" u2="å" k="34" /> +<hkern u1="v" u2="ä" k="34" /> +<hkern u1="v" u2="ã" k="34" /> +<hkern u1="v" u2="â" k="34" /> +<hkern u1="v" u2="á" k="34" /> +<hkern u1="v" u2="à" k="34" /> +<hkern u1="v" u2="Æ" k="60" /> +<hkern u1="v" u2="Å" k="60" /> +<hkern u1="v" u2="Ä" k="60" /> +<hkern u1="v" u2="Ã" k="60" /> +<hkern u1="v" u2="Â" k="60" /> +<hkern u1="v" u2="Á" k="60" /> +<hkern u1="v" u2="À" k="60" /> +<hkern u1="v" u2="q" k="34" /> +<hkern u1="v" u2="o" k="34" /> +<hkern u1="v" u2="e" k="34" /> +<hkern u1="v" u2="d" k="34" /> +<hkern u1="v" u2="c" k="34" /> +<hkern u1="v" u2="a" k="34" /> +<hkern u1="v" u2="A" k="60" /> +<hkern u1="v" u2="/" k="60" /> +<hkern u1="v" u2="." k="155" /> +<hkern u1="v" u2="," k="155" /> +<hkern u1="v" u2="&" k="60" /> +<hkern u1="w" u2="…" k="104" /> +<hkern u1="w" u2="„" k="104" /> +<hkern u1="w" u2="‚" k="104" /> +<hkern u1="w" u2="Æ" k="48" /> +<hkern u1="w" u2="Å" k="48" /> +<hkern u1="w" u2="Ä" k="48" /> +<hkern u1="w" u2="Ã" k="48" /> +<hkern u1="w" u2="Â" k="48" /> +<hkern u1="w" u2="Á" k="48" /> +<hkern u1="w" u2="À" k="48" /> +<hkern u1="w" u2="A" k="48" /> +<hkern u1="w" u2="/" k="48" /> +<hkern u1="w" u2="." k="104" /> +<hkern u1="w" u2="," k="104" /> +<hkern u1="w" u2="&" k="48" /> +<hkern u1="x" u2="œ" k="57" /> +<hkern u1="x" u2="ø" k="57" /> +<hkern u1="x" u2="ö" k="57" /> +<hkern u1="x" u2="õ" k="57" /> +<hkern u1="x" u2="ô" k="57" /> +<hkern u1="x" u2="ó" k="57" /> +<hkern u1="x" u2="ò" k="57" /> +<hkern u1="x" u2="ð" k="57" /> +<hkern u1="x" u2="ë" k="57" /> +<hkern u1="x" u2="ê" k="57" /> +<hkern u1="x" u2="é" k="57" /> +<hkern u1="x" u2="è" k="57" /> +<hkern u1="x" u2="ç" k="57" /> +<hkern u1="x" u2="æ" k="57" /> +<hkern u1="x" u2="å" k="57" /> +<hkern u1="x" u2="ä" k="57" /> +<hkern u1="x" u2="ã" k="57" /> +<hkern u1="x" u2="â" k="57" /> +<hkern u1="x" u2="á" k="57" /> +<hkern u1="x" u2="à" k="57" /> +<hkern u1="x" u2="q" k="57" /> +<hkern u1="x" u2="o" k="57" /> +<hkern u1="x" u2="e" k="57" /> +<hkern u1="x" u2="d" k="57" /> +<hkern u1="x" u2="c" k="57" /> +<hkern u1="x" u2="a" k="57" /> +<hkern u1="y" u2="…" k="171" /> +<hkern u1="y" u2="„" k="171" /> +<hkern u1="y" u2="‚" k="171" /> +<hkern u1="y" u2="œ" k="34" /> +<hkern u1="y" u2="ø" k="34" /> +<hkern u1="y" u2="ö" k="34" /> +<hkern u1="y" u2="õ" k="34" /> +<hkern u1="y" u2="ô" k="34" /> +<hkern u1="y" u2="ó" k="34" /> +<hkern u1="y" u2="ò" k="34" /> +<hkern u1="y" u2="ð" k="34" /> +<hkern u1="y" u2="ë" k="34" /> +<hkern u1="y" u2="ê" k="34" /> +<hkern u1="y" u2="é" k="34" /> +<hkern u1="y" u2="è" k="34" /> +<hkern u1="y" u2="ç" k="34" /> +<hkern u1="y" u2="æ" k="34" /> +<hkern u1="y" u2="å" k="34" /> +<hkern u1="y" u2="ä" k="34" /> +<hkern u1="y" u2="ã" k="34" /> +<hkern u1="y" u2="â" k="34" /> +<hkern u1="y" u2="á" k="34" /> +<hkern u1="y" u2="à" k="34" /> +<hkern u1="y" u2="Æ" k="60" /> +<hkern u1="y" u2="Å" k="60" /> +<hkern u1="y" u2="Ä" k="60" /> +<hkern u1="y" u2="Ã" k="60" /> +<hkern u1="y" u2="Â" k="60" /> +<hkern u1="y" u2="Á" k="60" /> +<hkern u1="y" u2="À" k="60" /> +<hkern u1="y" u2="q" k="34" /> +<hkern u1="y" u2="o" k="34" /> +<hkern u1="y" u2="e" k="34" /> +<hkern u1="y" u2="d" k="34" /> +<hkern u1="y" u2="c" k="34" /> +<hkern u1="y" u2="a" k="34" /> +<hkern u1="y" u2="A" k="60" /> +<hkern u1="y" u2="/" k="60" /> +<hkern u1="y" u2="." k="171" /> +<hkern u1="y" u2="," k="171" /> +<hkern u1="y" u2="&" k="60" /> +<hkern u1="{" u2="œ" k="37" /> +<hkern u1="{" u2="Œ" k="41" /> +<hkern u1="{" u2="ø" k="37" /> +<hkern u1="{" u2="ö" k="37" /> +<hkern u1="{" u2="õ" k="37" /> +<hkern u1="{" u2="ô" k="37" /> +<hkern u1="{" u2="ó" k="37" /> +<hkern u1="{" u2="ò" k="37" /> +<hkern u1="{" u2="ð" k="37" /> +<hkern u1="{" u2="ë" k="37" /> +<hkern u1="{" u2="ê" k="37" /> +<hkern u1="{" u2="é" k="37" /> +<hkern u1="{" u2="è" k="37" /> +<hkern u1="{" u2="ç" k="37" /> +<hkern u1="{" u2="æ" k="37" /> +<hkern u1="{" u2="å" k="37" /> +<hkern u1="{" u2="ä" k="37" /> +<hkern u1="{" u2="ã" k="37" /> +<hkern u1="{" u2="â" k="37" /> +<hkern u1="{" u2="á" k="37" /> +<hkern u1="{" u2="à" k="37" /> +<hkern u1="{" u2="Ø" k="41" /> +<hkern u1="{" u2="Ö" k="41" /> +<hkern u1="{" u2="Õ" k="41" /> +<hkern u1="{" u2="Ô" k="41" /> +<hkern u1="{" u2="Ó" k="41" /> +<hkern u1="{" u2="Ò" k="41" /> +<hkern u1="{" u2="Ç" k="41" /> +<hkern u1="{" u2="®" k="41" /> +<hkern u1="{" u2="©" k="41" /> +<hkern u1="{" u2="q" k="37" /> +<hkern u1="{" u2="o" k="37" /> +<hkern u1="{" u2="e" k="37" /> +<hkern u1="{" u2="d" k="37" /> +<hkern u1="{" u2="c" k="37" /> +<hkern u1="{" u2="a" k="37" /> +<hkern u1="{" u2="Q" k="41" /> +<hkern u1="{" u2="O" k="41" /> +<hkern u1="{" u2="G" k="41" /> +<hkern u1="{" u2="C" k="41" /> +<hkern u1="{" u2="@" k="41" /> +<hkern u1="©" u2="”" k="53" /> +<hkern u1="©" u2="“" k="53" /> +<hkern u1="©" u2="’" k="53" /> +<hkern u1="©" u2="‘" k="53" /> +<hkern u1="©" u2="Ÿ" k="82" /> +<hkern u1="©" u2="Ý" k="82" /> +<hkern u1="©" u2="Æ" k="44" /> +<hkern u1="©" u2="Å" k="44" /> +<hkern u1="©" u2="Ä" k="44" /> +<hkern u1="©" u2="Ã" k="44" /> +<hkern u1="©" u2="Â" k="44" /> +<hkern u1="©" u2="Á" k="44" /> +<hkern u1="©" u2="À" k="44" /> +<hkern u1="©" u2="º" k="53" /> +<hkern u1="©" u2="°" k="53" /> +<hkern u1="©" u2="ª" k="53" /> +<hkern u1="©" u2="}" k="41" /> +<hkern u1="©" u2="]" k="41" /> +<hkern u1="©" u2="\" k="57" /> +<hkern u1="©" u2="Z" k="66" /> +<hkern u1="©" u2="Y" k="82" /> +<hkern u1="©" u2="X" k="87" /> +<hkern u1="©" u2="V" k="57" /> +<hkern u1="©" u2="T" k="80" /> +<hkern u1="©" u2="A" k="44" /> +<hkern u1="©" u2="/" k="44" /> +<hkern u1="©" u2="*" k="53" /> +<hkern u1="©" u2=")" k="41" /> +<hkern u1="©" u2="'" k="53" /> +<hkern u1="©" u2="&" k="44" /> +<hkern u1="©" u2=""" k="53" /> +<hkern u1="ª" u2="›" k="41" /> +<hkern u1="ª" u2="‹" k="41" /> +<hkern u1="ª" u2="…" k="45" /> +<hkern u1="ª" u2="•" k="41" /> +<hkern u1="ª" u2="„" k="45" /> +<hkern u1="ª" u2="‚" k="45" /> +<hkern u1="ª" u2="—" k="41" /> +<hkern u1="ª" u2="–" k="41" /> +<hkern u1="ª" u2="Ÿ" k="-43" /> +<hkern u1="ª" u2="œ" k="98" /> +<hkern u1="ª" u2="ø" k="98" /> +<hkern u1="ª" u2="ö" k="98" /> +<hkern u1="ª" u2="õ" k="98" /> +<hkern u1="ª" u2="ô" k="98" /> +<hkern u1="ª" u2="ó" k="98" /> +<hkern u1="ª" u2="ò" k="98" /> +<hkern u1="ª" u2="ð" k="98" /> +<hkern u1="ª" u2="ë" k="98" /> +<hkern u1="ª" u2="ê" k="98" /> +<hkern u1="ª" u2="é" k="98" /> +<hkern u1="ª" u2="è" k="98" /> +<hkern u1="ª" u2="ç" k="98" /> +<hkern u1="ª" u2="æ" k="98" /> +<hkern u1="ª" u2="å" k="98" /> +<hkern u1="ª" u2="ä" k="98" /> +<hkern u1="ª" u2="ã" k="98" /> +<hkern u1="ª" u2="â" k="98" /> +<hkern u1="ª" u2="á" k="98" /> +<hkern u1="ª" u2="à" k="98" /> +<hkern u1="ª" u2="Ý" k="-43" /> +<hkern u1="ª" u2="Æ" k="180" /> +<hkern u1="ª" u2="Å" k="180" /> +<hkern u1="ª" u2="Ä" k="180" /> +<hkern u1="ª" u2="Ã" k="180" /> +<hkern u1="ª" u2="Â" k="180" /> +<hkern u1="ª" u2="Á" k="180" /> +<hkern u1="ª" u2="À" k="180" /> +<hkern u1="ª" u2="»" k="41" /> +<hkern u1="ª" u2="·" k="41" /> +<hkern u1="ª" u2="­" k="41" /> +<hkern u1="ª" u2="«" k="41" /> +<hkern u1="ª" u2="q" k="98" /> +<hkern u1="ª" u2="o" k="98" /> +<hkern u1="ª" u2="e" k="98" /> +<hkern u1="ª" u2="d" k="98" /> +<hkern u1="ª" u2="c" k="98" /> +<hkern u1="ª" u2="a" k="98" /> +<hkern u1="ª" u2="\" k="-48" /> +<hkern u1="ª" u2="Y" k="-43" /> +<hkern u1="ª" u2="W" k="-34" /> +<hkern u1="ª" u2="V" k="-48" /> +<hkern u1="ª" u2="A" k="180" /> +<hkern u1="ª" u2="/" k="180" /> +<hkern u1="ª" u2="." k="45" /> +<hkern u1="ª" u2="-" k="41" /> +<hkern u1="ª" u2="," k="45" /> +<hkern u1="ª" u2="&" k="180" /> +<hkern u1="«" u2="…" k="175" /> +<hkern u1="«" u2="„" k="175" /> +<hkern u1="«" u2="”" k="41" /> +<hkern u1="«" u2="“" k="41" /> +<hkern u1="«" u2="‚" k="175" /> +<hkern u1="«" u2="’" k="41" /> +<hkern u1="«" u2="‘" k="41" /> +<hkern u1="«" u2="Ÿ" k="212" /> +<hkern u1="«" u2="Ý" k="212" /> +<hkern u1="«" u2="Æ" k="69" /> +<hkern u1="«" u2="Å" k="69" /> +<hkern u1="«" u2="Ä" k="69" /> +<hkern u1="«" u2="Ã" k="69" /> +<hkern u1="«" u2="Â" k="69" /> +<hkern u1="«" u2="Á" k="69" /> +<hkern u1="«" u2="À" k="69" /> +<hkern u1="«" u2="º" k="41" /> +<hkern u1="«" u2="°" k="41" /> +<hkern u1="«" u2="ª" k="41" /> +<hkern u1="«" u2="\" k="134" /> +<hkern u1="«" u2="Z" k="59" /> +<hkern u1="«" u2="Y" k="212" /> +<hkern u1="«" u2="X" k="72" /> +<hkern u1="«" u2="V" k="134" /> +<hkern u1="«" u2="T" k="201" /> +<hkern u1="«" u2="A" k="69" /> +<hkern u1="«" u2="/" k="69" /> +<hkern u1="«" u2="." k="175" /> +<hkern u1="«" u2="," k="175" /> +<hkern u1="«" u2="*" k="41" /> +<hkern u1="«" u2="'" k="41" /> +<hkern u1="«" u2="&" k="69" /> +<hkern u1="«" u2=""" k="41" /> +<hkern u1="­" u2="…" k="175" /> +<hkern u1="­" u2="„" k="175" /> +<hkern u1="­" u2="”" k="41" /> +<hkern u1="­" u2="“" k="41" /> +<hkern u1="­" u2="‚" k="175" /> +<hkern u1="­" u2="’" k="41" /> +<hkern u1="­" u2="‘" k="41" /> +<hkern u1="­" u2="Ÿ" k="212" /> +<hkern u1="­" u2="Ý" k="212" /> +<hkern u1="­" u2="Æ" k="69" /> +<hkern u1="­" u2="Å" k="69" /> +<hkern u1="­" u2="Ä" k="69" /> +<hkern u1="­" u2="Ã" k="69" /> +<hkern u1="­" u2="Â" k="69" /> +<hkern u1="­" u2="Á" k="69" /> +<hkern u1="­" u2="À" k="69" /> +<hkern u1="­" u2="º" k="41" /> +<hkern u1="­" u2="°" k="41" /> +<hkern u1="­" u2="ª" k="41" /> +<hkern u1="­" u2="\" k="134" /> +<hkern u1="­" u2="Z" k="59" /> +<hkern u1="­" u2="Y" k="212" /> +<hkern u1="­" u2="X" k="72" /> +<hkern u1="­" u2="V" k="134" /> +<hkern u1="­" u2="T" k="201" /> +<hkern u1="­" u2="A" k="69" /> +<hkern u1="­" u2="/" k="69" /> +<hkern u1="­" u2="." k="175" /> +<hkern u1="­" u2="," k="175" /> +<hkern u1="­" u2="*" k="41" /> +<hkern u1="­" u2="'" k="41" /> +<hkern u1="­" u2="&" k="69" /> +<hkern u1="­" u2=""" k="41" /> +<hkern u1="®" u2="”" k="53" /> +<hkern u1="®" u2="“" k="53" /> +<hkern u1="®" u2="’" k="53" /> +<hkern u1="®" u2="‘" k="53" /> +<hkern u1="®" u2="Ÿ" k="82" /> +<hkern u1="®" u2="Ý" k="82" /> +<hkern u1="®" u2="Æ" k="44" /> +<hkern u1="®" u2="Å" k="44" /> +<hkern u1="®" u2="Ä" k="44" /> +<hkern u1="®" u2="Ã" k="44" /> +<hkern u1="®" u2="Â" k="44" /> +<hkern u1="®" u2="Á" k="44" /> +<hkern u1="®" u2="À" k="44" /> +<hkern u1="®" u2="º" k="53" /> +<hkern u1="®" u2="°" k="53" /> +<hkern u1="®" u2="ª" k="53" /> +<hkern u1="®" u2="}" k="41" /> +<hkern u1="®" u2="]" k="41" /> +<hkern u1="®" u2="\" k="57" /> +<hkern u1="®" u2="Z" k="66" /> +<hkern u1="®" u2="Y" k="82" /> +<hkern u1="®" u2="X" k="87" /> +<hkern u1="®" u2="V" k="57" /> +<hkern u1="®" u2="T" k="80" /> +<hkern u1="®" u2="A" k="44" /> +<hkern u1="®" u2="/" k="44" /> +<hkern u1="®" u2="*" k="53" /> +<hkern u1="®" u2=")" k="41" /> +<hkern u1="®" u2="'" k="53" /> +<hkern u1="®" u2="&" k="44" /> +<hkern u1="®" u2=""" k="53" /> +<hkern u1="°" u2="›" k="41" /> +<hkern u1="°" u2="‹" k="41" /> +<hkern u1="°" u2="…" k="45" /> +<hkern u1="°" u2="•" k="41" /> +<hkern u1="°" u2="„" k="45" /> +<hkern u1="°" u2="‚" k="45" /> +<hkern u1="°" u2="—" k="41" /> +<hkern u1="°" u2="–" k="41" /> +<hkern u1="°" u2="Ÿ" k="-43" /> +<hkern u1="°" u2="œ" k="98" /> +<hkern u1="°" u2="ø" k="98" /> +<hkern u1="°" u2="ö" k="98" /> +<hkern u1="°" u2="õ" k="98" /> +<hkern u1="°" u2="ô" k="98" /> +<hkern u1="°" u2="ó" k="98" /> +<hkern u1="°" u2="ò" k="98" /> +<hkern u1="°" u2="ð" k="98" /> +<hkern u1="°" u2="ë" k="98" /> +<hkern u1="°" u2="ê" k="98" /> +<hkern u1="°" u2="é" k="98" /> +<hkern u1="°" u2="è" k="98" /> +<hkern u1="°" u2="ç" k="98" /> +<hkern u1="°" u2="æ" k="98" /> +<hkern u1="°" u2="å" k="98" /> +<hkern u1="°" u2="ä" k="98" /> +<hkern u1="°" u2="ã" k="98" /> +<hkern u1="°" u2="â" k="98" /> +<hkern u1="°" u2="á" k="98" /> +<hkern u1="°" u2="à" k="98" /> +<hkern u1="°" u2="Ý" k="-43" /> +<hkern u1="°" u2="Æ" k="180" /> +<hkern u1="°" u2="Å" k="180" /> +<hkern u1="°" u2="Ä" k="180" /> +<hkern u1="°" u2="Ã" k="180" /> +<hkern u1="°" u2="Â" k="180" /> +<hkern u1="°" u2="Á" k="180" /> +<hkern u1="°" u2="À" k="180" /> +<hkern u1="°" u2="»" k="41" /> +<hkern u1="°" u2="·" k="41" /> +<hkern u1="°" u2="­" k="41" /> +<hkern u1="°" u2="«" k="41" /> +<hkern u1="°" u2="q" k="98" /> +<hkern u1="°" u2="o" k="98" /> +<hkern u1="°" u2="e" k="98" /> +<hkern u1="°" u2="d" k="98" /> +<hkern u1="°" u2="c" k="98" /> +<hkern u1="°" u2="a" k="98" /> +<hkern u1="°" u2="\" k="-48" /> +<hkern u1="°" u2="Y" k="-43" /> +<hkern u1="°" u2="W" k="-34" /> +<hkern u1="°" u2="V" k="-48" /> +<hkern u1="°" u2="A" k="180" /> +<hkern u1="°" u2="/" k="180" /> +<hkern u1="°" u2="." k="45" /> +<hkern u1="°" u2="-" k="41" /> +<hkern u1="°" u2="," k="45" /> +<hkern u1="°" u2="&" k="180" /> +<hkern u1="²" u2="Ÿ" k="-41" /> +<hkern u1="²" u2="Ý" k="-41" /> +<hkern u1="²" u2="Æ" k="191" /> +<hkern u1="²" u2="Å" k="191" /> +<hkern u1="²" u2="Ä" k="191" /> +<hkern u1="²" u2="Ã" k="191" /> +<hkern u1="²" u2="Â" k="191" /> +<hkern u1="²" u2="Á" k="191" /> +<hkern u1="²" u2="À" k="191" /> +<hkern u1="²" u2="\" k="-50" /> +<hkern u1="²" u2="Y" k="-41" /> +<hkern u1="²" u2="W" k="-50" /> +<hkern u1="²" u2="V" k="-50" /> +<hkern u1="²" u2="A" k="191" /> +<hkern u1="²" u2="/" k="191" /> +<hkern u1="²" u2="&" k="191" /> +<hkern u1="³" u2="Ÿ" k="-41" /> +<hkern u1="³" u2="Ý" k="-41" /> +<hkern u1="³" u2="Æ" k="191" /> +<hkern u1="³" u2="Å" k="191" /> +<hkern u1="³" u2="Ä" k="191" /> +<hkern u1="³" u2="Ã" k="191" /> +<hkern u1="³" u2="Â" k="191" /> +<hkern u1="³" u2="Á" k="191" /> +<hkern u1="³" u2="À" k="191" /> +<hkern u1="³" u2="\" k="-50" /> +<hkern u1="³" u2="Y" k="-41" /> +<hkern u1="³" u2="W" k="-50" /> +<hkern u1="³" u2="V" k="-50" /> +<hkern u1="³" u2="A" k="191" /> +<hkern u1="³" u2="/" k="191" /> +<hkern u1="³" u2="&" k="191" /> +<hkern u1="·" u2="…" k="175" /> +<hkern u1="·" u2="„" k="175" /> +<hkern u1="·" u2="”" k="41" /> +<hkern u1="·" u2="“" k="41" /> +<hkern u1="·" u2="‚" k="175" /> +<hkern u1="·" u2="’" k="41" /> +<hkern u1="·" u2="‘" k="41" /> +<hkern u1="·" u2="Ÿ" k="212" /> +<hkern u1="·" u2="Ý" k="212" /> +<hkern u1="·" u2="Æ" k="69" /> +<hkern u1="·" u2="Å" k="69" /> +<hkern u1="·" u2="Ä" k="69" /> +<hkern u1="·" u2="Ã" k="69" /> +<hkern u1="·" u2="Â" k="69" /> +<hkern u1="·" u2="Á" k="69" /> +<hkern u1="·" u2="À" k="69" /> +<hkern u1="·" u2="º" k="41" /> +<hkern u1="·" u2="°" k="41" /> +<hkern u1="·" u2="ª" k="41" /> +<hkern u1="·" u2="\" k="134" /> +<hkern u1="·" u2="Z" k="59" /> +<hkern u1="·" u2="Y" k="212" /> +<hkern u1="·" u2="X" k="72" /> +<hkern u1="·" u2="V" k="134" /> +<hkern u1="·" u2="T" k="201" /> +<hkern u1="·" u2="A" k="69" /> +<hkern u1="·" u2="/" k="69" /> +<hkern u1="·" u2="." k="175" /> +<hkern u1="·" u2="," k="175" /> +<hkern u1="·" u2="*" k="41" /> +<hkern u1="·" u2="'" k="41" /> +<hkern u1="·" u2="&" k="69" /> +<hkern u1="·" u2=""" k="41" /> +<hkern u1="¹" u2="Ÿ" k="-41" /> +<hkern u1="¹" u2="Ý" k="-41" /> +<hkern u1="¹" u2="Æ" k="191" /> +<hkern u1="¹" u2="Å" k="191" /> +<hkern u1="¹" u2="Ä" k="191" /> +<hkern u1="¹" u2="Ã" k="191" /> +<hkern u1="¹" u2="Â" k="191" /> +<hkern u1="¹" u2="Á" k="191" /> +<hkern u1="¹" u2="À" k="191" /> +<hkern u1="¹" u2="\" k="-50" /> +<hkern u1="¹" u2="Y" k="-41" /> +<hkern u1="¹" u2="W" k="-50" /> +<hkern u1="¹" u2="V" k="-50" /> +<hkern u1="¹" u2="A" k="191" /> +<hkern u1="¹" u2="/" k="191" /> +<hkern u1="¹" u2="&" k="191" /> +<hkern u1="º" u2="›" k="41" /> +<hkern u1="º" u2="‹" k="41" /> +<hkern u1="º" u2="…" k="45" /> +<hkern u1="º" u2="•" k="41" /> +<hkern u1="º" u2="„" k="45" /> +<hkern u1="º" u2="‚" k="45" /> +<hkern u1="º" u2="—" k="41" /> +<hkern u1="º" u2="–" k="41" /> +<hkern u1="º" u2="Ÿ" k="-43" /> +<hkern u1="º" u2="œ" k="98" /> +<hkern u1="º" u2="ø" k="98" /> +<hkern u1="º" u2="ö" k="98" /> +<hkern u1="º" u2="õ" k="98" /> +<hkern u1="º" u2="ô" k="98" /> +<hkern u1="º" u2="ó" k="98" /> +<hkern u1="º" u2="ò" k="98" /> +<hkern u1="º" u2="ð" k="98" /> +<hkern u1="º" u2="ë" k="98" /> +<hkern u1="º" u2="ê" k="98" /> +<hkern u1="º" u2="é" k="98" /> +<hkern u1="º" u2="è" k="98" /> +<hkern u1="º" u2="ç" k="98" /> +<hkern u1="º" u2="æ" k="98" /> +<hkern u1="º" u2="å" k="98" /> +<hkern u1="º" u2="ä" k="98" /> +<hkern u1="º" u2="ã" k="98" /> +<hkern u1="º" u2="â" k="98" /> +<hkern u1="º" u2="á" k="98" /> +<hkern u1="º" u2="à" k="98" /> +<hkern u1="º" u2="Ý" k="-43" /> +<hkern u1="º" u2="Æ" k="180" /> +<hkern u1="º" u2="Å" k="180" /> +<hkern u1="º" u2="Ä" k="180" /> +<hkern u1="º" u2="Ã" k="180" /> +<hkern u1="º" u2="Â" k="180" /> +<hkern u1="º" u2="Á" k="180" /> +<hkern u1="º" u2="À" k="180" /> +<hkern u1="º" u2="»" k="41" /> +<hkern u1="º" u2="·" k="41" /> +<hkern u1="º" u2="­" k="41" /> +<hkern u1="º" u2="«" k="41" /> +<hkern u1="º" u2="q" k="98" /> +<hkern u1="º" u2="o" k="98" /> +<hkern u1="º" u2="e" k="98" /> +<hkern u1="º" u2="d" k="98" /> +<hkern u1="º" u2="c" k="98" /> +<hkern u1="º" u2="a" k="98" /> +<hkern u1="º" u2="\" k="-48" /> +<hkern u1="º" u2="Y" k="-43" /> +<hkern u1="º" u2="W" k="-34" /> +<hkern u1="º" u2="V" k="-48" /> +<hkern u1="º" u2="A" k="180" /> +<hkern u1="º" u2="/" k="180" /> +<hkern u1="º" u2="." k="45" /> +<hkern u1="º" u2="-" k="41" /> +<hkern u1="º" u2="," k="45" /> +<hkern u1="º" u2="&" k="180" /> +<hkern u1="»" u2="…" k="175" /> +<hkern u1="»" u2="„" k="175" /> +<hkern u1="»" u2="”" k="41" /> +<hkern u1="»" u2="“" k="41" /> +<hkern u1="»" u2="‚" k="175" /> +<hkern u1="»" u2="’" k="41" /> +<hkern u1="»" u2="‘" k="41" /> +<hkern u1="»" u2="Ÿ" k="212" /> +<hkern u1="»" u2="Ý" k="212" /> +<hkern u1="»" u2="Æ" k="69" /> +<hkern u1="»" u2="Å" k="69" /> +<hkern u1="»" u2="Ä" k="69" /> +<hkern u1="»" u2="Ã" k="69" /> +<hkern u1="»" u2="Â" k="69" /> +<hkern u1="»" u2="Á" k="69" /> +<hkern u1="»" u2="À" k="69" /> +<hkern u1="»" u2="º" k="41" /> +<hkern u1="»" u2="°" k="41" /> +<hkern u1="»" u2="ª" k="41" /> +<hkern u1="»" u2="\" k="134" /> +<hkern u1="»" u2="Z" k="59" /> +<hkern u1="»" u2="Y" k="212" /> +<hkern u1="»" u2="X" k="72" /> +<hkern u1="»" u2="V" k="134" /> +<hkern u1="»" u2="T" k="201" /> +<hkern u1="»" u2="A" k="69" /> +<hkern u1="»" u2="/" k="69" /> +<hkern u1="»" u2="." k="175" /> +<hkern u1="»" u2="," k="175" /> +<hkern u1="»" u2="*" k="41" /> +<hkern u1="»" u2="'" k="41" /> +<hkern u1="»" u2="&" k="69" /> +<hkern u1="»" u2=""" k="41" /> +<hkern u1="À" u2="›" k="69" /> +<hkern u1="À" u2="‹" k="69" /> +<hkern u1="À" u2="•" k="69" /> +<hkern u1="À" u2="”" k="196" /> +<hkern u1="À" u2="“" k="196" /> +<hkern u1="À" u2="’" k="196" /> +<hkern u1="À" u2="‘" k="196" /> +<hkern u1="À" u2="—" k="69" /> +<hkern u1="À" u2="–" k="69" /> +<hkern u1="À" u2="Ÿ" k="171" /> +<hkern u1="À" u2="Œ" k="60" /> +<hkern u1="À" u2="ÿ" k="60" /> +<hkern u1="À" u2="ý" k="60" /> +<hkern u1="À" u2="Ý" k="171" /> +<hkern u1="À" u2="Ü" k="41" /> +<hkern u1="À" u2="Û" k="41" /> +<hkern u1="À" u2="Ú" k="41" /> +<hkern u1="À" u2="Ù" k="41" /> +<hkern u1="À" u2="Ø" k="60" /> +<hkern u1="À" u2="Ö" k="60" /> +<hkern u1="À" u2="Õ" k="60" /> +<hkern u1="À" u2="Ô" k="60" /> +<hkern u1="À" u2="Ó" k="60" /> +<hkern u1="À" u2="Ò" k="60" /> +<hkern u1="À" u2="Ç" k="60" /> +<hkern u1="À" u2="»" k="69" /> +<hkern u1="À" u2="º" k="196" /> +<hkern u1="À" u2="¹" k="207" /> +<hkern u1="À" u2="·" k="69" /> +<hkern u1="À" u2="³" k="207" /> +<hkern u1="À" u2="²" k="207" /> +<hkern u1="À" u2="°" k="196" /> +<hkern u1="À" u2="®" k="60" /> +<hkern u1="À" u2="­" k="69" /> +<hkern u1="À" u2="«" k="69" /> +<hkern u1="À" u2="ª" k="196" /> +<hkern u1="À" u2="©" k="60" /> +<hkern u1="À" u2="y" k="60" /> +<hkern u1="À" u2="w" k="48" /> +<hkern u1="À" u2="v" k="60" /> +<hkern u1="À" u2="t" k="71" /> +<hkern u1="À" u2="\" k="141" /> +<hkern u1="À" u2="Y" k="171" /> +<hkern u1="À" u2="W" k="104" /> +<hkern u1="À" u2="V" k="141" /> +<hkern u1="À" u2="U" k="41" /> +<hkern u1="À" u2="T" k="151" /> +<hkern u1="À" u2="Q" k="60" /> +<hkern u1="À" u2="O" k="60" /> +<hkern u1="À" u2="J" k="-73" /> +<hkern u1="À" u2="G" k="60" /> +<hkern u1="À" u2="C" k="60" /> +<hkern u1="À" u2="@" k="60" /> +<hkern u1="À" u2="-" k="69" /> +<hkern u1="À" u2="*" k="196" /> +<hkern u1="À" u2="'" k="196" /> +<hkern u1="À" u2=""" k="196" /> +<hkern u1="Á" u2="›" k="69" /> +<hkern u1="Á" u2="‹" k="69" /> +<hkern u1="Á" u2="•" k="69" /> +<hkern u1="Á" u2="”" k="196" /> +<hkern u1="Á" u2="“" k="196" /> +<hkern u1="Á" u2="’" k="196" /> +<hkern u1="Á" u2="‘" k="196" /> +<hkern u1="Á" u2="—" k="69" /> +<hkern u1="Á" u2="–" k="69" /> +<hkern u1="Á" u2="Ÿ" k="171" /> +<hkern u1="Á" u2="Œ" k="60" /> +<hkern u1="Á" u2="ÿ" k="60" /> +<hkern u1="Á" u2="ý" k="60" /> +<hkern u1="Á" u2="Ý" k="171" /> +<hkern u1="Á" u2="Ü" k="41" /> +<hkern u1="Á" u2="Û" k="41" /> +<hkern u1="Á" u2="Ú" k="41" /> +<hkern u1="Á" u2="Ù" k="41" /> +<hkern u1="Á" u2="Ø" k="60" /> +<hkern u1="Á" u2="Ö" k="60" /> +<hkern u1="Á" u2="Õ" k="60" /> +<hkern u1="Á" u2="Ô" k="60" /> +<hkern u1="Á" u2="Ó" k="60" /> +<hkern u1="Á" u2="Ò" k="60" /> +<hkern u1="Á" u2="Ç" k="60" /> +<hkern u1="Á" u2="»" k="69" /> +<hkern u1="Á" u2="º" k="196" /> +<hkern u1="Á" u2="¹" k="207" /> +<hkern u1="Á" u2="·" k="69" /> +<hkern u1="Á" u2="³" k="207" /> +<hkern u1="Á" u2="²" k="207" /> +<hkern u1="Á" u2="°" k="196" /> +<hkern u1="Á" u2="®" k="60" /> +<hkern u1="Á" u2="­" k="69" /> +<hkern u1="Á" u2="«" k="69" /> +<hkern u1="Á" u2="ª" k="196" /> +<hkern u1="Á" u2="©" k="60" /> +<hkern u1="Á" u2="y" k="60" /> +<hkern u1="Á" u2="w" k="48" /> +<hkern u1="Á" u2="v" k="60" /> +<hkern u1="Á" u2="t" k="71" /> +<hkern u1="Á" u2="\" k="141" /> +<hkern u1="Á" u2="Y" k="171" /> +<hkern u1="Á" u2="W" k="104" /> +<hkern u1="Á" u2="V" k="141" /> +<hkern u1="Á" u2="U" k="41" /> +<hkern u1="Á" u2="T" k="151" /> +<hkern u1="Á" u2="Q" k="60" /> +<hkern u1="Á" u2="O" k="60" /> +<hkern u1="Á" u2="J" k="-73" /> +<hkern u1="Á" u2="G" k="60" /> +<hkern u1="Á" u2="C" k="60" /> +<hkern u1="Á" u2="@" k="60" /> +<hkern u1="Á" u2="-" k="69" /> +<hkern u1="Á" u2="*" k="196" /> +<hkern u1="Á" u2="'" k="196" /> +<hkern u1="Á" u2=""" k="196" /> +<hkern u1="Â" u2="›" k="69" /> +<hkern u1="Â" u2="‹" k="69" /> +<hkern u1="Â" u2="•" k="69" /> +<hkern u1="Â" u2="”" k="196" /> +<hkern u1="Â" u2="“" k="196" /> +<hkern u1="Â" u2="’" k="196" /> +<hkern u1="Â" u2="‘" k="196" /> +<hkern u1="Â" u2="—" k="69" /> +<hkern u1="Â" u2="–" k="69" /> +<hkern u1="Â" u2="Ÿ" k="171" /> +<hkern u1="Â" u2="Œ" k="60" /> +<hkern u1="Â" u2="ÿ" k="60" /> +<hkern u1="Â" u2="ý" k="60" /> +<hkern u1="Â" u2="Ý" k="171" /> +<hkern u1="Â" u2="Ü" k="41" /> +<hkern u1="Â" u2="Û" k="41" /> +<hkern u1="Â" u2="Ú" k="41" /> +<hkern u1="Â" u2="Ù" k="41" /> +<hkern u1="Â" u2="Ø" k="60" /> +<hkern u1="Â" u2="Ö" k="60" /> +<hkern u1="Â" u2="Õ" k="60" /> +<hkern u1="Â" u2="Ô" k="60" /> +<hkern u1="Â" u2="Ó" k="60" /> +<hkern u1="Â" u2="Ò" k="60" /> +<hkern u1="Â" u2="Ç" k="60" /> +<hkern u1="Â" u2="»" k="69" /> +<hkern u1="Â" u2="º" k="196" /> +<hkern u1="Â" u2="¹" k="207" /> +<hkern u1="Â" u2="·" k="69" /> +<hkern u1="Â" u2="³" k="207" /> +<hkern u1="Â" u2="²" k="207" /> +<hkern u1="Â" u2="°" k="196" /> +<hkern u1="Â" u2="®" k="60" /> +<hkern u1="Â" u2="­" k="69" /> +<hkern u1="Â" u2="«" k="69" /> +<hkern u1="Â" u2="ª" k="196" /> +<hkern u1="Â" u2="©" k="60" /> +<hkern u1="Â" u2="y" k="60" /> +<hkern u1="Â" u2="w" k="48" /> +<hkern u1="Â" u2="v" k="60" /> +<hkern u1="Â" u2="t" k="71" /> +<hkern u1="Â" u2="\" k="141" /> +<hkern u1="Â" u2="Y" k="171" /> +<hkern u1="Â" u2="W" k="104" /> +<hkern u1="Â" u2="V" k="141" /> +<hkern u1="Â" u2="U" k="41" /> +<hkern u1="Â" u2="T" k="151" /> +<hkern u1="Â" u2="Q" k="60" /> +<hkern u1="Â" u2="O" k="60" /> +<hkern u1="Â" u2="J" k="-73" /> +<hkern u1="Â" u2="G" k="60" /> +<hkern u1="Â" u2="C" k="60" /> +<hkern u1="Â" u2="@" k="60" /> +<hkern u1="Â" u2="-" k="69" /> +<hkern u1="Â" u2="*" k="196" /> +<hkern u1="Â" u2="'" k="196" /> +<hkern u1="Â" u2=""" k="196" /> +<hkern u1="Ã" u2="›" k="69" /> +<hkern u1="Ã" u2="‹" k="69" /> +<hkern u1="Ã" u2="•" k="69" /> +<hkern u1="Ã" u2="”" k="196" /> +<hkern u1="Ã" u2="“" k="196" /> +<hkern u1="Ã" u2="’" k="196" /> +<hkern u1="Ã" u2="‘" k="196" /> +<hkern u1="Ã" u2="—" k="69" /> +<hkern u1="Ã" u2="–" k="69" /> +<hkern u1="Ã" u2="Ÿ" k="171" /> +<hkern u1="Ã" u2="Œ" k="60" /> +<hkern u1="Ã" u2="ÿ" k="60" /> +<hkern u1="Ã" u2="ý" k="60" /> +<hkern u1="Ã" u2="Ý" k="171" /> +<hkern u1="Ã" u2="Ü" k="41" /> +<hkern u1="Ã" u2="Û" k="41" /> +<hkern u1="Ã" u2="Ú" k="41" /> +<hkern u1="Ã" u2="Ù" k="41" /> +<hkern u1="Ã" u2="Ø" k="60" /> +<hkern u1="Ã" u2="Ö" k="60" /> +<hkern u1="Ã" u2="Õ" k="60" /> +<hkern u1="Ã" u2="Ô" k="60" /> +<hkern u1="Ã" u2="Ó" k="60" /> +<hkern u1="Ã" u2="Ò" k="60" /> +<hkern u1="Ã" u2="Ç" k="60" /> +<hkern u1="Ã" u2="»" k="69" /> +<hkern u1="Ã" u2="º" k="196" /> +<hkern u1="Ã" u2="¹" k="207" /> +<hkern u1="Ã" u2="·" k="69" /> +<hkern u1="Ã" u2="³" k="207" /> +<hkern u1="Ã" u2="²" k="207" /> +<hkern u1="Ã" u2="°" k="196" /> +<hkern u1="Ã" u2="®" k="60" /> +<hkern u1="Ã" u2="­" k="69" /> +<hkern u1="Ã" u2="«" k="69" /> +<hkern u1="Ã" u2="ª" k="196" /> +<hkern u1="Ã" u2="©" k="60" /> +<hkern u1="Ã" u2="y" k="60" /> +<hkern u1="Ã" u2="w" k="48" /> +<hkern u1="Ã" u2="v" k="60" /> +<hkern u1="Ã" u2="t" k="71" /> +<hkern u1="Ã" u2="\" k="141" /> +<hkern u1="Ã" u2="Y" k="171" /> +<hkern u1="Ã" u2="W" k="104" /> +<hkern u1="Ã" u2="V" k="141" /> +<hkern u1="Ã" u2="U" k="41" /> +<hkern u1="Ã" u2="T" k="151" /> +<hkern u1="Ã" u2="Q" k="60" /> +<hkern u1="Ã" u2="O" k="60" /> +<hkern u1="Ã" u2="J" k="-73" /> +<hkern u1="Ã" u2="G" k="60" /> +<hkern u1="Ã" u2="C" k="60" /> +<hkern u1="Ã" u2="@" k="60" /> +<hkern u1="Ã" u2="-" k="69" /> +<hkern u1="Ã" u2="*" k="196" /> +<hkern u1="Ã" u2="'" k="196" /> +<hkern u1="Ã" u2=""" k="196" /> +<hkern u1="Ä" u2="›" k="69" /> +<hkern u1="Ä" u2="‹" k="69" /> +<hkern u1="Ä" u2="•" k="69" /> +<hkern u1="Ä" u2="”" k="196" /> +<hkern u1="Ä" u2="“" k="196" /> +<hkern u1="Ä" u2="’" k="196" /> +<hkern u1="Ä" u2="‘" k="196" /> +<hkern u1="Ä" u2="—" k="69" /> +<hkern u1="Ä" u2="–" k="69" /> +<hkern u1="Ä" u2="Ÿ" k="171" /> +<hkern u1="Ä" u2="Œ" k="60" /> +<hkern u1="Ä" u2="ÿ" k="60" /> +<hkern u1="Ä" u2="ý" k="60" /> +<hkern u1="Ä" u2="Ý" k="171" /> +<hkern u1="Ä" u2="Ü" k="41" /> +<hkern u1="Ä" u2="Û" k="41" /> +<hkern u1="Ä" u2="Ú" k="41" /> +<hkern u1="Ä" u2="Ù" k="41" /> +<hkern u1="Ä" u2="Ø" k="60" /> +<hkern u1="Ä" u2="Ö" k="60" /> +<hkern u1="Ä" u2="Õ" k="60" /> +<hkern u1="Ä" u2="Ô" k="60" /> +<hkern u1="Ä" u2="Ó" k="60" /> +<hkern u1="Ä" u2="Ò" k="60" /> +<hkern u1="Ä" u2="Ç" k="60" /> +<hkern u1="Ä" u2="»" k="69" /> +<hkern u1="Ä" u2="º" k="196" /> +<hkern u1="Ä" u2="¹" k="207" /> +<hkern u1="Ä" u2="·" k="69" /> +<hkern u1="Ä" u2="³" k="207" /> +<hkern u1="Ä" u2="²" k="207" /> +<hkern u1="Ä" u2="°" k="196" /> +<hkern u1="Ä" u2="®" k="60" /> +<hkern u1="Ä" u2="­" k="69" /> +<hkern u1="Ä" u2="«" k="69" /> +<hkern u1="Ä" u2="ª" k="196" /> +<hkern u1="Ä" u2="©" k="60" /> +<hkern u1="Ä" u2="y" k="60" /> +<hkern u1="Ä" u2="w" k="48" /> +<hkern u1="Ä" u2="v" k="60" /> +<hkern u1="Ä" u2="t" k="71" /> +<hkern u1="Ä" u2="\" k="141" /> +<hkern u1="Ä" u2="Y" k="171" /> +<hkern u1="Ä" u2="W" k="104" /> +<hkern u1="Ä" u2="V" k="141" /> +<hkern u1="Ä" u2="U" k="41" /> +<hkern u1="Ä" u2="T" k="151" /> +<hkern u1="Ä" u2="Q" k="60" /> +<hkern u1="Ä" u2="O" k="60" /> +<hkern u1="Ä" u2="J" k="-73" /> +<hkern u1="Ä" u2="G" k="60" /> +<hkern u1="Ä" u2="C" k="60" /> +<hkern u1="Ä" u2="@" k="60" /> +<hkern u1="Ä" u2="-" k="69" /> +<hkern u1="Ä" u2="*" k="196" /> +<hkern u1="Ä" u2="'" k="196" /> +<hkern u1="Ä" u2=""" k="196" /> +<hkern u1="Å" u2="›" k="69" /> +<hkern u1="Å" u2="‹" k="69" /> +<hkern u1="Å" u2="•" k="69" /> +<hkern u1="Å" u2="”" k="196" /> +<hkern u1="Å" u2="“" k="196" /> +<hkern u1="Å" u2="’" k="196" /> +<hkern u1="Å" u2="‘" k="196" /> +<hkern u1="Å" u2="—" k="69" /> +<hkern u1="Å" u2="–" k="69" /> +<hkern u1="Å" u2="Ÿ" k="171" /> +<hkern u1="Å" u2="Œ" k="60" /> +<hkern u1="Å" u2="ÿ" k="60" /> +<hkern u1="Å" u2="ý" k="60" /> +<hkern u1="Å" u2="Ý" k="171" /> +<hkern u1="Å" u2="Ü" k="41" /> +<hkern u1="Å" u2="Û" k="41" /> +<hkern u1="Å" u2="Ú" k="41" /> +<hkern u1="Å" u2="Ù" k="41" /> +<hkern u1="Å" u2="Ø" k="60" /> +<hkern u1="Å" u2="Ö" k="60" /> +<hkern u1="Å" u2="Õ" k="60" /> +<hkern u1="Å" u2="Ô" k="60" /> +<hkern u1="Å" u2="Ó" k="60" /> +<hkern u1="Å" u2="Ò" k="60" /> +<hkern u1="Å" u2="Ç" k="60" /> +<hkern u1="Å" u2="»" k="69" /> +<hkern u1="Å" u2="º" k="196" /> +<hkern u1="Å" u2="¹" k="207" /> +<hkern u1="Å" u2="·" k="69" /> +<hkern u1="Å" u2="³" k="207" /> +<hkern u1="Å" u2="²" k="207" /> +<hkern u1="Å" u2="°" k="196" /> +<hkern u1="Å" u2="®" k="60" /> +<hkern u1="Å" u2="­" k="69" /> +<hkern u1="Å" u2="«" k="69" /> +<hkern u1="Å" u2="ª" k="196" /> +<hkern u1="Å" u2="©" k="60" /> +<hkern u1="Å" u2="y" k="60" /> +<hkern u1="Å" u2="w" k="48" /> +<hkern u1="Å" u2="v" k="60" /> +<hkern u1="Å" u2="t" k="71" /> +<hkern u1="Å" u2="\" k="141" /> +<hkern u1="Å" u2="Y" k="171" /> +<hkern u1="Å" u2="W" k="104" /> +<hkern u1="Å" u2="V" k="141" /> +<hkern u1="Å" u2="U" k="41" /> +<hkern u1="Å" u2="T" k="151" /> +<hkern u1="Å" u2="Q" k="60" /> +<hkern u1="Å" u2="O" k="60" /> +<hkern u1="Å" u2="J" k="-73" /> +<hkern u1="Å" u2="G" k="60" /> +<hkern u1="Å" u2="C" k="60" /> +<hkern u1="Å" u2="@" k="60" /> +<hkern u1="Å" u2="-" k="69" /> +<hkern u1="Å" u2="*" k="196" /> +<hkern u1="Å" u2="'" k="196" /> +<hkern u1="Å" u2=""" k="196" /> +<hkern u1="Ç" u2="›" k="116" /> +<hkern u1="Ç" u2="‹" k="116" /> +<hkern u1="Ç" u2="•" k="116" /> +<hkern u1="Ç" u2="—" k="116" /> +<hkern u1="Ç" u2="–" k="116" /> +<hkern u1="Ç" u2="»" k="116" /> +<hkern u1="Ç" u2="·" k="116" /> +<hkern u1="Ç" u2="­" k="116" /> +<hkern u1="Ç" u2="«" k="116" /> +<hkern u1="Ç" u2="-" k="116" /> +<hkern u1="Ð" u2="”" k="53" /> +<hkern u1="Ð" u2="“" k="53" /> +<hkern u1="Ð" u2="’" k="53" /> +<hkern u1="Ð" u2="‘" k="53" /> +<hkern u1="Ð" u2="Ÿ" k="82" /> +<hkern u1="Ð" u2="Ý" k="82" /> +<hkern u1="Ð" u2="Æ" k="44" /> +<hkern u1="Ð" u2="Å" k="44" /> +<hkern u1="Ð" u2="Ä" k="44" /> +<hkern u1="Ð" u2="Ã" k="44" /> +<hkern u1="Ð" u2="Â" k="44" /> +<hkern u1="Ð" u2="Á" k="44" /> +<hkern u1="Ð" u2="À" k="44" /> +<hkern u1="Ð" u2="º" k="53" /> +<hkern u1="Ð" u2="°" k="53" /> +<hkern u1="Ð" u2="ª" k="53" /> +<hkern u1="Ð" u2="}" k="41" /> +<hkern u1="Ð" u2="]" k="41" /> +<hkern u1="Ð" u2="\" k="57" /> +<hkern u1="Ð" u2="Z" k="66" /> +<hkern u1="Ð" u2="Y" k="82" /> +<hkern u1="Ð" u2="X" k="87" /> +<hkern u1="Ð" u2="V" k="57" /> +<hkern u1="Ð" u2="T" k="80" /> +<hkern u1="Ð" u2="A" k="44" /> +<hkern u1="Ð" u2="/" k="44" /> +<hkern u1="Ð" u2="*" k="53" /> +<hkern u1="Ð" u2=")" k="41" /> +<hkern u1="Ð" u2="'" k="53" /> +<hkern u1="Ð" u2="&" k="44" /> +<hkern u1="Ð" u2=""" k="53" /> +<hkern u1="Ò" u2="”" k="53" /> +<hkern u1="Ò" u2="“" k="53" /> +<hkern u1="Ò" u2="’" k="53" /> +<hkern u1="Ò" u2="‘" k="53" /> +<hkern u1="Ò" u2="Ÿ" k="82" /> +<hkern u1="Ò" u2="Ý" k="82" /> +<hkern u1="Ò" u2="Æ" k="44" /> +<hkern u1="Ò" u2="Å" k="44" /> +<hkern u1="Ò" u2="Ä" k="44" /> +<hkern u1="Ò" u2="Ã" k="44" /> +<hkern u1="Ò" u2="Â" k="44" /> +<hkern u1="Ò" u2="Á" k="44" /> +<hkern u1="Ò" u2="À" k="44" /> +<hkern u1="Ò" u2="º" k="53" /> +<hkern u1="Ò" u2="°" k="53" /> +<hkern u1="Ò" u2="ª" k="53" /> +<hkern u1="Ò" u2="}" k="41" /> +<hkern u1="Ò" u2="]" k="41" /> +<hkern u1="Ò" u2="\" k="57" /> +<hkern u1="Ò" u2="Z" k="66" /> +<hkern u1="Ò" u2="Y" k="82" /> +<hkern u1="Ò" u2="X" k="87" /> +<hkern u1="Ò" u2="V" k="57" /> +<hkern u1="Ò" u2="T" k="80" /> +<hkern u1="Ò" u2="A" k="44" /> +<hkern u1="Ò" u2="/" k="44" /> +<hkern u1="Ò" u2="*" k="53" /> +<hkern u1="Ò" u2=")" k="41" /> +<hkern u1="Ò" u2="'" k="53" /> +<hkern u1="Ò" u2="&" k="44" /> +<hkern u1="Ò" u2=""" k="53" /> +<hkern u1="Ó" u2="”" k="53" /> +<hkern u1="Ó" u2="“" k="53" /> +<hkern u1="Ó" u2="’" k="53" /> +<hkern u1="Ó" u2="‘" k="53" /> +<hkern u1="Ó" u2="Ÿ" k="82" /> +<hkern u1="Ó" u2="Ý" k="82" /> +<hkern u1="Ó" u2="Æ" k="44" /> +<hkern u1="Ó" u2="Å" k="44" /> +<hkern u1="Ó" u2="Ä" k="44" /> +<hkern u1="Ó" u2="Ã" k="44" /> +<hkern u1="Ó" u2="Â" k="44" /> +<hkern u1="Ó" u2="Á" k="44" /> +<hkern u1="Ó" u2="À" k="44" /> +<hkern u1="Ó" u2="º" k="53" /> +<hkern u1="Ó" u2="°" k="53" /> +<hkern u1="Ó" u2="ª" k="53" /> +<hkern u1="Ó" u2="}" k="41" /> +<hkern u1="Ó" u2="]" k="41" /> +<hkern u1="Ó" u2="\" k="57" /> +<hkern u1="Ó" u2="Z" k="66" /> +<hkern u1="Ó" u2="Y" k="82" /> +<hkern u1="Ó" u2="X" k="87" /> +<hkern u1="Ó" u2="V" k="57" /> +<hkern u1="Ó" u2="T" k="80" /> +<hkern u1="Ó" u2="A" k="44" /> +<hkern u1="Ó" u2="/" k="44" /> +<hkern u1="Ó" u2="*" k="53" /> +<hkern u1="Ó" u2=")" k="41" /> +<hkern u1="Ó" u2="'" k="53" /> +<hkern u1="Ó" u2="&" k="44" /> +<hkern u1="Ó" u2=""" k="53" /> +<hkern u1="Ô" u2="”" k="53" /> +<hkern u1="Ô" u2="“" k="53" /> +<hkern u1="Ô" u2="’" k="53" /> +<hkern u1="Ô" u2="‘" k="53" /> +<hkern u1="Ô" u2="Ÿ" k="82" /> +<hkern u1="Ô" u2="Ý" k="82" /> +<hkern u1="Ô" u2="Æ" k="44" /> +<hkern u1="Ô" u2="Å" k="44" /> +<hkern u1="Ô" u2="Ä" k="44" /> +<hkern u1="Ô" u2="Ã" k="44" /> +<hkern u1="Ô" u2="Â" k="44" /> +<hkern u1="Ô" u2="Á" k="44" /> +<hkern u1="Ô" u2="À" k="44" /> +<hkern u1="Ô" u2="º" k="53" /> +<hkern u1="Ô" u2="°" k="53" /> +<hkern u1="Ô" u2="ª" k="53" /> +<hkern u1="Ô" u2="}" k="41" /> +<hkern u1="Ô" u2="]" k="41" /> +<hkern u1="Ô" u2="\" k="57" /> +<hkern u1="Ô" u2="Z" k="66" /> +<hkern u1="Ô" u2="Y" k="82" /> +<hkern u1="Ô" u2="X" k="87" /> +<hkern u1="Ô" u2="V" k="57" /> +<hkern u1="Ô" u2="T" k="80" /> +<hkern u1="Ô" u2="A" k="44" /> +<hkern u1="Ô" u2="/" k="44" /> +<hkern u1="Ô" u2="*" k="53" /> +<hkern u1="Ô" u2=")" k="41" /> +<hkern u1="Ô" u2="'" k="53" /> +<hkern u1="Ô" u2="&" k="44" /> +<hkern u1="Ô" u2=""" k="53" /> +<hkern u1="Õ" u2="”" k="53" /> +<hkern u1="Õ" u2="“" k="53" /> +<hkern u1="Õ" u2="’" k="53" /> +<hkern u1="Õ" u2="‘" k="53" /> +<hkern u1="Õ" u2="Ÿ" k="82" /> +<hkern u1="Õ" u2="Ý" k="82" /> +<hkern u1="Õ" u2="Æ" k="44" /> +<hkern u1="Õ" u2="Å" k="44" /> +<hkern u1="Õ" u2="Ä" k="44" /> +<hkern u1="Õ" u2="Ã" k="44" /> +<hkern u1="Õ" u2="Â" k="44" /> +<hkern u1="Õ" u2="Á" k="44" /> +<hkern u1="Õ" u2="À" k="44" /> +<hkern u1="Õ" u2="º" k="53" /> +<hkern u1="Õ" u2="°" k="53" /> +<hkern u1="Õ" u2="ª" k="53" /> +<hkern u1="Õ" u2="}" k="41" /> +<hkern u1="Õ" u2="]" k="41" /> +<hkern u1="Õ" u2="\" k="57" /> +<hkern u1="Õ" u2="Z" k="66" /> +<hkern u1="Õ" u2="Y" k="82" /> +<hkern u1="Õ" u2="X" k="87" /> +<hkern u1="Õ" u2="V" k="57" /> +<hkern u1="Õ" u2="T" k="80" /> +<hkern u1="Õ" u2="A" k="44" /> +<hkern u1="Õ" u2="/" k="44" /> +<hkern u1="Õ" u2="*" k="53" /> +<hkern u1="Õ" u2=")" k="41" /> +<hkern u1="Õ" u2="'" k="53" /> +<hkern u1="Õ" u2="&" k="44" /> +<hkern u1="Õ" u2=""" k="53" /> +<hkern u1="Ö" u2="”" k="53" /> +<hkern u1="Ö" u2="“" k="53" /> +<hkern u1="Ö" u2="’" k="53" /> +<hkern u1="Ö" u2="‘" k="53" /> +<hkern u1="Ö" u2="Ÿ" k="82" /> +<hkern u1="Ö" u2="Ý" k="82" /> +<hkern u1="Ö" u2="Æ" k="44" /> +<hkern u1="Ö" u2="Å" k="44" /> +<hkern u1="Ö" u2="Ä" k="44" /> +<hkern u1="Ö" u2="Ã" k="44" /> +<hkern u1="Ö" u2="Â" k="44" /> +<hkern u1="Ö" u2="Á" k="44" /> +<hkern u1="Ö" u2="À" k="44" /> +<hkern u1="Ö" u2="º" k="53" /> +<hkern u1="Ö" u2="°" k="53" /> +<hkern u1="Ö" u2="ª" k="53" /> +<hkern u1="Ö" u2="}" k="41" /> +<hkern u1="Ö" u2="]" k="41" /> +<hkern u1="Ö" u2="\" k="57" /> +<hkern u1="Ö" u2="Z" k="66" /> +<hkern u1="Ö" u2="Y" k="82" /> +<hkern u1="Ö" u2="X" k="87" /> +<hkern u1="Ö" u2="V" k="57" /> +<hkern u1="Ö" u2="T" k="80" /> +<hkern u1="Ö" u2="A" k="44" /> +<hkern u1="Ö" u2="/" k="44" /> +<hkern u1="Ö" u2="*" k="53" /> +<hkern u1="Ö" u2=")" k="41" /> +<hkern u1="Ö" u2="'" k="53" /> +<hkern u1="Ö" u2="&" k="44" /> +<hkern u1="Ö" u2=""" k="53" /> +<hkern u1="Ù" u2="Æ" k="41" /> +<hkern u1="Ù" u2="Å" k="41" /> +<hkern u1="Ù" u2="Ä" k="41" /> +<hkern u1="Ù" u2="Ã" k="41" /> +<hkern u1="Ù" u2="Â" k="41" /> +<hkern u1="Ù" u2="Á" k="41" /> +<hkern u1="Ù" u2="À" k="41" /> +<hkern u1="Ù" u2="A" k="41" /> +<hkern u1="Ù" u2="/" k="41" /> +<hkern u1="Ù" u2="&" k="41" /> +<hkern u1="Ú" u2="Æ" k="41" /> +<hkern u1="Ú" u2="Å" k="41" /> +<hkern u1="Ú" u2="Ä" k="41" /> +<hkern u1="Ú" u2="Ã" k="41" /> +<hkern u1="Ú" u2="Â" k="41" /> +<hkern u1="Ú" u2="Á" k="41" /> +<hkern u1="Ú" u2="À" k="41" /> +<hkern u1="Ú" u2="A" k="41" /> +<hkern u1="Ú" u2="/" k="41" /> +<hkern u1="Ú" u2="&" k="41" /> +<hkern u1="Û" u2="Æ" k="41" /> +<hkern u1="Û" u2="Å" k="41" /> +<hkern u1="Û" u2="Ä" k="41" /> +<hkern u1="Û" u2="Ã" k="41" /> +<hkern u1="Û" u2="Â" k="41" /> +<hkern u1="Û" u2="Á" k="41" /> +<hkern u1="Û" u2="À" k="41" /> +<hkern u1="Û" u2="A" k="41" /> +<hkern u1="Û" u2="/" k="41" /> +<hkern u1="Û" u2="&" k="41" /> +<hkern u1="Ü" u2="Æ" k="41" /> +<hkern u1="Ü" u2="Å" k="41" /> +<hkern u1="Ü" u2="Ä" k="41" /> +<hkern u1="Ü" u2="Ã" k="41" /> +<hkern u1="Ü" u2="Â" k="41" /> +<hkern u1="Ü" u2="Á" k="41" /> +<hkern u1="Ü" u2="À" k="41" /> +<hkern u1="Ü" u2="A" k="41" /> +<hkern u1="Ü" u2="/" k="41" /> +<hkern u1="Ü" u2="&" k="41" /> +<hkern u1="Ý" u2="›" k="196" /> +<hkern u1="Ý" u2="‹" k="196" /> +<hkern u1="Ý" u2="…" k="266" /> +<hkern u1="Ý" u2="•" k="196" /> +<hkern u1="Ý" u2="„" k="266" /> +<hkern u1="Ý" u2="”" k="-59" /> +<hkern u1="Ý" u2="“" k="-59" /> +<hkern u1="Ý" u2="‚" k="266" /> +<hkern u1="Ý" u2="’" k="-59" /> +<hkern u1="Ý" u2="‘" k="-59" /> +<hkern u1="Ý" u2="—" k="196" /> +<hkern u1="Ý" u2="–" k="196" /> +<hkern u1="Ý" u2="œ" k="201" /> +<hkern u1="Ý" u2="Œ" k="66" /> +<hkern u1="Ý" u2="ü" k="115" /> +<hkern u1="Ý" u2="û" k="115" /> +<hkern u1="Ý" u2="ú" k="115" /> +<hkern u1="Ý" u2="ù" k="115" /> +<hkern u1="Ý" u2="ø" k="201" /> +<hkern u1="Ý" u2="ö" k="201" /> +<hkern u1="Ý" u2="õ" k="201" /> +<hkern u1="Ý" u2="ô" k="201" /> +<hkern u1="Ý" u2="ó" k="201" /> +<hkern u1="Ý" u2="ò" k="201" /> +<hkern u1="Ý" u2="ñ" k="115" /> +<hkern u1="Ý" u2="ð" k="201" /> +<hkern u1="Ý" u2="ë" k="201" /> +<hkern u1="Ý" u2="ê" k="201" /> +<hkern u1="Ý" u2="é" k="201" /> +<hkern u1="Ý" u2="è" k="201" /> +<hkern u1="Ý" u2="ç" k="201" /> +<hkern u1="Ý" u2="æ" k="201" /> +<hkern u1="Ý" u2="å" k="201" /> +<hkern u1="Ý" u2="ä" k="201" /> +<hkern u1="Ý" u2="ã" k="201" /> +<hkern u1="Ý" u2="â" k="201" /> +<hkern u1="Ý" u2="á" k="201" /> +<hkern u1="Ý" u2="à" k="201" /> +<hkern u1="Ý" u2="Ø" k="66" /> +<hkern u1="Ý" u2="Ö" k="66" /> +<hkern u1="Ý" u2="Õ" k="66" /> +<hkern u1="Ý" u2="Ô" k="66" /> +<hkern u1="Ý" u2="Ó" k="66" /> +<hkern u1="Ý" u2="Ò" k="66" /> +<hkern u1="Ý" u2="Ç" k="66" /> +<hkern u1="Ý" u2="Æ" k="155" /> +<hkern u1="Ý" u2="Å" k="155" /> +<hkern u1="Ý" u2="Ä" k="155" /> +<hkern u1="Ý" u2="Ã" k="155" /> +<hkern u1="Ý" u2="Â" k="155" /> +<hkern u1="Ý" u2="Á" k="155" /> +<hkern u1="Ý" u2="À" k="155" /> +<hkern u1="Ý" u2="»" k="196" /> +<hkern u1="Ý" u2="º" k="-59" /> +<hkern u1="Ý" u2="¹" k="-73" /> +<hkern u1="Ý" u2="·" k="196" /> +<hkern u1="Ý" u2="µ" k="115" /> +<hkern u1="Ý" u2="³" k="-73" /> +<hkern u1="Ý" u2="²" k="-73" /> +<hkern u1="Ý" u2="°" k="-59" /> +<hkern u1="Ý" u2="®" k="66" /> +<hkern u1="Ý" u2="­" k="196" /> +<hkern u1="Ý" u2="«" k="196" /> +<hkern u1="Ý" u2="ª" k="-59" /> +<hkern u1="Ý" u2="©" k="66" /> +<hkern u1="Ý" u2="z" k="119" /> +<hkern u1="Ý" u2="u" k="115" /> +<hkern u1="Ý" u2="s" k="201" /> +<hkern u1="Ý" u2="r" k="115" /> +<hkern u1="Ý" u2="q" k="201" /> +<hkern u1="Ý" u2="p" k="115" /> +<hkern u1="Ý" u2="o" k="201" /> +<hkern u1="Ý" u2="n" k="115" /> +<hkern u1="Ý" u2="m" k="115" /> +<hkern u1="Ý" u2="g" k="179" /> +<hkern u1="Ý" u2="e" k="201" /> +<hkern u1="Ý" u2="d" k="201" /> +<hkern u1="Ý" u2="c" k="201" /> +<hkern u1="Ý" u2="a" k="201" /> +<hkern u1="Ý" u2="Q" k="66" /> +<hkern u1="Ý" u2="O" k="66" /> +<hkern u1="Ý" u2="J" k="205" /> +<hkern u1="Ý" u2="G" k="66" /> +<hkern u1="Ý" u2="C" k="66" /> +<hkern u1="Ý" u2="A" k="155" /> +<hkern u1="Ý" u2="@" k="66" /> +<hkern u1="Ý" u2="?" k="-51" /> +<hkern u1="Ý" u2=";" k="115" /> +<hkern u1="Ý" u2=":" k="115" /> +<hkern u1="Ý" u2="/" k="155" /> +<hkern u1="Ý" u2="." k="266" /> +<hkern u1="Ý" u2="-" k="196" /> +<hkern u1="Ý" u2="," k="266" /> +<hkern u1="Ý" u2="*" k="-59" /> +<hkern u1="Ý" u2="'" k="-59" /> +<hkern u1="Ý" u2="&" k="155" /> +<hkern u1="Ý" u2=""" k="-59" /> +<hkern u1="Þ" u2="”" k="53" /> +<hkern u1="Þ" u2="“" k="53" /> +<hkern u1="Þ" u2="’" k="53" /> +<hkern u1="Þ" u2="‘" k="53" /> +<hkern u1="Þ" u2="Ÿ" k="82" /> +<hkern u1="Þ" u2="Ý" k="82" /> +<hkern u1="Þ" u2="Æ" k="44" /> +<hkern u1="Þ" u2="Å" k="44" /> +<hkern u1="Þ" u2="Ä" k="44" /> +<hkern u1="Þ" u2="Ã" k="44" /> +<hkern u1="Þ" u2="Â" k="44" /> +<hkern u1="Þ" u2="Á" k="44" /> +<hkern u1="Þ" u2="À" k="44" /> +<hkern u1="Þ" u2="º" k="53" /> +<hkern u1="Þ" u2="°" k="53" /> +<hkern u1="Þ" u2="ª" k="53" /> +<hkern u1="Þ" u2="}" k="41" /> +<hkern u1="Þ" u2="]" k="41" /> +<hkern u1="Þ" u2="\" k="57" /> +<hkern u1="Þ" u2="Z" k="66" /> +<hkern u1="Þ" u2="Y" k="82" /> +<hkern u1="Þ" u2="X" k="87" /> +<hkern u1="Þ" u2="V" k="57" /> +<hkern u1="Þ" u2="T" k="80" /> +<hkern u1="Þ" u2="A" k="44" /> +<hkern u1="Þ" u2="/" k="44" /> +<hkern u1="Þ" u2="*" k="53" /> +<hkern u1="Þ" u2=")" k="41" /> +<hkern u1="Þ" u2="'" k="53" /> +<hkern u1="Þ" u2="&" k="44" /> +<hkern u1="Þ" u2=""" k="53" /> +<hkern u1="æ" u2="”" k="82" /> +<hkern u1="æ" u2="“" k="82" /> +<hkern u1="æ" u2="’" k="82" /> +<hkern u1="æ" u2="‘" k="82" /> +<hkern u1="æ" u2="º" k="82" /> +<hkern u1="æ" u2="°" k="82" /> +<hkern u1="æ" u2="ª" k="82" /> +<hkern u1="æ" u2="}" k="37" /> +<hkern u1="æ" u2="x" k="57" /> +<hkern u1="æ" u2="]" k="37" /> +<hkern u1="æ" u2="*" k="82" /> +<hkern u1="æ" u2=")" k="37" /> +<hkern u1="æ" u2="'" k="82" /> +<hkern u1="æ" u2=""" k="82" /> +<hkern u1="è" u2="”" k="82" /> +<hkern u1="è" u2="“" k="82" /> +<hkern u1="è" u2="’" k="82" /> +<hkern u1="è" u2="‘" k="82" /> +<hkern u1="è" u2="º" k="82" /> +<hkern u1="è" u2="°" k="82" /> +<hkern u1="è" u2="ª" k="82" /> +<hkern u1="è" u2="}" k="37" /> +<hkern u1="è" u2="x" k="57" /> +<hkern u1="è" u2="]" k="37" /> +<hkern u1="è" u2="*" k="82" /> +<hkern u1="è" u2=")" k="37" /> +<hkern u1="è" u2="'" k="82" /> +<hkern u1="è" u2=""" k="82" /> +<hkern u1="é" u2="”" k="82" /> +<hkern u1="é" u2="“" k="82" /> +<hkern u1="é" u2="’" k="82" /> +<hkern u1="é" u2="‘" k="82" /> +<hkern u1="é" u2="º" k="82" /> +<hkern u1="é" u2="°" k="82" /> +<hkern u1="é" u2="ª" k="82" /> +<hkern u1="é" u2="}" k="37" /> +<hkern u1="é" u2="x" k="57" /> +<hkern u1="é" u2="]" k="37" /> +<hkern u1="é" u2="*" k="82" /> +<hkern u1="é" u2=")" k="37" /> +<hkern u1="é" u2="'" k="82" /> +<hkern u1="é" u2=""" k="82" /> +<hkern u1="ê" u2="”" k="82" /> +<hkern u1="ê" u2="“" k="82" /> +<hkern u1="ê" u2="’" k="82" /> +<hkern u1="ê" u2="‘" k="82" /> +<hkern u1="ê" u2="º" k="82" /> +<hkern u1="ê" u2="°" k="82" /> +<hkern u1="ê" u2="ª" k="82" /> +<hkern u1="ê" u2="}" k="37" /> +<hkern u1="ê" u2="x" k="57" /> +<hkern u1="ê" u2="]" k="37" /> +<hkern u1="ê" u2="*" k="82" /> +<hkern u1="ê" u2=")" k="37" /> +<hkern u1="ê" u2="'" k="82" /> +<hkern u1="ê" u2=""" k="82" /> +<hkern u1="ë" u2="”" k="82" /> +<hkern u1="ë" u2="“" k="82" /> +<hkern u1="ë" u2="’" k="82" /> +<hkern u1="ë" u2="‘" k="82" /> +<hkern u1="ë" u2="º" k="82" /> +<hkern u1="ë" u2="°" k="82" /> +<hkern u1="ë" u2="ª" k="82" /> +<hkern u1="ë" u2="}" k="37" /> +<hkern u1="ë" u2="x" k="57" /> +<hkern u1="ë" u2="]" k="37" /> +<hkern u1="ë" u2="*" k="82" /> +<hkern u1="ë" u2=")" k="37" /> +<hkern u1="ë" u2="'" k="82" /> +<hkern u1="ë" u2=""" k="82" /> +<hkern u1="ñ" u2="”" k="61" /> +<hkern u1="ñ" u2="“" k="61" /> +<hkern u1="ñ" u2="’" k="61" /> +<hkern u1="ñ" u2="‘" k="61" /> +<hkern u1="ñ" u2="ÿ" k="37" /> +<hkern u1="ñ" u2="ý" k="37" /> +<hkern u1="ñ" u2="º" k="61" /> +<hkern u1="ñ" u2="¹" k="125" /> +<hkern u1="ñ" u2="³" k="125" /> +<hkern u1="ñ" u2="²" k="125" /> +<hkern u1="ñ" u2="°" k="61" /> +<hkern u1="ñ" u2="ª" k="61" /> +<hkern u1="ñ" u2="y" k="52" /> +<hkern u1="ñ" u2="v" k="37" /> +<hkern u1="ñ" u2="*" k="61" /> +<hkern u1="ñ" u2="'" k="61" /> +<hkern u1="ñ" u2=""" k="61" /> +<hkern u1="ò" u2="”" k="82" /> +<hkern u1="ò" u2="“" k="82" /> +<hkern u1="ò" u2="’" k="82" /> +<hkern u1="ò" u2="‘" k="82" /> +<hkern u1="ò" u2="º" k="82" /> +<hkern u1="ò" u2="°" k="82" /> +<hkern u1="ò" u2="ª" k="82" /> +<hkern u1="ò" u2="}" k="37" /> +<hkern u1="ò" u2="x" k="57" /> +<hkern u1="ò" u2="]" k="37" /> +<hkern u1="ò" u2="*" k="82" /> +<hkern u1="ò" u2=")" k="37" /> +<hkern u1="ò" u2="'" k="82" /> +<hkern u1="ò" u2=""" k="82" /> +<hkern u1="ó" u2="”" k="82" /> +<hkern u1="ó" u2="“" k="82" /> +<hkern u1="ó" u2="’" k="82" /> +<hkern u1="ó" u2="‘" k="82" /> +<hkern u1="ó" u2="º" k="82" /> +<hkern u1="ó" u2="°" k="82" /> +<hkern u1="ó" u2="ª" k="82" /> +<hkern u1="ó" u2="}" k="37" /> +<hkern u1="ó" u2="x" k="57" /> +<hkern u1="ó" u2="]" k="37" /> +<hkern u1="ó" u2="*" k="82" /> +<hkern u1="ó" u2=")" k="37" /> +<hkern u1="ó" u2="'" k="82" /> +<hkern u1="ó" u2=""" k="82" /> +<hkern u1="ô" u2="”" k="82" /> +<hkern u1="ô" u2="“" k="82" /> +<hkern u1="ô" u2="’" k="82" /> +<hkern u1="ô" u2="‘" k="82" /> +<hkern u1="ô" u2="º" k="82" /> +<hkern u1="ô" u2="°" k="82" /> +<hkern u1="ô" u2="ª" k="82" /> +<hkern u1="ô" u2="}" k="37" /> +<hkern u1="ô" u2="x" k="57" /> +<hkern u1="ô" u2="]" k="37" /> +<hkern u1="ô" u2="*" k="82" /> +<hkern u1="ô" u2=")" k="37" /> +<hkern u1="ô" u2="'" k="82" /> +<hkern u1="ô" u2=""" k="82" /> +<hkern u1="õ" u2="”" k="82" /> +<hkern u1="õ" u2="“" k="82" /> +<hkern u1="õ" u2="’" k="82" /> +<hkern u1="õ" u2="‘" k="82" /> +<hkern u1="õ" u2="º" k="82" /> +<hkern u1="õ" u2="°" k="82" /> +<hkern u1="õ" u2="ª" k="82" /> +<hkern u1="õ" u2="}" k="37" /> +<hkern u1="õ" u2="x" k="57" /> +<hkern u1="õ" u2="]" k="37" /> +<hkern u1="õ" u2="*" k="82" /> +<hkern u1="õ" u2=")" k="37" /> +<hkern u1="õ" u2="'" k="82" /> +<hkern u1="õ" u2=""" k="82" /> +<hkern u1="ö" u2="”" k="82" /> +<hkern u1="ö" u2="“" k="82" /> +<hkern u1="ö" u2="’" k="82" /> +<hkern u1="ö" u2="‘" k="82" /> +<hkern u1="ö" u2="º" k="82" /> +<hkern u1="ö" u2="°" k="82" /> +<hkern u1="ö" u2="ª" k="82" /> +<hkern u1="ö" u2="}" k="37" /> +<hkern u1="ö" u2="x" k="57" /> +<hkern u1="ö" u2="]" k="37" /> +<hkern u1="ö" u2="*" k="82" /> +<hkern u1="ö" u2=")" k="37" /> +<hkern u1="ö" u2="'" k="82" /> +<hkern u1="ö" u2=""" k="82" /> +<hkern u1="ø" u2="”" k="82" /> +<hkern u1="ø" u2="“" k="82" /> +<hkern u1="ø" u2="’" k="82" /> +<hkern u1="ø" u2="‘" k="82" /> +<hkern u1="ø" u2="º" k="82" /> +<hkern u1="ø" u2="°" k="82" /> +<hkern u1="ø" u2="ª" k="82" /> +<hkern u1="ø" u2="}" k="37" /> +<hkern u1="ø" u2="x" k="57" /> +<hkern u1="ø" u2="]" k="37" /> +<hkern u1="ø" u2="*" k="82" /> +<hkern u1="ø" u2=")" k="37" /> +<hkern u1="ø" u2="'" k="82" /> +<hkern u1="ø" u2=""" k="82" /> +<hkern u1="ý" u2="…" k="155" /> +<hkern u1="ý" u2="„" k="155" /> +<hkern u1="ý" u2="‚" k="155" /> +<hkern u1="ý" u2="œ" k="34" /> +<hkern u1="ý" u2="ø" k="34" /> +<hkern u1="ý" u2="ö" k="34" /> +<hkern u1="ý" u2="õ" k="34" /> +<hkern u1="ý" u2="ô" k="34" /> +<hkern u1="ý" u2="ó" k="34" /> +<hkern u1="ý" u2="ò" k="34" /> +<hkern u1="ý" u2="ð" k="34" /> +<hkern u1="ý" u2="ë" k="34" /> +<hkern u1="ý" u2="ê" k="34" /> +<hkern u1="ý" u2="é" k="34" /> +<hkern u1="ý" u2="è" k="34" /> +<hkern u1="ý" u2="ç" k="34" /> +<hkern u1="ý" u2="æ" k="34" /> +<hkern u1="ý" u2="å" k="34" /> +<hkern u1="ý" u2="ä" k="34" /> +<hkern u1="ý" u2="ã" k="34" /> +<hkern u1="ý" u2="â" k="34" /> +<hkern u1="ý" u2="á" k="34" /> +<hkern u1="ý" u2="à" k="34" /> +<hkern u1="ý" u2="Æ" k="60" /> +<hkern u1="ý" u2="Å" k="60" /> +<hkern u1="ý" u2="Ä" k="60" /> +<hkern u1="ý" u2="Ã" k="60" /> +<hkern u1="ý" u2="Â" k="60" /> +<hkern u1="ý" u2="Á" k="60" /> +<hkern u1="ý" u2="À" k="60" /> +<hkern u1="ý" u2="q" k="34" /> +<hkern u1="ý" u2="o" k="34" /> +<hkern u1="ý" u2="e" k="34" /> +<hkern u1="ý" u2="d" k="34" /> +<hkern u1="ý" u2="c" k="34" /> +<hkern u1="ý" u2="a" k="34" /> +<hkern u1="ý" u2="A" k="60" /> +<hkern u1="ý" u2="/" k="60" /> +<hkern u1="ý" u2="." k="155" /> +<hkern u1="ý" u2="," k="155" /> +<hkern u1="ý" u2="&" k="60" /> +<hkern u1="þ" u2="”" k="82" /> +<hkern u1="þ" u2="“" k="82" /> +<hkern u1="þ" u2="’" k="82" /> +<hkern u1="þ" u2="‘" k="82" /> +<hkern u1="þ" u2="º" k="82" /> +<hkern u1="þ" u2="°" k="82" /> +<hkern u1="þ" u2="ª" k="82" /> +<hkern u1="þ" u2="}" k="37" /> +<hkern u1="þ" u2="x" k="57" /> +<hkern u1="þ" u2="]" k="37" /> +<hkern u1="þ" u2="*" k="82" /> +<hkern u1="þ" u2=")" k="37" /> +<hkern u1="þ" u2="'" k="82" /> +<hkern u1="þ" u2=""" k="82" /> +<hkern u1="ÿ" u2="…" k="155" /> +<hkern u1="ÿ" u2="„" k="155" /> +<hkern u1="ÿ" u2="‚" k="155" /> +<hkern u1="ÿ" u2="œ" k="34" /> +<hkern u1="ÿ" u2="ø" k="34" /> +<hkern u1="ÿ" u2="ö" k="34" /> +<hkern u1="ÿ" u2="õ" k="34" /> +<hkern u1="ÿ" u2="ô" k="34" /> +<hkern u1="ÿ" u2="ó" k="34" /> +<hkern u1="ÿ" u2="ò" k="34" /> +<hkern u1="ÿ" u2="ð" k="34" /> +<hkern u1="ÿ" u2="ë" k="34" /> +<hkern u1="ÿ" u2="ê" k="34" /> +<hkern u1="ÿ" u2="é" k="34" /> +<hkern u1="ÿ" u2="è" k="34" /> +<hkern u1="ÿ" u2="ç" k="34" /> +<hkern u1="ÿ" u2="æ" k="34" /> +<hkern u1="ÿ" u2="å" k="34" /> +<hkern u1="ÿ" u2="ä" k="34" /> +<hkern u1="ÿ" u2="ã" k="34" /> +<hkern u1="ÿ" u2="â" k="34" /> +<hkern u1="ÿ" u2="á" k="34" /> +<hkern u1="ÿ" u2="à" k="34" /> +<hkern u1="ÿ" u2="Æ" k="60" /> +<hkern u1="ÿ" u2="Å" k="60" /> +<hkern u1="ÿ" u2="Ä" k="60" /> +<hkern u1="ÿ" u2="Ã" k="60" /> +<hkern u1="ÿ" u2="Â" k="60" /> +<hkern u1="ÿ" u2="Á" k="60" /> +<hkern u1="ÿ" u2="À" k="60" /> +<hkern u1="ÿ" u2="q" k="34" /> +<hkern u1="ÿ" u2="o" k="34" /> +<hkern u1="ÿ" u2="e" k="34" /> +<hkern u1="ÿ" u2="d" k="34" /> +<hkern u1="ÿ" u2="c" k="34" /> +<hkern u1="ÿ" u2="a" k="34" /> +<hkern u1="ÿ" u2="A" k="60" /> +<hkern u1="ÿ" u2="/" k="60" /> +<hkern u1="ÿ" u2="." k="155" /> +<hkern u1="ÿ" u2="," k="155" /> +<hkern u1="ÿ" u2="&" k="60" /> +<hkern u1="œ" u2="”" k="82" /> +<hkern u1="œ" u2="“" k="82" /> +<hkern u1="œ" u2="’" k="82" /> +<hkern u1="œ" u2="‘" k="82" /> +<hkern u1="œ" u2="º" k="82" /> +<hkern u1="œ" u2="°" k="82" /> +<hkern u1="œ" u2="ª" k="82" /> +<hkern u1="œ" u2="}" k="37" /> +<hkern u1="œ" u2="x" k="57" /> +<hkern u1="œ" u2="]" k="37" /> +<hkern u1="œ" u2="*" k="82" /> +<hkern u1="œ" u2=")" k="37" /> +<hkern u1="œ" u2="'" k="82" /> +<hkern u1="œ" u2=""" k="82" /> +<hkern u1="Ÿ" u2="›" k="196" /> +<hkern u1="Ÿ" u2="‹" k="196" /> +<hkern u1="Ÿ" u2="…" k="266" /> +<hkern u1="Ÿ" u2="•" k="196" /> +<hkern u1="Ÿ" u2="„" k="266" /> +<hkern u1="Ÿ" u2="”" k="-59" /> +<hkern u1="Ÿ" u2="“" k="-59" /> +<hkern u1="Ÿ" u2="‚" k="266" /> +<hkern u1="Ÿ" u2="’" k="-59" /> +<hkern u1="Ÿ" u2="‘" k="-59" /> +<hkern u1="Ÿ" u2="—" k="196" /> +<hkern u1="Ÿ" u2="–" k="196" /> +<hkern u1="Ÿ" u2="œ" k="201" /> +<hkern u1="Ÿ" u2="Œ" k="66" /> +<hkern u1="Ÿ" u2="ü" k="115" /> +<hkern u1="Ÿ" u2="û" k="115" /> +<hkern u1="Ÿ" u2="ú" k="115" /> +<hkern u1="Ÿ" u2="ù" k="115" /> +<hkern u1="Ÿ" u2="ø" k="201" /> +<hkern u1="Ÿ" u2="ö" k="201" /> +<hkern u1="Ÿ" u2="õ" k="201" /> +<hkern u1="Ÿ" u2="ô" k="201" /> +<hkern u1="Ÿ" u2="ó" k="201" /> +<hkern u1="Ÿ" u2="ò" k="201" /> +<hkern u1="Ÿ" u2="ñ" k="115" /> +<hkern u1="Ÿ" u2="ð" k="201" /> +<hkern u1="Ÿ" u2="ë" k="201" /> +<hkern u1="Ÿ" u2="ê" k="201" /> +<hkern u1="Ÿ" u2="é" k="201" /> +<hkern u1="Ÿ" u2="è" k="201" /> +<hkern u1="Ÿ" u2="ç" k="201" /> +<hkern u1="Ÿ" u2="æ" k="201" /> +<hkern u1="Ÿ" u2="å" k="201" /> +<hkern u1="Ÿ" u2="ä" k="201" /> +<hkern u1="Ÿ" u2="ã" k="201" /> +<hkern u1="Ÿ" u2="â" k="201" /> +<hkern u1="Ÿ" u2="á" k="201" /> +<hkern u1="Ÿ" u2="à" k="201" /> +<hkern u1="Ÿ" u2="Ø" k="66" /> +<hkern u1="Ÿ" u2="Ö" k="66" /> +<hkern u1="Ÿ" u2="Õ" k="66" /> +<hkern u1="Ÿ" u2="Ô" k="66" /> +<hkern u1="Ÿ" u2="Ó" k="66" /> +<hkern u1="Ÿ" u2="Ò" k="66" /> +<hkern u1="Ÿ" u2="Ç" k="66" /> +<hkern u1="Ÿ" u2="Æ" k="155" /> +<hkern u1="Ÿ" u2="Å" k="155" /> +<hkern u1="Ÿ" u2="Ä" k="155" /> +<hkern u1="Ÿ" u2="Ã" k="155" /> +<hkern u1="Ÿ" u2="Â" k="155" /> +<hkern u1="Ÿ" u2="Á" k="155" /> +<hkern u1="Ÿ" u2="À" k="155" /> +<hkern u1="Ÿ" u2="»" k="196" /> +<hkern u1="Ÿ" u2="º" k="-59" /> +<hkern u1="Ÿ" u2="¹" k="-73" /> +<hkern u1="Ÿ" u2="·" k="196" /> +<hkern u1="Ÿ" u2="µ" k="115" /> +<hkern u1="Ÿ" u2="³" k="-73" /> +<hkern u1="Ÿ" u2="²" k="-73" /> +<hkern u1="Ÿ" u2="°" k="-59" /> +<hkern u1="Ÿ" u2="®" k="66" /> +<hkern u1="Ÿ" u2="­" k="196" /> +<hkern u1="Ÿ" u2="«" k="196" /> +<hkern u1="Ÿ" u2="ª" k="-59" /> +<hkern u1="Ÿ" u2="©" k="66" /> +<hkern u1="Ÿ" u2="z" k="119" /> +<hkern u1="Ÿ" u2="u" k="115" /> +<hkern u1="Ÿ" u2="s" k="201" /> +<hkern u1="Ÿ" u2="r" k="115" /> +<hkern u1="Ÿ" u2="q" k="201" /> +<hkern u1="Ÿ" u2="p" k="115" /> +<hkern u1="Ÿ" u2="o" k="201" /> +<hkern u1="Ÿ" u2="n" k="115" /> +<hkern u1="Ÿ" u2="m" k="115" /> +<hkern u1="Ÿ" u2="g" k="179" /> +<hkern u1="Ÿ" u2="e" k="201" /> +<hkern u1="Ÿ" u2="d" k="201" /> +<hkern u1="Ÿ" u2="c" k="201" /> +<hkern u1="Ÿ" u2="a" k="201" /> +<hkern u1="Ÿ" u2="Q" k="66" /> +<hkern u1="Ÿ" u2="O" k="66" /> +<hkern u1="Ÿ" u2="J" k="205" /> +<hkern u1="Ÿ" u2="G" k="66" /> +<hkern u1="Ÿ" u2="C" k="66" /> +<hkern u1="Ÿ" u2="A" k="155" /> +<hkern u1="Ÿ" u2="@" k="66" /> +<hkern u1="Ÿ" u2="?" k="-51" /> +<hkern u1="Ÿ" u2=";" k="115" /> +<hkern u1="Ÿ" u2=":" k="115" /> +<hkern u1="Ÿ" u2="/" k="155" /> +<hkern u1="Ÿ" u2="." k="266" /> +<hkern u1="Ÿ" u2="-" k="196" /> +<hkern u1="Ÿ" u2="," k="266" /> +<hkern u1="Ÿ" u2="*" k="-59" /> +<hkern u1="Ÿ" u2="'" k="-59" /> +<hkern u1="Ÿ" u2="&" k="155" /> +<hkern u1="Ÿ" u2=""" k="-59" /> +<hkern u1="–" u2="…" k="175" /> +<hkern u1="–" u2="„" k="175" /> +<hkern u1="–" u2="”" k="41" /> +<hkern u1="–" u2="“" k="41" /> +<hkern u1="–" u2="‚" k="175" /> +<hkern u1="–" u2="’" k="41" /> +<hkern u1="–" u2="‘" k="41" /> +<hkern u1="–" u2="Ÿ" k="212" /> +<hkern u1="–" u2="Ý" k="212" /> +<hkern u1="–" u2="Æ" k="69" /> +<hkern u1="–" u2="Å" k="69" /> +<hkern u1="–" u2="Ä" k="69" /> +<hkern u1="–" u2="Ã" k="69" /> +<hkern u1="–" u2="Â" k="69" /> +<hkern u1="–" u2="Á" k="69" /> +<hkern u1="–" u2="À" k="69" /> +<hkern u1="–" u2="º" k="41" /> +<hkern u1="–" u2="°" k="41" /> +<hkern u1="–" u2="ª" k="41" /> +<hkern u1="–" u2="\" k="134" /> +<hkern u1="–" u2="Z" k="59" /> +<hkern u1="–" u2="Y" k="212" /> +<hkern u1="–" u2="X" k="72" /> +<hkern u1="–" u2="V" k="134" /> +<hkern u1="–" u2="T" k="201" /> +<hkern u1="–" u2="A" k="69" /> +<hkern u1="–" u2="/" k="69" /> +<hkern u1="–" u2="." k="175" /> +<hkern u1="–" u2="," k="175" /> +<hkern u1="–" u2="*" k="41" /> +<hkern u1="–" u2="'" k="41" /> +<hkern u1="–" u2="&" k="69" /> +<hkern u1="–" u2=""" k="41" /> +<hkern u1="—" u2="…" k="175" /> +<hkern u1="—" u2="„" k="175" /> +<hkern u1="—" u2="”" k="41" /> +<hkern u1="—" u2="“" k="41" /> +<hkern u1="—" u2="‚" k="175" /> +<hkern u1="—" u2="’" k="41" /> +<hkern u1="—" u2="‘" k="41" /> +<hkern u1="—" u2="Ÿ" k="212" /> +<hkern u1="—" u2="Ý" k="212" /> +<hkern u1="—" u2="Æ" k="69" /> +<hkern u1="—" u2="Å" k="69" /> +<hkern u1="—" u2="Ä" k="69" /> +<hkern u1="—" u2="Ã" k="69" /> +<hkern u1="—" u2="Â" k="69" /> +<hkern u1="—" u2="Á" k="69" /> +<hkern u1="—" u2="À" k="69" /> +<hkern u1="—" u2="º" k="41" /> +<hkern u1="—" u2="°" k="41" /> +<hkern u1="—" u2="ª" k="41" /> +<hkern u1="—" u2="\" k="134" /> +<hkern u1="—" u2="Z" k="59" /> +<hkern u1="—" u2="Y" k="212" /> +<hkern u1="—" u2="X" k="72" /> +<hkern u1="—" u2="V" k="134" /> +<hkern u1="—" u2="T" k="201" /> +<hkern u1="—" u2="A" k="69" /> +<hkern u1="—" u2="/" k="69" /> +<hkern u1="—" u2="." k="175" /> +<hkern u1="—" u2="," k="175" /> +<hkern u1="—" u2="*" k="41" /> +<hkern u1="—" u2="'" k="41" /> +<hkern u1="—" u2="&" k="69" /> +<hkern u1="—" u2=""" k="41" /> +<hkern u1="‘" u2="›" k="41" /> +<hkern u1="‘" u2="‹" k="41" /> +<hkern u1="‘" u2="…" k="45" /> +<hkern u1="‘" u2="•" k="41" /> +<hkern u1="‘" u2="„" k="45" /> +<hkern u1="‘" u2="‚" k="45" /> +<hkern u1="‘" u2="—" k="41" /> +<hkern u1="‘" u2="–" k="41" /> +<hkern u1="‘" u2="Ÿ" k="-43" /> +<hkern u1="‘" u2="œ" k="98" /> +<hkern u1="‘" u2="ø" k="98" /> +<hkern u1="‘" u2="ö" k="98" /> +<hkern u1="‘" u2="õ" k="98" /> +<hkern u1="‘" u2="ô" k="98" /> +<hkern u1="‘" u2="ó" k="98" /> +<hkern u1="‘" u2="ò" k="98" /> +<hkern u1="‘" u2="ð" k="98" /> +<hkern u1="‘" u2="ë" k="98" /> +<hkern u1="‘" u2="ê" k="98" /> +<hkern u1="‘" u2="é" k="98" /> +<hkern u1="‘" u2="è" k="98" /> +<hkern u1="‘" u2="ç" k="98" /> +<hkern u1="‘" u2="æ" k="98" /> +<hkern u1="‘" u2="å" k="98" /> +<hkern u1="‘" u2="ä" k="98" /> +<hkern u1="‘" u2="ã" k="98" /> +<hkern u1="‘" u2="â" k="98" /> +<hkern u1="‘" u2="á" k="98" /> +<hkern u1="‘" u2="à" k="98" /> +<hkern u1="‘" u2="Ý" k="-43" /> +<hkern u1="‘" u2="Æ" k="180" /> +<hkern u1="‘" u2="Å" k="180" /> +<hkern u1="‘" u2="Ä" k="180" /> +<hkern u1="‘" u2="Ã" k="180" /> +<hkern u1="‘" u2="Â" k="180" /> +<hkern u1="‘" u2="Á" k="180" /> +<hkern u1="‘" u2="À" k="180" /> +<hkern u1="‘" u2="»" k="41" /> +<hkern u1="‘" u2="·" k="41" /> +<hkern u1="‘" u2="­" k="41" /> +<hkern u1="‘" u2="«" k="41" /> +<hkern u1="‘" u2="q" k="98" /> +<hkern u1="‘" u2="o" k="98" /> +<hkern u1="‘" u2="e" k="98" /> +<hkern u1="‘" u2="d" k="98" /> +<hkern u1="‘" u2="c" k="98" /> +<hkern u1="‘" u2="a" k="98" /> +<hkern u1="‘" u2="\" k="-48" /> +<hkern u1="‘" u2="Y" k="-43" /> +<hkern u1="‘" u2="W" k="-34" /> +<hkern u1="‘" u2="V" k="-48" /> +<hkern u1="‘" u2="A" k="180" /> +<hkern u1="‘" u2="/" k="180" /> +<hkern u1="‘" u2="." k="45" /> +<hkern u1="‘" u2="-" k="41" /> +<hkern u1="‘" u2="," k="45" /> +<hkern u1="‘" u2="&" k="180" /> +<hkern u1="’" u2="›" k="41" /> +<hkern u1="’" u2="‹" k="41" /> +<hkern u1="’" u2="…" k="45" /> +<hkern u1="’" u2="•" k="41" /> +<hkern u1="’" u2="„" k="45" /> +<hkern u1="’" u2="‚" k="45" /> +<hkern u1="’" u2="—" k="41" /> +<hkern u1="’" u2="–" k="41" /> +<hkern u1="’" u2="Ÿ" k="-43" /> +<hkern u1="’" u2="œ" k="98" /> +<hkern u1="’" u2="ø" k="98" /> +<hkern u1="’" u2="ö" k="98" /> +<hkern u1="’" u2="õ" k="98" /> +<hkern u1="’" u2="ô" k="98" /> +<hkern u1="’" u2="ó" k="98" /> +<hkern u1="’" u2="ò" k="98" /> +<hkern u1="’" u2="ð" k="98" /> +<hkern u1="’" u2="ë" k="98" /> +<hkern u1="’" u2="ê" k="98" /> +<hkern u1="’" u2="é" k="98" /> +<hkern u1="’" u2="è" k="98" /> +<hkern u1="’" u2="ç" k="98" /> +<hkern u1="’" u2="æ" k="98" /> +<hkern u1="’" u2="å" k="98" /> +<hkern u1="’" u2="ä" k="98" /> +<hkern u1="’" u2="ã" k="98" /> +<hkern u1="’" u2="â" k="98" /> +<hkern u1="’" u2="á" k="98" /> +<hkern u1="’" u2="à" k="98" /> +<hkern u1="’" u2="Ý" k="-43" /> +<hkern u1="’" u2="Æ" k="180" /> +<hkern u1="’" u2="Å" k="180" /> +<hkern u1="’" u2="Ä" k="180" /> +<hkern u1="’" u2="Ã" k="180" /> +<hkern u1="’" u2="Â" k="180" /> +<hkern u1="’" u2="Á" k="180" /> +<hkern u1="’" u2="À" k="180" /> +<hkern u1="’" u2="»" k="41" /> +<hkern u1="’" u2="·" k="41" /> +<hkern u1="’" u2="­" k="41" /> +<hkern u1="’" u2="«" k="41" /> +<hkern u1="’" u2="q" k="98" /> +<hkern u1="’" u2="o" k="98" /> +<hkern u1="’" u2="e" k="98" /> +<hkern u1="’" u2="d" k="98" /> +<hkern u1="’" u2="c" k="98" /> +<hkern u1="’" u2="a" k="98" /> +<hkern u1="’" u2="\" k="-48" /> +<hkern u1="’" u2="Y" k="-43" /> +<hkern u1="’" u2="W" k="-34" /> +<hkern u1="’" u2="V" k="-48" /> +<hkern u1="’" u2="A" k="180" /> +<hkern u1="’" u2="/" k="180" /> +<hkern u1="’" u2="." k="45" /> +<hkern u1="’" u2="-" k="41" /> +<hkern u1="’" u2="," k="45" /> +<hkern u1="’" u2="&" k="180" /> +<hkern u1="‚" u2="›" k="214" /> +<hkern u1="‚" u2="‹" k="214" /> +<hkern u1="‚" u2="•" k="214" /> +<hkern u1="‚" u2="”" k="58" /> +<hkern u1="‚" u2="“" k="58" /> +<hkern u1="‚" u2="’" k="58" /> +<hkern u1="‚" u2="‘" k="58" /> +<hkern u1="‚" u2="—" k="214" /> +<hkern u1="‚" u2="–" k="214" /> +<hkern u1="‚" u2="Ÿ" k="237" /> +<hkern u1="‚" u2="Œ" k="53" /> +<hkern u1="‚" u2="ÿ" k="155" /> +<hkern u1="‚" u2="ý" k="155" /> +<hkern u1="‚" u2="Ý" k="237" /> +<hkern u1="‚" u2="Ø" k="53" /> +<hkern u1="‚" u2="Ö" k="53" /> +<hkern u1="‚" u2="Õ" k="53" /> +<hkern u1="‚" u2="Ô" k="53" /> +<hkern u1="‚" u2="Ó" k="53" /> +<hkern u1="‚" u2="Ò" k="53" /> +<hkern u1="‚" u2="Ç" k="53" /> +<hkern u1="‚" u2="»" k="214" /> +<hkern u1="‚" u2="º" k="58" /> +<hkern u1="‚" u2="·" k="214" /> +<hkern u1="‚" u2="°" k="58" /> +<hkern u1="‚" u2="®" k="53" /> +<hkern u1="‚" u2="­" k="214" /> +<hkern u1="‚" u2="«" k="214" /> +<hkern u1="‚" u2="ª" k="58" /> +<hkern u1="‚" u2="©" k="53" /> +<hkern u1="‚" u2="y" k="151" /> +<hkern u1="‚" u2="w" k="89" /> +<hkern u1="‚" u2="v" k="155" /> +<hkern u1="‚" u2="\" k="232" /> +<hkern u1="‚" u2="Y" k="237" /> +<hkern u1="‚" u2="W" k="122" /> +<hkern u1="‚" u2="V" k="232" /> +<hkern u1="‚" u2="T" k="218" /> +<hkern u1="‚" u2="Q" k="53" /> +<hkern u1="‚" u2="O" k="53" /> +<hkern u1="‚" u2="G" k="53" /> +<hkern u1="‚" u2="C" k="53" /> +<hkern u1="‚" u2="@" k="53" /> +<hkern u1="‚" u2="-" k="214" /> +<hkern u1="‚" u2="*" k="58" /> +<hkern u1="‚" u2="'" k="58" /> +<hkern u1="‚" u2=""" k="58" /> +<hkern u1="“" u2="›" k="41" /> +<hkern u1="“" u2="‹" k="41" /> +<hkern u1="“" u2="…" k="45" /> +<hkern u1="“" u2="•" k="41" /> +<hkern u1="“" u2="„" k="45" /> +<hkern u1="“" u2="‚" k="45" /> +<hkern u1="“" u2="—" k="41" /> +<hkern u1="“" u2="–" k="41" /> +<hkern u1="“" u2="Ÿ" k="-43" /> +<hkern u1="“" u2="œ" k="98" /> +<hkern u1="“" u2="ø" k="98" /> +<hkern u1="“" u2="ö" k="98" /> +<hkern u1="“" u2="õ" k="98" /> +<hkern u1="“" u2="ô" k="98" /> +<hkern u1="“" u2="ó" k="98" /> +<hkern u1="“" u2="ò" k="98" /> +<hkern u1="“" u2="ð" k="98" /> +<hkern u1="“" u2="ë" k="98" /> +<hkern u1="“" u2="ê" k="98" /> +<hkern u1="“" u2="é" k="98" /> +<hkern u1="“" u2="è" k="98" /> +<hkern u1="“" u2="ç" k="98" /> +<hkern u1="“" u2="æ" k="98" /> +<hkern u1="“" u2="å" k="98" /> +<hkern u1="“" u2="ä" k="98" /> +<hkern u1="“" u2="ã" k="98" /> +<hkern u1="“" u2="â" k="98" /> +<hkern u1="“" u2="á" k="98" /> +<hkern u1="“" u2="à" k="98" /> +<hkern u1="“" u2="Ý" k="-43" /> +<hkern u1="“" u2="Æ" k="180" /> +<hkern u1="“" u2="Å" k="180" /> +<hkern u1="“" u2="Ä" k="180" /> +<hkern u1="“" u2="Ã" k="180" /> +<hkern u1="“" u2="Â" k="180" /> +<hkern u1="“" u2="Á" k="180" /> +<hkern u1="“" u2="À" k="180" /> +<hkern u1="“" u2="»" k="41" /> +<hkern u1="“" u2="·" k="41" /> +<hkern u1="“" u2="­" k="41" /> +<hkern u1="“" u2="«" k="41" /> +<hkern u1="“" u2="q" k="98" /> +<hkern u1="“" u2="o" k="98" /> +<hkern u1="“" u2="e" k="98" /> +<hkern u1="“" u2="d" k="98" /> +<hkern u1="“" u2="c" k="98" /> +<hkern u1="“" u2="a" k="98" /> +<hkern u1="“" u2="\" k="-48" /> +<hkern u1="“" u2="Y" k="-43" /> +<hkern u1="“" u2="W" k="-34" /> +<hkern u1="“" u2="V" k="-48" /> +<hkern u1="“" u2="A" k="180" /> +<hkern u1="“" u2="/" k="180" /> +<hkern u1="“" u2="." k="45" /> +<hkern u1="“" u2="-" k="41" /> +<hkern u1="“" u2="," k="45" /> +<hkern u1="“" u2="&" k="180" /> +<hkern u1="”" u2="›" k="41" /> +<hkern u1="”" u2="‹" k="41" /> +<hkern u1="”" u2="…" k="45" /> +<hkern u1="”" u2="•" k="41" /> +<hkern u1="”" u2="„" k="45" /> +<hkern u1="”" u2="‚" k="45" /> +<hkern u1="”" u2="—" k="41" /> +<hkern u1="”" u2="–" k="41" /> +<hkern u1="”" u2="Ÿ" k="-43" /> +<hkern u1="”" u2="œ" k="98" /> +<hkern u1="”" u2="ø" k="98" /> +<hkern u1="”" u2="ö" k="98" /> +<hkern u1="”" u2="õ" k="98" /> +<hkern u1="”" u2="ô" k="98" /> +<hkern u1="”" u2="ó" k="98" /> +<hkern u1="”" u2="ò" k="98" /> +<hkern u1="”" u2="ð" k="98" /> +<hkern u1="”" u2="ë" k="98" /> +<hkern u1="”" u2="ê" k="98" /> +<hkern u1="”" u2="é" k="98" /> +<hkern u1="”" u2="è" k="98" /> +<hkern u1="”" u2="ç" k="98" /> +<hkern u1="”" u2="æ" k="98" /> +<hkern u1="”" u2="å" k="98" /> +<hkern u1="”" u2="ä" k="98" /> +<hkern u1="”" u2="ã" k="98" /> +<hkern u1="”" u2="â" k="98" /> +<hkern u1="”" u2="á" k="98" /> +<hkern u1="”" u2="à" k="98" /> +<hkern u1="”" u2="Ý" k="-43" /> +<hkern u1="”" u2="Æ" k="180" /> +<hkern u1="”" u2="Å" k="180" /> +<hkern u1="”" u2="Ä" k="180" /> +<hkern u1="”" u2="Ã" k="180" /> +<hkern u1="”" u2="Â" k="180" /> +<hkern u1="”" u2="Á" k="180" /> +<hkern u1="”" u2="À" k="180" /> +<hkern u1="”" u2="»" k="41" /> +<hkern u1="”" u2="·" k="41" /> +<hkern u1="”" u2="­" k="41" /> +<hkern u1="”" u2="«" k="41" /> +<hkern u1="”" u2="q" k="98" /> +<hkern u1="”" u2="o" k="98" /> +<hkern u1="”" u2="e" k="98" /> +<hkern u1="”" u2="d" k="98" /> +<hkern u1="”" u2="c" k="98" /> +<hkern u1="”" u2="a" k="98" /> +<hkern u1="”" u2="\" k="-48" /> +<hkern u1="”" u2="Y" k="-43" /> +<hkern u1="”" u2="W" k="-34" /> +<hkern u1="”" u2="V" k="-48" /> +<hkern u1="”" u2="A" k="180" /> +<hkern u1="”" u2="/" k="180" /> +<hkern u1="”" u2="." k="45" /> +<hkern u1="”" u2="-" k="41" /> +<hkern u1="”" u2="," k="45" /> +<hkern u1="”" u2="&" k="180" /> +<hkern u1="„" u2="›" k="214" /> +<hkern u1="„" u2="‹" k="214" /> +<hkern u1="„" u2="•" k="214" /> +<hkern u1="„" u2="”" k="58" /> +<hkern u1="„" u2="“" k="58" /> +<hkern u1="„" u2="’" k="58" /> +<hkern u1="„" u2="‘" k="58" /> +<hkern u1="„" u2="—" k="214" /> +<hkern u1="„" u2="–" k="214" /> +<hkern u1="„" u2="Ÿ" k="237" /> +<hkern u1="„" u2="Œ" k="53" /> +<hkern u1="„" u2="ÿ" k="155" /> +<hkern u1="„" u2="ý" k="155" /> +<hkern u1="„" u2="Ý" k="237" /> +<hkern u1="„" u2="Ø" k="53" /> +<hkern u1="„" u2="Ö" k="53" /> +<hkern u1="„" u2="Õ" k="53" /> +<hkern u1="„" u2="Ô" k="53" /> +<hkern u1="„" u2="Ó" k="53" /> +<hkern u1="„" u2="Ò" k="53" /> +<hkern u1="„" u2="Ç" k="53" /> +<hkern u1="„" u2="»" k="214" /> +<hkern u1="„" u2="º" k="58" /> +<hkern u1="„" u2="·" k="214" /> +<hkern u1="„" u2="°" k="58" /> +<hkern u1="„" u2="®" k="53" /> +<hkern u1="„" u2="­" k="214" /> +<hkern u1="„" u2="«" k="214" /> +<hkern u1="„" u2="ª" k="58" /> +<hkern u1="„" u2="©" k="53" /> +<hkern u1="„" u2="y" k="151" /> +<hkern u1="„" u2="w" k="89" /> +<hkern u1="„" u2="v" k="155" /> +<hkern u1="„" u2="\" k="232" /> +<hkern u1="„" u2="Y" k="237" /> +<hkern u1="„" u2="W" k="122" /> +<hkern u1="„" u2="V" k="232" /> +<hkern u1="„" u2="T" k="218" /> +<hkern u1="„" u2="Q" k="53" /> +<hkern u1="„" u2="O" k="53" /> +<hkern u1="„" u2="G" k="53" /> +<hkern u1="„" u2="C" k="53" /> +<hkern u1="„" u2="@" k="53" /> +<hkern u1="„" u2="-" k="214" /> +<hkern u1="„" u2="*" k="58" /> +<hkern u1="„" u2="'" k="58" /> +<hkern u1="„" u2=""" k="58" /> +<hkern u1="•" u2="…" k="175" /> +<hkern u1="•" u2="„" k="175" /> +<hkern u1="•" u2="”" k="41" /> +<hkern u1="•" u2="“" k="41" /> +<hkern u1="•" u2="‚" k="175" /> +<hkern u1="•" u2="’" k="41" /> +<hkern u1="•" u2="‘" k="41" /> +<hkern u1="•" u2="Ÿ" k="212" /> +<hkern u1="•" u2="Ý" k="212" /> +<hkern u1="•" u2="Æ" k="69" /> +<hkern u1="•" u2="Å" k="69" /> +<hkern u1="•" u2="Ä" k="69" /> +<hkern u1="•" u2="Ã" k="69" /> +<hkern u1="•" u2="Â" k="69" /> +<hkern u1="•" u2="Á" k="69" /> +<hkern u1="•" u2="À" k="69" /> +<hkern u1="•" u2="º" k="41" /> +<hkern u1="•" u2="°" k="41" /> +<hkern u1="•" u2="ª" k="41" /> +<hkern u1="•" u2="\" k="134" /> +<hkern u1="•" u2="Z" k="59" /> +<hkern u1="•" u2="Y" k="212" /> +<hkern u1="•" u2="X" k="72" /> +<hkern u1="•" u2="V" k="134" /> +<hkern u1="•" u2="T" k="201" /> +<hkern u1="•" u2="A" k="69" /> +<hkern u1="•" u2="/" k="69" /> +<hkern u1="•" u2="." k="175" /> +<hkern u1="•" u2="," k="175" /> +<hkern u1="•" u2="*" k="41" /> +<hkern u1="•" u2="'" k="41" /> +<hkern u1="•" u2="&" k="69" /> +<hkern u1="•" u2=""" k="41" /> +<hkern u1="…" u2="›" k="214" /> +<hkern u1="…" u2="‹" k="214" /> +<hkern u1="…" u2="•" k="214" /> +<hkern u1="…" u2="”" k="58" /> +<hkern u1="…" u2="“" k="58" /> +<hkern u1="…" u2="’" k="58" /> +<hkern u1="…" u2="‘" k="58" /> +<hkern u1="…" u2="—" k="214" /> +<hkern u1="…" u2="–" k="214" /> +<hkern u1="…" u2="Ÿ" k="237" /> +<hkern u1="…" u2="Œ" k="53" /> +<hkern u1="…" u2="ÿ" k="155" /> +<hkern u1="…" u2="ý" k="155" /> +<hkern u1="…" u2="Ý" k="237" /> +<hkern u1="…" u2="Ø" k="53" /> +<hkern u1="…" u2="Ö" k="53" /> +<hkern u1="…" u2="Õ" k="53" /> +<hkern u1="…" u2="Ô" k="53" /> +<hkern u1="…" u2="Ó" k="53" /> +<hkern u1="…" u2="Ò" k="53" /> +<hkern u1="…" u2="Ç" k="53" /> +<hkern u1="…" u2="»" k="214" /> +<hkern u1="…" u2="º" k="58" /> +<hkern u1="…" u2="·" k="214" /> +<hkern u1="…" u2="°" k="58" /> +<hkern u1="…" u2="®" k="53" /> +<hkern u1="…" u2="­" k="214" /> +<hkern u1="…" u2="«" k="214" /> +<hkern u1="…" u2="ª" k="58" /> +<hkern u1="…" u2="©" k="53" /> +<hkern u1="…" u2="y" k="151" /> +<hkern u1="…" u2="w" k="89" /> +<hkern u1="…" u2="v" k="155" /> +<hkern u1="…" u2="\" k="232" /> +<hkern u1="…" u2="Y" k="237" /> +<hkern u1="…" u2="W" k="122" /> +<hkern u1="…" u2="V" k="232" /> +<hkern u1="…" u2="T" k="218" /> +<hkern u1="…" u2="Q" k="53" /> +<hkern u1="…" u2="O" k="53" /> +<hkern u1="…" u2="G" k="53" /> +<hkern u1="…" u2="C" k="53" /> +<hkern u1="…" u2="@" k="53" /> +<hkern u1="…" u2="-" k="214" /> +<hkern u1="…" u2="*" k="58" /> +<hkern u1="…" u2="'" k="58" /> +<hkern u1="…" u2=""" k="58" /> +<hkern u1="‹" u2="…" k="175" /> +<hkern u1="‹" u2="„" k="175" /> +<hkern u1="‹" u2="”" k="41" /> +<hkern u1="‹" u2="“" k="41" /> +<hkern u1="‹" u2="‚" k="175" /> +<hkern u1="‹" u2="’" k="41" /> +<hkern u1="‹" u2="‘" k="41" /> +<hkern u1="‹" u2="Ÿ" k="212" /> +<hkern u1="‹" u2="Ý" k="212" /> +<hkern u1="‹" u2="Æ" k="69" /> +<hkern u1="‹" u2="Å" k="69" /> +<hkern u1="‹" u2="Ä" k="69" /> +<hkern u1="‹" u2="Ã" k="69" /> +<hkern u1="‹" u2="Â" k="69" /> +<hkern u1="‹" u2="Á" k="69" /> +<hkern u1="‹" u2="À" k="69" /> +<hkern u1="‹" u2="º" k="41" /> +<hkern u1="‹" u2="°" k="41" /> +<hkern u1="‹" u2="ª" k="41" /> +<hkern u1="‹" u2="\" k="134" /> +<hkern u1="‹" u2="Z" k="59" /> +<hkern u1="‹" u2="Y" k="212" /> +<hkern u1="‹" u2="X" k="72" /> +<hkern u1="‹" u2="V" k="134" /> +<hkern u1="‹" u2="T" k="201" /> +<hkern u1="‹" u2="A" k="69" /> +<hkern u1="‹" u2="/" k="69" /> +<hkern u1="‹" u2="." k="175" /> +<hkern u1="‹" u2="," k="175" /> +<hkern u1="‹" u2="*" k="41" /> +<hkern u1="‹" u2="'" k="41" /> +<hkern u1="‹" u2="&" k="69" /> +<hkern u1="‹" u2=""" k="41" /> +<hkern u1="›" u2="…" k="175" /> +<hkern u1="›" u2="„" k="175" /> +<hkern u1="›" u2="”" k="41" /> +<hkern u1="›" u2="“" k="41" /> +<hkern u1="›" u2="‚" k="175" /> +<hkern u1="›" u2="’" k="41" /> +<hkern u1="›" u2="‘" k="41" /> +<hkern u1="›" u2="Ÿ" k="212" /> +<hkern u1="›" u2="Ý" k="212" /> +<hkern u1="›" u2="Æ" k="69" /> +<hkern u1="›" u2="Å" k="69" /> +<hkern u1="›" u2="Ä" k="69" /> +<hkern u1="›" u2="Ã" k="69" /> +<hkern u1="›" u2="Â" k="69" /> +<hkern u1="›" u2="Á" k="69" /> +<hkern u1="›" u2="À" k="69" /> +<hkern u1="›" u2="º" k="41" /> +<hkern u1="›" u2="°" k="41" /> +<hkern u1="›" u2="ª" k="41" /> +<hkern u1="›" u2="\" k="134" /> +<hkern u1="›" u2="Z" k="59" /> +<hkern u1="›" u2="Y" k="212" /> +<hkern u1="›" u2="X" k="72" /> +<hkern u1="›" u2="V" k="134" /> +<hkern u1="›" u2="T" k="201" /> +<hkern u1="›" u2="A" k="69" /> +<hkern u1="›" u2="/" k="69" /> +<hkern u1="›" u2="." k="175" /> +<hkern u1="›" u2="," k="175" /> +<hkern u1="›" u2="*" k="41" /> +<hkern u1="›" u2="'" k="41" /> +<hkern u1="›" u2="&" k="69" /> +<hkern u1="›" u2=""" k="41" /> +<hkern u1="™" u2="›" k="41" /> +<hkern u1="™" u2="‹" k="41" /> +<hkern u1="™" u2="…" k="45" /> +<hkern u1="™" u2="•" k="41" /> +<hkern u1="™" u2="„" k="45" /> +<hkern u1="™" u2="‚" k="45" /> +<hkern u1="™" u2="—" k="41" /> +<hkern u1="™" u2="–" k="41" /> +<hkern u1="™" u2="Ÿ" k="-43" /> +<hkern u1="™" u2="œ" k="98" /> +<hkern u1="™" u2="ø" k="98" /> +<hkern u1="™" u2="ö" k="98" /> +<hkern u1="™" u2="õ" k="98" /> +<hkern u1="™" u2="ô" k="98" /> +<hkern u1="™" u2="ó" k="98" /> +<hkern u1="™" u2="ò" k="98" /> +<hkern u1="™" u2="ð" k="98" /> +<hkern u1="™" u2="ë" k="98" /> +<hkern u1="™" u2="ê" k="98" /> +<hkern u1="™" u2="é" k="98" /> +<hkern u1="™" u2="è" k="98" /> +<hkern u1="™" u2="ç" k="98" /> +<hkern u1="™" u2="æ" k="98" /> +<hkern u1="™" u2="å" k="98" /> +<hkern u1="™" u2="ä" k="98" /> +<hkern u1="™" u2="ã" k="98" /> +<hkern u1="™" u2="â" k="98" /> +<hkern u1="™" u2="á" k="98" /> +<hkern u1="™" u2="à" k="98" /> +<hkern u1="™" u2="Ý" k="-43" /> +<hkern u1="™" u2="Æ" k="180" /> +<hkern u1="™" u2="Å" k="180" /> +<hkern u1="™" u2="Ä" k="180" /> +<hkern u1="™" u2="Ã" k="180" /> +<hkern u1="™" u2="Â" k="180" /> +<hkern u1="™" u2="Á" k="180" /> +<hkern u1="™" u2="À" k="180" /> +<hkern u1="™" u2="»" k="41" /> +<hkern u1="™" u2="·" k="41" /> +<hkern u1="™" u2="­" k="41" /> +<hkern u1="™" u2="«" k="41" /> +<hkern u1="™" u2="q" k="98" /> +<hkern u1="™" u2="o" k="98" /> +<hkern u1="™" u2="e" k="98" /> +<hkern u1="™" u2="d" k="98" /> +<hkern u1="™" u2="c" k="98" /> +<hkern u1="™" u2="a" k="98" /> +<hkern u1="™" u2="\" k="-48" /> +<hkern u1="™" u2="Y" k="-43" /> +<hkern u1="™" u2="W" k="-34" /> +<hkern u1="™" u2="V" k="-48" /> +<hkern u1="™" u2="A" k="180" /> +<hkern u1="™" u2="/" k="180" /> +<hkern u1="™" u2="." k="45" /> +<hkern u1="™" u2="-" k="41" /> +<hkern u1="™" u2="," k="45" /> +<hkern u1="™" u2="&" k="180" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/lato-bolditalic-webfont.ttf b/web/static/fonts/lato-bolditalic-webfont.ttf Binary files differnew file mode 100755 index 000000000..f138b95ac --- /dev/null +++ b/web/static/fonts/lato-bolditalic-webfont.ttf diff --git a/web/static/fonts/lato-bolditalic-webfont.woff b/web/static/fonts/lato-bolditalic-webfont.woff Binary files differnew file mode 100755 index 000000000..c05ebc38f --- /dev/null +++ b/web/static/fonts/lato-bolditalic-webfont.woff diff --git a/web/static/fonts/lato-bolditalic-webfont.woff2 b/web/static/fonts/lato-bolditalic-webfont.woff2 Binary files differnew file mode 100755 index 000000000..a73b70ef2 --- /dev/null +++ b/web/static/fonts/lato-bolditalic-webfont.woff2 diff --git a/web/static/fonts/lora-bold-webfont.eot b/web/static/fonts/lora-bold-webfont.eot Binary files differnew file mode 100755 index 000000000..9ffd08eb7 --- /dev/null +++ b/web/static/fonts/lora-bold-webfont.eot diff --git a/web/static/fonts/lora-bold-webfont.svg b/web/static/fonts/lora-bold-webfont.svg new file mode 100755 index 000000000..cfdb7eed7 --- /dev/null +++ b/web/static/fonts/lora-bold-webfont.svg @@ -0,0 +1,5183 @@ +<?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="lorabold" horiz-adv-x="1368" > +<font-face units-per-em="2048" ascent="1638" descent="-410" /> +<missing-glyph horiz-adv-x="539" /> +<glyph horiz-adv-x="0" /> +<glyph unicode="
" horiz-adv-x="0" /> +<glyph unicode=" " horiz-adv-x="539" /> +<glyph unicode="	" horiz-adv-x="539" /> +<glyph unicode=" " horiz-adv-x="539" /> +<glyph unicode="!" horiz-adv-x="528" d="M115 126q0 33 12 62.5t32.5 51.5t47.5 34.5t57 12.5q32 0 59 -12.5t47 -34.5t31 -51.5t11 -62.5t-12.5 -62t-33.5 -50.5t-48 -34t-56 -12.5q-30 0 -56.5 12.5t-47 34t-32 50.5t-11.5 62zM117 1281q-3 33 5 66t26.5 59.5t47.5 43.5t68 17q41 0 70 -17t47 -43.5t25 -59.5 t4 -66l-77 -844h-139z" /> +<glyph unicode=""" horiz-adv-x="667" d="M88 1467h198l-17 -461h-164zM381 1467h198l-17 -461h-164z" /> +<glyph unicode="#" horiz-adv-x="1784" d="M75 315l43 182h335l102 404h-345l43 182h341l91 384h205l-88 -384h355l91 384h205l-88 -384h343v-2l-41 -180h-340l-97 -404h342l-42 -182h-337l-80 -348h-218l83 348h-349l-80 -348h-217l83 348h-340zM666 497h350l102 404h-354z" /> +<glyph unicode="$" horiz-adv-x="1205" d="M103 1076q0 60 18 126t64 123t125.5 96t202.5 45v248h192l-2 -268q91 -24 165 -77h2l-7 84h158v-479h-134q-28 172 -105 258.5t-220 86.5q-44 0 -79.5 -13t-60.5 -36.5t-39 -56t-14 -70.5q0 -48 15.5 -84t52 -67.5t96 -63t147.5 -71.5q51 -23 103 -48.5t100.5 -56.5 t91.5 -67.5t74.5 -82t50 -100.5t18.5 -122q0 -80 -26 -148.5t-75.5 -121.5t-122.5 -88t-167 -48l-1 -289h-187l-2 289q-66 10 -132 33.5t-127 60.5h-2l7 -87h-158v479h134q28 -174 121 -259.5t238 -85.5q55 0 97 15.5t71 43t44 65t15 81.5q0 52 -25 88.5t-66 64.5 t-95.5 50.5t-112.5 46.5q-89 36 -169 82t-141 106.5t-97 138.5t-36 179z" /> +<glyph unicode="%" horiz-adv-x="1852" d="M84 1059q0 71 26 144t75.5 131.5t121.5 95.5t165 37t164.5 -34.5t120 -90t73.5 -125.5t25 -140q0 -81 -29.5 -155.5t-81.5 -131.5t-121.5 -91t-150.5 -34q-95 0 -167 33t-121.5 88t-74.5 126t-25 147zM262 90l1167 1377l149 -135l-1183 -1366zM335 1089q0 -38 6 -83.5 t21 -84.5t42 -65.5t69 -26.5q37 0 62.5 20.5t40.5 52.5t21.5 70.5t6.5 74.5q0 40 -6.5 86t-22 85t-41.5 65t-65 26t-65 -23.5t-41.5 -57t-21.5 -71.5t-6 -68zM999 361q0 71 26 144t75.5 131.5t123 95.5t163.5 37q93 0 164.5 -34.5t120 -90t73.5 -125.5t25 -140 q0 -81 -29.5 -155.5t-81.5 -131.5t-121.5 -91t-150.5 -34q-95 0 -167 33t-121.5 88t-74.5 126t-25 147zM1250 391q0 -38 6 -83.5t21 -84.5t42 -65.5t69 -26.5q37 0 62.5 20.5t40.5 52.5t21.5 70.5t6.5 74.5q0 40 -6.5 86t-22 85t-41.5 65t-65 26t-65 -23.5t-41.5 -57 t-21.5 -71.5t-6 -68z" /> +<glyph unicode="&" horiz-adv-x="1372" d="M48 349q0 69 24 130t66.5 112t101 91t127.5 66q-55 60 -88.5 111t-51.5 96.5t-23.5 88t-5.5 85.5q1 77 29.5 139.5t79.5 106.5t122.5 68t159.5 24q81 0 147 -26t112.5 -70.5t72 -103t25.5 -122.5q0 -63 -24.5 -121t-66 -109t-94.5 -93.5t-110 -75.5q6 -7 36.5 -38.5 t76.5 -77.5t102.5 -101t114.5 -109h2q6 24 8.5 50t2.5 52q0 42 -7 71t-20.5 47.5t-34 27t-47.5 10.5v131h344v-154q-20 1 -50 3.5t-62 4.5v-2q22 -48 22 -125q0 -119 -40 -221l32 -27q39 -33 75.5 -61.5t68.5 -48.5t59 -31.5t48 -11.5v-135h-218q-19 0 -74 30t-128 87 q-81 -72 -188 -111t-239 -39q-89 0 -176.5 22t-156.5 68.5t-111.5 118.5t-42.5 173zM325 400q0 -141 73 -214t203 -73q76 0 140.5 25.5t115.5 70.5l-103 93q-59 53 -106 97.5t-86 84t-72 75.5t-64 72q-29 -24 -48.5 -55t-31 -62.5t-16.5 -61.5t-5 -52zM443 1139q0 -31 9 -68 t24.5 -75t37 -74.5t46.5 -66.5q39 30 67.5 68.5t48 79.5t29 80.5t9.5 71.5q0 75 -35.5 121t-99.5 46q-58 0 -97 -46.5t-39 -136.5z" /> +<glyph unicode="'" horiz-adv-x="386" d="M87 1467h212l-18 -461h-175z" /> +<glyph unicode="(" horiz-adv-x="607" d="M50 489q0 113 20 223.5t54 213.5t80 197t97 175t105 146.5t105 111.5l75 -71q-53 -70 -93 -158t-68.5 -183.5t-47.5 -192.5t-30 -184.5t-15.5 -159.5t-4.5 -118t4.5 -116.5t15.5 -155.5t30 -179t47.5 -186.5t68.5 -179t93 -156.5l-74 -71q-51 47 -105 110.5t-105 141.5 t-97 169t-80.5 191.5t-54.5 209t-20 222.5z" /> +<glyph unicode=")" horiz-adv-x="607" d="M21 -484q53 70 93 158t68.5 183.5t47.5 192.5t30 184.5t15.5 159.5t4.5 118t-4.5 116.5t-15.5 155.5t-30 179t-47.5 186.5t-68.5 179t-93 156.5l74 71q51 -47 105 -110.5t105 -141.5t97 -169t80.5 -191.5t54.5 -209t20 -222.5q0 -113 -20 -223.5t-54 -213.5t-80 -197 t-97 -175t-105 -146.5t-105 -111.5z" /> +<glyph unicode="*" horiz-adv-x="1092" d="M88 1103q0 30 9.5 50.5t24.5 32.5t33 17.5t35 5.5q27 0 56.5 -7.5t66 -25t81.5 -46t103 -70.5q-30 91 -43.5 154.5t-13.5 105.5q0 27 4 53t16 47t33 34t54 13t53.5 -13t32.5 -34t16 -47t4 -53q0 -43 -13.5 -106t-43.5 -154q59 43 104 71.5t81 45.5t64.5 24t54.5 7 q16 0 34.5 -5.5t34 -17.5t25.5 -32.5t10 -50.5q0 -23 -9.5 -40.5t-25 -31t-36 -23.5t-41.5 -16q-44 -14 -107 -20t-159 -6q78 -57 126 -99.5t73 -76.5q18 -25 31 -52.5t13 -53.5q0 -16 -8 -33t-22 -31.5t-33 -24t-40 -9.5q-35 0 -63.5 23.5t-49.5 53.5q-26 36 -52 95 t-54 150q-30 -92 -56 -150t-52 -93q-23 -31 -50.5 -55t-62.5 -24q-21 0 -39.5 9.5t-32.5 23.5t-22 31.5t-8 33.5q0 29 12.5 58.5t41 63.5t74.5 73t114 87q-98 0 -160.5 6.5t-104.5 20.5q-22 7 -42.5 16.5t-36 23t-25 31t-9.5 40.5z" /> +<glyph unicode="+" horiz-adv-x="1078" d="M82 553v195l353 -2v366h202v-366l359 -2v-188l-359 -1v-387h-202v386z" /> +<glyph unicode="," horiz-adv-x="512" d="M90 127q0 31 11 59t31 49t48 33.5t63 12.5q46 0 80 -16.5t56.5 -46t34 -69t11.5 -84.5q0 -100 -45.5 -214.5t-142.5 -232.5l-79 57q16 21 36.5 57t38.5 80t30 92.5t12 93.5q-15 -5 -24 -6t-20 -1q-27 0 -52.5 8t-45 24.5t-31.5 42t-12 61.5z" /> +<glyph unicode="-" horiz-adv-x="964" d="M105 532v221h754v-214z" /> +<glyph unicode="." horiz-adv-x="478" d="M90 126q0 33 12 62.5t32.5 51.5t47.5 34.5t57 12.5q32 0 59 -12.5t47 -34.5t31 -51.5t11 -62.5t-10.5 -62t-29 -50.5t-45.5 -34t-60 -12.5q-34 0 -62 12.5t-48 34t-31 50.5t-11 62z" /> +<glyph unicode="/" horiz-adv-x="1432" d="M52 -450l1143 1997l186 -120l-1170 -1982z" /> +<glyph unicode="0" horiz-adv-x="1302" d="M89 711q0 86 16 175.5t47.5 173.5t79 158t111 129.5t143 87.5t174.5 32q99 0 178.5 -31.5t141 -86t105.5 -127.5t72.5 -155.5t42 -171.5t13.5 -174t-15 -174t-46 -172.5t-77.5 -158t-108.5 -130t-141 -87.5t-174 -32q-104 0 -186.5 31.5t-144.5 85.5t-106 126.5 t-72 155.5t-40.5 171.5t-12.5 173.5zM400 753q0 -71 3 -146.5t13 -146.5t28 -134.5t47 -111t71.5 -75t100.5 -27.5q73 0 119.5 46t73 123.5t36.5 180t10 215.5q0 83 -3.5 163t-13.5 151.5t-27 132.5t-44.5 105t-66.5 68.5t-92 24.5q-74 0 -123 -46t-78 -124t-41.5 -181.5 t-12.5 -217.5z" /> +<glyph unicode="1" horiz-adv-x="831" d="M13 1124l468 343h124v-1131q0 -28 -0.5 -55t-1.5 -51.5t-2.5 -44.5t-3.5 -33l154 6v-158h-588v135q34 2 61.5 6.5t46 22t28.5 52.5t10 97v821l-224 -133z" /> +<glyph unicode="2" horiz-adv-x="1091" d="M80 0q0 106 28 189.5t73 152t102.5 126t116.5 112.5q74 69 126 131t85 120t48 113t15 111q0 49 -9 96.5t-31.5 85t-60.5 61t-96 23.5q-55 0 -99 -25.5t-66 -60.5q22 -23 31 -53.5t9 -52.5q0 -19 -7.5 -42t-24 -42.5t-43.5 -33t-65 -13.5q-32 1 -56 13t-40.5 32t-25 47 t-8.5 57q0 31 13 67t38.5 71.5t63.5 68t87.5 58t110.5 40.5t133 15q82 0 164.5 -20t148 -66t106.5 -119.5t41 -181.5q0 -52 -18.5 -107.5t-68 -124t-137.5 -154.5t-227 -199q-57 -46 -98 -88.5t-69 -79.5t-43.5 -66.5t-19.5 -49.5l401 -11h16q31 0 57 5.5t44 20.5t28 40.5 t10 66.5h130l-16 -333h-897z" /> +<glyph unicode="3" horiz-adv-x="1146" d="M72 269q0 31 10.5 59t29 49.5t45 34t59.5 12.5q36 0 60.5 -13t39.5 -32.5t21.5 -42.5t6.5 -44q0 -19 -7.5 -45.5t-24.5 -48.5q10 -19 29 -34t44 -25.5t53.5 -16t57.5 -5.5q64 0 112.5 20.5t81 57t49 86t16.5 107.5q0 54 -14 107t-49 95.5t-93.5 69t-146.5 26.5 q-7 0 -21 -0.5t-30 -1.5t-31 -2t-24 -2v147q11 -2 19 -2h16q152 -3 231.5 67t79.5 200q0 50 -10.5 92.5t-33.5 73t-59 47.5t-87 17q-28 0 -53.5 -7.5t-46.5 -19.5t-37 -27t-25 -31q19 -23 26 -52t7 -49q0 -19 -7.5 -41.5t-24 -42.5t-43 -33.5t-64.5 -13.5q-32 1 -56 13 t-40.5 32t-25 47t-8.5 57q0 45 26.5 100t80.5 102t134.5 79t188.5 32q95 0 178.5 -19t145 -62.5t97 -113t35.5 -169.5q0 -40 -16.5 -88.5t-53 -94t-95 -83t-143.5 -55.5v-2q98 -17 170 -54t119 -87.5t70 -111.5t23 -126q0 -105 -40.5 -186t-113.5 -136t-173.5 -83.5 t-220.5 -28.5q-116 0 -200 27t-138 70.5t-80 97t-26 107.5z" /> +<glyph unicode="4" horiz-adv-x="1121" d="M25 370v193l703 904h124v-911h200v-186h-200v-34q0 -28 -0.5 -55t-1.5 -51.5t-2.5 -44.5t-3.5 -33l154 6v-158h-585v135q34 2 61.5 6.5t46 22t28.5 52.5t10 97v57h-534zM215 561h344v450z" /> +<glyph unicode="5" horiz-adv-x="1106" d="M90 247q0 31 10 59t28.5 50t44.5 35t59 13q37 0 61.5 -13t39.5 -32.5t21.5 -42.5t6.5 -44q0 -17 -5.5 -40.5t-17.5 -43.5q7 -17 25 -31t41 -24t48 -15.5t46 -5.5q61 0 104 26t70 67t39.5 93t12.5 105q0 31 -2 69t-10 77.5t-24 77t-43 66.5t-67.5 47t-98.5 18 q-45 0 -109.5 -16.5t-136.5 -58.5l-88 67l-7 684h530q35 0 63.5 4.5t49 19t31.5 40.5t11 69h130l-16 -333l-643 -11v-365q23 10 53.5 19t63.5 15.5t67 10.5t65 4q127 0 220.5 -37.5t155 -101t91.5 -147t30 -174.5q0 -119 -45 -209t-119 -150t-168.5 -90.5t-194.5 -30.5 q-101 0 -179.5 25.5t-132.5 65.5t-82.5 90t-28.5 99z" /> +<glyph unicode="6" horiz-adv-x="1178" d="M94 660q0 59 9.5 141.5t33 172.5t64 178t103 158t149 113.5t202.5 43.5q97 0 167.5 -25.5t116.5 -65.5t68 -89t22 -95q0 -27 -8.5 -53.5t-25 -47t-41 -33t-55.5 -12.5q-38 0 -64 12.5t-42 32t-22.5 42t-6.5 43.5q0 17 6 43t23 46q-17 23 -49 40.5t-79 17.5q-52 0 -92 -23 t-70 -62.5t-50.5 -92t-33.5 -111t-19.5 -119.5t-8.5 -117q18 21 48.5 41.5t69 37t80.5 26.5t82 10q109 0 188 -35t130.5 -98t76 -150t24.5 -190q0 -97 -37.5 -183t-104.5 -150.5t-159.5 -102t-201.5 -37.5q-137 0 -231 48.5t-152.5 139t-84 218.5t-25.5 287zM392 615 q0 -48 4 -104t13.5 -112t25 -108t38.5 -92t54 -64t71 -24q54 0 89 23.5t55.5 62.5t29 89t8.5 103q0 31 -2 69.5t-8 78.5t-18 78.5t-32.5 68.5t-51 48t-72.5 18q-32 0 -63 -10.5t-58 -29t-48.5 -43t-34.5 -52.5z" /> +<glyph unicode="7" horiz-adv-x="960" d="M30 1085l16 349h872v-186q-69 -142 -119 -274.5t-90.5 -267.5t-76.5 -278t-76 -306q-7 -29 -19.5 -56.5t-30.5 -49.5t-42 -35.5t-54 -13.5q-33 0 -55 10.5t-35.5 28t-19.5 39t-6 44.5q0 22 5.5 50t22.5 77t47.5 125.5t80.5 195.5t123 288t173 401l-431 5h-11 q-33 0 -59.5 -7.5t-45 -24.5t-29 -45t-10.5 -69h-130z" /> +<glyph unicode="8" horiz-adv-x="1172" d="M115 323q0 59 23 114.5t61 105t86.5 90t99.5 69.5v2q-68 43 -115 90.5t-76.5 96t-42.5 96t-13 89.5q0 100 43 173.5t110.5 122t149.5 72t161 23.5t155.5 -23t135.5 -67t95.5 -109t36.5 -149q0 -53 -22 -102.5t-57 -92.5t-78.5 -78.5t-86.5 -60.5v-2q157 -97 231 -205 t74 -226q0 -100 -42 -172.5t-112 -120t-161.5 -70t-191.5 -22.5q-48 0 -101.5 8t-105 25t-98 44.5t-82 67t-56.5 92t-21 119.5zM364 329q0 -47 17 -87t47 -69t70.5 -45.5t88.5 -16.5t86 15.5t64.5 42.5t40.5 63t14 77q0 38 -13 78.5t-44 81.5t-82 81.5t-127 78.5 q-44 -34 -74.5 -74.5t-50 -81.5t-28.5 -78.5t-9 -65.5zM423 1133q0 -40 18 -79.5t48.5 -75t71.5 -64.5t87 -47q35 26 63.5 58t49 66t31.5 67.5t11 62.5q0 49 -14.5 87t-39.5 63.5t-58.5 38.5t-72.5 13q-45 0 -81 -15.5t-61.5 -41.5t-39 -60.5t-13.5 -72.5z" /> +<glyph unicode="9" horiz-adv-x="1179" d="M88 998q0 103 36 189t101 148t155.5 97t200.5 35q137 0 232.5 -52t155.5 -144.5t87 -219.5t27 -277q0 -76 -8.5 -165.5t-30.5 -179t-61.5 -173t-102 -148t-150.5 -103t-208 -38.5q-101 0 -172 23t-116 60.5t-65.5 86t-20.5 99.5q0 27 9.5 54.5t26.5 49t42 35t57 13.5 q38 0 63 -12.5t40 -32t21 -42t6 -43.5q0 -9 -1.5 -20.5t-5.5 -23.5t-9.5 -23.5t-12.5 -19.5q16 -23 48.5 -40.5t78.5 -17.5q73 0 125.5 39.5t86 105.5t49.5 152t16 178v24t-1 24q-18 -21 -48.5 -41.5t-67 -37t-78 -26.5t-81.5 -10q-108 0 -188 35.5t-132.5 99.5t-78 151 t-25.5 191zM398 1045q0 -31 2 -69.5t8.5 -78.5t19 -78.5t33.5 -68.5t51 -48t73 -18q33 0 63.5 10.5t56.5 29t46.5 43t34.5 52.5q0 99 -9.5 190t-33 160.5t-63.5 111.5t-100 42q-47 0 -81 -23.5t-56.5 -62.5t-33.5 -89t-11 -103z" /> +<glyph unicode=":" horiz-adv-x="507" d="M105 126q0 33 12 62.5t32.5 51.5t47.5 34.5t57 12.5q32 0 59 -12.5t47 -34.5t31 -51.5t11 -62.5t-10.5 -62t-29 -50.5t-45.5 -34t-60 -12.5q-34 0 -62 12.5t-48 34t-31 50.5t-11 62zM105 951q0 33 12 62.5t32.5 51.5t47.5 34.5t57 12.5q32 0 59 -12.5t47 -34.5t31 -51.5 t11 -62.5t-10.5 -62t-29 -50.5t-45.5 -34t-60 -12.5q-34 0 -62 12.5t-48 34t-31 50.5t-11 62z" /> +<glyph unicode=";" horiz-adv-x="546" d="M103 127q0 31 11 59t31 49t48 33.5t63 12.5q46 0 80 -16.5t56.5 -46t34 -69t11.5 -84.5q0 -100 -45.5 -214.5t-142.5 -232.5l-79 57q16 21 36.5 57t38.5 80t30 92.5t12 93.5q-15 -5 -24 -6t-20 -1q-27 0 -52.5 8t-45 24.5t-31.5 42t-12 61.5zM134 951q0 33 12 62.5 t32.5 51.5t47.5 34.5t57 12.5q32 0 59 -12.5t47 -34.5t31 -51.5t11 -62.5t-10.5 -62t-29 -50.5t-45.5 -34t-60 -12.5q-34 0 -62 12.5t-48 34t-31 50.5t-11 62z" /> +<glyph unicode="<" horiz-adv-x="1128" d="M79 547v186l922 409v-216l-637 -280v-2l637 -280v-218z" /> +<glyph unicode="=" horiz-adv-x="1181" d="M130 349v197l922 -4v-189zM130 730v196l922 -3v-190z" /> +<glyph unicode=">" horiz-adv-x="1128" d="M127 146v216l637 280v2l-637 280v218l922 -401v-186z" /> +<glyph unicode="?" horiz-adv-x="1031" d="M75 1163q0 55 32.5 109t89.5 97.5t135 70.5t170 27q121 0 204.5 -28t134.5 -74t73.5 -104.5t22.5 -119.5q0 -72 -31.5 -133t-79 -113.5t-102.5 -97t-102.5 -83.5t-79 -73.5t-31.5 -67.5q0 -26 19.5 -43t61.5 -17q14 0 29.5 1.5t33.5 6.5l32 -105q-26 -14 -53.5 -22.5 t-54 -13.5t-51 -7t-43.5 -2q-33 0 -65 7.5t-57 24.5t-40.5 44t-15.5 66q0 25 6.5 48t25 51t51 64.5t84.5 87.5q36 36 66 71t51.5 74.5t34 85.5t12.5 105q0 48 -8 89t-28 71t-53.5 47t-85.5 17q-25 0 -49 -6t-44.5 -15.5t-36.5 -21t-26 -23.5q21 -21 29.5 -51t8.5 -51 q0 -20 -7.5 -44t-23.5 -45t-41.5 -35.5t-60.5 -14.5t-61 11t-43 30.5t-25 46.5t-8 58zM358 126q0 33 12 62.5t32.5 51.5t47.5 34.5t57 12.5q32 0 59 -12.5t47 -34.5t31 -51.5t11 -62.5t-12.5 -62t-33.5 -50.5t-48 -34t-56 -12.5q-30 0 -56.5 12.5t-47 34t-32 50.5t-11.5 62z " /> +<glyph unicode="@" horiz-adv-x="1624" d="M97 525q0 87 22 178.5t65.5 178t107.5 163.5t148.5 134.5t189 91t227.5 33.5q110 0 203 -26.5t167.5 -73t131 -109.5t94 -137t56.5 -155.5t19 -164.5q0 -84 -17.5 -153t-47.5 -124t-70 -95.5t-84 -67.5t-90 -40t-89 -13q-36 0 -73 9t-67 33.5t-48.5 68t-18.5 113.5 q0 10 0.5 20t1.5 21q-28 -69 -60 -117.5t-66 -79t-69 -44t-68 -13.5q-43 0 -82.5 17t-69.5 53t-48 92t-18 135q0 100 30.5 196.5t90 173t147.5 123.5t203 47q45 0 110.5 -10.5t134.5 -32.5q-6 -46 -13 -100t-14.5 -110t-14.5 -112t-12.5 -105.5t-8.5 -90.5t-3 -67 q0 -23 3.5 -44.5t12.5 -38.5t23.5 -27.5t35.5 -10.5q40 0 71.5 19.5t54.5 51.5t39 73.5t26 85t14 86.5t4 79q0 140 -41 247.5t-112.5 181t-169 111t-210.5 37.5q-88 0 -165.5 -26t-142.5 -72t-117 -110t-88 -139t-55 -159.5t-19 -172.5q0 -155 49 -274.5t133 -200.5 t196.5 -123t238.5 -42q62 0 129 13.5t132 40t125 67t109 94.5l46 -55q-121 -135 -271.5 -197.5t-319.5 -62.5q-121 0 -222 27.5t-181.5 76t-141.5 116.5t-101.5 148.5t-61 172t-20.5 187.5zM648 446q0 -72 18.5 -110.5t50.5 -38.5q26 0 52.5 27.5t51 73.5t46 105.5t38 125 t27.5 131.5t14 124q-26 8 -59 8q-39 0 -71.5 -19t-58.5 -51.5t-46.5 -76t-34.5 -93t-21 -102.5t-7 -104z" /> +<glyph unicode="A" d="M8 0v141q43 0 72.5 19.5t51.5 51.5t39 74.5t34 88.5l400 1095h142l437 -1116q6 -15 14.5 -40t17.5 -53.5t16 -57t10 -51.5l118 6v-158h-552v135q55 0 77 21.5t22 58.5q0 21 -6 46.5t-16 54.5l-41 112l-445 -8l-33 -96l-12.5 -35t-17 -44.5t-19 -46t-16.5 -40.5l146 6 v-164h-439zM451 573h341l-93 257q-27 75 -48 148.5t-31 130.5h-2q-8 -35 -25 -104t-50 -166z" /> +<glyph unicode="B" horiz-adv-x="1354" d="M102 0v135q34 2 61.5 6.5t46 22t28.5 52.5t10 97v785q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158l568 4q119 0 215.5 -21.5t165 -65t105.5 -109.5t37 -156q0 -52 -17 -96t-52.5 -85t-91 -74.5t-132.5 -54.5v-2q102 -16 176.5 -51.5t123.5 -84t73 -108t24 -123.5 q0 -100 -37.5 -176t-104 -127.5t-157.5 -77.5t-199 -26h-697zM536 145q54 0 103 0.5t97 2.5q62 3 107 23.5t74 55.5t43 82.5t14 104.5q0 70 -22.5 117.5t-60 76.5t-85 41t-96.5 12q-97 0 -166 -2v-333q0 -28 -0.5 -54.5t-1.5 -50.5t-2.5 -43.5t-3.5 -32.5zM544 804l107 3 q65 1 109 23t71 59.5t38.5 86.5t11.5 106q0 62 -19.5 103t-50 65t-69.5 34t-78 10q-25 -1 -47 -6t-38 -22.5t-25.5 -51t-9.5 -92.5v-318z" /> +<glyph unicode="C" horiz-adv-x="1410" d="M72 696q0 93 20 186.5t59.5 179t99.5 159.5t139.5 129t179 86t218.5 31q40 0 84.5 -6.5t90.5 -19.5t91 -31.5t86 -43.5h2l-7 87h158v-479h-134q-28 171 -113 257.5t-231 86.5q-107 0 -186.5 -49t-131.5 -130t-77.5 -185.5t-25.5 -215.5q0 -133 28.5 -244t83 -191.5 t134.5 -125t184 -44.5q64 0 129 17t126 49.5t115.5 79.5t97.5 106l98 -90q-75 -104 -157 -168t-163 -99.5t-157 -48t-139 -12.5q-159 0 -288.5 56.5t-221.5 155t-142 231.5t-50 286z" /> +<glyph unicode="D" horiz-adv-x="1555" d="M102 0v135q34 2 61.5 7t46 22t28.5 52t10 97v785q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158l597 2q135 0 245.5 -28t197.5 -78t151 -118t106 -146.5t62.5 -164t20.5 -170.5q0 -83 -19 -169.5t-59.5 -168t-103.5 -153t-151 -125t-202.5 -84.5t-257.5 -31h-587z M536 152q15 1 40.5 1t54 -1t56 -1.5t45.5 -0.5q112 0 192.5 45.5t132.5 121t77 172.5t25 199q0 157 -32.5 271t-93 188.5t-146.5 111.5t-192 40h-12q-31 0 -55 -4q-28 -5 -46.5 -23t-28 -53t-9.5 -94v-789q0 -28 -0.5 -55t-1.5 -51.5t-2.5 -44.5t-3.5 -33z" /> +<glyph unicode="E" horiz-adv-x="1278" d="M102 0v135q34 2 61.5 7t46 22t28.5 52t10 97v785q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h1025l12 -397h-135q0 83 -23.5 135t-59.5 81t-80 39q-40 9 -78 9h-8l-74 -2q-32 -1 -57.5 -6.5t-43 -23.5t-27 -53t-9.5 -95v-307h241l-9 177h158v-498h-135 q0 64 -16 101t-43 55q-28 17 -64 21q-28 3 -60 3h-18l-54 -1v-336q0 -28 -0.5 -54.5t-1.5 -50.5t-2.5 -43.5t-3.5 -32.5l275 1q45 0 90 15t80 49.5t57 91t22 139.5h135l-12 -451h-1081z" /> +<glyph unicode="F" horiz-adv-x="1169" d="M102 0v135q34 2 61.5 7t46 22t28.5 52t10 97v785q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h1025l12 -397h-135q0 83 -23.5 135t-59.5 81t-80 39q-40 9 -78 9h-8l-74 -2q-32 -1 -57.5 -6.5t-43 -23.5t-27 -53t-9.5 -95v-357h212l-9 177h158v-498h-135 q0 64 -16 101t-43 55q-27 17 -63 21q-28 3 -61 3h-18l-25 -1v-286q0 -28 -0.5 -55t-1.5 -51.5t-2.5 -44.5t-3.5 -33l182 6v-158h-616z" /> +<glyph unicode="G" horiz-adv-x="1545" d="M73 696q0 93 19.5 186.5t59 179t98.5 159.5t138.5 129t178.5 86t218 31q40 0 90.5 -6.5t103 -19.5t103 -31.5t91.5 -43.5h2l-7 87h158v-479h-134q-14 86 -48 150.5t-84 107.5t-113 64.5t-135 21.5q-107 0 -186 -49t-130.5 -130t-76.5 -185.5t-25 -215.5 q0 -133 27.5 -244.5t81.5 -192.5t133.5 -126t184.5 -45q30 0 68 3.5t78 10t77.5 17t66.5 24.5v190q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h544v-135q-35 -2 -60.5 -8t-42 -24.5t-25 -53t-8.5 -92.5v-329h-50q-59 0 -117.5 -16t-123.5 -35t-141 -35t-170 -16 q-167 0 -297 56.5t-219 155t-135.5 231.5t-46.5 286z" /> +<glyph unicode="H" horiz-adv-x="1652" d="M102 0v135q34 2 61.5 6.5t46 22t28.5 52.5t10 97v785q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h588v-135q-35 -2 -62 -7t-45.5 -22t-28.5 -52t-10 -97v-321h564v298q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h588v-135q-35 -2 -62 -7t-45.5 -22 t-28.5 -52t-10 -97v-785q0 -28 -0.5 -55t-1.5 -51.5t-2.5 -44.5t-3.5 -33l154 6v-158h-588v135q34 2 61.5 6.5t46 22t28.5 52.5t10 97v332l-564 -7v-302q0 -28 -0.5 -55t-1.5 -51.5t-2.5 -44.5t-3.5 -33l154 6v-158h-588z" /> +<glyph unicode="I" horiz-adv-x="792" d="M102 0v135q34 2 61.5 6.5t46 22t28.5 52.5t10 97v785q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h588v-135q-35 -2 -62 -7t-45.5 -22t-28.5 -52t-10 -97v-785q0 -28 -0.5 -55t-1.5 -51.5t-2.5 -44.5t-3.5 -33l154 6v-158h-588z" /> +<glyph unicode="J" horiz-adv-x="924" d="M2 186q0 34 9.5 65t29 54.5t47.5 37.5t66 14q36 0 61.5 -12t42.5 -31.5t25 -44.5t8 -50q0 -17 -5 -35.5t-13 -35.5q4 -10 12.5 -16.5t17.5 -10.5t18 -5.5t14 -1.5q44 0 67.5 38t23.5 125v821q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h588v-135q-35 -2 -62 -7 t-45.5 -22t-28.5 -52t-10 -97v-600q0 -148 -28 -253t-82 -172t-134 -98t-183 -31q-60 0 -113.5 16.5t-93.5 45.5t-63 69t-23 88z" /> +<glyph unicode="K" horiz-adv-x="1459" d="M102 0v135q34 2 61.5 6.5t46 22t28.5 52.5t10 97v785q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h588v-135q-35 -2 -62 -7t-45.5 -22t-28.5 -52t-10 -97v-312h149l156 268q18 31 37 63t38 60t35.5 49.5t30.5 32.5v2l-130 -8v158h501v-135q-35 -2 -72.5 -9.5 t-78 -29t-82.5 -62.5t-84 -109l-196 -314v-3q42 -25 73 -54.5t55 -63.5l211 -297q31 -44 64 -83.5t67 -69.5t68.5 -48.5t69.5 -20.5v-135h-316q-13 1 -38 22.5t-54 52.5t-58 67t-50 66l-202 295q-14 19 -29 40t-31 40.5t-31 36t-29 26.5l-74 -1v-309q0 -28 -0.5 -55 t-1.5 -51.5t-2.5 -44.5t-3.5 -33l154 6v-158h-588z" /> +<glyph unicode="L" horiz-adv-x="1238" d="M102 0v135q34 2 61.5 6.5t46 22t28.5 52.5t10 97v785q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h588v-135q-35 -2 -62 -7t-45.5 -22t-28.5 -52t-10 -97v-785q0 -28 -0.5 -54.5t-1.5 -50.5t-2.5 -43.5t-3.5 -32.5l275 1q121 0 190 83.5t69 251.5h136l-12 -491 h-1092z" /> +<glyph unicode="M" horiz-adv-x="1990" d="M96 0v135q34 2 61 7t45.5 22t28.5 52t11 97l12 785q0 28 1 55t2 51.5t2.5 44.5t3.5 33l-155 -6v158h453l310 -793q14 -36 30.5 -81t32.5 -90t29.5 -85.5t21.5 -66.5h2q26 71 48.5 137.5t48.5 132.5l316 846h473v-135q-35 -2 -62.5 -7t-47 -22t-29.5 -52q-8 -29 -7 -76 v-21l31 -785q1 -28 0.5 -55t-1.5 -51.5t-3 -44.5t-4 -33l154 6v-158h-569v135q34 2 62 7t47.5 22t29.5 52q8 29 7 76v21l-17 434q-1 18 -3 58.5t-4.5 90.5t-5 104.5t-4.5 101.5h-2l-419 -1122h-191l-275 674q-12 28 -30.5 76.5t-38.5 109.5t-39.5 131.5t-35.5 144.5h-2 q3 -115 5 -216q1 -67 1 -131v-63l-3 -370q0 -28 -0.5 -55t-2 -51.5t-3 -44.5t-3.5 -33l155 6v-158h-467z" /> +<glyph unicode="N" horiz-adv-x="1583" d="M99 1276v158h321l626 -790q52 -66 85.5 -113.5t57.5 -82.5h2v650q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h466v-135q-35 -2 -62 -7t-45.5 -22t-28.5 -52t-10 -97v-1141h-174l-655 837q-52 67 -112 153h-2l3 -634q0 -28 -0.5 -55t-1.5 -51.5t-2.5 -44.5 t-3.5 -33l154 6v-158h-467v135q34 2 61.5 6.5t46 22t28.5 52.5t10 97l-5 785q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33z" /> +<glyph unicode="O" horiz-adv-x="1574" d="M72 717q0 86 19.5 175t59 172t99 156.5t139.5 128.5t180.5 86.5t221.5 31.5q124 0 225.5 -32t180.5 -87t136.5 -128.5t95.5 -156.5t56 -172t18 -174t-19.5 -173.5t-59 -171.5t-99 -157t-139.5 -129t-180 -87t-221 -32q-130 0 -233 31t-182.5 84.5t-136 126t-92 156 t-52.5 173.5t-17 179zM394 741q0 -65 9 -136t29 -140.5t52 -132.5t77.5 -110.5t106.5 -76t138 -28.5q71 0 126 24.5t96.5 66.5t70.5 98t47 118.5t26 129t8 128.5q0 138 -24 254.5t-74 201t-126 132t-180 47.5q-73 0 -129.5 -24.5t-99 -67.5t-71.5 -99.5t-47.5 -120.5 t-26.5 -131.5t-8 -132.5z" /> +<glyph unicode="P" horiz-adv-x="1308" d="M102 0v135q34 2 61.5 6.5t46 22t28.5 52.5t10 97v785q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158l583 4h10q127 0 231 -25q108 -26 185.5 -80.5t119.5 -139.5t42 -204q1 -86 -34 -167.5t-106.5 -147.5t-180.5 -108t-259 -47q-24 -1 -43.5 -1.5t-37 -0.5h-34 t-34.5 1v-181q0 -56 -2 -107.5t-6 -77.5l174 6v-158h-608zM544 671q22 -2 45 -4t47 -2q84 0 145 21.5t100 63.5t57.5 103t18.5 139q0 68 -13 117t-35 82.5t-50.5 54t-59 31t-61 14t-56.5 3.5q-33 0 -58.5 -5t-43 -22t-27 -49t-9.5 -86v-461z" /> +<glyph unicode="Q" horiz-adv-x="1576" d="M73 717q0 86 19.5 175t59 172t99 156.5t139.5 128.5t180.5 86.5t221.5 31.5q124 0 225.5 -32t180.5 -87t136.5 -128.5t95.5 -156.5t56 -172t18 -174q0 -102 -29 -208.5t-86.5 -202t-144.5 -173t-202 -120.5v-2q44 0 80.5 -4t70.5 -16t68.5 -35t75.5 -60 q70 -66 112.5 -106.5t70 -62t50 -29t56.5 -7.5v-137h-88q-71 0 -118.5 3t-85 14t-72 33.5t-77.5 60.5q-65 57 -115 111.5t-96.5 97t-95.5 68t-112 25.5q-126 0 -226.5 31t-177.5 85t-131.5 127t-89.5 156t-51.5 173t-16.5 178zM395 741q0 -65 9 -136t29 -140.5t52 -132.5 t77.5 -110.5t106.5 -76t138 -28.5q71 0 126 24.5t96.5 66.5t70.5 98t47 118.5t26 129t8 128.5q0 138 -24 254.5t-74 201t-126 132t-180 47.5q-73 0 -129.5 -24.5t-99 -67.5t-71.5 -99.5t-47.5 -120.5t-26.5 -131.5t-8 -132.5z" /> +<glyph unicode="R" horiz-adv-x="1404" d="M102 0v135q34 2 61.5 6.5t46 22t28.5 52.5t10 97v785q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158l583 4q133 0 240.5 -22t184.5 -72.5t118 -131.5t41 -199v-6q0 -65 -21 -125q-22 -64 -66.5 -117t-112 -95t-159.5 -68v-2q38 -15 76 -51t65 -77l96 -145 q34 -51 61 -87t52.5 -59t53 -34t62.5 -12v-135h-337q-36 26 -73 76t-78 117l-150 245q-26 42 -47 70t-39 50q-17 -1 -30 -1h-26h-24.5t-27.5 1v-221q0 -56 -2 -107.5t-6 -77.5l174 6v-158h-608zM544 712q24 -3 49 -5t51 -2q85 0 145 18.5t98 57t56 96.5t18 136 q0 66 -15 112.5t-39 77.5t-54.5 49t-61.5 27.5t-59.5 12t-49.5 2.5q-33 0 -58.5 -5t-43 -22t-27 -49t-9.5 -86v-420z" /> +<glyph unicode="S" horiz-adv-x="1225" d="M89 1076q0 42 10.5 87.5t33 89t59.5 82.5t90.5 68.5t124 46.5t161.5 17q40 0 86 -6.5t92 -18.5t88.5 -30.5t76.5 -42.5h2l-7 84h158v-479h-134q-28 175 -119.5 260t-235.5 85q-44 0 -83.5 -13t-70 -36.5t-48.5 -56t-18 -70.5q0 -48 20 -86t61 -71t103 -64t147 -65 q51 -21 106 -46t107 -55.5t98.5 -68t81 -83.5t55 -101.5t20.5 -122.5q0 -91 -37.5 -167t-106.5 -130.5t-166 -85t-216 -30.5q-40 0 -85 6.5t-91 19t-91.5 31.5t-86.5 44h-2l7 -87h-158v479h134q14 -86 48 -150.5t83.5 -108t112.5 -65t135 -21.5q55 0 100.5 15t78 41.5 t50.5 61.5t18 75q0 54 -29.5 93t-77 68.5t-106 53t-116.5 46.5q-99 40 -184 86t-147 106t-97 137t-35 178z" /> +<glyph unicode="T" horiz-adv-x="1331" d="M32 970l12 464h1241l12 -464h-135q0 164 -67 246q-66 82 -183 81h-3l-98 -1v-960q0 -28 -0.5 -55t-1.5 -51.5t-2.5 -44.5t-3.5 -33l164 6v-158h-598v135q34 1 61.5 6.5t46 22.5t28.5 52t10 97v981h-95q-117 0 -184.5 -79t-68.5 -245h-135z" /> +<glyph unicode="U" horiz-adv-x="1556" d="M53 1276v158h589v-135q-35 -2 -62 -7t-45.5 -22t-28.5 -52t-10 -97v-563q0 -134 29.5 -218.5t77.5 -132.5t109.5 -66t125.5 -18q80 0 143.5 27t107.5 81.5t67 137t23 192.5v537q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h474v-135q-35 -2 -62 -7t-45.5 -22 t-28.5 -52t-10 -97v-513q0 -177 -43.5 -299t-120 -198t-181 -110t-227.5 -34q-116 0 -204.5 22.5t-154 64t-110 99.5t-71.5 128.5t-38.5 151.5t-11.5 169v496q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33z" /> +<glyph unicode="V" horiz-adv-x="1449" d="M17 1276v158h603v-135h-11q-55 0 -89.5 -20t-34.5 -67q0 -30 16 -71l189 -464q18 -42 32.5 -78.5t27.5 -70.5t26.5 -68.5t29.5 -73.5h2q23 61 48 136t51 145l155 429q6 17 15 42t20 52t23.5 51.5t25.5 40.5v2l-157 -8v158h461v-135q-34 -2 -64 -14t-56.5 -38t-50.5 -67 t-46 -100l-409 -1092h-168l-472 1099q-11 25 -21.5 52.5t-18.5 54t-13 49.5t-5 39z" /> +<glyph unicode="W" horiz-adv-x="2080" d="M27 1276v158h603v-135h-12q-56 0 -87.5 -19.5t-31.5 -69.5q-1 -14 2 -30t8 -35l123 -468q9 -35 17.5 -66t17 -64.5t17 -72t17.5 -87.5h2q5 18 14 52.5t20.5 76t24 86.5t24 85.5t20.5 72t14 46.5l190 628h185l232 -755q22 -72 39.5 -144.5t34.5 -150.5h2q18 69 38 138.5 t40 144.5l114 429q14 49 34 100.5t50 85.5v2l-157 -8v158h461v-135q-34 -2 -65 -14t-58.5 -37.5t-51 -66.5t-42.5 -101l-335 -1092h-181l-243 733q-27 81 -43.5 156.5t-30.5 145.5h-2q-11 -70 -25.5 -134t-35.5 -133l-233 -768h-178l-365 1103q-11 25 -21.5 52t-18.5 52.5 t-13 47.5t-5 39z" /> +<glyph unicode="X" horiz-adv-x="1432" d="M28 1276v158h624v-135q-66 0 -96.5 -15t-30.5 -45q0 -17 10.5 -37t27.5 -43l180 -232h2l156 216q21 29 37.5 50t30.5 36.5t26.5 28t25.5 24.5v2l-153 -8v158h466v-135q-36 -5 -70.5 -21t-70 -44t-72 -69.5t-77.5 -97.5l-197 -269l386 -491q35 -45 62.5 -83t44.5 -72l83 6 v-158h-612v135q63 0 88.5 13.5t25.5 36.5q0 18 -13 41t-33 49l-208 264h-2l-179 -248q-21 -29 -37 -50t-28.5 -37t-24 -28t-23.5 -24v-2l146 8v-158h-451v135q58 13 118 65.5t136 153.5l238 318l-330 417q-35 45 -61.5 96.5t-41.5 96.5z" /> +<glyph unicode="Y" horiz-adv-x="1365" d="M7 1276v158h603v-135q-6 0 -11.5 0.5t-11.5 0.5q-57 0 -90 -20.5t-33 -60.5q1 -17 6 -36.5t19 -41.5l157 -257l21 -36t29.5 -52.5t30 -57.5t22.5 -51h3q10 23 34 72.5t62 127.5l106 209q8 16 21 41t28 52t30 52t29 41v2l-157 -8v158h452v-135q-36 -6 -65.5 -20 t-56.5 -39.5t-53.5 -64.5t-56.5 -95l-267 -512v-232q0 -28 -0.5 -55t-1.5 -51.5t-2.5 -44.5t-3.5 -33l164 6v-158h-598v135q34 1 61.5 6.5t46 22.5t28.5 52t10 97v179l-378 595q-15 24 -29 51t-25 53.5t-17.5 50t-6.5 40.5z" /> +<glyph unicode="Z" horiz-adv-x="1237" d="M82 0v154l613 934q38 58 71.5 105.5t71.5 95.5v2l-351 9q-57 0 -104.5 -15.5t-82 -51.5t-53.5 -94t-19 -142h-135l12 437h1042v-154l-590 -892q-44 -66 -87 -127t-89 -115v-2l374 -8q57 0 104.5 16t82 51.5t53.5 93t19 141.5h135l-12 -438h-1055z" /> +<glyph unicode="[" horiz-adv-x="791" d="M127 -522l2 2068h655v-145l-390 -6l-9 -1766l403 -6v-145h-661z" /> +<glyph unicode="\" horiz-adv-x="1432" d="M51 1427l1170 -1982l159 105l-1143 1997z" /> +<glyph unicode="]" horiz-adv-x="791" d="M3 1401v145h661l-2 -2068h-655v145l390 6l9 1766z" /> +<glyph unicode="^" horiz-adv-x="1686" d="M123 904l631 563h182l627 -573h-281l-445 422h-2l-444 -412h-268z" /> +<glyph unicode="_" horiz-adv-x="1704" d="M221 -102l1259 -9v-206h-1259v215z" /> +<glyph unicode="`" horiz-adv-x="578" d="M91 1492q0 20 8 40t22 35.5t34 25t43 9.5q35 0 68 -20.5t54 -54.5l168 -286l-94 -83l-249 216q-24 23 -39 54.5t-15 63.5z" /> +<glyph unicode="a" horiz-adv-x="1074" d="M61 240q0 65 23 117t63.5 93t95.5 71t118.5 50t132.5 31t138 14v107q0 41 -7 75.5t-24 59.5t-45 39q-26 13 -64 13h-6q-42 -2 -78 -17t-62 -42q16 -17 20.5 -39t4.5 -37q0 -22 -8 -44.5t-25 -41t-43 -30.5t-62 -12q-30 1 -54 12.5t-40 30t-24.5 43.5t-8.5 54 q0 60 33.5 110t92 85.5t137.5 55t169 19.5t160.5 -23t119 -71t74 -122t25.5 -176q0 -52 -0.5 -91.5t-0.5 -76t-0.5 -76.5t-0.5 -92q0 -15 -0.5 -36t-1 -45t-2 -49.5t-3.5 -48.5l132 6v-156h-387q-4 29 -5.5 48.5t-2.5 45.5h-2q-70 -70 -146 -98.5t-157 -28.5 q-66 0 -118 20.5t-87.5 57.5t-54.5 86.5t-19 108.5zM353 274q1 -29 11 -49t25.5 -33t36 -19t42.5 -6q48 0 89 20t73 55l1 229q-58 -6 -109 -21t-88.5 -39.5t-59 -58.5t-21.5 -78z" /> +<glyph unicode="b" horiz-adv-x="1173" d="M-8 1330v155q71 0 125.5 6t93 15t62 19.5t34.5 20.5h111v-599q69 62 140.5 86t135.5 24q92 0 168 -36.5t130.5 -104t84.5 -163.5t30 -215q0 -124 -34 -228.5t-98.5 -180.5t-156.5 -119t-208 -43q-28 0 -64 4.5t-76 18t-80.5 38t-76.5 63.5h-2l-59 -91h-124v1157 q0 37 1.5 85t6.5 94zM418 307q0 -54 14 -90.5t36.5 -58.5t50.5 -31.5t56 -9.5q67 0 111.5 33t71.5 87.5t38 124.5t11 145q0 72 -13 138t-40 116.5t-69.5 80.5t-101.5 30q-51 -2 -94.5 -25.5t-70.5 -61.5v-478z" /> +<glyph unicode="c" horiz-adv-x="1060" d="M63 490q0 115 39 218.5t109 180.5t168 122.5t217 45.5q97 0 171 -24t123.5 -63t74.5 -89.5t25 -104.5q0 -31 -9.5 -59t-28 -49t-45.5 -33t-61 -12q-38 0 -63 13t-41 32.5t-22.5 43t-6.5 44.5q0 18 6 43.5t19 45.5q-11 20 -28.5 33t-37 21t-39 11t-34.5 3q-52 0 -95 -23.5 t-74.5 -70t-49 -114.5t-17.5 -157q0 -78 14.5 -150t47.5 -127t87 -88t133 -33q41 0 82.5 11.5t79.5 32t72.5 49.5t61.5 64l94 -91q-56 -77 -115 -125.5t-119 -76t-119 -37.5t-115 -10q-104 0 -195.5 35t-160 102t-108.5 164t-40 222z" /> +<glyph unicode="d" horiz-adv-x="1221" d="M66 486q0 124 36.5 228.5t103 180.5t160 119t207.5 43q57 0 100.5 -11.5t81.5 -25.5v136q0 15 0.5 36t1.5 45t2.5 49.5t3.5 48.5l-144 -6v156q71 0 125.5 6t93 15t62 19.5t34.5 20.5h111v-1217q0 -15 -0.5 -36t-1.5 -45t-2.5 -49.5t-3.5 -48.5l133 6v-156h-389l-11 95h-2 q-68 -71 -140.5 -99.5t-148.5 -28.5q-92 0 -168 36.5t-130.5 104t-84.5 163.5t-30 215zM366 517q0 -66 12 -131t38.5 -116.5t68.5 -83.5t101 -32q52 0 97 27t72 70v616q-22 15 -61 26.5t-84 11.5q-71 -2 -118 -35.5t-75 -88t-39.5 -123.5t-11.5 -141z" /> +<glyph unicode="e" horiz-adv-x="1102" d="M63 510q0 108 36.5 206.5t103.5 174.5t161.5 121t210.5 45q57 0 113.5 -10t108 -33.5t96 -61.5t76.5 -94q33 -56 51 -132q18 -72 17 -165v-10l-673 -12q0 -84 15.5 -155.5t49.5 -123t89 -81t135 -29.5q31 0 69 8t77.5 26t79.5 47.5t75 72.5l92 -87q-55 -79 -117 -128 t-124.5 -76t-123 -36.5t-112.5 -9.5q-113 0 -206 38t-160 109t-103.5 171t-36.5 225zM377 683h377q-2 63 -15 107t-35.5 71.5t-52.5 39.5t-66 12q-45 0 -80.5 -17t-61.5 -47t-42.5 -72.5t-23.5 -93.5z" /> +<glyph unicode="f" horiz-adv-x="755" d="M62 853v171h148v60q0 124 28 211.5t80.5 143t127 81.5t166.5 26q72 0 122 -16t81 -42t44.5 -58t13.5 -64q0 -28 -8.5 -53t-25.5 -44t-42 -30t-58 -11q-57 0 -88.5 33t-31.5 85q0 17 5 40q-10 11 -24 14t-22 3q-26 -1 -42 -13t-25 -30t-12.5 -40t-3.5 -44l1 -252h229v-158 l-228 -5l3 -528q0 -15 -0.5 -36.5t-1.5 -46.5t-2.5 -51t-3.5 -49l143 6v-156h-547v133q43 0 67.5 13t36.5 37t15 57.5t3 74.5v541z" /> +<glyph unicode="g" horiz-adv-x="1140" d="M58 -287q0 32 9.5 65t32 63.5t59.5 58t93 48.5q-42 12 -71 31t-47 42.5t-26 51t-8 56.5q0 26 10 57t33.5 62t61.5 57.5t95 43.5v2q-45 17 -82 45t-63.5 66t-41.5 85t-15 102q0 90 38.5 165t102.5 129t146 84t169 30q27 0 59 -3.5t65 -11t64 -19.5t57 -30q17 47 41 91.5 t56.5 79.5t73 56t89.5 21q69 0 105.5 -36t36.5 -96q0 -19 -6 -40.5t-20.5 -40t-39 -31t-61.5 -12.5q-15 0 -31.5 6.5t-30.5 17t-24 25t-13 30.5q-14 -3 -28 -18t-25.5 -35t-20 -41.5t-11.5 -37.5q60 -51 91 -118.5t31 -145.5q0 -89 -39 -163.5t-103.5 -128.5t-148.5 -84 t-174 -30q-28 0 -60.5 3.5t-63.5 3.5q-45 0 -75.5 -16.5t-30.5 -45.5q0 -19 14 -32t45 -21t81 -13.5t122 -9.5q118 -7 214.5 -25.5t165.5 -55.5t107 -96.5t38 -148.5q0 -58 -24 -107.5t-65.5 -89.5t-98 -70.5t-120.5 -51t-133.5 -31t-137.5 -10.5q-133 0 -222.5 22.5 t-144 60t-77.5 85.5t-23 100zM309 -240q0 -40 19 -72t55 -54.5t86.5 -34.5t113.5 -12q72 0 127.5 15t93 38.5t56.5 52.5t19 58q0 63 -72 95.5t-224 39.5q-23 1 -50 2t-54.5 3t-54.5 4.5t-49 6.5q-34 -26 -50 -66t-16 -76zM381 677q0 -54 11.5 -104t33.5 -88.5t55 -61.5 t75 -23q41 0 72.5 20t53 53t32.5 74.5t11 83.5q0 54 -10.5 105.5t-32 92t-54 65.5t-75.5 25q-41 0 -72.5 -20t-54 -53.5t-34 -77.5t-11.5 -91z" /> +<glyph unicode="h" horiz-adv-x="1271" d="M37 1330v155q71 0 125.5 6t93 15t62 19.5t34.5 20.5h111v-603q30 24 68.5 44.5t79 36t80 24.5t70.5 9q94 0 159.5 -26.5t107 -81.5t60.5 -141t19 -204v-275q0 -15 -0.5 -36t-1.5 -45t-2.5 -49.5t-3.5 -48.5l133 6v-156h-537v133q43 0 67.5 13t36.5 37t15 57.5t3 74.5 l-1 292q-1 135 -41 198t-125 63q-53 -1 -102.5 -22.5t-84.5 -52.5v-464q0 -15 -0.5 -36t-1.5 -45t-2.5 -49.5t-3.5 -48.5l133 6v-156h-537v133q43 0 67.5 13t36.5 37t15 57.5t3 74.5v842q0 37 1.5 85t6.5 94z" /> +<glyph unicode="i" horiz-adv-x="670" d="M69 828v155q71 0 125.5 6t93 15t62 19.5t34.5 20.5h111v-715q0 -15 -0.5 -36t-1.5 -45t-2.5 -49.5t-3.5 -48.5l133 6v-156h-537v133q43 0 67.5 13t36.5 37t15 57.5t3 74.5v340q0 37 1.5 85t6.5 94zM214 1393q0 35 12.5 66t34 54t49.5 36t60 13q33 0 61.5 -13t49.5 -36 t32.5 -54t11.5 -66t-11 -65t-30.5 -53t-48 -36t-62.5 -13q-35 0 -64.5 13t-50.5 36t-32.5 53t-11.5 65z" /> +<glyph unicode="j" horiz-adv-x="603" d="M-180 -387q0 28 9 53t26 44.5t42 31t57 11.5q54 0 86 -34t32 -88q0 -16 -3 -34q5 -4 16.5 -6.5t19.5 -2.5q28 0 45 15.5t26 39t11.5 50t2.5 48.5l-5 914q0 37 1.5 85t6.5 94l-144 -6v155q71 0 125.5 6t93 15t62 19.5t34.5 20.5h111v-1040q0 -142 -33 -247t-91 -174.5 t-137 -103.5t-171 -34q-57 0 -99 14.5t-69.5 38t-41 53.5t-13.5 62zM183 1393q0 35 12.5 66t34 54t49.5 36t60 13q33 0 61.5 -13t49.5 -36t32.5 -54t11.5 -66t-11 -65t-30.5 -53t-48 -36t-62.5 -13q-35 0 -64.5 13t-50.5 36t-32.5 53t-11.5 65z" /> +<glyph unicode="k" horiz-adv-x="1216" d="M38 1330v155q71 0 125.5 6t93 15t62 19.5t34.5 20.5h111v-934h100l146 170q26 30 43.5 49.5t36.5 36.5v2l-109 -2v156h462v-131q-54 -6 -98.5 -23t-80 -39.5t-63.5 -48.5t-50 -50l-131 -146v-2q16 -8 30.5 -18.5t30 -25t33.5 -35t40 -49.5l137 -179q12 -16 31 -40.5 t43 -47.5t53 -39.5t61 -16.5v-133h-235q-33 0 -60.5 12t-54 34.5t-54 56t-59.5 76.5q-27 36 -57 78t-57.5 82t-51.5 74.5t-39 55.5l-47 -2v-138q0 -15 -0.5 -36t-1.5 -45t-2.5 -49.5t-3.5 -48.5l133 6v-156h-537v133q43 0 67.5 13t36.5 37t15 57.5t3 74.5v842q0 37 1.5 85 t6.5 94z" /> +<glyph unicode="l" horiz-adv-x="639" d="M37 1330v155q71 0 125.5 6t93 15t62 19.5t34.5 20.5h111v-1217q0 -15 -0.5 -36t-1.5 -45t-2.5 -49.5t-3.5 -48.5l133 6v-156h-537v133q43 0 67.5 13t36.5 37t15 57.5t3 74.5v842q0 37 1.5 85t6.5 94z" /> +<glyph unicode="m" horiz-adv-x="1885" d="M71 828v155q71 0 125.5 6t93 15t62 19.5t34.5 20.5h101l9 -101h3q30 23 66 44t73.5 36.5t78 24.5t80.5 9q94 0 155.5 -33t98.5 -102q37 31 78 56t84.5 42.5t87 27t84.5 9.5q82 0 145 -22.5t105 -73t63.5 -131.5t21.5 -199v-302q0 -15 -0.5 -36t-1.5 -45t-2.5 -49.5 t-3.5 -48.5l133 6v-156h-517v133q35 0 55.5 13t31 37t13 57.5t2.5 74.5l-1 314q0 69 -12.5 115t-34 73t-52 38t-67.5 11q-52 -1 -94 -20t-77 -47q8 -42 12.5 -90t4.5 -105v-275q0 -15 -0.5 -36t-1.5 -45t-2.5 -49.5t-3.5 -48.5l133 6v-156h-527v133q39 0 61.5 13t33.5 37 t14 57.5t3 74.5l-1 320q0 67 -11 112t-30.5 72t-47 38t-62.5 11q-49 0 -93 -22.5t-77 -52.5v-464q0 -15 -0.5 -36t-1.5 -45t-2.5 -49.5t-3.5 -48.5l123 6v-156h-527v133q43 0 67.5 13t36.5 37t15 57.5t3 74.5v345q0 37 1.5 82.5t6.5 91.5z" /> +<glyph unicode="n" horiz-adv-x="1303" d="M69 828v155q71 0 125.5 6t93 15t62 19.5t34.5 20.5h101l9 -101h3q30 23 68.5 44t79 36.5t79 24.5t69.5 9q94 0 159.5 -26.5t107 -81.5t60.5 -141t19 -204v-275q0 -15 -0.5 -36t-1.5 -45t-2.5 -49.5t-3.5 -48.5l133 6v-156h-537v133q43 0 67.5 13t36.5 37t15 57.5t3 74.5 l-1 292q-1 135 -41 198t-125 63q-53 0 -102.5 -22t-84.5 -53v-464q0 -15 -0.5 -36t-1.5 -45t-2.5 -49.5t-3.5 -48.5l133 6v-156h-537v133q43 0 67.5 13t36.5 37t15 57.5t3 74.5v345q0 37 1.5 82.5t6.5 91.5z" /> +<glyph unicode="o" horiz-adv-x="1159" d="M63 489q0 127 41 232t111.5 179.5t164.5 115.5t199 41q110 0 204.5 -36t163.5 -104t108.5 -165.5t39.5 -220.5q0 -129 -37.5 -233.5t-105 -178t-161.5 -113t-206 -39.5q-111 0 -206.5 36.5t-165.5 104t-110 164t-40 217.5zM364 544q0 -79 12.5 -156.5t40 -138.5t71 -99 t105.5 -38q61 1 99.5 34t61 85.5t31 117.5t8.5 131q0 76 -10.5 153.5t-36 139.5t-67 101t-104.5 39q-60 -2 -100 -34.5t-65 -84.5t-35.5 -117.5t-10.5 -132.5z" /> +<glyph unicode="p" horiz-adv-x="1231" d="M50 828v155q71 0 125 6t92.5 15t62 19.5t34.5 20.5h101l10 -98h3q70 62 140 86.5t134 24.5q92 0 168 -36.5t130.5 -104t84.5 -163.5t30 -215q0 -124 -36.5 -228.5t-103 -180.5t-160 -119t-207.5 -43q-57 0 -100.5 11.5t-81.5 25.5v-197q0 -15 -0.5 -36t-1.5 -45 t-2.5 -49.5t-3.5 -48.5l133 6v-156h-537v133q43 0 67.5 13t36.5 37t15 57.5t3 74.5v867q0 37 1.5 82.5t6.5 91.5zM476 158q10 -8 26.5 -15t36 -12t41.5 -8t44 -3q71 0 117.5 32.5t74 86.5t38.5 124t11 144q0 72 -13 138t-40 116.5t-69.5 80.5t-101.5 30q-51 -2 -94.5 -26 t-70.5 -63v-625z" /> +<glyph unicode="q" horiz-adv-x="1174" d="M66 486q0 124 36.5 228.5t103.5 180.5t161.5 119t210.5 43q57 0 101 -7t78.5 -16t60.5 -16t47 -7q15 0 36.5 8.5t33.5 24.5h111v-1237q0 -15 -0.5 -36t-1.5 -45t-2.5 -49.5t-3.5 -48.5l133 6v-156h-537v133q42 0 66.5 13t36.5 37t15.5 57.5t3.5 74.5l2 289h-2 q-66 -64 -135 -89.5t-142 -25.5q-92 0 -168 36.5t-130.5 104t-84.5 163.5t-30 215zM366 517q1 -66 13.5 -131.5t38.5 -117t67.5 -84t100.5 -32.5q51 0 97 26.5t73 68.5v481q0 57 -15 92.5t-38.5 54.5t-51.5 25.5t-54 6.5q-68 0 -113 -34t-71 -89.5t-36.5 -125.5t-10.5 -141z " /> +<glyph unicode="r" horiz-adv-x="984" d="M69 828v155q71 0 125.5 6t93 15t62 19.5t34.5 20.5h101l9 -176h3q20 27 48.5 60t66 61.5t82.5 48t98 19.5q36 0 68.5 -10t57 -30.5t39 -52.5t14.5 -77q0 -24 -8 -49.5t-25 -46.5t-44.5 -34.5t-66.5 -13.5q-21 0 -43 5.5t-40.5 19t-32 36.5t-16.5 59q-31 0 -62.5 -20.5 t-59 -51t-48.5 -65.5t-30 -63v-334q0 -15 -0.5 -36t-1.5 -45t-2.5 -49.5t-3.5 -48.5l133 6v-156h-537v133q43 0 67.5 13t36.5 37t15 57.5t3 74.5v345q0 37 1.5 82.5t6.5 91.5z" /> +<glyph unicode="s" horiz-adv-x="993" d="M79 727q0 59 22.5 118t69.5 106t120 76.5t174 29.5q28 0 60.5 -4t65.5 -12.5t64 -21.5t56 -31h2l-3 58h156v-362h-132q-9 53 -33.5 95.5t-61.5 72t-84.5 45.5t-102.5 16q-26 0 -50.5 -6t-43.5 -19t-30 -33.5t-11 -50.5q0 -36 19 -59.5t53 -40.5t79.5 -31.5t98.5 -32.5 q78 -27 144 -59t114 -74.5t75.5 -97t27.5 -126.5q0 -80 -31.5 -139.5t-83.5 -98.5t-119 -58.5t-139 -19.5q-44 0 -88 6t-84 16.5t-73.5 25.5t-57.5 33h-2l7 -62h-156l-8 352h132q4 -47 30 -88t68 -71t98.5 -47t121.5 -17q25 0 50.5 6t45.5 18.5t32.5 31.5t12.5 46 q0 29 -15.5 49.5t-45.5 38t-74.5 34.5t-102.5 40q-64 25 -129 51.5t-118 64.5t-86.5 93.5t-33.5 138.5z" /> +<glyph unicode="t" horiz-adv-x="846" d="M34 853v171q53 1 99 26.5t82.5 63.5t62 83t37.5 84h151l-1 -257h261v-158l-261 -5q-1 -145 -1.5 -240.5t-1 -153t-0.5 -82v-28.5q0 -36 4.5 -71.5t18 -64t38 -46t63.5 -17.5q13 0 32.5 4t44 16.5t52.5 37t57 65.5l99 -92q-56 -82 -112 -127t-107 -66t-93 -25t-70 -4 q-34 0 -70.5 5.5t-72 20.5t-67 42.5t-56 71.5t-38.5 106.5t-14 147.5l3 494z" /> +<glyph unicode="u" horiz-adv-x="1266" d="M31 828v155q71 0 125.5 6t93 15t62 19.5t34.5 20.5h112v-627q0 -135 34.5 -198t112.5 -63q25 0 52 7.5t53 21t49.5 31.5t41.5 38v401q0 37 1.5 85t6.5 94l-144 -6v155q71 0 125 6t92.5 15t62 19.5t34.5 20.5h112v-715q-1 -57 -2 -81t-2.5 -49.5t-3.5 -48.5l133 6v-156 h-389l-11 107h-2q-31 -27 -64.5 -52.5t-71 -45t-80 -31t-91.5 -11.5q-91 0 -155.5 26.5t-105.5 81.5t-60 140.5t-19 204.5v235q0 37 1.5 85t6.5 94z" /> +<glyph unicode="v" horiz-adv-x="1101" d="M12 868v156h480v-131q-38 -2 -53.5 -20.5t-15.5 -47.5q0 -20 5.5 -43t14.5 -49l172 -424h2l149 422q18 50 33.5 81.5t34.5 61.5v2l-127 -8v156h388v-131q-36 -6 -65.5 -33.5t-53 -64.5t-41 -76.5t-29.5 -70.5l-262 -654h-179l-324 710q-17 37 -26 61.5t-13.5 42t-7 32 t-6.5 32.5z" /> +<glyph unicode="w" horiz-adv-x="1660" d="M16 868v156h491v-131q-43 -3 -60.5 -26t-17.5 -59q-1 -17 2.5 -36t9.5 -39l69 -250q12 -45 23.5 -94.5t18.5 -100.5h2q5 22 10 45t11 49.5t14 58t19 69.5l150 514h222l164 -565q12 -43 25.5 -93t24.5 -92h2q6 42 20.5 90.5t26.5 88.5l79 259q9 28 16 50.5t14.5 41.5 t14.5 36t16 34v2l-118 -8v156h389v-131q-41 0 -72 -27t-53.5 -64t-37 -74t-21.5 -57l-233 -677h-217l-141 437q-6 16 -15 45.5t-18.5 64t-20 71.5t-19.5 70h-2q-6 -43 -19.5 -96.5t-28 -104.5t-27 -92t-18.5 -58l-113 -337h-203l-248 710q-14 39 -22 63t-13.5 41.5 t-8.5 31.5t-7 32z" /> +<glyph unicode="x" horiz-adv-x="1122" d="M42 868v156h454v-131q-27 -2 -39 -11t-12 -23q0 -16 12 -36t32 -43l95 -110h2l77 93q25 30 49.5 58.5t50.5 52.5v2l-99 -8v156h361v-131q-63 -26 -111.5 -66.5t-94.5 -96.5l-137 -168l238 -277q28 -32 53 -64t45 -69l70 4v-156h-483v131q36 2 52 11.5t16 25.5 q-2 28 -35 64l-121 128h-2l-95 -114q-5 -7 -16.5 -20.5t-25.5 -28.5t-27.5 -28t-22.5 -19v-2l93 8v-156h-339v131q42 17 78 51.5t78 82.5l178 204l-200 236q-13 15 -30.5 36t-35 44t-31.5 46t-20 41z" /> +<glyph unicode="y" horiz-adv-x="1128" d="M10 868v156h510v-131q-48 -6 -67 -28t-19 -52q0 -19 6 -39.5t15 -40.5l200 -459h2q9 26 22 68t29.5 95.5t36 116t41.5 129.5q6 19 15 44.5t20.5 52.5t24.5 52t27 42v2l-117 -8v156h364v-131q-64 -16 -105.5 -78.5t-73.5 -155.5l-257 -731q-43 -125 -82 -216.5t-82 -150.5 t-95 -87.5t-121 -28.5q-40 0 -74 12t-59 34t-39.5 53t-14.5 69q0 28 10 53.5t27.5 45t42 31t53.5 11.5q21 0 40 -8.5t33.5 -23.5t23 -36t8.5 -46q0 -13 -3 -28v-2q21 0 44 28.5t46.5 75t45 107t39.5 125.5l-325 649q-29 57 -47 99t-28.5 73.5t-15 56.5t-7.5 48z" /> +<glyph unicode="z" horiz-adv-x="1053" d="M72 0v148l470 621q17 22 34.5 42.5t32 36t25.5 26.5t14 15v2l-277 -4q-36 -1 -61.5 -21.5t-43.5 -55.5t-29.5 -81.5t-19.5 -99.5h-127l29 395h830v-130l-457 -619q-30 -41 -59.5 -71t-55.5 -54v-2l288 -7q48 0 81.5 20t55.5 55.5t35 83t21 102.5h127l-30 -402h-883z" /> +<glyph unicode="{" horiz-adv-x="754" d="M-6 466v146h47q57 0 95 8.5t60.5 28.5t32 54.5t9.5 87.5q0 81 -10.5 166.5t-10.5 176.5q0 217 116 319.5t349 102.5h57v-144q-13 1 -24.5 1h-22.5q-52 0 -89.5 -9.5t-61.5 -37t-35.5 -76.5t-11.5 -127q0 -27 3.5 -60t7.5 -69.5t7.5 -74t3.5 -72.5q0 -75 -25.5 -135.5 t-71.5 -105t-109 -71.5t-138 -34v-4q74 -9 137 -37.5t109.5 -74t72.5 -107.5t26 -137q0 -39 -3.5 -84.5t-8 -90.5t-8 -84.5t-3.5 -66.5q0 -83 12.5 -135t39 -81t67.5 -39.5t98 -10.5q7 0 13.5 0.5t14.5 0.5v-145h-57q-233 0 -349 111t-116 327q0 45 3.5 97.5t7 105.5t7 103 t3.5 90q0 52 -9.5 88t-32 58t-60.5 31.5t-95 9.5h-47z" /> +<glyph unicode="|" horiz-adv-x="531" d="M124 1556h283l-8 -2111h-269z" /> +<glyph unicode="}" horiz-adv-x="754" d="M15 -410q8 0 14.5 -0.5t13.5 -0.5q57 0 98 10.5t67.5 39.5t39 81t12.5 135q0 27 -3.5 66.5t-8 84.5t-8 90.5t-3.5 84.5q0 75 26 137t72.5 107.5t109.5 74t137 37.5v4q-75 7 -138 34t-109 71.5t-71.5 105t-25.5 135.5q0 35 3.5 72.5t7.5 74t7.5 69.5t3.5 60 q0 78 -11.5 127t-35.5 76.5t-61.5 37t-89.5 9.5h-22.5t-24.5 -1v144h57q233 0 349 -102.5t116 -319.5q0 -91 -10.5 -176.5t-10.5 -166.5q0 -53 9.5 -87.5t32 -54.5t60.5 -28.5t95 -8.5h47v-146h-47q-57 0 -95 -9.5t-60.5 -31.5t-32 -58t-9.5 -88q0 -40 3.5 -90t7 -103 t7 -105.5t3.5 -97.5q0 -216 -116 -327t-349 -111h-57v145z" /> +<glyph unicode="~" horiz-adv-x="1106" d="M99 466v242q32 26 61.5 46.5t60 34.5t64 21t74.5 7q55 0 96 -11.5t73 -28.5t58.5 -37.5t54 -37.5t59 -28.5t73.5 -11.5q68 0 127.5 26.5t108.5 71.5v-242q-42 -48 -102.5 -77.5t-141.5 -29.5q-51 0 -90.5 11.5t-71.5 28.5t-60 37t-57 37t-61.5 28.5t-73.5 11.5 q-42 0 -76 -8t-64 -21.5t-57 -31.5t-55 -38z" /> +<glyph unicode="¡" horiz-adv-x="486" d="M94 898q0 33 12.5 62t33.5 50.5t48 34t56 12.5q30 0 56.5 -12.5t47 -34t32 -50.5t11.5 -62t-12 -62.5t-32.5 -51.5t-47.5 -34.5t-57 -12.5q-32 0 -59 12.5t-47 34.5t-31 51.5t-11 62.5zM96 -257l77 844h139l77 -844q3 -33 -5 -66t-26.5 -59.5t-47.5 -43.5t-68 -17 q-41 0 -70 17t-47 43.5t-25 59.5t-4 66z" /> +<glyph unicode="¢" horiz-adv-x="1157" d="M104 490q0 102 30.5 194.5t86.5 167t135 125.5t176 70l-1 235h181l-2 -229q80 -9 140 -35t100.5 -63.5t60.5 -83.5t20 -95q0 -31 -9.5 -59t-28 -49t-45.5 -33t-61 -12q-38 0 -63 13t-41 32.5t-22.5 43t-6.5 44.5q0 18 6 43.5t19 45.5q-11 20 -28.5 33t-37 21t-39 11 t-34.5 3q-52 0 -95 -23.5t-74.5 -70t-49 -114.5t-17.5 -157q0 -78 14.5 -150t47.5 -127t87 -88t133 -33q41 0 82.5 11.5t79.5 32t72.5 49.5t61.5 64l94 -91q-45 -62 -92 -105.5t-95 -72t-96 -43.5t-95 -21l-1 -254h-169l-1 254q-90 12 -167 52t-134 106t-89.5 156t-32.5 202 z" /> +<glyph unicode="£" horiz-adv-x="1173" d="M105 81q0 30 13.5 58.5t37 53.5t56 45t70.5 34q7 13 13.5 31.5t11.5 38.5t8 39.5t3 35.5q0 52 -7 96.5t-18 86.5l-161 -3v171h115q-11 45 -17.5 94.5t-6.5 110.5q0 118 35.5 210t95 155t137.5 96t163 33q95 0 161 -25t107 -63t59.5 -82.5t18.5 -83.5q0 -31 -9 -59 t-26.5 -49t-43 -33t-58.5 -12q-36 0 -61.5 13t-41.5 32t-23.5 40.5t-7.5 39.5q0 27 7.5 55t27.5 52q-10 12 -31.5 22t-56.5 10q-55 0 -92 -25.5t-59.5 -65.5t-32 -89t-9.5 -96q0 -81 9 -150t21 -130h322v-158l-290 -6q3 -15 4.5 -32t1.5 -34q0 -75 -34 -145t-105 -119v-2 q49 20 89 26.5t75 6.5q57 0 101 -16t80 -35.5t66 -35.5t59 -16q23 0 45.5 28.5t26.5 89.5h134q-3 -76 -19.5 -140.5t-46 -112t-72.5 -74t-100 -26.5q-41 0 -79.5 13t-75.5 33t-73 43.5t-74 42.5t-77.5 33t-81.5 16q-9 -38 -26.5 -70.5t-40 -57.5t-49 -39t-53.5 -14 q-32 0 -54 9.5t-35.5 25.5t-19.5 36.5t-6 42.5z" /> +<glyph unicode="¤" horiz-adv-x="1160" d="M128 175l118 134q-55 96 -55 211q0 57 15.5 112.5t44.5 106.5l-123 141l148 119l102 -128q42 26 92 41t110 15t110 -15.5t92 -41.5l102 128l148 -118l-124 -141q61 -104 61 -219t-55 -211l118 -134l-148 -119l-98 123q-86 -53 -207 -53q-60 0 -111.5 13.5t-93.5 38.5 l-97 -122zM441 550q0 -38 6 -85t22 -87.5t42.5 -68t68.5 -27.5t69 27.5t42.5 68t22 87.5t6.5 85q0 30 -7 69t-23.5 74t-43 59.5t-66.5 24.5t-66.5 -24.5t-42.5 -59.5t-23 -74t-7 -69z" /> +<glyph unicode="¥" horiz-adv-x="1479" d="M65 1276v158h603v-135q-6 0 -11.5 0.5t-10.5 0.5q-57 0 -91.5 -20.5t-34.5 -61.5q0 -32 27 -77l157 -257q7 -12 21 -35.5t29.5 -52t30 -57t22.5 -50.5h3q19 46 96 198l106 209q8 16 21 41t28 52t30 52t29 41v2l-157 -8v158h452v-135q-36 -6 -65.5 -20t-56.5 -39.5 t-53.5 -64.5t-56.5 -95l-203 -383h140v-151h-204v-108h204v-152h-205q-1 -43 -2.5 -78.5t-4.5 -55.5l164 6v-158h-598v135q33 1 58.5 5.5t43.5 19t29 43.5t14 80l-223 -1v159h224v102h-224v158h100l-254 386q-15 24 -29.5 51t-25 53.5t-17 50t-6.5 40.5z" /> +<glyph unicode="¦" horiz-adv-x="507" d="M138 231h231l-8 -786h-217zM138 1557h231l-8 -790h-217z" /> +<glyph unicode="§" horiz-adv-x="1124" d="M90 609q0 81 43 163.5t116 151.5q-48 60 -64.5 125t-16.5 125q0 39 9.5 82.5t30 86t53 81t77.5 68t103.5 47t132.5 17.5q84 0 154 -24.5t120 -63.5t77.5 -88.5t27.5 -99.5q0 -30 -8.5 -56t-25 -46t-41 -31.5t-55.5 -11.5q-35 0 -59 12t-39 30t-22 38.5t-7 37.5 q0 22 5 43.5t18 41.5q-15 32 -53 52t-84 20q-47 0 -81.5 -15.5t-57 -39.5t-34 -54t-12.5 -60q1 -46 18 -84.5t44.5 -71.5t63 -61t74 -53.5t77.5 -48t74 -44.5q55 -36 107 -77.5t92 -92t64 -111.5t24 -134q0 -40 -12 -81.5t-33 -82.5t-50 -80t-64 -74q13 -20 27.5 -43.5 t26.5 -50.5t20 -59t8 -69q0 -59 -22.5 -127t-71.5 -126.5t-127.5 -97.5t-190.5 -39q-84 0 -154 24.5t-120 63.5t-77.5 88.5t-27.5 99.5q0 30 8.5 56t25 46t40.5 31.5t55 11.5q35 0 59.5 -12.5t39.5 -30.5t22 -38.5t7 -36.5q0 -22 -5 -43.5t-18 -41.5q7 -17 21.5 -30 t34 -22.5t42 -14.5t45.5 -5q47 0 82 14.5t58 38t34 53t11 60.5q0 42 -17 78t-45 68t-64 59.5t-74 52t-75.5 46t-68.5 41.5q-56 36 -109.5 78t-94.5 92.5t-66 112t-25 136.5zM325 678q0 -47 23 -88.5t60.5 -78.5t85.5 -70.5t97.5 -64.5t97 -59.5t84.5 -56.5q14 30 22 65.5 t8 67.5q0 47 -23 88.5t-60.5 78.5t-85.5 70t-97.5 63.5t-97 59t-84.5 56.5q-15 -31 -22.5 -64.5t-7.5 -66.5z" /> +<glyph unicode="¨" horiz-adv-x="874" d="M123 1382q0 32 11 60.5t30 49.5t44 33.5t52 12.5q29 0 54 -12.5t43 -33.5t28 -49.5t10 -60.5t-11 -60t-29.5 -49t-43.5 -33t-52 -12q-28 0 -52.5 12t-43 33t-29.5 49t-11 60zM479 1382q0 32 11 60.5t30 49.5t44 33.5t52 12.5q29 0 54 -12.5t43 -33.5t28 -49.5t10 -60.5 t-11 -60t-29.5 -49t-43.5 -33t-52 -12q-28 0 -52.5 12t-43 33t-29.5 49t-11 60z" /> +<glyph unicode="©" horiz-adv-x="1874" d="M95 697q0 117 29 225t83 202.5t130 172t170.5 133t204.5 86t232 30.5q123 0 233 -30.5t203 -86.5t167 -134t126 -172.5t79.5 -203t27.5 -225.5q0 -116 -29.5 -223.5t-84 -201t-130.5 -170t-169.5 -131t-201 -84.5t-224.5 -30q-188 0 -344 63t-267.5 175.5t-173 267 t-61.5 337.5zM240 697q0 -99 22 -191t64.5 -172.5t104 -147t140 -114t173 -74t203.5 -26.5q159 0 286.5 57.5t217 156.5t138 230.5t48.5 280.5q0 99 -22 191.5t-64.5 173.5t-103.5 148.5t-138 116t-169.5 75t-198.5 26.5q-105 0 -197.5 -26.5t-170.5 -75t-139.5 -115.5 t-104.5 -148.5t-66 -174t-23 -191.5zM464 693q0 59 13 120t39 118.5t65 107.5t91.5 87.5t118.5 59.5t145 22q69 0 128.5 -14.5t117.5 -56.5q-1 6 -1.5 16t-1 19.5t-0.5 17.5v11h156v-359h-136q-8 61 -29.5 104t-53 69.5t-69.5 38.5t-79 12q-54 0 -101.5 -26t-83 -73 t-55.5 -111.5t-20 -140.5q0 -71 21 -133.5t61 -109t98 -74t132 -27.5q72 0 142.5 38t130.5 112l97 -93q-51 -70 -109 -115.5t-116 -72.5t-112.5 -37.5t-97.5 -10.5q-107 0 -197 39t-155 106.5t-102 159t-37 196.5z" /> +<glyph unicode="ª" horiz-adv-x="790" d="M72 916q0 58 33.5 100t86 70t118 43.5t130.5 20.5v89q0 20 -2 40t-9.5 36.5t-23 27t-42.5 10.5q-20 0 -40.5 -6.5t-34.5 -20.5q8 -12 11.5 -29t3.5 -30q0 -15 -5.5 -33t-18 -33t-32 -25.5t-47.5 -10.5q-48 0 -73 29t-25 71q0 39 21.5 75.5t59.5 64.5t90.5 45t114.5 17 q121 0 186.5 -64t65.5 -203q0 -26 -0.5 -56t-0.5 -61t-0.5 -61t-0.5 -55q0 -10 1 -22t5 -23t11 -18.5t19 -7.5q8 0 16 1.5t19 9.5l40 -60q-31 -42 -75.5 -68.5t-89.5 -26.5q-22 0 -43 7t-38.5 21.5t-29 36.5t-14.5 52h-2q-15 -29 -37 -50.5t-47.5 -36.5t-51.5 -22.5 t-48 -7.5q-97 0 -149 42.5t-52 121.5zM282 950q2 -18 15.5 -32t42.5 -14q50 0 100 50v99q-30 -3 -58 -10.5t-50.5 -20t-36 -29.5t-13.5 -38v-5z" /> +<glyph unicode="«" horiz-adv-x="1011" d="M41 525v48l547 569l97 -99l-387 -497v-2l380 -476l-96 -94zM491 530v47l349 409l96 -79l-205 -345v-3l202 -346l-95 -80z" /> +<glyph unicode="¬" horiz-adv-x="1190" d="M129 541v200l921 -5v-430h-179l-6 238z" /> +<glyph unicode="­" horiz-adv-x="957" d="M103 547v214h751v-207z" /> +<glyph unicode="®" horiz-adv-x="1874" d="M95 697q0 117 29 225t83 202.5t130 172t170.5 133t204.5 86t232 30.5q123 0 233 -30.5t203 -86.5t167 -134t126 -172.5t79.5 -203t27.5 -225.5q0 -116 -29.5 -223.5t-84 -201t-130.5 -170t-169.5 -131t-201 -84.5t-224.5 -30q-188 0 -344 63t-267.5 175.5t-173 267 t-61.5 337.5zM240 697q0 -99 22 -191t64.5 -172.5t104 -147t140 -114t173 -74t203.5 -26.5q159 0 286.5 57.5t217 156.5t138 230.5t48.5 280.5q0 99 -22 191.5t-64.5 173.5t-103.5 148.5t-138 116t-169.5 75t-198.5 26.5q-105 0 -197.5 -26.5t-170.5 -75t-139.5 -115.5 t-104.5 -148.5t-66 -174t-23 -191.5zM534 241v90q24 1 42 4.5t30.5 15.5t19 35.5t6.5 65.5v518q0 40 2 74.5t4 51.5l-104 -4v107l387 1q88 0 160 -15t123.5 -48t79.5 -86.5t28 -131.5q0 -46 -12 -89t-39 -80t-71 -66t-107 -47v-1q26 -11 45 -34.5t37 -52.5l55 -88 q23 -35 40 -59t33 -39.5t33.5 -23t41.5 -8.5v-90h-215q-24 19 -51 51.5t-53 77.5q-46 77 -71 121t-38 67.5t-18 33t-11 17.5q-11 -1 -20.5 -1h-18.5h-18.5t-20.5 1v-141q0 -37 -0.5 -72t-1.5 -52l116 4v-107h-413zM833 731q17 -4 28.5 -5t28.5 -1q103 0 155.5 49.5 t52.5 140.5q0 60 -20 94t-48.5 51t-59.5 21.5t-52 4.5q-42 0 -63.5 -22.5t-21.5 -88.5v-244z" /> +<glyph unicode="¯" horiz-adv-x="766" d="M92 1285v196h582v-189z" /> +<glyph unicode="°" horiz-adv-x="782" d="M58 1139q0 70 27 130t73 104t107 69t129 25q76 0 137.5 -25t104.5 -69t66.5 -104t23.5 -130t-27 -130.5t-73 -105t-107.5 -70t-129.5 -25.5q-76 0 -137 25.5t-104 70t-66.5 105t-23.5 130.5zM232 1139q0 -37 11.5 -70.5t32.5 -58.5t50.5 -40t65.5 -15t65.5 15t50.5 40 t32.5 58.5t11.5 70.5t-11.5 70t-32.5 58.5t-51 40.5t-66 15q-35 0 -64.5 -15t-50.5 -40.5t-32.5 -58.5t-11.5 -70z" /> +<glyph unicode="±" horiz-adv-x="1139" d="M109 1v180l921 8v-188h-921zM109 564v196l357 -2v296h205v-296l359 -1v-189l-359 -2v-312h-205v311z" /> +<glyph unicode="²" horiz-adv-x="767" d="M88 1264q0 31 18 66.5t53 66t87 50.5t121 20q52 0 103 -12t91 -38t64.5 -67.5t24.5 -101.5q0 -54 -27.5 -98.5t-72 -86.5t-100 -84.5t-112.5 -93.5q-15 -13 -25 -24t-17.5 -22t-14 -22.5t-13.5 -25.5l252 -5q27 -1 43.5 12.5t16.5 63.5h97l-11 -244h-571q1 71 18 125.5 t45 99t64.5 82t77.5 73.5q39 35 64 68.5t39 63.5t19 56t5 46q0 63 -26 89.5t-71 26.5q-20 0 -41 -10t-29 -23q17 -14 22.5 -33.5t5.5 -30.5q0 -14 -5.5 -31t-18 -31.5t-32.5 -24.5t-48 -10q-48 2 -72 33.5t-24 76.5z" /> +<glyph unicode="³" horiz-adv-x="748" d="M74 797q0 23 7.5 44.5t21.5 37.5t34 25.5t44 9.5q27 0 45 -9.5t29 -24t15.5 -32.5t4.5 -36q0 -6 -1.5 -15t-5 -19.5t-9 -20.5t-13.5 -17q7 -11 19 -17t25 -9.5t25.5 -4.5t20.5 -1q60 0 94 38.5t34 99.5q0 65 -41 106.5t-122 41.5q-16 0 -36.5 -1t-32.5 -2v111l36 -2 t35 -1q39 0 65 13t41 33.5t21.5 45.5t6.5 49q0 55 -27.5 85.5t-78.5 30.5q-27 0 -45.5 -8.5t-26.5 -15.5q17 -14 22.5 -33.5t5.5 -30.5q0 -14 -5 -31t-17 -31.5t-31 -24.5t-47 -10q-48 2 -74 30.5t-26 73.5q0 29 16.5 63t50.5 62.5t86 47.5t124 19q59 0 109.5 -13t87.5 -40 t58 -67.5t21 -94.5q0 -29 -12 -58t-33 -54t-49 -43t-60 -26v-2q102 -20 147.5 -76.5t45.5 -140.5q0 -54 -21.5 -100.5t-63.5 -80.5t-104.5 -53.5t-144.5 -19.5q-63 0 -113.5 17t-85.5 44.5t-53.5 63.5t-18.5 74z" /> +<glyph unicode="´" horiz-adv-x="578" d="M90 1241l168 286q21 34 53.5 54.5t67.5 20.5q24 0 43.5 -9.5t34 -25t22.5 -35.5t8 -40q0 -32 -15 -63.5t-39 -54.5l-249 -216z" /> +<glyph unicode="µ" horiz-adv-x="1253" d="M172 -341l1 1365h255v-558q0 -69 9 -125t27 -96t46 -62t66 -22t86.5 17t86.5 59v787h256l-2 -733q0 -12 0.5 -30t5 -34.5t14.5 -28t30 -11.5q14 0 32.5 7t42.5 29l69 -86q-18 -25 -44.5 -51t-59 -47.5t-69.5 -35.5t-76 -14q-60 0 -106 30.5t-63 100.5h-2 q-60 -73 -121.5 -112t-118.5 -39q-106 0 -165 143h-2q4 -85 16.5 -164.5t26 -147t24 -119.5t10.5 -81t-6.5 -57t-22 -49.5t-40.5 -35t-62 -13.5q-39 0 -66.5 15.5t-45 43.5t-25 67.5t-7.5 87.5z" /> +<glyph unicode="¶" horiz-adv-x="1174" d="M83 1125q0 79 26.5 137t70.5 96t100 57t115 19h599v-1956h-232l3 1814l-192 -2q0 -137 -0.5 -287t-0.5 -305.5t-1 -314.5t-1 -314.5t-0.5 -305t-0.5 -285.5h-230l5 1343q-50 9 -96.5 29t-83.5 56t-59 89.5t-22 129.5z" /> +<glyph unicode="·" horiz-adv-x="463" d="M83 699q0 33 12 62.5t32.5 51.5t47.5 34.5t57 12.5q32 0 59 -12.5t47 -34.5t31 -51.5t11 -62.5t-10.5 -62t-29 -50.5t-45.5 -34t-60 -12.5q-34 0 -62 12.5t-48 34t-31 50.5t-11 62z" /> +<glyph unicode="¸" horiz-adv-x="665" d="M92 -424q16 3 40.5 8t52 12.5t55 17.5t49.5 23.5t35.5 30.5t13.5 38q0 27 -17 38t-40 11t-45.5 -8t-36.5 -19l-76 32l63 260h156l-60 -161h2q13 7 31 13t37.5 10t38 6.5t33.5 2.5q31 -1 58.5 -9.5t47.5 -26t31.5 -44t11.5 -63.5q0 -48 -23.5 -85.5t-62 -66.5t-88 -50.5 t-101 -36.5t-101.5 -24.5t-89 -14.5z" /> +<glyph unicode="¹" horiz-adv-x="569" d="M42 1271l300 196h71v-658q0 -32 -1 -61t-3 -44l88 3v-90h-365v77q19 1 34.5 4t26 13t16 30t5.5 55v471l-131 -76z" /> +<glyph unicode="º" horiz-adv-x="775" d="M62 1092q0 79 23 148t65.5 119t103.5 79t137 29q75 0 134.5 -26.5t101 -74t63.5 -113t22 -144.5q0 -80 -22.5 -147t-65 -115t-103 -74.5t-135.5 -26.5q-74 0 -134 26t-102 72t-65 109.5t-23 138.5zM281 1126q0 -128 27.5 -196.5t87.5 -68.5q49 2 76 58.5t27 167.5 q0 62 -6 112t-19 84.5t-34 53t-52 18.5q-51 -2 -79 -58.5t-28 -170.5z" /> +<glyph unicode="»" horiz-adv-x="1011" d="M75 201l205 345v3l-202 346l95 80l347 -397v-47l-349 -409zM326 65l387 497v2l-380 476l96 94l541 -551v-48l-547 -569z" /> +<glyph unicode="¼" horiz-adv-x="1621" d="M77 1271l300 196h71v-658q0 -32 -1 -61t-3 -44l88 3v-90h-365v77q19 1 34.5 4t26 13t16 30t5.5 55v471l-131 -76zM271 66l907 1401l139 -110l-913 -1390zM907 200v120l436 522h71v-531h121v-115l-121 1v-13q0 -32 -1 -61t-3 -44l88 3v-90h-365v77q19 1 35 4t26.5 13 t16.5 30t6 55v27zM1043 317l178 -3l9 244h-2z" /> +<glyph unicode="½" horiz-adv-x="1705" d="M77 1271l300 196h71v-658q0 -32 -1 -61t-3 -44l88 3v-90h-365v77q19 1 34.5 4t26 13t16 30t5.5 55v471l-131 -76zM271 66l907 1401l139 -110l-913 -1390zM1022 637q0 31 18 66.5t53 66t87 50.5t121 20q52 0 103 -12t91 -38t64.5 -67.5t24.5 -101.5q0 -54 -27.5 -98.5 t-72 -86.5t-100 -84.5t-112.5 -93.5q-15 -13 -25 -24t-17.5 -22t-14 -22.5t-13.5 -25.5l252 -5q27 -1 43.5 12.5t16.5 63.5h97l-11 -244h-571q1 71 18 125.5t45 99t64.5 82t77.5 73.5q39 35 64 68.5t39 63.5t19 56t5 46q0 63 -26 89.5t-71 26.5q-20 0 -41 -10t-29 -23 q17 -14 22.5 -33.5t5.5 -30.5q0 -14 -5.5 -31t-18 -31.5t-32.5 -24.5t-48 -10q-48 2 -72 33.5t-24 76.5z" /> +<glyph unicode="¾" horiz-adv-x="1755" d="M90 797q0 23 7.5 44.5t21.5 37.5t34 25.5t44 9.5q27 0 45 -9.5t29 -24t15.5 -32.5t4.5 -36q0 -6 -1.5 -15t-5 -19.5t-9 -20.5t-13.5 -17q7 -11 19 -17t25 -9.5t25.5 -4.5t20.5 -1q60 0 94 38.5t34 99.5q0 65 -41 106.5t-122 41.5q-16 0 -36.5 -1t-32.5 -2v111l36 -2 t35 -1q39 0 65 13t41 33.5t21.5 45.5t6.5 49q0 55 -27.5 85.5t-78.5 30.5q-27 0 -45.5 -8.5t-26.5 -15.5q17 -14 22.5 -33.5t5.5 -30.5q0 -14 -5 -31t-17 -31.5t-31 -24.5t-47 -10q-48 2 -74 30.5t-26 73.5q0 29 16.5 63t50.5 62.5t86 47.5t124 19q59 0 109.5 -13t87.5 -40 t58 -67.5t21 -94.5q0 -29 -12 -58t-33 -54t-49 -43t-60 -26v-2q102 -20 147.5 -76.5t45.5 -140.5q0 -54 -21.5 -100.5t-63.5 -80.5t-104.5 -53.5t-144.5 -19.5q-63 0 -113.5 17t-85.5 44.5t-53.5 63.5t-18.5 74zM405 66l907 1401l139 -110l-913 -1390zM1045 200v120l436 522 h71v-531h121v-115l-121 1v-13q0 -32 -1 -61t-3 -44l88 3v-90h-365v77q19 1 35 4t26.5 13t16.5 30t6 55v27zM1181 317l178 -3l9 244h-2z" /> +<glyph unicode="¿" horiz-adv-x="1010" d="M82 -117q0 72 31.5 133t79 113.5t102.5 97t102.5 83.5t79 73.5t31.5 67.5q0 26 -19.5 43t-61.5 17q-14 0 -29.5 -1.5t-33.5 -6.5l-32 105q26 14 53.5 22.5t54 13.5t51 7t43.5 2q33 0 65 -7.5t57 -24.5t40.5 -44t15.5 -66q0 -25 -6.5 -48t-25 -51t-51 -64.5t-84.5 -87.5 q-36 -36 -66 -71t-51.5 -74.5t-34 -85.5t-12.5 -105q0 -48 8 -89t28 -71t53.5 -47t85.5 -17q25 0 49 6t44.5 15.5t36.5 21t26 23.5q-21 21 -29.5 51t-8.5 51q0 20 7.5 44t23.5 45t41.5 35.5t60.5 14.5t61 -11t43 -30.5t25 -46.5t8 -58q0 -55 -32.5 -109t-89.5 -97.5 t-135 -70.5t-170 -27q-121 0 -204.5 28t-134.5 74t-73.5 104.5t-22.5 119.5zM364 898q0 33 12.5 62t33.5 50.5t48 34t56 12.5q30 0 56.5 -12.5t47 -34t32 -50.5t11.5 -62t-12 -62.5t-32.5 -51.5t-47.5 -34.5t-57 -12.5q-32 0 -59 12.5t-47 34.5t-31 51.5t-11 62.5z" /> +<glyph unicode="À" d="M8 0v141q43 0 72.5 19.5t51.5 51.5t39 74.5t34 88.5l400 1095h142l437 -1116q6 -15 14.5 -40t17.5 -53.5t16 -57t10 -51.5l118 6v-158h-552v135q55 0 77 21.5t22 58.5q0 21 -6 46.5t-16 54.5l-41 112l-445 -8l-33 -96l-12.5 -35t-17 -44.5t-19 -46t-16.5 -40.5l146 6 v-164h-439zM326 1870q0 22 9 41t24 32.5t33.5 21.5t37.5 8q31 0 61.5 -14.5t54.5 -39.5l235 -242l-73 -101l-299 169q-35 21 -59 54t-24 71zM451 573h341l-93 257q-27 75 -48 148.5t-31 130.5h-2q-8 -35 -25 -104t-50 -166z" /> +<glyph unicode="Á" d="M8 0v141q43 0 72.5 19.5t51.5 51.5t39 74.5t34 88.5l400 1095h142l437 -1116q6 -15 14.5 -40t17.5 -53.5t16 -57t10 -51.5l118 6v-158h-552v135q55 0 77 21.5t22 58.5q0 21 -6 46.5t-16 54.5l-41 112l-445 -8l-33 -96l-12.5 -35t-17 -44.5t-19 -46t-16.5 -40.5l146 6 v-164h-439zM451 573h341l-93 257q-27 75 -48 148.5t-31 130.5h-2q-8 -35 -25 -104t-50 -166zM585 1677l235 242q24 25 54 39.5t61 14.5q19 0 37.5 -7.5t33.5 -21.5t24 -33t9 -42q0 -38 -23.5 -70t-58.5 -54l-299 -169z" /> +<glyph unicode="Â" d="M8 0v141q43 0 72.5 19.5t51.5 51.5t39 74.5t34 88.5l400 1095h142l437 -1116q6 -15 14.5 -40t17.5 -53.5t16 -57t10 -51.5l118 6v-158h-552v135q55 0 77 21.5t22 58.5q0 21 -6 46.5t-16 54.5l-41 112l-445 -8l-33 -96l-12.5 -35t-17 -44.5t-19 -46t-16.5 -40.5l146 6 v-164h-439zM245 1681l418 307h40l400 -307l-64 -95l-365 178l-374 -175zM451 573h341l-93 257q-27 75 -48 148.5t-31 130.5h-2q-8 -35 -25 -104t-50 -166z" /> +<glyph unicode="Ã" d="M8 0v141q43 0 72.5 19.5t51.5 51.5t39 74.5t34 88.5l400 1095h142l437 -1116q6 -15 14.5 -40t17.5 -53.5t16 -57t10 -51.5l118 6v-158h-552v135q55 0 77 21.5t22 58.5q0 21 -6 46.5t-16 54.5l-41 112l-445 -8l-33 -96l-12.5 -35t-17 -44.5t-19 -46t-16.5 -40.5l146 6 v-164h-439zM248 1702q23 57 55.5 98.5t70 68t77 39.5t76.5 13q51 0 89.5 -16t72 -34.5t66.5 -34.5t72 -16q21 0 44 10t45.5 27.5t42.5 42t35 53.5l116 -64q-27 -80 -61 -130t-71 -78.5t-73.5 -39t-67.5 -10.5q-48 0 -85 16t-71 34.5t-69 34.5t-77 16q-39 0 -85 -22t-88 -83z M451 573h341l-93 257q-27 75 -48 148.5t-31 130.5h-2q-8 -35 -25 -104t-50 -166z" /> +<glyph unicode="Ä" d="M8 0v141q43 0 72.5 19.5t51.5 51.5t39 74.5t34 88.5l400 1095h142l437 -1116q6 -15 14.5 -40t17.5 -53.5t16 -57t10 -51.5l118 6v-158h-552v135q55 0 77 21.5t22 58.5q0 21 -6 46.5t-16 54.5l-41 112l-445 -8l-33 -96l-12.5 -35t-17 -44.5t-19 -46t-16.5 -40.5l146 6 v-164h-439zM362 1786q0 32 11.5 60.5t30.5 50t44 34t52 12.5q28 0 53 -12.5t43 -34t28.5 -50t10.5 -60.5t-11 -60t-30 -49t-44 -33t-52 -12t-52 12t-43.5 33t-29.5 49t-11 60zM451 573h341l-93 257q-27 75 -48 148.5t-31 130.5h-2q-8 -35 -25 -104t-50 -166zM719 1786 q0 32 11.5 60.5t30.5 50t44 34t52 12.5q28 0 53 -12.5t43 -34t28.5 -50t10.5 -60.5t-11 -60t-30 -49t-44 -33t-52 -12t-52 12t-43.5 33t-29.5 49t-11 60z" /> +<glyph unicode="Å" d="M8 0v141q43 0 72.5 19.5t51.5 51.5t39 74.5t34 88.5l400 1095h142l437 -1116q6 -15 14.5 -40t17.5 -53.5t16 -57t10 -51.5l118 6v-158h-552v135q55 0 77 21.5t22 58.5q0 21 -6 46.5t-16 54.5l-41 112l-445 -8l-33 -96l-12.5 -35t-17 -44.5t-19 -46t-16.5 -40.5l146 6 v-164h-439zM392 1799q0 58 24 106.5t63 83t87.5 53.5t96.5 19q47 0 96 -15.5t88.5 -47.5t65 -80.5t25.5 -114.5q0 -62 -24.5 -111.5t-63.5 -83.5t-87.5 -52t-96.5 -18q-50 0 -99 15.5t-88 47.5t-63 81t-24 117zM451 573h341l-93 257q-27 75 -48 148.5t-31 130.5h-2 q-8 -35 -25 -104t-50 -166zM574 1813q0 -80 27 -122.5t70 -42.5q36 0 60 30.5t24 96.5q0 87 -24 132t-66 45h-9q-37 -3 -59.5 -39.5t-22.5 -99.5z" /> +<glyph unicode="Æ" horiz-adv-x="1915" d="M-12 0v135q36 0 69 20t63 51t58 69t54 75l660 929q0 1 0.5 1.5t0.5 1.5l-154 -6v158h1025l12 -397h-135q0 80 -22 131.5t-56.5 81t-77 40.5t-83.5 11l-84 -2q-32 -1 -57.5 -6.5t-43 -23.5t-27 -53t-9.5 -95v-307h241l-9 177h158v-498h-135q0 60 -13.5 95.5t-37 54 t-55.5 25t-79 5.5l-70 -1v-336q0 -28 -0.5 -54.5t-1.5 -50.5t-2.5 -43.5t-3.5 -32.5l275 1q45 0 90 15t80 49.5t57 91t22 139.5h135l-12 -451h-1081v135q34 2 61.5 6.5t46 22t28.5 52.5t10 97v111l-401 -10l-72 -105q-33 -48 -65 -89.5t-65 -66.5v-2l164 7v-158h-458z M583 565h302v177q0 66 2.5 137t9.5 146q-38 -58 -75 -114t-73 -108z" /> +<glyph unicode="Ç" horiz-adv-x="1410" d="M72 696q0 93 20 186.5t59.5 179t99.5 159.5t139.5 129t179 86t218.5 31q40 0 84.5 -6.5t90.5 -19.5t91 -31.5t86 -43.5h2l-7 87h158v-479h-134q-28 171 -113 257.5t-231 86.5q-107 0 -186.5 -49t-131.5 -130t-77.5 -185.5t-25.5 -215.5q0 -133 28.5 -244t83 -191.5 t134.5 -125t184 -44.5q64 0 129 17t126 49.5t115.5 79.5t97.5 106l98 -90q-75 -104 -157 -168t-163 -99.5t-157 -48t-139 -12.5q-5 0 -9.5 0.5t-9.5 0.5l-40 -106h2q13 7 31 13t37.5 10t38 6.5t33.5 2.5q31 -1 59.5 -11t49.5 -28.5t33.5 -46.5t12.5 -65q0 -48 -24 -87.5 t-63 -72t-89 -57.5t-102.5 -43t-103 -29.5t-89.5 -16.5l-16 112q16 3 40.5 9.5t52 16.5t54.5 23t49 29t35.5 34.5t13.5 39.5q0 28 -15.5 39t-37.5 11t-46 -9t-39 -21l-85 32l55 233q-122 28 -220 93.5t-167 158.5t-106 210t-37 248z" /> +<glyph unicode="È" horiz-adv-x="1278" d="M102 0v135q34 2 61.5 7t46 22t28.5 52t10 97v785q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h1025l12 -397h-135q0 83 -23.5 135t-59.5 81t-80 39t-86 9l-74 -2q-32 -1 -57.5 -6.5t-43 -23.5t-27 -53t-9.5 -95v-307h241l-9 177h158v-498h-135q0 64 -16 101 t-43 55t-63.5 21.5t-78.5 2.5l-54 -1v-336q0 -28 -0.5 -54.5t-1.5 -50.5t-2.5 -43.5t-3.5 -32.5l275 1q45 0 90 15t80 49.5t57 91t22 139.5h135l-12 -451h-1081zM351 1870q0 22 9 41t24 32.5t33.5 21.5t37.5 8q31 0 61.5 -14.5t54.5 -39.5l235 -242l-73 -101l-299 169 q-35 21 -59 54t-24 71z" /> +<glyph unicode="É" horiz-adv-x="1278" d="M102 0v135q34 2 61.5 7t46 22t28.5 52t10 97v785q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h1025l12 -397h-135q0 83 -23.5 135t-59.5 81t-80 39t-86 9l-74 -2q-32 -1 -57.5 -6.5t-43 -23.5t-27 -53t-9.5 -95v-307h241l-9 177h158v-498h-135q0 64 -16 101 t-43 55t-63.5 21.5t-78.5 2.5l-54 -1v-336q0 -28 -0.5 -54.5t-1.5 -50.5t-2.5 -43.5t-3.5 -32.5l275 1q45 0 90 15t80 49.5t57 91t22 139.5h135l-12 -451h-1081zM481 1677l235 242q24 25 54 39.5t61 14.5q19 0 37.5 -7.5t33.5 -21.5t24 -33t9 -42q0 -38 -23.5 -70t-58.5 -54 l-299 -169z" /> +<glyph unicode="Ê" horiz-adv-x="1278" d="M102 0v135q34 2 61.5 7t46 22t28.5 52t10 97v785q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h1025l12 -397h-135q0 83 -23.5 135t-59.5 81t-80 39t-86 9l-74 -2q-32 -1 -57.5 -6.5t-43 -23.5t-27 -53t-9.5 -95v-307h241l-9 177h158v-498h-135q0 64 -16 101 t-43 55t-63.5 21.5t-78.5 2.5l-54 -1v-336q0 -28 -0.5 -54.5t-1.5 -50.5t-2.5 -43.5t-3.5 -32.5l275 1q45 0 90 15t80 49.5t57 91t22 139.5h135l-12 -451h-1081zM228 1681l418 307h40l400 -307l-64 -95l-365 178l-374 -175z" /> +<glyph unicode="Ë" horiz-adv-x="1278" d="M102 0v135q34 2 61.5 7t46 22t28.5 52t10 97v785q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h1025l12 -397h-135q0 83 -23.5 135t-59.5 81t-80 39t-86 9l-74 -2q-32 -1 -57.5 -6.5t-43 -23.5t-27 -53t-9.5 -95v-307h241l-9 177h158v-498h-135q0 64 -16 101 t-43 55t-63.5 21.5t-78.5 2.5l-54 -1v-336q0 -28 -0.5 -54.5t-1.5 -50.5t-2.5 -43.5t-3.5 -32.5l275 1q45 0 90 15t80 49.5t57 91t22 139.5h135l-12 -451h-1081zM331 1786q0 32 11.5 60.5t30.5 50t44 34t52 12.5q28 0 53 -12.5t43 -34t28.5 -50t10.5 -60.5t-11 -60t-30 -49 t-44 -33t-52 -12t-52 12t-43.5 33t-29.5 49t-11 60zM688 1786q0 32 11.5 60.5t30.5 50t44 34t52 12.5q28 0 53 -12.5t43 -34t28.5 -50t10.5 -60.5t-11 -60t-30 -49t-44 -33t-52 -12t-52 12t-43.5 33t-29.5 49t-11 60z" /> +<glyph unicode="Ì" horiz-adv-x="792" d="M73 1870q0 22 9 41t24 32.5t33.5 21.5t37.5 8q31 0 61.5 -14.5t54.5 -39.5l235 -242l-73 -101l-299 169q-35 21 -59 54t-24 71zM102 0v135q34 2 61.5 6.5t46 22t28.5 52.5t10 97v785q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h588v-135q-35 -2 -62 -7t-45.5 -22 t-28.5 -52t-10 -97v-785q0 -28 -0.5 -55t-1.5 -51.5t-2.5 -44.5t-3.5 -33l154 6v-158h-588z" /> +<glyph unicode="Í" horiz-adv-x="791" d="M102 0v135q34 2 61.5 6.5t46 22t28.5 52.5t10 97v785q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h588v-135q-35 -2 -62 -7t-45.5 -22t-28.5 -52t-10 -97v-785q0 -28 -0.5 -55t-1.5 -51.5t-2.5 -44.5t-3.5 -33l154 6v-158h-588zM250 1677l235 242q24 25 54 39.5 t61 14.5q19 0 37.5 -7.5t33.5 -21.5t24 -33t9 -42q0 -38 -23.5 -70t-58.5 -54l-299 -169z" /> +<glyph unicode="Î" horiz-adv-x="792" d="M51 1681l338 307h40l320 -307l-64 -95l-285 178l-294 -175zM102 0v135q34 2 61.5 6.5t46 22t28.5 52.5t10 97v785q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h588v-135q-35 -2 -62 -7t-45.5 -22t-28.5 -52t-10 -97v-785q0 -28 -0.5 -55t-1.5 -51.5t-2.5 -44.5 t-3.5 -33l154 6v-158h-588z" /> +<glyph unicode="Ï" horiz-adv-x="792" d="M94 1786q0 32 11.5 60.5t30.5 50t44 34t52 12.5q28 0 53 -12.5t43 -34t28.5 -50t10.5 -60.5t-11 -60t-30 -49t-44 -33t-52 -12t-52 12t-43.5 33t-29.5 49t-11 60zM102 0v135q34 2 61.5 6.5t46 22t28.5 52.5t10 97v785q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158 h588v-135q-35 -2 -62 -7t-45.5 -22t-28.5 -52t-10 -97v-785q0 -28 -0.5 -55t-1.5 -51.5t-2.5 -44.5t-3.5 -33l154 6v-158h-588zM451 1786q0 32 11.5 60.5t30.5 50t44 34t52 12.5q28 0 53 -12.5t43 -34t28.5 -50t10.5 -60.5t-11 -60t-30 -49t-44 -33t-52 -12t-52 12t-43.5 33 t-29.5 49t-11 60z" /> +<glyph unicode="Ð" horiz-adv-x="1555" d="M61 618v201h187v280q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158l597 2q135 0 245.5 -28.5t197.5 -78.5t151 -117.5t106 -146t62.5 -164t20.5 -170.5q0 -83 -19 -169.5t-59.5 -168t-103.5 -153t-151 -125t-202.5 -84.5t-257.5 -31h-587v135q34 2 61.5 6.5t46 22 t28.5 52.5t10 97v306zM536 153q7 1 16 1h20q19 0 41 -0.5t43.5 -1t41.5 -1t34 -0.5q112 0 192.5 45.5t132.5 121t77 172.5t25 199q0 157 -32.5 271t-93 188.5t-146.5 111.5t-192 40h-17q-34 0 -59 -6.5t-41.5 -25t-25 -53t-8.5 -89.5v-307h218v-192l-218 -3v-287 q0 -28 -0.5 -55t-1.5 -51.5t-2.5 -44.5t-3.5 -33z" /> +<glyph unicode="Ñ" horiz-adv-x="1583" d="M99 1276v158h321l626 -790q52 -66 85.5 -113.5t57.5 -82.5h2v650q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h466v-135q-35 -2 -62 -7t-45.5 -22t-28.5 -52t-10 -97v-1141h-174l-655 837q-52 67 -112 153h-2l3 -634q0 -28 -0.5 -55t-1.5 -51.5t-2.5 -44.5 t-3.5 -33l154 6v-158h-467v135q34 2 61.5 6.5t46 22t28.5 52.5t10 97l-5 785q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33zM372 1702q23 57 55.5 98.5t70 68t77 39.5t76.5 13q51 0 89.5 -16t72 -34.5t66.5 -34.5t72 -16q21 0 44 10t45.5 27.5t42.5 42t35 53.5l116 -64 q-27 -80 -61 -130t-71 -78.5t-73.5 -39t-67.5 -10.5q-48 0 -85 16t-71 34.5t-69 34.5t-77 16q-39 0 -85 -22t-88 -83z" /> +<glyph unicode="Ò" horiz-adv-x="1574" d="M72 717q0 86 19.5 175t59 172t99 156.5t139.5 128.5t180.5 86.5t221.5 31.5q124 0 225.5 -32t180.5 -87t136.5 -128.5t95.5 -156.5t56 -172t18 -174t-19.5 -173.5t-59 -171.5t-99 -157t-139.5 -129t-180 -87t-221 -32q-130 0 -233 31t-182.5 84.5t-136 126t-92 156 t-52.5 173.5t-17 179zM394 741q0 -65 9 -136t29 -140.5t52 -132.5t77.5 -110.5t106.5 -76t138 -28.5q71 0 126 24.5t96.5 66.5t70.5 98t47 118.5t26 129t8 128.5q0 138 -24 254.5t-74 201t-126 132t-180 47.5q-73 0 -129.5 -24.5t-99 -67.5t-71.5 -99.5t-47.5 -120.5 t-26.5 -131.5t-8 -132.5zM466 1870q0 22 9 41t24 32.5t33.5 21.5t37.5 8q31 0 61.5 -14.5t54.5 -39.5l235 -242l-73 -101l-299 169q-35 21 -59 54t-24 71z" /> +<glyph unicode="Ó" horiz-adv-x="1574" d="M72 717q0 86 19.5 175t59 172t99 156.5t139.5 128.5t180.5 86.5t221.5 31.5q124 0 225.5 -32t180.5 -87t136.5 -128.5t95.5 -156.5t56 -172t18 -174t-19.5 -173.5t-59 -171.5t-99 -157t-139.5 -129t-180 -87t-221 -32q-130 0 -233 31t-182.5 84.5t-136 126t-92 156 t-52.5 173.5t-17 179zM394 741q0 -65 9 -136t29 -140.5t52 -132.5t77.5 -110.5t106.5 -76t138 -28.5q71 0 126 24.5t96.5 66.5t70.5 98t47 118.5t26 129t8 128.5q0 138 -24 254.5t-74 201t-126 132t-180 47.5q-73 0 -129.5 -24.5t-99 -67.5t-71.5 -99.5t-47.5 -120.5 t-26.5 -131.5t-8 -132.5zM667 1677l235 242q24 25 54 39.5t61 14.5q19 0 37.5 -7.5t33.5 -21.5t24 -33t9 -42q0 -38 -23.5 -70t-58.5 -54l-299 -169z" /> +<glyph unicode="Ô" horiz-adv-x="1574" d="M72 717q0 86 19.5 175t59 172t99 156.5t139.5 128.5t180.5 86.5t221.5 31.5q124 0 225.5 -32t180.5 -87t136.5 -128.5t95.5 -156.5t56 -172t18 -174t-19.5 -173.5t-59 -171.5t-99 -157t-139.5 -129t-180 -87t-221 -32q-130 0 -233 31t-182.5 84.5t-136 126t-92 156 t-52.5 173.5t-17 179zM367 1681l418 307h40l400 -307l-64 -95l-365 178l-374 -175zM394 741q0 -65 9 -136t29 -140.5t52 -132.5t77.5 -110.5t106.5 -76t138 -28.5q71 0 126 24.5t96.5 66.5t70.5 98t47 118.5t26 129t8 128.5q0 138 -24 254.5t-74 201t-126 132t-180 47.5 q-73 0 -129.5 -24.5t-99 -67.5t-71.5 -99.5t-47.5 -120.5t-26.5 -131.5t-8 -132.5z" /> +<glyph unicode="Õ" horiz-adv-x="1574" d="M72 717q0 86 19.5 175t59 172t99 156.5t139.5 128.5t180.5 86.5t221.5 31.5q124 0 225.5 -32t180.5 -87t136.5 -128.5t95.5 -156.5t56 -172t18 -174t-19.5 -173.5t-59 -171.5t-99 -157t-139.5 -129t-180 -87t-221 -32q-130 0 -233 31t-182.5 84.5t-136 126t-92 156 t-52.5 173.5t-17 179zM353 1702q23 57 55.5 98.5t70 68t77 39.5t76.5 13q51 0 89.5 -16t72 -34.5t66.5 -34.5t72 -16q21 0 44 10t45.5 27.5t42.5 42t35 53.5l116 -64q-27 -80 -61 -130t-71 -78.5t-73.5 -39t-67.5 -10.5q-48 0 -85 16t-71 34.5t-69 34.5t-77 16 q-39 0 -85 -22t-88 -83zM394 741q0 -65 9 -136t29 -140.5t52 -132.5t77.5 -110.5t106.5 -76t138 -28.5q71 0 126 24.5t96.5 66.5t70.5 98t47 118.5t26 129t8 128.5q0 138 -24 254.5t-74 201t-126 132t-180 47.5q-73 0 -129.5 -24.5t-99 -67.5t-71.5 -99.5t-47.5 -120.5 t-26.5 -131.5t-8 -132.5z" /> +<glyph unicode="Ö" horiz-adv-x="1574" d="M72 717q0 86 19.5 175t59 172t99 156.5t139.5 128.5t180.5 86.5t221.5 31.5q124 0 225.5 -32t180.5 -87t136.5 -128.5t95.5 -156.5t56 -172t18 -174t-19.5 -173.5t-59 -171.5t-99 -157t-139.5 -129t-180 -87t-221 -32q-130 0 -233 31t-182.5 84.5t-136 126t-92 156 t-52.5 173.5t-17 179zM394 741q0 -65 9 -136t29 -140.5t52 -132.5t77.5 -110.5t106.5 -76t138 -28.5q71 0 126 24.5t96.5 66.5t70.5 98t47 118.5t26 129t8 128.5q0 138 -24 254.5t-74 201t-126 132t-180 47.5q-73 0 -129.5 -24.5t-99 -67.5t-71.5 -99.5t-47.5 -120.5 t-26.5 -131.5t-8 -132.5zM484 1786q0 32 11.5 60.5t30.5 50t44 34t52 12.5q28 0 53 -12.5t43 -34t28.5 -50t10.5 -60.5t-11 -60t-30 -49t-44 -33t-52 -12t-52 12t-43.5 33t-29.5 49t-11 60zM841 1786q0 32 11.5 60.5t30.5 50t44 34t52 12.5q28 0 53 -12.5t43 -34t28.5 -50 t10.5 -60.5t-11 -60t-30 -49t-44 -33t-52 -12t-52 12t-43.5 33t-29.5 49t-11 60z" /> +<glyph unicode="×" horiz-adv-x="1147" d="M92 302l328 321l-325 322l161 152l322 -325l335 335l138 -149l-328 -329l333 -342l-157 -153l-333 342l-328 -325z" /> +<glyph unicode="Ø" horiz-adv-x="1573" d="M72 717q0 86 19.5 175t59 172t99 156.5t139.5 128.5t180.5 86.5t221.5 31.5q90 0 166 -16.5t142 -46.5l121 207l162 -101l-124 -210q63 -57 109.5 -127t76.5 -145.5t44.5 -155t14.5 -155.5q0 -85 -19.5 -173.5t-59 -171.5t-99 -157t-139.5 -129t-180 -87t-221 -32 q-81 0 -151 12t-131 35l-127 -216l-152 102l118 202q-72 55 -123 126t-83.5 151t-48 166.5t-15.5 171.5zM394 741q0 -47 4.5 -98.5t15 -103t27 -102.5t39.5 -97l521 896q-45 39 -100.5 60t-123.5 21q-73 0 -129.5 -24.5t-99 -67t-72 -99.5t-48 -121t-26.5 -131.5t-8 -132.5z M602 183q43 -33 92 -49.5t112 -16.5q71 0 126 24.5t96.5 66.5t70.5 98t47 118.5t26 129t8 128.5q0 111 -15 206.5t-47 173.5z" /> +<glyph unicode="Ù" horiz-adv-x="1557" d="M53 1276v158h589v-135q-35 -2 -62 -7t-45.5 -22t-28.5 -52t-10 -97v-563q0 -134 29.5 -218.5t77.5 -132.5t109.5 -66t125.5 -18q80 0 143.5 27t107.5 81.5t67 137t23 192.5v537q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h474v-135q-35 -2 -62 -7t-45.5 -22 t-28.5 -52t-10 -97v-513q0 -177 -43.5 -299t-120 -198t-181 -110t-227.5 -34q-116 0 -204.5 22.5t-154 64t-110 99.5t-71.5 128.5t-38.5 151.5t-11.5 169v496q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33zM564 1870q0 22 9 41t24 32.5t33.5 21.5t37.5 8q31 0 61.5 -14.5 t54.5 -39.5l235 -242l-73 -101l-299 169q-35 21 -59 54t-24 71z" /> +<glyph unicode="Ú" horiz-adv-x="1557" d="M53 1276v158h589v-135q-35 -2 -62 -7t-45.5 -22t-28.5 -52t-10 -97v-563q0 -134 29.5 -218.5t77.5 -132.5t109.5 -66t125.5 -18q80 0 143.5 27t107.5 81.5t67 137t23 192.5v537q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h474v-135q-35 -2 -62 -7t-45.5 -22 t-28.5 -52t-10 -97v-513q0 -177 -43.5 -299t-120 -198t-181 -110t-227.5 -34q-116 0 -204.5 22.5t-154 64t-110 99.5t-71.5 128.5t-38.5 151.5t-11.5 169v496q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33zM680 1677l235 242q24 25 54 39.5t61 14.5q19 0 37.5 -7.5t33.5 -21.5 t24 -33t9 -42q0 -38 -23.5 -70t-58.5 -54l-299 -169z" /> +<glyph unicode="Û" horiz-adv-x="1557" d="M53 1276v158h589v-135q-35 -2 -62 -7t-45.5 -22t-28.5 -52t-10 -97v-563q0 -134 29.5 -218.5t77.5 -132.5t109.5 -66t125.5 -18q80 0 143.5 27t107.5 81.5t67 137t23 192.5v537q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h474v-135q-35 -2 -62 -7t-45.5 -22 t-28.5 -52t-10 -97v-513q0 -177 -43.5 -299t-120 -198t-181 -110t-227.5 -34q-116 0 -204.5 22.5t-154 64t-110 99.5t-71.5 128.5t-38.5 151.5t-11.5 169v496q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33zM406 1681l418 307h40l400 -307l-64 -95l-365 178l-374 -175z" /> +<glyph unicode="Ü" horiz-adv-x="1557" d="M53 1276v158h589v-135q-35 -2 -62 -7t-45.5 -22t-28.5 -52t-10 -97v-563q0 -134 29.5 -218.5t77.5 -132.5t109.5 -66t125.5 -18q80 0 143.5 27t107.5 81.5t67 137t23 192.5v537q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h474v-135q-35 -2 -62 -7t-45.5 -22 t-28.5 -52t-10 -97v-513q0 -177 -43.5 -299t-120 -198t-181 -110t-227.5 -34q-116 0 -204.5 22.5t-154 64t-110 99.5t-71.5 128.5t-38.5 151.5t-11.5 169v496q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33zM527 1786q0 32 11.5 60.5t30.5 50t44 34t52 12.5q28 0 53 -12.5t43 -34 t28.5 -50t10.5 -60.5t-11 -60t-30 -49t-44 -33t-52 -12t-52 12t-43.5 33t-29.5 49t-11 60zM884 1786q0 32 11.5 60.5t30.5 50t44 34t52 12.5q28 0 53 -12.5t43 -34t28.5 -50t10.5 -60.5t-11 -60t-30 -49t-44 -33t-52 -12t-52 12t-43.5 33t-29.5 49t-11 60z" /> +<glyph unicode="Ý" horiz-adv-x="1365" d="M7 1276v158h603v-135q-6 0 -11.5 0.5t-11.5 0.5q-57 0 -90 -20.5t-33 -60.5q1 -17 6 -36.5t19 -41.5l157 -257l21 -36t29.5 -52.5t30 -57.5t22.5 -51h3q10 23 34 72.5t62 127.5l106 209q8 16 21 41t28 52t30 52t29 41v2l-157 -8v158h452v-135q-36 -6 -65.5 -20 t-56.5 -39.5t-53.5 -64.5t-56.5 -95l-267 -512v-232q0 -28 -0.5 -55t-1.5 -51.5t-2.5 -44.5t-3.5 -33l164 6v-158h-598v135q34 1 61.5 6.5t46 22.5t28.5 52t10 97v179l-378 595q-15 24 -29 51t-25 53.5t-17.5 50t-6.5 40.5zM592 1677l235 242q24 25 54 39.5t61 14.5 q19 0 37.5 -7.5t33.5 -21.5t24 -33t9 -42q0 -38 -23.5 -70t-58.5 -54l-299 -169z" /> +<glyph unicode="Þ" horiz-adv-x="1296" d="M102 0v135q34 2 61.5 7t46 22t28.5 52t10 97v785q0 28 0.5 55t1.5 51.5t2.5 44.5t3.5 33l-154 -6v158h588v-135q-31 -2 -56 -6t-43 -17t-29.5 -38t-15.5 -70l123 2q135 1 245.5 -20.5t189.5 -73t120.5 -135.5t38.5 -206q-2 -82 -39.5 -157t-110.5 -133t-182 -94t-254 -40 q-42 -2 -72 -2.5t-61 0.5q-1 -49 -3 -91.5t-5 -65.5q61 3 154 6v-158h-588zM544 461q18 -2 37 -3t39 -1q169 0 248 74t79 223q0 66 -15 111.5t-39 75.5t-54.5 47t-62 25t-60.5 10t-50 2h-67.5t-54.5 -1v-563z" /> +<glyph unicode="ß" horiz-adv-x="1579" d="M61 853v171h151q12 153 60 253.5t122 160t170 84t203 24.5q36 0 88.5 -5t110 -22.5t114 -51.5t102 -92.5t73.5 -145t28 -208.5q0 -52 -6 -112q-41 3 -81 3q-41 0 -78 -5t-65.5 -17t-45.5 -33t-17 -53t13 -53.5t39 -38t65.5 -31.5t92.5 -33q78 -27 142.5 -60.5t111 -77 t72 -99.5t25.5 -128q0 -80 -30 -139.5t-80 -98.5t-115.5 -58.5t-137.5 -19.5q-90 0 -152.5 22.5t-110.5 58.5h-2l7 -62h-156l-8 352h132q4 -47 23.5 -88t54 -71t84.5 -47t116 -17q22 0 45 6.5t42 19.5t31.5 32t12.5 44q0 29 -14 50.5t-42 40.5t-71 37.5t-101 41.5 q-64 25 -123 52t-104.5 65.5t-72.5 94t-27 138.5q0 51 14.5 101t45.5 92t80.5 73t118.5 45q0 112 -23.5 180t-59.5 104.5t-79 48t-81 11.5q-48 0 -96 -16t-86.5 -59.5t-62.5 -120.5t-24 -199v-664q0 -15 -0.5 -36.5t-1.5 -46.5t-2.5 -51t-3.5 -49l143 6v-156h-547v133 q43 0 67.5 13t36.5 37t15 57.5t3 74.5v543z" /> +<glyph unicode="à" horiz-adv-x="1074" d="M61 240q0 65 23 117t63.5 93t95.5 71t118.5 50t132.5 31t138 14v107q0 41 -7 75.5t-24 59.5t-45 39t-70 13q-42 -2 -78 -17t-62 -42q16 -17 20.5 -39t4.5 -37q0 -22 -8 -44.5t-25 -41t-43 -30.5t-62 -12q-30 1 -54 12.5t-40 30t-24.5 43.5t-8.5 54q0 60 33.5 110t92 85.5 t137.5 55t169 19.5t160.5 -23t119 -71t74 -122t25.5 -176q0 -52 -0.5 -91.5t-0.5 -76t-0.5 -76.5t-0.5 -92q0 -15 -0.5 -36t-1 -45t-2 -49.5t-3.5 -48.5l132 6v-156h-387q-4 29 -5.5 48.5t-2.5 45.5h-2q-70 -70 -146 -98.5t-157 -28.5q-66 0 -118 20.5t-87.5 57.5 t-54.5 86.5t-19 108.5zM241 1492q0 20 8 40t22 35.5t34 25t43 9.5q35 0 68 -20.5t54 -54.5l168 -286l-94 -83l-249 216q-24 23 -39 54.5t-15 63.5zM353 274q1 -29 11 -49t25.5 -33t36 -19t42.5 -6q48 0 89 20t73 55l1 229q-58 -6 -109 -21t-88.5 -39.5t-59 -58.5t-21.5 -78z " /> +<glyph unicode="á" horiz-adv-x="1074" d="M61 240q0 65 23 117t63.5 93t95.5 71t118.5 50t132.5 31t138 14v107q0 41 -7 75.5t-24 59.5t-45 39t-70 13q-42 -2 -78 -17t-62 -42q16 -17 20.5 -39t4.5 -37q0 -22 -8 -44.5t-25 -41t-43 -30.5t-62 -12q-30 1 -54 12.5t-40 30t-24.5 43.5t-8.5 54q0 60 33.5 110t92 85.5 t137.5 55t169 19.5t160.5 -23t119 -71t74 -122t25.5 -176q0 -52 -0.5 -91.5t-0.5 -76t-0.5 -76.5t-0.5 -92q0 -15 -0.5 -36t-1 -45t-2 -49.5t-3.5 -48.5l132 6v-156h-387q-4 29 -5.5 48.5t-2.5 45.5h-2q-70 -70 -146 -98.5t-157 -28.5q-66 0 -118 20.5t-87.5 57.5 t-54.5 86.5t-19 108.5zM353 274q1 -29 11 -49t25.5 -33t36 -19t42.5 -6q48 0 89 20t73 55l1 229q-58 -6 -109 -21t-88.5 -39.5t-59 -58.5t-21.5 -78zM356 1241l168 286q21 34 53.5 54.5t67.5 20.5q24 0 43.5 -9.5t34 -25t22.5 -35.5t8 -40q0 -32 -15 -63.5t-39 -54.5 l-249 -216z" /> +<glyph unicode="â" horiz-adv-x="1074" d="M61 240q0 65 23 117t63.5 93t95.5 71t118.5 50t132.5 31t138 14v107q0 41 -7 75.5t-24 59.5t-45 39t-70 13q-42 -2 -78 -17t-62 -42q16 -17 20.5 -39t4.5 -37q0 -22 -8 -44.5t-25 -41t-43 -30.5t-62 -12q-30 1 -54 12.5t-40 30t-24.5 43.5t-8.5 54q0 60 33.5 110t92 85.5 t137.5 55t169 19.5t160.5 -23t119 -71t74 -122t25.5 -176q0 -52 -0.5 -91.5t-0.5 -76t-0.5 -76.5t-0.5 -92q0 -15 -0.5 -36t-1 -45t-2 -49.5t-3.5 -48.5l132 6v-156h-387q-4 29 -5.5 48.5t-2.5 45.5h-2q-70 -70 -146 -98.5t-157 -28.5q-66 0 -118 20.5t-87.5 57.5 t-54.5 86.5t-19 108.5zM163 1264l350 339h21l328 -347l-88 -105l-261 214h-2l-262 -199zM353 274q1 -29 11 -49t25.5 -33t36 -19t42.5 -6q48 0 89 20t73 55l1 229q-58 -6 -109 -21t-88.5 -39.5t-59 -58.5t-21.5 -78z" /> +<glyph unicode="ã" horiz-adv-x="1074" d="M61 240q0 65 23 117t63.5 93t95.5 71t118.5 50t132.5 31t138 14v107q0 41 -7 75.5t-24 59.5t-45 39t-70 13q-42 -2 -78 -17t-62 -42q16 -17 20.5 -39t4.5 -37q0 -22 -8 -44.5t-25 -41t-43 -30.5t-62 -12q-30 1 -54 12.5t-40 30t-24.5 43.5t-8.5 54q0 60 33.5 110t92 85.5 t137.5 55t169 19.5t160.5 -23t119 -71t74 -122t25.5 -176q0 -52 -0.5 -91.5t-0.5 -76t-0.5 -76.5t-0.5 -92q0 -15 -0.5 -36t-1 -45t-2 -49.5t-3.5 -48.5l132 6v-156h-387q-4 29 -5.5 48.5t-2.5 45.5h-2q-70 -70 -146 -98.5t-157 -28.5q-66 0 -118 20.5t-87.5 57.5 t-54.5 86.5t-19 108.5zM144 1307q16 46 43 85t59 66.5t67.5 43t69.5 15.5q48 0 79 -12t57 -27t51.5 -27t62.5 -12q36 0 68.5 27.5t58.5 75.5l116 -59q-21 -64 -50 -109.5t-62 -74.5t-67 -42.5t-64 -13.5q-41 0 -73.5 12.5t-61 27t-55.5 27t-57 12.5q-12 0 -27.5 -4 t-32.5 -13.5t-34.5 -25.5t-33.5 -40zM353 274q1 -29 11 -49t25.5 -33t36 -19t42.5 -6q48 0 89 20t73 55l1 229q-58 -6 -109 -21t-88.5 -39.5t-59 -58.5t-21.5 -78z" /> +<glyph unicode="ä" horiz-adv-x="1074" d="M61 240q0 65 23 117t63.5 93t95.5 71t118.5 50t132.5 31t138 14v107q0 41 -7 75.5t-24 59.5t-45 39t-70 13q-42 -2 -78 -17t-62 -42q16 -17 20.5 -39t4.5 -37q0 -22 -8 -44.5t-25 -41t-43 -30.5t-62 -12q-30 1 -54 12.5t-40 30t-24.5 43.5t-8.5 54q0 60 33.5 110t92 85.5 t137.5 55t169 19.5t160.5 -23t119 -71t74 -122t25.5 -176q0 -52 -0.5 -91.5t-0.5 -76t-0.5 -76.5t-0.5 -92q0 -15 -0.5 -36t-1 -45t-2 -49.5t-3.5 -48.5l132 6v-156h-387q-4 29 -5.5 48.5t-2.5 45.5h-2q-70 -70 -146 -98.5t-157 -28.5q-66 0 -118 20.5t-87.5 57.5 t-54.5 86.5t-19 108.5zM194 1382q0 32 11 60.5t30 49.5t44 33.5t52 12.5q29 0 54 -12.5t43 -33.5t28 -49.5t10 -60.5t-11 -60t-29.5 -49t-43.5 -33t-52 -12q-28 0 -52.5 12t-43 33t-29.5 49t-11 60zM353 274q1 -29 11 -49t25.5 -33t36 -19t42.5 -6q48 0 89 20t73 55l1 229 q-58 -6 -109 -21t-88.5 -39.5t-59 -58.5t-21.5 -78zM550 1382q0 32 11 60.5t30 49.5t44 33.5t52 12.5q29 0 54 -12.5t43 -33.5t28 -49.5t10 -60.5t-11 -60t-29.5 -49t-43.5 -33t-52 -12q-28 0 -52.5 12t-43 33t-29.5 49t-11 60z" /> +<glyph unicode="å" horiz-adv-x="1074" d="M61 240q0 65 23 117t63.5 93t95.5 71t118.5 50t132.5 31t138 14v107q0 41 -7 75.5t-24 59.5t-45 39t-70 13q-42 -2 -78 -17t-62 -42q16 -17 20.5 -39t4.5 -37q0 -22 -8 -44.5t-25 -41t-43 -30.5t-62 -12q-30 1 -54 12.5t-40 30t-24.5 43.5t-8.5 54q0 60 33.5 110t92 85.5 t137.5 55t169 19.5t160.5 -23t119 -71t74 -122t25.5 -176q0 -52 -0.5 -91.5t-0.5 -76t-0.5 -76.5t-0.5 -92q0 -15 -0.5 -36t-1 -45t-2 -49.5t-3.5 -48.5l132 6v-156h-387q-4 29 -5.5 48.5t-2.5 45.5h-2q-70 -70 -146 -98.5t-157 -28.5q-66 0 -118 20.5t-87.5 57.5 t-54.5 86.5t-19 108.5zM283 1389q0 51 20 94.5t53.5 76t77 50.5t90.5 18q43 0 86.5 -14t78 -42.5t56.5 -72t22 -102.5q0 -56 -21 -101.5t-55.5 -77t-77.5 -48.5t-86 -17q-44 0 -87.5 15.5t-78 45.5t-56.5 74t-22 101zM353 274q1 -29 11 -49t25.5 -33t36 -19t42.5 -6 q48 0 89 20t73 55l1 229q-58 -6 -109 -21t-88.5 -39.5t-59 -58.5t-21.5 -78zM453 1406q0 -65 23.5 -96.5t59.5 -31.5q26 0 47 25t21 73q0 70 -24 99.5t-57 29.5q-26 -1 -48 -24t-22 -75z" /> +<glyph unicode="æ" horiz-adv-x="1577" d="M60 240q0 65 23.5 117.5t64.5 93t96 70.5t118.5 50t133 31t137.5 14v111q0 41 -8 75t-25 58t-44 37.5t-65 13.5q-42 -2 -81 -14.5t-65 -39.5q16 -17 20.5 -42t4.5 -40q0 -22 -8 -44.5t-25 -41t-43 -30.5t-62 -12q-30 1 -54 12.5t-40 30t-24.5 43.5t-8.5 54q0 57 31.5 106 t87.5 85.5t132.5 57.5t166.5 21q105 0 176.5 -38.5t99.5 -134.5h2q28 47 60 80t71 53.5t86 30t106 9.5q69 -1 135.5 -27.5t119 -86t85 -155.5t32.5 -237l-581 -12q0 -84 11 -155.5t39 -123t76 -81t123 -29.5q31 0 65.5 8t70.5 26t73 47.5t72 72.5l92 -87q-55 -79 -113 -128 t-115.5 -76t-113.5 -36.5t-108 -9.5q-57 0 -106 14t-90 37.5t-74 54.5t-59 66q-47 -54 -99 -87.5t-105.5 -52.5t-107 -25.5t-103.5 -6.5q-66 0 -118.5 20.5t-89 57.5t-56 86.5t-19.5 108.5zM350 274q1 -29 12 -49t28.5 -33t39 -19t43.5 -6q48 0 91.5 21.5t75.5 56.5 q-5 60 -6 115.5t-2 110.5q-59 -6 -110 -21t-89.5 -39.5t-60.5 -58.5t-22 -78zM928 683h297q-2 63 -14 106.5t-30.5 70.5t-42 39t-48.5 12q-42 0 -71 -18.5t-48 -50t-29 -73t-14 -86.5z" /> +<glyph unicode="ç" horiz-adv-x="1065" d="M65 490q0 115 39 218.5t109 180.5t168 122.5t217 45.5q97 0 171 -24t123.5 -63t74.5 -89.5t25 -104.5q0 -31 -9.5 -59t-28 -49t-45.5 -33t-61 -12q-38 0 -63 13t-41 32.5t-22.5 43t-6.5 44.5q0 18 6 43.5t19 45.5q-11 20 -28.5 33t-37 21t-39 11t-34.5 3q-52 0 -95 -23.5 t-74.5 -70t-49 -114.5t-17.5 -157q0 -78 14.5 -150t47.5 -127t87 -88t133 -33q41 0 82.5 11.5t79.5 32t72.5 49.5t61.5 64l94 -91q-56 -77 -115.5 -125.5t-119 -75.5t-118.5 -37t-115 -10q-8 0 -14.5 0.5t-13.5 0.5l-41 -110h2q13 7 31 13t37.5 10t38 6.5t33.5 2.5 q31 -1 58.5 -9.5t47.5 -26t31.5 -44t11.5 -63.5q0 -48 -23.5 -85.5t-62 -66.5t-88 -50.5t-101 -36.5t-101.5 -24.5t-89 -14.5l-16 106q16 3 40.5 8t52 12.5t55 17.5t49.5 23.5t35.5 30.5t13.5 38q0 27 -17 38t-40 11t-45.5 -8t-36.5 -19l-76 32l57 235q-73 23 -134 66.5 t-105.5 106.5t-69 144t-24.5 178z" /> +<glyph unicode="è" horiz-adv-x="1103" d="M63 510q0 108 36.5 206.5t103.5 174.5t161.5 121t210.5 45q57 0 113.5 -10t108 -33.5t96 -61.5t76.5 -94t50.5 -132t17.5 -175l-673 -12q0 -84 15.5 -155.5t49.5 -123t89 -81t135 -29.5q31 0 69 8t77.5 26t79.5 47.5t75 72.5l92 -87q-55 -79 -117 -128t-124.5 -76 t-123 -36.5t-112.5 -9.5q-113 0 -206 38t-160 109t-103.5 171t-36.5 225zM270 1492q0 20 8 40t22 35.5t34 25t43 9.5q35 0 68 -20.5t54 -54.5l168 -286l-94 -83l-249 216q-24 23 -39 54.5t-15 63.5zM377 683h377q-2 63 -15 107t-35.5 71.5t-52.5 39.5t-66 12 q-45 0 -80.5 -17t-61.5 -47t-42.5 -72.5t-23.5 -93.5z" /> +<glyph unicode="é" horiz-adv-x="1103" d="M63 510q0 108 36.5 206.5t103.5 174.5t161.5 121t210.5 45q57 0 113.5 -10t108 -33.5t96 -61.5t76.5 -94t50.5 -132t17.5 -175l-673 -12q0 -84 15.5 -155.5t49.5 -123t89 -81t135 -29.5q31 0 69 8t77.5 26t79.5 47.5t75 72.5l92 -87q-55 -79 -117 -128t-124.5 -76 t-123 -36.5t-112.5 -9.5q-113 0 -206 38t-160 109t-103.5 171t-36.5 225zM377 683h377q-2 63 -15 107t-35.5 71.5t-52.5 39.5t-66 12q-45 0 -80.5 -17t-61.5 -47t-42.5 -72.5t-23.5 -93.5zM422 1241l168 286q21 34 53.5 54.5t67.5 20.5q24 0 43.5 -9.5t34 -25t22.5 -35.5 t8 -40q0 -32 -15 -63.5t-39 -54.5l-249 -216z" /> +<glyph unicode="ê" horiz-adv-x="1103" d="M63 510q0 108 36.5 206.5t103.5 174.5t161.5 121t210.5 45q57 0 113.5 -10t108 -33.5t96 -61.5t76.5 -94t50.5 -132t17.5 -175l-673 -12q0 -84 15.5 -155.5t49.5 -123t89 -81t135 -29.5q31 0 69 8t77.5 26t79.5 47.5t75 72.5l92 -87q-55 -79 -117 -128t-124.5 -76 t-123 -36.5t-112.5 -9.5q-113 0 -206 38t-160 109t-103.5 171t-36.5 225zM229 1264l350 339h21l328 -347l-88 -105l-261 214h-2l-262 -199zM377 683h377q-2 63 -15 107t-35.5 71.5t-52.5 39.5t-66 12q-45 0 -80.5 -17t-61.5 -47t-42.5 -72.5t-23.5 -93.5z" /> +<glyph unicode="ë" horiz-adv-x="1103" d="M63 510q0 108 36.5 206.5t103.5 174.5t161.5 121t210.5 45q57 0 113.5 -10t108 -33.5t96 -61.5t76.5 -94t50.5 -132t17.5 -175l-673 -12q0 -84 15.5 -155.5t49.5 -123t89 -81t135 -29.5q31 0 69 8t77.5 26t79.5 47.5t75 72.5l92 -87q-55 -79 -117 -128t-124.5 -76 t-123 -36.5t-112.5 -9.5q-113 0 -206 38t-160 109t-103.5 171t-36.5 225zM270 1382q0 32 11 60.5t30 49.5t44 33.5t52 12.5q29 0 54 -12.5t43 -33.5t28 -49.5t10 -60.5t-11 -60t-29.5 -49t-43.5 -33t-52 -12q-28 0 -52.5 12t-43 33t-29.5 49t-11 60zM377 683h377 q-2 63 -15 107t-35.5 71.5t-52.5 39.5t-66 12q-45 0 -80.5 -17t-61.5 -47t-42.5 -72.5t-23.5 -93.5zM626 1382q0 32 11 60.5t30 49.5t44 33.5t52 12.5q29 0 54 -12.5t43 -33.5t28 -49.5t10 -60.5t-11 -60t-29.5 -49t-43.5 -33t-52 -12q-28 0 -52.5 12t-43 33t-29.5 49 t-11 60z" /> +<glyph unicode="ì" horiz-adv-x="670" d="M30 1492q0 20 8 40t22 35.5t34 25t43 9.5q35 0 68 -20.5t54 -54.5l168 -286l-94 -83l-249 216q-24 23 -39 54.5t-15 63.5zM69 828v155q71 0 125.5 6t93 15t62 19.5t34.5 20.5h111v-715q0 -15 -0.5 -36t-1.5 -45t-2.5 -49.5t-3.5 -48.5l133 6v-156h-537v133q43 0 67.5 13 t36.5 37t15 57.5t3 74.5v340q0 37 1.5 85t6.5 94z" /> +<glyph unicode="í" horiz-adv-x="670" d="M69 828v155q71 0 125.5 6t93 15t62 19.5t34.5 20.5h111v-715q0 -15 -0.5 -36t-1.5 -45t-2.5 -49.5t-3.5 -48.5l133 6v-156h-537v133q43 0 67.5 13t36.5 37t15 57.5t3 74.5v340q0 37 1.5 85t6.5 94zM218 1241l168 286q21 34 53.5 54.5t67.5 20.5q24 0 43.5 -9.5t34 -25 t22.5 -35.5t8 -40q0 -32 -15 -63.5t-39 -54.5l-249 -216z" /> +<glyph unicode="î" horiz-adv-x="669" d="M18 1264l320 339h21l298 -347l-88 -105l-231 214h-2l-232 -199zM69 828v155q71 0 125.5 6t93 15t62 19.5t34.5 20.5h111v-715q0 -15 -0.5 -36t-1.5 -45t-2.5 -49.5t-3.5 -48.5l133 6v-156h-537v133q43 0 67.5 13t36.5 37t15 57.5t3 74.5v340q0 37 1.5 85t6.5 94z" /> +<glyph unicode="ï" horiz-adv-x="670" d="M43 1382q0 32 10 60.5t27.5 49.5t41.5 33.5t51 12.5q29 0 53 -12.5t40.5 -33.5t25.5 -49.5t9 -60.5t-10 -60t-27 -49t-41 -33t-51 -12q-28 0 -51.5 12t-41 33t-27 49t-9.5 60zM69 828v155q71 0 125.5 6t93 15t62 19.5t34.5 20.5h111v-715q0 -15 -0.5 -36t-1.5 -45 t-2.5 -49.5t-3.5 -48.5l133 6v-156h-537v133q43 0 67.5 13t36.5 37t15 57.5t3 74.5v340q0 37 1.5 85t6.5 94zM379 1382q0 32 10 60.5t27.5 49.5t41.5 33.5t51 12.5q29 0 53 -12.5t40.5 -33.5t25.5 -49.5t9 -60.5t-10 -60t-27 -49t-41 -33t-51 -12q-28 0 -51.5 12t-41 33 t-27 49t-9.5 60z" /> +<glyph unicode="ð" horiz-adv-x="1110" d="M67 471q0 99 28.5 196.5t86.5 174.5t146 125t207 48q18 0 40 -2.5t46 -8.5t48 -17.5t46 -29.5h2q-11 40 -36.5 84.5t-58.5 86t-69.5 76.5t-69.5 56l-118 -145l-124 109l100 117q-38 22 -85.5 38t-102.5 27l30 150q91 -8 159 -30t116 -45l105 137l119 -106l-87 -103 q94 -63 171 -151.5t132.5 -198.5t86 -237.5t30.5 -268.5q0 -120 -29.5 -226.5t-89 -186.5t-149 -126.5t-210.5 -46.5q-101 0 -187 33.5t-149 97.5t-98.5 158t-35.5 215zM351 505q0 -86 15.5 -153.5t42.5 -114t63.5 -71t78.5 -24.5q41 0 77.5 22t63.5 66t43 109t16 151 q0 60 -10 124.5t-33.5 118t-62 88t-95.5 34.5q-47 0 -84 -29t-62.5 -77.5t-39 -111.5t-13.5 -132z" /> +<glyph unicode="ñ" horiz-adv-x="1303" d="M69 828v155q71 0 125.5 6t93 15t62 19.5t34.5 20.5h101l9 -101h3q30 23 68.5 44t79 36.5t79 24.5t69.5 9q94 0 159.5 -26.5t107 -81.5t60.5 -141t19 -204v-275q0 -15 -0.5 -36t-1.5 -45t-2.5 -49.5t-3.5 -48.5l133 6v-156h-537v133q43 0 67.5 13t36.5 37t15 57.5t3 74.5 l-1 292q-1 135 -41 198t-125 63q-53 0 -102.5 -22t-84.5 -53v-464q0 -15 -0.5 -36t-1.5 -45t-2.5 -49.5t-3.5 -48.5l133 6v-156h-537v133q43 0 67.5 13t36.5 37t15 57.5t3 74.5v345q0 37 1.5 82.5t6.5 91.5zM284 1307q16 46 43 85t59 66.5t67.5 43t69.5 15.5q48 0 79 -12 t57 -27t51.5 -27t62.5 -12q36 0 68.5 27.5t58.5 75.5l116 -59q-21 -64 -50 -109.5t-62 -74.5t-67 -42.5t-64 -13.5q-41 0 -73.5 12.5t-61 27t-55.5 27t-57 12.5q-12 0 -27.5 -4t-32.5 -13.5t-34.5 -25.5t-33.5 -40z" /> +<glyph unicode="ò" horiz-adv-x="1159" d="M63 489q0 127 41 232t111.5 179.5t164.5 115.5t199 41q110 0 204.5 -36t163.5 -104t108.5 -165.5t39.5 -220.5q0 -129 -37.5 -233.5t-105 -178t-161.5 -113t-206 -39.5q-111 0 -206.5 36.5t-165.5 104t-110 164t-40 217.5zM286 1492q0 20 8 40t22 35.5t34 25t43 9.5 q35 0 68 -20.5t54 -54.5l168 -286l-94 -83l-249 216q-24 23 -39 54.5t-15 63.5zM364 544q0 -79 12.5 -156.5t40 -138.5t71 -99t105.5 -38q61 1 99.5 34t61 85.5t31 117.5t8.5 131q0 76 -10.5 153.5t-36 139.5t-67 101t-104.5 39q-60 -2 -100 -34.5t-65 -84.5t-35.5 -117.5 t-10.5 -132.5z" /> +<glyph unicode="ó" horiz-adv-x="1159" d="M63 489q0 127 41 232t111.5 179.5t164.5 115.5t199 41q110 0 204.5 -36t163.5 -104t108.5 -165.5t39.5 -220.5q0 -129 -37.5 -233.5t-105 -178t-161.5 -113t-206 -39.5q-111 0 -206.5 36.5t-165.5 104t-110 164t-40 217.5zM364 544q0 -79 12.5 -156.5t40 -138.5t71 -99 t105.5 -38q61 1 99.5 34t61 85.5t31 117.5t8.5 131q0 76 -10.5 153.5t-36 139.5t-67 101t-104.5 39q-60 -2 -100 -34.5t-65 -84.5t-35.5 -117.5t-10.5 -132.5zM440 1241l168 286q21 34 53.5 54.5t67.5 20.5q24 0 43.5 -9.5t34 -25t22.5 -35.5t8 -40q0 -32 -15 -63.5 t-39 -54.5l-249 -216z" /> +<glyph unicode="ô" horiz-adv-x="1159" d="M63 489q0 127 41 232t111.5 179.5t164.5 115.5t199 41q110 0 204.5 -36t163.5 -104t108.5 -165.5t39.5 -220.5q0 -129 -37.5 -233.5t-105 -178t-161.5 -113t-206 -39.5q-111 0 -206.5 36.5t-165.5 104t-110 164t-40 217.5zM237 1264l350 339h21l328 -347l-88 -105 l-261 214h-2l-262 -199zM364 544q0 -79 12.5 -156.5t40 -138.5t71 -99t105.5 -38q61 1 99.5 34t61 85.5t31 117.5t8.5 131q0 76 -10.5 153.5t-36 139.5t-67 101t-104.5 39q-60 -2 -100 -34.5t-65 -84.5t-35.5 -117.5t-10.5 -132.5z" /> +<glyph unicode="õ" horiz-adv-x="1159" d="M63 489q0 127 41 232t111.5 179.5t164.5 115.5t199 41q110 0 204.5 -36t163.5 -104t108.5 -165.5t39.5 -220.5q0 -129 -37.5 -233.5t-105 -178t-161.5 -113t-206 -39.5q-111 0 -206.5 36.5t-165.5 104t-110 164t-40 217.5zM206 1307q16 46 43 85t59 66.5t67.5 43 t69.5 15.5q48 0 79 -12t57 -27t51.5 -27t62.5 -12q36 0 68.5 27.5t58.5 75.5l116 -59q-21 -64 -50 -109.5t-62 -74.5t-67 -42.5t-64 -13.5q-41 0 -73.5 12.5t-61 27t-55.5 27t-57 12.5q-12 0 -27.5 -4t-32.5 -13.5t-34.5 -25.5t-33.5 -40zM364 544q0 -79 12.5 -156.5 t40 -138.5t71 -99t105.5 -38q61 1 99.5 34t61 85.5t31 117.5t8.5 131q0 76 -10.5 153.5t-36 139.5t-67 101t-104.5 39q-60 -2 -100 -34.5t-65 -84.5t-35.5 -117.5t-10.5 -132.5z" /> +<glyph unicode="ö" horiz-adv-x="1159" d="M63 489q0 127 41 232t111.5 179.5t164.5 115.5t199 41q110 0 204.5 -36t163.5 -104t108.5 -165.5t39.5 -220.5q0 -129 -37.5 -233.5t-105 -178t-161.5 -113t-206 -39.5q-111 0 -206.5 36.5t-165.5 104t-110 164t-40 217.5zM268 1382q0 32 11 60.5t30 49.5t44 33.5 t52 12.5q29 0 54 -12.5t43 -33.5t28 -49.5t10 -60.5t-11 -60t-29.5 -49t-43.5 -33t-52 -12q-28 0 -52.5 12t-43 33t-29.5 49t-11 60zM364 544q0 -79 12.5 -156.5t40 -138.5t71 -99t105.5 -38q61 1 99.5 34t61 85.5t31 117.5t8.5 131q0 76 -10.5 153.5t-36 139.5t-67 101 t-104.5 39q-60 -2 -100 -34.5t-65 -84.5t-35.5 -117.5t-10.5 -132.5zM624 1382q0 32 11 60.5t30 49.5t44 33.5t52 12.5q29 0 54 -12.5t43 -33.5t28 -49.5t10 -60.5t-11 -60t-29.5 -49t-43.5 -33t-52 -12q-28 0 -52.5 12t-43 33t-29.5 49t-11 60z" /> +<glyph unicode="÷" horiz-adv-x="575" d="M139 249q0 33 12 62.5t32.5 51.5t47.5 34.5t57 12.5q32 0 59 -12.5t47 -34.5t31 -51.5t11 -62.5t-10.5 -62t-29 -50.5t-45.5 -34t-60 -12.5q-34 0 -62 12.5t-48 34t-31 50.5t-11 62zM139 951q0 33 12 62.5t32.5 51.5t47.5 34.5t57 12.5q32 0 59 -12.5t47 -34.5t31 -51.5 t11 -62.5t-10.5 -62t-29 -50.5t-45.5 -34t-60 -12.5q-34 0 -62 12.5t-48 34t-31 50.5t-11 62z" /> +<glyph unicode="ø" horiz-adv-x="1159" d="M63 489q0 127 41 232t111.5 179.5t164.5 115.5t199 41q125 0 227 -46l106 165l137 -88l-107 -166q72 -69 112.5 -167t40.5 -224q0 -129 -37.5 -233.5t-105 -178t-161.5 -113t-206 -39.5q-63 0 -120.5 11.5t-108.5 33.5l-118 -182l-126 96l110 172q-75 69 -117 166.5 t-42 224.5zM364 544q0 -49 4 -97.5t15 -96.5h2l318 500q-24 31 -55 47t-73 16q-60 -2 -100 -34.5t-65 -84.5t-35.5 -117.5t-10.5 -132.5zM461 175q26 -31 58 -47t74 -16q61 0 99.5 33t61 86t31 118.5t8.5 130.5q0 46 -3.5 94t-11.5 93h-2z" /> +<glyph unicode="ù" horiz-adv-x="1266" d="M31 828v155q71 0 125.5 6t93 15t62 19.5t34.5 20.5h112v-627q0 -135 34.5 -198t112.5 -63q25 0 52 7.5t53 21t49.5 31.5t41.5 38v401q0 37 1.5 85t6.5 94l-144 -6v155q71 0 125 6t92.5 15t62 19.5t34.5 20.5h112v-715q-1 -57 -2 -81t-2.5 -49.5t-3.5 -48.5l133 6v-156 h-389l-11 107h-2q-31 -27 -64.5 -52.5t-71 -45t-80 -31t-91.5 -11.5q-91 0 -155.5 26.5t-105.5 81.5t-60 140.5t-19 204.5v235q0 37 1.5 85t6.5 94zM350 1492q0 20 8 40t22 35.5t34 25t43 9.5q35 0 68 -20.5t54 -54.5l168 -286l-94 -83l-249 216q-24 23 -39 54.5t-15 63.5z " /> +<glyph unicode="ú" horiz-adv-x="1266" d="M31 828v155q71 0 125.5 6t93 15t62 19.5t34.5 20.5h112v-627q0 -135 34.5 -198t112.5 -63q25 0 52 7.5t53 21t49.5 31.5t41.5 38v401q0 37 1.5 85t6.5 94l-144 -6v155q71 0 125 6t92.5 15t62 19.5t34.5 20.5h112v-715q-1 -57 -2 -81t-2.5 -49.5t-3.5 -48.5l133 6v-156 h-389l-11 107h-2q-31 -27 -64.5 -52.5t-71 -45t-80 -31t-91.5 -11.5q-91 0 -155.5 26.5t-105.5 81.5t-60 140.5t-19 204.5v235q0 37 1.5 85t6.5 94zM536 1241l168 286q21 34 53.5 54.5t67.5 20.5q24 0 43.5 -9.5t34 -25t22.5 -35.5t8 -40q0 -32 -15 -63.5t-39 -54.5 l-249 -216z" /> +<glyph unicode="û" horiz-adv-x="1266" d="M31 828v155q71 0 125.5 6t93 15t62 19.5t34.5 20.5h112v-627q0 -135 34.5 -198t112.5 -63q25 0 52 7.5t53 21t49.5 31.5t41.5 38v401q0 37 1.5 85t6.5 94l-144 -6v155q71 0 125 6t92.5 15t62 19.5t34.5 20.5h112v-715q-1 -57 -2 -81t-2.5 -49.5t-3.5 -48.5l133 6v-156 h-389l-11 107h-2q-31 -27 -64.5 -52.5t-71 -45t-80 -31t-91.5 -11.5q-91 0 -155.5 26.5t-105.5 81.5t-60 140.5t-19 204.5v235q0 37 1.5 85t6.5 94zM269 1264l350 339h21l328 -347l-88 -105l-261 214h-2l-262 -199z" /> +<glyph unicode="ü" horiz-adv-x="1266" d="M31 828v155q71 0 125.5 6t93 15t62 19.5t34.5 20.5h112v-627q0 -135 34.5 -198t112.5 -63q25 0 52 7.5t53 21t49.5 31.5t41.5 38v401q0 37 1.5 85t6.5 94l-144 -6v155q71 0 125 6t92.5 15t62 19.5t34.5 20.5h112v-715q-1 -57 -2 -81t-2.5 -49.5t-3.5 -48.5l133 6v-156 h-389l-11 107h-2q-31 -27 -64.5 -52.5t-71 -45t-80 -31t-91.5 -11.5q-91 0 -155.5 26.5t-105.5 81.5t-60 140.5t-19 204.5v235q0 37 1.5 85t6.5 94zM314 1382q0 32 11 60.5t30 49.5t44 33.5t52 12.5q29 0 54 -12.5t43 -33.5t28 -49.5t10 -60.5t-11 -60t-29.5 -49t-43.5 -33 t-52 -12q-28 0 -52.5 12t-43 33t-29.5 49t-11 60zM670 1382q0 32 11 60.5t30 49.5t44 33.5t52 12.5q29 0 54 -12.5t43 -33.5t28 -49.5t10 -60.5t-11 -60t-29.5 -49t-43.5 -33t-52 -12q-28 0 -52.5 12t-43 33t-29.5 49t-11 60z" /> +<glyph unicode="ý" horiz-adv-x="1128" d="M10 868v156h510v-131q-48 -6 -67 -28t-19 -52q0 -19 6 -39.5t15 -40.5l200 -459h2q9 26 22 68t29.5 95.5t36 116t41.5 129.5q6 19 15 44.5t20.5 52.5t24.5 52t27 42v2l-117 -8v156h364v-131q-64 -16 -105.5 -78.5t-73.5 -155.5l-257 -731q-43 -125 -82 -216.5t-82 -150.5 t-95 -87.5t-121 -28.5q-40 0 -74 12t-59 34t-39.5 53t-14.5 69q0 28 10 53.5t27.5 45t42 31t53.5 11.5q21 0 40 -8.5t33.5 -23.5t23 -36t8.5 -46q0 -13 -3 -28v-2q21 0 44 28.5t46.5 75t45 107t39.5 125.5l-325 649q-29 57 -47 99t-28.5 73.5t-15 56.5t-7.5 48zM499 1241 l168 286q21 34 53.5 54.5t67.5 20.5q24 0 43.5 -9.5t34 -25t22.5 -35.5t8 -40q0 -32 -15 -63.5t-39 -54.5l-249 -216z" /> +<glyph unicode="þ" horiz-adv-x="1173" d="M-8 1330v155q71 0 125.5 6t93 15t62 19.5t34.5 20.5h111v-600h3q70 62 139.5 86.5t133.5 24.5q92 0 168 -36.5t130.5 -104t84.5 -163.5t30 -215q0 -124 -36.5 -228.5t-103 -180.5t-160 -119t-207.5 -43q-56 0 -100 11.5t-82 25.5v-197q0 -15 -0.5 -36t-1.5 -45 t-2.5 -49.5t-3.5 -48.5l133 6v-156h-537v133q43 0 67.5 13t36.5 37t15 57.5t3 74.5v1364q0 37 1.5 85t6.5 94zM418 158q10 -8 26.5 -15t36 -12t41.5 -8t44 -3q71 1 117.5 33.5t74 86t38.5 123t11 144.5q0 70 -13 137t-40 118t-69.5 81.5t-101.5 28.5q-51 -2 -94.5 -26 t-70.5 -63v-625z" /> +<glyph unicode="ÿ" horiz-adv-x="1128" d="M10 868v156h510v-131q-48 -6 -67 -28t-19 -52q0 -19 6 -39.5t15 -40.5l200 -459h2q9 26 22 68t29.5 95.5t36 116t41.5 129.5q6 19 15 44.5t20.5 52.5t24.5 52t27 42v2l-117 -8v156h364v-131q-64 -16 -105.5 -78.5t-73.5 -155.5l-257 -731q-43 -125 -82 -216.5t-82 -150.5 t-95 -87.5t-121 -28.5q-40 0 -74 12t-59 34t-39.5 53t-14.5 69q0 28 10 53.5t27.5 45t42 31t53.5 11.5q21 0 40 -8.5t33.5 -23.5t23 -36t8.5 -46q0 -13 -3 -28v-2q21 0 44 28.5t46.5 75t45 107t39.5 125.5l-325 649q-29 57 -47 99t-28.5 73.5t-15 56.5t-7.5 48zM298 1382 q0 32 11 60.5t30 49.5t44 33.5t52 12.5q29 0 54 -12.5t43 -33.5t28 -49.5t10 -60.5t-11 -60t-29.5 -49t-43.5 -33t-52 -12q-28 0 -52.5 12t-43 33t-29.5 49t-11 60zM654 1382q0 32 11 60.5t30 49.5t44 33.5t52 12.5q29 0 54 -12.5t43 -33.5t28 -49.5t10 -60.5t-11 -60 t-29.5 -49t-43.5 -33t-52 -12q-28 0 -52.5 12t-43 33t-29.5 49t-11 60z" /> +<glyph unicode="Œ" horiz-adv-x="2105" d="M73 691q0 93 18.5 187t57 180t98 161t141.5 130t187.5 86.5t235.5 31.5q28 0 61 -2t67.5 -5.5t69 -10t66.5 -15.5h879l12 -397h-135q0 80 -22 131.5t-56.5 81t-77 40.5t-83.5 11l-84 -2q-32 -1 -57.5 -6.5t-43 -23.5t-27 -53t-9.5 -95v-307h241l-9 177h158v-498h-135 q0 60 -13.5 95.5t-37 54t-55.5 24.5t-69 6l-80 -1v-336q0 -28 -0.5 -54.5t-1.5 -50.5t-2.5 -43.5t-3.5 -32.5l275 1q45 0 90 15t80 49.5t57 91t22 139.5h135l-12 -451h-935q-75 -21 -154 -27t-146 -6q-158 3 -287.5 59.5t-221.5 153t-142.5 227.5t-50.5 284zM395 738 q0 -132 28.5 -240.5t83 -187t134.5 -124.5t184 -53q13 -1 25.5 -1.5t25.5 -0.5q109 0 199 36v1084q-54 36 -122 51.5t-144 15.5q-71 0 -129.5 -22.5t-104.5 -62.5t-80 -94.5t-56 -119t-33 -136t-11 -145.5z" /> +<glyph unicode="œ" horiz-adv-x="1815" d="M63 489q0 127 41 232t111.5 179.5t164.5 115.5t199 41q70 0 123.5 -11.5t96 -32.5t76.5 -52t66 -70h3q33 37 68 67.5t77 52.5t92.5 34t115.5 12q85 0 166 -24.5t144 -83t101.5 -156t38.5 -242.5l-676 -12q0 -74 15.5 -143.5t50.5 -124.5t92 -88t141 -33q31 0 69 8 t77.5 26t79.5 47.5t75 72.5l92 -87q-55 -79 -117 -128t-124.5 -76t-123 -36.5t-112.5 -9.5q-107 0 -201 41t-154 119h-2q-63 -78 -151 -119t-193 -41q-111 0 -206.5 36.5t-165.5 104t-110 164t-40 217.5zM364 544q0 -79 12.5 -156.5t40 -138.5t71 -99t105.5 -38 q64 1 103 36.5t60.5 88.5t28.5 116.5t7 121.5q0 45 -3.5 94.5t-13 98.5t-25 93t-39.5 78t-57.5 54t-78.5 20q-60 -2 -100 -34.5t-65 -84.5t-35.5 -117.5t-10.5 -132.5zM1087 683h377q-2 63 -15 107t-35.5 71.5t-52.5 39.5t-66 12q-45 0 -80.5 -17t-61.5 -47t-42.5 -72.5 t-23.5 -93.5z" /> +<glyph unicode="Ÿ" horiz-adv-x="1365" d="M7 1276v158h603v-135q-6 0 -11.5 0.5t-11.5 0.5q-57 0 -90 -20.5t-33 -60.5q1 -17 6 -36.5t19 -41.5l157 -257l21 -36t29.5 -52.5t30 -57.5t22.5 -51h3q10 23 34 72.5t62 127.5l106 209q8 16 21 41t28 52t30 52t29 41v2l-157 -8v158h452v-135q-36 -6 -65.5 -20 t-56.5 -39.5t-53.5 -64.5t-56.5 -95l-267 -512v-232q0 -28 -0.5 -55t-1.5 -51.5t-2.5 -44.5t-3.5 -33l164 6v-158h-598v135q34 1 61.5 6.5t46 22.5t28.5 52t10 97v179l-378 595q-15 24 -29 51t-25 53.5t-17.5 50t-6.5 40.5zM392 1786q0 32 11.5 60.5t30.5 50t44 34t52 12.5 q28 0 53 -12.5t43 -34t28.5 -50t10.5 -60.5t-11 -60t-30 -49t-44 -33t-52 -12t-52 12t-43.5 33t-29.5 49t-11 60zM749 1786q0 32 11.5 60.5t30.5 50t44 34t52 12.5q28 0 53 -12.5t43 -34t28.5 -50t10.5 -60.5t-11 -60t-30 -49t-44 -33t-52 -12t-52 12t-43.5 33t-29.5 49 t-11 60z" /> +<glyph unicode="ˆ" horiz-adv-x="879" d="M90 1264l350 339h21l328 -347l-88 -105l-261 214h-2l-262 -199z" /> +<glyph unicode="˜" horiz-adv-x="872" d="M70 1307q16 46 43 85t59 66.5t67.5 43t69.5 15.5q48 0 79 -12t57 -27t51.5 -27t62.5 -12q36 0 68.5 27.5t58.5 75.5l116 -59q-21 -64 -50 -109.5t-62 -74.5t-67 -42.5t-64 -13.5q-41 0 -73.5 12.5t-61 27t-55.5 27t-57 12.5q-12 0 -27.5 -4t-32.5 -13.5t-34.5 -25.5 t-33.5 -40z" /> +<glyph unicode=" " horiz-adv-x="1030" /> +<glyph unicode=" " horiz-adv-x="2061" /> +<glyph unicode=" " horiz-adv-x="1030" /> +<glyph unicode=" " horiz-adv-x="2061" /> +<glyph unicode=" " horiz-adv-x="687" /> +<glyph unicode=" " horiz-adv-x="515" /> +<glyph unicode=" " horiz-adv-x="343" /> +<glyph unicode=" " horiz-adv-x="343" /> +<glyph unicode=" " horiz-adv-x="257" /> +<glyph unicode=" " horiz-adv-x="412" /> +<glyph unicode=" " horiz-adv-x="114" /> +<glyph unicode="‐" horiz-adv-x="964" d="M105 532v221h754v-214z" /> +<glyph unicode="‑" horiz-adv-x="964" d="M105 532v221h754v-214z" /> +<glyph unicode="‒" horiz-adv-x="964" d="M105 532v221h754v-214z" /> +<glyph unicode="–" horiz-adv-x="1153" d="M106 532v221h941v-214z" /> +<glyph unicode="—" horiz-adv-x="1358" d="M106 532v221h1146v-214z" /> +<glyph unicode="‘" horiz-adv-x="457" d="M69 1108q0 100 45.5 214.5t142.5 232.5l79 -57q-16 -21 -36.5 -57t-38.5 -80t-30 -92.5t-12 -93.5q15 5 24 6t20 1q27 0 52.5 -8t45 -24.5t31.5 -42t12 -61.5q0 -31 -11 -59t-31 -49t-48 -33.5t-63 -12.5q-46 0 -80 16.5t-56.5 46t-34 69t-11.5 84.5z" /> +<glyph unicode="’" horiz-adv-x="431" d="M43 1403q0 31 11 59t31 49t48 33.5t63 12.5q46 0 80 -16.5t56.5 -46t34 -69t11.5 -84.5q0 -100 -45.5 -214.5t-142.5 -232.5l-79 57q16 21 36.5 57t38.5 80t30 92.5t12 93.5q-15 -5 -24 -6t-20 -1q-27 0 -52.5 8t-45 24.5t-31.5 42t-12 61.5z" /> +<glyph unicode="‚" horiz-adv-x="512" d="M90 127q0 31 11 59t31 49t48 33.5t63 12.5q46 0 80 -16.5t56.5 -46t34 -69t11.5 -84.5q0 -100 -45.5 -214.5t-142.5 -232.5l-79 57q16 21 36.5 57t38.5 80t30 92.5t12 93.5q-15 -5 -24 -6t-20 -1q-27 0 -52.5 8t-45 24.5t-31.5 42t-12 61.5z" /> +<glyph unicode="“" horiz-adv-x="867" d="M69 1108q0 100 45.5 214.5t142.5 232.5l79 -57q-16 -21 -36.5 -57t-38.5 -80t-30 -92.5t-12 -93.5q15 5 24 6t20 1q27 0 52.5 -8t45 -24.5t31.5 -42t12 -61.5q0 -31 -11 -59t-31 -49t-48 -33.5t-63 -12.5q-46 0 -80 16.5t-56.5 46t-34 69t-11.5 84.5zM479 1108 q0 100 45.5 214.5t142.5 232.5l79 -57q-16 -21 -36.5 -57t-38.5 -80t-30 -92.5t-12 -93.5q15 5 24 6t20 1q27 0 52.5 -8t45 -24.5t31.5 -42t12 -61.5q0 -31 -11 -59t-31 -49t-48 -33.5t-63 -12.5q-46 0 -80 16.5t-56.5 46t-34 69t-11.5 84.5z" /> +<glyph unicode="”" horiz-adv-x="841" d="M43 1403q0 31 11 59t31 49t48 33.5t63 12.5q46 0 80 -16.5t56.5 -46t34 -69t11.5 -84.5q0 -100 -45.5 -214.5t-142.5 -232.5l-79 57q16 21 36.5 57t38.5 80t30 92.5t12 93.5q-15 -5 -24 -6t-20 -1q-27 0 -52.5 8t-45 24.5t-31.5 42t-12 61.5zM453 1403q0 31 11 59t31 49 t48 33.5t63 12.5q46 0 80 -16.5t56.5 -46t34 -69t11.5 -84.5q0 -100 -45.5 -214.5t-142.5 -232.5l-79 57q16 21 36.5 57t38.5 80t30 92.5t12 93.5q-15 -5 -24 -6t-20 -1q-27 0 -52.5 8t-45 24.5t-31.5 42t-12 61.5z" /> +<glyph unicode="„" horiz-adv-x="922" d="M90 127q0 31 11 59t31 49t48 33.5t63 12.5q46 0 80 -16.5t56.5 -46t34 -69t11.5 -84.5q0 -100 -45.5 -214.5t-142.5 -232.5l-79 57q16 21 36.5 57t38.5 80t30 92.5t12 93.5q-15 -5 -24 -6t-20 -1q-27 0 -52.5 8t-45 24.5t-31.5 42t-12 61.5zM500 127q0 31 11 59t31 49 t48 33.5t63 12.5q46 0 80 -16.5t56.5 -46t34 -69t11.5 -84.5q0 -100 -45.5 -214.5t-142.5 -232.5l-79 57q16 21 36.5 57t38.5 80t30 92.5t12 93.5q-15 -5 -24 -6t-20 -1q-27 0 -52.5 8t-45 24.5t-31.5 42t-12 61.5z" /> +<glyph unicode="•" horiz-adv-x="782" d="M64 743q0 67 25.5 126t69.5 102.5t103.5 68.5t127.5 25q67 0 126.5 -25t104.5 -68.5t71 -102.5t26 -126q0 -68 -26 -126.5t-71 -101.5t-104.5 -68t-126.5 -25q-68 0 -127.5 25t-103.5 68t-69.5 101.5t-25.5 126.5z" /> +<glyph unicode="…" horiz-adv-x="1584" d="M90 126q0 33 12 62.5t32.5 51.5t47.5 34.5t57 12.5q32 0 59 -12.5t47 -34.5t31 -51.5t11 -62.5t-10.5 -62t-29 -50.5t-45.5 -34t-60 -12.5q-34 0 -62 12.5t-48 34t-31 50.5t-11 62zM643 126q0 33 12 62.5t32.5 51.5t47.5 34.5t57 12.5q32 0 59 -12.5t47 -34.5t31 -51.5 t11 -62.5t-10.5 -62t-29 -50.5t-45.5 -34t-60 -12.5q-34 0 -62 12.5t-48 34t-31 50.5t-11 62zM1196 126q0 33 12 62.5t32.5 51.5t47.5 34.5t57 12.5q32 0 59 -12.5t47 -34.5t31 -51.5t11 -62.5t-10.5 -62t-29 -50.5t-45.5 -34t-60 -12.5q-34 0 -62 12.5t-48 34t-31 50.5 t-11 62z" /> +<glyph unicode=" " horiz-adv-x="412" /> +<glyph unicode="‹" horiz-adv-x="774" d="M38 537l556 -570l113 113l-374 482v2l374 456l-117 113l-552 -552v-44z" /> +<glyph unicode="›" horiz-adv-x="774" d="M67 80l374 482v2l-374 456l117 113l552 -552v-44l-556 -570z" /> +<glyph unicode=" " horiz-adv-x="515" /> +<glyph unicode="€" horiz-adv-x="1656" d="M85 474l38 160l149 -1q-2 15 -2 30v30v31t1 30h-186l38 160l173 -1q27 111 82.5 211.5t140.5 176.5t199 121t258 45q81 0 170.5 -23.5t171.5 -77.5h2v87h161l-50 -449h-134q-2 151 -75.5 232.5t-218.5 81.5q-86 0 -154.5 -32t-121 -87t-88 -129t-54.5 -157l687 -2 l-97 -153l-609 -3q-1 -14 -1.5 -26.5t-0.5 -26.5q0 -17 1 -35t5 -35l578 -1l-101 -153l-451 -2q45 -171 152 -257t264 -86q64 0 129 17t126 49.5t115.5 79.5t97.5 106l98 -90q-75 -104 -157 -168t-163 -99.5t-157 -48t-139 -12.5q-128 0 -236.5 37.5t-193.5 105t-144.5 161 t-89.5 204.5z" /> +<glyph unicode="™" horiz-adv-x="2273" d="M133 1131l7 303h789l6 -303h-79q0 100 -40 146.5t-109 46.5h-68v-518q0 -33 -1.5 -63t-3.5 -46l97 4v-113h-389v99q20 1 36 4t27 13.5t17 31t6 56.5v530h-66q-69 0 -109 -45.5t-40 -145.5h-80zM978 588v98q20 1 35.5 4t26 13.5t16 31t5.5 56.5l10 428q1 32 2.5 62.5 t3.5 45.5l-92 -3v110h313l201 -470q24 -56 37.5 -99.5t28.5 -87.5h1q5 18 13 44t17 52t17 48.5t13 33.5l184 479h323v-97q-20 -1 -36.5 -3.5t-27.5 -12t-17 -27.5t-6 -51l16 -456q0 -29 -1.5 -53t-3.5 -38l91 4v-112h-369v98q19 1 35 4t27.5 12t17.5 27.5t6 50.5l-10 248 q0 11 -0.5 34.5t-1.5 53.5t-2.5 62t-2.5 60h-1l-242 -662h-160l-176 398q-8 16 -18.5 45.5t-22.5 65t-23.5 74.5t-20.5 75h-1q1 -54 2 -102.5t1 -127.5l2 -199q0 -33 -3.5 -63t-5.5 -46l92 4v-112h-293z" /> +<glyph unicode="◼" horiz-adv-x="1025" d="M0 0v1025h1025v-1025h-1025z" /> +<glyph unicode="fi" horiz-adv-x="1367" d="M62 853v171h149q6 141 46.5 240t109.5 162t164 91.5t211 28.5q96 0 166.5 -13t119.5 -33.5t79.5 -46.5t47 -52.5t22.5 -50.5t6 -41q0 -28 -8 -53t-24.5 -44t-41 -30.5t-56.5 -11.5q-57 0 -91 34.5t-34 87.5q0 21 6 44q-4 4 -15.5 14.5t-34 22t-57.5 20t-86 8.5 q-83 0 -132 -28.5t-74 -75t-32 -105t-7 -119.5v-49l346 -1q45 0 85.5 0.5t72 3t53 6.5t28.5 11h111v-715q0 -15 -0.5 -36t-1.5 -45t-2.5 -49.5t-3.5 -48.5l133 6v-156h-537v133q43 0 67.5 13t36.5 37t15 57.5t3 74.5v379q0 37 1.5 85t6.5 94l-413 -10l3 -530 q0 -15 -0.5 -36.5t-1.5 -46.5t-2.5 -51t-3.5 -49l143 6v-156h-547v133q43 0 67.5 13t36.5 37t15 57.5t3 74.5v541z" /> +<glyph unicode="fl" horiz-adv-x="1382" d="M62 853v171h148v30q0 133 30 226.5t84 152.5t130 86t168 27q58 0 105.5 -7t89.5 -15t80.5 -15t77.5 -7q42 0 68.5 11t51.5 33h111v-1217q0 -15 -0.5 -36t-1.5 -45t-2.5 -49.5t-3.5 -48.5l133 6v-156h-537v133q43 0 67.5 13t36.5 37t15 57.5t3 74.5v1008q-31 17 -57 29.5 t-53 21t-58 13t-73 4.5q-50 0 -84.5 -18.5t-56 -49.5t-30.5 -70.5t-9 -81.5l1 -147h229v-158l-228 -5l3 -528q0 -15 -0.5 -36.5t-1.5 -46.5t-2.5 -51t-3.5 -49l143 6v-156h-547v133q43 0 67.5 13t36.5 37t15 57.5t3 74.5v541z" /> +<hkern u1=""" u2="…" k="240" /> +<hkern u1=""" u2="„" k="260" /> +<hkern u1=""" u2="‚" k="256" /> +<hkern u1=""" u2="ð" k="23" /> +<hkern u1=""" u2="Æ" k="211" /> +<hkern u1=""" u2="g" k="59" /> +<hkern u1=""" u2="J" k="63" /> +<hkern u1=""" u2="@" k="41" /> +<hkern u1=""" u2="4" k="82" /> +<hkern u1=""" u2="/" k="215" /> +<hkern u1=""" u2="." k="240" /> +<hkern u1=""" u2="," k="256" /> +<hkern u1=""" u2="&" k="31" /> +<hkern u1="&" u2="”" k="82" /> +<hkern u1="&" u2="’" k="82" /> +<hkern u1="&" u2="Ÿ" k="94" /> +<hkern u1="&" u2="ÿ" k="37" /> +<hkern u1="&" u2="ý" k="37" /> +<hkern u1="&" u2="ñ" k="-14" /> +<hkern u1="&" u2="ï" k="-14" /> +<hkern u1="&" u2="î" k="-14" /> +<hkern u1="&" u2="í" k="-14" /> +<hkern u1="&" u2="ì" k="-14" /> +<hkern u1="&" u2="æ" k="-14" /> +<hkern u1="&" u2="å" k="-14" /> +<hkern u1="&" u2="ä" k="-14" /> +<hkern u1="&" u2="ã" k="-14" /> +<hkern u1="&" u2="â" k="-14" /> +<hkern u1="&" u2="á" k="-14" /> +<hkern u1="&" u2="à" k="-14" /> +<hkern u1="&" u2="Ý" k="94" /> +<hkern u1="&" u2="Ü" k="39" /> +<hkern u1="&" u2="Û" k="39" /> +<hkern u1="&" u2="Ú" k="39" /> +<hkern u1="&" u2="Ù" k="39" /> +<hkern u1="&" u2="Æ" k="-121" /> +<hkern u1="&" u2="Å" k="-100" /> +<hkern u1="&" u2="Ä" k="-100" /> +<hkern u1="&" u2="Ã" k="-100" /> +<hkern u1="&" u2="Â" k="-100" /> +<hkern u1="&" u2="Á" k="-100" /> +<hkern u1="&" u2="À" k="-100" /> +<hkern u1="&" u2="z" k="-25" /> +<hkern u1="&" u2="y" k="37" /> +<hkern u1="&" u2="x" k="-14" /> +<hkern u1="&" u2="w" k="29" /> +<hkern u1="&" u2="v" k="31" /> +<hkern u1="&" u2="r" k="-14" /> +<hkern u1="&" u2="n" k="-14" /> +<hkern u1="&" u2="m" k="-14" /> +<hkern u1="&" u2="l" k="-45" /> +<hkern u1="&" u2="k" k="-45" /> +<hkern u1="&" u2="i" k="-14" /> +<hkern u1="&" u2="h" k="-45" /> +<hkern u1="&" u2="a" k="-14" /> +<hkern u1="&" u2="Z" k="-27" /> +<hkern u1="&" u2="Y" k="94" /> +<hkern u1="&" u2="X" k="-37" /> +<hkern u1="&" u2="W" k="94" /> +<hkern u1="&" u2="V" k="104" /> +<hkern u1="&" u2="U" k="39" /> +<hkern u1="&" u2="T" k="70" /> +<hkern u1="&" u2="M" k="-12" /> +<hkern u1="&" u2="J" k="-96" /> +<hkern u1="&" u2="A" k="-100" /> +<hkern u1="&" u2="'" k="109" /> +<hkern u1="&" u2=""" k="109" /> +<hkern u1="'" u2="ð" k="23" /> +<hkern u1="'" u2="Æ" k="193" /> +<hkern u1="'" u2="g" k="59" /> +<hkern u1="'" u2="J" k="63" /> +<hkern u1="'" u2="@" k="41" /> +<hkern u1="'" u2="4" k="82" /> +<hkern u1="'" u2="/" k="193" /> +<hkern u1="'" u2="&" k="31" /> +<hkern u1="(" u2="fl" k="33" /> +<hkern u1="(" u2="fi" k="33" /> +<hkern u1="(" u2="Ÿ" k="-33" /> +<hkern u1="(" u2="œ" k="70" /> +<hkern u1="(" u2="Œ" k="47" /> +<hkern u1="(" u2="þ" k="-70" /> +<hkern u1="(" u2="ü" k="49" /> +<hkern u1="(" u2="û" k="49" /> +<hkern u1="(" u2="ú" k="49" /> +<hkern u1="(" u2="ù" k="49" /> +<hkern u1="(" u2="ø" k="70" /> +<hkern u1="(" u2="ö" k="70" /> +<hkern u1="(" u2="õ" k="70" /> +<hkern u1="(" u2="ô" k="70" /> +<hkern u1="(" u2="ó" k="70" /> +<hkern u1="(" u2="ò" k="70" /> +<hkern u1="(" u2="ñ" k="47" /> +<hkern u1="(" u2="ð" k="25" /> +<hkern u1="(" u2="ï" k="10" /> +<hkern u1="(" u2="î" k="25" /> +<hkern u1="(" u2="í" k="25" /> +<hkern u1="(" u2="ì" k="-33" /> +<hkern u1="(" u2="ë" k="70" /> +<hkern u1="(" u2="ê" k="70" /> +<hkern u1="(" u2="é" k="70" /> +<hkern u1="(" u2="è" k="70" /> +<hkern u1="(" u2="ç" k="70" /> +<hkern u1="(" u2="æ" k="57" /> +<hkern u1="(" u2="å" k="57" /> +<hkern u1="(" u2="ä" k="57" /> +<hkern u1="(" u2="ã" k="57" /> +<hkern u1="(" u2="â" k="57" /> +<hkern u1="(" u2="á" k="57" /> +<hkern u1="(" u2="à" k="57" /> +<hkern u1="(" u2="ß" k="33" /> +<hkern u1="(" u2="Ý" k="-33" /> +<hkern u1="(" u2="Ø" k="47" /> +<hkern u1="(" u2="Ö" k="47" /> +<hkern u1="(" u2="Õ" k="47" /> +<hkern u1="(" u2="Ô" k="47" /> +<hkern u1="(" u2="Ó" k="47" /> +<hkern u1="(" u2="Ò" k="47" /> +<hkern u1="(" u2="Ç" k="47" /> +<hkern u1="(" u2="Æ" k="37" /> +<hkern u1="(" u2="Å" k="47" /> +<hkern u1="(" u2="Ä" k="47" /> +<hkern u1="(" u2="Ã" k="47" /> +<hkern u1="(" u2="Â" k="47" /> +<hkern u1="(" u2="Á" k="47" /> +<hkern u1="(" u2="À" k="47" /> +<hkern u1="(" u2="{" k="39" /> +<hkern u1="(" u2="z" k="45" /> +<hkern u1="(" u2="x" k="39" /> +<hkern u1="(" u2="w" k="49" /> +<hkern u1="(" u2="v" k="49" /> +<hkern u1="(" u2="u" k="49" /> +<hkern u1="(" u2="t" k="43" /> +<hkern u1="(" u2="s" k="51" /> +<hkern u1="(" u2="r" k="47" /> +<hkern u1="(" u2="q" k="63" /> +<hkern u1="(" u2="o" k="70" /> +<hkern u1="(" u2="n" k="47" /> +<hkern u1="(" u2="m" k="47" /> +<hkern u1="(" u2="l" k="-25" /> +<hkern u1="(" u2="k" k="-25" /> +<hkern u1="(" u2="j" k="-209" /> +<hkern u1="(" u2="i" k="25" /> +<hkern u1="(" u2="h" k="-25" /> +<hkern u1="(" u2="f" k="33" /> +<hkern u1="(" u2="e" k="70" /> +<hkern u1="(" u2="d" k="63" /> +<hkern u1="(" u2="c" k="70" /> +<hkern u1="(" u2="b" k="-70" /> +<hkern u1="(" u2="a" k="57" /> +<hkern u1="(" u2="Y" k="-33" /> +<hkern u1="(" u2="X" k="-12" /> +<hkern u1="(" u2="W" k="-12" /> +<hkern u1="(" u2="V" k="-23" /> +<hkern u1="(" u2="S" k="23" /> +<hkern u1="(" u2="Q" k="47" /> +<hkern u1="(" u2="O" k="47" /> +<hkern u1="(" u2="J" k="35" /> +<hkern u1="(" u2="G" k="47" /> +<hkern u1="(" u2="C" k="47" /> +<hkern u1="(" u2="A" k="47" /> +<hkern u1="(" u2="9" k="29" /> +<hkern u1="(" u2="8" k="39" /> +<hkern u1="(" u2="6" k="43" /> +<hkern u1="(" u2="4" k="51" /> +<hkern u1="(" u2="3" k="23" /> +<hkern u1="(" u2="0" k="43" /> +<hkern u1="(" u2="(" k="41" /> +<hkern u1=")" u2="}" k="43" /> +<hkern u1=")" u2="]" k="70" /> +<hkern u1=")" u2=")" k="41" /> +<hkern u1="*" u2="œ" k="20" /> +<hkern u1="*" u2="ÿ" k="-20" /> +<hkern u1="*" u2="ý" k="-20" /> +<hkern u1="*" u2="ø" k="20" /> +<hkern u1="*" u2="ö" k="20" /> +<hkern u1="*" u2="õ" k="20" /> +<hkern u1="*" u2="ô" k="20" /> +<hkern u1="*" u2="ó" k="20" /> +<hkern u1="*" u2="ò" k="20" /> +<hkern u1="*" u2="ð" k="20" /> +<hkern u1="*" u2="ë" k="20" /> +<hkern u1="*" u2="ê" k="20" /> +<hkern u1="*" u2="é" k="20" /> +<hkern u1="*" u2="è" k="20" /> +<hkern u1="*" u2="ç" k="20" /> +<hkern u1="*" u2="æ" k="23" /> +<hkern u1="*" u2="å" k="23" /> +<hkern u1="*" u2="ä" k="23" /> +<hkern u1="*" u2="ã" k="23" /> +<hkern u1="*" u2="â" k="23" /> +<hkern u1="*" u2="á" k="23" /> +<hkern u1="*" u2="à" k="23" /> +<hkern u1="*" u2="Þ" k="16" /> +<hkern u1="*" u2="Ñ" k="16" /> +<hkern u1="*" u2="Ð" k="16" /> +<hkern u1="*" u2="Ï" k="16" /> +<hkern u1="*" u2="Î" k="16" /> +<hkern u1="*" u2="Í" k="16" /> +<hkern u1="*" u2="Ì" k="16" /> +<hkern u1="*" u2="Ë" k="16" /> +<hkern u1="*" u2="Ê" k="16" /> +<hkern u1="*" u2="É" k="16" /> +<hkern u1="*" u2="È" k="16" /> +<hkern u1="*" u2="Æ" k="166" /> +<hkern u1="*" u2="Å" k="104" /> +<hkern u1="*" u2="Ä" k="104" /> +<hkern u1="*" u2="Ã" k="104" /> +<hkern u1="*" u2="Â" k="104" /> +<hkern u1="*" u2="Á" k="104" /> +<hkern u1="*" u2="À" k="104" /> +<hkern u1="*" u2="y" k="-20" /> +<hkern u1="*" u2="w" k="-16" /> +<hkern u1="*" u2="v" k="-20" /> +<hkern u1="*" u2="q" k="31" /> +<hkern u1="*" u2="o" k="20" /> +<hkern u1="*" u2="g" k="29" /> +<hkern u1="*" u2="e" k="20" /> +<hkern u1="*" u2="d" k="31" /> +<hkern u1="*" u2="c" k="20" /> +<hkern u1="*" u2="a" k="23" /> +<hkern u1="*" u2="T" k="-55" /> +<hkern u1="*" u2="R" k="16" /> +<hkern u1="*" u2="P" k="16" /> +<hkern u1="*" u2="N" k="16" /> +<hkern u1="*" u2="M" k="18" /> +<hkern u1="*" u2="L" k="16" /> +<hkern u1="*" u2="K" k="16" /> +<hkern u1="*" u2="J" k="82" /> +<hkern u1="*" u2="I" k="16" /> +<hkern u1="*" u2="H" k="16" /> +<hkern u1="*" u2="F" k="16" /> +<hkern u1="*" u2="E" k="16" /> +<hkern u1="*" u2="D" k="16" /> +<hkern u1="*" u2="B" k="16" /> +<hkern u1="*" u2="A" k="104" /> +<hkern u1="+" u2="7" k="72" /> +<hkern u1="+" u2="3" k="20" /> +<hkern u1="+" u2="2" k="37" /> +<hkern u1="+" u2="1" k="35" /> +<hkern u1="," u2="”" k="254" /> +<hkern u1="," u2="“" k="254" /> +<hkern u1="," u2="Æ" k="-10" /> +<hkern u1="," u2="w" k="70" /> +<hkern u1="," u2="v" k="86" /> +<hkern u1="," u2="t" k="27" /> +<hkern u1="," u2="p" k="16" /> +<hkern u1="," u2="j" k="18" /> +<hkern u1="," u2="W" k="160" /> +<hkern u1="," u2="V" k="229" /> +<hkern u1="," u2="T" k="115" /> +<hkern u1="," u2="7" k="59" /> +<hkern u1="," u2="0" k="31" /> +<hkern u1="," u2=""" k="256" /> +<hkern u1="-" u2="Æ" k="121" /> +<hkern u1="-" u2="x" k="25" /> +<hkern u1="-" u2="X" k="125" /> +<hkern u1="-" u2="W" k="94" /> +<hkern u1="-" u2="V" k="106" /> +<hkern u1="-" u2="T" k="129" /> +<hkern u1="-" u2="M" k="47" /> +<hkern u1="-" u2="J" k="119" /> +<hkern u1="-" u2="8" k="23" /> +<hkern u1="-" u2="7" k="121" /> +<hkern u1="-" u2="3" k="41" /> +<hkern u1="-" u2="2" k="59" /> +<hkern u1="-" u2="1" k="57" /> +<hkern u1="." u2="”" k="240" /> +<hkern u1="." u2="“" k="240" /> +<hkern u1="." u2="Æ" k="-10" /> +<hkern u1="." u2="w" k="70" /> +<hkern u1="." u2="v" k="86" /> +<hkern u1="." u2="t" k="27" /> +<hkern u1="." u2="p" k="16" /> +<hkern u1="." u2="j" k="18" /> +<hkern u1="." u2="W" k="160" /> +<hkern u1="." u2="V" k="229" /> +<hkern u1="." u2="T" k="115" /> +<hkern u1="." u2="7" k="59" /> +<hkern u1="." u2="0" k="31" /> +<hkern u1="." u2=""" k="240" /> +<hkern u1="/" u2="Ÿ" k="-55" /> +<hkern u1="/" u2="œ" k="113" /> +<hkern u1="/" u2="Œ" k="37" /> +<hkern u1="/" u2="ÿ" k="35" /> +<hkern u1="/" u2="þ" k="-68" /> +<hkern u1="/" u2="ý" k="35" /> +<hkern u1="/" u2="ü" k="47" /> +<hkern u1="/" u2="û" k="47" /> +<hkern u1="/" u2="ú" k="47" /> +<hkern u1="/" u2="ù" k="47" /> +<hkern u1="/" u2="ø" k="113" /> +<hkern u1="/" u2="ö" k="113" /> +<hkern u1="/" u2="õ" k="113" /> +<hkern u1="/" u2="ô" k="113" /> +<hkern u1="/" u2="ó" k="113" /> +<hkern u1="/" u2="ò" k="113" /> +<hkern u1="/" u2="ñ" k="61" /> +<hkern u1="/" u2="ë" k="113" /> +<hkern u1="/" u2="ê" k="113" /> +<hkern u1="/" u2="é" k="113" /> +<hkern u1="/" u2="è" k="113" /> +<hkern u1="/" u2="ç" k="113" /> +<hkern u1="/" u2="æ" k="94" /> +<hkern u1="/" u2="å" k="94" /> +<hkern u1="/" u2="ä" k="94" /> +<hkern u1="/" u2="ã" k="94" /> +<hkern u1="/" u2="â" k="94" /> +<hkern u1="/" u2="á" k="94" /> +<hkern u1="/" u2="à" k="94" /> +<hkern u1="/" u2="Ý" k="-55" /> +<hkern u1="/" u2="Ø" k="37" /> +<hkern u1="/" u2="Ö" k="37" /> +<hkern u1="/" u2="Õ" k="37" /> +<hkern u1="/" u2="Ô" k="37" /> +<hkern u1="/" u2="Ó" k="37" /> +<hkern u1="/" u2="Ò" k="37" /> +<hkern u1="/" u2="Ç" k="37" /> +<hkern u1="/" u2="Æ" k="182" /> +<hkern u1="/" u2="Å" k="143" /> +<hkern u1="/" u2="Ä" k="143" /> +<hkern u1="/" u2="Ã" k="143" /> +<hkern u1="/" u2="Â" k="143" /> +<hkern u1="/" u2="Á" k="143" /> +<hkern u1="/" u2="À" k="143" /> +<hkern u1="/" u2="z" k="66" /> +<hkern u1="/" u2="y" k="35" /> +<hkern u1="/" u2="x" k="39" /> +<hkern u1="/" u2="w" k="35" /> +<hkern u1="/" u2="v" k="33" /> +<hkern u1="/" u2="u" k="47" /> +<hkern u1="/" u2="t" k="31" /> +<hkern u1="/" u2="s" k="86" /> +<hkern u1="/" u2="r" k="61" /> +<hkern u1="/" u2="q" k="104" /> +<hkern u1="/" u2="p" k="55" /> +<hkern u1="/" u2="o" k="113" /> +<hkern u1="/" u2="n" k="61" /> +<hkern u1="/" u2="m" k="61" /> +<hkern u1="/" u2="g" k="111" /> +<hkern u1="/" u2="e" k="113" /> +<hkern u1="/" u2="d" k="104" /> +<hkern u1="/" u2="c" k="113" /> +<hkern u1="/" u2="b" k="-68" /> +<hkern u1="/" u2="a" k="94" /> +<hkern u1="/" u2="Y" k="-55" /> +<hkern u1="/" u2="X" k="-39" /> +<hkern u1="/" u2="W" k="-39" /> +<hkern u1="/" u2="V" k="-55" /> +<hkern u1="/" u2="T" k="-14" /> +<hkern u1="/" u2="Q" k="37" /> +<hkern u1="/" u2="O" k="37" /> +<hkern u1="/" u2="J" k="45" /> +<hkern u1="/" u2="G" k="37" /> +<hkern u1="/" u2="C" k="37" /> +<hkern u1="/" u2="A" k="143" /> +<hkern u1="/" u2="7" k="-12" /> +<hkern u1="/" u2="6" k="31" /> +<hkern u1="/" u2="4" k="94" /> +<hkern u1="/" u2="0" k="27" /> +<hkern u1="/" u2="/" k="700" /> +<hkern u1="0" u2="…" k="35" /> +<hkern u1="0" u2="„" k="35" /> +<hkern u1="0" u2="‚" k="35" /> +<hkern u1="0" u2="Ÿ" k="37" /> +<hkern u1="0" u2="Ý" k="37" /> +<hkern u1="0" u2="Å" k="41" /> +<hkern u1="0" u2="Ä" k="41" /> +<hkern u1="0" u2="Ã" k="41" /> +<hkern u1="0" u2="Â" k="41" /> +<hkern u1="0" u2="Á" k="41" /> +<hkern u1="0" u2="À" k="41" /> +<hkern u1="0" u2="}" k="47" /> +<hkern u1="0" u2="]" k="82" /> +<hkern u1="0" u2="\" k="23" /> +<hkern u1="0" u2="Y" k="37" /> +<hkern u1="0" u2="W" k="37" /> +<hkern u1="0" u2="V" k="37" /> +<hkern u1="0" u2="A" k="41" /> +<hkern u1="0" u2="/" k="131" /> +<hkern u1="0" u2="." k="35" /> +<hkern u1="0" u2="," k="35" /> +<hkern u1="0" u2=")" k="43" /> +<hkern u1="1" u2="—" k="31" /> +<hkern u1="1" u2="–" k="31" /> +<hkern u1="1" u2="Ÿ" k="31" /> +<hkern u1="1" u2="Ý" k="31" /> +<hkern u1="1" u2="Ü" k="20" /> +<hkern u1="1" u2="Û" k="20" /> +<hkern u1="1" u2="Ú" k="20" /> +<hkern u1="1" u2="Ù" k="20" /> +<hkern u1="1" u2="Å" k="-18" /> +<hkern u1="1" u2="Ä" k="-18" /> +<hkern u1="1" u2="Ã" k="-18" /> +<hkern u1="1" u2="Â" k="-18" /> +<hkern u1="1" u2="Á" k="-18" /> +<hkern u1="1" u2="À" k="-18" /> +<hkern u1="1" u2="·" k="33" /> +<hkern u1="1" u2="­" k="31" /> +<hkern u1="1" u2="}" k="25" /> +<hkern u1="1" u2="]" k="39" /> +<hkern u1="1" u2="Y" k="31" /> +<hkern u1="1" u2="W" k="37" /> +<hkern u1="1" u2="V" k="35" /> +<hkern u1="1" u2="U" k="20" /> +<hkern u1="1" u2="J" k="-23" /> +<hkern u1="1" u2="A" k="-18" /> +<hkern u1="1" u2="/" k="49" /> +<hkern u1="1" u2="-" k="31" /> +<hkern u1="1" u2="+" k="20" /> +<hkern u1="1" u2=")" k="27" /> +<hkern u1="2" u2="—" k="33" /> +<hkern u1="2" u2="–" k="33" /> +<hkern u1="2" u2="·" k="33" /> +<hkern u1="2" u2="­" k="33" /> +<hkern u1="2" u2="}" k="23" /> +<hkern u1="2" u2="]" k="47" /> +<hkern u1="2" u2="/" k="59" /> +<hkern u1="2" u2="-" k="33" /> +<hkern u1="3" u2="Ÿ" k="27" /> +<hkern u1="3" u2="Ý" k="27" /> +<hkern u1="3" u2="}" k="43" /> +<hkern u1="3" u2="]" k="61" /> +<hkern u1="3" u2="Y" k="27" /> +<hkern u1="3" u2="W" k="29" /> +<hkern u1="3" u2="V" k="29" /> +<hkern u1="3" u2="/" k="96" /> +<hkern u1="3" u2=")" k="39" /> +<hkern u1="4" u2="Ÿ" k="45" /> +<hkern u1="4" u2="Ý" k="45" /> +<hkern u1="4" u2="°" k="33" /> +<hkern u1="4" u2="}" k="39" /> +<hkern u1="4" u2="]" k="51" /> +<hkern u1="4" u2="\" k="27" /> +<hkern u1="4" u2="Y" k="45" /> +<hkern u1="4" u2="W" k="49" /> +<hkern u1="4" u2="V" k="49" /> +<hkern u1="4" u2="T" k="27" /> +<hkern u1="4" u2="4" k="-20" /> +<hkern u1="4" u2="/" k="63" /> +<hkern u1="4" u2=")" k="35" /> +<hkern u1="4" u2="'" k="33" /> +<hkern u1="4" u2=""" k="33" /> +<hkern u1="5" u2="4" k="-23" /> +<hkern u1="5" u2="/" k="94" /> +<hkern u1="6" u2="Ÿ" k="20" /> +<hkern u1="6" u2="Ý" k="20" /> +<hkern u1="6" u2="Å" k="20" /> +<hkern u1="6" u2="Ä" k="20" /> +<hkern u1="6" u2="Ã" k="20" /> +<hkern u1="6" u2="Â" k="20" /> +<hkern u1="6" u2="Á" k="20" /> +<hkern u1="6" u2="À" k="20" /> +<hkern u1="6" u2="}" k="39" /> +<hkern u1="6" u2="]" k="49" /> +<hkern u1="6" u2="Y" k="20" /> +<hkern u1="6" u2="W" k="23" /> +<hkern u1="6" u2="V" k="23" /> +<hkern u1="6" u2="A" k="20" /> +<hkern u1="6" u2="/" k="102" /> +<hkern u1="6" u2=")" k="35" /> +<hkern u1="7" u2="…" k="129" /> +<hkern u1="7" u2="„" k="129" /> +<hkern u1="7" u2="‚" k="129" /> +<hkern u1="7" u2="—" k="43" /> +<hkern u1="7" u2="–" k="43" /> +<hkern u1="7" u2="Ÿ" k="-57" /> +<hkern u1="7" u2="œ" k="76" /> +<hkern u1="7" u2="ø" k="76" /> +<hkern u1="7" u2="ö" k="76" /> +<hkern u1="7" u2="õ" k="76" /> +<hkern u1="7" u2="ô" k="76" /> +<hkern u1="7" u2="ó" k="76" /> +<hkern u1="7" u2="ò" k="76" /> +<hkern u1="7" u2="ë" k="76" /> +<hkern u1="7" u2="ê" k="76" /> +<hkern u1="7" u2="é" k="76" /> +<hkern u1="7" u2="è" k="76" /> +<hkern u1="7" u2="ç" k="76" /> +<hkern u1="7" u2="Ý" k="-57" /> +<hkern u1="7" u2="Ü" k="-10" /> +<hkern u1="7" u2="Û" k="-10" /> +<hkern u1="7" u2="Ú" k="-10" /> +<hkern u1="7" u2="Ù" k="-10" /> +<hkern u1="7" u2="Æ" k="156" /> +<hkern u1="7" u2="Å" k="86" /> +<hkern u1="7" u2="Ä" k="86" /> +<hkern u1="7" u2="Ã" k="86" /> +<hkern u1="7" u2="Â" k="86" /> +<hkern u1="7" u2="Á" k="86" /> +<hkern u1="7" u2="À" k="86" /> +<hkern u1="7" u2="·" k="37" /> +<hkern u1="7" u2="­" k="43" /> +<hkern u1="7" u2="¢" k="45" /> +<hkern u1="7" u2="}" k="-43" /> +<hkern u1="7" u2="z" k="25" /> +<hkern u1="7" u2="o" k="76" /> +<hkern u1="7" u2="e" k="76" /> +<hkern u1="7" u2="c" k="76" /> +<hkern u1="7" u2="]" k="-53" /> +<hkern u1="7" u2="\" k="-18" /> +<hkern u1="7" u2="Y" k="-57" /> +<hkern u1="7" u2="X" k="-39" /> +<hkern u1="7" u2="W" k="-39" /> +<hkern u1="7" u2="V" k="-47" /> +<hkern u1="7" u2="U" k="-10" /> +<hkern u1="7" u2="T" k="-27" /> +<hkern u1="7" u2="J" k="43" /> +<hkern u1="7" u2="A" k="86" /> +<hkern u1="7" u2="7" k="-29" /> +<hkern u1="7" u2="4" k="39" /> +<hkern u1="7" u2="/" k="172" /> +<hkern u1="7" u2="." k="129" /> +<hkern u1="7" u2="-" k="43" /> +<hkern u1="7" u2="," k="129" /> +<hkern u1="7" u2="+" k="33" /> +<hkern u1="7" u2="#" k="20" /> +<hkern u1="8" u2="Ÿ" k="25" /> +<hkern u1="8" u2="Ý" k="25" /> +<hkern u1="8" u2="}" k="41" /> +<hkern u1="8" u2="]" k="61" /> +<hkern u1="8" u2="Y" k="25" /> +<hkern u1="8" u2="W" k="29" /> +<hkern u1="8" u2="V" k="27" /> +<hkern u1="8" u2="/" k="92" /> +<hkern u1="8" u2=")" k="37" /> +<hkern u1="9" u2="…" k="33" /> +<hkern u1="9" u2="„" k="33" /> +<hkern u1="9" u2="‚" k="33" /> +<hkern u1="9" u2="Ÿ" k="27" /> +<hkern u1="9" u2="Ý" k="27" /> +<hkern u1="9" u2="Å" k="39" /> +<hkern u1="9" u2="Ä" k="39" /> +<hkern u1="9" u2="Ã" k="39" /> +<hkern u1="9" u2="Â" k="39" /> +<hkern u1="9" u2="Á" k="39" /> +<hkern u1="9" u2="À" k="39" /> +<hkern u1="9" u2="}" k="43" /> +<hkern u1="9" u2="]" k="70" /> +<hkern u1="9" u2="Y" k="27" /> +<hkern u1="9" u2="W" k="29" /> +<hkern u1="9" u2="V" k="29" /> +<hkern u1="9" u2="A" k="39" /> +<hkern u1="9" u2="/" k="129" /> +<hkern u1="9" u2="." k="33" /> +<hkern u1="9" u2="," k="33" /> +<hkern u1="9" u2=")" k="41" /> +<hkern u1="=" u2="7" k="59" /> +<hkern u1="@" u2="”" k="20" /> +<hkern u1="@" u2="’" k="20" /> +<hkern u1="@" u2="Ÿ" k="72" /> +<hkern u1="@" u2="Ý" k="72" /> +<hkern u1="@" u2="Å" k="25" /> +<hkern u1="@" u2="Ä" k="25" /> +<hkern u1="@" u2="Ã" k="25" /> +<hkern u1="@" u2="Â" k="25" /> +<hkern u1="@" u2="Á" k="25" /> +<hkern u1="@" u2="À" k="25" /> +<hkern u1="@" u2="Y" k="72" /> +<hkern u1="@" u2="X" k="23" /> +<hkern u1="@" u2="W" k="66" /> +<hkern u1="@" u2="V" k="70" /> +<hkern u1="@" u2="A" k="25" /> +<hkern u1="@" u2="'" k="20" /> +<hkern u1="@" u2=""" k="20" /> +<hkern u1="A" u2="™" k="121" /> +<hkern u1="A" u2="ð" k="23" /> +<hkern u1="A" u2="Æ" k="-49" /> +<hkern u1="A" u2="®" k="33" /> +<hkern u1="A" u2="}" k="49" /> +<hkern u1="A" u2="x" k="8" /> +<hkern u1="A" u2="w" k="66" /> +<hkern u1="A" u2="v" k="100" /> +<hkern u1="A" u2="t" k="45" /> +<hkern u1="A" u2="p" k="31" /> +<hkern u1="A" u2="j" k="33" /> +<hkern u1="A" u2="g" k="12" /> +<hkern u1="A" u2="]" k="109" /> +<hkern u1="A" u2="\" k="145" /> +<hkern u1="A" u2="W" k="143" /> +<hkern u1="A" u2="V" k="160" /> +<hkern u1="A" u2="T" k="109" /> +<hkern u1="A" u2="J" k="-35" /> +<hkern u1="A" u2="?" k="61" /> +<hkern u1="A" u2="7" k="59" /> +<hkern u1="A" u2="6" k="23" /> +<hkern u1="A" u2="4" k="20" /> +<hkern u1="A" u2="2" k="-18" /> +<hkern u1="A" u2="0" k="31" /> +<hkern u1="A" u2="/" k="31" /> +<hkern u1="A" u2="*" k="104" /> +<hkern u1="A" u2=")" k="43" /> +<hkern u1="B" u2="fl" k="23" /> +<hkern u1="B" u2="fi" k="23" /> +<hkern u1="B" u2="Ÿ" k="43" /> +<hkern u1="B" u2="ÿ" k="31" /> +<hkern u1="B" u2="ý" k="31" /> +<hkern u1="B" u2="ü" k="16" /> +<hkern u1="B" u2="û" k="16" /> +<hkern u1="B" u2="ú" k="16" /> +<hkern u1="B" u2="ù" k="16" /> +<hkern u1="B" u2="ñ" k="23" /> +<hkern u1="B" u2="ï" k="25" /> +<hkern u1="B" u2="î" k="25" /> +<hkern u1="B" u2="í" k="25" /> +<hkern u1="B" u2="ì" k="25" /> +<hkern u1="B" u2="ß" k="23" /> +<hkern u1="B" u2="Þ" k="23" /> +<hkern u1="B" u2="Ý" k="43" /> +<hkern u1="B" u2="Ü" k="12" /> +<hkern u1="B" u2="Û" k="12" /> +<hkern u1="B" u2="Ú" k="12" /> +<hkern u1="B" u2="Ù" k="12" /> +<hkern u1="B" u2="Ñ" k="23" /> +<hkern u1="B" u2="Ð" k="23" /> +<hkern u1="B" u2="Ï" k="23" /> +<hkern u1="B" u2="Î" k="23" /> +<hkern u1="B" u2="Í" k="23" /> +<hkern u1="B" u2="Ì" k="23" /> +<hkern u1="B" u2="Ë" k="23" /> +<hkern u1="B" u2="Ê" k="23" /> +<hkern u1="B" u2="É" k="23" /> +<hkern u1="B" u2="È" k="23" /> +<hkern u1="B" u2="Æ" k="33" /> +<hkern u1="B" u2="Å" k="31" /> +<hkern u1="B" u2="Ä" k="31" /> +<hkern u1="B" u2="Ã" k="31" /> +<hkern u1="B" u2="Â" k="31" /> +<hkern u1="B" u2="Á" k="31" /> +<hkern u1="B" u2="À" k="31" /> +<hkern u1="B" u2="}" k="55" /> +<hkern u1="B" u2="z" k="14" /> +<hkern u1="B" u2="y" k="31" /> +<hkern u1="B" u2="x" k="37" /> +<hkern u1="B" u2="w" k="27" /> +<hkern u1="B" u2="v" k="29" /> +<hkern u1="B" u2="u" k="16" /> +<hkern u1="B" u2="t" k="16" /> +<hkern u1="B" u2="s" k="8" /> +<hkern u1="B" u2="r" k="23" /> +<hkern u1="B" u2="p" k="20" /> +<hkern u1="B" u2="n" k="23" /> +<hkern u1="B" u2="m" k="23" /> +<hkern u1="B" u2="l" k="20" /> +<hkern u1="B" u2="k" k="20" /> +<hkern u1="B" u2="j" k="20" /> +<hkern u1="B" u2="i" k="25" /> +<hkern u1="B" u2="h" k="20" /> +<hkern u1="B" u2="g" k="12" /> +<hkern u1="B" u2="f" k="23" /> +<hkern u1="B" u2="]" k="94" /> +<hkern u1="B" u2="\" k="37" /> +<hkern u1="B" u2="Z" k="10" /> +<hkern u1="B" u2="Y" k="43" /> +<hkern u1="B" u2="X" k="63" /> +<hkern u1="B" u2="W" k="45" /> +<hkern u1="B" u2="V" k="45" /> +<hkern u1="B" u2="U" k="12" /> +<hkern u1="B" u2="T" k="14" /> +<hkern u1="B" u2="R" k="23" /> +<hkern u1="B" u2="P" k="23" /> +<hkern u1="B" u2="N" k="23" /> +<hkern u1="B" u2="M" k="25" /> +<hkern u1="B" u2="L" k="23" /> +<hkern u1="B" u2="K" k="23" /> +<hkern u1="B" u2="I" k="23" /> +<hkern u1="B" u2="H" k="23" /> +<hkern u1="B" u2="F" k="23" /> +<hkern u1="B" u2="E" k="23" /> +<hkern u1="B" u2="D" k="23" /> +<hkern u1="B" u2="B" k="23" /> +<hkern u1="B" u2="A" k="31" /> +<hkern u1="B" u2="4" k="-25" /> +<hkern u1="B" u2="/" k="100" /> +<hkern u1="B" u2=")" k="45" /> +<hkern u1="C" u2="Æ" k="25" /> +<hkern u1="C" u2="g" k="16" /> +<hkern u1="C" u2="3" k="-16" /> +<hkern u1="C" u2="/" k="78" /> +<hkern u1="C" u2="&" k="-25" /> +<hkern u1="D" u2="Æ" k="82" /> +<hkern u1="D" u2="}" k="57" /> +<hkern u1="D" u2="x" k="12" /> +<hkern u1="D" u2="g" k="12" /> +<hkern u1="D" u2="]" k="102" /> +<hkern u1="D" u2="\" k="41" /> +<hkern u1="D" u2="X" k="74" /> +<hkern u1="D" u2="W" k="51" /> +<hkern u1="D" u2="V" k="53" /> +<hkern u1="D" u2="M" k="31" /> +<hkern u1="D" u2="J" k="23" /> +<hkern u1="D" u2="/" k="147" /> +<hkern u1="D" u2=")" k="51" /> +<hkern u1="E" u2="ð" k="8" /> +<hkern u1="E" u2="w" k="25" /> +<hkern u1="E" u2="v" k="31" /> +<hkern u1="E" u2="t" k="14" /> +<hkern u1="E" u2="p" k="23" /> +<hkern u1="E" u2="j" k="23" /> +<hkern u1="E" u2="g" k="16" /> +<hkern u1="E" u2="W" k="14" /> +<hkern u1="E" u2="V" k="14" /> +<hkern u1="E" u2="/" k="57" /> +<hkern u1="F" u2="fl" k="10" /> +<hkern u1="F" u2="fi" k="10" /> +<hkern u1="F" u2="™" k="-18" /> +<hkern u1="F" u2="‹" k="43" /> +<hkern u1="F" u2="…" k="131" /> +<hkern u1="F" u2="„" k="131" /> +<hkern u1="F" u2="”" k="-23" /> +<hkern u1="F" u2="‚" k="131" /> +<hkern u1="F" u2="’" k="-23" /> +<hkern u1="F" u2="—" k="61" /> +<hkern u1="F" u2="–" k="61" /> +<hkern u1="F" u2="Ÿ" k="-12" /> +<hkern u1="F" u2="œ" k="86" /> +<hkern u1="F" u2="þ" k="-55" /> +<hkern u1="F" u2="ü" k="18" /> +<hkern u1="F" u2="û" k="18" /> +<hkern u1="F" u2="ú" k="18" /> +<hkern u1="F" u2="ù" k="18" /> +<hkern u1="F" u2="ø" k="86" /> +<hkern u1="F" u2="ö" k="86" /> +<hkern u1="F" u2="õ" k="86" /> +<hkern u1="F" u2="ô" k="86" /> +<hkern u1="F" u2="ó" k="86" /> +<hkern u1="F" u2="ò" k="86" /> +<hkern u1="F" u2="ñ" k="31" /> +<hkern u1="F" u2="ð" k="41" /> +<hkern u1="F" u2="ï" k="-4" /> +<hkern u1="F" u2="î" k="-33" /> +<hkern u1="F" u2="í" k="23" /> +<hkern u1="F" u2="ì" k="-2" /> +<hkern u1="F" u2="ë" k="86" /> +<hkern u1="F" u2="ê" k="86" /> +<hkern u1="F" u2="é" k="86" /> +<hkern u1="F" u2="è" k="86" /> +<hkern u1="F" u2="ç" k="86" /> +<hkern u1="F" u2="æ" k="84" /> +<hkern u1="F" u2="å" k="84" /> +<hkern u1="F" u2="ä" k="84" /> +<hkern u1="F" u2="ã" k="84" /> +<hkern u1="F" u2="â" k="84" /> +<hkern u1="F" u2="á" k="84" /> +<hkern u1="F" u2="à" k="84" /> +<hkern u1="F" u2="ß" k="10" /> +<hkern u1="F" u2="Ý" k="-12" /> +<hkern u1="F" u2="Æ" k="166" /> +<hkern u1="F" u2="Å" k="104" /> +<hkern u1="F" u2="Ä" k="104" /> +<hkern u1="F" u2="Ã" k="104" /> +<hkern u1="F" u2="Â" k="104" /> +<hkern u1="F" u2="Á" k="104" /> +<hkern u1="F" u2="À" k="104" /> +<hkern u1="F" u2="­" k="61" /> +<hkern u1="F" u2="«" k="43" /> +<hkern u1="F" u2="}" k="-43" /> +<hkern u1="F" u2="z" k="31" /> +<hkern u1="F" u2="x" k="10" /> +<hkern u1="F" u2="w" k="8" /> +<hkern u1="F" u2="u" k="18" /> +<hkern u1="F" u2="s" k="70" /> +<hkern u1="F" u2="r" k="31" /> +<hkern u1="F" u2="q" k="86" /> +<hkern u1="F" u2="p" k="25" /> +<hkern u1="F" u2="o" k="86" /> +<hkern u1="F" u2="n" k="31" /> +<hkern u1="F" u2="m" k="31" /> +<hkern u1="F" u2="l" k="-10" /> +<hkern u1="F" u2="k" k="-10" /> +<hkern u1="F" u2="j" k="16" /> +<hkern u1="F" u2="i" k="23" /> +<hkern u1="F" u2="h" k="-10" /> +<hkern u1="F" u2="g" k="82" /> +<hkern u1="F" u2="f" k="10" /> +<hkern u1="F" u2="e" k="86" /> +<hkern u1="F" u2="d" k="86" /> +<hkern u1="F" u2="c" k="86" /> +<hkern u1="F" u2="b" k="-55" /> +<hkern u1="F" u2="a" k="84" /> +<hkern u1="F" u2="]" k="-55" /> +<hkern u1="F" u2="\" k="-18" /> +<hkern u1="F" u2="Y" k="-12" /> +<hkern u1="F" u2="J" k="57" /> +<hkern u1="F" u2="A" k="104" /> +<hkern u1="F" u2="@" k="25" /> +<hkern u1="F" u2="7" k="-45" /> +<hkern u1="F" u2="4" k="29" /> +<hkern u1="F" u2="1" k="-59" /> +<hkern u1="F" u2="/" k="176" /> +<hkern u1="F" u2="." k="131" /> +<hkern u1="F" u2="-" k="61" /> +<hkern u1="F" u2="," k="131" /> +<hkern u1="F" u2="*" k="-57" /> +<hkern u1="G" u2="fl" k="14" /> +<hkern u1="G" u2="fi" k="14" /> +<hkern u1="G" u2="‹" k="-18" /> +<hkern u1="G" u2="Ÿ" k="29" /> +<hkern u1="G" u2="ÿ" k="14" /> +<hkern u1="G" u2="ý" k="14" /> +<hkern u1="G" u2="ñ" k="12" /> +<hkern u1="G" u2="ï" k="12" /> +<hkern u1="G" u2="î" k="12" /> +<hkern u1="G" u2="í" k="12" /> +<hkern u1="G" u2="ì" k="12" /> +<hkern u1="G" u2="ß" k="14" /> +<hkern u1="G" u2="Ý" k="29" /> +<hkern u1="G" u2="Æ" k="16" /> +<hkern u1="G" u2="Å" k="16" /> +<hkern u1="G" u2="Ä" k="16" /> +<hkern u1="G" u2="Ã" k="16" /> +<hkern u1="G" u2="Â" k="16" /> +<hkern u1="G" u2="Á" k="16" /> +<hkern u1="G" u2="À" k="16" /> +<hkern u1="G" u2="«" k="-18" /> +<hkern u1="G" u2="}" k="29" /> +<hkern u1="G" u2="y" k="14" /> +<hkern u1="G" u2="x" k="23" /> +<hkern u1="G" u2="w" k="14" /> +<hkern u1="G" u2="v" k="12" /> +<hkern u1="G" u2="t" k="10" /> +<hkern u1="G" u2="r" k="12" /> +<hkern u1="G" u2="p" k="12" /> +<hkern u1="G" u2="n" k="12" /> +<hkern u1="G" u2="m" k="12" /> +<hkern u1="G" u2="l" k="12" /> +<hkern u1="G" u2="k" k="12" /> +<hkern u1="G" u2="j" k="12" /> +<hkern u1="G" u2="i" k="12" /> +<hkern u1="G" u2="h" k="12" /> +<hkern u1="G" u2="f" k="14" /> +<hkern u1="G" u2="]" k="43" /> +<hkern u1="G" u2="Y" k="29" /> +<hkern u1="G" u2="X" k="20" /> +<hkern u1="G" u2="W" k="29" /> +<hkern u1="G" u2="V" k="29" /> +<hkern u1="G" u2="T" k="14" /> +<hkern u1="G" u2="A" k="16" /> +<hkern u1="G" u2="4" k="-37" /> +<hkern u1="G" u2="/" k="98" /> +<hkern u1="G" u2=")" k="31" /> +<hkern u1="G" u2="'" k="16" /> +<hkern u1="G" u2=""" k="16" /> +<hkern u1="H" u2="ð" k="43" /> +<hkern u1="H" u2="x" k="20" /> +<hkern u1="H" u2="w" k="63" /> +<hkern u1="H" u2="v" k="66" /> +<hkern u1="H" u2="t" k="51" /> +<hkern u1="H" u2="p" k="49" /> +<hkern u1="H" u2="j" k="43" /> +<hkern u1="H" u2="g" k="35" /> +<hkern u1="H" u2="/" k="61" /> +<hkern u1="H" u2="*" k="18" /> +<hkern u1="I" u2="ð" k="43" /> +<hkern u1="I" u2="x" k="20" /> +<hkern u1="I" u2="w" k="63" /> +<hkern u1="I" u2="v" k="66" /> +<hkern u1="I" u2="t" k="51" /> +<hkern u1="I" u2="p" k="49" /> +<hkern u1="I" u2="j" k="43" /> +<hkern u1="I" u2="g" k="35" /> +<hkern u1="I" u2="/" k="61" /> +<hkern u1="I" u2="*" k="18" /> +<hkern u1="J" u2="fl" k="43" /> +<hkern u1="J" u2="fi" k="43" /> +<hkern u1="J" u2="›" k="23" /> +<hkern u1="J" u2="‹" k="20" /> +<hkern u1="J" u2="…" k="55" /> +<hkern u1="J" u2="„" k="55" /> +<hkern u1="J" u2="‚" k="55" /> +<hkern u1="J" u2="—" k="35" /> +<hkern u1="J" u2="–" k="35" /> +<hkern u1="J" u2="œ" k="57" /> +<hkern u1="J" u2="Œ" k="16" /> +<hkern u1="J" u2="ÿ" k="39" /> +<hkern u1="J" u2="þ" k="-39" /> +<hkern u1="J" u2="ý" k="39" /> +<hkern u1="J" u2="ü" k="43" /> +<hkern u1="J" u2="û" k="43" /> +<hkern u1="J" u2="ú" k="43" /> +<hkern u1="J" u2="ù" k="43" /> +<hkern u1="J" u2="ø" k="57" /> +<hkern u1="J" u2="ö" k="57" /> +<hkern u1="J" u2="õ" k="57" /> +<hkern u1="J" u2="ô" k="57" /> +<hkern u1="J" u2="ó" k="57" /> +<hkern u1="J" u2="ò" k="57" /> +<hkern u1="J" u2="ñ" k="55" /> +<hkern u1="J" u2="ð" k="41" /> +<hkern u1="J" u2="ï" k="12" /> +<hkern u1="J" u2="î" k="27" /> +<hkern u1="J" u2="í" k="43" /> +<hkern u1="J" u2="ì" k="12" /> +<hkern u1="J" u2="ë" k="57" /> +<hkern u1="J" u2="ê" k="57" /> +<hkern u1="J" u2="é" k="57" /> +<hkern u1="J" u2="è" k="57" /> +<hkern u1="J" u2="ç" k="57" /> +<hkern u1="J" u2="æ" k="61" /> +<hkern u1="J" u2="å" k="61" /> +<hkern u1="J" u2="ä" k="61" /> +<hkern u1="J" u2="ã" k="61" /> +<hkern u1="J" u2="â" k="61" /> +<hkern u1="J" u2="á" k="61" /> +<hkern u1="J" u2="à" k="61" /> +<hkern u1="J" u2="ß" k="43" /> +<hkern u1="J" u2="Ø" k="16" /> +<hkern u1="J" u2="Ö" k="16" /> +<hkern u1="J" u2="Õ" k="16" /> +<hkern u1="J" u2="Ô" k="16" /> +<hkern u1="J" u2="Ó" k="16" /> +<hkern u1="J" u2="Ò" k="16" /> +<hkern u1="J" u2="Ç" k="16" /> +<hkern u1="J" u2="Æ" k="68" /> +<hkern u1="J" u2="Å" k="66" /> +<hkern u1="J" u2="Ä" k="66" /> +<hkern u1="J" u2="Ã" k="66" /> +<hkern u1="J" u2="Â" k="66" /> +<hkern u1="J" u2="Á" k="66" /> +<hkern u1="J" u2="À" k="66" /> +<hkern u1="J" u2="»" k="23" /> +<hkern u1="J" u2="­" k="35" /> +<hkern u1="J" u2="«" k="20" /> +<hkern u1="J" u2="}" k="-27" /> +<hkern u1="J" u2="z" k="59" /> +<hkern u1="J" u2="y" k="39" /> +<hkern u1="J" u2="x" k="45" /> +<hkern u1="J" u2="w" k="41" /> +<hkern u1="J" u2="v" k="39" /> +<hkern u1="J" u2="u" k="43" /> +<hkern u1="J" u2="t" k="43" /> +<hkern u1="J" u2="s" k="55" /> +<hkern u1="J" u2="r" k="55" /> +<hkern u1="J" u2="q" k="57" /> +<hkern u1="J" u2="p" k="53" /> +<hkern u1="J" u2="o" k="57" /> +<hkern u1="J" u2="n" k="55" /> +<hkern u1="J" u2="m" k="55" /> +<hkern u1="J" u2="j" k="33" /> +<hkern u1="J" u2="i" k="43" /> +<hkern u1="J" u2="g" k="59" /> +<hkern u1="J" u2="f" k="43" /> +<hkern u1="J" u2="e" k="57" /> +<hkern u1="J" u2="d" k="57" /> +<hkern u1="J" u2="c" k="57" /> +<hkern u1="J" u2="b" k="-39" /> +<hkern u1="J" u2="a" k="61" /> +<hkern u1="J" u2="]" k="-39" /> +<hkern u1="J" u2="Q" k="16" /> +<hkern u1="J" u2="O" k="16" /> +<hkern u1="J" u2="J" k="23" /> +<hkern u1="J" u2="G" k="16" /> +<hkern u1="J" u2="C" k="16" /> +<hkern u1="J" u2="A" k="66" /> +<hkern u1="J" u2="@" k="20" /> +<hkern u1="J" u2=";" k="33" /> +<hkern u1="J" u2=":" k="25" /> +<hkern u1="J" u2="7" k="-10" /> +<hkern u1="J" u2="/" k="147" /> +<hkern u1="J" u2="." k="55" /> +<hkern u1="J" u2="-" k="35" /> +<hkern u1="J" u2="," k="55" /> +<hkern u1="K" u2="›" k="-23" /> +<hkern u1="K" u2="‹" k="55" /> +<hkern u1="K" u2="—" k="117" /> +<hkern u1="K" u2="–" k="117" /> +<hkern u1="K" u2="œ" k="55" /> +<hkern u1="K" u2="Œ" k="84" /> +<hkern u1="K" u2="ÿ" k="143" /> +<hkern u1="K" u2="ý" k="143" /> +<hkern u1="K" u2="ü" k="55" /> +<hkern u1="K" u2="û" k="55" /> +<hkern u1="K" u2="ú" k="55" /> +<hkern u1="K" u2="ù" k="55" /> +<hkern u1="K" u2="ø" k="55" /> +<hkern u1="K" u2="ö" k="55" /> +<hkern u1="K" u2="õ" k="55" /> +<hkern u1="K" u2="ô" k="55" /> +<hkern u1="K" u2="ó" k="55" /> +<hkern u1="K" u2="ò" k="55" /> +<hkern u1="K" u2="ð" k="45" /> +<hkern u1="K" u2="ë" k="55" /> +<hkern u1="K" u2="ê" k="55" /> +<hkern u1="K" u2="é" k="55" /> +<hkern u1="K" u2="è" k="55" /> +<hkern u1="K" u2="ç" k="55" /> +<hkern u1="K" u2="æ" k="10" /> +<hkern u1="K" u2="å" k="10" /> +<hkern u1="K" u2="ä" k="10" /> +<hkern u1="K" u2="ã" k="10" /> +<hkern u1="K" u2="â" k="10" /> +<hkern u1="K" u2="á" k="10" /> +<hkern u1="K" u2="à" k="10" /> +<hkern u1="K" u2="Ø" k="84" /> +<hkern u1="K" u2="Ö" k="84" /> +<hkern u1="K" u2="Õ" k="84" /> +<hkern u1="K" u2="Ô" k="84" /> +<hkern u1="K" u2="Ó" k="84" /> +<hkern u1="K" u2="Ò" k="84" /> +<hkern u1="K" u2="Ç" k="84" /> +<hkern u1="K" u2="»" k="-23" /> +<hkern u1="K" u2="­" k="117" /> +<hkern u1="K" u2="«" k="55" /> +<hkern u1="K" u2="y" k="143" /> +<hkern u1="K" u2="w" k="123" /> +<hkern u1="K" u2="v" k="135" /> +<hkern u1="K" u2="u" k="55" /> +<hkern u1="K" u2="t" k="53" /> +<hkern u1="K" u2="q" k="43" /> +<hkern u1="K" u2="p" k="29" /> +<hkern u1="K" u2="o" k="55" /> +<hkern u1="K" u2="j" k="31" /> +<hkern u1="K" u2="g" k="16" /> +<hkern u1="K" u2="e" k="55" /> +<hkern u1="K" u2="d" k="43" /> +<hkern u1="K" u2="c" k="55" /> +<hkern u1="K" u2="a" k="10" /> +<hkern u1="K" u2="Q" k="84" /> +<hkern u1="K" u2="O" k="84" /> +<hkern u1="K" u2="J" k="-33" /> +<hkern u1="K" u2="G" k="84" /> +<hkern u1="K" u2="C" k="84" /> +<hkern u1="K" u2="2" k="-27" /> +<hkern u1="K" u2="-" k="117" /> +<hkern u1="K" u2="*" k="39" /> +<hkern u1="L" u2="™" k="96" /> +<hkern u1="L" u2="Æ" k="-27" /> +<hkern u1="L" u2="·" k="231" /> +<hkern u1="L" u2="}" k="43" /> +<hkern u1="L" u2="w" k="68" /> +<hkern u1="L" u2="v" k="88" /> +<hkern u1="L" u2="t" k="18" /> +<hkern u1="L" u2="p" k="16" /> +<hkern u1="L" u2="j" k="18" /> +<hkern u1="L" u2="]" k="94" /> +<hkern u1="L" u2="\" k="129" /> +<hkern u1="L" u2="W" k="129" /> +<hkern u1="L" u2="V" k="158" /> +<hkern u1="L" u2="T" k="125" /> +<hkern u1="L" u2="J" k="-29" /> +<hkern u1="L" u2="?" k="41" /> +<hkern u1="L" u2="7" k="55" /> +<hkern u1="L" u2="4" k="-49" /> +<hkern u1="L" u2="/" k="39" /> +<hkern u1="L" u2="*" k="100" /> +<hkern u1="L" u2=")" k="37" /> +<hkern u1="L" u2="&" k="-16" /> +<hkern u1="M" u2="fl" k="20" /> +<hkern u1="M" u2="fi" k="20" /> +<hkern u1="M" u2="‹" k="31" /> +<hkern u1="M" u2="—" k="45" /> +<hkern u1="M" u2="–" k="45" /> +<hkern u1="M" u2="Ÿ" k="10" /> +<hkern u1="M" u2="œ" k="47" /> +<hkern u1="M" u2="Œ" k="25" /> +<hkern u1="M" u2="ÿ" k="70" /> +<hkern u1="M" u2="ý" k="70" /> +<hkern u1="M" u2="ü" k="47" /> +<hkern u1="M" u2="û" k="47" /> +<hkern u1="M" u2="ú" k="47" /> +<hkern u1="M" u2="ù" k="47" /> +<hkern u1="M" u2="ø" k="47" /> +<hkern u1="M" u2="ö" k="47" /> +<hkern u1="M" u2="õ" k="47" /> +<hkern u1="M" u2="ô" k="47" /> +<hkern u1="M" u2="ó" k="47" /> +<hkern u1="M" u2="ò" k="47" /> +<hkern u1="M" u2="ñ" k="18" /> +<hkern u1="M" u2="ð" k="41" /> +<hkern u1="M" u2="ï" k="18" /> +<hkern u1="M" u2="î" k="18" /> +<hkern u1="M" u2="í" k="18" /> +<hkern u1="M" u2="ì" k="18" /> +<hkern u1="M" u2="ë" k="47" /> +<hkern u1="M" u2="ê" k="47" /> +<hkern u1="M" u2="é" k="47" /> +<hkern u1="M" u2="è" k="47" /> +<hkern u1="M" u2="ç" k="47" /> +<hkern u1="M" u2="æ" k="16" /> +<hkern u1="M" u2="å" k="16" /> +<hkern u1="M" u2="ä" k="16" /> +<hkern u1="M" u2="ã" k="16" /> +<hkern u1="M" u2="â" k="16" /> +<hkern u1="M" u2="á" k="16" /> +<hkern u1="M" u2="à" k="16" /> +<hkern u1="M" u2="ß" k="20" /> +<hkern u1="M" u2="Ý" k="10" /> +<hkern u1="M" u2="Ø" k="25" /> +<hkern u1="M" u2="Ö" k="25" /> +<hkern u1="M" u2="Õ" k="25" /> +<hkern u1="M" u2="Ô" k="25" /> +<hkern u1="M" u2="Ó" k="25" /> +<hkern u1="M" u2="Ò" k="25" /> +<hkern u1="M" u2="Ç" k="25" /> +<hkern u1="M" u2="­" k="45" /> +<hkern u1="M" u2="«" k="31" /> +<hkern u1="M" u2="z" k="14" /> +<hkern u1="M" u2="y" k="70" /> +<hkern u1="M" u2="x" k="16" /> +<hkern u1="M" u2="w" k="66" /> +<hkern u1="M" u2="v" k="70" /> +<hkern u1="M" u2="u" k="47" /> +<hkern u1="M" u2="t" k="49" /> +<hkern u1="M" u2="s" k="18" /> +<hkern u1="M" u2="r" k="18" /> +<hkern u1="M" u2="q" k="41" /> +<hkern u1="M" u2="p" k="47" /> +<hkern u1="M" u2="o" k="47" /> +<hkern u1="M" u2="n" k="18" /> +<hkern u1="M" u2="m" k="18" /> +<hkern u1="M" u2="j" k="43" /> +<hkern u1="M" u2="i" k="18" /> +<hkern u1="M" u2="g" k="27" /> +<hkern u1="M" u2="f" k="20" /> +<hkern u1="M" u2="e" k="47" /> +<hkern u1="M" u2="d" k="41" /> +<hkern u1="M" u2="c" k="47" /> +<hkern u1="M" u2="a" k="16" /> +<hkern u1="M" u2="Y" k="10" /> +<hkern u1="M" u2="W" k="12" /> +<hkern u1="M" u2="V" k="12" /> +<hkern u1="M" u2="Q" k="25" /> +<hkern u1="M" u2="O" k="25" /> +<hkern u1="M" u2="G" k="25" /> +<hkern u1="M" u2="C" k="25" /> +<hkern u1="M" u2="/" k="55" /> +<hkern u1="M" u2="-" k="45" /> +<hkern u1="M" u2="*" k="23" /> +<hkern u1="N" u2="ð" k="45" /> +<hkern u1="N" u2="ï" k="29" /> +<hkern u1="N" u2="ì" k="29" /> +<hkern u1="N" u2="Æ" k="29" /> +<hkern u1="N" u2="}" k="-10" /> +<hkern u1="N" u2="x" k="43" /> +<hkern u1="N" u2="w" k="47" /> +<hkern u1="N" u2="v" k="47" /> +<hkern u1="N" u2="t" k="49" /> +<hkern u1="N" u2="p" k="47" /> +<hkern u1="N" u2="j" k="39" /> +<hkern u1="N" u2="g" k="53" /> +<hkern u1="N" u2="]" k="-23" /> +<hkern u1="N" u2="J" k="12" /> +<hkern u1="N" u2="@" k="20" /> +<hkern u1="N" u2=";" k="27" /> +<hkern u1="N" u2=":" k="18" /> +<hkern u1="N" u2="/" k="102" /> +<hkern u1="O" u2="Æ" k="63" /> +<hkern u1="O" u2="}" k="53" /> +<hkern u1="O" u2="x" k="12" /> +<hkern u1="O" u2="g" k="12" /> +<hkern u1="O" u2="]" k="94" /> +<hkern u1="O" u2="\" k="33" /> +<hkern u1="O" u2="X" k="66" /> +<hkern u1="O" u2="W" k="45" /> +<hkern u1="O" u2="V" k="45" /> +<hkern u1="O" u2="M" k="25" /> +<hkern u1="O" u2="J" k="18" /> +<hkern u1="O" u2="/" k="141" /> +<hkern u1="O" u2=")" k="47" /> +<hkern u1="P" u2="‹" k="20" /> +<hkern u1="P" u2="…" k="186" /> +<hkern u1="P" u2="„" k="186" /> +<hkern u1="P" u2="“" k="-41" /> +<hkern u1="P" u2="‚" k="186" /> +<hkern u1="P" u2="‘" k="-41" /> +<hkern u1="P" u2="—" k="16" /> +<hkern u1="P" u2="–" k="16" /> +<hkern u1="P" u2="œ" k="35" /> +<hkern u1="P" u2="ø" k="35" /> +<hkern u1="P" u2="ö" k="35" /> +<hkern u1="P" u2="õ" k="35" /> +<hkern u1="P" u2="ô" k="35" /> +<hkern u1="P" u2="ó" k="35" /> +<hkern u1="P" u2="ò" k="35" /> +<hkern u1="P" u2="ð" k="41" /> +<hkern u1="P" u2="ë" k="35" /> +<hkern u1="P" u2="ê" k="35" /> +<hkern u1="P" u2="é" k="35" /> +<hkern u1="P" u2="è" k="35" /> +<hkern u1="P" u2="ç" k="35" /> +<hkern u1="P" u2="æ" k="20" /> +<hkern u1="P" u2="å" k="20" /> +<hkern u1="P" u2="ä" k="20" /> +<hkern u1="P" u2="ã" k="20" /> +<hkern u1="P" u2="â" k="20" /> +<hkern u1="P" u2="á" k="20" /> +<hkern u1="P" u2="à" k="20" /> +<hkern u1="P" u2="Þ" k="12" /> +<hkern u1="P" u2="Ñ" k="12" /> +<hkern u1="P" u2="Ð" k="12" /> +<hkern u1="P" u2="Ï" k="12" /> +<hkern u1="P" u2="Î" k="12" /> +<hkern u1="P" u2="Í" k="12" /> +<hkern u1="P" u2="Ì" k="12" /> +<hkern u1="P" u2="Ë" k="12" /> +<hkern u1="P" u2="Ê" k="12" /> +<hkern u1="P" u2="É" k="12" /> +<hkern u1="P" u2="È" k="12" /> +<hkern u1="P" u2="Æ" k="217" /> +<hkern u1="P" u2="Å" k="113" /> +<hkern u1="P" u2="Ä" k="113" /> +<hkern u1="P" u2="Ã" k="113" /> +<hkern u1="P" u2="Â" k="113" /> +<hkern u1="P" u2="Á" k="113" /> +<hkern u1="P" u2="À" k="113" /> +<hkern u1="P" u2="­" k="16" /> +<hkern u1="P" u2="«" k="20" /> +<hkern u1="P" u2="}" k="31" /> +<hkern u1="P" u2="s" k="12" /> +<hkern u1="P" u2="q" k="33" /> +<hkern u1="P" u2="o" k="35" /> +<hkern u1="P" u2="l" k="12" /> +<hkern u1="P" u2="k" k="12" /> +<hkern u1="P" u2="h" k="12" /> +<hkern u1="P" u2="g" k="33" /> +<hkern u1="P" u2="e" k="35" /> +<hkern u1="P" u2="d" k="33" /> +<hkern u1="P" u2="c" k="35" /> +<hkern u1="P" u2="a" k="20" /> +<hkern u1="P" u2="]" k="49" /> +<hkern u1="P" u2="X" k="33" /> +<hkern u1="P" u2="W" k="10" /> +<hkern u1="P" u2="R" k="12" /> +<hkern u1="P" u2="P" k="12" /> +<hkern u1="P" u2="N" k="12" /> +<hkern u1="P" u2="M" k="12" /> +<hkern u1="P" u2="L" k="12" /> +<hkern u1="P" u2="K" k="12" /> +<hkern u1="P" u2="J" k="88" /> +<hkern u1="P" u2="I" k="12" /> +<hkern u1="P" u2="H" k="12" /> +<hkern u1="P" u2="F" k="12" /> +<hkern u1="P" u2="E" k="12" /> +<hkern u1="P" u2="D" k="12" /> +<hkern u1="P" u2="B" k="12" /> +<hkern u1="P" u2="A" k="113" /> +<hkern u1="P" u2="7" k="-35" /> +<hkern u1="P" u2="1" k="-43" /> +<hkern u1="P" u2="/" k="190" /> +<hkern u1="P" u2="." k="186" /> +<hkern u1="P" u2="-" k="16" /> +<hkern u1="P" u2="," k="186" /> +<hkern u1="P" u2="*" k="-45" /> +<hkern u1="P" u2=")" k="20" /> +<hkern u1="Q" u2="„" k="27" /> +<hkern u1="Q" u2="‚" k="27" /> +<hkern u1="Q" u2="Æ" k="63" /> +<hkern u1="Q" u2="}" k="-133" /> +<hkern u1="Q" u2="|" k="-18" /> +<hkern u1="Q" u2="x" k="12" /> +<hkern u1="Q" u2="j" k="-317" /> +<hkern u1="Q" u2="g" k="-78" /> +<hkern u1="Q" u2="]" k="-141" /> +<hkern u1="Q" u2="\" k="33" /> +<hkern u1="Q" u2="X" k="66" /> +<hkern u1="Q" u2="W" k="45" /> +<hkern u1="Q" u2="V" k="45" /> +<hkern u1="Q" u2="M" k="25" /> +<hkern u1="Q" u2="J" k="18" /> +<hkern u1="Q" u2="/" k="-100" /> +<hkern u1="Q" u2="," k="27" /> +<hkern u1="Q" u2=")" k="-96" /> +<hkern u1="R" u2="™" k="76" /> +<hkern u1="R" u2="‹" k="45" /> +<hkern u1="R" u2="—" k="27" /> +<hkern u1="R" u2="–" k="27" /> +<hkern u1="R" u2="Ÿ" k="35" /> +<hkern u1="R" u2="œ" k="29" /> +<hkern u1="R" u2="Œ" k="10" /> +<hkern u1="R" u2="ÿ" k="18" /> +<hkern u1="R" u2="ý" k="18" /> +<hkern u1="R" u2="ü" k="12" /> +<hkern u1="R" u2="û" k="12" /> +<hkern u1="R" u2="ú" k="12" /> +<hkern u1="R" u2="ù" k="12" /> +<hkern u1="R" u2="ø" k="29" /> +<hkern u1="R" u2="ö" k="29" /> +<hkern u1="R" u2="õ" k="29" /> +<hkern u1="R" u2="ô" k="29" /> +<hkern u1="R" u2="ó" k="29" /> +<hkern u1="R" u2="ò" k="29" /> +<hkern u1="R" u2="ð" k="25" /> +<hkern u1="R" u2="ë" k="29" /> +<hkern u1="R" u2="ê" k="29" /> +<hkern u1="R" u2="é" k="29" /> +<hkern u1="R" u2="è" k="29" /> +<hkern u1="R" u2="ç" k="29" /> +<hkern u1="R" u2="Ý" k="35" /> +<hkern u1="R" u2="Ü" k="20" /> +<hkern u1="R" u2="Û" k="20" /> +<hkern u1="R" u2="Ú" k="20" /> +<hkern u1="R" u2="Ù" k="20" /> +<hkern u1="R" u2="Ø" k="10" /> +<hkern u1="R" u2="Ö" k="10" /> +<hkern u1="R" u2="Õ" k="10" /> +<hkern u1="R" u2="Ô" k="10" /> +<hkern u1="R" u2="Ó" k="10" /> +<hkern u1="R" u2="Ò" k="10" /> +<hkern u1="R" u2="Ç" k="10" /> +<hkern u1="R" u2="­" k="27" /> +<hkern u1="R" u2="«" k="45" /> +<hkern u1="R" u2="}" k="35" /> +<hkern u1="R" u2="y" k="18" /> +<hkern u1="R" u2="w" k="18" /> +<hkern u1="R" u2="v" k="18" /> +<hkern u1="R" u2="u" k="12" /> +<hkern u1="R" u2="t" k="12" /> +<hkern u1="R" u2="q" k="20" /> +<hkern u1="R" u2="p" k="12" /> +<hkern u1="R" u2="o" k="29" /> +<hkern u1="R" u2="j" k="12" /> +<hkern u1="R" u2="e" k="29" /> +<hkern u1="R" u2="d" k="20" /> +<hkern u1="R" u2="c" k="29" /> +<hkern u1="R" u2="]" k="80" /> +<hkern u1="R" u2="\" k="29" /> +<hkern u1="R" u2="Y" k="35" /> +<hkern u1="R" u2="X" k="20" /> +<hkern u1="R" u2="W" k="41" /> +<hkern u1="R" u2="V" k="41" /> +<hkern u1="R" u2="U" k="20" /> +<hkern u1="R" u2="Q" k="10" /> +<hkern u1="R" u2="O" k="10" /> +<hkern u1="R" u2="J" k="-12" /> +<hkern u1="R" u2="G" k="10" /> +<hkern u1="R" u2="C" k="10" /> +<hkern u1="R" u2="/" k="39" /> +<hkern u1="R" u2="-" k="27" /> +<hkern u1="R" u2=")" k="23" /> +<hkern u1="S" u2="Æ" k="12" /> +<hkern u1="S" u2="x" k="23" /> +<hkern u1="S" u2="w" k="23" /> +<hkern u1="S" u2="v" k="23" /> +<hkern u1="S" u2="t" k="14" /> +<hkern u1="S" u2="p" k="20" /> +<hkern u1="S" u2="j" k="20" /> +<hkern u1="S" u2="g" k="18" /> +<hkern u1="S" u2="]" k="20" /> +<hkern u1="S" u2="W" k="16" /> +<hkern u1="S" u2="V" k="16" /> +<hkern u1="S" u2="4" k="-12" /> +<hkern u1="S" u2="/" k="94" /> +<hkern u1="S" u2=")" k="23" /> +<hkern u1="T" u2="‹" k="94" /> +<hkern u1="T" u2="…" k="111" /> +<hkern u1="T" u2="„" k="111" /> +<hkern u1="T" u2="”" k="-16" /> +<hkern u1="T" u2="“" k="-76" /> +<hkern u1="T" u2="‚" k="111" /> +<hkern u1="T" u2="’" k="-16" /> +<hkern u1="T" u2="‘" k="-76" /> +<hkern u1="T" u2="—" k="131" /> +<hkern u1="T" u2="–" k="131" /> +<hkern u1="T" u2="œ" k="104" /> +<hkern u1="T" u2="þ" k="-51" /> +<hkern u1="T" u2="ø" k="104" /> +<hkern u1="T" u2="ö" k="104" /> +<hkern u1="T" u2="õ" k="104" /> +<hkern u1="T" u2="ô" k="104" /> +<hkern u1="T" u2="ó" k="104" /> +<hkern u1="T" u2="ò" k="104" /> +<hkern u1="T" u2="ñ" k="8" /> +<hkern u1="T" u2="ð" k="41" /> +<hkern u1="T" u2="ï" k="8" /> +<hkern u1="T" u2="î" k="-27" /> +<hkern u1="T" u2="í" k="8" /> +<hkern u1="T" u2="ì" k="8" /> +<hkern u1="T" u2="ë" k="104" /> +<hkern u1="T" u2="ê" k="104" /> +<hkern u1="T" u2="é" k="104" /> +<hkern u1="T" u2="è" k="104" /> +<hkern u1="T" u2="ç" k="104" /> +<hkern u1="T" u2="æ" k="66" /> +<hkern u1="T" u2="å" k="66" /> +<hkern u1="T" u2="ä" k="66" /> +<hkern u1="T" u2="ã" k="66" /> +<hkern u1="T" u2="â" k="66" /> +<hkern u1="T" u2="á" k="66" /> +<hkern u1="T" u2="à" k="66" /> +<hkern u1="T" u2="Æ" k="104" /> +<hkern u1="T" u2="Å" k="109" /> +<hkern u1="T" u2="Ä" k="109" /> +<hkern u1="T" u2="Ã" k="109" /> +<hkern u1="T" u2="Â" k="109" /> +<hkern u1="T" u2="Á" k="109" /> +<hkern u1="T" u2="À" k="109" /> +<hkern u1="T" u2="­" k="131" /> +<hkern u1="T" u2="«" k="94" /> +<hkern u1="T" u2="}" k="-39" /> +<hkern u1="T" u2="z" k="16" /> +<hkern u1="T" u2="s" k="53" /> +<hkern u1="T" u2="r" k="8" /> +<hkern u1="T" u2="q" k="98" /> +<hkern u1="T" u2="o" k="104" /> +<hkern u1="T" u2="n" k="8" /> +<hkern u1="T" u2="m" k="8" /> +<hkern u1="T" u2="i" k="8" /> +<hkern u1="T" u2="g" k="88" /> +<hkern u1="T" u2="e" k="104" /> +<hkern u1="T" u2="d" k="98" /> +<hkern u1="T" u2="c" k="104" /> +<hkern u1="T" u2="b" k="-51" /> +<hkern u1="T" u2="a" k="66" /> +<hkern u1="T" u2="]" k="-49" /> +<hkern u1="T" u2="\" k="-12" /> +<hkern u1="T" u2="J" k="57" /> +<hkern u1="T" u2="A" k="109" /> +<hkern u1="T" u2="@" k="31" /> +<hkern u1="T" u2="7" k="-41" /> +<hkern u1="T" u2="4" k="63" /> +<hkern u1="T" u2="1" k="-53" /> +<hkern u1="T" u2="/" k="164" /> +<hkern u1="T" u2="." k="111" /> +<hkern u1="T" u2="-" k="131" /> +<hkern u1="T" u2="," k="111" /> +<hkern u1="T" u2="*" k="-51" /> +<hkern u1="T" u2="&" k="20" /> +<hkern u1="U" u2="ð" k="39" /> +<hkern u1="U" u2="ï" k="6" /> +<hkern u1="U" u2="î" k="18" /> +<hkern u1="U" u2="ì" k="4" /> +<hkern u1="U" u2="Æ" k="88" /> +<hkern u1="U" u2="}" k="-35" /> +<hkern u1="U" u2="x" k="43" /> +<hkern u1="U" u2="w" k="37" /> +<hkern u1="U" u2="v" k="35" /> +<hkern u1="U" u2="t" k="39" /> +<hkern u1="U" u2="p" k="49" /> +<hkern u1="U" u2="j" k="31" /> +<hkern u1="U" u2="g" k="63" /> +<hkern u1="U" u2="]" k="-45" /> +<hkern u1="U" u2="J" k="29" /> +<hkern u1="U" u2=";" k="33" /> +<hkern u1="U" u2=":" k="25" /> +<hkern u1="U" u2="7" k="-18" /> +<hkern u1="U" u2="/" k="156" /> +<hkern u1="V" u2="fl" k="55" /> +<hkern u1="V" u2="fi" k="55" /> +<hkern u1="V" u2="™" k="-41" /> +<hkern u1="V" u2="›" k="61" /> +<hkern u1="V" u2="‹" k="109" /> +<hkern u1="V" u2="…" k="229" /> +<hkern u1="V" u2="„" k="229" /> +<hkern u1="V" u2="”" k="-55" /> +<hkern u1="V" u2="“" k="-76" /> +<hkern u1="V" u2="‚" k="229" /> +<hkern u1="V" u2="’" k="-55" /> +<hkern u1="V" u2="‘" k="-76" /> +<hkern u1="V" u2="—" k="113" /> +<hkern u1="V" u2="–" k="113" /> +<hkern u1="V" u2="Ÿ" k="-49" /> +<hkern u1="V" u2="œ" k="162" /> +<hkern u1="V" u2="Œ" k="53" /> +<hkern u1="V" u2="ÿ" k="82" /> +<hkern u1="V" u2="þ" k="-94" /> +<hkern u1="V" u2="ý" k="82" /> +<hkern u1="V" u2="ü" k="96" /> +<hkern u1="V" u2="û" k="96" /> +<hkern u1="V" u2="ú" k="96" /> +<hkern u1="V" u2="ù" k="96" /> +<hkern u1="V" u2="ø" k="162" /> +<hkern u1="V" u2="ö" k="162" /> +<hkern u1="V" u2="õ" k="121" /> +<hkern u1="V" u2="ô" k="162" /> +<hkern u1="V" u2="ó" k="162" /> +<hkern u1="V" u2="ò" k="162" /> +<hkern u1="V" u2="ñ" k="113" /> +<hkern u1="V" u2="ð" k="41" /> +<hkern u1="V" u2="ï" k="-43" /> +<hkern u1="V" u2="î" k="-31" /> +<hkern u1="V" u2="í" k="53" /> +<hkern u1="V" u2="ì" k="-45" /> +<hkern u1="V" u2="ë" k="162" /> +<hkern u1="V" u2="ê" k="162" /> +<hkern u1="V" u2="é" k="162" /> +<hkern u1="V" u2="è" k="162" /> +<hkern u1="V" u2="ç" k="162" /> +<hkern u1="V" u2="æ" k="166" /> +<hkern u1="V" u2="å" k="166" /> +<hkern u1="V" u2="ä" k="106" /> +<hkern u1="V" u2="ã" k="59" /> +<hkern u1="V" u2="â" k="117" /> +<hkern u1="V" u2="á" k="166" /> +<hkern u1="V" u2="à" k="166" /> +<hkern u1="V" u2="ß" k="55" /> +<hkern u1="V" u2="Ý" k="-49" /> +<hkern u1="V" u2="Ø" k="53" /> +<hkern u1="V" u2="Ö" k="53" /> +<hkern u1="V" u2="Õ" k="53" /> +<hkern u1="V" u2="Ô" k="53" /> +<hkern u1="V" u2="Ó" k="53" /> +<hkern u1="V" u2="Ò" k="53" /> +<hkern u1="V" u2="Ç" k="53" /> +<hkern u1="V" u2="Æ" k="223" /> +<hkern u1="V" u2="Å" k="158" /> +<hkern u1="V" u2="Ä" k="158" /> +<hkern u1="V" u2="Ã" k="158" /> +<hkern u1="V" u2="Â" k="158" /> +<hkern u1="V" u2="Á" k="158" /> +<hkern u1="V" u2="À" k="158" /> +<hkern u1="V" u2="»" k="61" /> +<hkern u1="V" u2="®" k="45" /> +<hkern u1="V" u2="­" k="113" /> +<hkern u1="V" u2="«" k="109" /> +<hkern u1="V" u2="}" k="-84" /> +<hkern u1="V" u2="z" k="131" /> +<hkern u1="V" u2="y" k="82" /> +<hkern u1="V" u2="x" k="94" /> +<hkern u1="V" u2="w" k="84" /> +<hkern u1="V" u2="v" k="80" /> +<hkern u1="V" u2="u" k="96" /> +<hkern u1="V" u2="t" k="76" /> +<hkern u1="V" u2="s" k="156" /> +<hkern u1="V" u2="r" k="113" /> +<hkern u1="V" u2="q" k="156" /> +<hkern u1="V" u2="p" k="100" /> +<hkern u1="V" u2="o" k="162" /> +<hkern u1="V" u2="n" k="113" /> +<hkern u1="V" u2="m" k="113" /> +<hkern u1="V" u2="l" k="-49" /> +<hkern u1="V" u2="k" k="-49" /> +<hkern u1="V" u2="j" k="39" /> +<hkern u1="V" u2="i" k="53" /> +<hkern u1="V" u2="h" k="-49" /> +<hkern u1="V" u2="g" k="160" /> +<hkern u1="V" u2="f" k="55" /> +<hkern u1="V" u2="e" k="162" /> +<hkern u1="V" u2="d" k="156" /> +<hkern u1="V" u2="c" k="162" /> +<hkern u1="V" u2="b" k="-94" /> +<hkern u1="V" u2="a" k="166" /> +<hkern u1="V" u2="]" k="-96" /> +<hkern u1="V" u2="\" k="-57" /> +<hkern u1="V" u2="Y" k="-49" /> +<hkern u1="V" u2="T" k="-14" /> +<hkern u1="V" u2="S" k="18" /> +<hkern u1="V" u2="Q" k="53" /> +<hkern u1="V" u2="O" k="53" /> +<hkern u1="V" u2="J" k="72" /> +<hkern u1="V" u2="G" k="53" /> +<hkern u1="V" u2="C" k="53" /> +<hkern u1="V" u2="A" k="158" /> +<hkern u1="V" u2="@" k="88" /> +<hkern u1="V" u2=";" k="80" /> +<hkern u1="V" u2=":" k="72" /> +<hkern u1="V" u2="9" k="20" /> +<hkern u1="V" u2="8" k="27" /> +<hkern u1="V" u2="7" k="-68" /> +<hkern u1="V" u2="6" k="41" /> +<hkern u1="V" u2="4" k="90" /> +<hkern u1="V" u2="0" k="39" /> +<hkern u1="V" u2="/" k="227" /> +<hkern u1="V" u2="." k="229" /> +<hkern u1="V" u2="-" k="113" /> +<hkern u1="V" u2="," k="229" /> +<hkern u1="V" u2="*" k="18" /> +<hkern u1="V" u2=")" k="-41" /> +<hkern u1="V" u2="'" k="-16" /> +<hkern u1="V" u2="&" k="45" /> +<hkern u1="V" u2=""" k="-16" /> +<hkern u1="W" u2="fl" k="53" /> +<hkern u1="W" u2="fi" k="53" /> +<hkern u1="W" u2="™" k="-43" /> +<hkern u1="W" u2="›" k="57" /> +<hkern u1="W" u2="‹" k="94" /> +<hkern u1="W" u2="…" k="160" /> +<hkern u1="W" u2="„" k="160" /> +<hkern u1="W" u2="”" k="-59" /> +<hkern u1="W" u2="‚" k="160" /> +<hkern u1="W" u2="’" k="-59" /> +<hkern u1="W" u2="—" k="98" /> +<hkern u1="W" u2="–" k="98" /> +<hkern u1="W" u2="œ" k="139" /> +<hkern u1="W" u2="Œ" k="49" /> +<hkern u1="W" u2="ÿ" k="76" /> +<hkern u1="W" u2="þ" k="-96" /> +<hkern u1="W" u2="ý" k="76" /> +<hkern u1="W" u2="ü" k="94" /> +<hkern u1="W" u2="û" k="94" /> +<hkern u1="W" u2="ú" k="94" /> +<hkern u1="W" u2="ù" k="94" /> +<hkern u1="W" u2="ø" k="139" /> +<hkern u1="W" u2="ö" k="139" /> +<hkern u1="W" u2="õ" k="119" /> +<hkern u1="W" u2="ô" k="139" /> +<hkern u1="W" u2="ó" k="139" /> +<hkern u1="W" u2="ò" k="139" /> +<hkern u1="W" u2="ñ" k="96" /> +<hkern u1="W" u2="ð" k="41" /> +<hkern u1="W" u2="ï" k="-45" /> +<hkern u1="W" u2="î" k="-35" /> +<hkern u1="W" u2="í" k="51" /> +<hkern u1="W" u2="ì" k="-47" /> +<hkern u1="W" u2="ë" k="139" /> +<hkern u1="W" u2="ê" k="139" /> +<hkern u1="W" u2="é" k="139" /> +<hkern u1="W" u2="è" k="139" /> +<hkern u1="W" u2="ç" k="139" /> +<hkern u1="W" u2="æ" k="143" /> +<hkern u1="W" u2="å" k="143" /> +<hkern u1="W" u2="ä" k="104" /> +<hkern u1="W" u2="ã" k="55" /> +<hkern u1="W" u2="â" k="115" /> +<hkern u1="W" u2="á" k="143" /> +<hkern u1="W" u2="à" k="143" /> +<hkern u1="W" u2="ß" k="53" /> +<hkern u1="W" u2="Ø" k="49" /> +<hkern u1="W" u2="Ö" k="49" /> +<hkern u1="W" u2="Õ" k="49" /> +<hkern u1="W" u2="Ô" k="49" /> +<hkern u1="W" u2="Ó" k="49" /> +<hkern u1="W" u2="Ò" k="49" /> +<hkern u1="W" u2="Ç" k="49" /> +<hkern u1="W" u2="Æ" k="209" /> +<hkern u1="W" u2="Å" k="143" /> +<hkern u1="W" u2="Ä" k="143" /> +<hkern u1="W" u2="Ã" k="143" /> +<hkern u1="W" u2="Â" k="143" /> +<hkern u1="W" u2="Á" k="143" /> +<hkern u1="W" u2="À" k="143" /> +<hkern u1="W" u2="»" k="57" /> +<hkern u1="W" u2="®" k="43" /> +<hkern u1="W" u2="­" k="98" /> +<hkern u1="W" u2="«" k="94" /> +<hkern u1="W" u2="}" k="-86" /> +<hkern u1="W" u2="z" k="117" /> +<hkern u1="W" u2="y" k="76" /> +<hkern u1="W" u2="x" k="90" /> +<hkern u1="W" u2="w" k="78" /> +<hkern u1="W" u2="v" k="74" /> +<hkern u1="W" u2="u" k="94" /> +<hkern u1="W" u2="t" k="70" /> +<hkern u1="W" u2="s" k="133" /> +<hkern u1="W" u2="r" k="96" /> +<hkern u1="W" u2="q" k="135" /> +<hkern u1="W" u2="p" k="90" /> +<hkern u1="W" u2="o" k="139" /> +<hkern u1="W" u2="n" k="96" /> +<hkern u1="W" u2="m" k="96" /> +<hkern u1="W" u2="l" k="-51" /> +<hkern u1="W" u2="k" k="-51" /> +<hkern u1="W" u2="j" k="39" /> +<hkern u1="W" u2="i" k="51" /> +<hkern u1="W" u2="h" k="-51" /> +<hkern u1="W" u2="g" k="137" /> +<hkern u1="W" u2="f" k="53" /> +<hkern u1="W" u2="e" k="139" /> +<hkern u1="W" u2="d" k="135" /> +<hkern u1="W" u2="c" k="139" /> +<hkern u1="W" u2="b" k="-96" /> +<hkern u1="W" u2="a" k="143" /> +<hkern u1="W" u2="]" k="-98" /> +<hkern u1="W" u2="\" k="-57" /> +<hkern u1="W" u2="X" k="-49" /> +<hkern u1="W" u2="T" k="-16" /> +<hkern u1="W" u2="S" k="23" /> +<hkern u1="W" u2="Q" k="49" /> +<hkern u1="W" u2="O" k="49" /> +<hkern u1="W" u2="M" k="10" /> +<hkern u1="W" u2="J" k="63" /> +<hkern u1="W" u2="G" k="49" /> +<hkern u1="W" u2="C" k="49" /> +<hkern u1="W" u2="A" k="143" /> +<hkern u1="W" u2="@" k="80" /> +<hkern u1="W" u2=";" k="74" /> +<hkern u1="W" u2=":" k="66" /> +<hkern u1="W" u2="9" k="25" /> +<hkern u1="W" u2="8" k="27" /> +<hkern u1="W" u2="7" k="-70" /> +<hkern u1="W" u2="6" k="37" /> +<hkern u1="W" u2="4" k="80" /> +<hkern u1="W" u2="3" k="23" /> +<hkern u1="W" u2="1" k="23" /> +<hkern u1="W" u2="0" k="37" /> +<hkern u1="W" u2="/" k="213" /> +<hkern u1="W" u2="." k="160" /> +<hkern u1="W" u2="-" k="98" /> +<hkern u1="W" u2="," k="160" /> +<hkern u1="W" u2="*" k="23" /> +<hkern u1="W" u2=")" k="-43" /> +<hkern u1="W" u2="'" k="-18" /> +<hkern u1="W" u2="&" k="43" /> +<hkern u1="W" u2=""" k="-18" /> +<hkern u1="X" u2="›" k="-14" /> +<hkern u1="X" u2="‹" k="49" /> +<hkern u1="X" u2="—" k="111" /> +<hkern u1="X" u2="–" k="111" /> +<hkern u1="X" u2="œ" k="31" /> +<hkern u1="X" u2="Œ" k="74" /> +<hkern u1="X" u2="ÿ" k="135" /> +<hkern u1="X" u2="ý" k="135" /> +<hkern u1="X" u2="ü" k="51" /> +<hkern u1="X" u2="û" k="51" /> +<hkern u1="X" u2="ú" k="51" /> +<hkern u1="X" u2="ù" k="51" /> +<hkern u1="X" u2="ø" k="31" /> +<hkern u1="X" u2="ö" k="31" /> +<hkern u1="X" u2="õ" k="31" /> +<hkern u1="X" u2="ô" k="31" /> +<hkern u1="X" u2="ó" k="31" /> +<hkern u1="X" u2="ò" k="31" /> +<hkern u1="X" u2="ð" k="37" /> +<hkern u1="X" u2="ë" k="31" /> +<hkern u1="X" u2="ê" k="31" /> +<hkern u1="X" u2="é" k="31" /> +<hkern u1="X" u2="è" k="31" /> +<hkern u1="X" u2="ç" k="31" /> +<hkern u1="X" u2="Ø" k="74" /> +<hkern u1="X" u2="Ö" k="74" /> +<hkern u1="X" u2="Õ" k="74" /> +<hkern u1="X" u2="Ô" k="74" /> +<hkern u1="X" u2="Ó" k="74" /> +<hkern u1="X" u2="Ò" k="74" /> +<hkern u1="X" u2="Ç" k="74" /> +<hkern u1="X" u2="Æ" k="-49" /> +<hkern u1="X" u2="Å" k="-49" /> +<hkern u1="X" u2="Ä" k="-49" /> +<hkern u1="X" u2="Ã" k="-49" /> +<hkern u1="X" u2="Â" k="-49" /> +<hkern u1="X" u2="Á" k="-49" /> +<hkern u1="X" u2="À" k="-49" /> +<hkern u1="X" u2="»" k="-14" /> +<hkern u1="X" u2="­" k="111" /> +<hkern u1="X" u2="«" k="49" /> +<hkern u1="X" u2="z" k="-25" /> +<hkern u1="X" u2="y" k="135" /> +<hkern u1="X" u2="w" k="104" /> +<hkern u1="X" u2="v" k="127" /> +<hkern u1="X" u2="u" k="51" /> +<hkern u1="X" u2="t" k="49" /> +<hkern u1="X" u2="q" k="33" /> +<hkern u1="X" u2="p" k="31" /> +<hkern u1="X" u2="o" k="31" /> +<hkern u1="X" u2="j" k="29" /> +<hkern u1="X" u2="g" k="12" /> +<hkern u1="X" u2="e" k="31" /> +<hkern u1="X" u2="d" k="33" /> +<hkern u1="X" u2="c" k="31" /> +<hkern u1="X" u2="W" k="49" /> +<hkern u1="X" u2="V" k="49" /> +<hkern u1="X" u2="Q" k="74" /> +<hkern u1="X" u2="O" k="74" /> +<hkern u1="X" u2="J" k="-35" /> +<hkern u1="X" u2="G" k="74" /> +<hkern u1="X" u2="C" k="74" /> +<hkern u1="X" u2="A" k="-49" /> +<hkern u1="X" u2="2" k="-25" /> +<hkern u1="X" u2="/" k="23" /> +<hkern u1="X" u2="-" k="111" /> +<hkern u1="X" u2="*" k="35" /> +<hkern u1="Y" u2="™" k="-33" /> +<hkern u1="Y" u2="õ" k="129" /> +<hkern u1="Y" u2="ð" k="43" /> +<hkern u1="Y" u2="ï" k="-35" /> +<hkern u1="Y" u2="î" k="-23" /> +<hkern u1="Y" u2="ì" k="-35" /> +<hkern u1="Y" u2="ä" k="117" /> +<hkern u1="Y" u2="ã" k="68" /> +<hkern u1="Y" u2="â" k="127" /> +<hkern u1="Y" u2="Æ" k="137" /> +<hkern u1="Y" u2="®" k="53" /> +<hkern u1="Y" u2="}" k="-76" /> +<hkern u1="Y" u2="x" k="119" /> +<hkern u1="Y" u2="w" k="109" /> +<hkern u1="Y" u2="v" k="106" /> +<hkern u1="Y" u2="t" k="92" /> +<hkern u1="Y" u2="p" k="125" /> +<hkern u1="Y" u2="j" k="43" /> +<hkern u1="Y" u2="g" k="162" /> +<hkern u1="Y" u2="]" k="-86" /> +<hkern u1="Y" u2="\" k="-57" /> +<hkern u1="Y" u2="W" k="-25" /> +<hkern u1="Y" u2="V" k="-25" /> +<hkern u1="Y" u2="J" k="57" /> +<hkern u1="Y" u2="@" k="90" /> +<hkern u1="Y" u2=";" k="76" /> +<hkern u1="Y" u2=":" k="68" /> +<hkern u1="Y" u2="8" k="27" /> +<hkern u1="Y" u2="7" k="-59" /> +<hkern u1="Y" u2="6" k="45" /> +<hkern u1="Y" u2="4" k="104" /> +<hkern u1="Y" u2="0" k="45" /> +<hkern u1="Y" u2="/" k="176" /> +<hkern u1="Y" u2="*" k="16" /> +<hkern u1="Y" u2=")" k="-33" /> +<hkern u1="Y" u2="&" k="47" /> +<hkern u1="Z" u2="ð" k="10" /> +<hkern u1="Z" u2="x" k="14" /> +<hkern u1="Z" u2="w" k="55" /> +<hkern u1="Z" u2="v" k="61" /> +<hkern u1="Z" u2="t" k="31" /> +<hkern u1="Z" u2="p" k="35" /> +<hkern u1="Z" u2="j" k="29" /> +<hkern u1="Z" u2="g" k="20" /> +<hkern u1="Z" u2="W" k="25" /> +<hkern u1="Z" u2="/" k="59" /> +<hkern u1="[" u2="fl" k="66" /> +<hkern u1="[" u2="fi" k="66" /> +<hkern u1="[" u2="Ÿ" k="-84" /> +<hkern u1="[" u2="œ" k="127" /> +<hkern u1="[" u2="Œ" k="94" /> +<hkern u1="[" u2="þ" k="-88" /> +<hkern u1="[" u2="ü" k="121" /> +<hkern u1="[" u2="û" k="121" /> +<hkern u1="[" u2="ú" k="121" /> +<hkern u1="[" u2="ù" k="121" /> +<hkern u1="[" u2="ø" k="127" /> +<hkern u1="[" u2="ö" k="127" /> +<hkern u1="[" u2="õ" k="127" /> +<hkern u1="[" u2="ô" k="127" /> +<hkern u1="[" u2="ó" k="127" /> +<hkern u1="[" u2="ò" k="127" /> +<hkern u1="[" u2="ñ" k="121" /> +<hkern u1="[" u2="ð" k="27" /> +<hkern u1="[" u2="ï" k="-35" /> +<hkern u1="[" u2="î" k="43" /> +<hkern u1="[" u2="í" k="43" /> +<hkern u1="[" u2="ì" k="-49" /> +<hkern u1="[" u2="ë" k="127" /> +<hkern u1="[" u2="ê" k="127" /> +<hkern u1="[" u2="é" k="127" /> +<hkern u1="[" u2="è" k="127" /> +<hkern u1="[" u2="ç" k="127" /> +<hkern u1="[" u2="æ" k="125" /> +<hkern u1="[" u2="å" k="125" /> +<hkern u1="[" u2="ä" k="125" /> +<hkern u1="[" u2="ã" k="125" /> +<hkern u1="[" u2="â" k="125" /> +<hkern u1="[" u2="á" k="125" /> +<hkern u1="[" u2="à" k="125" /> +<hkern u1="[" u2="ß" k="66" /> +<hkern u1="[" u2="Ý" k="-84" /> +<hkern u1="[" u2="Ü" k="-39" /> +<hkern u1="[" u2="Û" k="-39" /> +<hkern u1="[" u2="Ú" k="-39" /> +<hkern u1="[" u2="Ù" k="-39" /> +<hkern u1="[" u2="Ø" k="94" /> +<hkern u1="[" u2="Ö" k="94" /> +<hkern u1="[" u2="Õ" k="94" /> +<hkern u1="[" u2="Ô" k="94" /> +<hkern u1="[" u2="Ó" k="94" /> +<hkern u1="[" u2="Ò" k="94" /> +<hkern u1="[" u2="Ç" k="94" /> +<hkern u1="[" u2="Æ" k="104" /> +<hkern u1="[" u2="Å" k="111" /> +<hkern u1="[" u2="Ä" k="111" /> +<hkern u1="[" u2="Ã" k="111" /> +<hkern u1="[" u2="Â" k="111" /> +<hkern u1="[" u2="Á" k="111" /> +<hkern u1="[" u2="À" k="111" /> +<hkern u1="[" u2="{" k="49" /> +<hkern u1="[" u2="z" k="119" /> +<hkern u1="[" u2="x" k="113" /> +<hkern u1="[" u2="w" k="125" /> +<hkern u1="[" u2="v" k="125" /> +<hkern u1="[" u2="u" k="121" /> +<hkern u1="[" u2="t" k="111" /> +<hkern u1="[" u2="s" k="121" /> +<hkern u1="[" u2="r" k="121" /> +<hkern u1="[" u2="q" k="123" /> +<hkern u1="[" u2="p" k="-20" /> +<hkern u1="[" u2="o" k="127" /> +<hkern u1="[" u2="n" k="121" /> +<hkern u1="[" u2="m" k="121" /> +<hkern u1="[" u2="l" k="-43" /> +<hkern u1="[" u2="k" k="-43" /> +<hkern u1="[" u2="j" k="-264" /> +<hkern u1="[" u2="i" k="43" /> +<hkern u1="[" u2="h" k="-43" /> +<hkern u1="[" u2="f" k="66" /> +<hkern u1="[" u2="e" k="127" /> +<hkern u1="[" u2="d" k="123" /> +<hkern u1="[" u2="c" k="127" /> +<hkern u1="[" u2="b" k="-88" /> +<hkern u1="[" u2="a" k="125" /> +<hkern u1="[" u2="Y" k="-84" /> +<hkern u1="[" u2="X" k="-63" /> +<hkern u1="[" u2="W" k="-63" /> +<hkern u1="[" u2="V" k="-76" /> +<hkern u1="[" u2="U" k="-39" /> +<hkern u1="[" u2="T" k="-47" /> +<hkern u1="[" u2="S" k="51" /> +<hkern u1="[" u2="Q" k="94" /> +<hkern u1="[" u2="O" k="94" /> +<hkern u1="[" u2="J" k="63" /> +<hkern u1="[" u2="G" k="94" /> +<hkern u1="[" u2="C" k="94" /> +<hkern u1="[" u2="A" k="111" /> +<hkern u1="[" u2="9" k="59" /> +<hkern u1="[" u2="8" k="68" /> +<hkern u1="[" u2="7" k="-47" /> +<hkern u1="[" u2="6" k="84" /> +<hkern u1="[" u2="4" k="102" /> +<hkern u1="[" u2="3" k="47" /> +<hkern u1="[" u2="2" k="43" /> +<hkern u1="[" u2="1" k="74" /> +<hkern u1="[" u2="0" k="86" /> +<hkern u1="[" u2="(" k="70" /> +<hkern u1="\" u2="fl" k="63" /> +<hkern u1="\" u2="fi" k="63" /> +<hkern u1="\" u2="”" k="211" /> +<hkern u1="\" u2="’" k="211" /> +<hkern u1="\" u2="Ÿ" k="195" /> +<hkern u1="\" u2="œ" k="115" /> +<hkern u1="\" u2="Œ" k="137" /> +<hkern u1="\" u2="þ" k="-37" /> +<hkern u1="\" u2="ü" k="129" /> +<hkern u1="\" u2="û" k="129" /> +<hkern u1="\" u2="ú" k="129" /> +<hkern u1="\" u2="ù" k="129" /> +<hkern u1="\" u2="ø" k="115" /> +<hkern u1="\" u2="ö" k="115" /> +<hkern u1="\" u2="õ" k="115" /> +<hkern u1="\" u2="ô" k="115" /> +<hkern u1="\" u2="ó" k="115" /> +<hkern u1="\" u2="ò" k="115" /> +<hkern u1="\" u2="ñ" k="63" /> +<hkern u1="\" u2="ð" k="106" /> +<hkern u1="\" u2="ï" k="59" /> +<hkern u1="\" u2="î" k="59" /> +<hkern u1="\" u2="í" k="59" /> +<hkern u1="\" u2="ì" k="59" /> +<hkern u1="\" u2="ë" k="115" /> +<hkern u1="\" u2="ê" k="115" /> +<hkern u1="\" u2="é" k="115" /> +<hkern u1="\" u2="è" k="115" /> +<hkern u1="\" u2="ç" k="115" /> +<hkern u1="\" u2="æ" k="78" /> +<hkern u1="\" u2="å" k="78" /> +<hkern u1="\" u2="ä" k="78" /> +<hkern u1="\" u2="ã" k="78" /> +<hkern u1="\" u2="â" k="78" /> +<hkern u1="\" u2="á" k="78" /> +<hkern u1="\" u2="à" k="78" /> +<hkern u1="\" u2="ß" k="63" /> +<hkern u1="\" u2="Þ" k="61" /> +<hkern u1="\" u2="Ý" k="195" /> +<hkern u1="\" u2="Ü" k="158" /> +<hkern u1="\" u2="Û" k="158" /> +<hkern u1="\" u2="Ú" k="158" /> +<hkern u1="\" u2="Ù" k="158" /> +<hkern u1="\" u2="Ø" k="137" /> +<hkern u1="\" u2="Ö" k="137" /> +<hkern u1="\" u2="Õ" k="137" /> +<hkern u1="\" u2="Ô" k="137" /> +<hkern u1="\" u2="Ó" k="137" /> +<hkern u1="\" u2="Ò" k="137" /> +<hkern u1="\" u2="Ñ" k="61" /> +<hkern u1="\" u2="Ð" k="61" /> +<hkern u1="\" u2="Ï" k="61" /> +<hkern u1="\" u2="Î" k="61" /> +<hkern u1="\" u2="Í" k="61" /> +<hkern u1="\" u2="Ì" k="61" /> +<hkern u1="\" u2="Ë" k="61" /> +<hkern u1="\" u2="Ê" k="61" /> +<hkern u1="\" u2="É" k="61" /> +<hkern u1="\" u2="È" k="61" /> +<hkern u1="\" u2="Ç" k="137" /> +<hkern u1="\" u2="Æ" k="23" /> +<hkern u1="\" u2="Å" k="35" /> +<hkern u1="\" u2="Ä" k="35" /> +<hkern u1="\" u2="Ã" k="35" /> +<hkern u1="\" u2="Â" k="35" /> +<hkern u1="\" u2="Á" k="35" /> +<hkern u1="\" u2="À" k="35" /> +<hkern u1="\" u2="z" k="59" /> +<hkern u1="\" u2="x" k="61" /> +<hkern u1="\" u2="w" k="162" /> +<hkern u1="\" u2="v" k="172" /> +<hkern u1="\" u2="u" k="129" /> +<hkern u1="\" u2="t" k="129" /> +<hkern u1="\" u2="s" k="68" /> +<hkern u1="\" u2="r" k="63" /> +<hkern u1="\" u2="q" k="106" /> +<hkern u1="\" u2="o" k="115" /> +<hkern u1="\" u2="n" k="63" /> +<hkern u1="\" u2="m" k="63" /> +<hkern u1="\" u2="l" k="49" /> +<hkern u1="\" u2="k" k="49" /> +<hkern u1="\" u2="j" k="-209" /> +<hkern u1="\" u2="i" k="59" /> +<hkern u1="\" u2="h" k="49" /> +<hkern u1="\" u2="f" k="63" /> +<hkern u1="\" u2="e" k="115" /> +<hkern u1="\" u2="d" k="106" /> +<hkern u1="\" u2="c" k="115" /> +<hkern u1="\" u2="b" k="74" /> +<hkern u1="\" u2="a" k="78" /> +<hkern u1="\" u2="Z" k="55" /> +<hkern u1="\" u2="Y" k="195" /> +<hkern u1="\" u2="X" k="49" /> +<hkern u1="\" u2="W" k="215" /> +<hkern u1="\" u2="V" k="231" /> +<hkern u1="\" u2="U" k="158" /> +<hkern u1="\" u2="T" k="166" /> +<hkern u1="\" u2="S" k="66" /> +<hkern u1="\" u2="R" k="61" /> +<hkern u1="\" u2="Q" k="137" /> +<hkern u1="\" u2="P" k="61" /> +<hkern u1="\" u2="O" k="137" /> +<hkern u1="\" u2="N" k="61" /> +<hkern u1="\" u2="M" k="59" /> +<hkern u1="\" u2="L" k="61" /> +<hkern u1="\" u2="K" k="61" /> +<hkern u1="\" u2="J" k="45" /> +<hkern u1="\" u2="I" k="61" /> +<hkern u1="\" u2="H" k="61" /> +<hkern u1="\" u2="G" k="137" /> +<hkern u1="\" u2="F" k="61" /> +<hkern u1="\" u2="E" k="61" /> +<hkern u1="\" u2="D" k="61" /> +<hkern u1="\" u2="C" k="137" /> +<hkern u1="\" u2="B" k="61" /> +<hkern u1="\" u2="A" k="35" /> +<hkern u1="\" u2="9" k="100" /> +<hkern u1="\" u2="8" k="98" /> +<hkern u1="\" u2="7" k="143" /> +<hkern u1="\" u2="6" k="111" /> +<hkern u1="\" u2="5" k="84" /> +<hkern u1="\" u2="4" k="102" /> +<hkern u1="\" u2="3" k="78" /> +<hkern u1="\" u2="2" k="51" /> +<hkern u1="\" u2="1" k="84" /> +<hkern u1="\" u2="0" k="127" /> +<hkern u1="\" u2="'" k="193" /> +<hkern u1="\" u2=""" k="217" /> +<hkern u1="a" u2="™" k="55" /> +<hkern u1="a" u2="}" k="51" /> +<hkern u1="a" u2="w" k="25" /> +<hkern u1="a" u2="v" k="25" /> +<hkern u1="a" u2="t" k="8" /> +<hkern u1="a" u2="]" k="117" /> +<hkern u1="a" u2="\" k="119" /> +<hkern u1="a" u2="W" k="123" /> +<hkern u1="a" u2="V" k="137" /> +<hkern u1="a" u2="T" k="86" /> +<hkern u1="a" u2="?" k="41" /> +<hkern u1="a" u2="/" k="43" /> +<hkern u1="a" u2="*" k="33" /> +<hkern u1="a" u2=")" k="45" /> +<hkern u1="b" u2="™" k="45" /> +<hkern u1="b" u2="”" k="47" /> +<hkern u1="b" u2="“" k="43" /> +<hkern u1="b" u2="’" k="47" /> +<hkern u1="b" u2="‘" k="43" /> +<hkern u1="b" u2="Ÿ" k="164" /> +<hkern u1="b" u2="ÿ" k="8" /> +<hkern u1="b" u2="ý" k="8" /> +<hkern u1="b" u2="Þ" k="49" /> +<hkern u1="b" u2="Ý" k="164" /> +<hkern u1="b" u2="Ü" k="57" /> +<hkern u1="b" u2="Û" k="57" /> +<hkern u1="b" u2="Ú" k="57" /> +<hkern u1="b" u2="Ù" k="57" /> +<hkern u1="b" u2="Ñ" k="49" /> +<hkern u1="b" u2="Ð" k="49" /> +<hkern u1="b" u2="Ï" k="49" /> +<hkern u1="b" u2="Î" k="49" /> +<hkern u1="b" u2="Í" k="49" /> +<hkern u1="b" u2="Ì" k="49" /> +<hkern u1="b" u2="Ë" k="49" /> +<hkern u1="b" u2="Ê" k="49" /> +<hkern u1="b" u2="É" k="49" /> +<hkern u1="b" u2="È" k="49" /> +<hkern u1="b" u2="Å" k="31" /> +<hkern u1="b" u2="Ä" k="31" /> +<hkern u1="b" u2="Ã" k="31" /> +<hkern u1="b" u2="Â" k="31" /> +<hkern u1="b" u2="Á" k="31" /> +<hkern u1="b" u2="À" k="31" /> +<hkern u1="b" u2="}" k="70" /> +<hkern u1="b" u2="y" k="8" /> +<hkern u1="b" u2="x" k="12" /> +<hkern u1="b" u2="w" k="8" /> +<hkern u1="b" u2="v" k="8" /> +<hkern u1="b" u2="]" k="123" /> +<hkern u1="b" u2="\" k="94" /> +<hkern u1="b" u2="Z" k="37" /> +<hkern u1="b" u2="Y" k="164" /> +<hkern u1="b" u2="X" k="92" /> +<hkern u1="b" u2="W" k="133" /> +<hkern u1="b" u2="V" k="156" /> +<hkern u1="b" u2="U" k="57" /> +<hkern u1="b" u2="T" k="92" /> +<hkern u1="b" u2="S" k="14" /> +<hkern u1="b" u2="R" k="49" /> +<hkern u1="b" u2="P" k="49" /> +<hkern u1="b" u2="N" k="49" /> +<hkern u1="b" u2="M" k="47" /> +<hkern u1="b" u2="L" k="49" /> +<hkern u1="b" u2="K" k="49" /> +<hkern u1="b" u2="I" k="49" /> +<hkern u1="b" u2="H" k="49" /> +<hkern u1="b" u2="F" k="49" /> +<hkern u1="b" u2="E" k="49" /> +<hkern u1="b" u2="D" k="49" /> +<hkern u1="b" u2="B" k="49" /> +<hkern u1="b" u2="A" k="31" /> +<hkern u1="b" u2="?" k="39" /> +<hkern u1="b" u2="/" k="115" /> +<hkern u1="b" u2="*" k="23" /> +<hkern u1="b" u2=")" k="63" /> +<hkern u1="b" u2="'" k="61" /> +<hkern u1="b" u2=""" k="61" /> +<hkern u1="c" u2="™" k="33" /> +<hkern u1="c" u2="}" k="47" /> +<hkern u1="c" u2="]" k="113" /> +<hkern u1="c" u2="\" k="74" /> +<hkern u1="c" u2="X" k="51" /> +<hkern u1="c" u2="W" k="119" /> +<hkern u1="c" u2="V" k="135" /> +<hkern u1="c" u2="T" k="35" /> +<hkern u1="c" u2="M" k="37" /> +<hkern u1="c" u2="J" k="-14" /> +<hkern u1="c" u2="/" k="76" /> +<hkern u1="c" u2=")" k="45" /> +<hkern u1="d" u2="—" k="18" /> +<hkern u1="d" u2="–" k="18" /> +<hkern u1="d" u2="Ÿ" k="33" /> +<hkern u1="d" u2="Œ" k="27" /> +<hkern u1="d" u2="ÿ" k="16" /> +<hkern u1="d" u2="ý" k="16" /> +<hkern u1="d" u2="Þ" k="16" /> +<hkern u1="d" u2="Ý" k="33" /> +<hkern u1="d" u2="Ü" k="39" /> +<hkern u1="d" u2="Û" k="39" /> +<hkern u1="d" u2="Ú" k="39" /> +<hkern u1="d" u2="Ù" k="39" /> +<hkern u1="d" u2="Ø" k="27" /> +<hkern u1="d" u2="Ö" k="27" /> +<hkern u1="d" u2="Õ" k="27" /> +<hkern u1="d" u2="Ô" k="27" /> +<hkern u1="d" u2="Ó" k="27" /> +<hkern u1="d" u2="Ò" k="27" /> +<hkern u1="d" u2="Ñ" k="16" /> +<hkern u1="d" u2="Ð" k="16" /> +<hkern u1="d" u2="Ï" k="16" /> +<hkern u1="d" u2="Î" k="16" /> +<hkern u1="d" u2="Í" k="16" /> +<hkern u1="d" u2="Ì" k="16" /> +<hkern u1="d" u2="Ë" k="16" /> +<hkern u1="d" u2="Ê" k="16" /> +<hkern u1="d" u2="É" k="16" /> +<hkern u1="d" u2="È" k="16" /> +<hkern u1="d" u2="Ç" k="27" /> +<hkern u1="d" u2="­" k="18" /> +<hkern u1="d" u2="y" k="16" /> +<hkern u1="d" u2="w" k="16" /> +<hkern u1="d" u2="v" k="16" /> +<hkern u1="d" u2="t" k="8" /> +<hkern u1="d" u2="p" k="8" /> +<hkern u1="d" u2="j" k="8" /> +<hkern u1="d" u2="]" k="23" /> +<hkern u1="d" u2="Y" k="33" /> +<hkern u1="d" u2="W" k="41" /> +<hkern u1="d" u2="V" k="37" /> +<hkern u1="d" u2="U" k="39" /> +<hkern u1="d" u2="T" k="18" /> +<hkern u1="d" u2="S" k="10" /> +<hkern u1="d" u2="R" k="16" /> +<hkern u1="d" u2="Q" k="27" /> +<hkern u1="d" u2="P" k="16" /> +<hkern u1="d" u2="O" k="27" /> +<hkern u1="d" u2="N" k="16" /> +<hkern u1="d" u2="M" k="14" /> +<hkern u1="d" u2="L" k="16" /> +<hkern u1="d" u2="K" k="16" /> +<hkern u1="d" u2="I" k="16" /> +<hkern u1="d" u2="H" k="16" /> +<hkern u1="d" u2="G" k="27" /> +<hkern u1="d" u2="F" k="16" /> +<hkern u1="d" u2="E" k="16" /> +<hkern u1="d" u2="D" k="16" /> +<hkern u1="d" u2="C" k="27" /> +<hkern u1="d" u2="B" k="16" /> +<hkern u1="d" u2="/" k="49" /> +<hkern u1="d" u2="-" k="18" /> +<hkern u1="e" u2="™" k="41" /> +<hkern u1="e" u2="}" k="63" /> +<hkern u1="e" u2="]" k="125" /> +<hkern u1="e" u2="\" k="94" /> +<hkern u1="e" u2="X" k="49" /> +<hkern u1="e" u2="W" k="145" /> +<hkern u1="e" u2="V" k="168" /> +<hkern u1="e" u2="T" k="82" /> +<hkern u1="e" u2="M" k="31" /> +<hkern u1="e" u2="?" k="33" /> +<hkern u1="e" u2="/" k="94" /> +<hkern u1="e" u2="*" k="16" /> +<hkern u1="e" u2=")" k="59" /> +<hkern u1="f" u2="™" k="-135" /> +<hkern u1="f" u2="‹" k="25" /> +<hkern u1="f" u2="”" k="-160" /> +<hkern u1="f" u2="“" k="-86" /> +<hkern u1="f" u2="’" k="-160" /> +<hkern u1="f" u2="‘" k="-86" /> +<hkern u1="f" u2="—" k="31" /> +<hkern u1="f" u2="–" k="31" /> +<hkern u1="f" u2="Ÿ" k="-197" /> +<hkern u1="f" u2="œ" k="12" /> +<hkern u1="f" u2="þ" k="-168" /> +<hkern u1="f" u2="ø" k="12" /> +<hkern u1="f" u2="ö" k="12" /> +<hkern u1="f" u2="õ" k="12" /> +<hkern u1="f" u2="ô" k="12" /> +<hkern u1="f" u2="ó" k="12" /> +<hkern u1="f" u2="ò" k="12" /> +<hkern u1="f" u2="ï" k="-129" /> +<hkern u1="f" u2="î" k="-115" /> +<hkern u1="f" u2="ì" k="-117" /> +<hkern u1="f" u2="ë" k="12" /> +<hkern u1="f" u2="ê" k="12" /> +<hkern u1="f" u2="é" k="12" /> +<hkern u1="f" u2="è" k="12" /> +<hkern u1="f" u2="ç" k="12" /> +<hkern u1="f" u2="ã" k="-47" /> +<hkern u1="f" u2="Þ" k="-102" /> +<hkern u1="f" u2="Ý" k="-197" /> +<hkern u1="f" u2="Ü" k="-152" /> +<hkern u1="f" u2="Û" k="-152" /> +<hkern u1="f" u2="Ú" k="-152" /> +<hkern u1="f" u2="Ù" k="-152" /> +<hkern u1="f" u2="Ñ" k="-102" /> +<hkern u1="f" u2="Ð" k="-102" /> +<hkern u1="f" u2="Ï" k="-102" /> +<hkern u1="f" u2="Î" k="-102" /> +<hkern u1="f" u2="Í" k="-102" /> +<hkern u1="f" u2="Ì" k="-102" /> +<hkern u1="f" u2="Ë" k="-102" /> +<hkern u1="f" u2="Ê" k="-102" /> +<hkern u1="f" u2="É" k="-102" /> +<hkern u1="f" u2="È" k="-102" /> +<hkern u1="f" u2="Å" k="14" /> +<hkern u1="f" u2="Ä" k="14" /> +<hkern u1="f" u2="Ã" k="14" /> +<hkern u1="f" u2="Â" k="14" /> +<hkern u1="f" u2="Á" k="14" /> +<hkern u1="f" u2="À" k="14" /> +<hkern u1="f" u2="­" k="31" /> +<hkern u1="f" u2="«" k="25" /> +<hkern u1="f" u2="}" k="-182" /> +<hkern u1="f" u2="|" k="-80" /> +<hkern u1="f" u2="v" k="-10" /> +<hkern u1="f" u2="q" k="10" /> +<hkern u1="f" u2="o" k="12" /> +<hkern u1="f" u2="l" k="-123" /> +<hkern u1="f" u2="k" k="-123" /> +<hkern u1="f" u2="j" k="-16" /> +<hkern u1="f" u2="h" k="-123" /> +<hkern u1="f" u2="e" k="12" /> +<hkern u1="f" u2="d" k="10" /> +<hkern u1="f" u2="c" k="12" /> +<hkern u1="f" u2="b" k="-168" /> +<hkern u1="f" u2="]" k="-197" /> +<hkern u1="f" u2="\" k="-147" /> +<hkern u1="f" u2="Z" k="-102" /> +<hkern u1="f" u2="Y" k="-197" /> +<hkern u1="f" u2="X" k="-176" /> +<hkern u1="f" u2="W" k="-178" /> +<hkern u1="f" u2="V" k="-188" /> +<hkern u1="f" u2="U" k="-152" /> +<hkern u1="f" u2="T" k="-164" /> +<hkern u1="f" u2="S" k="-31" /> +<hkern u1="f" u2="R" k="-102" /> +<hkern u1="f" u2="P" k="-102" /> +<hkern u1="f" u2="N" k="-102" /> +<hkern u1="f" u2="M" k="-96" /> +<hkern u1="f" u2="L" k="-102" /> +<hkern u1="f" u2="K" k="-102" /> +<hkern u1="f" u2="I" k="-102" /> +<hkern u1="f" u2="H" k="-102" /> +<hkern u1="f" u2="F" k="-102" /> +<hkern u1="f" u2="E" k="-102" /> +<hkern u1="f" u2="D" k="-102" /> +<hkern u1="f" u2="B" k="-102" /> +<hkern u1="f" u2="A" k="14" /> +<hkern u1="f" u2="?" k="-76" /> +<hkern u1="f" u2="/" k="74" /> +<hkern u1="f" u2="-" k="31" /> +<hkern u1="f" u2="*" k="-39" /> +<hkern u1="f" u2=")" k="-135" /> +<hkern u1="f" u2="'" k="-115" /> +<hkern u1="f" u2=""" k="-115" /> +<hkern u1="f" u2="!" k="-82" /> +<hkern u1="g" u2="fl" k="-10" /> +<hkern u1="g" u2="fi" k="-10" /> +<hkern u1="g" u2="™" k="-82" /> +<hkern u1="g" u2="›" k="-43" /> +<hkern u1="g" u2="“" k="-78" /> +<hkern u1="g" u2="‘" k="-78" /> +<hkern u1="g" u2="œ" k="14" /> +<hkern u1="g" u2="Œ" k="10" /> +<hkern u1="g" u2="ÿ" k="-61" /> +<hkern u1="g" u2="þ" k="-14" /> +<hkern u1="g" u2="ý" k="-61" /> +<hkern u1="g" u2="ø" k="14" /> +<hkern u1="g" u2="ö" k="14" /> +<hkern u1="g" u2="õ" k="14" /> +<hkern u1="g" u2="ô" k="14" /> +<hkern u1="g" u2="ó" k="14" /> +<hkern u1="g" u2="ò" k="14" /> +<hkern u1="g" u2="ð" k="16" /> +<hkern u1="g" u2="î" k="-39" /> +<hkern u1="g" u2="ë" k="14" /> +<hkern u1="g" u2="ê" k="14" /> +<hkern u1="g" u2="é" k="14" /> +<hkern u1="g" u2="è" k="14" /> +<hkern u1="g" u2="ç" k="14" /> +<hkern u1="g" u2="æ" k="12" /> +<hkern u1="g" u2="å" k="12" /> +<hkern u1="g" u2="ä" k="12" /> +<hkern u1="g" u2="ã" k="12" /> +<hkern u1="g" u2="â" k="12" /> +<hkern u1="g" u2="á" k="12" /> +<hkern u1="g" u2="à" k="12" /> +<hkern u1="g" u2="ß" k="-10" /> +<hkern u1="g" u2="Þ" k="14" /> +<hkern u1="g" u2="Ü" k="12" /> +<hkern u1="g" u2="Û" k="12" /> +<hkern u1="g" u2="Ú" k="12" /> +<hkern u1="g" u2="Ù" k="12" /> +<hkern u1="g" u2="Ø" k="10" /> +<hkern u1="g" u2="Ö" k="10" /> +<hkern u1="g" u2="Õ" k="10" /> +<hkern u1="g" u2="Ô" k="10" /> +<hkern u1="g" u2="Ó" k="10" /> +<hkern u1="g" u2="Ò" k="10" /> +<hkern u1="g" u2="Ñ" k="14" /> +<hkern u1="g" u2="Ð" k="14" /> +<hkern u1="g" u2="Ï" k="14" /> +<hkern u1="g" u2="Î" k="14" /> +<hkern u1="g" u2="Í" k="14" /> +<hkern u1="g" u2="Ì" k="14" /> +<hkern u1="g" u2="Ë" k="14" /> +<hkern u1="g" u2="Ê" k="14" /> +<hkern u1="g" u2="É" k="14" /> +<hkern u1="g" u2="È" k="14" /> +<hkern u1="g" u2="Ç" k="10" /> +<hkern u1="g" u2="Å" k="31" /> +<hkern u1="g" u2="Ä" k="31" /> +<hkern u1="g" u2="Ã" k="31" /> +<hkern u1="g" u2="Â" k="31" /> +<hkern u1="g" u2="Á" k="31" /> +<hkern u1="g" u2="À" k="31" /> +<hkern u1="g" u2="»" k="-43" /> +<hkern u1="g" u2="|" k="-20" /> +<hkern u1="g" u2="z" k="8" /> +<hkern u1="g" u2="y" k="-61" /> +<hkern u1="g" u2="x" k="-31" /> +<hkern u1="g" u2="w" k="-55" /> +<hkern u1="g" u2="v" k="-61" /> +<hkern u1="g" u2="t" k="-39" /> +<hkern u1="g" u2="s" k="12" /> +<hkern u1="g" u2="q" k="14" /> +<hkern u1="g" u2="o" k="14" /> +<hkern u1="g" u2="l" k="12" /> +<hkern u1="g" u2="k" k="12" /> +<hkern u1="g" u2="j" k="-180" /> +<hkern u1="g" u2="h" k="12" /> +<hkern u1="g" u2="g" k="14" /> +<hkern u1="g" u2="f" k="-10" /> +<hkern u1="g" u2="e" k="14" /> +<hkern u1="g" u2="d" k="14" /> +<hkern u1="g" u2="c" k="14" /> +<hkern u1="g" u2="b" k="-14" /> +<hkern u1="g" u2="a" k="12" /> +<hkern u1="g" u2="Z" k="-51" /> +<hkern u1="g" u2="W" k="10" /> +<hkern u1="g" u2="U" k="12" /> +<hkern u1="g" u2="T" k="-113" /> +<hkern u1="g" u2="S" k="-55" /> +<hkern u1="g" u2="R" k="14" /> +<hkern u1="g" u2="Q" k="10" /> +<hkern u1="g" u2="P" k="14" /> +<hkern u1="g" u2="O" k="10" /> +<hkern u1="g" u2="N" k="14" /> +<hkern u1="g" u2="M" k="14" /> +<hkern u1="g" u2="L" k="14" /> +<hkern u1="g" u2="K" k="14" /> +<hkern u1="g" u2="J" k="31" /> +<hkern u1="g" u2="I" k="14" /> +<hkern u1="g" u2="H" k="14" /> +<hkern u1="g" u2="G" k="10" /> +<hkern u1="g" u2="F" k="14" /> +<hkern u1="g" u2="E" k="14" /> +<hkern u1="g" u2="D" k="14" /> +<hkern u1="g" u2="C" k="10" /> +<hkern u1="g" u2="B" k="14" /> +<hkern u1="g" u2="A" k="31" /> +<hkern u1="g" u2="?" k="-76" /> +<hkern u1="g" u2="*" k="-127" /> +<hkern u1="g" u2="'" k="-51" /> +<hkern u1="g" u2=""" k="-51" /> +<hkern u1="g" u2="!" k="-16" /> +<hkern u1="h" u2="™" k="59" /> +<hkern u1="h" u2="}" k="57" /> +<hkern u1="h" u2="w" k="29" /> +<hkern u1="h" u2="v" k="31" /> +<hkern u1="h" u2="t" k="12" /> +<hkern u1="h" u2="p" k="8" /> +<hkern u1="h" u2="j" k="10" /> +<hkern u1="h" u2="]" k="121" /> +<hkern u1="h" u2="\" k="123" /> +<hkern u1="h" u2="W" k="127" /> +<hkern u1="h" u2="V" k="141" /> +<hkern u1="h" u2="T" k="88" /> +<hkern u1="h" u2="M" k="12" /> +<hkern u1="h" u2="?" k="43" /> +<hkern u1="h" u2="7" k="100" /> +<hkern u1="h" u2="/" k="47" /> +<hkern u1="h" u2="*" k="37" /> +<hkern u1="h" u2=")" k="49" /> +<hkern u1="i" u2="w" k="14" /> +<hkern u1="i" u2="v" k="14" /> +<hkern u1="i" u2="t" k="8" /> +<hkern u1="i" u2="W" k="35" /> +<hkern u1="i" u2="V" k="33" /> +<hkern u1="i" u2="T" k="18" /> +<hkern u1="i" u2="M" k="14" /> +<hkern u1="i" u2="/" k="49" /> +<hkern u1="i" u2="*" k="16" /> +<hkern u1="j" u2="Ÿ" k="18" /> +<hkern u1="j" u2="Œ" k="10" /> +<hkern u1="j" u2="Þ" k="23" /> +<hkern u1="j" u2="Ý" k="18" /> +<hkern u1="j" u2="Ü" k="16" /> +<hkern u1="j" u2="Û" k="16" /> +<hkern u1="j" u2="Ú" k="16" /> +<hkern u1="j" u2="Ù" k="16" /> +<hkern u1="j" u2="Ø" k="10" /> +<hkern u1="j" u2="Ö" k="10" /> +<hkern u1="j" u2="Õ" k="10" /> +<hkern u1="j" u2="Ô" k="10" /> +<hkern u1="j" u2="Ó" k="10" /> +<hkern u1="j" u2="Ò" k="10" /> +<hkern u1="j" u2="Ñ" k="23" /> +<hkern u1="j" u2="Ð" k="23" /> +<hkern u1="j" u2="Ï" k="23" /> +<hkern u1="j" u2="Î" k="23" /> +<hkern u1="j" u2="Í" k="23" /> +<hkern u1="j" u2="Ì" k="23" /> +<hkern u1="j" u2="Ë" k="23" /> +<hkern u1="j" u2="Ê" k="23" /> +<hkern u1="j" u2="É" k="23" /> +<hkern u1="j" u2="È" k="23" /> +<hkern u1="j" u2="Ç" k="10" /> +<hkern u1="j" u2="Å" k="14" /> +<hkern u1="j" u2="Ä" k="14" /> +<hkern u1="j" u2="Ã" k="14" /> +<hkern u1="j" u2="Â" k="14" /> +<hkern u1="j" u2="Á" k="14" /> +<hkern u1="j" u2="À" k="14" /> +<hkern u1="j" u2="j" k="-57" /> +<hkern u1="j" u2="Y" k="18" /> +<hkern u1="j" u2="W" k="18" /> +<hkern u1="j" u2="V" k="16" /> +<hkern u1="j" u2="U" k="16" /> +<hkern u1="j" u2="S" k="12" /> +<hkern u1="j" u2="R" k="23" /> +<hkern u1="j" u2="Q" k="10" /> +<hkern u1="j" u2="P" k="23" /> +<hkern u1="j" u2="O" k="10" /> +<hkern u1="j" u2="N" k="23" /> +<hkern u1="j" u2="M" k="23" /> +<hkern u1="j" u2="L" k="23" /> +<hkern u1="j" u2="K" k="23" /> +<hkern u1="j" u2="I" k="23" /> +<hkern u1="j" u2="H" k="23" /> +<hkern u1="j" u2="G" k="10" /> +<hkern u1="j" u2="F" k="23" /> +<hkern u1="j" u2="E" k="23" /> +<hkern u1="j" u2="D" k="23" /> +<hkern u1="j" u2="C" k="10" /> +<hkern u1="j" u2="B" k="23" /> +<hkern u1="j" u2="A" k="14" /> +<hkern u1="k" u2="™" k="41" /> +<hkern u1="k" u2="‹" k="43" /> +<hkern u1="k" u2="—" k="55" /> +<hkern u1="k" u2="–" k="55" /> +<hkern u1="k" u2="Ÿ" k="109" /> +<hkern u1="k" u2="œ" k="51" /> +<hkern u1="k" u2="Œ" k="53" /> +<hkern u1="k" u2="ø" k="51" /> +<hkern u1="k" u2="ö" k="51" /> +<hkern u1="k" u2="õ" k="51" /> +<hkern u1="k" u2="ô" k="51" /> +<hkern u1="k" u2="ó" k="51" /> +<hkern u1="k" u2="ò" k="51" /> +<hkern u1="k" u2="ð" k="49" /> +<hkern u1="k" u2="ë" k="51" /> +<hkern u1="k" u2="ê" k="51" /> +<hkern u1="k" u2="é" k="51" /> +<hkern u1="k" u2="è" k="51" /> +<hkern u1="k" u2="ç" k="51" /> +<hkern u1="k" u2="æ" k="8" /> +<hkern u1="k" u2="å" k="8" /> +<hkern u1="k" u2="ä" k="8" /> +<hkern u1="k" u2="ã" k="8" /> +<hkern u1="k" u2="â" k="8" /> +<hkern u1="k" u2="á" k="8" /> +<hkern u1="k" u2="à" k="8" /> +<hkern u1="k" u2="Ý" k="109" /> +<hkern u1="k" u2="Ü" k="59" /> +<hkern u1="k" u2="Û" k="59" /> +<hkern u1="k" u2="Ú" k="59" /> +<hkern u1="k" u2="Ù" k="59" /> +<hkern u1="k" u2="Ø" k="53" /> +<hkern u1="k" u2="Ö" k="53" /> +<hkern u1="k" u2="Õ" k="53" /> +<hkern u1="k" u2="Ô" k="53" /> +<hkern u1="k" u2="Ó" k="53" /> +<hkern u1="k" u2="Ò" k="53" /> +<hkern u1="k" u2="Ç" k="53" /> +<hkern u1="k" u2="­" k="55" /> +<hkern u1="k" u2="«" k="43" /> +<hkern u1="k" u2="}" k="39" /> +<hkern u1="k" u2="q" k="45" /> +<hkern u1="k" u2="o" k="51" /> +<hkern u1="k" u2="g" k="20" /> +<hkern u1="k" u2="e" k="51" /> +<hkern u1="k" u2="d" k="45" /> +<hkern u1="k" u2="c" k="51" /> +<hkern u1="k" u2="a" k="8" /> +<hkern u1="k" u2="]" k="102" /> +<hkern u1="k" u2="\" k="45" /> +<hkern u1="k" u2="Y" k="109" /> +<hkern u1="k" u2="W" k="90" /> +<hkern u1="k" u2="V" k="90" /> +<hkern u1="k" u2="U" k="59" /> +<hkern u1="k" u2="Q" k="53" /> +<hkern u1="k" u2="O" k="53" /> +<hkern u1="k" u2="G" k="53" /> +<hkern u1="k" u2="C" k="53" /> +<hkern u1="k" u2="/" k="41" /> +<hkern u1="k" u2="-" k="55" /> +<hkern u1="k" u2=")" k="31" /> +<hkern u1="l" u2="·" k="127" /> +<hkern u1="l" u2="w" k="16" /> +<hkern u1="l" u2="v" k="16" /> +<hkern u1="l" u2="t" k="8" /> +<hkern u1="l" u2="p" k="8" /> +<hkern u1="l" u2="j" k="8" /> +<hkern u1="l" u2="]" k="23" /> +<hkern u1="l" u2="W" k="41" /> +<hkern u1="l" u2="V" k="37" /> +<hkern u1="l" u2="T" k="18" /> +<hkern u1="l" u2="M" k="14" /> +<hkern u1="l" u2="/" k="49" /> +<hkern u1="m" u2="™" k="59" /> +<hkern u1="m" u2="}" k="57" /> +<hkern u1="m" u2="w" k="29" /> +<hkern u1="m" u2="v" k="31" /> +<hkern u1="m" u2="t" k="12" /> +<hkern u1="m" u2="p" k="8" /> +<hkern u1="m" u2="j" k="10" /> +<hkern u1="m" u2="]" k="121" /> +<hkern u1="m" u2="\" k="123" /> +<hkern u1="m" u2="W" k="127" /> +<hkern u1="m" u2="V" k="141" /> +<hkern u1="m" u2="T" k="88" /> +<hkern u1="m" u2="M" k="12" /> +<hkern u1="m" u2="?" k="43" /> +<hkern u1="m" u2="/" k="47" /> +<hkern u1="m" u2="*" k="37" /> +<hkern u1="m" u2=")" k="49" /> +<hkern u1="n" u2="™" k="59" /> +<hkern u1="n" u2="}" k="57" /> +<hkern u1="n" u2="w" k="29" /> +<hkern u1="n" u2="v" k="31" /> +<hkern u1="n" u2="t" k="12" /> +<hkern u1="n" u2="p" k="8" /> +<hkern u1="n" u2="j" k="10" /> +<hkern u1="n" u2="]" k="121" /> +<hkern u1="n" u2="\" k="123" /> +<hkern u1="n" u2="W" k="127" /> +<hkern u1="n" u2="V" k="141" /> +<hkern u1="n" u2="T" k="88" /> +<hkern u1="n" u2="M" k="12" /> +<hkern u1="n" u2="?" k="43" /> +<hkern u1="n" u2="/" k="47" /> +<hkern u1="n" u2="*" k="37" /> +<hkern u1="n" u2=")" k="49" /> +<hkern u1="o" u2="™" k="41" /> +<hkern u1="o" u2="}" k="74" /> +<hkern u1="o" u2="x" k="16" /> +<hkern u1="o" u2="w" k="14" /> +<hkern u1="o" u2="v" k="12" /> +<hkern u1="o" u2="]" k="127" /> +<hkern u1="o" u2="\" k="106" /> +<hkern u1="o" u2="X" k="92" /> +<hkern u1="o" u2="W" k="137" /> +<hkern u1="o" u2="V" k="162" /> +<hkern u1="o" u2="T" k="94" /> +<hkern u1="o" u2="M" k="51" /> +<hkern u1="o" u2="?" k="41" /> +<hkern u1="o" u2="/" k="117" /> +<hkern u1="o" u2="*" k="16" /> +<hkern u1="o" u2=")" k="68" /> +<hkern u1="p" u2="™" k="39" /> +<hkern u1="p" u2="”" k="35" /> +<hkern u1="p" u2="“" k="29" /> +<hkern u1="p" u2="’" k="35" /> +<hkern u1="p" u2="‘" k="29" /> +<hkern u1="p" u2="Ÿ" k="164" /> +<hkern u1="p" u2="ÿ" k="8" /> +<hkern u1="p" u2="ý" k="8" /> +<hkern u1="p" u2="Þ" k="49" /> +<hkern u1="p" u2="Ý" k="164" /> +<hkern u1="p" u2="Ü" k="57" /> +<hkern u1="p" u2="Û" k="57" /> +<hkern u1="p" u2="Ú" k="57" /> +<hkern u1="p" u2="Ù" k="57" /> +<hkern u1="p" u2="Ñ" k="49" /> +<hkern u1="p" u2="Ð" k="49" /> +<hkern u1="p" u2="Ï" k="49" /> +<hkern u1="p" u2="Î" k="49" /> +<hkern u1="p" u2="Í" k="49" /> +<hkern u1="p" u2="Ì" k="49" /> +<hkern u1="p" u2="Ë" k="49" /> +<hkern u1="p" u2="Ê" k="49" /> +<hkern u1="p" u2="É" k="49" /> +<hkern u1="p" u2="È" k="49" /> +<hkern u1="p" u2="Å" k="33" /> +<hkern u1="p" u2="Ä" k="33" /> +<hkern u1="p" u2="Ã" k="33" /> +<hkern u1="p" u2="Â" k="33" /> +<hkern u1="p" u2="Á" k="33" /> +<hkern u1="p" u2="À" k="33" /> +<hkern u1="p" u2="}" k="74" /> +<hkern u1="p" u2="y" k="8" /> +<hkern u1="p" u2="x" k="12" /> +<hkern u1="p" u2="w" k="8" /> +<hkern u1="p" u2="v" k="8" /> +<hkern u1="p" u2="l" k="8" /> +<hkern u1="p" u2="k" k="8" /> +<hkern u1="p" u2="h" k="8" /> +<hkern u1="p" u2="]" k="125" /> +<hkern u1="p" u2="\" k="100" /> +<hkern u1="p" u2="Z" k="37" /> +<hkern u1="p" u2="Y" k="164" /> +<hkern u1="p" u2="X" k="90" /> +<hkern u1="p" u2="W" k="133" /> +<hkern u1="p" u2="V" k="158" /> +<hkern u1="p" u2="U" k="57" /> +<hkern u1="p" u2="T" k="92" /> +<hkern u1="p" u2="S" k="16" /> +<hkern u1="p" u2="R" k="49" /> +<hkern u1="p" u2="P" k="49" /> +<hkern u1="p" u2="N" k="49" /> +<hkern u1="p" u2="M" k="49" /> +<hkern u1="p" u2="L" k="49" /> +<hkern u1="p" u2="K" k="49" /> +<hkern u1="p" u2="I" k="49" /> +<hkern u1="p" u2="H" k="49" /> +<hkern u1="p" u2="F" k="49" /> +<hkern u1="p" u2="E" k="49" /> +<hkern u1="p" u2="D" k="49" /> +<hkern u1="p" u2="B" k="49" /> +<hkern u1="p" u2="A" k="33" /> +<hkern u1="p" u2="?" k="37" /> +<hkern u1="p" u2="/" k="115" /> +<hkern u1="p" u2=")" k="68" /> +<hkern u1="p" u2="'" k="39" /> +<hkern u1="p" u2=""" k="39" /> +<hkern u1="q" u2="™" k="20" /> +<hkern u1="q" u2="Ÿ" k="125" /> +<hkern u1="q" u2="Œ" k="10" /> +<hkern u1="q" u2="Þ" k="35" /> +<hkern u1="q" u2="Ý" k="125" /> +<hkern u1="q" u2="Ü" k="45" /> +<hkern u1="q" u2="Û" k="45" /> +<hkern u1="q" u2="Ú" k="45" /> +<hkern u1="q" u2="Ù" k="45" /> +<hkern u1="q" u2="Ø" k="10" /> +<hkern u1="q" u2="Ö" k="10" /> +<hkern u1="q" u2="Õ" k="10" /> +<hkern u1="q" u2="Ô" k="10" /> +<hkern u1="q" u2="Ó" k="10" /> +<hkern u1="q" u2="Ò" k="10" /> +<hkern u1="q" u2="Ñ" k="35" /> +<hkern u1="q" u2="Ð" k="35" /> +<hkern u1="q" u2="Ï" k="35" /> +<hkern u1="q" u2="Î" k="35" /> +<hkern u1="q" u2="Í" k="35" /> +<hkern u1="q" u2="Ì" k="35" /> +<hkern u1="q" u2="Ë" k="35" /> +<hkern u1="q" u2="Ê" k="35" /> +<hkern u1="q" u2="É" k="35" /> +<hkern u1="q" u2="È" k="35" /> +<hkern u1="q" u2="Ç" k="10" /> +<hkern u1="q" u2="Å" k="14" /> +<hkern u1="q" u2="Ä" k="14" /> +<hkern u1="q" u2="Ã" k="14" /> +<hkern u1="q" u2="Â" k="14" /> +<hkern u1="q" u2="Á" k="14" /> +<hkern u1="q" u2="À" k="14" /> +<hkern u1="q" u2="}" k="-70" /> +<hkern u1="q" u2="j" k="-260" /> +<hkern u1="q" u2="]" k="-78" /> +<hkern u1="q" u2="\" k="68" /> +<hkern u1="q" u2="Z" k="16" /> +<hkern u1="q" u2="Y" k="125" /> +<hkern u1="q" u2="X" k="37" /> +<hkern u1="q" u2="W" k="115" /> +<hkern u1="q" u2="V" k="123" /> +<hkern u1="q" u2="U" k="45" /> +<hkern u1="q" u2="T" k="20" /> +<hkern u1="q" u2="S" k="12" /> +<hkern u1="q" u2="R" k="35" /> +<hkern u1="q" u2="Q" k="10" /> +<hkern u1="q" u2="P" k="35" /> +<hkern u1="q" u2="O" k="10" /> +<hkern u1="q" u2="N" k="35" /> +<hkern u1="q" u2="M" k="35" /> +<hkern u1="q" u2="L" k="35" /> +<hkern u1="q" u2="K" k="35" /> +<hkern u1="q" u2="I" k="35" /> +<hkern u1="q" u2="H" k="35" /> +<hkern u1="q" u2="G" k="10" /> +<hkern u1="q" u2="F" k="35" /> +<hkern u1="q" u2="E" k="35" /> +<hkern u1="q" u2="D" k="35" /> +<hkern u1="q" u2="C" k="10" /> +<hkern u1="q" u2="B" k="35" /> +<hkern u1="q" u2="A" k="14" /> +<hkern u1="q" u2="/" k="-57" /> +<hkern u1="q" u2=")" k="-59" /> +<hkern u1="r" u2="™" k="20" /> +<hkern u1="r" u2="‹" k="29" /> +<hkern u1="r" u2="…" k="92" /> +<hkern u1="r" u2="„" k="92" /> +<hkern u1="r" u2="‚" k="92" /> +<hkern u1="r" u2="Ÿ" k="96" /> +<hkern u1="r" u2="œ" k="16" /> +<hkern u1="r" u2="ÿ" k="-27" /> +<hkern u1="r" u2="þ" k="8" /> +<hkern u1="r" u2="ý" k="-27" /> +<hkern u1="r" u2="ø" k="16" /> +<hkern u1="r" u2="ö" k="16" /> +<hkern u1="r" u2="õ" k="16" /> +<hkern u1="r" u2="ô" k="16" /> +<hkern u1="r" u2="ó" k="16" /> +<hkern u1="r" u2="ò" k="16" /> +<hkern u1="r" u2="ð" k="20" /> +<hkern u1="r" u2="ë" k="16" /> +<hkern u1="r" u2="ê" k="16" /> +<hkern u1="r" u2="é" k="16" /> +<hkern u1="r" u2="è" k="16" /> +<hkern u1="r" u2="ç" k="16" /> +<hkern u1="r" u2="æ" k="10" /> +<hkern u1="r" u2="å" k="10" /> +<hkern u1="r" u2="ä" k="10" /> +<hkern u1="r" u2="ã" k="10" /> +<hkern u1="r" u2="â" k="10" /> +<hkern u1="r" u2="á" k="10" /> +<hkern u1="r" u2="à" k="10" /> +<hkern u1="r" u2="Þ" k="76" /> +<hkern u1="r" u2="Ý" k="96" /> +<hkern u1="r" u2="Ü" k="45" /> +<hkern u1="r" u2="Û" k="45" /> +<hkern u1="r" u2="Ú" k="45" /> +<hkern u1="r" u2="Ù" k="45" /> +<hkern u1="r" u2="Ñ" k="76" /> +<hkern u1="r" u2="Ð" k="76" /> +<hkern u1="r" u2="Ï" k="76" /> +<hkern u1="r" u2="Î" k="76" /> +<hkern u1="r" u2="Í" k="76" /> +<hkern u1="r" u2="Ì" k="76" /> +<hkern u1="r" u2="Ë" k="76" /> +<hkern u1="r" u2="Ê" k="76" /> +<hkern u1="r" u2="É" k="76" /> +<hkern u1="r" u2="È" k="76" /> +<hkern u1="r" u2="Å" k="113" /> +<hkern u1="r" u2="Ä" k="113" /> +<hkern u1="r" u2="Ã" k="113" /> +<hkern u1="r" u2="Â" k="113" /> +<hkern u1="r" u2="Á" k="113" /> +<hkern u1="r" u2="À" k="113" /> +<hkern u1="r" u2="«" k="29" /> +<hkern u1="r" u2="}" k="59" /> +<hkern u1="r" u2="z" k="8" /> +<hkern u1="r" u2="y" k="-27" /> +<hkern u1="r" u2="w" k="-16" /> +<hkern u1="r" u2="v" k="-23" /> +<hkern u1="r" u2="s" k="8" /> +<hkern u1="r" u2="q" k="16" /> +<hkern u1="r" u2="o" k="16" /> +<hkern u1="r" u2="l" k="18" /> +<hkern u1="r" u2="k" k="18" /> +<hkern u1="r" u2="h" k="18" /> +<hkern u1="r" u2="g" k="14" /> +<hkern u1="r" u2="e" k="16" /> +<hkern u1="r" u2="d" k="16" /> +<hkern u1="r" u2="c" k="16" /> +<hkern u1="r" u2="b" k="8" /> +<hkern u1="r" u2="a" k="10" /> +<hkern u1="r" u2="]" k="129" /> +<hkern u1="r" u2="\" k="45" /> +<hkern u1="r" u2="Z" k="20" /> +<hkern u1="r" u2="Y" k="96" /> +<hkern u1="r" u2="X" k="111" /> +<hkern u1="r" u2="W" k="80" /> +<hkern u1="r" u2="V" k="82" /> +<hkern u1="r" u2="U" k="45" /> +<hkern u1="r" u2="S" k="14" /> +<hkern u1="r" u2="R" k="76" /> +<hkern u1="r" u2="P" k="76" /> +<hkern u1="r" u2="N" k="76" /> +<hkern u1="r" u2="M" k="76" /> +<hkern u1="r" u2="L" k="76" /> +<hkern u1="r" u2="K" k="76" /> +<hkern u1="r" u2="J" k="135" /> +<hkern u1="r" u2="I" k="76" /> +<hkern u1="r" u2="H" k="76" /> +<hkern u1="r" u2="F" k="76" /> +<hkern u1="r" u2="E" k="76" /> +<hkern u1="r" u2="D" k="76" /> +<hkern u1="r" u2="B" k="76" /> +<hkern u1="r" u2="A" k="113" /> +<hkern u1="r" u2="/" k="166" /> +<hkern u1="r" u2="." k="92" /> +<hkern u1="r" u2="," k="92" /> +<hkern u1="r" u2=")" k="55" /> +<hkern u1="r" u2="&" k="39" /> +<hkern u1="s" u2="™" k="23" /> +<hkern u1="s" u2="}" k="59" /> +<hkern u1="s" u2="]" k="123" /> +<hkern u1="s" u2="\" k="68" /> +<hkern u1="s" u2="X" k="41" /> +<hkern u1="s" u2="W" k="104" /> +<hkern u1="s" u2="V" k="104" /> +<hkern u1="s" u2="T" k="20" /> +<hkern u1="s" u2="M" k="31" /> +<hkern u1="s" u2="/" k="86" /> +<hkern u1="s" u2=")" k="53" /> +<hkern u1="t" u2="™" k="43" /> +<hkern u1="t" u2="‹" k="29" /> +<hkern u1="t" u2="”" k="18" /> +<hkern u1="t" u2="’" k="18" /> +<hkern u1="t" u2="—" k="16" /> +<hkern u1="t" u2="–" k="16" /> +<hkern u1="t" u2="Ÿ" k="139" /> +<hkern u1="t" u2="Œ" k="10" /> +<hkern u1="t" u2="Þ" k="8" /> +<hkern u1="t" u2="Ý" k="139" /> +<hkern u1="t" u2="Ü" k="51" /> +<hkern u1="t" u2="Û" k="51" /> +<hkern u1="t" u2="Ú" k="51" /> +<hkern u1="t" u2="Ù" k="51" /> +<hkern u1="t" u2="Ø" k="10" /> +<hkern u1="t" u2="Ö" k="10" /> +<hkern u1="t" u2="Õ" k="10" /> +<hkern u1="t" u2="Ô" k="10" /> +<hkern u1="t" u2="Ó" k="10" /> +<hkern u1="t" u2="Ò" k="10" /> +<hkern u1="t" u2="Ñ" k="8" /> +<hkern u1="t" u2="Ð" k="8" /> +<hkern u1="t" u2="Ï" k="8" /> +<hkern u1="t" u2="Î" k="8" /> +<hkern u1="t" u2="Í" k="8" /> +<hkern u1="t" u2="Ì" k="8" /> +<hkern u1="t" u2="Ë" k="8" /> +<hkern u1="t" u2="Ê" k="8" /> +<hkern u1="t" u2="É" k="8" /> +<hkern u1="t" u2="È" k="8" /> +<hkern u1="t" u2="Ç" k="10" /> +<hkern u1="t" u2="Å" k="-23" /> +<hkern u1="t" u2="Ä" k="-23" /> +<hkern u1="t" u2="Ã" k="-23" /> +<hkern u1="t" u2="Â" k="-23" /> +<hkern u1="t" u2="Á" k="-23" /> +<hkern u1="t" u2="À" k="-23" /> +<hkern u1="t" u2="»" k="-20" /> +<hkern u1="t" u2="­" k="16" /> +<hkern u1="t" u2="«" k="29" /> +<hkern u1="t" u2="}" k="43" /> +<hkern u1="t" u2="]" k="104" /> +<hkern u1="t" u2="\" k="68" /> +<hkern u1="t" u2="Y" k="139" /> +<hkern u1="t" u2="X" k="10" /> +<hkern u1="t" u2="W" k="102" /> +<hkern u1="t" u2="V" k="102" /> +<hkern u1="t" u2="U" k="51" /> +<hkern u1="t" u2="T" k="29" /> +<hkern u1="t" u2="R" k="8" /> +<hkern u1="t" u2="Q" k="10" /> +<hkern u1="t" u2="P" k="8" /> +<hkern u1="t" u2="O" k="10" /> +<hkern u1="t" u2="N" k="8" /> +<hkern u1="t" u2="L" k="8" /> +<hkern u1="t" u2="K" k="8" /> +<hkern u1="t" u2="J" k="-63" /> +<hkern u1="t" u2="I" k="8" /> +<hkern u1="t" u2="H" k="8" /> +<hkern u1="t" u2="G" k="10" /> +<hkern u1="t" u2="F" k="8" /> +<hkern u1="t" u2="E" k="8" /> +<hkern u1="t" u2="D" k="8" /> +<hkern u1="t" u2="C" k="10" /> +<hkern u1="t" u2="B" k="8" /> +<hkern u1="t" u2="A" k="-23" /> +<hkern u1="t" u2="/" k="59" /> +<hkern u1="t" u2="-" k="16" /> +<hkern u1="t" u2=")" k="41" /> +<hkern u1="t" u2="&" k="-27" /> +<hkern u1="u" u2="™" k="37" /> +<hkern u1="u" u2="}" k="55" /> +<hkern u1="u" u2="w" k="14" /> +<hkern u1="u" u2="v" k="14" /> +<hkern u1="u" u2="t" k="8" /> +<hkern u1="u" u2="]" k="121" /> +<hkern u1="u" u2="\" k="86" /> +<hkern u1="u" u2="W" k="102" /> +<hkern u1="u" u2="V" k="119" /> +<hkern u1="u" u2="T" k="45" /> +<hkern u1="u" u2="M" k="14" /> +<hkern u1="u" u2="?" k="20" /> +<hkern u1="u" u2="/" k="51" /> +<hkern u1="u" u2="*" k="16" /> +<hkern u1="u" u2=")" k="47" /> +<hkern u1="v" u2="‹" k="23" /> +<hkern u1="v" u2="…" k="88" /> +<hkern u1="v" u2="„" k="88" /> +<hkern u1="v" u2="“" k="-49" /> +<hkern u1="v" u2="‚" k="88" /> +<hkern u1="v" u2="‘" k="-49" /> +<hkern u1="v" u2="—" k="20" /> +<hkern u1="v" u2="–" k="20" /> +<hkern u1="v" u2="Ÿ" k="63" /> +<hkern u1="v" u2="œ" k="25" /> +<hkern u1="v" u2="ø" k="25" /> +<hkern u1="v" u2="ö" k="25" /> +<hkern u1="v" u2="õ" k="25" /> +<hkern u1="v" u2="ô" k="25" /> +<hkern u1="v" u2="ó" k="25" /> +<hkern u1="v" u2="ò" k="25" /> +<hkern u1="v" u2="ð" k="25" /> +<hkern u1="v" u2="ë" k="25" /> +<hkern u1="v" u2="ê" k="25" /> +<hkern u1="v" u2="é" k="25" /> +<hkern u1="v" u2="è" k="25" /> +<hkern u1="v" u2="ç" k="25" /> +<hkern u1="v" u2="æ" k="8" /> +<hkern u1="v" u2="å" k="8" /> +<hkern u1="v" u2="ä" k="8" /> +<hkern u1="v" u2="ã" k="8" /> +<hkern u1="v" u2="â" k="8" /> +<hkern u1="v" u2="á" k="8" /> +<hkern u1="v" u2="à" k="8" /> +<hkern u1="v" u2="Þ" k="63" /> +<hkern u1="v" u2="Ý" k="63" /> +<hkern u1="v" u2="Ü" k="37" /> +<hkern u1="v" u2="Û" k="37" /> +<hkern u1="v" u2="Ú" k="37" /> +<hkern u1="v" u2="Ù" k="37" /> +<hkern u1="v" u2="Ñ" k="63" /> +<hkern u1="v" u2="Ð" k="63" /> +<hkern u1="v" u2="Ï" k="63" /> +<hkern u1="v" u2="Î" k="63" /> +<hkern u1="v" u2="Í" k="63" /> +<hkern u1="v" u2="Ì" k="63" /> +<hkern u1="v" u2="Ë" k="63" /> +<hkern u1="v" u2="Ê" k="63" /> +<hkern u1="v" u2="É" k="63" /> +<hkern u1="v" u2="È" k="63" /> +<hkern u1="v" u2="Å" k="106" /> +<hkern u1="v" u2="Ä" k="106" /> +<hkern u1="v" u2="Ã" k="106" /> +<hkern u1="v" u2="Â" k="106" /> +<hkern u1="v" u2="Á" k="106" /> +<hkern u1="v" u2="À" k="106" /> +<hkern u1="v" u2="­" k="20" /> +<hkern u1="v" u2="«" k="23" /> +<hkern u1="v" u2="}" k="55" /> +<hkern u1="v" u2="w" k="-31" /> +<hkern u1="v" u2="v" k="-41" /> +<hkern u1="v" u2="q" k="18" /> +<hkern u1="v" u2="o" k="25" /> +<hkern u1="v" u2="l" k="16" /> +<hkern u1="v" u2="k" k="16" /> +<hkern u1="v" u2="h" k="16" /> +<hkern u1="v" u2="g" k="18" /> +<hkern u1="v" u2="e" k="25" /> +<hkern u1="v" u2="d" k="18" /> +<hkern u1="v" u2="c" k="25" /> +<hkern u1="v" u2="a" k="8" /> +<hkern u1="v" u2="]" k="125" /> +<hkern u1="v" u2="\" k="31" /> +<hkern u1="v" u2="Y" k="63" /> +<hkern u1="v" u2="X" k="78" /> +<hkern u1="v" u2="W" k="57" /> +<hkern u1="v" u2="V" k="55" /> +<hkern u1="v" u2="U" k="37" /> +<hkern u1="v" u2="R" k="63" /> +<hkern u1="v" u2="P" k="63" /> +<hkern u1="v" u2="N" k="63" /> +<hkern u1="v" u2="M" k="66" /> +<hkern u1="v" u2="L" k="63" /> +<hkern u1="v" u2="K" k="63" /> +<hkern u1="v" u2="J" k="102" /> +<hkern u1="v" u2="I" k="63" /> +<hkern u1="v" u2="H" k="63" /> +<hkern u1="v" u2="F" k="63" /> +<hkern u1="v" u2="E" k="63" /> +<hkern u1="v" u2="D" k="63" /> +<hkern u1="v" u2="B" k="63" /> +<hkern u1="v" u2="A" k="106" /> +<hkern u1="v" u2="/" k="174" /> +<hkern u1="v" u2="." k="88" /> +<hkern u1="v" u2="-" k="20" /> +<hkern u1="v" u2="," k="88" /> +<hkern u1="v" u2="*" k="-23" /> +<hkern u1="v" u2=")" k="49" /> +<hkern u1="v" u2="&" k="23" /> +<hkern u1="w" u2="‹" k="23" /> +<hkern u1="w" u2="…" k="82" /> +<hkern u1="w" u2="„" k="82" /> +<hkern u1="w" u2="“" k="-76" /> +<hkern u1="w" u2="‚" k="82" /> +<hkern u1="w" u2="‘" k="-76" /> +<hkern u1="w" u2="—" k="23" /> +<hkern u1="w" u2="–" k="23" /> +<hkern u1="w" u2="Ÿ" k="63" /> +<hkern u1="w" u2="œ" k="20" /> +<hkern u1="w" u2="ø" k="20" /> +<hkern u1="w" u2="ö" k="20" /> +<hkern u1="w" u2="õ" k="20" /> +<hkern u1="w" u2="ô" k="20" /> +<hkern u1="w" u2="ó" k="20" /> +<hkern u1="w" u2="ò" k="20" /> +<hkern u1="w" u2="ð" k="23" /> +<hkern u1="w" u2="ë" k="20" /> +<hkern u1="w" u2="ê" k="20" /> +<hkern u1="w" u2="é" k="20" /> +<hkern u1="w" u2="è" k="20" /> +<hkern u1="w" u2="ç" k="20" /> +<hkern u1="w" u2="æ" k="8" /> +<hkern u1="w" u2="å" k="8" /> +<hkern u1="w" u2="ä" k="8" /> +<hkern u1="w" u2="ã" k="8" /> +<hkern u1="w" u2="â" k="8" /> +<hkern u1="w" u2="á" k="8" /> +<hkern u1="w" u2="à" k="8" /> +<hkern u1="w" u2="Þ" k="63" /> +<hkern u1="w" u2="Ý" k="63" /> +<hkern u1="w" u2="Ü" k="37" /> +<hkern u1="w" u2="Û" k="37" /> +<hkern u1="w" u2="Ú" k="37" /> +<hkern u1="w" u2="Ù" k="37" /> +<hkern u1="w" u2="Ñ" k="63" /> +<hkern u1="w" u2="Ð" k="63" /> +<hkern u1="w" u2="Ï" k="63" /> +<hkern u1="w" u2="Î" k="63" /> +<hkern u1="w" u2="Í" k="63" /> +<hkern u1="w" u2="Ì" k="63" /> +<hkern u1="w" u2="Ë" k="63" /> +<hkern u1="w" u2="Ê" k="63" /> +<hkern u1="w" u2="É" k="63" /> +<hkern u1="w" u2="È" k="63" /> +<hkern u1="w" u2="Å" k="104" /> +<hkern u1="w" u2="Ä" k="104" /> +<hkern u1="w" u2="Ã" k="104" /> +<hkern u1="w" u2="Â" k="104" /> +<hkern u1="w" u2="Á" k="104" /> +<hkern u1="w" u2="À" k="104" /> +<hkern u1="w" u2="­" k="23" /> +<hkern u1="w" u2="«" k="23" /> +<hkern u1="w" u2="}" k="55" /> +<hkern u1="w" u2="v" k="-35" /> +<hkern u1="w" u2="q" k="18" /> +<hkern u1="w" u2="o" k="20" /> +<hkern u1="w" u2="l" k="16" /> +<hkern u1="w" u2="k" k="16" /> +<hkern u1="w" u2="h" k="16" /> +<hkern u1="w" u2="g" k="18" /> +<hkern u1="w" u2="e" k="20" /> +<hkern u1="w" u2="d" k="18" /> +<hkern u1="w" u2="c" k="20" /> +<hkern u1="w" u2="a" k="8" /> +<hkern u1="w" u2="]" k="125" /> +<hkern u1="w" u2="\" k="31" /> +<hkern u1="w" u2="Y" k="63" /> +<hkern u1="w" u2="X" k="78" /> +<hkern u1="w" u2="W" k="57" /> +<hkern u1="w" u2="V" k="55" /> +<hkern u1="w" u2="U" k="37" /> +<hkern u1="w" u2="R" k="63" /> +<hkern u1="w" u2="P" k="63" /> +<hkern u1="w" u2="N" k="63" /> +<hkern u1="w" u2="M" k="66" /> +<hkern u1="w" u2="L" k="63" /> +<hkern u1="w" u2="K" k="63" /> +<hkern u1="w" u2="J" k="92" /> +<hkern u1="w" u2="I" k="63" /> +<hkern u1="w" u2="H" k="63" /> +<hkern u1="w" u2="F" k="63" /> +<hkern u1="w" u2="E" k="63" /> +<hkern u1="w" u2="D" k="63" /> +<hkern u1="w" u2="B" k="63" /> +<hkern u1="w" u2="A" k="104" /> +<hkern u1="w" u2="/" k="170" /> +<hkern u1="w" u2="." k="82" /> +<hkern u1="w" u2="-" k="23" /> +<hkern u1="w" u2="," k="82" /> +<hkern u1="w" u2="*" k="-23" /> +<hkern u1="w" u2=")" k="47" /> +<hkern u1="w" u2="&" k="20" /> +<hkern u1="x" u2="™" k="29" /> +<hkern u1="x" u2="‹" k="43" /> +<hkern u1="x" u2="“" k="20" /> +<hkern u1="x" u2="‘" k="20" /> +<hkern u1="x" u2="—" k="45" /> +<hkern u1="x" u2="–" k="45" /> +<hkern u1="x" u2="Ÿ" k="129" /> +<hkern u1="x" u2="œ" k="29" /> +<hkern u1="x" u2="Œ" k="41" /> +<hkern u1="x" u2="ø" k="29" /> +<hkern u1="x" u2="ö" k="29" /> +<hkern u1="x" u2="õ" k="29" /> +<hkern u1="x" u2="ô" k="29" /> +<hkern u1="x" u2="ó" k="29" /> +<hkern u1="x" u2="ò" k="29" /> +<hkern u1="x" u2="ð" k="27" /> +<hkern u1="x" u2="ë" k="29" /> +<hkern u1="x" u2="ê" k="29" /> +<hkern u1="x" u2="é" k="29" /> +<hkern u1="x" u2="è" k="29" /> +<hkern u1="x" u2="ç" k="29" /> +<hkern u1="x" u2="Ý" k="129" /> +<hkern u1="x" u2="Ü" k="74" /> +<hkern u1="x" u2="Û" k="74" /> +<hkern u1="x" u2="Ú" k="74" /> +<hkern u1="x" u2="Ù" k="74" /> +<hkern u1="x" u2="Ø" k="41" /> +<hkern u1="x" u2="Ö" k="41" /> +<hkern u1="x" u2="Õ" k="41" /> +<hkern u1="x" u2="Ô" k="41" /> +<hkern u1="x" u2="Ó" k="41" /> +<hkern u1="x" u2="Ò" k="41" /> +<hkern u1="x" u2="Ç" k="41" /> +<hkern u1="x" u2="­" k="45" /> +<hkern u1="x" u2="«" k="43" /> +<hkern u1="x" u2="}" k="43" /> +<hkern u1="x" u2="v" k="10" /> +<hkern u1="x" u2="q" k="25" /> +<hkern u1="x" u2="o" k="29" /> +<hkern u1="x" u2="g" k="10" /> +<hkern u1="x" u2="e" k="29" /> +<hkern u1="x" u2="d" k="25" /> +<hkern u1="x" u2="c" k="29" /> +<hkern u1="x" u2="]" k="113" /> +<hkern u1="x" u2="\" k="59" /> +<hkern u1="x" u2="Y" k="129" /> +<hkern u1="x" u2="W" k="92" /> +<hkern u1="x" u2="V" k="94" /> +<hkern u1="x" u2="U" k="74" /> +<hkern u1="x" u2="T" k="8" /> +<hkern u1="x" u2="Q" k="41" /> +<hkern u1="x" u2="O" k="41" /> +<hkern u1="x" u2="G" k="41" /> +<hkern u1="x" u2="C" k="41" /> +<hkern u1="x" u2="/" k="43" /> +<hkern u1="x" u2="-" k="45" /> +<hkern u1="x" u2=")" k="37" /> +<hkern u1="y" u2="ð" k="23" /> +<hkern u1="y" u2="}" k="55" /> +<hkern u1="y" u2="g" k="18" /> +<hkern u1="y" u2="]" k="119" /> +<hkern u1="y" u2="\" k="35" /> +<hkern u1="y" u2="X" k="78" /> +<hkern u1="y" u2="W" k="61" /> +<hkern u1="y" u2="V" k="59" /> +<hkern u1="y" u2="M" k="66" /> +<hkern u1="y" u2="J" k="88" /> +<hkern u1="y" u2="/" k="143" /> +<hkern u1="y" u2="*" k="-23" /> +<hkern u1="y" u2=")" k="49" /> +<hkern u1="y" u2="&" k="20" /> +<hkern u1="z" u2="™" k="25" /> +<hkern u1="z" u2="}" k="53" /> +<hkern u1="z" u2="v" k="10" /> +<hkern u1="z" u2="t" k="25" /> +<hkern u1="z" u2="]" k="119" /> +<hkern u1="z" u2="\" k="63" /> +<hkern u1="z" u2="X" k="14" /> +<hkern u1="z" u2="W" k="96" /> +<hkern u1="z" u2="V" k="96" /> +<hkern u1="z" u2="T" k="12" /> +<hkern u1="z" u2="M" k="20" /> +<hkern u1="z" u2="/" k="66" /> +<hkern u1="z" u2=")" k="47" /> +<hkern u1="{" u2="fl" k="37" /> +<hkern u1="{" u2="fi" k="37" /> +<hkern u1="{" u2="Ÿ" k="-76" /> +<hkern u1="{" u2="œ" k="76" /> +<hkern u1="{" u2="Œ" k="53" /> +<hkern u1="{" u2="þ" k="-80" /> +<hkern u1="{" u2="ü" k="55" /> +<hkern u1="{" u2="û" k="55" /> +<hkern u1="{" u2="ú" k="55" /> +<hkern u1="{" u2="ù" k="55" /> +<hkern u1="{" u2="ø" k="76" /> +<hkern u1="{" u2="ö" k="76" /> +<hkern u1="{" u2="õ" k="76" /> +<hkern u1="{" u2="ô" k="76" /> +<hkern u1="{" u2="ó" k="76" /> +<hkern u1="{" u2="ò" k="76" /> +<hkern u1="{" u2="ñ" k="53" /> +<hkern u1="{" u2="ð" k="20" /> +<hkern u1="{" u2="ï" k="-27" /> +<hkern u1="{" u2="î" k="25" /> +<hkern u1="{" u2="í" k="25" /> +<hkern u1="{" u2="ì" k="-43" /> +<hkern u1="{" u2="ë" k="76" /> +<hkern u1="{" u2="ê" k="76" /> +<hkern u1="{" u2="é" k="76" /> +<hkern u1="{" u2="è" k="76" /> +<hkern u1="{" u2="ç" k="76" /> +<hkern u1="{" u2="æ" k="59" /> +<hkern u1="{" u2="å" k="59" /> +<hkern u1="{" u2="ä" k="59" /> +<hkern u1="{" u2="ã" k="59" /> +<hkern u1="{" u2="â" k="59" /> +<hkern u1="{" u2="á" k="59" /> +<hkern u1="{" u2="à" k="59" /> +<hkern u1="{" u2="ß" k="37" /> +<hkern u1="{" u2="Ý" k="-76" /> +<hkern u1="{" u2="Ü" k="-31" /> +<hkern u1="{" u2="Û" k="-31" /> +<hkern u1="{" u2="Ú" k="-31" /> +<hkern u1="{" u2="Ù" k="-31" /> +<hkern u1="{" u2="Ø" k="53" /> +<hkern u1="{" u2="Ö" k="53" /> +<hkern u1="{" u2="Õ" k="53" /> +<hkern u1="{" u2="Ô" k="53" /> +<hkern u1="{" u2="Ó" k="53" /> +<hkern u1="{" u2="Ò" k="53" /> +<hkern u1="{" u2="Ç" k="53" /> +<hkern u1="{" u2="Æ" k="43" /> +<hkern u1="{" u2="Å" k="53" /> +<hkern u1="{" u2="Ä" k="53" /> +<hkern u1="{" u2="Ã" k="53" /> +<hkern u1="{" u2="Â" k="53" /> +<hkern u1="{" u2="Á" k="53" /> +<hkern u1="{" u2="À" k="53" /> +<hkern u1="{" u2="{" k="43" /> +<hkern u1="{" u2="z" k="53" /> +<hkern u1="{" u2="x" k="45" /> +<hkern u1="{" u2="w" k="57" /> +<hkern u1="{" u2="v" k="57" /> +<hkern u1="{" u2="u" k="55" /> +<hkern u1="{" u2="t" k="49" /> +<hkern u1="{" u2="s" k="57" /> +<hkern u1="{" u2="r" k="53" /> +<hkern u1="{" u2="q" k="70" /> +<hkern u1="{" u2="o" k="76" /> +<hkern u1="{" u2="n" k="53" /> +<hkern u1="{" u2="m" k="53" /> +<hkern u1="{" u2="l" k="-35" /> +<hkern u1="{" u2="k" k="-35" /> +<hkern u1="{" u2="j" k="-250" /> +<hkern u1="{" u2="i" k="25" /> +<hkern u1="{" u2="h" k="-35" /> +<hkern u1="{" u2="f" k="37" /> +<hkern u1="{" u2="e" k="76" /> +<hkern u1="{" u2="d" k="70" /> +<hkern u1="{" u2="c" k="76" /> +<hkern u1="{" u2="b" k="-80" /> +<hkern u1="{" u2="a" k="59" /> +<hkern u1="{" u2="Y" k="-76" /> +<hkern u1="{" u2="X" k="-55" /> +<hkern u1="{" u2="W" k="-55" /> +<hkern u1="{" u2="V" k="-68" /> +<hkern u1="{" u2="U" k="-31" /> +<hkern u1="{" u2="T" k="-41" /> +<hkern u1="{" u2="S" k="31" /> +<hkern u1="{" u2="Q" k="53" /> +<hkern u1="{" u2="O" k="53" /> +<hkern u1="{" u2="J" k="35" /> +<hkern u1="{" u2="G" k="53" /> +<hkern u1="{" u2="C" k="53" /> +<hkern u1="{" u2="A" k="53" /> +<hkern u1="{" u2="9" k="35" /> +<hkern u1="{" u2="8" k="43" /> +<hkern u1="{" u2="7" k="-39" /> +<hkern u1="{" u2="6" k="47" /> +<hkern u1="{" u2="4" k="59" /> +<hkern u1="{" u2="3" k="27" /> +<hkern u1="{" u2="1" k="37" /> +<hkern u1="{" u2="0" k="49" /> +<hkern u1="{" u2="(" k="43" /> +<hkern u1="|" u2="j" k="-135" /> +<hkern u1="}" u2="}" k="43" /> +<hkern u1="}" u2="]" k="49" /> +<hkern u1="}" u2=")" k="39" /> +<hkern u1="¡" u2="Ÿ" k="82" /> +<hkern u1="¡" u2="Ý" k="82" /> +<hkern u1="¡" u2="Ü" k="37" /> +<hkern u1="¡" u2="Û" k="37" /> +<hkern u1="¡" u2="Ú" k="37" /> +<hkern u1="¡" u2="Ù" k="37" /> +<hkern u1="¡" u2="j" k="-150" /> +<hkern u1="¡" u2="Y" k="82" /> +<hkern u1="¡" u2="W" k="78" /> +<hkern u1="¡" u2="V" k="82" /> +<hkern u1="¡" u2="U" k="37" /> +<hkern u1="«" u2="Æ" k="-31" /> +<hkern u1="«" u2="W" k="51" /> +<hkern u1="«" u2="V" k="51" /> +<hkern u1="­" u2="Æ" k="121" /> +<hkern u1="­" u2="x" k="25" /> +<hkern u1="­" u2="X" k="125" /> +<hkern u1="­" u2="W" k="94" /> +<hkern u1="­" u2="V" k="106" /> +<hkern u1="­" u2="T" k="129" /> +<hkern u1="­" u2="M" k="47" /> +<hkern u1="­" u2="J" k="119" /> +<hkern u1="­" u2="8" k="23" /> +<hkern u1="­" u2="7" k="121" /> +<hkern u1="­" u2="3" k="41" /> +<hkern u1="­" u2="2" k="59" /> +<hkern u1="­" u2="1" k="57" /> +<hkern u1="®" u2="Ÿ" k="45" /> +<hkern u1="®" u2="Þ" k="20" /> +<hkern u1="®" u2="Ý" k="45" /> +<hkern u1="®" u2="Ñ" k="20" /> +<hkern u1="®" u2="Ð" k="20" /> +<hkern u1="®" u2="Ï" k="20" /> +<hkern u1="®" u2="Î" k="20" /> +<hkern u1="®" u2="Í" k="20" /> +<hkern u1="®" u2="Ì" k="20" /> +<hkern u1="®" u2="Ë" k="20" /> +<hkern u1="®" u2="Ê" k="20" /> +<hkern u1="®" u2="É" k="20" /> +<hkern u1="®" u2="È" k="20" /> +<hkern u1="®" u2="Æ" k="43" /> +<hkern u1="®" u2="Å" k="41" /> +<hkern u1="®" u2="Ä" k="41" /> +<hkern u1="®" u2="Ã" k="41" /> +<hkern u1="®" u2="Â" k="41" /> +<hkern u1="®" u2="Á" k="41" /> +<hkern u1="®" u2="À" k="41" /> +<hkern u1="®" u2="Y" k="45" /> +<hkern u1="®" u2="X" k="20" /> +<hkern u1="®" u2="W" k="45" /> +<hkern u1="®" u2="V" k="47" /> +<hkern u1="®" u2="R" k="20" /> +<hkern u1="®" u2="P" k="20" /> +<hkern u1="®" u2="N" k="20" /> +<hkern u1="®" u2="M" k="20" /> +<hkern u1="®" u2="L" k="20" /> +<hkern u1="®" u2="K" k="20" /> +<hkern u1="®" u2="I" k="20" /> +<hkern u1="®" u2="H" k="20" /> +<hkern u1="®" u2="F" k="20" /> +<hkern u1="®" u2="E" k="20" /> +<hkern u1="®" u2="D" k="20" /> +<hkern u1="®" u2="B" k="20" /> +<hkern u1="®" u2="A" k="41" /> +<hkern u1="°" u2="7" k="-16" /> +<hkern u1="°" u2="4" k="59" /> +<hkern u1="°" u2="1" k="-33" /> +<hkern u1="·" u2="l" k="127" /> +<hkern u1="·" u2="L" k="47" /> +<hkern u1="·" u2="8" k="29" /> +<hkern u1="·" u2="7" k="119" /> +<hkern u1="·" u2="3" k="45" /> +<hkern u1="·" u2="2" k="55" /> +<hkern u1="·" u2="1" k="51" /> +<hkern u1="»" u2="Æ" k="59" /> +<hkern u1="»" u2="x" k="31" /> +<hkern u1="»" u2="X" k="76" /> +<hkern u1="»" u2="W" k="92" /> +<hkern u1="»" u2="V" k="106" /> +<hkern u1="»" u2="T" k="92" /> +<hkern u1="»" u2="M" k="33" /> +<hkern u1="»" u2="J" k="25" /> +<hkern u1="¿" u2="Ÿ" k="127" /> +<hkern u1="¿" u2="œ" k="43" /> +<hkern u1="¿" u2="Œ" k="51" /> +<hkern u1="¿" u2="ÿ" k="23" /> +<hkern u1="¿" u2="ý" k="23" /> +<hkern u1="¿" u2="ü" k="47" /> +<hkern u1="¿" u2="û" k="47" /> +<hkern u1="¿" u2="ú" k="47" /> +<hkern u1="¿" u2="ù" k="47" /> +<hkern u1="¿" u2="ø" k="43" /> +<hkern u1="¿" u2="ö" k="43" /> +<hkern u1="¿" u2="õ" k="43" /> +<hkern u1="¿" u2="ô" k="43" /> +<hkern u1="¿" u2="ó" k="43" /> +<hkern u1="¿" u2="ò" k="43" /> +<hkern u1="¿" u2="ð" k="43" /> +<hkern u1="¿" u2="ë" k="43" /> +<hkern u1="¿" u2="ê" k="43" /> +<hkern u1="¿" u2="é" k="43" /> +<hkern u1="¿" u2="è" k="43" /> +<hkern u1="¿" u2="ç" k="43" /> +<hkern u1="¿" u2="æ" k="20" /> +<hkern u1="¿" u2="å" k="20" /> +<hkern u1="¿" u2="ä" k="20" /> +<hkern u1="¿" u2="ã" k="20" /> +<hkern u1="¿" u2="â" k="20" /> +<hkern u1="¿" u2="á" k="20" /> +<hkern u1="¿" u2="à" k="20" /> +<hkern u1="¿" u2="Ý" k="127" /> +<hkern u1="¿" u2="Ü" k="82" /> +<hkern u1="¿" u2="Û" k="82" /> +<hkern u1="¿" u2="Ú" k="82" /> +<hkern u1="¿" u2="Ù" k="82" /> +<hkern u1="¿" u2="Ø" k="51" /> +<hkern u1="¿" u2="Ö" k="51" /> +<hkern u1="¿" u2="Õ" k="51" /> +<hkern u1="¿" u2="Ô" k="51" /> +<hkern u1="¿" u2="Ó" k="51" /> +<hkern u1="¿" u2="Ò" k="51" /> +<hkern u1="¿" u2="Ç" k="51" /> +<hkern u1="¿" u2="y" k="23" /> +<hkern u1="¿" u2="w" k="63" /> +<hkern u1="¿" u2="v" k="66" /> +<hkern u1="¿" u2="u" k="47" /> +<hkern u1="¿" u2="t" k="47" /> +<hkern u1="¿" u2="q" k="41" /> +<hkern u1="¿" u2="o" k="43" /> +<hkern u1="¿" u2="j" k="-106" /> +<hkern u1="¿" u2="e" k="43" /> +<hkern u1="¿" u2="d" k="41" /> +<hkern u1="¿" u2="c" k="43" /> +<hkern u1="¿" u2="a" k="20" /> +<hkern u1="¿" u2="Y" k="127" /> +<hkern u1="¿" u2="W" k="141" /> +<hkern u1="¿" u2="V" k="152" /> +<hkern u1="¿" u2="U" k="82" /> +<hkern u1="¿" u2="T" k="68" /> +<hkern u1="¿" u2="Q" k="51" /> +<hkern u1="¿" u2="O" k="51" /> +<hkern u1="¿" u2="G" k="51" /> +<hkern u1="¿" u2="C" k="51" /> +<hkern u1="À" u2="™" k="121" /> +<hkern u1="À" u2="ð" k="23" /> +<hkern u1="À" u2="Æ" k="-49" /> +<hkern u1="À" u2="®" k="33" /> +<hkern u1="À" u2="}" k="49" /> +<hkern u1="À" u2="x" k="8" /> +<hkern u1="À" u2="w" k="66" /> +<hkern u1="À" u2="v" k="100" /> +<hkern u1="À" u2="t" k="45" /> +<hkern u1="À" u2="p" k="31" /> +<hkern u1="À" u2="j" k="33" /> +<hkern u1="À" u2="g" k="12" /> +<hkern u1="À" u2="]" k="109" /> +<hkern u1="À" u2="\" k="145" /> +<hkern u1="À" u2="W" k="143" /> +<hkern u1="À" u2="V" k="160" /> +<hkern u1="À" u2="T" k="109" /> +<hkern u1="À" u2="J" k="-35" /> +<hkern u1="À" u2="?" k="61" /> +<hkern u1="À" u2="7" k="59" /> +<hkern u1="À" u2="6" k="23" /> +<hkern u1="À" u2="4" k="20" /> +<hkern u1="À" u2="2" k="-18" /> +<hkern u1="À" u2="0" k="31" /> +<hkern u1="À" u2="/" k="31" /> +<hkern u1="À" u2="*" k="104" /> +<hkern u1="À" u2=")" k="43" /> +<hkern u1="Á" u2="™" k="121" /> +<hkern u1="Á" u2="ð" k="23" /> +<hkern u1="Á" u2="Æ" k="-49" /> +<hkern u1="Á" u2="®" k="33" /> +<hkern u1="Á" u2="}" k="49" /> +<hkern u1="Á" u2="x" k="8" /> +<hkern u1="Á" u2="w" k="66" /> +<hkern u1="Á" u2="v" k="100" /> +<hkern u1="Á" u2="t" k="45" /> +<hkern u1="Á" u2="p" k="31" /> +<hkern u1="Á" u2="j" k="33" /> +<hkern u1="Á" u2="g" k="12" /> +<hkern u1="Á" u2="]" k="109" /> +<hkern u1="Á" u2="\" k="145" /> +<hkern u1="Á" u2="W" k="143" /> +<hkern u1="Á" u2="V" k="160" /> +<hkern u1="Á" u2="T" k="109" /> +<hkern u1="Á" u2="J" k="-35" /> +<hkern u1="Á" u2="?" k="61" /> +<hkern u1="Á" u2="7" k="59" /> +<hkern u1="Á" u2="6" k="23" /> +<hkern u1="Á" u2="4" k="20" /> +<hkern u1="Á" u2="2" k="-18" /> +<hkern u1="Á" u2="0" k="31" /> +<hkern u1="Á" u2="/" k="31" /> +<hkern u1="Á" u2="*" k="104" /> +<hkern u1="Á" u2=")" k="43" /> +<hkern u1="Â" u2="™" k="121" /> +<hkern u1="Â" u2="ð" k="23" /> +<hkern u1="Â" u2="Æ" k="-49" /> +<hkern u1="Â" u2="®" k="33" /> +<hkern u1="Â" u2="}" k="49" /> +<hkern u1="Â" u2="x" k="8" /> +<hkern u1="Â" u2="w" k="66" /> +<hkern u1="Â" u2="v" k="100" /> +<hkern u1="Â" u2="t" k="45" /> +<hkern u1="Â" u2="p" k="31" /> +<hkern u1="Â" u2="j" k="33" /> +<hkern u1="Â" u2="g" k="12" /> +<hkern u1="Â" u2="]" k="109" /> +<hkern u1="Â" u2="\" k="145" /> +<hkern u1="Â" u2="W" k="143" /> +<hkern u1="Â" u2="V" k="160" /> +<hkern u1="Â" u2="T" k="109" /> +<hkern u1="Â" u2="J" k="-35" /> +<hkern u1="Â" u2="?" k="61" /> +<hkern u1="Â" u2="7" k="59" /> +<hkern u1="Â" u2="6" k="23" /> +<hkern u1="Â" u2="4" k="20" /> +<hkern u1="Â" u2="2" k="-18" /> +<hkern u1="Â" u2="0" k="31" /> +<hkern u1="Â" u2="/" k="31" /> +<hkern u1="Â" u2="*" k="104" /> +<hkern u1="Â" u2=")" k="43" /> +<hkern u1="Ã" u2="™" k="121" /> +<hkern u1="Ã" u2="ð" k="23" /> +<hkern u1="Ã" u2="Æ" k="-49" /> +<hkern u1="Ã" u2="®" k="33" /> +<hkern u1="Ã" u2="}" k="49" /> +<hkern u1="Ã" u2="x" k="8" /> +<hkern u1="Ã" u2="w" k="66" /> +<hkern u1="Ã" u2="v" k="100" /> +<hkern u1="Ã" u2="t" k="45" /> +<hkern u1="Ã" u2="p" k="31" /> +<hkern u1="Ã" u2="j" k="33" /> +<hkern u1="Ã" u2="g" k="12" /> +<hkern u1="Ã" u2="]" k="109" /> +<hkern u1="Ã" u2="\" k="145" /> +<hkern u1="Ã" u2="W" k="143" /> +<hkern u1="Ã" u2="V" k="160" /> +<hkern u1="Ã" u2="T" k="109" /> +<hkern u1="Ã" u2="J" k="-35" /> +<hkern u1="Ã" u2="?" k="61" /> +<hkern u1="Ã" u2="7" k="59" /> +<hkern u1="Ã" u2="6" k="23" /> +<hkern u1="Ã" u2="4" k="20" /> +<hkern u1="Ã" u2="2" k="-18" /> +<hkern u1="Ã" u2="0" k="31" /> +<hkern u1="Ã" u2="/" k="31" /> +<hkern u1="Ã" u2="*" k="104" /> +<hkern u1="Ã" u2=")" k="43" /> +<hkern u1="Ä" u2="™" k="121" /> +<hkern u1="Ä" u2="ð" k="23" /> +<hkern u1="Ä" u2="Æ" k="-49" /> +<hkern u1="Ä" u2="®" k="33" /> +<hkern u1="Ä" u2="}" k="49" /> +<hkern u1="Ä" u2="x" k="8" /> +<hkern u1="Ä" u2="w" k="66" /> +<hkern u1="Ä" u2="v" k="100" /> +<hkern u1="Ä" u2="t" k="45" /> +<hkern u1="Ä" u2="p" k="31" /> +<hkern u1="Ä" u2="j" k="33" /> +<hkern u1="Ä" u2="g" k="12" /> +<hkern u1="Ä" u2="]" k="109" /> +<hkern u1="Ä" u2="\" k="145" /> +<hkern u1="Ä" u2="W" k="143" /> +<hkern u1="Ä" u2="V" k="160" /> +<hkern u1="Ä" u2="T" k="109" /> +<hkern u1="Ä" u2="J" k="-35" /> +<hkern u1="Ä" u2="?" k="61" /> +<hkern u1="Ä" u2="7" k="59" /> +<hkern u1="Ä" u2="6" k="23" /> +<hkern u1="Ä" u2="4" k="20" /> +<hkern u1="Ä" u2="2" k="-18" /> +<hkern u1="Ä" u2="0" k="31" /> +<hkern u1="Ä" u2="/" k="31" /> +<hkern u1="Ä" u2="*" k="104" /> +<hkern u1="Ä" u2=")" k="43" /> +<hkern u1="Å" u2="™" k="121" /> +<hkern u1="Å" u2="ð" k="23" /> +<hkern u1="Å" u2="Æ" k="-49" /> +<hkern u1="Å" u2="®" k="33" /> +<hkern u1="Å" u2="}" k="49" /> +<hkern u1="Å" u2="x" k="8" /> +<hkern u1="Å" u2="w" k="66" /> +<hkern u1="Å" u2="v" k="100" /> +<hkern u1="Å" u2="t" k="45" /> +<hkern u1="Å" u2="p" k="31" /> +<hkern u1="Å" u2="j" k="33" /> +<hkern u1="Å" u2="g" k="12" /> +<hkern u1="Å" u2="]" k="109" /> +<hkern u1="Å" u2="\" k="145" /> +<hkern u1="Å" u2="W" k="143" /> +<hkern u1="Å" u2="V" k="160" /> +<hkern u1="Å" u2="T" k="109" /> +<hkern u1="Å" u2="J" k="-35" /> +<hkern u1="Å" u2="?" k="61" /> +<hkern u1="Å" u2="7" k="59" /> +<hkern u1="Å" u2="6" k="23" /> +<hkern u1="Å" u2="4" k="20" /> +<hkern u1="Å" u2="2" k="-18" /> +<hkern u1="Å" u2="0" k="31" /> +<hkern u1="Å" u2="/" k="31" /> +<hkern u1="Å" u2="*" k="104" /> +<hkern u1="Å" u2=")" k="43" /> +<hkern u1="Æ" u2="ð" k="8" /> +<hkern u1="Æ" u2="w" k="25" /> +<hkern u1="Æ" u2="v" k="31" /> +<hkern u1="Æ" u2="t" k="14" /> +<hkern u1="Æ" u2="p" k="23" /> +<hkern u1="Æ" u2="j" k="23" /> +<hkern u1="Æ" u2="g" k="16" /> +<hkern u1="Æ" u2="W" k="14" /> +<hkern u1="Æ" u2="V" k="14" /> +<hkern u1="Æ" u2="/" k="57" /> +<hkern u1="Ç" u2="Æ" k="25" /> +<hkern u1="Ç" u2="g" k="16" /> +<hkern u1="Ç" u2="3" k="-16" /> +<hkern u1="Ç" u2="/" k="78" /> +<hkern u1="Ç" u2="&" k="-25" /> +<hkern u1="È" u2="ð" k="8" /> +<hkern u1="È" u2="w" k="25" /> +<hkern u1="È" u2="v" k="31" /> +<hkern u1="È" u2="t" k="14" /> +<hkern u1="È" u2="p" k="23" /> +<hkern u1="È" u2="j" k="23" /> +<hkern u1="È" u2="g" k="16" /> +<hkern u1="È" u2="W" k="14" /> +<hkern u1="È" u2="V" k="14" /> +<hkern u1="È" u2="/" k="57" /> +<hkern u1="É" u2="ð" k="8" /> +<hkern u1="É" u2="w" k="25" /> +<hkern u1="É" u2="v" k="31" /> +<hkern u1="É" u2="t" k="14" /> +<hkern u1="É" u2="p" k="23" /> +<hkern u1="É" u2="j" k="23" /> +<hkern u1="É" u2="g" k="16" /> +<hkern u1="É" u2="W" k="14" /> +<hkern u1="É" u2="V" k="14" /> +<hkern u1="É" u2="/" k="57" /> +<hkern u1="Ê" u2="ð" k="8" /> +<hkern u1="Ê" u2="w" k="25" /> +<hkern u1="Ê" u2="v" k="31" /> +<hkern u1="Ê" u2="t" k="14" /> +<hkern u1="Ê" u2="p" k="23" /> +<hkern u1="Ê" u2="j" k="23" /> +<hkern u1="Ê" u2="g" k="16" /> +<hkern u1="Ê" u2="W" k="14" /> +<hkern u1="Ê" u2="V" k="14" /> +<hkern u1="Ê" u2="/" k="57" /> +<hkern u1="Ë" u2="ð" k="8" /> +<hkern u1="Ë" u2="w" k="25" /> +<hkern u1="Ë" u2="v" k="31" /> +<hkern u1="Ë" u2="t" k="14" /> +<hkern u1="Ë" u2="p" k="23" /> +<hkern u1="Ë" u2="j" k="23" /> +<hkern u1="Ë" u2="g" k="16" /> +<hkern u1="Ë" u2="W" k="14" /> +<hkern u1="Ë" u2="V" k="14" /> +<hkern u1="Ë" u2="/" k="57" /> +<hkern u1="Ì" u2="ð" k="43" /> +<hkern u1="Ì" u2="x" k="20" /> +<hkern u1="Ì" u2="w" k="63" /> +<hkern u1="Ì" u2="v" k="66" /> +<hkern u1="Ì" u2="t" k="51" /> +<hkern u1="Ì" u2="p" k="49" /> +<hkern u1="Ì" u2="j" k="43" /> +<hkern u1="Ì" u2="g" k="35" /> +<hkern u1="Ì" u2="/" k="61" /> +<hkern u1="Ì" u2="*" k="18" /> +<hkern u1="Í" u2="ð" k="43" /> +<hkern u1="Í" u2="x" k="20" /> +<hkern u1="Í" u2="w" k="63" /> +<hkern u1="Í" u2="v" k="66" /> +<hkern u1="Í" u2="t" k="51" /> +<hkern u1="Í" u2="p" k="49" /> +<hkern u1="Í" u2="j" k="43" /> +<hkern u1="Í" u2="g" k="35" /> +<hkern u1="Í" u2="/" k="61" /> +<hkern u1="Í" u2="*" k="18" /> +<hkern u1="Î" u2="ð" k="43" /> +<hkern u1="Î" u2="x" k="20" /> +<hkern u1="Î" u2="w" k="63" /> +<hkern u1="Î" u2="v" k="66" /> +<hkern u1="Î" u2="t" k="51" /> +<hkern u1="Î" u2="p" k="49" /> +<hkern u1="Î" u2="j" k="43" /> +<hkern u1="Î" u2="g" k="35" /> +<hkern u1="Î" u2="/" k="61" /> +<hkern u1="Î" u2="*" k="18" /> +<hkern u1="Ï" u2="ð" k="43" /> +<hkern u1="Ï" u2="x" k="20" /> +<hkern u1="Ï" u2="w" k="63" /> +<hkern u1="Ï" u2="v" k="66" /> +<hkern u1="Ï" u2="t" k="51" /> +<hkern u1="Ï" u2="p" k="49" /> +<hkern u1="Ï" u2="j" k="43" /> +<hkern u1="Ï" u2="g" k="35" /> +<hkern u1="Ï" u2="/" k="61" /> +<hkern u1="Ï" u2="*" k="18" /> +<hkern u1="Ð" u2="Æ" k="82" /> +<hkern u1="Ð" u2="}" k="57" /> +<hkern u1="Ð" u2="x" k="12" /> +<hkern u1="Ð" u2="g" k="12" /> +<hkern u1="Ð" u2="]" k="102" /> +<hkern u1="Ð" u2="\" k="41" /> +<hkern u1="Ð" u2="X" k="74" /> +<hkern u1="Ð" u2="W" k="51" /> +<hkern u1="Ð" u2="V" k="53" /> +<hkern u1="Ð" u2="M" k="31" /> +<hkern u1="Ð" u2="J" k="23" /> +<hkern u1="Ð" u2="/" k="147" /> +<hkern u1="Ð" u2=")" k="51" /> +<hkern u1="Ñ" u2="ð" k="45" /> +<hkern u1="Ñ" u2="ï" k="29" /> +<hkern u1="Ñ" u2="ì" k="29" /> +<hkern u1="Ñ" u2="Æ" k="29" /> +<hkern u1="Ñ" u2="}" k="-10" /> +<hkern u1="Ñ" u2="x" k="43" /> +<hkern u1="Ñ" u2="w" k="47" /> +<hkern u1="Ñ" u2="v" k="47" /> +<hkern u1="Ñ" u2="t" k="49" /> +<hkern u1="Ñ" u2="p" k="47" /> +<hkern u1="Ñ" u2="j" k="39" /> +<hkern u1="Ñ" u2="g" k="53" /> +<hkern u1="Ñ" u2="]" k="-23" /> +<hkern u1="Ñ" u2="J" k="12" /> +<hkern u1="Ñ" u2="@" k="20" /> +<hkern u1="Ñ" u2=";" k="27" /> +<hkern u1="Ñ" u2=":" k="18" /> +<hkern u1="Ñ" u2="/" k="102" /> +<hkern u1="Ò" u2="Æ" k="63" /> +<hkern u1="Ò" u2="}" k="53" /> +<hkern u1="Ò" u2="x" k="12" /> +<hkern u1="Ò" u2="g" k="12" /> +<hkern u1="Ò" u2="]" k="94" /> +<hkern u1="Ò" u2="\" k="33" /> +<hkern u1="Ò" u2="X" k="66" /> +<hkern u1="Ò" u2="W" k="45" /> +<hkern u1="Ò" u2="V" k="45" /> +<hkern u1="Ò" u2="M" k="25" /> +<hkern u1="Ò" u2="J" k="18" /> +<hkern u1="Ò" u2="/" k="141" /> +<hkern u1="Ò" u2=")" k="47" /> +<hkern u1="Ó" u2="Æ" k="63" /> +<hkern u1="Ó" u2="}" k="53" /> +<hkern u1="Ó" u2="x" k="12" /> +<hkern u1="Ó" u2="g" k="12" /> +<hkern u1="Ó" u2="]" k="94" /> +<hkern u1="Ó" u2="\" k="33" /> +<hkern u1="Ó" u2="X" k="66" /> +<hkern u1="Ó" u2="W" k="45" /> +<hkern u1="Ó" u2="V" k="45" /> +<hkern u1="Ó" u2="M" k="25" /> +<hkern u1="Ó" u2="J" k="18" /> +<hkern u1="Ó" u2="/" k="141" /> +<hkern u1="Ó" u2=")" k="47" /> +<hkern u1="Ô" u2="Æ" k="63" /> +<hkern u1="Ô" u2="}" k="53" /> +<hkern u1="Ô" u2="x" k="12" /> +<hkern u1="Ô" u2="g" k="12" /> +<hkern u1="Ô" u2="]" k="94" /> +<hkern u1="Ô" u2="\" k="33" /> +<hkern u1="Ô" u2="X" k="66" /> +<hkern u1="Ô" u2="W" k="45" /> +<hkern u1="Ô" u2="V" k="45" /> +<hkern u1="Ô" u2="M" k="25" /> +<hkern u1="Ô" u2="J" k="18" /> +<hkern u1="Ô" u2="/" k="141" /> +<hkern u1="Ô" u2=")" k="47" /> +<hkern u1="Õ" u2="Æ" k="63" /> +<hkern u1="Õ" u2="}" k="53" /> +<hkern u1="Õ" u2="x" k="12" /> +<hkern u1="Õ" u2="g" k="12" /> +<hkern u1="Õ" u2="]" k="94" /> +<hkern u1="Õ" u2="\" k="33" /> +<hkern u1="Õ" u2="X" k="66" /> +<hkern u1="Õ" u2="W" k="45" /> +<hkern u1="Õ" u2="V" k="45" /> +<hkern u1="Õ" u2="M" k="25" /> +<hkern u1="Õ" u2="J" k="18" /> +<hkern u1="Õ" u2="/" k="141" /> +<hkern u1="Õ" u2=")" k="47" /> +<hkern u1="Ö" u2="Æ" k="63" /> +<hkern u1="Ö" u2="}" k="53" /> +<hkern u1="Ö" u2="x" k="12" /> +<hkern u1="Ö" u2="g" k="12" /> +<hkern u1="Ö" u2="]" k="94" /> +<hkern u1="Ö" u2="\" k="33" /> +<hkern u1="Ö" u2="X" k="66" /> +<hkern u1="Ö" u2="W" k="45" /> +<hkern u1="Ö" u2="V" k="45" /> +<hkern u1="Ö" u2="M" k="25" /> +<hkern u1="Ö" u2="J" k="18" /> +<hkern u1="Ö" u2="/" k="141" /> +<hkern u1="Ö" u2=")" k="47" /> +<hkern u1="Ø" u2="Æ" k="63" /> +<hkern u1="Ø" u2="}" k="53" /> +<hkern u1="Ø" u2="x" k="12" /> +<hkern u1="Ø" u2="g" k="12" /> +<hkern u1="Ø" u2="]" k="94" /> +<hkern u1="Ø" u2="\" k="33" /> +<hkern u1="Ø" u2="X" k="66" /> +<hkern u1="Ø" u2="W" k="45" /> +<hkern u1="Ø" u2="V" k="45" /> +<hkern u1="Ø" u2="M" k="25" /> +<hkern u1="Ø" u2="J" k="18" /> +<hkern u1="Ø" u2="/" k="141" /> +<hkern u1="Ø" u2=")" k="47" /> +<hkern u1="Ù" u2="ð" k="39" /> +<hkern u1="Ù" u2="ï" k="6" /> +<hkern u1="Ù" u2="î" k="18" /> +<hkern u1="Ù" u2="ì" k="4" /> +<hkern u1="Ù" u2="Æ" k="88" /> +<hkern u1="Ù" u2="}" k="-35" /> +<hkern u1="Ù" u2="x" k="43" /> +<hkern u1="Ù" u2="w" k="37" /> +<hkern u1="Ù" u2="v" k="35" /> +<hkern u1="Ù" u2="t" k="39" /> +<hkern u1="Ù" u2="p" k="49" /> +<hkern u1="Ù" u2="j" k="31" /> +<hkern u1="Ù" u2="g" k="63" /> +<hkern u1="Ù" u2="]" k="-45" /> +<hkern u1="Ù" u2="J" k="29" /> +<hkern u1="Ù" u2=";" k="33" /> +<hkern u1="Ù" u2=":" k="25" /> +<hkern u1="Ù" u2="7" k="-18" /> +<hkern u1="Ù" u2="/" k="156" /> +<hkern u1="Ú" u2="ð" k="39" /> +<hkern u1="Ú" u2="ï" k="6" /> +<hkern u1="Ú" u2="î" k="18" /> +<hkern u1="Ú" u2="ì" k="4" /> +<hkern u1="Ú" u2="Æ" k="88" /> +<hkern u1="Ú" u2="}" k="-35" /> +<hkern u1="Ú" u2="x" k="43" /> +<hkern u1="Ú" u2="w" k="37" /> +<hkern u1="Ú" u2="v" k="35" /> +<hkern u1="Ú" u2="t" k="39" /> +<hkern u1="Ú" u2="p" k="49" /> +<hkern u1="Ú" u2="j" k="31" /> +<hkern u1="Ú" u2="g" k="63" /> +<hkern u1="Ú" u2="]" k="-45" /> +<hkern u1="Ú" u2="J" k="29" /> +<hkern u1="Ú" u2=";" k="33" /> +<hkern u1="Ú" u2=":" k="25" /> +<hkern u1="Ú" u2="7" k="-18" /> +<hkern u1="Ú" u2="/" k="156" /> +<hkern u1="Û" u2="ð" k="39" /> +<hkern u1="Û" u2="ï" k="6" /> +<hkern u1="Û" u2="î" k="18" /> +<hkern u1="Û" u2="ì" k="4" /> +<hkern u1="Û" u2="Æ" k="88" /> +<hkern u1="Û" u2="}" k="-35" /> +<hkern u1="Û" u2="x" k="43" /> +<hkern u1="Û" u2="w" k="37" /> +<hkern u1="Û" u2="v" k="35" /> +<hkern u1="Û" u2="t" k="39" /> +<hkern u1="Û" u2="p" k="49" /> +<hkern u1="Û" u2="j" k="31" /> +<hkern u1="Û" u2="g" k="63" /> +<hkern u1="Û" u2="]" k="-45" /> +<hkern u1="Û" u2="J" k="29" /> +<hkern u1="Û" u2=";" k="33" /> +<hkern u1="Û" u2=":" k="25" /> +<hkern u1="Û" u2="7" k="-18" /> +<hkern u1="Û" u2="/" k="156" /> +<hkern u1="Ü" u2="ð" k="39" /> +<hkern u1="Ü" u2="ï" k="6" /> +<hkern u1="Ü" u2="î" k="18" /> +<hkern u1="Ü" u2="ì" k="4" /> +<hkern u1="Ü" u2="Æ" k="88" /> +<hkern u1="Ü" u2="}" k="-35" /> +<hkern u1="Ü" u2="x" k="43" /> +<hkern u1="Ü" u2="w" k="37" /> +<hkern u1="Ü" u2="v" k="35" /> +<hkern u1="Ü" u2="t" k="39" /> +<hkern u1="Ü" u2="p" k="49" /> +<hkern u1="Ü" u2="j" k="31" /> +<hkern u1="Ü" u2="g" k="63" /> +<hkern u1="Ü" u2="]" k="-45" /> +<hkern u1="Ü" u2="J" k="29" /> +<hkern u1="Ü" u2=";" k="33" /> +<hkern u1="Ü" u2=":" k="25" /> +<hkern u1="Ü" u2="7" k="-18" /> +<hkern u1="Ü" u2="/" k="156" /> +<hkern u1="Ý" u2="™" k="-33" /> +<hkern u1="Ý" u2="õ" k="129" /> +<hkern u1="Ý" u2="ð" k="43" /> +<hkern u1="Ý" u2="ï" k="-35" /> +<hkern u1="Ý" u2="î" k="-23" /> +<hkern u1="Ý" u2="ì" k="-35" /> +<hkern u1="Ý" u2="ä" k="117" /> +<hkern u1="Ý" u2="ã" k="68" /> +<hkern u1="Ý" u2="â" k="127" /> +<hkern u1="Ý" u2="Æ" k="137" /> +<hkern u1="Ý" u2="®" k="53" /> +<hkern u1="Ý" u2="}" k="-76" /> +<hkern u1="Ý" u2="x" k="119" /> +<hkern u1="Ý" u2="w" k="109" /> +<hkern u1="Ý" u2="v" k="106" /> +<hkern u1="Ý" u2="t" k="92" /> +<hkern u1="Ý" u2="p" k="125" /> +<hkern u1="Ý" u2="j" k="43" /> +<hkern u1="Ý" u2="g" k="162" /> +<hkern u1="Ý" u2="]" k="-86" /> +<hkern u1="Ý" u2="\" k="-57" /> +<hkern u1="Ý" u2="W" k="-25" /> +<hkern u1="Ý" u2="V" k="-25" /> +<hkern u1="Ý" u2="J" k="57" /> +<hkern u1="Ý" u2="@" k="90" /> +<hkern u1="Ý" u2=";" k="76" /> +<hkern u1="Ý" u2=":" k="68" /> +<hkern u1="Ý" u2="8" k="27" /> +<hkern u1="Ý" u2="7" k="-59" /> +<hkern u1="Ý" u2="6" k="45" /> +<hkern u1="Ý" u2="4" k="104" /> +<hkern u1="Ý" u2="0" k="45" /> +<hkern u1="Ý" u2="/" k="176" /> +<hkern u1="Ý" u2="*" k="16" /> +<hkern u1="Ý" u2=")" k="-33" /> +<hkern u1="Ý" u2="&" k="47" /> +<hkern u1="Þ" u2="…" k="123" /> +<hkern u1="Þ" u2="„" k="123" /> +<hkern u1="Þ" u2="‚" k="123" /> +<hkern u1="Þ" u2="Ÿ" k="61" /> +<hkern u1="Þ" u2="Þ" k="29" /> +<hkern u1="Þ" u2="Ý" k="61" /> +<hkern u1="Þ" u2="Ü" k="10" /> +<hkern u1="Þ" u2="Û" k="10" /> +<hkern u1="Þ" u2="Ú" k="10" /> +<hkern u1="Þ" u2="Ù" k="10" /> +<hkern u1="Þ" u2="Ñ" k="29" /> +<hkern u1="Þ" u2="Ð" k="29" /> +<hkern u1="Þ" u2="Ï" k="29" /> +<hkern u1="Þ" u2="Î" k="29" /> +<hkern u1="Þ" u2="Í" k="29" /> +<hkern u1="Þ" u2="Ì" k="29" /> +<hkern u1="Þ" u2="Ë" k="29" /> +<hkern u1="Þ" u2="Ê" k="29" /> +<hkern u1="Þ" u2="É" k="29" /> +<hkern u1="Þ" u2="È" k="29" /> +<hkern u1="Þ" u2="Æ" k="102" /> +<hkern u1="Þ" u2="Å" k="76" /> +<hkern u1="Þ" u2="Ä" k="76" /> +<hkern u1="Þ" u2="Ã" k="76" /> +<hkern u1="Þ" u2="Â" k="76" /> +<hkern u1="Þ" u2="Á" k="76" /> +<hkern u1="Þ" u2="À" k="76" /> +<hkern u1="Þ" u2="}" k="49" /> +<hkern u1="Þ" u2="l" k="20" /> +<hkern u1="Þ" u2="k" k="20" /> +<hkern u1="Þ" u2="h" k="20" /> +<hkern u1="Þ" u2="]" k="98" /> +<hkern u1="Þ" u2="\" k="35" /> +<hkern u1="Þ" u2="Y" k="61" /> +<hkern u1="Þ" u2="X" k="125" /> +<hkern u1="Þ" u2="W" k="49" /> +<hkern u1="Þ" u2="V" k="51" /> +<hkern u1="Þ" u2="U" k="10" /> +<hkern u1="Þ" u2="R" k="29" /> +<hkern u1="Þ" u2="P" k="29" /> +<hkern u1="Þ" u2="N" k="29" /> +<hkern u1="Þ" u2="M" k="29" /> +<hkern u1="Þ" u2="L" k="29" /> +<hkern u1="Þ" u2="K" k="29" /> +<hkern u1="Þ" u2="J" k="61" /> +<hkern u1="Þ" u2="I" k="29" /> +<hkern u1="Þ" u2="H" k="29" /> +<hkern u1="Þ" u2="F" k="29" /> +<hkern u1="Þ" u2="E" k="29" /> +<hkern u1="Þ" u2="D" k="29" /> +<hkern u1="Þ" u2="B" k="29" /> +<hkern u1="Þ" u2="A" k="76" /> +<hkern u1="Þ" u2="/" k="158" /> +<hkern u1="Þ" u2="." k="123" /> +<hkern u1="Þ" u2="," k="123" /> +<hkern u1="Þ" u2=")" k="45" /> +<hkern u1="ß" u2="™" k="49" /> +<hkern u1="ß" u2="”" k="68" /> +<hkern u1="ß" u2="“" k="59" /> +<hkern u1="ß" u2="’" k="68" /> +<hkern u1="ß" u2="‘" k="59" /> +<hkern u1="ß" u2="—" k="16" /> +<hkern u1="ß" u2="–" k="16" /> +<hkern u1="ß" u2="ÿ" k="70" /> +<hkern u1="ß" u2="ý" k="70" /> +<hkern u1="ß" u2="ü" k="10" /> +<hkern u1="ß" u2="û" k="10" /> +<hkern u1="ß" u2="ú" k="10" /> +<hkern u1="ß" u2="ù" k="10" /> +<hkern u1="ß" u2="­" k="16" /> +<hkern u1="ß" u2="}" k="49" /> +<hkern u1="ß" u2="y" k="70" /> +<hkern u1="ß" u2="x" k="8" /> +<hkern u1="ß" u2="w" k="47" /> +<hkern u1="ß" u2="v" k="59" /> +<hkern u1="ß" u2="u" k="10" /> +<hkern u1="ß" u2="t" k="10" /> +<hkern u1="ß" u2="p" k="12" /> +<hkern u1="ß" u2="j" k="12" /> +<hkern u1="ß" u2="]" k="96" /> +<hkern u1="ß" u2="\" k="76" /> +<hkern u1="ß" u2="?" k="37" /> +<hkern u1="ß" u2="/" k="70" /> +<hkern u1="ß" u2="-" k="16" /> +<hkern u1="ß" u2="*" k="43" /> +<hkern u1="ß" u2=")" k="49" /> +<hkern u1="ß" u2="'" k="63" /> +<hkern u1="ß" u2=""" k="63" /> +<hkern u1="à" u2="™" k="55" /> +<hkern u1="à" u2="}" k="51" /> +<hkern u1="à" u2="w" k="25" /> +<hkern u1="à" u2="v" k="25" /> +<hkern u1="à" u2="t" k="8" /> +<hkern u1="à" u2="]" k="117" /> +<hkern u1="à" u2="\" k="119" /> +<hkern u1="à" u2="W" k="123" /> +<hkern u1="à" u2="V" k="137" /> +<hkern u1="à" u2="T" k="86" /> +<hkern u1="à" u2="?" k="41" /> +<hkern u1="à" u2="/" k="43" /> +<hkern u1="à" u2="*" k="33" /> +<hkern u1="à" u2=")" k="45" /> +<hkern u1="á" u2="™" k="55" /> +<hkern u1="á" u2="}" k="51" /> +<hkern u1="á" u2="w" k="25" /> +<hkern u1="á" u2="v" k="25" /> +<hkern u1="á" u2="t" k="8" /> +<hkern u1="á" u2="]" k="117" /> +<hkern u1="á" u2="\" k="119" /> +<hkern u1="á" u2="W" k="123" /> +<hkern u1="á" u2="V" k="137" /> +<hkern u1="á" u2="T" k="86" /> +<hkern u1="á" u2="?" k="41" /> +<hkern u1="á" u2="/" k="43" /> +<hkern u1="á" u2="*" k="33" /> +<hkern u1="á" u2=")" k="45" /> +<hkern u1="â" u2="™" k="55" /> +<hkern u1="â" u2="}" k="51" /> +<hkern u1="â" u2="w" k="25" /> +<hkern u1="â" u2="v" k="25" /> +<hkern u1="â" u2="t" k="8" /> +<hkern u1="â" u2="]" k="117" /> +<hkern u1="â" u2="\" k="119" /> +<hkern u1="â" u2="W" k="123" /> +<hkern u1="â" u2="V" k="137" /> +<hkern u1="â" u2="T" k="86" /> +<hkern u1="â" u2="?" k="41" /> +<hkern u1="â" u2="/" k="43" /> +<hkern u1="â" u2="*" k="33" /> +<hkern u1="â" u2=")" k="45" /> +<hkern u1="ã" u2="™" k="55" /> +<hkern u1="ã" u2="}" k="51" /> +<hkern u1="ã" u2="w" k="25" /> +<hkern u1="ã" u2="v" k="25" /> +<hkern u1="ã" u2="t" k="8" /> +<hkern u1="ã" u2="]" k="117" /> +<hkern u1="ã" u2="\" k="119" /> +<hkern u1="ã" u2="W" k="123" /> +<hkern u1="ã" u2="V" k="137" /> +<hkern u1="ã" u2="T" k="86" /> +<hkern u1="ã" u2="?" k="41" /> +<hkern u1="ã" u2="/" k="43" /> +<hkern u1="ã" u2="*" k="33" /> +<hkern u1="ã" u2=")" k="45" /> +<hkern u1="ä" u2="™" k="55" /> +<hkern u1="ä" u2="}" k="51" /> +<hkern u1="ä" u2="w" k="25" /> +<hkern u1="ä" u2="v" k="25" /> +<hkern u1="ä" u2="t" k="8" /> +<hkern u1="ä" u2="]" k="117" /> +<hkern u1="ä" u2="\" k="119" /> +<hkern u1="ä" u2="W" k="123" /> +<hkern u1="ä" u2="V" k="137" /> +<hkern u1="ä" u2="T" k="86" /> +<hkern u1="ä" u2="?" k="41" /> +<hkern u1="ä" u2="/" k="43" /> +<hkern u1="ä" u2="*" k="33" /> +<hkern u1="ä" u2=")" k="45" /> +<hkern u1="å" u2="™" k="55" /> +<hkern u1="å" u2="}" k="51" /> +<hkern u1="å" u2="w" k="25" /> +<hkern u1="å" u2="v" k="25" /> +<hkern u1="å" u2="t" k="8" /> +<hkern u1="å" u2="]" k="117" /> +<hkern u1="å" u2="\" k="119" /> +<hkern u1="å" u2="W" k="123" /> +<hkern u1="å" u2="V" k="137" /> +<hkern u1="å" u2="T" k="86" /> +<hkern u1="å" u2="?" k="41" /> +<hkern u1="å" u2="/" k="43" /> +<hkern u1="å" u2="*" k="33" /> +<hkern u1="å" u2=")" k="45" /> +<hkern u1="æ" u2="™" k="41" /> +<hkern u1="æ" u2="}" k="63" /> +<hkern u1="æ" u2="]" k="125" /> +<hkern u1="æ" u2="\" k="94" /> +<hkern u1="æ" u2="X" k="49" /> +<hkern u1="æ" u2="W" k="145" /> +<hkern u1="æ" u2="V" k="168" /> +<hkern u1="æ" u2="T" k="82" /> +<hkern u1="æ" u2="M" k="31" /> +<hkern u1="æ" u2="?" k="33" /> +<hkern u1="æ" u2="/" k="94" /> +<hkern u1="æ" u2="*" k="16" /> +<hkern u1="æ" u2=")" k="59" /> +<hkern u1="ç" u2="™" k="33" /> +<hkern u1="ç" u2="}" k="47" /> +<hkern u1="ç" u2="]" k="113" /> +<hkern u1="ç" u2="\" k="74" /> +<hkern u1="ç" u2="X" k="51" /> +<hkern u1="ç" u2="W" k="119" /> +<hkern u1="ç" u2="V" k="135" /> +<hkern u1="ç" u2="T" k="35" /> +<hkern u1="ç" u2="M" k="37" /> +<hkern u1="ç" u2="J" k="-14" /> +<hkern u1="ç" u2="/" k="76" /> +<hkern u1="ç" u2=")" k="45" /> +<hkern u1="è" u2="™" k="41" /> +<hkern u1="è" u2="}" k="63" /> +<hkern u1="è" u2="]" k="125" /> +<hkern u1="è" u2="\" k="94" /> +<hkern u1="è" u2="X" k="49" /> +<hkern u1="è" u2="W" k="145" /> +<hkern u1="è" u2="V" k="168" /> +<hkern u1="è" u2="T" k="82" /> +<hkern u1="è" u2="M" k="31" /> +<hkern u1="è" u2="?" k="33" /> +<hkern u1="è" u2="/" k="94" /> +<hkern u1="è" u2="*" k="16" /> +<hkern u1="è" u2=")" k="59" /> +<hkern u1="é" u2="™" k="41" /> +<hkern u1="é" u2="}" k="63" /> +<hkern u1="é" u2="]" k="125" /> +<hkern u1="é" u2="\" k="94" /> +<hkern u1="é" u2="X" k="49" /> +<hkern u1="é" u2="W" k="145" /> +<hkern u1="é" u2="V" k="168" /> +<hkern u1="é" u2="T" k="82" /> +<hkern u1="é" u2="M" k="31" /> +<hkern u1="é" u2="?" k="33" /> +<hkern u1="é" u2="/" k="94" /> +<hkern u1="é" u2="*" k="16" /> +<hkern u1="é" u2=")" k="59" /> +<hkern u1="ê" u2="™" k="41" /> +<hkern u1="ê" u2="}" k="63" /> +<hkern u1="ê" u2="]" k="125" /> +<hkern u1="ê" u2="\" k="94" /> +<hkern u1="ê" u2="X" k="49" /> +<hkern u1="ê" u2="W" k="145" /> +<hkern u1="ê" u2="V" k="168" /> +<hkern u1="ê" u2="T" k="82" /> +<hkern u1="ê" u2="M" k="31" /> +<hkern u1="ê" u2="?" k="33" /> +<hkern u1="ê" u2="/" k="94" /> +<hkern u1="ê" u2="*" k="16" /> +<hkern u1="ê" u2=")" k="59" /> +<hkern u1="ë" u2="™" k="41" /> +<hkern u1="ë" u2="}" k="63" /> +<hkern u1="ë" u2="]" k="125" /> +<hkern u1="ë" u2="\" k="94" /> +<hkern u1="ë" u2="X" k="49" /> +<hkern u1="ë" u2="W" k="145" /> +<hkern u1="ë" u2="V" k="168" /> +<hkern u1="ë" u2="T" k="82" /> +<hkern u1="ë" u2="M" k="31" /> +<hkern u1="ë" u2="?" k="33" /> +<hkern u1="ë" u2="/" k="94" /> +<hkern u1="ë" u2="*" k="16" /> +<hkern u1="ë" u2=")" k="59" /> +<hkern u1="ì" u2="w" k="14" /> +<hkern u1="ì" u2="v" k="14" /> +<hkern u1="ì" u2="t" k="8" /> +<hkern u1="ì" u2="W" k="35" /> +<hkern u1="ì" u2="V" k="33" /> +<hkern u1="ì" u2="T" k="18" /> +<hkern u1="ì" u2="M" k="14" /> +<hkern u1="ì" u2="/" k="49" /> +<hkern u1="ì" u2="*" k="16" /> +<hkern u1="í" u2="}" k="-18" /> +<hkern u1="í" u2="w" k="14" /> +<hkern u1="í" u2="v" k="14" /> +<hkern u1="í" u2="t" k="8" /> +<hkern u1="í" u2="]" k="-31" /> +<hkern u1="í" u2="W" k="35" /> +<hkern u1="í" u2="V" k="33" /> +<hkern u1="í" u2="T" k="18" /> +<hkern u1="í" u2="M" k="14" /> +<hkern u1="í" u2="/" k="49" /> +<hkern u1="í" u2="*" k="16" /> +<hkern u1="î" u2="w" k="14" /> +<hkern u1="î" u2="v" k="14" /> +<hkern u1="î" u2="t" k="8" /> +<hkern u1="î" u2="W" k="35" /> +<hkern u1="î" u2="V" k="33" /> +<hkern u1="î" u2="T" k="18" /> +<hkern u1="î" u2="M" k="14" /> +<hkern u1="î" u2="/" k="49" /> +<hkern u1="î" u2="*" k="16" /> +<hkern u1="ï" u2="”" k="-10" /> +<hkern u1="ï" u2="’" k="-10" /> +<hkern u1="ï" u2="þ" k="-31" /> +<hkern u1="ï" u2="}" k="-37" /> +<hkern u1="ï" u2="w" k="14" /> +<hkern u1="ï" u2="v" k="14" /> +<hkern u1="ï" u2="t" k="8" /> +<hkern u1="ï" u2="b" k="-31" /> +<hkern u1="ï" u2="]" k="-49" /> +<hkern u1="ï" u2="W" k="35" /> +<hkern u1="ï" u2="V" k="33" /> +<hkern u1="ï" u2="T" k="18" /> +<hkern u1="ï" u2="M" k="14" /> +<hkern u1="ï" u2="/" k="49" /> +<hkern u1="ï" u2="*" k="16" /> +<hkern u1="ð" u2="™" k="31" /> +<hkern u1="ð" u2="…" k="16" /> +<hkern u1="ð" u2="„" k="16" /> +<hkern u1="ð" u2="”" k="31" /> +<hkern u1="ð" u2="“" k="25" /> +<hkern u1="ð" u2="‚" k="16" /> +<hkern u1="ð" u2="’" k="31" /> +<hkern u1="ð" u2="‘" k="25" /> +<hkern u1="ð" u2="ÿ" k="8" /> +<hkern u1="ð" u2="ý" k="8" /> +<hkern u1="ð" u2="}" k="63" /> +<hkern u1="ð" u2="y" k="8" /> +<hkern u1="ð" u2="x" k="12" /> +<hkern u1="ð" u2="w" k="8" /> +<hkern u1="ð" u2="v" k="8" /> +<hkern u1="ð" u2="l" k="14" /> +<hkern u1="ð" u2="k" k="14" /> +<hkern u1="ð" u2="h" k="14" /> +<hkern u1="ð" u2="]" k="106" /> +<hkern u1="ð" u2="\" k="57" /> +<hkern u1="ð" u2="?" k="20" /> +<hkern u1="ð" u2="/" k="125" /> +<hkern u1="ð" u2="." k="16" /> +<hkern u1="ð" u2="," k="16" /> +<hkern u1="ð" u2=")" k="59" /> +<hkern u1="ð" u2="'" k="33" /> +<hkern u1="ð" u2=""" k="33" /> +<hkern u1="ñ" u2="™" k="59" /> +<hkern u1="ñ" u2="}" k="57" /> +<hkern u1="ñ" u2="w" k="29" /> +<hkern u1="ñ" u2="v" k="31" /> +<hkern u1="ñ" u2="t" k="12" /> +<hkern u1="ñ" u2="p" k="8" /> +<hkern u1="ñ" u2="j" k="10" /> +<hkern u1="ñ" u2="]" k="121" /> +<hkern u1="ñ" u2="\" k="123" /> +<hkern u1="ñ" u2="W" k="127" /> +<hkern u1="ñ" u2="V" k="141" /> +<hkern u1="ñ" u2="T" k="88" /> +<hkern u1="ñ" u2="M" k="12" /> +<hkern u1="ñ" u2="?" k="43" /> +<hkern u1="ñ" u2="/" k="47" /> +<hkern u1="ñ" u2="*" k="37" /> +<hkern u1="ñ" u2=")" k="49" /> +<hkern u1="ò" u2="™" k="41" /> +<hkern u1="ò" u2="}" k="74" /> +<hkern u1="ò" u2="x" k="16" /> +<hkern u1="ò" u2="w" k="14" /> +<hkern u1="ò" u2="v" k="12" /> +<hkern u1="ò" u2="]" k="127" /> +<hkern u1="ò" u2="\" k="106" /> +<hkern u1="ò" u2="X" k="92" /> +<hkern u1="ò" u2="W" k="137" /> +<hkern u1="ò" u2="V" k="162" /> +<hkern u1="ò" u2="T" k="94" /> +<hkern u1="ò" u2="M" k="51" /> +<hkern u1="ò" u2="?" k="41" /> +<hkern u1="ò" u2="/" k="117" /> +<hkern u1="ò" u2="*" k="16" /> +<hkern u1="ò" u2=")" k="68" /> +<hkern u1="ó" u2="™" k="41" /> +<hkern u1="ó" u2="}" k="74" /> +<hkern u1="ó" u2="x" k="16" /> +<hkern u1="ó" u2="w" k="14" /> +<hkern u1="ó" u2="v" k="12" /> +<hkern u1="ó" u2="]" k="127" /> +<hkern u1="ó" u2="\" k="106" /> +<hkern u1="ó" u2="X" k="92" /> +<hkern u1="ó" u2="W" k="137" /> +<hkern u1="ó" u2="V" k="162" /> +<hkern u1="ó" u2="T" k="94" /> +<hkern u1="ó" u2="M" k="51" /> +<hkern u1="ó" u2="?" k="41" /> +<hkern u1="ó" u2="/" k="117" /> +<hkern u1="ó" u2="*" k="16" /> +<hkern u1="ó" u2=")" k="68" /> +<hkern u1="ô" u2="™" k="41" /> +<hkern u1="ô" u2="}" k="74" /> +<hkern u1="ô" u2="x" k="16" /> +<hkern u1="ô" u2="w" k="14" /> +<hkern u1="ô" u2="v" k="12" /> +<hkern u1="ô" u2="]" k="127" /> +<hkern u1="ô" u2="\" k="106" /> +<hkern u1="ô" u2="X" k="92" /> +<hkern u1="ô" u2="W" k="137" /> +<hkern u1="ô" u2="V" k="162" /> +<hkern u1="ô" u2="T" k="94" /> +<hkern u1="ô" u2="M" k="51" /> +<hkern u1="ô" u2="?" k="41" /> +<hkern u1="ô" u2="/" k="117" /> +<hkern u1="ô" u2="*" k="16" /> +<hkern u1="ô" u2=")" k="68" /> +<hkern u1="õ" u2="™" k="41" /> +<hkern u1="õ" u2="}" k="74" /> +<hkern u1="õ" u2="x" k="16" /> +<hkern u1="õ" u2="w" k="14" /> +<hkern u1="õ" u2="v" k="12" /> +<hkern u1="õ" u2="]" k="127" /> +<hkern u1="õ" u2="\" k="106" /> +<hkern u1="õ" u2="X" k="92" /> +<hkern u1="õ" u2="W" k="137" /> +<hkern u1="õ" u2="V" k="162" /> +<hkern u1="õ" u2="T" k="94" /> +<hkern u1="õ" u2="M" k="51" /> +<hkern u1="õ" u2="?" k="41" /> +<hkern u1="õ" u2="/" k="117" /> +<hkern u1="õ" u2="*" k="16" /> +<hkern u1="õ" u2=")" k="68" /> +<hkern u1="ö" u2="™" k="41" /> +<hkern u1="ö" u2="}" k="74" /> +<hkern u1="ö" u2="x" k="16" /> +<hkern u1="ö" u2="w" k="14" /> +<hkern u1="ö" u2="v" k="12" /> +<hkern u1="ö" u2="]" k="127" /> +<hkern u1="ö" u2="\" k="106" /> +<hkern u1="ö" u2="X" k="92" /> +<hkern u1="ö" u2="W" k="137" /> +<hkern u1="ö" u2="V" k="162" /> +<hkern u1="ö" u2="T" k="94" /> +<hkern u1="ö" u2="M" k="51" /> +<hkern u1="ö" u2="?" k="41" /> +<hkern u1="ö" u2="/" k="117" /> +<hkern u1="ö" u2="*" k="16" /> +<hkern u1="ö" u2=")" k="68" /> +<hkern u1="ø" u2="™" k="41" /> +<hkern u1="ø" u2="}" k="74" /> +<hkern u1="ø" u2="x" k="16" /> +<hkern u1="ø" u2="w" k="14" /> +<hkern u1="ø" u2="v" k="12" /> +<hkern u1="ø" u2="]" k="127" /> +<hkern u1="ø" u2="\" k="106" /> +<hkern u1="ø" u2="X" k="92" /> +<hkern u1="ø" u2="W" k="137" /> +<hkern u1="ø" u2="V" k="162" /> +<hkern u1="ø" u2="T" k="94" /> +<hkern u1="ø" u2="M" k="51" /> +<hkern u1="ø" u2="?" k="41" /> +<hkern u1="ø" u2="/" k="117" /> +<hkern u1="ø" u2="*" k="16" /> +<hkern u1="ø" u2=")" k="68" /> +<hkern u1="ù" u2="™" k="37" /> +<hkern u1="ù" u2="}" k="55" /> +<hkern u1="ù" u2="w" k="14" /> +<hkern u1="ù" u2="v" k="14" /> +<hkern u1="ù" u2="t" k="8" /> +<hkern u1="ù" u2="]" k="121" /> +<hkern u1="ù" u2="\" k="86" /> +<hkern u1="ù" u2="W" k="102" /> +<hkern u1="ù" u2="V" k="119" /> +<hkern u1="ù" u2="T" k="45" /> +<hkern u1="ù" u2="M" k="14" /> +<hkern u1="ù" u2="?" k="20" /> +<hkern u1="ù" u2="/" k="51" /> +<hkern u1="ù" u2="*" k="16" /> +<hkern u1="ù" u2=")" k="47" /> +<hkern u1="ú" u2="™" k="37" /> +<hkern u1="ú" u2="}" k="55" /> +<hkern u1="ú" u2="w" k="14" /> +<hkern u1="ú" u2="v" k="14" /> +<hkern u1="ú" u2="t" k="8" /> +<hkern u1="ú" u2="]" k="121" /> +<hkern u1="ú" u2="\" k="86" /> +<hkern u1="ú" u2="W" k="102" /> +<hkern u1="ú" u2="V" k="119" /> +<hkern u1="ú" u2="T" k="45" /> +<hkern u1="ú" u2="M" k="14" /> +<hkern u1="ú" u2="?" k="20" /> +<hkern u1="ú" u2="/" k="51" /> +<hkern u1="ú" u2="*" k="16" /> +<hkern u1="ú" u2=")" k="47" /> +<hkern u1="û" u2="™" k="37" /> +<hkern u1="û" u2="}" k="55" /> +<hkern u1="û" u2="w" k="14" /> +<hkern u1="û" u2="v" k="14" /> +<hkern u1="û" u2="t" k="8" /> +<hkern u1="û" u2="]" k="121" /> +<hkern u1="û" u2="\" k="86" /> +<hkern u1="û" u2="W" k="102" /> +<hkern u1="û" u2="V" k="119" /> +<hkern u1="û" u2="T" k="45" /> +<hkern u1="û" u2="M" k="14" /> +<hkern u1="û" u2="?" k="20" /> +<hkern u1="û" u2="/" k="51" /> +<hkern u1="û" u2="*" k="16" /> +<hkern u1="û" u2=")" k="47" /> +<hkern u1="ü" u2="™" k="37" /> +<hkern u1="ü" u2="}" k="55" /> +<hkern u1="ü" u2="w" k="14" /> +<hkern u1="ü" u2="v" k="14" /> +<hkern u1="ü" u2="t" k="8" /> +<hkern u1="ü" u2="]" k="121" /> +<hkern u1="ü" u2="\" k="86" /> +<hkern u1="ü" u2="W" k="102" /> +<hkern u1="ü" u2="V" k="119" /> +<hkern u1="ü" u2="T" k="45" /> +<hkern u1="ü" u2="M" k="14" /> +<hkern u1="ü" u2="?" k="20" /> +<hkern u1="ü" u2="/" k="51" /> +<hkern u1="ü" u2="*" k="16" /> +<hkern u1="ü" u2=")" k="47" /> +<hkern u1="ý" u2="ð" k="23" /> +<hkern u1="ý" u2="}" k="55" /> +<hkern u1="ý" u2="g" k="18" /> +<hkern u1="ý" u2="]" k="119" /> +<hkern u1="ý" u2="\" k="35" /> +<hkern u1="ý" u2="X" k="78" /> +<hkern u1="ý" u2="W" k="61" /> +<hkern u1="ý" u2="V" k="59" /> +<hkern u1="ý" u2="M" k="66" /> +<hkern u1="ý" u2="J" k="88" /> +<hkern u1="ý" u2="/" k="143" /> +<hkern u1="ý" u2="*" k="-23" /> +<hkern u1="ý" u2=")" k="49" /> +<hkern u1="ý" u2="&" k="20" /> +<hkern u1="þ" u2="™" k="45" /> +<hkern u1="þ" u2="”" k="47" /> +<hkern u1="þ" u2="“" k="43" /> +<hkern u1="þ" u2="’" k="47" /> +<hkern u1="þ" u2="‘" k="43" /> +<hkern u1="þ" u2="ÿ" k="8" /> +<hkern u1="þ" u2="ý" k="8" /> +<hkern u1="þ" u2="}" k="72" /> +<hkern u1="þ" u2="y" k="8" /> +<hkern u1="þ" u2="x" k="12" /> +<hkern u1="þ" u2="w" k="8" /> +<hkern u1="þ" u2="v" k="8" /> +<hkern u1="þ" u2="l" k="8" /> +<hkern u1="þ" u2="k" k="8" /> +<hkern u1="þ" u2="h" k="8" /> +<hkern u1="þ" u2="]" k="123" /> +<hkern u1="þ" u2="\" k="98" /> +<hkern u1="þ" u2="?" k="39" /> +<hkern u1="þ" u2="/" k="115" /> +<hkern u1="þ" u2="*" k="23" /> +<hkern u1="þ" u2=")" k="66" /> +<hkern u1="þ" u2="'" k="61" /> +<hkern u1="þ" u2=""" k="61" /> +<hkern u1="ÿ" u2="ð" k="23" /> +<hkern u1="ÿ" u2="}" k="55" /> +<hkern u1="ÿ" u2="g" k="18" /> +<hkern u1="ÿ" u2="]" k="119" /> +<hkern u1="ÿ" u2="\" k="35" /> +<hkern u1="ÿ" u2="X" k="78" /> +<hkern u1="ÿ" u2="W" k="61" /> +<hkern u1="ÿ" u2="V" k="59" /> +<hkern u1="ÿ" u2="M" k="66" /> +<hkern u1="ÿ" u2="J" k="88" /> +<hkern u1="ÿ" u2="/" k="143" /> +<hkern u1="ÿ" u2="*" k="-23" /> +<hkern u1="ÿ" u2=")" k="49" /> +<hkern u1="ÿ" u2="&" k="20" /> +<hkern u1="Œ" u2="ð" k="8" /> +<hkern u1="Œ" u2="w" k="25" /> +<hkern u1="Œ" u2="v" k="31" /> +<hkern u1="Œ" u2="t" k="14" /> +<hkern u1="Œ" u2="p" k="23" /> +<hkern u1="Œ" u2="j" k="23" /> +<hkern u1="Œ" u2="g" k="16" /> +<hkern u1="Œ" u2="W" k="14" /> +<hkern u1="Œ" u2="V" k="14" /> +<hkern u1="Œ" u2="/" k="57" /> +<hkern u1="œ" u2="™" k="41" /> +<hkern u1="œ" u2="}" k="63" /> +<hkern u1="œ" u2="]" k="125" /> +<hkern u1="œ" u2="\" k="94" /> +<hkern u1="œ" u2="X" k="49" /> +<hkern u1="œ" u2="W" k="145" /> +<hkern u1="œ" u2="V" k="168" /> +<hkern u1="œ" u2="T" k="82" /> +<hkern u1="œ" u2="M" k="31" /> +<hkern u1="œ" u2="?" k="33" /> +<hkern u1="œ" u2="/" k="94" /> +<hkern u1="œ" u2="*" k="16" /> +<hkern u1="œ" u2=")" k="59" /> +<hkern u1="Ÿ" u2="™" k="-33" /> +<hkern u1="Ÿ" u2="õ" k="129" /> +<hkern u1="Ÿ" u2="ð" k="43" /> +<hkern u1="Ÿ" u2="ï" k="-35" /> +<hkern u1="Ÿ" u2="î" k="-23" /> +<hkern u1="Ÿ" u2="ì" k="-35" /> +<hkern u1="Ÿ" u2="ä" k="117" /> +<hkern u1="Ÿ" u2="ã" k="68" /> +<hkern u1="Ÿ" u2="â" k="127" /> +<hkern u1="Ÿ" u2="Æ" k="137" /> +<hkern u1="Ÿ" u2="®" k="53" /> +<hkern u1="Ÿ" u2="}" k="-76" /> +<hkern u1="Ÿ" u2="x" k="119" /> +<hkern u1="Ÿ" u2="w" k="109" /> +<hkern u1="Ÿ" u2="v" k="106" /> +<hkern u1="Ÿ" u2="t" k="92" /> +<hkern u1="Ÿ" u2="p" k="125" /> +<hkern u1="Ÿ" u2="j" k="43" /> +<hkern u1="Ÿ" u2="g" k="162" /> +<hkern u1="Ÿ" u2="]" k="-86" /> +<hkern u1="Ÿ" u2="\" k="-57" /> +<hkern u1="Ÿ" u2="W" k="-25" /> +<hkern u1="Ÿ" u2="V" k="-25" /> +<hkern u1="Ÿ" u2="J" k="57" /> +<hkern u1="Ÿ" u2="@" k="90" /> +<hkern u1="Ÿ" u2=";" k="76" /> +<hkern u1="Ÿ" u2=":" k="68" /> +<hkern u1="Ÿ" u2="8" k="27" /> +<hkern u1="Ÿ" u2="7" k="-59" /> +<hkern u1="Ÿ" u2="6" k="45" /> +<hkern u1="Ÿ" u2="4" k="104" /> +<hkern u1="Ÿ" u2="0" k="45" /> +<hkern u1="Ÿ" u2="/" k="176" /> +<hkern u1="Ÿ" u2="*" k="16" /> +<hkern u1="Ÿ" u2=")" k="-33" /> +<hkern u1="Ÿ" u2="&" k="47" /> +<hkern u1="–" u2="Æ" k="121" /> +<hkern u1="–" u2="x" k="25" /> +<hkern u1="–" u2="X" k="125" /> +<hkern u1="–" u2="W" k="94" /> +<hkern u1="–" u2="V" k="106" /> +<hkern u1="–" u2="T" k="129" /> +<hkern u1="–" u2="M" k="47" /> +<hkern u1="–" u2="J" k="119" /> +<hkern u1="–" u2="8" k="23" /> +<hkern u1="–" u2="7" k="121" /> +<hkern u1="–" u2="3" k="41" /> +<hkern u1="–" u2="2" k="59" /> +<hkern u1="–" u2="1" k="57" /> +<hkern u1="—" u2="Æ" k="121" /> +<hkern u1="—" u2="x" k="25" /> +<hkern u1="—" u2="X" k="125" /> +<hkern u1="—" u2="W" k="94" /> +<hkern u1="—" u2="V" k="106" /> +<hkern u1="—" u2="T" k="129" /> +<hkern u1="—" u2="M" k="47" /> +<hkern u1="—" u2="J" k="119" /> +<hkern u1="—" u2="8" k="23" /> +<hkern u1="—" u2="7" k="121" /> +<hkern u1="—" u2="3" k="41" /> +<hkern u1="—" u2="2" k="59" /> +<hkern u1="—" u2="1" k="57" /> +<hkern u1="‘" u2="ð" k="33" /> +<hkern u1="‘" u2="Æ" k="199" /> +<hkern u1="‘" u2="x" k="-49" /> +<hkern u1="‘" u2="w" k="-76" /> +<hkern u1="‘" u2="v" k="-45" /> +<hkern u1="‘" u2="g" k="35" /> +<hkern u1="‘" u2="V" k="-49" /> +<hkern u1="‘" u2="T" k="-49" /> +<hkern u1="‘" u2="J" k="86" /> +<hkern u1="’" u2="ð" k="16" /> +<hkern u1="’" u2="Æ" k="211" /> +<hkern u1="’" u2="g" k="63" /> +<hkern u1="’" u2="X" k="-27" /> +<hkern u1="’" u2="W" k="-27" /> +<hkern u1="’" u2="V" k="-39" /> +<hkern u1="’" u2="J" k="59" /> +<hkern u1="’" u2="@" k="45" /> +<hkern u1="’" u2="/" k="215" /> +<hkern u1="’" u2="&" k="31" /> +<hkern u1="‚" u2="”" k="240" /> +<hkern u1="‚" u2="“" k="240" /> +<hkern u1="‚" u2="Æ" k="-10" /> +<hkern u1="‚" u2="w" k="70" /> +<hkern u1="‚" u2="v" k="86" /> +<hkern u1="‚" u2="t" k="27" /> +<hkern u1="‚" u2="p" k="16" /> +<hkern u1="‚" u2="j" k="-23" /> +<hkern u1="‚" u2="W" k="160" /> +<hkern u1="‚" u2="V" k="229" /> +<hkern u1="‚" u2="T" k="115" /> +<hkern u1="‚" u2="7" k="59" /> +<hkern u1="‚" u2="0" k="31" /> +<hkern u1="‚" u2=""" k="256" /> +<hkern u1="“" u2="…" k="240" /> +<hkern u1="“" u2="„" k="240" /> +<hkern u1="“" u2="‚" k="240" /> +<hkern u1="“" u2="ð" k="33" /> +<hkern u1="“" u2="Æ" k="199" /> +<hkern u1="“" u2="x" k="-49" /> +<hkern u1="“" u2="w" k="-76" /> +<hkern u1="“" u2="v" k="-45" /> +<hkern u1="“" u2="g" k="35" /> +<hkern u1="“" u2="V" k="-49" /> +<hkern u1="“" u2="T" k="-49" /> +<hkern u1="“" u2="J" k="86" /> +<hkern u1="“" u2="." k="240" /> +<hkern u1="“" u2="," k="246" /> +<hkern u1="”" u2="…" k="240" /> +<hkern u1="”" u2="„" k="240" /> +<hkern u1="”" u2="‚" k="240" /> +<hkern u1="”" u2="ð" k="16" /> +<hkern u1="”" u2="Æ" k="211" /> +<hkern u1="”" u2="g" k="63" /> +<hkern u1="”" u2="X" k="-27" /> +<hkern u1="”" u2="W" k="-27" /> +<hkern u1="”" u2="V" k="-39" /> +<hkern u1="”" u2="J" k="59" /> +<hkern u1="”" u2="@" k="45" /> +<hkern u1="”" u2="/" k="215" /> +<hkern u1="”" u2="." k="240" /> +<hkern u1="”" u2="," k="256" /> +<hkern u1="”" u2="&" k="31" /> +<hkern u1="„" u2="”" k="240" /> +<hkern u1="„" u2="“" k="240" /> +<hkern u1="„" u2="Æ" k="-10" /> +<hkern u1="„" u2="w" k="70" /> +<hkern u1="„" u2="v" k="86" /> +<hkern u1="„" u2="t" k="27" /> +<hkern u1="„" u2="p" k="16" /> +<hkern u1="„" u2="j" k="-23" /> +<hkern u1="„" u2="W" k="160" /> +<hkern u1="„" u2="V" k="229" /> +<hkern u1="„" u2="T" k="115" /> +<hkern u1="„" u2="7" k="59" /> +<hkern u1="„" u2="0" k="31" /> +<hkern u1="„" u2=""" k="260" /> +<hkern u1="‹" u2="Æ" k="-31" /> +<hkern u1="‹" u2="W" k="51" /> +<hkern u1="‹" u2="V" k="51" /> +<hkern u1="›" u2="Æ" k="59" /> +<hkern u1="›" u2="x" k="31" /> +<hkern u1="›" u2="X" k="76" /> +<hkern u1="›" u2="W" k="92" /> +<hkern u1="›" u2="V" k="106" /> +<hkern u1="›" u2="T" k="92" /> +<hkern u1="›" u2="M" k="33" /> +<hkern u1="›" u2="J" k="25" /> +<hkern u1="™" u2="Ÿ" k="-31" /> +<hkern u1="™" u2="þ" k="-25" /> +<hkern u1="™" u2="Ý" k="-31" /> +<hkern u1="™" u2="Æ" k="129" /> +<hkern u1="™" u2="Å" k="84" /> +<hkern u1="™" u2="Ä" k="84" /> +<hkern u1="™" u2="Ã" k="84" /> +<hkern u1="™" u2="Â" k="84" /> +<hkern u1="™" u2="Á" k="84" /> +<hkern u1="™" u2="À" k="84" /> +<hkern u1="™" u2="b" k="-25" /> +<hkern u1="™" u2="Y" k="-31" /> +<hkern u1="™" u2="X" k="-10" /> +<hkern u1="™" u2="W" k="-10" /> +<hkern u1="™" u2="V" k="-20" /> +<hkern u1="™" u2="J" k="74" /> +<hkern u1="™" u2="A" k="84" /> +<hkern u1="fi" u2="w" k="14" /> +<hkern u1="fi" u2="v" k="14" /> +<hkern u1="fi" u2="t" k="8" /> +<hkern u1="fi" u2="W" k="35" /> +<hkern u1="fi" u2="V" k="33" /> +<hkern u1="fi" u2="T" k="18" /> +<hkern u1="fi" u2="M" k="14" /> +<hkern u1="fi" u2="/" k="49" /> +<hkern u1="fi" u2="*" k="16" /> +<hkern u1="fl" u2="·" k="127" /> +<hkern u1="fl" u2="w" k="16" /> +<hkern u1="fl" u2="v" k="16" /> +<hkern u1="fl" u2="t" k="8" /> +<hkern u1="fl" u2="p" k="8" /> +<hkern u1="fl" u2="j" k="8" /> +<hkern u1="fl" u2="]" k="23" /> +<hkern u1="fl" u2="W" k="41" /> +<hkern u1="fl" u2="V" k="37" /> +<hkern u1="fl" u2="T" k="18" /> +<hkern u1="fl" u2="M" k="14" /> +<hkern u1="fl" u2="/" k="49" /> +<hkern g1="C,Ccedilla" g2="hyphen,uni00AD,endash,emdash" k="55" /> +<hkern g1="C,Ccedilla" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="14" /> +<hkern g1="D,Eth" g2="m,n,r,ntilde" k="8" /> +<hkern g1="D,Eth" g2="i,igrave,iacute,icircumflex,idieresis" k="8" /> +<hkern g1="D,Eth" g2="Y,Yacute,Ydieresis" k="57" /> +<hkern g1="D,Eth" g2="b,thorn" k="12" /> +<hkern g1="D,Eth" g2="f,germandbls,uniFB01,uniFB02" k="8" /> +<hkern g1="D,Eth" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="16" /> +<hkern g1="D,Eth" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="57" /> +<hkern g1="D,Eth" g2="z" k="8" /> +<hkern g1="D,Eth" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="55" /> +<hkern g1="D,Eth" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="29" /> +<hkern g1="D,Eth" g2="h,k" k="29" /> +<hkern g1="D,Eth" g2="Z" k="10" /> +<hkern g1="D,Eth" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="12" /> +<hkern g1="D,Eth" g2="l" k="29" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="10" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="m,n,r,ntilde" k="10" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="i,igrave,iacute,icircumflex,idieresis" k="10" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="d,q" k="8" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="y,yacute,ydieresis" k="33" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="s" k="10" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="Y,Yacute,Ydieresis" k="14" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="hyphen,uni00AD,endash,emdash" k="29" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="f,germandbls,uniFB01,uniFB02" k="10" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="u,ugrave,uacute,ucircumflex,udieresis" k="18" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="z" k="10" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="53" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="m,n,r,ntilde" k="23" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="25" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="guillemotleft,guilsinglleft" k="33" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="i,igrave,iacute,icircumflex,idieresis" k="25" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="d,q" k="49" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="y,yacute,ydieresis" k="66" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="s" k="25" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="hyphen,uni00AD,endash,emdash" k="47" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="f,germandbls,uniFB01,uniFB02" k="27" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="51" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="z" k="18" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="25" /> +<hkern g1="L" g2="quoteright,quotedblright" k="170" /> +<hkern g1="L" g2="y,yacute,ydieresis" k="90" /> +<hkern g1="L" g2="quotedbl,quotesingle" k="170" /> +<hkern g1="L" g2="Y,Yacute,Ydieresis" k="158" /> +<hkern g1="L" g2="quoteleft,quotedblleft" k="176" /> +<hkern g1="L" g2="u,ugrave,uacute,ucircumflex,udieresis" k="18" /> +<hkern g1="L" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="27" /> +<hkern g1="N,Ntilde" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="53" /> +<hkern g1="N,Ntilde" g2="m,n,r,ntilde" k="47" /> +<hkern g1="N,Ntilde" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="20" /> +<hkern g1="N,Ntilde" g2="guillemotleft,guilsinglleft" k="25" /> +<hkern g1="N,Ntilde" g2="i,igrave,iacute,icircumflex,idieresis" k="43" /> +<hkern g1="N,Ntilde" g2="d,q" k="49" /> +<hkern g1="N,Ntilde" g2="y,yacute,ydieresis" k="47" /> +<hkern g1="N,Ntilde" g2="s" k="49" /> +<hkern g1="N,Ntilde" g2="hyphen,uni00AD,endash,emdash" k="37" /> +<hkern g1="N,Ntilde" g2="b,thorn" k="-23" /> +<hkern g1="N,Ntilde" g2="f,germandbls,uniFB01,uniFB02" k="43" /> +<hkern g1="N,Ntilde" g2="u,ugrave,uacute,ucircumflex,udieresis" k="47" /> +<hkern g1="N,Ntilde" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="33" /> +<hkern g1="N,Ntilde" g2="z" k="51" /> +<hkern g1="N,Ntilde" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="37" /> +<hkern g1="N,Ntilde" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="55" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Y,Yacute,Ydieresis" k="47" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="b,thorn" k="10" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="12" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="49" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="49" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="25" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="h,k" k="27" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="12" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="l" k="27" /> +<hkern g1="S" g2="m,n,r,ntilde" k="18" /> +<hkern g1="S" g2="i,igrave,iacute,icircumflex,idieresis" k="18" /> +<hkern g1="S" g2="y,yacute,ydieresis" k="23" /> +<hkern g1="S" g2="s" k="10" /> +<hkern g1="S" g2="Y,Yacute,Ydieresis" k="16" /> +<hkern g1="S" g2="f,germandbls,uniFB01,uniFB02" k="16" /> +<hkern g1="S" g2="u,ugrave,uacute,ucircumflex,udieresis" k="16" /> +<hkern g1="S" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="14" /> +<hkern g1="S" g2="z" k="14" /> +<hkern g1="S" g2="h,k" k="10" /> +<hkern g1="S" g2="l" k="10" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="57" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="m,n,r,ntilde" k="57" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="guillemotright,guilsinglright" k="23" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="12" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="i,igrave,iacute,icircumflex,idieresis" k="41" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="d,q" k="57" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="y,yacute,ydieresis" k="35" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="s" k="57" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="hyphen,uni00AD,endash,emdash" k="31" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="b,thorn" k="-43" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="f,germandbls,uniFB01,uniFB02" k="39" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="39" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="86" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="z" k="59" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="66" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="68" /> +<hkern g1="Y,Yacute,Ydieresis" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="170" /> +<hkern g1="Y,Yacute,Ydieresis" g2="m,n,r,ntilde" k="127" /> +<hkern g1="Y,Yacute,Ydieresis" g2="quoteright,quotedblright" k="-47" /> +<hkern g1="Y,Yacute,Ydieresis" g2="guillemotright,guilsinglright" k="61" /> +<hkern g1="Y,Yacute,Ydieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="61" /> +<hkern g1="Y,Yacute,Ydieresis" g2="guillemotleft,guilsinglleft" k="135" /> +<hkern g1="Y,Yacute,Ydieresis" g2="i,igrave,iacute,icircumflex,idieresis" k="55" /> +<hkern g1="Y,Yacute,Ydieresis" g2="d,q" k="166" /> +<hkern g1="Y,Yacute,Ydieresis" g2="y,yacute,ydieresis" k="104" /> +<hkern g1="Y,Yacute,Ydieresis" g2="s" k="158" /> +<hkern g1="Y,Yacute,Ydieresis" g2="Y,Yacute,Ydieresis" k="-25" /> +<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,uni00AD,endash,emdash" k="139" /> +<hkern g1="Y,Yacute,Ydieresis" g2="b,thorn" k="-86" /> +<hkern g1="Y,Yacute,Ydieresis" g2="f,germandbls,uniFB01,uniFB02" k="59" /> +<hkern g1="Y,Yacute,Ydieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="121" /> +<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="133" /> +<hkern g1="Y,Yacute,Ydieresis" g2="z" k="135" /> +<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="115" /> +<hkern g1="Y,Yacute,Ydieresis" g2="h,k" k="-41" /> +<hkern g1="Y,Yacute,Ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="166" /> +<hkern g1="Y,Yacute,Ydieresis" g2="l" k="-41" /> +<hkern g1="Y,Yacute,Ydieresis" g2="S" k="14" /> +<hkern g1="Z" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="12" /> +<hkern g1="Z" g2="m,n,r,ntilde" k="16" /> +<hkern g1="Z" g2="i,igrave,iacute,icircumflex,idieresis" k="16" /> +<hkern g1="Z" g2="d,q" k="10" /> +<hkern g1="Z" g2="y,yacute,ydieresis" k="63" /> +<hkern g1="Z" g2="s" k="12" /> +<hkern g1="Z" g2="hyphen,uni00AD,endash,emdash" k="39" /> +<hkern g1="Z" g2="f,germandbls,uniFB01,uniFB02" k="16" /> +<hkern g1="Z" g2="u,ugrave,uacute,ucircumflex,udieresis" k="35" /> +<hkern g1="Z" g2="z" k="12" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="quoteright,quotedblright" k="45" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="20" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="y,yacute,ydieresis" k="27" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="quotedbl,quotesingle" k="47" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="Y,Yacute,Ydieresis" k="158" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="quoteleft,quotedblleft" k="39" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="63" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="10" /> +<hkern g1="c,ccedilla" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="14" /> +<hkern g1="c,ccedilla" g2="Y,Yacute,Ydieresis" k="154" /> +<hkern g1="c,ccedilla" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="51" /> +<hkern g1="c,ccedilla" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="41" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quoteright,quotedblright" k="33" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="y,yacute,ydieresis" k="8" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quotedbl,quotesingle" k="39" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="Y,Yacute,Ydieresis" k="190" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quoteleft,quotedblleft" k="29" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="55" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="12" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="33" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="Z" k="16" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="S" k="12" /> +<hkern g1="guillemotleft,guilsinglleft" g2="Y,Yacute,Ydieresis" k="47" /> +<hkern g1="guillemotleft,guilsinglleft" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="23" /> +<hkern g1="guillemotleft,guilsinglleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-16" /> +<hkern g1="guillemotright,guilsinglright" g2="quoteright,quotedblright" k="82" /> +<hkern g1="guillemotright,guilsinglright" g2="quotedbl,quotesingle" k="98" /> +<hkern g1="guillemotright,guilsinglright" g2="Y,Yacute,Ydieresis" k="135" /> +<hkern g1="guillemotright,guilsinglright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="45" /> +<hkern g1="guillemotright,guilsinglright" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="35" /> +<hkern g1="guillemotright,guilsinglright" g2="Z" k="43" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="y,yacute,ydieresis" k="16" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Y,Yacute,Ydieresis" k="135" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="f,germandbls,uniFB01,uniFB02" k="18" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="33" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="80" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="47" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="h,k" k="16" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Z" k="74" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="l" k="16" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="S" k="20" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="25" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01" g2="y,yacute,ydieresis" k="16" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01" g2="Y,Yacute,Ydieresis" k="29" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01" g2="hyphen,uni00AD,endash,emdash" k="18" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="37" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="16" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01" g2="S" k="10" /> +<hkern g1="l,uniFB02" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="27" /> +<hkern g1="l,uniFB02" g2="y,yacute,ydieresis" k="16" /> +<hkern g1="l,uniFB02" g2="Y,Yacute,Ydieresis" k="33" /> +<hkern g1="l,uniFB02" g2="hyphen,uni00AD,endash,emdash" k="18" /> +<hkern g1="l,uniFB02" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="39" /> +<hkern g1="l,uniFB02" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="16" /> +<hkern g1="l,uniFB02" g2="S" k="10" /> +<hkern g1="h,m,n,ntilde" g2="quoteright,quotedblright" k="49" /> +<hkern g1="h,m,n,ntilde" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="27" /> +<hkern g1="h,m,n,ntilde" g2="y,yacute,ydieresis" k="33" /> +<hkern g1="h,m,n,ntilde" g2="quotedbl,quotesingle" k="49" /> +<hkern g1="h,m,n,ntilde" g2="Y,Yacute,Ydieresis" k="162" /> +<hkern g1="h,m,n,ntilde" g2="hyphen,uni00AD,endash,emdash" k="18" /> +<hkern g1="h,m,n,ntilde" g2="quoteleft,quotedblleft" k="43" /> +<hkern g1="h,m,n,ntilde" g2="u,ugrave,uacute,ucircumflex,udieresis" k="10" /> +<hkern g1="h,m,n,ntilde" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="68" /> +<hkern g1="h,m,n,ntilde" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="12" /> +<hkern g1="h,m,n,ntilde" g2="S" k="10" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quoteright,quotedblright" k="43" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="y,yacute,ydieresis" k="12" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quotedbl,quotesingle" k="51" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="Y,Yacute,Ydieresis" k="168" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quoteleft,quotedblleft" k="37" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="f,germandbls,uniFB01,uniFB02" k="8" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="59" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="31" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="51" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="h,k" k="8" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="Z" k="37" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="l" k="8" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="S" k="16" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="quoteright,quotedblright" k="215" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="43" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="y,yacute,ydieresis" k="96" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="quotedbl,quotesingle" k="193" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="Y,Yacute,Ydieresis" k="143" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="quoteleft,quotedblleft" k="227" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="u,ugrave,uacute,ucircumflex,udieresis" k="25" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="66" /> +<hkern g1="quoteleft,quotedblleft" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="35" /> +<hkern g1="quoteleft,quotedblleft" g2="d,q" k="47" /> +<hkern g1="quoteleft,quotedblleft" g2="y,yacute,ydieresis" k="-33" /> +<hkern g1="quoteleft,quotedblleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="127" /> +<hkern g1="quoteleft,quotedblleft" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="227" /> +<hkern g1="quoteright,quotedblright" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="61" /> +<hkern g1="quoteright,quotedblright" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="16" /> +<hkern g1="quoteright,quotedblright" g2="guillemotleft,guilsinglleft" k="96" /> +<hkern g1="quoteright,quotedblright" g2="d,q" k="76" /> +<hkern g1="quoteright,quotedblright" g2="s" k="37" /> +<hkern g1="quoteright,quotedblright" g2="Y,Yacute,Ydieresis" k="-41" /> +<hkern g1="quoteright,quotedblright" g2="b,thorn" k="-43" /> +<hkern g1="quoteright,quotedblright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="147" /> +<hkern g1="quoteright,quotedblright" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="215" /> +<hkern g1="quoteright,quotedblright" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="43" /> +<hkern g1="quotedbl,quotesingle" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="57" /> +<hkern g1="quotedbl,quotesingle" g2="guillemotleft,guilsinglleft" k="96" /> +<hkern g1="quotedbl,quotesingle" g2="d,q" k="80" /> +<hkern g1="quotedbl,quotesingle" g2="s" k="25" /> +<hkern g1="quotedbl,quotesingle" g2="b,thorn" k="-10" /> +<hkern g1="quotedbl,quotesingle" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="143" /> +<hkern g1="quotedbl,quotesingle" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="193" /> +<hkern g1="quotedbl,quotesingle" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="33" /> +<hkern g1="s" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="10" /> +<hkern g1="s" g2="Y,Yacute,Ydieresis" k="127" /> +<hkern g1="s" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="63" /> +<hkern g1="s" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="10" /> +<hkern g1="s" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="33" /> +<hkern g1="s" g2="Z" k="10" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="quoteright,quotedblright" k="27" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="25" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="y,yacute,ydieresis" k="16" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="Y,Yacute,Ydieresis" k="125" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="hyphen,uni00AD,endash,emdash" k="18" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="61" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="16" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="S" k="10" /> +<hkern g1="y,yacute,ydieresis" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="18" /> +<hkern g1="y,yacute,ydieresis" g2="guillemotleft,guilsinglleft" k="20" /> +<hkern g1="y,yacute,ydieresis" g2="d,q" k="18" /> +<hkern g1="y,yacute,ydieresis" g2="Y,Yacute,Ydieresis" k="66" /> +<hkern g1="y,yacute,ydieresis" g2="hyphen,uni00AD,endash,emdash" k="20" /> +<hkern g1="y,yacute,ydieresis" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="37" /> +<hkern g1="y,yacute,ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="100" /> +<hkern g1="y,yacute,ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="80" /> +<hkern g1="y,yacute,ydieresis" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="63" /> +<hkern g1="y,yacute,ydieresis" g2="h,k" k="16" /> +<hkern g1="y,yacute,ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="8" /> +<hkern g1="y,yacute,ydieresis" g2="l" k="16" /> +<hkern g1="z" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="10" /> +<hkern g1="z" g2="Y,Yacute,Ydieresis" k="127" /> +<hkern g1="z" g2="hyphen,uni00AD,endash,emdash" k="18" /> +<hkern g1="z" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="57" /> +<hkern g1="z" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="23" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/lora-bold-webfont.ttf b/web/static/fonts/lora-bold-webfont.ttf Binary files differnew file mode 100755 index 000000000..8434920ed --- /dev/null +++ b/web/static/fonts/lora-bold-webfont.ttf diff --git a/web/static/fonts/lora-bold-webfont.woff b/web/static/fonts/lora-bold-webfont.woff Binary files differnew file mode 100755 index 000000000..7b95a3eb2 --- /dev/null +++ b/web/static/fonts/lora-bold-webfont.woff diff --git a/web/static/fonts/lora-bold-webfont.woff2 b/web/static/fonts/lora-bold-webfont.woff2 Binary files differnew file mode 100755 index 000000000..67be51867 --- /dev/null +++ b/web/static/fonts/lora-bold-webfont.woff2 diff --git a/web/static/fonts/lora-bolditalic-webfont.eot b/web/static/fonts/lora-bolditalic-webfont.eot Binary files differnew file mode 100755 index 000000000..954d98020 --- /dev/null +++ b/web/static/fonts/lora-bolditalic-webfont.eot diff --git a/web/static/fonts/lora-bolditalic-webfont.svg b/web/static/fonts/lora-bolditalic-webfont.svg new file mode 100755 index 000000000..a431e6ea6 --- /dev/null +++ b/web/static/fonts/lora-bolditalic-webfont.svg @@ -0,0 +1,5468 @@ +<?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="lorabold_italic" horiz-adv-x="1365" > +<font-face units-per-em="2048" ascent="1638" descent="-410" /> +<missing-glyph horiz-adv-x="539" /> +<glyph horiz-adv-x="0" /> +<glyph unicode="
" horiz-adv-x="0" /> +<glyph horiz-adv-x="600" /> +<glyph horiz-adv-x="600" /> +<glyph unicode=" " horiz-adv-x="539" /> +<glyph unicode="	" horiz-adv-x="539" /> +<glyph unicode=" " horiz-adv-x="539" /> +<glyph unicode="!" horiz-adv-x="522" d="M89 126q1 33 14.5 62.5t35 51.5t48.5 34.5t57 12.5q32 0 58 -12.5t44.5 -34.5t27.5 -51.5t8 -62.5q-2 -33 -15.5 -62t-35.5 -50.5t-49.5 -34t-56.5 -12.5q-30 0 -55.5 12.5t-44 34t-28.5 50.5t-8 62zM151 1281q-1 33 8.5 66t29 59.5t49 43.5t68.5 17q41 0 69 -17 t44 -43.5t21 -59.5t0 -66l-119 -844h-137z" /> +<glyph unicode=""" horiz-adv-x="664" d="M134 1006l8 461h194l-42 -461h-160zM427 1006l8 461h194l-42 -461h-160z" /> +<glyph unicode="#" horiz-adv-x="1724" d="M36 318l53 176h335l123 410h-345l53 176h341l111 387h200l-108 -387h355l111 387h200l-108 -387h343v-2l-51 -174h-340l-118 -410h342l-52 -176h-337l-98 -351h-213l101 351h-349l-98 -351h-212l101 351h-340zM632 494h350l123 410h-354z" /> +<glyph unicode="$" horiz-adv-x="1167" d="M73 -19l25 479h134q19 -172 108.5 -257.5t232.5 -85.5q55 0 98 15t73 42t47 64.5t20 81.5q3 52 -20 89.5t-63 66.5t-93 52.5t-110 47.5q-87 36 -165 81t-135.5 104.5t-89.5 136.5t-27 178q3 61 24.5 127t71 122.5t131 95.5t204.5 45l13 248h192l-16 -268q89 -25 161 -77 h2l-3 84h158l-25 -479h-134q-9 86 -31.5 152t-60 111t-90.5 68t-125 22q-44 0 -80 -14.5t-62.5 -39.5t-42 -58.5t-17.5 -71.5q-3 -48 11 -84.5t48.5 -69t92.5 -65t144 -72.5q49 -23 100 -48.5t98 -55.5t88 -66t70.5 -81t44.5 -99.5t12 -121.5q-4 -80 -33.5 -149t-82 -121.5 t-127.5 -87.5t-170 -48l-16 -289h-187l13 289q-64 10 -129 33.5t-125 60.5h-2l3 -87h-158z" /> +<glyph unicode="%" horiz-adv-x="1813" d="M91 1059q4 72 32.5 144t80 129.5t124.5 94.5t165 40q94 1 164 -33t116 -89.5t67 -126t17 -141.5q-4 -81 -37 -155.5t-87 -131.5t-125 -91t-152 -34q-95 0 -165 33t-116 88t-67 126t-17 147zM216 90l1239 1377l142 -135l-1255 -1366zM336 1061q0 -38 6 -83t20.5 -83.5 t39.5 -64t63 -25.5q42 0 70.5 29t45 70.5t23.5 88.5t7 83q0 45 -6 90t-20.5 81t-38.5 58t-60 22q-48 0 -77 -31t-45.5 -74t-22 -88t-5.5 -73zM970 361q4 72 32.5 144t80 130t124 95t164.5 39q94 2 164.5 -32t116 -90t67 -126.5t17.5 -141.5q-5 -81 -36.5 -155.5 t-84.5 -131.5t-125 -91t-156 -34q-95 0 -165 33t-115.5 88t-66.5 126t-17 147zM1215 363q0 -38 6 -83t20.5 -83.5t39.5 -64t63 -25.5q42 0 70.5 29t45 70.5t23.5 88.5t7 83q0 45 -6 90t-20.5 81t-38.5 58t-60 22q-48 0 -77 -31t-45.5 -74t-22 -88t-5.5 -73z" /> +<glyph unicode="&" horiz-adv-x="1403" d="M46 378q0 75 28 140.5t78 119t119.5 92t152.5 58.5v2q-63 12 -113.5 37.5t-86 60.5t-54.5 79t-19 94q0 98 39 174t105.5 128t155 78.5t186.5 25.5q94 -1 169 -21.5t127.5 -55.5t80.5 -82.5t28 -101.5q0 -29 -9.5 -54.5t-27 -45.5t-42 -31.5t-55.5 -11.5q-58 0 -92.5 33 t-37.5 89q0 9 1.5 21.5t5 26t8.5 25.5t12 20q-24 24 -59 37t-87 12q-38 -1 -74 -17.5t-65 -47t-47.5 -75t-21.5 -101.5q-2 -40 8.5 -82.5t38.5 -77.5t76.5 -57.5t122.5 -22.5q14 0 68 2l-8 -144l-71 2q-72 2 -130.5 -18.5t-100.5 -59t-67 -92.5t-29 -119q-5 -75 16.5 -132.5 t61 -96.5t94 -59t114.5 -20q99 0 169.5 30.5t117.5 81t72.5 115.5t36.5 135h-1q-20 0 -46.5 -4t-58 -14.5t-66.5 -28t-71 -45.5l-68 73q44 65 82 106t79.5 64t90.5 31.5t115 8.5q32 0 64 2.5t64 12.5t65.5 29.5t68.5 53.5l79 -68q-26 -46 -51.5 -82.5t-56.5 -62.5t-70.5 -43 t-93.5 -24q-6 -55 -22 -114.5t-45.5 -116.5t-74 -108.5t-107 -90t-144.5 -61t-186 -22.5q-114 0 -212.5 24.5t-171.5 75.5t-115 128.5t-42 182.5z" /> +<glyph unicode="'" horiz-adv-x="385" d="M136 1006l6 461h209l-43 -461h-172z" /> +<glyph unicode="(" horiz-adv-x="607" d="M41 489q6 114 32 224t65.5 213.5t90 197t106 174t113 146.5t110.5 112l70 -71q-56 -70 -101 -158.5t-79 -183.5t-59 -192t-41.5 -184t-25 -159.5t-11.5 -118.5t-1.5 -116.5t9 -155.5t22.5 -179t40 -186.5t60.5 -179t84.5 -156.5l-78 -71q-48 47 -98.5 110.5t-98 141.5 t-88.5 169t-70 191.5t-43.5 209t-8.5 222.5z" /> +<glyph unicode=")" horiz-adv-x="607" d="M-37 -484q56 70 101 158.5t79 183.5t59 192t41.5 184t25 159.5t11.5 118.5t1.5 116.5t-9 155.5t-22.5 179t-40 186.5t-60.5 179t-84.5 156.5l78 71q48 -47 98.5 -110.5t98 -141.5t88.5 -169t70 -191.5t43.5 -209t8.5 -222.5t-32 -224t-65.5 -213.5t-90 -197t-106 -174 t-113 -146.5t-110.5 -112z" /> +<glyph unicode="*" horiz-adv-x="1048" d="M99 1102q0 30 9.5 50t24 32t31.5 17.5t32 5.5q25 0 54.5 -6t66.5 -22.5t83.5 -45t105.5 -73.5q-23 79 -31.5 136.5t-8.5 99.5q0 28 3.5 58.5t15 55.5t33.5 41t59 16q30 0 48.5 -11t29 -28.5t14 -40.5t3.5 -47q0 -44 -13.5 -111t-53.5 -169q61 43 108.5 71t85 44.5t67 23 t54.5 6.5q16 0 33.5 -5t31 -16.5t22.5 -30.5t9 -47q0 -23 -10.5 -41t-27.5 -31t-38 -22.5t-43 -16.5q-44 -14 -107 -22t-160 -8q75 -57 119 -99.5t67 -76.5q17 -24 28.5 -51t11.5 -53q0 -16 -8.5 -33.5t-22.5 -32.5t-33.5 -24.5t-40.5 -9.5q-34 0 -60 23.5t-46 53.5 q-23 36 -48.5 95t-48.5 150q-35 -92 -64.5 -148t-56.5 -91q-25 -31 -54.5 -56.5t-64.5 -25.5q-20 0 -37 8.5t-30.5 22t-21 30t-7.5 31.5q0 27 14.5 54t34.5 52q28 35 77.5 80.5t131.5 100.5q-98 0 -160 8.5t-103 22.5q-21 7 -40.5 16.5t-34.5 22t-24 29.5t-9 38z" /> +<glyph unicode="+" horiz-adv-x="1037" d="M60 557l10 187l356 -2l19 370h195l-19 -370l363 -2l-10 -180l-363 -1l-20 -391h-195l20 390z" /> +<glyph unicode="," horiz-adv-x="509" d="M56 127q1 30 13 58t32.5 49t48.5 34t61 13q47 1 81.5 -15.5t56.5 -45.5t31.5 -69t7.5 -86q-5 -99 -57 -214t-155 -233l-76 57q17 20 39.5 56.5t43 80.5t35.5 92.5t16 93.5q-15 -5 -24 -6t-20 -1q-27 0 -52.5 8t-44 24.5t-29 42t-8.5 61.5z" /> +<glyph unicode="-" horiz-adv-x="968" d="M103 535l11 214h754l-11 -207z" /> +<glyph unicode="." horiz-adv-x="478" d="M57 126q2 33 15.5 62.5t35.5 51.5t49.5 34.5t57.5 12.5q32 0 58.5 -12.5t45 -34.5t28 -51.5t7.5 -62.5t-13.5 -62t-31.5 -50.5t-47.5 -34t-60.5 -12.5q-34 0 -61 12.5t-46 34t-29 50.5t-8 62z" /> +<glyph unicode="/" horiz-adv-x="1362" d="M-40 -450l1253 1997l173 -120l-1282 -1982z" /> +<glyph unicode="0" horiz-adv-x="1279" d="M84 711q5 86 25.5 175.5t56.5 173.5t87.5 158t118 129.5t147.5 87.5t176 32q99 0 177 -31.5t136.5 -86t99 -127.5t64.5 -155.5t32.5 -171.5t4.5 -174q-5 -85 -24.5 -174t-55 -172.5t-85.5 -158t-115.5 -130t-146 -87.5t-175.5 -32q-104 0 -184.5 31.5t-140.5 85.5 t-100 126.5t-63 155.5t-31.5 171t-3.5 174zM388 606.5q0 -75.5 6.5 -147.5t21.5 -136t42.5 -112t68.5 -76t100 -28q73 0 122.5 46.5t81.5 125.5t48 182t22 216q5 83 5 163.5t-6.5 153t-21.5 133.5t-41 106t-64 70t-91 25q-74 0 -126 -47t-86.5 -126t-53 -183.5t-24.5 -218.5 q-4 -71 -4 -146.5z" /> +<glyph unicode="1" horiz-adv-x="813" d="M35 1124l481 343h124l-59 -1131q-2 -28 -4 -55t-4 -51.5t-4.5 -44.5t-5.5 -33l154 6l-8 -158h-583l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l43 821l-230 -133z" /> +<glyph unicode="2" horiz-adv-x="1070" d="M38 0q6 106 38 189.5t80.5 152t109 126t122.5 112.5q78 69 134.5 131t93 120t55 113.5t21.5 110.5q3 48 -4.5 96t-29 86t-59 61t-95.5 23q-55 0 -100.5 -25.5t-68.5 -60.5q20 -23 28.5 -55.5t6.5 -54.5q-2 -20 -10.5 -42.5t-26.5 -41.5t-45.5 -31.5t-65.5 -11.5 q-32 1 -55.5 13t-39 32t-22.5 47t-5 57q3 46 35 102t91 104.5t144 81t193 32.5q82 0 163.5 -20t144.5 -66t100.5 -119.5t31.5 -181.5q-3 -52 -24.5 -107.5t-74.5 -123.5t-145.5 -154t-237.5 -200q-118 -93 -175.5 -168t-69.5 -116l401 -11q34 -1 63 3.5t50 19t34 41t15 69.5 h130l-34 -333h-897z" /> +<glyph unicode="3" horiz-adv-x="1119" d="M42 269q1 30 12.5 58t31 49t45.5 34t58 14q38 1 63 -11.5t39.5 -32.5t19.5 -43.5t4 -44.5q-1 -19 -10 -45.5t-27 -48.5q9 -19 28 -34t43 -25.5t52 -16t57 -5.5q64 0 113.5 20.5t84 57t53.5 86t22 107.5q3 52 -8.5 106t-43.5 97t-89.5 70t-145.5 25q-7 0 -21 -0.5 t-30 -1.5t-31 -2t-24 -2l7 147q17 -2 30 -2h30q67 0 121 19t92.5 52.5t60.5 80.5t26 104q4 53 -4 97t-29 76t-57 50t-88 18q-28 0 -54 -7.5t-47.5 -19.5t-38.5 -27t-26 -31q17 -23 23 -52t4 -49q-1 -18 -9.5 -41t-26 -43.5t-44.5 -34t-65 -12.5q-32 1 -55.5 13t-39 32 t-23 47t-5.5 57q3 45 32.5 100t85.5 102t138.5 79t190.5 32q95 0 176.5 -19t140 -62.5t89.5 -113t26 -169.5q-2 -40 -20.5 -88.5t-56.5 -94t-98 -83t-145 -55.5v-2q97 -17 166 -54t112.5 -87.5t62.5 -111.5t16 -126q-6 -105 -50 -186t-118.5 -136t-176 -83.5t-221.5 -28.5 q-116 0 -198.5 27t-134 70.5t-75 97t-20.5 107.5z" /> +<glyph unicode="4" horiz-adv-x="1091" d="M-1 370l11 193l744 904h124l-48 -911l200 -1l-10 -185h-200l-1 -34q-2 -28 -4 -55t-4 -51.5t-4.5 -44.5t-5.5 -33l154 6l-8 -158h-579l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l3 57h-534zM199 561l344 -2l26 452h-2z" /> +<glyph unicode="5" horiz-adv-x="1084" d="M60 247q1 30 12.5 58t30 49.5t44.5 35t58 14.5q39 1 64 -11.5t39.5 -32.5t20 -43.5t4.5 -44.5q-2 -17 -8 -40.5t-20 -43.5q6 -17 23.5 -31t39.5 -24t47 -15.5t46 -5.5q61 0 106 26t75.5 67t46 93t18.5 105q2 31 1.5 69t-7 77.5t-21 77t-41 66.5t-66.5 47t-97 18 q-44 0 -110 -16.5t-140 -58.5l-84 67l28 684h530q35 0 64 4.5t50 19t33.5 40.5t14.5 69h130l-33 -333l-644 -11l-19 -365q24 10 55 19t64.5 15.5t67.5 10.5t65 4q127 0 218.5 -37.5t149.5 -101t83.5 -147t21.5 -174.5q-6 -119 -56 -209t-127 -150t-173 -90.5t-196 -30.5 q-101 0 -178 25.5t-129.5 65.5t-78.5 90t-23 99z" /> +<glyph unicode="6" horiz-adv-x="1146" d="M85 660q3 59 16 141.5t41 172.5t72.5 178t110 158t154 113.5t204.5 43.5q97 0 166 -25.5t113 -65.5t63.5 -89t16.5 -95q-1 -27 -11 -53.5t-27.5 -47t-42.5 -33t-56 -12.5q-38 0 -63.5 12.5t-40 32t-20 42t-4.5 43.5q1 17 8 43t25 46q-15 25 -50.5 43t-86.5 15 q-50 -3 -89 -27.5t-70 -64.5t-53 -92t-38 -109t-25.5 -117t-13.5 -115q17 19 47 39t66.5 36.5t77 27.5t78.5 12q113 3 193 -31t129 -97t69.5 -151.5t14.5 -193.5q-5 -97 -46.5 -183t-111 -150.5t-163 -102t-202.5 -37.5q-137 0 -228 48.5t-143.5 139t-70.5 218.5t-9 287z M373.5 511q1.5 -56 8 -112t19.5 -108t34 -92t50.5 -64t69.5 -24q54 0 90 23.5t59 62.5t33.5 89t13.5 103q2 31 2 69.5t-4 78.5t-14 78.5t-29 68.5t-48.5 48t-71.5 18q-33 0 -64 -10.5t-59 -29t-50.5 -43t-37.5 -52.5q-3 -48 -1.5 -104z" /> +<glyph unicode="7" horiz-adv-x="942" d="M51 1085l34 349h872l-10 -186q-51 -94 -93 -184t-77.5 -179t-66.5 -178.5t-60.5 -183t-59 -193t-62.5 -208.5q-9 -28 -21.5 -56t-30.5 -50t-43 -35.5t-59 -13.5q-31 0 -52.5 9.5t-35 25t-19.5 36t-6 42.5q0 17 3 35.5t11.5 45.5t24.5 66.5t42.5 97.5t64 138.5t90 189.5 t121 250.5t156.5 322.5l-431 5q-35 0 -64 -6.5t-50 -23t-33.5 -45t-14.5 -71.5h-130z" /> +<glyph unicode="8" horiz-adv-x="1151" d="M89 300q0 63 24.5 122t65 111.5t93 96t108.5 75.5v2q-63 41 -106.5 86.5t-70.5 92t-39 91.5t-12 86q0 69 21.5 126t57.5 101.5t84.5 78t102.5 55t110 32.5t109 11q77 0 150 -22t129.5 -64t91 -104t34.5 -158q-3 -53 -27.5 -103t-62 -93.5t-83 -79.5t-89.5 -61v-2 q145 -92 213.5 -193.5t68.5 -213.5q0 -106 -44 -182.5t-117.5 -126t-168.5 -73.5t-197 -24q-47 0 -98 7.5t-100.5 23.5t-94.5 42t-79 63t-54 86t-20 111zM339 317q0 -45 15.5 -82.5t43.5 -65t67 -43t86 -15.5q48 0 87 15.5t66.5 42.5t43.5 63t18 77q0 48 -12.5 88t-41.5 80 t-76.5 79.5t-118.5 75.5q-49 -36 -83 -79.5t-55 -87t-30.5 -82.5t-9.5 -66zM440 1133q0 -47 16.5 -86t45.5 -73.5t67 -63t82 -46.5q40 29 71.5 64t53 71.5t33 72t11.5 65.5q0 45 -13.5 80t-37.5 58.5t-56 35.5t-68 12q-45 0 -81.5 -15.5t-63.5 -41.5t-42.5 -60.5 t-17.5 -72.5z" /> +<glyph unicode="9" horiz-adv-x="1148" d="M102 958q0 111 37 204t104.5 161t162 106t210.5 38q126 0 214 -45t143 -125t79.5 -191.5t24.5 -244.5q0 -53 -4 -119t-15.5 -139t-31 -148.5t-51 -146t-76 -132.5t-105 -108.5t-139 -73.5t-177.5 -27q-94 0 -162 20.5t-112 56t-65 84t-21 104.5q1 30 12 58t29.5 50 t44.5 35t57 13q36 0 59.5 -11.5t38 -29t20 -39t5.5 -41.5q0 -27 -7 -49.5t-26 -46.5q14 -23 46 -40.5t78 -17.5q78 0 134.5 44.5t93.5 118t55.5 167.5t19.5 193q-19 -21 -50 -41.5t-69.5 -37t-80 -26.5t-81.5 -10q-104 0 -178.5 32.5t-122.5 90.5t-71 138t-23 176zM409 982 q0 -48 6.5 -100.5t25 -96.5t51.5 -72.5t87 -28.5q33 0 64 10.5t58 29t49 43t37 52.5q3 54 3 107q0 82 -9.5 154t-31 126t-56.5 85.5t-86 31.5q-56 0 -93.5 -31t-61 -79.5t-33.5 -109.5t-10 -121z" /> +<glyph unicode=":" horiz-adv-x="536" d="M102 126q2 33 15.5 62.5t35.5 51.5t49.5 34.5t57.5 12.5q32 0 58.5 -12.5t45 -34.5t28 -51.5t7.5 -62.5t-13.5 -62t-31.5 -50.5t-47.5 -34t-60.5 -12.5q-34 0 -61 12.5t-46 34t-29 50.5t-8 62zM122 951q2 33 15.5 62.5t35.5 51.5t49.5 34.5t57.5 12.5q32 0 58.5 -12.5 t45 -34.5t28 -51.5t7.5 -62.5t-13.5 -62t-31.5 -50.5t-47.5 -34t-60.5 -12.5q-34 0 -61 12.5t-46 34t-29 50.5t-8 62z" /> +<glyph unicode=";" horiz-adv-x="553" d="M92 127q1 30 13 58t32.5 49t48.5 34t61 13q47 1 81.5 -15.5t56.5 -45.5t31.5 -69t7.5 -86q-5 -99 -57 -214t-155 -233l-76 57q17 20 39.5 56.5t43 80.5t35.5 92.5t16 93.5q-15 -5 -24 -6t-20 -1q-27 0 -52.5 8t-44 24.5t-29 42t-8.5 61.5zM130 951q2 33 15.5 62.5 t35.5 51.5t49.5 34.5t57.5 12.5q32 0 58.5 -12.5t45 -34.5t28 -51.5t7.5 -62.5t-13.5 -62t-31.5 -50.5t-47.5 -34t-60.5 -12.5q-34 0 -61 12.5t-46 34t-29 50.5t-8 62z" /> +<glyph unicode="<" horiz-adv-x="1093" d="M56 547l10 186l944 409l-12 -211l-671 -285v-2l642 -285l-12 -213z" /> +<glyph unicode="=" horiz-adv-x="1169" d="M109 349l11 192l921 -4l-9 -184zM129 735l11 191l921 -3l-9 -185z" /> +<glyph unicode=">" horiz-adv-x="1092" d="M87 146l12 211l671 285v2l-642 285l12 213l901 -401l-10 -186z" /> +<glyph unicode="?" horiz-adv-x="993" d="M93 1163q3 55 38 109t94.5 97.5t139 70.5t171.5 27q122 0 203.5 -28t130.5 -74t68 -104.5t16 -119.5q-4 -72 -38.5 -133t-84.5 -113.5t-108 -97t-107 -83.5t-82.5 -73.5t-35.5 -67.5q-1 -17 7 -30.5t25 -21.5t44 -8.5t65 8.5l27 -105q-27 -14 -55 -22.5t-55 -13.5 t-51.5 -7t-43.5 -2q-33 0 -64.5 7.5t-55.5 24.5t-38 44t-12 66q1 25 9 48t27.5 51t54 64.5t89.5 87.5q38 36 70.5 71t57.5 74.5t40.5 85.5t18.5 105q2 48 -4.5 89t-26 71t-53 47t-85.5 17q-25 0 -49.5 -6t-45.5 -15.5t-37.5 -21t-26.5 -23.5q10 -11 16.5 -25.5t10.5 -30 t5.5 -30.5t0.5 -25q-2 -21 -12.5 -44.5t-29 -43t-45 -32t-62.5 -10.5q-63 3 -93.5 44t-27.5 102zM322 126q1 33 15 62.5t35.5 51.5t49 34.5t57.5 12.5q32 0 58.5 -12.5t45 -34.5t28 -51.5t8.5 -62.5q-2 -33 -16 -62t-36 -50.5t-50 -34t-57 -12.5q-30 0 -56 12.5t-45 34 t-29 50.5t-8 62z" /> +<glyph unicode="@" horiz-adv-x="1570" d="M64 525q5 87 32 178.5t74.5 178t116 163.5t156 134.5t193.5 91t229 33.5q112 0 204.5 -27t165.5 -75t126 -113t86 -141t46.5 -159.5t6.5 -167.5t-30 -152.5t-57.5 -122t-78 -92.5t-90 -64t-94 -36t-89.5 -8q-37 2 -73 14t-62 41.5t-38.5 79.5t-1.5 129 q-31 -69 -65.5 -117.5t-70.5 -79t-71.5 -44t-68.5 -13.5q-43 0 -80.5 17t-65 53t-41.5 92t-10 135q5 100 40 196.5t97.5 173t152 123.5t204.5 47q45 0 107 -10.5t130 -32.5q-9 -46 -19 -100t-20.5 -110t-20 -112t-17.5 -105.5t-13.5 -90.5t-6.5 -67q-1 -23 1 -44.5t10 -38.5 t23.5 -27.5t40.5 -10.5q40 0 73 19.5t58.5 51.5t44 73.5t31.5 85t19.5 86.5t8.5 79q7 140 -28.5 247.5t-104.5 181t-165.5 111t-209.5 37.5q-88 0 -167 -26t-147.5 -72t-124 -110t-96.5 -139t-65 -159.5t-28 -172.5q-8 -155 35.5 -274.5t124.5 -200.5t192 -123t237 -42 q62 0 129.5 13.5t133.5 40t128.5 67t114.5 94.5l43 -55q-121 -128 -270 -192t-310 -68q-125 -3 -228 23t-184 74t-140.5 116t-97 150t-54 174.5t-11.5 190.5zM611 446q-4 -72 13 -110.5t49 -38.5q26 0 54 27.5t54.5 73.5t51.5 105.5t45 125t34 131.5t20 124q-13 5 -35 7 t-40 0q-53 -5 -97 -48t-75.5 -107.5t-50.5 -141.5t-23 -148z" /> +<glyph unicode="A" d="M-24 0l7 141q42 0 73 19.5t54.5 51.5t42.5 74.5t39 88.5l457 1095h137l379 -1116q5 -15 12.5 -40t14.5 -53.5t12.5 -57t7.5 -51.5l118 6l-8 -158h-547l7 135q43 0 66.5 13.5t32 38t4.5 57.5t-16 72l-36 112l-449 -8l-38 -96q-6 -14 -14.5 -35t-18.5 -44.5t-20.5 -46 t-19.5 -40.5l150 6l-9 -164h-438zM444 573h345l-80 257q-23 74 -40 148t-24 131h-2q-8 -35 -32 -104t-62 -166z" /> +<glyph unicode="B" horiz-adv-x="1349" d="M72 0l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l41 785q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33q-17 -1 -39 -2l-44 -2t-41 -1.5t-30 -0.5l8 158l563 4h10q117 0 210 -22q97 -23 162 -70q66 -48 96 -118q23 -53 23 -119q0 -22 -2 -45q-5 -44 -26 -87.5t-58.5 -81.5 t-92 -69t-127.5 -50v-2q101 -16 173 -51.5t117.5 -84t65.5 -108.5q17 -52 18 -106q0 -8 -1 -17q-5 -100 -45.5 -176t-109 -127.5t-160 -77.5t-199.5 -26h-692zM508 145q54 0 103 0.5t98 2.5q62 3 108 23.5t76.5 55.5t47 82.5t19.5 104.5q1 11 1 22q1 56 -17 96 q-20 48 -56 76.5t-83 40.5t-96 12h-88.5t-77.5 -2l-17 -333q-2 -28 -4 -54.5t-4 -50.5t-4.5 -43.5t-5.5 -32.5zM551 804l107 3q65 1 110 23t74 59.5t43 87t17 105.5v18q0 49 -14 84q-17 41 -46.5 66t-67.5 35q-35 9 -70 9h-7q-26 -1 -48 -6t-39 -22t-28 -51t-14 -93z" /> +<glyph unicode="C" horiz-adv-x="1414" d="M78 696q5 93 30 186.5t69.5 179t108 159.5t146 129t183.5 86t220 31q40 0 84.5 -6.5t89.5 -19.5t89 -31.5t84 -43.5h2l-3 87h158l-25 -479h-134q-19 173 -100.5 263t-225.5 91q-107 0 -189.5 -50.5t-140 -133.5t-89 -189t-37.5 -217q-2 -31 -1 -61q0 -99 17 -185 q23 -112 74.5 -194t130 -128.5t182.5 -47.5q61 0 126 14t129.5 45t125 79t112.5 116l81 -81q-80 -104 -165.5 -168t-168 -99.5t-159.5 -48t-140 -12.5q-158 0 -284.5 56.5t-213.5 154.5q-86 99 -130 232q-37 112 -37 239q0 23 1 47z" /> +<glyph unicode="D" horiz-adv-x="1546" d="M72 0l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l41 785q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33q-17 -1 -39 -2l-44 -2t-41 -1.5t-30 -0.5l8 158l592 2q135 0 243.5 -28t192.5 -78t144 -118t97 -146q36 -78 52 -164q12 -68 13 -136q0 -17 -1 -35q-4 -83 -27 -169.5 t-67 -168t-110.5 -153t-156.5 -125t-206 -84.5t-259 -31h-582zM509 152q15 1 40.5 1t54 -1t56 -1.5t45.5 -0.5q112 0 195 45.5t139 121t86 172.5t35 199q2 36 2 70q0 113 -20 201q-26 114 -83 188.5t-141 111.5t-190 40h-12q-30 0 -54 -4q-28 -5 -48.5 -23t-31.5 -53 t-14 -94l-42 -789q-1 -28 -3 -55t-4 -51.5t-4.5 -44.5t-5.5 -33z" /> +<glyph unicode="E" horiz-adv-x="1276" d="M72 0l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l41 785q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-154 -6l8 158h1020l-9 -397h-135q1 14 1 26q0 65 -18 109q-20 52 -54 81t-78 39q-40 9 -78 9h-8l-74 -2q-32 -1 -58 -6.5t-44.5 -23.5t-29.5 -53t-14 -95l-16 -307h241 v177h158l-26 -498h-135q1 11 1 22q0 49 -12 79q-14 37 -40 55q-27 17 -63 21q-28 3 -60 3h-18l-54 -1l-17 -336q-2 -28 -4 -54.5t-4 -50.5t-4.5 -43.5t-5.5 -32.5l275 1q45 0 90.5 15t83 49.5t62 91t29.5 139.5h135l-36 -451h-1076z" /> +<glyph unicode="F" horiz-adv-x="1159" d="M72 0l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l41 785q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-154 -6l8 158h1020l-9 -397h-135q1 14 1 26q0 65 -18 109q-20 52 -54 81t-78 39q-40 9 -78 9h-8l-74 -2q-32 -1 -58 -6.5t-44.5 -23.5t-29.5 -53t-14 -95l-19 -357h212 v177h158l-26 -498h-135q1 12 1 22q1 48 -11 79q-14 37 -40 55q-27 17 -63 21q-28 3 -60 3h-18l-25 -1l-15 -286q-2 -28 -4 -55t-4 -51.5t-4.5 -44.5t-5.5 -33l182 6l-8 -158h-611z" /> +<glyph unicode="G" horiz-adv-x="1548" d="M79 696q5 93 29.5 186.5t68.5 179t107 159.5t145 129t183 86t220 31q40 0 90 -6.5t102 -19.5t101.5 -31.5t89.5 -43.5h2l-3 87h158l-25 -479h-134q-9 86 -40 150.5t-78.5 107t-109.5 64.5t-134 22q-107 0 -189 -49t-139 -130t-88 -185.5t-37 -215.5q-2 -32 -2 -62 q0 -97 18 -182q22 -112 72.5 -193t128.5 -126t183 -45q30 0 69 3.5t80.5 10t80.5 17t68 24.5l10 190q1 28 3 55t4 51.5t4.5 44.5t5.5 33l-154 -6l8 158h539l-7 -135q-35 -2 -60.5 -8t-43.5 -24.5t-28 -53t-13 -92.5l-17 -329h-50q-59 0 -118.5 -16t-125.5 -35t-143 -35 t-171 -16q-167 0 -294 56.5t-211 155t-124 231.5q-32 111 -32 235q0 25 1 51z" /> +<glyph unicode="H" horiz-adv-x="1642" d="M72 0l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l41 785q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-154 -6l8 158h583l-7 -135q-35 -2 -62 -7t-47 -22t-31.5 -52t-14.5 -97l-17 -321h564l15 298q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-154 -6l8 158h583l-7 -135 q-35 -2 -62 -7t-47 -22t-31.5 -52t-14.5 -97l-41 -785q-2 -28 -4 -55t-4 -51.5t-4.5 -44.5t-5.5 -33l154 6l-8 -158h-583l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l18 332l-565 -7l-15 -302q-2 -28 -4 -55t-4 -51.5t-4.5 -44.5t-5.5 -33l154 6l-8 -158h-583z" /> +<glyph unicode="I" horiz-adv-x="787" d="M72 0l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l41 785q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-154 -6l8 158h583l-7 -135q-35 -2 -62 -7t-47 -22t-31.5 -52t-14.5 -97l-41 -785q-2 -28 -4 -55t-4 -51.5t-4.5 -44.5t-5.5 -33l154 6l-8 -158h-583z" /> +<glyph unicode="J" horiz-adv-x="911" d="M-23 186q1 33 12 63t29.5 53.5t45.5 38t62 16.5h12q31 0 54 -9q26 -11 43 -30t24.5 -43.5t7.5 -50.5q-2 -38 -22 -76q8 -20 28.5 -27t31.5 -7q44 0 69 38t30 125l43 821q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-164 -6l8 158h593l-7 -135q-35 -2 -62 -7t-47 -22 t-31.5 -52t-14.5 -97l-32 -600q-8 -148 -40.5 -253t-89.5 -172t-137.5 -98t-183.5 -31q-60 0 -112.5 16.5t-90.5 45.5t-59 69q-18 35 -18 76v12z" /> +<glyph unicode="K" horiz-adv-x="1456" d="M72 0l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l41 785q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-154 -6l8 158h583l-7 -135q-35 -2 -62 -7t-47 -22t-31.5 -52t-14.5 -97l-17 -312h149q232 363 252 391t38 49.5t32 32.5v2l-130 -8l8 158h501l-7 -135q-35 -2 -73 -9.5 t-79.5 -29t-85.5 -62.5t-90 -109l-212 -314l-1 -3q40 -25 70 -54.5t52 -63.5l193 -297q29 -44 60 -83.5t63 -69.5t65.5 -48.5t68.5 -20.5l-7 -135h-313q-12 1 -36 22t-51.5 52.5t-55 67.5t-46.5 66l-187 295q-13 19 -27.5 40t-28.5 40.5t-28.5 36t-27.5 26.5l-74 -1 l-16 -309q-2 -28 -4 -55t-4 -51.5t-4.5 -44.5t-5.5 -33l154 6l-8 -158h-583z" /> +<glyph unicode="L" horiz-adv-x="1241" d="M72 0l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l41 785q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-154 -6l8 158h583l-7 -135q-35 -2 -62 -7t-47 -22t-31.5 -52t-14.5 -97l-41 -785q-2 -28 -4 -54.5t-4 -50.5t-4.5 -43.5t-5.5 -32.5l275 1q121 1 194.5 84.5t82.5 250.5 h136l-38 -491h-1087z" /> +<glyph unicode="M" horiz-adv-x="1986" d="M65 0l8 135q34 2 61 7t46.5 22t31 52t16.5 97l53 785q2 28 4 55t4.5 51.5t5 44.5t5.5 33l-156 -6l9 158h439l281 -796q34 -95 55.5 -175.5t41.5 -154.5h2q30 71 58 142t56 137l353 847h477l-7 -135q-35 -2 -63.5 -7t-48.5 -22t-31.5 -52t-12.5 -97l-10 -785q0 -28 -2 -55 t-4.5 -51.5t-5.5 -44.5t-6 -33l155 6l-9 -158h-573l8 135q34 2 62.5 7t48.5 22t31.5 52t12.5 97l6 434q0 18 0.5 59.5t0.5 93.5t0.5 107.5t0.5 102.5h-2l-469 -1130h-185l-250 674q-11 28 -26.5 78t-32.5 110t-33.5 126t-27.5 128h-2q-4 -105 -6.5 -201t-8.5 -189l-22 -370 q-2 -28 -4 -55t-4.5 -51.5t-5 -44.5t-5.5 -33l156 6l-9 -158h-467z" /> +<glyph unicode="N" horiz-adv-x="1581" d="M74 0l8 135q34 2 61.5 7t47 22t31.5 52t15 97l36 785q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-155 -6l9 158h321q633 -860 663.5 -907.5t53.5 -82.5h2l34 654q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-155 -6l9 158h466l-7 -135q-35 -2 -62.5 -7t-47 -22t-31.5 -52 t-15 -97l-60 -1141h-174l-611 842q-24 34 -51 72.5t-53 80.5h-2l-30 -639q-2 -28 -4 -55t-4 -51.5t-4.5 -44.5t-5.5 -33l155 6l-9 -158h-467z" /> +<glyph unicode="O" horiz-adv-x="1560" d="M81 717q4 86 27.5 175t67 172t105.5 156.5t144.5 128.5t184 86.5t222.5 31.5q124 0 223 -32t174 -87t127.5 -128.5t85 -156.5t44.5 -172q9 -67 10 -133q0 -21 -1 -41q-4 -85 -28 -173.5t-66.5 -171.5t-104.5 -157t-144 -129t-183 -87t-222 -32q-130 0 -231 31 t-176.5 84.5t-127 126t-82.5 155.5q-30 84 -42 174q-8 63 -9 125q0 27 2 54zM397 741q-2 -27 -2 -55q-1 -39 3 -81q6 -72 22 -142.5t45 -135t72 -114t102 -78.5q57 -28 132 -28h5q71 0 127.5 25.5t100 68.5t75.5 100t53.5 121t33 130.5t14.5 129.5q2 38 2 74q0 99 -14 186 q-19 119 -65.5 205.5t-122.5 134.5q-72 45 -171 45h-12q-70 -2 -126 -28.5t-99.5 -70.5t-75 -102t-52.5 -122.5t-32.5 -132t-14.5 -130.5z" /> +<glyph unicode="P" horiz-adv-x="1295" d="M72 0l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l41 785q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-154 -6l8 158l578 4h10q129 0 233 -26q108 -27 181 -83.5t109 -144.5q28 -69 28 -160q0 -25 -2 -51q-7 -82 -47 -161.5t-114 -143.5t-183.5 -104.5t-254.5 -44.5 q-47 -2 -80 -2t-69 1l-10 -181q-1 -28 -3 -55.5t-4 -52t-4.5 -44.5t-5.5 -33l174 6l-8 -158h-603zM544 671q22 -2 45 -4t47 -2q169 0 249.5 85t88.5 242q1 17 1 33q0 79 -21 129q-25 60 -65.5 91t-87.5 40t-86 9q-33 0 -58.5 -5t-44.5 -22t-30 -49t-14 -86z" /> +<glyph unicode="Q" horiz-adv-x="1564" d="M80 717q4 86 28 175t67.5 172t106 156.5t144.5 128.5t184 86.5t223 31.5q124 0 223 -32t174.5 -87t128.5 -128.5t86 -156.5t45 -172q10 -67 10 -133q0 -20 -1 -41q-5 -102 -38.5 -208.5t-95 -202t-151.5 -173t-208 -120.5v-2q44 0 79.5 -4t68.5 -16.5t66 -35t71 -59.5 q45 -44 77.5 -76.5t56 -55.5t41 -37t33.5 -22t33 -11t39 -3l-8 -137h-85q-71 0 -118.5 3t-84.5 14t-69.5 33.5t-74.5 60.5q-62 57 -109 111.5t-91.5 97t-92 68t-110.5 25.5q-126 0 -224.5 31t-172 85t-123.5 127t-80 156t-42 173q-8 63 -8 124q0 27 2 54zM398 741 q-2 -27 -2 -55q0 -39 4 -80q5 -72 21 -141.5t45 -133t72 -111.5t102 -76q57 -28 132 -28h5q71 0 127.5 25t100 67t75 97.5t53 118.5t33 129t14.5 129q2 39 2 76q0 97 -14 182q-18 118 -64.5 202.5t-122.5 131.5q-71 43 -170 43h-13q-70 -2 -126.5 -27.5t-100 -68.5 t-74.5 -99.5t-52 -120t-32.5 -130.5t-14.5 -130z" /> +<glyph unicode="R" horiz-adv-x="1394" d="M72 0l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l41 785q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-154 -6l8 158l578 4h11q128 0 231 -22q107 -23 180 -75.5t109 -136.5q28 -66 28 -155q0 -25 -3 -52q-5 -65 -31 -125.5t-73.5 -112t-116 -92t-159.5 -65.5v-2 q38 -15 73.5 -50.5t61.5 -77.5l88 -145q31 -52 56.5 -87.5t50 -58t51 -33.5t61.5 -13l-7 -135h-332q-35 26 -69.5 76.5t-71.5 116.5l-137 245q-24 42 -43.5 70t-36.5 50q-33 -1 -55.5 -1t-52.5 1l-12 -221q-1 -28 -3 -55.5t-4 -52t-4.5 -44.5t-5.5 -33l174 6l-8 -158h-603z M546 712q24 -3 49 -5t51 -2q85 0 146 18.5t101 57t61 96.5t25 136q1 13 1 26q0 51 -10 87q-12 46 -34.5 77t-52 49t-60 27.5t-59 12t-49.5 2.5q-33 0 -58.5 -5t-44.5 -22t-30 -49t-14 -86z" /> +<glyph unicode="S" horiz-adv-x="1229" d="M90 -19l25 479h134q9 -86 40 -150.5t78.5 -108t109 -65t133.5 -21.5q55 0 101 15t80 41.5t54 61.5t22 75v10q-1 47 -25 83q-28 39 -73.5 69.5t-102.5 55t-114 47.5q-97 40 -179.5 85.5t-141.5 105t-90 135.5q-27 65 -27 149q0 14 1 28q2 42 15 87.5t38 89t64 82.5 t94 68.5t126.5 46.5t162.5 17q40 0 85.5 -6t91 -18.5t87 -31t74.5 -42.5h2l-3 84h158l-25 -479h-134q-19 173 -106 260q-85 85 -225 85h-6q-44 0 -84.5 -13.5t-72 -36.5t-51 -55.5t-21.5 -70.5q0 -7 -1 -14q0 -41 16 -73q18 -38 57.5 -71.5t100 -65t143.5 -65.5 q50 -21 103.5 -45.5t104 -55t95 -67.5t76.5 -82q32 -46 50 -102q14 -45 14 -97v-25q-5 -91 -46.5 -167t-113.5 -130.5t-170.5 -85t-217.5 -30.5q-40 0 -84.5 6.5t-90 19t-90 31.5t-84.5 44h-2l3 -87h-158z" /> +<glyph unicode="T" horiz-adv-x="1328" d="M59 970l36 464h1236l-12 -464h-135q1 18 1 35q1 61 -11 110q-14 62 -45.5 102.5t-77 60t-103.5 19.5l-98 -1l-50 -960q-2 -28 -4 -55t-4 -51.5t-4.5 -44.5t-5.5 -33l164 6l-8 -158h-593l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l52 981h-95q-58 0 -106 -19.5 t-83 -59.5t-56 -101t-25 -144h-135z" /> +<glyph unicode="U" horiz-adv-x="1547" d="M89 1276l8 158h584l-7 -135q-35 -2 -62 -7t-47 -22t-31.5 -52t-14.5 -97l-30 -563q-2 -30 -2 -57q1 -91 19 -155q24 -83 66.5 -132t100 -69t119.5 -22h18q74 1 134 23q68 26 117 80t78 138t35 197l28 537q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-154 -6l8 158h474 l-7 -135q-35 -2 -62 -7t-47 -22t-31.5 -52t-14.5 -97l-27 -513q-9 -177 -59 -299t-131 -198t-187.5 -110t-229.5 -34q-115 0 -202.5 22.5t-150.5 64t-103.5 99.5t-63.5 129q-22 70 -30 151q-4 49 -5 100q0 34 2 69l26 496q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33z" /> +<glyph unicode="V" horiz-adv-x="1438" d="M52 1276l8 158h596l-7 -135h-9q-34 -1 -60 -7q-30 -8 -48 -26t-22 -49q-1 -6 -1 -12q0 -27 13 -64l165 -464q40 -116 51.5 -151t22.5 -70t25 -74h2q13 30 27.5 65.5t29 72.5t29.5 74.5l29 72.5l178 429q7 17 17 42t22.5 52t26 51.5t27.5 40.5l1 2l-158 -8l8 158h461 l-7 -135q-35 -2 -65.5 -14.5t-58 -38t-53.5 -66.5t-51 -100l-466 -1092h-160l-416 1099q-9 25 -18 52.5t-16 54t-11 49t-3 39.5z" /> +<glyph unicode="W" horiz-adv-x="2068" d="M59 1276l8 158h598l-7 -135h-10q-32 1 -57 -5q-29 -6 -47 -24t-22 -48q-1 -9 -1 -19q0 -25 8 -58q120 -565 126.5 -598.5t13 -72t13.5 -87.5h2q5 19 16 53t24.5 75.5t28.5 87t28.5 85.5t24.5 71.5t239 674.5h183q211 -826 224.5 -899.5t26.5 -150.5h2q22 68 46 138 t184 574q8 24 17.5 50t21 51t25 46.5t29.5 38.5l1 2l-158 -8l8 158h461l-7 -135q-35 -2 -66.5 -14t-60 -37.5t-54 -66.5t-47.5 -101l-392 -1092h-179l-205 733q-23 81 -35 156.5t-23 145.5h-2q-15 -70 -32.5 -134t-315.5 -901h-173l-292 1046q-51 157 -64 248 q-67 -5 -109 -6z" /> +<glyph unicode="X" horiz-adv-x="1434" d="M44 0l7 135q58 13 121.5 65.5t143.5 153.5l255 318l-308 417q-32 44 -62.5 92.5t-50.5 100.5l-83 -6l8 158h619l-7 -135q-56 0 -86 -11t-39.5 -30t-0.5 -44.5t30 -54.5l168 -232h2q190 245 207.5 266t32 36.5t27.5 28t27 24.5v2l-153 -8l8 158h466l-7 -135 q-36 -5 -71 -21t-72 -44t-76 -69.5t-83 -97.5l-211 -269l360 -491q32 -44 60 -82t43 -73l79 6l-8 -158h-607l7 135q56 0 83 11t32.5 30t-6.5 44.5t-34 54.5l-194 264h-2l-192 -248q-23 -29 -40 -50t-30.5 -36.5t-25 -28t-24.5 -24.5v-2l146 8l-8 -158h-451z" /> +<glyph unicode="Y" horiz-adv-x="1361" d="M48 1276l8 158h598l-7 -135q-12 1 -23 1q-31 0 -56 -6q-34 -9 -52 -29q-20 -21 -20 -52t22 -72l143 -257q9 -16 20.5 -38t25.5 -50.5t27 -57.5t20 -51h3q11 23 37.5 72.5t68.5 127.5q155 275 171.5 302t33 52t30.5 41v2l-157 -8l8 158h452l-7 -135q-36 -6 -66 -20 t-58.5 -39.5t-57 -65t-61.5 -94.5l-294 -512l-12 -232q-2 -28 -4 -55t-4 -51.5t-4.5 -44.5t-5.5 -33l164 6l-8 -158h-593l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l10 179l-347 595q-14 24 -26.5 51t-22 53.5t-15 50t-4.5 40.5z" /> +<glyph unicode="Z" horiz-adv-x="1234" d="M52 0l8 154l662 934q41 58 76.5 105.5t76.5 95.5l1 2l-351 9h-7q-52 0 -98 -14q-48 -16 -84.5 -52.5t-59 -95t-26.5 -141.5h-135l35 437h1037l-8 -154l-637 -892q-46 -65 -93 -126.5t-95 -115.5l-1 -2l374 -8h7q52 0 98 15q48 16 84.5 52t58.5 94t27 141h135l-35 -438 h-1050z" /> +<glyph unicode="[" horiz-adv-x="795" d="M66 -522l111 2068h655l-8 -145l-395 -6l-102 -1766l408 -6l-8 -145h-661z" /> +<glyph unicode="\" horiz-adv-x="1623" d="M90 1427l173 120l1253 -1998l-146 -104z" /> +<glyph unicode="]" horiz-adv-x="795" d="M-52 -522l8 145l395 6l102 1766l-408 6l8 145h661l-111 -2068h-655z" /> +<glyph unicode="^" horiz-adv-x="1695" d="M111 904l631 563h182l627 -573h-275l-451 428h-2l-450 -418h-262z" /> +<glyph unicode="_" horiz-adv-x="1711" d="M167 -102l1259 -9v-199h-1259v208z" /> +<glyph unicode="`" horiz-adv-x="567" d="M93.5 1474q-3.5 27 5 53.5t33.5 48.5q25 20 51.5 24.5t51 -3t45.5 -26t36 -44.5l159 -286l-99 -83l-232 219q-19 19 -33 44.5t-17.5 52.5z" /> +<glyph unicode="a" horiz-adv-x="1125" d="M52 351q0 140 41 266t120 221.5t194 152t262 56.5q58 0 134 -11.5t161 -32.5q-7 -51 -17 -119t-20.5 -142.5t-20.5 -151t-18 -145.5t-13 -126t-5 -92q0 -37 9.5 -48.5t20.5 -11.5q12 0 24.5 8t26 27t27 50.5t26.5 77.5l111 -33q-9 -44 -29.5 -99.5t-55 -104.5t-84 -82.5 t-116.5 -33.5q-33 0 -63 8.5t-52.5 30t-36 57.5t-13.5 90q0 27 2 60.5t6 59.5h-2q-38 -89 -79 -148t-85.5 -94t-90.5 -49.5t-93 -14.5q-56 0 -105.5 22.5t-86 69t-58 117t-21.5 165.5zM331 339q0 -84 21 -132t57 -48q38 0 71 33.5t61.5 90t52 131t40.5 157t28.5 167 t15.5 161.5q-11 4 -36 8t-49 4q-58 0 -106 -36.5t-82.5 -108.5t-54 -179t-19.5 -248z" /> +<glyph unicode="b" horiz-adv-x="1050" d="M30 1330l8 155q71 0 124.5 6t91.5 15t61.5 19.5t34.5 20.5h111q-6 -44 -12.5 -103.5t-12.5 -119t-17 -173t-15.5 -159.5t-10.5 -95.5t-13 -91.5h2q35 67 75 113.5t80 75.5t78.5 41.5t71.5 12.5q77 0 132 -32.5t90.5 -86.5t52 -125t16.5 -148q0 -138 -30 -261t-96 -216 t-171.5 -147t-256.5 -54q-24 0 -63.5 3t-85 9.5t-92.5 17t-87 25.5q31 644 36.5 731.5t11 181.5t10.5 180t10 137t8 74zM352 131q8 -4 21 -7.5t27.5 -5.5t28.5 -3.5t24 -1.5q55 0 95 27.5t67 73t43.5 104t25.5 120t11.5 121t2.5 107.5q0 55 -8 92t-21 59.5t-29.5 31.5 t-34.5 9q-33 0 -64 -27t-58.5 -75t-50.5 -115.5t-40 -148t-27.5 -172.5t-12.5 -189z" /> +<glyph unicode="c" horiz-adv-x="956" d="M55 424q0 66 13.5 138t41 141t69.5 131.5t98 109.5t126.5 75t155.5 28q70 0 131 -17.5t105 -50t69.5 -78t25.5 -101.5q0 -62 -35 -100t-95 -40q-35 -1 -59.5 11t-39.5 30.5t-21.5 40t-6.5 39.5t4.5 41.5t15.5 43.5q-8 19 -34.5 32.5t-62.5 13.5q-44 0 -77 -21 t-57.5 -55.5t-40.5 -79.5t-25.5 -93.5t-14.5 -96.5t-6 -89q-1 -14 -1 -28q0 -65 12 -113q14 -58 39 -95t56.5 -54.5t63.5 -20.5q9 -1 20 -1q20 0 44 4q36 6 73.5 28.5t75 66t69.5 115.5l117 -57q-44 -101 -95.5 -167t-108.5 -105.5t-118 -55.5t-125 -17q-90 1 -164 28 t-127 82t-82 139t-29 198z" /> +<glyph unicode="d" horiz-adv-x="1155" d="M57 368q0 146 33.5 270.5t103.5 215t177 142t253 51.5q7 0 20.5 -0.5t28.5 -1t28 -1t21 -1.5l33 293l-142 -6l8 155q71 0 124.5 6t91.5 15t61.5 19.5t34.5 20.5h111q-111 -959 -120.5 -1045.5t-15.5 -157t-6 -116.5q0 -37 9.5 -48.5t20.5 -11.5q23 0 48 35.5t51 127.5 l111 -33q-9 -44 -28 -99.5t-52.5 -104.5t-82 -82.5t-115.5 -33.5q-33 0 -63 8.5t-52.5 30t-35.5 57.5t-13 90q0 20 0.5 35.5t1.5 29t2.5 27.5t3.5 31h-2q-37 -90 -80.5 -150t-89 -95t-91 -49.5t-85.5 -14.5q-77 0 -134 30t-94.5 82.5t-56 124t-18.5 154.5zM336 371 q0 -106 27.5 -157t72.5 -51q55 0 99.5 57.5t78 157t57 233t36.5 284.5q-7 3 -21 6t-30 5.5t-31.5 3.5t-25.5 1q-58 0 -100.5 -28.5t-71.5 -75.5t-47 -105.5t-27.5 -118.5t-13 -116t-3.5 -96z" /> +<glyph unicode="e" horiz-adv-x="963" d="M56 424q0 66 13 138t40.5 141t69.5 131.5t99.5 109.5t131 75t163.5 28q68 0 124.5 -15t97 -46.5t63 -80.5t22.5 -116q0 -56 -23.5 -100t-64 -78t-94 -59.5t-114 -44t-124.5 -31t-124 -21.5q0 -87 16.5 -143.5t42.5 -89t59 -45t66 -12.5q25 0 59.5 7t71 28t72 60t63.5 103 l116 -56q-44 -101 -95.5 -165t-107.5 -100.5t-115 -50.5t-119 -14h-7q-90 0 -162 26q-76 27 -129.5 82.5t-82 140t-28.5 198.5zM343 587q83 15 140.5 38.5t92.5 53.5q34 29 50 65q15 33 15 69q1 27 -9 47q-8 18 -21.5 29.5t-29.5 17t-31 5.5q-52 0 -88.5 -29.5t-61 -76 t-38 -104.5t-19.5 -115z" /> +<glyph unicode="f" horiz-adv-x="722" d="M-236 -407q0 18 7 40.5t22 42.5t39.5 33t59.5 12q23 -1 43 -10.5t34 -26.5t20.5 -39.5t2.5 -49.5q8 -5 26 -5q35 0 57.5 38t36 96t21 125.5t12.5 127.5q5 58 10.5 131.5t12 154.5t12.5 166t11.5 165.5t20.5 282.5l-163 -2l18 149h165q13 118 44.5 216t84.5 168.5t130 109 t182 38.5q94 0 144 -42t50 -110q0 -18 -7 -40t-22 -41t-39.5 -31.5t-59.5 -11.5q-23 1 -43 10.5t-34 26.5t-20.5 39.5t-2.5 49.5q-8 5 -26 5q-35 0 -57.5 -38t-36 -96t-21 -125.5t-12.5 -127.5h263l-13 -141l-259 -4q-14 -206 -20 -286.5t-12.5 -165.5t-13.5 -165.5 t-14 -153.5t-14 -131q-14 -119 -46 -216.5t-85.5 -168t-130.5 -109t-182 -38.5q-94 0 -144.5 40t-50.5 108z" /> +<glyph unicode="g" horiz-adv-x="1064" d="M39 -345q0 22 8 48.5t24.5 49t43 37.5t62.5 15q55 0 92 -34.5t37 -93.5q0 -14 -3.5 -31t-10.5 -31q5 -8 17 -14.5t26 -11t29 -7t27 -2.5q61 0 101 26.5t65 73.5t39 111.5t23 140.5q7 54 14 100t15 88t18 82t23 81h-2q-39 -90 -80.5 -149t-85.5 -94t-90 -49t-93 -14 q-56 0 -107 22.5t-90 69t-62.5 117t-23.5 165.5q0 142 34 268.5t106.5 221.5t185 150.5t268.5 55.5q29 0 66 -3t78 -8.5t84.5 -14t84.5 -18.5q-2 -49 -6 -119.5t-9.5 -153t-11.5 -172t-12.5 -175.5t-13 -164t-11.5 -137q-14 -146 -48 -263.5t-96.5 -200.5t-155.5 -128 t-225 -45q-76 0 -137.5 13.5t-105 40.5t-67.5 66t-24 90zM334 339q0 -84 25.5 -132t61.5 -48q37 0 70.5 33.5t62.5 90t53 131t42 157t29.5 167t15.5 161.5q-12 5 -39.5 8.5t-53.5 3.5q-71 -1 -121.5 -39t-83 -110.5t-47.5 -179t-15 -243.5z" /> +<glyph unicode="h" horiz-adv-x="1176" d="M52 1330l8 155q71 0 124.5 6t91 15t61 19.5t34.5 20.5h111q-53 -435 -58.5 -477.5t-22.5 -159.5t-29 -171h2q36 92 79 152t89 95t93 48.5t91 13.5q65 0 112 -22.5t77 -63.5t44.5 -99t14.5 -130q0 -57 -8 -122.5t-17.5 -133t-17.5 -133.5t-8 -122q0 -34 10 -44t21 -10 q23 0 48 35.5t51 127.5l111 -33q-9 -44 -32.5 -99.5t-62 -104.5t-92.5 -82.5t-123 -33.5q-57 0 -94 15.5t-59.5 45.5t-31.5 73t-9 97q0 61 8 139t17.5 156.5t17.5 150t8 118.5q0 46 -13 66.5t-45 20.5q-31 0 -64 -33t-65 -88t-60.5 -127.5t-50 -151.5t-34 -159.5 t-12.5 -151.5q0 -14 0.5 -34.5t1.5 -41.5t2 -40.5t2 -31.5h-263q-2 21 -3.5 35.5t-2 25t-0.5 19v18.5q0 84 3 177.5t7.5 189.5t11 191.5t13.5 184t29 281.5t27 214z" /> +<glyph unicode="i" horiz-adv-x="704" d="M4 727q9 44 33 99.5t64 104.5t95 82.5t124 33.5q53 0 89 -17t58.5 -48t32 -75t9.5 -98q0 -33 -4.5 -83.5t-12 -108.5t-15.5 -118.5t-15.5 -114.5t-12 -97t-4.5 -66q0 -34 10 -44t21 -10q23 0 48 35.5t51 127.5l111 -33q-9 -44 -32.5 -99.5t-62.5 -104.5t-93 -82.5 t-123 -33.5q-57 0 -94.5 15.5t-60 45.5t-32 73t-9.5 97q0 40 5 91t12 106.5t16 112t16 109.5t12 98.5t5 77.5q0 34 -10 44t-21 10q-23 0 -48 -35.5t-51 -127.5zM227 1393q2 35 16.5 66t37 54t51.5 36t60 13q33 0 61 -13t47.5 -36t29.5 -54q8 -26 9 -54q0 -6 -1 -12 q-2 -35 -14 -65t-33 -53t-50 -36t-63 -13q-35 0 -63.5 13t-48.5 36t-30 53q-9 25 -9 54v11z" /> +<glyph unicode="j" horiz-adv-x="640" d="M-221 -404q0 18 6.5 40.5t21.5 43t39.5 34t60.5 12.5q23 -1 44 -11.5t35.5 -29t21 -44t0.5 -56.5q4 -2 13 -3.5t17 -1.5q26 0 48.5 25t40.5 66.5t32.5 96t26 114.5t19.5 121.5t14 117.5t10 101.5t6 74.5q4 67 8 137t7 136t4.5 125.5t1.5 107.5q0 34 -10 44t-21 10 q-23 0 -48 -35.5t-51 -127.5l-111 33q9 44 31.5 99.5t60.5 104.5t91.5 82.5t122.5 33.5q53 0 90.5 -17t61.5 -48t35 -75t12 -98v-55v-60q-1 -64 -4 -133.5t-7.5 -142.5t-10.5 -144q-8 -90 -22.5 -186.5t-39 -188.5t-62 -174.5t-92.5 -144.5t-129.5 -98.5t-173.5 -36.5 q-94 0 -147 41.5t-53 109.5zM237 1393q2 35 16.5 66t37 54t51.5 36t60 13q33 0 61 -13t47.5 -36t29.5 -54q8 -26 8 -54v-12q-2 -35 -14 -65t-33 -53t-50 -36t-63 -13q-35 0 -63.5 13t-48.5 36t-30 53q-9 25 -9 54v11z" /> +<glyph unicode="k" horiz-adv-x="1060" d="M62 1330l8 155q71 0 124.5 6t91.5 15t61.5 19.5t34.5 20.5h111l-71 -564l-33 -181h2q34 67 74.5 114t83.5 76t86 42.5t83 13.5q115 0 168.5 -59t53.5 -159q0 -47 -19.5 -102.5t-65.5 -108t-120.5 -96.5t-183.5 -68v-2q43 -2 72.5 -14t50 -30t34 -40t22.5 -44 q28 -67 49.5 -105t47.5 -38q22 0 43.5 30.5t45.5 110.5l110 -35q-12 -55 -35 -110.5t-56.5 -99.5t-78 -72t-98.5 -28q-45 0 -81 13t-67 44t-58 82t-54 126q-14 34 -25 64.5t-22.5 52.5t-25 35t-31.5 13q-6 0 -10 -1q-6 -30 -10.5 -65.5t-7 -71.5t-4 -70t-1.5 -61v-32t1 -37 t2 -37t3 -32h-267q-2 21 -3 36t-1.5 26t-0.5 39q0 19 2 72t6 130.5t11 175.5t16 207.5t21 226t27 231.5q5 42 13 94t17 98zM399 537q76 0 132 20t92 56.5t53.5 89t17.5 118.5q0 42 -13 66t-39 24t-60.5 -24.5t-69 -72t-65 -117.5t-48.5 -160z" /> +<glyph unicode="l" horiz-adv-x="621" d="M69 1330l8 155q71 0 124 6t90.5 15t61 19.5t34.5 20.5h111q-27 -234 -47.5 -414t-36 -316t-26 -233.5t-16.5 -166t-9 -113.5t-3 -76q0 -37 9.5 -48.5t20.5 -11.5q23 0 48 35.5t51 127.5l111 -33q-13 -52 -36 -108.5t-60.5 -103.5t-91 -77.5t-127.5 -30.5 q-37 0 -70.5 10.5t-59 34t-40.5 61.5t-15 92q0 93 7.5 207t20 240t28 259t57.5 455z" /> +<glyph unicode="m" horiz-adv-x="1799" d="M17 727q9 44 27.5 99.5t51 104.5t80.5 82.5t115 33.5q33 0 64 -8.5t55 -30t38.5 -57.5t14.5 -90q0 -20 -1 -35.5t-2.5 -29t-4 -27.5t-4.5 -31h2q36 92 79.5 152t90.5 95t94.5 48.5t91.5 13.5q115 -1 165 -83q36 -60 36 -151q0 -35 -5 -75h2q36 92 77.5 152t86 95t90 48.5 t89.5 13.5q65 0 112 -22.5t77 -63.5t44 -99t14 -130q0 -57 -8 -122.5t-17.5 -133t-17.5 -133.5t-8 -122q0 -34 10 -44t21 -10q23 0 48 35.5t51 127.5l111 -33q-9 -44 -32.5 -99.5t-62 -104.5t-92.5 -82.5t-123 -33.5q-57 0 -94 15.5t-58.5 45.5t-30.5 73t-9 97q0 61 8 139 t17.5 156.5t17.5 150t8 118.5q0 46 -13 66.5t-45 20.5q-31 0 -63.5 -32t-63 -86t-57.5 -125t-47 -149t-32 -158t-12 -151q0 -14 0.5 -33t1.5 -40.5t2 -43.5t3 -41h-265q-5 43 -5.5 80.5t-0.5 57.5q0 87 7.5 179t16.5 177.5t16.5 158t7.5 119.5q0 46 -13 66.5t-45 20.5 q-31 0 -64 -33t-64.5 -88t-60 -127.5t-49.5 -151.5t-33.5 -159.5t-12.5 -151.5q0 -14 0.5 -34.5t5.5 -113.5h-263q-2 21 -4 54.5t-2 43.5q0 44 5.5 106.5t13.5 132.5t18 142t18 136t13.5 113.5t5.5 74.5q0 34 -9 44t-20 10q-23 0 -48 -35.5t-51 -127.5z" /> +<glyph unicode="n" horiz-adv-x="1250" d="M17 727q9 44 27.5 99.5t51 104.5t80.5 82.5t115 33.5q33 0 64 -8.5t55 -30t38.5 -57.5t14.5 -90q0 -20 -1 -35.5t-2.5 -29t-4 -27.5t-4.5 -31h2q36 92 78.5 152t88 95t92 48.5t90.5 13.5q65 0 111.5 -22.5t76.5 -63.5t44 -99t14 -130q0 -57 -8 -122.5t-17.5 -133 t-17.5 -133.5t-8 -122q0 -34 10 -44t21 -10q23 0 48 35.5t51 127.5l111 -33q-9 -44 -32.5 -99.5t-62 -104.5t-92.5 -82.5t-123 -33.5q-57 0 -94 15.5t-58.5 45.5t-30.5 73t-9 97q0 61 8 139t17.5 156.5t17.5 150t8 118.5q0 46 -13 66.5t-45 20.5q-31 0 -64 -33t-64.5 -88 t-59.5 -127.5t-49 -151.5t-33.5 -159.5t-12.5 -151.5q0 -14 0.5 -34.5t1.5 -41.5t2 -40.5t2 -31.5h-264q-2 21 -3.5 35.5t-2 25t-0.5 19v18.5q0 44 5.5 106.5t13.5 132.5t18 142t18 136t13.5 113.5t5.5 74.5q0 34 -9 44t-20 10q-23 0 -48 -35.5t-51 -127.5z" /> +<glyph unicode="o" horiz-adv-x="1055" d="M57 443q0 123 36 232.5t103 192t162.5 131t213.5 48.5q85 0 160.5 -30.5t131 -89t88 -143.5t32.5 -194q0 -122 -35.5 -233t-102 -195.5t-161.5 -134.5t-215 -50q-104 0 -181.5 37t-129 100t-77 148t-25.5 181zM336 500q0 -62 7.5 -130t26.5 -125t51 -94.5t81 -37.5 q35 0 63 19.5t50 51.5t37.5 74.5t26 89t16 93.5t6.5 89v25q0 27 -1 55q-2 42 -8.5 84.5t-18 81.5t-29.5 68.5t-44 47.5t-60 19h-3q-45 0 -81 -32q-38 -33 -64.5 -89t-41 -131t-14.5 -159z" /> +<glyph unicode="p" horiz-adv-x="1178" d="M18 727q9 44 27.5 99.5t51 104.5t80 82.5t115.5 33.5q33 0 63.5 -8.5t54 -31t37.5 -61t14 -99.5q0 -30 -2.5 -59t-6.5 -50h2q36 92 80 152t91 95t93 48.5t87 13.5q73 0 130 -28.5t95 -80.5t58 -123.5t20 -158.5q0 -146 -35.5 -270.5t-107 -215t-180 -142t-254.5 -51.5 q-11 0 -30 0.5t-36 1.5q-10 -183 -11.5 -204.5t-3.5 -46.5t-4.5 -51t-5.5 -49l136 6v-156h-519v133q38 0 61.5 13.5t37 38.5t20 58.5t10.5 74.5q22 240 36.5 414.5t22 294t10.5 189.5t3 103q0 37 -9.5 48.5t-20.5 11.5q-23 0 -48 -35.5t-51 -127.5zM473 125q22 -6 46 -9 t37 -3q58 0 101 29t73.5 75t49.5 105t30 119t15 115.5t4 96.5q0 112 -28 160t-72 48q-100 0 -164.5 -187.5t-91.5 -548.5z" /> +<glyph unicode="q" horiz-adv-x="1070" d="M55 367q0 138 34 261.5t105.5 216.5t182.5 147.5t266 54.5q32 0 73.5 -3t85.5 -8t88.5 -11t82.5 -13l-88 -1203q-1 -15 -2.5 -36.5t-3.5 -46t-4.5 -50t-5.5 -48.5l138 6v-156h-518v133q43 0 67 13t37 37t17.5 57t8.5 74q5 45 7.5 88t7.5 100q2 27 5 57t6.5 61.5t7.5 62 t9 57.5h-2q-40 -77 -80.5 -124.5t-80.5 -73.5t-78.5 -34.5t-74.5 -8.5q-73 0 -127.5 32.5t-91 86.5t-54.5 124.5t-18 146.5zM335 379q0 -63 10.5 -105t26 -66.5t34 -34.5t34.5 -10q32 0 63 31t59 84t52.5 125t42.5 153.5t29.5 169.5t14.5 174q-6 3 -18 5t-25 3.5t-25 2 t-19 0.5q-83 0 -137 -47.5t-85.5 -123.5t-44 -171t-12.5 -190z" /> +<glyph unicode="r" horiz-adv-x="941" d="M17 727q9 44 27.5 99.5t51 104.5t80.5 82.5t115 33.5q33 0 64 -8.5t54.5 -30t38 -57.5t14.5 -90q0 -33 -4.5 -79t-14.5 -104h2q41 117 84 189t86.5 112t85.5 54t80 14t69.5 -11t54 -31.5t35 -49.5t12.5 -65q0 -26 -9.5 -51t-27.5 -44.5t-43.5 -31.5t-56.5 -12 q-23 0 -43.5 7.5t-36 21.5t-24.5 33.5t-8 44.5h-5q-27 0 -54 -28q-30 -31 -58 -85.5t-53 -127.5t-43.5 -153t-29 -161.5t-10.5 -154.5q0 -14 0.5 -34.5t1.5 -41.5t2 -40.5t2 -31.5h-268q-2 21 -3.5 35.5t-2 25t-0.5 19v18.5q0 44 5.5 106.5t13.5 132.5t18 142t18 136 t13.5 113.5t5.5 74.5q0 34 -9 44t-20 10q-23 0 -48 -35.5t-51 -127.5z" /> +<glyph unicode="s" horiz-adv-x="914" d="M43 215q0 31 10 57.5t28 45.5t42 29.5t51 10.5q28 0 51 -10t39.5 -27.5t26 -40.5t9.5 -49q0 -33 -13 -60q5 -11 20 -22t34 -19t39 -13t35 -5q45 0 76 11t50 29t27.5 41t8.5 47q0 28 -17 52t-45.5 45.5t-66 43t-77.5 44.5q-73 42 -126.5 78t-88 73.5t-51.5 79.5t-17 96 t25.5 106.5t75 94.5t122 68t166.5 26q62 0 123.5 -15.5t110.5 -44.5t79.5 -71t30.5 -94q0 -27 -9 -51.5t-25.5 -43t-40 -29.5t-53.5 -11q-28 0 -51 10t-39.5 27.5t-25.5 40t-9 47.5q0 32 13 59q-8 11 -21.5 18.5t-29 12.5t-31.5 7.5t-29 2.5q-22 0 -46 -7.5t-44.5 -21 t-34 -34t-13.5 -45.5q0 -21 6.5 -37.5t26.5 -35.5t57.5 -42.5t100.5 -59.5q51 -29 105 -61t98.5 -72t73 -89.5t28.5 -113.5q0 -69 -32.5 -127t-88.5 -100t-133 -65.5t-165 -23.5q-74 0 -140 16.5t-116.5 47.5t-80 75t-29.5 99z" /> +<glyph unicode="t" horiz-adv-x="809" d="M37 875l18 149q76 0 131.5 23t94.5 64t62.5 97.5t36.5 124.5h139l-42 -309h257l-13 -141l-257 -4q-6 -49 -12 -104.5l-12 -111t-11 -109t-9 -100t-6 -84t-2 -60.5q0 -20 2.5 -43.5t12.5 -44t29.5 -34.5t52.5 -14q12 0 33.5 4.5t47.5 18t53.5 39.5t51.5 68l103 -67 q-69 -131 -168.5 -195.5t-215.5 -64.5q-84 0 -136 28t-80 74.5t-37 106.5q-7 49 -7 100v23q2 52 6.5 120t10.5 143t13.5 153t15.5 152q-42 -1 -88 -1.5t-75 -0.5z" /> +<glyph unicode="u" horiz-adv-x="1225" d="M-3 727q9 44 32.5 99.5t62 104.5t92.5 82.5t123 33.5q57 0 94 -15.5t59.5 -45.5t31.5 -73t9 -97q0 -41 -4 -89.5t-10 -100.5t-12.5 -105.5t-12.5 -102.5t-10 -92t-4 -74q0 -46 13 -66.5t45 -20.5q28 0 59.5 33t61.5 88t57.5 127.5t48.5 151.5t33 159t12 152 q0 14 -0.5 34.5t-1 41.5t-2 40.5t-2.5 31.5h264q2 -21 3.5 -35.5t2 -25t0.5 -19v-18.5q0 -44 -5.5 -106.5t-14 -132.5t-18.5 -142t-18.5 -136t-14 -113.5t-5.5 -74.5q0 -34 9 -44t20 -10q23 0 48 35.5t51 127.5l111 -33q-9 -44 -27.5 -99.5t-51 -104.5t-80.5 -82.5 t-115 -33.5q-33 0 -64 8.5t-55 30t-38.5 57.5t-14.5 90q0 41 3.5 69.5t8.5 63.5h-2q-36 -92 -76.5 -153.5t-83.5 -98.5t-87.5 -52t-88.5 -15q-65 0 -111.5 22.5t-76.5 63.5t-44 99t-14 130q0 57 8.5 122.5t18 133t18 133.5t8.5 122q0 34 -11 44t-22 10q-23 0 -48 -35.5 t-51 -127.5z" /> +<glyph unicode="v" horiz-adv-x="1071" d="M-9 727q9 44 32.5 99.5t62 104.5t92.5 82.5t123 33.5q59 0 97 -19t60.5 -52t31 -76.5t8.5 -91.5q0 -66 -6 -144.5t-12.5 -155.5t-12.5 -145.5t-6 -114.5q0 -17 2.5 -37t10 -38t22 -29.5t38.5 -11.5q37 1 75 20t74 53.5t67.5 82t55 105.5t37 124.5t13.5 138.5 q0 22 -4 45.5t-11 44.5t-16.5 39t-20.5 29q-17 -14 -40.5 -25.5t-53.5 -11.5q-20 0 -42.5 7t-41 22.5t-30.5 39.5t-12 57q0 21 8 46.5t26 47t48 36t74 14.5q66 0 115.5 -29.5t83.5 -80.5t51 -119t17 -144q0 -70 -16.5 -149.5t-49 -156.5t-79.5 -148t-108 -125t-134.5 -86 t-159.5 -32q-70 0 -119 22t-80.5 63.5t-46 100.5t-14.5 133q0 35 2.5 80t6.5 93t8 97t8 93.5t6.5 81.5t2.5 62q0 34 -11 44t-22 10q-23 0 -48 -35.5t-51 -127.5z" /> +<glyph unicode="w" horiz-adv-x="1628" d="M-4 727q9 44 32.5 99.5t62 104.5t92.5 82.5t123 33.5q59 0 97 -19t60.5 -52t31 -76.5t8.5 -91.5q0 -66 -7.5 -144.5t-17 -155.5t-17 -145.5t-7.5 -114.5q0 -17 1.5 -37t7 -37.5t17.5 -29.5t33 -12q49 0 87 38t66 100t47 141.5t30.5 162t16.5 161.5t5 141q0 14 -0.5 34.5 t-1.5 41.5t-2 40.5t-2 31.5h264q3 -31 4.5 -48.5t1.5 -31.5v-62q-8 -131 -16.5 -229t-15.5 -172.5t-11.5 -130.5t-4.5 -102q0 -17 4 -37t13 -37.5t25 -29.5t40 -12q35 0 75 19.5t79 54t75 83t63 106.5t43.5 124.5t16.5 136.5q0 45 -14.5 90t-37.5 68q-17 -14 -40.5 -25.5 t-53.5 -11.5q-20 0 -42.5 7t-41 22.5t-30.5 39.5t-12 57q0 21 8 46.5t26 47t48 36t74 14.5q66 0 115.5 -29.5t83.5 -80.5t51 -119t17 -144q0 -73 -19.5 -153t-56 -157.5t-88 -147.5t-115.5 -123t-138.5 -84.5t-157.5 -31.5q-56 0 -96 17.5t-65.5 48t-37 72.5t-11.5 90 q0 35 6 71h-2q-22 -83 -58.5 -140t-82.5 -92.5t-97.5 -51t-103.5 -15.5q-66 0 -113.5 22t-77.5 63.5t-44.5 100.5t-14.5 133q0 35 3.5 79.5t8.5 93t11 97.5t11 93.5t8.5 81.5t3.5 62q0 34 -11 44t-22 10q-23 0 -48 -35.5t-51 -127.5z" /> +<glyph unicode="x" horiz-adv-x="1113" d="M33 119q0 31 10.5 57.5t28 45.5t40.5 29.5t49 10.5q50 0 78 -24t38 -51q15 10 30.5 34t33 64t38.5 97t47 133q-16 43 -51 142.5t-48 129.5q-10 21 -18.5 34.5t-16.5 21t-16.5 10.5t-18.5 4q-14 0 -27 -6.5t-25 -24t-21.5 -47.5t-15.5 -76l-115 15q3 30 11.5 66t23.5 72.5 t38 71t55.5 61t75 42.5t97.5 16q42 0 73.5 -13t55 -36.5t41 -56.5t32.5 -73q6 -15 10.5 -28t9.5 -28t10.5 -35t13.5 -48q43 109 83 172.5t76 96t67.5 41t58.5 8.5q37 0 64 -10.5t45 -29.5t26.5 -44t8.5 -55q0 -26 -10.5 -49.5t-28 -41.5t-41 -28.5t-49.5 -10.5 q-38 0 -61.5 13t-38.5 30q-14 -11 -27.5 -28t-29.5 -47t-36.5 -75t-47.5 -110q15 -40 32 -83.5t35 -85.5t36 -80t34 -67q26 -46 44 -62t35 -16q14 0 25.5 6t21.5 23t17.5 47t13.5 78l115 -15q-3 -30 -10 -66t-20.5 -72.5t-34 -71t-51 -61t-72 -42.5t-96.5 -16q-46 0 -82 17 t-64 44.5t-49 63.5t-37 75l-64 153h-2q-39 -116 -76 -185.5t-73 -106.5t-71 -49t-70 -12q-37 0 -67 10.5t-51.5 29t-33 44.5t-11.5 58z" /> +<glyph unicode="y" horiz-adv-x="1148" d="M-15 718q3 30 12 66t24.5 72.5t39 71t56.5 61t76 42.5t98 16q50 0 89.5 -19t70 -49.5t53 -68.5t38.5 -77q22 -52 51 -128t59 -166.5t56.5 -190t43.5 -198.5h2q63 141 97 267.5t38.5 184t5 76.5t-2 40t-8 40.5t-16.5 32.5q-32 -6 -59.5 1t-48.5 23.5t-33 40.5t-12 51 q0 36 12.5 62t32.5 43.5t45.5 26t51.5 8.5q57 0 96 -25.5t64 -66t36 -92.5t11 -104q0 -71 -18 -165t-51.5 -199.5t-80.5 -217t-104 -217t-123 -199t-137.5 -164t-147 -111.5t-151.5 -41q-94 0 -143.5 44.5t-49.5 114.5q0 33 11.5 59.5t30 45.5t42 29t47.5 10q54 0 85.5 -29 t39.5 -82q24 -7 50.5 2.5t53 29t52 46.5t47.5 56t39 56.5t26 48.5q-15 98 -48 212t-74.5 230t-86.5 226.5t-85 200.5q-7 16 -16.5 35.5t-21.5 36.5t-26.5 28.5t-31.5 11.5q-14 0 -28 -6t-26.5 -23t-22 -47t-15.5 -78z" /> +<glyph unicode="z" horiz-adv-x="1006" d="M36 59q34 51 83.5 115.5t104 133t110 135t103.5 122.5q51 59 90 99t73.5 72.5t68.5 62t74 67.5h-2q-41 -34 -75 -55.5t-63.5 -33.5t-55.5 -16.5t-50 -4.5q-32 0 -60 8t-54.5 17t-52.5 17t-55 8q-30 0 -49 -15.5t-28 -40t-7.5 -55.5t12.5 -62l-103 -35q-24 64 -24 159 q0 55 15.5 107t47 92.5t79 65.5t110.5 25q43 0 89.5 -9.5t94.5 -21t95 -21t91 -9.5q12 0 30 1.5t39.5 7.5t46 18.5t49.5 33.5l87 -82l-304 -392q-66 -83 -124.5 -145.5t-110 -111.5t-96.5 -86.5t-84 -69.5h2q43 33 79.5 53.5t68 32t58.5 15t51 3.5q38 0 68 -8t57 -17 t52.5 -17t54.5 -8q30 0 49 15.5t27 40t5.5 55.5t-15.5 62l104 35q12 -32 20.5 -70t9.5 -85q0 -55 -16 -107t-47.5 -92.5t-79 -65.5t-110.5 -25q-43 0 -93 9.5t-101.5 21t-102 21t-93.5 9.5q-12 0 -28.5 -1.5t-36 -7.5t-42.5 -18.5t-48 -33.5z" /> +<glyph unicode="{" horiz-adv-x="707" d="M-6 453l11 136h89q38 0 63.5 9t41 27t23 44.5t9.5 61.5v32t-0.5 62.5t-1 79t-1 80.5t-0.5 67v39q0 108 22 194t70 146.5t124 92.5t183 32h103l-7 -135q-71 0 -120.5 -26t-81 -71.5t-45.5 -107t-14 -131.5q0 -21 1.5 -57t3.5 -77t3.5 -81.5t1.5 -68.5v-22q-2 -53 -19 -93 t-45.5 -70.5t-68 -52.5t-85.5 -39v-2q45 -20 80.5 -44.5t60 -56t37.5 -71.5t13 -92q0 -15 -3 -42.5t-8 -62t-10 -73.5t-10 -76.5t-8 -71.5t-3 -58q0 -57 12 -110t39 -94t72 -65.5t111 -24.5l-9 -135h-100q-101 0 -169.5 34t-110.5 93.5t-60 141t-18 176.5q0 15 2.5 48 t7 75.5t9 89.5t9 89.5t7 76.5t2.5 50q0 29 -6 53.5t-20 42.5t-36.5 28t-55.5 10h-95z" /> +<glyph unicode="|" horiz-adv-x="480" d="M70 -555l105 2111h228l-118 -2111h-215z" /> +<glyph unicode="}" horiz-adv-x="706" d="M-40 -555l7 135q71 0 120.5 26t81 71.5t45.5 107t14 131.5q0 21 -1.5 57t-3.5 77t-3.5 81.5t-1.5 68.5v22q2 53 19 93t45.5 70.5t68 52.5t85.5 39v2q-45 20 -80.5 44.5t-60 56t-37.5 71.5t-13 92q0 15 3 42.5t8 62t10 73.5t10 76.5t8 71.5t3 58q0 57 -12 110t-39 94 t-72 65.5t-111 24.5l9 135h100q101 0 169.5 -34t110.5 -93.5t60 -141t18 -176.5q0 -15 -2.5 -48t-7 -75.5t-9 -89.5t-9 -89.5t-7 -76.5t-2.5 -50q0 -29 6 -53.5t20 -42.5t36.5 -28t55.5 -10h95l-11 -136h-89q-38 0 -63.5 -9t-41 -27t-23 -44.5t-9.5 -61.5v-32t0.5 -62.5 t1 -79t1 -80.5t0.5 -67v-39q0 -108 -22 -194t-70 -146.5t-124 -92.5t-183 -32h-103z" /> +<glyph unicode="~" horiz-adv-x="1105" d="M91 469l12 236q34 26 64.5 46.5t61.5 34.5t65 21t75 7q55 0 95.5 -11.5t71.5 -28.5t56.5 -37.5t52.5 -37.5t58 -28.5t73 -11.5q67 0 128 26.5t112 71.5l-13 -236q-45 -48 -106.5 -77.5t-142.5 -29.5q-51 0 -89.5 11.5t-70 28.5t-58.5 37t-55 37t-60 28.5t-73 11.5 q-42 0 -76.5 -8t-65 -21.5t-58.5 -31.5t-57 -38z" /> +<glyph unicode="¡" horiz-adv-x="481" d="M48 -257l119 844h137l33 -844q1 -33 -8.5 -66t-29 -59.5t-49 -43.5t-68.5 -17q-41 0 -69 17t-44 43.5t-21 59.5t0 66zM106 898q2 33 15.5 62t35.5 50.5t49.5 34t56.5 12.5q30 0 55.5 -12.5t44 -34t28.5 -50.5t8 -62q-1 -33 -14.5 -62.5t-35 -51.5t-48.5 -34.5t-57 -12.5 q-32 0 -58 12.5t-44.5 34.5t-27.5 51.5t-8 62.5z" /> +<glyph unicode="¢" horiz-adv-x="999" d="M70 424q0 58 10.5 121t32 125t54 119.5t76 106t98 84t120.5 52.5l24 248h210l-26 -242q52 -10 95.5 -31t74.5 -52t48.5 -70t17.5 -85q0 -63 -36 -101.5t-99 -38.5q-34 0 -57 12.5t-37.5 30.5t-21 39t-6.5 39t4.5 41.5t15.5 43.5q-8 19 -34.5 32.5t-62.5 13.5 q-46 0 -80.5 -23t-59 -61t-40.5 -87t-25.5 -100t-13 -100.5t-3.5 -89.5q0 -84 18 -139.5t46.5 -88t62.5 -45.5t66 -13q28 0 61.5 9t68 33t68 65.5t62.5 106.5l117 -57q-38 -86 -81 -146.5t-90 -101t-98 -62t-104 -29.5l-28 -257h-197l27 267q-64 16 -115.5 50.5t-87.5 88 t-55.5 126.5t-19.5 166z" /> +<glyph unicode="£" horiz-adv-x="1127" d="M49 72q0 33 14 61t39 51.5t59 43t75 34.5q11 18 19.5 42t14 48t8.5 46.5t3 38.5q0 48 -5 94t-12 82l-161 -3l10 158h114q-7 35 -10.5 73t-3.5 83q0 129 37.5 230t100.5 170.5t146 106t174 36.5q92 0 155.5 -24t102.5 -60t56.5 -78.5t17.5 -78.5q0 -35 -10 -65.5t-29 -53 t-46 -35t-61 -12.5q-35 0 -59 12t-39 29.5t-21.5 38.5t-6.5 39q0 27 10.5 59t32.5 57q-10 12 -32 22.5t-57 10.5q-48 0 -82 -18t-57.5 -48t-37.5 -68.5t-21 -79t-9.5 -80t-2.5 -71.5q0 -54 4 -102t11 -93h325l-8 -145l-294 -6q3 -11 3.5 -22t0.5 -21q0 -42 -10.5 -87.5 t-30.5 -88.5t-50 -80t-70 -64v-2q59 26 100 34.5t76 8.5q51 0 91.5 -16t75.5 -35.5t67 -35.5t67 -16q12 0 25.5 7t25.5 21.5t21.5 37t12.5 52.5h127q-7 -76 -27 -139t-52 -108.5t-76.5 -70.5t-101.5 -25q-41 0 -78.5 13t-73.5 32.5t-71.5 42t-71.5 43t-74.5 34.5t-81.5 16 q-12 -38 -31 -70.5t-43 -57.5t-51 -39t-54 -14q-30 0 -51 8.5t-34 23t-18.5 33.5t-5.5 40z" /> +<glyph unicode="¤" horiz-adv-x="1133" d="M91 172l125 134q-23 42 -34 90.5t-11 99.5q0 63 18.5 126t54.5 120l-116 141l151 116l96 -128q43 26 93.5 41t110.5 15t108.5 -15.5t90.5 -41.5l109 128l139 -121l-132 -141q50 -94 50 -194q0 -63 -17 -123.5t-49 -112.5l111 -134l-151 -116l-92 123q-91 -53 -210 -53 q-60 0 -110 13.5t-92 38.5l-103 -122zM420 519q0 -38 5.5 -80.5t19.5 -78.5t38 -60t62 -24q29 0 51.5 14.5t40 38t29.5 54t19.5 62.5t11 63t3.5 55q0 31 -5.5 69t-20 71.5t-39.5 56.5t-63 23q-32 0 -55.5 -15.5t-40.5 -40t-28 -54.5t-17 -59.5t-8.5 -54.5t-2.5 -40z" /> +<glyph unicode="¥" horiz-adv-x="1446" d="M96 1276l8 158h598l-7 -135q-45 3 -79.5 -6t-53 -29t-19 -50.5t22.5 -72.5q172 -313 185 -339.5t26 -54t21 -49.5h12q13 26 38 72.5t121.5 219t113 199.5t33 52t30.5 41v2l-157 -8l8 158h452l-7 -135q-36 -6 -66 -20t-58.5 -39.5t-57 -65t-61.5 -94.5l-220 -383l143 -1 l-7 -151l-211 -2l-6 -105l214 -1l-7 -151l-215 -2q-3 -42 -7 -77t-8 -55l164 6l-8 -158h-593l7 135q32 1 58 5.5t45.5 19t32 43.5t17.5 80l-218 -1l9 159l218 -1l6 102l-223 -1l9 159l107 -1l-243 388q-15 23 -27.5 50t-22 54t-14.5 50.5t-4 40.5q-33 -2 -55 -3.5t-44 -2.5z " /> +<glyph unicode="¦" horiz-adv-x="510" d="M85 -555l35 786h226l-49 -786h-212zM154 767l36 790h226l-50 -790h-212z" /> +<glyph unicode="§" horiz-adv-x="1079" d="M65 586q0 43 12 90t34.5 94t55.5 91.5t74 82.5q-22 30 -35.5 57.5t-20.5 54t-9.5 53.5t-2.5 57q1 39 12 83t33.5 87.5t57 83t81.5 70t107.5 48.5t135.5 18q82 0 149 -23t115 -60t74 -84t26 -96q0 -31 -9 -59.5t-26.5 -50.5t-43 -35t-58.5 -13t-56.5 11.5t-37.5 29 t-20.5 37.5t-6.5 37q0 23 6 46t21 45q-14 32 -50.5 51t-82.5 19q-48 0 -85 -16t-62.5 -41.5t-38.5 -56.5t-13 -61q0 -68 34.5 -117.5t85.5 -88.5t110 -72.5t107 -69.5q72 -54 122 -99.5t82 -93.5t46.5 -103.5t14.5 -128.5q0 -36 -13.5 -80.5t-37.5 -90t-56 -89t-68 -78.5 q11 -19 23.5 -40t23 -46t17 -53.5t6.5 -62.5q0 -39 -9.5 -83.5t-30 -87.5t-54 -83t-82 -70t-112 -48t-145.5 -18t-149 23t-115 60t-74 84t-26 96q0 30 9 59t26.5 51.5t43 36t58.5 13.5t56.5 -12t37.5 -29.5t20.5 -38t6.5 -37.5q0 -23 -6 -46.5t-21 -44.5q7 -16 21 -29 t32.5 -22t40.5 -14t45 -5q47 0 83.5 14.5t61.5 38t38.5 53.5t15.5 61q0 44 -16.5 81t-43.5 67.5t-61.5 56t-71.5 48t-73 42.5t-65 40q-53 35 -102 75t-87.5 88.5t-61.5 108.5t-23 134zM304 658q0 -52 22 -95t57.5 -80.5t81.5 -69.5t93.5 -61t92.5 -56.5t80 -55.5 q8 15 14.5 38t11.5 47.5t8 48t3 39.5q0 52 -22 95.5t-57.5 80.5t-81 68.5t-93 60t-93 56t-80.5 55.5q-8 -15 -15 -37.5t-12 -46.5t-7.5 -47.5t-2.5 -39.5z" /> +<glyph unicode="¨" horiz-adv-x="850" d="M113 1373q0 33 12 63t31.5 52.5t45.5 36t54 13.5t50.5 -11.5t38.5 -31t25 -45.5t9 -56q0 -35 -11 -65t-30 -52.5t-45 -35.5t-55 -13q-27 0 -50 11t-39.5 30.5t-26 46t-9.5 57.5zM469 1373q0 33 12 63t31.5 52.5t45.5 36t54 13.5t50.5 -11.5t38.5 -31t25 -45.5t9 -56 q0 -35 -11 -65.5t-30 -53t-45 -35t-55 -12.5q-27 0 -50 11t-39.5 30.5t-26 46t-9.5 57.5z" /> +<glyph unicode="©" horiz-adv-x="1822" d="M74 697q6 117 41 225t93.5 202.5t139 172t178 133t209 86t233.5 30.5q185 0 335 -67.5t254.5 -183.5t157.5 -271t44 -330q-6 -116 -41 -223.5t-94.5 -201t-139.5 -170t-176.5 -131t-205.5 -84.5t-226 -30q-125 0 -235 28.5t-201.5 81.5t-162 128.5t-118 169.5 t-69.5 203.5t-16 231.5zM219 697q-8 -148 34.5 -280t129 -231t214.5 -156.5t291 -57.5q159 0 289.5 57.5t225.5 156.5t150 231t63 280q5 99 -12 191.5t-55 173.5t-95.5 148.5t-132 116t-166 75t-196.5 26.5q-104 0 -198 -26.5t-174.5 -75t-146 -116t-113 -148.5 t-75.5 -173.5t-33 -191.5zM443 693q3 60 20 122.5t47 121t73.5 109t100 88t126 57.5t152.5 17q62 -2 121 -17.5t111 -53.5q0 6 0.5 33.5t0.5 30.5h146l-19 -359h-126q-5 61 -26 104.5t-52.5 71.5t-70.5 40.5t-80 12.5q-54 0 -104.5 -27t-89.5 -74.5t-64 -113t-29 -141.5 q-3 -69 15.5 -132.5t56.5 -112.5t94 -78.5t128 -30.5q74 -2 154 36t145 114l82 -83q-55 -70 -115.5 -115.5t-119.5 -72.5t-114 -37.5t-98 -10.5q-107 0 -195 39t-150 106.5t-94 159t-26 196.5z" /> +<glyph unicode="ª" horiz-adv-x="831" d="M97 993q0 103 27 190t78 150t125.5 98.5t169.5 35.5q19 0 46 -2t58 -5.5t62.5 -8.5t58.5 -12q-5 -33 -11.5 -79t-14 -96.5t-14.5 -103.5t-13 -100.5t-9.5 -86t-3.5 -60.5q0 -23 6 -31t14 -8q15 0 34.5 22.5t36.5 81.5l68 -20q-6 -28 -20 -64t-38 -67.5t-59 -53.5t-81 -22 q-58 0 -88.5 27t-30.5 94q0 17 2 38.5t5 38.5h-1q-24 -57 -50 -95.5t-53 -61t-55.5 -32t-58.5 -9.5q-36 0 -70 14.5t-60.5 44.5t-43 75.5t-16.5 107.5zM306 1011q-2 -54 11 -85t39 -31q19 0 37 20.5t34.5 56t31 81.5t25.5 97.5t18.5 104.5t10.5 101q-8 3 -28.5 6t-36.5 2 q-28 -2 -52.5 -20t-43 -59t-31 -108t-15.5 -166z" /> +<glyph unicode="«" horiz-adv-x="1001" d="M34 525l2 48l577 569l82 -89l-413 -507v-2l354 -486l-90 -84zM484 530l2 47l371 409l82 -69l-228 -355v-3l188 -356l-89 -70z" /> +<glyph unicode="¬" horiz-adv-x="1174" d="M116 547l10 188l920 -5l-22 -418h-173l7 238z" /> +<glyph unicode="­" horiz-adv-x="969" d="M106 550l11 207h751l-11 -200z" /> +<glyph unicode="®" horiz-adv-x="1822" d="M74 697q6 117 41 225t93.5 202.5t139 172t178 133t209 86t233.5 30.5q185 0 335 -67.5t254.5 -183.5t157.5 -271t44 -330q-6 -116 -41 -223.5t-94.5 -201t-139.5 -170t-176.5 -131t-205.5 -84.5t-226 -30q-125 0 -235 28.5t-201.5 81.5t-162 128.5t-118 169.5 t-69.5 203.5t-16 231.5zM219 697q-8 -148 34.5 -280t129 -231t214.5 -156.5t291 -57.5q159 0 289.5 57.5t225.5 156.5t150 231t63 280q5 99 -12 191.5t-55 173.5t-95.5 148.5t-132 116t-166 75t-196.5 26.5q-104 0 -198 -26.5t-174.5 -75t-146 -116t-113 -148.5 t-75.5 -173.5t-33 -191.5zM494 241l5 90q24 1 42.5 4.5t31.5 15.5t21 35.5t10 65.5l27 518q2 40 5.5 74.5t6.5 51.5q-11 -1 -104 -4l6 107l382 1q90 0 162 -15t120.5 -50.5t71.5 -92t16 -138.5q-4 -44 -18.5 -84.5t-43 -75.5t-72 -62.5t-104.5 -44.5v-1q26 -11 43.5 -34.5 t34.5 -52.5l45 -88q21 -35 37 -59t31 -39.5t32 -23t41 -8.5l-5 -90h-210q-23 19 -48 52t-49 77q-42 77 -65 121t-34.5 67.5t-16 33t-9.5 17.5q-22 -1 -39 -1t-39 1l-8 -141q-2 -37 -4 -72t-4 -52l116 4l-6 -107h-408zM814 731q17 -4 28.5 -5t28.5 -1q102 0 157.5 49.5 t60.5 140.5q3 60 -15.5 94t-46 51t-58 21.5t-51.5 4.5t-37.5 -5t-27.5 -17.5t-17.5 -34t-8.5 -54.5z" /> +<glyph unicode="¯" horiz-adv-x="775" d="M92 1288l9 190h582l-9 -183z" /> +<glyph unicode="°" horiz-adv-x="786" d="M95 1139q3 70 33 130t78.5 104t111 69t130.5 25q76 0 136 -25t101 -69t61 -104t17 -130q-4 -70 -34 -130.5t-79 -105t-111.5 -70t-130.5 -25.5q-76 0 -135.5 25.5t-100.5 70t-61 105t-16 130.5zM266 1133q0 -39 10 -72.5t29.5 -57.5t47.5 -37.5t64 -13.5q39 0 71 15.5 t55.5 42t36 61.5t12.5 75q0 83 -41 132t-114 49q-35 0 -66.5 -16t-54.5 -42.5t-36.5 -61.5t-13.5 -74z" /> +<glyph unicode="±" horiz-adv-x="1114" d="M63 1l9 174l921 8l-9 -182h-921zM93 567l10 190l361 -2l16 299h195l-16 -299l364 -1l-9 -183l-364 -2l-17 -315h-195l17 314z" /> +<glyph unicode="²" horiz-adv-x="770" d="M102 618q4 71 24 125t50.5 97.5t69.5 80.5t81 73q45 39 73.5 75.5t44.5 69t21.5 59.5t5.5 47q0 55 -27 80.5t-69 25.5q-20 0 -42 -8.5t-30 -21.5q14 -13 19 -33t5 -33t-5.5 -30.5t-18.5 -33t-33 -26.5t-49 -11q-46 0 -69.5 29.5t-23.5 72.5q0 31 19.5 68t57 68.5t92.5 53 t127 21.5q50 0 98 -11t85.5 -34.5t60 -61.5t22.5 -92q0 -44 -13 -80t-36.5 -66t-54.5 -57.5t-66.5 -55t-74.5 -58t-77 -66.5q-29 -27 -47.5 -49t-33.5 -49l248 -5q13 0 24.5 2.5t20 10.5t13.5 23t6 40h97l-24 -240h-571z" /> +<glyph unicode="³" horiz-adv-x="747" d="M89 797q1 22 9.5 43t22.5 37t33.5 26t42.5 11q28 1 46.5 -8t29.5 -24t15 -33.5t3 -36.5q0 -6 -2 -15t-6 -19.5t-10 -20.5t-15 -17q7 -10 18.5 -17t24.5 -11t25 -6t20 -2q31 0 57 11t45 30t30 45t13 56q3 65 -40.5 106t-124.5 42q-16 0 -36.5 -1t-32.5 -2l6 110l36 -2 t35 -1q39 0 66.5 13.5t45.5 34t26.5 45.5t9.5 49q2 55 -27 87.5t-81 32.5q-27 0 -46 -9t-27 -16q16 -14 21 -35t4 -32q-1 -14 -7 -31t-18.5 -32t-32 -25t-47.5 -9q-47 2 -72 30.5t-23 73.5q1 29 19.5 63t54 62.5t88.5 47.5t125 19q59 0 109 -13t85.5 -40t54.5 -67.5 t16 -94.5q-2 -30 -15 -58.5t-35 -53t-50.5 -43t-61.5 -26.5l-1 -2q96 -19 139.5 -72.5t43.5 -129.5q0 -57 -22.5 -106t-66.5 -85t-109 -57t-150 -21q-63 0 -112.5 17t-83 44.5t-50.5 63.5t-15 74z" /> +<glyph unicode="´" horiz-adv-x="597" d="M93 1241l182 286q17 26 41 45t51 26.5t53.5 3t49.5 -25.5q24 -21 30.5 -48.5t1 -55.5t-21.5 -54t-38 -44l-260 -216z" /> +<glyph unicode="¶" horiz-adv-x="1141" d="M95 1125q4 79 33.5 137t75.5 96t103 57t116 19h593l-107 -1956h-225l98 1814l-192 -2q-8 -137 -16 -287t-16.5 -305.5t-17.5 -314.5t-17.5 -314.5t-16.5 -305t-15 -285.5h-227l76 1343q-49 9 -95 29t-80.5 56t-54 89.5t-15.5 129.5z" /> +<glyph unicode="·" horiz-adv-x="465" d="M88 697q2 33 15.5 62.5t35.5 51.5t49.5 34.5t57.5 12.5q32 0 58.5 -12.5t45 -34.5t28 -51.5t7.5 -62.5t-13.5 -62t-31.5 -50.5t-47.5 -34t-60.5 -12.5q-34 0 -61 12.5t-46 34t-29 50.5t-8 62z" /> +<glyph unicode="¸" horiz-adv-x="676" d="M92 -424q16 3 41 8t53 12.5t56.5 17.5t51.5 23.5t38 30.5t16 38q1 26 -15 37.5t-39 12t-47.5 -7.5t-39.5 -20l-75 32l77 260h156l-69 -161h2q13 7 31.5 13t38.5 10.5t39 6.5t33 2q32 -1 59 -9.5t46 -26t29 -44t8 -63.5q-3 -48 -28 -85.5t-65.5 -66.5t-91 -50.5 t-103 -36.5t-102.5 -24.5t-90 -14.5z" /> +<glyph unicode="¹" horiz-adv-x="565" d="M84 1271l304 196h71l-35 -658q-2 -32 -4.5 -61t-4.5 -44l88 3l-5 -90h-359l4 77q19 1 34.5 4t27 13t18 30t8.5 55l24 471l-135 -76z" /> +<glyph unicode="º" horiz-adv-x="754" d="M97 1065q0 81 24.5 153.5t70 128t109.5 88t143 32.5q58 0 109 -21t89.5 -61t61 -98t22.5 -131q0 -80 -24.5 -154t-69.5 -131t-109 -91t-144 -34q-71 0 -123.5 25.5t-88 69t-53 101.5t-17.5 123zM312 1085q0 -52 4.5 -94.5t14.5 -73t25.5 -47t38.5 -16.5q29 0 50.5 22 t36 59t21.5 86.5t7 104.5q0 112 -18.5 174.5t-63.5 62.5q-26 0 -47.5 -20t-36.5 -57t-23.5 -88t-8.5 -113z" /> +<glyph unicode="»" horiz-adv-x="1003" d="M54 191l228 355v3l-188 356l89 70l326 -397l-2 -47l-371 -409zM298 55l413 507v2l-354 486l90 84l512 -551l-2 -48l-577 -569z" /> +<glyph unicode="¼" horiz-adv-x="1597" d="M100 1271l304 196h71l-35 -658q-2 -32 -4.5 -61t-4.5 -44l88 3l-5 -90h-359l4 77q19 1 34.5 4t27 13t18 30t8.5 55l24 471l-135 -76zM256 63l977 1404l130 -106l-983 -1394zM876 200l6 119l-1 1l463 522h71l-28 -531l121 -2l-6 -113l-121 1l-1 -13q-2 -32 -4.5 -61 t-4.5 -44l88 3l-5 -90h-363l4 77q19 1 35 4t27.5 13t18.5 30t9 55l1 27zM1018 317l178 -3l22 244h-2z" /> +<glyph unicode="½" horiz-adv-x="1672" d="M100 1271l304 196h71l-35 -658q-2 -32 -4.5 -61t-4.5 -44l88 3l-5 -90h-359l4 77q19 1 34.5 4t27 13t18 30t8.5 55l24 471l-135 -76zM246 63l977 1404l130 -106l-983 -1394zM977 -9q4 71 24 125t50.5 97.5t69.5 80.5t81 73q45 39 73.5 75.5t44.5 69t21.5 59.5t5.5 47 q0 55 -27 80.5t-69 25.5q-20 0 -42 -8.5t-30 -21.5q14 -13 19 -33t5 -33t-5.5 -30.5t-18.5 -33t-33 -26.5t-49 -11q-46 0 -69.5 29.5t-23.5 72.5q0 31 19.5 68t57 68.5t92.5 53t127 21.5q50 0 98 -11t85.5 -34.5t60 -61.5t22.5 -92q0 -44 -13 -80t-36.5 -66t-54.5 -57.5 t-66.5 -55t-74.5 -58t-77 -66.5q-29 -27 -47.5 -49t-33.5 -49l248 -5q13 0 24.5 2.5t20 10.5t13.5 23t6 40h97l-24 -240h-571z" /> +<glyph unicode="¾" horiz-adv-x="1761" d="M84 797q1 22 9.5 43t22.5 37t33.5 26t42.5 11q28 1 46.5 -8t29.5 -24t15 -33.5t3 -36.5q0 -6 -2 -15t-6 -19.5t-10 -20.5t-15 -17q7 -10 18.5 -17t24.5 -11t25 -6t20 -2q31 0 57 11t45 30t30 45t13 56q3 65 -40.5 106t-124.5 42q-16 0 -36.5 -1t-32.5 -2l6 110l36 -2 t35 -1q39 0 66.5 13.5t45.5 34t26.5 45.5t9.5 49q2 55 -27 87.5t-81 32.5q-27 0 -46 -9t-27 -16q16 -14 21 -35t4 -32q-1 -14 -7 -31t-18.5 -32t-32 -25t-47.5 -9q-47 2 -72 30.5t-23 73.5q1 29 19.5 63t54 62.5t88.5 47.5t125 19q59 0 109 -13t85.5 -40t54.5 -67.5 t16 -94.5q-2 -30 -15 -58.5t-35 -53t-50.5 -43t-61.5 -26.5l-1 -2q96 -19 139.5 -72.5t43.5 -129.5q0 -57 -22.5 -106t-66.5 -85t-109 -57t-150 -21q-63 0 -112.5 17t-83 44.5t-50.5 63.5t-15 74zM387 63l977 1404l130 -106l-983 -1394zM1047 200l6 119l-1 1l463 522h71 l-28 -531l121 -2l-6 -113l-121 1l-1 -13q-2 -32 -4.5 -61t-4.5 -44l88 3l-5 -90h-363l4 77q19 1 35 4t27.5 13t18.5 30t9 55l1 27zM1189 317l178 -3l22 244h-2z" /> +<glyph unicode="¿" horiz-adv-x="979" d="M16 -117q4 72 38.5 133t84.5 113.5t108 97t107 83.5t82.5 73.5t35.5 67.5q1 17 -7 30.5t-25 21.5t-44 8.5t-65 -8.5l-27 105q27 14 55 22.5t55 13.5t51.5 7t43.5 2q33 0 64.5 -7.5t55.5 -24.5t38 -44t12 -66q-1 -25 -9 -48t-27.5 -51t-54 -64.5t-89.5 -87.5 q-38 -36 -70.5 -71t-57.5 -74.5t-40.5 -85.5t-18.5 -105q-2 -48 4.5 -89t26 -71t53 -47t85.5 -17q25 0 49.5 6t45.5 15.5t37.5 21t26.5 23.5q-10 11 -16.5 25.5t-10.5 30t-5.5 30.5t-0.5 25q2 21 12.5 44.5t29 43t45 32t62.5 10.5q63 -3 93.5 -44t27.5 -102q-3 -55 -38 -109 t-94.5 -97.5t-139 -70.5t-171.5 -27q-122 0 -203.5 28t-130.5 74t-68 104.5t-16 119.5zM351 898q2 33 16 62t36 50.5t50 34t57 12.5q30 0 56 -12.5t45 -34t29 -50.5t8 -62q-1 -33 -15 -62.5t-35.5 -51.5t-49 -34.5t-57.5 -12.5q-32 0 -58.5 12.5t-45 34.5t-28 51.5 t-8.5 62.5z" /> +<glyph unicode="À" d="M-24 0l7 141q42 0 73 19.5t54.5 51.5t42.5 74.5t39 88.5l457 1095h137l379 -1116q5 -15 12.5 -40t14.5 -53.5t12.5 -57t7.5 -51.5l118 6l-8 -158h-547l7 135q43 0 66.5 13.5t32 38t4.5 57.5t-16 72l-36 112l-449 -8l-38 -96q-6 -14 -14.5 -35t-18.5 -44.5t-20.5 -46 t-19.5 -40.5l150 6l-9 -164h-438zM438 1879.5q3 26.5 24 52.5q20 25 46 34t53 5t53 -18.5t46 -36.5l223 -239l-79 -101l-288 172q-24 15 -43 35.5t-28.5 45t-6.5 51zM444 573h345l-80 257q-23 74 -40 148t-24 131h-2q-8 -35 -32 -104t-62 -166z" /> +<glyph unicode="Á" d="M-24 0l7 141q42 0 73 19.5t54.5 51.5t42.5 74.5t39 88.5l457 1095h137l379 -1116q5 -15 12.5 -40t14.5 -53.5t12.5 -57t7.5 -51.5l118 6l-8 -158h-547l7 135q43 0 66.5 13.5t32 38t4.5 57.5t-16 72l-36 112l-449 -8l-38 -96q-6 -14 -14.5 -35t-18.5 -44.5t-20.5 -46 t-19.5 -40.5l150 6l-9 -164h-438zM444 573h345l-80 257q-23 74 -40 148t-24 131h-2q-8 -35 -32 -104t-62 -166zM631 1675l249 242q22 22 50 36.5t55.5 18t52.5 -5.5t42 -34q18 -26 18 -52.5t-11.5 -51t-32.5 -45t-46 -35.5l-308 -172z" /> +<glyph unicode="Â" d="M-24 0l7 141q42 0 73 19.5t54.5 51.5t42.5 74.5t39 88.5l457 1095h137l379 -1116q5 -15 12.5 -40t14.5 -53.5t12.5 -57t7.5 -51.5l118 6l-8 -158h-547l7 135q43 0 66.5 13.5t32 38t4.5 57.5t-16 72l-36 112l-449 -8l-38 -96q-6 -14 -14.5 -35t-18.5 -44.5t-20.5 -46 t-19.5 -40.5l150 6l-9 -164h-438zM298 1681l434 307h40l384 -307l-57 -85l-367 179l-394 -176zM444 573h345l-80 257q-23 74 -40 148t-24 131h-2q-8 -35 -32 -104t-62 -166z" /> +<glyph unicode="Ã" d="M-24 0l7 141q42 0 73 19.5t54.5 51.5t42.5 74.5t39 88.5l457 1095h137l379 -1116q5 -15 12.5 -40t14.5 -53.5t12.5 -57t7.5 -51.5l118 6l-8 -158h-547l7 135q43 0 66.5 13.5t32 38t4.5 57.5t-16 72l-36 112l-449 -8l-38 -96q-6 -14 -14.5 -35t-18.5 -44.5t-20.5 -46 t-19.5 -40.5l150 6l-9 -164h-438zM298 1702q23 57 55.5 98t70 67t77 38.5t76.5 12.5q51 0 89.5 -16t72 -34.5t66.5 -34.5t72 -16q21 0 45.5 8.5t48.5 25t46 40t37 52.5l106 -54q-27 -80 -61.5 -129.5t-70.5 -77t-72.5 -37.5t-68.5 -10q-48 0 -85 16t-71 34.5t-69 34.5 t-77 16q-20 0 -43 -4t-47.5 -15t-48 -30.5t-44.5 -49.5zM444 573h345l-80 257q-23 74 -40 148t-24 131h-2q-8 -35 -32 -104t-62 -166z" /> +<glyph unicode="Ä" d="M-24 0l7 141q42 0 73 19.5t54.5 51.5t42.5 74.5t39 88.5l457 1095h137l379 -1116q5 -15 12.5 -40t14.5 -53.5t12.5 -57t7.5 -51.5l118 6l-8 -158h-547l7 135q43 0 66.5 13.5t32 38t4.5 57.5t-16 72l-36 112l-449 -8l-38 -96q-6 -14 -14.5 -35t-18.5 -44.5t-20.5 -46 t-19.5 -40.5l150 6l-9 -164h-438zM414 1777q0 34 11.5 64t31 52.5t45.5 36t54 13.5q27 0 49.5 -11.5t38.5 -31t24.5 -46t8.5 -56.5q0 -33 -11 -63t-30 -53t-44.5 -36.5t-54.5 -13.5q-27 0 -49.5 11t-39 30.5t-25.5 46t-9 57.5zM444 573h345l-80 257q-23 74 -40 148t-24 131 h-2q-8 -35 -32 -104t-62 -166zM771 1777q0 34 11.5 64t31 52.5t45.5 36t54 13.5q27 0 49.5 -11.5t38.5 -31t24.5 -46t8.5 -56.5q0 -33 -11 -63.5t-30 -53t-44.5 -36t-54.5 -13.5q-27 0 -49.5 11t-39 30.5t-25.5 46t-9 57.5z" /> +<glyph unicode="Å" d="M-24 0l7 141q42 0 73 19.5t54.5 51.5t42.5 74.5t39 88.5l457 1095h137l379 -1116q5 -15 12.5 -40t14.5 -53.5t12.5 -57t7.5 -51.5l118 6l-8 -158h-547l7 135q43 0 66.5 13.5t32 38t4.5 57.5t-16 72l-36 112l-449 -8l-38 -96q-6 -14 -14.5 -35t-18.5 -44.5t-20.5 -46 t-19.5 -40.5l150 6l-9 -164h-438zM444 573h345l-80 257q-23 74 -40 148t-24 131h-2q-8 -35 -32 -104t-62 -166zM457 1851q0 59 24 107.5t62.5 83.5t87 54.5t97.5 19.5q48 0 97 -16t88.5 -48t64.5 -81t25 -116q0 -62 -24.5 -110.5t-63.5 -82.5t-87.5 -51.5t-96.5 -17.5 q-50 0 -99 15t-88 46.5t-63 80.5t-24 116zM634 1868q0 -80 28 -125t75 -45q35 0 61.5 33t26.5 99q0 88 -25.5 135t-71.5 47q-26 0 -44 -13.5t-29 -34.5t-16 -46.5t-5 -49.5z" /> +<glyph unicode="Æ" horiz-adv-x="1906" d="M-49 0l7 135q36 0 70 20t66 51t61.5 69.5t57.5 74.5l710 930v2l-154 -6l8 158h1020l-9 -397h-135q4 83 -16.5 135t-55 81t-78 39t-85.5 9l-74 -2q-32 -1 -58 -6.5t-44.5 -23.5t-29.5 -53t-14 -95l-16 -307h241v177h158l-26 -498h-135q3 64 -11 101t-40 55t-62.5 21.5 t-78.5 2.5l-54 -1l-17 -336q-2 -28 -4 -54.5t-4 -50.5t-4.5 -43.5t-5.5 -32.5l275 1q45 0 90.5 15t83 49.5t62 91t29.5 139.5h135l-36 -451h-1076l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l5 111q-95 -2 -199 -5t-201 -5l-78 -105q-35 -48 -69 -89.5t-69 -66.5v-2l164 7 l-8 -158h-458zM576 565h301l35 461h-2q-20 -32 -34.5 -54t-30.5 -45t-37 -51.5t-54 -72.5z" /> +<glyph unicode="Ç" horiz-adv-x="1419" d="M79 696q5 93 30 186.5t69.5 179t108 159.5t146 129t183.5 86t220 31q40 0 84.5 -6.5t89.5 -19.5t89 -31.5t84 -43.5h2l-3 87h158l-25 -479h-134q-19 173 -100.5 263t-225.5 91q-107 0 -189.5 -50.5t-140 -133.5t-89 -189t-37.5 -217q-7 -133 16 -245.5t74.5 -194.5 t130 -128.5t182.5 -47.5q61 0 126 14t129.5 45t125 79t112.5 116l81 -81q-80 -104 -165.5 -168t-168 -99.5t-159.5 -48t-140 -12.5h-13.5t-12.5 1l-46 -106h2q13 7 31.5 13t38.5 10.5t39 6.5t33 2q32 -1 59.5 -11t47.5 -28.5t31 -46.5t9 -65q-3 -48 -29 -87.5t-66.5 -72 t-92 -57t-105 -42.5t-104 -30t-90.5 -17l-10 112q16 3 41.5 9.5t53.5 16.5t56.5 23t51.5 29t38 34.5t16 39.5q1 28 -14.5 39.5t-38.5 11.5t-47.5 -9.5t-40.5 -21.5l-83 32l67 235q-119 28 -212 93.5t-156 158.5t-94 209.5t-24 246.5z" /> +<glyph unicode="È" horiz-adv-x="1276" d="M72 0l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l41 785q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-154 -6l8 158h1020l-9 -397h-135q4 83 -16.5 135t-55 81t-78 39t-85.5 9l-74 -2q-32 -1 -58 -6.5t-44.5 -23.5t-29.5 -53t-14 -95l-16 -307h241v177h158l-26 -498h-135 q3 64 -11 101t-40 55t-62.5 21.5t-78.5 2.5l-54 -1l-17 -336q-2 -28 -4 -54.5t-4 -50.5t-4.5 -43.5t-5.5 -32.5l275 1q45 0 90.5 15t83 49.5t62 91t29.5 139.5h135l-36 -451h-1076zM497 1879.5q3 26.5 24 52.5q20 25 46 34t53 5t53 -18.5t46 -36.5l223 -239l-79 -101 l-288 172q-24 15 -43 35.5t-28.5 45t-6.5 51z" /> +<glyph unicode="É" horiz-adv-x="1276" d="M72 0l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l41 785q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-154 -6l8 158h1020l-9 -397h-135q4 83 -16.5 135t-55 81t-78 39t-85.5 9l-74 -2q-32 -1 -58 -6.5t-44.5 -23.5t-29.5 -53t-14 -95l-16 -307h241v177h158l-26 -498h-135 q3 64 -11 101t-40 55t-62.5 21.5t-78.5 2.5l-54 -1l-17 -336q-2 -28 -4 -54.5t-4 -50.5t-4.5 -43.5t-5.5 -32.5l275 1q45 0 90.5 15t83 49.5t62 91t29.5 139.5h135l-36 -451h-1076zM578 1675l249 242q22 22 50 36.5t55.5 18t52.5 -5.5t42 -34q18 -26 18 -52.5t-11.5 -51 t-32.5 -45t-46 -35.5l-308 -172z" /> +<glyph unicode="Ê" horiz-adv-x="1276" d="M72 0l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l41 785q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-154 -6l8 158h1020l-9 -397h-135q4 83 -16.5 135t-55 81t-78 39t-85.5 9l-74 -2q-32 -1 -58 -6.5t-44.5 -23.5t-29.5 -53t-14 -95l-16 -307h241v177h158l-26 -498h-135 q3 64 -11 101t-40 55t-62.5 21.5t-78.5 2.5l-54 -1l-17 -336q-2 -28 -4 -54.5t-4 -50.5t-4.5 -43.5t-5.5 -32.5l275 1q45 0 90.5 15t83 49.5t62 91t29.5 139.5h135l-36 -451h-1076zM306 1681l434 307h40l384 -307l-57 -85l-367 179l-394 -176z" /> +<glyph unicode="Ë" horiz-adv-x="1276" d="M72 0l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l41 785q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-154 -6l8 158h1020l-9 -397h-135q4 83 -16.5 135t-55 81t-78 39t-85.5 9l-74 -2q-32 -1 -58 -6.5t-44.5 -23.5t-29.5 -53t-14 -95l-16 -307h241v177h158l-26 -498h-135 q3 64 -11 101t-40 55t-62.5 21.5t-78.5 2.5l-54 -1l-17 -336q-2 -28 -4 -54.5t-4 -50.5t-4.5 -43.5t-5.5 -32.5l275 1q45 0 90.5 15t83 49.5t62 91t29.5 139.5h135l-36 -451h-1076zM437 1777q0 34 11.5 64t31 52.5t45.5 36t54 13.5q27 0 49.5 -11.5t38.5 -31t24.5 -46 t8.5 -56.5q0 -33 -11 -63t-30 -53t-44.5 -36.5t-54.5 -13.5q-27 0 -49.5 11t-39 30.5t-25.5 46t-9 57.5zM794 1777q0 34 11.5 64t31 52.5t45.5 36t54 13.5q27 0 49.5 -11.5t38.5 -31t24.5 -46t8.5 -56.5q0 -33 -11 -63.5t-30 -53t-44.5 -36t-54.5 -13.5q-27 0 -49.5 11 t-39 30.5t-25.5 46t-9 57.5z" /> +<glyph unicode="Ì" horiz-adv-x="787" d="M72 0l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l41 785q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-154 -6l8 158h583l-7 -135q-35 -2 -62 -7t-47 -22t-31.5 -52t-14.5 -97l-41 -785q-2 -28 -4 -55t-4 -51.5t-4.5 -44.5t-5.5 -33l154 6l-8 -158h-583zM88 1879.5 q3 26.5 24 52.5q20 25 46 34t53 5t53 -18.5t46 -36.5l223 -239l-79 -101l-288 172q-24 15 -43 35.5t-28.5 45t-6.5 51z" /> +<glyph unicode="Í" horiz-adv-x="788" d="M72 0l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l41 785q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-154 -6l8 158h583l-7 -135q-35 -2 -62 -7t-47 -22t-31.5 -52t-14.5 -97l-41 -785q-2 -28 -4 -55t-4 -51.5t-4.5 -44.5t-5.5 -33l154 6l-8 -158h-583zM312 1675l249 242 q22 22 50 36.5t55.5 18t52.5 -5.5t42 -34q18 -26 18 -52.5t-11.5 -51t-32.5 -45t-46 -35.5l-308 -172z" /> +<glyph unicode="Î" horiz-adv-x="788" d="M30 1681l424 307h40l374 -307l-57 -85l-357 179l-384 -176zM72 0l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l41 785q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33q-17 -1 -39 -2l-44 -2t-41 -1.5t-30 -0.5l8 158h583l-7 -135q-35 -2 -62 -7t-47 -22t-31.5 -52t-14.5 -97 l-41 -785q-2 -28 -4 -55t-4 -51.5t-4.5 -44.5t-5.5 -33l154 6l-8 -158h-583z" /> +<glyph unicode="Ï" horiz-adv-x="788" d="M72 0l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l41 785q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-154 -6l8 158h583l-7 -135q-35 -2 -62 -7t-47 -22t-31.5 -52t-14.5 -97l-41 -785q-2 -28 -4 -55t-4 -51.5t-4.5 -44.5t-5.5 -33l154 6l-8 -158h-583zM155 1777 q0 34 11.5 64t31 52.5t45.5 36t54 13.5q27 0 49.5 -11.5t38.5 -31t24.5 -46t8.5 -56.5q0 -33 -11 -63t-30 -53t-44.5 -36.5t-54.5 -13.5q-27 0 -49.5 11t-39 30.5t-25.5 46t-9 57.5zM512 1777q0 34 11.5 64t31 52.5t45.5 36t54 13.5q27 0 49.5 -11.5t38.5 -31t24.5 -46 t8.5 -56.5q0 -33 -11 -63.5t-30 -53t-44.5 -36t-54.5 -13.5q-27 0 -49.5 11t-39 30.5t-25.5 46t-9 57.5z" /> +<glyph unicode="Ð" horiz-adv-x="1546" d="M48 618l10 201h202l15 279q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33q-17 -1 -39 -2l-44 -2t-41 -1.5t-30 -0.5l8 158l592 2q135 0 243.5 -28t192.5 -78t144 -118t97 -146.5t52.5 -164t11.5 -170.5q-4 -83 -27 -169.5t-67 -168t-110.5 -153t-156.5 -125t-206 -84.5t-259 -31 h-582l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l16 309zM509 152q15 1 40.5 1t54 -1t56 -1.5t45.5 -0.5q112 0 195 45.5t139 121t86 172.5t35 199q8 157 -18.5 271t-83 188.5t-140.5 111.5t-190 40q-38 1 -66.5 -4t-48.5 -23t-31 -53t-14 -94l-17 -306h208l-10 -187 l-208 -4l-15 -292q-1 -28 -3 -55t-4 -51.5t-4.5 -44.5t-5.5 -33z" /> +<glyph unicode="Ñ" horiz-adv-x="1581" d="M74 0l8 135q34 2 61.5 7t47 22t31.5 52t15 97l36 785q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-155 -6l9 158h321q633 -860 663.5 -907.5t53.5 -82.5h2l34 654q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-155 -6l9 158h466l-7 -135q-35 -2 -62.5 -7t-47 -22t-31.5 -52 t-15 -97l-60 -1141h-174l-611 842q-24 34 -51 72.5t-53 80.5h-2l-30 -639q-2 -28 -4 -55t-4 -51.5t-4.5 -44.5t-5.5 -33l155 6l-9 -158h-467zM422 1702q23 57 55.5 98t70 67t77 38.5t76.5 12.5q51 0 89.5 -16t72 -34.5t66.5 -34.5t72 -16q21 0 45.5 8.5t48.5 25t46 40 t37 52.5l106 -54q-27 -80 -61.5 -129.5t-70.5 -77t-72.5 -37.5t-68.5 -10q-48 0 -85 16t-71 34.5t-69 34.5t-77 16q-20 0 -43 -4t-47.5 -15t-48 -30.5t-44.5 -49.5z" /> +<glyph unicode="Ò" horiz-adv-x="1560" d="M81 717q4 86 27.5 175t67 172t105.5 156.5t144.5 128.5t184 86.5t222.5 31.5q124 0 223 -32t174 -87t127.5 -128.5t85 -156.5t45 -172t8.5 -174t-28 -173.5t-66.5 -171.5t-104.5 -157t-144 -129t-183 -87t-222 -32q-130 0 -231 31t-176.5 84.5t-127 126t-82.5 156 t-42.5 173.5t-6.5 179zM397 741q-4 -64 1.5 -136t21.5 -142.5t45 -135t72 -114t102 -78.5t137 -28q71 0 127.5 25.5t100 68.5t75.5 100t53.5 121t33 130.5t14.5 129.5q7 141 -12 260t-65.5 205.5t-122.5 134.5t-183 45q-70 -2 -126 -28.5t-99.5 -70.5t-75 -102t-52.5 -122.5 t-32.5 -132t-14.5 -130.5zM590 1879.5q3 26.5 24 52.5q20 25 46 34t53 5t53 -18.5t46 -36.5l223 -239l-79 -101l-288 172q-24 15 -43 35.5t-28.5 45t-6.5 51z" /> +<glyph unicode="Ó" horiz-adv-x="1560" d="M81 717q4 86 27.5 175t67 172t105.5 156.5t144.5 128.5t184 86.5t222.5 31.5q124 0 223 -32t174 -87t127.5 -128.5t85 -156.5t45 -172t8.5 -174t-28 -173.5t-66.5 -171.5t-104.5 -157t-144 -129t-183 -87t-222 -32q-130 0 -231 31t-176.5 84.5t-127 126t-82.5 156 t-42.5 173.5t-6.5 179zM397 741q-4 -64 1.5 -136t21.5 -142.5t45 -135t72 -114t102 -78.5t137 -28q71 0 127.5 25.5t100 68.5t75.5 100t53.5 121t33 130.5t14.5 129.5q7 141 -12 260t-65.5 205.5t-122.5 134.5t-183 45q-70 -2 -126 -28.5t-99.5 -70.5t-75 -102t-52.5 -122.5 t-32.5 -132t-14.5 -130.5zM691 1675l249 242q22 22 50 36.5t55.5 18t52.5 -5.5t42 -34q18 -26 18 -52.5t-11.5 -51t-32.5 -45t-46 -35.5l-308 -172z" /> +<glyph unicode="Ô" horiz-adv-x="1560" d="M81 717q4 86 27.5 175t67 172t105.5 156.5t144.5 128.5t184 86.5t222.5 31.5q124 0 223 -32t174 -87t127.5 -128.5t85 -156.5t45 -172t8.5 -174t-28 -173.5t-66.5 -171.5t-104.5 -157t-144 -129t-183 -87t-222 -32q-130 0 -231 31t-176.5 84.5t-127 126t-82.5 156 t-42.5 173.5t-6.5 179zM397 741q-4 -64 1.5 -136t21.5 -142.5t45 -135t72 -114t102 -78.5t137 -28q71 0 127.5 25.5t100 68.5t75.5 100t53.5 121t33 130.5t14.5 129.5q7 141 -12 260t-65.5 205.5t-122.5 134.5t-183 45q-70 -2 -126 -28.5t-99.5 -70.5t-75 -102t-52.5 -122.5 t-32.5 -132t-14.5 -130.5zM460 1681l434 307h40l384 -307l-57 -85l-367 179l-394 -176z" /> +<glyph unicode="Õ" horiz-adv-x="1560" d="M81 717q4 86 27.5 175t67 172t105.5 156.5t144.5 128.5t184 86.5t222.5 31.5q124 0 223 -32t174 -87t127.5 -128.5t85 -156.5t45 -172t8.5 -174t-28 -173.5t-66.5 -171.5t-104.5 -157t-144 -129t-183 -87t-222 -32q-130 0 -231 31t-176.5 84.5t-127 126t-82.5 156 t-42.5 173.5t-6.5 179zM397 741q-4 -64 1.5 -136t21.5 -142.5t45 -135t72 -114t102 -78.5t137 -28q71 0 127.5 25.5t100 68.5t75.5 100t53.5 121t33 130.5t14.5 129.5q7 141 -12 260t-65.5 205.5t-122.5 134.5t-183 45q-70 -2 -126 -28.5t-99.5 -70.5t-75 -102t-52.5 -122.5 t-32.5 -132t-14.5 -130.5zM458 1702q23 57 55.5 98t70 67t77 38.5t76.5 12.5q51 0 89.5 -16t72 -34.5t66.5 -34.5t72 -16q21 0 45.5 8.5t48.5 25t46 40t37 52.5l106 -54q-27 -80 -61.5 -129.5t-70.5 -77t-72.5 -37.5t-68.5 -10q-48 0 -85 16t-71 34.5t-69 34.5t-77 16 q-20 0 -43 -4t-47.5 -15t-48 -30.5t-44.5 -49.5z" /> +<glyph unicode="Ö" horiz-adv-x="1560" d="M81 717q4 86 27.5 175t67 172t105.5 156.5t144.5 128.5t184 86.5t222.5 31.5q124 0 223 -32t174 -87t127.5 -128.5t85 -156.5t45 -172t8.5 -174t-28 -173.5t-66.5 -171.5t-104.5 -157t-144 -129t-183 -87t-222 -32q-130 0 -231 31t-176.5 84.5t-127 126t-82.5 156 t-42.5 173.5t-6.5 179zM397 741q-4 -64 1.5 -136t21.5 -142.5t45 -135t72 -114t102 -78.5t137 -28q71 0 127.5 25.5t100 68.5t75.5 100t53.5 121t33 130.5t14.5 129.5q7 141 -12 260t-65.5 205.5t-122.5 134.5t-183 45q-70 -2 -126 -28.5t-99.5 -70.5t-75 -102t-52.5 -122.5 t-32.5 -132t-14.5 -130.5zM587 1777q0 34 11.5 64t31 52.5t45.5 36t54 13.5q27 0 49.5 -11.5t38.5 -31t24.5 -46t8.5 -56.5q0 -33 -11 -63t-30 -53t-44.5 -36.5t-54.5 -13.5q-27 0 -49.5 11t-39 30.5t-25.5 46t-9 57.5zM944 1777q0 34 11.5 64t31 52.5t45.5 36t54 13.5 q27 0 49.5 -11.5t38.5 -31t24.5 -46t8.5 -56.5q0 -33 -11 -63.5t-30 -53t-44.5 -36t-54.5 -13.5q-27 0 -49.5 11t-39 30.5t-25.5 46t-9 57.5z" /> +<glyph unicode="×" horiz-adv-x="1103" d="M57 298l346 325l-309 323l162 151l307 -327l354 341l130 -147l-346 -336l313 -344l-160 -148l-316 345l-346 -332z" /> +<glyph unicode="Ø" horiz-adv-x="1559" d="M81 717q4 86 27.5 175t67 172t105.5 156.5t144.5 128.5t184 86.5t222.5 31.5q90 0 165.5 -17t139.5 -47l128 201l157 -101l-132 -207q58 -56 99 -125t65.5 -145t34.5 -154.5t6 -154.5q-4 -85 -28 -173.5t-66.5 -171.5t-104.5 -157t-144 -129t-183 -87t-222 -32 q-81 0 -150 12t-128 35l-143 -223l-147 102l133 210q-68 55 -114 125.5t-73.5 151t-38 166.5t-5.5 171zM396 642.5q2 -51.5 9.5 -103.5t21 -103.5t34.5 -98.5l573 903q-45 44 -104 66.5t-133 20.5q-70 -2 -126 -28.5t-99.5 -70.5t-75 -102t-52.5 -122.5t-32.5 -132 t-14.5 -130.5q-3 -47 -1 -98.5zM573 177q40 -33 90 -52t113 -18q71 0 127.5 25.5t100 68.5t75.5 100t53.5 121t33 130.5t14.5 129.5q5 109 -5 204.5t-36 174.5z" /> +<glyph unicode="Ù" horiz-adv-x="1547" d="M89 1276l8 158h584l-7 -135q-35 -2 -62 -7t-47 -22t-31.5 -52t-14.5 -97l-30 -563q-7 -129 16.5 -212t66.5 -132t100.5 -69t119.5 -22q84 -3 152 22.5t117 80t78 138.5t35 197l28 537q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-154 -6l8 158h474l-7 -135q-35 -2 -62 -7 t-47 -22t-31.5 -52t-14.5 -97l-27 -513q-9 -177 -59 -299t-131 -198t-187.5 -110t-229.5 -34q-115 0 -202.5 22.5t-150.5 64t-103.5 99.5t-63.5 128.5t-30.5 151.5t-2.5 169l26 496q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33zM501 1879.5q3 26.5 24 52.5q20 25 46 34t53 5 t53 -18.5t46 -36.5l223 -239l-79 -101l-288 172q-24 15 -43 35.5t-28.5 45t-6.5 51z" /> +<glyph unicode="Ú" horiz-adv-x="1547" d="M89 1276l8 158h584l-7 -135q-35 -2 -62 -7t-47 -22t-31.5 -52t-14.5 -97l-30 -563q-7 -129 16.5 -212t66.5 -132t100.5 -69t119.5 -22q84 -3 152 22.5t117 80t78 138.5t35 197l28 537q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-154 -6l8 158h474l-7 -135q-35 -2 -62 -7 t-47 -22t-31.5 -52t-14.5 -97l-27 -513q-9 -177 -59 -299t-131 -198t-187.5 -110t-229.5 -34q-115 0 -202.5 22.5t-150.5 64t-103.5 99.5t-63.5 128.5t-30.5 151.5t-2.5 169l26 496q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33zM727 1675l249 242q22 22 50 36.5t55.5 18 t52.5 -5.5t42 -34q18 -26 18 -52.5t-11.5 -51t-32.5 -45t-46 -35.5l-308 -172z" /> +<glyph unicode="Û" horiz-adv-x="1547" d="M89 1276l8 158h584l-7 -135q-35 -2 -62 -7t-47 -22t-31.5 -52t-14.5 -97l-30 -563q-7 -129 16.5 -212t66.5 -132t100.5 -69t119.5 -22q84 -3 152 22.5t117 80t78 138.5t35 197l28 537q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-154 -6l8 158h474l-7 -135q-35 -2 -62 -7 t-47 -22t-31.5 -52t-14.5 -97l-27 -513q-9 -177 -59 -299t-131 -198t-187.5 -110t-229.5 -34q-115 0 -202.5 22.5t-150.5 64t-103.5 99.5t-63.5 128.5t-30.5 151.5t-2.5 169l26 496q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33zM453 1681l434 307h40l384 -307l-57 -85l-367 179 l-394 -176z" /> +<glyph unicode="Ü" horiz-adv-x="1547" d="M89 1276l8 158h584l-7 -135q-35 -2 -62 -7t-47 -22t-31.5 -52t-14.5 -97l-30 -563q-7 -129 16.5 -212t66.5 -132t100.5 -69t119.5 -22q84 -3 152 22.5t117 80t78 138.5t35 197l28 537q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-154 -6l8 158h474l-7 -135q-35 -2 -62 -7 t-47 -22t-31.5 -52t-14.5 -97l-27 -513q-9 -177 -59 -299t-131 -198t-187.5 -110t-229.5 -34q-115 0 -202.5 22.5t-150.5 64t-103.5 99.5t-63.5 128.5t-30.5 151.5t-2.5 169l26 496q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33zM584 1777q0 34 11.5 64t31 52.5t45.5 36t54 13.5 q27 0 49.5 -11.5t38.5 -31t24.5 -46t8.5 -56.5q0 -33 -11 -63t-30 -53t-44.5 -36.5t-54.5 -13.5q-27 0 -49.5 11t-39 30.5t-25.5 46t-9 57.5zM941 1777q0 34 11.5 64t31 52.5t45.5 36t54 13.5q27 0 49.5 -11.5t38.5 -31t24.5 -46t8.5 -56.5q0 -33 -11 -63.5t-30 -53 t-44.5 -36t-54.5 -13.5q-27 0 -49.5 11t-39 30.5t-25.5 46t-9 57.5z" /> +<glyph unicode="Ý" horiz-adv-x="1362" d="M48 1276l8 158h598l-7 -135q-45 3 -79 -5.5t-52.5 -28.5t-19 -51t21.5 -73l143 -257q9 -16 20.5 -38t25.5 -50.5t27 -57.5t20 -51h3q11 23 37.5 72.5t68.5 127.5q155 275 171.5 302t33 52t30.5 41v2l-157 -8l8 158h452l-7 -135q-36 -6 -66 -20t-58.5 -39.5t-57 -65 t-61.5 -94.5l-294 -512l-12 -232q-2 -28 -4 -55t-4 -51.5t-4.5 -44.5t-5.5 -33l164 6l-8 -158h-593l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l10 179l-347 595q-14 24 -26.5 51t-22 53.5t-15 50t-4.5 40.5zM672 1675l249 242q22 22 50 36.5t55.5 18t52.5 -5.5t42 -34 q18 -26 18 -52.5t-11.5 -51t-32.5 -45t-46 -35.5l-308 -172z" /> +<glyph unicode="Þ" horiz-adv-x="1290" d="M72 0l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l41 785q1 28 3.5 55t4.5 51.5t4.5 44.5t5.5 33l-154 -6l8 158h583l-7 -135q-31 -2 -56.5 -6t-44.5 -17t-31.5 -38t-18.5 -70l122 2q135 1 244.5 -20.5t185.5 -73t113.5 -135.5t27.5 -206q-6 -82 -47.5 -157t-117.5 -133 t-187 -94t-256 -40q-42 -2 -71.5 -1.5t-60.5 1.5q-3 -49 -7 -92.5t-9 -66.5l154 6l-8 -158h-583zM533 461q18 -2 36.5 -3t38.5 -1q169 0 251.5 74t90.5 223q3 66 -9.5 111.5t-35 75.5t-52 47t-60.5 25t-60 10t-50 2h-66.5t-53.5 -1z" /> +<glyph unicode="ß" horiz-adv-x="1375" d="M-236 -407q0 18 7 40.5t22 42.5t39.5 33t59.5 12q23 -1 43 -10.5t34 -26.5t20.5 -39.5t2.5 -49.5q8 -5 26 -5q35 0 57.5 38t36 96t21 125.5t12.5 127.5q5 58 10.5 131.5t12 154.5t12.5 166t11.5 165.5t11 153t9.5 129.5l-163 -2l18 149h165q18 157 72 260t130.5 163.5 t166.5 84.5t180 24q45 0 95.5 -4.5t101 -16t96.5 -32t81.5 -53t56.5 -78t21 -106.5q0 -64 -27 -113t-67.5 -89t-88 -73t-88 -63t-67.5 -60t-27 -64q0 -18 2.5 -34t17.5 -35.5t48.5 -44.5t96.5 -61q51 -29 103 -61.5t95 -72t70 -89t27 -113.5q0 -69 -30.5 -127t-85.5 -100 t-130 -65.5t-163 -23.5q-74 0 -138.5 16.5t-113 47.5t-76.5 75t-28 99q0 31 10 57.5t28 45.5t42 29.5t51 10.5q36 0 63.5 -16t43.5 -42.5t18.5 -60t-12.5 -68.5q5 -11 18.5 -22t30.5 -19t35.5 -13t33.5 -5q45 0 74.5 11t46.5 29t24 41t7 47q0 28 -15.5 52t-42.5 46t-62.5 43 t-75.5 44q-71 40 -120 75.5t-79.5 70t-44.5 68.5t-14 72q0 49 17 88.5t45 73t63.5 62.5t72 56.5t71.5 55.5t61 59t40.5 67t11.5 80q-4 48 -23 78t-47 47.5t-61.5 24t-65.5 6.5q-65 0 -113 -20.5t-82.5 -56t-58 -83t-38 -100.5t-22.5 -108.5t-12 -108.5l-79 -955 q-14 -119 -46 -216.5t-85.5 -168t-130.5 -109t-182 -38.5q-94 0 -144.5 40t-50.5 108z" /> +<glyph unicode="à" horiz-adv-x="1125" d="M52 351q0 140 41 266t120 221.5t194 152t262 56.5q58 0 134 -11.5t161 -32.5q-7 -51 -17 -119t-20.5 -142.5t-20.5 -151t-18 -145.5t-13 -126t-5 -92q0 -37 9.5 -48.5t20.5 -11.5q12 0 24.5 8t26 27t27 50.5t26.5 77.5l111 -33q-9 -44 -29.5 -99.5t-55 -104.5t-84 -82.5 t-116.5 -33.5q-33 0 -63 8.5t-52.5 30t-36 57.5t-13.5 90q0 27 2 60.5t6 59.5h-2q-38 -89 -79 -148t-85.5 -94t-90.5 -49.5t-93 -14.5q-56 0 -105.5 22.5t-86 69t-58 117t-21.5 165.5zM331 339q0 -84 21 -132t57 -48q38 0 71 33.5t61.5 90t52 131t40.5 157t28.5 167 t15.5 161.5q-11 4 -36 8t-49 4q-58 0 -106 -36.5t-82.5 -108.5t-54 -179t-19.5 -248zM411.5 1474q-3.5 27 5 53.5t33.5 48.5q25 20 51.5 24.5t51 -3t45.5 -26t36 -44.5l159 -286l-99 -83l-232 219q-19 19 -33 44.5t-17.5 52.5z" /> +<glyph unicode="á" horiz-adv-x="1125" d="M52 351q0 140 41 266t120 221.5t194 152t262 56.5q58 0 134 -11.5t161 -32.5q-7 -51 -17 -119t-20.5 -142.5t-20.5 -151t-18 -145.5t-13 -126t-5 -92q0 -37 9.5 -48.5t20.5 -11.5q12 0 24.5 8t26 27t27 50.5t26.5 77.5l111 -33q-9 -44 -29.5 -99.5t-55 -104.5t-84 -82.5 t-116.5 -33.5q-33 0 -63 8.5t-52.5 30t-36 57.5t-13.5 90q0 27 2 60.5t6 59.5h-2q-38 -89 -79 -148t-85.5 -94t-90.5 -49.5t-93 -14.5q-56 0 -105.5 22.5t-86 69t-58 117t-21.5 165.5zM331 339q0 -84 21 -132t57 -48q38 0 71 33.5t61.5 90t52 131t40.5 157t28.5 167 t15.5 161.5q-11 4 -36 8t-49 4q-58 0 -106 -36.5t-82.5 -108.5t-54 -179t-19.5 -248zM579 1241l182 286q17 26 41 45t51 26.5t53.5 3t49.5 -25.5q24 -21 30.5 -48.5t1 -55.5t-21.5 -54t-38 -44l-260 -216z" /> +<glyph unicode="â" horiz-adv-x="1125" d="M52 351q0 140 41 266t120 221.5t194 152t262 56.5q58 0 134 -11.5t161 -32.5q-7 -51 -17 -119t-20.5 -142.5t-20.5 -151t-18 -145.5t-13 -126t-5 -92q0 -37 9.5 -48.5t20.5 -11.5q12 0 24.5 8t26 27t27 50.5t26.5 77.5l111 -33q-9 -44 -29.5 -99.5t-55 -104.5t-84 -82.5 t-116.5 -33.5q-33 0 -63 8.5t-52.5 30t-36 57.5t-13.5 90q0 27 2 60.5t6 59.5h-2q-38 -89 -79 -148t-85.5 -94t-90.5 -49.5t-93 -14.5q-56 0 -105.5 22.5t-86 69t-58 117t-21.5 165.5zM290 1266l367 337h21l310 -347l-89 -94l-256 212h-2l-279 -205zM331 339q0 -84 21 -132 t57 -48q38 0 71 33.5t61.5 90t52 131t40.5 157t28.5 167t15.5 161.5q-11 4 -36 8t-49 4q-58 0 -106 -36.5t-82.5 -108.5t-54 -179t-19.5 -248z" /> +<glyph unicode="ã" horiz-adv-x="1125" d="M52 351q0 140 41 266t120 221.5t194 152t262 56.5q58 0 134 -11.5t161 -32.5q-7 -51 -17 -119t-20.5 -142.5t-20.5 -151t-18 -145.5t-13 -126t-5 -92q0 -37 9.5 -48.5t20.5 -11.5q12 0 24.5 8t26 27t27 50.5t26.5 77.5l111 -33q-9 -44 -29.5 -99.5t-55 -104.5t-84 -82.5 t-116.5 -33.5q-33 0 -63 8.5t-52.5 30t-36 57.5t-13.5 90q0 27 2 60.5t6 59.5h-2q-38 -89 -79 -148t-85.5 -94t-90.5 -49.5t-93 -14.5q-56 0 -105.5 22.5t-86 69t-58 117t-21.5 165.5zM330 1310q16 46 42.5 83.5t58 64t66.5 40.5t69 14q48 0 79 -12t57 -27t51.5 -27 t62.5 -12q36 0 70 28.5t60 76.5l110 -59q-21 -64 -49.5 -108.5t-61 -72t-66 -40t-63.5 -12.5q-41 0 -73.5 12.5t-61 27t-55.5 27t-57 12.5q-12 0 -28 -4t-33.5 -13.5t-35.5 -26t-34 -40.5zM331 339q0 -84 21 -132t57 -48q38 0 71 33.5t61.5 90t52 131t40.5 157t28.5 167 t15.5 161.5q-11 4 -36 8t-49 4q-58 0 -106 -36.5t-82.5 -108.5t-54 -179t-19.5 -248z" /> +<glyph unicode="ä" horiz-adv-x="1125" d="M52 351q0 140 41 266t120 221.5t194 152t262 56.5q58 0 134 -11.5t161 -32.5q-7 -51 -17 -119t-20.5 -142.5t-20.5 -151t-18 -145.5t-13 -126t-5 -92q0 -37 9.5 -48.5t20.5 -11.5q12 0 24.5 8t26 27t27 50.5t26.5 77.5l111 -33q-9 -44 -29.5 -99.5t-55 -104.5t-84 -82.5 t-116.5 -33.5q-33 0 -63 8.5t-52.5 30t-36 57.5t-13.5 90q0 27 2 60.5t6 59.5h-2q-38 -89 -79 -148t-85.5 -94t-90.5 -49.5t-93 -14.5q-56 0 -105.5 22.5t-86 69t-58 117t-21.5 165.5zM331 339q0 -84 21 -132t57 -48q38 0 71 33.5t61.5 90t52 131t40.5 157t28.5 167 t15.5 161.5q-11 4 -36 8t-49 4q-58 0 -106 -36.5t-82.5 -108.5t-54 -179t-19.5 -248zM411 1373q0 33 12 63t31.5 52.5t45.5 36t54 13.5t50.5 -11.5t38.5 -31t25 -45.5t9 -56q0 -35 -11 -65t-30 -52.5t-45 -35.5t-55 -13q-27 0 -50 11t-39.5 30.5t-26 46t-9.5 57.5zM767 1373 q0 33 12 63t31.5 52.5t45.5 36t54 13.5t50.5 -11.5t38.5 -31t25 -45.5t9 -56q0 -35 -11 -65.5t-30 -53t-45 -35t-55 -12.5q-27 0 -50 11t-39.5 30.5t-26 46t-9.5 57.5z" /> +<glyph unicode="å" horiz-adv-x="1125" d="M52 351q0 140 41 266t120 221.5t194 152t262 56.5q58 0 134 -11.5t161 -32.5q-7 -51 -17 -119t-20.5 -142.5t-20.5 -151t-18 -145.5t-13 -126t-5 -92q0 -37 9.5 -48.5t20.5 -11.5q12 0 24.5 8t26 27t27 50.5t26.5 77.5l111 -33q-9 -44 -29.5 -99.5t-55 -104.5t-84 -82.5 t-116.5 -33.5q-33 0 -63 8.5t-52.5 30t-36 57.5t-13.5 90q0 27 2 60.5t6 59.5h-2q-38 -89 -79 -148t-85.5 -94t-90.5 -49.5t-93 -14.5q-56 0 -105.5 22.5t-86 69t-58 117t-21.5 165.5zM331 339q0 -84 21 -132t57 -48q38 0 71 33.5t61.5 90t52 131t40.5 157t28.5 167 t15.5 161.5q-11 4 -36 8t-49 4q-58 0 -106 -36.5t-82.5 -108.5t-54 -179t-19.5 -248zM449 1381q1 52 22.5 97.5t57 78.5t81 52t93.5 19q43 0 85 -13.5t75 -41.5t52.5 -70.5t18.5 -99.5q-2 -57 -25 -103.5t-59 -79t-80.5 -50t-88.5 -17.5q-43 0 -85 15t-75 44t-53 71.5 t-19 97.5zM617 1406q-3 -64 20 -97.5t59 -32.5q26 1 49.5 26.5t26.5 73.5q4 69 -19.5 100.5t-56.5 30.5q-13 0 -26.5 -6.5t-24.5 -18.5t-19 -31t-9 -45z" /> +<glyph unicode="æ" horiz-adv-x="1497" d="M39 250q3 65 28.5 114t67 85t96.5 60.5t118.5 40t132 23t137.5 10.5l6 134q2 40 -4 74t-22 59t-42 38.5t-65 12.5q-41 -2 -76.5 -14.5t-61.5 -39.5q14 -17 17.5 -42t2.5 -40q-1 -21 -10.5 -44t-27 -42t-44 -31t-62.5 -11q-61 2 -92 42.5t-28 97.5t35.5 106t88.5 85.5 t132 57.5t166 21q49 0 91 -7t75.5 -24.5t58 -46.5t37.5 -73q57 72 137 111.5t171 39.5q68 0 125 -15t98.5 -46.5t65 -80.5t23.5 -116q0 -56 -24 -99t-65.5 -76t-96.5 -57t-116.5 -41.5t-126 -29t-124.5 -20.5q0 -87 17 -145t44 -92.5t60.5 -49t66.5 -14.5q25 0 60.5 7 t73 28.5t73.5 61t64 103.5l116 -57q-44 -101 -96 -165t-109 -101t-117 -51t-120 -14q-53 0 -95.5 9.5t-77 28.5t-63 47t-55.5 63q-46 -44 -94 -72.5t-96 -45t-95.5 -23t-92.5 -7.5q-74 0 -129 20.5t-91 57.5t-52.5 86.5t-13.5 108.5zM308 284q-1 -29 9.5 -50t27 -35.5 t38 -21.5t43.5 -7q24 0 52 4.5t55.5 13.5t52 22t41.5 30q-10 63 -14.5 113t-2.5 105q-57 -6 -111 -17.5t-96 -31.5t-68 -50.5t-27 -74.5zM868 598q83 15 141.5 37t96 50t54 61.5t15.5 71.5q-1 25 -10 42.5t-23 29t-31 17t-32 5.5q-52 0 -89.5 -27.5t-62.5 -72t-39 -101 t-20 -113.5z" /> +<glyph unicode="ç" horiz-adv-x="956" d="M55 424q0 66 13.5 138t41 141t69.5 131.5t98 109.5t126.5 75t155.5 28q70 0 131 -17.5t105 -50t69.5 -78t25.5 -101.5q0 -62 -35 -100t-95 -40q-35 -1 -59.5 11t-39.5 30.5t-21.5 40t-6.5 39.5t4.5 41.5t15.5 43.5q-8 19 -34.5 32.5t-62.5 13.5q-44 0 -77 -21 t-57.5 -55.5t-40.5 -79.5t-25.5 -93.5t-14.5 -96.5t-6 -89q-3 -84 11.5 -141.5t39 -94.5t56 -54.5t63.5 -20.5q28 -3 64 3t73.5 28.5t75 66t69.5 115.5l117 -57q-41 -94 -88.5 -158t-100 -103.5t-109 -58.5t-115.5 -23l-51 -120h2q13 7 31.5 13t38.5 10.5t39 6.5t33 2 q32 -1 59 -9.5t46 -26t29 -44t8 -63.5q-3 -48 -28 -85.5t-65.5 -66.5t-91 -50.5t-103 -36.5t-102.5 -24.5t-90 -14.5l-10 106q16 3 41 8t53 12.5t56.5 17.5t51.5 23.5t38 30.5t16 38q1 26 -15 37.5t-39 12t-47.5 -7.5t-39.5 -20l-75 32l68 230q-66 15 -119.5 49.5t-91 88 t-58 127.5t-20.5 169z" /> +<glyph unicode="è" horiz-adv-x="963" d="M56 424q0 66 13 138t40.5 141t69.5 131.5t99.5 109.5t131 75t163.5 28q68 0 124.5 -15t97 -46.5t63 -80.5t22.5 -116q0 -56 -23.5 -100t-64 -78t-94 -59.5t-114 -44t-124.5 -31t-124 -21.5q0 -87 16.5 -143.5t42.5 -89t59 -45t66 -12.5q25 0 59.5 7t71 28t72 60t63.5 103 l116 -56q-44 -101 -95.5 -165t-107.5 -100.5t-115 -50.5t-119 -14q-94 -1 -169.5 26t-129 82.5t-82 140t-28.5 198.5zM327.5 1474q-3.5 27 5 53.5t33.5 48.5q25 20 51.5 24.5t51 -3t45.5 -26t36 -44.5l159 -286l-99 -83l-232 219q-19 19 -33 44.5t-17.5 52.5zM343 587 q83 15 140.5 38.5t92.5 53.5t50.5 65.5t14.5 73.5q-1 25 -9.5 42.5t-21.5 29t-29 17t-31 5.5q-52 0 -88.5 -29.5t-61 -76t-38 -104.5t-19.5 -115z" /> +<glyph unicode="é" horiz-adv-x="963" d="M56 424q0 66 13 138t40.5 141t69.5 131.5t99.5 109.5t131 75t163.5 28q68 0 124.5 -15t97 -46.5t63 -80.5t22.5 -116q0 -56 -23.5 -100t-64 -78t-94 -59.5t-114 -44t-124.5 -31t-124 -21.5q0 -87 16.5 -143.5t42.5 -89t59 -45t66 -12.5q25 0 59.5 7t71 28t72 60t63.5 103 l116 -56q-44 -101 -95.5 -165t-107.5 -100.5t-115 -50.5t-119 -14q-94 -1 -169.5 26t-129 82.5t-82 140t-28.5 198.5zM343 587q83 15 140.5 38.5t92.5 53.5t50.5 65.5t14.5 73.5q-1 25 -9.5 42.5t-21.5 29t-29 17t-31 5.5q-52 0 -88.5 -29.5t-61 -76t-38 -104.5t-19.5 -115z M468 1241l182 286q17 26 41 45t51 26.5t53.5 3t49.5 -25.5q24 -21 30.5 -48.5t1 -55.5t-21.5 -54t-38 -44l-260 -216z" /> +<glyph unicode="ê" horiz-adv-x="963" d="M56 424q0 66 13 138t40.5 141t69.5 131.5t99.5 109.5t131 75t163.5 28q68 0 124.5 -15t97 -46.5t63 -80.5t22.5 -116q0 -56 -23.5 -100t-64 -78t-94 -59.5t-114 -44t-124.5 -31t-124 -21.5q0 -87 16.5 -143.5t42.5 -89t59 -45t66 -12.5q25 0 59.5 7t71 28t72 60t63.5 103 l116 -56q-44 -101 -95.5 -165t-107.5 -100.5t-115 -50.5t-119 -14q-94 -1 -169.5 26t-129 82.5t-82 140t-28.5 198.5zM212 1266l367 337h21l310 -347l-89 -94l-256 212h-2l-279 -205zM343 587q83 15 140.5 38.5t92.5 53.5t50.5 65.5t14.5 73.5q-1 25 -9.5 42.5t-21.5 29 t-29 17t-31 5.5q-52 0 -88.5 -29.5t-61 -76t-38 -104.5t-19.5 -115z" /> +<glyph unicode="ë" horiz-adv-x="963" d="M56 424q0 66 13 138t40.5 141t69.5 131.5t99.5 109.5t131 75t163.5 28q68 0 124.5 -15t97 -46.5t63 -80.5t22.5 -116q0 -56 -23.5 -100t-64 -78t-94 -59.5t-114 -44t-124.5 -31t-124 -21.5q0 -87 16.5 -143.5t42.5 -89t59 -45t66 -12.5q25 0 59.5 7t71 28t72 60t63.5 103 l116 -56q-44 -101 -95.5 -165t-107.5 -100.5t-115 -50.5t-119 -14q-94 -1 -169.5 26t-129 82.5t-82 140t-28.5 198.5zM271 1373q0 33 12 63t31.5 52.5t45.5 36t54 13.5t50.5 -11.5t38.5 -31t25 -45.5t9 -56q0 -35 -11 -65t-30 -52.5t-45 -35.5t-55 -13q-27 0 -50 11 t-39.5 30.5t-26 46t-9.5 57.5zM343 587q83 15 140.5 38.5t92.5 53.5t50.5 65.5t14.5 73.5q-1 25 -9.5 42.5t-21.5 29t-29 17t-31 5.5q-52 0 -88.5 -29.5t-61 -76t-38 -104.5t-19.5 -115zM627 1373q0 33 12 63t31.5 52.5t45.5 36t54 13.5t50.5 -11.5t38.5 -31t25 -45.5t9 -56 q0 -35 -11 -65.5t-30 -53t-45 -35t-55 -12.5q-27 0 -50 11t-39.5 30.5t-26 46t-9.5 57.5z" /> +<glyph unicode="ì" horiz-adv-x="704" d="M4 727q9 44 33 99.5t64 104.5t95 82.5t124 33.5q53 0 89 -17t58.5 -48t32 -75t9.5 -98q0 -33 -4.5 -83.5t-12 -108.5t-15.5 -118.5t-15.5 -114.5t-12 -97t-4.5 -66q0 -34 10 -44t21 -10q23 0 48 35.5t51 127.5l111 -33q-9 -44 -32.5 -99.5t-62.5 -104.5t-93 -82.5 t-123 -33.5q-57 0 -94.5 15.5t-60 45.5t-32 73t-9.5 97q0 40 5 91t12 106.5t16 112t16 109.5t12 98.5t5 77.5q0 34 -10 44t-21 10q-23 0 -48 -35.5t-51 -127.5zM111.5 1474q-3.5 27 5 53.5t33.5 48.5q25 20 51.5 24.5t51 -3t45.5 -26t36 -44.5l159 -286l-99 -83l-232 219 q-19 19 -33 44.5t-17.5 52.5z" /> +<glyph unicode="í" horiz-adv-x="704" d="M4 727q9 44 33 99.5t64 104.5t95 82.5t124 33.5q53 0 89 -17t58.5 -48t32 -75t9.5 -98q0 -33 -4.5 -83.5t-12 -108.5t-15.5 -118.5t-15.5 -114.5t-12 -97t-4.5 -66q0 -34 10 -44t21 -10q23 0 48 35.5t51 127.5l111 -33q-9 -44 -32.5 -99.5t-62.5 -104.5t-93 -82.5 t-123 -33.5q-57 0 -94.5 15.5t-60 45.5t-32 73t-9.5 97q0 40 5 91t12 106.5t16 112t16 109.5t12 98.5t5 77.5q0 34 -10 44t-21 10q-23 0 -48 -35.5t-51 -127.5zM245 1241l182 286q17 26 41 45t51 26.5t53.5 3t49.5 -25.5q24 -21 30.5 -48.5t1 -55.5t-21.5 -54t-38 -44 l-260 -216z" /> +<glyph unicode="î" horiz-adv-x="704" d="M4 727q9 44 33 99.5t64 104.5t95 82.5t124 33.5q53 0 89 -17t58.5 -48t32 -75t9.5 -98q0 -33 -4.5 -83.5t-12 -108.5t-15.5 -118.5t-15.5 -114.5t-12 -97t-4.5 -66q0 -34 10 -44t21 -10q23 0 48 35.5t51 127.5l111 -33q-9 -44 -32.5 -99.5t-62.5 -104.5t-93 -82.5 t-123 -33.5q-57 0 -94.5 15.5t-60 45.5t-32 73t-9.5 97q0 40 5 91t12 106.5t16 112t16 109.5t12 98.5t5 77.5q0 34 -10 44t-21 10q-23 0 -48 -35.5t-51 -127.5zM42 1266l357 337h21l290 -347l-89 -94l-242 212h-2l-263 -205z" /> +<glyph unicode="ï" horiz-adv-x="704" d="M4 727q9 44 33 99.5t64 104.5t95 82.5t124 33.5q53 0 89 -17t58.5 -48t32 -75t9.5 -98q0 -33 -4.5 -83.5t-12 -108.5t-15.5 -118.5t-15.5 -114.5t-12 -97t-4.5 -66q0 -34 10 -44t21 -10q23 0 48 35.5t51 127.5l111 -33q-9 -44 -32.5 -99.5t-62.5 -104.5t-93 -82.5 t-123 -33.5q-57 0 -94.5 15.5t-60 45.5t-32 73t-9.5 97q0 40 5 91t12 106.5t16 112t16 109.5t12 98.5t5 77.5q0 34 -10 44t-21 10q-23 0 -48 -35.5t-51 -127.5zM58 1373q0 33 12 63t31.5 52.5t45.5 36t54 13.5t50.5 -11.5t38.5 -31t25 -45.5t9 -56q0 -35 -11 -65t-30 -52.5 t-45 -35.5t-55 -13q-27 0 -50 11t-39.5 30.5t-26 46t-9.5 57.5zM414 1373q0 33 12 63t31.5 52.5t45.5 36t54 13.5t50.5 -11.5t38.5 -31t25 -45.5t9 -56q0 -35 -11 -65.5t-30 -53t-45 -35t-55 -12.5q-27 0 -50 11t-39.5 30.5t-26 46t-9.5 57.5z" /> +<glyph unicode="ð" horiz-adv-x="1069" d="M59 453q0 59 11 124t35 128.5t60.5 121.5t88 102t117.5 70t148 26q39 0 69 -8.5t53.5 -21.5t42 -30t33.5 -33h2q-5 42 -27.5 92t-54.5 96.5t-69.5 84.5t-72.5 58l-126 -145l-118 109l106 117q-36 22 -81 39t-99 28l34 145q90 -8 157 -30t114 -45l112 137l113 -106 l-112 -103q85 -60 154.5 -139t119 -176t76.5 -211.5t27 -244.5q0 -87 -13 -170t-40 -156t-68 -135t-97 -106t-127 -69t-157 -25q-81 0 -155.5 25.5t-131.5 82t-90.5 147t-33.5 221.5zM334 465q0 -76 7.5 -140.5t26.5 -112t50.5 -74t79.5 -26.5q39 0 70 19.5t54 52t38.5 75 t25 89.5t14 94.5t4.5 89.5q0 72 -6 137t-23 114.5t-47 78.5t-78 29q-59 0 -100.5 -38.5t-67 -99.5t-37 -137t-11.5 -151z" /> +<glyph unicode="ñ" horiz-adv-x="1250" d="M17 727q9 44 27.5 99.5t51 104.5t80.5 82.5t115 33.5q33 0 64 -8.5t55 -30t38.5 -57.5t14.5 -90q0 -20 -1 -35.5t-2.5 -29t-4 -27.5t-4.5 -31h2q36 92 78.5 152t88 95t92 48.5t90.5 13.5q65 0 111.5 -22.5t76.5 -63.5t44 -99t14 -130q0 -57 -8 -122.5t-17.5 -133 t-17.5 -133.5t-8 -122q0 -34 10 -44t21 -10q23 0 48 35.5t51 127.5l111 -33q-9 -44 -32.5 -99.5t-62 -104.5t-92.5 -82.5t-123 -33.5q-57 0 -94 15.5t-58.5 45.5t-30.5 73t-9 97q0 61 8 139t17.5 156.5t17.5 150t8 118.5q0 46 -13 66.5t-45 20.5q-31 0 -64 -33t-64.5 -88 t-59.5 -127.5t-49 -151.5t-33.5 -159.5t-12.5 -151.5q0 -14 0.5 -34.5t1.5 -41.5t2 -40.5t2 -31.5h-264q-2 21 -3.5 35.5t-2 25t-0.5 19v18.5q0 44 5.5 106.5t13.5 132.5t18 142t18 136t13.5 113.5t5.5 74.5q0 34 -9 44t-20 10q-23 0 -48 -35.5t-51 -127.5zM349 1310 q16 46 42.5 83.5t58 64t66.5 40.5t69 14q48 0 79 -12t57 -27t51.5 -27t62.5 -12q36 0 70 28.5t60 76.5l110 -59q-21 -64 -49.5 -108.5t-61 -72t-66 -40t-63.5 -12.5q-41 0 -73.5 12.5t-61 27t-55.5 27t-57 12.5q-12 0 -28 -4t-33.5 -13.5t-35.5 -26t-34 -40.5z" /> +<glyph unicode="ò" horiz-adv-x="1055" d="M57 443q0 123 36 232.5t103 192t162.5 131t213.5 48.5q85 0 160.5 -30.5t131 -89t88 -143.5t32.5 -194q0 -122 -35.5 -233t-102 -195.5t-161.5 -134.5t-215 -50q-104 0 -181.5 37t-129 100t-77 148t-25.5 181zM336 500q0 -62 7.5 -130t26.5 -125t51 -94.5t81 -37.5 q35 0 63 19.5t50 51.5t37.5 74.5t26 89t16 93.5t6.5 89q1 37 -1 79.5t-8.5 85t-18 81.5t-29.5 68.5t-44 47.5t-60 19q-47 1 -84.5 -32t-64 -89t-41 -131t-14.5 -159zM337.5 1474q-3.5 27 5 53.5t33.5 48.5q25 20 51.5 24.5t51 -3t45.5 -26t36 -44.5l159 -286l-99 -83 l-232 219q-19 19 -33 44.5t-17.5 52.5z" /> +<glyph unicode="ó" horiz-adv-x="1055" d="M57 443q0 123 36 232.5t103 192t162.5 131t213.5 48.5q85 0 160.5 -30.5t131 -89t88 -143.5t32.5 -194q0 -122 -35.5 -233t-102 -195.5t-161.5 -134.5t-215 -50q-104 0 -181.5 37t-129 100t-77 148t-25.5 181zM336 500q0 -62 7.5 -130t26.5 -125t51 -94.5t81 -37.5 q35 0 63 19.5t50 51.5t37.5 74.5t26 89t16 93.5t6.5 89q1 37 -1 79.5t-8.5 85t-18 81.5t-29.5 68.5t-44 47.5t-60 19q-47 1 -84.5 -32t-64 -89t-41 -131t-14.5 -159zM488 1241l182 286q17 26 41 45t51 26.5t53.5 3t49.5 -25.5q24 -21 30.5 -48.5t1 -55.5t-21.5 -54t-38 -44 l-260 -216z" /> +<glyph unicode="ô" horiz-adv-x="1055" d="M57 443q0 123 36 232.5t103 192t162.5 131t213.5 48.5q85 0 160.5 -30.5t131 -89t88 -143.5t32.5 -194q0 -122 -35.5 -233t-102 -195.5t-161.5 -134.5t-215 -50q-104 0 -181.5 37t-129 100t-77 148t-25.5 181zM226 1266l367 337h21l310 -347l-89 -94l-256 212h-2 l-279 -205zM336 500q0 -62 7.5 -130t26.5 -125t51 -94.5t81 -37.5q35 0 63 19.5t50 51.5t37.5 74.5t26 89t16 93.5t6.5 89q1 37 -1 79.5t-8.5 85t-18 81.5t-29.5 68.5t-44 47.5t-60 19q-47 1 -84.5 -32t-64 -89t-41 -131t-14.5 -159z" /> +<glyph unicode="õ" horiz-adv-x="1055" d="M57 443q0 123 36 232.5t103 192t162.5 131t213.5 48.5q85 0 160.5 -30.5t131 -89t88 -143.5t32.5 -194q0 -122 -35.5 -233t-102 -195.5t-161.5 -134.5t-215 -50q-104 0 -181.5 37t-129 100t-77 148t-25.5 181zM234 1310q16 46 42.5 83.5t58 64t66.5 40.5t69 14 q48 0 79 -12t57 -27t51.5 -27t62.5 -12q36 0 70 28.5t60 76.5l110 -59q-21 -64 -49.5 -108.5t-61 -72t-66 -40t-63.5 -12.5q-41 0 -73.5 12.5t-61 27t-55.5 27t-57 12.5q-12 0 -28 -4t-33.5 -13.5t-35.5 -26t-34 -40.5zM336 500q0 -62 7.5 -130t26.5 -125t51 -94.5t81 -37.5 q35 0 63 19.5t50 51.5t37.5 74.5t26 89t16 93.5t6.5 89q1 37 -1 79.5t-8.5 85t-18 81.5t-29.5 68.5t-44 47.5t-60 19q-47 1 -84.5 -32t-64 -89t-41 -131t-14.5 -159z" /> +<glyph unicode="ö" horiz-adv-x="1055" d="M57 443q0 123 36 232.5t103 192t162.5 131t213.5 48.5q85 0 160.5 -30.5t131 -89t88 -143.5t32.5 -194q0 -122 -35.5 -233t-102 -195.5t-161.5 -134.5t-215 -50q-104 0 -181.5 37t-129 100t-77 148t-25.5 181zM246 1373q0 33 12 63t31.5 52.5t45.5 36t54 13.5t50.5 -11.5 t38.5 -31t25 -45.5t9 -56q0 -35 -11 -65t-30 -52.5t-45 -35.5t-55 -13q-27 0 -50 11t-39.5 30.5t-26 46t-9.5 57.5zM336 500q0 -62 7.5 -130t26.5 -125t51 -94.5t81 -37.5q35 0 63 19.5t50 51.5t37.5 74.5t26 89t16 93.5t6.5 89q1 37 -1 79.5t-8.5 85t-18 81.5t-29.5 68.5 t-44 47.5t-60 19q-47 1 -84.5 -32t-64 -89t-41 -131t-14.5 -159zM602 1373q0 33 12 63t31.5 52.5t45.5 36t54 13.5t50.5 -11.5t38.5 -31t25 -45.5t9 -56q0 -35 -11 -65.5t-30 -53t-45 -35t-55 -12.5q-27 0 -50 11t-39.5 30.5t-26 46t-9.5 57.5z" /> +<glyph unicode="÷" horiz-adv-x="566" d="M122 249q2 33 15.5 62.5t35.5 51.5t49.5 34.5t57.5 12.5q32 0 58.5 -12.5t45 -34.5t28 -51.5t7.5 -62.5t-13.5 -62t-31.5 -50.5t-47.5 -34t-60.5 -12.5q-34 0 -61 12.5t-46 34t-29 50.5t-8 62zM142 957q2 33 15.5 62.5t35.5 51.5t49.5 34.5t57.5 12.5q32 0 58.5 -12.5 t45 -34.5t28 -51.5t7.5 -62.5t-13.5 -62t-31.5 -50.5t-47.5 -34t-60.5 -12.5q-34 0 -61 12.5t-46 34t-29 50.5t-8 62z" /> +<glyph unicode="ø" horiz-adv-x="1055" d="M27 -68l131 184q-51 63 -76 147t-25 180q0 123 36 232.5t103 192t162.5 131t213.5 48.5q109 0 199 -49l120 169l130 -101l-128 -174q43 -57 67 -132.5t24 -169.5q0 -122 -35.5 -233t-102 -195.5t-161.5 -134.5t-215 -50q-60 0 -110 12t-92 35l-133 -181zM310 500 q0 -39 4 -80.5t12 -82.5l341 492q-22 37 -53 59.5t-74 22.5q-51 0 -93.5 -32.5t-72.5 -89t-47 -131t-17 -158.5zM379 194q23 -37 54 -59t73 -22q39 0 70 19.5t55.5 51.5t42 74.5t29 89t17.5 93.5t7 89q1 32 -1.5 67t-7.5 71z" /> +<glyph unicode="ù" horiz-adv-x="1225" d="M-3 727q9 44 32.5 99.5t62 104.5t92.5 82.5t123 33.5q57 0 94 -15.5t59.5 -45.5t31.5 -73t9 -97q0 -41 -4 -89.5t-10 -100.5t-12.5 -105.5t-12.5 -102.5t-10 -92t-4 -74q0 -46 13 -66.5t45 -20.5q28 0 59.5 33t61.5 88t57.5 127.5t48.5 151.5t33 159t12 152 q0 14 -0.5 34.5t-1 41.5t-2 40.5t-2.5 31.5h264q2 -21 3.5 -35.5t2 -25t0.5 -19v-18.5q0 -44 -5.5 -106.5t-14 -132.5t-18.5 -142t-18.5 -136t-14 -113.5t-5.5 -74.5q0 -34 9 -44t20 -10q23 0 48 35.5t51 127.5l111 -33q-9 -44 -27.5 -99.5t-51 -104.5t-80.5 -82.5 t-115 -33.5q-33 0 -64 8.5t-55 30t-38.5 57.5t-14.5 90q0 41 3.5 69.5t8.5 63.5h-2q-36 -92 -76.5 -153.5t-83.5 -98.5t-87.5 -52t-88.5 -15q-65 0 -111.5 22.5t-76.5 63.5t-44 99t-14 130q0 57 8.5 122.5t18 133t18 133.5t8.5 122q0 34 -11 44t-22 10q-23 0 -48 -35.5 t-51 -127.5zM409.5 1474q-3.5 27 5 53.5t33.5 48.5q25 20 51.5 24.5t51 -3t45.5 -26t36 -44.5l159 -286l-99 -83l-232 219q-19 19 -33 44.5t-17.5 52.5z" /> +<glyph unicode="ú" horiz-adv-x="1225" d="M-3 727q9 44 32.5 99.5t62 104.5t92.5 82.5t123 33.5q57 0 94 -15.5t59.5 -45.5t31.5 -73t9 -97q0 -41 -4 -89.5t-10 -100.5t-12.5 -105.5t-12.5 -102.5t-10 -92t-4 -74q0 -46 13 -66.5t45 -20.5q28 0 59.5 33t61.5 88t57.5 127.5t48.5 151.5t33 159t12 152 q0 14 -0.5 34.5t-1 41.5t-2 40.5t-2.5 31.5h264q2 -21 3.5 -35.5t2 -25t0.5 -19v-18.5q0 -44 -5.5 -106.5t-14 -132.5t-18.5 -142t-18.5 -136t-14 -113.5t-5.5 -74.5q0 -34 9 -44t20 -10q23 0 48 35.5t51 127.5l111 -33q-9 -44 -27.5 -99.5t-51 -104.5t-80.5 -82.5 t-115 -33.5q-33 0 -64 8.5t-55 30t-38.5 57.5t-14.5 90q0 41 3.5 69.5t8.5 63.5h-2q-36 -92 -76.5 -153.5t-83.5 -98.5t-87.5 -52t-88.5 -15q-65 0 -111.5 22.5t-76.5 63.5t-44 99t-14 130q0 57 8.5 122.5t18 133t18 133.5t8.5 122q0 34 -11 44t-22 10q-23 0 -48 -35.5 t-51 -127.5zM531 1241l182 286q17 26 41 45t51 26.5t53.5 3t49.5 -25.5q24 -21 30.5 -48.5t1 -55.5t-21.5 -54t-38 -44l-260 -216z" /> +<glyph unicode="û" horiz-adv-x="1225" d="M-3 727q9 44 32.5 99.5t62 104.5t92.5 82.5t123 33.5q57 0 94 -15.5t59.5 -45.5t31.5 -73t9 -97q0 -41 -4 -89.5t-10 -100.5t-12.5 -105.5t-12.5 -102.5t-10 -92t-4 -74q0 -46 13 -66.5t45 -20.5q28 0 59.5 33t61.5 88t57.5 127.5t48.5 151.5t33 159t12 152 q0 14 -0.5 34.5t-1 41.5t-2 40.5t-2.5 31.5h264q2 -21 3.5 -35.5t2 -25t0.5 -19v-18.5q0 -44 -5.5 -106.5t-14 -132.5t-18.5 -142t-18.5 -136t-14 -113.5t-5.5 -74.5q0 -34 9 -44t20 -10q23 0 48 35.5t51 127.5l111 -33q-9 -44 -27.5 -99.5t-51 -104.5t-80.5 -82.5 t-115 -33.5q-33 0 -64 8.5t-55 30t-38.5 57.5t-14.5 90q0 41 3.5 69.5t8.5 63.5h-2q-36 -92 -76.5 -153.5t-83.5 -98.5t-87.5 -52t-88.5 -15q-65 0 -111.5 22.5t-76.5 63.5t-44 99t-14 130q0 57 8.5 122.5t18 133t18 133.5t8.5 122q0 34 -11 44t-22 10q-23 0 -48 -35.5 t-51 -127.5zM308 1266l367 337h21l310 -347l-89 -94l-256 212h-2l-279 -205z" /> +<glyph unicode="ü" horiz-adv-x="1225" d="M-3 727q9 44 32.5 99.5t62 104.5t92.5 82.5t123 33.5q57 0 94 -15.5t59.5 -45.5t31.5 -73t9 -97q0 -41 -4 -89.5t-10 -100.5t-12.5 -105.5t-12.5 -102.5t-10 -92t-4 -74q0 -46 13 -66.5t45 -20.5q28 0 59.5 33t61.5 88t57.5 127.5t48.5 151.5t33 159t12 152 q0 14 -0.5 34.5t-1 41.5t-2 40.5t-2.5 31.5h264q2 -21 3.5 -35.5t2 -25t0.5 -19v-18.5q0 -44 -5.5 -106.5t-14 -132.5t-18.5 -142t-18.5 -136t-14 -113.5t-5.5 -74.5q0 -34 9 -44t20 -10q23 0 48 35.5t51 127.5l111 -33q-9 -44 -27.5 -99.5t-51 -104.5t-80.5 -82.5 t-115 -33.5q-33 0 -64 8.5t-55 30t-38.5 57.5t-14.5 90q0 41 3.5 69.5t8.5 63.5h-2q-36 -92 -76.5 -153.5t-83.5 -98.5t-87.5 -52t-88.5 -15q-65 0 -111.5 22.5t-76.5 63.5t-44 99t-14 130q0 57 8.5 122.5t18 133t18 133.5t8.5 122q0 34 -11 44t-22 10q-23 0 -48 -35.5 t-51 -127.5zM339 1373q0 33 12 63t31.5 52.5t45.5 36t54 13.5t50.5 -11.5t38.5 -31t25 -45.5t9 -56q0 -35 -11 -65t-30 -52.5t-45 -35.5t-55 -13q-27 0 -50 11t-39.5 30.5t-26 46t-9.5 57.5zM695 1373q0 33 12 63t31.5 52.5t45.5 36t54 13.5t50.5 -11.5t38.5 -31t25 -45.5 t9 -56q0 -35 -11 -65.5t-30 -53t-45 -35t-55 -12.5q-27 0 -50 11t-39.5 30.5t-26 46t-9.5 57.5z" /> +<glyph unicode="ý" horiz-adv-x="1148" d="M-15 718q3 30 12 66t24.5 72.5t39 71t56.5 61t76 42.5t98 16q50 0 89.5 -19t70 -49.5t53 -68.5t38.5 -77q22 -52 51 -128t59 -166.5t56.5 -190t43.5 -198.5h2q63 141 97 267.5t38.5 184t5 76.5t-2 40t-8 40.5t-16.5 32.5q-32 -6 -59.5 1t-48.5 23.5t-33 40.5t-12 51 q0 36 12.5 62t32.5 43.5t45.5 26t51.5 8.5q57 0 96 -25.5t64 -66t36 -92.5t11 -104q0 -71 -18 -165t-51.5 -199.5t-80.5 -217t-104 -217t-123 -199t-137.5 -164t-147 -111.5t-151.5 -41q-94 0 -143.5 44.5t-49.5 114.5q0 33 11.5 59.5t30 45.5t42 29t47.5 10q54 0 85.5 -29 t39.5 -82q24 -7 50.5 2.5t53 29t52 46.5t47.5 56t39 56.5t26 48.5q-15 98 -48 212t-74.5 230t-86.5 226.5t-85 200.5q-7 16 -16.5 35.5t-21.5 36.5t-26.5 28.5t-31.5 11.5q-14 0 -28 -6t-26.5 -23t-22 -47t-15.5 -78zM573 1241l182 286q17 26 41 45t51 26.5t53.5 3 t49.5 -25.5q24 -21 30.5 -48.5t1 -55.5t-21.5 -54t-38 -44l-260 -216z" /> +<glyph unicode="þ" horiz-adv-x="1064" d="M-51 -389q38 0 62 13.5t38 38.5t20 58.5t9 74.5q8 129 15 245.5t13.5 226t12.5 215t12 212.5t13 218.5t14 233.5q1 18 2 41t2.5 48.5t4 51t5.5 48.5q-17 -1 -142 -6l8 155q71 0 124.5 6t91.5 15t61.5 19.5t34.5 20.5h111l-41 -418q-5 -47 -8.5 -83t-8 -72t-9.5 -77 t-12 -98h2q37 70 75.5 117.5t78 77t80.5 42t83 12.5q77 0 132 -30.5t90.5 -83.5t52 -123.5t16.5 -151.5q0 -146 -33 -270.5t-101.5 -216t-174.5 -143t-252 -51.5q-12 0 -34.5 0.5t-40.5 2.5l-8 -169q-1 -15 -2.5 -36.5t-3.5 -46.5t-4.5 -51t-5.5 -49l136 6v-156h-519v133z M363 127q11 -3 40.5 -8.5t52.5 -5.5q58 0 100 29t70.5 75.5t45.5 105.5t26 119.5t12 116.5t3 96q0 56 -9 95.5t-24 64t-35 35.5t-42 11q-92 0 -155 -180t-85 -554z" /> +<glyph unicode="ÿ" horiz-adv-x="1148" d="M-15 718q3 30 12 66t24.5 72.5t39 71t56.5 61t76 42.5t98 16q50 0 89.5 -19t70 -49.5t53 -68.5t38.5 -77q22 -52 51 -128t59 -166.5t56.5 -190t43.5 -198.5h2q63 141 97 267.5t38.5 184t5 76.5t-2 40t-8 40.5t-16.5 32.5q-32 -6 -59.5 1t-48.5 23.5t-33 40.5t-12 51 q0 36 12.5 62t32.5 43.5t45.5 26t51.5 8.5q57 0 96 -25.5t64 -66t36 -92.5t11 -104q0 -71 -18 -165t-51.5 -199.5t-80.5 -217t-104 -217t-123 -199t-137.5 -164t-147 -111.5t-151.5 -41q-94 0 -143.5 44.5t-49.5 114.5q0 33 11.5 59.5t30 45.5t42 29t47.5 10q54 0 85.5 -29 t39.5 -82q24 -7 50.5 2.5t53 29t52 46.5t47.5 56t39 56.5t26 48.5q-15 98 -48 212t-74.5 230t-86.5 226.5t-85 200.5q-7 16 -16.5 35.5t-21.5 36.5t-26.5 28.5t-31.5 11.5q-14 0 -28 -6t-26.5 -23t-22 -47t-15.5 -78zM330 1373q0 33 12 63t31.5 52.5t45.5 36t54 13.5 t50.5 -11.5t38.5 -31t25 -45.5t9 -56q0 -35 -11 -65t-30 -52.5t-45 -35.5t-55 -13q-27 0 -50 11t-39.5 30.5t-26 46t-9.5 57.5zM686 1373q0 33 12 63t31.5 52.5t45.5 36t54 13.5t50.5 -11.5t38.5 -31t25 -45.5t9 -56q0 -35 -11 -65.5t-30 -53t-45 -35t-55 -12.5 q-27 0 -50 11t-39.5 30.5t-26 46t-9.5 57.5z" /> +<glyph unicode="Œ" horiz-adv-x="2078" d="M79 691q5 93 28 187t65 180t104.5 161t146.5 130t190.5 86.5t237.5 31.5q25 0 57 -2t67 -6t70.5 -10t67.5 -15h856l-9 -397h-135q4 83 -16.5 135t-55 81t-78 39t-85.5 9l-74 -2q-32 -1 -58 -6.5t-44.5 -23.5t-29.5 -53t-14 -95l-16 -307h241v177h158l-26 -498h-135 q3 64 -11 101t-40 55t-62.5 21.5t-78.5 2.5l-54 -1l-17 -336q-2 -28 -4 -54.5t-4 -50.5t-4.5 -43.5t-5.5 -32.5l275 1q45 0 90.5 15t83 49.5t62 91t29.5 139.5h135l-36 -451h-912q-75 -21 -152 -27.5t-144 -5.5q-158 2 -284 58.5t-213 153.5t-130.5 228t-35.5 284zM397 748 q-7 -133 16.5 -242.5t75 -190t130.5 -128t182 -55.5q65 -5 119.5 2t107.5 26l49 938q2 46 6 89t8 72q-51 32 -114.5 47t-135.5 12q-111 -4 -192 -52t-135 -126.5t-82.5 -179.5t-34.5 -212z" /> +<glyph unicode="œ" horiz-adv-x="1605" d="M58 443q0 123 34 232.5t98 192t157 131t211 48.5q39 0 80.5 -9.5t82 -32.5t76.5 -61.5t63 -96.5h2q72 108 161 154t192 46q68 0 124.5 -15t97 -46.5t63 -80.5t22.5 -116q0 -56 -23.5 -100t-64 -78t-94 -59.5t-114 -44t-124.5 -31t-124 -21.5q0 -87 16.5 -143.5t42.5 -89 t59 -45t66 -12.5q25 0 59 7t69.5 28.5t70 60.5t62.5 103l121 -57q-44 -101 -95.5 -165t-107.5 -101t-115 -50.5t-119 -13.5q-32 0 -73 8t-84 30t-83 60t-69 97h-2q-35 -61 -77 -99t-85.5 -59.5t-87 -29t-80.5 -7.5q-104 0 -181 37t-127.5 100t-75 148t-24.5 181zM337 500 q0 -41 3 -85.5t10 -87.5t18.5 -82t29.5 -68t42.5 -46.5t57.5 -17.5q35 0 63 19.5t49 51.5t35.5 74.5t24.5 89t15 93.5t6 89q1 37 -0.5 79.5t-7 85t-16.5 81.5t-28.5 68.5t-43 47.5t-59.5 19q-47 1 -83.5 -32t-62.5 -89t-39.5 -131t-13.5 -159zM985 587q83 15 140.5 38.5 t92.5 53.5t50.5 65.5t14.5 73.5q-1 25 -9.5 42.5t-21.5 29t-29 17t-31 5.5q-52 0 -88.5 -29.5t-61 -76t-38 -104.5t-19.5 -115z" /> +<glyph unicode="Ÿ" horiz-adv-x="1362" d="M48 1276l8 158h598l-7 -135q-45 3 -79 -5.5t-52.5 -28.5t-19 -51t21.5 -73l143 -257q9 -16 20.5 -38t25.5 -50.5t27 -57.5t20 -51h3q11 23 37.5 72.5t68.5 127.5q155 275 171.5 302t33 52t30.5 41v2l-157 -8l8 158h452l-7 -135q-36 -6 -66 -20t-58.5 -39.5t-57 -65 t-61.5 -94.5l-294 -512l-12 -232q-2 -28 -4 -55t-4 -51.5t-4.5 -44.5t-5.5 -33l164 6l-8 -158h-593l7 135q34 2 61.5 7t47.5 22t31.5 52t14.5 97l10 179l-347 595q-14 24 -26.5 51t-22 53.5t-15 50t-4.5 40.5zM470 1777q0 34 11.5 64t31 52.5t45.5 36t54 13.5 q27 0 49.5 -11.5t38.5 -31t24.5 -46t8.5 -56.5q0 -33 -11 -63t-30 -53t-44.5 -36.5t-54.5 -13.5q-27 0 -49.5 11t-39 30.5t-25.5 46t-9 57.5zM827 1777q0 34 11.5 64t31 52.5t45.5 36t54 13.5q27 0 49.5 -11.5t38.5 -31t24.5 -46t8.5 -56.5q0 -33 -11 -63.5t-30 -53 t-44.5 -36t-54.5 -13.5q-27 0 -49.5 11t-39 30.5t-25.5 46t-9 57.5z" /> +<glyph unicode="ˆ" horiz-adv-x="878" d="M90 1266l367 337h21l310 -347l-89 -94l-256 212h-2l-279 -205z" /> +<glyph unicode="˜" horiz-adv-x="910" d="M92 1310q16 46 42.5 83.5t58 64t66.5 40.5t69 14q48 0 79 -12t57 -27t51.5 -27t62.5 -12q36 0 70 28.5t60 76.5l110 -59q-21 -64 -49.5 -108.5t-61 -72t-66 -40t-63.5 -12.5q-41 0 -73.5 12.5t-61 27t-55.5 27t-57 12.5q-12 0 -28 -4t-33.5 -13.5t-35.5 -26t-34 -40.5z " /> +<glyph unicode=" " horiz-adv-x="1058" /> +<glyph unicode=" " horiz-adv-x="2116" /> +<glyph unicode=" " horiz-adv-x="1058" /> +<glyph unicode=" " horiz-adv-x="2116" /> +<glyph unicode=" " horiz-adv-x="705" /> +<glyph unicode=" " horiz-adv-x="529" /> +<glyph unicode=" " horiz-adv-x="352" /> +<glyph unicode=" " horiz-adv-x="352" /> +<glyph unicode=" " horiz-adv-x="264" /> +<glyph unicode=" " horiz-adv-x="423" /> +<glyph unicode=" " horiz-adv-x="117" /> +<glyph unicode="‐" horiz-adv-x="968" d="M103 535l11 214h754l-11 -207z" /> +<glyph unicode="‑" horiz-adv-x="968" d="M103 535l11 214h754l-11 -207z" /> +<glyph unicode="‒" horiz-adv-x="968" d="M103 535l11 214h754l-11 -207z" /> +<glyph unicode="–" horiz-adv-x="1153" d="M101 535l11 215h941l-11 -208z" /> +<glyph unicode="—" horiz-adv-x="1359" d="M102 535l11 215h1146l-11 -208z" /> +<glyph unicode="‘" horiz-adv-x="460" d="M105 1118q5 99 57 214t155 233l76 -57q-17 -20 -39.5 -56.5t-43 -80.5t-35.5 -92.5t-16 -93.5q15 5 24 6t20 1q27 0 52.5 -8t44 -24.5t29 -42t8.5 -61.5q-1 -30 -13 -58t-32.5 -49t-48.5 -34t-61 -13q-47 -1 -81.5 15.5t-56.5 45.5t-31.5 69t-7.5 86z" /> +<glyph unicode="’" horiz-adv-x="434" d="M95 1401q1 30 13 58t32.5 49t48.5 34t61 13q47 1 81.5 -15.5t56.5 -45.5t31.5 -69t7.5 -86q-5 -99 -57 -214t-155 -233l-76 57q17 20 39.5 56.5t43 80.5t35.5 92.5t16 93.5q-15 -5 -24 -6t-20 -1q-27 0 -52.5 8t-44 24.5t-29 42t-8.5 61.5z" /> +<glyph unicode="‚" horiz-adv-x="509" d="M56 127q1 30 13 58t32.5 49t48.5 34t61 13q47 1 81.5 -15.5t56.5 -45.5t31.5 -69t7.5 -86q-5 -99 -57 -214t-155 -233l-76 57q17 20 39.5 56.5t43 80.5t35.5 92.5t16 93.5q-15 -5 -24 -6t-20 -1q-27 0 -52.5 8t-44 24.5t-29 42t-8.5 61.5z" /> +<glyph unicode="“" horiz-adv-x="849" d="M105 1118q5 99 57 214t155 233l76 -57q-17 -20 -39.5 -56.5t-43 -80.5t-35.5 -92.5t-16 -93.5q15 5 24 6t20 1q27 0 52.5 -8t44 -24.5t29 -42t8.5 -61.5q-1 -30 -13 -58t-32.5 -49t-48.5 -34t-61 -13q-47 -1 -81.5 15.5t-56.5 45.5t-31.5 69t-7.5 86zM494 1118 q5 99 57 214t155 233l76 -57q-17 -20 -39.5 -56.5t-43 -80.5t-35.5 -92.5t-16 -93.5q15 5 24 6t20 1q27 0 52.5 -8t44 -24.5t29 -42t8.5 -61.5q-1 -30 -13 -58t-32.5 -49t-48.5 -34t-61 -13q-47 -1 -81.5 15.5t-56.5 45.5t-31.5 69t-7.5 86z" /> +<glyph unicode="”" horiz-adv-x="810" d="M93 1403q1 30 13 58t32.5 49t48.5 34t61 13q47 1 81.5 -15.5t56.5 -45.5t31.5 -69t7.5 -86q-5 -99 -57 -214t-155 -233l-76 57q17 20 39.5 56.5t43 80.5t35.5 92.5t16 93.5q-15 -5 -24 -6t-20 -1q-27 0 -52.5 8t-44 24.5t-29 42t-8.5 61.5zM473 1403q1 30 13 58t32.5 49 t48.5 34t61 13q47 1 81.5 -15.5t56.5 -45.5t31.5 -69t7.5 -86q-5 -99 -57 -214t-155 -233l-76 57q17 20 39.5 56.5t43 80.5t35.5 92.5t16 93.5q-15 -5 -24 -6t-20 -1q-27 0 -52.5 8t-44 24.5t-29 42t-8.5 61.5z" /> +<glyph unicode="„" horiz-adv-x="899" d="M56 127q1 30 13 58t32.5 49t48.5 34t61 13q47 1 81.5 -15.5t56.5 -45.5t31.5 -69t7.5 -86q-5 -99 -57 -214t-155 -233l-76 57q17 20 39.5 56.5t43 80.5t35.5 92.5t16 93.5q-15 -5 -24 -6t-20 -1q-27 0 -52.5 8t-44 24.5t-29 42t-8.5 61.5zM446 127q1 30 13 58t32.5 49 t48.5 34t61 13q47 1 81.5 -15.5t56.5 -45.5t31.5 -69t7.5 -86q-5 -99 -57 -214t-155 -233l-76 57q17 20 39.5 56.5t43 80.5t35.5 92.5t16 93.5q-15 -5 -24 -6t-20 -1q-27 0 -52.5 8t-44 24.5t-29 42t-8.5 61.5z" /> +<glyph unicode="•" horiz-adv-x="774" d="M72 727v16q4 68 32 126t73.5 101t105.5 67t128 24q64 0 120.5 -22.5t97.5 -62.5t65 -94.5t24 -118.5q0 -71 -26.5 -132.5t-73 -107t-108.5 -71.5t-132 -26q-66 0 -122.5 23t-97 63t-63.5 95t-23 120z" /> +<glyph unicode="…" horiz-adv-x="1584" d="M57 126q2 33 15.5 62.5t35.5 51.5t49.5 34.5t57.5 12.5q32 0 58.5 -12.5t45 -34.5t28 -51.5t7.5 -62.5t-13.5 -62t-31.5 -50.5t-47.5 -34t-60.5 -12.5q-34 0 -61 12.5t-46 34t-29 50.5t-8 62zM610 126q2 33 15.5 62.5t35.5 51.5t49.5 34.5t57.5 12.5q32 0 58.5 -12.5 t45 -34.5t28 -51.5t7.5 -62.5t-13.5 -62t-31.5 -50.5t-47.5 -34t-60.5 -12.5q-34 0 -61 12.5t-46 34t-29 50.5t-8 62zM1163 126q2 33 15.5 62.5t35.5 51.5t49.5 34.5t57.5 12.5q32 0 58.5 -12.5t45 -34.5t28 -51.5t7.5 -62.5t-13.5 -62t-31.5 -50.5t-47.5 -34t-60.5 -12.5 q-34 0 -61 12.5t-46 34t-29 50.5t-8 62z" /> +<glyph unicode=" " horiz-adv-x="423" /> +<glyph unicode="‹" horiz-adv-x="762" d="M34 529l2 44l586 560l96 -105l-404 -480v-2l348 -480l-105 -99z" /> +<glyph unicode="›" horiz-adv-x="760" d="M34 72l404 480v2l-348 480l105 99l523 -562l-2 -44l-586 -560z" /> +<glyph unicode=" " horiz-adv-x="529" /> +<glyph unicode="€" horiz-adv-x="1621" d="M60 474l46 160l155 -1q-1 30 1 60.5t4 60.5h-192l47 160l179 -1q33 111 92.5 211.5t147.5 176.5t203.5 121t259.5 45q81 0 169 -23.5t168 -77.5h2l7 87h158l-73 -449h-134q6 151 -64 232t-214 82q-85 0 -155.5 -32t-126 -87t-95 -129t-62.5 -157l687 -2l-105 -153 l-610 -3q-4 -31 -5.5 -61.5t3.5 -61.5l578 -1l-109 -153l-451 -2q36 -170 139 -256.5t259 -86.5q64 0 130.5 16.5t130 48t121 77.5t103.5 105l89 -85q-80 -104 -165.5 -168t-168 -99.5t-159.5 -48t-140 -12.5q-128 0 -234 37.5t-186 105t-133.5 161t-77.5 204.5z" /> +<glyph unicode="™" horiz-adv-x="2225" d="M144 1131l23 303h785l-9 -303h-80q5 99 -32.5 146.5t-106.5 46.5h-68l-27 -518q-2 -33 -5 -63t-6 -46l98 4l-6 -113h-385l5 99q20 1 36 4t27.5 13.5t18.5 31t9 56.5l28 530h-66q-68 0 -111 -46.5t-48 -144.5h-80zM957 588l5 98q20 1 35.5 4t26 13.5t17 31t9.5 56.5 l33 428q2 32 5 62.5t6 45.5l-92 -3l6 110h309l176 -470q20 -56 32.5 -99.5t24.5 -87.5h1q6 18 15.5 44t19.5 52t19.5 48.5t14.5 33.5l209 479h319l-5 -97q-21 -1 -38 -4t-29 -13t-19 -30.5t-7 -57.5l-6 -427q-1 -35 -4.5 -64t-6.5 -45l92 4l-6 -112h-365l5 98q20 1 36.5 4 t28.5 13.5t19 31t7 56.5l3 237q0 11 0.5 34.5t1 53.5t1.5 62t1 60h-1l-277 -662h-156l-155 398q-6 16 -15.5 45.5t-20 65t-20 74.5t-15.5 75h-1q-3 -62 -4.5 -118.5t-5.5 -111.5l-8 -199q-2 -33 -7 -63t-8 -46l93 4l-6 -112h-293z" /> +<glyph unicode="◼" horiz-adv-x="1045" d="M0 0v1045h1045v-1045h-1045z" /> +<glyph unicode="fi" horiz-adv-x="1399" d="M-236 -407q0 17 6.5 39.5t21.5 42t38.5 33t56.5 13.5q21 0 40.5 -7.5t34 -22t23 -34t8.5 -43.5v-9.5t-1 -9.5q8 -5 26 -5q35 0 57.5 38t36 96t21 125.5t12.5 127.5q5 58 10.5 131.5t12 154.5t12.5 166t11.5 165.5t11 153t9.5 129.5q-42 -1 -88 -1.5t-75 -0.5l18 149h165 q34 269 171 400.5t380 131.5q37 0 83 -5.5t93 -18t91.5 -32.5t78.5 -49t55 -67t21 -87q0 -18 -6 -41.5t-21 -44.5t-39.5 -35.5t-61.5 -14.5q-26 0 -49 9t-40 25t-27 38.5t-10 49.5q0 13 2.5 31.5t7.5 32.5q-16 18 -33 31.5t-38 23t-48 14.5t-64 5q-68 0 -117.5 -20.5 t-83.5 -60.5t-54 -99t-28 -135l-9 -82h213l-13 -141l-209 -4q-4 -58 -9 -132t-11 -154.5t-12.5 -165.5t-13.5 -165.5t-14 -153.5t-14 -131q-14 -119 -46 -216.5t-85.5 -168t-130.5 -109t-182 -38.5q-94 0 -144.5 40t-50.5 108zM700 727q9 44 33 99.5t64 104.5t95 82.5 t124 33.5q53 0 89 -17t58.5 -48t32 -75t9.5 -98q0 -33 -4.5 -83.5t-12 -108.5t-15.5 -118.5t-15.5 -114.5t-12 -97t-4.5 -66q0 -34 10 -44t21 -10q23 0 48 35.5t51 127.5l111 -33q-9 -44 -32.5 -99.5t-62.5 -104.5t-93 -82.5t-123 -33.5q-57 0 -94.5 15.5t-60 45.5t-32 73 t-9.5 97q0 40 5 91t12 106.5t16 112t16 109.5t12 98.5t5 77.5q0 34 -10 44t-21 10q-23 0 -48 -35.5t-51 -127.5z" /> +<glyph unicode="fl" horiz-adv-x="1348" d="M-236 -407q0 17 6.5 39.5t21.5 42t38.5 33t56.5 13.5q21 0 40.5 -7.5t34 -22t23 -34t8.5 -43.5v-9.5t-1 -9.5q8 -5 26 -5q35 0 57.5 38t36 96t21 125.5t12.5 127.5q5 58 10.5 131.5t12 154.5t12.5 166t11.5 165.5t11 153t9.5 129.5q-42 -1 -88 -1.5t-75 -0.5l18 149h165 q16 132 54 231.5t99.5 166.5t149.5 100.5t205 33.5q63 0 118.5 -13.5t102.5 -23t85.5 -7.5t68.5 34h111q-27 -234 -47.5 -414t-36 -316t-26 -233.5t-16.5 -166t-9 -113.5t-3 -76q0 -37 9.5 -48.5t20.5 -11.5q23 0 48 35.5t51 127.5l111 -33q-13 -52 -36 -108.5t-60.5 -103.5 t-91 -77.5t-127.5 -30.5q-37 0 -70.5 10.5t-59 34t-40.5 61.5t-15 92q0 93 8 207t20.5 240t27.5 259t30 263q2 20 5.5 47t7 55.5t7.5 57t7 51.5q-46 35 -99 50.5t-98 15.5q-60 0 -103 -20.5t-73 -60.5t-47.5 -99t-25.5 -135l-9 -82h213l-13 -141l-209 -4q-4 -58 -9 -132 t-11 -154.5t-12.5 -165.5t-13.5 -165.5t-14 -153.5t-14 -131q-14 -119 -46 -216.5t-85.5 -168t-130.5 -109t-182 -38.5q-94 0 -144.5 40t-50.5 108z" /> +<hkern u1=""" u2="…" k="240" /> +<hkern u1=""" u2="„" k="248" /> +<hkern u1=""" u2="‚" k="248" /> +<hkern u1=""" u2="þ" k="-23" /> +<hkern u1=""" u2="æ" k="25" /> +<hkern u1=""" u2="Æ" k="207" /> +<hkern u1=""" u2="b" k="-23" /> +<hkern u1=""" u2="J" k="55" /> +<hkern u1=""" u2="@" k="37" /> +<hkern u1=""" u2="4" k="76" /> +<hkern u1=""" u2="/" k="211" /> +<hkern u1=""" u2="." k="240" /> +<hkern u1=""" u2="," k="248" /> +<hkern u1="#" u2="7" k="-23" /> +<hkern u1="#" u2="1" k="-25" /> +<hkern u1="$" u2="4" k="-27" /> +<hkern u1="&" u2="”" k="49" /> +<hkern u1="&" u2="’" k="49" /> +<hkern u1="&" u2="Ÿ" k="92" /> +<hkern u1="&" u2="œ" k="-23" /> +<hkern u1="&" u2="Œ" k="-51" /> +<hkern u1="&" u2="ÿ" k="-106" /> +<hkern u1="&" u2="ý" k="-106" /> +<hkern u1="&" u2="ü" k="-86" /> +<hkern u1="&" u2="û" k="-86" /> +<hkern u1="&" u2="ú" k="-86" /> +<hkern u1="&" u2="ù" k="-86" /> +<hkern u1="&" u2="ø" k="-23" /> +<hkern u1="&" u2="ö" k="-23" /> +<hkern u1="&" u2="õ" k="-23" /> +<hkern u1="&" u2="ô" k="-23" /> +<hkern u1="&" u2="ó" k="-23" /> +<hkern u1="&" u2="ò" k="-23" /> +<hkern u1="&" u2="ñ" k="-68" /> +<hkern u1="&" u2="ð" k="-23" /> +<hkern u1="&" u2="ï" k="-80" /> +<hkern u1="&" u2="î" k="-80" /> +<hkern u1="&" u2="í" k="-80" /> +<hkern u1="&" u2="ì" k="-80" /> +<hkern u1="&" u2="ë" k="-23" /> +<hkern u1="&" u2="ê" k="-23" /> +<hkern u1="&" u2="é" k="-23" /> +<hkern u1="&" u2="è" k="-23" /> +<hkern u1="&" u2="ç" k="-23" /> +<hkern u1="&" u2="Þ" k="27" /> +<hkern u1="&" u2="Ý" k="92" /> +<hkern u1="&" u2="Ø" k="-51" /> +<hkern u1="&" u2="Ö" k="-51" /> +<hkern u1="&" u2="Õ" k="-51" /> +<hkern u1="&" u2="Ô" k="-51" /> +<hkern u1="&" u2="Ó" k="-51" /> +<hkern u1="&" u2="Ò" k="-51" /> +<hkern u1="&" u2="Ñ" k="27" /> +<hkern u1="&" u2="Ð" k="-78" /> +<hkern u1="&" u2="Ï" k="27" /> +<hkern u1="&" u2="Î" k="27" /> +<hkern u1="&" u2="Í" k="27" /> +<hkern u1="&" u2="Ì" k="27" /> +<hkern u1="&" u2="Ë" k="27" /> +<hkern u1="&" u2="Ê" k="27" /> +<hkern u1="&" u2="É" k="27" /> +<hkern u1="&" u2="È" k="27" /> +<hkern u1="&" u2="Ç" k="-51" /> +<hkern u1="&" u2="Æ" k="63" /> +<hkern u1="&" u2="Å" k="47" /> +<hkern u1="&" u2="Ä" k="47" /> +<hkern u1="&" u2="Ã" k="47" /> +<hkern u1="&" u2="Â" k="47" /> +<hkern u1="&" u2="Á" k="47" /> +<hkern u1="&" u2="À" k="47" /> +<hkern u1="&" u2="z" k="-41" /> +<hkern u1="&" u2="y" k="-106" /> +<hkern u1="&" u2="x" k="-39" /> +<hkern u1="&" u2="w" k="-88" /> +<hkern u1="&" u2="v" k="-92" /> +<hkern u1="&" u2="u" k="-86" /> +<hkern u1="&" u2="s" k="-25" /> +<hkern u1="&" u2="r" k="-68" /> +<hkern u1="&" u2="q" k="-12" /> +<hkern u1="&" u2="p" k="-68" /> +<hkern u1="&" u2="o" k="-23" /> +<hkern u1="&" u2="n" k="-68" /> +<hkern u1="&" u2="m" k="-68" /> +<hkern u1="&" u2="j" k="-72" /> +<hkern u1="&" u2="i" k="-80" /> +<hkern u1="&" u2="g" k="-12" /> +<hkern u1="&" u2="e" k="-23" /> +<hkern u1="&" u2="d" k="-12" /> +<hkern u1="&" u2="c" k="-23" /> +<hkern u1="&" u2="Z" k="37" /> +<hkern u1="&" u2="Y" k="92" /> +<hkern u1="&" u2="X" k="61" /> +<hkern u1="&" u2="W" k="66" /> +<hkern u1="&" u2="V" k="74" /> +<hkern u1="&" u2="T" k="53" /> +<hkern u1="&" u2="R" k="27" /> +<hkern u1="&" u2="Q" k="-51" /> +<hkern u1="&" u2="P" k="27" /> +<hkern u1="&" u2="O" k="-51" /> +<hkern u1="&" u2="N" k="27" /> +<hkern u1="&" u2="M" k="27" /> +<hkern u1="&" u2="L" k="27" /> +<hkern u1="&" u2="K" k="27" /> +<hkern u1="&" u2="J" k="41" /> +<hkern u1="&" u2="I" k="27" /> +<hkern u1="&" u2="H" k="27" /> +<hkern u1="&" u2="G" k="-51" /> +<hkern u1="&" u2="F" k="27" /> +<hkern u1="&" u2="E" k="27" /> +<hkern u1="&" u2="D" k="27" /> +<hkern u1="&" u2="C" k="-51" /> +<hkern u1="&" u2="B" k="27" /> +<hkern u1="&" u2="A" k="47" /> +<hkern u1="&" u2="'" k="68" /> +<hkern u1="&" u2=""" k="68" /> +<hkern u1="'" u2="þ" k="-23" /> +<hkern u1="'" u2="æ" k="25" /> +<hkern u1="'" u2="Æ" k="193" /> +<hkern u1="'" u2="b" k="-23" /> +<hkern u1="'" u2="J" k="55" /> +<hkern u1="'" u2="@" k="37" /> +<hkern u1="'" u2="4" k="76" /> +<hkern u1="'" u2="/" k="193" /> +<hkern u1="(" u2="fl" k="-219" /> +<hkern u1="(" u2="fi" k="-219" /> +<hkern u1="(" u2="Ÿ" k="-25" /> +<hkern u1="(" u2="œ" k="70" /> +<hkern u1="(" u2="Œ" k="49" /> +<hkern u1="(" u2="þ" k="-66" /> +<hkern u1="(" u2="ü" k="43" /> +<hkern u1="(" u2="û" k="43" /> +<hkern u1="(" u2="ú" k="43" /> +<hkern u1="(" u2="ù" k="43" /> +<hkern u1="(" u2="ø" k="70" /> +<hkern u1="(" u2="ö" k="70" /> +<hkern u1="(" u2="õ" k="70" /> +<hkern u1="(" u2="ô" k="70" /> +<hkern u1="(" u2="ó" k="70" /> +<hkern u1="(" u2="ò" k="70" /> +<hkern u1="(" u2="ñ" k="51" /> +<hkern u1="(" u2="ð" k="20" /> +<hkern u1="(" u2="ï" k="-8" /> +<hkern u1="(" u2="î" k="25" /> +<hkern u1="(" u2="í" k="25" /> +<hkern u1="(" u2="ì" k="6" /> +<hkern u1="(" u2="ë" k="70" /> +<hkern u1="(" u2="ê" k="70" /> +<hkern u1="(" u2="é" k="70" /> +<hkern u1="(" u2="è" k="70" /> +<hkern u1="(" u2="ç" k="70" /> +<hkern u1="(" u2="æ" k="59" /> +<hkern u1="(" u2="å" k="68" /> +<hkern u1="(" u2="ä" k="68" /> +<hkern u1="(" u2="ã" k="68" /> +<hkern u1="(" u2="â" k="68" /> +<hkern u1="(" u2="á" k="68" /> +<hkern u1="(" u2="à" k="68" /> +<hkern u1="(" u2="ß" k="-219" /> +<hkern u1="(" u2="Ý" k="-25" /> +<hkern u1="(" u2="Ø" k="49" /> +<hkern u1="(" u2="Ö" k="49" /> +<hkern u1="(" u2="Õ" k="49" /> +<hkern u1="(" u2="Ô" k="49" /> +<hkern u1="(" u2="Ó" k="49" /> +<hkern u1="(" u2="Ò" k="49" /> +<hkern u1="(" u2="Ç" k="49" /> +<hkern u1="(" u2="Æ" k="37" /> +<hkern u1="(" u2="Å" k="45" /> +<hkern u1="(" u2="Ä" k="45" /> +<hkern u1="(" u2="Ã" k="45" /> +<hkern u1="(" u2="Â" k="45" /> +<hkern u1="(" u2="Á" k="45" /> +<hkern u1="(" u2="À" k="45" /> +<hkern u1="(" u2="{" k="39" /> +<hkern u1="(" u2="z" k="51" /> +<hkern u1="(" u2="x" k="41" /> +<hkern u1="(" u2="w" k="43" /> +<hkern u1="(" u2="v" k="39" /> +<hkern u1="(" u2="u" k="43" /> +<hkern u1="(" u2="t" k="45" /> +<hkern u1="(" u2="s" k="59" /> +<hkern u1="(" u2="r" k="51" /> +<hkern u1="(" u2="q" k="63" /> +<hkern u1="(" u2="o" k="70" /> +<hkern u1="(" u2="n" k="51" /> +<hkern u1="(" u2="m" k="51" /> +<hkern u1="(" u2="l" k="-27" /> +<hkern u1="(" u2="k" k="-33" /> +<hkern u1="(" u2="j" k="-203" /> +<hkern u1="(" u2="i" k="25" /> +<hkern u1="(" u2="h" k="-43" /> +<hkern u1="(" u2="g" k="63" /> +<hkern u1="(" u2="f" k="-219" /> +<hkern u1="(" u2="e" k="70" /> +<hkern u1="(" u2="d" k="63" /> +<hkern u1="(" u2="c" k="70" /> +<hkern u1="(" u2="b" k="-66" /> +<hkern u1="(" u2="a" k="68" /> +<hkern u1="(" u2="Y" k="-25" /> +<hkern u1="(" u2="W" k="-12" /> +<hkern u1="(" u2="V" k="-20" /> +<hkern u1="(" u2="S" k="27" /> +<hkern u1="(" u2="Q" k="49" /> +<hkern u1="(" u2="O" k="49" /> +<hkern u1="(" u2="J" k="35" /> +<hkern u1="(" u2="G" k="49" /> +<hkern u1="(" u2="C" k="49" /> +<hkern u1="(" u2="A" k="45" /> +<hkern u1="(" u2="9" k="33" /> +<hkern u1="(" u2="8" k="41" /> +<hkern u1="(" u2="6" k="45" /> +<hkern u1="(" u2="4" k="53" /> +<hkern u1="(" u2="3" k="25" /> +<hkern u1="(" u2="1" k="20" /> +<hkern u1="(" u2="0" k="47" /> +<hkern u1="(" u2="(" k="43" /> +<hkern u1=")" u2="}" k="43" /> +<hkern u1=")" u2="]" k="72" /> +<hkern u1=")" u2=")" k="43" /> +<hkern u1="*" u2="fl" k="-10" /> +<hkern u1="*" u2="fi" k="-10" /> +<hkern u1="*" u2="Ÿ" k="20" /> +<hkern u1="*" u2="œ" k="16" /> +<hkern u1="*" u2="ø" k="16" /> +<hkern u1="*" u2="ö" k="16" /> +<hkern u1="*" u2="õ" k="16" /> +<hkern u1="*" u2="ô" k="16" /> +<hkern u1="*" u2="ó" k="16" /> +<hkern u1="*" u2="ò" k="16" /> +<hkern u1="*" u2="ë" k="16" /> +<hkern u1="*" u2="ê" k="16" /> +<hkern u1="*" u2="é" k="16" /> +<hkern u1="*" u2="è" k="16" /> +<hkern u1="*" u2="ç" k="16" /> +<hkern u1="*" u2="æ" k="16" /> +<hkern u1="*" u2="å" k="25" /> +<hkern u1="*" u2="ä" k="25" /> +<hkern u1="*" u2="ã" k="25" /> +<hkern u1="*" u2="â" k="25" /> +<hkern u1="*" u2="á" k="25" /> +<hkern u1="*" u2="à" k="25" /> +<hkern u1="*" u2="ß" k="-10" /> +<hkern u1="*" u2="Þ" k="16" /> +<hkern u1="*" u2="Ý" k="20" /> +<hkern u1="*" u2="Ñ" k="16" /> +<hkern u1="*" u2="Ð" k="16" /> +<hkern u1="*" u2="Ï" k="16" /> +<hkern u1="*" u2="Î" k="16" /> +<hkern u1="*" u2="Í" k="16" /> +<hkern u1="*" u2="Ì" k="16" /> +<hkern u1="*" u2="Ë" k="16" /> +<hkern u1="*" u2="Ê" k="16" /> +<hkern u1="*" u2="É" k="16" /> +<hkern u1="*" u2="È" k="16" /> +<hkern u1="*" u2="Æ" k="160" /> +<hkern u1="*" u2="Å" k="96" /> +<hkern u1="*" u2="Ä" k="96" /> +<hkern u1="*" u2="Ã" k="96" /> +<hkern u1="*" u2="Â" k="96" /> +<hkern u1="*" u2="Á" k="96" /> +<hkern u1="*" u2="À" k="96" /> +<hkern u1="*" u2="t" k="-23" /> +<hkern u1="*" u2="q" k="29" /> +<hkern u1="*" u2="o" k="16" /> +<hkern u1="*" u2="g" k="29" /> +<hkern u1="*" u2="f" k="-10" /> +<hkern u1="*" u2="e" k="16" /> +<hkern u1="*" u2="d" k="29" /> +<hkern u1="*" u2="c" k="16" /> +<hkern u1="*" u2="a" k="25" /> +<hkern u1="*" u2="Z" k="-23" /> +<hkern u1="*" u2="Y" k="20" /> +<hkern u1="*" u2="T" k="-76" /> +<hkern u1="*" u2="S" k="-27" /> +<hkern u1="*" u2="R" k="16" /> +<hkern u1="*" u2="P" k="16" /> +<hkern u1="*" u2="N" k="16" /> +<hkern u1="*" u2="M" k="16" /> +<hkern u1="*" u2="L" k="16" /> +<hkern u1="*" u2="K" k="16" /> +<hkern u1="*" u2="J" k="76" /> +<hkern u1="*" u2="I" k="16" /> +<hkern u1="*" u2="H" k="16" /> +<hkern u1="*" u2="F" k="16" /> +<hkern u1="*" u2="E" k="16" /> +<hkern u1="*" u2="D" k="16" /> +<hkern u1="*" u2="B" k="16" /> +<hkern u1="*" u2="A" k="96" /> +<hkern u1="+" u2="7" k="80" /> +<hkern u1="+" u2="4" k="-31" /> +<hkern u1="+" u2="2" k="37" /> +<hkern u1="+" u2="1" k="41" /> +<hkern u1="," u2="”" k="256" /> +<hkern u1="," u2="“" k="256" /> +<hkern u1="," u2="w" k="41" /> +<hkern u1="," u2="v" k="55" /> +<hkern u1="," u2="t" k="27" /> +<hkern u1="," u2="r" k="29" /> +<hkern u1="," u2="p" k="41" /> +<hkern u1="," u2="m" k="29" /> +<hkern u1="," u2="j" k="43" /> +<hkern u1="," u2="X" k="25" /> +<hkern u1="," u2="W" k="162" /> +<hkern u1="," u2="V" k="186" /> +<hkern u1="," u2="T" k="119" /> +<hkern u1="," u2="7" k="63" /> +<hkern u1="," u2="1" k="20" /> +<hkern u1="," u2="0" k="35" /> +<hkern u1="," u2=""" k="256" /> +<hkern u1="-" u2="Æ" k="119" /> +<hkern u1="-" u2="X" k="129" /> +<hkern u1="-" u2="W" k="98" /> +<hkern u1="-" u2="V" k="115" /> +<hkern u1="-" u2="T" k="141" /> +<hkern u1="-" u2="M" k="49" /> +<hkern u1="-" u2="J" k="117" /> +<hkern u1="-" u2="8" k="27" /> +<hkern u1="-" u2="7" k="125" /> +<hkern u1="-" u2="3" k="41" /> +<hkern u1="-" u2="2" k="63" /> +<hkern u1="-" u2="1" k="61" /> +<hkern u1="." u2="”" k="240" /> +<hkern u1="." u2="w" k="41" /> +<hkern u1="." u2="v" k="55" /> +<hkern u1="." u2="t" k="27" /> +<hkern u1="." u2="r" k="29" /> +<hkern u1="." u2="p" k="41" /> +<hkern u1="." u2="m" k="29" /> +<hkern u1="." u2="j" k="43" /> +<hkern u1="." u2="X" k="25" /> +<hkern u1="." u2="W" k="162" /> +<hkern u1="." u2="V" k="186" /> +<hkern u1="." u2="T" k="119" /> +<hkern u1="." u2="7" k="63" /> +<hkern u1="." u2="1" k="20" /> +<hkern u1="." u2="0" k="35" /> +<hkern u1="." u2=""" k="240" /> +<hkern u1="/" u2="”" k="-33" /> +<hkern u1="/" u2="’" k="-33" /> +<hkern u1="/" u2="Ÿ" k="-72" /> +<hkern u1="/" u2="œ" k="102" /> +<hkern u1="/" u2="Œ" k="33" /> +<hkern u1="/" u2="ÿ" k="27" /> +<hkern u1="/" u2="þ" k="-80" /> +<hkern u1="/" u2="ý" k="27" /> +<hkern u1="/" u2="ü" k="43" /> +<hkern u1="/" u2="û" k="43" /> +<hkern u1="/" u2="ú" k="43" /> +<hkern u1="/" u2="ù" k="43" /> +<hkern u1="/" u2="ø" k="102" /> +<hkern u1="/" u2="ö" k="102" /> +<hkern u1="/" u2="õ" k="102" /> +<hkern u1="/" u2="ô" k="102" /> +<hkern u1="/" u2="ó" k="102" /> +<hkern u1="/" u2="ò" k="102" /> +<hkern u1="/" u2="ñ" k="51" /> +<hkern u1="/" u2="ï" k="-49" /> +<hkern u1="/" u2="ë" k="102" /> +<hkern u1="/" u2="ê" k="102" /> +<hkern u1="/" u2="é" k="102" /> +<hkern u1="/" u2="è" k="102" /> +<hkern u1="/" u2="ç" k="102" /> +<hkern u1="/" u2="æ" k="88" /> +<hkern u1="/" u2="å" k="117" /> +<hkern u1="/" u2="ä" k="117" /> +<hkern u1="/" u2="ã" k="117" /> +<hkern u1="/" u2="â" k="117" /> +<hkern u1="/" u2="á" k="117" /> +<hkern u1="/" u2="à" k="117" /> +<hkern u1="/" u2="Ý" k="-72" /> +<hkern u1="/" u2="Ü" k="-39" /> +<hkern u1="/" u2="Û" k="-39" /> +<hkern u1="/" u2="Ú" k="-39" /> +<hkern u1="/" u2="Ù" k="-39" /> +<hkern u1="/" u2="Ø" k="33" /> +<hkern u1="/" u2="Ö" k="33" /> +<hkern u1="/" u2="Õ" k="33" /> +<hkern u1="/" u2="Ô" k="33" /> +<hkern u1="/" u2="Ó" k="33" /> +<hkern u1="/" u2="Ò" k="33" /> +<hkern u1="/" u2="Ç" k="33" /> +<hkern u1="/" u2="Æ" k="176" /> +<hkern u1="/" u2="Å" k="131" /> +<hkern u1="/" u2="Ä" k="131" /> +<hkern u1="/" u2="Ã" k="131" /> +<hkern u1="/" u2="Â" k="131" /> +<hkern u1="/" u2="Á" k="131" /> +<hkern u1="/" u2="À" k="131" /> +<hkern u1="/" u2="z" k="66" /> +<hkern u1="/" u2="y" k="27" /> +<hkern u1="/" u2="x" k="57" /> +<hkern u1="/" u2="w" k="41" /> +<hkern u1="/" u2="v" k="37" /> +<hkern u1="/" u2="u" k="43" /> +<hkern u1="/" u2="t" k="23" /> +<hkern u1="/" u2="s" k="80" /> +<hkern u1="/" u2="r" k="51" /> +<hkern u1="/" u2="q" k="96" /> +<hkern u1="/" u2="p" k="55" /> +<hkern u1="/" u2="o" k="102" /> +<hkern u1="/" u2="n" k="51" /> +<hkern u1="/" u2="m" k="51" /> +<hkern u1="/" u2="l" k="-55" /> +<hkern u1="/" u2="k" k="-57" /> +<hkern u1="/" u2="h" k="-61" /> +<hkern u1="/" u2="g" k="96" /> +<hkern u1="/" u2="e" k="102" /> +<hkern u1="/" u2="d" k="96" /> +<hkern u1="/" u2="c" k="102" /> +<hkern u1="/" u2="b" k="-80" /> +<hkern u1="/" u2="a" k="117" /> +<hkern u1="/" u2="Y" k="-72" /> +<hkern u1="/" u2="X" k="-53" /> +<hkern u1="/" u2="W" k="-61" /> +<hkern u1="/" u2="V" k="-70" /> +<hkern u1="/" u2="U" k="-39" /> +<hkern u1="/" u2="T" k="-43" /> +<hkern u1="/" u2="Q" k="33" /> +<hkern u1="/" u2="O" k="33" /> +<hkern u1="/" u2="J" k="35" /> +<hkern u1="/" u2="G" k="33" /> +<hkern u1="/" u2="C" k="33" /> +<hkern u1="/" u2="A" k="131" /> +<hkern u1="/" u2="7" k="-45" /> +<hkern u1="/" u2="6" k="23" /> +<hkern u1="/" u2="4" k="86" /> +<hkern u1="/" u2="0" k="20" /> +<hkern u1="/" u2="/" k="678" /> +<hkern u1="0" u2="…" k="31" /> +<hkern u1="0" u2="„" k="31" /> +<hkern u1="0" u2="‚" k="31" /> +<hkern u1="0" u2="Ÿ" k="43" /> +<hkern u1="0" u2="Ý" k="43" /> +<hkern u1="0" u2="Å" k="35" /> +<hkern u1="0" u2="Ä" k="35" /> +<hkern u1="0" u2="Ã" k="35" /> +<hkern u1="0" u2="Â" k="35" /> +<hkern u1="0" u2="Á" k="35" /> +<hkern u1="0" u2="À" k="35" /> +<hkern u1="0" u2="}" k="45" /> +<hkern u1="0" u2="]" k="82" /> +<hkern u1="0" u2="\" k="41" /> +<hkern u1="0" u2="Y" k="43" /> +<hkern u1="0" u2="W" k="37" /> +<hkern u1="0" u2="V" k="39" /> +<hkern u1="0" u2="A" k="35" /> +<hkern u1="0" u2="/" k="123" /> +<hkern u1="0" u2="." k="31" /> +<hkern u1="0" u2="," k="31" /> +<hkern u1="0" u2=")" k="43" /> +<hkern u1="1" u2="—" k="35" /> +<hkern u1="1" u2="–" k="35" /> +<hkern u1="1" u2="Ÿ" k="39" /> +<hkern u1="1" u2="Ý" k="39" /> +<hkern u1="1" u2="Ü" k="23" /> +<hkern u1="1" u2="Û" k="23" /> +<hkern u1="1" u2="Ú" k="23" /> +<hkern u1="1" u2="Ù" k="23" /> +<hkern u1="1" u2="Å" k="-27" /> +<hkern u1="1" u2="Ä" k="-27" /> +<hkern u1="1" u2="Ã" k="-27" /> +<hkern u1="1" u2="Â" k="-27" /> +<hkern u1="1" u2="Á" k="-27" /> +<hkern u1="1" u2="À" k="-27" /> +<hkern u1="1" u2="·" k="35" /> +<hkern u1="1" u2="°" k="23" /> +<hkern u1="1" u2="­" k="35" /> +<hkern u1="1" u2="}" k="29" /> +<hkern u1="1" u2="]" k="41" /> +<hkern u1="1" u2="Y" k="39" /> +<hkern u1="1" u2="W" k="37" /> +<hkern u1="1" u2="V" k="39" /> +<hkern u1="1" u2="U" k="23" /> +<hkern u1="1" u2="J" k="-33" /> +<hkern u1="1" u2="A" k="-27" /> +<hkern u1="1" u2="/" k="45" /> +<hkern u1="1" u2="-" k="35" /> +<hkern u1="1" u2="+" k="23" /> +<hkern u1="1" u2=")" k="31" /> +<hkern u1="1" u2="'" k="20" /> +<hkern u1="1" u2=""" k="20" /> +<hkern u1="2" u2="—" k="37" /> +<hkern u1="2" u2="–" k="37" /> +<hkern u1="2" u2="Ÿ" k="25" /> +<hkern u1="2" u2="Ý" k="25" /> +<hkern u1="2" u2="·" k="33" /> +<hkern u1="2" u2="­" k="37" /> +<hkern u1="2" u2="}" k="25" /> +<hkern u1="2" u2="]" k="49" /> +<hkern u1="2" u2="Y" k="25" /> +<hkern u1="2" u2="J" k="-14" /> +<hkern u1="2" u2="/" k="53" /> +<hkern u1="2" u2="-" k="37" /> +<hkern u1="3" u2="Ÿ" k="33" /> +<hkern u1="3" u2="Ý" k="33" /> +<hkern u1="3" u2="}" k="41" /> +<hkern u1="3" u2="]" k="63" /> +<hkern u1="3" u2="\" k="25" /> +<hkern u1="3" u2="Y" k="33" /> +<hkern u1="3" u2="W" k="29" /> +<hkern u1="3" u2="V" k="31" /> +<hkern u1="3" u2="4" k="-23" /> +<hkern u1="3" u2="/" k="88" /> +<hkern u1="3" u2=")" k="41" /> +<hkern u1="4" u2="Ÿ" k="53" /> +<hkern u1="4" u2="Ý" k="53" /> +<hkern u1="4" u2="°" k="37" /> +<hkern u1="4" u2="}" k="37" /> +<hkern u1="4" u2="]" k="53" /> +<hkern u1="4" u2="\" k="37" /> +<hkern u1="4" u2="Y" k="53" /> +<hkern u1="4" u2="W" k="49" /> +<hkern u1="4" u2="V" k="51" /> +<hkern u1="4" u2="T" k="31" /> +<hkern u1="4" u2="7" k="20" /> +<hkern u1="4" u2="4" k="-37" /> +<hkern u1="4" u2="/" k="57" /> +<hkern u1="4" u2=")" k="37" /> +<hkern u1="4" u2="'" k="37" /> +<hkern u1="4" u2=""" k="37" /> +<hkern u1="5" u2="Ÿ" k="25" /> +<hkern u1="5" u2="Ý" k="25" /> +<hkern u1="5" u2="Y" k="25" /> +<hkern u1="5" u2="4" k="-41" /> +<hkern u1="5" u2="/" k="86" /> +<hkern u1="6" u2="Ÿ" k="27" /> +<hkern u1="6" u2="Ý" k="27" /> +<hkern u1="6" u2="}" k="35" /> +<hkern u1="6" u2="]" k="51" /> +<hkern u1="6" u2="Y" k="27" /> +<hkern u1="6" u2="W" k="20" /> +<hkern u1="6" u2="V" k="23" /> +<hkern u1="6" u2="4" k="-18" /> +<hkern u1="6" u2="/" k="94" /> +<hkern u1="6" u2=")" k="35" /> +<hkern u1="7" u2="…" k="82" /> +<hkern u1="7" u2="„" k="82" /> +<hkern u1="7" u2="‚" k="82" /> +<hkern u1="7" u2="—" k="43" /> +<hkern u1="7" u2="–" k="43" /> +<hkern u1="7" u2="Ÿ" k="-66" /> +<hkern u1="7" u2="œ" k="49" /> +<hkern u1="7" u2="þ" k="-25" /> +<hkern u1="7" u2="ø" k="49" /> +<hkern u1="7" u2="ö" k="49" /> +<hkern u1="7" u2="õ" k="49" /> +<hkern u1="7" u2="ô" k="49" /> +<hkern u1="7" u2="ó" k="49" /> +<hkern u1="7" u2="ò" k="49" /> +<hkern u1="7" u2="ë" k="49" /> +<hkern u1="7" u2="ê" k="49" /> +<hkern u1="7" u2="é" k="49" /> +<hkern u1="7" u2="è" k="49" /> +<hkern u1="7" u2="ç" k="49" /> +<hkern u1="7" u2="Ý" k="-66" /> +<hkern u1="7" u2="Ü" k="-25" /> +<hkern u1="7" u2="Û" k="-25" /> +<hkern u1="7" u2="Ú" k="-25" /> +<hkern u1="7" u2="Ù" k="-25" /> +<hkern u1="7" u2="Æ" k="174" /> +<hkern u1="7" u2="Å" k="80" /> +<hkern u1="7" u2="Ä" k="80" /> +<hkern u1="7" u2="Ã" k="80" /> +<hkern u1="7" u2="Â" k="80" /> +<hkern u1="7" u2="Á" k="80" /> +<hkern u1="7" u2="À" k="80" /> +<hkern u1="7" u2="·" k="37" /> +<hkern u1="7" u2="­" k="43" /> +<hkern u1="7" u2="¢" k="43" /> +<hkern u1="7" u2="}" k="-59" /> +<hkern u1="7" u2="z" k="49" /> +<hkern u1="7" u2="x" k="25" /> +<hkern u1="7" u2="w" k="25" /> +<hkern u1="7" u2="v" k="25" /> +<hkern u1="7" u2="o" k="49" /> +<hkern u1="7" u2="h" k="-25" /> +<hkern u1="7" u2="e" k="49" /> +<hkern u1="7" u2="c" k="49" /> +<hkern u1="7" u2="]" k="-66" /> +<hkern u1="7" u2="\" k="-37" /> +<hkern u1="7" u2="Y" k="-66" /> +<hkern u1="7" u2="X" k="-45" /> +<hkern u1="7" u2="W" k="-53" /> +<hkern u1="7" u2="V" k="-61" /> +<hkern u1="7" u2="U" k="-25" /> +<hkern u1="7" u2="T" k="-31" /> +<hkern u1="7" u2="J" k="37" /> +<hkern u1="7" u2="A" k="80" /> +<hkern u1="7" u2="7" k="-45" /> +<hkern u1="7" u2="4" k="33" /> +<hkern u1="7" u2="/" k="166" /> +<hkern u1="7" u2="." k="82" /> +<hkern u1="7" u2="-" k="43" /> +<hkern u1="7" u2="," k="82" /> +<hkern u1="7" u2="+" k="31" /> +<hkern u1="7" u2=")" k="-12" /> +<hkern u1="8" u2="Ÿ" k="31" /> +<hkern u1="8" u2="Ý" k="31" /> +<hkern u1="8" u2="·" k="20" /> +<hkern u1="8" u2="}" k="41" /> +<hkern u1="8" u2="]" k="63" /> +<hkern u1="8" u2="\" k="23" /> +<hkern u1="8" u2="Y" k="31" /> +<hkern u1="8" u2="W" k="29" /> +<hkern u1="8" u2="V" k="29" /> +<hkern u1="8" u2="J" k="-10" /> +<hkern u1="8" u2="4" k="-18" /> +<hkern u1="8" u2="/" k="86" /> +<hkern u1="8" u2=")" k="39" /> +<hkern u1="=" u2="7" k="63" /> +<hkern u1="@" u2="”" k="25" /> +<hkern u1="@" u2="’" k="25" /> +<hkern u1="@" u2="Ÿ" k="80" /> +<hkern u1="@" u2="ÿ" k="-41" /> +<hkern u1="@" u2="ý" k="-41" /> +<hkern u1="@" u2="ü" k="-27" /> +<hkern u1="@" u2="û" k="-27" /> +<hkern u1="@" u2="ú" k="-27" /> +<hkern u1="@" u2="ù" k="-27" /> +<hkern u1="@" u2="ï" k="-20" /> +<hkern u1="@" u2="î" k="-20" /> +<hkern u1="@" u2="í" k="-20" /> +<hkern u1="@" u2="ì" k="-20" /> +<hkern u1="@" u2="Þ" k="20" /> +<hkern u1="@" u2="Ý" k="80" /> +<hkern u1="@" u2="Ñ" k="20" /> +<hkern u1="@" u2="Ð" k="20" /> +<hkern u1="@" u2="Ï" k="20" /> +<hkern u1="@" u2="Î" k="20" /> +<hkern u1="@" u2="Í" k="20" /> +<hkern u1="@" u2="Ì" k="20" /> +<hkern u1="@" u2="Ë" k="20" /> +<hkern u1="@" u2="Ê" k="20" /> +<hkern u1="@" u2="É" k="20" /> +<hkern u1="@" u2="È" k="20" /> +<hkern u1="@" u2="y" k="-41" /> +<hkern u1="@" u2="w" k="-29" /> +<hkern u1="@" u2="v" k="-33" /> +<hkern u1="@" u2="u" k="-27" /> +<hkern u1="@" u2="i" k="-20" /> +<hkern u1="@" u2="Y" k="80" /> +<hkern u1="@" u2="X" k="27" /> +<hkern u1="@" u2="W" k="66" /> +<hkern u1="@" u2="V" k="72" /> +<hkern u1="@" u2="R" k="20" /> +<hkern u1="@" u2="P" k="20" /> +<hkern u1="@" u2="N" k="20" /> +<hkern u1="@" u2="L" k="20" /> +<hkern u1="@" u2="K" k="20" /> +<hkern u1="@" u2="I" k="20" /> +<hkern u1="@" u2="H" k="20" /> +<hkern u1="@" u2="F" k="20" /> +<hkern u1="@" u2="E" k="20" /> +<hkern u1="@" u2="D" k="20" /> +<hkern u1="@" u2="B" k="20" /> +<hkern u1="@" u2="'" k="27" /> +<hkern u1="@" u2=""" k="27" /> +<hkern u1="A" u2="™" k="129" /> +<hkern u1="A" u2="ð" k="27" /> +<hkern u1="A" u2="æ" k="12" /> +<hkern u1="A" u2="Æ" k="-55" /> +<hkern u1="A" u2="®" k="37" /> +<hkern u1="A" u2="}" k="53" /> +<hkern u1="A" u2="x" k="-10" /> +<hkern u1="A" u2="w" k="51" /> +<hkern u1="A" u2="v" k="53" /> +<hkern u1="A" u2="t" k="43" /> +<hkern u1="A" u2="r" k="41" /> +<hkern u1="A" u2="p" k="55" /> +<hkern u1="A" u2="m" k="31" /> +<hkern u1="A" u2="k" k="18" /> +<hkern u1="A" u2="j" k="57" /> +<hkern u1="A" u2="b" k="18" /> +<hkern u1="A" u2="]" k="113" /> +<hkern u1="A" u2="\" k="170" /> +<hkern u1="A" u2="W" k="143" /> +<hkern u1="A" u2="V" k="162" /> +<hkern u1="A" u2="T" k="111" /> +<hkern u1="A" u2="J" k="-31" /> +<hkern u1="A" u2="@" k="20" /> +<hkern u1="A" u2="?" k="68" /> +<hkern u1="A" u2="9" k="23" /> +<hkern u1="A" u2="8" k="23" /> +<hkern u1="A" u2="7" k="66" /> +<hkern u1="A" u2="6" k="27" /> +<hkern u1="A" u2="4" k="25" /> +<hkern u1="A" u2="2" k="-27" /> +<hkern u1="A" u2="1" k="23" /> +<hkern u1="A" u2="0" k="35" /> +<hkern u1="A" u2="/" k="29" /> +<hkern u1="A" u2="*" k="111" /> +<hkern u1="A" u2=")" k="45" /> +<hkern u1="B" u2="fl" k="20" /> +<hkern u1="B" u2="fi" k="20" /> +<hkern u1="B" u2="”" k="16" /> +<hkern u1="B" u2="’" k="16" /> +<hkern u1="B" u2="Ÿ" k="53" /> +<hkern u1="B" u2="ÿ" k="39" /> +<hkern u1="B" u2="ý" k="39" /> +<hkern u1="B" u2="ü" k="14" /> +<hkern u1="B" u2="û" k="14" /> +<hkern u1="B" u2="ú" k="14" /> +<hkern u1="B" u2="ù" k="14" /> +<hkern u1="B" u2="ñ" k="23" /> +<hkern u1="B" u2="ï" k="16" /> +<hkern u1="B" u2="î" k="16" /> +<hkern u1="B" u2="í" k="16" /> +<hkern u1="B" u2="ì" k="16" /> +<hkern u1="B" u2="ß" k="20" /> +<hkern u1="B" u2="Þ" k="27" /> +<hkern u1="B" u2="Ý" k="53" /> +<hkern u1="B" u2="Ü" k="14" /> +<hkern u1="B" u2="Û" k="14" /> +<hkern u1="B" u2="Ú" k="14" /> +<hkern u1="B" u2="Ù" k="14" /> +<hkern u1="B" u2="Ñ" k="27" /> +<hkern u1="B" u2="Ð" k="27" /> +<hkern u1="B" u2="Ï" k="27" /> +<hkern u1="B" u2="Î" k="27" /> +<hkern u1="B" u2="Í" k="27" /> +<hkern u1="B" u2="Ì" k="27" /> +<hkern u1="B" u2="Ë" k="27" /> +<hkern u1="B" u2="Ê" k="27" /> +<hkern u1="B" u2="É" k="27" /> +<hkern u1="B" u2="È" k="27" /> +<hkern u1="B" u2="Æ" k="31" /> +<hkern u1="B" u2="Å" k="25" /> +<hkern u1="B" u2="Ä" k="25" /> +<hkern u1="B" u2="Ã" k="25" /> +<hkern u1="B" u2="Â" k="25" /> +<hkern u1="B" u2="Á" k="25" /> +<hkern u1="B" u2="À" k="25" /> +<hkern u1="B" u2="}" k="53" /> +<hkern u1="B" u2="z" k="18" /> +<hkern u1="B" u2="y" k="39" /> +<hkern u1="B" u2="x" k="35" /> +<hkern u1="B" u2="w" k="14" /> +<hkern u1="B" u2="v" k="14" /> +<hkern u1="B" u2="u" k="14" /> +<hkern u1="B" u2="t" k="16" /> +<hkern u1="B" u2="r" k="23" /> +<hkern u1="B" u2="p" k="33" /> +<hkern u1="B" u2="n" k="23" /> +<hkern u1="B" u2="m" k="23" /> +<hkern u1="B" u2="j" k="35" /> +<hkern u1="B" u2="i" k="16" /> +<hkern u1="B" u2="f" k="20" /> +<hkern u1="B" u2="]" k="96" /> +<hkern u1="B" u2="\" k="49" /> +<hkern u1="B" u2="Z" k="12" /> +<hkern u1="B" u2="Y" k="53" /> +<hkern u1="B" u2="X" k="68" /> +<hkern u1="B" u2="W" k="45" /> +<hkern u1="B" u2="V" k="49" /> +<hkern u1="B" u2="U" k="14" /> +<hkern u1="B" u2="T" k="18" /> +<hkern u1="B" u2="R" k="27" /> +<hkern u1="B" u2="P" k="27" /> +<hkern u1="B" u2="N" k="27" /> +<hkern u1="B" u2="M" k="27" /> +<hkern u1="B" u2="L" k="27" /> +<hkern u1="B" u2="K" k="27" /> +<hkern u1="B" u2="I" k="27" /> +<hkern u1="B" u2="H" k="27" /> +<hkern u1="B" u2="F" k="27" /> +<hkern u1="B" u2="E" k="27" /> +<hkern u1="B" u2="D" k="27" /> +<hkern u1="B" u2="B" k="27" /> +<hkern u1="B" u2="A" k="25" /> +<hkern u1="B" u2="4" k="-37" /> +<hkern u1="B" u2="/" k="94" /> +<hkern u1="B" u2=")" k="47" /> +<hkern u1="C" u2="x" k="27" /> +<hkern u1="C" u2="r" k="16" /> +<hkern u1="C" u2="p" k="16" /> +<hkern u1="C" u2="m" k="16" /> +<hkern u1="C" u2="j" k="20" /> +<hkern u1="C" u2="3" k="-23" /> +<hkern u1="C" u2="/" k="72" /> +<hkern u1="D" u2="æ" k="10" /> +<hkern u1="D" u2="Æ" k="68" /> +<hkern u1="D" u2="}" k="53" /> +<hkern u1="D" u2="x" k="29" /> +<hkern u1="D" u2="k" k="10" /> +<hkern u1="D" u2="b" k="10" /> +<hkern u1="D" u2="]" k="104" /> +<hkern u1="D" u2="\" k="55" /> +<hkern u1="D" u2="X" k="74" /> +<hkern u1="D" u2="W" k="51" /> +<hkern u1="D" u2="V" k="55" /> +<hkern u1="D" u2="M" k="29" /> +<hkern u1="D" u2="J" k="18" /> +<hkern u1="D" u2="/" k="139" /> +<hkern u1="D" u2=")" k="51" /> +<hkern u1="E" u2="ð" k="10" /> +<hkern u1="E" u2="w" k="29" /> +<hkern u1="E" u2="v" k="31" /> +<hkern u1="E" u2="t" k="14" /> +<hkern u1="E" u2="r" k="33" /> +<hkern u1="E" u2="p" k="43" /> +<hkern u1="E" u2="m" k="33" /> +<hkern u1="E" u2="j" k="47" /> +<hkern u1="E" u2="W" k="14" /> +<hkern u1="E" u2="V" k="16" /> +<hkern u1="E" u2="4" k="-10" /> +<hkern u1="E" u2="/" k="51" /> +<hkern u1="F" u2="™" k="-35" /> +<hkern u1="F" u2="‹" k="41" /> +<hkern u1="F" u2="…" k="125" /> +<hkern u1="F" u2="„" k="125" /> +<hkern u1="F" u2="”" k="-16" /> +<hkern u1="F" u2="‚" k="125" /> +<hkern u1="F" u2="’" k="-16" /> +<hkern u1="F" u2="—" k="61" /> +<hkern u1="F" u2="–" k="61" /> +<hkern u1="F" u2="Ÿ" k="-14" /> +<hkern u1="F" u2="œ" k="82" /> +<hkern u1="F" u2="þ" k="-61" /> +<hkern u1="F" u2="ü" k="12" /> +<hkern u1="F" u2="û" k="12" /> +<hkern u1="F" u2="ú" k="12" /> +<hkern u1="F" u2="ù" k="12" /> +<hkern u1="F" u2="ø" k="82" /> +<hkern u1="F" u2="ö" k="82" /> +<hkern u1="F" u2="õ" k="82" /> +<hkern u1="F" u2="ô" k="82" /> +<hkern u1="F" u2="ó" k="82" /> +<hkern u1="F" u2="ò" k="82" /> +<hkern u1="F" u2="ñ" k="20" /> +<hkern u1="F" u2="ð" k="29" /> +<hkern u1="F" u2="ï" k="-35" /> +<hkern u1="F" u2="î" k="-47" /> +<hkern u1="F" u2="ë" k="82" /> +<hkern u1="F" u2="ê" k="82" /> +<hkern u1="F" u2="é" k="82" /> +<hkern u1="F" u2="è" k="82" /> +<hkern u1="F" u2="ç" k="82" /> +<hkern u1="F" u2="æ" k="68" /> +<hkern u1="F" u2="å" k="82" /> +<hkern u1="F" u2="ä" k="82" /> +<hkern u1="F" u2="ã" k="82" /> +<hkern u1="F" u2="â" k="82" /> +<hkern u1="F" u2="á" k="82" /> +<hkern u1="F" u2="à" k="82" /> +<hkern u1="F" u2="Ý" k="-14" /> +<hkern u1="F" u2="Æ" k="145" /> +<hkern u1="F" u2="Å" k="100" /> +<hkern u1="F" u2="Ä" k="100" /> +<hkern u1="F" u2="Ã" k="100" /> +<hkern u1="F" u2="Â" k="100" /> +<hkern u1="F" u2="Á" k="100" /> +<hkern u1="F" u2="À" k="100" /> +<hkern u1="F" u2="­" k="61" /> +<hkern u1="F" u2="«" k="41" /> +<hkern u1="F" u2="}" k="-53" /> +<hkern u1="F" u2="z" k="35" /> +<hkern u1="F" u2="x" k="31" /> +<hkern u1="F" u2="w" k="10" /> +<hkern u1="F" u2="u" k="12" /> +<hkern u1="F" u2="s" k="59" /> +<hkern u1="F" u2="r" k="20" /> +<hkern u1="F" u2="q" k="82" /> +<hkern u1="F" u2="p" k="23" /> +<hkern u1="F" u2="o" k="82" /> +<hkern u1="F" u2="n" k="20" /> +<hkern u1="F" u2="m" k="20" /> +<hkern u1="F" u2="l" k="-23" /> +<hkern u1="F" u2="k" k="-31" /> +<hkern u1="F" u2="j" k="16" /> +<hkern u1="F" u2="h" k="-41" /> +<hkern u1="F" u2="g" k="82" /> +<hkern u1="F" u2="e" k="82" /> +<hkern u1="F" u2="d" k="82" /> +<hkern u1="F" u2="c" k="82" /> +<hkern u1="F" u2="b" k="-61" /> +<hkern u1="F" u2="a" k="82" /> +<hkern u1="F" u2="]" k="-59" /> +<hkern u1="F" u2="\" k="-35" /> +<hkern u1="F" u2="Y" k="-14" /> +<hkern u1="F" u2="J" k="43" /> +<hkern u1="F" u2="A" k="100" /> +<hkern u1="F" u2="?" k="-23" /> +<hkern u1="F" u2="7" k="-55" /> +<hkern u1="F" u2="4" k="23" /> +<hkern u1="F" u2="2" k="-10" /> +<hkern u1="F" u2="1" k="-72" /> +<hkern u1="F" u2="/" k="168" /> +<hkern u1="F" u2="." k="125" /> +<hkern u1="F" u2="-" k="61" /> +<hkern u1="F" u2="," k="125" /> +<hkern u1="F" u2="*" k="-80" /> +<hkern u1="G" u2="fl" k="16" /> +<hkern u1="G" u2="fi" k="16" /> +<hkern u1="G" u2="‹" k="-12" /> +<hkern u1="G" u2="”" k="18" /> +<hkern u1="G" u2="“" k="20" /> +<hkern u1="G" u2="’" k="18" /> +<hkern u1="G" u2="‘" k="20" /> +<hkern u1="G" u2="Ÿ" k="37" /> +<hkern u1="G" u2="ß" k="16" /> +<hkern u1="G" u2="Þ" k="10" /> +<hkern u1="G" u2="Ý" k="37" /> +<hkern u1="G" u2="Ñ" k="10" /> +<hkern u1="G" u2="Ð" k="10" /> +<hkern u1="G" u2="Ï" k="10" /> +<hkern u1="G" u2="Î" k="10" /> +<hkern u1="G" u2="Í" k="10" /> +<hkern u1="G" u2="Ì" k="10" /> +<hkern u1="G" u2="Ë" k="10" /> +<hkern u1="G" u2="Ê" k="10" /> +<hkern u1="G" u2="É" k="10" /> +<hkern u1="G" u2="È" k="10" /> +<hkern u1="G" u2="Æ" k="14" /> +<hkern u1="G" u2="Å" k="12" /> +<hkern u1="G" u2="Ä" k="12" /> +<hkern u1="G" u2="Ã" k="12" /> +<hkern u1="G" u2="Â" k="12" /> +<hkern u1="G" u2="Á" k="12" /> +<hkern u1="G" u2="À" k="12" /> +<hkern u1="G" u2="«" k="-12" /> +<hkern u1="G" u2="}" k="27" /> +<hkern u1="G" u2="t" k="12" /> +<hkern u1="G" u2="f" k="16" /> +<hkern u1="G" u2="]" k="43" /> +<hkern u1="G" u2="Y" k="37" /> +<hkern u1="G" u2="X" k="23" /> +<hkern u1="G" u2="W" k="29" /> +<hkern u1="G" u2="V" k="31" /> +<hkern u1="G" u2="T" k="18" /> +<hkern u1="G" u2="R" k="10" /> +<hkern u1="G" u2="P" k="10" /> +<hkern u1="G" u2="N" k="10" /> +<hkern u1="G" u2="L" k="10" /> +<hkern u1="G" u2="K" k="10" /> +<hkern u1="G" u2="I" k="10" /> +<hkern u1="G" u2="H" k="10" /> +<hkern u1="G" u2="F" k="10" /> +<hkern u1="G" u2="E" k="10" /> +<hkern u1="G" u2="D" k="10" /> +<hkern u1="G" u2="B" k="10" /> +<hkern u1="G" u2="A" k="12" /> +<hkern u1="G" u2="4" k="-47" /> +<hkern u1="G" u2="/" k="92" /> +<hkern u1="G" u2=")" k="31" /> +<hkern u1="G" u2="'" k="23" /> +<hkern u1="G" u2=""" k="23" /> +<hkern u1="H" u2="ð" k="41" /> +<hkern u1="H" u2="æ" k="23" /> +<hkern u1="H" u2="x" k="35" /> +<hkern u1="H" u2="w" k="43" /> +<hkern u1="H" u2="v" k="43" /> +<hkern u1="H" u2="t" k="49" /> +<hkern u1="H" u2="r" k="49" /> +<hkern u1="H" u2="p" k="57" /> +<hkern u1="H" u2="m" k="49" /> +<hkern u1="H" u2="j" k="49" /> +<hkern u1="H" u2="/" k="53" /> +<hkern u1="H" u2="*" k="20" /> +<hkern u1="I" u2="ð" k="41" /> +<hkern u1="I" u2="æ" k="23" /> +<hkern u1="I" u2="x" k="35" /> +<hkern u1="I" u2="w" k="43" /> +<hkern u1="I" u2="v" k="43" /> +<hkern u1="I" u2="t" k="49" /> +<hkern u1="I" u2="r" k="49" /> +<hkern u1="I" u2="p" k="57" /> +<hkern u1="I" u2="m" k="49" /> +<hkern u1="I" u2="j" k="49" /> +<hkern u1="I" u2="/" k="53" /> +<hkern u1="I" u2="*" k="20" /> +<hkern u1="J" u2="fl" k="39" /> +<hkern u1="J" u2="fi" k="39" /> +<hkern u1="J" u2="…" k="47" /> +<hkern u1="J" u2="„" k="47" /> +<hkern u1="J" u2="‚" k="47" /> +<hkern u1="J" u2="—" k="35" /> +<hkern u1="J" u2="–" k="35" /> +<hkern u1="J" u2="œ" k="51" /> +<hkern u1="J" u2="Œ" k="14" /> +<hkern u1="J" u2="ÿ" k="12" /> +<hkern u1="J" u2="þ" k="-43" /> +<hkern u1="J" u2="ý" k="12" /> +<hkern u1="J" u2="ü" k="27" /> +<hkern u1="J" u2="û" k="27" /> +<hkern u1="J" u2="ú" k="27" /> +<hkern u1="J" u2="ù" k="27" /> +<hkern u1="J" u2="ø" k="51" /> +<hkern u1="J" u2="ö" k="51" /> +<hkern u1="J" u2="õ" k="51" /> +<hkern u1="J" u2="ô" k="51" /> +<hkern u1="J" u2="ó" k="51" /> +<hkern u1="J" u2="ò" k="51" /> +<hkern u1="J" u2="ñ" k="39" /> +<hkern u1="J" u2="ð" k="37" /> +<hkern u1="J" u2="ï" k="-16" /> +<hkern u1="J" u2="î" k="20" /> +<hkern u1="J" u2="í" k="20" /> +<hkern u1="J" u2="ì" k="20" /> +<hkern u1="J" u2="ë" k="51" /> +<hkern u1="J" u2="ê" k="51" /> +<hkern u1="J" u2="é" k="51" /> +<hkern u1="J" u2="è" k="51" /> +<hkern u1="J" u2="ç" k="51" /> +<hkern u1="J" u2="æ" k="53" /> +<hkern u1="J" u2="å" k="53" /> +<hkern u1="J" u2="ä" k="53" /> +<hkern u1="J" u2="ã" k="53" /> +<hkern u1="J" u2="â" k="53" /> +<hkern u1="J" u2="á" k="53" /> +<hkern u1="J" u2="à" k="53" /> +<hkern u1="J" u2="ß" k="39" /> +<hkern u1="J" u2="Ø" k="14" /> +<hkern u1="J" u2="Ö" k="14" /> +<hkern u1="J" u2="Õ" k="14" /> +<hkern u1="J" u2="Ô" k="14" /> +<hkern u1="J" u2="Ó" k="14" /> +<hkern u1="J" u2="Ò" k="14" /> +<hkern u1="J" u2="Ç" k="14" /> +<hkern u1="J" u2="Æ" k="57" /> +<hkern u1="J" u2="Å" k="53" /> +<hkern u1="J" u2="Ä" k="53" /> +<hkern u1="J" u2="Ã" k="53" /> +<hkern u1="J" u2="Â" k="53" /> +<hkern u1="J" u2="Á" k="53" /> +<hkern u1="J" u2="À" k="53" /> +<hkern u1="J" u2="­" k="35" /> +<hkern u1="J" u2="}" k="-35" /> +<hkern u1="J" u2="z" k="51" /> +<hkern u1="J" u2="y" k="12" /> +<hkern u1="J" u2="x" k="41" /> +<hkern u1="J" u2="w" k="25" /> +<hkern u1="J" u2="v" k="23" /> +<hkern u1="J" u2="u" k="27" /> +<hkern u1="J" u2="t" k="37" /> +<hkern u1="J" u2="s" k="51" /> +<hkern u1="J" u2="r" k="39" /> +<hkern u1="J" u2="q" k="49" /> +<hkern u1="J" u2="p" k="43" /> +<hkern u1="J" u2="o" k="51" /> +<hkern u1="J" u2="n" k="39" /> +<hkern u1="J" u2="m" k="39" /> +<hkern u1="J" u2="j" k="31" /> +<hkern u1="J" u2="i" k="20" /> +<hkern u1="J" u2="h" k="-20" /> +<hkern u1="J" u2="g" k="49" /> +<hkern u1="J" u2="f" k="39" /> +<hkern u1="J" u2="e" k="51" /> +<hkern u1="J" u2="d" k="49" /> +<hkern u1="J" u2="c" k="51" /> +<hkern u1="J" u2="b" k="-41" /> +<hkern u1="J" u2="a" k="53" /> +<hkern u1="J" u2="]" k="-43" /> +<hkern u1="J" u2="Q" k="14" /> +<hkern u1="J" u2="O" k="14" /> +<hkern u1="J" u2="J" k="16" /> +<hkern u1="J" u2="G" k="14" /> +<hkern u1="J" u2="C" k="14" /> +<hkern u1="J" u2="A" k="53" /> +<hkern u1="J" u2=";" k="25" /> +<hkern u1="J" u2=":" k="20" /> +<hkern u1="J" u2="7" k="-18" /> +<hkern u1="J" u2="/" k="137" /> +<hkern u1="J" u2="." k="47" /> +<hkern u1="J" u2="-" k="35" /> +<hkern u1="J" u2="," k="47" /> +<hkern u1="K" u2="fl" k="31" /> +<hkern u1="K" u2="fi" k="31" /> +<hkern u1="K" u2="›" k="-25" /> +<hkern u1="K" u2="‹" k="57" /> +<hkern u1="K" u2="—" k="121" /> +<hkern u1="K" u2="–" k="121" /> +<hkern u1="K" u2="Ÿ" k="10" /> +<hkern u1="K" u2="œ" k="49" /> +<hkern u1="K" u2="Œ" k="84" /> +<hkern u1="K" u2="ÿ" k="131" /> +<hkern u1="K" u2="ý" k="131" /> +<hkern u1="K" u2="ü" k="74" /> +<hkern u1="K" u2="û" k="74" /> +<hkern u1="K" u2="ú" k="74" /> +<hkern u1="K" u2="ù" k="74" /> +<hkern u1="K" u2="ø" k="49" /> +<hkern u1="K" u2="ö" k="49" /> +<hkern u1="K" u2="õ" k="49" /> +<hkern u1="K" u2="ô" k="49" /> +<hkern u1="K" u2="ó" k="49" /> +<hkern u1="K" u2="ò" k="49" /> +<hkern u1="K" u2="ñ" k="57" /> +<hkern u1="K" u2="ð" k="45" /> +<hkern u1="K" u2="ï" k="31" /> +<hkern u1="K" u2="î" k="57" /> +<hkern u1="K" u2="í" k="76" /> +<hkern u1="K" u2="ì" k="76" /> +<hkern u1="K" u2="ë" k="49" /> +<hkern u1="K" u2="ê" k="49" /> +<hkern u1="K" u2="é" k="49" /> +<hkern u1="K" u2="è" k="49" /> +<hkern u1="K" u2="ç" k="49" /> +<hkern u1="K" u2="æ" k="10" /> +<hkern u1="K" u2="å" k="25" /> +<hkern u1="K" u2="ä" k="25" /> +<hkern u1="K" u2="ã" k="25" /> +<hkern u1="K" u2="â" k="25" /> +<hkern u1="K" u2="á" k="25" /> +<hkern u1="K" u2="à" k="25" /> +<hkern u1="K" u2="ß" k="31" /> +<hkern u1="K" u2="Ý" k="10" /> +<hkern u1="K" u2="Ø" k="84" /> +<hkern u1="K" u2="Ö" k="84" /> +<hkern u1="K" u2="Õ" k="84" /> +<hkern u1="K" u2="Ô" k="84" /> +<hkern u1="K" u2="Ó" k="84" /> +<hkern u1="K" u2="Ò" k="84" /> +<hkern u1="K" u2="Ç" k="84" /> +<hkern u1="K" u2="»" k="-25" /> +<hkern u1="K" u2="­" k="121" /> +<hkern u1="K" u2="«" k="57" /> +<hkern u1="K" u2="z" k="10" /> +<hkern u1="K" u2="y" k="131" /> +<hkern u1="K" u2="x" k="10" /> +<hkern u1="K" u2="w" k="74" /> +<hkern u1="K" u2="v" k="76" /> +<hkern u1="K" u2="u" k="74" /> +<hkern u1="K" u2="t" k="51" /> +<hkern u1="K" u2="s" k="14" /> +<hkern u1="K" u2="r" k="57" /> +<hkern u1="K" u2="q" k="31" /> +<hkern u1="K" u2="p" k="68" /> +<hkern u1="K" u2="o" k="49" /> +<hkern u1="K" u2="n" k="57" /> +<hkern u1="K" u2="m" k="57" /> +<hkern u1="K" u2="j" k="63" /> +<hkern u1="K" u2="i" k="76" /> +<hkern u1="K" u2="g" k="31" /> +<hkern u1="K" u2="f" k="31" /> +<hkern u1="K" u2="e" k="49" /> +<hkern u1="K" u2="d" k="31" /> +<hkern u1="K" u2="c" k="49" /> +<hkern u1="K" u2="a" k="25" /> +<hkern u1="K" u2="Y" k="10" /> +<hkern u1="K" u2="Q" k="84" /> +<hkern u1="K" u2="O" k="84" /> +<hkern u1="K" u2="J" k="-33" /> +<hkern u1="K" u2="G" k="84" /> +<hkern u1="K" u2="C" k="84" /> +<hkern u1="K" u2="2" k="-31" /> +<hkern u1="K" u2="-" k="121" /> +<hkern u1="K" u2="*" k="41" /> +<hkern u1="L" u2="™" k="104" /> +<hkern u1="L" u2="Æ" k="-25" /> +<hkern u1="L" u2="·" k="231" /> +<hkern u1="L" u2="}" k="43" /> +<hkern u1="L" u2="w" k="37" /> +<hkern u1="L" u2="v" k="43" /> +<hkern u1="L" u2="t" k="20" /> +<hkern u1="L" u2="r" k="35" /> +<hkern u1="L" u2="p" k="55" /> +<hkern u1="L" u2="m" k="35" /> +<hkern u1="L" u2="j" k="57" /> +<hkern u1="L" u2="]" k="98" /> +<hkern u1="L" u2="\" k="154" /> +<hkern u1="L" u2="W" k="137" /> +<hkern u1="L" u2="V" k="160" /> +<hkern u1="L" u2="T" k="137" /> +<hkern u1="L" u2="J" k="-27" /> +<hkern u1="L" u2="?" k="45" /> +<hkern u1="L" u2="7" k="59" /> +<hkern u1="L" u2="4" k="-57" /> +<hkern u1="L" u2="/" k="33" /> +<hkern u1="L" u2="*" k="106" /> +<hkern u1="L" u2=")" k="41" /> +<hkern u1="M" u2="fl" k="43" /> +<hkern u1="M" u2="fi" k="43" /> +<hkern u1="M" u2="‹" k="29" /> +<hkern u1="M" u2="—" k="49" /> +<hkern u1="M" u2="–" k="49" /> +<hkern u1="M" u2="Ÿ" k="18" /> +<hkern u1="M" u2="œ" k="41" /> +<hkern u1="M" u2="Œ" k="25" /> +<hkern u1="M" u2="ÿ" k="47" /> +<hkern u1="M" u2="ý" k="47" /> +<hkern u1="M" u2="ü" k="41" /> +<hkern u1="M" u2="û" k="41" /> +<hkern u1="M" u2="ú" k="41" /> +<hkern u1="M" u2="ù" k="41" /> +<hkern u1="M" u2="ø" k="41" /> +<hkern u1="M" u2="ö" k="41" /> +<hkern u1="M" u2="õ" k="41" /> +<hkern u1="M" u2="ô" k="41" /> +<hkern u1="M" u2="ó" k="41" /> +<hkern u1="M" u2="ò" k="41" /> +<hkern u1="M" u2="ñ" k="45" /> +<hkern u1="M" u2="ð" k="37" /> +<hkern u1="M" u2="ï" k="39" /> +<hkern u1="M" u2="î" k="39" /> +<hkern u1="M" u2="í" k="39" /> +<hkern u1="M" u2="ì" k="39" /> +<hkern u1="M" u2="ë" k="41" /> +<hkern u1="M" u2="ê" k="41" /> +<hkern u1="M" u2="é" k="41" /> +<hkern u1="M" u2="è" k="41" /> +<hkern u1="M" u2="ç" k="41" /> +<hkern u1="M" u2="æ" k="16" /> +<hkern u1="M" u2="å" k="27" /> +<hkern u1="M" u2="ä" k="27" /> +<hkern u1="M" u2="ã" k="27" /> +<hkern u1="M" u2="â" k="27" /> +<hkern u1="M" u2="á" k="27" /> +<hkern u1="M" u2="à" k="27" /> +<hkern u1="M" u2="ß" k="43" /> +<hkern u1="M" u2="Ý" k="18" /> +<hkern u1="M" u2="Ø" k="25" /> +<hkern u1="M" u2="Ö" k="25" /> +<hkern u1="M" u2="Õ" k="25" /> +<hkern u1="M" u2="Ô" k="25" /> +<hkern u1="M" u2="Ó" k="25" /> +<hkern u1="M" u2="Ò" k="25" /> +<hkern u1="M" u2="Ç" k="25" /> +<hkern u1="M" u2="­" k="49" /> +<hkern u1="M" u2="«" k="29" /> +<hkern u1="M" u2="z" k="14" /> +<hkern u1="M" u2="y" k="47" /> +<hkern u1="M" u2="x" k="14" /> +<hkern u1="M" u2="w" k="39" /> +<hkern u1="M" u2="v" k="39" /> +<hkern u1="M" u2="u" k="41" /> +<hkern u1="M" u2="t" k="45" /> +<hkern u1="M" u2="s" k="18" /> +<hkern u1="M" u2="r" k="45" /> +<hkern u1="M" u2="q" k="31" /> +<hkern u1="M" u2="p" k="51" /> +<hkern u1="M" u2="o" k="41" /> +<hkern u1="M" u2="n" k="45" /> +<hkern u1="M" u2="m" k="45" /> +<hkern u1="M" u2="l" k="10" /> +<hkern u1="M" u2="k" k="8" /> +<hkern u1="M" u2="j" k="49" /> +<hkern u1="M" u2="i" k="39" /> +<hkern u1="M" u2="g" k="31" /> +<hkern u1="M" u2="f" k="43" /> +<hkern u1="M" u2="e" k="41" /> +<hkern u1="M" u2="d" k="31" /> +<hkern u1="M" u2="c" k="41" /> +<hkern u1="M" u2="a" k="27" /> +<hkern u1="M" u2="Y" k="18" /> +<hkern u1="M" u2="W" k="12" /> +<hkern u1="M" u2="V" k="12" /> +<hkern u1="M" u2="Q" k="25" /> +<hkern u1="M" u2="O" k="25" /> +<hkern u1="M" u2="G" k="25" /> +<hkern u1="M" u2="C" k="25" /> +<hkern u1="M" u2="/" k="49" /> +<hkern u1="M" u2="-" k="49" /> +<hkern u1="M" u2="*" k="23" /> +<hkern u1="N" u2="þ" k="-27" /> +<hkern u1="N" u2="ð" k="39" /> +<hkern u1="N" u2="æ" k="47" /> +<hkern u1="N" u2="Æ" k="23" /> +<hkern u1="N" u2="}" k="-20" /> +<hkern u1="N" u2="x" k="37" /> +<hkern u1="N" u2="w" k="33" /> +<hkern u1="N" u2="v" k="31" /> +<hkern u1="N" u2="t" k="43" /> +<hkern u1="N" u2="r" k="45" /> +<hkern u1="N" u2="p" k="49" /> +<hkern u1="N" u2="m" k="45" /> +<hkern u1="N" u2="j" k="39" /> +<hkern u1="N" u2="b" k="-27" /> +<hkern u1="N" u2="]" k="-29" /> +<hkern u1="N" u2="J" k="10" /> +<hkern u1="N" u2=";" k="20" /> +<hkern u1="N" u2=":" k="18" /> +<hkern u1="N" u2="/" k="90" /> +<hkern u1="O" u2="æ" k="8" /> +<hkern u1="O" u2="Æ" k="53" /> +<hkern u1="O" u2="}" k="49" /> +<hkern u1="O" u2="x" k="29" /> +<hkern u1="O" u2="k" k="10" /> +<hkern u1="O" u2="b" k="10" /> +<hkern u1="O" u2="]" k="94" /> +<hkern u1="O" u2="\" k="49" /> +<hkern u1="O" u2="X" k="66" /> +<hkern u1="O" u2="W" k="45" /> +<hkern u1="O" u2="V" k="49" /> +<hkern u1="O" u2="M" k="25" /> +<hkern u1="O" u2="J" k="12" /> +<hkern u1="O" u2="4" k="-10" /> +<hkern u1="O" u2="/" k="131" /> +<hkern u1="O" u2=")" k="49" /> +<hkern u1="P" u2="™" k="-12" /> +<hkern u1="P" u2="…" k="180" /> +<hkern u1="P" u2="„" k="180" /> +<hkern u1="P" u2="‚" k="180" /> +<hkern u1="P" u2="—" k="16" /> +<hkern u1="P" u2="–" k="16" /> +<hkern u1="P" u2="Ÿ" k="14" /> +<hkern u1="P" u2="œ" k="27" /> +<hkern u1="P" u2="ø" k="27" /> +<hkern u1="P" u2="ö" k="27" /> +<hkern u1="P" u2="õ" k="27" /> +<hkern u1="P" u2="ô" k="27" /> +<hkern u1="P" u2="ó" k="27" /> +<hkern u1="P" u2="ò" k="27" /> +<hkern u1="P" u2="ð" k="27" /> +<hkern u1="P" u2="ë" k="27" /> +<hkern u1="P" u2="ê" k="27" /> +<hkern u1="P" u2="é" k="27" /> +<hkern u1="P" u2="è" k="27" /> +<hkern u1="P" u2="ç" k="27" /> +<hkern u1="P" u2="æ" k="16" /> +<hkern u1="P" u2="å" k="43" /> +<hkern u1="P" u2="ä" k="43" /> +<hkern u1="P" u2="ã" k="43" /> +<hkern u1="P" u2="â" k="43" /> +<hkern u1="P" u2="á" k="43" /> +<hkern u1="P" u2="à" k="43" /> +<hkern u1="P" u2="Þ" k="10" /> +<hkern u1="P" u2="Ý" k="14" /> +<hkern u1="P" u2="Ñ" k="10" /> +<hkern u1="P" u2="Ð" k="10" /> +<hkern u1="P" u2="Ï" k="10" /> +<hkern u1="P" u2="Î" k="10" /> +<hkern u1="P" u2="Í" k="10" /> +<hkern u1="P" u2="Ì" k="10" /> +<hkern u1="P" u2="Ë" k="10" /> +<hkern u1="P" u2="Ê" k="10" /> +<hkern u1="P" u2="É" k="10" /> +<hkern u1="P" u2="È" k="10" /> +<hkern u1="P" u2="Æ" k="211" /> +<hkern u1="P" u2="Å" k="100" /> +<hkern u1="P" u2="Ä" k="100" /> +<hkern u1="P" u2="Ã" k="100" /> +<hkern u1="P" u2="Â" k="100" /> +<hkern u1="P" u2="Á" k="100" /> +<hkern u1="P" u2="À" k="100" /> +<hkern u1="P" u2="­" k="16" /> +<hkern u1="P" u2="}" k="29" /> +<hkern u1="P" u2="x" k="23" /> +<hkern u1="P" u2="s" k="8" /> +<hkern u1="P" u2="q" k="31" /> +<hkern u1="P" u2="o" k="27" /> +<hkern u1="P" u2="g" k="31" /> +<hkern u1="P" u2="e" k="27" /> +<hkern u1="P" u2="d" k="31" /> +<hkern u1="P" u2="c" k="27" /> +<hkern u1="P" u2="a" k="43" /> +<hkern u1="P" u2="]" k="47" /> +<hkern u1="P" u2="Y" k="14" /> +<hkern u1="P" u2="X" k="33" /> +<hkern u1="P" u2="W" k="10" /> +<hkern u1="P" u2="R" k="10" /> +<hkern u1="P" u2="P" k="10" /> +<hkern u1="P" u2="N" k="10" /> +<hkern u1="P" u2="M" k="12" /> +<hkern u1="P" u2="L" k="10" /> +<hkern u1="P" u2="K" k="10" /> +<hkern u1="P" u2="J" k="86" /> +<hkern u1="P" u2="I" k="10" /> +<hkern u1="P" u2="H" k="10" /> +<hkern u1="P" u2="F" k="10" /> +<hkern u1="P" u2="E" k="10" /> +<hkern u1="P" u2="D" k="10" /> +<hkern u1="P" u2="B" k="10" /> +<hkern u1="P" u2="A" k="100" /> +<hkern u1="P" u2="7" k="-43" /> +<hkern u1="P" u2="1" k="-51" /> +<hkern u1="P" u2="/" k="182" /> +<hkern u1="P" u2="." k="180" /> +<hkern u1="P" u2="-" k="16" /> +<hkern u1="P" u2="," k="180" /> +<hkern u1="P" u2="*" k="-66" /> +<hkern u1="P" u2=")" k="20" /> +<hkern u1="Q" u2="„" k="12" /> +<hkern u1="Q" u2="‚" k="12" /> +<hkern u1="Q" u2="æ" k="8" /> +<hkern u1="Q" u2="Æ" k="53" /> +<hkern u1="Q" u2="}" k="-133" /> +<hkern u1="Q" u2="|" k="-23" /> +<hkern u1="Q" u2="x" k="29" /> +<hkern u1="Q" u2="k" k="10" /> +<hkern u1="Q" u2="j" k="-309" /> +<hkern u1="Q" u2="b" k="10" /> +<hkern u1="Q" u2="]" k="-145" /> +<hkern u1="Q" u2="\" k="49" /> +<hkern u1="Q" u2="X" k="66" /> +<hkern u1="Q" u2="W" k="45" /> +<hkern u1="Q" u2="V" k="49" /> +<hkern u1="Q" u2="M" k="25" /> +<hkern u1="Q" u2="J" k="12" /> +<hkern u1="Q" u2="4" k="-10" /> +<hkern u1="Q" u2="/" k="-139" /> +<hkern u1="Q" u2="," k="12" /> +<hkern u1="Q" u2=")" k="-102" /> +<hkern u1="R" u2="fl" k="8" /> +<hkern u1="R" u2="fi" k="8" /> +<hkern u1="R" u2="™" k="49" /> +<hkern u1="R" u2="‹" k="45" /> +<hkern u1="R" u2="—" k="27" /> +<hkern u1="R" u2="–" k="27" /> +<hkern u1="R" u2="Ÿ" k="43" /> +<hkern u1="R" u2="œ" k="20" /> +<hkern u1="R" u2="ÿ" k="8" /> +<hkern u1="R" u2="ý" k="8" /> +<hkern u1="R" u2="ø" k="20" /> +<hkern u1="R" u2="ö" k="20" /> +<hkern u1="R" u2="õ" k="20" /> +<hkern u1="R" u2="ô" k="20" /> +<hkern u1="R" u2="ó" k="20" /> +<hkern u1="R" u2="ò" k="20" /> +<hkern u1="R" u2="ñ" k="12" /> +<hkern u1="R" u2="ð" k="20" /> +<hkern u1="R" u2="ë" k="20" /> +<hkern u1="R" u2="ê" k="20" /> +<hkern u1="R" u2="é" k="20" /> +<hkern u1="R" u2="è" k="20" /> +<hkern u1="R" u2="ç" k="20" /> +<hkern u1="R" u2="å" k="8" /> +<hkern u1="R" u2="ä" k="8" /> +<hkern u1="R" u2="ã" k="8" /> +<hkern u1="R" u2="â" k="8" /> +<hkern u1="R" u2="á" k="8" /> +<hkern u1="R" u2="à" k="8" /> +<hkern u1="R" u2="ß" k="8" /> +<hkern u1="R" u2="Ý" k="43" /> +<hkern u1="R" u2="Ü" k="18" /> +<hkern u1="R" u2="Û" k="18" /> +<hkern u1="R" u2="Ú" k="18" /> +<hkern u1="R" u2="Ù" k="18" /> +<hkern u1="R" u2="Æ" k="-49" /> +<hkern u1="R" u2="­" k="27" /> +<hkern u1="R" u2="«" k="45" /> +<hkern u1="R" u2="}" k="35" /> +<hkern u1="R" u2="y" k="8" /> +<hkern u1="R" u2="x" k="10" /> +<hkern u1="R" u2="t" k="8" /> +<hkern u1="R" u2="r" k="12" /> +<hkern u1="R" u2="q" k="10" /> +<hkern u1="R" u2="p" k="18" /> +<hkern u1="R" u2="o" k="20" /> +<hkern u1="R" u2="n" k="12" /> +<hkern u1="R" u2="m" k="12" /> +<hkern u1="R" u2="j" k="20" /> +<hkern u1="R" u2="g" k="10" /> +<hkern u1="R" u2="f" k="8" /> +<hkern u1="R" u2="e" k="20" /> +<hkern u1="R" u2="d" k="10" /> +<hkern u1="R" u2="c" k="20" /> +<hkern u1="R" u2="a" k="8" /> +<hkern u1="R" u2="]" k="80" /> +<hkern u1="R" u2="\" k="43" /> +<hkern u1="R" u2="Y" k="43" /> +<hkern u1="R" u2="X" k="20" /> +<hkern u1="R" u2="W" k="41" /> +<hkern u1="R" u2="V" k="43" /> +<hkern u1="R" u2="U" k="18" /> +<hkern u1="R" u2="J" k="-14" /> +<hkern u1="R" u2="2" k="-10" /> +<hkern u1="R" u2="/" k="27" /> +<hkern u1="R" u2="-" k="27" /> +<hkern u1="R" u2=")" k="23" /> +<hkern u1="S" u2="Æ" k="12" /> +<hkern u1="S" u2="x" k="20" /> +<hkern u1="S" u2="w" k="14" /> +<hkern u1="S" u2="v" k="14" /> +<hkern u1="S" u2="t" k="14" /> +<hkern u1="S" u2="r" k="25" /> +<hkern u1="S" u2="p" k="33" /> +<hkern u1="S" u2="m" k="25" /> +<hkern u1="S" u2="j" k="35" /> +<hkern u1="S" u2="]" k="23" /> +<hkern u1="S" u2="W" k="18" /> +<hkern u1="S" u2="V" k="18" /> +<hkern u1="S" u2="4" k="-23" /> +<hkern u1="S" u2="/" k="88" /> +<hkern u1="S" u2=")" k="23" /> +<hkern u1="T" u2="™" k="-29" /> +<hkern u1="T" u2="‹" k="90" /> +<hkern u1="T" u2="…" k="104" /> +<hkern u1="T" u2="„" k="104" /> +<hkern u1="T" u2="”" k="-12" /> +<hkern u1="T" u2="‚" k="104" /> +<hkern u1="T" u2="—" k="129" /> +<hkern u1="T" u2="–" k="129" /> +<hkern u1="T" u2="œ" k="88" /> +<hkern u1="T" u2="þ" k="-57" /> +<hkern u1="T" u2="ø" k="88" /> +<hkern u1="T" u2="ö" k="88" /> +<hkern u1="T" u2="õ" k="88" /> +<hkern u1="T" u2="ô" k="88" /> +<hkern u1="T" u2="ó" k="88" /> +<hkern u1="T" u2="ò" k="88" /> +<hkern u1="T" u2="ñ" k="8" /> +<hkern u1="T" u2="ð" k="29" /> +<hkern u1="T" u2="ï" k="-31" /> +<hkern u1="T" u2="î" k="-41" /> +<hkern u1="T" u2="ë" k="88" /> +<hkern u1="T" u2="ê" k="88" /> +<hkern u1="T" u2="é" k="88" /> +<hkern u1="T" u2="è" k="88" /> +<hkern u1="T" u2="ç" k="88" /> +<hkern u1="T" u2="æ" k="55" /> +<hkern u1="T" u2="å" k="123" /> +<hkern u1="T" u2="ä" k="123" /> +<hkern u1="T" u2="ã" k="123" /> +<hkern u1="T" u2="â" k="123" /> +<hkern u1="T" u2="á" k="123" /> +<hkern u1="T" u2="à" k="123" /> +<hkern u1="T" u2="Æ" k="102" /> +<hkern u1="T" u2="Å" k="102" /> +<hkern u1="T" u2="Ä" k="102" /> +<hkern u1="T" u2="Ã" k="102" /> +<hkern u1="T" u2="Â" k="102" /> +<hkern u1="T" u2="Á" k="102" /> +<hkern u1="T" u2="À" k="102" /> +<hkern u1="T" u2="­" k="129" /> +<hkern u1="T" u2="«" k="90" /> +<hkern u1="T" u2="}" k="-47" /> +<hkern u1="T" u2="z" k="20" /> +<hkern u1="T" u2="x" k="31" /> +<hkern u1="T" u2="s" k="43" /> +<hkern u1="T" u2="r" k="8" /> +<hkern u1="T" u2="q" k="92" /> +<hkern u1="T" u2="p" k="12" /> +<hkern u1="T" u2="o" k="88" /> +<hkern u1="T" u2="n" k="8" /> +<hkern u1="T" u2="m" k="8" /> +<hkern u1="T" u2="l" k="-18" /> +<hkern u1="T" u2="k" k="-25" /> +<hkern u1="T" u2="j" k="10" /> +<hkern u1="T" u2="h" k="-37" /> +<hkern u1="T" u2="g" k="92" /> +<hkern u1="T" u2="e" k="88" /> +<hkern u1="T" u2="d" k="92" /> +<hkern u1="T" u2="c" k="88" /> +<hkern u1="T" u2="b" k="-57" /> +<hkern u1="T" u2="a" k="123" /> +<hkern u1="T" u2="]" k="-55" /> +<hkern u1="T" u2="\" k="-27" /> +<hkern u1="T" u2="Z" k="25" /> +<hkern u1="T" u2="J" k="45" /> +<hkern u1="T" u2="A" k="102" /> +<hkern u1="T" u2="@" k="25" /> +<hkern u1="T" u2="?" k="-14" /> +<hkern u1="T" u2="7" k="-51" /> +<hkern u1="T" u2="4" k="57" /> +<hkern u1="T" u2="1" k="-66" /> +<hkern u1="T" u2="/" k="156" /> +<hkern u1="T" u2="." k="104" /> +<hkern u1="T" u2="-" k="129" /> +<hkern u1="T" u2="," k="104" /> +<hkern u1="T" u2="*" k="-74" /> +<hkern u1="U" u2="™" k="-14" /> +<hkern u1="U" u2="þ" k="-51" /> +<hkern u1="U" u2="ð" k="31" /> +<hkern u1="U" u2="ï" k="-25" /> +<hkern u1="U" u2="î" k="2" /> +<hkern u1="U" u2="æ" k="53" /> +<hkern u1="U" u2="Æ" k="82" /> +<hkern u1="U" u2="}" k="-45" /> +<hkern u1="U" u2="x" k="37" /> +<hkern u1="U" u2="w" k="18" /> +<hkern u1="U" u2="v" k="14" /> +<hkern u1="U" u2="t" k="33" /> +<hkern u1="U" u2="r" k="35" /> +<hkern u1="U" u2="p" k="37" /> +<hkern u1="U" u2="m" k="35" /> +<hkern u1="U" u2="k" k="-20" /> +<hkern u1="U" u2="j" k="27" /> +<hkern u1="U" u2="b" k="-51" /> +<hkern u1="U" u2="]" k="-53" /> +<hkern u1="U" u2="\" k="-23" /> +<hkern u1="U" u2="J" k="23" /> +<hkern u1="U" u2=";" k="23" /> +<hkern u1="U" u2=":" k="20" /> +<hkern u1="U" u2="7" k="-29" /> +<hkern u1="U" u2="/" k="150" /> +<hkern u1="V" u2="fl" k="53" /> +<hkern u1="V" u2="fi" k="53" /> +<hkern u1="V" u2="™" k="-61" /> +<hkern u1="V" u2="›" k="55" /> +<hkern u1="V" u2="‹" k="106" /> +<hkern u1="V" u2="…" k="172" /> +<hkern u1="V" u2="„" k="172" /> +<hkern u1="V" u2="”" k="-49" /> +<hkern u1="V" u2="‚" k="172" /> +<hkern u1="V" u2="’" k="-49" /> +<hkern u1="V" u2="—" k="113" /> +<hkern u1="V" u2="–" k="113" /> +<hkern u1="V" u2="Ÿ" k="-25" /> +<hkern u1="V" u2="œ" k="152" /> +<hkern u1="V" u2="Œ" k="47" /> +<hkern u1="V" u2="ÿ" k="86" /> +<hkern u1="V" u2="þ" k="-98" /> +<hkern u1="V" u2="ý" k="86" /> +<hkern u1="V" u2="ü" k="88" /> +<hkern u1="V" u2="û" k="88" /> +<hkern u1="V" u2="ú" k="88" /> +<hkern u1="V" u2="ù" k="88" /> +<hkern u1="V" u2="ø" k="152" /> +<hkern u1="V" u2="ö" k="115" /> +<hkern u1="V" u2="õ" k="106" /> +<hkern u1="V" u2="ô" k="139" /> +<hkern u1="V" u2="ó" k="152" /> +<hkern u1="V" u2="ò" k="152" /> +<hkern u1="V" u2="ñ" k="100" /> +<hkern u1="V" u2="ð" k="29" /> +<hkern u1="V" u2="ï" k="-74" /> +<hkern u1="V" u2="î" k="-43" /> +<hkern u1="V" u2="í" k="31" /> +<hkern u1="V" u2="ì" k="-10" /> +<hkern u1="V" u2="ë" k="139" /> +<hkern u1="V" u2="ê" k="125" /> +<hkern u1="V" u2="é" k="152" /> +<hkern u1="V" u2="è" k="152" /> +<hkern u1="V" u2="ç" k="152" /> +<hkern u1="V" u2="æ" k="164" /> +<hkern u1="V" u2="å" k="154" /> +<hkern u1="V" u2="ä" k="154" /> +<hkern u1="V" u2="ã" k="154" /> +<hkern u1="V" u2="â" k="154" /> +<hkern u1="V" u2="á" k="154" /> +<hkern u1="V" u2="à" k="154" /> +<hkern u1="V" u2="ß" k="53" /> +<hkern u1="V" u2="Ý" k="-25" /> +<hkern u1="V" u2="Ø" k="47" /> +<hkern u1="V" u2="Ö" k="47" /> +<hkern u1="V" u2="Õ" k="47" /> +<hkern u1="V" u2="Ô" k="47" /> +<hkern u1="V" u2="Ó" k="47" /> +<hkern u1="V" u2="Ò" k="47" /> +<hkern u1="V" u2="Ç" k="47" /> +<hkern u1="V" u2="Æ" k="219" /> +<hkern u1="V" u2="Å" k="154" /> +<hkern u1="V" u2="Ä" k="154" /> +<hkern u1="V" u2="Ã" k="154" /> +<hkern u1="V" u2="Â" k="154" /> +<hkern u1="V" u2="Á" k="154" /> +<hkern u1="V" u2="À" k="154" /> +<hkern u1="V" u2="»" k="55" /> +<hkern u1="V" u2="®" k="43" /> +<hkern u1="V" u2="­" k="113" /> +<hkern u1="V" u2="«" k="106" /> +<hkern u1="V" u2="}" k="-92" /> +<hkern u1="V" u2="z" k="129" /> +<hkern u1="V" u2="y" k="86" /> +<hkern u1="V" u2="x" k="129" /> +<hkern u1="V" u2="w" k="88" /> +<hkern u1="V" u2="v" k="84" /> +<hkern u1="V" u2="u" k="88" /> +<hkern u1="V" u2="t" k="59" /> +<hkern u1="V" u2="s" k="160" /> +<hkern u1="V" u2="r" k="100" /> +<hkern u1="V" u2="q" k="150" /> +<hkern u1="V" u2="p" k="100" /> +<hkern u1="V" u2="o" k="152" /> +<hkern u1="V" u2="n" k="100" /> +<hkern u1="V" u2="m" k="100" /> +<hkern u1="V" u2="l" k="-59" /> +<hkern u1="V" u2="k" k="-66" /> +<hkern u1="V" u2="j" k="39" /> +<hkern u1="V" u2="i" k="31" /> +<hkern u1="V" u2="h" k="-78" /> +<hkern u1="V" u2="g" k="150" /> +<hkern u1="V" u2="f" k="53" /> +<hkern u1="V" u2="e" k="152" /> +<hkern u1="V" u2="d" k="150" /> +<hkern u1="V" u2="c" k="152" /> +<hkern u1="V" u2="b" k="-98" /> +<hkern u1="V" u2="a" k="154" /> +<hkern u1="V" u2="]" k="-98" /> +<hkern u1="V" u2="\" k="-61" /> +<hkern u1="V" u2="Z" k="25" /> +<hkern u1="V" u2="Y" k="-25" /> +<hkern u1="V" u2="X" k="-25" /> +<hkern u1="V" u2="W" k="-25" /> +<hkern u1="V" u2="V" k="-25" /> +<hkern u1="V" u2="T" k="-10" /> +<hkern u1="V" u2="S" k="12" /> +<hkern u1="V" u2="Q" k="47" /> +<hkern u1="V" u2="O" k="47" /> +<hkern u1="V" u2="J" k="55" /> +<hkern u1="V" u2="G" k="47" /> +<hkern u1="V" u2="C" k="47" /> +<hkern u1="V" u2="A" k="154" /> +<hkern u1="V" u2="@" k="82" /> +<hkern u1="V" u2=";" k="68" /> +<hkern u1="V" u2=":" k="63" /> +<hkern u1="V" u2="8" k="23" /> +<hkern u1="V" u2="7" k="-76" /> +<hkern u1="V" u2="6" k="37" /> +<hkern u1="V" u2="4" k="86" /> +<hkern u1="V" u2="0" k="37" /> +<hkern u1="V" u2="/" k="221" /> +<hkern u1="V" u2="." k="172" /> +<hkern u1="V" u2="-" k="113" /> +<hkern u1="V" u2="," k="172" /> +<hkern u1="V" u2=")" k="-47" /> +<hkern u1="V" u2="&" k="25" /> +<hkern u1="W" u2="fl" k="53" /> +<hkern u1="W" u2="fi" k="53" /> +<hkern u1="W" u2="™" k="-61" /> +<hkern u1="W" u2="›" k="53" /> +<hkern u1="W" u2="‹" k="94" /> +<hkern u1="W" u2="…" k="156" /> +<hkern u1="W" u2="„" k="156" /> +<hkern u1="W" u2="”" k="-49" /> +<hkern u1="W" u2="‚" k="156" /> +<hkern u1="W" u2="’" k="-49" /> +<hkern u1="W" u2="—" k="102" /> +<hkern u1="W" u2="–" k="102" /> +<hkern u1="W" u2="Ÿ" k="-25" /> +<hkern u1="W" u2="œ" k="133" /> +<hkern u1="W" u2="Œ" k="43" /> +<hkern u1="W" u2="ÿ" k="80" /> +<hkern u1="W" u2="þ" k="-98" /> +<hkern u1="W" u2="ý" k="80" /> +<hkern u1="W" u2="ü" k="86" /> +<hkern u1="W" u2="û" k="86" /> +<hkern u1="W" u2="ú" k="86" /> +<hkern u1="W" u2="ù" k="86" /> +<hkern u1="W" u2="ø" k="133" /> +<hkern u1="W" u2="ö" k="115" /> +<hkern u1="W" u2="õ" k="106" /> +<hkern u1="W" u2="ô" k="133" /> +<hkern u1="W" u2="ó" k="133" /> +<hkern u1="W" u2="ò" k="133" /> +<hkern u1="W" u2="ñ" k="94" /> +<hkern u1="W" u2="ð" k="31" /> +<hkern u1="W" u2="ï" k="-74" /> +<hkern u1="W" u2="î" k="-45" /> +<hkern u1="W" u2="í" k="31" /> +<hkern u1="W" u2="ì" k="-10" /> +<hkern u1="W" u2="ë" k="133" /> +<hkern u1="W" u2="ê" k="133" /> +<hkern u1="W" u2="é" k="133" /> +<hkern u1="W" u2="è" k="133" /> +<hkern u1="W" u2="ç" k="133" /> +<hkern u1="W" u2="æ" k="143" /> +<hkern u1="W" u2="å" k="133" /> +<hkern u1="W" u2="ä" k="133" /> +<hkern u1="W" u2="ã" k="133" /> +<hkern u1="W" u2="â" k="133" /> +<hkern u1="W" u2="á" k="133" /> +<hkern u1="W" u2="à" k="133" /> +<hkern u1="W" u2="ß" k="53" /> +<hkern u1="W" u2="Ý" k="-25" /> +<hkern u1="W" u2="Ø" k="43" /> +<hkern u1="W" u2="Ö" k="43" /> +<hkern u1="W" u2="Õ" k="43" /> +<hkern u1="W" u2="Ô" k="43" /> +<hkern u1="W" u2="Ó" k="43" /> +<hkern u1="W" u2="Ò" k="43" /> +<hkern u1="W" u2="Ç" k="43" /> +<hkern u1="W" u2="Æ" k="207" /> +<hkern u1="W" u2="Å" k="139" /> +<hkern u1="W" u2="Ä" k="139" /> +<hkern u1="W" u2="Ã" k="139" /> +<hkern u1="W" u2="Â" k="139" /> +<hkern u1="W" u2="Á" k="139" /> +<hkern u1="W" u2="À" k="139" /> +<hkern u1="W" u2="»" k="53" /> +<hkern u1="W" u2="®" k="41" /> +<hkern u1="W" u2="­" k="102" /> +<hkern u1="W" u2="«" k="94" /> +<hkern u1="W" u2="}" k="-92" /> +<hkern u1="W" u2="z" k="113" /> +<hkern u1="W" u2="y" k="80" /> +<hkern u1="W" u2="x" k="111" /> +<hkern u1="W" u2="w" k="86" /> +<hkern u1="W" u2="v" k="82" /> +<hkern u1="W" u2="u" k="86" /> +<hkern u1="W" u2="t" k="66" /> +<hkern u1="W" u2="s" k="139" /> +<hkern u1="W" u2="r" k="94" /> +<hkern u1="W" u2="q" k="129" /> +<hkern u1="W" u2="p" k="100" /> +<hkern u1="W" u2="o" k="133" /> +<hkern u1="W" u2="n" k="94" /> +<hkern u1="W" u2="m" k="94" /> +<hkern u1="W" u2="l" k="-59" /> +<hkern u1="W" u2="k" k="-68" /> +<hkern u1="W" u2="j" k="39" /> +<hkern u1="W" u2="i" k="31" /> +<hkern u1="W" u2="h" k="-78" /> +<hkern u1="W" u2="g" k="129" /> +<hkern u1="W" u2="f" k="53" /> +<hkern u1="W" u2="e" k="133" /> +<hkern u1="W" u2="d" k="129" /> +<hkern u1="W" u2="c" k="133" /> +<hkern u1="W" u2="b" k="-98" /> +<hkern u1="W" u2="a" k="133" /> +<hkern u1="W" u2="]" k="-98" /> +<hkern u1="W" u2="\" k="-61" /> +<hkern u1="W" u2="Y" k="-25" /> +<hkern u1="W" u2="X" k="-25" /> +<hkern u1="W" u2="W" k="-25" /> +<hkern u1="W" u2="V" k="-25" /> +<hkern u1="W" u2="T" k="-10" /> +<hkern u1="W" u2="S" k="14" /> +<hkern u1="W" u2="Q" k="43" /> +<hkern u1="W" u2="O" k="43" /> +<hkern u1="W" u2="J" k="53" /> +<hkern u1="W" u2="G" k="43" /> +<hkern u1="W" u2="C" k="43" /> +<hkern u1="W" u2="A" k="139" /> +<hkern u1="W" u2="@" k="78" /> +<hkern u1="W" u2=";" k="66" /> +<hkern u1="W" u2=":" k="61" /> +<hkern u1="W" u2="8" k="25" /> +<hkern u1="W" u2="7" k="-76" /> +<hkern u1="W" u2="6" k="35" /> +<hkern u1="W" u2="4" k="78" /> +<hkern u1="W" u2="0" k="35" /> +<hkern u1="W" u2="/" k="209" /> +<hkern u1="W" u2="." k="156" /> +<hkern u1="W" u2="-" k="102" /> +<hkern u1="W" u2="," k="156" /> +<hkern u1="W" u2="*" k="16" /> +<hkern u1="W" u2=")" k="-47" /> +<hkern u1="W" u2="&" k="25" /> +<hkern u1="X" u2="fl" k="33" /> +<hkern u1="X" u2="fi" k="33" /> +<hkern u1="X" u2="›" k="-16" /> +<hkern u1="X" u2="‹" k="51" /> +<hkern u1="X" u2="…" k="-25" /> +<hkern u1="X" u2="„" k="-25" /> +<hkern u1="X" u2="“" k="25" /> +<hkern u1="X" u2="‚" k="-25" /> +<hkern u1="X" u2="‘" k="25" /> +<hkern u1="X" u2="—" k="115" /> +<hkern u1="X" u2="–" k="115" /> +<hkern u1="X" u2="Ÿ" k="12" /> +<hkern u1="X" u2="œ" k="10" /> +<hkern u1="X" u2="Œ" k="74" /> +<hkern u1="X" u2="ÿ" k="121" /> +<hkern u1="X" u2="ý" k="121" /> +<hkern u1="X" u2="ü" k="72" /> +<hkern u1="X" u2="û" k="72" /> +<hkern u1="X" u2="ú" k="72" /> +<hkern u1="X" u2="ù" k="72" /> +<hkern u1="X" u2="ø" k="10" /> +<hkern u1="X" u2="ö" k="10" /> +<hkern u1="X" u2="õ" k="10" /> +<hkern u1="X" u2="ô" k="10" /> +<hkern u1="X" u2="ó" k="10" /> +<hkern u1="X" u2="ò" k="10" /> +<hkern u1="X" u2="ñ" k="59" /> +<hkern u1="X" u2="ð" k="39" /> +<hkern u1="X" u2="ï" k="33" /> +<hkern u1="X" u2="î" k="68" /> +<hkern u1="X" u2="í" k="68" /> +<hkern u1="X" u2="ì" k="68" /> +<hkern u1="X" u2="ë" k="10" /> +<hkern u1="X" u2="ê" k="10" /> +<hkern u1="X" u2="é" k="10" /> +<hkern u1="X" u2="è" k="10" /> +<hkern u1="X" u2="ç" k="10" /> +<hkern u1="X" u2="æ" k="8" /> +<hkern u1="X" u2="å" k="20" /> +<hkern u1="X" u2="ä" k="20" /> +<hkern u1="X" u2="ã" k="20" /> +<hkern u1="X" u2="â" k="20" /> +<hkern u1="X" u2="á" k="20" /> +<hkern u1="X" u2="à" k="20" /> +<hkern u1="X" u2="ß" k="33" /> +<hkern u1="X" u2="Ý" k="12" /> +<hkern u1="X" u2="Ø" k="74" /> +<hkern u1="X" u2="Ö" k="74" /> +<hkern u1="X" u2="Õ" k="74" /> +<hkern u1="X" u2="Ô" k="74" /> +<hkern u1="X" u2="Ó" k="74" /> +<hkern u1="X" u2="Ò" k="74" /> +<hkern u1="X" u2="Ç" k="74" /> +<hkern u1="X" u2="Æ" k="-49" /> +<hkern u1="X" u2="»" k="-16" /> +<hkern u1="X" u2="­" k="115" /> +<hkern u1="X" u2="«" k="51" /> +<hkern u1="X" u2="y" k="121" /> +<hkern u1="X" u2="x" k="12" /> +<hkern u1="X" u2="w" k="59" /> +<hkern u1="X" u2="v" k="70" /> +<hkern u1="X" u2="u" k="72" /> +<hkern u1="X" u2="t" k="47" /> +<hkern u1="X" u2="s" k="10" /> +<hkern u1="X" u2="r" k="59" /> +<hkern u1="X" u2="q" k="25" /> +<hkern u1="X" u2="p" k="70" /> +<hkern u1="X" u2="o" k="10" /> +<hkern u1="X" u2="n" k="59" /> +<hkern u1="X" u2="m" k="59" /> +<hkern u1="X" u2="j" k="63" /> +<hkern u1="X" u2="i" k="68" /> +<hkern u1="X" u2="g" k="25" /> +<hkern u1="X" u2="f" k="33" /> +<hkern u1="X" u2="e" k="10" /> +<hkern u1="X" u2="d" k="25" /> +<hkern u1="X" u2="c" k="10" /> +<hkern u1="X" u2="a" k="20" /> +<hkern u1="X" u2="Y" k="12" /> +<hkern u1="X" u2="W" k="49" /> +<hkern u1="X" u2="V" k="76" /> +<hkern u1="X" u2="T" k="49" /> +<hkern u1="X" u2="Q" k="74" /> +<hkern u1="X" u2="O" k="74" /> +<hkern u1="X" u2="J" k="-33" /> +<hkern u1="X" u2="G" k="74" /> +<hkern u1="X" u2="C" k="74" /> +<hkern u1="X" u2="2" k="-25" /> +<hkern u1="X" u2="." k="-25" /> +<hkern u1="X" u2="-" k="115" /> +<hkern u1="X" u2="," k="-25" /> +<hkern u1="X" u2="*" k="37" /> +<hkern u1="Y" u2="™" k="-53" /> +<hkern u1="Y" u2="þ" k="-90" /> +<hkern u1="Y" u2="ö" k="123" /> +<hkern u1="Y" u2="õ" k="115" /> +<hkern u1="Y" u2="ô" k="147" /> +<hkern u1="Y" u2="ð" k="35" /> +<hkern u1="Y" u2="ï" k="-66" /> +<hkern u1="Y" u2="î" k="-37" /> +<hkern u1="Y" u2="ì" k="-2" /> +<hkern u1="Y" u2="ë" k="147" /> +<hkern u1="Y" u2="ê" k="133" /> +<hkern u1="Y" u2="æ" k="162" /> +<hkern u1="Y" u2="Æ" k="127" /> +<hkern u1="Y" u2="®" k="47" /> +<hkern u1="Y" u2="}" k="-84" /> +<hkern u1="Y" u2="x" k="137" /> +<hkern u1="Y" u2="w" k="133" /> +<hkern u1="Y" u2="v" k="129" /> +<hkern u1="Y" u2="t" k="86" /> +<hkern u1="Y" u2="r" k="139" /> +<hkern u1="Y" u2="p" k="141" /> +<hkern u1="Y" u2="m" k="139" /> +<hkern u1="Y" u2="k" k="-57" /> +<hkern u1="Y" u2="j" k="49" /> +<hkern u1="Y" u2="b" k="-90" /> +<hkern u1="Y" u2="]" k="-90" /> +<hkern u1="Y" u2="\" k="-53" /> +<hkern u1="Y" u2="X" k="-25" /> +<hkern u1="Y" u2="W" k="-25" /> +<hkern u1="Y" u2="V" k="-49" /> +<hkern u1="Y" u2="T" k="-25" /> +<hkern u1="Y" u2="J" k="47" /> +<hkern u1="Y" u2="@" k="84" /> +<hkern u1="Y" u2=";" k="66" /> +<hkern u1="Y" u2=":" k="61" /> +<hkern u1="Y" u2="8" k="23" /> +<hkern u1="Y" u2="7" k="-68" /> +<hkern u1="Y" u2="6" k="39" /> +<hkern u1="Y" u2="4" k="96" /> +<hkern u1="Y" u2="0" k="39" /> +<hkern u1="Y" u2="/" k="166" /> +<hkern u1="Y" u2=")" k="-39" /> +<hkern u1="Y" u2="&" k="25" /> +<hkern u1="Z" u2="ð" k="10" /> +<hkern u1="Z" u2="ï" k="20" /> +<hkern u1="Z" u2="î" k="23" /> +<hkern u1="Z" u2="w" k="51" /> +<hkern u1="Z" u2="v" k="53" /> +<hkern u1="Z" u2="t" k="29" /> +<hkern u1="Z" u2="r" k="51" /> +<hkern u1="Z" u2="p" k="68" /> +<hkern u1="Z" u2="m" k="51" /> +<hkern u1="Z" u2="j" k="51" /> +<hkern u1="Z" u2="W" k="25" /> +<hkern u1="Z" u2="V" k="49" /> +<hkern u1="Z" u2="T" k="35" /> +<hkern u1="Z" u2="/" k="53" /> +<hkern u1="[" u2="fl" k="-260" /> +<hkern u1="[" u2="fi" k="-260" /> +<hkern u1="[" u2="Ÿ" k="-74" /> +<hkern u1="[" u2="œ" k="129" /> +<hkern u1="[" u2="Œ" k="98" /> +<hkern u1="[" u2="þ" k="-84" /> +<hkern u1="[" u2="ü" k="111" /> +<hkern u1="[" u2="û" k="111" /> +<hkern u1="[" u2="ú" k="111" /> +<hkern u1="[" u2="ù" k="111" /> +<hkern u1="[" u2="ø" k="129" /> +<hkern u1="[" u2="ö" k="129" /> +<hkern u1="[" u2="õ" k="129" /> +<hkern u1="[" u2="ô" k="129" /> +<hkern u1="[" u2="ó" k="129" /> +<hkern u1="[" u2="ò" k="129" /> +<hkern u1="[" u2="ñ" k="121" /> +<hkern u1="[" u2="ï" k="-53" /> +<hkern u1="[" u2="î" k="31" /> +<hkern u1="[" u2="í" k="31" /> +<hkern u1="[" u2="ì" k="-10" /> +<hkern u1="[" u2="ë" k="129" /> +<hkern u1="[" u2="ê" k="129" /> +<hkern u1="[" u2="é" k="129" /> +<hkern u1="[" u2="è" k="129" /> +<hkern u1="[" u2="ç" k="129" /> +<hkern u1="[" u2="æ" k="127" /> +<hkern u1="[" u2="å" k="129" /> +<hkern u1="[" u2="ä" k="129" /> +<hkern u1="[" u2="ã" k="129" /> +<hkern u1="[" u2="â" k="129" /> +<hkern u1="[" u2="á" k="129" /> +<hkern u1="[" u2="à" k="129" /> +<hkern u1="[" u2="ß" k="-260" /> +<hkern u1="[" u2="Ý" k="-74" /> +<hkern u1="[" u2="Ü" k="-33" /> +<hkern u1="[" u2="Û" k="-33" /> +<hkern u1="[" u2="Ú" k="-33" /> +<hkern u1="[" u2="Ù" k="-33" /> +<hkern u1="[" u2="Ø" k="98" /> +<hkern u1="[" u2="Ö" k="98" /> +<hkern u1="[" u2="Õ" k="98" /> +<hkern u1="[" u2="Ô" k="98" /> +<hkern u1="[" u2="Ó" k="98" /> +<hkern u1="[" u2="Ò" k="98" /> +<hkern u1="[" u2="Ç" k="98" /> +<hkern u1="[" u2="Æ" k="106" /> +<hkern u1="[" u2="Å" k="111" /> +<hkern u1="[" u2="Ä" k="111" /> +<hkern u1="[" u2="Ã" k="111" /> +<hkern u1="[" u2="Â" k="111" /> +<hkern u1="[" u2="Á" k="111" /> +<hkern u1="[" u2="À" k="111" /> +<hkern u1="[" u2="{" k="47" /> +<hkern u1="[" u2="z" k="125" /> +<hkern u1="[" u2="x" k="111" /> +<hkern u1="[" u2="w" k="109" /> +<hkern u1="[" u2="v" k="106" /> +<hkern u1="[" u2="u" k="111" /> +<hkern u1="[" u2="t" k="106" /> +<hkern u1="[" u2="s" k="127" /> +<hkern u1="[" u2="r" k="121" /> +<hkern u1="[" u2="q" k="123" /> +<hkern u1="[" u2="o" k="129" /> +<hkern u1="[" u2="n" k="121" /> +<hkern u1="[" u2="m" k="121" /> +<hkern u1="[" u2="l" k="-43" /> +<hkern u1="[" u2="k" k="-49" /> +<hkern u1="[" u2="j" k="-246" /> +<hkern u1="[" u2="i" k="31" /> +<hkern u1="[" u2="h" k="-61" /> +<hkern u1="[" u2="g" k="16" /> +<hkern u1="[" u2="f" k="-260" /> +<hkern u1="[" u2="e" k="129" /> +<hkern u1="[" u2="d" k="123" /> +<hkern u1="[" u2="c" k="129" /> +<hkern u1="[" u2="b" k="-82" /> +<hkern u1="[" u2="a" k="129" /> +<hkern u1="[" u2="Y" k="-74" /> +<hkern u1="[" u2="X" k="-53" /> +<hkern u1="[" u2="W" k="-61" /> +<hkern u1="[" u2="V" k="-70" /> +<hkern u1="[" u2="U" k="-33" /> +<hkern u1="[" u2="T" k="-35" /> +<hkern u1="[" u2="S" k="53" /> +<hkern u1="[" u2="Q" k="98" /> +<hkern u1="[" u2="O" k="98" /> +<hkern u1="[" u2="J" k="61" /> +<hkern u1="[" u2="G" k="98" /> +<hkern u1="[" u2="C" k="98" /> +<hkern u1="[" u2="A" k="111" /> +<hkern u1="[" u2="9" k="61" /> +<hkern u1="[" u2="8" k="70" /> +<hkern u1="[" u2="7" k="-45" /> +<hkern u1="[" u2="6" k="86" /> +<hkern u1="[" u2="4" k="106" /> +<hkern u1="[" u2="3" k="49" /> +<hkern u1="[" u2="2" k="45" /> +<hkern u1="[" u2="1" k="78" /> +<hkern u1="[" u2="0" k="88" /> +<hkern u1="[" u2="(" k="72" /> +<hkern u1="\" u2="fl" k="-217" /> +<hkern u1="\" u2="fi" k="-217" /> +<hkern u1="\" u2="”" k="215" /> +<hkern u1="\" u2="’" k="215" /> +<hkern u1="\" u2="Ÿ" k="221" /> +<hkern u1="\" u2="œ" k="141" /> +<hkern u1="\" u2="Œ" k="170" /> +<hkern u1="\" u2="þ" k="-37" /> +<hkern u1="\" u2="ü" k="150" /> +<hkern u1="\" u2="û" k="150" /> +<hkern u1="\" u2="ú" k="150" /> +<hkern u1="\" u2="ù" k="150" /> +<hkern u1="\" u2="ø" k="141" /> +<hkern u1="\" u2="ö" k="141" /> +<hkern u1="\" u2="õ" k="141" /> +<hkern u1="\" u2="ô" k="141" /> +<hkern u1="\" u2="ó" k="141" /> +<hkern u1="\" u2="ò" k="141" /> +<hkern u1="\" u2="ñ" k="139" /> +<hkern u1="\" u2="ð" k="139" /> +<hkern u1="\" u2="ï" k="141" /> +<hkern u1="\" u2="î" k="141" /> +<hkern u1="\" u2="í" k="141" /> +<hkern u1="\" u2="ì" k="141" /> +<hkern u1="\" u2="ë" k="141" /> +<hkern u1="\" u2="ê" k="141" /> +<hkern u1="\" u2="é" k="141" /> +<hkern u1="\" u2="è" k="141" /> +<hkern u1="\" u2="ç" k="141" /> +<hkern u1="\" u2="æ" k="113" /> +<hkern u1="\" u2="å" k="127" /> +<hkern u1="\" u2="ä" k="127" /> +<hkern u1="\" u2="ã" k="127" /> +<hkern u1="\" u2="â" k="127" /> +<hkern u1="\" u2="á" k="127" /> +<hkern u1="\" u2="à" k="127" /> +<hkern u1="\" u2="ß" k="-217" /> +<hkern u1="\" u2="Þ" k="90" /> +<hkern u1="\" u2="Ý" k="221" /> +<hkern u1="\" u2="Ü" k="184" /> +<hkern u1="\" u2="Û" k="184" /> +<hkern u1="\" u2="Ú" k="184" /> +<hkern u1="\" u2="Ù" k="184" /> +<hkern u1="\" u2="Ø" k="170" /> +<hkern u1="\" u2="Ö" k="170" /> +<hkern u1="\" u2="Õ" k="170" /> +<hkern u1="\" u2="Ô" k="170" /> +<hkern u1="\" u2="Ó" k="170" /> +<hkern u1="\" u2="Ò" k="170" /> +<hkern u1="\" u2="Ñ" k="90" /> +<hkern u1="\" u2="Ð" k="90" /> +<hkern u1="\" u2="Ï" k="90" /> +<hkern u1="\" u2="Î" k="90" /> +<hkern u1="\" u2="Í" k="90" /> +<hkern u1="\" u2="Ì" k="90" /> +<hkern u1="\" u2="Ë" k="90" /> +<hkern u1="\" u2="Ê" k="90" /> +<hkern u1="\" u2="É" k="90" /> +<hkern u1="\" u2="È" k="90" /> +<hkern u1="\" u2="Ç" k="170" /> +<hkern u1="\" u2="Æ" k="45" /> +<hkern u1="\" u2="Å" k="57" /> +<hkern u1="\" u2="Ä" k="57" /> +<hkern u1="\" u2="Ã" k="57" /> +<hkern u1="\" u2="Â" k="57" /> +<hkern u1="\" u2="Á" k="57" /> +<hkern u1="\" u2="À" k="57" /> +<hkern u1="\" u2="z" k="96" /> +<hkern u1="\" u2="x" k="88" /> +<hkern u1="\" u2="w" k="150" /> +<hkern u1="\" u2="v" k="150" /> +<hkern u1="\" u2="u" k="150" /> +<hkern u1="\" u2="t" k="150" /> +<hkern u1="\" u2="s" k="119" /> +<hkern u1="\" u2="r" k="139" /> +<hkern u1="\" u2="q" k="129" /> +<hkern u1="\" u2="o" k="141" /> +<hkern u1="\" u2="n" k="139" /> +<hkern u1="\" u2="m" k="139" /> +<hkern u1="\" u2="l" k="121" /> +<hkern u1="\" u2="k" k="104" /> +<hkern u1="\" u2="j" k="-201" /> +<hkern u1="\" u2="i" k="141" /> +<hkern u1="\" u2="h" k="106" /> +<hkern u1="\" u2="g" k="86" /> +<hkern u1="\" u2="f" k="-217" /> +<hkern u1="\" u2="e" k="141" /> +<hkern u1="\" u2="d" k="129" /> +<hkern u1="\" u2="c" k="141" /> +<hkern u1="\" u2="b" k="113" /> +<hkern u1="\" u2="a" k="127" /> +<hkern u1="\" u2="Z" k="84" /> +<hkern u1="\" u2="Y" k="221" /> +<hkern u1="\" u2="X" k="76" /> +<hkern u1="\" u2="W" k="242" /> +<hkern u1="\" u2="V" k="262" /> +<hkern u1="\" u2="U" k="184" /> +<hkern u1="\" u2="T" k="190" /> +<hkern u1="\" u2="S" k="92" /> +<hkern u1="\" u2="R" k="90" /> +<hkern u1="\" u2="Q" k="170" /> +<hkern u1="\" u2="P" k="90" /> +<hkern u1="\" u2="O" k="170" /> +<hkern u1="\" u2="N" k="90" /> +<hkern u1="\" u2="M" k="86" /> +<hkern u1="\" u2="L" k="90" /> +<hkern u1="\" u2="K" k="90" /> +<hkern u1="\" u2="J" k="70" /> +<hkern u1="\" u2="I" k="90" /> +<hkern u1="\" u2="H" k="90" /> +<hkern u1="\" u2="G" k="170" /> +<hkern u1="\" u2="F" k="90" /> +<hkern u1="\" u2="E" k="90" /> +<hkern u1="\" u2="D" k="90" /> +<hkern u1="\" u2="C" k="170" /> +<hkern u1="\" u2="B" k="90" /> +<hkern u1="\" u2="A" k="57" /> +<hkern u1="\" u2="9" k="137" /> +<hkern u1="\" u2="8" k="137" /> +<hkern u1="\" u2="7" k="170" /> +<hkern u1="\" u2="6" k="147" /> +<hkern u1="\" u2="5" k="119" /> +<hkern u1="\" u2="4" k="145" /> +<hkern u1="\" u2="3" k="113" /> +<hkern u1="\" u2="2" k="78" /> +<hkern u1="\" u2="1" k="117" /> +<hkern u1="\" u2="0" k="162" /> +<hkern u1="\" u2="'" k="193" /> +<hkern u1="\" u2=""" k="262" /> +<hkern u1="a" u2="™" k="43" /> +<hkern u1="a" u2="}" k="33" /> +<hkern u1="a" u2="]" k="100" /> +<hkern u1="a" u2="\" k="113" /> +<hkern u1="a" u2="W" k="102" /> +<hkern u1="a" u2="V" k="121" /> +<hkern u1="a" u2="T" k="66" /> +<hkern u1="a" u2="J" k="-29" /> +<hkern u1="a" u2="/" k="41" /> +<hkern u1="a" u2="*" k="16" /> +<hkern u1="a" u2=")" k="35" /> +<hkern u1="a" u2="&" k="-25" /> +<hkern u1="b" u2="™" k="47" /> +<hkern u1="b" u2="}" k="61" /> +<hkern u1="b" u2="x" k="14" /> +<hkern u1="b" u2="]" k="123" /> +<hkern u1="b" u2="\" k="113" /> +<hkern u1="b" u2="X" k="86" /> +<hkern u1="b" u2="W" k="127" /> +<hkern u1="b" u2="V" k="154" /> +<hkern u1="b" u2="T" k="72" /> +<hkern u1="b" u2="M" k="45" /> +<hkern u1="b" u2="?" k="39" /> +<hkern u1="b" u2="/" k="113" /> +<hkern u1="b" u2="*" k="23" /> +<hkern u1="b" u2=")" k="63" /> +<hkern u1="c" u2="™" k="37" /> +<hkern u1="c" u2="}" k="49" /> +<hkern u1="c" u2="x" k="14" /> +<hkern u1="c" u2="]" k="117" /> +<hkern u1="c" u2="\" k="104" /> +<hkern u1="c" u2="X" k="80" /> +<hkern u1="c" u2="W" k="123" /> +<hkern u1="c" u2="V" k="141" /> +<hkern u1="c" u2="T" k="43" /> +<hkern u1="c" u2="M" k="49" /> +<hkern u1="c" u2="?" k="25" /> +<hkern u1="c" u2="/" k="82" /> +<hkern u1="c" u2=")" k="51" /> +<hkern u1="d" u2="—" k="18" /> +<hkern u1="d" u2="–" k="18" /> +<hkern u1="d" u2="Ÿ" k="29" /> +<hkern u1="d" u2="Ý" k="29" /> +<hkern u1="d" u2="Ü" k="23" /> +<hkern u1="d" u2="Û" k="23" /> +<hkern u1="d" u2="Ú" k="23" /> +<hkern u1="d" u2="Ù" k="23" /> +<hkern u1="d" u2="­" k="18" /> +<hkern u1="d" u2="Y" k="29" /> +<hkern u1="d" u2="W" k="31" /> +<hkern u1="d" u2="V" k="29" /> +<hkern u1="d" u2="U" k="23" /> +<hkern u1="d" u2="T" k="14" /> +<hkern u1="d" u2="J" k="-27" /> +<hkern u1="d" u2="/" k="41" /> +<hkern u1="d" u2="-" k="18" /> +<hkern u1="d" u2="&" k="-23" /> +<hkern u1="e" u2="™" k="70" /> +<hkern u1="e" u2="}" k="57" /> +<hkern u1="e" u2="x" k="12" /> +<hkern u1="e" u2="]" k="127" /> +<hkern u1="e" u2="\" k="115" /> +<hkern u1="e" u2="X" k="55" /> +<hkern u1="e" u2="W" k="133" /> +<hkern u1="e" u2="V" k="154" /> +<hkern u1="e" u2="T" k="49" /> +<hkern u1="e" u2="M" k="37" /> +<hkern u1="e" u2="?" k="33" /> +<hkern u1="e" u2="/" k="86" /> +<hkern u1="e" u2="*" k="18" /> +<hkern u1="e" u2=")" k="61" /> +<hkern u1="f" u2="™" k="-49" /> +<hkern u1="f" u2="›" k="-16" /> +<hkern u1="f" u2="‹" k="31" /> +<hkern u1="f" u2="…" k="47" /> +<hkern u1="f" u2="„" k="47" /> +<hkern u1="f" u2="”" k="-137" /> +<hkern u1="f" u2="“" k="-61" /> +<hkern u1="f" u2="‚" k="47" /> +<hkern u1="f" u2="’" k="-137" /> +<hkern u1="f" u2="‘" k="-61" /> +<hkern u1="f" u2="—" k="43" /> +<hkern u1="f" u2="–" k="43" /> +<hkern u1="f" u2="Ÿ" k="-176" /> +<hkern u1="f" u2="œ" k="14" /> +<hkern u1="f" u2="ÿ" k="-27" /> +<hkern u1="f" u2="þ" k="-125" /> +<hkern u1="f" u2="ý" k="-27" /> +<hkern u1="f" u2="ø" k="14" /> +<hkern u1="f" u2="ö" k="14" /> +<hkern u1="f" u2="õ" k="14" /> +<hkern u1="f" u2="ô" k="14" /> +<hkern u1="f" u2="ó" k="14" /> +<hkern u1="f" u2="ò" k="14" /> +<hkern u1="f" u2="ð" k="12" /> +<hkern u1="f" u2="ï" k="-141" /> +<hkern u1="f" u2="î" k="-72" /> +<hkern u1="f" u2="ì" k="-78" /> +<hkern u1="f" u2="ë" k="14" /> +<hkern u1="f" u2="ê" k="14" /> +<hkern u1="f" u2="é" k="14" /> +<hkern u1="f" u2="è" k="14" /> +<hkern u1="f" u2="ç" k="14" /> +<hkern u1="f" u2="å" k="25" /> +<hkern u1="f" u2="ä" k="25" /> +<hkern u1="f" u2="ã" k="25" /> +<hkern u1="f" u2="â" k="25" /> +<hkern u1="f" u2="á" k="25" /> +<hkern u1="f" u2="à" k="25" /> +<hkern u1="f" u2="Þ" k="-86" /> +<hkern u1="f" u2="Ý" k="-176" /> +<hkern u1="f" u2="Ü" k="-135" /> +<hkern u1="f" u2="Û" k="-135" /> +<hkern u1="f" u2="Ú" k="-135" /> +<hkern u1="f" u2="Ù" k="-135" /> +<hkern u1="f" u2="Ñ" k="-86" /> +<hkern u1="f" u2="Ð" k="-86" /> +<hkern u1="f" u2="Ï" k="-86" /> +<hkern u1="f" u2="Î" k="-86" /> +<hkern u1="f" u2="Í" k="-86" /> +<hkern u1="f" u2="Ì" k="-86" /> +<hkern u1="f" u2="Ë" k="-86" /> +<hkern u1="f" u2="Ê" k="-86" /> +<hkern u1="f" u2="É" k="-86" /> +<hkern u1="f" u2="È" k="-86" /> +<hkern u1="f" u2="Å" k="78" /> +<hkern u1="f" u2="Ä" k="78" /> +<hkern u1="f" u2="Ã" k="78" /> +<hkern u1="f" u2="Â" k="78" /> +<hkern u1="f" u2="Á" k="78" /> +<hkern u1="f" u2="À" k="78" /> +<hkern u1="f" u2="»" k="-16" /> +<hkern u1="f" u2="­" k="43" /> +<hkern u1="f" u2="«" k="31" /> +<hkern u1="f" u2="}" k="-178" /> +<hkern u1="f" u2="|" k="-66" /> +<hkern u1="f" u2="y" k="-27" /> +<hkern u1="f" u2="t" k="-25" /> +<hkern u1="f" u2="q" k="16" /> +<hkern u1="f" u2="o" k="14" /> +<hkern u1="f" u2="h" k="-125" /> +<hkern u1="f" u2="g" k="16" /> +<hkern u1="f" u2="e" k="14" /> +<hkern u1="f" u2="d" k="16" /> +<hkern u1="f" u2="c" k="14" /> +<hkern u1="f" u2="a" k="25" /> +<hkern u1="f" u2="]" k="-186" /> +<hkern u1="f" u2="\" k="-145" /> +<hkern u1="f" u2="Z" k="-86" /> +<hkern u1="f" u2="Y" k="-176" /> +<hkern u1="f" u2="X" k="-160" /> +<hkern u1="f" u2="W" k="-166" /> +<hkern u1="f" u2="V" k="-174" /> +<hkern u1="f" u2="U" k="-135" /> +<hkern u1="f" u2="T" k="-139" /> +<hkern u1="f" u2="R" k="-86" /> +<hkern u1="f" u2="P" k="-86" /> +<hkern u1="f" u2="N" k="-86" /> +<hkern u1="f" u2="M" k="-82" /> +<hkern u1="f" u2="L" k="-86" /> +<hkern u1="f" u2="K" k="-86" /> +<hkern u1="f" u2="J" k="25" /> +<hkern u1="f" u2="I" k="-86" /> +<hkern u1="f" u2="H" k="-86" /> +<hkern u1="f" u2="F" k="-86" /> +<hkern u1="f" u2="E" k="-86" /> +<hkern u1="f" u2="D" k="-86" /> +<hkern u1="f" u2="B" k="-86" /> +<hkern u1="f" u2="A" k="78" /> +<hkern u1="f" u2="?" k="-55" /> +<hkern u1="f" u2="/" k="68" /> +<hkern u1="f" u2="." k="47" /> +<hkern u1="f" u2="-" k="43" /> +<hkern u1="f" u2="," k="47" /> +<hkern u1="f" u2="*" k="-41" /> +<hkern u1="f" u2=")" k="-141" /> +<hkern u1="f" u2="'" k="-90" /> +<hkern u1="f" u2=""" k="-90" /> +<hkern u1="f" u2="!" k="-59" /> +<hkern u1="g" u2="fl" k="-18" /> +<hkern u1="g" u2="fi" k="-18" /> +<hkern u1="g" u2="™" k="33" /> +<hkern u1="g" u2="Ÿ" k="154" /> +<hkern u1="g" u2="Œ" k="10" /> +<hkern u1="g" u2="ß" k="-18" /> +<hkern u1="g" u2="Þ" k="39" /> +<hkern u1="g" u2="Ý" k="154" /> +<hkern u1="g" u2="Ü" k="45" /> +<hkern u1="g" u2="Û" k="45" /> +<hkern u1="g" u2="Ú" k="45" /> +<hkern u1="g" u2="Ù" k="45" /> +<hkern u1="g" u2="Ø" k="10" /> +<hkern u1="g" u2="Ö" k="10" /> +<hkern u1="g" u2="Õ" k="10" /> +<hkern u1="g" u2="Ô" k="10" /> +<hkern u1="g" u2="Ó" k="10" /> +<hkern u1="g" u2="Ò" k="10" /> +<hkern u1="g" u2="Ñ" k="39" /> +<hkern u1="g" u2="Ð" k="39" /> +<hkern u1="g" u2="Ï" k="39" /> +<hkern u1="g" u2="Î" k="39" /> +<hkern u1="g" u2="Í" k="39" /> +<hkern u1="g" u2="Ì" k="39" /> +<hkern u1="g" u2="Ë" k="39" /> +<hkern u1="g" u2="Ê" k="39" /> +<hkern u1="g" u2="É" k="39" /> +<hkern u1="g" u2="È" k="39" /> +<hkern u1="g" u2="Ç" k="10" /> +<hkern u1="g" u2="Å" k="12" /> +<hkern u1="g" u2="Ä" k="12" /> +<hkern u1="g" u2="Ã" k="12" /> +<hkern u1="g" u2="Â" k="12" /> +<hkern u1="g" u2="Á" k="12" /> +<hkern u1="g" u2="À" k="12" /> +<hkern u1="g" u2="}" k="41" /> +<hkern u1="g" u2="f" k="-18" /> +<hkern u1="g" u2="]" k="57" /> +<hkern u1="g" u2="\" k="98" /> +<hkern u1="g" u2="Z" k="20" /> +<hkern u1="g" u2="Y" k="154" /> +<hkern u1="g" u2="X" k="45" /> +<hkern u1="g" u2="W" k="117" /> +<hkern u1="g" u2="V" k="137" /> +<hkern u1="g" u2="U" k="45" /> +<hkern u1="g" u2="T" k="29" /> +<hkern u1="g" u2="S" k="14" /> +<hkern u1="g" u2="R" k="39" /> +<hkern u1="g" u2="Q" k="10" /> +<hkern u1="g" u2="P" k="39" /> +<hkern u1="g" u2="O" k="10" /> +<hkern u1="g" u2="N" k="39" /> +<hkern u1="g" u2="M" k="37" /> +<hkern u1="g" u2="L" k="39" /> +<hkern u1="g" u2="K" k="39" /> +<hkern u1="g" u2="I" k="39" /> +<hkern u1="g" u2="H" k="39" /> +<hkern u1="g" u2="G" k="10" /> +<hkern u1="g" u2="F" k="39" /> +<hkern u1="g" u2="E" k="39" /> +<hkern u1="g" u2="D" k="39" /> +<hkern u1="g" u2="C" k="10" /> +<hkern u1="g" u2="B" k="39" /> +<hkern u1="g" u2="A" k="12" /> +<hkern u1="g" u2="?" k="20" /> +<hkern u1="g" u2=")" k="39" /> +<hkern u1="h" u2="™" k="78" /> +<hkern u1="h" u2="”" k="72" /> +<hkern u1="h" u2="“" k="66" /> +<hkern u1="h" u2="’" k="72" /> +<hkern u1="h" u2="‘" k="66" /> +<hkern u1="h" u2="—" k="25" /> +<hkern u1="h" u2="–" k="25" /> +<hkern u1="h" u2="Ÿ" k="174" /> +<hkern u1="h" u2="Œ" k="8" /> +<hkern u1="h" u2="Ý" k="174" /> +<hkern u1="h" u2="Ü" k="61" /> +<hkern u1="h" u2="Û" k="61" /> +<hkern u1="h" u2="Ú" k="61" /> +<hkern u1="h" u2="Ù" k="61" /> +<hkern u1="h" u2="Ø" k="8" /> +<hkern u1="h" u2="Ö" k="8" /> +<hkern u1="h" u2="Õ" k="8" /> +<hkern u1="h" u2="Ô" k="8" /> +<hkern u1="h" u2="Ó" k="8" /> +<hkern u1="h" u2="Ò" k="8" /> +<hkern u1="h" u2="Ç" k="8" /> +<hkern u1="h" u2="­" k="25" /> +<hkern u1="h" u2="}" k="39" /> +<hkern u1="h" u2="]" k="106" /> +<hkern u1="h" u2="\" k="135" /> +<hkern u1="h" u2="Y" k="174" /> +<hkern u1="h" u2="X" k="8" /> +<hkern u1="h" u2="W" k="147" /> +<hkern u1="h" u2="V" k="160" /> +<hkern u1="h" u2="U" k="61" /> +<hkern u1="h" u2="T" k="109" /> +<hkern u1="h" u2="Q" k="8" /> +<hkern u1="h" u2="O" k="8" /> +<hkern u1="h" u2="J" k="-25" /> +<hkern u1="h" u2="G" k="8" /> +<hkern u1="h" u2="C" k="8" /> +<hkern u1="h" u2="?" k="43" /> +<hkern u1="h" u2="7" k="100" /> +<hkern u1="h" u2="/" k="47" /> +<hkern u1="h" u2="-" k="25" /> +<hkern u1="h" u2="*" k="51" /> +<hkern u1="h" u2=")" k="43" /> +<hkern u1="h" u2="'" k="80" /> +<hkern u1="h" u2="&" k="-20" /> +<hkern u1="h" u2=""" k="80" /> +<hkern u1="i" u2="™" k="27" /> +<hkern u1="i" u2="}" k="20" /> +<hkern u1="i" u2="]" k="35" /> +<hkern u1="i" u2="W" k="70" /> +<hkern u1="i" u2="V" k="68" /> +<hkern u1="i" u2="T" k="57" /> +<hkern u1="i" u2="M" k="8" /> +<hkern u1="i" u2="J" k="-18" /> +<hkern u1="i" u2="?" k="20" /> +<hkern u1="i" u2="/" k="51" /> +<hkern u1="i" u2="*" k="35" /> +<hkern u1="i" u2=")" k="25" /> +<hkern u1="i" u2="&" k="-14" /> +<hkern u1="j" u2="Ÿ" k="33" /> +<hkern u1="j" u2="Œ" k="12" /> +<hkern u1="j" u2="Þ" k="33" /> +<hkern u1="j" u2="Ý" k="33" /> +<hkern u1="j" u2="Ü" k="29" /> +<hkern u1="j" u2="Û" k="29" /> +<hkern u1="j" u2="Ú" k="29" /> +<hkern u1="j" u2="Ù" k="29" /> +<hkern u1="j" u2="Ø" k="12" /> +<hkern u1="j" u2="Ö" k="12" /> +<hkern u1="j" u2="Õ" k="12" /> +<hkern u1="j" u2="Ô" k="12" /> +<hkern u1="j" u2="Ó" k="12" /> +<hkern u1="j" u2="Ò" k="12" /> +<hkern u1="j" u2="Ñ" k="33" /> +<hkern u1="j" u2="Ð" k="33" /> +<hkern u1="j" u2="Ï" k="33" /> +<hkern u1="j" u2="Î" k="33" /> +<hkern u1="j" u2="Í" k="33" /> +<hkern u1="j" u2="Ì" k="33" /> +<hkern u1="j" u2="Ë" k="33" /> +<hkern u1="j" u2="Ê" k="33" /> +<hkern u1="j" u2="É" k="33" /> +<hkern u1="j" u2="È" k="33" /> +<hkern u1="j" u2="Ç" k="12" /> +<hkern u1="j" u2="Å" k="12" /> +<hkern u1="j" u2="Ä" k="12" /> +<hkern u1="j" u2="Ã" k="12" /> +<hkern u1="j" u2="Â" k="12" /> +<hkern u1="j" u2="Á" k="12" /> +<hkern u1="j" u2="À" k="12" /> +<hkern u1="j" u2="Z" k="14" /> +<hkern u1="j" u2="Y" k="33" /> +<hkern u1="j" u2="X" k="16" /> +<hkern u1="j" u2="W" k="29" /> +<hkern u1="j" u2="V" k="27" /> +<hkern u1="j" u2="U" k="29" /> +<hkern u1="j" u2="T" k="18" /> +<hkern u1="j" u2="S" k="18" /> +<hkern u1="j" u2="R" k="33" /> +<hkern u1="j" u2="Q" k="12" /> +<hkern u1="j" u2="P" k="33" /> +<hkern u1="j" u2="O" k="12" /> +<hkern u1="j" u2="N" k="33" /> +<hkern u1="j" u2="M" k="33" /> +<hkern u1="j" u2="L" k="33" /> +<hkern u1="j" u2="K" k="33" /> +<hkern u1="j" u2="I" k="33" /> +<hkern u1="j" u2="H" k="33" /> +<hkern u1="j" u2="G" k="12" /> +<hkern u1="j" u2="F" k="33" /> +<hkern u1="j" u2="E" k="33" /> +<hkern u1="j" u2="D" k="33" /> +<hkern u1="j" u2="C" k="12" /> +<hkern u1="j" u2="B" k="33" /> +<hkern u1="j" u2="A" k="12" /> +<hkern u1="j" u2="/" k="23" /> +<hkern u1="k" u2="™" k="61" /> +<hkern u1="k" u2="”" k="43" /> +<hkern u1="k" u2="“" k="39" /> +<hkern u1="k" u2="’" k="43" /> +<hkern u1="k" u2="‘" k="39" /> +<hkern u1="k" u2="—" k="18" /> +<hkern u1="k" u2="–" k="18" /> +<hkern u1="k" u2="Ÿ" k="186" /> +<hkern u1="k" u2="œ" k="8" /> +<hkern u1="k" u2="Œ" k="31" /> +<hkern u1="k" u2="ø" k="8" /> +<hkern u1="k" u2="ö" k="8" /> +<hkern u1="k" u2="õ" k="8" /> +<hkern u1="k" u2="ô" k="8" /> +<hkern u1="k" u2="ó" k="8" /> +<hkern u1="k" u2="ò" k="8" /> +<hkern u1="k" u2="ð" k="8" /> +<hkern u1="k" u2="ë" k="8" /> +<hkern u1="k" u2="ê" k="8" /> +<hkern u1="k" u2="é" k="8" /> +<hkern u1="k" u2="è" k="8" /> +<hkern u1="k" u2="ç" k="8" /> +<hkern u1="k" u2="Þ" k="35" /> +<hkern u1="k" u2="Ý" k="186" /> +<hkern u1="k" u2="Ü" k="72" /> +<hkern u1="k" u2="Û" k="72" /> +<hkern u1="k" u2="Ú" k="72" /> +<hkern u1="k" u2="Ù" k="72" /> +<hkern u1="k" u2="Ø" k="31" /> +<hkern u1="k" u2="Ö" k="31" /> +<hkern u1="k" u2="Õ" k="31" /> +<hkern u1="k" u2="Ô" k="31" /> +<hkern u1="k" u2="Ó" k="31" /> +<hkern u1="k" u2="Ò" k="31" /> +<hkern u1="k" u2="Ñ" k="35" /> +<hkern u1="k" u2="Ð" k="35" /> +<hkern u1="k" u2="Ï" k="35" /> +<hkern u1="k" u2="Î" k="35" /> +<hkern u1="k" u2="Í" k="35" /> +<hkern u1="k" u2="Ì" k="35" /> +<hkern u1="k" u2="Ë" k="35" /> +<hkern u1="k" u2="Ê" k="35" /> +<hkern u1="k" u2="É" k="35" /> +<hkern u1="k" u2="È" k="35" /> +<hkern u1="k" u2="Ç" k="31" /> +<hkern u1="k" u2="­" k="18" /> +<hkern u1="k" u2="}" k="47" /> +<hkern u1="k" u2="z" k="8" /> +<hkern u1="k" u2="x" k="25" /> +<hkern u1="k" u2="o" k="8" /> +<hkern u1="k" u2="e" k="8" /> +<hkern u1="k" u2="c" k="8" /> +<hkern u1="k" u2="]" k="115" /> +<hkern u1="k" u2="\" k="115" /> +<hkern u1="k" u2="Y" k="186" /> +<hkern u1="k" u2="X" k="43" /> +<hkern u1="k" u2="W" k="150" /> +<hkern u1="k" u2="V" k="174" /> +<hkern u1="k" u2="U" k="72" /> +<hkern u1="k" u2="T" k="63" /> +<hkern u1="k" u2="S" k="10" /> +<hkern u1="k" u2="R" k="35" /> +<hkern u1="k" u2="Q" k="31" /> +<hkern u1="k" u2="P" k="35" /> +<hkern u1="k" u2="O" k="31" /> +<hkern u1="k" u2="N" k="35" /> +<hkern u1="k" u2="M" k="33" /> +<hkern u1="k" u2="L" k="35" /> +<hkern u1="k" u2="K" k="35" /> +<hkern u1="k" u2="J" k="-10" /> +<hkern u1="k" u2="I" k="35" /> +<hkern u1="k" u2="H" k="35" /> +<hkern u1="k" u2="G" k="31" /> +<hkern u1="k" u2="F" k="35" /> +<hkern u1="k" u2="E" k="35" /> +<hkern u1="k" u2="D" k="35" /> +<hkern u1="k" u2="C" k="31" /> +<hkern u1="k" u2="B" k="35" /> +<hkern u1="k" u2="?" k="37" /> +<hkern u1="k" u2="/" k="61" /> +<hkern u1="k" u2="-" k="18" /> +<hkern u1="k" u2="*" k="35" /> +<hkern u1="k" u2=")" k="49" /> +<hkern u1="k" u2="'" k="47" /> +<hkern u1="k" u2=""" k="47" /> +<hkern u1="l" u2="·" k="131" /> +<hkern u1="l" u2="W" k="41" /> +<hkern u1="l" u2="V" k="39" /> +<hkern u1="l" u2="T" k="27" /> +<hkern u1="l" u2="M" k="8" /> +<hkern u1="l" u2="J" k="-18" /> +<hkern u1="l" u2="/" k="51" /> +<hkern u1="l" u2="&" k="-12" /> +<hkern u1="m" u2="™" k="66" /> +<hkern u1="m" u2="”" k="55" /> +<hkern u1="m" u2="“" k="49" /> +<hkern u1="m" u2="’" k="55" /> +<hkern u1="m" u2="‘" k="49" /> +<hkern u1="m" u2="—" k="25" /> +<hkern u1="m" u2="–" k="25" /> +<hkern u1="m" u2="Ÿ" k="170" /> +<hkern u1="m" u2="Œ" k="8" /> +<hkern u1="m" u2="Ý" k="170" /> +<hkern u1="m" u2="Ü" k="61" /> +<hkern u1="m" u2="Û" k="61" /> +<hkern u1="m" u2="Ú" k="61" /> +<hkern u1="m" u2="Ù" k="61" /> +<hkern u1="m" u2="Ø" k="8" /> +<hkern u1="m" u2="Ö" k="8" /> +<hkern u1="m" u2="Õ" k="8" /> +<hkern u1="m" u2="Ô" k="8" /> +<hkern u1="m" u2="Ó" k="8" /> +<hkern u1="m" u2="Ò" k="8" /> +<hkern u1="m" u2="Ç" k="8" /> +<hkern u1="m" u2="­" k="25" /> +<hkern u1="m" u2="}" k="41" /> +<hkern u1="m" u2="]" k="111" /> +<hkern u1="m" u2="\" k="141" /> +<hkern u1="m" u2="Y" k="170" /> +<hkern u1="m" u2="W" k="135" /> +<hkern u1="m" u2="V" k="164" /> +<hkern u1="m" u2="U" k="61" /> +<hkern u1="m" u2="T" k="86" /> +<hkern u1="m" u2="Q" k="8" /> +<hkern u1="m" u2="O" k="8" /> +<hkern u1="m" u2="J" k="-25" /> +<hkern u1="m" u2="G" k="8" /> +<hkern u1="m" u2="C" k="8" /> +<hkern u1="m" u2="?" k="41" /> +<hkern u1="m" u2="/" k="49" /> +<hkern u1="m" u2="-" k="25" /> +<hkern u1="m" u2="*" k="41" /> +<hkern u1="m" u2=")" k="45" /> +<hkern u1="m" u2="'" k="55" /> +<hkern u1="m" u2="&" k="-20" /> +<hkern u1="m" u2=""" k="55" /> +<hkern u1="n" u2="™" k="66" /> +<hkern u1="n" u2="”" k="55" /> +<hkern u1="n" u2="“" k="49" /> +<hkern u1="n" u2="’" k="55" /> +<hkern u1="n" u2="‘" k="49" /> +<hkern u1="n" u2="—" k="25" /> +<hkern u1="n" u2="–" k="25" /> +<hkern u1="n" u2="Ÿ" k="174" /> +<hkern u1="n" u2="Œ" k="8" /> +<hkern u1="n" u2="Ý" k="174" /> +<hkern u1="n" u2="Ü" k="61" /> +<hkern u1="n" u2="Û" k="61" /> +<hkern u1="n" u2="Ú" k="61" /> +<hkern u1="n" u2="Ù" k="61" /> +<hkern u1="n" u2="Ø" k="8" /> +<hkern u1="n" u2="Ö" k="8" /> +<hkern u1="n" u2="Õ" k="8" /> +<hkern u1="n" u2="Ô" k="8" /> +<hkern u1="n" u2="Ó" k="8" /> +<hkern u1="n" u2="Ò" k="8" /> +<hkern u1="n" u2="Ç" k="8" /> +<hkern u1="n" u2="­" k="25" /> +<hkern u1="n" u2="}" k="41" /> +<hkern u1="n" u2="]" k="111" /> +<hkern u1="n" u2="\" k="141" /> +<hkern u1="n" u2="Y" k="174" /> +<hkern u1="n" u2="X" k="10" /> +<hkern u1="n" u2="W" k="147" /> +<hkern u1="n" u2="V" k="180" /> +<hkern u1="n" u2="U" k="61" /> +<hkern u1="n" u2="T" k="104" /> +<hkern u1="n" u2="Q" k="8" /> +<hkern u1="n" u2="O" k="8" /> +<hkern u1="n" u2="J" k="-25" /> +<hkern u1="n" u2="G" k="8" /> +<hkern u1="n" u2="C" k="8" /> +<hkern u1="n" u2="?" k="41" /> +<hkern u1="n" u2="/" k="49" /> +<hkern u1="n" u2="-" k="25" /> +<hkern u1="n" u2="*" k="43" /> +<hkern u1="n" u2=")" k="43" /> +<hkern u1="n" u2="'" k="55" /> +<hkern u1="n" u2="&" k="-20" /> +<hkern u1="n" u2=""" k="55" /> +<hkern u1="o" u2="™" k="43" /> +<hkern u1="o" u2="}" k="68" /> +<hkern u1="o" u2="x" k="18" /> +<hkern u1="o" u2="]" k="129" /> +<hkern u1="o" u2="\" k="133" /> +<hkern u1="o" u2="X" k="86" /> +<hkern u1="o" u2="W" k="133" /> +<hkern u1="o" u2="V" k="160" /> +<hkern u1="o" u2="T" k="88" /> +<hkern u1="o" u2="M" k="49" /> +<hkern u1="o" u2="?" k="43" /> +<hkern u1="o" u2="/" k="113" /> +<hkern u1="o" u2="*" k="18" /> +<hkern u1="o" u2=")" k="70" /> +<hkern u1="p" u2="™" k="39" /> +<hkern u1="p" u2="”" k="31" /> +<hkern u1="p" u2="“" k="25" /> +<hkern u1="p" u2="’" k="31" /> +<hkern u1="p" u2="‘" k="25" /> +<hkern u1="p" u2="Ÿ" k="166" /> +<hkern u1="p" u2="Þ" k="47" /> +<hkern u1="p" u2="Ý" k="166" /> +<hkern u1="p" u2="Ü" k="55" /> +<hkern u1="p" u2="Û" k="55" /> +<hkern u1="p" u2="Ú" k="55" /> +<hkern u1="p" u2="Ù" k="55" /> +<hkern u1="p" u2="Ñ" k="47" /> +<hkern u1="p" u2="Ð" k="47" /> +<hkern u1="p" u2="Ï" k="47" /> +<hkern u1="p" u2="Î" k="47" /> +<hkern u1="p" u2="Í" k="47" /> +<hkern u1="p" u2="Ì" k="47" /> +<hkern u1="p" u2="Ë" k="47" /> +<hkern u1="p" u2="Ê" k="47" /> +<hkern u1="p" u2="É" k="47" /> +<hkern u1="p" u2="È" k="47" /> +<hkern u1="p" u2="Å" k="35" /> +<hkern u1="p" u2="Ä" k="35" /> +<hkern u1="p" u2="Ã" k="35" /> +<hkern u1="p" u2="Â" k="35" /> +<hkern u1="p" u2="Á" k="35" /> +<hkern u1="p" u2="À" k="35" /> +<hkern u1="p" u2="}" k="63" /> +<hkern u1="p" u2="x" k="14" /> +<hkern u1="p" u2="]" k="123" /> +<hkern u1="p" u2="\" k="123" /> +<hkern u1="p" u2="Z" k="39" /> +<hkern u1="p" u2="Y" k="166" /> +<hkern u1="p" u2="X" k="86" /> +<hkern u1="p" u2="W" k="129" /> +<hkern u1="p" u2="V" k="154" /> +<hkern u1="p" u2="U" k="55" /> +<hkern u1="p" u2="T" k="72" /> +<hkern u1="p" u2="S" k="16" /> +<hkern u1="p" u2="R" k="47" /> +<hkern u1="p" u2="P" k="47" /> +<hkern u1="p" u2="N" k="47" /> +<hkern u1="p" u2="M" k="45" /> +<hkern u1="p" u2="L" k="47" /> +<hkern u1="p" u2="K" k="47" /> +<hkern u1="p" u2="J" k="8" /> +<hkern u1="p" u2="I" k="47" /> +<hkern u1="p" u2="H" k="47" /> +<hkern u1="p" u2="F" k="47" /> +<hkern u1="p" u2="E" k="47" /> +<hkern u1="p" u2="D" k="47" /> +<hkern u1="p" u2="B" k="47" /> +<hkern u1="p" u2="A" k="35" /> +<hkern u1="p" u2="?" k="37" /> +<hkern u1="p" u2="/" k="104" /> +<hkern u1="p" u2=")" k="66" /> +<hkern u1="p" u2="'" k="33" /> +<hkern u1="p" u2=""" k="33" /> +<hkern u1="q" u2="™" k="31" /> +<hkern u1="q" u2="Ÿ" k="152" /> +<hkern u1="q" u2="Œ" k="10" /> +<hkern u1="q" u2="Þ" k="39" /> +<hkern u1="q" u2="Ý" k="152" /> +<hkern u1="q" u2="Ü" k="43" /> +<hkern u1="q" u2="Û" k="43" /> +<hkern u1="q" u2="Ú" k="43" /> +<hkern u1="q" u2="Ù" k="43" /> +<hkern u1="q" u2="Ø" k="10" /> +<hkern u1="q" u2="Ö" k="10" /> +<hkern u1="q" u2="Õ" k="10" /> +<hkern u1="q" u2="Ô" k="10" /> +<hkern u1="q" u2="Ó" k="10" /> +<hkern u1="q" u2="Ò" k="10" /> +<hkern u1="q" u2="Ñ" k="39" /> +<hkern u1="q" u2="Ð" k="39" /> +<hkern u1="q" u2="Ï" k="39" /> +<hkern u1="q" u2="Î" k="39" /> +<hkern u1="q" u2="Í" k="39" /> +<hkern u1="q" u2="Ì" k="39" /> +<hkern u1="q" u2="Ë" k="39" /> +<hkern u1="q" u2="Ê" k="39" /> +<hkern u1="q" u2="É" k="39" /> +<hkern u1="q" u2="È" k="39" /> +<hkern u1="q" u2="Ç" k="10" /> +<hkern u1="q" u2="Å" k="12" /> +<hkern u1="q" u2="Ä" k="12" /> +<hkern u1="q" u2="Ã" k="12" /> +<hkern u1="q" u2="Â" k="12" /> +<hkern u1="q" u2="Á" k="12" /> +<hkern u1="q" u2="À" k="12" /> +<hkern u1="q" u2="}" k="-61" /> +<hkern u1="q" u2="j" k="-242" /> +<hkern u1="q" u2="]" k="-76" /> +<hkern u1="q" u2="\" k="96" /> +<hkern u1="q" u2="Z" k="18" /> +<hkern u1="q" u2="Y" k="152" /> +<hkern u1="q" u2="X" k="43" /> +<hkern u1="q" u2="W" k="117" /> +<hkern u1="q" u2="V" k="129" /> +<hkern u1="q" u2="U" k="43" /> +<hkern u1="q" u2="T" k="25" /> +<hkern u1="q" u2="S" k="14" /> +<hkern u1="q" u2="R" k="39" /> +<hkern u1="q" u2="Q" k="10" /> +<hkern u1="q" u2="P" k="39" /> +<hkern u1="q" u2="O" k="10" /> +<hkern u1="q" u2="N" k="39" /> +<hkern u1="q" u2="M" k="37" /> +<hkern u1="q" u2="L" k="39" /> +<hkern u1="q" u2="K" k="39" /> +<hkern u1="q" u2="I" k="39" /> +<hkern u1="q" u2="H" k="39" /> +<hkern u1="q" u2="G" k="10" /> +<hkern u1="q" u2="F" k="39" /> +<hkern u1="q" u2="E" k="39" /> +<hkern u1="q" u2="D" k="39" /> +<hkern u1="q" u2="C" k="10" /> +<hkern u1="q" u2="B" k="39" /> +<hkern u1="q" u2="A" k="12" /> +<hkern u1="q" u2="/" k="-70" /> +<hkern u1="q" u2=")" k="-57" /> +<hkern u1="r" u2="™" k="25" /> +<hkern u1="r" u2="‹" k="31" /> +<hkern u1="r" u2="…" k="123" /> +<hkern u1="r" u2="„" k="123" /> +<hkern u1="r" u2="‚" k="123" /> +<hkern u1="r" u2="Ÿ" k="106" /> +<hkern u1="r" u2="œ" k="12" /> +<hkern u1="r" u2="ÿ" k="-37" /> +<hkern u1="r" u2="ý" k="-37" /> +<hkern u1="r" u2="ü" k="-14" /> +<hkern u1="r" u2="û" k="-14" /> +<hkern u1="r" u2="ú" k="-14" /> +<hkern u1="r" u2="ù" k="-14" /> +<hkern u1="r" u2="ø" k="12" /> +<hkern u1="r" u2="ö" k="12" /> +<hkern u1="r" u2="õ" k="12" /> +<hkern u1="r" u2="ô" k="12" /> +<hkern u1="r" u2="ó" k="12" /> +<hkern u1="r" u2="ò" k="12" /> +<hkern u1="r" u2="ð" k="12" /> +<hkern u1="r" u2="ë" k="12" /> +<hkern u1="r" u2="ê" k="12" /> +<hkern u1="r" u2="é" k="12" /> +<hkern u1="r" u2="è" k="12" /> +<hkern u1="r" u2="ç" k="12" /> +<hkern u1="r" u2="æ" k="8" /> +<hkern u1="r" u2="å" k="25" /> +<hkern u1="r" u2="ä" k="25" /> +<hkern u1="r" u2="ã" k="25" /> +<hkern u1="r" u2="â" k="25" /> +<hkern u1="r" u2="á" k="25" /> +<hkern u1="r" u2="à" k="25" /> +<hkern u1="r" u2="Þ" k="74" /> +<hkern u1="r" u2="Ý" k="106" /> +<hkern u1="r" u2="Ü" k="41" /> +<hkern u1="r" u2="Û" k="41" /> +<hkern u1="r" u2="Ú" k="41" /> +<hkern u1="r" u2="Ù" k="41" /> +<hkern u1="r" u2="Ñ" k="74" /> +<hkern u1="r" u2="Ð" k="74" /> +<hkern u1="r" u2="Ï" k="74" /> +<hkern u1="r" u2="Î" k="74" /> +<hkern u1="r" u2="Í" k="74" /> +<hkern u1="r" u2="Ì" k="74" /> +<hkern u1="r" u2="Ë" k="74" /> +<hkern u1="r" u2="Ê" k="74" /> +<hkern u1="r" u2="É" k="74" /> +<hkern u1="r" u2="È" k="74" /> +<hkern u1="r" u2="Å" k="131" /> +<hkern u1="r" u2="Ä" k="131" /> +<hkern u1="r" u2="Ã" k="131" /> +<hkern u1="r" u2="Â" k="131" /> +<hkern u1="r" u2="Á" k="131" /> +<hkern u1="r" u2="À" k="131" /> +<hkern u1="r" u2="«" k="31" /> +<hkern u1="r" u2="}" k="59" /> +<hkern u1="r" u2="y" k="-37" /> +<hkern u1="r" u2="w" k="-16" /> +<hkern u1="r" u2="v" k="-20" /> +<hkern u1="r" u2="u" k="-14" /> +<hkern u1="r" u2="t" k="-14" /> +<hkern u1="r" u2="q" k="16" /> +<hkern u1="r" u2="o" k="12" /> +<hkern u1="r" u2="l" k="8" /> +<hkern u1="r" u2="k" k="8" /> +<hkern u1="r" u2="g" k="16" /> +<hkern u1="r" u2="e" k="12" /> +<hkern u1="r" u2="d" k="16" /> +<hkern u1="r" u2="c" k="12" /> +<hkern u1="r" u2="a" k="25" /> +<hkern u1="r" u2="]" k="129" /> +<hkern u1="r" u2="\" k="66" /> +<hkern u1="r" u2="Z" k="23" /> +<hkern u1="r" u2="Y" k="106" /> +<hkern u1="r" u2="X" k="129" /> +<hkern u1="r" u2="W" k="78" /> +<hkern u1="r" u2="V" k="82" /> +<hkern u1="r" u2="U" k="41" /> +<hkern u1="r" u2="S" k="14" /> +<hkern u1="r" u2="R" k="74" /> +<hkern u1="r" u2="P" k="74" /> +<hkern u1="r" u2="N" k="74" /> +<hkern u1="r" u2="M" k="74" /> +<hkern u1="r" u2="L" k="74" /> +<hkern u1="r" u2="K" k="74" /> +<hkern u1="r" u2="J" k="133" /> +<hkern u1="r" u2="I" k="74" /> +<hkern u1="r" u2="H" k="74" /> +<hkern u1="r" u2="F" k="74" /> +<hkern u1="r" u2="E" k="74" /> +<hkern u1="r" u2="D" k="74" /> +<hkern u1="r" u2="B" k="74" /> +<hkern u1="r" u2="A" k="131" /> +<hkern u1="r" u2="/" k="178" /> +<hkern u1="r" u2="." k="123" /> +<hkern u1="r" u2="," k="123" /> +<hkern u1="r" u2=")" k="55" /> +<hkern u1="s" u2="™" k="49" /> +<hkern u1="s" u2="}" k="61" /> +<hkern u1="s" u2="x" k="12" /> +<hkern u1="s" u2="]" k="129" /> +<hkern u1="s" u2="\" k="123" /> +<hkern u1="s" u2="X" k="47" /> +<hkern u1="s" u2="W" k="125" /> +<hkern u1="s" u2="V" k="145" /> +<hkern u1="s" u2="T" k="63" /> +<hkern u1="s" u2="M" k="35" /> +<hkern u1="s" u2="?" k="37" /> +<hkern u1="s" u2="/" k="84" /> +<hkern u1="s" u2="*" k="25" /> +<hkern u1="s" u2=")" k="63" /> +<hkern u1="t" u2="™" k="39" /> +<hkern u1="t" u2="‹" k="23" /> +<hkern u1="t" u2="—" k="23" /> +<hkern u1="t" u2="–" k="23" /> +<hkern u1="t" u2="Ÿ" k="117" /> +<hkern u1="t" u2="Œ" k="8" /> +<hkern u1="t" u2="Þ" k="16" /> +<hkern u1="t" u2="Ý" k="117" /> +<hkern u1="t" u2="Ü" k="45" /> +<hkern u1="t" u2="Û" k="45" /> +<hkern u1="t" u2="Ú" k="45" /> +<hkern u1="t" u2="Ù" k="45" /> +<hkern u1="t" u2="Ø" k="8" /> +<hkern u1="t" u2="Ö" k="8" /> +<hkern u1="t" u2="Õ" k="8" /> +<hkern u1="t" u2="Ô" k="8" /> +<hkern u1="t" u2="Ó" k="8" /> +<hkern u1="t" u2="Ò" k="8" /> +<hkern u1="t" u2="Ñ" k="16" /> +<hkern u1="t" u2="Ð" k="16" /> +<hkern u1="t" u2="Ï" k="16" /> +<hkern u1="t" u2="Î" k="16" /> +<hkern u1="t" u2="Í" k="16" /> +<hkern u1="t" u2="Ì" k="16" /> +<hkern u1="t" u2="Ë" k="16" /> +<hkern u1="t" u2="Ê" k="16" /> +<hkern u1="t" u2="É" k="16" /> +<hkern u1="t" u2="È" k="16" /> +<hkern u1="t" u2="Ç" k="8" /> +<hkern u1="t" u2="­" k="23" /> +<hkern u1="t" u2="«" k="23" /> +<hkern u1="t" u2="}" k="43" /> +<hkern u1="t" u2="]" k="102" /> +<hkern u1="t" u2="\" k="72" /> +<hkern u1="t" u2="Y" k="117" /> +<hkern u1="t" u2="X" k="23" /> +<hkern u1="t" u2="W" k="96" /> +<hkern u1="t" u2="V" k="98" /> +<hkern u1="t" u2="U" k="45" /> +<hkern u1="t" u2="T" k="23" /> +<hkern u1="t" u2="R" k="16" /> +<hkern u1="t" u2="Q" k="8" /> +<hkern u1="t" u2="P" k="16" /> +<hkern u1="t" u2="O" k="8" /> +<hkern u1="t" u2="N" k="16" /> +<hkern u1="t" u2="M" k="14" /> +<hkern u1="t" u2="L" k="16" /> +<hkern u1="t" u2="K" k="16" /> +<hkern u1="t" u2="J" k="-47" /> +<hkern u1="t" u2="I" k="16" /> +<hkern u1="t" u2="H" k="16" /> +<hkern u1="t" u2="G" k="8" /> +<hkern u1="t" u2="F" k="16" /> +<hkern u1="t" u2="E" k="16" /> +<hkern u1="t" u2="D" k="16" /> +<hkern u1="t" u2="C" k="8" /> +<hkern u1="t" u2="B" k="16" /> +<hkern u1="t" u2="/" k="63" /> +<hkern u1="t" u2="-" k="23" /> +<hkern u1="t" u2=")" k="43" /> +<hkern u1="u" u2="™" k="43" /> +<hkern u1="u" u2="}" k="41" /> +<hkern u1="u" u2="]" k="109" /> +<hkern u1="u" u2="\" k="119" /> +<hkern u1="u" u2="W" k="111" /> +<hkern u1="u" u2="V" k="129" /> +<hkern u1="u" u2="T" k="72" /> +<hkern u1="u" u2="J" k="-20" /> +<hkern u1="u" u2="?" k="25" /> +<hkern u1="u" u2="/" k="47" /> +<hkern u1="u" u2="*" k="23" /> +<hkern u1="u" u2=")" k="41" /> +<hkern u1="u" u2="&" k="-16" /> +<hkern u1="v" u2="™" k="35" /> +<hkern u1="v" u2="…" k="35" /> +<hkern u1="v" u2="„" k="35" /> +<hkern u1="v" u2="”" k="25" /> +<hkern u1="v" u2="“" k="18" /> +<hkern u1="v" u2="‚" k="35" /> +<hkern u1="v" u2="’" k="25" /> +<hkern u1="v" u2="‘" k="18" /> +<hkern u1="v" u2="Ÿ" k="168" /> +<hkern u1="v" u2="Þ" k="49" /> +<hkern u1="v" u2="Ý" k="168" /> +<hkern u1="v" u2="Ü" k="55" /> +<hkern u1="v" u2="Û" k="55" /> +<hkern u1="v" u2="Ú" k="55" /> +<hkern u1="v" u2="Ù" k="55" /> +<hkern u1="v" u2="Ñ" k="49" /> +<hkern u1="v" u2="Ð" k="49" /> +<hkern u1="v" u2="Ï" k="49" /> +<hkern u1="v" u2="Î" k="49" /> +<hkern u1="v" u2="Í" k="49" /> +<hkern u1="v" u2="Ì" k="49" /> +<hkern u1="v" u2="Ë" k="49" /> +<hkern u1="v" u2="Ê" k="49" /> +<hkern u1="v" u2="É" k="49" /> +<hkern u1="v" u2="È" k="49" /> +<hkern u1="v" u2="Å" k="45" /> +<hkern u1="v" u2="Ä" k="45" /> +<hkern u1="v" u2="Ã" k="45" /> +<hkern u1="v" u2="Â" k="45" /> +<hkern u1="v" u2="Á" k="45" /> +<hkern u1="v" u2="À" k="45" /> +<hkern u1="v" u2="}" k="66" /> +<hkern u1="v" u2="x" k="14" /> +<hkern u1="v" u2="]" k="129" /> +<hkern u1="v" u2="\" k="115" /> +<hkern u1="v" u2="Z" k="43" /> +<hkern u1="v" u2="Y" k="168" /> +<hkern u1="v" u2="X" k="98" /> +<hkern u1="v" u2="W" k="131" /> +<hkern u1="v" u2="V" k="152" /> +<hkern u1="v" u2="U" k="55" /> +<hkern u1="v" u2="T" k="59" /> +<hkern u1="v" u2="S" k="18" /> +<hkern u1="v" u2="R" k="49" /> +<hkern u1="v" u2="P" k="49" /> +<hkern u1="v" u2="N" k="49" /> +<hkern u1="v" u2="M" k="49" /> +<hkern u1="v" u2="L" k="49" /> +<hkern u1="v" u2="K" k="49" /> +<hkern u1="v" u2="J" k="16" /> +<hkern u1="v" u2="I" k="49" /> +<hkern u1="v" u2="H" k="49" /> +<hkern u1="v" u2="F" k="49" /> +<hkern u1="v" u2="E" k="49" /> +<hkern u1="v" u2="D" k="49" /> +<hkern u1="v" u2="B" k="49" /> +<hkern u1="v" u2="A" k="45" /> +<hkern u1="v" u2="?" k="33" /> +<hkern u1="v" u2="/" k="127" /> +<hkern u1="v" u2="." k="35" /> +<hkern u1="v" u2="," k="35" /> +<hkern u1="v" u2=")" k="68" /> +<hkern u1="v" u2="'" k="27" /> +<hkern u1="v" u2=""" k="27" /> +<hkern u1="w" u2="™" k="35" /> +<hkern u1="w" u2="…" k="35" /> +<hkern u1="w" u2="„" k="35" /> +<hkern u1="w" u2="”" k="25" /> +<hkern u1="w" u2="“" k="18" /> +<hkern u1="w" u2="‚" k="35" /> +<hkern u1="w" u2="’" k="25" /> +<hkern u1="w" u2="‘" k="18" /> +<hkern u1="w" u2="Ÿ" k="170" /> +<hkern u1="w" u2="Þ" k="51" /> +<hkern u1="w" u2="Ý" k="170" /> +<hkern u1="w" u2="Ü" k="55" /> +<hkern u1="w" u2="Û" k="55" /> +<hkern u1="w" u2="Ú" k="55" /> +<hkern u1="w" u2="Ù" k="55" /> +<hkern u1="w" u2="Ñ" k="51" /> +<hkern u1="w" u2="Ð" k="51" /> +<hkern u1="w" u2="Ï" k="51" /> +<hkern u1="w" u2="Î" k="51" /> +<hkern u1="w" u2="Í" k="51" /> +<hkern u1="w" u2="Ì" k="51" /> +<hkern u1="w" u2="Ë" k="51" /> +<hkern u1="w" u2="Ê" k="51" /> +<hkern u1="w" u2="É" k="51" /> +<hkern u1="w" u2="È" k="51" /> +<hkern u1="w" u2="Å" k="51" /> +<hkern u1="w" u2="Ä" k="51" /> +<hkern u1="w" u2="Ã" k="51" /> +<hkern u1="w" u2="Â" k="51" /> +<hkern u1="w" u2="Á" k="51" /> +<hkern u1="w" u2="À" k="51" /> +<hkern u1="w" u2="}" k="66" /> +<hkern u1="w" u2="x" k="14" /> +<hkern u1="w" u2="]" k="129" /> +<hkern u1="w" u2="\" k="115" /> +<hkern u1="w" u2="Z" k="45" /> +<hkern u1="w" u2="Y" k="170" /> +<hkern u1="w" u2="X" k="102" /> +<hkern u1="w" u2="W" k="129" /> +<hkern u1="w" u2="V" k="147" /> +<hkern u1="w" u2="U" k="55" /> +<hkern u1="w" u2="T" k="59" /> +<hkern u1="w" u2="S" k="20" /> +<hkern u1="w" u2="R" k="51" /> +<hkern u1="w" u2="P" k="51" /> +<hkern u1="w" u2="N" k="51" /> +<hkern u1="w" u2="M" k="51" /> +<hkern u1="w" u2="L" k="51" /> +<hkern u1="w" u2="K" k="51" /> +<hkern u1="w" u2="J" k="20" /> +<hkern u1="w" u2="I" k="51" /> +<hkern u1="w" u2="H" k="51" /> +<hkern u1="w" u2="F" k="51" /> +<hkern u1="w" u2="E" k="51" /> +<hkern u1="w" u2="D" k="51" /> +<hkern u1="w" u2="B" k="51" /> +<hkern u1="w" u2="A" k="51" /> +<hkern u1="w" u2="?" k="33" /> +<hkern u1="w" u2="/" k="129" /> +<hkern u1="w" u2="." k="35" /> +<hkern u1="w" u2="," k="35" /> +<hkern u1="w" u2=")" k="68" /> +<hkern u1="w" u2="'" k="27" /> +<hkern u1="w" u2=""" k="27" /> +<hkern u1="x" u2="™" k="31" /> +<hkern u1="x" u2="—" k="16" /> +<hkern u1="x" u2="–" k="16" /> +<hkern u1="x" u2="Ÿ" k="141" /> +<hkern u1="x" u2="œ" k="18" /> +<hkern u1="x" u2="Œ" k="41" /> +<hkern u1="x" u2="ø" k="18" /> +<hkern u1="x" u2="ö" k="18" /> +<hkern u1="x" u2="õ" k="18" /> +<hkern u1="x" u2="ô" k="18" /> +<hkern u1="x" u2="ó" k="18" /> +<hkern u1="x" u2="ò" k="18" /> +<hkern u1="x" u2="ð" k="18" /> +<hkern u1="x" u2="ë" k="18" /> +<hkern u1="x" u2="ê" k="18" /> +<hkern u1="x" u2="é" k="18" /> +<hkern u1="x" u2="è" k="18" /> +<hkern u1="x" u2="ç" k="18" /> +<hkern u1="x" u2="å" k="12" /> +<hkern u1="x" u2="ä" k="12" /> +<hkern u1="x" u2="ã" k="12" /> +<hkern u1="x" u2="â" k="12" /> +<hkern u1="x" u2="á" k="12" /> +<hkern u1="x" u2="à" k="12" /> +<hkern u1="x" u2="Þ" k="43" /> +<hkern u1="x" u2="Ý" k="141" /> +<hkern u1="x" u2="Ü" k="55" /> +<hkern u1="x" u2="Û" k="55" /> +<hkern u1="x" u2="Ú" k="55" /> +<hkern u1="x" u2="Ù" k="55" /> +<hkern u1="x" u2="Ø" k="41" /> +<hkern u1="x" u2="Ö" k="41" /> +<hkern u1="x" u2="Õ" k="41" /> +<hkern u1="x" u2="Ô" k="41" /> +<hkern u1="x" u2="Ó" k="41" /> +<hkern u1="x" u2="Ò" k="41" /> +<hkern u1="x" u2="Ñ" k="43" /> +<hkern u1="x" u2="Ð" k="43" /> +<hkern u1="x" u2="Ï" k="43" /> +<hkern u1="x" u2="Î" k="43" /> +<hkern u1="x" u2="Í" k="43" /> +<hkern u1="x" u2="Ì" k="43" /> +<hkern u1="x" u2="Ë" k="43" /> +<hkern u1="x" u2="Ê" k="43" /> +<hkern u1="x" u2="É" k="43" /> +<hkern u1="x" u2="È" k="43" /> +<hkern u1="x" u2="Ç" k="41" /> +<hkern u1="x" u2="­" k="16" /> +<hkern u1="x" u2="}" k="41" /> +<hkern u1="x" u2="z" k="10" /> +<hkern u1="x" u2="x" k="31" /> +<hkern u1="x" u2="s" k="8" /> +<hkern u1="x" u2="q" k="14" /> +<hkern u1="x" u2="o" k="18" /> +<hkern u1="x" u2="g" k="14" /> +<hkern u1="x" u2="e" k="18" /> +<hkern u1="x" u2="d" k="14" /> +<hkern u1="x" u2="c" k="18" /> +<hkern u1="x" u2="a" k="12" /> +<hkern u1="x" u2="]" k="109" /> +<hkern u1="x" u2="\" k="90" /> +<hkern u1="x" u2="Y" k="141" /> +<hkern u1="x" u2="X" k="35" /> +<hkern u1="x" u2="W" k="113" /> +<hkern u1="x" u2="V" k="127" /> +<hkern u1="x" u2="U" k="55" /> +<hkern u1="x" u2="T" k="18" /> +<hkern u1="x" u2="R" k="43" /> +<hkern u1="x" u2="Q" k="41" /> +<hkern u1="x" u2="P" k="43" /> +<hkern u1="x" u2="O" k="41" /> +<hkern u1="x" u2="N" k="43" /> +<hkern u1="x" u2="M" k="39" /> +<hkern u1="x" u2="L" k="43" /> +<hkern u1="x" u2="K" k="43" /> +<hkern u1="x" u2="I" k="43" /> +<hkern u1="x" u2="H" k="43" /> +<hkern u1="x" u2="G" k="41" /> +<hkern u1="x" u2="F" k="43" /> +<hkern u1="x" u2="E" k="43" /> +<hkern u1="x" u2="D" k="43" /> +<hkern u1="x" u2="C" k="41" /> +<hkern u1="x" u2="B" k="43" /> +<hkern u1="x" u2="/" k="53" /> +<hkern u1="x" u2="-" k="16" /> +<hkern u1="x" u2=")" k="39" /> +<hkern u1="y" u2="™" k="35" /> +<hkern u1="y" u2="}" k="63" /> +<hkern u1="y" u2="x" k="10" /> +<hkern u1="y" u2="]" k="121" /> +<hkern u1="y" u2="\" k="111" /> +<hkern u1="y" u2="X" k="94" /> +<hkern u1="y" u2="W" k="127" /> +<hkern u1="y" u2="V" k="152" /> +<hkern u1="y" u2="T" k="51" /> +<hkern u1="y" u2="M" k="45" /> +<hkern u1="y" u2="J" k="23" /> +<hkern u1="y" u2="?" k="33" /> +<hkern u1="y" u2="/" k="90" /> +<hkern u1="y" u2=")" k="66" /> +<hkern u1="z" u2="™" k="35" /> +<hkern u1="z" u2="}" k="55" /> +<hkern u1="z" u2="x" k="14" /> +<hkern u1="z" u2="t" k="25" /> +<hkern u1="z" u2="]" k="125" /> +<hkern u1="z" u2="\" k="88" /> +<hkern u1="z" u2="X" k="33" /> +<hkern u1="z" u2="W" k="100" /> +<hkern u1="z" u2="V" k="102" /> +<hkern u1="z" u2="T" k="18" /> +<hkern u1="z" u2="M" k="25" /> +<hkern u1="z" u2="/" k="72" /> +<hkern u1="z" u2=")" k="51" /> +<hkern u1="{" u2="fl" k="-252" /> +<hkern u1="{" u2="fi" k="-252" /> +<hkern u1="{" u2="Ÿ" k="-59" /> +<hkern u1="{" u2="œ" k="68" /> +<hkern u1="{" u2="Œ" k="53" /> +<hkern u1="{" u2="þ" k="-68" /> +<hkern u1="{" u2="ü" k="41" /> +<hkern u1="{" u2="û" k="41" /> +<hkern u1="{" u2="ú" k="41" /> +<hkern u1="{" u2="ù" k="41" /> +<hkern u1="{" u2="ø" k="68" /> +<hkern u1="{" u2="ö" k="68" /> +<hkern u1="{" u2="õ" k="68" /> +<hkern u1="{" u2="ô" k="68" /> +<hkern u1="{" u2="ó" k="68" /> +<hkern u1="{" u2="ò" k="68" /> +<hkern u1="{" u2="ñ" k="51" /> +<hkern u1="{" u2="ï" k="-37" /> +<hkern u1="{" u2="î" k="20" /> +<hkern u1="{" u2="í" k="20" /> +<hkern u1="{" u2="ì" k="4" /> +<hkern u1="{" u2="ë" k="68" /> +<hkern u1="{" u2="ê" k="68" /> +<hkern u1="{" u2="é" k="68" /> +<hkern u1="{" u2="è" k="68" /> +<hkern u1="{" u2="ç" k="68" /> +<hkern u1="{" u2="æ" k="57" /> +<hkern u1="{" u2="å" k="66" /> +<hkern u1="{" u2="ä" k="66" /> +<hkern u1="{" u2="ã" k="66" /> +<hkern u1="{" u2="â" k="66" /> +<hkern u1="{" u2="á" k="66" /> +<hkern u1="{" u2="à" k="66" /> +<hkern u1="{" u2="ß" k="-252" /> +<hkern u1="{" u2="Ý" k="-59" /> +<hkern u1="{" u2="Ü" k="-16" /> +<hkern u1="{" u2="Û" k="-16" /> +<hkern u1="{" u2="Ú" k="-16" /> +<hkern u1="{" u2="Ù" k="-16" /> +<hkern u1="{" u2="Ø" k="53" /> +<hkern u1="{" u2="Ö" k="53" /> +<hkern u1="{" u2="Õ" k="53" /> +<hkern u1="{" u2="Ô" k="53" /> +<hkern u1="{" u2="Ó" k="53" /> +<hkern u1="{" u2="Ò" k="53" /> +<hkern u1="{" u2="Ç" k="53" /> +<hkern u1="{" u2="Æ" k="43" /> +<hkern u1="{" u2="Å" k="51" /> +<hkern u1="{" u2="Ä" k="51" /> +<hkern u1="{" u2="Ã" k="51" /> +<hkern u1="{" u2="Â" k="51" /> +<hkern u1="{" u2="Á" k="51" /> +<hkern u1="{" u2="À" k="51" /> +<hkern u1="{" u2="{" k="41" /> +<hkern u1="{" u2="z" k="55" /> +<hkern u1="{" u2="x" k="43" /> +<hkern u1="{" u2="w" k="41" /> +<hkern u1="{" u2="v" k="37" /> +<hkern u1="{" u2="u" k="41" /> +<hkern u1="{" u2="t" k="51" /> +<hkern u1="{" u2="s" k="57" /> +<hkern u1="{" u2="r" k="51" /> +<hkern u1="{" u2="q" k="61" /> +<hkern u1="{" u2="o" k="68" /> +<hkern u1="{" u2="n" k="51" /> +<hkern u1="{" u2="m" k="51" /> +<hkern u1="{" u2="l" k="-29" /> +<hkern u1="{" u2="k" k="-37" /> +<hkern u1="{" u2="j" k="-238" /> +<hkern u1="{" u2="i" k="20" /> +<hkern u1="{" u2="h" k="-45" /> +<hkern u1="{" u2="g" k="41" /> +<hkern u1="{" u2="f" k="-252" /> +<hkern u1="{" u2="e" k="68" /> +<hkern u1="{" u2="d" k="61" /> +<hkern u1="{" u2="c" k="68" /> +<hkern u1="{" u2="b" k="-68" /> +<hkern u1="{" u2="a" k="66" /> +<hkern u1="{" u2="Y" k="-59" /> +<hkern u1="{" u2="X" k="-41" /> +<hkern u1="{" u2="W" k="-47" /> +<hkern u1="{" u2="V" k="-55" /> +<hkern u1="{" u2="U" k="-16" /> +<hkern u1="{" u2="T" k="-20" /> +<hkern u1="{" u2="S" k="35" /> +<hkern u1="{" u2="Q" k="53" /> +<hkern u1="{" u2="O" k="53" /> +<hkern u1="{" u2="J" k="33" /> +<hkern u1="{" u2="G" k="53" /> +<hkern u1="{" u2="C" k="53" /> +<hkern u1="{" u2="A" k="51" /> +<hkern u1="{" u2="9" k="41" /> +<hkern u1="{" u2="8" k="47" /> +<hkern u1="{" u2="7" k="-31" /> +<hkern u1="{" u2="6" k="47" /> +<hkern u1="{" u2="4" k="53" /> +<hkern u1="{" u2="3" k="31" /> +<hkern u1="{" u2="2" k="25" /> +<hkern u1="{" u2="1" k="43" /> +<hkern u1="{" u2="0" k="49" /> +<hkern u1="{" u2="(" k="43" /> +<hkern u1="|" u2="fl" k="-135" /> +<hkern u1="|" u2="fi" k="-135" /> +<hkern u1="|" u2="Ÿ" k="23" /> +<hkern u1="|" u2="ß" k="-135" /> +<hkern u1="|" u2="Ý" k="23" /> +<hkern u1="|" u2="j" k="-121" /> +<hkern u1="|" u2="f" k="-135" /> +<hkern u1="|" u2="Y" k="23" /> +<hkern u1="}" u2="}" k="41" /> +<hkern u1="}" u2="]" k="47" /> +<hkern u1="}" u2=")" k="39" /> +<hkern u1="¡" u2="fl" k="-141" /> +<hkern u1="¡" u2="fi" k="-141" /> +<hkern u1="¡" u2="Ÿ" k="88" /> +<hkern u1="¡" u2="ß" k="-141" /> +<hkern u1="¡" u2="Ý" k="88" /> +<hkern u1="¡" u2="Ü" k="39" /> +<hkern u1="¡" u2="Û" k="39" /> +<hkern u1="¡" u2="Ú" k="39" /> +<hkern u1="¡" u2="Ù" k="39" /> +<hkern u1="¡" u2="j" k="-129" /> +<hkern u1="¡" u2="f" k="-141" /> +<hkern u1="¡" u2="Y" k="88" /> +<hkern u1="¡" u2="W" k="80" /> +<hkern u1="¡" u2="V" k="86" /> +<hkern u1="¡" u2="U" k="39" /> +<hkern u1="«" u2="Æ" k="-31" /> +<hkern u1="«" u2="W" k="49" /> +<hkern u1="«" u2="V" k="49" /> +<hkern u1="­" u2="Æ" k="119" /> +<hkern u1="­" u2="X" k="129" /> +<hkern u1="­" u2="W" k="98" /> +<hkern u1="­" u2="V" k="115" /> +<hkern u1="­" u2="T" k="141" /> +<hkern u1="­" u2="M" k="49" /> +<hkern u1="­" u2="J" k="117" /> +<hkern u1="­" u2="8" k="27" /> +<hkern u1="­" u2="7" k="125" /> +<hkern u1="­" u2="3" k="41" /> +<hkern u1="­" u2="2" k="63" /> +<hkern u1="­" u2="1" k="61" /> +<hkern u1="®" u2="Ÿ" k="53" /> +<hkern u1="®" u2="ÿ" k="-47" /> +<hkern u1="®" u2="ý" k="-47" /> +<hkern u1="®" u2="ü" k="-35" /> +<hkern u1="®" u2="û" k="-35" /> +<hkern u1="®" u2="ú" k="-35" /> +<hkern u1="®" u2="ù" k="-35" /> +<hkern u1="®" u2="ñ" k="-14" /> +<hkern u1="®" u2="ï" k="-29" /> +<hkern u1="®" u2="î" k="-29" /> +<hkern u1="®" u2="í" k="-29" /> +<hkern u1="®" u2="ì" k="-29" /> +<hkern u1="®" u2="Þ" k="20" /> +<hkern u1="®" u2="Ý" k="53" /> +<hkern u1="®" u2="Ñ" k="20" /> +<hkern u1="®" u2="Ð" k="20" /> +<hkern u1="®" u2="Ï" k="20" /> +<hkern u1="®" u2="Î" k="20" /> +<hkern u1="®" u2="Í" k="20" /> +<hkern u1="®" u2="Ì" k="20" /> +<hkern u1="®" u2="Ë" k="20" /> +<hkern u1="®" u2="Ê" k="20" /> +<hkern u1="®" u2="É" k="20" /> +<hkern u1="®" u2="È" k="20" /> +<hkern u1="®" u2="Æ" k="37" /> +<hkern u1="®" u2="Å" k="35" /> +<hkern u1="®" u2="Ä" k="35" /> +<hkern u1="®" u2="Ã" k="35" /> +<hkern u1="®" u2="Â" k="35" /> +<hkern u1="®" u2="Á" k="35" /> +<hkern u1="®" u2="À" k="35" /> +<hkern u1="®" u2="y" k="-47" /> +<hkern u1="®" u2="w" k="-37" /> +<hkern u1="®" u2="v" k="-41" /> +<hkern u1="®" u2="u" k="-35" /> +<hkern u1="®" u2="r" k="-14" /> +<hkern u1="®" u2="p" k="-14" /> +<hkern u1="®" u2="n" k="-14" /> +<hkern u1="®" u2="m" k="-14" /> +<hkern u1="®" u2="j" k="-16" /> +<hkern u1="®" u2="i" k="-29" /> +<hkern u1="®" u2="Y" k="53" /> +<hkern u1="®" u2="X" k="23" /> +<hkern u1="®" u2="W" k="47" /> +<hkern u1="®" u2="V" k="49" /> +<hkern u1="®" u2="R" k="20" /> +<hkern u1="®" u2="P" k="20" /> +<hkern u1="®" u2="N" k="20" /> +<hkern u1="®" u2="L" k="20" /> +<hkern u1="®" u2="K" k="20" /> +<hkern u1="®" u2="I" k="20" /> +<hkern u1="®" u2="H" k="20" /> +<hkern u1="®" u2="F" k="20" /> +<hkern u1="®" u2="E" k="20" /> +<hkern u1="®" u2="D" k="20" /> +<hkern u1="®" u2="B" k="20" /> +<hkern u1="®" u2="A" k="35" /> +<hkern u1="°" u2="7" k="-31" /> +<hkern u1="°" u2="4" k="55" /> +<hkern u1="°" u2="1" k="-37" /> +<hkern u1="·" u2="l" k="119" /> +<hkern u1="·" u2="L" k="49" /> +<hkern u1="·" u2="8" k="29" /> +<hkern u1="·" u2="7" k="123" /> +<hkern u1="·" u2="3" k="45" /> +<hkern u1="·" u2="2" k="57" /> +<hkern u1="·" u2="1" k="53" /> +<hkern u1="»" u2="Æ" k="53" /> +<hkern u1="»" u2="X" k="76" /> +<hkern u1="»" u2="W" k="94" /> +<hkern u1="»" u2="V" k="113" /> +<hkern u1="»" u2="T" k="98" /> +<hkern u1="»" u2="M" k="35" /> +<hkern u1="¿" u2="fl" k="-92" /> +<hkern u1="¿" u2="fi" k="-92" /> +<hkern u1="¿" u2="Ÿ" k="139" /> +<hkern u1="¿" u2="œ" k="45" /> +<hkern u1="¿" u2="Œ" k="57" /> +<hkern u1="¿" u2="þ" k="25" /> +<hkern u1="¿" u2="ü" k="43" /> +<hkern u1="¿" u2="û" k="43" /> +<hkern u1="¿" u2="ú" k="43" /> +<hkern u1="¿" u2="ù" k="43" /> +<hkern u1="¿" u2="ø" k="45" /> +<hkern u1="¿" u2="ö" k="45" /> +<hkern u1="¿" u2="õ" k="45" /> +<hkern u1="¿" u2="ô" k="45" /> +<hkern u1="¿" u2="ó" k="45" /> +<hkern u1="¿" u2="ò" k="45" /> +<hkern u1="¿" u2="ñ" k="41" /> +<hkern u1="¿" u2="ð" k="45" /> +<hkern u1="¿" u2="ï" k="43" /> +<hkern u1="¿" u2="î" k="43" /> +<hkern u1="¿" u2="í" k="43" /> +<hkern u1="¿" u2="ì" k="43" /> +<hkern u1="¿" u2="ë" k="45" /> +<hkern u1="¿" u2="ê" k="45" /> +<hkern u1="¿" u2="é" k="45" /> +<hkern u1="¿" u2="è" k="45" /> +<hkern u1="¿" u2="ç" k="45" /> +<hkern u1="¿" u2="æ" k="31" /> +<hkern u1="¿" u2="å" k="39" /> +<hkern u1="¿" u2="ä" k="39" /> +<hkern u1="¿" u2="ã" k="39" /> +<hkern u1="¿" u2="â" k="39" /> +<hkern u1="¿" u2="á" k="39" /> +<hkern u1="¿" u2="à" k="39" /> +<hkern u1="¿" u2="ß" k="-92" /> +<hkern u1="¿" u2="Ý" k="139" /> +<hkern u1="¿" u2="Ü" k="90" /> +<hkern u1="¿" u2="Û" k="90" /> +<hkern u1="¿" u2="Ú" k="90" /> +<hkern u1="¿" u2="Ù" k="90" /> +<hkern u1="¿" u2="Ø" k="57" /> +<hkern u1="¿" u2="Ö" k="57" /> +<hkern u1="¿" u2="Õ" k="57" /> +<hkern u1="¿" u2="Ô" k="57" /> +<hkern u1="¿" u2="Ó" k="57" /> +<hkern u1="¿" u2="Ò" k="57" /> +<hkern u1="¿" u2="Ç" k="57" /> +<hkern u1="¿" u2="w" k="43" /> +<hkern u1="¿" u2="v" k="43" /> +<hkern u1="¿" u2="u" k="43" /> +<hkern u1="¿" u2="t" k="51" /> +<hkern u1="¿" u2="s" k="37" /> +<hkern u1="¿" u2="r" k="41" /> +<hkern u1="¿" u2="q" k="41" /> +<hkern u1="¿" u2="o" k="45" /> +<hkern u1="¿" u2="n" k="41" /> +<hkern u1="¿" u2="m" k="41" /> +<hkern u1="¿" u2="l" k="35" /> +<hkern u1="¿" u2="k" k="20" /> +<hkern u1="¿" u2="j" k="-84" /> +<hkern u1="¿" u2="i" k="43" /> +<hkern u1="¿" u2="h" k="25" /> +<hkern u1="¿" u2="g" k="41" /> +<hkern u1="¿" u2="f" k="-92" /> +<hkern u1="¿" u2="e" k="45" /> +<hkern u1="¿" u2="d" k="41" /> +<hkern u1="¿" u2="c" k="45" /> +<hkern u1="¿" u2="b" k="27" /> +<hkern u1="¿" u2="a" k="39" /> +<hkern u1="¿" u2="Y" k="139" /> +<hkern u1="¿" u2="W" k="147" /> +<hkern u1="¿" u2="V" k="158" /> +<hkern u1="¿" u2="U" k="90" /> +<hkern u1="¿" u2="T" k="78" /> +<hkern u1="¿" u2="Q" k="57" /> +<hkern u1="¿" u2="O" k="57" /> +<hkern u1="¿" u2="G" k="57" /> +<hkern u1="¿" u2="C" k="57" /> +<hkern u1="À" u2="™" k="129" /> +<hkern u1="À" u2="ð" k="27" /> +<hkern u1="À" u2="æ" k="12" /> +<hkern u1="À" u2="Æ" k="-55" /> +<hkern u1="À" u2="®" k="37" /> +<hkern u1="À" u2="}" k="53" /> +<hkern u1="À" u2="x" k="-10" /> +<hkern u1="À" u2="w" k="51" /> +<hkern u1="À" u2="v" k="53" /> +<hkern u1="À" u2="t" k="43" /> +<hkern u1="À" u2="r" k="41" /> +<hkern u1="À" u2="p" k="55" /> +<hkern u1="À" u2="m" k="31" /> +<hkern u1="À" u2="k" k="18" /> +<hkern u1="À" u2="j" k="57" /> +<hkern u1="À" u2="b" k="18" /> +<hkern u1="À" u2="]" k="113" /> +<hkern u1="À" u2="\" k="170" /> +<hkern u1="À" u2="W" k="143" /> +<hkern u1="À" u2="V" k="162" /> +<hkern u1="À" u2="T" k="111" /> +<hkern u1="À" u2="J" k="-31" /> +<hkern u1="À" u2="@" k="20" /> +<hkern u1="À" u2="?" k="68" /> +<hkern u1="À" u2="9" k="23" /> +<hkern u1="À" u2="8" k="23" /> +<hkern u1="À" u2="7" k="66" /> +<hkern u1="À" u2="6" k="27" /> +<hkern u1="À" u2="4" k="25" /> +<hkern u1="À" u2="2" k="-27" /> +<hkern u1="À" u2="1" k="23" /> +<hkern u1="À" u2="0" k="35" /> +<hkern u1="À" u2="/" k="29" /> +<hkern u1="À" u2="*" k="111" /> +<hkern u1="À" u2=")" k="45" /> +<hkern u1="Á" u2="™" k="129" /> +<hkern u1="Á" u2="ð" k="27" /> +<hkern u1="Á" u2="æ" k="12" /> +<hkern u1="Á" u2="Æ" k="-55" /> +<hkern u1="Á" u2="®" k="37" /> +<hkern u1="Á" u2="}" k="53" /> +<hkern u1="Á" u2="x" k="-10" /> +<hkern u1="Á" u2="w" k="51" /> +<hkern u1="Á" u2="v" k="53" /> +<hkern u1="Á" u2="t" k="43" /> +<hkern u1="Á" u2="r" k="41" /> +<hkern u1="Á" u2="p" k="55" /> +<hkern u1="Á" u2="m" k="31" /> +<hkern u1="Á" u2="k" k="18" /> +<hkern u1="Á" u2="j" k="57" /> +<hkern u1="Á" u2="b" k="18" /> +<hkern u1="Á" u2="]" k="113" /> +<hkern u1="Á" u2="\" k="170" /> +<hkern u1="Á" u2="W" k="143" /> +<hkern u1="Á" u2="V" k="162" /> +<hkern u1="Á" u2="T" k="111" /> +<hkern u1="Á" u2="J" k="-31" /> +<hkern u1="Á" u2="@" k="20" /> +<hkern u1="Á" u2="?" k="68" /> +<hkern u1="Á" u2="9" k="23" /> +<hkern u1="Á" u2="8" k="23" /> +<hkern u1="Á" u2="7" k="66" /> +<hkern u1="Á" u2="6" k="27" /> +<hkern u1="Á" u2="4" k="25" /> +<hkern u1="Á" u2="2" k="-27" /> +<hkern u1="Á" u2="1" k="23" /> +<hkern u1="Á" u2="0" k="35" /> +<hkern u1="Á" u2="/" k="29" /> +<hkern u1="Á" u2="*" k="111" /> +<hkern u1="Á" u2=")" k="45" /> +<hkern u1="Â" u2="™" k="129" /> +<hkern u1="Â" u2="ð" k="27" /> +<hkern u1="Â" u2="æ" k="12" /> +<hkern u1="Â" u2="Æ" k="-55" /> +<hkern u1="Â" u2="®" k="37" /> +<hkern u1="Â" u2="}" k="53" /> +<hkern u1="Â" u2="x" k="-10" /> +<hkern u1="Â" u2="w" k="51" /> +<hkern u1="Â" u2="v" k="53" /> +<hkern u1="Â" u2="t" k="43" /> +<hkern u1="Â" u2="r" k="41" /> +<hkern u1="Â" u2="p" k="55" /> +<hkern u1="Â" u2="m" k="31" /> +<hkern u1="Â" u2="k" k="18" /> +<hkern u1="Â" u2="j" k="57" /> +<hkern u1="Â" u2="b" k="18" /> +<hkern u1="Â" u2="]" k="113" /> +<hkern u1="Â" u2="\" k="170" /> +<hkern u1="Â" u2="W" k="143" /> +<hkern u1="Â" u2="V" k="162" /> +<hkern u1="Â" u2="T" k="111" /> +<hkern u1="Â" u2="J" k="-31" /> +<hkern u1="Â" u2="@" k="20" /> +<hkern u1="Â" u2="?" k="68" /> +<hkern u1="Â" u2="9" k="23" /> +<hkern u1="Â" u2="8" k="23" /> +<hkern u1="Â" u2="7" k="66" /> +<hkern u1="Â" u2="6" k="27" /> +<hkern u1="Â" u2="4" k="25" /> +<hkern u1="Â" u2="2" k="-27" /> +<hkern u1="Â" u2="1" k="23" /> +<hkern u1="Â" u2="0" k="35" /> +<hkern u1="Â" u2="/" k="29" /> +<hkern u1="Â" u2="*" k="111" /> +<hkern u1="Â" u2=")" k="45" /> +<hkern u1="Ã" u2="™" k="129" /> +<hkern u1="Ã" u2="ð" k="27" /> +<hkern u1="Ã" u2="æ" k="12" /> +<hkern u1="Ã" u2="Æ" k="-55" /> +<hkern u1="Ã" u2="®" k="37" /> +<hkern u1="Ã" u2="}" k="53" /> +<hkern u1="Ã" u2="x" k="-10" /> +<hkern u1="Ã" u2="w" k="51" /> +<hkern u1="Ã" u2="v" k="53" /> +<hkern u1="Ã" u2="t" k="43" /> +<hkern u1="Ã" u2="r" k="41" /> +<hkern u1="Ã" u2="p" k="55" /> +<hkern u1="Ã" u2="m" k="31" /> +<hkern u1="Ã" u2="k" k="18" /> +<hkern u1="Ã" u2="j" k="57" /> +<hkern u1="Ã" u2="b" k="18" /> +<hkern u1="Ã" u2="]" k="113" /> +<hkern u1="Ã" u2="\" k="170" /> +<hkern u1="Ã" u2="W" k="143" /> +<hkern u1="Ã" u2="V" k="162" /> +<hkern u1="Ã" u2="T" k="111" /> +<hkern u1="Ã" u2="J" k="-31" /> +<hkern u1="Ã" u2="@" k="20" /> +<hkern u1="Ã" u2="?" k="68" /> +<hkern u1="Ã" u2="9" k="23" /> +<hkern u1="Ã" u2="8" k="23" /> +<hkern u1="Ã" u2="7" k="66" /> +<hkern u1="Ã" u2="6" k="27" /> +<hkern u1="Ã" u2="4" k="25" /> +<hkern u1="Ã" u2="2" k="-27" /> +<hkern u1="Ã" u2="1" k="23" /> +<hkern u1="Ã" u2="0" k="35" /> +<hkern u1="Ã" u2="/" k="29" /> +<hkern u1="Ã" u2="*" k="111" /> +<hkern u1="Ã" u2=")" k="45" /> +<hkern u1="Ä" u2="™" k="129" /> +<hkern u1="Ä" u2="ð" k="27" /> +<hkern u1="Ä" u2="æ" k="12" /> +<hkern u1="Ä" u2="Æ" k="-55" /> +<hkern u1="Ä" u2="®" k="37" /> +<hkern u1="Ä" u2="}" k="53" /> +<hkern u1="Ä" u2="x" k="-10" /> +<hkern u1="Ä" u2="w" k="51" /> +<hkern u1="Ä" u2="v" k="53" /> +<hkern u1="Ä" u2="t" k="43" /> +<hkern u1="Ä" u2="r" k="41" /> +<hkern u1="Ä" u2="p" k="55" /> +<hkern u1="Ä" u2="m" k="31" /> +<hkern u1="Ä" u2="k" k="18" /> +<hkern u1="Ä" u2="j" k="57" /> +<hkern u1="Ä" u2="b" k="18" /> +<hkern u1="Ä" u2="]" k="113" /> +<hkern u1="Ä" u2="\" k="170" /> +<hkern u1="Ä" u2="W" k="143" /> +<hkern u1="Ä" u2="V" k="162" /> +<hkern u1="Ä" u2="T" k="111" /> +<hkern u1="Ä" u2="J" k="-31" /> +<hkern u1="Ä" u2="@" k="20" /> +<hkern u1="Ä" u2="?" k="68" /> +<hkern u1="Ä" u2="9" k="23" /> +<hkern u1="Ä" u2="8" k="23" /> +<hkern u1="Ä" u2="7" k="66" /> +<hkern u1="Ä" u2="6" k="27" /> +<hkern u1="Ä" u2="4" k="25" /> +<hkern u1="Ä" u2="2" k="-27" /> +<hkern u1="Ä" u2="1" k="23" /> +<hkern u1="Ä" u2="0" k="35" /> +<hkern u1="Ä" u2="/" k="29" /> +<hkern u1="Ä" u2="*" k="111" /> +<hkern u1="Ä" u2=")" k="45" /> +<hkern u1="Å" u2="™" k="129" /> +<hkern u1="Å" u2="ð" k="27" /> +<hkern u1="Å" u2="æ" k="12" /> +<hkern u1="Å" u2="Æ" k="-55" /> +<hkern u1="Å" u2="®" k="37" /> +<hkern u1="Å" u2="}" k="53" /> +<hkern u1="Å" u2="x" k="-10" /> +<hkern u1="Å" u2="w" k="51" /> +<hkern u1="Å" u2="v" k="53" /> +<hkern u1="Å" u2="t" k="43" /> +<hkern u1="Å" u2="r" k="41" /> +<hkern u1="Å" u2="p" k="55" /> +<hkern u1="Å" u2="m" k="31" /> +<hkern u1="Å" u2="k" k="18" /> +<hkern u1="Å" u2="j" k="57" /> +<hkern u1="Å" u2="b" k="18" /> +<hkern u1="Å" u2="]" k="113" /> +<hkern u1="Å" u2="\" k="170" /> +<hkern u1="Å" u2="W" k="143" /> +<hkern u1="Å" u2="V" k="162" /> +<hkern u1="Å" u2="T" k="111" /> +<hkern u1="Å" u2="J" k="-31" /> +<hkern u1="Å" u2="@" k="20" /> +<hkern u1="Å" u2="?" k="68" /> +<hkern u1="Å" u2="9" k="23" /> +<hkern u1="Å" u2="8" k="23" /> +<hkern u1="Å" u2="7" k="66" /> +<hkern u1="Å" u2="6" k="27" /> +<hkern u1="Å" u2="4" k="25" /> +<hkern u1="Å" u2="2" k="-27" /> +<hkern u1="Å" u2="1" k="23" /> +<hkern u1="Å" u2="0" k="35" /> +<hkern u1="Å" u2="/" k="29" /> +<hkern u1="Å" u2="*" k="111" /> +<hkern u1="Å" u2=")" k="45" /> +<hkern u1="Æ" u2="ð" k="10" /> +<hkern u1="Æ" u2="w" k="29" /> +<hkern u1="Æ" u2="v" k="31" /> +<hkern u1="Æ" u2="t" k="14" /> +<hkern u1="Æ" u2="r" k="33" /> +<hkern u1="Æ" u2="p" k="43" /> +<hkern u1="Æ" u2="m" k="33" /> +<hkern u1="Æ" u2="j" k="47" /> +<hkern u1="Æ" u2="W" k="14" /> +<hkern u1="Æ" u2="V" k="16" /> +<hkern u1="Æ" u2="4" k="-10" /> +<hkern u1="Æ" u2="/" k="51" /> +<hkern u1="Ç" u2="x" k="27" /> +<hkern u1="Ç" u2="r" k="16" /> +<hkern u1="Ç" u2="p" k="16" /> +<hkern u1="Ç" u2="m" k="16" /> +<hkern u1="Ç" u2="j" k="20" /> +<hkern u1="Ç" u2="3" k="-23" /> +<hkern u1="Ç" u2="/" k="72" /> +<hkern u1="È" u2="ð" k="10" /> +<hkern u1="È" u2="w" k="29" /> +<hkern u1="È" u2="v" k="31" /> +<hkern u1="È" u2="t" k="14" /> +<hkern u1="È" u2="r" k="33" /> +<hkern u1="È" u2="p" k="43" /> +<hkern u1="È" u2="m" k="33" /> +<hkern u1="È" u2="j" k="47" /> +<hkern u1="È" u2="W" k="14" /> +<hkern u1="È" u2="V" k="16" /> +<hkern u1="È" u2="4" k="-10" /> +<hkern u1="È" u2="/" k="51" /> +<hkern u1="É" u2="ð" k="10" /> +<hkern u1="É" u2="w" k="29" /> +<hkern u1="É" u2="v" k="31" /> +<hkern u1="É" u2="t" k="14" /> +<hkern u1="É" u2="r" k="33" /> +<hkern u1="É" u2="p" k="43" /> +<hkern u1="É" u2="m" k="33" /> +<hkern u1="É" u2="j" k="47" /> +<hkern u1="É" u2="W" k="14" /> +<hkern u1="É" u2="V" k="16" /> +<hkern u1="É" u2="4" k="-10" /> +<hkern u1="É" u2="/" k="51" /> +<hkern u1="Ê" u2="ð" k="10" /> +<hkern u1="Ê" u2="w" k="29" /> +<hkern u1="Ê" u2="v" k="31" /> +<hkern u1="Ê" u2="t" k="14" /> +<hkern u1="Ê" u2="r" k="33" /> +<hkern u1="Ê" u2="p" k="43" /> +<hkern u1="Ê" u2="m" k="33" /> +<hkern u1="Ê" u2="j" k="47" /> +<hkern u1="Ê" u2="W" k="14" /> +<hkern u1="Ê" u2="V" k="16" /> +<hkern u1="Ê" u2="4" k="-10" /> +<hkern u1="Ê" u2="/" k="51" /> +<hkern u1="Ë" u2="ð" k="10" /> +<hkern u1="Ë" u2="w" k="29" /> +<hkern u1="Ë" u2="v" k="31" /> +<hkern u1="Ë" u2="t" k="14" /> +<hkern u1="Ë" u2="r" k="33" /> +<hkern u1="Ë" u2="p" k="43" /> +<hkern u1="Ë" u2="m" k="33" /> +<hkern u1="Ë" u2="j" k="47" /> +<hkern u1="Ë" u2="W" k="14" /> +<hkern u1="Ë" u2="V" k="16" /> +<hkern u1="Ë" u2="4" k="-10" /> +<hkern u1="Ë" u2="/" k="51" /> +<hkern u1="Ì" u2="ð" k="41" /> +<hkern u1="Ì" u2="æ" k="23" /> +<hkern u1="Ì" u2="x" k="35" /> +<hkern u1="Ì" u2="w" k="43" /> +<hkern u1="Ì" u2="v" k="43" /> +<hkern u1="Ì" u2="t" k="49" /> +<hkern u1="Ì" u2="r" k="49" /> +<hkern u1="Ì" u2="p" k="57" /> +<hkern u1="Ì" u2="m" k="49" /> +<hkern u1="Ì" u2="j" k="49" /> +<hkern u1="Ì" u2="/" k="53" /> +<hkern u1="Ì" u2="*" k="20" /> +<hkern u1="Í" u2="ð" k="41" /> +<hkern u1="Í" u2="æ" k="23" /> +<hkern u1="Í" u2="x" k="35" /> +<hkern u1="Í" u2="w" k="43" /> +<hkern u1="Í" u2="v" k="43" /> +<hkern u1="Í" u2="t" k="49" /> +<hkern u1="Í" u2="r" k="49" /> +<hkern u1="Í" u2="p" k="57" /> +<hkern u1="Í" u2="m" k="49" /> +<hkern u1="Í" u2="j" k="49" /> +<hkern u1="Í" u2="/" k="53" /> +<hkern u1="Í" u2="*" k="20" /> +<hkern u1="Î" u2="ð" k="41" /> +<hkern u1="Î" u2="æ" k="23" /> +<hkern u1="Î" u2="x" k="35" /> +<hkern u1="Î" u2="w" k="43" /> +<hkern u1="Î" u2="v" k="43" /> +<hkern u1="Î" u2="t" k="49" /> +<hkern u1="Î" u2="r" k="49" /> +<hkern u1="Î" u2="p" k="57" /> +<hkern u1="Î" u2="m" k="49" /> +<hkern u1="Î" u2="j" k="49" /> +<hkern u1="Î" u2="/" k="53" /> +<hkern u1="Î" u2="*" k="20" /> +<hkern u1="Ï" u2="ð" k="41" /> +<hkern u1="Ï" u2="æ" k="23" /> +<hkern u1="Ï" u2="x" k="35" /> +<hkern u1="Ï" u2="w" k="43" /> +<hkern u1="Ï" u2="v" k="43" /> +<hkern u1="Ï" u2="t" k="49" /> +<hkern u1="Ï" u2="r" k="49" /> +<hkern u1="Ï" u2="p" k="57" /> +<hkern u1="Ï" u2="m" k="49" /> +<hkern u1="Ï" u2="j" k="49" /> +<hkern u1="Ï" u2="/" k="53" /> +<hkern u1="Ï" u2="*" k="20" /> +<hkern u1="Ð" u2="æ" k="10" /> +<hkern u1="Ð" u2="Æ" k="68" /> +<hkern u1="Ð" u2="}" k="53" /> +<hkern u1="Ð" u2="x" k="29" /> +<hkern u1="Ð" u2="k" k="10" /> +<hkern u1="Ð" u2="b" k="10" /> +<hkern u1="Ð" u2="]" k="104" /> +<hkern u1="Ð" u2="\" k="55" /> +<hkern u1="Ð" u2="X" k="74" /> +<hkern u1="Ð" u2="W" k="51" /> +<hkern u1="Ð" u2="V" k="55" /> +<hkern u1="Ð" u2="M" k="29" /> +<hkern u1="Ð" u2="J" k="18" /> +<hkern u1="Ð" u2="/" k="139" /> +<hkern u1="Ð" u2=")" k="51" /> +<hkern u1="Ñ" u2="þ" k="-27" /> +<hkern u1="Ñ" u2="ð" k="39" /> +<hkern u1="Ñ" u2="æ" k="47" /> +<hkern u1="Ñ" u2="Æ" k="23" /> +<hkern u1="Ñ" u2="}" k="-20" /> +<hkern u1="Ñ" u2="x" k="37" /> +<hkern u1="Ñ" u2="w" k="33" /> +<hkern u1="Ñ" u2="v" k="31" /> +<hkern u1="Ñ" u2="t" k="43" /> +<hkern u1="Ñ" u2="r" k="45" /> +<hkern u1="Ñ" u2="p" k="49" /> +<hkern u1="Ñ" u2="m" k="45" /> +<hkern u1="Ñ" u2="j" k="39" /> +<hkern u1="Ñ" u2="b" k="-27" /> +<hkern u1="Ñ" u2="]" k="-29" /> +<hkern u1="Ñ" u2="J" k="10" /> +<hkern u1="Ñ" u2=";" k="20" /> +<hkern u1="Ñ" u2=":" k="18" /> +<hkern u1="Ñ" u2="/" k="90" /> +<hkern u1="Ò" u2="æ" k="8" /> +<hkern u1="Ò" u2="Æ" k="53" /> +<hkern u1="Ò" u2="}" k="49" /> +<hkern u1="Ò" u2="x" k="29" /> +<hkern u1="Ò" u2="k" k="10" /> +<hkern u1="Ò" u2="b" k="10" /> +<hkern u1="Ò" u2="]" k="94" /> +<hkern u1="Ò" u2="\" k="49" /> +<hkern u1="Ò" u2="X" k="66" /> +<hkern u1="Ò" u2="W" k="45" /> +<hkern u1="Ò" u2="V" k="49" /> +<hkern u1="Ò" u2="M" k="25" /> +<hkern u1="Ò" u2="J" k="12" /> +<hkern u1="Ò" u2="4" k="-10" /> +<hkern u1="Ò" u2="/" k="131" /> +<hkern u1="Ò" u2=")" k="49" /> +<hkern u1="Ó" u2="æ" k="8" /> +<hkern u1="Ó" u2="Æ" k="53" /> +<hkern u1="Ó" u2="}" k="49" /> +<hkern u1="Ó" u2="x" k="29" /> +<hkern u1="Ó" u2="k" k="10" /> +<hkern u1="Ó" u2="b" k="10" /> +<hkern u1="Ó" u2="]" k="94" /> +<hkern u1="Ó" u2="\" k="49" /> +<hkern u1="Ó" u2="X" k="66" /> +<hkern u1="Ó" u2="W" k="45" /> +<hkern u1="Ó" u2="V" k="49" /> +<hkern u1="Ó" u2="M" k="25" /> +<hkern u1="Ó" u2="J" k="12" /> +<hkern u1="Ó" u2="4" k="-10" /> +<hkern u1="Ó" u2="/" k="131" /> +<hkern u1="Ó" u2=")" k="49" /> +<hkern u1="Ô" u2="æ" k="8" /> +<hkern u1="Ô" u2="Æ" k="53" /> +<hkern u1="Ô" u2="}" k="49" /> +<hkern u1="Ô" u2="x" k="29" /> +<hkern u1="Ô" u2="k" k="10" /> +<hkern u1="Ô" u2="b" k="10" /> +<hkern u1="Ô" u2="]" k="94" /> +<hkern u1="Ô" u2="\" k="49" /> +<hkern u1="Ô" u2="X" k="66" /> +<hkern u1="Ô" u2="W" k="45" /> +<hkern u1="Ô" u2="V" k="49" /> +<hkern u1="Ô" u2="M" k="25" /> +<hkern u1="Ô" u2="J" k="12" /> +<hkern u1="Ô" u2="4" k="-10" /> +<hkern u1="Ô" u2="/" k="131" /> +<hkern u1="Ô" u2=")" k="49" /> +<hkern u1="Õ" u2="æ" k="8" /> +<hkern u1="Õ" u2="Æ" k="53" /> +<hkern u1="Õ" u2="}" k="49" /> +<hkern u1="Õ" u2="x" k="29" /> +<hkern u1="Õ" u2="k" k="10" /> +<hkern u1="Õ" u2="b" k="10" /> +<hkern u1="Õ" u2="]" k="94" /> +<hkern u1="Õ" u2="\" k="49" /> +<hkern u1="Õ" u2="X" k="66" /> +<hkern u1="Õ" u2="W" k="45" /> +<hkern u1="Õ" u2="V" k="49" /> +<hkern u1="Õ" u2="M" k="25" /> +<hkern u1="Õ" u2="J" k="12" /> +<hkern u1="Õ" u2="4" k="-10" /> +<hkern u1="Õ" u2="/" k="131" /> +<hkern u1="Õ" u2=")" k="49" /> +<hkern u1="Ö" u2="æ" k="8" /> +<hkern u1="Ö" u2="Æ" k="53" /> +<hkern u1="Ö" u2="}" k="49" /> +<hkern u1="Ö" u2="x" k="29" /> +<hkern u1="Ö" u2="k" k="10" /> +<hkern u1="Ö" u2="b" k="10" /> +<hkern u1="Ö" u2="]" k="94" /> +<hkern u1="Ö" u2="\" k="49" /> +<hkern u1="Ö" u2="X" k="66" /> +<hkern u1="Ö" u2="W" k="45" /> +<hkern u1="Ö" u2="V" k="49" /> +<hkern u1="Ö" u2="M" k="25" /> +<hkern u1="Ö" u2="J" k="12" /> +<hkern u1="Ö" u2="4" k="-10" /> +<hkern u1="Ö" u2="/" k="131" /> +<hkern u1="Ö" u2=")" k="49" /> +<hkern u1="Ø" u2="æ" k="8" /> +<hkern u1="Ø" u2="Æ" k="53" /> +<hkern u1="Ø" u2="}" k="49" /> +<hkern u1="Ø" u2="x" k="29" /> +<hkern u1="Ø" u2="k" k="10" /> +<hkern u1="Ø" u2="b" k="10" /> +<hkern u1="Ø" u2="]" k="94" /> +<hkern u1="Ø" u2="\" k="49" /> +<hkern u1="Ø" u2="X" k="66" /> +<hkern u1="Ø" u2="W" k="45" /> +<hkern u1="Ø" u2="V" k="49" /> +<hkern u1="Ø" u2="M" k="25" /> +<hkern u1="Ø" u2="J" k="12" /> +<hkern u1="Ø" u2="4" k="-10" /> +<hkern u1="Ø" u2="/" k="131" /> +<hkern u1="Ø" u2=")" k="49" /> +<hkern u1="Ù" u2="™" k="-14" /> +<hkern u1="Ù" u2="þ" k="-51" /> +<hkern u1="Ù" u2="ð" k="31" /> +<hkern u1="Ù" u2="ï" k="-25" /> +<hkern u1="Ù" u2="î" k="2" /> +<hkern u1="Ù" u2="æ" k="53" /> +<hkern u1="Ù" u2="Æ" k="82" /> +<hkern u1="Ù" u2="}" k="-45" /> +<hkern u1="Ù" u2="x" k="37" /> +<hkern u1="Ù" u2="w" k="18" /> +<hkern u1="Ù" u2="v" k="14" /> +<hkern u1="Ù" u2="t" k="33" /> +<hkern u1="Ù" u2="r" k="35" /> +<hkern u1="Ù" u2="p" k="37" /> +<hkern u1="Ù" u2="m" k="35" /> +<hkern u1="Ù" u2="k" k="-20" /> +<hkern u1="Ù" u2="j" k="27" /> +<hkern u1="Ù" u2="b" k="-51" /> +<hkern u1="Ù" u2="]" k="-53" /> +<hkern u1="Ù" u2="\" k="-23" /> +<hkern u1="Ù" u2="J" k="23" /> +<hkern u1="Ù" u2=";" k="23" /> +<hkern u1="Ù" u2=":" k="20" /> +<hkern u1="Ù" u2="7" k="-29" /> +<hkern u1="Ù" u2="/" k="150" /> +<hkern u1="Ú" u2="™" k="-14" /> +<hkern u1="Ú" u2="þ" k="-51" /> +<hkern u1="Ú" u2="ð" k="31" /> +<hkern u1="Ú" u2="ï" k="-25" /> +<hkern u1="Ú" u2="î" k="2" /> +<hkern u1="Ú" u2="æ" k="53" /> +<hkern u1="Ú" u2="Æ" k="82" /> +<hkern u1="Ú" u2="}" k="-45" /> +<hkern u1="Ú" u2="x" k="37" /> +<hkern u1="Ú" u2="w" k="18" /> +<hkern u1="Ú" u2="v" k="14" /> +<hkern u1="Ú" u2="t" k="33" /> +<hkern u1="Ú" u2="r" k="35" /> +<hkern u1="Ú" u2="p" k="37" /> +<hkern u1="Ú" u2="m" k="35" /> +<hkern u1="Ú" u2="k" k="-20" /> +<hkern u1="Ú" u2="j" k="27" /> +<hkern u1="Ú" u2="b" k="-51" /> +<hkern u1="Ú" u2="]" k="-53" /> +<hkern u1="Ú" u2="\" k="-23" /> +<hkern u1="Ú" u2="J" k="23" /> +<hkern u1="Ú" u2=";" k="23" /> +<hkern u1="Ú" u2=":" k="20" /> +<hkern u1="Ú" u2="7" k="-29" /> +<hkern u1="Ú" u2="/" k="150" /> +<hkern u1="Û" u2="™" k="-14" /> +<hkern u1="Û" u2="þ" k="-51" /> +<hkern u1="Û" u2="ð" k="31" /> +<hkern u1="Û" u2="ï" k="-25" /> +<hkern u1="Û" u2="î" k="2" /> +<hkern u1="Û" u2="æ" k="53" /> +<hkern u1="Û" u2="Æ" k="82" /> +<hkern u1="Û" u2="}" k="-45" /> +<hkern u1="Û" u2="x" k="37" /> +<hkern u1="Û" u2="w" k="18" /> +<hkern u1="Û" u2="v" k="14" /> +<hkern u1="Û" u2="t" k="33" /> +<hkern u1="Û" u2="r" k="35" /> +<hkern u1="Û" u2="p" k="37" /> +<hkern u1="Û" u2="m" k="35" /> +<hkern u1="Û" u2="k" k="-20" /> +<hkern u1="Û" u2="j" k="27" /> +<hkern u1="Û" u2="b" k="-51" /> +<hkern u1="Û" u2="]" k="-53" /> +<hkern u1="Û" u2="\" k="-23" /> +<hkern u1="Û" u2="J" k="23" /> +<hkern u1="Û" u2=";" k="23" /> +<hkern u1="Û" u2=":" k="20" /> +<hkern u1="Û" u2="7" k="-29" /> +<hkern u1="Û" u2="/" k="150" /> +<hkern u1="Ü" u2="™" k="-14" /> +<hkern u1="Ü" u2="þ" k="-51" /> +<hkern u1="Ü" u2="ð" k="31" /> +<hkern u1="Ü" u2="ï" k="-25" /> +<hkern u1="Ü" u2="î" k="2" /> +<hkern u1="Ü" u2="æ" k="53" /> +<hkern u1="Ü" u2="Æ" k="82" /> +<hkern u1="Ü" u2="}" k="-45" /> +<hkern u1="Ü" u2="x" k="37" /> +<hkern u1="Ü" u2="w" k="18" /> +<hkern u1="Ü" u2="v" k="14" /> +<hkern u1="Ü" u2="t" k="33" /> +<hkern u1="Ü" u2="r" k="35" /> +<hkern u1="Ü" u2="p" k="37" /> +<hkern u1="Ü" u2="m" k="35" /> +<hkern u1="Ü" u2="k" k="-20" /> +<hkern u1="Ü" u2="j" k="27" /> +<hkern u1="Ü" u2="b" k="-51" /> +<hkern u1="Ü" u2="]" k="-53" /> +<hkern u1="Ü" u2="\" k="-23" /> +<hkern u1="Ü" u2="J" k="23" /> +<hkern u1="Ü" u2=";" k="23" /> +<hkern u1="Ü" u2=":" k="20" /> +<hkern u1="Ü" u2="7" k="-29" /> +<hkern u1="Ü" u2="/" k="150" /> +<hkern u1="Ý" u2="™" k="-53" /> +<hkern u1="Ý" u2="þ" k="-90" /> +<hkern u1="Ý" u2="ö" k="123" /> +<hkern u1="Ý" u2="õ" k="115" /> +<hkern u1="Ý" u2="ô" k="147" /> +<hkern u1="Ý" u2="ð" k="35" /> +<hkern u1="Ý" u2="ï" k="-66" /> +<hkern u1="Ý" u2="î" k="-37" /> +<hkern u1="Ý" u2="ì" k="-2" /> +<hkern u1="Ý" u2="ë" k="147" /> +<hkern u1="Ý" u2="ê" k="133" /> +<hkern u1="Ý" u2="æ" k="162" /> +<hkern u1="Ý" u2="Æ" k="127" /> +<hkern u1="Ý" u2="®" k="47" /> +<hkern u1="Ý" u2="}" k="-84" /> +<hkern u1="Ý" u2="x" k="137" /> +<hkern u1="Ý" u2="w" k="133" /> +<hkern u1="Ý" u2="v" k="129" /> +<hkern u1="Ý" u2="t" k="86" /> +<hkern u1="Ý" u2="r" k="139" /> +<hkern u1="Ý" u2="p" k="141" /> +<hkern u1="Ý" u2="m" k="139" /> +<hkern u1="Ý" u2="k" k="-57" /> +<hkern u1="Ý" u2="j" k="49" /> +<hkern u1="Ý" u2="b" k="-90" /> +<hkern u1="Ý" u2="]" k="-90" /> +<hkern u1="Ý" u2="\" k="-53" /> +<hkern u1="Ý" u2="X" k="-25" /> +<hkern u1="Ý" u2="W" k="-25" /> +<hkern u1="Ý" u2="V" k="-49" /> +<hkern u1="Ý" u2="T" k="-25" /> +<hkern u1="Ý" u2="J" k="47" /> +<hkern u1="Ý" u2="@" k="84" /> +<hkern u1="Ý" u2=";" k="66" /> +<hkern u1="Ý" u2=":" k="61" /> +<hkern u1="Ý" u2="8" k="23" /> +<hkern u1="Ý" u2="7" k="-68" /> +<hkern u1="Ý" u2="6" k="39" /> +<hkern u1="Ý" u2="4" k="96" /> +<hkern u1="Ý" u2="0" k="39" /> +<hkern u1="Ý" u2="/" k="166" /> +<hkern u1="Ý" u2=")" k="-39" /> +<hkern u1="Ý" u2="&" k="25" /> +<hkern u1="Þ" u2="…" k="117" /> +<hkern u1="Þ" u2="„" k="117" /> +<hkern u1="Þ" u2="‚" k="117" /> +<hkern u1="Þ" u2="Ÿ" k="72" /> +<hkern u1="Þ" u2="ÿ" k="-35" /> +<hkern u1="Þ" u2="ý" k="-35" /> +<hkern u1="Þ" u2="ü" k="-23" /> +<hkern u1="Þ" u2="û" k="-23" /> +<hkern u1="Þ" u2="ú" k="-23" /> +<hkern u1="Þ" u2="ù" k="-23" /> +<hkern u1="Þ" u2="ï" k="-14" /> +<hkern u1="Þ" u2="î" k="-14" /> +<hkern u1="Þ" u2="í" k="-14" /> +<hkern u1="Þ" u2="ì" k="-14" /> +<hkern u1="Þ" u2="Þ" k="29" /> +<hkern u1="Þ" u2="Ý" k="72" /> +<hkern u1="Þ" u2="Ü" k="10" /> +<hkern u1="Þ" u2="Û" k="10" /> +<hkern u1="Þ" u2="Ú" k="10" /> +<hkern u1="Þ" u2="Ù" k="10" /> +<hkern u1="Þ" u2="Ñ" k="29" /> +<hkern u1="Þ" u2="Ð" k="10" /> +<hkern u1="Þ" u2="Ï" k="29" /> +<hkern u1="Þ" u2="Î" k="29" /> +<hkern u1="Þ" u2="Í" k="29" /> +<hkern u1="Þ" u2="Ì" k="29" /> +<hkern u1="Þ" u2="Ë" k="29" /> +<hkern u1="Þ" u2="Ê" k="29" /> +<hkern u1="Þ" u2="É" k="29" /> +<hkern u1="Þ" u2="È" k="29" /> +<hkern u1="Þ" u2="Æ" k="92" /> +<hkern u1="Þ" u2="Å" k="66" /> +<hkern u1="Þ" u2="Ä" k="66" /> +<hkern u1="Þ" u2="Ã" k="66" /> +<hkern u1="Þ" u2="Â" k="66" /> +<hkern u1="Þ" u2="Á" k="66" /> +<hkern u1="Þ" u2="À" k="66" /> +<hkern u1="Þ" u2="}" k="43" /> +<hkern u1="Þ" u2="y" k="-35" /> +<hkern u1="Þ" u2="x" k="20" /> +<hkern u1="Þ" u2="w" k="-25" /> +<hkern u1="Þ" u2="v" k="-29" /> +<hkern u1="Þ" u2="u" k="-23" /> +<hkern u1="Þ" u2="i" k="-14" /> +<hkern u1="Þ" u2="]" k="100" /> +<hkern u1="Þ" u2="\" k="55" /> +<hkern u1="Þ" u2="Y" k="72" /> +<hkern u1="Þ" u2="X" k="127" /> +<hkern u1="Þ" u2="W" k="49" /> +<hkern u1="Þ" u2="V" k="55" /> +<hkern u1="Þ" u2="U" k="10" /> +<hkern u1="Þ" u2="R" k="29" /> +<hkern u1="Þ" u2="P" k="29" /> +<hkern u1="Þ" u2="N" k="29" /> +<hkern u1="Þ" u2="M" k="29" /> +<hkern u1="Þ" u2="L" k="29" /> +<hkern u1="Þ" u2="K" k="29" /> +<hkern u1="Þ" u2="J" k="51" /> +<hkern u1="Þ" u2="I" k="29" /> +<hkern u1="Þ" u2="H" k="29" /> +<hkern u1="Þ" u2="F" k="29" /> +<hkern u1="Þ" u2="E" k="29" /> +<hkern u1="Þ" u2="D" k="29" /> +<hkern u1="Þ" u2="B" k="29" /> +<hkern u1="Þ" u2="A" k="66" /> +<hkern u1="Þ" u2="/" k="150" /> +<hkern u1="Þ" u2="." k="117" /> +<hkern u1="Þ" u2="," k="117" /> +<hkern u1="Þ" u2=")" k="45" /> +<hkern u1="ß" u2="fl" k="14" /> +<hkern u1="ß" u2="fi" k="14" /> +<hkern u1="ß" u2="™" k="18" /> +<hkern u1="ß" u2="”" k="31" /> +<hkern u1="ß" u2="“" k="29" /> +<hkern u1="ß" u2="’" k="31" /> +<hkern u1="ß" u2="‘" k="29" /> +<hkern u1="ß" u2="—" k="31" /> +<hkern u1="ß" u2="–" k="31" /> +<hkern u1="ß" u2="ÿ" k="78" /> +<hkern u1="ß" u2="ý" k="78" /> +<hkern u1="ß" u2="ü" k="18" /> +<hkern u1="ß" u2="û" k="18" /> +<hkern u1="ß" u2="ú" k="18" /> +<hkern u1="ß" u2="ù" k="18" /> +<hkern u1="ß" u2="ñ" k="23" /> +<hkern u1="ß" u2="ï" k="16" /> +<hkern u1="ß" u2="î" k="16" /> +<hkern u1="ß" u2="í" k="16" /> +<hkern u1="ß" u2="ì" k="16" /> +<hkern u1="ß" u2="ß" k="14" /> +<hkern u1="ß" u2="­" k="31" /> +<hkern u1="ß" u2="}" k="37" /> +<hkern u1="ß" u2="y" k="78" /> +<hkern u1="ß" u2="x" k="14" /> +<hkern u1="ß" u2="w" k="20" /> +<hkern u1="ß" u2="v" k="23" /> +<hkern u1="ß" u2="u" k="18" /> +<hkern u1="ß" u2="t" k="12" /> +<hkern u1="ß" u2="r" k="23" /> +<hkern u1="ß" u2="p" k="41" /> +<hkern u1="ß" u2="n" k="23" /> +<hkern u1="ß" u2="m" k="23" /> +<hkern u1="ß" u2="j" k="43" /> +<hkern u1="ß" u2="i" k="16" /> +<hkern u1="ß" u2="f" k="14" /> +<hkern u1="ß" u2="]" k="49" /> +<hkern u1="ß" u2="\" k="23" /> +<hkern u1="ß" u2="/" k="68" /> +<hkern u1="ß" u2="-" k="31" /> +<hkern u1="ß" u2="*" k="25" /> +<hkern u1="ß" u2=")" k="39" /> +<hkern u1="ß" u2="'" k="29" /> +<hkern u1="ß" u2=""" k="29" /> +<hkern u1="à" u2="™" k="43" /> +<hkern u1="à" u2="}" k="33" /> +<hkern u1="à" u2="]" k="100" /> +<hkern u1="à" u2="\" k="113" /> +<hkern u1="à" u2="W" k="102" /> +<hkern u1="à" u2="V" k="121" /> +<hkern u1="à" u2="T" k="66" /> +<hkern u1="à" u2="J" k="-29" /> +<hkern u1="à" u2="/" k="41" /> +<hkern u1="à" u2="*" k="16" /> +<hkern u1="à" u2=")" k="35" /> +<hkern u1="à" u2="&" k="-25" /> +<hkern u1="á" u2="™" k="43" /> +<hkern u1="á" u2="}" k="33" /> +<hkern u1="á" u2="]" k="100" /> +<hkern u1="á" u2="\" k="113" /> +<hkern u1="á" u2="W" k="102" /> +<hkern u1="á" u2="V" k="121" /> +<hkern u1="á" u2="T" k="66" /> +<hkern u1="á" u2="J" k="-29" /> +<hkern u1="á" u2="/" k="41" /> +<hkern u1="á" u2="*" k="16" /> +<hkern u1="á" u2=")" k="35" /> +<hkern u1="á" u2="&" k="-25" /> +<hkern u1="â" u2="™" k="43" /> +<hkern u1="â" u2="}" k="33" /> +<hkern u1="â" u2="]" k="100" /> +<hkern u1="â" u2="\" k="113" /> +<hkern u1="â" u2="W" k="102" /> +<hkern u1="â" u2="V" k="121" /> +<hkern u1="â" u2="T" k="66" /> +<hkern u1="â" u2="J" k="-29" /> +<hkern u1="â" u2="/" k="41" /> +<hkern u1="â" u2="*" k="16" /> +<hkern u1="â" u2=")" k="35" /> +<hkern u1="â" u2="&" k="-25" /> +<hkern u1="ã" u2="™" k="43" /> +<hkern u1="ã" u2="}" k="33" /> +<hkern u1="ã" u2="]" k="33" /> +<hkern u1="ã" u2="\" k="88" /> +<hkern u1="ã" u2="W" k="102" /> +<hkern u1="ã" u2="V" k="121" /> +<hkern u1="ã" u2="T" k="66" /> +<hkern u1="ã" u2="J" k="-29" /> +<hkern u1="ã" u2="/" k="41" /> +<hkern u1="ã" u2="*" k="16" /> +<hkern u1="ã" u2=")" k="35" /> +<hkern u1="ã" u2="&" k="-25" /> +<hkern u1="ä" u2="™" k="43" /> +<hkern u1="ä" u2="}" k="33" /> +<hkern u1="ä" u2="]" k="51" /> +<hkern u1="ä" u2="\" k="92" /> +<hkern u1="ä" u2="W" k="102" /> +<hkern u1="ä" u2="V" k="121" /> +<hkern u1="ä" u2="T" k="66" /> +<hkern u1="ä" u2="J" k="-29" /> +<hkern u1="ä" u2="/" k="41" /> +<hkern u1="ä" u2="*" k="16" /> +<hkern u1="ä" u2=")" k="35" /> +<hkern u1="ä" u2="&" k="-25" /> +<hkern u1="å" u2="™" k="43" /> +<hkern u1="å" u2="}" k="33" /> +<hkern u1="å" u2="]" k="100" /> +<hkern u1="å" u2="\" k="113" /> +<hkern u1="å" u2="W" k="102" /> +<hkern u1="å" u2="V" k="121" /> +<hkern u1="å" u2="T" k="66" /> +<hkern u1="å" u2="J" k="-29" /> +<hkern u1="å" u2="/" k="41" /> +<hkern u1="å" u2="*" k="16" /> +<hkern u1="å" u2=")" k="35" /> +<hkern u1="å" u2="&" k="-25" /> +<hkern u1="æ" u2="™" k="70" /> +<hkern u1="æ" u2="}" k="57" /> +<hkern u1="æ" u2="x" k="12" /> +<hkern u1="æ" u2="]" k="127" /> +<hkern u1="æ" u2="\" k="115" /> +<hkern u1="æ" u2="X" k="55" /> +<hkern u1="æ" u2="W" k="133" /> +<hkern u1="æ" u2="V" k="154" /> +<hkern u1="æ" u2="T" k="49" /> +<hkern u1="æ" u2="M" k="37" /> +<hkern u1="æ" u2="?" k="33" /> +<hkern u1="æ" u2="/" k="86" /> +<hkern u1="æ" u2="*" k="18" /> +<hkern u1="æ" u2=")" k="61" /> +<hkern u1="ç" u2="fl" k="-41" /> +<hkern u1="ç" u2="fi" k="-41" /> +<hkern u1="ç" u2="™" k="37" /> +<hkern u1="ç" u2="ß" k="-41" /> +<hkern u1="ç" u2="}" k="49" /> +<hkern u1="ç" u2="x" k="14" /> +<hkern u1="ç" u2="j" k="-29" /> +<hkern u1="ç" u2="f" k="-41" /> +<hkern u1="ç" u2="]" k="117" /> +<hkern u1="ç" u2="\" k="104" /> +<hkern u1="ç" u2="X" k="80" /> +<hkern u1="ç" u2="W" k="123" /> +<hkern u1="ç" u2="V" k="141" /> +<hkern u1="ç" u2="T" k="43" /> +<hkern u1="ç" u2="M" k="49" /> +<hkern u1="ç" u2="?" k="25" /> +<hkern u1="ç" u2="/" k="82" /> +<hkern u1="ç" u2=")" k="51" /> +<hkern u1="è" u2="™" k="70" /> +<hkern u1="è" u2="}" k="57" /> +<hkern u1="è" u2="x" k="12" /> +<hkern u1="è" u2="]" k="127" /> +<hkern u1="è" u2="\" k="115" /> +<hkern u1="è" u2="X" k="55" /> +<hkern u1="è" u2="W" k="133" /> +<hkern u1="è" u2="V" k="154" /> +<hkern u1="è" u2="T" k="49" /> +<hkern u1="è" u2="M" k="37" /> +<hkern u1="è" u2="?" k="33" /> +<hkern u1="è" u2="/" k="86" /> +<hkern u1="è" u2="*" k="18" /> +<hkern u1="è" u2=")" k="61" /> +<hkern u1="é" u2="™" k="70" /> +<hkern u1="é" u2="}" k="57" /> +<hkern u1="é" u2="x" k="12" /> +<hkern u1="é" u2="]" k="47" /> +<hkern u1="é" u2="\" k="102" /> +<hkern u1="é" u2="X" k="55" /> +<hkern u1="é" u2="W" k="133" /> +<hkern u1="é" u2="V" k="154" /> +<hkern u1="é" u2="T" k="49" /> +<hkern u1="é" u2="M" k="37" /> +<hkern u1="é" u2="?" k="33" /> +<hkern u1="é" u2="/" k="86" /> +<hkern u1="é" u2="*" k="18" /> +<hkern u1="é" u2=")" k="61" /> +<hkern u1="ê" u2="™" k="70" /> +<hkern u1="ê" u2="}" k="57" /> +<hkern u1="ê" u2="x" k="12" /> +<hkern u1="ê" u2="]" k="127" /> +<hkern u1="ê" u2="\" k="115" /> +<hkern u1="ê" u2="X" k="55" /> +<hkern u1="ê" u2="W" k="133" /> +<hkern u1="ê" u2="V" k="154" /> +<hkern u1="ê" u2="T" k="49" /> +<hkern u1="ê" u2="M" k="37" /> +<hkern u1="ê" u2="?" k="33" /> +<hkern u1="ê" u2="/" k="86" /> +<hkern u1="ê" u2="*" k="18" /> +<hkern u1="ê" u2=")" k="61" /> +<hkern u1="ë" u2="™" k="70" /> +<hkern u1="ë" u2="}" k="39" /> +<hkern u1="ë" u2="x" k="12" /> +<hkern u1="ë" u2="]" k="29" /> +<hkern u1="ë" u2="\" k="70" /> +<hkern u1="ë" u2="X" k="55" /> +<hkern u1="ë" u2="W" k="133" /> +<hkern u1="ë" u2="V" k="154" /> +<hkern u1="ë" u2="T" k="49" /> +<hkern u1="ë" u2="M" k="37" /> +<hkern u1="ë" u2="?" k="33" /> +<hkern u1="ë" u2="/" k="86" /> +<hkern u1="ë" u2="*" k="18" /> +<hkern u1="ë" u2=")" k="61" /> +<hkern u1="ì" u2="™" k="27" /> +<hkern u1="ì" u2="}" k="20" /> +<hkern u1="ì" u2="]" k="35" /> +<hkern u1="ì" u2="W" k="70" /> +<hkern u1="ì" u2="V" k="68" /> +<hkern u1="ì" u2="T" k="57" /> +<hkern u1="ì" u2="M" k="8" /> +<hkern u1="ì" u2="J" k="-18" /> +<hkern u1="ì" u2="?" k="20" /> +<hkern u1="ì" u2="/" k="51" /> +<hkern u1="ì" u2="*" k="35" /> +<hkern u1="ì" u2=")" k="25" /> +<hkern u1="ì" u2="&" k="-14" /> +<hkern u1="í" u2="™" k="27" /> +<hkern u1="í" u2="}" k="20" /> +<hkern u1="í" u2="]" k="12" /> +<hkern u1="í" u2="W" k="70" /> +<hkern u1="í" u2="V" k="68" /> +<hkern u1="í" u2="T" k="57" /> +<hkern u1="í" u2="M" k="8" /> +<hkern u1="í" u2="J" k="-18" /> +<hkern u1="í" u2="?" k="20" /> +<hkern u1="í" u2="/" k="51" /> +<hkern u1="í" u2="*" k="35" /> +<hkern u1="í" u2=")" k="25" /> +<hkern u1="í" u2="&" k="-14" /> +<hkern u1="î" u2="™" k="-8" /> +<hkern u1="î" u2="}" k="20" /> +<hkern u1="î" u2="]" k="35" /> +<hkern u1="î" u2="W" k="70" /> +<hkern u1="î" u2="V" k="68" /> +<hkern u1="î" u2="T" k="57" /> +<hkern u1="î" u2="M" k="8" /> +<hkern u1="î" u2="J" k="-18" /> +<hkern u1="î" u2="?" k="20" /> +<hkern u1="î" u2="/" k="51" /> +<hkern u1="î" u2="*" k="35" /> +<hkern u1="î" u2=")" k="25" /> +<hkern u1="î" u2="&" k="-14" /> +<hkern u1="ï" u2="™" k="27" /> +<hkern u1="ï" u2="}" k="-6" /> +<hkern u1="ï" u2="]" k="-16" /> +<hkern u1="ï" u2="W" k="70" /> +<hkern u1="ï" u2="V" k="68" /> +<hkern u1="ï" u2="T" k="57" /> +<hkern u1="ï" u2="M" k="8" /> +<hkern u1="ï" u2="J" k="-18" /> +<hkern u1="ï" u2="?" k="20" /> +<hkern u1="ï" u2="/" k="51" /> +<hkern u1="ï" u2="*" k="35" /> +<hkern u1="ï" u2=")" k="25" /> +<hkern u1="ï" u2="&" k="-14" /> +<hkern u1="ð" u2="™" k="33" /> +<hkern u1="ð" u2="”" k="35" /> +<hkern u1="ð" u2="“" k="29" /> +<hkern u1="ð" u2="’" k="35" /> +<hkern u1="ð" u2="‘" k="29" /> +<hkern u1="ð" u2="}" k="59" /> +<hkern u1="ð" u2="x" k="12" /> +<hkern u1="ð" u2="]" k="106" /> +<hkern u1="ð" u2="\" k="72" /> +<hkern u1="ð" u2="?" k="25" /> +<hkern u1="ð" u2="/" k="117" /> +<hkern u1="ð" u2="*" k="16" /> +<hkern u1="ð" u2=")" k="59" /> +<hkern u1="ð" u2="'" k="35" /> +<hkern u1="ð" u2=""" k="35" /> +<hkern u1="ñ" u2="™" k="35" /> +<hkern u1="ñ" u2="”" k="31" /> +<hkern u1="ñ" u2="“" k="41" /> +<hkern u1="ñ" u2="’" k="31" /> +<hkern u1="ñ" u2="‘" k="41" /> +<hkern u1="ñ" u2="—" k="25" /> +<hkern u1="ñ" u2="–" k="25" /> +<hkern u1="ñ" u2="­" k="25" /> +<hkern u1="ñ" u2="}" k="20" /> +<hkern u1="ñ" u2="]" k="39" /> +<hkern u1="ñ" u2="\" k="23" /> +<hkern u1="ñ" u2="?" k="29" /> +<hkern u1="ñ" u2="/" k="47" /> +<hkern u1="ñ" u2="-" k="25" /> +<hkern u1="ñ" u2="*" k="41" /> +<hkern u1="ñ" u2=")" k="25" /> +<hkern u1="ñ" u2="'" k="37" /> +<hkern u1="ñ" u2="&" k="-20" /> +<hkern u1="ñ" u2=""" k="37" /> +<hkern u1="ò" u2="™" k="43" /> +<hkern u1="ò" u2="}" k="68" /> +<hkern u1="ò" u2="x" k="18" /> +<hkern u1="ò" u2="]" k="129" /> +<hkern u1="ò" u2="\" k="133" /> +<hkern u1="ò" u2="X" k="86" /> +<hkern u1="ò" u2="W" k="133" /> +<hkern u1="ò" u2="V" k="160" /> +<hkern u1="ò" u2="T" k="88" /> +<hkern u1="ò" u2="M" k="49" /> +<hkern u1="ò" u2="?" k="43" /> +<hkern u1="ò" u2="/" k="113" /> +<hkern u1="ò" u2="*" k="18" /> +<hkern u1="ò" u2=")" k="70" /> +<hkern u1="ó" u2="™" k="43" /> +<hkern u1="ó" u2="}" k="68" /> +<hkern u1="ó" u2="x" k="18" /> +<hkern u1="ó" u2="]" k="119" /> +<hkern u1="ó" u2="\" k="133" /> +<hkern u1="ó" u2="X" k="86" /> +<hkern u1="ó" u2="W" k="133" /> +<hkern u1="ó" u2="V" k="160" /> +<hkern u1="ó" u2="T" k="88" /> +<hkern u1="ó" u2="M" k="49" /> +<hkern u1="ó" u2="?" k="43" /> +<hkern u1="ó" u2="/" k="113" /> +<hkern u1="ó" u2="*" k="18" /> +<hkern u1="ó" u2=")" k="70" /> +<hkern u1="ô" u2="™" k="43" /> +<hkern u1="ô" u2="}" k="68" /> +<hkern u1="ô" u2="x" k="18" /> +<hkern u1="ô" u2="]" k="129" /> +<hkern u1="ô" u2="\" k="133" /> +<hkern u1="ô" u2="X" k="86" /> +<hkern u1="ô" u2="W" k="133" /> +<hkern u1="ô" u2="V" k="160" /> +<hkern u1="ô" u2="T" k="88" /> +<hkern u1="ô" u2="M" k="49" /> +<hkern u1="ô" u2="?" k="43" /> +<hkern u1="ô" u2="/" k="113" /> +<hkern u1="ô" u2="*" k="18" /> +<hkern u1="ô" u2=")" k="70" /> +<hkern u1="õ" u2="™" k="43" /> +<hkern u1="õ" u2="}" k="68" /> +<hkern u1="õ" u2="x" k="18" /> +<hkern u1="õ" u2="]" k="57" /> +<hkern u1="õ" u2="\" k="113" /> +<hkern u1="õ" u2="X" k="86" /> +<hkern u1="õ" u2="W" k="133" /> +<hkern u1="õ" u2="V" k="160" /> +<hkern u1="õ" u2="T" k="88" /> +<hkern u1="õ" u2="M" k="49" /> +<hkern u1="õ" u2="?" k="43" /> +<hkern u1="õ" u2="/" k="113" /> +<hkern u1="õ" u2="*" k="18" /> +<hkern u1="õ" u2=")" k="70" /> +<hkern u1="ö" u2="™" k="43" /> +<hkern u1="ö" u2="}" k="68" /> +<hkern u1="ö" u2="x" k="18" /> +<hkern u1="ö" u2="]" k="129" /> +<hkern u1="ö" u2="\" k="133" /> +<hkern u1="ö" u2="X" k="86" /> +<hkern u1="ö" u2="W" k="133" /> +<hkern u1="ö" u2="V" k="160" /> +<hkern u1="ö" u2="T" k="88" /> +<hkern u1="ö" u2="M" k="49" /> +<hkern u1="ö" u2="?" k="43" /> +<hkern u1="ö" u2="/" k="113" /> +<hkern u1="ö" u2="*" k="18" /> +<hkern u1="ö" u2=")" k="70" /> +<hkern u1="ø" u2="™" k="43" /> +<hkern u1="ø" u2="}" k="68" /> +<hkern u1="ø" u2="x" k="18" /> +<hkern u1="ø" u2="]" k="129" /> +<hkern u1="ø" u2="\" k="133" /> +<hkern u1="ø" u2="X" k="86" /> +<hkern u1="ø" u2="W" k="133" /> +<hkern u1="ø" u2="V" k="160" /> +<hkern u1="ø" u2="T" k="88" /> +<hkern u1="ø" u2="M" k="49" /> +<hkern u1="ø" u2="?" k="43" /> +<hkern u1="ø" u2="/" k="113" /> +<hkern u1="ø" u2="*" k="-12" /> +<hkern u1="ø" u2=")" k="70" /> +<hkern u1="ù" u2="™" k="43" /> +<hkern u1="ù" u2="}" k="41" /> +<hkern u1="ù" u2="]" k="109" /> +<hkern u1="ù" u2="\" k="119" /> +<hkern u1="ù" u2="W" k="111" /> +<hkern u1="ù" u2="V" k="129" /> +<hkern u1="ù" u2="T" k="72" /> +<hkern u1="ù" u2="J" k="-20" /> +<hkern u1="ù" u2="?" k="25" /> +<hkern u1="ù" u2="/" k="47" /> +<hkern u1="ù" u2="*" k="23" /> +<hkern u1="ù" u2=")" k="41" /> +<hkern u1="ù" u2="&" k="-16" /> +<hkern u1="ú" u2="™" k="43" /> +<hkern u1="ú" u2="}" k="41" /> +<hkern u1="ú" u2="]" k="109" /> +<hkern u1="ú" u2="\" k="119" /> +<hkern u1="ú" u2="W" k="111" /> +<hkern u1="ú" u2="V" k="129" /> +<hkern u1="ú" u2="T" k="72" /> +<hkern u1="ú" u2="J" k="-20" /> +<hkern u1="ú" u2="?" k="25" /> +<hkern u1="ú" u2="/" k="47" /> +<hkern u1="ú" u2="*" k="23" /> +<hkern u1="ú" u2=")" k="41" /> +<hkern u1="ú" u2="&" k="-16" /> +<hkern u1="û" u2="™" k="43" /> +<hkern u1="û" u2="}" k="41" /> +<hkern u1="û" u2="]" k="109" /> +<hkern u1="û" u2="\" k="119" /> +<hkern u1="û" u2="W" k="111" /> +<hkern u1="û" u2="V" k="129" /> +<hkern u1="û" u2="T" k="72" /> +<hkern u1="û" u2="J" k="-20" /> +<hkern u1="û" u2="?" k="25" /> +<hkern u1="û" u2="/" k="47" /> +<hkern u1="û" u2="*" k="23" /> +<hkern u1="û" u2=")" k="41" /> +<hkern u1="û" u2="&" k="-16" /> +<hkern u1="ü" u2="™" k="43" /> +<hkern u1="ü" u2="}" k="41" /> +<hkern u1="ü" u2="]" k="109" /> +<hkern u1="ü" u2="\" k="119" /> +<hkern u1="ü" u2="W" k="111" /> +<hkern u1="ü" u2="V" k="129" /> +<hkern u1="ü" u2="T" k="72" /> +<hkern u1="ü" u2="J" k="-20" /> +<hkern u1="ü" u2="?" k="25" /> +<hkern u1="ü" u2="/" k="47" /> +<hkern u1="ü" u2="*" k="23" /> +<hkern u1="ü" u2=")" k="41" /> +<hkern u1="ü" u2="&" k="-16" /> +<hkern u1="ý" u2="™" k="35" /> +<hkern u1="ý" u2="}" k="63" /> +<hkern u1="ý" u2="x" k="10" /> +<hkern u1="ý" u2="]" k="121" /> +<hkern u1="ý" u2="\" k="111" /> +<hkern u1="ý" u2="X" k="94" /> +<hkern u1="ý" u2="W" k="127" /> +<hkern u1="ý" u2="V" k="152" /> +<hkern u1="ý" u2="T" k="51" /> +<hkern u1="ý" u2="M" k="45" /> +<hkern u1="ý" u2="J" k="23" /> +<hkern u1="ý" u2="?" k="33" /> +<hkern u1="ý" u2="/" k="90" /> +<hkern u1="ý" u2=")" k="66" /> +<hkern u1="þ" u2="™" k="47" /> +<hkern u1="þ" u2="}" k="61" /> +<hkern u1="þ" u2="x" k="14" /> +<hkern u1="þ" u2="]" k="123" /> +<hkern u1="þ" u2="\" k="113" /> +<hkern u1="þ" u2="X" k="86" /> +<hkern u1="þ" u2="W" k="127" /> +<hkern u1="þ" u2="V" k="154" /> +<hkern u1="þ" u2="T" k="72" /> +<hkern u1="þ" u2="M" k="45" /> +<hkern u1="þ" u2="?" k="39" /> +<hkern u1="þ" u2="/" k="113" /> +<hkern u1="þ" u2="*" k="23" /> +<hkern u1="þ" u2=")" k="63" /> +<hkern u1="ÿ" u2="™" k="35" /> +<hkern u1="ÿ" u2="}" k="63" /> +<hkern u1="ÿ" u2="x" k="10" /> +<hkern u1="ÿ" u2="]" k="121" /> +<hkern u1="ÿ" u2="\" k="111" /> +<hkern u1="ÿ" u2="X" k="94" /> +<hkern u1="ÿ" u2="W" k="127" /> +<hkern u1="ÿ" u2="V" k="152" /> +<hkern u1="ÿ" u2="T" k="51" /> +<hkern u1="ÿ" u2="M" k="45" /> +<hkern u1="ÿ" u2="J" k="23" /> +<hkern u1="ÿ" u2="?" k="33" /> +<hkern u1="ÿ" u2="/" k="90" /> +<hkern u1="ÿ" u2=")" k="66" /> +<hkern u1="Œ" u2="ð" k="10" /> +<hkern u1="Œ" u2="w" k="29" /> +<hkern u1="Œ" u2="v" k="31" /> +<hkern u1="Œ" u2="t" k="14" /> +<hkern u1="Œ" u2="r" k="33" /> +<hkern u1="Œ" u2="p" k="43" /> +<hkern u1="Œ" u2="m" k="33" /> +<hkern u1="Œ" u2="j" k="47" /> +<hkern u1="Œ" u2="W" k="14" /> +<hkern u1="Œ" u2="V" k="16" /> +<hkern u1="Œ" u2="4" k="-10" /> +<hkern u1="Œ" u2="/" k="51" /> +<hkern u1="œ" u2="™" k="70" /> +<hkern u1="œ" u2="}" k="57" /> +<hkern u1="œ" u2="x" k="12" /> +<hkern u1="œ" u2="]" k="127" /> +<hkern u1="œ" u2="\" k="115" /> +<hkern u1="œ" u2="X" k="55" /> +<hkern u1="œ" u2="W" k="133" /> +<hkern u1="œ" u2="V" k="154" /> +<hkern u1="œ" u2="T" k="49" /> +<hkern u1="œ" u2="M" k="37" /> +<hkern u1="œ" u2="?" k="33" /> +<hkern u1="œ" u2="/" k="86" /> +<hkern u1="œ" u2="*" k="18" /> +<hkern u1="œ" u2=")" k="61" /> +<hkern u1="Ÿ" u2="™" k="-53" /> +<hkern u1="Ÿ" u2="þ" k="-90" /> +<hkern u1="Ÿ" u2="ö" k="123" /> +<hkern u1="Ÿ" u2="õ" k="115" /> +<hkern u1="Ÿ" u2="ô" k="147" /> +<hkern u1="Ÿ" u2="ð" k="35" /> +<hkern u1="Ÿ" u2="ï" k="-66" /> +<hkern u1="Ÿ" u2="î" k="-37" /> +<hkern u1="Ÿ" u2="ì" k="-2" /> +<hkern u1="Ÿ" u2="ë" k="147" /> +<hkern u1="Ÿ" u2="ê" k="133" /> +<hkern u1="Ÿ" u2="æ" k="162" /> +<hkern u1="Ÿ" u2="Æ" k="127" /> +<hkern u1="Ÿ" u2="®" k="47" /> +<hkern u1="Ÿ" u2="}" k="-84" /> +<hkern u1="Ÿ" u2="x" k="137" /> +<hkern u1="Ÿ" u2="w" k="133" /> +<hkern u1="Ÿ" u2="v" k="129" /> +<hkern u1="Ÿ" u2="t" k="86" /> +<hkern u1="Ÿ" u2="r" k="139" /> +<hkern u1="Ÿ" u2="p" k="141" /> +<hkern u1="Ÿ" u2="m" k="139" /> +<hkern u1="Ÿ" u2="k" k="-57" /> +<hkern u1="Ÿ" u2="j" k="49" /> +<hkern u1="Ÿ" u2="b" k="-90" /> +<hkern u1="Ÿ" u2="]" k="-90" /> +<hkern u1="Ÿ" u2="\" k="-53" /> +<hkern u1="Ÿ" u2="X" k="-25" /> +<hkern u1="Ÿ" u2="W" k="-25" /> +<hkern u1="Ÿ" u2="V" k="-49" /> +<hkern u1="Ÿ" u2="T" k="-25" /> +<hkern u1="Ÿ" u2="J" k="47" /> +<hkern u1="Ÿ" u2="@" k="84" /> +<hkern u1="Ÿ" u2=";" k="66" /> +<hkern u1="Ÿ" u2=":" k="61" /> +<hkern u1="Ÿ" u2="8" k="23" /> +<hkern u1="Ÿ" u2="7" k="-68" /> +<hkern u1="Ÿ" u2="6" k="39" /> +<hkern u1="Ÿ" u2="4" k="96" /> +<hkern u1="Ÿ" u2="0" k="39" /> +<hkern u1="Ÿ" u2="/" k="166" /> +<hkern u1="Ÿ" u2=")" k="-39" /> +<hkern u1="Ÿ" u2="&" k="25" /> +<hkern u1="–" u2="Æ" k="119" /> +<hkern u1="–" u2="X" k="129" /> +<hkern u1="–" u2="W" k="98" /> +<hkern u1="–" u2="V" k="115" /> +<hkern u1="–" u2="T" k="141" /> +<hkern u1="–" u2="M" k="49" /> +<hkern u1="–" u2="J" k="117" /> +<hkern u1="–" u2="8" k="27" /> +<hkern u1="–" u2="7" k="125" /> +<hkern u1="–" u2="3" k="41" /> +<hkern u1="–" u2="2" k="63" /> +<hkern u1="–" u2="1" k="61" /> +<hkern u1="—" u2="Æ" k="119" /> +<hkern u1="—" u2="X" k="129" /> +<hkern u1="—" u2="W" k="98" /> +<hkern u1="—" u2="V" k="115" /> +<hkern u1="—" u2="T" k="141" /> +<hkern u1="—" u2="M" k="49" /> +<hkern u1="—" u2="J" k="117" /> +<hkern u1="—" u2="8" k="27" /> +<hkern u1="—" u2="7" k="125" /> +<hkern u1="—" u2="3" k="41" /> +<hkern u1="—" u2="2" k="63" /> +<hkern u1="—" u2="1" k="61" /> +<hkern u1="‘" u2="ð" k="25" /> +<hkern u1="‘" u2="Æ" k="197" /> +<hkern u1="‘" u2="X" k="-49" /> +<hkern u1="‘" u2="T" k="-16" /> +<hkern u1="‘" u2="J" k="80" /> +<hkern u1="’" u2="þ" k="-49" /> +<hkern u1="’" u2="ï" k="-20" /> +<hkern u1="’" u2="î" k="-27" /> +<hkern u1="’" u2="æ" k="35" /> +<hkern u1="’" u2="Æ" k="205" /> +<hkern u1="’" u2="k" k="-25" /> +<hkern u1="’" u2="b" k="-49" /> +<hkern u1="’" u2="X" k="-33" /> +<hkern u1="’" u2="W" k="-37" /> +<hkern u1="’" u2="V" k="-39" /> +<hkern u1="’" u2="J" k="51" /> +<hkern u1="’" u2="@" k="41" /> +<hkern u1="’" u2="/" k="209" /> +<hkern u1="‚" u2="fl" k="-4" /> +<hkern u1="‚" u2="fi" k="-4" /> +<hkern u1="‚" u2="”" k="240" /> +<hkern u1="‚" u2="ß" k="-4" /> +<hkern u1="‚" u2="Æ" k="-16" /> +<hkern u1="‚" u2="w" k="41" /> +<hkern u1="‚" u2="v" k="55" /> +<hkern u1="‚" u2="t" k="27" /> +<hkern u1="‚" u2="r" k="29" /> +<hkern u1="‚" u2="p" k="41" /> +<hkern u1="‚" u2="m" k="29" /> +<hkern u1="‚" u2="j" k="6" /> +<hkern u1="‚" u2="f" k="-4" /> +<hkern u1="‚" u2="X" k="25" /> +<hkern u1="‚" u2="W" k="162" /> +<hkern u1="‚" u2="V" k="186" /> +<hkern u1="‚" u2="T" k="119" /> +<hkern u1="‚" u2="7" k="63" /> +<hkern u1="‚" u2="1" k="20" /> +<hkern u1="‚" u2="0" k="35" /> +<hkern u1="‚" u2=""" k="256" /> +<hkern u1="“" u2="ð" k="25" /> +<hkern u1="“" u2="Æ" k="197" /> +<hkern u1="“" u2="X" k="-49" /> +<hkern u1="“" u2="T" k="-16" /> +<hkern u1="“" u2="J" k="80" /> +<hkern u1="”" u2="…" k="240" /> +<hkern u1="”" u2="„" k="240" /> +<hkern u1="”" u2="‚" k="240" /> +<hkern u1="”" u2="þ" k="-51" /> +<hkern u1="”" u2="ï" k="-23" /> +<hkern u1="”" u2="î" k="-27" /> +<hkern u1="”" u2="æ" k="35" /> +<hkern u1="”" u2="Æ" k="205" /> +<hkern u1="”" u2="k" k="-25" /> +<hkern u1="”" u2="b" k="-49" /> +<hkern u1="”" u2="X" k="-33" /> +<hkern u1="”" u2="W" k="-37" /> +<hkern u1="”" u2="V" k="-39" /> +<hkern u1="”" u2="J" k="51" /> +<hkern u1="”" u2="@" k="41" /> +<hkern u1="”" u2="/" k="209" /> +<hkern u1="”" u2="." k="240" /> +<hkern u1="”" u2="," k="256" /> +<hkern u1="„" u2="fl" k="-4" /> +<hkern u1="„" u2="fi" k="-4" /> +<hkern u1="„" u2="”" k="240" /> +<hkern u1="„" u2="ß" k="-4" /> +<hkern u1="„" u2="Æ" k="-16" /> +<hkern u1="„" u2="w" k="41" /> +<hkern u1="„" u2="v" k="55" /> +<hkern u1="„" u2="t" k="27" /> +<hkern u1="„" u2="r" k="29" /> +<hkern u1="„" u2="p" k="41" /> +<hkern u1="„" u2="m" k="29" /> +<hkern u1="„" u2="j" k="6" /> +<hkern u1="„" u2="f" k="-4" /> +<hkern u1="„" u2="X" k="25" /> +<hkern u1="„" u2="W" k="162" /> +<hkern u1="„" u2="V" k="186" /> +<hkern u1="„" u2="T" k="119" /> +<hkern u1="„" u2="7" k="63" /> +<hkern u1="„" u2="1" k="20" /> +<hkern u1="„" u2="0" k="35" /> +<hkern u1="„" u2=""" k="274" /> +<hkern u1="‹" u2="Æ" k="-31" /> +<hkern u1="‹" u2="W" k="49" /> +<hkern u1="‹" u2="V" k="49" /> +<hkern u1="›" u2="Æ" k="53" /> +<hkern u1="›" u2="X" k="76" /> +<hkern u1="›" u2="W" k="94" /> +<hkern u1="›" u2="V" k="113" /> +<hkern u1="›" u2="T" k="98" /> +<hkern u1="›" u2="M" k="35" /> +<hkern u1="™" u2="Ÿ" k="-45" /> +<hkern u1="™" u2="ÿ" k="-47" /> +<hkern u1="™" u2="þ" k="-45" /> +<hkern u1="™" u2="ý" k="-47" /> +<hkern u1="™" u2="ü" k="-27" /> +<hkern u1="™" u2="û" k="-27" /> +<hkern u1="™" u2="ú" k="-27" /> +<hkern u1="™" u2="ù" k="-27" /> +<hkern u1="™" u2="ï" k="-20" /> +<hkern u1="™" u2="î" k="-20" /> +<hkern u1="™" u2="í" k="-20" /> +<hkern u1="™" u2="ì" k="-20" /> +<hkern u1="™" u2="Ý" k="-45" /> +<hkern u1="™" u2="Æ" k="125" /> +<hkern u1="™" u2="Å" k="78" /> +<hkern u1="™" u2="Ä" k="78" /> +<hkern u1="™" u2="Ã" k="78" /> +<hkern u1="™" u2="Â" k="78" /> +<hkern u1="™" u2="Á" k="78" /> +<hkern u1="™" u2="À" k="78" /> +<hkern u1="™" u2="y" k="-47" /> +<hkern u1="™" u2="w" k="-29" /> +<hkern u1="™" u2="v" k="-33" /> +<hkern u1="™" u2="u" k="-27" /> +<hkern u1="™" u2="k" k="-12" /> +<hkern u1="™" u2="j" k="-10" /> +<hkern u1="™" u2="i" k="-20" /> +<hkern u1="™" u2="h" k="-23" /> +<hkern u1="™" u2="b" k="-43" /> +<hkern u1="™" u2="Y" k="-45" /> +<hkern u1="™" u2="X" k="-27" /> +<hkern u1="™" u2="W" k="-33" /> +<hkern u1="™" u2="V" k="-41" /> +<hkern u1="™" u2="J" k="68" /> +<hkern u1="™" u2="A" k="78" /> +<hkern u1="fi" u2="™" k="27" /> +<hkern u1="fi" u2="}" k="20" /> +<hkern u1="fi" u2="]" k="35" /> +<hkern u1="fi" u2="W" k="70" /> +<hkern u1="fi" u2="V" k="68" /> +<hkern u1="fi" u2="T" k="57" /> +<hkern u1="fi" u2="M" k="8" /> +<hkern u1="fi" u2="J" k="-18" /> +<hkern u1="fi" u2="?" k="20" /> +<hkern u1="fi" u2="/" k="51" /> +<hkern u1="fi" u2="*" k="35" /> +<hkern u1="fi" u2=")" k="25" /> +<hkern u1="fi" u2="&" k="-14" /> +<hkern u1="fl" u2="·" k="131" /> +<hkern u1="fl" u2="W" k="41" /> +<hkern u1="fl" u2="V" k="39" /> +<hkern u1="fl" u2="T" k="27" /> +<hkern u1="fl" u2="M" k="8" /> +<hkern u1="fl" u2="J" k="-18" /> +<hkern u1="fl" u2="/" k="51" /> +<hkern u1="fl" u2="&" k="-12" /> +<hkern g1="C,Ccedilla" g2="n,ntilde" k="16" /> +<hkern g1="C,Ccedilla" g2="i,igrave,iacute,icircumflex,idieresis" k="10" /> +<hkern g1="C,Ccedilla" g2="y,yacute,ydieresis" k="20" /> +<hkern g1="C,Ccedilla" g2="hyphen,uni00AD,endash,emdash" k="63" /> +<hkern g1="C,Ccedilla" g2="z" k="12" /> +<hkern g1="D,Eth" g2="l" k="10" /> +<hkern g1="D,Eth" g2="Y,Yacute,Ydieresis" k="63" /> +<hkern g1="D,Eth" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="14" /> +<hkern g1="D,Eth" g2="h,thorn" k="10" /> +<hkern g1="D,Eth" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="49" /> +<hkern g1="D,Eth" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="49" /> +<hkern g1="D,Eth" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="29" /> +<hkern g1="D,Eth" g2="Z" k="10" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="10" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="n,ntilde" k="33" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="i,igrave,iacute,icircumflex,idieresis" k="29" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="y,yacute,ydieresis" k="49" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="s" k="8" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="Y,Yacute,Ydieresis" k="23" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="hyphen,uni00AD,endash,emdash" k="35" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="f,germandbls,uniFB01,uniFB02" k="16" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="u,ugrave,uacute,ucircumflex,udieresis" k="29" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="z" k="14" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="47" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="n,ntilde" k="49" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="25" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="guillemotleft,guilsinglleft" k="33" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="i,igrave,iacute,icircumflex,idieresis" k="37" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="d,g,q" k="39" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="y,yacute,ydieresis" k="47" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="s" k="25" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="Y,Yacute,Ydieresis" k="12" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="hyphen,uni00AD,endash,emdash" k="49" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="f,germandbls,uniFB01,uniFB02" k="47" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="43" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="37" /> +<hkern g1="H,I,Igrave,Iacute,Icircumflex,Idieresis" g2="z" k="20" /> +<hkern g1="L" g2="n,ntilde" k="35" /> +<hkern g1="L" g2="quoteright,quotedblright" k="174" /> +<hkern g1="L" g2="i,igrave,iacute,icircumflex,idieresis" k="29" /> +<hkern g1="L" g2="y,yacute,ydieresis" k="123" /> +<hkern g1="L" g2="quotedbl,quotesingle" k="176" /> +<hkern g1="L" g2="Y,Yacute,Ydieresis" k="164" /> +<hkern g1="L" g2="quoteleft,quotedblleft" k="180" /> +<hkern g1="L" g2="f,germandbls,uniFB01,uniFB02" k="20" /> +<hkern g1="L" g2="u,ugrave,uacute,ucircumflex,udieresis" k="33" /> +<hkern g1="L" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="33" /> +<hkern g1="N,Ntilde" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="45" /> +<hkern g1="N,Ntilde" g2="n,ntilde" k="45" /> +<hkern g1="N,Ntilde" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="18" /> +<hkern g1="N,Ntilde" g2="guillemotleft,guilsinglleft" k="23" /> +<hkern g1="N,Ntilde" g2="i,igrave,iacute,icircumflex,idieresis" k="29" /> +<hkern g1="N,Ntilde" g2="d,g,q" k="43" /> +<hkern g1="N,Ntilde" g2="y,yacute,ydieresis" k="25" /> +<hkern g1="N,Ntilde" g2="s" k="47" /> +<hkern g1="N,Ntilde" g2="hyphen,uni00AD,endash,emdash" k="37" /> +<hkern g1="N,Ntilde" g2="f,germandbls,uniFB01,uniFB02" k="47" /> +<hkern g1="N,Ntilde" g2="u,ugrave,uacute,ucircumflex,udieresis" k="33" /> +<hkern g1="N,Ntilde" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="45" /> +<hkern g1="N,Ntilde" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="27" /> +<hkern g1="N,Ntilde" g2="z" k="47" /> +<hkern g1="N,Ntilde" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="31" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="l" k="10" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Y,Yacute,Ydieresis" k="53" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="12" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="h,thorn" k="8" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="31" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="43" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="25" /> +<hkern g1="S" g2="n,ntilde" k="25" /> +<hkern g1="S" g2="i,igrave,iacute,icircumflex,idieresis" k="18" /> +<hkern g1="S" g2="y,yacute,ydieresis" k="20" /> +<hkern g1="S" g2="s" k="8" /> +<hkern g1="S" g2="Y,Yacute,Ydieresis" k="25" /> +<hkern g1="S" g2="f,germandbls,uniFB01,uniFB02" k="18" /> +<hkern g1="S" g2="u,ugrave,uacute,ucircumflex,udieresis" k="14" /> +<hkern g1="S" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="10" /> +<hkern g1="S" g2="z" k="18" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="49" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="n,ntilde" k="35" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="l" k="-12" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="12" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="i,igrave,iacute,icircumflex,idieresis" k="16" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="d,g,q" k="49" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="s" k="51" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="hyphen,uni00AD,endash,emdash" k="31" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="f,germandbls,uniFB01,uniFB02" k="35" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="53" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="h,thorn" k="-31" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="72" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="z" k="49" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="59" /> +<hkern g1="Y,Yacute,Ydieresis" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="160" /> +<hkern g1="Y,Yacute,Ydieresis" g2="n,ntilde" k="139" /> +<hkern g1="Y,Yacute,Ydieresis" g2="quoteright,quotedblright" k="-41" /> +<hkern g1="Y,Yacute,Ydieresis" g2="guillemotright,guilsinglright" k="53" /> +<hkern g1="Y,Yacute,Ydieresis" g2="l" k="-51" /> +<hkern g1="Y,Yacute,Ydieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="55" /> +<hkern g1="Y,Yacute,Ydieresis" g2="guillemotleft,guilsinglleft" k="131" /> +<hkern g1="Y,Yacute,Ydieresis" g2="i,igrave,iacute,icircumflex,idieresis" k="39" /> +<hkern g1="Y,Yacute,Ydieresis" g2="d,g,q" k="154" /> +<hkern g1="Y,Yacute,Ydieresis" g2="y,yacute,ydieresis" k="133" /> +<hkern g1="Y,Yacute,Ydieresis" g2="s" k="158" /> +<hkern g1="Y,Yacute,Ydieresis" g2="Y,Yacute,Ydieresis" k="-49" /> +<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,uni00AD,endash,emdash" k="137" /> +<hkern g1="Y,Yacute,Ydieresis" g2="S" k="14" /> +<hkern g1="Y,Yacute,Ydieresis" g2="quoteleft,quotedblleft" k="-25" /> +<hkern g1="Y,Yacute,Ydieresis" g2="f,germandbls,uniFB01,uniFB02" k="63" /> +<hkern g1="Y,Yacute,Ydieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="133" /> +<hkern g1="Y,Yacute,Ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="158" /> +<hkern g1="Y,Yacute,Ydieresis" g2="h,thorn" k="-70" /> +<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="125" /> +<hkern g1="Y,Yacute,Ydieresis" g2="z" k="143" /> +<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="106" /> +<hkern g1="Z" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="10" /> +<hkern g1="Z" g2="n,ntilde" k="51" /> +<hkern g1="Z" g2="i,igrave,iacute,icircumflex,idieresis" k="35" /> +<hkern g1="Z" g2="d,g,q" k="8" /> +<hkern g1="Z" g2="y,yacute,ydieresis" k="78" /> +<hkern g1="Z" g2="s" k="10" /> +<hkern g1="Z" g2="hyphen,uni00AD,endash,emdash" k="43" /> +<hkern g1="Z" g2="f,germandbls,uniFB01,uniFB02" k="31" /> +<hkern g1="Z" g2="u,ugrave,uacute,ucircumflex,udieresis" k="49" /> +<hkern g1="Z" g2="z" k="18" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="quoteright,quotedblright" k="23" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="quotedbl,quotesingle" k="16" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="Y,Yacute,Ydieresis" k="137" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="hyphen,uni00AD,endash,emdash" k="16" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="49" /> +<hkern g1="b,thorn" g2="quoteright,quotedblright" k="43" /> +<hkern g1="b,thorn" g2="quotedbl,quotesingle" k="51" /> +<hkern g1="b,thorn" g2="Y,Yacute,Ydieresis" k="164" /> +<hkern g1="b,thorn" g2="S" k="16" /> +<hkern g1="b,thorn" g2="quoteleft,quotedblleft" k="41" /> +<hkern g1="b,thorn" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="55" /> +<hkern g1="b,thorn" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="31" /> +<hkern g1="b,thorn" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="45" /> +<hkern g1="b,thorn" g2="Z" k="37" /> +<hkern g1="c,ccedilla" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="14" /> +<hkern g1="c,ccedilla" g2="quotedbl,quotesingle" k="18" /> +<hkern g1="c,ccedilla" g2="Y,Yacute,Ydieresis" k="170" /> +<hkern g1="c,ccedilla" g2="S" k="8" /> +<hkern g1="c,ccedilla" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="49" /> +<hkern g1="c,ccedilla" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="55" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quoteright,quotedblright" k="25" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quotedbl,quotesingle" k="25" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="Y,Yacute,Ydieresis" k="178" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="S" k="10" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quoteleft,quotedblleft" k="18" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="59" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="10" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="39" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="Z" k="16" /> +<hkern g1="guillemotleft,guilsinglleft" g2="Y,Yacute,Ydieresis" k="51" /> +<hkern g1="guillemotleft,guilsinglleft" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="25" /> +<hkern g1="guillemotright,guilsinglright" g2="quoteright,quotedblright" k="90" /> +<hkern g1="guillemotright,guilsinglright" g2="quotedbl,quotesingle" k="106" /> +<hkern g1="guillemotright,guilsinglright" g2="Y,Yacute,Ydieresis" k="143" /> +<hkern g1="guillemotright,guilsinglright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="39" /> +<hkern g1="guillemotright,guilsinglright" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="35" /> +<hkern g1="guillemotright,guilsinglright" g2="Z" k="43" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Y,Yacute,Ydieresis" k="147" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="S" k="27" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="f,germandbls,uniFB01,uniFB02" k="20" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="35" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="78" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="51" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Z" k="80" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01" g2="quoteright,quotedblright" k="23" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="12" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01" g2="quotedbl,quotesingle" k="27" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01" g2="Y,Yacute,Ydieresis" k="66" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01" g2="hyphen,uni00AD,endash,emdash" k="27" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01" g2="quoteleft,quotedblleft" k="29" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="51" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="12" /> +<hkern g1="l,uniFB02" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="12" /> +<hkern g1="l,uniFB02" g2="Y,Yacute,Ydieresis" k="39" /> +<hkern g1="l,uniFB02" g2="hyphen,uni00AD,endash,emdash" k="29" /> +<hkern g1="l,uniFB02" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="33" /> +<hkern g1="l,uniFB02" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="10" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quoteright,quotedblright" k="43" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quotedbl,quotesingle" k="47" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="Y,Yacute,Ydieresis" k="170" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="S" k="18" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quoteleft,quotedblleft" k="39" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="59" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="29" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="51" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="Z" k="41" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="n,ntilde" k="29" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="quoteright,quotedblright" k="215" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="49" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="i,igrave,iacute,icircumflex,idieresis" k="25" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="y,yacute,ydieresis" k="115" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="quotedbl,quotesingle" k="193" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="Y,Yacute,Ydieresis" k="150" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="quoteleft,quotedblleft" k="229" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="f,germandbls,uniFB01,uniFB02" k="20" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="u,ugrave,uacute,ucircumflex,udieresis" k="27" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="72" /> +<hkern g1="quoteleft,quotedblleft" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="29" /> +<hkern g1="quoteleft,quotedblleft" g2="d,g,q" k="47" /> +<hkern g1="quoteleft,quotedblleft" g2="Y,Yacute,Ydieresis" k="-25" /> +<hkern g1="quoteleft,quotedblleft" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="43" /> +<hkern g1="quoteleft,quotedblleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="119" /> +<hkern g1="quoteleft,quotedblleft" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="229" /> +<hkern g1="quoteright,quotedblright" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="51" /> +<hkern g1="quoteright,quotedblright" g2="l" k="-14" /> +<hkern g1="quoteright,quotedblright" g2="guillemotleft,guilsinglleft" k="90" /> +<hkern g1="quoteright,quotedblright" g2="d,g,q" k="72" /> +<hkern g1="quoteright,quotedblright" g2="s" k="31" /> +<hkern g1="quoteright,quotedblright" g2="Y,Yacute,Ydieresis" k="-41" /> +<hkern g1="quoteright,quotedblright" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="66" /> +<hkern g1="quoteright,quotedblright" g2="h,thorn" k="-35" /> +<hkern g1="quoteright,quotedblright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="137" /> +<hkern g1="quoteright,quotedblright" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="215" /> +<hkern g1="quotedbl,quotesingle" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="47" /> +<hkern g1="quotedbl,quotesingle" g2="guillemotleft,guilsinglleft" k="94" /> +<hkern g1="quotedbl,quotesingle" g2="d,g,q" k="78" /> +<hkern g1="quotedbl,quotesingle" g2="s" k="16" /> +<hkern g1="quotedbl,quotesingle" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="63" /> +<hkern g1="quotedbl,quotesingle" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="133" /> +<hkern g1="quotedbl,quotesingle" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="193" /> +<hkern g1="s" g2="quoteright,quotedblright" k="31" /> +<hkern g1="s" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="10" /> +<hkern g1="s" g2="quotedbl,quotesingle" k="33" /> +<hkern g1="s" g2="Y,Yacute,Ydieresis" k="162" /> +<hkern g1="s" g2="S" k="12" /> +<hkern g1="s" g2="quoteleft,quotedblleft" k="27" /> +<hkern g1="s" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="68" /> +<hkern g1="s" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="8" /> +<hkern g1="s" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="39" /> +<hkern g1="s" g2="Z" k="16" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="quoteright,quotedblright" k="31" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="quotedbl,quotesingle" k="23" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="Y,Yacute,Ydieresis" k="141" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="hyphen,uni00AD,endash,emdash" k="20" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="quoteleft,quotedblleft" k="20" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="53" /> +<hkern g1="y,yacute,ydieresis" g2="quoteright,quotedblright" k="20" /> +<hkern g1="y,yacute,ydieresis" g2="quotedbl,quotesingle" k="20" /> +<hkern g1="y,yacute,ydieresis" g2="Y,Yacute,Ydieresis" k="162" /> +<hkern g1="y,yacute,ydieresis" g2="S" k="25" /> +<hkern g1="y,yacute,ydieresis" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="53" /> +<hkern g1="y,yacute,ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="47" /> +<hkern g1="y,yacute,ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="20" /> +<hkern g1="y,yacute,ydieresis" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="47" /> +<hkern g1="y,yacute,ydieresis" g2="Z" k="47" /> +<hkern g1="z" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="12" /> +<hkern g1="z" g2="i,igrave,iacute,icircumflex,idieresis" k="25" /> +<hkern g1="z" g2="Y,Yacute,Ydieresis" k="135" /> +<hkern g1="z" g2="hyphen,uni00AD,endash,emdash" k="31" /> +<hkern g1="z" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="61" /> +<hkern g1="z" g2="z" k="25" /> +<hkern g1="z" g2="B,D,E,F,H,I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="27" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/lora-bolditalic-webfont.ttf b/web/static/fonts/lora-bolditalic-webfont.ttf Binary files differnew file mode 100755 index 000000000..506df8c9c --- /dev/null +++ b/web/static/fonts/lora-bolditalic-webfont.ttf diff --git a/web/static/fonts/lora-bolditalic-webfont.woff b/web/static/fonts/lora-bolditalic-webfont.woff Binary files differnew file mode 100755 index 000000000..d6fdb5c06 --- /dev/null +++ b/web/static/fonts/lora-bolditalic-webfont.woff diff --git a/web/static/fonts/lora-bolditalic-webfont.woff2 b/web/static/fonts/lora-bolditalic-webfont.woff2 Binary files differnew file mode 100755 index 000000000..fd18eb3cf --- /dev/null +++ b/web/static/fonts/lora-bolditalic-webfont.woff2 diff --git a/web/static/fonts/lora-italic-webfont.eot b/web/static/fonts/lora-italic-webfont.eot Binary files differnew file mode 100755 index 000000000..36b9960e6 --- /dev/null +++ b/web/static/fonts/lora-italic-webfont.eot diff --git a/web/static/fonts/lora-italic-webfont.svg b/web/static/fonts/lora-italic-webfont.svg new file mode 100755 index 000000000..d2c661f9b --- /dev/null +++ b/web/static/fonts/lora-italic-webfont.svg @@ -0,0 +1,5176 @@ +<?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="loraitalic" horiz-adv-x="1293" > +<font-face units-per-em="2048" ascent="1638" descent="-410" /> +<missing-glyph horiz-adv-x="539" /> +<glyph horiz-adv-x="0" /> +<glyph unicode="
" horiz-adv-x="0" /> +<glyph horiz-adv-x="0" /> +<glyph horiz-adv-x="0" /> +<glyph unicode=" " horiz-adv-x="539" /> +<glyph unicode="	" horiz-adv-x="539" /> +<glyph unicode=" " horiz-adv-x="539" /> +<glyph unicode="!" horiz-adv-x="558" d="M138 88q0 30 10.5 56t28 45.5t40.5 31t48 11.5q50 -3 81.5 -36t31.5 -98q-2 -27 -13 -51t-29 -42t-40.5 -28t-46.5 -10q-23 0 -43 9.5t-35 25.5t-24 38t-9 48zM208 1323q0 26 8 52t23.5 46.5t38.5 33t53 12.5q28 0 48.5 -10t33 -27t18.5 -39t6 -45q0 -10 -1 -15 q0 -4 -122 -860h-75z" /> +<glyph unicode=""" horiz-adv-x="730" d="M162 1006l11 461h160l-44 -461h-127zM496 1006l11 461h160l-44 -461h-127z" /> +<glyph unicode="#" horiz-adv-x="1654" d="M53 365l33 122h336l111 474h-345l33 122h341l83 351h135l-80 -351h435l83 351h135l-80 -351h343v-2l-31 -120h-340l-107 -474h342l-32 -122h-338l-82 -365h-148l86 365h-429l-83 -365h-147l86 365h-340zM564 487h431l111 474h-434z" /> +<glyph unicode="$" horiz-adv-x="1084" d="M82 -26l22 435h72q1 -95 26.5 -163t71.5 -112t111.5 -65t146.5 -21q61 0 114 20t91.5 55.5t60.5 84.5t22 107q0 69 -30 121t-78.5 94t-111 77t-127.5 70t-127.5 73t-111 86t-78.5 109.5t-30 142.5q0 32 8 71t26.5 80t49 80t76 70.5t106.5 52.5t140 25l13 239h110 l-15 -242q114 -15 223 -89l-3 92h103l-25 -448h-76q-1 74 -15 140.5t-48.5 117t-93 80t-148.5 29.5q-65 0 -114.5 -21.5t-83 -56.5t-50.5 -79.5t-17 -90.5q0 -66 30 -117t79.5 -93t112.5 -77.5t128.5 -71.5t128.5 -75t112.5 -87t79.5 -109t30 -141q0 -74 -26.5 -143 t-79 -124t-131 -90.5t-181.5 -42.5l-16 -280h-106l12 280q-32 1 -67.5 5.5t-72 13.5t-72 22t-66.5 31l6 -65h-111z" /> +<glyph unicode="%" horiz-adv-x="1788" d="M104 1070q4 73 33 144t80 127.5t123.5 91t164.5 34.5q88 0 153.5 -30.5t109 -80t64.5 -113t21 -129.5q0 -83 -31.5 -160.5t-85.5 -136.5t-126.5 -94.5t-154.5 -35.5q-88 0 -154 29.5t-110 79t-66.5 117t-20.5 157.5zM233 45l1219 1422l91 -86l-1230 -1414zM281 1040.5 q0 -29.5 8 -82t28.5 -95.5t56 -71t91.5 -28q62 0 102.5 32.5t64.5 81.5t33.5 106t9.5 106q0 50 -8.5 103t-29.5 97t-56 72.5t-87 28.5q-57 0 -97 -31t-65 -75.5t-37 -95t-13 -89.5q-1 -10 -1 -20v-39.5zM954 350q4 73 33 144t80 127.5t123.5 91t164.5 34.5q90 0 155 -31 t108 -81.5t63.5 -115t20.5 -131.5q0 -83 -32 -159t-86.5 -134t-126.5 -93t-152 -35q-88 0 -154 29.5t-110 79t-64.5 112.5t-22 109t-0.5 53zM1131 319.5q0 -29.5 8 -82t29 -96t56.5 -71.5t90.5 -28q41 0 72.5 15t55 40.5t39 58.5t25.5 69t14 73t4 69q0 50 -8.5 103.5 t-29.5 97.5t-56 72.5t-87 28.5q-58 0 -97.5 -31t-64.5 -75.5t-36.5 -95t-13.5 -89.5q-1 -10 -1 -19.5v-39z" /> +<glyph unicode="&" horiz-adv-x="1399" d="M69 357q0 74 24.5 146t73 131t121.5 100.5t169 53.5q-80 16 -133.5 44t-86.5 64.5t-47 80t-14 91.5q0 93 35 166.5t96.5 125.5t144 79.5t178.5 27.5q82 0 147 -19.5t111 -51t70.5 -72.5t24.5 -84q0 -40 -22.5 -68.5t-67.5 -28.5q-33 0 -57.5 21.5t-24.5 57.5q0 31 18 63 q-4 21 -20 41t-41.5 35t-59 24t-72.5 9q-67 0 -119 -24.5t-87.5 -65.5t-54 -94.5t-18.5 -112.5q0 -25 3.5 -55.5t13.5 -61t28 -59.5t46 -51t68 -35.5t95 -13.5q22 0 34 0.5t19.5 0.5t13.5 0.5t15 0.5l-4 -90l-78 2q-71 0 -124 -18t-91.5 -46.5t-64 -65t-40.5 -74t-21 -72.5 t-6 -61q0 -87 33 -150t84 -104t112.5 -61t119.5 -20q119 0 203.5 35.5t138.5 95t79 138.5t25 166h-65q-27 0 -51.5 -2t-50 -9.5t-53 -22t-58.5 -38.5l-41 41q34 51 68.5 83t75.5 49.5t91 23.5t115 6q40 0 77 1.5t71.5 10t67 25.5t65.5 49l45 -35q-24 -38 -46.5 -68.5 t-51.5 -53t-69.5 -37t-100.5 -20.5q0 -55 -11 -115.5t-36 -120t-67 -113.5t-104.5 -95t-147 -65.5t-195.5 -24.5q-110 0 -204.5 23.5t-164 72t-109.5 122t-40 172.5z" /> +<glyph unicode="'" horiz-adv-x="407" d="M162 1006l11 461h172l-47 -461h-136z" /> +<glyph unicode="(" horiz-adv-x="610" d="M59 436q0 118 23.5 233.5t63 224.5t92 208.5t110.5 184.5t118 154t114 116l47 -47q-169 -214 -262 -470.5t-111 -603.5q0 -309 68 -530t203 -413l-53 -47q-47 45 -96 106t-95 135t-86 159.5t-70.5 180.5t-48 198t-17.5 211z" /> +<glyph unicode=")" horiz-adv-x="610" d="M-33 -508q169 214 262 470.5t111 603.5q0 309 -68 530t-203 413l53 47q47 -45 96 -106t95 -135t86 -159.5t70.5 -180.5t48 -198t17.5 -211q0 -118 -23.5 -233.5t-63 -224.5t-92 -208.5t-110.5 -184.5t-118 -154t-114 -116z" /> +<glyph unicode="*" horiz-adv-x="1050" d="M110 1116q0 19 8 33.5t19 23t25 12.5t28 4q23 0 46.5 -7t46.5 -18q63 -30 127 -63t115 -60q-6 31 -10 69t-7.5 78t-5.5 74t-4 81q0 22 3.5 44t12.5 40t24 29t38 11q19 0 32 -8t20.5 -21.5t11 -31t3.5 -36.5q0 -14 -1.5 -26.5t-8.5 -53.5t-20 -115t-31 -134 q57 30 122.5 61t131.5 62q23 11 49.5 18.5t50.5 7.5q32 0 51.5 -16t19.5 -48q0 -20 -11.5 -36t-29.5 -27.5t-40.5 -19.5t-44.5 -12q-69 -14 -142.5 -27.5t-139.5 -19.5q45 -40 93 -91t93 -102q20 -23 35.5 -55t15.5 -61t-19.5 -49t-47.5 -20q-15 0 -29 7.5t-26.5 20t-23 28 t-19.5 31.5l-31.5 63t-32 66t-30 65.5t-25.5 61.5q-15 -29 -33.5 -61.5t-38 -65.5l-39 -66t-37.5 -63q-10 -16 -22.5 -31t-27 -27t-30.5 -19t-31 -7q-25 0 -41.5 17t-16.5 41q0 31 19.5 64.5t45.5 59.5q49 51 99 99.5t104 93.5q-64 12 -138 23t-139 24q-21 4 -41.5 11 t-37.5 17.5t-27 24.5t-10 32z" /> +<glyph unicode="+" horiz-adv-x="1047" d="M67 592l6 115l394 -2l22 407h123l-22 -408l395 -2l-6 -106l-395 -2l-23 -426h-123l23 425z" /> +<glyph unicode="," horiz-adv-x="485" d="M89 86q0 28 9 49.5t25 36t36.5 22t44.5 7.5q63 0 97 -44.5t34 -116.5q0 -38 -10.5 -88.5t-31.5 -105t-52.5 -109.5t-73.5 -103l-51 41q18 20 38 54t37 75.5t28 87.5t11 108h-3q-13 -5 -25 -7t-23 -2q-20 0 -36.5 8t-28.5 21t-18.5 30.5t-6.5 35.5z" /> +<glyph unicode="-" horiz-adv-x="989" d="M130 588l6 135h727l-6 -127z" /> +<glyph unicode="." horiz-adv-x="476" d="M87 90q0 28 10.5 52.5t28.5 43t41 29t47 10.5q48 0 77 -35t29 -87v-7q-1 -27 -11.5 -51t-27.5 -41t-38.5 -27t-44.5 -10t-43 9.5t-35 26t-24 39t-9 48.5z" /> +<glyph unicode="/" horiz-adv-x="1339" d="M-36 -487l1280 2043l113 -76l-1296 -2035z" /> +<glyph unicode="0" horiz-adv-x="1223" d="M110 629q0 44 3.5 109t19.5 154t45.5 172.5t73 156.5t102.5 128t134 86.5t168 31.5q90 0 160 -28t122.5 -76.5t88.5 -114.5t58.5 -141.5t32.5 -158t10 -163.5q0 -88 -12.5 -182.5t-39.5 -185.5t-69.5 -172.5t-102.5 -143.5t-138.5 -98t-177.5 -36q-93 0 -164.5 27 t-124.5 73.5t-89 110.5t-58.5 137.5t-32 153.5t-9.5 160zM307 645q0 -68 5.5 -138.5t18.5 -137t34.5 -125.5t53.5 -102.5t76 -69t102 -25.5q66 0 116.5 33t88 89.5t62.5 131.5t40 158.5t21.5 170.5t6.5 168q0 74 -5.5 147t-18 138.5t-33 121.5t-50.5 97t-71 64t-94 23 q-58 0 -105.5 -26t-85 -71t-65.5 -106t-47.5 -131.5t-31 -147.5t-15 -141.5t-3.5 -120.5z" /> +<glyph unicode="1" horiz-adv-x="725" d="M63 1171l399 296h70l-63 -1244q-2 -40 -4 -76t-9 -65l172 8l-4 -90h-508l2 68q53 2 89 19t57.5 47t32 72t12.5 95l45 967h-4l-250 -157z" /> +<glyph unicode="2" horiz-adv-x="1076" d="M56 0q4 108 42.5 192t99 156t137 138.5t157.5 138.5q66 59 118.5 120.5t89 122t56 119.5t19.5 113q0 58 -12.5 110t-41 91.5t-75 62.5t-115.5 23q-42 0 -81 -11.5t-71.5 -31t-56.5 -46t-37 -56.5q20 -21 26 -45.5t6 -44.5q0 -18 -7 -35.5t-19.5 -30.5t-30 -21t-39.5 -8 q-42 0 -70 27t-28 75q0 49 29.5 103.5t86.5 100t139.5 75t189.5 29.5q78 0 151 -17.5t129 -58t90 -105.5t34 -161q0 -54 -19.5 -116t-67.5 -133t-129.5 -153.5t-206.5 -177.5q-146 -112 -237 -208t-112 -186l477 -13q50 0 91.5 5t71.5 20.5t47.5 44t19.5 75.5h62l-27 -283 h-886z" /> +<glyph unicode="3" horiz-adv-x="1117" d="M62 248q0 51 28 82.5t73 31.5q21 0 38 -8t29 -20.5t18.5 -29t6.5 -34.5q0 -19 -5.5 -40.5t-21.5 -41.5q9 -35 33 -60t57 -41t72.5 -24t80.5 -8q78 0 140.5 24.5t106.5 70t67.5 110t23.5 144.5q0 30 -4 65t-15 69.5t-30.5 66.5t-51 56.5t-76 39t-104.5 14.5 q-42 0 -72.5 -1t-62.5 -3l5 92h84q61 0 107 16.5t79.5 43t55.5 60.5t35 69.5t18.5 69.5t5.5 61q0 57 -11.5 105t-39 83.5t-73 55.5t-114.5 20q-48 0 -90.5 -14.5t-76 -37t-55.5 -50t-29 -53.5q16 -19 21 -40.5t5 -39.5q0 -17 -6.5 -33t-18.5 -28t-28.5 -19t-35.5 -7 q-38 0 -64 25t-26 70q0 46 28.5 100t84 100t136.5 76.5t187 30.5q79 0 151 -17.5t127 -57t87.5 -102.5t32.5 -153q0 -51 -18.5 -106.5t-60 -105.5t-108 -91.5t-161.5 -63.5q94 -8 166 -37.5t120.5 -76t73.5 -107t25 -129.5q0 -73 -21 -134.5t-58 -112t-87 -89t-109 -64.5 t-123.5 -39.5t-130.5 -13.5q-106 0 -185 26t-131.5 66.5t-78.5 90.5t-26 98z" /> +<glyph unicode="4" horiz-adv-x="1080" d="M7 395l5 101l765 971h70l-41 -954l205 -3l-6 -115h-204l-7 -172q-2 -42 -5 -78t-13 -67l161 6l-6 -84h-498l5 67h16q52 4 85 24t52.5 53.5t28 79t10.5 101.5l3 70h-626zM141 522l499 -7l35 667h-4z" /> +<glyph unicode="5" horiz-adv-x="1071" d="M73 244q0 54 27.5 86t74.5 32q21 0 38 -7.5t29 -20t18.5 -28.5t6.5 -34q0 -19 -6.5 -41.5t-22.5 -42.5q1 -36 21.5 -62.5t51 -44t68 -26t73.5 -8.5q89 0 150.5 34t100 89.5t55.5 126t17 142.5q0 38 -4.5 79.5t-16 81.5t-33 75.5t-55 62.5t-81 43t-112.5 16 q-52 0 -118 -16t-129 -54l-56 51l33 656h520q58 0 98 7.5t65.5 24t37.5 41.5t14 60h54l-31 -265l-674 -14l-25 -452q48 20 118 36.5t161 16.5q120 0 203 -37.5t134.5 -98.5t74.5 -138.5t23 -156.5q0 -121 -43 -213t-115 -153.5t-166 -93t-197 -31.5q-93 0 -164.5 24.5 t-120 63.5t-73 88.5t-24.5 100.5z" /> +<glyph unicode="6" horiz-adv-x="1134" d="M107 550q0 9 0.5 53t6.5 110.5t20 148t41 165t69 163t104.5 141t147 99t197.5 37.5q86 0 149.5 -24t105 -60t62 -79t20.5 -94q-3 -45 -30 -70.5t-66 -25.5q-42 0 -66 26.5t-24 61.5q0 17 6.5 39t21.5 40q-5 19 -19.5 38t-37.5 34.5t-55.5 25.5t-73.5 10 q-78 -2 -136 -38.5t-100.5 -94t-70.5 -129t-46 -145t-27 -141t-13 -116.5q27 34 62 64.5t78 54t93.5 37.5t107.5 14q77 0 136.5 -17.5t104 -47.5t74.5 -71t49 -87.5t27 -97t8 -100.5q0 -102 -35.5 -194t-100 -161.5t-155 -110.5t-200.5 -41q-117 0 -200 40.5t-135 116 t-76 183.5t-24 243zM284 542q0 -93 12 -182t41.5 -158.5t79.5 -112t127 -42.5q81 0 137.5 34t91.5 89.5t51 126.5t16 146q0 58 -9 121.5t-35 117t-73.5 88.5t-124.5 35q-49 0 -104 -22.5t-101.5 -59t-77.5 -84t-31 -97.5z" /> +<glyph unicode="7" horiz-adv-x="926" d="M65 1143l14 291h858l-6 -136q-55 -102 -100 -197t-83.5 -189t-71.5 -188.5t-65.5 -194t-65 -207.5t-69.5 -228q-8 -25 -17.5 -48.5t-23.5 -41.5t-32.5 -28.5t-42.5 -8.5q-41 3 -56.5 29t-13.5 63q1 33 18 83t41.5 107t52 116t50.5 110q33 72 76.5 169.5t93.5 207 t105 224.5t109 221l-540 -3q-41 0 -74 -8t-56 -26t-36.5 -46.5t-15.5 -70.5h-49z" /> +<glyph unicode="8" horiz-adv-x="1155" d="M115 292q0 70 26.5 134t71 120.5t104 105t125.5 87.5q-134 81 -200.5 167.5t-66.5 174.5q0 100 41 173t106 120t144 70t156 23q75 0 145 -20t124.5 -59t87 -96.5t32.5 -133.5q0 -71 -26.5 -126.5t-67 -103t-92 -86.5t-107.5 -67q64 -38 120.5 -84t98.5 -99.5t66.5 -113 t24.5 -123.5q0 -101 -40 -174t-106 -120.5t-151.5 -70.5t-175.5 -23q-85 0 -164 16.5t-140.5 55t-98.5 100.5t-37 153zM285 312q0 -128 72.5 -195.5t205.5 -67.5q61 0 112 21t87.5 58t57 88t20.5 112q0 56 -20.5 106.5t-58.5 94.5t-91 81.5t-90.5 56t-67.5 33.5 q-66 -45 -110 -96t-70 -102.5t-36.5 -100.5t-10.5 -89zM356 1126q0 -94 71 -172.5t219 -139.5q55 36 95 77.5t65.5 84.5t38 86t12.5 82q0 59 -17.5 104.5t-48.5 76t-74 46.5t-95 16q-63 0 -112 -22.5t-83.5 -59t-52.5 -83.5t-18 -96z" /> +<glyph unicode="9" horiz-adv-x="1131" d="M117 957q0 104 31 197t91.5 162.5t150 110t207.5 40.5q126 -2 209.5 -52.5t133.5 -137t70.5 -202.5t20.5 -248q0 -71 -6 -162.5t-25.5 -187t-56.5 -187t-98.5 -163.5t-152 -116t-216.5 -44q-89 0 -155 23t-109.5 60t-65 83t-21.5 93q0 51 27.5 82.5t71.5 31.5 q42 0 65 -27t23 -62q0 -18 -8.5 -42.5t-26.5 -38.5q6 -20 18.5 -42t35.5 -40.5t57.5 -30.5t85.5 -12q76 0 133 33.5t98 88.5t68 125.5t43 144.5t24 146t11 129q-27 -34 -62 -65t-78 -54.5t-94.5 -37.5t-111.5 -14q-76 0 -134.5 17t-101.5 47t-72 70t-47 86.5t-25.5 96.5 t-7.5 99zM303 999q0 -39 4 -81t14.5 -82.5t28 -77.5t45.5 -64.5t66.5 -44t90.5 -16.5q47 0 93.5 18t87 48t72 69.5t49.5 82.5q-1 103 -13 199.5t-42.5 171.5t-83.5 120.5t-136 45.5q-73 0 -125 -33t-85.5 -88t-49.5 -125t-16 -143z" /> +<glyph unicode=":" horiz-adv-x="519" d="M120 90q0 28 10.5 52.5t28.5 43t41 29t47 10.5q48 0 77 -35t29 -87v-7q-1 -27 -11.5 -51t-27.5 -41t-38.5 -27t-44.5 -10t-43 9.5t-35 26t-24 39t-9 48.5zM151 922q0 28 10.5 52.5t28.5 43t41 29t47 10.5q48 0 77 -35t29 -87v-7q-1 -27 -11.5 -51t-27.5 -41t-38.5 -27 t-44.5 -10t-43 9.5t-35 26t-24 39t-9 48.5z" /> +<glyph unicode=";" horiz-adv-x="554" d="M140 86q0 28 9 49.5t25 36t36.5 22t44.5 7.5q63 0 97 -44.5t34 -116.5q0 -38 -10.5 -88.5t-31.5 -105t-52.5 -109.5t-73.5 -103l-51 41q18 20 38 54t37 75.5t28 87.5t11 108h-3q-13 -5 -25 -7t-23 -2q-20 0 -36.5 8t-28.5 21t-18.5 30.5t-6.5 35.5zM157 922 q0 28 10.5 52.5t28.5 43t41 29t47 10.5q48 0 77 -35t29 -87v-7q-1 -27 -11.5 -51t-27.5 -41t-38.5 -27t-44.5 -10t-43 9.5t-35 26t-24 39t-9 48.5z" /> +<glyph unicode="<" horiz-adv-x="1104" d="M66 575l6 134l934 405l-8 -123l-794 -342v-2l759 -342l-8 -127z" /> +<glyph unicode="=" horiz-adv-x="1203" d="M133 383l6 119l911 -4l-6 -111zM153 776l6 119l912 -4l-6 -111z" /> +<glyph unicode=">" horiz-adv-x="1103" d="M100 179l8 123l794 342v2l-759 342l8 127l889 -397l-6 -134z" /> +<glyph unicode="?" horiz-adv-x="969" d="M104 1172q0 46 30.5 98t86.5 95.5t135 72.5t176 29q108 0 181.5 -26.5t119 -70.5t65.5 -100t20 -115q0 -24 -7 -70.5t-43.5 -106t-91.5 -111.5t-113 -96t-110.5 -84t-83.5 -76t-31 -70q0 -23 18 -42.5t63 -19.5q14 0 36 3.5t42 11.5l21 -72q-34 -20 -76 -28.5t-88 -8.5 q-18 0 -44.5 7t-51 22.5t-41.5 40t-17 60.5q0 49 32 91.5t82.5 85t104.5 86.5t103.5 98.5t80 121.5t30.5 153q0 49 -12 92t-39.5 75t-73 50.5t-111.5 18.5q-45 0 -85 -13.5t-71.5 -34.5t-52 -46.5t-25.5 -48.5q18 -17 24 -39.5t6 -41.5q0 -36 -25.5 -64t-67.5 -28t-69 28 t-27 73zM336 81q0 26 10.5 49.5t27.5 41t38 27.5t43 10q44 0 73 -32t29 -79v-10q-1 -25 -10.5 -47t-25 -38.5t-36 -26t-44.5 -9.5q-42 0 -73.5 30t-31.5 84z" /> +<glyph unicode="@" horiz-adv-x="1623" d="M87 479q0 90 21 186.5t64.5 188t109 173.5t154.5 143.5t201 97.5t249 36q109 0 200 -24.5t163 -68t126 -102.5t90 -128t54 -145t18 -153q0 -58 -6 -101.5t-26.5 -113t-54.5 -127t-77 -97.5t-87.5 -65t-88.5 -36t-80 -11q-54 0 -89 15t-55.5 39.5t-29 56.5t-8.5 65 q0 45 9 93.5t20 96.5h-4q-44 -117 -88.5 -187t-86.5 -107.5t-81.5 -49t-72.5 -11.5q-41 0 -76.5 14.5t-62 45.5t-42 79t-15.5 114q0 117 33.5 224t97.5 188.5t157.5 130t214.5 48.5q48 0 105 -6t108 -20q-15 -84 -31.5 -171t-30.5 -166.5t-23.5 -147t-9.5 -113.5 q0 -35 5 -64t16.5 -51t30.5 -34t47 -12q47 0 90.5 32t77.5 91t54 142.5t20 185.5q0 151 -40 259t-110.5 177t-165.5 101.5t-205 32.5q-145 0 -263.5 -60t-202.5 -161.5t-129.5 -234.5t-45.5 -279q0 -106 23.5 -191.5t65 -152.5t98 -115t123 -79.5t140 -46.5t148.5 -15 q52 0 111.5 8.5t121 30t121.5 59.5t113 98l47 -51q-110 -120 -254.5 -174t-315.5 -54q-175 0 -305 54t-215.5 146.5t-127.5 214.5t-42 259zM572 409q0 -88 24.5 -138t72.5 -50q37 0 75.5 31t75 83.5t69 121.5t58 145t42 155t20.5 150q-45 19 -124 19q-51 0 -94 -23t-78 -62 t-61.5 -90.5t-44 -109t-26.5 -117.5t-9 -115z" /> +<glyph unicode="A" d="M-29 0l3 68q38 1 68 19.5t55.5 52t48 80.5t45.5 104l462 1149h46l391 -1166q6 -20 13.5 -46.5t14 -55t11 -56.5t4.5 -52v-15l133 8v-90h-449l2 68q37 1 61 9.5t38 22.5t19.5 32.5t5.5 38.5q0 23 -5.5 47t-11.5 44l-59 192l-524 -12l-83 -219q-9 -24 -16.5 -43t-15 -35 t-15 -31t-16.5 -32l153 8v-90h-379zM375 530h469l-216 658h-4l-85 -230q-53 -134 -92.5 -238.5t-71.5 -189.5z" /> +<glyph unicode="B" horiz-adv-x="1267" d="M82 0l5 68q57 1 87.5 20.5t44.5 54t17 82t6 105.5l45 860q2 57 6 96.5t9 65.5l-150 -9l6 91q112 0 223 2t234 2q114 0 203 -19t150 -58.5t93 -100t32 -143.5q0 -53 -19.5 -107.5t-61.5 -102.5t-108.5 -84.5t-159.5 -52.5v-4q109 0 189.5 -25.5t133.5 -71t79 -108 t26 -137.5q0 -99 -37.5 -178t-104 -133.5t-158 -83.5t-198.5 -29h-592zM394 84q25 -2 59.5 -3t67 -1h58h32.5q83 0 151 21t116.5 63t75 105t26.5 147q0 83 -27 139.5t-73.5 91t-107.5 49.5t-128 15q-63 0 -112.5 -1.5t-98.5 -4.5l-25 -461q-3 -57 -6 -95.5t-8 -64.5z M437 784q38 0 76.5 1t72.5 3q91 4 153 33.5t100.5 74.5t55.5 101.5t17 115.5q0 78 -27 127t-69 76.5t-94 37.5t-101 10q-50 0 -80.5 -10t-48 -33.5t-25 -61.5t-10.5 -94z" /> +<glyph unicode="C" horiz-adv-x="1405" d="M100 648q0 100 20.5 199.5t62 190.5t103.5 169.5t144.5 136t186 90.5t226.5 33q117 0 215 -30t189 -93h2l-5 111h111l-25 -475h-74q-5 96 -35.5 171t-83 126.5t-125 78.5t-161.5 27q-113 0 -214 -50t-177.5 -142t-121.5 -222.5t-45 -290.5q0 -135 39.5 -246.5t108.5 -191 t163 -123t204 -43.5q66 0 133 14.5t130 43.5t119 71.5t101 99.5l51 -43q-71 -89 -149 -146t-156 -89.5t-152 -45t-137 -12.5q-148 0 -268 52.5t-204.5 144t-130 216t-45.5 268.5z" /> +<glyph unicode="D" horiz-adv-x="1512" d="M82 0l5 68q57 2 87.5 21t44 52t16.5 78.5t5 99.5l49 885q2 42 6 79.5t9 68.5l-152 -9l6 91l475 2h9q173 0 315 -39q146 -40 249.5 -122.5t160 -208t56.5 -296.5q0 -100 -22.5 -195.5t-67 -181.5t-112 -158t-157.5 -124t-202.5 -81.5t-248.5 -29.5h-531zM392 82 q34 -2 62.5 -3t55 -1h51h50.5q139 0 253.5 54t196 148.5t126.5 222t45 275.5q0 132 -37 239.5t-112.5 183.5t-190.5 117.5t-272 41.5q-58 0 -90.5 -13.5t-48.5 -42t-20.5 -72t-7.5 -103.5l-47 -887q-3 -56 -6 -95t-8 -65z" /> +<glyph unicode="E" horiz-adv-x="1268" d="M83 0l5 68q57 2 87.5 21t44 52t16.5 78.5t5 99.5l49 885q2 42 6 79.5t9 68.5l-150 -9l4 91h977l-8 -359h-68q1 19 1 37q-1 66 -15 110q-18 56 -54 88t-86 42q-46 10 -98 10h-10l-176 -4q-58 -2 -90 -16.5t-48 -44.5t-21 -75.5t-9 -107.5l-18 -328l147 -2h21q51 0 90 4 q47 5 78.5 24.5t47.5 58t19 106.5h68l-23 -447h-67q1 14 1 26q0 50 -10 80q-12 38 -40.5 55t-74.5 19q-26 1 -57 2q-25 0 -55 -1l-149 -6l-25 -469q-3 -56 -6 -95t-8 -65l391 6q67 1 122 16.5t95.5 52t64.5 97t29 151.5h70l-33 -399h-1049z" /> +<glyph unicode="F" horiz-adv-x="1107" d="M83 0l5 68q57 2 87.5 21t44 52t16.5 78.5t5 99.5l49 885q2 42 6 79.5t9 68.5l-150 -9l4 91h942l-8 -359h-67q1 15 1 30q-1 71 -17 117q-20 56 -56.5 88t-87.5 42q-47 10 -99 10h-10l-149 -4q-53 -2 -83 -17.5t-45 -44t-19.5 -70t-7.5 -95.5l-19 -377h159q55 1 94 7.5 t65 26.5t39.5 57.5t16.5 100.5h68l-23 -448h-67q1 15 1 28q0 44 -8 71q-10 36 -34 54t-62.5 22.5t-93.5 4.5q-80 0 -159 -6l-23 -428q-2 -56 -5.5 -96t-8.5 -66l209 8l-5 -90h-514z" /> +<glyph unicode="G" horiz-adv-x="1543" d="M100 629q0 100 20.5 201.5t61.5 194.5t102.5 173.5t144.5 140.5t187 94t230 34q55 0 111.5 -8t110.5 -22.5t103.5 -35t91.5 -46.5l-4 98h113l-25 -469h-73q-2 96 -34.5 170.5t-88.5 126t-132 78t-165 26.5q-76 0 -147.5 -24t-133.5 -68t-113.5 -107t-88.5 -141.5 t-57.5 -170t-20.5 -193.5q0 -135 37.5 -248t105 -194.5t162.5 -127t211 -45.5q40 0 85.5 6t92 18t92 31.5t86.5 46.5l23 446l-144 -8l4 90h457l-4 -67q-39 0 -65.5 -14.5t-43.5 -37t-27 -50t-15 -54.5t-6.5 -50.5t-2.5 -37.5l-16 -311h-49q-35 0 -91.5 -12t-131.5 -41 q-32 -12 -71 -22t-79.5 -17t-80.5 -11t-73 -4q-148 0 -268 45t-204.5 130.5t-130.5 208.5t-46 278z" /> +<glyph unicode="H" horiz-adv-x="1584" d="M84 0l5 68q57 2 87 21t43.5 52t16.5 78.5t6 99.5l47 885q2 42 6 79.5t9 68.5l-148 -9l4 91h453l-4 -68q-50 -2 -79.5 -17.5t-45 -43.5t-21 -69.5t-8.5 -96.5l-20 -365h734l23 430q2 42 6 79.5t9 68.5l-148 -9l4 91h453l-4 -68q-50 -2 -79.5 -17t-45 -43t-21 -69t-8.5 -96 l-47 -897q-3 -56 -6 -96t-8 -66l147 8l-4 -90h-452l4 68q57 2 87.5 21t44 52t16.5 78.5t5 99.5l20 374l-734 -9l-23 -440q-3 -56 -6 -96t-8 -66l147 8l-4 -90h-453z" /> +<glyph unicode="I" horiz-adv-x="681" d="M84 0l5 68q57 2 87.5 21t44.5 52t16.5 78.5t4.5 99.5l47 885q2 42 6 79.5t9 68.5l-148 -9l4 91h453l-4 -68q-54 -2 -84 -18t-45 -45t-19 -71.5t-6 -97.5l-47 -890q-2 -57 -5.5 -96.5t-8.5 -65.5l147 8l-4 -90h-453z" /> +<glyph unicode="J" horiz-adv-x="751" d="M-29 112q0 42 24 73.5t67 34.5q25 1 43 -7t30 -21.5t17.5 -30.5t5.5 -33q0 -10 -2 -23t-7 -24q10 -17 31 -24.5t38 -6.5q18 1 39.5 8t41.5 33.5t35 78.5t20 144l53 1038l-209 -9l4 91h537l-5 -68q-51 0 -82.5 -15.5t-50 -43t-26 -64.5t-9.5 -80l-34 -663 q-7 -144 -30 -245.5t-65 -165.5t-106 -93t-152 -29q-37 0 -74 7.5t-67 25t-48.5 45t-18.5 67.5z" /> +<glyph unicode="K" horiz-adv-x="1365" d="M84 0l5 68q57 2 87.5 21t44 52t16.5 78.5t5 99.5l47 885q2 42 6 79.5t9 68.5l-148 -9l4 91h453l-4 -68q-50 -2 -79.5 -18t-45 -45.5t-21 -71.5t-8.5 -97l-19 -356h160l273 404q27 41 67.5 88.5t90.5 81.5v2l-130 -4l5 84h440l-4 -68q-65 -5 -118.5 -17.5t-103.5 -42 t-99.5 -81t-106.5 -135.5l-217 -320q28 -18 50 -38.5t40.5 -42.5t35 -45.5t33.5 -47.5l215 -305q54 -78 93.5 -122.5t72 -67t61.5 -28t62 -5.5l-4 -68h-242q-15 0 -37 16.5t-47.5 44.5t-54.5 64.5t-57 75.5l-227 331q-35 52 -73 97.5t-73 68.5l-109 -2l-24 -452 q-3 -56 -6 -96t-8 -66l147 8l-4 -90h-453z" /> +<glyph unicode="L" horiz-adv-x="1181" d="M82 0l5 68q57 2 87 21t43.5 52t16.5 78.5t6 99.5l49 885q2 42 5 79.5t10 68.5l-146 -9v91h453l-4 -68q-54 -2 -84 -21.5t-45 -52.5t-19 -78t-6 -100l-47 -878q-3 -56 -6 -95t-8 -65l383 6q64 1 114.5 20.5t85.5 60.5t55 105.5t25 155.5h70l-35 -424h-1008z" /> +<glyph unicode="M" horiz-adv-x="1878" d="M61 0l4 68q48 1 75.5 16.5t43 41t21.5 59t10 71.5l110 1096l-147 -6l4 88h305q62 -161 118 -310t109 -293.5t106.5 -288t110.5 -292.5h5q13 28 28.5 62t31.5 70t31 70t27 62q49 111 104.5 227.5t112 234t112 233t103.5 225.5h295l-4 -68h-6q-34 0 -61 -10 q-29 -12 -47.5 -38t-28.5 -69q-9 -39 -8 -94v-12l6 -932q0 -37 -1 -69t-3 -60l151 8l-6 -90h-450l4 68h16q42 4 67.5 21.5t38.5 48t17 74t4 99.5v701v88t2 88h-4l-72 -157l-487 -1051h-59q-96 242 -180.5 483t-174.5 483q-15 40 -25.5 69t-20.5 57.5t-20 61t-24 80.5h-4 q-4 -115 -11.5 -215t-15.5 -190l-53 -553q-5 -46 -9 -91t-10 -83l154 8l-6 -90h-389z" /> +<glyph unicode="N" horiz-adv-x="1561" d="M92 0l2 68q47 0 75 16.5t43 40.5t20 52t6 52l55 1123l-137 -9l4 91h243l824 -1172h4l43 942q2 45 5.5 81.5t8.5 66.5l-147 -9l4 91h377l-4 -68q-58 -2 -87.5 -21.5t-42.5 -52.5t-15 -78t-5 -100l-57 -1137h-99l-837 1197h-4l-33 -889q-3 -53 -5 -104t-9 -99l147 8l-4 -90 h-375z" /> +<glyph unicode="O" horiz-adv-x="1613" d="M100 670q0 159 52.5 303t149.5 254t235 175t309 65q120 0 217.5 -29.5t173 -81t130.5 -120.5t91 -148t53 -164t17 -168q0 -87 -20.5 -179.5t-61.5 -180t-103 -165.5t-144.5 -136.5t-187 -93t-229.5 -34.5q-120 0 -217.5 29t-173 79.5t-130.5 118.5t-91 146t-53 162.5 t-17 167.5zM296 703q0 -70 11.5 -145t36.5 -147.5t64 -137.5t94.5 -114.5t127.5 -78.5t162 -29q88 0 162.5 28t134.5 76.5t105.5 114t76 140t46 155t15.5 158.5q0 80 -14 160.5t-42 154t-70 137t-97 110.5t-123.5 73.5t-150.5 26.5q-87 0 -160.5 -28.5t-133 -77.5 t-105.5 -115.5t-77 -142.5t-47 -157.5t-16 -160.5z" /> +<glyph unicode="P" horiz-adv-x="1222" d="M83 0l5 68q57 2 87.5 21t44 52t16.5 78.5t5 99.5l47 885q2 42 6 79.5t9 68.5l-150 -9l6 91q109 2 218.5 2.5t230.5 0.5q296 0 443 -102.5t147 -298.5q-1 -53 -13.5 -110.5t-43 -113t-82 -105t-128.5 -87t-183 -59.5t-246 -22h-35t-44 2l-16 -297q-3 -56 -6 -96t-8 -66 l188 10l-4 -92h-494zM427 626q39 -4 67.5 -5t66.5 -1q87 0 166 26t139 75t97 119.5t42 160.5q1 12 1 24q0 81 -24 141q-28 68 -81.5 110.5t-130.5 61.5t-170 19q-49 0 -77 -16t-42.5 -46t-19.5 -73t-7 -98z" /> +<glyph unicode="Q" horiz-adv-x="1614" d="M100 670q0 159 52.5 303t149.5 254t235 175t309 65q120 0 217.5 -29.5t173 -81t130.5 -120.5t91 -148t53 -164t17 -168q0 -77 -16 -158t-48 -159.5t-80 -151.5t-112.5 -133t-145.5 -104t-178 -65v-2q43 0 80.5 -3t74.5 -15.5t77.5 -38.5t89.5 -71q71 -66 119.5 -111 t83 -72.5t60.5 -39t52 -11.5h12v-67h-65q-56 0 -97 2t-78 12.5t-74 33.5t-85 66q-51 46 -90.5 86t-72 73.5t-61 59t-57.5 43.5t-61.5 27.5t-73.5 9.5q-120 0 -217.5 29t-173 79.5t-130.5 118.5t-91 146t-53 162.5t-17 167.5zM296 703q0 -70 11.5 -145t36.5 -147.5t64 -137.5 t94.5 -114.5t127.5 -78.5t162 -29q88 0 162.5 28t134.5 76.5t105.5 114t76 140t46 155t15.5 158.5q0 80 -14 160.5t-42 154t-70 137t-97 110.5t-123.5 73.5t-150.5 26.5q-87 0 -160.5 -28.5t-133 -77.5t-105.5 -115.5t-77 -142.5t-47 -157.5t-16 -160.5z" /> +<glyph unicode="R" horiz-adv-x="1281" d="M83 0l5 68q57 2 87.5 21t44.5 52t16.5 78.5t4.5 99.5l47 885q2 42 6 79.5t9 68.5l-150 -9l6 91q91 1 177.5 2.5t177.5 1.5q26 0 52.5 -0.5t118 -3.5t185 -27t157 -70t93 -109t29.5 -139q0 -60 -16 -125.5t-59.5 -124.5t-121.5 -106.5t-201 -72.5v-2q38 -29 69 -73 t66 -104l127 -219q24 -41 46.5 -76.5t49.5 -61.5t61.5 -41t82.5 -15l-4 -68h-250q-48 38 -89.5 98t-80.5 129l-126 220q-12 22 -26 47.5t-29.5 51t-33.5 50t-38 44.5q-17 -1 -34 -1h-35q-7 0 -18.5 0.5t-23.5 1t-22.5 1t-14.5 0.5l-21 -398q-3 -57 -6 -96.5t-8 -65.5l147 8 v-90h-457zM432 720q22 -2 41.5 -3.5t40.5 -1.5q95 0 176.5 17.5t141 58.5t93 109t33.5 170q0 142 -84.5 215.5t-265.5 73.5q-54 0 -84 -16t-45 -46.5t-19 -74t-6 -98.5z" /> +<glyph unicode="S" horiz-adv-x="1160" d="M97 -16l11 436h80q1 -95 30 -164t80 -114t120.5 -67t151.5 -22q62 0 119 17.5t100.5 52t69 84.5t25.5 116q0 72 -31.5 124.5t-83.5 93.5t-118 74t-135 65.5t-135 68t-118 82t-83.5 107t-31.5 142.5q0 34 7.5 76t26.5 85t51 83.5t80.5 72.5t115 51t154.5 19q39 0 83.5 -5 t90 -17t90 -32.5t85.5 -50.5l-3 87h104l-22 -449h-74q-1 74 -21.5 143.5t-62.5 123t-107 86t-155 32.5q-66 0 -118 -21t-88 -56.5t-55 -82t-19 -97.5q0 -66 32 -114.5t84.5 -87t119.5 -70.5t137 -64.5t137 -69.5t119.5 -85t84.5 -111t32 -148q0 -90 -34 -165.5t-98 -130 t-157.5 -85t-211.5 -30.5q-39 0 -85.5 4t-94 14t-93.5 27t-85 43l6 -71h-107z" /> +<glyph unicode="T" horiz-adv-x="1303" d="M73 1001l35 433h1186l-10 -433h-78q0 13 0.5 25.5t0.5 24.5q0 79 -11 137t-39.5 96.5t-76.5 57t-122 18.5l-175 -2l-67 -1114q-4 -57 -6.5 -96.5t-7.5 -65.5l170 8l-4 -90h-473l4 68q49 2 78 22t44 53.5t20.5 78.5t8.5 97l63 1038l-210 -1q-65 0 -111 -21.5t-76.5 -65 t-46.5 -110.5t-20 -158h-76z" /> +<glyph unicode="U" horiz-adv-x="1523" d="M110 1346l4 88h455l-4 -68q-52 0 -82 -17.5t-45 -42.5t-19.5 -53t-5.5 -49q-30 -568 -30 -617q0 -100 16 -191t60 -160.5t121 -110.5t200 -41q109 0 190.5 40t136.5 111.5t85 171.5t38 220l37 577q2 42 5.5 79.5t8.5 68.5l-147 -9l4 91h383l-2 -68q-59 -2 -89.5 -21 t-44.5 -52.5t-16.5 -79t-5.5 -99.5l-28 -477q-8 -134 -43 -255t-104.5 -213.5t-177.5 -147t-261 -54.5q-150 0 -253 35.5t-166.5 110t-91.5 188.5t-28 272q0 79 31 613q1 27 2.5 48.5t3.5 41t4.5 38t5.5 38.5z" /> +<glyph unicode="V" horiz-adv-x="1361" d="M48 1343l4 91h467l-4 -70q-73 -5 -106.5 -34t-33.5 -81q0 -23 6 -49t17 -57l168 -477q22 -58 43 -114t40 -107t35 -96t27 -79h5q13 36 26 69.5t27.5 68t30.5 72.5t34 83l262 637q21 54 37.5 90.5t30.5 61.5l-158 -9l4 91h416l-4 -68q-45 -2 -79 -13t-61 -34.5t-50 -61 t-45 -92.5l-496 -1188h-53l-402 1092q-20 52 -33.5 93.5t-22 75t-12.5 60.5t-5 50z" /> +<glyph unicode="W" horiz-adv-x="2035" d="M57 1343l4 91h491l-4 -68q-44 -2 -74.5 -9t-49.5 -20.5t-27.5 -34.5t-8.5 -51q0 -22 4 -48.5t12 -59.5l130 -477q12 -46 24 -89t24.5 -86t25.5 -87t26 -92h4q12 34 27 74.5t30 79.5t27.5 72.5t20.5 53.5l311 846h57l213 -772q25 -94 51 -185t51 -188h4q23 60 49.5 128 t53.5 140l242 639q13 34 30.5 74.5t39.5 75.5l-164 -7l4 91h416l-4 -68q-53 -6 -88 -19t-63 -44.5t-54.5 -88.5t-63.5 -151l-426 -1085h-53l-233 806q-15 53 -27.5 95.5t-22 78.5t-17.5 67.5t-15 61.5h-7l-421 -1109h-54l-308 1091q-15 54 -27 95.5t-21 74.5t-14.5 59.5 t-8.5 49.5z" /> +<glyph unicode="X" horiz-adv-x="1335" d="M-1 0l4 68q49 10 87 30.5t71 51t65 71.5t70 92l284 380q-85 124 -187 276.5t-128.5 195.5t-43 74.5t-26.5 56t-20 52.5l-115 -5l4 91h533v-68l-94 -4q-57 -2 -78.5 -19t-21.5 -41q0 -25 21.5 -69.5t110.5 -180.5t148 -223l213 285q27 37 54.5 73t52 67.5t46.5 57t39 40.5 l-172 -9l4 91h404l-4 -68q-49 -7 -94.5 -35t-87.5 -68t-80.5 -88t-73.5 -94l-249 -328l466 -667l119 4l-4 -90h-504l4 68h12q60 0 84.5 20t24.5 49q0 27 -24.5 71.5t-279.5 407.5l-220 -303q-42 -55 -83.5 -114t-95.5 -119l170 10l-4 -90h-401z" /> +<glyph unicode="Y" horiz-adv-x="1313" d="M42 1343l4 91h520l-4 -68q-71 0 -108.5 -16.5t-49.5 -45.5q-6 -16 -6 -34q0 -17 5 -37q11 -41 38 -90q97 -169 161.5 -276.5t105.5 -168.5h4q40 70 76.5 133t213.5 363l21 35t26 41.5t29.5 42.5t30.5 37l-162 -7l4 91h418l-4 -68q-51 -3 -91.5 -20t-77.5 -49.5t-72 -81 t-74 -113.5q-79 -133 -149 -254t-136 -234q-22 -370 -21 -370q-2 -56 -5.5 -96t-8.5 -66l170 8l-4 -90h-473l4 68q58 2 88 22t43.5 53.5t15.5 78.5t5 97l12 234l-324 563q-49 82 -71 137.5t-27 94.5z" /> +<glyph unicode="Z" horiz-adv-x="1254" d="M58 0l7 94q61 81 140 184t177 235t215.5 295.5t255.5 365.5q32 46 65.5 92t75.5 92l-528 -8q-61 -3 -107.5 -23.5t-79 -62t-51 -104.5t-22.5 -150h-70l35 424h1016l-4 -72l-803 -1116q-24 -33 -43.5 -58t-37 -45t-34 -36t-33.5 -31l506 8q68 1 127 21.5t104 61.5 t72.5 104t32.5 149h70l-35 -420h-1051z" /> +<glyph unicode="[" horiz-adv-x="739" d="M94 -522l145 2068h543l-8 -114l-399 -7l-135 -1826l411 -7l-9 -114h-548z" /> +<glyph unicode="\" horiz-adv-x="1607" d="M99 1480l1296 -2035l97 68l-1280 2043z" /> +<glyph unicode="]" horiz-adv-x="739" d="M-57 -522l8 114l399 7l135 1826l-411 7l9 114h548l-145 -2068h-543z" /> +<glyph unicode="^" horiz-adv-x="1686" d="M111 891l661 563h174l596 -571h-176l-517 501h-2l-573 -493h-163z" /> +<glyph unicode="_" horiz-adv-x="1454" d="M49 -217l6 115l1260 -9l-7 -106h-1259z" /> +<glyph unicode="`" horiz-adv-x="491" d="M93 1496q0 31 16 48.5t44 17.5q18 0 41 -13.5t46 -51.5l159 -270l-49 -41l-211 219q-26 28 -36 50.5t-10 40.5z" /> +<glyph unicode="a" horiz-adv-x="1123" d="M75 334q0 144 37.5 273t112 227t186.5 155.5t262 57.5q63 0 135.5 -9t139.5 -26q-17 -126 -33 -252.5t-29 -237t-21 -197.5t-8 -133q0 -20 1 -40t7 -36t17.5 -26t32.5 -10q17 0 36.5 10.5t39.5 34t39 61.5t34 92l58 -12q-7 -36 -26.5 -85.5t-52.5 -95t-80 -77t-108 -31.5 q-41 0 -70 13.5t-47 37.5t-26 58t-8 76q0 58 10.5 127t26.5 147h-6q-32 -101 -66.5 -174t-69.5 -124t-70.5 -82.5t-69 -49t-65 -23.5t-59.5 -6q-55 0 -102.5 19.5t-82.5 62t-55 110.5t-20 165zM247 368q0 -65 6.5 -120.5t22.5 -95.5t41 -62.5t63 -22.5q47 0 94 40t89.5 107 t80 156t65 187t43.5 199t17 192q-31 13 -71 19t-88 6q-93 0 -161.5 -52t-113 -137.5t-66.5 -194t-22 -221.5z" /> +<glyph unicode="b" horiz-adv-x="1047" d="M72 1409l8 82q67 0 111.5 4.5t74 12t46 17.5t28.5 21h60q-7 -43 -13.5 -89.5t-12 -92t-10.5 -88l-9 -76.5q-14 -137 -29 -281t-31 -309h6q27 99 58.5 170t65 119.5t69 77.5t70.5 44.5t69 20.5t64 5q70 0 119 -31t79.5 -83t44 -120.5t13.5 -142.5q0 -141 -31.5 -267 t-100 -220.5t-176.5 -150t-260 -55.5q-25 0 -58.5 2t-69.5 7.5t-72.5 13.5t-67.5 20q48 763 90 1289q2 26 3.5 41l2.5 25t2.5 19t3.5 23zM269 96q25 -25 67.5 -36t83.5 -11q72 1 126.5 27.5t94.5 70.5t66 102t41.5 122.5t22 131t6.5 128.5q0 153 -33 236.5t-107 83.5 q-49 -2 -94.5 -42.5t-85.5 -107t-73.5 -153t-58.5 -181t-39.5 -190.5t-16.5 -181z" /> +<glyph unicode="c" horiz-adv-x="969" d="M79 426q0 67 12.5 139t39 141t66 131t94 108.5t124 74t154.5 27.5q66 0 122 -18.5t97.5 -51t64.5 -76t23 -94.5q0 -48 -24 -74.5t-68 -26.5q-23 0 -38.5 8.5t-25 21.5t-14 27t-4.5 26q0 18 4.5 38.5t21.5 38.5q-11 57 -56.5 83t-105.5 26q-59 0 -105 -22t-80 -60 t-57.5 -88t-37.5 -105.5t-20.5 -114t-6.5 -112.5q0 -108 18.5 -183t52 -122t79.5 -68.5t100 -21.5q40 0 83 12.5t84 42.5t78.5 79t67.5 123l72 -34q-39 -89 -87 -150.5t-102 -100t-112.5 -56t-118.5 -17.5q-90 0 -163 27t-124.5 82.5t-79.5 140t-28 199.5z" /> +<glyph unicode="d" horiz-adv-x="1136" d="M78 366q0 150 37.5 275t112.5 215t186.5 140.5t259.5 50.5q59 0 115 -9q6 57 13 119.5t17 134.5q5 37 10 66.5t13 58.5l-149 -8l8 82q67 0 111.5 4.5t73.5 12t46 17.5t29 21h59q-6 -38 -13 -85t-14 -95t-12.5 -93t-9.5 -79l-37 -320q-11 -98 -22 -197t-19 -189 t-13 -167.5t-5 -132.5q0 -20 1 -39.5t6.5 -34.5t16.5 -24.5t31 -9.5q17 0 36.5 10.5t39 34t38 61.5t33.5 93l60 -13q-7 -36 -26.5 -85.5t-52.5 -95t-79.5 -77t-107.5 -31.5q-42 0 -71.5 13.5t-49 37.5t-28.5 58t-9 76q0 60 7.5 123t23.5 141h-6q-42 -141 -90.5 -228.5 t-98.5 -136.5t-99.5 -66.5t-94.5 -17.5q-71 0 -123 30.5t-86.5 83.5t-51 123.5t-16.5 151.5zM254 402q0 -70 7.5 -130t24.5 -104.5t44.5 -69.5t67.5 -25q48 0 97.5 43.5t93.5 115.5t80 165.5t58 194.5q16 72 27.5 159t24.5 202q-34 11 -69.5 15.5t-70.5 4.5 q-72 0 -128.5 -25t-99.5 -67.5t-73 -99t-48.5 -120t-27 -130.5t-8.5 -129z" /> +<glyph unicode="e" horiz-adv-x="976" d="M80 420q0 79 13.5 156.5t41 147t68.5 129t96.5 102.5t125 67.5t153.5 24.5q54 0 105.5 -12.5t91.5 -40t64.5 -72.5t24.5 -111q0 -57 -27 -102.5t-73 -81.5t-106.5 -63t-127.5 -47t-136.5 -32.5t-133.5 -19.5q1 -193 57 -289t177 -96q45 0 90 14.5t88.5 44.5t83.5 76.5 t74 111.5l67 -38q-86 -161 -192.5 -236.5t-245.5 -75.5q-98 0 -169 32t-118 90t-69.5 139.5t-22.5 181.5zM262 539q81 11 158.5 34t138.5 58.5t98.5 83t37.5 106.5q0 33 -9 61.5t-27 49.5t-45.5 33t-64.5 12q-71 0 -122.5 -37.5t-86 -99t-53.5 -140.5t-25 -161z" /> +<glyph unicode="f" horiz-adv-x="665" d="M-256 -449q0 12 4.5 26.5t14 27.5t25.5 21.5t39 8.5q38 0 59 -26t21 -68q22 -16 61 -16q48 0 80 34.5t53 98t33.5 152.5t21.5 197.5t17 233.5t20 261q10 109 17 219.5t19 216.5l-179 -2l10 88h180q16 113 43.5 210t75.5 168.5t120.5 112.5t177.5 41q71 0 109.5 -28 t38.5 -78q0 -12 -4 -26.5t-14 -27t-25.5 -20.5t-38.5 -8q-38 0 -59.5 26t-21.5 68v8q-5 4 -17.5 6.5t-26.5 2.5q-54 0 -89.5 -33.5t-58 -93.5t-35 -144t-19.5 -184h290l-6 -80l-290 -4q-7 -106 -12.5 -221.5t-16.5 -235.5q-11 -124 -20.5 -249t-26 -240t-44 -215.5 t-74.5 -174.5t-118 -116.5t-174 -42.5q-160 0 -160 106z" /> +<glyph unicode="g" horiz-adv-x="1060" d="M28 -382q0 21 7.5 40t20 33.5t30 22.5t38.5 8q37 0 65 -23t28 -71q0 -26 -13 -53q10 -16 26 -27t35.5 -18t40 -10t39.5 -3q73 0 127 25.5t92 70t63.5 105.5t41.5 131t25 146.5t16 153.5t13 150t16 137h-7q-29 -99 -59.5 -171.5t-62.5 -123.5t-64 -83t-64.5 -50 t-64.5 -24.5t-63 -6.5q-72 0 -124 30t-86 83.5t-50.5 126t-16.5 158.5q0 132 35.5 253.5t109 214.5t186 148.5t266.5 55.5q34 0 70 -2.5t70.5 -7t65.5 -11t55 -14.5q-16 -250 -39 -502t-41 -481q-12 -149 -53 -258.5t-108 -182t-158.5 -108t-204.5 -35.5q-25 0 -56.5 3.5 t-65 11.5t-65.5 21t-57.5 32t-41.5 45t-17 60zM249 410q0 -71 7.5 -132.5t25 -106.5t45.5 -71t70 -26q48 0 94 40t86.5 108t75 156.5t60.5 185.5t42.5 195.5t21.5 186.5q-27 14 -62 20.5t-72 6.5q-75 0 -133.5 -26t-102.5 -69.5t-74 -100.5t-48.5 -119.5t-27 -126.5 t-8.5 -121z" /> +<glyph unicode="h" horiz-adv-x="1171" d="M101 1409l9 82q67 0 111.5 4.5t73.5 12t46 17.5t29 21h59q-6 -38 -14 -84.5t-15.5 -93.5t-14.5 -91.5t-11 -78.5q-5 -35 -10.5 -83.5t-11.5 -104t-12 -115t-11 -115.5t-9.5 -105t-7.5 -85h7q52 140 103 229t101 139.5t99.5 69.5t99.5 19q61 0 104 -21.5t70 -58t39 -85 t12 -101.5q0 -85 -9 -174t-19.5 -170.5t-19.5 -149.5t-9 -112q0 -19 1.5 -36.5t7.5 -30.5t17 -21t29 -8q16 0 36 10.5t40.5 34t39.5 61.5t34 93l51 -13q-7 -36 -25.5 -85.5t-50 -94.5t-77.5 -76.5t-107 -31.5q-48 0 -80 13t-51 38.5t-27 62t-8 84.5q0 57 9 135.5t20.5 166.5 t20.5 178t9 171q0 18 -4 39.5t-15 40.5t-30 32t-49 13q-46 0 -92.5 -36t-90 -98t-81.5 -145t-66 -176.5t-44.5 -192.5t-16.5 -194q0 -31 1 -57t3 -52h-168q-2 22 -2 30q0 26 2.5 81t6.5 130.5t10 166t13 188.5t15.5 198t17.5 193.5t18 176t19 145.5q4 26 6.5 41t5 25.5 t4 19.5t3.5 22z" /> +<glyph unicode="i" horiz-adv-x="663" d="M15 758q7 36 25 85.5t49.5 95t76.5 77t107 31.5q43 0 75.5 -15.5t54 -43.5t32 -67t10.5 -87q0 -62 -12 -141.5t-27 -168t-27 -180.5t-12 -178q0 -42 15 -64t49 -22q17 0 36.5 10.5t39.5 34t39 61.5t34 92l58 -12q-9 -43 -28.5 -93.5t-50.5 -94t-74.5 -72.5t-100.5 -29 q-185 0 -185 193q0 89 12.5 174t27.5 168.5t27.5 168t12.5 171.5q0 13 -2.5 29t-8.5 30t-17 23.5t-29 9.5q-17 0 -36.5 -10.5t-40 -34t-39.5 -61.5t-34 -92zM279 1372q0 26 9 47.5t24.5 37t35.5 24t42 8.5q48 0 78 -31.5t30 -85.5q0 -26 -9 -47t-24 -36t-35 -23.5t-42 -8.5 q-23 0 -42.5 8.5t-34.5 23.5t-23.5 36t-8.5 47z" /> +<glyph unicode="j" horiz-adv-x="609" d="M-212 -444q0 17 5.5 34t16.5 30.5t27.5 22t38.5 8.5q38 0 63 -24t25 -69v-9t-1 -9q17 -11 40 -11q44 0 79 34.5t62.5 92t48.5 131.5t36 152.5t25.5 156.5t17 142.5t9.5 110.5t4 61q6 88 10.5 180.5t4.5 174.5q0 22 0.5 52t-4.5 57.5t-18 46.5t-40 19q-16 0 -34.5 -10.5 t-37 -34t-36.5 -62t-33 -95.5l-57 12q6 36 22.5 87t46.5 97.5t76 79.5t111 33q81 0 125.5 -52t44.5 -157q0 -42 -1 -93.5t-3.5 -108.5t-6.5 -118.5t-10 -124.5q-10 -104 -23.5 -215t-36 -216t-57.5 -199t-87.5 -164.5t-125.5 -112t-172 -41.5q-26 0 -53.5 5.5t-50 18.5 t-37 34t-14.5 53zM275 1372q0 26 8.5 48t23.5 37.5t34.5 24.5t42.5 9q48 0 79 -31.5t31 -85.5q0 -26 -9 -47t-24 -36t-35 -23t-42 -8q-45 0 -77 30t-32 82z" /> +<glyph unicode="k" horiz-adv-x="1064" d="M101 1409l9 82q67 0 111 4.5t72.5 12t44.5 17.5t28 21h59q-8 -38 -15.5 -84.5t-14 -93.5t-12 -91.5t-9.5 -78.5q-19 -144 -34 -298t-26 -310h7q46 136 94 224t98 140t102.5 72.5t106.5 20.5q52 0 90 -19t62 -50t35.5 -71t11.5 -81q0 -55 -24 -113.5t-73 -110 t-123.5 -91.5t-175.5 -58v-2q35 -1 61.5 -9t47 -25t38 -44t34.5 -66t34 -77.5t35 -69t38.5 -49.5t44.5 -19q30 0 53 28.5t40 99.5l58 -12q-9 -43 -27 -84.5t-45 -74t-64 -52.5t-85 -20q-39 0 -71 15.5t-59.5 48t-53 83.5t-52.5 122q-20 50 -37 86.5t-34.5 60t-38.5 35 t-50 12.5l-54 -1q-23 -85 -35.5 -170t-12.5 -160q0 -31 1 -57t3 -52h-168q-2 22 -2 30q0 27 2.5 82t6.5 130t10 165.5t13 188t15.5 197.5t17.5 193.5t18 176t19 146.5q4 26 6.5 41t5 25.5t4 19.5t3.5 22zM355 498h2q196 0 297 82.5t101 241.5q0 19 -3 41.5t-12.5 42 t-27 32.5t-46.5 13q-49 -3 -91.5 -41t-82 -100t-75 -143t-62.5 -169z" /> +<glyph unicode="l" horiz-adv-x="579" d="M111 1409l9 82q67 0 111.5 4.5t73.5 12t46 17.5t29 21h59q-6 -38 -14 -84.5t-15.5 -93.5t-14.5 -91.5t-11 -78.5q-9 -72 -19.5 -161.5t-20.5 -185.5t-19.5 -193t-16.5 -185.5t-11.5 -162.5t-4.5 -123q0 -20 1.5 -39.5t7 -34.5t17 -24.5t31.5 -9.5q16 0 36 10.5t39.5 34 t38.5 61.5t34 93l59 -13q-7 -36 -26.5 -85.5t-52 -94.5t-79.5 -76.5t-108 -31.5q-89 0 -126.5 45.5t-37.5 137.5q0 48 5 127t13.5 177.5t20 209t24 222t25 217.5t24.5 194q4 27 7 43.5t5 28t3.5 19.5t3.5 19z" /> +<glyph unicode="m" horiz-adv-x="1794" d="M16 758q7 36 26.5 85.5t52.5 95t79.5 77t107.5 31.5q45 0 75 -17t47 -45.5t24 -66t7 -79.5q0 -33 -3.5 -67t-8 -66t-10.5 -62t-10 -54h6q48 140 97 229t97 139.5t94 69.5t88 19q61 0 103 -22.5t67.5 -57t36.5 -76t11 -78.5q0 -29 -2 -52t-6.5 -47t-11 -51.5t-15.5 -66.5 h7q51 140 101.5 228t99 137.5t94.5 67.5t88 18q61 0 102.5 -21.5t66.5 -58t35.5 -85t10.5 -101.5q0 -85 -10.5 -174t-23.5 -170.5t-23.5 -149.5t-10.5 -112q0 -19 1.5 -36.5t7.5 -30.5t17 -21t29 -8q16 0 36.5 10.5t41 34t40 61.5t34.5 93l57 -13q-7 -36 -26.5 -85.5 t-52.5 -94.5t-80 -76.5t-109 -31.5q-48 0 -80 13t-50.5 38.5t-26 62t-7.5 84.5q0 56 11.5 134.5t25.5 166t25.5 178.5t11.5 172q0 18 -4 39.5t-15 40.5t-30 32t-49 13q-48 0 -94.5 -38.5t-88.5 -103t-77 -149.5t-60.5 -178.5t-40 -190t-14.5 -182.5q0 -31 1 -57t3 -52h-172 q-2 22 -2 30v23q0 50 5.5 114.5t13.5 135t17.5 143.5t17.5 141.5t13.5 128.5t5.5 104q0 18 -3 40.5t-13 43t-29.5 34t-52.5 13.5q-47 0 -93 -38.5t-87.5 -103t-77.5 -149.5t-62 -178.5t-40.5 -190t-14.5 -182.5q0 -31 1 -57t3 -52h-172q-2 22 -2 30q0 28 1.5 59t6 78.5 t12 118t19.5 177.5q9 80 15.5 136t11 94t7.5 62t4.5 40.5t2 29t0.5 27.5q0 18 -2 35t-8 29.5t-16.5 20t-28.5 7.5q-17 0 -36.5 -10.5t-40 -34t-39.5 -61.5t-34 -92z" /> +<glyph unicode="n" horiz-adv-x="1259" d="M15 758q7 36 26.5 85.5t52.5 95t79.5 77t107.5 31.5q45 0 75 -17.5t47 -47t24 -68t7 -81.5q0 -33 -3.5 -68t-8 -68t-10.5 -63t-10 -54h6q52 140 103 230.5t101.5 143t100 73t99.5 20.5q61 0 104 -21.5t69 -58t38 -85t12 -101.5q0 -85 -9.5 -174t-21 -170.5t-21 -149.5 t-9.5 -112q0 -19 1.5 -36.5t7.5 -30.5t17 -21t29 -8q16 0 36 10.5t40 34t39 61.5t34 93l58 -13q-7 -36 -26.5 -85.5t-52.5 -94.5t-79.5 -76.5t-107.5 -31.5q-49 0 -81 13t-51 38.5t-26.5 62t-7.5 84.5q0 57 10 135t21.5 165.5t21.5 178t10 172.5q0 18 -4 39.5t-14.5 40.5 t-29 32t-48.5 13q-47 0 -95.5 -38.5t-93.5 -103t-84 -149.5t-68 -178.5t-46 -190t-17 -182.5q0 -31 1 -57t3 -52h-172q-2 22 -2 30q0 28 2 59t6.5 78.5t12.5 117.5t20 178q9 80 15.5 136t10.5 94t7 62t4 40.5t1.5 29t0.5 27.5q0 18 -2 35t-8 29.5t-16.5 20t-28.5 7.5 q-17 0 -36.5 -10.5t-40 -34t-39.5 -61.5t-34 -92z" /> +<glyph unicode="o" horiz-adv-x="1068" d="M79 436q0 124 35 235.5t100 194.5t159 132t212 49q83 0 154 -30t123.5 -87t82 -140.5t29.5 -191.5q0 -124 -33.5 -236.5t-98 -198t-158 -136t-212.5 -50.5q-101 0 -175 36t-122.5 98t-72 146t-23.5 179zM259 482q0 -47 4.5 -97t15.5 -97.5t28.5 -89.5t44 -74t62 -50.5 t81.5 -18.5q53 0 95.5 22t75.5 58.5t57 85t39.5 102t23 108.5t8.5 127q0 47 -4.5 96t-15.5 95t-29 86t-45 70.5t-64 48t-86 17.5q-69 0 -123.5 -38.5t-91.5 -105t-56.5 -155.5t-19.5 -190z" /> +<glyph unicode="p" horiz-adv-x="1169" d="M36 758q7 36 26.5 85.5t52.5 95t79.5 77t107.5 31.5q46 0 76.5 -17.5t48 -47t24.5 -68.5t7 -81q0 -63 -10 -125t-19 -109h7q42 141 87 228.5t91.5 136t93.5 66t92 17.5q70 0 122.5 -32t86.5 -86t51 -126t17 -153q0 -150 -39 -273.5t-115 -212.5t-189.5 -138t-261.5 -49 q-50 0 -96 6l-16 -257q-3 -42 -5.5 -88.5t-11.5 -81.5l129 6v-84h-387v61q43 0 66.5 22.5t34.5 61t15 91t9 112.5q9 118 19 231t20 216.5t18.5 194.5t15.5 164t11 125.5t4 78.5q0 20 -1 39.5t-6.5 34.5t-16.5 24.5t-31 9.5q-17 0 -36.5 -10.5t-39 -34t-38 -61.5t-33.5 -92z M382 71q32 -11 61.5 -17.5t63.5 -6.5q72 0 129.5 24.5t101 67t74.5 98.5t50.5 118.5t28.5 129t9 128.5q0 70 -6.5 131.5t-22.5 107.5t-44 72.5t-70 26.5q-37 0 -74 -27.5t-72 -76t-66.5 -114.5t-58 -142t-47.5 -159t-34 -166q-8 -46 -13 -93.5t-10 -101.5z" /> +<glyph unicode="q" horiz-adv-x="1061" d="M77 365q0 149 38.5 273.5t114.5 214.5t188 141t259 53q25 0 61.5 -1.5t74 -4t72.5 -6.5t58 -9q-7 -86 -16.5 -190.5t-20.5 -219t-22.5 -234t-22 -235t-19.5 -223.5t-15 -198q-3 -42 -7.5 -88.5t-13.5 -81.5l129 6v-84h-387v61q44 0 67 22.5t34.5 61t15 91t8.5 112.5 q12 156 28.5 307.5t35.5 292.5h-7q-41 -143 -88 -231t-95.5 -136.5t-98 -65t-95.5 -16.5q-71 0 -122.5 30t-86 82.5t-51 123.5t-16.5 152zM253 396q1 -71 8.5 -130t24 -102t44.5 -67t71 -24q48 0 94.5 40.5t88 108.5t77 158t62.5 188t44.5 199t22.5 192q-62 18 -146 18 q-72 -1 -129 -27t-100.5 -70t-74 -101.5t-50 -122t-28.5 -131.5t-9 -129z" /> +<glyph unicode="r" horiz-adv-x="932" d="M15 758q7 36 26.5 85.5t52.5 95t79.5 77t107.5 31.5q42 0 71 -14t46.5 -40t25 -63t7.5 -82q0 -53 -8 -115.5t-22 -132.5h6q45 133 92 219.5t95.5 137t98.5 70.5t100 20q31 0 57 -8.5t45.5 -24t30.5 -37.5t11 -49q0 -18 -6.5 -36t-18.5 -31.5t-29.5 -22t-39.5 -8.5 q-38 0 -64 21.5t-31 63.5q-6 2 -11.5 2h-10.5q-46 0 -89.5 -39.5t-83 -105t-72.5 -151t-56.5 -177.5t-37 -184.5t-13.5 -171.5v-26t0.5 -20.5t1.5 -19t2 -22.5h-170q-2 22 -2 30q0 27 0.5 59.5t3.5 81.5t9.5 121.5t18.5 180.5q9 80 15 135t10.5 92t7.5 59.5t4.5 38t2 27.5 t0.5 28q0 18 -2 34t-8 29t-17 20.5t-29 7.5q-17 0 -36.5 -10.5t-40 -34t-39.5 -61.5t-34 -92z" /> +<glyph unicode="s" horiz-adv-x="876" d="M61 196q0 45 25.5 73t63.5 28q41 0 62 -27t21 -60q0 -15 -3.5 -30.5t-14.5 -32.5q8 -22 25 -39.5t40.5 -29.5t50.5 -18.5t55 -6.5q111 0 166 50.5t55 144.5q0 52 -36.5 93.5t-92 79t-119.5 73.5t-119.5 76.5t-92 89t-36.5 110.5q0 56 25.5 106.5t72 88.5t111.5 60t145 22 q58 0 112.5 -14.5t97 -40.5t68 -63t25.5 -83q0 -45 -24.5 -70t-61.5 -25t-59.5 25t-22.5 57q0 16 4 32t15 33q-11 34 -51 57.5t-109 23.5q-34 0 -67.5 -11.5t-60.5 -33t-43.5 -51.5t-16.5 -66q0 -37 21.5 -68.5t57 -59.5t81 -54.5t92.5 -54.5t92.5 -59t81 -67.5t57 -80 t21.5 -97.5q0 -65 -28 -119.5t-79 -94.5t-122 -62.5t-156 -22.5q-62 0 -121.5 14.5t-105.5 42t-74 68.5t-28 94z" /> +<glyph unicode="t" horiz-adv-x="746" d="M45 938l6 86q126 0 200.5 75t114.5 214h78l-37 -289h326l-6 -77l-328 -5q-9 -86 -19.5 -177.5t-19 -181t-14.5 -172.5t-6 -151q0 -30 2.5 -61.5t12 -57.5t28.5 -42.5t53 -16.5q15 0 36 4t46.5 18.5t53.5 43t57 77.5l53 -35q-30 -53 -61.5 -92.5t-67 -66.5t-76.5 -40.5 t-90 -13.5q-60 0 -101 19.5t-65.5 53t-35.5 77.5t-11 92q0 58 3.5 136.5t10 171.5t16.5 197.5t23 215.5z" /> +<glyph unicode="u" horiz-adv-x="1215" d="M13 758q7 36 25.5 85.5t50 95t77 77t107.5 31.5q82 0 124 -51t42 -148q0 -39 -5 -90t-12.5 -108.5t-16 -118t-16 -119.5t-12.5 -112.5t-5 -96.5q0 -18 3.5 -40t14 -42t29.5 -33.5t49 -13.5q47 0 94 38.5t90 103t80 149.5t64.5 178.5t43 189.5t15.5 182q0 31 -1 57t-3 52 h172q2 -22 2 -30q0 -29 -1.5 -61t-6 -80.5t-12.5 -120t-21 -179.5q-9 -80 -15.5 -135t-10.5 -92.5t-7 -60.5t-4 -38.5t-1.5 -27.5t-0.5 -27q0 -37 11.5 -63.5t43.5 -26.5q16 0 36 10t40.5 33.5t39.5 61t34 91.5l57 -12q-7 -36 -26.5 -85.5t-52 -95t-79 -77t-108.5 -31.5 q-42 0 -71.5 13.5t-49 37.5t-28.5 58t-9 76q0 58 11 127t26 147h-6q-52 -140 -100 -229t-95 -140t-94 -70.5t-97 -19.5q-62 0 -104.5 21.5t-69 58.5t-38.5 85.5t-12 101.5q0 85 10 173.5t22.5 169.5t22.5 149t10 112q0 19 -1.5 36.5t-7.5 30.5t-17 21t-29 8q-17 0 -36 -10.5 t-38 -34t-37 -61.5t-33 -92z" /> +<glyph unicode="v" horiz-adv-x="1078" d="M8 755q6 37 23.5 87t49 95.5t78 77.5t109.5 32q84 0 124 -56t40 -159q0 -45 -3 -99.5t-7.5 -113t-9.5 -117.5t-9.5 -112t-7.5 -98t-3 -75q0 -24 3.5 -47t14 -41t30 -29.5t51.5 -11.5q50 1 106 31.5t107.5 81t93.5 117.5t66 141q11 36 20.5 92t9.5 118q0 39 -5 77 t-16.5 70t-31 56.5t-47.5 36.5q-12 -27 -33.5 -39t-47.5 -12q-14 0 -29 5t-27.5 15.5t-21 26.5t-9.5 39q0 15 6 33t19.5 33.5t36.5 26t56 10.5q63 0 110 -28.5t77.5 -77.5t45.5 -114t15 -138q0 -68 -12 -139t-38 -138q-31 -83 -82 -161t-116 -139t-140.5 -98t-155.5 -37 q-69 0 -113 25t-69.5 66t-35.5 95t-10 111q0 82 6.5 167t14.5 162t14.5 141t6.5 105q0 19 -2 36t-8.5 30t-18 20.5t-29.5 7.5q-17 0 -35.5 -11t-36.5 -35t-35 -62.5t-32 -92.5z" /> +<glyph unicode="w" horiz-adv-x="1641" d="M10 758q7 36 25.5 85.5t50 95t77 77t107.5 31.5q81 0 123.5 -51t42.5 -148q0 -45 -4 -101.5t-10.5 -117.5t-13.5 -123.5t-13.5 -119t-10.5 -102.5t-4 -75q0 -23 4 -45t14 -39t27 -28t43 -11q66 0 130 48t114.5 139t82 223.5t31.5 301.5q0 53 -3 109.5t-11 116.5h175 q2 -9 3.5 -21.5t2.5 -25.5t1.5 -25.5t0.5 -19.5q0 -103 -10.5 -197.5t-23.5 -180t-23.5 -163.5t-10.5 -148q0 -30 4.5 -59t17 -51t35 -35.5t58.5 -13.5q50 0 100.5 21.5t96.5 60.5t85.5 93t69 119.5t46 140t16.5 154.5q0 39 -5 76t-16 69t-30.5 55.5t-47.5 35.5 q-12 -27 -35 -39t-49 -12q-14 0 -29 5t-27.5 16t-20.5 27.5t-8 39.5q0 17 6.5 35t20.5 32.5t37.5 24t58.5 9.5q62 0 108 -29t76 -78t45 -114t15 -138q0 -68 -12.5 -138.5t-37.5 -137.5q-34 -92 -86 -171t-119 -138t-145.5 -92.5t-165.5 -33.5q-36 0 -73.5 11t-68 39.5 t-49.5 77t-19 122.5q0 27 3 59h-4q-21 -60 -57.5 -116t-83.5 -99t-101.5 -68.5t-110.5 -25.5q-60 0 -100.5 21t-65.5 57.5t-36 85t-11 103.5q0 81 8.5 169t18.5 170t18.5 151.5t8.5 113.5q0 19 -1.5 36.5t-7.5 30.5t-17 21t-30 8q-17 0 -36 -10.5t-37.5 -34t-36.5 -61.5 t-33 -92z" /> +<glyph unicode="x" horiz-adv-x="1117" d="M30 81q0 45 24.5 70t58.5 25q24 0 39 -8.5t23 -21t11.5 -27.5t4.5 -27q4 -1 7 -1.5t7 -0.5q27 0 57 23t63 74t69.5 132t75.5 197q-94 259 -116 308.5t-43 73.5t-48 24q-18 0 -35.5 -9t-32 -31.5t-24 -62t-12.5 -99.5l-59 -2q0 28 3 63t12 71.5t24 71.5t39.5 62.5t58.5 44 t80 16.5q55 0 90.5 -26.5t62.5 -77.5t51.5 -126.5t58.5 -172.5h2q54 133 106.5 213t99.5 122t86.5 55t68.5 13q54 0 82.5 -28.5t28.5 -71.5q0 -18 -6.5 -34t-18 -28t-26.5 -19t-33 -7q-23 0 -39 7t-27 16.5t-17.5 20t-10.5 17.5q-21 -3 -47.5 -22t-59 -62t-70 -114.5 t-81.5 -179.5l14 -36q108 -257 137.5 -306.5t55 -73.5t51.5 -24q74 0 104 162l58 -7q-7 -53 -20.5 -103t-37.5 -89.5t-60 -63.5t-87 -24q-34 0 -61 6.5t-50.5 24.5t-46 49t-47 79t-53 116.5t-64.5 160.5h-2q-52 -150 -99.5 -237t-91 -131t-84 -56t-78.5 -12q-60 0 -93 29 t-33 75z" /> +<glyph unicode="y" horiz-adv-x="1053" d="M-24 -426q0 23 8 40.5t20.5 29.5t27.5 18t29 6q41 0 64 -25.5t23 -73.5v-8q26 -13 52 -13q29 0 60.5 17t62 44t59 61t52.5 67t42.5 62.5t29.5 47.5q-18 118 -43 244t-56.5 250.5t-69 243.5t-80.5 223q-7 18 -16 36.5t-21 34t-26 25.5t-32 10q-35 0 -56.5 -43.5 t-21.5 -115.5q0 -27 3 -55l-66 -7q-3 28 -3 60q0 51 9 103.5t30.5 95t58 69t91.5 26.5q52 0 89.5 -22t64.5 -56t45.5 -75t32.5 -78q23 -62 43.5 -132t39 -143t35 -147.5t33.5 -145.5q11 -49 18 -97t13 -112h4q43 75 85 163.5t75 180.5t53.5 184.5t20.5 176.5q0 51 -9.5 89.5 t-21.5 55.5q-19 -13 -50 -13q-37 0 -59.5 24.5t-22.5 56.5q0 22 8 38.5t21 28t30.5 17.5t35.5 6q47 0 78.5 -23t50.5 -60t27 -84t8 -95q0 -102 -23 -207.5t-61 -210t-87 -206t-101 -196.5q-78 -141 -149.5 -239.5t-139 -161t-132.5 -91t-130 -28.5q-72 4 -114 39.5t-42 89.5 z" /> +<glyph unicode="z" horiz-adv-x="965" d="M36 28q49 73 166.5 234t240 318.5t177.5 226t102 125.5h-4q-47 -50 -91 -67t-81 -17t-69 9.5t-63 20.5t-62.5 20.5t-68.5 9.5q-18 0 -37.5 -5t-36 -18.5t-27.5 -37t-11 -59.5q0 -17 3 -36.5t11 -41.5l-55 -18q-11 31 -19 65.5t-8 69.5q0 49 18 89.5t48.5 69.5t70.5 45 t84 16q46 0 83.5 -10t72.5 -22.5t72 -22.5t84 -10q13 0 33.5 2t45.5 9t52 20t53 35l61 -57q-26 -33 -74.5 -93t-110.5 -136.5t-203.5 -254.5t-208 -263.5t-118.5 -156.5h4q48 54 103.5 80t130.5 26q37 0 73.5 -11t71.5 -23.5t69.5 -23.5t68.5 -11q18 0 37.5 4t36.5 15.5 t28 33.5t11 58q0 34 -15 78l55 18q11 -31 18 -65.5t7 -69.5q0 -49 -16.5 -89.5t-45.5 -69t-68 -44.5t-84 -16q-46 0 -91.5 11.5t-91 25.5t-90.5 25.5t-90 11.5t-90.5 -13.5t-96.5 -60.5z" /> +<glyph unicode="{" horiz-adv-x="680" d="M11 474v107h53q64 0 104.5 14t63.5 44.5t31.5 77.5t8.5 113q0 59 -3 122.5t-3 126.5q0 123 19 213t64 148.5t119.5 87t185.5 28.5h57l-4 -70h-23q-74 0 -125 -21t-82.5 -65t-45.5 -111t-14 -160q0 -32 1.5 -69t4 -75.5t4 -76t1.5 -69.5q0 -74 -18.5 -128t-51 -91 t-75.5 -59t-92 -32v-4q42 -8 79.5 -27.5t66 -51.5t45 -77.5t16.5 -104.5q0 -33 -6.5 -84.5t-14.5 -107t-15.5 -108t-8.5 -79t-1.5 -41.5t-0.5 -30q0 -73 12.5 -131t41 -98t75.5 -61.5t116 -21.5h11l-4 -57h-58q-96 0 -161.5 26t-105.5 76t-57.5 122.5t-17.5 164.5 q0 55 6.5 116t14.5 122t14.5 119t6.5 106q0 45 -9.5 78t-31.5 55t-58 33t-88 11h-47z" /> +<glyph unicode="|" horiz-adv-x="482" d="M113 -555l105 2111h143l-120 -2111h-128z" /> +<glyph unicode="}" horiz-adv-x="679" d="M-48 -555l4 70h23q74 0 125 21t82.5 65t45.5 111t14 160q0 32 -1.5 69t-4 75.5t-4 76t-1.5 69.5q0 74 18.5 128t51 91t75.5 59t92 32v4q-42 8 -79.5 27.5t-66 51.5t-45 77.5t-16.5 104.5q0 33 6.5 84.5t14.5 107t15.5 108t8.5 79t1.5 41.5t0.5 30q0 73 -12.5 131t-41 98 t-75.5 61.5t-116 21.5h-11l4 57h58q96 0 161.5 -26t105.5 -76t57.5 -122.5t17.5 -164.5q0 -55 -6.5 -116t-14.5 -122t-14.5 -119t-6.5 -106q0 -45 9.5 -78t31.5 -55t58 -33t88 -11h47v-107h-53q-64 0 -104.5 -14t-63.5 -44.5t-31.5 -77.5t-8.5 -113q0 -59 3 -122.5t3 -126.5 q0 -123 -19 -213t-64 -148.5t-119.5 -87t-185.5 -28.5h-57z" /> +<glyph unicode="~" horiz-adv-x="1172" d="M127 528l6 121q36 26 67.5 46.5t63.5 34.5t66 21t76 7q55 0 95 -11.5t70.5 -28.5t55 -37.5t50.5 -37.5t55.5 -28.5t70.5 -11.5q68 0 129 26t115 71l-6 -120q-48 -48 -112.5 -77.5t-145.5 -29.5q-51 0 -89 11t-68.5 28t-56.5 36t-53.5 36t-58.5 28t-72 11q-42 0 -76 -7.5 t-64 -20t-58.5 -30t-59.5 -37.5z" /> +<glyph unicode="¡" horiz-adv-x="518" d="M89 -322q0 10 1 15q0 4 122 860h75l31 -852q0 -26 -8 -52t-23.5 -46.5t-38.5 -33t-53 -12.5q-28 0 -48.5 10t-33 27t-18.5 39t-6 45zM148 926q2 27 13 51t29 42t40.5 28t46.5 10q23 0 43 -9.5t35 -25.5t24 -38t9 -48q0 -30 -10.5 -56t-28 -45.5t-40.5 -31t-48 -11.5 q-50 3 -81.5 36t-31.5 98z" /> +<glyph unicode="¢" horiz-adv-x="988" d="M84 426q0 65 12 134.5t36 136.5t61.5 128t88 108t115.5 77.5t144 36.5l18 227h121l-22 -235q49 -10 90.5 -32t70.5 -52.5t45.5 -68t16.5 -79.5q0 -48 -24 -74.5t-68 -26.5q-23 0 -38.5 8.5t-25 21.5t-14 27t-4.5 26q0 18 4.5 38.5t21.5 38.5q-11 57 -56.5 83.5 t-105.5 26.5q-59 0 -105 -22t-80 -60t-57.5 -88t-37.5 -106t-20.5 -114.5t-6.5 -112.5q0 -108 18.5 -183.5t52 -123.5t79.5 -70t100 -22q40 0 83 15t84 47.5t78.5 84t67.5 124.5l72 -34q-35 -80 -77 -139.5t-89.5 -100.5t-99 -64t-104.5 -30l-23 -241h-107l21 241 q-78 9 -140 40.5t-105.5 87t-67 135.5t-23.5 186z" /> +<glyph unicode="£" horiz-adv-x="1120" d="M60 37q0 28 14 54t39 48t59 39.5t73 28.5q32 45 50 105.5t18 135.5q0 53 -7 98.5t-17 92.5h-167l6 98h139q-10 49 -17 101.5t-7 116.5q0 125 28.5 214.5t81 156.5t126.5 104t165 37t150 -26t93.5 -64t48 -80.5t13.5 -76.5q0 -45 -22 -70t-63 -25q-21 0 -35.5 8t-23 20 t-12.5 25.5t-4 24.5q0 17 5 37t22 37q-5 19 -17 39.5t-31.5 37t-47 27t-64.5 10.5q-62 0 -113 -30t-82.5 -79t-46 -101.5t-14.5 -136.5q0 -86 11.5 -160t22.5 -147h315l-7 -98h-295l4 -54t2 -55q0 -95 -31.5 -164.5t-94.5 -141.5q28 4 56.5 6t57.5 2q67 0 126 -18 t109.5 -39.5t93 -39.5t77.5 -18q46 0 76.5 31.5t40.5 97.5h63q-6 -62 -23 -113t-45.5 -88t-67.5 -57.5t-89 -20.5q-43 0 -82.5 14t-78 35t-76.5 45.5t-77.5 45.5t-81.5 35t-101 14l-19 -2q-6 -39 -21 -73.5t-35 -59.5t-44 -39.5t-49 -14.5q-35 0 -56 21t-21 49z" /> +<glyph unicode="¤" horiz-adv-x="1136" d="M119 148l127 137q-30 46 -45 99t-15 111q0 72 23 142.5t70 130.5l-117 142l83 66l103 -139q48 38 105.5 59.5t129.5 21.5q70 0 126.5 -21.5t99.5 -59.5l118 139l76 -66l-133 -143q33 -51 50 -108.5t17 -118.5q0 -69 -22 -134.5t-63 -119.5l115 -138l-83 -66l-101 134 q-48 -36 -107.5 -57t-134.5 -21t-131.5 20.5t-101.5 56.5l-113 -133zM357 518q0 -48 8.5 -101t30.5 -97.5t58 -73t92 -28.5q42 0 74.5 17t57.5 45.5t42.5 65t28.5 76t16 78.5t5 71q0 40 -9.5 87.5t-31.5 89t-58.5 69.5t-91.5 28q-45 0 -79 -18t-59 -47t-41 -65t-25.5 -72.5 t-13.5 -69.5t-4 -55z" /> +<glyph unicode="¥" horiz-adv-x="1431" d="M105 1343l4 91h520l-4 -68q-89 0 -127 -25.5t-38 -70.5q0 -26 11.5 -58t32.5 -69q159 -275 192.5 -329.5t74.5 -115.5h4q40 70 76.5 133t106.5 182t107 181l21 35t26 41.5t29.5 42.5t30.5 37l-162 -7l4 91h418l-4 -68q-51 -3 -91.5 -20t-77.5 -49.5t-72 -81t-74 -113.5 l-266 -456l245 -1l-4 -88l-263 -2l-8 -130l265 -1l-4 -88l-267 -2l-4 -90q-2 -57 -5.5 -96.5t-8.5 -65.5l170 8l-4 -90h-473l4 68q58 2 88 22t43.5 53.5t15.5 78.5t5 97v14l-273 -1l6 96l272 -2l7 128l-273 -1l7 96l211 -1l-269 468q-48 83 -70.5 138t-27.5 94z" /> +<glyph unicode="¦" horiz-adv-x="535" d="M140 -555l33 762h143l-47 -762h-129zM209 794l33 762h144l-48 -762h-129z" /> +<glyph unicode="§" horiz-adv-x="1074" d="M75 597q0 45 12 94t36.5 98.5t61.5 96t87 86.5q-32 42 -51.5 90.5t-19.5 111.5q0 31 8.5 71.5t27.5 83t50.5 83t77 73t107 52t140.5 19.5q81 0 147 -21.5t113 -56.5t72.5 -79.5t25.5 -90.5q0 -20 -5.5 -40t-17.5 -35.5t-29.5 -25t-41.5 -9.5q-22 0 -37.5 7.5t-25.5 19.5 t-14.5 27t-4.5 30q0 20 7 37.5t18 31.5q0 25 -17.5 48t-46.5 40.5t-66 28t-77 10.5q-77 0 -128.5 -23.5t-82.5 -58.5t-44.5 -76t-13.5 -75q0 -61 28 -109.5t73.5 -89.5t103.5 -77.5t118.5 -73t118.5 -76.5t103.5 -88.5t73.5 -107.5t28 -134q0 -47 -13.5 -96t-39.5 -97 t-64.5 -93t-88.5 -84q35 -43 56 -94t21 -117q0 -32 -8.5 -72t-27.5 -81.5t-50 -81t-77 -70.5t-107 -50t-141 -19q-81 0 -147 21.5t-113 56.5t-72.5 79.5t-25.5 90.5q0 21 6 40.5t17.5 35.5t29 25.5t41.5 9.5q22 0 37.5 -7.5t25.5 -19.5t14.5 -27t4.5 -30q0 -20 -7 -38 t-18 -32q0 -25 17.5 -48t46.5 -40.5t66 -28t77 -10.5q82 0 134.5 23t83 57.5t42 75.5t11.5 78q0 48 -19 87t-54 74.5t-84 70t-110 74.5q-66 43 -133 87t-122 96t-89.5 116t-34.5 146zM232 674q0 -67 25.5 -119t67 -95t95 -79t110.5 -70t112.5 -70t100.5 -78q45 50 68 119.5 t23 134.5q0 67 -26 119t-68.5 94.5t-97 78t-112 69.5t-113.5 69.5t-101 77.5q-38 -48 -58.5 -108t-23 -91.5t-2.5 -38v-13.5z" /> +<glyph unicode="¨" horiz-adv-x="719" d="M115 1373q1 23 10 43.5t23 35.5t32 24t37 9q20 0 36.5 -9t27.5 -24t17 -35.5t5 -43.5q-1 -24 -9.5 -44.5t-22 -35.5t-31 -23.5t-35.5 -8.5q-20 0 -36.5 8.5t-28.5 23.5t-18.5 35.5t-6.5 44.5zM416 1373q1 23 10 43.5t23 35.5t32 24t37 9q20 0 36.5 -9t27.5 -24t17 -35.5 t5 -43.5q-1 -24 -9.5 -44.5t-22 -35.5t-31 -23.5t-35.5 -8.5q-20 0 -36.5 8.5t-28.5 23.5t-18.5 35.5t-6.5 44.5z" /> +<glyph unicode="©" horiz-adv-x="1794" d="M93 661v25.5t1 26.5q6 114 39 219t88.5 196.5t131.5 166.5t169 128.5t200.5 83t225.5 29.5q116 0 217.5 -27.5t187 -77.5t152.5 -120.5t114 -156.5t71.5 -185t24.5 -207q0 -119 -30.5 -229.5t-86 -206.5t-133.5 -174.5t-173 -135t-204.5 -87.5t-227.5 -31q-176 0 -318 56 t-241.5 157.5t-153.5 241.5t-54 308zM224 668q0 -137 43 -259t125.5 -213.5t202.5 -145.5t273 -54q107 0 202 28.5t174.5 79.5t142.5 121.5t107 155t67 179.5t23 195q0 138 -45 262.5t-129 219t-203.5 150t-268.5 55.5q-153 0 -280 -57t-220.5 -155.5t-148.5 -231.5 t-64 -285q-1 -11 -1 -22.5v-22.5zM417 683q0 62 15.5 126t46 124.5t75.5 114t104 93.5t132 63t158 23q75 0 144.5 -23t120.5 -61h2l-5 74h99l-19 -345h-77q-5 67 -26.5 114.5t-56.5 77.5t-81 44t-99 14q-60 0 -122.5 -27t-113.5 -80t-83 -130.5t-32 -178.5 q0 -80 26.5 -148.5t73.5 -118.5t112.5 -78.5t142.5 -28.5q34 0 74.5 10t81 29t78.5 47t68 63l59 -63q-48 -62 -104.5 -102.5t-114 -64t-112 -33t-97.5 -9.5q-103 0 -189 36t-148.5 100t-97.5 150.5t-35 187.5z" /> +<glyph unicode="ª" horiz-adv-x="824" d="M131 1004q0 91 22 175t67.5 148t115.5 102t165 38q19 0 42.5 -1.5t48.5 -4.5t49 -7t45 -9q-10 -78 -20.5 -157.5t-18.5 -150t-13.5 -127t-5.5 -87.5q0 -28 3 -48t20 -20q9 0 18.5 3.5t19.5 15t20 32t20 55.5l45 -10q-7 -28 -18 -58t-30 -55.5t-46 -42t-66 -16.5 q-53 0 -73.5 31.5t-20.5 85.5q0 37 6.5 80t17.5 94h-4q-31 -96 -64.5 -153.5t-66.5 -88t-64.5 -40t-58.5 -9.5q-35 0 -64 12t-49 39t-31 69.5t-11 104.5zM245 1027q0 -88 21 -127.5t57 -39.5q26 0 53.5 24t53 64t48 93.5t40 112.5t28.5 120.5t13 117.5q-14 8 -36 13t-48 5 q-63 0 -107 -31.5t-71.5 -84.5t-39.5 -122.5t-12 -144.5z" /> +<glyph unicode="«" horiz-adv-x="1058" d="M51 540v8l602 575l49 -55l-448 -528v-4l372 -498l-59 -53zM487 546v6l434 399l51 -51l-280 -342v-4l229 -342l-59 -55z" /> +<glyph unicode="¬" horiz-adv-x="1199" d="M140 584l6 121l911 -5l-18 -378h-98l5 265z" /> +<glyph unicode="­" horiz-adv-x="987" d="M132 586v137h727v-129z" /> +<glyph unicode="®" horiz-adv-x="1794" d="M93 661v25.5t1 26.5q6 114 39 219t88.5 196.5t131.5 166.5t169 128.5t200.5 83t225.5 29.5q116 0 217.5 -27.5t187 -77.5t152.5 -120.5t114 -156.5t71.5 -185t24.5 -207q0 -119 -30.5 -229.5t-86 -206.5t-133.5 -174.5t-173 -135t-204.5 -87.5t-227.5 -31q-176 0 -318 56 t-241.5 157.5t-153.5 241.5t-54 308zM224 668q0 -137 43 -259t125.5 -213.5t202.5 -145.5t273 -54q107 0 202 28.5t174.5 79.5t142.5 121.5t107 155t67 179.5t23 195q0 138 -45 262.5t-129 219t-203.5 150t-268.5 55.5q-153 0 -280 -57t-220.5 -155.5t-148.5 -231.5 t-64 -285q-1 -11 -1 -22.5v-22.5zM506 279l4 69q37 1 58 13t31 33.5t13 51.5t5 66l28 535q2 27 3.5 52.5t4.5 45.5l-102 -10l4 86q31 1 70.5 2.5t82 3t85.5 2.5t81 1q110 0 187.5 -19.5t126 -54t70.5 -82.5t22 -106q0 -35 -12 -76.5t-42 -81.5t-80.5 -74.5t-126.5 -54.5v-2 q17 -8 36.5 -27.5t42.5 -55.5q53 -86 88.5 -137t61.5 -77.5t46 -34t43 -7.5l-4 -70h-168q-31 8 -65.5 50t-79.5 114q-40 63 -76 122t-65 104h-26.5t-32 1t-31 2t-23.5 3l-10 -205q-2 -35 -5 -60.5t-5 -44.5l98 4v-81h-338zM770 748h2q17 -2 35 -3t36 -1q23 0 53 3.5t62 13 t63 25.5t55.5 40.5t39.5 58.5t15 79q0 43 -18 76.5t-48 56t-69.5 34t-81.5 11.5q-48 0 -73.5 -12t-38 -34.5t-15.5 -54.5t-5 -72z" /> +<glyph unicode="¯" horiz-adv-x="733" d="M92 1321l6 115h543l-6 -107z" /> +<glyph unicode="°" horiz-adv-x="793" d="M121 1150q4 67 31.5 124.5t72 100.5t103 67.5t123.5 24.5q72 0 128 -24.5t93.5 -67.5t55.5 -100.5t14 -124.5q-3 -67 -30.5 -123t-71.5 -96.5t-102.5 -63t-123.5 -22.5q-72 0 -128 22.5t-93.5 63t-56 96.5t-15.5 123zM244 1156q-2 -42 9 -81t34.5 -69t57.5 -47.5 t77 -17.5q42 0 77.5 17.5t61.5 47.5t41.5 69t17.5 81q1 42 -10 81.5t-34 69.5t-56.5 48t-76.5 18q-42 0 -78 -18t-62.5 -48t-42 -69.5t-16.5 -81.5z" /> +<glyph unicode="±" horiz-adv-x="1164" d="M93 0l6 102l911 9l-6 -111h-911zM126 618l6 115l392 -2l17 326h123l-17 -326l396 -2l-6 -107l-396 -2l-18 -344h-123l18 343z" /> +<glyph unicode="²" horiz-adv-x="766" d="M119 627q3 63 25.5 116t58 99t81 86.5t95.5 79.5q47 37 76 72.5t45 67.5t21.5 60t5.5 49q0 62 -32 101t-95 39q-26 0 -49 -8t-41 -21t-30 -29.5t-16 -33.5q12 -13 15.5 -26.5t3.5 -25.5q0 -22 -16.5 -39t-42.5 -17q-24 0 -41 17t-17 45q0 32 18 68.5t52 67.5t83 51.5 t111 20.5q46 0 89 -12t75.5 -37.5t52 -64t19.5 -91.5q0 -31 -8 -64.5t-35 -73.5t-78 -88t-137 -108q-75 -53 -120 -98.5t-60 -91.5l258 -7q27 0 49.5 3t39 12.5t26.5 26t12 43.5h49l-19 -189h-524z" /> +<glyph unicode="³" horiz-adv-x="733" d="M116 809q0 15 4 31t13 29t22.5 21.5t32.5 8.5q29 0 44 -19t15 -43q0 -13 -4 -27t-16 -27q3 -42 39.5 -66t87.5 -24q42 0 74.5 16.5t55 42.5t34.5 59t12 65q0 25 -7 55.5t-26 56.5t-51.5 43.5t-98.5 17.5h-27t-17 -2l2 55h24q64 0 102 20.5t57.5 48t25.5 54.5t6 40 q0 30 -7.5 55t-24 43.5t-40 29t-65.5 10.5q-51 -2 -84 -30.5t-41 -64.5q8 -11 10.5 -21.5t2.5 -21.5q0 -22 -16 -38t-42 -16q-23 0 -38.5 17t-15.5 43q0 31 17 65.5t49.5 63.5t79 48t106.5 19q52 0 93.5 -13.5t71 -38t45.5 -60t16 -78.5q0 -27 -11.5 -56t-34.5 -55.5 t-58 -48t-81 -31.5q52 -4 90.5 -22.5t64 -46.5t38 -64t12.5 -75q0 -53 -20.5 -98.5t-58.5 -79.5t-92.5 -53.5t-123.5 -19.5q-57 0 -102.5 14t-77.5 38.5t-49 58t-17 71.5z" /> +<glyph unicode="´" horiz-adv-x="492" d="M93 1227l159 270q23 38 45 51.5t40 13.5q29 0 45.5 -17t16.5 -49q0 -18 -10 -40.5t-36 -50.5l-211 -219z" /> +<glyph unicode="¶" horiz-adv-x="1003" d="M102 1135q4 73 32 129t70.5 94t95.5 57t107 19h448l-104 -1956h-135l99 1872l-178 -5l-101 -1867h-136l74 1358q-50 4 -100.5 21.5t-90 53t-63 90.5t-18.5 134z" /> +<glyph unicode="·" horiz-adv-x="485" d="M128 661q0 28 10.5 52.5t28.5 43t41 29t47 10.5q48 0 77 -35t29 -87v-7q-1 -27 -11.5 -51t-27.5 -41t-38.5 -27t-44.5 -10t-43 9.5t-35 26t-24 39t-9 48.5z" /> +<glyph unicode="¸" horiz-adv-x="600" d="M92 -428q52 9 99.5 23.5t83.5 34t57.5 44t21.5 54.5q0 34 -20 48.5t-48 14.5q-24 0 -50 -8.5t-46 -22.5l-69 35l72 221h102l-62 -174q29 19 66 29t72 10q66 0 100.5 -35.5t34.5 -87.5q0 -43 -20.5 -77t-53.5 -60t-76 -45t-88 -32.5t-89 -22t-79 -13.5z" /> +<glyph unicode="¹" horiz-adv-x="553" d="M123 1301l231 166h51l-32 -684q-2 -23 -4 -43t-7 -37l107 4l-4 -70h-314l2 58q31 0 51.5 11.5t33 32t17.5 47.5t7 58l25 479h-5l-131 -76z" /> +<glyph unicode="º" horiz-adv-x="742" d="M125 1072q0 78 21.5 149.5t62.5 126t99.5 87t133.5 32.5q52 0 96.5 -20.5t77.5 -58.5t51.5 -92.5t18.5 -122.5q0 -78 -21 -150.5t-61.5 -129t-99.5 -90.5t-134 -34q-64 0 -110 24.5t-76 66t-44.5 96.5t-14.5 116zM248 1096q0 -44 6 -90.5t22 -85t43 -63t68 -24.5 q48 0 81 29.5t53.5 74t30 97.5t11.5 117q0 44 -6.5 89.5t-22 82t-42.5 60t-68 23.5q-42 0 -74.5 -24t-55 -66t-34.5 -98.5t-12 -121.5z" /> +<glyph unicode="»" horiz-adv-x="1067" d="M75 208l280 342v4l-229 342l59 55l375 -389v-6l-434 -399zM345 40l448 528v4l-372 498l59 53l516 -555v-8l-602 -575z" /> +<glyph unicode="¼" horiz-adv-x="1469" d="M116 1301l231 166h51l-32 -684q-2 -23 -4 -43t-7 -37l107 4l-4 -70h-314l2 58q31 0 51.5 11.5t33 32t17.5 47.5t7 58l25 479h-5l-131 -76zM192 14l1026 1453l72 -55l-1035 -1445zM792 215l4 61l432 566h55l-27 -551l115 -2l-4 -74h-115l-7 -149l86 4l-5 -70h-299l2 59 q31 1 51.5 10.5t33 27t17.5 41t7 52.5l1 25h-347zM891 296l253 -4l21 367h-2z" /> +<glyph unicode="½" horiz-adv-x="1579" d="M116 1301l231 166h51l-32 -684q-2 -23 -4 -43t-7 -37l107 4l-4 -70h-314l2 58q31 0 51.5 11.5t33 32t17.5 47.5t7 58l25 479h-5l-131 -76zM182 14l1026 1453l72 -55l-1035 -1445zM928 0q3 63 25.5 116t58 99t81 86.5t95.5 79.5q47 37 76 72.5t45 67.5t21.5 60t5.5 49 q0 62 -32 101t-95 39q-26 0 -49 -8t-41 -21t-30 -29.5t-16 -33.5q12 -13 15.5 -26.5t3.5 -25.5q0 -22 -16.5 -39t-42.5 -17q-24 0 -41 17t-17 45q0 32 18 68.5t52 67.5t83 51.5t111 20.5q46 0 89 -12t75.5 -37.5t52 -64t19.5 -91.5q0 -31 -8 -64.5t-35 -73.5t-78 -88 t-137 -108q-75 -53 -120 -98.5t-60 -91.5l258 -7q27 0 49.5 3t39 12.5t26.5 26t12 43.5h49l-19 -189h-524z" /> +<glyph unicode="¾" horiz-adv-x="1535" d="M93 809q0 15 4 31t13 29t22.5 21.5t32.5 8.5q29 0 44 -19t15 -43q0 -13 -4 -27t-16 -27q3 -42 39.5 -66t87.5 -24q42 0 74.5 16.5t55 42.5t34.5 59t12 65q0 25 -7 55.5t-26 56.5t-51.5 43.5t-98.5 17.5h-27t-17 -2l2 55h24q64 0 102 20.5t57.5 48t25.5 54.5t6 40 q0 30 -7.5 55t-24 43.5t-40 29t-65.5 10.5q-51 -2 -84 -30.5t-41 -64.5q8 -11 10.5 -21.5t2.5 -21.5q0 -22 -16 -38t-42 -16q-23 0 -38.5 17t-15.5 43q0 31 17 65.5t49.5 63.5t79 48t106.5 19q52 0 93.5 -13.5t71 -38t45.5 -60t16 -78.5q0 -27 -11.5 -56t-34.5 -55.5 t-58 -48t-81 -31.5q52 -4 90.5 -22.5t64 -46.5t38 -64t12.5 -75q0 -53 -20.5 -98.5t-58.5 -79.5t-92.5 -53.5t-123.5 -19.5q-57 0 -102.5 14t-77.5 38.5t-49 58t-17 71.5zM259 14l1026 1453l72 -55l-1035 -1445zM860 215l4 61l432 566h55l-27 -551l115 -2l-4 -74h-115 l-7 -149l86 4l-5 -70h-299l2 59q31 1 51.5 10.5t33 27t17.5 41t7 52.5l1 25h-347zM959 296l253 -4l21 367h-2z" /> +<glyph unicode="¿" horiz-adv-x="952" d="M26 -131q0 24 7 70.5t43.5 106t91.5 111.5t113 96t110.5 84t83.5 76t31 70q0 23 -18 42.5t-63 19.5q-14 0 -36 -3.5t-42 -11.5l-21 72q34 20 76 28.5t88 8.5q18 0 44.5 -7t51 -22.5t41.5 -40t17 -60.5q0 -49 -32 -91.5t-82.5 -85t-104.5 -86.5t-103.5 -98.5t-80 -121.5 t-30.5 -153q0 -49 12 -92t39.5 -75t73 -50.5t111.5 -18.5q45 0 85 13.5t71.5 34.5t52 46.5t25.5 48.5q-18 17 -24 39.5t-6 41.5q0 36 25.5 64t67.5 28t69 -28t27 -73q0 -46 -30.5 -98t-86.5 -95.5t-135 -72.5t-176 -29q-108 0 -181.5 26.5t-119 70.5t-65.5 100t-20 115z M387 926v10q1 25 10.5 47t25 38.5t36 26t44.5 9.5q42 0 73.5 -30t31.5 -84q0 -26 -10.5 -49.5t-27.5 -41t-38 -27.5t-43 -10q-44 0 -73 32t-29 79z" /> +<glyph unicode="À" d="M-29 0l3 68q38 1 68 19.5t55.5 52t48 80.5t45.5 104l462 1149h46l391 -1166q6 -20 13.5 -46.5t14 -55t11 -56.5t4.5 -52v-15l133 8v-90h-449l2 68q37 1 61 9.5t38 22.5t19.5 32.5t5.5 38.5q0 23 -5.5 47t-11.5 44l-59 192l-524 -12l-83 -219q-9 -24 -16.5 -43t-15 -35 t-15 -31t-16.5 -32l153 8v-90h-379zM375 530h469l-216 658h-4l-85 -230q-53 -134 -92.5 -238.5t-71.5 -189.5zM432 1834q0 23 14 42.5t51 19.5q16 0 36.5 -9t46.5 -32l260 -241l-43 -58l-299 191q-39 25 -52.5 46.5t-13.5 40.5z" /> +<glyph unicode="Á" d="M-29 0l3 68q38 1 68 19.5t55.5 52t48 80.5t45.5 104l462 1149h46l391 -1166q6 -20 13.5 -46.5t14 -55t11 -56.5t4.5 -52v-15l133 8v-90h-449l2 68q37 1 61 9.5t38 22.5t19.5 32.5t5.5 38.5q0 23 -5.5 47t-11.5 44l-59 192l-524 -12l-83 -219q-9 -24 -16.5 -43t-15 -35 t-15 -31t-16.5 -32l153 8v-90h-379zM375 530h469l-216 658h-4l-85 -230q-53 -134 -92.5 -238.5t-71.5 -189.5zM626 1614l260 241q26 23 46.5 32t36.5 9q37 0 51 -19.5t14 -42.5q0 -19 -14 -40.5t-52 -46.5l-299 -191z" /> +<glyph unicode="Â" d="M-29 0l3 68q38 1 68 19.5t55.5 52t48 80.5t45.5 104l462 1149h46l391 -1166q6 -20 13.5 -46.5t14 -55t11 -56.5t4.5 -52v-15l133 8v-90h-449l2 68q37 1 61 9.5t38 22.5t19.5 32.5t5.5 38.5q0 23 -5.5 47t-11.5 44l-59 192l-524 -12l-83 -219q-9 -24 -16.5 -43t-15 -35 t-15 -31t-16.5 -32l153 8v-90h-379zM293 1618l402 287h4l370 -289l-37 -57l-356 182h-4l-348 -178zM375 530h469l-216 658h-4l-85 -230q-53 -134 -92.5 -238.5t-71.5 -189.5z" /> +<glyph unicode="Ã" d="M-29 0l3 68q38 1 68 19.5t55.5 52t48 80.5t45.5 104l462 1149h46l391 -1166q6 -20 13.5 -46.5t14 -55t11 -56.5t4.5 -52v-15l133 8v-90h-449l2 68q37 1 61 9.5t38 22.5t19.5 32.5t5.5 38.5q0 23 -5.5 47t-11.5 44l-59 192l-524 -12l-83 -219q-9 -24 -16.5 -43t-15 -35 t-15 -31t-16.5 -32l153 8v-90h-379zM293 1655q21 46 50 83t62 62.5t68.5 39t68.5 13.5q59 0 99.5 -21t74 -46.5t65.5 -46.5t73 -21q57 0 100.5 33.5t77.5 87.5l54 -29q-25 -63 -54.5 -103.5t-61.5 -63.5t-66 -32t-68 -9q-53 0 -93 21t-75.5 46.5t-71 46.5t-78.5 21 q-45 0 -87 -30t-80 -87zM375 530h469l-216 658h-4l-85 -230q-53 -134 -92.5 -238.5t-71.5 -189.5z" /> +<glyph unicode="Ä" d="M-29 0l3 68q38 1 68 19.5t55.5 52t48 80.5t45.5 104l462 1149h46l391 -1166q6 -20 13.5 -46.5t14 -55t11 -56.5t4.5 -52v-15l133 8v-90h-449l2 68q37 1 61 9.5t38 22.5t19.5 32.5t5.5 38.5q0 23 -5.5 47t-11.5 44l-59 192l-524 -12l-83 -219q-9 -24 -16.5 -43t-15 -35 t-15 -31t-16.5 -32l153 8v-90h-379zM375 530h469l-216 658h-4l-85 -230q-53 -134 -92.5 -238.5t-71.5 -189.5zM428 1715q1 26 10.5 48.5t24.5 39t34.5 26t40.5 9.5t38.5 -9.5t29.5 -26t18 -39t5 -48.5t-10 -48t-23.5 -38.5t-33.5 -26t-38 -9.5q-21 0 -39 9.5t-31 26 t-20 38.5t-6 48zM759 1715q1 26 10.5 48.5t24.5 39t34.5 26t40.5 9.5t38.5 -9.5t29.5 -26t18 -39t5 -48.5t-10 -48t-23.5 -38.5t-33.5 -26t-38 -9.5q-21 0 -39 9.5t-31 26t-20 38.5t-6 48z" /> +<glyph unicode="Å" d="M-29 0l3 68q38 1 68 19.5t55.5 52t48 80.5t45.5 104l462 1149h46l391 -1166q6 -20 13.5 -46.5t14 -55t11 -56.5t4.5 -52v-15l133 8v-90h-449l2 68q37 1 61 9.5t38 22.5t19.5 32.5t5.5 38.5q0 23 -5.5 47t-11.5 44l-59 192l-524 -12l-83 -219q-9 -24 -16.5 -43t-15 -35 t-15 -31t-16.5 -32l153 8v-90h-379zM375 530h469l-216 658h-4l-85 -230q-53 -134 -92.5 -238.5t-71.5 -189.5zM453 1743q0 51 19.5 93t51 71t72 45t82.5 16t83 -12.5t73.5 -38.5t53 -66.5t20.5 -97.5q0 -54 -19 -96.5t-50.5 -72.5t-72 -45.5t-83.5 -15.5q-44 0 -85.5 12.5 t-73.5 39t-51.5 68t-19.5 100.5zM562 1755q0 -38 9.5 -69.5t26.5 -54t40.5 -34.5t52.5 -12q21 1 40.5 12t34.5 30t24 45t9 58q0 46 -9.5 79.5t-26 55.5t-38.5 32.5t-47 10.5q-26 0 -49 -12.5t-37 -33t-22 -47.5t-8 -60z" /> +<glyph unicode="Æ" horiz-adv-x="1956" d="M-50 0l4 68q40 0 73.5 18t62.5 45.5t54 60.5t47 64l796 1094l1 2l-184 -9l4 91h1016l-8 -359h-68q4 91 -14.5 147.5t-54.5 88t-86 42t-107 9.5l-176 -4q-58 -2 -90 -16.5t-48.5 -44.5t-21.5 -75.5t-8 -107.5l-18 -330h151q64 0 110.5 5t77 24t46 57.5t18.5 106.5h67 l-22 -447h-68q3 68 -9 104.5t-40.5 53.5t-74 19.5t-110.5 2.5q-38 0 -76 -1t-74 -3l-25 -464q-3 -56 -6.5 -95t-8.5 -65l396 -6q67 -1 121.5 15.5t94 54.5t63 100.5t28.5 152.5h69l-32 -399h-1049l4 74q46 1 74.5 13.5t45 36.5t23.5 59.5t9 82.5l10 187l-500 -11l-260 -359 v-2l158 9l-4 -90h-381zM500 530h441l33 662h-2z" /> +<glyph unicode="Ç" horiz-adv-x="1411" d="M102 647q0 100 20.5 199.5t62 190.5t103.5 169.5t144.5 136.5t185.5 91t227 33q118 0 215.5 -30t190.5 -93l-5 111h111l-25 -475h-74q-5 96 -35.5 171t-83 126.5t-125 78.5t-161.5 27q-113 0 -214 -50t-177.5 -142t-121.5 -222.5t-45 -290.5q0 -135 39.5 -246.5 t108.5 -191t163 -123t204 -43.5q66 0 133 14.5t130 43.5t119 71.5t101 99.5l51 -43q-71 -89 -149 -146t-156 -89.5t-152 -45t-137 -12.5q-9 0 -17.5 0.5t-17.5 0.5l-46 -122q15 9 34 16t38.5 11.5t37 7t29.5 2.5q36 0 62.5 -10t43.5 -27.5t25.5 -40.5t8.5 -49q0 -45 -21 -81 t-56 -64.5t-80 -49.5t-92.5 -36t-94 -24.5t-83.5 -14.5l-12 68q54 9 102.5 25.5t86 38.5t59.5 49t22 58t-19 47t-51 16q-24 0 -50 -7.5t-47 -24.5l-66 35l59 190q-116 24 -209.5 83.5t-158.5 147t-100 198.5t-35 237z" /> +<glyph unicode="È" horiz-adv-x="1268" d="M83 0l5 68q57 2 87.5 21t44 52t16.5 78.5t5 99.5l49 885q2 42 6 79.5t9 68.5l-150 -9l4 91h977l-8 -359h-68q5 91 -13.5 147.5t-54.5 88t-86 42t-108 9.5l-176 -4q-58 -2 -90 -16.5t-48 -44.5t-21 -75.5t-9 -107.5l-18 -328l147 -2q64 -1 111 4t78.5 24.5t47.5 58 t19 106.5h68l-23 -447h-67q3 68 -9 105.5t-40.5 55t-74.5 20t-112 0.5l-149 -6l-25 -469q-3 -56 -6 -95t-8 -65l391 6q67 1 122 16.5t95.5 52t64.5 97t29 151.5h70l-33 -399h-1049zM507 1834q0 23 14 42.5t51 19.5q16 0 36.5 -9t46.5 -32l260 -241l-43 -58l-299 191 q-39 25 -52.5 46.5t-13.5 40.5z" /> +<glyph unicode="É" horiz-adv-x="1268" d="M83 0l5 68q57 2 87.5 21t44 52t16.5 78.5t5 99.5l49 885q2 42 6 79.5t9 68.5l-150 -9l4 91h977l-8 -359h-68q5 91 -13.5 147.5t-54.5 88t-86 42t-108 9.5l-176 -4q-58 -2 -90 -16.5t-48 -44.5t-21 -75.5t-9 -107.5l-18 -328l147 -2q64 -1 111 4t78.5 24.5t47.5 58 t19 106.5h68l-23 -447h-67q3 68 -9 105.5t-40.5 55t-74.5 20t-112 0.5l-149 -6l-25 -469q-3 -56 -6 -95t-8 -65l391 6q67 1 122 16.5t95.5 52t64.5 97t29 151.5h70l-33 -399h-1049zM589 1614l260 241q26 23 46.5 32t36.5 9q37 0 51 -19.5t14 -42.5q0 -19 -14 -40.5 t-52 -46.5l-299 -191z" /> +<glyph unicode="Ê" horiz-adv-x="1268" d="M83 0l5 68q57 2 87.5 21t44 52t16.5 78.5t5 99.5l49 885q2 42 6 79.5t9 68.5l-150 -9l4 91h977l-8 -359h-68q5 91 -13.5 147.5t-54.5 88t-86 42t-108 9.5l-176 -4q-58 -2 -90 -16.5t-48 -44.5t-21 -75.5t-9 -107.5l-18 -328l147 -2q64 -1 111 4t78.5 24.5t47.5 58 t19 106.5h68l-23 -447h-67q3 68 -9 105.5t-40.5 55t-74.5 20t-112 0.5l-149 -6l-25 -469q-3 -56 -6 -95t-8 -65l391 6q67 1 122 16.5t95.5 52t64.5 97t29 151.5h70l-33 -399h-1049zM337 1618l402 287h4l370 -289l-37 -57l-356 182h-4l-348 -178z" /> +<glyph unicode="Ë" horiz-adv-x="1268" d="M83 0l5 68q57 2 87.5 21t44 52t16.5 78.5t5 99.5l49 885q2 42 6 79.5t9 68.5l-150 -9l4 91h977l-8 -359h-68q5 91 -13.5 147.5t-54.5 88t-86 42t-108 9.5l-176 -4q-58 -2 -90 -16.5t-48 -44.5t-21 -75.5t-9 -107.5l-18 -328l147 -2q64 -1 111 4t78.5 24.5t47.5 58 t19 106.5h68l-23 -447h-67q3 68 -9 105.5t-40.5 55t-74.5 20t-112 0.5l-149 -6l-25 -469q-3 -56 -6 -95t-8 -65l391 6q67 1 122 16.5t95.5 52t64.5 97t29 151.5h70l-33 -399h-1049zM469 1715q1 26 10.5 48.5t24.5 39t34.5 26t40.5 9.5t38.5 -9.5t29.5 -26t18 -39t5 -48.5 t-10 -48t-23.5 -38.5t-33.5 -26t-38 -9.5q-21 0 -39 9.5t-31 26t-20 38.5t-6 48zM800 1715q1 26 10.5 48.5t24.5 39t34.5 26t40.5 9.5t38.5 -9.5t29.5 -26t18 -39t5 -48.5t-10 -48t-23.5 -38.5t-33.5 -26t-38 -9.5q-21 0 -39 9.5t-31 26t-20 38.5t-6 48z" /> +<glyph unicode="Ì" horiz-adv-x="680" d="M83 0l5 68q57 2 87.5 21t44.5 52t16.5 78.5t4.5 99.5l47 885q2 42 6 79.5t9 68.5l-148 -9l4 91h453l-4 -68q-54 -2 -84 -18t-45 -45t-19 -71.5t-6 -97.5l-47 -890q-2 -57 -5.5 -96.5t-8.5 -65.5l147 8l-4 -90h-453zM98 1834q0 23 14 42.5t51 19.5q16 0 36.5 -9t46.5 -32 l260 -241l-43 -58l-299 191q-39 25 -52.5 46.5t-13.5 40.5z" /> +<glyph unicode="Í" horiz-adv-x="681" d="M84 0l5 68q57 2 87.5 21t44.5 52t16.5 78.5t4.5 99.5l47 885q2 42 6 79.5t9 68.5l-148 -9l4 91h453l-4 -68q-54 -2 -84 -18t-45 -45t-19 -71.5t-6 -97.5l-47 -890q-2 -57 -5.5 -96.5t-8.5 -65.5l147 8l-4 -90h-453zM324 1614l260 241q26 23 46.5 32t36.5 9q37 0 51 -19.5 t14 -42.5q0 -19 -14 -40.5t-52 -46.5l-299 -191z" /> +<glyph unicode="Î" horiz-adv-x="680" d="M28 1616l383 289h4l350 -289l-37 -57l-333 182h-4l-330 -176zM83 0l5 68q57 2 87.5 21t44 52t16.5 78.5t5 99.5l47 885q2 42 6 79.5t9 68.5l-148 -9l4 91h453l-4 -68q-54 -2 -84 -18t-45 -45.5t-19 -71.5t-6 -97l-47 -890q-2 -56 -5.5 -96t-8.5 -66l147 8l-4 -90h-453z " /> +<glyph unicode="Ï" horiz-adv-x="681" d="M84 0l5 68q57 2 87.5 21t44.5 52t16.5 78.5t4.5 99.5l47 885q2 42 6 79.5t9 68.5l-148 -9l4 91h453l-4 -68q-54 -2 -84 -18t-45 -45t-19 -71.5t-6 -97.5l-47 -890q-2 -57 -5.5 -96.5t-8.5 -65.5l147 8l-4 -90h-453zM145 1708q0 27 9 50.5t24 41.5t35 28t42 10 q42 0 66.5 -33t24.5 -82v-8q-1 -26 -10 -48t-23.5 -38.5t-33 -26t-38.5 -9.5q-41 0 -68.5 33t-27.5 82zM457 1708q0 27 9 50.5t24 41.5t35 28t42 10q42 0 66.5 -33t24.5 -82v-8q-1 -26 -10 -48t-23.5 -38.5t-33 -26t-38.5 -9.5q-41 0 -68.5 33t-27.5 82z" /> +<glyph unicode="Ð" horiz-adv-x="1514" d="M47 672l7 100h213l24 432q2 42 6 79.5t9 68.5l-152 -9l6 91l475 2q178 0 324 -40t249.5 -122t160 -207.5t56.5 -296.5q0 -100 -22.5 -195.5t-67 -181.5t-112 -158t-157.5 -124t-203 -81.5t-248 -29.5h-531l5 68q57 2 87.5 21t44.5 54t16.5 78.5t4.5 97.5l19 355zM394 82 q34 -2 62.5 -3t54.5 -1h51h51q139 0 253.5 54t196 148.5t126.5 222t45 275.5q0 132 -37 239.5t-112.5 183.5t-190.5 117.5t-272 41.5q-59 0 -91.5 -13.5t-48 -42t-20 -72t-7.5 -103.5l-19 -357h263l-6 -92l-262 -4l-23 -434q-3 -57 -6 -95.5t-8 -64.5z" /> +<glyph unicode="Ñ" horiz-adv-x="1561" d="M92 0l2 68q47 0 75 16.5t43 40.5t20 52t6 52l55 1123l-137 -9l4 91h243l824 -1172h4l43 942q2 45 5.5 81.5t8.5 66.5l-147 -9l4 91h377l-4 -68q-58 -2 -87.5 -21.5t-42.5 -52.5t-15 -78t-5 -100l-57 -1137h-99l-837 1197h-4l-33 -889q-3 -53 -5 -104t-9 -99l147 8l-4 -90 h-375zM440 1655q21 46 50 83t62 62.5t68.5 39t68.5 13.5q59 0 99.5 -21t74 -46.5t65.5 -46.5t73 -21q57 0 100.5 33.5t77.5 87.5l54 -29q-25 -63 -54.5 -103.5t-61.5 -63.5t-66 -32t-68 -9q-53 0 -93 21t-75.5 46.5t-71 46.5t-78.5 21q-45 0 -87 -30t-80 -87z" /> +<glyph unicode="Ò" horiz-adv-x="1613" d="M100 670q0 159 52.5 303t149.5 254t235 175t309 65q120 0 217.5 -29.5t173 -81t130.5 -120.5t91 -148t53 -164t17 -168q0 -87 -20.5 -179.5t-61.5 -180t-103 -165.5t-144.5 -136.5t-187 -93t-229.5 -34.5q-120 0 -217.5 29t-173 79.5t-130.5 118.5t-91 146t-53 162.5 t-17 167.5zM296 703q0 -70 11.5 -145t36.5 -147.5t64 -137.5t94.5 -114.5t127.5 -78.5t162 -29q88 0 162.5 28t134.5 76.5t105.5 114t76 140t46 155t15.5 158.5q0 80 -14 160.5t-42 154t-70 137t-97 110.5t-123.5 73.5t-150.5 26.5q-87 0 -160.5 -28.5t-133 -77.5 t-105.5 -115.5t-77 -142.5t-47 -157.5t-16 -160.5zM610 1834q0 23 14 42.5t51 19.5q16 0 36.5 -9t46.5 -32l260 -241l-43 -58l-299 191q-39 25 -52.5 46.5t-13.5 40.5z" /> +<glyph unicode="Ó" horiz-adv-x="1613" d="M100 670q0 159 52.5 303t149.5 254t235 175t309 65q120 0 217.5 -29.5t173 -81t130.5 -120.5t91 -148t53 -164t17 -168q0 -87 -20.5 -179.5t-61.5 -180t-103 -165.5t-144.5 -136.5t-187 -93t-229.5 -34.5q-120 0 -217.5 29t-173 79.5t-130.5 118.5t-91 146t-53 162.5 t-17 167.5zM296 703q0 -70 11.5 -145t36.5 -147.5t64 -137.5t94.5 -114.5t127.5 -78.5t162 -29q88 0 162.5 28t134.5 76.5t105.5 114t76 140t46 155t15.5 158.5q0 80 -14 160.5t-42 154t-70 137t-97 110.5t-123.5 73.5t-150.5 26.5q-87 0 -160.5 -28.5t-133 -77.5 t-105.5 -115.5t-77 -142.5t-47 -157.5t-16 -160.5zM712 1614l260 241q26 23 46.5 32t36.5 9q37 0 51 -19.5t14 -42.5q0 -19 -14 -40.5t-52 -46.5l-299 -191z" /> +<glyph unicode="Ô" horiz-adv-x="1613" d="M100 670q0 159 52.5 303t149.5 254t235 175t309 65q120 0 217.5 -29.5t173 -81t130.5 -120.5t91 -148t53 -164t17 -168q0 -87 -20.5 -179.5t-61.5 -180t-103 -165.5t-144.5 -136.5t-187 -93t-229.5 -34.5q-120 0 -217.5 29t-173 79.5t-130.5 118.5t-91 146t-53 162.5 t-17 167.5zM296 703q0 -70 11.5 -145t36.5 -147.5t64 -137.5t94.5 -114.5t127.5 -78.5t162 -29q88 0 162.5 28t134.5 76.5t105.5 114t76 140t46 155t15.5 158.5q0 80 -14 160.5t-42 154t-70 137t-97 110.5t-123.5 73.5t-150.5 26.5q-87 0 -160.5 -28.5t-133 -77.5 t-105.5 -115.5t-77 -142.5t-47 -157.5t-16 -160.5zM481 1618l402 287h4l370 -289l-37 -57l-356 182h-4l-348 -178z" /> +<glyph unicode="Õ" horiz-adv-x="1613" d="M100 670q0 159 52.5 303t149.5 254t235 175t309 65q120 0 217.5 -29.5t173 -81t130.5 -120.5t91 -148t53 -164t17 -168q0 -87 -20.5 -179.5t-61.5 -180t-103 -165.5t-144.5 -136.5t-187 -93t-229.5 -34.5q-120 0 -217.5 29t-173 79.5t-130.5 118.5t-91 146t-53 162.5 t-17 167.5zM296 703q0 -70 11.5 -145t36.5 -147.5t64 -137.5t94.5 -114.5t127.5 -78.5t162 -29q88 0 162.5 28t134.5 76.5t105.5 114t76 140t46 155t15.5 158.5q0 80 -14 160.5t-42 154t-70 137t-97 110.5t-123.5 73.5t-150.5 26.5q-87 0 -160.5 -28.5t-133 -77.5 t-105.5 -115.5t-77 -142.5t-47 -157.5t-16 -160.5zM479 1655q21 46 50 83t62 62.5t68.5 39t68.5 13.5q59 0 99.5 -21t74 -46.5t65.5 -46.5t73 -21q57 0 100.5 33.5t77.5 87.5l54 -29q-25 -63 -54.5 -103.5t-61.5 -63.5t-66 -32t-68 -9q-53 0 -93 21t-75.5 46.5t-71 46.5 t-78.5 21q-45 0 -87 -30t-80 -87z" /> +<glyph unicode="Ö" horiz-adv-x="1613" d="M100 670q0 159 52.5 303t149.5 254t235 175t309 65q120 0 217.5 -29.5t173 -81t130.5 -120.5t91 -148t53 -164t17 -168q0 -87 -20.5 -179.5t-61.5 -180t-103 -165.5t-144.5 -136.5t-187 -93t-229.5 -34.5q-120 0 -217.5 29t-173 79.5t-130.5 118.5t-91 146t-53 162.5 t-17 167.5zM296 703q0 -70 11.5 -145t36.5 -147.5t64 -137.5t94.5 -114.5t127.5 -78.5t162 -29q88 0 162.5 28t134.5 76.5t105.5 114t76 140t46 155t15.5 158.5q0 80 -14 160.5t-42 154t-70 137t-97 110.5t-123.5 73.5t-150.5 26.5q-87 0 -160.5 -28.5t-133 -77.5 t-105.5 -115.5t-77 -142.5t-47 -157.5t-16 -160.5zM609 1715q1 26 10.5 48.5t24.5 39t34.5 26t40.5 9.5t38.5 -9.5t29.5 -26t18 -39t5 -48.5t-10 -48t-23.5 -38.5t-33.5 -26t-38 -9.5q-21 0 -39 9.5t-31 26t-20 38.5t-6 48zM940 1715q1 26 10.5 48.5t24.5 39t34.5 26 t40.5 9.5t38.5 -9.5t29.5 -26t18 -39t5 -48.5t-10 -48t-23.5 -38.5t-33.5 -26t-38 -9.5q-21 0 -39 9.5t-31 26t-20 38.5t-6 48z" /> +<glyph unicode="×" horiz-adv-x="1093" d="M75 279l383 358l-329 354l88 92l334 -359l397 370l69 -88l-387 -367l344 -369l-86 -94l-351 376l-384 -364z" /> +<glyph unicode="Ø" horiz-adv-x="1611" d="M99 670q0 159 52.5 303t149.5 254t235 175t309 65q105 0 190 -22t157 -62l103 163l103 -69l-106 -164q61 -53 105 -118.5t73 -138t43 -149t14 -151.5q0 -87 -20.5 -179.5t-61.5 -180t-103 -165.5t-144.5 -136.5t-187 -93t-229.5 -34.5q-93 0 -170.5 17t-143.5 48 l-122 -190l-90 56l119 189q-72 51 -123.5 118t-85.5 143.5t-50 158.5t-16 163zM295 700q0 -60 9 -125.5t28 -129.5t48.5 -124.5t71.5 -110.5l670 1062q-57 54 -128.5 83.5t-159.5 29.5q-87 0 -161 -28.5t-133.5 -78.5t-105.5 -116.5t-76.5 -142.5t-46.5 -158t-16 -161z M532 133q52 -38 116.5 -60t142.5 -22q88 0 162.5 28t134.5 76.5t105.5 114t76 140t46 155t15.5 158.5q0 121 -32 239t-95 214z" /> +<glyph unicode="Ù" horiz-adv-x="1524" d="M111 1346l4 88h455l-4 -68q-52 0 -82 -17.5t-45 -42.5t-19.5 -53t-5.5 -49q-30 -568 -30 -617q0 -100 16 -191t60 -160.5t121 -110.5t200 -41q109 0 190.5 40t136.5 111.5t85 171.5t38 220l37 577q2 42 5.5 79.5t8.5 68.5l-147 -9l4 91h383l-2 -68q-59 -2 -89.5 -21 t-44.5 -52.5t-16.5 -79t-5.5 -99.5l-28 -477q-8 -134 -43 -255t-104.5 -213.5t-177.5 -147t-261 -54.5q-150 0 -253 35.5t-166.5 110t-91.5 188.5t-28 272q0 79 31 613q1 27 2.5 48.5t3.5 41t4.5 38t5.5 38.5zM522 1834q0 23 14 42.5t51 19.5q16 0 36.5 -9t46.5 -32 l260 -241l-43 -58l-299 191q-39 25 -52.5 46.5t-13.5 40.5z" /> +<glyph unicode="Ú" horiz-adv-x="1524" d="M111 1346l4 88h455l-4 -68q-52 0 -82 -17.5t-45 -42.5t-19.5 -53t-5.5 -49q-30 -568 -30 -617q0 -100 16 -191t60 -160.5t121 -110.5t200 -41q109 0 190.5 40t136.5 111.5t85 171.5t38 220l37 577q2 42 5.5 79.5t8.5 68.5l-147 -9l4 91h383l-2 -68q-59 -2 -89.5 -21 t-44.5 -52.5t-16.5 -79t-5.5 -99.5l-28 -477q-8 -134 -43 -255t-104.5 -213.5t-177.5 -147t-261 -54.5q-150 0 -253 35.5t-166.5 110t-91.5 188.5t-28 272q0 79 31 613q1 27 2.5 48.5t3.5 41t4.5 38t5.5 38.5zM749 1614l260 241q26 23 46.5 32t36.5 9q37 0 51 -19.5 t14 -42.5q0 -19 -14 -40.5t-52 -46.5l-299 -191z" /> +<glyph unicode="Û" horiz-adv-x="1524" d="M111 1346l4 88h455l-4 -68q-52 0 -82 -17.5t-45 -42.5t-19.5 -53t-5.5 -49q-30 -568 -30 -617q0 -100 16 -191t60 -160.5t121 -110.5t200 -41q109 0 190.5 40t136.5 111.5t85 171.5t38 220l37 577q2 42 5.5 79.5t8.5 68.5l-147 -9l4 91h383l-2 -68q-59 -2 -89.5 -21 t-44.5 -52.5t-16.5 -79t-5.5 -99.5l-28 -477q-8 -134 -43 -255t-104.5 -213.5t-177.5 -147t-261 -54.5q-150 0 -253 35.5t-166.5 110t-91.5 188.5t-28 272q0 79 31 613q1 27 2.5 48.5t3.5 41t4.5 38t5.5 38.5zM475 1618l402 287h4l370 -289l-37 -57l-356 182h-4l-348 -178z " /> +<glyph unicode="Ü" horiz-adv-x="1524" d="M111 1346l4 88h455l-4 -68q-52 0 -82 -17.5t-45 -42.5t-19.5 -53t-5.5 -49q-30 -568 -30 -617q0 -100 16 -191t60 -160.5t121 -110.5t200 -41q109 0 190.5 40t136.5 111.5t85 171.5t38 220l37 577q2 42 5.5 79.5t8.5 68.5l-147 -9l4 91h383l-2 -68q-59 -2 -89.5 -21 t-44.5 -52.5t-16.5 -79t-5.5 -99.5l-28 -477q-8 -134 -43 -255t-104.5 -213.5t-177.5 -147t-261 -54.5q-150 0 -253 35.5t-166.5 110t-91.5 188.5t-28 272q0 79 31 613q1 27 2.5 48.5t3.5 41t4.5 38t5.5 38.5zM607 1715q1 26 10.5 48.5t24.5 39t34.5 26t40.5 9.5t38.5 -9.5 t29.5 -26t18 -39t5 -48.5t-10 -48t-23.5 -38.5t-33.5 -26t-38 -9.5q-21 0 -39 9.5t-31 26t-20 38.5t-6 48zM938 1715q1 26 10.5 48.5t24.5 39t34.5 26t40.5 9.5t38.5 -9.5t29.5 -26t18 -39t5 -48.5t-10 -48t-23.5 -38.5t-33.5 -26t-38 -9.5q-21 0 -39 9.5t-31 26t-20 38.5 t-6 48z" /> +<glyph unicode="Ý" horiz-adv-x="1312" d="M42 1343l4 91h520l-4 -68q-71 0 -108.5 -16.5t-49.5 -46t-1 -70.5t38 -90q97 -169 161.5 -276.5t105.5 -168.5h4q40 70 76.5 133t213.5 363l21 35t26 41.5t29.5 42.5t30.5 37l-162 -7l4 91h418l-4 -68q-51 -3 -91.5 -20t-77.5 -49.5t-72 -81t-74 -113.5 q-79 -133 -149 -254t-136 -234q-22 -370 -21 -370q-2 -56 -5.5 -96t-8.5 -66l170 8l-4 -90h-473l4 68q58 2 88 22t43.5 53.5t15.5 78.5t5 97l12 234l-324 563q-49 82 -71 137.5t-27 94.5zM666 1614l260 241q26 23 46.5 32t36.5 9q37 0 51 -19.5t14 -42.5q0 -19 -14 -40.5 t-52 -46.5l-299 -191z" /> +<glyph unicode="Þ" horiz-adv-x="1182" d="M84 0l5 68q57 2 87.5 21t44 52t16.5 78.5t5 99.5l47 885q2 42 6 79.5t9 68.5l-148 -9l4 91h453l-4 -68q-48 -2 -76.5 -15t-44.5 -36t-22 -56.5t-9 -76.5q27 1 54 1.5t53 0.5q148 0 257.5 -26t181.5 -75.5t107 -120t35 -159.5q0 -48 -13 -102t-44 -107t-82.5 -101.5 t-129.5 -85.5t-184.5 -59t-246.5 -22h-33l-5 -107q-1 -28 -2.5 -48t-3 -35.5t-3 -28t-4.5 -25.5l147 8l-4 -90h-453zM416 406q23 -2 44.5 -1t47.5 1q97 1 176.5 26.5t137.5 73t92 114t39 148.5q5 89 -22.5 153t-81.5 104.5t-131 59.5t-171 19h-33.5t-60.5 -2z" /> +<glyph unicode="ß" horiz-adv-x="1331" d="M-258 -449q0 12 4.5 27t15 28.5t26.5 22.5t39 8q38 -1 58 -27.5t20 -68.5q12 -8 31.5 -12t30.5 -4q48 0 80 34.5t53.5 98t34 152.5t21 197.5t16.5 233.5t19 261q9 112 18 222.5t23 214.5l-184 -3l10 88h188q21 114 56.5 211.5t95.5 169t150 111.5t219 40q114 0 190.5 -29 t121 -74.5t60 -100.5t8.5 -107q-8 -60 -34.5 -104t-61.5 -79t-73 -63.5t-70 -56.5t-53 -59t-21 -70q0 -40 31.5 -75.5t79.5 -71t103 -74t103 -85t79.5 -103t31.5 -128.5q0 -65 -24.5 -119.5t-69.5 -94.5t-108.5 -62.5t-141.5 -22.5q-62 0 -120 14.5t-102 42t-70.5 68.5 t-26.5 94q0 45 25.5 73t63.5 28q41 0 62 -27t21 -60q0 -15 -3.5 -30.5t-14.5 -32.5q16 -45 60.5 -69.5t100.5 -24.5q94 0 137 51t43 144q0 39 -18 73.5t-47 65.5t-66 60.5t-75.5 58.5t-75 59t-64.5 62.5t-44 69t-13 77.5q4 56 26.5 95.5t54.5 71.5t68.5 61t69 64t56 80.5 t28.5 110.5q3 42 -9 83.5t-40.5 74.5t-75 53.5t-111.5 20.5q-74 0 -129 -22.5t-94 -64.5t-65 -101t-42 -132q-14 -65 -23.5 -142t-17 -163.5t-14 -182t-14.5 -198.5q-8 -93 -15 -187t-17.5 -184.5t-25 -175.5t-36.5 -159t-53.5 -135.5t-75 -105.5t-101.5 -68t-133 -23 q-160 2 -160 106z" /> +<glyph unicode="à" horiz-adv-x="1123" d="M75 334q0 144 37.5 273t112 227t186.5 155.5t262 57.5q63 0 135.5 -9t139.5 -26q-17 -126 -33 -252.5t-29 -237t-21 -197.5t-8 -133q0 -20 1 -40t7 -36t17.5 -26t32.5 -10q17 0 36.5 10.5t39.5 34t39 61.5t34 92l58 -12q-7 -36 -26.5 -85.5t-52.5 -95t-80 -77t-108 -31.5 q-41 0 -70 13.5t-47 37.5t-26 58t-8 76q0 58 10.5 127t26.5 147h-6q-32 -101 -66.5 -174t-69.5 -124t-70.5 -82.5t-69 -49t-65 -23.5t-59.5 -6q-55 0 -102.5 19.5t-82.5 62t-55 110.5t-20 165zM247 368q0 -65 6.5 -120.5t22.5 -95.5t41 -62.5t63 -22.5q47 0 94 40t89.5 107 t80 156t65 187t43.5 199t17 192q-31 13 -71 19t-88 6q-93 0 -161.5 -52t-113 -137.5t-66.5 -194t-22 -221.5zM428 1496q0 31 16 48.5t44 17.5q18 0 41 -13.5t46 -51.5l159 -270l-49 -41l-211 219q-26 28 -36 50.5t-10 40.5z" /> +<glyph unicode="á" horiz-adv-x="1123" d="M75 334q0 144 37.5 273t112 227t186.5 155.5t262 57.5q63 0 135.5 -9t139.5 -26q-17 -126 -33 -252.5t-29 -237t-21 -197.5t-8 -133q0 -20 1 -40t7 -36t17.5 -26t32.5 -10q17 0 36.5 10.5t39.5 34t39 61.5t34 92l58 -12q-7 -36 -26.5 -85.5t-52.5 -95t-80 -77t-108 -31.5 q-41 0 -70 13.5t-47 37.5t-26 58t-8 76q0 58 10.5 127t26.5 147h-6q-32 -101 -66.5 -174t-69.5 -124t-70.5 -82.5t-69 -49t-65 -23.5t-59.5 -6q-55 0 -102.5 19.5t-82.5 62t-55 110.5t-20 165zM247 368q0 -65 6.5 -120.5t22.5 -95.5t41 -62.5t63 -22.5q47 0 94 40t89.5 107 t80 156t65 187t43.5 199t17 192q-31 13 -71 19t-88 6q-93 0 -161.5 -52t-113 -137.5t-66.5 -194t-22 -221.5zM596 1227l159 270q23 38 45 51.5t40 13.5q29 0 45.5 -17t16.5 -49q0 -18 -10 -40.5t-36 -50.5l-211 -219z" /> +<glyph unicode="â" horiz-adv-x="1123" d="M75 334q0 144 37.5 273t112 227t186.5 155.5t262 57.5q63 0 135.5 -9t139.5 -26q-17 -126 -33 -252.5t-29 -237t-21 -197.5t-8 -133q0 -20 1 -40t7 -36t17.5 -26t32.5 -10q17 0 36.5 10.5t39.5 34t39 61.5t34 92l58 -12q-7 -36 -26.5 -85.5t-52.5 -95t-80 -77t-108 -31.5 q-41 0 -70 13.5t-47 37.5t-26 58t-8 76q0 58 10.5 127t26.5 147h-6q-32 -101 -66.5 -174t-69.5 -124t-70.5 -82.5t-69 -49t-65 -23.5t-59.5 -6q-55 0 -102.5 19.5t-82.5 62t-55 110.5t-20 165zM247 368q0 -65 6.5 -120.5t22.5 -95.5t41 -62.5t63 -22.5q47 0 94 40t89.5 107 t80 156t65 187t43.5 199t17 192q-31 13 -71 19t-88 6q-93 0 -161.5 -52t-113 -137.5t-66.5 -194t-22 -221.5zM315 1268l344 321h4l287 -329l-51 -54l-256 232h-4l-279 -224z" /> +<glyph unicode="ã" horiz-adv-x="1123" d="M75 334q0 144 37.5 273t112 227t186.5 155.5t262 57.5q63 0 135.5 -9t139.5 -26q-17 -126 -33 -252.5t-29 -237t-21 -197.5t-8 -133q0 -20 1 -40t7 -36t17.5 -26t32.5 -10q17 0 36.5 10.5t39.5 34t39 61.5t34 92l58 -12q-7 -36 -26.5 -85.5t-52.5 -95t-80 -77t-108 -31.5 q-41 0 -70 13.5t-47 37.5t-26 58t-8 76q0 58 10.5 127t26.5 147h-6q-32 -101 -66.5 -174t-69.5 -124t-70.5 -82.5t-69 -49t-65 -23.5t-59.5 -6q-55 0 -102.5 19.5t-82.5 62t-55 110.5t-20 165zM247 368q0 -65 6.5 -120.5t22.5 -95.5t41 -62.5t63 -22.5q47 0 94 40t89.5 107 t80 156t65 187t43.5 199t17 192q-31 13 -71 19t-88 6q-93 0 -161.5 -52t-113 -137.5t-66.5 -194t-22 -221.5zM347 1307q15 37 41 68.5t56.5 54t63 35t61.5 12.5q48 0 82 -16.5t62.5 -37t56.5 -37t63 -16.5q45 0 80.5 27.5t68.5 77.5l49 -25q-19 -51 -44 -86t-53.5 -57.5 t-57.5 -32.5t-56 -10q-48 0 -83 17t-65 37t-59 37t-65 17q-35 0 -77 -24t-73 -68z" /> +<glyph unicode="ä" horiz-adv-x="1123" d="M75 334q0 144 37.5 273t112 227t186.5 155.5t262 57.5q63 0 135.5 -9t139.5 -26q-17 -126 -33 -252.5t-29 -237t-21 -197.5t-8 -133q0 -20 1 -40t7 -36t17.5 -26t32.5 -10q17 0 36.5 10.5t39.5 34t39 61.5t34 92l58 -12q-7 -36 -26.5 -85.5t-52.5 -95t-80 -77t-108 -31.5 q-41 0 -70 13.5t-47 37.5t-26 58t-8 76q0 58 10.5 127t26.5 147h-6q-32 -101 -66.5 -174t-69.5 -124t-70.5 -82.5t-69 -49t-65 -23.5t-59.5 -6q-55 0 -102.5 19.5t-82.5 62t-55 110.5t-20 165zM247 368q0 -65 6.5 -120.5t22.5 -95.5t41 -62.5t63 -22.5q47 0 94 40t89.5 107 t80 156t65 187t43.5 199t17 192q-31 13 -71 19t-88 6q-93 0 -161.5 -52t-113 -137.5t-66.5 -194t-22 -221.5zM429 1373q1 23 10 43.5t23 35.5t32 24t37 9q20 0 36.5 -9t27.5 -24t17 -35.5t5 -43.5q-1 -24 -9.5 -44.5t-22 -35.5t-31 -23.5t-35.5 -8.5q-20 0 -36.5 8.5 t-28.5 23.5t-18.5 35.5t-6.5 44.5zM730 1373q1 23 10 43.5t23 35.5t32 24t37 9q20 0 36.5 -9t27.5 -24t17 -35.5t5 -43.5q-1 -24 -9.5 -44.5t-22 -35.5t-31 -23.5t-35.5 -8.5q-20 0 -36.5 8.5t-28.5 23.5t-18.5 35.5t-6.5 44.5z" /> +<glyph unicode="å" horiz-adv-x="1123" d="M75 334q0 144 37.5 273t112 227t186.5 155.5t262 57.5q63 0 135.5 -9t139.5 -26q-17 -126 -33 -252.5t-29 -237t-21 -197.5t-8 -133q0 -20 1 -40t7 -36t17.5 -26t32.5 -10q17 0 36.5 10.5t39.5 34t39 61.5t34 92l58 -12q-7 -36 -26.5 -85.5t-52.5 -95t-80 -77t-108 -31.5 q-41 0 -70 13.5t-47 37.5t-26 58t-8 76q0 58 10.5 127t26.5 147h-6q-32 -101 -66.5 -174t-69.5 -124t-70.5 -82.5t-69 -49t-65 -23.5t-59.5 -6q-55 0 -102.5 19.5t-82.5 62t-55 110.5t-20 165zM247 368q0 -65 6.5 -120.5t22.5 -95.5t41 -62.5t63 -22.5q47 0 94 40t89.5 107 t80 156t65 187t43.5 199t17 192q-31 13 -71 19t-88 6q-93 0 -161.5 -52t-113 -137.5t-66.5 -194t-22 -221.5zM466 1354q1 45 20 83t49 65t67 42t75 15q37 0 71.5 -11t61.5 -34t43.5 -57.5t16.5 -82.5q-1 -48 -20.5 -86t-49.5 -65t-67 -41.5t-74 -14.5q-38 0 -72.5 11 t-61.5 34t-43 58.5t-16 83.5zM570 1358q0 -57 27 -95t72 -38q19 1 36.5 11.5t30.5 28.5t21 43t8 54q0 62 -24 100.5t-68 38.5q-22 -1 -40.5 -12.5t-32.5 -30.5t-22 -44.5t-8 -55.5z" /> +<glyph unicode="æ" horiz-adv-x="1529" d="M53 199q0 57 23 104.5t63.5 85.5t95 66.5t117 48t130.5 29t135 9.5q11 0 20.5 -0.5t19.5 -0.5q0 2 1 23t5 83q3 40 3 79q0 52 -7.5 97.5t-28 79.5t-56.5 54t-93 20q-39 0 -74 -10t-62.5 -27.5t-47 -42t-27.5 -53.5q12 -16 15 -32.5t3 -30.5q0 -32 -23 -56t-60 -24 q-35 0 -57.5 23.5t-22.5 58.5q0 45 28.5 92t80 85t125 62.5t163.5 24.5q101 0 163.5 -50.5t94.5 -135.5h4q60 91 147.5 138.5t202.5 47.5q62 0 107 -13t75 -33.5t48 -45.5t27.5 -49.5t12.5 -46t3 -33.5q0 -30 -10.5 -64.5t-36.5 -69.5t-69.5 -69t-110 -63t-158 -52 t-212.5 -36q0 -87 13.5 -159.5t44 -124t79.5 -80t120 -28.5q48 0 93 19t85.5 52.5t76.5 78.5t66 97l66 -38q-47 -90 -100 -150t-108 -96t-110.5 -51t-107.5 -15q-61 0 -110 10.5t-89 33.5t-72.5 58.5t-60.5 86.5q-88 -97 -186 -143t-195 -46q-66 0 -115 16t-82 45t-49 70 t-16 91zM223 223q0 -41 17 -66.5t41.5 -40t52 -20t49.5 -5.5q37 0 75.5 10.5t75.5 29.5t71 45t64 57q-10 46 -14.5 95.5t-4.5 99.5v24t1 24q-47 -1 -97 -6t-98 -16t-90 -29t-74 -45.5t-50.5 -66t-18.5 -90.5zM811 545q81 8 159 28.5t138.5 55.5t97.5 85t37 116 q0 47 -14.5 76t-36 45.5t-47 22t-47.5 5.5q-60 -2 -109 -35t-85.5 -90.5t-60 -136.5t-32.5 -172z" /> +<glyph unicode="ç" horiz-adv-x="971" d="M80 426q0 67 12.5 139t39 141t66 131t94 108.5t124 74t154.5 27.5q66 0 122 -18.5t97.5 -51t64.5 -76t23 -94.5q0 -48 -24 -74.5t-68 -26.5q-23 0 -38.5 8.5t-25 21.5t-14 27t-4.5 26q0 18 4.5 38.5t21.5 38.5q-11 57 -56.5 83t-105.5 26q-59 0 -105 -22t-80 -60 t-57.5 -88t-37.5 -105.5t-20.5 -114t-6.5 -112.5q0 -108 18.5 -183t52 -122t79.5 -68.5t100 -21.5q40 0 83 12.5t84 42.5t78.5 79t67.5 123l72 -34q-39 -88 -86 -149t-100 -99.5t-110.5 -56.5t-116.5 -19l-48 -135q29 19 66 29t72 10q66 0 100.5 -35.5t34.5 -87.5 q0 -43 -20.5 -77t-53.5 -60t-76 -45t-88 -32.5t-89 -22t-79 -13.5l-8 64q52 9 99.5 23.5t83.5 34t57.5 44t21.5 54.5q0 34 -20 48.5t-48 14.5q-24 0 -50 -8.5t-46 -22.5l-69 35l61 190q-70 12 -126 45t-95.5 87.5t-60.5 131.5t-21 177z" /> +<glyph unicode="è" horiz-adv-x="976" d="M80 420q0 79 13.5 156.5t41 147t68.5 129t96.5 102.5t125 67.5t153.5 24.5q54 0 105.5 -12.5t91.5 -40t64.5 -72.5t24.5 -111q0 -57 -27 -102.5t-73 -81.5t-106.5 -63t-127.5 -47t-136.5 -32.5t-133.5 -19.5q1 -193 57 -289t177 -96q45 0 90 14.5t88.5 44.5t83.5 76.5 t74 111.5l67 -38q-86 -161 -192.5 -236.5t-245.5 -75.5q-98 0 -169 32t-118 90t-69.5 139.5t-22.5 181.5zM262 539q81 11 158.5 34t138.5 58.5t98.5 83t37.5 106.5q0 33 -9 61.5t-27 49.5t-45.5 33t-64.5 12q-71 0 -122.5 -37.5t-86 -99t-53.5 -140.5t-25 -161zM351 1496 q0 31 16 48.5t44 17.5q18 0 41 -13.5t46 -51.5l159 -270l-49 -41l-211 219q-26 28 -36 50.5t-10 40.5z" /> +<glyph unicode="é" horiz-adv-x="976" d="M80 420q0 79 13.5 156.5t41 147t68.5 129t96.5 102.5t125 67.5t153.5 24.5q54 0 105.5 -12.5t91.5 -40t64.5 -72.5t24.5 -111q0 -57 -27 -102.5t-73 -81.5t-106.5 -63t-127.5 -47t-136.5 -32.5t-133.5 -19.5q1 -193 57 -289t177 -96q45 0 90 14.5t88.5 44.5t83.5 76.5 t74 111.5l67 -38q-86 -161 -192.5 -236.5t-245.5 -75.5q-98 0 -169 32t-118 90t-69.5 139.5t-22.5 181.5zM262 539q81 11 158.5 34t138.5 58.5t98.5 83t37.5 106.5q0 33 -9 61.5t-27 49.5t-45.5 33t-64.5 12q-71 0 -122.5 -37.5t-86 -99t-53.5 -140.5t-25 -161zM492 1227 l159 270q23 38 45 51.5t40 13.5q29 0 45.5 -17t16.5 -49q0 -18 -10 -40.5t-36 -50.5l-211 -219z" /> +<glyph unicode="ê" horiz-adv-x="976" d="M80 420q0 79 13.5 156.5t41 147t68.5 129t96.5 102.5t125 67.5t153.5 24.5q54 0 105.5 -12.5t91.5 -40t64.5 -72.5t24.5 -111q0 -57 -27 -102.5t-73 -81.5t-106.5 -63t-127.5 -47t-136.5 -32.5t-133.5 -19.5q1 -193 57 -289t177 -96q45 0 90 14.5t88.5 44.5t83.5 76.5 t74 111.5l67 -38q-86 -161 -192.5 -236.5t-245.5 -75.5q-98 0 -169 32t-118 90t-69.5 139.5t-22.5 181.5zM242 1268l344 321h4l287 -329l-51 -54l-256 232h-4l-279 -224zM262 539q81 11 158.5 34t138.5 58.5t98.5 83t37.5 106.5q0 33 -9 61.5t-27 49.5t-45.5 33t-64.5 12 q-71 0 -122.5 -37.5t-86 -99t-53.5 -140.5t-25 -161z" /> +<glyph unicode="ë" horiz-adv-x="976" d="M80 420q0 79 13.5 156.5t41 147t68.5 129t96.5 102.5t125 67.5t153.5 24.5q54 0 105.5 -12.5t91.5 -40t64.5 -72.5t24.5 -111q0 -57 -27 -102.5t-73 -81.5t-106.5 -63t-127.5 -47t-136.5 -32.5t-133.5 -19.5q1 -193 57 -289t177 -96q45 0 90 14.5t88.5 44.5t83.5 76.5 t74 111.5l67 -38q-86 -161 -192.5 -236.5t-245.5 -75.5q-98 0 -169 32t-118 90t-69.5 139.5t-22.5 181.5zM262 539q81 11 158.5 34t138.5 58.5t98.5 83t37.5 106.5q0 33 -9 61.5t-27 49.5t-45.5 33t-64.5 12q-71 0 -122.5 -37.5t-86 -99t-53.5 -140.5t-25 -161zM336 1373 q1 23 10 43.5t23 35.5t32 24t37 9q20 0 36.5 -9t27.5 -24t17 -35.5t5 -43.5q-1 -24 -9.5 -44.5t-22 -35.5t-31 -23.5t-35.5 -8.5q-20 0 -36.5 8.5t-28.5 23.5t-18.5 35.5t-6.5 44.5zM637 1373q1 23 10 43.5t23 35.5t32 24t37 9q20 0 36.5 -9t27.5 -24t17 -35.5t5 -43.5 q-1 -24 -9.5 -44.5t-22 -35.5t-31 -23.5t-35.5 -8.5q-20 0 -36.5 8.5t-28.5 23.5t-18.5 35.5t-6.5 44.5z" /> +<glyph unicode="ì" horiz-adv-x="663" d="M15 758q7 36 25 85.5t49.5 95t76.5 77t107 31.5q43 0 75.5 -15.5t54 -43.5t32 -67t10.5 -87q0 -62 -12 -141.5t-27 -168t-27 -180.5t-12 -178q0 -42 15 -64t49 -22q17 0 36.5 10.5t39.5 34t39 61.5t34 92l58 -12q-9 -43 -28.5 -93.5t-50.5 -94t-74.5 -72.5t-100.5 -29 q-185 0 -185 193q0 89 12.5 174t27.5 168.5t27.5 168t12.5 171.5q0 13 -2.5 29t-8.5 30t-17 23.5t-29 9.5q-17 0 -36.5 -10.5t-40 -34t-39.5 -61.5t-34 -92zM122 1496q0 31 16 48.5t44 17.5q18 0 41 -13.5t46 -51.5l159 -270l-49 -41l-211 219q-26 28 -36 50.5t-10 40.5z " /> +<glyph unicode="í" horiz-adv-x="663" d="M15 758q7 36 25 85.5t49.5 95t76.5 77t107 31.5q43 0 75.5 -15.5t54 -43.5t32 -67t10.5 -87q0 -62 -12 -141.5t-27 -168t-27 -180.5t-12 -178q0 -42 15 -64t49 -22q17 0 36.5 10.5t39.5 34t39 61.5t34 92l58 -12q-9 -43 -28.5 -93.5t-50.5 -94t-74.5 -72.5t-100.5 -29 q-185 0 -185 193q0 89 12.5 174t27.5 168.5t27.5 168t12.5 171.5q0 13 -2.5 29t-8.5 30t-17 23.5t-29 9.5q-17 0 -36.5 -10.5t-40 -34t-39.5 -61.5t-34 -92zM286 1227l159 270q23 38 45 51.5t40 13.5q29 0 45.5 -17t16.5 -49q0 -18 -10 -40.5t-36 -50.5l-211 -219z" /> +<glyph unicode="î" horiz-adv-x="663" d="M15 758q7 36 25 85.5t49.5 95t76.5 77t107 31.5q43 0 75.5 -15.5t54 -43.5t32 -67t10.5 -87q0 -62 -12 -141.5t-27 -168t-27 -180.5t-12 -178q0 -42 15 -64t49 -22q17 0 36.5 10.5t39.5 34t39 61.5t34 92l58 -12q-9 -43 -28.5 -93.5t-50.5 -94t-74.5 -72.5t-100.5 -29 q-185 0 -185 193q0 89 12.5 174t27.5 168.5t27.5 168t12.5 171.5q0 13 -2.5 29t-8.5 30t-17 23.5t-29 9.5q-17 0 -36.5 -10.5t-40 -34t-39.5 -61.5t-34 -92zM23 1268l324 321h4l258 -329l-53 -54l-225 232h-5l-258 -224z" /> +<glyph unicode="ï" horiz-adv-x="663" d="M15 758q7 36 25 85.5t49.5 95t76.5 77t107 31.5q43 0 75.5 -15.5t54 -43.5t32 -67t10.5 -87q0 -62 -12 -141.5t-27 -168t-27 -180.5t-12 -178q0 -42 15 -64t49 -22q17 0 36.5 10.5t39.5 34t39 61.5t34 92l58 -12q-9 -43 -28.5 -93.5t-50.5 -94t-74.5 -72.5t-100.5 -29 q-185 0 -185 193q0 89 12.5 174t27.5 168.5t27.5 168t12.5 171.5q0 13 -2.5 29t-8.5 30t-17 23.5t-29 9.5q-17 0 -36.5 -10.5t-40 -34t-39.5 -61.5t-34 -92zM120 1373q1 23 10 43.5t23 35.5t32 24t37 9q20 0 36.5 -9t27.5 -24t17 -35.5t5 -43.5q-1 -24 -9.5 -44.5t-22 -35.5 t-31 -23.5t-35.5 -8.5q-20 0 -36.5 8.5t-28.5 23.5t-18.5 35.5t-6.5 44.5zM421 1373q1 23 10 43.5t23 35.5t32 24t37 9q20 0 36.5 -9t27.5 -24t17 -35.5t5 -43.5q-1 -24 -9.5 -44.5t-22 -35.5t-31 -23.5t-35.5 -8.5q-20 0 -36.5 8.5t-28.5 23.5t-18.5 35.5t-6.5 44.5z" /> +<glyph unicode="ð" horiz-adv-x="1057" d="M81 428q0 138 36.5 249.5t98 190t142.5 120.5t170 42q69 0 127.5 -22t105.5 -79q-6 67 -18.5 132.5t-34.5 125.5t-56 112t-83 91l-134 -161l-69 65l128 143q-47 23 -103 35t-126 12h-22v69q37 3 72 3q70 0 130 -12.5t113 -35.5l119 134l59 -53l-102 -122 q80 -52 137 -130.5t93.5 -176t53.5 -211t17 -236.5q0 -138 -19 -246.5t-53 -190t-81 -138.5t-103.5 -93t-120 -52t-129.5 -16q-69 0 -132 28.5t-111 85.5t-76.5 141.5t-28.5 195.5zM257 450q0 -95 16 -169t44 -124t66 -76t83 -26q59 0 104.5 32t79 85t56.5 121.5t37 142.5 t20 148t6 137q0 20 -0.5 41t-0.5 42q-39 78 -97.5 111t-130.5 33q-46 0 -96 -32t-91.5 -95t-68.5 -156t-27 -215z" /> +<glyph unicode="ñ" horiz-adv-x="1259" d="M15 758q7 36 26.5 85.5t52.5 95t79.5 77t107.5 31.5q45 0 75 -17.5t47 -47t24 -68t7 -81.5q0 -33 -3.5 -68t-8 -68t-10.5 -63t-10 -54h6q52 140 103 230.5t101.5 143t100 73t99.5 20.5q61 0 104 -21.5t69 -58t38 -85t12 -101.5q0 -85 -9.5 -174t-21 -170.5t-21 -149.5 t-9.5 -112q0 -19 1.5 -36.5t7.5 -30.5t17 -21t29 -8q16 0 36 10.5t40 34t39 61.5t34 93l58 -13q-7 -36 -26.5 -85.5t-52.5 -94.5t-79.5 -76.5t-107.5 -31.5q-49 0 -81 13t-51 38.5t-26.5 62t-7.5 84.5q0 57 10 135t21.5 165.5t21.5 178t10 172.5q0 18 -4 39.5t-14.5 40.5 t-29 32t-48.5 13q-47 0 -95.5 -38.5t-93.5 -103t-84 -149.5t-68 -178.5t-46 -190t-17 -182.5q0 -31 1 -57t3 -52h-172q-2 22 -2 30q0 28 2 59t6.5 78.5t12.5 117.5t20 178q9 80 15.5 136t10.5 94t7 62t4 40.5t1.5 29t0.5 27.5q0 18 -2 35t-8 29.5t-16.5 20t-28.5 7.5 q-17 0 -36.5 -10.5t-40 -34t-39.5 -61.5t-34 -92zM369 1307q15 37 41 68.5t56.5 54t63 35t61.5 12.5q48 0 82 -16.5t62.5 -37t56.5 -37t63 -16.5q45 0 80.5 27.5t68.5 77.5l49 -25q-19 -51 -44 -86t-53.5 -57.5t-57.5 -32.5t-56 -10q-48 0 -83 17t-65 37t-59 37t-65 17 q-35 0 -77 -24t-73 -68z" /> +<glyph unicode="ò" horiz-adv-x="1068" d="M79 436q0 124 35 235.5t100 194.5t159 132t212 49q83 0 154 -30t123.5 -87t82 -140.5t29.5 -191.5q0 -124 -33.5 -236.5t-98 -198t-158 -136t-212.5 -50.5q-101 0 -175 36t-122.5 98t-72 146t-23.5 179zM259 482q0 -47 4.5 -97t15.5 -97.5t28.5 -89.5t44 -74t62 -50.5 t81.5 -18.5q53 0 95.5 22t75.5 58.5t57 85t39.5 102t23 108.5t8.5 127q0 47 -4.5 96t-15.5 95t-29 86t-45 70.5t-64 48t-86 17.5q-69 0 -123.5 -38.5t-91.5 -105t-56.5 -155.5t-19.5 -190zM369 1496q0 31 16 48.5t44 17.5q18 0 41 -13.5t46 -51.5l159 -270l-49 -41l-211 219 q-26 28 -36 50.5t-10 40.5z" /> +<glyph unicode="ó" horiz-adv-x="1068" d="M79 436q0 124 35 235.5t100 194.5t159 132t212 49q83 0 154 -30t123.5 -87t82 -140.5t29.5 -191.5q0 -124 -33.5 -236.5t-98 -198t-158 -136t-212.5 -50.5q-101 0 -175 36t-122.5 98t-72 146t-23.5 179zM259 482q0 -47 4.5 -97t15.5 -97.5t28.5 -89.5t44 -74t62 -50.5 t81.5 -18.5q53 0 95.5 22t75.5 58.5t57 85t39.5 102t23 108.5t8.5 127q0 47 -4.5 96t-15.5 95t-29 86t-45 70.5t-64 48t-86 17.5q-69 0 -123.5 -38.5t-91.5 -105t-56.5 -155.5t-19.5 -190zM514 1227l159 270q23 38 45 51.5t40 13.5q29 0 45.5 -17t16.5 -49q0 -18 -10 -40.5 t-36 -50.5l-211 -219z" /> +<glyph unicode="ô" horiz-adv-x="1068" d="M79 436q0 124 35 235.5t100 194.5t159 132t212 49q83 0 154 -30t123.5 -87t82 -140.5t29.5 -191.5q0 -124 -33.5 -236.5t-98 -198t-158 -136t-212.5 -50.5q-101 0 -175 36t-122.5 98t-72 146t-23.5 179zM249 1268l344 321h4l287 -329l-51 -54l-256 232h-4l-279 -224z M259 482q0 -47 4.5 -97t15.5 -97.5t28.5 -89.5t44 -74t62 -50.5t81.5 -18.5q53 0 95.5 22t75.5 58.5t57 85t39.5 102t23 108.5t8.5 127q0 47 -4.5 96t-15.5 95t-29 86t-45 70.5t-64 48t-86 17.5q-69 0 -123.5 -38.5t-91.5 -105t-56.5 -155.5t-19.5 -190z" /> +<glyph unicode="õ" horiz-adv-x="1068" d="M79 436q0 124 35 235.5t100 194.5t159 132t212 49q83 0 154 -30t123.5 -87t82 -140.5t29.5 -191.5q0 -124 -33.5 -236.5t-98 -198t-158 -136t-212.5 -50.5q-101 0 -175 36t-122.5 98t-72 146t-23.5 179zM239 1307q15 37 41 68.5t56.5 54t63 35t61.5 12.5q48 0 82 -16.5 t62.5 -37t56.5 -37t63 -16.5q45 0 80.5 27.5t68.5 77.5l49 -25q-19 -51 -44 -86t-53.5 -57.5t-57.5 -32.5t-56 -10q-48 0 -83 17t-65 37t-59 37t-65 17q-35 0 -77 -24t-73 -68zM259 482q0 -47 4.5 -97t15.5 -97.5t28.5 -89.5t44 -74t62 -50.5t81.5 -18.5q53 0 95.5 22 t75.5 58.5t57 85t39.5 102t23 108.5t8.5 127q0 47 -4.5 96t-15.5 95t-29 86t-45 70.5t-64 48t-86 17.5q-69 0 -123.5 -38.5t-91.5 -105t-56.5 -155.5t-19.5 -190z" /> +<glyph unicode="ö" horiz-adv-x="1068" d="M79 436q0 124 35 235.5t100 194.5t159 132t212 49q83 0 154 -30t123.5 -87t82 -140.5t29.5 -191.5q0 -124 -33.5 -236.5t-98 -198t-158 -136t-212.5 -50.5q-101 0 -175 36t-122.5 98t-72 146t-23.5 179zM259 482q0 -47 4.5 -97t15.5 -97.5t28.5 -89.5t44 -74t62 -50.5 t81.5 -18.5q53 0 95.5 22t75.5 58.5t57 85t39.5 102t23 108.5t8.5 127q0 47 -4.5 96t-15.5 95t-29 86t-45 70.5t-64 48t-86 17.5q-69 0 -123.5 -38.5t-91.5 -105t-56.5 -155.5t-19.5 -190zM322 1373q1 23 10 43.5t23 35.5t32 24t37 9q20 0 36.5 -9t27.5 -24t17 -35.5 t5 -43.5q-1 -24 -9.5 -44.5t-22 -35.5t-31 -23.5t-35.5 -8.5q-20 0 -36.5 8.5t-28.5 23.5t-18.5 35.5t-6.5 44.5zM623 1373q1 23 10 43.5t23 35.5t32 24t37 9q20 0 36.5 -9t27.5 -24t17 -35.5t5 -43.5q-1 -24 -9.5 -44.5t-22 -35.5t-31 -23.5t-35.5 -8.5q-20 0 -36.5 8.5 t-28.5 23.5t-18.5 35.5t-6.5 44.5z" /> +<glyph unicode="÷" horiz-adv-x="550" d="M145 213q0 28 10.5 52.5t28.5 43t41 29t47 10.5q48 0 77 -35t29 -87v-7q-1 -27 -11.5 -51t-27.5 -41t-38.5 -27t-44.5 -10t-43 9.5t-35 26t-24 39t-9 48.5zM165 921q0 28 10.5 52.5t28.5 43t41 29t47 10.5q48 0 77 -35t29 -87v-7q-1 -27 -11.5 -51t-27.5 -41t-38.5 -27 t-44.5 -10t-43 9.5t-35 26t-24 39t-9 48.5z" /> +<glyph unicode="ø" horiz-adv-x="1068" d="M69 -106l128 190q-60 63 -89 153.5t-29 198.5q0 124 35 235.5t100 194.5t159 132t212 49q123 0 218 -65l114 169l84 -59l-124 -179q46 -57 71.5 -136t25.5 -179q0 -124 -33.5 -236.5t-98 -198t-158 -136t-212.5 -50.5q-63 0 -114.5 13.5t-93.5 39.5l-130 -188zM258 474 q0 -61 8.5 -124.5t28.5 -120.5l432 640q-29 46 -71.5 74t-105.5 28q-67 0 -120.5 -36.5t-91 -99.5t-58 -148.5t-22.5 -212.5zM340 139q27 -40 64.5 -62t90.5 -22t95.5 22t75.5 58.5t57 85t39.5 102t23 108.5t8.5 104q0 55 -4.5 113.5t-18.5 112.5z" /> +<glyph unicode="ù" horiz-adv-x="1215" d="M13 758q7 36 25.5 85.5t50 95t77 77t107.5 31.5q82 0 124 -51t42 -148q0 -39 -5 -90t-12.5 -108.5t-16 -118t-16 -119.5t-12.5 -112.5t-5 -96.5q0 -18 3.5 -40t14 -42t29.5 -33.5t49 -13.5q47 0 94 38.5t90 103t80 149.5t64.5 178.5t43 189.5t15.5 182q0 31 -1 57t-3 52 h172q2 -22 2 -30q0 -29 -1.5 -61t-6 -80.5t-12.5 -120t-21 -179.5q-9 -80 -15.5 -135t-10.5 -92.5t-7 -60.5t-4 -38.5t-1.5 -27.5t-0.5 -27q0 -37 11.5 -63.5t43.5 -26.5q16 0 36 10t40.5 33.5t39.5 61t34 91.5l57 -12q-7 -36 -26.5 -85.5t-52 -95t-79 -77t-108.5 -31.5 q-42 0 -71.5 13.5t-49 37.5t-28.5 58t-9 76q0 58 11 127t26 147h-6q-52 -140 -100 -229t-95 -140t-94 -70.5t-97 -19.5q-62 0 -104.5 21.5t-69 58.5t-38.5 85.5t-12 101.5q0 85 10 173.5t22.5 169.5t22.5 149t10 112q0 19 -1.5 36.5t-7.5 30.5t-17 21t-29 8q-17 0 -36 -10.5 t-38 -34t-37 -61.5t-33 -92zM428 1496q0 31 16 48.5t44 17.5q18 0 41 -13.5t46 -51.5l159 -270l-49 -41l-211 219q-26 28 -36 50.5t-10 40.5z" /> +<glyph unicode="ú" horiz-adv-x="1215" d="M13 758q7 36 25.5 85.5t50 95t77 77t107.5 31.5q82 0 124 -51t42 -148q0 -39 -5 -90t-12.5 -108.5t-16 -118t-16 -119.5t-12.5 -112.5t-5 -96.5q0 -18 3.5 -40t14 -42t29.5 -33.5t49 -13.5q47 0 94 38.5t90 103t80 149.5t64.5 178.5t43 189.5t15.5 182q0 31 -1 57t-3 52 h172q2 -22 2 -30q0 -29 -1.5 -61t-6 -80.5t-12.5 -120t-21 -179.5q-9 -80 -15.5 -135t-10.5 -92.5t-7 -60.5t-4 -38.5t-1.5 -27.5t-0.5 -27q0 -37 11.5 -63.5t43.5 -26.5q16 0 36 10t40.5 33.5t39.5 61t34 91.5l57 -12q-7 -36 -26.5 -85.5t-52 -95t-79 -77t-108.5 -31.5 q-42 0 -71.5 13.5t-49 37.5t-28.5 58t-9 76q0 58 11 127t26 147h-6q-52 -140 -100 -229t-95 -140t-94 -70.5t-97 -19.5q-62 0 -104.5 21.5t-69 58.5t-38.5 85.5t-12 101.5q0 85 10 173.5t22.5 169.5t22.5 149t10 112q0 19 -1.5 36.5t-7.5 30.5t-17 21t-29 8q-17 0 -36 -10.5 t-38 -34t-37 -61.5t-33 -92zM550 1227l159 270q23 38 45 51.5t40 13.5q29 0 45.5 -17t16.5 -49q0 -18 -10 -40.5t-36 -50.5l-211 -219z" /> +<glyph unicode="û" horiz-adv-x="1215" d="M13 758q7 36 25.5 85.5t50 95t77 77t107.5 31.5q82 0 124 -51t42 -148q0 -39 -5 -90t-12.5 -108.5t-16 -118t-16 -119.5t-12.5 -112.5t-5 -96.5q0 -18 3.5 -40t14 -42t29.5 -33.5t49 -13.5q47 0 94 38.5t90 103t80 149.5t64.5 178.5t43 189.5t15.5 182q0 31 -1 57t-3 52 h172q2 -22 2 -30q0 -29 -1.5 -61t-6 -80.5t-12.5 -120t-21 -179.5q-9 -80 -15.5 -135t-10.5 -92.5t-7 -60.5t-4 -38.5t-1.5 -27.5t-0.5 -27q0 -37 11.5 -63.5t43.5 -26.5q16 0 36 10t40.5 33.5t39.5 61t34 91.5l57 -12q-7 -36 -26.5 -85.5t-52 -95t-79 -77t-108.5 -31.5 q-42 0 -71.5 13.5t-49 37.5t-28.5 58t-9 76q0 58 11 127t26 147h-6q-52 -140 -100 -229t-95 -140t-94 -70.5t-97 -19.5q-62 0 -104.5 21.5t-69 58.5t-38.5 85.5t-12 101.5q0 85 10 173.5t22.5 169.5t22.5 149t10 112q0 19 -1.5 36.5t-7.5 30.5t-17 21t-29 8q-17 0 -36 -10.5 t-38 -34t-37 -61.5t-33 -92zM335 1268l344 321h4l287 -329l-51 -54l-256 232h-4l-279 -224z" /> +<glyph unicode="ü" horiz-adv-x="1215" d="M13 758q7 36 25.5 85.5t50 95t77 77t107.5 31.5q82 0 124 -51t42 -148q0 -39 -5 -90t-12.5 -108.5t-16 -118t-16 -119.5t-12.5 -112.5t-5 -96.5q0 -18 3.5 -40t14 -42t29.5 -33.5t49 -13.5q47 0 94 38.5t90 103t80 149.5t64.5 178.5t43 189.5t15.5 182q0 31 -1 57t-3 52 h172q2 -22 2 -30q0 -29 -1.5 -61t-6 -80.5t-12.5 -120t-21 -179.5q-9 -80 -15.5 -135t-10.5 -92.5t-7 -60.5t-4 -38.5t-1.5 -27.5t-0.5 -27q0 -37 11.5 -63.5t43.5 -26.5q16 0 36 10t40.5 33.5t39.5 61t34 91.5l57 -12q-7 -36 -26.5 -85.5t-52 -95t-79 -77t-108.5 -31.5 q-42 0 -71.5 13.5t-49 37.5t-28.5 58t-9 76q0 58 11 127t26 147h-6q-52 -140 -100 -229t-95 -140t-94 -70.5t-97 -19.5q-62 0 -104.5 21.5t-69 58.5t-38.5 85.5t-12 101.5q0 85 10 173.5t22.5 169.5t22.5 149t10 112q0 19 -1.5 36.5t-7.5 30.5t-17 21t-29 8q-17 0 -36 -10.5 t-38 -34t-37 -61.5t-33 -92zM409 1373q1 23 10 43.5t23 35.5t32 24t37 9q20 0 36.5 -9t27.5 -24t17 -35.5t5 -43.5q-1 -24 -9.5 -44.5t-22 -35.5t-31 -23.5t-35.5 -8.5q-20 0 -36.5 8.5t-28.5 23.5t-18.5 35.5t-6.5 44.5zM710 1373q1 23 10 43.5t23 35.5t32 24t37 9 q20 0 36.5 -9t27.5 -24t17 -35.5t5 -43.5q-1 -24 -9.5 -44.5t-22 -35.5t-31 -23.5t-35.5 -8.5q-20 0 -36.5 8.5t-28.5 23.5t-18.5 35.5t-6.5 44.5z" /> +<glyph unicode="ý" horiz-adv-x="1053" d="M-24 -426q0 23 8 40.5t20.5 29.5t27.5 18t29 6q41 0 64 -25.5t23 -73.5v-8q26 -13 52 -13q29 0 60.5 17t62 44t59 61t52.5 67t42.5 62.5t29.5 47.5q-18 118 -43 244t-56.5 250.5t-69 243.5t-80.5 223q-7 18 -16 36.5t-21 34t-26 25.5t-32 10q-35 0 -56.5 -43.5 t-21.5 -115.5q0 -27 3 -55l-66 -7q-3 28 -3 60q0 51 9 103.5t30.5 95t58 69t91.5 26.5q52 0 89.5 -22t64.5 -56t45.5 -75t32.5 -78q23 -62 43.5 -132t39 -143t35 -147.5t33.5 -145.5q11 -49 18 -97t13 -112h4q43 75 85 163.5t75 180.5t53.5 184.5t20.5 176.5q0 51 -9.5 89.5 t-21.5 55.5q-19 -13 -50 -13q-37 0 -59.5 24.5t-22.5 56.5q0 22 8 38.5t21 28t30.5 17.5t35.5 6q47 0 78.5 -23t50.5 -60t27 -84t8 -95q0 -102 -23 -207.5t-61 -210t-87 -206t-101 -196.5q-78 -141 -149.5 -239.5t-139 -161t-132.5 -91t-130 -28.5q-72 4 -114 39.5t-42 89.5 zM527 1227l159 270q23 38 45 51.5t40 13.5q29 0 45.5 -17t16.5 -49q0 -18 -10 -40.5t-36 -50.5l-211 -219z" /> +<glyph unicode="þ" horiz-adv-x="1048" d="M-22 -461q43 0 66.5 22t35 60.5t15.5 90.5t8 112q10 141 18.5 265t16.5 238.5t16 224.5t16 223t17 234t20 259q4 45 6.5 79.5t9.5 69.5l-149 -8l9 82q67 0 111.5 4.5t73.5 12t46 17.5t29 21h59q-7 -43 -13.5 -89.5t-12.5 -92t-11 -88l-9 -76.5q-15 -136 -28.5 -280 t-29.5 -308l6 -2q27 99 58 170t65 119.5t69 77.5t70 44.5t68.5 20.5t64.5 5q71 0 120 -31.5t79 -84t43.5 -121t13.5 -142.5q0 -141 -31.5 -267t-100 -220t-176 -149t-259.5 -55q-25 0 -56.5 1.5t-66.5 6.5l-12 -259q-3 -42 -5 -88.5t-12 -81.5l129 6v-84h-387v61zM265 96 q12 -12 31 -21t40.5 -15t44 -8.5t42.5 -2.5q72 1 127 27t94.5 70t65.5 102t41.5 122t21.5 130.5t6 128.5q0 153 -32.5 237.5t-106.5 84.5q-49 -2 -95 -42.5t-87 -107t-75.5 -153t-60 -181t-40.5 -190.5t-17 -181z" /> +<glyph unicode="ÿ" horiz-adv-x="1053" d="M-24 -426q0 23 8 40.5t20.5 29.5t27.5 18t29 6q41 0 64 -25.5t23 -73.5v-8q26 -13 52 -13q29 0 60.5 17t62 44t59 61t52.5 67t42.5 62.5t29.5 47.5q-18 118 -43 244t-56.5 250.5t-69 243.5t-80.5 223q-7 18 -16 36.5t-21 34t-26 25.5t-32 10q-35 0 -56.5 -43.5 t-21.5 -115.5q0 -27 3 -55l-66 -7q-3 28 -3 60q0 51 9 103.5t30.5 95t58 69t91.5 26.5q52 0 89.5 -22t64.5 -56t45.5 -75t32.5 -78q23 -62 43.5 -132t39 -143t35 -147.5t33.5 -145.5q11 -49 18 -97t13 -112h4q43 75 85 163.5t75 180.5t53.5 184.5t20.5 176.5q0 51 -9.5 89.5 t-21.5 55.5q-19 -13 -50 -13q-37 0 -59.5 24.5t-22.5 56.5q0 22 8 38.5t21 28t30.5 17.5t35.5 6q47 0 78.5 -23t50.5 -60t27 -84t8 -95q0 -102 -23 -207.5t-61 -210t-87 -206t-101 -196.5q-78 -141 -149.5 -239.5t-139 -161t-132.5 -91t-130 -28.5q-72 4 -114 39.5t-42 89.5 zM375 1373q1 23 10 43.5t23 35.5t32 24t37 9q20 0 36.5 -9t27.5 -24t17 -35.5t5 -43.5q-1 -24 -9.5 -44.5t-22 -35.5t-31 -23.5t-35.5 -8.5q-20 0 -36.5 8.5t-28.5 23.5t-18.5 35.5t-6.5 44.5zM676 1373q1 23 10 43.5t23 35.5t32 24t37 9q20 0 36.5 -9t27.5 -24t17 -35.5 t5 -43.5q-1 -24 -9.5 -44.5t-22 -35.5t-31 -23.5t-35.5 -8.5q-20 0 -36.5 8.5t-28.5 23.5t-18.5 35.5t-6.5 44.5z" /> +<glyph unicode="Œ" horiz-adv-x="2073" d="M100 674q5 96 28.5 191.5t66 182.5t104 162.5t142.5 131.5t181 89t220 36q60 1 130 -10t136 -23h833l-8 -359h-67q4 91 -14.5 147.5t-54.5 88t-86 42t-108 9.5l-176 -4q-57 -2 -89.5 -16.5t-48.5 -44.5t-21.5 -75.5t-8.5 -107.5l-18 -330h152q64 0 110.5 5t76.5 24 t45.5 57.5t18.5 106.5h68l-22 -447h-68q3 68 -9 104.5t-40.5 53.5t-74.5 20t-110 3q-35 0 -76 -2t-75 -7l-25 -454q-2 -56 -5.5 -95t-8.5 -65l393 -12q67 -2 122 14t95 54t63.5 101t28.5 154h70l-33 -399h-905q-81 -17 -152 -25t-131 -8q-156 0 -280 53t-208.5 147.5 t-126.5 224t-34 282.5zM291 705q-6 -146 25.5 -264t98 -202t167.5 -129.5t233 -45.5q56 0 107.5 7.5t114.5 24.5l65 1237q-57 23 -125 35.5t-127 12.5q-109 0 -207.5 -46.5t-174.5 -133.5t-123 -212.5t-54 -283.5z" /> +<glyph unicode="œ" horiz-adv-x="1633" d="M82 436q0 126 31.5 237t93 194t152 131.5t208.5 48.5q102 -2 174 -57.5t107 -158.5h6q22 37 58.5 75.5t83.5 69.5t102.5 51t115.5 20q54 0 107.5 -9.5t95.5 -34.5t68 -68.5t26 -111.5q0 -55 -24 -100.5t-65.5 -82t-98.5 -64.5t-123.5 -48.5t-138.5 -33.5t-145 -20 q-1 -9 -1 -18v-18q0 -102 22 -171t56.5 -111t77.5 -59.5t85 -17.5t87.5 16t89.5 47.5t84.5 77.5t72.5 107l68 -38q-87 -162 -196.5 -237t-249.5 -75q-100 0 -182 50t-127 155h-4q-26 -41 -62.5 -78t-81 -65.5t-95.5 -45t-105 -16.5q-102 0 -173 36t-115.5 98t-64.5 146 t-20 179zM256 475q0 -70 9 -144t33.5 -135t67.5 -100t111 -39q73 0 125 38.5t85 102t49 144.5t18 166q0 13 0.5 28t0.5 32q0 39 -2.5 84t-11 90t-24 86t-40.5 73t-61.5 51t-86.5 19q-71 0 -122.5 -39t-85 -106t-49.5 -157.5t-16 -193.5zM915 544q49 7 100 18t99 27t91 38.5 t74.5 52t50 67t18.5 83.5q0 75 -39 111t-102 36h-11.5t-11.5 -1q-53 -5 -100 -42t-83 -96t-58.5 -135t-27.5 -159z" /> +<glyph unicode="Ÿ" horiz-adv-x="1312" d="M42 1343l4 91h520l-4 -68q-71 0 -108.5 -16.5t-49.5 -46t-1 -70.5t38 -90q97 -169 161.5 -276.5t105.5 -168.5h4q40 70 76.5 133t213.5 363l21 35t26 41.5t29.5 42.5t30.5 37l-162 -7l4 91h418l-4 -68q-51 -3 -91.5 -20t-77.5 -49.5t-72 -81t-74 -113.5 q-79 -133 -149 -254t-136 -234q-22 -370 -21 -370q-2 -56 -5.5 -96t-8.5 -66l170 8l-4 -90h-473l4 68q58 2 88 22t43.5 53.5t15.5 78.5t5 97l12 234l-324 563q-49 82 -71 137.5t-27 94.5zM485 1715q1 26 10.5 48.5t24.5 39t34.5 26t40.5 9.5t38.5 -9.5t29.5 -26t18 -39 t5 -48.5t-10 -48t-23.5 -38.5t-33.5 -26t-38 -9.5q-21 0 -39 9.5t-31 26t-20 38.5t-6 48zM816 1715q1 26 10.5 48.5t24.5 39t34.5 26t40.5 9.5t38.5 -9.5t29.5 -26t18 -39t5 -48.5t-10 -48t-23.5 -38.5t-33.5 -26t-38 -9.5q-21 0 -39 9.5t-31 26t-20 38.5t-6 48z" /> +<glyph unicode="ˆ" horiz-adv-x="819" d="M92 1268l344 321h4l287 -329l-51 -54l-256 232h-4l-279 -224z" /> +<glyph unicode="˜" horiz-adv-x="868" d="M92 1307q15 37 41 68.5t56.5 54t63 35t61.5 12.5q48 0 82 -16.5t62.5 -37t56.5 -37t63 -16.5q45 0 80.5 27.5t68.5 77.5l49 -25q-19 -51 -44 -86t-53.5 -57.5t-57.5 -32.5t-56 -10q-48 0 -83 17t-65 37t-59 37t-65 17q-35 0 -77 -24t-73 -68z" /> +<glyph unicode=" " horiz-adv-x="984" /> +<glyph unicode=" " horiz-adv-x="1968" /> +<glyph unicode=" " horiz-adv-x="984" /> +<glyph unicode=" " horiz-adv-x="1968" /> +<glyph unicode=" " horiz-adv-x="656" /> +<glyph unicode=" " horiz-adv-x="492" /> +<glyph unicode=" " horiz-adv-x="328" /> +<glyph unicode=" " horiz-adv-x="328" /> +<glyph unicode=" " horiz-adv-x="246" /> +<glyph unicode=" " horiz-adv-x="393" /> +<glyph unicode=" " horiz-adv-x="109" /> +<glyph unicode="‐" horiz-adv-x="989" d="M130 588l6 135h727l-6 -127z" /> +<glyph unicode="‑" horiz-adv-x="989" d="M130 588l6 135h727l-6 -127z" /> +<glyph unicode="‒" horiz-adv-x="989" d="M130 588l6 135h727l-6 -127z" /> +<glyph unicode="–" horiz-adv-x="1194" d="M129 588l7 135h932l-8 -127z" /> +<glyph unicode="—" horiz-adv-x="1421" d="M130 588l6 135h1157l-6 -127z" /> +<glyph unicode="‘" horiz-adv-x="433" d="M135 1143q0 38 10.5 88.5t31.5 105t52.5 109.5t73.5 103l51 -41q-18 -20 -38 -54t-37 -75.5t-28 -87.5t-11 -108h3q13 5 25 7t23 2q20 0 36.5 -8t28.5 -21t18.5 -30.5t6.5 -35.5q0 -28 -9 -49.5t-25 -36t-36.5 -22t-44.5 -7.5q-63 0 -97 44.5t-34 116.5z" /> +<glyph unicode="’" horiz-adv-x="401" d="M124 1441q0 28 9 49.5t25 36t36.5 22t44.5 7.5q63 0 97 -44.5t34 -116.5q0 -38 -10.5 -88.5t-31.5 -105t-52.5 -109.5t-73.5 -103l-51 41q18 20 38 54t37 75.5t28 87.5t11 108h-3q-13 -5 -25 -7t-23 -2q-20 0 -36.5 8t-28.5 21t-18.5 30.5t-6.5 35.5z" /> +<glyph unicode="‚" horiz-adv-x="485" d="M89 86q0 28 9 49.5t25 36t36.5 22t44.5 7.5q63 0 97 -44.5t34 -116.5q0 -38 -10.5 -88.5t-31.5 -105t-52.5 -109.5t-73.5 -103l-51 41q18 20 38 54t37 75.5t28 87.5t11 108h-3q-13 -5 -25 -7t-23 -2q-20 0 -36.5 8t-28.5 21t-18.5 30.5t-6.5 35.5z" /> +<glyph unicode="“" horiz-adv-x="794" d="M135 1143q0 38 10.5 88.5t31.5 105t52.5 109.5t73.5 103l51 -41q-18 -20 -38 -54t-37 -75.5t-28 -87.5t-11 -108h3q13 5 25 7t23 2q20 0 36.5 -8t28.5 -21t18.5 -30.5t6.5 -35.5q0 -28 -9 -49.5t-25 -36t-36.5 -22t-44.5 -7.5q-63 0 -97 44.5t-34 116.5zM496 1143 q0 38 10.5 88.5t31.5 105t52.5 109.5t73.5 103l51 -41q-18 -20 -38 -54t-37 -75.5t-28 -87.5t-11 -108h3q13 5 25 7t23 2q20 0 36.5 -8t28.5 -21t18.5 -30.5t6.5 -35.5q0 -28 -9 -49.5t-25 -36t-36.5 -22t-44.5 -7.5q-63 0 -97 44.5t-34 116.5z" /> +<glyph unicode="”" horiz-adv-x="761" d="M124 1441q0 28 9 49.5t25 36t36.5 22t44.5 7.5q63 0 97 -44.5t34 -116.5q0 -38 -10.5 -88.5t-31.5 -105t-52.5 -109.5t-73.5 -103l-51 41q18 20 38 54t37 75.5t28 87.5t11 108h-3q-13 -5 -25 -7t-23 -2q-20 0 -36.5 8t-28.5 21t-18.5 30.5t-6.5 35.5zM484 1441 q0 28 9 49.5t25 36t36.5 22t44.5 7.5q63 0 97 -44.5t34 -116.5q0 -38 -10.5 -88.5t-31.5 -105t-52.5 -109.5t-73.5 -103l-51 41q18 20 38 54t37 75.5t28 87.5t11 108h-3q-13 -5 -25 -7t-23 -2q-20 0 -36.5 8t-28.5 21t-18.5 30.5t-6.5 35.5z" /> +<glyph unicode="„" horiz-adv-x="846" d="M89 86q0 28 9 49.5t25 36t36.5 22t44.5 7.5q63 0 97 -44.5t34 -116.5q0 -38 -10.5 -88.5t-31.5 -105t-52.5 -109.5t-73.5 -103l-51 41q18 20 38 54t37 75.5t28 87.5t11 108h-3q-13 -5 -25 -7t-23 -2q-20 0 -36.5 8t-28.5 21t-18.5 30.5t-6.5 35.5zM449 86q0 28 9 49.5 t25 36t36.5 22t44.5 7.5q63 0 97 -44.5t34 -116.5q0 -38 -10.5 -88.5t-31.5 -105t-52.5 -109.5t-73.5 -103l-51 41q18 20 38 54t37 75.5t28 87.5t11 108h-3q-13 -5 -25 -7t-23 -2q-20 0 -36.5 8t-28.5 21t-18.5 30.5t-6.5 35.5z" /> +<glyph unicode="•" horiz-adv-x="797" d="M99 746v10t1 10q3 64 30 119t70.5 96t100.5 64.5t121 23.5q62 0 116 -22t93.5 -61t62.5 -92t23 -114q0 -66 -27 -124t-72 -100.5t-104 -67.5t-123 -25q-61 0 -114.5 21.5t-93 60t-62 90t-22.5 111.5z" /> +<glyph unicode="…" horiz-adv-x="1582" d="M87 90q0 28 10.5 52.5t28.5 43t41 29t47 10.5q48 0 77 -35t29 -87v-7q-1 -27 -11.5 -51t-27.5 -41t-38.5 -27t-44.5 -10t-43 9.5t-35 26t-24 39t-9 48.5zM640 90q0 28 10.5 52.5t28.5 43t41 29t47 10.5q48 0 77 -35t29 -87v-7q-1 -27 -11.5 -51t-27.5 -41t-38.5 -27 t-44.5 -10t-43 9.5t-35 26t-24 39t-9 48.5zM1193 90q0 28 10.5 52.5t28.5 43t41 29t47 10.5q48 0 77 -35t29 -87v-7q-1 -27 -11.5 -51t-27.5 -41t-38.5 -27t-44.5 -10t-43 9.5t-35 26t-24 39t-9 48.5z" /> +<glyph unicode=" " horiz-adv-x="393" /> +<glyph unicode="‹" horiz-adv-x="756" d="M52 541v8l602 575l49 -55l-449 -528v-4l373 -498l-59 -53z" /> +<glyph unicode="›" horiz-adv-x="755" d="M44 41l449 528v4l-373 498l59 53l516 -555v-8l-602 -575z" /> +<glyph unicode=" " horiz-adv-x="492" /> +<glyph unicode="€" horiz-adv-x="1549" d="M65 496l35 114l157 -1q-1 10 -1 19.5v20.5q0 37 3 74t10 72h-187l34 114l177 -1q32 114 91.5 215.5t145 178t195.5 121t243 44.5q111 0 199 -29t172 -86h2l8 101h111l-62 -414h-73q-7 73 -29 135.5t-63.5 108.5t-104.5 72t-151 26q-86 0 -166.5 -31t-148.5 -91 t-119.5 -148t-78.5 -203l703 -3l-61 -106l-662 -3q-4 -30 -6 -61.5t-2 -63.5q0 -33 3 -63l572 -2l-61 -106l-495 -2q21 -97 64.5 -174.5t106 -131.5t140.5 -83t168 -29q135 0 253.5 57t208.5 172l54 -45q-71 -91 -146.5 -149t-149.5 -91t-145.5 -45t-134.5 -12 q-128 0 -231.5 39.5t-180.5 110t-126 167.5t-68 213z" /> +<glyph unicode="™" horiz-adv-x="2130" d="M156 1163l20 271h729l-6 -271h-61q1 50 -5 87t-21.5 61t-44 35.5t-72.5 11.5l-90 -1l-31 -583q-2 -23 -2.5 -45t-3.5 -39l94 4l-4 -73h-320l4 57q29 0 48 9.5t30 26.5t16 40t7 51l28 551l-127 -1q-63 -1 -92.5 -50t-34.5 -142h-61zM905 625l5 57q31 1 50.5 11.5t31.5 29 t17.5 44.5t8.5 58l45 463q2 26 4 42.5t4 26.5l-88 -5l4 82h254l148 -439q17 -49 36.5 -107.5t41.5 -117.5h2q8 18 18 38.5t20 41.5t19 41t16 35q57 126 120.5 248.5t125.5 259.5h225l-4 -68q-30 -1 -48.5 -11.5t-28.5 -29.5t-13 -45.5t-2 -58.5l7 -430q1 -23 0.5 -52.5 t-2.5 -49.5l100 5l-4 -71h-324l4 57q31 1 51 12t31.5 31t15.5 47t4 59l-5 305q-1 34 0.5 68t3.5 72h-2q-13 -36 -26.5 -67.5t-27.5 -61.5l-256 -533h-86q-65 171 -127.5 342.5t-114.5 342.5h-2l-9 -130l-36 -393q-3 -26 -5.5 -47.5t-8.5 -38.5l100 6l-4 -69h-289z" /> +<glyph unicode="◼" horiz-adv-x="1045" d="M0 0v1045h1045v-1045h-1045z" /> +<glyph unicode="fi" horiz-adv-x="1317" d="M-256 -449q0 12 4.5 26.5t14 27.5t25.5 21.5t39 8.5q38 0 59 -26t21 -68q11 -8 27.5 -12t35.5 -4q39 0 67.5 24t48.5 68t33.5 105.5t22.5 136.5t16.5 162.5t14 181.5t12.5 191.5t12.5 192.5t14 184t16.5 167l-178 -2l10 88h178l6 35q16 100 49 189t89 156.5t139 108 t200 43.5q75 0 139.5 -20.5t112 -53.5t74.5 -75.5t27 -87.5q-1 -21 -9 -38.5t-20.5 -30t-28 -19t-31.5 -6.5q-23 0 -40.5 8t-28.5 21t-16.5 29t-5.5 32q0 14 3 29.5t11 31.5q-6 25 -26 46.5t-48.5 37.5t-63.5 24.5t-71 8.5q-28 0 -59 -4t-62 -18t-60.5 -42.5t-53.5 -78 t-41.5 -123t-24.5 -178.5l-2 -25h290l-6 -80h-290l-50 -719q-7 -98 -18.5 -193.5t-32.5 -182.5t-52.5 -161t-78 -128t-109 -84.5t-145.5 -30.5q-160 0 -160 106zM670 758q7 36 25 85.5t49.5 95t76.5 77t107 31.5q43 0 75.5 -15.5t54 -43.5t32 -67t10.5 -87q0 -62 -12 -141.5 t-27 -168t-27 -180.5t-12 -178q0 -42 15 -64t49 -22q17 0 36.5 10.5t39.5 34t39 61.5t34 92l58 -12q-9 -43 -28.5 -93.5t-50.5 -94t-74.5 -72.5t-100.5 -29q-185 0 -185 193q0 89 12.5 174t27.5 168.5t27.5 168t12.5 171.5q0 13 -2.5 29t-8.5 30t-17 23.5t-29 9.5 q-17 0 -36.5 -10.5t-40 -34t-39.5 -61.5t-34 -92z" /> +<glyph unicode="fl" horiz-adv-x="1251" d="M-256 -449q0 12 4.5 26.5t14 27.5t25.5 21.5t39 8.5q38 0 59 -26t21 -68q11 -8 27.5 -12t35.5 -4q39 0 67 24t48.5 68t34 105.5t22.5 136.5t16.5 162.5t13.5 181.5t12.5 191.5t12.5 192.5t13.5 184t16.5 167l-177 -2l10 88h178l6 35q16 100 48.5 190t87 158t133.5 108.5 t188 40.5q37 0 71.5 -5.5t66.5 -12.5t62 -12.5t58 -5.5q25 0 48 6t46 20h59q-6 -38 -14 -84.5t-15.5 -93.5t-14.5 -91.5t-11 -78.5q-9 -72 -19.5 -161.5t-20.5 -185.5t-19.5 -193t-16.5 -185.5t-11.5 -162.5t-4.5 -123q0 -20 1.5 -39.5t7 -34.5t17 -24.5t31.5 -9.5 q16 0 36 10.5t39.5 34t38.5 61.5t34 93l59 -13q-7 -36 -26.5 -85.5t-52 -94.5t-79 -76.5t-108.5 -31.5q-89 0 -126.5 45t-37.5 136q0 50 5.5 137t15.5 196t22.5 231.5t26.5 244.5t28 235t27 203q-15 14 -40 29t-56.5 27t-66.5 20.5t-70 9.5q-28 0 -58.5 -4t-60.5 -19 t-58.5 -43.5t-52 -77.5t-40 -122t-23.5 -176l-2 -25h290l-6 -80h-290l-50 -719q-6 -98 -17 -193.5t-31 -182.5t-51 -161t-77.5 -128t-110.5 -84.5t-149 -30.5q-160 0 -160 106z" /> +<hkern u1=""" u2="‹" k="84" /> +<hkern u1=""" u2="…" k="238" /> +<hkern u1=""" u2="„" k="259" /> +<hkern u1=""" u2="‚" k="238" /> +<hkern u1=""" u2="œ" k="37" /> +<hkern u1=""" u2="ø" k="37" /> +<hkern u1=""" u2="ö" k="37" /> +<hkern u1=""" u2="õ" k="37" /> +<hkern u1=""" u2="ô" k="37" /> +<hkern u1=""" u2="ó" k="37" /> +<hkern u1=""" u2="ò" k="37" /> +<hkern u1=""" u2="ð" k="46" /> +<hkern u1=""" u2="ë" k="37" /> +<hkern u1=""" u2="ê" k="37" /> +<hkern u1=""" u2="é" k="37" /> +<hkern u1=""" u2="è" k="37" /> +<hkern u1=""" u2="ç" k="37" /> +<hkern u1=""" u2="å" k="50" /> +<hkern u1=""" u2="ä" k="50" /> +<hkern u1=""" u2="ã" k="50" /> +<hkern u1=""" u2="â" k="50" /> +<hkern u1=""" u2="á" k="50" /> +<hkern u1=""" u2="à" k="50" /> +<hkern u1=""" u2="Æ" k="210" /> +<hkern u1=""" u2="Å" k="116" /> +<hkern u1=""" u2="Ä" k="116" /> +<hkern u1=""" u2="Ã" k="116" /> +<hkern u1=""" u2="Â" k="116" /> +<hkern u1=""" u2="Á" k="116" /> +<hkern u1=""" u2="À" k="116" /> +<hkern u1=""" u2="«" k="84" /> +<hkern u1=""" u2="q" k="75" /> +<hkern u1=""" u2="o" k="37" /> +<hkern u1=""" u2="g" k="75" /> +<hkern u1=""" u2="e" k="37" /> +<hkern u1=""" u2="d" k="75" /> +<hkern u1=""" u2="c" k="37" /> +<hkern u1=""" u2="a" k="50" /> +<hkern u1=""" u2="A" k="116" /> +<hkern u1=""" u2="@" k="25" /> +<hkern u1=""" u2="4" k="72" /> +<hkern u1=""" u2="/" k="216" /> +<hkern u1=""" u2="." k="238" /> +<hkern u1=""" u2="," k="238" /> +<hkern u1="$" u2="4" k="-17" /> +<hkern u1="&" u2="”" k="61" /> +<hkern u1="&" u2="’" k="61" /> +<hkern u1="&" u2="Ÿ" k="91" /> +<hkern u1="&" u2="Œ" k="-26" /> +<hkern u1="&" u2="ÿ" k="-78" /> +<hkern u1="&" u2="ý" k="-78" /> +<hkern u1="&" u2="ü" k="-32" /> +<hkern u1="&" u2="û" k="-32" /> +<hkern u1="&" u2="ú" k="-32" /> +<hkern u1="&" u2="ù" k="-32" /> +<hkern u1="&" u2="ñ" k="-28" /> +<hkern u1="&" u2="ï" k="-29" /> +<hkern u1="&" u2="î" k="-29" /> +<hkern u1="&" u2="í" k="-29" /> +<hkern u1="&" u2="ì" k="-29" /> +<hkern u1="&" u2="Ý" k="91" /> +<hkern u1="&" u2="Ø" k="-26" /> +<hkern u1="&" u2="Ö" k="-26" /> +<hkern u1="&" u2="Õ" k="-26" /> +<hkern u1="&" u2="Ô" k="-26" /> +<hkern u1="&" u2="Ó" k="-26" /> +<hkern u1="&" u2="Ò" k="-26" /> +<hkern u1="&" u2="Ð" k="-78" /> +<hkern u1="&" u2="Ç" k="-26" /> +<hkern u1="&" u2="Æ" k="56" /> +<hkern u1="&" u2="Å" k="28" /> +<hkern u1="&" u2="Ä" k="28" /> +<hkern u1="&" u2="Ã" k="28" /> +<hkern u1="&" u2="Â" k="28" /> +<hkern u1="&" u2="Á" k="28" /> +<hkern u1="&" u2="À" k="28" /> +<hkern u1="&" u2="y" k="-78" /> +<hkern u1="&" u2="w" k="-36" /> +<hkern u1="&" u2="v" k="-38" /> +<hkern u1="&" u2="u" k="-32" /> +<hkern u1="&" u2="r" k="-29" /> +<hkern u1="&" u2="n" k="-28" /> +<hkern u1="&" u2="m" k="-27" /> +<hkern u1="&" u2="i" k="-29" /> +<hkern u1="&" u2="Z" k="34" /> +<hkern u1="&" u2="Y" k="91" /> +<hkern u1="&" u2="X" k="29" /> +<hkern u1="&" u2="W" k="51" /> +<hkern u1="&" u2="V" k="60" /> +<hkern u1="&" u2="T" k="56" /> +<hkern u1="&" u2="Q" k="-26" /> +<hkern u1="&" u2="O" k="-26" /> +<hkern u1="&" u2="G" k="-26" /> +<hkern u1="&" u2="C" k="-26" /> +<hkern u1="&" u2="A" k="28" /> +<hkern u1="&" u2="'" k="62" /> +<hkern u1="&" u2=""" k="62" /> +<hkern u1="'" u2="‹" k="84" /> +<hkern u1="'" u2="…" k="203" /> +<hkern u1="'" u2="„" k="203" /> +<hkern u1="'" u2="‚" k="203" /> +<hkern u1="'" u2="œ" k="38" /> +<hkern u1="'" u2="ø" k="38" /> +<hkern u1="'" u2="ö" k="38" /> +<hkern u1="'" u2="õ" k="38" /> +<hkern u1="'" u2="ô" k="38" /> +<hkern u1="'" u2="ó" k="38" /> +<hkern u1="'" u2="ò" k="38" /> +<hkern u1="'" u2="ð" k="46" /> +<hkern u1="'" u2="ë" k="38" /> +<hkern u1="'" u2="ê" k="38" /> +<hkern u1="'" u2="é" k="38" /> +<hkern u1="'" u2="è" k="38" /> +<hkern u1="'" u2="ç" k="38" /> +<hkern u1="'" u2="å" k="50" /> +<hkern u1="'" u2="ä" k="50" /> +<hkern u1="'" u2="ã" k="50" /> +<hkern u1="'" u2="â" k="50" /> +<hkern u1="'" u2="á" k="50" /> +<hkern u1="'" u2="à" k="50" /> +<hkern u1="'" u2="Æ" k="203" /> +<hkern u1="'" u2="Å" k="116" /> +<hkern u1="'" u2="Ä" k="116" /> +<hkern u1="'" u2="Ã" k="116" /> +<hkern u1="'" u2="Â" k="116" /> +<hkern u1="'" u2="Á" k="116" /> +<hkern u1="'" u2="À" k="116" /> +<hkern u1="'" u2="«" k="84" /> +<hkern u1="'" u2="q" k="76" /> +<hkern u1="'" u2="o" k="38" /> +<hkern u1="'" u2="g" k="76" /> +<hkern u1="'" u2="e" k="38" /> +<hkern u1="'" u2="d" k="76" /> +<hkern u1="'" u2="c" k="38" /> +<hkern u1="'" u2="a" k="50" /> +<hkern u1="'" u2="A" k="116" /> +<hkern u1="'" u2="@" k="26" /> +<hkern u1="'" u2="4" k="73" /> +<hkern u1="'" u2="/" k="203" /> +<hkern u1="'" u2="." k="203" /> +<hkern u1="'" u2="," k="203" /> +<hkern u1="(" u2="fl" k="-251" /> +<hkern u1="(" u2="fi" k="-251" /> +<hkern u1="(" u2="…" k="75" /> +<hkern u1="(" u2="„" k="75" /> +<hkern u1="(" u2="‚" k="75" /> +<hkern u1="(" u2="—" k="100" /> +<hkern u1="(" u2="–" k="100" /> +<hkern u1="(" u2="Ÿ" k="-21" /> +<hkern u1="(" u2="œ" k="130" /> +<hkern u1="(" u2="Œ" k="54" /> +<hkern u1="(" u2="þ" k="-31" /> +<hkern u1="(" u2="ü" k="32" /> +<hkern u1="(" u2="û" k="32" /> +<hkern u1="(" u2="ú" k="32" /> +<hkern u1="(" u2="ù" k="32" /> +<hkern u1="(" u2="ø" k="130" /> +<hkern u1="(" u2="ö" k="130" /> +<hkern u1="(" u2="õ" k="130" /> +<hkern u1="(" u2="ô" k="130" /> +<hkern u1="(" u2="ó" k="130" /> +<hkern u1="(" u2="ò" k="130" /> +<hkern u1="(" u2="ñ" k="31" /> +<hkern u1="(" u2="ð" k="25" /> +<hkern u1="(" u2="ë" k="130" /> +<hkern u1="(" u2="ê" k="130" /> +<hkern u1="(" u2="é" k="130" /> +<hkern u1="(" u2="è" k="130" /> +<hkern u1="(" u2="ç" k="130" /> +<hkern u1="(" u2="æ" k="54" /> +<hkern u1="(" u2="å" k="63" /> +<hkern u1="(" u2="ä" k="63" /> +<hkern u1="(" u2="ã" k="63" /> +<hkern u1="(" u2="â" k="63" /> +<hkern u1="(" u2="á" k="63" /> +<hkern u1="(" u2="à" k="63" /> +<hkern u1="(" u2="ß" k="-251" /> +<hkern u1="(" u2="Ý" k="-21" /> +<hkern u1="(" u2="Ø" k="54" /> +<hkern u1="(" u2="Ö" k="54" /> +<hkern u1="(" u2="Õ" k="54" /> +<hkern u1="(" u2="Ô" k="54" /> +<hkern u1="(" u2="Ó" k="54" /> +<hkern u1="(" u2="Ò" k="54" /> +<hkern u1="(" u2="Ç" k="54" /> +<hkern u1="(" u2="Æ" k="38" /> +<hkern u1="(" u2="Å" k="37" /> +<hkern u1="(" u2="Ä" k="37" /> +<hkern u1="(" u2="Ã" k="37" /> +<hkern u1="(" u2="Â" k="37" /> +<hkern u1="(" u2="Á" k="37" /> +<hkern u1="(" u2="À" k="37" /> +<hkern u1="(" u2="­" k="100" /> +<hkern u1="(" u2="{" k="39" /> +<hkern u1="(" u2="z" k="45" /> +<hkern u1="(" u2="x" k="55" /> +<hkern u1="(" u2="w" k="55" /> +<hkern u1="(" u2="v" k="28" /> +<hkern u1="(" u2="u" k="32" /> +<hkern u1="(" u2="t" k="55" /> +<hkern u1="(" u2="s" k="55" /> +<hkern u1="(" u2="r" k="30" /> +<hkern u1="(" u2="q" k="60" /> +<hkern u1="(" u2="o" k="130" /> +<hkern u1="(" u2="n" k="31" /> +<hkern u1="(" u2="m" k="32" /> +<hkern u1="(" u2="j" k="-202" /> +<hkern u1="(" u2="g" k="60" /> +<hkern u1="(" u2="f" k="-251" /> +<hkern u1="(" u2="e" k="130" /> +<hkern u1="(" u2="d" k="60" /> +<hkern u1="(" u2="c" k="130" /> +<hkern u1="(" u2="b" k="-18" /> +<hkern u1="(" u2="a" k="63" /> +<hkern u1="(" u2="Y" k="-21" /> +<hkern u1="(" u2="V" k="-15" /> +<hkern u1="(" u2="S" k="24" /> +<hkern u1="(" u2="Q" k="54" /> +<hkern u1="(" u2="O" k="54" /> +<hkern u1="(" u2="G" k="54" /> +<hkern u1="(" u2="C" k="54" /> +<hkern u1="(" u2="A" k="37" /> +<hkern u1="(" u2="9" k="29" /> +<hkern u1="(" u2="8" k="40" /> +<hkern u1="(" u2="6" k="46" /> +<hkern u1="(" u2="4" k="61" /> +<hkern u1="(" u2="3" k="23" /> +<hkern u1="(" u2="0" k="46" /> +<hkern u1="(" u2="." k="75" /> +<hkern u1="(" u2="-" k="100" /> +<hkern u1="(" u2="," k="75" /> +<hkern u1="(" u2="(" k="43" /> +<hkern u1=")" u2="}" k="36" /> +<hkern u1=")" u2="]" k="61" /> +<hkern u1=")" u2=")" k="43" /> +<hkern u1="*" u2="…" k="50" /> +<hkern u1="*" u2="„" k="50" /> +<hkern u1="*" u2="‚" k="50" /> +<hkern u1="*" u2="Ÿ" k="20" /> +<hkern u1="*" u2="ð" k="22" /> +<hkern u1="*" u2="æ" k="17" /> +<hkern u1="*" u2="å" k="22" /> +<hkern u1="*" u2="ä" k="22" /> +<hkern u1="*" u2="ã" k="22" /> +<hkern u1="*" u2="â" k="22" /> +<hkern u1="*" u2="á" k="22" /> +<hkern u1="*" u2="à" k="22" /> +<hkern u1="*" u2="Þ" k="17" /> +<hkern u1="*" u2="Ý" k="20" /> +<hkern u1="*" u2="Ñ" k="17" /> +<hkern u1="*" u2="Ð" k="17" /> +<hkern u1="*" u2="Ï" k="17" /> +<hkern u1="*" u2="Î" k="17" /> +<hkern u1="*" u2="Í" k="17" /> +<hkern u1="*" u2="Ì" k="17" /> +<hkern u1="*" u2="Ë" k="17" /> +<hkern u1="*" u2="Ê" k="17" /> +<hkern u1="*" u2="É" k="17" /> +<hkern u1="*" u2="È" k="17" /> +<hkern u1="*" u2="Æ" k="167" /> +<hkern u1="*" u2="Å" k="85" /> +<hkern u1="*" u2="Ä" k="85" /> +<hkern u1="*" u2="Ã" k="85" /> +<hkern u1="*" u2="Â" k="85" /> +<hkern u1="*" u2="Á" k="85" /> +<hkern u1="*" u2="À" k="85" /> +<hkern u1="*" u2="q" k="31" /> +<hkern u1="*" u2="g" k="31" /> +<hkern u1="*" u2="d" k="31" /> +<hkern u1="*" u2="a" k="22" /> +<hkern u1="*" u2="Y" k="20" /> +<hkern u1="*" u2="T" k="-67" /> +<hkern u1="*" u2="R" k="17" /> +<hkern u1="*" u2="P" k="17" /> +<hkern u1="*" u2="N" k="17" /> +<hkern u1="*" u2="M" k="22" /> +<hkern u1="*" u2="L" k="17" /> +<hkern u1="*" u2="K" k="17" /> +<hkern u1="*" u2="J" k="42" /> +<hkern u1="*" u2="I" k="17" /> +<hkern u1="*" u2="H" k="17" /> +<hkern u1="*" u2="F" k="17" /> +<hkern u1="*" u2="E" k="17" /> +<hkern u1="*" u2="D" k="17" /> +<hkern u1="*" u2="B" k="16" /> +<hkern u1="*" u2="A" k="85" /> +<hkern u1="*" u2="." k="50" /> +<hkern u1="*" u2="," k="50" /> +<hkern u1="+" u2="7" k="91" /> +<hkern u1="+" u2="3" k="26" /> +<hkern u1="+" u2="2" k="46" /> +<hkern u1="+" u2="1" k="45" /> +<hkern u1="," u2="™" k="130" /> +<hkern u1="," u2="”" k="242" /> +<hkern u1="," u2="“" k="242" /> +<hkern u1="," u2="w" k="20" /> +<hkern u1="," u2="v" k="45" /> +<hkern u1="," u2="t" k="50" /> +<hkern u1="," u2="p" k="39" /> +<hkern u1="," u2="m" k="50" /> +<hkern u1="," u2="j" k="46" /> +<hkern u1="," u2="W" k="160" /> +<hkern u1="," u2="V" k="183" /> +<hkern u1="," u2="T" k="134" /> +<hkern u1="," u2="C" k="56" /> +<hkern u1="," u2="7" k="64" /> +<hkern u1="," u2="6" k="21" /> +<hkern u1="," u2="4" k="23" /> +<hkern u1="," u2="0" k="32" /> +<hkern u1="," u2="*" k="145" /> +<hkern u1="," u2=")" k="75" /> +<hkern u1="," u2=""" k="242" /> +<hkern u1="-" u2="Æ" k="132" /> +<hkern u1="-" u2="X" k="110" /> +<hkern u1="-" u2="W" k="83" /> +<hkern u1="-" u2="V" k="95" /> +<hkern u1="-" u2="T" k="154" /> +<hkern u1="-" u2="M" k="39" /> +<hkern u1="-" u2="J" k="79" /> +<hkern u1="-" u2="H" k="41" /> +<hkern u1="-" u2="F" k="40" /> +<hkern u1="-" u2="E" k="40" /> +<hkern u1="-" u2="D" k="40" /> +<hkern u1="-" u2="B" k="40" /> +<hkern u1="-" u2="8" k="25" /> +<hkern u1="-" u2="7" k="129" /> +<hkern u1="-" u2="3" k="48" /> +<hkern u1="-" u2="2" k="69" /> +<hkern u1="-" u2="1" k="54" /> +<hkern u1="-" u2=")" k="100" /> +<hkern u1="." u2="™" k="130" /> +<hkern u1="." u2="”" k="238" /> +<hkern u1="." u2="“" k="238" /> +<hkern u1="." u2="w" k="20" /> +<hkern u1="." u2="v" k="45" /> +<hkern u1="." u2="t" k="50" /> +<hkern u1="." u2="p" k="39" /> +<hkern u1="." u2="m" k="50" /> +<hkern u1="." u2="j" k="46" /> +<hkern u1="." u2="W" k="160" /> +<hkern u1="." u2="V" k="183" /> +<hkern u1="." u2="T" k="134" /> +<hkern u1="." u2="C" k="56" /> +<hkern u1="." u2="7" k="64" /> +<hkern u1="." u2="6" k="21" /> +<hkern u1="." u2="4" k="23" /> +<hkern u1="." u2="0" k="32" /> +<hkern u1="." u2="*" k="145" /> +<hkern u1="." u2=")" k="75" /> +<hkern u1="." u2=""" k="238" /> +<hkern u1="/" u2="Ÿ" k="-65" /> +<hkern u1="/" u2="œ" k="85" /> +<hkern u1="/" u2="Œ" k="31" /> +<hkern u1="/" u2="þ" k="-50" /> +<hkern u1="/" u2="ü" k="22" /> +<hkern u1="/" u2="û" k="22" /> +<hkern u1="/" u2="ú" k="22" /> +<hkern u1="/" u2="ù" k="22" /> +<hkern u1="/" u2="ø" k="85" /> +<hkern u1="/" u2="ö" k="85" /> +<hkern u1="/" u2="õ" k="85" /> +<hkern u1="/" u2="ô" k="85" /> +<hkern u1="/" u2="ó" k="85" /> +<hkern u1="/" u2="ò" k="85" /> +<hkern u1="/" u2="ñ" k="23" /> +<hkern u1="/" u2="ë" k="85" /> +<hkern u1="/" u2="ê" k="85" /> +<hkern u1="/" u2="é" k="85" /> +<hkern u1="/" u2="è" k="85" /> +<hkern u1="/" u2="ç" k="85" /> +<hkern u1="/" u2="æ" k="71" /> +<hkern u1="/" u2="å" k="95" /> +<hkern u1="/" u2="ä" k="95" /> +<hkern u1="/" u2="ã" k="95" /> +<hkern u1="/" u2="â" k="95" /> +<hkern u1="/" u2="á" k="95" /> +<hkern u1="/" u2="à" k="95" /> +<hkern u1="/" u2="Ý" k="-65" /> +<hkern u1="/" u2="Ø" k="31" /> +<hkern u1="/" u2="Ö" k="31" /> +<hkern u1="/" u2="Õ" k="31" /> +<hkern u1="/" u2="Ô" k="31" /> +<hkern u1="/" u2="Ó" k="31" /> +<hkern u1="/" u2="Ò" k="31" /> +<hkern u1="/" u2="Ç" k="31" /> +<hkern u1="/" u2="Æ" k="182" /> +<hkern u1="/" u2="Å" k="115" /> +<hkern u1="/" u2="Ä" k="115" /> +<hkern u1="/" u2="Ã" k="115" /> +<hkern u1="/" u2="Â" k="115" /> +<hkern u1="/" u2="Á" k="115" /> +<hkern u1="/" u2="À" k="115" /> +<hkern u1="/" u2="z" k="53" /> +<hkern u1="/" u2="x" k="46" /> +<hkern u1="/" u2="u" k="22" /> +<hkern u1="/" u2="s" k="64" /> +<hkern u1="/" u2="r" k="23" /> +<hkern u1="/" u2="q" k="83" /> +<hkern u1="/" u2="p" k="45" /> +<hkern u1="/" u2="o" k="85" /> +<hkern u1="/" u2="n" k="23" /> +<hkern u1="/" u2="m" k="24" /> +<hkern u1="/" u2="k" k="-19" /> +<hkern u1="/" u2="h" k="-19" /> +<hkern u1="/" u2="g" k="83" /> +<hkern u1="/" u2="e" k="85" /> +<hkern u1="/" u2="d" k="83" /> +<hkern u1="/" u2="c" k="85" /> +<hkern u1="/" u2="b" k="-63" /> +<hkern u1="/" u2="a" k="95" /> +<hkern u1="/" u2="Y" k="-65" /> +<hkern u1="/" u2="X" k="-59" /> +<hkern u1="/" u2="W" k="-60" /> +<hkern u1="/" u2="V" k="-65" /> +<hkern u1="/" u2="Q" k="31" /> +<hkern u1="/" u2="O" k="31" /> +<hkern u1="/" u2="G" k="31" /> +<hkern u1="/" u2="C" k="32" /> +<hkern u1="/" u2="A" k="115" /> +<hkern u1="/" u2="7" k="-36" /> +<hkern u1="/" u2="6" k="20" /> +<hkern u1="/" u2="4" k="89" /> +<hkern u1="/" u2="/" k="670" /> +<hkern u1="0" u2="…" k="24" /> +<hkern u1="0" u2="„" k="24" /> +<hkern u1="0" u2="‚" k="24" /> +<hkern u1="0" u2="Ÿ" k="33" /> +<hkern u1="0" u2="Ý" k="33" /> +<hkern u1="0" u2="}" k="41" /> +<hkern u1="0" u2="]" k="74" /> +<hkern u1="0" u2="\" k="38" /> +<hkern u1="0" u2="Y" k="33" /> +<hkern u1="0" u2="W" k="23" /> +<hkern u1="0" u2="V" k="25" /> +<hkern u1="0" u2="/" k="111" /> +<hkern u1="0" u2="." k="24" /> +<hkern u1="0" u2="," k="24" /> +<hkern u1="0" u2=")" k="45" /> +<hkern u1="1" u2="—" k="25" /> +<hkern u1="1" u2="–" k="25" /> +<hkern u1="1" u2="Ÿ" k="24" /> +<hkern u1="1" u2="Ý" k="24" /> +<hkern u1="1" u2="Å" k="-44" /> +<hkern u1="1" u2="Ä" k="-44" /> +<hkern u1="1" u2="Ã" k="-44" /> +<hkern u1="1" u2="Â" k="-44" /> +<hkern u1="1" u2="Á" k="-44" /> +<hkern u1="1" u2="À" k="-44" /> +<hkern u1="1" u2="·" k="33" /> +<hkern u1="1" u2="­" k="25" /> +<hkern u1="1" u2="}" k="24" /> +<hkern u1="1" u2="]" k="40" /> +<hkern u1="1" u2="Y" k="24" /> +<hkern u1="1" u2="X" k="-24" /> +<hkern u1="1" u2="W" k="21" /> +<hkern u1="1" u2="V" k="22" /> +<hkern u1="1" u2="J" k="-46" /> +<hkern u1="1" u2="A" k="-44" /> +<hkern u1="1" u2="/" k="38" /> +<hkern u1="1" u2="-" k="25" /> +<hkern u1="1" u2="+" k="20" /> +<hkern u1="1" u2=")" k="24" /> +<hkern u1="2" u2="—" k="36" /> +<hkern u1="2" u2="–" k="36" /> +<hkern u1="2" u2="Å" k="-15" /> +<hkern u1="2" u2="Ä" k="-15" /> +<hkern u1="2" u2="Ã" k="-15" /> +<hkern u1="2" u2="Â" k="-15" /> +<hkern u1="2" u2="Á" k="-15" /> +<hkern u1="2" u2="À" k="-15" /> +<hkern u1="2" u2="·" k="40" /> +<hkern u1="2" u2="­" k="36" /> +<hkern u1="2" u2="}" k="23" /> +<hkern u1="2" u2="]" k="47" /> +<hkern u1="2" u2="J" k="-34" /> +<hkern u1="2" u2="A" k="-15" /> +<hkern u1="2" u2="/" k="46" /> +<hkern u1="2" u2="-" k="36" /> +<hkern u1="2" u2="+" k="20" /> +<hkern u1="3" u2="Ÿ" k="24" /> +<hkern u1="3" u2="Ý" k="24" /> +<hkern u1="3" u2="}" k="40" /> +<hkern u1="3" u2="]" k="61" /> +<hkern u1="3" u2="\" k="26" /> +<hkern u1="3" u2="Y" k="24" /> +<hkern u1="3" u2="/" k="88" /> +<hkern u1="3" u2=")" k="40" /> +<hkern u1="4" u2="Ÿ" k="35" /> +<hkern u1="4" u2="Ý" k="35" /> +<hkern u1="4" u2="°" k="30" /> +<hkern u1="4" u2="}" k="30" /> +<hkern u1="4" u2="]" k="50" /> +<hkern u1="4" u2="\" k="32" /> +<hkern u1="4" u2="Y" k="35" /> +<hkern u1="4" u2="W" k="30" /> +<hkern u1="4" u2="V" k="32" /> +<hkern u1="4" u2="T" k="22" /> +<hkern u1="4" u2="4" k="-34" /> +<hkern u1="4" u2="/" k="50" /> +<hkern u1="4" u2=")" k="33" /> +<hkern u1="4" u2="'" k="29" /> +<hkern u1="4" u2=""" k="29" /> +<hkern u1="5" u2="4" k="-17" /> +<hkern u1="5" u2="/" k="84" /> +<hkern u1="6" u2="}" k="31" /> +<hkern u1="6" u2="]" k="43" /> +<hkern u1="6" u2="/" k="87" /> +<hkern u1="6" u2=")" k="25" /> +<hkern u1="7" u2="…" k="82" /> +<hkern u1="7" u2="„" k="82" /> +<hkern u1="7" u2="‚" k="82" /> +<hkern u1="7" u2="—" k="36" /> +<hkern u1="7" u2="–" k="36" /> +<hkern u1="7" u2="Ÿ" k="-81" /> +<hkern u1="7" u2="œ" k="50" /> +<hkern u1="7" u2="ø" k="50" /> +<hkern u1="7" u2="ö" k="50" /> +<hkern u1="7" u2="õ" k="50" /> +<hkern u1="7" u2="ô" k="50" /> +<hkern u1="7" u2="ó" k="50" /> +<hkern u1="7" u2="ò" k="50" /> +<hkern u1="7" u2="ë" k="50" /> +<hkern u1="7" u2="ê" k="50" /> +<hkern u1="7" u2="é" k="50" /> +<hkern u1="7" u2="è" k="50" /> +<hkern u1="7" u2="ç" k="50" /> +<hkern u1="7" u2="Ý" k="-81" /> +<hkern u1="7" u2="Ü" k="-12" /> +<hkern u1="7" u2="Û" k="-12" /> +<hkern u1="7" u2="Ú" k="-12" /> +<hkern u1="7" u2="Ù" k="-12" /> +<hkern u1="7" u2="Æ" k="130" /> +<hkern u1="7" u2="Å" k="62" /> +<hkern u1="7" u2="Ä" k="62" /> +<hkern u1="7" u2="Ã" k="62" /> +<hkern u1="7" u2="Â" k="62" /> +<hkern u1="7" u2="Á" k="62" /> +<hkern u1="7" u2="À" k="62" /> +<hkern u1="7" u2="·" k="40" /> +<hkern u1="7" u2="­" k="36" /> +<hkern u1="7" u2="¢" k="34" /> +<hkern u1="7" u2="o" k="50" /> +<hkern u1="7" u2="e" k="50" /> +<hkern u1="7" u2="c" k="50" /> +<hkern u1="7" u2="]" k="-45" /> +<hkern u1="7" u2="Y" k="-81" /> +<hkern u1="7" u2="X" k="-63" /> +<hkern u1="7" u2="W" k="-65" /> +<hkern u1="7" u2="V" k="-74" /> +<hkern u1="7" u2="U" k="-12" /> +<hkern u1="7" u2="T" k="-29" /> +<hkern u1="7" u2="A" k="62" /> +<hkern u1="7" u2="7" k="-48" /> +<hkern u1="7" u2="4" k="28" /> +<hkern u1="7" u2="/" k="168" /> +<hkern u1="7" u2="." k="82" /> +<hkern u1="7" u2="-" k="36" /> +<hkern u1="7" u2="," k="82" /> +<hkern u1="7" u2="+" k="29" /> +<hkern u1="8" u2="Ÿ" k="25" /> +<hkern u1="8" u2="Ý" k="25" /> +<hkern u1="8" u2="·" k="28" /> +<hkern u1="8" u2="}" k="43" /> +<hkern u1="8" u2="]" k="63" /> +<hkern u1="8" u2="\" k="29" /> +<hkern u1="8" u2="Y" k="25" /> +<hkern u1="8" u2="W" k="20" /> +<hkern u1="8" u2="V" k="21" /> +<hkern u1="8" u2="/" k="85" /> +<hkern u1="8" u2=")" k="41" /> +<hkern u1="9" u2="…" k="20" /> +<hkern u1="9" u2="„" k="20" /> +<hkern u1="9" u2="‚" k="20" /> +<hkern u1="9" u2="Ÿ" k="27" /> +<hkern u1="9" u2="Ý" k="27" /> +<hkern u1="9" u2="}" k="39" /> +<hkern u1="9" u2="]" k="67" /> +<hkern u1="9" u2="\" k="29" /> +<hkern u1="9" u2="Y" k="27" /> +<hkern u1="9" u2="V" k="20" /> +<hkern u1="9" u2="/" k="108" /> +<hkern u1="9" u2="." k="20" /> +<hkern u1="9" u2="," k="20" /> +<hkern u1="9" u2=")" k="41" /> +<hkern u1="=" u2="7" k="73" /> +<hkern u1="=" u2="1" k="24" /> +<hkern u1="@" u2="”" k="22" /> +<hkern u1="@" u2="’" k="22" /> +<hkern u1="@" u2="Ÿ" k="81" /> +<hkern u1="@" u2="Ý" k="81" /> +<hkern u1="@" u2="Y" k="81" /> +<hkern u1="@" u2="W" k="53" /> +<hkern u1="@" u2="V" k="59" /> +<hkern u1="A" u2="™" k="119" /> +<hkern u1="A" u2="‹" k="31" /> +<hkern u1="A" u2="ð" k="25" /> +<hkern u1="A" u2="Æ" k="-100" /> +<hkern u1="A" u2="»" k="-1" /> +<hkern u1="A" u2="®" k="30" /> +<hkern u1="A" u2="«" k="31" /> +<hkern u1="A" u2="}" k="32" /> +<hkern u1="A" u2="w" k="29" /> +<hkern u1="A" u2="v" k="33" /> +<hkern u1="A" u2="t" k="34" /> +<hkern u1="A" u2="r" k="19" /> +<hkern u1="A" u2="p" k="42" /> +<hkern u1="A" u2="m" k="18" /> +<hkern u1="A" u2="k" k="18" /> +<hkern u1="A" u2="j" k="50" /> +<hkern u1="A" u2="b" k="18" /> +<hkern u1="A" u2="]" k="86" /> +<hkern u1="A" u2="\" k="162" /> +<hkern u1="A" u2="X" k="-25" /> +<hkern u1="A" u2="W" k="119" /> +<hkern u1="A" u2="V" k="132" /> +<hkern u1="A" u2="T" k="108" /> +<hkern u1="A" u2="C" k="43" /> +<hkern u1="A" u2="?" k="51" /> +<hkern u1="A" u2="7" k="50" /> +<hkern u1="A" u2="6" k="22" /> +<hkern u1="A" u2="4" k="21" /> +<hkern u1="A" u2="2" k="-29" /> +<hkern u1="A" u2="0" k="26" /> +<hkern u1="A" u2="/" k="21" /> +<hkern u1="A" u2="*" k="102" /> +<hkern u1="A" u2=")" k="36" /> +<hkern u1="B" u2="fl" k="12" /> +<hkern u1="B" u2="fi" k="12" /> +<hkern u1="B" u2="Ÿ" k="64" /> +<hkern u1="B" u2="ÿ" k="9" /> +<hkern u1="B" u2="ý" k="9" /> +<hkern u1="B" u2="ß" k="12" /> +<hkern u1="B" u2="Þ" k="23" /> +<hkern u1="B" u2="Ý" k="64" /> +<hkern u1="B" u2="Ü" k="15" /> +<hkern u1="B" u2="Û" k="15" /> +<hkern u1="B" u2="Ú" k="15" /> +<hkern u1="B" u2="Ù" k="15" /> +<hkern u1="B" u2="Ñ" k="23" /> +<hkern u1="B" u2="Ð" k="23" /> +<hkern u1="B" u2="Ï" k="23" /> +<hkern u1="B" u2="Î" k="23" /> +<hkern u1="B" u2="Í" k="23" /> +<hkern u1="B" u2="Ì" k="23" /> +<hkern u1="B" u2="Ë" k="23" /> +<hkern u1="B" u2="Ê" k="23" /> +<hkern u1="B" u2="É" k="23" /> +<hkern u1="B" u2="È" k="23" /> +<hkern u1="B" u2="Æ" k="33" /> +<hkern u1="B" u2="Å" k="21" /> +<hkern u1="B" u2="Ä" k="21" /> +<hkern u1="B" u2="Ã" k="21" /> +<hkern u1="B" u2="Â" k="21" /> +<hkern u1="B" u2="Á" k="21" /> +<hkern u1="B" u2="À" k="21" /> +<hkern u1="B" u2="}" k="51" /> +<hkern u1="B" u2="z" k="22" /> +<hkern u1="B" u2="y" k="9" /> +<hkern u1="B" u2="x" k="35" /> +<hkern u1="B" u2="t" k="12" /> +<hkern u1="B" u2="p" k="29" /> +<hkern u1="B" u2="j" k="33" /> +<hkern u1="B" u2="f" k="12" /> +<hkern u1="B" u2="]" k="93" /> +<hkern u1="B" u2="\" k="55" /> +<hkern u1="B" u2="Z" k="16" /> +<hkern u1="B" u2="Y" k="64" /> +<hkern u1="B" u2="X" k="63" /> +<hkern u1="B" u2="W" k="46" /> +<hkern u1="B" u2="V" k="49" /> +<hkern u1="B" u2="U" k="15" /> +<hkern u1="B" u2="T" k="23" /> +<hkern u1="B" u2="R" k="23" /> +<hkern u1="B" u2="P" k="23" /> +<hkern u1="B" u2="N" k="23" /> +<hkern u1="B" u2="M" k="22" /> +<hkern u1="B" u2="L" k="23" /> +<hkern u1="B" u2="K" k="23" /> +<hkern u1="B" u2="J" k="28" /> +<hkern u1="B" u2="I" k="23" /> +<hkern u1="B" u2="H" k="23" /> +<hkern u1="B" u2="F" k="22" /> +<hkern u1="B" u2="E" k="22" /> +<hkern u1="B" u2="D" k="22" /> +<hkern u1="B" u2="B" k="22" /> +<hkern u1="B" u2="A" k="21" /> +<hkern u1="B" u2="4" k="-14" /> +<hkern u1="B" u2="/" k="92" /> +<hkern u1="B" u2=")" k="51" /> +<hkern u1="C" u2="x" k="12" /> +<hkern u1="C" u2="/" k="62" /> +<hkern u1="C" u2="*" k="-16" /> +<hkern u1="D" u2="Æ" k="77" /> +<hkern u1="D" u2="}" k="47" /> +<hkern u1="D" u2="x" k="33" /> +<hkern u1="D" u2="k" k="10" /> +<hkern u1="D" u2="b" k="10" /> +<hkern u1="D" u2="]" k="97" /> +<hkern u1="D" u2="\" k="56" /> +<hkern u1="D" u2="X" k="53" /> +<hkern u1="D" u2="W" k="44" /> +<hkern u1="D" u2="V" k="47" /> +<hkern u1="D" u2="M" k="22" /> +<hkern u1="D" u2="J" k="49" /> +<hkern u1="D" u2="H" k="23" /> +<hkern u1="D" u2="F" k="22" /> +<hkern u1="D" u2="E" k="22" /> +<hkern u1="D" u2="D" k="22" /> +<hkern u1="D" u2="B" k="22" /> +<hkern u1="D" u2="/" k="135" /> +<hkern u1="D" u2=")" k="55" /> +<hkern u1="E" u2="w" k="11" /> +<hkern u1="E" u2="v" k="12" /> +<hkern u1="E" u2="t" k="9" /> +<hkern u1="E" u2="r" k="12" /> +<hkern u1="E" u2="p" k="36" /> +<hkern u1="E" u2="m" k="11" /> +<hkern u1="E" u2="j" k="41" /> +<hkern u1="E" u2="]" k="20" /> +<hkern u1="E" u2="/" k="45" /> +<hkern u1="F" u2="™" k="-29" /> +<hkern u1="F" u2="‹" k="24" /> +<hkern u1="F" u2="…" k="134" /> +<hkern u1="F" u2="„" k="134" /> +<hkern u1="F" u2="‚" k="134" /> +<hkern u1="F" u2="—" k="45" /> +<hkern u1="F" u2="–" k="45" /> +<hkern u1="F" u2="œ" k="64" /> +<hkern u1="F" u2="þ" k="-16" /> +<hkern u1="F" u2="ø" k="64" /> +<hkern u1="F" u2="ö" k="64" /> +<hkern u1="F" u2="õ" k="64" /> +<hkern u1="F" u2="ô" k="64" /> +<hkern u1="F" u2="ó" k="64" /> +<hkern u1="F" u2="ò" k="64" /> +<hkern u1="F" u2="ð" k="58" /> +<hkern u1="F" u2="î" k="-62" /> +<hkern u1="F" u2="ë" k="64" /> +<hkern u1="F" u2="ê" k="64" /> +<hkern u1="F" u2="é" k="64" /> +<hkern u1="F" u2="è" k="64" /> +<hkern u1="F" u2="ç" k="64" /> +<hkern u1="F" u2="æ" k="60" /> +<hkern u1="F" u2="å" k="78" /> +<hkern u1="F" u2="ä" k="78" /> +<hkern u1="F" u2="ã" k="78" /> +<hkern u1="F" u2="â" k="78" /> +<hkern u1="F" u2="á" k="78" /> +<hkern u1="F" u2="à" k="78" /> +<hkern u1="F" u2="Æ" k="132" /> +<hkern u1="F" u2="Å" k="93" /> +<hkern u1="F" u2="Ä" k="93" /> +<hkern u1="F" u2="Ã" k="93" /> +<hkern u1="F" u2="Â" k="93" /> +<hkern u1="F" u2="Á" k="93" /> +<hkern u1="F" u2="À" k="93" /> +<hkern u1="F" u2="­" k="45" /> +<hkern u1="F" u2="«" k="24" /> +<hkern u1="F" u2="z" k="30" /> +<hkern u1="F" u2="x" k="29" /> +<hkern u1="F" u2="s" k="48" /> +<hkern u1="F" u2="q" k="74" /> +<hkern u1="F" u2="p" k="19" /> +<hkern u1="F" u2="o" k="64" /> +<hkern u1="F" u2="j" k="12" /> +<hkern u1="F" u2="g" k="74" /> +<hkern u1="F" u2="e" k="64" /> +<hkern u1="F" u2="d" k="74" /> +<hkern u1="F" u2="c" k="64" /> +<hkern u1="F" u2="b" k="-19" /> +<hkern u1="F" u2="a" k="78" /> +<hkern u1="F" u2="]" k="-29" /> +<hkern u1="F" u2="A" k="93" /> +<hkern u1="F" u2="7" k="-39" /> +<hkern u1="F" u2="1" k="-39" /> +<hkern u1="F" u2="/" k="171" /> +<hkern u1="F" u2="." k="134" /> +<hkern u1="F" u2="-" k="45" /> +<hkern u1="F" u2="," k="134" /> +<hkern u1="F" u2="*" k="-70" /> +<hkern u1="G" u2="Ÿ" k="20" /> +<hkern u1="G" u2="Ý" k="20" /> +<hkern u1="G" u2="Æ" k="15" /> +<hkern u1="G" u2="Å" k="10" /> +<hkern u1="G" u2="Ä" k="10" /> +<hkern u1="G" u2="Ã" k="10" /> +<hkern u1="G" u2="Â" k="10" /> +<hkern u1="G" u2="Á" k="10" /> +<hkern u1="G" u2="À" k="10" /> +<hkern u1="G" u2="}" k="21" /> +<hkern u1="G" u2="]" k="35" /> +<hkern u1="G" u2="Y" k="20" /> +<hkern u1="G" u2="W" k="15" /> +<hkern u1="G" u2="V" k="15" /> +<hkern u1="G" u2="T" k="11" /> +<hkern u1="G" u2="A" k="10" /> +<hkern u1="G" u2="/" k="86" /> +<hkern u1="G" u2=")" k="25" /> +<hkern u1="H" u2="fl" k="26" /> +<hkern u1="H" u2="fi" k="26" /> +<hkern u1="H" u2="‹" k="21" /> +<hkern u1="H" u2="—" k="39" /> +<hkern u1="H" u2="–" k="39" /> +<hkern u1="H" u2="œ" k="40" /> +<hkern u1="H" u2="Œ" k="20" /> +<hkern u1="H" u2="ÿ" k="17" /> +<hkern u1="H" u2="þ" k="11" /> +<hkern u1="H" u2="ý" k="17" /> +<hkern u1="H" u2="ü" k="19" /> +<hkern u1="H" u2="û" k="19" /> +<hkern u1="H" u2="ú" k="19" /> +<hkern u1="H" u2="ù" k="19" /> +<hkern u1="H" u2="ø" k="40" /> +<hkern u1="H" u2="ö" k="40" /> +<hkern u1="H" u2="õ" k="40" /> +<hkern u1="H" u2="ô" k="40" /> +<hkern u1="H" u2="ó" k="40" /> +<hkern u1="H" u2="ò" k="40" /> +<hkern u1="H" u2="ñ" k="17" /> +<hkern u1="H" u2="ð" k="38" /> +<hkern u1="H" u2="ï" k="18" /> +<hkern u1="H" u2="î" k="18" /> +<hkern u1="H" u2="í" k="18" /> +<hkern u1="H" u2="ì" k="18" /> +<hkern u1="H" u2="ë" k="40" /> +<hkern u1="H" u2="ê" k="40" /> +<hkern u1="H" u2="é" k="40" /> +<hkern u1="H" u2="è" k="40" /> +<hkern u1="H" u2="ç" k="40" /> +<hkern u1="H" u2="æ" k="18" /> +<hkern u1="H" u2="å" k="30" /> +<hkern u1="H" u2="ä" k="30" /> +<hkern u1="H" u2="ã" k="30" /> +<hkern u1="H" u2="â" k="30" /> +<hkern u1="H" u2="á" k="30" /> +<hkern u1="H" u2="à" k="30" /> +<hkern u1="H" u2="ß" k="26" /> +<hkern u1="H" u2="Ø" k="20" /> +<hkern u1="H" u2="Ö" k="20" /> +<hkern u1="H" u2="Õ" k="20" /> +<hkern u1="H" u2="Ô" k="20" /> +<hkern u1="H" u2="Ó" k="20" /> +<hkern u1="H" u2="Ò" k="20" /> +<hkern u1="H" u2="Ç" k="20" /> +<hkern u1="H" u2="­" k="39" /> +<hkern u1="H" u2="«" k="21" /> +<hkern u1="H" u2="z" k="13" /> +<hkern u1="H" u2="y" k="17" /> +<hkern u1="H" u2="x" k="20" /> +<hkern u1="H" u2="w" k="18" /> +<hkern u1="H" u2="v" k="17" /> +<hkern u1="H" u2="u" k="19" /> +<hkern u1="H" u2="t" k="28" /> +<hkern u1="H" u2="s" k="21" /> +<hkern u1="H" u2="r" k="17" /> +<hkern u1="H" u2="q" k="33" /> +<hkern u1="H" u2="p" k="40" /> +<hkern u1="H" u2="o" k="40" /> +<hkern u1="H" u2="n" k="17" /> +<hkern u1="H" u2="m" k="17" /> +<hkern u1="H" u2="l" k="12" /> +<hkern u1="H" u2="k" k="11" /> +<hkern u1="H" u2="j" k="37" /> +<hkern u1="H" u2="i" k="18" /> +<hkern u1="H" u2="h" k="11" /> +<hkern u1="H" u2="g" k="33" /> +<hkern u1="H" u2="f" k="26" /> +<hkern u1="H" u2="e" k="40" /> +<hkern u1="H" u2="d" k="33" /> +<hkern u1="H" u2="c" k="40" /> +<hkern u1="H" u2="a" k="30" /> +<hkern u1="H" u2="Q" k="20" /> +<hkern u1="H" u2="O" k="20" /> +<hkern u1="H" u2="G" k="20" /> +<hkern u1="H" u2="C" k="19" /> +<hkern u1="H" u2="/" k="50" /> +<hkern u1="H" u2="-" k="39" /> +<hkern u1="H" u2="*" k="18" /> +<hkern u1="I" u2="‹" k="21" /> +<hkern u1="I" u2="ð" k="38" /> +<hkern u1="I" u2="æ" k="18" /> +<hkern u1="I" u2="«" k="21" /> +<hkern u1="I" u2="x" k="20" /> +<hkern u1="I" u2="w" k="18" /> +<hkern u1="I" u2="v" k="17" /> +<hkern u1="I" u2="t" k="28" /> +<hkern u1="I" u2="r" k="17" /> +<hkern u1="I" u2="p" k="40" /> +<hkern u1="I" u2="m" k="17" /> +<hkern u1="I" u2="k" k="11" /> +<hkern u1="I" u2="j" k="37" /> +<hkern u1="I" u2="C" k="19" /> +<hkern u1="I" u2="/" k="50" /> +<hkern u1="I" u2="*" k="18" /> +<hkern u1="J" u2="fl" k="21" /> +<hkern u1="J" u2="fi" k="21" /> +<hkern u1="J" u2="…" k="41" /> +<hkern u1="J" u2="„" k="41" /> +<hkern u1="J" u2="‚" k="41" /> +<hkern u1="J" u2="—" k="23" /> +<hkern u1="J" u2="–" k="23" /> +<hkern u1="J" u2="œ" k="36" /> +<hkern u1="J" u2="Œ" k="11" /> +<hkern u1="J" u2="ø" k="36" /> +<hkern u1="J" u2="ö" k="36" /> +<hkern u1="J" u2="õ" k="36" /> +<hkern u1="J" u2="ô" k="36" /> +<hkern u1="J" u2="ó" k="36" /> +<hkern u1="J" u2="ò" k="36" /> +<hkern u1="J" u2="ñ" k="9" /> +<hkern u1="J" u2="ð" k="37" /> +<hkern u1="J" u2="ë" k="36" /> +<hkern u1="J" u2="ê" k="36" /> +<hkern u1="J" u2="é" k="36" /> +<hkern u1="J" u2="è" k="36" /> +<hkern u1="J" u2="ç" k="36" /> +<hkern u1="J" u2="æ" k="34" /> +<hkern u1="J" u2="å" k="37" /> +<hkern u1="J" u2="ä" k="37" /> +<hkern u1="J" u2="ã" k="37" /> +<hkern u1="J" u2="â" k="37" /> +<hkern u1="J" u2="á" k="37" /> +<hkern u1="J" u2="à" k="37" /> +<hkern u1="J" u2="ß" k="21" /> +<hkern u1="J" u2="Ø" k="11" /> +<hkern u1="J" u2="Ö" k="11" /> +<hkern u1="J" u2="Õ" k="11" /> +<hkern u1="J" u2="Ô" k="11" /> +<hkern u1="J" u2="Ó" k="11" /> +<hkern u1="J" u2="Ò" k="11" /> +<hkern u1="J" u2="Ç" k="11" /> +<hkern u1="J" u2="Æ" k="40" /> +<hkern u1="J" u2="Å" k="33" /> +<hkern u1="J" u2="Ä" k="33" /> +<hkern u1="J" u2="Ã" k="33" /> +<hkern u1="J" u2="Â" k="33" /> +<hkern u1="J" u2="Á" k="33" /> +<hkern u1="J" u2="À" k="33" /> +<hkern u1="J" u2="­" k="23" /> +<hkern u1="J" u2="z" k="38" /> +<hkern u1="J" u2="x" k="24" /> +<hkern u1="J" u2="t" k="21" /> +<hkern u1="J" u2="s" k="35" /> +<hkern u1="J" u2="q" k="37" /> +<hkern u1="J" u2="p" k="31" /> +<hkern u1="J" u2="o" k="36" /> +<hkern u1="J" u2="n" k="9" /> +<hkern u1="J" u2="m" k="9" /> +<hkern u1="J" u2="j" k="23" /> +<hkern u1="J" u2="g" k="37" /> +<hkern u1="J" u2="f" k="21" /> +<hkern u1="J" u2="e" k="36" /> +<hkern u1="J" u2="d" k="37" /> +<hkern u1="J" u2="c" k="36" /> +<hkern u1="J" u2="b" k="-11" /> +<hkern u1="J" u2="a" k="37" /> +<hkern u1="J" u2="]" k="-22" /> +<hkern u1="J" u2="Q" k="11" /> +<hkern u1="J" u2="O" k="11" /> +<hkern u1="J" u2="G" k="11" /> +<hkern u1="J" u2="C" k="10" /> +<hkern u1="J" u2="A" k="33" /> +<hkern u1="J" u2=";" k="19" /> +<hkern u1="J" u2="7" k="-24" /> +<hkern u1="J" u2="/" k="120" /> +<hkern u1="J" u2="." k="41" /> +<hkern u1="J" u2="-" k="23" /> +<hkern u1="J" u2="," k="41" /> +<hkern u1="K" u2="›" k="-60" /> +<hkern u1="K" u2="‹" k="40" /> +<hkern u1="K" u2="—" k="117" /> +<hkern u1="K" u2="–" k="117" /> +<hkern u1="K" u2="œ" k="52" /> +<hkern u1="K" u2="Œ" k="81" /> +<hkern u1="K" u2="ÿ" k="140" /> +<hkern u1="K" u2="ý" k="140" /> +<hkern u1="K" u2="ü" k="75" /> +<hkern u1="K" u2="û" k="75" /> +<hkern u1="K" u2="ú" k="75" /> +<hkern u1="K" u2="ù" k="75" /> +<hkern u1="K" u2="ø" k="52" /> +<hkern u1="K" u2="ö" k="52" /> +<hkern u1="K" u2="õ" k="52" /> +<hkern u1="K" u2="ô" k="52" /> +<hkern u1="K" u2="ó" k="52" /> +<hkern u1="K" u2="ò" k="52" /> +<hkern u1="K" u2="ñ" k="13" /> +<hkern u1="K" u2="ð" k="49" /> +<hkern u1="K" u2="ï" k="44" /> +<hkern u1="K" u2="î" k="44" /> +<hkern u1="K" u2="í" k="44" /> +<hkern u1="K" u2="ì" k="44" /> +<hkern u1="K" u2="ë" k="52" /> +<hkern u1="K" u2="ê" k="52" /> +<hkern u1="K" u2="é" k="52" /> +<hkern u1="K" u2="è" k="52" /> +<hkern u1="K" u2="ç" k="52" /> +<hkern u1="K" u2="å" k="16" /> +<hkern u1="K" u2="ä" k="16" /> +<hkern u1="K" u2="ã" k="16" /> +<hkern u1="K" u2="â" k="16" /> +<hkern u1="K" u2="á" k="16" /> +<hkern u1="K" u2="à" k="16" /> +<hkern u1="K" u2="Ø" k="81" /> +<hkern u1="K" u2="Ö" k="81" /> +<hkern u1="K" u2="Õ" k="81" /> +<hkern u1="K" u2="Ô" k="81" /> +<hkern u1="K" u2="Ó" k="81" /> +<hkern u1="K" u2="Ò" k="81" /> +<hkern u1="K" u2="Ç" k="81" /> +<hkern u1="K" u2="»" k="-1" /> +<hkern u1="K" u2="­" k="117" /> +<hkern u1="K" u2="«" k="40" /> +<hkern u1="K" u2="y" k="140" /> +<hkern u1="K" u2="x" k="-10" /> +<hkern u1="K" u2="w" k="68" /> +<hkern u1="K" u2="v" k="60" /> +<hkern u1="K" u2="u" k="75" /> +<hkern u1="K" u2="t" k="19" /> +<hkern u1="K" u2="r" k="21" /> +<hkern u1="K" u2="q" k="26" /> +<hkern u1="K" u2="p" k="38" /> +<hkern u1="K" u2="o" k="52" /> +<hkern u1="K" u2="n" k="13" /> +<hkern u1="K" u2="m" k="14" /> +<hkern u1="K" u2="j" k="34" /> +<hkern u1="K" u2="i" k="44" /> +<hkern u1="K" u2="g" k="26" /> +<hkern u1="K" u2="e" k="52" /> +<hkern u1="K" u2="d" k="26" /> +<hkern u1="K" u2="c" k="52" /> +<hkern u1="K" u2="a" k="16" /> +<hkern u1="K" u2="]" k="-17" /> +<hkern u1="K" u2="Q" k="81" /> +<hkern u1="K" u2="O" k="81" /> +<hkern u1="K" u2="G" k="81" /> +<hkern u1="K" u2="C" k="82" /> +<hkern u1="K" u2="7" k="-21" /> +<hkern u1="K" u2="2" k="-56" /> +<hkern u1="K" u2="-" k="117" /> +<hkern u1="K" u2="*" k="41" /> +<hkern u1="L" u2="™" k="168" /> +<hkern u1="L" u2="Æ" k="-19" /> +<hkern u1="L" u2="·" k="236" /> +<hkern u1="L" u2="}" k="37" /> +<hkern u1="L" u2="w" k="21" /> +<hkern u1="L" u2="v" k="26" /> +<hkern u1="L" u2="t" k="15" /> +<hkern u1="L" u2="r" k="18" /> +<hkern u1="L" u2="p" k="45" /> +<hkern u1="L" u2="m" k="17" /> +<hkern u1="L" u2="j" k="61" /> +<hkern u1="L" u2="]" k="88" /> +<hkern u1="L" u2="\" k="168" /> +<hkern u1="L" u2="W" k="130" /> +<hkern u1="L" u2="V" k="156" /> +<hkern u1="L" u2="T" k="148" /> +<hkern u1="L" u2="J" k="-22" /> +<hkern u1="L" u2="?" k="46" /> +<hkern u1="L" u2="7" k="56" /> +<hkern u1="L" u2="4" k="-52" /> +<hkern u1="L" u2="/" k="25" /> +<hkern u1="L" u2="*" k="170" /> +<hkern u1="L" u2=")" k="44" /> +<hkern u1="M" u2="fl" k="22" /> +<hkern u1="M" u2="fi" k="22" /> +<hkern u1="M" u2="—" k="41" /> +<hkern u1="M" u2="–" k="41" /> +<hkern u1="M" u2="Ÿ" k="13" /> +<hkern u1="M" u2="œ" k="28" /> +<hkern u1="M" u2="Œ" k="20" /> +<hkern u1="M" u2="ÿ" k="19" /> +<hkern u1="M" u2="þ" k="12" /> +<hkern u1="M" u2="ý" k="19" /> +<hkern u1="M" u2="ü" k="16" /> +<hkern u1="M" u2="û" k="16" /> +<hkern u1="M" u2="ú" k="16" /> +<hkern u1="M" u2="ù" k="16" /> +<hkern u1="M" u2="ø" k="28" /> +<hkern u1="M" u2="ö" k="28" /> +<hkern u1="M" u2="õ" k="28" /> +<hkern u1="M" u2="ô" k="28" /> +<hkern u1="M" u2="ó" k="28" /> +<hkern u1="M" u2="ò" k="28" /> +<hkern u1="M" u2="ñ" k="11" /> +<hkern u1="M" u2="ð" k="27" /> +<hkern u1="M" u2="ï" k="13" /> +<hkern u1="M" u2="î" k="13" /> +<hkern u1="M" u2="í" k="13" /> +<hkern u1="M" u2="ì" k="13" /> +<hkern u1="M" u2="ë" k="28" /> +<hkern u1="M" u2="ê" k="28" /> +<hkern u1="M" u2="é" k="28" /> +<hkern u1="M" u2="è" k="28" /> +<hkern u1="M" u2="ç" k="28" /> +<hkern u1="M" u2="æ" k="9" /> +<hkern u1="M" u2="å" k="18" /> +<hkern u1="M" u2="ä" k="18" /> +<hkern u1="M" u2="ã" k="18" /> +<hkern u1="M" u2="â" k="18" /> +<hkern u1="M" u2="á" k="18" /> +<hkern u1="M" u2="à" k="18" /> +<hkern u1="M" u2="ß" k="22" /> +<hkern u1="M" u2="Ý" k="13" /> +<hkern u1="M" u2="Ü" k="13" /> +<hkern u1="M" u2="Û" k="13" /> +<hkern u1="M" u2="Ú" k="13" /> +<hkern u1="M" u2="Ù" k="13" /> +<hkern u1="M" u2="Ø" k="20" /> +<hkern u1="M" u2="Ö" k="20" /> +<hkern u1="M" u2="Õ" k="20" /> +<hkern u1="M" u2="Ô" k="20" /> +<hkern u1="M" u2="Ó" k="20" /> +<hkern u1="M" u2="Ò" k="20" /> +<hkern u1="M" u2="Ç" k="20" /> +<hkern u1="M" u2="­" k="41" /> +<hkern u1="M" u2="y" k="19" /> +<hkern u1="M" u2="w" k="14" /> +<hkern u1="M" u2="v" k="14" /> +<hkern u1="M" u2="u" k="16" /> +<hkern u1="M" u2="t" k="27" /> +<hkern u1="M" u2="s" k="12" /> +<hkern u1="M" u2="r" k="13" /> +<hkern u1="M" u2="q" k="21" /> +<hkern u1="M" u2="p" k="35" /> +<hkern u1="M" u2="o" k="28" /> +<hkern u1="M" u2="n" k="11" /> +<hkern u1="M" u2="m" k="12" /> +<hkern u1="M" u2="l" k="14" /> +<hkern u1="M" u2="k" k="12" /> +<hkern u1="M" u2="j" k="38" /> +<hkern u1="M" u2="i" k="13" /> +<hkern u1="M" u2="h" k="12" /> +<hkern u1="M" u2="g" k="21" /> +<hkern u1="M" u2="f" k="22" /> +<hkern u1="M" u2="e" k="28" /> +<hkern u1="M" u2="d" k="21" /> +<hkern u1="M" u2="c" k="28" /> +<hkern u1="M" u2="a" k="18" /> +<hkern u1="M" u2="Y" k="13" /> +<hkern u1="M" u2="U" k="13" /> +<hkern u1="M" u2="Q" k="20" /> +<hkern u1="M" u2="O" k="20" /> +<hkern u1="M" u2="G" k="20" /> +<hkern u1="M" u2="C" k="19" /> +<hkern u1="M" u2="/" k="39" /> +<hkern u1="M" u2="-" k="41" /> +<hkern u1="M" u2="*" k="25" /> +<hkern u1="N" u2="ð" k="34" /> +<hkern u1="N" u2="æ" k="27" /> +<hkern u1="N" u2="Æ" k="15" /> +<hkern u1="N" u2="x" k="16" /> +<hkern u1="N" u2="t" k="20" /> +<hkern u1="N" u2="p" k="30" /> +<hkern u1="N" u2="j" k="26" /> +<hkern u1="N" u2="C" k="11" /> +<hkern u1="N" u2="/" k="81" /> +<hkern u1="O" u2="™" k="50" /> +<hkern u1="O" u2="Æ" k="61" /> +<hkern u1="O" u2="}" k="45" /> +<hkern u1="O" u2="x" k="32" /> +<hkern u1="O" u2="k" k="9" /> +<hkern u1="O" u2="b" k="9" /> +<hkern u1="O" u2="]" k="90" /> +<hkern u1="O" u2="\" k="53" /> +<hkern u1="O" u2="X" k="48" /> +<hkern u1="O" u2="W" k="41" /> +<hkern u1="O" u2="V" k="43" /> +<hkern u1="O" u2="M" k="19" /> +<hkern u1="O" u2="J" k="40" /> +<hkern u1="O" u2="H" k="20" /> +<hkern u1="O" u2="F" k="20" /> +<hkern u1="O" u2="E" k="20" /> +<hkern u1="O" u2="D" k="19" /> +<hkern u1="O" u2="B" k="19" /> +<hkern u1="O" u2="/" k="128" /> +<hkern u1="O" u2=")" k="53" /> +<hkern u1="P" u2="…" k="190" /> +<hkern u1="P" u2="„" k="190" /> +<hkern u1="P" u2="‚" k="190" /> +<hkern u1="P" u2="—" k="21" /> +<hkern u1="P" u2="–" k="21" /> +<hkern u1="P" u2="Ÿ" k="12" /> +<hkern u1="P" u2="œ" k="24" /> +<hkern u1="P" u2="ø" k="24" /> +<hkern u1="P" u2="ö" k="24" /> +<hkern u1="P" u2="õ" k="24" /> +<hkern u1="P" u2="ô" k="24" /> +<hkern u1="P" u2="ó" k="24" /> +<hkern u1="P" u2="ò" k="24" /> +<hkern u1="P" u2="ð" k="24" /> +<hkern u1="P" u2="ë" k="24" /> +<hkern u1="P" u2="ê" k="24" /> +<hkern u1="P" u2="é" k="24" /> +<hkern u1="P" u2="è" k="24" /> +<hkern u1="P" u2="ç" k="24" /> +<hkern u1="P" u2="æ" k="12" /> +<hkern u1="P" u2="å" k="38" /> +<hkern u1="P" u2="ä" k="38" /> +<hkern u1="P" u2="ã" k="38" /> +<hkern u1="P" u2="â" k="38" /> +<hkern u1="P" u2="á" k="38" /> +<hkern u1="P" u2="à" k="38" /> +<hkern u1="P" u2="Þ" k="11" /> +<hkern u1="P" u2="Ý" k="12" /> +<hkern u1="P" u2="Ñ" k="11" /> +<hkern u1="P" u2="Ð" k="11" /> +<hkern u1="P" u2="Ï" k="11" /> +<hkern u1="P" u2="Î" k="11" /> +<hkern u1="P" u2="Í" k="11" /> +<hkern u1="P" u2="Ì" k="11" /> +<hkern u1="P" u2="Ë" k="11" /> +<hkern u1="P" u2="Ê" k="11" /> +<hkern u1="P" u2="É" k="11" /> +<hkern u1="P" u2="È" k="11" /> +<hkern u1="P" u2="Æ" k="204" /> +<hkern u1="P" u2="Å" k="93" /> +<hkern u1="P" u2="Ä" k="93" /> +<hkern u1="P" u2="Ã" k="93" /> +<hkern u1="P" u2="Â" k="93" /> +<hkern u1="P" u2="Á" k="93" /> +<hkern u1="P" u2="À" k="93" /> +<hkern u1="P" u2="­" k="21" /> +<hkern u1="P" u2="}" k="30" /> +<hkern u1="P" u2="x" k="25" /> +<hkern u1="P" u2="q" k="32" /> +<hkern u1="P" u2="o" k="24" /> +<hkern u1="P" u2="g" k="32" /> +<hkern u1="P" u2="e" k="24" /> +<hkern u1="P" u2="d" k="32" /> +<hkern u1="P" u2="c" k="24" /> +<hkern u1="P" u2="a" k="38" /> +<hkern u1="P" u2="]" k="49" /> +<hkern u1="P" u2="Y" k="12" /> +<hkern u1="P" u2="X" k="27" /> +<hkern u1="P" u2="R" k="11" /> +<hkern u1="P" u2="P" k="11" /> +<hkern u1="P" u2="N" k="11" /> +<hkern u1="P" u2="M" k="16" /> +<hkern u1="P" u2="L" k="11" /> +<hkern u1="P" u2="K" k="11" /> +<hkern u1="P" u2="J" k="73" /> +<hkern u1="P" u2="I" k="11" /> +<hkern u1="P" u2="H" k="11" /> +<hkern u1="P" u2="F" k="10" /> +<hkern u1="P" u2="E" k="10" /> +<hkern u1="P" u2="D" k="10" /> +<hkern u1="P" u2="B" k="10" /> +<hkern u1="P" u2="A" k="93" /> +<hkern u1="P" u2="7" k="-22" /> +<hkern u1="P" u2="1" k="-11" /> +<hkern u1="P" u2="/" k="185" /> +<hkern u1="P" u2="." k="190" /> +<hkern u1="P" u2="-" k="21" /> +<hkern u1="P" u2="," k="190" /> +<hkern u1="P" u2="*" k="-54" /> +<hkern u1="P" u2=")" k="20" /> +<hkern u1="Q" u2="™" k="50" /> +<hkern u1="Q" u2="Æ" k="61" /> +<hkern u1="Q" u2="}" k="-89" /> +<hkern u1="Q" u2="x" k="32" /> +<hkern u1="Q" u2="k" k="9" /> +<hkern u1="Q" u2="j" k="-293" /> +<hkern u1="Q" u2="b" k="9" /> +<hkern u1="Q" u2="]" k="-145" /> +<hkern u1="Q" u2="\" k="53" /> +<hkern u1="Q" u2="X" k="48" /> +<hkern u1="Q" u2="W" k="41" /> +<hkern u1="Q" u2="V" k="43" /> +<hkern u1="Q" u2="M" k="19" /> +<hkern u1="Q" u2="J" k="40" /> +<hkern u1="Q" u2="H" k="20" /> +<hkern u1="Q" u2="F" k="20" /> +<hkern u1="Q" u2="E" k="20" /> +<hkern u1="Q" u2="D" k="19" /> +<hkern u1="Q" u2="B" k="19" /> +<hkern u1="Q" u2="/" k="-106" /> +<hkern u1="Q" u2=")" k="-75" /> +<hkern u1="R" u2="›" k="-33" /> +<hkern u1="R" u2="‹" k="41" /> +<hkern u1="R" u2="Ÿ" k="41" /> +<hkern u1="R" u2="œ" k="13" /> +<hkern u1="R" u2="Œ" k="11" /> +<hkern u1="R" u2="ø" k="13" /> +<hkern u1="R" u2="ö" k="13" /> +<hkern u1="R" u2="õ" k="13" /> +<hkern u1="R" u2="ô" k="13" /> +<hkern u1="R" u2="ó" k="13" /> +<hkern u1="R" u2="ò" k="13" /> +<hkern u1="R" u2="ð" k="12" /> +<hkern u1="R" u2="ë" k="13" /> +<hkern u1="R" u2="ê" k="13" /> +<hkern u1="R" u2="é" k="13" /> +<hkern u1="R" u2="è" k="13" /> +<hkern u1="R" u2="ç" k="13" /> +<hkern u1="R" u2="Ý" k="41" /> +<hkern u1="R" u2="Ü" k="17" /> +<hkern u1="R" u2="Û" k="17" /> +<hkern u1="R" u2="Ú" k="17" /> +<hkern u1="R" u2="Ù" k="17" /> +<hkern u1="R" u2="Ø" k="11" /> +<hkern u1="R" u2="Ö" k="11" /> +<hkern u1="R" u2="Õ" k="11" /> +<hkern u1="R" u2="Ô" k="11" /> +<hkern u1="R" u2="Ó" k="11" /> +<hkern u1="R" u2="Ò" k="11" /> +<hkern u1="R" u2="Ç" k="11" /> +<hkern u1="R" u2="Æ" k="-75" /> +<hkern u1="R" u2="Å" k="-70" /> +<hkern u1="R" u2="Ä" k="-70" /> +<hkern u1="R" u2="Ã" k="-70" /> +<hkern u1="R" u2="Â" k="-70" /> +<hkern u1="R" u2="Á" k="-70" /> +<hkern u1="R" u2="À" k="-70" /> +<hkern u1="R" u2="»" k="-1" /> +<hkern u1="R" u2="«" k="41" /> +<hkern u1="R" u2="z" k="-25" /> +<hkern u1="R" u2="p" k="12" /> +<hkern u1="R" u2="o" k="13" /> +<hkern u1="R" u2="j" k="15" /> +<hkern u1="R" u2="e" k="13" /> +<hkern u1="R" u2="c" k="13" /> +<hkern u1="R" u2="]" k="61" /> +<hkern u1="R" u2="\" k="42" /> +<hkern u1="R" u2="Y" k="41" /> +<hkern u1="R" u2="X" k="-25" /> +<hkern u1="R" u2="W" k="32" /> +<hkern u1="R" u2="V" k="33" /> +<hkern u1="R" u2="U" k="17" /> +<hkern u1="R" u2="Q" k="11" /> +<hkern u1="R" u2="O" k="11" /> +<hkern u1="R" u2="G" k="11" /> +<hkern u1="R" u2="C" k="11" /> +<hkern u1="R" u2="A" k="-70" /> +<hkern u1="R" u2="2" k="-28" /> +<hkern u1="S" u2="Æ" k="12" /> +<hkern u1="S" u2="x" k="14" /> +<hkern u1="S" u2="p" k="26" /> +<hkern u1="S" u2="j" k="28" /> +<hkern u1="S" u2="/" k="78" /> +<hkern u1="T" u2="™" k="-28" /> +<hkern u1="T" u2="‹" k="95" /> +<hkern u1="T" u2="…" k="118" /> +<hkern u1="T" u2="„" k="118" /> +<hkern u1="T" u2="“" k="-50" /> +<hkern u1="T" u2="‚" k="118" /> +<hkern u1="T" u2="‘" k="-50" /> +<hkern u1="T" u2="—" k="145" /> +<hkern u1="T" u2="–" k="145" /> +<hkern u1="T" u2="œ" k="103" /> +<hkern u1="T" u2="þ" k="-13" /> +<hkern u1="T" u2="ø" k="103" /> +<hkern u1="T" u2="ö" k="103" /> +<hkern u1="T" u2="õ" k="103" /> +<hkern u1="T" u2="ô" k="103" /> +<hkern u1="T" u2="ó" k="103" /> +<hkern u1="T" u2="ò" k="103" /> +<hkern u1="T" u2="ð" k="96" /> +<hkern u1="T" u2="î" k="-58" /> +<hkern u1="T" u2="ë" k="103" /> +<hkern u1="T" u2="ê" k="103" /> +<hkern u1="T" u2="é" k="103" /> +<hkern u1="T" u2="è" k="103" /> +<hkern u1="T" u2="ç" k="103" /> +<hkern u1="T" u2="æ" k="56" /> +<hkern u1="T" u2="å" k="122" /> +<hkern u1="T" u2="ä" k="122" /> +<hkern u1="T" u2="ã" k="122" /> +<hkern u1="T" u2="â" k="122" /> +<hkern u1="T" u2="á" k="122" /> +<hkern u1="T" u2="à" k="122" /> +<hkern u1="T" u2="Æ" k="120" /> +<hkern u1="T" u2="Å" k="98" /> +<hkern u1="T" u2="Ä" k="98" /> +<hkern u1="T" u2="Ã" k="98" /> +<hkern u1="T" u2="Â" k="98" /> +<hkern u1="T" u2="Á" k="98" /> +<hkern u1="T" u2="À" k="98" /> +<hkern u1="T" u2="­" k="145" /> +<hkern u1="T" u2="«" k="95" /> +<hkern u1="T" u2="z" k="16" /> +<hkern u1="T" u2="x" k="14" /> +<hkern u1="T" u2="s" k="41" /> +<hkern u1="T" u2="q" k="112" /> +<hkern u1="T" u2="p" k="13" /> +<hkern u1="T" u2="o" k="103" /> +<hkern u1="T" u2="g" k="112" /> +<hkern u1="T" u2="e" k="103" /> +<hkern u1="T" u2="d" k="112" /> +<hkern u1="T" u2="c" k="103" /> +<hkern u1="T" u2="b" k="-15" /> +<hkern u1="T" u2="a" k="122" /> +<hkern u1="T" u2="]" k="-26" /> +<hkern u1="T" u2="Z" k="35" /> +<hkern u1="T" u2="A" k="98" /> +<hkern u1="T" u2="@" k="21" /> +<hkern u1="T" u2="7" k="-36" /> +<hkern u1="T" u2="4" k="61" /> +<hkern u1="T" u2="1" k="-36" /> +<hkern u1="T" u2="/" k="165" /> +<hkern u1="T" u2="." k="118" /> +<hkern u1="T" u2="-" k="145" /> +<hkern u1="T" u2="," k="118" /> +<hkern u1="T" u2="*" k="-67" /> +<hkern u1="U" u2="™" k="-18" /> +<hkern u1="U" u2="þ" k="-20" /> +<hkern u1="U" u2="ð" k="31" /> +<hkern u1="U" u2="æ" k="34" /> +<hkern u1="U" u2="Æ" k="78" /> +<hkern u1="U" u2="x" k="22" /> +<hkern u1="U" u2="t" k="14" /> +<hkern u1="U" u2="p" k="21" /> +<hkern u1="U" u2="j" k="15" /> +<hkern u1="U" u2="b" k="-22" /> +<hkern u1="U" u2="]" k="-32" /> +<hkern u1="U" u2=";" k="16" /> +<hkern u1="U" u2="7" k="-37" /> +<hkern u1="U" u2="/" k="145" /> +<hkern u1="V" u2="fl" k="30" /> +<hkern u1="V" u2="fi" k="30" /> +<hkern u1="V" u2="™" k="-50" /> +<hkern u1="V" u2="›" k="41" /> +<hkern u1="V" u2="‹" k="95" /> +<hkern u1="V" u2="…" k="172" /> +<hkern u1="V" u2="„" k="172" /> +<hkern u1="V" u2="”" k="-48" /> +<hkern u1="V" u2="“" k="-50" /> +<hkern u1="V" u2="‚" k="172" /> +<hkern u1="V" u2="’" k="-48" /> +<hkern u1="V" u2="‘" k="-50" /> +<hkern u1="V" u2="—" k="97" /> +<hkern u1="V" u2="–" k="97" /> +<hkern u1="V" u2="Ÿ" k="-80" /> +<hkern u1="V" u2="œ" k="130" /> +<hkern u1="V" u2="Œ" k="42" /> +<hkern u1="V" u2="ÿ" k="64" /> +<hkern u1="V" u2="þ" k="-86" /> +<hkern u1="V" u2="ý" k="64" /> +<hkern u1="V" u2="ü" k="84" /> +<hkern u1="V" u2="û" k="84" /> +<hkern u1="V" u2="ú" k="84" /> +<hkern u1="V" u2="ù" k="84" /> +<hkern u1="V" u2="ø" k="130" /> +<hkern u1="V" u2="ö" k="130" /> +<hkern u1="V" u2="õ" k="115" /> +<hkern u1="V" u2="ô" k="130" /> +<hkern u1="V" u2="ó" k="130" /> +<hkern u1="V" u2="ò" k="130" /> +<hkern u1="V" u2="ñ" k="81" /> +<hkern u1="V" u2="ð" k="104" /> +<hkern u1="V" u2="ï" k="-39" /> +<hkern u1="V" u2="î" k="-34" /> +<hkern u1="V" u2="í" k="18" /> +<hkern u1="V" u2="ì" k="-17" /> +<hkern u1="V" u2="ë" k="130" /> +<hkern u1="V" u2="ê" k="130" /> +<hkern u1="V" u2="é" k="130" /> +<hkern u1="V" u2="è" k="130" /> +<hkern u1="V" u2="ç" k="130" /> +<hkern u1="V" u2="æ" k="151" /> +<hkern u1="V" u2="å" k="141" /> +<hkern u1="V" u2="ä" k="141" /> +<hkern u1="V" u2="ã" k="141" /> +<hkern u1="V" u2="â" k="141" /> +<hkern u1="V" u2="á" k="141" /> +<hkern u1="V" u2="à" k="141" /> +<hkern u1="V" u2="ß" k="30" /> +<hkern u1="V" u2="Ý" k="-80" /> +<hkern u1="V" u2="Ø" k="42" /> +<hkern u1="V" u2="Ö" k="42" /> +<hkern u1="V" u2="Õ" k="42" /> +<hkern u1="V" u2="Ô" k="42" /> +<hkern u1="V" u2="Ó" k="42" /> +<hkern u1="V" u2="Ò" k="42" /> +<hkern u1="V" u2="Ç" k="42" /> +<hkern u1="V" u2="Æ" k="210" /> +<hkern u1="V" u2="Å" k="127" /> +<hkern u1="V" u2="Ä" k="127" /> +<hkern u1="V" u2="Ã" k="127" /> +<hkern u1="V" u2="Â" k="127" /> +<hkern u1="V" u2="Á" k="127" /> +<hkern u1="V" u2="À" k="127" /> +<hkern u1="V" u2="»" k="41" /> +<hkern u1="V" u2="®" k="30" /> +<hkern u1="V" u2="­" k="97" /> +<hkern u1="V" u2="«" k="95" /> +<hkern u1="V" u2="}" k="-45" /> +<hkern u1="V" u2="z" k="108" /> +<hkern u1="V" u2="y" k="64" /> +<hkern u1="V" u2="x" k="111" /> +<hkern u1="V" u2="w" k="81" /> +<hkern u1="V" u2="v" k="79" /> +<hkern u1="V" u2="u" k="84" /> +<hkern u1="V" u2="t" k="44" /> +<hkern u1="V" u2="s" k="136" /> +<hkern u1="V" u2="r" k="81" /> +<hkern u1="V" u2="q" k="141" /> +<hkern u1="V" u2="p" k="104" /> +<hkern u1="V" u2="o" k="130" /> +<hkern u1="V" u2="n" k="81" /> +<hkern u1="V" u2="m" k="82" /> +<hkern u1="V" u2="l" k="-49" /> +<hkern u1="V" u2="k" k="-59" /> +<hkern u1="V" u2="j" k="30" /> +<hkern u1="V" u2="i" k="18" /> +<hkern u1="V" u2="h" k="-59" /> +<hkern u1="V" u2="g" k="141" /> +<hkern u1="V" u2="f" k="30" /> +<hkern u1="V" u2="e" k="130" /> +<hkern u1="V" u2="d" k="141" /> +<hkern u1="V" u2="c" k="130" /> +<hkern u1="V" u2="b" k="-88" /> +<hkern u1="V" u2="a" k="141" /> +<hkern u1="V" u2="]" k="-99" /> +<hkern u1="V" u2="\" k="-69" /> +<hkern u1="V" u2="Y" k="-80" /> +<hkern u1="V" u2="X" k="-70" /> +<hkern u1="V" u2="W" k="-50" /> +<hkern u1="V" u2="V" k="-80" /> +<hkern u1="V" u2="T" k="-17" /> +<hkern u1="V" u2="S" k="11" /> +<hkern u1="V" u2="Q" k="42" /> +<hkern u1="V" u2="O" k="42" /> +<hkern u1="V" u2="G" k="42" /> +<hkern u1="V" u2="C" k="43" /> +<hkern u1="V" u2="A" k="127" /> +<hkern u1="V" u2="@" k="70" /> +<hkern u1="V" u2=";" k="68" /> +<hkern u1="V" u2=":" k="66" /> +<hkern u1="V" u2="7" k="-102" /> +<hkern u1="V" u2="6" k="25" /> +<hkern u1="V" u2="4" k="75" /> +<hkern u1="V" u2="0" k="22" /> +<hkern u1="V" u2="/" k="215" /> +<hkern u1="V" u2="." k="172" /> +<hkern u1="V" u2="-" k="97" /> +<hkern u1="V" u2="," k="172" /> +<hkern u1="V" u2="*" k="16" /> +<hkern u1="V" u2=")" k="-53" /> +<hkern u1="W" u2="fl" k="30" /> +<hkern u1="W" u2="fi" k="30" /> +<hkern u1="W" u2="™" k="-84" /> +<hkern u1="W" u2="›" k="36" /> +<hkern u1="W" u2="‹" k="85" /> +<hkern u1="W" u2="…" k="161" /> +<hkern u1="W" u2="„" k="161" /> +<hkern u1="W" u2="”" k="-51" /> +<hkern u1="W" u2="‚" k="161" /> +<hkern u1="W" u2="’" k="-51" /> +<hkern u1="W" u2="—" k="88" /> +<hkern u1="W" u2="–" k="88" /> +<hkern u1="W" u2="Ÿ" k="-75" /> +<hkern u1="W" u2="œ" k="128" /> +<hkern u1="W" u2="Œ" k="39" /> +<hkern u1="W" u2="ÿ" k="51" /> +<hkern u1="W" u2="þ" k="-87" /> +<hkern u1="W" u2="ý" k="51" /> +<hkern u1="W" u2="ü" k="74" /> +<hkern u1="W" u2="û" k="74" /> +<hkern u1="W" u2="ú" k="74" /> +<hkern u1="W" u2="ù" k="74" /> +<hkern u1="W" u2="ø" k="128" /> +<hkern u1="W" u2="ö" k="128" /> +<hkern u1="W" u2="õ" k="115" /> +<hkern u1="W" u2="ô" k="128" /> +<hkern u1="W" u2="ó" k="128" /> +<hkern u1="W" u2="ò" k="128" /> +<hkern u1="W" u2="ñ" k="76" /> +<hkern u1="W" u2="ð" k="105" /> +<hkern u1="W" u2="ï" k="-40" /> +<hkern u1="W" u2="î" k="-35" /> +<hkern u1="W" u2="í" k="16" /> +<hkern u1="W" u2="ì" k="-18" /> +<hkern u1="W" u2="ë" k="128" /> +<hkern u1="W" u2="ê" k="128" /> +<hkern u1="W" u2="é" k="128" /> +<hkern u1="W" u2="è" k="128" /> +<hkern u1="W" u2="ç" k="128" /> +<hkern u1="W" u2="æ" k="129" /> +<hkern u1="W" u2="å" k="128" /> +<hkern u1="W" u2="ä" k="128" /> +<hkern u1="W" u2="ã" k="128" /> +<hkern u1="W" u2="â" k="128" /> +<hkern u1="W" u2="á" k="128" /> +<hkern u1="W" u2="à" k="128" /> +<hkern u1="W" u2="ß" k="30" /> +<hkern u1="W" u2="Ý" k="-75" /> +<hkern u1="W" u2="Ø" k="39" /> +<hkern u1="W" u2="Ö" k="39" /> +<hkern u1="W" u2="Õ" k="39" /> +<hkern u1="W" u2="Ô" k="39" /> +<hkern u1="W" u2="Ó" k="39" /> +<hkern u1="W" u2="Ò" k="39" /> +<hkern u1="W" u2="Ç" k="39" /> +<hkern u1="W" u2="Æ" k="199" /> +<hkern u1="W" u2="Å" k="117" /> +<hkern u1="W" u2="Ä" k="117" /> +<hkern u1="W" u2="Ã" k="117" /> +<hkern u1="W" u2="Â" k="117" /> +<hkern u1="W" u2="Á" k="117" /> +<hkern u1="W" u2="À" k="117" /> +<hkern u1="W" u2="»" k="36" /> +<hkern u1="W" u2="®" k="28" /> +<hkern u1="W" u2="­" k="88" /> +<hkern u1="W" u2="«" k="85" /> +<hkern u1="W" u2="}" k="-46" /> +<hkern u1="W" u2="z" k="109" /> +<hkern u1="W" u2="y" k="51" /> +<hkern u1="W" u2="x" k="96" /> +<hkern u1="W" u2="w" k="73" /> +<hkern u1="W" u2="v" k="69" /> +<hkern u1="W" u2="u" k="74" /> +<hkern u1="W" u2="t" k="41" /> +<hkern u1="W" u2="s" k="115" /> +<hkern u1="W" u2="r" k="77" /> +<hkern u1="W" u2="q" k="127" /> +<hkern u1="W" u2="p" k="98" /> +<hkern u1="W" u2="o" k="128" /> +<hkern u1="W" u2="n" k="76" /> +<hkern u1="W" u2="m" k="77" /> +<hkern u1="W" u2="l" k="-50" /> +<hkern u1="W" u2="k" k="-60" /> +<hkern u1="W" u2="j" k="31" /> +<hkern u1="W" u2="i" k="16" /> +<hkern u1="W" u2="h" k="-60" /> +<hkern u1="W" u2="g" k="127" /> +<hkern u1="W" u2="f" k="30" /> +<hkern u1="W" u2="e" k="128" /> +<hkern u1="W" u2="d" k="127" /> +<hkern u1="W" u2="c" k="128" /> +<hkern u1="W" u2="b" k="-89" /> +<hkern u1="W" u2="a" k="128" /> +<hkern u1="W" u2="]" k="-101" /> +<hkern u1="W" u2="\" k="-65" /> +<hkern u1="W" u2="Y" k="-75" /> +<hkern u1="W" u2="X" k="-70" /> +<hkern u1="W" u2="W" k="-70" /> +<hkern u1="W" u2="V" k="-75" /> +<hkern u1="W" u2="T" k="-18" /> +<hkern u1="W" u2="S" k="15" /> +<hkern u1="W" u2="Q" k="39" /> +<hkern u1="W" u2="O" k="39" /> +<hkern u1="W" u2="G" k="39" /> +<hkern u1="W" u2="C" k="39" /> +<hkern u1="W" u2="A" k="117" /> +<hkern u1="W" u2="@" k="64" /> +<hkern u1="W" u2=";" k="63" /> +<hkern u1="W" u2=":" k="61" /> +<hkern u1="W" u2="7" k="-103" /> +<hkern u1="W" u2="6" k="24" /> +<hkern u1="W" u2="4" k="68" /> +<hkern u1="W" u2="0" k="22" /> +<hkern u1="W" u2="/" k="207" /> +<hkern u1="W" u2="." k="161" /> +<hkern u1="W" u2="-" k="88" /> +<hkern u1="W" u2="," k="161" /> +<hkern u1="W" u2="*" k="18" /> +<hkern u1="W" u2=")" k="-55" /> +<hkern u1="X" u2="™" k="-10" /> +<hkern u1="X" u2="›" k="-52" /> +<hkern u1="X" u2="‹" k="33" /> +<hkern u1="X" u2="…" k="-75" /> +<hkern u1="X" u2="„" k="-75" /> +<hkern u1="X" u2="‚" k="-75" /> +<hkern u1="X" u2="—" k="105" /> +<hkern u1="X" u2="–" k="105" /> +<hkern u1="X" u2="œ" k="29" /> +<hkern u1="X" u2="Œ" k="53" /> +<hkern u1="X" u2="ÿ" k="119" /> +<hkern u1="X" u2="ý" k="119" /> +<hkern u1="X" u2="ü" k="65" /> +<hkern u1="X" u2="û" k="65" /> +<hkern u1="X" u2="ú" k="65" /> +<hkern u1="X" u2="ù" k="65" /> +<hkern u1="X" u2="ø" k="29" /> +<hkern u1="X" u2="ö" k="29" /> +<hkern u1="X" u2="õ" k="29" /> +<hkern u1="X" u2="ô" k="29" /> +<hkern u1="X" u2="ó" k="29" /> +<hkern u1="X" u2="ò" k="29" /> +<hkern u1="X" u2="ñ" k="10" /> +<hkern u1="X" u2="ð" k="26" /> +<hkern u1="X" u2="ï" k="35" /> +<hkern u1="X" u2="î" k="35" /> +<hkern u1="X" u2="í" k="35" /> +<hkern u1="X" u2="ì" k="35" /> +<hkern u1="X" u2="ë" k="29" /> +<hkern u1="X" u2="ê" k="29" /> +<hkern u1="X" u2="é" k="29" /> +<hkern u1="X" u2="è" k="29" /> +<hkern u1="X" u2="ç" k="29" /> +<hkern u1="X" u2="Ø" k="53" /> +<hkern u1="X" u2="Ö" k="53" /> +<hkern u1="X" u2="Õ" k="53" /> +<hkern u1="X" u2="Ô" k="53" /> +<hkern u1="X" u2="Ó" k="53" /> +<hkern u1="X" u2="Ò" k="53" /> +<hkern u1="X" u2="Ç" k="53" /> +<hkern u1="X" u2="Æ" k="-100" /> +<hkern u1="X" u2="Å" k="-75" /> +<hkern u1="X" u2="Ä" k="-75" /> +<hkern u1="X" u2="Ã" k="-75" /> +<hkern u1="X" u2="Â" k="-75" /> +<hkern u1="X" u2="Á" k="-75" /> +<hkern u1="X" u2="À" k="-75" /> +<hkern u1="X" u2="»" k="-1" /> +<hkern u1="X" u2="­" k="105" /> +<hkern u1="X" u2="«" k="33" /> +<hkern u1="X" u2="y" k="119" /> +<hkern u1="X" u2="w" k="58" /> +<hkern u1="X" u2="v" k="50" /> +<hkern u1="X" u2="u" k="65" /> +<hkern u1="X" u2="t" k="9" /> +<hkern u1="X" u2="r" k="16" /> +<hkern u1="X" u2="p" k="33" /> +<hkern u1="X" u2="o" k="29" /> +<hkern u1="X" u2="n" k="10" /> +<hkern u1="X" u2="m" k="10" /> +<hkern u1="X" u2="j" k="25" /> +<hkern u1="X" u2="i" k="35" /> +<hkern u1="X" u2="e" k="29" /> +<hkern u1="X" u2="c" k="29" /> +<hkern u1="X" u2="b" k="-12" /> +<hkern u1="X" u2="]" k="-34" /> +<hkern u1="X" u2="X" k="-75" /> +<hkern u1="X" u2="T" k="25" /> +<hkern u1="X" u2="Q" k="53" /> +<hkern u1="X" u2="O" k="53" /> +<hkern u1="X" u2="G" k="53" /> +<hkern u1="X" u2="C" k="53" /> +<hkern u1="X" u2="A" k="-75" /> +<hkern u1="X" u2="7" k="-39" /> +<hkern u1="X" u2="2" k="-57" /> +<hkern u1="X" u2="." k="-75" /> +<hkern u1="X" u2="-" k="105" /> +<hkern u1="X" u2="," k="-75" /> +<hkern u1="X" u2="*" k="17" /> +<hkern u1="Y" u2="™" k="-74" /> +<hkern u1="Y" u2="‹" k="139" /> +<hkern u1="Y" u2="þ" k="-78" /> +<hkern u1="Y" u2="õ" k="125" /> +<hkern u1="Y" u2="ð" k="127" /> +<hkern u1="Y" u2="ï" k="-30" /> +<hkern u1="Y" u2="î" k="-25" /> +<hkern u1="Y" u2="ì" k="-8" /> +<hkern u1="Y" u2="æ" k="191" /> +<hkern u1="Y" u2="Æ" k="140" /> +<hkern u1="Y" u2="®" k="42" /> +<hkern u1="Y" u2="«" k="139" /> +<hkern u1="Y" u2="}" k="-36" /> +<hkern u1="Y" u2="x" k="152" /> +<hkern u1="Y" u2="w" k="141" /> +<hkern u1="Y" u2="v" k="138" /> +<hkern u1="Y" u2="t" k="75" /> +<hkern u1="Y" u2="r" k="143" /> +<hkern u1="Y" u2="p" k="164" /> +<hkern u1="Y" u2="m" k="144" /> +<hkern u1="Y" u2="k" k="-50" /> +<hkern u1="Y" u2="j" k="39" /> +<hkern u1="Y" u2="b" k="-80" /> +<hkern u1="Y" u2="]" k="-90" /> +<hkern u1="Y" u2="\" k="-63" /> +<hkern u1="Y" u2="X" k="-65" /> +<hkern u1="Y" u2="W" k="-75" /> +<hkern u1="Y" u2="V" k="-75" /> +<hkern u1="Y" u2="C" k="62" /> +<hkern u1="Y" u2="@" k="86" /> +<hkern u1="Y" u2=";" k="82" /> +<hkern u1="Y" u2=":" k="78" /> +<hkern u1="Y" u2="7" k="-93" /> +<hkern u1="Y" u2="6" k="31" /> +<hkern u1="Y" u2="4" k="97" /> +<hkern u1="Y" u2="0" k="27" /> +<hkern u1="Y" u2="/" k="171" /> +<hkern u1="Y" u2="*" k="22" /> +<hkern u1="Y" u2=")" k="-44" /> +<hkern u1="Z" u2="w" k="36" /> +<hkern u1="Z" u2="v" k="39" /> +<hkern u1="Z" u2="t" k="22" /> +<hkern u1="Z" u2="r" k="35" /> +<hkern u1="Z" u2="p" k="60" /> +<hkern u1="Z" u2="m" k="33" /> +<hkern u1="Z" u2="j" k="54" /> +<hkern u1="Z" u2="W" k="25" /> +<hkern u1="Z" u2="T" k="45" /> +<hkern u1="Z" u2="/" k="48" /> +<hkern u1="Z" u2="*" k="16" /> +<hkern u1="[" u2="fl" k="-263" /> +<hkern u1="[" u2="fi" k="-263" /> +<hkern u1="[" u2="Ÿ" k="-97" /> +<hkern u1="[" u2="œ" k="104" /> +<hkern u1="[" u2="Œ" k="86" /> +<hkern u1="[" u2="ÿ" k="-33" /> +<hkern u1="[" u2="þ" k="-56" /> +<hkern u1="[" u2="ý" k="-33" /> +<hkern u1="[" u2="ü" k="75" /> +<hkern u1="[" u2="û" k="75" /> +<hkern u1="[" u2="ú" k="75" /> +<hkern u1="[" u2="ù" k="75" /> +<hkern u1="[" u2="ø" k="104" /> +<hkern u1="[" u2="ö" k="104" /> +<hkern u1="[" u2="õ" k="104" /> +<hkern u1="[" u2="ô" k="104" /> +<hkern u1="[" u2="ó" k="104" /> +<hkern u1="[" u2="ò" k="104" /> +<hkern u1="[" u2="ñ" k="76" /> +<hkern u1="[" u2="ð" k="22" /> +<hkern u1="[" u2="ì" k="-15" /> +<hkern u1="[" u2="ë" k="104" /> +<hkern u1="[" u2="ê" k="104" /> +<hkern u1="[" u2="é" k="104" /> +<hkern u1="[" u2="è" k="104" /> +<hkern u1="[" u2="ç" k="104" /> +<hkern u1="[" u2="æ" k="99" /> +<hkern u1="[" u2="å" k="103" /> +<hkern u1="[" u2="ä" k="103" /> +<hkern u1="[" u2="ã" k="103" /> +<hkern u1="[" u2="â" k="103" /> +<hkern u1="[" u2="á" k="103" /> +<hkern u1="[" u2="à" k="103" /> +<hkern u1="[" u2="ß" k="-263" /> +<hkern u1="[" u2="Ý" k="-97" /> +<hkern u1="[" u2="Ü" k="-30" /> +<hkern u1="[" u2="Û" k="-30" /> +<hkern u1="[" u2="Ú" k="-30" /> +<hkern u1="[" u2="Ù" k="-30" /> +<hkern u1="[" u2="Ø" k="86" /> +<hkern u1="[" u2="Ö" k="86" /> +<hkern u1="[" u2="Õ" k="86" /> +<hkern u1="[" u2="Ô" k="86" /> +<hkern u1="[" u2="Ó" k="86" /> +<hkern u1="[" u2="Ò" k="86" /> +<hkern u1="[" u2="Ç" k="86" /> +<hkern u1="[" u2="Æ" k="94" /> +<hkern u1="[" u2="Å" k="87" /> +<hkern u1="[" u2="Ä" k="87" /> +<hkern u1="[" u2="Ã" k="87" /> +<hkern u1="[" u2="Â" k="87" /> +<hkern u1="[" u2="Á" k="87" /> +<hkern u1="[" u2="À" k="87" /> +<hkern u1="[" u2="{" k="39" /> +<hkern u1="[" u2="z" k="94" /> +<hkern u1="[" u2="y" k="-33" /> +<hkern u1="[" u2="x" k="82" /> +<hkern u1="[" u2="w" k="73" /> +<hkern u1="[" u2="v" k="71" /> +<hkern u1="[" u2="u" k="75" /> +<hkern u1="[" u2="t" k="74" /> +<hkern u1="[" u2="s" k="99" /> +<hkern u1="[" u2="r" k="75" /> +<hkern u1="[" u2="q" k="96" /> +<hkern u1="[" u2="o" k="104" /> +<hkern u1="[" u2="n" k="76" /> +<hkern u1="[" u2="m" k="76" /> +<hkern u1="[" u2="l" k="-18" /> +<hkern u1="[" u2="k" k="-29" /> +<hkern u1="[" u2="j" k="-220" /> +<hkern u1="[" u2="h" k="-29" /> +<hkern u1="[" u2="g" k="21" /> +<hkern u1="[" u2="f" k="-263" /> +<hkern u1="[" u2="e" k="104" /> +<hkern u1="[" u2="d" k="96" /> +<hkern u1="[" u2="c" k="104" /> +<hkern u1="[" u2="b" k="-58" /> +<hkern u1="[" u2="a" k="103" /> +<hkern u1="[" u2="Y" k="-97" /> +<hkern u1="[" u2="X" k="-79" /> +<hkern u1="[" u2="W" k="-82" /> +<hkern u1="[" u2="V" k="-92" /> +<hkern u1="[" u2="U" k="-30" /> +<hkern u1="[" u2="T" k="-36" /> +<hkern u1="[" u2="S" k="40" /> +<hkern u1="[" u2="Q" k="86" /> +<hkern u1="[" u2="O" k="86" /> +<hkern u1="[" u2="G" k="86" /> +<hkern u1="[" u2="C" k="85" /> +<hkern u1="[" u2="A" k="87" /> +<hkern u1="[" u2="9" k="47" /> +<hkern u1="[" u2="8" k="54" /> +<hkern u1="[" u2="7" k="-65" /> +<hkern u1="[" u2="6" k="71" /> +<hkern u1="[" u2="4" k="96" /> +<hkern u1="[" u2="3" k="37" /> +<hkern u1="[" u2="2" k="28" /> +<hkern u1="[" u2="1" k="51" /> +<hkern u1="[" u2="0" k="68" /> +<hkern u1="[" u2="(" k="61" /> +<hkern u1="\" u2="fl" k="-239" /> +<hkern u1="\" u2="fi" k="-239" /> +<hkern u1="\" u2="”" k="200" /> +<hkern u1="\" u2="’" k="200" /> +<hkern u1="\" u2="Ÿ" k="224" /> +<hkern u1="\" u2="œ" k="120" /> +<hkern u1="\" u2="Œ" k="177" /> +<hkern u1="\" u2="þ" k="-11" /> +<hkern u1="\" u2="ü" k="124" /> +<hkern u1="\" u2="û" k="124" /> +<hkern u1="\" u2="ú" k="124" /> +<hkern u1="\" u2="ù" k="124" /> +<hkern u1="\" u2="ø" k="120" /> +<hkern u1="\" u2="ö" k="120" /> +<hkern u1="\" u2="õ" k="120" /> +<hkern u1="\" u2="ô" k="120" /> +<hkern u1="\" u2="ó" k="120" /> +<hkern u1="\" u2="ò" k="120" /> +<hkern u1="\" u2="ñ" k="108" /> +<hkern u1="\" u2="ð" k="116" /> +<hkern u1="\" u2="ï" k="117" /> +<hkern u1="\" u2="î" k="117" /> +<hkern u1="\" u2="í" k="117" /> +<hkern u1="\" u2="ì" k="117" /> +<hkern u1="\" u2="ë" k="120" /> +<hkern u1="\" u2="ê" k="120" /> +<hkern u1="\" u2="é" k="120" /> +<hkern u1="\" u2="è" k="120" /> +<hkern u1="\" u2="ç" k="120" /> +<hkern u1="\" u2="æ" k="86" /> +<hkern u1="\" u2="å" k="101" /> +<hkern u1="\" u2="ä" k="101" /> +<hkern u1="\" u2="ã" k="101" /> +<hkern u1="\" u2="â" k="101" /> +<hkern u1="\" u2="á" k="101" /> +<hkern u1="\" u2="à" k="101" /> +<hkern u1="\" u2="ß" k="-239" /> +<hkern u1="\" u2="Þ" k="86" /> +<hkern u1="\" u2="Ý" k="224" /> +<hkern u1="\" u2="Ü" k="187" /> +<hkern u1="\" u2="Û" k="187" /> +<hkern u1="\" u2="Ú" k="187" /> +<hkern u1="\" u2="Ù" k="187" /> +<hkern u1="\" u2="Ø" k="177" /> +<hkern u1="\" u2="Ö" k="177" /> +<hkern u1="\" u2="Õ" k="177" /> +<hkern u1="\" u2="Ô" k="177" /> +<hkern u1="\" u2="Ó" k="177" /> +<hkern u1="\" u2="Ò" k="177" /> +<hkern u1="\" u2="Ñ" k="86" /> +<hkern u1="\" u2="Ð" k="86" /> +<hkern u1="\" u2="Ï" k="86" /> +<hkern u1="\" u2="Î" k="86" /> +<hkern u1="\" u2="Í" k="86" /> +<hkern u1="\" u2="Ì" k="86" /> +<hkern u1="\" u2="Ë" k="86" /> +<hkern u1="\" u2="Ê" k="86" /> +<hkern u1="\" u2="É" k="86" /> +<hkern u1="\" u2="È" k="86" /> +<hkern u1="\" u2="Ç" k="177" /> +<hkern u1="\" u2="Æ" k="35" /> +<hkern u1="\" u2="Å" k="40" /> +<hkern u1="\" u2="Ä" k="40" /> +<hkern u1="\" u2="Ã" k="40" /> +<hkern u1="\" u2="Â" k="40" /> +<hkern u1="\" u2="Á" k="40" /> +<hkern u1="\" u2="À" k="40" /> +<hkern u1="\" u2="z" k="69" /> +<hkern u1="\" u2="x" k="58" /> +<hkern u1="\" u2="w" k="124" /> +<hkern u1="\" u2="v" k="125" /> +<hkern u1="\" u2="u" k="124" /> +<hkern u1="\" u2="t" k="128" /> +<hkern u1="\" u2="s" k="93" /> +<hkern u1="\" u2="r" k="111" /> +<hkern u1="\" u2="q" k="106" /> +<hkern u1="\" u2="o" k="120" /> +<hkern u1="\" u2="n" k="108" /> +<hkern u1="\" u2="m" k="108" /> +<hkern u1="\" u2="l" k="95" /> +<hkern u1="\" u2="k" k="86" /> +<hkern u1="\" u2="j" k="-192" /> +<hkern u1="\" u2="i" k="117" /> +<hkern u1="\" u2="h" k="85" /> +<hkern u1="\" u2="g" k="82" /> +<hkern u1="\" u2="f" k="-239" /> +<hkern u1="\" u2="e" k="120" /> +<hkern u1="\" u2="d" k="106" /> +<hkern u1="\" u2="c" k="120" /> +<hkern u1="\" u2="b" k="88" /> +<hkern u1="\" u2="a" k="101" /> +<hkern u1="\" u2="Z" k="77" /> +<hkern u1="\" u2="Y" k="224" /> +<hkern u1="\" u2="X" k="35" /> +<hkern u1="\" u2="W" k="236" /> +<hkern u1="\" u2="V" k="256" /> +<hkern u1="\" u2="U" k="187" /> +<hkern u1="\" u2="T" k="204" /> +<hkern u1="\" u2="S" k="86" /> +<hkern u1="\" u2="R" k="86" /> +<hkern u1="\" u2="Q" k="177" /> +<hkern u1="\" u2="P" k="86" /> +<hkern u1="\" u2="O" k="177" /> +<hkern u1="\" u2="N" k="86" /> +<hkern u1="\" u2="M" k="76" /> +<hkern u1="\" u2="L" k="86" /> +<hkern u1="\" u2="K" k="86" /> +<hkern u1="\" u2="J" k="42" /> +<hkern u1="\" u2="I" k="86" /> +<hkern u1="\" u2="H" k="86" /> +<hkern u1="\" u2="G" k="177" /> +<hkern u1="\" u2="F" k="86" /> +<hkern u1="\" u2="E" k="86" /> +<hkern u1="\" u2="D" k="86" /> +<hkern u1="\" u2="C" k="174" /> +<hkern u1="\" u2="B" k="86" /> +<hkern u1="\" u2="A" k="40" /> +<hkern u1="\" u2="9" k="136" /> +<hkern u1="\" u2="8" k="136" /> +<hkern u1="\" u2="7" k="175" /> +<hkern u1="\" u2="6" k="152" /> +<hkern u1="\" u2="5" k="114" /> +<hkern u1="\" u2="4" k="147" /> +<hkern u1="\" u2="3" k="112" /> +<hkern u1="\" u2="2" k="76" /> +<hkern u1="\" u2="1" k="103" /> +<hkern u1="\" u2="0" k="162" /> +<hkern u1="\" u2="'" k="203" /> +<hkern u1="\" u2=""" k="268" /> +<hkern u1="a" u2="™" k="19" /> +<hkern u1="a" u2="]" k="48" /> +<hkern u1="a" u2="\" k="75" /> +<hkern u1="a" u2="W" k="73" /> +<hkern u1="a" u2="V" k="87" /> +<hkern u1="a" u2="T" k="43" /> +<hkern u1="a" u2="J" k="-30" /> +<hkern u1="a" u2="&" k="-25" /> +<hkern u1="b" u2="™" k="44" /> +<hkern u1="b" u2="}" k="46" /> +<hkern u1="b" u2="x" k="17" /> +<hkern u1="b" u2="]" k="97" /> +<hkern u1="b" u2="\" k="91" /> +<hkern u1="b" u2="X" k="75" /> +<hkern u1="b" u2="W" k="117" /> +<hkern u1="b" u2="V" k="133" /> +<hkern u1="b" u2="T" k="65" /> +<hkern u1="b" u2="M" k="39" /> +<hkern u1="b" u2="J" k="13" /> +<hkern u1="b" u2="H" k="44" /> +<hkern u1="b" u2="F" k="44" /> +<hkern u1="b" u2="E" k="44" /> +<hkern u1="b" u2="D" k="44" /> +<hkern u1="b" u2="B" k="44" /> +<hkern u1="b" u2="?" k="27" /> +<hkern u1="b" u2="/" k="92" /> +<hkern u1="b" u2="*" k="22" /> +<hkern u1="b" u2=")" k="59" /> +<hkern u1="c" u2="™" k="35" /> +<hkern u1="c" u2="}" k="35" /> +<hkern u1="c" u2="x" k="23" /> +<hkern u1="c" u2="]" k="91" /> +<hkern u1="c" u2="\" k="89" /> +<hkern u1="c" u2="X" k="53" /> +<hkern u1="c" u2="W" k="107" /> +<hkern u1="c" u2="V" k="124" /> +<hkern u1="c" u2="T" k="48" /> +<hkern u1="c" u2="M" k="37" /> +<hkern u1="c" u2="H" k="47" /> +<hkern u1="c" u2="F" k="48" /> +<hkern u1="c" u2="E" k="48" /> +<hkern u1="c" u2="D" k="48" /> +<hkern u1="c" u2="C" k="14" /> +<hkern u1="c" u2="B" k="48" /> +<hkern u1="c" u2="/" k="61" /> +<hkern u1="c" u2=")" k="47" /> +<hkern u1="d" u2="J" k="-36" /> +<hkern u1="d" u2="&" k="-29" /> +<hkern u1="e" u2="™" k="100" /> +<hkern u1="e" u2="}" k="44" /> +<hkern u1="e" u2="x" k="20" /> +<hkern u1="e" u2="]" k="100" /> +<hkern u1="e" u2="\" k="98" /> +<hkern u1="e" u2="X" k="33" /> +<hkern u1="e" u2="W" k="120" /> +<hkern u1="e" u2="V" k="134" /> +<hkern u1="e" u2="T" k="54" /> +<hkern u1="e" u2="M" k="25" /> +<hkern u1="e" u2="H" k="34" /> +<hkern u1="e" u2="F" k="34" /> +<hkern u1="e" u2="E" k="34" /> +<hkern u1="e" u2="D" k="34" /> +<hkern u1="e" u2="B" k="34" /> +<hkern u1="e" u2="?" k="26" /> +<hkern u1="e" u2="/" k="70" /> +<hkern u1="e" u2="*" k="21" /> +<hkern u1="e" u2=")" k="57" /> +<hkern u1="f" u2="™" k="-135" /> +<hkern u1="f" u2="‹" k="23" /> +<hkern u1="f" u2="…" k="65" /> +<hkern u1="f" u2="„" k="65" /> +<hkern u1="f" u2="”" k="-114" /> +<hkern u1="f" u2="“" k="-55" /> +<hkern u1="f" u2="‚" k="65" /> +<hkern u1="f" u2="’" k="-114" /> +<hkern u1="f" u2="‘" k="-55" /> +<hkern u1="f" u2="—" k="46" /> +<hkern u1="f" u2="–" k="46" /> +<hkern u1="f" u2="Ÿ" k="-190" /> +<hkern u1="f" u2="œ" k="25" /> +<hkern u1="f" u2="ÿ" k="-15" /> +<hkern u1="f" u2="þ" k="-109" /> +<hkern u1="f" u2="ý" k="-15" /> +<hkern u1="f" u2="ø" k="25" /> +<hkern u1="f" u2="ö" k="25" /> +<hkern u1="f" u2="õ" k="25" /> +<hkern u1="f" u2="ô" k="25" /> +<hkern u1="f" u2="ó" k="25" /> +<hkern u1="f" u2="ò" k="25" /> +<hkern u1="f" u2="ð" k="17" /> +<hkern u1="f" u2="ï" k="-66" /> +<hkern u1="f" u2="î" k="-33" /> +<hkern u1="f" u2="ì" k="-75" /> +<hkern u1="f" u2="ë" k="25" /> +<hkern u1="f" u2="ê" k="25" /> +<hkern u1="f" u2="é" k="25" /> +<hkern u1="f" u2="è" k="25" /> +<hkern u1="f" u2="ç" k="25" /> +<hkern u1="f" u2="å" k="26" /> +<hkern u1="f" u2="ä" k="26" /> +<hkern u1="f" u2="ã" k="26" /> +<hkern u1="f" u2="â" k="26" /> +<hkern u1="f" u2="á" k="26" /> +<hkern u1="f" u2="à" k="26" /> +<hkern u1="f" u2="Þ" k="-76" /> +<hkern u1="f" u2="Ý" k="-190" /> +<hkern u1="f" u2="Ü" k="-121" /> +<hkern u1="f" u2="Û" k="-121" /> +<hkern u1="f" u2="Ú" k="-121" /> +<hkern u1="f" u2="Ù" k="-121" /> +<hkern u1="f" u2="Ñ" k="-76" /> +<hkern u1="f" u2="Ð" k="-76" /> +<hkern u1="f" u2="Ï" k="-76" /> +<hkern u1="f" u2="Î" k="-76" /> +<hkern u1="f" u2="Í" k="-76" /> +<hkern u1="f" u2="Ì" k="-76" /> +<hkern u1="f" u2="Ë" k="-76" /> +<hkern u1="f" u2="Ê" k="-76" /> +<hkern u1="f" u2="É" k="-76" /> +<hkern u1="f" u2="È" k="-76" /> +<hkern u1="f" u2="Å" k="63" /> +<hkern u1="f" u2="Ä" k="63" /> +<hkern u1="f" u2="Ã" k="63" /> +<hkern u1="f" u2="Â" k="63" /> +<hkern u1="f" u2="Á" k="63" /> +<hkern u1="f" u2="À" k="63" /> +<hkern u1="f" u2="­" k="46" /> +<hkern u1="f" u2="«" k="23" /> +<hkern u1="f" u2="}" k="-167" /> +<hkern u1="f" u2="|" k="-33" /> +<hkern u1="f" u2="y" k="-15" /> +<hkern u1="f" u2="q" k="23" /> +<hkern u1="f" u2="o" k="25" /> +<hkern u1="f" u2="l" k="-71" /> +<hkern u1="f" u2="k" k="-82" /> +<hkern u1="f" u2="h" k="-82" /> +<hkern u1="f" u2="g" k="23" /> +<hkern u1="f" u2="e" k="25" /> +<hkern u1="f" u2="d" k="23" /> +<hkern u1="f" u2="c" k="25" /> +<hkern u1="f" u2="b" k="-111" /> +<hkern u1="f" u2="a" k="26" /> +<hkern u1="f" u2="]" k="-163" /> +<hkern u1="f" u2="\" k="-142" /> +<hkern u1="f" u2="Z" k="-65" /> +<hkern u1="f" u2="Y" k="-190" /> +<hkern u1="f" u2="X" k="-172" /> +<hkern u1="f" u2="W" k="-174" /> +<hkern u1="f" u2="V" k="-183" /> +<hkern u1="f" u2="U" k="-121" /> +<hkern u1="f" u2="T" k="-128" /> +<hkern u1="f" u2="R" k="-76" /> +<hkern u1="f" u2="P" k="-76" /> +<hkern u1="f" u2="N" k="-76" /> +<hkern u1="f" u2="M" k="-54" /> +<hkern u1="f" u2="L" k="-76" /> +<hkern u1="f" u2="K" k="-76" /> +<hkern u1="f" u2="J" k="-33" /> +<hkern u1="f" u2="I" k="-76" /> +<hkern u1="f" u2="H" k="-76" /> +<hkern u1="f" u2="F" k="-77" /> +<hkern u1="f" u2="E" k="-77" /> +<hkern u1="f" u2="D" k="-77" /> +<hkern u1="f" u2="B" k="-77" /> +<hkern u1="f" u2="A" k="63" /> +<hkern u1="f" u2="/" k="57" /> +<hkern u1="f" u2="." k="65" /> +<hkern u1="f" u2="-" k="46" /> +<hkern u1="f" u2="," k="65" /> +<hkern u1="f" u2="*" k="-21" /> +<hkern u1="f" u2=")" k="-150" /> +<hkern u1="f" u2="'" k="-74" /> +<hkern u1="f" u2=""" k="-74" /> +<hkern u1="g" u2="™" k="30" /> +<hkern u1="g" u2="Ÿ" k="161" /> +<hkern u1="g" u2="Œ" k="10" /> +<hkern u1="g" u2="Þ" k="37" /> +<hkern u1="g" u2="Ý" k="161" /> +<hkern u1="g" u2="Ü" k="42" /> +<hkern u1="g" u2="Û" k="42" /> +<hkern u1="g" u2="Ú" k="42" /> +<hkern u1="g" u2="Ù" k="42" /> +<hkern u1="g" u2="Ø" k="10" /> +<hkern u1="g" u2="Ö" k="10" /> +<hkern u1="g" u2="Õ" k="10" /> +<hkern u1="g" u2="Ô" k="10" /> +<hkern u1="g" u2="Ó" k="10" /> +<hkern u1="g" u2="Ò" k="10" /> +<hkern u1="g" u2="Ñ" k="37" /> +<hkern u1="g" u2="Ð" k="37" /> +<hkern u1="g" u2="Ï" k="37" /> +<hkern u1="g" u2="Î" k="37" /> +<hkern u1="g" u2="Í" k="37" /> +<hkern u1="g" u2="Ì" k="37" /> +<hkern u1="g" u2="Ë" k="37" /> +<hkern u1="g" u2="Ê" k="37" /> +<hkern u1="g" u2="É" k="37" /> +<hkern u1="g" u2="È" k="37" /> +<hkern u1="g" u2="Ç" k="10" /> +<hkern u1="g" u2="Å" k="10" /> +<hkern u1="g" u2="Ä" k="10" /> +<hkern u1="g" u2="Ã" k="10" /> +<hkern u1="g" u2="Â" k="10" /> +<hkern u1="g" u2="Á" k="10" /> +<hkern u1="g" u2="À" k="10" /> +<hkern u1="g" u2="}" k="31" /> +<hkern u1="g" u2="]" k="40" /> +<hkern u1="g" u2="\" k="82" /> +<hkern u1="g" u2="Z" k="18" /> +<hkern u1="g" u2="Y" k="161" /> +<hkern u1="g" u2="X" k="11" /> +<hkern u1="g" u2="W" k="106" /> +<hkern u1="g" u2="V" k="118" /> +<hkern u1="g" u2="U" k="42" /> +<hkern u1="g" u2="T" k="28" /> +<hkern u1="g" u2="S" k="11" /> +<hkern u1="g" u2="R" k="37" /> +<hkern u1="g" u2="Q" k="10" /> +<hkern u1="g" u2="P" k="37" /> +<hkern u1="g" u2="O" k="10" /> +<hkern u1="g" u2="N" k="37" /> +<hkern u1="g" u2="M" k="33" /> +<hkern u1="g" u2="L" k="37" /> +<hkern u1="g" u2="K" k="37" /> +<hkern u1="g" u2="I" k="37" /> +<hkern u1="g" u2="H" k="37" /> +<hkern u1="g" u2="G" k="10" /> +<hkern u1="g" u2="F" k="37" /> +<hkern u1="g" u2="E" k="37" /> +<hkern u1="g" u2="D" k="37" /> +<hkern u1="g" u2="C" k="9" /> +<hkern u1="g" u2="B" k="38" /> +<hkern u1="g" u2="A" k="10" /> +<hkern u1="g" u2=")" k="33" /> +<hkern u1="h" u2="™" k="69" /> +<hkern u1="h" u2="”" k="67" /> +<hkern u1="h" u2="“" k="100" /> +<hkern u1="h" u2="’" k="67" /> +<hkern u1="h" u2="‘" k="100" /> +<hkern u1="h" u2="Ÿ" k="173" /> +<hkern u1="h" u2="Ý" k="173" /> +<hkern u1="h" u2="Ü" k="48" /> +<hkern u1="h" u2="Û" k="48" /> +<hkern u1="h" u2="Ú" k="48" /> +<hkern u1="h" u2="Ù" k="48" /> +<hkern u1="h" u2="]" k="69" /> +<hkern u1="h" u2="\" k="115" /> +<hkern u1="h" u2="Y" k="173" /> +<hkern u1="h" u2="W" k="117" /> +<hkern u1="h" u2="V" k="133" /> +<hkern u1="h" u2="U" k="48" /> +<hkern u1="h" u2="T" k="83" /> +<hkern u1="h" u2="J" k="-11" /> +<hkern u1="h" u2="?" k="23" /> +<hkern u1="h" u2="7" k="100" /> +<hkern u1="h" u2="/" k="22" /> +<hkern u1="h" u2="*" k="45" /> +<hkern u1="h" u2=")" k="28" /> +<hkern u1="h" u2="'" k="62" /> +<hkern u1="h" u2=""" k="62" /> +<hkern u1="i" u2="W" k="30" /> +<hkern u1="i" u2="V" k="28" /> +<hkern u1="i" u2="T" k="28" /> +<hkern u1="i" u2="J" k="-14" /> +<hkern u1="i" u2="/" k="20" /> +<hkern u1="i" u2="*" k="23" /> +<hkern u1="j" u2="Ÿ" k="19" /> +<hkern u1="j" u2="Œ" k="11" /> +<hkern u1="j" u2="Þ" k="29" /> +<hkern u1="j" u2="Ý" k="19" /> +<hkern u1="j" u2="Ü" k="27" /> +<hkern u1="j" u2="Û" k="27" /> +<hkern u1="j" u2="Ú" k="27" /> +<hkern u1="j" u2="Ù" k="27" /> +<hkern u1="j" u2="Ø" k="11" /> +<hkern u1="j" u2="Ö" k="11" /> +<hkern u1="j" u2="Õ" k="11" /> +<hkern u1="j" u2="Ô" k="11" /> +<hkern u1="j" u2="Ó" k="11" /> +<hkern u1="j" u2="Ò" k="11" /> +<hkern u1="j" u2="Ñ" k="29" /> +<hkern u1="j" u2="Ð" k="29" /> +<hkern u1="j" u2="Ï" k="29" /> +<hkern u1="j" u2="Î" k="29" /> +<hkern u1="j" u2="Í" k="29" /> +<hkern u1="j" u2="Ì" k="29" /> +<hkern u1="j" u2="Ë" k="29" /> +<hkern u1="j" u2="Ê" k="29" /> +<hkern u1="j" u2="É" k="29" /> +<hkern u1="j" u2="È" k="29" /> +<hkern u1="j" u2="Ç" k="11" /> +<hkern u1="j" u2="Å" k="10" /> +<hkern u1="j" u2="Ä" k="10" /> +<hkern u1="j" u2="Ã" k="10" /> +<hkern u1="j" u2="Â" k="10" /> +<hkern u1="j" u2="Á" k="10" /> +<hkern u1="j" u2="À" k="10" /> +<hkern u1="j" u2="Z" k="12" /> +<hkern u1="j" u2="Y" k="19" /> +<hkern u1="j" u2="W" k="16" /> +<hkern u1="j" u2="V" k="15" /> +<hkern u1="j" u2="U" k="27" /> +<hkern u1="j" u2="T" k="15" /> +<hkern u1="j" u2="S" k="13" /> +<hkern u1="j" u2="R" k="29" /> +<hkern u1="j" u2="Q" k="11" /> +<hkern u1="j" u2="P" k="29" /> +<hkern u1="j" u2="O" k="11" /> +<hkern u1="j" u2="N" k="29" /> +<hkern u1="j" u2="M" k="26" /> +<hkern u1="j" u2="L" k="29" /> +<hkern u1="j" u2="K" k="29" /> +<hkern u1="j" u2="I" k="29" /> +<hkern u1="j" u2="H" k="29" /> +<hkern u1="j" u2="G" k="11" /> +<hkern u1="j" u2="F" k="29" /> +<hkern u1="j" u2="E" k="29" /> +<hkern u1="j" u2="D" k="28" /> +<hkern u1="j" u2="C" k="10" /> +<hkern u1="j" u2="B" k="28" /> +<hkern u1="j" u2="A" k="10" /> +<hkern u1="k" u2="™" k="61" /> +<hkern u1="k" u2="”" k="49" /> +<hkern u1="k" u2="“" k="47" /> +<hkern u1="k" u2="’" k="49" /> +<hkern u1="k" u2="‘" k="47" /> +<hkern u1="k" u2="Ÿ" k="204" /> +<hkern u1="k" u2="œ" k="8" /> +<hkern u1="k" u2="Œ" k="29" /> +<hkern u1="k" u2="ø" k="8" /> +<hkern u1="k" u2="ö" k="8" /> +<hkern u1="k" u2="õ" k="8" /> +<hkern u1="k" u2="ô" k="8" /> +<hkern u1="k" u2="ó" k="8" /> +<hkern u1="k" u2="ò" k="8" /> +<hkern u1="k" u2="ë" k="8" /> +<hkern u1="k" u2="ê" k="8" /> +<hkern u1="k" u2="é" k="8" /> +<hkern u1="k" u2="è" k="8" /> +<hkern u1="k" u2="ç" k="8" /> +<hkern u1="k" u2="Þ" k="23" /> +<hkern u1="k" u2="Ý" k="204" /> +<hkern u1="k" u2="Ü" k="59" /> +<hkern u1="k" u2="Û" k="59" /> +<hkern u1="k" u2="Ú" k="59" /> +<hkern u1="k" u2="Ù" k="59" /> +<hkern u1="k" u2="Ø" k="29" /> +<hkern u1="k" u2="Ö" k="29" /> +<hkern u1="k" u2="Õ" k="29" /> +<hkern u1="k" u2="Ô" k="29" /> +<hkern u1="k" u2="Ó" k="29" /> +<hkern u1="k" u2="Ò" k="29" /> +<hkern u1="k" u2="Ñ" k="23" /> +<hkern u1="k" u2="Ð" k="23" /> +<hkern u1="k" u2="Ï" k="23" /> +<hkern u1="k" u2="Î" k="23" /> +<hkern u1="k" u2="Í" k="23" /> +<hkern u1="k" u2="Ì" k="23" /> +<hkern u1="k" u2="Ë" k="23" /> +<hkern u1="k" u2="Ê" k="23" /> +<hkern u1="k" u2="É" k="23" /> +<hkern u1="k" u2="È" k="23" /> +<hkern u1="k" u2="Ç" k="29" /> +<hkern u1="k" u2="}" k="32" /> +<hkern u1="k" u2="x" k="19" /> +<hkern u1="k" u2="o" k="8" /> +<hkern u1="k" u2="e" k="8" /> +<hkern u1="k" u2="c" k="8" /> +<hkern u1="k" u2="]" k="84" /> +<hkern u1="k" u2="\" k="96" /> +<hkern u1="k" u2="Y" k="204" /> +<hkern u1="k" u2="W" k="149" /> +<hkern u1="k" u2="V" k="167" /> +<hkern u1="k" u2="U" k="59" /> +<hkern u1="k" u2="T" k="66" /> +<hkern u1="k" u2="R" k="23" /> +<hkern u1="k" u2="Q" k="29" /> +<hkern u1="k" u2="P" k="23" /> +<hkern u1="k" u2="O" k="29" /> +<hkern u1="k" u2="N" k="23" /> +<hkern u1="k" u2="M" k="14" /> +<hkern u1="k" u2="L" k="23" /> +<hkern u1="k" u2="K" k="23" /> +<hkern u1="k" u2="I" k="23" /> +<hkern u1="k" u2="H" k="23" /> +<hkern u1="k" u2="G" k="29" /> +<hkern u1="k" u2="F" k="23" /> +<hkern u1="k" u2="E" k="23" /> +<hkern u1="k" u2="D" k="23" /> +<hkern u1="k" u2="C" k="28" /> +<hkern u1="k" u2="B" k="23" /> +<hkern u1="k" u2="?" k="27" /> +<hkern u1="k" u2="/" k="39" /> +<hkern u1="k" u2="*" k="38" /> +<hkern u1="k" u2=")" k="41" /> +<hkern u1="k" u2="'" k="45" /> +<hkern u1="k" u2=""" k="45" /> +<hkern u1="l" u2="·" k="130" /> +<hkern u1="l" u2="W" k="22" /> +<hkern u1="l" u2="V" k="20" /> +<hkern u1="l" u2="T" k="14" /> +<hkern u1="l" u2="J" k="-19" /> +<hkern u1="m" u2="™" k="54" /> +<hkern u1="m" u2="”" k="41" /> +<hkern u1="m" u2="“" k="40" /> +<hkern u1="m" u2="’" k="41" /> +<hkern u1="m" u2="‘" k="40" /> +<hkern u1="m" u2="Ÿ" k="172" /> +<hkern u1="m" u2="Ý" k="172" /> +<hkern u1="m" u2="Ü" k="47" /> +<hkern u1="m" u2="Û" k="47" /> +<hkern u1="m" u2="Ú" k="47" /> +<hkern u1="m" u2="Ù" k="47" /> +<hkern u1="m" u2="]" k="75" /> +<hkern u1="m" u2="\" k="119" /> +<hkern u1="m" u2="Y" k="172" /> +<hkern u1="m" u2="W" k="116" /> +<hkern u1="m" u2="V" k="133" /> +<hkern u1="m" u2="U" k="47" /> +<hkern u1="m" u2="T" k="83" /> +<hkern u1="m" u2="J" k="-11" /> +<hkern u1="m" u2="?" k="20" /> +<hkern u1="m" u2="/" k="25" /> +<hkern u1="m" u2="*" k="33" /> +<hkern u1="m" u2=")" k="32" /> +<hkern u1="m" u2="'" k="36" /> +<hkern u1="m" u2=""" k="36" /> +<hkern u1="n" u2="™" k="55" /> +<hkern u1="n" u2="”" k="43" /> +<hkern u1="n" u2="“" k="42" /> +<hkern u1="n" u2="’" k="43" /> +<hkern u1="n" u2="‘" k="42" /> +<hkern u1="n" u2="Ÿ" k="172" /> +<hkern u1="n" u2="Ý" k="172" /> +<hkern u1="n" u2="Ü" k="46" /> +<hkern u1="n" u2="Û" k="46" /> +<hkern u1="n" u2="Ú" k="46" /> +<hkern u1="n" u2="Ù" k="46" /> +<hkern u1="n" u2="]" k="73" /> +<hkern u1="n" u2="\" k="119" /> +<hkern u1="n" u2="Y" k="172" /> +<hkern u1="n" u2="W" k="117" /> +<hkern u1="n" u2="V" k="134" /> +<hkern u1="n" u2="U" k="46" /> +<hkern u1="n" u2="T" k="82" /> +<hkern u1="n" u2="J" k="-12" /> +<hkern u1="n" u2="/" k="24" /> +<hkern u1="n" u2="*" k="34" /> +<hkern u1="n" u2=")" k="31" /> +<hkern u1="n" u2="'" k="37" /> +<hkern u1="n" u2=""" k="37" /> +<hkern u1="o" u2="™" k="40" /> +<hkern u1="o" u2="}" k="51" /> +<hkern u1="o" u2="x" k="22" /> +<hkern u1="o" u2="]" k="105" /> +<hkern u1="o" u2="\" k="114" /> +<hkern u1="o" u2="X" k="84" /> +<hkern u1="o" u2="W" k="124" /> +<hkern u1="o" u2="V" k="146" /> +<hkern u1="o" u2="T" k="103" /> +<hkern u1="o" u2="M" k="39" /> +<hkern u1="o" u2="J" k="9" /> +<hkern u1="o" u2="H" k="47" /> +<hkern u1="o" u2="F" k="47" /> +<hkern u1="o" u2="E" k="47" /> +<hkern u1="o" u2="D" k="47" /> +<hkern u1="o" u2="B" k="47" /> +<hkern u1="o" u2="?" k="31" /> +<hkern u1="o" u2="/" k="90" /> +<hkern u1="o" u2="*" k="19" /> +<hkern u1="o" u2=")" k="120" /> +<hkern u1="p" u2="™" k="35" /> +<hkern u1="p" u2="”" k="27" /> +<hkern u1="p" u2="“" k="27" /> +<hkern u1="p" u2="’" k="27" /> +<hkern u1="p" u2="‘" k="27" /> +<hkern u1="p" u2="Ÿ" k="174" /> +<hkern u1="p" u2="Þ" k="46" /> +<hkern u1="p" u2="Ý" k="174" /> +<hkern u1="p" u2="Ü" k="42" /> +<hkern u1="p" u2="Û" k="42" /> +<hkern u1="p" u2="Ú" k="42" /> +<hkern u1="p" u2="Ù" k="42" /> +<hkern u1="p" u2="Ñ" k="46" /> +<hkern u1="p" u2="Ð" k="46" /> +<hkern u1="p" u2="Ï" k="46" /> +<hkern u1="p" u2="Î" k="46" /> +<hkern u1="p" u2="Í" k="46" /> +<hkern u1="p" u2="Ì" k="46" /> +<hkern u1="p" u2="Ë" k="46" /> +<hkern u1="p" u2="Ê" k="46" /> +<hkern u1="p" u2="É" k="46" /> +<hkern u1="p" u2="È" k="46" /> +<hkern u1="p" u2="Å" k="31" /> +<hkern u1="p" u2="Ä" k="31" /> +<hkern u1="p" u2="Ã" k="31" /> +<hkern u1="p" u2="Â" k="31" /> +<hkern u1="p" u2="Á" k="31" /> +<hkern u1="p" u2="À" k="31" /> +<hkern u1="p" u2="}" k="49" /> +<hkern u1="p" u2="x" k="19" /> +<hkern u1="p" u2="]" k="99" /> +<hkern u1="p" u2="\" k="104" /> +<hkern u1="p" u2="Z" k="38" /> +<hkern u1="p" u2="Y" k="174" /> +<hkern u1="p" u2="X" k="75" /> +<hkern u1="p" u2="W" k="121" /> +<hkern u1="p" u2="V" k="140" /> +<hkern u1="p" u2="U" k="42" /> +<hkern u1="p" u2="T" k="76" /> +<hkern u1="p" u2="S" k="12" /> +<hkern u1="p" u2="R" k="46" /> +<hkern u1="p" u2="P" k="46" /> +<hkern u1="p" u2="N" k="46" /> +<hkern u1="p" u2="M" k="41" /> +<hkern u1="p" u2="L" k="46" /> +<hkern u1="p" u2="K" k="46" /> +<hkern u1="p" u2="J" k="15" /> +<hkern u1="p" u2="I" k="46" /> +<hkern u1="p" u2="H" k="46" /> +<hkern u1="p" u2="F" k="46" /> +<hkern u1="p" u2="E" k="46" /> +<hkern u1="p" u2="D" k="46" /> +<hkern u1="p" u2="B" k="46" /> +<hkern u1="p" u2="A" k="31" /> +<hkern u1="p" u2="?" k="25" /> +<hkern u1="p" u2="/" k="88" /> +<hkern u1="p" u2=")" k="62" /> +<hkern u1="p" u2="'" k="21" /> +<hkern u1="p" u2=""" k="21" /> +<hkern u1="q" u2="™" k="25" /> +<hkern u1="q" u2="Ÿ" k="158" /> +<hkern u1="q" u2="Œ" k="9" /> +<hkern u1="q" u2="Þ" k="37" /> +<hkern u1="q" u2="Ý" k="158" /> +<hkern u1="q" u2="Ü" k="42" /> +<hkern u1="q" u2="Û" k="42" /> +<hkern u1="q" u2="Ú" k="42" /> +<hkern u1="q" u2="Ù" k="42" /> +<hkern u1="q" u2="Ø" k="9" /> +<hkern u1="q" u2="Ö" k="9" /> +<hkern u1="q" u2="Õ" k="9" /> +<hkern u1="q" u2="Ô" k="9" /> +<hkern u1="q" u2="Ó" k="9" /> +<hkern u1="q" u2="Ò" k="9" /> +<hkern u1="q" u2="Ñ" k="37" /> +<hkern u1="q" u2="Ð" k="37" /> +<hkern u1="q" u2="Ï" k="37" /> +<hkern u1="q" u2="Î" k="37" /> +<hkern u1="q" u2="Í" k="37" /> +<hkern u1="q" u2="Ì" k="37" /> +<hkern u1="q" u2="Ë" k="37" /> +<hkern u1="q" u2="Ê" k="37" /> +<hkern u1="q" u2="É" k="37" /> +<hkern u1="q" u2="È" k="37" /> +<hkern u1="q" u2="Ç" k="9" /> +<hkern u1="q" u2="Å" k="11" /> +<hkern u1="q" u2="Ä" k="11" /> +<hkern u1="q" u2="Ã" k="11" /> +<hkern u1="q" u2="Â" k="11" /> +<hkern u1="q" u2="Á" k="11" /> +<hkern u1="q" u2="À" k="11" /> +<hkern u1="q" u2="}" k="-18" /> +<hkern u1="q" u2="j" k="-181" /> +<hkern u1="q" u2="]" k="-28" /> +<hkern u1="q" u2="\" k="77" /> +<hkern u1="q" u2="Z" k="17" /> +<hkern u1="q" u2="Y" k="158" /> +<hkern u1="q" u2="X" k="14" /> +<hkern u1="q" u2="W" k="99" /> +<hkern u1="q" u2="V" k="103" /> +<hkern u1="q" u2="U" k="42" /> +<hkern u1="q" u2="T" k="21" /> +<hkern u1="q" u2="S" k="11" /> +<hkern u1="q" u2="R" k="37" /> +<hkern u1="q" u2="Q" k="9" /> +<hkern u1="q" u2="P" k="37" /> +<hkern u1="q" u2="O" k="9" /> +<hkern u1="q" u2="N" k="37" /> +<hkern u1="q" u2="M" k="33" /> +<hkern u1="q" u2="L" k="37" /> +<hkern u1="q" u2="K" k="37" /> +<hkern u1="q" u2="I" k="37" /> +<hkern u1="q" u2="H" k="37" /> +<hkern u1="q" u2="G" k="9" /> +<hkern u1="q" u2="F" k="37" /> +<hkern u1="q" u2="E" k="37" /> +<hkern u1="q" u2="D" k="37" /> +<hkern u1="q" u2="C" k="9" /> +<hkern u1="q" u2="B" k="37" /> +<hkern u1="q" u2="A" k="11" /> +<hkern u1="q" u2="/" k="-18" /> +<hkern u1="r" u2="™" k="20" /> +<hkern u1="r" u2="‹" k="39" /> +<hkern u1="r" u2="…" k="135" /> +<hkern u1="r" u2="„" k="135" /> +<hkern u1="r" u2="‚" k="135" /> +<hkern u1="r" u2="—" k="27" /> +<hkern u1="r" u2="–" k="27" /> +<hkern u1="r" u2="Ÿ" k="112" /> +<hkern u1="r" u2="œ" k="20" /> +<hkern u1="r" u2="ÿ" k="-26" /> +<hkern u1="r" u2="þ" k="8" /> +<hkern u1="r" u2="ý" k="-26" /> +<hkern u1="r" u2="ø" k="20" /> +<hkern u1="r" u2="ö" k="20" /> +<hkern u1="r" u2="õ" k="20" /> +<hkern u1="r" u2="ô" k="20" /> +<hkern u1="r" u2="ó" k="20" /> +<hkern u1="r" u2="ò" k="20" /> +<hkern u1="r" u2="ð" k="20" /> +<hkern u1="r" u2="ë" k="20" /> +<hkern u1="r" u2="ê" k="20" /> +<hkern u1="r" u2="é" k="20" /> +<hkern u1="r" u2="è" k="20" /> +<hkern u1="r" u2="ç" k="20" /> +<hkern u1="r" u2="æ" k="10" /> +<hkern u1="r" u2="å" k="33" /> +<hkern u1="r" u2="ä" k="33" /> +<hkern u1="r" u2="ã" k="33" /> +<hkern u1="r" u2="â" k="33" /> +<hkern u1="r" u2="á" k="33" /> +<hkern u1="r" u2="à" k="33" /> +<hkern u1="r" u2="Þ" k="50" /> +<hkern u1="r" u2="Ý" k="112" /> +<hkern u1="r" u2="Ü" k="30" /> +<hkern u1="r" u2="Û" k="30" /> +<hkern u1="r" u2="Ú" k="30" /> +<hkern u1="r" u2="Ù" k="30" /> +<hkern u1="r" u2="Ñ" k="50" /> +<hkern u1="r" u2="Ð" k="50" /> +<hkern u1="r" u2="Ï" k="50" /> +<hkern u1="r" u2="Î" k="50" /> +<hkern u1="r" u2="Í" k="50" /> +<hkern u1="r" u2="Ì" k="50" /> +<hkern u1="r" u2="Ë" k="50" /> +<hkern u1="r" u2="Ê" k="50" /> +<hkern u1="r" u2="É" k="50" /> +<hkern u1="r" u2="È" k="50" /> +<hkern u1="r" u2="Å" k="115" /> +<hkern u1="r" u2="Ä" k="115" /> +<hkern u1="r" u2="Ã" k="115" /> +<hkern u1="r" u2="Â" k="115" /> +<hkern u1="r" u2="Á" k="115" /> +<hkern u1="r" u2="À" k="115" /> +<hkern u1="r" u2="­" k="27" /> +<hkern u1="r" u2="«" k="40" /> +<hkern u1="r" u2="}" k="46" /> +<hkern u1="r" u2="y" k="-26" /> +<hkern u1="r" u2="s" k="8" /> +<hkern u1="r" u2="q" k="28" /> +<hkern u1="r" u2="o" k="20" /> +<hkern u1="r" u2="l" k="9" /> +<hkern u1="r" u2="k" k="8" /> +<hkern u1="r" u2="h" k="8" /> +<hkern u1="r" u2="g" k="28" /> +<hkern u1="r" u2="e" k="20" /> +<hkern u1="r" u2="d" k="28" /> +<hkern u1="r" u2="c" k="20" /> +<hkern u1="r" u2="a" k="33" /> +<hkern u1="r" u2="]" k="105" /> +<hkern u1="r" u2="\" k="53" /> +<hkern u1="r" u2="Z" k="16" /> +<hkern u1="r" u2="Y" k="112" /> +<hkern u1="r" u2="X" k="94" /> +<hkern u1="r" u2="W" k="53" /> +<hkern u1="r" u2="V" k="56" /> +<hkern u1="r" u2="U" k="30" /> +<hkern u1="r" u2="S" k="15" /> +<hkern u1="r" u2="R" k="50" /> +<hkern u1="r" u2="P" k="50" /> +<hkern u1="r" u2="N" k="50" /> +<hkern u1="r" u2="M" k="53" /> +<hkern u1="r" u2="L" k="50" /> +<hkern u1="r" u2="K" k="50" /> +<hkern u1="r" u2="J" k="88" /> +<hkern u1="r" u2="I" k="50" /> +<hkern u1="r" u2="H" k="50" /> +<hkern u1="r" u2="F" k="51" /> +<hkern u1="r" u2="E" k="51" /> +<hkern u1="r" u2="D" k="50" /> +<hkern u1="r" u2="B" k="50" /> +<hkern u1="r" u2="A" k="115" /> +<hkern u1="r" u2="/" k="167" /> +<hkern u1="r" u2="." k="135" /> +<hkern u1="r" u2="-" k="27" /> +<hkern u1="r" u2="," k="135" /> +<hkern u1="r" u2=")" k="52" /> +<hkern u1="s" u2="™" k="44" /> +<hkern u1="s" u2="}" k="43" /> +<hkern u1="s" u2="x" k="11" /> +<hkern u1="s" u2="]" k="99" /> +<hkern u1="s" u2="\" k="97" /> +<hkern u1="s" u2="W" k="103" /> +<hkern u1="s" u2="V" k="110" /> +<hkern u1="s" u2="T" k="53" /> +<hkern u1="s" u2="M" k="21" /> +<hkern u1="s" u2="H" k="29" /> +<hkern u1="s" u2="F" k="29" /> +<hkern u1="s" u2="E" k="29" /> +<hkern u1="s" u2="D" k="28" /> +<hkern u1="s" u2="B" k="28" /> +<hkern u1="s" u2="?" k="23" /> +<hkern u1="s" u2="/" k="62" /> +<hkern u1="s" u2="*" k="22" /> +<hkern u1="s" u2=")" k="55" /> +<hkern u1="t" u2="Ÿ" k="72" /> +<hkern u1="t" u2="Ý" k="72" /> +<hkern u1="t" u2="Ü" k="13" /> +<hkern u1="t" u2="Û" k="13" /> +<hkern u1="t" u2="Ú" k="13" /> +<hkern u1="t" u2="Ù" k="13" /> +<hkern u1="t" u2="}" k="25" /> +<hkern u1="t" u2="]" k="70" /> +<hkern u1="t" u2="\" k="41" /> +<hkern u1="t" u2="Y" k="72" /> +<hkern u1="t" u2="W" k="36" /> +<hkern u1="t" u2="V" k="37" /> +<hkern u1="t" u2="U" k="13" /> +<hkern u1="t" u2="F" k="9" /> +<hkern u1="t" u2="E" k="9" /> +<hkern u1="t" u2="D" k="9" /> +<hkern u1="t" u2="B" k="9" /> +<hkern u1="t" u2="/" k="52" /> +<hkern u1="t" u2=")" k="29" /> +<hkern u1="u" u2="™" k="20" /> +<hkern u1="u" u2="]" k="54" /> +<hkern u1="u" u2="\" k="80" /> +<hkern u1="u" u2="W" k="80" /> +<hkern u1="u" u2="V" k="95" /> +<hkern u1="u" u2="T" k="51" /> +<hkern u1="u" u2="J" k="-23" /> +<hkern u1="u" u2="&" k="-14" /> +<hkern u1="v" u2="™" k="100" /> +<hkern u1="v" u2="…" k="23" /> +<hkern u1="v" u2="„" k="23" /> +<hkern u1="v" u2="”" k="20" /> +<hkern u1="v" u2="“" k="19" /> +<hkern u1="v" u2="‚" k="23" /> +<hkern u1="v" u2="’" k="20" /> +<hkern u1="v" u2="‘" k="19" /> +<hkern u1="v" u2="Ÿ" k="177" /> +<hkern u1="v" u2="Þ" k="49" /> +<hkern u1="v" u2="Ý" k="177" /> +<hkern u1="v" u2="Ü" k="41" /> +<hkern u1="v" u2="Û" k="41" /> +<hkern u1="v" u2="Ú" k="41" /> +<hkern u1="v" u2="Ù" k="41" /> +<hkern u1="v" u2="Ñ" k="49" /> +<hkern u1="v" u2="Ð" k="49" /> +<hkern u1="v" u2="Ï" k="49" /> +<hkern u1="v" u2="Î" k="49" /> +<hkern u1="v" u2="Í" k="49" /> +<hkern u1="v" u2="Ì" k="49" /> +<hkern u1="v" u2="Ë" k="49" /> +<hkern u1="v" u2="Ê" k="49" /> +<hkern u1="v" u2="É" k="49" /> +<hkern u1="v" u2="È" k="49" /> +<hkern u1="v" u2="Å" k="42" /> +<hkern u1="v" u2="Ä" k="42" /> +<hkern u1="v" u2="Ã" k="42" /> +<hkern u1="v" u2="Â" k="42" /> +<hkern u1="v" u2="Á" k="42" /> +<hkern u1="v" u2="À" k="42" /> +<hkern u1="v" u2="}" k="49" /> +<hkern u1="v" u2="x" k="17" /> +<hkern u1="v" u2="]" k="105" /> +<hkern u1="v" u2="\" k="95" /> +<hkern u1="v" u2="Z" k="42" /> +<hkern u1="v" u2="Y" k="177" /> +<hkern u1="v" u2="X" k="80" /> +<hkern u1="v" u2="W" k="109" /> +<hkern u1="v" u2="V" k="125" /> +<hkern u1="v" u2="U" k="41" /> +<hkern u1="v" u2="T" k="59" /> +<hkern u1="v" u2="S" k="14" /> +<hkern u1="v" u2="R" k="49" /> +<hkern u1="v" u2="P" k="49" /> +<hkern u1="v" u2="N" k="49" /> +<hkern u1="v" u2="M" k="44" /> +<hkern u1="v" u2="L" k="49" /> +<hkern u1="v" u2="K" k="49" /> +<hkern u1="v" u2="J" k="31" /> +<hkern u1="v" u2="I" k="49" /> +<hkern u1="v" u2="H" k="49" /> +<hkern u1="v" u2="F" k="48" /> +<hkern u1="v" u2="E" k="48" /> +<hkern u1="v" u2="D" k="48" /> +<hkern u1="v" u2="B" k="49" /> +<hkern u1="v" u2="A" k="42" /> +<hkern u1="v" u2="?" k="22" /> +<hkern u1="v" u2="/" k="104" /> +<hkern u1="v" u2="." k="23" /> +<hkern u1="v" u2="," k="23" /> +<hkern u1="v" u2=")" k="63" /> +<hkern u1="w" u2="™" k="32" /> +<hkern u1="w" u2="…" k="22" /> +<hkern u1="w" u2="„" k="22" /> +<hkern u1="w" u2="”" k="20" /> +<hkern u1="w" u2="“" k="19" /> +<hkern u1="w" u2="‚" k="22" /> +<hkern u1="w" u2="’" k="20" /> +<hkern u1="w" u2="‘" k="19" /> +<hkern u1="w" u2="Ÿ" k="176" /> +<hkern u1="w" u2="Þ" k="48" /> +<hkern u1="w" u2="Ý" k="176" /> +<hkern u1="w" u2="Ü" k="41" /> +<hkern u1="w" u2="Û" k="41" /> +<hkern u1="w" u2="Ú" k="41" /> +<hkern u1="w" u2="Ù" k="41" /> +<hkern u1="w" u2="Ñ" k="48" /> +<hkern u1="w" u2="Ð" k="48" /> +<hkern u1="w" u2="Ï" k="48" /> +<hkern u1="w" u2="Î" k="48" /> +<hkern u1="w" u2="Í" k="48" /> +<hkern u1="w" u2="Ì" k="48" /> +<hkern u1="w" u2="Ë" k="48" /> +<hkern u1="w" u2="Ê" k="48" /> +<hkern u1="w" u2="É" k="48" /> +<hkern u1="w" u2="È" k="48" /> +<hkern u1="w" u2="Å" k="41" /> +<hkern u1="w" u2="Ä" k="41" /> +<hkern u1="w" u2="Ã" k="41" /> +<hkern u1="w" u2="Â" k="41" /> +<hkern u1="w" u2="Á" k="41" /> +<hkern u1="w" u2="À" k="41" /> +<hkern u1="w" u2="}" k="49" /> +<hkern u1="w" u2="x" k="17" /> +<hkern u1="w" u2="]" k="105" /> +<hkern u1="w" u2="\" k="95" /> +<hkern u1="w" u2="Z" k="41" /> +<hkern u1="w" u2="Y" k="176" /> +<hkern u1="w" u2="X" k="79" /> +<hkern u1="w" u2="W" k="109" /> +<hkern u1="w" u2="V" k="125" /> +<hkern u1="w" u2="U" k="41" /> +<hkern u1="w" u2="T" k="59" /> +<hkern u1="w" u2="S" k="14" /> +<hkern u1="w" u2="R" k="48" /> +<hkern u1="w" u2="P" k="48" /> +<hkern u1="w" u2="N" k="48" /> +<hkern u1="w" u2="M" k="44" /> +<hkern u1="w" u2="L" k="48" /> +<hkern u1="w" u2="K" k="48" /> +<hkern u1="w" u2="J" k="29" /> +<hkern u1="w" u2="I" k="48" /> +<hkern u1="w" u2="H" k="48" /> +<hkern u1="w" u2="F" k="48" /> +<hkern u1="w" u2="E" k="48" /> +<hkern u1="w" u2="D" k="48" /> +<hkern u1="w" u2="B" k="48" /> +<hkern u1="w" u2="A" k="41" /> +<hkern u1="w" u2="?" k="22" /> +<hkern u1="w" u2="/" k="103" /> +<hkern u1="w" u2="." k="22" /> +<hkern u1="w" u2="," k="22" /> +<hkern u1="w" u2=")" k="63" /> +<hkern u1="x" u2="™" k="50" /> +<hkern u1="x" u2="—" k="17" /> +<hkern u1="x" u2="–" k="17" /> +<hkern u1="x" u2="Ÿ" k="152" /> +<hkern u1="x" u2="œ" k="26" /> +<hkern u1="x" u2="Œ" k="42" /> +<hkern u1="x" u2="ø" k="26" /> +<hkern u1="x" u2="ö" k="26" /> +<hkern u1="x" u2="õ" k="26" /> +<hkern u1="x" u2="ô" k="26" /> +<hkern u1="x" u2="ó" k="26" /> +<hkern u1="x" u2="ò" k="26" /> +<hkern u1="x" u2="ð" k="25" /> +<hkern u1="x" u2="ë" k="26" /> +<hkern u1="x" u2="ê" k="26" /> +<hkern u1="x" u2="é" k="26" /> +<hkern u1="x" u2="è" k="26" /> +<hkern u1="x" u2="ç" k="26" /> +<hkern u1="x" u2="å" k="18" /> +<hkern u1="x" u2="ä" k="18" /> +<hkern u1="x" u2="ã" k="18" /> +<hkern u1="x" u2="â" k="18" /> +<hkern u1="x" u2="á" k="18" /> +<hkern u1="x" u2="à" k="18" /> +<hkern u1="x" u2="Þ" k="24" /> +<hkern u1="x" u2="Ý" k="152" /> +<hkern u1="x" u2="Ü" k="27" /> +<hkern u1="x" u2="Û" k="27" /> +<hkern u1="x" u2="Ú" k="27" /> +<hkern u1="x" u2="Ù" k="27" /> +<hkern u1="x" u2="Ø" k="42" /> +<hkern u1="x" u2="Ö" k="42" /> +<hkern u1="x" u2="Õ" k="42" /> +<hkern u1="x" u2="Ô" k="42" /> +<hkern u1="x" u2="Ó" k="42" /> +<hkern u1="x" u2="Ò" k="42" /> +<hkern u1="x" u2="Ñ" k="24" /> +<hkern u1="x" u2="Ð" k="24" /> +<hkern u1="x" u2="Ï" k="24" /> +<hkern u1="x" u2="Î" k="24" /> +<hkern u1="x" u2="Í" k="24" /> +<hkern u1="x" u2="Ì" k="24" /> +<hkern u1="x" u2="Ë" k="24" /> +<hkern u1="x" u2="Ê" k="24" /> +<hkern u1="x" u2="É" k="24" /> +<hkern u1="x" u2="È" k="24" /> +<hkern u1="x" u2="Ç" k="42" /> +<hkern u1="x" u2="­" k="17" /> +<hkern u1="x" u2="}" k="20" /> +<hkern u1="x" u2="x" k="10" /> +<hkern u1="x" u2="q" k="20" /> +<hkern u1="x" u2="o" k="26" /> +<hkern u1="x" u2="g" k="20" /> +<hkern u1="x" u2="e" k="26" /> +<hkern u1="x" u2="d" k="20" /> +<hkern u1="x" u2="c" k="26" /> +<hkern u1="x" u2="a" k="18" /> +<hkern u1="x" u2="]" k="75" /> +<hkern u1="x" u2="\" k="53" /> +<hkern u1="x" u2="Y" k="152" /> +<hkern u1="x" u2="W" k="81" /> +<hkern u1="x" u2="V" k="84" /> +<hkern u1="x" u2="U" k="27" /> +<hkern u1="x" u2="R" k="24" /> +<hkern u1="x" u2="Q" k="42" /> +<hkern u1="x" u2="P" k="24" /> +<hkern u1="x" u2="O" k="42" /> +<hkern u1="x" u2="N" k="24" /> +<hkern u1="x" u2="M" k="16" /> +<hkern u1="x" u2="L" k="24" /> +<hkern u1="x" u2="K" k="24" /> +<hkern u1="x" u2="I" k="24" /> +<hkern u1="x" u2="H" k="24" /> +<hkern u1="x" u2="G" k="42" /> +<hkern u1="x" u2="F" k="24" /> +<hkern u1="x" u2="E" k="24" /> +<hkern u1="x" u2="D" k="24" /> +<hkern u1="x" u2="C" k="42" /> +<hkern u1="x" u2="B" k="24" /> +<hkern u1="x" u2="/" k="34" /> +<hkern u1="x" u2="-" k="17" /> +<hkern u1="x" u2=")" k="35" /> +<hkern u1="y" u2="™" k="29" /> +<hkern u1="y" u2="}" k="46" /> +<hkern u1="y" u2="x" k="8" /> +<hkern u1="y" u2="]" k="89" /> +<hkern u1="y" u2="\" k="87" /> +<hkern u1="y" u2="X" k="70" /> +<hkern u1="y" u2="W" k="104" /> +<hkern u1="y" u2="V" k="115" /> +<hkern u1="y" u2="T" k="39" /> +<hkern u1="y" u2="M" k="40" /> +<hkern u1="y" u2="J" k="29" /> +<hkern u1="y" u2="H" k="44" /> +<hkern u1="y" u2="F" k="44" /> +<hkern u1="y" u2="E" k="44" /> +<hkern u1="y" u2="D" k="44" /> +<hkern u1="y" u2="B" k="44" /> +<hkern u1="y" u2="/" k="73" /> +<hkern u1="y" u2=")" k="56" /> +<hkern u1="z" u2="™" k="35" /> +<hkern u1="z" u2="}" k="40" /> +<hkern u1="z" u2="v" k="15" /> +<hkern u1="z" u2="]" k="95" /> +<hkern u1="z" u2="\" k="75" /> +<hkern u1="z" u2="W" k="103" /> +<hkern u1="z" u2="V" k="107" /> +<hkern u1="z" u2="T" k="17" /> +<hkern u1="z" u2="M" k="13" /> +<hkern u1="z" u2="H" k="19" /> +<hkern u1="z" u2="F" k="20" /> +<hkern u1="z" u2="E" k="20" /> +<hkern u1="z" u2="D" k="19" /> +<hkern u1="z" u2="C" k="13" /> +<hkern u1="z" u2="B" k="19" /> +<hkern u1="z" u2="/" k="50" /> +<hkern u1="z" u2=")" k="46" /> +<hkern u1="{" u2="fl" k="-266" /> +<hkern u1="{" u2="fi" k="-266" /> +<hkern u1="{" u2="Ÿ" k="-33" /> +<hkern u1="{" u2="œ" k="51" /> +<hkern u1="{" u2="Œ" k="48" /> +<hkern u1="{" u2="ÿ" k="-26" /> +<hkern u1="{" u2="þ" k="-46" /> +<hkern u1="{" u2="ý" k="-26" /> +<hkern u1="{" u2="ü" k="20" /> +<hkern u1="{" u2="û" k="20" /> +<hkern u1="{" u2="ú" k="20" /> +<hkern u1="{" u2="ù" k="20" /> +<hkern u1="{" u2="ø" k="51" /> +<hkern u1="{" u2="ö" k="51" /> +<hkern u1="{" u2="õ" k="51" /> +<hkern u1="{" u2="ô" k="51" /> +<hkern u1="{" u2="ó" k="51" /> +<hkern u1="{" u2="ò" k="51" /> +<hkern u1="{" u2="ñ" k="20" /> +<hkern u1="{" u2="ë" k="51" /> +<hkern u1="{" u2="ê" k="51" /> +<hkern u1="{" u2="é" k="51" /> +<hkern u1="{" u2="è" k="51" /> +<hkern u1="{" u2="ç" k="51" /> +<hkern u1="{" u2="æ" k="42" /> +<hkern u1="{" u2="å" k="49" /> +<hkern u1="{" u2="ä" k="49" /> +<hkern u1="{" u2="ã" k="49" /> +<hkern u1="{" u2="â" k="49" /> +<hkern u1="{" u2="á" k="49" /> +<hkern u1="{" u2="à" k="49" /> +<hkern u1="{" u2="ß" k="-266" /> +<hkern u1="{" u2="Ý" k="-33" /> +<hkern u1="{" u2="Ü" k="20" /> +<hkern u1="{" u2="Û" k="20" /> +<hkern u1="{" u2="Ú" k="20" /> +<hkern u1="{" u2="Ù" k="20" /> +<hkern u1="{" u2="Ø" k="48" /> +<hkern u1="{" u2="Ö" k="48" /> +<hkern u1="{" u2="Õ" k="48" /> +<hkern u1="{" u2="Ô" k="48" /> +<hkern u1="{" u2="Ó" k="48" /> +<hkern u1="{" u2="Ò" k="48" /> +<hkern u1="{" u2="Ç" k="48" /> +<hkern u1="{" u2="Æ" k="33" /> +<hkern u1="{" u2="Å" k="34" /> +<hkern u1="{" u2="Ä" k="34" /> +<hkern u1="{" u2="Ã" k="34" /> +<hkern u1="{" u2="Â" k="34" /> +<hkern u1="{" u2="Á" k="34" /> +<hkern u1="{" u2="À" k="34" /> +<hkern u1="{" u2="{" k="38" /> +<hkern u1="{" u2="z" k="40" /> +<hkern u1="{" u2="y" k="-26" /> +<hkern u1="{" u2="x" k="26" /> +<hkern u1="{" u2="u" k="20" /> +<hkern u1="{" u2="t" k="36" /> +<hkern u1="{" u2="s" k="43" /> +<hkern u1="{" u2="r" k="20" /> +<hkern u1="{" u2="q" k="47" /> +<hkern u1="{" u2="o" k="51" /> +<hkern u1="{" u2="n" k="20" /> +<hkern u1="{" u2="m" k="21" /> +<hkern u1="{" u2="k" k="-15" /> +<hkern u1="{" u2="j" k="-216" /> +<hkern u1="{" u2="h" k="-15" /> +<hkern u1="{" u2="g" k="47" /> +<hkern u1="{" u2="f" k="-266" /> +<hkern u1="{" u2="e" k="51" /> +<hkern u1="{" u2="d" k="47" /> +<hkern u1="{" u2="c" k="51" /> +<hkern u1="{" u2="b" k="-45" /> +<hkern u1="{" u2="a" k="49" /> +<hkern u1="{" u2="Y" k="-33" /> +<hkern u1="{" u2="X" k="-23" /> +<hkern u1="{" u2="W" k="-19" /> +<hkern u1="{" u2="V" k="-28" /> +<hkern u1="{" u2="U" k="20" /> +<hkern u1="{" u2="S" k="29" /> +<hkern u1="{" u2="Q" k="48" /> +<hkern u1="{" u2="O" k="48" /> +<hkern u1="{" u2="G" k="48" /> +<hkern u1="{" u2="C" k="47" /> +<hkern u1="{" u2="A" k="34" /> +<hkern u1="{" u2="9" k="31" /> +<hkern u1="{" u2="8" k="42" /> +<hkern u1="{" u2="6" k="42" /> +<hkern u1="{" u2="4" k="49" /> +<hkern u1="{" u2="3" k="28" /> +<hkern u1="{" u2="2" k="20" /> +<hkern u1="{" u2="1" k="32" /> +<hkern u1="{" u2="0" k="42" /> +<hkern u1="{" u2="(" k="37" /> +<hkern u1="|" u2="fl" k="-119" /> +<hkern u1="|" u2="fi" k="-119" /> +<hkern u1="|" u2="ß" k="-119" /> +<hkern u1="|" u2="j" k="-75" /> +<hkern u1="|" u2="f" k="-119" /> +<hkern u1="}" u2="}" k="36" /> +<hkern u1="}" u2="]" k="39" /> +<hkern u1="}" u2=")" k="39" /> +<hkern u1="¡" u2="fl" k="-101" /> +<hkern u1="¡" u2="fi" k="-101" /> +<hkern u1="¡" u2="Ÿ" k="95" /> +<hkern u1="¡" u2="ß" k="-101" /> +<hkern u1="¡" u2="Ý" k="95" /> +<hkern u1="¡" u2="Ü" k="38" /> +<hkern u1="¡" u2="Û" k="38" /> +<hkern u1="¡" u2="Ú" k="38" /> +<hkern u1="¡" u2="Ù" k="38" /> +<hkern u1="¡" u2="j" k="-63" /> +<hkern u1="¡" u2="f" k="-101" /> +<hkern u1="¡" u2="Y" k="95" /> +<hkern u1="¡" u2="W" k="71" /> +<hkern u1="¡" u2="V" k="76" /> +<hkern u1="¡" u2="U" k="38" /> +<hkern u1="«" u2="Æ" k="-1" /> +<hkern u1="«" u2="W" k="24" /> +<hkern u1="«" u2="V" k="24" /> +<hkern u1="­" u2="Æ" k="132" /> +<hkern u1="­" u2="X" k="110" /> +<hkern u1="­" u2="W" k="83" /> +<hkern u1="­" u2="V" k="95" /> +<hkern u1="­" u2="T" k="154" /> +<hkern u1="­" u2="M" k="39" /> +<hkern u1="­" u2="J" k="79" /> +<hkern u1="­" u2="H" k="41" /> +<hkern u1="­" u2="F" k="40" /> +<hkern u1="­" u2="E" k="40" /> +<hkern u1="­" u2="D" k="40" /> +<hkern u1="­" u2="B" k="40" /> +<hkern u1="­" u2="8" k="25" /> +<hkern u1="­" u2="7" k="129" /> +<hkern u1="­" u2="3" k="48" /> +<hkern u1="­" u2="2" k="69" /> +<hkern u1="­" u2="1" k="54" /> +<hkern u1="­" u2=")" k="100" /> +<hkern u1="®" u2="Ÿ" k="47" /> +<hkern u1="®" u2="ÿ" k="-12" /> +<hkern u1="®" u2="ý" k="-12" /> +<hkern u1="®" u2="ü" k="-18" /> +<hkern u1="®" u2="û" k="-18" /> +<hkern u1="®" u2="ú" k="-18" /> +<hkern u1="®" u2="ù" k="-18" /> +<hkern u1="®" u2="ñ" k="-15" /> +<hkern u1="®" u2="ï" k="-15" /> +<hkern u1="®" u2="î" k="-15" /> +<hkern u1="®" u2="í" k="-15" /> +<hkern u1="®" u2="ì" k="-15" /> +<hkern u1="®" u2="Ý" k="47" /> +<hkern u1="®" u2="Æ" k="46" /> +<hkern u1="®" u2="Å" k="26" /> +<hkern u1="®" u2="Ä" k="26" /> +<hkern u1="®" u2="Ã" k="26" /> +<hkern u1="®" u2="Â" k="26" /> +<hkern u1="®" u2="Á" k="26" /> +<hkern u1="®" u2="À" k="26" /> +<hkern u1="®" u2="y" k="-12" /> +<hkern u1="®" u2="w" k="-22" /> +<hkern u1="®" u2="v" k="-26" /> +<hkern u1="®" u2="u" k="-18" /> +<hkern u1="®" u2="r" k="-16" /> +<hkern u1="®" u2="n" k="-15" /> +<hkern u1="®" u2="m" k="-14" /> +<hkern u1="®" u2="i" k="-15" /> +<hkern u1="®" u2="Y" k="47" /> +<hkern u1="®" u2="W" k="31" /> +<hkern u1="®" u2="V" k="34" /> +<hkern u1="®" u2="A" k="26" /> +<hkern u1="°" u2="4" k="58" /> +<hkern u1="·" u2="l" k="118" /> +<hkern u1="·" u2="L" k="48" /> +<hkern u1="·" u2="8" k="31" /> +<hkern u1="·" u2="7" k="135" /> +<hkern u1="·" u2="3" k="50" /> +<hkern u1="·" u2="2" k="68" /> +<hkern u1="·" u2="1" k="60" /> +<hkern u1="»" u2="”" k="92" /> +<hkern u1="»" u2="’" k="92" /> +<hkern u1="»" u2="Ÿ" k="147" /> +<hkern u1="»" u2="Þ" k="25" /> +<hkern u1="»" u2="Ý" k="147" /> +<hkern u1="»" u2="Ñ" k="25" /> +<hkern u1="»" u2="Ð" k="25" /> +<hkern u1="»" u2="Ï" k="25" /> +<hkern u1="»" u2="Î" k="25" /> +<hkern u1="»" u2="Í" k="25" /> +<hkern u1="»" u2="Ì" k="25" /> +<hkern u1="»" u2="Ë" k="25" /> +<hkern u1="»" u2="Ê" k="25" /> +<hkern u1="»" u2="É" k="25" /> +<hkern u1="»" u2="È" k="25" /> +<hkern u1="»" u2="Æ" k="60" /> +<hkern u1="»" u2="Å" k="28" /> +<hkern u1="»" u2="Ä" k="28" /> +<hkern u1="»" u2="Ã" k="28" /> +<hkern u1="»" u2="Â" k="28" /> +<hkern u1="»" u2="Á" k="28" /> +<hkern u1="»" u2="À" k="28" /> +<hkern u1="»" u2="Z" k="48" /> +<hkern u1="»" u2="Y" k="147" /> +<hkern u1="»" u2="X" k="53" /> +<hkern u1="»" u2="W" k="80" /> +<hkern u1="»" u2="V" k="94" /> +<hkern u1="»" u2="T" k="98" /> +<hkern u1="»" u2="R" k="25" /> +<hkern u1="»" u2="P" k="25" /> +<hkern u1="»" u2="N" k="25" /> +<hkern u1="»" u2="M" k="21" /> +<hkern u1="»" u2="L" k="25" /> +<hkern u1="»" u2="K" k="25" /> +<hkern u1="»" u2="J" k="28" /> +<hkern u1="»" u2="I" k="25" /> +<hkern u1="»" u2="H" k="25" /> +<hkern u1="»" u2="F" k="24" /> +<hkern u1="»" u2="E" k="24" /> +<hkern u1="»" u2="D" k="24" /> +<hkern u1="»" u2="B" k="24" /> +<hkern u1="»" u2="A" k="28" /> +<hkern u1="»" u2="'" k="88" /> +<hkern u1="»" u2=""" k="88" /> +<hkern u1="¿" u2="fl" k="-72" /> +<hkern u1="¿" u2="fi" k="-72" /> +<hkern u1="¿" u2="Ÿ" k="146" /> +<hkern u1="¿" u2="œ" k="37" /> +<hkern u1="¿" u2="Œ" k="55" /> +<hkern u1="¿" u2="þ" k="22" /> +<hkern u1="¿" u2="ü" k="27" /> +<hkern u1="¿" u2="û" k="27" /> +<hkern u1="¿" u2="ú" k="27" /> +<hkern u1="¿" u2="ù" k="27" /> +<hkern u1="¿" u2="ø" k="37" /> +<hkern u1="¿" u2="ö" k="37" /> +<hkern u1="¿" u2="õ" k="37" /> +<hkern u1="¿" u2="ô" k="37" /> +<hkern u1="¿" u2="ó" k="37" /> +<hkern u1="¿" u2="ò" k="37" /> +<hkern u1="¿" u2="ð" k="37" /> +<hkern u1="¿" u2="ï" k="24" /> +<hkern u1="¿" u2="î" k="24" /> +<hkern u1="¿" u2="í" k="24" /> +<hkern u1="¿" u2="ì" k="24" /> +<hkern u1="¿" u2="ë" k="37" /> +<hkern u1="¿" u2="ê" k="37" /> +<hkern u1="¿" u2="é" k="37" /> +<hkern u1="¿" u2="è" k="37" /> +<hkern u1="¿" u2="ç" k="37" /> +<hkern u1="¿" u2="æ" k="26" /> +<hkern u1="¿" u2="å" k="31" /> +<hkern u1="¿" u2="ä" k="31" /> +<hkern u1="¿" u2="ã" k="31" /> +<hkern u1="¿" u2="â" k="31" /> +<hkern u1="¿" u2="á" k="31" /> +<hkern u1="¿" u2="à" k="31" /> +<hkern u1="¿" u2="ß" k="-72" /> +<hkern u1="¿" u2="Ý" k="146" /> +<hkern u1="¿" u2="Ü" k="81" /> +<hkern u1="¿" u2="Û" k="81" /> +<hkern u1="¿" u2="Ú" k="81" /> +<hkern u1="¿" u2="Ù" k="81" /> +<hkern u1="¿" u2="Ø" k="55" /> +<hkern u1="¿" u2="Ö" k="55" /> +<hkern u1="¿" u2="Õ" k="55" /> +<hkern u1="¿" u2="Ô" k="55" /> +<hkern u1="¿" u2="Ó" k="55" /> +<hkern u1="¿" u2="Ò" k="55" /> +<hkern u1="¿" u2="Ç" k="55" /> +<hkern u1="¿" u2="w" k="25" /> +<hkern u1="¿" u2="v" k="24" /> +<hkern u1="¿" u2="u" k="27" /> +<hkern u1="¿" u2="t" k="38" /> +<hkern u1="¿" u2="s" k="32" /> +<hkern u1="¿" u2="q" k="33" /> +<hkern u1="¿" u2="o" k="37" /> +<hkern u1="¿" u2="l" k="29" /> +<hkern u1="¿" u2="k" k="22" /> +<hkern u1="¿" u2="j" k="-41" /> +<hkern u1="¿" u2="i" k="24" /> +<hkern u1="¿" u2="h" k="22" /> +<hkern u1="¿" u2="g" k="33" /> +<hkern u1="¿" u2="f" k="-72" /> +<hkern u1="¿" u2="e" k="37" /> +<hkern u1="¿" u2="d" k="33" /> +<hkern u1="¿" u2="c" k="37" /> +<hkern u1="¿" u2="b" k="25" /> +<hkern u1="¿" u2="a" k="31" /> +<hkern u1="¿" u2="Y" k="146" /> +<hkern u1="¿" u2="W" k="134" /> +<hkern u1="¿" u2="V" k="146" /> +<hkern u1="¿" u2="U" k="81" /> +<hkern u1="¿" u2="T" k="80" /> +<hkern u1="¿" u2="Q" k="55" /> +<hkern u1="¿" u2="O" k="55" /> +<hkern u1="¿" u2="G" k="55" /> +<hkern u1="¿" u2="C" k="54" /> +<hkern u1="À" u2="™" k="119" /> +<hkern u1="À" u2="‹" k="31" /> +<hkern u1="À" u2="ð" k="25" /> +<hkern u1="À" u2="Æ" k="-100" /> +<hkern u1="À" u2="»" k="-1" /> +<hkern u1="À" u2="®" k="30" /> +<hkern u1="À" u2="«" k="31" /> +<hkern u1="À" u2="}" k="32" /> +<hkern u1="À" u2="w" k="29" /> +<hkern u1="À" u2="v" k="33" /> +<hkern u1="À" u2="t" k="34" /> +<hkern u1="À" u2="r" k="19" /> +<hkern u1="À" u2="p" k="42" /> +<hkern u1="À" u2="m" k="18" /> +<hkern u1="À" u2="k" k="18" /> +<hkern u1="À" u2="j" k="50" /> +<hkern u1="À" u2="b" k="18" /> +<hkern u1="À" u2="]" k="86" /> +<hkern u1="À" u2="\" k="162" /> +<hkern u1="À" u2="X" k="-25" /> +<hkern u1="À" u2="W" k="119" /> +<hkern u1="À" u2="V" k="132" /> +<hkern u1="À" u2="T" k="108" /> +<hkern u1="À" u2="C" k="43" /> +<hkern u1="À" u2="?" k="51" /> +<hkern u1="À" u2="7" k="50" /> +<hkern u1="À" u2="6" k="22" /> +<hkern u1="À" u2="4" k="21" /> +<hkern u1="À" u2="2" k="-29" /> +<hkern u1="À" u2="0" k="26" /> +<hkern u1="À" u2="/" k="21" /> +<hkern u1="À" u2="*" k="102" /> +<hkern u1="À" u2=")" k="36" /> +<hkern u1="Á" u2="™" k="119" /> +<hkern u1="Á" u2="‹" k="31" /> +<hkern u1="Á" u2="ð" k="25" /> +<hkern u1="Á" u2="Æ" k="-100" /> +<hkern u1="Á" u2="»" k="-1" /> +<hkern u1="Á" u2="®" k="30" /> +<hkern u1="Á" u2="«" k="31" /> +<hkern u1="Á" u2="}" k="32" /> +<hkern u1="Á" u2="w" k="29" /> +<hkern u1="Á" u2="v" k="33" /> +<hkern u1="Á" u2="t" k="34" /> +<hkern u1="Á" u2="r" k="19" /> +<hkern u1="Á" u2="p" k="42" /> +<hkern u1="Á" u2="m" k="18" /> +<hkern u1="Á" u2="k" k="18" /> +<hkern u1="Á" u2="j" k="50" /> +<hkern u1="Á" u2="b" k="18" /> +<hkern u1="Á" u2="]" k="86" /> +<hkern u1="Á" u2="\" k="162" /> +<hkern u1="Á" u2="X" k="-25" /> +<hkern u1="Á" u2="W" k="119" /> +<hkern u1="Á" u2="V" k="132" /> +<hkern u1="Á" u2="T" k="108" /> +<hkern u1="Á" u2="C" k="43" /> +<hkern u1="Á" u2="?" k="51" /> +<hkern u1="Á" u2="7" k="50" /> +<hkern u1="Á" u2="6" k="22" /> +<hkern u1="Á" u2="4" k="21" /> +<hkern u1="Á" u2="2" k="-29" /> +<hkern u1="Á" u2="0" k="26" /> +<hkern u1="Á" u2="/" k="21" /> +<hkern u1="Á" u2="*" k="102" /> +<hkern u1="Á" u2=")" k="36" /> +<hkern u1="Â" u2="™" k="119" /> +<hkern u1="Â" u2="‹" k="31" /> +<hkern u1="Â" u2="ð" k="25" /> +<hkern u1="Â" u2="Æ" k="-100" /> +<hkern u1="Â" u2="»" k="-1" /> +<hkern u1="Â" u2="®" k="30" /> +<hkern u1="Â" u2="«" k="31" /> +<hkern u1="Â" u2="}" k="32" /> +<hkern u1="Â" u2="w" k="29" /> +<hkern u1="Â" u2="v" k="33" /> +<hkern u1="Â" u2="t" k="34" /> +<hkern u1="Â" u2="r" k="19" /> +<hkern u1="Â" u2="p" k="42" /> +<hkern u1="Â" u2="m" k="18" /> +<hkern u1="Â" u2="k" k="18" /> +<hkern u1="Â" u2="j" k="50" /> +<hkern u1="Â" u2="b" k="18" /> +<hkern u1="Â" u2="]" k="86" /> +<hkern u1="Â" u2="\" k="162" /> +<hkern u1="Â" u2="X" k="-25" /> +<hkern u1="Â" u2="W" k="119" /> +<hkern u1="Â" u2="V" k="132" /> +<hkern u1="Â" u2="T" k="108" /> +<hkern u1="Â" u2="C" k="43" /> +<hkern u1="Â" u2="?" k="51" /> +<hkern u1="Â" u2="7" k="50" /> +<hkern u1="Â" u2="6" k="22" /> +<hkern u1="Â" u2="4" k="21" /> +<hkern u1="Â" u2="2" k="-29" /> +<hkern u1="Â" u2="0" k="26" /> +<hkern u1="Â" u2="/" k="21" /> +<hkern u1="Â" u2="*" k="102" /> +<hkern u1="Â" u2=")" k="36" /> +<hkern u1="Ã" u2="™" k="119" /> +<hkern u1="Ã" u2="‹" k="31" /> +<hkern u1="Ã" u2="ð" k="25" /> +<hkern u1="Ã" u2="Æ" k="-100" /> +<hkern u1="Ã" u2="»" k="-1" /> +<hkern u1="Ã" u2="®" k="30" /> +<hkern u1="Ã" u2="«" k="31" /> +<hkern u1="Ã" u2="}" k="32" /> +<hkern u1="Ã" u2="w" k="29" /> +<hkern u1="Ã" u2="v" k="33" /> +<hkern u1="Ã" u2="t" k="34" /> +<hkern u1="Ã" u2="r" k="19" /> +<hkern u1="Ã" u2="p" k="42" /> +<hkern u1="Ã" u2="m" k="18" /> +<hkern u1="Ã" u2="k" k="18" /> +<hkern u1="Ã" u2="j" k="50" /> +<hkern u1="Ã" u2="b" k="18" /> +<hkern u1="Ã" u2="]" k="86" /> +<hkern u1="Ã" u2="\" k="162" /> +<hkern u1="Ã" u2="X" k="-25" /> +<hkern u1="Ã" u2="W" k="119" /> +<hkern u1="Ã" u2="V" k="132" /> +<hkern u1="Ã" u2="T" k="108" /> +<hkern u1="Ã" u2="C" k="43" /> +<hkern u1="Ã" u2="?" k="51" /> +<hkern u1="Ã" u2="7" k="50" /> +<hkern u1="Ã" u2="6" k="22" /> +<hkern u1="Ã" u2="4" k="21" /> +<hkern u1="Ã" u2="2" k="-29" /> +<hkern u1="Ã" u2="0" k="26" /> +<hkern u1="Ã" u2="/" k="21" /> +<hkern u1="Ã" u2="*" k="102" /> +<hkern u1="Ã" u2=")" k="36" /> +<hkern u1="Ä" u2="™" k="119" /> +<hkern u1="Ä" u2="‹" k="31" /> +<hkern u1="Ä" u2="ð" k="25" /> +<hkern u1="Ä" u2="Æ" k="-100" /> +<hkern u1="Ä" u2="»" k="-1" /> +<hkern u1="Ä" u2="®" k="30" /> +<hkern u1="Ä" u2="«" k="31" /> +<hkern u1="Ä" u2="}" k="32" /> +<hkern u1="Ä" u2="w" k="29" /> +<hkern u1="Ä" u2="v" k="33" /> +<hkern u1="Ä" u2="t" k="34" /> +<hkern u1="Ä" u2="r" k="19" /> +<hkern u1="Ä" u2="p" k="42" /> +<hkern u1="Ä" u2="m" k="18" /> +<hkern u1="Ä" u2="k" k="18" /> +<hkern u1="Ä" u2="j" k="50" /> +<hkern u1="Ä" u2="b" k="18" /> +<hkern u1="Ä" u2="]" k="86" /> +<hkern u1="Ä" u2="\" k="162" /> +<hkern u1="Ä" u2="X" k="-25" /> +<hkern u1="Ä" u2="W" k="119" /> +<hkern u1="Ä" u2="V" k="132" /> +<hkern u1="Ä" u2="T" k="108" /> +<hkern u1="Ä" u2="C" k="43" /> +<hkern u1="Ä" u2="?" k="51" /> +<hkern u1="Ä" u2="7" k="50" /> +<hkern u1="Ä" u2="6" k="22" /> +<hkern u1="Ä" u2="4" k="21" /> +<hkern u1="Ä" u2="2" k="-29" /> +<hkern u1="Ä" u2="0" k="26" /> +<hkern u1="Ä" u2="/" k="21" /> +<hkern u1="Ä" u2="*" k="102" /> +<hkern u1="Ä" u2=")" k="36" /> +<hkern u1="Å" u2="™" k="119" /> +<hkern u1="Å" u2="‹" k="31" /> +<hkern u1="Å" u2="ð" k="25" /> +<hkern u1="Å" u2="Æ" k="-100" /> +<hkern u1="Å" u2="»" k="-1" /> +<hkern u1="Å" u2="®" k="30" /> +<hkern u1="Å" u2="«" k="31" /> +<hkern u1="Å" u2="}" k="32" /> +<hkern u1="Å" u2="w" k="29" /> +<hkern u1="Å" u2="v" k="33" /> +<hkern u1="Å" u2="t" k="34" /> +<hkern u1="Å" u2="r" k="19" /> +<hkern u1="Å" u2="p" k="42" /> +<hkern u1="Å" u2="m" k="18" /> +<hkern u1="Å" u2="k" k="18" /> +<hkern u1="Å" u2="j" k="50" /> +<hkern u1="Å" u2="b" k="18" /> +<hkern u1="Å" u2="]" k="86" /> +<hkern u1="Å" u2="\" k="162" /> +<hkern u1="Å" u2="X" k="-25" /> +<hkern u1="Å" u2="W" k="119" /> +<hkern u1="Å" u2="V" k="132" /> +<hkern u1="Å" u2="T" k="108" /> +<hkern u1="Å" u2="C" k="43" /> +<hkern u1="Å" u2="?" k="51" /> +<hkern u1="Å" u2="7" k="50" /> +<hkern u1="Å" u2="6" k="22" /> +<hkern u1="Å" u2="4" k="21" /> +<hkern u1="Å" u2="2" k="-29" /> +<hkern u1="Å" u2="0" k="26" /> +<hkern u1="Å" u2="/" k="21" /> +<hkern u1="Å" u2="*" k="102" /> +<hkern u1="Å" u2=")" k="36" /> +<hkern u1="Æ" u2="w" k="11" /> +<hkern u1="Æ" u2="v" k="12" /> +<hkern u1="Æ" u2="t" k="9" /> +<hkern u1="Æ" u2="r" k="12" /> +<hkern u1="Æ" u2="p" k="36" /> +<hkern u1="Æ" u2="m" k="11" /> +<hkern u1="Æ" u2="j" k="41" /> +<hkern u1="Æ" u2="]" k="20" /> +<hkern u1="Æ" u2="/" k="45" /> +<hkern u1="Ç" u2="x" k="12" /> +<hkern u1="Ç" u2="/" k="62" /> +<hkern u1="Ç" u2="*" k="-16" /> +<hkern u1="È" u2="w" k="11" /> +<hkern u1="È" u2="v" k="12" /> +<hkern u1="È" u2="t" k="9" /> +<hkern u1="È" u2="r" k="12" /> +<hkern u1="È" u2="p" k="36" /> +<hkern u1="È" u2="m" k="11" /> +<hkern u1="È" u2="j" k="41" /> +<hkern u1="È" u2="]" k="20" /> +<hkern u1="È" u2="/" k="45" /> +<hkern u1="É" u2="w" k="11" /> +<hkern u1="É" u2="v" k="12" /> +<hkern u1="É" u2="t" k="9" /> +<hkern u1="É" u2="r" k="12" /> +<hkern u1="É" u2="p" k="36" /> +<hkern u1="É" u2="m" k="11" /> +<hkern u1="É" u2="j" k="41" /> +<hkern u1="É" u2="]" k="20" /> +<hkern u1="É" u2="/" k="45" /> +<hkern u1="Ê" u2="w" k="11" /> +<hkern u1="Ê" u2="v" k="12" /> +<hkern u1="Ê" u2="t" k="9" /> +<hkern u1="Ê" u2="r" k="12" /> +<hkern u1="Ê" u2="p" k="36" /> +<hkern u1="Ê" u2="m" k="11" /> +<hkern u1="Ê" u2="j" k="41" /> +<hkern u1="Ê" u2="]" k="20" /> +<hkern u1="Ê" u2="/" k="45" /> +<hkern u1="Ë" u2="w" k="11" /> +<hkern u1="Ë" u2="v" k="12" /> +<hkern u1="Ë" u2="t" k="9" /> +<hkern u1="Ë" u2="r" k="12" /> +<hkern u1="Ë" u2="p" k="36" /> +<hkern u1="Ë" u2="m" k="11" /> +<hkern u1="Ë" u2="j" k="41" /> +<hkern u1="Ë" u2="]" k="20" /> +<hkern u1="Ë" u2="/" k="45" /> +<hkern u1="Ì" u2="‹" k="21" /> +<hkern u1="Ì" u2="ð" k="38" /> +<hkern u1="Ì" u2="æ" k="18" /> +<hkern u1="Ì" u2="«" k="21" /> +<hkern u1="Ì" u2="x" k="20" /> +<hkern u1="Ì" u2="w" k="18" /> +<hkern u1="Ì" u2="v" k="17" /> +<hkern u1="Ì" u2="t" k="28" /> +<hkern u1="Ì" u2="r" k="17" /> +<hkern u1="Ì" u2="p" k="40" /> +<hkern u1="Ì" u2="m" k="17" /> +<hkern u1="Ì" u2="k" k="11" /> +<hkern u1="Ì" u2="j" k="37" /> +<hkern u1="Ì" u2="C" k="19" /> +<hkern u1="Ì" u2="/" k="50" /> +<hkern u1="Ì" u2="*" k="18" /> +<hkern u1="Í" u2="‹" k="21" /> +<hkern u1="Í" u2="ð" k="38" /> +<hkern u1="Í" u2="æ" k="18" /> +<hkern u1="Í" u2="«" k="21" /> +<hkern u1="Í" u2="x" k="20" /> +<hkern u1="Í" u2="w" k="18" /> +<hkern u1="Í" u2="v" k="17" /> +<hkern u1="Í" u2="t" k="28" /> +<hkern u1="Í" u2="r" k="17" /> +<hkern u1="Í" u2="p" k="40" /> +<hkern u1="Í" u2="m" k="17" /> +<hkern u1="Í" u2="k" k="11" /> +<hkern u1="Í" u2="j" k="37" /> +<hkern u1="Í" u2="C" k="19" /> +<hkern u1="Í" u2="/" k="50" /> +<hkern u1="Í" u2="*" k="18" /> +<hkern u1="Î" u2="‹" k="21" /> +<hkern u1="Î" u2="ð" k="38" /> +<hkern u1="Î" u2="æ" k="18" /> +<hkern u1="Î" u2="«" k="21" /> +<hkern u1="Î" u2="x" k="20" /> +<hkern u1="Î" u2="w" k="18" /> +<hkern u1="Î" u2="v" k="17" /> +<hkern u1="Î" u2="t" k="28" /> +<hkern u1="Î" u2="r" k="17" /> +<hkern u1="Î" u2="p" k="40" /> +<hkern u1="Î" u2="m" k="17" /> +<hkern u1="Î" u2="k" k="11" /> +<hkern u1="Î" u2="j" k="37" /> +<hkern u1="Î" u2="C" k="19" /> +<hkern u1="Î" u2="/" k="50" /> +<hkern u1="Î" u2="*" k="18" /> +<hkern u1="Ï" u2="‹" k="21" /> +<hkern u1="Ï" u2="ð" k="38" /> +<hkern u1="Ï" u2="æ" k="18" /> +<hkern u1="Ï" u2="«" k="21" /> +<hkern u1="Ï" u2="x" k="20" /> +<hkern u1="Ï" u2="w" k="18" /> +<hkern u1="Ï" u2="v" k="17" /> +<hkern u1="Ï" u2="t" k="28" /> +<hkern u1="Ï" u2="r" k="17" /> +<hkern u1="Ï" u2="p" k="40" /> +<hkern u1="Ï" u2="m" k="17" /> +<hkern u1="Ï" u2="k" k="11" /> +<hkern u1="Ï" u2="j" k="37" /> +<hkern u1="Ï" u2="C" k="19" /> +<hkern u1="Ï" u2="/" k="50" /> +<hkern u1="Ï" u2="*" k="18" /> +<hkern u1="Ð" u2="Æ" k="77" /> +<hkern u1="Ð" u2="}" k="47" /> +<hkern u1="Ð" u2="x" k="33" /> +<hkern u1="Ð" u2="k" k="10" /> +<hkern u1="Ð" u2="b" k="10" /> +<hkern u1="Ð" u2="]" k="97" /> +<hkern u1="Ð" u2="\" k="56" /> +<hkern u1="Ð" u2="X" k="53" /> +<hkern u1="Ð" u2="W" k="44" /> +<hkern u1="Ð" u2="V" k="47" /> +<hkern u1="Ð" u2="M" k="22" /> +<hkern u1="Ð" u2="J" k="49" /> +<hkern u1="Ð" u2="H" k="23" /> +<hkern u1="Ð" u2="F" k="22" /> +<hkern u1="Ð" u2="E" k="22" /> +<hkern u1="Ð" u2="D" k="22" /> +<hkern u1="Ð" u2="B" k="22" /> +<hkern u1="Ð" u2="/" k="135" /> +<hkern u1="Ð" u2=")" k="55" /> +<hkern u1="Ñ" u2="ð" k="34" /> +<hkern u1="Ñ" u2="æ" k="27" /> +<hkern u1="Ñ" u2="Æ" k="15" /> +<hkern u1="Ñ" u2="x" k="16" /> +<hkern u1="Ñ" u2="t" k="20" /> +<hkern u1="Ñ" u2="p" k="30" /> +<hkern u1="Ñ" u2="j" k="26" /> +<hkern u1="Ñ" u2="C" k="11" /> +<hkern u1="Ñ" u2="/" k="81" /> +<hkern u1="Ò" u2="™" k="50" /> +<hkern u1="Ò" u2="Æ" k="61" /> +<hkern u1="Ò" u2="}" k="45" /> +<hkern u1="Ò" u2="x" k="32" /> +<hkern u1="Ò" u2="k" k="9" /> +<hkern u1="Ò" u2="b" k="9" /> +<hkern u1="Ò" u2="]" k="90" /> +<hkern u1="Ò" u2="\" k="53" /> +<hkern u1="Ò" u2="X" k="48" /> +<hkern u1="Ò" u2="W" k="41" /> +<hkern u1="Ò" u2="V" k="43" /> +<hkern u1="Ò" u2="M" k="19" /> +<hkern u1="Ò" u2="J" k="40" /> +<hkern u1="Ò" u2="H" k="20" /> +<hkern u1="Ò" u2="F" k="20" /> +<hkern u1="Ò" u2="E" k="20" /> +<hkern u1="Ò" u2="D" k="19" /> +<hkern u1="Ò" u2="B" k="19" /> +<hkern u1="Ò" u2="/" k="128" /> +<hkern u1="Ò" u2=")" k="53" /> +<hkern u1="Ó" u2="™" k="50" /> +<hkern u1="Ó" u2="Æ" k="61" /> +<hkern u1="Ó" u2="}" k="45" /> +<hkern u1="Ó" u2="x" k="32" /> +<hkern u1="Ó" u2="k" k="9" /> +<hkern u1="Ó" u2="b" k="9" /> +<hkern u1="Ó" u2="]" k="90" /> +<hkern u1="Ó" u2="\" k="53" /> +<hkern u1="Ó" u2="X" k="48" /> +<hkern u1="Ó" u2="W" k="41" /> +<hkern u1="Ó" u2="V" k="43" /> +<hkern u1="Ó" u2="M" k="19" /> +<hkern u1="Ó" u2="J" k="40" /> +<hkern u1="Ó" u2="H" k="20" /> +<hkern u1="Ó" u2="F" k="20" /> +<hkern u1="Ó" u2="E" k="20" /> +<hkern u1="Ó" u2="D" k="19" /> +<hkern u1="Ó" u2="B" k="19" /> +<hkern u1="Ó" u2="/" k="128" /> +<hkern u1="Ó" u2=")" k="53" /> +<hkern u1="Ô" u2="™" k="50" /> +<hkern u1="Ô" u2="Æ" k="61" /> +<hkern u1="Ô" u2="}" k="45" /> +<hkern u1="Ô" u2="x" k="32" /> +<hkern u1="Ô" u2="k" k="9" /> +<hkern u1="Ô" u2="b" k="9" /> +<hkern u1="Ô" u2="]" k="90" /> +<hkern u1="Ô" u2="\" k="53" /> +<hkern u1="Ô" u2="X" k="48" /> +<hkern u1="Ô" u2="W" k="41" /> +<hkern u1="Ô" u2="V" k="43" /> +<hkern u1="Ô" u2="M" k="19" /> +<hkern u1="Ô" u2="J" k="40" /> +<hkern u1="Ô" u2="H" k="20" /> +<hkern u1="Ô" u2="F" k="20" /> +<hkern u1="Ô" u2="E" k="20" /> +<hkern u1="Ô" u2="D" k="19" /> +<hkern u1="Ô" u2="B" k="19" /> +<hkern u1="Ô" u2="/" k="128" /> +<hkern u1="Ô" u2=")" k="53" /> +<hkern u1="Õ" u2="™" k="50" /> +<hkern u1="Õ" u2="Æ" k="61" /> +<hkern u1="Õ" u2="}" k="45" /> +<hkern u1="Õ" u2="x" k="32" /> +<hkern u1="Õ" u2="k" k="9" /> +<hkern u1="Õ" u2="b" k="9" /> +<hkern u1="Õ" u2="]" k="90" /> +<hkern u1="Õ" u2="\" k="53" /> +<hkern u1="Õ" u2="X" k="48" /> +<hkern u1="Õ" u2="W" k="41" /> +<hkern u1="Õ" u2="V" k="43" /> +<hkern u1="Õ" u2="M" k="19" /> +<hkern u1="Õ" u2="J" k="40" /> +<hkern u1="Õ" u2="H" k="20" /> +<hkern u1="Õ" u2="F" k="20" /> +<hkern u1="Õ" u2="E" k="20" /> +<hkern u1="Õ" u2="D" k="19" /> +<hkern u1="Õ" u2="B" k="19" /> +<hkern u1="Õ" u2="/" k="128" /> +<hkern u1="Õ" u2=")" k="53" /> +<hkern u1="Ö" u2="™" k="50" /> +<hkern u1="Ö" u2="Æ" k="61" /> +<hkern u1="Ö" u2="}" k="45" /> +<hkern u1="Ö" u2="x" k="32" /> +<hkern u1="Ö" u2="k" k="9" /> +<hkern u1="Ö" u2="b" k="9" /> +<hkern u1="Ö" u2="]" k="90" /> +<hkern u1="Ö" u2="\" k="53" /> +<hkern u1="Ö" u2="X" k="48" /> +<hkern u1="Ö" u2="W" k="41" /> +<hkern u1="Ö" u2="V" k="43" /> +<hkern u1="Ö" u2="M" k="19" /> +<hkern u1="Ö" u2="J" k="40" /> +<hkern u1="Ö" u2="H" k="20" /> +<hkern u1="Ö" u2="F" k="20" /> +<hkern u1="Ö" u2="E" k="20" /> +<hkern u1="Ö" u2="D" k="19" /> +<hkern u1="Ö" u2="B" k="19" /> +<hkern u1="Ö" u2="/" k="128" /> +<hkern u1="Ö" u2=")" k="53" /> +<hkern u1="Ø" u2="™" k="50" /> +<hkern u1="Ø" u2="Æ" k="61" /> +<hkern u1="Ø" u2="}" k="45" /> +<hkern u1="Ø" u2="x" k="32" /> +<hkern u1="Ø" u2="k" k="9" /> +<hkern u1="Ø" u2="b" k="9" /> +<hkern u1="Ø" u2="]" k="90" /> +<hkern u1="Ø" u2="\" k="53" /> +<hkern u1="Ø" u2="X" k="48" /> +<hkern u1="Ø" u2="W" k="41" /> +<hkern u1="Ø" u2="V" k="43" /> +<hkern u1="Ø" u2="M" k="19" /> +<hkern u1="Ø" u2="J" k="40" /> +<hkern u1="Ø" u2="H" k="20" /> +<hkern u1="Ø" u2="F" k="20" /> +<hkern u1="Ø" u2="E" k="20" /> +<hkern u1="Ø" u2="D" k="19" /> +<hkern u1="Ø" u2="B" k="19" /> +<hkern u1="Ø" u2="/" k="128" /> +<hkern u1="Ø" u2=")" k="53" /> +<hkern u1="Ù" u2="™" k="-18" /> +<hkern u1="Ù" u2="þ" k="-20" /> +<hkern u1="Ù" u2="ð" k="31" /> +<hkern u1="Ù" u2="æ" k="34" /> +<hkern u1="Ù" u2="Æ" k="78" /> +<hkern u1="Ù" u2="x" k="22" /> +<hkern u1="Ù" u2="t" k="14" /> +<hkern u1="Ù" u2="p" k="21" /> +<hkern u1="Ù" u2="j" k="15" /> +<hkern u1="Ù" u2="b" k="-22" /> +<hkern u1="Ù" u2="]" k="-32" /> +<hkern u1="Ù" u2=";" k="16" /> +<hkern u1="Ù" u2="7" k="-37" /> +<hkern u1="Ù" u2="/" k="145" /> +<hkern u1="Ú" u2="™" k="-18" /> +<hkern u1="Ú" u2="þ" k="-20" /> +<hkern u1="Ú" u2="ð" k="31" /> +<hkern u1="Ú" u2="æ" k="34" /> +<hkern u1="Ú" u2="Æ" k="78" /> +<hkern u1="Ú" u2="x" k="22" /> +<hkern u1="Ú" u2="t" k="14" /> +<hkern u1="Ú" u2="p" k="21" /> +<hkern u1="Ú" u2="j" k="15" /> +<hkern u1="Ú" u2="b" k="-22" /> +<hkern u1="Ú" u2="]" k="-32" /> +<hkern u1="Ú" u2=";" k="16" /> +<hkern u1="Ú" u2="7" k="-37" /> +<hkern u1="Ú" u2="/" k="145" /> +<hkern u1="Û" u2="™" k="-18" /> +<hkern u1="Û" u2="þ" k="-20" /> +<hkern u1="Û" u2="ð" k="31" /> +<hkern u1="Û" u2="æ" k="34" /> +<hkern u1="Û" u2="Æ" k="78" /> +<hkern u1="Û" u2="x" k="22" /> +<hkern u1="Û" u2="t" k="14" /> +<hkern u1="Û" u2="p" k="21" /> +<hkern u1="Û" u2="j" k="15" /> +<hkern u1="Û" u2="b" k="-22" /> +<hkern u1="Û" u2="]" k="-32" /> +<hkern u1="Û" u2=";" k="16" /> +<hkern u1="Û" u2="7" k="-37" /> +<hkern u1="Û" u2="/" k="145" /> +<hkern u1="Ü" u2="™" k="-18" /> +<hkern u1="Ü" u2="þ" k="-20" /> +<hkern u1="Ü" u2="ð" k="31" /> +<hkern u1="Ü" u2="æ" k="34" /> +<hkern u1="Ü" u2="Æ" k="78" /> +<hkern u1="Ü" u2="x" k="22" /> +<hkern u1="Ü" u2="t" k="14" /> +<hkern u1="Ü" u2="p" k="21" /> +<hkern u1="Ü" u2="j" k="15" /> +<hkern u1="Ü" u2="b" k="-22" /> +<hkern u1="Ü" u2="]" k="-32" /> +<hkern u1="Ü" u2=";" k="16" /> +<hkern u1="Ü" u2="7" k="-37" /> +<hkern u1="Ü" u2="/" k="145" /> +<hkern u1="Ý" u2="™" k="-74" /> +<hkern u1="Ý" u2="‹" k="139" /> +<hkern u1="Ý" u2="þ" k="-78" /> +<hkern u1="Ý" u2="õ" k="125" /> +<hkern u1="Ý" u2="ð" k="127" /> +<hkern u1="Ý" u2="ï" k="-30" /> +<hkern u1="Ý" u2="î" k="-25" /> +<hkern u1="Ý" u2="ì" k="-8" /> +<hkern u1="Ý" u2="æ" k="191" /> +<hkern u1="Ý" u2="Æ" k="140" /> +<hkern u1="Ý" u2="®" k="42" /> +<hkern u1="Ý" u2="«" k="139" /> +<hkern u1="Ý" u2="}" k="-36" /> +<hkern u1="Ý" u2="x" k="152" /> +<hkern u1="Ý" u2="w" k="141" /> +<hkern u1="Ý" u2="v" k="138" /> +<hkern u1="Ý" u2="t" k="75" /> +<hkern u1="Ý" u2="r" k="143" /> +<hkern u1="Ý" u2="p" k="164" /> +<hkern u1="Ý" u2="m" k="144" /> +<hkern u1="Ý" u2="k" k="-50" /> +<hkern u1="Ý" u2="j" k="39" /> +<hkern u1="Ý" u2="b" k="-80" /> +<hkern u1="Ý" u2="]" k="-90" /> +<hkern u1="Ý" u2="\" k="-63" /> +<hkern u1="Ý" u2="X" k="-65" /> +<hkern u1="Ý" u2="W" k="-75" /> +<hkern u1="Ý" u2="V" k="-75" /> +<hkern u1="Ý" u2="C" k="62" /> +<hkern u1="Ý" u2="@" k="86" /> +<hkern u1="Ý" u2=";" k="82" /> +<hkern u1="Ý" u2=":" k="78" /> +<hkern u1="Ý" u2="7" k="-93" /> +<hkern u1="Ý" u2="6" k="31" /> +<hkern u1="Ý" u2="4" k="97" /> +<hkern u1="Ý" u2="0" k="27" /> +<hkern u1="Ý" u2="/" k="171" /> +<hkern u1="Ý" u2="*" k="22" /> +<hkern u1="Ý" u2=")" k="-44" /> +<hkern u1="Þ" u2="…" k="141" /> +<hkern u1="Þ" u2="„" k="141" /> +<hkern u1="Þ" u2="‚" k="141" /> +<hkern u1="Þ" u2="Ÿ" k="80" /> +<hkern u1="Þ" u2="Þ" k="20" /> +<hkern u1="Þ" u2="Ý" k="80" /> +<hkern u1="Þ" u2="Ñ" k="20" /> +<hkern u1="Þ" u2="Ð" k="20" /> +<hkern u1="Þ" u2="Ï" k="20" /> +<hkern u1="Þ" u2="Î" k="20" /> +<hkern u1="Þ" u2="Í" k="20" /> +<hkern u1="Þ" u2="Ì" k="20" /> +<hkern u1="Þ" u2="Ë" k="20" /> +<hkern u1="Þ" u2="Ê" k="20" /> +<hkern u1="Þ" u2="É" k="20" /> +<hkern u1="Þ" u2="È" k="20" /> +<hkern u1="Þ" u2="Æ" k="95" /> +<hkern u1="Þ" u2="Å" k="57" /> +<hkern u1="Þ" u2="Ä" k="57" /> +<hkern u1="Þ" u2="Ã" k="57" /> +<hkern u1="Þ" u2="Â" k="57" /> +<hkern u1="Þ" u2="Á" k="57" /> +<hkern u1="Þ" u2="À" k="57" /> +<hkern u1="Þ" u2="}" k="39" /> +<hkern u1="Þ" u2="x" k="26" /> +<hkern u1="Þ" u2="]" k="91" /> +<hkern u1="Þ" u2="\" k="54" /> +<hkern u1="Þ" u2="Y" k="80" /> +<hkern u1="Þ" u2="X" k="131" /> +<hkern u1="Þ" u2="W" k="39" /> +<hkern u1="Þ" u2="V" k="42" /> +<hkern u1="Þ" u2="R" k="20" /> +<hkern u1="Þ" u2="P" k="20" /> +<hkern u1="Þ" u2="N" k="20" /> +<hkern u1="Þ" u2="M" k="20" /> +<hkern u1="Þ" u2="L" k="20" /> +<hkern u1="Þ" u2="K" k="20" /> +<hkern u1="Þ" u2="J" k="87" /> +<hkern u1="Þ" u2="I" k="20" /> +<hkern u1="Þ" u2="H" k="20" /> +<hkern u1="Þ" u2="F" k="20" /> +<hkern u1="Þ" u2="E" k="20" /> +<hkern u1="Þ" u2="D" k="20" /> +<hkern u1="Þ" u2="B" k="20" /> +<hkern u1="Þ" u2="A" k="57" /> +<hkern u1="Þ" u2="/" k="155" /> +<hkern u1="Þ" u2="." k="141" /> +<hkern u1="Þ" u2="," k="141" /> +<hkern u1="Þ" u2=")" k="51" /> +<hkern u1="ß" u2="fl" k="10" /> +<hkern u1="ß" u2="fi" k="10" /> +<hkern u1="ß" u2="™" k="22" /> +<hkern u1="ß" u2="”" k="36" /> +<hkern u1="ß" u2="“" k="31" /> +<hkern u1="ß" u2="’" k="36" /> +<hkern u1="ß" u2="‘" k="31" /> +<hkern u1="ß" u2="—" k="33" /> +<hkern u1="ß" u2="–" k="33" /> +<hkern u1="ß" u2="ÿ" k="59" /> +<hkern u1="ß" u2="ý" k="59" /> +<hkern u1="ß" u2="ü" k="10" /> +<hkern u1="ß" u2="û" k="10" /> +<hkern u1="ß" u2="ú" k="10" /> +<hkern u1="ß" u2="ù" k="10" /> +<hkern u1="ß" u2="ñ" k="10" /> +<hkern u1="ß" u2="ï" k="8" /> +<hkern u1="ß" u2="î" k="8" /> +<hkern u1="ß" u2="í" k="8" /> +<hkern u1="ß" u2="ì" k="8" /> +<hkern u1="ß" u2="ß" k="10" /> +<hkern u1="ß" u2="­" k="33" /> +<hkern u1="ß" u2="}" k="31" /> +<hkern u1="ß" u2="y" k="59" /> +<hkern u1="ß" u2="w" k="11" /> +<hkern u1="ß" u2="v" k="13" /> +<hkern u1="ß" u2="u" k="10" /> +<hkern u1="ß" u2="t" k="12" /> +<hkern u1="ß" u2="r" k="11" /> +<hkern u1="ß" u2="p" k="36" /> +<hkern u1="ß" u2="n" k="10" /> +<hkern u1="ß" u2="m" k="10" /> +<hkern u1="ß" u2="j" k="46" /> +<hkern u1="ß" u2="i" k="8" /> +<hkern u1="ß" u2="f" k="10" /> +<hkern u1="ß" u2="]" k="45" /> +<hkern u1="ß" u2="\" k="27" /> +<hkern u1="ß" u2="/" k="52" /> +<hkern u1="ß" u2="-" k="33" /> +<hkern u1="ß" u2="*" k="28" /> +<hkern u1="ß" u2=")" k="34" /> +<hkern u1="ß" u2="'" k="33" /> +<hkern u1="ß" u2=""" k="33" /> +<hkern u1="à" u2="™" k="19" /> +<hkern u1="à" u2="]" k="48" /> +<hkern u1="à" u2="\" k="75" /> +<hkern u1="à" u2="W" k="73" /> +<hkern u1="à" u2="V" k="87" /> +<hkern u1="à" u2="T" k="43" /> +<hkern u1="à" u2="J" k="-30" /> +<hkern u1="à" u2="&" k="-25" /> +<hkern u1="á" u2="™" k="19" /> +<hkern u1="á" u2="]" k="48" /> +<hkern u1="á" u2="\" k="75" /> +<hkern u1="á" u2="W" k="73" /> +<hkern u1="á" u2="V" k="87" /> +<hkern u1="á" u2="T" k="43" /> +<hkern u1="á" u2="J" k="-30" /> +<hkern u1="á" u2="&" k="-25" /> +<hkern u1="â" u2="™" k="19" /> +<hkern u1="â" u2="]" k="48" /> +<hkern u1="â" u2="\" k="75" /> +<hkern u1="â" u2="W" k="73" /> +<hkern u1="â" u2="V" k="87" /> +<hkern u1="â" u2="T" k="43" /> +<hkern u1="â" u2="J" k="-30" /> +<hkern u1="â" u2="&" k="-25" /> +<hkern u1="ã" u2="™" k="19" /> +<hkern u1="ã" u2="]" k="48" /> +<hkern u1="ã" u2="\" k="75" /> +<hkern u1="ã" u2="W" k="73" /> +<hkern u1="ã" u2="V" k="87" /> +<hkern u1="ã" u2="T" k="43" /> +<hkern u1="ã" u2="J" k="-30" /> +<hkern u1="ã" u2="&" k="-25" /> +<hkern u1="ä" u2="™" k="19" /> +<hkern u1="ä" u2="]" k="48" /> +<hkern u1="ä" u2="\" k="75" /> +<hkern u1="ä" u2="W" k="73" /> +<hkern u1="ä" u2="V" k="87" /> +<hkern u1="ä" u2="T" k="43" /> +<hkern u1="ä" u2="J" k="-30" /> +<hkern u1="ä" u2="&" k="-25" /> +<hkern u1="å" u2="™" k="19" /> +<hkern u1="å" u2="]" k="48" /> +<hkern u1="å" u2="\" k="75" /> +<hkern u1="å" u2="W" k="73" /> +<hkern u1="å" u2="V" k="87" /> +<hkern u1="å" u2="T" k="43" /> +<hkern u1="å" u2="J" k="-30" /> +<hkern u1="å" u2="&" k="-25" /> +<hkern u1="æ" u2="™" k="100" /> +<hkern u1="æ" u2="}" k="44" /> +<hkern u1="æ" u2="x" k="20" /> +<hkern u1="æ" u2="]" k="100" /> +<hkern u1="æ" u2="\" k="98" /> +<hkern u1="æ" u2="X" k="33" /> +<hkern u1="æ" u2="W" k="120" /> +<hkern u1="æ" u2="V" k="134" /> +<hkern u1="æ" u2="T" k="54" /> +<hkern u1="æ" u2="M" k="25" /> +<hkern u1="æ" u2="H" k="34" /> +<hkern u1="æ" u2="F" k="34" /> +<hkern u1="æ" u2="E" k="34" /> +<hkern u1="æ" u2="D" k="34" /> +<hkern u1="æ" u2="B" k="34" /> +<hkern u1="æ" u2="?" k="26" /> +<hkern u1="æ" u2="/" k="70" /> +<hkern u1="æ" u2="*" k="21" /> +<hkern u1="æ" u2=")" k="57" /> +<hkern u1="ç" u2="™" k="35" /> +<hkern u1="ç" u2="}" k="35" /> +<hkern u1="ç" u2="x" k="23" /> +<hkern u1="ç" u2="]" k="91" /> +<hkern u1="ç" u2="\" k="89" /> +<hkern u1="ç" u2="X" k="53" /> +<hkern u1="ç" u2="W" k="107" /> +<hkern u1="ç" u2="V" k="124" /> +<hkern u1="ç" u2="T" k="48" /> +<hkern u1="ç" u2="M" k="37" /> +<hkern u1="ç" u2="H" k="47" /> +<hkern u1="ç" u2="F" k="48" /> +<hkern u1="ç" u2="E" k="48" /> +<hkern u1="ç" u2="D" k="48" /> +<hkern u1="ç" u2="C" k="14" /> +<hkern u1="ç" u2="B" k="48" /> +<hkern u1="ç" u2="/" k="61" /> +<hkern u1="ç" u2=")" k="47" /> +<hkern u1="è" u2="™" k="100" /> +<hkern u1="è" u2="}" k="44" /> +<hkern u1="è" u2="x" k="20" /> +<hkern u1="è" u2="]" k="100" /> +<hkern u1="è" u2="\" k="98" /> +<hkern u1="è" u2="X" k="33" /> +<hkern u1="è" u2="W" k="120" /> +<hkern u1="è" u2="V" k="134" /> +<hkern u1="è" u2="T" k="54" /> +<hkern u1="è" u2="M" k="25" /> +<hkern u1="è" u2="H" k="34" /> +<hkern u1="è" u2="F" k="34" /> +<hkern u1="è" u2="E" k="34" /> +<hkern u1="è" u2="D" k="34" /> +<hkern u1="è" u2="B" k="34" /> +<hkern u1="è" u2="?" k="26" /> +<hkern u1="è" u2="/" k="70" /> +<hkern u1="è" u2="*" k="21" /> +<hkern u1="è" u2=")" k="57" /> +<hkern u1="é" u2="™" k="100" /> +<hkern u1="é" u2="}" k="44" /> +<hkern u1="é" u2="x" k="20" /> +<hkern u1="é" u2="]" k="100" /> +<hkern u1="é" u2="\" k="98" /> +<hkern u1="é" u2="X" k="33" /> +<hkern u1="é" u2="W" k="120" /> +<hkern u1="é" u2="V" k="134" /> +<hkern u1="é" u2="T" k="54" /> +<hkern u1="é" u2="M" k="25" /> +<hkern u1="é" u2="H" k="34" /> +<hkern u1="é" u2="F" k="34" /> +<hkern u1="é" u2="E" k="34" /> +<hkern u1="é" u2="D" k="34" /> +<hkern u1="é" u2="B" k="34" /> +<hkern u1="é" u2="?" k="26" /> +<hkern u1="é" u2="/" k="70" /> +<hkern u1="é" u2="*" k="21" /> +<hkern u1="é" u2=")" k="57" /> +<hkern u1="ê" u2="™" k="100" /> +<hkern u1="ê" u2="}" k="44" /> +<hkern u1="ê" u2="x" k="20" /> +<hkern u1="ê" u2="]" k="100" /> +<hkern u1="ê" u2="\" k="98" /> +<hkern u1="ê" u2="X" k="33" /> +<hkern u1="ê" u2="W" k="120" /> +<hkern u1="ê" u2="V" k="134" /> +<hkern u1="ê" u2="T" k="54" /> +<hkern u1="ê" u2="M" k="25" /> +<hkern u1="ê" u2="H" k="34" /> +<hkern u1="ê" u2="F" k="34" /> +<hkern u1="ê" u2="E" k="34" /> +<hkern u1="ê" u2="D" k="34" /> +<hkern u1="ê" u2="B" k="34" /> +<hkern u1="ê" u2="?" k="26" /> +<hkern u1="ê" u2="/" k="70" /> +<hkern u1="ê" u2="*" k="21" /> +<hkern u1="ê" u2=")" k="57" /> +<hkern u1="ë" u2="™" k="100" /> +<hkern u1="ë" u2="}" k="44" /> +<hkern u1="ë" u2="x" k="20" /> +<hkern u1="ë" u2="]" k="100" /> +<hkern u1="ë" u2="\" k="98" /> +<hkern u1="ë" u2="X" k="33" /> +<hkern u1="ë" u2="W" k="120" /> +<hkern u1="ë" u2="V" k="134" /> +<hkern u1="ë" u2="T" k="54" /> +<hkern u1="ë" u2="M" k="25" /> +<hkern u1="ë" u2="H" k="34" /> +<hkern u1="ë" u2="F" k="34" /> +<hkern u1="ë" u2="E" k="34" /> +<hkern u1="ë" u2="D" k="34" /> +<hkern u1="ë" u2="B" k="34" /> +<hkern u1="ë" u2="?" k="26" /> +<hkern u1="ë" u2="/" k="70" /> +<hkern u1="ë" u2="*" k="21" /> +<hkern u1="ë" u2=")" k="57" /> +<hkern u1="ì" u2="W" k="30" /> +<hkern u1="ì" u2="V" k="28" /> +<hkern u1="ì" u2="T" k="28" /> +<hkern u1="ì" u2="J" k="-14" /> +<hkern u1="ì" u2="/" k="20" /> +<hkern u1="ì" u2="*" k="23" /> +<hkern u1="í" u2="W" k="30" /> +<hkern u1="í" u2="V" k="28" /> +<hkern u1="í" u2="T" k="28" /> +<hkern u1="í" u2="J" k="-14" /> +<hkern u1="í" u2="/" k="20" /> +<hkern u1="í" u2="*" k="23" /> +<hkern u1="î" u2="W" k="30" /> +<hkern u1="î" u2="V" k="28" /> +<hkern u1="î" u2="T" k="28" /> +<hkern u1="î" u2="J" k="-14" /> +<hkern u1="î" u2="/" k="20" /> +<hkern u1="î" u2="*" k="23" /> +<hkern u1="ï" u2="W" k="30" /> +<hkern u1="ï" u2="V" k="28" /> +<hkern u1="ï" u2="T" k="28" /> +<hkern u1="ï" u2="J" k="-14" /> +<hkern u1="ï" u2="/" k="20" /> +<hkern u1="ï" u2="*" k="23" /> +<hkern u1="ð" u2="™" k="18" /> +<hkern u1="ð" u2="…" k="17" /> +<hkern u1="ð" u2="„" k="17" /> +<hkern u1="ð" u2="”" k="21" /> +<hkern u1="ð" u2="“" k="17" /> +<hkern u1="ð" u2="‚" k="17" /> +<hkern u1="ð" u2="’" k="21" /> +<hkern u1="ð" u2="‘" k="17" /> +<hkern u1="ð" u2="}" k="38" /> +<hkern u1="ð" u2="]" k="66" /> +<hkern u1="ð" u2="\" k="39" /> +<hkern u1="ð" u2="/" k="95" /> +<hkern u1="ð" u2="." k="17" /> +<hkern u1="ð" u2="," k="17" /> +<hkern u1="ð" u2=")" k="44" /> +<hkern u1="ð" u2="'" k="17" /> +<hkern u1="ð" u2=""" k="17" /> +<hkern u1="ñ" u2="™" k="26" /> +<hkern u1="ñ" u2="”" k="24" /> +<hkern u1="ñ" u2="“" k="30" /> +<hkern u1="ñ" u2="’" k="24" /> +<hkern u1="ñ" u2="‘" k="30" /> +<hkern u1="ñ" u2="]" k="27" /> +<hkern u1="ñ" u2="/" k="21" /> +<hkern u1="ñ" u2="*" k="33" /> +<hkern u1="ñ" u2="'" k="25" /> +<hkern u1="ñ" u2=""" k="25" /> +<hkern u1="ò" u2="™" k="40" /> +<hkern u1="ò" u2="}" k="51" /> +<hkern u1="ò" u2="x" k="22" /> +<hkern u1="ò" u2="]" k="105" /> +<hkern u1="ò" u2="\" k="114" /> +<hkern u1="ò" u2="X" k="84" /> +<hkern u1="ò" u2="W" k="124" /> +<hkern u1="ò" u2="V" k="146" /> +<hkern u1="ò" u2="T" k="103" /> +<hkern u1="ò" u2="M" k="39" /> +<hkern u1="ò" u2="J" k="9" /> +<hkern u1="ò" u2="H" k="47" /> +<hkern u1="ò" u2="F" k="47" /> +<hkern u1="ò" u2="E" k="47" /> +<hkern u1="ò" u2="D" k="47" /> +<hkern u1="ò" u2="B" k="47" /> +<hkern u1="ò" u2="?" k="31" /> +<hkern u1="ò" u2="/" k="90" /> +<hkern u1="ò" u2="*" k="19" /> +<hkern u1="ò" u2=")" k="120" /> +<hkern u1="ó" u2="™" k="40" /> +<hkern u1="ó" u2="}" k="51" /> +<hkern u1="ó" u2="x" k="22" /> +<hkern u1="ó" u2="]" k="105" /> +<hkern u1="ó" u2="\" k="114" /> +<hkern u1="ó" u2="X" k="84" /> +<hkern u1="ó" u2="W" k="124" /> +<hkern u1="ó" u2="V" k="146" /> +<hkern u1="ó" u2="T" k="103" /> +<hkern u1="ó" u2="M" k="39" /> +<hkern u1="ó" u2="J" k="9" /> +<hkern u1="ó" u2="H" k="47" /> +<hkern u1="ó" u2="F" k="47" /> +<hkern u1="ó" u2="E" k="47" /> +<hkern u1="ó" u2="D" k="47" /> +<hkern u1="ó" u2="B" k="47" /> +<hkern u1="ó" u2="?" k="31" /> +<hkern u1="ó" u2="/" k="90" /> +<hkern u1="ó" u2="*" k="19" /> +<hkern u1="ó" u2=")" k="120" /> +<hkern u1="ô" u2="™" k="40" /> +<hkern u1="ô" u2="}" k="51" /> +<hkern u1="ô" u2="x" k="22" /> +<hkern u1="ô" u2="]" k="105" /> +<hkern u1="ô" u2="\" k="114" /> +<hkern u1="ô" u2="X" k="84" /> +<hkern u1="ô" u2="W" k="124" /> +<hkern u1="ô" u2="V" k="146" /> +<hkern u1="ô" u2="T" k="103" /> +<hkern u1="ô" u2="M" k="39" /> +<hkern u1="ô" u2="J" k="9" /> +<hkern u1="ô" u2="H" k="47" /> +<hkern u1="ô" u2="F" k="47" /> +<hkern u1="ô" u2="E" k="47" /> +<hkern u1="ô" u2="D" k="47" /> +<hkern u1="ô" u2="B" k="47" /> +<hkern u1="ô" u2="?" k="31" /> +<hkern u1="ô" u2="/" k="90" /> +<hkern u1="ô" u2="*" k="19" /> +<hkern u1="ô" u2=")" k="120" /> +<hkern u1="õ" u2="™" k="40" /> +<hkern u1="õ" u2="}" k="51" /> +<hkern u1="õ" u2="x" k="22" /> +<hkern u1="õ" u2="]" k="105" /> +<hkern u1="õ" u2="\" k="114" /> +<hkern u1="õ" u2="X" k="84" /> +<hkern u1="õ" u2="W" k="124" /> +<hkern u1="õ" u2="V" k="146" /> +<hkern u1="õ" u2="T" k="103" /> +<hkern u1="õ" u2="M" k="39" /> +<hkern u1="õ" u2="J" k="9" /> +<hkern u1="õ" u2="H" k="47" /> +<hkern u1="õ" u2="F" k="47" /> +<hkern u1="õ" u2="E" k="47" /> +<hkern u1="õ" u2="D" k="47" /> +<hkern u1="õ" u2="B" k="47" /> +<hkern u1="õ" u2="?" k="31" /> +<hkern u1="õ" u2="/" k="90" /> +<hkern u1="õ" u2="*" k="19" /> +<hkern u1="õ" u2=")" k="120" /> +<hkern u1="ö" u2="™" k="40" /> +<hkern u1="ö" u2="}" k="51" /> +<hkern u1="ö" u2="x" k="22" /> +<hkern u1="ö" u2="]" k="105" /> +<hkern u1="ö" u2="\" k="114" /> +<hkern u1="ö" u2="X" k="84" /> +<hkern u1="ö" u2="W" k="124" /> +<hkern u1="ö" u2="V" k="146" /> +<hkern u1="ö" u2="T" k="103" /> +<hkern u1="ö" u2="M" k="39" /> +<hkern u1="ö" u2="J" k="9" /> +<hkern u1="ö" u2="H" k="47" /> +<hkern u1="ö" u2="F" k="47" /> +<hkern u1="ö" u2="E" k="47" /> +<hkern u1="ö" u2="D" k="47" /> +<hkern u1="ö" u2="B" k="47" /> +<hkern u1="ö" u2="?" k="31" /> +<hkern u1="ö" u2="/" k="90" /> +<hkern u1="ö" u2="*" k="19" /> +<hkern u1="ö" u2=")" k="120" /> +<hkern u1="ø" u2="™" k="40" /> +<hkern u1="ø" u2="}" k="51" /> +<hkern u1="ø" u2="x" k="22" /> +<hkern u1="ø" u2="]" k="105" /> +<hkern u1="ø" u2="\" k="114" /> +<hkern u1="ø" u2="X" k="84" /> +<hkern u1="ø" u2="W" k="124" /> +<hkern u1="ø" u2="V" k="146" /> +<hkern u1="ø" u2="T" k="103" /> +<hkern u1="ø" u2="M" k="39" /> +<hkern u1="ø" u2="J" k="9" /> +<hkern u1="ø" u2="H" k="47" /> +<hkern u1="ø" u2="F" k="47" /> +<hkern u1="ø" u2="E" k="47" /> +<hkern u1="ø" u2="D" k="47" /> +<hkern u1="ø" u2="B" k="47" /> +<hkern u1="ø" u2="?" k="31" /> +<hkern u1="ø" u2="/" k="90" /> +<hkern u1="ø" u2="*" k="19" /> +<hkern u1="ø" u2=")" k="120" /> +<hkern u1="ù" u2="™" k="20" /> +<hkern u1="ù" u2="]" k="54" /> +<hkern u1="ù" u2="\" k="80" /> +<hkern u1="ù" u2="W" k="80" /> +<hkern u1="ù" u2="V" k="95" /> +<hkern u1="ù" u2="T" k="51" /> +<hkern u1="ù" u2="J" k="-23" /> +<hkern u1="ù" u2="&" k="-14" /> +<hkern u1="ú" u2="™" k="20" /> +<hkern u1="ú" u2="]" k="54" /> +<hkern u1="ú" u2="\" k="80" /> +<hkern u1="ú" u2="W" k="80" /> +<hkern u1="ú" u2="V" k="95" /> +<hkern u1="ú" u2="T" k="51" /> +<hkern u1="ú" u2="J" k="-23" /> +<hkern u1="ú" u2="&" k="-14" /> +<hkern u1="û" u2="™" k="20" /> +<hkern u1="û" u2="]" k="54" /> +<hkern u1="û" u2="\" k="80" /> +<hkern u1="û" u2="W" k="80" /> +<hkern u1="û" u2="V" k="95" /> +<hkern u1="û" u2="T" k="51" /> +<hkern u1="û" u2="J" k="-23" /> +<hkern u1="û" u2="&" k="-14" /> +<hkern u1="ü" u2="™" k="20" /> +<hkern u1="ü" u2="]" k="54" /> +<hkern u1="ü" u2="\" k="80" /> +<hkern u1="ü" u2="W" k="80" /> +<hkern u1="ü" u2="V" k="95" /> +<hkern u1="ü" u2="T" k="51" /> +<hkern u1="ü" u2="J" k="-23" /> +<hkern u1="ü" u2="&" k="-14" /> +<hkern u1="ý" u2="™" k="29" /> +<hkern u1="ý" u2="}" k="46" /> +<hkern u1="ý" u2="x" k="8" /> +<hkern u1="ý" u2="]" k="89" /> +<hkern u1="ý" u2="\" k="87" /> +<hkern u1="ý" u2="X" k="70" /> +<hkern u1="ý" u2="W" k="104" /> +<hkern u1="ý" u2="V" k="115" /> +<hkern u1="ý" u2="T" k="39" /> +<hkern u1="ý" u2="M" k="40" /> +<hkern u1="ý" u2="J" k="29" /> +<hkern u1="ý" u2="H" k="44" /> +<hkern u1="ý" u2="F" k="44" /> +<hkern u1="ý" u2="E" k="44" /> +<hkern u1="ý" u2="D" k="44" /> +<hkern u1="ý" u2="B" k="44" /> +<hkern u1="ý" u2="/" k="73" /> +<hkern u1="ý" u2=")" k="56" /> +<hkern u1="þ" u2="™" k="44" /> +<hkern u1="þ" u2="}" k="46" /> +<hkern u1="þ" u2="x" k="17" /> +<hkern u1="þ" u2="]" k="97" /> +<hkern u1="þ" u2="\" k="91" /> +<hkern u1="þ" u2="X" k="75" /> +<hkern u1="þ" u2="W" k="117" /> +<hkern u1="þ" u2="V" k="133" /> +<hkern u1="þ" u2="T" k="65" /> +<hkern u1="þ" u2="M" k="39" /> +<hkern u1="þ" u2="J" k="13" /> +<hkern u1="þ" u2="H" k="44" /> +<hkern u1="þ" u2="F" k="44" /> +<hkern u1="þ" u2="E" k="44" /> +<hkern u1="þ" u2="D" k="44" /> +<hkern u1="þ" u2="B" k="44" /> +<hkern u1="þ" u2="?" k="27" /> +<hkern u1="þ" u2="/" k="92" /> +<hkern u1="þ" u2="*" k="22" /> +<hkern u1="þ" u2=")" k="59" /> +<hkern u1="ÿ" u2="™" k="29" /> +<hkern u1="ÿ" u2="}" k="46" /> +<hkern u1="ÿ" u2="x" k="8" /> +<hkern u1="ÿ" u2="]" k="89" /> +<hkern u1="ÿ" u2="\" k="87" /> +<hkern u1="ÿ" u2="X" k="70" /> +<hkern u1="ÿ" u2="W" k="104" /> +<hkern u1="ÿ" u2="V" k="115" /> +<hkern u1="ÿ" u2="T" k="39" /> +<hkern u1="ÿ" u2="M" k="40" /> +<hkern u1="ÿ" u2="J" k="29" /> +<hkern u1="ÿ" u2="H" k="44" /> +<hkern u1="ÿ" u2="F" k="44" /> +<hkern u1="ÿ" u2="E" k="44" /> +<hkern u1="ÿ" u2="D" k="44" /> +<hkern u1="ÿ" u2="B" k="44" /> +<hkern u1="ÿ" u2="/" k="73" /> +<hkern u1="ÿ" u2=")" k="56" /> +<hkern u1="Œ" u2="w" k="11" /> +<hkern u1="Œ" u2="v" k="12" /> +<hkern u1="Œ" u2="t" k="9" /> +<hkern u1="Œ" u2="r" k="12" /> +<hkern u1="Œ" u2="p" k="36" /> +<hkern u1="Œ" u2="m" k="11" /> +<hkern u1="Œ" u2="j" k="41" /> +<hkern u1="Œ" u2="]" k="20" /> +<hkern u1="Œ" u2="/" k="45" /> +<hkern u1="œ" u2="™" k="100" /> +<hkern u1="œ" u2="}" k="44" /> +<hkern u1="œ" u2="x" k="20" /> +<hkern u1="œ" u2="]" k="100" /> +<hkern u1="œ" u2="\" k="98" /> +<hkern u1="œ" u2="X" k="33" /> +<hkern u1="œ" u2="W" k="120" /> +<hkern u1="œ" u2="V" k="134" /> +<hkern u1="œ" u2="T" k="54" /> +<hkern u1="œ" u2="M" k="25" /> +<hkern u1="œ" u2="H" k="34" /> +<hkern u1="œ" u2="F" k="34" /> +<hkern u1="œ" u2="E" k="34" /> +<hkern u1="œ" u2="D" k="34" /> +<hkern u1="œ" u2="B" k="34" /> +<hkern u1="œ" u2="?" k="26" /> +<hkern u1="œ" u2="/" k="70" /> +<hkern u1="œ" u2="*" k="21" /> +<hkern u1="œ" u2=")" k="57" /> +<hkern u1="Ÿ" u2="™" k="-74" /> +<hkern u1="Ÿ" u2="‹" k="139" /> +<hkern u1="Ÿ" u2="þ" k="-78" /> +<hkern u1="Ÿ" u2="õ" k="125" /> +<hkern u1="Ÿ" u2="ð" k="127" /> +<hkern u1="Ÿ" u2="ï" k="-30" /> +<hkern u1="Ÿ" u2="î" k="-25" /> +<hkern u1="Ÿ" u2="ì" k="-8" /> +<hkern u1="Ÿ" u2="æ" k="191" /> +<hkern u1="Ÿ" u2="Æ" k="140" /> +<hkern u1="Ÿ" u2="®" k="42" /> +<hkern u1="Ÿ" u2="«" k="139" /> +<hkern u1="Ÿ" u2="}" k="-36" /> +<hkern u1="Ÿ" u2="x" k="152" /> +<hkern u1="Ÿ" u2="w" k="141" /> +<hkern u1="Ÿ" u2="v" k="138" /> +<hkern u1="Ÿ" u2="t" k="75" /> +<hkern u1="Ÿ" u2="r" k="143" /> +<hkern u1="Ÿ" u2="p" k="164" /> +<hkern u1="Ÿ" u2="m" k="144" /> +<hkern u1="Ÿ" u2="k" k="-50" /> +<hkern u1="Ÿ" u2="j" k="39" /> +<hkern u1="Ÿ" u2="b" k="-80" /> +<hkern u1="Ÿ" u2="]" k="-90" /> +<hkern u1="Ÿ" u2="\" k="-63" /> +<hkern u1="Ÿ" u2="X" k="-65" /> +<hkern u1="Ÿ" u2="W" k="-75" /> +<hkern u1="Ÿ" u2="V" k="-75" /> +<hkern u1="Ÿ" u2="C" k="62" /> +<hkern u1="Ÿ" u2="@" k="86" /> +<hkern u1="Ÿ" u2=";" k="82" /> +<hkern u1="Ÿ" u2=":" k="78" /> +<hkern u1="Ÿ" u2="7" k="-93" /> +<hkern u1="Ÿ" u2="6" k="31" /> +<hkern u1="Ÿ" u2="4" k="97" /> +<hkern u1="Ÿ" u2="0" k="27" /> +<hkern u1="Ÿ" u2="/" k="171" /> +<hkern u1="Ÿ" u2="*" k="22" /> +<hkern u1="Ÿ" u2=")" k="-44" /> +<hkern u1="–" u2="Æ" k="132" /> +<hkern u1="–" u2="X" k="110" /> +<hkern u1="–" u2="W" k="83" /> +<hkern u1="–" u2="V" k="95" /> +<hkern u1="–" u2="T" k="154" /> +<hkern u1="–" u2="M" k="39" /> +<hkern u1="–" u2="J" k="79" /> +<hkern u1="–" u2="H" k="41" /> +<hkern u1="–" u2="F" k="40" /> +<hkern u1="–" u2="E" k="40" /> +<hkern u1="–" u2="D" k="40" /> +<hkern u1="–" u2="B" k="40" /> +<hkern u1="–" u2="8" k="25" /> +<hkern u1="–" u2="7" k="129" /> +<hkern u1="–" u2="3" k="48" /> +<hkern u1="–" u2="2" k="69" /> +<hkern u1="–" u2="1" k="54" /> +<hkern u1="–" u2=")" k="100" /> +<hkern u1="—" u2="Æ" k="132" /> +<hkern u1="—" u2="X" k="110" /> +<hkern u1="—" u2="W" k="83" /> +<hkern u1="—" u2="V" k="95" /> +<hkern u1="—" u2="T" k="154" /> +<hkern u1="—" u2="M" k="39" /> +<hkern u1="—" u2="J" k="79" /> +<hkern u1="—" u2="H" k="41" /> +<hkern u1="—" u2="F" k="40" /> +<hkern u1="—" u2="E" k="40" /> +<hkern u1="—" u2="D" k="40" /> +<hkern u1="—" u2="B" k="40" /> +<hkern u1="—" u2="8" k="25" /> +<hkern u1="—" u2="7" k="129" /> +<hkern u1="—" u2="3" k="48" /> +<hkern u1="—" u2="2" k="69" /> +<hkern u1="—" u2="1" k="54" /> +<hkern u1="—" u2=")" k="100" /> +<hkern u1="‘" u2="…" k="216" /> +<hkern u1="‘" u2="„" k="216" /> +<hkern u1="‘" u2="‚" k="216" /> +<hkern u1="‘" u2="œ" k="33" /> +<hkern u1="‘" u2="ø" k="33" /> +<hkern u1="‘" u2="ö" k="33" /> +<hkern u1="‘" u2="õ" k="33" /> +<hkern u1="‘" u2="ô" k="33" /> +<hkern u1="‘" u2="ó" k="33" /> +<hkern u1="‘" u2="ò" k="33" /> +<hkern u1="‘" u2="ð" k="48" /> +<hkern u1="‘" u2="ë" k="33" /> +<hkern u1="‘" u2="ê" k="33" /> +<hkern u1="‘" u2="é" k="33" /> +<hkern u1="‘" u2="è" k="33" /> +<hkern u1="‘" u2="ç" k="33" /> +<hkern u1="‘" u2="å" k="45" /> +<hkern u1="‘" u2="ä" k="45" /> +<hkern u1="‘" u2="ã" k="45" /> +<hkern u1="‘" u2="â" k="45" /> +<hkern u1="‘" u2="á" k="45" /> +<hkern u1="‘" u2="à" k="45" /> +<hkern u1="‘" u2="Æ" k="207" /> +<hkern u1="‘" u2="Å" k="109" /> +<hkern u1="‘" u2="Ä" k="109" /> +<hkern u1="‘" u2="Ã" k="109" /> +<hkern u1="‘" u2="Â" k="109" /> +<hkern u1="‘" u2="Á" k="109" /> +<hkern u1="‘" u2="À" k="109" /> +<hkern u1="‘" u2="q" k="67" /> +<hkern u1="‘" u2="o" k="33" /> +<hkern u1="‘" u2="g" k="67" /> +<hkern u1="‘" u2="e" k="33" /> +<hkern u1="‘" u2="d" k="67" /> +<hkern u1="‘" u2="c" k="33" /> +<hkern u1="‘" u2="a" k="45" /> +<hkern u1="‘" u2="X" k="-25" /> +<hkern u1="‘" u2="T" k="-50" /> +<hkern u1="‘" u2="J" k="20" /> +<hkern u1="‘" u2="A" k="109" /> +<hkern u1="‘" u2="." k="216" /> +<hkern u1="‘" u2="," k="216" /> +<hkern u1="’" u2="‹" k="99" /> +<hkern u1="’" u2="…" k="200" /> +<hkern u1="’" u2="„" k="200" /> +<hkern u1="’" u2="‚" k="200" /> +<hkern u1="’" u2="Ÿ" k="-50" /> +<hkern u1="’" u2="œ" k="52" /> +<hkern u1="’" u2="ø" k="52" /> +<hkern u1="’" u2="ö" k="52" /> +<hkern u1="’" u2="õ" k="52" /> +<hkern u1="’" u2="ô" k="52" /> +<hkern u1="’" u2="ó" k="52" /> +<hkern u1="’" u2="ò" k="52" /> +<hkern u1="’" u2="ð" k="48" /> +<hkern u1="’" u2="î" k="-20" /> +<hkern u1="’" u2="ë" k="52" /> +<hkern u1="’" u2="ê" k="52" /> +<hkern u1="’" u2="é" k="52" /> +<hkern u1="’" u2="è" k="52" /> +<hkern u1="’" u2="ç" k="52" /> +<hkern u1="’" u2="æ" k="33" /> +<hkern u1="’" u2="å" k="65" /> +<hkern u1="’" u2="ä" k="65" /> +<hkern u1="’" u2="ã" k="65" /> +<hkern u1="’" u2="â" k="65" /> +<hkern u1="’" u2="á" k="65" /> +<hkern u1="’" u2="à" k="65" /> +<hkern u1="’" u2="Ý" k="-50" /> +<hkern u1="’" u2="Æ" k="200" /> +<hkern u1="’" u2="Å" k="123" /> +<hkern u1="’" u2="Ä" k="123" /> +<hkern u1="’" u2="Ã" k="123" /> +<hkern u1="’" u2="Â" k="123" /> +<hkern u1="’" u2="Á" k="123" /> +<hkern u1="’" u2="À" k="123" /> +<hkern u1="’" u2="«" k="100" /> +<hkern u1="’" u2="s" k="23" /> +<hkern u1="’" u2="q" k="90" /> +<hkern u1="’" u2="o" k="52" /> +<hkern u1="’" u2="g" k="90" /> +<hkern u1="’" u2="e" k="52" /> +<hkern u1="’" u2="d" k="90" /> +<hkern u1="’" u2="c" k="52" /> +<hkern u1="’" u2="a" k="65" /> +<hkern u1="’" u2="Y" k="-50" /> +<hkern u1="’" u2="X" k="-23" /> +<hkern u1="’" u2="W" k="-27" /> +<hkern u1="’" u2="V" k="-40" /> +<hkern u1="’" u2="A" k="123" /> +<hkern u1="’" u2="@" k="38" /> +<hkern u1="’" u2="/" k="200" /> +<hkern u1="’" u2="." k="200" /> +<hkern u1="’" u2="," k="200" /> +<hkern u1="‚" u2="™" k="130" /> +<hkern u1="‚" u2="”" k="238" /> +<hkern u1="‚" u2="“" k="238" /> +<hkern u1="‚" u2="w" k="20" /> +<hkern u1="‚" u2="v" k="45" /> +<hkern u1="‚" u2="t" k="50" /> +<hkern u1="‚" u2="p" k="39" /> +<hkern u1="‚" u2="m" k="50" /> +<hkern u1="‚" u2="j" k="46" /> +<hkern u1="‚" u2="W" k="160" /> +<hkern u1="‚" u2="V" k="183" /> +<hkern u1="‚" u2="T" k="134" /> +<hkern u1="‚" u2="C" k="56" /> +<hkern u1="‚" u2="7" k="64" /> +<hkern u1="‚" u2="6" k="21" /> +<hkern u1="‚" u2="4" k="23" /> +<hkern u1="‚" u2="0" k="32" /> +<hkern u1="‚" u2="*" k="145" /> +<hkern u1="‚" u2=")" k="75" /> +<hkern u1="‚" u2=""" k="242" /> +<hkern u1="“" u2="…" k="238" /> +<hkern u1="“" u2="„" k="238" /> +<hkern u1="“" u2="‚" k="238" /> +<hkern u1="“" u2="œ" k="33" /> +<hkern u1="“" u2="ø" k="33" /> +<hkern u1="“" u2="ö" k="33" /> +<hkern u1="“" u2="õ" k="33" /> +<hkern u1="“" u2="ô" k="33" /> +<hkern u1="“" u2="ó" k="33" /> +<hkern u1="“" u2="ò" k="33" /> +<hkern u1="“" u2="ð" k="48" /> +<hkern u1="“" u2="ë" k="33" /> +<hkern u1="“" u2="ê" k="33" /> +<hkern u1="“" u2="é" k="33" /> +<hkern u1="“" u2="è" k="33" /> +<hkern u1="“" u2="ç" k="33" /> +<hkern u1="“" u2="å" k="45" /> +<hkern u1="“" u2="ä" k="45" /> +<hkern u1="“" u2="ã" k="45" /> +<hkern u1="“" u2="â" k="45" /> +<hkern u1="“" u2="á" k="45" /> +<hkern u1="“" u2="à" k="45" /> +<hkern u1="“" u2="Æ" k="207" /> +<hkern u1="“" u2="Å" k="109" /> +<hkern u1="“" u2="Ä" k="109" /> +<hkern u1="“" u2="Ã" k="109" /> +<hkern u1="“" u2="Â" k="109" /> +<hkern u1="“" u2="Á" k="109" /> +<hkern u1="“" u2="À" k="109" /> +<hkern u1="“" u2="q" k="67" /> +<hkern u1="“" u2="o" k="33" /> +<hkern u1="“" u2="g" k="67" /> +<hkern u1="“" u2="e" k="33" /> +<hkern u1="“" u2="d" k="67" /> +<hkern u1="“" u2="c" k="33" /> +<hkern u1="“" u2="a" k="45" /> +<hkern u1="“" u2="J" k="20" /> +<hkern u1="“" u2="A" k="109" /> +<hkern u1="“" u2="." k="238" /> +<hkern u1="“" u2="," k="238" /> +<hkern u1="”" u2="…" k="238" /> +<hkern u1="”" u2="„" k="238" /> +<hkern u1="”" u2="‚" k="238" /> +<hkern u1="”" u2="Ÿ" k="-50" /> +<hkern u1="”" u2="œ" k="52" /> +<hkern u1="”" u2="ø" k="52" /> +<hkern u1="”" u2="ö" k="52" /> +<hkern u1="”" u2="õ" k="52" /> +<hkern u1="”" u2="ô" k="52" /> +<hkern u1="”" u2="ó" k="52" /> +<hkern u1="”" u2="ò" k="52" /> +<hkern u1="”" u2="ð" k="48" /> +<hkern u1="”" u2="î" k="-20" /> +<hkern u1="”" u2="ë" k="52" /> +<hkern u1="”" u2="ê" k="52" /> +<hkern u1="”" u2="é" k="52" /> +<hkern u1="”" u2="è" k="52" /> +<hkern u1="”" u2="ç" k="52" /> +<hkern u1="”" u2="æ" k="33" /> +<hkern u1="”" u2="å" k="65" /> +<hkern u1="”" u2="ä" k="65" /> +<hkern u1="”" u2="ã" k="65" /> +<hkern u1="”" u2="â" k="65" /> +<hkern u1="”" u2="á" k="65" /> +<hkern u1="”" u2="à" k="65" /> +<hkern u1="”" u2="Ý" k="-50" /> +<hkern u1="”" u2="Æ" k="214" /> +<hkern u1="”" u2="Å" k="123" /> +<hkern u1="”" u2="Ä" k="123" /> +<hkern u1="”" u2="Ã" k="123" /> +<hkern u1="”" u2="Â" k="123" /> +<hkern u1="”" u2="Á" k="123" /> +<hkern u1="”" u2="À" k="123" /> +<hkern u1="”" u2="s" k="23" /> +<hkern u1="”" u2="q" k="90" /> +<hkern u1="”" u2="o" k="52" /> +<hkern u1="”" u2="g" k="90" /> +<hkern u1="”" u2="e" k="52" /> +<hkern u1="”" u2="d" k="90" /> +<hkern u1="”" u2="c" k="52" /> +<hkern u1="”" u2="a" k="65" /> +<hkern u1="”" u2="Y" k="-50" /> +<hkern u1="”" u2="X" k="-23" /> +<hkern u1="”" u2="W" k="-27" /> +<hkern u1="”" u2="V" k="-40" /> +<hkern u1="”" u2="A" k="123" /> +<hkern u1="”" u2="." k="238" /> +<hkern u1="”" u2="," k="238" /> +<hkern u1="„" u2="™" k="130" /> +<hkern u1="„" u2="”" k="238" /> +<hkern u1="„" u2="“" k="238" /> +<hkern u1="„" u2="w" k="20" /> +<hkern u1="„" u2="v" k="45" /> +<hkern u1="„" u2="t" k="50" /> +<hkern u1="„" u2="p" k="39" /> +<hkern u1="„" u2="m" k="50" /> +<hkern u1="„" u2="j" k="46" /> +<hkern u1="„" u2="W" k="160" /> +<hkern u1="„" u2="V" k="183" /> +<hkern u1="„" u2="T" k="134" /> +<hkern u1="„" u2="C" k="56" /> +<hkern u1="„" u2="7" k="64" /> +<hkern u1="„" u2="6" k="21" /> +<hkern u1="„" u2="4" k="23" /> +<hkern u1="„" u2="0" k="32" /> +<hkern u1="„" u2="*" k="145" /> +<hkern u1="„" u2=")" k="75" /> +<hkern u1="„" u2=""" k="287" /> +<hkern u1="‹" u2="Æ" k="-24" /> +<hkern u1="‹" u2="W" k="24" /> +<hkern u1="‹" u2="V" k="24" /> +<hkern u1="›" u2="”" k="91" /> +<hkern u1="›" u2="’" k="91" /> +<hkern u1="›" u2="Ÿ" k="147" /> +<hkern u1="›" u2="Þ" k="25" /> +<hkern u1="›" u2="Ý" k="147" /> +<hkern u1="›" u2="Ñ" k="25" /> +<hkern u1="›" u2="Ð" k="25" /> +<hkern u1="›" u2="Ï" k="25" /> +<hkern u1="›" u2="Î" k="25" /> +<hkern u1="›" u2="Í" k="25" /> +<hkern u1="›" u2="Ì" k="25" /> +<hkern u1="›" u2="Ë" k="25" /> +<hkern u1="›" u2="Ê" k="25" /> +<hkern u1="›" u2="É" k="25" /> +<hkern u1="›" u2="È" k="25" /> +<hkern u1="›" u2="Æ" k="60" /> +<hkern u1="›" u2="Å" k="28" /> +<hkern u1="›" u2="Ä" k="28" /> +<hkern u1="›" u2="Ã" k="28" /> +<hkern u1="›" u2="Â" k="28" /> +<hkern u1="›" u2="Á" k="28" /> +<hkern u1="›" u2="À" k="28" /> +<hkern u1="›" u2="Z" k="48" /> +<hkern u1="›" u2="Y" k="147" /> +<hkern u1="›" u2="X" k="53" /> +<hkern u1="›" u2="W" k="80" /> +<hkern u1="›" u2="V" k="94" /> +<hkern u1="›" u2="T" k="98" /> +<hkern u1="›" u2="R" k="25" /> +<hkern u1="›" u2="P" k="25" /> +<hkern u1="›" u2="N" k="25" /> +<hkern u1="›" u2="M" k="21" /> +<hkern u1="›" u2="L" k="25" /> +<hkern u1="›" u2="K" k="25" /> +<hkern u1="›" u2="J" k="28" /> +<hkern u1="›" u2="I" k="25" /> +<hkern u1="›" u2="H" k="25" /> +<hkern u1="›" u2="F" k="24" /> +<hkern u1="›" u2="E" k="24" /> +<hkern u1="›" u2="D" k="24" /> +<hkern u1="›" u2="B" k="25" /> +<hkern u1="›" u2="A" k="28" /> +<hkern u1="›" u2="'" k="88" /> +<hkern u1="›" u2=""" k="88" /> +<hkern u1="™" u2="Ÿ" k="-29" /> +<hkern u1="™" u2="ÿ" k="-38" /> +<hkern u1="™" u2="ý" k="-38" /> +<hkern u1="™" u2="Ý" k="-29" /> +<hkern u1="™" u2="Ð" k="-11" /> +<hkern u1="™" u2="Æ" k="131" /> +<hkern u1="™" u2="Å" k="65" /> +<hkern u1="™" u2="Ä" k="65" /> +<hkern u1="™" u2="Ã" k="65" /> +<hkern u1="™" u2="Â" k="65" /> +<hkern u1="™" u2="Á" k="65" /> +<hkern u1="™" u2="À" k="65" /> +<hkern u1="™" u2="y" k="-38" /> +<hkern u1="™" u2="Y" k="-29" /> +<hkern u1="™" u2="X" k="-18" /> +<hkern u1="™" u2="W" k="-15" /> +<hkern u1="™" u2="V" k="-24" /> +<hkern u1="™" u2="J" k="25" /> +<hkern u1="™" u2="A" k="65" /> +<hkern u1="fi" u2="W" k="30" /> +<hkern u1="fi" u2="V" k="28" /> +<hkern u1="fi" u2="T" k="28" /> +<hkern u1="fi" u2="J" k="-14" /> +<hkern u1="fi" u2="/" k="20" /> +<hkern u1="fi" u2="*" k="23" /> +<hkern u1="fl" u2="·" k="130" /> +<hkern u1="fl" u2="W" k="22" /> +<hkern u1="fl" u2="V" k="20" /> +<hkern u1="fl" u2="T" k="14" /> +<hkern u1="fl" u2="J" k="-19" /> +<hkern g1="C,Ccedilla" g2="hyphen,uni00AD,endash,emdash" k="39" /> +<hkern g1="D,Eth" g2="l" k="10" /> +<hkern g1="D,Eth" g2="Y,Yacute,Ydieresis" k="72" /> +<hkern g1="D,Eth" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="14" /> +<hkern g1="D,Eth" g2="h,thorn" k="10" /> +<hkern g1="D,Eth" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="43" /> +<hkern g1="D,Eth" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="54" /> +<hkern g1="D,Eth" g2="I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="23" /> +<hkern g1="D,Eth" g2="Z" k="10" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="n,ntilde" k="11" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="i,igrave,iacute,icircumflex,idieresis" k="11" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="y,yacute,ydieresis" k="30" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="Y,Yacute,Ydieresis" k="14" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="hyphen,uni00AD,endash,emdash" k="54" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="f,germandbls,uniFB01,uniFB02" k="9" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="u,ugrave,uacute,ucircumflex,udieresis" k="12" /> +<hkern g1="I,Igrave,Iacute,Icircumflex,Idieresis" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="39" /> +<hkern g1="I,Igrave,Iacute,Icircumflex,Idieresis" g2="n,ntilde" k="17" /> +<hkern g1="I,Igrave,Iacute,Icircumflex,Idieresis" g2="l" k="12" /> +<hkern g1="I,Igrave,Iacute,Icircumflex,Idieresis" g2="d,g,q" k="33" /> +<hkern g1="I,Igrave,Iacute,Icircumflex,Idieresis" g2="G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="19" /> +<hkern g1="I,Igrave,Iacute,Icircumflex,Idieresis" g2="i,igrave,iacute,icircumflex,idieresis" k="18" /> +<hkern g1="I,Igrave,Iacute,Icircumflex,Idieresis" g2="y,yacute,ydieresis" k="17" /> +<hkern g1="I,Igrave,Iacute,Icircumflex,Idieresis" g2="s" k="21" /> +<hkern g1="I,Igrave,Iacute,Icircumflex,Idieresis" g2="hyphen,uni00AD,endash,emdash" k="39" /> +<hkern g1="I,Igrave,Iacute,Icircumflex,Idieresis" g2="f,germandbls,uniFB01,uniFB02" k="26" /> +<hkern g1="I,Igrave,Iacute,Icircumflex,Idieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="19" /> +<hkern g1="I,Igrave,Iacute,Icircumflex,Idieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="30" /> +<hkern g1="I,Igrave,Iacute,Icircumflex,Idieresis" g2="h,thorn" k="11" /> +<hkern g1="I,Igrave,Iacute,Icircumflex,Idieresis" g2="z" k="13" /> +<hkern g1="L" g2="n,ntilde" k="18" /> +<hkern g1="L" g2="quoteright,quotedblright" k="193" /> +<hkern g1="L" g2="i,igrave,iacute,icircumflex,idieresis" k="16" /> +<hkern g1="L" g2="y,yacute,ydieresis" k="125" /> +<hkern g1="L" g2="quotedbl,quotesingle" k="194" /> +<hkern g1="L" g2="Y,Yacute,Ydieresis" k="169" /> +<hkern g1="L" g2="hyphen,uni00AD,endash,emdash" k="112" /> +<hkern g1="L" g2="quoteleft,quotedblleft" k="197" /> +<hkern g1="L" g2="f,germandbls,uniFB01,uniFB02" k="12" /> +<hkern g1="L" g2="u,ugrave,uacute,ucircumflex,udieresis" k="19" /> +<hkern g1="L" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="30" /> +<hkern g1="N,Ntilde" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="34" /> +<hkern g1="N,Ntilde" g2="d,g,q" k="33" /> +<hkern g1="N,Ntilde" g2="G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="11" /> +<hkern g1="N,Ntilde" g2="s" k="28" /> +<hkern g1="N,Ntilde" g2="hyphen,uni00AD,endash,emdash" k="23" /> +<hkern g1="N,Ntilde" g2="f,germandbls,uniFB01,uniFB02" k="22" /> +<hkern g1="N,Ntilde" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="33" /> +<hkern g1="N,Ntilde" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="13" /> +<hkern g1="N,Ntilde" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="22" /> +<hkern g1="N,Ntilde" g2="z" k="28" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="l" k="9" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Y,Yacute,Ydieresis" k="64" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="quoteleft,quotedblleft" k="25" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="13" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="h,thorn" k="9" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="36" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="49" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="20" /> +<hkern g1="O,Q,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Z" k="25" /> +<hkern g1="S" g2="Y,Yacute,Ydieresis" k="14" /> +<hkern g1="S" g2="z" k="15" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="31" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="d,g,q" k="33" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="s" k="32" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="hyphen,uni00AD,endash,emdash" k="16" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="f,germandbls,uniFB01,uniFB02" k="16" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="35" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="54" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="59" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="z" k="33" /> +<hkern g1="Y,Yacute,Ydieresis" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="176" /> +<hkern g1="Y,Yacute,Ydieresis" g2="n,ntilde" k="144" /> +<hkern g1="Y,Yacute,Ydieresis" g2="quoteright,quotedblright" k="-43" /> +<hkern g1="Y,Yacute,Ydieresis" g2="guillemotright,guilsinglright" k="53" /> +<hkern g1="Y,Yacute,Ydieresis" g2="l" k="-40" /> +<hkern g1="Y,Yacute,Ydieresis" g2="d,g,q" k="173" /> +<hkern g1="Y,Yacute,Ydieresis" g2="G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="61" /> +<hkern g1="Y,Yacute,Ydieresis" g2="i,igrave,iacute,icircumflex,idieresis" k="30" /> +<hkern g1="Y,Yacute,Ydieresis" g2="y,yacute,ydieresis" k="136" /> +<hkern g1="Y,Yacute,Ydieresis" g2="s" k="187" /> +<hkern g1="Y,Yacute,Ydieresis" g2="Y,Yacute,Ydieresis" k="-75" /> +<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,uni00AD,endash,emdash" k="143" /> +<hkern g1="Y,Yacute,Ydieresis" g2="quoteleft,quotedblleft" k="-25" /> +<hkern g1="Y,Yacute,Ydieresis" g2="f,germandbls,uniFB01,uniFB02" k="44" /> +<hkern g1="Y,Yacute,Ydieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="141" /> +<hkern g1="Y,Yacute,Ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="172" /> +<hkern g1="Y,Yacute,Ydieresis" g2="h,thorn" k="-50" /> +<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="124" /> +<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="113" /> +<hkern g1="Y,Yacute,Ydieresis" g2="z" k="156" /> +<hkern g1="Y,Yacute,Ydieresis" g2="S" k="10" /> +<hkern g1="Z" g2="n,ntilde" k="34" /> +<hkern g1="Z" g2="G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="15" /> +<hkern g1="Z" g2="i,igrave,iacute,icircumflex,idieresis" k="25" /> +<hkern g1="Z" g2="y,yacute,ydieresis" k="61" /> +<hkern g1="Z" g2="Y,Yacute,Ydieresis" k="25" /> +<hkern g1="Z" g2="hyphen,uni00AD,endash,emdash" k="57" /> +<hkern g1="Z" g2="f,germandbls,uniFB01,uniFB02" k="20" /> +<hkern g1="Z" g2="u,ugrave,uacute,ucircumflex,udieresis" k="34" /> +<hkern g1="Z" g2="z" k="12" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="Y,Yacute,Ydieresis" k="123" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="21" /> +<hkern g1="b,thorn" g2="quoteright,quotedblright" k="46" /> +<hkern g1="b,thorn" g2="quotedbl,quotesingle" k="42" /> +<hkern g1="b,thorn" g2="Y,Yacute,Ydieresis" k="172" /> +<hkern g1="b,thorn" g2="quoteleft,quotedblleft" k="44" /> +<hkern g1="b,thorn" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="42" /> +<hkern g1="b,thorn" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="30" /> +<hkern g1="b,thorn" g2="I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="44" /> +<hkern g1="b,thorn" g2="Z" k="35" /> +<hkern g1="b,thorn" g2="S" k="11" /> +<hkern g1="c,ccedilla" g2="quoteright,quotedblright" k="16" /> +<hkern g1="c,ccedilla" g2="G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="15" /> +<hkern g1="c,ccedilla" g2="Y,Yacute,Ydieresis" k="194" /> +<hkern g1="c,ccedilla" g2="quoteleft,quotedblleft" k="50" /> +<hkern g1="c,ccedilla" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="36" /> +<hkern g1="c,ccedilla" g2="I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="47" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quoteright,quotedblright" k="23" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quotedbl,quotesingle" k="17" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="Y,Yacute,Ydieresis" k="206" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quoteleft,quotedblleft" k="23" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="47" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="11" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="34" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="Z" k="15" /> +<hkern g1="guillemotleft,guilsinglleft" g2="Y,Yacute,Ydieresis" k="43" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Y,Yacute,Ydieresis" k="148" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="25" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="67" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="40" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Z" k="87" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="S" k="40" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01" g2="Y,Yacute,Ydieresis" k="28" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="27" /> +<hkern g1="l,uniFB02" g2="Y,Yacute,Ydieresis" k="20" /> +<hkern g1="l,uniFB02" g2="hyphen,uni00AD,endash,emdash" k="17" /> +<hkern g1="l,uniFB02" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="21" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quoteright,quotedblright" k="41" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quotedbl,quotesingle" k="37" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="Y,Yacute,Ydieresis" k="179" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quoteleft,quotedblleft" k="42" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="44" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="26" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="35" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="47" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="Z" k="39" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="S" k="11" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="c,e,o,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="50" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="n,ntilde" k="50" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="quoteright,quotedblright" k="200" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="60" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="i,igrave,iacute,icircumflex,idieresis" k="50" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="y,yacute,ydieresis" k="96" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="quotedbl,quotesingle" k="203" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="Y,Yacute,Ydieresis" k="151" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="quoteleft,quotedblleft" k="216" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="71" /> +<hkern g1="s" g2="quoteright,quotedblright" k="23" /> +<hkern g1="s" g2="G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="9" /> +<hkern g1="s" g2="quotedbl,quotesingle" k="17" /> +<hkern g1="s" g2="Y,Yacute,Ydieresis" k="171" /> +<hkern g1="s" g2="quoteleft,quotedblleft" k="22" /> +<hkern g1="s" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="48" /> +<hkern g1="s" g2="I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="29" /> +<hkern g1="s" g2="Z" k="12" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="Y,Yacute,Ydieresis" k="132" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="26" /> +<hkern g1="y,yacute,ydieresis" g2="Y,Yacute,Ydieresis" k="167" /> +<hkern g1="y,yacute,ydieresis" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="48" /> +<hkern g1="y,yacute,ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="39" /> +<hkern g1="y,yacute,ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="23" /> +<hkern g1="y,yacute,ydieresis" g2="I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="44" /> +<hkern g1="y,yacute,ydieresis" g2="Z" k="36" /> +<hkern g1="y,yacute,ydieresis" g2="S" k="17" /> +<hkern g1="z" g2="G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="14" /> +<hkern g1="z" g2="Y,Yacute,Ydieresis" k="163" /> +<hkern g1="z" g2="hyphen,uni00AD,endash,emdash" k="41" /> +<hkern g1="z" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="50" /> +<hkern g1="z" g2="I,K,L,N,P,R,Egrave,Eacute,Ecircumflex,Edieresis,Igrave,Iacute,Icircumflex,Idieresis,Eth,Ntilde,Thorn" k="19" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/lora-italic-webfont.ttf b/web/static/fonts/lora-italic-webfont.ttf Binary files differnew file mode 100755 index 000000000..4ac17c318 --- /dev/null +++ b/web/static/fonts/lora-italic-webfont.ttf diff --git a/web/static/fonts/lora-italic-webfont.woff b/web/static/fonts/lora-italic-webfont.woff Binary files differnew file mode 100755 index 000000000..60775c95a --- /dev/null +++ b/web/static/fonts/lora-italic-webfont.woff diff --git a/web/static/fonts/lora-italic-webfont.woff2 b/web/static/fonts/lora-italic-webfont.woff2 Binary files differnew file mode 100755 index 000000000..89c81ab3e --- /dev/null +++ b/web/static/fonts/lora-italic-webfont.woff2 diff --git a/web/static/fonts/pt_sans-web-bold-webfont.eot b/web/static/fonts/pt_sans-web-bold-webfont.eot Binary files differnew file mode 100755 index 000000000..4d16d95b2 --- /dev/null +++ b/web/static/fonts/pt_sans-web-bold-webfont.eot diff --git a/web/static/fonts/pt_sans-web-bold-webfont.svg b/web/static/fonts/pt_sans-web-bold-webfont.svg new file mode 100755 index 000000000..25d67572e --- /dev/null +++ b/web/static/fonts/pt_sans-web-bold-webfont.svg @@ -0,0 +1,878 @@ +<?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="pt_sansbold" horiz-adv-x="1161" > +<font-face units-per-em="2048" ascent="1638" descent="-410" /> +<missing-glyph horiz-adv-x="518" /> +<glyph unicode="fi" horiz-adv-x="1132" d="M25 799v225h141v57q0 195 100.5 284t290.5 89q141 0 251 -21.5t177 -60.5l-70 -207q-53 29 -128.5 46.5t-168.5 17.5q-59 0 -96 -13.5t-57.5 -39t-26.5 -64.5t-6 -88h576v-1024h-267v799h-309v-799h-266v799h-141z" /> +<glyph unicode="fl" horiz-adv-x="1214" d="M25 799v225h141v57q0 193 93 286t321 93q47 0 108.5 -4t121.5 -9t112.5 -11t81.5 -13v-1079q0 -72 18 -104.5t57 -32.5q25 0 48.5 4t58.5 18l31 -209q-33 -16 -101.5 -32.5t-140.5 -16.5q-117 0 -177.5 54.5t-60.5 179.5v1016q-27 6 -73 10t-89 4q-47 0 -75.5 -14.5 t-44 -41t-19.5 -66.5t-4 -89h154v-225h-154v-799h-266v799h-141z" /> +<glyph horiz-adv-x="0" /> +<glyph unicode="
" horiz-adv-x="518" /> +<glyph unicode=" " horiz-adv-x="518" /> +<glyph unicode="	" horiz-adv-x="518" /> +<glyph unicode=" " horiz-adv-x="518" /> +<glyph unicode="!" horiz-adv-x="602" d="M176 135q0 72 45 114t119 42q78 0 123 -42t45 -114t-45 -115t-123 -43q-74 0 -119 43t-45 115zM205 760v674h274v-674l-53 -334h-168z" /> +<glyph unicode=""" horiz-adv-x="823" d="M184 991v443h234l-74 -443h-160zM487 991v443h234l-74 -443h-160z" /> +<glyph unicode="#" d="M39 420l45 198h154l51 218h-148l45 198h150l72 295h217l-70 -295h182l72 295h217l-70 -295h148l-51 -198h-144l-51 -218h141l-49 -198h-139l-74 -316h-219l74 316h-182l-74 -316h-219l73 316h-151zM457 618h182l51 218h-182z" /> +<glyph unicode="$" d="M141 1053q0 176 93.5 273t252.5 126v186h213v-178q90 -6 158 -24.5t125 -42.5l-74 -228q-35 16 -88 32.5t-121 25.5v-383q63 -29 128 -65t115 -85t82 -115.5t32 -158.5q0 -188 -95.5 -294t-261.5 -136v-191h-213v178q-117 4 -204.5 24.5t-137.5 47.5l80 231 q37 -23 103.5 -43t158.5 -28v420q-63 29 -125.5 63.5t-111.5 83.5t-79 117.5t-30 163.5zM408 1075q0 -61 48 -102t119 -76v332q-96 -4 -131.5 -47.5t-35.5 -106.5zM612 205q90 10 134.5 57t44.5 123q0 66 -52.5 108t-126.5 76v-364z" /> +<glyph unicode="%" horiz-adv-x="1720" d="M105 1110q0 92 26.5 157.5t73.5 108.5t113.5 62.5t144.5 19.5t143.5 -18.5t113.5 -59.5t74.5 -107.5t28.5 -162.5q-2 -96 -28.5 -162.5t-74.5 -107.5t-113.5 -59.5t-143.5 -18.5t-144.5 18.5t-113.5 59.5t-73.5 107.5t-26.5 162.5zM207 113l1179 1349l150 -135 l-1180 -1356zM342 1110q0 -176 121 -176q63 0 91 38t30 138q-2 98 -29.5 137t-91.5 39q-63 0 -92 -39t-29 -137zM936 350q0 92 26.5 157.5t73.5 108.5t113.5 62.5t144.5 19.5t143.5 -18.5t113.5 -59.5t74.5 -107.5t28.5 -162.5q-2 -96 -28.5 -162.5t-74.5 -107.5 t-113.5 -59.5t-143.5 -18.5t-144.5 18.5t-113.5 59.5t-73.5 107.5t-26.5 162.5zM1173 350q0 -176 121 -176q63 0 91 38t30 138q-2 98 -29.5 137t-91.5 39q-63 0 -92 -39t-29 -137z" /> +<glyph unicode="&" horiz-adv-x="1667" d="M188 397q0 78 26 148.5t72 132t109.5 115t136.5 94.5q-51 68 -83.5 137.5t-32.5 146.5q0 51 19.5 103.5t61.5 94.5t109.5 67.5t163.5 25.5q94 0 160.5 -22.5t107.5 -59.5t59.5 -84t18.5 -96q0 -84 -59.5 -175t-202.5 -175q72 -111 143.5 -203t159.5 -182q47 51 85 128 t67 157l192 -103q-12 -37 -33.5 -81t-47 -89t-52.5 -85t-49 -68q66 -59 115 -93t100 -63l-141 -197q-57 27 -118 71t-120 101q-74 -68 -184.5 -120t-272.5 -52q-106 0 -199 29t-162 84t-109 134t-40 179zM455 420q0 -104 76.5 -163.5t201.5 -59.5q82 0 153.5 33.5 t108.5 74.5q-104 109 -190 216.5t-150 203.5q-98 -76 -149 -146.5t-51 -158.5zM682 1159q0 -86 74 -184q80 51 115.5 96t35.5 86q0 49 -27.5 78t-88.5 29q-55 0 -82 -29t-27 -76z" /> +<glyph unicode="'" horiz-adv-x="520" d="M184 991v443h234l-74 -443h-160z" /> +<glyph unicode="(" horiz-adv-x="669" d="M123 498q0 113 18.5 237.5t59.5 250.5t107.5 247t162.5 225l172 -110q-72 -96 -120 -201t-77.5 -214.5t-43 -220t-13.5 -214.5q0 -98 14.5 -209t45 -220.5t80 -214t118.5 -190.5l-182 -115q-94 98 -159.5 216t-105.5 242t-58.5 250t-18.5 241z" /> +<glyph unicode=")" horiz-adv-x="669" d="M23 -336q78 100 127 205.5t77.5 213t40 215.5t13.5 200q-2 111 -17.5 220t-46.5 219t-79 213t-111 198l172 110q98 -98 163.5 -216t105.5 -241.5t58.5 -249.5t20.5 -245q-2 -109 -20.5 -234t-59.5 -250.5t-107.5 -246.5t-154.5 -226z" /> +<glyph unicode="*" horiz-adv-x="774" d="M82 1112v152h123l121 -35l-105 90l-57 102l131 76l57 -94l31 -121l31 113l57 100l131 -72l-61 -106l-99 -88l133 33h117v-150h-112l-125 33l102 -96l51 -86l-131 -76l-55 94l-41 131l-27 -119l-59 -100l-131 76l59 100l92 76l-112 -33h-121z" /> +<glyph unicode="+" horiz-adv-x="1079" d="M88 578v229h332v346h239v-346h334v-229h-334v-351h-239v351h-332z" /> +<glyph unicode="," horiz-adv-x="516" d="M76 -193q55 23 96 74t45 109q-47 -6 -89 28.5t-42 112.5q0 70 46 111t114 41q86 0 135 -57.5t49 -151.5q0 -92 -28.5 -159t-70.5 -111t-90 -69.5t-87 -37.5z" /> +<glyph unicode="-" horiz-adv-x="737" d="M111 471v236h514v-236h-514z" /> +<glyph unicode="." horiz-adv-x="503" d="M86 135q0 72 45 114t119 42q78 0 123 -42t45 -114t-45 -115t-123 -43q-74 0 -119 43t-45 115z" /> +<glyph unicode="/" horiz-adv-x="835" d="M-49 -193l731 1651l201 -90l-731 -1655z" /> +<glyph unicode="0" d="M82 719q0 377 129 560t371 183q258 0 378.5 -181t120.5 -562q0 -379 -130 -563.5t-371 -184.5q-256 0 -377 194t-121 554zM348 719q0 -250 54.5 -386t179.5 -136q121 0 177 124.5t56 397.5q0 248 -53 383t-182 135q-123 0 -177.5 -127t-54.5 -391z" /> +<glyph unicode="1" d="M129 1081l467 377h149v-1233h279v-225h-817v225h285v809l30 140l-98 -121l-182 -125z" /> +<glyph unicode="2" d="M141 0v137q49 51 110.5 120t124 145.5t122 158.5t106.5 165t75 161t28 147q0 84 -48.5 138.5t-152.5 54.5q-66 0 -134.5 -28t-115.5 -71l-106 189q80 66 181 105.5t238 39.5q88 0 162 -24.5t127 -71.5t84 -118t31 -165q0 -104 -38 -210.5t-96.5 -209t-129 -197.5 t-138.5 -175l-108 -84v-10l147 28h394v-225h-863z" /> +<glyph unicode="3" d="M160 35l71 221q53 -27 118 -43t145 -16q127 0 193.5 67.5t66.5 163.5q0 117 -70 172t-219 55h-148v142l248 338l117 92l-162 -19h-344v226h782v-146l-288 -387l-90 -55v-10l86 12q72 -6 136 -33t112.5 -77t77 -123.5t28.5 -170.5q0 -121 -40 -209t-110.5 -147t-165 -88 t-202.5 -29q-90 0 -186.5 16.5t-155.5 47.5z" /> +<glyph unicode="4" d="M39 399v152l649 893h219v-832h226v-213h-226v-399h-248v399h-620zM285 596l131 16h243v314l19 172h-8l-70 -148l-213 -276z" /> +<glyph unicode="5" d="M139 29l72 221q47 -20 103.5 -31.5t136.5 -11.5q135 0 206.5 65.5t71.5 180.5q0 123 -84 180t-239 57l-162 -6v750h704v-250h-475v-277l84 8q100 -4 181 -36.5t138.5 -91t88 -141.5t30.5 -185q0 -121 -41 -213t-113.5 -153.5t-171 -92.5t-214.5 -31q-92 0 -175 15.5 t-141 42.5z" /> +<glyph unicode="6" d="M106 514q0 203 58.5 366.5t158 285.5t231.5 197t280 99l59 -211q-102 -16 -188.5 -63t-153 -112.5t-112.5 -146.5t-64 -167q41 51 106.5 87t163.5 36q92 0 170 -29t133.5 -85t86 -138.5t30.5 -188.5q0 -100 -34 -186t-95.5 -149.5t-148.5 -100.5t-191 -37 q-106 0 -195.5 34t-155 101.5t-102.5 170t-37 237.5zM360 465q0 -49 14.5 -97.5t42 -86t70.5 -61t103 -23.5q96 0 156.5 65.5t60.5 167.5q0 229 -225 229q-82 0 -138.5 -36.5t-78.5 -85.5q-4 -23 -4.5 -39.5t-0.5 -32.5z" /> +<glyph unicode="7" d="M123 1184v250h924v-78l-574 -1356h-260l469 1104l90 100l-123 -20h-526z" /> +<glyph unicode="8" d="M125 350q0 72 18.5 128.5t52 102.5t80 82.5t99.5 67.5q-100 63 -157.5 146.5t-57.5 205.5q0 80 29.5 150t86 121t136.5 79.5t180 28.5q92 0 168 -24.5t130 -69.5t84 -109.5t30 -142.5q0 -121 -54.5 -205t-158.5 -153q123 -72 185 -158t62 -221q0 -92 -33.5 -167t-95 -128 t-147.5 -83t-189 -30q-102 0 -185 28t-141.5 77t-90 118.5t-31.5 155.5zM367 395q0 -82 56 -140t157 -58q92 0 148 45t56 135q0 47 -22.5 86t-58 70.5t-79.5 58t-89 51.5q-96 -55 -132 -119.5t-36 -128.5zM414 1079q0 -49 18.5 -86t50 -64.5t71.5 -51t83 -43.5 q123 104 123 229q0 86 -50.5 130t-121.5 44q-90 0 -132 -47.5t-42 -110.5z" /> +<glyph unicode="9" d="M92 985q0 104 32 192.5t92 151t147.5 98t199.5 35.5q231 0 363.5 -138t132.5 -402q0 -238 -60.5 -411t-162 -289t-234.5 -177t-280 -74l-58 209q113 14 201 55t151.5 101.5t103.5 137.5t56 165q-49 -53 -105.5 -73.5t-150.5 -20.5q-78 0 -154.5 26.5t-137 81t-98.5 137 t-38 195.5zM350 999q0 -117 65.5 -176t164.5 -59q84 0 137 26.5t82 65.5q6 43 6 82q0 57 -14.5 112.5t-44 98.5t-75.5 68.5t-110 25.5q-100 0 -155.5 -64.5t-55.5 -179.5z" /> +<glyph unicode=":" horiz-adv-x="550" d="M190 135q0 72 45 114t119 42q78 0 123 -42t45 -114t-45 -115t-123 -43q-74 0 -119 43t-45 115zM190 876q0 72 45 114t119 42q78 0 123 -42t45 -114t-45 -115t-123 -43q-74 0 -119 43t-45 115z" /> +<glyph unicode=";" horiz-adv-x="593" d="M158 -193q55 23 96 74t45 109q-47 -6 -89 28.5t-42 112.5q0 70 46 111t114 41q86 0 135 -57.5t49 -151.5q0 -92 -28.5 -159t-70.5 -111t-90 -69.5t-87 -37.5zM168 876q0 72 45 114t119 42q78 0 123 -42t45 -114t-45 -115t-123 -43q-74 0 -119 43t-45 115z" /> +<glyph unicode="<" horiz-adv-x="1079" d="M82 584v143l790 473l117 -184l-459 -285l-186 -72l184 -63l471 -281l-116 -184z" /> +<glyph unicode="=" horiz-adv-x="1079" d="M88 383v229h905v-229h-905zM88 775v229h905v-229h-905z" /> +<glyph unicode=">" horiz-adv-x="1079" d="M80 1018l117 182l800 -452v-144l-790 -473l-117 186l459 283l186 74l-184 61z" /> +<glyph unicode="?" horiz-adv-x="929" d="M47 1339q78 53 179.5 88t244.5 35q193 0 301.5 -93t108.5 -251q0 -104 -28 -172.5t-69 -117t-90 -85t-90 -78.5t-69.5 -97.5t-28.5 -141.5h-227q-10 106 10 181t56 129.5t82 94t86 76.5t66.5 77t26.5 95q0 72 -40 115t-142 43q-33 0 -70 -7t-73.5 -20.5t-70.5 -31 t-60 -35.5zM238 135q0 72 45 114t118 42q78 0 123 -42t45 -114t-45 -115t-123 -43q-74 0 -118.5 43t-44.5 115z" /> +<glyph unicode="@" horiz-adv-x="2168" d="M150 483q0 223 79.5 403.5t215 307.5t313.5 195.5t377 68.5q188 0 350 -54t280.5 -155.5t186 -248t67.5 -332.5q0 -131 -46 -246t-127 -199t-188.5 -133t-230.5 -49q-51 0 -95 11t-73.5 38t-44 70t-8.5 106h-8q-31 -43 -66.5 -84t-78.5 -72.5t-94.5 -50t-112.5 -18.5 q-49 0 -94 21.5t-78 60.5t-52.5 94t-19.5 123q0 127 41 247t111.5 212t164 148.5t197.5 56.5q72 0 121 -21.5t90 -56.5l64 65h143l-98 -555q-16 -96 -1 -139t68 -43t104.5 24.5t92.5 76t66.5 129t25.5 184.5q0 154 -51 262t-140.5 179t-210 103.5t-260.5 32.5 q-160 0 -297 -57.5t-238 -157.5t-158.5 -238.5t-57.5 -299.5q0 -160 48 -287t140 -216t228.5 -137.5t312.5 -48.5q59 0 135 14.5t137 43.5l64 -197q-84 -41 -171 -57.5t-200 -16.5q-199 0 -367.5 57.5t-292.5 170t-193.5 279.5t-69.5 386zM852 408q0 -68 27.5 -111t95.5 -43 q29 0 61.5 17.5t63 46t59.5 65.5t51 78l52 282q-27 23 -55.5 35.5t-71.5 12.5q-61 0 -113.5 -35t-90.5 -90.5t-58.5 -124t-20.5 -133.5z" /> +<glyph unicode="A" horiz-adv-x="1239" d="M0 0l516 1444h207l516 -1444h-295l-115 317h-440l-108 -317h-281zM461 543h307l-106 319l-44 225h-10l-43 -227z" /> +<glyph unicode="B" horiz-adv-x="1210" d="M123 10v1413q39 6 89 12.5t107.5 10.5t118 6t119.5 2q100 0 195.5 -15.5t170 -54t119.5 -108.5t45 -176q0 -53 -13 -106.5t-44 -97.5t-80 -78t-119 -50v-12q61 -10 117 -35t96.5 -68t64.5 -104.5t24 -145.5q0 -111 -47.5 -191.5t-126 -131.5t-179 -75.5t-207.5 -24.5h-89 t-116.5 3t-127 9t-117.5 18zM393 223q10 -4 33 -6t48.5 -3t53 -2t47.5 -1q51 0 99.5 12.5t85.5 38t59.5 64.5t22.5 92q0 68 -27 106.5t-70 60t-96 27.5t-106 6h-150v-395zM393 831h90q29 0 67 2.5t62 6.5q78 25 134.5 74t56.5 128q0 53 -20.5 88t-54.5 55.5t-77 29t-90 8.5 q-53 0 -98 -2t-70 -7v-383z" /> +<glyph unicode="C" horiz-adv-x="1144" d="M78 717q0 211 58.5 353t151.5 229t207.5 125t229.5 38q123 0 208 -16t140 -39l-55 -238q-47 23 -111.5 33t-156.5 10q-170 0 -273.5 -120.5t-103.5 -374.5q0 -111 24.5 -202t74.5 -155.5t125 -100.5t173 -36q92 0 155.5 18.5t110.5 47.5l58 -230q-66 -47 -167.5 -67.5 t-207.5 -20.5q-129 0 -245 40t-204 129t-140 231.5t-52 345.5z" /> +<glyph unicode="D" horiz-adv-x="1325" d="M123 -2v1436q43 6 97 10t111.5 6t112 3t97.5 1q190 0 325 -53t219 -149.5t123 -229.5t39 -293q0 -145 -36.5 -280.5t-123 -240t-226.5 -168t-347 -63.5q-33 0 -87 2.5t-112.5 5.5t-111.5 6t-80 7zM403 236q8 -2 28 -3.5t42.5 -2.5t43 -2t30.5 -1q119 0 197.5 42 t124.5 112t64.5 161t18.5 187q0 84 -16 169t-60.5 152.5t-120 110.5t-192.5 43q-45 0 -91 -2t-69 -6v-960z" /> +<glyph unicode="E" horiz-adv-x="1069" d="M123 0v1434h850v-250h-570v-334h519v-250h-519v-350h580v-250h-860z" /> +<glyph unicode="F" horiz-adv-x="1040" d="M123 0v1434h850v-250h-570v-355h525v-249h-525v-580h-280z" /> +<glyph unicode="G" horiz-adv-x="1247" d="M78 717q0 203 58.5 345t153.5 231t214 129t241 40q123 0 216.5 -18.5t148.5 -38.5l-57 -236q-51 20 -115 31.5t-162 11.5q-88 0 -161.5 -26.5t-128 -87t-84 -154.5t-29.5 -229q0 -129 28.5 -222.5t79.5 -153.5t120 -89t147 -29q53 0 104 13.5t86 39.5v271l-309 33v170 h534v-639q-86 -72 -205.5 -105t-236.5 -33q-137 0 -255 43t-204 134.5t-135 232.5t-49 336z" /> +<glyph unicode="H" horiz-adv-x="1333" d="M123 0v1434h280v-584h525v584h280v-1434h-280v600h-525v-600h-280z" /> +<glyph unicode="I" horiz-adv-x="583" d="M152 0v1434h280v-1434h-280z" /> +<glyph unicode="J" horiz-adv-x="684" d="M-47 23l61 229q53 -27 121 -27q86 0 109.5 63.5t23.5 168.5v977h281v-1049q0 -82 -18.5 -155.5t-60.5 -130t-107.5 -90.5t-159.5 -34q-59 0 -129 12.5t-121 35.5z" /> +<glyph unicode="K" horiz-adv-x="1269" d="M123 0v1434h280v-635l66 28l395 607h320l-418 -603l-111 -77l115 -80l477 -674h-346l-424 612h-74v-612h-280z" /> +<glyph unicode="L" horiz-adv-x="1052" d="M123 0v1434h280v-1184h627v-250h-907z" /> +<glyph unicode="M" horiz-adv-x="1638" d="M123 0v1434h256l383 -656l67 -164h9l61 168l363 652h254v-1434h-281v743l31 285h-13l-88 -229l-305 -535h-90l-321 537l-91 227h-10l41 -283v-745h-266z" /> +<glyph unicode="N" horiz-adv-x="1345" d="M123 0v1444h205l542 -764l109 -219h10l-33 219v754h267v-1444h-205l-539 758l-112 225h-11l33 -225v-748h-266z" /> +<glyph unicode="O" horiz-adv-x="1372" d="M78 717q0 358 157.5 551.5t450.5 193.5q154 0 268.5 -53t190.5 -151.5t112.5 -235.5t36.5 -305q0 -358 -158.5 -552t-449.5 -194q-156 0 -270.5 53.5t-189 151.5t-111.5 235.5t-37 305.5zM373 717q0 -109 18.5 -200t56 -156.5t97 -102.5t141.5 -37q150 0 231.5 117 t81.5 379q0 104 -17 194t-54 158t-96.5 105.5t-145.5 37.5q-150 0 -231.5 -119.5t-81.5 -375.5z" /> +<glyph unicode="P" horiz-adv-x="1171" d="M123 0v1419q86 16 189.5 25.5t205.5 9.5q106 0 214 -17.5t194 -69.5t140 -145.5t54 -242.5q0 -135 -47 -228.5t-125 -152.5t-177 -86t-206 -27h-32.5t-47 1t-48 3.5t-34.5 4.5v-494h-280zM403 737q8 -2 24.5 -4t35 -3t36 -1h25.5q55 0 109.5 10.5t97.5 38t68.5 76.5 t25.5 129q0 68 -24.5 112t-64.5 70.5t-91 36.5t-104 10q-41 0 -78 -3t-60 -7v-465z" /> +<glyph unicode="Q" horiz-adv-x="1372" d="M78 717q0 358 157.5 551.5t450.5 193.5q154 0 268.5 -53t190.5 -151.5t112.5 -235.5t36.5 -305q0 -358 -158.5 -552t-449.5 -194q-156 0 -270.5 53.5t-189 151.5t-111.5 235.5t-37 305.5zM373 717q0 -109 18.5 -200t56 -156.5t97 -102.5t141.5 -37q150 0 231.5 117 t81.5 379q0 104 -17 194t-54 158t-96.5 105.5t-145.5 37.5q-150 0 -231.5 -119.5t-81.5 -375.5zM412 -76q57 12 118 13q86 0 171 -20.5t173.5 -44.5t180.5 -44.5t194 -20.5q45 0 92.5 5.5t96.5 17.5v-244q-94 -26 -192 -26h-7q-104 0 -202.5 21.5t-190.5 46t-178 46 t-162 21.5q-49 0 -94 -12v241z" /> +<glyph unicode="R" horiz-adv-x="1232" d="M123 0v1419q47 8 101.5 15.5t108.5 11.5t105 6t94 2q100 0 197.5 -18.5t174.5 -63.5t123 -124t46 -197q0 -176 -82 -287t-219 -154l100 -63l328 -547h-323l-326 561l-148 27v-588h-280zM403 778h119q117 0 186.5 53.5t69.5 176.5q0 92 -57 144t-168 52q-43 0 -85 -2 t-65 -8v-416z" /> +<glyph unicode="S" horiz-adv-x="1085" d="M55 57l90 240q23 -12 59 -26.5t81 -27t95 -20.5t103 -8q125 0 191.5 42t66.5 128q0 66 -48 106.5t-120.5 74.5t-157.5 70t-158 88t-121 130t-48 199q0 104 35 181t99.5 128t152.5 75.5t196 24.5q125 0 236 -21.5t182 -62.5l-88 -235q-45 29 -135 52.5t-195 23.5 q-98 0 -150 -39t-52 -105q0 -61 48 -102t120.5 -76t157.5 -72t158 -89t121 -129t48 -191q0 -115 -38 -198t-106.5 -138t-166 -82t-213.5 -27q-154 0 -270.5 29t-172.5 57z" /> +<glyph unicode="T" horiz-adv-x="1163" d="M23 1184v250h1118v-250h-418v-1184h-281v1184h-419z" /> +<glyph unicode="U" horiz-adv-x="1284" d="M117 473v961h280v-906q0 -84 15.5 -142t48.5 -94t82 -51.5t114 -15.5q129 0 186.5 72t57.5 231v906h266v-926q0 -139 -36.5 -239.5t-102 -166t-160 -96.5t-206.5 -31q-545 0 -545 498z" /> +<glyph unicode="V" horiz-adv-x="1232" d="M-18 1434h325l287 -842l37 -244h10l41 246l274 840h295l-532 -1444h-201z" /> +<glyph unicode="W" horiz-adv-x="1765" d="M0 1434h305l191 -801l26 -254h8l29 258l250 797h184l246 -801l29 -254h8l31 258l174 797h284l-395 -1444h-188l-256 796l-35 220h-10l-35 -222l-254 -794h-199z" /> +<glyph unicode="X" horiz-adv-x="1296" d="M20 0l441 729l-400 705h338l222 -414l49 -146l47 146l231 414h305l-413 -691l434 -743h-334l-252 442l-55 152l-53 -152l-254 -442h-306z" /> +<glyph unicode="Y" horiz-adv-x="1212" d="M-4 1434h334l262 -539l29 -152h10l31 156l253 535h302l-469 -899v-535h-281v532z" /> +<glyph unicode="Z" horiz-adv-x="1103" d="M55 0v250l607 848l106 86h-713v250h994v-250l-611 -856l-104 -78h715v-250h-994z" /> +<glyph unicode="[" horiz-adv-x="663" d="M123 -471v1905h481v-226h-227v-1454h227v-225h-481z" /> +<glyph unicode="\" horiz-adv-x="868" d="M-49 1368l209 88l737 -1651l-203 -92z" /> +<glyph unicode="]" horiz-adv-x="663" d="M59 -246h228v1454h-228v226h482v-1905h-482v225z" /> +<glyph unicode="^" horiz-adv-x="1024" d="M41 846l401 598h142l379 -598h-269l-145 250l-43 143l-51 -145l-160 -248h-254z" /> +<glyph unicode="_" horiz-adv-x="909" d="M0 -240h909v-219h-909v219z" /> +<glyph unicode="`" horiz-adv-x="647" d="M123 1413v62h278l123 -316h-147z" /> +<glyph unicode="a" horiz-adv-x="1015" d="M47 283q0 94 42 158.5t121 104.5q78 40 188 55q78 11 170 10q36 0 75 -1q4 36 4 66q-1 65 -21 99q-30 50 -137 50q-80 0 -169 -16t-146 -43l-63 199q82 37 194.5 58t235.5 21q106 0 178 -25.5t113.5 -72.5t59 -112.5t17.5 -147.5q0 -90 -6 -181t-7 -179v-25q0 -75 5 -146 q6 -83 31 -157h-217l-43 141h-10q-41 -63 -114 -109t-188 -46q-72 0 -129 21.5t-98 61t-63.5 94t-22.5 122.5zM322 324q0 -57 34 -89t93 -32q80 0 127 35.5t69 76.5v134q-36 3 -71 3q-26 0 -50 -2q-58 -4 -103.5 -18t-72 -40.5t-26.5 -67.5z" /> +<glyph unicode="b" horiz-adv-x="1097" d="M117 45v1389h266v-492h8q43 49 110.5 78t149.5 29q184 0 281.5 -126t97.5 -384q0 -276 -136 -420t-374 -144q-131 0 -239.5 21.5t-163.5 48.5zM383 229q33 -16 71 -22t81 -6q109 0 165 78.5t56 250.5q-1 293 -183 293q-74 0 -119.5 -37.5t-70.5 -109.5v-447z" /> +<glyph unicode="c" horiz-adv-x="886" d="M68 512q0 260 116.5 400.5t339.5 140.5q113 0 181.5 -18.5t123.5 -47.5l-63 -217q-47 23 -93 35t-106 12q-111 0 -168 -72.5t-57 -232.5q0 -66 14.5 -121t43 -96t74.5 -64.5t108 -23.5q68 0 114.5 17.5t83.5 41.5l62 -203q-61 -45 -148.5 -68.5t-179.5 -23.5 q-123 0 -208 39t-138 109.5t-76.5 171t-23.5 221.5z" /> +<glyph unicode="d" horiz-adv-x="1103" d="M68 496q0 262 118.5 407.5t348.5 145.5q63 0 104 -7.5t82 -23.5v416h266v-1074q0 -86 2 -172t19 -190h-191l-37 133h-8q-41 -72 -117.5 -116t-181.5 -44q-193 0 -299 127t-106 398zM342 487q0 -131 46.5 -210.5t146.5 -79.5q78 0 122.5 37.5t63.5 109.5v434 q-29 23 -63.5 34t-90.5 11q-113 0 -169 -75.5t-56 -260.5z" /> +<glyph unicode="e" horiz-adv-x="1040" d="M68 512q0 270 129 405.5t362 135.5q78 0 151.5 -20.5t131 -67.5t92.5 -127t35 -199q0 -43 -5.5 -92t-15.5 -103h-614q6 -129 66.5 -194.5t195.5 -65.5q84 0 150.5 26t101.5 52l88 -174q-61 -49 -166.5 -83t-224.5 -34q-248 0 -362.5 144.5t-114.5 396.5zM340 610h381 q1 18 1 34q0 86 -35 136q-42 60 -132 60q-104 0 -154.5 -62.5t-60.5 -167.5z" /> +<glyph unicode="f" horiz-adv-x="657" d="M23 799v225h141v57q0 195 82 282t237 87q164 0 273 -39l-51 -213q-47 16 -83 21.5t-75 5.5q-41 0 -64.5 -12.5t-35 -38t-14.5 -63.5t-3 -87h225v-225h-225v-799h-266v799h-141z" /> +<glyph unicode="g" horiz-adv-x="1097" d="M68 492q0 274 131 415.5t381 141.5q131 0 234.5 -18.5t168.5 -43.5v-987q0 -223 -121 -328.5t-338 -105.5q-147 0 -232 20.5t-128 42.5l55 211q47 -18 109.5 -36.5t154.5 -18.5q139 0 189.5 60.5t50.5 168.5v66h-8q-72 -96 -254 -96q-199 0 -296 122.5t-97 385.5z M342 502q0 -150 49 -227.5t141 -77.5q78 0 120 34.5t65 104.5v461q-61 26 -151 26h-7q-102 0 -159.5 -76.5t-57.5 -244.5z" /> +<glyph unicode="h" horiz-adv-x="1116" d="M117 0v1434h266v-525h8q49 66 121 105t182 39q78 0 137.5 -20.5t99.5 -67.5t59.5 -128t19.5 -200v-637h-267v582q0 125 -34.5 180t-126.5 55q-68 0 -124.5 -46t-74.5 -118v-653h-266z" /> +<glyph unicode="i" horiz-adv-x="550" d="M100 1313q0 59 44 101t122 42t126 -42t48 -101t-48 -99t-126 -40t-122 40t-44 99zM139 0v1024h267v-1024h-267z" /> +<glyph unicode="j" horiz-adv-x="548" d="M-33 -188q8 0 14.5 -1t12.5 -1q92 0 119.5 59t27.5 164v991h267v-1067q0 -186 -74 -284.5t-236 -98.5q-61 0 -131 14v224zM105 1313q0 59 44 101t122 42t126 -42t48 -101t-48 -99t-126 -40t-122 40t-44 99z" /> +<glyph unicode="k" horiz-adv-x="1005" d="M117 0v1434h266v-846l61 28l234 408h293l-246 -389l-104 -78l112 -80l277 -477h-305l-250 424h-72v-424h-266z" /> +<glyph unicode="l" horiz-adv-x="602" d="M125 205v1229h266v-1090q0 -72 18.5 -104.5t59.5 -32.5q25 0 48.5 4t57.5 18l29 -209q-33 -16 -100.5 -32.5t-138.5 -16.5q-117 0 -178.5 54.5t-61.5 179.5z" /> +<glyph unicode="m" horiz-adv-x="1648" d="M117 0v1024h207l30 -135h8q47 66 120 115t188 49q98 0 160.5 -40t97.5 -134q47 80 120.5 127t178.5 47q86 0 146.5 -20.5t98 -71t56 -134.5t18.5 -213v-614h-266v575q0 121 -25.5 181.5t-113.5 60.5q-72 0 -114 -39t-62 -106v-672h-267v557q0 141 -26.5 200.5 t-110.5 59.5q-70 0 -112.5 -38t-65.5 -97v-682h-266z" /> +<glyph unicode="n" horiz-adv-x="1116" d="M117 0v1024h211l30 -135h9q47 66 124.5 115t200.5 49q76 0 135.5 -20.5t100.5 -67.5t61.5 -128t20.5 -200v-637h-267v582q0 125 -35.5 180t-121.5 55q-76 0 -128 -44t-75 -109v-664h-266z" /> +<glyph unicode="o" horiz-adv-x="1099" d="M68 512q0 260 127 400.5t356 140.5q123 0 213 -39t149.5 -109.5t89 -171t29.5 -221.5q0 -260 -126 -400.5t-355 -140.5q-123 0 -213 39t-150.5 109.5t-90 171t-29.5 221.5zM342 512q0 -68 12.5 -125t37 -100t64.5 -66.5t95 -23.5q104 0 155.5 75.5t51.5 239.5 q0 141 -47 228t-160 87q-98 0 -153.5 -73.5t-55.5 -241.5z" /> +<glyph unicode="p" horiz-adv-x="1105" d="M117 -410v1434h194l31 -123h8q53 78 126 115t177 37q193 0 289 -122t96 -392q0 -131 -30.5 -236.5t-91 -179.5t-147.5 -113t-200 -39q-63 0 -104 9.5t-82 29.5v-420h-266zM383 246q29 -23 62.5 -36t89.5 -13q115 0 172 80.5t57 267.5q0 135 -45.5 208.5t-145.5 73.5 q-78 0 -121.5 -38.5t-68.5 -116.5v-426z" /> +<glyph unicode="q" horiz-adv-x="1097" d="M68 492q0 274 138 415.5t396 141.5q55 0 110.5 -5.5t105.5 -14.5t93 -20.5t72 -21.5v-1397h-266v498h-8q-35 -53 -94.5 -85t-153.5 -32q-190 0 -291.5 129t-101.5 392zM342 502q0 -150 49 -227.5t141 -77.5q78 0 120 34.5t65 104.5v461q-31 16 -70 21t-88 5 q-109 0 -163 -82t-54 -239z" /> +<glyph unicode="r" horiz-adv-x="718" d="M117 0v1024h207l30 -135h8q35 76 94.5 117t139.5 41q53 0 121 -23l-35 -250q-63 23 -115 23q-72 0 -120 -38t-64 -97v-662h-266z" /> +<glyph unicode="s" horiz-adv-x="864" d="M51 63l74 199q47 -27 125 -52.5t160 -25.5q59 0 95 23t36 76q0 41 -35 65.5t-86 45t-112.5 42t-113 59t-86 96t-34.5 150.5q0 152 90 232t260 80q117 0 211 -24.5t147 -55.5l-59 -193q-47 18 -119 39t-145 21q-119 0 -119 -92q0 -37 35 -59.5t86 -42t112.5 -42 t112.5 -58.5t86 -93.5t35 -147.5q0 -156 -99.5 -245t-297.5 -89q-109 0 -204 28t-155 64z" /> +<glyph unicode="t" horiz-adv-x="714" d="M10 799v225h142v193l266 75v-268h250v-225h-250v-393q0 -106 21.5 -152.5t80.5 -46.5q41 0 71 8t66 25l48 -205q-55 -27 -129 -45.5t-150 -18.5q-141 0 -207.5 73t-66.5 239v516h-142z" /> +<glyph unicode="u" horiz-adv-x="1101" d="M106 387v637h267v-582q0 -125 29.5 -180t115.5 -55q76 0 126 45t75 110v662h266v-713q0 -84 8 -164.5t25 -146.5h-201l-47 152h-8q-47 -78 -131 -129.5t-199 -51.5q-78 0 -139.5 20.5t-102 67.5t-62.5 127t-22 201z" /> +<glyph unicode="v" horiz-adv-x="976" d="M-29 1024h310l190 -537l35 -157h10l29 162l174 532h287l-428 -1034h-162z" /> +<glyph unicode="w" horiz-adv-x="1476" d="M-16 1024h288l150 -514l24 -182h11l35 184l170 512h196l186 -524l37 -170h9l28 172l131 522h244l-315 -1034h-197l-207 573l-26 129h-11l-24 -131l-197 -571h-203z" /> +<glyph unicode="x" horiz-adv-x="1075" d="M16 0l332 524l-307 500h317l134 -219l57 -143l61 143l140 219h288l-309 -492l330 -532h-309l-158 246l-62 151l-65 -151l-158 -246h-291z" /> +<glyph unicode="y" horiz-adv-x="978" d="M-18 1024h319l188 -575l37 -160h13l26 162l156 573h274l-311 -924q-39 -115 -75 -210t-79 -164.5t-95 -107.5t-124 -38q-106 0 -170 35l49 213q31 -12 62 -12q47 0 91 40t67 144z" /> +<glyph unicode="z" horiz-adv-x="937" d="M63 0v225l404 486l104 88h-508v225h803v-225l-399 -494l-102 -80h501v-225h-803z" /> +<glyph unicode="{" horiz-adv-x="759" d="M88 379v205q78 0 121 42t43 132v428q0 111 52 180.5t167 69.5h246v-226h-103q-55 0 -80.5 -28.5t-25.5 -94.5v-399q0 -90 -43 -136t-100 -56v-21q55 -8 99 -61.5t44 -139.5v-397q0 -66 24.5 -94.5t83.5 -28.5h101v-225h-246q-106 0 -162.5 64.5t-56.5 183.5v420 q0 104 -43 143t-121 39z" /> +<glyph unicode="|" horiz-adv-x="464" d="M123 -266v1700h219v-1700h-219z" /> +<glyph unicode="}" horiz-adv-x="759" d="M72 -246h102q55 0 81 28t26 95v399q0 90 43 136.5t100 56.5v20q-55 8 -99 61.5t-44 139.5v397q0 63 -25 93t-84 30h-100v226h243q109 0 164.5 -64.5t55.5 -183.5v-420q0 -104 43 -143t120 -39v-205q-78 0 -120.5 -42t-42.5 -132v-428q0 -111 -54.5 -180.5t-169.5 -69.5 h-239v225z" /> +<glyph unicode="~" horiz-adv-x="1079" d="M57 774q96 78 173 107.5t143 29.5q59 0 110.5 -17t98.5 -36.5t93 -37t93 -17.5q37 0 76 12t82 47l96 -211q-74 -55 -135.5 -77.5t-114.5 -22.5q-57 0 -106.5 18.5t-95.5 41t-93 41t-100 18.5q-49 0 -105.5 -21.5t-124.5 -79.5z" /> +<glyph unicode="¡" horiz-adv-x="600" d="M90 891q0 72 45 114t119 42q78 0 123 -42t45 -114t-45 -115t-123 -43q-74 0 -119 43t-45 115zM117 264l53 332h168l53 -332v-674h-274v674z" /> +<glyph unicode="¢" d="M172 512q0 229 98.5 365.5t284.5 166.5v185h248v-185q57 -8 102 -21t82 -32l-61 -217q-31 14 -66 22.5t-72 12.5v-596q47 6 85 20.5t67 30.5l61 -201q-35 -27 -87 -46t-111 -29v-193h-248v182q-104 14 -177 58.5t-119 113t-66.5 160.5t-20.5 203zM434 512q0 -104 39 -183 t131 -108v586q-86 -23 -128 -93.5t-42 -201.5z" /> +<glyph unicode="£" d="M104 0v236h5q63 2 111 22.5t80 54t48.5 78.5t16.5 94q0 55 -13 103h-248v219h140q-27 49 -46.5 110.5t-19.5 147.5q0 100 34 175t94.5 124t144.5 73.5t184 24.5q125 0 227.5 -23.5t175.5 -58.5l-86 -237q-41 23 -112.5 46t-171.5 23q-98 0 -153.5 -46t-55.5 -138 q0 -70 25.5 -120t56.5 -101h288v-219h-200q6 -35 6 -70q0 -61 -20.5 -128.5t-63.5 -110.5l-88 -64v-10l137 31h471v-236h-967z" /> +<glyph unicode="¤" d="M10 307l158 160l74 35q-25 43 -39.5 93t-14.5 112q0 59 15.5 110t42.5 98l-78 35l-158 160l156 164l160 -158l39 -76q41 31 97 46.5t118 15.5q59 0 117.5 -15.5t97.5 -44.5l41 74l159 158l158 -164l-158 -160l-75 -32q29 -43 41 -97.5t12 -113.5q0 -61 -13.5 -115.5 t-39.5 -91.5l75 -33l158 -160l-158 -164l-159 158l-37 76q-39 -29 -99.5 -45.5t-119.5 -16.5q-61 0 -117.5 15.5t-97.5 44.5l-39 -74l-160 -158zM412 709q0 -78 47 -127.5t123 -49.5t122 49.5t46 127.5q0 74 -46.5 125t-121.5 51q-76 0 -123 -51t-47 -125z" /> +<glyph unicode="¥" d="M-29 1434h334l262 -539l29 -152h10l31 156l254 535h301l-389 -744h186v-164h-266v-118h266v-164h-266v-244h-281v244h-268v164h268v118h-268v164h184z" /> +<glyph unicode="¦" horiz-adv-x="464" d="M123 -266v702h219v-702h-219zM123 731v703h219v-703h-219z" /> +<glyph unicode="§" horiz-adv-x="1085" d="M100 723q0 63 31 123.5t84 107.5l84 29q-53 33 -88 83t-35 134q0 115 89 188.5t270 73.5q121 0 225 -20.5t160 -46.5l-66 -215q-47 23 -125 40t-149 17q-76 0 -107 -22.5t-31 -57.5q0 -37 40 -57.5t100.5 -36.5t131 -36.5t131 -57.5t100.5 -98.5t40 -159.5 q0 -63 -29.5 -123t-83.5 -107l-92 -28q55 -33 92 -84.5t37 -135.5q0 -129 -100 -195.5t-266 -66.5q-139 0 -232.5 28t-152.5 60l69 205q47 -23 115 -45t158 -22q76 0 109.5 19.5t33.5 62.5q0 39 -40 60t-100.5 38.5t-131 38t-131 56.5t-100.5 95.5t-40 155.5zM367 727 q0 -72 65.5 -106.5t179.5 -67.5q45 25 76 66t31 88q0 37 -17.5 61.5t-50.5 43.5t-80 35.5t-106 35.5q-41 -25 -69.5 -65t-28.5 -91z" /> +<glyph unicode="¨" horiz-adv-x="980" d="M123 1333q0 66 40 105t105 39q66 0 104 -39t38 -105q0 -61 -38 -100t-104 -39t-105.5 39t-39.5 100zM571 1333q0 66 38 105t104 39t105.5 -39t39.5 -105q0 -61 -40 -100t-105 -39q-66 0 -104 39t-38 100z" /> +<glyph unicode="©" horiz-adv-x="1705" d="M113 594q0 170 57 306t156.5 232.5t234.5 148.5t291 52t290 -52t234.5 -148.5t157.5 -232.5t57 -306t-57 -306t-157.5 -232.5t-234.5 -148.5t-290 -52q-170 0 -307 52t-233.5 148.5t-147.5 232.5t-51 306zM313 594q0 -127 40 -229.5t113 -173t171 -108.5t215 -38t216 38 t172 108.5t113 173t40 229.5t-40 229.5t-113 173t-172 108.5t-216 38t-215 -38t-171 -108.5t-113 -173t-40 -229.5zM508 594q0 186 93 287.5t247 101.5q76 0 134 -17.5t112 -47.5l-66 -179q-37 18 -66.5 24.5t-58.5 6.5q-59 0 -94 -39t-35 -137q0 -176 144 -176q39 0 69.5 7 t61.5 24l59 -181q-45 -29 -113.5 -46t-146.5 -17q-166 0 -253 104.5t-87 284.5z" /> +<glyph unicode="ª" horiz-adv-x="860" d="M86 973q0 68 36 112.5t96.5 71.5t141 36t170.5 5q4 53 -14 76.5t-90 23.5q-82 0 -148.5 -16t-107.5 -33l-45 131q53 29 150.5 49.5t218.5 20.5q156 0 213 -56.5t57 -172.5q0 -123 -6 -238t16 -205h-207l-26 94h-9q-27 -35 -75.5 -68.5t-137.5 -33.5q-106 0 -169.5 56.5 t-63.5 146.5zM322 999q0 -33 21 -51t54 -18q66 0 92.5 23.5t40.5 47.5v72q-88 10 -148 -4t-60 -70z" /> +<glyph unicode="«" horiz-adv-x="999" d="M59 530l328 471l162 -127l-178 -258l-99 -84l99 -73l190 -254l-162 -127zM457 535l315 442l146 -115l-166 -250l-95 -80l95 -71l178 -248l-146 -115z" /> +<glyph unicode="¬" horiz-adv-x="1079" d="M92 614v230h905v-463h-245v233h-660z" /> +<glyph unicode="­" horiz-adv-x="737" d="M111 471v236h514v-236h-514z" /> +<glyph unicode="®" horiz-adv-x="1413" d="M127 924q0 137 46 244.5t126 181t185.5 112.5t222.5 39q121 0 226 -39t183 -112.5t123 -181t45 -244.5q0 -139 -46 -247t-125 -181.5t-184.5 -111.5t-221.5 -38q-121 0 -226.5 38t-184.5 111.5t-124 181.5t-45 247zM319 924q0 -98 32 -173t85 -124t123 -74t148 -25 q82 0 152.5 23.5t121.5 73t81 124t30 175.5q0 98 -31 171.5t-83 123t-123 74t-148 24.5q-86 0 -158 -26.5t-123 -78t-79 -124t-28 -164.5zM496 659v531q33 10 92 15t112 5q86 0 147.5 -35.5t61.5 -123.5q0 -66 -42 -101t-103 -39l57 -28l133 -224h-125l-129 213l-98 31v-244 h-106zM602 965h70q59 0 92 18t33 64q0 71 -119 71q-23 0 -43.5 -1t-32.5 -7v-145z" /> +<glyph unicode="¯" horiz-adv-x="907" d="M123 1159v189h661v-189h-661z" /> +<glyph unicode="°" horiz-adv-x="894" d="M123 1122q0 76 26.5 138.5t72.5 107.5t106.5 69.5t130.5 24.5t132 -22.5t109.5 -66.5t74 -107.5t26.5 -143.5t-26.5 -142t-74 -105.5t-110 -66t-131.5 -22.5q-70 0 -130.5 22.5t-106.5 66t-72.5 105.5t-26.5 142zM328 1122q0 -66 39 -103.5t94 -37.5t96 38t41 103 q0 66 -41 106t-96 40t-94 -40t-39 -106z" /> +<glyph unicode="±" horiz-adv-x="1079" d="M88 289v229h905v-229h-905zM88 831v230h332v336h239v-336h334v-230h-334v-219h-239v219h-332z" /> +<glyph unicode="²" horiz-adv-x="843" d="M102 1571q72 43 153 62.5t155 19.5q145 0 224 -66.5t79 -193.5q0 -121 -61.5 -207t-147.5 -164l-96 -51v-8l120 22h217v-207h-641v146q53 37 119 86t122 105t94 115.5t38 112.5q0 100 -115 101q-55 0 -104 -17.5t-86 -40.5z" /> +<glyph unicode="³" horiz-adv-x="843" d="M115 813l47 184q84 -39 184 -39q90 0 128 29t40 76q-2 47 -41 73.5t-143 26.5h-86v78l149 164l88 51l-119 -12h-235v194h580v-127l-179 -188l-69 -37v-10l61 6q106 -4 167 -64.5t63 -171.5q-2 -74 -32 -127t-80 -87.5t-117.5 -51t-139.5 -16.5q-80 0 -148.5 13t-117.5 36 z" /> +<glyph unicode="´" horiz-adv-x="624" d="M123 1159l108 316h271v-62l-228 -254h-151z" /> +<glyph unicode="¶" horiz-adv-x="1083" d="M53 1020q0 82 26.5 156.5t76 132t119 91.5t155.5 34h152v-1700h-217v868q-68 0 -125.5 34t-99.5 92t-64.5 133t-22.5 159zM741 -266v1700h220v-1700h-220z" /> +<glyph unicode="·" horiz-adv-x="518" d="M92 647q0 72 45 114t119 42q78 0 123 -42t45 -114t-45 -115t-123 -43q-74 0 -119 43t-45 115z" /> +<glyph unicode="¸" horiz-adv-x="679" d="M123 -418l18 99q14 -2 26.5 -2.5t22.5 -0.5q78 0 100.5 18.5t22.5 43.5q0 57 -176 65l117 195h172l-49 -88q84 -8 132 -44t48 -110q0 -47 -23.5 -81.5t-64.5 -58.5t-96.5 -36t-118.5 -12t-131 12z" /> +<glyph unicode="¹" horiz-adv-x="843" d="M84 1425l324 228h174v-670h180v-205h-615v205h199v336l21 94l-62 -65l-121 -80z" /> +<glyph unicode="º" horiz-adv-x="858" d="M70 1110q0 92 26.5 157.5t73.5 108.5t113.5 62.5t144.5 19.5t143.5 -18.5t113.5 -59.5t74.5 -107.5t28.5 -162.5q-2 -96 -28.5 -162.5t-74.5 -107.5t-113.5 -59.5t-143.5 -18.5t-144.5 18.5t-113.5 59.5t-73.5 107.5t-26.5 162.5zM307 1110q0 -176 121 -176q63 0 91 38 t30 138q-2 98 -29.5 137t-91.5 39q-63 0 -92 -39t-29 -137z" /> +<glyph unicode="»" horiz-adv-x="999" d="M70 866l143 115l328 -436l-314 -443l-147 115l168 250l92 80l-92 71zM438 874l162 127l340 -452l-328 -471l-161 127l178 258l98 84l-98 74z" /> +<glyph unicode="¼" horiz-adv-x="1802" d="M76 1221l324 227h174v-875h-236v541l23 94l-64 -65l-121 -80zM364 80l883 1384l174 -102l-881 -1391zM920 160v137l446 580h185v-535h155v-182h-155v-160h-207v160h-424zM1129 326l106 16h109v176l12 109h-10l-45 -100l-99 -136z" /> +<glyph unicode="½" horiz-adv-x="1849" d="M76 1221l324 227h174v-875h-236v541l23 94l-64 -65l-121 -80zM364 80l883 1384l174 -102l-881 -1391zM1112 793q72 43 153 62.5t155 19.5q145 0 224 -66.5t79 -193.5q0 -121 -61.5 -207t-147.5 -164l-96 -51v-8l120 22h217v-207h-641v146q53 37 119 86t122 105t94 115.5 t38 112.5q0 100 -115 101q-55 0 -104 -17.5t-86 -40.5z" /> +<glyph unicode="¾" horiz-adv-x="1853" d="M99 608l47 184q84 -39 184 -39q90 0 128 29t40 76q-2 47 -41 73.5t-143 26.5h-86v78l149 164l88 51l-119 -12h-235v194h580v-127l-179 -188l-69 -37v-10l61 6q106 -4 167 -64.5t63 -171.5q-2 -74 -32 -127t-80 -87.5t-117.5 -51t-139.5 -16.5q-80 0 -148.5 13t-117.5 36z M416 80l883 1384l174 -102l-881 -1391zM971 160v137l446 580h185v-535h155v-182h-155v-160h-207v160h-424zM1180 326l106 16h109v176l12 109h-10l-45 -100l-99 -136z" /> +<glyph unicode="¿" horiz-adv-x="929" d="M47 -90q0 104 27.5 172t69.5 116t90.5 84.5t90.5 78.5t69.5 97.5t27.5 141.5h227q10 -106 -9 -181t-56 -129t-82 -93t-85 -76t-67.5 -77t-27.5 -95q0 -72 40.5 -116t143.5 -44q33 0 69.5 7t73.5 20.5t71 31t60 37.5l101 -196q-78 -53 -178.5 -88t-243.5 -35 q-193 0 -302.5 92t-109.5 252zM365 891q0 72 45 114t118 42q78 0 123 -42t45 -114t-45 -115t-123 -43q-74 0 -118.5 43t-44.5 115z" /> +<glyph unicode="À" horiz-adv-x="1239" d="M0 0l516 1444h207l516 -1444h-295l-115 317h-440l-108 -317h-281zM279 1720v62h326l213 -242h-216zM461 543h307l-106 319l-44 225h-10l-43 -227z" /> +<glyph unicode="Á" horiz-adv-x="1239" d="M0 0l516 1444h207l516 -1444h-295l-115 317h-440l-108 -317h-281zM420 1540l213 242h326v-62l-328 -180h-211zM461 543h307l-106 319l-44 225h-10l-43 -227z" /> +<glyph unicode="Â" horiz-adv-x="1239" d="M0 0l516 1444h207l516 -1444h-295l-115 317h-440l-108 -317h-281zM254 1511v82l272 189h197l260 -191v-80h-203l-117 84l-40 70l-43 -68l-127 -86h-199zM461 543h307l-106 319l-44 225h-10l-43 -227z" /> +<glyph unicode="Ã" horiz-adv-x="1239" d="M0 0l516 1444h207l516 -1444h-295l-115 317h-440l-108 -317h-281zM232 1638q66 72 126 98.5t120 26.5q45 0 90 -11t87 -24.5t83 -24.5t78 -11q33 0 63.5 10t58.5 39l52 -137q-57 -53 -111.5 -75t-105.5 -22q-47 0 -90.5 11.5t-85.5 26t-82.5 25.5t-79.5 11t-77 -15.5 t-77 -56.5zM461 543h307l-106 319l-44 225h-10l-43 -227z" /> +<glyph unicode="Ä" horiz-adv-x="1239" d="M0 0l516 1444h207l516 -1444h-295l-115 317h-440l-108 -317h-281zM254 1634q0 53 37 86t119 33q80 0 116.5 -32.5t36.5 -86.5q0 -53 -37 -84.5t-116 -31.5q-82 0 -119 31.5t-37 84.5zM461 543h307l-106 319l-44 225h-10l-43 -227zM692 1634q0 53 37 86t117 33 q82 0 118.5 -32.5t36.5 -86.5q0 -53 -36.5 -84.5t-118.5 -31.5q-80 0 -117 31.5t-37 84.5z" /> +<glyph unicode="Å" horiz-adv-x="1239" d="M0 0l504 1411q-80 18 -113 63.5t-33 104.5q0 37 12.5 70.5t42 59.5t80 40t128.5 14q143 0 202.5 -49t59.5 -135q0 -59 -33 -103t-117 -65l506 -1411h-295l-115 317h-440l-108 -317h-281zM461 543h307l-106 319l-44 225h-10l-43 -227zM530 1579q0 -63 91 -63q51 0 71.5 16 t20.5 47q0 35 -21.5 51.5t-70.5 16.5q-91 0 -91 -68z" /> +<glyph unicode="Æ" horiz-adv-x="1765" d="M-59 0l868 1434h858v-250h-567v-334h516v-250h-516v-350h577v-250h-858v348h-381l-202 -348h-295zM561 575h258v515h-12l-74 -211z" /> +<glyph unicode="Ç" horiz-adv-x="1144" d="M78 717q0 211 58.5 353t151.5 229t207.5 125t229.5 38q123 0 208 -16t140 -39l-55 -238q-47 23 -111.5 33t-156.5 10q-170 0 -273.5 -120.5t-103.5 -374.5q0 -111 24.5 -202t74.5 -155.5t125 -100.5t173 -36q92 0 155.5 18.5t110.5 47.5l58 -230q-53 -39 -134 -59 t-172 -27l-32 -61q84 -8 132 -44t48 -110q0 -47 -23.5 -81.5t-64.5 -58.5t-96.5 -36t-118.5 -12t-131 12l18 99q14 -2 26.5 -2.5t22.5 -0.5q78 0 100.5 18.5t22.5 43.5q0 57 -176 65l102 172q-113 14 -211 62.5t-171.5 138.5t-115.5 223.5t-42 315.5z" /> +<glyph unicode="È" horiz-adv-x="1069" d="M123 0v1434h850v-250h-570v-334h519v-250h-519v-350h580v-250h-860zM182 1720v62h326l213 -242h-216z" /> +<glyph unicode="É" horiz-adv-x="1069" d="M123 0v1434h850v-250h-570v-334h519v-250h-519v-350h580v-250h-860zM387 1540l213 242h326v-62l-328 -180h-211z" /> +<glyph unicode="Ê" horiz-adv-x="1069" d="M123 0v1434h850v-250h-570v-334h519v-250h-519v-350h580v-250h-860zM176 1511v82l272 189h197l260 -191v-80h-203l-117 84l-40 70l-43 -68l-127 -86h-199z" /> +<glyph unicode="Ë" horiz-adv-x="1069" d="M123 0v1434h850v-250h-570v-334h519v-250h-519v-350h580v-250h-860zM172 1634q0 53 37 86t119 33q80 0 116.5 -32.5t36.5 -86.5q0 -53 -37 -84.5t-116 -31.5q-82 0 -119 31.5t-37 84.5zM610 1634q0 53 37 86t117 33q82 0 118.5 -32.5t36.5 -86.5q0 -53 -36.5 -84.5 t-118.5 -31.5q-80 0 -117 31.5t-37 84.5z" /> +<glyph unicode="Ì" horiz-adv-x="583" d="M-45 1720v62h326l213 -242h-216zM152 0v1434h280v-1434h-280z" /> +<glyph unicode="Í" horiz-adv-x="583" d="M100 1540l213 242h326v-62l-328 -180h-211zM152 0v1434h280v-1434h-280z" /> +<glyph unicode="Î" horiz-adv-x="583" d="M-74 1511v82l272 189h197l260 -191v-80h-203l-117 84l-40 70l-43 -68l-127 -86h-199zM152 0v1434h280v-1434h-280z" /> +<glyph unicode="Ï" horiz-adv-x="583" d="M-78 1634q0 53 37 86t119 33q80 0 116.5 -32.5t36.5 -86.5q0 -53 -37 -84.5t-116 -31.5q-82 0 -119 31.5t-37 84.5zM152 0v1434h280v-1434h-280zM360 1634q0 53 37 86t117 33q82 0 118.5 -32.5t36.5 -86.5q0 -53 -36.5 -84.5t-118.5 -31.5q-80 0 -117 31.5t-37 84.5z" /> +<glyph unicode="Ð" horiz-adv-x="1370" d="M-12 657v164h180v613q43 6 97 10t111.5 6t112 3t97.5 1q190 0 325.5 -53t219 -149.5t122.5 -229.5t39 -293q0 -145 -36.5 -280.5t-122.5 -240t-226.5 -168t-347.5 -63.5q-33 0 -87 2.5t-112.5 5.5t-111.5 6t-80 7v659h-180zM449 233q8 -2 27.5 -3t42 -2t43 -1h30.5 q119 0 197.5 42t125 112t64.5 161t18 187q0 84 -16 169t-60 152.5t-120 110.5t-193 43q-45 0 -91 -2t-68 -6v-375h286v-164h-286v-424z" /> +<glyph unicode="Ñ" horiz-adv-x="1345" d="M123 0v1444h205l542 -764l109 -219h10l-33 219v754h267v-1444h-205l-539 758l-112 225h-11l33 -225v-748h-266zM283 1638q66 72 126 98.5t120 26.5q45 0 90 -11t87 -24.5t83 -24.5t78 -11q33 0 63.5 10t58.5 39l52 -137q-57 -53 -111.5 -75t-105.5 -22q-47 0 -90.5 11.5 t-85.5 26t-82.5 25.5t-79.5 11t-77 -15.5t-77 -56.5z" /> +<glyph unicode="Ò" horiz-adv-x="1372" d="M78 717q0 358 157.5 551.5t450.5 193.5q154 0 268.5 -53t190.5 -151.5t112.5 -235.5t36.5 -305q0 -358 -158.5 -552t-449.5 -194q-156 0 -270.5 53.5t-189 151.5t-111.5 235.5t-37 305.5zM305 1720v62h326l213 -242h-216zM373 717q0 -109 18.5 -200t56 -156.5t97 -102.5 t141.5 -37q150 0 231.5 117t81.5 379q0 104 -17 194t-54 158t-96.5 105.5t-145.5 37.5q-150 0 -231.5 -119.5t-81.5 -375.5z" /> +<glyph unicode="Ó" horiz-adv-x="1372" d="M78 717q0 358 157.5 551.5t450.5 193.5q154 0 268.5 -53t190.5 -151.5t112.5 -235.5t36.5 -305q0 -358 -158.5 -552t-449.5 -194q-156 0 -270.5 53.5t-189 151.5t-111.5 235.5t-37 305.5zM373 717q0 -109 18.5 -200t56 -156.5t97 -102.5t141.5 -37q150 0 231.5 117 t81.5 379q0 104 -17 194t-54 158t-96.5 105.5t-145.5 37.5q-150 0 -231.5 -119.5t-81.5 -375.5zM541 1540l213 242h326v-62l-328 -180h-211z" /> +<glyph unicode="Ô" horiz-adv-x="1372" d="M78 717q0 358 157.5 551.5t450.5 193.5q154 0 268.5 -53t190.5 -151.5t112.5 -235.5t36.5 -305q0 -358 -158.5 -552t-449.5 -194q-156 0 -270.5 53.5t-189 151.5t-111.5 235.5t-37 305.5zM316 1511v82l272 189h197l260 -191v-80h-203l-117 84l-40 70l-43 -68l-127 -86 h-199zM373 717q0 -109 18.5 -200t56 -156.5t97 -102.5t141.5 -37q150 0 231.5 117t81.5 379q0 104 -17 194t-54 158t-96.5 105.5t-145.5 37.5q-150 0 -231.5 -119.5t-81.5 -375.5z" /> +<glyph unicode="Õ" horiz-adv-x="1372" d="M78 717q0 358 157.5 551.5t450.5 193.5q154 0 268.5 -53t190.5 -151.5t112.5 -235.5t36.5 -305q0 -358 -158.5 -552t-449.5 -194q-156 0 -270.5 53.5t-189 151.5t-111.5 235.5t-37 305.5zM295 1638q66 72 126 98.5t120 26.5q45 0 90 -11t87 -24.5t83 -24.5t78 -11 q33 0 63.5 10t58.5 39l52 -137q-57 -53 -111.5 -75t-105.5 -22q-47 0 -90.5 11.5t-85.5 26t-82.5 25.5t-79.5 11t-77 -15.5t-77 -56.5zM373 717q0 -109 18.5 -200t56 -156.5t97 -102.5t141.5 -37q150 0 231.5 117t81.5 379q0 104 -17 194t-54 158t-96.5 105.5t-145.5 37.5 q-150 0 -231.5 -119.5t-81.5 -375.5z" /> +<glyph unicode="Ö" horiz-adv-x="1372" d="M78 717q0 358 157.5 551.5t450.5 193.5q154 0 268.5 -53t190.5 -151.5t112.5 -235.5t36.5 -305q0 -358 -158.5 -552t-449.5 -194q-156 0 -270.5 53.5t-189 151.5t-111.5 235.5t-37 305.5zM307 1634q0 53 37 86t119 33q80 0 116.5 -32.5t36.5 -86.5q0 -53 -37 -84.5 t-116 -31.5q-82 0 -119 31.5t-37 84.5zM373 717q0 -109 18.5 -200t56 -156.5t97 -102.5t141.5 -37q150 0 231.5 117t81.5 379q0 104 -17 194t-54 158t-96.5 105.5t-145.5 37.5q-150 0 -231.5 -119.5t-81.5 -375.5zM745 1634q0 53 37 86t117 33q82 0 118.5 -32.5t36.5 -86.5 q0 -53 -36.5 -84.5t-118.5 -31.5q-80 0 -117 31.5t-37 84.5z" /> +<glyph unicode="×" horiz-adv-x="1079" d="M111 426l268 268l-264 260l159 166l269 -266l266 266l162 -166l-266 -260l266 -264l-162 -168l-266 268l-271 -270z" /> +<glyph unicode="Ø" horiz-adv-x="1372" d="M78 717q0 358 157.5 551.5t450.5 193.5q92 0 170 -20.5t141 -57.5l52 80l174 -102l-72 -115q72 -98 107.5 -232t35.5 -298q0 -358 -158.5 -552t-449.5 -194q-90 0 -163.5 17.5t-137.5 50.5l-43 -68l-176 109l61 96q-76 98 -112.5 234.5t-36.5 306.5zM373 717 q0 -74 8 -139.5t25 -120.5l448 700q-72 55 -168 55q-150 0 -231.5 -119.5t-81.5 -375.5zM530 266q68 -45 156 -45q150 0 231.5 117t81.5 379q0 68 -6 130t-22 116z" /> +<glyph unicode="Ù" horiz-adv-x="1284" d="M117 473v961h280v-906q0 -84 15.5 -142t48.5 -94t82 -51.5t114 -15.5q129 0 186.5 72t57.5 231v906h266v-926q0 -139 -36.5 -239.5t-102 -166t-160 -96.5t-206.5 -31q-545 0 -545 498zM270 1720v62h326l213 -242h-216z" /> +<glyph unicode="Ú" horiz-adv-x="1284" d="M117 473v961h280v-906q0 -84 15.5 -142t48.5 -94t82 -51.5t114 -15.5q129 0 186.5 72t57.5 231v906h266v-926q0 -139 -36.5 -239.5t-102 -166t-160 -96.5t-206.5 -31q-545 0 -545 498zM535 1540l213 242h326v-62l-328 -180h-211z" /> +<glyph unicode="Û" horiz-adv-x="1284" d="M117 473v961h280v-906q0 -84 15.5 -142t48.5 -94t82 -51.5t114 -15.5q129 0 186.5 72t57.5 231v906h266v-926q0 -139 -36.5 -239.5t-102 -166t-160 -96.5t-206.5 -31q-545 0 -545 498zM287 1511v82l272 189h197l260 -191v-80h-203l-117 84l-40 70l-43 -68l-127 -86h-199z " /> +<glyph unicode="Ü" horiz-adv-x="1284" d="M117 473v961h280v-906q0 -84 15.5 -142t48.5 -94t82 -51.5t114 -15.5q129 0 186.5 72t57.5 231v906h266v-926q0 -139 -36.5 -239.5t-102 -166t-160 -96.5t-206.5 -31q-545 0 -545 498zM273 1634q0 53 37 86t119 33q80 0 116.5 -32.5t36.5 -86.5q0 -53 -37 -84.5 t-116 -31.5q-82 0 -119 31.5t-37 84.5zM711 1634q0 53 37 86t117 33q82 0 118.5 -32.5t36.5 -86.5q0 -53 -36.5 -84.5t-118.5 -31.5q-80 0 -117 31.5t-37 84.5z" /> +<glyph unicode="Ý" horiz-adv-x="1212" d="M-4 1434h334l262 -539l29 -152h10l31 156l253 535h302l-469 -899v-535h-281v532zM455 1540l213 242h326v-62l-328 -180h-211z" /> +<glyph unicode="Þ" horiz-adv-x="1171" d="M123 0v1434h280v-148q29 2 57.5 3t57.5 1q106 0 214 -17.5t194 -69.5t140 -145t54 -243q0 -135 -47 -228t-125 -152.5t-177 -86t-206 -26.5h-32.5t-47 1t-48 3t-34.5 4v-330h-280zM403 573q8 -2 24.5 -4t35 -3t36 -1h25.5q55 0 109.5 10.5t97.5 38t68.5 76.5t25.5 129 q0 68 -24.5 112t-64.5 70.5t-91 37t-104 10.5q-41 0 -78 -3.5t-60 -7.5v-465z" /> +<glyph unicode="ß" horiz-adv-x="1290" d="M25 799v225h141q0 119 32.5 200t91 131t139.5 72.5t177 22.5q104 0 187.5 -23.5t141.5 -66.5t90 -103.5t32 -134.5q0 -80 -36 -129t-80 -84t-80 -65.5t-36 -75.5q0 -37 30 -59.5t76 -42t98 -41t98.5 -56t76 -89t29.5 -138.5q0 -72 -22.5 -138.5t-70.5 -118.5t-121 -83 t-171 -31q-96 0 -177 23.5t-139 58.5l72 199q47 -27 94 -47.5t127 -20.5q61 0 101.5 42t40.5 102q0 43 -30 69.5t-76 48t-98 42t-98.5 52t-76 79t-29.5 120.5q0 88 36 137.5t80 83t80 62.5t36 78q0 27 -14.5 50.5t-39 39.5t-55.5 26.5t-61 10.5q-98 0 -144.5 -48.5 t-46.5 -179.5v-999h-264v799h-141z" /> +<glyph unicode="à" horiz-adv-x="1015" d="M47 283q0 94 42 158.5t121 104.5t188.5 55t244.5 9q14 115 -16.5 165t-137.5 50q-80 0 -169 -16t-146 -43l-63 199q82 37 194.5 58t235.5 21q106 0 178 -25.5t113.5 -72.5t59 -112.5t17.5 -147.5q0 -90 -6 -181t-7 -179t5 -171t31 -157h-217l-43 141h-10 q-41 -63 -114 -109t-188 -46q-72 0 -129 21.5t-98 61t-63.5 94t-22.5 122.5zM236 1413v62h278l123 -316h-147zM322 324q0 -57 34 -89t93 -32q80 0 127 35.5t69 76.5v134q-63 6 -121.5 1.5t-103.5 -18.5t-71.5 -40.5t-26.5 -67.5z" /> +<glyph unicode="á" horiz-adv-x="1015" d="M47 283q0 94 42 158.5t121 104.5t188.5 55t244.5 9q14 115 -16.5 165t-137.5 50q-80 0 -169 -16t-146 -43l-63 199q82 37 194.5 58t235.5 21q106 0 178 -25.5t113.5 -72.5t59 -112.5t17.5 -147.5q0 -90 -6 -181t-7 -179t5 -171t31 -157h-217l-43 141h-10 q-41 -63 -114 -109t-188 -46q-72 0 -129 21.5t-98 61t-63.5 94t-22.5 122.5zM322 324q0 -57 34 -89t93 -32q80 0 127 35.5t69 76.5v134q-63 6 -121.5 1.5t-103.5 -18.5t-71.5 -40.5t-26.5 -67.5zM377 1159l108 316h271v-62l-228 -254h-151z" /> +<glyph unicode="â" horiz-adv-x="1015" d="M47 283q0 94 42 158.5t121 104.5t188.5 55t244.5 9q14 115 -16.5 165t-137.5 50q-80 0 -169 -16t-146 -43l-63 199q82 37 194.5 58t235.5 21q106 0 178 -25.5t113.5 -72.5t59 -112.5t17.5 -147.5q0 -90 -6 -181t-7 -179t5 -171t31 -157h-217l-43 141h-10 q-41 -63 -114 -109t-188 -46q-72 0 -129 21.5t-98 61t-63.5 94t-22.5 122.5zM191 1126l252 373h176l227 -373h-211l-80 136l-34 100l-35 -100l-92 -136h-203zM322 324q0 -57 34 -89t93 -32q80 0 127 35.5t69 76.5v134q-63 6 -121.5 1.5t-103.5 -18.5t-71.5 -40.5 t-26.5 -67.5z" /> +<glyph unicode="ã" horiz-adv-x="1015" d="M47 283q0 94 42 158.5t121 104.5t188.5 55t244.5 9q14 115 -16.5 165t-137.5 50q-80 0 -169 -16t-146 -43l-63 199q82 37 194.5 58t235.5 21q106 0 178 -25.5t113.5 -72.5t59 -112.5t17.5 -147.5q0 -90 -6 -181t-7 -179t5 -171t31 -157h-217l-43 141h-10 q-41 -63 -114 -109t-188 -46q-72 0 -129 21.5t-98 61t-63.5 94t-22.5 122.5zM176 1348q63 76 117.5 104.5t103.5 28.5q41 0 79 -14.5t75 -31t71.5 -30.5t71.5 -14q29 0 58.5 12t62.5 43l41 -143q-59 -66 -109.5 -90.5t-97.5 -24.5q-41 0 -80 13t-76 29.5t-73.5 30 t-73.5 13.5q-31 0 -63.5 -13.5t-67.5 -46.5zM322 324q0 -57 34 -89t93 -32q80 0 127 35.5t69 76.5v134q-63 6 -121.5 1.5t-103.5 -18.5t-71.5 -40.5t-26.5 -67.5z" /> +<glyph unicode="ä" horiz-adv-x="1015" d="M47 283q0 94 42 158.5t121 104.5t188.5 55t244.5 9q14 115 -16.5 165t-137.5 50q-80 0 -169 -16t-146 -43l-63 199q82 37 194.5 58t235.5 21q106 0 178 -25.5t113.5 -72.5t59 -112.5t17.5 -147.5q0 -90 -6 -181t-7 -179t5 -171t31 -157h-217l-43 141h-10 q-41 -63 -114 -109t-188 -46q-72 0 -129 21.5t-98 61t-63.5 94t-22.5 122.5zM154 1333q0 66 40 105t105 39q66 0 104 -39t38 -105q0 -61 -38 -100t-104 -39t-105.5 39t-39.5 100zM322 324q0 -57 34 -89t93 -32q80 0 127 35.5t69 76.5v134q-63 6 -121.5 1.5t-103.5 -18.5 t-71.5 -40.5t-26.5 -67.5zM602 1333q0 66 38 105t104 39t105.5 -39t39.5 -105q0 -61 -40 -100t-105 -39q-66 0 -104 39t-38 100z" /> +<glyph unicode="å" horiz-adv-x="1015" d="M47 283q0 94 42 158.5t121 104.5t188.5 55t244.5 9q14 115 -16.5 165t-137.5 50q-80 0 -169 -16t-146 -43l-63 199q82 37 194.5 58t235.5 21q106 0 178 -25.5t113.5 -72.5t59 -112.5t17.5 -147.5q0 -90 -6 -181t-7 -179t5 -171t31 -157h-217l-43 141h-10 q-41 -63 -114 -109t-188 -46q-72 0 -129 21.5t-98 61t-63.5 94t-22.5 122.5zM295 1325q0 86 58.5 141.5t168.5 55.5q104 0 166 -50.5t62 -146.5q0 -80 -60.5 -136t-167.5 -56q-109 0 -168 52t-59 140zM322 324q0 -57 34 -89t93 -32q80 0 127 35.5t69 76.5v134 q-63 6 -121.5 1.5t-103.5 -18.5t-71.5 -40.5t-26.5 -67.5zM442 1325q0 -33 24.5 -50.5t55.5 -17.5q35 0 57.5 16.5t22.5 51.5t-23.5 52.5t-56.5 17.5q-31 0 -55.5 -16.5t-24.5 -53.5z" /> +<glyph unicode="æ" horiz-adv-x="1607" d="M47 283q0 94 42 158.5t120 104.5t187.5 55t244.5 9q14 115 -15.5 165t-136.5 50q-80 0 -162.5 -21.5t-146.5 -51.5l-69 192q78 41 192.5 70.5t237.5 29.5q106 0 169.5 -27.5t104.5 -82.5q51 57 133 88t178 31q78 0 152 -20.5t131 -67.5t92 -127t35 -199q0 -43 -5 -91 t-15 -104h-617q8 -129 68.5 -194.5t195.5 -65.5q84 0 150.5 26t101.5 52l88 -174q-61 -49 -166.5 -83t-224.5 -34q-131 0 -230.5 48.5t-154.5 136.5h-10q-55 -70 -136 -121t-221 -51q-72 0 -129 21.5t-98 61t-63.5 94t-22.5 122.5zM322 324q0 -57 34 -89t93 -32 q80 0 127 35.5t69 76.5v134q-63 6 -121.5 1.5t-103.5 -18.5t-71.5 -40.5t-26.5 -67.5zM907 610h383q6 111 -35 170.5t-133 59.5q-104 0 -154 -62.5t-61 -167.5z" /> +<glyph unicode="ç" horiz-adv-x="886" d="M68 512q0 260 116.5 400.5t339.5 140.5q113 0 181.5 -18.5t123.5 -47.5l-63 -217q-47 23 -93 35t-106 12q-111 0 -168 -72.5t-57 -232.5q0 -66 14.5 -121t43 -96t74.5 -64.5t108 -23.5q68 0 114.5 17.5t83.5 41.5l62 -203q-47 -35 -107.5 -55t-128.5 -31l-37 -65 q84 -8 132.5 -44t48.5 -110q0 -47 -24 -81.5t-64.5 -58.5t-96 -36t-119.5 -12q-63 0 -131 12l19 99q14 -2 26.5 -2.5t22.5 -0.5q78 0 100.5 18.5t22.5 43.5q0 57 -176 65l102 172q-100 12 -169.5 56.5t-113 113t-62.5 161.5t-19 204z" /> +<glyph unicode="è" horiz-adv-x="1040" d="M68 512q0 270 129 405.5t362 135.5q78 0 151.5 -20.5t131 -67.5t92.5 -127t35 -199q0 -43 -5.5 -92t-15.5 -103h-614q6 -129 66.5 -194.5t195.5 -65.5q84 0 150.5 26t101.5 52l88 -174q-61 -49 -166.5 -83t-224.5 -34q-248 0 -362.5 144.5t-114.5 396.5zM273 1413v62h278 l123 -316h-147zM340 610h381q8 111 -34 170.5t-132 59.5q-104 0 -154.5 -62.5t-60.5 -167.5z" /> +<glyph unicode="é" horiz-adv-x="1040" d="M68 512q0 270 129 405.5t362 135.5q78 0 151.5 -20.5t131 -67.5t92.5 -127t35 -199q0 -43 -5.5 -92t-15.5 -103h-614q6 -129 66.5 -194.5t195.5 -65.5q84 0 150.5 26t101.5 52l88 -174q-61 -49 -166.5 -83t-224.5 -34q-248 0 -362.5 144.5t-114.5 396.5zM340 610h381 q8 111 -34 170.5t-132 59.5q-104 0 -154.5 -62.5t-60.5 -167.5zM453 1159l108 316h271v-62l-228 -254h-151z" /> +<glyph unicode="ê" horiz-adv-x="1040" d="M68 512q0 270 129 405.5t362 135.5q78 0 151.5 -20.5t131 -67.5t92.5 -127t35 -199q0 -43 -5.5 -92t-15.5 -103h-614q6 -129 66.5 -194.5t195.5 -65.5q84 0 150.5 26t101.5 52l88 -174q-61 -49 -166.5 -83t-224.5 -34q-248 0 -362.5 144.5t-114.5 396.5zM201 1126 l252 373h176l227 -373h-211l-80 136l-34 100l-35 -100l-92 -136h-203zM340 610h381q8 111 -34 170.5t-132 59.5q-104 0 -154.5 -62.5t-60.5 -167.5z" /> +<glyph unicode="ë" horiz-adv-x="1040" d="M68 512q0 270 129 405.5t362 135.5q78 0 151.5 -20.5t131 -67.5t92.5 -127t35 -199q0 -43 -5.5 -92t-15.5 -103h-614q6 -129 66.5 -194.5t195.5 -65.5q84 0 150.5 26t101.5 52l88 -174q-61 -49 -166.5 -83t-224.5 -34q-248 0 -362.5 144.5t-114.5 396.5zM168 1333 q0 66 40 105t105 39q66 0 104 -39t38 -105q0 -61 -38 -100t-104 -39t-105.5 39t-39.5 100zM340 610h381q8 111 -34 170.5t-132 59.5q-104 0 -154.5 -62.5t-60.5 -167.5zM616 1333q0 66 38 105t104 39t105.5 -39t39.5 -105q0 -61 -40 -100t-105 -39q-66 0 -104 39t-38 100z " /> +<glyph unicode="ì" horiz-adv-x="550" d="M-4 1413v62h278l123 -316h-147zM143 0v1024h267v-1024h-267z" /> +<glyph unicode="í" horiz-adv-x="550" d="M143 0v1024h267v-1024h-267zM146 1159l108 316h271v-62l-228 -254h-151z" /> +<glyph unicode="î" horiz-adv-x="550" d="M-61 1126l252 373h176l227 -373h-211l-80 136l-34 100l-35 -100l-92 -136h-203zM143 0v1024h267v-1024h-267z" /> +<glyph unicode="ï" horiz-adv-x="550" d="M-92 1333q0 66 40 105t105 39q66 0 104 -39t38 -105q0 -61 -38 -100t-104 -39t-105.5 39t-39.5 100zM143 0v1024h267v-1024h-267zM356 1333q0 66 38 105t104 39t105.5 -39t39.5 -105q0 -61 -40 -100t-105 -39q-66 0 -104 39t-38 100z" /> +<glyph unicode="ð" horiz-adv-x="1153" d="M76 502q0 111 34.5 205t97 164.5t150.5 110.5t193 40q78 0 144.5 -21.5t107.5 -62.5q-25 74 -70 135q-45 59 -102 105l-139 -95l-89 113l91 61q-70 31 -142 43l107 164q51 -14 116 -41q47 -18 97 -45l108 74l86 -113l-67 -47q25 -18 47 -41q66 -61 117 -150t82.5 -208 t31.5 -275q0 -166 -38 -287.5t-105.5 -201.5t-161.5 -119t-207 -39q-121 0 -213 39t-153.5 109.5t-92 168t-30.5 214.5zM334 498q0 -147 67.5 -223t180.5 -76q106 0 173.5 91t67.5 283q0 27 -3 70t-11 68q-33 47 -98.5 66.5t-126.5 19.5q-123 0 -186.5 -85t-63.5 -214z" /> +<glyph unicode="ñ" horiz-adv-x="1116" d="M117 0v1024h211l30 -135h9q47 66 124.5 115t200.5 49q76 0 135.5 -20.5t100.5 -67.5t61.5 -128t20.5 -200v-637h-267v582q0 125 -35.5 180t-121.5 55q-76 0 -128 -44t-75 -109v-664h-266zM219 1348q63 76 117.5 104.5t103.5 28.5q41 0 79 -14.5t75 -31t71.5 -30.5 t71.5 -14q29 0 58.5 12t62.5 43l41 -143q-59 -66 -109.5 -90.5t-97.5 -24.5q-41 0 -80 13t-76 29.5t-73.5 30t-73.5 13.5q-31 0 -63.5 -13.5t-67.5 -46.5z" /> +<glyph unicode="ò" horiz-adv-x="1099" d="M68 512q0 260 127 400.5t356 140.5q123 0 213 -39t149.5 -109.5t89 -171t29.5 -221.5q0 -260 -126 -400.5t-355 -140.5q-123 0 -213 39t-150.5 109.5t-90 171t-29.5 221.5zM277 1413v62h278l123 -316h-147zM342 512q0 -68 12.5 -125t37 -100t64.5 -66.5t95 -23.5 q104 0 155.5 75.5t51.5 239.5q0 141 -47 228t-160 87q-98 0 -153.5 -73.5t-55.5 -241.5z" /> +<glyph unicode="ó" horiz-adv-x="1099" d="M68 512q0 260 127 400.5t356 140.5q123 0 213 -39t149.5 -109.5t89 -171t29.5 -221.5q0 -260 -126 -400.5t-355 -140.5q-123 0 -213 39t-150.5 109.5t-90 171t-29.5 221.5zM342 512q0 -68 12.5 -125t37 -100t64.5 -66.5t95 -23.5q104 0 155.5 75.5t51.5 239.5 q0 141 -47 228t-160 87q-98 0 -153.5 -73.5t-55.5 -241.5zM455 1159l108 316h271v-62l-228 -254h-151z" /> +<glyph unicode="ô" horiz-adv-x="1099" d="M68 512q0 260 127 400.5t356 140.5q123 0 213 -39t149.5 -109.5t89 -171t29.5 -221.5q0 -260 -126 -400.5t-355 -140.5q-123 0 -213 39t-150.5 109.5t-90 171t-29.5 221.5zM221 1126l252 373h176l227 -373h-211l-80 136l-34 100l-35 -100l-92 -136h-203zM342 512 q0 -68 12.5 -125t37 -100t64.5 -66.5t95 -23.5q104 0 155.5 75.5t51.5 239.5q0 141 -47 228t-160 87q-98 0 -153.5 -73.5t-55.5 -241.5z" /> +<glyph unicode="õ" horiz-adv-x="1099" d="M68 512q0 260 127 400.5t356 140.5q123 0 213 -39t149.5 -109.5t89 -171t29.5 -221.5q0 -260 -126 -400.5t-355 -140.5q-123 0 -213 39t-150.5 109.5t-90 171t-29.5 221.5zM213 1348q63 76 117.5 104.5t103.5 28.5q41 0 79 -14.5t75 -31t71.5 -30.5t71.5 -14 q29 0 58.5 12t62.5 43l41 -143q-59 -66 -109.5 -90.5t-97.5 -24.5q-41 0 -80 13t-76 29.5t-73.5 30t-73.5 13.5q-31 0 -63.5 -13.5t-67.5 -46.5zM342 512q0 -68 12.5 -125t37 -100t64.5 -66.5t95 -23.5q104 0 155.5 75.5t51.5 239.5q0 141 -47 228t-160 87 q-98 0 -153.5 -73.5t-55.5 -241.5z" /> +<glyph unicode="ö" horiz-adv-x="1099" d="M68 512q0 260 127 400.5t356 140.5q123 0 213 -39t149.5 -109.5t89 -171t29.5 -221.5q0 -260 -126 -400.5t-355 -140.5q-123 0 -213 39t-150.5 109.5t-90 171t-29.5 221.5zM180 1333q0 66 40 105t105 39q66 0 104 -39t38 -105q0 -61 -38 -100t-104 -39t-105.5 39 t-39.5 100zM342 512q0 -68 12.5 -125t37 -100t64.5 -66.5t95 -23.5q104 0 155.5 75.5t51.5 239.5q0 141 -47 228t-160 87q-98 0 -153.5 -73.5t-55.5 -241.5zM628 1333q0 66 38 105t104 39t105.5 -39t39.5 -105q0 -61 -40 -100t-105 -39q-66 0 -104 39t-38 100z" /> +<glyph unicode="÷" horiz-adv-x="1079" d="M88 578v229h905v-229h-905zM377 297q0 72 45 114t119 42q78 0 123 -42t45 -114t-45.5 -115t-122.5 -43q-74 0 -119 43t-45 115zM377 1090q0 72 45 113.5t119 41.5q78 0 123 -42t45 -113q0 -72 -45.5 -115t-122.5 -43q-74 0 -119 43t-45 115z" /> +<glyph unicode="ø" horiz-adv-x="1097" d="M68 512q0 260 125.5 400.5t355.5 140.5q66 0 121 -11.5t102 -33.5l49 69l164 -121l-55 -77q51 -70 75.5 -163t24.5 -204q0 -260 -126 -400.5t-355 -140.5q-70 0 -128.5 13.5t-107.5 35.5l-51 -69l-170 123l64 88q-45 68 -66.5 157t-21.5 193zM342 512q0 -72 12 -133 l301 418q-43 31 -106 30q-98 0 -152.5 -73.5t-54.5 -241.5zM434 233q45 -37 115 -36q104 0 155.5 75.5t51.5 239.5q0 76 -17 145z" /> +<glyph unicode="ù" horiz-adv-x="1101" d="M106 387v637h267v-582q0 -125 29.5 -180t115.5 -55q76 0 126 45t75 110v662h266v-713q0 -84 8 -164.5t25 -146.5h-201l-47 152h-8q-47 -78 -131 -129.5t-199 -51.5q-78 0 -139.5 20.5t-102 67.5t-62.5 127t-22 201zM250 1413v62h278l123 -316h-147z" /> +<glyph unicode="ú" horiz-adv-x="1101" d="M106 387v637h267v-582q0 -125 29.5 -180t115.5 -55q76 0 126 45t75 110v662h266v-713q0 -84 8 -164.5t25 -146.5h-201l-47 152h-8q-47 -78 -131 -129.5t-199 -51.5q-78 0 -139.5 20.5t-102 67.5t-62.5 127t-22 201zM426 1159l108 316h271v-62l-228 -254h-151z" /> +<glyph unicode="û" horiz-adv-x="1101" d="M106 387v637h267v-582q0 -125 29.5 -180t115.5 -55q76 0 126 45t75 110v662h266v-713q0 -84 8 -164.5t25 -146.5h-201l-47 152h-8q-47 -78 -131 -129.5t-199 -51.5q-78 0 -139.5 20.5t-102 67.5t-62.5 127t-22 201zM223 1126l252 373h176l227 -373h-211l-80 136l-34 100 l-35 -100l-92 -136h-203z" /> +<glyph unicode="ü" horiz-adv-x="1101" d="M106 387v637h267v-582q0 -125 29.5 -180t115.5 -55q76 0 126 45t75 110v662h266v-713q0 -84 8 -164.5t25 -146.5h-201l-47 152h-8q-47 -78 -131 -129.5t-199 -51.5q-78 0 -139.5 20.5t-102 67.5t-62.5 127t-22 201zM180 1333q0 66 40 105t105 39q66 0 104 -39t38 -105 q0 -61 -38 -100t-104 -39t-105.5 39t-39.5 100zM628 1333q0 66 38 105t104 39t105.5 -39t39.5 -105q0 -61 -40 -100t-105 -39q-66 0 -104 39t-38 100z" /> +<glyph unicode="ý" horiz-adv-x="978" d="M-18 1024h319l188 -575l37 -160h13l26 162l156 573h274l-311 -924q-39 -115 -75 -210t-79 -164.5t-95 -107.5t-124 -38q-106 0 -170 35l49 213q31 -12 62 -12q47 0 91 40t67 144zM412 1159l108 316h271v-62l-228 -254h-151z" /> +<glyph unicode="þ" horiz-adv-x="1105" d="M117 -410v1844h266v-498h8q43 53 103.5 85t158.5 32q193 0 289 -122t96 -392q0 -131 -30.5 -236.5t-91 -179.5t-147.5 -113t-200 -39q-63 0 -104 9.5t-82 29.5v-420h-266zM383 246q29 -23 62.5 -36t89.5 -13q115 0 172 80.5t57 267.5q0 135 -45.5 208.5t-145.5 73.5 q-74 0 -119.5 -38.5t-70.5 -116.5v-426z" /> +<glyph unicode="ÿ" horiz-adv-x="978" d="M-18 1024h319l188 -575l37 -160h13l26 162l156 573h274l-311 -924q-39 -115 -75 -210t-79 -164.5t-95 -107.5t-124 -38q-106 0 -170 35l49 213q31 -12 62 -12q47 0 91 40t67 144zM135 1333q0 66 40 105t105 39q66 0 104 -39t38 -105q0 -61 -38 -100t-104 -39t-105.5 39 t-39.5 100zM583 1333q0 66 38 105t104 39t105.5 -39t39.5 -105q0 -61 -40 -100t-105 -39q-66 0 -104 39t-38 100z" /> +<glyph unicode="Œ" horiz-adv-x="1873" d="M78 717q0 358 157.5 551.5t450.5 193.5q80 0 138.5 -9t103.5 -19h850v-250h-570v-334h518v-250h-518v-350h580v-250h-860q-39 -14 -107.5 -21.5t-134.5 -7.5q-156 0 -270.5 53.5t-189 151.5t-111.5 235.5t-37 305.5zM373 717q0 -109 18.5 -200t58 -156.5t101 -102.5 t149.5 -37q59 0 113.5 7.5t114.5 31.5v901q-43 23 -104.5 37t-137.5 14q-150 0 -231.5 -119.5t-81.5 -375.5z" /> +<glyph unicode="œ" horiz-adv-x="1722" d="M68 512q0 260 127 400.5t356 140.5q135 0 217 -46t129 -102q47 59 130 103.5t214 44.5q78 0 151.5 -20.5t131 -67.5t92.5 -127t35 -199q0 -43 -5.5 -92t-15.5 -103h-616q6 -129 67.5 -194.5t196.5 -65.5q84 0 150.5 26t101.5 52l88 -174q-61 -49 -166.5 -83t-224.5 -34 q-227 0 -344 152q-51 -68 -132 -110t-200 -42q-123 0 -213 39t-150.5 109.5t-90 171t-29.5 221.5zM342 512q0 -68 12.5 -125t37 -100t64.5 -66.5t95 -23.5q104 0 155.5 75.5t51.5 239.5q0 141 -47 228t-160 87q-98 0 -153.5 -73.5t-55.5 -241.5zM1022 610h381q0 8 1 16.5 t1 16.5q0 94 -42 145.5t-126 51.5q-104 0 -154.5 -62.5t-60.5 -167.5z" /> +<glyph unicode="Ÿ" horiz-adv-x="1212" d="M-4 1434h334l262 -539l29 -152h10l31 156l253 535h302l-469 -899v-535h-281v532zM238 1634q0 53 37 86t119 33q80 0 116.5 -32.5t36.5 -86.5q0 -53 -37 -84.5t-116 -31.5q-82 0 -119 31.5t-37 84.5zM676 1634q0 53 37 86t117 33q82 0 118.5 -32.5t36.5 -86.5 q0 -53 -36.5 -84.5t-118.5 -31.5q-80 0 -117 31.5t-37 84.5z" /> +<glyph unicode="ˆ" horiz-adv-x="901" d="M123 1126l252 373h176l227 -373h-211l-80 136l-34 100l-35 -100l-92 -136h-203z" /> +<glyph unicode="˜" horiz-adv-x="925" d="M123 1348q63 76 117.5 104.5t103.5 28.5q41 0 79 -14.5t75 -31t71.5 -30.5t71.5 -14q29 0 58.5 12t62.5 43l41 -143q-59 -66 -109.5 -90.5t-97.5 -24.5q-41 0 -80 13t-76 29.5t-73.5 30t-73.5 13.5q-31 0 -63.5 -13.5t-67.5 -46.5z" /> +<glyph unicode=" " horiz-adv-x="891" /> +<glyph unicode=" " horiz-adv-x="1782" /> +<glyph unicode=" " horiz-adv-x="891" /> +<glyph unicode=" " horiz-adv-x="1782" /> +<glyph unicode=" " horiz-adv-x="594" /> +<glyph unicode=" " horiz-adv-x="445" /> +<glyph unicode=" " horiz-adv-x="297" /> +<glyph unicode=" " horiz-adv-x="297" /> +<glyph unicode=" " horiz-adv-x="222" /> +<glyph unicode=" " horiz-adv-x="356" /> +<glyph unicode=" " horiz-adv-x="99" /> +<glyph unicode="‐" horiz-adv-x="737" d="M111 471v236h514v-236h-514z" /> +<glyph unicode="‑" horiz-adv-x="737" d="M111 471v236h514v-236h-514z" /> +<glyph unicode="‒" horiz-adv-x="737" d="M111 471v236h514v-236h-514z" /> +<glyph unicode="–" horiz-adv-x="1351" d="M223 473v236h905v-236h-905z" /> +<glyph unicode="—" horiz-adv-x="1679" d="M223 473v236h1233v-236h-1233z" /> +<glyph unicode="‘" horiz-adv-x="456" d="M78 1311q0 82 25.5 139t61.5 95t75 59.5t67 31.5l66 -110q-41 -16 -70 -52t-33 -77q41 0 75 -36t34 -95t-40 -95t-99 -36q-76 0 -119 48t-43 128z" /> +<glyph unicode="’" horiz-adv-x="456" d="M78 1319q0 59 40 96t101 37q74 0 117 -49t43 -129q0 -82 -25.5 -139.5t-61.5 -95.5t-76 -59.5t-66 -31.5l-68 113q41 18 72.5 49t35.5 78q-41 -2 -76.5 31.5t-35.5 99.5z" /> +<glyph unicode="‚" horiz-adv-x="456" d="M78 127q0 59 40 96t101 37q74 0 117 -49t43 -129q0 -82 -25.5 -139.5t-61.5 -95.5t-76 -59.5t-66 -31.5l-68 113q41 18 72.5 49t35.5 78q-41 -2 -76.5 31.5t-35.5 99.5z" /> +<glyph unicode="“" horiz-adv-x="811" d="M78 1311q0 82 25.5 139t61.5 95t75 59.5t67 31.5l66 -110q-41 -16 -70 -52t-33 -77q41 0 75 -36t34 -95t-40 -95t-99 -36q-76 0 -119 48t-43 128zM432 1311q0 82 25.5 139t61.5 95t75 59.5t67 31.5l66 -110q-41 -16 -70 -52t-33 -77q41 0 75 -36t34 -95t-40 -95t-99 -36 q-76 0 -119 48t-43 128z" /> +<glyph unicode="”" horiz-adv-x="811" d="M78 1319q0 59 40 96t101 37q74 0 117 -49t43 -129q0 -82 -25.5 -139.5t-61.5 -95.5t-76 -59.5t-66 -31.5l-68 113q41 18 72.5 49t35.5 78q-41 -2 -76.5 31.5t-35.5 99.5zM432 1319q0 59 40 96t101 37q74 0 117 -49t43 -129q0 -82 -25.5 -139.5t-61.5 -95.5t-76 -59.5 t-66 -31.5l-68 113q41 18 72.5 49t35.5 78q-41 -2 -76.5 31.5t-35.5 99.5z" /> +<glyph unicode="„" horiz-adv-x="811" d="M78 127q0 59 40 96t101 37q74 0 117 -49t43 -129q0 -82 -25.5 -139.5t-61.5 -95.5t-76 -59.5t-66 -31.5l-68 113q41 18 72.5 49t35.5 78q-41 -2 -76.5 31.5t-35.5 99.5zM432 127q0 59 40 96t101 37q74 0 117 -49t43 -129q0 -82 -25.5 -139.5t-61.5 -95.5t-76 -59.5 t-66 -31.5l-68 113q41 18 72.5 49t35.5 78q-41 -2 -76.5 31.5t-35.5 99.5z" /> +<glyph unicode="•" horiz-adv-x="925" d="M150 637q0 70 24.5 127t67.5 98t99 64.5t120 23.5q66 0 123 -21.5t99 -61.5t66.5 -98t24.5 -132t-24.5 -131t-66.5 -97t-99.5 -61.5t-122.5 -21.5q-63 0 -119.5 21.5t-99.5 61.5t-67.5 97t-24.5 131z" /> +<glyph unicode="…" horiz-adv-x="1656" d="M109 135q0 72 45 114t119 42q78 0 123 -42t45 -114t-45 -115t-123 -43q-74 0 -119 43t-45 115zM666 135q0 72 45 114t119 42q78 0 123 -42t45 -114t-45 -115t-123 -43q-74 0 -119 43t-45 115zM1223 135q0 72 45 114t119 42q78 0 123 -42t45 -114t-45 -115t-123 -43 q-74 0 -119 43t-45 115z" /> +<glyph unicode=" " horiz-adv-x="356" /> +<glyph unicode="‹" horiz-adv-x="628" d="M59 530l328 471l154 -127l-170 -258l-99 -84l99 -73l186 -250l-158 -131z" /> +<glyph unicode="›" horiz-adv-x="628" d="M70 872l159 129l340 -452l-327 -471l-156 125l172 260l98 84l-98 74z" /> +<glyph unicode=" " horiz-adv-x="445" /> +<glyph unicode="€" d="M4 473l66 191h100v53v32.5t2 32.5h-168l66 191h127q31 135 89 227t136 150.5t171 85t193 26.5q106 0 189.5 -16t138.5 -39l-72 -211q-45 18 -104 27.5t-139 9.5q-123 0 -211 -61.5t-133 -198.5h530l-53 -191h-510q-2 -16 -2 -31.5v-33.5v-53h471l-53 -191h-385 q41 -135 130 -203.5t236 -68.5q86 0 148.5 18.5t111.5 46.5l56 -207q-31 -23 -74 -40t-90 -27t-96.5 -15.5t-94.5 -5.5q-225 0 -379.5 120t-207.5 382h-189z" /> +<glyph unicode="™" horiz-adv-x="1941" d="M59 1208v226h750v-226h-242v-512h-266v512h-242zM879 696v738h266l186 -308l49 -129h2l52 133l172 304h264v-738h-232v295l35 211h-12l-74 -174l-139 -240h-160l-139 234l-80 180h-10l47 -209v-297h-227z" /> +<glyph unicode="◼" horiz-adv-x="1024" d="M0 0v1024h1024v-1024h-1024z" /> +<hkern u1="(" u2="…" k="61" /> +<hkern u1="," u2="”" k="287" /> +<hkern u1="," u2="“" k="287" /> +<hkern u1="," u2="’" k="287" /> +<hkern u1="," u2="‘" k="287" /> +<hkern u1="," u2="*" k="270" /> +<hkern u1="," u2="'" k="287" /> +<hkern u1="," u2=""" k="287" /> +<hkern u1="." u2="”" k="287" /> +<hkern u1="." u2="“" k="287" /> +<hkern u1="." u2="’" k="287" /> +<hkern u1="." u2="'" k="287" /> +<hkern u1="." u2=""" k="287" /> +<hkern u1="B" u2="T" k="61" /> +<hkern u1="D" u2="J" k="45" /> +<hkern u1="L" u2="…" k="-20" /> +<hkern u1="L" u2="r" k="8" /> +<hkern u1="O" u2="J" k="45" /> +<hkern u1="Q" u2="J" k="45" /> +<hkern u1="T" u2="ÿ" k="72" /> +<hkern u1="T" u2="ý" k="221" /> +<hkern u1="T" u2="ü" k="94" /> +<hkern u1="T" u2="ö" k="119" /> +<hkern u1="T" u2="õ" k="133" /> +<hkern u1="T" u2="ô" k="139" /> +<hkern u1="T" u2="ó" k="221" /> +<hkern u1="T" u2="ò" k="180" /> +<hkern u1="T" u2="ï" k="-137" /> +<hkern u1="T" u2="î" k="-68" /> +<hkern u1="T" u2="í" k="80" /> +<hkern u1="T" u2="ì" k="-49" /> +<hkern u1="T" u2="ë" k="96" /> +<hkern u1="T" u2="ê" k="145" /> +<hkern u1="T" u2="é" k="221" /> +<hkern u1="T" u2="è" k="160" /> +<hkern u1="T" u2="å" k="168" /> +<hkern u1="T" u2="ä" k="88" /> +<hkern u1="T" u2="ã" k="115" /> +<hkern u1="T" u2="á" k="168" /> +<hkern u1="V" u2="û" k="98" /> +<hkern u1="V" u2="ú" k="98" /> +<hkern u1="V" u2="ö" k="63" /> +<hkern u1="V" u2="õ" k="90" /> +<hkern u1="V" u2="ò" k="123" /> +<hkern u1="V" u2="ï" k="-137" /> +<hkern u1="V" u2="î" k="-61" /> +<hkern u1="V" u2="ì" k="-78" /> +<hkern u1="V" u2="ë" k="70" /> +<hkern u1="V" u2="ê" k="135" /> +<hkern u1="V" u2="è" k="111" /> +<hkern u1="V" u2="å" k="113" /> +<hkern u1="V" u2="ä" k="51" /> +<hkern u1="V" u2="á" k="125" /> +<hkern u1="W" u2="ö" k="57" /> +<hkern u1="W" u2="ï" k="-145" /> +<hkern u1="W" u2="î" k="-57" /> +<hkern u1="W" u2="ì" k="-66" /> +<hkern u1="W" u2="ë" k="57" /> +<hkern u1="W" u2="å" k="88" /> +<hkern u1="W" u2="â" k="88" /> +<hkern u1="W" u2="á" k="96" /> +<hkern u1="Y" u2="ÿ" k="51" /> +<hkern u1="Y" u2="ü" k="92" /> +<hkern u1="Y" u2="û" k="139" /> +<hkern u1="Y" u2="ú" k="139" /> +<hkern u1="Y" u2="ö" k="109" /> +<hkern u1="Y" u2="õ" k="141" /> +<hkern u1="Y" u2="ô" k="182" /> +<hkern u1="Y" u2="ò" k="176" /> +<hkern u1="Y" u2="ñ" k="127" /> +<hkern u1="Y" u2="ï" k="-135" /> +<hkern u1="Y" u2="î" k="-12" /> +<hkern u1="Y" u2="ì" k="-66" /> +<hkern u1="Y" u2="ë" k="94" /> +<hkern u1="Y" u2="ê" k="193" /> +<hkern u1="Y" u2="è" k="145" /> +<hkern u1="Y" u2="å" k="168" /> +<hkern u1="Y" u2="ä" k="86" /> +<hkern u1="Y" u2="â" k="160" /> +<hkern u1="Y" u2="á" k="178" /> +<hkern u1="[" u2="…" k="61" /> +<hkern u1="a" u2="”" k="84" /> +<hkern u1="a" u2="“" k="84" /> +<hkern u1="a" u2="’" k="84" /> +<hkern u1="a" u2="‘" k="84" /> +<hkern u1="a" u2="T" k="246" /> +<hkern u1="a" u2="'" k="84" /> +<hkern u1="a" u2=""" k="84" /> +<hkern u1="b" u2="f" k="25" /> +<hkern u1="f" u2="ï" k="-123" /> +<hkern u1="f" u2="î" k="-49" /> +<hkern u1="f" u2="ì" k="-98" /> +<hkern u1="f" u2="}" k="-74" /> +<hkern u1="f" u2="]" k="-74" /> +<hkern u1="k" u2="œ" k="25" /> +<hkern u1="k" u2="ø" k="25" /> +<hkern u1="k" u2="ö" k="25" /> +<hkern u1="k" u2="õ" k="25" /> +<hkern u1="k" u2="ô" k="25" /> +<hkern u1="k" u2="ó" k="25" /> +<hkern u1="k" u2="ò" k="25" /> +<hkern u1="k" u2="ð" k="25" /> +<hkern u1="k" u2="ë" k="25" /> +<hkern u1="k" u2="ê" k="25" /> +<hkern u1="k" u2="é" k="25" /> +<hkern u1="k" u2="è" k="25" /> +<hkern u1="k" u2="ç" k="25" /> +<hkern u1="k" u2="q" k="25" /> +<hkern u1="k" u2="o" k="25" /> +<hkern u1="k" u2="g" k="25" /> +<hkern u1="k" u2="e" k="25" /> +<hkern u1="k" u2="c" k="25" /> +<hkern u1="n" u2="T" k="233" /> +<hkern u1="o" u2="f" k="25" /> +<hkern u1="p" u2="f" k="25" /> +<hkern u1="t" u2="…" k="-20" /> +<hkern u1="{" u2="…" k="61" /> +<hkern u1="Ð" u2="J" k="45" /> +<hkern u1="Ò" u2="J" k="45" /> +<hkern u1="Ó" u2="J" k="45" /> +<hkern u1="Ô" u2="J" k="45" /> +<hkern u1="Õ" u2="J" k="45" /> +<hkern u1="Ö" u2="J" k="45" /> +<hkern u1="Ø" u2="J" k="45" /> +<hkern u1="Ý" u2="ÿ" k="51" /> +<hkern u1="Ý" u2="ü" k="92" /> +<hkern u1="Ý" u2="û" k="139" /> +<hkern u1="Ý" u2="ú" k="139" /> +<hkern u1="Ý" u2="ö" k="109" /> +<hkern u1="Ý" u2="õ" k="141" /> +<hkern u1="Ý" u2="ô" k="182" /> +<hkern u1="Ý" u2="ò" k="176" /> +<hkern u1="Ý" u2="ñ" k="127" /> +<hkern u1="Ý" u2="ï" k="-135" /> +<hkern u1="Ý" u2="î" k="-12" /> +<hkern u1="Ý" u2="ì" k="-66" /> +<hkern u1="Ý" u2="ë" k="94" /> +<hkern u1="Ý" u2="ê" k="193" /> +<hkern u1="Ý" u2="è" k="145" /> +<hkern u1="Ý" u2="å" k="168" /> +<hkern u1="Ý" u2="ä" k="86" /> +<hkern u1="Ý" u2="â" k="160" /> +<hkern u1="Ý" u2="á" k="178" /> +<hkern u1="ï" u2="™" k="-61" /> +<hkern u1="ï" u2="®" k="-61" /> +<hkern u1="ò" u2="f" k="25" /> +<hkern u1="ó" u2="f" k="25" /> +<hkern u1="ô" u2="f" k="25" /> +<hkern u1="õ" u2="f" k="25" /> +<hkern u1="ö" u2="f" k="25" /> +<hkern u1="ø" u2="f" k="25" /> +<hkern u1="þ" u2="f" k="25" /> +<hkern u1="Ÿ" u2="ÿ" k="51" /> +<hkern u1="Ÿ" u2="ü" k="92" /> +<hkern u1="Ÿ" u2="û" k="139" /> +<hkern u1="Ÿ" u2="ú" k="139" /> +<hkern u1="Ÿ" u2="ö" k="109" /> +<hkern u1="Ÿ" u2="õ" k="141" /> +<hkern u1="Ÿ" u2="ô" k="182" /> +<hkern u1="Ÿ" u2="ò" k="176" /> +<hkern u1="Ÿ" u2="ñ" k="127" /> +<hkern u1="Ÿ" u2="ï" k="-135" /> +<hkern u1="Ÿ" u2="î" k="-12" /> +<hkern u1="Ÿ" u2="ì" k="-66" /> +<hkern u1="Ÿ" u2="ë" k="94" /> +<hkern u1="Ÿ" u2="ê" k="193" /> +<hkern u1="Ÿ" u2="è" k="145" /> +<hkern u1="Ÿ" u2="å" k="168" /> +<hkern u1="Ÿ" u2="ä" k="86" /> +<hkern u1="Ÿ" u2="â" k="160" /> +<hkern u1="Ÿ" u2="á" k="178" /> +<hkern u1="‚" u2="…" k="-16" /> +<hkern u1="„" u2="…" k="-16" /> +<hkern u1="…" u2="„" k="-82" /> +<hkern u1="…" u2="”" k="287" /> +<hkern u1="…" u2="“" k="287" /> +<hkern u1="…" u2="‚" k="-82" /> +<hkern u1="…" u2="’" k="287" /> +<hkern u1="…" u2="‘" k="287" /> +<hkern u1="…" u2="ü" k="-41" /> +<hkern u1="…" u2="û" k="-41" /> +<hkern u1="…" u2="ú" k="-41" /> +<hkern u1="…" u2="ù" k="-41" /> +<hkern u1="…" u2="ñ" k="-41" /> +<hkern u1="…" u2="ï" k="-41" /> +<hkern u1="…" u2="î" k="-41" /> +<hkern u1="…" u2="í" k="-41" /> +<hkern u1="…" u2="ì" k="-41" /> +<hkern u1="…" u2="æ" k="-41" /> +<hkern u1="…" u2="å" k="-41" /> +<hkern u1="…" u2="ä" k="-41" /> +<hkern u1="…" u2="ã" k="-41" /> +<hkern u1="…" u2="â" k="-41" /> +<hkern u1="…" u2="á" k="-41" /> +<hkern u1="…" u2="à" k="-41" /> +<hkern u1="…" u2="Å" k="-113" /> +<hkern u1="…" u2="Ä" k="-113" /> +<hkern u1="…" u2="Ã" k="-113" /> +<hkern u1="…" u2="Â" k="-113" /> +<hkern u1="…" u2="Á" k="-113" /> +<hkern u1="…" u2="À" k="-113" /> +<hkern u1="…" u2=" " k="82" /> +<hkern u1="…" u2="z" k="-41" /> +<hkern u1="…" u2="u" k="-41" /> +<hkern u1="…" u2="s" k="-41" /> +<hkern u1="…" u2="r" k="-41" /> +<hkern u1="…" u2="p" k="-41" /> +<hkern u1="…" u2="n" k="-41" /> +<hkern u1="…" u2="m" k="-41" /> +<hkern u1="…" u2="a" k="-41" /> +<hkern u1="…" u2="Z" k="-82" /> +<hkern u1="…" u2="X" k="-41" /> +<hkern u1="…" u2="A" k="-113" /> +<hkern u1="…" u2="*" k="270" /> +<hkern u1="…" u2="'" k="287" /> +<hkern u1="…" u2=""" k="287" /> +<hkern u1="…" u2=" " k="82" /> +<hkern g1="C,Ccedilla" g2="space,uni00A0" k="82" /> +<hkern g1="C,Ccedilla" g2="hyphen,uni00AD,endash,emdash" k="141" /> +<hkern g1="C,Ccedilla" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="90" /> +<hkern g1="C,Ccedilla" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="68" /> +<hkern g1="C,Ccedilla" g2="T" k="90" /> +<hkern g1="C,Ccedilla" g2="V" k="135" /> +<hkern g1="C,Ccedilla" g2="W" k="53" /> +<hkern g1="C,Ccedilla" g2="X" k="104" /> +<hkern g1="C,Ccedilla" g2="Y,Yacute,Ydieresis" k="113" /> +<hkern g1="C,Ccedilla" g2="Z" k="100" /> +<hkern g1="C,Ccedilla" g2="c,e,g,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="74" /> +<hkern g1="C,Ccedilla" g2="t" k="74" /> +<hkern g1="C,Ccedilla" g2="v,y,yacute,ydieresis" k="109" /> +<hkern g1="C,Ccedilla" g2="w" k="82" /> +<hkern g1="C,Ccedilla" g2="x" k="90" /> +<hkern g1="C,Ccedilla" g2="z" k="35" /> +<hkern g1="C,Ccedilla" g2="AE" k="248" /> +<hkern g1="C,Ccedilla" g2="a,m,n,p,r,s,u,ae" k="23" /> +<hkern g1="L" g2="space,uni00A0" k="104" /> +<hkern g1="L" g2="asterisk" k="336" /> +<hkern g1="L" g2="hyphen,uni00AD,endash,emdash" k="141" /> +<hkern g1="L" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-25" /> +<hkern g1="L" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="190" /> +<hkern g1="L" g2="T" k="268" /> +<hkern g1="L" g2="V" k="244" /> +<hkern g1="L" g2="W" k="178" /> +<hkern g1="L" g2="X" k="291" /> +<hkern g1="L" g2="Y,Yacute,Ydieresis" k="262" /> +<hkern g1="L" g2="Z" k="180" /> +<hkern g1="L" g2="c,e,g,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="72" /> +<hkern g1="L" g2="t" k="72" /> +<hkern g1="L" g2="v,y,yacute,ydieresis" k="176" /> +<hkern g1="L" g2="w" k="127" /> +<hkern g1="L" g2="x" k="141" /> +<hkern g1="L" g2="z" k="82" /> +<hkern g1="L" g2="AE" k="246" /> +<hkern g1="L" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="291" /> +<hkern g1="L" g2="quotesinglbase,quotedblbase" k="-14" /> +<hkern g1="L" g2="registered,trademark" k="371" /> +<hkern g1="L" g2="agrave,aacute,acircumflex,atilde,adieresis,aring,igrave,iacute,icircumflex,idieresis,ntilde,ugrave,uacute,ucircumflex,udieresis" k="-14" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="space,uni00A0" k="27" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="parenright,bracketright,braceright" k="35" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="asterisk" k="20" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="comma,period,ellipsis" k="61" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="57" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="T" k="80" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="V" k="76" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="W" k="57" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="X" k="113" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Y,Yacute,Ydieresis" k="98" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Z" k="49" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="v,y,yacute,ydieresis" k="16" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="x" k="61" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="z" k="35" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="AE" k="125" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="82" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="quotesinglbase,quotedblbase" k="82" /> +<hkern g1="P,Thorn" g2="space,uni00A0" k="82" /> +<hkern g1="P,Thorn" g2="hyphen,uni00AD,endash,emdash" k="20" /> +<hkern g1="P,Thorn" g2="comma,period,ellipsis" k="266" /> +<hkern g1="P,Thorn" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="158" /> +<hkern g1="P,Thorn" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="23" /> +<hkern g1="P,Thorn" g2="T" k="16" /> +<hkern g1="P,Thorn" g2="V" k="20" /> +<hkern g1="P,Thorn" g2="W" k="14" /> +<hkern g1="P,Thorn" g2="X" k="109" /> +<hkern g1="P,Thorn" g2="Y,Yacute,Ydieresis" k="55" /> +<hkern g1="P,Thorn" g2="Z" k="41" /> +<hkern g1="P,Thorn" g2="c,e,g,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="74" /> +<hkern g1="P,Thorn" g2="x" k="74" /> +<hkern g1="P,Thorn" g2="z" k="27" /> +<hkern g1="P,Thorn" g2="AE" k="266" /> +<hkern g1="P,Thorn" g2="quotesinglbase,quotedblbase" k="258" /> +<hkern g1="P,Thorn" g2="a,m,n,p,r,s,u,ae" k="59" /> +<hkern g1="P,Thorn" g2="agrave,aacute,acircumflex,atilde,adieresis,aring,igrave,iacute,icircumflex,idieresis,ntilde,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="R" g2="hyphen,uni00AD,endash,emdash" k="82" /> +<hkern g1="R" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="76" /> +<hkern g1="R" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="68" /> +<hkern g1="R" g2="T" k="100" /> +<hkern g1="R" g2="V" k="98" /> +<hkern g1="R" g2="W" k="82" /> +<hkern g1="R" g2="X" k="115" /> +<hkern g1="R" g2="Y,Yacute,Ydieresis" k="123" /> +<hkern g1="R" g2="Z" k="49" /> +<hkern g1="R" g2="c,e,g,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="98" /> +<hkern g1="R" g2="t" k="49" /> +<hkern g1="R" g2="v,y,yacute,ydieresis" k="45" /> +<hkern g1="R" g2="w" k="47" /> +<hkern g1="R" g2="x" k="57" /> +<hkern g1="R" g2="z" k="27" /> +<hkern g1="R" g2="AE" k="266" /> +<hkern g1="R" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="41" /> +<hkern g1="T" g2="space,uni00A0" k="82" /> +<hkern g1="T" g2="parenright,bracketright,braceright" k="-27" /> +<hkern g1="T" g2="asterisk" k="-33" /> +<hkern g1="T" g2="hyphen,uni00AD,endash,emdash" k="262" /> +<hkern g1="T" g2="comma,period,ellipsis" k="227" /> +<hkern g1="T" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="160" /> +<hkern g1="T" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="80" /> +<hkern g1="T" g2="T" k="-41" /> +<hkern g1="T" g2="V" k="68" /> +<hkern g1="T" g2="W" k="61" /> +<hkern g1="T" g2="X" k="96" /> +<hkern g1="T" g2="Y,Yacute,Ydieresis" k="143" /> +<hkern g1="T" g2="Z" k="100" /> +<hkern g1="T" g2="c,e,g,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="262" /> +<hkern g1="T" g2="t" k="100" /> +<hkern g1="T" g2="v,y,yacute,ydieresis" k="262" /> +<hkern g1="T" g2="w" k="262" /> +<hkern g1="T" g2="x" k="262" /> +<hkern g1="T" g2="z" k="262" /> +<hkern g1="T" g2="AE" k="244" /> +<hkern g1="T" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-41" /> +<hkern g1="T" g2="quotesinglbase,quotedblbase" k="236" /> +<hkern g1="T" g2="registered,trademark" k="-33" /> +<hkern g1="T" g2="a,m,n,p,r,s,u,ae" k="215" /> +<hkern g1="T" g2="agrave,aacute,acircumflex,atilde,adieresis,aring,igrave,iacute,icircumflex,idieresis,ntilde,ugrave,uacute,ucircumflex,udieresis" k="135" /> +<hkern g1="V" g2="space,uni00A0" k="61" /> +<hkern g1="V" g2="asterisk" k="-78" /> +<hkern g1="V" g2="hyphen,uni00AD,endash,emdash" k="111" /> +<hkern g1="V" g2="comma,period,ellipsis" k="227" /> +<hkern g1="V" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="139" /> +<hkern g1="V" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="76" /> +<hkern g1="V" g2="T" k="68" /> +<hkern g1="V" g2="V" k="72" /> +<hkern g1="V" g2="W" k="61" /> +<hkern g1="V" g2="X" k="72" /> +<hkern g1="V" g2="Y,Yacute,Ydieresis" k="84" /> +<hkern g1="V" g2="Z" k="72" /> +<hkern g1="V" g2="c,e,g,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="152" /> +<hkern g1="V" g2="t" k="41" /> +<hkern g1="V" g2="v,y,yacute,ydieresis" k="23" /> +<hkern g1="V" g2="w" k="37" /> +<hkern g1="V" g2="x" k="98" /> +<hkern g1="V" g2="z" k="94" /> +<hkern g1="V" g2="AE" k="246" /> +<hkern g1="V" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-82" /> +<hkern g1="V" g2="quotesinglbase,quotedblbase" k="219" /> +<hkern g1="V" g2="registered,trademark" k="-27" /> +<hkern g1="V" g2="a,m,n,p,r,s,u,ae" k="117" /> +<hkern g1="V" g2="agrave,aacute,acircumflex,atilde,adieresis,aring,igrave,iacute,icircumflex,idieresis,ntilde,ugrave,uacute,ucircumflex,udieresis" k="78" /> +<hkern g1="W" g2="space,uni00A0" k="55" /> +<hkern g1="W" g2="asterisk" k="-72" /> +<hkern g1="W" g2="hyphen,uni00AD,endash,emdash" k="63" /> +<hkern g1="W" g2="comma,period,ellipsis" k="174" /> +<hkern g1="W" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="90" /> +<hkern g1="W" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="57" /> +<hkern g1="W" g2="T" k="61" /> +<hkern g1="W" g2="V" k="61" /> +<hkern g1="W" g2="W" k="68" /> +<hkern g1="W" g2="X" k="61" /> +<hkern g1="W" g2="Y,Yacute,Ydieresis" k="84" /> +<hkern g1="W" g2="Z" k="68" /> +<hkern g1="W" g2="c,e,g,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="109" /> +<hkern g1="W" g2="t" k="27" /> +<hkern g1="W" g2="v,y,yacute,ydieresis" k="16" /> +<hkern g1="W" g2="w" k="37" /> +<hkern g1="W" g2="x" k="82" /> +<hkern g1="W" g2="z" k="88" /> +<hkern g1="W" g2="AE" k="199" /> +<hkern g1="W" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-82" /> +<hkern g1="W" g2="quotesinglbase,quotedblbase" k="168" /> +<hkern g1="W" g2="registered,trademark" k="-33" /> +<hkern g1="W" g2="a,m,n,p,r,s,u,ae" k="98" /> +<hkern g1="W" g2="agrave,aacute,acircumflex,atilde,adieresis,aring,igrave,iacute,icircumflex,idieresis,ntilde,ugrave,uacute,ucircumflex,udieresis" k="61" /> +<hkern g1="K,X" g2="space,uni00A0" k="61" /> +<hkern g1="K,X" g2="hyphen,uni00AD,endash,emdash" k="164" /> +<hkern g1="K,X" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="61" /> +<hkern g1="K,X" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="113" /> +<hkern g1="K,X" g2="T" k="96" /> +<hkern g1="K,X" g2="V" k="72" /> +<hkern g1="K,X" g2="W" k="61" /> +<hkern g1="K,X" g2="X" k="74" /> +<hkern g1="K,X" g2="Y,Yacute,Ydieresis" k="84" /> +<hkern g1="K,X" g2="Z" k="27" /> +<hkern g1="K,X" g2="c,e,g,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="98" /> +<hkern g1="K,X" g2="t" k="94" /> +<hkern g1="K,X" g2="v,y,yacute,ydieresis" k="111" /> +<hkern g1="K,X" g2="w" k="111" /> +<hkern g1="K,X" g2="x" k="100" /> +<hkern g1="K,X" g2="z" k="33" /> +<hkern g1="K,X" g2="AE" k="258" /> +<hkern g1="K,X" g2="quotesinglbase,quotedblbase" k="-27" /> +<hkern g1="K,X" g2="a,m,n,p,r,s,u,ae" k="41" /> +<hkern g1="Y,Yacute,Ydieresis" g2="space,uni00A0" k="55" /> +<hkern g1="Y,Yacute,Ydieresis" g2="asterisk" k="-49" /> +<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,uni00AD,endash,emdash" k="139" /> +<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,ellipsis" k="242" /> +<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="180" /> +<hkern g1="Y,Yacute,Ydieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="98" /> +<hkern g1="Y,Yacute,Ydieresis" g2="T" k="143" /> +<hkern g1="Y,Yacute,Ydieresis" g2="V" k="84" /> +<hkern g1="Y,Yacute,Ydieresis" g2="W" k="61" /> +<hkern g1="Y,Yacute,Ydieresis" g2="X" k="84" /> +<hkern g1="Y,Yacute,Ydieresis" g2="Y,Yacute,Ydieresis" k="84" /> +<hkern g1="Y,Yacute,Ydieresis" g2="Z" k="119" /> +<hkern g1="Y,Yacute,Ydieresis" g2="c,e,g,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="217" /> +<hkern g1="Y,Yacute,Ydieresis" g2="t" k="104" /> +<hkern g1="Y,Yacute,Ydieresis" g2="v,y,yacute,ydieresis" k="98" /> +<hkern g1="Y,Yacute,Ydieresis" g2="w" k="82" /> +<hkern g1="Y,Yacute,Ydieresis" g2="x" k="123" /> +<hkern g1="Y,Yacute,Ydieresis" g2="z" k="143" /> +<hkern g1="Y,Yacute,Ydieresis" g2="AE" k="252" /> +<hkern g1="Y,Yacute,Ydieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-74" /> +<hkern g1="Y,Yacute,Ydieresis" g2="quotesinglbase,quotedblbase" k="236" /> +<hkern g1="Y,Yacute,Ydieresis" g2="registered,trademark" k="-33" /> +<hkern g1="Y,Yacute,Ydieresis" g2="a,m,n,p,r,s,u,ae" k="147" /> +<hkern g1="Y,Yacute,Ydieresis" g2="agrave,aacute,acircumflex,atilde,adieresis,aring,igrave,iacute,icircumflex,idieresis,ntilde,ugrave,uacute,ucircumflex,udieresis" k="113" /> +<hkern g1="Z" g2="space,uni00A0" k="45" /> +<hkern g1="Z" g2="asterisk" k="-41" /> +<hkern g1="Z" g2="hyphen,uni00AD,endash,emdash" k="113" /> +<hkern g1="Z" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="51" /> +<hkern g1="Z" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="49" /> +<hkern g1="Z" g2="T" k="49" /> +<hkern g1="Z" g2="V" k="72" /> +<hkern g1="Z" g2="W" k="61" /> +<hkern g1="Z" g2="X" k="55" /> +<hkern g1="Z" g2="Y,Yacute,Ydieresis" k="119" /> +<hkern g1="Z" g2="Z" k="23" /> +<hkern g1="Z" g2="c,e,g,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="78" /> +<hkern g1="Z" g2="t" k="16" /> +<hkern g1="Z" g2="v,y,yacute,ydieresis" k="20" /> +<hkern g1="Z" g2="w" k="20" /> +<hkern g1="Z" g2="x" k="14" /> +<hkern g1="Z" g2="z" k="27" /> +<hkern g1="Z" g2="AE" k="264" /> +<hkern g1="Z" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-41" /> +<hkern g1="Z" g2="quotesinglbase,quotedblbase" k="-41" /> +<hkern g1="Z" g2="a,m,n,p,r,s,u,ae" k="23" /> +<hkern g1="c,ccedilla" g2="space,uni00A0" k="49" /> +<hkern g1="c,ccedilla" g2="parenright,bracketright,braceright" k="20" /> +<hkern g1="c,ccedilla" g2="hyphen,uni00AD,endash,emdash" k="78" /> +<hkern g1="c,ccedilla" g2="c,e,g,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="35" /> +<hkern g1="c,ccedilla" g2="v,y,yacute,ydieresis" k="35" /> +<hkern g1="c,ccedilla" g2="w" k="35" /> +<hkern g1="c,ccedilla" g2="x" k="16" /> +<hkern g1="c,ccedilla" g2="z" k="16" /> +<hkern g1="c,ccedilla" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="45" /> +<hkern g1="c,ccedilla" g2="quotesinglbase,quotedblbase" k="-20" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis,oe" g2="parenright,bracketright,braceright" k="27" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis,oe" g2="asterisk" k="45" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis,oe" g2="c,e,g,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="10" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis,oe" g2="v,y,yacute,ydieresis" k="29" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis,oe" g2="w" k="10" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis,oe" g2="x" k="43" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis,oe" g2="z" k="10" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis,oe" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="102" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis,oe" g2="registered,trademark" k="45" /> +<hkern g1="f" g2="parenright,bracketright,braceright" k="-123" /> +<hkern g1="f" g2="asterisk" k="-68" /> +<hkern g1="f" g2="comma,period,ellipsis" k="41" /> +<hkern g1="f" g2="c,e,g,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="10" /> +<hkern g1="f" g2="t" k="16" /> +<hkern g1="f" g2="v,y,yacute,ydieresis" k="27" /> +<hkern g1="f" g2="w" k="20" /> +<hkern g1="f" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-68" /> +<hkern g1="f" g2="quotesinglbase,quotedblbase" k="41" /> +<hkern g1="f" g2="registered,trademark" k="-84" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="parenright,bracketright,braceright" k="35" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="asterisk" k="41" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="comma,period,ellipsis" k="20" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="v,y,yacute,ydieresis" k="25" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="w" k="18" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="x" k="49" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="z" k="16" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="152" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="quotesinglbase,quotedblbase" k="16" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="registered,trademark" k="35" /> +<hkern g1="t" g2="parenright,bracketright,braceright" k="20" /> +<hkern g1="t" g2="hyphen,uni00AD,endash,emdash" k="33" /> +<hkern g1="t" g2="c,e,g,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="10" /> +<hkern g1="t" g2="t" k="14" /> +<hkern g1="t" g2="v,y,yacute,ydieresis" k="47" /> +<hkern g1="t" g2="w" k="35" /> +<hkern g1="t" g2="x" k="16" /> +<hkern g1="t" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="20" /> +<hkern g1="t" g2="quotesinglbase,quotedblbase" k="-20" /> +<hkern g1="v,y,yacute,ydieresis" g2="space,uni00A0" k="74" /> +<hkern g1="v,y,yacute,ydieresis" g2="asterisk" k="-45" /> +<hkern g1="v,y,yacute,ydieresis" g2="comma,period,ellipsis" k="147" /> +<hkern g1="v,y,yacute,ydieresis" g2="c,e,g,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="14" /> +<hkern g1="v,y,yacute,ydieresis" g2="t" k="35" /> +<hkern g1="v,y,yacute,ydieresis" g2="v,y,yacute,ydieresis" k="-84" /> +<hkern g1="v,y,yacute,ydieresis" g2="w" k="-68" /> +<hkern g1="v,y,yacute,ydieresis" g2="x" k="-16" /> +<hkern g1="v,y,yacute,ydieresis" g2="quotesinglbase,quotedblbase" k="98" /> +<hkern g1="w" g2="space,uni00A0" k="49" /> +<hkern g1="w" g2="comma,period,ellipsis" k="113" /> +<hkern g1="w" g2="c,e,g,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="18" /> +<hkern g1="w" g2="t" k="20" /> +<hkern g1="w" g2="v,y,yacute,ydieresis" k="-68" /> +<hkern g1="w" g2="w" k="-45" /> +<hkern g1="w" g2="z" k="16" /> +<hkern g1="w" g2="quotesinglbase,quotedblbase" k="109" /> +<hkern g1="k,x" g2="space,uni00A0" k="61" /> +<hkern g1="k,x" g2="hyphen,uni00AD,endash,emdash" k="78" /> +<hkern g1="k,x" g2="c,e,g,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="49" /> +<hkern g1="k,x" g2="v,y,yacute,ydieresis" k="-29" /> +<hkern g1="k,x" g2="x" k="16" /> +<hkern g1="z" g2="space,uni00A0" k="61" /> +<hkern g1="z" g2="hyphen,uni00AD,endash,emdash" k="82" /> +<hkern g1="z" g2="c,e,g,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="16" /> +<hkern g1="z" g2="t" k="27" /> +<hkern g1="z" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="27" /> +<hkern g1="space,uni00A0" g2="asterisk" k="72" /> +<hkern g1="space,uni00A0" g2="hyphen,uni00AD,endash,emdash" k="90" /> +<hkern g1="space,uni00A0" g2="comma,period,ellipsis" k="143" /> +<hkern g1="space,uni00A0" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="82" /> +<hkern g1="space,uni00A0" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="27" /> +<hkern g1="space,uni00A0" g2="T" k="74" /> +<hkern g1="space,uni00A0" g2="V" k="61" /> +<hkern g1="space,uni00A0" g2="W" k="51" /> +<hkern g1="space,uni00A0" g2="X" k="61" /> +<hkern g1="space,uni00A0" g2="Y,Yacute,Ydieresis" k="61" /> +<hkern g1="space,uni00A0" g2="Z" k="23" /> +<hkern g1="space,uni00A0" g2="v,y,yacute,ydieresis" k="41" /> +<hkern g1="space,uni00A0" g2="w" k="27" /> +<hkern g1="space,uni00A0" g2="x" k="35" /> +<hkern g1="space,uni00A0" g2="AE" k="45" /> +<hkern g1="space,uni00A0" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="172" /> +<hkern g1="space,uni00A0" g2="quotesinglbase,quotedblbase" k="172" /> +<hkern g1="comma,period,ellipsis" g2="space,uni00A0" k="141" /> +<hkern g1="comma,period,ellipsis" g2="asterisk" k="123" /> +<hkern g1="comma,period,ellipsis" g2="hyphen,uni00AD,endash,emdash" k="240" /> +<hkern g1="comma,period,ellipsis" g2="comma,period,ellipsis" k="-27" /> +<hkern g1="comma,period,ellipsis" g2="T" k="113" /> +<hkern g1="comma,period,ellipsis" g2="V" k="127" /> +<hkern g1="comma,period,ellipsis" g2="W" k="82" /> +<hkern g1="comma,period,ellipsis" g2="Y,Yacute,Ydieresis" k="143" /> +<hkern g1="comma,period,ellipsis" g2="t" k="20" /> +<hkern g1="comma,period,ellipsis" g2="v,y,yacute,ydieresis" k="45" /> +<hkern g1="comma,period,ellipsis" g2="w" k="27" /> +<hkern g1="comma,period,ellipsis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="164" /> +<hkern g1="comma,period,ellipsis" g2="registered,trademark" k="180" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="space,uni00A0" k="164" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="parenright,bracketright,braceright" k="72" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="asterisk" k="84" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="hyphen,uni00AD,endash,emdash" k="121" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="comma,period,ellipsis" k="240" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="45" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="T" k="143" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="V" k="61" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="W" k="41" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="X" k="90" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Y,Yacute,Ydieresis" k="84" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Z" k="20" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="x" k="35" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="AE" k="84" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="381" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="quotesinglbase,quotedblbase" k="244" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="space,uni00A0" k="186" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="hyphen,uni00AD,endash,emdash" k="412" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="comma,period,ellipsis" k="268" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="262" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="82" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="T" k="-41" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="V" k="-82" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="W" k="-82" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="Y,Yacute,Ydieresis" k="-74" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="Z" k="-41" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="c,e,g,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="213" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="t" k="20" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="z" k="27" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="AE" k="410" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="a,m,n,p,r,s,u,ae" k="150" /> +<hkern g1="quotesinglbase,quotedblbase" g2="space,uni00A0" k="197" /> +<hkern g1="quotesinglbase,quotedblbase" g2="asterisk" k="215" /> +<hkern g1="quotesinglbase,quotedblbase" g2="hyphen,uni00AD,endash,emdash" k="330" /> +<hkern g1="quotesinglbase,quotedblbase" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-27" /> +<hkern g1="quotesinglbase,quotedblbase" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="123" /> +<hkern g1="quotesinglbase,quotedblbase" g2="T" k="254" /> +<hkern g1="quotesinglbase,quotedblbase" g2="V" k="227" /> +<hkern g1="quotesinglbase,quotedblbase" g2="W" k="178" /> +<hkern g1="quotesinglbase,quotedblbase" g2="X" k="-27" /> +<hkern g1="quotesinglbase,quotedblbase" g2="Y,Yacute,Ydieresis" k="254" /> +<hkern g1="quotesinglbase,quotedblbase" g2="Z" k="-41" /> +<hkern g1="quotesinglbase,quotedblbase" g2="c,e,g,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="47" /> +<hkern g1="quotesinglbase,quotedblbase" g2="t" k="61" /> +<hkern g1="quotesinglbase,quotedblbase" g2="v,y,yacute,ydieresis" k="147" /> +<hkern g1="quotesinglbase,quotedblbase" g2="w" k="113" /> +<hkern g1="quotesinglbase,quotedblbase" g2="AE" k="-53" /> +<hkern g1="quotesinglbase,quotedblbase" g2="registered,trademark" k="162" /> +<hkern g1="parenleft,bracketleft,braceleft" g2="hyphen,uni00AD,endash,emdash" k="72" /> +<hkern g1="parenleft,bracketleft,braceleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="35" /> +<hkern g1="parenleft,bracketleft,braceleft" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="35" /> +<hkern g1="parenleft,bracketleft,braceleft" g2="c,e,g,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="35" /> +<hkern g1="parenleft,bracketleft,braceleft" g2="t" k="20" /> +<hkern g1="asterisk" g2="space,uni00A0" k="72" /> +<hkern g1="asterisk" g2="hyphen,uni00AD,endash,emdash" k="391" /> +<hkern g1="asterisk" g2="comma,period,ellipsis" k="123" /> +<hkern g1="asterisk" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="113" /> +<hkern g1="asterisk" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="20" /> +<hkern g1="asterisk" g2="T" k="-33" /> +<hkern g1="asterisk" g2="V" k="-20" /> +<hkern g1="asterisk" g2="W" k="-27" /> +<hkern g1="asterisk" g2="Y,Yacute,Ydieresis" k="-20" /> +<hkern g1="asterisk" g2="Z" k="-41" /> +<hkern g1="asterisk" g2="c,e,g,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="41" /> +<hkern g1="asterisk" g2="v,y,yacute,ydieresis" k="-45" /> +<hkern g1="asterisk" g2="AE" k="256" /> +<hkern g1="asterisk" g2="quotesinglbase,quotedblbase" k="203" /> +<hkern g1="seven" g2="space,uni00A0" k="111" /> +<hkern g1="seven" g2="hyphen,uni00AD,endash,emdash" k="131" /> +<hkern g1="seven" g2="comma,period,ellipsis" k="244" /> +<hkern g1="seven" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="135" /> +<hkern g1="seven" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="61" /> +<hkern g1="seven" g2="X" k="63" /> +<hkern g1="seven" g2="Y,Yacute,Ydieresis" k="25" /> +<hkern g1="seven" g2="c,e,g,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="113" /> +<hkern g1="seven" g2="t" k="68" /> +<hkern g1="seven" g2="v,y,yacute,ydieresis" k="82" /> +<hkern g1="seven" g2="w" k="82" /> +<hkern g1="seven" g2="x" k="111" /> +<hkern g1="seven" g2="z" k="113" /> +<hkern g1="seven" g2="AE" k="186" /> +<hkern g1="seven" g2="quotesinglbase,quotedblbase" k="236" /> +<hkern g1="seven" g2="a,m,n,p,r,s,u,ae" k="113" /> +<hkern g1="seven" g2="agrave,aacute,acircumflex,atilde,adieresis,aring,igrave,iacute,icircumflex,idieresis,ntilde,ugrave,uacute,ucircumflex,udieresis" k="41" /> +<hkern g1="r" g2="comma,period,ellipsis" k="123" /> +<hkern g1="r" g2="t" k="-61" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/pt_sans-web-bold-webfont.ttf b/web/static/fonts/pt_sans-web-bold-webfont.ttf Binary files differnew file mode 100755 index 000000000..8cfc48104 --- /dev/null +++ b/web/static/fonts/pt_sans-web-bold-webfont.ttf diff --git a/web/static/fonts/pt_sans-web-bold-webfont.woff b/web/static/fonts/pt_sans-web-bold-webfont.woff Binary files differnew file mode 100755 index 000000000..e323ad67b --- /dev/null +++ b/web/static/fonts/pt_sans-web-bold-webfont.woff diff --git a/web/static/fonts/pt_sans-web-bold-webfont.woff2 b/web/static/fonts/pt_sans-web-bold-webfont.woff2 Binary files differnew file mode 100755 index 000000000..950047a51 --- /dev/null +++ b/web/static/fonts/pt_sans-web-bold-webfont.woff2 diff --git a/web/static/fonts/pt_sans-web-bolditalic-webfont.eot b/web/static/fonts/pt_sans-web-bolditalic-webfont.eot Binary files differnew file mode 100755 index 000000000..7809fb1db --- /dev/null +++ b/web/static/fonts/pt_sans-web-bolditalic-webfont.eot diff --git a/web/static/fonts/pt_sans-web-bolditalic-webfont.svg b/web/static/fonts/pt_sans-web-bolditalic-webfont.svg new file mode 100755 index 000000000..30d0887fd --- /dev/null +++ b/web/static/fonts/pt_sans-web-bolditalic-webfont.svg @@ -0,0 +1,762 @@ +<?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="pt_sansbold_italic" horiz-adv-x="1116" > +<font-face units-per-em="2048" ascent="1638" descent="-410" /> +<missing-glyph horiz-adv-x="518" /> +<glyph unicode="fi" horiz-adv-x="1077" d="M-264 -369l69 187q35 -14 70 -18.5t88 -4.5q66 0 101.5 51.5t52.5 153.5l123 813h-136l43 211h134l12 57q41 195 155.5 284t294.5 89q135 0 234.5 -22.5t155.5 -59.5l-103 -190q-45 29 -115.5 46t-158.5 17q-57 0 -95 -15.5t-63 -45t-40 -70.5t-26 -90h519l-154 -1024 h-252l123 813h-276l-123 -813q-16 -104 -42 -184t-68 -133.5t-104.5 -81t-152.5 -27.5q-74 0 -144.5 11.5t-121.5 45.5z" /> +<glyph unicode="fl" horiz-adv-x="1144" d="M-264 -369l69 187q35 -14 70 -18.5t88 -4.5q66 0 101.5 51.5t52.5 153.5l125 813h-136l44 211h133l12 57q41 193 149.5 286t323.5 93q45 0 102.5 -4t112.5 -9t103.5 -11t74.5 -13l-184 -1091q-4 -23 -7 -40.5t-3 -33.5q0 -72 55 -72q23 0 46.5 4.5t57.5 16.5l-8 -182 q-18 -8 -44.5 -17.5t-59.5 -16.5t-69 -11.5t-68 -4.5q-90 0 -137.5 35t-47.5 117q0 39 8 78l172 1028q-23 6 -65.5 11t-83.5 5q-90 0 -129 -62.5t-59 -162.5h147l-41 -211h-147l-125 -813q-14 -104 -41 -184t-69 -133.5t-104.5 -81t-152.5 -27.5q-74 0 -144.5 11.5 t-121.5 45.5z" /> +<glyph horiz-adv-x="0" /> +<glyph unicode="
" horiz-adv-x="518" /> +<glyph unicode=" " horiz-adv-x="518" /> +<glyph unicode="	" horiz-adv-x="518" /> +<glyph unicode=" " horiz-adv-x="518" /> +<glyph unicode="!" horiz-adv-x="579" d="M152 135q0 72 45 114t118 42q76 0 121 -42t45 -114t-45 -115t-121 -43q-74 0 -118.5 43t-44.5 115zM283 426l18 334l143 674h263l-144 -674l-121 -334h-159z" /> +<glyph unicode=""" horiz-adv-x="724" d="M143 991l95 443h221l-162 -443h-154zM430 991l95 443h221l-162 -443h-154z" /> +<glyph unicode="#" d="M98 420l45 198h154l51 218h-147l45 198h149l72 295h219l-72 -295h183l71 295h219l-71 -295h147l-51 -198h-143l-51 -218h141l-49 -198h-140l-73 -316h-219l73 316h-182l-74 -316h-219l74 316h-152zM516 618h182l52 218h-183z" /> +<glyph unicode="$" d="M121 88l96 199q29 -20 87 -47t136 -41l97 452q-47 31 -92.5 67t-81 82t-57 104.5t-21.5 135.5q0 98 33.5 172t92 125.5t134.5 80t162 38.5l41 182h202l-39 -184q78 -10 137.5 -29.5t102.5 -42.5l-102 -208q-29 16 -78 32.5t-109 26.5l-88 -416q47 -33 94 -69.5t84 -85 t59.5 -108.5t22.5 -138q0 -98 -32.5 -175t-91 -132.5t-139.5 -88t-177 -43.5l-37 -182h-203l39 185q-106 14 -171.5 46.5t-100.5 61.5zM551 1073q0 -59 33.5 -101t87.5 -83l73 352q-98 -4 -146 -51t-48 -117zM557 193q109 8 160 63t51 129q0 66 -37 111t-92 86z" /> +<glyph unicode="%" horiz-adv-x="1646" d="M113 1022q0 111 38 192.5t99.5 136t136 81t148.5 26.5q135 0 205.5 -62.5t70.5 -183.5q0 -117 -34.5 -201.5t-94 -140t-136.5 -82t-159 -26.5q-127 0 -200.5 70.5t-73.5 189.5zM164 113l1179 1349l150 -135l-1180 -1356zM338 1034q-2 -45 20.5 -72.5t65.5 -27.5 q68 0 115 70.5t47 181.5q0 100 -88 100q-35 0 -63.5 -20.5t-51 -54t-35 -80t-10.5 -97.5zM860 262q0 111 38 192.5t99.5 136t136 81t148.5 26.5q135 0 205.5 -62.5t70.5 -183.5q0 -117 -34.5 -201.5t-94 -140t-136.5 -82t-159 -26.5q-127 0 -200.5 70.5t-73.5 189.5z M1085 274q-2 -45 20.5 -72.5t65.5 -27.5q68 0 115 70.5t47 181.5q0 100 -88 100q-35 0 -63.5 -20.5t-51 -54t-35 -80t-10.5 -97.5z" /> +<glyph unicode="&" horiz-adv-x="1603" d="M150 332q0 94 37.5 178t100 153.5t141.5 126t163 97.5q-35 68 -44 123t-9 110q0 68 22.5 129.5t71.5 108.5t125 75.5t180 28.5q82 0 134 -20.5t83 -54t42 -75.5t11 -83q0 -104 -83 -199.5t-236 -179.5q45 -111 93 -203t114 -182q53 51 106 128t98 157l162 -103 q-20 -37 -51 -81t-64.5 -89t-67.5 -85t-60 -68q49 -59 107 -111.5t116 -77.5l-178 -196q-31 12 -64 35.5t-64.5 51t-60 58.5t-49.5 59q-88 -68 -203.5 -120t-269.5 -52q-94 0 -169 28t-127 76t-79.5 113.5t-27.5 143.5zM416 381q0 -86 55 -135t164 -49q78 0 152.5 33.5 t119.5 74.5q-76 109 -135 216.5t-98 203.5q-121 -82 -189.5 -165t-68.5 -179zM786 1133q0 -45 7.5 -77t29.5 -81q86 51 133.5 100t47.5 105q0 39 -18.5 61.5t-70.5 22.5q-63 0 -96 -39t-33 -92z" /> +<glyph unicode="'" horiz-adv-x="446" d="M186 991l95 443h221l-162 -443h-154z" /> +<glyph unicode="(" horiz-adv-x="634" d="M127 178q0 197 47 382t126 350t183.5 304.5t218.5 243.5l132 -110q-96 -106 -179.5 -238.5t-144.5 -282t-97 -310.5t-36 -324q0 -129 18.5 -255t83.5 -274l-157 -110q-59 78 -96.5 158.5t-60 160.5t-30.5 156.5t-8 148.5z" /> +<glyph unicode=")" horiz-adv-x="634" d="M-158 -338q92 102 176 236.5t146.5 286t99.5 311t37 313.5q0 170 -24.5 300t-79.5 232l178 115q92 -123 134 -277.5t42 -340.5q0 -197 -46 -383.5t-125 -352t-182.5 -307t-217.5 -246.5z" /> +<glyph unicode="*" horiz-adv-x="729" d="M160 1112v152h121l120 -35l-102 90l-57 102l131 76l57 -94l31 -121l31 113l57 100l129 -72l-62 -106l-96 -88l131 33h117v-150h-111l-125 33l103 -96l51 -86l-131 -76l-55 94l-41 131l-27 -119l-59 -100l-133 76l61 100l92 76l-112 -33h-121z" /> +<glyph unicode="+" horiz-adv-x="1034" d="M119 578v229h332v346h239v-346h334v-229h-334v-351h-239v351h-332z" /> +<glyph unicode="," horiz-adv-x="462" d="M-53 -193q59 23 108.5 74.5t67.5 108.5q-35 2 -65.5 34.5t-30.5 86.5q0 82 52 127t124 45t106.5 -46.5t34.5 -105.5v-4q-2 -100 -41 -175t-93 -127t-112.5 -84t-97.5 -44z" /> +<glyph unicode="-" horiz-adv-x="702" d="M115 483l51 213h489l-51 -213h-489z" /> +<glyph unicode="." horiz-adv-x="514" d="M68 135q0 72 45 114t118 42q76 0 121 -42t45 -114t-45 -115t-121 -43q-74 0 -118.5 43t-44.5 115z" /> +<glyph unicode="/" horiz-adv-x="794" d="M-158 -193l1043 1651l176 -94l-1045 -1655z" /> +<glyph unicode="0" d="M113 469q0 213 48 394t134 314.5t203.5 209t257.5 75.5q80 0 150.5 -24.5t123.5 -82t84 -153.5t31 -237q0 -190 -44 -369.5t-127 -318t-203 -222.5t-269 -84q-100 0 -174 39t-121 105.5t-70.5 158t-23.5 195.5zM367 471q0 -84 14 -137t37.5 -84t56.5 -42t70 -11 q72 0 134 67.5t109.5 176t75 244.5t27.5 276q0 63 -7 114t-26.5 87t-52.5 55.5t-84 19.5q-68 0 -131.5 -63.5t-113.5 -169t-79.5 -244.5t-29.5 -289z" /> +<glyph unicode="1" d="M119 0l47 225h270l174 809l58 140l-119 -121l-199 -127l-80 157l527 375h143l-262 -1233h264l-47 -225h-776z" /> +<glyph unicode="2" d="M74 0l28 137q57 53 135 126t162 156t165 172t144.5 175t103.5 166t40 145q0 68 -35 111t-133 43q-63 0 -130 -30t-132 -77l-62 193q98 72 197.5 108.5t230.5 36.5q152 0 235 -87t83 -228q0 -115 -53.5 -232.5t-135 -230.5t-180 -213t-186.5 -180l-121 -84v-10l143 28h367 l-47 -225h-819z" /> +<glyph unicode="3" d="M84 35l117 227q41 -27 100 -43t137 -16q80 0 138.5 22.5t97.5 59.5t57.5 85t18.5 97q0 98 -52.5 143t-189.5 45h-143l30 142l301 338l131 92l-155 -19h-326l49 226h744l-31 -146l-350 -389l-99 -55v-10l82 12q41 -4 87 -24.5t85 -60.5t65 -102.5t26 -152.5 q0 -117 -38 -215t-114 -169t-188.5 -111t-260.5 -40q-88 0 -178 16.5t-141 47.5z" /> +<glyph unicode="4" d="M57 399l31 152l805 893h209l-176 -834h215l-45 -211h-215l-84 -399h-236l84 399h-588zM336 596l127 14h227l68 316l53 172h-6l-98 -148l-258 -276z" /> +<glyph unicode="5" d="M74 33l114 217q41 -20 93.5 -33.5t130.5 -13.5q86 0 147.5 24.5t101 65.5t59 94t19.5 113q0 102 -62.5 145t-207.5 43l-158 -6l158 752h670l-52 -250h-450l-59 -283l75 8q82 0 144.5 -26.5t105.5 -73.5t65.5 -112.5t22.5 -141.5q0 -283 -159.5 -433.5t-458.5 -150.5 q-41 0 -84 5.5t-83 13.5t-74 19t-58 24z" /> +<glyph unicode="6" d="M127 432q0 209 78 390.5t206 317.5t291.5 220t337.5 102l15 -211q-102 -16 -200.5 -58t-183.5 -106.5t-150.5 -146.5t-100.5 -176q55 59 136 90t167 31q158 0 246 -99.5t88 -263.5q0 -111 -33 -211t-99.5 -175t-167 -120t-233.5 -45q-66 0 -136.5 23.5t-128.5 78 t-95 142.5t-37 217zM367 449q0 -111 46 -181.5t142 -70.5q117 0 184.5 77.5t67.5 200.5q0 82 -42 133t-140 51q-78 0 -145.5 -34.5t-102.5 -87.5q-4 -20 -7 -46t-3 -42z" /> +<glyph unicode="7" d="M127 0l674 1104l104 100l-119 -20h-481l51 250h881l-16 -78l-830 -1356h-264z" /> +<glyph unicode="8" d="M111 313q0 78 26.5 144.5t71.5 121t104.5 95.5t124.5 65q-29 27 -54.5 54.5t-45 62.5t-30.5 81t-11 107q0 100 38 179.5t103.5 131.5t151.5 79.5t182 27.5q172 0 262 -89t90 -228q0 -72 -23.5 -130.5t-63.5 -107.5t-92 -89t-109 -70q92 -72 132 -153t40 -175 q0 -104 -38 -187t-105.5 -141.5t-162 -89.5t-206.5 -31q-80 0 -151 22.5t-123 65.5t-81.5 106.5t-29.5 147.5zM350 362q0 -72 43 -118.5t142 -46.5q45 0 87 12t74.5 35.5t51 59.5t18.5 85q0 47 -15.5 84t-41 66.5t-60.5 55.5t-71 48q-104 -53 -166 -123.5t-62 -157.5z M539 1047q0 -72 45 -122.5t114 -90.5q37 27 70 57.5t58.5 63t41 67.5t15.5 68q0 74 -37 110.5t-105 36.5q-86 0 -144 -49t-58 -141z" /> +<glyph unicode="9" d="M203 934q0 123 41 221t113.5 166t170 104.5t211.5 36.5q86 0 160 -26.5t128 -83t86 -141.5t32 -201q0 -164 -42 -302.5t-112.5 -251t-164 -200.5t-196 -149.5t-208 -95.5t-199.5 -40l-12 209q113 20 212 64.5t179 105t138.5 135t90.5 154.5q-59 -47 -128.5 -70.5 t-167.5 -23.5q-57 0 -117 21.5t-107 67.5t-77.5 121t-30.5 179zM453 973q0 -59 15 -98t42 -64t58.5 -35t66.5 -10q78 0 145.5 24.5t106.5 65.5q6 23 11 64t5 59q0 117 -46 189.5t-150 72.5q-49 0 -94.5 -15.5t-81 -48t-57 -83.5t-21.5 -121z" /> +<glyph unicode=":" horiz-adv-x="643" d="M185 135q0 72 45 114t118 42q76 0 121 -42t45 -114t-45 -115t-121 -43q-74 0 -118.5 43t-44.5 115zM338 876q0 72 45 114t118 42q76 0 121 -42t45 -114t-45 -115t-121 -43q-74 0 -118.5 43t-44.5 115z" /> +<glyph unicode=";" horiz-adv-x="628" d="M107 -193q59 23 108.5 74.5t67.5 108.5q-35 2 -65.5 34.5t-30.5 86.5q0 82 52 127t124 45t106.5 -46.5t34.5 -105.5v-4q-2 -100 -41 -175t-93 -127t-112.5 -84t-97.5 -44zM324 876q0 72 45 114t118 42q76 0 121 -42t45 -114t-45 -115t-121 -43q-74 0 -118.5 43t-44.5 115 z" /> +<glyph unicode="<" horiz-adv-x="1034" d="M104 584v143l791 473l117 -184l-459 -285l-186 -72l184 -63l471 -281l-117 -184z" /> +<glyph unicode="=" horiz-adv-x="1034" d="M119 383v229h905v-229h-905zM119 775v229h905v-229h-905z" /> +<glyph unicode=">" horiz-adv-x="1034" d="M123 1018l115 182l802 -452v-144l-792 -473l-115 186l457 283l186 74l-184 61z" /> +<glyph unicode="?" horiz-adv-x="880" d="M168 135q0 72 45 114t119 42q76 0 121 -42t45 -114t-45 -115t-121 -43q-74 0 -119 43t-45 115zM233 1339q84 51 182.5 87t239.5 36q172 0 252 -72.5t80 -195.5q0 -109 -32.5 -183.5t-84 -131t-113 -100.5t-117.5 -93t-101 -110.5t-62 -149.5h-217q12 111 50 189.5 t88.5 137t106.5 102.5t102 85t77 84t31 100q0 55 -32 86t-114 31q-63 0 -139 -27.5t-133 -66.5z" /> +<glyph unicode="@" horiz-adv-x="2168" d="M205 483q0 223 80 403.5t215 307.5t313 195.5t377 68.5q188 0 350 -54t280.5 -155.5t186.5 -248t68 -332.5q0 -131 -47.5 -246t-127 -199t-187 -133t-230.5 -49q-51 0 -95.5 11t-75 38t-45 70t-7.5 106h-9q-31 -43 -65.5 -84t-77.5 -72.5t-94 -50t-113 -18.5 q-51 0 -95 21.5t-77 60.5t-52.5 94t-19.5 123q0 127 41 247t111 212t163 148.5t197 56.5q72 0 121 -21.5t92 -56.5l64 65h143l-100 -555q-4 -25 -6 -46t-2 -38q0 -98 75 -98q53 0 105.5 24.5t93.5 76t65.5 129t24.5 184.5q0 154 -51 263t-140 180t-210 103.5t-258 32.5 q-160 0 -298 -57t-239.5 -158.5t-159 -240t-57.5 -299.5q0 -160 48 -287t141.5 -217t229.5 -138.5t312 -48.5q59 0 135 15.5t138 44.5l63 -197q-86 -41 -172 -57.5t-199 -16.5q-201 0 -369.5 57.5t-291.5 170t-192.5 279.5t-69.5 386zM905 408q0 -68 29 -112t96 -44 q29 0 61.5 17.5t63.5 47t58.5 66.5t50.5 78l53 282q-29 23 -57.5 36.5t-69.5 13.5q-61 0 -113.5 -36t-90.5 -91.5t-59.5 -124t-21.5 -133.5z" /> +<glyph unicode="A" horiz-adv-x="1191" d="M-78 0l797 1444h196l187 -1444h-268l-41 317h-418l-170 -317h-283zM492 543h290l-32 319l2 225h-11l-82 -227z" /> +<glyph unicode="B" horiz-adv-x="1163" d="M41 10l299 1413q39 6 88 12.5t104.5 10.5t114 6t113.5 2q94 0 175 -19.5t139.5 -60.5t92 -105.5t33.5 -154.5q0 -68 -22.5 -130t-64.5 -111.5t-100.5 -82t-131.5 -42.5v-11q39 -8 77.5 -29.5t69.5 -55.5t49.5 -80t18.5 -103q0 -131 -51.5 -224t-137.5 -151.5t-200.5 -86 t-241.5 -27.5h-85t-111.5 3t-119 9t-108.5 18zM342 223q8 -4 29.5 -6t47 -3t52.5 -2t45 -1q51 0 105.5 12.5t98.5 41t72.5 73.5t28.5 111q0 51 -22.5 83.5t-59.5 52t-85 26.5t-99 7h-131zM471 831h88q29 0 68 1.5t65 5.5q37 6 79 20t76 41t56.5 68t22.5 102q0 88 -58.5 121 t-148.5 33q-53 0 -98.5 -2t-69.5 -7z" /> +<glyph unicode="C" horiz-adv-x="1099" d="M119 557q0 242 67.5 413t178 280.5t253 160.5t291.5 51q117 0 200 -17.5t130 -39.5l-104 -238q-41 23 -98.5 34t-145.5 11q-104 0 -194.5 -43t-156 -122.5t-103.5 -194.5t-38 -260q0 -174 87 -272.5t233 -98.5q92 0 152.5 19.5t113.5 48.5l4 -230q-137 -88 -336 -88 q-135 0 -235.5 45t-167 125t-99 186.5t-32.5 229.5z" /> +<glyph unicode="D" horiz-adv-x="1269" d="M41 -2l303 1436q43 6 94 10t95.5 6t76.5 2q18 0 52 1t75 1q125 0 227.5 -31.5t175 -97t112.5 -168t40 -244.5q0 -90 -15 -193.5t-52 -207.5t-101.5 -200.5t-162 -170t-233.5 -119t-316 -45.5q-31 0 -62 1.5t-43 1.5q-41 2 -91 5l-100 6t-75 7zM356 233q8 -2 25.5 -3 t38 -2t39 -1h28.5q143 0 243.5 64.5t163 162t90.5 211t28 212.5q0 164 -69 245.5t-228 81.5q-41 0 -86 -2t-70 -6z" /> +<glyph unicode="E" horiz-adv-x="1030" d="M41 0l303 1434h266h541l-53 -250h-541l-72 -334h494l-55 -250h-490l-76 -350h551l-51 -250h-551h-266z" /> +<glyph unicode="F" horiz-adv-x="1001" d="M41 0l303 1434h266h541l-53 -250h-541l-76 -355h498l-51 -249h-498l-123 -580h-266z" /> +<glyph unicode="G" horiz-adv-x="1198" d="M119 553q0 236 64.5 408t175 283.5t258 164.5t311.5 53q117 0 208 -19.5t138 -39.5l-107 -236q-43 20 -107.5 32.5t-156.5 12.5q-109 0 -201 -41t-159.5 -120.5t-105.5 -197.5t-38 -269q0 -170 80 -266.5t215 -96.5q100 0 176 51l58 273l-209 33l37 170h430l-135 -639 q-92 -72 -193.5 -105t-218.5 -33q-113 0 -208 39t-164.5 113t-108.5 182.5t-39 247.5z" /> +<glyph unicode="H" horiz-adv-x="1277" d="M41 0l303 1434h266l-123 -584h498l123 584h266l-303 -1434h-266l127 600h-498l-127 -600h-266z" /> +<glyph unicode="I" horiz-adv-x="569" d="M72 0l303 1434h264l-303 -1434h-264z" /> +<glyph unicode="J" horiz-adv-x="663" d="M-104 23l102 229q47 -27 111 -27q43 0 71.5 17.5t48 48.5t31.5 73t25 93l204 977h267l-224 -1049q-18 -86 -46.5 -160.5t-76 -130t-118 -87.5t-170.5 -32q-57 0 -120.5 12.5t-104.5 35.5z" /> +<glyph unicode="K" horiz-adv-x="1214" d="M41 0l303 1434h266l-135 -635l64 22l485 613h319l-516 -609l-122 -71l90 -80l311 -674h-297l-277 612h-96l-129 -612h-266z" /> +<glyph unicode="L" horiz-adv-x="1013" d="M41 0l303 1434h266l-252 -1184h596l-51 -250h-596h-266z" /> +<glyph unicode="M" horiz-adv-x="1570" d="M41 0l303 1434h236l215 -656l26 -164h10l95 168l483 652h256l-303 -1434h-264l157 743l91 283h-13l-135 -231l-403 -531h-84l-193 537l-37 225h-10l-20 -281l-158 -745h-252z" /> +<glyph unicode="N" horiz-adv-x="1292" d="M41 0l307 1444h184l353 -766l63 -223h13l14 223l162 756h252l-308 -1444h-184l-350 760l-68 229h-10l-18 -229l-158 -750h-252z" /> +<glyph unicode="O" horiz-adv-x="1318" d="M119 537q0 190 52 359t148.5 295t232.5 198.5t304 72.5q111 0 200 -32.5t151.5 -101t97 -173t34.5 -248.5q0 -193 -52 -362.5t-147.5 -297.5t-227.5 -202t-291 -74q-242 0 -371 142.5t-131 423.5zM399 545q0 -147 56.5 -235.5t185.5 -88.5q94 0 171 56.5t132 151.5 t85 218t30 256q0 162 -63.5 235.5t-174.5 73.5q-92 0 -169 -53t-133 -144t-88 -213t-32 -257z" /> +<glyph unicode="P" horiz-adv-x="1126" d="M41 0l301 1419q86 16 183.5 25.5t195.5 9.5q104 0 193.5 -23.5t156 -72.5t103 -126t36.5 -183q0 -160 -55 -267.5t-146 -174t-208 -94.5t-238 -28h-31.5t-45 1t-45 3.5t-31.5 4.5l-103 -494h-266zM463 735q8 -2 22.5 -4t32 -3t32.5 -1h23q70 0 134.5 15.5t113.5 49t79 89 t30 135.5q0 59 -19.5 98t-52.5 60.5t-77 29.5t-93 8q-37 0 -70.5 -3t-56.5 -7z" /> +<glyph unicode="Q" horiz-adv-x="1318" d="M119 537q0 190 52 359t148.5 295t232.5 198.5t304 72.5q111 0 200 -32.5t151.5 -101t97 -173t34.5 -248.5q0 -193 -52 -362.5t-147.5 -297.5t-227.5 -202t-291 -74q-242 0 -371 142.5t-131 423.5zM328 -317l51 241q57 12 115 13q82 0 158.5 -20.5t155.5 -44.5t163 -44.5 t180 -20.5q43 0 89 5.5t95 17.5l-51 -244q-94 -26 -187 -26h-7q-98 0 -188.5 21.5t-173.5 46t-158.5 46t-149.5 21.5q-47 0 -92 -12zM399 545q0 -147 56.5 -235.5t185.5 -88.5q94 0 171 56.5t132 151.5t85 218t30 256q0 162 -63.5 235.5t-174.5 73.5q-92 0 -169 -53 t-133 -144t-88 -213t-32 -257z" /> +<glyph unicode="R" horiz-adv-x="1196" d="M41 0l301 1419q98 18 198.5 26.5t180.5 8.5q94 0 178 -22.5t145.5 -68.5t97.5 -119t36 -171q0 -113 -34 -195.5t-89.5 -139t-126 -88.5t-144.5 -42l80 -63l199 -545h-295l-197 561l-141 27l-123 -588h-266zM471 778h109q59 0 116.5 11.5t101.5 41t71.5 78.5t27.5 125 q0 70 -47 120t-152 50q-41 0 -76.5 -3t-60.5 -7z" /> +<glyph unicode="S" horiz-adv-x="1044" d="M-4 57l137 238q20 -12 53 -26.5t75 -27t91 -20.5t99 -8q57 0 108 9t89 30.5t59.5 54.5t21.5 82q0 55 -37 94t-93 74t-120.5 73t-121 89t-93.5 123.5t-37 177.5q0 119 42 203t114 137t168 77.5t207 24.5q59 0 118.5 -6t112.5 -17.5t98.5 -26.5t75.5 -34l-135 -233 q-39 25 -114.5 50.5t-168.5 25.5q-47 0 -92 -9.5t-79.5 -30t-55 -53t-20.5 -77.5q0 -59 36.5 -100.5t93 -77t121 -72.5t121 -86t93 -118t36.5 -169q0 -121 -42 -208t-118.5 -142t-184 -81t-238.5 -26q-72 0 -136.5 8.5t-120 20.5t-97.5 27.5t-66 29.5z" /> +<glyph unicode="T" horiz-adv-x="1120" d="M197 1184l53 250h1059l-52 -250h-397l-252 -1184h-264l250 1184h-397z" /> +<glyph unicode="U" horiz-adv-x="1232" d="M129 356q0 41 5 84t16 90l192 904h264l-188 -902q-16 -78 -17 -126q0 -98 51.5 -139.5t149.5 -41.5q123 0 190.5 72t102.5 231l192 906h250l-194 -926q-31 -147 -80 -248.5t-119 -165t-164 -91.5t-217 -28q-119 0 -200.5 28t-134 79t-76 120.5t-23.5 153.5z" /> +<glyph unicode="V" horiz-adv-x="1185" d="M207 1434h291l92 -840l-15 -244h9l90 244l442 840h299l-809 -1444h-192z" /> +<glyph unicode="W" horiz-adv-x="1691" d="M223 1434h281l6 -799l-29 -254h11l79 258l406 795h180l60 -799l-27 -254h10l82 258l336 795h287l-682 -1444h-187l-75 796l16 220h-12l-78 -222l-408 -794h-186z" /> +<glyph unicode="X" horiz-adv-x="1245" d="M-49 0l573 731l-231 703h289l123 -414l20 -146l76 146l305 414h319l-538 -693l256 -741h-285l-147 442l-25 152l-82 -152l-330 -442h-323z" /> +<glyph unicode="Y" horiz-adv-x="1165" d="M217 1434h295l133 -539l-4 -152h8l64 156l358 535h305l-637 -899l-112 -535h-265l111 532z" /> +<glyph unicode="Z" horiz-adv-x="1060" d="M-23 0l54 250l737 852l119 82h-658l52 250h944l-51 -250l-742 -858l-115 -76h658l-53 -250h-945z" /> +<glyph unicode="[" horiz-adv-x="643" d="M4 -471l402 1905h456l-45 -224h-215l-309 -1456h215l-49 -225h-455z" /> +<glyph unicode="\" horiz-adv-x="868" d="M74 1368l211 88l682 -1651l-207 -92z" /> +<glyph unicode="]" horiz-adv-x="643" d="M-160 -471l49 225h215l308 1456h-215l45 224h458l-403 -1905h-457z" /> +<glyph unicode="^" horiz-adv-x="1034" d="M143 846l402 598h143l379 -598h-268l-146 250l-45 143l-51 -145l-158 -248h-256z" /> +<glyph unicode="_" horiz-adv-x="909" d="M-94 -240h909v-219h-909v219z" /> +<glyph unicode="`" horiz-adv-x="561" d="M297 1413l14 62h264l50 -316h-142z" /> +<glyph unicode="a" horiz-adv-x="1030" d="M68 295q0 150 37.5 287t117.5 241.5t202 167t290 62.5q72 0 156.5 -13.5t164.5 -35.5l-127 -594q-16 -78 -23 -158t-7 -152q0 -29 1 -54.5t3 -47.5h-187l-28 176h-9q-23 -37 -58.5 -72.5t-78.5 -65.5t-91 -47.5t-99 -17.5q-135 0 -199.5 88t-64.5 236zM328 344 q0 -66 21.5 -114t78.5 -48q37 0 69.5 15.5t60.5 40t49.5 53t37.5 53.5l103 477q-23 10 -52.5 15.5t-58.5 5.5q-74 0 -131 -44t-97 -115t-60.5 -160t-20.5 -179z" /> +<glyph unicode="b" horiz-adv-x="1048" d="M45 57l291 1377h252l-127 -590h8q27 37 61.5 72.5t76.5 65.5t91.5 48.5t108.5 18.5q111 0 166 -78t55 -207q0 -195 -54 -342.5t-142.5 -246.5t-199 -149.5t-222.5 -50.5q-125 0 -220.5 24t-144.5 58zM328 215q23 -16 55.5 -22.5t71.5 -6.5q51 0 106 34t101.5 99.5 t76 160.5t29.5 216q0 141 -82 142q-41 0 -81 -22.5t-76.5 -56.5t-66.5 -73t-48 -74z" /> +<glyph unicode="c" horiz-adv-x="843" d="M70 324q0 172 49 307t130 228t184.5 143.5t211.5 50.5q96 0 152.5 -18.5t101.5 -41.5l-94 -200q-39 23 -81 30.5t-91 7.5q-55 0 -107.5 -35.5t-94.5 -94t-66.5 -136.5t-24.5 -159q0 -104 45 -158.5t119 -54.5q61 0 113.5 19t93.5 44l47 -172q-66 -49 -153 -81t-173 -32 q-98 0 -166.5 29t-111.5 78t-63.5 112.5t-20.5 133.5z" /> +<glyph unicode="d" horiz-adv-x="1038" d="M76 309q0 143 39 276.5t109.5 237t172 165t224.5 61.5q59 0 98 -7.5t74 -23.5l88 416h252l-228 -1074q-18 -86 -26.5 -159.5t-8.5 -139.5v-31.5t2 -31.5h-172l-28 176h-8q-23 -37 -59 -72.5t-79 -65.5t-91 -47.5t-95 -17.5q-127 0 -195.5 90.5t-68.5 247.5zM336 328 q0 -59 26.5 -102.5t75.5 -43.5q31 0 62.5 15.5t59.5 40t51.5 53t37.5 53.5l99 463q-25 16 -57 23.5t-85 7.5q-61 0 -111.5 -42t-85 -113t-54 -163t-19.5 -192z" /> +<glyph unicode="e" horiz-adv-x="954" d="M70 340q0 164 51 296t134 224t187.5 142.5t208.5 50.5q84 0 144.5 -21.5t99.5 -59.5t57.5 -87t18.5 -105q0 -84 -43 -147.5t-120 -105.5t-185.5 -63.5t-237.5 -21.5q-16 0 -30.5 1t-30.5 1q-4 -25 -6.5 -44t-2.5 -35q0 -92 48.5 -137.5t136.5 -45.5q90 0 161.5 27 t108.5 53l53 -164q-63 -53 -163.5 -90t-233.5 -37q-166 0 -261 97.5t-95 271.5zM360 604q57 0 122 4t120 19.5t92 45t37 81.5q0 31 -22.5 62.5t-94.5 31.5q-90 0 -156.5 -70t-97.5 -174z" /> +<glyph unicode="f" horiz-adv-x="602" d="M-264 -369l69 187q35 -14 70 -18.5t88 -4.5q66 0 101.5 52.5t54.5 168.5l129 797h-144l46 211h131l26 137q14 76 37 132.5t60.5 94t92 56t134.5 18.5q33 0 75 -3t82.5 -10t79.5 -17.5t70 -24.5l-59 -186q-47 18 -96.5 24t-96.5 6q-66 0 -95.5 -38.5t-41.5 -120.5l-12 -68 h204l-41 -211h-196l-152 -883q-12 -76 -34.5 -140t-62.5 -112.5t-101.5 -76t-151.5 -27.5q-74 0 -144.5 11.5t-121.5 45.5z" /> +<glyph unicode="g" horiz-adv-x="1034" d="M-20 -342l94 186q18 -8 42.5 -19t56.5 -22.5t74 -18.5t97 -7q102 0 162.5 63.5t87.5 173.5l39 160h-8q-47 -74 -128 -132t-184 -58q-111 0 -179 83t-68 222q0 158 45 296t125.5 241.5t191.5 163t244 59.5q125 0 218 -21.5t150 -48.5l-206 -979q-27 -121 -72 -204 t-107.5 -134t-143.5 -73.5t-179 -22.5q-72 0 -128.5 10t-99.5 24.5t-74.5 30t-49.5 27.5zM326 338q0 -66 27.5 -104.5t72.5 -38.5q35 0 72 21.5t70.5 54t60 72.5t43.5 75l88 399q-23 12 -57.5 16.5t-69.5 4.5q-66 0 -122 -39t-97 -106.5t-64.5 -159t-23.5 -195.5z" /> +<glyph unicode="h" horiz-adv-x="1081" d="M37 0l303 1434h252l-129 -590h8q27 33 64.5 69.5t84 67.5t100.5 51.5t118 20.5q98 0 152 -49.5t54 -174.5q0 -76 -24 -192l-135 -637h-252l123 582q20 90 20 149q0 53 -20.5 76.5t-63.5 23.5q-39 0 -82 -24.5t-82 -61t-70.5 -78.5t-47.5 -77l-121 -590h-252z" /> +<glyph unicode="i" horiz-adv-x="524" d="M55 0l217 1024h252l-217 -1024h-252zM311 1315q0 68 44 104.5t112 36.5q66 0 112 -37t46 -104q0 -66 -46.5 -103.5t-111.5 -37.5q-68 0 -112 37.5t-44 103.5z" /> +<glyph unicode="j" horiz-adv-x="499" d="M-229 -408l49 218q12 -1 23 -1q37 0 65 10q37 13 62.5 41.5t43 72.5t29.5 100l209 991h254l-227 -1067q-39 -184 -131.5 -281.5t-249.5 -97.5q-63 0 -127 14zM289 1315q0 68 44 104.5t112 36.5q66 0 112 -37t46 -104q0 -66 -46.5 -103.5t-111.5 -37.5q-68 0 -112 37.5 t-44 103.5z" /> +<glyph unicode="k" horiz-adv-x="952" d="M37 0l303 1434h252l-180 -846l75 26l289 410h281l-305 -412l-123 -77l92 -78l156 -457h-271l-147 424h-82l-88 -424h-252z" /> +<glyph unicode="l" horiz-adv-x="557" d="M68 135q0 47 12 109l252 1190h252l-240 -1131q-6 -28 -6 -50q0 -23 7 -38q13 -29 44 -29q57 0 109 23l-6 -182q-37 -23 -107 -37.5t-137 -14.5q-88 0 -134 34t-46 126z" /> +<glyph unicode="m" horiz-adv-x="1570" d="M37 0l217 1024h197l-13 -180h8q31 33 67 69.5t81 67.5t100.5 51.5t120.5 20.5q82 1 124 -59q38 -54 38 -141v-17q31 39 70.5 77.5t86 69.5t98.5 50.5t107 19.5q94 0 144.5 -44t50.5 -165q0 -88 -31 -230l-129 -614h-252l121 575q10 47 16.5 88.5t6.5 71.5 q0 47 -17.5 71.5t-58.5 24.5q-33 0 -66.5 -19t-64.5 -49t-56.5 -64.5t-39.5 -65.5l-132 -633h-251l116 557q12 57 19.5 101t7.5 79q0 94 -72 94q-35 0 -69.5 -18t-64.5 -47t-55.5 -62.5t-41.5 -64.5l-131 -639h-252z" /> +<glyph unicode="n" horiz-adv-x="1067" d="M37 0l217 1024h190l-10 -180h8q27 33 63 69.5t83 67.5t105.5 51.5t131.5 20.5q92 0 147.5 -50.5t55.5 -166.5q0 -31 -3 -66t-13 -76l-148 -694h-252l136 635q12 57 12 100q0 45 -18.5 70.5t-67.5 25.5q-37 0 -74 -18t-69.5 -49t-61.5 -69t-49 -77l-131 -618h-252z" /> +<glyph unicode="o" horiz-adv-x="1015" d="M70 332q0 162 46 295t122.5 227t178 146.5t212.5 52.5q98 0 165.5 -31t109.5 -82t60.5 -116.5t18.5 -135.5q0 -160 -45 -292t-121 -226t-176 -146.5t-211 -52.5q-96 0 -163.5 32t-111.5 83t-64.5 115.5t-20.5 130.5zM330 367q0 -184 133 -185q49 0 96 43t84 113t58.5 158 t21.5 176q0 82 -27.5 126t-103.5 44q-49 0 -96 -41t-84 -107.5t-59.5 -152.5t-22.5 -174z" /> +<glyph unicode="p" horiz-adv-x="1036" d="M-53 -410l303 1434h186l-10 -180h8q29 39 66 76.5t82 66.5t96 47.5t110 18.5q104 0 168 -72t64 -225q0 -174 -46 -318.5t-123 -248t-180.5 -161t-215.5 -57.5q-53 0 -100.5 10.5t-69.5 26.5l-88 -418h-250zM328 217q51 -35 114 -35t121 43t102 115t69.5 167t25.5 200 q0 59 -27.5 97t-75.5 38q-37 0 -71.5 -18.5t-65.5 -46t-55.5 -62.5t-42.5 -68z" /> +<glyph unicode="q" horiz-adv-x="1026" d="M59 285q0 156 50.5 295t137.5 243.5t202.5 165t244.5 60.5q98 0 191.5 -21.5t144.5 -50.5l-301 -1387h-246l125 570h-8q-20 -35 -50 -68t-68 -60.5t-83 -44t-96 -16.5q-68 0 -114 26t-74.5 70t-42 100t-13.5 118zM319 317q0 -63 24 -99t65 -36q39 0 77.5 23.5t72.5 59.5 t61.5 78t44.5 79l81 395q-29 12 -59.5 16.5t-60.5 4.5q-61 0 -117.5 -44t-97.5 -117t-66 -167t-25 -193z" /> +<glyph unicode="r" horiz-adv-x="702" d="M37 0l217 1024h186l2 -180h9q45 82 109.5 139t162.5 57q43 0 102 -16l-63 -219q-20 6 -38.5 10t-39.5 4q-84 0 -154.5 -54t-107.5 -126l-133 -639h-252z" /> +<glyph unicode="s" horiz-adv-x="811" d="M-2 39l80 201q41 -23 105.5 -40.5t135.5 -17.5q72 0 110 28t40 85q0 41 -24.5 70.5t-62.5 56.5t-81 54.5t-81 63t-62.5 85t-24.5 118.5q0 68 26.5 125.5t75 98.5t117 63.5t154.5 22.5q119 0 196.5 -17.5t122.5 -44.5l-69 -192q-41 18 -99.5 30.5t-121.5 12.5 q-66 0 -104 -22.5t-38 -71.5q0 -33 24.5 -58.5t62.5 -52.5t81 -54.5t81 -66.5t62.5 -89t24.5 -120q0 -170 -110.5 -253t-294.5 -83q-104 0 -191.5 19.5t-134.5 48.5z" /> +<glyph unicode="t" horiz-adv-x="655" d="M82 813l49 211h133l41 193l268 75l-57 -268h240l-47 -211h-238l-100 -463q-12 -55 -13 -90q0 -45 20.5 -61.5t61.5 -16.5q39 0 71 8.5t67 26.5v-188q-23 -12 -54.5 -23.5t-68.5 -18.5t-76 -11.5t-72 -4.5q-104 0 -160.5 48.5t-56.5 146.5q0 20 3 42.5t7 47.5l119 557 h-137z" /> +<glyph unicode="u" horiz-adv-x="1048" d="M80 197q0 76 20 165l142 662h252l-134 -633q-12 -61 -12 -102t16.5 -63.5t57.5 -22.5q35 0 70.5 17.5t68.5 45t60.5 61t46.5 66.5l131 631h252l-129 -614q-10 -41 -17.5 -96.5t-13.5 -114t-8 -111.5q-1 -26 -1 -48t1 -40h-203l-10 184h-8q-29 -39 -67 -76.5t-84 -68.5 t-100.5 -49.5t-115.5 -18.5q-96 0 -155.5 48.5t-59.5 177.5z" /> +<glyph unicode="v" horiz-adv-x="917" d="M82 1024h278l68 -537l4 -157h6l62 162l280 532h285l-627 -1034h-155z" /> +<glyph unicode="w" horiz-adv-x="1388" d="M94 1024h258l33 -514l-12 -182h10l70 184l270 512h188l66 -524l-2 -170h10l62 172l237 522h246l-522 -1034h-187l-71 573v129h-9l-53 -131l-307 -571h-193z" /> +<glyph unicode="x" horiz-adv-x="1015" d="M-84 0l424 524l-184 500h284l78 -219l27 -143l90 143l178 219h293l-399 -492l204 -532h-278l-98 246l-31 151l-92 -151l-203 -246h-293z" /> +<glyph unicode="y" horiz-adv-x="925" d="M-35 -389l68 201q12 -6 25.5 -8.5t25.5 -2.5q49 0 100.5 47.5t102.5 151.5l-193 1024h289l59 -575l2 -160h13l55 162l279 573h268l-492 -920q-61 -115 -115.5 -211t-109.5 -165.5t-114.5 -108.5t-127.5 -39q-90 0 -135 31z" /> +<glyph unicode="z" horiz-adv-x="890" d="M-27 0l45 221l461 490l146 92h-484l49 221h762l-47 -221l-471 -498l-131 -84h479l-47 -221h-762z" /> +<glyph unicode="{" horiz-adv-x="729" d="M133 379l45 205q74 0 123 42t68 132l90 428q23 111 86 180.5t174 69.5h233l-47 -226h-98q-53 0 -83 -28.5t-44 -94.5l-84 -399q-18 -90 -69.5 -136t-106.5 -56l-4 -21q51 -8 80.5 -61.5t11.5 -139.5l-84 -397q-14 -66 4 -94.5t74 -28.5h96l-49 -225h-234 q-102 0 -141 64.5t-12 183.5l88 420q23 104 -9 143t-108 39z" /> +<glyph unicode="|" horiz-adv-x="475" d="M193 -266v1700h217v-1700h-217z" /> +<glyph unicode="}" horiz-adv-x="729" d="M-156 -471l50 225h98q51 0 79.5 28t43.5 95l86 399q18 90 68 136.5t108 56.5l6 20q-53 8 -84 61.5t-12 139.5l84 397q14 63 -3.5 93t-72.5 30h-94l45 226h231q102 0 142 -64.5t16 -183.5l-90 -420q-23 -104 10 -143t109 -39l-43 -205q-156 0 -193 -174l-92 -428 q-23 -111 -89.5 -180.5t-176.5 -69.5h-226z" /> +<glyph unicode="~" horiz-adv-x="1034" d="M92 774q96 78 173 107.5t143 29.5q59 0 110 -17t98.5 -36.5t93.5 -37t93 -17.5q37 0 76 12t82 47l96 -211q-74 -55 -135.5 -77.5t-114.5 -22.5q-57 0 -106.5 18.5t-95.5 41t-93 41t-100 18.5q-49 0 -105.5 -21.5t-124.5 -79.5z" /> +<glyph unicode="¡" horiz-adv-x="571" d="M-20 -410l141 674l121 332h159l-18 -332l-143 -674h-260zM205 891q0 72 45 114t119 42q76 0 121 -42t45 -114t-45.5 -115t-120.5 -43q-74 0 -119 43t-45 115z" /> +<glyph unicode="¢" d="M190 324q0 154 39 277.5t105.5 215.5t155 149.5t184.5 75.5l39 187h235l-41 -189q94 -18 148 -47l-92 -200q-23 12 -52.5 20t-62.5 12l-133 -624q45 10 85 24.5t66 30.5l49 -172q-43 -35 -105 -60.5t-128 -37.5l-39 -191h-235l38 187q-68 14 -116.5 46.5t-79.5 79 t-45.5 101.5t-14.5 115zM438 406q0 -86 29 -133.5t74 -65.5l129 608q-45 -18 -87 -55t-74 -90.5t-51.5 -120t-19.5 -143.5z" /> +<glyph unicode="£" d="M61 0l50 223h4q61 2 117.5 29t99.5 73t68.5 107.5t25.5 132.5v20.5t-2 20.5h-240l47 211h144q-10 41 -18.5 89t-8.5 114q0 115 44 199t118 138t168 79.5t194 25.5q92 0 175 -19.5t131 -51.5l-86 -199q-35 18 -95.5 33.5t-142.5 15.5q-49 0 -95 -17.5t-80 -50t-54.5 -77.5 t-20.5 -103q0 -59 8.5 -99t20.5 -77h287l-48 -211h-194q0 -8 1 -13t1 -13q0 -102 -43 -186.5t-94 -129.5l-97 -61l-2 -13l138 31h446l-49 -221h-918z" /> +<glyph unicode="¤" d="M84 307l158 160l73 35q-25 43 -39 93t-14 112q0 59 15.5 110t39.5 98l-75 35l-158 160l156 164l159 -158l39 -76q41 31 97.5 46.5t117.5 15.5q59 0 117.5 -15.5t97.5 -44.5l41 74l160 158l158 -164l-158 -160l-78 -32q31 -43 43.5 -97.5t12.5 -113.5q0 -61 -13.5 -115.5 t-42.5 -91.5l78 -33l158 -160l-158 -164l-160 158l-37 76q-39 -29 -99 -45.5t-120 -16.5q-61 0 -117.5 15.5t-97.5 44.5l-39 -74l-159 -158zM485 709q0 -78 47.5 -127.5t122.5 -49.5q76 0 122 49.5t46 127.5q0 74 -46 125t-122 51t-123 -51t-47 -125z" /> +<glyph unicode="¥" d="M133 246l35 164h254l24 116h-251l34 164h174l-210 744h311l137 -539l-6 -152h10l62 156l354 535h291l-527 -744h179l-35 -164h-256l-25 -116h256l-35 -164h-256l-51 -246h-266l51 246h-254z" /> +<glyph unicode="¦" horiz-adv-x="464" d="M123 -266v702h219v-702h-219zM123 731v703h219v-703h-219z" /> +<glyph unicode="§" horiz-adv-x="1034" d="M86 61l88 191q41 -23 103.5 -46.5t146.5 -23.5q72 0 115 28t43 77q0 33 -32 55.5t-79 43t-103.5 44t-103.5 56t-78.5 80.5t-31.5 120q0 92 49 156.5t114 111.5l99 33q-45 33 -67.5 79t-24.5 97q0 61 29.5 116.5t82.5 95.5t128 63.5t163 23.5q115 0 190.5 -23.5 t129.5 -52.5l-76 -194q-41 23 -109.5 41t-136.5 18q-72 0 -111 -29.5t-39 -76.5q0 -35 32 -56.5t79 -39t102.5 -36t102.5 -49t78.5 -78.5t31.5 -122q0 -98 -50 -169t-111 -114l-105 -32q47 -33 69.5 -75t20.5 -108q-2 -141 -112.5 -218t-292.5 -77q-113 0 -199 28t-135 62z M414 719q0 -63 46 -98t148 -68q47 25 90 65.5t43 98.5q0 35 -12 57.5t-36.5 41t-63.5 33.5t-90 34q-45 -25 -85 -66t-40 -98z" /> +<glyph unicode="¨" horiz-adv-x="966" d="M334 1333q0 68 38 106t97 38t97 -38t38 -106q0 -66 -38 -102.5t-97 -36.5t-97 36.5t-38 102.5zM760 1335q0 66 38 104t97 38t97 -38t38 -104t-38 -103.5t-97 -37.5t-97 37.5t-38 103.5z" /> +<glyph unicode="©" horiz-adv-x="1712" d="M164 594q0 170 57.5 306t156.5 232.5t234.5 148.5t290.5 52q156 0 290 -52t234.5 -148.5t157.5 -232.5t57 -306t-57 -306t-157.5 -232.5t-234.5 -148.5t-290 -52q-170 0 -307 52t-233.5 148.5t-147.5 232.5t-51 306zM362 594q0 -127 41 -229.5t113 -173t171 -108.5 t216 -38t216.5 38t172 108.5t112.5 173t40 229.5t-40 229.5t-112.5 173t-172 108.5t-216.5 38t-216 -38t-171 -108.5t-113 -173t-41 -229.5zM559 594q0 186 93 287.5t247 101.5q76 0 134.5 -17.5t111.5 -47.5l-66 -177q-37 18 -66.5 24.5t-58.5 6.5q-59 0 -94 -40t-35 -138 q0 -86 37 -132t107 -46q39 0 69.5 7t61.5 23l59 -178q-45 -29 -113.5 -46t-146.5 -17q-166 0 -253 104.5t-87 284.5z" /> +<glyph unicode="ª" horiz-adv-x="821" d="M123 944q0 70 30.5 116t82 74.5t119 41t141.5 12.5q25 0 49 -1t49 -3q16 51 -2.5 82.5t-85.5 31.5q-78 0 -132.5 -14t-97.5 -31l-28 127q57 29 147 49.5t207 20.5q123 0 173 -51t50 -127q0 -51 -14 -115.5t-31.5 -132.5t-31 -132.5t-13.5 -113.5h-184l-6 94h-6 q-29 -35 -84.5 -68.5t-141.5 -33.5q-47 0 -82.5 14.5t-59.5 39t-36 56t-12 64.5zM352 991q0 -27 15.5 -44t44.5 -17q61 0 90.5 23.5t50.5 47.5l14 72q-16 2 -33.5 3t-33.5 1q-61 0 -104.5 -18.5t-43.5 -67.5z" /> +<glyph unicode="«" horiz-adv-x="952" d="M63 530l410 471l129 -131l-223 -258l-123 -75l80 -80l123 -258l-158 -121zM442 535l394 442l116 -119l-213 -250l-106 -76l67 -75l115 -248l-153 -111z" /> +<glyph unicode="¬" horiz-adv-x="1079" d="M135 614v230h905v-463h-245v233h-660z" /> +<glyph unicode="­" horiz-adv-x="702" d="M115 483l51 213h489l-51 -213h-489z" /> +<glyph unicode="®" horiz-adv-x="1419" d="M240 924q0 137 46 244.5t124.5 181t184 112.5t222.5 39q121 0 226.5 -39t184.5 -112.5t124 -181t45 -244.5q0 -139 -46 -247t-126 -181.5t-185.5 -111.5t-222.5 -38q-121 0 -226.5 38t-183 111.5t-122.5 181.5t-45 247zM432 924q0 -98 31 -172t84 -123t122.5 -74 t147.5 -25q82 0 152.5 24t123 73t82 122.5t29.5 174.5q0 98 -30.5 171.5t-84 123t-124 74t-148.5 24.5q-86 0 -156.5 -26.5t-122 -78t-79 -124t-27.5 -164.5zM606 659v531q33 10 92.5 15t112.5 5q86 0 147.5 -35.5t61.5 -123.5q0 -66 -42 -101t-104 -39l58 -28l133 -224 h-125l-129 213l-98 31v-244h-107zM713 965h69q59 0 92 18t33 64q0 71 -119 71q-23 0 -43 -1t-32 -7v-145z" /> +<glyph unicode="¯" horiz-adv-x="862" d="M283 1159l39 189h630l-39 -189h-630z" /> +<glyph unicode="°" horiz-adv-x="894" d="M248 1122q0 76 26.5 138.5t72.5 107.5t107.5 69.5t129.5 24.5q70 0 132 -22.5t108 -66.5t73 -107.5t27 -143.5t-27 -142t-73 -105.5t-108.5 -66t-131.5 -22.5q-68 0 -129.5 22.5t-107.5 66t-72.5 105.5t-26.5 142zM453 1122q0 -66 38.5 -103.5t94.5 -37.5q55 0 94 38 t39 103q0 66 -39 106t-94 40t-94 -40t-39 -106z" /> +<glyph unicode="±" horiz-adv-x="1034" d="M119 289v229h903v-229h-903zM119 829v230h332v338h239v-338h332v-230h-332v-217h-239v217h-332z" /> +<glyph unicode="²" horiz-adv-x="823" d="M197 778l32 146q59 37 137.5 90t147 112.5t115.5 122t49 117.5q0 37 -19.5 57.5t-72.5 20.5t-104.5 -18.5t-90.5 -39.5l-28 185q76 43 156.5 62.5t150.5 19.5q117 0 180.5 -53.5t63.5 -151.5q-2 -123 -77 -225.5t-208 -200.5l-103 -51v-8l117 22h207l-45 -207h-608z" /> +<glyph unicode="³" horiz-adv-x="823" d="M213 813l82 184q82 -39 170 -39q100 0 143 38t41 85q0 43 -28.5 61.5t-128.5 20.5h-84l16 78l174 166l94 49l-114 -12h-222l43 194h551l-28 -127l-209 -190l-72 -35v-10l55 6q76 -4 125.5 -53t49.5 -129q0 -86 -32 -149.5t-87.5 -104.5t-131 -61.5t-163.5 -20.5 q-74 0 -138.5 13t-105.5 36z" /> +<glyph unicode="´" horiz-adv-x="546" d="M260 1159l170 316h256l-12 -62l-273 -254h-141z" /> +<glyph unicode="¶" horiz-adv-x="1101" d="M127 1020q0 82 26.5 156.5t76 132t119 91.5t155.5 34h151v-1700h-217v868q-68 0 -125 34t-99 92t-64.5 133t-22.5 159zM817 -266v1700h217v-1700h-217z" /> +<glyph unicode="·" horiz-adv-x="518" d="M150 647q0 72 45 114t118 42q76 0 121 -42t45 -114t-45 -115t-121 -43q-74 0 -118.5 43t-44.5 115z" /> +<glyph unicode="¸" horiz-adv-x="581" d="M-82 -418l41 99q104 -10 143 12t39 51q0 66 -159 61l153 195h162l-68 -88q70 -4 107 -43t37 -98q0 -53 -23.5 -92t-63.5 -65t-94.5 -38t-115.5 -12q-78 0 -158 18z" /> +<glyph unicode="¹" horiz-adv-x="823" d="M244 778l43 205h190l72 336l39 94l-72 -65l-129 -76l-69 149l358 232h168l-143 -670h170l-44 -205h-583z" /> +<glyph unicode="º" horiz-adv-x="817" d="M123 1022q0 111 38 192.5t99.5 136t136 81t148.5 26.5q135 0 205.5 -62.5t70.5 -183.5q0 -117 -34.5 -201.5t-94 -140t-136.5 -82t-159 -26.5q-127 0 -200.5 70.5t-73.5 189.5zM348 1034q-2 -45 20.5 -72.5t65.5 -27.5q68 0 115 70.5t47 181.5q0 100 -88 100 q-35 0 -63.5 -20.5t-51 -54t-35 -80t-10.5 -97.5z" /> +<glyph unicode="»" horiz-adv-x="952" d="M63 219l213 252l107 76l-72 78l-112 247l155 109l219 -428l-391 -451zM414 207l223 258l117 88l-76 80l-127 254l174 114l227 -452l-409 -471z" /> +<glyph unicode="¼" horiz-adv-x="1720" d="M235 1223l367 225h166l-187 -875h-223l115 541l41 94l-74 -65l-129 -74zM383 80l883 1384l174 -102l-880 -1391zM823 160l29 137l542 580h179l-113 -535h147l-38 -182h-148l-35 -160h-196l34 160h-401zM1055 326l106 16h102l37 176l35 109h-10l-64 -100l-123 -136z" /> +<glyph unicode="½" horiz-adv-x="1765" d="M235 1223l367 225h166l-187 -875h-223l115 541l41 94l-74 -65l-129 -74zM385 80l883 1384l174 -102l-880 -1391zM971 0l32 146q59 37 137.5 90t147 112.5t115.5 122t49 117.5q0 37 -19.5 57.5t-72.5 20.5t-104.5 -18.5t-90.5 -39.5l-28 185q76 43 156.5 62.5t150.5 19.5 q117 0 180.5 -53.5t63.5 -151.5q-2 -123 -77 -225.5t-208 -200.5l-103 -51v-8l117 22h207l-45 -207h-608z" /> +<glyph unicode="¾" horiz-adv-x="1769" d="M131 608l82 184q82 -39 170 -39q100 0 143 38t41 85q0 43 -28.5 61.5t-128.5 20.5h-84l16 78l174 166l94 49l-114 -12h-222l43 194h551l-28 -127l-209 -190l-72 -35v-10l55 6q76 -4 125.5 -53t49.5 -129q0 -86 -32 -149.5t-87.5 -104.5t-131 -61.5t-163.5 -20.5 q-74 0 -138.5 13t-105.5 36zM434 80l883 1384l174 -102l-880 -1391zM874 160l29 137l542 580h179l-113 -535h147l-38 -182h-148l-35 -160h-196l34 160h-401zM1106 326l106 16h102l37 176l35 109h-10l-64 -100l-123 -136z" /> +<glyph unicode="¿" horiz-adv-x="880" d="M-47 -166q0 109 32.5 182.5t84 130t114 101.5t118.5 94t100 109.5t61 148.5h217q-12 -109 -50 -187.5t-88 -137t-106.5 -102.5t-102.5 -85t-77 -84t-31 -100q0 -55 32 -86t114 -31q63 0 139 27.5t135 66.5l62 -192q-84 -53 -182.5 -88t-239.5 -35q-172 0 -252 72.5 t-80 195.5zM436 891q0 72 45 114t119 42q76 0 121 -42t45 -114t-45 -115t-121 -43q-74 0 -119 43t-45 115z" /> +<glyph unicode="À" horiz-adv-x="1191" d="M-78 0l797 1444h196l187 -1444h-268l-41 317h-418l-170 -317h-283zM492 543h290l-32 319l2 225h-11l-82 -227zM553 1720l12 62h287l153 -242h-184z" /> +<glyph unicode="Á" horiz-adv-x="1191" d="M-78 0l797 1444h196l187 -1444h-268l-41 317h-418l-170 -317h-283zM492 543h290l-32 319l2 225h-11l-82 -227zM647 1540l256 242h322l-12 -62l-353 -180h-213z" /> +<glyph unicode="Â" horiz-adv-x="1191" d="M-78 0l797 1444h196l187 -1444h-268l-41 317h-418l-170 -317h-283zM479 1511l18 82l297 189h179l206 -191l-16 -80h-180l-92 84l-27 70l-55 -68l-138 -86h-192zM492 543h290l-32 319l2 225h-11l-82 -227z" /> +<glyph unicode="Ã" horiz-adv-x="1191" d="M-78 0l797 1444h196l187 -1444h-268l-41 317h-418l-170 -317h-283zM491 1638q78 72 141.5 98.5t118.5 26.5q43 0 83 -11t78 -24.5t74 -24.5t72 -11q31 0 62 10t63 39l21 -137q-68 -55 -123 -76t-104 -21q-43 0 -81 11.5t-75 23.5t-73 23.5t-75 11.5q-37 0 -76.5 -14.5 t-86.5 -53.5zM492 543h290l-32 319l2 225h-11l-82 -227z" /> +<glyph unicode="Ä" horiz-adv-x="1191" d="M-78 0l797 1444h196l187 -1444h-268l-41 317h-418l-170 -317h-283zM492 543h290l-32 319l2 225h-11l-82 -227zM504 1634q0 59 41 89t106 30q66 0 107 -29.5t41 -89.5q0 -59 -41 -87.5t-107 -28.5t-106.5 28.5t-40.5 87.5zM922 1634q0 59 41 89t106 30q66 0 107 -29.5 t41 -89.5q0 -59 -41 -87.5t-107 -28.5t-106.5 28.5t-40.5 87.5z" /> +<glyph unicode="Å" horiz-adv-x="1191" d="M-78 0l783 1419q-66 23 -92.5 64t-26.5 96q0 37 12 70.5t42 59.5t80 40t128 14q143 0 202.5 -49t59.5 -135q0 -66 -42 -114t-148 -60l182 -1405h-268l-41 317h-418l-170 -317h-283zM492 543h290l-32 319l2 225h-11l-82 -227zM758 1579q0 -63 90 -63q51 0 71.5 16t20.5 47 q0 68 -92 68q-90 0 -90 -68z" /> +<glyph unicode="Æ" horiz-adv-x="1691" d="M-135 0l1120 1434h272h555l-53 -250h-540l-72 -334h493l-53 -250h-491l-74 -350h551l-53 -250h-535h-283l74 348h-350l-262 -348h-299zM592 575h233l107 510h-12l-91 -192z" /> +<glyph unicode="Ç" horiz-adv-x="1099" d="M119 557q0 242 67.5 413t178 280.5t253 160.5t291.5 51q117 0 200 -17.5t130 -39.5l-104 -238q-41 23 -98.5 34t-145.5 11q-104 0 -194.5 -43t-156 -122.5t-103.5 -194.5t-38 -260q0 -174 87 -272.5t233 -98.5q92 0 152.5 19.5t113.5 48.5l4 -230q-133 -86 -321 -88 l-45 -59q70 -4 106.5 -42t36.5 -97q0 -53 -23.5 -92t-63.5 -65t-94.5 -38t-115.5 -12q-78 0 -158 18l41 99q104 -10 143.5 12t39.5 51q0 35 -41 48t-119 11l141 181q-100 20 -175 72.5t-124 128t-73.5 170t-24.5 200.5z" /> +<glyph unicode="È" horiz-adv-x="1030" d="M41 0l303 1434h266h541l-53 -250h-541l-72 -334h494l-55 -250h-490l-76 -350h551l-51 -250h-551h-266zM474 1720l12 62h287l153 -242h-184z" /> +<glyph unicode="É" horiz-adv-x="1030" d="M41 0l303 1434h266h541l-53 -250h-541l-72 -334h494l-55 -250h-490l-76 -350h551l-51 -250h-551h-266zM610 1540l256 242h322l-12 -62l-353 -180h-213z" /> +<glyph unicode="Ê" horiz-adv-x="1030" d="M41 0l303 1434h266h541l-53 -250h-541l-72 -334h494l-55 -250h-490l-76 -350h551l-51 -250h-551h-266zM420 1511l18 82l297 189h179l206 -191l-16 -80h-180l-92 84l-27 70l-55 -68l-138 -86h-192z" /> +<glyph unicode="Ë" horiz-adv-x="1030" d="M41 0l303 1434h266h541l-53 -250h-541l-72 -334h494l-55 -250h-490l-76 -350h551l-51 -250h-551h-266zM430 1634q0 59 41 89t106 30q66 0 107 -29.5t41 -89.5q0 -59 -41 -87.5t-107 -28.5t-106.5 28.5t-40.5 87.5zM848 1634q0 59 41 89t106 30q66 0 107 -29.5t41 -89.5 q0 -59 -41 -87.5t-107 -28.5t-106.5 28.5t-40.5 87.5z" /> +<glyph unicode="Ì" horiz-adv-x="569" d="M72 0l303 1434h264l-303 -1434h-264zM232 1720l12 62h287l153 -242h-184z" /> +<glyph unicode="Í" horiz-adv-x="569" d="M72 0l303 1434h264l-303 -1434h-264zM364 1540l256 242h322l-12 -62l-353 -180h-213z" /> +<glyph unicode="Î" horiz-adv-x="569" d="M72 0l303 1434h264l-303 -1434h-264zM178 1511l18 82l297 189h179l206 -191l-16 -80h-180l-92 84l-27 70l-55 -68l-138 -86h-192z" /> +<glyph unicode="Ï" horiz-adv-x="569" d="M72 0l303 1434h264l-303 -1434h-264zM188 1634q0 59 41 89t106 30q66 0 107 -29.5t41 -89.5q0 -59 -41 -87.5t-107 -28.5t-106.5 28.5t-40.5 87.5zM606 1634q0 59 41 89t106 30q66 0 107 -29.5t41 -89.5q0 -59 -41 -87.5t-107 -28.5t-106.5 28.5t-40.5 87.5z" /> +<glyph unicode="Ð" horiz-adv-x="1310" d="M47 657l35 164h174l129 613q43 6 94 10t97.5 6t74.5 2q20 0 53 1t72 1q127 0 229.5 -31.5t175 -97t112.5 -168t40 -244.5q0 -90 -15 -193.5t-52 -207.5t-101.5 -200.5t-162 -170t-233.5 -119t-316 -45.5q-31 0 -59.5 1.5t-45.5 1.5q-37 2 -89 5t-102.5 6t-74.5 7l139 659 h-174zM397 233q8 -2 25.5 -3t38 -2t39 -1h28.5q143 0 243.5 64.5t163 162t90.5 211t28 212.5q0 164 -69 245.5t-230 81.5q-39 0 -84 -2t-70 -6l-80 -375h271l-35 -164h-271z" /> +<glyph unicode="Ñ" horiz-adv-x="1292" d="M41 0l307 1444h184l353 -766l63 -223h13l14 223l162 756h252l-308 -1444h-184l-350 760l-68 229h-10l-18 -229l-158 -750h-252zM530 1638q78 72 141.5 98.5t118.5 26.5q43 0 83 -11t78 -24.5t74 -24.5t72 -11q31 0 62 10t63 39l21 -137q-68 -55 -123 -76t-104 -21 q-43 0 -81 11.5t-75 23.5t-73 23.5t-75 11.5q-37 0 -76.5 -14.5t-86.5 -53.5z" /> +<glyph unicode="Ò" horiz-adv-x="1318" d="M119 537q0 190 52 359t148.5 295t232.5 198.5t304 72.5q111 0 200 -32.5t151.5 -101t97 -173t34.5 -248.5q0 -193 -52 -362.5t-147.5 -297.5t-227.5 -202t-291 -74q-242 0 -371 142.5t-131 423.5zM399 545q0 -147 56.5 -235.5t185.5 -88.5q94 0 171 56.5t132 151.5 t85 218t30 256q0 162 -63.5 235.5t-174.5 73.5q-92 0 -169 -53t-133 -144t-88 -213t-32 -257zM594 1720l12 62h287l153 -242h-184z" /> +<glyph unicode="Ó" horiz-adv-x="1318" d="M119 537q0 190 52 359t148.5 295t232.5 198.5t304 72.5q111 0 200 -32.5t151.5 -101t97 -173t34.5 -248.5q0 -193 -52 -362.5t-147.5 -297.5t-227.5 -202t-291 -74q-242 0 -371 142.5t-131 423.5zM399 545q0 -147 56.5 -235.5t185.5 -88.5q94 0 171 56.5t132 151.5 t85 218t30 256q0 162 -63.5 235.5t-174.5 73.5q-92 0 -169 -53t-133 -144t-88 -213t-32 -257zM749 1540l256 242h322l-12 -62l-353 -180h-213z" /> +<glyph unicode="Ô" horiz-adv-x="1318" d="M119 537q0 190 52 359t148.5 295t232.5 198.5t304 72.5q111 0 200 -32.5t151.5 -101t97 -173t34.5 -248.5q0 -193 -52 -362.5t-147.5 -297.5t-227.5 -202t-291 -74q-242 0 -371 142.5t-131 423.5zM399 545q0 -147 56.5 -235.5t185.5 -88.5q94 0 171 56.5t132 151.5 t85 218t30 256q0 162 -63.5 235.5t-174.5 73.5q-92 0 -169 -53t-133 -144t-88 -213t-32 -257zM551 1511l18 82l297 189h179l206 -191l-16 -80h-180l-92 84l-27 70l-55 -68l-138 -86h-192z" /> +<glyph unicode="Õ" horiz-adv-x="1318" d="M119 537q0 190 52 359t148.5 295t232.5 198.5t304 72.5q111 0 200 -32.5t151.5 -101t97 -173t34.5 -248.5q0 -193 -52 -362.5t-147.5 -297.5t-227.5 -202t-291 -74q-242 0 -371 142.5t-131 423.5zM399 545q0 -147 56.5 -235.5t185.5 -88.5q94 0 171 56.5t132 151.5 t85 218t30 256q0 162 -63.5 235.5t-174.5 73.5q-92 0 -169 -53t-133 -144t-88 -213t-32 -257zM549 1638q78 72 141.5 98.5t118.5 26.5q43 0 83 -11t78 -24.5t74 -24.5t72 -11q31 0 62 10t63 39l21 -137q-68 -55 -123 -76t-104 -21q-43 0 -81 11.5t-75 23.5t-73 23.5 t-75 11.5q-37 0 -76.5 -14.5t-86.5 -53.5z" /> +<glyph unicode="Ö" horiz-adv-x="1318" d="M119 537q0 190 52 359t148.5 295t232.5 198.5t304 72.5q111 0 200 -32.5t151.5 -101t97 -173t34.5 -248.5q0 -193 -52 -362.5t-147.5 -297.5t-227.5 -202t-291 -74q-242 0 -371 142.5t-131 423.5zM399 545q0 -147 56.5 -235.5t185.5 -88.5q94 0 171 56.5t132 151.5 t85 218t30 256q0 162 -63.5 235.5t-174.5 73.5q-92 0 -169 -53t-133 -144t-88 -213t-32 -257zM553 1634q0 59 41 89t106 30q66 0 107 -29.5t41 -89.5q0 -59 -41 -87.5t-107 -28.5t-106.5 28.5t-40.5 87.5zM971 1634q0 59 41 89t106 30q66 0 107 -29.5t41 -89.5 q0 -59 -41 -87.5t-107 -28.5t-106.5 28.5t-40.5 87.5z" /> +<glyph unicode="×" horiz-adv-x="1034" d="M135 426l268 268l-264 260l160 166l268 -266l267 266l161 -166l-266 -260l266 -264l-161 -168l-267 268l-270 -270z" /> +<glyph unicode="Ø" horiz-adv-x="1318" d="M117 121l69 86q-33 66 -50 148t-17 182q0 190 52 359t148.5 295t232.5 198.5t304 72.5q176 0 291 -82l55 66l148 -127l-76 -92q31 -61 48 -141t17 -179q0 -193 -52 -362.5t-147.5 -297.5t-227.5 -202t-291 -74q-184 0 -306 84l-55 -65zM399 506q0 -19 4 -37l568 694 q-59 49 -150 49q-92 0 -169 -53t-133 -144t-88 -213t-32 -257v-39zM489 270q57 -49 152 -49q94 0 171 56.5t132 151.5t85 218t30 256v29.5t-2 28.5z" /> +<glyph unicode="Ù" horiz-adv-x="1232" d="M129 356q0 41 5 84t16 90l192 904h264l-188 -902q-16 -78 -17 -126q0 -98 51.5 -139.5t149.5 -41.5q123 0 190.5 72t102.5 231l192 906h250l-194 -926q-31 -147 -80 -248.5t-119 -165t-164 -91.5t-217 -28q-119 0 -200.5 28t-134 79t-76 120.5t-23.5 153.5zM549 1720 l12 62h287l153 -242h-184z" /> +<glyph unicode="Ú" horiz-adv-x="1232" d="M129 356q0 41 5 84t16 90l192 904h264l-188 -902q-16 -78 -17 -126q0 -98 51.5 -139.5t149.5 -41.5q123 0 190.5 72t102.5 231l192 906h250l-194 -926q-31 -147 -80 -248.5t-119 -165t-164 -91.5t-217 -28q-119 0 -200.5 28t-134 79t-76 120.5t-23.5 153.5zM741 1540 l256 242h322l-12 -62l-353 -180h-213z" /> +<glyph unicode="Û" horiz-adv-x="1232" d="M129 356q0 41 5 84t16 90l192 904h264l-188 -902q-16 -78 -17 -126q0 -98 51.5 -139.5t149.5 -41.5q123 0 190.5 72t102.5 231l192 906h250l-194 -926q-31 -147 -80 -248.5t-119 -165t-164 -91.5t-217 -28q-119 0 -200.5 28t-134 79t-76 120.5t-23.5 153.5zM522 1511 l18 82l297 189h179l206 -191l-16 -80h-180l-92 84l-27 70l-55 -68l-138 -86h-192z" /> +<glyph unicode="Ü" horiz-adv-x="1232" d="M129 356q0 41 5 84t16 90l192 904h264l-188 -902q-16 -78 -17 -126q0 -98 51.5 -139.5t149.5 -41.5q123 0 190.5 72t102.5 231l192 906h250l-194 -926q-31 -147 -80 -248.5t-119 -165t-164 -91.5t-217 -28q-119 0 -200.5 28t-134 79t-76 120.5t-23.5 153.5zM524 1634 q0 59 41 89t106 30q66 0 107 -29.5t41 -89.5q0 -59 -41 -87.5t-107 -28.5t-106.5 28.5t-40.5 87.5zM942 1634q0 59 41 89t106 30q66 0 107 -29.5t41 -89.5q0 -59 -41 -87.5t-107 -28.5t-106.5 28.5t-40.5 87.5z" /> +<glyph unicode="Ý" horiz-adv-x="1165" d="M217 1434h295l133 -539l-4 -152h8l64 156l358 535h305l-637 -899l-112 -535h-265l111 532zM667 1540l256 242h322l-12 -62l-353 -180h-213z" /> +<glyph unicode="Þ" horiz-adv-x="1126" d="M41 0l305 1434h264l-30 -146q27 2 53 2h53q104 0 193.5 -23.5t156 -72.5t103.5 -126t37 -183q0 -160 -55.5 -267.5t-146.5 -174t-208 -94t-238 -27.5h-31.5t-45 1t-45 2t-31.5 3l-68 -328h-266zM428 573q8 -2 22.5 -4t32 -3t32.5 -2t24 -1q70 0 134 14.5t113.5 48t79 89 t29.5 135.5q0 61 -19.5 99t-52 60.5t-77 31t-93.5 8.5q-37 0 -70.5 -3.5t-56.5 -7.5q-25 -119 -49 -233.5t-49 -231.5z" /> +<glyph unicode="ß" horiz-adv-x="1245" d="M-264 -369l69 187q35 -14 70 -18.5t88 -4.5q66 0 101.5 51.5t52.5 153.5l145 815h-168l41 209h166l12 57q25 117 72 188.5t112.5 111.5t147.5 54.5t178 14.5q104 0 176 -22.5t117 -60.5t65.5 -88t20.5 -108q0 -72 -23.5 -123t-58.5 -87.5t-77 -63.5t-76.5 -51.5t-58 -51 t-23.5 -61.5t23.5 -57.5t58 -41t76.5 -39t77 -52t58.5 -79.5t23.5 -122q0 -80 -36 -148.5t-98 -117.5t-147 -77t-184 -28q-84 0 -166 23.5t-133 58.5l115 199q43 -27 91 -47.5t118 -20.5q31 0 61.5 10.5t55 29t40 46t15.5 62.5q0 39 -23.5 64.5t-59.5 46t-78 42t-78 51 t-59.5 72.5t-23.5 109q0 59 23.5 103t59.5 77t77 58.5t77 50t59.5 52t23.5 64.5q0 47 -37 77t-107 30q-98 0 -157.5 -54.5t-81.5 -175.5l-182 -999q-18 -104 -43 -184t-67 -133.5t-103.5 -81t-151.5 -27.5q-74 0 -144.5 11.5t-121.5 45.5z" /> +<glyph unicode="à" horiz-adv-x="1030" d="M68 295q0 150 37.5 287t117.5 241.5t202 167t290 62.5q72 0 156.5 -13.5t164.5 -35.5l-127 -594q-16 -78 -23 -158t-7 -152q0 -29 1 -54.5t3 -47.5h-187l-28 176h-9q-23 -37 -58.5 -72.5t-78.5 -65.5t-91 -47.5t-99 -17.5q-135 0 -199.5 88t-64.5 236zM328 344 q0 -66 21.5 -114t78.5 -48q37 0 69.5 15.5t60.5 40t49.5 53t37.5 53.5l103 477q-23 10 -52.5 15.5t-58.5 5.5q-74 0 -131 -44t-97 -115t-60.5 -160t-20.5 -179zM465 1413l14 62h264l50 -316h-142z" /> +<glyph unicode="á" horiz-adv-x="1030" d="M68 295q0 150 37.5 287t117.5 241.5t202 167t290 62.5q72 0 156.5 -13.5t164.5 -35.5l-127 -594q-16 -78 -23 -158t-7 -152q0 -29 1 -54.5t3 -47.5h-187l-28 176h-9q-23 -37 -58.5 -72.5t-78.5 -65.5t-91 -47.5t-99 -17.5q-135 0 -199.5 88t-64.5 236zM328 344 q0 -66 21.5 -114t78.5 -48q37 0 69.5 15.5t60.5 40t49.5 53t37.5 53.5l103 477q-23 10 -52.5 15.5t-58.5 5.5q-74 0 -131 -44t-97 -115t-60.5 -160t-20.5 -179zM610 1159l170 316h256l-12 -62l-273 -254h-141z" /> +<glyph unicode="â" horiz-adv-x="1030" d="M68 295q0 150 37.5 287t117.5 241.5t202 167t290 62.5q72 0 156.5 -13.5t164.5 -35.5l-127 -594q-16 -78 -23 -158t-7 -152q0 -29 1 -54.5t3 -47.5h-187l-28 176h-9q-23 -37 -58.5 -72.5t-78.5 -65.5t-91 -47.5t-99 -17.5q-135 0 -199.5 88t-64.5 236zM328 344 q0 -66 21.5 -114t78.5 -48q37 0 69.5 15.5t60.5 40t49.5 53t37.5 53.5l103 477q-23 10 -52.5 15.5t-58.5 5.5q-74 0 -131 -44t-97 -115t-60.5 -160t-20.5 -179zM387 1126l320 373h168l137 -373h-197l-49 136l-8 100l-55 -100l-117 -136h-199z" /> +<glyph unicode="ã" horiz-adv-x="1030" d="M68 295q0 150 37.5 287t117.5 241.5t202 167t290 62.5q72 0 156.5 -13.5t164.5 -35.5l-127 -594q-16 -78 -23 -158t-7 -152q0 -29 1 -54.5t3 -47.5h-187l-28 176h-9q-23 -37 -58.5 -72.5t-78.5 -65.5t-91 -47.5t-99 -17.5q-135 0 -199.5 88t-64.5 236zM328 344 q0 -66 21.5 -114t78.5 -48q37 0 69.5 15.5t60.5 40t49.5 53t37.5 53.5l103 477q-23 10 -52.5 15.5t-58.5 5.5q-74 0 -131 -44t-97 -115t-60.5 -160t-20.5 -179zM401 1348q72 76 126 104.5t99 28.5q37 0 69 -14.5t63.5 -31t63.5 -30.5t69 -14q29 0 62.5 12t74.5 43l8 -143 q-66 -66 -117 -91.5t-94 -25.5q-37 0 -69.5 13t-65.5 29.5t-65.5 30t-69.5 13.5q-31 0 -68 -12.5t-78 -45.5z" /> +<glyph unicode="ä" horiz-adv-x="1030" d="M68 295q0 150 37.5 287t117.5 241.5t202 167t290 62.5q72 0 156.5 -13.5t164.5 -35.5l-127 -594q-16 -78 -23 -158t-7 -152q0 -29 1 -54.5t3 -47.5h-187l-28 176h-9q-23 -37 -58.5 -72.5t-78.5 -65.5t-91 -47.5t-99 -17.5q-135 0 -199.5 88t-64.5 236zM328 344 q0 -66 21.5 -114t78.5 -48q37 0 69.5 15.5t60.5 40t49.5 53t37.5 53.5l103 477q-23 10 -52.5 15.5t-58.5 5.5q-74 0 -131 -44t-97 -115t-60.5 -160t-20.5 -179zM348 1333q0 68 38 106t97 38t97 -38t38 -106q0 -66 -38 -102.5t-97 -36.5t-97 36.5t-38 102.5zM774 1335 q0 66 38 104t97 38t97 -38t38 -104t-38 -103.5t-97 -37.5t-97 37.5t-38 103.5z" /> +<glyph unicode="å" horiz-adv-x="1030" d="M68 295q0 150 37.5 287t117.5 241.5t202 167t290 62.5q72 0 156.5 -13.5t164.5 -35.5l-127 -594q-16 -78 -23 -158t-7 -152q0 -29 1 -54.5t3 -47.5h-187l-28 176h-9q-23 -37 -58.5 -72.5t-78.5 -65.5t-91 -47.5t-99 -17.5q-135 0 -199.5 88t-64.5 236zM328 344 q0 -66 21.5 -114t78.5 -48q37 0 69.5 15.5t60.5 40t49.5 53t37.5 53.5l103 477q-23 10 -52.5 15.5t-58.5 5.5q-74 0 -131 -44t-97 -115t-60.5 -160t-20.5 -179zM520 1325q0 86 58.5 141.5t169.5 55.5q104 0 165.5 -50.5t61.5 -146.5q0 -80 -60.5 -136t-166.5 -56 q-109 0 -168.5 52t-59.5 140zM668 1325q0 -33 23.5 -50.5t56.5 -17.5q35 0 57.5 16.5t22.5 51.5t-24 52.5t-56 17.5q-33 0 -56.5 -16.5t-23.5 -53.5z" /> +<glyph unicode="æ" horiz-adv-x="1523" d="M35 242q0 100 45 171.5t123 116.5t180 66.5t219 21.5h33.5t34.5 -2q23 78 22 121q0 49 -30.5 73t-104.5 24q-68 0 -143.5 -16.5t-141.5 -43.5l-36 191q84 41 193.5 60t211.5 19q94 0 159.5 -29.5t92.5 -92.5q59 63 148 97t182 34q86 0 146.5 -19.5t98 -54.5t55 -81 t17.5 -101q0 -115 -54 -184.5t-146.5 -109.5t-213 -54.5t-252.5 -14.5q-2 -16 -3 -31.5t-1 -29.5q0 -92 47.5 -141.5t155.5 -49.5q78 0 146.5 21.5t109.5 46.5l47 -176q-70 -49 -175 -76t-210 -27q-135 0 -218 49.5t-118 137.5h-10q-66 -74 -151.5 -124t-202.5 -50 q-68 0 -116 21.5t-78.5 57t-46 83t-15.5 96.5zM295 303q0 -55 28.5 -79.5t75.5 -24.5q37 0 71 15t62.5 36.5t51 45t37.5 42.5l18 119q-16 2 -33.5 2h-34.5q-117 0 -196.5 -38t-79.5 -118zM915 598q66 0 133.5 3t123 18.5t90 47t34.5 87.5q0 35 -24.5 64.5t-91.5 29.5 q-109 0 -171.5 -73t-93.5 -177z" /> +<glyph unicode="ç" horiz-adv-x="843" d="M70 324q0 172 49 307t130 228t184.5 143.5t211.5 50.5q96 0 152.5 -18.5t101.5 -41.5l-94 -200q-39 23 -81 30.5t-91 7.5q-55 0 -107.5 -35.5t-94.5 -94t-66.5 -136.5t-24.5 -159q0 -104 45 -158.5t119 -54.5q61 0 113.5 19t93.5 44l47 -172q-53 -39 -119 -67.5 t-135 -39.5l-49 -65q70 -4 106.5 -42t36.5 -97q0 -53 -23.5 -92t-63.5 -65t-94.5 -38t-115.5 -12q-78 0 -158 18l41 99q104 -10 143.5 12t39.5 51q0 35 -41 48t-119 11l135 175q-74 12 -125 43.5t-84 77.5t-48 103.5t-15 119.5z" /> +<glyph unicode="è" horiz-adv-x="954" d="M70 340q0 164 51 296t134 224t187.5 142.5t208.5 50.5q84 0 144.5 -21.5t99.5 -59.5t57.5 -87t18.5 -105q0 -84 -43 -147.5t-120 -105.5t-185.5 -63.5t-237.5 -21.5q-16 0 -30.5 1t-30.5 1q-4 -25 -6.5 -44t-2.5 -35q0 -92 48.5 -137.5t136.5 -45.5q90 0 161.5 27 t108.5 53l53 -164q-63 -53 -163.5 -90t-233.5 -37q-166 0 -261 97.5t-95 271.5zM360 604q57 0 122 4t120 19.5t92 45t37 81.5q0 31 -22.5 62.5t-94.5 31.5q-90 0 -156.5 -70t-97.5 -174zM424 1413l14 62h264l50 -316h-142z" /> +<glyph unicode="é" horiz-adv-x="954" d="M70 340q0 164 51 296t134 224t187.5 142.5t208.5 50.5q84 0 144.5 -21.5t99.5 -59.5t57.5 -87t18.5 -105q0 -84 -43 -147.5t-120 -105.5t-185.5 -63.5t-237.5 -21.5q-16 0 -30.5 1t-30.5 1q-4 -25 -6.5 -44t-2.5 -35q0 -92 48.5 -137.5t136.5 -45.5q90 0 161.5 27 t108.5 53l53 -164q-63 -53 -163.5 -90t-233.5 -37q-166 0 -261 97.5t-95 271.5zM360 604q57 0 122 4t120 19.5t92 45t37 81.5q0 31 -22.5 62.5t-94.5 31.5q-90 0 -156.5 -70t-97.5 -174zM577 1159l170 316h256l-12 -62l-273 -254h-141z" /> +<glyph unicode="ê" horiz-adv-x="954" d="M70 340q0 164 51 296t134 224t187.5 142.5t208.5 50.5q84 0 144.5 -21.5t99.5 -59.5t57.5 -87t18.5 -105q0 -84 -43 -147.5t-120 -105.5t-185.5 -63.5t-237.5 -21.5q-16 0 -30.5 1t-30.5 1q-4 -25 -6.5 -44t-2.5 -35q0 -92 48.5 -137.5t136.5 -45.5q90 0 161.5 27 t108.5 53l53 -164q-63 -53 -163.5 -90t-233.5 -37q-166 0 -261 97.5t-95 271.5zM340 1126l320 373h168l137 -373h-197l-49 136l-8 100l-55 -100l-117 -136h-199zM360 604q57 0 122 4t120 19.5t92 45t37 81.5q0 31 -22.5 62.5t-94.5 31.5q-90 0 -156.5 -70t-97.5 -174z" /> +<glyph unicode="ë" horiz-adv-x="954" d="M70 340q0 164 51 296t134 224t187.5 142.5t208.5 50.5q84 0 144.5 -21.5t99.5 -59.5t57.5 -87t18.5 -105q0 -84 -43 -147.5t-120 -105.5t-185.5 -63.5t-237.5 -21.5q-16 0 -30.5 1t-30.5 1q-4 -25 -6.5 -44t-2.5 -35q0 -92 48.5 -137.5t136.5 -45.5q90 0 161.5 27 t108.5 53l53 -164q-63 -53 -163.5 -90t-233.5 -37q-166 0 -261 97.5t-95 271.5zM334 1333q0 68 38 106t97 38t97 -38t38 -106q0 -66 -38 -102.5t-97 -36.5t-97 36.5t-38 102.5zM360 604q57 0 122 4t120 19.5t92 45t37 81.5q0 31 -22.5 62.5t-94.5 31.5q-90 0 -156.5 -70 t-97.5 -174zM760 1335q0 66 38 104t97 38t97 -38t38 -104t-38 -103.5t-97 -37.5t-97 37.5t-38 103.5z" /> +<glyph unicode="ì" horiz-adv-x="524" d="M55 0l217 1024h252l-217 -1024h-252zM215 1413l14 62h264l50 -316h-142z" /> +<glyph unicode="í" horiz-adv-x="524" d="M55 0l217 1024h252l-217 -1024h-252zM315 1159l170 316h256l-12 -62l-273 -254h-141z" /> +<glyph unicode="î" horiz-adv-x="524" d="M55 0l217 1024h252l-217 -1024h-252zM98 1126l320 373h168l137 -373h-197l-49 136l-8 100l-55 -100l-117 -136h-199z" /> +<glyph unicode="ï" horiz-adv-x="524" d="M55 0l217 1024h252l-217 -1024h-252zM113 1333q0 68 38 106t97 38t97 -38t38 -106q0 -66 -38 -102.5t-97 -36.5t-97 36.5t-38 102.5zM539 1335q0 66 38 104t97 38t97 -38t38 -104t-38 -103.5t-97 -37.5t-97 37.5t-38 103.5z" /> +<glyph unicode="ð" horiz-adv-x="1040" d="M76 352q0 143 42 266t112.5 213.5t163.5 140.5t198 50q141 0 207 -78q4 66 -8.5 120t-34.5 101l-154 -63l-65 110l143 60q-37 37 -81 63.5t-91 42.5l199 84q92 -35 167 -110l150 61l57 -110l-131 -56q35 -63 55.5 -141t20.5 -170q0 -252 -48 -434.5t-130 -300 t-189.5 -174t-226.5 -56.5q-164 0 -260 97.5t-96 283.5zM336 362q0 -86 33.5 -133t93.5 -47q80 0 136 57.5t91 140.5t51.5 177t14.5 166q-16 41 -54 65.5t-92 24.5q-61 0 -111 -39t-86 -102.5t-56.5 -144.5t-20.5 -165z" /> +<glyph unicode="ñ" horiz-adv-x="1067" d="M29 0l217 1024h190l-10 -180h8q27 33 63 69.5t83 67.5t105.5 51.5t131.5 20.5q92 0 147.5 -50.5t55.5 -166.5q0 -31 -3 -66t-13 -76l-148 -694h-252l136 635q12 57 12 100q0 45 -18.5 70.5t-67.5 25.5q-37 0 -74 -18t-69.5 -49t-61.5 -69t-49 -77l-131 -618h-252z M414 1348q72 76 126 104.5t99 28.5q37 0 69 -14.5t63.5 -31t63.5 -30.5t69 -14q29 0 62.5 12t74.5 43l8 -143q-66 -66 -117 -91.5t-94 -25.5q-37 0 -69.5 13t-65.5 29.5t-65.5 30t-69.5 13.5q-31 0 -68 -12.5t-78 -45.5z" /> +<glyph unicode="ò" horiz-adv-x="1015" d="M70 332q0 162 46 295t122.5 227t178 146.5t212.5 52.5q98 0 165.5 -31t109.5 -82t60.5 -116.5t18.5 -135.5q0 -160 -45 -292t-121 -226t-176 -146.5t-211 -52.5q-96 0 -163.5 32t-111.5 83t-64.5 115.5t-20.5 130.5zM330 367q0 -184 133 -185q49 0 96 43t84 113t58.5 158 t21.5 176q0 82 -27.5 126t-103.5 44q-49 0 -96 -41t-84 -107.5t-59.5 -152.5t-22.5 -174zM440 1413l14 62h264l50 -316h-142z" /> +<glyph unicode="ó" horiz-adv-x="1015" d="M70 332q0 162 46 295t122.5 227t178 146.5t212.5 52.5q98 0 165.5 -31t109.5 -82t60.5 -116.5t18.5 -135.5q0 -160 -45 -292t-121 -226t-176 -146.5t-211 -52.5q-96 0 -163.5 32t-111.5 83t-64.5 115.5t-20.5 130.5zM330 367q0 -184 133 -185q49 0 96 43t84 113t58.5 158 t21.5 176q0 82 -27.5 126t-103.5 44q-49 0 -96 -41t-84 -107.5t-59.5 -152.5t-22.5 -174zM573 1159l170 316h256l-12 -62l-273 -254h-141z" /> +<glyph unicode="ô" horiz-adv-x="1015" d="M70 332q0 162 46 295t122.5 227t178 146.5t212.5 52.5q98 0 165.5 -31t109.5 -82t60.5 -116.5t18.5 -135.5q0 -160 -45 -292t-121 -226t-176 -146.5t-211 -52.5q-96 0 -163.5 32t-111.5 83t-64.5 115.5t-20.5 130.5zM330 367q0 -184 133 -185q49 0 96 43t84 113t58.5 158 t21.5 176q0 82 -27.5 126t-103.5 44q-49 0 -96 -41t-84 -107.5t-59.5 -152.5t-22.5 -174zM334 1126l320 373h168l137 -373h-197l-49 136l-8 100l-55 -100l-117 -136h-199z" /> +<glyph unicode="õ" horiz-adv-x="1015" d="M70 332q0 162 46 295t122.5 227t178 146.5t212.5 52.5q98 0 165.5 -31t109.5 -82t60.5 -116.5t18.5 -135.5q0 -160 -45 -292t-121 -226t-176 -146.5t-211 -52.5q-96 0 -163.5 32t-111.5 83t-64.5 115.5t-20.5 130.5zM330 367q0 -184 133 -185q49 0 96 43t84 113t58.5 158 t21.5 176q0 82 -27.5 126t-103.5 44q-49 0 -96 -41t-84 -107.5t-59.5 -152.5t-22.5 -174zM364 1348q72 76 126 104.5t99 28.5q37 0 69 -14.5t63.5 -31t63.5 -30.5t69 -14q29 0 62.5 12t74.5 43l8 -143q-66 -66 -117 -91.5t-94 -25.5q-37 0 -69.5 13t-65.5 29.5t-65.5 30 t-69.5 13.5q-31 0 -68 -12.5t-78 -45.5z" /> +<glyph unicode="ö" horiz-adv-x="1015" d="M70 332q0 162 46 295t122.5 227t178 146.5t212.5 52.5q98 0 165.5 -31t109.5 -82t60.5 -116.5t18.5 -135.5q0 -160 -45 -292t-121 -226t-176 -146.5t-211 -52.5q-96 0 -163.5 32t-111.5 83t-64.5 115.5t-20.5 130.5zM330 367q0 -184 133 -185q49 0 96 43t84 113t58.5 158 t21.5 176q0 82 -27.5 126t-103.5 44q-49 0 -96 -41t-84 -107.5t-59.5 -152.5t-22.5 -174zM334 1333q0 68 38 106t97 38t97 -38t38 -106q0 -66 -38 -102.5t-97 -36.5t-97 36.5t-38 102.5zM760 1335q0 66 38 104t97 38t97 -38t38 -104t-38 -103.5t-97 -37.5t-97 37.5 t-38 103.5z" /> +<glyph unicode="÷" horiz-adv-x="1034" d="M119 578v229h905v-229h-905zM408 285q0 72 45 114t118 42q76 0 121 -42t45 -114t-45 -115t-121 -43q-74 0 -118.5 43t-44.5 115zM408 1093q0 72 45 114t118 42q76 0 121 -42t45 -114t-45 -115t-121 -43q-74 0 -118.5 43t-44.5 115z" /> +<glyph unicode="ø" horiz-adv-x="1015" d="M0 74l96 110q-26 68 -26 148q0 162 46 295t122.5 227t178 146.5t212.5 52.5q66 0 117 -14.5t90 -39.5l69 78l131 -121l-86 -96q33 -78 33 -172q0 -160 -45 -292t-121 -226t-176 -146.5t-211 -52.5q-70 0 -124 17.5t-95 46.5l-76 -84zM330 397l360 406q-33 39 -98 39 q-47 0 -92 -38t-81 -99.5t-60.5 -141.5t-28.5 -166zM360 233q33 -51 103 -51q47 0 92 40t81 104.5t59.5 146.5t27.5 166z" /> +<glyph unicode="ù" horiz-adv-x="1048" d="M80 197q0 76 20 165l142 662h252l-134 -633q-12 -61 -12 -102t16.5 -63.5t57.5 -22.5q35 0 70.5 17.5t68.5 45t60.5 61t46.5 66.5l131 631h252l-129 -614q-10 -41 -17.5 -96.5t-13.5 -114t-8 -111.5t0 -88h-203l-10 184h-8q-29 -39 -67 -76.5t-84 -68.5t-100.5 -49.5 t-115.5 -18.5q-96 0 -155.5 48.5t-59.5 177.5zM434 1413l14 62h264l50 -316h-142z" /> +<glyph unicode="ú" horiz-adv-x="1048" d="M80 197q0 76 20 165l142 662h252l-134 -633q-12 -61 -12 -102t16.5 -63.5t57.5 -22.5q35 0 70.5 17.5t68.5 45t60.5 61t46.5 66.5l131 631h252l-129 -614q-10 -41 -17.5 -96.5t-13.5 -114t-8 -111.5t0 -88h-203l-10 184h-8q-29 -39 -67 -76.5t-84 -68.5t-100.5 -49.5 t-115.5 -18.5q-96 0 -155.5 48.5t-59.5 177.5zM549 1159l170 316h256l-12 -62l-273 -254h-141z" /> +<glyph unicode="û" horiz-adv-x="1048" d="M80 197q0 76 20 165l142 662h252l-134 -633q-12 -61 -12 -102t16.5 -63.5t57.5 -22.5q35 0 70.5 17.5t68.5 45t60.5 61t46.5 66.5l131 631h252l-129 -614q-10 -41 -17.5 -96.5t-13.5 -114t-8 -111.5t0 -88h-203l-10 184h-8q-29 -39 -67 -76.5t-84 -68.5t-100.5 -49.5 t-115.5 -18.5q-96 0 -155.5 48.5t-59.5 177.5zM346 1126l320 373h168l137 -373h-197l-49 136l-8 100l-55 -100l-117 -136h-199z" /> +<glyph unicode="ü" horiz-adv-x="1048" d="M80 197q0 76 20 165l142 662h252l-134 -633q-12 -61 -12 -102t16.5 -63.5t57.5 -22.5q35 0 70.5 17.5t68.5 45t60.5 61t46.5 66.5l131 631h252l-129 -614q-10 -41 -17.5 -96.5t-13.5 -114t-8 -111.5t0 -88h-203l-10 184h-8q-29 -39 -67 -76.5t-84 -68.5t-100.5 -49.5 t-115.5 -18.5q-96 0 -155.5 48.5t-59.5 177.5zM352 1333q0 68 38 106t97 38t97 -38t38 -106q0 -66 -38 -102.5t-97 -36.5t-97 36.5t-38 102.5zM778 1335q0 66 38 104t97 38t97 -38t38 -104t-38 -103.5t-97 -37.5t-97 37.5t-38 103.5z" /> +<glyph unicode="ý" horiz-adv-x="925" d="M-35 -389l68 201q12 -6 25.5 -8.5t25.5 -2.5q49 0 100.5 47.5t102.5 151.5l-193 1024h289l59 -575l2 -160h13l55 162l279 573h268l-492 -920q-61 -115 -115.5 -211t-109.5 -165.5t-114.5 -108.5t-127.5 -39q-90 0 -135 31zM506 1159l170 316h256l-12 -62l-273 -254h-141z " /> +<glyph unicode="þ" horiz-adv-x="1036" d="M-53 -410l391 1844h252l-127 -549h8q25 33 55.5 63.5t69.5 53t86 37t106 14.5q104 0 168 -72t64 -225q0 -174 -46 -318.5t-123 -248t-180.5 -161t-215.5 -57.5q-53 0 -100.5 10.5t-69.5 26.5l-88 -418h-250zM328 217q51 -35 114 -35t119.5 43t98.5 115t67 167t25 200 q0 59 -23.5 97t-71.5 38q-37 0 -71.5 -18.5t-65.5 -46t-55.5 -62.5t-42.5 -68z" /> +<glyph unicode="ÿ" horiz-adv-x="925" d="M-35 -389l68 201q12 -6 25.5 -8.5t25.5 -2.5q49 0 100.5 47.5t102.5 151.5l-193 1024h289l59 -575l2 -160h13l55 162l279 573h268l-492 -920q-61 -115 -115.5 -211t-109.5 -165.5t-114.5 -108.5t-127.5 -39q-90 0 -135 31zM268 1333q0 68 38 106t97 38t97 -38t38 -106 q0 -66 -38 -102.5t-97 -36.5t-97 36.5t-38 102.5zM694 1335q0 66 38 104t97 38t97 -38t38 -104t-38 -103.5t-97 -37.5t-97 37.5t-38 103.5z" /> +<glyph unicode="Œ" horiz-adv-x="1796" d="M119 537q0 215 55 387t155.5 291.5t238 183t300.5 63.5q78 0 134.5 -8t107.5 -20h807l-53 -250h-541l-72 -334h494l-53 -250h-492l-74 -350h549l-51 -250h-817q-41 -14 -95.5 -21.5t-111.5 -7.5q-88 0 -174 27t-154.5 91.5t-110.5 174t-42 273.5zM399 545 q0 -53 10.5 -109.5t38 -104.5t77.5 -79t130 -31q57 0 101.5 7.5t105.5 31.5l191 901q-37 25 -87.5 38t-131.5 13q-96 0 -175 -49t-137.5 -137t-90.5 -211t-32 -270z" /> +<glyph unicode="œ" horiz-adv-x="1574" d="M70 332q0 162 46 295t123.5 227t179 146.5t212.5 52.5t181.5 -45t109.5 -123q61 72 148 120t202 48q84 0 144.5 -21.5t99 -59.5t57 -87t18.5 -105q0 -84 -43 -147.5t-119.5 -105.5t-185 -63.5t-237.5 -21.5q-16 0 -30.5 1t-31.5 1q-4 -25 -6 -44t-2 -35q0 -92 48 -137.5 t136 -45.5q90 0 162 27t109 53l53 -164q-63 -53 -163.5 -90t-233.5 -37q-59 0 -106.5 13.5t-82.5 37t-59.5 52t-38.5 59.5q-51 -70 -139.5 -116t-192.5 -46q-96 0 -163.5 32t-110.5 83t-63.5 115.5t-20.5 130.5zM330 367q0 -184 133 -185q49 0 96 43t84 113t58.5 158 t21.5 176q0 82 -27.5 126t-103.5 44q-49 0 -96 -41t-84 -107.5t-59.5 -152.5t-22.5 -174zM981 604q57 0 121.5 4t120 19.5t92.5 45t37 81.5q0 31 -22.5 62.5t-94.5 31.5q-90 0 -156.5 -70t-97.5 -174z" /> +<glyph unicode="Ÿ" horiz-adv-x="1165" d="M217 1434h295l133 -539l-4 -152h8l64 156l358 535h305l-637 -899l-112 -535h-265l111 532zM492 1634q0 59 41 89t106 30q66 0 107 -29.5t41 -89.5q0 -59 -41 -87.5t-107 -28.5t-106.5 28.5t-40.5 87.5zM910 1634q0 59 41 89t106 30q66 0 107 -29.5t41 -89.5 q0 -59 -41 -87.5t-107 -28.5t-106.5 28.5t-40.5 87.5z" /> +<glyph unicode="ˆ" horiz-adv-x="815" d="M264 1126l320 373h168l137 -373h-197l-49 136l-8 100l-55 -100l-117 -136h-199z" /> +<glyph unicode="˜" horiz-adv-x="714" d="M258 1348q72 76 126 104.5t99 28.5q37 0 69 -14.5t63.5 -31t63.5 -30.5t69 -14q29 0 62.5 12t74.5 43l8 -143q-66 -66 -117 -91.5t-94 -25.5q-37 0 -69.5 13t-65.5 29.5t-65.5 30t-69.5 13.5q-31 0 -68 -12.5t-78 -45.5z" /> +<glyph unicode=" " horiz-adv-x="891" /> +<glyph unicode=" " horiz-adv-x="1782" /> +<glyph unicode=" " horiz-adv-x="891" /> +<glyph unicode=" " horiz-adv-x="1782" /> +<glyph unicode=" " horiz-adv-x="594" /> +<glyph unicode=" " horiz-adv-x="445" /> +<glyph unicode=" " horiz-adv-x="297" /> +<glyph unicode=" " horiz-adv-x="297" /> +<glyph unicode=" " horiz-adv-x="222" /> +<glyph unicode=" " horiz-adv-x="356" /> +<glyph unicode=" " horiz-adv-x="99" /> +<glyph unicode="‐" horiz-adv-x="702" d="M115 483l51 213h489l-51 -213h-489z" /> +<glyph unicode="‑" horiz-adv-x="702" d="M115 483l51 213h489l-51 -213h-489z" /> +<glyph unicode="‒" horiz-adv-x="702" d="M115 483l51 213h489l-51 -213h-489z" /> +<glyph unicode="–" horiz-adv-x="1284" d="M215 483l51 213h858l-51 -213h-858z" /> +<glyph unicode="—" horiz-adv-x="1595" d="M215 483l51 213h1170l-52 -213h-1169z" /> +<glyph unicode="‘" horiz-adv-x="440" d="M203 1282q0 82 34.5 145.5t83 107.5t96.5 69.5t77 31.5l38 -110q-41 -16 -76.5 -52t-47.5 -77q35 0 57 -31t22 -74q0 -80 -47 -118.5t-102 -38.5q-35 0 -60.5 13t-42 34.5t-24.5 47t-8 52.5z" /> +<glyph unicode="’" horiz-adv-x="440" d="M203 1061q43 18 78.5 49t50.5 78q-37 4 -61.5 34t-22.5 83q0 37 15.5 64.5t38 46t49 27.5t50.5 9q72 0 103 -37t31 -100q0 -84 -32 -147.5t-78 -108.5t-96 -71.5t-87 -39.5z" /> +<glyph unicode="‚" horiz-adv-x="462" d="M17 -131q43 18 78.5 49t50.5 78q-37 4 -61.5 34t-22.5 83q0 37 15.5 64.5t38 46t49 27.5t50.5 9q72 0 103 -37t31 -100q0 -84 -32 -147.5t-78 -108.5t-96 -71.5t-87 -39.5z" /> +<glyph unicode="“" horiz-adv-x="776" d="M203 1282q0 82 34.5 145.5t83 107.5t96.5 69.5t77 31.5l38 -110q-41 -16 -76.5 -52t-47.5 -77q35 0 57 -31t22 -74q0 -80 -47 -118.5t-102 -38.5q-35 0 -60.5 13t-42 34.5t-24.5 47t-8 52.5zM539 1282q0 82 34.5 145.5t83 107.5t96.5 69.5t77 31.5l38 -110 q-41 -16 -76.5 -52t-47.5 -77q35 0 57 -31t22 -74q0 -80 -47 -118.5t-102 -38.5q-35 0 -60.5 13t-42 34.5t-24.5 47t-8 52.5z" /> +<glyph unicode="”" horiz-adv-x="776" d="M203 1061q43 18 78.5 49t50.5 78q-37 4 -61.5 34t-22.5 83q0 37 15.5 64.5t38 46t49 27.5t50.5 9q72 0 103 -37t31 -100q0 -84 -32 -147.5t-78 -108.5t-96 -71.5t-87 -39.5zM537 1061q43 18 78.5 49t50.5 78q-37 4 -61.5 34t-22.5 83q0 37 15.5 64.5t38 46t49 27.5 t50.5 9q72 0 103 -37t31 -100q0 -84 -32 -147.5t-78 -108.5t-96 -71.5t-87 -39.5z" /> +<glyph unicode="„" horiz-adv-x="796" d="M17 -131q43 18 78.5 49t50.5 78q-37 4 -61.5 34t-22.5 83q0 37 15.5 64.5t38 46t49 27.5t50.5 9q72 0 103 -37t31 -100q0 -84 -32 -147.5t-78 -108.5t-96 -71.5t-87 -39.5zM348 -131q43 18 78.5 49t50.5 78q-37 4 -61.5 34t-22.5 83q0 37 15.5 64.5t38 46t49 27.5t50.5 9 q72 0 103 -37t31 -100q0 -84 -32 -147.5t-78 -108.5t-96 -71.5t-87 -39.5z" /> +<glyph unicode="•" horiz-adv-x="925" d="M201 637q0 70 24.5 127t66.5 98t98 64.5t122 23.5t123 -21.5t99 -61.5t66.5 -98t24.5 -132t-24.5 -131t-66.5 -97t-99 -61.5t-123 -21.5t-122 21.5t-98 61.5t-66.5 97t-24.5 131z" /> +<glyph unicode="…" horiz-adv-x="1574" d="M39 135q0 72 45 114t118 42q76 0 121 -42t45 -114t-45 -115t-121 -43q-74 0 -118.5 43t-44.5 115zM566 135q0 72 45 114t118 42q76 0 121 -42t45 -114t-45 -115t-121 -43q-74 0 -118.5 43t-44.5 115zM1096 135q0 72 45 114t118 42q76 0 121 -42t45 -114t-45 -115 t-121 -43q-74 0 -118.5 43t-44.5 115z" /> +<glyph unicode=" " horiz-adv-x="356" /> +<glyph unicode="‹" horiz-adv-x="600" d="M66 530l409 471l123 -131l-217 -258l-113 -80l74 -75l123 -252l-172 -127z" /> +<glyph unicode="›" horiz-adv-x="600" d="M63 203l222 260l112 84l-71 80l-127 254l176 120l225 -452l-410 -471z" /> +<glyph unicode=" " horiz-adv-x="445" /> +<glyph unicode="€" d="M-12 473l104 191h133q8 61 21 118h-195l107 191h147q68 156 172 262q115 119 252 173t260 54q100 0 174 -19.5t123 -47.5l-108 -185q-37 18 -91.5 28.5t-130.5 10.5q-80 0 -169 -43t-164 -131q-39 -45 -70 -102h520l-94 -191h-500q-12 -55 -20 -118h454l-94 -191h-364 q4 -45 12 -84q14 -63 50 -109.5t94.5 -71t148.5 -24.5q76 0 137 18.5t115 47.5l35 -187q-70 -45 -170.5 -68.5t-198.5 -23.5q-121 0 -208 38t-144.5 105.5t-83.5 159.5q-27 90 -27 199h-227z" /> +<glyph unicode="™" horiz-adv-x="1951" d="M188 1208v226h748v-226h-242v-512h-264v512h-242zM1008 696v738h266l186 -308l49 -129h2l52 133l172 304h264v-738h-232v295l33 211h-10l-74 -174l-139 -240h-160l-141 234l-78 180h-12l49 -209v-297h-227z" /> +<glyph unicode="◼" horiz-adv-x="1024" d="M0 0v1024h1024v-1024h-1024z" /> +<hkern u1=":" u2="/" k="-41" /> +<hkern u1="B" u2="T" k="59" /> +<hkern u1="D" u2="J" k="43" /> +<hkern u1="O" u2="J" k="43" /> +<hkern u1="Q" u2="J" k="43" /> +<hkern u1="T" u2="™" k="-33" /> +<hkern u1="T" u2="…" k="215" /> +<hkern u1="T" u2="„" k="225" /> +<hkern u1="T" u2="‚" k="225" /> +<hkern u1="T" u2="—" k="250" /> +<hkern u1="T" u2="–" k="250" /> +<hkern u1="T" u2="Ÿ" k="137" /> +<hkern u1="T" u2="œ" k="213" /> +<hkern u1="T" u2="Œ" k="78" /> +<hkern u1="T" u2="ÿ" k="213" /> +<hkern u1="T" u2="ý" k="213" /> +<hkern u1="T" u2="ü" k="33" /> +<hkern u1="T" u2="û" k="33" /> +<hkern u1="T" u2="ú" k="33" /> +<hkern u1="T" u2="ù" k="33" /> +<hkern u1="T" u2="ø" k="213" /> +<hkern u1="T" u2="ö" k="72" /> +<hkern u1="T" u2="õ" k="102" /> +<hkern u1="T" u2="ô" k="150" /> +<hkern u1="T" u2="ó" k="238" /> +<hkern u1="T" u2="ò" k="168" /> +<hkern u1="T" u2="ñ" k="33" /> +<hkern u1="T" u2="ð" k="119" /> +<hkern u1="T" u2="ï" k="33" /> +<hkern u1="T" u2="î" k="33" /> +<hkern u1="T" u2="í" k="33" /> +<hkern u1="T" u2="ì" k="33" /> +<hkern u1="T" u2="ë" k="61" /> +<hkern u1="T" u2="ê" k="145" /> +<hkern u1="T" u2="é" k="213" /> +<hkern u1="T" u2="è" k="178" /> +<hkern u1="T" u2="ç" k="213" /> +<hkern u1="T" u2="æ" k="221" /> +<hkern u1="T" u2="å" k="213" /> +<hkern u1="T" u2="ä" k="78" /> +<hkern u1="T" u2="ã" k="119" /> +<hkern u1="T" u2="â" k="190" /> +<hkern u1="T" u2="á" k="213" /> +<hkern u1="T" u2="à" k="213" /> +<hkern u1="T" u2="Ý" k="137" /> +<hkern u1="T" u2="Ø" k="78" /> +<hkern u1="T" u2="Ö" k="78" /> +<hkern u1="T" u2="Õ" k="78" /> +<hkern u1="T" u2="Ô" k="78" /> +<hkern u1="T" u2="Ó" k="78" /> +<hkern u1="T" u2="Ò" k="78" /> +<hkern u1="T" u2="Ç" k="78" /> +<hkern u1="T" u2="Æ" k="231" /> +<hkern u1="T" u2="Å" k="154" /> +<hkern u1="T" u2="Ä" k="154" /> +<hkern u1="T" u2="Ã" k="154" /> +<hkern u1="T" u2="Â" k="154" /> +<hkern u1="T" u2="Á" k="154" /> +<hkern u1="T" u2="À" k="154" /> +<hkern u1="T" u2="®" k="-33" /> +<hkern u1="T" u2="­" k="250" /> +<hkern u1="T" u2=" " k="78" /> +<hkern u1="T" u2="}" k="-27" /> +<hkern u1="T" u2="z" k="205" /> +<hkern u1="T" u2="y" k="213" /> +<hkern u1="T" u2="x" k="231" /> +<hkern u1="T" u2="w" k="197" /> +<hkern u1="T" u2="v" k="213" /> +<hkern u1="T" u2="u" k="221" /> +<hkern u1="T" u2="t" k="72" /> +<hkern u1="T" u2="s" k="221" /> +<hkern u1="T" u2="r" k="221" /> +<hkern u1="T" u2="q" k="213" /> +<hkern u1="T" u2="p" k="221" /> +<hkern u1="T" u2="o" k="213" /> +<hkern u1="T" u2="n" k="221" /> +<hkern u1="T" u2="m" k="221" /> +<hkern u1="T" u2="j" k="33" /> +<hkern u1="T" u2="i" k="33" /> +<hkern u1="T" u2="g" k="213" /> +<hkern u1="T" u2="e" k="213" /> +<hkern u1="T" u2="d" k="213" /> +<hkern u1="T" u2="c" k="213" /> +<hkern u1="T" u2="a" k="213" /> +<hkern u1="T" u2="]" k="-27" /> +<hkern u1="T" u2="Z" k="96" /> +<hkern u1="T" u2="Y" k="137" /> +<hkern u1="T" u2="X" k="90" /> +<hkern u1="T" u2="W" k="57" /> +<hkern u1="T" u2="V" k="63" /> +<hkern u1="T" u2="T" k="-41" /> +<hkern u1="T" u2="Q" k="78" /> +<hkern u1="T" u2="O" k="78" /> +<hkern u1="T" u2="G" k="78" /> +<hkern u1="T" u2="C" k="78" /> +<hkern u1="T" u2="A" k="154" /> +<hkern u1="T" u2="." k="215" /> +<hkern u1="T" u2="-" k="250" /> +<hkern u1="T" u2="," k="215" /> +<hkern u1="T" u2="*" k="-33" /> +<hkern u1="T" u2=")" k="-27" /> +<hkern u1="T" u2=" " k="78" /> +<hkern u1="V" u2="ÿ" k="-27" /> +<hkern u1="V" u2="ö" k="27" /> +<hkern u1="V" u2="õ" k="61" /> +<hkern u1="V" u2="ô" k="96" /> +<hkern u1="V" u2="ò" k="88" /> +<hkern u1="V" u2="ð" k="82" /> +<hkern u1="V" u2="ë" k="20" /> +<hkern u1="V" u2="è" k="88" /> +<hkern u1="V" u2="ä" k="47" /> +<hkern u1="V" u2="ã" k="74" /> +<hkern u1="W" u2="ÿ" k="-27" /> +<hkern u1="W" u2="ö" k="35" /> +<hkern u1="W" u2="õ" k="63" /> +<hkern u1="W" u2="ë" k="23" /> +<hkern u1="W" u2="ä" k="49" /> +<hkern u1="W" u2="ã" k="63" /> +<hkern u1="Y" u2="ö" k="63" /> +<hkern u1="Y" u2="õ" k="104" /> +<hkern u1="Y" u2="ô" k="133" /> +<hkern u1="Y" u2="ò" k="125" /> +<hkern u1="Y" u2="ð" k="125" /> +<hkern u1="Y" u2="ë" k="63" /> +<hkern u1="Y" u2="ê" k="150" /> +<hkern u1="Y" u2="è" k="125" /> +<hkern u1="Y" u2="ä" k="78" /> +<hkern u1="Y" u2="ã" k="119" /> +<hkern u1="a" u2="T" k="246" /> +<hkern u1="n" u2="T" k="281" /> +<hkern u1="w" u2="ð" k="6" /> +<hkern u1="Ð" u2="J" k="43" /> +<hkern u1="Ò" u2="J" k="43" /> +<hkern u1="Ó" u2="J" k="43" /> +<hkern u1="Ô" u2="J" k="43" /> +<hkern u1="Õ" u2="J" k="43" /> +<hkern u1="Ö" u2="J" k="43" /> +<hkern u1="Ø" u2="J" k="43" /> +<hkern u1="Ý" u2="ö" k="63" /> +<hkern u1="Ý" u2="õ" k="104" /> +<hkern u1="Ý" u2="ô" k="133" /> +<hkern u1="Ý" u2="ò" k="125" /> +<hkern u1="Ý" u2="ð" k="125" /> +<hkern u1="Ý" u2="ë" k="63" /> +<hkern u1="Ý" u2="ê" k="150" /> +<hkern u1="Ý" u2="è" k="125" /> +<hkern u1="Ý" u2="ä" k="78" /> +<hkern u1="Ý" u2="ã" k="119" /> +<hkern u1="é" u2="T" k="129" /> +<hkern u1="ê" u2="T" k="129" /> +<hkern u1="ë" u2="T" k="129" /> +<hkern u1="Ÿ" u2="ö" k="63" /> +<hkern u1="Ÿ" u2="õ" k="104" /> +<hkern u1="Ÿ" u2="ô" k="133" /> +<hkern u1="Ÿ" u2="ò" k="125" /> +<hkern u1="Ÿ" u2="ð" k="125" /> +<hkern u1="Ÿ" u2="ë" k="63" /> +<hkern u1="Ÿ" u2="ê" k="150" /> +<hkern u1="Ÿ" u2="è" k="125" /> +<hkern u1="Ÿ" u2="ä" k="78" /> +<hkern u1="Ÿ" u2="ã" k="119" /> +<hkern u1="…" u2=" " k="82" /> +<hkern u1="…" u2=" " k="82" /> +<hkern g1="C,Ccedilla" g2="space,uni00A0" k="78" /> +<hkern g1="C,Ccedilla" g2="hyphen,uni00AD,endash,emdash" k="135" /> +<hkern g1="C,Ccedilla" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="86" /> +<hkern g1="C,Ccedilla" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="63" /> +<hkern g1="C,Ccedilla" g2="T" k="86" /> +<hkern g1="C,Ccedilla" g2="V" k="129" /> +<hkern g1="C,Ccedilla" g2="W" k="51" /> +<hkern g1="C,Ccedilla" g2="X" k="98" /> +<hkern g1="C,Ccedilla" g2="Y,Yacute,Ydieresis" k="106" /> +<hkern g1="C,Ccedilla" g2="Z" k="96" /> +<hkern g1="C,Ccedilla" g2="m,n,p,r,s,u,ae" k="55" /> +<hkern g1="C,Ccedilla" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="63" /> +<hkern g1="C,Ccedilla" g2="t" k="68" /> +<hkern g1="C,Ccedilla" g2="v,y,yacute,ydieresis" k="55" /> +<hkern g1="C,Ccedilla" g2="w" k="45" /> +<hkern g1="C,Ccedilla" g2="AE" k="236" /> +<hkern g1="C,Ccedilla" g2="i,j,igrave,iacute,icircumflex,idieresis,ntilde,ugrave,uacute,ucircumflex,udieresis" k="23" /> +<hkern g1="C,Ccedilla" g2="z" k="16" /> +<hkern g1="L" g2="space,uni00A0" k="98" /> +<hkern g1="L" g2="asterisk" k="319" /> +<hkern g1="L" g2="hyphen,uni00AD,endash,emdash" k="135" /> +<hkern g1="L" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-25" /> +<hkern g1="L" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="180" /> +<hkern g1="L" g2="T" k="254" /> +<hkern g1="L" g2="V" k="231" /> +<hkern g1="L" g2="W" k="168" /> +<hkern g1="L" g2="X" k="276" /> +<hkern g1="L" g2="Y,Yacute,Ydieresis" k="248" /> +<hkern g1="L" g2="Z" k="172" /> +<hkern g1="L" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="47" /> +<hkern g1="L" g2="t" k="59" /> +<hkern g1="L" g2="v,y,yacute,ydieresis" k="174" /> +<hkern g1="L" g2="w" k="113" /> +<hkern g1="L" g2="AE" k="233" /> +<hkern g1="L" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="276" /> +<hkern g1="L" g2="quotesinglbase,quotedblbase" k="-12" /> +<hkern g1="L" g2="registered,trademark" k="352" /> +<hkern g1="L" g2="z" k="27" /> +<hkern g1="L" g2="x" k="23" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="space,uni00A0" k="27" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="parenright,bracketright,braceright" k="33" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="asterisk" k="18" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="comma,period,ellipsis" k="59" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="53" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="T" k="78" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="V" k="74" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="W" k="53" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="X" k="106" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Y,Yacute,Ydieresis" k="92" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Z" k="47" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="t" k="-20" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="v,y,yacute,ydieresis" k="-20" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="w" k="-20" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="AE" k="119" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="78" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="quotesinglbase,quotedblbase" k="78" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="x" k="14" /> +<hkern g1="P,Thorn" g2="space,uni00A0" k="78" /> +<hkern g1="P,Thorn" g2="hyphen,uni00AD,endash,emdash" k="18" /> +<hkern g1="P,Thorn" g2="comma,period,ellipsis" k="254" /> +<hkern g1="P,Thorn" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="150" /> +<hkern g1="P,Thorn" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="23" /> +<hkern g1="P,Thorn" g2="T" k="16" /> +<hkern g1="P,Thorn" g2="V" k="18" /> +<hkern g1="P,Thorn" g2="W" k="12" /> +<hkern g1="P,Thorn" g2="X" k="104" /> +<hkern g1="P,Thorn" g2="Y,Yacute,Ydieresis" k="53" /> +<hkern g1="P,Thorn" g2="Z" k="39" /> +<hkern g1="P,Thorn" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="14" /> +<hkern g1="P,Thorn" g2="t" k="-27" /> +<hkern g1="P,Thorn" g2="v,y,yacute,ydieresis" k="-51" /> +<hkern g1="P,Thorn" g2="w" k="-33" /> +<hkern g1="P,Thorn" g2="AE" k="254" /> +<hkern g1="P,Thorn" g2="quotesinglbase,quotedblbase" k="246" /> +<hkern g1="R" g2="hyphen,uni00AD,endash,emdash" k="78" /> +<hkern g1="R" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="74" /> +<hkern g1="R" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="63" /> +<hkern g1="R" g2="T" k="94" /> +<hkern g1="R" g2="V" k="94" /> +<hkern g1="R" g2="W" k="78" /> +<hkern g1="R" g2="X" k="109" /> +<hkern g1="R" g2="Y,Yacute,Ydieresis" k="117" /> +<hkern g1="R" g2="Z" k="47" /> +<hkern g1="R" g2="m,n,p,r,s,u,ae" k="23" /> +<hkern g1="R" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="100" /> +<hkern g1="R" g2="t" k="27" /> +<hkern g1="R" g2="v,y,yacute,ydieresis" k="23" /> +<hkern g1="R" g2="w" k="16" /> +<hkern g1="R" g2="AE" k="252" /> +<hkern g1="R" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="39" /> +<hkern g1="R" g2="i,j,igrave,iacute,icircumflex,idieresis,ntilde,ugrave,uacute,ucircumflex,udieresis" k="16" /> +<hkern g1="R" g2="z" k="43" /> +<hkern g1="R" g2="x" k="23" /> +<hkern g1="V" g2="space,uni00A0" k="59" /> +<hkern g1="V" g2="asterisk" k="-76" /> +<hkern g1="V" g2="hyphen,uni00AD,endash,emdash" k="104" /> +<hkern g1="V" g2="comma,period,ellipsis" k="217" /> +<hkern g1="V" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="131" /> +<hkern g1="V" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="74" /> +<hkern g1="V" g2="T" k="63" /> +<hkern g1="V" g2="V" k="70" /> +<hkern g1="V" g2="W" k="57" /> +<hkern g1="V" g2="X" k="70" /> +<hkern g1="V" g2="Y,Yacute,Ydieresis" k="80" /> +<hkern g1="V" g2="Z" k="70" /> +<hkern g1="V" g2="m,n,p,r,s,u,ae" k="100" /> +<hkern g1="V" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="119" /> +<hkern g1="V" g2="t" k="20" /> +<hkern g1="V" g2="AE" k="236" /> +<hkern g1="V" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-78" /> +<hkern g1="V" g2="quotesinglbase,quotedblbase" k="207" /> +<hkern g1="V" g2="registered,trademark" k="-27" /> +<hkern g1="V" g2="z" k="72" /> +<hkern g1="V" g2="x" k="57" /> +<hkern g1="W" g2="space,uni00A0" k="53" /> +<hkern g1="W" g2="asterisk" k="-68" /> +<hkern g1="W" g2="hyphen,uni00AD,endash,emdash" k="59" /> +<hkern g1="W" g2="comma,period,ellipsis" k="166" /> +<hkern g1="W" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="86" /> +<hkern g1="W" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="53" /> +<hkern g1="W" g2="T" k="57" /> +<hkern g1="W" g2="V" k="57" /> +<hkern g1="W" g2="W" k="63" /> +<hkern g1="W" g2="X" k="57" /> +<hkern g1="W" g2="Y,Yacute,Ydieresis" k="80" /> +<hkern g1="W" g2="Z" k="63" /> +<hkern g1="W" g2="m,n,p,r,s,u,ae" k="72" /> +<hkern g1="W" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="90" /> +<hkern g1="W" g2="t" k="18" /> +<hkern g1="W" g2="AE" k="188" /> +<hkern g1="W" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-78" /> +<hkern g1="W" g2="quotesinglbase,quotedblbase" k="160" /> +<hkern g1="W" g2="registered,trademark" k="-33" /> +<hkern g1="W" g2="z" k="61" /> +<hkern g1="W" g2="x" k="43" /> +<hkern g1="K,X" g2="space,uni00A0" k="59" /> +<hkern g1="K,X" g2="hyphen,uni00AD,endash,emdash" k="156" /> +<hkern g1="K,X" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="59" /> +<hkern g1="K,X" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="106" /> +<hkern g1="K,X" g2="T" k="90" /> +<hkern g1="K,X" g2="V" k="70" /> +<hkern g1="K,X" g2="W" k="57" /> +<hkern g1="K,X" g2="X" k="70" /> +<hkern g1="K,X" g2="Y,Yacute,Ydieresis" k="78" /> +<hkern g1="K,X" g2="Z" k="27" /> +<hkern g1="K,X" g2="m,n,p,r,s,u,ae" k="23" /> +<hkern g1="K,X" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="74" /> +<hkern g1="K,X" g2="t" k="84" /> +<hkern g1="K,X" g2="v,y,yacute,ydieresis" k="98" /> +<hkern g1="K,X" g2="w" k="82" /> +<hkern g1="K,X" g2="AE" k="246" /> +<hkern g1="K,X" g2="quotesinglbase,quotedblbase" k="-27" /> +<hkern g1="K,X" g2="i,j,igrave,iacute,icircumflex,idieresis,ntilde,ugrave,uacute,ucircumflex,udieresis" k="23" /> +<hkern g1="K,X" g2="z" k="16" /> +<hkern g1="K,X" g2="x" k="23" /> +<hkern g1="Y,Yacute,Ydieresis" g2="space,uni00A0" k="53" /> +<hkern g1="Y,Yacute,Ydieresis" g2="asterisk" k="-47" /> +<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,uni00AD,endash,emdash" k="133" /> +<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,ellipsis" k="229" /> +<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="172" /> +<hkern g1="Y,Yacute,Ydieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="92" /> +<hkern g1="Y,Yacute,Ydieresis" g2="T" k="137" /> +<hkern g1="Y,Yacute,Ydieresis" g2="V" k="80" /> +<hkern g1="Y,Yacute,Ydieresis" g2="W" k="57" /> +<hkern g1="Y,Yacute,Ydieresis" g2="X" k="78" /> +<hkern g1="Y,Yacute,Ydieresis" g2="Y,Yacute,Ydieresis" k="80" /> +<hkern g1="Y,Yacute,Ydieresis" g2="Z" k="113" /> +<hkern g1="Y,Yacute,Ydieresis" g2="m,n,p,r,s,u,ae" k="150" /> +<hkern g1="Y,Yacute,Ydieresis" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="186" /> +<hkern g1="Y,Yacute,Ydieresis" g2="t" k="88" /> +<hkern g1="Y,Yacute,Ydieresis" g2="v,y,yacute,ydieresis" k="49" /> +<hkern g1="Y,Yacute,Ydieresis" g2="w" k="55" /> +<hkern g1="Y,Yacute,Ydieresis" g2="AE" k="240" /> +<hkern g1="Y,Yacute,Ydieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-70" /> +<hkern g1="Y,Yacute,Ydieresis" g2="quotesinglbase,quotedblbase" k="225" /> +<hkern g1="Y,Yacute,Ydieresis" g2="registered,trademark" k="-33" /> +<hkern g1="Y,Yacute,Ydieresis" g2="z" k="115" /> +<hkern g1="Y,Yacute,Ydieresis" g2="x" k="109" /> +<hkern g1="Z" g2="space,uni00A0" k="43" /> +<hkern g1="Z" g2="hyphen,uni00AD,endash,emdash" k="106" /> +<hkern g1="Z" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="49" /> +<hkern g1="Z" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="47" /> +<hkern g1="Z" g2="T" k="47" /> +<hkern g1="Z" g2="V" k="70" /> +<hkern g1="Z" g2="W" k="57" /> +<hkern g1="Z" g2="X" k="53" /> +<hkern g1="Z" g2="Y,Yacute,Ydieresis" k="113" /> +<hkern g1="Z" g2="Z" k="20" /> +<hkern g1="Z" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="43" /> +<hkern g1="Z" g2="t" k="20" /> +<hkern g1="Z" g2="v,y,yacute,ydieresis" k="-27" /> +<hkern g1="Z" g2="AE" k="252" /> +<hkern g1="Z" g2="z" k="23" /> +<hkern g1="c,ccedilla" g2="space,uni00A0" k="61" /> +<hkern g1="c,ccedilla" g2="parenright,bracketright,braceright" k="27" /> +<hkern g1="c,ccedilla" g2="hyphen,uni00AD,endash,emdash" k="55" /> +<hkern g1="c,ccedilla" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="55" /> +<hkern g1="c,ccedilla" g2="v,y,yacute,ydieresis" k="-20" /> +<hkern g1="c,ccedilla" g2="w" k="-14" /> +<hkern g1="c,ccedilla" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="41" /> +<hkern g1="c,ccedilla" g2="x" k="-20" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis,oe" g2="parenright,bracketright,braceright" k="27" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis,oe" g2="T" k="264" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis,oe" g2="t" k="-20" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis,oe" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="94" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis,oe" g2="x" k="16" /> +<hkern g1="f" g2="space,uni00A0" k="23" /> +<hkern g1="f" g2="parenright,bracketright,braceright" k="-176" /> +<hkern g1="f" g2="asterisk" k="-231" /> +<hkern g1="f" g2="hyphen,uni00AD,endash,emdash" k="23" /> +<hkern g1="f" g2="comma,period,ellipsis" k="61" /> +<hkern g1="f" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="-20" /> +<hkern g1="f" g2="t" k="-51" /> +<hkern g1="f" g2="w" k="-23" /> +<hkern g1="f" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-217" /> +<hkern g1="f" g2="quotesinglbase,quotedblbase" k="63" /> +<hkern g1="f" g2="registered,trademark" k="-227" /> +<hkern g1="f" g2="i,j,igrave,iacute,icircumflex,idieresis,ntilde,ugrave,uacute,ucircumflex,udieresis" k="-61" /> +<hkern g1="f" g2="z" k="-27" /> +<hkern g1="f" g2="x" k="-20" /> +<hkern g1="b,o,p,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="parenright,bracketright,braceright" k="57" /> +<hkern g1="b,o,p,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="asterisk" k="61" /> +<hkern g1="b,o,p,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="comma,period,ellipsis" k="23" /> +<hkern g1="b,o,p,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="v,y,yacute,ydieresis" k="37" /> +<hkern g1="b,o,p,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="w" k="12" /> +<hkern g1="b,o,p,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="139" /> +<hkern g1="b,o,p,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="quotesinglbase,quotedblbase" k="23" /> +<hkern g1="b,o,p,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="registered,trademark" k="61" /> +<hkern g1="b,o,p,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="x" k="55" /> +<hkern g1="t" g2="v,y,yacute,ydieresis" k="27" /> +<hkern g1="t" g2="w" k="27" /> +<hkern g1="t" g2="x" k="-33" /> +<hkern g1="v,y,yacute,ydieresis" g2="space,uni00A0" k="27" /> +<hkern g1="v,y,yacute,ydieresis" g2="asterisk" k="-41" /> +<hkern g1="v,y,yacute,ydieresis" g2="comma,period,ellipsis" k="111" /> +<hkern g1="v,y,yacute,ydieresis" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="37" /> +<hkern g1="v,y,yacute,ydieresis" g2="t" k="-45" /> +<hkern g1="v,y,yacute,ydieresis" g2="quotesinglbase,quotedblbase" k="49" /> +<hkern g1="v,y,yacute,ydieresis" g2="z" k="-10" /> +<hkern g1="v,y,yacute,ydieresis" g2="x" k="37" /> +<hkern g1="w" g2="space,uni00A0" k="23" /> +<hkern g1="w" g2="parenright,bracketright,braceright" k="27" /> +<hkern g1="w" g2="asterisk" k="-33" /> +<hkern g1="w" g2="comma,period,ellipsis" k="61" /> +<hkern g1="w" g2="t" k="-41" /> +<hkern g1="w" g2="quotesinglbase,quotedblbase" k="63" /> +<hkern g1="w" g2="z" k="16" /> +<hkern g1="w" g2="x" k="16" /> +<hkern g1="k,x" g2="space,uni00A0" k="55" /> +<hkern g1="k,x" g2="hyphen,uni00AD,endash,emdash" k="68" /> +<hkern g1="k,x" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="55" /> +<hkern g1="k,x" g2="v,y,yacute,ydieresis" k="20" /> +<hkern g1="z" g2="space,uni00A0" k="23" /> +<hkern g1="z" g2="hyphen,uni00AD,endash,emdash" k="27" /> +<hkern g1="z" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="16" /> +<hkern g1="z" g2="v,y,yacute,ydieresis" k="-33" /> +<hkern g1="z" g2="w" k="-27" /> +<hkern g1="space,uni00A0" g2="asterisk" k="72" /> +<hkern g1="space,uni00A0" g2="hyphen,uni00AD,endash,emdash" k="90" /> +<hkern g1="space,uni00A0" g2="comma,period,ellipsis" k="143" /> +<hkern g1="space,uni00A0" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="82" /> +<hkern g1="space,uni00A0" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="27" /> +<hkern g1="space,uni00A0" g2="T" k="74" /> +<hkern g1="space,uni00A0" g2="V" k="61" /> +<hkern g1="space,uni00A0" g2="W" k="51" /> +<hkern g1="space,uni00A0" g2="X" k="61" /> +<hkern g1="space,uni00A0" g2="Y,Yacute,Ydieresis" k="61" /> +<hkern g1="space,uni00A0" g2="Z" k="23" /> +<hkern g1="space,uni00A0" g2="v,y,yacute,ydieresis" k="27" /> +<hkern g1="space,uni00A0" g2="w" k="23" /> +<hkern g1="space,uni00A0" g2="AE" k="45" /> +<hkern g1="space,uni00A0" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="172" /> +<hkern g1="space,uni00A0" g2="quotesinglbase,quotedblbase" k="172" /> +<hkern g1="space,uni00A0" g2="z" k="23" /> +<hkern g1="space,uni00A0" g2="x" k="55" /> +<hkern g1="comma,period,ellipsis" g2="space,uni00A0" k="217" /> +<hkern g1="comma,period,ellipsis" g2="asterisk" k="82" /> +<hkern g1="comma,period,ellipsis" g2="hyphen,uni00AD,endash,emdash" k="240" /> +<hkern g1="comma,period,ellipsis" g2="comma,period,ellipsis" k="-27" /> +<hkern g1="comma,period,ellipsis" g2="T" k="113" /> +<hkern g1="comma,period,ellipsis" g2="V" k="127" /> +<hkern g1="comma,period,ellipsis" g2="W" k="82" /> +<hkern g1="comma,period,ellipsis" g2="Y,Yacute,Ydieresis" k="143" /> +<hkern g1="comma,period,ellipsis" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="23" /> +<hkern g1="comma,period,ellipsis" g2="v,y,yacute,ydieresis" k="109" /> +<hkern g1="comma,period,ellipsis" g2="w" k="63" /> +<hkern g1="comma,period,ellipsis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="287" /> +<hkern g1="comma,period,ellipsis" g2="registered,trademark" k="180" /> +<hkern g1="comma,period,ellipsis" g2="z" k="-16" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="space,uni00A0" k="156" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="parenright,bracketright,braceright" k="70" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="asterisk" k="80" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="hyphen,uni00AD,endash,emdash" k="117" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="comma,period,ellipsis" k="229" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="43" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="T" k="137" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="V" k="57" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="W" k="39" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="X" k="86" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Y,Yacute,Ydieresis" k="80" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Z" k="18" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="AE" k="80" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="362" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="quotesinglbase,quotedblbase" k="231" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="z" k="27" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="x" k="68" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="space,uni00A0" k="176" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="hyphen,uni00AD,endash,emdash" k="391" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="comma,period,ellipsis" k="254" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="250" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="78" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="V" k="-78" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="W" k="-78" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="Y,Yacute,Ydieresis" k="-70" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="123" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="AE" k="389" /> +<hkern g1="quotesinglbase,quotedblbase" g2="space,uni00A0" k="186" /> +<hkern g1="quotesinglbase,quotedblbase" g2="asterisk" k="205" /> +<hkern g1="quotesinglbase,quotedblbase" g2="hyphen,uni00AD,endash,emdash" k="313" /> +<hkern g1="quotesinglbase,quotedblbase" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-27" /> +<hkern g1="quotesinglbase,quotedblbase" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="117" /> +<hkern g1="quotesinglbase,quotedblbase" g2="T" k="242" /> +<hkern g1="quotesinglbase,quotedblbase" g2="V" k="215" /> +<hkern g1="quotesinglbase,quotedblbase" g2="W" k="168" /> +<hkern g1="quotesinglbase,quotedblbase" g2="X" k="-27" /> +<hkern g1="quotesinglbase,quotedblbase" g2="Y,Yacute,Ydieresis" k="242" /> +<hkern g1="quotesinglbase,quotedblbase" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="23" /> +<hkern g1="quotesinglbase,quotedblbase" g2="v,y,yacute,ydieresis" k="104" /> +<hkern g1="quotesinglbase,quotedblbase" g2="w" k="57" /> +<hkern g1="quotesinglbase,quotedblbase" g2="AE" k="-51" /> +<hkern g1="quotesinglbase,quotedblbase" g2="registered,trademark" k="154" /> +<hkern g1="quotesinglbase,quotedblbase" g2="z" k="-27" /> +<hkern g1="parenleft,bracketleft,braceleft" g2="hyphen,uni00AD,endash,emdash" k="70" /> +<hkern g1="parenleft,bracketleft,braceleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="33" /> +<hkern g1="parenleft,bracketleft,braceleft" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="33" /> +<hkern g1="parenleft,bracketleft,braceleft" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="55" /> +<hkern g1="asterisk" g2="space,uni00A0" k="70" /> +<hkern g1="asterisk" g2="hyphen,uni00AD,endash,emdash" k="373" /> +<hkern g1="asterisk" g2="comma,period,ellipsis" k="61" /> +<hkern g1="asterisk" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="106" /> +<hkern g1="asterisk" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="18" /> +<hkern g1="asterisk" g2="T" k="-33" /> +<hkern g1="asterisk" g2="V" k="-18" /> +<hkern g1="asterisk" g2="W" k="-27" /> +<hkern g1="asterisk" g2="Y,Yacute,Ydieresis" k="-18" /> +<hkern g1="asterisk" g2="v,y,yacute,ydieresis" k="-41" /> +<hkern g1="asterisk" g2="w" k="-20" /> +<hkern g1="asterisk" g2="AE" k="244" /> +<hkern g1="asterisk" g2="quotesinglbase,quotedblbase" k="193" /> +<hkern g1="seven" g2="space,uni00A0" k="104" /> +<hkern g1="seven" g2="hyphen,uni00AD,endash,emdash" k="125" /> +<hkern g1="seven" g2="comma,period,ellipsis" k="231" /> +<hkern g1="seven" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="129" /> +<hkern g1="seven" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="57" /> +<hkern g1="seven" g2="AE" k="176" /> +<hkern g1="seven" g2="quotesinglbase,quotedblbase" k="223" /> +<hkern g1="r" g2="hyphen,uni00AD,endash,emdash" k="27" /> +<hkern g1="r" g2="comma,period,ellipsis" k="164" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/pt_sans-web-bolditalic-webfont.ttf b/web/static/fonts/pt_sans-web-bolditalic-webfont.ttf Binary files differnew file mode 100755 index 000000000..49748feab --- /dev/null +++ b/web/static/fonts/pt_sans-web-bolditalic-webfont.ttf diff --git a/web/static/fonts/pt_sans-web-bolditalic-webfont.woff b/web/static/fonts/pt_sans-web-bolditalic-webfont.woff Binary files differnew file mode 100755 index 000000000..cfd8d550e --- /dev/null +++ b/web/static/fonts/pt_sans-web-bolditalic-webfont.woff diff --git a/web/static/fonts/pt_sans-web-bolditalic-webfont.woff2 b/web/static/fonts/pt_sans-web-bolditalic-webfont.woff2 Binary files differnew file mode 100755 index 000000000..8c3ee5699 --- /dev/null +++ b/web/static/fonts/pt_sans-web-bolditalic-webfont.woff2 diff --git a/web/static/fonts/pt_sans-web-italic-webfont.eot b/web/static/fonts/pt_sans-web-italic-webfont.eot Binary files differnew file mode 100755 index 000000000..c7d5d7970 --- /dev/null +++ b/web/static/fonts/pt_sans-web-italic-webfont.eot diff --git a/web/static/fonts/pt_sans-web-italic-webfont.svg b/web/static/fonts/pt_sans-web-italic-webfont.svg new file mode 100755 index 000000000..02ef7102f --- /dev/null +++ b/web/static/fonts/pt_sans-web-italic-webfont.svg @@ -0,0 +1,705 @@ +<?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="pt_sansitalic" horiz-adv-x="1064" > +<font-face units-per-em="2048" ascent="1638" descent="-410" /> +<missing-glyph horiz-adv-x="546" /> +<glyph unicode="fi" horiz-adv-x="1050" d="M-233 -385l45 115q41 -14 74.5 -19.5t82.5 -5.5q78 0 117 81t61 214l148 893h-152l27 131h152q25 123 64.5 205t96 131t128 68.5t157.5 19.5q117 0 200 -24.5t126 -55.5l-66 -117q-47 35 -120.5 50.5t-155.5 15.5q-72 0 -118 -20.5t-77 -58.5t-49.5 -92t-32.5 -122h512 l-172 -1024h-153l147 893h-360l-148 -893q-18 -113 -43 -192.5t-61.5 -132t-90 -77t-129.5 -24.5q-61 0 -113 9t-97 32z" /> +<glyph unicode="fl" horiz-adv-x="1118" d="M-233 -385l45 115q41 -14 74.5 -19.5t82.5 -5.5q78 0 117 81t61 214l132 893h-152l27 131h151q23 121 59.5 204t90 134t124 73.5t162.5 22.5q39 0 87.5 -3t96.5 -8t90 -11t68 -15l-190 -1171q-6 -35 -6 -57q0 -80 67 -80q27 0 56.5 5t70.5 17l-8 -115q-18 -8 -42.5 -15 t-51.5 -12t-52.5 -8t-43.5 -3q-74 0 -117 32.5t-43 112.5q0 8 1 19.5t6 48t16.5 109.5t32 202t51 324.5t75.5 478.5q-29 6 -82 12t-106 6q-66 0 -109 -21.5t-71.5 -61.5t-46 -96t-31.5 -124h203l-27 -131h-203l-131 -893q-16 -113 -39.5 -192.5t-61.5 -132t-92.5 -77 t-130.5 -24.5q-61 0 -113 9t-97 32z" /> +<glyph horiz-adv-x="0" /> +<glyph unicode="
" horiz-adv-x="546" /> +<glyph unicode=" " horiz-adv-x="546" /> +<glyph unicode="	" horiz-adv-x="546" /> +<glyph unicode=" " horiz-adv-x="546" /> +<glyph unicode="!" horiz-adv-x="559" d="M178 94q0 55 33 87t86 32t86 -31.5t33 -87.5q0 -53 -33 -86t-86 -33t-86 33t-33 86zM295 362l41 361l149 711h164l-149 -711l-111 -361h-94z" /> +<glyph unicode=""" horiz-adv-x="620" d="M162 1038l84 396h151l-143 -396h-92zM389 1038l84 396h151l-143 -396h-92z" /> +<glyph unicode="#" d="M131 461l29 131h164l63 268h-154l29 131h156l78 324h139l-78 -324h217l78 324h139l-78 -324h158l-33 -131h-155l-64 -268h150l-33 -131h-150l-79 -342h-140l80 342h-217l-80 -342h-139l80 342h-160zM463 592h217l63 268h-217z" /> +<glyph unicode="$" d="M125 104l72 125q33 -23 95 -57.5t144 -48.5l123 575q-45 33 -89 70t-78 80t-55.5 97t-21.5 124q0 90 30 158.5t84 117t128 76t162 33.5l41 184h131l-39 -182q88 -8 150.5 -30.5t105.5 -45.5l-70 -129q-35 16 -90 34t-127 26l-110 -514q47 -35 93 -74t82 -88t58.5 -111.5 t22.5 -144.5q0 -84 -29 -154.5t-84 -123t-136 -85t-183 -39.5q0 -2 -6.5 -29.5t-12.5 -62.5q-8 -39 -18 -90h-131l39 187q-98 14 -172 53t-109 69zM483 1094q0 -78 41 -132.5t101 -101.5l96 453q-117 -8 -177.5 -68.5t-60.5 -150.5zM535 119q123 8 193.5 74t70.5 172 q0 92 -45 154.5t-109 115.5z" /> +<glyph unicode="%" horiz-adv-x="1507" d="M123 1004q0 119 36 204.5t91 141t122.5 82t133.5 26.5q117 0 177 -63.5t60 -180.5q0 -111 -30.5 -194.5t-82.5 -141t-123 -87t-149 -29.5q-104 0 -169.5 63.5t-65.5 178.5zM180 55l1051 1405l102 -80l-1051 -1405zM264 1020q0 -66 30 -102.5t89 -36.5q43 0 83 22.5 t70.5 64.5t48 102t17.5 136q0 72 -31.5 102.5t-89.5 30.5q-43 0 -83 -25.5t-69.5 -68.5t-47 -101t-17.5 -124zM791 244q0 119 36 204.5t91 141t122.5 82t133.5 26.5q117 0 177 -63.5t60 -180.5q0 -111 -30.5 -194.5t-82.5 -141t-123 -87t-149 -29.5q-104 0 -169.5 63.5 t-65.5 178.5zM932 260q0 -66 30 -102.5t89 -36.5q43 0 83 22.5t70.5 64.5t48 102t17.5 136q0 72 -31.5 102.5t-89.5 30.5q-43 0 -83 -25.5t-69.5 -68.5t-47 -101t-17.5 -124z" /> +<glyph unicode="&" horiz-adv-x="1581" d="M178 303q0 96 40 184t103.5 164t143.5 136.5t160 101.5q-14 37 -24.5 66.5t-18 59t-10.5 61.5t-3 73q0 55 20.5 110.5t63.5 99.5t107.5 71.5t154.5 27.5q72 0 116 -19.5t68.5 -48t33 -63.5t8.5 -65q0 -117 -89 -216.5t-243 -183.5q20 -59 48 -121.5t60.5 -124t69.5 -122 t74 -111.5q27 25 56.5 62.5t58 79.5t55 87t49.5 86l109 -59q-18 -35 -51 -83t-70 -98t-74 -96.5t-66 -76.5q66 -82 112 -125t97 -76l-118 -115q-47 27 -100.5 78t-104.5 119q-43 -37 -92.5 -71t-106.5 -60.5t-123.5 -43t-142.5 -16.5q-86 0 -154.5 25t-117 69t-74 103 t-25.5 131zM342 338q0 -111 67.5 -166t190.5 -55q49 0 98.5 13t94.5 34.5t82.5 48t66.5 55.5q-43 59 -83 129t-74.5 139.5t-62.5 134t-46 113.5q-74 -47 -135.5 -100t-105.5 -109.5t-68.5 -116t-24.5 -120.5zM723 1153q0 -31 2 -55.5t7 -46t12.5 -44t19.5 -53.5 q117 70 175 133.5t58 141.5q0 41 -23.5 69.5t-80.5 28.5q-47 0 -79 -14.5t-52.5 -40t-29.5 -57t-9 -62.5z" /> +<glyph unicode="'" horiz-adv-x="413" d="M209 1038l84 396h151l-143 -396h-92z" /> +<glyph unicode="(" horiz-adv-x="544" d="M111 154q0 207 47 397t127 356t184 304.5t219 246.5l76 -72q-115 -131 -206 -273t-156.5 -295.5t-98.5 -316.5t-33 -323q0 -135 28 -274.5t93 -278.5l-94 -71q-111 162 -148.5 312t-37.5 288z" /> +<glyph unicode=")" horiz-adv-x="544" d="M-195 -379q100 109 187.5 248t155 293.5t106.5 319.5t39 319q0 201 -25.5 338t-89.5 243l103 68q47 -61 79.5 -137t53 -154t30 -154.5t9.5 -146.5q0 -205 -46.5 -396.5t-125 -358t-182 -306t-216.5 -248.5z" /> +<glyph unicode="*" horiz-adv-x="681" d="M145 1133v114h103l129 -24l-92 90l-56 94l101 57l51 -86l37 -114l43 116l49 82l98 -53l-51 -88l-96 -98l139 24h98v-114h-92l-133 24l94 -98l49 -80l-98 -57l-51 86l-49 125l-37 -119l-51 -86l-103 57l54 86l88 86l-121 -24h-103z" /> +<glyph unicode="+" horiz-adv-x="983" d="M113 618v148h360v371h148v-371h360v-148h-360v-370h-148v370h-360z" /> +<glyph unicode="," horiz-adv-x="399" d="M-43 -225q78 29 125 90t57 121q-8 -4 -20 -4q-29 0 -56.5 24.5t-27.5 65.5q0 53 34.5 90t100.5 37q51 0 78.5 -35t27.5 -80q0 -63 -21.5 -123.5t-60 -112t-91 -91.5t-113.5 -62z" /> +<glyph unicode="-" horiz-adv-x="700" d="M129 520l33 139h471l-35 -139h-469z" /> +<glyph unicode="." horiz-adv-x="432" d="M72 94q0 55 32.5 87t85.5 32t86 -31.5t33 -87.5q0 -53 -32.5 -86t-86.5 -33q-53 0 -85.5 33t-32.5 86z" /> +<glyph unicode="/" horiz-adv-x="688" d="M-190 -229l1067 1687l116 -63l-1067 -1690z" /> +<glyph unicode="0" d="M117 449q0 215 46 400t127 320.5t193.5 212t247.5 76.5q174 0 268.5 -112.5t94.5 -358.5q0 -184 -40 -364.5t-117 -324.5t-189.5 -233.5t-260.5 -89.5q-104 0 -174.5 40t-114.5 106.5t-62.5 152t-18.5 175.5zM276 457q0 -104 20.5 -171t54.5 -103t76 -50t85 -14 q92 0 170 72.5t133 193.5t87 272.5t32 309.5q0 176 -49 262t-178 86q-82 0 -159 -63.5t-137.5 -178.5t-97.5 -272.5t-37 -343.5z" /> +<glyph unicode="1" d="M129 0l31 152h272l213 991l45 121l-100 -97l-246 -161l-57 104l506 348h69l-278 -1306h266l-31 -152h-690z" /> +<glyph unicode="2" d="M66 0l12 59q51 51 132 128t172 170.5t183 195.5t167 205.5t119 200t44 178.5q0 39 -8 71.5t-26.5 56t-53.5 37t-90 13.5q-74 0 -143.5 -30t-147.5 -81l-43 123q98 72 188.5 101.5t196.5 29.5q143 0 215 -81t72 -208q0 -106 -59.5 -231t-150.5 -251t-199.5 -245.5 t-209.5 -216.5l-112 -88v-8l127 23h419l-28 -152h-776z" /> +<glyph unicode="3" d="M88 27l74 145q41 -23 98 -38t133 -15q96 0 169 30.5t119 81t70.5 115t24.5 131.5q0 106 -53 163.5t-199 57.5h-147l12 60l373 454l106 91l-129 -21h-379l29 152h696l-12 -60l-411 -495l-80 -60v-4l67 14q57 0 108.5 -19t91.5 -59t63.5 -101.5t23.5 -147.5 q0 -111 -36 -206t-106.5 -167t-177 -113t-247.5 -41q-88 0 -159 14.5t-122 37.5z" /> +<glyph unicode="4" d="M70 440l14 68l850 948h104l-186 -876h229l-28 -140h-232l-92 -440h-149l92 440h-602zM283 565l137 15h282l97 450l55 168h-8l-96 -139l-355 -391z" /> +<glyph unicode="5" d="M96 23l70 141q43 -18 91 -31.5t124 -13.5q92 0 164.5 29.5t124 82t78 122t24.5 153.5q2 117 -62.5 174t-211.5 57l-164 -10l149 707h607l-33 -152h-461l-88 -410h14.5t28.5 2q18 0 39 3q96 0 161.5 -30t105.5 -77t57.5 -109.5t17.5 -125.5q0 -158 -51.5 -265.5t-134 -173 t-186 -93.5t-210.5 -28q-82 0 -144.5 12.5t-109.5 35.5z" /> +<glyph unicode="6" d="M129 418q0 205 78 387t203 320.5t282.5 226.5t317.5 106l8 -131q-113 -18 -223.5 -74.5t-203.5 -139.5t-165 -186.5t-109 -215.5q20 27 55.5 52t79.5 45.5t94 32t103 11.5q147 0 243.5 -89t96.5 -263q0 -115 -33.5 -210t-98 -166t-156 -110t-203.5 -39q-68 0 -133.5 24 t-117.5 76t-85 136t-33 207zM283 434q0 -68 13 -126t42 -101t72 -67.5t104 -24.5q82 0 141.5 31.5t97.5 83t55 116.5t21 133q-4 102 -55 168t-168 66q-47 0 -93 -13.5t-88 -36t-76 -52t-54 -62.5q-4 -27 -8 -58.5t-4 -56.5z" /> +<glyph unicode="7" d="M141 0l742 1200l106 100l-119 -18h-542l30 152h813l-10 -56l-852 -1378h-168z" /> +<glyph unicode="8" d="M125 299q0 141 93 261t263 192q-33 27 -62.5 54.5t-53 63t-38 82.5t-14.5 115q0 94 36 167t96.5 123t140.5 75.5t166 25.5q68 0 127 -19.5t102 -57.5t67.5 -94t24.5 -130q0 -61 -23.5 -121.5t-65.5 -114t-98.5 -99.5t-123.5 -83q37 -31 70.5 -64.5t58 -73.5t40 -88 t15.5 -107q0 -86 -27.5 -164t-86 -137.5t-149.5 -94.5t-220 -35q-84 0 -146.5 26t-105.5 69t-64.5 102t-21.5 127zM285 317q0 -37 10 -73.5t33.5 -64t65.5 -44t104 -16.5q57 0 109 15.5t93 48t63.5 81t22.5 111.5q0 57 -15 101t-39.5 80t-63.5 66.5t-84 59.5 q-135 -63 -217 -155.5t-82 -209.5zM473 1075q0 -98 49 -158.5t135 -113.5q51 33 98.5 72.5t81 81.5t55 85t21.5 86q0 96 -47 141.5t-133 45.5q-53 0 -100 -15.5t-82 -46t-56.5 -76t-21.5 -102.5z" /> +<glyph unicode="9" d="M190 106q129 29 239 84.5t198 132t151.5 172t100.5 203.5q-66 -57 -144 -86.5t-196 -29.5q-55 0 -111.5 20.5t-104 65.5t-77 116.5t-29.5 171.5q0 119 37 212.5t103.5 158t155.5 98t194 33.5q76 0 143.5 -27.5t118.5 -83t79.5 -136.5t28.5 -187q0 -236 -83 -423 t-212 -321.5t-284.5 -212t-298.5 -92.5zM377 975q0 -74 22.5 -123t54 -78t69.5 -41t75 -12q94 0 179 37t130 90q2 12 5 34.5t6.5 45t4.5 44t1 32.5q0 143 -61.5 229t-182.5 86q-59 0 -113.5 -20.5t-95.5 -63.5t-67.5 -107.5t-26.5 -152.5z" /> +<glyph unicode=":" horiz-adv-x="546" d="M182 94q0 55 33 87t86 32t86 -31.5t33 -87.5q0 -53 -33 -86t-86 -33t-86 33t-33 86zM354 920q0 55 33 86.5t86 31.5t86 -31.5t33 -86.5q0 -53 -33 -86t-86 -33t-86 33t-33 86z" /> +<glyph unicode=";" horiz-adv-x="559" d="M111 -225q78 29 125 90t57 121q-8 -4 -21 -4q-29 0 -56.5 24.5t-27.5 65.5q0 53 35 90t101 37q51 0 78.5 -35t27.5 -80q0 -63 -21.5 -123.5t-60.5 -112t-91 -91.5t-114 -62zM367 920q0 55 32.5 86.5t85.5 31.5t86 -31.5t33 -86.5q0 -53 -32.5 -86t-86.5 -33 q-53 0 -85.5 33t-32.5 86z" /> +<glyph unicode="<" horiz-adv-x="983" d="M111 625v59l776 473l78 -127l-486 -297l-186 -78l184 -65l498 -295l-78 -123z" /> +<glyph unicode="=" horiz-adv-x="983" d="M113 449v147h868v-147h-868zM113 788v148h868v-148h-868z" /> +<glyph unicode=">" horiz-adv-x="983" d="M115 1032l78 125l786 -452v-60l-776 -473l-78 125l485 297l187 78l-185 65z" /> +<glyph unicode="?" horiz-adv-x="847" d="M164 94q0 55 32.5 87t86.5 32q53 0 85.5 -31.5t32.5 -87.5q0 -53 -32.5 -86t-85.5 -33t-86 33t-33 86zM244 1356q41 25 78.5 43t80.5 31.5t93.5 20.5t115.5 7q152 0 223.5 -69.5t71.5 -180.5t-34.5 -191.5t-88 -144t-118 -118t-123 -111.5t-103.5 -123.5t-59 -157.5h-129 q10 102 51 179t95.5 139.5t115.5 117t111.5 109t84 116.5t33.5 142q0 78 -42 120t-146 42q-72 0 -142.5 -27.5t-129.5 -62.5z" /> +<glyph unicode="@" horiz-adv-x="2179" d="M238 483q0 223 76.5 403.5t207.5 307.5t305 195.5t369 68.5q184 0 342 -54t274.5 -155.5t182 -248t65.5 -332.5q0 -131 -45 -251t-121.5 -210t-179 -144.5t-217.5 -54.5q-86 0 -136 37t-50 137q0 18 2 40t6 46h-8q-31 -47 -70 -93t-87 -83t-102.5 -60.5t-113.5 -23.5 q-49 0 -93 21.5t-77 62.5t-52.5 97.5t-19.5 127.5q0 131 43 258t116 225.5t170 159t206 60.5q74 0 120 -22.5t89 -55.5l67 64h70l-104 -588q-10 -53 -15.5 -95t-5.5 -75q0 -51 17.5 -76t62.5 -25q70 0 137.5 37t121.5 104.5t88 164t34 215.5q0 158 -53.5 278.5t-149.5 203.5 t-229 126t-293 43q-168 0 -313.5 -61.5t-254 -170t-171 -260t-62.5 -329.5q0 -182 56.5 -325.5t161 -242t249.5 -149.5t324 -51q59 0 135 14t137 43l41 -131q-90 -39 -169 -52.5t-169 -13.5q-190 0 -356 57.5t-291 170t-196.5 279.5t-71.5 386zM854 344q0 -80 33 -138.5 t119 -58.5q41 0 85 29t87 75t82.5 103.5t70.5 116.5l62 334q-35 41 -71 58.5t-89 17.5q-80 0 -149.5 -49.5t-120 -126t-80 -173t-29.5 -188.5z" /> +<glyph unicode="A" horiz-adv-x="1140" d="M-68 0l828 1456h76l206 -1456h-157l-58 397h-499l-222 -397h-174zM408 545h403l-59 436l-4 217h-3l-92 -221z" /> +<glyph unicode="B" horiz-adv-x="1138" d="M82 10l299 1411q78 12 175 20.5t210 8.5q76 0 145.5 -19.5t121.5 -58.5t84 -100.5t32 -143.5q0 -80 -24.5 -145t-69.5 -114.5t-105.5 -79t-130.5 -39.5v-9q45 -10 86 -33.5t72 -58.5t49 -81t18 -101q0 -143 -56 -236.5t-143 -148.5t-194.5 -76.5t-212.5 -21.5h-79t-117 4 q-123 12 -160 22zM272 145q12 -4 38 -6t55.5 -4t61 -3t56.5 -1q72 0 141.5 17.5t125 54.5t89 96t33.5 145q0 63 -30.5 105.5t-79.5 67t-111.5 33.5t-126.5 9h-143zM410 799h108q35 0 82 1t80 5q47 10 100.5 28.5t97.5 52.5t71.5 86t27.5 130q0 57 -17.5 95t-51.5 61.5 t-81 34t-104 10.5q-66 0 -123 -3.5t-86 -9.5z" /> +<glyph unicode="C" horiz-adv-x="1114" d="M145 561q0 231 68 400t178.5 280t248.5 164t280 53q117 0 190.5 -16.5t120.5 -38.5l-74 -150q-41 23 -107.5 38.5t-152.5 15.5q-115 0 -220.5 -50.5t-185 -144.5t-127 -229t-47.5 -303q0 -98 26 -181.5t74 -143.5t118.5 -94t160.5 -34q96 0 160 21.5t115 50.5l12 -140 q-70 -47 -147.5 -65.5t-180.5 -18.5q-121 0 -215 44t-159.5 123t-100.5 185.5t-35 233.5z" /> +<glyph unicode="D" horiz-adv-x="1273" d="M82 -2l305 1436q78 10 176.5 13t177.5 3q121 0 219.5 -32t167 -97.5t105.5 -165.5t37 -235q0 -90 -16.5 -196t-54.5 -209t-101.5 -199.5t-157.5 -171t-221 -118.5t-293 -44q-31 0 -81 1t-99 3q-143 8 -164 12zM276 141q8 -2 33 -3t52.5 -2t53 -2t36.5 -1q178 0 300.5 74 t199.5 186.5t112 247.5t35 256q0 92 -20.5 166t-64.5 126t-114 80.5t-170 28.5q-25 0 -55.5 -1t-59 -2t-55.5 -3t-41 -4z" /> +<glyph unicode="E" horiz-adv-x="1044" d="M82 0l305 1434h739l-30 -152h-580l-100 -469h530l-31 -151h-530l-109 -510h590l-32 -152h-590h-162z" /> +<glyph unicode="F" horiz-adv-x="1007" d="M82 0l305 1434h739l-30 -152h-580l-104 -489h540l-30 -152h-541l-135 -641h-164z" /> +<glyph unicode="G" horiz-adv-x="1193" d="M145 557q0 252 74 424t189.5 277.5t255 152.5t270.5 47q117 0 193.5 -15.5t123.5 -37.5l-71 -150q-41 23 -110 37.5t-155 14.5q-119 0 -226 -46.5t-190 -138.5t-132.5 -228t-49.5 -316q0 -92 22.5 -174t69 -143.5t115 -97.5t162.5 -36q66 0 113 13.5t94 37.5l84 400 l-229 40l20 97h238h139l-133 -631q-145 -109 -361 -109q-102 0 -193 37t-161 110t-111 181.5t-41 253.5z" /> +<glyph unicode="H" horiz-adv-x="1308" d="M82 0l303 1434h164l-131 -625h649l131 625h164l-303 -1434h-164l139 657h-651l-137 -657h-164z" /> +<glyph unicode="I" horiz-adv-x="567" d="M127 0l303 1434h164l-303 -1434h-164z" /> +<glyph unicode="J" horiz-adv-x="569" d="M-125 12l62 146q39 -27 110 -27q43 0 71.5 15.5t49 45t34 70.5t23.5 94l230 1078h163l-237 -1119q-18 -82 -44 -144t-66 -105t-98 -64.5t-140 -21.5q-16 0 -38 2t-44.5 6t-43 10t-32.5 14z" /> +<glyph unicode="K" horiz-adv-x="1179" d="M82 0l303 1434h164l-143 -668l81 29l588 639h203l-586 -623l-94 -63l80 -82l358 -666h-186l-361 664h-104l-139 -664h-164z" /> +<glyph unicode="L" horiz-adv-x="1007" d="M82 0l303 1434h164l-273 -1282h644l-31 -152h-647h-160z" /> +<glyph unicode="M" horiz-adv-x="1544" d="M82 0l305 1434h113l266 -734l31 -159h2l94 164l559 729h145l-305 -1434h-164l205 963l64 215h-8l-115 -197l-492 -647h-49l-235 647l-31 197h-8l-17 -213l-204 -965h-156z" /> +<glyph unicode="N" horiz-adv-x="1314" d="M82 0l309 1456h82l447 -958l67 -201h8l19 201l200 936h154l-309 -1457h-76l-448 961l-70 211h-6l-25 -211l-198 -938h-154z" /> +<glyph unicode="O" horiz-adv-x="1333" d="M145 524q0 188 51.5 358.5t146.5 298.5t229.5 202.5t297.5 74.5q98 0 182.5 -29.5t144.5 -94t94 -167t34 -249.5q0 -193 -51 -364t-143.5 -300t-220.5 -204t-281 -75q-242 0 -363 140.5t-121 408.5zM317 526q0 -193 80 -298t236 -105q115 0 210 63.5t164.5 172t107.5 252 t38 302.5q0 119 -26.5 197t-70.5 122t-100.5 61.5t-113.5 17.5q-117 0 -213.5 -64.5t-165 -173t-107.5 -251t-39 -296.5z" /> +<glyph unicode="P" horiz-adv-x="1089" d="M82 0l301 1419q78 18 164 24.5t170 6.5q94 0 175 -20.5t140.5 -65.5t93 -115.5t33.5 -169.5q0 -156 -56 -260t-147.5 -166.5t-206 -89t-231.5 -26.5h-31.5t-46 1t-47 3t-33.5 4l-114 -545h-164zM393 694q8 -4 27.5 -5t41 -3t42 -2h31.5q88 0 169.5 18.5t144 63.5 t100.5 116.5t38 180.5q0 74 -24.5 121t-66.5 72.5t-97.5 36t-116.5 10.5q-47 0 -91 -3.5t-73 -9.5z" /> +<glyph unicode="Q" horiz-adv-x="1333" d="M145 524q0 188 51.5 358.5t146.5 298.5t229.5 202.5t297.5 74.5q98 0 182.5 -29.5t144.5 -94t94 -167t34 -249.5q0 -193 -51 -364t-143.5 -300t-220.5 -204t-281 -75q-242 0 -363 140.5t-121 408.5zM317 526q0 -193 80 -298t236 -105q115 0 210 63.5t164.5 172t107.5 252 t38 302.5q0 119 -26.5 197t-70.5 122t-100.5 61.5t-113.5 17.5q-117 0 -213.5 -64.5t-165 -173t-107.5 -251t-39 -296.5zM360 -250l31 150q55 12 109 12q82 0 157.5 -21.5t154.5 -46t163 -46t180 -21.5q84 0 174 20l-33 -147q-49 -14 -95 -19.5t-91 -5.5q-98 0 -186 21.5 t-169 46t-156 46t-146 21.5q-23 0 -46.5 -2t-46.5 -8z" /> +<glyph unicode="R" horiz-adv-x="1163" d="M82 0l301 1419q86 16 166 23.5t160 7.5q78 0 151.5 -19.5t130 -61.5t90 -109.5t33.5 -163.5q0 -180 -105.5 -300t-306.5 -155l74 -74l221 -567h-178l-246 618l-192 31l-135 -649h-164zM406 762h141q74 0 144.5 14.5t126.5 51t90 100t34 159.5q0 37 -14.5 75t-43 70 t-76 51.5t-110.5 19.5q-49 0 -98 -3.5t-82 -9.5z" /> +<glyph unicode="S" horiz-adv-x="1034" d="M35 51l84 150q47 -27 128 -52.5t191 -25.5q63 0 127 11t115 40t83 76t32 119q0 74 -38 125t-95.5 93t-124 81t-124 90t-95 120.5t-37.5 172.5q0 109 39.5 186.5t108.5 126.5t162 71.5t197 22.5q119 0 213.5 -18.5t147.5 -46.5l-82 -146q-41 23 -122 43.5t-187 20.5 q-135 0 -220 -61.5t-85 -178.5q0 -76 37.5 -128t95 -94t124 -81t124 -89t95.5 -120t38 -170q0 -199 -143.5 -306.5t-411.5 -107.5q-137 0 -232.5 24t-144.5 52z" /> +<glyph unicode="T" horiz-adv-x="1081" d="M225 1282l31 152h1008l-31 -152h-424l-270 -1282h-164l270 1282h-420z" /> +<glyph unicode="U" horiz-adv-x="1265" d="M178 338q0 84 23 190l190 906h164l-190 -908q-23 -90 -23 -164q0 -129 67.5 -179t200.5 -50q80 0 140.5 22.5t104.5 69.5t73.5 121t52.5 178l193 910h155l-201 -957q-29 -131 -71.5 -225t-107 -153.5t-154.5 -88t-209 -28.5q-113 0 -191 25.5t-126 71.5t-69.5 112.5 t-21.5 146.5z" /> +<glyph unicode="V" horiz-adv-x="1107" d="M213 1434h168l137 -981v-220h4l92 224l543 977h176l-823 -1457h-76z" /> +<glyph unicode="W" horiz-adv-x="1613" d="M233 1434h168l37 -957l-18 -237h2l80 241l481 953h88l76 -957l-19 -237h2l82 241l437 953h168l-689 -1457h-90l-77 961l12 217h-8l-82 -219l-480 -959h-90z" /> +<glyph unicode="X" horiz-adv-x="1204" d="M-14 0l606 733l-266 701h178l176 -486l25 -117l69 117l391 486h199l-571 -695l290 -739h-178l-196 514l-29 123l-78 -123l-418 -514h-198z" /> +<glyph unicode="Y" horiz-adv-x="1087" d="M221 1434h178l183 -627l6 -125h2l61 129l445 623h184l-623 -863l-120 -571h-164l121 569z" /> +<glyph unicode="Z" d="M-2 0l31 154l891 1046l100 82h-750l31 152h916l-31 -154l-897 -1053l-96 -75h751l-31 -152h-915z" /> +<glyph unicode="[" horiz-adv-x="595" d="M33 -471l403 1905h156h199l-31 -144h-199l-344 -1618h201l-31 -143h-201h-153z" /> +<glyph unicode="\" horiz-adv-x="778" d="M84 1401l141 57l695 -1685l-136 -60z" /> +<glyph unicode="]" horiz-adv-x="595" d="M-129 -471l31 143h196l342 1618h-198l30 144h203h152l-404 -1905h-153h-199z" /> +<glyph unicode="^" horiz-adv-x="1024" d="M209 891l381 565h59l346 -565h-170l-161 276l-48 142l-63 -144l-191 -274h-153z" /> +<glyph unicode="_" horiz-adv-x="835" d="M-90 -281h835v-139h-835v139z" /> +<glyph unicode="`" horiz-adv-x="487" d="M354 1432l8 43h187l59 -306h-88z" /> +<glyph unicode="a" horiz-adv-x="997" d="M92 293q0 131 34 266t104.5 243.5t182 178.5t269.5 70q57 0 140 -13.5t155 -36.5l-129 -598q-16 -76 -22.5 -153.5t-6.5 -145.5v-58.5t4 -49.5h-114l-29 178h-8q-25 -35 -61 -70.5t-79 -64.5t-92 -46.5t-104 -17.5q-244 0 -244 318zM256 293q0 -78 30.5 -132.5 t96.5 -54.5q49 0 94 24t85 58.5t71 74.5t49 75l115 553q-61 29 -156 29q-94 0 -166 -55.5t-121 -144.5t-73.5 -201.5t-24.5 -225.5z" /> +<glyph unicode="b" horiz-adv-x="1067" d="M88 63l291 1371h153l-124 -586h8q29 37 65.5 72.5t81.5 64.5t96.5 46.5t110.5 17.5q121 0 176 -85t55 -214q0 -184 -51 -326.5t-135 -241t-191.5 -149.5t-220.5 -51q-111 0 -193.5 24.5t-121.5 56.5zM260 156q61 -43 174 -43q66 0 137.5 40t131 116.5t97.5 188t38 255.5 q0 104 -32 154.5t-85 50.5q-51 0 -104.5 -26t-101.5 -67t-88 -91t-65 -97z" /> +<glyph unicode="c" horiz-adv-x="860" d="M102 303q0 174 47.5 312.5t126 234.5t181 147.5t211.5 51.5q78 0 128 -14.5t91 -33.5l-58 -127q-35 20 -86 32t-110 12q-70 0 -136.5 -47.5t-117.5 -124t-82 -176t-31 -203.5q0 -133 55.5 -197t149.5 -64q61 0 129 28t109 56l39 -102q-31 -27 -71 -47.5t-82 -34.5 t-83 -22.5t-78 -8.5q-100 0 -164.5 32t-101.5 81t-51.5 106.5t-14.5 108.5z" /> +<glyph unicode="d" horiz-adv-x="1042" d="M102 322q0 121 35 248.5t102.5 232t169 172t234.5 67.5q37 0 63.5 -2t50 -6t44 -11t43.5 -15l90 426h153l-229 -1082q-16 -80 -24.5 -149.5t-8.5 -128.5q0 -23 1 -41.5t3 -36.5h-102l-29 178h-8q-25 -35 -61.5 -70.5t-81.5 -64.5t-95.5 -46.5t-103.5 -17.5 q-113 0 -179.5 83t-66.5 264zM266 311q0 -84 33 -144.5t107 -60.5q43 0 88 24t84.5 58.5t71.5 74.5t50 75l115 532q-35 23 -79 32t-115 9q-82 0 -147.5 -50t-112 -134t-71 -192.5t-24.5 -223.5z" /> +<glyph unicode="e" horiz-adv-x="948" d="M102 332q0 168 47.5 301t124 225t174 141.5t199.5 49.5q74 0 128 -20.5t89 -54.5t51.5 -78t16.5 -93q0 -145 -141.5 -228t-411.5 -83q-25 0 -51.5 1t-55.5 3q-8 -39 -12 -74t-4 -62q0 -113 51 -183.5t160 -70.5q90 0 165 30t116 63l49 -99q-72 -61 -169.5 -93t-195.5 -32 q-164 0 -247 94.5t-83 262.5zM301 610q78 0 162 4t152.5 21.5t113.5 55.5t45 106q0 20 -7 41.5t-23.5 39t-46 29t-74.5 11.5q-113 0 -196 -77t-126 -231z" /> +<glyph unicode="f" horiz-adv-x="569" d="M-233 -385l45 115q41 -14 74.5 -19.5t82.5 -5.5q78 0 117 75t66 236l143 877h-158l27 131h149l27 137q14 76 34.5 131.5t54.5 92t84 55t122 18.5q68 0 131 -13t115 -36l-45 -121q-100 39 -191 39q-76 0 -110.5 -52t-53.5 -167l-14 -84h207l-25 -131h-200l-164 -963 q-12 -76 -34 -140t-56.5 -112.5t-88 -76t-129.5 -27.5q-61 0 -113 9t-97 32z" /> +<glyph unicode="g" horiz-adv-x="1034" d="M10 -342l68 115q16 -8 39.5 -21.5t57.5 -26t82 -20.5t114 -8q102 0 171.5 73.5t104.5 231.5l37 172h-8q-29 -39 -62.5 -73.5t-74.5 -62.5t-89.5 -44.5t-105.5 -16.5q-111 0 -178.5 80t-67.5 228q0 137 38 272t113 242.5t184.5 175t252.5 67.5q111 0 186.5 -18t133.5 -45 l-218 -1026q-43 -201 -148 -294t-280 -93q-133 0 -219 33.5t-131 58.5zM262 311q0 -94 38 -148t101 -54q51 0 101.5 26.5t92.5 68.5t76 91t56 92l104 494q-33 18 -79.5 24t-96.5 6q-84 0 -155.5 -49t-123.5 -132t-83 -191.5t-31 -227.5z" /> +<glyph unicode="h" horiz-adv-x="1083" d="M74 0l303 1434h153l-127 -586h9q27 33 64.5 67.5t86.5 64.5t106.5 49.5t125.5 19.5q100 0 157.5 -48.5t57.5 -175.5q0 -86 -27 -207l-131 -618h-154l123 584q12 61 20.5 109t8.5 85q0 76 -31 108t-96 32q-53 0 -108.5 -28t-106.5 -71t-91 -96t-61 -102l-129 -621h-153z " /> +<glyph unicode="i" horiz-adv-x="530" d="M111 0l217 1024h153l-217 -1024h-153zM360 1337q0 47 32 80t79 33t80 -33t33 -80t-33 -78.5t-80 -31.5t-79 31.5t-32 78.5z" /> +<glyph unicode="j" horiz-adv-x="509" d="M-197 -422l31 133q61 0 101 17.5t68 54.5t47.5 92t35.5 131l217 1018h154l-230 -1079q-41 -190 -127 -280.5t-233 -90.5q-16 0 -31.5 1t-32.5 3zM336 1337q0 47 31.5 80t78.5 33t80 -33t33 -80t-32.5 -78.5t-80.5 -31.5q-47 0 -78.5 31.5t-31.5 78.5z" /> +<glyph unicode="k" horiz-adv-x="919" d="M74 0l303 1434h153l-186 -873l88 23l369 440h188l-364 -416l-97 -67l78 -80l230 -461h-170l-232 461h-110l-97 -461h-153z" /> +<glyph unicode="l" horiz-adv-x="552" d="M102 135q0 41 13 101l254 1198h153l-250 -1190q-6 -35 -6 -58q0 -39 13.5 -56t35.5 -17q41 0 69 5t67 19v-117q-18 -10 -43 -17t-50.5 -11t-51 -7t-46.5 -3q-72 0 -115 32.5t-43 120.5z" /> +<glyph unicode="m" horiz-adv-x="1562" d="M74 0l217 1024h108l-12 -176h8q33 33 71 68.5t84 64.5t100.5 48.5t119.5 19.5q92 0 124 -57.5t32 -160.5q31 39 71.5 78t89 70t101.5 50.5t106 19.5q94 0 144.5 -44t50.5 -163q0 -86 -31 -228l-129 -614h-153l129 616q12 59 19 106.5t7 82.5q0 55 -22.5 84t-75.5 29 q-43 0 -91 -28t-93 -69t-81 -88t-57 -88l-133 -645h-153l123 580q16 72 24 127t8 96q0 55 -20.5 85t-69.5 30q-51 0 -100 -27t-92 -67t-79 -85t-57 -82l-135 -657h-153z" /> +<glyph unicode="n" horiz-adv-x="1069" d="M74 0l217 1024h106l-8 -176h8q27 33 64 68.5t83 64.5t103.5 48.5t126.5 19.5q102 0 161.5 -49.5t59.5 -172.5q0 -61 -18 -147l-146 -680h-153l137 647q8 37 14.5 73t6.5 64q0 59 -28 96.5t-103 37.5q-53 0 -104.5 -25t-96.5 -62.5t-81 -84t-61 -91.5l-135 -655h-153z" /> +<glyph unicode="o" horiz-adv-x="1019" d="M102 319q0 162 42 296.5t116 230.5t171 149.5t208 53.5q86 0 146.5 -28t98.5 -76t54 -110.5t16 -129.5q0 -154 -40 -287t-110.5 -231.5t-164.5 -155t-205 -56.5q-92 0 -154.5 30t-102.5 79t-57.5 110.5t-17.5 124.5zM266 356q0 -121 45 -185.5t144 -64.5q68 0 128 48.5 t106 130.5t74 187.5t28 219.5q0 104 -38 165t-145 61q-68 0 -129 -46.5t-109 -124t-76 -179t-28 -212.5z" /> +<glyph unicode="p" horiz-adv-x="1040" d="M-10 -410l305 1434h106l-10 -176h8q29 37 65 72.5t79 64.5t94 46.5t111 17.5q49 0 92 -15.5t75.5 -51.5t52 -95.5t19.5 -145.5q0 -180 -49 -322.5t-129 -240.5t-179.5 -150.5t-197.5 -52.5q-72 0 -126 13.5t-73 27.5l-90 -426h-153zM264 154q35 -27 72 -37.5t80 -10.5 q80 0 152.5 44.5t130 126t91 196.5t33.5 256q0 82 -33.5 135.5t-99.5 53.5q-55 0 -105 -29t-92 -71t-75 -90t-53 -89z" /> +<glyph unicode="q" horiz-adv-x="1030" d="M94 289q0 137 45 272t125 241.5t190.5 173t243.5 66.5q43 0 87 -6t83 -15t72 -20.5t51 -23.5l-295 -1387h-153l125 582h-9q-25 -33 -56.5 -67.5t-71 -63.5t-89 -47.5t-104.5 -18.5q-66 0 -113 24t-75.5 65.5t-42 99t-13.5 125.5zM258 303q0 -98 32 -147.5t91 -49.5 q51 0 103.5 31t97.5 77t79.5 98.5t55.5 95.5l102 473q-33 18 -79 24t-81 6q-80 0 -152.5 -51t-127.5 -136t-88 -194.5t-33 -226.5z" /> +<glyph unicode="r" horiz-adv-x="669" d="M74 0l217 1024h106v-176h9q25 39 53 72.5t63 60.5t76 42t90 15q45 0 94 -14l-41 -135q-18 4 -37.5 6t-35.5 2q-104 0 -180 -65.5t-119 -159.5l-142 -672h-153z" /> +<glyph unicode="s" horiz-adv-x="815" d="M6 41l57 129q41 -27 108 -45.5t138 -18.5q100 0 160.5 44.5t60.5 138.5q0 53 -26.5 90t-67.5 66.5t-88 58t-88 64.5t-67.5 84t-26.5 120q0 57 27.5 107.5t75.5 88.5t115 59.5t144 21.5q109 0 168.5 -14.5t106.5 -41.5l-51 -123q-82 47 -224 48q-86 0 -142 -36t-56 -110 q0 -43 26.5 -74.5t67.5 -60.5t88 -58.5t88 -67.5t67.5 -89t26.5 -121q0 -160 -107.5 -243t-287.5 -83q-92 0 -169 18.5t-124 47.5z" /> +<glyph unicode="t" horiz-adv-x="641" d="M115 893l30 131h152l43 203l164 47l-53 -250h268l-31 -131h-266l-129 -619q-4 -25 -7 -45t-3 -36q0 -49 22.5 -68t67.5 -19q49 0 90 12.5t82 37.5v-125q-43 -25 -110.5 -40.5t-129.5 -15.5q-186 0 -186 170q0 35 10 86l139 662h-153z" /> +<glyph unicode="u" horiz-adv-x="1046" d="M123 197q0 72 20 161l140 666h153l-143 -682q-12 -55 -12 -102q0 -57 22.5 -95.5t81.5 -38.5q49 0 99.5 25t96.5 63.5t83.5 86t62.5 92.5l137 651h154l-129 -608q-8 -35 -16.5 -85t-15.5 -105.5t-11 -107.5t-4 -91v-27h-121v195h-8q-31 -41 -71 -80t-88 -70t-103.5 -50.5 t-116.5 -19.5q-45 0 -83 10.5t-66.5 36t-45 67.5t-16.5 108z" /> +<glyph unicode="v" horiz-adv-x="915" d="M123 1024h164l106 -600l19 -195h4l88 199l346 596h176l-639 -1047h-65z" /> +<glyph unicode="w" horiz-adv-x="1402" d="M117 1024h155l64 -596l-4 -199h8l82 203l338 592h114l97 -598l8 -197h2l80 201l301 594h156l-551 -1047h-78l-109 676l-2 168h-4l-76 -170l-389 -674h-73z" /> +<glyph unicode="x" horiz-adv-x="991" d="M-45 0l461 524l-219 500h174l121 -283l36 -116l84 116l248 283h187l-435 -492l244 -532h-174l-139 311l-41 123l-86 -123l-275 -311h-186z" /> +<glyph unicode="y" horiz-adv-x="899" d="M-41 -401l49 141q23 -8 49 -8q59 0 119 61.5t133 206.5l-176 1024h164l100 -664l11 -196h10l78 198l340 662h163l-483 -913q-53 -100 -105.5 -195.5t-107.5 -170.5t-114.5 -120t-122.5 -45q-35 0 -60.5 4t-46.5 15z" /> +<glyph unicode="z" horiz-adv-x="878" d="M-4 0l27 141l575 654l113 88h-529l31 141h690l-31 -141l-581 -660l-111 -82h535l-29 -141h-690z" /> +<glyph unicode="{" horiz-adv-x="677" d="M154 412l30 139q152 0 191 174l106 496q20 96 78.5 155.5t151.5 59.5h166l-31 -144h-98q-53 0 -83 -27.5t-44 -93.5l-101 -485q-18 -90 -69.5 -137t-106.5 -57l-2 -13q41 -6 70.5 -47t27.5 -106q0 -10 -3 -24.5t-12 -65t-31.5 -153.5t-63.5 -290q-2 -12 -4 -22.5 t-2 -20.5q-2 -78 86 -78h96l-33 -143h-166q-72 0 -110.5 40t-36.5 114q0 29 8 59l102 487q8 37 9 66q4 66 -30 91.5t-95 25.5z" /> +<glyph unicode="|" horiz-adv-x="487" d="M236 -266v1700h141v-1700h-141z" /> +<glyph unicode="}" horiz-adv-x="677" d="M-129 -471l33 143h96q51 0 81 28t42 93l102 486q20 90 70.5 137t107.5 57l5 12q-45 6 -75 47t-28 107q0 10 2 23.5t4 25.5l105 483q4 12 5 22.5t1 20.5q2 78 -84 78h-94l28 144h166q72 0 112 -39t36 -115q0 -29 -8 -59l-103 -488q-8 -35 -8 -61q-2 -68 31.5 -94.5 t95.5 -26.5l-33 -139q-74 0 -123 -43t-69 -131q0 -2 -5.5 -24.5t-12.5 -57.5l-16 -80l-18 -90q-23 -109 -51 -244q-20 -96 -79.5 -155.5t-151.5 -59.5h-164z" /> +<glyph unicode="~" horiz-adv-x="983" d="M94 739q88 68 160 94.5t131 26.5q57 0 106.5 -17.5t94.5 -39t88 -38.5t90 -17q39 0 80 16t88 57l69 -125q-78 -53 -140 -74.5t-113 -21.5q-55 0 -101.5 17.5t-88.5 39t-84 39t-91 17.5q-47 0 -100.5 -21.5t-118.5 -75.5z" /> +<glyph unicode="¡" horiz-adv-x="593" d="M37 -410l151 711l109 361h96l-45 -361l-151 -711h-160zM268 928q0 55 33 87t86 32t86 -32t33 -87q0 -53 -33 -86t-86 -33t-86 33t-33 86z" /> +<glyph unicode="¢" d="M207 303q0 158 39 286t105.5 223t154.5 153.5t186 74.5l41 189h137l-41 -182q53 -6 93.5 -18.5t74.5 -27.5l-57 -127q-27 16 -65.5 26.5t-86.5 14.5l-170 -804q55 8 110.5 32.5t90.5 46.5l39 -102q-51 -43 -120.5 -69.5t-135.5 -36.5l-39 -187h-135l39 185 q-78 12 -129 46.5t-80 81t-40 97.5t-11 98zM371 367q0 -113 37.5 -175.5t105.5 -78.5l168 796q-61 -16 -117.5 -66t-99.5 -124t-68.5 -165t-25.5 -187z" /> +<glyph unicode="£" d="M76 0l30 145q61 0 118 31t100 83t68.5 124t25.5 158q0 41 -4 74.5t-11 66.5h-192l31 131h133q-8 37 -12.5 79t-4.5 95q0 117 41 206t110 147.5t161 88t196 29.5q82 0 155 -17.5t120 -43.5l-56 -131q-41 23 -106.5 37t-147.5 14q-63 0 -119.5 -21.5t-98.5 -63.5 t-66.5 -102.5t-24.5 -138.5q0 -63 5 -104t14 -74h317l-31 -131h-256q4 -25 6.5 -55.5t2.5 -71.5q0 -68 -13.5 -125t-33 -103t-44 -80t-47.5 -54l-92 -70l-2 -10l127 28h500l-31 -141h-868z" /> +<glyph unicode="¤" d="M127 293l158 160l69 45q-63 86 -63 209q0 59 17.5 112t45.5 99l-69 43l-158 159l100 101l160 -158l43 -72q86 68 211 68q121 0 211 -68l45 72l160 158l98 -101l-156 -159l-71 -46q66 -88 65 -208q0 -123 -65 -211l71 -43l156 -160l-98 -98l-160 157l-43 68 q-88 -63 -213 -64q-127 0 -211 64l-43 -68l-160 -157zM432 707q0 -92 58.5 -153.5t150.5 -61.5t151.5 61t59.5 154q0 92 -59.5 154.5t-151.5 62.5t-150.5 -62.5t-58.5 -154.5z" /> +<glyph unicode="¥" d="M184 297l25 123h237l27 129h-235l26 123h182l-235 762h178l189 -627l6 -125h2l61 129l436 623h185l-553 -762h184l-27 -123h-235l-27 -129h236l-27 -123h-235l-62 -297h-164l62 297h-236z" /> +<glyph unicode="¦" horiz-adv-x="487" d="M236 -266v688h141v-688h-141zM236 745v689h141v-689h-141z" /> +<glyph unicode="§" horiz-adv-x="968" d="M98 49l66 125q41 -23 99.5 -41t131.5 -18q82 0 137.5 31.5t55.5 107.5q0 45 -29 75.5t-74 54.5t-99 48.5t-99 57t-76 79.5t-31 121q0 90 44 153.5t114 110.5l94 37q-47 39 -66.5 82t-19.5 94q0 61 28.5 114.5t78 92.5t116 61.5t144.5 22.5q106 0 170.5 -18.5t111.5 -46.5 l-59 -125q-41 23 -101.5 37t-132.5 14q-88 0 -142 -44t-54 -114q0 -43 32.5 -69.5t78 -47t99.5 -41t99 -52t76 -79t31 -122.5q0 -88 -47.5 -158t-112.5 -111l-111 -37q47 -33 72 -75.5t25 -114.5q0 -70 -30 -122t-79 -87t-114.5 -52.5t-139.5 -17.5q-106 0 -173 22.5 t-114 51.5zM344 713q0 -43 18.5 -74t49 -53.5t72.5 -40t89 -35.5q31 12 63 31.5t59.5 46t45 61.5t17.5 78q0 45 -18.5 73.5t-51.5 50t-76 38t-92 37.5q-31 -12 -62.5 -32t-57 -45.5t-41 -59t-15.5 -76.5z" /> +<glyph unicode="¨" horiz-adv-x="501" d="M180 1337q0 45 25.5 75t68.5 30t70 -30t27 -75q0 -41 -27 -70.5t-70 -29.5t-68.5 29.5t-25.5 70.5zM555 1339q0 43 25.5 73t68.5 30q45 0 70.5 -30t25.5 -73t-25.5 -72.5t-70.5 -29.5q-43 0 -68.5 29.5t-25.5 72.5z" /> +<glyph unicode="©" horiz-adv-x="1650" d="M158 594q0 170 57 304t155.5 226.5t229.5 141.5t279 49q147 0 278 -49t229.5 -141.5t155.5 -226.5t57 -304t-57 -304t-155.5 -226.5t-229.5 -141.5t-278 -49q-164 0 -297 49t-227.5 141.5t-145.5 226.5t-51 304zM301 594q0 -141 45 -251t123 -183.5t183.5 -112.5 t226.5 -39t226 39t183 112.5t123 183.5t45 251t-45 250.5t-123 183.5t-183.5 113t-225.5 39q-121 0 -226.5 -39t-183.5 -113t-123 -183.5t-45 -250.5zM535 594q0 186 93 287.5t246 101.5q37 0 67 -4t55.5 -11t50 -17.5t55.5 -22.5l-53 -125q-45 23 -86 31t-70 8 q-86 0 -140.5 -53.5t-54.5 -194.5q0 -119 53.5 -183.5t157.5 -66.5q96 0 164 37l43 -121q-47 -27 -105.5 -41t-136.5 -14q-166 0 -252.5 104.5t-86.5 284.5z" /> +<glyph unicode="ª" horiz-adv-x="780" d="M123 946q0 63 29.5 108.5t79 75t114 43t135.5 13.5q29 0 57.5 -2t57.5 -6q12 39 12 69q0 88 -116 88q-78 0 -132.5 -15t-95.5 -34l-10 100q53 27 126 45.5t171 18.5q96 0 146.5 -43t50.5 -109q0 -51 -15.5 -117.5t-35 -138t-35 -140t-15.5 -124.5h-102l-6 94h-7 q-35 -35 -88 -68.5t-137 -33.5q-92 0 -138 52t-46 124zM264 961q0 -33 20.5 -54.5t65.5 -21.5q84 0 132 38t73 74l16 86q-20 2 -39.5 2h-42.5q-43 0 -82.5 -5t-71.5 -18t-51.5 -38t-19.5 -63z" /> +<glyph unicode="«" horiz-adv-x="929" d="M78 530l409 471l93 -96l-254 -297l-117 -76l72 -75l137 -291l-111 -88zM434 530l406 467l90 -94l-252 -295l-115 -76l70 -75l137 -289l-111 -86z" /> +<glyph unicode="¬" horiz-adv-x="1034" d="M137 655v148h869v-393h-144v245h-725z" /> +<glyph unicode="­" horiz-adv-x="700" d="M129 520l33 139h471l-35 -139h-469z" /> +<glyph unicode="®" horiz-adv-x="1433" d="M281 924q0 131 43 232t117.5 170t173 104.5t208.5 35.5q113 0 212.5 -35.5t173 -104.5t115.5 -170t42 -232t-43 -232.5t-118 -170t-173 -104.5t-209 -36q-115 0 -213 36t-171.5 104.5t-115.5 170t-42 232.5zM410 924q0 -106 32.5 -185.5t89 -131.5t132 -78.5t159.5 -26.5 q88 0 164 25.5t131.5 77.5t87 131t31.5 188q0 106 -33 185t-89 131t-131 79t-161 27q-90 0 -165.5 -27t-131 -79t-86 -131t-30.5 -185zM612 659v531q33 10 92.5 15t112.5 5q86 0 147.5 -35.5t61.5 -123.5q0 -66 -42 -101t-103 -39l57 -28l152 -224h-125l-148 213l-98 31 v-244h-107zM719 965h69q59 0 92 18t33 64q1 71 -118 71q-23 0 -43.5 -1t-32.5 -7v-145z" /> +<glyph unicode="¯" horiz-adv-x="641" d="M246 1190l28 127h576l-27 -127h-577z" /> +<glyph unicode="°" horiz-adv-x="870" d="M289 1169q0 63 22.5 116.5t61.5 91.5t92 59.5t113 21.5q59 0 112 -19.5t92 -57.5t61.5 -91t22.5 -121t-22.5 -121t-61.5 -90.5t-92 -57t-112 -19.5t-112.5 19.5t-92.5 57t-61.5 90.5t-22.5 121zM420 1169q0 -78 47 -121.5t111 -43.5q63 0 110 44t47 121q0 78 -47 122 t-110 44t-110.5 -44t-47.5 -122z" /> +<glyph unicode="±" horiz-adv-x="983" d="M113 365v147h868v-147h-868zM113 862v148h360v370h148v-370h360v-148h-360v-246h-148v246h-360z" /> +<glyph unicode="²" horiz-adv-x="772" d="M221 778l15 68q37 27 89 66.5t109.5 89t112.5 104.5t100 111.5t73 109.5t28 100q0 94 -113 95q-53 0 -106.5 -19.5t-94.5 -44.5l-18 117q57 37 129 57.5t141 20.5q37 0 74 -9.5t65.5 -32t47 -59.5t18.5 -92q0 -66 -29.5 -132t-80 -133t-116 -129.5t-134.5 -119.5 l-103 -63v-6l117 32h268l-28 -131h-564z" /> +<glyph unicode="³" horiz-adv-x="772" d="M275 803l53 123q29 -16 72 -27.5t96 -11.5q115 0 169 56t54 134q0 55 -32.5 83t-131.5 28h-106l8 47l237 240l78 53l-98 -13h-248l27 123h497l-14 -67l-254 -254l-53 -37l-2 -4l45 6q78 0 132 -50t54 -136q0 -66 -20.5 -126.5t-65.5 -106.5t-117.5 -72.5t-179.5 -26.5 q-70 0 -118 12t-82 27z" /> +<glyph unicode="´" horiz-adv-x="487" d="M287 1169l180 306h172l-10 -43l-252 -263h-90z" /> +<glyph unicode="¶" horiz-adv-x="1013" d="M154 1036q0 76 23.5 147.5t68.5 127t110.5 89.5t147.5 34h92v-1700h-141v901q-66 0 -121 33.5t-95 90t-62.5 129.5t-22.5 148zM774 -266v1700h141v-1700h-141z" /> +<glyph unicode="·" horiz-adv-x="546" d="M201 606q0 55 32.5 87t85.5 32t86 -31.5t33 -87.5q0 -53 -32.5 -86t-86.5 -33q-53 0 -85.5 33t-32.5 86z" /> +<glyph unicode="¸" horiz-adv-x="743" d="M102 -418l35 80q10 -2 21.5 -2h21.5q43 0 72 8t45 19.5t22.5 26t6.5 26.5q0 39 -43 57.5t-115 18.5l133 184h109l-68 -88q55 -6 91 -42t36 -101q0 -86 -64.5 -141.5t-193.5 -55.5q-25 0 -52.5 3t-56.5 7z" /> +<glyph unicode="¹" horiz-adv-x="772" d="M279 778l26 125h207l111 520l28 74l-63 -57l-166 -92l-43 94l348 211h80l-160 -750h185l-27 -125h-526z" /> +<glyph unicode="º" horiz-adv-x="776" d="M123 1004q0 119 36 204.5t91 141t122.5 82t133.5 26.5q117 0 177 -63.5t60 -180.5q0 -111 -30.5 -194.5t-82.5 -141t-123 -87t-149 -29.5q-104 0 -169.5 63.5t-65.5 178.5zM264 1020q0 -66 30 -102.5t89 -36.5q43 0 83 22.5t70.5 64.5t48 102t17.5 136q0 72 -31.5 102.5 t-89.5 30.5q-43 0 -83 -25.5t-69.5 -68.5t-47 -101t-17.5 -124z" /> +<glyph unicode="»" horiz-adv-x="929" d="M78 174l252 295l114 78l-71 88l-140 289l117 73l223 -448l-405 -467zM428 172l254 297l115 78l-72 90l-141 291l118 73l228 -452l-410 -471z" /> +<glyph unicode="¼" horiz-adv-x="1632" d="M276 1243l355 205h80l-187 -875h-135l135 646l31 73l-64 -57l-165 -92zM312 49l997 1411l107 -74l-998 -1411zM838 197l14 76l569 618h88l-121 -573h162l-26 -121h-160l-43 -197h-131l43 197h-395zM1005 307l101 11h151l56 262l34 100h-4l-63 -94l-197 -215z" /> +<glyph unicode="½" horiz-adv-x="1656" d="M276 1243l355 205h80l-187 -875h-135l135 646l31 73l-64 -57l-165 -92zM312 49l997 1411l107 -74l-998 -1411zM936 0l15 68q37 27 89 66.5t109.5 89t112.5 104.5t100 111.5t73 109.5t28 100q0 94 -113 95q-53 0 -106.5 -19.5t-94.5 -44.5l-18 117q57 37 129 57.5 t141 20.5q37 0 74 -9.5t65.5 -32t47 -59.5t18.5 -92q0 -66 -29.5 -132t-80 -133t-116 -129.5t-134.5 -119.5l-103 -63v-6l117 32h268l-28 -131h-564z" /> +<glyph unicode="¾" horiz-adv-x="1705" d="M207 598l53 123q29 -16 72 -27.5t96 -11.5q115 0 169 56t54 134q0 55 -32.5 83t-131.5 28h-106l8 47l237 240l78 53l-98 -13h-248l27 123h497l-14 -67l-254 -254l-53 -37l-2 -4l45 6q78 0 132 -50t54 -136q0 -66 -20.5 -126.5t-65.5 -106.5t-117.5 -72.5t-179.5 -26.5 q-70 0 -118 12t-82 27zM385 49l997 1411l107 -74l-998 -1411zM912 197l14 76l569 618h88l-121 -573h162l-26 -121h-160l-43 -197h-131l43 197h-395zM1079 307l101 11h151l56 262l34 100h-4l-63 -94l-197 -215z" /> +<glyph unicode="¿" horiz-adv-x="845" d="M-29 -184q0 111 35 191.5t88 144t117.5 118t123 111.5t102.5 123.5t59 157.5h131q-10 -102 -51 -179t-96.5 -139.5t-116 -116t-110.5 -109t-84 -116.5t-34 -141t42 -122t147 -42q72 0 141.5 27.5t128.5 62.5l41 -119q-41 -25 -80 -43t-82 -31.5t-93 -20.5t-114 -7 q-152 0 -223.5 69.5t-71.5 180.5zM479 930q0 55 33 87t86 32t86 -32t33 -87q0 -53 -33 -86t-86 -33t-86 33t-33 86z" /> +<glyph unicode="À" horiz-adv-x="1140" d="M-68 0l828 1456h76l206 -1456h-157l-58 397h-499l-222 -397h-174zM408 545h403l-59 436l-4 217h-3l-92 -221zM540 1739l8 43h207l178 -242h-129z" /> +<glyph unicode="Á" horiz-adv-x="1140" d="M-68 0l828 1456h76l206 -1456h-157l-58 397h-499l-222 -397h-174zM408 545h403l-59 436l-4 217h-3l-92 -221zM676 1540l280 242h238l-10 -43l-359 -199h-149z" /> +<glyph unicode="Â" horiz-adv-x="1140" d="M-68 0l828 1456h76l206 -1456h-157l-58 397h-499l-222 -397h-174zM408 545h403l-59 436l-4 217h-3l-92 -221zM492 1530l10 45l301 207h98l203 -209l-8 -43h-140l-94 100l-20 72l-51 -70l-146 -102h-153z" /> +<glyph unicode="Ã" horiz-adv-x="1140" d="M-68 0l828 1456h76l206 -1456h-157l-58 397h-499l-222 -397h-174zM408 545h403l-59 436l-4 217h-3l-92 -221zM524 1608q72 66 128 89t104 23q37 0 68.5 -10t61 -23.5t58.5 -23.5t59 -10q51 0 109 43l33 -88q-66 -53 -116 -71.5t-91 -18.5q-37 0 -67.5 10t-60.5 23.5 t-58.5 23.5t-59.5 10t-64.5 -13t-74.5 -48z" /> +<glyph unicode="Ä" horiz-adv-x="1140" d="M-68 0l828 1456h76l206 -1456h-157l-58 397h-499l-222 -397h-174zM408 545h403l-59 436l-4 217h-3l-92 -221zM538 1626q0 41 29 68.5t76 27.5t74.5 -27.5t27.5 -68.5t-27.5 -67.5t-74.5 -26.5t-76 26.5t-29 67.5zM913 1626q0 41 27.5 68.5t74.5 27.5t76 -27.5t29 -68.5 t-28.5 -67.5t-76.5 -26.5q-47 0 -74.5 26.5t-27.5 67.5z" /> +<glyph unicode="Å" horiz-adv-x="1140" d="M-68 0l803 1413q-129 35 -129 160q0 76 51.5 125t163.5 49q102 0 159.5 -44t57.5 -130q0 -72 -49 -118t-147 -52l200 -1403h-157l-58 397h-499l-222 -397h-174zM408 543h403l-59 438l-4 217h-3l-92 -221zM731 1573q0 -35 21.5 -58.5t68.5 -23.5q45 0 68.5 22.5t23.5 59.5 q0 39 -22.5 62.5t-69.5 23.5q-45 0 -67.5 -23.5t-22.5 -62.5z" /> +<glyph unicode="Æ" horiz-adv-x="1648" d="M-127 0l1108 1434h750l-31 -152h-580l-100 -469h530l-32 -151h-529l-110 -510h589l-30 -152h-588h-164l86 403h-407l-304 -403h-188zM479 551h322l145 676h-6l-104 -207z" /> +<glyph unicode="Ç" horiz-adv-x="1114" d="M145 561q0 231 68 400t178.5 280t248.5 164t280 53q117 0 190.5 -16.5t120.5 -38.5l-74 -150q-41 23 -107.5 38.5t-152.5 15.5q-115 0 -220.5 -50.5t-185 -144.5t-127 -229t-47.5 -303q0 -98 26 -181.5t74 -143.5t118.5 -94t160.5 -34q96 0 160 21.5t115 50.5l12 -140 q-66 -45 -140.5 -63.5t-170.5 -20.5l-49 -63q55 -6 91 -42t36 -101q0 -86 -64.5 -141.5t-193.5 -55.5q-25 0 -52.5 3t-56.5 7l35 80q10 -2 21.5 -2h21.5q43 0 71.5 8t45 19.5t22.5 26t6 26.5q0 39 -43 57.5t-114 18.5l118 166q-100 14 -178 64t-132 126t-83 175t-29 214z " /> +<glyph unicode="È" horiz-adv-x="1044" d="M82 0l305 1434h739l-30 -152h-580l-100 -469h530l-31 -151h-530l-109 -510h590l-32 -152h-590h-162zM471 1739l8 43h207l178 -242h-129z" /> +<glyph unicode="É" horiz-adv-x="1044" d="M82 0l305 1434h739l-30 -152h-580l-100 -469h530l-31 -151h-530l-109 -510h590l-32 -152h-590h-162zM643 1540l280 242h238l-10 -43l-359 -199h-149z" /> +<glyph unicode="Ê" horiz-adv-x="1044" d="M82 0l305 1434h739l-30 -152h-580l-100 -469h530l-31 -151h-530l-109 -510h590l-32 -152h-590h-162zM469 1530l10 45l301 207h98l203 -209l-8 -43h-140l-94 100l-20 72l-51 -70l-146 -102h-153z" /> +<glyph unicode="Ë" horiz-adv-x="1044" d="M82 0l305 1434h739l-30 -152h-580l-100 -469h530l-31 -151h-530l-109 -510h590l-32 -152h-590h-162zM491 1626q0 41 29 68.5t76 27.5t74.5 -27.5t27.5 -68.5t-27.5 -67.5t-74.5 -26.5t-76 26.5t-29 67.5zM866 1626q0 41 27.5 68.5t74.5 27.5t76 -27.5t29 -68.5 t-28.5 -67.5t-76.5 -26.5q-47 0 -74.5 26.5t-27.5 67.5z" /> +<glyph unicode="Ì" horiz-adv-x="567" d="M127 0l303 1434h164l-303 -1434h-164zM256 1739l8 43h207l178 -242h-129z" /> +<glyph unicode="Í" horiz-adv-x="567" d="M127 0l303 1434h164l-303 -1434h-164zM387 1540l280 242h238l-10 -43l-359 -199h-149z" /> +<glyph unicode="Î" horiz-adv-x="567" d="M127 0l303 1434h164l-303 -1434h-164zM228 1530l10 45l301 207h98l203 -209l-8 -43h-140l-94 100l-20 72l-51 -70l-146 -102h-153z" /> +<glyph unicode="Ï" horiz-adv-x="567" d="M127 0l303 1434h164l-303 -1434h-164zM252 1626q0 41 29 68.5t76 27.5t74.5 -27.5t27.5 -68.5t-27.5 -67.5t-74.5 -26.5t-76 26.5t-29 67.5zM627 1626q0 41 27.5 68.5t74.5 27.5t76 -27.5t29 -68.5t-28.5 -67.5t-76.5 -26.5q-47 0 -74.5 26.5t-27.5 67.5z" /> +<glyph unicode="Ð" horiz-adv-x="1282" d="M57 680l27 123h176l135 631q78 10 176.5 13t178.5 3q119 0 217 -32t166.5 -97.5t105.5 -165.5t37 -235q0 -90 -16.5 -196t-54.5 -209t-101.5 -199.5t-157.5 -171t-220 -118.5t-292 -44q-31 0 -81 1t-103 3q-139 8 -160 12l146 682h-179zM285 141q8 -2 32.5 -3t52 -2 t53.5 -2t36 -1q178 0 300 74t198.5 186.5t111.5 247.5t35 256q0 92 -20.5 166t-64.5 126t-114 80.5t-168 28.5q-25 0 -55.5 -1t-59 -2t-55 -3t-41.5 -4l-102 -485h281l-25 -123h-283z" /> +<glyph unicode="Ñ" horiz-adv-x="1314" d="M82 0l309 1456h82l447 -958l67 -201h8l19 201l200 936h154l-309 -1457h-76l-448 961l-70 211h-6l-25 -211l-198 -938h-154zM592 1608q72 66 128 89t104 23q37 0 68.5 -10t61 -23.5t58.5 -23.5t59 -10q51 0 109 43l33 -88q-66 -53 -116 -71.5t-91 -18.5q-37 0 -67.5 10 t-60.5 23.5t-58.5 23.5t-59.5 10t-64.5 -13t-74.5 -48z" /> +<glyph unicode="Ò" horiz-adv-x="1333" d="M145 524q0 188 51.5 358.5t146.5 298.5t229.5 202.5t297.5 74.5q98 0 182.5 -29.5t144.5 -94t94 -167t34 -249.5q0 -193 -51 -364t-143.5 -300t-220.5 -204t-281 -75q-242 0 -363 140.5t-121 408.5zM317 526q0 -193 80 -298t236 -105q115 0 210 63.5t164.5 172t107.5 252 t38 302.5q0 119 -26.5 197t-70.5 122t-100.5 61.5t-113.5 17.5q-117 0 -213.5 -64.5t-165 -173t-107.5 -251t-39 -296.5zM637 1739l8 43h207l178 -242h-129z" /> +<glyph unicode="Ó" horiz-adv-x="1333" d="M145 524q0 188 51.5 358.5t146.5 298.5t229.5 202.5t297.5 74.5q98 0 182.5 -29.5t144.5 -94t94 -167t34 -249.5q0 -193 -51 -364t-143.5 -300t-220.5 -204t-281 -75q-242 0 -363 140.5t-121 408.5zM317 526q0 -193 80 -298t236 -105q115 0 210 63.5t164.5 172t107.5 252 t38 302.5q0 119 -26.5 197t-70.5 122t-100.5 61.5t-113.5 17.5q-117 0 -213.5 -64.5t-165 -173t-107.5 -251t-39 -296.5zM809 1540l280 242h238l-10 -43l-359 -199h-149z" /> +<glyph unicode="Ô" horiz-adv-x="1333" d="M145 524q0 188 51.5 358.5t146.5 298.5t229.5 202.5t297.5 74.5q98 0 182.5 -29.5t144.5 -94t94 -167t34 -249.5q0 -193 -51 -364t-143.5 -300t-220.5 -204t-281 -75q-242 0 -363 140.5t-121 408.5zM317 526q0 -193 80 -298t236 -105q115 0 210 63.5t164.5 172t107.5 252 t38 302.5q0 119 -26.5 197t-70.5 122t-100.5 61.5t-113.5 17.5q-117 0 -213.5 -64.5t-165 -173t-107.5 -251t-39 -296.5zM605 1530l10 45l301 207h98l203 -209l-8 -43h-140l-94 100l-20 72l-51 -70l-146 -102h-153z" /> +<glyph unicode="Õ" horiz-adv-x="1333" d="M145 524q0 188 51.5 358.5t146.5 298.5t229.5 202.5t297.5 74.5q98 0 182.5 -29.5t144.5 -94t94 -167t34 -249.5q0 -193 -51 -364t-143.5 -300t-220.5 -204t-281 -75q-242 0 -363 140.5t-121 408.5zM317 526q0 -193 80 -298t236 -105q115 0 210 63.5t164.5 172t107.5 252 t38 302.5q0 119 -26.5 197t-70.5 122t-100.5 61.5t-113.5 17.5q-117 0 -213.5 -64.5t-165 -173t-107.5 -251t-39 -296.5zM610 1608q72 66 128 89t104 23q37 0 68.5 -10t61 -23.5t58.5 -23.5t59 -10q51 0 109 43l33 -88q-66 -53 -116 -71.5t-91 -18.5q-37 0 -67.5 10 t-60.5 23.5t-58.5 23.5t-59.5 10t-64.5 -13t-74.5 -48z" /> +<glyph unicode="Ö" horiz-adv-x="1333" d="M145 524q0 188 51.5 358.5t146.5 298.5t229.5 202.5t297.5 74.5q98 0 182.5 -29.5t144.5 -94t94 -167t34 -249.5q0 -193 -51 -364t-143.5 -300t-220.5 -204t-281 -75q-242 0 -363 140.5t-121 408.5zM317 526q0 -193 80 -298t236 -105q115 0 210 63.5t164.5 172t107.5 252 t38 302.5q0 119 -26.5 197t-70.5 122t-100.5 61.5t-113.5 17.5q-117 0 -213.5 -64.5t-165 -173t-107.5 -251t-39 -296.5zM628 1626q0 41 29 68.5t76 27.5t74.5 -27.5t27.5 -68.5t-27.5 -67.5t-74.5 -26.5t-76 26.5t-29 67.5zM1003 1626q0 41 27.5 68.5t74.5 27.5t76 -27.5 t29 -68.5t-28.5 -67.5t-76.5 -26.5q-47 0 -74.5 26.5t-27.5 67.5z" /> +<glyph unicode="×" horiz-adv-x="983" d="M178 430l260 264l-260 256l105 109l260 -260l260 260l104 -109l-258 -256l258 -260l-104 -106l-260 260l-258 -262z" /> +<glyph unicode="Ø" horiz-adv-x="1333" d="M145 524q0 188 51.5 358.5t146.5 298.5t229.5 202.5t297.5 74.5q80 0 151 -19.5t126 -60.5l59 80l101 -78l-72 -96q43 -63 66.5 -153.5t23.5 -212.5q0 -193 -51 -364t-143.5 -300t-220.5 -204t-281 -75q-180 0 -297 82l-60 -80l-102 80l70 95q-95 132 -95 372zM317 526 q0 -129 37 -221l690 934q-43 39 -95 55.5t-107 16.5q-117 0 -213.5 -64.5t-165 -173t-107.5 -251t-39 -296.5zM430 193q80 -70 203 -70q115 0 210 63.5t164.5 172t107.5 251.5t38 303q0 66 -8 119t-25 94z" /> +<glyph unicode="Ù" horiz-adv-x="1265" d="M178 338q0 84 23 190l190 906h164l-190 -908q-23 -90 -23 -164q0 -129 67.5 -179t200.5 -50q80 0 140.5 22.5t104.5 69.5t73.5 121t52.5 178l193 910h155l-201 -957q-29 -131 -71.5 -225t-107 -153.5t-154.5 -88t-209 -28.5q-113 0 -191 25.5t-126 71.5t-69.5 112.5 t-21.5 146.5zM629 1739l8 43h207l178 -242h-129z" /> +<glyph unicode="Ú" horiz-adv-x="1265" d="M178 338q0 84 23 190l190 906h164l-190 -908q-23 -90 -23 -164q0 -129 67.5 -179t200.5 -50q80 0 140.5 22.5t104.5 69.5t73.5 121t52.5 178l193 910h155l-201 -957q-29 -131 -71.5 -225t-107 -153.5t-154.5 -88t-209 -28.5q-113 0 -191 25.5t-126 71.5t-69.5 112.5 t-21.5 146.5zM760 1540l280 242h238l-10 -43l-359 -199h-149z" /> +<glyph unicode="Û" horiz-adv-x="1265" d="M178 338q0 84 23 190l190 906h164l-190 -908q-23 -90 -23 -164q0 -129 67.5 -179t200.5 -50q80 0 140.5 22.5t104.5 69.5t73.5 121t52.5 178l193 910h155l-201 -957q-29 -131 -71.5 -225t-107 -153.5t-154.5 -88t-209 -28.5q-113 0 -191 25.5t-126 71.5t-69.5 112.5 t-21.5 146.5zM578 1530l10 45l301 207h98l203 -209l-8 -43h-140l-94 100l-20 72l-51 -70l-146 -102h-153z" /> +<glyph unicode="Ü" horiz-adv-x="1265" d="M178 338q0 84 23 190l190 906h164l-190 -908q-23 -90 -23 -164q0 -129 67.5 -179t200.5 -50q80 0 140.5 22.5t104.5 69.5t73.5 121t52.5 178l193 910h155l-201 -957q-29 -131 -71.5 -225t-107 -153.5t-154.5 -88t-209 -28.5q-113 0 -191 25.5t-126 71.5t-69.5 112.5 t-21.5 146.5zM606 1626q0 41 29 68.5t76 27.5t74.5 -27.5t27.5 -68.5t-27.5 -67.5t-74.5 -26.5t-76 26.5t-29 67.5zM981 1626q0 41 27.5 68.5t74.5 27.5t76 -27.5t29 -68.5t-28.5 -67.5t-76.5 -26.5q-47 0 -74.5 26.5t-27.5 67.5z" /> +<glyph unicode="Ý" horiz-adv-x="1087" d="M221 1434h178l183 -627l6 -125h2l61 129l445 623h184l-623 -863l-120 -571h-164l121 569zM690 1540l280 242h238l-10 -43l-359 -199h-149z" /> +<glyph unicode="Þ" horiz-adv-x="1089" d="M82 0l305 1434h162l-33 -154q82 6 166 6q94 0 174 -20.5t139.5 -65.5t94 -115.5t34.5 -169.5q0 -156 -55 -260t-147.5 -167.5t-207 -90t-231.5 -26.5h-31.5t-46 1t-47 3t-32.5 4l-80 -379h-164zM358 530q8 -4 28 -5t41.5 -3t41.5 -2h31q88 0 170 18.5t145.5 62.5t100 117 t36.5 181q0 74 -24.5 120t-66.5 71.5t-97.5 36t-116.5 10.5q-47 0 -91 -3.5t-73 -9.5z" /> +<glyph unicode="ß" horiz-adv-x="1144" d="M-233 -385l45 115q41 -14 74.5 -18.5t82.5 -4.5q78 0 117 80t61 213l168 893h-176l27 131h176l14 57q41 195 153 280t282 85q86 0 145 -20.5t96 -54.5t54.5 -78t17.5 -89q0 -72 -25.5 -121t-63.5 -85.5t-83 -64.5t-83 -55.5t-63.5 -58.5t-25.5 -74q0 -39 23.5 -62.5 t59.5 -41.5t78 -37.5t77.5 -50.5t59 -77t23.5 -120q0 -80 -35.5 -149.5t-96 -120.5t-141.5 -81t-171 -30q-72 0 -133.5 13.5t-110.5 44.5l74 137q82 -51 186 -51q43 0 90.5 15.5t85 44t63.5 70.5t26 97q0 47 -24 78t-59.5 53.5t-76.5 42t-78 47t-60.5 68.5t-23.5 104 q0 61 25.5 104.5t64.5 78t84 63.5t84 57.5t62.5 61.5t23.5 76q0 61 -45 92t-127 31q-223 2 -270 -283l-197 -1020q-18 -113 -43 -192.5t-61.5 -132t-90 -77t-129.5 -24.5q-61 0 -113 9t-97 32z" /> +<glyph unicode="à" horiz-adv-x="997" d="M92 293q0 131 34 266t104.5 243.5t182 178.5t269.5 70q57 0 140 -13.5t155 -36.5l-129 -598q-16 -76 -22.5 -153.5t-6.5 -145.5v-58.5t4 -49.5h-114l-29 178h-8q-25 -35 -61 -70.5t-79 -64.5t-92 -46.5t-104 -17.5q-244 0 -244 318zM256 293q0 -78 30.5 -132.5 t96.5 -54.5q49 0 94 24t85 58.5t71 74.5t49 75l115 553q-61 29 -156 29q-94 0 -166 -55.5t-121 -144.5t-73.5 -201.5t-24.5 -225.5zM481 1432l8 43h187l59 -306h-88z" /> +<glyph unicode="á" horiz-adv-x="997" d="M92 293q0 131 34 266t104.5 243.5t182 178.5t269.5 70q57 0 140 -13.5t155 -36.5l-129 -598q-16 -76 -22.5 -153.5t-6.5 -145.5v-58.5t4 -49.5h-114l-29 178h-8q-25 -35 -61 -70.5t-79 -64.5t-92 -46.5t-104 -17.5q-244 0 -244 318zM256 293q0 -78 30.5 -132.5 t96.5 -54.5q49 0 94 24t85 58.5t71 74.5t49 75l115 553q-61 29 -156 29q-94 0 -166 -55.5t-121 -144.5t-73.5 -201.5t-24.5 -225.5zM623 1169l180 306h172l-10 -43l-252 -263h-90z" /> +<glyph unicode="â" horiz-adv-x="997" d="M92 293q0 131 34 266t104.5 243.5t182 178.5t269.5 70q57 0 140 -13.5t155 -36.5l-129 -598q-16 -76 -22.5 -153.5t-6.5 -145.5v-58.5t4 -49.5h-114l-29 178h-8q-25 -35 -61 -70.5t-79 -64.5t-92 -46.5t-104 -17.5q-244 0 -244 318zM256 293q0 -78 30.5 -132.5 t96.5 -54.5q49 0 94 24t85 58.5t71 74.5t49 75l115 553q-61 29 -156 29q-94 0 -166 -55.5t-121 -144.5t-73.5 -201.5t-24.5 -225.5zM414 1126l319 373h62l135 -373h-129l-49 136l-13 118l-69 -118l-117 -136h-139z" /> +<glyph unicode="ã" horiz-adv-x="997" d="M92 293q0 131 34 266t104.5 243.5t182 178.5t269.5 70q57 0 140 -13.5t155 -36.5l-129 -598q-16 -76 -22.5 -153.5t-6.5 -145.5v-58.5t4 -49.5h-114l-29 178h-8q-25 -35 -61 -70.5t-79 -64.5t-92 -46.5t-104 -17.5q-244 0 -244 318zM256 293q0 -78 30.5 -132.5 t96.5 -54.5q49 0 94 24t85 58.5t71 74.5t49 75l115 553q-61 29 -156 29q-94 0 -166 -55.5t-121 -144.5t-73.5 -201.5t-24.5 -225.5zM444 1343q66 68 114 93.5t85 25.5q31 0 55.5 -13t48 -28.5t47 -28t52.5 -12.5q47 0 110 50l31 -89q-59 -59 -102 -81.5t-78 -22.5 q-31 0 -55.5 12.5t-48 27.5t-48 27.5t-55.5 12.5q-27 0 -57.5 -13.5t-71.5 -46.5z" /> +<glyph unicode="ä" horiz-adv-x="997" d="M92 293q0 131 34 266t104.5 243.5t182 178.5t269.5 70q57 0 140 -13.5t155 -36.5l-129 -598q-16 -76 -22.5 -153.5t-6.5 -145.5v-58.5t4 -49.5h-114l-29 178h-8q-25 -35 -61 -70.5t-79 -64.5t-92 -46.5t-104 -17.5q-244 0 -244 318zM256 293q0 -78 30.5 -132.5 t96.5 -54.5q49 0 94 24t85 58.5t71 74.5t49 75l115 553q-61 29 -156 29q-94 0 -166 -55.5t-121 -144.5t-73.5 -201.5t-24.5 -225.5zM379 1337q0 45 25.5 75t68.5 30t70 -30t27 -75q0 -41 -27 -70.5t-70 -29.5t-68.5 29.5t-25.5 70.5zM754 1339q0 43 25.5 73t68.5 30 q45 0 70.5 -30t25.5 -73t-25.5 -72.5t-70.5 -29.5q-43 0 -68.5 29.5t-25.5 72.5z" /> +<glyph unicode="å" horiz-adv-x="997" d="M92 293q0 131 34 266t104.5 243.5t182 178.5t269.5 70q57 0 140 -13.5t155 -36.5l-129 -598q-16 -76 -22.5 -153.5t-6.5 -145.5v-58.5t4 -49.5h-114l-29 178h-8q-25 -35 -61 -70.5t-79 -64.5t-92 -46.5t-104 -17.5q-244 0 -244 318zM256 293q0 -78 30.5 -132.5 t96.5 -54.5q49 0 94 24t85 58.5t71 74.5t49 75l115 553q-61 29 -156 29q-94 0 -166 -55.5t-121 -144.5t-73.5 -201.5t-24.5 -225.5zM514 1317q0 86 54 136t144 50q86 0 143.5 -45t57.5 -141q0 -80 -57.5 -132t-143.5 -52t-142 48t-56 136zM624 1317q0 -41 27.5 -63.5 t60.5 -22.5q39 0 64.5 20.5t25.5 65.5t-27.5 66.5t-62.5 21.5t-61.5 -20.5t-26.5 -67.5z" /> +<glyph unicode="æ" horiz-adv-x="1544" d="M57 227q0 104 45 175t122 113t179.5 60.5t214.5 18.5h46.5t46.5 -2q41 133 41 199t-39 92t-129 26q-33 0 -73 -5t-81 -15t-79 -23.5t-68 -27.5l-25 123q86 47 187.5 63t205.5 16q98 0 160.5 -34.5t77.5 -100.5q66 76 159 110t179 34q152 0 225.5 -67t73.5 -165 q0 -109 -50.5 -174t-140.5 -102t-217 -50.5t-278 -15.5q-6 -35 -10.5 -65.5t-4.5 -59.5q0 -113 57.5 -178.5t194.5 -65.5q66 0 136.5 26t113.5 56l35 -110q-70 -49 -165 -76t-193 -27q-119 0 -200 54.5t-110 148.5h-14q-66 -80 -163 -137t-214 -57q-63 0 -109.5 20.5t-77 54 t-45 77.5t-14.5 91zM221 262q0 -78 35.5 -112.5t103.5 -34.5q55 0 105.5 26.5t91.5 62.5t70.5 71.5t44.5 58.5l16 139q-23 2 -47.5 3t-46.5 1q-78 0 -146.5 -12t-118.5 -39t-79 -67t-29 -97zM864 600q100 0 191.5 5t161 24.5t110.5 58.5t41 107q0 51 -34 87t-132 36 q-125 0 -209 -82t-129 -236z" /> +<glyph unicode="ç" horiz-adv-x="860" d="M102 303q0 174 47.5 312.5t126 234.5t181 147.5t211.5 51.5q78 0 128 -14.5t91 -33.5l-58 -127q-35 20 -86 32t-110 12q-70 0 -136.5 -47.5t-117.5 -124t-82 -176t-31 -203.5q0 -133 55.5 -197t149.5 -64q61 0 129 28t109 56l39 -102q-53 -45 -126 -74.5t-139 -38.5 l-51 -63q55 -6 91 -42t36 -101q0 -86 -64.5 -141.5t-193.5 -55.5q-25 0 -52.5 3t-55.5 7l34 80q10 -2 21.5 -2h21.5q43 0 72 8t45 19.5t22.5 26t6.5 26.5q0 39 -43 57.5t-115 18.5l117 159q-82 8 -135.5 43t-84 83.5t-42 101.5t-11.5 100z" /> +<glyph unicode="è" horiz-adv-x="948" d="M102 332q0 168 47.5 301t124 225t174 141.5t199.5 49.5q74 0 128 -20.5t89 -54.5t51.5 -78t16.5 -93q0 -145 -141.5 -228t-411.5 -83q-25 0 -51.5 1t-55.5 3q-8 -39 -12 -74t-4 -62q0 -113 51 -183.5t160 -70.5q90 0 165 30t116 63l49 -99q-72 -61 -169.5 -93t-195.5 -32 q-164 0 -247 94.5t-83 262.5zM301 610q78 0 162 4t152.5 21.5t113.5 55.5t45 106q0 20 -7 41.5t-23.5 39t-46 29t-74.5 11.5q-113 0 -196 -77t-126 -231zM448 1432l8 43h187l59 -306h-88z" /> +<glyph unicode="é" horiz-adv-x="948" d="M102 332q0 168 47.5 301t124 225t174 141.5t199.5 49.5q74 0 128 -20.5t89 -54.5t51.5 -78t16.5 -93q0 -145 -141.5 -228t-411.5 -83q-25 0 -51.5 1t-55.5 3q-8 -39 -12 -74t-4 -62q0 -113 51 -183.5t160 -70.5q90 0 165 30t116 63l49 -99q-72 -61 -169.5 -93t-195.5 -32 q-164 0 -247 94.5t-83 262.5zM301 610q78 0 162 4t152.5 21.5t113.5 55.5t45 106q0 20 -7 41.5t-23.5 39t-46 29t-74.5 11.5q-113 0 -196 -77t-126 -231zM586 1169l180 306h172l-10 -43l-252 -263h-90z" /> +<glyph unicode="ê" horiz-adv-x="948" d="M102 332q0 168 47.5 301t124 225t174 141.5t199.5 49.5q74 0 128 -20.5t89 -54.5t51.5 -78t16.5 -93q0 -145 -141.5 -228t-411.5 -83q-25 0 -51.5 1t-55.5 3q-8 -39 -12 -74t-4 -62q0 -113 51 -183.5t160 -70.5q90 0 165 30t116 63l49 -99q-72 -61 -169.5 -93t-195.5 -32 q-164 0 -247 94.5t-83 262.5zM301 610q78 0 162 4t152.5 21.5t113.5 55.5t45 106q0 20 -7 41.5t-23.5 39t-46 29t-74.5 11.5q-113 0 -196 -77t-126 -231zM383 1126l319 373h62l135 -373h-129l-49 136l-13 118l-69 -118l-117 -136h-139z" /> +<glyph unicode="ë" horiz-adv-x="948" d="M102 332q0 168 47.5 301t124 225t174 141.5t199.5 49.5q74 0 128 -20.5t89 -54.5t51.5 -78t16.5 -93q0 -145 -141.5 -228t-411.5 -83q-25 0 -51.5 1t-55.5 3q-8 -39 -12 -74t-4 -62q0 -113 51 -183.5t160 -70.5q90 0 165 30t116 63l49 -99q-72 -61 -169.5 -93t-195.5 -32 q-164 0 -247 94.5t-83 262.5zM301 610q78 0 162 4t152.5 21.5t113.5 55.5t45 106q0 20 -7 41.5t-23.5 39t-46 29t-74.5 11.5q-113 0 -196 -77t-126 -231zM399 1337q0 45 25.5 75t68.5 30t70 -30t27 -75q0 -41 -27 -70.5t-70 -29.5t-68.5 29.5t-25.5 70.5zM774 1339 q0 43 25.5 73t68.5 30q45 0 70.5 -30t25.5 -73t-25.5 -72.5t-70.5 -29.5q-43 0 -68.5 29.5t-25.5 72.5z" /> +<glyph unicode="ì" horiz-adv-x="530" d="M111 0l217 1024h153l-217 -1024h-153zM254 1432l8 43h187l59 -306h-88z" /> +<glyph unicode="í" horiz-adv-x="530" d="M111 0l217 1024h153l-217 -1024h-153zM361 1169l180 306h172l-10 -43l-252 -263h-90z" /> +<glyph unicode="î" horiz-adv-x="530" d="M111 0l217 1024h153l-217 -1024h-153zM160 1126l319 373h62l135 -373h-129l-49 136l-13 118l-69 -118l-117 -136h-139z" /> +<glyph unicode="ï" horiz-adv-x="530" d="M111 0l217 1024h153l-217 -1024h-153zM182 1337q0 45 25.5 75t68.5 30t70 -30t27 -75q0 -41 -27 -70.5t-70 -29.5t-68.5 29.5t-25.5 70.5zM557 1339q0 43 25.5 73t68.5 30q45 0 70.5 -30t25.5 -73t-25.5 -72.5t-70.5 -29.5q-43 0 -68.5 29.5t-25.5 72.5z" /> +<glyph unicode="ð" horiz-adv-x="1015" d="M104 319q0 141 38 271.5t107.5 232t164 161.5t209.5 60q88 0 131 -23.5t73 -57.5q2 143 -51 245l-166 -71l-45 82l160 69q-33 41 -71 68.5t-79 46.5l121 55q94 -39 156 -115l156 68l41 -84l-146 -63q33 -66 51.5 -148t18.5 -182q0 -258 -48 -439.5t-126 -297t-176.5 -169 t-198.5 -53.5q-80 0 -140.5 27t-100.5 73t-59.5 109.5t-19.5 134.5zM266 336q0 -111 47 -170.5t119 -59.5q109 0 181.5 73t116.5 177.5t61.5 221t17.5 204.5q-16 59 -68.5 94t-124.5 35q-78 0 -142 -53t-110.5 -137t-72 -185.5t-25.5 -199.5z" /> +<glyph unicode="ñ" horiz-adv-x="1069" d="M54 0l217 1024h106l-8 -176h8q27 33 64 68.5t83 64.5t103.5 48.5t126.5 19.5q102 0 161.5 -49.5t59.5 -172.5q0 -61 -18 -147l-146 -680h-153l137 647q8 37 14.5 73t6.5 64q0 59 -28 96.5t-103 37.5q-53 0 -104.5 -25t-96.5 -62.5t-81 -84t-61 -91.5l-135 -655h-153z M450 1343q66 68 114 93.5t85 25.5q31 0 55.5 -13t48 -28.5t47 -28t52.5 -12.5q47 0 110 50l31 -89q-59 -59 -102 -81.5t-78 -22.5q-31 0 -55.5 12.5t-48 27.5t-48 27.5t-55.5 12.5q-27 0 -57.5 -13.5t-71.5 -46.5z" /> +<glyph unicode="ò" horiz-adv-x="1019" d="M102 319q0 162 42 296.5t116 230.5t171 149.5t208 53.5q86 0 146.5 -28t98.5 -76t54 -110.5t16 -129.5q0 -154 -40 -287t-110.5 -231.5t-164.5 -155t-205 -56.5q-92 0 -154.5 30t-102.5 79t-57.5 110.5t-17.5 124.5zM266 356q0 -121 45 -185.5t144 -64.5q68 0 128 48.5 t106 130.5t74 187.5t28 219.5q0 104 -38 165t-145 61q-68 0 -129 -46.5t-109 -124t-76 -179t-28 -212.5zM473 1432l8 43h187l59 -306h-88z" /> +<glyph unicode="ó" horiz-adv-x="1019" d="M102 319q0 162 42 296.5t116 230.5t171 149.5t208 53.5q86 0 146.5 -28t98.5 -76t54 -110.5t16 -129.5q0 -154 -40 -287t-110.5 -231.5t-164.5 -155t-205 -56.5q-92 0 -154.5 30t-102.5 79t-57.5 110.5t-17.5 124.5zM266 356q0 -121 45 -185.5t144 -64.5q68 0 128 48.5 t106 130.5t74 187.5t28 219.5q0 104 -38 165t-145 61q-68 0 -129 -46.5t-109 -124t-76 -179t-28 -212.5zM590 1169l180 306h172l-10 -43l-252 -263h-90z" /> +<glyph unicode="ô" horiz-adv-x="1019" d="M102 319q0 162 42 296.5t116 230.5t171 149.5t208 53.5q86 0 146.5 -28t98.5 -76t54 -110.5t16 -129.5q0 -154 -40 -287t-110.5 -231.5t-164.5 -155t-205 -56.5q-92 0 -154.5 30t-102.5 79t-57.5 110.5t-17.5 124.5zM266 356q0 -121 45 -185.5t144 -64.5q68 0 128 48.5 t106 130.5t74 187.5t28 219.5q0 104 -38 165t-145 61q-68 0 -129 -46.5t-109 -124t-76 -179t-28 -212.5zM383 1126l319 373h62l135 -373h-129l-49 136l-13 118l-69 -118l-117 -136h-139z" /> +<glyph unicode="õ" horiz-adv-x="1019" d="M102 319q0 162 42 296.5t116 230.5t171 149.5t208 53.5q86 0 146.5 -28t98.5 -76t54 -110.5t16 -129.5q0 -154 -40 -287t-110.5 -231.5t-164.5 -155t-205 -56.5q-92 0 -154.5 30t-102.5 79t-57.5 110.5t-17.5 124.5zM266 356q0 -121 45 -185.5t144 -64.5q68 0 128 48.5 t106 130.5t74 187.5t28 219.5q0 104 -38 165t-145 61q-68 0 -129 -46.5t-109 -124t-76 -179t-28 -212.5zM399 1343q66 68 114 93.5t85 25.5q31 0 55.5 -13t48 -28.5t47 -28t52.5 -12.5q47 0 110 50l31 -89q-59 -59 -102 -81.5t-78 -22.5q-31 0 -55.5 12.5t-48 27.5t-48 27.5 t-55.5 12.5q-27 0 -57.5 -13.5t-71.5 -46.5z" /> +<glyph unicode="ö" horiz-adv-x="1019" d="M102 319q0 162 42 296.5t116 230.5t171 149.5t208 53.5q86 0 146.5 -28t98.5 -76t54 -110.5t16 -129.5q0 -154 -40 -287t-110.5 -231.5t-164.5 -155t-205 -56.5q-92 0 -154.5 30t-102.5 79t-57.5 110.5t-17.5 124.5zM266 356q0 -121 45 -185.5t144 -64.5q68 0 128 48.5 t106 130.5t74 187.5t28 219.5q0 104 -38 165t-145 61q-68 0 -129 -46.5t-109 -124t-76 -179t-28 -212.5zM387 1337q0 45 25.5 75t68.5 30t70 -30t27 -75q0 -41 -27 -70.5t-70 -29.5t-68.5 29.5t-25.5 70.5zM762 1339q0 43 25.5 73t68.5 30q45 0 70.5 -30t25.5 -73 t-25.5 -72.5t-70.5 -29.5q-43 0 -68.5 29.5t-25.5 72.5z" /> +<glyph unicode="÷" horiz-adv-x="983" d="M113 618v148h868v-148h-868zM430 309q0 55 33 87t86 32t86 -31.5t33 -87.5q0 -53 -33 -86t-86 -33t-86 33t-33 86zM430 1075q0 55 33 87t86 32t86 -32t33 -87q0 -53 -33 -86t-86 -33t-86 33t-33 86z" /> +<glyph unicode="ø" horiz-adv-x="1019" d="M27 49l102 115q-27 71 -27 155q0 162 42 296.5t116 230.5t171 149.5t208 53.5q72 0 125 -19.5t92 -54.5l74 80l82 -76l-90 -102q16 -39 24 -82t8 -90q0 -154 -40 -287t-110.5 -231.5t-164.5 -155t-205 -56.5q-82 0 -140 24t-99 64l-82 -92zM266 331.5q0 -12.5 2 -24.5 l488 545q-43 66 -148 66q-68 0 -129 -46.5t-109 -124t-76 -179t-28 -212.5v-24.5zM299 188q47 -82 156 -82q68 0 128 48.5t106 130.5t74 187t28 220v20.5t-3 20.5z" /> +<glyph unicode="ù" horiz-adv-x="1046" d="M123 197q0 72 20 161l140 666h153l-143 -682q-12 -55 -12 -102q0 -57 22.5 -95.5t81.5 -38.5q49 0 99.5 25t96.5 63.5t83.5 86t62.5 92.5l137 651h154l-129 -608q-8 -35 -16.5 -85t-15.5 -105.5t-11 -107.5t-4 -91v-27h-121v195h-8q-31 -41 -71 -80t-88 -70t-103.5 -50.5 t-116.5 -19.5q-45 0 -83 10.5t-66.5 36t-45 67.5t-16.5 108zM495 1432l8 43h187l59 -306h-88z" /> +<glyph unicode="ú" horiz-adv-x="1046" d="M123 197q0 72 20 161l140 666h153l-143 -682q-12 -55 -12 -102q0 -57 22.5 -95.5t81.5 -38.5q49 0 99.5 25t96.5 63.5t83.5 86t62.5 92.5l137 651h154l-129 -608q-8 -35 -16.5 -85t-15.5 -105.5t-11 -107.5t-4 -91v-27h-121v195h-8q-31 -41 -71 -80t-88 -70t-103.5 -50.5 t-116.5 -19.5q-45 0 -83 10.5t-66.5 36t-45 67.5t-16.5 108zM592 1169l180 306h172l-10 -43l-252 -263h-90z" /> +<glyph unicode="û" horiz-adv-x="1046" d="M123 197q0 72 20 161l140 666h153l-143 -682q-12 -55 -12 -102q0 -57 22.5 -95.5t81.5 -38.5q49 0 99.5 25t96.5 63.5t83.5 86t62.5 92.5l137 651h154l-129 -608q-8 -35 -16.5 -85t-15.5 -105.5t-11 -107.5t-4 -91v-27h-121v195h-8q-31 -41 -71 -80t-88 -70t-103.5 -50.5 t-116.5 -19.5q-45 0 -83 10.5t-66.5 36t-45 67.5t-16.5 108zM410 1126l319 373h62l135 -373h-129l-49 136l-13 118l-69 -118l-117 -136h-139z" /> +<glyph unicode="ü" horiz-adv-x="1046" d="M123 197q0 72 20 161l140 666h153l-143 -682q-12 -55 -12 -102q0 -57 22.5 -95.5t81.5 -38.5q49 0 99.5 25t96.5 63.5t83.5 86t62.5 92.5l137 651h154l-129 -608q-8 -35 -16.5 -85t-15.5 -105.5t-11 -107.5t-4 -91v-27h-121v195h-8q-31 -41 -71 -80t-88 -70t-103.5 -50.5 t-116.5 -19.5q-45 0 -83 10.5t-66.5 36t-45 67.5t-16.5 108zM430 1337q0 45 25.5 75t68.5 30t70 -30t27 -75q0 -41 -27 -70.5t-70 -29.5t-68.5 29.5t-25.5 70.5zM805 1339q0 43 25.5 73t68.5 30q45 0 70.5 -30t25.5 -73t-25.5 -72.5t-70.5 -29.5q-43 0 -68.5 29.5 t-25.5 72.5z" /> +<glyph unicode="ý" horiz-adv-x="899" d="M-41 -401l49 141q23 -8 49 -8q59 0 119 61.5t133 206.5l-176 1024h164l100 -664l11 -196h10l78 198l340 662h163l-483 -913q-53 -100 -105.5 -195.5t-107.5 -170.5t-114.5 -120t-122.5 -45q-35 0 -60.5 4t-46.5 15zM510 1169l180 306h172l-10 -43l-252 -263h-90z" /> +<glyph unicode="þ" horiz-adv-x="1040" d="M-10 -410l395 1844h154l-127 -562h8q29 35 61.5 67t71.5 56.5t87 39t108 14.5q49 0 92 -15.5t75.5 -51.5t52 -95.5t19.5 -145.5q0 -180 -49 -322.5t-129 -240.5t-179.5 -150.5t-197.5 -52.5q-72 0 -126 13.5t-73 27.5l-90 -426h-153zM264 154q35 -27 72 -37.5t80 -10.5 q80 0 152.5 44.5t130 126t91 196.5t33.5 256q0 82 -33.5 135.5t-99.5 53.5q-55 0 -105 -29t-92 -71t-75 -90t-53 -89z" /> +<glyph unicode="ÿ" horiz-adv-x="899" d="M-41 -401l49 141q23 -8 49 -8q59 0 119 61.5t133 206.5l-176 1024h164l100 -664l11 -196h10l78 198l340 662h163l-483 -913q-53 -100 -105.5 -195.5t-107.5 -170.5t-114.5 -120t-122.5 -45q-35 0 -60.5 4t-46.5 15zM307 1337q0 45 25.5 75t68.5 30t70 -30t27 -75 q0 -41 -27 -70.5t-70 -29.5t-68.5 29.5t-25.5 70.5zM682 1339q0 43 25.5 73t68.5 30q45 0 70.5 -30t25.5 -73t-25.5 -72.5t-70.5 -29.5q-43 0 -68.5 29.5t-25.5 72.5z" /> +<glyph unicode="Œ" horiz-adv-x="1818" d="M147 524q0 197 51.5 368t147.5 297t233.5 197.5t311.5 71.5q45 0 77.5 -1t62.5 -4t59.5 -8t70.5 -11h742l-33 -152h-578l-100 -469h528l-30 -151h-531l-106 -510h587l-30 -152h-752q-53 -12 -100 -18.5t-123 -6.5q-96 0 -184.5 27t-156 90.5t-107.5 169t-40 262.5z M319 526q0 -61 12.5 -131.5t47.5 -131t98.5 -100.5t165.5 -40q29 0 55.5 1t55 4t61.5 10t76 20l233 1108q-47 23 -104 34t-154 11q-133 0 -235.5 -64.5t-172 -173t-104.5 -250t-35 -297.5z" /> +<glyph unicode="œ" horiz-adv-x="1605" d="M102 319q0 162 42 296.5t116 230.5t171 149.5t208 53.5q129 0 195.5 -62.5t89.5 -163.5q70 109 170 167.5t211 58.5q74 0 128 -20.5t88.5 -54.5t51 -78t16.5 -93q0 -145 -141 -228t-412 -83q-25 0 -51.5 1t-54.5 3q-8 -39 -11.5 -74t-3.5 -62q0 -113 50.5 -183.5 t158.5 -70.5q90 0 165 30t116 63l49 -99q-72 -61 -169 -93t-195 -32q-59 0 -108.5 17.5t-87.5 47.5t-63.5 70t-37.5 85q-59 -98 -156.5 -159t-202.5 -61q-92 0 -154.5 30t-102.5 79t-57.5 110.5t-17.5 124.5zM266 356q0 -121 45 -185.5t144 -64.5q68 0 129 48.5t107 130.5 t74 187.5t28 219.5q0 104 -39 165t-146 61q-68 0 -129 -46.5t-109 -124t-76 -179t-28 -212.5zM958 610h33q66 0 142.5 4t143 21.5t111 55.5t44.5 106q0 20 -7.5 41.5t-24 39t-46 29t-74.5 11.5q-113 0 -194.5 -77t-127.5 -231z" /> +<glyph unicode="Ÿ" horiz-adv-x="1087" d="M221 1434h178l183 -627l6 -125h2l61 129l445 623h184l-623 -863l-120 -571h-164l121 569zM516 1626q0 41 29 68.5t76 27.5t74.5 -27.5t27.5 -68.5t-27.5 -67.5t-74.5 -26.5t-76 26.5t-29 67.5zM891 1626q0 41 27.5 68.5t74.5 27.5t76 -27.5t29 -68.5t-28.5 -67.5 t-76.5 -26.5q-47 0 -74.5 26.5t-27.5 67.5z" /> +<glyph unicode="ˆ" horiz-adv-x="882" d="M410 1126l319 373h62l135 -373h-129l-49 136l-13 118l-69 -118l-117 -136h-139z" /> +<glyph unicode="˜" horiz-adv-x="714" d="M307 1343q66 68 114 93.5t85 25.5q31 0 55.5 -13t48 -28.5t47 -28t52.5 -12.5q47 0 110 50l31 -89q-59 -59 -102 -81.5t-78 -22.5q-31 0 -55.5 12.5t-48 27.5t-48 27.5t-55.5 12.5q-27 0 -57.5 -13.5t-71.5 -46.5z" /> +<glyph unicode=" " horiz-adv-x="891" /> +<glyph unicode=" " horiz-adv-x="1782" /> +<glyph unicode=" " horiz-adv-x="891" /> +<glyph unicode=" " horiz-adv-x="1782" /> +<glyph unicode=" " horiz-adv-x="594" /> +<glyph unicode=" " horiz-adv-x="445" /> +<glyph unicode=" " horiz-adv-x="297" /> +<glyph unicode=" " horiz-adv-x="297" /> +<glyph unicode=" " horiz-adv-x="222" /> +<glyph unicode=" " horiz-adv-x="356" /> +<glyph unicode=" " horiz-adv-x="99" /> +<glyph unicode="‐" horiz-adv-x="700" d="M129 520l33 139h471l-35 -139h-469z" /> +<glyph unicode="‑" horiz-adv-x="700" d="M129 520l33 139h471l-35 -139h-469z" /> +<glyph unicode="‒" horiz-adv-x="700" d="M129 520l33 139h471l-35 -139h-469z" /> +<glyph unicode="–" horiz-adv-x="1284" d="M231 520l33 139h826l-33 -139h-826z" /> +<glyph unicode="—" horiz-adv-x="1595" d="M231 520l33 139h1137l-33 -139h-1137z" /> +<glyph unicode="‘" horiz-adv-x="380" d="M221 1288q0 70 26.5 124t63.5 92t76 59.5t64 29.5l30 -71q-47 -23 -81.5 -63t-43.5 -93q6 2 19 2q31 0 48 -24.5t17 -57.5q0 -59 -29.5 -89t-80.5 -30q-53 0 -81 37t-28 84z" /> +<glyph unicode="’" horiz-adv-x="380" d="M221 1094q47 25 82 63.5t45 93.5q-82 5 -82 97q0 25 11.5 44t28 31.5t35.5 19.5t38 7q61 0 82.5 -30.5t21.5 -88.5q0 -70 -26.5 -123t-63.5 -91t-75.5 -61.5t-63.5 -31.5z" /> +<glyph unicode="‚" horiz-adv-x="387" d="M4 -153q47 25 82 63.5t45 93.5q-82 5 -82 97q0 25 11.5 44t28 31.5t35.5 19.5t38 7q61 0 82.5 -30.5t21.5 -88.5q0 -70 -26.5 -123t-63.5 -91t-75.5 -61.5t-63.5 -31.5z" /> +<glyph unicode="“" horiz-adv-x="665" d="M221 1288q0 70 26.5 124t63.5 92t76 59.5t64 29.5l30 -71q-47 -23 -81.5 -63t-43.5 -93q6 2 19 2q31 0 48 -24.5t17 -57.5q0 -59 -29.5 -89t-80.5 -30q-53 0 -81 37t-28 84zM506 1288q0 70 26.5 124t63.5 92t76 59.5t64 29.5l30 -71q-47 -23 -81.5 -63t-43.5 -93 q6 2 19 2q31 0 48 -24.5t17 -57.5q0 -59 -29.5 -89t-80.5 -30q-53 0 -81 37t-28 84z" /> +<glyph unicode="”" horiz-adv-x="665" d="M221 1094q47 25 82 63.5t45 93.5q-82 5 -82 97q0 25 11.5 44t28 31.5t35.5 19.5t38 7q61 0 82.5 -30.5t21.5 -88.5q0 -70 -26.5 -123t-63.5 -91t-75.5 -61.5t-63.5 -31.5zM504 1094q47 25 82 63.5t45 93.5q-82 5 -82 97q0 25 11.5 44t28 31.5t35.5 19.5t38 7 q61 0 82.5 -30.5t21.5 -88.5q0 -70 -26.5 -123t-63.5 -91t-75.5 -61.5t-63.5 -31.5z" /> +<glyph unicode="„" horiz-adv-x="669" d="M4 -153q47 25 82 63.5t45 93.5q-82 5 -82 97q0 25 11.5 44t28 31.5t35.5 19.5t38 7q61 0 82.5 -30.5t21.5 -88.5q0 -70 -26.5 -123t-63.5 -91t-75.5 -61.5t-63.5 -31.5zM284 -153q47 25 82 63.5t45 93.5q-82 5 -82 97q0 25 11.5 44t28 31.5t35.5 19.5t38 7 q61 0 82.5 -30.5t21.5 -88.5q0 -70 -26.5 -123t-63.5 -91t-75.5 -61.5t-63.5 -31.5z" /> +<glyph unicode="•" horiz-adv-x="925" d="M229 637q0 63 22.5 115.5t60.5 90.5t90.5 58.5t111.5 20.5t111.5 -19.5t90.5 -56.5t60.5 -89t22.5 -120t-22.5 -120t-60.5 -89t-90.5 -56.5t-111.5 -19.5t-111.5 19.5t-90.5 56.5t-60.5 89t-22.5 120z" /> +<glyph unicode="…" horiz-adv-x="1476" d="M55 94q0 55 33 87t86 32t86 -31.5t33 -87.5q0 -53 -33 -86t-86 -33t-86 33t-33 86zM549 94q0 55 32.5 87t86.5 32q53 0 85.5 -31.5t32.5 -87.5q0 -53 -32.5 -86t-85.5 -33t-86 33t-33 86zM1044 94q0 55 33 87t86 32t86 -31.5t33 -87.5q0 -53 -32.5 -86t-86.5 -33 q-53 0 -86 33t-33 86z" /> +<glyph unicode=" " horiz-adv-x="356" /> +<glyph unicode="‹" horiz-adv-x="577" d="M78 530l409 471l91 -98l-252 -295l-115 -76l68 -79l139 -289l-113 -86z" /> +<glyph unicode="›" horiz-adv-x="577" d="M76 166l254 297l116 84l-71 86l-139 291l116 77l226 -452l-410 -471z" /> +<glyph unicode=" " horiz-adv-x="445" /> +<glyph unicode="€" d="M12 516l66 135h147q10 78 25 144h-178l65 135h152q49 137 126 236.5t168 164t189 96t191 31.5q98 0 166.5 -16.5t115.5 -42.5l-71 -125q-76 45 -242 45q-55 0 -122 -22.5t-132.5 -69.5t-124.5 -121t-102 -176h565l-64 -135h-549q-16 -70 -24 -144h502l-64 -135h-448v-12 q0 -84 18.5 -154.5t59 -123t108.5 -82t166 -29.5q66 0 130 18.5t116 46.5l28 -123q-35 -25 -76.5 -40t-87 -24t-88.5 -13.5t-79 -4.5q-111 0 -195 38t-140.5 105.5t-85 160t-28.5 198.5v39h-203z" /> +<glyph unicode="™" horiz-adv-x="1814" d="M184 1294v140h717v-140h-278v-598h-160v598h-279zM983 696v738h160l215 -344l57 -119h2l62 123l198 340h162v-738h-156v342l21 211h-8l-80 -174l-178 -287h-68l-182 285l-74 176h-8l27 -209v-344h-150z" /> +<glyph unicode="◼" horiz-adv-x="1024" d="M0 0v1024h1024v-1024h-1024z" /> +<hkern u1="B" u2="T" k="59" /> +<hkern u1="D" u2="J" k="8" /> +<hkern u1="O" u2="J" k="8" /> +<hkern u1="Q" u2="J" k="8" /> +<hkern u1="T" u2="ÿ" k="29" /> +<hkern u1="T" u2="ö" k="121" /> +<hkern u1="T" u2="õ" k="145" /> +<hkern u1="T" u2="ô" k="209" /> +<hkern u1="T" u2="ó" k="270" /> +<hkern u1="T" u2="ò" k="211" /> +<hkern u1="T" u2="ð" k="156" /> +<hkern u1="T" u2="ë" k="137" /> +<hkern u1="T" u2="ê" k="207" /> +<hkern u1="T" u2="è" k="213" /> +<hkern u1="T" u2="ä" k="104" /> +<hkern u1="T" u2="ã" k="156" /> +<hkern u1="T" u2="â" k="215" /> +<hkern u1="V" u2="ÿ" k="-4" /> +<hkern u1="V" u2="ö" k="55" /> +<hkern u1="V" u2="õ" k="61" /> +<hkern u1="V" u2="ô" k="68" /> +<hkern u1="V" u2="ò" k="66" /> +<hkern u1="V" u2="ð" k="66" /> +<hkern u1="V" u2="ë" k="53" /> +<hkern u1="V" u2="è" k="66" /> +<hkern u1="V" u2="ä" k="59" /> +<hkern u1="V" u2="ã" k="63" /> +<hkern u1="W" u2="ÿ" k="-4" /> +<hkern u1="W" u2="ö" k="47" /> +<hkern u1="W" u2="õ" k="51" /> +<hkern u1="W" u2="ë" k="45" /> +<hkern u1="W" u2="ä" k="49" /> +<hkern u1="W" u2="ã" k="51" /> +<hkern u1="Y" u2="ÿ" k="39" /> +<hkern u1="Y" u2="ö" k="129" /> +<hkern u1="Y" u2="õ" k="137" /> +<hkern u1="Y" u2="ô" k="141" /> +<hkern u1="Y" u2="ò" k="139" /> +<hkern u1="Y" u2="ð" k="139" /> +<hkern u1="Y" u2="ë" k="129" /> +<hkern u1="Y" u2="ê" k="145" /> +<hkern u1="Y" u2="è" k="139" /> +<hkern u1="Y" u2="ä" k="92" /> +<hkern u1="Y" u2="ã" k="139" /> +<hkern u1="a" u2="T" k="246" /> +<hkern u1="n" u2="T" k="287" /> +<hkern u1="Ð" u2="J" k="8" /> +<hkern u1="Ò" u2="J" k="8" /> +<hkern u1="Ó" u2="J" k="8" /> +<hkern u1="Ô" u2="J" k="8" /> +<hkern u1="Õ" u2="J" k="8" /> +<hkern u1="Ö" u2="J" k="8" /> +<hkern u1="Ø" u2="J" k="8" /> +<hkern u1="Ý" u2="ÿ" k="39" /> +<hkern u1="Ý" u2="ö" k="129" /> +<hkern u1="Ý" u2="õ" k="137" /> +<hkern u1="Ý" u2="ô" k="141" /> +<hkern u1="Ý" u2="ò" k="139" /> +<hkern u1="Ý" u2="ð" k="139" /> +<hkern u1="Ý" u2="ë" k="129" /> +<hkern u1="Ý" u2="ê" k="145" /> +<hkern u1="Ý" u2="è" k="139" /> +<hkern u1="Ý" u2="ä" k="92" /> +<hkern u1="Ý" u2="ã" k="139" /> +<hkern u1="é" u2="T" k="258" /> +<hkern u1="ê" u2="T" k="258" /> +<hkern u1="ë" u2="T" k="258" /> +<hkern u1="Ÿ" u2="ÿ" k="39" /> +<hkern u1="Ÿ" u2="ö" k="129" /> +<hkern u1="Ÿ" u2="õ" k="137" /> +<hkern u1="Ÿ" u2="ô" k="141" /> +<hkern u1="Ÿ" u2="ò" k="139" /> +<hkern u1="Ÿ" u2="ð" k="139" /> +<hkern u1="Ÿ" u2="ë" k="129" /> +<hkern u1="Ÿ" u2="ê" k="145" /> +<hkern u1="Ÿ" u2="è" k="139" /> +<hkern u1="Ÿ" u2="ä" k="92" /> +<hkern u1="Ÿ" u2="ã" k="139" /> +<hkern g1="C,Ccedilla" g2="space,uni00A0" k="78" /> +<hkern g1="C,Ccedilla" g2="hyphen,uni00AD,endash,emdash" k="152" /> +<hkern g1="C,Ccedilla" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="53" /> +<hkern g1="C,Ccedilla" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="51" /> +<hkern g1="C,Ccedilla" g2="T" k="53" /> +<hkern g1="C,Ccedilla" g2="V" k="51" /> +<hkern g1="C,Ccedilla" g2="W" k="10" /> +<hkern g1="C,Ccedilla" g2="X" k="82" /> +<hkern g1="C,Ccedilla" g2="Y,Yacute,Ydieresis" k="68" /> +<hkern g1="C,Ccedilla" g2="Z" k="45" /> +<hkern g1="C,Ccedilla" g2="m,n,p,r,s,u,ae" k="59" /> +<hkern g1="C,Ccedilla" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="78" /> +<hkern g1="C,Ccedilla" g2="t" k="72" /> +<hkern g1="C,Ccedilla" g2="v,y,yacute,ydieresis" k="111" /> +<hkern g1="C,Ccedilla" g2="w" k="88" /> +<hkern g1="C,Ccedilla" g2="AE" k="221" /> +<hkern g1="C,Ccedilla" g2="i,j,igrave,iacute,icircumflex,idieresis,ntilde,ugrave,uacute,ucircumflex,udieresis" k="45" /> +<hkern g1="C,Ccedilla" g2="x" k="29" /> +<hkern g1="C,Ccedilla" g2="z" k="33" /> +<hkern g1="L" g2="space,uni00A0" k="82" /> +<hkern g1="L" g2="asterisk" k="313" /> +<hkern g1="L" g2="hyphen,uni00AD,endash,emdash" k="152" /> +<hkern g1="L" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-12" /> +<hkern g1="L" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="129" /> +<hkern g1="L" g2="T" k="238" /> +<hkern g1="L" g2="V" k="201" /> +<hkern g1="L" g2="W" k="143" /> +<hkern g1="L" g2="X" k="203" /> +<hkern g1="L" g2="Y,Yacute,Ydieresis" k="205" /> +<hkern g1="L" g2="Z" k="94" /> +<hkern g1="L" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="70" /> +<hkern g1="L" g2="t" k="72" /> +<hkern g1="L" g2="v,y,yacute,ydieresis" k="199" /> +<hkern g1="L" g2="w" k="137" /> +<hkern g1="L" g2="AE" k="156" /> +<hkern g1="L" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="242" /> +<hkern g1="L" g2="quotesinglbase,quotedblbase" k="-2" /> +<hkern g1="L" g2="registered,trademark" k="287" /> +<hkern g1="L" g2="x" k="45" /> +<hkern g1="L" g2="z" k="55" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="space,uni00A0" k="4" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="parenright,bracketright,braceright" k="6" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="asterisk" k="4" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="comma,period,ellipsis" k="59" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="39" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="T" k="94" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="V" k="51" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="W" k="39" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="X" k="96" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Y,Yacute,Ydieresis" k="80" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Z" k="47" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="t" k="-4" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="v,y,yacute,ydieresis" k="-4" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="w" k="-4" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="AE" k="98" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="78" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="quotesinglbase,quotedblbase" k="78" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="x" k="2" /> +<hkern g1="P,Thorn" g2="space,uni00A0" k="78" /> +<hkern g1="P,Thorn" g2="hyphen,uni00AD,endash,emdash" k="4" /> +<hkern g1="P,Thorn" g2="comma,period,ellipsis" k="254" /> +<hkern g1="P,Thorn" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="123" /> +<hkern g1="P,Thorn" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="33" /> +<hkern g1="P,Thorn" g2="T" k="31" /> +<hkern g1="P,Thorn" g2="V" k="4" /> +<hkern g1="P,Thorn" g2="W" k="2" /> +<hkern g1="P,Thorn" g2="X" k="82" /> +<hkern g1="P,Thorn" g2="Y,Yacute,Ydieresis" k="49" /> +<hkern g1="P,Thorn" g2="Z" k="55" /> +<hkern g1="P,Thorn" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="2" /> +<hkern g1="P,Thorn" g2="t" k="-4" /> +<hkern g1="P,Thorn" g2="v,y,yacute,ydieresis" k="-8" /> +<hkern g1="P,Thorn" g2="w" k="-6" /> +<hkern g1="P,Thorn" g2="AE" k="213" /> +<hkern g1="P,Thorn" g2="quotesinglbase,quotedblbase" k="197" /> +<hkern g1="R" g2="hyphen,uni00AD,endash,emdash" k="78" /> +<hkern g1="R" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="51" /> +<hkern g1="R" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="70" /> +<hkern g1="R" g2="T" k="119" /> +<hkern g1="R" g2="V" k="94" /> +<hkern g1="R" g2="W" k="78" /> +<hkern g1="R" g2="X" k="76" /> +<hkern g1="R" g2="Y,Yacute,Ydieresis" k="106" /> +<hkern g1="R" g2="Z" k="47" /> +<hkern g1="R" g2="m,n,p,r,s,u,ae" k="45" /> +<hkern g1="R" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="88" /> +<hkern g1="R" g2="t" k="4" /> +<hkern g1="R" g2="v,y,yacute,ydieresis" k="45" /> +<hkern g1="R" g2="w" k="33" /> +<hkern g1="R" g2="AE" k="205" /> +<hkern g1="R" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="6" /> +<hkern g1="R" g2="i,j,igrave,iacute,icircumflex,idieresis,ntilde,ugrave,uacute,ucircumflex,udieresis" k="33" /> +<hkern g1="R" g2="x" k="45" /> +<hkern g1="R" g2="z" k="47" /> +<hkern g1="T" g2="space,uni00A0" k="78" /> +<hkern g1="T" g2="parenright,bracketright,braceright" k="-53" /> +<hkern g1="T" g2="asterisk" k="-6" /> +<hkern g1="T" g2="hyphen,uni00AD,endash,emdash" k="250" /> +<hkern g1="T" g2="comma,period,ellipsis" k="199" /> +<hkern g1="T" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="131" /> +<hkern g1="T" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="94" /> +<hkern g1="T" g2="T" k="-41" /> +<hkern g1="T" g2="V" k="12" /> +<hkern g1="T" g2="W" k="10" /> +<hkern g1="T" g2="X" k="66" /> +<hkern g1="T" g2="Y,Yacute,Ydieresis" k="25" /> +<hkern g1="T" g2="Z" k="66" /> +<hkern g1="T" g2="m,n,p,r,s,u,ae" k="221" /> +<hkern g1="T" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="219" /> +<hkern g1="T" g2="t" k="94" /> +<hkern g1="T" g2="v,y,yacute,ydieresis" k="219" /> +<hkern g1="T" g2="w" k="186" /> +<hkern g1="T" g2="AE" k="229" /> +<hkern g1="T" g2="quotesinglbase,quotedblbase" k="201" /> +<hkern g1="T" g2="registered,trademark" k="-6" /> +<hkern g1="T" g2="i,j,igrave,iacute,icircumflex,idieresis,ntilde,ugrave,uacute,ucircumflex,udieresis" k="66" /> +<hkern g1="T" g2="x" k="244" /> +<hkern g1="T" g2="z" k="205" /> +<hkern g1="V" g2="space,uni00A0" k="59" /> +<hkern g1="V" g2="asterisk" k="-90" /> +<hkern g1="V" g2="hyphen,uni00AD,endash,emdash" k="104" /> +<hkern g1="V" g2="comma,period,ellipsis" k="184" /> +<hkern g1="V" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="88" /> +<hkern g1="V" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="51" /> +<hkern g1="V" g2="T" k="12" /> +<hkern g1="V" g2="V" k="12" /> +<hkern g1="V" g2="W" k="10" /> +<hkern g1="V" g2="X" k="12" /> +<hkern g1="V" g2="Y,Yacute,Ydieresis" k="14" /> +<hkern g1="V" g2="Z" k="12" /> +<hkern g1="V" g2="m,n,p,r,s,u,ae" k="68" /> +<hkern g1="V" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="72" /> +<hkern g1="V" g2="t" k="4" /> +<hkern g1="V" g2="AE" k="186" /> +<hkern g1="V" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-78" /> +<hkern g1="V" g2="quotesinglbase,quotedblbase" k="182" /> +<hkern g1="V" g2="registered,trademark" k="-4" /> +<hkern g1="V" g2="x" k="51" /> +<hkern g1="V" g2="z" k="43" /> +<hkern g1="W" g2="space,uni00A0" k="49" /> +<hkern g1="W" g2="asterisk" k="-90" /> +<hkern g1="W" g2="hyphen,uni00AD,endash,emdash" k="49" /> +<hkern g1="W" g2="comma,period,ellipsis" k="143" /> +<hkern g1="W" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="53" /> +<hkern g1="W" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="39" /> +<hkern g1="W" g2="T" k="10" /> +<hkern g1="W" g2="V" k="10" /> +<hkern g1="W" g2="W" k="12" /> +<hkern g1="W" g2="X" k="10" /> +<hkern g1="W" g2="Y,Yacute,Ydieresis" k="14" /> +<hkern g1="W" g2="Z" k="12" /> +<hkern g1="W" g2="m,n,p,r,s,u,ae" k="43" /> +<hkern g1="W" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="57" /> +<hkern g1="W" g2="t" k="4" /> +<hkern g1="W" g2="AE" k="162" /> +<hkern g1="W" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-78" /> +<hkern g1="W" g2="quotesinglbase,quotedblbase" k="131" /> +<hkern g1="W" g2="registered,trademark" k="-6" /> +<hkern g1="W" g2="x" k="47" /> +<hkern g1="W" g2="z" k="41" /> +<hkern g1="K,X" g2="space,uni00A0" k="59" /> +<hkern g1="K,X" g2="hyphen,uni00AD,endash,emdash" k="156" /> +<hkern g1="K,X" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="59" /> +<hkern g1="K,X" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="96" /> +<hkern g1="K,X" g2="T" k="66" /> +<hkern g1="K,X" g2="V" k="12" /> +<hkern g1="K,X" g2="W" k="10" /> +<hkern g1="K,X" g2="X" k="61" /> +<hkern g1="K,X" g2="Y,Yacute,Ydieresis" k="53" /> +<hkern g1="K,X" g2="Z" k="4" /> +<hkern g1="K,X" g2="m,n,p,r,s,u,ae" k="45" /> +<hkern g1="K,X" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="53" /> +<hkern g1="K,X" g2="t" k="55" /> +<hkern g1="K,X" g2="v,y,yacute,ydieresis" k="84" /> +<hkern g1="K,X" g2="w" k="66" /> +<hkern g1="K,X" g2="AE" k="197" /> +<hkern g1="K,X" g2="quotesinglbase,quotedblbase" k="-4" /> +<hkern g1="K,X" g2="i,j,igrave,iacute,icircumflex,idieresis,ntilde,ugrave,uacute,ucircumflex,udieresis" k="45" /> +<hkern g1="K,X" g2="x" k="45" /> +<hkern g1="K,X" g2="z" k="33" /> +<hkern g1="Y,Yacute,Ydieresis" g2="space,uni00A0" k="49" /> +<hkern g1="Y,Yacute,Ydieresis" g2="asterisk" k="-47" /> +<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,uni00AD,endash,emdash" k="119" /> +<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,ellipsis" k="209" /> +<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="133" /> +<hkern g1="Y,Yacute,Ydieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="80" /> +<hkern g1="Y,Yacute,Ydieresis" g2="T" k="37" /> +<hkern g1="Y,Yacute,Ydieresis" g2="V" k="14" /> +<hkern g1="Y,Yacute,Ydieresis" g2="W" k="10" /> +<hkern g1="Y,Yacute,Ydieresis" g2="X" k="53" /> +<hkern g1="Y,Yacute,Ydieresis" g2="Y,Yacute,Ydieresis" k="14" /> +<hkern g1="Y,Yacute,Ydieresis" g2="Z" k="49" /> +<hkern g1="Y,Yacute,Ydieresis" g2="m,n,p,r,s,u,ae" k="127" /> +<hkern g1="Y,Yacute,Ydieresis" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="152" /> +<hkern g1="Y,Yacute,Ydieresis" g2="t" k="66" /> +<hkern g1="Y,Yacute,Ydieresis" g2="v,y,yacute,ydieresis" k="49" /> +<hkern g1="Y,Yacute,Ydieresis" g2="w" k="51" /> +<hkern g1="Y,Yacute,Ydieresis" g2="AE" k="188" /> +<hkern g1="Y,Yacute,Ydieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-70" /> +<hkern g1="Y,Yacute,Ydieresis" g2="quotesinglbase,quotedblbase" k="201" /> +<hkern g1="Y,Yacute,Ydieresis" g2="registered,trademark" k="-6" /> +<hkern g1="Y,Yacute,Ydieresis" g2="x" k="121" /> +<hkern g1="Y,Yacute,Ydieresis" g2="z" k="82" /> +<hkern g1="Z" g2="space,uni00A0" k="84" /> +<hkern g1="Z" g2="hyphen,uni00AD,endash,emdash" k="178" /> +<hkern g1="Z" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="37" /> +<hkern g1="Z" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="47" /> +<hkern g1="Z" g2="T" k="47" /> +<hkern g1="Z" g2="V" k="12" /> +<hkern g1="Z" g2="W" k="10" /> +<hkern g1="Z" g2="X" k="57" /> +<hkern g1="Z" g2="Y,Yacute,Ydieresis" k="49" /> +<hkern g1="Z" g2="Z" k="43" /> +<hkern g1="Z" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="47" /> +<hkern g1="Z" g2="t" k="4" /> +<hkern g1="Z" g2="v,y,yacute,ydieresis" k="-4" /> +<hkern g1="Z" g2="AE" k="193" /> +<hkern g1="Z" g2="z" k="45" /> +<hkern g1="c,ccedilla" g2="space,uni00A0" k="61" /> +<hkern g1="c,ccedilla" g2="parenright,bracketright,braceright" k="4" /> +<hkern g1="c,ccedilla" g2="hyphen,uni00AD,endash,emdash" k="59" /> +<hkern g1="c,ccedilla" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="59" /> +<hkern g1="c,ccedilla" g2="v,y,yacute,ydieresis" k="-4" /> +<hkern g1="c,ccedilla" g2="w" k="-2" /> +<hkern g1="c,ccedilla" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="8" /> +<hkern g1="c,ccedilla" g2="x" k="-4" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis,oe" g2="parenright,bracketright,braceright" k="4" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis,oe" g2="T" k="283" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis,oe" g2="t" k="-4" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis,oe" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="78" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis,oe" g2="x" k="33" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis,oe" g2="z" k="10" /> +<hkern g1="f" g2="space,uni00A0" k="45" /> +<hkern g1="f" g2="parenright,bracketright,braceright" k="-199" /> +<hkern g1="f" g2="asterisk" k="-244" /> +<hkern g1="f" g2="hyphen,uni00AD,endash,emdash" k="45" /> +<hkern g1="f" g2="comma,period,ellipsis" k="61" /> +<hkern g1="f" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="-4" /> +<hkern g1="f" g2="t" k="-39" /> +<hkern g1="f" g2="w" k="-45" /> +<hkern g1="f" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-190" /> +<hkern g1="f" g2="quotesinglbase,quotedblbase" k="51" /> +<hkern g1="f" g2="registered,trademark" k="-209" /> +<hkern g1="f" g2="i,j,igrave,iacute,icircumflex,idieresis,ntilde,ugrave,uacute,ucircumflex,udieresis" k="-10" /> +<hkern g1="f" g2="x" k="-4" /> +<hkern g1="f" g2="z" k="-4" /> +<hkern g1="b,o,p,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="parenright,bracketright,braceright" k="41" /> +<hkern g1="b,o,p,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="asterisk" k="10" /> +<hkern g1="b,o,p,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="comma,period,ellipsis" k="45" /> +<hkern g1="b,o,p,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="v,y,yacute,ydieresis" k="37" /> +<hkern g1="b,o,p,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="w" k="12" /> +<hkern g1="b,o,p,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="133" /> +<hkern g1="b,o,p,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="quotesinglbase,quotedblbase" k="45" /> +<hkern g1="b,o,p,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="registered,trademark" k="10" /> +<hkern g1="b,o,p,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="x" k="59" /> +<hkern g1="t" g2="v,y,yacute,ydieresis" k="4" /> +<hkern g1="t" g2="w" k="4" /> +<hkern g1="t" g2="x" k="-6" /> +<hkern g1="v,y,yacute,ydieresis" g2="space,uni00A0" k="55" /> +<hkern g1="v,y,yacute,ydieresis" g2="asterisk" k="-8" /> +<hkern g1="v,y,yacute,ydieresis" g2="comma,period,ellipsis" k="141" /> +<hkern g1="v,y,yacute,ydieresis" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="37" /> +<hkern g1="v,y,yacute,ydieresis" g2="t" k="-8" /> +<hkern g1="v,y,yacute,ydieresis" g2="quotesinglbase,quotedblbase" k="100" /> +<hkern g1="v,y,yacute,ydieresis" g2="x" k="37" /> +<hkern g1="v,y,yacute,ydieresis" g2="z" k="18" /> +<hkern g1="w" g2="space,uni00A0" k="45" /> +<hkern g1="w" g2="parenright,bracketright,braceright" k="4" /> +<hkern g1="w" g2="asterisk" k="-6" /> +<hkern g1="w" g2="comma,period,ellipsis" k="61" /> +<hkern g1="w" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="2" /> +<hkern g1="w" g2="t" k="-8" /> +<hkern g1="w" g2="quotesinglbase,quotedblbase" k="51" /> +<hkern g1="w" g2="x" k="33" /> +<hkern g1="w" g2="z" k="33" /> +<hkern g1="k,x" g2="space,uni00A0" k="51" /> +<hkern g1="k,x" g2="hyphen,uni00AD,endash,emdash" k="72" /> +<hkern g1="k,x" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="51" /> +<hkern g1="k,x" g2="v,y,yacute,ydieresis" k="4" /> +<hkern g1="z" g2="space,uni00A0" k="45" /> +<hkern g1="z" g2="hyphen,uni00AD,endash,emdash" k="55" /> +<hkern g1="z" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="33" /> +<hkern g1="z" g2="v,y,yacute,ydieresis" k="-6" /> +<hkern g1="z" g2="w" k="-4" /> +<hkern g1="z" g2="x" k="29" /> +<hkern g1="space,uni00A0" g2="asterisk" k="12" /> +<hkern g1="space,uni00A0" g2="hyphen,uni00AD,endash,emdash" k="16" /> +<hkern g1="space,uni00A0" g2="comma,period,ellipsis" k="27" /> +<hkern g1="space,uni00A0" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="66" /> +<hkern g1="space,uni00A0" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="4" /> +<hkern g1="space,uni00A0" g2="T" k="63" /> +<hkern g1="space,uni00A0" g2="V" k="61" /> +<hkern g1="space,uni00A0" g2="W" k="39" /> +<hkern g1="space,uni00A0" g2="X" k="61" /> +<hkern g1="space,uni00A0" g2="Y,Yacute,Ydieresis" k="61" /> +<hkern g1="space,uni00A0" g2="Z" k="45" /> +<hkern g1="space,uni00A0" g2="v,y,yacute,ydieresis" k="55" /> +<hkern g1="space,uni00A0" g2="w" k="45" /> +<hkern g1="space,uni00A0" g2="AE" k="8" /> +<hkern g1="space,uni00A0" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="139" /> +<hkern g1="space,uni00A0" g2="quotesinglbase,quotedblbase" k="139" /> +<hkern g1="space,uni00A0" g2="x" k="51" /> +<hkern g1="space,uni00A0" g2="z" k="45" /> +<hkern g1="comma,period,ellipsis" g2="space,uni00A0" k="174" /> +<hkern g1="comma,period,ellipsis" g2="asterisk" k="82" /> +<hkern g1="comma,period,ellipsis" g2="hyphen,uni00AD,endash,emdash" k="258" /> +<hkern g1="comma,period,ellipsis" g2="comma,period,ellipsis" k="-4" /> +<hkern g1="comma,period,ellipsis" g2="T" k="20" /> +<hkern g1="comma,period,ellipsis" g2="V" k="23" /> +<hkern g1="comma,period,ellipsis" g2="W" k="14" /> +<hkern g1="comma,period,ellipsis" g2="Y,Yacute,Ydieresis" k="27" /> +<hkern g1="comma,period,ellipsis" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="45" /> +<hkern g1="comma,period,ellipsis" g2="v,y,yacute,ydieresis" k="121" /> +<hkern g1="comma,period,ellipsis" g2="w" k="51" /> +<hkern g1="comma,period,ellipsis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="86" /> +<hkern g1="comma,period,ellipsis" g2="registered,trademark" k="33" /> +<hkern g1="comma,period,ellipsis" g2="z" k="-33" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="space,uni00A0" k="156" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="parenright,bracketright,braceright" k="12" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="asterisk" k="14" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="hyphen,uni00AD,endash,emdash" k="20" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="comma,period,ellipsis" k="246" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="8" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="T" k="25" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="V" k="10" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="W" k="6" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="X" k="16" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Y,Yacute,Ydieresis" k="14" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Z" k="4" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="AE" k="14" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="240" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="quotesinglbase,quotedblbase" k="170" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="x" k="72" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="z" k="55" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="space,uni00A0" k="160" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="hyphen,uni00AD,endash,emdash" k="295" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="comma,period,ellipsis" k="238" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="236" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="78" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="V" k="-78" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="W" k="-78" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="Y,Yacute,Ydieresis" k="-70" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="82" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="AE" k="389" /> +<hkern g1="quotesinglbase,quotedblbase" g2="space,uni00A0" k="178" /> +<hkern g1="quotesinglbase,quotedblbase" g2="asterisk" k="37" /> +<hkern g1="quotesinglbase,quotedblbase" g2="hyphen,uni00AD,endash,emdash" k="217" /> +<hkern g1="quotesinglbase,quotedblbase" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-4" /> +<hkern g1="quotesinglbase,quotedblbase" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="117" /> +<hkern g1="quotesinglbase,quotedblbase" g2="T" k="236" /> +<hkern g1="quotesinglbase,quotedblbase" g2="V" k="199" /> +<hkern g1="quotesinglbase,quotedblbase" g2="W" k="150" /> +<hkern g1="quotesinglbase,quotedblbase" g2="X" k="-4" /> +<hkern g1="quotesinglbase,quotedblbase" g2="Y,Yacute,Ydieresis" k="236" /> +<hkern g1="quotesinglbase,quotedblbase" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="45" /> +<hkern g1="quotesinglbase,quotedblbase" g2="v,y,yacute,ydieresis" k="109" /> +<hkern g1="quotesinglbase,quotedblbase" g2="w" k="41" /> +<hkern g1="quotesinglbase,quotedblbase" g2="AE" k="-10" /> +<hkern g1="quotesinglbase,quotedblbase" g2="registered,trademark" k="29" /> +<hkern g1="quotesinglbase,quotedblbase" g2="z" k="-55" /> +<hkern g1="parenleft,bracketleft,braceleft" g2="hyphen,uni00AD,endash,emdash" k="12" /> +<hkern g1="parenleft,bracketleft,braceleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="6" /> +<hkern g1="parenleft,bracketleft,braceleft" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="6" /> +<hkern g1="parenleft,bracketleft,braceleft" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,eth,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="51" /> +<hkern g1="asterisk" g2="space,uni00A0" k="12" /> +<hkern g1="asterisk" g2="hyphen,uni00AD,endash,emdash" k="307" /> +<hkern g1="asterisk" g2="comma,period,ellipsis" k="82" /> +<hkern g1="asterisk" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="20" /> +<hkern g1="asterisk" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="4" /> +<hkern g1="asterisk" g2="T" k="-6" /> +<hkern g1="asterisk" g2="V" k="-4" /> +<hkern g1="asterisk" g2="W" k="-4" /> +<hkern g1="asterisk" g2="Y,Yacute,Ydieresis" k="-4" /> +<hkern g1="asterisk" g2="v,y,yacute,ydieresis" k="-8" /> +<hkern g1="asterisk" g2="w" k="-4" /> +<hkern g1="asterisk" g2="AE" k="45" /> +<hkern g1="asterisk" g2="quotesinglbase,quotedblbase" k="35" /> +<hkern g1="seven" g2="space,uni00A0" k="104" /> +<hkern g1="seven" g2="hyphen,uni00AD,endash,emdash" k="125" /> +<hkern g1="seven" g2="comma,period,ellipsis" k="215" /> +<hkern g1="seven" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="23" /> +<hkern g1="seven" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="10" /> +<hkern g1="seven" g2="AE" k="33" /> +<hkern g1="seven" g2="quotesinglbase,quotedblbase" k="184" /> +<hkern g1="r" g2="hyphen,uni00AD,endash,emdash" k="55" /> +<hkern g1="r" g2="comma,period,ellipsis" k="180" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/pt_sans-web-italic-webfont.ttf b/web/static/fonts/pt_sans-web-italic-webfont.ttf Binary files differnew file mode 100755 index 000000000..e6b0c0e56 --- /dev/null +++ b/web/static/fonts/pt_sans-web-italic-webfont.ttf diff --git a/web/static/fonts/pt_sans-web-italic-webfont.woff b/web/static/fonts/pt_sans-web-italic-webfont.woff Binary files differnew file mode 100755 index 000000000..30c242a67 --- /dev/null +++ b/web/static/fonts/pt_sans-web-italic-webfont.woff diff --git a/web/static/fonts/pt_sans-web-italic-webfont.woff2 b/web/static/fonts/pt_sans-web-italic-webfont.woff2 Binary files differnew file mode 100755 index 000000000..08feb8d7b --- /dev/null +++ b/web/static/fonts/pt_sans-web-italic-webfont.woff2 diff --git a/web/static/fonts/roboto-bold-webfont.eot b/web/static/fonts/roboto-bold-webfont.eot Binary files differnew file mode 100755 index 000000000..44012d4e7 --- /dev/null +++ b/web/static/fonts/roboto-bold-webfont.eot diff --git a/web/static/fonts/roboto-bold-webfont.svg b/web/static/fonts/roboto-bold-webfont.svg new file mode 100755 index 000000000..a2d6baf34 --- /dev/null +++ b/web/static/fonts/roboto-bold-webfont.svg @@ -0,0 +1,675 @@ +<?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="robotobold" horiz-adv-x="1175" > +<font-face units-per-em="2048" ascent="1536" descent="-512" /> +<missing-glyph horiz-adv-x="510" /> +<glyph unicode="fi" horiz-adv-x="1246" d="M20 870v212h161v50q2 204 125.5 314.5t348.5 110.5q135 0 328 -59l-42 -239q-98 29 -152 37.5t-116 8.5q-202 0 -202 -179v-44h213v-212h-213v-870h-290v870h-161zM828 0v1082h290v-1082h-290z" /> +<glyph unicode="fl" horiz-adv-x="1255" d="M29 870v212h161v84q2 188 118 289.5t328 101.5q151 0 490 -32v-1525h-290v1312q-86 10 -160 10q-196 0 -196 -167v-73h215v-212h-215v-870h-290v870h-161z" /> +<glyph horiz-adv-x="0" /> +<glyph horiz-adv-x="0" /> +<glyph unicode="
" horiz-adv-x="510" /> +<glyph horiz-adv-x="0" /> +<glyph unicode=" " horiz-adv-x="510" /> +<glyph unicode="	" horiz-adv-x="510" /> +<glyph unicode=" " horiz-adv-x="510" /> +<glyph unicode="!" horiz-adv-x="557" d="M124 136q0 66 44.5 109.5t116.5 43.5q73 0 117.5 -43t44.5 -110q0 -66 -44.5 -109t-117.5 -43q-72 0 -116.5 43t-44.5 109zM131 1456h308l-34 -1009h-240z" /> +<glyph unicode=""" horiz-adv-x="657" d="M64 987v549h202v-138l-40 -411h-162zM390 987v549h201v-138l-39 -411h-162z" /> +<glyph unicode="#" horiz-adv-x="1220" d="M64 410v172h257l50 284h-232v174h263l73 416h182l-73 -416h194l73 416h183l-73 -416h219v-174h-250l-50 -284h224v-172h-254l-72 -410h-183l72 410h-193l-72 -410h-183l72 410h-227zM504 582h193l50 284h-194z" /> +<glyph unicode="$" d="M92 457h289q0 -119 56.5 -182.5t162.5 -63.5q88 0 139 46.5t51 125.5q0 82 -45.5 130.5t-154.5 89.5t-188 81.5t-135.5 93t-88 123.5t-31.5 169q0 169 108 277t287 126v214h160v-217q177 -25 277 -147.5t100 -317.5h-289q0 120 -49.5 179.5t-132.5 59.5q-82 0 -127 -46.5 t-45 -128.5q0 -76 44 -122t163.5 -94t196.5 -90.5t130 -96t81 -122t28 -159.5q0 -170 -106 -276t-292 -125v-199h-159v198q-205 22 -317.5 145.5t-112.5 328.5z" /> +<glyph unicode="%" horiz-adv-x="1512" d="M95 1105v71q0 134 87 217.5t228 83.5q143 0 230 -82.5t87 -223.5v-72q0 -135 -87 -217t-228 -82q-142 0 -229.5 82.5t-87.5 222.5zM287 1099q0 -60 34.5 -96.5t90.5 -36.5t89 37t33 99v74q0 60 -33 97t-91 37q-55 0 -89 -36.5t-34 -101.5v-73zM328 185l711 1138l141 -76 l-711 -1138zM791 283v74q0 135 88 217.5t228 82.5q142 0 229.5 -81.5t87.5 -224.5v-72q0 -134 -86 -216.5t-229 -82.5q-144 0 -231 83t-87 220zM983 279q0 -55 36 -94t90 -39q122 0 122 135v76q0 60 -34 96.5t-90 36.5t-90 -36.5t-34 -99.5v-75z" /> +<glyph unicode="&" horiz-adv-x="1344" d="M71 392q0 101 56.5 187t207.5 191q-65 87 -102 163.5t-37 159.5q0 170 107.5 276.5t289.5 106.5q163 0 267.5 -97t104.5 -242q0 -174 -176 -307l-112 -81l251 -292q59 116 59 256h246q0 -284 -131 -460l218 -253h-328l-75 86q-161 -106 -370 -106q-216 0 -346 113.5 t-130 298.5zM361 408q0 -87 55.5 -141.5t144.5 -54.5q104 0 197 58l-287 332l-21 -15q-89 -76 -89 -179zM455 1097q0 -75 88 -189l77 51q59 38 81.5 74t22.5 86t-37 87t-95 37q-62 0 -99.5 -40t-37.5 -106z" /> +<glyph unicode="'" horiz-adv-x="331" d="M63 985v551h212v-147l-29 -404h-183z" /> +<glyph unicode="(" horiz-adv-x="719" d="M124 539v53q0 229 61 436t180 366.5t258 221.5l56 -156q-146 -108 -228 -334t-82 -528v-31q0 -303 81 -530t229 -339l-56 -153q-136 61 -253.5 215.5t-179.5 356.5t-66 422z" /> +<glyph unicode=")" horiz-adv-x="722" d="M40 -302q142 107 224 330t85 513v53q0 299 -81.5 527t-227.5 342l56 153q136 -59 256.5 -214t187 -361t69.5 -427v-45q0 -226 -65 -435t-187 -369t-261 -220z" /> +<glyph unicode="*" horiz-adv-x="928" d="M27 1051l59 181l311 -125l-20 349h196l-20 -356l303 123l59 -183l-320 -89l210 -266l-159 -113l-182 292l-180 -282l-159 108l216 272z" /> +<glyph unicode="+" horiz-adv-x="1118" d="M57 554v261h362v391h275v-391h361v-261h-361v-408h-275v408h-362z" /> +<glyph unicode="," horiz-adv-x="500" d="M35 -286l36 65q67 122 69 243v224h244l-1 -200q-1 -111 -56 -224t-141 -187z" /> +<glyph unicode="-" horiz-adv-x="794" d="M110 507v233h563v-233h-563z" /> +<glyph unicode="." horiz-adv-x="595" d="M126 142q0 69 46.5 112t116.5 43q71 0 117.5 -43t46.5 -112q0 -68 -46 -110.5t-118 -42.5q-71 0 -117 42.5t-46 110.5z" /> +<glyph unicode="/" horiz-adv-x="765" d="M-13 -125l536 1581h215l-536 -1581h-215z" /> +<glyph unicode="0" d="M95 587v268q0 305 126.5 463t364.5 158t364 -156.5t129 -449.5v-268q0 -302 -125 -462t-366 -160q-238 0 -364 157t-129 450zM384 564q0 -178 48.5 -264.5t155.5 -86.5q106 0 153 83t49 254v346q0 181 -49.5 263.5t-154.5 82.5q-102 0 -150.5 -78.5t-51.5 -245.5v-354z " /> +<glyph unicode="1" d="M167 1007v235l603 216h31v-1458h-289v1114z" /> +<glyph unicode="2" d="M70 998q0 133 63.5 243t179.5 172.5t263 62.5q225 0 349.5 -108t124.5 -305q0 -108 -56 -220t-192 -261l-331 -349h626v-233h-998v198l471 502q97 106 143.5 185t46.5 150q0 97 -49 152.5t-140 55.5q-98 0 -154.5 -67.5t-56.5 -177.5h-290z" /> +<glyph unicode="3" d="M64 399h289q0 -82 61.5 -134t151.5 -52q103 0 161.5 54.5t58.5 144.5q0 218 -240 218h-153v226h154q110 0 163 55t53 146q0 88 -52.5 137t-144.5 49q-83 0 -139 -45.5t-56 -118.5h-289q0 114 61.5 204.5t172 141.5t243.5 51q231 0 362 -110.5t131 -304.5q0 -100 -61 -184 t-160 -129q123 -44 183.5 -132t60.5 -208q0 -194 -141.5 -311t-374.5 -117q-218 0 -356.5 115t-138.5 304z" /> +<glyph unicode="4" d="M55 497l607 959h292v-908h165v-233h-165v-315h-289v315h-597zM343 548h322v514l-19 -33z" /> +<glyph unicode="5" d="M105 405h286q9 -91 63.5 -141.5t142.5 -50.5q98 0 151 70.5t53 199.5q0 124 -61 190t-173 66q-103 0 -167 -54l-28 -26l-230 57l84 740h816v-241h-579l-36 -313q103 55 219 55q208 0 326 -129t118 -361q0 -141 -59.5 -252.5t-170.5 -173t-262 -61.5q-132 0 -245 53.5 t-178.5 150.5t-69.5 221z" /> +<glyph unicode="6" d="M100 567v104q0 237 89.5 418.5t257 281t388.5 100.5h48v-238h-28q-196 -3 -315.5 -102t-143.5 -275q116 118 293 118q190 0 302 -136t112 -358q0 -142 -61.5 -257t-174 -179t-254.5 -64q-230 0 -371.5 160t-141.5 427zM390 521q0 -145 57 -226.5t160 -81.5 q93 0 150.5 73.5t57.5 190.5q0 119 -58 192t-156 73q-70 0 -127 -36.5t-84 -96.5v-88z" /> +<glyph unicode="7" d="M61 1222v234h1028v-162l-563 -1294h-305l564 1222h-724z" /> +<glyph unicode="8" d="M95 399q0 121 62 211t167 140q-93 49 -145.5 131t-52.5 188q0 186 124 296.5t337 110.5q212 0 336.5 -109.5t124.5 -297.5q0 -106 -53 -188t-146 -131q106 -51 168 -140.5t62 -210.5q0 -194 -132 -306.5t-359 -112.5t-360 113t-133 306zM384 420q0 -93 54 -150t150 -57 q94 0 147.5 55t53.5 152q0 95 -55 152t-148 57q-92 0 -147 -56.5t-55 -152.5zM416 1055q0 -87 45 -140t127 -53t126.5 53t44.5 140q0 85 -45 136.5t-127 51.5q-81 0 -126 -50t-45 -138z" /> +<glyph unicode="9" d="M86 961q0 143 62.5 262.5t174.5 186t252 66.5q144 0 256 -72t174 -207t63 -309v-107q0 -364 -181 -572t-513 -222l-71 -1v241l64 1q377 17 408 354q-113 -111 -264 -111q-193 0 -309 132.5t-116 357.5zM374 964q0 -119 54.5 -195.5t153.5 -76.5q70 0 120.5 36t76.5 87 v119q0 147 -56 228t-150 81q-87 0 -143 -79.5t-56 -199.5z" /> +<glyph unicode=":" horiz-adv-x="578" d="M125 142q0 69 46.5 112t116.5 43q71 0 117.5 -43t46.5 -112q0 -68 -46 -110.5t-118 -42.5q-71 0 -117 42.5t-46 110.5zM125 961q0 69 46.5 112t116.5 43q71 0 117.5 -43t46.5 -112q0 -68 -46 -110.5t-118 -42.5q-71 0 -117 42.5t-46 110.5z" /> +<glyph unicode=";" horiz-adv-x="537" d="M57 -286l36 65q67 122 69 243v224h244l-1 -200q-1 -111 -56 -224t-141 -187zM108 961q0 69 46.5 112t116.5 43q71 0 117.5 -43t46.5 -112q0 -68 -46 -110.5t-118 -42.5q-71 0 -117 42.5t-46 110.5z" /> +<glyph unicode="<" horiz-adv-x="1042" d="M54 502v236l861 365v-280l-570 -205l570 -201v-280z" /> +<glyph unicode="=" horiz-adv-x="1172" d="M136 313v236h894v-236h-894zM136 746v236h894v-236h-894z" /> +<glyph unicode=">" horiz-adv-x="1058" d="M120 136v279l581 206l-581 203v278l871 -365v-235z" /> +<glyph unicode="?" horiz-adv-x="1019" d="M45 1069q2 191 123.5 299t331.5 108q212 0 329 -102.5t117 -289.5q0 -85 -38 -160.5t-133 -167.5l-81 -77q-76 -73 -87 -171l-4 -61h-256q0 140 34 223t124.5 163.5t120.5 131t30 106.5q0 169 -156 169q-74 0 -118.5 -45.5t-46.5 -125.5h-290zM318 140q0 67 45.5 110.5 t116.5 43.5t116.5 -43.5t45.5 -110.5q0 -66 -44.5 -109t-117.5 -43t-117.5 43t-44.5 109z" /> +<glyph unicode="@" horiz-adv-x="1833" d="M87 463q12 276 126 495t310.5 338.5t443.5 119.5q251 0 432 -107.5t271 -307.5t79 -465q-11 -256 -126.5 -406.5t-310.5 -150.5q-86 0 -148.5 37t-94.5 106q-100 -140 -261 -140q-146 0 -226 123t-60 325q18 165 83.5 293.5t165.5 197.5t216 69q143 0 244 -66l63 -43 l-51 -578q-10 -79 17.5 -121t87.5 -42q92 0 154 107.5t68 281.5q17 349 -140.5 536.5t-466.5 187.5q-193 0 -344 -98t-238 -278.5t-98 -413.5q-16 -354 142 -547.5t473 -193.5q83 0 174 18.5t157 49.5l38 -154q-61 -40 -164.5 -64.5t-208.5 -24.5q-264 0 -450 106.5 t-277.5 314t-79.5 495.5zM744 430q-11 -132 23 -200.5t110 -68.5q49 0 93 43t73 124l42 473q-39 13 -80 13q-115 0 -178.5 -98t-82.5 -286z" /> +<glyph unicode="A" horiz-adv-x="1378" d="M7 0l542 1456h278l545 -1456h-319l-101 300h-526l-100 -300h-319zM507 543h364l-183 545z" /> +<glyph unicode="B" horiz-adv-x="1307" d="M130 0v1456h510q265 0 402 -101.5t137 -297.5q0 -107 -55 -188.5t-153 -119.5q112 -28 176.5 -113t64.5 -208q0 -210 -134 -318t-382 -110h-566zM430 241h257q106 0 165.5 50.5t59.5 139.5q0 200 -207 203h-275v-393zM430 846h222q227 4 227 181q0 99 -57.5 142.5 t-181.5 43.5h-210v-367z" /> +<glyph unicode="C" horiz-adv-x="1340" d="M86 686v89q0 210 74 370t211.5 245.5t319.5 85.5q252 0 406 -135t178 -379h-300q-11 141 -78.5 204.5t-205.5 63.5q-150 0 -224.5 -107.5t-76.5 -333.5v-110q0 -236 71.5 -345t225.5 -109q139 0 207.5 63.5t78.5 196.5h300q-17 -235 -173.5 -370t-412.5 -135 q-280 0 -440.5 188.5t-160.5 517.5z" /> +<glyph unicode="D" horiz-adv-x="1331" d="M130 0v1456h448q192 0 343.5 -86.5t236.5 -246t85 -362.5v-67q0 -203 -83.5 -361t-235.5 -245t-343 -88h-451zM430 241h145q176 0 269 115t95 329v77q0 222 -92 336.5t-269 114.5h-148v-972z" /> +<glyph unicode="E" horiz-adv-x="1152" d="M130 0v1456h974v-243h-674v-347h576v-235h-576v-390h676v-241h-976z" /> +<glyph unicode="F" horiz-adv-x="1122" d="M130 0v1456h948v-243h-648v-376h576v-242h-576v-595h-300z" /> +<glyph unicode="G" horiz-adv-x="1395" d="M94 671v99q0 218 73.5 377.5t212 244t324.5 84.5q259 0 405 -123.5t173 -359.5h-292q-20 125 -88.5 183t-188.5 58q-153 0 -233 -115t-81 -342v-93q0 -229 87 -346t255 -117q169 0 241 72v251h-273v221h573v-581q-81 -97 -229 -150.5t-328 -53.5q-189 0 -331.5 82.5 t-220 239.5t-79.5 369z" /> +<glyph unicode="H" horiz-adv-x="1447" d="M130 0v1456h300v-590h585v590h300v-1456h-300v624h-585v-624h-300z" /> +<glyph unicode="I" horiz-adv-x="597" d="M149 0v1456h300v-1456h-300z" /> +<glyph unicode="J" horiz-adv-x="1144" d="M40 430h302q0 -107 45 -158t142 -51q86 0 137 59t51 168v1008h300v-1008q0 -139 -61.5 -245.5t-173.5 -164.5t-253 -58q-231 0 -360 117.5t-129 332.5z" /> +<glyph unicode="K" horiz-adv-x="1300" d="M130 0v1456h300v-660l132 181l371 479h369l-517 -647l532 -809h-357l-374 584l-156 -168v-416h-300z" /> +<glyph unicode="L" horiz-adv-x="1109" d="M130 0v1456h300v-1215h637v-241h-937z" /> +<glyph unicode="M" horiz-adv-x="1794" d="M130 0v1456h392l374 -1056l372 1056h394v-1456h-301v398l30 687l-393 -1085h-206l-392 1084l30 -686v-398h-300z" /> +<glyph unicode="N" horiz-adv-x="1446" d="M130 0v1456h300l585 -960v960h299v-1456h-300l-584 958v-958h-300z" /> +<glyph unicode="O" horiz-adv-x="1414" d="M86 687v72q0 215 77.5 378.5t219 251t323.5 87.5t323.5 -87.5t219 -251t77.5 -377.5v-65q0 -215 -76 -377t-217.5 -250t-324.5 -88q-181 0 -323 87t-220 248.5t-79 371.5zM390 695q0 -223 82 -346t236 -123q151 0 232 118.5t82 345.5v71q0 229 -82 348t-234 119 q-151 0 -233 -117.5t-83 -344.5v-71z" /> +<glyph unicode="P" horiz-adv-x="1321" d="M130 0v1456h568q164 0 288.5 -60t191.5 -170.5t67 -251.5q0 -214 -146.5 -337.5t-405.5 -123.5h-263v-513h-300zM430 756h268q119 0 181.5 56t62.5 160q0 107 -63 173t-174 68h-275v-457z" /> +<glyph unicode="Q" horiz-adv-x="1414" d="M84 687v72q0 215 77.5 378.5t219 251t323.5 87.5t323.5 -87.5t219 -251t77.5 -377.5v-65q0 -204 -66 -354.5t-183 -241.5l242 -190l-191 -169l-310 249q-53 -9 -110 -9q-181 0 -323 87t-220 248.5t-79 371.5zM388 695q0 -223 82 -346t236 -123q151 0 232 118.5t82 345.5 v71q0 229 -82 348t-234 119q-151 0 -233 -117.5t-83 -344.5v-71z" /> +<glyph unicode="R" horiz-adv-x="1307" d="M130 0v1456h541q258 0 398 -115t140 -325q0 -149 -64.5 -248.5t-195.5 -158.5l315 -595v-14h-322l-273 533h-239v-533h-300zM430 776h242q113 0 175 57.5t62 158.5q0 103 -58.5 162t-179.5 59h-241v-437z" /> +<glyph unicode="S" horiz-adv-x="1259" d="M69 458h301q0 -241 288 -241q107 0 167 43.5t60 121.5q0 85 -60 130.5t-216 96t-247 99.5q-248 134 -248 361q0 118 66.5 210.5t191 144.5t279.5 52q156 0 278 -56.5t189.5 -159.5t67.5 -234h-300q0 100 -63 155.5t-177 55.5q-110 0 -171 -46.5t-61 -122.5 q0 -71 71.5 -119t210.5 -90q256 -77 373 -191t117 -284q0 -189 -143 -296.5t-385 -107.5q-168 0 -306 61.5t-210.5 168.5t-72.5 248z" /> +<glyph unicode="T" horiz-adv-x="1267" d="M40 1213v243h1186v-243h-446v-1213h-300v1213h-440z" /> +<glyph unicode="U" horiz-adv-x="1348" d="M116 486v970h300v-961q0 -143 68.5 -208.5t189.5 -65.5q253 0 257 266v969h301v-959q0 -239 -149.5 -378t-408.5 -139q-255 0 -405 135t-153 371z" /> +<glyph unicode="V" horiz-adv-x="1339" d="M7 1456h333l328 -1095l330 1095h334l-507 -1456h-313z" /> +<glyph unicode="W" horiz-adv-x="1791" d="M35 1456h299l197 -1034l240 1034h254l239 -1036l196 1036h299l-323 -1456h-302l-237 974l-237 -974h-302z" /> +<glyph unicode="X" horiz-adv-x="1301" d="M22 0l435 734l-424 722h345l273 -502l273 502h345l-424 -722l435 -734h-349l-280 510l-280 -510h-349z" /> +<glyph unicode="Y" horiz-adv-x="1266" d="M2 1456h329l301 -656l303 656h328l-478 -928v-528h-305v528z" /> +<glyph unicode="Z" horiz-adv-x="1241" d="M73 0v176l720 1037h-719v243h1092v-172l-718 -1043h734v-241h-1109z" /> +<glyph unicode="[" horiz-adv-x="569" d="M120 -339v2033h432v-223h-142v-1587h142v-223h-432z" /> +<glyph unicode="\" horiz-adv-x="864" d="M0 1456h295l608 -1581h-296z" /> +<glyph unicode="]" horiz-adv-x="569" d="M13 -116h143v1587h-143v223h432v-2033h-432v223z" /> +<glyph unicode="^" horiz-adv-x="895" d="M44 729l299 727h210l299 -727h-229l-175 457l-174 -457h-230z" /> +<glyph unicode="_" horiz-adv-x="914" d="M1 0h911v-226h-911v226z" /> +<glyph unicode="`" horiz-adv-x="677" d="M52 1536h315l198 -310h-237z" /> +<glyph unicode="a" horiz-adv-x="1098" d="M68 304q0 172 127.5 264t368.5 93h133v62q0 75 -38.5 120t-121.5 45q-73 0 -114.5 -35t-41.5 -96h-289q0 94 58 174t164 125.5t238 45.5q200 0 317.5 -100.5t117.5 -282.5v-469q1 -154 43 -233v-17h-292q-20 39 -29 97q-105 -117 -273 -117q-159 0 -263.5 92t-104.5 232z M357 325q0 -54 38 -89t104 -35q64 0 118 28.5t80 76.5v186h-108q-217 0 -231 -150z" /> +<glyph unicode="b" horiz-adv-x="1153" d="M111 0v1536h289v-551q100 117 263 117q198 0 310.5 -145.5t112.5 -409.5v-16q0 -260 -111 -405.5t-310 -145.5q-176 0 -281 135l-13 -115h-260zM400 327q53 -114 192 -114q140 0 184 138q21 66 21 201q0 164 -52 239.5t-155 75.5q-138 0 -190 -113v-427z" /> +<glyph unicode="c" horiz-adv-x="1068" d="M66 535v19q0 250 133 399t365 149q203 0 325.5 -115.5t124.5 -307.5h-271q-2 84 -52 136.5t-132 52.5q-101 0 -152.5 -73.5t-51.5 -238.5v-30q0 -167 51 -240t155 -73q80 0 130 44t52 117h271q-1 -110 -60 -201.5t-161.5 -142t-226.5 -50.5q-232 0 -366 147.5t-134 407.5 z" /> +<glyph unicode="d" horiz-adv-x="1154" d="M66 549q0 253 113.5 403t310.5 150q158 0 261 -118v552h290v-1536h-261l-14 115q-108 -135 -278 -135q-191 0 -306.5 150.5t-115.5 418.5zM355 528q0 -152 53 -233t154 -81q134 0 189 113v427q-54 113 -187 113q-209 0 -209 -339z" /> +<glyph unicode="e" horiz-adv-x="1107" d="M72 515v28q0 163 63 291.5t178.5 198t263.5 69.5q222 0 349.5 -140t127.5 -397v-118h-689q14 -106 84.5 -170t178.5 -64q167 0 261 121l142 -159q-65 -92 -176 -143.5t-246 -51.5q-238 0 -387.5 146t-149.5 389zM368 644h402v23q-2 96 -52 148.5t-142 52.5 q-86 0 -139.5 -58t-68.5 -166z" /> +<glyph unicode="f" horiz-adv-x="734" d="M29 870v212h161v92q0 182 104.5 282.5t292.5 100.5q60 0 147 -20l-3 -224q-36 9 -88 9q-163 0 -163 -153v-87h215v-212h-215v-870h-290v870h-161z" /> +<glyph unicode="g" horiz-adv-x="1169" d="M69 537v12q0 249 118.5 401t319.5 152q178 0 277 -122l12 102h262v-1046q0 -142 -64.5 -247t-181.5 -160t-274 -55q-119 0 -232 47.5t-171 122.5l128 176q108 -121 262 -121q115 0 179 61.5t64 174.5v58q-100 -113 -263 -113q-195 0 -315.5 152.5t-120.5 404.5zM358 528 q0 -147 59 -230.5t162 -83.5q132 0 189 99v455q-58 99 -187 99q-104 0 -163.5 -85t-59.5 -254z" /> +<glyph unicode="h" horiz-adv-x="1146" d="M104 0v1536h289v-572q115 138 289 138q352 0 357 -409v-693h-289v685q0 93 -40 137.5t-133 44.5q-127 0 -184 -98v-769h-289z" /> +<glyph unicode="i" horiz-adv-x="543" d="M109 1362q0 65 43.5 107t118.5 42q74 0 118 -42t44 -107q0 -66 -44.5 -108t-117.5 -42t-117.5 42t-44.5 108zM126 0v1082h290v-1082h-290z" /> +<glyph unicode="j" horiz-adv-x="532" d="M-95 -191q52 -9 91 -9q131 0 131 139v1143h290v-1141q0 -179 -95 -278.5t-274 -99.5q-75 0 -143 17v229zM104 1362q0 65 43.5 107t118.5 42t118.5 -42t43.5 -107q0 -66 -44.5 -108t-117.5 -42t-117.5 42t-44.5 108z" /> +<glyph unicode="k" horiz-adv-x="1094" d="M111 0v1536h289v-851l56 72l277 325h347l-391 -451l425 -631h-332l-278 434l-104 -104v-330h-289z" /> +<glyph unicode="l" horiz-adv-x="543" d="M126 0v1536h290v-1536h-290z" /> +<glyph unicode="m" horiz-adv-x="1773" d="M111 0v1082h271l9 -121q115 141 311 141q209 0 287 -165q114 165 325 165q176 0 262 -102.5t86 -308.5v-691h-290v690q0 92 -36 134.5t-127 42.5q-130 0 -180 -124l1 -743h-289v689q0 94 -37 136t-126 42q-123 0 -178 -102v-765h-289z" /> +<glyph unicode="n" horiz-adv-x="1147" d="M105 0v1082h272l9 -125q116 145 311 145q172 0 256 -101t86 -302v-699h-289v692q0 92 -40 133.5t-133 41.5q-122 0 -183 -104v-763h-289z" /> +<glyph unicode="o" horiz-adv-x="1158" d="M66 538v13q0 161 62 287t178.5 195t270.5 69q219 0 357.5 -134t154.5 -364l2 -74q0 -249 -139 -399.5t-373 -150.5t-373.5 150t-139.5 408zM355 530q0 -154 58 -235.5t166 -81.5q105 0 164 80.5t59 257.5q0 151 -59 234t-166 83q-106 0 -164 -82.5t-58 -255.5z" /> +<glyph unicode="p" horiz-adv-x="1153" d="M111 -416v1498h268l10 -106q105 126 274 126q200 0 311 -148t111 -408v-15q0 -250 -113.5 -400.5t-306.5 -150.5q-164 0 -265 114v-510h-289zM400 320q53 -107 189 -107q207 0 207 339q0 151 -53.5 233t-155.5 82q-136 0 -187 -104v-443z" /> +<glyph unicode="q" horiz-adv-x="1157" d="M66 551q0 255 113.5 403t311.5 148q174 0 277 -133l19 113h254v-1498h-290v509q-100 -113 -262 -113q-193 0 -308 150t-115 421zM355 530q0 -155 54.5 -236t153.5 -81q133 0 188 106v447q-54 102 -186 102q-100 0 -155 -81t-55 -257z" /> +<glyph unicode="r" horiz-adv-x="747" d="M111 0v1082h273l8 -129q87 149 241 149q48 0 90 -13l-4 -278q-59 8 -104 8q-164 0 -215 -111v-708h-289z" /> +<glyph unicode="s" horiz-adv-x="1053" d="M56 344h274q4 -77 57 -118t142 -41q83 0 125.5 31.5t42.5 82.5q0 53 -52.5 83.5t-168.5 54.5q-386 81 -386 328q0 144 119.5 240.5t312.5 96.5q206 0 329.5 -97t123.5 -252h-289q0 62 -40 102.5t-125 40.5q-73 0 -113 -33t-40 -84q0 -48 45.5 -77.5t153.5 -51t182 -48.5 q229 -84 229 -291q0 -148 -127 -239.5t-328 -91.5q-136 0 -241.5 48.5t-165.5 133t-60 182.5z" /> +<glyph unicode="t" horiz-adv-x="692" d="M10 870v212h158v266h289v-266h185v-212h-185v-540q0 -60 23 -86t88 -26q48 0 85 7v-219q-85 -26 -175 -26q-304 0 -310 307v583h-158z" /> +<glyph unicode="u" horiz-adv-x="1146" d="M104 373v709h289v-699q0 -169 154 -169q147 0 202 102v766h290v-1082h-272l-8 110q-107 -130 -296 -130q-174 0 -265.5 100t-93.5 293z" /> +<glyph unicode="v" horiz-adv-x="1035" d="M13 1082h302l201 -729l201 729h302l-365 -1082h-276z" /> +<glyph unicode="w" horiz-adv-x="1505" d="M28 1082h279l141 -688l198 688h209l197 -689l142 689h279l-276 -1082h-242l-205 681l-205 -681h-241z" /> +<glyph unicode="x" horiz-adv-x="1042" d="M21 0l321 552l-307 530h310l178 -323l182 323h309l-308 -530l321 -552h-310l-193 340l-192 -340h-311z" /> +<glyph unicode="y" horiz-adv-x="1028" d="M3 1082h311l201 -673l200 673h310l-435 -1250l-24 -57q-97 -212 -320 -212q-63 0 -128 19v219l44 -1q82 0 122.5 25t63.5 83l34 89z" /> +<glyph unicode="z" horiz-adv-x="1042" d="M74 0v176l509 672h-494v234h867v-171l-513 -678h529v-233h-898z" /> +<glyph unicode="{" horiz-adv-x="676" d="M48 515v207q174 0 178 199v212q0 185 90 299t270 165l56 -161q-76 -28 -115 -97.5t-41 -192.5v-210q0 -226 -179 -317q179 -92 179 -319v-212q5 -234 156 -286l-56 -162q-360 101 -360 465v199q0 211 -178 211z" /> +<glyph unicode="|" horiz-adv-x="518" d="M173 -270v1726h175v-1726h-175z" /> +<glyph unicode="}" horiz-adv-x="676" d="M34 -198q152 54 156 290v212q0 226 183 314q-183 88 -183 319v209q-4 233 -156 290l56 161q179 -50 269 -163.5t91 -297.5v-215q4 -199 178 -199v-207q-178 0 -178 -209v-217q-8 -350 -360 -449z" /> +<glyph unicode="~" horiz-adv-x="1328" d="M106 415q0 186 90.5 299t240.5 113q78 0 142 -30t145.5 -107.5t148.5 -77.5q59 0 96.5 53t37.5 129l214 -1q0 -186 -93 -302t-240 -116q-74 0 -137.5 28.5t-146.5 108t-153 79.5q-58 0 -94 -50t-36 -128z" /> +<glyph unicode="¡" horiz-adv-x="578" d="M128 948q0 67 44.5 110t117.5 43t117.5 -43t44.5 -110t-46 -110t-116 -43t-116 43t-46 110zM137 -369l33 1008h241l33 -1008h-307z" /> +<glyph unicode="¢" horiz-adv-x="1178" d="M99 532v22q0 218 105 363t294 177v224h200v-225q163 -29 255.5 -140t94.5 -274h-272q-2 86 -52 137.5t-131 51.5q-102 0 -153 -74.5t-52 -234.5v-33q0 -168 51.5 -240.5t154.5 -72.5q80 0 130 44t52 117h272q-2 -145 -98.5 -250.5t-251.5 -134.5v-234h-200v233 q-187 30 -293 174t-106 370z" /> +<glyph unicode="£" horiz-adv-x="1217" d="M99 576v236h154l-7 227q0 202 123.5 319t330.5 117q212 0 333 -112.5t121 -304.5h-287q0 85 -43.5 130t-124.5 45q-66 0 -109.5 -49t-43.5 -145l9 -227h309v-236h-300l6 -139q0 -123 -62 -196h653v-241h-1059v241h92q72 18 72 179l-5 156h-162z" /> +<glyph unicode="¤" horiz-adv-x="1418" d="M81 118l135 137q-100 156 -100 353q0 204 109 365l-144 147l141 144l142 -145q155 115 348 115q194 0 349 -117l144 148l142 -145l-148 -151q107 -159 107 -361q0 -193 -98 -349l139 -141l-142 -145l-132 134q-159 -127 -361 -127q-203 0 -361 126l-129 -132zM302 608 q0 -118 54 -219.5t149.5 -160t206.5 -58.5q110 0 205.5 58.5t149.5 160t54 219.5q0 119 -54 219.5t-149 158.5t-206 58q-112 0 -207 -58t-149 -158.5t-54 -219.5z" /> +<glyph unicode="¥" horiz-adv-x="1254" d="M20 1456h330l276 -606l277 606h329l-375 -714h234v-175h-319v-115h319v-174h-319v-278h-300v278h-336v174h336v115h-336v175h260z" /> +<glyph unicode="¦" horiz-adv-x="516" d="M128 -270v795h260v-795h-260zM128 698v758h260v-758h-260z" /> +<glyph unicode="§" horiz-adv-x="1287" d="M92 -35l289 1q0 -89 64 -136.5t191 -47.5q112 0 170 37.5t58 100.5q0 65 -64.5 106t-247 91.5t-275 105.5t-138 130t-45.5 181q0 180 162 273q-136 103 -136 288q0 171 140.5 276t379.5 105q247 0 383 -113t136 -314h-289q0 87 -61.5 140.5t-168.5 53.5q-110 0 -170 -39 t-60 -107q0 -73 55.5 -110t240.5 -86t282.5 -104t144.5 -131.5t47 -184.5q0 -182 -162 -271q135 -102 135 -288q0 -175 -137.5 -274.5t-379.5 -99.5q-257 0 -400.5 107t-143.5 310zM383 563q0 -69 41.5 -106.5t165.5 -77.5l222 -67q82 47 82 140q0 62 -45.5 101.5 t-163.5 79.5l-227 71q-75 -42 -75 -141z" /> +<glyph unicode="¨" horiz-adv-x="956" d="M93 1365q0 54 38.5 90.5t99.5 36.5q62 0 100 -37.5t38 -89.5t-38 -89t-100 -37q-59 0 -98.5 35.5t-39.5 90.5zM580 1365q0 53 39.5 90t98.5 37q58 0 98.5 -36.5t40.5 -90.5q0 -52 -38.5 -89.5t-100.5 -37.5t-100 37.5t-38 89.5z" /> +<glyph unicode="©" horiz-adv-x="1606" d="M86 729q0 202 93.5 375t259 272.5t357.5 99.5t357.5 -99.5t259 -272.5t93.5 -375q0 -204 -95 -377.5t-259.5 -272.5t-355.5 -99q-193 0 -357.5 100t-258.5 273t-94 376zM208 729q0 -170 77.5 -314t214 -227.5t296.5 -83.5t297.5 85t213.5 229t76 311q0 166 -75 308.5 t-212 228t-300 85.5q-159 0 -295.5 -82t-214.5 -226t-78 -314zM433 675v113q0 174 95.5 280.5t253.5 106.5q163 0 249.5 -82.5t86.5 -231.5h-156q0 96 -46 137.5t-134 41.5q-92 0 -142.5 -67.5t-51.5 -180.5v-123q0 -117 51 -184.5t143 -67.5q89 0 134 40.5t45 138.5h156 q0 -152 -87.5 -233t-247.5 -81t-254.5 106.5t-94.5 286.5z" /> +<glyph unicode="ª" horiz-adv-x="909" d="M137 919q0 110 84 170.5t257 60.5h102v51q0 127 -116 127q-65 0 -101.5 -25.5t-36.5 -73.5l-173 14q0 104 87.5 168.5t223.5 64.5q135 0 213 -72t78 -205v-316q0 -97 26 -178h-177q-10 27 -17 68q-77 -82 -201 -82q-118 0 -183.5 61.5t-65.5 166.5zM312 923 q0 -88 117 -88q40 0 82 18.5t69 43.5v136h-106q-76 -1 -119 -31t-43 -79z" /> +<glyph unicode="«" horiz-adv-x="1023" d="M77 515v19l280 390h186l-240 -400l240 -399h-186zM462 515v19l280 390h186l-240 -400l240 -399h-186z" /> +<glyph unicode="¬" horiz-adv-x="1129" d="M126 634v171h835v-431h-200v260h-635z" /> +<glyph unicode="­" horiz-adv-x="794" d="M110 507v233h563v-233h-563z" /> +<glyph unicode="®" horiz-adv-x="1606" d="M86 729q0 202 93.5 375t259 272.5t357.5 99.5t357.5 -99.5t259 -272.5t93.5 -375q0 -204 -95 -377.5t-259.5 -272.5t-355.5 -99q-193 0 -357.5 100t-258.5 273t-94 376zM208 729q0 -170 77.5 -314t214 -227.5t296.5 -83.5t297.5 85t213.5 229t76 311q0 166 -75 308.5 t-212 228t-300 85.5q-159 0 -295.5 -82t-214.5 -226t-78 -314zM501 316v850h281q151 0 238 -68.5t87 -194.5q0 -112 -113 -174q61 -31 85.5 -86.5t24.5 -137.5t3.5 -116t13.5 -57v-16h-155q-13 34 -13 194q0 76 -33 109.5t-110 33.5h-158v-337h-151zM652 787h136 q74 0 121.5 32t47.5 84q0 70 -35.5 99.5t-128.5 30.5h-141v-246z" /> +<glyph unicode="¯" horiz-adv-x="1026" d="M148 1290v167h730v-167h-730z" /> +<glyph unicode="°" horiz-adv-x="795" d="M126 1200q0 114 81 195t191 81q109 0 188.5 -80.5t79.5 -195.5t-79.5 -193.5t-188.5 -78.5q-108 0 -190 78.5t-82 193.5zM273 1200q0 -52 36.5 -88t88.5 -36q53 0 87.5 35.5t34.5 88.5q0 52 -34.5 90t-87.5 38t-89 -38t-36 -90z" /> +<glyph unicode="±" horiz-adv-x="1100" d="M89 701v241h335v343h253v-343h328v-241h-328v-364h-253v364h-335zM113 1v235h864v-235h-864z" /> +<glyph unicode="²" horiz-adv-x="763" d="M55 1193q0 116 85.5 195t220.5 79q148 0 228.5 -64.5t80.5 -183.5q0 -70 -36 -128t-144 -145l-148 -115h351v-164h-620v138l287 257q56 49 80.5 91t24.5 65q0 84 -95 84q-50 0 -79.5 -31t-29.5 -78h-206z" /> +<glyph unicode="³" horiz-adv-x="763" d="M48 902h206q0 -34 34 -58.5t86 -24.5q60 0 86.5 26.5t26.5 61.5q0 92 -122 93h-92v136h82q119 0 119 88q0 35 -28.5 56t-77.5 21q-42 0 -71.5 -15.5t-29.5 -44.5h-205q0 102 84.5 163.5t215.5 61.5q145 0 230.5 -59.5t85.5 -166.5q0 -119 -135 -169q150 -41 150 -184 q0 -105 -91.5 -168.5t-239.5 -63.5q-142 0 -228 66.5t-86 180.5z" /> +<glyph unicode="´" horiz-adv-x="679" d="M101 1226l197 310h315l-277 -310h-235z" /> +<glyph unicode="µ" horiz-adv-x="1261" d="M139 -416v1498h289v-623q0 -126 40.5 -185.5t139.5 -59.5q149 0 205 105v763h289v-1082h-269l-6 68q-89 -89 -225 -89q-102 0 -174 45v-440h-289z" /> +<glyph unicode="¶" horiz-adv-x="1003" d="M75 988q0 213 133 340.5t363 127.5h298v-1456h-219v520h-80q-230 0 -362.5 127t-132.5 341z" /> +<glyph unicode="·" horiz-adv-x="617" d="M140 697q0 69 46 112t117 43t117.5 -43t46.5 -112t-47 -111.5t-117 -42.5q-72 0 -117.5 43.5t-45.5 110.5z" /> +<glyph unicode="¸" horiz-adv-x="548" d="M98 -136l31 143h216l-11 -58q150 -27 150 -173q0 -110 -91.5 -174t-257.5 -64l-7 167q112 0 112 81q0 42 -33.5 57.5t-108.5 20.5z" /> +<glyph unicode="¹" horiz-adv-x="763" d="M135 1176v158l374 121h19v-786h-204v548z" /> +<glyph unicode="º" horiz-adv-x="936" d="M118 1049v72q0 160 95.5 257.5t250.5 97.5t251 -97t96 -263v-72q0 -159 -94 -256.5t-251 -97.5q-158 0 -253 98t-95 261zM293 1044q0 -98 46.5 -153t126.5 -55q78 0 123.5 54t46.5 151v80q0 97 -46.5 152t-125.5 55q-78 0 -124.5 -54.5t-46.5 -156.5v-73z" /> +<glyph unicode="»" horiz-adv-x="1023" d="M85 124l240 399l-240 400h187l280 -390v-19l-280 -390h-187zM478 124l240 399l-240 400h187l280 -390v-19l-280 -390h-187z" /> +<glyph unicode="¼" horiz-adv-x="1470" d="M101 1171v158l374 121h19v-786h-204v548zM317 193l711 1138l141 -76l-711 -1138zM739 294l357 495h206v-463h88v-167h-88v-159h-205v159h-346zM935 326h162v212l-14 -22z" /> +<glyph unicode="½" horiz-adv-x="1559" d="M84 1177v158l374 121h19v-786h-204v548zM275 193l711 1138l141 -76l-711 -1138zM839 526q0 116 85.5 195t220.5 79q148 0 228.5 -64.5t80.5 -183.5q0 -70 -36 -128t-144 -145l-148 -115h351v-164h-620v138l287 257q56 49 80.5 91t24.5 65q0 84 -95 84q-50 0 -79.5 -31 t-29.5 -78h-206z" /> +<glyph unicode="¾" horiz-adv-x="1655" d="M94 903h206q0 -34 34 -58.5t86 -24.5q60 0 86.5 26.5t26.5 61.5q0 92 -122 93h-92v136h82q119 0 119 88q0 35 -28.5 56t-77.5 21q-42 0 -71.5 -15.5t-29.5 -44.5h-205q0 102 84.5 163.5t215.5 61.5q145 0 230.5 -59.5t85.5 -166.5q0 -119 -135 -169q150 -41 150 -184 q0 -105 -91.5 -168.5t-239.5 -63.5q-142 0 -228 66.5t-86 180.5zM478 193l711 1138l141 -76l-711 -1138zM897 294l357 495h206v-463h88v-167h-88v-159h-205v159h-346zM1093 326h162v212l-14 -22z" /> +<glyph unicode="¿" horiz-adv-x="1019" d="M69 6q0 159 153 312l97 93q50 45 69.5 94t21.5 138h256q0 -133 -31 -215t-110.5 -156t-108 -110t-43 -73t-14.5 -81q0 -157 154 -157q77 0 122.5 45t47.5 126h289q-2 -192 -123 -299.5t-331 -107.5q-213 0 -331 101.5t-118 289.5zM378 949q0 67 44.5 110t117.5 43 t117.5 -43t44.5 -110t-46 -110t-116 -43t-116 43t-46 110z" /> +<glyph unicode="À" horiz-adv-x="1378" d="M7 0l542 1456h278l545 -1456h-319l-101 300h-526l-100 -300h-319zM323 1846h315l198 -310h-237zM507 543h364l-183 545z" /> +<glyph unicode="Á" horiz-adv-x="1378" d="M7 0l542 1456h278l545 -1456h-319l-101 300h-526l-100 -300h-319zM507 543h364l-183 545zM553 1536l197 310h315l-277 -310h-235z" /> +<glyph unicode="Â" horiz-adv-x="1378" d="M7 0l542 1456h278l545 -1456h-319l-101 300h-526l-100 -300h-319zM312 1554v16l296 276h168l300 -280v-12h-230l-154 145l-154 -145h-226zM507 543h364l-183 545z" /> +<glyph unicode="Ã" horiz-adv-x="1378" d="M7 0l542 1456h278l545 -1456h-319l-101 300h-526l-100 -300h-319zM315 1566q0 111 65.5 189t160.5 78q30 0 56.5 -7.5t86.5 -36.5t83 -35t48 -6q35 0 60.5 24.5t25.5 70.5l167 -11q0 -113 -66 -189.5t-161 -76.5q-38 0 -67.5 8.5t-81.5 36.5t-75 34.5t-50 6.5 q-35 0 -59.5 -25t-24.5 -71zM507 543h364l-183 545z" /> +<glyph unicode="Ä" horiz-adv-x="1378" d="M7 0l542 1456h278l545 -1456h-319l-101 300h-526l-100 -300h-319zM309 1675q0 54 38.5 90.5t99.5 36.5q62 0 100 -37.5t38 -89.5t-38 -89t-100 -37q-59 0 -98.5 35.5t-39.5 90.5zM507 543h364l-183 545zM796 1675q0 53 39.5 90t98.5 37q58 0 98.5 -36.5t40.5 -90.5 q0 -52 -38.5 -89.5t-100.5 -37.5t-100 37.5t-38 89.5z" /> +<glyph unicode="Å" horiz-adv-x="1378" d="M7 0l542 1456h278l545 -1456h-319l-101 300h-526l-100 -300h-319zM470 1730q0 86 65 145.5t158 59.5q92 0 157.5 -58.5t65.5 -146.5q0 -85 -64 -143t-159 -58q-97 0 -160 59t-63 142zM507 543h364l-183 545zM585 1730q0 -44 29 -75.5t79 -31.5t79 31.5t29 75.5 q0 46 -29.5 77.5t-78.5 31.5t-78.5 -31.5t-29.5 -77.5z" /> +<glyph unicode="Æ" horiz-adv-x="1925" d="M2 0l786 1456h1016v-236h-598l15 -355h502v-236h-492l16 -394h618v-235h-897l-14 333h-446l-167 -333h-339zM633 580h311l-24 570z" /> +<glyph unicode="Ç" horiz-adv-x="1340" d="M86 686v89q0 210 74 370t211.5 245.5t319.5 85.5q252 0 406 -135t178 -379h-300q-11 141 -78.5 204.5t-205.5 63.5q-150 0 -224.5 -107.5t-76.5 -333.5v-110q0 -236 71.5 -345t225.5 -109q139 0 207.5 63.5t78.5 196.5h300q-17 -235 -173.5 -370t-412.5 -135 q-280 0 -440.5 188.5t-160.5 517.5zM550 -137l31 143h216l-11 -58q150 -27 150 -173q0 -110 -91.5 -174t-257.5 -64l-7 167q112 0 112 81q0 42 -33.5 57.5t-108.5 20.5z" /> +<glyph unicode="È" horiz-adv-x="1152" d="M130 0v1456h974v-243h-674v-347h576v-235h-576v-390h676v-241h-976zM266 1849h315l198 -310h-237z" /> +<glyph unicode="É" horiz-adv-x="1152" d="M130 0v1456h974v-243h-674v-347h576v-235h-576v-390h676v-241h-976zM496 1539l197 310h315l-277 -310h-235z" /> +<glyph unicode="Ê" horiz-adv-x="1152" d="M130 0v1456h974v-243h-674v-347h576v-235h-576v-390h676v-241h-976zM255 1557v16l296 276h168l300 -280v-12h-230l-154 145l-154 -145h-226z" /> +<glyph unicode="Ë" horiz-adv-x="1152" d="M130 0v1456h974v-243h-674v-347h576v-235h-576v-390h676v-241h-976zM252 1678q0 54 38.5 90.5t99.5 36.5q62 0 100 -37.5t38 -89.5t-38 -89t-100 -37q-59 0 -98.5 35.5t-39.5 90.5zM739 1678q0 53 39.5 90t98.5 37q58 0 98.5 -36.5t40.5 -90.5q0 -52 -38.5 -89.5 t-100.5 -37.5t-100 37.5t-38 89.5z" /> +<glyph unicode="Ì" horiz-adv-x="597" d="M-70 1849h315l198 -310h-237zM149 0v1456h300v-1456h-300z" /> +<glyph unicode="Í" horiz-adv-x="597" d="M149 0v1456h300v-1456h-300zM159 1539l197 310h315l-277 -310h-235z" /> +<glyph unicode="Î" horiz-adv-x="597" d="M-81 1557v16l296 276h168l300 -280v-12h-230l-154 145l-154 -145h-226zM149 0v1456h300v-1456h-300z" /> +<glyph unicode="Ï" horiz-adv-x="597" d="M-84 1678q0 54 38.5 90.5t99.5 36.5q62 0 100 -37.5t38 -89.5t-38 -89t-100 -37q-59 0 -98.5 35.5t-39.5 90.5zM149 0v1456h300v-1456h-300zM403 1678q0 53 39.5 90t98.5 37q58 0 98.5 -36.5t40.5 -90.5q0 -52 -38.5 -89.5t-100.5 -37.5t-100 37.5t-38 89.5z" /> +<glyph unicode="Ð" horiz-adv-x="1361" d="M-20 642v183h180v631h448q192 0 343.5 -86.5t236.5 -246t85 -362.5v-67q0 -203 -83.5 -361t-235.5 -245t-343 -88h-451v642h-180zM460 241h145q178 0 271 117.5t93 335.5v68q0 222 -92 336.5t-269 114.5h-148v-388h219v-183h-219v-401z" /> +<glyph unicode="Ñ" horiz-adv-x="1446" d="M130 0v1456h300l585 -960v960h299v-1456h-300l-584 958v-958h-300zM349 1566q0 111 65.5 189t160.5 78q30 0 56.5 -7.5t86.5 -36.5t83 -35t48 -6q35 0 60.5 24.5t25.5 70.5l167 -11q0 -113 -66 -189.5t-161 -76.5q-38 0 -67.5 8.5t-81.5 36.5t-75 34.5t-50 6.5 q-35 0 -59.5 -25t-24.5 -71z" /> +<glyph unicode="Ò" horiz-adv-x="1414" d="M86 687v72q0 215 77.5 378.5t219 251t323.5 87.5t323.5 -87.5t219 -251t77.5 -377.5v-65q0 -215 -76 -377t-217.5 -250t-324.5 -88q-181 0 -323 87t-220 248.5t-79 371.5zM337 1846h315l198 -310h-237zM390 695q0 -223 82 -346t236 -123q151 0 232 118.5t82 345.5v71 q0 229 -82 348t-234 119q-151 0 -233 -117.5t-83 -344.5v-71z" /> +<glyph unicode="Ó" horiz-adv-x="1414" d="M86 687v72q0 215 77.5 378.5t219 251t323.5 87.5t323.5 -87.5t219 -251t77.5 -377.5v-65q0 -215 -76 -377t-217.5 -250t-324.5 -88q-181 0 -323 87t-220 248.5t-79 371.5zM390 695q0 -223 82 -346t236 -123q151 0 232 118.5t82 345.5v71q0 229 -82 348t-234 119 q-151 0 -233 -117.5t-83 -344.5v-71zM567 1536l197 310h315l-277 -310h-235z" /> +<glyph unicode="Ô" horiz-adv-x="1414" d="M86 687v72q0 215 77.5 378.5t219 251t323.5 87.5t323.5 -87.5t219 -251t77.5 -377.5v-65q0 -215 -76 -377t-217.5 -250t-324.5 -88q-181 0 -323 87t-220 248.5t-79 371.5zM326 1554v16l296 276h168l300 -280v-12h-230l-154 145l-154 -145h-226zM390 695q0 -223 82 -346 t236 -123q151 0 232 118.5t82 345.5v71q0 229 -82 348t-234 119q-151 0 -233 -117.5t-83 -344.5v-71z" /> +<glyph unicode="Õ" horiz-adv-x="1414" d="M86 687v72q0 215 77.5 378.5t219 251t323.5 87.5t323.5 -87.5t219 -251t77.5 -377.5v-65q0 -215 -76 -377t-217.5 -250t-324.5 -88q-181 0 -323 87t-220 248.5t-79 371.5zM329 1566q0 111 65.5 189t160.5 78q30 0 56.5 -7.5t86.5 -36.5t83 -35t48 -6q35 0 60.5 24.5 t25.5 70.5l167 -11q0 -113 -66 -189.5t-161 -76.5q-38 0 -67.5 8.5t-81.5 36.5t-75 34.5t-50 6.5q-35 0 -59.5 -25t-24.5 -71zM390 695q0 -223 82 -346t236 -123q151 0 232 118.5t82 345.5v71q0 229 -82 348t-234 119q-151 0 -233 -117.5t-83 -344.5v-71z" /> +<glyph unicode="Ö" horiz-adv-x="1414" d="M86 687v72q0 215 77.5 378.5t219 251t323.5 87.5t323.5 -87.5t219 -251t77.5 -377.5v-65q0 -215 -76 -377t-217.5 -250t-324.5 -88q-181 0 -323 87t-220 248.5t-79 371.5zM323 1675q0 54 38.5 90.5t99.5 36.5q62 0 100 -37.5t38 -89.5t-38 -89t-100 -37q-59 0 -98.5 35.5 t-39.5 90.5zM390 695q0 -223 82 -346t236 -123q151 0 232 118.5t82 345.5v71q0 229 -82 348t-234 119q-151 0 -233 -117.5t-83 -344.5v-71zM810 1675q0 53 39.5 90t98.5 37q58 0 98.5 -36.5t40.5 -90.5q0 -52 -38.5 -89.5t-100.5 -37.5t-100 37.5t-38 89.5z" /> +<glyph unicode="×" horiz-adv-x="1088" d="M65 373l307 313l-307 313l170 168l304 -311l305 311l170 -168l-307 -313l307 -313l-170 -168l-305 310l-304 -310z" /> +<glyph unicode="Ø" horiz-adv-x="1411" d="M93 702v57q0 215 77.5 378.5t219 251t323.5 87.5q175 0 314 -82l74 124h187l-134 -227q179 -198 179 -537v-59q0 -215 -76 -377t-217.5 -250t-324.5 -88q-164 0 -295 70l-85 -145h-188l143 242q-197 195 -197 555zM397 695q0 -172 49 -285l447 757q-73 61 -180 61 q-151 0 -233 -117.5t-83 -344.5v-71zM552 273q70 -47 163 -47q151 0 232.5 118.5t82.5 345.5v71q0 151 -38 256z" /> +<glyph unicode="Ù" horiz-adv-x="1348" d="M116 486v970h300v-961q0 -143 68.5 -208.5t189.5 -65.5q253 0 257 266v969h301v-959q0 -239 -149.5 -378t-408.5 -139q-255 0 -405 135t-153 371zM301 1846h315l198 -310h-237z" /> +<glyph unicode="Ú" horiz-adv-x="1348" d="M116 486v970h300v-961q0 -143 68.5 -208.5t189.5 -65.5q253 0 257 266v969h301v-959q0 -239 -149.5 -378t-408.5 -139q-255 0 -405 135t-153 371zM531 1536l197 310h315l-277 -310h-235z" /> +<glyph unicode="Û" horiz-adv-x="1348" d="M116 486v970h300v-961q0 -143 68.5 -208.5t189.5 -65.5q253 0 257 266v969h301v-959q0 -239 -149.5 -378t-408.5 -139q-255 0 -405 135t-153 371zM290 1554v16l296 276h168l300 -280v-12h-230l-154 145l-154 -145h-226z" /> +<glyph unicode="Ü" horiz-adv-x="1348" d="M116 486v970h300v-961q0 -143 68.5 -208.5t189.5 -65.5q253 0 257 266v969h301v-959q0 -239 -149.5 -378t-408.5 -139q-255 0 -405 135t-153 371zM287 1675q0 54 38.5 90.5t99.5 36.5q62 0 100 -37.5t38 -89.5t-38 -89t-100 -37q-59 0 -98.5 35.5t-39.5 90.5zM774 1675 q0 53 39.5 90t98.5 37q58 0 98.5 -36.5t40.5 -90.5q0 -52 -38.5 -89.5t-100.5 -37.5t-100 37.5t-38 89.5z" /> +<glyph unicode="Ý" horiz-adv-x="1266" d="M2 1456h329l301 -656l303 656h328l-478 -928v-528h-305v528zM496 1536l197 310h315l-277 -310h-235z" /> +<glyph unicode="Þ" horiz-adv-x="1246" d="M133 0v1456h289v-267h230q162 -1 281.5 -56.5t183.5 -158t64 -236.5q0 -202 -138.5 -324t-378.5 -127h-242v-287h-289zM422 520h223q117 0 182 59t65 157t-63.5 158t-175.5 62h-231v-436z" /> +<glyph unicode="ß" horiz-adv-x="1292" d="M135 0v1101q0 220 124 339t350 119q191 0 306.5 -99.5t115.5 -270.5q0 -108 -53.5 -195t-53.5 -164q0 -37 30.5 -76.5t118.5 -117.5q151 -134 151 -282q0 -177 -115 -275.5t-330 -98.5q-81 0 -160 16t-119 40l54 229q98 -52 219 -52q79 0 121 36.5t42 99.5 q0 46 -34.5 89.5t-116.5 109.5q-150 120 -150 270q0 96 55 186.5t55 169.5q0 70 -44.5 111.5t-112.5 41.5q-159 0 -164 -213v-1114h-289z" /> +<glyph unicode="à" horiz-adv-x="1098" d="M68 304q0 172 127.5 264t368.5 93h133v62q0 75 -38.5 120t-121.5 45q-73 0 -114.5 -35t-41.5 -96h-289q0 94 58 174t164 125.5t238 45.5q200 0 317.5 -100.5t117.5 -282.5v-469q1 -154 43 -233v-17h-292q-20 39 -29 97q-105 -117 -273 -117q-159 0 -263.5 92t-104.5 232z M182 1536h315l198 -310h-237zM357 325q0 -54 38 -89t104 -35q64 0 118 28.5t80 76.5v186h-108q-217 0 -231 -150z" /> +<glyph unicode="á" horiz-adv-x="1098" d="M68 304q0 172 127.5 264t368.5 93h133v62q0 75 -38.5 120t-121.5 45q-73 0 -114.5 -35t-41.5 -96h-289q0 94 58 174t164 125.5t238 45.5q200 0 317.5 -100.5t117.5 -282.5v-469q1 -154 43 -233v-17h-292q-20 39 -29 97q-105 -117 -273 -117q-159 0 -263.5 92t-104.5 232z M357 325q0 -54 38 -89t104 -35q64 0 118 28.5t80 76.5v186h-108q-217 0 -231 -150zM412 1226l197 310h315l-277 -310h-235z" /> +<glyph unicode="â" horiz-adv-x="1098" d="M68 304q0 172 127.5 264t368.5 93h133v62q0 75 -38.5 120t-121.5 45q-73 0 -114.5 -35t-41.5 -96h-289q0 94 58 174t164 125.5t238 45.5q200 0 317.5 -100.5t117.5 -282.5v-469q1 -154 43 -233v-17h-292q-20 39 -29 97q-105 -117 -273 -117q-159 0 -263.5 92t-104.5 232z M171 1244v16l296 276h168l300 -280v-12h-230l-154 145l-154 -145h-226zM357 325q0 -54 38 -89t104 -35q64 0 118 28.5t80 76.5v186h-108q-217 0 -231 -150z" /> +<glyph unicode="ã" horiz-adv-x="1098" d="M68 304q0 172 127.5 264t368.5 93h133v62q0 75 -38.5 120t-121.5 45q-73 0 -114.5 -35t-41.5 -96h-289q0 94 58 174t164 125.5t238 45.5q200 0 317.5 -100.5t117.5 -282.5v-469q1 -154 43 -233v-17h-292q-20 39 -29 97q-105 -117 -273 -117q-159 0 -263.5 92t-104.5 232z M174 1257q0 111 65.5 189t160.5 78q30 0 56.5 -7.5t86.5 -36.5t83 -35t48 -6q35 0 60.5 24.5t25.5 70.5l167 -11q0 -113 -66 -189.5t-161 -76.5q-38 0 -67.5 8.5t-81.5 36.5t-75 34.5t-50 6.5q-35 0 -59.5 -25t-24.5 -71zM357 325q0 -54 38 -89t104 -35q64 0 118 28.5 t80 76.5v186h-108q-217 0 -231 -150z" /> +<glyph unicode="ä" horiz-adv-x="1098" d="M68 304q0 172 127.5 264t368.5 93h133v62q0 75 -38.5 120t-121.5 45q-73 0 -114.5 -35t-41.5 -96h-289q0 94 58 174t164 125.5t238 45.5q200 0 317.5 -100.5t117.5 -282.5v-469q1 -154 43 -233v-17h-292q-20 39 -29 97q-105 -117 -273 -117q-159 0 -263.5 92t-104.5 232z M168 1365q0 54 38.5 90.5t99.5 36.5q62 0 100 -37.5t38 -89.5t-38 -89t-100 -37q-59 0 -98.5 35.5t-39.5 90.5zM357 325q0 -54 38 -89t104 -35q64 0 118 28.5t80 76.5v186h-108q-217 0 -231 -150zM655 1365q0 53 39.5 90t98.5 37q58 0 98.5 -36.5t40.5 -90.5 q0 -52 -38.5 -89.5t-100.5 -37.5t-100 37.5t-38 89.5z" /> +<glyph unicode="å" horiz-adv-x="1098" d="M68 304q0 172 127.5 264t368.5 93h133v62q0 75 -38.5 120t-121.5 45q-73 0 -114.5 -35t-41.5 -96h-289q0 94 58 174t164 125.5t238 45.5q200 0 317.5 -100.5t117.5 -282.5v-469q1 -154 43 -233v-17h-292q-20 39 -29 97q-105 -117 -273 -117q-159 0 -263.5 92t-104.5 232z M329 1420q0 86 65 145.5t158 59.5q92 0 157.5 -58.5t65.5 -146.5q0 -85 -64 -143t-159 -58q-97 0 -160 59t-63 142zM357 325q0 -54 38 -89t104 -35q64 0 118 28.5t80 76.5v186h-108q-217 0 -231 -150zM444 1420q0 -44 29 -75.5t79 -31.5t79 31.5t29 75.5q0 46 -29.5 77.5 t-78.5 31.5t-78.5 -31.5t-29.5 -77.5z" /> +<glyph unicode="æ" horiz-adv-x="1729" d="M66 319q0 157 124 243t367 87h168v57q0 76 -40.5 119t-117.5 43q-82 0 -129.5 -35.5t-47.5 -87.5l-289 19q0 149 130.5 243.5t338.5 94.5q211 0 327 -110q126 112 326 110q212 0 333 -131.5t121 -363.5v-157h-668q11 -116 80.5 -177t186.5 -61q77 0 142.5 16t152.5 61 l77 -189q-73 -56 -180.5 -88t-221.5 -32q-247 0 -386 147q-64 -69 -166.5 -108t-227.5 -39q-186 0 -293 89t-107 250zM355 315q0 -56 40.5 -89.5t125.5 -33.5q49 0 107 22.5t97 57.5v189h-164q-95 -1 -150.5 -43t-55.5 -103zM1011 644h382v28q0 94 -43.5 145t-126.5 51 q-90 0 -144.5 -57.5t-67.5 -166.5z" /> +<glyph unicode="ç" horiz-adv-x="1068" d="M66 535v19q0 250 133 399t365 149q203 0 325.5 -115.5t124.5 -307.5h-271q-2 84 -52 136.5t-132 52.5q-101 0 -152.5 -73.5t-51.5 -238.5v-30q0 -167 51 -240t155 -73q80 0 130 44t52 117h271q-1 -110 -60 -201.5t-161.5 -142t-226.5 -50.5q-232 0 -366 147.5t-134 407.5 zM419 -137l31 143h216l-11 -58q150 -27 150 -173q0 -110 -91.5 -174t-257.5 -64l-7 167q112 0 112 81q0 42 -33.5 57.5t-108.5 20.5z" /> +<glyph unicode="è" horiz-adv-x="1107" d="M72 515v28q0 163 63 291.5t178.5 198t263.5 69.5q222 0 349.5 -140t127.5 -397v-118h-689q14 -106 84.5 -170t178.5 -64q167 0 261 121l142 -159q-65 -92 -176 -143.5t-246 -51.5q-238 0 -387.5 146t-149.5 389zM175 1536h315l198 -310h-237zM368 644h402v23 q-2 96 -52 148.5t-142 52.5q-86 0 -139.5 -58t-68.5 -166z" /> +<glyph unicode="é" horiz-adv-x="1107" d="M72 515v28q0 163 63 291.5t178.5 198t263.5 69.5q222 0 349.5 -140t127.5 -397v-118h-689q14 -106 84.5 -170t178.5 -64q167 0 261 121l142 -159q-65 -92 -176 -143.5t-246 -51.5q-238 0 -387.5 146t-149.5 389zM368 644h402v23q-2 96 -52 148.5t-142 52.5 q-86 0 -139.5 -58t-68.5 -166zM405 1226l197 310h315l-277 -310h-235z" /> +<glyph unicode="ê" horiz-adv-x="1107" d="M72 515v28q0 163 63 291.5t178.5 198t263.5 69.5q222 0 349.5 -140t127.5 -397v-118h-689q14 -106 84.5 -170t178.5 -64q167 0 261 121l142 -159q-65 -92 -176 -143.5t-246 -51.5q-238 0 -387.5 146t-149.5 389zM164 1244v16l296 276h168l300 -280v-12h-230l-154 145 l-154 -145h-226zM368 644h402v23q-2 96 -52 148.5t-142 52.5q-86 0 -139.5 -58t-68.5 -166z" /> +<glyph unicode="ë" horiz-adv-x="1107" d="M72 515v28q0 163 63 291.5t178.5 198t263.5 69.5q222 0 349.5 -140t127.5 -397v-118h-689q14 -106 84.5 -170t178.5 -64q167 0 261 121l142 -159q-65 -92 -176 -143.5t-246 -51.5q-238 0 -387.5 146t-149.5 389zM161 1365q0 54 38.5 90.5t99.5 36.5q62 0 100 -37.5 t38 -89.5t-38 -89t-100 -37q-59 0 -98.5 35.5t-39.5 90.5zM368 644h402v23q-2 96 -52 148.5t-142 52.5q-86 0 -139.5 -58t-68.5 -166zM648 1365q0 53 39.5 90t98.5 37q58 0 98.5 -36.5t40.5 -90.5q0 -52 -38.5 -89.5t-100.5 -37.5t-100 37.5t-38 89.5z" /> +<glyph unicode="ì" horiz-adv-x="561" d="M-88 1521h315l198 -310h-237zM134 0v1082h289v-1082h-289z" /> +<glyph unicode="í" horiz-adv-x="561" d="M134 0v1082h289v-1082h-289zM141 1211l197 310h315l-277 -310h-235z" /> +<glyph unicode="î" horiz-adv-x="561" d="M-99 1229v16l296 276h168l300 -280v-12h-230l-154 145l-154 -145h-226zM134 0v1082h289v-1082h-289z" /> +<glyph unicode="ï" horiz-adv-x="561" d="M-102 1350q0 54 38.5 90.5t99.5 36.5q62 0 100 -37.5t38 -89.5t-38 -89t-100 -37q-59 0 -98.5 35.5t-39.5 90.5zM134 0v1082h289v-1082h-289zM385 1350q0 53 39.5 90t98.5 37q58 0 98.5 -36.5t40.5 -90.5q0 -52 -38.5 -89.5t-100.5 -37.5t-100 37.5t-38 89.5z" /> +<glyph unicode="ð" horiz-adv-x="1178" d="M84 468q0 231 123 364.5t329 133.5q136 0 244 -76q-49 152 -166 265l-191 -122l-78 114l152 97q-116 72 -264 111l91 224q238 -48 416 -180l171 109l77 -114l-139 -89q255 -262 256 -654v-74q0 -172 -66.5 -309t-185.5 -212.5t-266 -75.5q-144 0 -259 63.5t-179.5 176 t-64.5 248.5zM373 468q0 -112 60 -183.5t158 -71.5q103 0 164 90.5t61 248.5v111q-68 83 -215 83q-113 0 -170.5 -74.5t-57.5 -203.5z" /> +<glyph unicode="ñ" horiz-adv-x="1147" d="M105 0v1082h272l9 -125q116 145 311 145q172 0 256 -101t86 -302v-699h-289v692q0 92 -40 133.5t-133 41.5q-122 0 -183 -104v-763h-289zM198 1257q0 111 65.5 189t160.5 78q30 0 56.5 -7.5t86.5 -36.5t83 -35t48 -6q35 0 60.5 24.5t25.5 70.5l167 -11q0 -113 -66 -189.5 t-161 -76.5q-38 0 -67.5 8.5t-81.5 36.5t-75 34.5t-50 6.5q-35 0 -59.5 -25t-24.5 -71z" /> +<glyph unicode="ò" horiz-adv-x="1158" d="M66 538v13q0 161 62 287t178.5 195t270.5 69q219 0 357.5 -134t154.5 -364l2 -74q0 -249 -139 -399.5t-373 -150.5t-373.5 150t-139.5 408zM207 1536h315l198 -310h-237zM355 530q0 -154 58 -235.5t166 -81.5q105 0 164 80.5t59 257.5q0 151 -59 234t-166 83 q-106 0 -164 -82.5t-58 -255.5z" /> +<glyph unicode="ó" horiz-adv-x="1158" d="M66 538v13q0 161 62 287t178.5 195t270.5 69q219 0 357.5 -134t154.5 -364l2 -74q0 -249 -139 -399.5t-373 -150.5t-373.5 150t-139.5 408zM355 530q0 -154 58 -235.5t166 -81.5q105 0 164 80.5t59 257.5q0 151 -59 234t-166 83q-106 0 -164 -82.5t-58 -255.5zM437 1226 l197 310h315l-277 -310h-235z" /> +<glyph unicode="ô" horiz-adv-x="1158" d="M66 538v13q0 161 62 287t178.5 195t270.5 69q219 0 357.5 -134t154.5 -364l2 -74q0 -249 -139 -399.5t-373 -150.5t-373.5 150t-139.5 408zM196 1244v16l296 276h168l300 -280v-12h-230l-154 145l-154 -145h-226zM355 530q0 -154 58 -235.5t166 -81.5q105 0 164 80.5 t59 257.5q0 151 -59 234t-166 83q-106 0 -164 -82.5t-58 -255.5z" /> +<glyph unicode="õ" horiz-adv-x="1158" d="M66 538v13q0 161 62 287t178.5 195t270.5 69q219 0 357.5 -134t154.5 -364l2 -74q0 -249 -139 -399.5t-373 -150.5t-373.5 150t-139.5 408zM199 1257q0 111 65.5 189t160.5 78q30 0 56.5 -7.5t86.5 -36.5t83 -35t48 -6q35 0 60.5 24.5t25.5 70.5l167 -11 q0 -113 -66 -189.5t-161 -76.5q-38 0 -67.5 8.5t-81.5 36.5t-75 34.5t-50 6.5q-35 0 -59.5 -25t-24.5 -71zM355 530q0 -154 58 -235.5t166 -81.5q105 0 164 80.5t59 257.5q0 151 -59 234t-166 83q-106 0 -164 -82.5t-58 -255.5z" /> +<glyph unicode="ö" horiz-adv-x="1158" d="M66 538v13q0 161 62 287t178.5 195t270.5 69q219 0 357.5 -134t154.5 -364l2 -74q0 -249 -139 -399.5t-373 -150.5t-373.5 150t-139.5 408zM193 1365q0 54 38.5 90.5t99.5 36.5q62 0 100 -37.5t38 -89.5t-38 -89t-100 -37q-59 0 -98.5 35.5t-39.5 90.5zM355 530 q0 -154 58 -235.5t166 -81.5q105 0 164 80.5t59 257.5q0 151 -59 234t-166 83q-106 0 -164 -82.5t-58 -255.5zM680 1365q0 53 39.5 90t98.5 37q58 0 98.5 -36.5t40.5 -90.5q0 -52 -38.5 -89.5t-100.5 -37.5t-100 37.5t-38 89.5z" /> +<glyph unicode="÷" horiz-adv-x="1168" d="M63 571v230h1028v-230h-1028zM415 277q0 68 45.5 110t117.5 42q71 0 117.5 -41.5t46.5 -110.5q0 -67 -45 -108.5t-119 -41.5q-75 0 -119 42t-44 108zM415 1089q0 68 45.5 110t117.5 42q71 0 117.5 -41.5t46.5 -110.5q0 -67 -45 -108.5t-119 -41.5q-75 0 -119 42t-44 108z " /> +<glyph unicode="ø" horiz-adv-x="1156" d="M66 551q0 161 62 287t178.5 195t270.5 69q101 0 186 -29l70 143h161l-103 -211q200 -149 200 -475q0 -249 -139 -399.5t-373 -150.5q-95 0 -176 26l-72 -148h-161l103 212q-207 146 -207 481zM355 530q0 -130 41 -208l260 532q-36 14 -79 14q-106 0 -164 -82.5 t-58 -255.5zM509 223q30 -10 70 -10q105 0 164 80.5t59 257.5q0 114 -37 196z" /> +<glyph unicode="ù" horiz-adv-x="1146" d="M104 373v709h289v-699q0 -169 154 -169q147 0 202 102v766h290v-1082h-272l-8 110q-107 -130 -296 -130q-174 0 -265.5 100t-93.5 293zM203 1536h315l198 -310h-237z" /> +<glyph unicode="ú" horiz-adv-x="1146" d="M104 373v709h289v-699q0 -169 154 -169q147 0 202 102v766h290v-1082h-272l-8 110q-107 -130 -296 -130q-174 0 -265.5 100t-93.5 293zM433 1226l197 310h315l-277 -310h-235z" /> +<glyph unicode="û" horiz-adv-x="1146" d="M104 373v709h289v-699q0 -169 154 -169q147 0 202 102v766h290v-1082h-272l-8 110q-107 -130 -296 -130q-174 0 -265.5 100t-93.5 293zM192 1244v16l296 276h168l300 -280v-12h-230l-154 145l-154 -145h-226z" /> +<glyph unicode="ü" horiz-adv-x="1146" d="M104 373v709h289v-699q0 -169 154 -169q147 0 202 102v766h290v-1082h-272l-8 110q-107 -130 -296 -130q-174 0 -265.5 100t-93.5 293zM189 1365q0 54 38.5 90.5t99.5 36.5q62 0 100 -37.5t38 -89.5t-38 -89t-100 -37q-59 0 -98.5 35.5t-39.5 90.5zM676 1365 q0 53 39.5 90t98.5 37q58 0 98.5 -36.5t40.5 -90.5q0 -52 -38.5 -89.5t-100.5 -37.5t-100 37.5t-38 89.5z" /> +<glyph unicode="ý" horiz-adv-x="1028" d="M3 1082h311l201 -673l200 673h310l-435 -1250l-24 -57q-97 -212 -320 -212q-63 0 -128 19v219l44 -1q82 0 122.5 25t63.5 83l34 89zM381 1226l197 310h315l-277 -310h-235z" /> +<glyph unicode="þ" horiz-adv-x="1162" d="M113 -416v1952h290v-547q100 113 262 113q198 0 310 -147t112 -410v-14q0 -250 -113.5 -400.5t-306.5 -150.5q-164 0 -264 113v-509h-290zM403 318q54 -105 188 -105q207 0 207 339q0 151 -53.5 233t-155.5 82q-132 0 -186 -102v-447z" /> +<glyph unicode="ÿ" horiz-adv-x="1028" d="M3 1082h311l201 -673l200 673h310l-435 -1250l-24 -57q-97 -212 -320 -212q-63 0 -128 19v219l44 -1q82 0 122.5 25t63.5 83l34 89zM137 1365q0 54 38.5 90.5t99.5 36.5q62 0 100 -37.5t38 -89.5t-38 -89t-100 -37q-59 0 -98.5 35.5t-39.5 90.5zM624 1365q0 53 39.5 90 t98.5 37q58 0 98.5 -36.5t40.5 -90.5q0 -52 -38.5 -89.5t-100.5 -37.5t-100 37.5t-38 89.5z" /> +<glyph unicode="Œ" horiz-adv-x="1983" d="M96 563v317q0 173 75.5 309.5t214 211.5t314.5 75q123 0 290 -20h884v-243h-673v-347h575v-235h-575v-390h675v-241h-886q-167 -20 -288 -20q-174 0 -312 73.5t-214.5 207t-79.5 302.5zM385 576q0 -176 83.5 -270t233.5 -94q94 0 198 13v1004q-112 14 -200 14 q-150 0 -232 -92.5t-83 -265.5v-309z" /> +<glyph unicode="œ" horiz-adv-x="1847" d="M83 538v13q0 161 61 286.5t177 195t270 69.5q231 0 371 -149q134 151 349 149q214 0 337 -129t123 -365v-158h-654q16 -113 81.5 -175.5t168.5 -62.5q85 0 152 16.5t149 61.5l79 -187q-73 -58 -182 -90.5t-228 -32.5q-233 0 -373 149q-138 -149 -371 -149t-371.5 149.5 t-138.5 408.5zM372 530q0 -155 56.5 -236.5t164.5 -81.5q106 0 163 80.5t57 258.5q0 153 -58 235t-164 82q-105 0 -162 -82t-57 -256zM1120 647h367v26q0 97 -46.5 146t-129.5 49q-77 0 -126 -57t-65 -164z" /> +<glyph unicode="Ÿ" horiz-adv-x="1266" d="M2 1456h329l301 -656l303 656h328l-478 -928v-528h-305v528zM252 1675q0 54 38.5 90.5t99.5 36.5q62 0 100 -37.5t38 -89.5t-38 -89t-100 -37q-59 0 -98.5 35.5t-39.5 90.5zM739 1675q0 53 39.5 90t98.5 37q58 0 98.5 -36.5t40.5 -90.5q0 -52 -38.5 -89.5t-100.5 -37.5 t-100 37.5t-38 89.5z" /> +<glyph unicode="ˆ" horiz-adv-x="1015" d="M123 1244v16l296 276h168l300 -280v-12h-230l-154 145l-154 -145h-226z" /> +<glyph unicode="˜" horiz-adv-x="985" d="M117 1258q0 111 65.5 189t160.5 78q30 0 56.5 -7.5t86.5 -36.5t83 -35t48 -6q35 0 60.5 24.5t25.5 70.5l167 -11q0 -113 -66 -189.5t-161 -76.5q-38 0 -67.5 8.5t-81.5 36.5t-75 34.5t-50 6.5q-35 0 -59.5 -25t-24.5 -71z" /> +<glyph unicode=" " horiz-adv-x="967" /> +<glyph unicode=" " horiz-adv-x="1935" /> +<glyph unicode=" " horiz-adv-x="967" /> +<glyph unicode=" " horiz-adv-x="1935" /> +<glyph unicode=" " horiz-adv-x="645" /> +<glyph unicode=" " horiz-adv-x="483" /> +<glyph unicode=" " horiz-adv-x="322" /> +<glyph unicode=" " horiz-adv-x="322" /> +<glyph unicode=" " horiz-adv-x="241" /> +<glyph unicode=" " horiz-adv-x="387" /> +<glyph unicode=" " horiz-adv-x="107" /> +<glyph unicode="‐" horiz-adv-x="794" d="M110 507v233h563v-233h-563z" /> +<glyph unicode="‑" horiz-adv-x="794" d="M110 507v233h563v-233h-563z" /> +<glyph unicode="‒" horiz-adv-x="794" d="M110 507v233h563v-233h-563z" /> +<glyph unicode="–" horiz-adv-x="1294" d="M152 596v236h1036v-236h-1036z" /> +<glyph unicode="—" horiz-adv-x="1563" d="M109 596v236h1381v-236h-1381z" /> +<glyph unicode="‘" horiz-adv-x="479" d="M104 1048v150q0 94 52.5 200.5t129.5 171.5l136 -79q-86 -136 -89 -276v-167h-229z" /> +<glyph unicode="’" horiz-adv-x="470" d="M58 1088q86 135 89 279v169h230v-155q0 -90 -50 -195t-133 -177z" /> +<glyph unicode="‚" horiz-adv-x="508" d="M66 -226q78 126 81 274v181h238l-1 -166q-1 -89 -50.5 -192t-131.5 -176z" /> +<glyph unicode="“" horiz-adv-x="831" d="M112 1048v150q0 94 52.5 200.5t129.5 171.5l136 -79q-86 -136 -89 -276v-167h-229zM455 1048v150q0 94 52.5 200.5t129.5 171.5l136 -79q-86 -136 -89 -276v-167h-229z" /> +<glyph unicode="”" horiz-adv-x="837" d="M72 1088q86 135 89 279v169h230v-155q0 -90 -50 -195t-133 -177zM419 1088q86 135 89 279v169h230v-155q0 -90 -50 -195t-133 -177z" /> +<glyph unicode="„" horiz-adv-x="825" d="M66 -246q78 134 81 293v216h238l-1 -199q-1 -97 -48 -206.5t-127 -182.5zM402 -246q86 148 89 294v215h238l-1 -203q-2 -96 -52.5 -205t-130.5 -180z" /> +<glyph unicode="•" horiz-adv-x="736" d="M135 731v35q0 104 66 167t170 63q108 0 172.5 -62t66.5 -163v-43q0 -103 -65.5 -165.5t-171.5 -62.5q-105 0 -171.5 62t-66.5 169z" /> +<glyph unicode="…" horiz-adv-x="1515" d="M133 142q0 69 46.5 112t116.5 43q71 0 117.5 -43t46.5 -112q0 -68 -46 -110.5t-118 -42.5q-71 0 -117 42.5t-46 110.5zM606 142q0 69 46.5 112t116.5 43q71 0 117.5 -43t46.5 -112q0 -68 -46 -110.5t-118 -42.5q-71 0 -117 42.5t-46 110.5zM1070 142q0 69 46.5 112 t116.5 43q71 0 117.5 -43t46.5 -112q0 -68 -46 -110.5t-118 -42.5q-71 0 -117 42.5t-46 110.5z" /> +<glyph unicode=" " horiz-adv-x="387" /> +<glyph unicode="‹" horiz-adv-x="638" d="M108 515v19l280 390h186l-240 -400l240 -399h-186z" /> +<glyph unicode="›" horiz-adv-x="618" d="M80 124l240 399l-240 400h187l280 -390v-19l-280 -390h-187z" /> +<glyph unicode=" " horiz-adv-x="483" /> +<glyph unicode="€" d="M89 516v152h169v124h-169v152h171q17 252 175.5 391.5t420.5 139.5q105 0 236 -31l-36 -243q-94 32 -185 32q-283 0 -310 -289h333v-152h-335v-124h335v-152h-335q5 -147 78.5 -221t228.5 -74q105 0 190 31l36 -242q-124 -29 -256 -29q-263 0 -416.5 141.5t-161.5 393.5 h-169z" /> +<glyph unicode="™" horiz-adv-x="1293" d="M116 1348v108h407v-108h-129v-431h-142v431h-136zM594 914v542h158l117 -368l126 368h149v-542h-128v352l-111 -352h-72l-111 353v-353h-128z" /> +<glyph unicode="◼" horiz-adv-x="1080" d="M0 0v1080h1080v-1080h-1080z" /> +<glyph unicode="ffi" horiz-adv-x="1901" d="M29 870v212h161v92q0 182 104.5 282.5t292.5 100.5q60 0 147 -20l-3 -224q-36 9 -88 9q-163 0 -163 -153v-87h356v50q2 204 125.5 314.5t348.5 110.5q134 0 329 -59l-42 -239q-98 29 -152.5 37.5t-116.5 8.5q-202 0 -202 -179v-44h213v-212h-213v-870h-290v870h-356v-870 h-290v870h-161zM1483 0v1082h290v-1082h-290z" /> +<glyph unicode="ffl" horiz-adv-x="1901" d="M29 870v212h161v92q0 182 104.5 282.5t292.5 100.5q60 0 147 -20l-3 -224q-36 9 -88 9q-163 0 -163 -153v-87h356v81q1 191 118.5 292.5t328.5 101.5q144 0 490 -32v-1525h-290v1312q-86 10 -161 10q-196 0 -196 -167v-73h215v-212h-215v-870h-290v870h-356v-870h-290 v870h-161z" /> +<hkern u1=" " u2="T" k="60" /> +<hkern u1=""" u2="w" k="-11" /> +<hkern u1="'" u2="w" k="-11" /> +<hkern u1="(" u2="Ÿ" k="-22" /> +<hkern u1="(" u2="Ý" k="-22" /> +<hkern u1="(" u2="Y" k="-22" /> +<hkern u1="(" u2="W" k="-38" /> +<hkern u1="(" u2="V" k="-20" /> +<hkern u1="/" u2="/" k="248" /> +<hkern u1="A" u2="w" k="33" /> +<hkern u1="A" u2="t" k="17" /> +<hkern u1="A" u2="?" k="81" /> +<hkern u1="C" u2="}" k="17" /> +<hkern u1="C" u2="]" k="12" /> +<hkern u1="C" u2=")" k="26" /> +<hkern u1="D" u2="Æ" k="33" /> +<hkern u1="E" u2="w" k="22" /> +<hkern u1="E" u2="f" k="18" /> +<hkern u1="F" u2="…" k="274" /> +<hkern u1="F" u2="„" k="274" /> +<hkern u1="F" u2="‚" k="274" /> +<hkern u1="F" u2="œ" k="21" /> +<hkern u1="F" u2="ÿ" k="24" /> +<hkern u1="F" u2="ý" k="24" /> +<hkern u1="F" u2="ü" k="22" /> +<hkern u1="F" u2="û" k="22" /> +<hkern u1="F" u2="ú" k="22" /> +<hkern u1="F" u2="ù" k="22" /> +<hkern u1="F" u2="ö" k="21" /> +<hkern u1="F" u2="õ" k="21" /> +<hkern u1="F" u2="ô" k="21" /> +<hkern u1="F" u2="ó" k="21" /> +<hkern u1="F" u2="ò" k="21" /> +<hkern u1="F" u2="ë" k="21" /> +<hkern u1="F" u2="ê" k="21" /> +<hkern u1="F" u2="é" k="21" /> +<hkern u1="F" u2="è" k="21" /> +<hkern u1="F" u2="ç" k="21" /> +<hkern u1="F" u2="å" k="34" /> +<hkern u1="F" u2="ä" k="34" /> +<hkern u1="F" u2="ã" k="34" /> +<hkern u1="F" u2="â" k="34" /> +<hkern u1="F" u2="á" k="34" /> +<hkern u1="F" u2="à" k="34" /> +<hkern u1="F" u2="Å" k="192" /> +<hkern u1="F" u2="Ä" k="192" /> +<hkern u1="F" u2="Ã" k="192" /> +<hkern u1="F" u2="Â" k="192" /> +<hkern u1="F" u2="Á" k="192" /> +<hkern u1="F" u2="À" k="192" /> +<hkern u1="F" u2="y" k="24" /> +<hkern u1="F" u2="v" k="24" /> +<hkern u1="F" u2="u" k="22" /> +<hkern u1="F" u2="r" k="26" /> +<hkern u1="F" u2="q" k="21" /> +<hkern u1="F" u2="o" k="21" /> +<hkern u1="F" u2="g" k="21" /> +<hkern u1="F" u2="e" k="21" /> +<hkern u1="F" u2="d" k="21" /> +<hkern u1="F" u2="c" k="21" /> +<hkern u1="F" u2="a" k="34" /> +<hkern u1="F" u2="T" k="-20" /> +<hkern u1="F" u2="J" k="208" /> +<hkern u1="F" u2="A" k="192" /> +<hkern u1="F" u2="." k="274" /> +<hkern u1="F" u2="," k="274" /> +<hkern u1="K" u2="w" k="63" /> +<hkern u1="L" u2="w" k="52" /> +<hkern u1="O" u2="Æ" k="33" /> +<hkern u1="P" u2="Æ" k="297" /> +<hkern u1="P" u2="t" k="-14" /> +<hkern u1="Q" u2="Ÿ" k="35" /> +<hkern u1="Q" u2="Ý" k="35" /> +<hkern u1="Q" u2="Y" k="35" /> +<hkern u1="Q" u2="W" k="20" /> +<hkern u1="Q" u2="V" k="28" /> +<hkern u1="Q" u2="T" k="33" /> +<hkern u1="R" u2="Ÿ" k="48" /> +<hkern u1="R" u2="Ý" k="48" /> +<hkern u1="R" u2="Y" k="48" /> +<hkern u1="R" u2="V" k="19" /> +<hkern u1="R" u2="T" k="50" /> +<hkern u1="T" u2="ø" k="95" /> +<hkern u1="T" u2="æ" k="84" /> +<hkern u1="T" u2="Æ" k="189" /> +<hkern u1="T" u2="»" k="146" /> +<hkern u1="T" u2="«" k="148" /> +<hkern u1="T" u2="w" k="47" /> +<hkern u1="T" u2="r" k="65" /> +<hkern u1="T" u2=" " k="60" /> +<hkern u1="V" u2="}" k="-19" /> +<hkern u1="V" u2="r" k="30" /> +<hkern u1="V" u2="]" k="-17" /> +<hkern u1="V" u2=")" k="-20" /> +<hkern u1="W" u2="}" k="-14" /> +<hkern u1="W" u2="r" k="21" /> +<hkern u1="W" u2="]" k="-12" /> +<hkern u1="W" u2=")" k="-15" /> +<hkern u1="Y" u2="•" k="45" /> +<hkern u1="Y" u2="ø" k="64" /> +<hkern u1="Y" u2="æ" k="63" /> +<hkern u1="Y" u2="Æ" k="96" /> +<hkern u1="Y" u2="»" k="51" /> +<hkern u1="Y" u2="«" k="82" /> +<hkern u1="Y" u2="}" k="-19" /> +<hkern u1="Y" u2="t" k="22" /> +<hkern u1="Y" u2="r" k="40" /> +<hkern u1="Y" u2="f" k="22" /> +<hkern u1="Y" u2="]" k="-18" /> +<hkern u1="Y" u2="*" k="49" /> +<hkern u1="Y" u2=")" k="-20" /> +<hkern u1="Y" u2="&" k="30" /> +<hkern u1="Z" u2="w" k="27" /> +<hkern u1="[" u2="Ü" k="18" /> +<hkern u1="[" u2="Û" k="18" /> +<hkern u1="[" u2="Ú" k="18" /> +<hkern u1="[" u2="Ù" k="18" /> +<hkern u1="[" u2="U" k="18" /> +<hkern u1="[" u2="J" k="18" /> +<hkern u1="e" u2="’" k="64" /> +<hkern u1="f" u2="”" k="-16" /> +<hkern u1="f" u2="“" k="-16" /> +<hkern u1="f" u2="’" k="-16" /> +<hkern u1="f" u2="‘" k="-16" /> +<hkern u1="f" u2="œ" k="24" /> +<hkern u1="f" u2="ë" k="24" /> +<hkern u1="f" u2="ê" k="24" /> +<hkern u1="f" u2="é" k="24" /> +<hkern u1="f" u2="è" k="24" /> +<hkern u1="f" u2="ç" k="24" /> +<hkern u1="f" u2="}" k="-19" /> +<hkern u1="f" u2="q" k="24" /> +<hkern u1="f" u2="g" k="24" /> +<hkern u1="f" u2="e" k="24" /> +<hkern u1="f" u2="d" k="24" /> +<hkern u1="f" u2="c" k="24" /> +<hkern u1="f" u2="]" k="-18" /> +<hkern u1="f" u2=")" k="-20" /> +<hkern u1="f" u2="'" k="-16" /> +<hkern u1="f" u2=""" k="-16" /> +<hkern u1="h" u2="’" k="104" /> +<hkern u1="k" u2="œ" k="20" /> +<hkern u1="k" u2="ë" k="20" /> +<hkern u1="k" u2="ê" k="20" /> +<hkern u1="k" u2="é" k="20" /> +<hkern u1="k" u2="è" k="20" /> +<hkern u1="k" u2="ç" k="20" /> +<hkern u1="k" u2="q" k="20" /> +<hkern u1="k" u2="g" k="20" /> +<hkern u1="k" u2="e" k="20" /> +<hkern u1="k" u2="d" k="20" /> +<hkern u1="k" u2="c" k="20" /> +<hkern u1="m" u2="’" k="120" /> +<hkern u1="n" u2="’" k="120" /> +<hkern u1="o" u2="’" k="112" /> +<hkern u1="r" u2="’" k="-16" /> +<hkern u1="r" u2="w" k="-17" /> +<hkern u1="r" u2="t" k="-50" /> +<hkern u1="r" u2="f" k="-20" /> +<hkern u1="t" u2="’" k="-24" /> +<hkern u1="t" u2="ö" k="30" /> +<hkern u1="t" u2="õ" k="30" /> +<hkern u1="t" u2="ô" k="30" /> +<hkern u1="t" u2="ó" k="30" /> +<hkern u1="t" u2="ò" k="30" /> +<hkern u1="t" u2="o" k="30" /> +<hkern u1="v" u2="f" k="-13" /> +<hkern u1="w" u2="…" k="124" /> +<hkern u1="w" u2="„" k="124" /> +<hkern u1="w" u2="‚" k="124" /> +<hkern u1="w" u2="." k="124" /> +<hkern u1="w" u2="," k="124" /> +<hkern u1="y" u2="f" k="-13" /> +<hkern u1="{" u2="Ü" k="20" /> +<hkern u1="{" u2="Û" k="20" /> +<hkern u1="{" u2="Ú" k="20" /> +<hkern u1="{" u2="Ù" k="20" /> +<hkern u1="{" u2="U" k="20" /> +<hkern u1="{" u2="J" k="20" /> +<hkern u1="À" u2="w" k="33" /> +<hkern u1="À" u2="t" k="17" /> +<hkern u1="À" u2="?" k="81" /> +<hkern u1="Á" u2="w" k="33" /> +<hkern u1="Á" u2="t" k="17" /> +<hkern u1="Á" u2="?" k="81" /> +<hkern u1="Â" u2="w" k="33" /> +<hkern u1="Â" u2="t" k="17" /> +<hkern u1="Â" u2="?" k="81" /> +<hkern u1="Ã" u2="w" k="33" /> +<hkern u1="Ã" u2="t" k="17" /> +<hkern u1="Ã" u2="?" k="81" /> +<hkern u1="Ä" u2="w" k="33" /> +<hkern u1="Ä" u2="t" k="17" /> +<hkern u1="Ä" u2="?" k="81" /> +<hkern u1="Å" u2="w" k="33" /> +<hkern u1="Å" u2="t" k="17" /> +<hkern u1="Å" u2="?" k="81" /> +<hkern u1="Ç" u2="}" k="17" /> +<hkern u1="Ç" u2="]" k="12" /> +<hkern u1="Ç" u2=")" k="26" /> +<hkern u1="È" u2="w" k="22" /> +<hkern u1="È" u2="f" k="18" /> +<hkern u1="É" u2="w" k="22" /> +<hkern u1="É" u2="f" k="18" /> +<hkern u1="Ê" u2="w" k="22" /> +<hkern u1="Ê" u2="f" k="18" /> +<hkern u1="Ë" u2="w" k="22" /> +<hkern u1="Ë" u2="f" k="18" /> +<hkern u1="Ð" u2="Æ" k="33" /> +<hkern u1="Ò" u2="Æ" k="33" /> +<hkern u1="Ó" u2="Æ" k="33" /> +<hkern u1="Ô" u2="Æ" k="33" /> +<hkern u1="Õ" u2="Æ" k="33" /> +<hkern u1="Ö" u2="Æ" k="33" /> +<hkern u1="Ý" u2="•" k="45" /> +<hkern u1="Ý" u2="ø" k="64" /> +<hkern u1="Ý" u2="æ" k="63" /> +<hkern u1="Ý" u2="Æ" k="96" /> +<hkern u1="Ý" u2="»" k="51" /> +<hkern u1="Ý" u2="«" k="82" /> +<hkern u1="Ý" u2="}" k="-19" /> +<hkern u1="Ý" u2="t" k="22" /> +<hkern u1="Ý" u2="r" k="40" /> +<hkern u1="Ý" u2="f" k="22" /> +<hkern u1="Ý" u2="]" k="-18" /> +<hkern u1="Ý" u2="*" k="49" /> +<hkern u1="Ý" u2=")" k="-20" /> +<hkern u1="Ý" u2="&" k="30" /> +<hkern u1="è" u2="’" k="64" /> +<hkern u1="é" u2="’" k="64" /> +<hkern u1="ê" u2="’" k="64" /> +<hkern u1="ë" u2="’" k="64" /> +<hkern u1="ñ" u2="’" k="120" /> +<hkern u1="ò" u2="’" k="112" /> +<hkern u1="ó" u2="’" k="112" /> +<hkern u1="ô" u2="’" k="112" /> +<hkern u1="õ" u2="’" k="112" /> +<hkern u1="ö" u2="’" k="112" /> +<hkern u1="ý" u2="f" k="-13" /> +<hkern u1="ÿ" u2="f" k="-13" /> +<hkern u1="Ÿ" u2="•" k="45" /> +<hkern u1="Ÿ" u2="ø" k="64" /> +<hkern u1="Ÿ" u2="æ" k="63" /> +<hkern u1="Ÿ" u2="Æ" k="96" /> +<hkern u1="Ÿ" u2="»" k="51" /> +<hkern u1="Ÿ" u2="«" k="82" /> +<hkern u1="Ÿ" u2="}" k="-19" /> +<hkern u1="Ÿ" u2="t" k="22" /> +<hkern u1="Ÿ" u2="r" k="40" /> +<hkern u1="Ÿ" u2="f" k="22" /> +<hkern u1="Ÿ" u2="]" k="-18" /> +<hkern u1="Ÿ" u2="*" k="49" /> +<hkern u1="Ÿ" u2=")" k="-20" /> +<hkern u1="Ÿ" u2="&" k="30" /> +<hkern u1="‘" u2="w" k="-11" /> +<hkern u1="’" u2="œ" k="104" /> +<hkern u1="’" u2="ö" k="144" /> +<hkern u1="’" u2="õ" k="144" /> +<hkern u1="’" u2="ô" k="144" /> +<hkern u1="’" u2="ó" k="144" /> +<hkern u1="’" u2="ò" k="144" /> +<hkern u1="’" u2="ë" k="104" /> +<hkern u1="’" u2="ê" k="104" /> +<hkern u1="’" u2="é" k="104" /> +<hkern u1="’" u2="è" k="104" /> +<hkern u1="’" u2="ç" k="104" /> +<hkern u1="’" u2="w" k="-11" /> +<hkern u1="’" u2="s" k="232" /> +<hkern u1="’" u2="q" k="104" /> +<hkern u1="’" u2="o" k="144" /> +<hkern u1="’" u2="g" k="104" /> +<hkern u1="’" u2="e" k="104" /> +<hkern u1="’" u2="d" k="104" /> +<hkern u1="’" u2="c" k="104" /> +<hkern u1="“" u2="w" k="-11" /> +<hkern u1="”" u2="w" k="-11" /> +<hkern g1="B" g2="V" k="24" /> +<hkern g1="B" g2="Y,Yacute,Ydieresis" k="55" /> +<hkern g1="B" g2="T" k="27" /> +<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="Y,Yacute,Ydieresis" k="28" /> +<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="T" k="29" /> +<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-18" /> +<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="X" k="-17" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="V" k="22" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="Y,Yacute,Ydieresis" k="43" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="T" k="85" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="21" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="X" k="22" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="Z" k="23" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="122" /> +<hkern g1="C,Ccedilla" g2="T" k="29" /> +<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="19" /> +<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="v,y,yacute,ydieresis" k="26" /> +<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="T" k="-20" /> +<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="17" /> +<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="19" /> +<hkern g1="T" g2="z" k="60" /> +<hkern g1="T" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="208" /> +<hkern g1="T" g2="v,y,yacute,ydieresis" k="82" /> +<hkern g1="T" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="28" /> +<hkern g1="T" g2="V" k="-16" /> +<hkern g1="T" g2="m,n,p,ntilde" k="89" /> +<hkern g1="T" g2="Y,Yacute,Ydieresis" k="-16" /> +<hkern g1="T" g2="T" k="-16" /> +<hkern g1="T" g2="u,ugrave,uacute,ucircumflex,udieresis" k="65" /> +<hkern g1="T" g2="W" k="-15" /> +<hkern g1="T" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="120" /> +<hkern g1="T" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="258" /> +<hkern g1="T" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="89" /> +<hkern g1="T" g2="x" k="77" /> +<hkern g1="T" g2="s" k="76" /> +<hkern g1="T" g2="hyphen,uni00AD,endash,emdash" k="272" /> +<hkern g1="T" g2="S" k="16" /> +<hkern g1="T" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="168" /> +<hkern g1="T" g2="J" k="216" /> +<hkern g1="K" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="27" /> +<hkern g1="K" g2="v,y,yacute,ydieresis" k="40" /> +<hkern g1="K" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="31" /> +<hkern g1="K" g2="u,ugrave,uacute,ucircumflex,udieresis" k="23" /> +<hkern g1="K" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="26" /> +<hkern g1="K" g2="hyphen,uni00AD,endash,emdash" k="164" /> +<hkern g1="L" g2="v,y,yacute,ydieresis" k="123" /> +<hkern g1="L" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="64" /> +<hkern g1="L" g2="V" k="206" /> +<hkern g1="L" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="24" /> +<hkern g1="L" g2="Y,Yacute,Ydieresis" k="279" /> +<hkern g1="L" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="288" /> +<hkern g1="L" g2="T" k="205" /> +<hkern g1="L" g2="u,ugrave,uacute,ucircumflex,udieresis" k="14" /> +<hkern g1="L" g2="W" k="93" /> +<hkern g1="L" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-19" /> +<hkern g1="P" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="13" /> +<hkern g1="P" g2="v,y,yacute,ydieresis" k="-15" /> +<hkern g1="P" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="178" /> +<hkern g1="P" g2="X" k="51" /> +<hkern g1="P" g2="Z" k="36" /> +<hkern g1="P" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="404" /> +<hkern g1="P" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="13" /> +<hkern g1="P" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="11" /> +<hkern g1="P" g2="J" k="184" /> +<hkern g1="J,U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="22" /> +<hkern g1="V" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="46" /> +<hkern g1="V" g2="v,y,yacute,ydieresis" k="11" /> +<hkern g1="V" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="13" /> +<hkern g1="V" g2="u,ugrave,uacute,ucircumflex,udieresis" k="28" /> +<hkern g1="V" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="75" /> +<hkern g1="V" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="215" /> +<hkern g1="V" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="44" /> +<hkern g1="V" g2="hyphen,uni00AD,endash,emdash" k="157" /> +<hkern g1="V" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="46" /> +<hkern g1="X" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="21" /> +<hkern g1="X" g2="v,y,yacute,ydieresis" k="31" /> +<hkern g1="X" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="25" /> +<hkern g1="X" g2="V" k="-14" /> +<hkern g1="X" g2="u,ugrave,uacute,ucircumflex,udieresis" k="21" /> +<hkern g1="X" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="26" /> +<hkern g1="X" g2="hyphen,uni00AD,endash,emdash" k="156" /> +<hkern g1="Y,Yacute,Ydieresis" g2="z" k="30" /> +<hkern g1="Y,Yacute,Ydieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="65" /> +<hkern g1="Y,Yacute,Ydieresis" g2="v,y,yacute,ydieresis" k="20" /> +<hkern g1="Y,Yacute,Ydieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="29" /> +<hkern g1="Y,Yacute,Ydieresis" g2="V" k="-18" /> +<hkern g1="Y,Yacute,Ydieresis" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="96" /> +<hkern g1="Y,Yacute,Ydieresis" g2="m,n,p,ntilde" k="40" /> +<hkern g1="Y,Yacute,Ydieresis" g2="Y,Yacute,Ydieresis" k="-18" /> +<hkern g1="Y,Yacute,Ydieresis" g2="T" k="-17" /> +<hkern g1="Y,Yacute,Ydieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="39" /> +<hkern g1="Y,Yacute,Ydieresis" g2="W" k="-17" /> +<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="150" /> +<hkern g1="Y,Yacute,Ydieresis" g2="X" k="-13" /> +<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="231" /> +<hkern g1="Y,Yacute,Ydieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="65" /> +<hkern g1="Y,Yacute,Ydieresis" g2="x" k="23" /> +<hkern g1="Y,Yacute,Ydieresis" g2="s" k="58" /> +<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,uni00AD,endash,emdash" k="152" /> +<hkern g1="Y,Yacute,Ydieresis" g2="S" k="16" /> +<hkern g1="Y,Yacute,Ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="63" /> +<hkern g1="Y,Yacute,Ydieresis" g2="J" k="96" /> +<hkern g1="W" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="31" /> +<hkern g1="W" g2="T" k="-14" /> +<hkern g1="W" g2="u,ugrave,uacute,ucircumflex,udieresis" k="19" /> +<hkern g1="W" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="43" /> +<hkern g1="W" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="143" /> +<hkern g1="W" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="31" /> +<hkern g1="W" g2="hyphen,uni00AD,endash,emdash" k="60" /> +<hkern g1="W" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="33" /> +<hkern g1="Z" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="21" /> +<hkern g1="Z" g2="v,y,yacute,ydieresis" k="27" /> +<hkern g1="Z" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="26" /> +<hkern g1="Z" g2="u,ugrave,uacute,ucircumflex,udieresis" k="19" /> +<hkern g1="Z" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-13" /> +<hkern g1="Z" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="21" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="v,y,yacute,ydieresis" k="15" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="17" /> +<hkern g1="c,ccedilla" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="11" /> +<hkern g1="b,p,thorn" g2="z" k="15" /> +<hkern g1="b,p,thorn" g2="v,y,yacute,ydieresis" k="11" /> +<hkern g1="b,p,thorn" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="29" /> +<hkern g1="b,p,thorn" g2="x" k="15" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis" g2="v,y,yacute,ydieresis" k="13" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="14" /> +<hkern g1="h,m,n,ntilde" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="80" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="z" k="16" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="v,y,yacute,ydieresis" k="15" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="88" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="x" k="21" /> +<hkern g1="v,y,yacute,ydieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="15" /> +<hkern g1="v,y,yacute,ydieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-15" /> +<hkern g1="v,y,yacute,ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="167" /> +<hkern g1="v,y,yacute,ydieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="13" /> +<hkern g1="v,y,yacute,ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="15" /> +<hkern g1="r" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="36" /> +<hkern g1="r" g2="v,y,yacute,ydieresis" k="-18" /> +<hkern g1="r" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-16" /> +<hkern g1="r" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="173" /> +<hkern g1="r" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="19" /> +<hkern g1="r" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="30" /> +<hkern g1="x" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="40" /> +<hkern g1="x" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="20" /> +<hkern g1="z" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="16" /> +<hkern g1="z" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="16" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="91" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="m,n,p,ntilde" k="20" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="37" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="120" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="59" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="s" k="92" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="50" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="285" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/roboto-bold-webfont.ttf b/web/static/fonts/roboto-bold-webfont.ttf Binary files differnew file mode 100755 index 000000000..668dfaf16 --- /dev/null +++ b/web/static/fonts/roboto-bold-webfont.ttf diff --git a/web/static/fonts/roboto-bold-webfont.woff b/web/static/fonts/roboto-bold-webfont.woff Binary files differnew file mode 100755 index 000000000..047b94b2d --- /dev/null +++ b/web/static/fonts/roboto-bold-webfont.woff diff --git a/web/static/fonts/roboto-bold-webfont.woff2 b/web/static/fonts/roboto-bold-webfont.woff2 Binary files differnew file mode 100755 index 000000000..fadc240c1 --- /dev/null +++ b/web/static/fonts/roboto-bold-webfont.woff2 diff --git a/web/static/fonts/roboto-bolditalic-webfont.eot b/web/static/fonts/roboto-bolditalic-webfont.eot Binary files differnew file mode 100755 index 000000000..69811f49a --- /dev/null +++ b/web/static/fonts/roboto-bolditalic-webfont.eot diff --git a/web/static/fonts/roboto-bolditalic-webfont.svg b/web/static/fonts/roboto-bolditalic-webfont.svg new file mode 100755 index 000000000..5ce8417ea --- /dev/null +++ b/web/static/fonts/roboto-bolditalic-webfont.svg @@ -0,0 +1,675 @@ +<?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="robotobold_italic" horiz-adv-x="1150" > +<font-face units-per-em="2048" ascent="1536" descent="-512" /> +<missing-glyph horiz-adv-x="505" /> +<glyph unicode="fi" horiz-adv-x="1219" d="M65 870l38 212h146l9 52q37 204 173 315.5t349 109.5q83 -2 162.5 -19.5t158.5 -39.5l-61 -241q-138 48 -255 50q-99 0 -163 -47.5t-83 -133.5l-9 -46h219l-38 -212h-206l-151 -870h-283l151 870h-157zM698 0l188 1082h283l-187 -1082h-284z" /> +<glyph unicode="fl" horiz-adv-x="1227" d="M74 870l37 212l156 1l12 93q26 176 148 278.5t318 105.5h17l173 -7l311 -27l-257 -1526h-283l231 1314q-86 12 -147 12q-93 0 -152.5 -43t-74.5 -122l-13 -79h209l-37 -212h-208l-151 -870h-284l151 870h-156z" /> +<glyph horiz-adv-x="10" /> +<glyph horiz-adv-x="10" /> +<glyph unicode="
" horiz-adv-x="505" /> +<glyph horiz-adv-x="10" /> +<glyph unicode=" " horiz-adv-x="505" /> +<glyph unicode="	" horiz-adv-x="505" /> +<glyph unicode=" " horiz-adv-x="505" /> +<glyph unicode="!" horiz-adv-x="550" d="M41 131q-2 66 42 111.5t112 47.5q64 2 111 -39.5t49 -108.5q2 -66 -42 -112t-113 -48q-70 0 -114.5 44t-44.5 105zM134 447l142 1009h301l-208 -1009h-235z" /> +<glyph unicode=""" horiz-adv-x="647" d="M121 987l87 549h198l-25 -154l-99 -395h-161zM438 987l86 549h197l-24 -154l-99 -395h-160z" /> +<glyph unicode="#" horiz-adv-x="1193" d="M28 410l30 172h247l97 284h-222l31 174h251l144 416h184l-143 -416h180l143 416h186l-143 -416h209l-30 -174h-239l-98 -284h214l-30 -172h-243l-141 -410h-186l142 410h-179l-142 -410h-186l142 410h-218zM490 582h179l98 284h-180z" /> +<glyph unicode="$" d="M65 458l282 -1q-5 -121 39.5 -182t133.5 -63q85 -2 145 47.5t72 130.5q10 70 -23 121t-135.5 97t-169.5 91q-205 138 -190 363q11 172 129 281.5t309 129.5l41 214h157l-42 -220q152 -32 231.5 -152t74.5 -311l-283 1q12 236 -139 239q-79 2 -133 -48.5t-65 -132.5 q-9 -64 22.5 -113t121 -92t150.5 -80q239 -144 223 -386q-11 -174 -128.5 -281t-311.5 -127l-39 -199h-156l39 200q-176 26 -268.5 151.5t-86.5 321.5z" /> +<glyph unicode="%" horiz-adv-x="1477" d="M184 1099l5 67q11 142 103.5 228t232.5 84q134 -4 211.5 -89t69.5 -213l-6 -77q-14 -137 -108 -220t-227 -79q-130 2 -208.5 85t-72.5 214zM247 196l878 1124l137 -83l-876 -1126zM373 1095q-5 -56 18.5 -92t74.5 -38t90.5 34.5t51.5 99.5l10 78q7 59 -17.5 95.5 t-74.5 38.5q-55 2 -94.5 -37t-48.5 -98zM718 279l5 78q12 136 106 219.5t230 81.5q133 -4 211 -88t70 -213l-5 -67q-11 -145 -105.5 -230t-230.5 -81q-128 2 -208.5 85.5t-72.5 214.5zM904 277q-5 -55 21 -92.5t74 -39.5q58 -2 95 34t48 100l10 80q7 59 -18 94.5t-74 37.5 q-54 2 -93.5 -34.5t-51.5 -99.5z" /> +<glyph unicode="&" horiz-adv-x="1314" d="M41 385q10 183 217 325l98 63l-40 90q-52 126 -45 223q8 115 65 205.5t152 139t207 45.5q147 -4 241 -97.5t88 -233.5q-10 -189 -227 -332l-114 -75l188 -282q84 120 101 258h239q-19 -282 -193 -465l168 -249h-302l-55 84q-180 -107 -371 -103q-190 2 -309 114.5 t-108 289.5zM330 399q-11 -83 32 -133.5t118 -52.5q87 -3 209 59l-214 330l-24 -16q-106 -79 -121 -187zM517 1043q7 -53 49 -134l82 50q124 75 133 169q6 50 -22.5 83t-77.5 33q-62 2 -108 -43t-55 -111q-4 -24 -1 -47z" /> +<glyph unicode="'" horiz-adv-x="331" d="M120 985l87 551h207l-25 -163l-88 -388h-181z" /> +<glyph unicode="(" horiz-adv-x="707" d="M105 384q2 95 13 180l4 24q48 357 213.5 638.5t415.5 392.5l48 -161q-342 -261 -433 -839q-31 -196 -33 -352q-5 -411 188 -571l-63 -151q-216 120 -302 415q-57 198 -51 424z" /> +<glyph unicode=")" horiz-adv-x="710" d="M-104 -300q343 265 433 848q29 187 31 345q5 411 -186 572l63 151q118 -64 202.5 -186.5t125 -295.5t38.5 -356q-6 -278 -96 -540.5t-235.5 -440.5t-327.5 -255z" /> +<glyph unicode="*" horiz-adv-x="910" d="M100 1058l85 170l287 -128l43 356h192l-80 -347l307 118l26 -193l-328 -89l161 -272l-161 -104l-126 293l-222 -278l-149 119l257 263z" /> +<glyph unicode="+" horiz-adv-x="1094" d="M46 554l46 261h351l68 391h269l-68 -391h350l-46 -261h-349l-71 -408h-269l71 408h-352z" /> +<glyph unicode="," horiz-adv-x="495" d="M-118 -284l73 117q64 107 82 201l37 212h238l-29 -184q-41 -259 -252 -427z" /> +<glyph unicode="-" horiz-adv-x="780" d="M90 507l40 233h549l-41 -233h-548z" /> +<glyph unicode="." horiz-adv-x="587" d="M44 137q-2 67 43 113t113 48q67 2 114.5 -41.5t47.5 -109.5q2 -66 -44 -112.5t-113 -46.5q-67 -2 -113 40t-48 109z" /> +<glyph unicode="/" horiz-adv-x="752" d="M-145 -125l794 1581h223l-795 -1581h-222z" /> +<glyph unicode="0" d="M87 454q-1 74 8 148l41 273q49 298 193 452t369 149q189 -4 292.5 -127.5t106.5 -344.5q1 -75 -8 -149l-42 -271q-50 -300 -192.5 -454.5t-369.5 -149.5q-189 4 -292 128t-106 346zM361 422q-5 -203 139 -210q203 -13 258 317l53 356q13 87 13 153q0 199 -140 206 q-202 9 -257 -308l-50 -338q-16 -106 -16 -176z" /> +<glyph unicode="1" d="M230 1001l44 247l608 210l37 1l-245 -1459h-282l192 1108z" /> +<glyph unicode="2" d="M1 0l33 210l517 485q159 149 211 242t39 182q-21 124 -143 127q-96 2 -160.5 -67t-78.5 -181l-282 -1q8 136 81 247t194.5 172.5t262.5 60.5q203 -4 316 -114t100 -293q-16 -206 -243 -430l-144 -137l-298 -268l602 -2l-37 -233h-970z" /> +<glyph unicode="3" d="M27 400h280q-2 -81 45.5 -132.5t132.5 -53.5q98 -2 168 55.5t82 150.5q13 100 -35.5 153t-147.5 56l-166 1l36 226l135 -1q103 0 172.5 57t80.5 153q10 81 -31 129.5t-123 50.5t-140.5 -44.5t-71.5 -120.5l-282 -2q9 176 151.5 288.5t346.5 110.5q206 -4 326 -115 t109 -294q-14 -208 -265 -326q98 -47 143.5 -133.5t39.5 -192.5q-7 -132 -81 -232t-198 -153.5t-268 -50.5q-195 2 -318 117t-121 303z" /> +<glyph unicode="4" d="M17 315l20 197l743 944h295l-157 -908h160l-41 -233h-160l-55 -315h-282l55 315h-578zM330 550l306 -2l99 518l-26 -36z" /> +<glyph unicode="5" d="M67 406h277q4 -89 49 -139.5t122 -52.5q100 -3 164.5 73t77.5 204q12 114 -34.5 180t-141.5 68q-106 2 -196 -78l-231 59l196 736h796l-38 -241h-559l-96 -315q89 56 210 56q187 0 289.5 -132.5t86.5 -349.5q-12 -144 -84.5 -259t-190.5 -177t-260 -59 q-123 1 -223.5 56.5t-156.5 153t-57 217.5z" /> +<glyph unicode="6" d="M97 559l11 90q47 376 275.5 599.5t569.5 223.5h38l-22 -239l-55 -1q-343 -18 -495 -378q125 123 293 119q118 -2 199.5 -66t119.5 -175t27 -245q-12 -143 -85.5 -261.5t-192.5 -184t-257 -62.5q-143 4 -245.5 80.5t-149.5 209.5t-31 290zM372 422q2 -94 43 -151t116 -58 q74 -3 135 48t90 137t19 175q-9 78 -50.5 123.5t-108.5 46.5q-73 2 -131 -36t-96 -97l-13 -90q-5 -45 -4 -98z" /> +<glyph unicode="7" d="M113 0l738 1222h-696l37 234h999l-27 -177l-740 -1279h-311z" /> +<glyph unicode="8" d="M62 390q14 242 285 366q-147 117 -137 305q7 124 73 220t177.5 147t243.5 48q189 -4 300 -112.5t100 -286.5q-14 -213 -250 -333q85 -59 127 -146t35 -190q-11 -196 -159 -314t-366 -114q-199 2 -319.5 114t-109.5 296zM348 411q-11 -86 30.5 -141.5t125.5 -57.5 q92 -2 156.5 58t77.5 158q11 86 -31 143t-124 59q-91 2 -156.5 -59t-78.5 -160zM489 1047q-9 -81 24.5 -132.5t104.5 -53.5q78 -2 134 54.5t67 147.5q9 82 -26 130.5t-104 50.5q-79 2 -134 -52.5t-66 -144.5z" /> +<glyph unicode="9" d="M143 954q14 161 102 291t229 192q93 41 204 39q180 -4 287 -126t121 -327q4 -71 -3 -141l-11 -86q-49 -381 -271.5 -596t-570.5 -215h-21l22 242h15q197 -3 324 85.5t193 270.5q-123 -114 -263 -112q-120 1 -204 64t-124.5 175.5t-28.5 243.5zM424 868q7 -80 47.5 -128 t106.5 -49q120 -4 212 123l17 121q5 42 5 95q-2 96 -40 154t-110 60q-72 1 -129.5 -51.5t-87 -143.5t-21.5 -181z" /> +<glyph unicode=":" horiz-adv-x="571" d="M43 137q-2 67 43 113t113 48q67 2 114.5 -41.5t47.5 -109.5q2 -66 -44 -112.5t-113 -46.5q-67 -2 -113 40t-48 109zM184 956q-2 67 43 113t113 48q67 2 114.5 -41.5t47.5 -109.5q2 -66 -44 -112.5t-113 -46.5q-67 -2 -113 40t-48 109z" /> +<glyph unicode=";" horiz-adv-x="531" d="M-97 -284l73 117q64 107 82 201l37 212h238l-29 -184q-41 -259 -252 -427zM167 956q-2 67 43 113t113 48q67 2 114.5 -41.5t47.5 -109.5q2 -66 -44 -112.5t-113 -46.5q-67 -2 -113 40t-48 109z" /> +<glyph unicode="<" horiz-adv-x="1021" d="M36 509l41 236l901 365l-52 -293l-589 -205l519 -201l-46 -267z" /> +<glyph unicode="=" horiz-adv-x="1147" d="M81 313l42 236h869l-42 -236h-869zM156 746l42 236h869l-42 -236h-869z" /> +<glyph unicode=">" horiz-adv-x="1036" d="M33 129l52 292l600 206l-530 203l47 265l783 -365l-41 -235z" /> +<glyph unicode="?" horiz-adv-x="998" d="M132 1068q13 190 146.5 301.5t335.5 107.5q189 -4 295 -108t93 -277q-12 -170 -194 -323l-128 -106q-92 -85 -112 -216l-247 -1q9 130 53.5 219.5t138 165t125.5 110.5q86 95 75 202q-10 97 -113 100q-71 2 -120 -45t-65 -128zM228 134q-2 67 43 113t113 48 q64 2 111 -40.5t49 -109.5q2 -63 -42 -110t-114 -49q-67 0 -112.5 41t-47.5 107z" /> +<glyph unicode="@" horiz-adv-x="1788" d="M54 111q-30 225 36.5 471t215 441t345 295.5t414.5 97.5q293 -5 462.5 -178.5t182.5 -472.5q6 -169 -40 -336t-136 -282q-136 -173 -340 -168q-172 5 -218 143q-126 -144 -268 -141q-120 2 -182.5 97.5t-54.5 251.5q6 155 83 318t194.5 254t259.5 89q73 -2 137.5 -25 t155.5 -83l-134 -582l-7 -53q-11 -105 74 -110q126 -5 204 148t95 377l3 51q5 161 -45 284t-158 187.5t-265 67.5q-164 3 -311.5 -69.5t-263.5 -213.5t-182.5 -323.5t-73.5 -369.5q-9 -211 74 -353q117 -198 397 -201q161 -2 338 68l28 -158q-129 -86 -365 -86 q-201 2 -338.5 76t-216.5 199t-100 289zM690 320q-11 -160 90 -163q54 -3 109 49t80 120l127 478q-31 11 -69 13q-126 5 -210 -108t-121 -331z" /> +<glyph unicode="A" horiz-adv-x="1347" d="M-104 0l778 1456h271l277 -1456h-299l-46 300h-508l-150 -300h-323zM489 543h351l-82 542z" /> +<glyph unicode="B" horiz-adv-x="1278" d="M21 0l253 1456l454 -1q253 -1 380 -103q116 -93 116 -256q0 -15 -1 -31q-14 -221 -255 -323q87 -30 135 -112q42 -72 42 -167q0 -14 -1 -28q-14 -206 -161.5 -320.5t-402.5 -114.5h-559zM356 241l231 -1q108 0 181 53.5t87 144.5q4 24 4 45q-1 57 -29 95q-38 50 -129 55 l-276 1zM461 846l199 -2q111 2 181.5 52t84.5 139q3 19 3 35q0 141 -188 142l-216 1z" /> +<glyph unicode="C" horiz-adv-x="1310" d="M94 508q-1 22 -1 45q1 110 27 261q32 183 115.5 325t198.5 225q157 112 356 112h14q226 -4 358.5 -139.5t145.5 -376.5l-292 1q0 138 -55 202t-171 68h-13q-141 0 -233 -107q-96 -112 -130 -327q-28 -186 -28 -289v-24q5 -132 59 -194.5t151 -65.5h18q120 0 196 64 q80 68 107 196l291 2q-17 -151 -103 -267.5t-224 -178.5q-132 -60 -283 -60h-15q-144 3 -251 66.5t-168.5 184t-69.5 277.5z" /> +<glyph unicode="D" horiz-adv-x="1301" d="M21 0l253 1456l418 -1q147 -3 264.5 -66.5t190.5 -182.5t88 -268q4 -39 3 -78q0 -49 -5 -100l-7 -53q-44 -320 -251.5 -513.5t-503.5 -193.5h-450zM356 241l122 -1q202 0 324.5 148t140.5 447l2 32v14q0 155 -63 239q-66 88 -197 92l-160 1z" /> +<glyph unicode="E" horiz-adv-x="1127" d="M21 0l253 1456h947l-43 -243h-653l-61 -347h560l-42 -235h-558l-68 -390h656l-42 -241h-949z" /> +<glyph unicode="F" horiz-adv-x="1098" d="M21 0l253 1456h922l-43 -243h-628l-66 -376h560l-43 -242h-558l-104 -595h-293z" /> +<glyph unicode="G" horiz-adv-x="1363" d="M106 508q-2 29 -2 59q0 124 32 279q41 195 139.5 341.5t236.5 218.5q133 70 293 70h13q228 -4 357 -128.5t147 -356.5l-282 1q-11 122 -65 180t-161 62h-13q-176 0 -279 -162q-106 -169 -121 -489q-1 -24 -1 -46q0 -138 54 -219q62 -94 190 -96h15q139 0 239 71l49 251 h-266l39 221h556l-88 -581q-78 -99 -228 -152q-143 -51 -320 -51h-20q-149 1 -262 65.5t-178 185.5t-74 276z" /> +<glyph unicode="H" horiz-adv-x="1414" d="M21 0l253 1456h293l-103 -590h566l102 590h293l-252 -1456h-293l108 624h-565l-109 -624h-293z" /> +<glyph unicode="I" horiz-adv-x="589" d="M40 0l252 1456h293l-252 -1456h-293z" /> +<glyph unicode="J" horiz-adv-x="1120" d="M7 431l295 -1q-1 -18 -1 -34q0 -172 146 -175h8q82 0 140 58q61 61 79 169l172 1008h293l-171 -1008q-18 -138 -92 -247t-190 -167q-110 -55 -241 -55h-14q-206 4 -318 122q-106 112 -106 309v21z" /> +<glyph unicode="K" horiz-adv-x="1271" d="M21 0l253 1456h293l-112 -642l149 168l438 474h382l-629 -662l375 -794h-334l-260 581l-192 -178l-70 -403h-293z" /> +<glyph unicode="L" horiz-adv-x="1086" d="M21 0l253 1456h293l-211 -1215h618l-42 -241h-911z" /> +<glyph unicode="M" horiz-adv-x="1750" d="M21 0l253 1456h376l179 -1053l543 1053h390l-253 -1456h-294l72 415l142 648l-558 -1063h-201l-195 1100l-94 -717l-67 -383h-293z" /> +<glyph unicode="N" horiz-adv-x="1413" d="M21 0l253 1456h283l406 -973l169 973h292l-252 -1456h-284l-405 971l-169 -971h-293z" /> +<glyph unicode="O" horiz-adv-x="1382" d="M101 521q-2 32 -2 64q0 136 37 286q46 186 148 327t240 211q132 67 284 67h13q147 -3 257 -69.5t173 -191t72 -282.5q2 -30 2 -61q0 -147 -40 -301q-48 -186 -149 -322q-100 -136 -236 -204q-130 -65 -281 -65h-13q-145 3 -255.5 68.5t-175 189t-74.5 283.5zM395 597 q-1 -26 -1 -51q0 -140 48 -222q57 -96 177 -99h16q146 1 244 123q103 130 135 366l7 54l8 95q1 26 1 51q0 141 -48 219q-58 92 -175 96h-13q-174 0 -278 -162q-108 -168 -121 -470z" /> +<glyph unicode="P" horiz-adv-x="1291" d="M21 0l253 1456l510 -1q236 0 371 -131q120 -116 120 -296q0 -23 -2 -46q-16 -214 -178.5 -342t-414.5 -128l-276 1l-90 -513h-293zM445 756l244 -2q118 0 196 61t93 165q4 25 4 47q0 72 -38 119q-48 62 -143 66l-276 1z" /> +<glyph unicode="Q" horiz-adv-x="1382" d="M98 522q-2 31 -2 63q0 98 20 211q27 152 90 279t154.5 218t208.5 139q110 44 232 44h16q146 -3 256 -69t174 -190t73 -284q2 -29 2 -58q0 -58 -7 -116l-17 -115q-67 -372 -340 -549l202 -198l-200 -157l-255 248q-47 -7 -88 -7h-18q-218 2 -352 148t-149 393zM391 597 q-1 -26 -1 -51q0 -140 48 -222q57 -95 177 -99h16q146 0 244 123q103 129 135 366q13 96 16 149q1 20 1 39q0 156 -51 234q-58 89 -173 93h-13q-174 0 -278 -162q-107 -168 -121 -470z" /> +<glyph unicode="R" horiz-adv-x="1278" d="M21 0l253 1456l482 -1q242 0 372 -114q117 -102 117 -276q0 -20 -1 -41q-21 -300 -320 -417l205 -591v-16h-312l-172 533h-238l-93 -533h-293zM449 776l218 -2q116 2 191.5 62.5t90.5 164.5q3 23 3 44q0 66 -34 108q-45 55 -143 59l-250 1z" /> +<glyph unicode="S" horiz-adv-x="1231" d="M38 459l293 -1q-1 -13 0 -25q0 -212 233 -216q107 0 176 47t82 125q3 16 3 30q0 97 -120 152l-193 77q-320 143 -320 388q0 12 1 25q7 122 80 216q73 93 205 147q127 52 274 52h11q211 -4 341 -126q128 -120 128 -319v-6h-292v18q0 86 -44 136q-48 55 -150 57h-8 q-95 0 -166 -46q-74 -48 -88 -130q-2 -11 -2 -22q0 -94 148 -151l132 -50l76 -35q277 -137 277 -378q0 -16 -1 -32q-9 -129 -82.5 -222.5t-199.5 -143.5q-119 -47 -262 -47h-17q-155 3 -276 65t-184 175q-55 98 -55 223v17z" /> +<glyph unicode="T" horiz-adv-x="1239" d="M144 1213l43 243h1152l-43 -243h-432l-210 -1213h-293l210 1213h-427z" /> +<glyph unicode="U" horiz-adv-x="1318" d="M101 495l163 961h293l-163 -962q-4 -30 -4 -58q0 -24 3 -47q20 -162 193 -168h13q115 0 190 68q79 72 102 206l164 961h294l-164 -960q-34 -241 -200 -381q-161 -136 -398 -136h-14q-154 3 -267 67q-114 64 -168 182q-41 89 -41 197q0 34 4 70z" /> +<glyph unicode="V" horiz-adv-x="1309" d="M145 1456h315l146 -1092l490 1092h336l-719 -1456h-306z" /> +<glyph unicode="W" horiz-adv-x="1747" d="M170 1456h286l29 -1028l392 1028h249l69 -1033l351 1033h299l-541 -1456h-295l-77 970l-381 -970h-295z" /> +<glyph unicode="X" horiz-adv-x="1272" d="M-81 0l547 748l-293 708h320l186 -500l343 500h352l-535 -736l302 -720h-324l-191 508l-351 -508h-356z" /> +<glyph unicode="Y" horiz-adv-x="1238" d="M154 1455l309 1l177 -654l407 654h336l-636 -944l-88 -512h-298l95 545z" /> +<glyph unicode="Z" horiz-adv-x="1214" d="M-34 0l33 191l871 1020l-693 2l43 243h1061l-33 -187l-870 -1026l708 -2l-42 -241h-1078z" /> +<glyph unicode="[" horiz-adv-x="562" d="M-31 -339l318 2033h421l-35 -223h-138l-248 -1587h138l-35 -223h-421z" /> +<glyph unicode="\" horiz-adv-x="848" d="M154 1456h275l316 -1581h-276z" /> +<glyph unicode="]" horiz-adv-x="562" d="M-135 -339l35 223h139l248 1587h-139l35 223h421l-318 -2033h-421z" /> +<glyph unicode="^" horiz-adv-x="878" d="M57 729l417 727h205l164 -727h-211l-89 454l-247 -454h-239z" /> +<glyph unicode="_" horiz-adv-x="897" d="M-143 -226l40 226h885l-39 -226h-886z" /> +<glyph unicode="`" horiz-adv-x="667" d="M204 1534l291 2l143 -310l-211 1z" /> +<glyph unicode="a" horiz-adv-x="1075" d="M19 296q7 177 148.5 271.5t379.5 94.5l132 -2l14 65q6 33 3 63q-5 47 -35.5 73.5t-80.5 27.5h-7q-61 -1 -105 -33q-46 -34 -59 -99l-283 -1q6 156 142 252q133 95 327 94h8q184 -4 288 -110q89 -91 89 -226q0 -22 -2 -45l-83 -518l-5 -64v-13q0 -62 17 -107l-1 -19h-277 q-11 36 -11 83v15q-118 -118 -266 -118h-10q-142 2 -236 92q-88 85 -87 208v16zM306 317q-2 -11 -1 -21q-1 -38 23 -64q30 -32 84 -33h9q117 0 204 106l35 187l-98 1q-156 -4 -225 -95q-25 -33 -31 -81z" /> +<glyph unicode="b" horiz-adv-x="1128" d="M3 0l266 1536h283l-109 -553q110 119 255 119h9q157 -2 246.5 -112.5t95.5 -305.5q0 -12 1 -26q0 -53 -7 -120q-30 -256 -156 -410q-122 -149 -313 -149h-13q-171 4 -260 138l-41 -117h-257zM340 325q38 -108 162 -112h8q201 0 247 302l6 44q7 64 7 106q0 14 -1 26 q-11 174 -144 177h-8q-119 0 -199 -113z" /> +<glyph unicode="c" horiz-adv-x="1046" d="M47 469l3 55l1 11q27 265 178 419q145 149 357 148h16q182 -4 290 -120q106 -113 106 -297v-7h-263q0 87 -38 137t-114 54h-8q-195 0 -237 -295q-12 -86 -12 -151q0 -17 1 -33q10 -175 150 -178h7q74 0 123 42q52 44 68 119l265 1q-7 -114 -71.5 -205t-172.5 -142 q-102 -48 -213 -48h-13q-197 3 -312 136q-111 129 -111 339v15z" /> +<glyph unicode="d" horiz-adv-x="1129" d="M49 399q-1 21 -1 42q0 41 4 80l6 45q24 166 92 292t168 187q95 58 211 58h11q151 -4 244 -121l106 554h283l-266 -1536h-252l16 116q-118 -137 -273 -137h-9q-101 1 -177 53t-117.5 149.5t-45.5 217.5zM330 393q10 -176 142 -179h10q113 0 197 112l77 430 q-39 107 -156 112h-7q-99 0 -165 -80q-68 -82 -93 -267q-6 -55 -6 -98q0 -16 1 -30z" /> +<glyph unicode="e" horiz-adv-x="1084" d="M60 501l3 40q15 158 92 290q77 131 198 203q115 68 252 68h16q209 -4 317 -154q87 -120 86 -292q0 -42 -5 -86l-16 -123h-663v-14q0 -95 51 -154q55 -63 150 -65h10q148 0 260 119l129 -160q-61 -91 -176 -143q-111 -50 -237 -50h-10q-142 1 -251.5 69.5t-163.5 188.5 q-44 98 -44 211q0 26 2 52zM360 643h388l6 26q3 22 3 42q0 17 -2 34q-10 58 -49 90.5t-99 33.5h-6q-75 0 -133 -49q-60 -51 -108 -177z" /> +<glyph unicode="f" horiz-adv-x="722" d="M74 870l37 212l156 1l14 108q26 173 141 271q113 97 286 97h7q61 -2 153 -21l-25 -225q-48 12 -83 12h-4q-72 0 -124 -38q-54 -39 -67 -117l-15 -88h209l-37 -212h-208l-151 -870h-284l151 870h-156z" /> +<glyph unicode="g" horiz-adv-x="1144" d="M-16 -251l140 172q94 -119 236 -123h13q102 0 175 58q78 61 106 173l16 65q-114 -114 -255 -114h-10q-158 2 -251 117.5t-102 300.5q-1 17 -1 35q0 49 6 109q30 251 163 408q131 153 329 153h8q173 -4 258 -125l37 105l259 -1l-177 -1045q-29 -216 -184 -342 q-150 -122 -370 -122h-14q-112 2 -214 48.5t-168 127.5zM334 424q0 -94 39.5 -150.5t114.5 -59.5h9q109 0 195 98l84 458q-43 94 -159 98h-7q-103 0 -176 -87q-75 -90 -94 -239q-6 -64 -6 -106v-12z" /> +<glyph unicode="h" horiz-adv-x="1122" d="M-4 0l266 1536h283l-112 -574q125 140 288 140h5q160 -4 236 -116q60 -89 61 -230q0 -36 -4 -74l-114 -682h-282l115 685q3 24 3 46q0 13 -1 26q-10 108 -126 111h-9q-109 0 -191 -98l-136 -770h-282z" /> +<glyph unicode="i" horiz-adv-x="537" d="M17 0l188 1082h284l-188 -1082h-284zM238 1357v6q0 63 44 105q46 44 111 44h6q60 0 105 -39q47 -41 49 -106v-5q1 -59 -41 -103q-44 -46 -114 -48h-6q-58 0 -104 38q-48 40 -50 108z" /> +<glyph unicode="j" horiz-adv-x="526" d="M-262 -421l23 230q50 -11 87 -13h4q129 0 158 144l196 1142h284l-194 -1141q-23 -181 -130 -282q-106 -99 -271 -99h-7q-68 2 -150 19zM233 1357v6q0 62 42 103q44 44 113 46q69 0 113.5 -41t46.5 -104v-6q0 -63 -42 -105q-44 -43 -113 -45h-6q-59 0 -105 38 q-47 40 -49 108z" /> +<glyph unicode="k" horiz-adv-x="1071" d="M3 0l266 1536h283l-146 -834l55 59l321 321h362l-473 -465l301 -617h-309l-192 431l-131 -114l-55 -317h-282z" /> +<glyph unicode="l" horiz-adv-x="537" d="M17 0l267 1536h283l-266 -1536h-284z" /> +<glyph unicode="m" horiz-adv-x="1730" d="M3 0l187 1082l263 1l-23 -123q128 142 307 142h10q100 -2 166 -46t89 -119q140 165 327 165h9q148 -3 224 -102q65 -85 65 -236q0 -24 -1 -50l-2 -25l-115 -689h-283l115 691q3 30 3 56v13q-7 105 -120 108q-116 0 -199 -124l-3 -23l-126 -721h-282l115 689q3 30 3 56v13 q-7 106 -119 109h-6q-103 0 -187 -101l-135 -766h-282z" /> +<glyph unicode="n" horiz-adv-x="1123" d="M-3 0l188 1082l264 1l-24 -128q127 147 305 147h10q153 -3 226 -112q57 -86 57 -223q0 -38 -4 -79l-114 -688h-282l116 691q3 24 3 46q0 13 -1 25q-13 102 -128 105h-8q-106 0 -191 -103l-135 -764h-282z" /> +<glyph unicode="o" horiz-adv-x="1133" d="M58 524q26 268 182 426q150 152 366 152h16q143 -2 246 -74q104 -70 152 -196q38 -97 38 -212q0 -33 -3 -67q-23 -257 -179 -417q-153 -156 -376 -156h-11q-141 2 -244 72.5t-152 195.5q-38 97 -38 210q0 32 3 66zM337 421q2 -96 45 -151.5t121 -57.5h8q124 0 196 120 q69 116 69 299v25q-4 96 -46.5 153.5t-121.5 59.5h-8q-120 -1 -194 -119q-70 -113 -69 -299v-30z" /> +<glyph unicode="p" horiz-adv-x="1128" d="M-69 -416l259 1498l260 1l-19 -109q114 128 267 128h9q159 -4 247 -115.5t94 -302.5v-26q0 -53 -6 -120q-21 -170 -89 -302t-169 -196q-96 -61 -213 -61h-11q-157 4 -248 117l-99 -512h-282zM339 318q37 -101 159 -105h7q97 0 163 79q68 82 94 267l6 96v10q0 90 -36 144 q-37 57 -109 59h-9q-117 0 -194 -104z" /> +<glyph unicode="q" horiz-adv-x="1132" d="M49 400q-1 21 -1 42q0 41 4 81l6 44q24 168 92.5 294t167.5 185q95 57 210 57h12q168 -4 257 -136l46 116l252 -1l-260 -1498h-284l101 511q-109 -115 -253 -115h-10q-101 1 -177 53t-117.5 150.5t-45.5 216.5zM331 394q10 -178 142 -181h8q114 0 196 105l82 450 q-39 97 -157 101h-7q-101 0 -168 -83q-69 -87 -89 -242q-8 -79 -8 -125q0 -14 1 -25z" /> +<glyph unicode="r" horiz-adv-x="735" d="M3 0l188 1082l265 1l-26 -132q102 153 252 153q42 0 98 -14l-36 -279q-58 10 -95 10h-10q-144 0 -229 -113l-125 -708h-282z" /> +<glyph unicode="s" horiz-adv-x="1031" d="M9 346l266 -2q4 -155 166 -157q78 0 128.5 32t60.5 86q2 9 2 17q0 67 -113 99l-91 23q-314 87 -314 302v12q6 154 136 250q128 95 307 94h7q183 -2 296 -97t115 -253l-280 1q2 139 -138 141q-66 0 -114.5 -33t-59.5 -89q-1 -8 -1 -15q0 -68 122 -98l40 -9 q138 -33 211 -75.5t113 -105.5q37 -59 36 -139v-12q-3 -103 -66.5 -180t-173.5 -119q-103 -39 -217 -39h-16q-180 2 -300 103.5t-122 262.5z" /> +<glyph unicode="t" horiz-adv-x="681" d="M56 870l37 212h153l46 266h283l-47 -266h180l-37 -212h-180l-92 -542q-2 -15 -2 -28q0 -31 10 -50q14 -27 68 -29h6q20 0 80 5l-20 -221q-69 -23 -149 -23h-13q-139 2 -207 87q-58 72 -58 188q0 20 2 42l93 571h-153z" /> +<glyph unicode="u" horiz-adv-x="1122" d="M77 382l117 700h282l-119 -703q-4 -33 -1 -62q10 -100 111 -103h10q125 0 207 101l135 767h284l-188 -1082h-263l21 112q-117 -132 -290 -132h-8q-156 2 -236 112q-65 90 -65 226q0 31 3 64z" /> +<glyph unicode="v" horiz-adv-x="1014" d="M92 1082h286l80 -725l308 725h304l-523 -1082h-270z" /> +<glyph unicode="w" horiz-adv-x="1470" d="M115 1082h264l17 -681l309 681h204l71 -688l257 688h281l-455 -1082h-236l-80 677l-316 -677h-236z" /> +<glyph unicode="x" horiz-adv-x="1021" d="M-82 0l408 566l-209 516h286l121 -321l227 321h317l-392 -544l219 -538h-286l-133 338l-239 -338h-319z" /> +<glyph unicode="y" horiz-adv-x="1007" d="M-55 -419l21 220l39 -2h10q130 0 192 101l62 115l-177 1067h292l78 -670l309 670h314l-633 -1245q-68 -143 -159.5 -210t-211.5 -67q-47 0 -136 21z" /> +<glyph unicode="z" horiz-adv-x="1021" d="M-33 0l33 191l603 655l-475 2l41 234h843l-32 -185l-609 -662l510 -2l-41 -233h-873z" /> +<glyph unicode="{" horiz-adv-x="666" d="M39 513l19 207q185 8 215 222l32 230q59 325 404 429l47 -166q-168 -65 -201 -304l-32 -229q-34 -193 -223 -289q69 -51 101 -128.5t23 -175.5l-31 -236l-4 -57q-7 -162 110 -215l-61 -161q-158 53 -235 173q-77 121 -59 293l28 205q5 42 2 78q-10 113 -135 124z" /> +<glyph unicode="|" horiz-adv-x="512" d="M31 -270l270 1726h172l-270 -1726h-172z" /> +<glyph unicode="}" horiz-adv-x="666" d="M-94 -197q168 65 201 304l32 230q34 193 226 287q-72 49 -104 128t-23 177l31 236l4 57q7 161 -109 215l64 158q161 -54 234.5 -174.5t55.5 -288.5l-28 -204q-5 -43 -2 -78q10 -115 135 -126l-19 -207q-186 -10 -215 -221l-27 -199q-51 -353 -409 -461z" /> +<glyph unicode="~" horiz-adv-x="1298" d="M80 415q12 186 109.5 301t248.5 112q77 -2 138.5 -35.5t133.5 -108t131 -74.5q62 0 104.5 50t55.5 134l202 1q-6 -118 -52 -216.5t-124 -152.5t-179 -52q-77 2 -137.5 35t-117.5 92t-86 75t-64 17q-59 0 -99.5 -47.5t-54.5 -132.5z" /> +<glyph unicode="¡" horiz-adv-x="571" d="M-37 -369l208 1008h235l-143 -1008h-300zM184 943q-2 65 42 111t113 48q64 2 111 -39.5t49 -109.5q2 -69 -44 -114t-111 -45q-63 -2 -110.5 40t-49.5 109z" /> +<glyph unicode="¢" horiz-adv-x="1153" d="M96 523q25 246 150 392.5t326 178.5l47 224h196l-47 -228q133 -32 207.5 -139.5t72.5 -272.5h-264l-1 34q-13 151 -147 157q-101 5 -167.5 -74t-87.5 -243q-12 -110 -9 -161q5 -176 146 -179q78 -2 131 42.5t68 118.5l266 2q-11 -151 -117.5 -254.5t-273.5 -131.5 l-49 -234h-196l50 236q-164 38 -243 182t-58 350z" /> +<glyph unicode="£" horiz-adv-x="1190" d="M-6 0l43 240l75 -2q48 19 75 59.5t41 123.5l21 155h-158l41 236h150l27 221q26 208 162 327t336 115q191 -4 296.5 -116t101.5 -302l-280 1q5 174 -136 177q-70 2 -120.5 -51t-65.5 -144l-27 -228h300l-41 -236h-291l-17 -147q-16 -109 -101 -192l640 4l-43 -241h-1029z " /> +<glyph unicode="¤" horiz-adv-x="1385" d="M-3 132l154 125q-57 185 -37 345q26 215 171 375l-115 157l148 130l109 -143q177 116 354 112q185 -2 321 -116l170 148l123 -159l-169 -139q62 -186 42 -352q-24 -203 -157 -360l111 -151l-149 -131l-101 132q-182 -129 -369 -125q-200 4 -331 126l-153 -132zM295 599 q-15 -110 19 -209.5t110 -158.5t181 -63q114 -4 219 56t175.5 166t88.5 227q15 110 -19 209t-110 157t-180 62q-115 4 -221.5 -56.5t-175.5 -164.5t-87 -225z" /> +<glyph unicode="¥" horiz-adv-x="1226" d="M75 278l31 174h325l21 115h-327l31 175h261l-245 713l310 1l161 -604l373 604h337l-492 -712l225 -2l-33 -175h-308l-21 -115h310l-31 -174h-308l-49 -278h-293l49 278h-327z" /> +<glyph unicode="¦" horiz-adv-x="511" d="M-28 -270l139 795h254l-138 -795h-255zM140 698l132 758h254l-132 -758h-254z" /> +<glyph unicode="§" horiz-adv-x="1258" d="M-24 -34h281q-4 -91 51 -137t160 -46q109 0 175 38t80 106q20 98 -136 155l-97 31q-228 70 -322 167.5t-85 245.5q10 177 205 286q-96 113 -86 275q12 166 143 269t341 118l67 2q218 -4 339.5 -116.5t117.5 -311.5h-280q3 91 -46 141.5t-141 52.5q-103 3 -172.5 -38.5 t-84.5 -113.5q-22 -117 153 -165.5t267.5 -95t143.5 -104.5q85 -96 76 -236q-7 -102 -62.5 -170t-142.5 -114q95 -111 84 -275q-8 -117 -75.5 -203t-191.5 -134t-280 -45q-230 2 -358 112t-124 306zM372 555q-24 -121 144 -176l79 -25l130 -43q95 56 115 149 q21 110 -140 170l-221 75q-90 -55 -107 -150z" /> +<glyph unicode="¨" horiz-adv-x="937" d="M210 1362q-2 54 36 91.5t95 39.5q56 2 97 -34.5t41 -90.5q2 -53 -36.5 -90.5t-94.5 -39.5q-53 -2 -94.5 33.5t-43.5 90.5zM683 1362q-2 54 36 91.5t94 39.5q53 2 95.5 -33t44.5 -92q0 -54 -38 -91.5t-94 -39.5t-97 34.5t-41 90.5z" /> +<glyph unicode="©" horiz-adv-x="1568" d="M114 722q17 152 86 292.5t180.5 247.5t245 162t276.5 52q183 -4 325 -102.5t214.5 -272t51.5 -366.5q-21 -189 -120.5 -356t-254.5 -272q-194 -131 -413 -127q-185 4 -326.5 103.5t-213.5 273.5t-51 365zM235 722q-22 -159 29.5 -302.5t165 -228.5t262.5 -87 q161 -4 306.5 78.5t246.5 230.5t126 323q22 159 -29.5 301.5t-163.5 226t-264 87.5q-162 4 -311.5 -81t-247.5 -234.5t-120 -313.5zM444 669l11 110q19 184 122.5 291.5t258.5 105.5q145 -4 225 -87t78 -230l-152 2q13 177 -146 181q-93 2 -155.5 -69.5t-77 -196t-15 -145 t1.5 -47.5q3 -73 40 -118.5t102 -48.5q169 -7 200 179l152 1q-10 -150 -101 -234.5t-244 -80.5q-148 4 -230.5 113.5t-69.5 273.5z" /> +<glyph unicode="ª" horiz-adv-x="892" d="M187 911q2 115 94.5 177.5t260.5 62.5l106 -2l12 55l4 46q-3 75 -81 78q-120 4 -147 -99l-173 13q7 110 94.5 173.5t219.5 61.5q121 -2 193 -77t62 -200l-53 -347l-4 -59q-1 -44 8 -92h-164l-3 72q-89 -83 -201 -83q-105 0 -166.5 60t-61.5 160zM362 915q-7 -38 15.5 -60 t70.5 -22q69 0 161 63l28 137h-80q-84 -3 -135 -34.5t-60 -83.5z" /> +<glyph unicode="«" horiz-adv-x="1002" d="M60 513l1 21l330 390h203l-316 -416l162 -382l-167 -1zM433 513l1 21l330 390h203l-316 -416l162 -382l-167 -1z" /> +<glyph unicode="¬" horiz-adv-x="1105" d="M127 634l30 171h812l-75 -431h-196l46 260h-617z" /> +<glyph unicode="­" horiz-adv-x="780" d="M90 507l40 233h549l-41 -233h-548z" /> +<glyph unicode="®" horiz-adv-x="1568" d="M114 722q17 152 86 292.5t180.5 247.5t245 162t276.5 52q183 -4 325 -102.5t214.5 -272t51.5 -366.5q-21 -189 -120.5 -356t-254.5 -272q-194 -131 -413 -127q-185 4 -326.5 103.5t-213.5 273.5t-51 365zM235 722q-22 -160 30 -304t164 -227t263 -87q157 -4 304.5 78 t248.5 230.5t126 323.5q22 159 -29.5 301.5t-163.5 226t-264 87.5q-162 4 -311.5 -81t-247.5 -234.5t-120 -313.5zM452 316l133 850l256 -1q142 -5 218.5 -73t71.5 -182q-3 -58 -36 -103t-101 -84q68 -49 74 -149q1 -29 -5.5 -89.5t-4.5 -88.5l4 -63l-1 -19l-148 1 q-6 37 -4 73q1 43 12 128q7 63 -14 97t-87 38l-167 2l-53 -337h-148zM674 787l116 -1q82 3 134 35.5t63 87.5q11 58 -17 89t-117 34l-141 1z" /> +<glyph unicode="¯" horiz-adv-x="1005" d="M250 1290l27 167h710l-27 -167h-710z" /> +<glyph unicode="°" horiz-adv-x="781" d="M228 1191q2 117 86.5 202.5t195.5 83.5q104 -2 173.5 -82t67.5 -186q-2 -116 -84.5 -200t-193.5 -82q-105 2 -176 79.5t-69 184.5zM371 1193q-6 -45 20 -81t74 -36q51 0 93 37t51 94q6 49 -19 85.5t-72 36.5q-51 0 -94.5 -40t-52.5 -96z" /> +<glyph unicode="±" horiz-adv-x="1077" d="M15 1l37 235h840l-37 -235h-840zM101 701l38 241h325l54 343h247l-54 -343h319l-38 -241h-318l-57 -364h-248l57 364h-325z" /> +<glyph unicode="²" horiz-adv-x="750" d="M81 667l26 150l335 270q95 79 107 141q8 36 -10 57t-54 21q-97 0 -121 -112l-204 -2q8 126 96.5 202.5t216.5 74.5q131 -2 207.5 -66.5t74.5 -175.5q-5 -138 -169 -255l-78 -55l-130 -84l336 -2l-30 -164h-603z" /> +<glyph unicode="³" horiz-adv-x="750" d="M96 904l195 -1q7 -82 102 -82q52 0 89 25t46 68q16 80 -94 85h-94l10 137h81q54 2 90.5 26.5t45.5 68.5q5 34 -18 52.5t-59 18.5q-80 0 -108 -60l-208 -1q7 106 89.5 167t212.5 59q136 -3 214.5 -61.5t75.5 -157.5q-3 -118 -158 -183q58 -20 87 -65.5t28 -105.5 q-2 -111 -97.5 -176.5t-239.5 -62.5q-129 2 -208.5 69t-81.5 180z" /> +<glyph unicode="´" horiz-adv-x="669" d="M186 1226l240 310h327l-318 -310h-249z" /> +<glyph unicode="µ" horiz-adv-x="1233" d="M-42 -416l260 1498h282l-103 -622l-6 -83q-7 -160 125 -163q133 -4 221 104l135 764h282l-188 -1082h-248l8 69q-106 -93 -230 -91q-93 0 -169 48l-87 -442h-282z" /> +<glyph unicode="¶" horiz-adv-x="983" d="M149 980q19 214 168 345.5t372 131.5l313 -1l-253 -1456h-214l90 520l-52 1q-211 3 -326.5 130t-97.5 329z" /> +<glyph unicode="·" horiz-adv-x="608" d="M154 692q-2 67 43 113t113 48q65 2 112.5 -41t49.5 -110q2 -65 -43.5 -112.5t-114.5 -47.5q-64 -2 -111 39.5t-49 110.5z" /> +<glyph unicode="¸" horiz-adv-x="542" d="M-45 -465l8 170q111 5 128 88q12 61 -86 68l-35 3l43 142l209 3l-20 -64q62 -13 93.5 -56.5t31.5 -105.5q0 -115 -96 -179t-276 -69z" /> +<glyph unicode="¹" horiz-adv-x="750" d="M229 1172l30 168l369 115l25 1l-128 -787h-200l95 543z" /> +<glyph unicode="º" horiz-adv-x="918" d="M200 1044l5 63q13 167 117.5 270.5t258.5 99.5q148 -4 229 -105.5t71 -250.5l-6 -66q-16 -171 -120.5 -270.5t-253.5 -95.5q-144 4 -228 103.5t-73 251.5zM372 969q5 -61 38.5 -97.5t89.5 -37.5q76 -3 131 53.5t70 156.5l11 101l-1 49q-15 132 -128 135q-77 3 -132 -52.5 t-70 -155.5l-9 -80q-3 -36 0 -72z" /> +<glyph unicode="»" horiz-adv-x="1002" d="M-10 124l315 415l-161 383l167 1l213 -387l-1 -22l-330 -390h-203zM371 124l315 415l-161 383l167 1l213 -387l-1 -22l-330 -390h-203z" /> +<glyph unicode="¼" horiz-adv-x="1436" d="M194 1167l30 168l369 115l25 1l-128 -787h-200l95 543zM235 204l878 1124l137 -83l-876 -1126zM652 159l14 150l419 479l203 2l-80 -466l96 1l-31 -166h-85l-29 -159h-200l28 159h-335zM866 328l152 -3l44 216l-18 -25z" /> +<glyph unicode="½" horiz-adv-x="1522" d="M178 1173l30 168l369 115l25 1l-128 -787h-200l95 543zM194 204l878 1124l137 -83l-876 -1126zM726 0l26 150l335 270q95 79 107 141q8 36 -10 57t-54 21q-97 0 -121 -112l-204 -2q8 126 96.5 202.5t216.5 74.5q131 -2 207.5 -66.5t74.5 -175.5q-5 -138 -169 -255 l-78 -55l-130 -84l336 -2l-30 -164h-603z" /> +<glyph unicode="¾" horiz-adv-x="1615" d="M141 905l195 -1q7 -82 102 -82q52 0 89 25t46 68q16 80 -94 85h-94l10 137h81q54 2 90.5 26.5t45.5 68.5q5 34 -18 52.5t-59 18.5q-80 0 -108 -60l-208 -1q7 106 89.5 167t212.5 59q136 -3 214.5 -61.5t75.5 -157.5q-3 -118 -158 -183q58 -20 87 -65.5t28 -105.5 q-2 -111 -97.5 -176.5t-239.5 -62.5q-129 2 -208.5 69t-81.5 180zM391 204l878 1124l137 -83l-876 -1126zM806 159l14 150l419 479l203 2l-80 -466l96 1l-31 -166h-85l-29 -159h-200l28 159h-335zM1020 328l152 -3l44 216l-18 -25z" /> +<glyph unicode="¿" horiz-adv-x="998" d="M-31 -2q11 161 179 311l145 121q86 79 109 213l246 1q-8 -122 -50 -211t-128 -162l-68 -57q-127 -106 -144 -216q-9 -64 17 -106t95 -44q71 -2 120.5 42t68.5 131l282 2q-13 -191 -145.5 -301.5t-335.5 -106.5q-186 2 -294 104t-97 279zM432 944q-2 69 44 114t111 45 q64 2 111 -39.5t49 -109.5q2 -69 -44 -114t-111 -45q-64 -2 -111 39.5t-49 109.5z" /> +<glyph unicode="À" horiz-adv-x="1347" d="M-104 0l778 1456h271l277 -1456h-299l-46 300h-508l-150 -300h-323zM489 543h351l-82 542zM532 1844l291 2l143 -310l-211 1z" /> +<glyph unicode="Á" horiz-adv-x="1347" d="M-104 0l778 1456h271l277 -1456h-299l-46 300h-508l-150 -300h-323zM489 543h351l-82 542zM690 1536l240 310h327l-318 -310h-249z" /> +<glyph unicode="Â" horiz-adv-x="1347" d="M-104 0l778 1456h271l277 -1456h-299l-46 300h-508l-150 -300h-323zM471 1551v23l321 272l161 1l261 -277v-21l-216 5l-123 144l-175 -143zM489 543h351l-82 542z" /> +<glyph unicode="Ã" horiz-adv-x="1347" d="M-104 0l778 1456h271l277 -1456h-299l-46 300h-508l-150 -300h-323zM477 1566q7 116 73.5 194t162.5 76q26 0 49.5 -7.5t79 -37.5t80 -38t52.5 -7q77 3 101 98l161 -10q-7 -118 -70.5 -194.5t-160.5 -76.5q-28 0 -53.5 8.5t-76.5 37t-76.5 37.5t-54.5 8q-76 -3 -101 -98z M489 543h351l-82 542z" /> +<glyph unicode="Ä" horiz-adv-x="1347" d="M-104 0l778 1456h271l277 -1456h-299l-46 300h-508l-150 -300h-323zM485 1672q-2 54 36 91.5t95 39.5q56 2 97 -34.5t41 -90.5q2 -53 -36.5 -90.5t-94.5 -39.5q-53 -2 -94.5 33.5t-43.5 90.5zM489 543h351l-82 542zM958 1672q-2 54 36 91.5t94 39.5q53 2 95.5 -33 t44.5 -92q0 -54 -38 -91.5t-94 -39.5t-97 34.5t-41 90.5z" /> +<glyph unicode="Å" horiz-adv-x="1347" d="M-104 0l778 1456h271l277 -1456h-299l-46 300h-508l-150 -300h-323zM489 543h351l-82 542zM651 1723q0 90 66 151.5t157 61.5q87 0 148.5 -58.5t61.5 -140.5q2 -86 -63.5 -147.5t-159.5 -61.5q-86 0 -147 56t-63 139zM764 1723q-7 -40 15 -70t65 -30q47 0 83 32.5 t45 81.5q6 43 -17 72.5t-63 29.5q-47 0 -84.5 -34t-43.5 -82z" /> +<glyph unicode="Æ" horiz-adv-x="1877" d="M-111 0l1015 1456h996l-42 -236h-580l-47 -355h488l-42 -236h-477l-53 -394h600l-41 -235h-871l44 333h-423l-220 -333h-347zM615 582l298 -2l73 552z" /> +<glyph unicode="Ç" horiz-adv-x="1310" d="M94 508q-7 123 25.5 306t116 325t198.5 225q162 116 370 112q226 -4 358.5 -139.5t145.5 -376.5l-292 1q0 138 -55 202t-171 68q-150 5 -246.5 -107t-129.5 -327q-32 -209 -28 -313q5 -132 59 -194.5t151 -65.5q134 -5 214.5 63.5t106.5 196.5l291 2 q-17 -151 -103 -267.5t-224 -179t-298 -59.5q-144 3 -251 66.5t-168.5 184t-69.5 277.5zM393 -466l8 170q111 5 128 88q12 61 -86 68l-35 3l43 142l209 3l-20 -64q62 -13 93.5 -56.5t31.5 -105.5q0 -115 -96 -179t-276 -69z" /> +<glyph unicode="È" horiz-adv-x="1127" d="M21 0l253 1456h947l-43 -243h-653l-61 -347h560l-42 -235h-558l-68 -390h656l-42 -241h-949zM477 1847l291 2l143 -310l-211 1z" /> +<glyph unicode="É" horiz-adv-x="1127" d="M21 0l253 1456h947l-43 -243h-653l-61 -347h560l-42 -235h-558l-68 -390h656l-42 -241h-949zM635 1539l240 310h327l-318 -310h-249z" /> +<glyph unicode="Ê" horiz-adv-x="1127" d="M21 0l253 1456h947l-43 -243h-653l-61 -347h560l-42 -235h-558l-68 -390h656l-42 -241h-949zM416 1554v23l321 272l161 1l261 -277v-21l-216 5l-123 144l-175 -143z" /> +<glyph unicode="Ë" horiz-adv-x="1127" d="M21 0l253 1456h947l-43 -243h-653l-61 -347h560l-42 -235h-558l-68 -390h656l-42 -241h-949zM430 1675q-2 54 36 91.5t95 39.5q56 2 97 -34.5t41 -90.5q2 -53 -36.5 -90.5t-94.5 -39.5q-53 -2 -94.5 33.5t-43.5 90.5zM903 1675q-2 54 36 91.5t94 39.5q53 2 95.5 -33 t44.5 -92q0 -54 -38 -91.5t-94 -39.5t-97 34.5t-41 90.5z" /> +<glyph unicode="Ì" horiz-adv-x="589" d="M40 0l252 1456h293l-252 -1456h-293zM151 1847l291 2l143 -310l-211 1z" /> +<glyph unicode="Í" horiz-adv-x="589" d="M40 0l252 1456h293l-252 -1456h-293zM308 1539l240 310h327l-318 -310h-249z" /> +<glyph unicode="Î" horiz-adv-x="589" d="M40 0l252 1456h293l-252 -1456h-293zM90 1554v23l321 272l161 1l261 -277v-21l-216 5l-123 144l-175 -143z" /> +<glyph unicode="Ï" horiz-adv-x="589" d="M40 0l252 1456h293l-252 -1456h-293zM104 1675q-2 54 36 91.5t95 39.5q56 2 97 -34.5t41 -90.5q2 -53 -36.5 -90.5t-94.5 -39.5q-53 -2 -94.5 33.5t-43.5 90.5zM577 1675q-2 54 36 91.5t94 39.5q53 2 95.5 -33t44.5 -92q0 -54 -38 -91.5t-94 -39.5t-97 34.5t-41 90.5z " /> +<glyph unicode="Ð" horiz-adv-x="1331" d="M-13 642l33 183h174l110 631l416 -1q147 -2 265.5 -66t191.5 -183t88 -268q8 -87 -2 -178l-7 -53q-44 -320 -251.5 -513.5t-503.5 -193.5h-450l111 642h-175zM386 241l122 -1q202 0 324.5 148t140.5 447l2 32q3 165 -63 253t-197 92l-160 1l-68 -388h213l-33 -183h-212z " /> +<glyph unicode="Ñ" horiz-adv-x="1413" d="M21 0l253 1456h283l406 -973l169 973h292l-252 -1456h-284l-405 971l-169 -971h-293zM510 1566q7 116 73.5 194t162.5 76q26 0 49.5 -7.5t79 -37.5t80 -38t52.5 -7q77 3 101 98l161 -10q-7 -118 -70.5 -194.5t-160.5 -76.5q-28 0 -53.5 8.5t-76.5 37t-76.5 37.5t-54.5 8 q-76 -3 -101 -98z" /> +<glyph unicode="Ò" horiz-adv-x="1382" d="M101 521q-11 164 35 350t148 327t239.5 211t297.5 67q147 -3 257 -69.5t173 -191t72 -282.5q10 -176 -38 -362t-149 -322t-236.5 -204t-293.5 -65q-145 3 -255.5 68.5t-175 189t-74.5 283.5zM395 597q-10 -177 47 -272.5t177 -99.5q157 -7 260 122.5t135 366.5l7 54l8 95 q10 178 -47.5 270t-174.5 96q-183 6 -290.5 -162t-121.5 -470zM546 1844l291 2l143 -310l-211 1z" /> +<glyph unicode="Ó" horiz-adv-x="1382" d="M101 521q-11 164 35 350t148 327t239.5 211t297.5 67q147 -3 257 -69.5t173 -191t72 -282.5q10 -176 -38 -362t-149 -322t-236.5 -204t-293.5 -65q-145 3 -255.5 68.5t-175 189t-74.5 283.5zM395 597q-10 -177 47 -272.5t177 -99.5q157 -7 260 122.5t135 366.5l7 54l8 95 q10 178 -47.5 270t-174.5 96q-183 6 -290.5 -162t-121.5 -470zM704 1536l240 310h327l-318 -310h-249z" /> +<glyph unicode="Ô" horiz-adv-x="1382" d="M101 521q-11 164 35 350t148 327t239.5 211t297.5 67q147 -3 257 -69.5t173 -191t72 -282.5q10 -176 -38 -362t-149 -322t-236.5 -204t-293.5 -65q-145 3 -255.5 68.5t-175 189t-74.5 283.5zM395 597q-10 -177 47 -272.5t177 -99.5q157 -7 260 122.5t135 366.5l7 54l8 95 q10 178 -47.5 270t-174.5 96q-183 6 -290.5 -162t-121.5 -470zM485 1551v23l321 272l161 1l261 -277v-21l-216 5l-123 144l-175 -143z" /> +<glyph unicode="Õ" horiz-adv-x="1382" d="M101 521q-11 164 35 350t148 327t239.5 211t297.5 67q147 -3 257 -69.5t173 -191t72 -282.5q10 -176 -38 -362t-149 -322t-236.5 -204t-293.5 -65q-145 3 -255.5 68.5t-175 189t-74.5 283.5zM395 597q-10 -177 47 -272.5t177 -99.5q157 -7 260 122.5t135 366.5l7 54l8 95 q10 178 -47.5 270t-174.5 96q-183 6 -290.5 -162t-121.5 -470zM491 1566q7 116 73.5 194t162.5 76q26 0 49.5 -7.5t79 -37.5t80 -38t52.5 -7q77 3 101 98l161 -10q-7 -118 -70.5 -194.5t-160.5 -76.5q-28 0 -53.5 8.5t-76.5 37t-76.5 37.5t-54.5 8q-76 -3 -101 -98z" /> +<glyph unicode="Ö" horiz-adv-x="1382" d="M101 521q-11 164 35 350t148 327t239.5 211t297.5 67q147 -3 257 -69.5t173 -191t72 -282.5q10 -176 -38 -362t-149 -322t-236.5 -204t-293.5 -65q-145 3 -255.5 68.5t-175 189t-74.5 283.5zM395 597q-10 -177 47 -272.5t177 -99.5q157 -7 260 122.5t135 366.5l7 54l8 95 q10 178 -47.5 270t-174.5 96q-183 6 -290.5 -162t-121.5 -470zM499 1672q-2 54 36 91.5t95 39.5q56 2 97 -34.5t41 -90.5q2 -53 -36.5 -90.5t-94.5 -39.5q-53 -2 -94.5 33.5t-43.5 90.5zM972 1672q-2 54 36 91.5t94 39.5q53 2 95.5 -33t44.5 -92q0 -54 -38 -91.5t-94 -39.5 t-97 34.5t-41 90.5z" /> +<glyph unicode="×" horiz-adv-x="1065" d="M25 386l353 313l-244 313l180 155l242 -310l348 311l148 -182l-353 -314l244 -312l-179 -156l-243 310l-348 -309z" /> +<glyph unicode="Ø" horiz-adv-x="1379" d="M12 -94l194 244q-138 232 -99 545l8 58q30 214 129.5 382t249 256t330.5 86q169 -4 294 -84l99 125l202 -1l-183 -229q120 -232 84 -529l-5 -40q-42 -333 -234.5 -538t-474.5 -202q-155 2 -279 72l-112 -146zM387 552q-5 -72 3 -144l575 764q-51 54 -152 59 q-158 5 -262.5 -122t-139.5 -360q-19 -128 -24 -197zM479 268q51 -40 139 -45q147 -5 249 108t143 329.5t34 359.5z" /> +<glyph unicode="Ù" horiz-adv-x="1318" d="M101 495l163 961h293l-163 -962q-7 -56 -1 -105q20 -162 193 -168q124 -4 203 68t102 206l164 961h294l-164 -960q-34 -241 -200 -381t-412 -136q-154 3 -267.5 67.5t-167.5 182t-37 266.5zM511 1844l291 2l143 -310l-211 1z" /> +<glyph unicode="Ú" horiz-adv-x="1318" d="M101 495l163 961h293l-163 -962q-7 -56 -1 -105q20 -162 193 -168q124 -4 203 68t102 206l164 961h294l-164 -960q-34 -241 -200 -381t-412 -136q-154 3 -267.5 67.5t-167.5 182t-37 266.5zM669 1536l240 310h327l-318 -310h-249z" /> +<glyph unicode="Û" horiz-adv-x="1318" d="M101 495l163 961h293l-163 -962q-7 -56 -1 -105q20 -162 193 -168q124 -4 203 68t102 206l164 961h294l-164 -960q-34 -241 -200 -381t-412 -136q-154 3 -267.5 67.5t-167.5 182t-37 266.5zM450 1551v23l321 272l161 1l261 -277v-21l-216 5l-123 144l-175 -143z" /> +<glyph unicode="Ü" horiz-adv-x="1318" d="M101 495l163 961h293l-163 -962q-7 -56 -1 -105q20 -162 193 -168q124 -4 203 68t102 206l164 961h294l-164 -960q-34 -241 -200 -381t-412 -136q-154 3 -267.5 67.5t-167.5 182t-37 266.5zM464 1672q-2 54 36 91.5t95 39.5q56 2 97 -34.5t41 -90.5q2 -53 -36.5 -90.5 t-94.5 -39.5q-53 -2 -94.5 33.5t-43.5 90.5zM937 1672q-2 54 36 91.5t94 39.5q53 2 95.5 -33t44.5 -92q0 -54 -38 -91.5t-94 -39.5t-97 34.5t-41 90.5z" /> +<glyph unicode="Ý" horiz-adv-x="1238" d="M154 1455l309 1l177 -654l407 654h336l-636 -944l-88 -512h-298l95 545zM635 1536l240 310h327l-318 -310h-249z" /> +<glyph unicode="Þ" horiz-adv-x="1219" d="M24 0l253 1456h282l-47 -267l177 -1q234 -1 365 -122t116 -320q-11 -141 -88 -245t-206 -159.5t-286 -55.5l-233 1l-51 -287h-282zM397 520l198 -1q113 0 194.5 59.5t98.5 165.5q14 95 -36 151t-147 60l-232 1z" /> +<glyph unicode="ß" horiz-adv-x="1263" d="M26 0l188 1101q29 218 168 341t352 117q174 -4 275 -104.5t90 -257.5q-3 -46 -19 -86.5t-61 -115.5t-58 -106t-20 -68q-8 -46 12.5 -94.5t80.5 -123t86.5 -131t24.5 -109.5q-9 -179 -139.5 -282.5t-335.5 -101.5q-166 2 -279 59l76 227q89 -55 205 -53q72 0 127 38 t68 107q8 48 -13.5 96t-87.5 123.5t-92 135.5q-20 46 -17 96q3 45 19 84.5t58.5 110t57.5 106.5t20 75q8 62 -22.5 103t-93.5 44q-82 3 -133 -56t-68 -177l-187 -1098h-282z" /> +<glyph unicode="à" horiz-adv-x="1075" d="M19 296q7 177 148.5 271.5t379.5 94.5l132 -2l14 65q6 33 3 63q-5 47 -35.5 73.5t-80.5 27.5q-66 2 -112 -32.5t-59 -99.5l-283 -1q7 155 142.5 251.5t334.5 94.5q184 -4 288 -109.5t87 -271.5l-83 -518l-5 -64q-2 -71 17 -120l-1 -19h-277q-13 41 -11 98 q-122 -122 -276 -118q-142 2 -235.5 92.5t-87.5 223.5zM306 317q-8 -54 22.5 -85.5t83.5 -32.5q122 -4 213 106l35 187l-98 1q-156 -4 -225 -95q-25 -33 -31 -81zM342 1534l291 2l143 -310l-211 1z" /> +<glyph unicode="á" horiz-adv-x="1075" d="M19 296q7 177 148.5 271.5t379.5 94.5l132 -2l14 65q6 33 3 63q-5 47 -35.5 73.5t-80.5 27.5q-66 2 -112 -32.5t-59 -99.5l-283 -1q7 155 142.5 251.5t334.5 94.5q184 -4 288 -109.5t87 -271.5l-83 -518l-5 -64q-2 -71 17 -120l-1 -19h-277q-13 41 -11 98 q-122 -122 -276 -118q-142 2 -235.5 92.5t-87.5 223.5zM306 317q-8 -54 22.5 -85.5t83.5 -32.5q122 -4 213 106l35 187l-98 1q-156 -4 -225 -95q-25 -33 -31 -81zM500 1226l240 310h327l-318 -310h-249z" /> +<glyph unicode="â" horiz-adv-x="1075" d="M19 296q7 177 148.5 271.5t379.5 94.5l132 -2l14 65q6 33 3 63q-5 47 -35.5 73.5t-80.5 27.5q-66 2 -112 -32.5t-59 -99.5l-283 -1q7 155 142.5 251.5t334.5 94.5q184 -4 288 -109.5t87 -271.5l-83 -518l-5 -64q-2 -71 17 -120l-1 -19h-277q-13 41 -11 98 q-122 -122 -276 -118q-142 2 -235.5 92.5t-87.5 223.5zM281 1241v23l321 272l161 1l261 -277v-21l-216 5l-123 144l-175 -143zM306 317q-8 -54 22.5 -85.5t83.5 -32.5q122 -4 213 106l35 187l-98 1q-156 -4 -225 -95q-25 -33 -31 -81z" /> +<glyph unicode="ã" horiz-adv-x="1075" d="M19 296q7 177 148.5 271.5t379.5 94.5l132 -2l14 65q6 33 3 63q-5 47 -35.5 73.5t-80.5 27.5q-66 2 -112 -32.5t-59 -99.5l-283 -1q7 155 142.5 251.5t334.5 94.5q184 -4 288 -109.5t87 -271.5l-83 -518l-5 -64q-2 -71 17 -120l-1 -19h-277q-13 41 -11 98 q-122 -122 -276 -118q-142 2 -235.5 92.5t-87.5 223.5zM287 1257q7 116 73.5 194t162.5 76q26 0 49.5 -7.5t79 -37.5t80 -38t52.5 -7q77 3 101 98l161 -10q-7 -118 -70.5 -194.5t-160.5 -76.5q-28 0 -53.5 8.5t-76.5 37t-76.5 37.5t-54.5 8q-76 -3 -101 -98zM306 317 q-8 -54 22.5 -85.5t83.5 -32.5q122 -4 213 106l35 187l-98 1q-156 -4 -225 -95q-25 -33 -31 -81z" /> +<glyph unicode="ä" horiz-adv-x="1075" d="M19 296q7 177 148.5 271.5t379.5 94.5l132 -2l14 65q6 33 3 63q-5 47 -35.5 73.5t-80.5 27.5q-66 2 -112 -32.5t-59 -99.5l-283 -1q7 155 142.5 251.5t334.5 94.5q184 -4 288 -109.5t87 -271.5l-83 -518l-5 -64q-2 -71 17 -120l-1 -19h-277q-13 41 -11 98 q-122 -122 -276 -118q-142 2 -235.5 92.5t-87.5 223.5zM295 1362q-2 54 36 91.5t95 39.5q56 2 97 -34.5t41 -90.5q2 -53 -36.5 -90.5t-94.5 -39.5q-53 -2 -94.5 33.5t-43.5 90.5zM306 317q-8 -54 22.5 -85.5t83.5 -32.5q122 -4 213 106l35 187l-98 1q-156 -4 -225 -95 q-25 -33 -31 -81zM768 1362q-2 54 36 91.5t94 39.5q53 2 95.5 -33t44.5 -92q0 -54 -38 -91.5t-94 -39.5t-97 34.5t-41 90.5z" /> +<glyph unicode="å" horiz-adv-x="1075" d="M19 296q7 177 148.5 271.5t379.5 94.5l132 -2l14 65q6 33 3 63q-5 47 -35.5 73.5t-80.5 27.5q-66 2 -112 -32.5t-59 -99.5l-283 -1q7 155 142.5 251.5t334.5 94.5q184 -4 288 -109.5t87 -271.5l-83 -518l-5 -64q-2 -71 17 -120l-1 -19h-277q-13 41 -11 98 q-122 -122 -276 -118q-142 2 -235.5 92.5t-87.5 223.5zM306 317q-8 -54 22.5 -85.5t83.5 -32.5q122 -4 213 106l35 187l-98 1q-156 -4 -225 -95q-25 -33 -31 -81zM461 1413q0 90 66 151.5t157 61.5q87 0 148.5 -58.5t61.5 -140.5q2 -86 -63.5 -147.5t-159.5 -61.5 q-86 0 -147 56t-63 139zM574 1413q-7 -40 15 -70t65 -30q47 0 83 32.5t45 81.5q6 43 -17 72.5t-63 29.5q-47 0 -84.5 -34t-43.5 -82z" /> +<glyph unicode="æ" horiz-adv-x="1687" d="M15 311q7 164 144.5 251.5t377.5 87.5l167 -2l13 60q5 33 2 62q-14 96 -115 99q-70 2 -123 -30.5t-66 -93.5l-281 18q8 160 148 252t338 88q204 -5 302 -110q151 112 331 108q192 -4 295.5 -139.5t79.5 -349.5l-25 -162h-642q-10 -108 42 -171t156 -65q81 -2 154 20 t145 56l61 -193q-135 -117 -396 -117q-243 5 -352 146q-170 -150 -404 -146q-106 1 -189.5 42.5t-125.5 115t-37 173.5zM299 307q-10 -53 25 -84.5t102 -31.5q96 0 216 80l38 190l-139 1q-99 -3 -165 -45t-77 -110zM981 643h369l7 31q6 36 4 71q-7 118 -124 124 q-171 6 -256 -226z" /> +<glyph unicode="ç" horiz-adv-x="1046" d="M47 469l3 55l1 11q27 264 178 418.5t373 148.5q183 -4 290.5 -119.5t105.5 -304.5h-263q0 87 -38 137t-114 54q-202 6 -245 -295q-15 -109 -11 -184q10 -175 150 -178q78 -2 130 42.5t68 118.5l265 1q-7 -114 -71.5 -205t-172 -142t-226.5 -48q-197 3 -312 136t-111 354z M277 -466l8 170q111 5 128 88q12 61 -86 68l-35 3l43 142l209 3l-20 -64q62 -13 93.5 -56.5t31.5 -105.5q0 -115 -96 -179t-276 -69z" /> +<glyph unicode="è" horiz-adv-x="1084" d="M60 501l3 40q15 158 92 290t198 203.5t268 67.5q209 -4 316.5 -153.5t81.5 -378.5l-16 -123h-663q-4 -105 51 -168t150 -65q154 -4 270 119l129 -160q-61 -92 -176 -143.5t-247 -49.5q-142 1 -251.5 69.5t-163.5 188t-42 263.5zM323 1534l291 2l143 -310l-211 1zM360 643 h388l6 26q6 40 1 76q-10 58 -49 90.5t-99 33.5q-78 2 -138.5 -49t-108.5 -177z" /> +<glyph unicode="é" horiz-adv-x="1084" d="M60 501l3 40q15 158 92 290t198 203.5t268 67.5q209 -4 316.5 -153.5t81.5 -378.5l-16 -123h-663q-4 -105 51 -168t150 -65q154 -4 270 119l129 -160q-61 -92 -176 -143.5t-247 -49.5q-142 1 -251.5 69.5t-163.5 188t-42 263.5zM360 643h388l6 26q6 40 1 76 q-10 58 -49 90.5t-99 33.5q-78 2 -138.5 -49t-108.5 -177zM481 1226l240 310h327l-318 -310h-249z" /> +<glyph unicode="ê" horiz-adv-x="1084" d="M60 501l3 40q15 158 92 290t198 203.5t268 67.5q209 -4 316.5 -153.5t81.5 -378.5l-16 -123h-663q-4 -105 51 -168t150 -65q154 -4 270 119l129 -160q-61 -92 -176 -143.5t-247 -49.5q-142 1 -251.5 69.5t-163.5 188t-42 263.5zM262 1241v23l321 272l161 1l261 -277v-21 l-216 5l-123 144l-175 -143zM360 643h388l6 26q6 40 1 76q-10 58 -49 90.5t-99 33.5q-78 2 -138.5 -49t-108.5 -177z" /> +<glyph unicode="ë" horiz-adv-x="1084" d="M60 501l3 40q15 158 92 290t198 203.5t268 67.5q209 -4 316.5 -153.5t81.5 -378.5l-16 -123h-663q-4 -105 51 -168t150 -65q154 -4 270 119l129 -160q-61 -92 -176 -143.5t-247 -49.5q-142 1 -251.5 69.5t-163.5 188t-42 263.5zM276 1362q-2 54 36 91.5t95 39.5 q56 2 97 -34.5t41 -90.5q2 -53 -36.5 -90.5t-94.5 -39.5q-53 -2 -94.5 33.5t-43.5 90.5zM360 643h388l6 26q6 40 1 76q-10 58 -49 90.5t-99 33.5q-78 2 -138.5 -49t-108.5 -177zM749 1362q-2 54 36 91.5t94 39.5q53 2 95.5 -33t44.5 -92q0 -54 -38 -91.5t-94 -39.5t-97 34.5 t-41 90.5z" /> +<glyph unicode="ì" horiz-adv-x="554" d="M25 0l188 1082h282l-188 -1082h-282zM77 1519l291 2l143 -310l-211 1z" /> +<glyph unicode="í" horiz-adv-x="554" d="M25 0l188 1082h282l-188 -1082h-282zM234 1211l240 310h327l-318 -310h-249z" /> +<glyph unicode="î" horiz-adv-x="554" d="M16 1226v23l321 272l161 1l261 -277v-21l-216 5l-123 144l-175 -143zM25 0l188 1082h282l-188 -1082h-282z" /> +<glyph unicode="ï" horiz-adv-x="554" d="M25 0l188 1082h282l-188 -1082h-282zM30 1347q-2 54 36 91.5t95 39.5q56 2 97 -34.5t41 -90.5q2 -53 -36.5 -90.5t-94.5 -39.5q-53 -2 -94.5 33.5t-43.5 90.5zM503 1347q-2 54 36 91.5t94 39.5q53 2 95.5 -33t44.5 -92q0 -54 -38 -91.5t-94 -39.5t-97 34.5t-41 90.5z" /> +<glyph unicode="ð" horiz-adv-x="1153" d="M64 460q13 148 80 266t175.5 180.5t245.5 60.5q129 -4 237 -78q-6 140 -92 265l-211 -123l-62 128l161 89q-81 67 -235 109l108 222q223 -53 371 -180l192 112l60 -129l-146 -80q87 -155 121 -313t13 -336l-6 -52q-34 -281 -197.5 -454t-390.5 -168q-129 3 -230.5 65.5 t-153.5 174t-40 241.5zM346 460q-12 -109 31.5 -177.5t128.5 -71.5q101 -3 173.5 78.5t103.5 236.5l23 126l3 13q-27 41 -77 62t-111 21q-112 2 -186.5 -78.5t-88.5 -209.5z" /> +<glyph unicode="ñ" horiz-adv-x="1123" d="M-3 0l188 1082l264 1l-24 -128q130 151 315 147q153 -3 226 -112t53 -302l-114 -688h-282l116 691q5 39 2 71q-13 102 -128 105q-111 4 -199 -103l-135 -764h-282zM310 1257q7 116 73.5 194t162.5 76q26 0 49.5 -7.5t79 -37.5t80 -38t52.5 -7q77 3 101 98l161 -10 q-7 -118 -70.5 -194.5t-160.5 -76.5q-28 0 -53.5 8.5t-76.5 37t-76.5 37.5t-54.5 8q-76 -3 -101 -98z" /> +<glyph unicode="ò" horiz-adv-x="1133" d="M58 524q26 268 182 426t382 152q143 -2 246.5 -73.5t152 -197t34.5 -278.5q-23 -258 -179.5 -417.5t-386.5 -155.5q-141 2 -244 72.5t-152 195.5t-35 276zM337 421q2 -96 45 -151.5t121 -57.5q130 -4 204 119.5t69 324.5q-4 96 -46.5 153.5t-121.5 59.5 q-126 4 -201.5 -118.5t-69.5 -329.5zM354 1534l291 2l143 -310l-211 1z" /> +<glyph unicode="ó" horiz-adv-x="1133" d="M58 524q26 268 182 426t382 152q143 -2 246.5 -73.5t152 -197t34.5 -278.5q-23 -258 -179.5 -417.5t-386.5 -155.5q-141 2 -244 72.5t-152 195.5t-35 276zM337 421q2 -96 45 -151.5t121 -57.5q130 -4 204 119.5t69 324.5q-4 96 -46.5 153.5t-121.5 59.5 q-126 4 -201.5 -118.5t-69.5 -329.5zM512 1226l240 310h327l-318 -310h-249z" /> +<glyph unicode="ô" horiz-adv-x="1133" d="M58 524q26 268 182 426t382 152q143 -2 246.5 -73.5t152 -197t34.5 -278.5q-23 -258 -179.5 -417.5t-386.5 -155.5q-141 2 -244 72.5t-152 195.5t-35 276zM293 1241v23l321 272l161 1l261 -277v-21l-216 5l-123 144l-175 -143zM337 421q2 -96 45 -151.5t121 -57.5 q130 -4 204 119.5t69 324.5q-4 96 -46.5 153.5t-121.5 59.5q-126 4 -201.5 -118.5t-69.5 -329.5z" /> +<glyph unicode="õ" horiz-adv-x="1133" d="M58 524q26 268 182 426t382 152q143 -2 246.5 -73.5t152 -197t34.5 -278.5q-23 -258 -179.5 -417.5t-386.5 -155.5q-141 2 -244 72.5t-152 195.5t-35 276zM299 1257q7 116 73.5 194t162.5 76q26 0 49.5 -7.5t79 -37.5t80 -38t52.5 -7q77 3 101 98l161 -10 q-7 -118 -70.5 -194.5t-160.5 -76.5q-28 0 -53.5 8.5t-76.5 37t-76.5 37.5t-54.5 8q-76 -3 -101 -98zM337 421q2 -96 45 -151.5t121 -57.5q130 -4 204 119.5t69 324.5q-4 96 -46.5 153.5t-121.5 59.5q-126 4 -201.5 -118.5t-69.5 -329.5z" /> +<glyph unicode="ö" horiz-adv-x="1133" d="M58 524q26 268 182 426t382 152q143 -2 246.5 -73.5t152 -197t34.5 -278.5q-23 -258 -179.5 -417.5t-386.5 -155.5q-141 2 -244 72.5t-152 195.5t-35 276zM307 1362q-2 54 36 91.5t95 39.5q56 2 97 -34.5t41 -90.5q2 -53 -36.5 -90.5t-94.5 -39.5q-53 -2 -94.5 33.5 t-43.5 90.5zM337 421q2 -96 45 -151.5t121 -57.5q130 -4 204 119.5t69 324.5q-4 96 -46.5 153.5t-121.5 59.5q-126 4 -201.5 -118.5t-69.5 -329.5zM780 1362q-2 54 36 91.5t94 39.5q53 2 95.5 -33t44.5 -92q0 -54 -38 -91.5t-94 -39.5t-97 34.5t-41 90.5z" /> +<glyph unicode="÷" horiz-adv-x="1143" d="M55 571l40 230h1000l-41 -230h-999zM346 272q-2 66 43 112t114 46q67 2 113 -40t48 -108t-43.5 -111t-112.5 -45q-68 -2 -114 39.5t-48 106.5zM487 1084q-2 66 43 112t114 46q67 2 113 -40t48 -108t-43.5 -111t-112.5 -45q-68 -2 -114 39.5t-48 106.5z" /> +<glyph unicode="ø" horiz-adv-x="1131" d="M27 -141l150 215q-119 131 -127 328q-3 57 5 143q20 162 98 292.5t200.5 199.5t273.5 67q91 -1 180 -32l100 144l174 -1l-150 -214q114 -134 123 -328q2 -58 -6 -141q-20 -162 -97 -289t-201 -197t-275 -68q-87 1 -171 29l-103 -149zM320 423q-4 -52 6 -103l356 540 q-32 12 -66 12q-127 2 -204 -111t-92 -338zM425 218q30 -8 59 -9q108 -2 182 80.5t102 242.5q11 76 14 119q3 48 -4 98z" /> +<glyph unicode="ù" horiz-adv-x="1122" d="M77 382l117 700h282l-119 -703q-4 -33 -1 -62q10 -100 111 -103q131 -4 217 101l135 767h284l-188 -1082h-263l21 112q-120 -135 -298 -132q-156 2 -236 112t-62 290zM362 1534l291 2l143 -310l-211 1z" /> +<glyph unicode="ú" horiz-adv-x="1122" d="M77 382l117 700h282l-119 -703q-4 -33 -1 -62q10 -100 111 -103q131 -4 217 101l135 767h284l-188 -1082h-263l21 112q-120 -135 -298 -132q-156 2 -236 112t-62 290zM520 1226l240 310h327l-318 -310h-249z" /> +<glyph unicode="û" horiz-adv-x="1122" d="M77 382l117 700h282l-119 -703q-4 -33 -1 -62q10 -100 111 -103q131 -4 217 101l135 767h284l-188 -1082h-263l21 112q-120 -135 -298 -132q-156 2 -236 112t-62 290zM301 1241v23l321 272l161 1l261 -277v-21l-216 5l-123 144l-175 -143z" /> +<glyph unicode="ü" horiz-adv-x="1122" d="M77 382l117 700h282l-119 -703q-4 -33 -1 -62q10 -100 111 -103q131 -4 217 101l135 767h284l-188 -1082h-263l21 112q-120 -135 -298 -132q-156 2 -236 112t-62 290zM315 1362q-2 54 36 91.5t95 39.5q56 2 97 -34.5t41 -90.5q2 -53 -36.5 -90.5t-94.5 -39.5 q-53 -2 -94.5 33.5t-43.5 90.5zM788 1362q-2 54 36 91.5t94 39.5q53 2 95.5 -33t44.5 -92q0 -54 -38 -91.5t-94 -39.5t-97 34.5t-41 90.5z" /> +<glyph unicode="ý" horiz-adv-x="1007" d="M-55 -419l21 220l39 -2q138 -4 202 101l62 115l-177 1067h292l78 -670l309 670h314l-633 -1245q-68 -143 -159.5 -210t-211.5 -67q-47 0 -136 21zM470 1226l240 310h327l-318 -310h-249z" /> +<glyph unicode="þ" horiz-adv-x="1137" d="M-67 -416l338 1952h284l-108 -549q113 119 262 115q156 -2 245.5 -112.5t95.5 -305.5q2 -62 -6 -146q-21 -173 -89.5 -304t-169 -194.5t-223.5 -60.5q-154 4 -248 116l-98 -511h-283zM341 316q37 -101 159 -103q98 -3 165.5 74.5t92.5 229.5l6 42l6 96q2 97 -35.5 154 t-109.5 59q-120 4 -202 -102z" /> +<glyph unicode="ÿ" horiz-adv-x="1007" d="M-55 -419l21 220l39 -2q138 -4 202 101l62 115l-177 1067h292l78 -670l309 670h314l-633 -1245q-68 -143 -159.5 -210t-211.5 -67q-47 0 -136 21zM265 1362q-2 54 36 91.5t95 39.5q56 2 97 -34.5t41 -90.5q2 -53 -36.5 -90.5t-94.5 -39.5q-53 -2 -94.5 33.5t-43.5 90.5z M738 1362q-2 54 36 91.5t94 39.5q53 2 95.5 -33t44.5 -92q0 -54 -38 -91.5t-94 -39.5t-97 34.5t-41 90.5z" /> +<glyph unicode="Œ" horiz-adv-x="1934" d="M96 576l46 299q43 276 227.5 439t445.5 163l73 -2l208 -19h877l-43 -243h-652l-61 -347h558l-41 -235h-557l-68 -390h655l-42 -241h-842l-196 -17l-87 -1q-162 4 -284 81.5t-180 214.5t-37 298zM375 445q8 -106 68 -166.5t163 -64.5q78 -3 199 9l187 1008q-90 14 -183 16 q-153 0 -254 -97.5t-129 -273.5l-48 -301q-9 -67 -3 -130z" /> +<glyph unicode="œ" horiz-adv-x="1802" d="M74 523l3 22q26 227 158 378q161 184 409 180q107 -2 196 -41t142 -108q162 152 360 148q132 -4 224 -66.5t133 -173.5t24 -249l-25 -163h-628q-7 -105 40.5 -168t140.5 -67q137 -7 305 76l64 -190q-68 -60 -174.5 -91t-230.5 -29q-106 0 -195.5 38.5t-143.5 108.5 q-166 -152 -382 -148q-141 2 -241.5 72t-147.5 195t-31 276zM351 422q0 -98 41 -154t118 -58q108 -3 180 83t91 239l2 21l5 67q7 241 -161 249q-103 3 -173 -77t-93 -235l-5 -34zM1091 646h355q13 66 10 102q-5 57 -39 89t-92 33q-128 3 -206 -159z" /> +<glyph unicode="Ÿ" horiz-adv-x="1238" d="M154 1455l309 1l177 -654l407 654h336l-636 -944l-88 -512h-298l95 545zM430 1672q-2 54 36 91.5t95 39.5q56 2 97 -34.5t41 -90.5q2 -53 -36.5 -90.5t-94.5 -39.5q-53 -2 -94.5 33.5t-43.5 90.5zM903 1672q-2 54 36 91.5t94 39.5q53 2 95.5 -33t44.5 -92 q0 -54 -38 -91.5t-94 -39.5t-97 34.5t-41 90.5z" /> +<glyph unicode="ˆ" horiz-adv-x="995" d="M234 1241v23l321 272l161 1l261 -277v-21l-216 5l-123 144l-175 -143z" /> +<glyph unicode="˜" horiz-adv-x="965" d="M220 1258q7 116 73.5 194t162.5 76q26 0 49.5 -7.5t79 -37.5t80 -38t52.5 -7q77 3 101 98l161 -10q-7 -118 -70.5 -194.5t-160.5 -76.5q-28 0 -53.5 8.5t-76.5 37t-76.5 37.5t-54.5 8q-76 -3 -101 -98z" /> +<glyph unicode=" " horiz-adv-x="968" /> +<glyph unicode=" " horiz-adv-x="1936" /> +<glyph unicode=" " horiz-adv-x="968" /> +<glyph unicode=" " horiz-adv-x="1936" /> +<glyph unicode=" " horiz-adv-x="645" /> +<glyph unicode=" " horiz-adv-x="484" /> +<glyph unicode=" " horiz-adv-x="322" /> +<glyph unicode=" " horiz-adv-x="322" /> +<glyph unicode=" " horiz-adv-x="242" /> +<glyph unicode=" " horiz-adv-x="387" /> +<glyph unicode=" " horiz-adv-x="107" /> +<glyph unicode="‐" horiz-adv-x="780" d="M90 507l40 233h549l-41 -233h-548z" /> +<glyph unicode="‑" horiz-adv-x="780" d="M90 507l40 233h549l-41 -233h-548z" /> +<glyph unicode="‒" horiz-adv-x="780" d="M90 507l40 233h549l-41 -233h-548z" /> +<glyph unicode="–" horiz-adv-x="1265" d="M146 596l49 236h1008l-50 -236h-1007z" /> +<glyph unicode="—" horiz-adv-x="1526" d="M104 596l65 236h1344l-67 -236h-1342z" /> +<glyph unicode="‘" horiz-adv-x="475" d="M178 1048l20 132q36 232 230 390l134 -82q-46 -68 -82 -137.5t-52 -151.5l-26 -151h-224z" /> +<glyph unicode="’" horiz-adv-x="466" d="M142 1091q103 148 129 260l33 185h225l-23 -148q-34 -221 -221 -381z" /> +<glyph unicode="‚" horiz-adv-x="503" d="M-77 -223q96 144 121 261l34 191h232l-22 -143q-36 -232 -231 -391z" /> +<glyph unicode="“" horiz-adv-x="816" d="M186 1048l20 132q36 232 230 390l134 -82q-46 -68 -82 -137.5t-52 -151.5l-26 -151h-224zM518 1048l20 132q36 232 230 390l134 -82q-46 -68 -82 -137.5t-52 -151.5l-26 -151h-224z" /> +<glyph unicode="”" horiz-adv-x="822" d="M156 1091q103 148 129 260l33 185h225l-23 -148q-34 -221 -221 -381zM492 1091q103 148 129 260l33 185h225l-23 -148q-34 -221 -221 -381z" /> +<glyph unicode="„" horiz-adv-x="810" d="M-80 -244q96 148 124 282l40 225h232l-31 -191q-39 -238 -225 -397zM245 -244q105 161 132 279l40 228h232l-27 -177q-38 -244 -236 -411z" /> +<glyph unicode="•" horiz-adv-x="724" d="M156 720l1 34q3 108 69 175.5t173 67.5q99 -2 158.5 -64t59.5 -164l-1 -40q-6 -105 -73.5 -169t-168.5 -62q-99 2 -158.5 65t-59.5 157z" /> +<glyph unicode="…" horiz-adv-x="1480" d="M51 137q-2 67 43 113t113 48q67 2 114.5 -41.5t47.5 -109.5q2 -66 -44 -112.5t-113 -46.5q-67 -2 -113 40t-48 109zM510 137q-2 67 43 113t113 48q67 2 114.5 -41.5t47.5 -109.5q2 -66 -44 -112.5t-113 -46.5q-67 -2 -113 40t-48 109zM960 137q-2 67 43 113t113 48 q67 2 114.5 -41.5t47.5 -109.5q2 -66 -44 -112.5t-113 -46.5q-67 -2 -113 40t-48 109z" /> +<glyph unicode=" " horiz-adv-x="387" /> +<glyph unicode="‹" horiz-adv-x="629" d="M90 513l1 21l330 390h203l-316 -416l162 -382l-167 -1z" /> +<glyph unicode="›" horiz-adv-x="609" d="M-15 124l315 415l-161 383l167 1l213 -387l-1 -22l-330 -390h-203z" /> +<glyph unicode=" " horiz-adv-x="484" /> +<glyph unicode="€" d="M70 516l27 152h164l22 124h-164l27 152l154 -1q73 263 243.5 399t418.5 134q100 -2 238 -32l-59 -243q-87 33 -173 35q-276 4 -373 -293l333 1l-27 -152h-324l-22 -124h326l-27 -152h-319q-9 -66 -1 -119q12 -83 71 -128t156 -46q84 -2 193 30l12 -245q-132 -29 -243 -25 q-155 1 -273.5 71t-172.5 191.5t-32 272.5z" /> +<glyph unicode="™" horiz-adv-x="1264" d="M241 1348l19 108h397l-19 -108h-125l-75 -431h-140l75 431h-132zM629 914l95 542h150l48 -364l185 364h153l-95 -542h-126l58 328l-155 -327l-71 -2l-51 365l-64 -364h-127z" /> +<glyph unicode="◼" horiz-adv-x="1080" d="M0 0v1080h1080v-1080h-1080z" /> +<glyph unicode="ffi" horiz-adv-x="1854" d="M74 870l37 212l156 1l11 85q24 189 140.5 291.5t296.5 100.5q55 -1 153 -22l-25 -225q-48 12 -83 12q-74 1 -126.5 -37t-67.5 -112l-16 -94h334l6 36q36 211 169 325t347 115h10q84 -1 164 -19.5t161 -41.5l-65 -238q-142 47 -256 49q-92 0 -158 -44t-87 -137l-9 -46 l218 1l-37 -212h-207l-151 -870h-283l151 870h-343l-151 -870h-284l151 870h-156zM1334 0l187 1082h284l-188 -1082h-283z" /> +<glyph unicode="ffl" horiz-adv-x="1854" d="M74 870l37 212l156 1l14 107q26 173 141.5 272t293.5 97q59 -2 152 -21l-25 -225q-48 12 -83 12q-77 0 -129.5 -40t-65.5 -114l-15 -89l343 1l10 78q28 212 179 315q125 85 307 83l153 -5l331 -28l-256 -1526h-283l233 1314q-84 11 -150 11q-94 0 -154 -43.5t-74 -120.5 l-12 -79h209l-37 -212h-209l-151 -870h-283l151 870h-343l-151 -870h-284l151 870h-156z" /> +<hkern u1=" " u2="T" k="60" /> +<hkern u1=""" u2="w" k="-11" /> +<hkern u1="'" u2="w" k="-11" /> +<hkern u1="(" u2="Ÿ" k="-22" /> +<hkern u1="(" u2="Ý" k="-22" /> +<hkern u1="(" u2="Y" k="-22" /> +<hkern u1="(" u2="W" k="-38" /> +<hkern u1="(" u2="V" k="-20" /> +<hkern u1="/" u2="/" k="248" /> +<hkern u1="A" u2="w" k="33" /> +<hkern u1="A" u2="t" k="17" /> +<hkern u1="A" u2="?" k="81" /> +<hkern u1="C" u2="}" k="17" /> +<hkern u1="C" u2="]" k="12" /> +<hkern u1="C" u2=")" k="26" /> +<hkern u1="D" u2="Æ" k="33" /> +<hkern u1="E" u2="w" k="22" /> +<hkern u1="E" u2="f" k="18" /> +<hkern u1="F" u2="…" k="274" /> +<hkern u1="F" u2="„" k="274" /> +<hkern u1="F" u2="‚" k="274" /> +<hkern u1="F" u2="œ" k="21" /> +<hkern u1="F" u2="ÿ" k="24" /> +<hkern u1="F" u2="ý" k="24" /> +<hkern u1="F" u2="ü" k="22" /> +<hkern u1="F" u2="û" k="22" /> +<hkern u1="F" u2="ú" k="22" /> +<hkern u1="F" u2="ù" k="22" /> +<hkern u1="F" u2="ö" k="21" /> +<hkern u1="F" u2="õ" k="21" /> +<hkern u1="F" u2="ô" k="21" /> +<hkern u1="F" u2="ó" k="21" /> +<hkern u1="F" u2="ò" k="21" /> +<hkern u1="F" u2="ë" k="21" /> +<hkern u1="F" u2="ê" k="21" /> +<hkern u1="F" u2="é" k="21" /> +<hkern u1="F" u2="è" k="21" /> +<hkern u1="F" u2="ç" k="21" /> +<hkern u1="F" u2="å" k="34" /> +<hkern u1="F" u2="ä" k="34" /> +<hkern u1="F" u2="ã" k="34" /> +<hkern u1="F" u2="â" k="34" /> +<hkern u1="F" u2="á" k="34" /> +<hkern u1="F" u2="à" k="34" /> +<hkern u1="F" u2="Å" k="192" /> +<hkern u1="F" u2="Ä" k="192" /> +<hkern u1="F" u2="Ã" k="192" /> +<hkern u1="F" u2="Â" k="192" /> +<hkern u1="F" u2="Á" k="192" /> +<hkern u1="F" u2="À" k="192" /> +<hkern u1="F" u2="y" k="24" /> +<hkern u1="F" u2="v" k="24" /> +<hkern u1="F" u2="u" k="22" /> +<hkern u1="F" u2="r" k="26" /> +<hkern u1="F" u2="q" k="21" /> +<hkern u1="F" u2="o" k="21" /> +<hkern u1="F" u2="g" k="21" /> +<hkern u1="F" u2="e" k="21" /> +<hkern u1="F" u2="d" k="21" /> +<hkern u1="F" u2="c" k="21" /> +<hkern u1="F" u2="a" k="34" /> +<hkern u1="F" u2="T" k="-20" /> +<hkern u1="F" u2="J" k="208" /> +<hkern u1="F" u2="A" k="192" /> +<hkern u1="F" u2="." k="274" /> +<hkern u1="F" u2="," k="274" /> +<hkern u1="K" u2="w" k="63" /> +<hkern u1="L" u2="w" k="52" /> +<hkern u1="O" u2="Æ" k="33" /> +<hkern u1="P" u2="Æ" k="297" /> +<hkern u1="P" u2="t" k="-14" /> +<hkern u1="Q" u2="Ÿ" k="35" /> +<hkern u1="Q" u2="Ý" k="35" /> +<hkern u1="Q" u2="Y" k="35" /> +<hkern u1="Q" u2="W" k="20" /> +<hkern u1="Q" u2="V" k="28" /> +<hkern u1="Q" u2="T" k="33" /> +<hkern u1="R" u2="Ÿ" k="48" /> +<hkern u1="R" u2="Ý" k="48" /> +<hkern u1="R" u2="Y" k="48" /> +<hkern u1="R" u2="V" k="19" /> +<hkern u1="R" u2="T" k="50" /> +<hkern u1="T" u2="ø" k="95" /> +<hkern u1="T" u2="æ" k="84" /> +<hkern u1="T" u2="Æ" k="189" /> +<hkern u1="T" u2="»" k="146" /> +<hkern u1="T" u2="«" k="148" /> +<hkern u1="T" u2="w" k="47" /> +<hkern u1="T" u2="r" k="65" /> +<hkern u1="T" u2=" " k="60" /> +<hkern u1="V" u2="}" k="-19" /> +<hkern u1="V" u2="r" k="30" /> +<hkern u1="V" u2="]" k="-17" /> +<hkern u1="V" u2=")" k="-20" /> +<hkern u1="W" u2="}" k="-14" /> +<hkern u1="W" u2="r" k="21" /> +<hkern u1="W" u2="]" k="-12" /> +<hkern u1="W" u2=")" k="-15" /> +<hkern u1="Y" u2="•" k="45" /> +<hkern u1="Y" u2="ø" k="64" /> +<hkern u1="Y" u2="æ" k="63" /> +<hkern u1="Y" u2="Æ" k="96" /> +<hkern u1="Y" u2="»" k="51" /> +<hkern u1="Y" u2="«" k="82" /> +<hkern u1="Y" u2="}" k="-19" /> +<hkern u1="Y" u2="t" k="22" /> +<hkern u1="Y" u2="r" k="40" /> +<hkern u1="Y" u2="f" k="22" /> +<hkern u1="Y" u2="]" k="-18" /> +<hkern u1="Y" u2="*" k="49" /> +<hkern u1="Y" u2=")" k="-20" /> +<hkern u1="Y" u2="&" k="30" /> +<hkern u1="Z" u2="w" k="27" /> +<hkern u1="[" u2="Ü" k="18" /> +<hkern u1="[" u2="Û" k="18" /> +<hkern u1="[" u2="Ú" k="18" /> +<hkern u1="[" u2="Ù" k="18" /> +<hkern u1="[" u2="U" k="18" /> +<hkern u1="[" u2="J" k="18" /> +<hkern u1="e" u2="’" k="64" /> +<hkern u1="f" u2="”" k="-16" /> +<hkern u1="f" u2="“" k="-16" /> +<hkern u1="f" u2="’" k="-16" /> +<hkern u1="f" u2="‘" k="-16" /> +<hkern u1="f" u2="œ" k="24" /> +<hkern u1="f" u2="ë" k="24" /> +<hkern u1="f" u2="ê" k="24" /> +<hkern u1="f" u2="é" k="24" /> +<hkern u1="f" u2="è" k="24" /> +<hkern u1="f" u2="ç" k="24" /> +<hkern u1="f" u2="}" k="-19" /> +<hkern u1="f" u2="q" k="24" /> +<hkern u1="f" u2="g" k="24" /> +<hkern u1="f" u2="e" k="24" /> +<hkern u1="f" u2="d" k="24" /> +<hkern u1="f" u2="c" k="24" /> +<hkern u1="f" u2="]" k="-18" /> +<hkern u1="f" u2=")" k="-20" /> +<hkern u1="f" u2="'" k="-16" /> +<hkern u1="f" u2=""" k="-16" /> +<hkern u1="h" u2="’" k="104" /> +<hkern u1="k" u2="œ" k="20" /> +<hkern u1="k" u2="ë" k="20" /> +<hkern u1="k" u2="ê" k="20" /> +<hkern u1="k" u2="é" k="20" /> +<hkern u1="k" u2="è" k="20" /> +<hkern u1="k" u2="ç" k="20" /> +<hkern u1="k" u2="q" k="20" /> +<hkern u1="k" u2="g" k="20" /> +<hkern u1="k" u2="e" k="20" /> +<hkern u1="k" u2="d" k="20" /> +<hkern u1="k" u2="c" k="20" /> +<hkern u1="m" u2="’" k="120" /> +<hkern u1="n" u2="’" k="120" /> +<hkern u1="o" u2="’" k="112" /> +<hkern u1="r" u2="’" k="-16" /> +<hkern u1="r" u2="w" k="-17" /> +<hkern u1="r" u2="t" k="-50" /> +<hkern u1="r" u2="f" k="-20" /> +<hkern u1="t" u2="’" k="-24" /> +<hkern u1="t" u2="ö" k="30" /> +<hkern u1="t" u2="õ" k="30" /> +<hkern u1="t" u2="ô" k="30" /> +<hkern u1="t" u2="ó" k="30" /> +<hkern u1="t" u2="ò" k="30" /> +<hkern u1="t" u2="o" k="30" /> +<hkern u1="v" u2="f" k="-13" /> +<hkern u1="w" u2="…" k="124" /> +<hkern u1="w" u2="„" k="124" /> +<hkern u1="w" u2="‚" k="124" /> +<hkern u1="w" u2="." k="124" /> +<hkern u1="w" u2="," k="124" /> +<hkern u1="y" u2="f" k="-13" /> +<hkern u1="{" u2="Ü" k="20" /> +<hkern u1="{" u2="Û" k="20" /> +<hkern u1="{" u2="Ú" k="20" /> +<hkern u1="{" u2="Ù" k="20" /> +<hkern u1="{" u2="U" k="20" /> +<hkern u1="{" u2="J" k="20" /> +<hkern u1="À" u2="w" k="33" /> +<hkern u1="À" u2="t" k="17" /> +<hkern u1="À" u2="?" k="81" /> +<hkern u1="Á" u2="w" k="33" /> +<hkern u1="Á" u2="t" k="17" /> +<hkern u1="Á" u2="?" k="81" /> +<hkern u1="Â" u2="w" k="33" /> +<hkern u1="Â" u2="t" k="17" /> +<hkern u1="Â" u2="?" k="81" /> +<hkern u1="Ã" u2="w" k="33" /> +<hkern u1="Ã" u2="t" k="17" /> +<hkern u1="Ã" u2="?" k="81" /> +<hkern u1="Ä" u2="w" k="33" /> +<hkern u1="Ä" u2="t" k="17" /> +<hkern u1="Ä" u2="?" k="81" /> +<hkern u1="Å" u2="w" k="33" /> +<hkern u1="Å" u2="t" k="17" /> +<hkern u1="Å" u2="?" k="81" /> +<hkern u1="Ç" u2="}" k="17" /> +<hkern u1="Ç" u2="]" k="12" /> +<hkern u1="Ç" u2=")" k="26" /> +<hkern u1="È" u2="w" k="22" /> +<hkern u1="È" u2="f" k="18" /> +<hkern u1="É" u2="w" k="22" /> +<hkern u1="É" u2="f" k="18" /> +<hkern u1="Ê" u2="w" k="22" /> +<hkern u1="Ê" u2="f" k="18" /> +<hkern u1="Ë" u2="w" k="22" /> +<hkern u1="Ë" u2="f" k="18" /> +<hkern u1="Ð" u2="Æ" k="33" /> +<hkern u1="Ò" u2="Æ" k="33" /> +<hkern u1="Ó" u2="Æ" k="33" /> +<hkern u1="Ô" u2="Æ" k="33" /> +<hkern u1="Õ" u2="Æ" k="33" /> +<hkern u1="Ö" u2="Æ" k="33" /> +<hkern u1="Ý" u2="•" k="45" /> +<hkern u1="Ý" u2="ø" k="64" /> +<hkern u1="Ý" u2="æ" k="63" /> +<hkern u1="Ý" u2="Æ" k="96" /> +<hkern u1="Ý" u2="»" k="51" /> +<hkern u1="Ý" u2="«" k="82" /> +<hkern u1="Ý" u2="}" k="-19" /> +<hkern u1="Ý" u2="t" k="22" /> +<hkern u1="Ý" u2="r" k="40" /> +<hkern u1="Ý" u2="f" k="22" /> +<hkern u1="Ý" u2="]" k="-18" /> +<hkern u1="Ý" u2="*" k="49" /> +<hkern u1="Ý" u2=")" k="-20" /> +<hkern u1="Ý" u2="&" k="30" /> +<hkern u1="è" u2="’" k="64" /> +<hkern u1="é" u2="’" k="64" /> +<hkern u1="ê" u2="’" k="64" /> +<hkern u1="ë" u2="’" k="64" /> +<hkern u1="ñ" u2="’" k="120" /> +<hkern u1="ò" u2="’" k="112" /> +<hkern u1="ó" u2="’" k="112" /> +<hkern u1="ô" u2="’" k="112" /> +<hkern u1="õ" u2="’" k="112" /> +<hkern u1="ö" u2="’" k="112" /> +<hkern u1="ý" u2="f" k="-13" /> +<hkern u1="ÿ" u2="f" k="-13" /> +<hkern u1="Ÿ" u2="•" k="45" /> +<hkern u1="Ÿ" u2="ø" k="64" /> +<hkern u1="Ÿ" u2="æ" k="63" /> +<hkern u1="Ÿ" u2="Æ" k="96" /> +<hkern u1="Ÿ" u2="»" k="51" /> +<hkern u1="Ÿ" u2="«" k="82" /> +<hkern u1="Ÿ" u2="}" k="-19" /> +<hkern u1="Ÿ" u2="t" k="22" /> +<hkern u1="Ÿ" u2="r" k="40" /> +<hkern u1="Ÿ" u2="f" k="22" /> +<hkern u1="Ÿ" u2="]" k="-18" /> +<hkern u1="Ÿ" u2="*" k="49" /> +<hkern u1="Ÿ" u2=")" k="-20" /> +<hkern u1="Ÿ" u2="&" k="30" /> +<hkern u1="‘" u2="w" k="-11" /> +<hkern u1="’" u2="œ" k="104" /> +<hkern u1="’" u2="ö" k="144" /> +<hkern u1="’" u2="õ" k="144" /> +<hkern u1="’" u2="ô" k="144" /> +<hkern u1="’" u2="ó" k="144" /> +<hkern u1="’" u2="ò" k="144" /> +<hkern u1="’" u2="ë" k="104" /> +<hkern u1="’" u2="ê" k="104" /> +<hkern u1="’" u2="é" k="104" /> +<hkern u1="’" u2="è" k="104" /> +<hkern u1="’" u2="ç" k="104" /> +<hkern u1="’" u2="w" k="-11" /> +<hkern u1="’" u2="s" k="232" /> +<hkern u1="’" u2="q" k="104" /> +<hkern u1="’" u2="o" k="144" /> +<hkern u1="’" u2="g" k="104" /> +<hkern u1="’" u2="e" k="104" /> +<hkern u1="’" u2="d" k="104" /> +<hkern u1="’" u2="c" k="104" /> +<hkern u1="“" u2="w" k="-11" /> +<hkern u1="”" u2="w" k="-11" /> +<hkern g1="B" g2="V" k="24" /> +<hkern g1="B" g2="Y,Yacute,Ydieresis" k="55" /> +<hkern g1="B" g2="T" k="27" /> +<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="Y,Yacute,Ydieresis" k="28" /> +<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="T" k="29" /> +<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-18" /> +<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="X" k="-17" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="V" k="22" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="Y,Yacute,Ydieresis" k="43" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="T" k="85" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="21" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="X" k="22" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="Z" k="23" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="122" /> +<hkern g1="C,Ccedilla" g2="T" k="29" /> +<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="19" /> +<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="v,y,yacute,ydieresis" k="26" /> +<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="T" k="-20" /> +<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="17" /> +<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="19" /> +<hkern g1="T" g2="z" k="60" /> +<hkern g1="T" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="208" /> +<hkern g1="T" g2="v,y,yacute,ydieresis" k="82" /> +<hkern g1="T" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="28" /> +<hkern g1="T" g2="V" k="-16" /> +<hkern g1="T" g2="m,n,p,ntilde" k="89" /> +<hkern g1="T" g2="Y,Yacute,Ydieresis" k="-16" /> +<hkern g1="T" g2="T" k="-16" /> +<hkern g1="T" g2="u,ugrave,uacute,ucircumflex,udieresis" k="65" /> +<hkern g1="T" g2="W" k="-15" /> +<hkern g1="T" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="120" /> +<hkern g1="T" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="258" /> +<hkern g1="T" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="89" /> +<hkern g1="T" g2="x" k="77" /> +<hkern g1="T" g2="s" k="76" /> +<hkern g1="T" g2="hyphen,uni00AD,endash,emdash" k="272" /> +<hkern g1="T" g2="S" k="16" /> +<hkern g1="T" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="168" /> +<hkern g1="T" g2="J" k="216" /> +<hkern g1="K" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="27" /> +<hkern g1="K" g2="v,y,yacute,ydieresis" k="40" /> +<hkern g1="K" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="31" /> +<hkern g1="K" g2="u,ugrave,uacute,ucircumflex,udieresis" k="23" /> +<hkern g1="K" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="26" /> +<hkern g1="K" g2="hyphen,uni00AD,endash,emdash" k="164" /> +<hkern g1="L" g2="v,y,yacute,ydieresis" k="123" /> +<hkern g1="L" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="64" /> +<hkern g1="L" g2="V" k="206" /> +<hkern g1="L" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="24" /> +<hkern g1="L" g2="Y,Yacute,Ydieresis" k="279" /> +<hkern g1="L" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="288" /> +<hkern g1="L" g2="T" k="205" /> +<hkern g1="L" g2="u,ugrave,uacute,ucircumflex,udieresis" k="14" /> +<hkern g1="L" g2="W" k="93" /> +<hkern g1="L" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-19" /> +<hkern g1="P" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="13" /> +<hkern g1="P" g2="v,y,yacute,ydieresis" k="-15" /> +<hkern g1="P" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="178" /> +<hkern g1="P" g2="X" k="51" /> +<hkern g1="P" g2="Z" k="36" /> +<hkern g1="P" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="404" /> +<hkern g1="P" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="13" /> +<hkern g1="P" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="11" /> +<hkern g1="P" g2="J" k="184" /> +<hkern g1="J,U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="22" /> +<hkern g1="V" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="46" /> +<hkern g1="V" g2="v,y,yacute,ydieresis" k="11" /> +<hkern g1="V" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="13" /> +<hkern g1="V" g2="u,ugrave,uacute,ucircumflex,udieresis" k="28" /> +<hkern g1="V" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="75" /> +<hkern g1="V" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="215" /> +<hkern g1="V" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="44" /> +<hkern g1="V" g2="hyphen,uni00AD,endash,emdash" k="157" /> +<hkern g1="V" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="46" /> +<hkern g1="X" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="21" /> +<hkern g1="X" g2="v,y,yacute,ydieresis" k="31" /> +<hkern g1="X" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="25" /> +<hkern g1="X" g2="V" k="-14" /> +<hkern g1="X" g2="u,ugrave,uacute,ucircumflex,udieresis" k="21" /> +<hkern g1="X" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="26" /> +<hkern g1="X" g2="hyphen,uni00AD,endash,emdash" k="156" /> +<hkern g1="Y,Yacute,Ydieresis" g2="z" k="30" /> +<hkern g1="Y,Yacute,Ydieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="65" /> +<hkern g1="Y,Yacute,Ydieresis" g2="v,y,yacute,ydieresis" k="20" /> +<hkern g1="Y,Yacute,Ydieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="29" /> +<hkern g1="Y,Yacute,Ydieresis" g2="V" k="-18" /> +<hkern g1="Y,Yacute,Ydieresis" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="96" /> +<hkern g1="Y,Yacute,Ydieresis" g2="m,n,p,ntilde" k="40" /> +<hkern g1="Y,Yacute,Ydieresis" g2="Y,Yacute,Ydieresis" k="-18" /> +<hkern g1="Y,Yacute,Ydieresis" g2="T" k="-17" /> +<hkern g1="Y,Yacute,Ydieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="39" /> +<hkern g1="Y,Yacute,Ydieresis" g2="W" k="-17" /> +<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="150" /> +<hkern g1="Y,Yacute,Ydieresis" g2="X" k="-13" /> +<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="231" /> +<hkern g1="Y,Yacute,Ydieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="65" /> +<hkern g1="Y,Yacute,Ydieresis" g2="x" k="23" /> +<hkern g1="Y,Yacute,Ydieresis" g2="s" k="58" /> +<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,uni00AD,endash,emdash" k="152" /> +<hkern g1="Y,Yacute,Ydieresis" g2="S" k="16" /> +<hkern g1="Y,Yacute,Ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="63" /> +<hkern g1="Y,Yacute,Ydieresis" g2="J" k="96" /> +<hkern g1="W" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="31" /> +<hkern g1="W" g2="T" k="-14" /> +<hkern g1="W" g2="u,ugrave,uacute,ucircumflex,udieresis" k="19" /> +<hkern g1="W" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="43" /> +<hkern g1="W" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="143" /> +<hkern g1="W" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="31" /> +<hkern g1="W" g2="hyphen,uni00AD,endash,emdash" k="60" /> +<hkern g1="W" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="33" /> +<hkern g1="Z" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="21" /> +<hkern g1="Z" g2="v,y,yacute,ydieresis" k="27" /> +<hkern g1="Z" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="26" /> +<hkern g1="Z" g2="u,ugrave,uacute,ucircumflex,udieresis" k="19" /> +<hkern g1="Z" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-13" /> +<hkern g1="Z" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="21" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="v,y,yacute,ydieresis" k="15" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="17" /> +<hkern g1="c,ccedilla" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="11" /> +<hkern g1="b,p,thorn" g2="z" k="15" /> +<hkern g1="b,p,thorn" g2="v,y,yacute,ydieresis" k="11" /> +<hkern g1="b,p,thorn" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="29" /> +<hkern g1="b,p,thorn" g2="x" k="15" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis" g2="v,y,yacute,ydieresis" k="13" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="14" /> +<hkern g1="h,m,n,ntilde" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="80" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="z" k="16" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="v,y,yacute,ydieresis" k="15" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="88" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="x" k="21" /> +<hkern g1="v,y,yacute,ydieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="15" /> +<hkern g1="v,y,yacute,ydieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-15" /> +<hkern g1="v,y,yacute,ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="167" /> +<hkern g1="v,y,yacute,ydieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="13" /> +<hkern g1="v,y,yacute,ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="15" /> +<hkern g1="r" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="36" /> +<hkern g1="r" g2="v,y,yacute,ydieresis" k="-18" /> +<hkern g1="r" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-16" /> +<hkern g1="r" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="173" /> +<hkern g1="r" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="19" /> +<hkern g1="r" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="30" /> +<hkern g1="x" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="40" /> +<hkern g1="x" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="20" /> +<hkern g1="z" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="16" /> +<hkern g1="z" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="16" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="91" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="m,n,p,ntilde" k="20" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="37" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="120" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="59" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="s" k="92" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="50" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="285" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/roboto-bolditalic-webfont.ttf b/web/static/fonts/roboto-bolditalic-webfont.ttf Binary files differnew file mode 100755 index 000000000..ff91d3097 --- /dev/null +++ b/web/static/fonts/roboto-bolditalic-webfont.ttf diff --git a/web/static/fonts/roboto-bolditalic-webfont.woff b/web/static/fonts/roboto-bolditalic-webfont.woff Binary files differnew file mode 100755 index 000000000..85d1b6eee --- /dev/null +++ b/web/static/fonts/roboto-bolditalic-webfont.woff diff --git a/web/static/fonts/roboto-bolditalic-webfont.woff2 b/web/static/fonts/roboto-bolditalic-webfont.woff2 Binary files differnew file mode 100755 index 000000000..431d90fbc --- /dev/null +++ b/web/static/fonts/roboto-bolditalic-webfont.woff2 diff --git a/web/static/fonts/roboto-italic-webfont.eot b/web/static/fonts/roboto-italic-webfont.eot Binary files differnew file mode 100755 index 000000000..ddf4991d4 --- /dev/null +++ b/web/static/fonts/roboto-italic-webfont.eot diff --git a/web/static/fonts/roboto-italic-webfont.svg b/web/static/fonts/roboto-italic-webfont.svg new file mode 100755 index 000000000..9b6ebfba1 --- /dev/null +++ b/web/static/fonts/roboto-italic-webfont.svg @@ -0,0 +1,666 @@ +<?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="robotoitalic" horiz-adv-x="1126" > +<font-face units-per-em="2048" ascent="1536" descent="-512" /> +<missing-glyph horiz-adv-x="502" /> +<glyph unicode="fi" horiz-adv-x="1110" d="M88 939l25 143l166 1l14 100q27 183 147 283q115 95 290 93q71 -2 137.5 -19.5t136.5 -41.5l-44 -158q-113 51 -224 53q-229 4 -263 -224l-13 -87h215l-25 -143h-214l-163 -939h-182l163 939h-166zM659 0l188 1082h182l-188 -1082h-182z" /> +<glyph unicode="fl" horiz-adv-x="1138" d="M116 939l25 143h166l18 127q26 167 134 260t274 91q109 -2 293 -44l96 -20l-254 -1496h-181l240 1381q-129 22 -188 22q-99 0 -159 -55.5t-75 -150.5l-18 -115h225l-25 -143h-224l-163 -939h-181l164 939h-167z" /> +<glyph horiz-adv-x="10" /> +<glyph horiz-adv-x="10" /> +<glyph unicode="
" horiz-adv-x="502" /> +<glyph horiz-adv-x="10" /> +<glyph unicode=" " horiz-adv-x="502" /> +<glyph unicode="	" horiz-adv-x="502" /> +<glyph unicode=" " horiz-adv-x="502" /> +<glyph unicode="!" horiz-adv-x="521" d="M67 90q1 47 30 77.5t77 32.5q46 2 76 -28t30 -76q0 -47 -30 -76.5t-77 -31.5t-76.5 27t-29.5 75zM141 411l169 1045h190l-195 -1045h-164z" /> +<glyph unicode=""" horiz-adv-x="645" d="M200 1041l80 503l136 -9l-23 -145l-83 -348zM462 1042l80 502l136 -9l-23 -145l-83 -348h-110z" /> +<glyph unicode="#" horiz-adv-x="1233" d="M82 410l24 137h255l128 354h-248l24 139h274l152 416h145l-153 -416h251l152 416h146l-153 -416h196l-24 -139h-222l-128 -354h216l-24 -137h-241l-149 -410h-146l150 410h-250l-150 -410h-144l149 410h-230zM505 547h250l129 354h-250z" /> +<glyph unicode="$" d="M85 429h181q-11 -131 47.5 -209t176.5 -80q127 -2 212.5 64.5t98.5 177.5q10 86 -43 150t-179.5 112.5t-201.5 109.5q-148 121 -134 317q11 164 118.5 271.5t284.5 130.5l39 219h146l-40 -222q148 -29 220.5 -149.5t57.5 -312.5h-179q8 147 -43.5 225.5t-151.5 81.5 q-113 2 -186.5 -63.5t-85.5 -176.5q-9 -86 37.5 -148t183.5 -116.5t208 -114t103.5 -136.5t25.5 -176q-13 -171 -127.5 -276t-303.5 -125l-34 -191h-145l35 193q-164 24 -248 141t-73 303z" /> +<glyph unicode="%" horiz-adv-x="1465" d="M195 1099l6 64q13 144 104.5 230.5t219.5 84.5q121 -4 192.5 -88.5t63.5 -213.5l-6 -77q-15 -134 -105.5 -219t-215.5 -81q-121 2 -194 88t-65 212zM261 184l881 1128l99 -71l-881 -1129zM330 1097q-5 -81 29.5 -128.5t98.5 -49.5q68 -2 118.5 48.5t61.5 131.5l9 78 q7 76 -26 127t-100 53q-69 2 -120 -49t-62 -132zM741 279l6 68q13 139 102 226t221 85q124 -4 195 -89.5t63 -211.5l-6 -67q-13 -141 -103.5 -228.5t-218.5 -83.5q-120 2 -193.5 87t-65.5 214zM876 277q-5 -80 28.5 -128.5t99.5 -50.5q70 -2 119.5 49t60.5 132l9 79 q7 75 -26 126t-100 53q-71 2 -121 -49t-61 -131z" /> +<glyph unicode="&" horiz-adv-x="1245" d="M71 384q15 186 222 332l114 76l-43 77q-72 132 -64 245q12 165 120 265.5t272 96.5q135 -2 223 -87.5t80 -212.5q-9 -172 -213 -315l-147 -98l249 -381q91 135 114 290h161q-27 -255 -181 -427l157 -245h-202l-73 113q-174 -136 -383 -132q-189 2 -304 114.5t-102 288.5z M255 383q-15 -108 48 -179t180 -73q134 -3 284 113l-271 424l-43 -30q-179 -124 -198 -255zM478 1121q-8 -84 49 -185l27 -47l153 103q107 80 118 185q6 64 -35 106t-109 42q-83 0 -139 -60.5t-64 -143.5z" /> +<glyph unicode="'" horiz-adv-x="356" d="M170 1057l77 479h146l-19 -118l-76 -361h-128z" /> +<glyph unicode="(" horiz-adv-x="689" d="M117 393q2 96 14 183l2 11q33 231 122.5 450t219.5 373.5t290 233.5l27 -124q-157 -117 -269.5 -305.5t-173.5 -448t-59 -511.5q0 -207 53.5 -364.5t154.5 -248.5l-45 -112q-167 116 -255.5 343t-80.5 520z" /> +<glyph unicode=")" horiz-adv-x="701" d="M-113 -356q343 258 458 829q46 230 44 443q-5 429 -208 615l47 112q112 -78 189.5 -207.5t114 -301t32.5 -355.5q-3 -97 -15 -183l-2 -11q-35 -244 -127 -461.5t-220.5 -367t-284.5 -227.5z" /> +<glyph unicode="*" horiz-adv-x="866" d="M107 1077l68 144l278 -113l51 348h150l-70 -344l303 108l19 -159l-315 -91l147 -275l-128 -88l-131 290l-222 -280l-114 98l241 272z" /> +<glyph unicode="+" horiz-adv-x="1136" d="M76 606l31 175h393l74 425h182l-74 -425h394l-31 -175h-393l-80 -460h-182l80 460h-394z" /> +<glyph unicode="," horiz-adv-x="400" d="M-113 -216q116 143 144 284l26 151h177l-21 -135q-36 -228 -222 -375z" /> +<glyph unicode="-" horiz-adv-x="558" d="M25 543l27 151h475l-27 -151h-475z" /> +<glyph unicode="." horiz-adv-x="533" d="M53 94q0 49 31 81.5t80 34.5q49 1 81 -30t31 -80t-33 -79.5t-80 -32.5t-79 27.5t-31 78.5z" /> +<glyph unicode="/" horiz-adv-x="829" d="M-113 -125l864 1581h163l-863 -1581h-164z" /> +<glyph unicode="0" d="M112 475q2 74 11 146l36 243q48 311 183 464t356 148q186 -4 277.5 -127.5t84.5 -358.5q-3 -75 -12 -147l-35 -235q-53 -329 -187 -481t-354 -147q-184 4 -276 130.5t-84 364.5zM286 402q5 -265 196 -272q133 -6 219.5 98t123.5 330l48 318q14 121 13 188 q-5 254 -197 261q-140 5 -226.5 -103.5t-120.5 -340.5l-43 -290q-14 -116 -13 -189z" /> +<glyph unicode="1" d="M249 1092l31 176l540 195h32l-248 -1463h-182l214 1228z" /> +<glyph unicode="2" d="M23 0l22 141l537 522l98 97q169 169 187 312q13 110 -43 179.5t-158 73.5q-131 4 -219 -76.5t-107 -220.5l-179 -1q13 134 82.5 237.5t183 159t246.5 52.5q181 -4 287.5 -109.5t91.5 -273.5q-17 -192 -221 -404l-92 -93l-468 -445h703l-24 -151h-927z" /> +<glyph unicode="3" d="M60 385l181 -1q-6 -112 54 -180.5t174 -72.5q128 -4 213 73t97 206q11 119 -54 185.5t-194 70.5l-139 1l24 151l120 -1q132 0 222.5 69.5t103.5 188.5q13 116 -43 182.5t-163 68.5q-114 2 -193.5 -66.5t-97.5 -184.5l-179 -1q17 180 153.5 292.5t325.5 110.5 q183 -4 287.5 -114.5t90.5 -291.5q-9 -103 -79 -188t-194 -141q99 -40 148 -126.5t41 -202.5q-16 -197 -156.5 -317t-341.5 -116q-187 4 -298 116t-103 289z" /> +<glyph unicode="4" d="M5 338l21 119l800 999h198l-167 -967h196l-27 -151h-195l-59 -338h-182l59 338h-644zM243 489h432l130 716l-29 -42z" /> +<glyph unicode="5" d="M114 384h169q7 -120 68 -186t165 -68q128 -4 215.5 91t103.5 249q14 135 -47 222.5t-179 91.5q-73 2 -129.5 -22t-112.5 -69l-148 40l185 723h726l-27 -171h-570l-112 -398q110 65 238 63q181 -2 278 -136.5t79 -342.5q-19 -224 -159 -360t-349 -132q-174 2 -281 112 t-113 293z" /> +<glyph unicode="6" d="M120 407q-8 105 25 284q69 373 272.5 570t517.5 197h20l-16 -157h-35q-200 -4 -342 -124t-220 -354q136 136 318 132q115 -2 197 -63.5t120.5 -170t26.5 -239.5q-20 -221 -158.5 -364.5t-340.5 -137.5q-162 4 -266 119t-119 308zM299 450q0 -82 25 -159t74 -117t115 -41 q121 -5 207.5 90t103.5 250q10 90 -11 165t-69.5 118.5t-122.5 45.5q-97 2 -182 -56t-131 -148l-7 -67z" /> +<glyph unicode="7" d="M157 0l787 1304h-760l24 152h956l-18 -114l-791 -1342h-198z" /> +<glyph unicode="8" d="M80 385q11 125 88 218.5t210 151.5q-78 54 -115.5 136t-29.5 176q14 185 145 299t322 110q174 -4 276 -113t88 -278q-9 -109 -77.5 -196.5t-186.5 -144.5q94 -54 139.5 -144.5t37.5 -197.5q-15 -193 -158 -309.5t-345 -112.5q-189 4 -299 117t-95 288zM262 388 q-12 -116 48.5 -186t171.5 -72q126 -4 214 73.5t102 202.5q12 113 -48 188.5t-174 79.5q-124 2 -212 -78.5t-102 -207.5zM412 1064q-11 -104 42.5 -171t150.5 -69q109 -2 186.5 70.5t90.5 187.5q11 101 -41.5 170t-149.5 73q-112 2 -189 -71.5t-90 -189.5z" /> +<glyph unicode="9" d="M160 965q13 144 81 264t177.5 185.5t241.5 61.5q174 -4 273 -126t107 -327q3 -107 -25 -266q-66 -374 -260.5 -563.5t-499.5 -195.5h-45l16 156h37q215 4 352.5 120.5t207.5 365.5q-74 -78 -157 -116.5t-165 -36.5q-115 2 -196.5 65t-119 173t-25.5 240zM339 975 q-7 -61 2 -124t36 -111q54 -97 162 -100q91 -4 175 51.5t138 149.5l8 73l3 81q-4 155 -57.5 239t-153.5 88q-124 5 -211.5 -95.5t-101.5 -251.5z" /> +<glyph unicode=":" horiz-adv-x="491" d="M43 94q0 49 31 81.5t80 34.5q49 1 81 -30t31 -80t-33 -79.5t-80 -32.5t-79 27.5t-31 78.5zM196 977q0 49 31 81.5t80 34.5q49 1 81 -30t31 -80t-33 -79.5t-80 -32.5t-79 27.5t-31 78.5z" /> +<glyph unicode=";" horiz-adv-x="430" d="M-101 -216q116 143 144 284l26 151h177l-21 -135q-36 -228 -222 -375zM173 977q0 49 31 81.5t80 34.5q49 1 81 -30t31 -80t-33 -79.5t-80 -32.5t-79 27.5t-31 78.5z" /> +<glyph unicode="<" horiz-adv-x="1020" d="M65 579l26 146l861 378l-36 -205l-653 -258l565 -253l-33 -187z" /> +<glyph unicode="=" horiz-adv-x="1100" d="M112 399l28 160h811l-29 -160h-810zM184 814l28 161h811l-29 -161h-810z" /> +<glyph unicode=">" horiz-adv-x="1048" d="M58 191l36 201l687 262l-598 259l33 182l764 -379l-26 -145z" /> +<glyph unicode="?" horiz-adv-x="948" d="M165 1115q19 165 141.5 264.5t299.5 97.5q168 -4 260.5 -106t78.5 -267q-17 -182 -204 -350l-122 -104q-98 -89 -121 -240l-177 -1q13 115 61 203t156 184l81 71q125 111 141 233q12 94 -31 153t-134 63q-102 2 -167.5 -54.5t-82.5 -145.5zM250 90q1 47 30 77.5t77 32.5 q46 1 76.5 -28.5t29.5 -76.5q0 -46 -30 -76t-77 -31q-47 -2 -76.5 27t-29.5 75z" /> +<glyph unicode="@" horiz-adv-x="1794" d="M70 246q-2 217 77.5 442.5t221 397t322 260t380.5 85.5q194 -3 333.5 -87t213 -245t73.5 -365q0 -225 -65.5 -401t-176 -266.5t-250.5 -86.5q-89 2 -143.5 46.5t-67.5 121.5q-136 -172 -279 -169q-116 2 -172 93t-44 247q10 161 86 328.5t186 256t240 86.5 q139 -3 272 -105l-133 -558q-10 -66 -10 -93q-5 -135 92 -138q147 -6 238 165t102 441q7 180 -46 317t-168.5 207t-284.5 73q-221 4 -410 -123t-311.5 -370t-134.5 -522q-8 -181 47 -323t167 -214.5t274 -73.5q169 -4 339 78l27 -117q-139 -87 -368 -87q-191 1 -332 84.5 t-218 244t-77 370.5zM649 294q-5 -171 112 -174q107 -5 200 144l32 53l1 11l133 506q-52 28 -107 29q-139 5 -235.5 -135t-130.5 -377z" /> +<glyph unicode="A" horiz-adv-x="1306" d="M-81 0l791 1456h165l288 -1456h-185l-69 380h-590l-199 -380h-201zM402 538h479l-121 679z" /> +<glyph unicode="B" horiz-adv-x="1247" d="M59 0l253 1456l427 -1q223 0 334 -100q99 -89 99 -240q0 -19 -2 -39q-18 -209 -263 -315q99 -38 147 -130q41 -78 41 -169q0 -17 -2 -34q-15 -197 -158 -312.5t-370 -115.5h-506zM274 157l297 -1q136 0 228 73t107 197q3 24 3 46q0 86 -44 138q-55 66 -173 70l-327 1z M392 835l271 -1q127 0 214.5 65t102.5 179q3 20 3 39q-1 77 -45 121q-54 54 -180 59l-286 1z" /> +<glyph unicode="C" horiz-adv-x="1303" d="M120 494q-1 22 -1 43q0 59 8 117l17 120q46 328 230 518q179 185 434 184h13q205 -4 325 -132.5t127 -356.5h-187q-13 306 -240 330l-33 2h-12q-181 -1 -303 -141q-126 -146 -164 -397l-22 -151l-6 -88v-28q0 -164 66 -264q72 -108 212 -113h18q140 0 234 73 q100 78 151 251l182 3q-43 -226 -205 -358q-155 -126 -369 -126h-20q-135 3 -236 66.5t-157 183t-62 264.5z" /> +<glyph unicode="D" horiz-adv-x="1313" d="M59 0l253 1456l378 -1q178 0 306 -89q129 -90 185 -246q40 -111 40 -240q0 -53 -7 -110l-10 -73q-44 -318 -247 -507.5t-510 -189.5h-388zM274 157l185 -1q212 0 359.5 132t191.5 362q27 140 27 248q0 34 -3 65q-15 155 -103 242.5t-236 91.5l-223 1z" /> +<glyph unicode="E" horiz-adv-x="1139" d="M59 0l253 1456h889l-28 -158h-701l-81 -468h612l-27 -157h-612l-90 -516h712l-28 -157h-899z" /> +<glyph unicode="F" horiz-adv-x="1108" d="M59 0l253 1456h876l-28 -158h-688l-86 -498h593l-28 -157h-592l-112 -643h-188z" /> +<glyph unicode="G" horiz-adv-x="1363" d="M128 502q-1 19 -1 40q0 112 31 282q36 203 127 351t227 226q132 75 300 75h13q203 -4 323.5 -120.5t137.5 -327.5h-186q-11 138 -83 212t-199 78h-18q-176 0 -296 -135q-127 -142 -167 -415l-19 -140l-3 -76q0 -197 81 -304.5t227 -109.5h18q198 0 317 104l60 327h-328 l28 156h512l-83 -533q-73 -103 -213 -158q-134 -54 -306 -54h-12q-143 3 -250 67t-168 183.5t-70 271.5z" /> +<glyph unicode="H" horiz-adv-x="1426" d="M59 0l253 1456h188l-109 -626h710l109 626h189l-253 -1456h-188l117 673h-711l-117 -673h-188z" /> +<glyph unicode="I" horiz-adv-x="550" d="M73 0l253 1456h187l-253 -1456h-187z" /> +<glyph unicode="J" horiz-adv-x="1106" d="M22 402h187q-2 -20 -2 -38q0 -94 47 -154q56 -71 168 -73h11q116 0 197 77q85 81 104 210l176 1032h188l-175 -1031q-29 -206 -167 -329q-134 -118 -331 -118h-13q-192 4 -297 116q-94 101 -94 269q0 19 1 39z" /> +<glyph unicode="K" horiz-adv-x="1255" d="M59 0l253 1456h188l-124 -709l742 709h242l-677 -652l453 -804h-209l-383 675l-213 -191l-84 -484h-188z" /> +<glyph unicode="L" horiz-adv-x="1079" d="M59 0l253 1456h189l-226 -1299h670l-28 -157h-858z" /> +<glyph unicode="M" horiz-adv-x="1744" d="M59 0l253 1456h237l255 -1186l668 1186h247l-253 -1456h-187l100 576l119 586l-660 -1162h-144l-260 1185l-90 -628l-97 -557h-188z" /> +<glyph unicode="N" horiz-adv-x="1426" d="M59 0l253 1456h182l521 -1135l197 1135h187l-253 -1456h-182l-520 1130l-196 -1130h-189z" /> +<glyph unicode="O" horiz-adv-x="1376" d="M125 515q-1 19 -1 39q0 110 28 260q33 178 114 321t197 229q152 112 345 112h13q213 -4 336 -147.5t132 -388.5q1 -14 0 -30q1 -97 -21 -237q-26 -162 -91.5 -301t-166.5 -233q-171 -159 -403 -159h-14q-139 3 -241.5 67t-161.5 188.5t-65 279.5zM311 564q0 -14 -1 -28 q0 -176 71 -279q76 -111 221 -115h13q181 0 301 136q124 142 165 398q20 126 23 218v29q0 177 -69 277q-75 108 -223 112h-13q-127 0 -227 -72q-106 -76 -173 -227.5t-85 -383.5z" /> +<glyph unicode="P" horiz-adv-x="1263" d="M59 0l253 1456l486 -1q225 1 347 -119q107 -105 107 -271q0 -23 -2 -47q-18 -209 -166.5 -329t-391.5 -120l-346 1l-99 -570h-188zM373 727l324 -1q153 0 251 77t115 214q3 24 3 46q0 91 -54 153q-67 76 -195 81l-345 1z" /> +<glyph unicode="Q" horiz-adv-x="1376" d="M117 516q-1 20 -1 40q0 113 28 260q32 175 111 315.5t191 226.5q155 118 353 118h13q141 -3 245 -68t161 -188.5t63 -279.5q1 -19 1 -39q0 -64 -8 -128l-12 -85q-62 -431 -355 -612l217 -209l-139 -113l-254 243q-74 -16 -148 -16q-137 1 -241 66.5t-161.5 189 t-63.5 279.5zM303 564v-26q0 -100 27 -189q31 -100 98.5 -152t165.5 -55h17q173 0 293 133q125 140 167 395q21 127 24 224q1 17 1 33q0 176 -70 274q-76 107 -222 111h-13q-126 0 -227 -72q-105 -76 -172.5 -227.5t-85.5 -383.5z" /> +<glyph unicode="R" horiz-adv-x="1233" d="M58 0l253 1456l438 -1q229 -1 349 -116q104 -99 104 -260q0 -26 -3 -53q-11 -137 -99.5 -241t-235.5 -157l226 -615l-1 -13h-200l-204 589h-336l-102 -589h-189zM376 746l276 -1q144 0 243 76.5t116 204.5q3 23 3 45q0 93 -53 151q-65 71 -198 75l-291 1z" /> +<glyph unicode="S" horiz-adv-x="1189" d="M46 423l188 -1q-1 -13 -1 -26q-1 -112 71 -180q80 -76 225 -79h9q139 0 230 63q94 65 109 175q2 17 2 33q0 135 -168 201l-173 63l-58 25q-274 125 -274 345q0 14 1 29q10 121 83 214q74 93 194 143q114 48 241 48h15q132 -3 236 -59q103 -57 157 -157q49 -90 48 -201 v-25l-189 1q1 17 1 33q0 110 -61 174q-70 74 -200 76h-8q-132 0 -221 -64q-92 -66 -106 -180q-2 -13 -2 -26q0 -130 185 -200l149 -53l75 -32q262 -121 262 -351q0 -17 -1 -35q-11 -123 -83 -212.5t-196 -138.5q-116 -46 -249 -46h-16q-137 1 -250.5 58.5t-172.5 157.5 q-53 89 -53 200q0 14 1 27z" /> +<glyph unicode="T" horiz-adv-x="1195" d="M168 1298l28 158h1093l-28 -158h-453l-225 -1298h-187l225 1298h-453z" /> +<glyph unicode="U" horiz-adv-x="1298" d="M120 470l168 986h185l-167 -987q-3 -30 -3 -58q0 -113 55 -183q69 -88 209 -91h19q140 1 238 83q104 88 131 248l168 988h189l-168 -985q-34 -227 -196 -361q-157 -131 -378 -131h-13q-143 3 -249 65q-105 60 -155 172q-37 83 -37 184q0 34 4 70z" /> +<glyph unicode="V" horiz-adv-x="1274" d="M164 1456h197l213 -1199l591 1199h212l-752 -1456h-166z" /> +<glyph unicode="W" horiz-adv-x="1772" d="M195 1456h183l68 -1007l-4 -176l68 172l435 1011h159l115 -1024l10 -166l63 201l372 989h193l-570 -1456h-171l-126 1069l-4 100l-42 -116l-464 -1053h-171z" /> +<glyph unicode="X" horiz-adv-x="1255" d="M-44 0l579 743l-330 713h208l253 -557l425 557h232l-567 -731l339 -725h-211l-258 567l-438 -567h-232z" /> +<glyph unicode="Y" horiz-adv-x="1203" d="M168 1456h204l239 -730l495 730h224l-653 -923l-93 -533h-187l96 554z" /> +<glyph unicode="Z" horiz-adv-x="1199" d="M-21 0l27 154l966 1144h-756l28 158h986l-26 -151l-970 -1148h802l-28 -157h-1029z" /> +<glyph unicode="[" horiz-adv-x="537" d="M-1 -312l308 1976h368l-25 -152h-185l-261 -1672h186l-24 -152h-367z" /> +<glyph unicode="\" horiz-adv-x="825" d="M191 1456h164l315 -1581h-163z" /> +<glyph unicode="]" horiz-adv-x="537" d="M-134 -312l24 152h187l261 1672h-188l25 152h368l-309 -1976h-368z" /> +<glyph unicode="^" horiz-adv-x="840" d="M79 729l417 727h124l163 -727h-158l-101 480l-268 -480h-177z" /> +<glyph unicode="_" horiz-adv-x="906" d="M-127 -151l27 151h890l-27 -151h-890z" /> +<glyph unicode="`" horiz-adv-x="624" d="M207 1534h205l143 -294h-143z" /> +<glyph unicode="a" horiz-adv-x="1091" d="M59 292q10 172 150.5 268.5t369.5 96.5l189 -1l12 86q2 17 2 33q0 75 -40 121q-48 56 -142 58h-7q-87 0 -157 -46q-72 -48 -88 -125l-182 -1q9 95 74 168.5t167 113.5q97 39 201 39h10q169 -5 263 -103q81 -85 81 -217q0 -21 -2 -44l-88 -536l-5 -77v-14q0 -48 12 -95 l-2 -17h-184q-7 29 -7 57l3 57q-145 -134 -307 -134h-9q-143 2 -233 90q-82 81 -82 200q0 11 1 22zM244 319q-2 -13 -2 -25q0 -60 38 -102q44 -50 129 -52h8q83 0 157 42q78 44 133 120l39 223l-137 1q-171 0 -262 -54t-103 -153z" /> +<glyph unicode="b" horiz-adv-x="1125" d="M31 0l267 1536h181l-109 -574q126 140 306 140h10q156 -4 243 -115t92 -306v-16q0 -56 -6 -108l-2 -21q-20 -166 -91 -299t-172 -197q-96 -61 -213 -61h-11q-196 4 -291 147l-37 -126h-167zM266 305q60 -165 225 -169h12q99 0 173 63q80 67 121 187.5t44 254.5v16 q0 135 -49 207q-52 78 -159 82h-8q-164 0 -278 -170z" /> +<glyph unicode="c" horiz-adv-x="1050" d="M84 517l5 50q19 156 91 279q72 124 188 192q110 65 241 64h15q170 -4 272 -114t102 -279l-169 1q-2 106 -59 171.5t-154 69.5h-8q-136 0 -226 -105q-94 -108 -117 -302l-3 -26q-4 -38 -3 -78q0 -27 1 -54q7 -117 66 -185t162 -71h6q93 0 169 56q78 58 102 154l171 1 q-15 -102 -81.5 -186t-167.5 -131q-95 -44 -194 -44h-13q-135 2 -228 70q-94 70 -138 192q-33 93 -33 203q0 35 3 72z" /> +<glyph unicode="d" horiz-adv-x="1130" d="M78 402q-1 16 -1 34q0 47 6 107q20 165 91 298t175 199q99 63 218 63h11q181 -4 278 -132l104 565h181l-266 -1536h-165l19 116q-124 -136 -306 -136h-10q-150 4 -239 117.5t-96 304.5zM257 439v-15q0 -132 51 -207q54 -79 158 -81h13q149 0 266 158l86 500 q-60 148 -218 152h-9q-102 0 -180 -64q-82 -68 -124 -189.5t-43 -253.5z" /> +<glyph unicode="e" horiz-adv-x="1062" d="M87 500l5 43q17 161 95.5 294t191.5 201q108 65 233 64h11q167 -4 262 -111t104 -290q1 -20 1 -39q0 -46 -5 -91l-11 -83h-707q-4 -31 -3 -61q0 -108 52 -189q66 -103 198 -107h8q155 0 288 144l104 -88q-68 -97 -176 -153q-104 -54 -230 -54h-9q-202 4 -316 149 q-98 125 -98 311q0 29 2 60zM286 640l526 -1l4 16q4 28 4 54q0 91 -44 155q-56 84 -162 87h-8q-108 0 -188 -76q-84 -79 -132 -235z" /> +<glyph unicode="f" horiz-adv-x="700" d="M116 939l25 143h166l18 128q26 163 126 255q103 94 261 94h7q51 0 129 -17l-22 -151q-48 10 -97 12q-94 0 -152.5 -58.5t-72.5 -155.5l-16 -107h224l-25 -143h-224l-163 -939h-181l164 939h-167z" /> +<glyph unicode="g" horiz-adv-x="1125" d="M4 -238l103 111q98 -145 259 -149h13q120 0 205 72q90 76 119 216l20 96q-128 -128 -299 -128h-10q-101 3 -175.5 54.5t-115.5 149t-45 217.5v25q0 51 6 117q24 177 95.5 307.5t174.5 193.5q97 59 213 59h11q188 -4 284 -142l36 121h166l-180 -1059q-29 -207 -168 -331 q-133 -119 -324 -119h-19q-110 2 -210.5 52t-158.5 137zM259 440v-15q0 -132 49 -207q53 -78 159 -82h8q157 0 271 159l85 497q-60 148 -217 154h-9q-141 0 -233 -120q-94 -124 -111 -335z" /> +<glyph unicode="h" horiz-adv-x="1104" d="M31 0l267 1536h181l-110 -586q138 151 318 151h9q152 -3 226 -105q58 -81 58 -214q0 -35 -4 -73l-118 -709h-181l119 712q3 27 3 51q0 21 -2 40q-17 140 -165 143h-7q-161 0 -279 -174l-134 -772h-181z" /> +<glyph unicode="i" horiz-adv-x="492" d="M47 0l188 1082h180l-188 -1082h-180zM300 1444q29 31 76 33h6q42 1 70 -27q30 -30 31 -78q-1 -47 -30.5 -77t-76.5 -32h-6q-43 0 -71 27q-29 28 -29 73q0 49 30 81z" /> +<glyph unicode="j" horiz-adv-x="484" d="M-236 -420l16 148q37 -9 83 -11q129 0 155 154l207 1211h181l-205 -1211q-20 -153 -103 -233q-80 -78 -209 -78h-6q-53 2 -119 20zM256 1366q1 47 29.5 78t76.5 33h6q42 0 70 -29q31 -30 31 -76q-1 -47 -31 -77t-77 -32h-6q-41 0 -69 28q-30 30 -30 75z" /> +<glyph unicode="k" horiz-adv-x="1017" d="M32 0l267 1536h181l-160 -918l111 112l384 352h235l-497 -461l342 -621h-198l-278 499l-142 -127l-64 -372h-181z" /> +<glyph unicode="l" horiz-adv-x="492" d="M47 0l266 1536h181l-267 -1536h-180z" /> +<glyph unicode="m" horiz-adv-x="1751" d="M30 0l188 1082l170 1l-23 -121q132 140 319 140h10q103 -2 174.5 -47t98.5 -127q149 174 350 174h9q162 -4 239 -109q61 -83 61 -212q0 -33 -4 -70l-119 -711h-180l118 713q3 26 3 49.5t-3 45.5q-19 136 -178 139h-6q-95 1 -173 -61q-80 -64 -104 -167l-123 -719h-182 l120 712q3 24 3 46q0 78 -36 125q-46 60 -145 62h-8q-163 0 -261 -154l-137 -791h-181z" /> +<glyph unicode="n" horiz-adv-x="1106" d="M31 0l188 1082l171 1l-26 -137q142 156 323 156h9q153 -4 226 -106q58 -81 58 -214q0 -35 -4 -73l-118 -709h-181l119 712q3 27 3 51q0 21 -2 40q-17 140 -165 143h-5q-160 0 -281 -174l-134 -772h-181z" /> +<glyph unicode="o" horiz-adv-x="1143" d="M82 523q15 168 91 302q75 133 195 207q113 70 249 70h15q136 -2 233 -74t143 -198q35 -96 36 -205q0 -35 -4 -72l-2 -22q-19 -158 -94 -285.5t-194 -198.5q-113 -67 -246 -67h-15q-135 2 -232.5 74t-142.5 196q-35 96 -35 207q0 33 3 66zM264 391q10 -118 70.5 -188 t161.5 -73h11q84 0 155 44q76 48 128 144t67 213q5 57 5 102q0 29 -2 53q-12 121 -73 191t-162 74h-7q-135 0 -231 -110q-98 -113 -121 -296l-2 -23q-4 -32 -4 -64.5t4 -66.5z" /> +<glyph unicode="p" horiz-adv-x="1125" d="M-41 -416l260 1498l164 1l-20 -121q130 140 311 140h10q156 -4 243 -115t92 -306v-18q0 -55 -5 -106l-3 -21q-20 -165 -89 -297t-171 -197q-98 -63 -215 -63h-11q-188 4 -288 127l-97 -522h-181zM260 278q61 -144 219 -148h7q131 0 222 106q95 108 125 321l5 84 q0 146 -55.5 223.5t-160.5 81.5h-8q-152 0 -263 -149z" /> +<glyph unicode="q" horiz-adv-x="1139" d="M79 400q-1 18 -1 37q0 107 30 225q35 137 104.5 239.5t164.5 153.5q90 48 195 48h13q183 -4 279 -131l33 110h167l-260 -1498h-180l98 516q-126 -120 -291 -120h-11q-152 2 -243 115t-98 305zM260 438v-15q0 -134 52 -211q56 -80 160 -82h8q148 0 263 146l94 532 q-66 139 -216 143h-7q-133 0 -224 -105q-94 -108 -125 -324z" /> +<glyph unicode="r" horiz-adv-x="682" d="M31 0l188 1082l175 1l-27 -126q112 147 263 147h8q33 0 86 -15l-20 -172l-85 9q-174 0 -274 -157l-133 -769h-181z" /> +<glyph unicode="s" horiz-adv-x="1034" d="M50 334l181 -1q0 -91 58 -146t159 -55h9q94 0 162 42q72 44 82 119q1 11 1 21q0 95 -124 137l-188 55q-230 79 -230 260v12q6 142 130 234q121 90 284 90h7q165 -2 267 -96q99 -90 98 -232v-11l-180 1v6q0 77 -51 126q-53 51 -141 53h-7q-89 0 -155 -46q-63 -45 -73 -118 q-1 -9 -1 -17q0 -81 116 -120l91 -25q186 -48 264 -125q72 -72 72 -175v-16q-6 -101 -66 -176t-160 -115q-93 -37 -197 -36h-16q-172 2 -284 100q-108 95 -108 243v11z" /> +<glyph unicode="t" horiz-adv-x="659" d="M67 939l25 143h191l46 262h180l-46 -262h197l-25 -143h-196l-113 -673q-3 -26 -1 -48q7 -78 85 -78q33 0 88 10l-14 -151q-65 -18 -132 -18q-108 1 -162 79q-44 63 -44 163q0 22 2 46l110 670h-191z" /> +<glyph unicode="u" horiz-adv-x="1105" d="M110 383l116 699h181l-117 -702q-3 -28 -3 -54q0 -16 1 -32q5 -72 43 -113t106 -44h14q184 0 286 157l136 788h181l-188 -1082h-171l23 107q-123 -127 -311 -127h-12q-155 4 -229 111q-59 85 -60 220q0 34 4 72z" /> +<glyph unicode="v" horiz-adv-x="972" d="M110 1082h178l136 -829l390 829h191l-545 -1082h-138z" /> +<glyph unicode="w" horiz-adv-x="1503" d="M128 1082h173l66 -806l384 806h146l105 -826l345 826h187l-493 -1082h-147l-112 818l-390 -818h-147z" /> +<glyph unicode="x" horiz-adv-x="995" d="M-60 0l447 556l-256 526h198l167 -394l294 394h222l-434 -544l264 -538h-197l-179 404l-305 -404h-221z" /> +<glyph unicode="y" horiz-adv-x="950" d="M-91 -422l16 150l47 -5h15q76 0 133 39q63 42 111 137l65 124l-187 1059h189l121 -809l385 809h200l-642 -1262q-132 -260 -339 -260h-5q-37 1 -109 18z" /> +<glyph unicode="z" horiz-adv-x="995" d="M-19 0l25 145l709 784h-565l28 153h796l-24 -140l-716 -791h608l-27 -151h-834z" /> +<glyph unicode="{" horiz-adv-x="682" d="M56 541l16 145q217 10 249 245l31 228q59 339 410 440l27 -117q-212 -70 -257 -337l-34 -240q-33 -200 -211 -294q103 -77 113 -219q3 -44 -1 -87l-31 -243l-2 -71l2 -31q17 -159 151 -212l-41 -113q-158 53 -232 172.5t-55 291.5l28 207q6 49 1 91q-17 136 -164 144z " /> +<glyph unicode="|" horiz-adv-x="494" d="M33 -270l270 1726h146l-270 -1726h-146z" /> +<glyph unicode="}" horiz-adv-x="682" d="M-116 -251q217 71 260 344l31 226q31 208 226 301q-113 69 -126 216q-4 42 1 87l31 246l2 71q-3 184 -152 242l45 113q156 -53 228 -172.5t53 -290.5l-27 -208q-6 -50 -1 -91q16 -135 163 -143l-15 -145q-218 -10 -250 -248l-28 -207q-51 -354 -413 -458z" /> +<glyph unicode="~" horiz-adv-x="1361" d="M105 436q16 162 113.5 266.5t238.5 100.5q119 -3 227 -96l89 -83q68 -61 131 -61q75 0 127.5 55t70.5 157l143 3q-14 -163 -111.5 -271.5t-237.5 -106.5q-126 3 -249 115l-60 58q-72 67 -138 67q-136 3 -180 -164l-8 -37z" /> +<glyph unicode="¡" horiz-adv-x="494" d="M-15 -360l194 1044h165l-169 -1044h-190zM203 993q1 48 30.5 77.5t76.5 31.5q46 1 76.5 -28t29.5 -75q0 -47 -29 -78t-77 -33t-77.5 29t-29.5 76z" /> +<glyph unicode="¢" horiz-adv-x="1096" d="M94 350q-12 111 10 244.5t82.5 238.5t153.5 171.5t212 87.5l45 226h181l-45 -225q131 -32 204.5 -133.5t73.5 -250.5h-170q0 106 -56 172t-153 70q-152 6 -251 -122t-113 -356l-1 -42q-3 -142 55 -220.5t167 -80.5q97 -2 175.5 55.5t105.5 154.5l172 1 q-21 -134 -125.5 -228.5t-264.5 -124.5l-46 -233h-181l47 236q-119 30 -191.5 124t-86.5 235z" /> +<glyph unicode="£" horiz-adv-x="1164" d="M-13 0l29 156l67 -2q113 41 142 262l27 206h-160l27 157h156l31 253q25 204 164 327t331 117q168 -4 264 -108.5t88 -281.5l-187 1q7 106 -42 167t-150 65q-110 4 -187 -78t-93 -211l-32 -251h310l-27 -157h-305l-28 -212q-20 -153 -108 -256l715 3l-29 -157h-1003z" /> +<glyph unicode="¤" horiz-adv-x="1426" d="M18 118l159 134q-30 85 -40 172q-19 150 25.5 294.5t148.5 261.5l-117 157l141 127l114 -148q179 122 361 118q188 -2 325 -121l175 152l111 -146l-173 -147q32 -87 44 -176q18 -144 -22.5 -285t-139.5 -261l115 -150l-143 -127l-106 137q-187 -134 -377 -130 q-199 4 -335 130l-157 -136zM304 599q-15 -114 22 -218t116.5 -165.5t187.5 -65.5q117 -4 224.5 59t180 174t88.5 234q14 115 -22.5 218t-115.5 163.5t-187 64.5q-118 4 -226 -59t-180 -173t-88 -232z" /> +<glyph unicode="¥" horiz-adv-x="1213" d="M83 322l22 124h366l29 165h-367l22 125h310l-281 720h203l235 -673l469 673h225l-530 -720h297l-22 -125h-372l-29 -165h373l-22 -124h-372l-57 -322h-188l56 322h-367z" /> +<glyph unicode="¦" horiz-adv-x="486" d="M-9 -270l138 791h182l-138 -791h-182zM159 698l132 758h182l-132 -758h-182z" /> +<glyph unicode="§" horiz-adv-x="1228" d="M-24 -63l181 1q-6 -85 25.5 -148t96.5 -97.5t153 -35.5q83 -2 157 25t120 76.5t55 118.5q12 77 -41.5 132.5t-192 100t-218.5 82.5q-242 115 -222 351q14 184 224 287q-99 106 -86 272q8 108 75 194.5t186 133.5q123 48 264 46q207 -4 319.5 -118.5t100.5 -312.5h-180 q8 126 -58 201t-190 79q-135 2 -226.5 -56.5t-106.5 -163.5q-11 -81 37 -135.5t183.5 -96.5t206.5 -73q269 -116 248 -361q-18 -191 -229 -287q103 -103 90 -272q-14 -174 -158 -276t-366 -100q-217 4 -338 119t-110 314zM273 545q-14 -100 61 -161q50 -41 179 -81.5 t194 -65.5q174 52 196 199q11 73 -36.5 129t-166.5 98l-84 28l-154 52q-167 -47 -189 -198z" /> +<glyph unicode="¨" horiz-adv-x="840" d="M219 1369q1 46 30 76.5t76 32.5q47 1 77.5 -28.5t29.5 -76.5q0 -46 -30 -76t-77 -32q-47 -1 -76.5 28t-29.5 76zM636 1367q1 46 30 77t76 33q48 1 78 -28.5t29 -77.5q0 -47 -30 -76.5t-77 -31.5q-46 -1 -76.5 28t-29.5 76z" /> +<glyph unicode="©" horiz-adv-x="1571" d="M119 722q22 199 136 377t289 279.5t369 97.5q178 -2 320 -100t213 -271.5t50 -369.5q-23 -203 -137 -380t-286 -277t-360 -99h-10q-183 4 -323 102t-211 271.5t-50 369.5zM230 570q22 -207 152 -338.5t320 -133.5q187 -4 353.5 107.5t258 302t71.5 380.5 q-22 205 -150 334t-321 134q-189 4 -355.5 -108t-257.5 -300t-71 -378zM453 670l10 98q20 189 123.5 298.5t260.5 107.5q142 -4 219.5 -85.5t71.5 -229.5l-143 1q6 85 -28.5 134t-124.5 51q-95 2 -158.5 -70.5t-78 -200t-13.5 -157.5l2 -35q7 -77 46.5 -122t107.5 -48 q170 -7 205 184l140 1q-14 -151 -107 -234.5t-242 -79.5q-145 4 -225 112t-66 275z" /> +<glyph unicode="ª" horiz-adv-x="898" d="M199 911q5 115 98 177t260 62l111 -1l9 54q3 27 1 51q-7 79 -92 82q-56 1 -99.5 -23.5t-58.5 -80.5l-156 11q11 109 99 172.5t219 61.5q123 -4 189.5 -78.5t56.5 -198.5l-54 -347l-4 -58q-1 -45 7 -91l-155 -1l-4 74q-92 -86 -206 -86q-105 0 -165 61.5t-56 158.5z M361 915q-5 -43 22 -66t77 -23q75 0 166 68l28 143h-93q-88 -3 -140 -35t-60 -87z" /> +<glyph unicode="«" horiz-adv-x="942" d="M89 538l2 20l347 389h152l-329 -409l178 -387h-125zM409 538l2 20l347 389h152l-329 -409l178 -387h-125z" /> +<glyph unicode="¬" horiz-adv-x="1110" d="M129 639l29 161h807l-74 -425h-182l47 264h-627z" /> +<glyph unicode="­" horiz-adv-x="558" d="M25 543l27 151h475l-27 -151h-475z" /> +<glyph unicode="®" horiz-adv-x="1572" d="M118 722q22 199 136 377t289 279.5t369 97.5q175 -2 316.5 -97.5t215 -269t51.5 -374.5q-23 -204 -138 -381.5t-288.5 -278.5t-365.5 -97q-179 4 -319 99.5t-213.5 270.5t-52.5 374zM229 569q12 -131 76.5 -241t167 -169t228.5 -62q187 -4 352 106t258 300t74 385 q-14 133 -78.5 241t-166 166t-227.5 61q-185 4 -350 -103t-259.5 -297.5t-74.5 -386.5zM463 316l133 849l257 -1q139 -5 213.5 -69.5t67.5 -178.5q-3 -58 -37 -106t-115 -94q77 -44 86 -141l-1 -61q-11 -87 -9 -118l3 -64l-2 -17h-138q-6 37 -4 73l7 72l6 54q7 66 -17 100.5 t-92 38.5l-167 1l-53 -338h-138zM673 782l143 -1q72 2 122.5 36.5t59.5 92.5q10 63 -22.5 94t-121.5 34h-140z" /> +<glyph unicode="¯" horiz-adv-x="920" d="M227 1313l23 143h694l-23 -143h-694z" /> +<glyph unicode="°" horiz-adv-x="752" d="M236 1207q4 111 84.5 191.5t183.5 78.5q97 -2 160.5 -76.5t61.5 -175.5q-4 -112 -83.5 -190t-181.5 -76q-98 2 -163.5 74.5t-61.5 173.5zM357 1209q-6 -49 24.5 -85.5t79.5 -36.5q54 0 96.5 40t48.5 96q6 48 -22 87.5t-80 39.5q-54 0 -97.5 -42.5t-49.5 -98.5z" /> +<glyph unicode="±" horiz-adv-x="1071" d="M37 0l24 152h811l-24 -152h-811zM109 703l25 151h373l65 413h163l-65 -413h353l-24 -151h-352l-65 -414h-164l65 414h-374z" /> +<glyph unicode="²" horiz-adv-x="738" d="M92 667l20 116l355 298q99 84 111 158q7 48 -19.5 75t-74.5 28q-66 1 -106 -36.5t-54 -99.5l-154 -1q11 117 98 191.5t215 72.5q120 -2 189.5 -65t64.5 -165q-8 -123 -159 -248l-64 -51l-196 -145h379l-23 -128h-582z" /> +<glyph unicode="³" horiz-adv-x="738" d="M110 889h151q0 -50 33 -77.5t91 -27.5q64 0 109.5 32t52.5 85q13 102 -128 107l-87 1l11 116l78 -1q66 2 112.5 32.5t53.5 84.5q6 49 -25 73.5t-81 24.5q-112 0 -141 -93h-156q11 101 90.5 161.5t204.5 60.5q126 -3 197 -62t66 -156q-7 -119 -159 -185q118 -43 114 -172 q-5 -111 -95.5 -175.5t-223.5 -62.5q-119 2 -193.5 64t-74.5 170z" /> +<glyph unicode="´" horiz-adv-x="633" d="M213 1240l234 294h230l-306 -294h-158z" /> +<glyph unicode="µ" horiz-adv-x="1135" d="M-27 -416l260 1498h181l-103 -624q-10 -84 -7 -142q10 -183 156 -186q183 -6 280 151l139 801h182l-188 -1082h-162l19 115q-111 -138 -273 -136q-135 0 -215 75l-89 -470h-180z" /> +<glyph unicode="¶" horiz-adv-x="981" d="M143 980q14 142 88 251t194 167.5t264 58.5l277 -1l-252 -1456h-182l91 520l-64 1q-211 3 -323.5 130.5t-92.5 328.5z" /> +<glyph unicode="·" horiz-adv-x="528" d="M165 726q1 49 31.5 81.5t80.5 34.5q48 2 80 -29t32 -81q-1 -49 -33 -80.5t-81 -33.5q-45 -2 -77.5 27.5t-32.5 80.5z" /> +<glyph unicode="¸" horiz-adv-x="502" d="M-56 -437l4 108q166 6 182 107q12 71 -92 83l-46 6l46 133h129l-21 -55q129 -29 125 -163q-3 -102 -90 -159t-237 -60z" /> +<glyph unicode="¹" horiz-adv-x="738" d="M223 1215l24 135l356 113h21l-131 -789h-154l104 597z" /> +<glyph unicode="º" horiz-adv-x="913" d="M205 1043l7 70q17 168 122.5 268t254.5 96q141 -4 221.5 -102.5t67.5 -251.5l-7 -71q-17 -166 -121.5 -266.5t-254.5 -96.5q-142 4 -222.5 104t-67.5 250zM365 1041q-10 -96 26 -153.5t113 -59.5q79 -3 135 54t71 161l9 81q8 102 -29 156.5t-109 56.5q-82 2 -138 -56 t-70 -158z" /> +<glyph unicode="»" horiz-adv-x="941" d="M15 152l328 408l-177 389h125l225 -387l-2 -21l-347 -389h-152zM353 152l328 408l-177 389h125l225 -387l-2 -21l-347 -389h-152z" /> +<glyph unicode="¼" horiz-adv-x="1465" d="M185 1205l24 135l356 113h21l-131 -789h-154l104 597zM256 192l881 1128l98 -72l-881 -1128zM688 169l13 112l447 508h164l-85 -490h104l-23 -130h-103l-30 -169h-154l30 169h-363zM865 299h208l58 291l-22 -30z" /> +<glyph unicode="½" horiz-adv-x="1551" d="M180 1205l24 135l356 113h21l-131 -789h-154l104 597zM213 192l881 1128l98 -72l-881 -1128zM751 0l20 116l355 298q99 84 111 158q7 48 -19.5 75t-74.5 28q-66 1 -106 -36.5t-54 -99.5l-154 -1q11 117 98 191.5t215 72.5q120 -2 189.5 -65t64.5 -165q-8 -123 -159 -248 l-64 -51l-196 -145h379l-23 -128h-582z" /> +<glyph unicode="¾" horiz-adv-x="1555" d="M158 890h151q0 -50 33 -77.5t91 -27.5q64 0 109.5 32t52.5 85q13 102 -128 107l-87 1l11 116l78 -1q66 2 112.5 32.5t53.5 84.5q6 49 -25 73.5t-81 24.5q-112 0 -141 -93h-156q11 101 90.5 161.5t204.5 60.5q126 -3 197 -62t66 -156q-7 -119 -159 -185q118 -43 114 -172 q-5 -111 -95.5 -175.5t-223.5 -62.5q-119 2 -193.5 64t-74.5 170zM379 192l881 1128l98 -72l-881 -1128zM777 169l13 112l447 508h164l-85 -490h104l-23 -130h-103l-30 -169h-154l30 169h-363zM954 299h208l58 291l-22 -30z" /> +<glyph unicode="¿" horiz-adv-x="950" d="M-30 -14q15 183 206 358l116 102q91 85 116 234l176 1q-12 -109 -53.5 -189.5t-146.5 -180.5l-97 -91q-119 -115 -132 -230q-13 -98 34 -156t140 -60q98 -2 164.5 54.5t84.5 150.5l180 1q-19 -167 -141 -268.5t-299 -97.5q-173 4 -268 105t-80 267zM441 994q1 47 31 76.5 t76 31.5q46 1 76.5 -27.5t29.5 -74.5q0 -47 -29.5 -78t-76.5 -33q-48 -2 -77.5 29t-29.5 76z" /> +<glyph unicode="À" horiz-adv-x="1306" d="M-81 0l791 1456h165l288 -1456h-185l-69 380h-590l-199 -380h-201zM402 538h479l-121 679zM568 1844h205l143 -294h-143z" /> +<glyph unicode="Á" horiz-adv-x="1306" d="M-81 0l791 1456h165l288 -1456h-185l-69 380h-590l-199 -380h-201zM402 538h479l-121 679zM712 1550l234 294h230l-306 -294h-158z" /> +<glyph unicode="Â" horiz-adv-x="1306" d="M-81 0l791 1456h165l288 -1456h-185l-69 380h-590l-199 -380h-201zM402 538h479l-121 679zM528 1560v16l278 270h106l205 -272v-14l-147 2l-113 169l-176 -168z" /> +<glyph unicode="Ã" horiz-adv-x="1306" d="M-81 0l791 1456h165l288 -1456h-185l-69 380h-590l-199 -380h-201zM402 538h479l-121 679zM478 1563q12 110 74.5 180t155.5 68q27 0 50.5 -8.5t76.5 -41t77.5 -41.5t51.5 -8q86 0 118 113l117 -10q-12 -111 -73 -178t-154 -67q-37 0 -67.5 15.5t-60.5 34.5t-61 34 t-67 14q-85 -3 -116 -112z" /> +<glyph unicode="Ä" horiz-adv-x="1306" d="M-81 0l791 1456h165l288 -1456h-185l-69 380h-590l-199 -380h-201zM402 538h479l-121 679zM526 1679q1 46 30 76.5t76 32.5q47 1 77.5 -28.5t29.5 -76.5q0 -46 -30 -76t-77 -32q-47 -1 -76.5 28t-29.5 76zM943 1677q1 46 30 77t76 33q48 1 78 -28.5t29 -77.5 q0 -47 -30 -76.5t-77 -31.5q-46 -1 -76.5 28t-29.5 76z" /> +<glyph unicode="Å" horiz-adv-x="1306" d="M-81 0l791 1456h165l288 -1456h-185l-69 380h-590l-199 -380h-201zM402 538h479l-121 679zM641 1721q2 91 66.5 154t153.5 63q82 0 139.5 -58t57.5 -143q-2 -89 -66.5 -151t-153.5 -62q-84 0 -141.5 57t-55.5 140zM737 1723q-4 -46 23 -77.5t70 -31.5q46 0 85.5 35.5 t45.5 85.5q6 46 -22 79t-70 33q-46 0 -86 -36.5t-46 -87.5z" /> +<glyph unicode="Æ" horiz-adv-x="1867" d="M-124 0l1106 1456h930l-27 -152h-670l-63 -471h574l-27 -151h-567l-71 -531h685l-27 -151h-857l47 353h-540l-261 -353h-232zM496 527h436l96 722z" /> +<glyph unicode="Ç" horiz-adv-x="1303" d="M120 494q-4 82 7 160l17 120q47 328 230.5 517.5t446.5 184.5q205 -4 325 -132.5t127 -356.5h-187q-13 306 -240 330l-33 2q-189 5 -315.5 -140.5t-163.5 -397.5l-22 -151l-6 -88q-6 -184 65.5 -292.5t212.5 -112.5q152 -5 251.5 73t151.5 251l182 3 q-42 -226 -204.5 -358t-389.5 -126q-135 3 -236 66.5t-157 183t-62 264.5zM394 -446l4 108q166 6 182 107q12 71 -92 83l-46 6l46 133h129l-21 -55q129 -29 125 -163q-3 -102 -90 -159t-237 -60z" /> +<glyph unicode="È" horiz-adv-x="1139" d="M59 0l253 1456h889l-28 -158h-701l-81 -468h612l-27 -157h-612l-90 -516h712l-28 -157h-899zM518 1856h205l143 -294h-143z" /> +<glyph unicode="É" horiz-adv-x="1139" d="M59 0l253 1456h889l-28 -158h-701l-81 -468h612l-27 -157h-612l-90 -516h712l-28 -157h-899zM662 1562l234 294h230l-306 -294h-158z" /> +<glyph unicode="Ê" horiz-adv-x="1139" d="M59 0l253 1456h889l-28 -158h-701l-81 -468h612l-27 -157h-612l-90 -516h712l-28 -157h-899zM478 1572v16l278 270h106l205 -272v-14l-147 2l-113 169l-176 -168z" /> +<glyph unicode="Ë" horiz-adv-x="1139" d="M59 0l253 1456h889l-28 -158h-701l-81 -468h612l-27 -157h-612l-90 -516h712l-28 -157h-899zM476 1691q1 46 30 76.5t76 32.5q47 1 77.5 -28.5t29.5 -76.5q0 -46 -30 -76t-77 -32q-47 -1 -76.5 28t-29.5 76zM893 1689q1 46 30 77t76 33q48 1 78 -28.5t29 -77.5 q0 -47 -30 -76.5t-77 -31.5q-46 -1 -76.5 28t-29.5 76z" /> +<glyph unicode="Ì" horiz-adv-x="550" d="M73 0l253 1456h187l-253 -1456h-187zM189 1856h205l143 -294h-143z" /> +<glyph unicode="Í" horiz-adv-x="550" d="M73 0l253 1456h187l-253 -1456h-187zM332 1562l234 294h230l-306 -294h-158z" /> +<glyph unicode="Î" horiz-adv-x="550" d="M73 0l253 1456h187l-253 -1456h-187zM149 1572v16l278 270h106l205 -272v-14l-147 2l-113 169l-176 -168z" /> +<glyph unicode="Ï" horiz-adv-x="550" d="M73 0l253 1456h187l-253 -1456h-187zM147 1691q1 46 30 76.5t76 32.5q47 1 77.5 -28.5t29.5 -76.5q0 -46 -30 -76t-77 -32q-47 -1 -76.5 28t-29.5 76zM564 1689q1 46 30 77t76 33q48 1 78 -28.5t29 -77.5q0 -47 -30 -76.5t-77 -31.5q-46 -1 -76.5 28t-29.5 76z" /> +<glyph unicode="Ð" horiz-adv-x="1343" d="M47 666l27 151h157l111 639l378 -1q178 0 306.5 -89t184.5 -245.5t33 -350.5l-10 -73q-44 -318 -247 -507.5t-510 -189.5h-388l115 666h-157zM304 157l185 -1q212 0 359.5 132t191.5 362q35 184 24 313q-15 155 -103 242.5t-236 91.5l-223 1l-84 -481h274l-27 -151h-273z " /> +<glyph unicode="Ñ" horiz-adv-x="1426" d="M59 0l253 1456h182l521 -1135l197 1135h187l-253 -1456h-182l-520 1130l-196 -1130h-189zM530 1563q12 110 74.5 180t155.5 68q27 0 50.5 -8.5t76.5 -41t77.5 -41.5t51.5 -8q86 0 118 113l117 -10q-12 -111 -73 -178t-154 -67q-37 0 -67.5 15.5t-60.5 34.5t-61 34t-67 14 q-85 -3 -116 -112z" /> +<glyph unicode="Ò" horiz-adv-x="1376" d="M125 515q-6 121 27 299t114 321t197 229q157 116 358 112q213 -4 336 -147.5t132 -388.5q4 -105 -21.5 -267t-91 -301t-166.5 -233q-176 -164 -417 -159q-139 3 -241.5 67t-161.5 188.5t-65 279.5zM311 564q-6 -196 70 -307t221 -115q189 -5 313.5 136.5t165.5 397.5 q20 126 23 218q6 197 -69 305.5t-223 112.5q-134 4 -239.5 -72t-173 -227.5t-85.5 -383.5zM601 1846h205l143 -294h-143z" /> +<glyph unicode="Ó" horiz-adv-x="1376" d="M125 515q-6 121 27 299t114 321t197 229q157 116 358 112q213 -4 336 -147.5t132 -388.5q4 -105 -21.5 -267t-91 -301t-166.5 -233q-176 -164 -417 -159q-139 3 -241.5 67t-161.5 188.5t-65 279.5zM311 564q-6 -196 70 -307t221 -115q189 -5 313.5 136.5t165.5 397.5 q20 126 23 218q6 197 -69 305.5t-223 112.5q-134 4 -239.5 -72t-173 -227.5t-85.5 -383.5zM745 1552l234 294h230l-306 -294h-158z" /> +<glyph unicode="Ô" horiz-adv-x="1376" d="M125 515q-6 121 27 299t114 321t197 229q157 116 358 112q213 -4 336 -147.5t132 -388.5q4 -105 -21.5 -267t-91 -301t-166.5 -233q-176 -164 -417 -159q-139 3 -241.5 67t-161.5 188.5t-65 279.5zM311 564q-6 -196 70 -307t221 -115q189 -5 313.5 136.5t165.5 397.5 q20 126 23 218q6 197 -69 305.5t-223 112.5q-134 4 -239.5 -72t-173 -227.5t-85.5 -383.5zM561 1562v16l278 270h106l205 -272v-14l-147 2l-113 169l-176 -168z" /> +<glyph unicode="Õ" horiz-adv-x="1376" d="M125 515q-6 121 27 299t114 321t197 229q157 116 358 112q213 -4 336 -147.5t132 -388.5q4 -105 -21.5 -267t-91 -301t-166.5 -233q-176 -164 -417 -159q-139 3 -241.5 67t-161.5 188.5t-65 279.5zM311 564q-6 -196 70 -307t221 -115q189 -5 313.5 136.5t165.5 397.5 q20 126 23 218q6 197 -69 305.5t-223 112.5q-134 4 -239.5 -72t-173 -227.5t-85.5 -383.5zM511 1565q12 110 74.5 180t155.5 68q27 0 50.5 -8.5t76.5 -41t77.5 -41.5t51.5 -8q86 0 118 113l117 -10q-12 -111 -73 -178t-154 -67q-37 0 -67.5 15.5t-60.5 34.5t-61 34t-67 14 q-85 -3 -116 -112z" /> +<glyph unicode="Ö" horiz-adv-x="1376" d="M125 515q-6 121 27 299t114 321t197 229q157 116 358 112q213 -4 336 -147.5t132 -388.5q4 -105 -21.5 -267t-91 -301t-166.5 -233q-176 -164 -417 -159q-139 3 -241.5 67t-161.5 188.5t-65 279.5zM311 564q-6 -196 70 -307t221 -115q189 -5 313.5 136.5t165.5 397.5 q20 126 23 218q6 197 -69 305.5t-223 112.5q-134 4 -239.5 -72t-173 -227.5t-85.5 -383.5zM559 1681q1 46 30 76.5t76 32.5q47 1 77.5 -28.5t29.5 -76.5q0 -46 -30 -76t-77 -32q-47 -1 -76.5 28t-29.5 76zM976 1679q1 46 30 77t76 33q48 1 78 -28.5t29 -77.5 q0 -47 -30 -76.5t-77 -31.5q-46 -1 -76.5 28t-29.5 76z" /> +<glyph unicode="×" horiz-adv-x="1069" d="M40 338l379 335l-261 336l128 114l262 -334l377 334l101 -131l-376 -336l262 -336l-128 -114l-263 336l-379 -336z" /> +<glyph unicode="Ø" horiz-adv-x="1376" d="M32 -92l189 232q-106 171 -101 401q1 97 25.5 247t84 279.5t148.5 222t202 141t240 45.5q206 -4 335 -126l131 165h150l-208 -256q49 -116 59 -238q14 -169 -29 -391t-156 -381.5t-272 -225.5q-112 -47 -240 -44q-166 4 -283 84l-124 -155h-151zM302 487q2 -108 33 -191 l710 908q-77 104 -233 109q-182 5 -308 -133t-170 -382q-34 -192 -32 -311zM411 203q74 -58 188 -62q191 -5 317.5 142t166.5 417q22 147 26 233q4 78 -7 156z" /> +<glyph unicode="Ù" horiz-adv-x="1298" d="M120 470l168 986h185l-167 -987q-17 -153 52 -240.5t209 -91.5q152 -6 256.5 82.5t131.5 248.5l168 988h189l-168 -985q-34 -227 -196 -361.5t-391 -130.5q-143 3 -248.5 64.5t-155.5 173t-33 253.5zM563 1844h205l143 -294h-143z" /> +<glyph unicode="Ú" horiz-adv-x="1298" d="M120 470l168 986h185l-167 -987q-17 -153 52 -240.5t209 -91.5q152 -6 256.5 82.5t131.5 248.5l168 988h189l-168 -985q-34 -227 -196 -361.5t-391 -130.5q-143 3 -248.5 64.5t-155.5 173t-33 253.5zM707 1550l234 294h230l-306 -294h-158z" /> +<glyph unicode="Û" horiz-adv-x="1298" d="M120 470l168 986h185l-167 -987q-17 -153 52 -240.5t209 -91.5q152 -6 256.5 82.5t131.5 248.5l168 988h189l-168 -985q-34 -227 -196 -361.5t-391 -130.5q-143 3 -248.5 64.5t-155.5 173t-33 253.5zM523 1560v16l278 270h106l205 -272v-14l-147 2l-113 169l-176 -168z " /> +<glyph unicode="Ü" horiz-adv-x="1298" d="M120 470l168 986h185l-167 -987q-17 -153 52 -240.5t209 -91.5q152 -6 256.5 82.5t131.5 248.5l168 988h189l-168 -985q-34 -227 -196 -361.5t-391 -130.5q-143 3 -248.5 64.5t-155.5 173t-33 253.5zM521 1679q1 46 30 76.5t76 32.5q47 1 77.5 -28.5t29.5 -76.5 q0 -46 -30 -76t-77 -32q-47 -1 -76.5 28t-29.5 76zM938 1677q1 46 30 77t76 33q48 1 78 -28.5t29 -77.5q0 -47 -30 -76.5t-77 -31.5q-46 -1 -76.5 28t-29.5 76z" /> +<glyph unicode="Ý" horiz-adv-x="1203" d="M168 1456h204l239 -730l495 730h224l-653 -923l-93 -533h-187l96 554zM658 1550l234 294h230l-306 -294h-158z" /> +<glyph unicode="Þ" horiz-adv-x="1184" d="M56 0l253 1456h182l-51 -293l238 -1q208 -1 326 -114.5t103 -301.5q-11 -130 -81.5 -228.5t-189.5 -152t-264 -53.5l-279 1l-55 -313h-182zM319 465l257 -1q139 0 236 76.5t114 203.5q14 120 -50.5 191t-182.5 75l-279 1z" /> +<glyph unicode="ß" horiz-adv-x="1191" d="M30 0l190 1111q18 134 77 237t152 156t214 51q159 -4 246 -93t74 -237q-9 -95 -90 -217t-93 -198q-9 -55 18 -109t100 -128t102 -130.5t26 -116.5q-10 -164 -126 -257.5t-289 -89.5q-178 2 -292 75l59 153q106 -75 219 -77q101 0 170.5 49.5t80.5 135.5q7 57 -20.5 110.5 t-101 128.5t-104 134.5t-24.5 122.5q5 59 33 107.5t60.5 94t61 93t36.5 105.5q10 82 -28 136t-119 58q-105 3 -173 -72.5t-89 -220.5l-189 -1112h-181z" /> +<glyph unicode="à" horiz-adv-x="1091" d="M59 292q10 172 150.5 268.5t369.5 96.5l189 -1l12 86q10 97 -37.5 153.5t-142.5 58.5q-93 2 -164.5 -45.5t-87.5 -125.5l-182 -1q9 95 74 168.5t167 114t211 38.5q169 -4 263 -102.5t79 -261.5l-88 -536l-5 -77q-2 -55 12 -109l-2 -17h-184q-7 29 -7 57l3 57 q-149 -138 -316 -134q-143 2 -232.5 90.5t-81.5 221.5zM244 319q-9 -76 35.5 -126.5t129.5 -52.5q87 -2 164.5 41.5t133.5 120.5l39 223l-137 1q-171 0 -262 -54t-103 -153zM426 1534h205l143 -294h-143z" /> +<glyph unicode="á" horiz-adv-x="1091" d="M59 292q10 172 150.5 268.5t369.5 96.5l189 -1l12 86q10 97 -37.5 153.5t-142.5 58.5q-93 2 -164.5 -45.5t-87.5 -125.5l-182 -1q9 95 74 168.5t167 114t211 38.5q169 -4 263 -102.5t79 -261.5l-88 -536l-5 -77q-2 -55 12 -109l-2 -17h-184q-7 29 -7 57l3 57 q-149 -138 -316 -134q-143 2 -232.5 90.5t-81.5 221.5zM244 319q-9 -76 35.5 -126.5t129.5 -52.5q87 -2 164.5 41.5t133.5 120.5l39 223l-137 1q-171 0 -262 -54t-103 -153zM570 1240l234 294h230l-306 -294h-158z" /> +<glyph unicode="â" horiz-adv-x="1091" d="M59 292q10 172 150.5 268.5t369.5 96.5l189 -1l12 86q10 97 -37.5 153.5t-142.5 58.5q-93 2 -164.5 -45.5t-87.5 -125.5l-182 -1q9 95 74 168.5t167 114t211 38.5q169 -4 263 -102.5t79 -261.5l-88 -536l-5 -77q-2 -55 12 -109l-2 -17h-184q-7 29 -7 57l3 57 q-149 -138 -316 -134q-143 2 -232.5 90.5t-81.5 221.5zM244 319q-9 -76 35.5 -126.5t129.5 -52.5q87 -2 164.5 41.5t133.5 120.5l39 223l-137 1q-171 0 -262 -54t-103 -153zM386 1250v16l278 270h106l205 -272v-14l-147 2l-113 169l-176 -168z" /> +<glyph unicode="ã" horiz-adv-x="1091" d="M59 292q10 172 150.5 268.5t369.5 96.5l189 -1l12 86q10 97 -37.5 153.5t-142.5 58.5q-93 2 -164.5 -45.5t-87.5 -125.5l-182 -1q9 95 74 168.5t167 114t211 38.5q169 -4 263 -102.5t79 -261.5l-88 -536l-5 -77q-2 -55 12 -109l-2 -17h-184q-7 29 -7 57l3 57 q-149 -138 -316 -134q-143 2 -232.5 90.5t-81.5 221.5zM244 319q-9 -76 35.5 -126.5t129.5 -52.5q87 -2 164.5 41.5t133.5 120.5l39 223l-137 1q-171 0 -262 -54t-103 -153zM336 1253q12 110 74.5 180t155.5 68q27 0 50.5 -8.5t76.5 -41t77.5 -41.5t51.5 -8q86 0 118 113 l117 -10q-12 -111 -73 -178t-154 -67q-37 0 -67.5 15.5t-60.5 34.5t-61 34t-67 14q-85 -3 -116 -112z" /> +<glyph unicode="ä" horiz-adv-x="1091" d="M59 292q10 172 150.5 268.5t369.5 96.5l189 -1l12 86q10 97 -37.5 153.5t-142.5 58.5q-93 2 -164.5 -45.5t-87.5 -125.5l-182 -1q9 95 74 168.5t167 114t211 38.5q169 -4 263 -102.5t79 -261.5l-88 -536l-5 -77q-2 -55 12 -109l-2 -17h-184q-7 29 -7 57l3 57 q-149 -138 -316 -134q-143 2 -232.5 90.5t-81.5 221.5zM244 319q-9 -76 35.5 -126.5t129.5 -52.5q87 -2 164.5 41.5t133.5 120.5l39 223l-137 1q-171 0 -262 -54t-103 -153zM384 1369q1 46 30 76.5t76 32.5q47 1 77.5 -28.5t29.5 -76.5q0 -46 -30 -76t-77 -32 q-47 -1 -76.5 28t-29.5 76zM801 1367q1 46 30 77t76 33q48 1 78 -28.5t29 -77.5q0 -47 -30 -76.5t-77 -31.5q-46 -1 -76.5 28t-29.5 76z" /> +<glyph unicode="å" horiz-adv-x="1091" d="M59 292q10 172 150.5 268.5t369.5 96.5l189 -1l12 86q10 97 -37.5 153.5t-142.5 58.5q-93 2 -164.5 -45.5t-87.5 -125.5l-182 -1q9 95 74 168.5t167 114t211 38.5q169 -4 263 -102.5t79 -261.5l-88 -536l-5 -77q-2 -55 12 -109l-2 -17h-184q-7 29 -7 57l3 57 q-149 -138 -316 -134q-143 2 -232.5 90.5t-81.5 221.5zM244 319q-9 -76 35.5 -126.5t129.5 -52.5q87 -2 164.5 41.5t133.5 120.5l39 223l-137 1q-171 0 -262 -54t-103 -153zM499 1411q2 91 66.5 154t153.5 63q82 0 139.5 -58t57.5 -143q-2 -89 -66.5 -151t-153.5 -62 q-84 0 -141.5 57t-55.5 140zM595 1413q-4 -46 23 -77.5t70 -31.5q46 0 85.5 35.5t45.5 85.5q6 46 -22 79t-70 33q-46 0 -86 -36.5t-46 -87.5z" /> +<glyph unicode="æ" horiz-adv-x="1687" d="M29 296q10 160 137 250t344 90l226 -1l12 86q12 104 -31 164.5t-133 64.5q-104 2 -176 -51.5t-87 -139.5l-179 19q16 151 142 239t312 86q109 -2 190.5 -45.5t115.5 -120.5q162 169 356 165q127 -2 214 -65t124 -173.5t20 -248.5l-18 -118h-702q-9 -68 0 -132 q13 -107 77.5 -169.5t168.5 -63.5q90 -2 168.5 28t152.5 77l53 -137q-138 -120 -380 -120q-121 2 -213.5 48.5t-143.5 131.5q-169 -184 -445 -180q-146 2 -230.5 88.5t-74.5 227.5zM212 292q-9 -74 36 -117.5t127 -45.5q70 -2 149.5 34.5t145.5 93.5l43 238l-203 1 q-120 0 -203 -56.5t-95 -147.5zM915 640h522l6 32q9 55 2 105q-11 80 -62 126t-135 49q-110 3 -195 -75.5t-138 -236.5z" /> +<glyph unicode="ç" horiz-adv-x="1050" d="M84 517l5 50q19 156 91 279t188 191.5t256 64.5q170 -4 272 -114t102 -279l-169 1q-2 106 -59 171.5t-154 69.5q-141 3 -234.5 -105t-116.5 -302l-3 -26q-6 -64 -2 -132q7 -117 66 -185t162 -71q97 -2 175 56.5t102 153.5l171 1q-15 -102 -81.5 -186t-167.5 -131 t-207 -44q-135 2 -228.5 70.5t-137.5 191t-30 275.5zM262 -446l4 108q166 6 182 107q12 71 -92 83l-46 6l46 133h129l-21 -55q129 -29 125 -163q-3 -102 -90 -159t-237 -60z" /> +<glyph unicode="è" horiz-adv-x="1062" d="M87 500l5 43q17 161 95.5 294t191.5 200.5t244 64.5q167 -4 262 -111t104 -290q3 -65 -4 -130l-11 -83h-707q-18 -147 48.5 -250t198.5 -107q160 -4 296 144l104 -88q-68 -98 -175.5 -153.5t-239.5 -53.5q-202 4 -316 149t-96 371zM286 640l526 -1l4 16 q16 126 -40.5 209.5t-161.5 86.5q-112 3 -195.5 -76t-132.5 -235zM399 1534h205l143 -294h-143z" /> +<glyph unicode="é" horiz-adv-x="1062" d="M87 500l5 43q17 161 95.5 294t191.5 200.5t244 64.5q167 -4 262 -111t104 -290q3 -65 -4 -130l-11 -83h-707q-18 -147 48.5 -250t198.5 -107q160 -4 296 144l104 -88q-68 -98 -175.5 -153.5t-239.5 -53.5q-202 4 -316 149t-96 371zM286 640l526 -1l4 16 q16 126 -40.5 209.5t-161.5 86.5q-112 3 -195.5 -76t-132.5 -235zM543 1240l234 294h230l-306 -294h-158z" /> +<glyph unicode="ê" horiz-adv-x="1062" d="M87 500l5 43q17 161 95.5 294t191.5 200.5t244 64.5q167 -4 262 -111t104 -290q3 -65 -4 -130l-11 -83h-707q-18 -147 48.5 -250t198.5 -107q160 -4 296 144l104 -88q-68 -98 -175.5 -153.5t-239.5 -53.5q-202 4 -316 149t-96 371zM286 640l526 -1l4 16 q16 126 -40.5 209.5t-161.5 86.5q-112 3 -195.5 -76t-132.5 -235zM359 1250v16l278 270h106l205 -272v-14l-147 2l-113 169l-176 -168z" /> +<glyph unicode="ë" horiz-adv-x="1062" d="M87 500l5 43q17 161 95.5 294t191.5 200.5t244 64.5q167 -4 262 -111t104 -290q3 -65 -4 -130l-11 -83h-707q-18 -147 48.5 -250t198.5 -107q160 -4 296 144l104 -88q-68 -98 -175.5 -153.5t-239.5 -53.5q-202 4 -316 149t-96 371zM286 640l526 -1l4 16 q16 126 -40.5 209.5t-161.5 86.5q-112 3 -195.5 -76t-132.5 -235zM357 1369q1 46 30 76.5t76 32.5q47 1 77.5 -28.5t29.5 -76.5q0 -46 -30 -76t-77 -32q-47 -1 -76.5 28t-29.5 76zM774 1367q1 46 30 77t76 33q48 1 78 -28.5t29 -77.5q0 -47 -30 -76.5t-77 -31.5 q-46 -1 -76.5 28t-29.5 76z" /> +<glyph unicode="ì" horiz-adv-x="501" d="M46 0l188 1082h181l-188 -1082h-181zM107 1533h205l143 -294h-143z" /> +<glyph unicode="í" horiz-adv-x="501" d="M46 0l188 1082h181l-188 -1082h-181zM250 1239l234 294h230l-306 -294h-158z" /> +<glyph unicode="î" horiz-adv-x="501" d="M46 0l188 1082h181l-188 -1082h-181zM67 1249v16l278 270h106l205 -272v-14l-147 2l-113 169l-176 -168z" /> +<glyph unicode="ï" horiz-adv-x="501" d="M46 0l188 1082h181l-188 -1082h-181zM65 1368q1 46 30 76.5t76 32.5q47 1 77.5 -28.5t29.5 -76.5q0 -46 -30 -76t-77 -32q-47 -1 -76.5 28t-29.5 76zM482 1366q1 46 30 77t76 33q48 1 78 -28.5t29 -77.5q0 -47 -30 -76.5t-77 -31.5q-46 -1 -76.5 28t-29.5 76z" /> +<glyph unicode="ð" horiz-adv-x="1174" d="M111 459q14 144 83 265.5t180 189.5t243 64q154 -4 265 -115q-4 182 -110 335l-239 -148l-59 108l207 126q-102 86 -280 138l70 157q220 -56 370 -192l209 130l58 -109l-182 -109q177 -295 127 -666l-13 -91q-24 -167 -102.5 -300t-191 -199.5t-242.5 -63.5 q-188 4 -300 141.5t-93 338.5zM292 458q-15 -139 49 -232.5t176 -96.5q127 -5 218 104.5t122 301.5l20 160q-56 126 -226 131q-144 4 -242 -97.5t-117 -270.5z" /> +<glyph unicode="ñ" horiz-adv-x="1106" d="M31 0l188 1082l171 1l-26 -137q146 160 332 156q153 -4 226 -106t54 -287l-118 -709h-181l119 712q6 49 1 91q-17 140 -165 143q-163 3 -286 -174l-134 -772h-181zM327 1253q12 110 74.5 180t155.5 68q27 0 50.5 -8.5t76.5 -41t77.5 -41.5t51.5 -8q86 0 118 113l117 -10 q-12 -111 -73 -178t-154 -67q-37 0 -67.5 15.5t-60.5 34.5t-61 34t-67 14q-85 -3 -116 -112z" /> +<glyph unicode="ò" horiz-adv-x="1143" d="M82 523q15 168 91 302t195.5 207.5t263.5 69.5q136 -2 233 -74t143.5 -198.5t31.5 -276.5l-2 -22q-19 -158 -94 -285.5t-194 -198.5t-261 -67q-135 2 -232.5 74t-142.5 196t-32 273zM264 391q10 -118 70.5 -188t161.5 -73q90 -3 166 44.5t128 143.5t67 213q8 92 3 155 q-12 121 -73 191t-162 74q-140 3 -238 -110t-121 -296l-2 -23q-7 -63 0 -131zM408 1534h205l143 -294h-143z" /> +<glyph unicode="ó" horiz-adv-x="1143" d="M82 523q15 168 91 302t195.5 207.5t263.5 69.5q136 -2 233 -74t143.5 -198.5t31.5 -276.5l-2 -22q-19 -158 -94 -285.5t-194 -198.5t-261 -67q-135 2 -232.5 74t-142.5 196t-32 273zM264 391q10 -118 70.5 -188t161.5 -73q90 -3 166 44.5t128 143.5t67 213q8 92 3 155 q-12 121 -73 191t-162 74q-140 3 -238 -110t-121 -296l-2 -23q-7 -63 0 -131zM552 1240l234 294h230l-306 -294h-158z" /> +<glyph unicode="ô" horiz-adv-x="1143" d="M82 523q15 168 91 302t195.5 207.5t263.5 69.5q136 -2 233 -74t143.5 -198.5t31.5 -276.5l-2 -22q-19 -158 -94 -285.5t-194 -198.5t-261 -67q-135 2 -232.5 74t-142.5 196t-32 273zM264 391q10 -118 70.5 -188t161.5 -73q90 -3 166 44.5t128 143.5t67 213q8 92 3 155 q-12 121 -73 191t-162 74q-140 3 -238 -110t-121 -296l-2 -23q-7 -63 0 -131zM368 1250v16l278 270h106l205 -272v-14l-147 2l-113 169l-176 -168z" /> +<glyph unicode="õ" horiz-adv-x="1143" d="M82 523q15 168 91 302t195.5 207.5t263.5 69.5q136 -2 233 -74t143.5 -198.5t31.5 -276.5l-2 -22q-19 -158 -94 -285.5t-194 -198.5t-261 -67q-135 2 -232.5 74t-142.5 196t-32 273zM264 391q10 -118 70.5 -188t161.5 -73q90 -3 166 44.5t128 143.5t67 213q8 92 3 155 q-12 121 -73 191t-162 74q-140 3 -238 -110t-121 -296l-2 -23q-7 -63 0 -131zM318 1253q12 110 74.5 180t155.5 68q27 0 50.5 -8.5t76.5 -41t77.5 -41.5t51.5 -8q86 0 118 113l117 -10q-12 -111 -73 -178t-154 -67q-37 0 -67.5 15.5t-60.5 34.5t-61 34t-67 14 q-85 -3 -116 -112z" /> +<glyph unicode="ö" horiz-adv-x="1143" d="M82 523q15 168 91 302t195.5 207.5t263.5 69.5q136 -2 233 -74t143.5 -198.5t31.5 -276.5l-2 -22q-19 -158 -94 -285.5t-194 -198.5t-261 -67q-135 2 -232.5 74t-142.5 196t-32 273zM264 391q10 -118 70.5 -188t161.5 -73q90 -3 166 44.5t128 143.5t67 213q8 92 3 155 q-12 121 -73 191t-162 74q-140 3 -238 -110t-121 -296l-2 -23q-7 -63 0 -131zM366 1369q1 46 30 76.5t76 32.5q47 1 77.5 -28.5t29.5 -76.5q0 -46 -30 -76t-77 -32q-47 -1 -76.5 28t-29.5 76zM783 1367q1 46 30 77t76 33q48 1 78 -28.5t29 -77.5q0 -47 -30 -76.5t-77 -31.5 q-46 -1 -76.5 28t-29.5 76z" /> +<glyph unicode="÷" horiz-adv-x="1144" d="M68 600l33 184h969l-32 -184h-970zM392 278q1 49 31.5 81.5t80.5 34.5q48 2 80 -29t32 -81q-1 -49 -33 -80t-81 -33t-79.5 28.5t-30.5 78.5zM534 1095q0 49 30.5 81.5t80.5 34.5q48 2 80 -29t32 -81q-1 -49 -32.5 -80t-80.5 -33t-80 28t-30 79z" /> +<glyph unicode="ø" horiz-adv-x="1135" d="M57 -133l141 205q-118 124 -125 329q-2 61 4 121l2 16q36 263 191 416.5t368 149.5q103 -2 194 -45l102 149l132 -1l-144 -207q110 -130 117 -328q2 -55 -6 -141q-19 -156 -98.5 -287.5t-199.5 -199.5t-262 -66q-89 2 -182 37l-102 -149zM249 447q-10 -132 41 -223 l459 698q-55 29 -119 31q-157 4 -261.5 -133.5t-119.5 -372.5zM373 152q50 -23 107 -25q140 -3 240.5 107t131.5 297q13 95 11 170q-3 74 -34 143z" /> +<glyph unicode="ù" horiz-adv-x="1105" d="M110 383l116 699h181l-117 -702q-5 -44 -2 -86q5 -72 43 -113t106 -44q194 -6 300 157l136 788h181l-188 -1082h-171l23 107q-127 -131 -323 -127q-155 4 -229.5 111t-55.5 292zM412 1534h205l143 -294h-143z" /> +<glyph unicode="ú" horiz-adv-x="1105" d="M110 383l116 699h181l-117 -702q-5 -44 -2 -86q5 -72 43 -113t106 -44q194 -6 300 157l136 788h181l-188 -1082h-171l23 107q-127 -131 -323 -127q-155 4 -229.5 111t-55.5 292zM556 1240l234 294h230l-306 -294h-158z" /> +<glyph unicode="û" horiz-adv-x="1105" d="M110 383l116 699h181l-117 -702q-5 -44 -2 -86q5 -72 43 -113t106 -44q194 -6 300 157l136 788h181l-188 -1082h-171l23 107q-127 -131 -323 -127q-155 4 -229.5 111t-55.5 292zM372 1250v16l278 270h106l205 -272v-14l-147 2l-113 169l-176 -168z" /> +<glyph unicode="ü" horiz-adv-x="1105" d="M110 383l116 699h181l-117 -702q-5 -44 -2 -86q5 -72 43 -113t106 -44q194 -6 300 157l136 788h181l-188 -1082h-171l23 107q-127 -131 -323 -127q-155 4 -229.5 111t-55.5 292zM370 1369q1 46 30 76.5t76 32.5q47 1 77.5 -28.5t29.5 -76.5q0 -46 -30 -76t-77 -32 q-47 -1 -76.5 28t-29.5 76zM787 1367q1 46 30 77t76 33q48 1 78 -28.5t29 -77.5q0 -47 -30 -76.5t-77 -31.5q-46 -1 -76.5 28t-29.5 76z" /> +<glyph unicode="ý" horiz-adv-x="950" d="M-91 -422l16 150l47 -5q86 -4 148.5 38.5t110.5 137.5l65 124l-187 1059h189l121 -809l385 809h200l-642 -1262q-134 -263 -344 -260q-37 1 -109 18zM499 1240l234 294h230l-306 -294h-158z" /> +<glyph unicode="þ" horiz-adv-x="1155" d="M-32 -416l339 1952h180l-106 -567q131 137 312 133q158 -4 244.5 -118t89.5 -303q1 -61 -7 -145q-20 -166 -90 -299t-171.5 -197.5t-225.5 -61.5q-186 4 -287 128l-97 -522h-181zM269 278q61 -143 218 -148q137 -3 231.5 106.5t123.5 321.5l5 84q0 145 -56 223t-160 80 q-160 4 -272 -148z" /> +<glyph unicode="ÿ" horiz-adv-x="950" d="M-91 -422l16 150l47 -5q86 -4 148.5 38.5t110.5 137.5l65 124l-187 1059h189l121 -809l385 809h200l-642 -1262q-134 -263 -344 -260q-37 1 -109 18zM313 1369q1 46 30 76.5t76 32.5q47 1 77.5 -28.5t29.5 -76.5q0 -46 -30 -76t-77 -32q-47 -1 -76.5 28t-29.5 76z M730 1367q1 46 30 77t76 33q48 1 78 -28.5t29 -77.5q0 -47 -30 -76.5t-77 -31.5q-46 -1 -76.5 28t-29.5 76z" /> +<glyph unicode="Œ" horiz-adv-x="1904" d="M105 576l47 299q43 274 215.5 439t415.5 163l74 -2l211 -19h825l-28 -158h-701l-81 -468h612l-28 -157h-611l-90 -516h712l-28 -157h-812l-217 -18l-69 -1q-152 4 -261.5 83t-158 216t-27.5 296zM284 419q10 -131 81 -206.5t193 -79.5q76 -3 214 10l209 1168 q-108 17 -203 17q-175 2 -293 -119.5t-151 -333.5l-47 -300q-10 -78 -3 -156z" /> +<glyph unicode="œ" horiz-adv-x="1814" d="M87 522l2 16q36 261 186.5 415t362.5 149q121 -2 216 -60t138 -157q178 221 395 218q125 -2 213 -65t125 -173t20 -246l-19 -122h-692q-8 -61 -2 -125q10 -108 68.5 -172.5t154.5 -67.5q172 -6 316 105l61 -127q-68 -65 -168 -98t-215 -31q-124 2 -218.5 58.5 t-138.5 151.5q-171 -217 -415 -211q-133 2 -227 73t-136.5 195.5t-26.5 273.5zM266 392q5 -117 62.5 -188.5t158.5 -74.5q136 -5 233.5 105t123.5 297l2 22l5 87q0 143 -57.5 225t-166.5 86q-140 5 -236.5 -110.5t-119.5 -296.5l-2 -22q-7 -62 -3 -130zM1056 649l510 -1 l5 28q8 53 1 102q-13 79 -64.5 124.5t-130.5 48.5q-101 3 -183.5 -74t-137.5 -228z" /> +<glyph unicode="Ÿ" horiz-adv-x="1203" d="M168 1456h204l239 -730l495 730h224l-653 -923l-93 -533h-187l96 554zM472 1679q1 46 30 76.5t76 32.5q47 1 77.5 -28.5t29.5 -76.5q0 -46 -30 -76t-77 -32q-47 -1 -76.5 28t-29.5 76zM889 1677q1 46 30 77t76 33q48 1 78 -28.5t29 -77.5q0 -47 -30 -76.5t-77 -31.5 q-46 -1 -76.5 28t-29.5 76z" /> +<glyph unicode="ˆ" horiz-adv-x="945" d="M279 1250v16l278 270h106l205 -272v-14l-147 2l-113 169l-176 -168z" /> +<glyph unicode="˜" horiz-adv-x="947" d="M221 1249q12 110 74.5 180t155.5 68q27 0 50.5 -8.5t76.5 -41t77.5 -41.5t51.5 -8q86 0 118 113l117 -10q-12 -111 -73 -178t-154 -67q-37 0 -67.5 15.5t-60.5 34.5t-61 34t-67 14q-85 -3 -116 -112z" /> +<glyph unicode=" " horiz-adv-x="969" /> +<glyph unicode=" " horiz-adv-x="1938" /> +<glyph unicode=" " horiz-adv-x="969" /> +<glyph unicode=" " horiz-adv-x="1938" /> +<glyph unicode=" " horiz-adv-x="646" /> +<glyph unicode=" " horiz-adv-x="484" /> +<glyph unicode=" " horiz-adv-x="323" /> +<glyph unicode=" " horiz-adv-x="323" /> +<glyph unicode=" " horiz-adv-x="242" /> +<glyph unicode=" " horiz-adv-x="387" /> +<glyph unicode=" " horiz-adv-x="107" /> +<glyph unicode="‐" horiz-adv-x="558" d="M25 543l27 151h475l-27 -151h-475z" /> +<glyph unicode="‑" horiz-adv-x="558" d="M25 543l27 151h475l-27 -151h-475z" /> +<glyph unicode="‒" horiz-adv-x="558" d="M25 543l27 151h475l-27 -151h-475z" /> +<glyph unicode="–" horiz-adv-x="1314" d="M167 651l33 151h973l-33 -151h-973z" /> +<glyph unicode="—" horiz-adv-x="1561" d="M154 651l43 151h1297l-43 -151h-1297z" /> +<glyph unicode="‘" horiz-adv-x="407" d="M174 1073l18 112q36 222 225 370l100 -74q-112 -140 -139 -274l-24 -134h-180z" /> +<glyph unicode="’" horiz-adv-x="407" d="M137 1120q118 147 142 285l23 131h178l-19 -121q-36 -225 -224 -369z" /> +<glyph unicode="‚" horiz-adv-x="405" d="M-104 -208q115 144 139 283l18 106h181l-15 -96q-35 -220 -224 -368z" /> +<glyph unicode="“" horiz-adv-x="712" d="M182 1073l18 112q36 222 225 370l100 -74q-112 -140 -139 -274l-24 -134h-180zM487 1073l18 112q36 222 225 370l100 -74q-112 -140 -139 -274l-24 -134h-180z" /> +<glyph unicode="”" horiz-adv-x="719" d="M149 1120q118 147 142 285l23 131h178l-19 -121q-36 -225 -224 -369zM446 1120q118 147 142 285l23 131h178l-19 -121q-36 -225 -224 -369z" /> +<glyph unicode="„" horiz-adv-x="694" d="M-108 -227q116 151 143 302l30 171h180l-25 -156q-39 -241 -224 -392zM180 -227q116 154 142 302l30 171h181l-25 -156q-39 -240 -225 -392z" /> +<glyph unicode="•" horiz-adv-x="679" d="M160 724l1 41q6 94 64.5 150.5t144.5 56.5q81 0 133.5 -54.5t52.5 -142.5l-2 -42q-6 -90 -62.5 -145t-146.5 -55q-82 0 -133.5 53t-51.5 138z" /> +<glyph unicode="…" horiz-adv-x="1339" d="M57 94q0 49 31 81.5t80 34.5q49 1 81 -30t31 -80t-33 -79.5t-80 -32.5t-79 27.5t-31 78.5zM481 94q0 49 31 81.5t80 34.5q49 1 81 -30t31 -80t-33 -79.5t-80 -32.5t-79 27.5t-31 78.5zM883 94q0 49 31 81.5t80 34.5q49 1 81 -30t31 -80t-33 -79.5t-80 -32.5t-79 27.5 t-31 78.5z" /> +<glyph unicode=" " horiz-adv-x="387" /> +<glyph unicode="‹" horiz-adv-x="606" d="M95 540l2 20l347 389h152l-329 -409l178 -387h-125z" /> +<glyph unicode="›" horiz-adv-x="606" d="M2 152l328 408l-177 389h125l225 -387l-2 -21l-347 -389h-152z" /> +<glyph unicode=" " horiz-adv-x="484" /> +<glyph unicode="€" d="M81 541l22 124h172l25 137h-173l22 125h165q62 269 219.5 410.5t389.5 139.5q89 0 237 -30l-34 -164q-106 36 -205 38q-161 2 -266.5 -99t-151.5 -295h378l-22 -125h-372l-24 -137h373l-22 -124h-370q-9 -74 -2 -145q12 -120 79 -187t181 -70q95 -3 219 31l5 -161 q-114 -29 -233 -27q-226 4 -345 159t-87 401z" /> +<glyph unicode="™" horiz-adv-x="1253" d="M234 1375l14 81h376l-15 -81h-142l-80 -456h-89l79 456h-143zM605 919l94 537h106l69 -397l210 397h113l-94 -537h-88l67 379l-195 -378l-52 -2l-70 401l-71 -400h-89z" /> +<glyph unicode="◼" horiz-adv-x="1080" d="M0 0v1080h1080v-1080h-1080z" /> +<glyph unicode="ffi" horiz-adv-x="1706" d="M116 939l25 143h166l17 121q23 168 129 264t266 94q54 -2 129 -18l-22 -152q-48 10 -97 12q-89 0 -147.5 -53t-75.5 -147l-19 -121h387l14 101q26 177 141.5 277.5t296.5 98.5q72 -2 140.5 -21t136.5 -43l-47 -155q-115 51 -226 53q-228 2 -262 -224l-13 -87h216 l-25 -143h-215l-163 -939h-181l163 939h-387l-163 -939h-181l164 939h-167zM1254 0l188 1082h181l-188 -1082h-181z" /> +<glyph unicode="ffl" horiz-adv-x="1706" d="M116 939l25 143h166l18 127q29 182 151 276q102 78 244 76q53 -2 128 -18l-22 -152q-58 12 -98 12q-91 0 -149.5 -55t-74.5 -158l-17 -108h388l15 107q25 180 132 276.5t277 94.5q86 -2 199 -24l191 -40l-254 -1496h-181l243 1380q-129 22 -189 22q-205 2 -239 -225 l-14 -95h225l-26 -143h-223l-163 -939h-181l163 939h-387l-163 -939h-181l163 939h-166z" /> +<hkern u1=" " u2="T" k="40" /> +<hkern u1=""" u2="w" k="-11" /> +<hkern u1="'" u2="w" k="-11" /> +<hkern u1="(" u2="Ÿ" k="-22" /> +<hkern u1="(" u2="Ý" k="-22" /> +<hkern u1="(" u2="Y" k="-22" /> +<hkern u1="(" u2="W" k="-18" /> +<hkern u1="(" u2="V" k="-20" /> +<hkern u1="/" u2="/" k="224" /> +<hkern u1="A" u2="w" k="33" /> +<hkern u1="A" u2="t" k="17" /> +<hkern u1="A" u2="?" k="61" /> +<hkern u1="C" u2="}" k="17" /> +<hkern u1="C" u2="]" k="12" /> +<hkern u1="C" u2=")" k="26" /> +<hkern u1="D" u2="Æ" k="33" /> +<hkern u1="E" u2="w" k="22" /> +<hkern u1="E" u2="f" k="18" /> +<hkern u1="F" u2="…" k="234" /> +<hkern u1="F" u2="„" k="234" /> +<hkern u1="F" u2="‚" k="234" /> +<hkern u1="F" u2="œ" k="21" /> +<hkern u1="F" u2="ÿ" k="24" /> +<hkern u1="F" u2="ý" k="24" /> +<hkern u1="F" u2="ü" k="22" /> +<hkern u1="F" u2="û" k="22" /> +<hkern u1="F" u2="ú" k="22" /> +<hkern u1="F" u2="ù" k="22" /> +<hkern u1="F" u2="ö" k="21" /> +<hkern u1="F" u2="õ" k="21" /> +<hkern u1="F" u2="ô" k="21" /> +<hkern u1="F" u2="ó" k="21" /> +<hkern u1="F" u2="ò" k="21" /> +<hkern u1="F" u2="ë" k="21" /> +<hkern u1="F" u2="ê" k="21" /> +<hkern u1="F" u2="é" k="21" /> +<hkern u1="F" u2="è" k="21" /> +<hkern u1="F" u2="ç" k="21" /> +<hkern u1="F" u2="å" k="34" /> +<hkern u1="F" u2="ä" k="34" /> +<hkern u1="F" u2="ã" k="34" /> +<hkern u1="F" u2="â" k="34" /> +<hkern u1="F" u2="á" k="34" /> +<hkern u1="F" u2="à" k="34" /> +<hkern u1="F" u2="Å" k="170" /> +<hkern u1="F" u2="Ä" k="170" /> +<hkern u1="F" u2="Ã" k="170" /> +<hkern u1="F" u2="Â" k="170" /> +<hkern u1="F" u2="Á" k="170" /> +<hkern u1="F" u2="À" k="170" /> +<hkern u1="F" u2="y" k="24" /> +<hkern u1="F" u2="v" k="24" /> +<hkern u1="F" u2="u" k="22" /> +<hkern u1="F" u2="r" k="26" /> +<hkern u1="F" u2="q" k="21" /> +<hkern u1="F" u2="o" k="21" /> +<hkern u1="F" u2="g" k="21" /> +<hkern u1="F" u2="e" k="21" /> +<hkern u1="F" u2="d" k="21" /> +<hkern u1="F" u2="c" k="21" /> +<hkern u1="F" u2="a" k="34" /> +<hkern u1="F" u2="T" k="-20" /> +<hkern u1="F" u2="J" k="264" /> +<hkern u1="F" u2="A" k="170" /> +<hkern u1="F" u2="." k="234" /> +<hkern u1="F" u2="," k="234" /> +<hkern u1="K" u2="w" k="63" /> +<hkern u1="L" u2="w" k="92" /> +<hkern u1="O" u2="Æ" k="33" /> +<hkern u1="P" u2="Æ" k="97" /> +<hkern u1="P" u2="t" k="-14" /> +<hkern u1="Q" u2="Ÿ" k="35" /> +<hkern u1="Q" u2="Ý" k="35" /> +<hkern u1="Q" u2="Y" k="35" /> +<hkern u1="Q" u2="W" k="20" /> +<hkern u1="Q" u2="V" k="28" /> +<hkern u1="Q" u2="T" k="43" /> +<hkern u1="R" u2="Ÿ" k="48" /> +<hkern u1="R" u2="Ý" k="48" /> +<hkern u1="R" u2="Y" k="48" /> +<hkern u1="R" u2="V" k="19" /> +<hkern u1="R" u2="T" k="80" /> +<hkern u1="T" u2="ø" k="95" /> +<hkern u1="T" u2="æ" k="114" /> +<hkern u1="T" u2="Æ" k="179" /> +<hkern u1="T" u2="»" k="216" /> +<hkern u1="T" u2="«" k="328" /> +<hkern u1="T" u2="w" k="57" /> +<hkern u1="T" u2="r" k="75" /> +<hkern u1="T" u2=" " k="40" /> +<hkern u1="V" u2="}" k="-19" /> +<hkern u1="V" u2="r" k="30" /> +<hkern u1="V" u2="]" k="-17" /> +<hkern u1="V" u2=")" k="-20" /> +<hkern u1="W" u2="}" k="-14" /> +<hkern u1="W" u2="r" k="21" /> +<hkern u1="W" u2="]" k="-12" /> +<hkern u1="W" u2=")" k="-15" /> +<hkern u1="Y" u2="•" k="45" /> +<hkern u1="Y" u2="ø" k="64" /> +<hkern u1="Y" u2="æ" k="63" /> +<hkern u1="Y" u2="Æ" k="96" /> +<hkern u1="Y" u2="»" k="51" /> +<hkern u1="Y" u2="«" k="82" /> +<hkern u1="Y" u2="}" k="-19" /> +<hkern u1="Y" u2="t" k="22" /> +<hkern u1="Y" u2="r" k="40" /> +<hkern u1="Y" u2="f" k="22" /> +<hkern u1="Y" u2="]" k="-18" /> +<hkern u1="Y" u2="*" k="49" /> +<hkern u1="Y" u2=")" k="-20" /> +<hkern u1="Y" u2="&" k="30" /> +<hkern u1="Z" u2="w" k="27" /> +<hkern u1="[" u2="Ü" k="18" /> +<hkern u1="[" u2="Û" k="18" /> +<hkern u1="[" u2="Ú" k="18" /> +<hkern u1="[" u2="Ù" k="18" /> +<hkern u1="[" u2="U" k="18" /> +<hkern u1="[" u2="J" k="18" /> +<hkern u1="e" u2="’" k="80" /> +<hkern u1="f" u2="”" k="-16" /> +<hkern u1="f" u2="“" k="-16" /> +<hkern u1="f" u2="’" k="-16" /> +<hkern u1="f" u2="‘" k="-16" /> +<hkern u1="f" u2="œ" k="24" /> +<hkern u1="f" u2="ë" k="24" /> +<hkern u1="f" u2="ê" k="24" /> +<hkern u1="f" u2="é" k="24" /> +<hkern u1="f" u2="è" k="24" /> +<hkern u1="f" u2="ç" k="24" /> +<hkern u1="f" u2="}" k="-19" /> +<hkern u1="f" u2="q" k="24" /> +<hkern u1="f" u2="g" k="24" /> +<hkern u1="f" u2="e" k="24" /> +<hkern u1="f" u2="d" k="24" /> +<hkern u1="f" u2="c" k="24" /> +<hkern u1="f" u2="]" k="-18" /> +<hkern u1="f" u2=")" k="-20" /> +<hkern u1="f" u2="'" k="-16" /> +<hkern u1="f" u2=""" k="-16" /> +<hkern u1="h" u2="’" k="80" /> +<hkern u1="k" u2="œ" k="20" /> +<hkern u1="k" u2="ë" k="20" /> +<hkern u1="k" u2="ê" k="20" /> +<hkern u1="k" u2="é" k="20" /> +<hkern u1="k" u2="è" k="20" /> +<hkern u1="k" u2="ç" k="20" /> +<hkern u1="k" u2="q" k="20" /> +<hkern u1="k" u2="g" k="20" /> +<hkern u1="k" u2="e" k="20" /> +<hkern u1="k" u2="d" k="20" /> +<hkern u1="k" u2="c" k="20" /> +<hkern u1="m" u2="’" k="80" /> +<hkern u1="n" u2="’" k="80" /> +<hkern u1="o" u2="’" k="80" /> +<hkern u1="r" u2="w" k="-17" /> +<hkern u1="r" u2="t" k="-50" /> +<hkern u1="r" u2="f" k="-15" /> +<hkern u1="t" u2="ö" k="20" /> +<hkern u1="t" u2="õ" k="20" /> +<hkern u1="t" u2="ô" k="20" /> +<hkern u1="t" u2="ó" k="20" /> +<hkern u1="t" u2="ò" k="20" /> +<hkern u1="t" u2="o" k="20" /> +<hkern u1="v" u2="f" k="-13" /> +<hkern u1="w" u2="…" k="124" /> +<hkern u1="w" u2="„" k="124" /> +<hkern u1="w" u2="‚" k="124" /> +<hkern u1="w" u2="." k="124" /> +<hkern u1="w" u2="," k="124" /> +<hkern u1="y" u2="f" k="-13" /> +<hkern u1="{" u2="Ü" k="20" /> +<hkern u1="{" u2="Û" k="20" /> +<hkern u1="{" u2="Ú" k="20" /> +<hkern u1="{" u2="Ù" k="20" /> +<hkern u1="{" u2="U" k="20" /> +<hkern u1="{" u2="J" k="20" /> +<hkern u1="À" u2="w" k="33" /> +<hkern u1="À" u2="t" k="17" /> +<hkern u1="À" u2="?" k="61" /> +<hkern u1="Á" u2="w" k="33" /> +<hkern u1="Á" u2="t" k="17" /> +<hkern u1="Á" u2="?" k="61" /> +<hkern u1="Â" u2="w" k="33" /> +<hkern u1="Â" u2="t" k="17" /> +<hkern u1="Â" u2="?" k="61" /> +<hkern u1="Ã" u2="w" k="33" /> +<hkern u1="Ã" u2="t" k="17" /> +<hkern u1="Ã" u2="?" k="61" /> +<hkern u1="Ä" u2="w" k="33" /> +<hkern u1="Ä" u2="t" k="17" /> +<hkern u1="Ä" u2="?" k="61" /> +<hkern u1="Å" u2="w" k="33" /> +<hkern u1="Å" u2="t" k="17" /> +<hkern u1="Å" u2="?" k="61" /> +<hkern u1="Ç" u2="}" k="17" /> +<hkern u1="Ç" u2="]" k="12" /> +<hkern u1="Ç" u2=")" k="26" /> +<hkern u1="È" u2="w" k="22" /> +<hkern u1="È" u2="f" k="18" /> +<hkern u1="É" u2="w" k="22" /> +<hkern u1="É" u2="f" k="18" /> +<hkern u1="Ê" u2="w" k="22" /> +<hkern u1="Ê" u2="f" k="18" /> +<hkern u1="Ë" u2="w" k="22" /> +<hkern u1="Ë" u2="f" k="18" /> +<hkern u1="Ð" u2="Æ" k="33" /> +<hkern u1="Ò" u2="Æ" k="33" /> +<hkern u1="Ó" u2="Æ" k="33" /> +<hkern u1="Ô" u2="Æ" k="33" /> +<hkern u1="Õ" u2="Æ" k="33" /> +<hkern u1="Ö" u2="Æ" k="33" /> +<hkern u1="Ý" u2="•" k="45" /> +<hkern u1="Ý" u2="ø" k="64" /> +<hkern u1="Ý" u2="æ" k="63" /> +<hkern u1="Ý" u2="Æ" k="96" /> +<hkern u1="Ý" u2="»" k="51" /> +<hkern u1="Ý" u2="«" k="82" /> +<hkern u1="Ý" u2="}" k="-19" /> +<hkern u1="Ý" u2="t" k="22" /> +<hkern u1="Ý" u2="r" k="40" /> +<hkern u1="Ý" u2="f" k="22" /> +<hkern u1="Ý" u2="]" k="-18" /> +<hkern u1="Ý" u2="*" k="49" /> +<hkern u1="Ý" u2=")" k="-20" /> +<hkern u1="Ý" u2="&" k="30" /> +<hkern u1="è" u2="’" k="80" /> +<hkern u1="é" u2="’" k="80" /> +<hkern u1="ê" u2="’" k="80" /> +<hkern u1="ë" u2="’" k="80" /> +<hkern u1="ñ" u2="’" k="80" /> +<hkern u1="ò" u2="’" k="80" /> +<hkern u1="ó" u2="’" k="80" /> +<hkern u1="ô" u2="’" k="80" /> +<hkern u1="õ" u2="’" k="80" /> +<hkern u1="ö" u2="’" k="80" /> +<hkern u1="ý" u2="f" k="-13" /> +<hkern u1="ÿ" u2="f" k="-13" /> +<hkern u1="Ÿ" u2="•" k="45" /> +<hkern u1="Ÿ" u2="ø" k="64" /> +<hkern u1="Ÿ" u2="æ" k="63" /> +<hkern u1="Ÿ" u2="Æ" k="96" /> +<hkern u1="Ÿ" u2="»" k="51" /> +<hkern u1="Ÿ" u2="«" k="82" /> +<hkern u1="Ÿ" u2="}" k="-19" /> +<hkern u1="Ÿ" u2="t" k="22" /> +<hkern u1="Ÿ" u2="r" k="40" /> +<hkern u1="Ÿ" u2="f" k="22" /> +<hkern u1="Ÿ" u2="]" k="-18" /> +<hkern u1="Ÿ" u2="*" k="49" /> +<hkern u1="Ÿ" u2=")" k="-20" /> +<hkern u1="Ÿ" u2="&" k="30" /> +<hkern u1="‘" u2="w" k="-11" /> +<hkern u1="’" u2="ö" k="128" /> +<hkern u1="’" u2="õ" k="128" /> +<hkern u1="’" u2="ô" k="128" /> +<hkern u1="’" u2="ó" k="128" /> +<hkern u1="’" u2="ò" k="128" /> +<hkern u1="’" u2="w" k="-11" /> +<hkern u1="’" u2="s" k="112" /> +<hkern u1="’" u2="o" k="128" /> +<hkern u1="’" u2="l" k="-32" /> +<hkern u1="’" u2="k" k="-32" /> +<hkern u1="’" u2="h" k="-32" /> +<hkern u1="“" u2="w" k="-11" /> +<hkern u1="”" u2="w" k="-11" /> +<hkern g1="B" g2="T" k="27" /> +<hkern g1="B" g2="V" k="24" /> +<hkern g1="B" g2="Y,Yacute,Ydieresis" k="55" /> +<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="T" k="29" /> +<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="Y,Yacute,Ydieresis" k="28" /> +<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-18" /> +<hkern g1="H,I,M,N,Igrave,Iacute,Icircumflex,Idieresis,Ntilde" g2="X" k="-17" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="T" k="27" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="V" k="22" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="Y,Yacute,Ydieresis" k="43" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="21" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="X" k="22" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="102" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="Z" k="23" /> +<hkern g1="C,Ccedilla" g2="T" k="29" /> +<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="v,y,yacute,ydieresis" k="26" /> +<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="19" /> +<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="T" k="-20" /> +<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="17" /> +<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="19" /> +<hkern g1="T" g2="v,y,yacute,ydieresis" k="72" /> +<hkern g1="T" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="28" /> +<hkern g1="T" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="99" /> +<hkern g1="T" g2="W" k="-15" /> +<hkern g1="T" g2="T" k="-16" /> +<hkern g1="T" g2="u,ugrave,uacute,ucircumflex,udieresis" k="95" /> +<hkern g1="T" g2="z" k="60" /> +<hkern g1="T" g2="V" k="-16" /> +<hkern g1="T" g2="Y,Yacute,Ydieresis" k="-16" /> +<hkern g1="T" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="79" /> +<hkern g1="T" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="218" /> +<hkern g1="T" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="99" /> +<hkern g1="T" g2="x" k="77" /> +<hkern g1="T" g2="hyphen,uni00AD,endash,emdash" k="232" /> +<hkern g1="T" g2="m,n,p,ntilde" k="109" /> +<hkern g1="T" g2="S" k="16" /> +<hkern g1="T" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="113" /> +<hkern g1="T" g2="s" k="116" /> +<hkern g1="T" g2="J" k="240" /> +<hkern g1="K" g2="v,y,yacute,ydieresis" k="40" /> +<hkern g1="K" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="31" /> +<hkern g1="K" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="27" /> +<hkern g1="K" g2="u,ugrave,uacute,ucircumflex,udieresis" k="23" /> +<hkern g1="K" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="26" /> +<hkern g1="K" g2="hyphen,uni00AD,endash,emdash" k="64" /> +<hkern g1="K" g2="m,n,p,ntilde" k="23" /> +<hkern g1="L" g2="v,y,yacute,ydieresis" k="133" /> +<hkern g1="L" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="65" /> +<hkern g1="L" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="54" /> +<hkern g1="L" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="336" /> +<hkern g1="L" g2="W" k="143" /> +<hkern g1="L" g2="T" k="275" /> +<hkern g1="L" g2="u,ugrave,uacute,ucircumflex,udieresis" k="44" /> +<hkern g1="L" g2="V" k="175" /> +<hkern g1="L" g2="Y,Yacute,Ydieresis" k="239" /> +<hkern g1="L" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-19" /> +<hkern g1="P" g2="v,y,yacute,ydieresis" k="-15" /> +<hkern g1="P" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="13" /> +<hkern g1="P" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="138" /> +<hkern g1="P" g2="X" k="31" /> +<hkern g1="P" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="324" /> +<hkern g1="P" g2="Z" k="26" /> +<hkern g1="P" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="13" /> +<hkern g1="P" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="11" /> +<hkern g1="P" g2="J" k="200" /> +<hkern g1="J,U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="22" /> +<hkern g1="V" g2="v,y,yacute,ydieresis" k="11" /> +<hkern g1="V" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="13" /> +<hkern g1="V" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="46" /> +<hkern g1="V" g2="u,ugrave,uacute,ucircumflex,udieresis" k="28" /> +<hkern g1="V" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="75" /> +<hkern g1="V" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="225" /> +<hkern g1="V" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="44" /> +<hkern g1="V" g2="hyphen,uni00AD,endash,emdash" k="37" /> +<hkern g1="V" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="46" /> +<hkern g1="X" g2="v,y,yacute,ydieresis" k="31" /> +<hkern g1="X" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="25" /> +<hkern g1="X" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="21" /> +<hkern g1="X" g2="u,ugrave,uacute,ucircumflex,udieresis" k="21" /> +<hkern g1="X" g2="V" k="-14" /> +<hkern g1="X" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="26" /> +<hkern g1="X" g2="hyphen,uni00AD,endash,emdash" k="46" /> +<hkern g1="Y,Yacute,Ydieresis" g2="v,y,yacute,ydieresis" k="20" /> +<hkern g1="Y,Yacute,Ydieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="29" /> +<hkern g1="Y,Yacute,Ydieresis" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="96" /> +<hkern g1="Y,Yacute,Ydieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="65" /> +<hkern g1="Y,Yacute,Ydieresis" g2="W" k="-17" /> +<hkern g1="Y,Yacute,Ydieresis" g2="T" k="-17" /> +<hkern g1="Y,Yacute,Ydieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="39" /> +<hkern g1="Y,Yacute,Ydieresis" g2="z" k="30" /> +<hkern g1="Y,Yacute,Ydieresis" g2="V" k="-18" /> +<hkern g1="Y,Yacute,Ydieresis" g2="Y,Yacute,Ydieresis" k="-18" /> +<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="94" /> +<hkern g1="Y,Yacute,Ydieresis" g2="X" k="-13" /> +<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="211" /> +<hkern g1="Y,Yacute,Ydieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="65" /> +<hkern g1="Y,Yacute,Ydieresis" g2="x" k="23" /> +<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,uni00AD,endash,emdash" k="52" /> +<hkern g1="Y,Yacute,Ydieresis" g2="m,n,p,ntilde" k="40" /> +<hkern g1="Y,Yacute,Ydieresis" g2="S" k="16" /> +<hkern g1="Y,Yacute,Ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="73" /> +<hkern g1="Y,Yacute,Ydieresis" g2="s" k="58" /> +<hkern g1="Y,Yacute,Ydieresis" g2="J" k="96" /> +<hkern g1="W" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="31" /> +<hkern g1="W" g2="T" k="-14" /> +<hkern g1="W" g2="u,ugrave,uacute,ucircumflex,udieresis" k="19" /> +<hkern g1="W" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="43" /> +<hkern g1="W" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="123" /> +<hkern g1="W" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="31" /> +<hkern g1="W" g2="hyphen,uni00AD,endash,emdash" k="60" /> +<hkern g1="W" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="33" /> +<hkern g1="Z" g2="v,y,yacute,ydieresis" k="27" /> +<hkern g1="Z" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="26" /> +<hkern g1="Z" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="21" /> +<hkern g1="Z" g2="u,ugrave,uacute,ucircumflex,udieresis" k="19" /> +<hkern g1="Z" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-13" /> +<hkern g1="Z" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="21" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="v,y,yacute,ydieresis" k="15" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="67" /> +<hkern g1="c,ccedilla" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="11" /> +<hkern g1="b,p,thorn" g2="v,y,yacute,ydieresis" k="11" /> +<hkern g1="b,p,thorn" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="29" /> +<hkern g1="b,p,thorn" g2="z" k="15" /> +<hkern g1="b,p,thorn" g2="x" k="15" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis" g2="v,y,yacute,ydieresis" k="13" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="14" /> +<hkern g1="h,m,n,ntilde" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="104" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="v,y,yacute,ydieresis" k="15" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="136" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="z" k="16" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="x" k="21" /> +<hkern g1="v,y,yacute,ydieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-15" /> +<hkern g1="v,y,yacute,ydieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="15" /> +<hkern g1="v,y,yacute,ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="107" /> +<hkern g1="v,y,yacute,ydieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="13" /> +<hkern g1="v,y,yacute,ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="15" /> +<hkern g1="r" g2="v,y,yacute,ydieresis" k="-18" /> +<hkern g1="r" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-16" /> +<hkern g1="r" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="20" /> +<hkern g1="r" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="123" /> +<hkern g1="r" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="19" /> +<hkern g1="r" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="40" /> +<hkern g1="x" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="20" /> +<hkern g1="x" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="20" /> +<hkern g1="z" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="16" /> +<hkern g1="z" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="16" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="107" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="61" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="120" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="59" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="m,n,p,ntilde" k="20" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="50" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="s" k="80" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="170" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/roboto-italic-webfont.ttf b/web/static/fonts/roboto-italic-webfont.ttf Binary files differnew file mode 100755 index 000000000..7b16e76d8 --- /dev/null +++ b/web/static/fonts/roboto-italic-webfont.ttf diff --git a/web/static/fonts/roboto-italic-webfont.woff b/web/static/fonts/roboto-italic-webfont.woff Binary files differnew file mode 100755 index 000000000..5cc12ed42 --- /dev/null +++ b/web/static/fonts/roboto-italic-webfont.woff diff --git a/web/static/fonts/roboto-italic-webfont.woff2 b/web/static/fonts/roboto-italic-webfont.woff2 Binary files differnew file mode 100755 index 000000000..5fb4bdf13 --- /dev/null +++ b/web/static/fonts/roboto-italic-webfont.woff2 diff --git a/web/static/fonts/robotoslab-bold-webfont.eot b/web/static/fonts/robotoslab-bold-webfont.eot Binary files differnew file mode 100755 index 000000000..e2699dd58 --- /dev/null +++ b/web/static/fonts/robotoslab-bold-webfont.eot diff --git a/web/static/fonts/robotoslab-bold-webfont.svg b/web/static/fonts/robotoslab-bold-webfont.svg new file mode 100755 index 000000000..65e29a486 --- /dev/null +++ b/web/static/fonts/robotoslab-bold-webfont.svg @@ -0,0 +1,669 @@ +<?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="roboto_slabbold" horiz-adv-x="1471" > +<font-face units-per-em="2048" ascent="1638" descent="-410" /> +<missing-glyph horiz-adv-x="502" /> +<glyph unicode="fi" horiz-adv-x="1337" d="M34 877v205h161v74q0 204 124.5 314.5t350.5 110.5q78 0 154 -15.5t176 -44.5l-42 -230q-73 22 -132.5 34t-136.5 12q-101 0 -151.5 -46t-50.5 -135v-74h656v-877l155 -30v-175h-588v175l141 30v672h-364v-672l141 -30v-175h-589v175l156 30v672h-161z" /> +<glyph unicode="fl" horiz-adv-x="1421" d="M39 0v175l156 30v672h-136v205h136v47q0 217 131 334.5t369 117.5q86 0 170 -15.5t195 -44.5h172v-1316l141 -30v-175h-574v175l141 30v1119q-55 12 -109 19t-117 7q-113 0 -170 -56t-57 -165v-47h240v-205h-240v-672l141 -30v-175h-589z" /> +<glyph horiz-adv-x="0" /> +<glyph unicode="
" horiz-adv-x="502" /> +<glyph horiz-adv-x="225" /> +<glyph unicode="	" horiz-adv-x="0" /> +<glyph unicode=" " horiz-adv-x="502" /> +<glyph unicode="	" horiz-adv-x="502" /> +<glyph unicode=" " horiz-adv-x="502" /> +<glyph unicode="!" horiz-adv-x="507" d="M119 0v256h292v-256h-292zM119 502v954h292v-954h-292z" /> +<glyph unicode=""" horiz-adv-x="782" d="M140 1039v521h206v-272l-77 -249h-129zM467 1039v521h205v-272l-77 -249h-128z" /> +<glyph unicode="#" horiz-adv-x="1198" d="M39 410v169h256l51 290h-231v171h261l74 416h183l-73 -416h192l73 416h184l-74 -416h220v-171h-250l-51 -290h226v-169h-255l-72 -410h-183l72 410h-192l-72 -410h-184l72 410h-227zM479 579h192l51 290h-192z" /> +<glyph unicode="$" horiz-adv-x="1107" d="M57 449l2 5h284q0 -134 62 -192t156 -58q91 0 139.5 48.5t48.5 130.5q0 81 -46.5 132t-159.5 95q-222 81 -329 180.5t-107 280.5q0 168 107.5 275.5t289.5 126.5v215h159v-218q175 -26 275.5 -146.5t98.5 -313.5l-3 -5h-284q0 118 -49 182t-132 64q-86 0 -128.5 -49.5 t-42.5 -131.5q0 -78 44.5 -126.5t163.5 -95.5q221 -87 328 -186t107 -277q0 -173 -107.5 -277.5t-290.5 -123.5v-198h-159v197q-187 19 -309 132.5t-118 333.5z" /> +<glyph unicode="%" horiz-adv-x="1429" d="M49 1099v77q0 129 83.5 215t232.5 86q151 0 234 -85.5t83 -215.5v-77q0 -129 -83 -214t-232 -85q-150 0 -234 85t-84 214zM243 1099q0 -58 32 -97.5t92 -39.5q58 0 90 39.5t32 97.5v77q0 58 -32.5 98.5t-91.5 40.5t-90.5 -40.5t-31.5 -98.5v-77zM308 184l711 1138 l142 -75l-711 -1138zM745 280v77q0 128 84 214t233 86q150 0 233.5 -85.5t83.5 -214.5v-77q0 -130 -83 -215t-232 -85q-150 0 -234.5 85.5t-84.5 214.5zM939 280q0 -57 34.5 -97.5t90.5 -40.5q65 0 93 37.5t28 100.5v77q0 57 -32 97.5t-91 40.5q-60 0 -91.5 -40.5 t-31.5 -97.5v-77z" /> +<glyph unicode="&" horiz-adv-x="1278" d="M45 392q0 118 65 203.5t198 178.5q-68 92 -101.5 168t-33.5 155q0 173 108 276.5t289 103.5q159 0 258.5 -98.5t99.5 -238.5q0 -98 -49 -179t-134 -142l-93 -66l276 -322q36 60 56 130t20 148h218q0 -138 -34 -254t-104 -206l208 -244l-2 -5h-324l-77 89 q-85 -55 -175 -82.5t-193 -27.5q-218 0 -347 114.5t-129 298.5zM337 407q0 -89 55 -146.5t144 -57.5q53 0 106 13.5t102 40.5l-300 348l-19 -13q-51 -48 -69.5 -93.5t-18.5 -91.5zM434 1100q0 -43 21.5 -88.5t64.5 -100.5l86 56q56 36 75.5 74t19.5 83q0 50 -36.5 89 t-95.5 39q-65 0 -100 -43.5t-35 -108.5z" /> +<glyph unicode="'" horiz-adv-x="449" d="M139 1008v552h199v-269l-70 -283h-129z" /> +<glyph unicode="(" horiz-adv-x="685" d="M89 570v22q0 392 152 665.5t344 354.5h6l53 -146q-131 -98 -220 -316t-89 -556v-26q0 -339 89 -556.5t220 -318.5l-53 -143h-6q-192 81 -344 354t-152 666z" /> +<glyph unicode=")" horiz-adv-x="712" d="M61 -307q129 98 219 317t90 558v26q0 336 -91 556.5t-218 319.5l54 142h6q194 -80 352 -359t158 -661v-22q0 -383 -158 -661.5t-352 -358.5h-6z" /> +<glyph unicode="*" horiz-adv-x="914" d="M34 1055l57 177l297 -123l-18 347h188l-20 -353l291 120l56 -180l-306 -89l200 -265l-151 -110l-175 290l-173 -281l-152 106l208 272z" /> +<glyph unicode="+" horiz-adv-x="1098" d="M49 560v252h362v394h277v-394h359v-252h-359v-414h-277v414h-362z" /> +<glyph unicode="," horiz-adv-x="503" d="M58 -286q39 70 60 144.5t21 166.5v218h262l-1 -204q0 -102 -57.5 -216t-140.5 -187z" /> +<glyph unicode="-" horiz-adv-x="815" d="M131 510v225h564v-225h-564z" /> +<glyph unicode="." horiz-adv-x="522" d="M129 0v256h291v-256h-291z" /> +<glyph unicode="/" horiz-adv-x="748" d="M-23 -125l534 1581h216l-534 -1581h-216z" /> +<glyph unicode="0" horiz-adv-x="1170" d="M97 567v321q0 288 132.5 438.5t359.5 150.5q226 0 359.5 -150.5t133.5 -438.5v-321q0 -289 -132.5 -438.5t-358.5 -149.5q-228 0 -361 149.5t-133 438.5zM388 539q0 -176 51.5 -256t151.5 -80q98 0 149 80t51 256v379q0 173 -52 253.5t-150 80.5q-99 0 -150 -80t-51 -254 v-379z" /> +<glyph unicode="1" horiz-adv-x="905" d="M62 1191v167l540 98v-1251l246 -30v-175h-783v175l246 30v986h-249z" /> +<glyph unicode="2" horiz-adv-x="1132" d="M50 1007q-5 197 129.5 333.5t362.5 136.5q225 0 354 -117t129 -312q0 -132 -72.5 -244t-240.5 -292l-259 -283l2 -5h378l12 144h222v-368h-994v191l471 505q102 117 145 197.5t43 149.5q0 92 -49.5 150.5t-140.5 58.5q-101 0 -153.5 -68.5t-52.5 -182.5h-284z" /> +<glyph unicode="3" horiz-adv-x="1112" d="M57 390l2 6h283q0 -84 60 -138.5t152 -54.5q101 0 159.5 56t58.5 152q0 115 -57.5 168.5t-169.5 53.5h-164v219h164q104 0 154 54.5t50 151.5q0 88 -50 141t-145 53q-82 0 -138 -48t-56 -126h-283l-2 6q-6 171 131 282t340 111q226 0 360.5 -108t134.5 -308 q0 -95 -60 -180.5t-165 -133.5q121 -43 184.5 -132t63.5 -207q0 -200 -145.5 -314.5t-372.5 -114.5q-203 0 -348.5 107.5t-140.5 303.5z" /> +<glyph unicode="4" horiz-adv-x="1154" d="M36 491l605 965h294v-914h165v-194h-165v-143l155 -30v-175h-602v175l156 30v143h-594zM309 542h335v525l-6 2l-24 -42z" /> +<glyph unicode="5" horiz-adv-x="1092" d="M67 390l2 5l280 14q0 -97 55 -151.5t144 -54.5q102 0 151 73t49 189q0 126 -52 202t-155 76q-83 0 -127.5 -31t-63.5 -84l-258 17l84 811h838v-332h-180l-26 98h-392l-41 -336q41 30 98 49.5t126 20.5q210 3 325 -127t115 -362q0 -210 -126.5 -349t-364.5 -139 q-200 0 -343 109.5t-138 301.5z" /> +<glyph unicode="6" horiz-adv-x="1144" d="M91 569v256q0 309 163.5 480.5t420.5 171.5q82 0 151.5 -15.5t139.5 -45.5l-51 -213q-63 22 -116 33.5t-122 11.5q-130 0 -208.5 -95t-79.5 -280l3 -5q49 51 124.5 80t168.5 29q195 0 306 -138.5t111 -353.5q0 -220 -137 -363t-354 -143q-230 0 -375 156.5t-145 433.5z M382 562q0 -173 62.5 -266t166.5 -93q90 0 144.5 82.5t54.5 199.5q0 121 -55 196t-147 75q-81 0 -138 -26t-88 -71v-97z" /> +<glyph unicode="7" horiz-adv-x="1107" d="M49 1087v369h1029v-225q-234 -274 -319.5 -511t-122.5 -572l-14 -148h-292l14 148q34 321 146 589.5t307 493.5h-513l-11 -144h-224z" /> +<glyph unicode="8" horiz-adv-x="1115" d="M67 398q0 118 66.5 208.5t182.5 139.5q-102 47 -159 131t-57 193q0 194 127 300.5t335 106.5t336 -106.5t128 -300.5q0 -109 -58 -193t-159 -131q116 -49 183 -140t67 -208q0 -202 -137 -310.5t-358 -108.5q-222 0 -359.5 108.5t-137.5 310.5zM359 418q0 -100 56 -157.5 t149 -57.5q91 0 147.5 58t56.5 157q0 98 -57.5 157t-148.5 59t-147 -59t-56 -157zM393 1057q0 -91 45 -144.5t126 -53.5q79 0 124.5 53.5t45.5 144.5q0 88 -46.5 141.5t-125.5 53.5q-80 0 -124.5 -52.5t-44.5 -142.5z" /> +<glyph unicode="9" horiz-adv-x="1141" d="M63 957q0 221 138.5 370.5t350.5 149.5q223 0 362 -153.5t139 -431.5v-316q0 -283 -154.5 -440t-397.5 -157q-76 0 -156.5 15.5t-148.5 45.5l33 211q67 -25 130 -36.5t142 -11.5q117 0 189 89.5t72 268.5v22q-49 -63 -117 -95.5t-146 -32.5q-204 0 -320 133.5t-116 368.5 zM355 957q0 -132 49.5 -210t143.5 -78q73 0 127.5 27.5t86.5 73.5v156q0 160 -56 243t-152 83q-88 0 -143.5 -86.5t-55.5 -208.5z" /> +<glyph unicode=":" horiz-adv-x="455" d="M91 0v256h291v-256h-291zM91 0zM91 825v256h291v-256h-291z" /> +<glyph unicode=";" horiz-adv-x="453" d="M28 0zM28 -286q39 70 60 144.5t21 166.5v218h262l-1 -204q0 -102 -57.5 -216t-140.5 -187zM90 825v256h291v-256h-291z" /> +<glyph unicode="<" horiz-adv-x="1012" d="M58 436v227l861 366v-272l-576 -207v-6l576 -203v-272z" /> +<glyph unicode="=" horiz-adv-x="1123" d="M123 332v229h896v-229h-896zM123 763v229h896v-229h-896z" /> +<glyph unicode=">" horiz-adv-x="1031" d="M104 60v270l585 209v6l-585 206v269l871 -366v-227z" /> +<glyph unicode="?" horiz-adv-x="985" d="M34 1081q-3 192 126.5 294t337.5 102q224 0 351.5 -113.5t127.5 -308.5q0 -127 -74.5 -235t-186.5 -181q-61 -47 -80 -94.5t-19 -130.5h-291q1 140 41.5 205t161.5 158q71 58 113.5 125t42.5 150q0 92 -48.5 144t-138.5 52q-74 0 -125.5 -44t-52.5 -129h-284zM325 0v250 h294v-250h-294z" /> +<glyph unicode="@" horiz-adv-x="1806" d="M67 478q18 427 255 683.5t626 256.5q387 0 593 -242.5t190 -662.5q-9 -218 -128 -376t-356 -158q-78 0 -135 44t-81 123q-44 -82 -109.5 -123t-153.5 -41q-141 0 -216.5 119t-56.5 315q25 254 144 407t288 153q116 0 186 -26t155 -80l-3 -4h5l-51 -573q-7 -94 14 -129.5 t57 -35.5q115 0 184.5 109t77.5 276q16 354 -136.5 551.5t-471.5 197.5q-304 0 -484.5 -213t-195.5 -571q-18 -355 145.5 -560t469.5 -205q85 0 175.5 20t155.5 50l38 -147q-67 -42 -170.5 -65.5t-202.5 -23.5q-396 0 -610.5 249t-197.5 682zM721 416q-10 -127 18.5 -192.5 t92.5 -65.5q56 0 101.5 26.5t81.5 96.5q0 2 0.5 6t0.5 6l44 496q-23 7 -46.5 11t-47.5 4q-111 0 -169 -96.5t-76 -291.5z" /> +<glyph unicode="A" d="M41 0v175l104 15l443 1266h299l440 -1266l104 -15v-175h-496v175l101 18l-64 200h-472l-64 -200l101 -18v-175h-496zM569 608h334l-164 513h-6z" /> +<glyph unicode="B" horiz-adv-x="1354" d="M56 0v175l155 30v1045l-155 30v176h155h492q257 0 401 -100t144 -299q0 -101 -53.5 -180.5t-155.5 -119.5q131 -28 196.5 -120t65.5 -213q0 -209 -138 -316.5t-391 -107.5h-716zM503 224h269q116 0 177 50.5t61 149.5q0 107 -52 163.5t-164 56.5h-291v-420zM503 846h210 q117 0 180 48t63 140q0 101 -63.5 149t-189.5 48h-200v-385z" /> +<glyph unicode="C" horiz-adv-x="1327" d="M52 703v49q0 317 186 521t481 204q169 0 305 -61.5t225 -162.5v-288h-217l-30 194q-43 43 -108.5 68t-154.5 25q-190 0 -292.5 -138t-102.5 -360v-51q0 -222 102 -361t288 -139q86 0 157.5 25t110.5 68l30 194h217v-288q-88 -102 -224.5 -162.5t-305.5 -60.5 q-293 0 -480 203t-187 521z" /> +<glyph unicode="D" horiz-adv-x="1411" d="M56 0v175l155 30v1045l-155 30v176h155h500q267 0 440 -170.5t173 -437.5v-241q0 -268 -173 -437.5t-440 -169.5h-655zM503 224h193q157 0 246 106t89 277v243q0 169 -89 275t-246 106h-193v-1007z" /> +<glyph unicode="E" horiz-adv-x="1308" d="M56 0v175l155 30v1045l-155 30v176h155h995v-399h-224l-13 174h-466v-366h493v-225h-493v-416h470l13 174h222v-398h-1152z" /> +<glyph unicode="F" horiz-adv-x="1265" d="M56 0v175l155 30v1045l-155 30v176h1159v-399h-224l-13 174h-475v-401h510v-225h-510v-400l156 -30v-175h-603z" /> +<glyph unicode="G" horiz-adv-x="1353" d="M47 690v50q0 327 182.5 532t476.5 205q171 0 312.5 -54.5t235.5 -147.5v-293h-216l-41 195q-40 34 -105.5 54.5t-150.5 20.5q-191 0 -297 -141t-106 -369v-52q0 -222 104 -354.5t300 -132.5q88 0 142.5 15t85.5 35v247l-208 16v205h501v-559q-71 -70 -207 -126.5 t-344 -56.5q-295 0 -480 197.5t-185 513.5z" /> +<glyph unicode="H" horiz-adv-x="1601" d="M56 0v175l155 30v1045l-155 30v176h603v-176l-156 -30v-420h594v420l-156 30v176h156h291h156v-176l-156 -30v-1045l156 -30v-175h-603v175l156 30v400h-594v-400l156 -30v-175h-603z" /> +<glyph unicode="I" horiz-adv-x="713" d="M55 0v175l156 30v1045l-156 30v176h603v-176l-156 -30v-1045l156 -30v-175h-603z" /> +<glyph unicode="J" horiz-adv-x="1192" d="M35 417l2 6h284q0 -115 55 -167.5t148 -52.5q81 0 137.5 62.5t56.5 171.5v813l-156 30v176h447h156v-176l-156 -30v-813q0 -211 -137.5 -334.5t-347.5 -123.5q-228 0 -361 111q-128 107 -128 311v16z" /> +<glyph unicode="K" horiz-adv-x="1464" d="M56 0v175l155 30v1045l-155 30v176h595v-176l-148 -30v-389h127l280 407l-86 12v176h577v-176l-158 -27l-358 -478l402 -575l146 -25v-175h-577v175l90 12l-280 421h-163v-403l148 -30v-175h-595z" /> +<glyph unicode="L" horiz-adv-x="1200" d="M56 0v175l155 30v1045l-155 30v176h155h292h156v-176l-156 -30v-1026h411l14 183h223v-407h-1095z" /> +<glyph unicode="M" horiz-adv-x="1929" d="M56 0v175l155 30v1045l-155 30v176h155h381l371 -1073h6l374 1073h538v-176l-156 -30v-1045l156 -30v-175h-603v175l155 30v229l28 643l-6 1l-390 -1078h-196l-388 1074l-6 -1l28 -639v-229l156 -30v-175h-603z" /> +<glyph unicode="N" horiz-adv-x="1582" d="M56 0v175l155 30v1045l-155 30v176h155h292l588 -980l6 1v773l-156 30v176h447h156v-176l-156 -30v-1250h-291l-588 980l-6 -1v-774l156 -30v-175h-603z" /> +<glyph unicode="O" horiz-adv-x="1448" d="M67 717v22q0 318 181 528t476 210q296 0 479.5 -210t183.5 -528v-22q0 -320 -183 -529t-479 -209q-295 0 -476.5 209t-181.5 529zM359 717q0 -230 91.5 -370.5t274.5 -140.5q185 0 278 140.5t93 370.5v24q0 226 -94 367t-278 141t-274.5 -140t-90.5 -368v-24z" /> +<glyph unicode="P" horiz-adv-x="1325" d="M56 0v175l155 30v1045l-155 30v176h155h538q250 0 394.5 -128.5t144.5 -336.5q0 -209 -144.5 -336t-394.5 -127h-246v-323l156 -30v-175h-603zM503 753h246q122 0 184.5 66.5t62.5 169.5q0 105 -62.5 173.5t-184.5 68.5h-246v-478z" /> +<glyph unicode="Q" horiz-adv-x="1449" d="M67 717v22q0 318 181 528t476 210q296 0 479.5 -210t183.5 -528v-22q0 -190 -68.5 -347t-191.5 -256l310 -193l-206 -159l-349 235q-39 -8 -78.5 -13t-78.5 -5q-295 0 -476.5 209t-181.5 529zM359 717q0 -230 91.5 -370.5t274.5 -140.5q185 0 278 140.5t93 370.5v24 q0 226 -94 367t-278 141t-274.5 -140t-90.5 -368v-24z" /> +<glyph unicode="R" horiz-adv-x="1408" d="M56 0v175l155 30v1045l-155 30v176h155h499q248 0 389 -113.5t141 -313.5q0 -110 -59 -191t-173 -131q129 -38 185.5 -126.5t56.5 -219.5v-74q0 -48 19 -74.5t63 -31.5l36 -5v-176h-151q-143 0 -201 77t-58 199v83q0 106 -56.5 166.5t-159.5 63.5h-239v-384l156 -30v-175 h-603zM503 814h202q122 0 183 52t61 150t-60.5 156.5t-178.5 58.5h-207v-417z" /> +<glyph unicode="S" horiz-adv-x="1242" d="M97 1071q0 177 150 289.5t377 115.5q168 0 306 -51t232 -136v-298h-219l-38 200q-38 24 -111 42t-155 18q-120 0 -185.5 -50.5t-65.5 -130.5q0 -74 68.5 -121.5t236.5 -100.5q241 -67 365.5 -177t124.5 -289q0 -187 -148 -295t-390 -108q-173 0 -312.5 55t-232.5 152v304 h226l31 -207q44 -36 119.5 -59.5t168.5 -23.5q120 0 182.5 49t62.5 131q0 84 -59.5 135t-208.5 96q-259 75 -392 178t-133 282z" /> +<glyph unicode="T" horiz-adv-x="1377" d="M40 1068v388h1298v-388h-224l-12 163h-268v-1026l156 -30v-175h-604v175l156 30v1026h-267l-12 -163h-223z" /> +<glyph unicode="U" horiz-adv-x="1547" d="M39 1280v176h155h292h156v-176l-156 -30v-760q0 -144 77.5 -215.5t212.5 -71.5q137 0 215 71t78 216v760l-155 30v176h603v-176l-156 -30v-760q0 -245 -161.5 -378t-423.5 -133q-261 0 -421.5 133t-160.5 378v760z" /> +<glyph unicode="V" horiz-adv-x="1468" d="M34 1280v176h532v-176l-111 -20l258 -873l18 -80h6l17 78l259 875l-110 20v176h532v-176l-122 -16l-429 -1264h-300l-430 1264z" /> +<glyph unicode="W" horiz-adv-x="1972" d="M29 1280v176h536v-176l-133 -23l167 -798l6 -1l273 998h215l275 -998l6 1l166 798l-133 23v176h535v-176l-120 -15l-295 -1265h-271l-267 961h-6l-267 -961h-271l-297 1265z" /> +<glyph unicode="X" horiz-adv-x="1438" d="M33 0v175l123 24l385 535l-375 521l-122 25v176h559v-176l-119 -13l225 -357l226 357l-117 13v176h561v-176l-122 -25l-375 -521l393 -534l129 -25v-175h-573v175l116 12l-234 368l-235 -368l117 -12v-175h-562z" /> +<glyph unicode="Y" horiz-adv-x="1398" d="M36 1280v176h551v-176l-119 -17l226 -478h6l226 478l-118 17v176h551v-176l-124 -20l-396 -748v-307l156 -30v-175h-603v175l156 30v322l-389 733z" /> +<glyph unicode="Z" horiz-adv-x="1226" d="M74 0v152l710 1079h-463l-23 -176h-223l22 401h1046v-146l-713 -1086h507l24 176h222l-22 -400h-1087z" /> +<glyph unicode="[" horiz-adv-x="578" d="M139 -336v2027h433v-216h-141v-1595h141v-216h-433z" /> +<glyph unicode="\" horiz-adv-x="854" d="M12 1456h288l608 -1581h-288z" /> +<glyph unicode="]" horiz-adv-x="569" d="M11 -120h143v1595h-143v216h434v-2027h-434v216z" /> +<glyph unicode="^" horiz-adv-x="884" d="M45 729l299 727h212l299 -727h-231l-165 413l-8 34h-6l-7 -34l-162 -413h-231z" /> +<glyph unicode="_" horiz-adv-x="1094" d="M92 0h910v-186h-910v186z" /> +<glyph unicode="`" horiz-adv-x="622" d="M64 1472l2 6h310l196 -266h-236z" /> +<glyph unicode="a" horiz-adv-x="1125" d="M74 301q0 152 122 235t358 83h149v106q0 78 -45 121t-133 43q-50 0 -89 -11.5t-63 -27.5l-19 -116h-220l1 240q80 54 183.5 91t225.5 37q201 0 326.5 -98.5t125.5 -280.5v-447q0 -25 0.5 -47t3.5 -42l89 -12v-175h-337q-12 27 -21 55.5t-14 57.5q-52 -60 -126.5 -97 t-170.5 -37q-159 0 -252.5 86.5t-93.5 235.5zM365 312q0 -55 35.5 -86t98.5 -31q66 0 120 28.5t84 71.5v165h-149q-93 0 -141 -43.5t-48 -104.5z" /> +<glyph unicode="b" horiz-adv-x="1181" d="M-22 1384v176h446v-593q47 65 112.5 100t150.5 35q206 0 314 -155.5t108 -414.5v-21q0 -242 -108 -387t-312 -145q-95 0 -165 39.5t-118 114.5l-21 -133h-252v1354zM424 308q27 -50 74.5 -76t116.5 -26q113 0 158 79.5t45 225.5v21q0 158 -46.5 250.5t-158.5 92.5 q-68 0 -115 -28.5t-74 -81.5v-457z" /> +<glyph unicode="c" horiz-adv-x="1079" d="M67 525v30q0 239 134.5 393t383.5 154q131 0 235 -39t173 -110l4 -289h-237l-48 169q-22 19 -54 31.5t-73 12.5q-124 0 -175 -90t-51 -232v-30q0 -145 47 -233.5t165 -88.5q78 0 125 45.5t47 121.5h264l3 -6v-10q0 -156 -123 -264q-127 -110 -316 -111q-242 0 -373 153 t-131 393z" /> +<glyph unicode="d" horiz-adv-x="1212" d="M67 511v21q0 256 111 413t312 157q81 0 146 -35.5t114 -100.5v388l-156 30v176h156h292v-1355l140 -30v-175h-393l-22 132q-51 -75 -120.5 -114t-158.5 -39q-200 0 -310.5 146t-110.5 386zM359 511q0 -142 47.5 -223.5t155.5 -81.5q64 0 111 26t77 75v459 q-30 52 -76.5 80.5t-109.5 28.5q-107 0 -156 -95t-49 -248v-21z" /> +<glyph unicode="e" horiz-adv-x="1091" d="M67 510v40q1 241 133 397q132 155 352 155h3q219 0 340 -132t121 -357v-159h-646l-2 -6q8 -107 71.5 -176t172.5 -69q97 0 161 19.5t140 61.5l79 -180q-67 -53 -173.5 -89t-237.5 -36q-234 0 -374 150t-140 381zM369 652l3 -5h358v26q0 93 -43.5 148.5t-131.5 55.5 q-81 0 -128 -62t-58 -163z" /> +<glyph unicode="f" horiz-adv-x="762" d="M59 877v205h161v120q0 182 105 280.5t295 98.5q37 0 75.5 -5.5t84.5 -15.5l-25 -217q-24 4 -46.5 7t-52.5 3q-71 0 -107.5 -39t-36.5 -112v-120h215v-205h-215v-672l141 -30v-175h-574v175l141 30v672h-161z" /> +<glyph unicode="g" horiz-adv-x="1170" d="M81 511v21q0 256 111.5 413t312.5 157q91 0 160 -40.5t118 -115.5l21 136h254v-1050q0 -214 -134.5 -341.5t-369.5 -127.5q-82 0 -174 22.5t-170 61.5l54 205q70 -30 140 -47.5t148 -17.5q107 0 160 65t53 181v71q-48 -61 -113 -93t-149 -32q-199 0 -310.5 146.5 t-111.5 385.5zM373 511q0 -142 48 -223.5t156 -81.5q67 0 113.5 24.5t74.5 71.5v470q-28 49 -74.5 76t-111.5 27q-107 0 -156.5 -95t-49.5 -248v-21z" /> +<glyph unicode="h" horiz-adv-x="1302" d="M32 1384v176h447v-616q51 75 125 116.5t164 41.5q170 0 266.5 -112.5t96.5 -347.5v-437l140 -30v-175h-558v175l126 30v439q0 126 -44.5 178.5t-132.5 52.5q-61 0 -106.5 -22t-76.5 -62v-586l126 -30v-175h-558v175l141 30v1149z" /> +<glyph unicode="i" horiz-adv-x="660" d="M39 906v176h448v-877l140 -30v-175h-573v175l141 30v671zM195 1341v219h292v-219h-292z" /> +<glyph unicode="j" horiz-adv-x="599" d="M-33 -420l14 223q22 -6 45 -9t50 -3q59 0 91.5 41.5t32.5 127.5v916l-156 30v176h448v-1122q0 -190 -101 -293.5t-280 -103.5q-41 0 -74.5 4t-69.5 13zM194 1343v217h292v-217h-292z" /> +<glyph unicode="k" horiz-adv-x="1249" d="M32 1384v176h447v-904h65l168 237l-95 13v176h532v-176l-128 -29l-195 -268l273 -411l111 -23v-175h-500v175l60 10l-166 268h-125v-248l126 -30v-175h-558v175l141 30v1149z" /> +<glyph unicode="l" horiz-adv-x="653" d="M32 1384v176h448v-1355l141 -30v-175h-574v175l141 30v1149z" /> +<glyph unicode="m" horiz-adv-x="1905" d="M29 906v176h427l12 -143q52 78 130.5 120.5t181.5 42.5q104 0 178 -46t112 -139q50 87 130 136t188 49q160 0 252.5 -110.5t92.5 -336.5v-450l141 -30v-175h-559v175l126 30v451q0 123 -40 171t-119 48q-62 0 -107.5 -27.5t-72.5 -76.5q0 -19 1 -32.5t1 -27.5v-506 l118 -30v-175h-527v175l118 30v451q0 120 -40 169.5t-120 49.5q-59 0 -103.5 -22.5t-73.5 -63.5v-584l126 -30v-175h-558v175l141 30v671z" /> +<glyph unicode="n" horiz-adv-x="1300" d="M32 906v176h427l13 -155q54 83 133 129t177 46q164 0 256 -103t92 -323v-471l140 -30v-175h-558v175l125 30v470q0 109 -44 154.5t-133 45.5q-58 0 -104 -23.5t-77 -66.5v-580l118 -30v-175h-550v175l140 30v671z" /> +<glyph unicode="o" horiz-adv-x="1148" d="M63 530v21q0 242 135.5 396.5t374.5 154.5q240 0 375.5 -154t135.5 -397v-21q0 -244 -135.5 -397.5t-373.5 -153.5q-241 0 -376.5 153.5t-135.5 397.5zM355 530q0 -148 52 -237.5t168 -89.5q113 0 165.5 90t52.5 237v21q0 144 -53 235t-167 91t-166 -91t-52 -235v-21z " /> +<glyph unicode="p" horiz-adv-x="1240" d="M41 906v176h424l14 -126q48 70 115 108t156 38q201 0 312 -157t111 -413v-21q0 -240 -111 -386t-310 -146q-85 0 -151 31.5t-113 92.5v-313l141 -30v-176h-573v176l141 30v1086zM488 297q27 -46 73.5 -70t114.5 -24q106 0 155.5 83t49.5 225v21q0 153 -51 248t-156 95 q-66 0 -112.5 -27t-73.5 -77v-474z" /> +<glyph unicode="q" horiz-adv-x="1154" d="M67 511v21q0 256 111 413t312 157q88 0 156 -39t117 -111l23 130h253v-1292l141 -30v-176h-574v176l141 30v310q-48 -60 -112.5 -90.5t-146.5 -30.5q-200 0 -310.5 146t-110.5 386zM359 511q0 -143 47.5 -225.5t155.5 -82.5q64 0 110 23.5t75 69.5v481q-29 48 -74.5 74 t-108.5 26q-107 0 -156 -95.5t-49 -249.5v-21z" /> +<glyph unicode="r" horiz-adv-x="862" d="M70 906v176h427l13 -158q38 84 98 131t139 47q23 0 48.5 -3.5t42.5 -8.5l-31 -266l-120 3q-64 0 -106 -25t-64 -71v-526l140 -30v-175h-572v175l140 30v671z" /> +<glyph unicode="s" horiz-adv-x="1054" d="M97 767q0 136 112 234.5t319 98.5q126 0 238.5 -34t176.5 -87l3 -269h-196l-31 135q-30 24 -75.5 40t-100.5 16q-77 0 -122 -34.5t-45 -86.5q0 -49 43 -81.5t172 -57.5q201 -40 298 -117.5t97 -213.5q0 -146 -125.5 -238.5t-330.5 -92.5q-125 0 -229.5 36.5t-185.5 104.5 l-3 243h204l40 -141q26 -22 71 -32.5t94 -10.5q89 0 135.5 32t46.5 87q0 48 -47 83t-173 62q-191 39 -288.5 115.5t-97.5 208.5z" /> +<glyph unicode="t" horiz-adv-x="764" d="M44 877v205h159v265h291v-265h190v-205h-190v-551q0 -63 26 -90t70 -27q30 0 52.5 2.5t50.5 8.5l25 -211q-49 -15 -97 -22.5t-104 -7.5q-151 0 -232.5 83t-81.5 263v552h-159z" /> +<glyph unicode="u" horiz-adv-x="1278" d="M33 906v176h119h292v-655q0 -118 39.5 -169.5t117.5 -51.5q69 0 119.5 22.5t82.5 64.5v583l-128 30v176h128h292v-877l131 -30v-175h-387l-19 137q-52 -76 -128.5 -117t-174.5 -41q-171 0 -268 109.5t-97 340.5v447z" /> +<glyph unicode="v" horiz-adv-x="1167" d="M31 906v176h491v-176l-102 -19l143 -484l19 -102h6l21 102l141 483l-104 20v176h491v-176l-94 -15l-319 -891h-279l-320 891z" /> +<glyph unicode="w" horiz-adv-x="1642" d="M39 906v176h490v-176l-115 -22l102 -495h6l202 693h196l204 -695h6l101 496l-116 23v176h490v-176l-109 -14l-226 -892h-244l-201 644h-6l-201 -644h-243l-227 892z" /> +<glyph unicode="x" horiz-adv-x="1191" d="M32 0v175l101 16l294 356l-284 342l-101 17v176h487v-169l-99 -12l164 -208l161 208l-101 12v169h489v-176l-98 -17l-278 -342l293 -356l102 -16v-175h-495v168l99 12l-168 218l-171 -219l87 -11v-168h-482z" /> +<glyph unicode="y" horiz-adv-x="1212" d="M26 906v176h530v-176l-121 -20l148 -432l15 -78l6 -1l171 511l-122 20v176h530v-176l-101 -15l-398 -1053q-47 -117 -125.5 -196t-236.5 -79q-37 0 -69.5 6t-76.5 17l34 213q14 -2 29 -4t26 -2q73 0 112 35.5t60 88.5l33 82l-343 891z" /> +<glyph unicode="z" horiz-adv-x="1070" d="M88 0v172l515 684h-265l-11 -143h-224v369h866v-167l-519 -691h302l12 144h223v-368h-899z" /> +<glyph unicode="{" horiz-adv-x="654" d="M39 518v201q91 0 134.5 54.5t43.5 155.5v203q0 171 82.5 290.5t277.5 174.5l56 -157q-86 -31 -120.5 -110.5t-34.5 -197.5v-203q0 -104 -45 -184.5t-135 -125.5q90 -47 135 -127.5t45 -182.5v-203q0 -118 34.5 -197.5t120.5 -110.5l-56 -158q-195 55 -277.5 175 t-82.5 291v203q0 99 -43.5 154t-134.5 55z" /> +<glyph unicode="|" horiz-adv-x="428" d="M132 -270v1726h175v-1726h-175z" /> +<glyph unicode="}" horiz-adv-x="651" d="M11 -202q84 31 119 110.5t35 197.5v203q0 104 46 184t140 125q-94 45 -140 125.5t-46 185.5v203q0 118 -35 197.5t-119 110.5l56 157q194 -55 277 -174.5t83 -290.5v-203q0 -101 43 -155.5t134 -54.5v-201q-91 0 -134 -55t-43 -154v-203q0 -171 -83 -291t-277 -175z" /> +<glyph unicode="~" horiz-adv-x="1323" d="M100 448q0 162 86.5 269.5t223.5 107.5q83 0 158.5 -33.5t150.5 -99.5q49 -45 87 -64.5t81 -19.5q51 0 88 52t37 125l202 -27q0 -161 -88.5 -270.5t-223.5 -109.5q-85 0 -157 31.5t-150 101.5q-50 44 -88 64t-82 20q-52 0 -88 -51t-36 -122z" /> +<glyph unicode="¡" horiz-adv-x="524" d="M130 -374v953h293v-953h-293zM130 825v257h293v-257h-293z" /> +<glyph unicode="¢" horiz-adv-x="1092" d="M80 525v30q0 203 100 348.5t287 185.5v229h200v-219q107 -10 193 -47.5t146 -98.5l4 -289h-237l-48 169q-22 19 -54 31.5t-73 12.5q-124 0 -175 -90t-51 -232v-30q0 -145 47 -233.5t165 -88.5q78 0 125 45.5t47 121.5h265l3 -6q3 -144 -98 -249.5t-259 -128.5v-231h-200 v235q-188 36 -287.5 181.5t-99.5 353.5z" /> +<glyph unicode="£" horiz-adv-x="1177" d="M57 588v225h155l-8 214q0 210 120.5 330t322.5 120q215 0 333.5 -111.5t114.5 -294.5l-2 -6h-285q0 96 -46 141.5t-116 45.5q-71 0 -111 -59t-40 -166l10 -214h356v-225h-346l4 -85q0 -78 -30 -150t-86 -129h479l12 144h223v-368h-997v224h10q47 12 70.5 94.5t23.5 171.5 l-4 98h-163z" /> +<glyph unicode="¤" horiz-adv-x="1432" d="M82 118l135 137q-49 76 -74.5 165.5t-25.5 187.5q0 101 28 193.5t81 171.5l-144 147l141 144l142 -145q74 55 162 85t185 30q96 0 185 -30.5t164 -86.5l145 148l142 -145l-148 -151q51 -78 79 -169.5t28 -191.5q0 -97 -25.5 -185.5t-72.5 -163.5l139 -141l-142 -145 l-132 134q-77 -61 -169.5 -94t-192.5 -33q-101 0 -193 32.5t-167 93.5l-129 -132zM302 608q0 -184 119.5 -311.5t290.5 -127.5q170 0 289.5 127t119.5 312q0 183 -119.5 310t-289.5 127q-171 0 -290.5 -127t-119.5 -310z" /> +<glyph unicode="¥" horiz-adv-x="1401" d="M41 1280v176h536v-176l-68 -13l193 -418h6l193 418l-68 13v176h536v-176l-166 -22l-276 -516h244v-165h-324v-125h324v-164h-324v-83l140 -30v-175h-587v175l155 30v83h-339v164h339v125h-339v165h267l-276 516z" /> +<glyph unicode="¦" horiz-adv-x="513" d="M134 -270v795h261v-795h-261zM134 698v758h261v-758h-261z" /> +<glyph unicode="§" horiz-adv-x="1243" d="M85 536q0 88 42 157t122 114q-69 50 -103.5 120.5t-34.5 168.5q0 172 141.5 276.5t378.5 104.5q244 0 381 -111t132 -311l-2 -6h-282q0 88 -60.5 145.5t-168.5 57.5q-114 0 -170.5 -43.5t-56.5 -110.5q0 -75 55.5 -113.5t231.5 -86.5q247 -64 364 -157.5t117 -265.5 q0 -91 -42 -159t-121 -111q68 -51 102.5 -121.5t34.5 -167.5q0 -177 -140.5 -277t-377.5 -100q-232 0 -387 99.5t-150 317.5l2 6l282 1q0 -106 72.5 -152t180.5 -46q107 0 166.5 41.5t59.5 108.5t-60.5 107.5t-229.5 90.5q-245 64 -362 157.5t-117 265.5zM377 562 q0 -81 55 -122t232 -93q34 -10 68.5 -20t69.5 -21q39 22 60.5 59t21.5 85q0 71 -62 116t-231 97q-40 10 -74 21t-65 22q-38 -22 -56.5 -59t-18.5 -85z" /> +<glyph unicode="¨" horiz-adv-x="1031" d="M144 1252v204h267v-204h-267zM644 1252v204h267v-204h-267z" /> +<glyph unicode="©" horiz-adv-x="1566" d="M74 729q0 315 207 531t503 216q295 0 502.5 -216t207.5 -531q0 -316 -208 -533t-502 -217q-296 0 -503 217t-207 533zM196 729q0 -264 171.5 -444.5t416.5 -180.5q244 0 415.5 180.5t171.5 444.5q0 263 -171.5 442.5t-415.5 179.5q-246 0 -417 -179.5t-171 -442.5z M421 669v119q0 173 94.5 280t254.5 107q157 0 245.5 -79.5t84.5 -228.5l-2 -6h-148q0 94 -45 136.5t-135 42.5q-94 0 -144 -69t-50 -182v-120q0 -115 50 -183.5t144 -68.5q90 0 134.5 41.5t44.5 137.5h148l2 -6q4 -151 -84 -229.5t-245 -78.5q-160 0 -254.5 106t-94.5 281z " /> +<glyph unicode="ª" horiz-adv-x="867" d="M94 920q0 111 84.5 171t246.5 60h137v51q0 62 -29.5 94.5t-86.5 32.5q-66 0 -102 -26t-36 -73l-165 13l-1 6q-6 98 79 163t225 65q134 0 212.5 -71t78.5 -205v-314q0 -51 6 -95t20 -86h-177q-8 21 -13 44.5t-8 49.5q-33 -47 -88.5 -77.5t-133.5 -30.5q-119 0 -184 61 t-65 167zM269 924q0 -43 29 -65.5t88 -22.5q51 0 105 30t71 65v103h-136q-74 0 -115.5 -32t-41.5 -78z" /> +<glyph unicode="«" horiz-adv-x="953" d="M4 116zM4 506v19l280 390h187l-240 -400l240 -399h-187zM399 506v19l280 390h187l-240 -400l240 -399h-187z" /> +<glyph unicode="¬" horiz-adv-x="1098" d="M114 634v171h835v-431h-200v260h-635z" /> +<glyph unicode="­" horiz-adv-x="815" d="M131 510v225h564v-225h-564zM131 510z" /> +<glyph unicode="®" horiz-adv-x="1566" d="M74 729q0 315 207 531t503 216q295 0 502.5 -216t207.5 -531q0 -316 -208 -533t-502 -217q-296 0 -503 217t-207 533zM196 729q0 -264 171.5 -444.5t416.5 -180.5q244 0 415.5 180.5t171.5 444.5q0 263 -171.5 442.5t-415.5 179.5q-246 0 -417 -179.5t-171 -442.5z M489 316v850h281q151 0 238 -68t87 -194q0 -58 -29 -101.5t-85 -74.5q58 -30 84.5 -84.5t26.5 -128.5v-56q0 -41 3.5 -73.5t13.5 -53.5v-16h-155q-9 21 -11 61.5t-2 82.5v54q0 71 -33.5 105t-109.5 34h-158v-337h-151zM640 787h136q71 0 120 30t49 86q0 72 -39 101t-136 29 h-130v-246z" /> +<glyph unicode="¯" horiz-adv-x="1008" d="M146 1292v165h731v-165h-731z" /> +<glyph unicode="°" horiz-adv-x="745" d="M106 1203q0 112 80 193t192 81q110 0 189 -81t79 -193q0 -114 -78.5 -192.5t-189.5 -78.5q-113 0 -192.5 79t-79.5 192zM253 1203q0 -53 36.5 -88.5t88.5 -35.5t87 35t35 89t-35.5 91t-86.5 37q-52 0 -88.5 -37t-36.5 -91z" /> +<glyph unicode="±" horiz-adv-x="1040" d="M66 715v232h333v363h256v-363h327v-232h-327v-383h-256v383h-333zM119 1v228h834v-228h-834z" /> +<glyph unicode="²" horiz-adv-x="823" d="M101 1223q-6 106 82.5 181t236.5 75q144 0 222.5 -65t78.5 -183q0 -82 -53.5 -144.5t-177.5 -165.5l-109 -93l2 -6h346v-155h-623v155l310 252q60 50 77.5 83.5t17.5 74.5q0 39 -23.5 65.5t-72.5 26.5q-55 0 -83 -30t-28 -77h-201z" /> +<glyph unicode="³" horiz-adv-x="833" d="M88 893l2 6h200q0 -42 31.5 -65.5t91.5 -23.5q56 0 90 24t34 68q0 50 -35 77t-101 27h-112v133h112q62 0 91.5 24.5t29.5 70.5q0 38 -28 63.5t-84 25.5q-51 0 -79 -22t-28 -53h-200l-2 6q-6 101 82 162.5t222 61.5q151 0 239.5 -59.5t88.5 -169.5q0 -55 -35.5 -100.5 t-96.5 -70.5q71 -24 108.5 -71.5t37.5 -115.5q0 -112 -89.5 -174t-242.5 -62q-145 0 -239 62.5t-88 175.5z" /> +<glyph unicode="´" horiz-adv-x="644" d="M82 1212l199 266h309l2 -6l-276 -260h-234z" /> +<glyph unicode="µ" horiz-adv-x="1347" d="M55 906v176h156h291v-620q0 -149 44.5 -202.5t134.5 -53.5q76 0 126 27.5t78 80.5v562l-156 30v176h447v-877l141 -30v-175h-412l-6 68q-44 -44 -100.5 -66.5t-124.5 -22.5q-51 0 -94 10.5t-78 32.5v-438h-291v1292z" /> +<glyph unicode="¶" horiz-adv-x="1127" d="M54 988q0 207 129.5 337.5t362.5 130.5h375v-1251l155 -30v-175h-603v175l156 30v315h-83q-233 0 -362.5 129.5t-129.5 338.5zM921 1250v206h155v-176z" /> +<glyph unicode="·" horiz-adv-x="553" d="M145 568v260h292v-260h-292z" /> +<glyph unicode="¸" horiz-adv-x="500" d="M83 -136l31 142h219l-11 -57q64 -11 107 -52t43 -121q0 -107 -91.5 -171t-259.5 -64l-7 161q51 0 81 20.5t30 62.5q0 41 -32 57.5t-110 21.5z" /> +<glyph unicode="¹" horiz-adv-x="536" d="M102 1295v159l337 23v-812h-210v630h-127z" /> +<glyph unicode="º" horiz-adv-x="914" d="M109 1025v117q0 148 94 241.5t252 93.5t252.5 -93.5t94.5 -241.5v-117q0 -149 -94 -241.5t-251 -92.5q-159 0 -253.5 92.5t-94.5 241.5zM284 1025q0 -85 44 -136.5t129 -51.5q82 0 126 51.5t44 136.5v117q0 83 -44.5 135t-127.5 52q-84 0 -127.5 -52t-43.5 -135v-117z " /> +<glyph unicode="»" horiz-adv-x="973" d="M64 151l239 399l-239 400h187l280 -390v-19l-280 -390h-187zM64 151zM470 151l239 399l-239 400h187l280 -390v-19l-280 -390h-187z" /> +<glyph unicode="¼" horiz-adv-x="1413" d="M117 0zM117 1294v159l337 23v-812h-210v630h-127zM240 192l711 1138l142 -75l-711 -1138zM704 265l423 534v2h211v-505h101v-157h-101v-139h-211v139h-410zM919 296h208v257l-6 2l-13 -20z" /> +<glyph unicode="½" horiz-adv-x="1457" d="M102 0zM102 1294v159l337 23v-812h-210v630h-127zM238 192l711 1138l142 -75l-711 -1138zM824 556q-6 106 82.5 181t236.5 75q144 0 222.5 -65t78.5 -183q0 -82 -53.5 -144.5t-177.5 -165.5l-109 -93l2 -6h346v-155h-623v155l310 252q60 50 77.5 83.5t17.5 74.5 q0 39 -23.5 65.5t-72.5 26.5q-55 0 -83 -30t-28 -77h-201z" /> +<glyph unicode="¾" horiz-adv-x="1635" d="M73 0zM79 894l2 6h200q0 -42 31.5 -65.5t91.5 -23.5q56 0 90 24t34 68q0 50 -35 77t-101 27h-112v133h112q62 0 91.5 24.5t29.5 70.5q0 38 -28 63.5t-84 25.5q-51 0 -79 -22t-28 -53h-200l-2 6q-6 101 82 162.5t222 61.5q151 0 239.5 -59.5t88.5 -169.5 q0 -55 -35.5 -100.5t-96.5 -70.5q71 -24 108.5 -71.5t37.5 -115.5q0 -112 -89.5 -174t-242.5 -62q-145 0 -239 62.5t-88 175.5zM456 192l711 1138l142 -75l-711 -1138zM891 265l423 534v2h211v-505h101v-157h-101v-139h-211v139h-410zM1106 296h208v257l-6 2l-13 -20z" /> +<glyph unicode="¿" horiz-adv-x="945" d="M45 27q0 125 74 233t187 183q60 45 79.5 92.5t19.5 132.5h291q-2 -141 -42.5 -206.5t-159.5 -157.5q-72 -58 -114.5 -125.5t-42.5 -149.5q0 -90 48.5 -142t139.5 -52q73 0 124 43t54 128h283l2 -6q2 -191 -127.5 -292.5t-335.5 -101.5q-226 0 -353 113t-127 308zM403 831 v251h294v-251h-294z" /> +<glyph unicode="À" d="M41 0v175l104 15l443 1266h299l440 -1266l104 -15v-175h-496v175l101 18l-64 200h-472l-64 -200l101 -18v-175h-496zM41 0zM376 1828l2 6h310l196 -266h-236zM569 608h334l-164 513h-6z" /> +<glyph unicode="Á" d="M41 0v175l104 15l443 1266h299l440 -1266l104 -15v-175h-496v175l101 18l-64 200h-472l-64 -200l101 -18v-175h-496zM41 0zM555 1560l199 266h309l2 -6l-276 -260h-234zM569 608h334l-164 513h-6z" /> +<glyph unicode="Â" d="M41 0v175l104 15l443 1266h299l440 -1266l104 -15v-175h-496v175l101 18l-64 200h-472l-64 -200l101 -18v-175h-496zM41 0zM364 1581v26l282 240h169l287 -243v-23h-217l-155 146l-154 -146h-212zM569 608h334l-164 513h-6z" /> +<glyph unicode="Ã" d="M41 0v175l104 15l443 1266h299l440 -1266l104 -15v-175h-496v175l101 18l-64 200h-472l-64 -200l101 -18v-175h-496zM41 0zM346 1624q0 94 59.5 163.5t149.5 69.5q56 0 151.5 -43.5t147.5 -43.5q35 0 60.5 32t25.5 79l155 -45q0 -96 -59.5 -163.5t-150.5 -67.5 q-70 0 -158.5 43.5t-140.5 43.5q-36 0 -60.5 -32.5t-24.5 -77.5zM569 608h334l-164 513h-6z" /> +<glyph unicode="Ä" d="M41 0v175l104 15l443 1266h299l440 -1266l104 -15v-175h-496v175l101 18l-64 200h-472l-64 -200l101 -18v-175h-496zM41 0zM334 1601v204h267v-204h-267zM569 608h334l-164 513h-6zM834 1601v204h267v-204h-267z" /> +<glyph unicode="Å" d="M41 0v175l104 15l443 1266h299l440 -1266l104 -15v-175h-496v175l101 18l-64 200h-472l-64 -200l101 -18v-175h-496zM41 0zM519 1745q0 83 61.5 139.5t151.5 56.5q88 0 148.5 -56.5t60.5 -139.5q0 -84 -60.5 -138t-148.5 -54q-91 0 -152 54t-61 138zM569 608h334 l-164 513h-6zM634 1745q0 -43 28 -70.5t70 -27.5q41 0 67 27.5t26 70.5q0 44 -26 72t-67 28q-42 0 -70 -28.5t-28 -71.5z" /> +<glyph unicode="Æ" horiz-adv-x="2047" d="M66 0v175l136 20l678 1261h1017v-369h-223l-11 141h-362l16 -366h499v-227h-490l17 -408h381l12 141h222v-368h-1052v175l146 28l-6 151h-430l-83 -165l84 -14v-175h-551zM730 582h306l-23 554l-5 1z" /> +<glyph unicode="Ç" horiz-adv-x="1327" d="M52 0zM52 703v49q0 317 186 521t481 204q169 0 305 -61.5t225 -162.5v-288h-217l-30 194q-43 43 -108.5 68t-154.5 25q-190 0 -292.5 -138t-102.5 -360v-51q0 -222 102 -361t288 -139q86 0 157.5 25t110.5 68l30 194h217v-288q-88 -102 -224.5 -162.5t-305.5 -60.5 q-293 0 -480 203t-187 521zM559 -138l31 142h219l-11 -57q64 -11 107 -52t43 -121q0 -107 -91.5 -171t-259.5 -64l-7 161q51 0 81 20.5t30 62.5q0 41 -32 57.5t-110 21.5z" /> +<glyph unicode="È" horiz-adv-x="1308" d="M56 0v175l155 30v1045l-155 30v176h155h995v-399h-224l-13 174h-466v-366h493v-225h-493v-416h470l13 174h222v-398h-1152zM56 0zM287 1828l2 6h310l196 -266h-236z" /> +<glyph unicode="É" horiz-adv-x="1308" d="M56 0v175l155 30v1045l-155 30v176h155h995v-399h-224l-13 174h-466v-366h493v-225h-493v-416h470l13 174h222v-398h-1152zM56 0zM466 1560l199 266h309l2 -6l-276 -260h-234z" /> +<glyph unicode="Ê" horiz-adv-x="1308" d="M56 0v175l155 30v1045l-155 30v176h155h995v-399h-224l-13 174h-466v-366h493v-225h-493v-416h470l13 174h222v-398h-1152zM56 0zM275 1581v26l282 240h169l287 -243v-23h-217l-155 146l-154 -146h-212z" /> +<glyph unicode="Ë" horiz-adv-x="1308" d="M56 0v175l155 30v1045l-155 30v176h155h995v-399h-224l-13 174h-466v-366h493v-225h-493v-416h470l13 174h222v-398h-1152zM56 0zM245 1601v204h267v-204h-267zM745 1601v204h267v-204h-267z" /> +<glyph unicode="Ì" horiz-adv-x="713" d="M-14 1827l2 6h310l196 -266h-236zM0 0zM55 0v175l156 30v1045l-156 30v176h603v-176l-156 -30v-1045l156 -30v-175h-603z" /> +<glyph unicode="Í" horiz-adv-x="713" d="M55 0v175l156 30v1045l-156 30v176h603v-176l-156 -30v-1045l156 -30v-175h-603zM55 0zM164 1559l199 266h309l2 -6l-276 -260h-234z" /> +<glyph unicode="Î" horiz-adv-x="713" d="M-26 1580v26l282 240h169l287 -243v-23h-217l-155 146l-154 -146h-212zM0 0zM55 0v175l156 30v1045l-156 30v176h603v-176l-156 -30v-1045l156 -30v-175h-603z" /> +<glyph unicode="Ï" horiz-adv-x="713" d="M-56 1600v204h267v-204h-267zM0 0zM55 0v175l156 30v1045l-156 30v176h603v-176l-156 -30v-1045l156 -30v-175h-603zM444 1600v204h267v-204h-267z" /> +<glyph unicode="Ð" horiz-adv-x="1441" d="M46 665v155h195v430l-155 30v176h655q267 0 440 -170.5t173 -437.5v-241q0 -268 -173 -437.5t-440 -169.5h-655v175l155 30v460h-195zM533 224h193q157 0 246 106t89 277v243q0 169 -89 275t-246 106h-193v-411h214v-155h-214v-441z" /> +<glyph unicode="Ñ" horiz-adv-x="1582" d="M56 0v175l155 30v1045l-155 30v176h155h292l588 -980l6 1v773l-156 30v176h447h156v-176l-156 -30v-1250h-291l-588 980l-6 -1v-774l156 -30v-175h-603zM56 0zM401 1624q0 94 59.5 163.5t149.5 69.5q56 0 151.5 -43.5t147.5 -43.5q35 0 60.5 32t25.5 79l155 -45 q0 -96 -59.5 -163.5t-150.5 -67.5q-70 0 -158.5 43.5t-140.5 43.5q-36 0 -60.5 -32.5t-24.5 -77.5z" /> +<glyph unicode="Ò" horiz-adv-x="1448" d="M67 0zM67 717v22q0 318 181 528t476 210q296 0 479.5 -210t183.5 -528v-22q0 -320 -183 -529t-479 -209q-295 0 -476.5 209t-181.5 529zM359 717q0 -230 91.5 -370.5t274.5 -140.5q185 0 278 140.5t93 370.5v24q0 226 -94 367t-278 141t-274.5 -140t-90.5 -368v-24z M372 1827l2 6h310l196 -266h-236z" /> +<glyph unicode="Ó" horiz-adv-x="1448" d="M67 0zM67 717v22q0 318 181 528t476 210q296 0 479.5 -210t183.5 -528v-22q0 -320 -183 -529t-479 -209q-295 0 -476.5 209t-181.5 529zM359 717q0 -230 91.5 -370.5t274.5 -140.5q185 0 278 140.5t93 370.5v24q0 226 -94 367t-278 141t-274.5 -140t-90.5 -368v-24z M551 1559l199 266h309l2 -6l-276 -260h-234z" /> +<glyph unicode="Ô" horiz-adv-x="1448" d="M67 0zM67 717v22q0 318 181 528t476 210q296 0 479.5 -210t183.5 -528v-22q0 -320 -183 -529t-479 -209q-295 0 -476.5 209t-181.5 529zM359 717q0 -230 91.5 -370.5t274.5 -140.5q185 0 278 140.5t93 370.5v24q0 226 -94 367t-278 141t-274.5 -140t-90.5 -368v-24z M360 1580v26l282 240h169l287 -243v-23h-217l-155 146l-154 -146h-212z" /> +<glyph unicode="Õ" horiz-adv-x="1448" d="M67 0zM67 717v22q0 318 181 528t476 210q296 0 479.5 -210t183.5 -528v-22q0 -320 -183 -529t-479 -209q-295 0 -476.5 209t-181.5 529zM342 1623q0 94 59.5 163.5t149.5 69.5q56 0 151.5 -43.5t147.5 -43.5q35 0 60.5 32t25.5 79l155 -45q0 -96 -59.5 -163.5 t-150.5 -67.5q-70 0 -158.5 43.5t-140.5 43.5q-36 0 -60.5 -32.5t-24.5 -77.5zM359 717q0 -230 91.5 -370.5t274.5 -140.5q185 0 278 140.5t93 370.5v24q0 226 -94 367t-278 141t-274.5 -140t-90.5 -368v-24z" /> +<glyph unicode="Ö" horiz-adv-x="1448" d="M67 0zM67 717v22q0 318 181 528t476 210q296 0 479.5 -210t183.5 -528v-22q0 -320 -183 -529t-479 -209q-295 0 -476.5 209t-181.5 529zM330 1600v204h267v-204h-267zM359 717q0 -230 91.5 -370.5t274.5 -140.5q185 0 278 140.5t93 370.5v24q0 226 -94 367t-278 141 t-274.5 -140t-90.5 -368v-24zM830 1600v204h267v-204h-267z" /> +<glyph unicode="×" horiz-adv-x="1068" d="M61 371l309 315l-309 315l171 164l304 -310l304 310l171 -164l-309 -315l309 -315l-171 -164l-304 310l-304 -310z" /> +<glyph unicode="Ø" horiz-adv-x="1400" d="M72 717v22q0 318 181 528t476 210q83 0 159 -18.5t144 -53.5l66 113h144l-106 -181q122 -101 189 -256.5t67 -341.5v-22q0 -320 -183 -529t-479 -209q-94 0 -178 22.5t-155 66.5l-95 -163h-144l139 239q-108 100 -166.5 248t-58.5 325zM364 717q0 -100 17 -184.5 t52 -143.5l6 -1l473 812q-39 23 -85 36t-98 13q-184 0 -274.5 -140t-90.5 -368v-24zM519 277q41 -35 93.5 -53t117.5 -18q185 0 278 140.5t93 370.5v24q0 112 -24 206t-70 156l-6 1z" /> +<glyph unicode="Ù" horiz-adv-x="1547" d="M39 0zM39 1280v176h155h292h156v-176l-156 -30v-760q0 -144 77.5 -215.5t212.5 -71.5q137 0 215 71t78 216v760l-155 30v176h603v-176l-156 -30v-760q0 -245 -161.5 -378t-423.5 -133q-261 0 -421.5 133t-160.5 378v760zM423 1828l2 6h310l196 -266h-236z" /> +<glyph unicode="Ú" horiz-adv-x="1547" d="M39 0zM39 1280v176h155h292h156v-176l-156 -30v-760q0 -144 77.5 -215.5t212.5 -71.5q137 0 215 71t78 216v760l-155 30v176h603v-176l-156 -30v-760q0 -245 -161.5 -378t-423.5 -133q-261 0 -421.5 133t-160.5 378v760zM602 1560l199 266h309l2 -6l-276 -260h-234z" /> +<glyph unicode="Û" horiz-adv-x="1547" d="M39 0zM39 1280v176h155h292h156v-176l-156 -30v-760q0 -144 77.5 -215.5t212.5 -71.5q137 0 215 71t78 216v760l-155 30v176h603v-176l-156 -30v-760q0 -245 -161.5 -378t-423.5 -133q-261 0 -421.5 133t-160.5 378v760zM411 1581v26l282 240h169l287 -243v-23h-217 l-155 146l-154 -146h-212z" /> +<glyph unicode="Ü" horiz-adv-x="1547" d="M39 0zM39 1280v176h155h292h156v-176l-156 -30v-760q0 -144 77.5 -215.5t212.5 -71.5q137 0 215 71t78 216v760l-155 30v176h603v-176l-156 -30v-760q0 -245 -161.5 -378t-423.5 -133q-261 0 -421.5 133t-160.5 378v760zM381 1601v204h267v-204h-267zM881 1601v204h267 v-204h-267z" /> +<glyph unicode="Ý" horiz-adv-x="1398" d="M36 0zM36 1280v176h551v-176l-119 -17l226 -478h6l226 478l-118 17v176h551v-176l-124 -20l-396 -748v-307l156 -30v-175h-603v175l156 30v322l-389 733zM537 1560l199 266h309l2 -6l-276 -260h-234z" /> +<glyph unicode="Þ" horiz-adv-x="1306" d="M67 0v175l156 30v1045l-156 30v176h448h156v-176l-156 -30v-64h221q254 0 396 -124t142 -324q0 -201 -142 -325t-396 -124h-221v-84l156 -30v-175h-604zM515 514h221q123 0 184.5 63.5t61.5 158.5t-61.5 160t-184.5 65h-221v-447z" /> +<glyph unicode="ß" horiz-adv-x="1321" d="M39 0v175l155 30v896q0 226 129 349t352 123q181 0 299.5 -95.5t118.5 -271.5q0 -108 -53 -205.5t-53 -165.5q0 -56 149.5 -197.5t149.5 -281.5q0 -189 -115 -283t-332 -94q-77 0 -151.5 15t-111.5 41l54 223q36 -22 89.5 -38.5t113.5 -16.5q76 0 119 38t43 103 q0 71 -150 205.5t-150 276.5q0 90 55 190t55 175q0 71 -39.5 114.5t-109.5 43.5q-76 0 -123 -67.5t-47 -184.5v-1097h-447z" /> +<glyph unicode="à" horiz-adv-x="1125" d="M74 0zM74 301q0 152 122 235t358 83h149v106q0 78 -45 121t-133 43q-50 0 -89 -11.5t-63 -27.5l-19 -116h-220l1 240q80 54 183.5 91t225.5 37q201 0 326.5 -98.5t125.5 -280.5v-447q0 -25 0.5 -47t3.5 -42l89 -12v-175h-337q-12 27 -21 55.5t-14 57.5 q-52 -60 -126.5 -97t-170.5 -37q-159 0 -252.5 86.5t-93.5 235.5zM219 1504l2 6h310l196 -266h-236zM365 312q0 -55 35.5 -86t98.5 -31q66 0 120 28.5t84 71.5v165h-149q-93 0 -141 -43.5t-48 -104.5z" /> +<glyph unicode="á" horiz-adv-x="1125" d="M74 0zM74 301q0 152 122 235t358 83h149v106q0 78 -45 121t-133 43q-50 0 -89 -11.5t-63 -27.5l-19 -116h-220l1 240q80 54 183.5 91t225.5 37q201 0 326.5 -98.5t125.5 -280.5v-447q0 -25 0.5 -47t3.5 -42l89 -12v-175h-337q-12 27 -21 55.5t-14 57.5 q-52 -60 -126.5 -97t-170.5 -37q-159 0 -252.5 86.5t-93.5 235.5zM365 312q0 -55 35.5 -86t98.5 -31q66 0 120 28.5t84 71.5v165h-149q-93 0 -141 -43.5t-48 -104.5zM398 1236l199 266h309l2 -6l-276 -260h-234z" /> +<glyph unicode="â" horiz-adv-x="1125" d="M74 0zM74 301q0 152 122 235t358 83h149v106q0 78 -45 121t-133 43q-50 0 -89 -11.5t-63 -27.5l-19 -116h-220l1 240q80 54 183.5 91t225.5 37q201 0 326.5 -98.5t125.5 -280.5v-447q0 -25 0.5 -47t3.5 -42l89 -12v-175h-337q-12 27 -21 55.5t-14 57.5 q-52 -60 -126.5 -97t-170.5 -37q-159 0 -252.5 86.5t-93.5 235.5zM207 1257v26l282 240h169l287 -243v-23h-217l-155 146l-154 -146h-212zM365 312q0 -55 35.5 -86t98.5 -31q66 0 120 28.5t84 71.5v165h-149q-93 0 -141 -43.5t-48 -104.5z" /> +<glyph unicode="ã" horiz-adv-x="1125" d="M74 0zM74 301q0 152 122 235t358 83h149v106q0 78 -45 121t-133 43q-50 0 -89 -11.5t-63 -27.5l-19 -116h-220l1 240q80 54 183.5 91t225.5 37q201 0 326.5 -98.5t125.5 -280.5v-447q0 -25 0.5 -47t3.5 -42l89 -12v-175h-337q-12 27 -21 55.5t-14 57.5 q-52 -60 -126.5 -97t-170.5 -37q-159 0 -252.5 86.5t-93.5 235.5zM189 1300q0 94 59.5 163.5t149.5 69.5q56 0 151.5 -43.5t147.5 -43.5q35 0 60.5 32t25.5 79l155 -45q0 -96 -59.5 -163.5t-150.5 -67.5q-70 0 -158.5 43.5t-140.5 43.5q-36 0 -60.5 -32.5t-24.5 -77.5z M365 312q0 -55 35.5 -86t98.5 -31q66 0 120 28.5t84 71.5v165h-149q-93 0 -141 -43.5t-48 -104.5z" /> +<glyph unicode="ä" horiz-adv-x="1125" d="M74 0zM74 301q0 152 122 235t358 83h149v106q0 78 -45 121t-133 43q-50 0 -89 -11.5t-63 -27.5l-19 -116h-220l1 240q80 54 183.5 91t225.5 37q201 0 326.5 -98.5t125.5 -280.5v-447q0 -25 0.5 -47t3.5 -42l89 -12v-175h-337q-12 27 -21 55.5t-14 57.5 q-52 -60 -126.5 -97t-170.5 -37q-159 0 -252.5 86.5t-93.5 235.5zM177 1277v204h267v-204h-267zM365 312q0 -55 35.5 -86t98.5 -31q66 0 120 28.5t84 71.5v165h-149q-93 0 -141 -43.5t-48 -104.5zM677 1277v204h267v-204h-267z" /> +<glyph unicode="å" horiz-adv-x="1125" d="M74 0zM74 301q0 152 122 235t358 83h149v106q0 78 -45 121t-133 43q-50 0 -89 -11.5t-63 -27.5l-19 -116h-220l1 240q80 54 183.5 91t225.5 37q201 0 326.5 -98.5t125.5 -280.5v-447q0 -25 0.5 -47t3.5 -42l89 -12v-175h-337q-12 27 -21 55.5t-14 57.5 q-52 -60 -126.5 -97t-170.5 -37q-159 0 -252.5 86.5t-93.5 235.5zM362 1421q0 83 61.5 139.5t151.5 56.5q88 0 148.5 -56.5t60.5 -139.5q0 -84 -60.5 -138t-148.5 -54q-91 0 -152 54t-61 138zM365 312q0 -55 35.5 -86t98.5 -31q66 0 120 28.5t84 71.5v165h-149 q-93 0 -141 -43.5t-48 -104.5zM477 1421q0 -43 28 -70.5t70 -27.5q41 0 67 27.5t26 70.5q0 44 -26 72t-67 28q-42 0 -70 -28.5t-28 -71.5z" /> +<glyph unicode="æ" horiz-adv-x="1784" d="M73 317q0 159 127 245t370 86h181v59q0 79 -41 124.5t-115 45.5q-81 0 -127 -37.5t-46 -93.5l-283 18l-2 6q-6 144 121.5 238t339.5 94q102 0 186 -27.5t143 -79.5q61 52 142.5 79.5t180.5 27.5q212 0 333 -132t121 -358v-158h-650l-2 -6q4 -112 66 -178.5t186 -66.5 q92 0 154 20t140 61l77 -184q-62 -48 -169 -84.5t-233 -36.5q-129 0 -229.5 40.5t-167.5 116.5q-60 -68 -161.5 -112.5t-240.5 -44.5q-192 0 -296.5 90.5t-104.5 247.5zM365 313q0 -59 41.5 -93.5t123.5 -34.5q58 0 121 30.5t100 72.5v176h-179q-98 0 -152.5 -44t-54.5 -107 zM1054 649l2 -5h362v28q0 94 -42.5 149.5t-125.5 55.5q-95 0 -142 -61.5t-54 -166.5z" /> +<glyph unicode="ç" horiz-adv-x="1079" d="M67 0zM67 525v30q0 239 134.5 393t383.5 154q131 0 235 -39t173 -110l4 -289h-237l-48 169q-22 19 -54 31.5t-73 12.5q-124 0 -175 -90t-51 -232v-30q0 -145 47 -233.5t165 -88.5q78 0 125 45.5t47 121.5h264l3 -6q4 -164 -123 -274.5t-316 -110.5q-242 0 -373 153 t-131 393zM406 -138l31 142h219l-11 -57q64 -11 107 -52t43 -121q0 -107 -91.5 -171t-259.5 -64l-7 161q51 0 81 20.5t30 62.5q0 41 -32 57.5t-110 21.5z" /> +<glyph unicode="è" horiz-adv-x="1091" d="M67 0zM67 510v40q0 241 132.5 397t355.5 155q219 0 340 -132t121 -357v-159h-646l-2 -6q8 -107 71.5 -176t172.5 -69q97 0 161 19.5t140 61.5l79 -180q-67 -53 -173.5 -89t-237.5 -36q-234 0 -374 150t-140 381zM185 1505l2 6h310l196 -266h-236zM369 652l3 -5h358v26 q0 93 -43.5 148.5t-131.5 55.5q-81 0 -128 -62t-58 -163z" /> +<glyph unicode="é" horiz-adv-x="1091" d="M67 0zM67 510v40q0 241 132.5 397t355.5 155q219 0 340 -132t121 -357v-159h-646l-2 -6q8 -107 71.5 -176t172.5 -69q97 0 161 19.5t140 61.5l79 -180q-67 -53 -173.5 -89t-237.5 -36q-234 0 -374 150t-140 381zM364 1237l199 266h309l2 -6l-276 -260h-234zM369 652l3 -5 h358v26q0 93 -43.5 148.5t-131.5 55.5q-81 0 -128 -62t-58 -163z" /> +<glyph unicode="ê" horiz-adv-x="1091" d="M67 0zM67 510v40q0 241 132.5 397t355.5 155q219 0 340 -132t121 -357v-159h-646l-2 -6q8 -107 71.5 -176t172.5 -69q97 0 161 19.5t140 61.5l79 -180q-67 -53 -173.5 -89t-237.5 -36q-234 0 -374 150t-140 381zM173 1258v26l282 240h169l287 -243v-23h-217l-155 146 l-154 -146h-212zM369 652l3 -5h358v26q0 93 -43.5 148.5t-131.5 55.5q-81 0 -128 -62t-58 -163z" /> +<glyph unicode="ë" horiz-adv-x="1091" d="M67 0zM67 510v40q0 241 132.5 397t355.5 155q219 0 340 -132t121 -357v-159h-646l-2 -6q8 -107 71.5 -176t172.5 -69q97 0 161 19.5t140 61.5l79 -180q-67 -53 -173.5 -89t-237.5 -36q-234 0 -374 150t-140 381zM144 1278v204h267v-204h-267zM369 652l3 -5h358v26 q0 93 -43.5 148.5t-131.5 55.5q-81 0 -128 -62t-58 -163zM644 1278v204h267v-204h-267z" /> +<glyph unicode="ì" horiz-adv-x="686" d="M7 0zM7 1506l2 6h310l196 -266h-236zM70 906v176h448v-877l140 -30v-175h-573v175l141 30v671z" /> +<glyph unicode="í" horiz-adv-x="686" d="M70 0zM70 906v176h448v-877l140 -30v-175h-573v175l141 30v671zM185 1238l199 266h309l2 -6l-276 -260h-234z" /> +<glyph unicode="î" horiz-adv-x="686" d="M-5 1259v26l282 240h169l287 -243v-23h-217l-155 146l-154 -146h-212zM0 0zM70 906v176h448v-877l140 -30v-175h-573v175l141 30v671z" /> +<glyph unicode="ï" horiz-adv-x="686" d="M-35 1279v204h267v-204h-267zM0 0zM70 906v176h448v-877l140 -30v-175h-573v175l141 30v671zM465 1279v204h267v-204h-267z" /> +<glyph unicode="ð" horiz-adv-x="1217" d="M60 468q0 226 134 362.5t365 136.5q75 0 143 -22t118 -61l4 4q-20 75 -59 140t-92 118l-231 -128l-78 113l190 105q-35 19 -71.5 34.5t-73.5 28.5l92 218q85 -21 163 -56t146 -84l208 116l77 -113l-177 -98q110 -117 170 -274.5t60 -346.5v-76q0 -267 -157.5 -436.5 t-392.5 -169.5q-238 0 -388 140.5t-150 348.5zM351 468q0 -111 68.5 -188t182.5 -77q117 0 185.5 107.5t68.5 274.5v78q-34 40 -98.5 66t-152.5 26q-121 0 -187.5 -79t-66.5 -208z" /> +<glyph unicode="ñ" horiz-adv-x="1300" d="M32 0zM32 906v176h427l13 -155q54 83 133 129t177 46q164 0 256 -103t92 -323v-471l140 -30v-175h-558v175l125 30v470q0 109 -44 154.5t-133 45.5q-58 0 -104 -23.5t-77 -66.5v-580l118 -30v-175h-550v175l140 30v671zM236 1300q0 94 59.5 163.5t149.5 69.5 q56 0 151.5 -43.5t147.5 -43.5q35 0 60.5 32t25.5 79l155 -45q0 -96 -59.5 -163.5t-150.5 -67.5q-70 0 -158.5 43.5t-140.5 43.5q-36 0 -60.5 -32.5t-24.5 -77.5z" /> +<glyph unicode="ò" horiz-adv-x="1148" d="M63 0zM63 530v21q0 242 135.5 396.5t374.5 154.5q240 0 375.5 -154t135.5 -397v-21q0 -244 -135.5 -397.5t-373.5 -153.5q-241 0 -376.5 153.5t-135.5 397.5zM219 1506l2 6h310l196 -266h-236zM355 530q0 -148 52 -237.5t168 -89.5q113 0 165.5 90t52.5 237v21 q0 144 -53 235t-167 91t-166 -91t-52 -235v-21z" /> +<glyph unicode="ó" horiz-adv-x="1148" d="M63 0zM63 530v21q0 242 135.5 396.5t374.5 154.5q240 0 375.5 -154t135.5 -397v-21q0 -244 -135.5 -397.5t-373.5 -153.5q-241 0 -376.5 153.5t-135.5 397.5zM355 530q0 -148 52 -237.5t168 -89.5q113 0 165.5 90t52.5 237v21q0 144 -53 235t-167 91t-166 -91t-52 -235 v-21zM398 1238l199 266h309l2 -6l-276 -260h-234z" /> +<glyph unicode="ô" horiz-adv-x="1148" d="M63 0zM63 530v21q0 242 135.5 396.5t374.5 154.5q240 0 375.5 -154t135.5 -397v-21q0 -244 -135.5 -397.5t-373.5 -153.5q-241 0 -376.5 153.5t-135.5 397.5zM207 1259v26l282 240h169l287 -243v-23h-217l-155 146l-154 -146h-212zM355 530q0 -148 52 -237.5t168 -89.5 q113 0 165.5 90t52.5 237v21q0 144 -53 235t-167 91t-166 -91t-52 -235v-21z" /> +<glyph unicode="õ" horiz-adv-x="1148" d="M63 0zM63 530v21q0 242 135.5 396.5t374.5 154.5q240 0 375.5 -154t135.5 -397v-21q0 -244 -135.5 -397.5t-373.5 -153.5q-241 0 -376.5 153.5t-135.5 397.5zM189 1302q0 94 59.5 163.5t149.5 69.5q56 0 151.5 -43.5t147.5 -43.5q35 0 60.5 32t25.5 79l155 -45 q0 -96 -59.5 -163.5t-150.5 -67.5q-70 0 -158.5 43.5t-140.5 43.5q-36 0 -60.5 -32.5t-24.5 -77.5zM355 530q0 -148 52 -237.5t168 -89.5q113 0 165.5 90t52.5 237v21q0 144 -53 235t-167 91t-166 -91t-52 -235v-21z" /> +<glyph unicode="ö" horiz-adv-x="1148" d="M63 0zM63 530v21q0 242 135.5 396.5t374.5 154.5q240 0 375.5 -154t135.5 -397v-21q0 -244 -135.5 -397.5t-373.5 -153.5q-241 0 -376.5 153.5t-135.5 397.5zM177 1279v204h267v-204h-267zM355 530q0 -148 52 -237.5t168 -89.5q113 0 165.5 90t52.5 237v21q0 144 -53 235 t-167 91t-166 -91t-52 -235v-21zM677 1279v204h267v-204h-267z" /> +<glyph unicode="÷" horiz-adv-x="1133" d="M56 573v227h1028v-227h-1028zM425 164v233h292v-233h-292zM425 973v233h292v-233h-292z" /> +<glyph unicode="ø" horiz-adv-x="1178" d="M76 530v21q0 242 135.5 396.5t374.5 154.5q45 0 87 -6.5t83 -17.5l67 137h162l-98 -201q101 -72 155.5 -192.5t54.5 -270.5v-21q0 -244 -135.5 -397.5t-373.5 -153.5q-53 0 -101 8t-91 23l-74 -151h-162l108 221q-94 72 -143 188.5t-49 261.5zM368 530q0 -55 6.5 -101 t20.5 -77l5 -1l253 516q-16 4 -33 7t-34 3q-114 0 -166 -91t-52 -235v-21zM499 221q18 -9 40.5 -13.5t48.5 -4.5q113 0 165.5 90t52.5 237v21q0 62 -10 115.5t-29 89.5h-6z" /> +<glyph unicode="ù" horiz-adv-x="1278" d="M33 0zM33 906v176h119h292v-655q0 -118 39.5 -169.5t117.5 -51.5q69 0 119.5 22.5t82.5 64.5v583l-128 30v176h128h292v-877l131 -30v-175h-387l-19 137q-52 -76 -128.5 -117t-174.5 -41q-171 0 -268 109.5t-97 340.5v447zM252 1506l2 6h310l196 -266h-236z" /> +<glyph unicode="ú" horiz-adv-x="1278" d="M33 0zM33 906v176h119h292v-655q0 -118 39.5 -169.5t117.5 -51.5q69 0 119.5 22.5t82.5 64.5v583l-128 30v176h128h292v-877l131 -30v-175h-387l-19 137q-52 -76 -128.5 -117t-174.5 -41q-171 0 -268 109.5t-97 340.5v447zM431 1238l199 266h309l2 -6l-276 -260h-234z " /> +<glyph unicode="û" horiz-adv-x="1278" d="M33 0zM33 906v176h119h292v-655q0 -118 39.5 -169.5t117.5 -51.5q69 0 119.5 22.5t82.5 64.5v583l-128 30v176h128h292v-877l131 -30v-175h-387l-19 137q-52 -76 -128.5 -117t-174.5 -41q-171 0 -268 109.5t-97 340.5v447zM240 1259v26l282 240h169l287 -243v-23h-217 l-155 146l-154 -146h-212z" /> +<glyph unicode="ü" horiz-adv-x="1278" d="M33 0zM33 906v176h119h292v-655q0 -118 39.5 -169.5t117.5 -51.5q69 0 119.5 22.5t82.5 64.5v583l-128 30v176h128h292v-877l131 -30v-175h-387l-19 137q-52 -76 -128.5 -117t-174.5 -41q-171 0 -268 109.5t-97 340.5v447zM210 1279v204h267v-204h-267zM710 1279v204h267 v-204h-267z" /> +<glyph unicode="ý" horiz-adv-x="1212" d="M26 0zM26 906v176h530v-176l-121 -20l148 -432l15 -78l6 -1l171 511l-122 20v176h530v-176l-101 -15l-398 -1053q-47 -117 -125.5 -196t-236.5 -79q-37 0 -69.5 6t-76.5 17l34 213q14 -2 29 -4t26 -2q73 0 112 35.5t60 88.5l33 82l-343 891zM414 1223l199 266h309l2 -6 l-276 -260h-234z" /> +<glyph unicode="þ" horiz-adv-x="1246" d="M34 1384v176h447v-591q47 64 112 98.5t150 34.5q201 0 312 -157t111 -413v-21q0 -240 -111 -386t-310 -146q-85 0 -151 31.5t-113 92.5v-313l141 -30v-176h-573v176l141 30v1564zM481 297q27 -46 73.5 -70t114.5 -24q106 0 155.5 83t49.5 225v21q0 153 -51 248t-156 95 q-66 0 -112.5 -27t-73.5 -77v-474z" /> +<glyph unicode="ÿ" horiz-adv-x="1212" d="M26 0zM26 906v176h530v-176l-121 -20l148 -432l15 -78l6 -1l171 511l-122 20v176h530v-176l-101 -15l-398 -1053q-47 -117 -125.5 -196t-236.5 -79q-37 0 -69.5 6t-76.5 17l34 213q14 -2 29 -4t26 -2q73 0 112 35.5t60 88.5l33 82l-343 891zM193 1264v204h267v-204h-267z M693 1264v204h267v-204h-267z" /> +<glyph unicode="Œ" horiz-adv-x="1996" d="M103 576v304q0 265 167.5 431t437.5 166q69 0 140 -6t150 -15h936v-399h-224l-13 174h-466v-366h493v-225h-493v-416h470l13 174h222v-398h-938q-92 -10 -156.5 -15.5t-131.5 -5.5q-270 0 -438.5 166t-168.5 431zM394 576q0 -182 84 -277t232 -95q58 0 115.5 4.5 t113.5 13.5v1011q-59 8 -116.5 13.5t-114.5 5.5q-148 0 -231 -94.5t-83 -275.5v-306z" /> +<glyph unicode="œ" horiz-adv-x="1875" d="M92 530v21q0 242 135.5 396.5t374.5 154.5q115 0 208.5 -38.5t160.5 -108.5q64 71 152.5 109t196.5 38q219 0 340 -132t121 -357v-159h-647l-2 -6q8 -107 71.5 -176t173.5 -69q97 0 161 19.5t139 61.5l80 -180q-66 -53 -173 -89t-238 -36q-117 0 -211.5 38t-161.5 110 q-66 -72 -159.5 -110t-209.5 -38q-241 0 -376.5 153.5t-135.5 397.5zM384 530q0 -148 52 -237.5t168 -89.5q113 0 165.5 90t52.5 237v21q0 144 -53 235t-167 91t-166 -91t-52 -235v-21zM1134 652l2 -5h359v26q0 93 -43.5 148.5t-131.5 55.5q-81 0 -128 -62t-58 -163z" /> +<glyph unicode="Ÿ" horiz-adv-x="1398" d="M36 0zM36 1280v176h551v-176l-119 -17l226 -478h6l226 478l-118 17v176h551v-176l-124 -20l-396 -748v-307l156 -30v-175h-603v175l156 30v322l-389 733zM316 1601v204h267v-204h-267zM816 1601v204h267v-204h-267z" /> +<glyph unicode="ˆ" horiz-adv-x="890" d="M90 1252v26l282 240h169l287 -243v-23h-217l-155 146l-154 -146h-212z" /> +<glyph unicode="˜" horiz-adv-x="950" d="M108 1272q0 94 59.5 163.5t149.5 69.5q56 0 151.5 -43.5t147.5 -43.5q35 0 60.5 32t25.5 79l155 -45q0 -96 -59.5 -163.5t-150.5 -67.5q-70 0 -158.5 43.5t-140.5 43.5q-36 0 -60.5 -32.5t-24.5 -77.5z" /> +<glyph unicode=" " horiz-adv-x="970" /> +<glyph unicode=" " horiz-adv-x="1941" /> +<glyph unicode=" " horiz-adv-x="970" /> +<glyph unicode=" " horiz-adv-x="1941" /> +<glyph unicode=" " horiz-adv-x="647" /> +<glyph unicode=" " horiz-adv-x="485" /> +<glyph unicode=" " horiz-adv-x="323" /> +<glyph unicode=" " horiz-adv-x="323" /> +<glyph unicode=" " horiz-adv-x="242" /> +<glyph unicode=" " horiz-adv-x="388" /> +<glyph unicode=" " horiz-adv-x="107" /> +<glyph unicode="‐" horiz-adv-x="815" d="M131 510v225h564v-225h-564z" /> +<glyph unicode="‑" horiz-adv-x="815" d="M131 510v225h564v-225h-564z" /> +<glyph unicode="‒" horiz-adv-x="815" d="M131 510v225h564v-225h-564z" /> +<glyph unicode="–" horiz-adv-x="1372" d="M158 601v228h1085v-228h-1085zM165 601z" /> +<glyph unicode="—" horiz-adv-x="1595" d="M128 601v228h1334v-228h-1334zM166 601z" /> +<glyph unicode="‘" horiz-adv-x="480" d="M96 1009v193q0 99 52.5 209t130.5 181l144 -78q-40 -70 -60.5 -144.5t-20.5 -167.5v-193h-246z" /> +<glyph unicode="’" horiz-adv-x="471" d="M59 1057q39 69 60 143.5t21 168.5v191h245v-191q0 -100 -53 -210.5t-129 -180.5z" /> +<glyph unicode="‚" horiz-adv-x="510" d="M67 -245q39 70 60 144.5t21 166.5v221h246l-1 -220q0 -99 -53 -209.5t-129 -180.5z" /> +<glyph unicode="“" horiz-adv-x="833" d="M101 1009v193q0 99 52.5 209t130.5 181l144 -78q-40 -70 -60.5 -144.5t-20.5 -167.5v-193h-246zM101 1009zM438 1009v193q0 99 52.5 209t130.5 181l144 -78q-40 -70 -60.5 -144.5t-20.5 -167.5v-193h-246z" /> +<glyph unicode="”" horiz-adv-x="840" d="M73 978zM73 1057q39 69 60 143.5t21 168.5v191h245v-191q0 -100 -53 -210.5t-129 -180.5zM413 1057q39 69 60 143.5t21 168.5v191h245v-191q0 -100 -53 -210.5t-129 -180.5z" /> +<glyph unicode="„" horiz-adv-x="827" d="M67 -245q39 70 60 144.5t21 166.5v221h246l-1 -220q0 -99 -53 -209.5t-129 -180.5zM404 -245q39 70 60 144.5t21 166.5v221h246l-1 -220q0 -99 -53 -209.5t-129 -180.5z" /> +<glyph unicode="•" horiz-adv-x="703" d="M120 716v90q0 100 64.5 164t172.5 64q110 0 174.5 -63.5t64.5 -164.5v-90q0 -101 -64.5 -163t-173.5 -62t-173.5 62t-64.5 163z" /> +<glyph unicode="…" horiz-adv-x="1461" d="M137 0v256h291v-256h-291zM137 0zM610 0v256h291v-256h-291zM1075 0v256h291v-256h-291z" /> +<glyph unicode=" " horiz-adv-x="388" /> +<glyph unicode="‹" horiz-adv-x="570" d="M44 541v19l280 390h187l-240 -400l240 -399h-187z" /> +<glyph unicode="›" horiz-adv-x="576" d="M71 151l239 399l-239 400h187l280 -390v-19l-280 -390h-187z" /> +<glyph unicode=" " horiz-adv-x="485" /> +<glyph unicode="€" horiz-adv-x="1063" d="M58 485v153h146v150h-146v153h146v13q0 238 150.5 380.5t394.5 142.5q60 0 117.5 -8t125.5 -23l-21 -229q-53 16 -109.5 25.5t-112.5 9.5q-118 0 -185.5 -79t-67.5 -217v-15h428v-153h-428v-150h428v-153h-428v-8q0 -132 67.5 -203t187.5 -71q58 0 113.5 8.5t106.5 25.5 l21 -227q-57 -15 -118 -23t-123 -8q-245 0 -396 135t-151 363v8h-146z" /> +<glyph unicode="™" horiz-adv-x="1239" d="M76 1351v105h398v-105h-128v-434h-144v434h-126zM545 915v541h159l119 -362h6l120 362h154v-541h-129v282l-6 1l-105 -283h-73l-110 298l-6 -1v-297h-129z" /> +<glyph unicode="◼" horiz-adv-x="1080" d="M0 0v1080h1080v-1080h-1080z" /> +<glyph unicode="ffi" horiz-adv-x="2099" d="M59 0zM59 877v205h161v120q0 182 105 280.5t295 98.5q37 0 75.5 -5.5t84.5 -15.5l-25 -217q-24 4 -46.5 7t-52.5 3q-71 0 -107.5 -39t-36.5 -112v-120h215v-205h-215v-672l141 -30v-175h-574v175l141 30v672h-161zM796 877v205h161v74q0 204 124.5 314.5t350.5 110.5 q78 0 154 -15.5t176 -44.5l-42 -230q-73 22 -132.5 34t-136.5 12q-101 0 -151.5 -46t-50.5 -135v-74h656v-877l155 -30v-175h-588v175l141 30v672h-364v-672l141 -30v-175h-589v175l156 30v672h-161z" /> +<glyph unicode="ffl" horiz-adv-x="2177" d="M59 0zM59 877v205h161v120q0 182 105 280.5t295 98.5q37 0 75.5 -5.5t84.5 -15.5l-25 -217q-24 4 -46.5 7t-52.5 3q-71 0 -107.5 -39t-36.5 -112v-120h215v-205h-215v-672l141 -30v-175h-574v175l141 30v672h-161zM821 877v205h161v120q0 182 105 280.5t295 98.5 q37 0 75.5 -5.5t84.5 -15.5l-25 -217q-24 4 -46.5 7t-52.5 3q-71 0 -107.5 -39t-36.5 -112v-120h215v-205h-215v-672l141 -30v-175h-574v175l141 30v672h-161zM1556 1384v176h448v-1355l141 -30v-175h-574v175l141 30v1149z" /> +<hkern u1=""" u2="w" k="-11" /> +<hkern u1="'" u2="w" k="-11" /> +<hkern u1="(" u2="Ÿ" k="-22" /> +<hkern u1="(" u2="Ý" k="-22" /> +<hkern u1="(" u2="Y" k="-22" /> +<hkern u1="(" u2="W" k="-38" /> +<hkern u1="(" u2="V" k="-20" /> +<hkern u1="/" u2="/" k="338" /> +<hkern u1="A" u2="w" k="173" /> +<hkern u1="A" u2="t" k="117" /> +<hkern u1="A" u2="?" k="151" /> +<hkern u1="C" u2="}" k="17" /> +<hkern u1="C" u2="]" k="12" /> +<hkern u1="C" u2=")" k="26" /> +<hkern u1="D" u2="Æ" k="33" /> +<hkern u1="E" u2="w" k="22" /> +<hkern u1="F" u2="…" k="304" /> +<hkern u1="F" u2="„" k="304" /> +<hkern u1="F" u2="‚" k="304" /> +<hkern u1="F" u2="œ" k="21" /> +<hkern u1="F" u2="Œ" k="40" /> +<hkern u1="F" u2="ÿ" k="24" /> +<hkern u1="F" u2="ý" k="24" /> +<hkern u1="F" u2="ü" k="22" /> +<hkern u1="F" u2="û" k="22" /> +<hkern u1="F" u2="ú" k="22" /> +<hkern u1="F" u2="ù" k="22" /> +<hkern u1="F" u2="ö" k="21" /> +<hkern u1="F" u2="õ" k="21" /> +<hkern u1="F" u2="ô" k="21" /> +<hkern u1="F" u2="ó" k="21" /> +<hkern u1="F" u2="ò" k="21" /> +<hkern u1="F" u2="ë" k="21" /> +<hkern u1="F" u2="ê" k="21" /> +<hkern u1="F" u2="é" k="21" /> +<hkern u1="F" u2="è" k="21" /> +<hkern u1="F" u2="ç" k="21" /> +<hkern u1="F" u2="å" k="34" /> +<hkern u1="F" u2="ä" k="34" /> +<hkern u1="F" u2="ã" k="34" /> +<hkern u1="F" u2="â" k="34" /> +<hkern u1="F" u2="á" k="34" /> +<hkern u1="F" u2="à" k="34" /> +<hkern u1="F" u2="Ø" k="40" /> +<hkern u1="F" u2="Ö" k="40" /> +<hkern u1="F" u2="Õ" k="40" /> +<hkern u1="F" u2="Ô" k="40" /> +<hkern u1="F" u2="Ó" k="40" /> +<hkern u1="F" u2="Ò" k="40" /> +<hkern u1="F" u2="Ç" k="40" /> +<hkern u1="F" u2="Å" k="300" /> +<hkern u1="F" u2="Ä" k="300" /> +<hkern u1="F" u2="Ã" k="300" /> +<hkern u1="F" u2="Â" k="300" /> +<hkern u1="F" u2="Á" k="300" /> +<hkern u1="F" u2="À" k="300" /> +<hkern u1="F" u2="y" k="24" /> +<hkern u1="F" u2="v" k="24" /> +<hkern u1="F" u2="u" k="22" /> +<hkern u1="F" u2="r" k="26" /> +<hkern u1="F" u2="q" k="21" /> +<hkern u1="F" u2="o" k="21" /> +<hkern u1="F" u2="g" k="21" /> +<hkern u1="F" u2="e" k="21" /> +<hkern u1="F" u2="d" k="21" /> +<hkern u1="F" u2="c" k="21" /> +<hkern u1="F" u2="a" k="34" /> +<hkern u1="F" u2="T" k="-20" /> +<hkern u1="F" u2="Q" k="40" /> +<hkern u1="F" u2="O" k="40" /> +<hkern u1="F" u2="J" k="208" /> +<hkern u1="F" u2="G" k="40" /> +<hkern u1="F" u2="C" k="40" /> +<hkern u1="F" u2="A" k="300" /> +<hkern u1="F" u2="." k="304" /> +<hkern u1="F" u2="," k="304" /> +<hkern u1="K" u2="w" k="63" /> +<hkern u1="L" u2="w" k="52" /> +<hkern u1="N" u2="Å" k="128" /> +<hkern u1="N" u2="Ä" k="128" /> +<hkern u1="N" u2="Ã" k="128" /> +<hkern u1="N" u2="Â" k="128" /> +<hkern u1="N" u2="Á" k="128" /> +<hkern u1="N" u2="À" k="128" /> +<hkern u1="N" u2="A" k="128" /> +<hkern u1="O" u2="Æ" k="33" /> +<hkern u1="P" u2="Æ" k="297" /> +<hkern u1="P" u2="t" k="-14" /> +<hkern u1="Q" u2="Ÿ" k="35" /> +<hkern u1="Q" u2="Ý" k="35" /> +<hkern u1="Q" u2="Y" k="35" /> +<hkern u1="Q" u2="W" k="18" /> +<hkern u1="Q" u2="V" k="28" /> +<hkern u1="Q" u2="T" k="33" /> +<hkern u1="R" u2="Ÿ" k="100" /> +<hkern u1="R" u2="Ý" k="100" /> +<hkern u1="R" u2="Y" k="100" /> +<hkern u1="R" u2="V" k="90" /> +<hkern u1="R" u2="T" k="50" /> +<hkern u1="T" u2="ø" k="95" /> +<hkern u1="T" u2="æ" k="84" /> +<hkern u1="T" u2="Æ" k="189" /> +<hkern u1="T" u2="»" k="146" /> +<hkern u1="T" u2="«" k="148" /> +<hkern u1="T" u2="w" k="47" /> +<hkern u1="T" u2="r" k="65" /> +<hkern u1="V" u2="}" k="-19" /> +<hkern u1="V" u2="r" k="30" /> +<hkern u1="V" u2="]" k="-17" /> +<hkern u1="V" u2=")" k="-20" /> +<hkern u1="W" u2="}" k="-14" /> +<hkern u1="W" u2="r" k="21" /> +<hkern u1="W" u2="]" k="-12" /> +<hkern u1="W" u2=")" k="-35" /> +<hkern u1="Y" u2="•" k="45" /> +<hkern u1="Y" u2="ø" k="64" /> +<hkern u1="Y" u2="æ" k="63" /> +<hkern u1="Y" u2="Æ" k="96" /> +<hkern u1="Y" u2="»" k="51" /> +<hkern u1="Y" u2="«" k="82" /> +<hkern u1="Y" u2="}" k="-19" /> +<hkern u1="Y" u2="t" k="22" /> +<hkern u1="Y" u2="r" k="40" /> +<hkern u1="Y" u2="f" k="82" /> +<hkern u1="Y" u2="]" k="-18" /> +<hkern u1="Y" u2="*" k="49" /> +<hkern u1="Y" u2=")" k="-20" /> +<hkern u1="Y" u2="&" k="30" /> +<hkern u1="Z" u2="w" k="27" /> +<hkern u1="[" u2="Ü" k="18" /> +<hkern u1="[" u2="Û" k="18" /> +<hkern u1="[" u2="Ú" k="18" /> +<hkern u1="[" u2="Ù" k="18" /> +<hkern u1="[" u2="U" k="18" /> +<hkern u1="[" u2="J" k="18" /> +<hkern u1="a" u2="t" k="80" /> +<hkern u1="a" u2="b" k="32" /> +<hkern u1="d" u2="t" k="64" /> +<hkern u1="f" u2="œ" k="24" /> +<hkern u1="f" u2="ë" k="24" /> +<hkern u1="f" u2="ê" k="24" /> +<hkern u1="f" u2="é" k="24" /> +<hkern u1="f" u2="è" k="24" /> +<hkern u1="f" u2="ç" k="24" /> +<hkern u1="f" u2="}" k="-19" /> +<hkern u1="f" u2="q" k="24" /> +<hkern u1="f" u2="g" k="24" /> +<hkern u1="f" u2="e" k="24" /> +<hkern u1="f" u2="d" k="24" /> +<hkern u1="f" u2="c" k="24" /> +<hkern u1="f" u2="]" k="-18" /> +<hkern u1="f" u2=")" k="-50" /> +<hkern u1="k" u2="œ" k="20" /> +<hkern u1="k" u2="ë" k="20" /> +<hkern u1="k" u2="ê" k="20" /> +<hkern u1="k" u2="é" k="20" /> +<hkern u1="k" u2="è" k="20" /> +<hkern u1="k" u2="ç" k="20" /> +<hkern u1="k" u2="q" k="20" /> +<hkern u1="k" u2="g" k="20" /> +<hkern u1="k" u2="e" k="20" /> +<hkern u1="k" u2="d" k="20" /> +<hkern u1="k" u2="c" k="20" /> +<hkern u1="l" u2="ö" k="20" /> +<hkern u1="l" u2="õ" k="20" /> +<hkern u1="l" u2="ô" k="20" /> +<hkern u1="l" u2="ó" k="20" /> +<hkern u1="l" u2="ò" k="20" /> +<hkern u1="l" u2="o" k="20" /> +<hkern u1="r" u2="w" k="-17" /> +<hkern u1="r" u2="t" k="-24" /> +<hkern u1="r" u2="f" k="-20" /> +<hkern u1="t" u2="ö" k="30" /> +<hkern u1="t" u2="õ" k="30" /> +<hkern u1="t" u2="ô" k="30" /> +<hkern u1="t" u2="ó" k="30" /> +<hkern u1="t" u2="ò" k="30" /> +<hkern u1="t" u2="o" k="30" /> +<hkern u1="v" u2="f" k="-13" /> +<hkern u1="w" u2="…" k="124" /> +<hkern u1="w" u2="„" k="124" /> +<hkern u1="w" u2="‚" k="124" /> +<hkern u1="w" u2="." k="124" /> +<hkern u1="w" u2="," k="124" /> +<hkern u1="y" u2="f" k="-13" /> +<hkern u1="{" u2="Ü" k="20" /> +<hkern u1="{" u2="Û" k="20" /> +<hkern u1="{" u2="Ú" k="20" /> +<hkern u1="{" u2="Ù" k="20" /> +<hkern u1="{" u2="U" k="20" /> +<hkern u1="{" u2="J" k="20" /> +<hkern u1="À" u2="w" k="173" /> +<hkern u1="À" u2="t" k="117" /> +<hkern u1="À" u2="?" k="151" /> +<hkern u1="Á" u2="w" k="173" /> +<hkern u1="Á" u2="t" k="117" /> +<hkern u1="Á" u2="?" k="151" /> +<hkern u1="Â" u2="w" k="173" /> +<hkern u1="Â" u2="t" k="117" /> +<hkern u1="Â" u2="?" k="151" /> +<hkern u1="Ã" u2="w" k="173" /> +<hkern u1="Ã" u2="t" k="117" /> +<hkern u1="Ã" u2="?" k="151" /> +<hkern u1="Ä" u2="w" k="173" /> +<hkern u1="Ä" u2="t" k="117" /> +<hkern u1="Ä" u2="?" k="151" /> +<hkern u1="Å" u2="w" k="173" /> +<hkern u1="Å" u2="t" k="117" /> +<hkern u1="Å" u2="?" k="151" /> +<hkern u1="Ç" u2="}" k="17" /> +<hkern u1="Ç" u2="]" k="12" /> +<hkern u1="Ç" u2=")" k="26" /> +<hkern u1="È" u2="w" k="22" /> +<hkern u1="É" u2="w" k="22" /> +<hkern u1="Ê" u2="w" k="22" /> +<hkern u1="Ë" u2="w" k="22" /> +<hkern u1="Ð" u2="Æ" k="33" /> +<hkern u1="Ò" u2="Æ" k="33" /> +<hkern u1="Ó" u2="Æ" k="33" /> +<hkern u1="Ô" u2="Æ" k="33" /> +<hkern u1="Õ" u2="Æ" k="33" /> +<hkern u1="Ö" u2="Æ" k="33" /> +<hkern u1="Ý" u2="•" k="45" /> +<hkern u1="Ý" u2="ø" k="64" /> +<hkern u1="Ý" u2="æ" k="63" /> +<hkern u1="Ý" u2="Æ" k="96" /> +<hkern u1="Ý" u2="»" k="51" /> +<hkern u1="Ý" u2="«" k="82" /> +<hkern u1="Ý" u2="}" k="-19" /> +<hkern u1="Ý" u2="t" k="22" /> +<hkern u1="Ý" u2="r" k="40" /> +<hkern u1="Ý" u2="f" k="82" /> +<hkern u1="Ý" u2="]" k="-18" /> +<hkern u1="Ý" u2="*" k="49" /> +<hkern u1="Ý" u2=")" k="-20" /> +<hkern u1="Ý" u2="&" k="30" /> +<hkern u1="à" u2="t" k="80" /> +<hkern u1="à" u2="b" k="32" /> +<hkern u1="á" u2="t" k="80" /> +<hkern u1="á" u2="b" k="32" /> +<hkern u1="â" u2="t" k="80" /> +<hkern u1="â" u2="b" k="32" /> +<hkern u1="ã" u2="t" k="80" /> +<hkern u1="ã" u2="b" k="32" /> +<hkern u1="ä" u2="t" k="80" /> +<hkern u1="ä" u2="b" k="32" /> +<hkern u1="å" u2="t" k="80" /> +<hkern u1="å" u2="b" k="32" /> +<hkern u1="ý" u2="f" k="-13" /> +<hkern u1="ÿ" u2="f" k="-13" /> +<hkern u1="Ÿ" u2="•" k="45" /> +<hkern u1="Ÿ" u2="ø" k="64" /> +<hkern u1="Ÿ" u2="æ" k="63" /> +<hkern u1="Ÿ" u2="Æ" k="96" /> +<hkern u1="Ÿ" u2="»" k="51" /> +<hkern u1="Ÿ" u2="«" k="82" /> +<hkern u1="Ÿ" u2="}" k="-19" /> +<hkern u1="Ÿ" u2="t" k="22" /> +<hkern u1="Ÿ" u2="r" k="40" /> +<hkern u1="Ÿ" u2="f" k="82" /> +<hkern u1="Ÿ" u2="]" k="-18" /> +<hkern u1="Ÿ" u2="*" k="49" /> +<hkern u1="Ÿ" u2=")" k="-20" /> +<hkern u1="Ÿ" u2="&" k="30" /> +<hkern u1="‘" u2="w" k="-11" /> +<hkern u1="’" u2="w" k="-11" /> +<hkern u1="“" u2="w" k="-11" /> +<hkern u1="”" u2="w" k="-11" /> +<hkern g1="B" g2="V" k="24" /> +<hkern g1="B" g2="Y,Yacute,Ydieresis" k="55" /> +<hkern g1="B" g2="T" k="27" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="V" k="22" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="Y,Yacute,Ydieresis" k="43" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="T" k="27" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="60" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="Z" k="23" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="X" k="30" /> +<hkern g1="D,O,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="122" /> +<hkern g1="C,Ccedilla" g2="T" k="29" /> +<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="19" /> +<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="v,y,yacute,ydieresis" k="26" /> +<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="T" k="-20" /> +<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="17" /> +<hkern g1="E,Egrave,Eacute,Ecircumflex,Edieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="19" /> +<hkern g1="T" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="79" /> +<hkern g1="T" g2="v,y,yacute,ydieresis" k="82" /> +<hkern g1="T" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="28" /> +<hkern g1="T" g2="V" k="-16" /> +<hkern g1="T" g2="Y,Yacute,Ydieresis" k="-16" /> +<hkern g1="T" g2="T" k="-16" /> +<hkern g1="T" g2="u,ugrave,uacute,ucircumflex,udieresis" k="65" /> +<hkern g1="T" g2="W" k="-15" /> +<hkern g1="T" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="180" /> +<hkern g1="T" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="258" /> +<hkern g1="T" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="89" /> +<hkern g1="T" g2="z" k="60" /> +<hkern g1="T" g2="x" k="77" /> +<hkern g1="T" g2="m,n,p,ntilde" k="89" /> +<hkern g1="T" g2="s" k="76" /> +<hkern g1="T" g2="hyphen,uni00AD,endash,emdash" k="272" /> +<hkern g1="T" g2="S" k="16" /> +<hkern g1="T" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="83" /> +<hkern g1="T" g2="J" k="196" /> +<hkern g1="K" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="27" /> +<hkern g1="K" g2="v,y,yacute,ydieresis" k="40" /> +<hkern g1="K" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="107" /> +<hkern g1="K" g2="u,ugrave,uacute,ucircumflex,udieresis" k="23" /> +<hkern g1="K" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="26" /> +<hkern g1="K" g2="hyphen,uni00AD,endash,emdash" k="234" /> +<hkern g1="L" g2="v,y,yacute,ydieresis" k="123" /> +<hkern g1="L" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="25" /> +<hkern g1="L" g2="V" k="264" /> +<hkern g1="L" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="74" /> +<hkern g1="L" g2="Y,Yacute,Ydieresis" k="279" /> +<hkern g1="L" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="308" /> +<hkern g1="L" g2="T" k="205" /> +<hkern g1="L" g2="u,ugrave,uacute,ucircumflex,udieresis" k="14" /> +<hkern g1="L" g2="W" k="93" /> +<hkern g1="P" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="13" /> +<hkern g1="P" g2="v,y,yacute,ydieresis" k="-15" /> +<hkern g1="P" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="236" /> +<hkern g1="P" g2="Z" k="36" /> +<hkern g1="P" g2="X" k="51" /> +<hkern g1="P" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="404" /> +<hkern g1="P" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="13" /> +<hkern g1="P" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="11" /> +<hkern g1="P" g2="J" k="184" /> +<hkern g1="J,U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="100" /> +<hkern g1="V" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="46" /> +<hkern g1="V" g2="v,y,yacute,ydieresis" k="11" /> +<hkern g1="V" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="13" /> +<hkern g1="V" g2="u,ugrave,uacute,ucircumflex,udieresis" k="28" /> +<hkern g1="V" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="220" /> +<hkern g1="V" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="215" /> +<hkern g1="V" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="44" /> +<hkern g1="V" g2="hyphen,uni00AD,endash,emdash" k="157" /> +<hkern g1="V" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="46" /> +<hkern g1="V" g2="J" k="213" /> +<hkern g1="X" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="21" /> +<hkern g1="X" g2="v,y,yacute,ydieresis" k="31" /> +<hkern g1="X" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="30" /> +<hkern g1="X" g2="V" k="-14" /> +<hkern g1="X" g2="u,ugrave,uacute,ucircumflex,udieresis" k="21" /> +<hkern g1="X" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="26" /> +<hkern g1="X" g2="hyphen,uni00AD,endash,emdash" k="196" /> +<hkern g1="Y,Yacute,Ydieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="65" /> +<hkern g1="Y,Yacute,Ydieresis" g2="v,y,yacute,ydieresis" k="20" /> +<hkern g1="Y,Yacute,Ydieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="29" /> +<hkern g1="Y,Yacute,Ydieresis" g2="V" k="-18" /> +<hkern g1="Y,Yacute,Ydieresis" g2="Y,Yacute,Ydieresis" k="-18" /> +<hkern g1="Y,Yacute,Ydieresis" g2="T" k="-17" /> +<hkern g1="Y,Yacute,Ydieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="39" /> +<hkern g1="Y,Yacute,Ydieresis" g2="W" k="-17" /> +<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="256" /> +<hkern g1="Y,Yacute,Ydieresis" g2="X" k="-13" /> +<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="231" /> +<hkern g1="Y,Yacute,Ydieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="65" /> +<hkern g1="Y,Yacute,Ydieresis" g2="z" k="30" /> +<hkern g1="Y,Yacute,Ydieresis" g2="x" k="23" /> +<hkern g1="Y,Yacute,Ydieresis" g2="m,n,p,ntilde" k="80" /> +<hkern g1="Y,Yacute,Ydieresis" g2="s" k="58" /> +<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,uni00AD,endash,emdash" k="212" /> +<hkern g1="Y,Yacute,Ydieresis" g2="S" k="16" /> +<hkern g1="Y,Yacute,Ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="63" /> +<hkern g1="Y,Yacute,Ydieresis" g2="J" k="286" /> +<hkern g1="W" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="31" /> +<hkern g1="W" g2="T" k="-14" /> +<hkern g1="W" g2="u,ugrave,uacute,ucircumflex,udieresis" k="19" /> +<hkern g1="W" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="171" /> +<hkern g1="W" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="143" /> +<hkern g1="W" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="31" /> +<hkern g1="W" g2="hyphen,uni00AD,endash,emdash" k="100" /> +<hkern g1="W" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="33" /> +<hkern g1="W" g2="J" k="149" /> +<hkern g1="Z" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="21" /> +<hkern g1="Z" g2="v,y,yacute,ydieresis" k="27" /> +<hkern g1="Z" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="26" /> +<hkern g1="Z" g2="u,ugrave,uacute,ucircumflex,udieresis" k="19" /> +<hkern g1="Z" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="21" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="v,y,yacute,ydieresis" k="15" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="77" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="u,ugrave,uacute,ucircumflex,udieresis" k="32" /> +<hkern g1="c,ccedilla" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="71" /> +<hkern g1="b,p,thorn" g2="v,y,yacute,ydieresis" k="11" /> +<hkern g1="b,p,thorn" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="89" /> +<hkern g1="b,p,thorn" g2="z" k="15" /> +<hkern g1="b,p,thorn" g2="x" k="15" /> +<hkern g1="b,p,thorn" g2="h,k,l" k="20" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis" g2="v,y,yacute,ydieresis" k="13" /> +<hkern g1="e,egrave,eacute,ecircumflex,edieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="74" /> +<hkern g1="h,m,n,ntilde" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="10" /> +<hkern g1="h,m,n,ntilde" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="166" /> +<hkern g1="h,m,n,ntilde" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="10" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="v,y,yacute,ydieresis" k="15" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="120" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="z" k="16" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="x" k="21" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis" g2="h,k,l" k="20" /> +<hkern g1="v,y,yacute,ydieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="15" /> +<hkern g1="v,y,yacute,ydieresis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-5" /> +<hkern g1="v,y,yacute,ydieresis" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="167" /> +<hkern g1="v,y,yacute,ydieresis" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="13" /> +<hkern g1="v,y,yacute,ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="15" /> +<hkern g1="r" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="20" /> +<hkern g1="r" g2="v,y,yacute,ydieresis" k="-18" /> +<hkern g1="r" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="-6" /> +<hkern g1="r" g2="comma,period,quotesinglbase,quotedblbase,ellipsis" k="173" /> +<hkern g1="r" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="19" /> +<hkern g1="r" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="20" /> +<hkern g1="r" g2="h,k,l" k="50" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="v,y,yacute,ydieresis" k="56" /> +<hkern g1="x" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="40" /> +<hkern g1="x" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="20" /> +<hkern g1="z" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="16" /> +<hkern g1="z" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="16" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="o,ograve,oacute,ocircumflex,otilde,odieresis" k="161" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="97" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="120" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="c,d,e,g,q,ccedilla,egrave,eacute,ecircumflex,edieresis,oe" k="59" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="m,n,p,ntilde" k="20" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="s" k="92" /> +<hkern g1="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring" k="50" /> +<hkern g1="comma,period,quotesinglbase,quotedblbase,ellipsis" g2="quotedbl,quotesingle,quoteleft,quoteright,quotedblleft,quotedblright" k="285" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/robotoslab-bold-webfont.ttf b/web/static/fonts/robotoslab-bold-webfont.ttf Binary files differnew file mode 100755 index 000000000..cc65cc2da --- /dev/null +++ b/web/static/fonts/robotoslab-bold-webfont.ttf diff --git a/web/static/fonts/robotoslab-bold-webfont.woff b/web/static/fonts/robotoslab-bold-webfont.woff Binary files differnew file mode 100755 index 000000000..f3b391ae1 --- /dev/null +++ b/web/static/fonts/robotoslab-bold-webfont.woff diff --git a/web/static/fonts/robotoslab-bold-webfont.woff2 b/web/static/fonts/robotoslab-bold-webfont.woff2 Binary files differnew file mode 100755 index 000000000..ca0033a4b --- /dev/null +++ b/web/static/fonts/robotoslab-bold-webfont.woff2 diff --git a/web/static/fonts/sourcesanspro-bold-webfont.eot b/web/static/fonts/sourcesanspro-bold-webfont.eot Binary files differnew file mode 100755 index 000000000..f0cfc8bf8 --- /dev/null +++ b/web/static/fonts/sourcesanspro-bold-webfont.eot diff --git a/web/static/fonts/sourcesanspro-bold-webfont.svg b/web/static/fonts/sourcesanspro-bold-webfont.svg new file mode 100755 index 000000000..0bc1b4cde --- /dev/null +++ b/web/static/fonts/sourcesanspro-bold-webfont.svg @@ -0,0 +1,957 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > +<svg xmlns="http://www.w3.org/2000/svg"> +<metadata></metadata> +<defs> +<font id="source_sans_probold" horiz-adv-x="1081" > +<font-face units-per-em="2048" ascent="1536" descent="-512" /> +<missing-glyph horiz-adv-x="425" /> +<glyph horiz-adv-x="0" /> +<glyph horiz-adv-x="682" /> +<glyph horiz-adv-x="0" /> +<glyph horiz-adv-x="0" /> +<glyph unicode="
" horiz-adv-x="425" /> +<glyph unicode=" " horiz-adv-x="425" /> +<glyph unicode="	" horiz-adv-x="425" /> +<glyph unicode=" " horiz-adv-x="425" /> +<glyph unicode="!" horiz-adv-x="696" d="M166 164q0 82 52 136t130 54t130 -54t52 -136q0 -80 -52 -134.5t-130 -54.5t-130 54.5t-52 134.5zM197 1372h303l-11 -272l-43 -627h-196l-43 627z" /> +<glyph unicode=""" horiz-adv-x="1097" d="M156 1405h303l-10 -272l-60 -408h-164l-59 408zM639 1405h303l-10 -272l-60 -408h-164l-59 408z" /> +<glyph unicode="#" d="M70 383v192h174l28 226h-161v192h186l43 338h172l-41 -338h213l43 338h172l-41 -338h162v-192h-186l-27 -226h172v-192h-195l-47 -383h-174l45 383h-211l-47 -383h-174l45 383h-151zM420 575h211l28 226h-213z" /> +<glyph unicode="$" d="M80 135l131 203q78 -59 148.5 -89t144.5 -30q86 0 126 35t40 106q0 53 -40 90t-100.5 71t-130 68t-130 81t-100.5 110.5t-40 155.5q0 152 83 251t228 128v211h199v-207q98 -14 172 -59.5t133 -108.5l-151 -172q-55 51 -106.5 76.5t-117.5 25.5q-74 0 -112.5 -30.5 t-38.5 -100.5q0 -49 40 -82.5t100 -64.5t130 -63.5t130.5 -80t100 -114t39.5 -164.5q0 -147 -79.5 -252.5t-239.5 -140.5v-213h-199v205q-90 10 -189 50t-171 105z" /> +<glyph unicode="%" horiz-adv-x="1755" d="M53 938q0 100 24.5 178t68.5 132.5t105.5 83t133.5 28.5t133.5 -28.5t105.5 -83t69.5 -132t25.5 -178.5q0 -100 -25.5 -179t-69.5 -134t-105.5 -84t-133.5 -29t-133.5 29t-105.5 84t-68.5 134t-24.5 179zM262 938q0 -143 36 -200.5t87 -57.5t87 57.5t36 200.5t-36 198.5 t-87 55.5t-87 -55t-36 -199zM430 -25l721 1385h174l-721 -1385h-174zM1038 401q0 100 24.5 178t68.5 132.5t105.5 83t133.5 28.5t133.5 -28.5t105.5 -83t69.5 -132t25.5 -178.5q0 -100 -25.5 -179t-69.5 -134t-105.5 -84t-133.5 -29t-133.5 29t-105.5 84t-68.5 134 t-24.5 179zM1247 401q0 -143 36 -200.5t87 -57.5t87 57.5t36 200.5t-36 198.5t-87 55.5t-87 -55t-36 -199z" /> +<glyph unicode="&" horiz-adv-x="1366" d="M51 356q0 70 19.5 126.5t53.5 101.5t78 81.5t93 67.5q-39 72 -60.5 142.5t-21.5 134.5q0 72 25.5 135t72.5 111.5t114 76t150 27.5q152 0 240 -82t88 -221q0 -66 -23.5 -120t-63.5 -100t-90 -85t-101 -74q57 -66 125.5 -128.5t142.5 -115.5q51 66 90 145.5t64 174.5h274 q-37 -123 -91 -234.5t-132 -216.5q63 -33 121.5 -54.5t109.5 -29.5l-72 -244q-84 16 -170 51t-172 85q-86 -63 -189 -99.5t-230 -36.5q-109 0 -192 31t-139 83t-85 121t-29 146zM336 375q0 -76 54 -123t145 -47q82 0 170 53q-78 63 -149 133t-130 144q-41 -35 -65.5 -74 t-24.5 -86zM461 1012q0 -37 11 -78t32 -82q72 43 121 90t49 115q0 47 -22.5 75.5t-69.5 28.5q-51 0 -86 -39.5t-35 -109.5z" /> +<glyph unicode="'" horiz-adv-x="614" d="M156 1405h303l-10 -272l-60 -408h-164l-59 408z" /> +<glyph unicode="(" horiz-adv-x="704" d="M147 569q0 270 71 497.5t200 438.5l188 -78q-113 -201 -164 -420t-51 -438t51.5 -438t163.5 -420l-188 -78q-129 211 -200 438.5t-71 497.5z" /> +<glyph unicode=")" horiz-adv-x="704" d="M98 -289q115 201 166 420t51 438t-51 438.5t-166 419.5l189 78q129 -211 199.5 -438t70.5 -498q0 -270 -70.5 -497.5t-199.5 -438.5z" /> +<glyph unicode="*" horiz-adv-x="935" d="M78 1118l47 148l237 -49l27 241h158l26 -244l236 52l49 -148l-221 -100l121 -213l-125 -90l-164 182l-166 -182l-125 90l121 213z" /> +<glyph unicode="+" d="M70 569v213h360v377h221v-377h361v-213h-361v-376h-221v376h-360z" /> +<glyph unicode="," horiz-adv-x="614" d="M94 -238q113 41 172.5 106.5t59.5 143.5h-17q-72 0 -127 44t-55 126q0 78 55.5 125t132.5 47q102 0 155.5 -74.5t53.5 -209.5q0 -170 -94 -292t-274 -175z" /> +<glyph unicode="-" horiz-adv-x="679" d="M88 412v213h504v-213h-504z" /> +<glyph unicode="." horiz-adv-x="614" d="M125 164q0 82 52 136t130 54t130 -54t52 -136q0 -80 -52 -134.5t-130 -54.5t-130 54.5t-52 134.5z" /> +<glyph unicode="/" horiz-adv-x="694" d="M27 -328l411 1782h197l-412 -1782h-196z" /> +<glyph unicode="0" d="M76 655q0 166 33.5 291t94 210t146.5 127t191 42q104 0 190 -42t146.5 -127t94.5 -210t34 -291t-34 -292.5t-94.5 -213t-146.5 -130.5t-190 -44t-190.5 44t-147 130.5t-94 213t-33.5 292.5zM360 655q0 -133 14.5 -219t39 -137t57.5 -70.5t70 -19.5q39 0 71.5 19.5 t57 70.5t38 137t13.5 219t-13.5 218t-38 133.5t-57 67t-71.5 18.5q-37 0 -70 -18.5t-57.5 -67t-39 -133.5t-14.5 -218z" /> +<glyph unicode="1" d="M143 0v244h283v751h-244v187q106 20 180 49t144 69h221v-1056h244v-244h-828z" /> +<glyph unicode="2" d="M61 1118q96 102 196.5 154.5t240.5 52.5q96 0 175 -29.5t136 -84t88 -130t31 -170.5q0 -82 -35 -167t-93.5 -170t-133 -170t-154.5 -166q49 6 109.5 11t107.5 5h262v-254h-915v172q125 117 228.5 218.5t178 190.5t116.5 165.5t42 146.5q0 96 -49 146.5t-135 50.5 q-72 0 -127.5 -40t-104.5 -94z" /> +<glyph unicode="3" d="M45 160l139 190q59 -57 130 -94t155 -37q96 0 153.5 40t57.5 114q0 43 -15.5 77.5t-54.5 58t-106.5 37t-173.5 13.5v213q88 0 146.5 12.5t94 36t51 55t15.5 70.5q0 68 -41 106t-119 38q-70 0 -126 -31t-118 -84l-151 184q90 78 189.5 122t220.5 44q100 0 183 -23.5 t141 -69.5t91 -111.5t33 -151.5q0 -102 -56.5 -173t-160.5 -116v-8q113 -33 185.5 -112t72.5 -206q0 -90 -39 -160.5t-104.5 -118.5t-153.5 -74t-186 -26q-160 0 -270.5 50.5t-182.5 134.5z" /> +<glyph unicode="4" d="M39 311v207l475 782h369v-759h149v-230h-149v-311h-281v311h-563zM328 541h274v211q0 63 4 146t8 144h-8q-25 -53 -51.5 -108t-54.5 -111z" /> +<glyph unicode="5" d="M47 158l135 190q59 -53 128 -91t153 -38q100 0 159.5 51.5t59.5 151.5q0 98 -56.5 149.5t-148.5 51.5q-29 0 -51.5 -3.5t-44 -11.5t-45 -20.5t-51.5 -30.5l-135 86l36 657h738v-253h-478l-22 -244q37 16 70.5 23.5t74.5 7.5q84 0 159 -25t132.5 -74t90 -124.5 t32.5 -180.5q0 -109 -39 -192.5t-104.5 -142t-152.5 -89.5t-181 -31q-160 0 -270.5 52.5t-188.5 130.5z" /> +<glyph unicode="6" d="M84 621q0 182 44 315t116.5 219t168 128t197.5 42q129 0 223.5 -46t155.5 -110l-158 -180q-35 37 -90 64.5t-112 27.5q-53 0 -100.5 -20.5t-83 -68.5t-58 -126t-27.5 -190q25 33 58 58.5t67.5 43t69.5 26.5t66 9q84 0 154.5 -24.5t122.5 -73.5t81 -125t29 -178t-35 -182 t-93.5 -137.5t-137 -87.5t-167.5 -30q-94 0 -183 37t-157.5 115t-109.5 200t-41 294zM367 471q10 -78 30.5 -129t47 -83t58 -45t66.5 -13q68 0 116 50t48 161q0 104 -48 146t-122 42q-49 0 -100 -28.5t-96 -100.5z" /> +<glyph unicode="7" d="M90 1047v253h905v-184q-113 -137 -181.5 -257t-106 -248t-54 -274.5t-24.5 -336.5h-303q8 162 29.5 298t61.5 260t102.5 243t154.5 246h-584z" /> +<glyph unicode="8" d="M86 332q0 119 64.5 194.5t156.5 124.5v8q-76 57 -125 130t-49 178q0 82 31 148.5t86 113.5t132 71.5t167 24.5q88 0 161.5 -25.5t125 -71.5t80 -112.5t28.5 -146.5q0 -94 -51 -167t-119 -118v-8q94 -51 159.5 -131t65.5 -209q0 -78 -32.5 -143.5t-93 -113.5t-145.5 -76 t-189 -28q-98 0 -181.5 26t-143.5 73t-94 112.5t-34 145.5zM344 367q0 -86 59.5 -134.5t141.5 -48.5q76 0 125 40t49 122q0 43 -19.5 74t-56.5 56.5t-87 48t-112 48.5q-43 -41 -71.5 -94t-28.5 -112zM397 967q0 -80 62 -125t162 -84q80 92 79 190q0 76 -42 122t-115 46 q-59 0 -102.5 -37t-43.5 -112z" /> +<glyph unicode="9" d="M70 889q0 100 34.5 181t93 138.5t137.5 87t167 29.5q94 0 183 -37t157.5 -114.5t110.5 -199.5t42 -294q0 -182 -44 -315.5t-116.5 -219.5t-168 -128t-197.5 -42q-129 0 -224 47.5t-157 108.5l160 180q33 -37 88 -64.5t113 -27.5q55 0 102 20.5t83 68.5t57.5 125t25.5 192 q-25 -33 -57.5 -58.5t-67.5 -43t-70 -27t-65 -9.5q-84 0 -155 25t-122 74t-80.5 124.5t-29.5 178.5zM344 889q0 -104 49 -146.5t123 -42.5q49 0 100.5 29t94.5 100q-20 154 -76.5 212.5t-126.5 58.5q-66 0 -115 -50.5t-49 -160.5z" /> +<glyph unicode=":" horiz-adv-x="614" d="M125 164q0 82 52 136t130 54t130 -54t52 -136q0 -80 -52 -134.5t-130 -54.5t-130 54.5t-52 134.5zM125 828q0 82 52 136t130 54t130 -54t52 -136q0 -80 -52 -134.5t-130 -54.5t-130 54.5t-52 134.5z" /> +<glyph unicode=";" horiz-adv-x="614" d="M94 -238q113 41 172.5 106.5t59.5 143.5h-17q-72 0 -127 44t-55 126q0 78 55.5 125t132.5 47q102 0 155.5 -74.5t53.5 -209.5q0 -170 -94 -292t-274 -175zM125 828q0 82 52 136t130 54t130 -54t52 -136q0 -80 -52 -134.5t-130 -54.5t-130 54.5t-52 134.5z" /> +<glyph unicode="<" d="M70 575v209l942 363v-248l-361 -119l-276 -96v-8l276 -96l361 -119v-248z" /> +<glyph unicode="=" d="M70 333v213h942v-213h-942zM70 807v213h942v-213h-942z" /> +<glyph unicode=">" d="M70 213v248l360 119l277 96v8l-277 96l-360 119v248l942 -363v-209z" /> +<glyph unicode="?" horiz-adv-x="948" d="M84 1210q70 84 164 135.5t209 51.5q86 0 160.5 -20.5t129 -63.5t85 -109.5t30.5 -156.5q0 -63 -22.5 -113.5t-56 -93.5t-71.5 -83t-70 -83t-50.5 -91t-11.5 -110h-265q-10 70 5.5 127t44 106.5t64.5 90.5t68.5 78.5t54 73.5t21.5 75q0 63 -37.5 96t-99.5 33 q-57 0 -101 -26.5t-85 -67.5zM266 164q0 82 51.5 136t128.5 54q78 0 130.5 -54t52.5 -136q0 -80 -52.5 -134.5t-130.5 -54.5t-129 54.5t-51 134.5z" /> +<glyph unicode="@" horiz-adv-x="1849" d="M100 420q0 215 74 390t200 300t294 192.5t356 67.5q166 0 300 -53t228.5 -150.5t145.5 -231.5t51 -294q0 -141 -43 -246.5t-110.5 -176.5t-150.5 -105.5t-163 -34.5q-88 0 -153.5 41t-81.5 114h-5q-43 -59 -112.5 -97t-132.5 -38q-123 0 -197 83t-74 225q0 94 32 184 t87 160.5t131 113.5t164 43q51 0 90 -23.5t66 -78.5h4l28 86h187l-94 -451q-43 -176 94 -176q45 0 89 25.5t79 74t55.5 117t20.5 152.5q0 111 -31 211t-98.5 177t-174 122t-256.5 45q-131 0 -256 -54.5t-223 -153.5t-157.5 -239.5t-59.5 -312.5q0 -152 48 -264.5t131 -186 t190.5 -110.5t228.5 -37q80 0 163 22.5t148 57.5l66 -164q-94 -51 -192.5 -74.5t-208.5 -23.5q-154 0 -294.5 47t-248 143t-171 240.5t-63.5 341.5zM754 424q0 -137 106 -137q33 0 64.5 20.5t70.5 71.5l49 276q-31 59 -94 60q-47 0 -83 -29t-61.5 -72t-38.5 -94t-13 -96z " /> +<glyph unicode="A" horiz-adv-x="1173" d="M-12 0l418 1335h362l418 -1335h-320l-82 317h-407l-82 -317h-307zM438 553h285l-31 123q-29 100 -55.5 212.5t-52.5 217.5h-9q-25 -106 -50 -218t-54 -212z" /> +<glyph unicode="B" horiz-adv-x="1239" d="M158 0v1335h456q104 0 193.5 -15t156 -54t104.5 -102.5t38 -159.5q0 -45 -13.5 -90.5t-40 -84t-69.5 -69.5t-100 -45v-8q143 -27 215.5 -103t72.5 -211q0 -102 -39.5 -176t-110.5 -122t-165 -71.5t-203 -23.5h-495zM459 233h170q248 0 248 183q0 88 -61.5 128t-186.5 40 h-170v-351zM459 797h141q111 0 161 44t50 120t-51 108.5t-158 32.5h-143v-305z" /> +<glyph unicode="C" horiz-adv-x="1191" d="M94 659q0 166 51.5 296t138.5 220.5t202.5 137.5t244.5 47q125 0 226.5 -52.5t168.5 -121.5l-165 -187q-51 47 -103.5 74t-122.5 27t-130 -30t-105 -85t-71 -135t-26 -180q0 -207 88.5 -320.5t235.5 -113.5q82 0 143.5 32.5t110.5 85.5l166 -182q-84 -98 -191.5 -147.5 t-232.5 -49.5q-129 0 -243.5 44t-200.5 130.5t-135.5 214t-49.5 295.5z" /> +<glyph unicode="D" horiz-adv-x="1300" d="M158 0v1335h377q154 0 276.5 -39t210.5 -119.5t135 -205.5t47 -297t-47 -299t-133 -210t-206 -124t-267 -41h-393zM459 244h57q86 0 155.5 22.5t119 72.5t77 132t27.5 203q0 119 -27.5 199.5t-77 129t-119 69t-155.5 20.5h-57v-848z" /> +<glyph unicode="E" horiz-adv-x="1122" d="M158 0v1335h835v-254h-534v-268h454v-252h-454v-307h555v-254h-856z" /> +<glyph unicode="F" horiz-adv-x="1073" d="M158 0v1335h841v-254h-540v-309h463v-254h-463v-518h-301z" /> +<glyph unicode="G" horiz-adv-x="1306" d="M94 659q0 166 52.5 296t141.5 220.5t208.5 137.5t255.5 47q141 0 244.5 -53.5t168.5 -120.5l-166 -187q-49 47 -103 74t-140 27q-78 0 -142.5 -30t-111.5 -85t-73 -135t-26 -180q0 -207 93.5 -320.5t281.5 -113.5q41 0 80 10t64 30v230h-222v246h488v-615 q-72 -68 -188.5 -115t-258.5 -47q-135 0 -252.5 44t-205.5 130.5t-138.5 214t-50.5 295.5z" /> +<glyph unicode="H" horiz-adv-x="1380" d="M158 0v1335h301v-514h461v514h303v-1335h-303v557h-461v-557h-301z" /> +<glyph unicode="I" horiz-adv-x="616" d="M158 0v1335h301v-1335h-301z" /> +<glyph unicode="J" horiz-adv-x="1042" d="M33 217l205 152q37 -68 86 -100.5t100 -32.5q82 0 124 50t42 183v866h301v-891q0 -96 -25.5 -182t-78 -149.5t-133.5 -100.5t-191 -37q-154 0 -257.5 59.5t-172.5 182.5z" /> +<glyph unicode="K" horiz-adv-x="1257" d="M158 0v1335h301v-547h8l397 547h332l-403 -532l477 -803h-330l-326 563l-155 -205v-358h-301z" /> +<glyph unicode="L" horiz-adv-x="1060" d="M158 0v1335h301v-1081h528v-254h-829z" /> +<glyph unicode="M" horiz-adv-x="1560" d="M158 0v1335h319l223 -600l80 -233h8l80 233l217 600h318v-1335h-281v489q0 49 4 108.5t10.5 120t12.5 119t12 107.5h-8l-111 -309l-204 -518h-121l-205 518l-106 309h-9q6 -49 12.5 -107.5t11.5 -119t9 -119.5t4 -109v-489h-276z" /> +<glyph unicode="N" horiz-adv-x="1361" d="M158 0v1335h309l348 -663l131 -295h8q-10 106 -23 237t-13 250v471h286v-1335h-309l-348 666l-131 290h-8q10 -111 23 -237.5t13 -245.5v-473h-286z" /> +<glyph unicode="O" horiz-adv-x="1400" d="M94 674q0 164 44 292t124 215t191.5 133t246.5 46t247 -46t192 -134t124 -216t44 -290q0 -164 -44 -293t-124 -219t-192 -138.5t-247 -48.5t-246.5 48.5t-191.5 138.5t-124 219t-44 293zM403 674q0 -203 80 -320.5t217 -117.5t217 117.5t80 320.5q0 201 -79.5 313.5 t-217.5 112.5q-137 0 -217 -113t-80 -313z" /> +<glyph unicode="P" horiz-adv-x="1241" d="M158 0v1335h487q109 0 204 -21.5t165.5 -71.5t111.5 -133t41 -204q0 -117 -42 -203t-113.5 -141t-165.5 -81.5t-201 -26.5h-186v-453h-301zM459 692h168q245 0 245 211q0 106 -62 149.5t-183 43.5h-168v-404z" /> +<glyph unicode="Q" horiz-adv-x="1400" d="M94 674q0 164 44 292t124 215t191.5 133t246.5 46t247 -46t192 -134t124 -216t44 -290q0 -270 -115 -444.5t-309 -229.5q47 -70 127 -97.5t166 -27.5q43 0 80.5 7t66.5 18l53 -222q-37 -18 -97 -30.5t-138 -12.5q-213 0 -359.5 98.5t-218.5 256.5q-106 23 -193 79 t-148.5 144t-94.5 203.5t-33 257.5zM403 674q0 -215 80 -334t217 -119t217 119t80 334q0 201 -79.5 313.5t-217.5 112.5q-137 0 -217 -112.5t-80 -313.5z" /> +<glyph unicode="R" horiz-adv-x="1261" d="M158 0v1335h481q106 0 199.5 -20.5t163 -68.5t110.5 -128t41 -198q0 -147 -64.5 -242.5t-173.5 -142.5l304 -535h-338l-256 481h-166v-481h-301zM459 721h155q119 0 181.5 50t62.5 149q0 98 -62.5 137t-181.5 39h-155v-375z" /> +<glyph unicode="S" horiz-adv-x="1138" d="M72 168l172 207q72 -61 158.5 -100t170.5 -39q94 0 140.5 34.5t46.5 94.5q0 31 -13.5 53t-39 39.5t-61.5 33t-79 33.5l-174 74q-51 20 -99 53t-86 77t-60.5 102.5t-22.5 132.5q0 82 35 154.5t98.5 126.5t150.5 85t191 31q117 0 230.5 -45t199.5 -131l-153 -191 q-66 51 -131.5 79t-145.5 28q-78 0 -124 -32t-46 -89q0 -31 15.5 -52.5t43 -39t64.5 -32.5t80 -34l172 -69q123 -49 193.5 -135.5t70.5 -227.5q0 -84 -34 -158.5t-98.5 -131t-158.5 -90.5t-213 -34q-131 0 -261 48.5t-232 144.5z" /> +<glyph unicode="T" horiz-adv-x="1138" d="M51 1081v254h1036v-254h-366v-1081h-303v1081h-367z" /> +<glyph unicode="U" horiz-adv-x="1361" d="M150 618v717h303v-747q0 -197 59 -274.5t172 -77.5t174.5 77.5t61.5 274.5v747h290v-717q0 -336 -134 -489.5t-392 -153.5q-260 0 -397 154t-137 489z" /> +<glyph unicode="V" horiz-adv-x="1138" d="M-14 1335h319l160 -622q31 -111 54.5 -214.5t53.5 -213.5h9q29 111 53 214t53 214l158 622h307l-401 -1335h-363z" /> +<glyph unicode="W" horiz-adv-x="1665" d="M29 1335h309l92 -624q12 -104 26.5 -210t26.5 -212h9q20 106 39.5 211.5t39.5 210.5l144 624h256l143 -624q20 -102 40 -208t40 -214h8q14 109 27.5 213t27.5 209l93 624h288l-237 -1335h-379l-131 606q-16 78 -29.5 157t-23.5 152h-9q-12 -74 -25 -152.5t-30 -156.5 l-125 -606h-373z" /> +<glyph unicode="X" horiz-adv-x="1161" d="M23 0l370 686l-348 649h336l117 -252q23 -47 45 -99t51 -116h8q23 63 44.5 115.5t41.5 99.5l107 252h321l-346 -663l369 -672h-336l-133 272q-25 53 -48.5 105.5t-52.5 114.5h-8q-23 -61 -45 -113.5t-45 -106.5l-125 -272h-323z" /> +<glyph unicode="Y" horiz-adv-x="1075" d="M-16 1335h323l119 -307q29 -76 54.5 -146.5t54.5 -148.5h8q29 78 56.5 148.5t55.5 146.5l121 307h316l-404 -860v-475h-301v475z" /> +<glyph unicode="Z" horiz-adv-x="1107" d="M74 0v182l590 899h-535v254h905v-182l-590 -899h596v-254h-966z" /> +<glyph unicode="[" horiz-adv-x="704" d="M178 -311v1761h432v-160h-207v-1442h207v-159h-432z" /> +<glyph unicode="\" horiz-adv-x="694" d="M57 1454h197l414 -1782h-197z" /> +<glyph unicode="]" horiz-adv-x="704" d="M94 -152h209v1442h-209v160h432v-1761h-432v159z" /> +<glyph unicode="^" d="M102 561l318 811h242l317 -811h-248l-94 262l-92 277h-8l-93 -277l-94 -262h-248z" /> +<glyph unicode="_" horiz-adv-x="1024" d="M25 -117h974v-170h-974v170z" /> +<glyph unicode="`" horiz-adv-x="1136" d="M264 1483h291l182 -307h-219z" /> +<glyph unicode="a" horiz-adv-x="1093" d="M96 283q0 160 135.5 250t436.5 120q-4 68 -41 108t-119 40q-66 0 -131.5 -24.5t-138.5 -67.5l-107 198q98 59 205.5 96t228.5 37q197 0 300.5 -111.5t103.5 -346.5v-582h-246l-23 104h-6q-66 -57 -138.5 -93t-158.5 -36q-70 0 -125 24t-94 65.5t-60.5 97t-21.5 121.5z M383 305q0 -49 31.5 -72.5t85.5 -23.5q53 0 90 22.5t78 63.5v178q-162 -23 -223.5 -66t-61.5 -102z" /> +<glyph unicode="b" horiz-adv-x="1173" d="M133 0v1436h301v-353l-8 -155q59 53 128 82.5t140 29.5q92 0 166 -36.5t126 -103t80 -162t28 -212.5q0 -131 -36 -233.5t-96.5 -173t-137 -107.5t-158.5 -37q-68 0 -136.5 33t-128.5 98h-8l-24 -106h-236zM434 287q41 -37 82 -51.5t80 -14.5q78 0 133 70.5t55 228.5 q0 274 -176 275q-90 0 -174 -93v-415z" /> +<glyph unicode="c" horiz-adv-x="956" d="M74 508q0 127 43 226.5t115.5 167t169 103t200.5 35.5q94 0 170 -31.5t127 -84.5l-137 -187q-72 59 -141 60q-111 0 -174.5 -78t-63.5 -211t64.5 -211t162.5 -78q55 0 100.5 22.5t82.5 51.5l120 -191q-74 -66 -164 -96.5t-174 -30.5q-106 0 -197 36t-158.5 103.5 t-106.5 167t-39 226.5z" /> +<glyph unicode="d" horiz-adv-x="1173" d="M80 508q0 125 36 223t94 167t135 105.5t157 36.5q86 0 141 -28.5t109 -77.5l-13 156v346h301v-1436h-245l-21 100h-8q-53 -53 -125 -89t-145 -36q-94 0 -171 37t-131.5 105.5t-84 167t-29.5 223.5zM389 512q0 -152 48 -221.5t136 -69.5q49 0 89 20.5t77 71.5v416 q-41 37 -84 51.5t-84 14.5q-72 0 -127 -69t-55 -214z" /> +<glyph unicode="e" horiz-adv-x="1060" d="M74 508q0 123 41 222t107.5 168t152.5 105.5t178 36.5q109 0 189.5 -36.5t135 -102t81 -155t26.5 -193.5q0 -41 -4 -75t-8 -52h-608q20 -117 90.5 -169t173.5 -52q109 0 219 67l100 -182q-78 -53 -173 -84t-187 -31q-109 0 -203 36t-163.5 104.5t-108.5 167t-39 225.5z M362 612h367q0 88 -39 143.5t-131 55.5q-72 0 -126 -48t-71 -151z" /> +<glyph unicode="f" horiz-adv-x="698" d="M49 780v224l135 10v55q0 80 19.5 151.5t64.5 125t117 84t174 30.5q63 0 115.5 -12t87.5 -25l-55 -221q-57 20 -105 21q-55 0 -86 -34t-31 -112v-61h183v-236h-183v-780h-301v780h-135z" /> +<glyph unicode="g" horiz-adv-x="1093" d="M70 -174q0 123 145 205v8q-41 27 -67.5 67.5t-26.5 104.5q0 55 32.5 105.5t82.5 84.5v9q-53 37 -95.5 105.5t-42.5 158.5q0 92 35 160.5t93.5 114.5t134 68.5t157.5 22.5q90 0 158 -24h371v-219h-162q14 -23 23.5 -57.5t9.5 -75.5q0 -88 -31 -153t-85 -107t-127 -62 t-157 -20q-59 0 -123 20q-20 -16 -28.5 -32.5t-8.5 -43.5q0 -39 34 -57.5t120 -18.5h164q188 0 287.5 -60t99.5 -198q0 -80 -40 -146.5t-113.5 -114.5t-178 -75.5t-235.5 -27.5q-90 0 -167 15.5t-135.5 46t-91 79.5t-32.5 117zM317 -127q0 -57 61.5 -87t164.5 -30 q102 0 167.5 36t65.5 89q0 47 -40 63.5t-115 16.5h-105q-53 0 -86 3t-57 9q-56 -49 -56 -100zM379 674q0 -86 40 -128t99 -42t99 42t40 128q0 80 -39.5 122t-99.5 42q-59 0 -99 -41t-40 -123z" /> +<glyph unicode="h" horiz-adv-x="1169" d="M133 0v1436h301v-353l-14 -182q57 51 133 95t180 44q166 0 241 -108.5t75 -300.5v-631h-301v592q0 111 -30 151.5t-95 40.5q-57 0 -98.5 -25.5t-90.5 -72.5v-686h-301z" /> +<glyph unicode="i" horiz-adv-x="565" d="M109 1323q0 70 49 113t125 43q78 0 126 -43t48 -113t-48 -114t-126 -44q-76 0 -125 44t-49 114zM133 0v1016h301v-1016h-301z" /> +<glyph unicode="j" horiz-adv-x="569" d="M-104 -373l53 221q20 -6 38.5 -10t41.5 -4q59 0 82.5 39t23.5 125v1018h301v-1010q0 -84 -17.5 -157.5t-59.5 -129t-111.5 -88t-173.5 -32.5q-63 0 -105.5 8t-72.5 20zM113 1323q0 70 49 113t125 43t125 -43t49 -113t-49 -114t-125 -44t-125 44t-49 114z" /> +<glyph unicode="k" horiz-adv-x="1122" d="M133 0v1436h293v-824h8l322 404h327l-356 -418l383 -598h-326l-229 395l-129 -145v-250h-293z" /> +<glyph unicode="l" horiz-adv-x="585" d="M133 315v1121h301v-1133q0 -47 17.5 -65.5t35.5 -18.5h17.5t19.5 4l37 -223q-25 -10 -62.5 -17.5t-88.5 -7.5q-78 0 -131.5 25t-85 69t-46 106.5t-14.5 139.5z" /> +<glyph unicode="m" horiz-adv-x="1755" d="M133 0v1016h246l20 -131h9q63 63 134.5 109t172.5 46q109 0 175 -44t105 -126q68 70 142.5 120t177.5 50q164 0 240.5 -109.5t76.5 -299.5v-631h-301v592q0 111 -29.5 151.5t-95.5 40.5q-76 0 -174 -98v-686h-301v592q0 111 -29.5 151.5t-95.5 40.5q-78 0 -172 -98v-686 h-301z" /> +<glyph unicode="n" horiz-adv-x="1171" d="M133 0v1016h246l20 -129h9q66 61 143.5 107t181.5 46q166 0 241 -108.5t75 -300.5v-631h-301v592q0 111 -30 151.5t-95 40.5q-57 0 -98.5 -25.5t-90.5 -72.5v-686h-301z" /> +<glyph unicode="o" horiz-adv-x="1136" d="M74 508q0 127 41 226.5t109.5 167t158.5 103t186 35.5t185.5 -35.5t158 -103t109.5 -167t41 -226.5t-41 -226.5t-109.5 -167t-157.5 -103.5t-186 -36q-96 0 -186 36t-158.5 103.5t-109.5 167t-41 226.5zM383 508q0 -133 46 -211t140 -78q92 0 139.5 78t47.5 211t-47 211 t-140 78q-94 0 -140 -78t-46 -211z" /> +<glyph unicode="p" horiz-adv-x="1173" d="M133 -377v1393h246l20 -101h9q59 53 133.5 89t154.5 36q92 0 166 -36.5t125 -104.5t79 -163t28 -212q0 -131 -36 -232.5t-96.5 -172t-137 -107.5t-158.5 -37q-66 0 -127.5 28t-114.5 79l10 -162v-297h-301zM434 287q41 -37 82 -51.5t80 -14.5q78 0 133 70.5t55 228.5 q0 274 -176 275q-88 0 -174 -93v-415z" /> +<glyph unicode="q" horiz-adv-x="1171" d="M80 508q0 125 36 223t94 167t135 105.5t157 36.5q84 0 147.5 -29.5t122.5 -95.5h8l25 101h235v-1393h-301v309l13 156q-51 -49 -119 -81t-137 -32q-94 0 -171 37t-131.5 105.5t-84 167t-29.5 223.5zM389 512q0 -152 48 -221.5t136 -69.5q49 0 89 20.5t77 71.5v416 q-41 37 -84 51.5t-84 14.5q-72 0 -127 -69t-55 -214z" /> +<glyph unicode="r" horiz-adv-x="815" d="M133 0v1016h246l20 -178h9q55 104 132.5 153t155.5 49q43 0 71 -5t50 -15l-49 -260q-29 8 -53.5 12t-57.5 4q-57 0 -119.5 -41t-103.5 -145v-590h-301z" /> +<glyph unicode="s" horiz-adv-x="907" d="M43 117l135 188q70 -53 133.5 -79.5t128.5 -26.5q68 0 98.5 22.5t30.5 63.5q0 25 -17 44t-47 35.5t-67 30t-76 29.5q-47 18 -94 43t-86 60.5t-63.5 83.5t-24.5 112q0 70 28 129t79 100t122.5 64.5t159.5 23.5q117 0 205 -39.5t154 -89.5l-135 -180q-55 41 -108.5 63.5 t-106.5 22.5q-115 0 -115 -80q0 -25 16.5 -42t44 -31.5t63.5 -27.5t74 -28q49 -18 97.5 -41.5t88.5 -58.5t64.5 -85t24.5 -120t-26.5 -129t-80 -103t-131 -70t-180.5 -26q-100 0 -205.5 39t-183.5 103z" /> +<glyph unicode="t" horiz-adv-x="784" d="M35 780v224l155 12l35 270h250v-270h244v-236h-244v-407q0 -86 36 -124t95 -38q25 0 50.5 6t45.5 14l48 -219q-41 -12 -96.5 -24.5t-129.5 -12.5q-94 0 -160.5 29t-108.5 80t-61.5 124t-19.5 161v411h-139z" /> +<glyph unicode="u" horiz-adv-x="1163" d="M123 385v631h301v-592q0 -111 30.5 -152t96.5 -41q57 0 96 27t84 86v672h301v-1016h-246l-22 141h-6q-66 -78 -140.5 -122t-179.5 -44q-166 0 -240.5 109t-74.5 301z" /> +<glyph unicode="v" horiz-adv-x="1071" d="M25 1016h303l131 -479q20 -76 39.5 -155t40.5 -159h8q18 80 37.5 159t40.5 155l133 479h289l-332 -1016h-348z" /> +<glyph unicode="w" horiz-adv-x="1589" d="M49 1016h299l98 -471q12 -76 22.5 -149.5t23.5 -151.5h8q14 78 27.5 153.5t31.5 147.5l113 471h260l115 -471q18 -76 32.5 -149.5t30.5 -151.5h8q14 78 23.5 151.5t23.5 149.5l97 471h278l-244 -1016h-352l-92 406q-16 72 -28.5 143.5t-26.5 152.5h-9q-14 -82 -25 -153.5 t-26 -142.5l-90 -406h-344z" /> +<glyph unicode="x" horiz-adv-x="1052" d="M29 0l311 528l-293 488h324l90 -164q20 -43 41.5 -87t44.5 -87h8q16 43 34.5 87t35.5 87l69 164h312l-295 -522l313 -494h-324l-98 168q-25 43 -48.5 88t-47.5 88h-8q-18 -43 -39 -87t-39 -89l-80 -168h-311z" /> +<glyph unicode="y" horiz-adv-x="1067" d="M25 1016h303l145 -436q23 -70 41 -141.5t39 -147.5h8q16 72 33.5 144.5t36.5 144.5l123 436h288l-352 -1026q-37 -96 -77 -169t-92 -121t-118.5 -72.5t-156.5 -24.5q-47 0 -80 5t-64 15l54 230q14 -4 32.5 -8.5t34.5 -4.5q76 0 117 37t61 96l15 54z" /> +<glyph unicode="z" horiz-adv-x="942" d="M78 0v162l426 618h-379v236h754v-160l-426 -620h440v-236h-815z" /> +<glyph unicode="{" horiz-adv-x="704" d="M63 481v176q49 2 83 15.5t54.5 35t30 48t9.5 53.5q0 49 -3.5 89t-7.5 80t-7 83t-3 98q0 166 63.5 228.5t198.5 62.5h129v-160h-39q-63 0 -85.5 -29.5t-22.5 -113.5t4 -162t4 -172q0 -117 -37 -169t-115 -71v-8q78 -18 115 -70.5t37 -168.5q0 -94 -4 -172t-4 -162 t22.5 -114t85.5 -30h39v-159h-129q-135 0 -198.5 62.5t-63.5 228.5q0 55 3 98t7 83t7.5 80t3.5 89q0 27 -9.5 53.5t-30 48t-54 34.5t-83.5 15z" /> +<glyph unicode="|" horiz-adv-x="548" d="M176 -512v2048h197v-2048h-197z" /> +<glyph unicode="}" horiz-adv-x="704" d="M94 -152h39q63 0 86 30t23 114t-4.5 161.5t-4.5 172.5q0 117 37 169t115 70v8q-78 18 -115 70.5t-37 169.5q0 94 4.5 172t4.5 162t-22.5 113.5t-86.5 29.5h-39v160h129q135 0 198.5 -62.5t63.5 -228.5q0 -55 -3 -98t-7 -83t-7 -80t-3 -89q0 -27 9 -53.5t29.5 -48 t54.5 -35t83 -15.5v-176q-49 -2 -83 -15t-54.5 -34.5t-29.5 -48.5t-9 -53q0 -49 3 -89t7 -80t7 -83t3 -98q0 -166 -63.5 -228.5t-198.5 -62.5h-129v159z" /> +<glyph unicode="~" d="M59 649q76 117 153 164t155 47q63 0 110 -24.5t87 -53t76 -53t79 -24.5t79 30.5t68 87.5l156 -121q-76 -117 -152.5 -163.5t-154.5 -46.5q-63 0 -110.5 24.5t-87.5 53t-75.5 53t-79.5 24.5q-41 0 -77.5 -30.5t-69.5 -88.5z" /> +<glyph unicode="¡" horiz-adv-x="696" d="M166 852q0 80 52 134t130 54t130 -54t52 -134q0 -82 -52 -136t-130 -54t-130 54t-52 136zM197 -356l10 272l43 627h196l43 -627l11 -272h-303z" /> +<glyph unicode="¢" d="M123 629q0 109 32.5 196.5t92 152t139.5 106.5t176 59v198h166v-190q80 -8 144.5 -38t109.5 -77l-137 -184q-61 49 -117 55v-557q43 8 80 27.5t68 44.5l120 -191q-59 -51 -128.5 -80.5t-139.5 -39.5v-195h-166v195q-100 12 -181 53t-138.5 107.5t-89 156.5t-31.5 201z M416 629q0 -92 38 -159t109 -97v512q-74 -33 -110.5 -98.5t-36.5 -157.5z" /> +<glyph unicode="£" d="M98 0v186q92 41 154.5 122t62.5 192q0 14 -1 27.5t-3 27.5h-205v176l140 10h12q-14 41 -23.5 82t-9.5 82q0 96 33 174t91.5 132.5t138 84t176.5 29.5q115 0 199.5 -43t154.5 -123l-164 -164q-35 43 -74 64.5t-88 21.5q-82 0 -130 -47t-48 -145q0 -37 6 -74t17 -74h303 v-186h-265q2 -14 3.5 -28.5t1.5 -28.5q0 -74 -21.5 -127.5t-71.5 -108.5v-8h531v-254h-920z" /> +<glyph unicode="¤" d="M41 322l125 127q-70 94 -70 227q0 66 17.5 122t50.5 101l-123 127l149 152l142 -144q98 51 209 51q106 0 209 -51l141 144l149 -152l-125 -127q70 -92 70 -223q0 -68 -18.5 -124t-51.5 -103l125 -127l-149 -152l-143 145q-47 -25 -100.5 -37t-106.5 -12q-113 0 -207 49 l-144 -145zM365 676q0 -92 51 -146.5t125 -54.5t125 54.5t51 146.5t-51.5 146.5t-124.5 54.5q-74 0 -125 -54.5t-51 -146.5z" /> +<glyph unicode="¥" d="M25 1300h309l104 -272q25 -68 49.5 -135.5t53.5 -132.5h8q27 68 51.5 135.5t50.5 132.5l103 272h303l-301 -600h250v-143h-316v-113h316v-143h-316v-301h-301v301h-313v143h313v113h-313v143h250z" /> +<glyph unicode="¦" horiz-adv-x="548" d="M176 418h197v-930h-197v930zM176 639v897h197v-897h-197z" /> +<glyph unicode="§" d="M76 668q0 78 44 146.5t120 115.5q-29 33 -44.5 75t-15.5 95q0 139 95.5 226t269.5 87q119 0 212 -42t156 -91l-137 -188q-47 41 -104.5 69.5t-110.5 28.5q-111 0 -110 -80q0 -37 40.5 -64.5t102 -55t134.5 -60.5t134.5 -79t102.5 -111.5t41 -157.5q0 -90 -44 -157 t-124 -116q23 -33 35 -71.5t12 -85.5q0 -70 -25.5 -129.5t-75 -102.5t-123 -67.5t-169.5 -24.5q-113 0 -220.5 42t-177.5 130l174 154q100 -104 224 -105q63 0 92.5 24.5t29.5 63.5t-39.5 67.5t-99 55.5t-130.5 57.5t-130 76.5t-99 111.5t-40 162.5zM330 690q0 -49 32.5 -83 t84 -61.5t114 -53t121.5 -56.5q70 43 70 121q0 49 -33 83t-83 61.5t-112.5 52t-122.5 55.5q-71 -47 -71 -119z" /> +<glyph unicode="¨" horiz-adv-x="1136" d="M223 1313q0 59 40 100t103 41t103.5 -41t40.5 -100q0 -61 -40.5 -102.5t-103.5 -41.5t-103 41t-40 103zM628 1313q0 59 40 100t104 41q63 0 103 -41t40 -100q0 -61 -40 -102.5t-103 -41.5t-103.5 41t-40.5 103z" /> +<glyph unicode="©" horiz-adv-x="1536" d="M92 666q0 160 54.5 284.5t147.5 211.5t216 133t258 46t258 -46t215 -133t146.5 -213t54.5 -283q0 -160 -54.5 -286t-146.5 -215t-215 -136t-258 -47t-258 47t-216 136t-147.5 215t-54.5 286zM231 666q0 -127 42 -229.5t114 -176.5t170 -114t211 -40t211 40t170 114 t114 176.5t42 229.5q0 125 -42 227t-114 175t-170 112t-211 39t-211 -39t-170 -112t-114 -175t-42 -227zM397 664q0 90 33 162.5t87 123.5t126 79t150 28q94 0 157.5 -36t112.5 -85l-113 -125q-33 35 -65.5 52.5t-73.5 17.5q-98 0 -148.5 -62.5t-50.5 -154.5 q0 -104 51.5 -166t137.5 -62q51 0 88 19.5t76 50.5l98 -139q-59 -47 -125 -77t-145 -30q-86 0 -159 28.5t-125 81t-82 127.5t-30 167z" /> +<glyph unicode="ª" horiz-adv-x="735" d="M59 725q0 109 90.5 167t292.5 77q-4 45 -27.5 67.5t-72.5 22.5q-41 0 -88 -16.5t-96 -45.5l-76 140q68 41 142.5 65.5t154.5 24.5q131 0 203.5 -75t72.5 -228v-387h-170l-20 67h-8q-37 -37 -84.5 -60.5t-106.5 -23.5q-96 0 -151.5 59.5t-55.5 145.5zM262 741 q0 -61 76 -61q31 0 54.5 14.5t49.5 38.5v113q-102 -10 -141 -39t-39 -66z" /> +<glyph unicode="«" horiz-adv-x="983" d="M100 410v213l275 295l112 -91l-227 -311l227 -311l-112 -90zM485 410v213l275 295l112 -91l-227 -311l227 -311l-112 -90z" /> +<glyph unicode="¬" d="M70 569v213h942v-589h-221v376h-721z" /> +<glyph unicode="­" horiz-adv-x="679" d="M88 412v213h504v-213h-504z" /> +<glyph unicode="®" horiz-adv-x="946" d="M66 1051q0 90 31.5 165.5t87 131t130 86t158.5 30.5t158 -30.5t129 -86t87 -131t32 -165.5t-32 -166t-87 -131.5t-129 -86t-158 -30.5t-158.5 30.5t-130 86t-87 131.5t-31.5 166zM178 1051q0 -72 21.5 -129.5t61.5 -98.5t93 -63.5t119 -22.5q129 0 211 85t82 229 q0 143 -82 228t-211 85q-66 0 -119 -22.5t-93 -63.5t-61.5 -98.5t-21.5 -128.5zM307 852v403h182q72 0 119 -32.5t47 -102.5q0 -76 -71 -110l84 -158h-123l-62 123h-59v-123h-117zM424 1057h43q31 0 46 17.5t15 39.5q0 23 -15 38t-46 15h-43v-110z" /> +<glyph unicode="¯" horiz-adv-x="1136" d="M286 1212v191h566v-191h-566z" /> +<glyph unicode="°" horiz-adv-x="747" d="M80 1110q0 63 22.5 117.5t62.5 94.5t94 61.5t116 21.5q61 0 115.5 -21.5t94.5 -61.5t63.5 -94t23.5 -118q0 -66 -23.5 -119t-63.5 -93t-94.5 -61.5t-115.5 -21.5t-115.5 21.5t-94.5 61.5t-62.5 93t-22.5 119zM238 1110q0 -68 39 -110t98 -42q61 0 99 42t38 110 q0 66 -38 108t-99 42q-59 0 -98 -42t-39 -108z" /> +<glyph unicode="±" d="M70 0v213h942v-213h-942zM70 602v213h360v344h221v-344h361v-213h-361v-278h-221v278h-360z" /> +<glyph unicode="²" horiz-adv-x="770" d="M55 1560q123 164 305 164q133 0 214 -70.5t81 -199.5q0 -49 -17 -95t-47 -91t-68 -90.5t-81 -92.5h242v-184h-592v119q154 127 252 224t98 173q0 59 -30.5 92t-85.5 33q-41 0 -76 -25.5t-70 -70.5z" /> +<glyph unicode="³" horiz-adv-x="770" d="M55 1038l133 105q72 -98 170 -99q47 0 81 25t34 72q0 104 -190 104v127q74 0 117.5 23.5t43.5 74.5q0 41 -26.5 63.5t-73.5 22.5q-39 0 -70.5 -22.5t-60.5 -57.5l-125 111q66 72 133.5 104.5t161.5 32.5q55 0 105.5 -15t89 -44t61.5 -71t23 -93q0 -63 -31 -107t-86 -77 q61 -25 103 -73t42 -120q0 -55 -25.5 -101t-67.5 -78t-98.5 -50.5t-117.5 -18.5q-104 0 -188 42t-138 120z" /> +<glyph unicode="´" horiz-adv-x="1136" d="M401 1176l182 307h291l-254 -307h-219z" /> +<glyph unicode="µ" horiz-adv-x="1173" d="M133 -410v1426h301v-592q0 -111 30 -152t95 -41q57 0 97 27t85 86v672h301v-1016h-245l-23 141h-8q-39 -74 -97.5 -111.5t-125.5 -37.5q-37 0 -69 8t-58 37l18 -184v-263h-301z" /> +<glyph unicode="¶" horiz-adv-x="1302" d="M80 879q0 129 41 216t111.5 141t166 76.5t201.5 22.5h90v-932h-82q-109 0 -205 30t-167.5 90.5t-113.5 149.5t-42 206zM805 -164v1499h301v-1499h-301z" /> +<glyph unicode="·" horiz-adv-x="614" d="M125 656q0 82 52 136t130 54t130 -54t52 -136q0 -80 -52 -134.5t-130 -54.5t-130 54.5t-52 134.5z" /> +<glyph unicode="¸" horiz-adv-x="1136" d="M360 -332q74 8 122 28.5t48 61.5q0 27 -25.5 48.5t-95.5 37.5l82 164h176l-41 -96q53 -16 86 -52t33 -100q0 -53 -29.5 -91t-79 -64.5t-115 -40t-138.5 -17.5z" /> +<glyph unicode="¹" horiz-adv-x="770" d="M156 1476v136q41 6 72.5 14t58 18.5t50 23.5t48.5 32h176v-799h-223v575h-182z" /> +<glyph unicode="º" horiz-adv-x="763" d="M49 872q0 84 27.5 149.5t74 112t105.5 70t125 23.5t125 -23.5t105 -70t74 -112t28 -149.5t-28 -149.5t-74 -110.5t-105 -68.5t-125 -23.5t-125 23.5t-105.5 68.5t-74 110.5t-27.5 149.5zM266 872q0 -84 28 -134t87 -50t88 50t29 134q0 86 -29 136.5t-88 50.5t-87 -50.5 t-28 -136.5z" /> +<glyph unicode="»" horiz-adv-x="983" d="M111 205l227 311l-227 311l112 91l275 -295v-213l-275 -295zM496 205l227 311l-227 311l112 91l275 -295v-213l-275 -295z" /> +<glyph unicode="¼" horiz-adv-x="1656" d="M97 1112v136q41 6 72.5 14t58 18.5t50 23.5t48.5 32h176v-799h-223v575h-182zM379 -25l721 1385h174l-721 -1385h-174zM959 178v111l288 510h275v-477h119v-144h-119v-178h-197v178h-366zM1161 322h164v84l13 239h-9l-82 -158z" /> +<glyph unicode="½" horiz-adv-x="1732" d="M97 1112v136q41 6 72.5 14t58 18.5t50 23.5t48.5 32h176v-799h-223v575h-182zM348 -25l721 1385h174l-721 -1385h-174zM1016 659q123 164 305 164q133 0 214 -70.5t81 -199.5q0 -49 -17 -95t-47 -91t-68 -90.5t-81 -92.5h242v-184h-592v119q154 127 252 224t98 173 q0 59 -30.5 92t-85.5 33q-41 0 -76 -25.5t-70 -70.5z" /> +<glyph unicode="¾" horiz-adv-x="1675" d="M51 674l133 105q72 -98 170 -99q47 0 81 25t34 72q0 104 -190 104v127q74 0 117.5 23.5t43.5 74.5q0 41 -26.5 63.5t-73.5 22.5q-39 0 -70.5 -22.5t-60.5 -57.5l-125 111q66 72 133.5 104.5t161.5 32.5q55 0 105.5 -15t89 -44t61.5 -71t23 -93q0 -63 -31 -107t-86 -77 q61 -25 103 -73t42 -120q0 -55 -25.5 -101t-67.5 -78t-98.5 -50.5t-117.5 -18.5q-104 0 -188 42t-138 120zM424 -25l721 1385h174l-721 -1385h-174zM975 178v111l288 510h275v-477h119v-144h-119v-178h-197v178h-366zM1177 322h164v84l13 239h-9l-82 -158z" /> +<glyph unicode="¿" horiz-adv-x="948" d="M86 -29q0 63 22.5 113.5t56.5 93.5t71.5 83t69.5 82t51.5 90t13.5 110h262q10 -70 -5.5 -127.5t-44 -106.5t-64.5 -90t-68.5 -79t-54 -73.5t-21.5 -74.5q0 -63 39 -96t98 -33q57 0 101 26.5t85 67.5l166 -152q-70 -84 -164 -135t-208 -51q-86 0 -161 20.5t-129.5 63.5 t-85 109.5t-30.5 158.5zM319 852q0 80 52.5 134t130.5 54t130 -54t52 -134q0 -82 -52 -136t-130 -54t-130.5 54t-52.5 136z" /> +<glyph unicode="À" horiz-adv-x="1173" d="M-12 0l418 1335h362l418 -1335h-320l-82 317h-407l-82 -317h-307zM248 1683h320l166 -245h-240zM438 553h285l-31 123q-29 100 -55.5 212.5t-52.5 217.5h-9q-25 -106 -50 -218t-54 -212z" /> +<glyph unicode="Á" horiz-adv-x="1173" d="M-12 0l418 1335h362l418 -1335h-320l-82 317h-407l-82 -317h-307zM426 1438l166 245h320l-246 -245h-240zM438 553h285l-31 123q-29 100 -55.5 212.5t-52.5 217.5h-9q-25 -106 -50 -218t-54 -212z" /> +<glyph unicode="Â" horiz-adv-x="1173" d="M-12 0l418 1335h362l418 -1335h-320l-82 317h-407l-82 -317h-307zM236 1438l197 245h294l197 -245h-231l-109 125h-8l-109 -125h-231zM438 553h285l-31 123q-29 100 -55.5 212.5t-52.5 217.5h-9q-25 -106 -50 -218t-54 -212z" /> +<glyph unicode="Ã" horiz-adv-x="1173" d="M-12 0l418 1335h362l418 -1335h-320l-82 317h-407l-82 -317h-307zM232 1440q16 141 77.5 209.5t141.5 68.5q41 0 76 -14t64.5 -31.5t55 -32t50.5 -14.5q27 0 47 20.5t31 71.5h153q-16 -141 -77.5 -209.5t-141.5 -68.5q-41 0 -76 14t-64.5 31.5t-55 32t-50.5 14.5 q-27 0 -47 -20.5t-31 -71.5h-153zM438 553h285l-31 123q-29 100 -55.5 212.5t-52.5 217.5h-9q-25 -106 -50 -218t-54 -212z" /> +<glyph unicode="Ä" horiz-adv-x="1173" d="M-12 0l418 1335h362l418 -1335h-320l-82 317h-407l-82 -317h-307zM234 1577q0 61 40 102t103 41t103.5 -41t40.5 -102t-40.5 -102t-103.5 -41t-103 41t-40 102zM438 553h285l-31 123q-29 100 -55.5 212.5t-52.5 217.5h-9q-25 -106 -50 -218t-54 -212zM639 1577 q0 61 40 102t104 41q63 0 103 -41t40 -102t-40 -102t-103 -41t-103.5 41t-40.5 102z" /> +<glyph unicode="Å" horiz-adv-x="1173" d="M-12 0l418 1335h362l418 -1335h-320l-82 317h-407l-82 -317h-307zM349 1628q0 92 63.5 146.5t167.5 54.5t167.5 -54.5t63.5 -146.5t-63.5 -146.5t-167.5 -54.5t-167.5 54.5t-63.5 146.5zM438 553h285l-31 123q-29 100 -55.5 212.5t-52.5 217.5h-9q-25 -106 -50 -218 t-54 -212zM496 1628q0 -41 24.5 -64.5t59.5 -23.5t58.5 23.5t23.5 64.5t-23.5 64.5t-58.5 23.5t-59.5 -23.5t-24.5 -64.5z" /> +<glyph unicode="Æ" horiz-adv-x="1730" d="M-29 0l635 1335h998v-254h-512v-268h432v-252h-432v-307h532v-254h-833v305h-363l-139 -305h-318zM535 539h256v569h-9q-41 -98 -80.5 -194.5t-80.5 -184.5z" /> +<glyph unicode="Ç" horiz-adv-x="1191" d="M94 659q0 166 51.5 296t138.5 220.5t202.5 137.5t244.5 47q125 0 226.5 -52.5t168.5 -121.5l-165 -187q-51 47 -103.5 74t-122.5 27t-130 -30t-105 -85t-71 -135t-26 -180q0 -207 88.5 -320.5t235.5 -113.5q82 0 143.5 32.5t110.5 85.5l166 -182q-84 -98 -191.5 -147.5 t-232.5 -49.5q-129 0 -243.5 44t-200.5 130.5t-135.5 214t-49.5 295.5zM506 -332q74 8 122 28.5t48 61.5q0 27 -25.5 48.5t-95.5 37.5l82 164h176l-41 -96q53 -16 86 -52t33 -100q0 -53 -29.5 -91t-79 -64.5t-115 -40t-138.5 -17.5z" /> +<glyph unicode="È" horiz-adv-x="1122" d="M158 0v1335h835v-254h-534v-268h454v-252h-454v-307h555v-254h-856zM258 1683h320l166 -245h-240z" /> +<glyph unicode="É" horiz-adv-x="1122" d="M158 0v1335h835v-254h-534v-268h454v-252h-454v-307h555v-254h-856zM436 1438l166 245h320l-246 -245h-240z" /> +<glyph unicode="Ê" horiz-adv-x="1122" d="M158 0v1335h835v-254h-534v-268h454v-252h-454v-307h555v-254h-856zM246 1438l197 245h294l197 -245h-231l-109 125h-8l-109 -125h-231z" /> +<glyph unicode="Ë" horiz-adv-x="1122" d="M158 0v1335h835v-254h-534v-268h454v-252h-454v-307h555v-254h-856zM244 1577q0 61 40 102t103 41t103.5 -41t40.5 -102t-40.5 -102t-103.5 -41t-103 41t-40 102zM649 1577q0 61 40 102t104 41q63 0 103 -41t40 -102t-40 -102t-103 -41t-103.5 41t-40.5 102z" /> +<glyph unicode="Ì" horiz-adv-x="616" d="M-25 1683h320l166 -245h-240zM158 0v1335h301v-1335h-301z" /> +<glyph unicode="Í" horiz-adv-x="616" d="M153 1438l166 245h320l-246 -245h-240zM158 0v1335h301v-1335h-301z" /> +<glyph unicode="Î" horiz-adv-x="616" d="M-37 1438l197 245h294l197 -245h-231l-109 125h-8l-109 -125h-231zM158 0v1335h301v-1335h-301z" /> +<glyph unicode="Ï" horiz-adv-x="616" d="M-39 1577q0 61 40 102t103 41t103.5 -41t40.5 -102t-40.5 -102t-103.5 -41t-103 41t-40 102zM158 0v1335h301v-1335h-301zM366 1577q0 61 40 102t104 41q63 0 103 -41t40 -102t-40 -102t-103 -41t-103.5 41t-40.5 102z" /> +<glyph unicode="Ð" horiz-adv-x="1351" d="M53 616v136l156 10v573h377q154 0 276.5 -39t210.5 -119.5t135 -205.5t47 -297t-47 -299t-133 -210t-205.5 -124t-267.5 -41h-393v616h-156zM510 244h57q86 0 156 22.5t119 72.5t76.5 132t27.5 203q0 119 -27.5 199.5t-76.5 129t-119 69t-156 20.5h-57v-330h256v-146 h-256v-372z" /> +<glyph unicode="Ñ" horiz-adv-x="1361" d="M158 0v1335h309l348 -663l131 -295h8q-10 106 -23 237t-13 250v471h286v-1335h-309l-348 666l-131 290h-8q10 -111 23 -237.5t13 -245.5v-473h-286zM334 1440q16 141 77.5 209.5t141.5 68.5q41 0 76 -14t64.5 -31.5t55 -32t50.5 -14.5q27 0 47 20.5t31 71.5h153 q-16 -141 -77.5 -209.5t-141.5 -68.5q-41 0 -76 14t-64.5 31.5t-55 32t-50.5 14.5q-27 0 -47 -20.5t-31 -71.5h-153z" /> +<glyph unicode="Ò" horiz-adv-x="1400" d="M94 674q0 164 44 292t124 215t191.5 133t246.5 46t247 -46t192 -134t124 -216t44 -290q0 -164 -44 -293t-124 -219t-192 -138.5t-247 -48.5t-246.5 48.5t-191.5 138.5t-124 219t-44 293zM368 1683h320l166 -245h-240zM403 674q0 -203 80 -320.5t217 -117.5t217 117.5 t80 320.5q0 201 -79.5 313.5t-217.5 112.5q-137 0 -217 -113t-80 -313z" /> +<glyph unicode="Ó" horiz-adv-x="1400" d="M94 674q0 164 44 292t124 215t191.5 133t246.5 46t247 -46t192 -134t124 -216t44 -290q0 -164 -44 -293t-124 -219t-192 -138.5t-247 -48.5t-246.5 48.5t-191.5 138.5t-124 219t-44 293zM403 674q0 -203 80 -320.5t217 -117.5t217 117.5t80 320.5q0 201 -79.5 313.5 t-217.5 112.5q-137 0 -217 -113t-80 -313zM546 1438l166 245h320l-246 -245h-240z" /> +<glyph unicode="Ô" horiz-adv-x="1400" d="M94 674q0 164 44 292t124 215t191.5 133t246.5 46t247 -46t192 -134t124 -216t44 -290q0 -164 -44 -293t-124 -219t-192 -138.5t-247 -48.5t-246.5 48.5t-191.5 138.5t-124 219t-44 293zM356 1438l197 245h294l197 -245h-231l-109 125h-8l-109 -125h-231zM403 674 q0 -203 80 -320.5t217 -117.5t217 117.5t80 320.5q0 201 -79.5 313.5t-217.5 112.5q-137 0 -217 -113t-80 -313z" /> +<glyph unicode="Õ" horiz-adv-x="1400" d="M94 674q0 164 44 292t124 215t191.5 133t246.5 46t247 -46t192 -134t124 -216t44 -290q0 -164 -44 -293t-124 -219t-192 -138.5t-247 -48.5t-246.5 48.5t-191.5 138.5t-124 219t-44 293zM352 1440q16 141 77.5 209.5t141.5 68.5q41 0 76 -14t64.5 -31.5t55 -32 t50.5 -14.5q27 0 47 20.5t31 71.5h153q-16 -141 -77.5 -209.5t-141.5 -68.5q-41 0 -76 14t-64.5 31.5t-55 32t-50.5 14.5q-27 0 -47 -20.5t-31 -71.5h-153zM403 674q0 -203 80 -320.5t217 -117.5t217 117.5t80 320.5q0 201 -79.5 313.5t-217.5 112.5q-137 0 -217 -113 t-80 -313z" /> +<glyph unicode="Ö" horiz-adv-x="1400" d="M94 674q0 164 44 292t124 215t191.5 133t246.5 46t247 -46t192 -134t124 -216t44 -290q0 -164 -44 -293t-124 -219t-192 -138.5t-247 -48.5t-246.5 48.5t-191.5 138.5t-124 219t-44 293zM354 1577q0 61 40 102t103 41t103.5 -41t40.5 -102t-40.5 -102t-103.5 -41t-103 41 t-40 102zM403 674q0 -203 80 -320.5t217 -117.5t217 117.5t80 320.5q0 201 -79.5 313.5t-217.5 112.5q-137 0 -217 -113t-80 -313zM759 1577q0 61 40 102t104 41q63 0 103 -41t40 -102t-40 -102t-103 -41t-103.5 41t-40.5 102z" /> +<glyph unicode="×" d="M98 381l291 293l-291 295l150 151l293 -295l293 295l149 -151l-291 -295l291 -293l-149 -152l-293 295l-293 -295z" /> +<glyph unicode="Ø" horiz-adv-x="1400" d="M82 35l141 176q-59 88 -93 204.5t-34 258.5q0 164 44 292t124 215t191.5 133t246.5 46q209 0 359 -109l135 168l156 -121l-156 -192q53 -84 83 -191.5t30 -240.5q0 -164 -44 -293t-124 -219t-191.5 -138.5t-247.5 -48.5q-193 0 -337 99l-127 -158zM406 674 q0 -57 7 -108.5t19 -94.5l451 559q-74 70 -181 70q-137 0 -216.5 -113t-79.5 -313zM541 293q70 -57 161 -57q137 0 217 117.5t80 320.5q0 92 -18 166z" /> +<glyph unicode="Ù" horiz-adv-x="1361" d="M150 618v717h303v-747q0 -197 59 -274.5t172 -77.5t174.5 77.5t61.5 274.5v747h290v-717q0 -336 -134 -489.5t-392 -153.5q-260 0 -397 154t-137 489zM348 1683h320l166 -245h-240z" /> +<glyph unicode="Ú" horiz-adv-x="1361" d="M150 618v717h303v-747q0 -197 59 -274.5t172 -77.5t174.5 77.5t61.5 274.5v747h290v-717q0 -336 -134 -489.5t-392 -153.5q-260 0 -397 154t-137 489zM526 1438l166 245h320l-246 -245h-240z" /> +<glyph unicode="Û" horiz-adv-x="1361" d="M150 618v717h303v-747q0 -197 59 -274.5t172 -77.5t174.5 77.5t61.5 274.5v747h290v-717q0 -336 -134 -489.5t-392 -153.5q-260 0 -397 154t-137 489zM336 1438l197 245h294l197 -245h-231l-109 125h-8l-109 -125h-231z" /> +<glyph unicode="Ü" horiz-adv-x="1361" d="M150 618v717h303v-747q0 -197 59 -274.5t172 -77.5t174.5 77.5t61.5 274.5v747h290v-717q0 -336 -134 -489.5t-392 -153.5q-260 0 -397 154t-137 489zM334 1577q0 61 40 102t103 41t103.5 -41t40.5 -102t-40.5 -102t-103.5 -41t-103 41t-40 102zM739 1577q0 61 40 102 t104 41q63 0 103 -41t40 -102t-40 -102t-103 -41t-103.5 41t-40.5 102z" /> +<glyph unicode="Ý" horiz-adv-x="1075" d="M-16 1335h323l119 -307q29 -76 54.5 -146.5t54.5 -148.5h8q29 78 56.5 148.5t55.5 146.5l121 307h316l-404 -860v-475h-301v475zM383 1438l166 245h320l-246 -245h-240z" /> +<glyph unicode="Þ" horiz-adv-x="1263" d="M158 0v1335h301v-202h186q109 0 204 -21.5t165.5 -72t111.5 -132.5t41 -202q0 -119 -42 -204t-113.5 -140.5t-165.5 -82t-201 -26.5h-186v-252h-301zM459 492h168q246 0 245 213q0 104 -62 146t-183 42h-168v-401z" /> +<glyph unicode="ß" horiz-adv-x="1294" d="M133 0v997q0 98 30 182.5t89 145.5t151.5 96t214.5 35q104 0 183.5 -28.5t131.5 -76.5t78.5 -109.5t26.5 -127.5q0 -74 -24.5 -124t-55 -90t-55 -73.5t-24.5 -72.5q0 -35 26.5 -58.5t66.5 -46t87 -49.5t87 -64.5t66.5 -92t26.5 -132.5q0 -70 -23.5 -131t-71.5 -106 t-119 -72t-163 -27t-163.5 25t-145.5 68l104 204q100 -74 195 -73q53 0 83 27.5t30 70.5q0 39 -27 66.5t-67 51t-87 49t-87 59.5t-66.5 80t-26.5 114q0 59 22.5 102t50.5 82t50.5 81t22.5 97q0 59 -34 99.5t-98 40.5q-94 0 -141 -69t-47 -187v-963h-297z" /> +<glyph unicode="à" horiz-adv-x="1093" d="M96 283q0 160 135.5 250t436.5 120q-4 68 -41 108t-119 40q-66 0 -131.5 -24.5t-138.5 -67.5l-107 198q98 59 205.5 96t228.5 37q197 0 300.5 -111.5t103.5 -346.5v-582h-246l-23 104h-6q-66 -57 -138.5 -93t-158.5 -36q-70 0 -125 24t-94 65.5t-60.5 97t-21.5 121.5z M270 1483h291l182 -307h-219zM383 305q0 -49 31.5 -72.5t85.5 -23.5q53 0 90 22.5t78 63.5v178q-162 -23 -223.5 -66t-61.5 -102z" /> +<glyph unicode="á" horiz-adv-x="1093" d="M96 283q0 160 135.5 250t436.5 120q-4 68 -41 108t-119 40q-66 0 -131.5 -24.5t-138.5 -67.5l-107 198q98 59 205.5 96t228.5 37q197 0 300.5 -111.5t103.5 -346.5v-582h-246l-23 104h-6q-66 -57 -138.5 -93t-158.5 -36q-70 0 -125 24t-94 65.5t-60.5 97t-21.5 121.5z M383 305q0 -49 31.5 -72.5t85.5 -23.5q53 0 90 22.5t78 63.5v178q-162 -23 -223.5 -66t-61.5 -102zM407 1176l182 307h291l-254 -307h-219z" /> +<glyph unicode="â" horiz-adv-x="1093" d="M96 283q0 160 135.5 250t436.5 120q-4 68 -41 108t-119 40q-66 0 -131.5 -24.5t-138.5 -67.5l-107 198q98 59 205.5 96t228.5 37q197 0 300.5 -111.5t103.5 -346.5v-582h-246l-23 104h-6q-66 -57 -138.5 -93t-158.5 -36q-70 0 -125 24t-94 65.5t-60.5 97t-21.5 121.5z M260 1176l196 307h238l196 -307h-202l-109 161h-8l-109 -161h-202zM383 305q0 -49 31.5 -72.5t85.5 -23.5q53 0 90 22.5t78 63.5v178q-162 -23 -223.5 -66t-61.5 -102z" /> +<glyph unicode="ã" horiz-adv-x="1093" d="M96 283q0 160 135.5 250t436.5 120q-4 68 -41 108t-119 40q-66 0 -131.5 -24.5t-138.5 -67.5l-107 198q98 59 205.5 96t228.5 37q197 0 300.5 -111.5t103.5 -346.5v-582h-246l-23 104h-6q-66 -57 -138.5 -93t-158.5 -36q-70 0 -125 24t-94 65.5t-60.5 97t-21.5 121.5z M235 1178q16 141 73.5 208.5t139.5 67.5q41 0 76 -14.5t63.5 -30.5t54 -30.5t48.5 -14.5q27 0 43 20.5t28 69.5h154q-16 -139 -73.5 -207.5t-139.5 -68.5q-41 0 -75 14t-63.5 31.5t-55 32t-48.5 14.5q-27 0 -43 -20.5t-28 -71.5h-154zM383 305q0 -49 31.5 -72.5t85.5 -23.5 q53 0 90 22.5t78 63.5v178q-162 -23 -223.5 -66t-61.5 -102z" /> +<glyph unicode="ä" horiz-adv-x="1093" d="M96 283q0 160 135.5 250t436.5 120q-4 68 -41 108t-119 40q-66 0 -131.5 -24.5t-138.5 -67.5l-107 198q98 59 205.5 96t228.5 37q197 0 300.5 -111.5t103.5 -346.5v-582h-246l-23 104h-6q-66 -57 -138.5 -93t-158.5 -36q-70 0 -125 24t-94 65.5t-60.5 97t-21.5 121.5z M229 1313q0 59 40 100t103 41t103.5 -41t40.5 -100q0 -61 -40.5 -102.5t-103.5 -41.5t-103 41t-40 103zM383 305q0 -49 31.5 -72.5t85.5 -23.5q53 0 90 22.5t78 63.5v178q-162 -23 -223.5 -66t-61.5 -102zM634 1313q0 59 40 100t104 41q63 0 103 -41t40 -100 q0 -61 -40 -102.5t-103 -41.5t-103.5 41t-40.5 103z" /> +<glyph unicode="å" horiz-adv-x="1093" d="M96 283q0 160 135.5 250t436.5 120q-4 68 -41 108t-119 40q-66 0 -131.5 -24.5t-138.5 -67.5l-107 198q98 59 205.5 96t228.5 37q197 0 300.5 -111.5t103.5 -346.5v-582h-246l-23 104h-6q-66 -57 -138.5 -93t-158.5 -36q-70 0 -125 24t-94 65.5t-60.5 97t-21.5 121.5z M344 1331q0 96 63.5 152.5t167.5 56.5t167.5 -56.5t63.5 -152.5t-63.5 -152.5t-167.5 -56.5t-167.5 56.5t-63.5 152.5zM383 305q0 -49 31.5 -72.5t85.5 -23.5q53 0 90 22.5t78 63.5v178q-162 -23 -223.5 -66t-61.5 -102zM491 1331q0 -43 24.5 -69.5t59.5 -26.5t59.5 26.5 t24.5 69.5t-24.5 69.5t-59.5 26.5t-59.5 -26.5t-24.5 -69.5z" /> +<glyph unicode="æ" horiz-adv-x="1609" d="M96 281q0 162 133 253t433 121q-4 66 -38 106t-120 40q-61 0 -127 -24.5t-139 -67.5l-107 198q98 59 201.5 96t214.5 37q94 0 165.5 -41t116.5 -112q66 74 137.5 113.5t163.5 39.5q100 0 176 -37.5t126.5 -104.5t76 -157t25.5 -194q0 -41 -4 -75t-8 -52h-586 q16 -106 83.5 -157.5t160.5 -51.5q57 0 108 20.5t107 53.5l102 -195q-78 -53 -173 -84t-185 -31q-115 0 -200 43t-151 115q-109 -86 -198.5 -122t-192.5 -36q-70 0 -125 24t-94 65.5t-60.5 97t-21.5 119.5zM383 305q0 -49 31.5 -72.5t85.5 -23.5q53 0 101 22.5t89 63.5 q-23 63 -28 135l-3 43q-150 -23 -213 -66t-63 -102zM936 604h342q0 92 -37 149.5t-121 57.5q-72 0 -122 -50t-62 -157z" /> +<glyph unicode="ç" horiz-adv-x="956" d="M74 508q0 127 43 226.5t115.5 167t169 103t200.5 35.5q94 0 170 -31.5t127 -84.5l-137 -187q-72 59 -141 60q-111 0 -174.5 -78t-63.5 -211t64.5 -211t162.5 -78q55 0 100.5 22.5t82.5 51.5l120 -191q-74 -66 -164 -96.5t-174 -30.5q-106 0 -197 36t-158.5 103.5 t-106.5 167t-39 226.5zM367 -332q74 8 122 28.5t48 61.5q0 27 -25.5 48.5t-95.5 37.5l82 164h176l-41 -96q53 -16 86 -52t33 -100q0 -53 -29.5 -91t-79 -64.5t-115 -40t-138.5 -17.5z" /> +<glyph unicode="è" horiz-adv-x="1060" d="M74 508q0 123 41 222t107.5 168t152.5 105.5t178 36.5q109 0 189.5 -36.5t135 -102t81 -155t26.5 -193.5q0 -41 -4 -75t-8 -52h-608q20 -117 90.5 -169t173.5 -52q109 0 219 67l100 -182q-78 -53 -173 -84t-187 -31q-109 0 -203 36t-163.5 104.5t-108.5 167t-39 225.5z M248 1483h291l182 -307h-219zM362 612h367q0 88 -39 143.5t-131 55.5q-72 0 -126 -48t-71 -151z" /> +<glyph unicode="é" horiz-adv-x="1060" d="M74 508q0 123 41 222t107.5 168t152.5 105.5t178 36.5q109 0 189.5 -36.5t135 -102t81 -155t26.5 -193.5q0 -41 -4 -75t-8 -52h-608q20 -117 90.5 -169t173.5 -52q109 0 219 67l100 -182q-78 -53 -173 -84t-187 -31q-109 0 -203 36t-163.5 104.5t-108.5 167t-39 225.5z M362 612h367q0 88 -39 143.5t-131 55.5q-72 0 -126 -48t-71 -151zM385 1176l182 307h291l-254 -307h-219z" /> +<glyph unicode="ê" horiz-adv-x="1060" d="M74 508q0 123 41 222t107.5 168t152.5 105.5t178 36.5q109 0 189.5 -36.5t135 -102t81 -155t26.5 -193.5q0 -41 -4 -75t-8 -52h-608q20 -117 90.5 -169t173.5 -52q109 0 219 67l100 -182q-78 -53 -173 -84t-187 -31q-109 0 -203 36t-163.5 104.5t-108.5 167t-39 225.5z M238 1176l196 307h238l196 -307h-202l-109 161h-8l-109 -161h-202zM362 612h367q0 88 -39 143.5t-131 55.5q-72 0 -126 -48t-71 -151z" /> +<glyph unicode="ë" horiz-adv-x="1060" d="M74 508q0 123 41 222t107.5 168t152.5 105.5t178 36.5q109 0 189.5 -36.5t135 -102t81 -155t26.5 -193.5q0 -41 -4 -75t-8 -52h-608q20 -117 90.5 -169t173.5 -52q109 0 219 67l100 -182q-78 -53 -173 -84t-187 -31q-109 0 -203 36t-163.5 104.5t-108.5 167t-39 225.5z M207 1313q0 59 40 100t103 41t103.5 -41t40.5 -100q0 -61 -40.5 -102.5t-103.5 -41.5t-103 41t-40 103zM362 612h367q0 88 -39 143.5t-131 55.5q-72 0 -126 -48t-71 -151zM612 1313q0 59 40 100t104 41q63 0 103 -41t40 -100q0 -61 -40 -102.5t-103 -41.5t-103.5 41 t-40.5 103z" /> +<glyph unicode="ì" horiz-adv-x="565" d="M-22 1483h291l182 -307h-219zM133 0v1016h301v-1016h-301z" /> +<glyph unicode="í" horiz-adv-x="565" d="M115 1176l182 307h291l-254 -307h-219zM133 0v1016h301v-1016h-301z" /> +<glyph unicode="î" horiz-adv-x="565" d="M-32 1176l196 307h238l196 -307h-202l-109 161h-8l-109 -161h-202zM133 0v1016h301v-1016h-301z" /> +<glyph unicode="ï" horiz-adv-x="565" d="M-63 1313q0 59 40 100t103 41t103.5 -41t40.5 -100q0 -61 -40.5 -102.5t-103.5 -41.5t-103 41t-40 103zM133 0v1016h301v-1016h-301zM342 1313q0 59 40 100t104 41q63 0 103 -41t40 -100q0 -61 -40 -102.5t-103 -41.5t-103.5 41t-40.5 103z" /> +<glyph unicode="ð" horiz-adv-x="1146" d="M86 467q0 111 35 197t93 145t133 91t155 32q59 0 116.5 -19.5t100.5 -66.5q-53 158 -174 272l-291 -145l-78 133l238 119q-41 29 -87 55.5t-98 52.5l131 183q72 -37 143.5 -80t139.5 -95l293 148l78 -133l-246 -125q121 -123 198.5 -290t77.5 -396q0 -123 -33.5 -227.5 t-96 -180.5t-152.5 -119t-203 -43q-96 0 -181 35t-150.5 98.5t-103.5 154.5t-38 204zM360 467q0 -121 62.5 -184.5t146.5 -63.5q86 0 140.5 75t54.5 234v47.5t-2 45.5q-47 51 -96.5 69.5t-102.5 18.5q-90 0 -146.5 -59.5t-56.5 -182.5z" /> +<glyph unicode="ñ" horiz-adv-x="1171" d="M133 0v1016h246l20 -129h9q66 61 143.5 107t181.5 46q166 0 241 -108.5t75 -300.5v-631h-301v592q0 111 -30 151.5t-95 40.5q-57 0 -98.5 -25.5t-90.5 -72.5v-686h-301zM291 1178q16 141 73.5 208.5t139.5 67.5q41 0 76 -14.5t63.5 -30.5t54 -30.5t48.5 -14.5 q27 0 43 20.5t28 69.5h154q-16 -139 -73.5 -207.5t-139.5 -68.5q-41 0 -75 14t-63.5 31.5t-55 32t-48.5 14.5q-27 0 -43 -20.5t-28 -71.5h-154z" /> +<glyph unicode="ò" horiz-adv-x="1136" d="M74 508q0 127 41 226.5t109.5 167t158.5 103t186 35.5t185.5 -35.5t158 -103t109.5 -167t41 -226.5t-41 -226.5t-109.5 -167t-157.5 -103.5t-186 -36q-96 0 -186 36t-158.5 103.5t-109.5 167t-41 226.5zM262 1483h291l182 -307h-219zM383 508q0 -133 46 -211t140 -78 q92 0 139.5 78t47.5 211t-47 211t-140 78q-94 0 -140 -78t-46 -211z" /> +<glyph unicode="ó" horiz-adv-x="1136" d="M74 508q0 127 41 226.5t109.5 167t158.5 103t186 35.5t185.5 -35.5t158 -103t109.5 -167t41 -226.5t-41 -226.5t-109.5 -167t-157.5 -103.5t-186 -36q-96 0 -186 36t-158.5 103.5t-109.5 167t-41 226.5zM383 508q0 -133 46 -211t140 -78q92 0 139.5 78t47.5 211t-47 211 t-140 78q-94 0 -140 -78t-46 -211zM399 1176l182 307h291l-254 -307h-219z" /> +<glyph unicode="ô" horiz-adv-x="1136" d="M74 508q0 127 41 226.5t109.5 167t158.5 103t186 35.5t185.5 -35.5t158 -103t109.5 -167t41 -226.5t-41 -226.5t-109.5 -167t-157.5 -103.5t-186 -36q-96 0 -186 36t-158.5 103.5t-109.5 167t-41 226.5zM252 1176l196 307h238l196 -307h-202l-109 161h-8l-109 -161h-202z M383 508q0 -133 46 -211t140 -78q92 0 139.5 78t47.5 211t-47 211t-140 78q-94 0 -140 -78t-46 -211z" /> +<glyph unicode="õ" horiz-adv-x="1136" d="M74 508q0 127 41 226.5t109.5 167t158.5 103t186 35.5t185.5 -35.5t158 -103t109.5 -167t41 -226.5t-41 -226.5t-109.5 -167t-157.5 -103.5t-186 -36q-96 0 -186 36t-158.5 103.5t-109.5 167t-41 226.5zM227 1178q16 141 73.5 208.5t139.5 67.5q41 0 76 -14.5t63.5 -30.5 t54 -30.5t48.5 -14.5q27 0 43 20.5t28 69.5h154q-16 -139 -73.5 -207.5t-139.5 -68.5q-41 0 -75 14t-63.5 31.5t-55 32t-48.5 14.5q-27 0 -43 -20.5t-28 -71.5h-154zM383 508q0 -133 46 -211t140 -78q92 0 139.5 78t47.5 211t-47 211t-140 78q-94 0 -140 -78t-46 -211z" /> +<glyph unicode="ö" horiz-adv-x="1136" d="M74 508q0 127 41 226.5t109.5 167t158.5 103t186 35.5t185.5 -35.5t158 -103t109.5 -167t41 -226.5t-41 -226.5t-109.5 -167t-157.5 -103.5t-186 -36q-96 0 -186 36t-158.5 103.5t-109.5 167t-41 226.5zM221 1313q0 59 40 100t103 41t103.5 -41t40.5 -100 q0 -61 -40.5 -102.5t-103.5 -41.5t-103 41t-40 103zM383 508q0 -133 46 -211t140 -78q92 0 139.5 78t47.5 211t-47 211t-140 78q-94 0 -140 -78t-46 -211zM626 1313q0 59 40 100t104 41q63 0 103 -41t40 -100q0 -61 -40 -102.5t-103 -41.5t-103.5 41t-40.5 103z" /> +<glyph unicode="÷" d="M70 569v213h942v-213h-942zM375 307q0 70 47 114t119 44t119 -44t47 -114t-47.5 -113.5t-118.5 -43.5q-72 0 -119 43.5t-47 113.5zM375 1044q0 70 47 114t119 44t119 -44t47 -114t-47 -113.5t-119 -43.5t-119 44t-47 113z" /> +<glyph unicode="ø" horiz-adv-x="1136" d="M74 508q0 127 41 226.5t109.5 167t158.5 103t186 35.5q72 0 141.5 -20.5t129.5 -58.5l90 110l112 -88l-96 -119q53 -68 85 -157t32 -199q0 -127 -41 -226.5t-109.5 -167t-157.5 -103.5t-186 -36q-152 0 -274 82l-88 -108l-113 86l96 119q-53 66 -84.5 154.5t-31.5 199.5z M365 524q0 -82 14 -137l305 381q-45 39 -115 39q-94 0 -149 -77t-55 -206zM451 250q47 -41 118 -41q92 0 147.5 76.5t55.5 206.5q0 84 -14 139z" /> +<glyph unicode="ù" horiz-adv-x="1163" d="M123 385v631h301v-592q0 -111 30.5 -152t96.5 -41q57 0 96 27t84 86v672h301v-1016h-246l-22 141h-6q-66 -78 -140.5 -122t-179.5 -44q-166 0 -240.5 109t-74.5 301zM279 1483h291l182 -307h-219z" /> +<glyph unicode="ú" horiz-adv-x="1163" d="M123 385v631h301v-592q0 -111 30.5 -152t96.5 -41q57 0 96 27t84 86v672h301v-1016h-246l-22 141h-6q-66 -78 -140.5 -122t-179.5 -44q-166 0 -240.5 109t-74.5 301zM416 1176l182 307h291l-254 -307h-219z" /> +<glyph unicode="û" horiz-adv-x="1163" d="M123 385v631h301v-592q0 -111 30.5 -152t96.5 -41q57 0 96 27t84 86v672h301v-1016h-246l-22 141h-6q-66 -78 -140.5 -122t-179.5 -44q-166 0 -240.5 109t-74.5 301zM269 1176l196 307h238l196 -307h-202l-109 161h-8l-109 -161h-202z" /> +<glyph unicode="ü" horiz-adv-x="1163" d="M123 385v631h301v-592q0 -111 30.5 -152t96.5 -41q57 0 96 27t84 86v672h301v-1016h-246l-22 141h-6q-66 -78 -140.5 -122t-179.5 -44q-166 0 -240.5 109t-74.5 301zM238 1313q0 59 40 100t103 41t103.5 -41t40.5 -100q0 -61 -40.5 -102.5t-103.5 -41.5t-103 41t-40 103z M643 1313q0 59 40 100t104 41q63 0 103 -41t40 -100q0 -61 -40 -102.5t-103 -41.5t-103.5 41t-40.5 103z" /> +<glyph unicode="ý" horiz-adv-x="1067" d="M25 1016h303l145 -436q23 -70 41 -141.5t39 -147.5h8q16 72 33.5 144.5t36.5 144.5l123 436h288l-352 -1026q-37 -96 -77 -169t-92 -121t-118.5 -72.5t-156.5 -24.5q-47 0 -80 5t-64 15l54 230q14 -4 32.5 -8.5t34.5 -4.5q76 0 117 37t61 96l15 54zM377 1176l182 307h291 l-254 -307h-219z" /> +<glyph unicode="þ" horiz-adv-x="1173" d="M133 -377v1813h301v-353l-8 -143q53 47 118.5 73.5t135.5 26.5q96 0 173 -36.5t130 -104.5t82 -163t29 -212q0 -131 -36 -232.5t-96.5 -172t-137 -107.5t-158.5 -37q-74 0 -130.5 25t-109.5 72l8 -152v-297h-301zM434 287q41 -37 82 -51.5t80 -14.5q78 0 133 70.5 t55 228.5q0 274 -176 275q-88 0 -174 -93v-415z" /> +<glyph unicode="ÿ" horiz-adv-x="1067" d="M25 1016h303l145 -436q23 -70 41 -141.5t39 -147.5h8q16 72 33.5 144.5t36.5 144.5l123 436h288l-352 -1026q-37 -96 -77 -169t-92 -121t-118.5 -72.5t-156.5 -24.5q-47 0 -80 5t-64 15l54 230q14 -4 32.5 -8.5t34.5 -4.5q76 0 117 37t61 96l15 54zM199 1313q0 59 40 100 t103 41t103.5 -41t40.5 -100q0 -61 -40.5 -102.5t-103.5 -41.5t-103 41t-40 103zM604 1313q0 59 40 100t104 41q63 0 103 -41t40 -100q0 -61 -40 -102.5t-103 -41.5t-103.5 41t-40.5 103z" /> +<glyph unicode="Œ" horiz-adv-x="1783" d="M94 674q0 172 51.5 297t142.5 205.5t217 119.5t275 39h875v-254h-506v-268h426v-252h-426v-307h526v-254h-911q-143 0 -265 41t-212 124t-141.5 210t-51.5 299zM403 674q0 -121 29 -204t81 -133t125 -71.5t161 -21.5h47v848h-47q-88 0 -161 -20.5t-125 -69t-81 -128 t-29 -200.5z" /> +<glyph unicode="œ" horiz-adv-x="1683" d="M74 508q0 127 39 226.5t104.5 167t152.5 103t183 35.5q109 0 189.5 -47t140.5 -131q61 86 145 132t176 46q100 0 176 -37.5t127.5 -104.5t77 -157t25.5 -194q0 -41 -4 -75t-9 -52h-587q16 -106 83.5 -157.5t159.5 -51.5q57 0 108.5 20.5t106.5 53.5l105 -195 q-78 -53 -174 -84t-187 -31q-92 0 -178 46.5t-149 132.5q-63 -88 -144.5 -133.5t-193.5 -45.5q-98 0 -184.5 36t-151 103.5t-101 167t-36.5 226.5zM379 508q0 -133 45 -211t129 -78t131 78t47 211t-47 211t-131 78t-129 -78t-45 -211zM1010 604h342q0 92 -37 149.5 t-121 57.5q-72 0 -122 -50t-62 -157z" /> +<glyph unicode="Ÿ" horiz-adv-x="1075" d="M-16 1335h323l119 -307q29 -76 54.5 -146.5t54.5 -148.5h8q29 78 56.5 148.5t55.5 146.5l121 307h316l-404 -860v-475h-301v475zM191 1577q0 61 40 102t103 41t103.5 -41t40.5 -102t-40.5 -102t-103.5 -41t-103 41t-40 102zM596 1577q0 61 40 102t104 41q63 0 103 -41 t40 -102t-40 -102t-103 -41t-103.5 41t-40.5 102z" /> +<glyph unicode="ˆ" horiz-adv-x="1136" d="M254 1176l196 307h238l196 -307h-202l-109 161h-8l-109 -161h-202z" /> +<glyph unicode="˜" horiz-adv-x="1136" d="M229 1178q16 141 73.5 208.5t139.5 67.5q41 0 76 -14.5t63.5 -30.5t54 -30.5t48.5 -14.5q27 0 43 20.5t28 69.5h154q-16 -139 -73.5 -207.5t-139.5 -68.5q-41 0 -75 14t-63.5 31.5t-55 32t-48.5 14.5q-27 0 -43 -20.5t-28 -71.5h-154z" /> +<glyph unicode=" " horiz-adv-x="914" /> +<glyph unicode=" " horiz-adv-x="1829" /> +<glyph unicode=" " horiz-adv-x="914" /> +<glyph unicode=" " horiz-adv-x="1829" /> +<glyph unicode=" " horiz-adv-x="609" /> +<glyph unicode=" " horiz-adv-x="457" /> +<glyph unicode=" " horiz-adv-x="304" /> +<glyph unicode=" " horiz-adv-x="304" /> +<glyph unicode=" " horiz-adv-x="228" /> +<glyph unicode=" " horiz-adv-x="365" /> +<glyph unicode=" " horiz-adv-x="101" /> +<glyph unicode="‐" horiz-adv-x="679" d="M88 412v213h504v-213h-504z" /> +<glyph unicode="‑" horiz-adv-x="679" d="M88 412v213h504v-213h-504z" /> +<glyph unicode="‒" horiz-adv-x="679" d="M88 412v213h504v-213h-504z" /> +<glyph unicode="–" horiz-adv-x="983" d="M88 422v192h807v-192h-807z" /> +<glyph unicode="—" horiz-adv-x="1638" d="M88 422v192h1462v-192h-1462z" /> +<glyph unicode="‘" horiz-adv-x="614" d="M113 961q0 145 71.5 255.5t218.5 182.5l66 -131q-92 -47 -138 -107.5t-46 -152.5q6 2 20 2q66 0 112 -40t46 -110q0 -78 -45 -123t-113 -45q-96 0 -144 71t-48 198z" /> +<glyph unicode="’" horiz-adv-x="614" d="M145 852q92 47 138.5 107.5t46.5 152.5q-6 -2 -19 -2q-66 0 -111.5 40t-45.5 110q0 78 44 122.5t113 44.5q94 0 143.5 -69.5t49.5 -198.5q0 -145 -73 -255.5t-220 -182.5z" /> +<glyph unicode="‚" horiz-adv-x="614" d="M145 -213q92 47 138.5 107.5t46.5 152.5q-6 -2 -19 -2q-66 0 -111.5 40t-45.5 110q0 78 44 122.5t113 44.5q94 0 143.5 -69.5t49.5 -198.5q0 -145 -73 -255.5t-220 -182.5z" /> +<glyph unicode="“" horiz-adv-x="1097" d="M113 961q0 145 71.5 255.5t218.5 182.5l66 -131q-92 -47 -138 -107.5t-46 -152.5q6 2 20 2q66 0 112 -40t46 -110q0 -78 -45 -123t-113 -45q-96 0 -144 71t-48 198zM596 961q0 145 71.5 255.5t218.5 182.5l66 -131q-92 -47 -138 -107.5t-46 -152.5q6 2 20 2q66 0 112 -40 t46 -110q0 -78 -45 -123t-113 -45q-96 0 -144 71t-48 198z" /> +<glyph unicode="”" horiz-adv-x="1097" d="M145 852q92 47 138.5 107.5t46.5 152.5q-6 -2 -19 -2q-66 0 -111.5 40t-45.5 110q0 78 44 122.5t113 44.5q94 0 143.5 -69.5t49.5 -198.5q0 -145 -73 -255.5t-220 -182.5zM628 852q92 47 138.5 107.5t46.5 152.5q-6 -2 -19 -2q-66 0 -111.5 40t-45.5 110q0 78 44 122.5 t113 44.5q94 0 143.5 -69.5t49.5 -198.5q0 -145 -73 -255.5t-220 -182.5z" /> +<glyph unicode="„" horiz-adv-x="1097" d="M145 -213q92 47 138.5 107.5t46.5 152.5q-6 -2 -19 -2q-66 0 -111.5 40t-45.5 110q0 78 44 122.5t113 44.5q94 0 143.5 -69.5t49.5 -198.5q0 -145 -73 -255.5t-220 -182.5zM628 -213q92 47 138.5 107.5t46.5 152.5q-6 -2 -19 -2q-66 0 -111.5 40t-45.5 110q0 78 44 122.5 t113 44.5q94 0 143.5 -69.5t49.5 -198.5q0 -145 -73 -255.5t-220 -182.5z" /> +<glyph unicode="•" horiz-adv-x="706" d="M82 537q0 61 20.5 113t57.5 90t86 59.5t106 21.5t107.5 -21.5t87.5 -59.5t57.5 -90t20.5 -113t-20.5 -112.5t-57.5 -90.5t-87.5 -60.5t-107.5 -21.5t-106 21.5t-86 60.5t-57.5 90t-20.5 113z" /> +<glyph unicode="…" horiz-adv-x="2000" d="M156 164q0 82 52 136t130 54t130 -54t52 -136q0 -80 -52 -134.5t-130 -54.5t-130 54.5t-52 134.5zM834 164q0 82 52 136t130 54t130 -54t52 -136q0 -80 -52 -134.5t-130 -54.5t-130 54.5t-52 134.5zM1511 164q0 82 52 136t130 54t130 -54t52 -136q0 -80 -52 -134.5 t-130 -54.5t-130 54.5t-52 134.5z" /> +<glyph unicode=" " horiz-adv-x="365" /> +<glyph unicode="‹" horiz-adv-x="598" d="M100 410v213l275 295l112 -91l-227 -311l227 -311l-112 -90z" /> +<glyph unicode="›" horiz-adv-x="598" d="M111 205l227 311l-227 311l112 91l275 -295v-213l-275 -295z" /> +<glyph unicode=" " horiz-adv-x="457" /> +<glyph unicode="€" d="M43 440v142l111 8q-2 14 -2 26.5v26.5v26.5t2 26.5h-111v140l127 10q25 115 74 204t119.5 150.5t158.5 93t191 31.5q92 0 180 -41t154 -119l-168 -161q-39 39 -81 63.5t-96 24.5q-88 0 -146 -63.5t-83 -180.5h438v-152h-456v-43v-30.5t2 -28.5h372v-154h-352 q29 -113 87.5 -172t144.5 -59q59 0 103 28.5t85 81.5l166 -155q-74 -92 -168 -140.5t-205 -48.5q-193 0 -333 118t-187 347h-127z" /> +<glyph unicode="™" horiz-adv-x="1396" d="M8 1206v178h551v-178h-178v-465h-195v465h-178zM647 741v643h227l78 -184l41 -137h8l43 137l76 184h230v-643h-191v197l23 236h-8l-109 -338h-133l-109 338h-8l23 -236v-197h-191z" /> +<glyph unicode="◼" horiz-adv-x="1013" d="M0 0v1014h1014v-1014h-1014z" /> +<glyph unicode="fi" horiz-adv-x="1300" d="M49 780v224l135 10v55q0 80 19.5 151.5t64.5 125t117 84t174 30.5q63 0 115.5 -12t87.5 -25l-55 -221q-57 20 -105 21q-55 0 -86 -34t-31 -112v-61h183v-236h-183v-780h-301v780h-135zM844 1323q0 70 49 113t125 43q78 0 126 -43t48 -113t-48 -114t-126 -44 q-76 0 -125 44t-49 114zM868 0v1016h301v-1016h-301z" /> +<glyph unicode="fl" horiz-adv-x="1284" d="M49 780v224l135 10v55q0 80 19.5 151.5t64.5 125t117 84t174 30.5q63 0 115.5 -12t87.5 -25l-55 -221q-57 20 -105 21q-55 0 -86 -34t-31 -112v-61h183v-236h-183v-780h-301v780h-135zM831 315v1121h301v-1133q0 -47 17.5 -65.5t35.5 -18.5h17.5t19.5 4l37 -223 q-25 -10 -62.5 -17.5t-88.5 -7.5q-78 0 -131.5 25t-85 69t-46 106.5t-14.5 139.5z" /> +<hkern u1="/" u2="ï" k="-33" /> +<hkern u1="F" u2="™" k="-23" /> +<hkern u1="F" u2="ï" k="-66" /> +<hkern u1="F" u2="î" k="-25" /> +<hkern u1="F" u2="·" k="37" /> +<hkern u1="F" u2="®" k="-12" /> +<hkern u1="F" u2="x" k="74" /> +<hkern u1="F" u2="v" k="70" /> +<hkern u1="F" u2="X" k="57" /> +<hkern u1="F" u2="V" k="12" /> +<hkern u1="F" u2="/" k="98" /> +<hkern u1="P" u2="®" k="-33" /> +<hkern u1="P" u2="x" k="37" /> +<hkern u1="P" u2="X" k="57" /> +<hkern u1="P" u2="/" k="102" /> +<hkern u1="V" u2="™" k="-119" /> +<hkern u1="V" u2="ï" k="-133" /> +<hkern u1="V" u2="î" k="-82" /> +<hkern u1="V" u2="ì" k="-35" /> +<hkern u1="V" u2="·" k="6" /> +<hkern u1="V" u2="®" k="-104" /> +<hkern u1="V" u2="x" k="39" /> +<hkern u1="V" u2="v" k="20" /> +<hkern u1="V" u2="/" k="55" /> +<hkern u1="X" u2="™" k="-41" /> +<hkern u1="X" u2="·" k="82" /> +<hkern u1="X" u2="®" k="25" /> +<hkern u1="X" u2="x" k="20" /> +<hkern u1="X" u2="v" k="53" /> +<hkern u1="X" u2="*" k="20" /> +<hkern u1="\" u2="v" k="41" /> +<hkern u1="\" u2="V" k="90" /> +<hkern u1="v" u2="™" k="-8" /> +<hkern u1="v" u2="®" k="-55" /> +<hkern u1="v" u2="V" k="16" /> +<hkern u1="v" u2="/" k="41" /> +<hkern u1="x" u2="™" k="-8" /> +<hkern u1="x" u2="·" k="41" /> +<hkern u1="x" u2="®" k="-23" /> +<hkern u1="x" u2="X" k="20" /> +<hkern u1="x" u2="V" k="33" /> +<hkern u1="x" u2="*" k="8" /> +<hkern u1="¡" u2="V" k="106" /> +<hkern u1="·" u2="x" k="41" /> +<hkern u1="·" u2="X" k="74" /> +<hkern u1="·" u2="V" k="74" /> +<hkern u1="¿" u2="X" k="141" /> +<hkern u1="¿" u2="V" k="180" /> +<hkern u1="Þ" u2="™" k="57" /> +<hkern u1="Þ" u2="\" k="82" /> +<hkern u1="Þ" u2="/" k="63" /> +<hkern u1="Þ" u2="*" k="80" /> +<hkern u1="ß" u2="®" k="109" /> +<hkern u1="ß" u2="v" k="53" /> +<hkern u1="ß" u2="\" k="74" /> +<hkern g1="exclam" g2="quoteright,quotedblright" k="106" /> +<hkern g1="exclamdown" g2="W" k="53" /> +<hkern g1="exclamdown" g2="Y,Yacute,Ydieresis" k="143" /> +<hkern g1="exclamdown" g2="j" k="-49" /> +<hkern g1="periodcentered" g2="T" k="139" /> +<hkern g1="periodcentered" g2="Y,Yacute,Ydieresis" k="180" /> +<hkern g1="periodcentered" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="57" /> +<hkern g1="periodcentered" g2="S" k="57" /> +<hkern g1="periodcentered" g2="Z" k="66" /> +<hkern g1="questiondown" g2="T" k="197" /> +<hkern g1="questiondown" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="111" /> +<hkern g1="questiondown" g2="W" k="111" /> +<hkern g1="questiondown" g2="Y,Yacute,Ydieresis" k="258" /> +<hkern g1="questiondown" g2="j" k="-92" /> +<hkern g1="questiondown" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="182" /> +<hkern g1="questiondown" g2="S" k="123" /> +<hkern g1="questiondown" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="174" /> +<hkern g1="questiondown" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="109" /> +<hkern g1="questiondown" g2="f,uniFB01,uniFB02" k="182" /> +<hkern g1="questiondown" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="72" /> +<hkern g1="slash" g2="g" k="20" /> +<hkern g1="slash" g2="j" k="-14" /> +<hkern g1="slash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="82" /> +<hkern g1="slash" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="57" /> +<hkern g1="slash" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="33" /> +<hkern g1="slash" g2="J" k="164" /> +<hkern g1="slash" g2="i,igrave,iacute,icircumflex,idieresis" k="-14" /> +<hkern g1="slash" g2="t" k="10" /> +<hkern g1="slash" g2="u,ugrave,uacute,ucircumflex,udieresis" k="41" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="T" k="82" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="23" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="Y,Yacute,Ydieresis" k="37" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="y,yacute,ydieresis" k="37" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quoteright,quotedblright" k="164" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="20" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="f,uniFB01,uniFB02" k="20" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="t" k="37" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="asterisk" k="172" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="backslash" k="82" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="periodcentered" k="57" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="registered" k="193" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="trademark" k="147" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="V" k="37" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="X" k="12" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="question" k="74" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quotedbl,quotesingle" k="147" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quoteleft,quotedblleft" k="166" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="v" k="37" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="w" k="16" /> +<hkern g1="B" g2="T" k="57" /> +<hkern g1="B" g2="W" k="16" /> +<hkern g1="B" g2="Y,Yacute,Ydieresis" k="37" /> +<hkern g1="B" g2="y,yacute,ydieresis" k="37" /> +<hkern g1="B" g2="S" k="37" /> +<hkern g1="B" g2="Z" k="16" /> +<hkern g1="B" g2="J" k="39" /> +<hkern g1="B" g2="t" k="20" /> +<hkern g1="B" g2="asterisk" k="61" /> +<hkern g1="B" g2="periodcentered" k="41" /> +<hkern g1="B" g2="trademark" k="41" /> +<hkern g1="B" g2="V" k="27" /> +<hkern g1="B" g2="X" k="16" /> +<hkern g1="B" g2="v" k="37" /> +<hkern g1="B" g2="w" k="20" /> +<hkern g1="B" g2="x" k="20" /> +<hkern g1="C,Ccedilla" g2="T" k="25" /> +<hkern g1="C,Ccedilla" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="37" /> +<hkern g1="C,Ccedilla" g2="W" k="16" /> +<hkern g1="C,Ccedilla" g2="Y,Yacute,Ydieresis" k="33" /> +<hkern g1="C,Ccedilla" g2="g" k="41" /> +<hkern g1="C,Ccedilla" g2="y,yacute,ydieresis" k="37" /> +<hkern g1="C,Ccedilla" g2="S" k="57" /> +<hkern g1="C,Ccedilla" g2="Z" k="20" /> +<hkern g1="C,Ccedilla" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="76" /> +<hkern g1="C,Ccedilla" g2="J" k="20" /> +<hkern g1="C,Ccedilla" g2="t" k="37" /> +<hkern g1="C,Ccedilla" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="C,Ccedilla" g2="periodcentered" k="147" /> +<hkern g1="C,Ccedilla" g2="registered" k="-8" /> +<hkern g1="C,Ccedilla" g2="trademark" k="-12" /> +<hkern g1="C,Ccedilla" g2="V" k="16" /> +<hkern g1="C,Ccedilla" g2="X" k="16" /> +<hkern g1="C,Ccedilla" g2="v" k="37" /> +<hkern g1="C,Ccedilla" g2="w" k="20" /> +<hkern g1="C,Ccedilla" g2="hyphen,uni00AD,endash,emdash" k="74" /> +<hkern g1="C,Ccedilla" g2="guillemotleft,guilsinglleft" k="37" /> +<hkern g1="G" g2="T" k="41" /> +<hkern g1="G" g2="W" k="16" /> +<hkern g1="G" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="16" /> +<hkern g1="G" g2="asterisk" k="45" /> +<hkern g1="G" g2="registered" k="25" /> +<hkern g1="G" g2="trademark" k="20" /> +<hkern g1="G" g2="V" k="37" /> +<hkern g1="K" g2="T" k="53" /> +<hkern g1="K" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="37" /> +<hkern g1="K" g2="W" k="20" /> +<hkern g1="K" g2="Y,Yacute,Ydieresis" k="53" /> +<hkern g1="K" g2="j" k="20" /> +<hkern g1="K" g2="y,yacute,ydieresis" k="70" /> +<hkern g1="K" g2="quoteright,quotedblright" k="98" /> +<hkern g1="K" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="20" /> +<hkern g1="K" g2="S" k="43" /> +<hkern g1="K" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="57" /> +<hkern g1="K" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="33" /> +<hkern g1="K" g2="t" k="74" /> +<hkern g1="K" g2="u,ugrave,uacute,ucircumflex,udieresis" k="23" /> +<hkern g1="K" g2="asterisk" k="70" /> +<hkern g1="K" g2="periodcentered" k="115" /> +<hkern g1="K" g2="registered" k="57" /> +<hkern g1="K" g2="trademark" k="-8" /> +<hkern g1="K" g2="V" k="37" /> +<hkern g1="K" g2="question" k="33" /> +<hkern g1="K" g2="quotedbl,quotesingle" k="70" /> +<hkern g1="K" g2="quoteleft,quotedblleft" k="98" /> +<hkern g1="K" g2="v" k="70" /> +<hkern g1="K" g2="w" k="53" /> +<hkern g1="K" g2="x" k="53" /> +<hkern g1="K" g2="hyphen,uni00AD,endash,emdash" k="106" /> +<hkern g1="K" g2="guillemotleft,guilsinglleft" k="20" /> +<hkern g1="K" g2="z" k="37" /> +<hkern g1="L" g2="T" k="246" /> +<hkern g1="L" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="76" /> +<hkern g1="L" g2="W" k="121" /> +<hkern g1="L" g2="Y,Yacute,Ydieresis" k="176" /> +<hkern g1="L" g2="g" k="16" /> +<hkern g1="L" g2="y,yacute,ydieresis" k="109" /> +<hkern g1="L" g2="quoteright,quotedblright" k="221" /> +<hkern g1="L" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="12" /> +<hkern g1="L" g2="S" k="57" /> +<hkern g1="L" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="74" /> +<hkern g1="L" g2="f,uniFB01,uniFB02" k="37" /> +<hkern g1="L" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="29" /> +<hkern g1="L" g2="t" k="55" /> +<hkern g1="L" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="L" g2="asterisk" k="352" /> +<hkern g1="L" g2="backslash" k="164" /> +<hkern g1="L" g2="periodcentered" k="229" /> +<hkern g1="L" g2="registered" k="229" /> +<hkern g1="L" g2="trademark" k="262" /> +<hkern g1="L" g2="V" k="162" /> +<hkern g1="L" g2="question" k="106" /> +<hkern g1="L" g2="quotedbl,quotesingle" k="287" /> +<hkern g1="L" g2="quoteleft,quotedblleft" k="221" /> +<hkern g1="L" g2="v" k="109" /> +<hkern g1="L" g2="w" k="78" /> +<hkern g1="L" g2="hyphen,uni00AD,endash,emdash" k="90" /> +<hkern g1="L" g2="guillemotleft,guilsinglleft" k="49" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="T" k="41" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Y,Yacute,Ydieresis" k="41" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="20" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Z" k="41" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="J" k="111" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="asterisk" k="49" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="trademark" k="74" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="slash" k="8" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="V" k="20" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="X" k="53" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="z" k="33" /> +<hkern g1="R" g2="T" k="41" /> +<hkern g1="R" g2="Y,Yacute,Ydieresis" k="37" /> +<hkern g1="R" g2="g" k="20" /> +<hkern g1="R" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="20" /> +<hkern g1="R" g2="S" k="29" /> +<hkern g1="R" g2="Z" k="20" /> +<hkern g1="R" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="20" /> +<hkern g1="R" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="R" g2="J" k="25" /> +<hkern g1="R" g2="asterisk" k="20" /> +<hkern g1="R" g2="periodcentered" k="20" /> +<hkern g1="R" g2="registered" k="-8" /> +<hkern g1="R" g2="V" k="37" /> +<hkern g1="R" g2="X" k="20" /> +<hkern g1="R" g2="x" k="37" /> +<hkern g1="R" g2="hyphen,uni00AD,endash,emdash" k="66" /> +<hkern g1="R" g2="guillemotleft,guilsinglleft" k="61" /> +<hkern g1="R" g2="z" k="37" /> +<hkern g1="R" g2="guillemotright,guilsinglright" k="37" /> +<hkern g1="S" g2="T" k="41" /> +<hkern g1="S" g2="Y,Yacute,Ydieresis" k="33" /> +<hkern g1="S" g2="S" k="37" /> +<hkern g1="S" g2="J" k="37" /> +<hkern g1="S" g2="asterisk" k="25" /> +<hkern g1="S" g2="registered" k="12" /> +<hkern g1="S" g2="z" k="29" /> +<hkern g1="T" g2="Y,Yacute,Ydieresis" k="37" /> +<hkern g1="T" g2="g" k="131" /> +<hkern g1="T" g2="y,yacute,ydieresis" k="49" /> +<hkern g1="T" g2="comma,period,ellipsis" k="238" /> +<hkern g1="T" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="82" /> +<hkern g1="T" g2="S" k="51" /> +<hkern g1="T" g2="Z" k="90" /> +<hkern g1="T" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="57" /> +<hkern g1="T" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="131" /> +<hkern g1="T" g2="f,uniFB01,uniFB02" k="25" /> +<hkern g1="T" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="156" /> +<hkern g1="T" g2="J" k="250" /> +<hkern g1="T" g2="t" k="25" /> +<hkern g1="T" g2="u,ugrave,uacute,ucircumflex,udieresis" k="86" /> +<hkern g1="T" g2="periodcentered" k="139" /> +<hkern g1="T" g2="registered" k="-41" /> +<hkern g1="T" g2="trademark" k="-49" /> +<hkern g1="T" g2="slash" k="139" /> +<hkern g1="T" g2="X" k="41" /> +<hkern g1="T" g2="v" k="49" /> +<hkern g1="T" g2="w" k="49" /> +<hkern g1="T" g2="x" k="51" /> +<hkern g1="T" g2="hyphen,uni00AD,endash,emdash" k="164" /> +<hkern g1="T" g2="guillemotleft,guilsinglleft" k="115" /> +<hkern g1="T" g2="m,n,p,r,ntilde" k="86" /> +<hkern g1="T" g2="s" k="123" /> +<hkern g1="T" g2="z" k="131" /> +<hkern g1="T" g2="guillemotright,guilsinglright" k="82" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="Y,Yacute,Ydieresis" k="37" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="g" k="20" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="comma,period,ellipsis" k="53" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="25" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="S" k="20" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="16" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="J" k="115" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="slash" k="33" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="V" k="20" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="X" k="20" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="x" k="33" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="s" k="16" /> +<hkern g1="W" g2="g" k="8" /> +<hkern g1="W" g2="comma,period,ellipsis" k="78" /> +<hkern g1="W" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="25" /> +<hkern g1="W" g2="J" k="96" /> +<hkern g1="W" g2="registered" k="-51" /> +<hkern g1="W" g2="trademark" k="-78" /> +<hkern g1="W" g2="slash" k="16" /> +<hkern g1="W" g2="hyphen,uni00AD,endash,emdash" k="16" /> +<hkern g1="W" g2="guillemotleft,guilsinglleft" k="20" /> +<hkern g1="W" g2="z" k="20" /> +<hkern g1="W" g2="guillemotright,guilsinglright" k="53" /> +<hkern g1="Y,Yacute,Ydieresis" g2="T" k="37" /> +<hkern g1="Y,Yacute,Ydieresis" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="20" /> +<hkern g1="Y,Yacute,Ydieresis" g2="g" k="123" /> +<hkern g1="Y,Yacute,Ydieresis" g2="y,yacute,ydieresis" k="37" /> +<hkern g1="Y,Yacute,Ydieresis" g2="quoteright,quotedblright" k="10" /> +<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,ellipsis" k="229" /> +<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="37" /> +<hkern g1="Y,Yacute,Ydieresis" g2="S" k="39" /> +<hkern g1="Y,Yacute,Ydieresis" g2="Z" k="45" /> +<hkern g1="Y,Yacute,Ydieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="37" /> +<hkern g1="Y,Yacute,Ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="156" /> +<hkern g1="Y,Yacute,Ydieresis" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="113" /> +<hkern g1="Y,Yacute,Ydieresis" g2="J" k="205" /> +<hkern g1="Y,Yacute,Ydieresis" g2="t" k="37" /> +<hkern g1="Y,Yacute,Ydieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="78" /> +<hkern g1="Y,Yacute,Ydieresis" g2="periodcentered" k="115" /> +<hkern g1="Y,Yacute,Ydieresis" g2="registered" k="-49" /> +<hkern g1="Y,Yacute,Ydieresis" g2="trademark" k="-86" /> +<hkern g1="Y,Yacute,Ydieresis" g2="slash" k="96" /> +<hkern g1="Y,Yacute,Ydieresis" g2="question" k="33" /> +<hkern g1="Y,Yacute,Ydieresis" g2="v" k="37" /> +<hkern g1="Y,Yacute,Ydieresis" g2="w" k="57" /> +<hkern g1="Y,Yacute,Ydieresis" g2="x" k="78" /> +<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,uni00AD,endash,emdash" k="156" /> +<hkern g1="Y,Yacute,Ydieresis" g2="guillemotleft,guilsinglleft" k="150" /> +<hkern g1="Y,Yacute,Ydieresis" g2="m,n,p,r,ntilde" k="82" /> +<hkern g1="Y,Yacute,Ydieresis" g2="s" k="113" /> +<hkern g1="Y,Yacute,Ydieresis" g2="z" k="115" /> +<hkern g1="Y,Yacute,Ydieresis" g2="guillemotright,guilsinglright" k="143" /> +<hkern g1="Y,Yacute,Ydieresis" g2="colon,semicolon" k="74" /> +<hkern g1="Z" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="20" /> +<hkern g1="Z" g2="Y,Yacute,Ydieresis" k="37" /> +<hkern g1="Z" g2="g" k="23" /> +<hkern g1="Z" g2="y,yacute,ydieresis" k="25" /> +<hkern g1="Z" g2="S" k="61" /> +<hkern g1="Z" g2="Z" k="20" /> +<hkern g1="Z" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="41" /> +<hkern g1="Z" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="25" /> +<hkern g1="Z" g2="f,uniFB01,uniFB02" k="41" /> +<hkern g1="Z" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="27" /> +<hkern g1="Z" g2="J" k="49" /> +<hkern g1="Z" g2="t" k="37" /> +<hkern g1="Z" g2="u,ugrave,uacute,ucircumflex,udieresis" k="29" /> +<hkern g1="Z" g2="periodcentered" k="123" /> +<hkern g1="Z" g2="registered" k="-41" /> +<hkern g1="Z" g2="trademark" k="-41" /> +<hkern g1="Z" g2="v" k="25" /> +<hkern g1="Z" g2="w" k="25" /> +<hkern g1="Z" g2="hyphen,uni00AD,endash,emdash" k="49" /> +<hkern g1="Z" g2="guillemotleft,guilsinglleft" k="49" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="T" k="57" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="W" k="16" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="Y,Yacute,Ydieresis" k="57" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="quoteright,quotedblright" k="53" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="asterisk" k="90" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="V" k="53" /> +<hkern g1="a,agrave,aacute,acircumflex,atilde,adieresis,aring" g2="question" k="66" /> +<hkern g1="c,ccedilla" g2="T" k="41" /> +<hkern g1="c,ccedilla" g2="Y,Yacute,Ydieresis" k="57" /> +<hkern g1="c,ccedilla" g2="g" k="20" /> +<hkern g1="c,ccedilla" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="20" /> +<hkern g1="c,ccedilla" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="57" /> +<hkern g1="c,ccedilla" g2="periodcentered" k="37" /> +<hkern g1="c,ccedilla" g2="registered" k="-12" /> +<hkern g1="c,ccedilla" g2="V" k="37" /> +<hkern g1="c,ccedilla" g2="x" k="10" /> +<hkern g1="c,ccedilla" g2="hyphen,uni00AD,endash,emdash" k="70" /> +<hkern g1="colon,semicolon" g2="Y,Yacute,Ydieresis" k="74" /> +<hkern g1="colon,semicolon" g2="j" k="-8" /> +<hkern g1="colon,semicolon" g2="asterisk" k="57" /> +<hkern g1="comma,period,ellipsis" g2="T" k="238" /> +<hkern g1="comma,period,ellipsis" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="55" /> +<hkern g1="comma,period,ellipsis" g2="W" k="78" /> +<hkern g1="comma,period,ellipsis" g2="Y,Yacute,Ydieresis" k="229" /> +<hkern g1="comma,period,ellipsis" g2="j" k="-74" /> +<hkern g1="comma,period,ellipsis" g2="y,yacute,ydieresis" k="41" /> +<hkern g1="comma,period,ellipsis" g2="quoteright,quotedblright" k="297" /> +<hkern g1="comma,period,ellipsis" g2="t" k="45" /> +<hkern g1="comma,period,ellipsis" g2="asterisk" k="344" /> +<hkern g1="comma,period,ellipsis" g2="V" k="188" /> +<hkern g1="comma,period,ellipsis" g2="quotedbl,quotesingle" k="262" /> +<hkern g1="comma,period,ellipsis" g2="quoteleft,quotedblleft" k="256" /> +<hkern g1="comma,period,ellipsis" g2="v" k="123" /> +<hkern g1="comma,period,ellipsis" g2="w" k="72" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="T" k="57" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="W" k="20" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="Y,Yacute,Ydieresis" k="74" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="g" k="20" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="y,yacute,ydieresis" k="12" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quoteright,quotedblright" k="20" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="S" k="41" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="23" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="f,uniFB01,uniFB02" k="10" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="J" k="41" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="t" k="37" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="asterisk" k="49" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="backslash" k="70" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="periodcentered" k="16" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="registered" k="31" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="trademark" k="53" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="V" k="53" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="question" k="33" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="v" k="12" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="w" k="12" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="x" k="33" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="guillemotleft,guilsinglleft" k="31" /> +<hkern g1="f" g2="T" k="-86" /> +<hkern g1="f" g2="W" k="-86" /> +<hkern g1="f" g2="Y,Yacute,Ydieresis" k="-86" /> +<hkern g1="f" g2="g" k="23" /> +<hkern g1="f" g2="j" k="20" /> +<hkern g1="f" g2="quoteright,quotedblright" k="-49" /> +<hkern g1="f" g2="comma,period,ellipsis" k="131" /> +<hkern g1="f" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="41" /> +<hkern g1="f" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="f" g2="u,ugrave,uacute,ucircumflex,udieresis" k="8" /> +<hkern g1="f" g2="backslash" k="-66" /> +<hkern g1="f" g2="periodcentered" k="41" /> +<hkern g1="f" g2="registered" k="-102" /> +<hkern g1="f" g2="trademark" k="-147" /> +<hkern g1="f" g2="slash" k="8" /> +<hkern g1="f" g2="exclam" k="-8" /> +<hkern g1="f" g2="V" k="-119" /> +<hkern g1="f" g2="X" k="-49" /> +<hkern g1="f" g2="question" k="-45" /> +<hkern g1="f" g2="quotedbl,quotesingle" k="-82" /> +<hkern g1="f" g2="quoteleft,quotedblleft" k="-49" /> +<hkern g1="f" g2="v" k="-8" /> +<hkern g1="f" g2="x" k="16" /> +<hkern g1="f" g2="hyphen,uni00AD,endash,emdash" k="37" /> +<hkern g1="f" g2="s" k="16" /> +<hkern g1="f" g2="z" k="37" /> +<hkern g1="f" g2="parenright,bracketright,braceright" k="-72" /> +<hkern g1="g" g2="T" k="74" /> +<hkern g1="g" g2="Y,Yacute,Ydieresis" k="37" /> +<hkern g1="g" g2="j" k="-94" /> +<hkern g1="g" g2="y,yacute,ydieresis" k="16" /> +<hkern g1="g" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="39" /> +<hkern g1="g" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="37" /> +<hkern g1="g" g2="asterisk" k="49" /> +<hkern g1="g" g2="registered" k="-8" /> +<hkern g1="g" g2="slash" k="-57" /> +<hkern g1="g" g2="question" k="94" /> +<hkern g1="g" g2="v" k="16" /> +<hkern g1="g" g2="w" k="16" /> +<hkern g1="g" g2="z" k="37" /> +<hkern g1="g" g2="parenright,bracketright,braceright" k="-8" /> +<hkern g1="k" g2="T" k="100" /> +<hkern g1="k" g2="Y,Yacute,Ydieresis" k="37" /> +<hkern g1="k" g2="g" k="20" /> +<hkern g1="k" g2="j" k="20" /> +<hkern g1="k" g2="quoteright,quotedblright" k="74" /> +<hkern g1="k" g2="comma,period,ellipsis" k="-8" /> +<hkern g1="k" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="20" /> +<hkern g1="k" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="57" /> +<hkern g1="k" g2="t" k="37" /> +<hkern g1="k" g2="u,ugrave,uacute,ucircumflex,udieresis" k="37" /> +<hkern g1="k" g2="asterisk" k="8" /> +<hkern g1="k" g2="periodcentered" k="74" /> +<hkern g1="k" g2="registered" k="33" /> +<hkern g1="k" g2="trademark" k="41" /> +<hkern g1="k" g2="question" k="66" /> +<hkern g1="k" g2="x" k="16" /> +<hkern g1="k" g2="hyphen,uni00AD,endash,emdash" k="174" /> +<hkern g1="k" g2="guillemotleft,guilsinglleft" k="74" /> +<hkern g1="k" g2="z" k="33" /> +<hkern g1="k" g2="guillemotright,guilsinglright" k="33" /> +<hkern g1="h,m,n,ntilde" g2="T" k="57" /> +<hkern g1="h,m,n,ntilde" g2="Y,Yacute,Ydieresis" k="53" /> +<hkern g1="h,m,n,ntilde" g2="asterisk" k="49" /> +<hkern g1="h,m,n,ntilde" g2="trademark" k="41" /> +<hkern g1="h,m,n,ntilde" g2="V" k="20" /> +<hkern g1="h,m,n,ntilde" g2="question" k="33" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="T" k="121" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="Y,Yacute,Ydieresis" k="115" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="y,yacute,ydieresis" k="16" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="quoteright,quotedblright" k="74" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="comma,period,ellipsis" k="20" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="23" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="f,uniFB01,uniFB02" k="10" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="backslash" k="74" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="registered" k="33" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="V" k="41" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="X" k="16" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="question" k="66" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="quoteleft,quotedblleft" k="8" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="v" k="16" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="w" k="16" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="x" k="53" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="s" k="10" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="z" k="27" /> +<hkern g1="quoteleft,quotedblleft" g2="Y,Yacute,Ydieresis" k="10" /> +<hkern g1="quoteleft,quotedblleft" g2="g" k="49" /> +<hkern g1="quoteleft,quotedblleft" g2="comma,period,ellipsis" k="254" /> +<hkern g1="quoteleft,quotedblleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="164" /> +<hkern g1="quoteleft,quotedblleft" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="70" /> +<hkern g1="quoteleft,quotedblleft" g2="f,uniFB01,uniFB02" k="37" /> +<hkern g1="quoteleft,quotedblleft" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="49" /> +<hkern g1="quoteleft,quotedblleft" g2="exclamdown" k="90" /> +<hkern g1="quoteleft,quotedblleft" g2="questiondown" k="254" /> +<hkern g1="quoteleft,quotedblleft" g2="X" k="33" /> +<hkern g1="r" g2="g" k="20" /> +<hkern g1="r" g2="y,yacute,ydieresis" k="-10" /> +<hkern g1="r" g2="quoteright,quotedblright" k="33" /> +<hkern g1="r" g2="comma,period,ellipsis" k="180" /> +<hkern g1="r" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="41" /> +<hkern g1="r" g2="Z" k="20" /> +<hkern g1="r" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="59" /> +<hkern g1="r" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="r" g2="J" k="150" /> +<hkern g1="r" g2="backslash" k="-8" /> +<hkern g1="r" g2="periodcentered" k="25" /> +<hkern g1="r" g2="registered" k="-66" /> +<hkern g1="r" g2="slash" k="49" /> +<hkern g1="r" g2="quoteleft,quotedblleft" k="-49" /> +<hkern g1="r" g2="v" k="-10" /> +<hkern g1="r" g2="w" k="-8" /> +<hkern g1="r" g2="hyphen,uni00AD,endash,emdash" k="57" /> +<hkern g1="r" g2="guillemotleft,guilsinglleft" k="41" /> +<hkern g1="r" g2="s" k="20" /> +<hkern g1="r" g2="z" k="20" /> +<hkern g1="s" g2="T" k="57" /> +<hkern g1="s" g2="Y,Yacute,Ydieresis" k="41" /> +<hkern g1="s" g2="quoteright,quotedblright" k="51" /> +<hkern g1="s" g2="asterisk" k="57" /> +<hkern g1="s" g2="V" k="20" /> +<hkern g1="s" g2="question" k="51" /> +<hkern g1="s" g2="hyphen,uni00AD,endash,emdash" k="-20" /> +<hkern g1="t" g2="T" k="37" /> +<hkern g1="t" g2="Y,Yacute,Ydieresis" k="16" /> +<hkern g1="t" g2="g" k="20" /> +<hkern g1="t" g2="comma,period,ellipsis" k="-8" /> +<hkern g1="t" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="25" /> +<hkern g1="t" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="t" g2="periodcentered" k="41" /> +<hkern g1="t" g2="registered" k="-49" /> +<hkern g1="t" g2="slash" k="-8" /> +<hkern g1="t" g2="question" k="74" /> +<hkern g1="t" g2="hyphen,uni00AD,endash,emdash" k="74" /> +<hkern g1="t" g2="guillemotleft,guilsinglleft" k="25" /> +<hkern g1="t" g2="colon,semicolon" k="-8" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="T" k="41" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="Y,Yacute,Ydieresis" k="61" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="asterisk" k="29" /> +<hkern g1="q,u,ugrave,uacute,ucircumflex,udieresis" g2="V" k="37" /> +<hkern g1="w" g2="T" k="57" /> +<hkern g1="w" g2="Y,Yacute,Ydieresis" k="51" /> +<hkern g1="w" g2="j" k="20" /> +<hkern g1="w" g2="comma,period,ellipsis" k="170" /> +<hkern g1="w" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="16" /> +<hkern g1="w" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="20" /> +<hkern g1="w" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="16" /> +<hkern g1="w" g2="J" k="61" /> +<hkern g1="w" g2="registered" k="-23" /> +<hkern g1="w" g2="trademark" k="-8" /> +<hkern g1="w" g2="V" k="16" /> +<hkern g1="w" g2="X" k="37" /> +<hkern g1="w" g2="z" k="53" /> +<hkern g1="y,yacute,ydieresis" g2="T" k="41" /> +<hkern g1="y,yacute,ydieresis" g2="Y,Yacute,Ydieresis" k="33" /> +<hkern g1="y,yacute,ydieresis" g2="j" k="20" /> +<hkern g1="y,yacute,ydieresis" g2="comma,period,ellipsis" k="123" /> +<hkern g1="y,yacute,ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="41" /> +<hkern g1="y,yacute,ydieresis" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="16" /> +<hkern g1="y,yacute,ydieresis" g2="J" k="82" /> +<hkern g1="y,yacute,ydieresis" g2="registered" k="-55" /> +<hkern g1="y,yacute,ydieresis" g2="trademark" k="-8" /> +<hkern g1="y,yacute,ydieresis" g2="slash" k="8" /> +<hkern g1="y,yacute,ydieresis" g2="V" k="16" /> +<hkern g1="y,yacute,ydieresis" g2="X" k="16" /> +<hkern g1="y,yacute,ydieresis" g2="z" k="57" /> +<hkern g1="z" g2="T" k="45" /> +<hkern g1="z" g2="Y,Yacute,Ydieresis" k="16" /> +<hkern g1="z" g2="y,yacute,ydieresis" k="16" /> +<hkern g1="z" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="29" /> +<hkern g1="z" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="z" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="z" g2="registered" k="-14" /> +<hkern g1="z" g2="trademark" k="-8" /> +<hkern g1="z" g2="v" k="16" /> +<hkern g1="z" g2="hyphen,uni00AD,endash,emdash" k="53" /> +<hkern g1="F" g2="W" k="12" /> +<hkern g1="F" g2="Y,Yacute,Ydieresis" k="29" /> +<hkern g1="F" g2="g" k="57" /> +<hkern g1="F" g2="y,yacute,ydieresis" k="53" /> +<hkern g1="F" g2="comma,period,ellipsis" k="188" /> +<hkern g1="F" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="80" /> +<hkern g1="F" g2="S" k="55" /> +<hkern g1="F" g2="Z" k="61" /> +<hkern g1="F" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="20" /> +<hkern g1="F" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="78" /> +<hkern g1="F" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="37" /> +<hkern g1="F" g2="J" k="274" /> +<hkern g1="F" g2="t" k="20" /> +<hkern g1="F" g2="u,ugrave,uacute,ucircumflex,udieresis" k="39" /> +<hkern g1="F" g2="w" k="53" /> +<hkern g1="F" g2="guillemotleft,guilsinglleft" k="41" /> +<hkern g1="F" g2="m,n,p,r,ntilde" k="41" /> +<hkern g1="F" g2="s" k="55" /> +<hkern g1="F" g2="z" k="106" /> +<hkern g1="J" g2="comma,period,ellipsis" k="57" /> +<hkern g1="J" g2="J" k="82" /> +<hkern g1="P" g2="T" k="29" /> +<hkern g1="P" g2="Y,Yacute,Ydieresis" k="20" /> +<hkern g1="P" g2="g" k="33" /> +<hkern g1="P" g2="comma,period,ellipsis" k="270" /> +<hkern g1="P" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="102" /> +<hkern g1="P" g2="S" k="20" /> +<hkern g1="P" g2="Z" k="104" /> +<hkern g1="P" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="70" /> +<hkern g1="P" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="43" /> +<hkern g1="P" g2="J" k="291" /> +<hkern g1="P" g2="hyphen,uni00AD,endash,emdash" k="14" /> +<hkern g1="P" g2="guillemotleft,guilsinglleft" k="41" /> +<hkern g1="P" g2="s" k="20" /> +<hkern g1="P" g2="z" k="41" /> +<hkern g1="V" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="20" /> +<hkern g1="V" g2="g" k="41" /> +<hkern g1="V" g2="y,yacute,ydieresis" k="20" /> +<hkern g1="V" g2="comma,period,ellipsis" k="156" /> +<hkern g1="V" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="37" /> +<hkern g1="V" g2="S" k="25" /> +<hkern g1="V" g2="Z" k="41" /> +<hkern g1="V" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="20" /> +<hkern g1="V" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="72" /> +<hkern g1="V" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="39" /> +<hkern g1="V" g2="J" k="131" /> +<hkern g1="V" g2="u,ugrave,uacute,ucircumflex,udieresis" k="61" /> +<hkern g1="V" g2="w" k="20" /> +<hkern g1="V" g2="hyphen,uni00AD,endash,emdash" k="41" /> +<hkern g1="V" g2="guillemotleft,guilsinglleft" k="41" /> +<hkern g1="V" g2="m,n,p,r,ntilde" k="41" /> +<hkern g1="V" g2="s" k="37" /> +<hkern g1="V" g2="z" k="43" /> +<hkern g1="V" g2="guillemotright,guilsinglright" k="55" /> +<hkern g1="X" g2="T" k="41" /> +<hkern g1="X" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="20" /> +<hkern g1="X" g2="y,yacute,ydieresis" k="53" /> +<hkern g1="X" g2="quoteright,quotedblright" k="33" /> +<hkern g1="X" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="12" /> +<hkern g1="X" g2="S" k="37" /> +<hkern g1="X" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="53" /> +<hkern g1="X" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="20" /> +<hkern g1="X" g2="f,uniFB01,uniFB02" k="53" /> +<hkern g1="X" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="33" /> +<hkern g1="X" g2="J" k="33" /> +<hkern g1="X" g2="t" k="53" /> +<hkern g1="X" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="X" g2="quotedbl,quotesingle" k="16" /> +<hkern g1="X" g2="quoteleft,quotedblleft" k="33" /> +<hkern g1="X" g2="w" k="37" /> +<hkern g1="X" g2="hyphen,uni00AD,endash,emdash" k="74" /> +<hkern g1="X" g2="guillemotleft,guilsinglleft" k="37" /> +<hkern g1="X" g2="z" k="37" /> +<hkern g1="X" g2="guillemotright,guilsinglright" k="33" /> +<hkern g1="parenleft,bracketleft,braceleft" g2="j" k="-164" /> +<hkern g1="parenleft,bracketleft,braceleft" g2="J" k="41" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="T" k="14" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="W" k="16" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Y,Yacute,Ydieresis" k="156" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Z" k="41" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="V" k="74" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="X" k="74" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="v" k="16" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="x" k="37" /> +<hkern g1="germandbls" g2="y,yacute,ydieresis" k="53" /> +<hkern g1="germandbls" g2="quoteright,quotedblright" k="180" /> +<hkern g1="germandbls" g2="f,uniFB01,uniFB02" k="16" /> +<hkern g1="germandbls" g2="t" k="39" /> +<hkern g1="germandbls" g2="question" k="53" /> +<hkern g1="germandbls" g2="quotedbl,quotesingle" k="156" /> +<hkern g1="germandbls" g2="quoteleft,quotedblleft" k="145" /> +<hkern g1="germandbls" g2="w" k="37" /> +<hkern g1="guillemotleft,guilsinglleft" g2="T" k="82" /> +<hkern g1="guillemotleft,guilsinglleft" g2="W" k="53" /> +<hkern g1="guillemotleft,guilsinglleft" g2="Y,Yacute,Ydieresis" k="143" /> +<hkern g1="guillemotleft,guilsinglleft" g2="V" k="53" /> +<hkern g1="guillemotleft,guilsinglleft" g2="X" k="33" /> +<hkern g1="guillemotleft,guilsinglleft" g2="x" k="41" /> +<hkern g1="guillemotright,guilsinglright" g2="T" k="115" /> +<hkern g1="guillemotright,guilsinglright" g2="W" k="20" /> +<hkern g1="guillemotright,guilsinglright" g2="Y,Yacute,Ydieresis" k="150" /> +<hkern g1="guillemotright,guilsinglright" g2="S" k="61" /> +<hkern g1="guillemotright,guilsinglright" g2="Z" k="25" /> +<hkern g1="guillemotright,guilsinglright" g2="J" k="61" /> +<hkern g1="guillemotright,guilsinglright" g2="V" k="41" /> +<hkern g1="guillemotright,guilsinglright" g2="X" k="37" /> +<hkern g1="guillemotright,guilsinglright" g2="x" k="57" /> +<hkern g1="question" g2="quoteright,quotedblright" k="72" /> +<hkern g1="quotedbl,quotesingle" g2="comma,period,ellipsis" k="272" /> +<hkern g1="quotedbl,quotesingle" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="150" /> +<hkern g1="quotedbl,quotesingle" g2="X" k="16" /> +<hkern g1="quotedbl,quotesingle" g2="s" k="41" /> +<hkern g1="quoteright,quotedblright" g2="g" k="49" /> +<hkern g1="quoteright,quotedblright" g2="comma,period,ellipsis" k="311" /> +<hkern g1="quoteright,quotedblright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="166" /> +<hkern g1="quoteright,quotedblright" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="78" /> +<hkern g1="quoteright,quotedblright" g2="f,uniFB01,uniFB02" k="25" /> +<hkern g1="quoteright,quotedblright" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="49" /> +<hkern g1="quoteright,quotedblright" g2="X" k="33" /> +<hkern g1="quoteright,quotedblright" g2="s" k="72" /> +<hkern g1="v" g2="T" k="41" /> +<hkern g1="v" g2="Y,Yacute,Ydieresis" k="33" /> +<hkern g1="v" g2="j" k="20" /> +<hkern g1="v" g2="comma,period,ellipsis" k="123" /> +<hkern g1="v" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="27" /> +<hkern g1="v" g2="Z" k="16" /> +<hkern g1="v" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="41" /> +<hkern g1="v" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="16" /> +<hkern g1="v" g2="J" k="82" /> +<hkern g1="v" g2="hyphen,uni00AD,endash,emdash" k="33" /> +<hkern g1="v" g2="z" k="57" /> +<hkern g1="x" g2="T" k="49" /> +<hkern g1="x" g2="Y,Yacute,Ydieresis" k="68" /> +<hkern g1="x" g2="y,yacute,ydieresis" k="37" /> +<hkern g1="x" g2="S" k="16" /> +<hkern g1="x" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="20" /> +<hkern g1="x" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="20" /> +<hkern g1="x" g2="c,d,e,o,q,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="53" /> +<hkern g1="x" g2="hyphen,uni00AD,endash,emdash" k="37" /> +<hkern g1="x" g2="guillemotleft,guilsinglleft" k="57" /> +<hkern g1="x" g2="guillemotright,guilsinglright" k="41" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/sourcesanspro-bold-webfont.ttf b/web/static/fonts/sourcesanspro-bold-webfont.ttf Binary files differnew file mode 100755 index 000000000..5698c5865 --- /dev/null +++ b/web/static/fonts/sourcesanspro-bold-webfont.ttf diff --git a/web/static/fonts/sourcesanspro-bold-webfont.woff b/web/static/fonts/sourcesanspro-bold-webfont.woff Binary files differnew file mode 100755 index 000000000..7515b7234 --- /dev/null +++ b/web/static/fonts/sourcesanspro-bold-webfont.woff diff --git a/web/static/fonts/sourcesanspro-bold-webfont.woff2 b/web/static/fonts/sourcesanspro-bold-webfont.woff2 Binary files differnew file mode 100755 index 000000000..4fb3397f8 --- /dev/null +++ b/web/static/fonts/sourcesanspro-bold-webfont.woff2 diff --git a/web/static/fonts/sourcesanspro-bolditalic-webfont.eot b/web/static/fonts/sourcesanspro-bolditalic-webfont.eot Binary files differnew file mode 100755 index 000000000..944b82506 --- /dev/null +++ b/web/static/fonts/sourcesanspro-bolditalic-webfont.eot diff --git a/web/static/fonts/sourcesanspro-bolditalic-webfont.svg b/web/static/fonts/sourcesanspro-bolditalic-webfont.svg new file mode 100755 index 000000000..b81468078 --- /dev/null +++ b/web/static/fonts/sourcesanspro-bolditalic-webfont.svg @@ -0,0 +1,833 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > +<svg xmlns="http://www.w3.org/2000/svg"> +<metadata></metadata> +<defs> +<font id="source_sans_probold_italic" horiz-adv-x="1042" > +<font-face units-per-em="2048" ascent="1536" descent="-512" /> +<missing-glyph horiz-adv-x="405" /> +<glyph horiz-adv-x="0" /> +<glyph horiz-adv-x="682" /> +<glyph horiz-adv-x="0" /> +<glyph horiz-adv-x="0" /> +<glyph unicode="
" horiz-adv-x="405" /> +<glyph unicode=" " horiz-adv-x="405" /> +<glyph unicode="	" horiz-adv-x="405" /> +<glyph unicode=" " horiz-adv-x="405" /> +<glyph unicode="!" horiz-adv-x="677" d="M92 127q0 37 14.5 75t41 66.5t63.5 47t82 18.5q66 0 105.5 -44t39.5 -110q0 -39 -14 -75.5t-41 -65.5t-63.5 -46.5t-81.5 -17.5q-66 0 -106 42t-40 110zM236 463l94 651l39 258h280l-59 -258l-170 -651h-184z" /> +<glyph unicode=""" horiz-adv-x="1044" d="M248 743l43 371l37 258h276l-57 -258l-117 -371h-182zM697 743l43 371l37 258h276l-57 -258l-117 -371h-182z" /> +<glyph unicode="#" horiz-adv-x="1036" d="M37 385l43 182h168l74 238h-156l45 182h168l110 344h166l-110 -344h205l110 344h164l-109 -344h154l-43 -182h-168l-74 -238h156l-43 -182h-170l-123 -385h-166l123 385h-205l-123 -385h-163l123 385h-156zM414 567h204l74 238h-205z" /> +<glyph unicode="$" d="M12 180l172 170q47 -59 112.5 -104t143.5 -45q86 0 132 42t46 113q0 55 -30.5 99.5t-76.5 84.5t-99.5 78.5t-99.5 86t-76.5 104.5t-30.5 135q0 80 27.5 148.5t77.5 121t121 85t157 40.5l39 203h186l-43 -219q72 -20 133.5 -63t114.5 -107l-176 -158q-41 53 -94.5 87 t-112.5 34q-72 0 -113 -40t-41 -99q0 -49 31 -89t77 -77t99 -76t99.5 -88t77 -110.5t30.5 -145.5t-27.5 -154.5t-78 -124t-123 -88t-162.5 -44.5l-43 -205h-185l43 215q-88 20 -167.5 69.5t-139.5 120.5z" /> +<glyph unicode="%" horiz-adv-x="1697" d="M109 854q0 106 28.5 202.5t79.5 168t124 113.5t163 42q59 0 110.5 -23.5t90 -66.5t60 -103.5t21.5 -133.5q0 -109 -28.5 -204t-79.5 -166t-125 -113t-162 -42q-59 0 -110.5 24t-90 65.5t-60 102t-21.5 134.5zM289 -25l970 1401h164l-970 -1401h-164zM309 860 q0 -76 23.5 -120t77.5 -44q39 0 70.5 27t55 74t37 111.5t13.5 140.5t-24 119.5t-77 43.5q-39 0 -70.5 -26.5t-55 -74.5t-37 -112.5t-13.5 -138.5zM949 301q0 106 28.5 202.5t79.5 168t124 113.5t163 42q59 0 110.5 -23.5t90 -66.5t60 -103.5t21.5 -133.5q0 -109 -28.5 -204 t-79.5 -166t-125 -113t-162 -42q-59 0 -110.5 24t-90 65.5t-60 102t-21.5 134.5zM1149 307q0 -76 23.5 -120t77.5 -44q39 0 70.5 27t55 74t37 111.5t13.5 140.5t-24 119.5t-77 43.5q-39 0 -70.5 -26.5t-55 -74.5t-37 -112.5t-13.5 -138.5z" /> +<glyph unicode="&" horiz-adv-x="1296" d="M29 307q0 82 25.5 146.5t68.5 116t98 92t117 75.5q-18 57 -28.5 113.5t-10.5 110.5q0 82 31.5 154.5t87 126.5t129.5 86t158 32q135 0 204.5 -73t69.5 -195q0 -76 -30.5 -137.5t-80 -111.5t-112 -93t-127.5 -82q41 -72 96 -138.5t117 -123.5q68 78 119 162.5t92 183.5 h254q-59 -127 -132 -246t-169 -225q53 -33 104 -53.5t92 -30.5l-110 -222q-70 16 -140.5 48t-138.5 79q-88 -61 -188.5 -94t-214.5 -33q-180 0 -280.5 92.5t-100.5 239.5zM301 338q0 -66 42 -109t116 -43q96 0 192 54q-66 66 -122 141.5t-101 157.5q-57 -45 -92 -93.5 t-35 -107.5zM532 969q0 -55 17 -121q90 49 151.5 105.5t61.5 140.5q0 37 -18.5 58.5t-55.5 21.5q-61 0 -108.5 -54.5t-47.5 -150.5z" /> +<glyph unicode="'" horiz-adv-x="595" d="M248 743l43 371l37 258h276l-57 -258l-117 -371h-182z" /> +<glyph unicode="(" horiz-adv-x="673" d="M115 268q0 178 31.5 338t92 309.5t150.5 294t207 291.5l162 -82q-217 -289 -317.5 -580.5t-100.5 -590.5q0 -66 4 -137.5t13.5 -143t23.5 -138.5t33 -122l-178 -74q-25 63 -46.5 140t-38 159t-26.5 167t-10 169z" /> +<glyph unicode=")" horiz-adv-x="677" d="M-68 -285q217 289 317.5 581t100.5 591q0 66 -4 137.5t-13 143t-23.5 139t-33.5 123.5l179 71q25 -66 46 -141.5t38.5 -156.5t28 -167t10.5 -168q0 -178 -32 -338.5t-93.5 -310t-151.5 -294t-207 -292.5z" /> +<glyph unicode="*" horiz-adv-x="897" d="M207 1163l63 133l219 -69l66 235l145 -12l-16 -240l234 29l20 -143l-225 -78l78 -217l-134 -76l-125 193l-178 -168l-106 100l153 201z" /> +<glyph unicode="+" d="M98 578v198h344v379h207v-379h344v-198h-348v-383h-205v383h-342z" /> +<glyph unicode="," horiz-adv-x="595" d="M-55 -229q117 35 181 96t83 133q-68 2 -112 41t-44 104q0 74 51.5 131.5t139.5 57.5q82 0 126 -52.5t44 -146.5q0 -96 -31 -181t-87 -152.5t-138 -115.5t-185 -69z" /> +<glyph unicode="-" horiz-adv-x="655" d="M68 420l43 198h479l-43 -198h-479z" /> +<glyph unicode="." horiz-adv-x="595" d="M49 127q0 37 14.5 75t41 66.5t63.5 47t82 18.5q66 0 104.5 -44t38.5 -110q0 -39 -14 -75.5t-41 -65.5t-63.5 -46.5t-81.5 -17.5q-66 0 -105 42t-39 110z" /> +<glyph unicode="/" horiz-adv-x="673" d="M-141 -328l762 1782h186l-766 -1782h-182z" /> +<glyph unicode="0" d="M78 442q0 215 50 380t131 276.5t183.5 169t206.5 57.5q80 0 146.5 -29.5t114.5 -89t76 -147.5t28 -205q0 -215 -50.5 -380t-130 -275.5t-182.5 -167t-207 -56.5q-80 0 -146.5 30t-115.5 88.5t-76.5 146.5t-27.5 202zM338 414q0 -121 32.5 -172.5t92.5 -51.5 q55 0 108.5 54.5t94.5 148.5t66.5 220t25.5 270q0 121 -33 174t-92 53q-55 0 -108.5 -55.5t-94.5 -149.5t-66.5 -221t-25.5 -270z" /> +<glyph unicode="1" d="M39 0l45 225h268l160 785h-238l35 176q109 16 184.5 43.5t147.5 70.5h209l-217 -1075h239l-45 -225h-788z" /> +<glyph unicode="2" d="M-27 0l31 160q160 131 290 237.5t222 200.5t142.5 178t50.5 170q0 70 -40 114t-118 44q-55 0 -105.5 -28.5t-107.5 -76.5l-135 162q94 80 189 122t194 42q186 0 290.5 -96t104.5 -254q0 -98 -38 -185.5t-107.5 -174.5t-168 -179t-216.5 -200h440l-45 -236h-873z" /> +<glyph unicode="3" d="M-33 209l178 145q51 -72 122 -112.5t141 -40.5q106 0 168.5 48t62.5 134q0 43 -14.5 77t-51 57.5t-99 35.5t-157.5 12l39 199q102 0 170 16.5t108 44t56.5 63.5t16.5 77q0 63 -41 101t-117 38q-47 0 -97.5 -21.5t-109.5 -62.5l-135 180q98 70 194.5 97.5t198.5 27.5 q88 0 161 -22.5t124 -63.5t79.5 -99.5t28.5 -127.5q0 -123 -62.5 -210t-215.5 -138v-9q104 -41 154.5 -112.5t50.5 -161.5q0 -98 -39 -174t-106.5 -127t-161 -78t-199.5 -27q-123 0 -242 56.5t-205 177.5z" /> +<glyph unicode="4" d="M16 315l37 197l619 788h334l-154 -768h149l-40 -217h-150l-63 -315h-256l63 315h-539zM330 532h266l47 234q14 70 32.5 143.5t35.5 145.5h-9q-39 -59 -74.5 -121t-74.5 -117z" /> +<glyph unicode="5" d="M-14 209l176 143q51 -70 113.5 -110.5t142.5 -40.5q47 0 90 16t74.5 48t51 78t19.5 103q0 92 -47 136.5t-131 44.5q-25 0 -45 -2t-41.5 -9.5t-46.5 -18.5t-57 -30l-105 86l160 647h700l-47 -235h-456l-72 -256q59 27 125 27q74 0 137.5 -21.5t109.5 -64.5t72.5 -107.5 t26.5 -150.5q0 -121 -44 -216.5t-118 -162t-168 -102.5t-194 -36q-123 0 -231.5 55.5t-194.5 178.5z" /> +<glyph unicode="6" d="M102 438q0 199 49.5 363t136.5 280.5t206.5 180t261.5 63.5q61 0 110 -16.5t89 -43t70 -57t52 -61.5l-178 -150q-29 47 -67.5 75t-94.5 28q-117 0 -213 -103.5t-137 -308.5q55 59 129 91t127 32q70 0 129 -20.5t102.5 -62.5t68 -106.5t24.5 -150.5q0 -94 -34 -183 t-95.5 -159t-145.5 -112t-184 -42q-92 0 -168 34t-128 95.5t-81 146.5t-29 187zM362 412q0 -111 44 -169.5t116 -58.5q45 0 80 24.5t58.5 62.5t36 85t12.5 90q0 82 -36 127t-104 45q-41 0 -93 -26.5t-111 -99.5q-2 -20 -2.5 -40t-0.5 -40z" /> +<glyph unicode="7" d="M203 1065l47 235h862l-35 -176q-147 -135 -244.5 -274t-163 -280.5t-105.5 -284t-70 -285.5h-289q45 170 97 318.5t118.5 280.5t147.5 248t186 218h-551z" /> +<glyph unicode="8" d="M76 315q0 68 22.5 124.5t60.5 102.5t89 80.5t108 57.5v8q-55 57 -83.5 121.5t-28.5 142.5q0 86 33.5 156t92 118t134.5 73.5t162 25.5q66 0 129 -17.5t113 -55.5t81 -95t31 -137q0 -123 -63.5 -209t-170.5 -143v-9q70 -47 116 -121.5t46 -175.5q0 -90 -38 -160.5 t-102.5 -121.5t-150.5 -78t-180 -27q-70 0 -140.5 19.5t-128.5 60.5t-95 105.5t-37 154.5zM326 346q0 -74 45 -125t127 -51q37 0 72.5 12.5t62 36t43 59t16.5 82.5q0 78 -61.5 129.5t-159.5 106.5q-61 -43 -103 -104.5t-42 -145.5zM489 963q0 -74 43 -122t127 -93 q47 41 84 97t37 134q0 66 -32.5 106.5t-102.5 40.5q-63 0 -109.5 -43t-46.5 -120z" /> +<glyph unicode="9" d="M23 156l176 147q29 -47 67.5 -74.5t93.5 -27.5q117 0 213.5 102.5t137.5 306.5q-57 -59 -130 -90t-126 -31q-70 0 -128.5 20.5t-101.5 62.5t-67.5 106.5t-24.5 150.5q0 94 34 183.5t94.5 159t144 111.5t184.5 42q94 0 169 -34t127 -95t80.5 -146t28.5 -188 q0 -201 -49 -363.5t-135 -279.5t-206 -180.5t-261 -63.5q-61 0 -111.5 16.5t-90.5 43t-69.5 58.5t-49.5 63zM389 854q0 -82 35.5 -127t105.5 -45q41 0 92.5 27.5t110.5 99.5q2 20 2 39.5v40.5q0 111 -44 169t-116 58q-45 0 -79.5 -24.5t-58 -62.5t-36 -85t-12.5 -90z" /> +<glyph unicode=":" horiz-adv-x="595" d="M49 127q0 37 14.5 75t41 66.5t63.5 47t82 18.5q66 0 104.5 -44t38.5 -110q0 -39 -14 -75.5t-41 -65.5t-63.5 -46.5t-81.5 -17.5q-66 0 -105 42t-39 110zM166 811q0 37 14.5 75t41 66.5t63.5 47t82 18.5q66 0 104.5 -44t38.5 -110q0 -39 -14 -75.5t-41 -65.5t-63.5 -46.5 t-81.5 -17.5q-66 0 -105 42t-39 110z" /> +<glyph unicode=";" horiz-adv-x="595" d="M-55 -229q117 35 181 96t83 133q-68 2 -112 41t-44 104q0 74 51.5 131.5t139.5 57.5q82 0 126 -52.5t44 -146.5q0 -96 -31 -181t-87 -152.5t-138 -115.5t-185 -69zM166 811q0 37 14.5 75t41 66.5t63.5 47t82 18.5q66 0 104.5 -44t38.5 -110q0 -39 -14 -75.5t-41 -65.5 t-63.5 -46.5t-81.5 -17.5q-66 0 -105 42t-39 110z" /> +<glyph unicode="<" d="M94 580v196l899 357v-230l-348 -125l-264 -94v-8l264 -96l348 -125v-234z" /> +<glyph unicode="=" d="M98 342v198h895v-198h-895zM98 816v198h895v-198h-895z" /> +<glyph unicode=">" d="M98 221v234l351 125l262 96v8l-262 94l-351 125v230l899 -357v-196z" /> +<glyph unicode="?" horiz-adv-x="909" d="M184 127q0 37 14.5 75t41 66.5t63.5 47t82 18.5q66 0 104.5 -44t38.5 -110q0 -39 -14 -75.5t-41 -65.5t-62.5 -46.5t-80.5 -17.5q-66 0 -106 42t-40 110zM231 1251q72 72 157 109t177 37q166 0 268.5 -81t102.5 -229q0 -80 -26.5 -138t-67.5 -105t-90.5 -88t-93.5 -84 t-77.5 -95.5t-43.5 -121.5l-238 20q8 82 38 142.5t71 107.5t85 85t81.5 74t62.5 73.5t25 86.5q0 59 -35 93t-97 34q-78 0 -157 -79z" /> +<glyph unicode="@" horiz-adv-x="1773" d="M88 332q0 217 77 406.5t207 327.5t301 218t357 80q160 0 284 -49t210 -134t131 -201t45 -247q0 -164 -40 -285.5t-106.5 -203.5t-155.5 -123t-188 -41q-72 0 -128 39t-74 114h-9q-39 -59 -102 -96t-127 -37q-111 0 -183.5 80t-72.5 215q0 96 33 187.5t90 162t132 113.5 t161 43q92 0 143 -100h4l31 84h170l-104 -455q-41 -176 88 -176q41 0 87 28.5t83.5 85t62.5 141.5t25 196q0 96 -27 185t-88.5 157.5t-159.5 109.5t-241 41q-129 0 -258.5 -63.5t-232.5 -176t-167.5 -264t-64.5 -329.5q0 -137 45 -238.5t117.5 -169.5t165.5 -100.5 t192 -32.5q57 0 123.5 18.5t119.5 51.5l74 -152q-86 -45 -170 -67.5t-172 -22.5q-137 0 -262 43t-219 128t-150.5 212t-56.5 297zM723 412q0 -66 27.5 -102t76.5 -36q33 0 65 24t71 77l63 284q-33 63 -90 64q-45 0 -84 -29.5t-67.5 -76t-45 -101.5t-16.5 -104z" /> +<glyph unicode="A" horiz-adv-x="1122" d="M-127 0l705 1335h335l134 -1335h-293l-17 336h-397l-158 -336h-309zM440 547h287l-8 176q-4 98 -8 194.5t-9 202.5h-8q-43 -104 -84 -200.5t-88 -196.5z" /> +<glyph unicode="B" horiz-adv-x="1236" d="M57 0l269 1335h407q100 0 182 -18.5t141.5 -55t92.5 -94t33 -137.5q0 -117 -79 -206t-210 -128l-4 -8q111 -27 171 -89t60 -161q0 -117 -46 -200.5t-125 -136t-184.5 -77t-221.5 -24.5h-486zM381 215h174q143 0 219 54.5t76 158.5q0 82 -53.5 126t-163.5 44h-174z M498 788h133q141 0 202.5 53.5t61.5 141.5q0 66 -51 101.5t-162 35.5h-119z" /> +<glyph unicode="C" horiz-adv-x="1161" d="M115 535q0 172 55 322.5t150.5 262t225.5 176t279 64.5q117 0 208 -56.5t149 -156.5l-193 -148q-37 59 -80 88t-98 29q-86 0 -159.5 -46t-129 -124t-87.5 -180t-32 -213q0 -156 66 -246t213 -90q59 0 116.5 28.5t110.5 73.5l117 -180q-31 -29 -72 -57.5t-92 -52 t-111.5 -39t-127.5 -15.5q-117 0 -210.5 38t-160 111t-102 176.5t-35.5 234.5z" /> +<glyph unicode="D" horiz-adv-x="1261" d="M57 0l269 1335h292q281 0 435.5 -129t154.5 -395q0 -197 -54 -348.5t-151.5 -255t-232.5 -155.5t-295 -52h-418zM385 225h84q96 0 179 34t143.5 103.5t95.5 177t35 253.5q0 166 -84 241.5t-226 75.5h-53z" /> +<glyph unicode="E" horiz-adv-x="1079" d="M57 0l269 1335h790l-45 -235h-514l-57 -291h436l-45 -236h-436l-70 -337h530l-45 -236h-813z" /> +<glyph unicode="F" horiz-adv-x="1032" d="M57 0l269 1335h790l-45 -235h-514l-63 -328h434l-45 -235h-437l-106 -537h-283z" /> +<glyph unicode="G" horiz-adv-x="1251" d="M115 535q0 172 55 322.5t152.5 262t231.5 176t292 64.5q129 0 222 -56.5t151 -156.5l-191 -148q-39 59 -85 88t-112 29q-92 0 -170.5 -46t-136 -124t-89.5 -180t-32 -213q0 -78 15.5 -139.5t50.5 -106.5t90 -68.5t133 -23.5q41 0 79 12.5t67 32.5l57 262h-219l43 230h465 l-123 -637q-78 -59 -184.5 -99.5t-233.5 -40.5q-123 0 -221 38t-167 110t-104.5 175.5t-35.5 236.5z" /> +<glyph unicode="H" horiz-adv-x="1335" d="M57 0l269 1335h280l-106 -518h456l103 518h280l-266 -1335h-282l116 571h-456l-111 -571h-283z" /> +<glyph unicode="I" horiz-adv-x="602" d="M57 0l269 1335h280l-266 -1335h-283z" /> +<glyph unicode="J" horiz-adv-x="1005" d="M-16 178l172 170q29 -53 81 -92t123 -39q156 0 205 248l174 870h281l-184 -919q-18 -90 -54.5 -170t-94.5 -140.5t-139 -95.5t-188 -35q-117 0 -217 52.5t-159 150.5z" /> +<glyph unicode="K" horiz-adv-x="1236" d="M57 0l269 1335h280l-108 -549h6l502 549h307l-486 -549l299 -786h-292l-213 610l-203 -219l-78 -391h-283z" /> +<glyph unicode="L" horiz-adv-x="1024" d="M57 0l269 1335h280l-221 -1099h506l-45 -236h-789z" /> +<glyph unicode="M" horiz-adv-x="1515" d="M57 0l269 1335h297l96 -616l35 -240h8l123 240l336 616h299l-269 -1335h-262l111 530q10 49 24.5 107.5t30.5 118t32.5 116t33.5 105.5h-7l-165 -307l-314 -547h-112l-99 547l-41 307h-8q-4 -49 -9 -106.5t-11 -117t-14.5 -116.5t-18.5 -107l-107 -530h-258z" /> +<glyph unicode="N" horiz-adv-x="1316" d="M57 0l269 1335h272l217 -696l72 -293h8q6 51 10 112.5t10.5 124t14.5 126t20 120.5l103 506h266l-266 -1335h-271l-219 694l-67 297h-9q-10 -113 -23 -237.5t-36 -241.5l-102 -512h-269z" /> +<glyph unicode="O" horiz-adv-x="1351" d="M117 541q0 176 55 326.5t148.5 260t216 171t258.5 61.5q115 0 207 -39t157.5 -111.5t101 -177t35.5 -237.5q0 -176 -55 -327t-148.5 -260.5t-216.5 -171t-258 -61.5q-115 0 -207 38t-157.5 111t-101 178.5t-35.5 238.5zM403 559q0 -160 59.5 -251t170.5 -91 q72 0 139.5 44t120.5 120t85 177t32 218q0 160 -58.5 250t-169.5 90q-72 0 -139.5 -44t-120.5 -118.5t-86 -176t-33 -218.5z" /> +<glyph unicode="P" horiz-adv-x="1193" d="M57 0l269 1335h422q98 0 181 -19.5t144.5 -61.5t96 -109.5t34.5 -163.5q0 -139 -49 -237.5t-133 -161t-195.5 -91t-238.5 -28.5h-158l-90 -463h-283zM477 686h141q150 0 230 63.5t80 190.5q0 90 -58.5 131t-167.5 41h-143z" /> +<glyph unicode="Q" horiz-adv-x="1351" d="M117 541q0 176 55 326.5t148.5 260t216 171t258.5 61.5q115 0 207 -39t157.5 -111.5t101 -177t35.5 -237.5q0 -160 -45 -297.5t-121.5 -244t-180 -176t-222.5 -91.5q41 -63 117 -92t162 -29q41 0 71.5 5t63.5 13l12 -211q-35 -14 -82 -23t-82 -9q-416 0 -559 366 q-147 53 -230 189.5t-83 345.5zM403 559q0 -160 59.5 -251t170.5 -91q72 0 139.5 44t120.5 120t85 177t32 218q0 160 -58.5 250t-169.5 90q-72 0 -139.5 -44t-120.5 -118.5t-86 -176t-33 -218.5z" /> +<glyph unicode="R" horiz-adv-x="1220" d="M57 0l269 1335h417q98 0 182.5 -18.5t144.5 -59t95 -106.5t35 -158q0 -94 -25.5 -168.5t-70.5 -132t-107.5 -98.5t-136.5 -66l207 -528h-295l-172 489h-164l-96 -489h-283zM481 713h142q150 0 225.5 64.5t75.5 174.5q0 86 -57.5 123t-166.5 37h-141z" /> +<glyph unicode="S" horiz-adv-x="1083" d="M10 225l201 158q53 -78 132 -123t165 -45t139 41t53 113q0 53 -42 86.5t-113 79.5l-127 77q-92 57 -145.5 134t-53.5 200q0 86 37 161t99.5 131t148.5 89t184 33q119 0 223.5 -55.5t182.5 -147.5l-179 -166q-51 53 -108 89t-131 36q-82 0 -126 -42t-44 -101q0 -51 45 -84 t123 -82l131 -80q98 -59 142 -130t44 -187q0 -92 -35.5 -171t-101.5 -137.5t-159 -92.5t-208 -34q-131 0 -254.5 57.5t-222.5 192.5z" /> +<glyph unicode="T" horiz-adv-x="1089" d="M172 1098l45 237h983l-47 -237h-350l-217 -1098h-281l217 1098h-350z" /> +<glyph unicode="U" horiz-adv-x="1316" d="M154 440q0 45 8 103.5t18 111.5l137 680h281l-145 -731q-8 -41 -12.5 -80t-4.5 -75q0 -113 45 -172.5t158 -59.5q96 0 159.5 79t100.5 265l156 774h274l-155 -770q-61 -307 -195.5 -448.5t-347.5 -141.5q-238 0 -357.5 114t-119.5 351z" /> +<glyph unicode="V" horiz-adv-x="1134" d="M162 1335h293l34 -657q4 -106 8.5 -213t6.5 -215h8q47 109 93 215t93 213l297 657h310l-691 -1335h-340z" /> +<glyph unicode="W" horiz-adv-x="1626" d="M158 0l47 1335h287l-43 -641q-10 -106 -19.5 -213.5t-21.5 -214.5h8q41 106 87 215t87 213l274 641h238l4 -641q-2 -104 -6 -211.5t-8 -216.5h8q37 109 75.5 216.5t73.5 211.5l226 641h268l-518 -1335h-355l9 639q0 66 5 149.5t13 161.5h-8q-29 -76 -60.5 -154.5 t-60.5 -156.5l-262 -639h-348z" /> +<glyph unicode="X" horiz-adv-x="1132" d="M-74 0l496 688l-207 647h311l68 -268q10 -47 21.5 -98t25.5 -111h8q35 59 67 111.5t60 99.5l162 266h299l-469 -659l223 -676h-311l-76 291q-14 53 -26.5 104t-26.5 111h-8q-35 -59 -68 -111.5t-65 -105.5l-185 -289h-299z" /> +<glyph unicode="Y" d="M164 1335h291l57 -321q14 -76 25.5 -145.5t25.5 -147.5h8q41 78 80 148.5t84 148.5l187 317h301l-566 -852l-96 -483h-278l94 483z" /> +<glyph unicode="Z" horiz-adv-x="1075" d="M-10 0l37 168l729 932h-527l47 235h863l-35 -170l-723 -929h580l-50 -236h-921z" /> +<glyph unicode="[" horiz-adv-x="675" d="M-6 -311l352 1761h410l-29 -150h-203l-291 -1462h201l-31 -149h-409z" /> +<glyph unicode="\" horiz-adv-x="673" d="M174 1454h180l158 -1782h-182z" /> +<glyph unicode="]" horiz-adv-x="677" d="M-59 -311l30 149h199l293 1462h-199l29 150h409l-352 -1761h-409z" /> +<glyph unicode="^" horiz-adv-x="1036" d="M147 563l306 809h221l305 -809h-229l-93 277l-88 276h-8l-90 -276l-94 -277h-230z" /> +<glyph unicode="_" horiz-adv-x="985" d="M-96 -283l30 158h936l-32 -158h-934z" /> +<glyph unicode="`" horiz-adv-x="1093" d="M455 1479h260l115 -305h-193z" /> +<glyph unicode="a" horiz-adv-x="1130" d="M63 348q0 145 45.5 271t121 220.5t174 147.5t202.5 53q70 0 131.5 -35.5t89.5 -97.5h4l46 109h223l-203 -1016h-227l4 133h-6q-70 -72 -154 -115t-164 -43q-135 0 -211 96.5t-76 276.5zM354 383q0 -92 32 -135t87 -43q51 0 109.5 31.5t107.5 117.5l72 361 q-25 51 -62.5 73.5t-72.5 22.5q-53 0 -102.5 -33t-87.5 -90t-60.5 -135t-22.5 -170z" /> +<glyph unicode="b" horiz-adv-x="1132" d="M29 0l288 1436h281l-68 -326l-51 -190h4q68 55 143.5 87.5t151.5 32.5q135 0 211 -96t76 -276q0 -145 -45 -271.5t-121 -220.5t-173 -147.5t-202 -53.5q-70 0 -128 36t-87 98h-4l-45 -109h-231zM371 301q23 -51 58.5 -73.5t74.5 -22.5q53 0 102 32.5t87 90t60.5 135.5 t22.5 170t-33 135t-86 43q-47 0 -105 -27.5t-103 -99.5z" /> +<glyph unicode="c" horiz-adv-x="907" d="M59 393q0 131 46.5 249t127 207t190 140t234.5 51q96 0 165 -38.5t108 -86.5l-156 -165q-31 33 -61.5 49t-73.5 16q-61 0 -114.5 -32.5t-93.5 -90t-62.5 -132.5t-22.5 -161q0 -92 43 -145t129 -53q53 0 91 20.5t71 44.5l117 -172q-57 -43 -138 -81t-202 -38 q-84 0 -157 28t-126 82t-84 132t-31 176z" /> +<glyph unicode="d" horiz-adv-x="1118" d="M63 348q0 145 45.5 271t121 220.5t174 147.5t202.5 53q70 0 124 -33.5t83 -88.5h6l25 192l61 326h281l-289 -1436h-227l4 133h-6q-70 -72 -154 -115t-164 -43q-135 0 -211 96.5t-76 276.5zM354 383q0 -92 32 -135t87 -43q51 0 107.5 31.5t109.5 117.5l72 361 q-25 51 -62.5 73.5t-72.5 22.5q-53 0 -102.5 -33t-87.5 -90t-60.5 -135t-22.5 -170z" /> +<glyph unicode="e" horiz-adv-x="1015" d="M59 410q0 141 50.5 256.5t131.5 198.5t181 129t203 46q90 0 153.5 -29.5t103.5 -81.5t57 -121t17 -149q0 -37 -6 -72.5t-14 -67.5t-17.5 -55.5t-15.5 -35.5h-577v-21q0 -111 60 -163q66 -58 167 -58q47 0 98 22.5t90 49.5l99 -176q-61 -43 -153.5 -75t-211.5 -32 q-92 0 -169 30t-131 86t-85 136.5t-31 182.5zM348 600h369q10 35 10 76q0 61 -29.5 105t-107.5 44q-72 0 -139.5 -56t-102.5 -169z" /> +<glyph unicode="f" horiz-adv-x="669" d="M74 0l162 797h-132l43 207l134 12l12 67q14 78 45 146.5t79 120t114.5 81t154.5 29.5q59 0 114.5 -14t102.5 -41l-90 -199q-16 10 -43 20.5t-55 10.5q-55 0 -90 -29.5t-52 -113.5l-14 -78h176l-43 -219h-180l-158 -797h-280z" /> +<glyph unicode="g" horiz-adv-x="1118" d="M-25 -293l121 187q59 -45 125 -76t137 -31q100 0 165 54.5t95 158.5l50 172h-4q-70 -66 -144 -102.5t-160 -36.5q-129 0 -213 87t-84 267q0 137 44.5 256t117 207t168.5 139t201 51q70 0 129 -35.5t88 -97.5h6l43 109h227l-198 -1000q-47 -227 -185.5 -339.5 t-353.5 -112.5q-92 0 -190.5 35.5t-184.5 107.5zM354 424q0 -84 31 -124t84 -40q51 0 108.5 28.5t106.5 104.5l64 322q-27 51 -63 73.5t-71 22.5q-53 0 -100 -29.5t-82 -82t-56.5 -123t-21.5 -152.5z" /> +<glyph unicode="h" horiz-adv-x="1118" d="M29 0l288 1436h281l-78 -375l-45 -164h8q68 59 148 101t172 42q127 0 184 -66.5t57 -193.5q0 -35 -3 -70.5t-13 -74.5l-127 -635h-280l120 600q6 31 11.5 53.5t5.5 42.5q0 104 -105 105q-47 0 -97 -32t-116 -99l-131 -670h-280z" /> +<glyph unicode="i" horiz-adv-x="542" d="M29 0l204 1016h279l-203 -1016h-280zM274 1303q0 33 13.5 63.5t37 53t55.5 35.5t69 13q59 0 105 -34.5t46 -100.5q0 -72 -50 -119t-124 -47q-57 0 -104.5 34t-47.5 102z" /> +<glyph unicode="j" horiz-adv-x="546" d="M-268 -356l84 202q23 -12 43 -19t47 -7q51 0 76.5 38t46.5 122l207 1036h280l-211 -1049q-16 -78 -45 -144.5t-74 -116.5t-108.5 -78.5t-149.5 -28.5q-53 0 -100 10t-96 35zM279 1303q0 68 50 116.5t124 48.5q57 0 104 -34.5t47 -100.5q0 -72 -51 -119t-123 -47 q-59 0 -105 34t-46 102z" /> +<glyph unicode="k" horiz-adv-x="1075" d="M29 0l288 1436h281l-168 -832h8l383 412h312l-416 -445l241 -571h-280l-154 410l-166 -166l-49 -244h-280z" /> +<glyph unicode="l" horiz-adv-x="563" d="M76 174q0 53 14 125l227 1137h281l-231 -1149q-4 -16 -4.5 -23.5t-0.5 -15.5q0 -27 11.5 -37t27.5 -10h16.5t20.5 4l-8 -207q-27 -10 -63.5 -16.5t-85.5 -6.5q-111 0 -158 53.5t-47 145.5z" /> +<glyph unicode="m" horiz-adv-x="1693" d="M29 0l200 1016h228l-4 -135h8q74 66 157.5 112.5t169.5 46.5q115 0 165.5 -49t70.5 -129q86 78 172 128t172 50q127 0 183.5 -66.5t56.5 -193.5q0 -35 -4.5 -70.5t-12.5 -74.5l-127 -635h-280l121 600q6 31 11 53.5t5 42.5q0 104 -102 105q-35 0 -84.5 -32t-114.5 -99 l-135 -670h-281l121 600q6 31 11 53.5t5 42.5q0 53 -25.5 79t-72.5 26q-37 0 -87 -32t-116 -99l-131 -670h-280z" /> +<glyph unicode="n" horiz-adv-x="1130" d="M29 0l200 1016h228l-4 -135h8q76 66 160 112.5t182 46.5q127 0 184 -66.5t57 -193.5q0 -35 -4 -70.5t-12 -74.5l-127 -635h-280l120 600q6 31 11.5 53.5t5.5 42.5q0 104 -105 105q-47 0 -97 -32t-116 -99l-131 -670h-280z" /> +<glyph unicode="o" horiz-adv-x="1091" d="M61 393q0 147 49.5 267t130.5 204t183 130t207 46q88 0 160.5 -29.5t124 -85t80 -132t28.5 -170.5q0 -147 -49 -267t-130 -204t-183.5 -130.5t-206.5 -46.5q-90 0 -162 30t-124 85t-80 132t-28 171zM344 399q0 -92 35 -145t106 -53q51 0 97.5 31.5t82 87t56 131 t20.5 165.5q0 94 -35.5 146.5t-107.5 52.5q-51 0 -97 -31.5t-81 -87t-55.5 -132.5t-20.5 -165z" /> +<glyph unicode="p" horiz-adv-x="1132" d="M-47 -377l280 1393h228l2 -117h6q70 63 150.5 102t158.5 39q135 0 211 -96t76 -276q0 -145 -45 -271.5t-121 -220.5t-173 -147.5t-202 -53.5q-66 0 -119 32t-88 89h-4l-28 -198l-52 -275h-280zM371 299q23 -49 58.5 -71.5t74.5 -22.5q53 0 102 32.5t87 90t60.5 135.5 t22.5 170t-33 135t-86 43q-47 0 -105 -27.5t-103 -99.5z" /> +<glyph unicode="q" horiz-adv-x="1130" d="M63 348q0 145 45.5 271t121 220.5t174 147.5t202.5 53q70 0 131.5 -35.5t89.5 -97.5h4l46 109h223l-279 -1393h-280l57 275l76 235h-4q-70 -72 -155 -115t-165 -43q-135 0 -211 96.5t-76 276.5zM354 383q0 -92 32 -135t87 -43q47 0 105.5 31.5t111.5 117.5l72 361 q-25 51 -62.5 73.5t-72.5 22.5q-53 0 -102.5 -33t-87.5 -90t-60.5 -135t-22.5 -170z" /> +<glyph unicode="r" horiz-adv-x="786" d="M29 0l200 1016h228l-13 -197h9q59 96 141 158.5t170 62.5q39 0 64.5 -5t41.5 -15l-92 -242q-20 10 -48 13.5t-52 3.5q-68 0 -131.5 -49.5t-122.5 -157.5l-115 -588h-280z" /> +<glyph unicode="s" horiz-adv-x="868" d="M-16 172l161 135q106 -127 220 -127q59 0 101 28t42 68q0 45 -45 74t-131 78q-86 47 -145.5 115.5t-59.5 165.5q0 72 30.5 133t84 105t125 68.5t153.5 24.5q104 0 187.5 -45t146.5 -110l-154 -146q-37 39 -82 65.5t-98 26.5q-59 0 -95 -27.5t-36 -68.5q0 -25 14.5 -43 t39 -33.5t54 -31t60.5 -33.5q92 -49 152.5 -114.5t60.5 -170.5q0 -74 -31.5 -135t-87 -105t-133.5 -69t-170 -25q-47 0 -98 13.5t-99.5 38t-92.5 61.5t-74 84z" /> +<glyph unicode="t" horiz-adv-x="751" d="M96 797l41 207l150 12l86 266h235l-51 -266h231l-43 -219h-237l-88 -437q-4 -18 -4 -34.5v-32.5q0 -98 104 -98q23 0 43.5 6t40.5 16l49 -197q-41 -16 -100 -30.5t-137 -14.5q-154 0 -221.5 76t-67.5 193q0 33 5 64.5t11 64.5l88 424h-135z" /> +<glyph unicode="u" horiz-adv-x="1116" d="M80 238q0 35 4 69.5t12 73.5l127 635h279l-119 -600q-8 -31 -12 -53.5t-4 -43.5q0 -104 102 -104q86 0 203 131l131 670h280l-200 -1016h-228l4 137h-8q-70 -66 -154.5 -114t-177.5 -48q-127 0 -183 67t-56 196z" /> +<glyph unicode="v" horiz-adv-x="1021" d="M123 1016h278l35 -498q6 -76 8 -153.5t5 -155.5h8q35 78 67.5 154.5t67.5 154.5l227 498h275l-519 -1016h-323z" /> +<glyph unicode="w" horiz-adv-x="1531" d="M147 1016h277l2 -492q-2 -74 -5 -148.5t-7 -150.5h8q29 76 55.5 152t59.5 147l208 492h244l17 -492q1 -49 1 -99v-49q-1 -74 -1 -151h8q29 76 53.5 151t52.5 148l191 492h260l-434 -1016h-330l-8 426q2 72 2 144.5t2 152.5h-8q-29 -80 -53.5 -152.5t-53.5 -144.5 l-174 -426h-317z" /> +<glyph unicode="x" horiz-adv-x="1003" d="M-82 0l430 543l-176 473h283l61 -174q12 -45 24.5 -88t24.5 -86h8q27 43 53.5 87t51.5 87l104 174h299l-397 -537l188 -479h-286l-64 178q-14 43 -28.5 88t-28.5 90h-8q-29 -45 -57.5 -89t-57.5 -89l-123 -178h-301z" /> +<glyph unicode="y" horiz-adv-x="1021" d="M-72 -356l86 200q35 -20 76 -20q55 0 106.5 40t86.5 107l24 52l-176 993h279l47 -459q8 -66 12 -149.5t6 -155.5h8q33 72 68 153.5t67 151.5l213 459h273l-549 -1039q-53 -92 -105.5 -161.5t-109.5 -116.5t-122.5 -71.5t-143.5 -24.5q-29 0 -72 12t-74 29z" /> +<glyph unicode="z" horiz-adv-x="907" d="M-20 0l30 158l539 639h-367l41 219h719l-31 -162l-538 -635h426l-43 -219h-776z" /> +<glyph unicode="{" horiz-adv-x="671" d="M53 487l37 164q51 2 86 16.5t58.5 37t37 50t19.5 54.5q8 47 13 88t9 81t10.5 83t16.5 96q16 82 39.5 138.5t58.5 91t84 49t117 14.5h131l-33 -150h-39q-63 0 -91.5 -34.5t-43.5 -118.5q-16 -82 -28.5 -162t-28.5 -172q-25 -117 -73 -173t-130 -75v-8q57 -14 86 -47 t29 -96q0 -51 -14.5 -119t-33 -137.5t-32.5 -134t-14 -107.5q0 -41 17 -59.5t69 -18.5h34l-28 -149h-125q-111 0 -155 45t-44 133q0 59 16.5 131t36 141.5t36 130t16.5 97.5q0 45 -30 80.5t-114 39.5z" /> +<glyph unicode="|" horiz-adv-x="522" d="M180 -512v2048h176v-2048h-176z" /> +<glyph unicode="}" horiz-adv-x="677" d="M-78 -311l33 149h39q63 0 91 35t44 119q16 82 28.5 161.5t28.5 172.5q25 117 73 173t130 74v9q-59 14 -87 47t-28 96q0 51 14.5 118.5t33 137.5t33 133.5t14.5 106.5t-17.5 61t-68.5 18h-35l28 150h127q109 0 153 -45t44 -133q0 -59 -16.5 -131t-36 -141.5t-35.5 -130 t-16 -97.5q0 -45 29.5 -82t113.5 -39l-37 -164q-51 -2 -86 -16t-58.5 -36.5t-36.5 -50.5t-20 -54q-10 -47 -14 -88t-8 -81t-10.5 -84t-16.5 -97q-16 -84 -39.5 -139.5t-58.5 -89.5t-84 -48t-117 -14h-131z" /> +<glyph unicode="~" d="M78 643q66 117 143.5 163t149.5 46q57 0 103 -24.5t85 -54.5t75 -54.5t77 -24.5q82 0 139 115l143 -96q-66 -117 -142.5 -163t-150.5 -46q-57 0 -102 24.5t-84 54t-76 54.5t-78 25q-82 0 -139 -115z" /> +<glyph unicode="¡" horiz-adv-x="677" d="M35 -356l59 258l170 651h185l-95 -651l-39 -258h-280zM246 836q0 39 14 75.5t41 65.5t63.5 46t81.5 17q66 0 106 -42t40 -109q0 -37 -14.5 -75t-41 -66.5t-63.5 -47t-82 -18.5q-66 0 -105.5 44t-39.5 110z" /> +<glyph unicode="¢" d="M147 586q0 129 45.5 234.5t120 182t170 124t195.5 61.5l39 196h155l-38 -198q74 -14 127 -54t98 -90l-162 -153q-29 27 -54.5 44t-54.5 28l-114 -576q90 12 164 68l86 -181q-70 -45 -142.5 -73.5t-152.5 -38.5l-39 -197h-156l39 199q-147 23 -236.5 132t-89.5 292z M422 629q0 -164 100 -223l109 546q-92 -33 -150.5 -118.5t-58.5 -204.5z" /> +<glyph unicode="£" d="M-4 0l35 172q125 53 198.5 150.5t81.5 226.5h-194l37 190l147 11q-4 31 -6 59.5t-2 54.5q0 106 38 194.5t102.5 152t152.5 97t188 33.5q109 0 186.5 -47t135.5 -127l-181 -147q-35 47 -69.5 71.5t-85.5 24.5q-84 0 -145.5 -69.5t-61.5 -219.5q0 -18 1 -37.5t3 -39.5h299 l-41 -201h-250q-8 -92 -38.5 -163t-90.5 -142l-2 -8h481l-41 -236h-878z" /> +<glyph unicode="¤" d="M14 336l136 115q-35 66 -35 155q0 92 32.5 170t85.5 137l-92 117l148 127l104 -129q109 57 223 57q59 0 110.5 -14t92.5 -39l146 127l120 -143l-135 -117q16 -35 24.5 -71.5t8.5 -79.5q0 -92 -31.5 -169t-85.5 -137l101 -123l-150 -129l-108 136q-106 -57 -228 -58 q-117 0 -198 51l-148 -126zM371 629q0 -78 37.5 -120t103.5 -42q41 0 80 19.5t68.5 53t48 82t18.5 103.5q0 78 -37.5 120t-103.5 42q-41 0 -80 -19.5t-68.5 -53.5t-48 -82t-18.5 -103z" /> +<glyph unicode="¥" d="M37 305l26 135h304l22 117h-303l27 135h243l-168 611h285l47 -289q10 -68 20.5 -135.5t24.5 -135.5h6q41 70 79 137.5t77 133.5l160 289h278l-409 -611h241l-26 -135h-303l-25 -117h303l-26 -135h-304l-61 -305h-276l61 305h-303z" /> +<glyph unicode="¦" horiz-adv-x="522" d="M180 420h176v-932h-176v932zM180 633v903h176v-903h-176z" /> +<glyph unicode="§" horiz-adv-x="1034" d="M2 8l139 174q51 -53 122 -95t145 -42q57 0 88.5 26.5t31.5 73.5q0 37 -31.5 67t-78.5 60.5t-103.5 64.5t-103.5 77t-79 101t-32 136q0 104 60.5 181t152.5 122q-33 55 -32 123q0 72 25.5 133.5t73.5 106.5t114.5 70.5t146.5 25.5q96 0 186.5 -43t161.5 -121l-141 -155 q-41 41 -94.5 73.5t-114.5 32.5q-43 0 -75 -23.5t-32 -70.5q0 -35 33 -64.5t82 -60.5t106.5 -66.5t106.5 -81t82 -102.5t33 -133q0 -115 -57.5 -190.5t-155.5 -126.5q10 -23 15 -48.5t5 -54.5q0 -78 -28.5 -140.5t-79.5 -107.5t-123 -69.5t-158 -24.5q-98 0 -202.5 45 t-188.5 127zM340 684q0 -43 28.5 -77t73.5 -63.5t97.5 -59t101.5 -66.5q43 23 66.5 57.5t23.5 89.5q0 41 -28.5 75t-71.5 63.5t-95.5 60.5t-101.5 65q-41 -23 -67.5 -57.5t-26.5 -87.5z" /> +<glyph unicode="¨" horiz-adv-x="1093" d="M373 1292q0 61 44 107.5t110 46.5q51 0 86 -33t35 -90q0 -63 -44 -107.5t-110 -44.5q-51 0 -86 31t-35 90zM764 1292q0 61 43 107.5t109 46.5q53 0 87 -33t34 -90q0 -63 -44 -107.5t-110 -44.5q-51 0 -85 31t-34 90z" /> +<glyph unicode="©" horiz-adv-x="1376" d="M61 551q0 162 56.5 306t158 252t242.5 170t309 62q119 0 220.5 -43t174 -117.5t113.5 -179t41 -227.5q0 -162 -56 -306t-157.5 -251.5t-243 -171t-309.5 -63.5q-121 0 -221 43t-173 118.5t-114 180t-41 227.5zM193 563q0 -94 27.5 -177t80.5 -145.5t134 -98.5t186 -36 q133 0 247.5 52.5t198.5 142.5t131 209t47 252q0 92 -27.5 175t-81 145.5t-134.5 99.5t-185 37q-133 0 -247.5 -53.5t-198.5 -142.5t-131 -209t-47 -251zM356 578q0 111 41 198.5t106.5 149t145.5 95.5t160 34q72 0 125 -34t84 -73l-117 -114q-49 57 -117 57 q-39 0 -78.5 -21.5t-72.5 -59.5t-53.5 -91t-20.5 -117q0 -84 42 -130t120 -46q43 0 75.5 14.5t75.5 42.5l78 -123q-125 -100 -274 -100q-143 0 -231.5 84t-88.5 234z" /> +<glyph unicode="ª" horiz-adv-x="747" d="M111 768q0 96 30.5 180t80.5 145.5t115.5 97.5t137.5 36q43 0 80 -23.5t57 -64.5h9l30 71h160l-135 -673h-160l4 86h-8q-45 -47 -100.5 -75t-108.5 -28q-90 0 -141 63.5t-51 184.5zM313 793q0 -59 20.5 -86t51.5 -27q35 0 72 21.5t71 76.5l41 228q-14 33 -36.5 47 t-45.5 14q-33 0 -64.5 -21.5t-56 -58.5t-39 -87t-14.5 -107z" /> +<glyph unicode="«" horiz-adv-x="942" d="M82 424l37 201l313 284l86 -92l-272 -311l160 -316l-111 -71zM467 424l37 201l313 284l86 -92l-272 -311l160 -316l-111 -71z" /> +<glyph unicode="¬" d="M98 578v198h895v-581h-200v383h-695z" /> +<glyph unicode="­" horiz-adv-x="655" d="M72 420l43 198h479l-43 -198h-479z" /> +<glyph unicode="®" horiz-adv-x="909" d="M166 1001q0 88 30.5 171t87 147.5t134.5 103.5t174 39q72 0 135.5 -26.5t112.5 -74.5t77.5 -114.5t30.5 -146.5q0 -88 -31.5 -171t-88 -147.5t-134.5 -103.5t-172 -39q-72 0 -136 26.5t-113.5 74.5t-78 115t-28.5 146zM270 1010q0 -57 18.5 -107.5t52.5 -87.5t81 -58.5 t106 -21.5q70 0 127.5 29t99.5 78t65.5 113.5t23.5 136.5q0 57 -18.5 107t-52.5 87t-82 58.5t-105 21.5q-70 0 -127.5 -28.5t-99.5 -78t-65.5 -114t-23.5 -135.5zM362 852l82 401h168q61 0 99.5 -30.5t38.5 -87.5q0 -41 -26 -77t-75 -54l51 -152h-110l-37 127h-53l-27 -127 h-111zM514 1057h33q41 0 61.5 19.5t20.5 47.5q0 23 -12.5 35t-43.5 12h-36z" /> +<glyph unicode="¯" horiz-adv-x="1093" d="M416 1214l37 179h539l-37 -179h-539z" /> +<glyph unicode="°" horiz-adv-x="712" d="M193 1083q0 68 25.5 126.5t68.5 101.5t99 68.5t118 25.5q115 0 185.5 -70.5t70.5 -187.5q0 -68 -25.5 -126t-68.5 -101t-99.5 -69t-117.5 -26q-113 0 -184.5 71t-71.5 187zM344 1085q0 -49 29.5 -85.5t87.5 -36.5q33 0 60.5 15t47 39.5t30.5 57.5t11 70q0 49 -29.5 86 t-86.5 37q-68 0 -109 -55.5t-41 -127.5z" /> +<glyph unicode="±" d="M98 0v199h895v-199h-895zM98 637v199h344v319h207v-319h344v-199h-348v-322h-205v322h-342z" /> +<glyph unicode="²" horiz-adv-x="745" d="M156 901l22 113q215 141 321.5 246.5t106.5 195.5q0 41 -24.5 65.5t-73.5 24.5q-33 0 -62.5 -20.5t-64.5 -53.5l-115 121q70 63 132.5 97t146.5 34q123 0 194.5 -61.5t71.5 -169.5q0 -111 -79 -209t-214 -209h240l-35 -174h-567z" /> +<glyph unicode="³" horiz-adv-x="737" d="M162 1040l133 97q57 -96 149 -97q59 0 95.5 27t36.5 74t-36 76.5t-141 29.5l25 125q57 0 94 10.5t58.5 26.5t29.5 36.5t8 43.5q0 35 -23.5 55.5t-64.5 20.5q-37 0 -66.5 -11.5t-70.5 -40.5l-86 136q72 43 134.5 59t133.5 16q111 0 179.5 -54t68.5 -144q0 -156 -164 -219 q57 -29 88 -75t31 -100q0 -61 -24.5 -108t-67.5 -80t-99.5 -50.5t-119.5 -17.5q-111 0 -184.5 46.5t-116.5 117.5z" /> +<glyph unicode="´" horiz-adv-x="1093" d="M510 1174l238 305h281l-306 -305h-213z" /> +<glyph unicode="µ" horiz-adv-x="1118" d="M-47 -369l274 1385h281l-121 -600q-6 -31 -11 -53.5t-5 -43.5q0 -104 104 -104q84 0 203 131l131 670h276l-196 -1016h-227l4 137h-9q-47 -63 -106 -105t-121 -42q-41 0 -74.5 11t-50.5 44l-18 -125l-56 -289h-278z" /> +<glyph unicode="¶" horiz-adv-x="1245" d="M141 784q0 143 50.5 248t133.5 172.5t191.5 99t224.5 31.5h90l-186 -925h-61q-88 0 -168 24.5t-141.5 71.5t-97.5 117.5t-36 160.5zM643 -164l297 1499h281l-297 -1499h-281z" /> +<glyph unicode="·" horiz-adv-x="595" d="M155 641q0 37 14.5 75t41 66.5t63.5 47t82 18.5q66 0 104.5 -44t38.5 -110q0 -39 -14 -75.5t-41 -65.5t-63.5 -46.5t-81.5 -17.5q-66 0 -105 42t-39 110z" /> +<glyph unicode="¸" horiz-adv-x="1093" d="M170 -338q78 8 131.5 32.5t53.5 69.5q0 25 -19.5 44.5t-74.5 35.5l110 164h164l-61 -100q39 -16 64.5 -44t25.5 -77q0 -59 -32 -102t-85 -72t-123 -44t-145 -20z" /> +<glyph unicode="¹" horiz-adv-x="770" d="M348 1485l25 127q84 12 134 32.5t105 55.5h160l-155 -799h-209l118 584h-178z" /> +<glyph unicode="º" horiz-adv-x="733" d="M106 799q0 98 33 177t86.5 134t123 86t140.5 31q117 0 193 -73t76 -206q0 -98 -33 -177t-86 -134t-121.5 -86t-140.5 -31q-117 0 -194 73t-77 206zM305 803q0 -59 21.5 -93t66.5 -34q37 0 68 20.5t53.5 57.5t34.5 86t12 104q0 59 -21.5 92t-66.5 33q-37 0 -67.5 -20.5 t-53 -56.5t-35 -85t-12.5 -104z" /> +<glyph unicode="»" horiz-adv-x="942" d="M55 211l273 311l-162 316l113 71l213 -305l-37 -201l-314 -284zM440 211l273 311l-162 316l113 71l213 -305l-37 -201l-314 -284z" /> +<glyph unicode="¼" horiz-adv-x="1591" d="M217 1137l25 127q84 12 134 32.5t105 55.5h160l-155 -799h-209l118 584h-178zM252 -25l970 1401h164l-970 -1401h-164zM832 182l22 107l400 510h252l-95 -480h117l-29 -137h-114l-35 -182h-178l37 182h-377zM1045 319h190l21 99l55 246h-8l-123 -177z" /> +<glyph unicode="½" horiz-adv-x="1665" d="M209 1137l25 127q84 12 134 32.5t105 55.5h160l-155 -799h-209l118 584h-178zM224 -25l970 1401h164l-970 -1401h-164zM906 0l22 113q215 141 321.5 246.5t106.5 195.5q0 41 -24.5 65.5t-73.5 24.5q-33 0 -62.5 -20.5t-64.5 -53.5l-115 121q70 63 132.5 97t146.5 34 q123 0 194.5 -61.5t71.5 -169.5q0 -111 -79 -209t-214 -209h240l-35 -174h-567z" /> +<glyph unicode="¾" horiz-adv-x="1613" d="M80 692l133 97q57 -96 149 -97q59 0 95.5 27t36.5 74t-36 76.5t-141 29.5l25 125q57 0 94 10.5t58.5 26.5t29.5 36.5t8 43.5q0 35 -23.5 55.5t-64.5 20.5q-37 0 -66.5 -11.5t-70.5 -40.5l-86 136q72 43 134.5 59t133.5 16q111 0 179.5 -54t68.5 -144q0 -156 -164 -219 q57 -29 88 -75t31 -100q0 -61 -24.5 -108t-67.5 -80t-99.5 -50.5t-119.5 -17.5q-111 0 -184.5 46.5t-116.5 117.5zM301 -25l970 1401h164l-970 -1401h-164zM856 182l22 107l400 510h252l-95 -480h117l-29 -137h-114l-35 -182h-178l37 182h-377zM1069 319h190l21 99l55 246 h-8l-123 -177z" /> +<glyph unicode="¿" horiz-adv-x="909" d="M-2 -70q0 80 26.5 138.5t67.5 105.5t90 88t93 84t78 95.5t44 121.5l238 -22q-8 -82 -38 -142.5t-71 -107.5t-86 -84t-83 -74t-62.5 -75t-24.5 -87q0 -59 36 -92t97 -33q80 0 156 78l143 -157q-72 -72 -156.5 -110t-176.5 -38q-84 0 -151.5 21.5t-117 61.5t-76 97.5 t-26.5 130.5zM406 836q0 39 14 75.5t39.5 65.5t62.5 46t82 17q66 0 106 -42t40 -109q0 -37 -14.5 -74t-41 -65.5t-63.5 -47t-82 -18.5q-66 0 -104.5 43t-38.5 109z" /> +<glyph unicode="À" horiz-adv-x="1122" d="M-127 0l705 1335h335l134 -1335h-293l-17 336h-397l-158 -336h-309zM440 547h287l-8 176q-4 98 -8 194.5t-9 202.5h-8q-43 -104 -84 -200.5t-88 -196.5zM469 1679h286l115 -241h-211z" /> +<glyph unicode="Á" horiz-adv-x="1122" d="M-127 0l705 1335h335l134 -1335h-293l-17 336h-397l-158 -336h-309zM440 547h287l-8 176q-4 98 -8 194.5t-9 202.5h-8q-43 -104 -84 -200.5t-88 -196.5zM585 1438l209 241h303l-282 -241h-230z" /> +<glyph unicode="Â" horiz-adv-x="1122" d="M-127 0l705 1335h335l134 -1335h-293l-17 336h-397l-158 -336h-309zM409 1438l238 241h270l141 -241h-204l-86 129h-5l-131 -129h-223zM440 547h287l-8 176q-4 98 -8 194.5t-9 202.5h-8q-43 -104 -84 -200.5t-88 -196.5z" /> +<glyph unicode="Ã" horiz-adv-x="1122" d="M-127 0l705 1335h335l134 -1335h-293l-17 336h-397l-158 -336h-309zM405 1440q35 129 103.5 197.5t142.5 68.5q45 0 75.5 -15.5t55 -33t48.5 -32.5t54 -15q49 0 86 92h148q-35 -129 -104.5 -197.5t-143.5 -68.5q-45 0 -76 15t-55.5 32.5t-47 33t-52.5 15.5q-49 0 -89 -92 h-145zM440 547h287l-8 176q-4 98 -8 194.5t-9 202.5h-8q-43 -104 -84 -200.5t-88 -196.5z" /> +<glyph unicode="Ä" horiz-adv-x="1122" d="M-127 0l705 1335h335l134 -1335h-293l-17 336h-397l-158 -336h-309zM434 1554q0 27 11 54.5t31.5 50t48.5 36t60 13.5q47 0 82 -30.5t35 -86.5q0 -57 -41.5 -106t-107.5 -49q-51 0 -85 31.5t-34 86.5zM440 547h287l-8 176q-4 98 -8 194.5t-9 202.5h-8 q-43 -104 -84 -200.5t-88 -196.5zM825 1554q0 27 11 54.5t30.5 50t47.5 36t60 13.5q47 0 82 -30.5t35 -86.5q0 -57 -41.5 -106t-107.5 -49q-49 0 -83 31.5t-34 86.5z" /> +<glyph unicode="Å" horiz-adv-x="1122" d="M-127 0l705 1335h335l134 -1335h-293l-17 336h-397l-158 -336h-309zM440 547h287l-8 176q-4 98 -8 194.5t-9 202.5h-8q-43 -104 -84 -200.5t-88 -196.5zM553 1602q0 45 18 86t50 71.5t74 49t91 18.5q41 0 78 -11.5t65.5 -33t46 -54t17.5 -77.5q0 -47 -18.5 -88t-50 -72 t-75 -48.5t-90.5 -17.5q-86 0 -146 42t-60 135zM688 1612q0 -33 20.5 -54.5t54.5 -21.5q37 0 65 30.5t28 73.5q0 33 -19.5 54.5t-54.5 21.5q-41 0 -67.5 -31.5t-26.5 -72.5z" /> +<glyph unicode="Æ" horiz-adv-x="1716" d="M-72 0l865 1335h962l-47 -235h-496l-55 -291h418l-47 -236h-416l-72 -337h514l-47 -236h-792l63 317h-342l-192 -317h-316zM567 537h254l119 596h-6q-61 -100 -119.5 -192.5t-118.5 -190.5z" /> +<glyph unicode="Ç" horiz-adv-x="1161" d="M115 535q0 172 55 322.5t150.5 262t225.5 176t279 64.5q117 0 208 -56.5t149 -156.5l-193 -148q-37 59 -80 88t-98 29q-86 0 -159.5 -46t-129 -124t-87.5 -180t-32 -213q0 -156 66 -246t213 -90q59 0 116.5 28.5t110.5 73.5l117 -180q-31 -29 -72 -57.5t-92 -52 t-111.5 -39t-127.5 -15.5q-117 0 -210.5 38t-160 111t-102 176.5t-35.5 234.5zM315 -338q78 8 131.5 32.5t53.5 69.5q0 25 -19.5 44.5t-74.5 35.5l110 164h164l-61 -100q39 -16 64.5 -44t25.5 -77q0 -59 -32 -102t-85 -72t-123 -44t-145 -20z" /> +<glyph unicode="È" horiz-adv-x="1079" d="M57 0l269 1335h790l-45 -235h-514l-57 -291h436l-45 -236h-436l-70 -337h530l-45 -236h-813zM474 1679h286l115 -241h-211z" /> +<glyph unicode="É" horiz-adv-x="1079" d="M57 0l269 1335h790l-45 -235h-514l-57 -291h436l-45 -236h-436l-70 -337h530l-45 -236h-813zM590 1438l209 241h303l-282 -241h-230z" /> +<glyph unicode="Ê" horiz-adv-x="1079" d="M57 0l269 1335h790l-45 -235h-514l-57 -291h436l-45 -236h-436l-70 -337h530l-45 -236h-813zM414 1438l238 241h270l141 -241h-204l-86 129h-5l-131 -129h-223z" /> +<glyph unicode="Ë" horiz-adv-x="1079" d="M57 0l269 1335h790l-45 -235h-514l-57 -291h436l-45 -236h-436l-70 -337h530l-45 -236h-813zM439 1554q0 27 11 54.5t31.5 50t48.5 36t60 13.5q47 0 82 -30.5t35 -86.5q0 -57 -41.5 -106t-107.5 -49q-51 0 -85 31.5t-34 86.5zM830 1554q0 27 11 54.5t30.5 50t47.5 36 t60 13.5q47 0 82 -30.5t35 -86.5q0 -57 -41.5 -106t-107.5 -49q-49 0 -83 31.5t-34 86.5z" /> +<glyph unicode="Ì" horiz-adv-x="602" d="M57 0l269 1335h280l-266 -1335h-283zM195 1679h286l115 -241h-211z" /> +<glyph unicode="Í" horiz-adv-x="602" d="M57 0l269 1335h280l-266 -1335h-283zM311 1438l209 241h303l-282 -241h-230z" /> +<glyph unicode="Î" horiz-adv-x="602" d="M57 0l269 1335h280l-266 -1335h-283zM135 1438l238 241h270l141 -241h-204l-86 129h-5l-131 -129h-223z" /> +<glyph unicode="Ï" horiz-adv-x="602" d="M57 0l269 1335h280l-266 -1335h-283zM160 1554q0 27 11 54.5t31.5 50t48.5 36t60 13.5q47 0 82 -30.5t35 -86.5q0 -57 -41.5 -106t-107.5 -49q-51 0 -85 31.5t-34 86.5zM551 1554q0 27 11 54.5t30.5 50t47.5 36t60 13.5q47 0 82 -30.5t35 -86.5q0 -57 -41.5 -106 t-107.5 -49q-49 0 -83 31.5t-34 86.5z" /> +<glyph unicode="Ð" horiz-adv-x="1298" d="M78 629l24 127l146 10l114 569h293q281 0 435.5 -129t154.5 -395q0 -197 -54 -348.5t-151.5 -255t-232.5 -155.5t-295 -52h-418l127 629h-143zM422 225h84q96 0 179 34t143.5 103.5t95 177t34.5 253.5q0 166 -83.5 241.5t-225.5 75.5h-53l-68 -344h256l-30 -137h-252z " /> +<glyph unicode="Ñ" horiz-adv-x="1316" d="M57 0l269 1335h272l217 -696l72 -293h8q6 51 10 112.5t10.5 124t14.5 126t20 120.5l103 506h266l-266 -1335h-271l-219 694l-67 297h-9q-10 -113 -23 -237.5t-36 -241.5l-102 -512h-269zM510 1440q35 129 103.5 197.5t142.5 68.5q45 0 75.5 -15.5t55 -33t48.5 -32.5 t54 -15q49 0 86 92h148q-35 -129 -104.5 -197.5t-143.5 -68.5q-45 0 -76 15t-55.5 32.5t-47 33t-52.5 15.5q-49 0 -89 -92h-145z" /> +<glyph unicode="Ò" horiz-adv-x="1351" d="M117 541q0 176 55 326.5t148.5 260t216 171t258.5 61.5q115 0 207 -39t157.5 -111.5t101 -177t35.5 -237.5q0 -176 -55 -327t-148.5 -260.5t-216.5 -171t-258 -61.5q-115 0 -207 38t-157.5 111t-101 178.5t-35.5 238.5zM403 559q0 -160 59.5 -251t170.5 -91 q72 0 139.5 44t120.5 120t85 177t32 218q0 160 -58.5 250t-169.5 90q-72 0 -139.5 -44t-120.5 -118.5t-86 -176t-33 -218.5zM582 1679h286l115 -241h-211z" /> +<glyph unicode="Ó" horiz-adv-x="1351" d="M117 541q0 176 55 326.5t148.5 260t216 171t258.5 61.5q115 0 207 -39t157.5 -111.5t101 -177t35.5 -237.5q0 -176 -55 -327t-148.5 -260.5t-216.5 -171t-258 -61.5q-115 0 -207 38t-157.5 111t-101 178.5t-35.5 238.5zM403 559q0 -160 59.5 -251t170.5 -91 q72 0 139.5 44t120.5 120t85 177t32 218q0 160 -58.5 250t-169.5 90q-72 0 -139.5 -44t-120.5 -118.5t-86 -176t-33 -218.5zM698 1438l209 241h303l-282 -241h-230z" /> +<glyph unicode="Ô" horiz-adv-x="1351" d="M117 541q0 176 55 326.5t148.5 260t216 171t258.5 61.5q115 0 207 -39t157.5 -111.5t101 -177t35.5 -237.5q0 -176 -55 -327t-148.5 -260.5t-216.5 -171t-258 -61.5q-115 0 -207 38t-157.5 111t-101 178.5t-35.5 238.5zM403 559q0 -160 59.5 -251t170.5 -91 q72 0 139.5 44t120.5 120t85 177t32 218q0 160 -58.5 250t-169.5 90q-72 0 -139.5 -44t-120.5 -118.5t-86 -176t-33 -218.5zM522 1438l238 241h270l141 -241h-204l-86 129h-5l-131 -129h-223z" /> +<glyph unicode="Õ" horiz-adv-x="1351" d="M117 541q0 176 55 326.5t148.5 260t216 171t258.5 61.5q115 0 207 -39t157.5 -111.5t101 -177t35.5 -237.5q0 -176 -55 -327t-148.5 -260.5t-216.5 -171t-258 -61.5q-115 0 -207 38t-157.5 111t-101 178.5t-35.5 238.5zM403 559q0 -160 59.5 -251t170.5 -91 q72 0 139.5 44t120.5 120t85 177t32 218q0 160 -58.5 250t-169.5 90q-72 0 -139.5 -44t-120.5 -118.5t-86 -176t-33 -218.5zM518 1440q35 129 103.5 197.5t142.5 68.5q45 0 75.5 -15.5t55 -33t48.5 -32.5t54 -15q49 0 86 92h148q-35 -129 -104.5 -197.5t-143.5 -68.5 q-45 0 -76 15t-55.5 32.5t-47 33t-52.5 15.5q-49 0 -89 -92h-145z" /> +<glyph unicode="Ö" horiz-adv-x="1351" d="M117 541q0 176 55 326.5t148.5 260t216 171t258.5 61.5q115 0 207 -39t157.5 -111.5t101 -177t35.5 -237.5q0 -176 -55 -327t-148.5 -260.5t-216.5 -171t-258 -61.5q-115 0 -207 38t-157.5 111t-101 178.5t-35.5 238.5zM403 559q0 -160 59.5 -251t170.5 -91 q72 0 139.5 44t120.5 120t85 177t32 218q0 160 -58.5 250t-169.5 90q-72 0 -139.5 -44t-120.5 -118.5t-86 -176t-33 -218.5zM547 1554q0 27 11 54.5t31.5 50t48.5 36t60 13.5q47 0 82 -30.5t35 -86.5q0 -57 -41.5 -106t-107.5 -49q-51 0 -85 31.5t-34 86.5zM938 1554 q0 27 11 54.5t30.5 50t47.5 36t60 13.5q47 0 82 -30.5t35 -86.5q0 -57 -41.5 -106t-107.5 -49q-49 0 -83 31.5t-34 86.5z" /> +<glyph unicode="×" d="M129 383l279 293l-279 293l137 137l281 -291l278 291l140 -137l-281 -293l281 -293l-140 -137l-278 293l-281 -293z" /> +<glyph unicode="Ø" horiz-adv-x="1351" d="M-20 33l198 205q-29 63 -45 138t-16 165q0 176 55 326.5t148.5 260t216 171t258.5 61.5q213 0 346 -129l192 199l123 -115l-217 -225q57 -127 57 -295q0 -176 -55 -327t-148.5 -260.5t-216 -171t-258.5 -61.5q-209 0 -337 123l-175 -180zM403 559q0 -23 1.5 -43t3.5 -41 l540 557q-61 84 -166 84q-72 0 -139.5 -44t-120.5 -118.5t-86 -176t-33 -218.5zM471 295q61 -78 162 -78q72 0 139.5 44t120.5 120t85 177t32 218q0 20 -1 37.5t-3 36.5z" /> +<glyph unicode="Ù" horiz-adv-x="1316" d="M154 440q0 45 8 103.5t18 111.5l137 680h281l-145 -731q-8 -41 -12.5 -80t-4.5 -75q0 -113 45 -172.5t158 -59.5q96 0 159.5 79t100.5 265l156 774h274l-155 -770q-61 -307 -195.5 -448.5t-347.5 -141.5q-238 0 -357.5 114t-119.5 351zM566 1679h286l115 -241h-211z" /> +<glyph unicode="Ú" horiz-adv-x="1316" d="M154 440q0 45 8 103.5t18 111.5l137 680h281l-145 -731q-8 -41 -12.5 -80t-4.5 -75q0 -113 45 -172.5t158 -59.5q96 0 159.5 79t100.5 265l156 774h274l-155 -770q-61 -307 -195.5 -448.5t-347.5 -141.5q-238 0 -357.5 114t-119.5 351zM682 1438l209 241h303l-282 -241 h-230z" /> +<glyph unicode="Û" horiz-adv-x="1316" d="M154 440q0 45 8 103.5t18 111.5l137 680h281l-145 -731q-8 -41 -12.5 -80t-4.5 -75q0 -113 45 -172.5t158 -59.5q96 0 159.5 79t100.5 265l156 774h274l-155 -770q-61 -307 -195.5 -448.5t-347.5 -141.5q-238 0 -357.5 114t-119.5 351zM506 1438l238 241h270l141 -241 h-204l-86 129h-5l-131 -129h-223z" /> +<glyph unicode="Ü" horiz-adv-x="1316" d="M154 440q0 45 8 103.5t18 111.5l137 680h281l-145 -731q-8 -41 -12.5 -80t-4.5 -75q0 -113 45 -172.5t158 -59.5q96 0 159.5 79t100.5 265l156 774h274l-155 -770q-61 -307 -195.5 -448.5t-347.5 -141.5q-238 0 -357.5 114t-119.5 351zM531 1554q0 27 11 54.5t31.5 50 t48.5 36t60 13.5q47 0 82 -30.5t35 -86.5q0 -57 -41.5 -106t-107.5 -49q-51 0 -85 31.5t-34 86.5zM922 1554q0 27 11 54.5t30.5 50t47.5 36t60 13.5q47 0 82 -30.5t35 -86.5q0 -57 -41.5 -106t-107.5 -49q-49 0 -83 31.5t-34 86.5z" /> +<glyph unicode="Ý" d="M164 1335h291l57 -321q14 -76 25.5 -145.5t25.5 -147.5h8q41 78 80 148.5t84 148.5l187 317h301l-566 -852l-96 -483h-278l94 483zM526 1438l209 241h303l-282 -241h-230z" /> +<glyph unicode="Þ" horiz-adv-x="1218" d="M57 0l269 1352h280l-43 -213h180q92 0 170 -19.5t135.5 -61.5t90 -109.5t32.5 -164.5q0 -139 -50 -237t-134 -160.5t-196.5 -91.5t-237.5 -29h-164l-53 -266h-279zM434 489h146q154 0 233.5 63.5t79.5 190.5q0 90 -54.5 131t-154.5 41h-166z" /> +<glyph unicode="ß" horiz-adv-x="1247" d="M29 0l209 1034q18 90 59 168t103.5 135.5t146.5 90t188 32.5q72 0 140.5 -18.5t122 -55t86 -95t32.5 -138.5q0 -57 -17.5 -101t-43 -79t-56 -62.5t-56 -54.5t-43 -52.5t-17.5 -55.5q0 -31 19.5 -56.5t49 -51.5t64.5 -54.5t64.5 -65.5t49 -82t19.5 -104 q0 -76 -29.5 -141.5t-81 -113.5t-122 -76t-150.5 -28q-78 0 -154.5 21.5t-146.5 69.5l115 186q41 -29 86 -48.5t98 -19.5q55 0 90 34t35 87q0 35 -20.5 62.5t-51.5 54.5t-67.5 53.5t-67.5 59t-51.5 71.5t-20.5 92q0 70 37 118t81 92t81 90t37 114q0 59 -27.5 92t-93.5 33 q-43 0 -78 -20.5t-62.5 -55.5t-47 -81t-31.5 -99l-197 -981h-280z" /> +<glyph unicode="à" horiz-adv-x="1130" d="M63 348q0 145 45.5 271t121 220.5t174 147.5t202.5 53q70 0 131.5 -35.5t89.5 -97.5h4l46 109h223l-203 -1016h-227l4 133h-6q-70 -72 -154 -115t-164 -43q-135 0 -211 96.5t-76 276.5zM354 383q0 -92 32 -135t87 -43q51 0 109.5 31.5t107.5 117.5l72 361 q-25 51 -62.5 73.5t-72.5 22.5q-53 0 -102.5 -33t-87.5 -90t-60.5 -135t-22.5 -170zM452 1479h260l115 -305h-193z" /> +<glyph unicode="á" horiz-adv-x="1130" d="M63 348q0 145 45.5 271t121 220.5t174 147.5t202.5 53q70 0 131.5 -35.5t89.5 -97.5h4l46 109h223l-203 -1016h-227l4 133h-6q-70 -72 -154 -115t-164 -43q-135 0 -211 96.5t-76 276.5zM354 383q0 -92 32 -135t87 -43q51 0 109.5 31.5t107.5 117.5l72 361 q-25 51 -62.5 73.5t-72.5 22.5q-53 0 -102.5 -33t-87.5 -90t-60.5 -135t-22.5 -170zM507 1174l238 305h281l-306 -305h-213z" /> +<glyph unicode="â" horiz-adv-x="1130" d="M63 348q0 145 45.5 271t121 220.5t174 147.5t202.5 53q70 0 131.5 -35.5t89.5 -97.5h4l46 109h223l-203 -1016h-227l4 133h-6q-70 -72 -154 -115t-164 -43q-135 0 -211 96.5t-76 276.5zM354 383q0 -92 32 -135t87 -43q51 0 109.5 31.5t107.5 117.5l72 361 q-25 51 -62.5 73.5t-72.5 22.5q-53 0 -102.5 -33t-87.5 -90t-60.5 -135t-22.5 -170zM378 1174l250 305h219l129 -305h-180l-76 165h-8l-139 -165h-195z" /> +<glyph unicode="ã" horiz-adv-x="1130" d="M63 348q0 145 45.5 271t121 220.5t174 147.5t202.5 53q70 0 131.5 -35.5t89.5 -97.5h4l46 109h223l-203 -1016h-227l4 133h-6q-70 -72 -154 -115t-164 -43q-135 0 -211 96.5t-76 276.5zM354 383q0 -92 32 -135t87 -43q51 0 109.5 31.5t107.5 117.5l72 361 q-25 51 -62.5 73.5t-72.5 22.5q-53 0 -102.5 -33t-87.5 -90t-60.5 -135t-22.5 -170zM364 1182q37 131 103.5 196.5t138.5 65.5q45 0 75.5 -14.5t55 -32t48 -31.5t54.5 -14q43 0 82 88h148q-37 -129 -103.5 -195.5t-138.5 -66.5q-47 0 -78 14t-55.5 31.5t-48 32t-54.5 14.5 q-45 0 -79 -88h-148z" /> +<glyph unicode="ä" horiz-adv-x="1130" d="M63 348q0 145 45.5 271t121 220.5t174 147.5t202.5 53q70 0 131.5 -35.5t89.5 -97.5h4l46 109h223l-203 -1016h-227l4 133h-6q-70 -72 -154 -115t-164 -43q-135 0 -211 96.5t-76 276.5zM354 383q0 -92 32 -135t87 -43q51 0 109.5 31.5t107.5 117.5l72 361 q-25 51 -62.5 73.5t-72.5 22.5q-53 0 -102.5 -33t-87.5 -90t-60.5 -135t-22.5 -170zM370 1292q0 61 44 107.5t110 46.5q51 0 86 -33t35 -90q0 -63 -44 -107.5t-110 -44.5q-51 0 -86 31t-35 90zM761 1292q0 61 43 107.5t109 46.5q53 0 87 -33t34 -90q0 -63 -44 -107.5 t-110 -44.5q-51 0 -85 31t-34 90z" /> +<glyph unicode="å" horiz-adv-x="1130" d="M63 348q0 145 45.5 271t121 220.5t174 147.5t202.5 53q70 0 131.5 -35.5t89.5 -97.5h4l46 109h223l-203 -1016h-227l4 133h-6q-70 -72 -154 -115t-164 -43q-135 0 -211 96.5t-76 276.5zM354 383q0 -92 32 -135t87 -43q51 0 109.5 31.5t107.5 117.5l72 361 q-25 51 -62.5 73.5t-72.5 22.5q-53 0 -102.5 -33t-87.5 -90t-60.5 -135t-22.5 -170zM493 1304q0 49 17.5 91.5t48 73t72.5 48t91 17.5q90 0 147.5 -48t57.5 -134q0 -49 -17.5 -91.5t-49 -73t-73.5 -48t-91 -17.5q-90 0 -146.5 47t-56.5 135zM628 1311q0 -35 18.5 -57.5 t53.5 -22.5q37 0 63.5 32.5t26.5 79.5q0 33 -18.5 57.5t-53.5 24.5q-37 0 -63.5 -33.5t-26.5 -80.5z" /> +<glyph unicode="æ" horiz-adv-x="1544" d="M45 229q0 111 48 188t133 124t199 68.5t243 25.5q2 12 2 22.5v20.5q0 76 -35 109.5t-103 33.5q-59 0 -123.5 -21.5t-136.5 -56.5l-61 195q90 45 189.5 73.5t201.5 28.5q90 0 153.5 -32.5t96.5 -104.5q66 66 144.5 101.5t156.5 35.5q92 0 154.5 -29.5t102.5 -81.5 t57.5 -121t17.5 -149q0 -37 -6 -72.5t-13.5 -67.5t-16.5 -55.5t-15 -35.5h-557q-10 -121 50 -181.5t158 -60.5q47 0 97.5 22.5t87.5 49.5l100 -176q-59 -43 -147 -75t-199 -32q-109 0 -195 48.5t-127 117.5q-92 -78 -183 -122t-202 -44q-57 0 -107 17.5t-87 51.5t-57.5 80 t-20.5 105zM317 285q0 -45 32 -70t81 -25q45 0 97.5 30t105.5 91q-4 37 -5 73t3 81q-160 -4 -237 -53.5t-77 -126.5zM899 600h348q4 23 6 38t2 38q0 61 -29.5 105t-107.5 44q-63 0 -124.5 -56t-94.5 -169z" /> +<glyph unicode="ç" horiz-adv-x="907" d="M59 393q0 131 46.5 249t127 207t190 140t234.5 51q96 0 165 -38.5t108 -86.5l-156 -165q-31 33 -61.5 49t-73.5 16q-61 0 -114.5 -32.5t-93.5 -90t-62.5 -132.5t-22.5 -161q0 -92 43 -145t129 -53q53 0 91 20.5t71 44.5l117 -172q-57 -43 -138 -81t-202 -38 q-84 0 -157 28t-126 82t-84 132t-31 176zM149 -338q78 8 131.5 32.5t53.5 69.5q0 25 -19.5 44.5t-74.5 35.5l110 164h164l-61 -100q39 -16 64.5 -44t25.5 -77q0 -59 -32 -102t-85 -72t-123 -44t-145 -20z" /> +<glyph unicode="è" horiz-adv-x="1015" d="M59 410q0 141 50.5 256.5t131.5 198.5t181 129t203 46q90 0 153.5 -29.5t103.5 -81.5t57 -121t17 -149q0 -37 -6 -72.5t-14 -67.5t-17.5 -55.5t-15.5 -35.5h-577q-6 -127 60.5 -184.5t166.5 -57.5q47 0 98 22.5t90 49.5l99 -176q-61 -43 -153.5 -75t-211.5 -32 q-92 0 -169 30t-131 86t-85 136.5t-31 182.5zM348 600h369q10 35 10 76q0 61 -29.5 105t-107.5 44q-72 0 -139.5 -56t-102.5 -169zM432 1479h260l115 -305h-193z" /> +<glyph unicode="é" horiz-adv-x="1015" d="M59 410q0 141 50.5 256.5t131.5 198.5t181 129t203 46q90 0 153.5 -29.5t103.5 -81.5t57 -121t17 -149q0 -37 -6 -72.5t-14 -67.5t-17.5 -55.5t-15.5 -35.5h-577q-6 -127 60.5 -184.5t166.5 -57.5q47 0 98 22.5t90 49.5l99 -176q-61 -43 -153.5 -75t-211.5 -32 q-92 0 -169 30t-131 86t-85 136.5t-31 182.5zM348 600h369q10 35 10 76q0 61 -29.5 105t-107.5 44q-72 0 -139.5 -56t-102.5 -169zM487 1174l238 305h281l-306 -305h-213z" /> +<glyph unicode="ê" horiz-adv-x="1015" d="M59 410q0 141 50.5 256.5t131.5 198.5t181 129t203 46q90 0 153.5 -29.5t103.5 -81.5t57 -121t17 -149q0 -37 -6 -72.5t-14 -67.5t-17.5 -55.5t-15.5 -35.5h-577q-6 -127 60.5 -184.5t166.5 -57.5q47 0 98 22.5t90 49.5l99 -176q-61 -43 -153.5 -75t-211.5 -32 q-92 0 -169 30t-131 86t-85 136.5t-31 182.5zM348 600h369q10 35 10 76q0 61 -29.5 105t-107.5 44q-72 0 -139.5 -56t-102.5 -169zM358 1174l250 305h219l129 -305h-180l-76 165h-8l-139 -165h-195z" /> +<glyph unicode="ë" horiz-adv-x="1015" d="M59 410q0 141 50.5 256.5t131.5 198.5t181 129t203 46q90 0 153.5 -29.5t103.5 -81.5t57 -121t17 -149q0 -37 -6 -72.5t-14 -67.5t-17.5 -55.5t-15.5 -35.5h-577q-6 -127 60.5 -184.5t166.5 -57.5q47 0 98 22.5t90 49.5l99 -176q-61 -43 -153.5 -75t-211.5 -32 q-92 0 -169 30t-131 86t-85 136.5t-31 182.5zM348 600h369q10 35 10 76q0 61 -29.5 105t-107.5 44q-72 0 -139.5 -56t-102.5 -169zM350 1292q0 61 44 107.5t110 46.5q51 0 86 -33t35 -90q0 -63 -44 -107.5t-110 -44.5q-51 0 -86 31t-35 90zM741 1292q0 61 43 107.5t109 46.5 q53 0 87 -33t34 -90q0 -63 -44 -107.5t-110 -44.5q-51 0 -85 31t-34 90z" /> +<glyph unicode="ì" horiz-adv-x="542" d="M29 0l204 1016h279l-203 -1016h-280zM170 1479h260l115 -305h-193z" /> +<glyph unicode="í" horiz-adv-x="542" d="M29 0l204 1016h279l-203 -1016h-280zM225 1174l238 305h281l-306 -305h-213z" /> +<glyph unicode="î" horiz-adv-x="542" d="M29 0l204 1016h279l-203 -1016h-280zM96 1174l250 305h219l129 -305h-180l-76 165h-8l-139 -165h-195z" /> +<glyph unicode="ï" horiz-adv-x="542" d="M29 0l204 1016h279l-203 -1016h-280zM88 1292q0 61 44 107.5t110 46.5q51 0 86 -33t35 -90q0 -63 -44 -107.5t-110 -44.5q-51 0 -86 31t-35 90zM479 1292q0 61 43 107.5t109 46.5q53 0 87 -33t34 -90q0 -63 -44 -107.5t-110 -44.5q-51 0 -85 31t-34 90z" /> +<glyph unicode="ð" horiz-adv-x="1099" d="M70 373q0 100 30.5 200.5t91 180.5t147.5 129t200 49q61 0 116.5 -27.5t89.5 -83.5q-14 166 -94 291l-297 -119l-53 133l254 103q-72 68 -164 125l129 162q76 -41 142.5 -89.5t119.5 -107.5l297 119l54 -133l-256 -103q66 -98 100.5 -216t34.5 -257t-34 -274.5 t-103.5 -242t-173 -172t-244.5 -65.5q-80 0 -150.5 28t-123 80t-83 125t-30.5 165zM322 395q0 -82 40.5 -138t120.5 -56q55 0 99.5 30.5t78 86t56 130t31.5 164.5q-29 43 -72 75t-103 32q-61 0 -108 -28.5t-79 -75t-48 -104.5t-16 -116z" /> +<glyph unicode="ñ" horiz-adv-x="1130" d="M29 0l200 1016h228l-4 -135h8q76 66 160 112.5t182 46.5q127 0 184 -66.5t57 -193.5q0 -35 -4 -70.5t-12 -74.5l-127 -635h-280l120 600q6 31 11.5 53.5t5.5 42.5q0 104 -105 105q-47 0 -97 -32t-116 -99l-131 -670h-280zM422 1182q37 131 103.5 196.5t138.5 65.5 q45 0 75.5 -14.5t55 -32t48 -31.5t54.5 -14q43 0 82 88h148q-37 -129 -103.5 -195.5t-138.5 -66.5q-47 0 -78 14t-55.5 31.5t-48 32t-54.5 14.5q-45 0 -79 -88h-148z" /> +<glyph unicode="ò" horiz-adv-x="1091" d="M61 393q0 147 49.5 267t130.5 204t183 130t207 46q88 0 160.5 -29.5t124 -85t80 -132t28.5 -170.5q0 -147 -49 -267t-130 -204t-183.5 -130.5t-206.5 -46.5q-90 0 -162 30t-124 85t-80 132t-28 171zM344 399q0 -92 35 -145t106 -53q51 0 97.5 31.5t82 87t56 131 t20.5 165.5q0 94 -35.5 146.5t-107.5 52.5q-51 0 -97 -31.5t-81 -87t-55.5 -132.5t-20.5 -165zM452 1479h260l115 -305h-193z" /> +<glyph unicode="ó" horiz-adv-x="1091" d="M61 393q0 147 49.5 267t130.5 204t183 130t207 46q88 0 160.5 -29.5t124 -85t80 -132t28.5 -170.5q0 -147 -49 -267t-130 -204t-183.5 -130.5t-206.5 -46.5q-90 0 -162 30t-124 85t-80 132t-28 171zM344 399q0 -92 35 -145t106 -53q51 0 97.5 31.5t82 87t56 131 t20.5 165.5q0 94 -35.5 146.5t-107.5 52.5q-51 0 -97 -31.5t-81 -87t-55.5 -132.5t-20.5 -165zM507 1174l238 305h281l-306 -305h-213z" /> +<glyph unicode="ô" horiz-adv-x="1091" d="M61 393q0 147 49.5 267t130.5 204t183 130t207 46q88 0 160.5 -29.5t124 -85t80 -132t28.5 -170.5q0 -147 -49 -267t-130 -204t-183.5 -130.5t-206.5 -46.5q-90 0 -162 30t-124 85t-80 132t-28 171zM344 399q0 -92 35 -145t106 -53q51 0 97.5 31.5t82 87t56 131 t20.5 165.5q0 94 -35.5 146.5t-107.5 52.5q-51 0 -97 -31.5t-81 -87t-55.5 -132.5t-20.5 -165zM378 1174l250 305h219l129 -305h-180l-76 165h-8l-139 -165h-195z" /> +<glyph unicode="õ" horiz-adv-x="1091" d="M61 393q0 147 49.5 267t130.5 204t183 130t207 46q88 0 160.5 -29.5t124 -85t80 -132t28.5 -170.5q0 -147 -49 -267t-130 -204t-183.5 -130.5t-206.5 -46.5q-90 0 -162 30t-124 85t-80 132t-28 171zM344 399q0 -92 35 -145t106 -53q51 0 97.5 31.5t82 87t56 131 t20.5 165.5q0 94 -35.5 146.5t-107.5 52.5q-51 0 -97 -31.5t-81 -87t-55.5 -132.5t-20.5 -165zM364 1182q37 131 103.5 196.5t138.5 65.5q45 0 75.5 -14.5t55 -32t48 -31.5t54.5 -14q43 0 82 88h148q-37 -129 -103.5 -195.5t-138.5 -66.5q-47 0 -78 14t-55.5 31.5t-48 32 t-54.5 14.5q-45 0 -79 -88h-148z" /> +<glyph unicode="ö" horiz-adv-x="1091" d="M61 393q0 147 49.5 267t130.5 204t183 130t207 46q88 0 160.5 -29.5t124 -85t80 -132t28.5 -170.5q0 -147 -49 -267t-130 -204t-183.5 -130.5t-206.5 -46.5q-90 0 -162 30t-124 85t-80 132t-28 171zM344 399q0 -92 35 -145t106 -53q51 0 97.5 31.5t82 87t56 131 t20.5 165.5q0 94 -35.5 146.5t-107.5 52.5q-51 0 -97 -31.5t-81 -87t-55.5 -132.5t-20.5 -165zM370 1292q0 61 44 107.5t110 46.5q51 0 86 -33t35 -90q0 -63 -44 -107.5t-110 -44.5q-51 0 -86 31t-35 90zM761 1292q0 61 43 107.5t109 46.5q53 0 87 -33t34 -90 q0 -63 -44 -107.5t-110 -44.5q-51 0 -85 31t-34 90z" /> +<glyph unicode="÷" d="M98 578v198h895v-198h-895zM391 303q0 63 45 106.5t111 43.5t110.5 -43t44.5 -107q0 -66 -44.5 -106.5t-110.5 -40.5t-111 41t-45 106zM391 1049q0 63 45 105t111 42t110.5 -42t44.5 -105q0 -66 -44.5 -109t-110.5 -43t-111 43t-45 109z" /> +<glyph unicode="ø" horiz-adv-x="1091" d="M0 33l121 123q-59 96 -60 237q0 147 49.5 267t130.5 204t183 130t207 46q158 0 262 -92l111 115l90 -80l-125 -129q27 -47 41 -104.5t14 -126.5q0 -147 -49 -267t-130 -205t-183.5 -130.5t-206.5 -45.5q-152 0 -256 88l-111 -114zM324 399q0 -23 2 -32l391 403 q-39 51 -109 51q-68 0 -121 -39t-90 -99t-55 -135t-18 -149zM371 240q39 -45 104 -45q70 0 124 37.5t90 98t54.5 135.5t18.5 146v29z" /> +<glyph unicode="ù" horiz-adv-x="1116" d="M80 238q0 35 4 69.5t12 73.5l127 635h279l-119 -600q-8 -31 -12 -53.5t-4 -43.5q0 -104 102 -104q86 0 203 131l131 670h280l-200 -1016h-228l4 137h-8q-70 -66 -154.5 -114t-177.5 -48q-127 0 -183 67t-56 196zM446 1479h260l115 -305h-193z" /> +<glyph unicode="ú" horiz-adv-x="1116" d="M80 238q0 35 4 69.5t12 73.5l127 635h279l-119 -600q-8 -31 -12 -53.5t-4 -43.5q0 -104 102 -104q86 0 203 131l131 670h280l-200 -1016h-228l4 137h-8q-70 -66 -154.5 -114t-177.5 -48q-127 0 -183 67t-56 196zM501 1174l238 305h281l-306 -305h-213z" /> +<glyph unicode="û" horiz-adv-x="1116" d="M80 238q0 35 4 69.5t12 73.5l127 635h279l-119 -600q-8 -31 -12 -53.5t-4 -43.5q0 -104 102 -104q86 0 203 131l131 670h280l-200 -1016h-228l4 137h-8q-70 -66 -154.5 -114t-177.5 -48q-127 0 -183 67t-56 196zM372 1174l250 305h219l129 -305h-180l-76 165h-8 l-139 -165h-195z" /> +<glyph unicode="ü" horiz-adv-x="1116" d="M80 238q0 35 4 69.5t12 73.5l127 635h279l-119 -600q-8 -31 -12 -53.5t-4 -43.5q0 -104 102 -104q86 0 203 131l131 670h280l-200 -1016h-228l4 137h-8q-70 -66 -154.5 -114t-177.5 -48q-127 0 -183 67t-56 196zM364 1292q0 61 44 107.5t110 46.5q51 0 86 -33t35 -90 q0 -63 -44 -107.5t-110 -44.5q-51 0 -86 31t-35 90zM755 1292q0 61 43 107.5t109 46.5q53 0 87 -33t34 -90q0 -63 -44 -107.5t-110 -44.5q-51 0 -85 31t-34 90z" /> +<glyph unicode="ý" horiz-adv-x="1021" d="M-72 -356l86 200q35 -20 76 -20q55 0 106.5 40t86.5 107l24 52l-176 993h279l47 -459q8 -66 12 -149.5t6 -155.5h8q33 72 68 153.5t67 151.5l213 459h273l-549 -1039q-53 -92 -105.5 -161.5t-109.5 -116.5t-122.5 -71.5t-143.5 -24.5q-29 0 -72 12t-74 29zM440 1174 l238 305h281l-306 -305h-213z" /> +<glyph unicode="þ" horiz-adv-x="1132" d="M-47 -377l364 1813h281l-68 -326l-51 -190h4q68 55 143.5 87.5t151.5 32.5q135 0 211 -96t76 -276q0 -145 -45 -271.5t-121 -220.5t-173.5 -147.5t-201.5 -53.5q-66 0 -119 32t-88 89h-4l-28 -198l-52 -275h-280zM371 299q23 -49 58.5 -71.5t74.5 -22.5q53 0 102 32.5 t87 90t60.5 135.5t22.5 170t-33 135t-86 43q-47 0 -105 -27.5t-103 -99.5z" /> +<glyph unicode="ÿ" horiz-adv-x="1021" d="M-72 -356l86 200q35 -20 76 -20q55 0 106.5 40t86.5 107l24 52l-176 993h279l47 -459q8 -66 12 -149.5t6 -155.5h8q33 72 68 153.5t67 151.5l213 459h273l-549 -1039q-53 -92 -105.5 -161.5t-109.5 -116.5t-122.5 -71.5t-143.5 -24.5q-29 0 -72 12t-74 29zM303 1292 q0 61 44 107.5t110 46.5q51 0 86 -33t35 -90q0 -63 -44 -107.5t-110 -44.5q-51 0 -86 31t-35 90zM694 1292q0 61 43 107.5t109 46.5q53 0 87 -33t34 -90q0 -63 -44 -107.5t-110 -44.5q-51 0 -85 31t-34 90z" /> +<glyph unicode="Œ" horiz-adv-x="1705" d="M117 524q0 197 54 348.5t152.5 255t233.5 155.5t295 52h893l-47 -235h-488l-57 -291h412l-47 -236h-410l-70 -337h506l-47 -236h-790q-281 0 -435.5 129t-154.5 395zM403 543q0 -166 85 -242t227 -76h43l176 885h-76q-96 0 -179 -34t-144.5 -103.5t-96.5 -177t-35 -252.5 z" /> +<glyph unicode="œ" horiz-adv-x="1634" d="M61 393q0 147 48.5 267t127 204t177 130t198.5 46q113 0 180.5 -50t108.5 -144q72 94 162 144t178 50q92 0 154.5 -29.5t102.5 -81.5t57.5 -121t17.5 -149q0 -37 -6 -72.5t-13.5 -67.5t-16.5 -55.5t-15 -35.5h-555q-4 -127 55 -184.5t149 -57.5q47 0 98.5 22.5t88.5 49.5 l100 -176q-61 -43 -153.5 -75t-210.5 -32q-98 0 -174 52.5t-117 150.5q-72 -98 -168.5 -150.5t-196.5 -52.5q-86 0 -155.5 30t-118.5 85t-76 132t-27 171zM344 399q0 -92 35 -145t106 -53q47 0 90 31.5t76 87t52.5 131t19.5 165.5q0 94 -34.5 146.5t-106.5 52.5 q-45 0 -87 -31.5t-76 -87t-54.5 -132.5t-20.5 -165zM989 600h346q4 16 6 34.5t2 41.5q0 61 -29.5 105t-105.5 44q-66 0 -127 -56t-92 -169z" /> +<glyph unicode="Ÿ" d="M164 1335h291l57 -321q14 -76 25.5 -145.5t25.5 -147.5h8q41 78 80 148.5t84 148.5l187 317h301l-566 -852l-96 -483h-278l94 483zM375 1554q0 27 11 54.5t31.5 50t48.5 36t60 13.5q47 0 82 -30.5t35 -86.5q0 -57 -41.5 -106t-107.5 -49q-51 0 -85 31.5t-34 86.5z M766 1554q0 27 11 54.5t30.5 50t47.5 36t60 13.5q47 0 82 -30.5t35 -86.5q0 -57 -41.5 -106t-107.5 -49q-49 0 -83 31.5t-34 86.5z" /> +<glyph unicode="ˆ" horiz-adv-x="1093" d="M381 1174l250 305h219l129 -305h-180l-76 165h-8l-139 -165h-195z" /> +<glyph unicode="˜" horiz-adv-x="1093" d="M367 1182q37 131 103.5 196.5t138.5 65.5q45 0 75.5 -14.5t55 -32t48 -31.5t54.5 -14q43 0 82 88h148q-37 -129 -103.5 -195.5t-138.5 -66.5q-47 0 -78 14t-55.5 31.5t-48 32t-54.5 14.5q-45 0 -79 -88h-148z" /> +<glyph unicode=" " horiz-adv-x="913" /> +<glyph unicode=" " horiz-adv-x="1827" /> +<glyph unicode=" " horiz-adv-x="913" /> +<glyph unicode=" " horiz-adv-x="1827" /> +<glyph unicode=" " horiz-adv-x="609" /> +<glyph unicode=" " horiz-adv-x="456" /> +<glyph unicode=" " horiz-adv-x="304" /> +<glyph unicode=" " horiz-adv-x="304" /> +<glyph unicode=" " horiz-adv-x="228" /> +<glyph unicode=" " horiz-adv-x="365" /> +<glyph unicode=" " horiz-adv-x="101" /> +<glyph unicode="‐" horiz-adv-x="655" d="M68 420l43 198h479l-43 -198h-479z" /> +<glyph unicode="‑" horiz-adv-x="655" d="M68 420l43 198h479l-43 -198h-479z" /> +<glyph unicode="‒" horiz-adv-x="655" d="M68 420l43 198h479l-43 -198h-479z" /> +<glyph unicode="–" horiz-adv-x="950" d="M70 426l36 182h773l-37 -182h-772z" /> +<glyph unicode="—" horiz-adv-x="1579" d="M70 426l36 182h1403l-36 -182h-1403z" /> +<glyph unicode="‘" horiz-adv-x="595" d="M199 924q0 92 28.5 167.5t76.5 134t111.5 98.5t135.5 62l45 -120q-55 -23 -99 -53.5t-73 -64.5t-45.5 -66.5t-16.5 -57.5h11q63 0 105 -34t42 -95q0 -66 -46 -117t-124 -51q-70 0 -110.5 51t-40.5 146z" /> +<glyph unicode="’" horiz-adv-x="595" d="M219 889q57 20 100 52t73 65.5t46.5 66.5t16.5 57h-13q-63 0 -104 34t-41 96q0 66 46 116.5t124 50.5q70 0 110.5 -52t40.5 -146q0 -92 -28.5 -167t-76.5 -133.5t-112.5 -99.5t-136.5 -63z" /> +<glyph unicode="‚" horiz-adv-x="595" d="M4 -201q57 20 100 52t73 65.5t46.5 66.5t16.5 57h-13q-63 0 -104 34t-41 96q0 66 46 116.5t124 50.5q70 0 110.5 -52t40.5 -146q0 -92 -28.5 -167t-76.5 -133.5t-112.5 -99.5t-136.5 -63z" /> +<glyph unicode="“" horiz-adv-x="1044" d="M199 924q0 92 28.5 167.5t76.5 134t111.5 98.5t135.5 62l45 -120q-55 -23 -99 -53.5t-73 -64.5t-45.5 -66.5t-16.5 -57.5h11q63 0 105 -34t42 -95q0 -66 -46 -117t-124 -51q-70 0 -110.5 51t-40.5 146zM648 924q0 92 28.5 167.5t76.5 134t111.5 98.5t135.5 62l45 -120 q-55 -23 -99 -53.5t-73 -64.5t-45.5 -66.5t-16.5 -57.5h11q63 0 105 -34t42 -95q0 -66 -46 -117t-124 -51q-70 0 -110.5 51t-40.5 146z" /> +<glyph unicode="”" horiz-adv-x="1044" d="M219 889q57 20 100 52t73 65.5t46.5 66.5t16.5 57h-13q-63 0 -104 34t-41 96q0 66 46 116.5t124 50.5q70 0 110.5 -52t40.5 -146q0 -92 -28.5 -167t-76.5 -133.5t-112.5 -99.5t-136.5 -63zM668 889q57 20 100 52t73 65.5t46.5 66.5t16.5 57h-13q-63 0 -104 34t-41 96 q0 66 46 116.5t124 50.5q70 0 110.5 -52t40.5 -146q0 -92 -28.5 -167t-76.5 -133.5t-112.5 -99.5t-136.5 -63z" /> +<glyph unicode="„" horiz-adv-x="827" d="M4 -201q57 20 100 52t73 65.5t46.5 66.5t16.5 57h-13q-63 0 -104 34t-41 96q0 66 46 116.5t124 50.5q70 0 110.5 -52t40.5 -146q0 -92 -28.5 -167t-76.5 -133.5t-112.5 -99.5t-136.5 -63zM450 -201q57 20 100 52t73 65.5t46.5 66.5t16.5 57h-13q-63 0 -104 34t-41 96 q0 66 46 116.5t124 50.5q70 0 110.5 -52t40.5 -146q0 -92 -28.5 -167t-76.5 -133.5t-112.5 -99.5t-136.5 -63z" /> +<glyph unicode="•" horiz-adv-x="675" d="M80 506q0 55 20.5 110.5t57.5 99.5t89 71.5t118 27.5q100 0 167.5 -68.5t67.5 -177.5q0 -55 -20.5 -110.5t-57.5 -99.5t-90.5 -71.5t-116.5 -27.5q-102 0 -168.5 68.5t-66.5 177.5z" /> +<glyph unicode="…" horiz-adv-x="2000" d="M143 127q0 37 14.5 75t41 66.5t63.5 47t82 18.5q66 0 104.5 -44t38.5 -110q0 -39 -14 -75.5t-41 -65.5t-63.5 -46.5t-81.5 -17.5q-66 0 -105 42t-39 110zM799 127q0 37 14.5 75t41 66.5t63.5 47t82 18.5q66 0 104.5 -44t38.5 -110q0 -39 -14 -75.5t-41 -65.5t-63.5 -46.5 t-81.5 -17.5q-66 0 -105 42t-39 110zM1454 127q0 37 14.5 75t41 66.5t63.5 47t82 18.5q66 0 104.5 -44t38.5 -110q0 -39 -14 -75.5t-41 -65.5t-63.5 -46.5t-81.5 -17.5q-66 0 -105 42t-39 110z" /> +<glyph unicode=" " horiz-adv-x="365" /> +<glyph unicode="‹" horiz-adv-x="557" d="M82 424l37 201l313 284l86 -92l-272 -311l160 -316l-111 -71z" /> +<glyph unicode="›" horiz-adv-x="557" d="M55 211l273 311l-162 316l113 71l213 -305l-37 -201l-314 -284z" /> +<glyph unicode=" " horiz-adv-x="456" /> +<glyph unicode="€" d="M33 459l28 133l103 8q4 29 7 56.5t9 56.5h-96l29 133l104 8q39 113 100.5 203t139.5 153.5t169 97t189 33.5q115 0 186.5 -56t122.5 -142l-200 -133q-25 51 -56.5 78.5t-81.5 27.5q-98 0 -171.5 -70.5t-116.5 -187.5h428l-29 -145h-438q-4 -27 -8.5 -54.5t-6.5 -56.5h353 l-29 -143h-326q8 -125 60.5 -191.5t144.5 -66.5q51 0 98.5 27.5t90.5 70.5l131 -166q-98 -86 -193.5 -122t-183.5 -36q-195 0 -307.5 124t-122.5 360h-127z" /> +<glyph unicode="™" horiz-adv-x="1335" d="M147 1221l33 163h529l-33 -163h-170l-94 -480h-183l95 480h-177zM668 741l123 643h208l41 -192l17 -148h8l63 148l121 192h211l-125 -643h-178l43 209l82 254h-8l-211 -368h-90l-70 368h-8l-12 -254l-43 -209h-172z" /> +<glyph unicode="◼" horiz-adv-x="1013" d="M0 0v1014h1014v-1014h-1014z" /> +<glyph unicode="fi" horiz-adv-x="1212" d="M74 0l162 797h-132l43 207l134 12l12 67q14 78 45 146.5t79 120t114.5 81t154.5 29.5q59 0 114.5 -14t102.5 -41l-90 -199q-16 10 -43 20.5t-55 10.5q-55 0 -90 -29.5t-52 -113.5l-14 -78h176l-43 -219h-180l-158 -797h-280zM699 0l204 1016h279l-203 -1016h-280z M944 1303q0 33 13.5 63.5t37 53t55.5 35.5t69 13q59 0 105 -34.5t46 -100.5q0 -72 -50 -119t-124 -47q-57 0 -104.5 34t-47.5 102z" /> +<glyph unicode="fl" horiz-adv-x="1232" d="M74 0l162 797h-132l43 207l134 12l12 67q14 78 45 146.5t79 120t114.5 81t154.5 29.5q59 0 114.5 -14t102.5 -41l-90 -199q-16 10 -43 20.5t-55 10.5q-55 0 -90 -29.5t-52 -113.5l-14 -78h176l-43 -219h-180l-158 -797h-280zM746 174q0 53 14 125l227 1137h281 l-231 -1149q-4 -16 -4.5 -23.5t-0.5 -15.5q0 -27 11.5 -37t27.5 -10h16.5t20.5 4l-8 -207q-27 -10 -63.5 -16.5t-85.5 -6.5q-111 0 -158 53.5t-47 145.5z" /> +<hkern u1="." u2="j" k="-6" /> +<hkern u1=";" u2="j" k="-92" /> +<hkern u1="F" u2="™" k="-70" /> +<hkern u1="F" u2="·" k="20" /> +<hkern u1="F" u2="®" k="-70" /> +<hkern u1="F" u2="x" k="41" /> +<hkern u1="F" u2="v" k="20" /> +<hkern u1="F" u2="V" k="33" /> +<hkern u1="F" u2="/" k="164" /> +<hkern u1="P" u2="®" k="-18" /> +<hkern u1="P" u2="x" k="20" /> +<hkern u1="P" u2="X" k="57" /> +<hkern u1="P" u2="/" k="201" /> +<hkern u1="V" u2="™" k="-61" /> +<hkern u1="V" u2="·" k="41" /> +<hkern u1="V" u2="®" k="-70" /> +<hkern u1="V" u2="x" k="74" /> +<hkern u1="V" u2="/" k="123" /> +<hkern u1="X" u2="™" k="-102" /> +<hkern u1="X" u2="·" k="182" /> +<hkern u1="X" u2="®" k="-90" /> +<hkern u1="X" u2="*" k="-12" /> +<hkern u1="\" u2="v" k="41" /> +<hkern u1="\" u2="V" k="123" /> +<hkern u1="v" u2="™" k="27" /> +<hkern u1="v" u2="®" k="-23" /> +<hkern u1="v" u2="/" k="41" /> +<hkern u1="v" u2="*" k="45" /> +<hkern u1="x" u2="™" k="-8" /> +<hkern u1="x" u2="·" k="41" /> +<hkern u1="x" u2="®" k="-23" /> +<hkern u1="x" u2="V" k="20" /> +<hkern u1="x" u2="*" k="82" /> +<hkern u1="¡" u2="V" k="74" /> +<hkern u1="·" u2="x" k="41" /> +<hkern u1="·" u2="X" k="74" /> +<hkern u1="·" u2="V" k="41" /> +<hkern u1="¿" u2="X" k="74" /> +<hkern u1="¿" u2="V" k="115" /> +<hkern u1="Þ" u2="™" k="115" /> +<hkern u1="Þ" u2="\" k="82" /> +<hkern u1="Þ" u2="/" k="90" /> +<hkern u1="Þ" u2="*" k="137" /> +<hkern u1="ß" u2="®" k="141" /> +<hkern u1="ß" u2="x" k="-25" /> +<hkern u1="ß" u2="v" k="57" /> +<hkern u1="ß" u2="\" k="41" /> +<hkern u1="ß" u2="?" k="72" /> +<hkern g1="exclam" g2="quoteright,quotedblright" k="109" /> +<hkern g1="exclamdown" g2="W" k="37" /> +<hkern g1="exclamdown" g2="Y,Yacute,Ydieresis" k="113" /> +<hkern g1="exclamdown" g2="j" k="-102" /> +<hkern g1="periodcentered" g2="T" k="156" /> +<hkern g1="periodcentered" g2="Y,Yacute,Ydieresis" k="133" /> +<hkern g1="periodcentered" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="74" /> +<hkern g1="periodcentered" g2="S" k="41" /> +<hkern g1="periodcentered" g2="Z" k="82" /> +<hkern g1="question" g2="quoteright,quotedblright" k="20" /> +<hkern g1="questiondown" g2="T" k="197" /> +<hkern g1="questiondown" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="180" /> +<hkern g1="questiondown" g2="W" k="78" /> +<hkern g1="questiondown" g2="Y,Yacute,Ydieresis" k="156" /> +<hkern g1="questiondown" g2="j" k="-143" /> +<hkern g1="questiondown" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="180" /> +<hkern g1="questiondown" g2="S" k="109" /> +<hkern g1="questiondown" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="74" /> +<hkern g1="questiondown" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="53" /> +<hkern g1="questiondown" g2="ae" k="53" /> +<hkern g1="questiondown" g2="f,uniFB01,uniFB02" k="82" /> +<hkern g1="slash" g2="j" k="-123" /> +<hkern g1="slash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="82" /> +<hkern g1="slash" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="41" /> +<hkern g1="slash" g2="ae" k="41" /> +<hkern g1="slash" g2="J" k="164" /> +<hkern g1="slash" g2="t" k="-41" /> +<hkern g1="slash" g2="u,ugrave,uacute,ucircumflex,udieresis" k="41" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="T" k="137" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="78" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="W" k="53" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="Y,Yacute,Ydieresis" k="131" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="j" k="20" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="w" k="29" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="y,yacute,ydieresis" k="37" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quoteright,quotedblright" k="227" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="S" k="20" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="Z" k="20" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="47" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="f,uniFB01,uniFB02" k="53" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="t" k="53" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="asterisk" k="246" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="backslash" k="82" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="periodcentered" k="74" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="question" k="176" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="registered" k="197" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="trademark" k="205" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="V" k="176" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quotedbl,quotesingle" k="197" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quoteleft,quotedblleft" k="174" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="v" k="37" /> +<hkern g1="B" g2="T" k="82" /> +<hkern g1="B" g2="Y,Yacute,Ydieresis" k="74" /> +<hkern g1="B" g2="w" k="20" /> +<hkern g1="B" g2="y,yacute,ydieresis" k="37" /> +<hkern g1="B" g2="S" k="37" /> +<hkern g1="B" g2="J" k="20" /> +<hkern g1="B" g2="t" k="20" /> +<hkern g1="B" g2="asterisk" k="201" /> +<hkern g1="B" g2="periodcentered" k="41" /> +<hkern g1="B" g2="trademark" k="61" /> +<hkern g1="B" g2="v" k="37" /> +<hkern g1="B" g2="x" k="20" /> +<hkern g1="C,Ccedilla" g2="T" k="41" /> +<hkern g1="C,Ccedilla" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="37" /> +<hkern g1="C,Ccedilla" g2="w" k="53" /> +<hkern g1="C,Ccedilla" g2="y,yacute,ydieresis" k="53" /> +<hkern g1="C,Ccedilla" g2="S" k="41" /> +<hkern g1="C,Ccedilla" g2="Z" k="20" /> +<hkern g1="C,Ccedilla" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="176" /> +<hkern g1="C,Ccedilla" g2="J" k="20" /> +<hkern g1="C,Ccedilla" g2="t" k="37" /> +<hkern g1="C,Ccedilla" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="C,Ccedilla" g2="periodcentered" k="154" /> +<hkern g1="C,Ccedilla" g2="registered" k="-10" /> +<hkern g1="C,Ccedilla" g2="trademark" k="-61" /> +<hkern g1="C,Ccedilla" g2="v" k="53" /> +<hkern g1="C,Ccedilla" g2="hyphen,uni00AD,endash,emdash" k="176" /> +<hkern g1="C,Ccedilla" g2="guillemotleft,guilsinglleft" k="72" /> +<hkern g1="G" g2="T" k="61" /> +<hkern g1="G" g2="asterisk" k="90" /> +<hkern g1="G" g2="registered" k="27" /> +<hkern g1="G" g2="V" k="20" /> +<hkern g1="K" g2="T" k="53" /> +<hkern g1="K" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="37" /> +<hkern g1="K" g2="W" k="20" /> +<hkern g1="K" g2="Y,Yacute,Ydieresis" k="53" /> +<hkern g1="K" g2="j" k="20" /> +<hkern g1="K" g2="S" k="20" /> +<hkern g1="K" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="74" /> +<hkern g1="K" g2="t" k="57" /> +<hkern g1="K" g2="u,ugrave,uacute,ucircumflex,udieresis" k="31" /> +<hkern g1="K" g2="asterisk" k="41" /> +<hkern g1="K" g2="periodcentered" k="150" /> +<hkern g1="K" g2="registered" k="43" /> +<hkern g1="K" g2="trademark" k="10" /> +<hkern g1="K" g2="V" k="20" /> +<hkern g1="K" g2="quotedbl,quotesingle" k="172" /> +<hkern g1="K" g2="hyphen,uni00AD,endash,emdash" k="125" /> +<hkern g1="K" g2="guillemotleft,guilsinglleft" k="172" /> +<hkern g1="L" g2="T" k="246" /> +<hkern g1="L" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="113" /> +<hkern g1="L" g2="W" k="115" /> +<hkern g1="L" g2="Y,Yacute,Ydieresis" k="211" /> +<hkern g1="L" g2="w" k="182" /> +<hkern g1="L" g2="y,yacute,ydieresis" k="115" /> +<hkern g1="L" g2="quoteright,quotedblright" k="264" /> +<hkern g1="L" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="12" /> +<hkern g1="L" g2="S" k="74" /> +<hkern g1="L" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="129" /> +<hkern g1="L" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="37" /> +<hkern g1="L" g2="f,uniFB01,uniFB02" k="53" /> +<hkern g1="L" g2="t" k="63" /> +<hkern g1="L" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="L" g2="asterisk" k="360" /> +<hkern g1="L" g2="backslash" k="205" /> +<hkern g1="L" g2="periodcentered" k="272" /> +<hkern g1="L" g2="question" k="115" /> +<hkern g1="L" g2="registered" k="272" /> +<hkern g1="L" g2="trademark" k="313" /> +<hkern g1="L" g2="V" k="172" /> +<hkern g1="L" g2="quotedbl,quotesingle" k="346" /> +<hkern g1="L" g2="quoteleft,quotedblleft" k="264" /> +<hkern g1="L" g2="v" k="154" /> +<hkern g1="L" g2="hyphen,uni00AD,endash,emdash" k="164" /> +<hkern g1="L" g2="guillemotleft,guilsinglleft" k="82" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="T" k="78" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Y,Yacute,Ydieresis" k="57" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Z" k="20" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="J" k="41" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="asterisk" k="131" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="registered" k="12" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="trademark" k="57" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="slash" k="41" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="V" k="41" /> +<hkern g1="R" g2="T" k="66" /> +<hkern g1="R" g2="Y,Yacute,Ydieresis" k="41" /> +<hkern g1="R" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="20" /> +<hkern g1="R" g2="S" k="29" /> +<hkern g1="R" g2="Z" k="20" /> +<hkern g1="R" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="R" g2="ae" k="20" /> +<hkern g1="R" g2="J" k="41" /> +<hkern g1="R" g2="asterisk" k="37" /> +<hkern g1="R" g2="registered" k="-14" /> +<hkern g1="R" g2="V" k="20" /> +<hkern g1="R" g2="x" k="20" /> +<hkern g1="R" g2="hyphen,uni00AD,endash,emdash" k="82" /> +<hkern g1="R" g2="guillemotleft,guilsinglleft" k="57" /> +<hkern g1="R" g2="z" k="20" /> +<hkern g1="R" g2="X" k="20" /> +<hkern g1="S" g2="T" k="61" /> +<hkern g1="S" g2="S" k="20" /> +<hkern g1="S" g2="J" k="20" /> +<hkern g1="S" g2="asterisk" k="61" /> +<hkern g1="S" g2="periodcentered" k="20" /> +<hkern g1="S" g2="registered" k="-8" /> +<hkern g1="T" g2="Y,Yacute,Ydieresis" k="20" /> +<hkern g1="T" g2="w" k="82" /> +<hkern g1="T" g2="y,yacute,ydieresis" k="82" /> +<hkern g1="T" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="137" /> +<hkern g1="T" g2="S" k="104" /> +<hkern g1="T" g2="Z" k="90" /> +<hkern g1="T" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="41" /> +<hkern g1="T" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="164" /> +<hkern g1="T" g2="ae" k="164" /> +<hkern g1="T" g2="f,uniFB01,uniFB02" k="49" /> +<hkern g1="T" g2="J" k="250" /> +<hkern g1="T" g2="t" k="41" /> +<hkern g1="T" g2="u,ugrave,uacute,ucircumflex,udieresis" k="205" /> +<hkern g1="T" g2="periodcentered" k="123" /> +<hkern g1="T" g2="registered" k="-70" /> +<hkern g1="T" g2="trademark" k="-82" /> +<hkern g1="T" g2="slash" k="172" /> +<hkern g1="T" g2="v" k="82" /> +<hkern g1="T" g2="x" k="82" /> +<hkern g1="T" g2="hyphen,uni00AD,endash,emdash" k="205" /> +<hkern g1="T" g2="guillemotleft,guilsinglleft" k="139" /> +<hkern g1="T" g2="comma,period,ellipsis" k="238" /> +<hkern g1="T" g2="m,n,p,r,ntilde" k="164" /> +<hkern g1="T" g2="s" k="123" /> +<hkern g1="T" g2="z" k="205" /> +<hkern g1="T" g2="X" k="41" /> +<hkern g1="T" g2="colon,semicolon" k="205" /> +<hkern g1="T" g2="guillemotright,guilsinglright" k="156" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="Y,Yacute,Ydieresis" k="37" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="20" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="S" k="20" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="J" k="86" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="slash" k="82" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="V" k="20" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="comma,period,ellipsis" k="20" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="X" k="20" /> +<hkern g1="W" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="53" /> +<hkern g1="W" g2="S" k="20" /> +<hkern g1="W" g2="Z" k="20" /> +<hkern g1="W" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="33" /> +<hkern g1="W" g2="ae" k="41" /> +<hkern g1="W" g2="J" k="205" /> +<hkern g1="W" g2="registered" k="-51" /> +<hkern g1="W" g2="trademark" k="-61" /> +<hkern g1="W" g2="slash" k="82" /> +<hkern g1="W" g2="guillemotleft,guilsinglleft" k="53" /> +<hkern g1="W" g2="comma,period,ellipsis" k="180" /> +<hkern g1="W" g2="z" k="53" /> +<hkern g1="W" g2="guillemotright,guilsinglright" k="53" /> +<hkern g1="Y,Yacute,Ydieresis" g2="T" k="20" /> +<hkern g1="Y,Yacute,Ydieresis" g2="w" k="57" /> +<hkern g1="Y,Yacute,Ydieresis" g2="y,yacute,ydieresis" k="57" /> +<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="180" /> +<hkern g1="Y,Yacute,Ydieresis" g2="S" k="20" /> +<hkern g1="Y,Yacute,Ydieresis" g2="Z" k="57" /> +<hkern g1="Y,Yacute,Ydieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="37" /> +<hkern g1="Y,Yacute,Ydieresis" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="113" /> +<hkern g1="Y,Yacute,Ydieresis" g2="ae" k="82" /> +<hkern g1="Y,Yacute,Ydieresis" g2="J" k="201" /> +<hkern g1="Y,Yacute,Ydieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="61" /> +<hkern g1="Y,Yacute,Ydieresis" g2="periodcentered" k="82" /> +<hkern g1="Y,Yacute,Ydieresis" g2="question" k="-8" /> +<hkern g1="Y,Yacute,Ydieresis" g2="registered" k="-70" /> +<hkern g1="Y,Yacute,Ydieresis" g2="trademark" k="-70" /> +<hkern g1="Y,Yacute,Ydieresis" g2="slash" k="164" /> +<hkern g1="Y,Yacute,Ydieresis" g2="v" k="57" /> +<hkern g1="Y,Yacute,Ydieresis" g2="x" k="78" /> +<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,uni00AD,endash,emdash" k="156" /> +<hkern g1="Y,Yacute,Ydieresis" g2="guillemotleft,guilsinglleft" k="160" /> +<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,ellipsis" k="197" /> +<hkern g1="Y,Yacute,Ydieresis" g2="m,n,p,r,ntilde" k="78" /> +<hkern g1="Y,Yacute,Ydieresis" g2="s" k="182" /> +<hkern g1="Y,Yacute,Ydieresis" g2="z" k="139" /> +<hkern g1="Y,Yacute,Ydieresis" g2="colon,semicolon" k="37" /> +<hkern g1="Y,Yacute,Ydieresis" g2="guillemotright,guilsinglright" k="145" /> +<hkern g1="Z" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="20" /> +<hkern g1="Z" g2="W" k="20" /> +<hkern g1="Z" g2="Y,Yacute,Ydieresis" k="37" /> +<hkern g1="Z" g2="w" k="57" /> +<hkern g1="Z" g2="y,yacute,ydieresis" k="57" /> +<hkern g1="Z" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="41" /> +<hkern g1="Z" g2="S" k="61" /> +<hkern g1="Z" g2="Z" k="20" /> +<hkern g1="Z" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="41" /> +<hkern g1="Z" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="51" /> +<hkern g1="Z" g2="ae" k="31" /> +<hkern g1="Z" g2="J" k="61" /> +<hkern g1="Z" g2="t" k="37" /> +<hkern g1="Z" g2="u,ugrave,uacute,ucircumflex,udieresis" k="72" /> +<hkern g1="Z" g2="periodcentered" k="123" /> +<hkern g1="Z" g2="registered" k="-29" /> +<hkern g1="Z" g2="trademark" k="-61" /> +<hkern g1="Z" g2="V" k="20" /> +<hkern g1="Z" g2="v" k="57" /> +<hkern g1="Z" g2="hyphen,uni00AD,endash,emdash" k="182" /> +<hkern g1="Z" g2="guillemotleft,guilsinglleft" k="133" /> +<hkern g1="a,g,q,u,agrave,aacute,acircumflex,atilde,adieresis,aring,ugrave,uacute,ucircumflex,udieresis" g2="T" k="78" /> +<hkern g1="a,g,q,u,agrave,aacute,acircumflex,atilde,adieresis,aring,ugrave,uacute,ucircumflex,udieresis" g2="Y,Yacute,Ydieresis" k="78" /> +<hkern g1="a,g,q,u,agrave,aacute,acircumflex,atilde,adieresis,aring,ugrave,uacute,ucircumflex,udieresis" g2="asterisk" k="205" /> +<hkern g1="a,g,q,u,agrave,aacute,acircumflex,atilde,adieresis,aring,ugrave,uacute,ucircumflex,udieresis" g2="V" k="20" /> +<hkern g1="c,ccedilla" g2="T" k="78" /> +<hkern g1="c,ccedilla" g2="Y,Yacute,Ydieresis" k="57" /> +<hkern g1="c,ccedilla" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="31" /> +<hkern g1="c,ccedilla" g2="ae" k="20" /> +<hkern g1="c,ccedilla" g2="periodcentered" k="20" /> +<hkern g1="c,ccedilla" g2="registered" k="-10" /> +<hkern g1="c,ccedilla" g2="V" k="37" /> +<hkern g1="c,ccedilla" g2="hyphen,uni00AD,endash,emdash" k="53" /> +<hkern g1="colon,semicolon" g2="T" k="137" /> +<hkern g1="colon,semicolon" g2="Y,Yacute,Ydieresis" k="78" /> +<hkern g1="colon,semicolon" g2="j" k="-20" /> +<hkern g1="colon,semicolon" g2="quoteright,quotedblright" k="74" /> +<hkern g1="colon,semicolon" g2="asterisk" k="131" /> +<hkern g1="colon,semicolon" g2="quoteleft,quotedblleft" k="74" /> +<hkern g1="comma,period,ellipsis" g2="T" k="238" /> +<hkern g1="comma,period,ellipsis" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="137" /> +<hkern g1="comma,period,ellipsis" g2="W" k="61" /> +<hkern g1="comma,period,ellipsis" g2="Y,Yacute,Ydieresis" k="180" /> +<hkern g1="comma,period,ellipsis" g2="j" k="-92" /> +<hkern g1="comma,period,ellipsis" g2="w" k="47" /> +<hkern g1="comma,period,ellipsis" g2="y,yacute,ydieresis" k="41" /> +<hkern g1="comma,period,ellipsis" g2="quoteright,quotedblright" k="305" /> +<hkern g1="comma,period,ellipsis" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="comma,period,ellipsis" g2="t" k="61" /> +<hkern g1="comma,period,ellipsis" g2="asterisk" k="354" /> +<hkern g1="comma,period,ellipsis" g2="V" k="180" /> +<hkern g1="comma,period,ellipsis" g2="quotedbl,quotesingle" k="305" /> +<hkern g1="comma,period,ellipsis" g2="quoteleft,quotedblleft" k="264" /> +<hkern g1="comma,period,ellipsis" g2="v" k="109" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="T" k="176" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="W" k="20" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="Y,Yacute,Ydieresis" k="74" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="w" k="37" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="y,yacute,ydieresis" k="37" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quoteright,quotedblright" k="121" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="S" k="41" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="37" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="ae" k="31" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="J" k="41" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="t" k="39" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="asterisk" k="176" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="backslash" k="20" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="periodcentered" k="74" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="registered" k="111" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="trademark" k="82" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="V" k="37" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="v" k="37" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="hyphen,uni00AD,endash,emdash" k="-8" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="guillemotleft,guilsinglleft" k="57" /> +<hkern g1="f" g2="T" k="-102" /> +<hkern g1="f" g2="W" k="-102" /> +<hkern g1="f" g2="Y,Yacute,Ydieresis" k="-102" /> +<hkern g1="f" g2="quoteright,quotedblright" k="-49" /> +<hkern g1="f" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="f" g2="ae" k="41" /> +<hkern g1="f" g2="backslash" k="-164" /> +<hkern g1="f" g2="periodcentered" k="8" /> +<hkern g1="f" g2="question" k="-61" /> +<hkern g1="f" g2="registered" k="-117" /> +<hkern g1="f" g2="trademark" k="-168" /> +<hkern g1="f" g2="slash" k="41" /> +<hkern g1="f" g2="exclam" k="-61" /> +<hkern g1="f" g2="V" k="-102" /> +<hkern g1="f" g2="quotedbl,quotesingle" k="-82" /> +<hkern g1="f" g2="quoteleft,quotedblleft" k="-49" /> +<hkern g1="f" g2="hyphen,uni00AD,endash,emdash" k="20" /> +<hkern g1="f" g2="comma,period,ellipsis" k="182" /> +<hkern g1="f" g2="X" k="-82" /> +<hkern g1="f" g2="parenright,bracketright,braceright" k="-90" /> +<hkern g1="k" g2="T" k="53" /> +<hkern g1="k" g2="Y,Yacute,Ydieresis" k="53" /> +<hkern g1="k" g2="j" k="20" /> +<hkern g1="k" g2="quoteright,quotedblright" k="109" /> +<hkern g1="k" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="53" /> +<hkern g1="k" g2="ae" k="20" /> +<hkern g1="k" g2="t" k="20" /> +<hkern g1="k" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="k" g2="asterisk" k="123" /> +<hkern g1="k" g2="periodcentered" k="41" /> +<hkern g1="k" g2="registered" k="12" /> +<hkern g1="k" g2="trademark" k="41" /> +<hkern g1="k" g2="x" k="12" /> +<hkern g1="k" g2="hyphen,uni00AD,endash,emdash" k="109" /> +<hkern g1="k" g2="guillemotleft,guilsinglleft" k="74" /> +<hkern g1="k" g2="comma,period,ellipsis" k="-8" /> +<hkern g1="h,m,n,ntilde" g2="T" k="57" /> +<hkern g1="h,m,n,ntilde" g2="Y,Yacute,Ydieresis" k="78" /> +<hkern g1="h,m,n,ntilde" g2="quoteright,quotedblright" k="123" /> +<hkern g1="h,m,n,ntilde" g2="asterisk" k="164" /> +<hkern g1="h,m,n,ntilde" g2="trademark" k="41" /> +<hkern g1="h,m,n,ntilde" g2="V" k="20" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="T" k="139" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="Y,Yacute,Ydieresis" k="182" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="w" k="33" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="y,yacute,ydieresis" k="51" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="quoteright,quotedblright" k="156" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="ae" k="31" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="backslash" k="82" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="V" k="57" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="quoteleft,quotedblleft" k="82" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="v" k="51" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="x" k="53" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="hyphen,uni00AD,endash,emdash" k="-41" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="comma,period,ellipsis" k="20" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="z" k="37" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="parenright,bracketright,braceright" k="33" /> +<hkern g1="quoteleft,quotedblleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="174" /> +<hkern g1="quoteleft,quotedblleft" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="82" /> +<hkern g1="quoteleft,quotedblleft" g2="ae" k="82" /> +<hkern g1="quoteleft,quotedblleft" g2="exclamdown" k="123" /> +<hkern g1="quoteleft,quotedblleft" g2="questiondown" k="287" /> +<hkern g1="quoteleft,quotedblleft" g2="comma,period,ellipsis" k="223" /> +<hkern g1="r" g2="quoteright,quotedblright" k="-8" /> +<hkern g1="r" g2="Z" k="41" /> +<hkern g1="r" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="r" g2="ae" k="43" /> +<hkern g1="r" g2="J" k="137" /> +<hkern g1="r" g2="backslash" k="-41" /> +<hkern g1="r" g2="registered" k="-63" /> +<hkern g1="r" g2="trademark" k="-8" /> +<hkern g1="r" g2="slash" k="82" /> +<hkern g1="r" g2="quoteleft,quotedblleft" k="-49" /> +<hkern g1="r" g2="hyphen,uni00AD,endash,emdash" k="41" /> +<hkern g1="r" g2="guillemotleft,guilsinglleft" k="41" /> +<hkern g1="r" g2="comma,period,ellipsis" k="133" /> +<hkern g1="r" g2="z" k="20" /> +<hkern g1="s" g2="T" k="78" /> +<hkern g1="s" g2="Y,Yacute,Ydieresis" k="57" /> +<hkern g1="s" g2="y,yacute,ydieresis" k="16" /> +<hkern g1="s" g2="asterisk" k="131" /> +<hkern g1="s" g2="V" k="37" /> +<hkern g1="s" g2="v" k="16" /> +<hkern g1="s" g2="hyphen,uni00AD,endash,emdash" k="12" /> +<hkern g1="t" g2="T" k="41" /> +<hkern g1="t" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="27" /> +<hkern g1="t" g2="ae" k="41" /> +<hkern g1="t" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="t" g2="periodcentered" k="41" /> +<hkern g1="t" g2="registered" k="-55" /> +<hkern g1="t" g2="slash" k="-41" /> +<hkern g1="t" g2="hyphen,uni00AD,endash,emdash" k="74" /> +<hkern g1="t" g2="guillemotleft,guilsinglleft" k="41" /> +<hkern g1="t" g2="comma,period,ellipsis" k="-8" /> +<hkern g1="t" g2="colon,semicolon" k="-41" /> +<hkern g1="w" g2="T" k="82" /> +<hkern g1="w" g2="Y,Yacute,Ydieresis" k="41" /> +<hkern g1="w" g2="j" k="20" /> +<hkern g1="w" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="18" /> +<hkern g1="w" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="16" /> +<hkern g1="w" g2="ae" k="20" /> +<hkern g1="w" g2="J" k="61" /> +<hkern g1="w" g2="asterisk" k="61" /> +<hkern g1="w" g2="registered" k="-29" /> +<hkern g1="w" g2="trademark" k="27" /> +<hkern g1="w" g2="slash" k="20" /> +<hkern g1="w" g2="comma,period,ellipsis" k="74" /> +<hkern g1="w" g2="z" k="37" /> +<hkern g1="y,yacute,ydieresis" g2="T" k="82" /> +<hkern g1="y,yacute,ydieresis" g2="Y,Yacute,Ydieresis" k="74" /> +<hkern g1="y,yacute,ydieresis" g2="j" k="20" /> +<hkern g1="y,yacute,ydieresis" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="16" /> +<hkern g1="y,yacute,ydieresis" g2="ae" k="41" /> +<hkern g1="y,yacute,ydieresis" g2="J" k="78" /> +<hkern g1="y,yacute,ydieresis" g2="registered" k="-29" /> +<hkern g1="y,yacute,ydieresis" g2="trademark" k="-8" /> +<hkern g1="y,yacute,ydieresis" g2="slash" k="41" /> +<hkern g1="y,yacute,ydieresis" g2="comma,period,ellipsis" k="109" /> +<hkern g1="y,yacute,ydieresis" g2="z" k="20" /> +<hkern g1="z" g2="T" k="61" /> +<hkern g1="z" g2="Y,Yacute,Ydieresis" k="57" /> +<hkern g1="z" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="z" g2="ae" k="43" /> +<hkern g1="z" g2="u,ugrave,uacute,ucircumflex,udieresis" k="41" /> +<hkern g1="z" g2="periodcentered" k="20" /> +<hkern g1="z" g2="registered" k="-23" /> +<hkern g1="z" g2="V" k="20" /> +<hkern g1="z" g2="hyphen,uni00AD,endash,emdash" k="20" /> +<hkern g1="F" g2="W" k="16" /> +<hkern g1="F" g2="Y,Yacute,Ydieresis" k="33" /> +<hkern g1="F" g2="w" k="20" /> +<hkern g1="F" g2="y,yacute,ydieresis" k="20" /> +<hkern g1="F" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="90" /> +<hkern g1="F" g2="S" k="33" /> +<hkern g1="F" g2="Z" k="41" /> +<hkern g1="F" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="20" /> +<hkern g1="F" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="F" g2="ae" k="61" /> +<hkern g1="F" g2="J" k="287" /> +<hkern g1="F" g2="t" k="20" /> +<hkern g1="F" g2="u,ugrave,uacute,ucircumflex,udieresis" k="31" /> +<hkern g1="F" g2="guillemotleft,guilsinglleft" k="41" /> +<hkern g1="F" g2="comma,period,ellipsis" k="156" /> +<hkern g1="F" g2="m,n,p,r,ntilde" k="41" /> +<hkern g1="F" g2="s" k="31" /> +<hkern g1="F" g2="z" k="41" /> +<hkern g1="J" g2="J" k="82" /> +<hkern g1="J" g2="comma,period,ellipsis" k="41" /> +<hkern g1="P" g2="T" k="61" /> +<hkern g1="P" g2="Y,Yacute,Ydieresis" k="37" /> +<hkern g1="P" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="182" /> +<hkern g1="P" g2="S" k="20" /> +<hkern g1="P" g2="Z" k="205" /> +<hkern g1="P" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="41" /> +<hkern g1="P" g2="ae" k="61" /> +<hkern g1="P" g2="J" k="270" /> +<hkern g1="P" g2="hyphen,uni00AD,endash,emdash" k="20" /> +<hkern g1="P" g2="guillemotleft,guilsinglleft" k="20" /> +<hkern g1="P" g2="comma,period,ellipsis" k="305" /> +<hkern g1="P" g2="z" k="41" /> +<hkern g1="V" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="20" /> +<hkern g1="V" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="176" /> +<hkern g1="V" g2="S" k="41" /> +<hkern g1="V" g2="Z" k="41" /> +<hkern g1="V" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="74" /> +<hkern g1="V" g2="ae" k="180" /> +<hkern g1="V" g2="f,uniFB01,uniFB02" k="31" /> +<hkern g1="V" g2="J" k="180" /> +<hkern g1="V" g2="u,ugrave,uacute,ucircumflex,udieresis" k="41" /> +<hkern g1="V" g2="hyphen,uni00AD,endash,emdash" k="176" /> +<hkern g1="V" g2="guillemotleft,guilsinglleft" k="133" /> +<hkern g1="V" g2="comma,period,ellipsis" k="174" /> +<hkern g1="V" g2="m,n,p,r,ntilde" k="41" /> +<hkern g1="V" g2="s" k="41" /> +<hkern g1="V" g2="z" k="180" /> +<hkern g1="V" g2="guillemotright,guilsinglright" k="133" /> +<hkern g1="X" g2="T" k="37" /> +<hkern g1="X" g2="ae" k="45" /> +<hkern g1="X" g2="u,ugrave,uacute,ucircumflex,udieresis" k="37" /> +<hkern g1="X" g2="hyphen,uni00AD,endash,emdash" k="176" /> +<hkern g1="X" g2="guillemotleft,guilsinglleft" k="82" /> +<hkern g1="X" g2="guillemotright,guilsinglright" k="74" /> +<hkern g1="parenleft,bracketleft,braceleft" g2="j" k="-131" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Y,Yacute,Ydieresis" k="174" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Z" k="41" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="V" k="57" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="x" k="53" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="X" k="41" /> +<hkern g1="germandbls" g2="w" k="29" /> +<hkern g1="germandbls" g2="y,yacute,ydieresis" k="57" /> +<hkern g1="germandbls" g2="quoteright,quotedblright" k="238" /> +<hkern g1="germandbls" g2="t" k="47" /> +<hkern g1="germandbls" g2="quotedbl,quotesingle" k="195" /> +<hkern g1="germandbls" g2="quoteleft,quotedblleft" k="150" /> +<hkern g1="guillemotleft,guilsinglleft" g2="T" k="188" /> +<hkern g1="guillemotleft,guilsinglleft" g2="W" k="37" /> +<hkern g1="guillemotleft,guilsinglleft" g2="Y,Yacute,Ydieresis" k="150" /> +<hkern g1="guillemotleft,guilsinglleft" g2="Z" k="33" /> +<hkern g1="guillemotleft,guilsinglleft" g2="V" k="109" /> +<hkern g1="guillemotleft,guilsinglleft" g2="x" k="16" /> +<hkern g1="guillemotleft,guilsinglleft" g2="X" k="33" /> +<hkern g1="guillemotright,guilsinglright" g2="T" k="172" /> +<hkern g1="guillemotright,guilsinglright" g2="W" k="37" /> +<hkern g1="guillemotright,guilsinglright" g2="Y,Yacute,Ydieresis" k="156" /> +<hkern g1="guillemotright,guilsinglright" g2="S" k="61" /> +<hkern g1="guillemotright,guilsinglright" g2="Z" k="41" /> +<hkern g1="guillemotright,guilsinglright" g2="J" k="61" /> +<hkern g1="guillemotright,guilsinglright" g2="V" k="115" /> +<hkern g1="guillemotright,guilsinglright" g2="x" k="37" /> +<hkern g1="quotedbl,quotesingle" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="156" /> +<hkern g1="quotedbl,quotesingle" g2="comma,period,ellipsis" k="264" /> +<hkern g1="quotedbl,quotesingle" g2="s" k="41" /> +<hkern g1="quoteright,quotedblright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="176" /> +<hkern g1="quoteright,quotedblright" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="57" /> +<hkern g1="quoteright,quotedblright" g2="ae" k="66" /> +<hkern g1="quoteright,quotedblright" g2="comma,period,ellipsis" k="319" /> +<hkern g1="quoteright,quotedblright" g2="s" k="82" /> +<hkern g1="v" g2="T" k="82" /> +<hkern g1="v" g2="Y,Yacute,Ydieresis" k="41" /> +<hkern g1="v" g2="j" k="20" /> +<hkern g1="v" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="37" /> +<hkern g1="v" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="16" /> +<hkern g1="v" g2="ae" k="41" /> +<hkern g1="v" g2="J" k="78" /> +<hkern g1="v" g2="comma,period,ellipsis" k="109" /> +<hkern g1="v" g2="z" k="37" /> +<hkern g1="x" g2="T" k="182" /> +<hkern g1="x" g2="Y,Yacute,Ydieresis" k="57" /> +<hkern g1="x" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="53" /> +<hkern g1="x" g2="ae" k="20" /> +<hkern g1="x" g2="hyphen,uni00AD,endash,emdash" k="72" /> +<hkern g1="x" g2="guillemotleft,guilsinglleft" k="37" /> +<hkern g1="x" g2="guillemotright,guilsinglright" k="33" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/sourcesanspro-bolditalic-webfont.ttf b/web/static/fonts/sourcesanspro-bolditalic-webfont.ttf Binary files differnew file mode 100755 index 000000000..a9d8723a4 --- /dev/null +++ b/web/static/fonts/sourcesanspro-bolditalic-webfont.ttf diff --git a/web/static/fonts/sourcesanspro-bolditalic-webfont.woff b/web/static/fonts/sourcesanspro-bolditalic-webfont.woff Binary files differnew file mode 100755 index 000000000..8c96b2cae --- /dev/null +++ b/web/static/fonts/sourcesanspro-bolditalic-webfont.woff diff --git a/web/static/fonts/sourcesanspro-bolditalic-webfont.woff2 b/web/static/fonts/sourcesanspro-bolditalic-webfont.woff2 Binary files differnew file mode 100755 index 000000000..6da0e1f1e --- /dev/null +++ b/web/static/fonts/sourcesanspro-bolditalic-webfont.woff2 diff --git a/web/static/fonts/sourcesanspro-italic-webfont.eot b/web/static/fonts/sourcesanspro-italic-webfont.eot Binary files differnew file mode 100755 index 000000000..d3e57929d --- /dev/null +++ b/web/static/fonts/sourcesanspro-italic-webfont.eot diff --git a/web/static/fonts/sourcesanspro-italic-webfont.svg b/web/static/fonts/sourcesanspro-italic-webfont.svg new file mode 100755 index 000000000..b3e9ec05b --- /dev/null +++ b/web/static/fonts/sourcesanspro-italic-webfont.svg @@ -0,0 +1,845 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > +<svg xmlns="http://www.w3.org/2000/svg"> +<metadata></metadata> +<defs> +<font id="source_sans_proitalic" horiz-adv-x="983" > +<font-face units-per-em="2048" ascent="1536" descent="-512" /> +<missing-glyph horiz-adv-x="393" /> +<glyph horiz-adv-x="0" /> +<glyph horiz-adv-x="682" /> +<glyph horiz-adv-x="0" /> +<glyph horiz-adv-x="0" /> +<glyph unicode="
" horiz-adv-x="393" /> +<glyph unicode=" " horiz-adv-x="393" /> +<glyph unicode="	" horiz-adv-x="393" /> +<glyph unicode=" " horiz-adv-x="393" /> +<glyph unicode="!" horiz-adv-x="577" d="M88 78q0 53 39 98t98 45q47 0 70.5 -29.5t23.5 -74.5q0 -53 -37 -97.5t-96 -44.5q-45 0 -71.5 29t-26.5 74zM209 401l137 785l31 188h158l-39 -188l-177 -785h-110z" /> +<glyph unicode=""" horiz-adv-x="835" d="M262 872l47 314l31 188h154l-39 -188l-86 -314h-107zM602 872l47 314l31 188h154l-39 -188l-86 -314h-107z" /> +<glyph unicode="#" horiz-adv-x="980" d="M49 420l27 112h168l94 308h-164l29 112h172l121 379h104l-119 -379h256l121 379h105l-119 -379h162l-29 -112h-168l-94 -308h166l-29 -112h-174l-131 -420h-107l133 420h-258l-131 -420h-106l133 420h-162zM350 532h260l95 308h-261z" /> +<glyph unicode="$" d="M35 168l100 98q47 -61 119 -110.5t164 -49.5q113 0 184.5 66t71.5 172q0 74 -33 128t-81 98t-105.5 84t-105.5 86t-80.5 103.5t-32.5 135.5q0 76 26.5 139.5t74.5 110.5t113.5 75.5t145.5 32.5l41 201h115l-43 -211q72 -18 134 -63t107 -105l-102 -92q-41 59 -100.5 100 t-131.5 41q-98 0 -161.5 -58t-63.5 -151q0 -63 33 -109t81 -86t104.5 -80t104.5 -89t80.5 -113.5t32.5 -152.5q0 -80 -26.5 -149.5t-76.5 -122t-121 -84t-157 -38.5l-40 -200h-115l41 209q-92 18 -168 69t-129 115z" /> +<glyph unicode="%" horiz-adv-x="1619" d="M125 840q0 94 24.5 190t72.5 174t116.5 126t158.5 48q59 0 106.5 -23.5t79.5 -65.5t49 -98t17 -124q0 -96 -24.5 -192.5t-72.5 -173t-117.5 -125t-157.5 -48.5q-59 0 -106.5 24t-79 65.5t-49 98t-17.5 124.5zM246 848q0 -94 32.5 -155.5t108.5 -61.5q57 0 102 39 t76 100.5t47.5 137t16.5 149.5q0 94 -33 156.5t-109 62.5q-57 0 -102 -39t-76 -101.5t-47 -138t-16 -149.5zM275 -25l991 1401h107l-992 -1401h-106zM916 287q0 94 24.5 190t72.5 174t116.5 126t158.5 48q59 0 106.5 -23.5t79.5 -65.5t49 -98t17 -124q0 -96 -24.5 -192.5 t-72.5 -173t-117.5 -125t-157.5 -48.5q-59 0 -106.5 24t-79 65.5t-49 98t-17.5 124.5zM1037 295q0 -94 32.5 -155.5t108.5 -61.5q57 0 102 39t76 100.5t47.5 137t16.5 149.5q0 94 -33 156.5t-109 62.5q-57 0 -102 -39t-76 -101.5t-47 -138t-16 -149.5z" /> +<glyph unicode="&" horiz-adv-x="1191" d="M31 289q0 82 28.5 148.5t75.5 121.5t108.5 99t127.5 85q-37 119 -37 232q0 86 28.5 157.5t76.5 124t111.5 82t135.5 29.5q111 0 166 -62.5t55 -156.5q0 -78 -32.5 -141.5t-86 -117.5t-121 -100.5t-137.5 -89.5q43 -109 109 -209t143 -182q84 88 146.5 190.5t115.5 221.5 h144q-63 -135 -141 -261t-177 -233q113 -90 209 -125l-65 -127q-125 41 -252 150q-86 -70 -184.5 -110t-208.5 -40q-154 0 -246 85t-92 229zM186 309q0 -94 58.5 -151.5t152.5 -57.5q72 0 142.5 29t136.5 80q-80 88 -147.5 193.5t-114.5 220.5q-96 -66 -162 -140t-66 -174z M469 983q0 -78 23 -168q57 35 109 70t91 73.5t62.5 83.5t23.5 101q0 47 -24.5 80.5t-77.5 33.5q-43 0 -81 -20t-65.5 -57t-44 -87.5t-16.5 -109.5z" /> +<glyph unicode="'" horiz-adv-x="495" d="M262 872l47 314l31 188h154l-39 -188l-86 -314h-107z" /> +<glyph unicode="(" horiz-adv-x="595" d="M133 272q0 178 32 338t93 309.5t149.5 292t202.5 285.5l92 -51q-217 -276 -327.5 -571t-110.5 -619q0 -72 5 -148.5t16.5 -152.5t28 -147.5t38.5 -129.5l-102 -38q-49 131 -83 296.5t-34 335.5z" /> +<glyph unicode=")" horiz-adv-x="600" d="M-90 -307q436 551 436 1188q0 72 -5 149.5t-15.5 153.5t-26.5 145.5t-39 128.5l102 39q49 -131 83 -297t34 -334q0 -180 -31.5 -339.5t-93 -309t-150.5 -292t-202 -285.5z" /> +<glyph unicode="*" horiz-adv-x="825" d="M256 1229l37 82l203 -68l51 217l90 -8l-16 -219l210 29l15 -88l-211 -64l78 -199l-82 -47l-107 180l-164 -155l-65 59l141 180z" /> +<glyph unicode="+" d="M98 618v117h359v400h123v-400h358v-117h-360v-407h-123v407h-357z" /> +<glyph unicode="," horiz-adv-x="495" d="M-63 -242q96 37 153 97.5t74 136.5h-4q-47 0 -77 25.5t-30 72.5q0 51 36 91t95 40q53 0 82 -37t29 -98q0 -152 -92 -265.5t-244 -156.5z" /> +<glyph unicode="-" horiz-adv-x="612" d="M72 455l24 120h449l-27 -120h-446z" /> +<glyph unicode="." horiz-adv-x="495" d="M47 78q0 53 39 98t98 45q45 0 70 -29.5t25 -74.5q0 -53 -38.5 -97.5t-97.5 -44.5q-45 0 -70.5 29t-25.5 74z" /> +<glyph unicode="/" horiz-adv-x="696" d="M-147 -328l888 1782h115l-891 -1782h-112z" /> +<glyph unicode="0" d="M86 420q0 182 44 348t118 291t172 198.5t207 73.5q76 0 136 -34.5t100 -94t61.5 -142.5t21.5 -177q0 -184 -43 -348t-116.5 -289t-170.5 -198t-206 -73q-78 0 -138.5 34t-101.5 93.5t-62.5 140.5t-21.5 177zM233 414q0 -68 11.5 -125.5t34 -99.5t57.5 -65.5t82 -23.5 q80 0 149.5 71t121.5 184.5t82 254t30 279.5q0 137 -45.5 226t-139.5 89q-80 0 -149.5 -71.5t-121.5 -185t-82 -255t-30 -278.5z" /> +<glyph unicode="1" d="M53 0l27 131h285l196 979h-231l20 102q174 25 287 95h121l-238 -1176h266l-24 -131h-709z" /> +<glyph unicode="2" d="M-20 0l16 94q197 166 342 291t241.5 227.5t144.5 191.5t48 185q0 90 -52 151.5t-161 61.5q-66 0 -132.5 -33.5t-135.5 -97.5l-80 98q90 78 179 120t188 42q84 0 148.5 -23.5t109.5 -66.5t67.5 -102.5t22.5 -128.5q0 -109 -43 -204t-127 -195.5t-212 -214t-296 -261.5h565 l-25 -135h-808z" /> +<glyph unicode="3" d="M-18 201l104 82q47 -70 122 -123.5t177 -53.5q70 0 128 20.5t100 56.5t65.5 85t23.5 109q0 51 -20 95t-65.5 77t-117 50t-175.5 17l24 119q121 0 203 24.5t132 63.5t71.5 87t21.5 96q0 86 -51 141t-156 55q-59 0 -127.5 -28.5t-128.5 -75.5l-80 104q170 129 361 129 q166 0 254 -82t88 -217q0 -125 -76 -219t-229 -137v-8q109 -35 169 -109t60 -176q0 -94 -36 -169t-99 -128t-151.5 -82t-190.5 -29q-135 0 -237.5 67t-163.5 159z" /> +<glyph unicode="4" d="M16 360l19 107l700 840h172l-164 -820h172l-26 -127h-170l-72 -360h-147l73 360h-557zM209 487h389l76 387q12 59 29.5 126t33.5 135h-8q-41 -57 -81 -111.5t-77 -101.5z" /> +<glyph unicode="5" d="M-8 197l102 84q23 -35 49.5 -66t61.5 -55.5t80 -39t102 -14.5q63 0 121.5 25t103.5 71t72 109.5t27 143.5q0 127 -64.5 188.5t-171.5 61.5q-63 0 -108 -16.5t-111 -51.5l-68 53l164 617h613l-27 -136h-477l-107 -385q35 16 78 28.5t94 12.5q74 0 136.5 -21.5t108.5 -64.5 t71.5 -107.5t25.5 -150.5q0 -117 -41 -211t-108.5 -159.5t-156.5 -101.5t-185 -36q-135 0 -230.5 64.5t-154.5 157.5z" /> +<glyph unicode="6" d="M104 418q0 199 46.5 366.5t128 289.5t193.5 189.5t243 67.5q106 0 174.5 -50t109.5 -116l-106 -84q-35 57 -79 88t-107 31q-78 0 -148 -40t-128 -112.5t-100 -176t-63 -232.5q68 78 152 115t151 37q145 0 231.5 -90.5t86.5 -249.5q0 -96 -32 -182.5t-89 -152t-134 -103.5 t-167 -38q-84 0 -150.5 33t-113.5 91.5t-73 140.5t-26 178zM252 414q0 -141 59.5 -228.5t163.5 -87.5q55 0 104.5 29t86 75t57 105.5t20.5 120.5q0 113 -52 179.5t-156 66.5q-25 0 -57 -8.5t-68.5 -26.5t-76.5 -50t-79 -81q-2 -23 -2 -46.5v-47.5z" /> +<glyph unicode="7" d="M219 1171l29 136h807l-21 -103q-152 -143 -255 -286.5t-173.5 -291t-116 -303t-79.5 -323.5h-164q43 184 96 343t124 302t163 273.5t217 252.5h-627z" /> +<glyph unicode="8" d="M72 315q0 74 25.5 135.5t67.5 109.5t97 85t115 64v8q-57 57 -87 117.5t-30 140.5q0 84 31 149.5t84 111.5t121.5 70.5t146.5 24.5q61 0 119.5 -18.5t103.5 -56t72 -95t27 -133.5q0 -131 -70 -219t-180 -150v-8q29 -20 60.5 -49t57 -65.5t42 -82.5t16.5 -98 q0 -88 -36 -158.5t-95.5 -119.5t-138 -76t-166.5 -27q-72 0 -140.5 20.5t-122 62.5t-87 106.5t-33.5 150.5zM215 332q0 -57 19.5 -101.5t53.5 -75t79 -47t96 -16.5q53 0 103 17.5t90 49t63.5 80t23.5 109.5q0 57 -23.5 100.5t-64.5 79t-94 66t-110 61.5q-104 -57 -170 -133 t-66 -190zM403 983q0 -102 59.5 -163.5t168.5 -112.5q37 25 72.5 55.5t63.5 68t44 81.5t16 96q0 98 -56 151t-140 53q-45 0 -86 -15t-73 -45t-50.5 -73t-18.5 -96z" /> +<glyph unicode="9" d="M37 141l106 84q35 -57 79 -88t110 -31q76 0 145.5 40t127 113t99 175.5t62.5 229.5q-68 -76 -151 -112t-148 -36q-147 0 -233.5 90t-86.5 250q0 96 32 182t89.5 151.5t134 103.5t166.5 38q84 0 151.5 -32.5t115 -91t72 -140.5t24.5 -178q0 -201 -46 -368t-128 -288.5 t-193.5 -189.5t-242.5 -68q-106 0 -175 50.5t-110 115.5zM295 879q0 -115 52.5 -180.5t154.5 -65.5q25 0 56.5 8t68.5 26.5t76.5 50.5t78.5 81q2 23 2 46v48q0 141 -59 228t-164 87q-55 0 -104 -28.5t-85 -74.5t-56.5 -105.5t-20.5 -120.5z" /> +<glyph unicode=":" horiz-adv-x="495" d="M47 78q0 53 39 98t98 45q45 0 70 -29.5t25 -74.5q0 -53 -38.5 -97.5t-97.5 -44.5q-45 0 -70.5 29t-25.5 74zM178 834q0 53 39 98t98 45q45 0 70 -29.5t25 -74.5q0 -53 -38.5 -97.5t-97.5 -44.5q-45 0 -70.5 29t-25.5 74z" /> +<glyph unicode=";" horiz-adv-x="495" d="M-63 -242q96 37 153 97.5t74 136.5h-4q-47 0 -77 25.5t-30 72.5q0 51 36 91t95 40q53 0 82 -37t29 -98q0 -152 -92 -265.5t-244 -156.5zM178 834q0 53 39 98t98 45q45 0 70 -29.5t25 -74.5q0 -53 -38.5 -97.5t-97.5 -44.5q-45 0 -70.5 29t-25.5 74z" /> +<glyph unicode="<" d="M94 616v119l844 342v-133l-416 -164l-256 -98v-8l256 -101l416 -161v-136z" /> +<glyph unicode="=" d="M98 401v117h840v-117h-840zM98 835v117h840v-117h-840z" /> +<glyph unicode=">" d="M98 276v136l418 161l254 101v8l-254 98l-418 164v133l844 -342v-119z" /> +<glyph unicode="?" horiz-adv-x="837" d="M193 78q0 53 38.5 98t98.5 45q45 0 69.5 -29.5t24.5 -74.5q0 -53 -38 -97.5t-97 -44.5q-45 0 -70.5 29t-25.5 74zM227 1255q59 61 142.5 101.5t175.5 40.5q143 0 227 -75t84 -208q0 -84 -29.5 -147.5t-74.5 -116.5t-98.5 -101.5t-100.5 -99.5t-81 -111.5t-40 -138.5 l-135 13q4 86 37 152.5t78 120.5t96 100t94 92.5t71.5 96.5t28.5 113q0 86 -47 132.5t-129 46.5q-59 0 -114.5 -29t-100.5 -76z" /> +<glyph unicode="@" horiz-adv-x="1667" d="M92 334q0 211 75 391t198.5 312t284.5 207t333 75q145 0 258 -45t190.5 -126t118.5 -192.5t41 -242.5q0 -150 -35.5 -264.5t-96 -193.5t-138.5 -119t-160 -40q-72 0 -121 42t-63 114h-6q-47 -59 -107.5 -98t-128.5 -39q-47 0 -90 18.5t-74.5 53t-51 87t-19.5 117.5 q0 90 31.5 178t86 157t127 111t156.5 42q96 0 150 -105h4l26 88h105l-103 -444q-23 -96 1 -154.5t106 -58.5q49 0 101 31.5t93 94t68 153.5t27 208q0 111 -30 207t-93.5 166t-159.5 109.5t-227 39.5q-139 0 -275.5 -65.5t-244 -181t-174 -272t-66.5 -339.5q0 -137 42 -242.5 t112.5 -178t166 -109.5t203.5 -37q154 0 277 76l47 -94q-164 -88 -336 -88q-133 0 -248 44t-199 127t-133 203.5t-49 276.5zM625 406q0 -92 40 -137.5t99 -45.5q92 0 184 125l74 330q-29 53 -57.5 72.5t-63.5 19.5q-61 0 -111.5 -35t-87 -88t-57 -117.5t-20.5 -123.5z" /> +<glyph unicode="A" horiz-adv-x="1044" d="M-109 0l730 1343h184l156 -1343h-166l-37 420h-475l-215 -420h-177zM346 543h399l-20 229q-10 106 -19.5 214t-17.5 224h-8q-53 -117 -105.5 -222t-109.5 -216z" /> +<glyph unicode="B" horiz-adv-x="1193" d="M72 0l268 1343h358q195 0 305.5 -74.5t110.5 -221.5q0 -68 -25.5 -124.5t-68.5 -99.5t-96.5 -71.5t-108.5 -40.5l-2 -9q104 -25 176 -91t72 -181q0 -113 -42 -193.5t-118 -133t-178 -78t-221 -25.5h-430zM254 125h233q193 0 305.5 69.5t112.5 227.5q0 102 -78.5 164.5 t-228.5 62.5h-238zM383 766h192q193 0 285 71.5t92 186.5q0 92 -69.5 143.5t-223.5 51.5h-186z" /> +<glyph unicode="C" horiz-adv-x="1126" d="M117 518q0 158 50 310.5t141 272.5t219 193.5t284 73.5q117 0 199 -56.5t131 -142.5l-111 -84q-41 66 -95 106t-132 40q-121 0 -217.5 -63.5t-164 -164t-104 -224.5t-36.5 -247q0 -92 19 -168.5t60 -132t106.5 -87t156.5 -31.5q82 0 150.5 32.5t133.5 87.5l72 -102 q-74 -66 -168 -111t-217 -45q-115 0 -204 40t-149.5 112t-92 171t-31.5 220z" /> +<glyph unicode="D" horiz-adv-x="1212" d="M72 0l268 1343h250q281 0 425 -138t144 -386q0 -182 -50 -333.5t-143.5 -259t-228.5 -167t-305 -59.5h-360zM256 131h176q131 0 235.5 50t178.5 139.5t112.5 214t38.5 274.5q0 193 -104.5 299t-308.5 106h-111z" /> +<glyph unicode="E" horiz-adv-x="1030" d="M72 0l268 1343h741l-26 -133h-584l-86 -436h494l-29 -135h-490l-104 -504h602l-29 -135h-757z" /> +<glyph unicode="F" horiz-adv-x="968" d="M72 0l268 1343h741l-26 -133h-584l-92 -467h493l-26 -135h-492l-123 -608h-159z" /> +<glyph unicode="G" horiz-adv-x="1204" d="M117 518q0 160 50 312.5t142 272.5t224.5 192.5t297.5 72.5q121 0 204 -56.5t134 -142.5l-112 -84q-39 66 -95.5 106t-138.5 40q-127 0 -227 -63.5t-171 -164t-107.5 -224.5t-36.5 -247q0 -90 19 -166.5t62.5 -134t111 -89t163.5 -31.5q74 0 131 23.5t98 58.5l76 370 h-278l26 131h422l-117 -581q-74 -61 -169 -99.5t-212 -38.5q-121 0 -214 39t-156.5 110t-95 171t-31.5 223z" /> +<glyph unicode="H" horiz-adv-x="1273" d="M72 0l268 1343h160l-115 -567h606l115 567h158l-269 -1343h-159l129 639h-607l-127 -639h-159z" /> +<glyph unicode="I" horiz-adv-x="516" d="M72 0l268 1343h160l-269 -1343h-159z" /> +<glyph unicode="J" horiz-adv-x="933" d="M-4 182l104 88q29 -74 86.5 -115.5t143.5 -41.5q102 0 165.5 75.5t90.5 210.5l188 944h160l-193 -966q-16 -86 -51 -160t-86 -128t-120.5 -84t-157.5 -30q-121 0 -204 56.5t-126 150.5z" /> +<glyph unicode="K" horiz-adv-x="1144" d="M72 0l268 1343h160l-133 -663h6l674 663h180l-504 -516l305 -827h-166l-258 725l-280 -274l-93 -451h-159z" /> +<glyph unicode="L" horiz-adv-x="946" d="M72 0l268 1343h160l-242 -1208h565l-26 -135h-725z" /> +<glyph unicode="M" horiz-adv-x="1443" d="M72 0l268 1343h190l117 -725l45 -278h8l144 278l399 725h191l-269 -1343h-153l155 758q18 92 45 199.5t52 195.5h-9l-161 -299l-396 -713h-90l-125 713l-45 299h-8q-12 -92 -26.5 -197.5t-30.5 -197.5l-152 -758h-149z" /> +<glyph unicode="N" horiz-adv-x="1267" d="M72 0l268 1343h160l307 -860l86 -280h8q12 100 25.5 211.5t36.5 216.5l141 712h153l-268 -1343h-158l-303 858l-88 289h-8q-12 -104 -27.5 -213t-35.5 -211l-144 -723h-153z" /> +<glyph unicode="O" horiz-adv-x="1296" d="M123 539q0 154 48 302t134 266t206 189.5t265 71.5q113 0 200 -40t145.5 -113.5t89 -177t30.5 -230.5q0 -154 -48 -303.5t-134 -267t-207 -189.5t-264 -72q-113 0 -200 40t-145.5 114t-89 178.5t-30.5 231.5zM285 551q0 -98 18.5 -179t56 -138.5t97 -89t139.5 -31.5 q109 0 198 62.5t152.5 160.5t98 219t34.5 238q0 199 -75.5 318.5t-235.5 119.5q-109 0 -198 -61.5t-152.5 -160t-98 -219t-34.5 -239.5z" /> +<glyph unicode="P" horiz-adv-x="1126" d="M72 0l268 1343h379q94 0 172 -18t133 -58t86 -101.5t31 -149.5q0 -123 -44 -213t-122 -148.5t-185.5 -86t-236.5 -27.5h-215l-107 -541h-159zM365 670h194q209 0 316.5 82t107.5 243q0 117 -78 169.5t-225 52.5h-207z" /> +<glyph unicode="Q" horiz-adv-x="1296" d="M123 539q0 154 48 302t134 266t206 189.5t265 71.5q113 0 200 -40t145.5 -113.5t89 -177t30.5 -230.5q0 -147 -44 -291.5t-124 -259.5t-191.5 -190.5t-246.5 -88.5q35 -90 121 -133t194 -43q31 0 57.5 4.5t55.5 10.5l10 -125q-68 -23 -133 -23q-172 0 -295 77t-174 243 q-172 39 -260 184t-88 367zM285 551q0 -98 18.5 -179t56 -138.5t97 -89t139.5 -31.5q109 0 198 62.5t152.5 160.5t98 219t34.5 238q0 199 -75.5 318.5t-235.5 119.5q-109 0 -198 -61.5t-152.5 -160t-98 -219t-34.5 -239.5z" /> +<glyph unicode="R" horiz-adv-x="1136" d="M72 0l268 1343h369q94 0 170.5 -17t132 -55t86 -97.5t30.5 -143.5q0 -92 -29.5 -168t-82.5 -132t-125 -93t-158 -53l236 -584h-170l-221 569h-234l-113 -569h-159zM371 698h202q193 0 295.5 84t102.5 228q0 111 -77 159t-224 48h-197z" /> +<glyph unicode="S" horiz-adv-x="1036" d="M25 213l116 88q59 -90 146.5 -140t199.5 -50q61 0 114.5 18t91.5 51t60.5 80t22.5 105q0 74 -46 124t-122 97l-155 94q-86 53 -146.5 127t-60.5 188q0 76 31.5 143.5t87 119t132 81t167.5 29.5q121 0 219 -53t161 -135l-104 -95q-53 61 -124 103.5t-165 42.5 q-57 0 -102 -18.5t-77 -49t-48 -69.5t-16 -80q0 -78 50 -126t124 -93l155 -93q98 -57 150.5 -129.5t52.5 -185.5q0 -90 -35 -166t-96 -130t-147.5 -85t-188.5 -31q-139 0 -253 58.5t-195 179.5z" /> +<glyph unicode="T" horiz-adv-x="1044" d="M190 1206l27 137h940l-27 -137h-391l-239 -1206h-160l240 1206h-390z" /> +<glyph unicode="U" horiz-adv-x="1261" d="M162 399q0 43 5 91.5t15 99.5l152 753h160l-154 -768q-18 -92 -18 -161q0 -145 65.5 -223t206.5 -78q57 0 109.5 22.5t97.5 71.5t78.5 126t56.5 187l166 823h155l-167 -829q-29 -145 -77 -247.5t-113.5 -167t-144.5 -94.5t-169 -30q-205 0 -314.5 106.5t-109.5 317.5z " /> +<glyph unicode="V" horiz-adv-x="1015" d="M168 1343h162l55 -745q10 -111 18.5 -221.5t14.5 -220.5h8q51 109 105.5 221t107.5 221l371 745h172l-703 -1343h-190z" /> +<glyph unicode="W" horiz-adv-x="1548" d="M195 0l18 1343h164l-21 -739q-6 -109 -9 -217t-11 -219h8q47 111 96 219.5t95 216.5l335 739h146l18 -739q2 -106 2 -215.5v-220.5h8q41 111 85.5 219.5t84.5 216.5l291 739h158l-553 -1343h-203l-14 821q0 74 1 155t5 161h-8q-29 -80 -62.5 -158t-68.5 -158l-367 -821 h-198z" /> +<glyph unicode="X" horiz-adv-x="1011" d="M-74 0l516 696l-221 647h172l115 -356q14 -47 26.5 -91t28.5 -97h6l70 98t66 96l245 350h168l-485 -659l239 -684h-172l-122 377q-16 51 -32 103t-32 106h-6q-41 -53 -78 -109.5t-72 -107.5l-262 -369h-170z" /> +<glyph unicode="Y" horiz-adv-x="944" d="M170 1343h164l92 -387q18 -74 33.5 -143.5t34.5 -146.5h8q47 76 91 147.5t93 144.5l254 385h170l-561 -819l-107 -524h-157l104 524z" /> +<glyph unicode="Z" horiz-adv-x="1048" d="M-2 0l20 96l871 1114h-615l29 133h805l-21 -94l-864 -1114h678l-31 -135h-872z" /> +<glyph unicode="[" horiz-adv-x="598" d="M16 -311l353 1761h346l-15 -92h-231l-313 -1577h229l-23 -92h-346z" /> +<glyph unicode="\" horiz-adv-x="696" d="M180 1454h107l239 -1782h-110z" /> +<glyph unicode="]" horiz-adv-x="600" d="M-100 -311l20 92h227l318 1577h-229l16 92h350l-352 -1761h-350z" /> +<glyph unicode="^" horiz-adv-x="980" d="M170 580l299 792h127l299 -792h-131l-133 364l-92 273h-7l-96 -273l-131 -364h-135z" /> +<glyph unicode="_" horiz-adv-x="989" d="M-74 -254l23 102h936l-21 -102h-938z" /> +<glyph unicode="`" horiz-adv-x="1058" d="M520 1458h153l121 -289h-114z" /> +<glyph unicode="a" horiz-adv-x="1099" d="M80 336q0 143 45 268t121 217t172 145.5t200 53.5q80 0 142.5 -41t97.5 -109h8l39 125h127l-198 -995h-129l16 147h-8q-72 -78 -162 -125t-184 -47q-131 0 -209 92.5t-78 268.5zM242 360q0 -129 49 -191.5t133 -62.5q78 0 159 46.5t154 144.5l90 444q-43 78 -94 113 t-108 35q-74 0 -143.5 -44t-123 -118t-85 -169t-31.5 -198z" /> +<glyph unicode="b" horiz-adv-x="1097" d="M63 0l291 1458h158l-80 -389l-45 -197h4q74 59 160 103.5t178 44.5q131 0 209 -92t78 -269q0 -143 -45 -268t-120 -217t-172 -145.5t-200 -53.5q-80 0 -142.5 41t-96.5 109h-7l-40 -125h-130zM270 254q41 -78 92.5 -113t110.5 -35q74 0 143.5 44.5t122 118t84 168.5 t31.5 200q0 127 -48 189.5t-134 62.5q-70 0 -153 -43t-154 -119z" /> +<glyph unicode="c" horiz-adv-x="890" d="M76 375q0 139 46 257t123 204t177 135t209 49q90 0 151.5 -35t106.5 -86l-92 -98q-39 47 -78 68.5t-98 21.5q-74 0 -143.5 -41t-124 -109.5t-86 -161t-31.5 -194.5q0 -135 58 -207t177 -72q66 0 120 27t101 62l70 -103q-53 -41 -131 -79t-189 -38q-164 0 -265 103.5 t-101 296.5z" /> +<glyph unicode="d" horiz-adv-x="1095" d="M80 336q0 143 45 268t121 217t172 145.5t200 53.5q80 0 139.5 -40t96.5 -106h6l33 195l78 389h157l-294 -1458h-129l16 147h-8q-72 -78 -162 -125t-184 -47q-131 0 -209 92.5t-78 268.5zM242 360q0 -129 49 -191.5t133 -62.5q78 0 158 46.5t155 144.5l90 444 q-43 78 -94 113t-108 35q-74 0 -143.5 -44t-123 -118t-85 -169t-31.5 -198z" /> +<glyph unicode="e" horiz-adv-x="985" d="M76 391q0 141 47 257t121.5 199t170 128t193.5 45q84 0 142.5 -27.5t95.5 -76t53 -115t16 -142.5q0 -59 -12 -112t-22 -82h-648q-6 -44 -6 -82q1 -45 9 -83q16 -69 54 -114t93 -65.5t121 -20.5q59 0 117.5 26t105.5 60l61 -104q-59 -43 -141 -75t-180 -32 q-178 0 -284.5 107.5t-106.5 308.5zM250 571h522q4 25 7 49.5t3 53.5q0 43 -10 83t-32.5 70.5t-59.5 49t-90 18.5q-55 0 -107.5 -22.5t-97.5 -65.5t-81 -102.5t-54 -133.5z" /> +<glyph unicode="f" horiz-adv-x="577" d="M88 0l174 868h-129l23 117l133 10l33 166q31 152 109.5 237t205.5 85q53 0 96 -13.5t80 -35.5l-55 -113q-23 14 -49.5 24.5t-61.5 10.5q-68 0 -109.5 -51.5t-58.5 -139.5l-35 -170h201l-24 -127h-203l-174 -868h-156z" /> +<glyph unicode="g" horiz-adv-x="1087" d="M-4 -322l74 109q57 -49 126.5 -84t153.5 -35q129 0 205 81t109 216l49 205h-6q-74 -72 -158 -116t-180 -44q-127 0 -208 88t-81 262q0 137 44 257t117.5 209t169 141.5t195.5 52.5q78 0 141.5 -41t98.5 -109h6l39 125h129l-209 -1042q-41 -199 -160 -305.5t-307 -106.5 q-100 0 -188 39t-160 98zM242 383q0 -123 47 -182.5t131 -59.5q72 0 153.5 44t153.5 130l88 426q-47 78 -96 113t-107 35q-72 0 -139 -42t-118.5 -112.5t-82 -162t-30.5 -189.5z" /> +<glyph unicode="h" horiz-adv-x="1062" d="M63 0l291 1458h158l-98 -481l-33 -125h8q86 72 168 120t174 48q127 0 181.5 -65.5t54.5 -182.5q0 -35 -3 -65.5t-14 -71.5l-127 -635h-155l123 614q8 41 12 66t4 51q0 76 -35 115t-113 39q-59 0 -131.5 -43t-167.5 -137l-141 -705h-156z" /> +<glyph unicode="i" horiz-adv-x="485" d="M63 0l199 995h158l-201 -995h-156zM295 1294q0 51 36 85t83 34q41 0 70.5 -24.5t29.5 -69.5q0 -51 -36 -84t-83 -33q-41 0 -70.5 23.5t-29.5 68.5z" /> +<glyph unicode="j" horiz-adv-x="487" d="M-254 -406l51 117q20 -12 41 -19t53 -7q57 0 91 49t55 139l227 1122h158l-227 -1120q-29 -143 -97.5 -231t-197.5 -88q-47 0 -83 10t-71 28zM297 1294q0 51 35 85t84 34q39 0 68.5 -24.5t29.5 -69.5q0 -51 -36 -84t-83 -33q-39 0 -68.5 23.5t-29.5 68.5z" /> +<glyph unicode="k" horiz-adv-x="974" d="M63 0l291 1458h158l-197 -989h4l510 526h181l-398 -415l240 -580h-160l-190 485l-230 -233l-53 -252h-156z" /> +<glyph unicode="l" horiz-adv-x="507" d="M90 104q0 33 12 86l252 1268h158l-256 -1276q-4 -16 -4 -24v-15q0 -37 35 -37q6 0 12 1.5t20 5.5l3 -121q-20 -8 -43 -12.5t-56 -4.5q-66 0 -99.5 34t-33.5 95z" /> +<glyph unicode="m" horiz-adv-x="1636" d="M63 0l197 995h129l-14 -149h8q78 74 164 124t164 50q59 0 100 -15.5t67.5 -41t41 -61.5t20.5 -77q96 92 185 143.5t167 51.5q125 0 180.5 -65.5t55.5 -182.5q0 -35 -4 -65.5t-13 -71.5l-127 -635h-157l125 614q8 41 12 66t4 51q0 154 -145 154q-43 0 -117 -43t-164 -137 l-141 -705h-156l123 614q8 41 12 66t4 51q0 154 -143 154q-45 0 -118.5 -43t-162.5 -137l-141 -705h-156z" /> +<glyph unicode="n" horiz-adv-x="1075" d="M63 0l197 995h129l-14 -149h8q86 74 170 124t178 50q127 0 181.5 -65.5t54.5 -182.5q0 -35 -3 -65.5t-14 -71.5l-127 -635h-155l123 614q8 41 12 66t4 51q0 76 -35 115t-113 39q-59 0 -131.5 -43t-167.5 -137l-141 -705h-156z" /> +<glyph unicode="o" horiz-adv-x="1054" d="M80 375q0 141 45 260t121 204t172 133t198 48q162 0 259.5 -106.5t97.5 -292.5q0 -141 -46 -260t-121 -204t-172.5 -133.5t-199.5 -48.5q-162 0 -258 106.5t-96 293.5zM238 385q0 -135 54 -207t159 -72q70 0 134 40t115.5 108t82 160t30.5 196q0 135 -54.5 208t-158.5 73 q-68 0 -133.5 -40t-116.5 -108.5t-81.5 -161t-30.5 -196.5z" /> +<glyph unicode="p" horiz-adv-x="1095" d="M-20 -420l282 1415h129l-12 -131h6q76 63 163 109.5t181 46.5q131 0 209 -93t78 -268q0 -143 -45 -268t-120 -217t-172 -145.5t-200 -53.5q-78 0 -139 40t-100 104h-4l-37 -213l-64 -326h-155zM270 250q41 -78 92.5 -111t110.5 -33q74 0 143.5 44.5t122 118t84 168.5 t31.5 200q0 127 -48 189.5t-134 62.5q-70 0 -153 -43t-154 -121z" /> +<glyph unicode="q" horiz-adv-x="1099" d="M80 336q0 143 45 268t121 217t172 145.5t200 53.5q80 0 142.5 -41t97.5 -109h8l39 125h127l-282 -1415h-158l67 326l62 244h-4q-74 -76 -165 -125.5t-185 -49.5q-131 0 -209 92.5t-78 268.5zM242 360q0 -129 49 -191.5t133 -62.5q70 0 154 46.5t159 144.5l90 444 q-43 78 -94 113t-108 35q-74 0 -143.5 -44t-123 -118t-85 -169t-31.5 -198z" /> +<glyph unicode="r" horiz-adv-x="700" d="M63 0l197 995h129l-22 -190h8q59 92 138 153.5t171 61.5q51 0 94 -19l-55 -139q-33 16 -86 17q-74 0 -151.5 -63.5t-141.5 -186.5l-125 -629h-156z" /> +<glyph unicode="s" horiz-adv-x="823" d="M-8 164l98 78q47 -66 112.5 -106t143.5 -40q43 0 81 13.5t67.5 36t46 52t16.5 64.5q0 27 -9 49.5t-29.5 44t-56.5 44t-87 51.5q-117 63 -172.5 124.5t-55.5 147.5q0 66 28 121t74 94t108.5 60.5t131.5 21.5q92 0 165 -37t128 -96l-90 -88q-41 41 -90 69.5t-117 28.5 q-80 0 -134 -46t-54 -110q0 -31 14.5 -55t39 -44.5t56 -39t66.5 -37.5q68 -37 112 -70.5t71.5 -67.5t39 -68.5t11.5 -75.5q0 -70 -28 -127.5t-78 -97.5t-118.5 -61.5t-148.5 -21.5q-49 0 -99.5 14.5t-96.5 40t-84 60.5t-62 74z" /> +<glyph unicode="t" horiz-adv-x="665" d="M123 868l22 117l156 10l74 275h133l-55 -275h252l-25 -127h-256l-117 -569q-6 -37 -6 -74q0 -61 27.5 -92t99.5 -31q29 0 55.5 10.5t48.5 20.5l35 -113q-35 -16 -82 -30.5t-106 -14.5q-66 0 -111 17.5t-73.5 47.5t-41 70t-12.5 87q0 31 3 56.5t8 53.5l116 561h-145z" /> +<glyph unicode="u" horiz-adv-x="1081" d="M115 223q0 35 3 65.5t13 71.5l127 635h158l-125 -614q-8 -41 -12.5 -65.5t-4.5 -51.5q0 -76 35 -114.5t113 -38.5q59 0 131 43t164 137l141 704h156l-199 -995h-129l16 152h-8q-82 -72 -167 -124.5t-177 -52.5q-127 0 -181 67t-54 181z" /> +<glyph unicode="v" horiz-adv-x="917" d="M121 995h155l74 -575q8 -72 14.5 -148.5t14.5 -148.5h8q35 74 72 148.5t76 148.5l292 575h158l-530 -995h-189z" /> +<glyph unicode="w" horiz-adv-x="1447" d="M143 995h156l33 -585q2 -72 3 -140.5t3 -138.5h8q31 70 58.5 138.5t60.5 140.5l262 585h154l34 -585q4 -72 5.5 -140.5t5.5 -138.5h8q29 70 55.5 138.5t59.5 140.5l260 585h147l-452 -995h-195l-29 545q-2 72 -3 145.5t-3 147.5h-8q-31 -74 -60.5 -148t-60.5 -145 l-242 -545h-188z" /> +<glyph unicode="x" horiz-adv-x="878" d="M-90 0l446 528l-186 467h160l86 -221q16 -45 29.5 -85t29.5 -83h8q31 41 64 83t63 85l174 221h170l-409 -501l203 -494h-162l-90 233q-16 45 -34 91.5t-38 93.5h-8q-33 -47 -68 -91t-74 -91l-192 -236h-172z" /> +<glyph unicode="y" horiz-adv-x="917" d="M-127 -399l51 116q37 -18 74 -18q76 0 142.5 61.5t117.5 165.5l37 72l-170 997h156l77 -559q10 -68 18.5 -146.5t14.5 -150.5h8q35 72 73 149t75 148l287 559h155l-586 -1079q-39 -74 -81.5 -136.5t-93 -108.5t-110 -72.5t-130.5 -26.5q-23 0 -54.5 6t-60.5 23z" /> +<glyph unicode="z" horiz-adv-x="839" d="M-20 0l16 90l661 778h-452l26 127h650l-17 -92l-661 -776h520l-25 -127h-718z" /> +<glyph unicode="{" horiz-adv-x="593" d="M66 518l22 103q51 0 87 14t59.5 37.5t36 52.5t18.5 57q18 98 29.5 192.5t33.5 199.5q14 80 37 133t54.5 84.5t76.5 45t107 13.5h94l-21 -92h-53q-82 0 -116.5 -47t-55.5 -146q-16 -88 -29.5 -181t-31.5 -187q-20 -100 -60.5 -155.5t-111.5 -74.5v-8q49 -16 69.5 -48 t20.5 -77q0 -53 -16.5 -128t-37 -153.5t-37 -150.5t-16.5 -121q0 -51 23.5 -75.5t89.5 -24.5h49l-20 -92h-91q-96 0 -138 39t-42 125q0 57 17.5 132.5t39 154.5t39 148.5t17.5 114.5q0 20 -6 42t-21.5 37.5t-44 25.5t-71.5 10z" /> +<glyph unicode="|" horiz-adv-x="473" d="M195 -512v2048h106v-2048h-106z" /> +<glyph unicode="}" horiz-adv-x="600" d="M-106 -311l18 92h53q82 0 118 45t54 145q16 88 30.5 180.5t31.5 188.5q23 102 61.5 157.5t110.5 73.5v9q-51 16 -70.5 47.5t-19.5 77.5q0 53 16 127.5t36.5 152.5t37 149.5t16.5 120.5q0 53 -22.5 78t-88.5 25h-51l21 92h90q98 0 140 -40t42 -124q0 -57 -17.5 -134 t-39 -154.5t-38.5 -149.5t-17 -117q0 -20 6 -39.5t21.5 -35t43 -25.5t72.5 -10l-23 -103q-53 0 -89 -14.5t-59.5 -38t-34.5 -52t-17 -57.5q-18 -98 -29.5 -193t-34.5 -202q-16 -80 -38.5 -132t-54.5 -83t-77 -44t-104 -13h-94z" /> +<glyph unicode="~" d="M92 641q51 96 115.5 139t128.5 43q55 0 101 -27.5t88 -60.5t80 -60.5t79 -27.5q45 0 81 30t71 95l88 -57q-51 -96 -116 -139.5t-128 -43.5q-55 0 -101.5 28t-88 60.5t-79.5 60.5t-79 28q-45 0 -81 -30t-71 -95z" /> +<glyph unicode="¡" horiz-adv-x="577" d="M43 -379l39 189l176 784h111l-138 -784l-30 -189h-158zM258 879q0 53 37 97t96 44q45 0 70.5 -28.5t25.5 -73.5q0 -27 -10 -52.5t-28.5 -46t-43 -33t-55.5 -12.5q-45 0 -68.5 30t-23.5 75z" /> +<glyph unicode="¢" d="M160 588q0 127 43 230.5t113.5 177t158.5 116.5t178 51l41 209h101l-41 -211q76 -10 130 -49t95 -86l-96 -92q-35 41 -71 65.5t-85 32.5l-141 -715q66 4 121 29t102 60l55 -107q-66 -41 -137.5 -73.5t-165.5 -39.5l-43 -215h-102l43 217q-139 20 -219 123t-80 277z M315 614q0 -117 42 -192.5t128 -97.5l142 706q-61 -10 -117.5 -45t-99.5 -89t-69 -126t-26 -156z" /> +<glyph unicode="£" d="M8 0l19 94q147 72 221 197t74 272v17h-197l22 110l166 10q-4 49 -8 97.5t-4 89.5q0 104 32 187t87 141.5t132 90t167 31.5q104 0 174 -50t113 -120l-107 -84q-35 55 -81 90t-107 35q-113 0 -187.5 -88t-74.5 -243q0 -41 4 -85t8 -92h317l-24 -120h-287q-2 -141 -45 -245 t-135 -192l-2 -8h530l-24 -135h-783z" /> +<glyph unicode="¤" d="M23 322l145 127q-14 33 -22.5 70.5t-8.5 84.5q0 92 33 174t90 144l-96 125l90 75l98 -129q53 37 112.5 57.5t123.5 20.5q63 0 114.5 -20.5t90.5 -55.5l149 129l72 -86l-150 -129q33 -70 33 -155q0 -92 -31.5 -171t-85.5 -139l109 -139l-88 -74l-111 140 q-53 -41 -115.5 -63.5t-128.5 -22.5q-131 0 -204 80l-148 -129zM285 621q0 -104 46 -161t132 -57q53 0 104 26t92 70t66 105.5t25 132.5q0 104 -46.5 160.5t-132.5 56.5q-53 0 -104 -25.5t-92 -70.5t-65.5 -106.5t-24.5 -130.5z" /> +<glyph unicode="¥" d="M57 330l19 86h319l25 141h-318l19 88h278l-186 662h160l84 -361q14 -68 29.5 -136.5t31.5 -141.5h6q47 76 89 144.5t87 133.5l222 361h157l-442 -662h278l-20 -88h-317l-27 -141h319l-20 -86h-320l-65 -330h-156l68 330h-320z" /> +<glyph unicode="¦" horiz-adv-x="473" d="M195 436h106v-948h-106v948zM195 592v944h106v-944h-106z" /> +<glyph unicode="§" horiz-adv-x="976" d="M31 31l84 102q53 -57 122.5 -95t143.5 -38q78 0 130 45t52 117q0 53 -32.5 92t-83 71.5t-108.5 63.5t-108.5 71t-83 93t-32.5 129q0 111 61.5 187.5t159.5 117.5q-33 55 -33 119q0 68 23.5 122t64.5 92t97.5 59.5t123.5 21.5q92 0 171 -42t139 -108l-88 -92 q-43 49 -100.5 84t-123.5 35q-63 0 -112 -40t-49 -112q0 -49 32.5 -85.5t82.5 -70.5t108.5 -68t108.5 -76t83 -97t33 -131q0 -119 -57.5 -186.5t-159.5 -114.5q27 -53 27 -113q0 -66 -25 -122t-70 -97t-105.5 -64.5t-133.5 -23.5q-92 0 -181.5 41t-160.5 113zM254 705 q0 -61 37 -103.5t91 -77.5t116.5 -67.5t111.5 -75.5q72 27 110 71t38 126q0 59 -36 103t-89 81t-113.5 71.5t-111.5 75.5q-68 -29 -111 -78t-43 -126z" /> +<glyph unicode="¨" horiz-adv-x="1058" d="M436 1288q0 47 30.5 80t73.5 33q37 0 60.5 -22.5t23.5 -63.5q0 -47 -31.5 -78t-74.5 -31q-35 0 -58.5 21.5t-23.5 60.5zM776 1288q0 47 30.5 80t73.5 33q37 0 59.5 -22.5t22.5 -63.5q0 -47 -30.5 -78t-73.5 -31q-35 0 -58.5 21.5t-23.5 60.5z" /> +<glyph unicode="©" horiz-adv-x="1361" d="M74 545q0 152 53 294t150.5 252.5t234.5 178t303 67.5q119 0 218.5 -42t170 -116.5t110.5 -178t40 -228.5q0 -152 -53.5 -295t-151.5 -253.5t-235.5 -178.5t-303.5 -68q-119 0 -218 42t-169.5 117t-109.5 179.5t-39 229.5zM162 555q0 -109 30.5 -199t89 -155.5 t143.5 -102.5t191 -37q143 0 263 60.5t206 160t133.5 225.5t47.5 255q0 109 -31 199t-90.5 155.5t-144.5 102t-191 36.5q-143 0 -262 -60t-205 -159.5t-133 -225.5t-47 -255zM369 565q0 113 38.5 202t100 151.5t137.5 96.5t150 34q72 0 119 -31t81 -74l-75 -70 q-29 35 -61 53.5t-79 18.5q-49 0 -100 -26.5t-94 -74.5t-70 -114.5t-27 -146.5q0 -111 54.5 -167.5t146.5 -56.5q57 0 103.5 24t97.5 56l51 -80q-63 -47 -127.5 -75.5t-146.5 -28.5q-133 0 -216 78.5t-83 230.5z" /> +<glyph unicode="ª" horiz-adv-x="724" d="M123 772q0 94 30.5 176t81 142.5t115 95.5t133.5 35q47 0 88 -23.5t64 -73.5h8l29 80h94l-131 -659h-96l12 98h-8q-47 -53 -106.5 -84t-121.5 -31q-88 0 -140 62.5t-52 181.5zM242 786q0 -82 31.5 -119.5t80.5 -37.5q47 0 102.5 33.5t102.5 93.5l53 272 q-27 53 -58.5 73.5t-66.5 20.5q-47 0 -91 -27.5t-77.5 -73.5t-55 -107.5t-21.5 -127.5z" /> +<glyph unicode="«" horiz-adv-x="841" d="M82 461l22 127l320 303l57 -60l-291 -319l175 -330l-72 -45zM408 461l22 127l320 303l57 -60l-291 -319l175 -330l-72 -45z" /> +<glyph unicode="¬" d="M98 618v117h840v-524h-123v407h-717z" /> +<glyph unicode="­" horiz-adv-x="612" d="M74 455l24 120h449l-27 -120h-446z" /> +<glyph unicode="®" horiz-adv-x="831" d="M150 1008q0 86 30.5 165.5t84.5 142t129 100.5t163 38q68 0 128 -25.5t105.5 -71.5t73 -109.5t27.5 -139.5q0 -86 -31 -167t-86 -143.5t-130 -99t-163 -36.5q-68 0 -128 25.5t-105 70.5t-71.5 108.5t-26.5 141.5zM225 1016q0 -61 17.5 -112.5t51.5 -90.5t83 -60.5 t110 -21.5q68 0 128.5 30t104.5 80t69.5 117.5t25.5 141.5q0 123 -70.5 202.5t-193.5 79.5q-70 0 -129.5 -29.5t-103.5 -79.5t-68.5 -116.5t-24.5 -140.5zM346 854l84 414h135q59 0 94 -31t35 -88q0 -47 -26.5 -82t-73.5 -51l57 -162h-82l-45 143h-69l-31 -143h-78z M467 1059h45q47 0 73.5 22.5t26.5 59.5q0 61 -67 61h-51z" /> +<glyph unicode="¯" horiz-adv-x="1058" d="M444 1231l21 110h479l-19 -110h-481z" /> +<glyph unicode="°" horiz-adv-x="641" d="M207 1112q0 59 21.5 111.5t57.5 92.5t85 63.5t104 23.5q94 0 155.5 -62.5t61.5 -164.5q0 -59 -21.5 -111.5t-57 -92.5t-84 -63.5t-103.5 -23.5q-96 0 -157.5 62.5t-61.5 164.5zM303 1116q0 -59 34 -100t95 -41q37 0 66.5 16.5t51 44t34 63.5t12.5 72q0 59 -34 101.5 t-95 42.5q-37 0 -67.5 -17.5t-52 -45t-33 -63.5t-11.5 -73z" /> +<glyph unicode="±" d="M98 0v119h840v-119h-840zM98 645v119h359v371h123v-371h358v-119h-360v-379h-123v379h-357z" /> +<glyph unicode="²" horiz-adv-x="722" d="M178 901l14 78q125 88 215.5 158.5t147.5 130t83.5 114t26.5 109.5q0 59 -32.5 93t-98.5 34q-43 0 -85 -27.5t-80 -68.5l-72 73q57 55 117.5 92t138.5 37q111 0 174 -57t63 -158q0 -63 -25.5 -122.5t-75.5 -119t-125 -124t-173 -138.5h334l-21 -104h-526z" /> +<glyph unicode="³" horiz-adv-x="718" d="M176 1040l84 60q29 -53 73 -88t111 -35q72 0 123 38t51 109q0 59 -51 102.5t-168 43.5l19 84q70 0 117 14t75.5 36.5t40.5 51.5t12 57q0 51 -32.5 82t-92.5 31q-84 0 -169 -68l-56 84q59 43 119.5 62.5t128.5 19.5q100 0 162.5 -51t62.5 -143q0 -76 -48 -135.5 t-138 -87.5q70 -25 104.5 -76t34.5 -105q0 -59 -23.5 -105t-62.5 -79t-92 -49.5t-111 -16.5q-100 0 -169.5 49.5t-104.5 114.5z" /> +<glyph unicode="´" horiz-adv-x="1058" d="M538 1169l238 289h168l-279 -289h-127z" /> +<glyph unicode="µ" horiz-adv-x="1077" d="M-20 -391l276 1386h158l-125 -614q-8 -41 -12.5 -65.5t-4.5 -51.5q0 -76 35 -114.5t113 -38.5q59 0 131 43t164 137l141 704h154l-197 -995h-129l16 152h-8q-72 -72 -145.5 -121t-151.5 -49q-59 0 -105 22.5t-69 81.5l-26 -170l-60 -307h-155z" /> +<glyph unicode="¶" horiz-adv-x="1095" d="M150 825q0 131 47 229.5t124.5 162t179 95t210.5 31.5h98l-178 -878h-31q-92 0 -174 23.5t-143.5 68.5t-97 112.5t-35.5 155.5zM614 -164l299 1507h158l-301 -1507h-156z" /> +<glyph unicode="·" horiz-adv-x="495" d="M162 651q0 53 39 98t98 45q45 0 70 -29.5t25 -74.5q0 -53 -38.5 -97.5t-97.5 -44.5q-45 0 -70.5 29t-25.5 74z" /> +<glyph unicode="¸" horiz-adv-x="1058" d="M198 -365q82 14 137.5 43t55.5 80q0 35 -24.5 53.5t-84.5 34.5l111 160h106l-77 -115q37 -14 64.5 -41.5t27.5 -74.5q0 -49 -26 -86t-69 -62.5t-98 -41t-115 -21.5z" /> +<glyph unicode="¹" horiz-adv-x="729" d="M364 1540l17 80q80 12 128 29.5t97 50.5h96l-157 -799h-123l127 639h-185z" /> +<glyph unicode="º" horiz-adv-x="712" d="M121 795q0 96 31.5 175t83 134t117 86t132.5 31q111 0 177.5 -70t66.5 -195q0 -98 -31.5 -177t-83 -134t-118 -86t-134.5 -31q-111 0 -176 70t-65 197zM238 801q0 -84 34.5 -129t100.5 -45q47 0 90 25.5t75.5 69.5t52 103.5t19.5 124.5q0 82 -33.5 128t-99.5 46 q-49 0 -92 -25.5t-76 -70.5t-52 -103.5t-19 -123.5z" /> +<glyph unicode="»" horiz-adv-x="841" d="M47 197l289 319l-174 330l74 45l210 -324l-22 -127l-320 -303zM373 197l289 319l-174 330l74 45l210 -324l-22 -127l-320 -303z" /> +<glyph unicode="¼" horiz-adv-x="1531" d="M243 1192l17 80q80 12 128 29.5t97 50.5h96l-157 -799h-123l127 639h-185zM248 -25l991 1401h107l-992 -1401h-106zM821 217l15 68l438 514h133l-98 -494h117l-19 -88h-115l-43 -217h-110l43 217h-361zM963 305h237l31 156l53 221h-8l-137 -172z" /> +<glyph unicode="½" horiz-adv-x="1581" d="M203 -25l991 1401h107l-992 -1401h-106zM235 1192l17 80q80 12 128 29.5t97 50.5h96l-157 -799h-123l127 639h-185zM860 0l14 78q125 88 215.5 158.5t147.5 130t83.5 114t26.5 109.5q0 59 -32.5 93t-98.5 34q-43 0 -85 -27.5t-80 -68.5l-72 73q57 55 117.5 92t138.5 37 q111 0 174 -57t63 -158q0 -63 -25.5 -122.5t-75.5 -119t-125 -124t-173 -138.5h334l-21 -104h-526z" /> +<glyph unicode="¾" horiz-adv-x="1564" d="M94 692l84 60q29 -53 73 -88t111 -35q72 0 123 38t51 109q0 59 -51 102.5t-168 43.5l19 84q70 0 117 14t75.5 36.5t40.5 51.5t12 57q0 51 -32.5 82t-92.5 31q-84 0 -169 -68l-56 84q59 43 119.5 62.5t128.5 19.5q100 0 162.5 -51t62.5 -143q0 -76 -48 -135.5t-138 -87.5 q70 -25 104.5 -76t34.5 -105q0 -59 -23.5 -105t-62.5 -79t-92 -49.5t-111 -16.5q-100 0 -169.5 49.5t-104.5 114.5zM318 -25l991 1401h107l-992 -1401h-106zM858 217l15 68l438 514h133l-98 -494h117l-19 -88h-115l-43 -217h-110l43 217h-361zM1000 305h237l31 156l53 221 h-8l-137 -172z" /> +<glyph unicode="¿" horiz-adv-x="837" d="M-8 -115q0 82 29.5 145.5t73.5 117t97.5 101.5t100.5 100t81 111.5t42 137.5l135 -12q-6 -86 -38 -151.5t-77 -120t-96 -100.5t-94 -93t-72 -97.5t-29 -113.5q0 -84 46.5 -131t127.5 -47q59 0 116 28.5t102 77.5l81 -94q-59 -63 -141 -103t-174 -40q-143 0 -227 74.5 t-84 209.5zM424 881q0 53 37 97t96 44q45 0 71.5 -28.5t26.5 -73.5q0 -51 -38.5 -97.5t-98.5 -46.5q-47 0 -70.5 30t-23.5 75z" /> +<glyph unicode="À" horiz-adv-x="1044" d="M-109 0l730 1343h184l156 -1343h-166l-37 420h-475l-215 -420h-177zM346 543h399l-20 229q-10 106 -19.5 214t-17.5 224h-8q-53 -117 -105.5 -222t-109.5 -216zM494 1671h168l139 -225h-125z" /> +<glyph unicode="Á" horiz-adv-x="1044" d="M-109 0l730 1343h184l156 -1343h-166l-37 420h-475l-215 -420h-177zM346 543h399l-20 229q-10 106 -19.5 214t-17.5 224h-8q-53 -117 -105.5 -222t-109.5 -216zM603 1446l219 225h178l-262 -225h-135z" /> +<glyph unicode="Â" horiz-adv-x="1044" d="M-109 0l730 1343h184l156 -1343h-166l-37 420h-475l-215 -420h-177zM346 543h399l-20 229q-10 106 -19.5 214t-17.5 224h-8q-53 -117 -105.5 -222t-109.5 -216zM441 1446l233 225h148l145 -225h-121l-104 143h-6l-160 -143h-135z" /> +<glyph unicode="Ã" horiz-adv-x="1044" d="M-109 0l730 1343h184l156 -1343h-166l-37 420h-475l-215 -420h-177zM346 543h399l-20 229q-10 106 -19.5 214t-17.5 224h-8q-53 -117 -105.5 -222t-109.5 -216zM422 1456q10 45 30.5 84t47.5 68.5t57.5 46t65.5 16.5q39 0 65.5 -17.5t50 -39t46 -38.5t53.5 -17 q33 0 57.5 28.5t42.5 79.5h90q-23 -92 -78 -153.5t-124 -61.5q-39 0 -65.5 17.5t-49 39t-45.5 40t-53 18.5q-33 0 -57.5 -30t-43.5 -81h-90z" /> +<glyph unicode="Ä" horiz-adv-x="1044" d="M-109 0l730 1343h184l156 -1343h-166l-37 420h-475l-215 -420h-177zM346 543h399l-20 229q-10 106 -19.5 214t-17.5 224h-8q-53 -117 -105.5 -222t-109.5 -216zM465 1546q0 45 31 79t74 34q35 0 58.5 -21.5t23.5 -62.5q0 -43 -31 -77t-74 -34q-35 0 -58.5 21.5 t-23.5 60.5zM805 1546q0 45 31 79t74 34q35 0 57.5 -21.5t22.5 -62.5q0 -43 -30 -77t-73 -34q-35 0 -58.5 21.5t-23.5 60.5z" /> +<glyph unicode="Å" horiz-adv-x="1044" d="M-109 0l730 1343h184l156 -1343h-166l-37 420h-475l-215 -420h-177zM346 543h399l-20 229q-10 106 -19.5 214t-17.5 224h-8q-53 -117 -105.5 -222t-109.5 -216zM547 1589q0 43 16.5 80t44 64.5t64.5 43t78 15.5q72 0 122 -39t50 -123q0 -43 -16.5 -80t-44 -64.5 t-64.5 -43t-78 -15.5q-72 0 -122 39t-50 123zM635 1597q0 -43 23.5 -69.5t64.5 -26.5q45 0 78 35t33 88q0 43 -23.5 68.5t-64.5 25.5q-45 0 -78 -34.5t-33 -86.5z" /> +<glyph unicode="Æ" horiz-adv-x="1644" d="M-68 0l940 1343h824l-29 -133h-559l-86 -436h469l-27 -135h-467l-104 -504h577l-26 -135h-735l79 397h-405l-268 -397h-183zM469 524h344l139 699h-6q-78 -115 -152.5 -223.5t-152.5 -221.5z" /> +<glyph unicode="Ç" horiz-adv-x="1126" d="M117 518q0 158 50 310.5t141 272.5t219 193.5t284 73.5q117 0 199 -56.5t131 -142.5l-111 -84q-41 66 -95 106t-132 40q-121 0 -217.5 -63.5t-164 -164t-104 -224.5t-36.5 -247q0 -92 19 -168.5t60 -132t106.5 -87t156.5 -31.5q82 0 150.5 32.5t133.5 87.5l72 -102 q-74 -66 -168 -111t-217 -45q-115 0 -204 40t-149.5 112t-92 171t-31.5 220zM331 -365q82 14 137.5 43t55.5 80q0 35 -24.5 53.5t-84.5 34.5l111 160h106l-77 -115q37 -14 64.5 -41.5t27.5 -74.5q0 -49 -26 -86t-69 -62.5t-98 -41t-115 -21.5z" /> +<glyph unicode="È" horiz-adv-x="1030" d="M72 0l268 1343h741l-26 -133h-584l-86 -436h494l-29 -135h-490l-104 -504h602l-29 -135h-757zM516 1671h168l139 -225h-125z" /> +<glyph unicode="É" horiz-adv-x="1030" d="M72 0l268 1343h741l-26 -133h-584l-86 -436h494l-29 -135h-490l-104 -504h602l-29 -135h-757zM625 1446l219 225h178l-262 -225h-135z" /> +<glyph unicode="Ê" horiz-adv-x="1030" d="M72 0l268 1343h741l-26 -133h-584l-86 -436h494l-29 -135h-490l-104 -504h602l-29 -135h-757zM463 1446l233 225h148l145 -225h-121l-104 143h-6l-160 -143h-135z" /> +<glyph unicode="Ë" horiz-adv-x="1030" d="M72 0l268 1343h741l-26 -133h-584l-86 -436h494l-29 -135h-490l-104 -504h602l-29 -135h-757zM487 1546q0 45 31 79t74 34q35 0 58.5 -21.5t23.5 -62.5q0 -43 -31 -77t-74 -34q-35 0 -58.5 21.5t-23.5 60.5zM827 1546q0 45 31 79t74 34q35 0 57.5 -21.5t22.5 -62.5 q0 -43 -30 -77t-73 -34q-35 0 -58.5 21.5t-23.5 60.5z" /> +<glyph unicode="Ì" horiz-adv-x="516" d="M72 0l268 1343h160l-269 -1343h-159zM211 1671h168l139 -225h-125z" /> +<glyph unicode="Í" horiz-adv-x="516" d="M72 0l268 1343h160l-269 -1343h-159zM320 1446l219 225h178l-262 -225h-135z" /> +<glyph unicode="Î" horiz-adv-x="516" d="M72 0l268 1343h160l-269 -1343h-159zM158 1446l233 225h148l145 -225h-121l-104 143h-6l-160 -143h-135z" /> +<glyph unicode="Ï" horiz-adv-x="516" d="M72 0l268 1343h160l-269 -1343h-159zM182 1546q0 45 31 79t74 34q35 0 58.5 -21.5t23.5 -62.5q0 -43 -31 -77t-74 -34q-35 0 -58.5 21.5t-23.5 60.5zM522 1546q0 45 31 79t74 34q35 0 57.5 -21.5t22.5 -62.5q0 -43 -30 -77t-73 -34q-35 0 -58.5 21.5t-23.5 60.5z" /> +<glyph unicode="Ð" horiz-adv-x="1249" d="M96 664l19 84l143 6l119 589h250q281 0 425 -138t144 -386q0 -182 -50 -333.5t-143.5 -259t-228.5 -167t-305 -59.5h-360l133 664h-146zM293 131h176q131 0 235.5 50t178 139.5t112.5 214t39 274.5q0 193 -104.5 299t-308.5 106h-111l-92 -460h307l-20 -90h-306z" /> +<glyph unicode="Ñ" horiz-adv-x="1267" d="M72 0l268 1343h160l307 -860l86 -280h8q12 100 25.5 211.5t36.5 216.5l141 712h153l-268 -1343h-158l-303 858l-88 289h-8q-12 -104 -27.5 -213t-35.5 -211l-144 -723h-153zM528 1456q10 45 30.5 84t47.5 68.5t57.5 46t65.5 16.5q39 0 65.5 -17.5t50 -39t46 -38.5 t53.5 -17q33 0 57.5 28.5t42.5 79.5h90q-23 -92 -78 -153.5t-124 -61.5q-39 0 -65.5 17.5t-49 39t-45.5 40t-53 18.5q-33 0 -57.5 -30t-43.5 -81h-90z" /> +<glyph unicode="Ò" horiz-adv-x="1296" d="M123 539q0 154 48 302t134 266t206 189.5t265 71.5q113 0 200 -40t145.5 -113.5t89 -177t30.5 -230.5q0 -154 -48 -303.5t-134 -267t-207 -189.5t-264 -72q-113 0 -200 40t-145.5 114t-89 178.5t-30.5 231.5zM285 551q0 -98 18.5 -179t56 -138.5t97 -89t139.5 -31.5 q109 0 198 62.5t152.5 160.5t98 219t34.5 238q0 199 -75.5 318.5t-235.5 119.5q-109 0 -198 -61.5t-152.5 -160t-98 -219t-34.5 -239.5zM614 1671h168l139 -225h-125z" /> +<glyph unicode="Ó" horiz-adv-x="1296" d="M123 539q0 154 48 302t134 266t206 189.5t265 71.5q113 0 200 -40t145.5 -113.5t89 -177t30.5 -230.5q0 -154 -48 -303.5t-134 -267t-207 -189.5t-264 -72q-113 0 -200 40t-145.5 114t-89 178.5t-30.5 231.5zM285 551q0 -98 18.5 -179t56 -138.5t97 -89t139.5 -31.5 q109 0 198 62.5t152.5 160.5t98 219t34.5 238q0 199 -75.5 318.5t-235.5 119.5q-109 0 -198 -61.5t-152.5 -160t-98 -219t-34.5 -239.5zM723 1446l219 225h178l-262 -225h-135z" /> +<glyph unicode="Ô" horiz-adv-x="1296" d="M123 539q0 154 48 302t134 266t206 189.5t265 71.5q113 0 200 -40t145.5 -113.5t89 -177t30.5 -230.5q0 -154 -48 -303.5t-134 -267t-207 -189.5t-264 -72q-113 0 -200 40t-145.5 114t-89 178.5t-30.5 231.5zM285 551q0 -98 18.5 -179t56 -138.5t97 -89t139.5 -31.5 q109 0 198 62.5t152.5 160.5t98 219t34.5 238q0 199 -75.5 318.5t-235.5 119.5q-109 0 -198 -61.5t-152.5 -160t-98 -219t-34.5 -239.5zM561 1446l233 225h148l145 -225h-121l-104 143h-6l-160 -143h-135z" /> +<glyph unicode="Õ" horiz-adv-x="1296" d="M123 539q0 154 48 302t134 266t206 189.5t265 71.5q113 0 200 -40t145.5 -113.5t89 -177t30.5 -230.5q0 -154 -48 -303.5t-134 -267t-207 -189.5t-264 -72q-113 0 -200 40t-145.5 114t-89 178.5t-30.5 231.5zM285 551q0 -98 18.5 -179t56 -138.5t97 -89t139.5 -31.5 q109 0 198 62.5t152.5 160.5t98 219t34.5 238q0 199 -75.5 318.5t-235.5 119.5q-109 0 -198 -61.5t-152.5 -160t-98 -219t-34.5 -239.5zM542 1456q10 45 30.5 84t47.5 68.5t57.5 46t65.5 16.5q39 0 65.5 -17.5t50 -39t46 -38.5t53.5 -17q33 0 57.5 28.5t42.5 79.5h90 q-23 -92 -78 -153.5t-124 -61.5q-39 0 -65.5 17.5t-49 39t-45.5 40t-53 18.5q-33 0 -57.5 -30t-43.5 -81h-90z" /> +<glyph unicode="Ö" horiz-adv-x="1296" d="M123 539q0 154 48 302t134 266t206 189.5t265 71.5q113 0 200 -40t145.5 -113.5t89 -177t30.5 -230.5q0 -154 -48 -303.5t-134 -267t-207 -189.5t-264 -72q-113 0 -200 40t-145.5 114t-89 178.5t-30.5 231.5zM285 551q0 -98 18.5 -179t56 -138.5t97 -89t139.5 -31.5 q109 0 198 62.5t152.5 160.5t98 219t34.5 238q0 199 -75.5 318.5t-235.5 119.5q-109 0 -198 -61.5t-152.5 -160t-98 -219t-34.5 -239.5zM585 1546q0 45 31 79t74 34q35 0 58.5 -21.5t23.5 -62.5q0 -43 -31 -77t-74 -34q-35 0 -58.5 21.5t-23.5 60.5zM925 1546q0 45 31 79 t74 34q35 0 57.5 -21.5t22.5 -62.5q0 -43 -30 -77t-73 -34q-35 0 -58.5 21.5t-23.5 60.5z" /> +<glyph unicode="×" d="M133 360l303 318l-303 317l82 82l303 -317l303 317l84 -82l-305 -317l305 -318l-84 -84l-303 320l-303 -320z" /> +<glyph unicode="Ø" horiz-adv-x="1296" d="M-6 10l194 207q-66 135 -65 322q0 154 48 302t134 266t206 189.5t265 71.5q115 0 201 -40t145 -116l183 195l73 -72l-198 -213q61 -133 61 -315q0 -154 -48 -303.5t-134 -267t-207 -189.5t-264 -72q-111 0 -196 38t-144 110l-172 -184zM285 551q0 -117 24 -205l705 750 q-39 66 -99.5 100.5t-146.5 34.5q-109 0 -198 -61.5t-152.5 -160t-98 -219t-34.5 -239.5zM356 240q39 -59 97.5 -93t142.5 -34q109 0 198 62.5t152.5 160.5t98 219t34.5 238q0 106 -22 196z" /> +<glyph unicode="Ù" horiz-adv-x="1261" d="M162 399q0 43 5 91.5t15 99.5l152 753h160l-154 -768q-18 -92 -18 -161q0 -145 65.5 -223t206.5 -78q57 0 109.5 22.5t97.5 71.5t78.5 126t56.5 187l166 823h155l-167 -829q-29 -145 -77 -247.5t-113.5 -167t-144.5 -94.5t-169 -30q-205 0 -314.5 106.5t-109.5 317.5z M594 1671h168l139 -225h-125z" /> +<glyph unicode="Ú" horiz-adv-x="1261" d="M162 399q0 43 5 91.5t15 99.5l152 753h160l-154 -768q-18 -92 -18 -161q0 -145 65.5 -223t206.5 -78q57 0 109.5 22.5t97.5 71.5t78.5 126t56.5 187l166 823h155l-167 -829q-29 -145 -77 -247.5t-113.5 -167t-144.5 -94.5t-169 -30q-205 0 -314.5 106.5t-109.5 317.5z M703 1446l219 225h178l-262 -225h-135z" /> +<glyph unicode="Û" horiz-adv-x="1261" d="M162 399q0 43 5 91.5t15 99.5l152 753h160l-154 -768q-18 -92 -18 -161q0 -145 65.5 -223t206.5 -78q57 0 109.5 22.5t97.5 71.5t78.5 126t56.5 187l166 823h155l-167 -829q-29 -145 -77 -247.5t-113.5 -167t-144.5 -94.5t-169 -30q-205 0 -314.5 106.5t-109.5 317.5z M541 1446l233 225h148l145 -225h-121l-104 143h-6l-160 -143h-135z" /> +<glyph unicode="Ü" horiz-adv-x="1261" d="M162 399q0 43 5 91.5t15 99.5l152 753h160l-154 -768q-18 -92 -18 -161q0 -145 65.5 -223t206.5 -78q57 0 109.5 22.5t97.5 71.5t78.5 126t56.5 187l166 823h155l-167 -829q-29 -145 -77 -247.5t-113.5 -167t-144.5 -94.5t-169 -30q-205 0 -314.5 106.5t-109.5 317.5z M565 1546q0 45 31 79t74 34q35 0 58.5 -21.5t23.5 -62.5q0 -43 -31 -77t-74 -34q-35 0 -58.5 21.5t-23.5 60.5zM905 1546q0 45 31 79t74 34q35 0 57.5 -21.5t22.5 -62.5q0 -43 -30 -77t-73 -34q-35 0 -58.5 21.5t-23.5 60.5z" /> +<glyph unicode="Ý" horiz-adv-x="944" d="M170 1343h164l92 -387q18 -74 33.5 -143.5t34.5 -146.5h8q47 76 91 147.5t93 144.5l254 385h170l-561 -819l-107 -524h-157l104 524zM527 1446l219 225h178l-262 -225h-135z" /> +<glyph unicode="Þ" horiz-adv-x="1150" d="M72 0l268 1352h160l-47 -236h235q92 0 167 -18.5t128 -58.5t83 -102.5t30 -148.5q0 -123 -44 -213t-122 -148t-185.5 -87t-236.5 -29h-217l-62 -311h-157zM319 440h193q211 0 318.5 83t107.5 243q0 117 -76 169t-221 52h-215z" /> +<glyph unicode="ß" horiz-adv-x="1136" d="M63 0l216 1075q18 84 55 158t91 129t126 88t158 33q61 0 114.5 -16.5t93 -50.5t63.5 -85t24 -119q0 -63 -20.5 -111t-50.5 -87t-64.5 -71t-64.5 -62.5t-50.5 -63.5t-20.5 -74t22.5 -71.5t55.5 -59t73 -58.5t72.5 -65.5t55 -82t22.5 -109.5q0 -68 -25.5 -126t-71.5 -101 t-107.5 -69t-135.5 -26q-76 0 -149.5 26t-136.5 77l71 104q47 -39 99.5 -61.5t115.5 -22.5q80 0 136.5 50.5t56.5 127.5q0 49 -22.5 86t-57.5 68t-74 59.5t-73.5 61.5t-57 72t-22.5 92t20.5 95t50 77t65.5 67.5t65.5 68.5t50 77t20.5 96q0 70 -35 115t-115 45 q-53 0 -97 -25.5t-78.5 -68.5t-59.5 -100.5t-39 -123.5l-209 -1038h-156z" /> +<glyph unicode="à" horiz-adv-x="1099" d="M80 336q0 143 45 268t121 217t172 145.5t200 53.5q80 0 142.5 -41t97.5 -109h8l39 125h127l-198 -995h-129l16 147h-8q-72 -78 -162 -125t-184 -47q-131 0 -209 92.5t-78 268.5zM242 360q0 -129 49 -191.5t133 -62.5q78 0 159 46.5t154 144.5l90 444q-43 78 -94 113 t-108 35q-74 0 -143.5 -44t-123 -118t-85 -169t-31.5 -198zM514 1458h153l121 -289h-114z" /> +<glyph unicode="á" horiz-adv-x="1099" d="M80 336q0 143 45 268t121 217t172 145.5t200 53.5q80 0 142.5 -41t97.5 -109h8l39 125h127l-198 -995h-129l16 147h-8q-72 -78 -162 -125t-184 -47q-131 0 -209 92.5t-78 268.5zM242 360q0 -129 49 -191.5t133 -62.5q78 0 159 46.5t154 144.5l90 444q-43 78 -94 113 t-108 35q-74 0 -143.5 -44t-123 -118t-85 -169t-31.5 -198zM532 1169l238 289h168l-279 -289h-127z" /> +<glyph unicode="â" horiz-adv-x="1099" d="M80 336q0 143 45 268t121 217t172 145.5t200 53.5q80 0 142.5 -41t97.5 -109h8l39 125h127l-198 -995h-129l16 147h-8q-72 -78 -162 -125t-184 -47q-131 0 -209 92.5t-78 268.5zM242 360q0 -129 49 -191.5t133 -62.5q78 0 159 46.5t154 144.5l90 444q-43 78 -94 113 t-108 35q-74 0 -143.5 -44t-123 -118t-85 -169t-31.5 -198zM416 1169l249 289h117l135 -289h-108l-97 189h-8l-170 -189h-118z" /> +<glyph unicode="ã" horiz-adv-x="1099" d="M80 336q0 143 45 268t121 217t172 145.5t200 53.5q80 0 142.5 -41t97.5 -109h8l39 125h127l-198 -995h-129l16 147h-8q-72 -78 -162 -125t-184 -47q-131 0 -209 92.5t-78 268.5zM242 360q0 -129 49 -191.5t133 -62.5q78 0 159 46.5t154 144.5l90 444q-43 78 -94 113 t-108 35q-74 0 -143.5 -44t-123 -118t-85 -169t-31.5 -198zM397 1188q27 92 77 150.5t116 58.5q43 0 71.5 -17.5t51 -37t44 -37t54.5 -17.5q27 0 49 29t43 76h90q-27 -92 -77 -150.5t-115 -58.5q-45 0 -73 17.5t-50.5 36.5t-45 36.5t-55.5 17.5q-25 0 -47 -28.5t-43 -75.5 h-90z" /> +<glyph unicode="ä" horiz-adv-x="1099" d="M80 336q0 143 45 268t121 217t172 145.5t200 53.5q80 0 142.5 -41t97.5 -109h8l39 125h127l-198 -995h-129l16 147h-8q-72 -78 -162 -125t-184 -47q-131 0 -209 92.5t-78 268.5zM242 360q0 -129 49 -191.5t133 -62.5q78 0 159 46.5t154 144.5l90 444q-43 78 -94 113 t-108 35q-74 0 -143.5 -44t-123 -118t-85 -169t-31.5 -198zM430 1288q0 47 30.5 80t73.5 33q37 0 60.5 -22.5t23.5 -63.5q0 -47 -31.5 -78t-74.5 -31q-35 0 -58.5 21.5t-23.5 60.5zM770 1288q0 47 30.5 80t73.5 33q37 0 59.5 -22.5t22.5 -63.5q0 -47 -30.5 -78t-73.5 -31 q-35 0 -58.5 21.5t-23.5 60.5z" /> +<glyph unicode="å" horiz-adv-x="1099" d="M80 336q0 143 45 268t121 217t172 145.5t200 53.5q80 0 142.5 -41t97.5 -109h8l39 125h127l-198 -995h-129l16 147h-8q-72 -78 -162 -125t-184 -47q-131 0 -209 92.5t-78 268.5zM242 360q0 -129 49 -191.5t133 -62.5q78 0 159 46.5t154 144.5l90 444q-43 78 -94 113 t-108 35q-74 0 -143.5 -44t-123 -118t-85 -169t-31.5 -198zM506 1274q0 43 15 81t43 66.5t64.5 45t77.5 16.5q74 0 122 -43t48 -125q0 -43 -15 -81t-42 -66.5t-63.5 -45t-77.5 -16.5q-74 0 -123 43t-49 125zM596 1280q0 -45 22.5 -72.5t63.5 -27.5q43 0 74.5 38.5t31.5 92.5 q0 43 -22.5 70.5t-63.5 27.5q-43 0 -74.5 -38t-31.5 -91z" /> +<glyph unicode="æ" horiz-adv-x="1558" d="M66 217q0 106 48 180t134 121t205.5 70.5t263.5 27.5q6 29 8 48.5t2 42.5q0 92 -40 139t-132 47q-66 0 -136.5 -24.5t-142.5 -65.5l-43 115q78 43 170.5 72.5t184.5 29.5q102 0 168.5 -48t83.5 -147q70 92 158.5 143.5t183.5 51.5q84 0 142 -27.5t95 -76t54.5 -115 t17.5 -142.5q0 -59 -13.5 -112t-23.5 -82h-620q-12 -82 0 -149.5t44.5 -114.5t83 -74t115.5 -27q59 0 117.5 26t105.5 60l62 -104q-59 -43 -139 -75t-176 -32q-109 0 -194 56.5t-120 140.5q-98 -92 -199.5 -144.5t-211.5 -52.5q-53 0 -99.5 15.5t-81.5 46.5t-55 76t-20 104z M219 250q0 -72 45 -111t115 -39q63 0 145 43t168 133q-8 66 -7 118t11 118q-223 -6 -350 -71.5t-127 -190.5zM850 571h496q4 29 7 51.5t3 51.5q0 43 -10.5 83t-33 70.5t-59 49t-90.5 18.5q-47 0 -95 -22.5t-90 -65.5t-76 -102.5t-52 -133.5z" /> +<glyph unicode="ç" horiz-adv-x="890" d="M76 375q0 139 46 257t123 204t177 135t209 49q90 0 151.5 -35t106.5 -86l-92 -98q-39 47 -78 68.5t-98 21.5q-74 0 -143.5 -41t-124 -109.5t-86 -161t-31.5 -194.5q0 -135 58 -207t177 -72q66 0 120 27t101 62l70 -103q-53 -41 -131 -79t-189 -38q-164 0 -265 103.5 t-101 296.5zM178 -365q82 14 137.5 43t55.5 80q0 35 -24.5 53.5t-84.5 34.5l111 160h106l-77 -115q37 -14 64.5 -41.5t27.5 -74.5q0 -49 -26 -86t-69 -62.5t-98 -41t-115 -21.5z" /> +<glyph unicode="è" horiz-adv-x="985" d="M76 391q0 141 47 257t121.5 199t170 128t193.5 45q84 0 142.5 -27.5t95.5 -76t53 -115t16 -142.5q0 -59 -12 -112t-22 -82h-648q-14 -96 2.5 -165t54.5 -114t93 -65.5t121 -20.5q59 0 117.5 26t105.5 60l61 -104q-59 -43 -141 -75t-180 -32q-178 0 -284.5 107.5 t-106.5 308.5zM250 571h522q4 25 7 49.5t3 53.5q0 43 -10 83t-32.5 70.5t-59.5 49t-90 18.5q-55 0 -107.5 -22.5t-97.5 -65.5t-81 -102.5t-54 -133.5zM484 1458h153l121 -289h-114z" /> +<glyph unicode="é" horiz-adv-x="985" d="M76 391q0 141 47 257t121.5 199t170 128t193.5 45q84 0 142.5 -27.5t95.5 -76t53 -115t16 -142.5q0 -59 -12 -112t-22 -82h-648q-14 -96 2.5 -165t54.5 -114t93 -65.5t121 -20.5q59 0 117.5 26t105.5 60l61 -104q-59 -43 -141 -75t-180 -32q-178 0 -284.5 107.5 t-106.5 308.5zM250 571h522q4 25 7 49.5t3 53.5q0 43 -10 83t-32.5 70.5t-59.5 49t-90 18.5q-55 0 -107.5 -22.5t-97.5 -65.5t-81 -102.5t-54 -133.5zM502 1169l238 289h168l-279 -289h-127z" /> +<glyph unicode="ê" horiz-adv-x="985" d="M76 391q0 141 47 257t121.5 199t170 128t193.5 45q84 0 142.5 -27.5t95.5 -76t53 -115t16 -142.5q0 -59 -12 -112t-22 -82h-648q-14 -96 2.5 -165t54.5 -114t93 -65.5t121 -20.5q59 0 117.5 26t105.5 60l61 -104q-59 -43 -141 -75t-180 -32q-178 0 -284.5 107.5 t-106.5 308.5zM250 571h522q4 25 7 49.5t3 53.5q0 43 -10 83t-32.5 70.5t-59.5 49t-90 18.5q-55 0 -107.5 -22.5t-97.5 -65.5t-81 -102.5t-54 -133.5zM386 1169l249 289h117l135 -289h-108l-97 189h-8l-170 -189h-118z" /> +<glyph unicode="ë" horiz-adv-x="985" d="M76 391q0 141 47 257t121.5 199t170 128t193.5 45q84 0 142.5 -27.5t95.5 -76t53 -115t16 -142.5q0 -59 -12 -112t-22 -82h-648q-14 -96 2.5 -165t54.5 -114t93 -65.5t121 -20.5q59 0 117.5 26t105.5 60l61 -104q-59 -43 -141 -75t-180 -32q-178 0 -284.5 107.5 t-106.5 308.5zM250 571h522q4 25 7 49.5t3 53.5q0 43 -10 83t-32.5 70.5t-59.5 49t-90 18.5q-55 0 -107.5 -22.5t-97.5 -65.5t-81 -102.5t-54 -133.5zM400 1288q0 47 30.5 80t73.5 33q37 0 60.5 -22.5t23.5 -63.5q0 -47 -31.5 -78t-74.5 -31q-35 0 -58.5 21.5t-23.5 60.5z M740 1288q0 47 30.5 80t73.5 33q37 0 59.5 -22.5t22.5 -63.5q0 -47 -30.5 -78t-73.5 -31q-35 0 -58.5 21.5t-23.5 60.5z" /> +<glyph unicode="ì" horiz-adv-x="485" d="M63 0l199 995h158l-201 -995h-156zM221 1458h153l121 -289h-114z" /> +<glyph unicode="í" horiz-adv-x="485" d="M63 0l199 995h158l-201 -995h-156zM239 1169l238 289h168l-279 -289h-127z" /> +<glyph unicode="î" horiz-adv-x="485" d="M63 0l199 995h158l-201 -995h-156zM123 1169l249 289h117l135 -289h-108l-97 189h-8l-170 -189h-118z" /> +<glyph unicode="ï" horiz-adv-x="485" d="M63 0l199 995h158l-201 -995h-156zM137 1288q0 47 30.5 80t73.5 33q37 0 60.5 -22.5t23.5 -63.5q0 -47 -31.5 -78t-74.5 -31q-35 0 -58.5 21.5t-23.5 60.5zM477 1288q0 47 30.5 80t73.5 33q37 0 59.5 -22.5t22.5 -63.5q0 -47 -30.5 -78t-73.5 -31q-35 0 -58.5 21.5 t-23.5 60.5z" /> +<glyph unicode="ð" horiz-adv-x="1073" d="M88 352q0 106 33 208t94 180.5t148.5 126.5t197.5 48q74 0 138.5 -38.5t109.5 -106.5q-8 123 -39 219t-86 176l-301 -125l-33 84l277 115q-76 86 -195 162l74 94q72 -41 134 -92t116 -111l297 123l32 -84l-272 -112q70 -102 109 -227.5t39 -280.5q0 -145 -35 -278.5 t-101.5 -235t-163 -162t-219.5 -60.5q-76 0 -140 29t-112.5 79t-75 118.5t-26.5 150.5zM231 367q0 -53 15.5 -100.5t44 -83.5t72 -56.5t98.5 -20.5q74 0 135 42t106.5 114t73 167t33.5 204q-41 61 -97.5 109.5t-136.5 48.5t-143 -37t-107 -96.5t-69 -135.5t-25 -155z" /> +<glyph unicode="ñ" horiz-adv-x="1075" d="M63 0l197 995h129l-14 -149h8q86 74 170 124t178 50q127 0 181.5 -65.5t54.5 -182.5q0 -35 -3 -65.5t-14 -71.5l-127 -635h-155l123 614q8 41 12 66t4 51q0 76 -35 115t-113 39q-59 0 -131.5 -43t-167.5 -137l-141 -705h-156zM430 1188q27 92 77 150.5t116 58.5 q43 0 71.5 -17.5t51 -37t44 -37t54.5 -17.5q27 0 49 29t43 76h90q-27 -92 -77 -150.5t-115 -58.5q-45 0 -73 17.5t-50.5 36.5t-45 36.5t-55.5 17.5q-25 0 -47 -28.5t-43 -75.5h-90z" /> +<glyph unicode="ò" horiz-adv-x="1054" d="M80 375q0 141 45 260t121 204t172 133t198 48q162 0 259.5 -106.5t97.5 -292.5q0 -141 -46 -260t-121 -204t-172.5 -133.5t-199.5 -48.5q-162 0 -258 106.5t-96 293.5zM238 385q0 -135 54 -207t159 -72q70 0 134 40t115.5 108t82 160t30.5 196q0 135 -54.5 208t-158.5 73 q-68 0 -133.5 -40t-116.5 -108.5t-81.5 -161t-30.5 -196.5zM520 1458h153l121 -289h-114z" /> +<glyph unicode="ó" horiz-adv-x="1054" d="M80 375q0 141 45 260t121 204t172 133t198 48q162 0 259.5 -106.5t97.5 -292.5q0 -141 -46 -260t-121 -204t-172.5 -133.5t-199.5 -48.5q-162 0 -258 106.5t-96 293.5zM238 385q0 -135 54 -207t159 -72q70 0 134 40t115.5 108t82 160t30.5 196q0 135 -54.5 208t-158.5 73 q-68 0 -133.5 -40t-116.5 -108.5t-81.5 -161t-30.5 -196.5zM538 1169l238 289h168l-279 -289h-127z" /> +<glyph unicode="ô" horiz-adv-x="1054" d="M80 375q0 141 45 260t121 204t172 133t198 48q162 0 259.5 -106.5t97.5 -292.5q0 -141 -46 -260t-121 -204t-172.5 -133.5t-199.5 -48.5q-162 0 -258 106.5t-96 293.5zM238 385q0 -135 54 -207t159 -72q70 0 134 40t115.5 108t82 160t30.5 196q0 135 -54.5 208t-158.5 73 q-68 0 -133.5 -40t-116.5 -108.5t-81.5 -161t-30.5 -196.5zM422 1169l249 289h117l135 -289h-108l-97 189h-8l-170 -189h-118z" /> +<glyph unicode="õ" horiz-adv-x="1054" d="M80 375q0 141 45 260t121 204t172 133t198 48q162 0 259.5 -106.5t97.5 -292.5q0 -141 -46 -260t-121 -204t-172.5 -133.5t-199.5 -48.5q-162 0 -258 106.5t-96 293.5zM238 385q0 -135 54 -207t159 -72q70 0 134 40t115.5 108t82 160t30.5 196q0 135 -54.5 208t-158.5 73 q-68 0 -133.5 -40t-116.5 -108.5t-81.5 -161t-30.5 -196.5zM403 1188q27 92 77 150.5t116 58.5q43 0 71.5 -17.5t51 -37t44 -37t54.5 -17.5q27 0 49 29t43 76h90q-27 -92 -77 -150.5t-115 -58.5q-45 0 -73 17.5t-50.5 36.5t-45 36.5t-55.5 17.5q-25 0 -47 -28.5t-43 -75.5 h-90z" /> +<glyph unicode="ö" horiz-adv-x="1054" d="M80 375q0 141 45 260t121 204t172 133t198 48q162 0 259.5 -106.5t97.5 -292.5q0 -141 -46 -260t-121 -204t-172.5 -133.5t-199.5 -48.5q-162 0 -258 106.5t-96 293.5zM238 385q0 -135 54 -207t159 -72q70 0 134 40t115.5 108t82 160t30.5 196q0 135 -54.5 208t-158.5 73 q-68 0 -133.5 -40t-116.5 -108.5t-81.5 -161t-30.5 -196.5zM436 1288q0 47 30.5 80t73.5 33q37 0 60.5 -22.5t23.5 -63.5q0 -47 -31.5 -78t-74.5 -31q-35 0 -58.5 21.5t-23.5 60.5zM776 1288q0 47 30.5 80t73.5 33q37 0 59.5 -22.5t22.5 -63.5q0 -47 -30.5 -78t-73.5 -31 q-35 0 -58.5 21.5t-23.5 60.5z" /> +<glyph unicode="÷" d="M98 618v117h840v-117h-840zM414 303q0 43 29.5 73t74.5 30t75 -30t30 -73q0 -45 -30 -74.5t-75 -29.5t-74.5 29.5t-29.5 74.5zM414 1049q0 43 29.5 72.5t74.5 29.5t75 -29.5t30 -72.5q0 -45 -30 -76t-75 -31t-74.5 31t-29.5 76z" /> +<glyph unicode="ø" horiz-adv-x="1054" d="M0 10l131 135q-51 96 -51 230q0 141 45 260t121 204t172 133t198 48q164 0 261 -109l124 129l62 -57l-137 -141q47 -94 47 -221q0 -141 -46 -260t-121 -205t-172 -133.5t-200 -47.5q-158 0 -254 103l-121 -125zM229 385q0 -74 15 -123l530 545q-57 86 -170 86 q-76 0 -144.5 -43t-119.5 -113.5t-81 -163t-30 -188.5zM281 180q55 -78 165 -78q76 0 144.5 43t121 114t82 162t29.5 187q0 66 -12 115z" /> +<glyph unicode="ù" horiz-adv-x="1081" d="M115 223q0 35 3 65.5t13 71.5l127 635h158l-125 -614q-8 -41 -12.5 -65.5t-4.5 -51.5q0 -76 35 -114.5t113 -38.5q59 0 131 43t164 137l141 704h156l-199 -995h-129l16 152h-8q-82 -72 -167 -124.5t-177 -52.5q-127 0 -181 67t-54 181zM506 1458h153l121 -289h-114z" /> +<glyph unicode="ú" horiz-adv-x="1081" d="M115 223q0 35 3 65.5t13 71.5l127 635h158l-125 -614q-8 -41 -12.5 -65.5t-4.5 -51.5q0 -76 35 -114.5t113 -38.5q59 0 131 43t164 137l141 704h156l-199 -995h-129l16 152h-8q-82 -72 -167 -124.5t-177 -52.5q-127 0 -181 67t-54 181zM524 1169l238 289h168l-279 -289 h-127z" /> +<glyph unicode="û" horiz-adv-x="1081" d="M115 223q0 35 3 65.5t13 71.5l127 635h158l-125 -614q-8 -41 -12.5 -65.5t-4.5 -51.5q0 -76 35 -114.5t113 -38.5q59 0 131 43t164 137l141 704h156l-199 -995h-129l16 152h-8q-82 -72 -167 -124.5t-177 -52.5q-127 0 -181 67t-54 181zM408 1169l249 289h117l135 -289 h-108l-97 189h-8l-170 -189h-118z" /> +<glyph unicode="ü" horiz-adv-x="1081" d="M115 223q0 35 3 65.5t13 71.5l127 635h158l-125 -614q-8 -41 -12.5 -65.5t-4.5 -51.5q0 -76 35 -114.5t113 -38.5q59 0 131 43t164 137l141 704h156l-199 -995h-129l16 152h-8q-82 -72 -167 -124.5t-177 -52.5q-127 0 -181 67t-54 181zM422 1288q0 47 30.5 80t73.5 33 q37 0 60.5 -22.5t23.5 -63.5q0 -47 -31.5 -78t-74.5 -31q-35 0 -58.5 21.5t-23.5 60.5zM762 1288q0 47 30.5 80t73.5 33q37 0 59.5 -22.5t22.5 -63.5q0 -47 -30.5 -78t-73.5 -31q-35 0 -58.5 21.5t-23.5 60.5z" /> +<glyph unicode="ý" horiz-adv-x="917" d="M-127 -399l51 116q37 -18 74 -18q76 0 142.5 61.5t117.5 165.5l37 72l-170 997h156l77 -559q10 -68 18.5 -146.5t14.5 -150.5h8q35 72 73 149t75 148l287 559h155l-586 -1079q-39 -74 -81.5 -136.5t-93 -108.5t-110 -72.5t-130.5 -26.5q-23 0 -54.5 6t-60.5 23zM428 1169 l238 289h168l-279 -289h-127z" /> +<glyph unicode="þ" horiz-adv-x="1095" d="M-20 -420l374 1878h158l-80 -389l-45 -197h4q74 59 160 103.5t178 44.5q131 0 209 -93t78 -268q0 -143 -45 -268t-120 -217t-172.5 -145.5t-199.5 -53.5q-78 0 -138 40t-101 104h-4l-37 -213l-64 -326h-155zM270 250q41 -78 92.5 -111t110.5 -33q74 0 143.5 44.5t122 118 t84 168.5t31.5 200q0 127 -48 189.5t-134 62.5q-70 0 -153 -43t-154 -119z" /> +<glyph unicode="ÿ" horiz-adv-x="917" d="M-127 -399l51 116q37 -18 74 -18q76 0 142.5 61.5t117.5 165.5l37 72l-170 997h156l77 -559q10 -68 18.5 -146.5t14.5 -150.5h8q35 72 73 149t75 148l287 559h155l-586 -1079q-39 -74 -81.5 -136.5t-93 -108.5t-110 -72.5t-130.5 -26.5q-23 0 -54.5 6t-60.5 23zM326 1288 q0 47 30.5 80t73.5 33q37 0 60.5 -22.5t23.5 -63.5q0 -47 -31.5 -78t-74.5 -31q-35 0 -58.5 21.5t-23.5 60.5zM666 1288q0 47 30.5 80t73.5 33q37 0 59.5 -22.5t22.5 -63.5q0 -47 -30.5 -78t-73.5 -31q-35 0 -58.5 21.5t-23.5 60.5z" /> +<glyph unicode="Œ" horiz-adv-x="1671" d="M123 524q0 184 49 335t143.5 258.5t229.5 166.5t305 59h872l-28 -133h-543l-88 -436h457l-29 -135h-453l-104 -504h565l-29 -135h-778q-281 0 -425 138t-144 386zM285 535q0 -193 104.5 -298.5t308.5 -105.5h80l217 1083h-145q-131 0 -235.5 -50t-178.5 -139t-112.5 -215 t-38.5 -275z" /> +<glyph unicode="œ" horiz-adv-x="1662" d="M80 375q0 141 45 260t118.5 204t169 133t195.5 48q125 0 202 -66.5t105 -191.5q33 61 76 109.5t92.5 81t100.5 50t102 17.5q84 0 143.5 -27.5t96.5 -76t53 -115t16 -142.5q0 -59 -13 -112t-23 -82h-615q-12 -96 3.5 -165t49 -114t81.5 -65.5t106 -20.5q59 0 117.5 26 t105.5 60l59 -104q-59 -43 -141 -75t-180 -32q-119 0 -201 69t-110 204q-70 -129 -178.5 -201t-229.5 -72q-158 0 -252 106.5t-94 293.5zM238 385q0 -135 54 -207t159 -72q68 0 131 40t113 108t81 160t31 196q0 135 -54.5 208t-158.5 73q-66 0 -130.5 -40t-114.5 -108.5 t-80.5 -161t-30.5 -196.5zM961 571h489q12 49 12 103q0 43 -10 83t-32.5 70.5t-59.5 49t-90 18.5q-49 0 -97.5 -22.5t-89.5 -65.5t-72.5 -102.5t-49.5 -133.5z" /> +<glyph unicode="Ÿ" horiz-adv-x="944" d="M170 1343h164l92 -387q18 -74 33.5 -143.5t34.5 -146.5h8q47 76 91 147.5t93 144.5l254 385h170l-561 -819l-107 -524h-157l104 524zM389 1546q0 45 31 79t74 34q35 0 58.5 -21.5t23.5 -62.5q0 -43 -31 -77t-74 -34q-35 0 -58.5 21.5t-23.5 60.5zM729 1546q0 45 31 79 t74 34q35 0 57.5 -21.5t22.5 -62.5q0 -43 -30 -77t-73 -34q-35 0 -58.5 21.5t-23.5 60.5z" /> +<glyph unicode="ˆ" horiz-adv-x="1058" d="M422 1169l249 289h117l135 -289h-108l-97 189h-8l-170 -189h-118z" /> +<glyph unicode="˜" horiz-adv-x="1058" d="M403 1188q27 92 77 150.5t116 58.5q43 0 71.5 -17.5t51 -37t44 -37t54.5 -17.5q27 0 49 29t43 76h90q-27 -92 -77 -150.5t-115 -58.5q-45 0 -73 17.5t-50.5 36.5t-45 36.5t-55.5 17.5q-25 0 -47 -28.5t-43 -75.5h-90z" /> +<glyph unicode=" " horiz-adv-x="896" /> +<glyph unicode=" " horiz-adv-x="1792" /> +<glyph unicode=" " horiz-adv-x="896" /> +<glyph unicode=" " horiz-adv-x="1792" /> +<glyph unicode=" " horiz-adv-x="597" /> +<glyph unicode=" " horiz-adv-x="448" /> +<glyph unicode=" " horiz-adv-x="298" /> +<glyph unicode=" " horiz-adv-x="298" /> +<glyph unicode=" " horiz-adv-x="224" /> +<glyph unicode=" " horiz-adv-x="358" /> +<glyph unicode=" " horiz-adv-x="99" /> +<glyph unicode="‐" horiz-adv-x="612" d="M72 455l24 120h449l-27 -120h-446z" /> +<glyph unicode="‑" horiz-adv-x="612" d="M72 455l24 120h449l-27 -120h-446z" /> +<glyph unicode="‒" horiz-adv-x="612" d="M72 455l24 120h449l-27 -120h-446z" /> +<glyph unicode="–" horiz-adv-x="948" d="M72 461l22 110h780l-24 -110h-778z" /> +<glyph unicode="—" horiz-adv-x="1574" d="M72 461l22 110h1409l-22 -110h-1409z" /> +<glyph unicode="‘" horiz-adv-x="495" d="M225 1028q0 70 20.5 130.5t57.5 109.5t86 86t107 61l32 -78q-92 -47 -142 -114.5t-52 -126.5h10q43 0 71.5 -23.5t28.5 -66.5q0 -47 -30.5 -82t-79.5 -35q-47 0 -78 37t-31 102z" /> +<glyph unicode="’" horiz-adv-x="495" d="M227 983q94 47 144.5 115.5t52.5 126.5h-10q-45 0 -74 23.5t-29 68.5q0 47 31 82t82 35q47 0 77.5 -37t30.5 -103q0 -72 -20 -131t-57 -108t-87.5 -86t-107.5 -62z" /> +<glyph unicode="‚" horiz-adv-x="495" d="M-17 -225q94 47 144.5 115.5t52.5 126.5h-10q-45 0 -74 23.5t-29 68.5q0 47 31 82t82 35q47 0 77.5 -37t30.5 -103q0 -72 -20 -131t-57 -108t-87.5 -86t-107.5 -62z" /> +<glyph unicode="“" horiz-adv-x="835" d="M225 1028q0 70 20.5 130.5t57.5 109.5t86 86t107 61l32 -78q-92 -47 -142 -114.5t-52 -126.5h10q43 0 71.5 -23.5t28.5 -66.5q0 -47 -30.5 -82t-79.5 -35q-47 0 -78 37t-31 102zM565 1028q0 70 20.5 130.5t57.5 109.5t86 86t107 61l32 -78q-92 -47 -142 -114.5 t-52 -126.5h10q43 0 71.5 -23.5t28.5 -66.5q0 -47 -30.5 -82t-79.5 -35q-47 0 -78 37t-31 102z" /> +<glyph unicode="”" horiz-adv-x="835" d="M227 983q94 47 144.5 115.5t52.5 126.5h-10q-45 0 -74 23.5t-29 68.5q0 47 31 82t82 35q47 0 77.5 -37t30.5 -103q0 -72 -20 -131t-57 -108t-87.5 -86t-107.5 -62zM567 983q94 47 144.5 115.5t52.5 126.5h-10q-45 0 -74 23.5t-29 68.5q0 47 31 82t82 35q47 0 77.5 -37 t30.5 -103q0 -72 -20 -131t-57 -108t-87.5 -86t-107.5 -62z" /> +<glyph unicode="„" horiz-adv-x="589" d="M-17 -225q94 47 144.5 115.5t52.5 126.5h-10q-45 0 -74 23.5t-29 68.5q0 47 31 82t82 35q47 0 77.5 -37t30.5 -103q0 -72 -20 -131t-57 -108t-87.5 -86t-107.5 -62zM321 -225q94 47 144.5 115.5t52.5 126.5h-10q-45 0 -74 23.5t-29 68.5q0 47 31 82t82 35q47 0 77.5 -37 t30.5 -103q0 -72 -20 -131t-57 -108t-87.5 -86t-107.5 -62z" /> +<glyph unicode="•" horiz-adv-x="604" d="M84 512q0 49 17.5 98t49 87t76.5 62.5t103 24.5q86 0 142 -60t56 -155q0 -51 -17 -100t-49 -87t-77 -61.5t-100 -23.5q-88 0 -144.5 59.5t-56.5 155.5z" /> +<glyph unicode="…" horiz-adv-x="1966" d="M170 78q0 53 39 98t98 45q45 0 70 -29.5t25 -74.5q0 -53 -38.5 -97.5t-97.5 -44.5q-45 0 -70.5 29t-25.5 74zM844 78q0 53 39 98t98 45q45 0 70 -29.5t25 -74.5q0 -53 -38.5 -97.5t-97.5 -44.5q-45 0 -70.5 29t-25.5 74zM1517 78q0 53 39 98t98 45q45 0 70 -29.5 t25 -74.5q0 -53 -38.5 -97.5t-97.5 -44.5q-45 0 -70.5 29t-25.5 74z" /> +<glyph unicode=" " horiz-adv-x="358" /> +<glyph unicode="‹" horiz-adv-x="516" d="M82 461l22 127l320 303l57 -60l-291 -319l175 -330l-72 -45z" /> +<glyph unicode="›" horiz-adv-x="516" d="M47 197l289 319l-174 330l74 45l210 -324l-22 -127l-320 -303z" /> +<glyph unicode=" " horiz-adv-x="448" /> +<glyph unicode="€" d="M41 492l20 81l111 9q4 39 8 74.5t13 70.5h-105l18 82l109 6q35 117 92.5 213t130 165t157.5 106.5t177 37.5q113 0 181.5 -57t111.5 -139l-119 -76q-31 63 -74 103t-114 40q-63 0 -121.5 -28.5t-108 -80.5t-89.5 -124t-66 -158h512l-19 -90h-516q-8 -35 -12 -70.5 t-8 -72.5h430l-21 -92h-413q0 -186 68.5 -286t189.5 -100q72 0 132 34t111 83l78 -96q-76 -72 -162 -112t-188 -40q-180 0 -283.5 132.5t-103.5 384.5h-127z" /> +<glyph unicode="™" horiz-adv-x="1251" d="M156 1282l22 102h510l-20 -102h-197l-106 -532h-113l106 532h-202zM655 750l127 634h140l47 -235l22 -166h8l82 166l146 235h141l-125 -634h-113l58 286l65 230h-8l-241 -418h-72l-78 418h-8l-23 -230l-59 -286h-109z" /> +<glyph unicode="◼" horiz-adv-x="993" d="M0 0v993h993v-993h-993z" /> +<glyph unicode="fi" horiz-adv-x="1062" d="M88 0l174 868h-129l23 117l133 10l33 166q31 152 109.5 237t205.5 85q53 0 96 -13.5t80 -35.5l-55 -113q-23 14 -49.5 24.5t-61.5 10.5q-68 0 -109.5 -51.5t-58.5 -139.5l-35 -170h201l-24 -127h-203l-174 -868h-156zM641 0l199 995h158l-201 -995h-156zM873 1294 q0 51 36 85t83 34q41 0 70.5 -24.5t29.5 -69.5q0 -51 -36 -84t-83 -33q-41 0 -70.5 23.5t-29.5 68.5z" /> +<glyph unicode="fl" horiz-adv-x="1085" d="M88 0l174 868h-129l23 117l133 10l33 166q31 152 109.5 237t205.5 85q53 0 96 -13.5t80 -35.5l-55 -113q-23 14 -49.5 24.5t-61.5 10.5q-68 0 -109.5 -51.5t-58.5 -139.5l-35 -170h201l-24 -127h-203l-174 -868h-156zM668 104q0 33 12 86l252 1268h158l-256 -1276 q-4 -16 -4 -24v-15q0 -37 35 -37q6 0 12 1.5t20 5.5l3 -121q-20 -8 -43 -12.5t-56 -4.5q-66 0 -99.5 34t-33.5 95z" /> +<hkern u1="." u2="j" k="-6" /> +<hkern u1=";" u2="j" k="-63" /> +<hkern u1="F" u2="™" k="-88" /> +<hkern u1="F" u2="·" k="20" /> +<hkern u1="F" u2="®" k="-88" /> +<hkern u1="F" u2="x" k="41" /> +<hkern u1="F" u2="v" k="20" /> +<hkern u1="F" u2="V" k="14" /> +<hkern u1="F" u2="/" k="164" /> +<hkern u1="P" u2="®" k="-66" /> +<hkern u1="P" u2="x" k="20" /> +<hkern u1="P" u2="X" k="49" /> +<hkern u1="P" u2="/" k="193" /> +<hkern u1="V" u2="™" k="-61" /> +<hkern u1="V" u2="·" k="41" /> +<hkern u1="V" u2="®" k="-88" /> +<hkern u1="V" u2="x" k="55" /> +<hkern u1="V" u2="/" k="123" /> +<hkern u1="X" u2="™" k="-102" /> +<hkern u1="X" u2="·" k="127" /> +<hkern u1="X" u2="®" k="-109" /> +<hkern u1="X" u2="*" k="6" /> +<hkern u1="\" u2="v" k="41" /> +<hkern u1="\" u2="V" k="123" /> +<hkern u1="v" u2="™" k="-10" /> +<hkern u1="v" u2="®" k="-78" /> +<hkern u1="v" u2="/" k="41" /> +<hkern u1="v" u2="*" k="53" /> +<hkern u1="x" u2="™" k="-27" /> +<hkern u1="x" u2="·" k="41" /> +<hkern u1="x" u2="®" k="-78" /> +<hkern u1="x" u2="V" k="20" /> +<hkern u1="x" u2="*" k="82" /> +<hkern u1="¡" u2="V" k="55" /> +<hkern u1="·" u2="x" k="41" /> +<hkern u1="·" u2="X" k="55" /> +<hkern u1="·" u2="V" k="41" /> +<hkern u1="¿" u2="X" k="55" /> +<hkern u1="¿" u2="V" k="96" /> +<hkern u1="Þ" u2="™" k="96" /> +<hkern u1="Þ" u2="\" k="82" /> +<hkern u1="Þ" u2="/" k="109" /> +<hkern u1="Þ" u2="*" k="174" /> +<hkern u1="ß" u2="®" k="86" /> +<hkern u1="ß" u2="x" k="-33" /> +<hkern u1="ß" u2="v" k="49" /> +<hkern u1="ß" u2="\" k="41" /> +<hkern u1="ß" u2="?" k="43" /> +<hkern g1="exclam" g2="quoteright,quotedblright" k="72" /> +<hkern g1="exclamdown" g2="W" k="29" /> +<hkern g1="exclamdown" g2="Y,Yacute,Ydieresis" k="84" /> +<hkern g1="exclamdown" g2="j" k="-102" /> +<hkern g1="periodcentered" g2="T" k="137" /> +<hkern g1="periodcentered" g2="Y,Yacute,Ydieresis" k="104" /> +<hkern g1="periodcentered" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="55" /> +<hkern g1="periodcentered" g2="S" k="41" /> +<hkern g1="periodcentered" g2="Z" k="82" /> +<hkern g1="question" g2="quoteright,quotedblright" k="20" /> +<hkern g1="questiondown" g2="T" k="178" /> +<hkern g1="questiondown" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="115" /> +<hkern g1="questiondown" g2="W" k="70" /> +<hkern g1="questiondown" g2="Y,Yacute,Ydieresis" k="137" /> +<hkern g1="questiondown" g2="j" k="-143" /> +<hkern g1="questiondown" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="115" /> +<hkern g1="questiondown" g2="S" k="72" /> +<hkern g1="questiondown" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="55" /> +<hkern g1="questiondown" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="35" /> +<hkern g1="questiondown" g2="ae" k="35" /> +<hkern g1="questiondown" g2="f,uniFB01,uniFB02" k="82" /> +<hkern g1="slash" g2="j" k="-123" /> +<hkern g1="slash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="82" /> +<hkern g1="slash" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="41" /> +<hkern g1="slash" g2="ae" k="41" /> +<hkern g1="slash" g2="J" k="164" /> +<hkern g1="slash" g2="t" k="-41" /> +<hkern g1="slash" g2="u,ugrave,uacute,ucircumflex,udieresis" k="41" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="T" k="174" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="70" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="W" k="35" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="Y,Yacute,Ydieresis" k="96" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="j" k="20" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="w" k="20" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="y,yacute,ydieresis" k="29" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quoteright,quotedblright" k="180" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="S" k="20" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="Z" k="20" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="43" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="f,uniFB01,uniFB02" k="35" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="t" k="35" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="asterisk" k="246" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="backslash" k="82" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="periodcentered" k="55" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="question" k="100" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="registered" k="178" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="trademark" k="205" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="V" k="100" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="X" k="-12" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quotedbl,quotesingle" k="178" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quoteleft,quotedblleft" k="145" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="v" k="29" /> +<hkern g1="B" g2="T" k="82" /> +<hkern g1="B" g2="Y,Yacute,Ydieresis" k="55" /> +<hkern g1="B" g2="w" k="20" /> +<hkern g1="B" g2="y,yacute,ydieresis" k="29" /> +<hkern g1="B" g2="S" k="29" /> +<hkern g1="B" g2="J" k="20" /> +<hkern g1="B" g2="t" k="20" /> +<hkern g1="B" g2="asterisk" k="193" /> +<hkern g1="B" g2="periodcentered" k="41" /> +<hkern g1="B" g2="trademark" k="61" /> +<hkern g1="B" g2="v" k="29" /> +<hkern g1="B" g2="x" k="20" /> +<hkern g1="C,Ccedilla" g2="T" k="41" /> +<hkern g1="C,Ccedilla" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="29" /> +<hkern g1="C,Ccedilla" g2="w" k="35" /> +<hkern g1="C,Ccedilla" g2="y,yacute,ydieresis" k="35" /> +<hkern g1="C,Ccedilla" g2="S" k="41" /> +<hkern g1="C,Ccedilla" g2="Z" k="20" /> +<hkern g1="C,Ccedilla" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="100" /> +<hkern g1="C,Ccedilla" g2="J" k="20" /> +<hkern g1="C,Ccedilla" g2="t" k="29" /> +<hkern g1="C,Ccedilla" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="C,Ccedilla" g2="periodcentered" k="182" /> +<hkern g1="C,Ccedilla" g2="registered" k="-39" /> +<hkern g1="C,Ccedilla" g2="trademark" k="-61" /> +<hkern g1="C,Ccedilla" g2="v" k="35" /> +<hkern g1="C,Ccedilla" g2="hyphen,uni00AD,endash,emdash" k="100" /> +<hkern g1="C,Ccedilla" g2="guillemotleft,guilsinglleft" k="43" /> +<hkern g1="G" g2="T" k="61" /> +<hkern g1="G" g2="asterisk" k="109" /> +<hkern g1="G" g2="registered" k="-10" /> +<hkern g1="G" g2="V" k="20" /> +<hkern g1="K" g2="T" k="35" /> +<hkern g1="K" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="29" /> +<hkern g1="K" g2="W" k="20" /> +<hkern g1="K" g2="Y,Yacute,Ydieresis" k="35" /> +<hkern g1="K" g2="j" k="20" /> +<hkern g1="K" g2="S" k="20" /> +<hkern g1="K" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="55" /> +<hkern g1="K" g2="t" k="49" /> +<hkern g1="K" g2="u,ugrave,uacute,ucircumflex,udieresis" k="31" /> +<hkern g1="K" g2="asterisk" k="41" /> +<hkern g1="K" g2="periodcentered" k="113" /> +<hkern g1="K" g2="trademark" k="-18" /> +<hkern g1="K" g2="V" k="20" /> +<hkern g1="K" g2="quotedbl,quotesingle" k="88" /> +<hkern g1="K" g2="hyphen,uni00AD,endash,emdash" k="78" /> +<hkern g1="K" g2="guillemotleft,guilsinglleft" k="88" /> +<hkern g1="L" g2="T" k="246" /> +<hkern g1="L" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="84" /> +<hkern g1="L" g2="W" k="96" /> +<hkern g1="L" g2="Y,Yacute,Ydieresis" k="174" /> +<hkern g1="L" g2="w" k="127" /> +<hkern g1="L" g2="y,yacute,ydieresis" k="96" /> +<hkern g1="L" g2="quoteright,quotedblright" k="209" /> +<hkern g1="L" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-6" /> +<hkern g1="L" g2="S" k="55" /> +<hkern g1="L" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="92" /> +<hkern g1="L" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="29" /> +<hkern g1="L" g2="f,uniFB01,uniFB02" k="35" /> +<hkern g1="L" g2="t" k="45" /> +<hkern g1="L" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="L" g2="asterisk" k="342" /> +<hkern g1="L" g2="backslash" k="205" /> +<hkern g1="L" g2="periodcentered" k="236" /> +<hkern g1="L" g2="question" k="96" /> +<hkern g1="L" g2="registered" k="236" /> +<hkern g1="L" g2="trademark" k="276" /> +<hkern g1="L" g2="V" k="190" /> +<hkern g1="L" g2="quotedbl,quotesingle" k="291" /> +<hkern g1="L" g2="quoteleft,quotedblleft" k="209" /> +<hkern g1="L" g2="v" k="182" /> +<hkern g1="L" g2="hyphen,uni00AD,endash,emdash" k="164" /> +<hkern g1="L" g2="guillemotleft,guilsinglleft" k="82" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="T" k="70" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Y,Yacute,Ydieresis" k="49" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Z" k="20" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="J" k="41" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="asterisk" k="150" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="registered" k="-6" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="trademark" k="49" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="slash" k="41" /> +<hkern g1="D,O,Q,Eth,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="V" k="41" /> +<hkern g1="R" g2="T" k="74" /> +<hkern g1="R" g2="Y,Yacute,Ydieresis" k="41" /> +<hkern g1="R" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="20" /> +<hkern g1="R" g2="S" k="29" /> +<hkern g1="R" g2="Z" k="20" /> +<hkern g1="R" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="R" g2="ae" k="20" /> +<hkern g1="R" g2="J" k="41" /> +<hkern g1="R" g2="asterisk" k="29" /> +<hkern g1="R" g2="registered" k="-51" /> +<hkern g1="R" g2="V" k="20" /> +<hkern g1="R" g2="X" k="20" /> +<hkern g1="R" g2="x" k="20" /> +<hkern g1="R" g2="hyphen,uni00AD,endash,emdash" k="82" /> +<hkern g1="R" g2="guillemotleft,guilsinglleft" k="49" /> +<hkern g1="R" g2="z" k="20" /> +<hkern g1="S" g2="T" k="61" /> +<hkern g1="S" g2="S" k="20" /> +<hkern g1="S" g2="J" k="20" /> +<hkern g1="S" g2="asterisk" k="61" /> +<hkern g1="S" g2="periodcentered" k="20" /> +<hkern g1="S" g2="registered" k="-27" /> +<hkern g1="T" g2="Y,Yacute,Ydieresis" k="20" /> +<hkern g1="T" g2="w" k="82" /> +<hkern g1="T" g2="y,yacute,ydieresis" k="82" /> +<hkern g1="T" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="174" /> +<hkern g1="T" g2="S" k="160" /> +<hkern g1="T" g2="Z" k="109" /> +<hkern g1="T" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="41" /> +<hkern g1="T" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="164" /> +<hkern g1="T" g2="ae" k="164" /> +<hkern g1="T" g2="f,uniFB01,uniFB02" k="68" /> +<hkern g1="T" g2="J" k="258" /> +<hkern g1="T" g2="t" k="41" /> +<hkern g1="T" g2="u,ugrave,uacute,ucircumflex,udieresis" k="205" /> +<hkern g1="T" g2="periodcentered" k="123" /> +<hkern g1="T" g2="registered" k="-88" /> +<hkern g1="T" g2="trademark" k="-82" /> +<hkern g1="T" g2="slash" k="190" /> +<hkern g1="T" g2="X" k="41" /> +<hkern g1="T" g2="v" k="82" /> +<hkern g1="T" g2="x" k="82" /> +<hkern g1="T" g2="hyphen,uni00AD,endash,emdash" k="205" /> +<hkern g1="T" g2="guillemotleft,guilsinglleft" k="131" /> +<hkern g1="T" g2="comma,period,ellipsis" k="219" /> +<hkern g1="T" g2="m,n,p,r,ntilde" k="164" /> +<hkern g1="T" g2="s" k="123" /> +<hkern g1="T" g2="z" k="205" /> +<hkern g1="T" g2="colon,semicolon" k="205" /> +<hkern g1="T" g2="guillemotright,guilsinglright" k="137" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="Y,Yacute,Ydieresis" k="29" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="20" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="S" k="20" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="J" k="152" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="slash" k="82" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="V" k="20" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="X" k="20" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="comma,period,ellipsis" k="20" /> +<hkern g1="W" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="35" /> +<hkern g1="W" g2="S" k="20" /> +<hkern g1="W" g2="Z" k="20" /> +<hkern g1="W" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="14" /> +<hkern g1="W" g2="ae" k="41" /> +<hkern g1="W" g2="f,uniFB01,uniFB02" k="-12" /> +<hkern g1="W" g2="J" k="205" /> +<hkern g1="W" g2="registered" k="-80" /> +<hkern g1="W" g2="trademark" k="-61" /> +<hkern g1="W" g2="slash" k="82" /> +<hkern g1="W" g2="guillemotleft,guilsinglleft" k="35" /> +<hkern g1="W" g2="comma,period,ellipsis" k="115" /> +<hkern g1="W" g2="z" k="35" /> +<hkern g1="W" g2="guillemotright,guilsinglright" k="35" /> +<hkern g1="Y,Yacute,Ydieresis" g2="T" k="20" /> +<hkern g1="Y,Yacute,Ydieresis" g2="w" k="49" /> +<hkern g1="Y,Yacute,Ydieresis" g2="y,yacute,ydieresis" k="49" /> +<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="119" /> +<hkern g1="Y,Yacute,Ydieresis" g2="S" k="20" /> +<hkern g1="Y,Yacute,Ydieresis" g2="Z" k="49" /> +<hkern g1="Y,Yacute,Ydieresis" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="29" /> +<hkern g1="Y,Yacute,Ydieresis" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="84" /> +<hkern g1="Y,Yacute,Ydieresis" g2="ae" k="82" /> +<hkern g1="Y,Yacute,Ydieresis" g2="J" k="193" /> +<hkern g1="Y,Yacute,Ydieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="61" /> +<hkern g1="Y,Yacute,Ydieresis" g2="periodcentered" k="82" /> +<hkern g1="Y,Yacute,Ydieresis" g2="question" k="-27" /> +<hkern g1="Y,Yacute,Ydieresis" g2="registered" k="-88" /> +<hkern g1="Y,Yacute,Ydieresis" g2="trademark" k="-88" /> +<hkern g1="Y,Yacute,Ydieresis" g2="slash" k="164" /> +<hkern g1="Y,Yacute,Ydieresis" g2="v" k="49" /> +<hkern g1="Y,Yacute,Ydieresis" g2="x" k="70" /> +<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,uni00AD,endash,emdash" k="137" /> +<hkern g1="Y,Yacute,Ydieresis" g2="guillemotleft,guilsinglleft" k="152" /> +<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,ellipsis" k="178" /> +<hkern g1="Y,Yacute,Ydieresis" g2="m,n,p,r,ntilde" k="70" /> +<hkern g1="Y,Yacute,Ydieresis" g2="s" k="127" /> +<hkern g1="Y,Yacute,Ydieresis" g2="z" k="131" /> +<hkern g1="Y,Yacute,Ydieresis" g2="colon,semicolon" k="29" /> +<hkern g1="Y,Yacute,Ydieresis" g2="guillemotright,guilsinglright" k="98" /> +<hkern g1="Z" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="20" /> +<hkern g1="Z" g2="W" k="20" /> +<hkern g1="Z" g2="Y,Yacute,Ydieresis" k="29" /> +<hkern g1="Z" g2="w" k="49" /> +<hkern g1="Z" g2="y,yacute,ydieresis" k="49" /> +<hkern g1="Z" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="41" /> +<hkern g1="Z" g2="S" k="61" /> +<hkern g1="Z" g2="Z" k="20" /> +<hkern g1="Z" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="41" /> +<hkern g1="Z" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="51" /> +<hkern g1="Z" g2="ae" k="31" /> +<hkern g1="Z" g2="J" k="61" /> +<hkern g1="Z" g2="t" k="29" /> +<hkern g1="Z" g2="u,ugrave,uacute,ucircumflex,udieresis" k="72" /> +<hkern g1="Z" g2="periodcentered" k="123" /> +<hkern g1="Z" g2="registered" k="-47" /> +<hkern g1="Z" g2="trademark" k="-61" /> +<hkern g1="Z" g2="V" k="20" /> +<hkern g1="Z" g2="v" k="49" /> +<hkern g1="Z" g2="hyphen,uni00AD,endash,emdash" k="127" /> +<hkern g1="Z" g2="guillemotleft,guilsinglleft" k="104" /> +<hkern g1="a,g,q,u,agrave,aacute,acircumflex,atilde,adieresis,aring,ugrave,uacute,ucircumflex,udieresis" g2="T" k="70" /> +<hkern g1="a,g,q,u,agrave,aacute,acircumflex,atilde,adieresis,aring,ugrave,uacute,ucircumflex,udieresis" g2="Y,Yacute,Ydieresis" k="70" /> +<hkern g1="a,g,q,u,agrave,aacute,acircumflex,atilde,adieresis,aring,ugrave,uacute,ucircumflex,udieresis" g2="asterisk" k="205" /> +<hkern g1="a,g,q,u,agrave,aacute,acircumflex,atilde,adieresis,aring,ugrave,uacute,ucircumflex,udieresis" g2="V" k="20" /> +<hkern g1="c,ccedilla" g2="T" k="70" /> +<hkern g1="c,ccedilla" g2="Y,Yacute,Ydieresis" k="49" /> +<hkern g1="c,ccedilla" g2="w" k="-12" /> +<hkern g1="c,ccedilla" g2="y,yacute,ydieresis" k="-12" /> +<hkern g1="c,ccedilla" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="31" /> +<hkern g1="c,ccedilla" g2="ae" k="20" /> +<hkern g1="c,ccedilla" g2="periodcentered" k="20" /> +<hkern g1="c,ccedilla" g2="registered" k="-39" /> +<hkern g1="c,ccedilla" g2="V" k="29" /> +<hkern g1="c,ccedilla" g2="v" k="-12" /> +<hkern g1="c,ccedilla" g2="x" k="-12" /> +<hkern g1="c,ccedilla" g2="hyphen,uni00AD,endash,emdash" k="35" /> +<hkern g1="colon,semicolon" g2="T" k="174" /> +<hkern g1="colon,semicolon" g2="Y,Yacute,Ydieresis" k="70" /> +<hkern g1="colon,semicolon" g2="j" k="-20" /> +<hkern g1="colon,semicolon" g2="quoteright,quotedblright" k="55" /> +<hkern g1="colon,semicolon" g2="asterisk" k="150" /> +<hkern g1="colon,semicolon" g2="quoteleft,quotedblleft" k="55" /> +<hkern g1="comma,period,ellipsis" g2="T" k="219" /> +<hkern g1="comma,period,ellipsis" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="174" /> +<hkern g1="comma,period,ellipsis" g2="W" k="61" /> +<hkern g1="comma,period,ellipsis" g2="Y,Yacute,Ydieresis" k="172" /> +<hkern g1="comma,period,ellipsis" g2="j" k="-63" /> +<hkern g1="comma,period,ellipsis" g2="w" k="39" /> +<hkern g1="comma,period,ellipsis" g2="y,yacute,ydieresis" k="41" /> +<hkern g1="comma,period,ellipsis" g2="quoteright,quotedblright" k="250" /> +<hkern g1="comma,period,ellipsis" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="comma,period,ellipsis" g2="t" k="61" /> +<hkern g1="comma,period,ellipsis" g2="asterisk" k="317" /> +<hkern g1="comma,period,ellipsis" g2="V" k="172" /> +<hkern g1="comma,period,ellipsis" g2="quotedbl,quotesingle" k="250" /> +<hkern g1="comma,period,ellipsis" g2="quoteleft,quotedblleft" k="209" /> +<hkern g1="comma,period,ellipsis" g2="v" k="72" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="T" k="100" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="W" k="20" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="Y,Yacute,Ydieresis" k="55" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="w" k="29" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="y,yacute,ydieresis" k="29" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quoteright,quotedblright" k="66" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="S" k="41" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="29" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="ae" k="31" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="J" k="41" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="t" k="35" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="asterisk" k="158" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="backslash" k="20" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="periodcentered" k="55" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="registered" k="27" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="trademark" k="82" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="V" k="29" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="v" k="29" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="hyphen,uni00AD,endash,emdash" k="-27" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="guillemotleft,guilsinglleft" k="49" /> +<hkern g1="f" g2="T" k="-102" /> +<hkern g1="f" g2="W" k="-102" /> +<hkern g1="f" g2="Y,Yacute,Ydieresis" k="-102" /> +<hkern g1="f" g2="quoteright,quotedblright" k="-68" /> +<hkern g1="f" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="f" g2="ae" k="41" /> +<hkern g1="f" g2="backslash" k="-164" /> +<hkern g1="f" g2="periodcentered" k="27" /> +<hkern g1="f" g2="question" k="-61" /> +<hkern g1="f" g2="registered" k="-154" /> +<hkern g1="f" g2="trademark" k="-176" /> +<hkern g1="f" g2="slash" k="41" /> +<hkern g1="f" g2="exclam" k="-61" /> +<hkern g1="f" g2="V" k="-102" /> +<hkern g1="f" g2="X" k="-82" /> +<hkern g1="f" g2="quotedbl,quotesingle" k="-82" /> +<hkern g1="f" g2="quoteleft,quotedblleft" k="-68" /> +<hkern g1="f" g2="hyphen,uni00AD,endash,emdash" k="20" /> +<hkern g1="f" g2="comma,period,ellipsis" k="127" /> +<hkern g1="f" g2="m,n,p,r,ntilde" k="12" /> +<hkern g1="f" g2="parenright,bracketright,braceright" k="-109" /> +<hkern g1="k" g2="T" k="35" /> +<hkern g1="k" g2="Y,Yacute,Ydieresis" k="35" /> +<hkern g1="k" g2="j" k="20" /> +<hkern g1="k" g2="quoteright,quotedblright" k="72" /> +<hkern g1="k" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="35" /> +<hkern g1="k" g2="ae" k="20" /> +<hkern g1="k" g2="t" k="20" /> +<hkern g1="k" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="k" g2="asterisk" k="123" /> +<hkern g1="k" g2="periodcentered" k="41" /> +<hkern g1="k" g2="registered" k="-6" /> +<hkern g1="k" g2="trademark" k="41" /> +<hkern g1="k" g2="x" k="-6" /> +<hkern g1="k" g2="hyphen,uni00AD,endash,emdash" k="72" /> +<hkern g1="k" g2="guillemotleft,guilsinglleft" k="55" /> +<hkern g1="k" g2="comma,period,ellipsis" k="-27" /> +<hkern g1="h,m,n,ntilde" g2="T" k="49" /> +<hkern g1="h,m,n,ntilde" g2="Y,Yacute,Ydieresis" k="70" /> +<hkern g1="h,m,n,ntilde" g2="quoteright,quotedblright" k="123" /> +<hkern g1="h,m,n,ntilde" g2="asterisk" k="164" /> +<hkern g1="h,m,n,ntilde" g2="trademark" k="41" /> +<hkern g1="h,m,n,ntilde" g2="V" k="20" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="T" k="131" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="Y,Yacute,Ydieresis" k="127" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="w" k="14" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="y,yacute,ydieresis" k="23" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="quoteright,quotedblright" k="137" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="ae" k="31" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="backslash" k="82" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="V" k="49" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="quoteleft,quotedblleft" k="82" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="v" k="23" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="x" k="35" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="hyphen,uni00AD,endash,emdash" k="-41" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="comma,period,ellipsis" k="20" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="z" k="29" /> +<hkern g1="b,o,p,ograve,oacute,ocircumflex,otilde,odieresis,oslash,thorn" g2="parenright,bracketright,braceright" k="14" /> +<hkern g1="quoteleft,quotedblleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="145" /> +<hkern g1="quoteleft,quotedblleft" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="82" /> +<hkern g1="quoteleft,quotedblleft" g2="ae" k="82" /> +<hkern g1="quoteleft,quotedblleft" g2="exclamdown" k="123" /> +<hkern g1="quoteleft,quotedblleft" g2="questiondown" k="287" /> +<hkern g1="quoteleft,quotedblleft" g2="comma,period,ellipsis" k="168" /> +<hkern g1="r" g2="j" k="12" /> +<hkern g1="r" g2="w" k="-12" /> +<hkern g1="r" g2="y,yacute,ydieresis" k="-12" /> +<hkern g1="r" g2="quoteright,quotedblright" k="-27" /> +<hkern g1="r" g2="Z" k="41" /> +<hkern g1="r" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="r" g2="ae" k="47" /> +<hkern g1="r" g2="J" k="174" /> +<hkern g1="r" g2="backslash" k="-41" /> +<hkern g1="r" g2="registered" k="-119" /> +<hkern g1="r" g2="trademark" k="-27" /> +<hkern g1="r" g2="slash" k="82" /> +<hkern g1="r" g2="quoteleft,quotedblleft" k="-68" /> +<hkern g1="r" g2="v" k="-12" /> +<hkern g1="r" g2="hyphen,uni00AD,endash,emdash" k="41" /> +<hkern g1="r" g2="guillemotleft,guilsinglleft" k="41" /> +<hkern g1="r" g2="comma,period,ellipsis" k="104" /> +<hkern g1="r" g2="s" k="12" /> +<hkern g1="r" g2="z" k="20" /> +<hkern g1="s" g2="T" k="70" /> +<hkern g1="s" g2="Y,Yacute,Ydieresis" k="49" /> +<hkern g1="s" g2="y,yacute,ydieresis" k="8" /> +<hkern g1="s" g2="asterisk" k="150" /> +<hkern g1="s" g2="V" k="29" /> +<hkern g1="s" g2="v" k="8" /> +<hkern g1="s" g2="hyphen,uni00AD,endash,emdash" k="-6" /> +<hkern g1="t" g2="T" k="41" /> +<hkern g1="t" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="23" /> +<hkern g1="t" g2="ae" k="41" /> +<hkern g1="t" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="t" g2="periodcentered" k="41" /> +<hkern g1="t" g2="registered" k="-92" /> +<hkern g1="t" g2="slash" k="-41" /> +<hkern g1="t" g2="hyphen,uni00AD,endash,emdash" k="55" /> +<hkern g1="t" g2="guillemotleft,guilsinglleft" k="41" /> +<hkern g1="t" g2="comma,period,ellipsis" k="-27" /> +<hkern g1="t" g2="colon,semicolon" k="-41" /> +<hkern g1="w" g2="T" k="82" /> +<hkern g1="w" g2="Y,Yacute,Ydieresis" k="41" /> +<hkern g1="w" g2="j" k="20" /> +<hkern g1="w" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="14" /> +<hkern g1="w" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="8" /> +<hkern g1="w" g2="ae" k="20" /> +<hkern g1="w" g2="J" k="61" /> +<hkern g1="w" g2="asterisk" k="61" /> +<hkern g1="w" g2="registered" k="-104" /> +<hkern g1="w" g2="trademark" k="-10" /> +<hkern g1="w" g2="slash" k="20" /> +<hkern g1="w" g2="comma,period,ellipsis" k="49" /> +<hkern g1="w" g2="z" k="29" /> +<hkern g1="y,yacute,ydieresis" g2="T" k="82" /> +<hkern g1="y,yacute,ydieresis" g2="Y,Yacute,Ydieresis" k="55" /> +<hkern g1="y,yacute,ydieresis" g2="j" k="20" /> +<hkern g1="y,yacute,ydieresis" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="8" /> +<hkern g1="y,yacute,ydieresis" g2="ae" k="41" /> +<hkern g1="y,yacute,ydieresis" g2="J" k="70" /> +<hkern g1="y,yacute,ydieresis" g2="registered" k="-104" /> +<hkern g1="y,yacute,ydieresis" g2="trademark" k="-27" /> +<hkern g1="y,yacute,ydieresis" g2="slash" k="41" /> +<hkern g1="y,yacute,ydieresis" g2="comma,period,ellipsis" k="72" /> +<hkern g1="y,yacute,ydieresis" g2="z" k="20" /> +<hkern g1="z" g2="T" k="61" /> +<hkern g1="z" g2="Y,Yacute,Ydieresis" k="49" /> +<hkern g1="z" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="z" g2="ae" k="47" /> +<hkern g1="z" g2="u,ugrave,uacute,ucircumflex,udieresis" k="41" /> +<hkern g1="z" g2="periodcentered" k="20" /> +<hkern g1="z" g2="registered" k="-78" /> +<hkern g1="z" g2="trademark" k="-12" /> +<hkern g1="z" g2="V" k="20" /> +<hkern g1="z" g2="hyphen,uni00AD,endash,emdash" k="20" /> +<hkern g1="F" g2="W" k="8" /> +<hkern g1="F" g2="Y,Yacute,Ydieresis" k="14" /> +<hkern g1="F" g2="w" k="20" /> +<hkern g1="F" g2="y,yacute,ydieresis" k="20" /> +<hkern g1="F" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="82" /> +<hkern g1="F" g2="S" k="33" /> +<hkern g1="F" g2="Z" k="41" /> +<hkern g1="F" g2="C,G,O,Q,Ccedilla,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="20" /> +<hkern g1="F" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="F" g2="ae" k="61" /> +<hkern g1="F" g2="J" k="287" /> +<hkern g1="F" g2="t" k="20" /> +<hkern g1="F" g2="u,ugrave,uacute,ucircumflex,udieresis" k="31" /> +<hkern g1="F" g2="guillemotleft,guilsinglleft" k="41" /> +<hkern g1="F" g2="comma,period,ellipsis" k="137" /> +<hkern g1="F" g2="m,n,p,r,ntilde" k="41" /> +<hkern g1="F" g2="s" k="31" /> +<hkern g1="F" g2="z" k="41" /> +<hkern g1="J" g2="J" k="82" /> +<hkern g1="J" g2="comma,period,ellipsis" k="41" /> +<hkern g1="P" g2="T" k="61" /> +<hkern g1="P" g2="Y,Yacute,Ydieresis" k="29" /> +<hkern g1="P" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="127" /> +<hkern g1="P" g2="S" k="20" /> +<hkern g1="P" g2="Z" k="205" /> +<hkern g1="P" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="41" /> +<hkern g1="P" g2="ae" k="61" /> +<hkern g1="P" g2="J" k="279" /> +<hkern g1="P" g2="hyphen,uni00AD,endash,emdash" k="20" /> +<hkern g1="P" g2="guillemotleft,guilsinglleft" k="20" /> +<hkern g1="P" g2="comma,period,ellipsis" k="250" /> +<hkern g1="P" g2="z" k="41" /> +<hkern g1="V" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="20" /> +<hkern g1="V" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="100" /> +<hkern g1="V" g2="S" k="41" /> +<hkern g1="V" g2="Z" k="41" /> +<hkern g1="V" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="55" /> +<hkern g1="V" g2="ae" k="115" /> +<hkern g1="V" g2="J" k="172" /> +<hkern g1="V" g2="u,ugrave,uacute,ucircumflex,udieresis" k="41" /> +<hkern g1="V" g2="hyphen,uni00AD,endash,emdash" k="100" /> +<hkern g1="V" g2="guillemotleft,guilsinglleft" k="104" /> +<hkern g1="V" g2="comma,period,ellipsis" k="145" /> +<hkern g1="V" g2="m,n,p,r,ntilde" k="41" /> +<hkern g1="V" g2="s" k="41" /> +<hkern g1="V" g2="z" k="115" /> +<hkern g1="V" g2="guillemotright,guilsinglright" k="104" /> +<hkern g1="X" g2="T" k="29" /> +<hkern g1="X" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-12" /> +<hkern g1="X" g2="ae" k="33" /> +<hkern g1="X" g2="u,ugrave,uacute,ucircumflex,udieresis" k="29" /> +<hkern g1="X" g2="hyphen,uni00AD,endash,emdash" k="100" /> +<hkern g1="X" g2="guillemotleft,guilsinglleft" k="82" /> +<hkern g1="X" g2="guillemotright,guilsinglright" k="55" /> +<hkern g1="parenleft,bracketleft,braceleft" g2="j" k="-150" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Y,Yacute,Ydieresis" k="145" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Z" k="41" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="V" k="49" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="X" k="41" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="x" k="35" /> +<hkern g1="germandbls" g2="w" k="25" /> +<hkern g1="germandbls" g2="y,yacute,ydieresis" k="49" /> +<hkern g1="germandbls" g2="quoteright,quotedblright" k="219" /> +<hkern g1="germandbls" g2="t" k="39" /> +<hkern g1="germandbls" g2="quotedbl,quotesingle" k="166" /> +<hkern g1="germandbls" g2="quoteleft,quotedblleft" k="113" /> +<hkern g1="guillemotleft,guilsinglleft" g2="T" k="197" /> +<hkern g1="guillemotleft,guilsinglleft" g2="W" k="29" /> +<hkern g1="guillemotleft,guilsinglleft" g2="Y,Yacute,Ydieresis" k="113" /> +<hkern g1="guillemotleft,guilsinglleft" g2="Z" k="14" /> +<hkern g1="guillemotleft,guilsinglleft" g2="V" k="72" /> +<hkern g1="guillemotleft,guilsinglleft" g2="X" k="14" /> +<hkern g1="guillemotleft,guilsinglleft" g2="x" k="8" /> +<hkern g1="guillemotright,guilsinglright" g2="T" k="190" /> +<hkern g1="guillemotright,guilsinglright" g2="W" k="29" /> +<hkern g1="guillemotright,guilsinglright" g2="Y,Yacute,Ydieresis" k="137" /> +<hkern g1="guillemotright,guilsinglright" g2="S" k="61" /> +<hkern g1="guillemotright,guilsinglright" g2="Z" k="41" /> +<hkern g1="guillemotright,guilsinglright" g2="J" k="61" /> +<hkern g1="guillemotright,guilsinglright" g2="V" k="96" /> +<hkern g1="guillemotright,guilsinglright" g2="x" k="29" /> +<hkern g1="quotedbl,quotesingle" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="137" /> +<hkern g1="quotedbl,quotesingle" g2="comma,period,ellipsis" k="209" /> +<hkern g1="quotedbl,quotesingle" g2="s" k="41" /> +<hkern g1="quoteright,quotedblright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="158" /> +<hkern g1="quoteright,quotedblright" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="49" /> +<hkern g1="quoteright,quotedblright" g2="ae" k="74" /> +<hkern g1="quoteright,quotedblright" g2="comma,period,ellipsis" k="301" /> +<hkern g1="quoteright,quotedblright" g2="s" k="82" /> +<hkern g1="v" g2="T" k="82" /> +<hkern g1="v" g2="Y,Yacute,Ydieresis" k="41" /> +<hkern g1="v" g2="j" k="20" /> +<hkern g1="v" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="29" /> +<hkern g1="v" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="8" /> +<hkern g1="v" g2="ae" k="41" /> +<hkern g1="v" g2="J" k="70" /> +<hkern g1="v" g2="comma,period,ellipsis" k="72" /> +<hkern g1="v" g2="z" k="29" /> +<hkern g1="x" g2="T" k="127" /> +<hkern g1="x" g2="Y,Yacute,Ydieresis" k="49" /> +<hkern g1="x" g2="a,c,d,e,g,o,q,agrave,aacute,acircumflex,atilde,adieresis,aring,ccedilla,egrave,eacute,ecircumflex,edieresis,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="35" /> +<hkern g1="x" g2="ae" k="20" /> +<hkern g1="x" g2="hyphen,uni00AD,endash,emdash" k="43" /> +<hkern g1="x" g2="guillemotleft,guilsinglleft" k="29" /> +<hkern g1="x" g2="guillemotright,guilsinglright" k="14" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/sourcesanspro-italic-webfont.ttf b/web/static/fonts/sourcesanspro-italic-webfont.ttf Binary files differnew file mode 100755 index 000000000..b32ccff8c --- /dev/null +++ b/web/static/fonts/sourcesanspro-italic-webfont.ttf diff --git a/web/static/fonts/sourcesanspro-italic-webfont.woff b/web/static/fonts/sourcesanspro-italic-webfont.woff Binary files differnew file mode 100755 index 000000000..395c5ad9a --- /dev/null +++ b/web/static/fonts/sourcesanspro-italic-webfont.woff diff --git a/web/static/fonts/sourcesanspro-italic-webfont.woff2 b/web/static/fonts/sourcesanspro-italic-webfont.woff2 Binary files differnew file mode 100755 index 000000000..407d436bd --- /dev/null +++ b/web/static/fonts/sourcesanspro-italic-webfont.woff2 diff --git a/web/static/fonts/ubuntu-bold-webfont.eot b/web/static/fonts/ubuntu-bold-webfont.eot Binary files differnew file mode 100755 index 000000000..3438c4c01 --- /dev/null +++ b/web/static/fonts/ubuntu-bold-webfont.eot diff --git a/web/static/fonts/ubuntu-bold-webfont.svg b/web/static/fonts/ubuntu-bold-webfont.svg new file mode 100755 index 000000000..6e745cdd9 --- /dev/null +++ b/web/static/fonts/ubuntu-bold-webfont.svg @@ -0,0 +1,1915 @@ +<?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="ubuntubold" horiz-adv-x="1163" > +<font-face units-per-em="2048" ascent="1638" descent="-410" /> +<missing-glyph horiz-adv-x="491" /> +<glyph unicode="fi" horiz-adv-x="1449" d="M143 0v1135q0 209 118 331.5t349 122.5q86 0 142.5 -14t95.5 -31l-53 -239q-33 14 -73 20t-81 6q-55 0 -93 -15.5t-59.5 -42t-30.5 -63t-9 -80.5v-53h376v-254h-376v-823h-306zM971 1389q0 84 54 132t128 48t128 -48t54 -132t-54 -132.5t-128 -48.5t-128 48.5t-54 132.5z M1001 0v1077h306v-1077h-306z" /> +<glyph unicode="fl" horiz-adv-x="1507" d="M143 0v1135q0 209 118 331.5t349 122.5q86 0 142.5 -14t95.5 -31l-53 -239q-33 14 -73 20t-81 6q-55 0 -93 -15.5t-59.5 -42t-30.5 -63t-9 -80.5v-53h376v-254h-376v-823h-306zM1004 354v1186l305 49v-1173q0 -41 6 -74t23.5 -55.5t50 -36.5t88.5 -19l-43 -251 q-133 2 -216 28.5t-131.5 74.5t-65.5 116.5t-17 154.5z" /> +<glyph unicode="ffi" horiz-adv-x="2308" d="M143 0v1135q0 209 118 331.5t349 122.5q86 0 158 -17.5t111 -33.5l-60 -244q-41 18 -89 27.5t-89 9.5q-55 0 -93 -15.5t-59.5 -42t-30.5 -63t-9 -80.5v-53h376v-254h-376v-823h-306zM1001 0v1135q0 209 118 331.5t349 122.5q86 0 142.5 -14t95.5 -31l-53 -239 q-33 14 -73 20t-81 6q-55 0 -93 -15.5t-59.5 -42t-30.5 -63t-9 -80.5v-53h376v-254h-376v-823h-306zM1829 1389q0 84 54 132t128 48t128 -48t54 -132t-54 -132.5t-128 -48.5t-128 48.5t-54 132.5zM1860 0v1077h305v-1077h-305z" /> +<glyph unicode="ffl" horiz-adv-x="2365" d="M143 0v1135q0 209 118 331.5t349 122.5q86 0 158 -17.5t111 -33.5l-60 -244q-41 18 -89 27.5t-89 9.5q-55 0 -93 -15.5t-59.5 -42t-30.5 -63t-9 -80.5v-53h376v-254h-376v-823h-306zM1001 0v1135q0 209 118 331.5t349 122.5q86 0 142.5 -14t95.5 -31l-53 -239 q-33 14 -73 20t-81 6q-55 0 -93 -15.5t-59.5 -42t-30.5 -63t-9 -80.5v-53h376v-254h-376v-823h-306zM1862 354v1186l305 49v-1173q0 -41 6 -74t23.5 -55.5t50 -36.5t88.5 -19l-43 -251q-133 2 -216 28.5t-131.5 74.5t-65.5 116.5t-17 154.5z" /> +<glyph unicode="
" horiz-adv-x="491" /> +<glyph horiz-adv-x="0" /> +<glyph horiz-adv-x="0" /> +<glyph unicode=" " horiz-adv-x="491" /> +<glyph unicode="	" horiz-adv-x="491" /> +<glyph unicode=" " horiz-adv-x="491" /> +<glyph unicode="!" horiz-adv-x="585" d="M102 162q0 90 58.5 139t132.5 49t132 -49t58 -139t-58 -139.5t-132 -49.5t-132.5 49.5t-58.5 139.5zM131 1053v366h326v-366q0 -166 -12.5 -309.5t-32.5 -290.5h-234q-20 147 -33.5 290.5t-13.5 309.5z" /> +<glyph unicode=""" horiz-adv-x="952" d="M102 1407v149h301v-151q0 -98 -15 -215t-34 -236h-202q-23 119 -36.5 236t-13.5 217zM548 1407v149h301v-151q0 -98 -15 -215t-34 -236h-202q-23 119 -36.5 236t-13.5 217z" /> +<glyph unicode="#" horiz-adv-x="1431" d="M113 348v236h192l49 252h-241v235h286l68 348h266l-67 -348h237l68 348h266l-68 -348h150v-235h-195l-49 -252h244v-236h-289l-65 -348h-267l66 348h-238l-65 -348h-266l65 348h-147zM571 584h238l49 252h-237z" /> +<glyph unicode="$" d="M72 123l88 235q72 -35 171 -63.5t210 -28.5q125 0 171 34t46 95q0 39 -18.5 66.5t-53.5 50.5t-88 44.5t-123 45.5q-68 25 -132 54.5t-116.5 72.5t-84 105.5t-31.5 150.5q0 68 19.5 130.5t60 113.5t106 87t156.5 52v221h258v-213q106 -10 183 -30.5t122 -40.5l-64 -246 q-68 29 -156.5 49t-187.5 20q-98 0 -141 -32.5t-43 -85.5q0 -33 13.5 -56.5t42 -42t70.5 -36t101 -37.5q90 -33 167 -72t133.5 -89t88 -117.5t31.5 -158.5q0 -61 -18.5 -121.5t-61.5 -111.5t-111.5 -88t-168.5 -53v-250h-258v243q-150 12 -243 46t-138 57z" /> +<glyph unicode="%" horiz-adv-x="1880" d="M72 1055q0 193 98 295t264 102t264.5 -102t98.5 -295t-98.5 -295.5t-264.5 -102.5t-264 102.5t-98 295.5zM303 1055q0 -104 36 -152.5t95 -48.5q57 0 94 48.5t37 152.5t-36.5 151t-94.5 47q-59 0 -95 -47t-36 -151zM395 0l801 1419h285l-801 -1419h-285zM1083 365 q0 193 98.5 295t264.5 102t264 -102t98 -295t-98 -295.5t-264 -102.5t-264.5 102.5t-98.5 295.5zM1315 365q0 -104 35.5 -152.5t95.5 -48.5q57 0 94 48.5t37 152.5t-37 151t-94 47q-59 0 -95 -47t-36 -151z" /> +<glyph unicode="&" horiz-adv-x="1443" d="M72 377q0 78 22.5 142.5t60.5 116.5t88 92t105 71q-49 59 -88 127.5t-39 150.5q0 180 108.5 277.5t299.5 97.5q96 0 167.5 -25.5t120 -69.5t73 -102.5t24.5 -126.5q0 -125 -71 -222t-179 -163l229 -229q18 41 36 103.5t22 109.5l254 -33q-4 -39 -14.5 -85t-26 -93 t-35 -94t-41.5 -86q66 -74 128 -161t107 -175h-313q-16 27 -45 66.5t-57 68.5q-82 -66 -190.5 -109.5t-244.5 -43.5q-143 0 -239 35.5t-154.5 92t-83 127t-24.5 140.5zM356 408q0 -31 12.5 -64t40 -60.5t70.5 -45t105 -17.5q86 0 150.5 22.5t107.5 59.5l-328 330 q-29 -14 -56.5 -34.5t-50 -48.5t-37 -62.5t-14.5 -79.5zM483 1092q0 -53 31 -103.5t80 -95.5q66 37 113 88t47 133q0 47 -31 84t-102 37q-66 0 -102 -40t-36 -103z" /> +<glyph unicode="'" horiz-adv-x="505" d="M102 1407v149h301v-151q0 -98 -15 -215t-34 -236h-202q-23 119 -36.5 236t-13.5 217z" /> +<glyph unicode="(" horiz-adv-x="729" d="M143 612q0 285 94.5 537t268.5 455l213 -138q-123 -174 -199 -393t-76 -461t76 -461t199 -393l-213 -137q-174 203 -268.5 455t-94.5 536z" /> +<glyph unicode=")" horiz-adv-x="729" d="M10 -242q123 174 199 393t76 461t-76 461t-199 393l213 138q174 -203 268.5 -455t94.5 -537t-94.5 -536.5t-268.5 -454.5z" /> +<glyph unicode="*" horiz-adv-x="1028" d="M82 1008l82 254l49 -17q25 -8 57.5 -25.5t64.5 -39t61.5 -43t52.5 -39.5q-10 27 -21.5 62.5t-22 72.5t-17.5 72.5t-7 62.5v51h266v-51q0 -27 -7 -62.5t-17.5 -72.5t-21.5 -72.5t-21 -62.5q20 18 51 39.5t62.5 43t64.5 39t57 25.5l49 17l82 -254l-49 -17q-27 -8 -61.5 -12 t-73.5 -5t-76 -1h-65q25 -16 54.5 -38t59 -45.5t56 -48t43.5 -46.5l32 -43l-217 -154l-31 41q-16 20 -31.5 53t-29.5 69t-24.5 70.5t-18.5 63.5q-8 -29 -18.5 -63.5t-24.5 -70.5t-29.5 -69t-31.5 -53l-31 -41l-217 154l33 43q16 23 42.5 47t56.5 47.5t59.5 45t54.5 38.5h-66 t-76 1t-73.5 5t-61.5 12z" /> +<glyph unicode="+" d="M100 483v256h342v379h279v-379h342v-256h-342v-379h-279v379h-342z" /> +<glyph unicode="," horiz-adv-x="503" d="M35 -274q47 135 65.5 253.5t18.5 196.5q0 12 -1 31.5t-2 40t-2 39t-1 24.5h319q4 -49 5 -69.5t1 -34.5q0 -61 -11 -130t-31.5 -138.5t-51.5 -139t-70 -133.5z" /> +<glyph unicode="-" horiz-adv-x="696" d="M51 473v277h594v-277h-594z" /> +<glyph unicode="." horiz-adv-x="503" d="M61 162q0 92 58.5 140t132.5 48t132 -48t58 -140t-58 -140.5t-132 -48.5t-132.5 48.5t-58.5 140.5z" /> +<glyph unicode="/" horiz-adv-x="894" d="M-51 -379l688 1983h309l-684 -1983h-313z" /> +<glyph unicode="0" d="M70 713q0 178 35.5 315t103 231.5t162 143.5t211.5 49q240 0 376 -191.5t136 -547.5q0 -358 -136.5 -550t-375.5 -192q-240 0 -376 191.5t-136 550.5zM381 713q0 -106 10 -194.5t34 -152t61.5 -98.5t95.5 -35q57 0 96 35t61.5 98.5t32.5 152t10 194.5t-10 193 t-32.5 150.5t-61.5 98.5t-96 35t-95 -35t-62 -98.5t-34 -150.5t-10 -193z" /> +<glyph unicode="1" d="M143 1124q59 25 124 56.5t126.5 69.5t117.5 80t101 89h213v-1419h-305v1022q-61 -41 -137 -75t-147 -58z" /> +<glyph unicode="2" d="M72 1260q90 84 209.5 138t257.5 54q125 0 215 -28.5t148.5 -81t86 -127t27.5 -168.5q0 -78 -31 -150t-80 -138.5t-110.5 -128t-120.5 -116.5q-31 -29 -67 -64.5t-68.5 -72.5t-58 -69t-31.5 -52h610v-256h-946q-4 23 -4 57.5v48.5q0 98 31.5 180.5t82.5 153t115.5 132 t128.5 122.5q49 47 92 89t76 82t51.5 80t18.5 81q0 90 -51.5 127t-127.5 37q-55 0 -103 -17.5t-88 -41t-68.5 -47t-43.5 -37.5z" /> +<glyph unicode="3" d="M53 49l60 254q53 -23 136 -48.5t206 -25.5q141 0 206.5 53.5t65.5 143.5q0 55 -23.5 93t-64.5 61.5t-97.5 33t-119.5 9.5h-119v245h135q45 0 87 8.5t75 28t52.5 53t19.5 84.5q0 39 -16.5 68t-42 47.5t-59.5 27.5t-69 9q-88 0 -162.5 -26.5t-136.5 -65.5l-108 223 q33 20 77 43t97 41t113.5 30.5t128.5 12.5q125 0 216 -29.5t150.5 -84t88 -127t28.5 -158.5q0 -84 -47 -163t-127 -120q111 -45 171 -134t60 -214q0 -98 -32.5 -181t-102.5 -143.5t-177.5 -94.5t-254.5 -34q-55 0 -116.5 7.5t-119 19.5t-104.5 26.5t-74 26.5z" /> +<glyph unicode="4" d="M41 317v224q45 90 112.5 203.5t150.5 233.5t175 234.5t185 206.5h288v-852h152v-250h-152v-317h-299v317h-612zM332 567h321v480q-80 -104 -170 -227.5t-151 -252.5z" /> +<glyph unicode="5" d="M78 43l55 252q51 -23 135 -44.5t201 -21.5q141 0 204.5 56.5t63.5 132.5q0 59 -26.5 105t-92 77t-176 47.5t-278.5 16.5q23 190 37 386.5t22 368.5h768v-256h-512q-4 -74 -9 -142.5t-11 -119.5q299 -20 441 -140t142 -333q0 -98 -34.5 -182t-104 -145.5t-175 -96.5 t-247.5 -35q-55 0 -115.5 7.5t-116.5 18.5t-101.5 23.5t-69.5 24.5z" /> +<glyph unicode="6" d="M76 580q0 205 63.5 362.5t181 265t284.5 163.5t376 59q4 -63 8 -124t8 -126q-104 -2 -195 -19.5t-166 -54.5t-130 -95.5t-86 -142.5q45 20 92 28.5t88 8.5q133 0 226.5 -35.5t152.5 -97t86 -143.5t27 -174q0 -82 -30 -168t-90.5 -156t-153.5 -115t-220 -45 q-256 0 -389 162t-133 447zM383 584q0 -74 10 -139.5t35 -114.5t66 -77t102 -28q51 0 87 21.5t59.5 54.5t34.5 73t11 77q0 104 -52 160.5t-175 56.5q-45 0 -96 -8.5t-80 -22.5q0 -8 -1 -24.5t-1 -28.5z" /> +<glyph unicode="7" d="M88 1161v260h993v-221q-66 -72 -144.5 -199t-149 -287.5t-123 -345t-64.5 -368.5h-309q12 150 51 311.5t95.5 317t126 294t141.5 238.5h-617z" /> +<glyph unicode="8" d="M80 371q0 61 16.5 112.5t45 93t64.5 76.5t77 66q-88 72 -130 141.5t-42 177.5q0 82 33.5 158t95 132t148.5 90t194 34q125 0 214 -36t146 -91t83 -123.5t26 -136.5q0 -98 -52.5 -183t-130.5 -134q117 -76 167 -159t50 -194q0 -92 -31.5 -168.5t-95 -134t-158.5 -89.5 t-220 -32q-143 0 -238.5 40t-154 99.5t-83 130t-24.5 130.5zM377 383q0 -25 11 -54.5t36 -54t63.5 -41t94.5 -16.5q106 0 155 51t49 115q0 47 -21.5 84t-58 64.5t-87 49t-107.5 40.5q-57 -43 -96 -100.5t-39 -137.5zM408 1053q0 -66 48 -123.5t165 -98.5q66 41 100.5 94.5 t34.5 131.5q0 23 -9.5 48t-31 48t-54 38t-79.5 15q-45 0 -78 -14t-54.5 -38t-31.5 -50.5t-10 -50.5z" /> +<glyph unicode="9" d="M57 967q0 82 28 168t87 156.5t150.5 116.5t220.5 46q264 0 398 -163t134 -468q0 -201 -52 -354.5t-161.5 -258t-279.5 -158.5t-404 -56q-2 66 -6 127t-8 127q117 2 211 17.5t165.5 51t121.5 95t79 149.5q-43 -20 -95 -29.5t-89 -9.5q-133 0 -227 32t-154.5 90.5 t-89.5 140t-29 180.5zM360 979q0 -111 54.5 -164t177.5 -53q47 0 98 9t76 26v18q0 8 1 16.5t1 14.5q-2 74 -12.5 138.5t-35 112.5t-66.5 75.5t-103 27.5q-49 0 -86 -20.5t-59.5 -53t-34 -71.5t-11.5 -76z" /> +<glyph unicode=":" horiz-adv-x="503" d="M61 162q0 92 58.5 140t132.5 48t132 -48t58 -140t-58 -140.5t-132 -48.5t-132.5 48.5t-58.5 140.5zM61 889q0 92 58.5 140t132.5 48t132 -48t58 -140t-58 -140.5t-132 -48.5t-132.5 48.5t-58.5 140.5z" /> +<glyph unicode=";" horiz-adv-x="503" d="M35 -274q47 135 65.5 253.5t18.5 196.5q0 12 -1 31.5t-2 40t-2 39t-1 24.5h319q4 -49 5 -69.5t1 -34.5q0 -61 -11 -130t-31.5 -138.5t-51.5 -139t-70 -133.5zM61 889q0 92 58.5 140t132.5 48t132 -48t58 -140t-58 -140.5t-132 -48.5t-132.5 48.5t-58.5 140.5z" /> +<glyph unicode="<" d="M102 485v254l881 371l80 -248l-643 -250l643 -250l-80 -247z" /> +<glyph unicode="=" d="M100 258v256h963v-256h-963zM100 707v256h963v-256h-963z" /> +<glyph unicode=">" d="M100 362l643 250l-643 250l80 248l881 -371v-254l-881 -370z" /> +<glyph unicode="?" horiz-adv-x="931" d="M41 1346q80 51 188.5 78.5t212.5 27.5q131 0 216 -35t134.5 -88t69 -116.5t19.5 -120.5t-17.5 -105.5t-44 -89.5t-61.5 -78t-68 -69q-25 -25 -51.5 -52.5t-48 -58.5t-35.5 -64.5t-14 -68.5v-24.5t2 -28.5h-271q-4 20 -5 45.5t-1 44.5q0 57 14.5 103t38 86t54 75t63.5 67 q47 47 86 93.5t39 105.5q0 49 -37.5 84t-111.5 35t-139.5 -18.5t-145.5 -59.5zM221 162q0 90 58.5 139t132.5 49t132 -49t58 -139t-58.5 -139.5t-131.5 -49.5q-74 0 -132.5 49.5t-58.5 139.5z" /> +<glyph unicode="@" horiz-adv-x="1994" d="M102 557q0 227 78 398t205 286t290 172t335 57q188 0 350 -52t279.5 -152.5t185 -249t67.5 -340.5q0 -150 -31.5 -265.5t-92 -193.5t-144.5 -119t-188 -41q-59 0 -119 14.5t-98 51.5q-90 -63 -228 -64q-102 0 -187 32t-145.5 95.5t-94.5 156.5t-34 216q0 104 34 194.5 t99.5 157t161 105.5t215.5 39q121 0 214.5 -21.5t154.5 -44.5v-643q0 -47 19.5 -63.5t56.5 -16.5q33 0 64.5 18.5t54 66.5t37 131t14.5 210t-44 232.5t-127 180.5t-203 117t-271 42q-145 0 -267 -49.5t-211.5 -140.5t-139.5 -222t-50 -295q0 -170 49 -298t140.5 -214 t221.5 -130t294 -44q102 0 193 13.5t153 25.5l30 -193q-51 -16 -155.5 -34.5t-220.5 -18.5q-197 0 -369 51.5t-300 160t-202 277.5t-74 404zM807 559q0 -59 10 -109.5t36 -87t69 -58t106 -21.5q37 0 70 5t49 13q-4 16 -6 48t-2 61v417q-41 8 -86 9q-68 0 -115 -21.5 t-75.5 -58.5t-42 -87.5t-13.5 -109.5z" /> +<glyph unicode="A" horiz-adv-x="1476" d="M20 0q80 229 152 423.5t140.5 367t135 327t138.5 301.5h305q70 -147 137.5 -301.5t136 -327t140 -367t151.5 -423.5h-342q-23 74 -50.5 151.5t-53.5 155.5h-553q-27 -78 -54.5 -155.5t-50.5 -151.5h-332zM530 561h404q-33 92 -63.5 176t-58.5 154t-48.5 123t-32.5 84 q-10 -31 -30.5 -84t-47 -123t-58.5 -154t-65 -176z" /> +<glyph unicode="B" horiz-adv-x="1376" d="M164 23v1376q98 18 215 27.5t217 9.5q135 0 248.5 -19.5t195.5 -66.5t128 -124t46 -190q0 -170 -163 -268q135 -51 184 -139t49 -199q0 -223 -162.5 -335.5t-484.5 -112.5q-117 0 -232.5 7t-240.5 34zM475 252q35 -4 76 -6t90 -2q143 0 231.5 41t88.5 151q0 98 -74 140 t-211 42h-201v-366zM475 862h156q147 0 210.5 38t63.5 122q0 86 -65.5 121t-192.5 35q-41 0 -88 -1t-84 -6v-309z" /> +<glyph unicode="C" horiz-adv-x="1327" d="M102 711q0 176 55.5 314t152 233.5t229.5 144.5t288 49q90 0 164 -13.5t129.5 -30.5t92 -35.5t53.5 -29.5l-92 -258q-66 35 -153 59.5t-198 24.5q-74 0 -144.5 -24.5t-124.5 -78.5t-87 -140t-33 -209q0 -98 21.5 -183t69.5 -146.5t126 -97.5t189 -36q70 0 125 8t98 19.5 t75.5 26t59.5 26.5l88 -256q-68 -41 -190.5 -74t-284.5 -33q-346 0 -527.5 192.5t-181.5 547.5z" /> +<glyph unicode="D" horiz-adv-x="1509" d="M164 18v1383q111 20 230.5 27.5t205.5 7.5q182 0 330.5 -41t255 -129t164 -225t57.5 -330q0 -184 -57.5 -321.5t-163 -227.5t-257 -135t-339.5 -45q-86 0 -201 7t-225 29zM483 260q23 -2 52.5 -3t70.5 -1q240 0 355.5 121t115.5 334q0 223 -110.5 337.5t-350.5 114.5 q-33 0 -67.5 -1t-65.5 -5v-897z" /> +<glyph unicode="E" horiz-adv-x="1241" d="M164 0v1419h958v-268h-639v-279h568v-262h-568v-342h686v-268h-1005z" /> +<glyph unicode="F" horiz-adv-x="1175" d="M164 0v1419h950v-268h-631v-297h561v-268h-561v-586h-319z" /> +<glyph unicode="G" horiz-adv-x="1437" d="M102 711q0 178 55.5 315t152 232.5t226.5 144.5t277 49q100 0 181 -13.5t139.5 -30.5t96.5 -35.5t54 -29.5l-92 -256q-66 35 -151 61t-185 26q-223 0 -322.5 -124t-99.5 -339q0 -104 24.5 -189.5t74 -147t123 -95t171.5 -33.5q53 0 91 2t67 8v494h320v-703 q-57 -23 -184.5 -48.5t-313.5 -25.5q-160 0 -290 49.5t-222 143.5t-142.5 231.5t-50.5 313.5z" /> +<glyph unicode="H" horiz-adv-x="1503" d="M164 0v1419h319v-542h537v542h319v-1419h-319v602h-537v-602h-319z" /> +<glyph unicode="I" horiz-adv-x="647" d="M164 0v1419h319v-1419h-319z" /> +<glyph unicode="J" horiz-adv-x="1083" d="M20 84l107 248q59 -35 127 -61.5t147 -26.5q117 0 168.5 57t51.5 193v925h319v-942q0 -104 -23.5 -196.5t-82 -161t-157.5 -108.5t-251 -40q-139 0 -239.5 34t-166.5 79z" /> +<glyph unicode="K" horiz-adv-x="1400" d="M164 0v1419h319v-536q125 131 251 273t235 263h379q-145 -172 -292 -331.5t-308 -321.5q170 -141 328.5 -335.5t303.5 -430.5h-379q-43 70 -101 150.5t-126.5 161.5t-142.5 156t-148 132v-600h-319z" /> +<glyph unicode="L" horiz-adv-x="1153" d="M164 0v1419h319v-1145h629v-274h-948z" /> +<glyph unicode="M" horiz-adv-x="1837" d="M123 0q8 168 19.5 358.5t24.5 380t30.5 364.5t38.5 316h305q37 -68 85 -167t100 -214.5t103.5 -236.5t96.5 -228q45 106 96 227.5t103.5 237t100.5 215t85 166.5h291q20 -141 37.5 -316t30.5 -364.5t24.5 -380t19.5 -358.5h-311q-6 207 -16.5 450.5t-30.5 491.5 q-37 -86 -82 -190.5t-89 -209t-85 -199.5t-70 -163h-223q-29 68 -70 163t-85 199.5t-89 209t-82 190.5q-20 -248 -30.5 -491.5t-16.5 -450.5h-311z" /> +<glyph unicode="N" horiz-adv-x="1548" d="M164 0v1419h260q68 -68 149.5 -166t166.5 -209.5t169 -231.5t158 -230v837h317v-1419h-268q-137 244 -297 481.5t-340 448.5v-930h-315z" /> +<glyph unicode="O" horiz-adv-x="1617" d="M102 711q0 182 57.5 320t155 232.5t225.5 141.5t269 47q145 0 274 -47t225.5 -141.5t152 -232.5t55.5 -320t-54.5 -320.5t-148.5 -231.5t-224.5 -140.5t-279.5 -47.5q-145 0 -274 47.5t-225.5 140.5t-152 231t-55.5 321zM432 711q0 -104 25.5 -188.5t74 -145t118 -93 t159.5 -32.5q88 0 158.5 32.5t119 93t74 144.5t25.5 189q0 104 -25.5 189t-74 145.5t-119 93t-158.5 32.5q-90 0 -159.5 -33.5t-118 -94t-74 -145.5t-25.5 -187z" /> +<glyph unicode="P" horiz-adv-x="1318" d="M164 0v1399q104 20 221 28.5t205 8.5q317 0 487 -112t170 -366q0 -256 -172 -369.5t-491 -113.5h-101v-475h-319zM483 748h101q166 0 250 45t84 168q0 59 -22 98t-61.5 62.5t-97 32.5t-127.5 9q-35 0 -68.5 -2t-58.5 -4v-409z" /> +<glyph unicode="Q" horiz-adv-x="1617" d="M102 711q0 182 57.5 320t155 232.5t225.5 141.5t269 47q145 0 274 -47t225.5 -141.5t152 -232.5t55.5 -320q0 -150 -37 -269.5t-103.5 -210t-159 -149.5t-202.5 -86q10 -41 45 -66.5t88 -42t123.5 -24.5t152.5 -15l-65 -233q-160 6 -273.5 31.5t-192.5 70.5t-125 111 t-71 152q-127 16 -235.5 70t-188 146.5t-125 221.5t-45.5 293zM432 711q0 -104 25.5 -188.5t74 -145t118 -93t159.5 -32.5q88 0 158.5 32.5t119 93t74 144.5t25.5 189q0 104 -25.5 189t-74 145.5t-119 93t-158.5 32.5q-90 0 -159.5 -33.5t-118 -94t-74 -145.5t-25.5 -187z " /> +<glyph unicode="R" horiz-adv-x="1366" d="M164 0v1399q104 20 216 28.5t200 8.5q319 0 489 -114t170 -353q0 -150 -68.5 -243t-197.5 -146q43 -53 90 -122t93 -143.5t89 -155.5t80 -159h-358q-39 70 -79 141.5t-82 139t-83 128t-82 109.5h-158v-518h-319zM483 772h90q180 0 258 45t78 154q0 104 -78.5 148 t-232.5 44q-35 0 -62.5 -2t-52.5 -4v-385z" /> +<glyph unicode="S" horiz-adv-x="1191" d="M76 80l90 254q63 -35 156.5 -62.5t228.5 -27.5q68 0 112 11t70.5 30.5t36.5 46t10 59.5q0 70 -65.5 116t-225.5 99q-70 25 -139 56.5t-124.5 80t-90.5 117t-35 166.5t37 177t104.5 134.5t164 85t217.5 29.5q143 0 247.5 -30.5t171.5 -67.5l-92 -252q-59 31 -132 54.5 t-175 23.5q-115 0 -165 -32t-50 -97q0 -39 18.5 -66t52 -48.5t78 -38.5t97.5 -36q111 -41 192.5 -81t136 -93t81 -124.5t26.5 -174.5q0 -199 -139.5 -308.5t-419.5 -109.5q-94 0 -170 11.5t-134.5 28t-100.5 34.5t-70 35z" /> +<glyph unicode="T" horiz-adv-x="1257" d="M41 1147v272h1176v-272h-429v-1147h-319v1147h-428z" /> +<glyph unicode="U" horiz-adv-x="1447" d="M143 537v882h320v-856q0 -86 19.5 -146.5t53 -98t82 -54t105.5 -16.5q117 0 189.5 71.5t72.5 243.5v856h320v-882q0 -125 -35 -229.5t-106.5 -179.5t-182 -116t-262.5 -41q-150 0 -258.5 42t-179 117t-104.5 178.5t-34 228.5z" /> +<glyph unicode="V" horiz-adv-x="1478" d="M20 1419h353q41 -123 89 -265t98 -283.5t97.5 -270.5t87.5 -223q39 94 87.5 223t98.5 270.5t98 283.5t89 265h340q-47 -135 -108.5 -307t-135 -360.5t-155.5 -381t-166 -370.5h-307q-84 178 -166 370.5t-156 381t-136 360.5t-108 307z" /> +<glyph unicode="W" horiz-adv-x="1941" d="M41 1419h346q20 -121 45 -251t51.5 -261t54 -254t56.5 -227q37 100 71.5 213t67.5 225.5t60.5 217t50.5 186.5h272q25 -84 54.5 -189.5t63.5 -218t68.5 -225.5t67.5 -209q27 104 54.5 227t52 254t48 261t44.5 251h332q-72 -356 -165.5 -722.5t-201.5 -696.5h-293 q-72 197 -139.5 413t-132.5 433q-66 -217 -131.5 -433t-137.5 -413h-292q-109 330 -202 696.5t-165 722.5z" /> +<glyph unicode="X" horiz-adv-x="1382" d="M20 0q90 166 210 348t268 387l-457 684h387l277 -442l270 442h364l-450 -688q172 -223 288.5 -412.5t184.5 -318.5h-383q-59 119 -130 240.5t-163 248.5q-29 -37 -73 -102t-88 -139t-83 -141.5t-57 -106.5h-365z" /> +<glyph unicode="Y" horiz-adv-x="1353" d="M10 1419h371q66 -147 141.5 -292.5t161.5 -290.5q86 145 164 290.5t143 292.5h352q-117 -229 -241.5 -444t-263.5 -432v-543h-320v539q-139 217 -265 434t-243 446z" /> +<glyph unicode="Z" horiz-adv-x="1249" d="M72 0v190q57 104 140 232.5t173 258.5t183.5 252t172.5 218h-637v268h1061v-221q-66 -68 -155.5 -175.5t-186 -234t-190.5 -262t-168 -258.5h723v-268h-1116z" /> +<glyph unicode="[" horiz-adv-x="759" d="M184 -379v1983h555v-244h-264v-1495h264v-244h-555z" /> +<glyph unicode="\" horiz-adv-x="894" d="M-51 1604h309l688 -1983h-313z" /> +<glyph unicode="]" horiz-adv-x="759" d="M20 -135h265v1495h-265v244h555v-1983h-555v244z" /> +<glyph unicode="^" d="M37 717l424 710h241l424 -710l-256 -125l-288 502l-289 -502z" /> +<glyph unicode="_" horiz-adv-x="1024" d="M0 -125h1024v-254h-1024v254z" /> +<glyph unicode="`" horiz-adv-x="585" d="M41 1464l186 172l291 -331l-139 -125z" /> +<glyph unicode="a" horiz-adv-x="1132" d="M72 332q0 94 37.5 159.5t101 104.5t145.5 56.5t170 17.5q59 0 105.5 -5.5t75.5 -13.5v29q0 78 -47.5 125t-163.5 47q-78 0 -154 -11.5t-131 -31.5l-39 246q27 8 67 17t87 16.5t99 12.5t105 5q135 0 225.5 -31t144.5 -88t76.5 -139t22.5 -182v-635q-66 -14 -182.5 -34 t-281.5 -20q-104 0 -189.5 18.5t-147 60.5t-94 109.5t-32.5 166.5zM375 340q0 -72 48 -99.5t132 -27.5q45 0 86 2t66 6v232q-18 4 -55.5 8t-67.5 4q-43 0 -81 -5t-66.5 -19.5t-45 -39t-16.5 -61.5z" /> +<glyph unicode="b" horiz-adv-x="1236" d="M143 35v1505l306 49v-536q51 23 106 35t119 12q115 0 203 -40t147 -114t90 -177t31 -230q0 -129 -38 -233.5t-109.5 -178.5t-176 -114t-237.5 -40q-55 0 -115.5 5.5t-119 13.5t-112 19.5t-94.5 23.5zM449 244q23 -4 57.5 -7.5t75.5 -3.5q125 0 188.5 86.5t63.5 227.5 q0 295 -218 295q-47 0 -93 -12.5t-74 -30.5v-555z" /> +<glyph unicode="c" horiz-adv-x="1024" d="M92 539q0 117 38 220t109.5 180t174 122t233.5 45q86 0 158 -15.5t139 -43.5l-63 -244q-43 16 -94.5 28.5t-114.5 12.5q-135 0 -202 -84t-67 -221q0 -145 62.5 -225.5t218.5 -80.5q55 0 118.5 10.5t117.5 32.5l43 -249q-53 -23 -133 -39.5t-177 -16.5q-147 0 -253.5 44 t-175 120t-100.5 179.5t-32 224.5z" /> +<glyph unicode="d" horiz-adv-x="1236" d="M92 532q0 131 33 236.5t94.5 179.5t150.5 113t203 39q63 0 113.5 -12.5t101.5 -34.5v487l306 49v-1554q-41 -12 -94.5 -23.5t-112 -19.5t-118.5 -13.5t-116 -5.5q-133 0 -237.5 39t-176 112t-109.5 176t-38 232zM403 547q0 -141 63.5 -227.5t188.5 -86.5q41 0 76 3.5 t57 7.5v555q-29 18 -74.5 30.5t-92.5 12.5q-218 0 -218 -295z" /> +<glyph unicode="e" horiz-adv-x="1196" d="M92 530q0 143 44 251t116 179.5t165 108.5t191 37q229 0 362.5 -140.5t133.5 -412.5q0 -27 -2 -58.5t-4 -56.5h-692q10 -94 87.5 -149.5t208.5 -55.5q84 0 165 15.5t132 38.5l41 -248q-25 -12 -65.5 -24.5t-90.5 -21.5t-107.5 -15.5t-114.5 -6.5q-145 0 -253 43 t-178.5 118t-104.5 177t-34 221zM406 647h403q-2 39 -13.5 76t-35 65.5t-59 47t-89.5 18.5q-51 0 -88 -17.5t-61.5 -46t-37.5 -66.5t-19 -77z" /> +<glyph unicode="f" horiz-adv-x="864" d="M143 0v1135q0 209 118 331.5t349 122.5q86 0 158 -17.5t111 -33.5l-60 -244q-41 18 -89 27.5t-89 9.5q-55 0 -93 -15.5t-59.5 -42t-30.5 -63t-9 -80.5v-53h376v-254h-376v-823h-306z" /> +<glyph unicode="g" horiz-adv-x="1216" d="M92 573q0 119 37 216.5t107.5 167t173 107.5t231.5 38q55 0 113.5 -5t116 -13.5t109.5 -19.5t93 -24v-905q0 -264 -134 -392t-415 -128q-98 0 -196.5 17.5t-182.5 45.5l54 256q72 -29 150.5 -45t178.5 -16q131 0 185.5 57.5t54.5 147.5v39q-49 -23 -101.5 -34t-113.5 -11 q-223 0 -342 132t-119 369zM403 573q0 -256 207 -256q47 0 88 12.5t70 28.5v488q-23 4 -53.5 7t-71.5 3q-121 0 -180.5 -80t-59.5 -203z" /> +<glyph unicode="h" horiz-adv-x="1206" d="M143 0v1540l306 49v-516q31 10 78.5 19.5t93.5 9.5q131 0 218 -36t139 -101.5t73.5 -155.5t21.5 -201v-608h-305v571q0 147 -38 209t-140 62q-41 0 -77 -7.5t-64 -15.5v-819h-306z" /> +<glyph unicode="i" horiz-adv-x="591" d="M113 1389q0 84 54 132t128 48t128 -48t54 -132t-54 -132.5t-128 -48.5t-128 48.5t-54 132.5zM143 0v1077h306v-1077h-306z" /> +<glyph unicode="j" horiz-adv-x="591" d="M-147 -350l41 248q31 -10 56 -14.5t64 -4.5q72 0 100.5 43t28.5 125v1030h306v-1038q0 -213 -104.5 -315.5t-301.5 -102.5q-29 0 -85 6t-105 23zM113 1389q0 84 54 132t128 48t128 -48t54 -132t-54 -132.5t-128 -48.5t-128 48.5t-54 132.5z" /> +<glyph unicode="k" horiz-adv-x="1185" d="M143 0v1540l306 49v-901q45 49 93 102.5t93 105.5t85 99t68 82h363q-109 -125 -212 -238.5t-226 -234.5q61 -55 126.5 -132t127 -159t112.5 -163.5t86 -149.5h-350q-33 53 -75 117.5t-89 129t-99 124t-103 100.5v-471h-306z" /> +<glyph unicode="l" horiz-adv-x="647" d="M143 354v1186l306 49v-1173q0 -41 6 -74t23.5 -55.5t50 -36.5t87.5 -19l-43 -251q-133 2 -216 28.5t-131 74.5t-65.5 116.5t-17.5 154.5z" /> +<glyph unicode="m" horiz-adv-x="1765" d="M143 0v1040q39 10 91.5 21.5t110.5 21t119.5 14.5t121.5 5q117 0 189.5 -30t119.5 -71q66 47 150.5 74t156.5 27q129 0 212 -36t132 -101.5t67.5 -155.5t18.5 -201v-608h-305v571q0 147 -38 209t-130 62q-25 0 -68.5 -12.5t-72.5 -30.5q14 -47 18 -99.5t4 -111.5v-588 h-305v571q0 147 -38 209t-130 62q-29 0 -59.5 -3t-58.5 -8v-831h-306z" /> +<glyph unicode="n" horiz-adv-x="1206" d="M143 0v1040q78 23 201 42.5t258 19.5q137 0 228.5 -36t144.5 -101.5t75.5 -155.5t22.5 -201v-608h-305v571q0 147 -39 209t-145 62q-33 0 -70 -3t-65 -8v-831h-306z" /> +<glyph unicode="o" horiz-adv-x="1243" d="M92 541q0 127 40 231.5t110.5 178t168 114.5t212.5 41q117 0 214 -41t166.5 -114.5t108.5 -178t39 -231.5t-37 -232.5t-106.5 -180.5t-167 -116t-217.5 -41q-119 0 -216.5 41t-167 116t-108.5 180.5t-39 232.5zM403 541q0 -141 57.5 -224.5t162.5 -83.5q104 0 160.5 83.5 t56.5 224.5t-56.5 222t-160.5 81t-162 -81t-58 -222z" /> +<glyph unicode="p" horiz-adv-x="1236" d="M143 -379v1419q41 12 94.5 23.5t112 20t118.5 13.5t116 5q133 0 237.5 -40t176 -112.5t109.5 -177t38 -233.5q0 -125 -31 -227.5t-90 -176.5t-147.5 -114.5t-202.5 -40.5q-63 0 -118.5 12t-106.5 35v-406h-306zM449 281q29 -18 74.5 -30.5t92.5 -12.5h1q217 0 217 292 q0 141 -63.5 226.5t-188.5 85.5q-41 0 -76 -3t-57 -8v-550z" /> +<glyph unicode="q" horiz-adv-x="1236" d="M92 539q0 125 38 228t109.5 178t176 116t237.5 41q55 0 115.5 -5t119 -13.5t112 -19.5t94.5 -24v-1419h-306v406q-51 -23 -106 -35t-119 -12q-229 0 -350 150.5t-121 408.5zM403 530q0 -292 217 -292h1q47 0 93 12t74 31v550q-23 4 -57.5 7.5t-75.5 3.5 q-125 0 -188.5 -85.5t-63.5 -226.5z" /> +<glyph unicode="r" horiz-adv-x="864" d="M143 0v1020q82 29 194 54.5t249 25.5q25 0 59.5 -3t69.5 -8.5t69.5 -12.5t59.5 -17l-51 -252q-41 10 -96.5 21.5t-118.5 11.5q-29 0 -69 -5.5t-60 -11.5v-823h-306z" /> +<glyph unicode="s" horiz-adv-x="993" d="M80 37l51 248q78 -31 160 -48.5t162 -17.5q84 0 118.5 16.5t34.5 63.5q0 37 -45 64.5t-137 62.5q-72 27 -130 55.5t-99 68.5t-63.5 95t-22.5 133q0 152 112.5 240t308.5 88q98 0 188.5 -17.5t143.5 -37.5l-53 -238q-53 18 -115.5 32.5t-140.5 14.5q-143 0 -143 -80 q0 -18 6 -32.5t24.5 -27.5t50 -28.5t80.5 -34.5q100 -37 166 -72.5t104 -77.5t53 -93.5t15 -118.5q0 -160 -119.5 -242t-338.5 -82q-143 0 -238.5 24.5t-132.5 41.5z" /> +<glyph unicode="t" horiz-adv-x="909" d="M133 440v906l305 49v-318h367v-254h-367v-379q0 -96 34 -153.5t136 -57.5q49 0 101.5 9.5t95.5 25.5l43 -237q-55 -23 -123 -39.5t-166 -16.5q-125 0 -207 34t-131 94.5t-68.5 146.5t-19.5 190z" /> +<glyph unicode="u" horiz-adv-x="1206" d="M133 477v600h305v-563q0 -147 39 -212.5t146 -65.5q33 0 69.5 3t65.5 7v831h305v-1040q-78 -23 -201 -42.5t-258 -19.5q-137 0 -228 37t-144.5 103.5t-76 159t-22.5 202.5z" /> +<glyph unicode="v" horiz-adv-x="1126" d="M20 1077h324q20 -80 48 -173t57.5 -188t59.5 -185.5t58 -163.5q27 74 57.5 164t60.5 185t57.5 188t48.5 173h315q-96 -324 -203.5 -598t-212.5 -479h-254q-104 205 -211.5 479.5t-204.5 597.5z" /> +<glyph unicode="w" horiz-adv-x="1605" d="M20 1077h322q16 -74 35.5 -161t41 -179t45 -185t48.5 -179q27 90 52.5 184t49 185.5t45 176.5t37.5 158h222q16 -74 36.5 -158.5t43 -176t47 -185.5t51.5 -184q25 86 49 179t45.5 185t41 179.5t36.5 160.5h317q-45 -160 -93 -316.5t-94 -296.5t-90 -259t-81 -205h-238 q-51 156 -100 309t-90 309q-41 -156 -87 -309t-98 -309h-237q-37 86 -80 205t-89 259t-94 297t-94 316z" /> +<glyph unicode="x" horiz-adv-x="1134" d="M20 0q25 51 68 120.5t93 144.5t105.5 149.5t108.5 140.5q-92 129 -184 261t-182 261h329l213 -327l213 327h316l-369 -518q123 -154 223.5 -299t159.5 -260h-328q-16 31 -40.5 77t-55.5 96t-64.5 100.5t-66.5 91.5q-31 -39 -62.5 -86.5t-60 -95.5t-56.5 -95t-48 -88h-312 z" /> +<glyph unicode="y" horiz-adv-x="1120" d="M10 -336l53 244q47 -16 84 -22.5t78 -6.5q82 0 126 44t75 122q-104 205 -208.5 460t-197.5 572h324q20 -80 48 -173t58.5 -188t62.5 -185.5t60 -163.5q27 74 55.5 164t56.5 185t53.5 188t45.5 173h316q-92 -311 -192.5 -583.5t-219.5 -528.5q-43 -92 -86 -156.5 t-94 -106.5t-115.5 -61.5t-150.5 -19.5q-72 0 -132.5 13.5t-99.5 29.5z" /> +<glyph unicode="z" horiz-adv-x="1024" d="M72 0v180q43 74 103.5 159t127 171t132 167t120.5 146h-459v254h856v-205q-37 -41 -99 -110.5t-134 -153.5t-144.5 -176t-132.5 -178h521v-254h-891z" /> +<glyph unicode="{" horiz-adv-x="759" d="M72 492v241q92 0 133 53.5t41 139.5v309q0 88 22.5 156.5t74.5 115.5t139 72t216 25h41v-244h-51q-92 0 -124 -41t-32 -127v-272q0 -106 -28.5 -180t-114.5 -128q86 -53 114.5 -126.5t28.5 -180.5v-272q0 -86 32 -127t124 -41h51v-244h-41q-129 0 -216 24.5t-139 71.5 t-74.5 116t-22.5 157v309q0 86 -41 139.5t-133 53.5z" /> +<glyph unicode="|" horiz-adv-x="659" d="M184 -379v1983h291v-1983h-291z" /> +<glyph unicode="}" horiz-adv-x="759" d="M20 -135h52q92 0 123.5 41t31.5 127v272q0 106 29 180t115 127q-86 53 -115 127t-29 181v272q0 86 -31.5 127t-123.5 41h-52v244h41q129 0 216.5 -25t139.5 -72t74.5 -115.5t22.5 -156.5v-309q0 -86 41 -139.5t133 -53.5v-241q-92 0 -133 -53.5t-41 -139.5v-309 q0 -88 -22.5 -157t-74.5 -116t-139.5 -71.5t-216.5 -24.5h-41v244z" /> +<glyph unicode="~" d="M47 465q10 57 32.5 120.5t60.5 117t95.5 88t137.5 34.5q61 0 115.5 -24.5t104.5 -53t96 -53t91 -24.5q16 0 33.5 4t34 19.5t32 45t27.5 80.5l209 -57q-10 -57 -32.5 -120.5t-61.5 -117t-95 -88.5t-136 -35q-61 0 -115.5 25t-105 53.5t-96.5 53t-91 24.5q-16 0 -33.5 -4 t-34 -19.5t-32 -45t-27.5 -80.5z" /> +<glyph unicode="¡" horiz-adv-x="585" d="M102 889q0 90 58.5 139t132.5 49t132 -49t58 -139t-58 -139.5t-132 -49.5t-132.5 49.5t-58.5 139.5zM131 8q0 166 13.5 309.5t33.5 290.5h234q20 -147 32.5 -290.5t12.5 -309.5v-377h-326v377z" /> +<glyph unicode="¢" d="M92 600q0 90 24.5 173t73 150.5t116 118t153.5 76.5v299h291v-276q53 -8 101 -20.5t95 -33.5l-67 -243q-43 16 -93.5 28.5t-113.5 12.5q-129 0 -199 -77t-70 -208q0 -139 66 -212t215 -73q55 0 118.5 10.5t117.5 32.5l43 -249q-41 -16 -94.5 -29.5t-118.5 -22.5v-280 h-291v299q-188 51 -277.5 192.5t-89.5 331.5z" /> +<glyph unicode="£" d="M47 559v248h178v108q0 154 37 255.5t101.5 163t154.5 87t197 25.5q82 0 153.5 -16.5t139.5 -45.5l-76 -239q-47 23 -89 33t-102 12q-49 0 -89 -10.5t-68.5 -39t-45 -77.5t-16.5 -123v-133h340v-248h-340q-2 -72 -9 -153.5t-17 -149.5h534v-256h-870q37 164 49 303t16 256 h-178z" /> +<glyph unicode="¤" d="M51 385l148 141q-43 80 -43 185q0 104 43 184l-148 141l193 189l151 -148q43 20 88.5 28.5t98.5 8.5q51 0 97 -8t91 -29l152 146l190 -187l-147 -141q43 -80 43 -184t-43 -185l147 -141l-192 -188l-152 147q-43 -20 -88 -28.5t-98 -8.5q-51 0 -97.5 8.5t-91.5 28.5 l-151 -145zM414 711q0 -88 49 -133.5t119 -45.5t119 45.5t49 133.5t-49.5 133t-118.5 45q-70 0 -119 -45t-49 -133z" /> +<glyph unicode="¥" d="M-10 1419h348q63 -141 121.5 -283.5t128.5 -277.5q68 135 123 279.5t116 281.5h347q-78 -158 -161 -322.5t-177 -330.5h204v-203h-303v-133h303v-203h-303v-227h-309v227h-303v203h303v133h-303v203h205q-43 78 -90 164t-92.5 172t-86.5 168t-71 149z" /> +<glyph unicode="¦" horiz-adv-x="618" d="M164 -379v813h291v-813h-291zM164 791v813h291v-813h-291z" /> +<glyph unicode="§" horiz-adv-x="1054" d="M57 -133l76 244q47 -18 89 -33t84 -24t87 -14t101 -5q76 0 114.5 17.5t38.5 60.5q0 20 -8 35.5t-29.5 30t-57.5 28.5t-91 33q-80 27 -150.5 56.5t-123 73.5t-82 106.5t-29.5 154.5q0 96 46 161.5t111 129.5q-98 82 -98 196q0 158 116 246t333 88q94 0 193.5 -20.5 t178.5 -53.5l-75 -245q-66 29 -136.5 45t-162.5 16q-78 0 -110 -17.5t-32 -52.5q0 -43 35 -68.5t127 -56.5q90 -31 162 -63.5t121 -75.5t75.5 -102.5t26.5 -143.5q0 -45 -10 -80.5t-29.5 -66.5t-48.5 -60.5t-63 -60.5q63 -47 89.5 -103.5t26.5 -131.5q0 -334 -442 -334 q-158 0 -269.5 26.5t-183.5 63.5zM350 653q0 -78 68.5 -118.5t210.5 -88.5q33 29 54.5 64t21.5 70q0 39 -17.5 66.5t-51.5 51t-87 43.5t-123 45q-33 -29 -54.5 -63.5t-21.5 -69.5z" /> +<glyph unicode="¨" horiz-adv-x="1097" d="M162 1389q0 72 47 113.5t110 41.5t110.5 -42t47.5 -113q0 -72 -47.5 -114t-110.5 -42t-110 42t-47 114zM618 1389q0 72 47.5 113.5t110.5 41.5t110.5 -42t47.5 -113q0 -72 -47.5 -114t-110.5 -42t-110.5 42t-47.5 114z" /> +<glyph unicode="©" horiz-adv-x="1630" d="M102 711q0 174 58.5 312t157 233.5t227.5 145.5t270 50t270 -50t227.5 -145.5t157 -233.5t58.5 -312t-58.5 -312.5t-157 -233.5t-227.5 -145.5t-270 -50.5t-270 50.5t-227.5 145.5t-157 233.5t-58.5 312.5zM311 711q0 -123 37 -223.5t103.5 -172t160 -110.5t203.5 -39 q111 0 204 39t159.5 110.5t103.5 172t37 223.5t-37 223t-103.5 172t-159.5 110.5t-204 38.5t-204 -38.5t-159.5 -110.5t-103.5 -172t-37 -223zM473 715q0 184 101.5 284.5t267.5 100.5q98 0 158.5 -26.5t82.5 -39.5l-65 -180q-29 16 -64.5 27.5t-93.5 11.5q-68 0 -108.5 -43 t-40.5 -125q0 -37 6 -70.5t22.5 -59.5t45 -42t75.5 -16q61 0 102.5 14t73.5 27l58 -187q-27 -14 -90.5 -38.5t-155.5 -24.5q-182 0 -278.5 100t-96.5 287z" /> +<glyph unicode="ª" horiz-adv-x="817" d="M49 889q0 70 27.5 116t74 74.5t109 41t129.5 12.5q41 0 75 -4.5t56 -8.5v21q0 57 -34.5 89t-118.5 32q-57 0 -114.5 -8.5t-98.5 -22.5l-31 182q39 12 115.5 24.5t152.5 12.5q98 0 165 -21.5t108 -62.5t58 -98.5t17 -130.5v-465q-47 -10 -136 -25.5t-208 -15.5 q-162 0 -254 57t-92 201zM279 895q0 -53 36 -71.5t95 -18.5q33 0 62.5 2t47.5 4v160q-14 4 -40.5 7t-49.5 3q-61 0 -106 -16.5t-45 -69.5z" /> +<glyph unicode="«" horiz-adv-x="1222" d="M41 582l336 491l231 -108l-207 -383l207 -383l-231 -109zM594 582l336 491l231 -108l-207 -383l207 -383l-231 -109z" /> +<glyph unicode="¬" d="M102 575v256h963v-735h-279v479h-684z" /> +<glyph unicode="­" horiz-adv-x="696" d="M51 473v277h594v-277h-594z" /> +<glyph unicode="®" horiz-adv-x="1630" d="M102 711q0 174 58.5 312t157 233.5t227.5 145.5t270 50t270 -50t227.5 -145.5t157 -233.5t58.5 -312q0 -176 -58.5 -313.5t-157 -232.5t-227.5 -145.5t-270 -50.5t-270 50.5t-227.5 145.5t-157 232.5t-58.5 313.5zM311 711q0 -123 37 -223.5t103.5 -172t160 -110.5 t203.5 -39q111 0 204 39t159.5 110.5t103.5 172t37 223.5t-37 223t-103.5 172t-159.5 110.5t-204 38.5t-204 -38.5t-159.5 -110.5t-103.5 -172t-37 -223zM545 362v701q70 16 130 23.5t105 7.5q330 0 330 -248q0 -127 -111 -187q23 -35 40.5 -66.5t35 -65t34.5 -73.5t40 -92 h-209q-35 78 -59.5 136.5t-55.5 105.5h-82v-242h-198zM743 764h37q66 0 98.5 17.5t32.5 66.5q0 41 -28.5 57.5t-83.5 16.5q-14 0 -29.5 -1t-26.5 -3v-154z" /> +<glyph unicode="¯" horiz-adv-x="770" d="M55 1276v209h660v-209h-660z" /> +<glyph unicode="°" horiz-adv-x="743" d="M41 1282q0 74 26.5 132.5t71.5 100t105.5 63t126.5 21.5t126 -21.5t105 -63t71.5 -100t26.5 -132.5t-26.5 -132t-71.5 -100t-105.5 -63.5t-125.5 -21.5q-66 0 -126.5 21.5t-105.5 63.5t-71.5 100t-26.5 132zM258 1282q0 -53 35 -85t78 -32t77.5 32t34.5 85t-34.5 85 t-77.5 32t-78 -32t-35 -85z" /> +<glyph unicode="±" d="M100 0v256h963v-256h-963zM100 676v256h342v348h279v-348h342v-256h-342v-348h-279v348h-342z" /> +<glyph unicode="²" horiz-adv-x="743" d="M33 1331q53 45 136 83t175 38q80 0 136.5 -18.5t91 -52t51 -80t16.5 -101.5q0 -45 -14.5 -82t-38 -68.5t-54 -59t-61.5 -54.5q-35 -29 -72 -64.5t-59 -66.5h319v-187h-587q-2 16 -2 30v28q0 100 54 181t159 169q55 47 89 82t34 72q0 31 -18.5 49t-53.5 18 q-59 0 -109.5 -23.5t-85.5 -52.5z" /> +<glyph unicode="³" horiz-adv-x="743" d="M35 657l47 183q70 -29 118 -37t105 -8q72 0 100.5 21.5t28.5 53.5q0 84 -143 84h-84v168h84q47 0 77.5 18.5t30.5 55.5q0 66 -90 66q-47 0 -94 -15.5t-90 -36.5l-78 162q51 33 128 56.5t151 23.5q82 0 138 -18.5t90 -50t48 -73.5t14 -87q0 -43 -19 -82t-67 -76 q66 -31 95.5 -82t29.5 -115q0 -55 -18.5 -104t-59 -85t-107.5 -56.5t-163 -20.5q-35 0 -72.5 4t-74.5 12.5t-69 17.5t-56 21z" /> +<glyph unicode="´" horiz-adv-x="585" d="M53 1305l291 331l186 -172l-337 -284z" /> +<glyph unicode="µ" horiz-adv-x="1216" d="M143 -340v1417h306v-577q0 -78 11 -129.5t34.5 -81t58.5 -41.5t82 -12q33 0 68.5 3t64.5 7v831h305v-1040q-80 -23 -191.5 -40t-240.5 -17q-53 0 -108.5 10t-94.5 28q4 -41 7.5 -82.5t3.5 -117.5v-158h-306z" /> +<glyph unicode="¶" horiz-adv-x="1454" d="M82 975q0 223 175 342t505 119q63 0 134 -4.5t140.5 -10.5t135 -16t118.5 -23v-1763h-289v1557q-29 4 -82 6t-98 2v-1565h-291v909q-229 31 -338.5 136.5t-109.5 310.5z" /> +<glyph unicode="·" horiz-adv-x="503" d="M61 604q0 92 58.5 140t132.5 48t132 -48t58 -140t-58 -140.5t-132 -48.5t-132.5 48.5t-58.5 140.5z" /> +<glyph unicode="¸" horiz-adv-x="667" d="M92 -426l37 178q14 -4 52 -13t75 -9q29 0 50.5 11t23.5 40q2 25 -19.5 45t-68.5 31l-25 6q6 20 17.5 47t23.5 52.5t22.5 47t16.5 31.5h203q-12 -23 -31 -60.5t-29 -62.5q66 -33 90.5 -78t24.5 -92q0 -98 -77 -149.5t-206 -51.5q-45 0 -90 7.5t-90 19.5z" /> +<glyph unicode="¹" horiz-adv-x="743" d="M78 1266q86 35 167 79t140 91h178v-818h-233v553q-41 -23 -84 -42t-105 -42z" /> +<glyph unicode="º" horiz-adv-x="935" d="M68 1036q0 98 29.5 175t82.5 130.5t127 82t162 28.5t162 -28.5t126 -82t81.5 -130.5t29.5 -175q0 -96 -29.5 -172t-81.5 -128t-126 -80.5t-162 -28.5t-162 28.5t-127 80.5t-82.5 128t-29.5 172zM301 1036q0 -92 44 -148.5t124 -56.5t123 56.5t43 148.5q0 98 -43 154.5 t-123 56.5q-78 0 -123 -56t-45 -155z" /> +<glyph unicode="»" horiz-adv-x="1222" d="M61 199l207 383l-207 383l232 108l336 -491l-336 -492zM614 199l207 383l-207 383l232 108l336 -491l-336 -492z" /> +<glyph unicode="¼" horiz-adv-x="1798" d="M41 1266q86 35 167 79t140 91h178v-818h-233v553q-41 -23 -84 -42t-105 -42zM379 0l731 1419h279l-728 -1419h-282zM1096 179v147q86 145 175 263t198 233h202v-473h95v-170h-95v-177h-192v177h-383zM1311 349h168v245q-47 -53 -89 -113.5t-79 -131.5z" /> +<glyph unicode="½" horiz-adv-x="1798" d="M41 1266q86 35 167 79t140 91h178v-818h-233v553q-41 -23 -84 -42t-105 -42zM322 0l731 1419h279l-728 -1419h-282zM1088 717q53 45 136 83t175 38q80 0 136.5 -18.5t91 -52t51 -80t16.5 -101.5q0 -45 -14.5 -82t-38 -68.5t-54 -59t-61.5 -54.5q-35 -29 -72 -64.5 t-59 -66.5h319v-187h-587q-2 16 -2 30v28q0 100 54 181t159 169q55 47 89 82t34 72q0 31 -18.5 49t-53.5 18q-59 0 -109.5 -23.5t-85.5 -52.5z" /> +<glyph unicode="¾" horiz-adv-x="1798" d="M47 657l47 183q70 -29 118 -37t105 -8q72 0 100.5 21.5t28.5 53.5q0 84 -143 84h-84v168h84q47 0 77.5 18.5t30.5 55.5q0 66 -90 66q-47 0 -94 -15.5t-90 -36.5l-78 162q51 33 128 56.5t151 23.5q82 0 138 -18.5t90 -50t48 -73.5t14 -87q0 -43 -19 -82t-67 -76 q66 -31 95.5 -82t29.5 -115q0 -55 -18.5 -104t-59 -85t-107.5 -56.5t-163 -20.5q-35 0 -72.5 4t-74.5 12.5t-69 17.5t-56 21zM422 0l731 1419h279l-728 -1419h-282zM1096 179v147q86 145 175 263t198 233h202v-473h95v-170h-95v-177h-192v177h-383zM1311 349h168v245 q-47 -53 -89 -113.5t-79 -131.5z" /> +<glyph unicode="¿" horiz-adv-x="931" d="M51 -43q0 57 17.5 105.5t44 89.5t60.5 77.5t69 69.5q25 25 51 52.5t47.5 58t36 64.5t14.5 69v24.5t-2 28.5h270q4 -20 5.5 -46t1.5 -44q0 -57 -14.5 -104.5t-38 -87.5t-54.5 -73.5t-63 -66.5q-47 -47 -86 -93t-39 -106q0 -49 37.5 -83.5t111.5 -34.5t139.5 18.5 t145.5 58.5l86 -231q-80 -51 -188.5 -78.5t-213.5 -27.5q-131 0 -216 34.5t-134 88t-68.5 117t-19.5 120.5zM330 887q0 90 58 139t132 49t132.5 -49t58.5 -139t-58.5 -139.5t-132.5 -49.5t-132 49.5t-58 139.5z" /> +<glyph unicode="À" horiz-adv-x="1476" d="M20 0q80 229 152 423.5t140.5 367t135 327t138.5 301.5h305q70 -147 137.5 -301.5t136 -327t140 -367t151.5 -423.5h-342q-23 74 -50.5 151.5t-53.5 155.5h-553q-27 -78 -54.5 -155.5t-50.5 -151.5h-332zM485 1792l186 172l291 -331l-139 -125zM530 561h404 q-33 92 -63.5 176t-58.5 154t-48.5 123t-32.5 84q-10 -31 -30.5 -84t-47 -123t-58.5 -154t-65 -176z" /> +<glyph unicode="Á" horiz-adv-x="1476" d="M20 0q80 229 152 423.5t140.5 367t135 327t138.5 301.5h305q70 -147 137.5 -301.5t136 -327t140 -367t151.5 -423.5h-342q-23 74 -50.5 151.5t-53.5 155.5h-553q-27 -78 -54.5 -155.5t-50.5 -151.5h-332zM497 1633l291 331l186 -172l-337 -284zM530 561h404 q-33 92 -63.5 176t-58.5 154t-48.5 123t-32.5 84q-10 -31 -30.5 -84t-47 -123t-58.5 -154t-65 -176z" /> +<glyph unicode="Â" horiz-adv-x="1476" d="M20 0q80 229 152 423.5t140.5 367t135 327t138.5 301.5h305q70 -147 137.5 -301.5t136 -327t140 -367t151.5 -423.5h-342q-23 74 -50.5 151.5t-53.5 155.5h-553q-27 -78 -54.5 -155.5t-50.5 -151.5h-332zM416 1661l322 281l317 -281l-113 -135l-204 157l-205 -157z M530 561h404q-33 92 -63.5 176t-58.5 154t-48.5 123t-32.5 84q-10 -31 -30.5 -84t-47 -123t-58.5 -154t-65 -176z" /> +<glyph unicode="Ã" horiz-adv-x="1476" d="M20 0q80 229 152 423.5t140.5 367t135 327t138.5 301.5h305q70 -147 137.5 -301.5t136 -327t140 -367t151.5 -423.5h-342q-23 74 -50.5 151.5t-53.5 155.5h-553q-27 -78 -54.5 -155.5t-50.5 -151.5h-332zM364 1659q12 31 33.5 68t52.5 68.5t70 52t86 20.5 q37 0 68.5 -11.5t62.5 -24.5t60.5 -24.5t64.5 -11.5q41 0 67.5 27t42.5 61l150 -98q-12 -31 -33.5 -67.5t-52.5 -68.5t-70 -52.5t-86 -20.5q-37 0 -68.5 11.5t-62.5 24.5t-61.5 24.5t-63.5 11.5q-41 0 -67.5 -26.5t-42.5 -61.5zM530 561h404q-33 92 -63.5 176t-58.5 154 t-48.5 123t-32.5 84q-10 -31 -30.5 -84t-47 -123t-58.5 -154t-65 -176z" /> +<glyph unicode="Ä" horiz-adv-x="1476" d="M20 0q80 229 152 423.5t140.5 367t135 327t138.5 301.5h305q70 -147 137.5 -301.5t136 -327t140 -367t151.5 -423.5h-342q-23 74 -50.5 151.5t-53.5 155.5h-553q-27 -78 -54.5 -155.5t-50.5 -151.5h-332zM338 1717q0 72 47 113.5t110 41.5t110.5 -42t47.5 -113 q0 -72 -47.5 -114t-110.5 -42t-110 42t-47 114zM530 561h404q-33 92 -63.5 176t-58.5 154t-48.5 123t-32.5 84q-10 -31 -30.5 -84t-47 -123t-58.5 -154t-65 -176zM794 1717q0 72 47.5 113.5t110.5 41.5t110.5 -42t47.5 -113q0 -72 -47.5 -114t-110.5 -42t-110.5 42 t-47.5 114z" /> +<glyph unicode="Å" horiz-adv-x="1476" d="M20 0q78 223 148 414.5t137.5 360.5t133 320.5t134.5 297.5q-35 31 -55 74.5t-20 103.5q0 57 19.5 101t53 74t76.5 45t90 15q49 0 93 -15t78 -45t53.5 -74t19.5 -101q0 -59 -21.5 -104.5t-56.5 -73.5q68 -145 134.5 -297t133 -321t137 -360.5t148.5 -414.5h-342 q-23 74 -50.5 151.5t-53.5 155.5h-553q-27 -78 -54.5 -155.5t-50.5 -151.5h-332zM530 561h404q-33 92 -63.5 176t-58.5 154t-48.5 123t-32.5 84q-10 -31 -30.5 -84t-47 -123t-58.5 -154t-65 -176zM645 1571q0 -47 28.5 -71.5t63.5 -24.5q37 0 65.5 24.5t28.5 71.5 t-28.5 71.5t-65.5 24.5q-35 0 -63.5 -24.5t-28.5 -71.5z" /> +<glyph unicode="Æ" horiz-adv-x="2035" d="M20 0q250 449 465 800t408 619h1024v-268h-604v-279h532v-262h-532v-342h651v-268h-960v336h-451q-43 -78 -94 -168t-88 -168h-351zM682 590h322v520q-33 -47 -74 -112.5t-85 -136t-86 -142.5t-77 -129z" /> +<glyph unicode="Ç" horiz-adv-x="1327" d="M102 711q0 176 55.5 314t152 233.5t229.5 144.5t288 49q90 0 164 -13.5t129.5 -30.5t92 -35.5t53.5 -29.5l-92 -258q-66 35 -153 59.5t-198 24.5q-74 0 -144.5 -24.5t-124.5 -78.5t-87 -140t-33 -209q0 -98 21.5 -183t69.5 -146.5t126 -97.5t189 -36q70 0 125 8t98 19.5 t75.5 26t59.5 26.5l88 -256q-59 -37 -162.5 -67t-238.5 -38q-8 -16 -14.5 -30.5t-10.5 -24.5q66 -33 90.5 -78t24.5 -92q0 -98 -78 -149.5t-205 -51.5q-45 0 -90 7.5t-90 19.5l37 178q14 -4 52 -13t75 -9q29 0 50.5 11t23.5 40q2 25 -19.5 45t-68.5 31l-25 6q8 25 21.5 56.5 t25.5 60.5q-287 35 -434.5 222t-147.5 509z" /> +<glyph unicode="È" horiz-adv-x="1241" d="M164 0v1419h958v-268h-639v-279h568v-262h-568v-342h686v-268h-1005zM391 1792l186 172l291 -331l-139 -125z" /> +<glyph unicode="É" horiz-adv-x="1241" d="M164 0v1419h958v-268h-639v-279h568v-262h-568v-342h686v-268h-1005zM424 1633l291 331l186 -172l-337 -284z" /> +<glyph unicode="Ê" horiz-adv-x="1241" d="M164 0v1419h958v-268h-639v-279h568v-262h-568v-342h686v-268h-1005zM326 1661l322 281l317 -281l-113 -135l-204 157l-205 -157z" /> +<glyph unicode="Ë" horiz-adv-x="1241" d="M164 0v1419h958v-268h-639v-279h568v-262h-568v-342h686v-268h-1005zM252 1717q0 72 47 113.5t110 41.5t110.5 -42t47.5 -113q0 -72 -47.5 -114t-110.5 -42t-110 42t-47 114zM708 1717q0 72 47.5 113.5t110.5 41.5t110.5 -42t47.5 -113q0 -72 -47.5 -114t-110.5 -42 t-110.5 42t-47.5 114z" /> +<glyph unicode="Ì" horiz-adv-x="647" d="M72 1792l186 172l291 -331l-139 -125zM164 0v1419h319v-1419h-319z" /> +<glyph unicode="Í" horiz-adv-x="647" d="M102 1633l291 331l186 -172l-337 -284zM164 0v1419h319v-1419h-319z" /> +<glyph unicode="Î" horiz-adv-x="647" d="M8 1661l322 281l317 -281l-113 -135l-204 157l-205 -157zM164 0v1419h319v-1419h-319z" /> +<glyph unicode="Ï" horiz-adv-x="647" d="M-57 1717q0 72 47 113.5t110 41.5t110.5 -42t47.5 -113q0 -72 -47.5 -114t-110.5 -42t-110 42t-47 114zM164 0v1419h319v-1419h-319zM399 1717q0 72 47.5 113.5t110.5 41.5t110.5 -42t47.5 -113q0 -72 -47.5 -114t-110.5 -42t-110.5 42t-47.5 114z" /> +<glyph unicode="Ð" horiz-adv-x="1531" d="M20 618v236h166v547q111 20 231 27.5t206 7.5q182 0 330.5 -41t255 -129t164 -225t57.5 -330q0 -184 -57.5 -321.5t-163 -227.5t-257 -135t-340.5 -45q-86 0 -200.5 7t-225.5 29v600h-166zM506 260q23 -2 52.5 -3t70.5 -1q240 0 355.5 121t115.5 334q0 223 -110.5 337.5 t-350.5 114.5q-33 0 -67.5 -1t-65.5 -5v-303h258v-236h-258v-358z" /> +<glyph unicode="Ñ" horiz-adv-x="1548" d="M164 0v1419h260q68 -68 149.5 -166t166.5 -209.5t169 -231.5t158 -230v837h317v-1419h-268q-137 244 -297 481.5t-340 448.5v-930h-315zM399 1659q12 31 33.5 68t52.5 68.5t70 52t86 20.5q37 0 68.5 -11.5t62.5 -24.5t60.5 -24.5t64.5 -11.5q41 0 67.5 27t42.5 61 l150 -98q-12 -31 -33.5 -67.5t-52.5 -68.5t-70 -52.5t-86 -20.5q-37 0 -68.5 11.5t-62.5 24.5t-61.5 24.5t-63.5 11.5q-41 0 -67.5 -26.5t-42.5 -61.5z" /> +<glyph unicode="Ò" horiz-adv-x="1617" d="M102 711q0 182 57.5 320t155 232.5t225.5 141.5t269 47q145 0 274 -47t225.5 -141.5t152 -232.5t55.5 -320t-54.5 -320.5t-148.5 -231.5t-224.5 -140.5t-279.5 -47.5q-145 0 -274 47.5t-225.5 140.5t-152 231t-55.5 321zM432 711q0 -104 25.5 -188.5t74 -145t118 -93 t159.5 -32.5q88 0 158.5 32.5t119 93t74 144.5t25.5 189q0 104 -25.5 189t-74 145.5t-119 93t-158.5 32.5q-90 0 -159.5 -33.5t-118 -94t-74 -145.5t-25.5 -187zM557 1792l186 172l291 -331l-139 -125z" /> +<glyph unicode="Ó" horiz-adv-x="1617" d="M102 711q0 182 57.5 320t155 232.5t225.5 141.5t269 47q145 0 274 -47t225.5 -141.5t152 -232.5t55.5 -320t-54.5 -320.5t-148.5 -231.5t-224.5 -140.5t-279.5 -47.5q-145 0 -274 47.5t-225.5 140.5t-152 231t-55.5 321zM432 711q0 -104 25.5 -188.5t74 -145t118 -93 t159.5 -32.5q88 0 158.5 32.5t119 93t74 144.5t25.5 189q0 104 -25.5 189t-74 145.5t-119 93t-158.5 32.5q-90 0 -159.5 -33.5t-118 -94t-74 -145.5t-25.5 -187zM573 1633l291 331l186 -172l-337 -284z" /> +<glyph unicode="Ô" horiz-adv-x="1617" d="M102 711q0 182 57.5 320t155 232.5t225.5 141.5t269 47q145 0 274 -47t225.5 -141.5t152 -232.5t55.5 -320t-54.5 -320.5t-148.5 -231.5t-224.5 -140.5t-279.5 -47.5q-145 0 -274 47.5t-225.5 140.5t-152 231t-55.5 321zM432 711q0 -104 25.5 -188.5t74 -145t118 -93 t159.5 -32.5q88 0 158.5 32.5t119 93t74 144.5t25.5 189q0 104 -25.5 189t-74 145.5t-119 93t-158.5 32.5q-90 0 -159.5 -33.5t-118 -94t-74 -145.5t-25.5 -187zM489 1661l322 281l317 -281l-113 -135l-204 157l-205 -157z" /> +<glyph unicode="Õ" horiz-adv-x="1617" d="M102 711q0 182 57.5 320t155 232.5t225.5 141.5t269 47q145 0 274 -47t225.5 -141.5t152 -232.5t55.5 -320t-54.5 -320.5t-148.5 -231.5t-224.5 -140.5t-279.5 -47.5q-145 0 -274 47.5t-225.5 140.5t-152 231t-55.5 321zM432 711q0 -104 25.5 -188.5t74 -145t118 -93 t159.5 -32.5q88 0 158.5 32.5t119 93t74 144.5t25.5 189q0 104 -25.5 189t-74 145.5t-119 93t-158.5 32.5q-90 0 -159.5 -33.5t-118 -94t-74 -145.5t-25.5 -187zM434 1659q12 31 33.5 68t52.5 68.5t70 52t86 20.5q37 0 68.5 -11.5t62.5 -24.5t60.5 -24.5t64.5 -11.5 q41 0 67.5 27t42.5 61l150 -98q-12 -31 -33.5 -67.5t-52.5 -68.5t-70 -52.5t-86 -20.5q-37 0 -68.5 11.5t-62.5 24.5t-61.5 24.5t-63.5 11.5q-41 0 -67.5 -26.5t-42.5 -61.5z" /> +<glyph unicode="Ö" horiz-adv-x="1617" d="M102 711q0 182 57.5 320t155 232.5t225.5 141.5t269 47q145 0 274 -47t225.5 -141.5t152 -232.5t55.5 -320t-54.5 -320.5t-148.5 -231.5t-224.5 -140.5t-279.5 -47.5q-145 0 -274 47.5t-225.5 140.5t-152 231t-55.5 321zM410 1717q0 72 47 113.5t110 41.5t110.5 -42 t47.5 -113q0 -72 -47.5 -114t-110.5 -42t-110 42t-47 114zM432 711q0 -104 25.5 -188.5t74 -145t118 -93t159.5 -32.5q88 0 158.5 32.5t119 93t74 144.5t25.5 189q0 104 -25.5 189t-74 145.5t-119 93t-158.5 32.5q-90 0 -159.5 -33.5t-118 -94t-74 -145.5t-25.5 -187z M866 1717q0 72 47.5 113.5t110.5 41.5t110.5 -42t47.5 -113q0 -72 -47.5 -114t-110.5 -42t-110.5 42t-47.5 114z" /> +<glyph unicode="×" d="M127 336l279 276l-279 279l178 178l277 -278l278 278l178 -178l-278 -279l278 -276l-178 -178l-278 278l-277 -278z" /> +<glyph unicode="Ø" horiz-adv-x="1617" d="M102 711q0 182 57.5 320t155 232.5t225.5 141.5t269 47q203 0 365 -90l114 149l174 -129l-121 -155q82 -92 128.5 -221t46.5 -295q0 -182 -54.5 -320.5t-148.5 -231.5t-224.5 -140.5t-279.5 -47.5q-102 0 -195.5 21.5t-173.5 68.5l-118 -153l-175 129l125 160 q-80 92 -125 220t-45 294zM432 711q0 -141 47 -246l512 661q-80 45 -182 45q-90 0 -159.5 -33.5t-118 -94t-74 -145.5t-25.5 -187zM623 297q84 -45 186 -45q88 0 158.5 32.5t119 93t74 145t25.5 188.5q0 147 -49 252z" /> +<glyph unicode="Ù" horiz-adv-x="1447" d="M143 537v882h320v-856q0 -86 19.5 -146.5t53 -98t82 -54t105.5 -16.5q117 0 189.5 71.5t72.5 243.5v856h320v-882q0 -125 -35 -229.5t-106.5 -179.5t-182 -116t-262.5 -41q-150 0 -258.5 42t-179 117t-104.5 178.5t-34 228.5zM430 1792l186 172l291 -331l-139 -125z" /> +<glyph unicode="Ú" horiz-adv-x="1447" d="M143 537v882h320v-856q0 -86 19.5 -146.5t53 -98t82 -54t105.5 -16.5q117 0 189.5 71.5t72.5 243.5v856h320v-882q0 -125 -35 -229.5t-106.5 -179.5t-182 -116t-262.5 -41q-150 0 -258.5 42t-179 117t-104.5 178.5t-34 228.5zM524 1633l291 331l186 -172l-337 -284z" /> +<glyph unicode="Û" horiz-adv-x="1447" d="M143 537v882h320v-856q0 -86 19.5 -146.5t53 -98t82 -54t105.5 -16.5q117 0 189.5 71.5t72.5 243.5v856h320v-882q0 -125 -35 -229.5t-106.5 -179.5t-182 -116t-262.5 -41q-150 0 -258.5 42t-179 117t-104.5 178.5t-34 228.5zM401 1661l322 281l317 -281l-113 -135 l-204 157l-205 -157z" /> +<glyph unicode="Ü" horiz-adv-x="1447" d="M143 537v882h320v-856q0 -86 19.5 -146.5t53 -98t82 -54t105.5 -16.5q117 0 189.5 71.5t72.5 243.5v856h320v-882q0 -125 -35 -229.5t-106.5 -179.5t-182 -116t-262.5 -41q-150 0 -258.5 42t-179 117t-104.5 178.5t-34 228.5zM338 1717q0 72 47 113.5t110 41.5t110.5 -42 t47.5 -113q0 -72 -47.5 -114t-110.5 -42t-110 42t-47 114zM794 1717q0 72 47.5 113.5t110.5 41.5t110.5 -42t47.5 -113q0 -72 -47.5 -114t-110.5 -42t-110.5 42t-47.5 114z" /> +<glyph unicode="Ý" horiz-adv-x="1353" d="M10 1419h371q66 -147 141.5 -292.5t161.5 -290.5q86 145 164 290.5t143 292.5h352q-117 -229 -241.5 -444t-263.5 -432v-543h-320v539q-139 217 -265 434t-243 446zM487 1633l291 331l186 -172l-337 -284z" /> +<glyph unicode="Þ" horiz-adv-x="1318" d="M164 0v1419h319v-205q14 2 35 3.5t41.5 2.5t40 1h31.5q135 0 248.5 -26t195.5 -83t127 -147.5t45 -219.5q0 -256 -172 -369.5t-491 -113.5h-101v-262h-319zM483 535h101q166 0 250 45t84 168q0 59 -22 98t-61.5 62.5t-97 32.5t-127.5 9q-35 0 -68.5 -2t-58.5 -4v-409z " /> +<glyph unicode="ß" horiz-adv-x="1349" d="M143 0v1092q0 109 29 199.5t89.5 157.5t151.5 103.5t216 36.5q119 0 205 -27.5t141 -73.5t80.5 -108.5t25.5 -130.5q0 -86 -17 -137t-58 -98q-45 -53 -81 -98.5t-36 -102.5q0 -31 16.5 -53.5t43 -43t62.5 -41t76 -42.5q74 -43 129.5 -112.5t55.5 -180.5 q0 -176 -100.5 -270.5t-331.5 -94.5q-113 0 -180.5 20.5t-108.5 37.5l51 246q20 -8 49 -17.5t59.5 -17.5t62.5 -13.5t61 -5.5q137 0 137 111q0 53 -55.5 95t-141.5 81q-59 27 -95 57.5t-54.5 64.5t-24.5 68.5t-6 71.5q0 86 39 144.5t92 119.5q35 41 53.5 76t18.5 88 q0 68 -43 100.5t-117 32.5q-98 0 -146.5 -61.5t-48.5 -175.5v-1098h-299z" /> +<glyph unicode="à" horiz-adv-x="1132" d="M72 332q0 94 37.5 159.5t101 104.5t145.5 56.5t170 17.5q59 0 105.5 -5.5t75.5 -13.5v29q0 78 -47.5 125t-163.5 47q-78 0 -154 -11.5t-131 -31.5l-39 246q27 8 67 17t87 16.5t99 12.5t105 5q135 0 225.5 -31t144.5 -88t76.5 -139t22.5 -182v-635q-66 -14 -182.5 -34 t-281.5 -20q-104 0 -189.5 18.5t-147 60.5t-94 109.5t-32.5 166.5zM293 1464l186 172l291 -331l-139 -125zM375 340q0 -72 48 -99.5t132 -27.5q45 0 86 2t66 6v232q-18 4 -55.5 8t-67.5 4q-43 0 -81 -5t-66.5 -19.5t-45 -39t-16.5 -61.5z" /> +<glyph unicode="á" horiz-adv-x="1132" d="M72 332q0 94 37.5 159.5t101 104.5t145.5 56.5t170 17.5q59 0 105.5 -5.5t75.5 -13.5v29q0 78 -47.5 125t-163.5 47q-78 0 -154 -11.5t-131 -31.5l-39 246q27 8 67 17t87 16.5t99 12.5t105 5q135 0 225.5 -31t144.5 -88t76.5 -139t22.5 -182v-635q-66 -14 -182.5 -34 t-281.5 -20q-104 0 -189.5 18.5t-147 60.5t-94 109.5t-32.5 166.5zM336 1305l291 331l186 -172l-337 -284zM375 340q0 -72 48 -99.5t132 -27.5q45 0 86 2t66 6v232q-18 4 -55.5 8t-67.5 4q-43 0 -81 -5t-66.5 -19.5t-45 -39t-16.5 -61.5z" /> +<glyph unicode="â" horiz-adv-x="1132" d="M72 332q0 94 37.5 159.5t101 104.5t145.5 56.5t170 17.5q59 0 105.5 -5.5t75.5 -13.5v29q0 78 -47.5 125t-163.5 47q-78 0 -154 -11.5t-131 -31.5l-39 246q27 8 67 17t87 16.5t99 12.5t105 5q135 0 225.5 -31t144.5 -88t76.5 -139t22.5 -182v-635q-66 -14 -182.5 -34 t-281.5 -20q-104 0 -189.5 18.5t-147 60.5t-94 109.5t-32.5 166.5zM213 1321l322 281l317 -281l-113 -135l-204 157l-205 -157zM375 340q0 -72 48 -99.5t132 -27.5q45 0 86 2t66 6v232q-18 4 -55.5 8t-67.5 4q-43 0 -81 -5t-66.5 -19.5t-45 -39t-16.5 -61.5z" /> +<glyph unicode="ã" horiz-adv-x="1132" d="M72 332q0 94 37.5 159.5t101 104.5t145.5 56.5t170 17.5q59 0 105.5 -5.5t75.5 -13.5v29q0 78 -47.5 125t-163.5 47q-78 0 -154 -11.5t-131 -31.5l-39 246q27 8 67 17t87 16.5t99 12.5t105 5q135 0 225.5 -31t144.5 -88t76.5 -139t22.5 -182v-635q-66 -14 -182.5 -34 t-281.5 -20q-104 0 -189.5 18.5t-147 60.5t-94 109.5t-32.5 166.5zM174 1325q12 31 33.5 68t52.5 68.5t70 52t86 20.5q37 0 68.5 -11.5t62.5 -24.5t60.5 -24.5t64.5 -11.5q41 0 67.5 27t42.5 61l150 -98q-12 -31 -33.5 -67.5t-52.5 -68.5t-70 -52.5t-86 -20.5 q-37 0 -68.5 11.5t-62.5 24.5t-61.5 24.5t-63.5 11.5q-41 0 -67.5 -26.5t-42.5 -61.5zM375 340q0 -72 48 -99.5t132 -27.5q45 0 86 2t66 6v232q-18 4 -55.5 8t-67.5 4q-43 0 -81 -5t-66.5 -19.5t-45 -39t-16.5 -61.5z" /> +<glyph unicode="ä" horiz-adv-x="1132" d="M72 332q0 94 37.5 159.5t101 104.5t145.5 56.5t170 17.5q59 0 105.5 -5.5t75.5 -13.5v29q0 78 -47.5 125t-163.5 47q-78 0 -154 -11.5t-131 -31.5l-39 246q27 8 67 17t87 16.5t99 12.5t105 5q135 0 225.5 -31t144.5 -88t76.5 -139t22.5 -182v-635q-66 -14 -182.5 -34 t-281.5 -20q-104 0 -189.5 18.5t-147 60.5t-94 109.5t-32.5 166.5zM158 1389q0 72 47 113.5t110 41.5t110.5 -42t47.5 -113q0 -72 -47.5 -114t-110.5 -42t-110 42t-47 114zM375 340q0 -72 48 -99.5t132 -27.5q45 0 86 2t66 6v232q-18 4 -55.5 8t-67.5 4q-43 0 -81 -5 t-66.5 -19.5t-45 -39t-16.5 -61.5zM614 1389q0 72 47.5 113.5t110.5 41.5t110.5 -42t47.5 -113q0 -72 -47.5 -114t-110.5 -42t-110.5 42t-47.5 114z" /> +<glyph unicode="å" horiz-adv-x="1132" d="M72 332q0 94 37.5 159.5t101 104.5t145.5 56.5t170 17.5q59 0 105.5 -5.5t75.5 -13.5v29q0 78 -47.5 125t-163.5 47q-78 0 -154 -11.5t-131 -31.5l-39 246q27 8 67 17t87 16.5t99 12.5t105 5q135 0 225.5 -31t144.5 -88t76.5 -139t22.5 -182v-635q-66 -14 -182.5 -34 t-281.5 -20q-104 0 -189.5 18.5t-147 60.5t-94 109.5t-32.5 166.5zM326 1432q0 57 19.5 101t53.5 73.5t77 45t90 15.5q49 0 93 -15.5t78 -45t53 -73.5t19 -101t-19 -101.5t-53 -74t-78 -45t-93 -15.5q-47 0 -90 15.5t-77 45t-53.5 73.5t-19.5 102zM375 340q0 -72 48 -99.5 t132 -27.5q45 0 86 2t66 6v232q-18 4 -55.5 8t-67.5 4q-43 0 -81 -5t-66.5 -19.5t-45 -39t-16.5 -61.5zM474 1432q0 -47 28.5 -72t63.5 -25q37 0 65.5 25t28.5 72t-28.5 71.5t-65.5 24.5q-35 0 -63.5 -24.5t-28.5 -71.5z" /> +<glyph unicode="æ" horiz-adv-x="1789" d="M72 332q0 94 37.5 159.5t101 104.5t145.5 56.5t170 17.5q59 0 105.5 -5.5t75.5 -13.5v35q0 78 -47.5 122t-163.5 44q-78 0 -154 -11.5t-131 -31.5l-39 246q27 8 67 17t87 16.5t99 12.5t105 5q63 0 114.5 -8t91.5 -25.5t73 -45.5t61 -66q70 78 158 111.5t189 33.5 q111 0 198.5 -36t151 -105.5t97.5 -173t34 -238.5q0 -27 -2 -58.5t-4 -56.5h-693q10 -94 88 -149.5t209 -55.5q84 0 165 15.5t132 38.5l41 -248q-25 -12 -65.5 -24.5t-91 -21.5t-107.5 -15.5t-115 -6.5q-121 0 -211 27t-153 70q-154 -90 -356 -91q-104 0 -189.5 18.5 t-147 60.5t-94 109.5t-32.5 166.5zM375 340q0 -72 48 -99.5t132 -27.5q63 0 115.5 7t91.5 24q-29 74 -39 120t-12 93q-29 4 -68 6t-59 2q-43 0 -81 -5t-66.5 -19.5t-45 -39t-16.5 -61.5zM997 647h404q-2 39 -13.5 76t-35 65.5t-59.5 47t-89 18.5q-51 0 -88 -17.5t-61.5 -46 t-37.5 -66.5t-20 -77z" /> +<glyph unicode="ç" horiz-adv-x="1024" d="M92 539q0 117 38 220t109.5 180t174 122t233.5 45q86 0 158 -15.5t139 -43.5l-63 -244q-43 16 -94.5 28.5t-114.5 12.5q-135 0 -202 -84t-67 -221q0 -145 62.5 -225.5t218.5 -80.5q55 0 118.5 10.5t117.5 32.5l43 -249q-47 -20 -116 -35t-151 -19q-8 -16 -14 -30.5 t-10 -24.5q66 -33 90 -78t24 -92q0 -98 -77.5 -149.5t-204.5 -51.5q-45 0 -90 7.5t-90 19.5l36 178q14 -4 52.5 -13t74.5 -9q29 0 50.5 11t23.5 40q2 25 -19.5 45t-68.5 31l-24 6q8 27 22 60.5t29 62.5q-106 20 -183 70t-127.5 123t-74 165t-23.5 195z" /> +<glyph unicode="è" horiz-adv-x="1196" d="M92 530q0 143 44 251t116 179.5t165 108.5t191 37q229 0 362.5 -140.5t133.5 -412.5q0 -27 -2 -58.5t-4 -56.5h-692q10 -94 87.5 -149.5t208.5 -55.5q84 0 165 15.5t132 38.5l41 -248q-25 -12 -65.5 -24.5t-90.5 -21.5t-107.5 -15.5t-114.5 -6.5q-145 0 -253 43 t-178.5 118t-104.5 177t-34 221zM346 1464l186 172l291 -331l-139 -125zM406 647h403q-2 39 -13.5 76t-35 65.5t-59 47t-89.5 18.5q-51 0 -88 -17.5t-61.5 -46t-37.5 -66.5t-19 -77z" /> +<glyph unicode="é" horiz-adv-x="1196" d="M92 530q0 143 44 251t116 179.5t165 108.5t191 37q229 0 362.5 -140.5t133.5 -412.5q0 -27 -2 -58.5t-4 -56.5h-692q10 -94 87.5 -149.5t208.5 -55.5q84 0 165 15.5t132 38.5l41 -248q-25 -12 -65.5 -24.5t-90.5 -21.5t-107.5 -15.5t-114.5 -6.5q-145 0 -253 43 t-178.5 118t-104.5 177t-34 221zM379 1305l291 331l186 -172l-337 -284zM406 647h403q-2 39 -13.5 76t-35 65.5t-59 47t-89.5 18.5q-51 0 -88 -17.5t-61.5 -46t-37.5 -66.5t-19 -77z" /> +<glyph unicode="ê" horiz-adv-x="1196" d="M92 530q0 143 44 251t116 179.5t165 108.5t191 37q229 0 362.5 -140.5t133.5 -412.5q0 -27 -2 -58.5t-4 -56.5h-692q10 -94 87.5 -149.5t208.5 -55.5q84 0 165 15.5t132 38.5l41 -248q-25 -12 -65.5 -24.5t-90.5 -21.5t-107.5 -15.5t-114.5 -6.5q-145 0 -253 43 t-178.5 118t-104.5 177t-34 221zM276 1321l322 281l317 -281l-113 -135l-204 157l-205 -157zM406 647h403q-2 39 -13.5 76t-35 65.5t-59 47t-89.5 18.5q-51 0 -88 -17.5t-61.5 -46t-37.5 -66.5t-19 -77z" /> +<glyph unicode="ë" horiz-adv-x="1196" d="M92 530q0 143 44 251t116 179.5t165 108.5t191 37q229 0 362.5 -140.5t133.5 -412.5q0 -27 -2 -58.5t-4 -56.5h-692q10 -94 87.5 -149.5t208.5 -55.5q84 0 165 15.5t132 38.5l41 -248q-25 -12 -65.5 -24.5t-90.5 -21.5t-107.5 -15.5t-114.5 -6.5q-145 0 -253 43 t-178.5 118t-104.5 177t-34 221zM223 1389q0 72 47 113.5t110 41.5t110.5 -42t47.5 -113q0 -72 -47.5 -114t-110.5 -42t-110 42t-47 114zM406 647h403q-2 39 -13.5 76t-35 65.5t-59 47t-89.5 18.5q-51 0 -88 -17.5t-61.5 -46t-37.5 -66.5t-19 -77zM679 1389q0 72 47.5 113.5 t110.5 41.5t110.5 -42t47.5 -113q0 -72 -47.5 -114t-110.5 -42t-110.5 42t-47.5 114z" /> +<glyph unicode="ì" horiz-adv-x="591" d="M45 1464l186 172l291 -331l-139 -125zM143 0v1077h306v-1077h-306z" /> +<glyph unicode="í" horiz-adv-x="591" d="M84 1305l291 331l186 -172l-337 -284zM143 0v1077h306v-1077h-306z" /> +<glyph unicode="î" horiz-adv-x="591" d="M-20 1321l322 281l317 -281l-113 -135l-204 157l-205 -157zM143 0v1077h306v-1077h-306z" /> +<glyph unicode="ï" horiz-adv-x="591" d="M-98 1389q0 72 47 113.5t110 41.5t110.5 -42t47.5 -113q0 -72 -47.5 -114t-110.5 -42t-110 42t-47 114zM143 0v1077h306v-1077h-306zM358 1389q0 72 47.5 113.5t110.5 41.5t110.5 -42t47.5 -113q0 -72 -47.5 -114t-110.5 -42t-110.5 42t-47.5 114z" /> +<glyph unicode="ð" horiz-adv-x="1230" d="M92 479q0 113 32 207t95.5 159.5t159.5 102.5t225 37q53 0 111.5 -15.5t99.5 -35.5q-25 109 -88 211l-227 -76l-60 172l164 55q-35 35 -73.5 66t-79.5 59l170 176q72 -41 136 -93t120 -115l235 79l59 -172l-182 -61q72 -123 113 -266.5t41 -304.5q0 -154 -32 -281 t-97.5 -218t-167 -142.5t-240.5 -51.5q-129 0 -225 41t-160.5 109.5t-96.5 161t-32 196.5zM399 483q0 -111 50.5 -179t156.5 -68q68 0 112 33.5t69.5 90t34.5 130t9 151.5v13.5t-2 19.5q-51 41 -103 54t-101 13q-66 0 -109 -20.5t-69.5 -55t-37 -81.5t-10.5 -101z" /> +<glyph unicode="ñ" horiz-adv-x="1206" d="M143 0v1040q78 23 201 42.5t258 19.5q137 0 228.5 -36t144.5 -101.5t75.5 -155.5t22.5 -201v-608h-305v571q0 147 -39 209t-145 62q-33 0 -70 -3t-65 -8v-831h-306zM229 1325q12 31 33.5 68t52.5 68.5t70 52t86 20.5q37 0 68.5 -11.5t62.5 -24.5t60.5 -24.5t64.5 -11.5 q41 0 67.5 27t42.5 61l150 -98q-12 -31 -33.5 -67.5t-52.5 -68.5t-70 -52.5t-86 -20.5q-37 0 -68.5 11.5t-62.5 24.5t-61.5 24.5t-63.5 11.5q-41 0 -67.5 -26.5t-42.5 -61.5z" /> +<glyph unicode="ò" horiz-adv-x="1243" d="M92 541q0 127 40 231.5t110.5 178t168 114.5t212.5 41q117 0 214 -41t166.5 -114.5t108.5 -178t39 -231.5t-37 -232.5t-106.5 -180.5t-167 -116t-217.5 -41q-119 0 -216.5 41t-167 116t-108.5 180.5t-39 232.5zM369 1464l186 172l291 -331l-139 -125zM403 541 q0 -141 57.5 -224.5t162.5 -83.5q104 0 160.5 83.5t56.5 224.5t-56.5 222t-160.5 81t-162 -81t-58 -222z" /> +<glyph unicode="ó" horiz-adv-x="1243" d="M92 541q0 127 40 231.5t110.5 178t168 114.5t212.5 41q117 0 214 -41t166.5 -114.5t108.5 -178t39 -231.5t-37 -232.5t-106.5 -180.5t-167 -116t-217.5 -41q-119 0 -216.5 41t-167 116t-108.5 180.5t-39 232.5zM397 1305l291 331l186 -172l-337 -284zM403 541 q0 -141 57.5 -224.5t162.5 -83.5q104 0 160.5 83.5t56.5 224.5t-56.5 222t-160.5 81t-162 -81t-58 -222z" /> +<glyph unicode="ô" horiz-adv-x="1243" d="M92 541q0 127 40 231.5t110.5 178t168 114.5t212.5 41q117 0 214 -41t166.5 -114.5t108.5 -178t39 -231.5t-37 -232.5t-106.5 -180.5t-167 -116t-217.5 -41q-119 0 -216.5 41t-167 116t-108.5 180.5t-39 232.5zM299 1321l322 281l317 -281l-113 -135l-204 157l-205 -157z M403 541q0 -141 57.5 -224.5t162.5 -83.5q104 0 160.5 83.5t56.5 224.5t-56.5 222t-160.5 81t-162 -81t-58 -222z" /> +<glyph unicode="õ" horiz-adv-x="1243" d="M92 541q0 127 40 231.5t110.5 178t168 114.5t212.5 41q117 0 214 -41t166.5 -114.5t108.5 -178t39 -231.5t-37 -232.5t-106.5 -180.5t-167 -116t-217.5 -41q-119 0 -216.5 41t-167 116t-108.5 180.5t-39 232.5zM241 1325q12 31 33.5 68t52.5 68.5t70 52t86 20.5 q37 0 68.5 -11.5t62.5 -24.5t60.5 -24.5t64.5 -11.5q41 0 67.5 27t42.5 61l150 -98q-12 -31 -33.5 -67.5t-52.5 -68.5t-70 -52.5t-86 -20.5q-37 0 -68.5 11.5t-62.5 24.5t-61.5 24.5t-63.5 11.5q-41 0 -67.5 -26.5t-42.5 -61.5zM403 541q0 -141 57.5 -224.5t162.5 -83.5 q104 0 160.5 83.5t56.5 224.5t-56.5 222t-160.5 81t-162 -81t-58 -222z" /> +<glyph unicode="ö" horiz-adv-x="1243" d="M92 541q0 127 40 231.5t110.5 178t168 114.5t212.5 41q117 0 214 -41t166.5 -114.5t108.5 -178t39 -231.5t-37 -232.5t-106.5 -180.5t-167 -116t-217.5 -41q-119 0 -216.5 41t-167 116t-108.5 180.5t-39 232.5zM236 1389q0 72 47 113.5t110 41.5t110.5 -42t47.5 -113 q0 -72 -47.5 -114t-110.5 -42t-110 42t-47 114zM403 541q0 -141 57.5 -224.5t162.5 -83.5q104 0 160.5 83.5t56.5 224.5t-56.5 222t-160.5 81t-162 -81t-58 -222zM692 1389q0 72 47.5 113.5t110.5 41.5t110.5 -42t47.5 -113q0 -72 -47.5 -114t-110.5 -42t-110.5 42 t-47.5 114z" /> +<glyph unicode="÷" d="M100 483v256h963v-256h-963zM410 197q0 86 53 129t121 43t121 -43t53 -129t-53.5 -129t-120.5 -43q-68 0 -121 43t-53 129zM410 1026q0 86 53 129t121 43t121 -43t53 -129t-53.5 -129t-120.5 -43q-68 0 -121 43t-53 129z" /> +<glyph unicode="ø" horiz-adv-x="1243" d="M92 541q0 127 40 231.5t110.5 178t168 114.5t212.5 41q76 0 143.5 -17.5t124.5 -50.5l94 121l143 -108l-100 -129q59 -72 91 -168t32 -213q0 -127 -37 -232.5t-106.5 -180.5t-167 -116t-217.5 -41q-154 0 -275 70l-92 -121l-143 109l100 129q-59 74 -90 170t-31 213z M387 541q0 -39 3 -73t13 -62l328 425q-47 29 -108 29q-111 0 -173.5 -84.5t-62.5 -234.5zM510 248q49 -31 113 -31q111 0 172 87t61 237q0 70 -16 135z" /> +<glyph unicode="ù" horiz-adv-x="1206" d="M133 477v600h305v-563q0 -147 39 -212.5t146 -65.5q33 0 69.5 3t65.5 7v831h305v-1040q-78 -23 -201 -42.5t-258 -19.5q-137 0 -228 37t-144.5 103.5t-76 159t-22.5 202.5zM303 1464l186 172l291 -331l-139 -125z" /> +<glyph unicode="ú" horiz-adv-x="1206" d="M133 477v600h305v-563q0 -147 39 -212.5t146 -65.5q33 0 69.5 3t65.5 7v831h305v-1040q-78 -23 -201 -42.5t-258 -19.5q-137 0 -228 37t-144.5 103.5t-76 159t-22.5 202.5zM383 1305l291 331l186 -172l-337 -284z" /> +<glyph unicode="û" horiz-adv-x="1206" d="M133 477v600h305v-563q0 -147 39 -212.5t146 -65.5q33 0 69.5 3t65.5 7v831h305v-1040q-78 -23 -201 -42.5t-258 -19.5q-137 0 -228 37t-144.5 103.5t-76 159t-22.5 202.5zM281 1321l322 281l317 -281l-113 -135l-204 157l-205 -157z" /> +<glyph unicode="ü" horiz-adv-x="1206" d="M133 477v600h305v-563q0 -147 39 -212.5t146 -65.5q33 0 69.5 3t65.5 7v831h305v-1040q-78 -23 -201 -42.5t-258 -19.5q-137 0 -228 37t-144.5 103.5t-76 159t-22.5 202.5zM213 1389q0 72 47 113.5t110 41.5t110.5 -42t47.5 -113q0 -72 -47.5 -114t-110.5 -42t-110 42 t-47 114zM669 1389q0 72 47.5 113.5t110.5 41.5t110.5 -42t47.5 -113q0 -72 -47.5 -114t-110.5 -42t-110.5 42t-47.5 114z" /> +<glyph unicode="ý" horiz-adv-x="1120" d="M10 -336l53 244q47 -16 84 -22.5t78 -6.5q82 0 126 44t75 122q-104 205 -208.5 460t-197.5 572h324q20 -80 48 -173t58.5 -188t62.5 -185.5t60 -163.5q27 74 55.5 164t56.5 185t53.5 188t45.5 173h316q-92 -311 -192.5 -583.5t-219.5 -528.5q-43 -92 -86 -156.5 t-94 -106.5t-115.5 -61.5t-150.5 -19.5q-72 0 -132.5 13.5t-99.5 29.5zM403 1305l291 331l186 -172l-337 -284z" /> +<glyph unicode="þ" horiz-adv-x="1236" d="M143 -379v1919l306 49v-508q35 10 77.5 15.5t75.5 5.5q125 0 225.5 -40t171 -112.5t108.5 -177t38 -233.5q0 -125 -31 -227.5t-90 -176.5t-147.5 -114.5t-202.5 -40.5q-63 0 -118.5 12t-106.5 35v-406h-306zM449 281q29 -18 74.5 -30.5t92.5 -12.5q218 -1 218 292 q0 141 -62.5 226.5t-179.5 85.5q-41 0 -81 -5.5t-62 -13.5v-542z" /> +<glyph unicode="ÿ" horiz-adv-x="1120" d="M10 -336l53 244q47 -16 84 -22.5t78 -6.5q82 0 126 44t75 122q-104 205 -208.5 460t-197.5 572h324q20 -80 48 -173t58.5 -188t62.5 -185.5t60 -163.5q27 74 55.5 164t56.5 185t53.5 188t45.5 173h316q-92 -311 -192.5 -583.5t-219.5 -528.5q-43 -92 -86 -156.5 t-94 -106.5t-115.5 -61.5t-150.5 -19.5q-72 0 -132.5 13.5t-99.5 29.5zM180 1389q0 72 47 113.5t110 41.5t110.5 -42t47.5 -113q0 -72 -47.5 -114t-110.5 -42t-110 42t-47 114zM636 1389q0 72 47.5 113.5t110.5 41.5t110.5 -42t47.5 -113q0 -72 -47.5 -114t-110.5 -42 t-110.5 42t-47.5 114z" /> +<glyph unicode="Œ" horiz-adv-x="2041" d="M102 711q0 186 58.5 321t164 224.5t254 132.5t328.5 43q47 0 105.5 -3.5t105.5 -9.5h805v-268h-604v-279h532v-262h-532v-342h651v-268h-852q-47 -6 -105.5 -9t-105.5 -3q-180 0 -328.5 43t-254 132t-164 225t-58.5 323zM430 711q0 -219 116.5 -336t356.5 -117h46.5 t60.5 2v899q-41 2 -59.5 2h-47.5q-240 0 -356.5 -115.5t-116.5 -334.5z" /> +<glyph unicode="œ" horiz-adv-x="1918" d="M92 541q0 127 38 231.5t107.5 178t166 114.5t210.5 41q238 0 371 -176q74 98 164 137t182 39q229 0 362.5 -139.5t133.5 -413.5q0 -27 -2 -58.5t-4 -56.5h-693q10 -94 88 -149.5t209 -55.5q86 0 166 15.5t131 38.5l41 -248q-25 -12 -65.5 -24.5t-91 -21.5t-108 -15.5 t-114.5 -6.5q-131 0 -236.5 42t-176.5 128q-68 -82 -160 -126t-197 -44q-119 0 -215 41t-164.5 116t-105.5 180.5t-37 232.5zM403 541q0 -141 57.5 -224.5t162.5 -83.5q104 0 160.5 83.5t56.5 224.5t-56.5 222t-160.5 81t-162 -81t-58 -222zM1128 647h404q-2 39 -13.5 76 t-35 65.5t-60.5 47t-88 18.5q-53 0 -89 -17.5t-60.5 -46t-37.5 -66.5t-20 -77z" /> +<glyph unicode="Ÿ" horiz-adv-x="1353" d="M10 1419h371q66 -147 141.5 -292.5t161.5 -290.5q86 145 164 290.5t143 292.5h352q-117 -229 -241.5 -444t-263.5 -432v-543h-320v539q-139 217 -265 434t-243 446zM291 1717q0 72 47 113.5t110 41.5t110.5 -42t47.5 -113q0 -72 -47.5 -114t-110.5 -42t-110 42t-47 114z M747 1717q0 72 47.5 113.5t110.5 41.5t110.5 -42t47.5 -113q0 -72 -47.5 -114t-110.5 -42t-110.5 42t-47.5 114z" /> +<glyph unicode="ˆ" horiz-adv-x="815" d="M86 1321l322 281l317 -281l-113 -135l-204 157l-205 -157z" /> +<glyph unicode="˜" horiz-adv-x="763" d="M8 1325q12 31 33.5 68t52.5 68.5t70 52t86 20.5q37 0 68.5 -11.5t62.5 -24.5t60.5 -24.5t64.5 -11.5q41 0 67.5 27t42.5 61l150 -98q-12 -31 -33.5 -67.5t-52.5 -68.5t-70 -52.5t-86 -20.5q-37 0 -68.5 11.5t-62.5 24.5t-61.5 24.5t-63.5 11.5q-41 0 -67.5 -26.5 t-42.5 -61.5z" /> +<glyph unicode=" " horiz-adv-x="982" /> +<glyph unicode=" " horiz-adv-x="1964" /> +<glyph unicode=" " horiz-adv-x="982" /> +<glyph unicode=" " horiz-adv-x="1964" /> +<glyph unicode=" " horiz-adv-x="654" /> +<glyph unicode=" " horiz-adv-x="491" /> +<glyph unicode=" " horiz-adv-x="327" /> +<glyph unicode=" " horiz-adv-x="327" /> +<glyph unicode=" " horiz-adv-x="245" /> +<glyph unicode=" " horiz-adv-x="392" /> +<glyph unicode=" " horiz-adv-x="109" /> +<glyph unicode="‐" horiz-adv-x="696" d="M51 473v277h594v-277h-594z" /> +<glyph unicode="‑" horiz-adv-x="696" d="M51 473v277h594v-277h-594z" /> +<glyph unicode="‒" horiz-adv-x="696" d="M51 473v277h594v-277h-594z" /> +<glyph unicode="–" horiz-adv-x="1024" d="M0 485v254h1024v-254h-1024z" /> +<glyph unicode="—" horiz-adv-x="2048" d="M0 485v254h2048v-254h-2048z" /> +<glyph unicode="‘" horiz-adv-x="497" d="M82 1118q0 137 49 261t121 210l215 -49q-39 -88 -62.5 -198.5t-23.5 -211.5v-17t1 -30.5t2 -36t3 -32.5h-297q-4 29 -6 59.5t-2 44.5z" /> +<glyph unicode="’" horiz-adv-x="497" d="M31 1044q39 88 62.5 199t23.5 211v17.5t-1 31t-2 35.5t-3 33h297q4 -29 6 -59.5t2 -45.5q0 -137 -49.5 -261t-120.5 -210z" /> +<glyph unicode="‚" horiz-adv-x="497" d="M31 -211q39 88 62.5 199t23.5 211v17.5t-1 31t-2 35.5t-3 33h297q4 -29 6 -59.5t2 -45.5q0 -137 -49.5 -261t-120.5 -210z" /> +<glyph unicode="“" horiz-adv-x="929" d="M82 1118q0 137 49 261t121 210l207 -47q-39 -88 -62.5 -199.5t-23.5 -212.5v-17t1 -30.5t2 -36t3 -32.5h-289q-4 29 -6 59.5t-2 44.5zM522 1118q0 137 49.5 261t120.5 210l207 -47q-39 -88 -62.5 -199.5t-23.5 -212.5v-17t1 -30.5t2 -36t3 -32.5h-289q-4 29 -6 59.5 t-2 44.5z" /> +<glyph unicode="”" horiz-adv-x="929" d="M31 1042q39 88 62.5 200t23.5 212v17.5t-1 31t-2 35.5t-3 33h288q4 -29 6.5 -59.5t2.5 -45.5q0 -137 -49.5 -261t-120.5 -210zM471 1042q39 88 62.5 200t23.5 212v17.5t-1 31t-2 35.5t-3 33h289q4 -29 6 -59.5t2 -45.5q0 -137 -49 -261t-121 -210z" /> +<glyph unicode="„" horiz-adv-x="929" d="M31 -213q39 88 62.5 200t23.5 212v17.5t-1 31t-2 35.5t-3 33h288q4 -29 6.5 -59.5t2.5 -45.5q0 -137 -49.5 -261t-120.5 -210zM471 -213q39 88 62.5 200t23.5 212v17.5t-1 31t-2 35.5t-3 33h289q4 -29 6 -59.5t2 -45.5q0 -137 -49 -261t-121 -210z" /> +<glyph unicode="•" horiz-adv-x="745" d="M78 723q0 57 20.5 110.5t59.5 93.5t93 63.5t122 23.5t122 -23.5t93 -63.5t59.5 -93.5t20.5 -110.5q0 -59 -20.5 -111.5t-59.5 -92.5t-93.5 -63.5t-121.5 -23.5q-68 0 -122 23.5t-93 63.5t-59.5 92.5t-20.5 111.5z" /> +<glyph unicode="…" horiz-adv-x="2048" d="M122 162q0 92 58.5 140t132.5 48t132 -48t58 -140t-58 -140.5t-132 -48.5t-132.5 48.5t-58.5 140.5zM833 162q0 92 58.5 140t132.5 48t132 -48t58 -140t-58 -140.5t-132 -48.5t-132.5 48.5t-58.5 140.5zM1544 162q0 92 58.5 140t132.5 48t132 -48t58 -140t-58 -140.5 t-132 -48.5t-132.5 48.5t-58.5 140.5z" /> +<glyph unicode=" " horiz-adv-x="392" /> +<glyph unicode="‹" horiz-adv-x="669" d="M41 582l336 491l231 -108l-207 -383l207 -383l-231 -109z" /> +<glyph unicode="›" horiz-adv-x="669" d="M61 199l207 383l-207 383l232 108l336 -491l-336 -492z" /> +<glyph unicode=" " horiz-adv-x="491" /> +<glyph unicode="€" d="M94 446v203h129q-2 23 -2 35v29v34.5t2 34.5h-129v203h156q53 229 202.5 346t383.5 117q92 0 157.5 -14.5t130.5 -38.5l-63 -238q-49 16 -100.5 27.5t-126.5 11.5q-123 0 -192 -53t-99 -158h454l-39 -203h-442q-2 -23 -2 -38v-31v-28.5t2 -35.5h418l-39 -203h-352 q35 -123 104.5 -171t173.5 -48q68 0 137.5 12.5t139.5 41.5l59 -236q-55 -29 -142 -50.5t-204 -21.5q-256 0 -391 124t-178 349h-148z" /> +<glyph unicode="™" horiz-adv-x="1748" d="M61 1208v211h660v-211h-209v-510h-242v510h-209zM801 698q14 254 30.5 427t32.5 294h217q43 -92 82 -187t80 -188q41 92 83 194.5t75 180.5h219q20 -121 35.5 -294t32.5 -427h-236l-8 383l-121 -307h-162l-121 305q0 -66 -1 -130t-2 -117.5t-2 -90t-1 -43.5h-233z" /> +<glyph unicode="◼" horiz-adv-x="1075" d="M0 0v1075h1075v-1075h-1075z" /> +<hkern u1="K" u2="ï" k="-88" /> +<hkern u1="T" u2="ï" k="-94" /> +<hkern u1="T" u2="î" k="-55" /> +<hkern u1="T" u2="ì" k="18" /> +<hkern u1="V" u2="ï" k="-104" /> +<hkern u1="V" u2="ì" k="-41" /> +<hkern u1="W" u2="ï" k="-94" /> +<hkern u1="X" u2="ï" k="-82" /> +<hkern u1="Y" u2="ï" k="-109" /> +<hkern u1="Y" u2="ä" k="109" /> +<hkern u1="Z" u2="ï" k="-74" /> +<hkern u1="Z" u2="î" k="-20" /> +<hkern u1="f" u2="ï" k="-106" /> +<hkern u1="f" u2="ì" k="-41" /> +<hkern u1="Ý" u2="ï" k="-109" /> +<hkern u1="Ý" u2="ä" k="109" /> +<hkern u1="Ÿ" u2="ï" k="-109" /> +<hkern u1="Ÿ" u2="ä" k="109" /> +<hkern g1="b" g2="parenright" k="51" /> +<hkern g1="b" g2="asterisk" k="61" /> +<hkern g1="b" g2="question" k="57" /> +<hkern g1="b" g2="backslash" k="102" /> +<hkern g1="b" g2="bracketright" k="74" /> +<hkern g1="b" g2="v" k="29" /> +<hkern g1="b" g2="w" k="25" /> +<hkern g1="b" g2="y,yacute,ydieresis" k="29" /> +<hkern g1="b" g2="quoteleft,quotedblleft" k="53" /> +<hkern g1="b" g2="quoteright,quotedblright" k="51" /> +<hkern g1="b" g2="quotedbl,quotesingle" k="39" /> +<hkern g1="b" g2="braceright" k="39" /> +<hkern g1="b" g2="hyphen,endash,emdash" k="-25" /> +<hkern g1="b" g2="comma,period,ellipsis" k="61" /> +<hkern g1="b" g2="slash" k="57" /> +<hkern g1="b" g2="x" k="37" /> +<hkern g1="b" g2="z" k="20" /> +<hkern g1="b" g2="guillemotleft,guilsinglleft" k="-23" /> +<hkern g1="c,ccedilla" g2="question" k="27" /> +<hkern g1="c,ccedilla" g2="bracketright" k="74" /> +<hkern g1="c,ccedilla" g2="v" k="-16" /> +<hkern g1="c,ccedilla" g2="w" k="-20" /> +<hkern g1="c,ccedilla" g2="y,yacute,ydieresis" k="-16" /> +<hkern g1="c,ccedilla" g2="quotesinglbase,quotedblbase" k="-49" /> +<hkern g1="c,ccedilla" g2="quoteleft,quotedblleft" k="-23" /> +<hkern g1="c,ccedilla" g2="quoteright,quotedblright" k="-51" /> +<hkern g1="c,ccedilla" g2="hyphen,endash,emdash" k="20" /> +<hkern g1="c,ccedilla" g2="comma,period,ellipsis" k="-35" /> +<hkern g1="c,ccedilla" g2="x" k="-25" /> +<hkern g1="c,ccedilla" g2="guillemotleft,guilsinglleft" k="31" /> +<hkern g1="c,ccedilla" g2="colon,semicolon" k="-20" /> +<hkern g1="c,ccedilla" g2="at" k="20" /> +<hkern g1="c,ccedilla" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="51" /> +<hkern g1="c,ccedilla" g2="c,ccedilla" k="51" /> +<hkern g1="c,ccedilla" g2="d" k="51" /> +<hkern g1="c,ccedilla" g2="e,egrave,eacute,ecircumflex,edieresis" k="51" /> +<hkern g1="c,ccedilla" g2="g" k="51" /> +<hkern g1="c,ccedilla" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="51" /> +<hkern g1="c,ccedilla" g2="q" k="51" /> +<hkern g1="c,ccedilla" g2="eth" k="61" /> +<hkern g1="d" g2="parenright" k="43" /> +<hkern g1="d" g2="asterisk" k="51" /> +<hkern g1="d" g2="question" k="76" /> +<hkern g1="d" g2="backslash" k="123" /> +<hkern g1="d" g2="bracketright" k="70" /> +<hkern g1="d" g2="v" k="33" /> +<hkern g1="d" g2="w" k="20" /> +<hkern g1="d" g2="y,yacute,ydieresis" k="33" /> +<hkern g1="d" g2="quotesinglbase,quotedblbase" k="-20" /> +<hkern g1="d" g2="quoteleft,quotedblleft" k="-27" /> +<hkern g1="d" g2="quoteright,quotedblright" k="-29" /> +<hkern g1="d" g2="hyphen,endash,emdash" k="-45" /> +<hkern g1="f" g2="parenright" k="-109" /> +<hkern g1="f" g2="asterisk" k="-47" /> +<hkern g1="f" g2="question" k="-57" /> +<hkern g1="f" g2="backslash" k="-164" /> +<hkern g1="f" g2="bracketright" k="-106" /> +<hkern g1="f" g2="v" k="-55" /> +<hkern g1="f" g2="w" k="-55" /> +<hkern g1="f" g2="y,yacute,ydieresis" k="-55" /> +<hkern g1="f" g2="quotesinglbase,quotedblbase" k="117" /> +<hkern g1="f" g2="quoteleft,quotedblleft" k="-78" /> +<hkern g1="f" g2="quoteright,quotedblright" k="-113" /> +<hkern g1="f" g2="braceright" k="-61" /> +<hkern g1="f" g2="comma,period,ellipsis" k="123" /> +<hkern g1="f" g2="slash" k="127" /> +<hkern g1="f" g2="x" k="-41" /> +<hkern g1="f" g2="guillemotleft,guilsinglleft" k="20" /> +<hkern g1="f" g2="colon,semicolon" k="-37" /> +<hkern g1="f" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="16" /> +<hkern g1="f" g2="c,ccedilla" k="16" /> +<hkern g1="f" g2="d" k="16" /> +<hkern g1="f" g2="e,egrave,eacute,ecircumflex,edieresis" k="16" /> +<hkern g1="f" g2="g" k="16" /> +<hkern g1="f" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="16" /> +<hkern g1="f" g2="q" k="16" /> +<hkern g1="f" g2="eth" k="41" /> +<hkern g1="f" g2="i,igrave,iacute,icircumflex,idieresis" k="-25" /> +<hkern g1="f" g2="j" k="-23" /> +<hkern g1="f" g2="guillemotright,guilsinglright" k="-37" /> +<hkern g1="g" g2="parenright" k="27" /> +<hkern g1="g" g2="asterisk" k="51" /> +<hkern g1="g" g2="question" k="47" /> +<hkern g1="g" g2="backslash" k="61" /> +<hkern g1="g" g2="bracketright" k="70" /> +<hkern g1="g" g2="v" k="33" /> +<hkern g1="g" g2="w" k="20" /> +<hkern g1="g" g2="y,yacute,ydieresis" k="33" /> +<hkern g1="g" g2="quotesinglbase,quotedblbase" k="-20" /> +<hkern g1="g" g2="quoteleft,quotedblleft" k="51" /> +<hkern g1="g" g2="quoteright,quotedblright" k="31" /> +<hkern g1="g" g2="j" k="-53" /> +<hkern g1="h" g2="parenright" k="43" /> +<hkern g1="h" g2="asterisk" k="51" /> +<hkern g1="h" g2="question" k="76" /> +<hkern g1="h" g2="backslash" k="123" /> +<hkern g1="h" g2="bracketright" k="70" /> +<hkern g1="h" g2="v" k="33" /> +<hkern g1="h" g2="w" k="20" /> +<hkern g1="h" g2="y,yacute,ydieresis" k="33" /> +<hkern g1="h" g2="quotesinglbase,quotedblbase" k="-25" /> +<hkern g1="h" g2="quoteleft,quotedblleft" k="51" /> +<hkern g1="h" g2="quoteright,quotedblright" k="31" /> +<hkern g1="h" g2="quotedbl,quotesingle" k="41" /> +<hkern g1="h" g2="braceright" k="37" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01,uniFB03" g2="parenright" k="-23" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01,uniFB03" g2="asterisk" k="51" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01,uniFB03" g2="question" k="76" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01,uniFB03" g2="backslash" k="123" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01,uniFB03" g2="bracketright" k="70" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01,uniFB03" g2="v" k="33" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01,uniFB03" g2="w" k="20" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01,uniFB03" g2="y,yacute,ydieresis" k="33" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01,uniFB03" g2="quotesinglbase,quotedblbase" k="-20" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01,uniFB03" g2="quoteleft,quotedblleft" k="51" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01,uniFB03" g2="quoteright,quotedblright" k="31" /> +<hkern g1="j" g2="parenright" k="-25" /> +<hkern g1="j" g2="asterisk" k="51" /> +<hkern g1="j" g2="question" k="76" /> +<hkern g1="j" g2="backslash" k="123" /> +<hkern g1="j" g2="bracketright" k="-20" /> +<hkern g1="j" g2="v" k="33" /> +<hkern g1="j" g2="w" k="20" /> +<hkern g1="j" g2="y,yacute,ydieresis" k="33" /> +<hkern g1="j" g2="quotesinglbase,quotedblbase" k="-20" /> +<hkern g1="j" g2="quoteleft,quotedblleft" k="51" /> +<hkern g1="j" g2="quoteright,quotedblright" k="31" /> +<hkern g1="j" g2="j" k="-61" /> +<hkern g1="k" g2="asterisk" k="-27" /> +<hkern g1="k" g2="bracketright" k="53" /> +<hkern g1="k" g2="v" k="-41" /> +<hkern g1="k" g2="w" k="-41" /> +<hkern g1="k" g2="y,yacute,ydieresis" k="-41" /> +<hkern g1="k" g2="quotesinglbase,quotedblbase" k="-45" /> +<hkern g1="k" g2="quoteleft,quotedblleft" k="-25" /> +<hkern g1="k" g2="quoteright,quotedblright" k="-49" /> +<hkern g1="k" g2="hyphen,endash,emdash" k="90" /> +<hkern g1="k" g2="comma,period,ellipsis" k="-25" /> +<hkern g1="k" g2="slash" k="-43" /> +<hkern g1="k" g2="x" k="-41" /> +<hkern g1="k" g2="z" k="-31" /> +<hkern g1="k" g2="guillemotleft,guilsinglleft" k="72" /> +<hkern g1="k" g2="colon,semicolon" k="-20" /> +<hkern g1="k" g2="at" k="45" /> +<hkern g1="k" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="20" /> +<hkern g1="k" g2="c,ccedilla" k="74" /> +<hkern g1="k" g2="d" k="74" /> +<hkern g1="k" g2="e,egrave,eacute,ecircumflex,edieresis" k="74" /> +<hkern g1="k" g2="g" k="74" /> +<hkern g1="k" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="74" /> +<hkern g1="k" g2="q" k="74" /> +<hkern g1="k" g2="eth" k="66" /> +<hkern g1="k" g2="ampersand" k="41" /> +<hkern g1="k" g2="parenleft" k="25" /> +<hkern g1="k" g2="t" k="16" /> +<hkern g1="k" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="k" g2="braceleft" k="33" /> +<hkern g1="l,uniFB02,uniFB04" g2="parenright" k="43" /> +<hkern g1="l,uniFB02,uniFB04" g2="asterisk" k="49" /> +<hkern g1="l,uniFB02,uniFB04" g2="question" k="29" /> +<hkern g1="l,uniFB02,uniFB04" g2="backslash" k="123" /> +<hkern g1="l,uniFB02,uniFB04" g2="bracketright" k="70" /> +<hkern g1="l,uniFB02,uniFB04" g2="v" k="23" /> +<hkern g1="l,uniFB02,uniFB04" g2="w" k="23" /> +<hkern g1="l,uniFB02,uniFB04" g2="y,yacute,ydieresis" k="23" /> +<hkern g1="l,uniFB02,uniFB04" g2="quotesinglbase,quotedblbase" k="-63" /> +<hkern g1="l,uniFB02,uniFB04" g2="quoteleft,quotedblleft" k="51" /> +<hkern g1="l,uniFB02,uniFB04" g2="quoteright,quotedblright" k="53" /> +<hkern g1="l,uniFB02,uniFB04" g2="comma,period,ellipsis" k="-49" /> +<hkern g1="l,uniFB02,uniFB04" g2="x" k="-43" /> +<hkern g1="l,uniFB02,uniFB04" g2="z" k="-31" /> +<hkern g1="l,uniFB02,uniFB04" g2="guillemotleft,guilsinglleft" k="29" /> +<hkern g1="l,uniFB02,uniFB04" g2="colon,semicolon" k="-41" /> +<hkern g1="l,uniFB02,uniFB04" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="-31" /> +<hkern g1="l,uniFB02,uniFB04" g2="guillemotright,guilsinglright" k="-41" /> +<hkern g1="m,n,ntilde" g2="parenright" k="43" /> +<hkern g1="m,n,ntilde" g2="asterisk" k="51" /> +<hkern g1="m,n,ntilde" g2="question" k="76" /> +<hkern g1="m,n,ntilde" g2="backslash" k="123" /> +<hkern g1="m,n,ntilde" g2="bracketright" k="70" /> +<hkern g1="m,n,ntilde" g2="v" k="33" /> +<hkern g1="m,n,ntilde" g2="w" k="20" /> +<hkern g1="m,n,ntilde" g2="y,yacute,ydieresis" k="33" /> +<hkern g1="m,n,ntilde" g2="quotesinglbase,quotedblbase" k="-25" /> +<hkern g1="m,n,ntilde" g2="quoteleft,quotedblleft" k="51" /> +<hkern g1="m,n,ntilde" g2="quoteright,quotedblright" k="31" /> +<hkern g1="m,n,ntilde" g2="quotedbl,quotesingle" k="37" /> +<hkern g1="m,n,ntilde" g2="braceright" k="37" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="parenright" k="51" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="asterisk" k="61" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="question" k="57" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="backslash" k="102" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="bracketright" k="74" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="v" k="29" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="w" k="25" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="y,yacute,ydieresis" k="29" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quoteleft,quotedblleft" k="53" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quoteright,quotedblright" k="51" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quotedbl,quotesingle" k="37" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="braceright" k="47" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="hyphen,endash,emdash" k="-25" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="comma,period,ellipsis" k="61" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="slash" k="57" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="x" k="37" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="z" k="20" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="guillemotleft,guilsinglleft" k="-23" /> +<hkern g1="p" g2="parenright" k="51" /> +<hkern g1="p" g2="asterisk" k="61" /> +<hkern g1="p" g2="question" k="57" /> +<hkern g1="p" g2="backslash" k="102" /> +<hkern g1="p" g2="bracketright" k="74" /> +<hkern g1="p" g2="v" k="29" /> +<hkern g1="p" g2="w" k="25" /> +<hkern g1="p" g2="y,yacute,ydieresis" k="29" /> +<hkern g1="p" g2="quoteleft,quotedblleft" k="53" /> +<hkern g1="p" g2="quoteright,quotedblright" k="51" /> +<hkern g1="p" g2="quotedbl,quotesingle" k="39" /> +<hkern g1="p" g2="braceright" k="39" /> +<hkern g1="p" g2="hyphen,endash,emdash" k="-25" /> +<hkern g1="p" g2="comma,period,ellipsis" k="61" /> +<hkern g1="p" g2="slash" k="57" /> +<hkern g1="p" g2="x" k="37" /> +<hkern g1="p" g2="z" k="20" /> +<hkern g1="p" g2="guillemotleft,guilsinglleft" k="-23" /> +<hkern g1="q" g2="parenright" k="43" /> +<hkern g1="q" g2="asterisk" k="51" /> +<hkern g1="q" g2="question" k="47" /> +<hkern g1="q" g2="backslash" k="61" /> +<hkern g1="q" g2="bracketright" k="70" /> +<hkern g1="q" g2="v" k="33" /> +<hkern g1="q" g2="w" k="20" /> +<hkern g1="q" g2="y,yacute,ydieresis" k="33" /> +<hkern g1="q" g2="quotesinglbase,quotedblbase" k="-20" /> +<hkern g1="q" g2="quoteleft,quotedblleft" k="51" /> +<hkern g1="q" g2="quoteright,quotedblright" k="31" /> +<hkern g1="q" g2="slash" k="-43" /> +<hkern g1="q" g2="j" k="-86" /> +<hkern g1="r" g2="asterisk" k="-35" /> +<hkern g1="r" g2="question" k="-20" /> +<hkern g1="r" g2="backslash" k="-20" /> +<hkern g1="r" g2="bracketright" k="20" /> +<hkern g1="r" g2="v" k="-63" /> +<hkern g1="r" g2="w" k="-63" /> +<hkern g1="r" g2="y,yacute,ydieresis" k="-63" /> +<hkern g1="r" g2="quotesinglbase,quotedblbase" k="115" /> +<hkern g1="r" g2="quoteleft,quotedblleft" k="-57" /> +<hkern g1="r" g2="quoteright,quotedblright" k="-98" /> +<hkern g1="r" g2="comma,period,ellipsis" k="123" /> +<hkern g1="r" g2="slash" k="115" /> +<hkern g1="r" g2="x" k="-41" /> +<hkern g1="r" g2="z" k="-20" /> +<hkern g1="r" g2="guillemotleft,guilsinglleft" k="29" /> +<hkern g1="r" g2="colon,semicolon" k="-37" /> +<hkern g1="r" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="20" /> +<hkern g1="r" g2="c,ccedilla" k="20" /> +<hkern g1="r" g2="d" k="20" /> +<hkern g1="r" g2="e,egrave,eacute,ecircumflex,edieresis" k="20" /> +<hkern g1="r" g2="g" k="20" /> +<hkern g1="r" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="r" g2="q" k="20" /> +<hkern g1="r" g2="eth" k="29" /> +<hkern g1="r" g2="guillemotright,guilsinglright" k="-41" /> +<hkern g1="r" g2="ampersand" k="41" /> +<hkern g1="s" g2="parenright" k="27" /> +<hkern g1="s" g2="asterisk" k="20" /> +<hkern g1="s" g2="question" k="74" /> +<hkern g1="s" g2="backslash" k="61" /> +<hkern g1="s" g2="bracketright" k="70" /> +<hkern g1="s" g2="quotesinglbase,quotedblbase" k="-29" /> +<hkern g1="s" g2="braceright" k="37" /> +<hkern g1="s" g2="slash" k="23" /> +<hkern g1="s" g2="z" k="16" /> +<hkern g1="t" g2="question" k="31" /> +<hkern g1="t" g2="backslash" k="41" /> +<hkern g1="t" g2="bracketright" k="68" /> +<hkern g1="t" g2="v" k="-20" /> +<hkern g1="t" g2="w" k="-20" /> +<hkern g1="t" g2="y,yacute,ydieresis" k="-20" /> +<hkern g1="t" g2="quotesinglbase,quotedblbase" k="-47" /> +<hkern g1="t" g2="quoteleft,quotedblleft" k="-33" /> +<hkern g1="t" g2="hyphen,endash,emdash" k="20" /> +<hkern g1="t" g2="comma,period,ellipsis" k="-35" /> +<hkern g1="t" g2="x" k="-37" /> +<hkern g1="t" g2="guillemotleft,guilsinglleft" k="39" /> +<hkern g1="t" g2="colon,semicolon" k="-20" /> +<hkern g1="t" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="41" /> +<hkern g1="t" g2="c,ccedilla" k="41" /> +<hkern g1="t" g2="d" k="41" /> +<hkern g1="t" g2="e,egrave,eacute,ecircumflex,edieresis" k="41" /> +<hkern g1="t" g2="g" k="41" /> +<hkern g1="t" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="41" /> +<hkern g1="t" g2="q" k="41" /> +<hkern g1="t" g2="eth" k="20" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="parenright" k="41" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="asterisk" k="51" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="question" k="47" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="backslash" k="123" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="bracketright" k="59" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="v" k="33" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="w" k="20" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="y,yacute,ydieresis" k="33" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="quotesinglbase,quotedblbase" k="-20" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="quoteleft,quotedblleft" k="51" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="quoteright,quotedblright" k="31" /> +<hkern g1="v" g2="asterisk" k="-33" /> +<hkern g1="v" g2="bracketright" k="59" /> +<hkern g1="v" g2="v" k="-41" /> +<hkern g1="v" g2="w" k="-41" /> +<hkern g1="v" g2="y,yacute,ydieresis" k="-41" /> +<hkern g1="v" g2="quotesinglbase,quotedblbase" k="84" /> +<hkern g1="v" g2="quoteleft,quotedblleft" k="-43" /> +<hkern g1="v" g2="quoteright,quotedblright" k="-80" /> +<hkern g1="v" g2="comma,period,ellipsis" k="115" /> +<hkern g1="v" g2="slash" k="82" /> +<hkern g1="v" g2="x" k="-49" /> +<hkern g1="v" g2="z" k="-27" /> +<hkern g1="v" g2="colon,semicolon" k="-31" /> +<hkern g1="v" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="20" /> +<hkern g1="v" g2="c,ccedilla" k="29" /> +<hkern g1="v" g2="d" k="29" /> +<hkern g1="v" g2="e,egrave,eacute,ecircumflex,edieresis" k="29" /> +<hkern g1="v" g2="g" k="29" /> +<hkern g1="v" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="29" /> +<hkern g1="v" g2="q" k="29" /> +<hkern g1="v" g2="eth" k="39" /> +<hkern g1="v" g2="guillemotright,guilsinglright" k="-35" /> +<hkern g1="v" g2="ampersand" k="20" /> +<hkern g1="w" g2="asterisk" k="-35" /> +<hkern g1="w" g2="bracketright" k="57" /> +<hkern g1="w" g2="v" k="-41" /> +<hkern g1="w" g2="w" k="-41" /> +<hkern g1="w" g2="y,yacute,ydieresis" k="-41" /> +<hkern g1="w" g2="quotesinglbase,quotedblbase" k="55" /> +<hkern g1="w" g2="quoteleft,quotedblleft" k="-49" /> +<hkern g1="w" g2="quoteright,quotedblright" k="-82" /> +<hkern g1="w" g2="hyphen,endash,emdash" k="-16" /> +<hkern g1="w" g2="comma,period,ellipsis" k="109" /> +<hkern g1="w" g2="slash" k="70" /> +<hkern g1="w" g2="x" k="-41" /> +<hkern g1="w" g2="z" k="-29" /> +<hkern g1="w" g2="colon,semicolon" k="-33" /> +<hkern g1="w" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="20" /> +<hkern g1="w" g2="c,ccedilla" k="25" /> +<hkern g1="w" g2="d" k="25" /> +<hkern g1="w" g2="e,egrave,eacute,ecircumflex,edieresis" k="25" /> +<hkern g1="w" g2="g" k="25" /> +<hkern g1="w" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="25" /> +<hkern g1="w" g2="q" k="25" /> +<hkern g1="w" g2="eth" k="29" /> +<hkern g1="w" g2="guillemotright,guilsinglright" k="-39" /> +<hkern g1="w" g2="ampersand" k="20" /> +<hkern g1="x" g2="asterisk" k="-27" /> +<hkern g1="x" g2="bracketright" k="59" /> +<hkern g1="x" g2="v" k="-49" /> +<hkern g1="x" g2="w" k="-41" /> +<hkern g1="x" g2="y,yacute,ydieresis" k="-49" /> +<hkern g1="x" g2="quotesinglbase,quotedblbase" k="-43" /> +<hkern g1="x" g2="quoteleft,quotedblleft" k="-31" /> +<hkern g1="x" g2="quoteright,quotedblright" k="-57" /> +<hkern g1="x" g2="hyphen,endash,emdash" k="41" /> +<hkern g1="x" g2="comma,period,ellipsis" k="-39" /> +<hkern g1="x" g2="slash" k="-43" /> +<hkern g1="x" g2="x" k="-66" /> +<hkern g1="x" g2="z" k="-39" /> +<hkern g1="x" g2="guillemotleft,guilsinglleft" k="55" /> +<hkern g1="x" g2="colon,semicolon" k="-29" /> +<hkern g1="x" g2="at" k="20" /> +<hkern g1="x" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="49" /> +<hkern g1="x" g2="c,ccedilla" k="49" /> +<hkern g1="x" g2="d" k="49" /> +<hkern g1="x" g2="e,egrave,eacute,ecircumflex,edieresis" k="49" /> +<hkern g1="x" g2="g" k="49" /> +<hkern g1="x" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="49" /> +<hkern g1="x" g2="q" k="49" /> +<hkern g1="x" g2="eth" k="47" /> +<hkern g1="x" g2="ampersand" k="41" /> +<hkern g1="x" g2="parenleft" k="25" /> +<hkern g1="x" g2="braceleft" k="25" /> +<hkern g1="y,yacute,ydieresis" g2="asterisk" k="-33" /> +<hkern g1="y,yacute,ydieresis" g2="bracketright" k="59" /> +<hkern g1="y,yacute,ydieresis" g2="v" k="-41" /> +<hkern g1="y,yacute,ydieresis" g2="w" k="-41" /> +<hkern g1="y,yacute,ydieresis" g2="y,yacute,ydieresis" k="-41" /> +<hkern g1="y,yacute,ydieresis" g2="quotesinglbase,quotedblbase" k="84" /> +<hkern g1="y,yacute,ydieresis" g2="quoteleft,quotedblleft" k="-43" /> +<hkern g1="y,yacute,ydieresis" g2="quoteright,quotedblright" k="-66" /> +<hkern g1="y,yacute,ydieresis" g2="comma,period,ellipsis" k="115" /> +<hkern g1="y,yacute,ydieresis" g2="slash" k="82" /> +<hkern g1="y,yacute,ydieresis" g2="x" k="-49" /> +<hkern g1="y,yacute,ydieresis" g2="z" k="-27" /> +<hkern g1="y,yacute,ydieresis" g2="colon,semicolon" k="-31" /> +<hkern g1="y,yacute,ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="20" /> +<hkern g1="y,yacute,ydieresis" g2="c,ccedilla" k="29" /> +<hkern g1="y,yacute,ydieresis" g2="d" k="29" /> +<hkern g1="y,yacute,ydieresis" g2="e,egrave,eacute,ecircumflex,edieresis" k="29" /> +<hkern g1="y,yacute,ydieresis" g2="g" k="29" /> +<hkern g1="y,yacute,ydieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="29" /> +<hkern g1="y,yacute,ydieresis" g2="q" k="29" /> +<hkern g1="y,yacute,ydieresis" g2="eth" k="39" /> +<hkern g1="y,yacute,ydieresis" g2="guillemotright,guilsinglright" k="-35" /> +<hkern g1="y,yacute,ydieresis" g2="ampersand" k="20" /> +<hkern g1="z" g2="question" k="23" /> +<hkern g1="z" g2="bracketright" k="57" /> +<hkern g1="z" g2="v" k="-39" /> +<hkern g1="z" g2="w" k="-39" /> +<hkern g1="z" g2="y,yacute,ydieresis" k="-39" /> +<hkern g1="z" g2="quotesinglbase,quotedblbase" k="-57" /> +<hkern g1="z" g2="quoteleft,quotedblleft" k="-31" /> +<hkern g1="z" g2="quoteright,quotedblright" k="-53" /> +<hkern g1="z" g2="braceright" k="25" /> +<hkern g1="z" g2="comma,period,ellipsis" k="-49" /> +<hkern g1="z" g2="slash" k="-20" /> +<hkern g1="z" g2="x" k="-45" /> +<hkern g1="z" g2="guillemotleft,guilsinglleft" k="33" /> +<hkern g1="z" g2="colon,semicolon" k="-20" /> +<hkern g1="z" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="31" /> +<hkern g1="z" g2="c,ccedilla" k="31" /> +<hkern g1="z" g2="d" k="31" /> +<hkern g1="z" g2="e,egrave,eacute,ecircumflex,edieresis" k="31" /> +<hkern g1="z" g2="g" k="31" /> +<hkern g1="z" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="31" /> +<hkern g1="z" g2="q" k="31" /> +<hkern g1="z" g2="guillemotright,guilsinglright" k="-20" /> +<hkern g1="germandbls" g2="parenright" k="49" /> +<hkern g1="germandbls" g2="asterisk" k="152" /> +<hkern g1="germandbls" g2="question" k="92" /> +<hkern g1="germandbls" g2="backslash" k="102" /> +<hkern g1="germandbls" g2="bracketright" k="45" /> +<hkern g1="germandbls" g2="v" k="72" /> +<hkern g1="germandbls" g2="w" k="63" /> +<hkern g1="germandbls" g2="y,yacute,ydieresis" k="72" /> +<hkern g1="germandbls" g2="quoteleft,quotedblleft" k="129" /> +<hkern g1="germandbls" g2="quoteright,quotedblright" k="119" /> +<hkern g1="germandbls" g2="quotedbl,quotesingle" k="76" /> +<hkern g1="germandbls" g2="braceright" k="45" /> +<hkern g1="germandbls" g2="hyphen,endash,emdash" k="-14" /> +<hkern g1="germandbls" g2="x" k="20" /> +<hkern g1="germandbls" g2="bracketleft" k="23" /> +<hkern g1="eth" g2="parenright" k="-33" /> +<hkern g1="eth" g2="question" k="-39" /> +<hkern g1="eth" g2="backslash" k="-41" /> +<hkern g1="eth" g2="bracketright" k="-45" /> +<hkern g1="eth" g2="quoteleft,quotedblleft" k="-25" /> +<hkern g1="eth" g2="quoteright,quotedblright" k="-41" /> +<hkern g1="eth" g2="braceright" k="-20" /> +<hkern g1="eth" g2="hyphen,endash,emdash" k="-25" /> +<hkern g1="eth" g2="comma,period,ellipsis" k="61" /> +<hkern g1="eth" g2="slash" k="53" /> +<hkern g1="eth" g2="guillemotleft,guilsinglleft" k="-25" /> +<hkern g1="thorn" g2="parenright" k="43" /> +<hkern g1="thorn" g2="asterisk" k="31" /> +<hkern g1="thorn" g2="question" k="51" /> +<hkern g1="thorn" g2="bracketright" k="61" /> +<hkern g1="thorn" g2="v" k="20" /> +<hkern g1="thorn" g2="y,yacute,ydieresis" k="20" /> +<hkern g1="thorn" g2="quoteleft,quotedblleft" k="41" /> +<hkern g1="thorn" g2="quoteright,quotedblright" k="33" /> +<hkern g1="thorn" g2="quotedbl,quotesingle" k="51" /> +<hkern g1="thorn" g2="braceright" k="39" /> +<hkern g1="thorn" g2="slash" k="43" /> +<hkern g1="thorn" g2="x" k="25" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="asterisk" k="164" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="question" k="66" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="backslash" k="164" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="bracketright" k="53" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="v" k="72" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="w" k="53" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="y,yacute,ydieresis" k="72" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quotesinglbase,quotedblbase" k="-86" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quoteleft,quotedblleft" k="156" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quoteright,quotedblright" k="133" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quotedbl,quotesingle" k="104" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="comma,period,ellipsis" k="-61" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="slash" k="-49" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="x" k="-51" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="z" k="-33" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="guillemotleft,guilsinglleft" k="31" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="colon,semicolon" k="-39" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="23" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="c,ccedilla" k="23" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="d" k="23" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="e,egrave,eacute,ecircumflex,edieresis" k="23" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="g" k="23" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="23" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="q" k="23" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="eth" k="29" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="guillemotright,guilsinglright" k="-25" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="parenleft" k="37" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="braceleft" k="20" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="s" k="-20" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-76" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="C,Ccedilla" k="51" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="G" k="51" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="J" k="-68" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="51" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="Q" k="51" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="S" k="-39" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="T" k="168" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="41" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="V" k="133" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="W" k="82" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="X" k="-76" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="Y,Yacute,Ydieresis" k="205" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="Z" k="-49" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="AE" k="-41" /> +<hkern g1="B" g2="parenright" k="27" /> +<hkern g1="B" g2="asterisk" k="25" /> +<hkern g1="B" g2="question" k="41" /> +<hkern g1="B" g2="backslash" k="41" /> +<hkern g1="B" g2="bracketright" k="47" /> +<hkern g1="B" g2="v" k="20" /> +<hkern g1="B" g2="y,yacute,ydieresis" k="20" /> +<hkern g1="B" g2="quotesinglbase,quotedblbase" k="-23" /> +<hkern g1="B" g2="braceright" k="20" /> +<hkern g1="B" g2="hyphen,endash,emdash" k="-23" /> +<hkern g1="B" g2="slash" k="61" /> +<hkern g1="B" g2="x" k="16" /> +<hkern g1="B" g2="z" k="20" /> +<hkern g1="B" g2="guillemotleft,guilsinglleft" k="-20" /> +<hkern g1="B" g2="colon,semicolon" k="-23" /> +<hkern g1="B" g2="guillemotright,guilsinglright" k="-23" /> +<hkern g1="B" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="20" /> +<hkern g1="B" g2="T" k="37" /> +<hkern g1="B" g2="V" k="61" /> +<hkern g1="B" g2="W" k="20" /> +<hkern g1="B" g2="X" k="45" /> +<hkern g1="B" g2="Y,Yacute,Ydieresis" k="70" /> +<hkern g1="B" g2="AE" k="53" /> +<hkern g1="C,Ccedilla" g2="parenright" k="-31" /> +<hkern g1="C,Ccedilla" g2="asterisk" k="20" /> +<hkern g1="C,Ccedilla" g2="question" k="-33" /> +<hkern g1="C,Ccedilla" g2="backslash" k="-41" /> +<hkern g1="C,Ccedilla" g2="bracketright" k="-53" /> +<hkern g1="C,Ccedilla" g2="quotesinglbase,quotedblbase" k="-80" /> +<hkern g1="C,Ccedilla" g2="quoteleft,quotedblleft" k="-41" /> +<hkern g1="C,Ccedilla" g2="quoteright,quotedblright" k="-74" /> +<hkern g1="C,Ccedilla" g2="hyphen,endash,emdash" k="23" /> +<hkern g1="C,Ccedilla" g2="comma,period,ellipsis" k="-47" /> +<hkern g1="C,Ccedilla" g2="slash" k="-27" /> +<hkern g1="C,Ccedilla" g2="x" k="-49" /> +<hkern g1="C,Ccedilla" g2="z" k="-33" /> +<hkern g1="C,Ccedilla" g2="guillemotleft,guilsinglleft" k="49" /> +<hkern g1="C,Ccedilla" g2="colon,semicolon" k="-39" /> +<hkern g1="C,Ccedilla" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="-20" /> +<hkern g1="C,Ccedilla" g2="c,ccedilla" k="25" /> +<hkern g1="C,Ccedilla" g2="d" k="25" /> +<hkern g1="C,Ccedilla" g2="e,egrave,eacute,ecircumflex,edieresis" k="25" /> +<hkern g1="C,Ccedilla" g2="g" k="25" /> +<hkern g1="C,Ccedilla" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="25" /> +<hkern g1="C,Ccedilla" g2="q" k="25" /> +<hkern g1="C,Ccedilla" g2="eth" k="20" /> +<hkern g1="C,Ccedilla" g2="guillemotright,guilsinglright" k="-29" /> +<hkern g1="C,Ccedilla" g2="ampersand" k="-16" /> +<hkern g1="C,Ccedilla" g2="parenleft" k="25" /> +<hkern g1="C,Ccedilla" g2="u,ugrave,uacute,ucircumflex,udieresis" k="27" /> +<hkern g1="C,Ccedilla" g2="s" k="-12" /> +<hkern g1="C,Ccedilla" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-57" /> +<hkern g1="C,Ccedilla" g2="C,Ccedilla" k="51" /> +<hkern g1="C,Ccedilla" g2="G" k="51" /> +<hkern g1="C,Ccedilla" g2="J" k="-63" /> +<hkern g1="C,Ccedilla" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="51" /> +<hkern g1="C,Ccedilla" g2="Q" k="51" /> +<hkern g1="C,Ccedilla" g2="S" k="-35" /> +<hkern g1="C,Ccedilla" g2="T" k="-43" /> +<hkern g1="C,Ccedilla" g2="V" k="-41" /> +<hkern g1="C,Ccedilla" g2="W" k="-39" /> +<hkern g1="C,Ccedilla" g2="X" k="-53" /> +<hkern g1="C,Ccedilla" g2="Y,Yacute,Ydieresis" k="-49" /> +<hkern g1="C,Ccedilla" g2="Z" k="-37" /> +<hkern g1="C,Ccedilla" g2="AE" k="-53" /> +<hkern g1="D,Eth" g2="parenright" k="41" /> +<hkern g1="D,Eth" g2="question" k="39" /> +<hkern g1="D,Eth" g2="bracketright" k="41" /> +<hkern g1="D,Eth" g2="quotesinglbase,quotedblbase" k="25" /> +<hkern g1="D,Eth" g2="quoteright,quotedblright" k="-20" /> +<hkern g1="D,Eth" g2="braceright" k="33" /> +<hkern g1="D,Eth" g2="hyphen,endash,emdash" k="-41" /> +<hkern g1="D,Eth" g2="comma,period,ellipsis" k="82" /> +<hkern g1="D,Eth" g2="slash" k="106" /> +<hkern g1="D,Eth" g2="guillemotleft,guilsinglleft" k="-20" /> +<hkern g1="D,Eth" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="51" /> +<hkern g1="D,Eth" g2="J" k="47" /> +<hkern g1="D,Eth" g2="T" k="47" /> +<hkern g1="D,Eth" g2="V" k="51" /> +<hkern g1="D,Eth" g2="W" k="20" /> +<hkern g1="D,Eth" g2="X" k="78" /> +<hkern g1="D,Eth" g2="Y,Yacute,Ydieresis" k="92" /> +<hkern g1="D,Eth" g2="Z" k="20" /> +<hkern g1="D,Eth" g2="AE" k="123" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="quotesinglbase,quotedblbase" k="-82" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="quoteleft,quotedblleft" k="-27" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="quoteright,quotedblright" k="-37" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="x" k="-43" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="25" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="c,ccedilla" k="25" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="d" k="25" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="e,egrave,eacute,ecircumflex,edieresis" k="25" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="g" k="25" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="25" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="q" k="25" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="eth" k="20" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="guillemotright,guilsinglright" k="-27" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="J" k="-49" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="37" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="Q" k="37" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="V" k="-23" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="X" k="-41" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="Y,Yacute,Ydieresis" k="-20" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="Z" k="-23" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="AE" k="-37" /> +<hkern g1="F" g2="parenright" k="-43" /> +<hkern g1="F" g2="question" k="-43" /> +<hkern g1="F" g2="backslash" k="-61" /> +<hkern g1="F" g2="bracketright" k="-53" /> +<hkern g1="F" g2="quotesinglbase,quotedblbase" k="129" /> +<hkern g1="F" g2="quoteleft,quotedblleft" k="-82" /> +<hkern g1="F" g2="quoteright,quotedblright" k="-76" /> +<hkern g1="F" g2="hyphen,endash,emdash" k="-31" /> +<hkern g1="F" g2="comma,period,ellipsis" k="127" /> +<hkern g1="F" g2="slash" k="160" /> +<hkern g1="F" g2="x" k="20" /> +<hkern g1="F" g2="z" k="41" /> +<hkern g1="F" g2="at" k="20" /> +<hkern g1="F" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="49" /> +<hkern g1="F" g2="c,ccedilla" k="20" /> +<hkern g1="F" g2="d" k="20" /> +<hkern g1="F" g2="e,egrave,eacute,ecircumflex,edieresis" k="20" /> +<hkern g1="F" g2="g" k="20" /> +<hkern g1="F" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="F" g2="q" k="20" /> +<hkern g1="F" g2="eth" k="20" /> +<hkern g1="F" g2="guillemotright,guilsinglright" k="23" /> +<hkern g1="F" g2="ampersand" k="41" /> +<hkern g1="F" g2="parenleft" k="29" /> +<hkern g1="F" g2="u,ugrave,uacute,ucircumflex,udieresis" k="41" /> +<hkern g1="F" g2="s" k="27" /> +<hkern g1="F" g2="m,n,ntilde" k="41" /> +<hkern g1="F" g2="p" k="41" /> +<hkern g1="F" g2="r" k="41" /> +<hkern g1="F" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="98" /> +<hkern g1="F" g2="C,Ccedilla" k="16" /> +<hkern g1="F" g2="G" k="16" /> +<hkern g1="F" g2="J" k="154" /> +<hkern g1="F" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="16" /> +<hkern g1="F" g2="Q" k="16" /> +<hkern g1="F" g2="T" k="-43" /> +<hkern g1="F" g2="V" k="-53" /> +<hkern g1="F" g2="W" k="-43" /> +<hkern g1="F" g2="X" k="-25" /> +<hkern g1="F" g2="Y,Yacute,Ydieresis" k="-57" /> +<hkern g1="F" g2="AE" k="240" /> +<hkern g1="F" g2="M" k="20" /> +<hkern g1="G" g2="asterisk" k="53" /> +<hkern g1="G" g2="v" k="23" /> +<hkern g1="G" g2="y,yacute,ydieresis" k="23" /> +<hkern g1="G" g2="quotesinglbase,quotedblbase" k="-47" /> +<hkern g1="G" g2="quoteleft,quotedblleft" k="20" /> +<hkern g1="G" g2="hyphen,endash,emdash" k="-35" /> +<hkern g1="G" g2="comma,period,ellipsis" k="-41" /> +<hkern g1="G" g2="colon,semicolon" k="-20" /> +<hkern g1="G" g2="T" k="20" /> +<hkern g1="G" g2="V" k="41" /> +<hkern g1="G" g2="W" k="41" /> +<hkern g1="G" g2="Y,Yacute,Ydieresis" k="41" /> +<hkern g1="H" g2="slash" k="20" /> +<hkern g1="I,Igrave,Iacute,Icircumflex,Idieresis" g2="slash" k="20" /> +<hkern g1="J" g2="backslash" k="-20" /> +<hkern g1="J" g2="quoteleft,quotedblleft" k="-31" /> +<hkern g1="J" g2="quoteright,quotedblright" k="-29" /> +<hkern g1="J" g2="slash" k="63" /> +<hkern g1="J" g2="guillemotright,guilsinglright" k="-20" /> +<hkern g1="J" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="39" /> +<hkern g1="J" g2="J" k="27" /> +<hkern g1="J" g2="AE" k="82" /> +<hkern g1="K" g2="parenright" k="-49" /> +<hkern g1="K" g2="asterisk" k="82" /> +<hkern g1="K" g2="backslash" k="-41" /> +<hkern g1="K" g2="bracketright" k="-57" /> +<hkern g1="K" g2="v" k="94" /> +<hkern g1="K" g2="w" k="94" /> +<hkern g1="K" g2="y,yacute,ydieresis" k="94" /> +<hkern g1="K" g2="quotesinglbase,quotedblbase" k="-63" /> +<hkern g1="K" g2="hyphen,endash,emdash" k="102" /> +<hkern g1="K" g2="comma,period,ellipsis" k="-63" /> +<hkern g1="K" g2="slash" k="-47" /> +<hkern g1="K" g2="x" k="-70" /> +<hkern g1="K" g2="z" k="-43" /> +<hkern g1="K" g2="guillemotleft,guilsinglleft" k="104" /> +<hkern g1="K" g2="colon,semicolon" k="-20" /> +<hkern g1="K" g2="at" k="29" /> +<hkern g1="K" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="20" /> +<hkern g1="K" g2="c,ccedilla" k="82" /> +<hkern g1="K" g2="d" k="82" /> +<hkern g1="K" g2="e,egrave,eacute,ecircumflex,edieresis" k="82" /> +<hkern g1="K" g2="g" k="82" /> +<hkern g1="K" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="82" /> +<hkern g1="K" g2="q" k="82" /> +<hkern g1="K" g2="eth" k="70" /> +<hkern g1="K" g2="ampersand" k="41" /> +<hkern g1="K" g2="parenleft" k="39" /> +<hkern g1="K" g2="t" k="20" /> +<hkern g1="K" g2="u,ugrave,uacute,ucircumflex,udieresis" k="70" /> +<hkern g1="K" g2="braceleft" k="27" /> +<hkern g1="K" g2="s" k="-20" /> +<hkern g1="K" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-51" /> +<hkern g1="K" g2="C,Ccedilla" k="113" /> +<hkern g1="K" g2="G" k="113" /> +<hkern g1="K" g2="J" k="-41" /> +<hkern g1="K" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="113" /> +<hkern g1="K" g2="Q" k="113" /> +<hkern g1="K" g2="T" k="-47" /> +<hkern g1="K" g2="V" k="-37" /> +<hkern g1="K" g2="W" k="-27" /> +<hkern g1="K" g2="X" k="-74" /> +<hkern g1="K" g2="Y,Yacute,Ydieresis" k="-37" /> +<hkern g1="K" g2="Z" k="-49" /> +<hkern g1="K" g2="AE" k="-53" /> +<hkern g1="L" g2="asterisk" k="209" /> +<hkern g1="L" g2="question" k="74" /> +<hkern g1="L" g2="backslash" k="164" /> +<hkern g1="L" g2="bracketright" k="66" /> +<hkern g1="L" g2="v" k="96" /> +<hkern g1="L" g2="w" k="59" /> +<hkern g1="L" g2="y,yacute,ydieresis" k="96" /> +<hkern g1="L" g2="quotesinglbase,quotedblbase" k="-96" /> +<hkern g1="L" g2="quoteleft,quotedblleft" k="131" /> +<hkern g1="L" g2="quoteright,quotedblright" k="113" /> +<hkern g1="L" g2="quotedbl,quotesingle" k="199" /> +<hkern g1="L" g2="braceright" k="25" /> +<hkern g1="L" g2="hyphen,endash,emdash" k="41" /> +<hkern g1="L" g2="comma,period,ellipsis" k="-82" /> +<hkern g1="L" g2="slash" k="-35" /> +<hkern g1="L" g2="x" k="-59" /> +<hkern g1="L" g2="z" k="-33" /> +<hkern g1="L" g2="guillemotleft,guilsinglleft" k="39" /> +<hkern g1="L" g2="colon,semicolon" k="-49" /> +<hkern g1="L" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="-25" /> +<hkern g1="L" g2="guillemotright,guilsinglright" k="-43" /> +<hkern g1="L" g2="ampersand" k="-20" /> +<hkern g1="L" g2="braceleft" k="33" /> +<hkern g1="L" g2="s" k="-16" /> +<hkern g1="L" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-63" /> +<hkern g1="L" g2="C,Ccedilla" k="41" /> +<hkern g1="L" g2="G" k="41" /> +<hkern g1="L" g2="J" k="-63" /> +<hkern g1="L" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="41" /> +<hkern g1="L" g2="Q" k="41" /> +<hkern g1="L" g2="S" k="-35" /> +<hkern g1="L" g2="T" k="160" /> +<hkern g1="L" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="20" /> +<hkern g1="L" g2="V" k="174" /> +<hkern g1="L" g2="W" k="102" /> +<hkern g1="L" g2="X" k="-63" /> +<hkern g1="L" g2="Y,Yacute,Ydieresis" k="205" /> +<hkern g1="L" g2="Z" k="-37" /> +<hkern g1="L" g2="AE" k="-63" /> +<hkern g1="L" g2="M" k="-20" /> +<hkern g1="L" g2="exclam" k="-20" /> +<hkern g1="M" g2="asterisk" k="20" /> +<hkern g1="M" g2="question" k="33" /> +<hkern g1="M" g2="backslash" k="41" /> +<hkern g1="M" g2="quoteleft,quotedblleft" k="41" /> +<hkern g1="M" g2="quoteright,quotedblright" k="31" /> +<hkern g1="M" g2="slash" k="20" /> +<hkern g1="M" g2="T" k="20" /> +<hkern g1="M" g2="V" k="20" /> +<hkern g1="M" g2="Y,Yacute,Ydieresis" k="31" /> +<hkern g1="N,Ntilde" g2="slash" k="20" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="parenright" k="41" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="question" k="39" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="bracketright" k="41" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="quotesinglbase,quotedblbase" k="25" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="quoteright,quotedblright" k="-20" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="braceright" k="27" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="hyphen,endash,emdash" k="-41" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="comma,period,ellipsis" k="82" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="slash" k="106" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="guillemotleft,guilsinglleft" k="-20" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="51" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="J" k="47" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="T" k="47" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="V" k="51" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="W" k="20" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="X" k="78" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Y,Yacute,Ydieresis" k="92" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Z" k="20" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="AE" k="123" /> +<hkern g1="P" g2="parenright" k="16" /> +<hkern g1="P" g2="bracketright" k="27" /> +<hkern g1="P" g2="v" k="-41" /> +<hkern g1="P" g2="w" k="-41" /> +<hkern g1="P" g2="y,yacute,ydieresis" k="-41" /> +<hkern g1="P" g2="quotesinglbase,quotedblbase" k="188" /> +<hkern g1="P" g2="quoteleft,quotedblleft" k="-59" /> +<hkern g1="P" g2="quoteright,quotedblright" k="-59" /> +<hkern g1="P" g2="braceright" k="20" /> +<hkern g1="P" g2="comma,period,ellipsis" k="213" /> +<hkern g1="P" g2="slash" k="162" /> +<hkern g1="P" g2="x" k="-25" /> +<hkern g1="P" g2="guillemotleft,guilsinglleft" k="20" /> +<hkern g1="P" g2="colon,semicolon" k="-27" /> +<hkern g1="P" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="41" /> +<hkern g1="P" g2="c,ccedilla" k="31" /> +<hkern g1="P" g2="d" k="31" /> +<hkern g1="P" g2="e,egrave,eacute,ecircumflex,edieresis" k="31" /> +<hkern g1="P" g2="g" k="31" /> +<hkern g1="P" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="31" /> +<hkern g1="P" g2="q" k="31" /> +<hkern g1="P" g2="eth" k="47" /> +<hkern g1="P" g2="guillemotright,guilsinglright" k="-27" /> +<hkern g1="P" g2="ampersand" k="41" /> +<hkern g1="P" g2="bracketleft" k="29" /> +<hkern g1="P" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="139" /> +<hkern g1="P" g2="J" k="182" /> +<hkern g1="P" g2="T" k="-27" /> +<hkern g1="P" g2="X" k="45" /> +<hkern g1="P" g2="Y,Yacute,Ydieresis" k="20" /> +<hkern g1="P" g2="AE" k="256" /> +<hkern g1="Q" g2="parenright" k="41" /> +<hkern g1="Q" g2="question" k="39" /> +<hkern g1="Q" g2="bracketright" k="41" /> +<hkern g1="Q" g2="quotesinglbase,quotedblbase" k="25" /> +<hkern g1="Q" g2="quoteright,quotedblright" k="-20" /> +<hkern g1="Q" g2="hyphen,endash,emdash" k="-41" /> +<hkern g1="Q" g2="comma,period,ellipsis" k="82" /> +<hkern g1="Q" g2="slash" k="106" /> +<hkern g1="Q" g2="guillemotleft,guilsinglleft" k="-20" /> +<hkern g1="Q" g2="j" k="-31" /> +<hkern g1="Q" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="51" /> +<hkern g1="Q" g2="J" k="47" /> +<hkern g1="Q" g2="T" k="47" /> +<hkern g1="Q" g2="V" k="51" /> +<hkern g1="Q" g2="W" k="20" /> +<hkern g1="Q" g2="X" k="78" /> +<hkern g1="Q" g2="Y,Yacute,Ydieresis" k="92" /> +<hkern g1="Q" g2="Z" k="20" /> +<hkern g1="Q" g2="AE" k="123" /> +<hkern g1="R" g2="asterisk" k="20" /> +<hkern g1="R" g2="question" k="31" /> +<hkern g1="R" g2="backslash" k="20" /> +<hkern g1="R" g2="bracketright" k="47" /> +<hkern g1="R" g2="quotesinglbase,quotedblbase" k="-66" /> +<hkern g1="R" g2="quoteleft,quotedblleft" k="-27" /> +<hkern g1="R" g2="quoteright,quotedblright" k="-23" /> +<hkern g1="R" g2="hyphen,endash,emdash" k="41" /> +<hkern g1="R" g2="comma,period,ellipsis" k="-49" /> +<hkern g1="R" g2="slash" k="-37" /> +<hkern g1="R" g2="x" k="-37" /> +<hkern g1="R" g2="z" k="-20" /> +<hkern g1="R" g2="guillemotleft,guilsinglleft" k="45" /> +<hkern g1="R" g2="colon,semicolon" k="-25" /> +<hkern g1="R" g2="at" k="20" /> +<hkern g1="R" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="51" /> +<hkern g1="R" g2="c,ccedilla" k="51" /> +<hkern g1="R" g2="d" k="51" /> +<hkern g1="R" g2="e,egrave,eacute,ecircumflex,edieresis" k="51" /> +<hkern g1="R" g2="g" k="51" /> +<hkern g1="R" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="51" /> +<hkern g1="R" g2="q" k="51" /> +<hkern g1="R" g2="eth" k="57" /> +<hkern g1="R" g2="t" k="20" /> +<hkern g1="R" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="R" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-63" /> +<hkern g1="R" g2="C,Ccedilla" k="37" /> +<hkern g1="R" g2="G" k="37" /> +<hkern g1="R" g2="J" k="-53" /> +<hkern g1="R" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="37" /> +<hkern g1="R" g2="Q" k="37" /> +<hkern g1="R" g2="T" k="20" /> +<hkern g1="R" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="16" /> +<hkern g1="R" g2="V" k="31" /> +<hkern g1="R" g2="X" k="-41" /> +<hkern g1="R" g2="Y,Yacute,Ydieresis" k="68" /> +<hkern g1="R" g2="Z" k="-37" /> +<hkern g1="R" g2="AE" k="-41" /> +<hkern g1="S" g2="parenright" k="16" /> +<hkern g1="S" g2="asterisk" k="72" /> +<hkern g1="S" g2="question" k="20" /> +<hkern g1="S" g2="v" k="33" /> +<hkern g1="S" g2="w" k="27" /> +<hkern g1="S" g2="y,yacute,ydieresis" k="33" /> +<hkern g1="S" g2="quotesinglbase,quotedblbase" k="-37" /> +<hkern g1="S" g2="quoteleft,quotedblleft" k="41" /> +<hkern g1="S" g2="hyphen,endash,emdash" k="-57" /> +<hkern g1="S" g2="comma,period,ellipsis" k="-20" /> +<hkern g1="S" g2="slash" k="31" /> +<hkern g1="S" g2="x" k="23" /> +<hkern g1="S" g2="guillemotleft,guilsinglleft" k="-31" /> +<hkern g1="S" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="-25" /> +<hkern g1="S" g2="T" k="41" /> +<hkern g1="S" g2="V" k="20" /> +<hkern g1="S" g2="W" k="20" /> +<hkern g1="S" g2="Y,Yacute,Ydieresis" k="20" /> +<hkern g1="S" g2="AE" k="41" /> +<hkern g1="T" g2="parenright" k="-51" /> +<hkern g1="T" g2="question" k="-53" /> +<hkern g1="T" g2="backslash" k="-82" /> +<hkern g1="T" g2="bracketright" k="-61" /> +<hkern g1="T" g2="v" k="154" /> +<hkern g1="T" g2="w" k="154" /> +<hkern g1="T" g2="y,yacute,ydieresis" k="154" /> +<hkern g1="T" g2="quotesinglbase,quotedblbase" k="109" /> +<hkern g1="T" g2="quoteleft,quotedblleft" k="-57" /> +<hkern g1="T" g2="quoteright,quotedblright" k="-41" /> +<hkern g1="T" g2="hyphen,endash,emdash" k="113" /> +<hkern g1="T" g2="comma,period,ellipsis" k="166" /> +<hkern g1="T" g2="slash" k="201" /> +<hkern g1="T" g2="x" k="154" /> +<hkern g1="T" g2="z" k="145" /> +<hkern g1="T" g2="guillemotleft,guilsinglleft" k="154" /> +<hkern g1="T" g2="colon,semicolon" k="125" /> +<hkern g1="T" g2="at" k="74" /> +<hkern g1="T" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="154" /> +<hkern g1="T" g2="c,ccedilla" k="154" /> +<hkern g1="T" g2="d" k="154" /> +<hkern g1="T" g2="e,egrave,eacute,ecircumflex,edieresis" k="154" /> +<hkern g1="T" g2="g" k="154" /> +<hkern g1="T" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="154" /> +<hkern g1="T" g2="q" k="154" /> +<hkern g1="T" g2="eth" k="188" /> +<hkern g1="T" g2="guillemotright,guilsinglright" k="135" /> +<hkern g1="T" g2="ampersand" k="41" /> +<hkern g1="T" g2="parenleft" k="37" /> +<hkern g1="T" g2="u,ugrave,uacute,ucircumflex,udieresis" k="141" /> +<hkern g1="T" g2="braceleft" k="37" /> +<hkern g1="T" g2="s" k="147" /> +<hkern g1="T" g2="m,n,ntilde" k="141" /> +<hkern g1="T" g2="p" k="141" /> +<hkern g1="T" g2="r" k="141" /> +<hkern g1="T" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="168" /> +<hkern g1="T" g2="C,Ccedilla" k="47" /> +<hkern g1="T" g2="G" k="47" /> +<hkern g1="T" g2="J" k="170" /> +<hkern g1="T" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="47" /> +<hkern g1="T" g2="Q" k="47" /> +<hkern g1="T" g2="T" k="-53" /> +<hkern g1="T" g2="V" k="-63" /> +<hkern g1="T" g2="W" k="-53" /> +<hkern g1="T" g2="X" k="-53" /> +<hkern g1="T" g2="Y,Yacute,Ydieresis" k="-70" /> +<hkern g1="T" g2="Z" k="-20" /> +<hkern g1="T" g2="AE" k="236" /> +<hkern g1="T" g2="M" k="20" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="backslash" k="-20" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="quoteleft,quotedblleft" k="-10" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="quoteright,quotedblright" k="-47" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="comma,period,ellipsis" k="61" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="slash" k="111" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="colon,semicolon" k="-20" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="41" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="J" k="39" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="AE" k="113" /> +<hkern g1="V" g2="parenright" k="-66" /> +<hkern g1="V" g2="question" k="-57" /> +<hkern g1="V" g2="backslash" k="-82" /> +<hkern g1="V" g2="bracketright" k="-76" /> +<hkern g1="V" g2="quotesinglbase,quotedblbase" k="129" /> +<hkern g1="V" g2="quoteleft,quotedblleft" k="-57" /> +<hkern g1="V" g2="quoteright,quotedblright" k="-76" /> +<hkern g1="V" g2="quotedbl,quotesingle" k="-37" /> +<hkern g1="V" g2="hyphen,endash,emdash" k="61" /> +<hkern g1="V" g2="comma,period,ellipsis" k="164" /> +<hkern g1="V" g2="slash" k="193" /> +<hkern g1="V" g2="z" k="25" /> +<hkern g1="V" g2="guillemotleft,guilsinglleft" k="82" /> +<hkern g1="V" g2="colon,semicolon" k="25" /> +<hkern g1="V" g2="at" k="59" /> +<hkern g1="V" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="84" /> +<hkern g1="V" g2="c,ccedilla" k="113" /> +<hkern g1="V" g2="d" k="113" /> +<hkern g1="V" g2="e,egrave,eacute,ecircumflex,edieresis" k="113" /> +<hkern g1="V" g2="g" k="113" /> +<hkern g1="V" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="113" /> +<hkern g1="V" g2="q" k="113" /> +<hkern g1="V" g2="eth" k="125" /> +<hkern g1="V" g2="ampersand" k="61" /> +<hkern g1="V" g2="parenleft" k="63" /> +<hkern g1="V" g2="u,ugrave,uacute,ucircumflex,udieresis" k="43" /> +<hkern g1="V" g2="braceleft" k="37" /> +<hkern g1="V" g2="s" k="78" /> +<hkern g1="V" g2="m,n,ntilde" k="47" /> +<hkern g1="V" g2="p" k="47" /> +<hkern g1="V" g2="r" k="47" /> +<hkern g1="V" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="133" /> +<hkern g1="V" g2="C,Ccedilla" k="51" /> +<hkern g1="V" g2="G" k="51" /> +<hkern g1="V" g2="J" k="178" /> +<hkern g1="V" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="51" /> +<hkern g1="V" g2="Q" k="51" /> +<hkern g1="V" g2="T" k="-66" /> +<hkern g1="V" g2="V" k="-76" /> +<hkern g1="V" g2="W" k="-66" /> +<hkern g1="V" g2="X" k="-66" /> +<hkern g1="V" g2="Y,Yacute,Ydieresis" k="-80" /> +<hkern g1="V" g2="Z" k="-33" /> +<hkern g1="V" g2="AE" k="303" /> +<hkern g1="V" g2="M" k="20" /> +<hkern g1="W" g2="parenright" k="-57" /> +<hkern g1="W" g2="question" k="-51" /> +<hkern g1="W" g2="comma,period,ellipsis" k="90" /> +<hkern g1="W" g2="slash" k="127" /> +<hkern g1="W" g2="at" k="23" /> +<hkern g1="W" g2="ampersand" k="41" /> +<hkern g1="W" g2="parenleft" k="23" /> +<hkern g1="W" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="82" /> +<hkern g1="W" g2="C,Ccedilla" k="20" /> +<hkern g1="W" g2="G" k="20" /> +<hkern g1="W" g2="J" k="96" /> +<hkern g1="W" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="20" /> +<hkern g1="W" g2="Q" k="20" /> +<hkern g1="W" g2="T" k="-55" /> +<hkern g1="W" g2="V" k="-66" /> +<hkern g1="W" g2="W" k="-55" /> +<hkern g1="W" g2="X" k="-55" /> +<hkern g1="W" g2="Y,Yacute,Ydieresis" k="-72" /> +<hkern g1="W" g2="Z" k="-23" /> +<hkern g1="X" g2="backslash" k="-61" /> +<hkern g1="X" g2="bracketright" k="-63" /> +<hkern g1="X" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="61" /> +<hkern g1="X" g2="c,ccedilla" k="61" /> +<hkern g1="X" g2="d" k="61" /> +<hkern g1="X" g2="e,egrave,eacute,ecircumflex,edieresis" k="61" /> +<hkern g1="X" g2="g" k="61" /> +<hkern g1="X" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="61" /> +<hkern g1="X" g2="q" k="61" /> +<hkern g1="X" g2="s" k="-20" /> +<hkern g1="X" g2="u,ugrave,uacute,ucircumflex,udieresis" k="49" /> +<hkern g1="X" g2="v" k="49" /> +<hkern g1="X" g2="w" k="49" /> +<hkern g1="X" g2="x" k="-49" /> +<hkern g1="X" g2="y,yacute,ydieresis" k="49" /> +<hkern g1="X" g2="quotesinglbase,quotedblbase" k="-70" /> +<hkern g1="X" g2="guillemotleft,guilsinglleft" k="76" /> +<hkern g1="X" g2="quoteleft,quotedblleft" k="-20" /> +<hkern g1="X" g2="quoteright,quotedblright" k="-33" /> +<hkern g1="X" g2="AE" k="-74" /> +<hkern g1="X" g2="eth" k="43" /> +<hkern g1="X" g2="braceleft" k="27" /> +<hkern g1="X" g2="ampersand" k="41" /> +<hkern g1="X" g2="parenleft" k="39" /> +<hkern g1="X" g2="parenright" k="-53" /> +<hkern g1="X" g2="asterisk" k="53" /> +<hkern g1="X" g2="hyphen,endash,emdash" k="66" /> +<hkern g1="X" g2="comma,period,ellipsis" k="-51" /> +<hkern g1="X" g2="slash" k="-47" /> +<hkern g1="X" g2="colon,semicolon" k="-35" /> +<hkern g1="X" g2="question" k="-41" /> +<hkern g1="X" g2="at" k="29" /> +<hkern g1="X" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-74" /> +<hkern g1="X" g2="C,Ccedilla" k="78" /> +<hkern g1="X" g2="G" k="78" /> +<hkern g1="X" g2="J" k="-51" /> +<hkern g1="X" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="78" /> +<hkern g1="X" g2="Q" k="78" /> +<hkern g1="X" g2="S" k="-35" /> +<hkern g1="X" g2="T" k="-53" /> +<hkern g1="X" g2="V" k="-63" /> +<hkern g1="X" g2="W" k="-53" /> +<hkern g1="X" g2="X" k="-74" /> +<hkern g1="X" g2="Y,Yacute,Ydieresis" k="-68" /> +<hkern g1="X" g2="Z" k="-49" /> +<hkern g1="X" g2="z" k="-31" /> +<hkern g1="Y,Yacute,Ydieresis" g2="backslash" k="-82" /> +<hkern g1="Y,Yacute,Ydieresis" g2="bracketright" k="-80" /> +<hkern g1="Y,Yacute,Ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="150" /> +<hkern g1="Y,Yacute,Ydieresis" g2="c,ccedilla" k="180" /> +<hkern g1="Y,Yacute,Ydieresis" g2="d" k="180" /> +<hkern g1="Y,Yacute,Ydieresis" g2="e,egrave,eacute,ecircumflex,edieresis" k="180" /> +<hkern g1="Y,Yacute,Ydieresis" g2="g" k="180" /> +<hkern g1="Y,Yacute,Ydieresis" g2="m,n,ntilde" k="76" /> +<hkern g1="Y,Yacute,Ydieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="180" /> +<hkern g1="Y,Yacute,Ydieresis" g2="p" k="76" /> +<hkern g1="Y,Yacute,Ydieresis" g2="q" k="180" /> +<hkern g1="Y,Yacute,Ydieresis" g2="r" k="76" /> +<hkern g1="Y,Yacute,Ydieresis" g2="s" k="143" /> +<hkern g1="Y,Yacute,Ydieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="70" /> +<hkern g1="Y,Yacute,Ydieresis" g2="v" k="20" /> +<hkern g1="Y,Yacute,Ydieresis" g2="x" k="41" /> +<hkern g1="Y,Yacute,Ydieresis" g2="y,yacute,ydieresis" k="20" /> +<hkern g1="Y,Yacute,Ydieresis" g2="quotesinglbase,quotedblbase" k="135" /> +<hkern g1="Y,Yacute,Ydieresis" g2="guillemotleft,guilsinglleft" k="162" /> +<hkern g1="Y,Yacute,Ydieresis" g2="quoteleft,quotedblleft" k="-51" /> +<hkern g1="Y,Yacute,Ydieresis" g2="quoteright,quotedblright" k="-63" /> +<hkern g1="Y,Yacute,Ydieresis" g2="AE" k="295" /> +<hkern g1="Y,Yacute,Ydieresis" g2="eth" k="184" /> +<hkern g1="Y,Yacute,Ydieresis" g2="braceleft" k="31" /> +<hkern g1="Y,Yacute,Ydieresis" g2="ampersand" k="102" /> +<hkern g1="Y,Yacute,Ydieresis" g2="parenleft" k="80" /> +<hkern g1="Y,Yacute,Ydieresis" g2="parenright" k="-70" /> +<hkern g1="Y,Yacute,Ydieresis" g2="asterisk" k="20" /> +<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,endash,emdash" k="137" /> +<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,ellipsis" k="195" /> +<hkern g1="Y,Yacute,Ydieresis" g2="slash" k="205" /> +<hkern g1="Y,Yacute,Ydieresis" g2="colon,semicolon" k="78" /> +<hkern g1="Y,Yacute,Ydieresis" g2="question" k="-59" /> +<hkern g1="Y,Yacute,Ydieresis" g2="at" k="121" /> +<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="205" /> +<hkern g1="Y,Yacute,Ydieresis" g2="C,Ccedilla" k="92" /> +<hkern g1="Y,Yacute,Ydieresis" g2="G" k="92" /> +<hkern g1="Y,Yacute,Ydieresis" g2="J" k="172" /> +<hkern g1="Y,Yacute,Ydieresis" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="92" /> +<hkern g1="Y,Yacute,Ydieresis" g2="Q" k="92" /> +<hkern g1="Y,Yacute,Ydieresis" g2="S" k="20" /> +<hkern g1="Y,Yacute,Ydieresis" g2="T" k="-70" /> +<hkern g1="Y,Yacute,Ydieresis" g2="V" k="-80" /> +<hkern g1="Y,Yacute,Ydieresis" g2="W" k="-70" /> +<hkern g1="Y,Yacute,Ydieresis" g2="X" k="-70" /> +<hkern g1="Y,Yacute,Ydieresis" g2="Y,Yacute,Ydieresis" k="-84" /> +<hkern g1="Y,Yacute,Ydieresis" g2="Z" k="-37" /> +<hkern g1="Y,Yacute,Ydieresis" g2="z" k="72" /> +<hkern g1="Y,Yacute,Ydieresis" g2="exclam" k="-23" /> +<hkern g1="Y,Yacute,Ydieresis" g2="M" k="31" /> +<hkern g1="Y,Yacute,Ydieresis" g2="guillemotright,guilsinglright" k="53" /> +<hkern g1="Z" g2="backslash" k="-41" /> +<hkern g1="Z" g2="bracketright" k="-43" /> +<hkern g1="Z" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="-23" /> +<hkern g1="Z" g2="c,ccedilla" k="20" /> +<hkern g1="Z" g2="d" k="20" /> +<hkern g1="Z" g2="e,egrave,eacute,ecircumflex,edieresis" k="20" /> +<hkern g1="Z" g2="g" k="20" /> +<hkern g1="Z" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="Z" g2="q" k="20" /> +<hkern g1="Z" g2="x" k="-49" /> +<hkern g1="Z" g2="quotesinglbase,quotedblbase" k="-88" /> +<hkern g1="Z" g2="guillemotleft,guilsinglleft" k="63" /> +<hkern g1="Z" g2="quoteleft,quotedblleft" k="-41" /> +<hkern g1="Z" g2="quoteright,quotedblright" k="-59" /> +<hkern g1="Z" g2="AE" k="-53" /> +<hkern g1="Z" g2="ampersand" k="20" /> +<hkern g1="Z" g2="parenright" k="-33" /> +<hkern g1="Z" g2="hyphen,endash,emdash" k="41" /> +<hkern g1="Z" g2="comma,period,ellipsis" k="-55" /> +<hkern g1="Z" g2="colon,semicolon" k="-33" /> +<hkern g1="Z" g2="question" k="-31" /> +<hkern g1="Z" g2="at" k="20" /> +<hkern g1="Z" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-53" /> +<hkern g1="Z" g2="C,Ccedilla" k="25" /> +<hkern g1="Z" g2="G" k="25" /> +<hkern g1="Z" g2="J" k="-53" /> +<hkern g1="Z" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="25" /> +<hkern g1="Z" g2="Q" k="25" /> +<hkern g1="Z" g2="S" k="-25" /> +<hkern g1="Z" g2="T" k="-31" /> +<hkern g1="Z" g2="V" k="-43" /> +<hkern g1="Z" g2="W" k="-31" /> +<hkern g1="Z" g2="X" k="-53" /> +<hkern g1="Z" g2="Y,Yacute,Ydieresis" k="-47" /> +<hkern g1="Z" g2="Z" k="-27" /> +<hkern g1="Z" g2="z" k="-23" /> +<hkern g1="Z" g2="guillemotright,guilsinglright" k="-33" /> +<hkern g1="Thorn" g2="backslash" k="41" /> +<hkern g1="Thorn" g2="bracketright" k="72" /> +<hkern g1="Thorn" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="16" /> +<hkern g1="Thorn" g2="guillemotleft,guilsinglleft" k="-31" /> +<hkern g1="Thorn" g2="AE" k="109" /> +<hkern g1="Thorn" g2="parenright" k="49" /> +<hkern g1="Thorn" g2="hyphen,endash,emdash" k="-31" /> +<hkern g1="Thorn" g2="comma,period,ellipsis" k="115" /> +<hkern g1="Thorn" g2="slash" k="125" /> +<hkern g1="Thorn" g2="colon,semicolon" k="-25" /> +<hkern g1="Thorn" g2="question" k="55" /> +<hkern g1="Thorn" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="57" /> +<hkern g1="Thorn" g2="J" k="84" /> +<hkern g1="Thorn" g2="T" k="41" /> +<hkern g1="Thorn" g2="V" k="45" /> +<hkern g1="Thorn" g2="W" k="20" /> +<hkern g1="Thorn" g2="X" k="72" /> +<hkern g1="Thorn" g2="Y,Yacute,Ydieresis" k="78" /> +<hkern g1="Thorn" g2="Z" k="47" /> +<hkern g1="Thorn" g2="braceright" k="41" /> +<hkern g1="parenleft" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="51" /> +<hkern g1="parenleft" g2="c,ccedilla" k="61" /> +<hkern g1="parenleft" g2="d" k="61" /> +<hkern g1="parenleft" g2="e,egrave,eacute,ecircumflex,edieresis" k="61" /> +<hkern g1="parenleft" g2="g" k="61" /> +<hkern g1="parenleft" g2="m,n,ntilde" k="43" /> +<hkern g1="parenleft" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="61" /> +<hkern g1="parenleft" g2="p" k="43" /> +<hkern g1="parenleft" g2="q" k="61" /> +<hkern g1="parenleft" g2="r" k="43" /> +<hkern g1="parenleft" g2="s" k="37" /> +<hkern g1="parenleft" g2="u,ugrave,uacute,ucircumflex,udieresis" k="51" /> +<hkern g1="parenleft" g2="v" k="20" /> +<hkern g1="parenleft" g2="w" k="20" /> +<hkern g1="parenleft" g2="y,yacute,ydieresis" k="-61" /> +<hkern g1="parenleft" g2="eth" k="61" /> +<hkern g1="parenleft" g2="parenleft" k="59" /> +<hkern g1="parenleft" g2="parenright" k="-164" /> +<hkern g1="parenleft" g2="asterisk" k="41" /> +<hkern g1="parenleft" g2="hyphen,endash,emdash" k="20" /> +<hkern g1="parenleft" g2="at" k="61" /> +<hkern g1="parenleft" g2="C,Ccedilla" k="41" /> +<hkern g1="parenleft" g2="G" k="41" /> +<hkern g1="parenleft" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="41" /> +<hkern g1="parenleft" g2="Q" k="41" /> +<hkern g1="parenleft" g2="T" k="-51" /> +<hkern g1="parenleft" g2="V" k="-63" /> +<hkern g1="parenleft" g2="W" k="-53" /> +<hkern g1="parenleft" g2="X" k="-53" /> +<hkern g1="parenleft" g2="Y,Yacute,Ydieresis" k="-68" /> +<hkern g1="parenleft" g2="Z" k="-20" /> +<hkern g1="parenleft" g2="j" k="-174" /> +<hkern g1="parenleft" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="27" /> +<hkern g1="parenleft" g2="i,igrave,iacute,icircumflex,idieresis" k="-25" /> +<hkern g1="parenleft" g2="germandbls" k="33" /> +<hkern g1="parenright" g2="x" k="29" /> +<hkern g1="parenright" g2="AE" k="41" /> +<hkern g1="parenright" g2="parenleft" k="47" /> +<hkern g1="parenright" g2="asterisk" k="39" /> +<hkern g1="parenright" g2="hyphen,endash,emdash" k="-45" /> +<hkern g1="parenright" g2="at" k="27" /> +<hkern g1="parenright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="41" /> +<hkern g1="parenright" g2="J" k="27" /> +<hkern g1="parenright" g2="T" k="39" /> +<hkern g1="parenright" g2="V" k="68" /> +<hkern g1="parenright" g2="W" k="27" /> +<hkern g1="parenright" g2="X" k="41" /> +<hkern g1="parenright" g2="Y,Yacute,Ydieresis" k="82" /> +<hkern g1="parenright" g2="Z" k="23" /> +<hkern g1="bracketleft" g2="bracketright" k="-184" /> +<hkern g1="bracketleft" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="72" /> +<hkern g1="bracketleft" g2="c,ccedilla" k="74" /> +<hkern g1="bracketleft" g2="d" k="74" /> +<hkern g1="bracketleft" g2="e,egrave,eacute,ecircumflex,edieresis" k="74" /> +<hkern g1="bracketleft" g2="g" k="74" /> +<hkern g1="bracketleft" g2="m,n,ntilde" k="70" /> +<hkern g1="bracketleft" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="74" /> +<hkern g1="bracketleft" g2="p" k="70" /> +<hkern g1="bracketleft" g2="q" k="74" /> +<hkern g1="bracketleft" g2="r" k="70" /> +<hkern g1="bracketleft" g2="s" k="68" /> +<hkern g1="bracketleft" g2="u,ugrave,uacute,ucircumflex,udieresis" k="72" /> +<hkern g1="bracketleft" g2="v" k="61" /> +<hkern g1="bracketleft" g2="w" k="61" /> +<hkern g1="bracketleft" g2="x" k="61" /> +<hkern g1="bracketleft" g2="y,yacute,ydieresis" k="-61" /> +<hkern g1="bracketleft" g2="AE" k="57" /> +<hkern g1="bracketleft" g2="eth" k="82" /> +<hkern g1="bracketleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="57" /> +<hkern g1="bracketleft" g2="C,Ccedilla" k="41" /> +<hkern g1="bracketleft" g2="G" k="41" /> +<hkern g1="bracketleft" g2="J" k="57" /> +<hkern g1="bracketleft" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="41" /> +<hkern g1="bracketleft" g2="Q" k="41" /> +<hkern g1="bracketleft" g2="T" k="-61" /> +<hkern g1="bracketleft" g2="V" k="-72" /> +<hkern g1="bracketleft" g2="W" k="-61" /> +<hkern g1="bracketleft" g2="X" k="-61" /> +<hkern g1="bracketleft" g2="Y,Yacute,Ydieresis" k="-78" /> +<hkern g1="bracketleft" g2="Z" k="-29" /> +<hkern g1="bracketleft" g2="z" k="63" /> +<hkern g1="bracketleft" g2="j" k="-193" /> +<hkern g1="bracketleft" g2="i,igrave,iacute,icircumflex,idieresis" k="-20" /> +<hkern g1="bracketright" g2="j" k="-68" /> +<hkern g1="braceleft" g2="C,Ccedilla" k="25" /> +<hkern g1="braceleft" g2="G" k="33" /> +<hkern g1="braceleft" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="33" /> +<hkern g1="braceleft" g2="Q" k="33" /> +<hkern g1="braceleft" g2="braceright" k="-184" /> +<hkern g1="braceright" g2="AE" k="27" /> +<hkern g1="braceright" g2="J" k="27" /> +<hkern g1="braceright" g2="T" k="37" /> +<hkern g1="braceright" g2="V" k="35" /> +<hkern g1="braceright" g2="X" k="27" /> +<hkern g1="braceright" g2="Y,Yacute,Ydieresis" k="31" /> +<hkern g1="asterisk" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="35" /> +<hkern g1="asterisk" g2="c,ccedilla" k="61" /> +<hkern g1="asterisk" g2="d" k="61" /> +<hkern g1="asterisk" g2="e,egrave,eacute,ecircumflex,edieresis" k="61" /> +<hkern g1="asterisk" g2="g" k="61" /> +<hkern g1="asterisk" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="61" /> +<hkern g1="asterisk" g2="q" k="61" /> +<hkern g1="asterisk" g2="s" k="20" /> +<hkern g1="asterisk" g2="v" k="-33" /> +<hkern g1="asterisk" g2="w" k="-33" /> +<hkern g1="asterisk" g2="x" k="-25" /> +<hkern g1="asterisk" g2="y,yacute,ydieresis" k="-33" /> +<hkern g1="asterisk" g2="AE" k="285" /> +<hkern g1="asterisk" g2="eth" k="96" /> +<hkern g1="asterisk" g2="at" k="39" /> +<hkern g1="asterisk" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="164" /> +<hkern g1="asterisk" g2="J" k="213" /> +<hkern g1="asterisk" g2="X" k="45" /> +<hkern g1="asterisk" g2="Y,Yacute,Ydieresis" k="20" /> +<hkern g1="asterisk" g2="M" k="20" /> +<hkern g1="asterisk" g2="j" k="20" /> +<hkern g1="quotedbl,quotesingle" g2="AE" k="221" /> +<hkern g1="quotedbl,quotesingle" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="102" /> +<hkern g1="quotedbl,quotesingle" g2="J" k="178" /> +<hkern g1="quotedbl,quotesingle" g2="V" k="-35" /> +<hkern g1="quotedbl,quotesingle" g2="W" k="-39" /> +<hkern g1="quoteleft,quotedblleft" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="57" /> +<hkern g1="quoteleft,quotedblleft" g2="c,ccedilla" k="66" /> +<hkern g1="quoteleft,quotedblleft" g2="d" k="86" /> +<hkern g1="quoteleft,quotedblleft" g2="e,egrave,eacute,ecircumflex,edieresis" k="66" /> +<hkern g1="quoteleft,quotedblleft" g2="g" k="66" /> +<hkern g1="quoteleft,quotedblleft" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="86" /> +<hkern g1="quoteleft,quotedblleft" g2="q" k="66" /> +<hkern g1="quoteleft,quotedblleft" g2="s" k="41" /> +<hkern g1="quoteleft,quotedblleft" g2="v" k="-25" /> +<hkern g1="quoteleft,quotedblleft" g2="w" k="-25" /> +<hkern g1="quoteleft,quotedblleft" g2="y,yacute,ydieresis" k="-25" /> +<hkern g1="quoteleft,quotedblleft" g2="AE" k="399" /> +<hkern g1="quoteleft,quotedblleft" g2="eth" k="143" /> +<hkern g1="quoteleft,quotedblleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="168" /> +<hkern g1="quoteleft,quotedblleft" g2="C,Ccedilla" k="61" /> +<hkern g1="quoteleft,quotedblleft" g2="G" k="61" /> +<hkern g1="quoteleft,quotedblleft" g2="J" k="195" /> +<hkern g1="quoteleft,quotedblleft" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="61" /> +<hkern g1="quoteleft,quotedblleft" g2="Q" k="61" /> +<hkern g1="quoteleft,quotedblleft" g2="S" k="-33" /> +<hkern g1="quoteleft,quotedblleft" g2="T" k="-39" /> +<hkern g1="quoteleft,quotedblleft" g2="V" k="-57" /> +<hkern g1="quoteleft,quotedblleft" g2="W" k="-68" /> +<hkern g1="quoteleft,quotedblleft" g2="X" k="-29" /> +<hkern g1="quoteleft,quotedblleft" g2="Y,Yacute,Ydieresis" k="-53" /> +<hkern g1="quoteleft,quotedblleft" g2="Z" k="-45" /> +<hkern g1="quoteleft,quotedblleft" g2="M" k="41" /> +<hkern g1="quoteleft,quotedblleft" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="-37" /> +<hkern g1="quoteright,quotedblright" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="129" /> +<hkern g1="quoteright,quotedblright" g2="c,ccedilla" k="147" /> +<hkern g1="quoteright,quotedblright" g2="d" k="147" /> +<hkern g1="quoteright,quotedblright" g2="e,egrave,eacute,ecircumflex,edieresis" k="147" /> +<hkern g1="quoteright,quotedblright" g2="g" k="147" /> +<hkern g1="quoteright,quotedblright" g2="m,n,ntilde" k="86" /> +<hkern g1="quoteright,quotedblright" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="147" /> +<hkern g1="quoteright,quotedblright" g2="p" k="86" /> +<hkern g1="quoteright,quotedblright" g2="q" k="147" /> +<hkern g1="quoteright,quotedblright" g2="r" k="86" /> +<hkern g1="quoteright,quotedblright" g2="s" k="158" /> +<hkern g1="quoteright,quotedblright" g2="u,ugrave,uacute,ucircumflex,udieresis" k="68" /> +<hkern g1="quoteright,quotedblright" g2="v" k="20" /> +<hkern g1="quoteright,quotedblright" g2="w" k="20" /> +<hkern g1="quoteright,quotedblright" g2="y,yacute,ydieresis" k="20" /> +<hkern g1="quoteright,quotedblright" g2="AE" k="264" /> +<hkern g1="quoteright,quotedblright" g2="eth" k="150" /> +<hkern g1="quoteright,quotedblright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="201" /> +<hkern g1="quoteright,quotedblright" g2="C,Ccedilla" k="76" /> +<hkern g1="quoteright,quotedblright" g2="G" k="76" /> +<hkern g1="quoteright,quotedblright" g2="J" k="215" /> +<hkern g1="quoteright,quotedblright" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="76" /> +<hkern g1="quoteright,quotedblright" g2="Q" k="76" /> +<hkern g1="quoteright,quotedblright" g2="S" k="41" /> +<hkern g1="quoteright,quotedblright" g2="T" k="-35" /> +<hkern g1="quoteright,quotedblright" g2="V" k="-55" /> +<hkern g1="quoteright,quotedblright" g2="W" k="-59" /> +<hkern g1="quoteright,quotedblright" g2="X" k="-29" /> +<hkern g1="quoteright,quotedblright" g2="Y,Yacute,Ydieresis" k="-45" /> +<hkern g1="quoteright,quotedblright" g2="Z" k="-35" /> +<hkern g1="quoteright,quotedblright" g2="z" k="68" /> +<hkern g1="quoteright,quotedblright" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="39" /> +<hkern g1="quoteright,quotedblright" g2="i,igrave,iacute,icircumflex,idieresis" k="20" /> +<hkern g1="quoteright,quotedblright" g2="germandbls" k="41" /> +<hkern g1="quoteright,quotedblright" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="-27" /> +<hkern g1="quoteright,quotedblright" g2="b" k="20" /> +<hkern g1="quoteright,quotedblright" g2="h" k="20" /> +<hkern g1="quoteright,quotedblright" g2="k" k="20" /> +<hkern g1="quoteright,quotedblright" g2="l" k="20" /> +<hkern g1="quotesinglbase,quotedblbase" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="-20" /> +<hkern g1="quotesinglbase,quotedblbase" g2="m,n,ntilde" k="-20" /> +<hkern g1="quotesinglbase,quotedblbase" g2="p" k="-20" /> +<hkern g1="quotesinglbase,quotedblbase" g2="r" k="-20" /> +<hkern g1="quotesinglbase,quotedblbase" g2="s" k="-23" /> +<hkern g1="quotesinglbase,quotedblbase" g2="u,ugrave,uacute,ucircumflex,udieresis" k="-20" /> +<hkern g1="quotesinglbase,quotedblbase" g2="v" k="84" /> +<hkern g1="quotesinglbase,quotedblbase" g2="w" k="59" /> +<hkern g1="quotesinglbase,quotedblbase" g2="x" k="-43" /> +<hkern g1="quotesinglbase,quotedblbase" g2="y,yacute,ydieresis" k="84" /> +<hkern g1="quotesinglbase,quotedblbase" g2="AE" k="-47" /> +<hkern g1="quotesinglbase,quotedblbase" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-43" /> +<hkern g1="quotesinglbase,quotedblbase" g2="C,Ccedilla" k="68" /> +<hkern g1="quotesinglbase,quotedblbase" g2="G" k="68" /> +<hkern g1="quotesinglbase,quotedblbase" g2="J" k="-45" /> +<hkern g1="quotesinglbase,quotedblbase" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="68" /> +<hkern g1="quotesinglbase,quotedblbase" g2="Q" k="68" /> +<hkern g1="quotesinglbase,quotedblbase" g2="S" k="-20" /> +<hkern g1="quotesinglbase,quotedblbase" g2="T" k="156" /> +<hkern g1="quotesinglbase,quotedblbase" g2="V" k="256" /> +<hkern g1="quotesinglbase,quotedblbase" g2="W" k="156" /> +<hkern g1="quotesinglbase,quotedblbase" g2="X" k="-47" /> +<hkern g1="quotesinglbase,quotedblbase" g2="Y,Yacute,Ydieresis" k="221" /> +<hkern g1="quotesinglbase,quotedblbase" g2="Z" k="-41" /> +<hkern g1="quotesinglbase,quotedblbase" g2="z" k="-49" /> +<hkern g1="quotesinglbase,quotedblbase" g2="j" k="-63" /> +<hkern g1="quotesinglbase,quotedblbase" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="-20" /> +<hkern g1="quotesinglbase,quotedblbase" g2="i,igrave,iacute,icircumflex,idieresis" k="-20" /> +<hkern g1="quotesinglbase,quotedblbase" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="41" /> +<hkern g1="quotesinglbase,quotedblbase" g2="b" k="-20" /> +<hkern g1="quotesinglbase,quotedblbase" g2="h" k="-20" /> +<hkern g1="quotesinglbase,quotedblbase" g2="k" k="-20" /> +<hkern g1="quotesinglbase,quotedblbase" g2="l" k="-20" /> +<hkern g1="guillemotleft,guilsinglleft" g2="v" k="-35" /> +<hkern g1="guillemotleft,guilsinglleft" g2="w" k="-35" /> +<hkern g1="guillemotleft,guilsinglleft" g2="y,yacute,ydieresis" k="-35" /> +<hkern g1="guillemotleft,guilsinglleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-23" /> +<hkern g1="guillemotleft,guilsinglleft" g2="J" k="-35" /> +<hkern g1="guillemotleft,guilsinglleft" g2="T" k="137" /> +<hkern g1="guillemotleft,guilsinglleft" g2="V" k="20" /> +<hkern g1="guillemotleft,guilsinglleft" g2="Y,Yacute,Ydieresis" k="55" /> +<hkern g1="guillemotleft,guilsinglleft" g2="Z" k="-25" /> +<hkern g1="guillemotleft,guilsinglleft" g2="z" k="-16" /> +<hkern g1="guillemotright,guilsinglright" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="-20" /> +<hkern g1="guillemotright,guilsinglright" g2="c,ccedilla" k="-20" /> +<hkern g1="guillemotright,guilsinglright" g2="d" k="-20" /> +<hkern g1="guillemotright,guilsinglright" g2="e,egrave,eacute,ecircumflex,edieresis" k="-20" /> +<hkern g1="guillemotright,guilsinglright" g2="g" k="-20" /> +<hkern g1="guillemotright,guilsinglright" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="-20" /> +<hkern g1="guillemotright,guilsinglright" g2="q" k="-20" /> +<hkern g1="guillemotright,guilsinglright" g2="x" k="57" /> +<hkern g1="guillemotright,guilsinglright" g2="AE" k="90" /> +<hkern g1="guillemotright,guilsinglright" g2="eth" k="-20" /> +<hkern g1="guillemotright,guilsinglright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="33" /> +<hkern g1="guillemotright,guilsinglright" g2="C,Ccedilla" k="-20" /> +<hkern g1="guillemotright,guilsinglright" g2="G" k="-20" /> +<hkern g1="guillemotright,guilsinglright" g2="J" k="61" /> +<hkern g1="guillemotright,guilsinglright" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="-20" /> +<hkern g1="guillemotright,guilsinglright" g2="Q" k="-20" /> +<hkern g1="guillemotright,guilsinglright" g2="S" k="41" /> +<hkern g1="guillemotright,guilsinglright" g2="T" k="154" /> +<hkern g1="guillemotright,guilsinglright" g2="V" k="84" /> +<hkern g1="guillemotright,guilsinglright" g2="W" k="39" /> +<hkern g1="guillemotright,guilsinglright" g2="X" k="78" /> +<hkern g1="guillemotright,guilsinglright" g2="Y,Yacute,Ydieresis" k="164" /> +<hkern g1="guillemotright,guilsinglright" g2="Z" k="49" /> +<hkern g1="guillemotright,guilsinglright" g2="z" k="35" /> +<hkern g1="hyphen,endash,emdash" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="-31" /> +<hkern g1="hyphen,endash,emdash" g2="c,ccedilla" k="-25" /> +<hkern g1="hyphen,endash,emdash" g2="d" k="-25" /> +<hkern g1="hyphen,endash,emdash" g2="e,egrave,eacute,ecircumflex,edieresis" k="-25" /> +<hkern g1="hyphen,endash,emdash" g2="g" k="-25" /> +<hkern g1="hyphen,endash,emdash" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="-25" /> +<hkern g1="hyphen,endash,emdash" g2="q" k="-25" /> +<hkern g1="hyphen,endash,emdash" g2="w" k="-16" /> +<hkern g1="hyphen,endash,emdash" g2="x" k="41" /> +<hkern g1="hyphen,endash,emdash" g2="AE" k="92" /> +<hkern g1="hyphen,endash,emdash" g2="eth" k="-25" /> +<hkern g1="hyphen,endash,emdash" g2="C,Ccedilla" k="-41" /> +<hkern g1="hyphen,endash,emdash" g2="G" k="-41" /> +<hkern g1="hyphen,endash,emdash" g2="J" k="31" /> +<hkern g1="hyphen,endash,emdash" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="-41" /> +<hkern g1="hyphen,endash,emdash" g2="Q" k="-41" /> +<hkern g1="hyphen,endash,emdash" g2="T" k="113" /> +<hkern g1="hyphen,endash,emdash" g2="V" k="61" /> +<hkern g1="hyphen,endash,emdash" g2="X" k="66" /> +<hkern g1="hyphen,endash,emdash" g2="Y,Yacute,Ydieresis" k="137" /> +<hkern g1="hyphen,endash,emdash" g2="Z" k="20" /> +<hkern g1="hyphen,endash,emdash" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="-43" /> +<hkern g1="comma,period,ellipsis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="61" /> +<hkern g1="comma,period,ellipsis" g2="c,ccedilla" k="61" /> +<hkern g1="comma,period,ellipsis" g2="d" k="61" /> +<hkern g1="comma,period,ellipsis" g2="e,egrave,eacute,ecircumflex,edieresis" k="61" /> +<hkern g1="comma,period,ellipsis" g2="g" k="61" /> +<hkern g1="comma,period,ellipsis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="61" /> +<hkern g1="comma,period,ellipsis" g2="q" k="61" /> +<hkern g1="comma,period,ellipsis" g2="v" k="117" /> +<hkern g1="comma,period,ellipsis" g2="w" k="113" /> +<hkern g1="comma,period,ellipsis" g2="x" k="-41" /> +<hkern g1="comma,period,ellipsis" g2="y,yacute,ydieresis" k="117" /> +<hkern g1="comma,period,ellipsis" g2="AE" k="-51" /> +<hkern g1="comma,period,ellipsis" g2="eth" k="41" /> +<hkern g1="comma,period,ellipsis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-61" /> +<hkern g1="comma,period,ellipsis" g2="C,Ccedilla" k="82" /> +<hkern g1="comma,period,ellipsis" g2="G" k="82" /> +<hkern g1="comma,period,ellipsis" g2="J" k="-82" /> +<hkern g1="comma,period,ellipsis" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="82" /> +<hkern g1="comma,period,ellipsis" g2="Q" k="82" /> +<hkern g1="comma,period,ellipsis" g2="S" k="-27" /> +<hkern g1="comma,period,ellipsis" g2="T" k="166" /> +<hkern g1="comma,period,ellipsis" g2="V" k="168" /> +<hkern g1="comma,period,ellipsis" g2="W" k="86" /> +<hkern g1="comma,period,ellipsis" g2="X" k="-51" /> +<hkern g1="comma,period,ellipsis" g2="Y,Yacute,Ydieresis" k="195" /> +<hkern g1="comma,period,ellipsis" g2="Z" k="-45" /> +<hkern g1="comma,period,ellipsis" g2="z" k="-37" /> +<hkern g1="comma,period,ellipsis" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="61" /> +<hkern g1="colon,semicolon" g2="v" k="-29" /> +<hkern g1="colon,semicolon" g2="w" k="-29" /> +<hkern g1="colon,semicolon" g2="x" k="-27" /> +<hkern g1="colon,semicolon" g2="y,yacute,ydieresis" k="-29" /> +<hkern g1="colon,semicolon" g2="AE" k="-31" /> +<hkern g1="colon,semicolon" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-35" /> +<hkern g1="colon,semicolon" g2="J" k="-49" /> +<hkern g1="colon,semicolon" g2="T" k="127" /> +<hkern g1="colon,semicolon" g2="V" k="27" /> +<hkern g1="colon,semicolon" g2="X" k="-31" /> +<hkern g1="colon,semicolon" g2="Y,Yacute,Ydieresis" k="78" /> +<hkern g1="colon,semicolon" g2="Z" k="-25" /> +<hkern g1="colon,semicolon" g2="z" k="-20" /> +<hkern g1="backslash" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="51" /> +<hkern g1="backslash" g2="c,ccedilla" k="51" /> +<hkern g1="backslash" g2="d" k="51" /> +<hkern g1="backslash" g2="e,egrave,eacute,ecircumflex,edieresis" k="51" /> +<hkern g1="backslash" g2="g" k="51" /> +<hkern g1="backslash" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="51" /> +<hkern g1="backslash" g2="q" k="51" /> +<hkern g1="backslash" g2="u,ugrave,uacute,ucircumflex,udieresis" k="41" /> +<hkern g1="backslash" g2="v" k="61" /> +<hkern g1="backslash" g2="w" k="41" /> +<hkern g1="backslash" g2="y,yacute,ydieresis" k="-123" /> +<hkern g1="backslash" g2="AE" k="-41" /> +<hkern g1="backslash" g2="eth" k="41" /> +<hkern g1="backslash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-41" /> +<hkern g1="backslash" g2="C,Ccedilla" k="82" /> +<hkern g1="backslash" g2="G" k="82" /> +<hkern g1="backslash" g2="J" k="-20" /> +<hkern g1="backslash" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="82" /> +<hkern g1="backslash" g2="Q" k="82" /> +<hkern g1="backslash" g2="T" k="184" /> +<hkern g1="backslash" g2="V" k="225" /> +<hkern g1="backslash" g2="W" k="143" /> +<hkern g1="backslash" g2="X" k="-41" /> +<hkern g1="backslash" g2="Y,Yacute,Ydieresis" k="225" /> +<hkern g1="backslash" g2="Z" k="-20" /> +<hkern g1="backslash" g2="M" k="61" /> +<hkern g1="backslash" g2="j" k="-287" /> +<hkern g1="backslash" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="82" /> +<hkern g1="backslash" g2="B" k="61" /> +<hkern g1="backslash" g2="D,Eth" k="61" /> +<hkern g1="backslash" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="61" /> +<hkern g1="backslash" g2="F" k="61" /> +<hkern g1="backslash" g2="H" k="61" /> +<hkern g1="backslash" g2="I,Igrave,Iacute,Icircumflex,Idieresis" k="61" /> +<hkern g1="backslash" g2="K" k="61" /> +<hkern g1="backslash" g2="L" k="61" /> +<hkern g1="backslash" g2="N,Ntilde" k="61" /> +<hkern g1="backslash" g2="P" k="61" /> +<hkern g1="backslash" g2="R" k="61" /> +<hkern g1="backslash" g2="t" k="20" /> +<hkern g1="slash" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="80" /> +<hkern g1="slash" g2="c,ccedilla" k="119" /> +<hkern g1="slash" g2="d" k="119" /> +<hkern g1="slash" g2="e,egrave,eacute,ecircumflex,edieresis" k="119" /> +<hkern g1="slash" g2="g" k="119" /> +<hkern g1="slash" g2="m,n,ntilde" k="66" /> +<hkern g1="slash" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="119" /> +<hkern g1="slash" g2="p" k="66" /> +<hkern g1="slash" g2="q" k="119" /> +<hkern g1="slash" g2="r" k="66" /> +<hkern g1="slash" g2="s" k="63" /> +<hkern g1="slash" g2="u,ugrave,uacute,ucircumflex,udieresis" k="39" /> +<hkern g1="slash" g2="AE" k="246" /> +<hkern g1="slash" g2="eth" k="96" /> +<hkern g1="slash" g2="at" k="72" /> +<hkern g1="slash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="133" /> +<hkern g1="slash" g2="C,Ccedilla" k="49" /> +<hkern g1="slash" g2="G" k="49" /> +<hkern g1="slash" g2="J" k="145" /> +<hkern g1="slash" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="49" /> +<hkern g1="slash" g2="Q" k="49" /> +<hkern g1="slash" g2="T" k="-88" /> +<hkern g1="slash" g2="V" k="-98" /> +<hkern g1="slash" g2="W" k="-88" /> +<hkern g1="slash" g2="X" k="-68" /> +<hkern g1="slash" g2="Y,Yacute,Ydieresis" k="-102" /> +<hkern g1="slash" g2="Z" k="-35" /> +<hkern g1="slash" g2="z" k="20" /> +<hkern g1="slash" g2="j" k="-31" /> +<hkern g1="slash" g2="i,igrave,iacute,icircumflex,idieresis" k="-33" /> +<hkern g1="slash" g2="b" k="-35" /> +<hkern g1="slash" g2="h" k="-35" /> +<hkern g1="slash" g2="k" k="-35" /> +<hkern g1="slash" g2="l" k="-35" /> +<hkern g1="ampersand" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="41" /> +<hkern g1="ampersand" g2="c,ccedilla" k="41" /> +<hkern g1="ampersand" g2="d" k="41" /> +<hkern g1="ampersand" g2="e,egrave,eacute,ecircumflex,edieresis" k="41" /> +<hkern g1="ampersand" g2="g" k="41" /> +<hkern g1="ampersand" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="41" /> +<hkern g1="ampersand" g2="q" k="41" /> +<hkern g1="ampersand" g2="v" k="76" /> +<hkern g1="ampersand" g2="w" k="61" /> +<hkern g1="ampersand" g2="x" k="-20" /> +<hkern g1="ampersand" g2="y,yacute,ydieresis" k="76" /> +<hkern g1="ampersand" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-61" /> +<hkern g1="ampersand" g2="C,Ccedilla" k="41" /> +<hkern g1="ampersand" g2="G" k="41" /> +<hkern g1="ampersand" g2="J" k="-41" /> +<hkern g1="ampersand" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="41" /> +<hkern g1="ampersand" g2="Q" k="41" /> +<hkern g1="ampersand" g2="T" k="164" /> +<hkern g1="ampersand" g2="V" k="143" /> +<hkern g1="ampersand" g2="W" k="82" /> +<hkern g1="ampersand" g2="X" k="-20" /> +<hkern g1="ampersand" g2="Y,Yacute,Ydieresis" k="205" /> +<hkern g1="exclamdown" g2="T" k="129" /> +<hkern g1="exclamdown" g2="V" k="68" /> +<hkern g1="exclamdown" g2="W" k="20" /> +<hkern g1="exclamdown" g2="Y,Yacute,Ydieresis" k="100" /> +<hkern g1="questiondown" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="80" /> +<hkern g1="questiondown" g2="c,ccedilla" k="82" /> +<hkern g1="questiondown" g2="d" k="82" /> +<hkern g1="questiondown" g2="e,egrave,eacute,ecircumflex,edieresis" k="82" /> +<hkern g1="questiondown" g2="g" k="82" /> +<hkern g1="questiondown" g2="m,n,ntilde" k="68" /> +<hkern g1="questiondown" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="82" /> +<hkern g1="questiondown" g2="p" k="68" /> +<hkern g1="questiondown" g2="q" k="82" /> +<hkern g1="questiondown" g2="r" k="68" /> +<hkern g1="questiondown" g2="s" k="76" /> +<hkern g1="questiondown" g2="u,ugrave,uacute,ucircumflex,udieresis" k="78" /> +<hkern g1="questiondown" g2="v" k="47" /> +<hkern g1="questiondown" g2="w" k="47" /> +<hkern g1="questiondown" g2="x" k="63" /> +<hkern g1="questiondown" g2="y,yacute,ydieresis" k="-31" /> +<hkern g1="questiondown" g2="AE" k="147" /> +<hkern g1="questiondown" g2="eth" k="88" /> +<hkern g1="questiondown" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="86" /> +<hkern g1="questiondown" g2="C,Ccedilla" k="82" /> +<hkern g1="questiondown" g2="G" k="82" /> +<hkern g1="questiondown" g2="J" k="113" /> +<hkern g1="questiondown" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="82" /> +<hkern g1="questiondown" g2="Q" k="82" /> +<hkern g1="questiondown" g2="S" k="70" /> +<hkern g1="questiondown" g2="T" k="215" /> +<hkern g1="questiondown" g2="V" k="127" /> +<hkern g1="questiondown" g2="W" k="86" /> +<hkern g1="questiondown" g2="X" k="127" /> +<hkern g1="questiondown" g2="Y,Yacute,Ydieresis" k="160" /> +<hkern g1="questiondown" g2="Z" k="102" /> +<hkern g1="questiondown" g2="z" k="68" /> +<hkern g1="questiondown" g2="M" k="41" /> +<hkern g1="questiondown" g2="j" k="-141" /> +<hkern g1="questiondown" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="68" /> +<hkern g1="questiondown" g2="i,igrave,iacute,icircumflex,idieresis" k="68" /> +<hkern g1="questiondown" g2="germandbls" k="68" /> +<hkern g1="questiondown" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="68" /> +<hkern g1="questiondown" g2="b" k="68" /> +<hkern g1="questiondown" g2="h" k="68" /> +<hkern g1="questiondown" g2="k" k="68" /> +<hkern g1="questiondown" g2="l" k="68" /> +<hkern g1="questiondown" g2="B" k="63" /> +<hkern g1="questiondown" g2="D,Eth" k="63" /> +<hkern g1="questiondown" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="63" /> +<hkern g1="questiondown" g2="F" k="63" /> +<hkern g1="questiondown" g2="H" k="63" /> +<hkern g1="questiondown" g2="I,Igrave,Iacute,Icircumflex,Idieresis" k="63" /> +<hkern g1="questiondown" g2="K" k="63" /> +<hkern g1="questiondown" g2="L" k="63" /> +<hkern g1="questiondown" g2="N,Ntilde" k="63" /> +<hkern g1="questiondown" g2="P" k="63" /> +<hkern g1="questiondown" g2="R" k="63" /> +<hkern g1="questiondown" g2="t" k="70" /> +<hkern g1="at" g2="x" k="20" /> +<hkern g1="at" g2="AE" k="113" /> +<hkern g1="at" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="41" /> +<hkern g1="at" g2="J" k="35" /> +<hkern g1="at" g2="T" k="74" /> +<hkern g1="at" g2="V" k="59" /> +<hkern g1="at" g2="W" k="23" /> +<hkern g1="at" g2="X" k="51" /> +<hkern g1="at" g2="Y,Yacute,Ydieresis" k="86" /> +<hkern g1="at" g2="Z" k="25" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/ubuntu-bold-webfont.ttf b/web/static/fonts/ubuntu-bold-webfont.ttf Binary files differnew file mode 100755 index 000000000..c5c411f75 --- /dev/null +++ b/web/static/fonts/ubuntu-bold-webfont.ttf diff --git a/web/static/fonts/ubuntu-bold-webfont.woff b/web/static/fonts/ubuntu-bold-webfont.woff Binary files differnew file mode 100755 index 000000000..fb04e848c --- /dev/null +++ b/web/static/fonts/ubuntu-bold-webfont.woff diff --git a/web/static/fonts/ubuntu-bold-webfont.woff2 b/web/static/fonts/ubuntu-bold-webfont.woff2 Binary files differnew file mode 100755 index 000000000..e99f40281 --- /dev/null +++ b/web/static/fonts/ubuntu-bold-webfont.woff2 diff --git a/web/static/fonts/ubuntu-bolditalic-webfont.eot b/web/static/fonts/ubuntu-bolditalic-webfont.eot Binary files differnew file mode 100755 index 000000000..24476c0f8 --- /dev/null +++ b/web/static/fonts/ubuntu-bolditalic-webfont.eot diff --git a/web/static/fonts/ubuntu-bolditalic-webfont.svg b/web/static/fonts/ubuntu-bolditalic-webfont.svg new file mode 100755 index 000000000..f9ac9234e --- /dev/null +++ b/web/static/fonts/ubuntu-bolditalic-webfont.svg @@ -0,0 +1,1812 @@ +<?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="ubuntubold_italic" horiz-adv-x="1163" > +<font-face units-per-em="2048" ascent="1638" descent="-410" /> +<missing-glyph horiz-adv-x="491" /> +<glyph unicode="fi" horiz-adv-x="1437" d="M-74 -348q53 49 98.5 120.5t81 151.5t61.5 163t42 155l213 893q51 217 184 335.5t375 118.5q92 0 149.5 -14t92.5 -31l-109 -237q-37 10 -70.5 17t-74.5 7q-113 0 -167 -57t-75 -144l-12 -53h360l-61 -250h-359l-125 -522q-70 -293 -151.5 -455.5t-179.5 -236.5zM1001 0 l256 1077h306l-258 -1077h-304zM1286 1362q0 43 17.5 81t46 65.5t66.5 44t81 16.5q63 0 114.5 -38t51.5 -116q0 -43 -17.5 -81t-46 -65.5t-66.5 -44t-81 -16.5q-63 0 -114.5 38t-51.5 116z" /> +<glyph unicode="fl" horiz-adv-x="1462" d="M-74 -348q53 49 98.5 120.5t81 151.5t61.5 163t42 155l213 893q51 217 184 335.5t375 118.5q92 0 149.5 -14t92.5 -31l-109 -237q-37 10 -70.5 17t-74.5 7q-113 0 -167 -57t-75 -144l-12 -53h360l-61 -250h-359l-125 -522q-70 -293 -151.5 -455.5t-179.5 -236.5z M1025 271q1 85 24 182l260 1087l317 49l-285 -1179q-8 -37 -9 -68t11.5 -54.5t42 -37.5t82.5 -19l-61 -251q-145 0 -228 37.5t-119 103t-35 150.5z" /> +<glyph unicode="ffi" horiz-adv-x="2293" d="M-78 -348q53 49 98.5 120.5t81 151.5t61.5 163t42 155l213 893q51 217 184 335.5t375 118.5q92 0 160.5 -19.5t103.5 -35.5l-102 -240q-37 18 -85 27.5t-89 9.5q-113 0 -167 -57t-75 -144l-12 -53h360l-61 -250h-359l-125 -522q-70 -293 -151.5 -455.5t-179.5 -236.5z M782 -348q53 49 98.5 120.5t81 151.5t61.5 163t42 155l213 893q51 217 184 335.5t375 118.5q92 0 149.5 -14t92.5 -31l-109 -237q-37 10 -70.5 17t-74.5 7q-113 0 -167 -57t-75 -144l-12 -53h360l-61 -250h-359l-125 -522q-70 -293 -151.5 -455.5t-179.5 -236.5zM1857 0 l256 1077h306l-258 -1077h-304zM2142 1362q0 43 17.5 81t46 65.5t66.5 44t81 16.5q63 0 114.5 -38t51.5 -116q0 -43 -17.5 -81t-46 -65.5t-66.5 -44t-81 -16.5q-63 0 -114.5 38t-51.5 116z" /> +<glyph unicode="ffl" horiz-adv-x="2361" d="M-78 -348q53 49 98.5 120.5t81 151.5t61.5 163t42 155l213 893q51 217 184 335.5t375 118.5q92 0 160.5 -19.5t103.5 -35.5l-102 -240q-37 18 -85 27.5t-89 9.5q-113 0 -167 -57t-75 -144l-12 -53h360l-61 -250h-359l-125 -522q-70 -293 -151.5 -455.5t-179.5 -236.5z M784 -348q53 49 98.5 120.5t81 151.5t61.5 163t42 155l213 893q51 217 184 335.5t375 118.5q92 0 149.5 -14t92.5 -31l-109 -237q-37 10 -70.5 17t-74.5 7q-113 0 -167 -57t-75 -144l-12 -53h360l-61 -250h-359l-125 -522q-70 -293 -151.5 -455.5t-179.5 -236.5zM1883 271 q1 85 24 182l260 1087l317 49l-285 -1179q-8 -37 -9 -68t11.5 -54.5t42 -37.5t82.5 -19l-61 -251q-145 0 -228 37.5t-119 103t-35 150.5z" /> +<glyph unicode="
" horiz-adv-x="491" /> +<glyph horiz-adv-x="0" /> +<glyph horiz-adv-x="0" /> +<glyph unicode=" " horiz-adv-x="491" /> +<glyph unicode="	" horiz-adv-x="491" /> +<glyph unicode=" " horiz-adv-x="491" /> +<glyph unicode="!" horiz-adv-x="604" d="M164 139q0 47 17.5 86t46 66.5t65.5 43t76 15.5q72 0 120 -41t48 -125q0 -47 -17.5 -86t-46.5 -66.5t-65.5 -43t-75.5 -15.5q-72 0 -120 41t-48 125zM291 453q16 147 36.5 290.5t59.5 309.5l88 366h326l-88 -366q-41 -166 -87 -309.5t-102 -290.5h-233z" /> +<glyph unicode=""" horiz-adv-x="1007" d="M369 954q8 119 22.5 236t36.5 217l37 149h301l-37 -151q-23 -98 -67 -215t-91 -236h-202zM815 954q8 119 22.5 236t36.5 217l37 149h301l-37 -151q-23 -98 -67 -215t-91 -236h-202z" /> +<glyph unicode="#" horiz-adv-x="1351" d="M141 0l146 348h-142l58 236h182l104 252h-225l58 235h266l147 348h262l-147 -348h227l148 348h262l-148 -348h144l-58 -235h-184l-104 -252h227l-57 -236h-269l-145 -348h-262l145 348h-227l-146 -348h-262zM647 584h227l105 252h-227z" /> +<glyph unicode="$" d="M139 139l125 226q23 -16 55.5 -34t73.5 -32t88.5 -24.5t96.5 -10.5q43 0 87 5t78.5 20.5t56 45.5t21.5 79q0 33 -14 57.5t-39 45t-56.5 37.5t-64.5 34l-53 26q-131 66 -189.5 164.5t-58.5 204.5q0 68 24.5 132.5t75 117.5t129 89t187.5 48l55 219h258l-57 -225 q78 -16 142.5 -44t105.5 -54l-123 -217q-53 41 -129 62.5t-148 21.5q-88 0 -151.5 -33t-63.5 -103q0 -29 8.5 -51t28 -42.5t52 -42t83.5 -46.5q59 -31 113.5 -64.5t96.5 -78.5t67.5 -102.5t25.5 -135.5q0 -96 -30.5 -167.5t-87 -123t-135 -81t-175.5 -39.5l-59 -246h-258 l61 250q-111 16 -188.5 51t-114.5 61z" /> +<glyph unicode="%" horiz-adv-x="1781" d="M246 958q0 117 34.5 208t93 154.5t134.5 97.5t156 34q68 0 124 -18.5t97 -56.5t63.5 -94t22.5 -132q0 -117 -35 -208t-93.5 -154.5t-134 -97.5t-155.5 -34q-68 0 -124 18.5t-97 56.5t-63.5 94.5t-22.5 131.5zM315 0l1143 1419h295l-1143 -1419h-295zM471 967 q0 -55 30.5 -84t73.5 -29q33 0 64 19.5t54.5 57.5t37.5 91t14 121q0 55 -27.5 84.5t-70.5 29.5q-33 0 -64.5 -20t-56 -57t-40 -91.5t-15.5 -121.5zM1098 268q0 117 34.5 208t93 154.5t134.5 97.5t156 34q68 0 124 -18.5t97 -56.5t63.5 -94t22.5 -132q0 -117 -35 -208 t-93.5 -154.5t-134 -97.5t-155.5 -34q-68 0 -124 18.5t-97 56.5t-63.5 94.5t-22.5 131.5zM1323 276q0 -55 30.5 -83.5t73.5 -28.5q33 0 64 19.5t54.5 57.5t37.5 91t14 121q0 55 -27.5 84.5t-70.5 29.5q-33 0 -64.5 -20.5t-56 -57t-40 -91t-15.5 -122.5z" /> +<glyph unicode="&" horiz-adv-x="1357" d="M164 322q0 154 80 265t258 191l35 17q-41 68 -60.5 134t-19.5 130q0 82 31.5 154.5t92 125t145.5 83t192 30.5q88 0 155.5 -23.5t111.5 -62.5t66.5 -91t22.5 -110q0 -51 -18.5 -106t-54.5 -108.5t-91 -100.5t-129 -80l-76 -35l172 -229q51 84 94 207l269 -35 q-88 -223 -207 -377q53 -76 95 -151.5t77 -149.5h-309q-12 27 -27.5 55.5t-32.5 59.5q-195 -133 -444 -133q-109 0 -189.5 28.5t-134 76.5t-79 108.5t-25.5 126.5zM467 381q0 -66 42 -114t122 -48q53 0 122.5 17.5t147.5 70.5l-239 316l-31 -15q-86 -39 -125 -102.5 t-39 -124.5zM727 1051q0 -57 53 -146l25 10q98 45 152.5 97.5t54.5 124.5q0 39 -29 68.5t-90 29.5t-113.5 -46t-52.5 -138z" /> +<glyph unicode="'" horiz-adv-x="561" d="M369 954q8 119 22.5 236t36.5 217l37 149h301l-37 -151q-23 -98 -67 -215t-91 -236h-202z" /> +<glyph unicode="(" horiz-adv-x="729" d="M201 276q0 184 46 366.5t129 353.5t198.5 326t254.5 282l197 -138q-117 -127 -213 -267t-165.5 -291.5t-108.5 -312.5t-39 -327q0 -129 24.5 -255t77.5 -255l-225 -137q-92 154 -134 317.5t-42 337.5z" /> +<glyph unicode=")" horiz-adv-x="729" d="M-49 -240q117 125 214 265.5t165.5 293t107.5 313.5t39 326q0 129 -24.5 255t-77.5 255l225 138q92 -154 134 -318t42 -338q0 -184 -46 -366.5t-129 -353.5t-198.5 -325.5t-255.5 -281.5z" /> +<glyph unicode="*" horiz-adv-x="1028" d="M266 1008l82 254l49 -17q25 -8 57.5 -25.5t64.5 -39t61.5 -43t52.5 -39.5q-10 27 -21.5 62.5t-21.5 72.5t-17.5 72.5t-7.5 62.5v51h266v-51q0 -27 -7 -62.5t-17 -72.5t-21.5 -72.5t-21.5 -62.5q20 18 51 39.5t62.5 43t64.5 39t57 25.5l50 17l81 -254l-49 -17 q-27 -8 -61.5 -12t-73.5 -5t-75.5 -1h-65.5q25 -16 54.5 -38t59 -45.5t56 -48t43.5 -46.5l33 -43l-217 -154l-31 41q-16 20 -31.5 53t-30 69t-24.5 70.5t-19 63.5q-8 -29 -18 -63.5t-24.5 -70.5t-30 -69t-31.5 -53l-31 -41l-217 154l33 43q16 23 43 47t56.5 47.5t59 45 t54.5 38.5h-66t-75.5 1t-73.5 5t-62 12z" /> +<glyph unicode="+" d="M195 483l63 256h342l90 379h279l-90 -379h342l-64 -256h-342l-90 -379h-279l91 379h-342z" /> +<glyph unicode="," horiz-adv-x="514" d="M-20 -274q78 135 131 280.5t63 304.5h320q-6 -178 -89 -337.5t-202 -307.5z" /> +<glyph unicode="-" horiz-adv-x="702" d="M150 473l67 277h594l-68 -277h-593z" /> +<glyph unicode="." horiz-adv-x="516" d="M123 139q0 47 17.5 86t46 66.5t65.5 43t76 15.5q72 0 120 -40t48 -126q0 -47 -17.5 -86t-46.5 -66.5t-65.5 -43t-75.5 -15.5q-72 0 -120 40t-48 126z" /> +<glyph unicode="/" horiz-adv-x="892" d="M-184 -379l1147 1983h309l-1145 -1983h-311z" /> +<glyph unicode="0" d="M197 391q0 233 52 428t145 336t224.5 219t290.5 78q100 0 170 -36t114 -95t63.5 -134t19.5 -155q0 -233 -52.5 -427.5t-145.5 -336t-224 -219.5t-291 -78q-100 0 -169.5 36t-113.5 95.5t-63.5 134t-19.5 154.5zM477 434q0 -106 32.5 -153.5t100.5 -47.5q66 0 121 39 t97 102.5t74 144.5t52.5 165t30.5 164t10 141q0 104 -31.5 153.5t-97.5 49.5q-68 0 -123 -39t-98 -102.5t-74.5 -145.5t-52 -166t-31 -163.5t-10.5 -141.5z" /> +<glyph unicode="1" d="M410 1124q66 25 137 56.5t142 69.5t138.5 80t122.5 89h213l-342 -1419h-305l246 1022q-72 -41 -156 -75t-160 -58z" /> +<glyph unicode="2" d="M123 0q18 129 63 223t112 171t150.5 143.5t182.5 142.5q92 72 156.5 124t104.5 96t58.5 83t18.5 82q0 53 -38 89t-97 36q-84 0 -164 -36t-174 -107l-105 223q123 100 246 141t254 41q82 0 152.5 -26.5t123 -72.5t81 -107.5t28.5 -131.5q0 -78 -16.5 -139.5t-55.5 -118.5 t-103.5 -116.5t-158.5 -133.5q-55 -43 -111.5 -82t-110.5 -80t-105.5 -87t-96.5 -103h610l-61 -254h-944z" /> +<glyph unicode="3" d="M113 68l110 241q59 -41 147.5 -66.5t180.5 -25.5q57 0 111.5 12.5t95.5 41t65.5 73.5t24.5 111q0 84 -68.5 127t-183.5 43h-131l59 241h148q43 0 90 8.5t86 30t64.5 57t25.5 93.5q0 72 -49 105.5t-129 33.5q-63 0 -140 -22.5t-159 -65.5l-78 229q100 57 206.5 87 t221.5 30q109 0 190.5 -29.5t136 -79t81 -112t26.5 -127.5q0 -53 -17.5 -105.5t-51 -98.5t-85.5 -83.5t-120 -62.5q86 -41 133 -126t47 -186q0 -84 -35 -168t-110.5 -151.5t-192.5 -109.5t-281 -42q-233 0 -419 97z" /> +<glyph unicode="4" d="M137 317l51 226q66 90 160 203.5t205 232.5t229.5 233.5t233.5 206.5h291l-207 -856h149l-59 -246h-152l-77 -317h-291l75 317h-608zM481 563h332l119 496q-53 -51 -111.5 -110.5t-118 -124t-116 -131t-105.5 -130.5z" /> +<glyph unicode="5" d="M129 68l113 247q72 -43 153.5 -65.5t157.5 -22.5q147 0 225 55.5t78 172.5q0 49 -26.5 89t-86 67.5t-159 43t-242.5 15.5q68 190 129 383.5t109 365.5h757l-61 -254h-506q-20 -74 -44 -148.5t-42 -125.5q123 -10 212 -46t147.5 -91.5t87 -126t28.5 -150.5 q0 -115 -38 -209t-113.5 -159.5t-188 -101.5t-260.5 -36q-43 0 -98 6.5t-113.5 17.5t-115 29.5t-103.5 43.5z" /> +<glyph unicode="6" d="M215 471q0 180 61.5 353t188.5 308.5t321.5 218.5t460.5 83h38t44 -2l-37 -242q-127 -4 -236.5 -18.5t-200.5 -53.5t-159.5 -104.5t-113.5 -169.5q53 29 123.5 42t132.5 13q76 0 142.5 -23.5t116.5 -71.5t78.5 -120t28.5 -166q0 -133 -43 -234.5t-116.5 -171t-172 -105.5 t-206.5 -36q-96 0 -178 33t-142.5 95.5t-95.5 155.5t-35 216zM506 465q0 -98 45 -169t139 -71q98 0 160.5 72t62.5 201q0 98 -53 135t-127 37q-51 0 -103 -13.5t-98 -31.5q-27 -78 -26 -160z" /> +<glyph unicode="7" d="M276 0q39 152 113 314.5t166 317t194.5 292t198.5 237.5h-616l63 258h994l-54 -221q-78 -66 -185.5 -190.5t-216 -285.5t-202.5 -346.5t-145 -375.5h-310z" /> +<glyph unicode="8" d="M190 322q0 61 17.5 117.5t55.5 109.5t97.5 103t143.5 102q-49 47 -83 107.5t-34 146.5q0 80 29.5 159.5t92 143t157 102.5t223.5 39q86 0 159.5 -24.5t127 -68.5t84 -107.5t30.5 -139.5q0 -45 -10 -95t-41 -100.5t-87 -101.5t-148 -96q35 -25 65.5 -53.5t53 -65.5 t35.5 -82t13 -102q0 -92 -35.5 -173t-104 -141.5t-171 -95.5t-233.5 -35q-76 0 -154 17.5t-140.5 59.5t-102.5 109t-40 165zM483 358q0 -72 50.5 -107.5t121.5 -35.5q43 0 83 13.5t71 38t49.5 60.5t18.5 81q0 41 -14.5 72.5t-40 58t-59.5 48t-73 42.5q-63 -31 -103 -65 t-63.5 -68.5t-32 -69.5t-8.5 -68zM668 1026q0 -66 41 -111t98 -79q119 55 159 115.5t40 117.5q0 66 -41 102.5t-113 36.5q-84 0 -134 -53t-50 -129z" /> +<glyph unicode="9" d="M158 -6l37 242q127 2 236.5 17t200.5 54t159.5 104.5t113.5 170.5q-53 -29 -123.5 -42.5t-132.5 -13.5q-76 0 -142.5 23.5t-116.5 72t-78.5 119t-28.5 166.5q0 131 43 233.5t116.5 172t172 105.5t206.5 36q94 0 177 -32.5t143.5 -95t95.5 -156t35 -216.5 q0 -180 -61.5 -353t-188.5 -308t-321.5 -218t-460.5 -83h-38t-44 2zM573 928q0 -98 53.5 -135t127.5 -37q51 0 103 13t97 32q27 78 27 160q0 98 -45 168.5t-139 70.5q-98 0 -161 -71.5t-63 -200.5z" /> +<glyph unicode=":" horiz-adv-x="516" d="M123 139q0 47 17.5 86t46 66.5t65.5 43t76 15.5q72 0 120 -40t48 -126q0 -47 -17.5 -86t-46.5 -66.5t-65.5 -43t-75.5 -15.5q-72 0 -120 40t-48 126zM277 866q0 47 17.5 86t46 66.5t65.5 43t76 15.5q72 0 120 -40t48 -126q0 -47 -17.5 -86t-46.5 -66.5t-65.5 -43 t-75.5 -15.5q-72 0 -120 40t-48 126z" /> +<glyph unicode=";" horiz-adv-x="516" d="M-12 -274q78 135 131 280.5t63 304.5h320q-6 -178 -89 -337.5t-202 -307.5zM277 866q0 47 17.5 86t46 66.5t65.5 43t76 15.5q72 0 120 -40t48 -126q0 -47 -17.5 -86t-46.5 -66.5t-65.5 -43t-75.5 -15.5q-72 0 -120 40t-48 126z" /> +<glyph unicode="<" d="M193 500l55 239l971 371l20 -254l-709 -246l582 -268l-129 -227z" /> +<glyph unicode="=" d="M152 258l61 256h963l-62 -256h-962zM260 707l62 256h962l-61 -256h-963z" /> +<glyph unicode=">" d="M139 371l709 245l-582 269l129 225l791 -385l-56 -240l-970 -370z" /> +<glyph unicode="?" horiz-adv-x="880" d="M252 139q0 47 17.5 86t46 66.5t65.5 43t76 15.5q72 0 120 -40t48 -126q0 -47 -17.5 -86t-46.5 -66.5t-65.5 -43t-75.5 -15.5q-72 0 -120 40t-48 126zM350 453q0 63 19.5 116.5t53.5 98.5t79 86t96 80q61 47 104 81.5t71 64.5t41 56.5t13 55.5q0 53 -37.5 77.5t-95.5 24.5 q-37 0 -78 -7t-79.5 -19.5t-73.5 -27t-62 -28.5l-39 240q80 45 183.5 72.5t208.5 27.5q74 0 141.5 -18.5t118.5 -56.5t81.5 -94t30.5 -130q0 -88 -27.5 -153.5t-70.5 -117t-97 -93t-108 -82.5q-78 -59 -137 -119t-65 -135h-271z" /> +<glyph unicode="@" horiz-adv-x="1927" d="M205 365q0 266 91 472.5t242.5 347t346 213t403.5 72.5q141 0 270.5 -39.5t228.5 -121.5t158.5 -207t59.5 -297q0 -137 -34 -271.5t-105.5 -240t-182 -171t-262.5 -65.5q-53 0 -100 20.5t-78 59.5q-72 -41 -140.5 -60.5t-146.5 -19.5q-162 0 -252 106.5t-90 280.5 q0 100 41 209t121 198t200 146.5t279 57.5q123 0 203 -21.5t135 -44.5l-145 -606q-4 -10 -4 -18.5v-16.5q0 -35 22.5 -50t57.5 -15q53 0 98 37.5t78 104.5t51 158t18 197q0 129 -39.5 222.5t-109.5 151.5t-162 86t-198 28q-147 0 -294 -56.5t-262.5 -168t-187.5 -280.5 t-72 -392q0 -145 46.5 -241.5t124 -154t181 -82t220.5 -24.5q72 0 160 10t161 25l-12 -203q-86 -16 -177 -26.5t-169 -10.5q-180 0 -323.5 49t-244 140.5t-153.5 221.5t-53 290zM885 469q0 -92 32.5 -140t110.5 -48q61 0 143 41q2 16 6.5 36.5t10.5 49.5l100 421 q-35 8 -84 9q-84 0 -143.5 -35t-99 -89.5t-58 -120t-18.5 -124.5z" /> +<glyph unicode="A" horiz-adv-x="1462" d="M31 0q133 229 248.5 423.5t223 367t210 327t209.5 301.5h284q33 -147 62.5 -326.5t55.5 -366.5t47.5 -374.5t39.5 -351.5h-321q-4 80 -9.5 156.5t-11.5 152.5h-532q-41 -76 -86 -152.5t-86 -156.5h-334zM666 559h383q-10 125 -22 266.5t-32 282.5q-86 -137 -169 -272.5 t-160 -276.5z" /> +<glyph unicode="B" horiz-adv-x="1347" d="M154 25l327 1372q117 23 245 31t235 8q123 0 212 -26t145 -69t84 -101t28 -124q0 -45 -9.5 -94t-37 -97t-75.5 -91t-126 -78q92 -41 135 -112t43 -157q0 -98 -39 -189t-125 -161.5t-223 -112.5t-334 -42q-123 0 -252 10t-233 33zM522 252q33 -6 83 -9t93 -3q61 0 122 9 t109 33.5t78.5 67.5t30.5 111q0 29 -11 57.5t-35.5 51t-64.5 37t-96 14.5h-221zM670 860h200q123 0 183.5 53.5t60.5 126.5q0 39 -17.5 67t-46 44t-65.5 23.5t-76 7.5q-43 0 -92 -3t-74 -8z" /> +<glyph unicode="C" horiz-adv-x="1306" d="M252 573q0 160 56.5 318t166 281.5t268 201.5t365.5 78q98 0 193.5 -22.5t199.5 -79.5l-115 -248q-86 45 -153.5 61.5t-145.5 16.5q-117 0 -210 -47.5t-159.5 -128t-101 -187t-34.5 -225.5q0 -180 78.5 -262t226.5 -82q98 0 181 20.5t155 53.5l34 -261 q-84 -41 -186 -65.5t-250 -24.5q-127 0 -232.5 42t-180 120t-115.5 189.5t-41 250.5z" /> +<glyph unicode="D" horiz-adv-x="1470" d="M154 25l329 1370q117 23 224.5 32t193.5 9q152 0 271.5 -41t202.5 -117t126 -180.5t43 -231.5q0 -207 -67.5 -370.5t-193.5 -277.5t-306 -175t-408 -61q-86 0 -198.5 10t-216.5 33zM526 256q23 -2 46.5 -3t64.5 -1q133 0 240.5 41t182.5 117.5t116 188.5t41 251 q0 72 -18.5 130t-60.5 100t-108.5 64.5t-161.5 22.5q-61 0 -125 -6z" /> +<glyph unicode="E" horiz-adv-x="1216" d="M154 0l340 1419h927l-65 -262h-608l-66 -287h537l-64 -258h-537l-81 -348h655l-66 -264h-972z" /> +<glyph unicode="F" horiz-adv-x="1177" d="M154 0l340 1419h919l-65 -264h-600l-72 -303h530l-63 -264h-531l-141 -588h-317z" /> +<glyph unicode="G" horiz-adv-x="1409" d="M252 573q0 160 56.5 318t167 281.5t274 201.5t376.5 78q98 0 208 -28.5t198 -86.5l-115 -247q-72 45 -152.5 67.5t-158.5 22.5q-125 0 -222.5 -47.5t-165 -128t-102 -187t-34.5 -225.5q0 -180 75 -263t222 -83q41 0 73.5 3t59.5 7l118 494h320l-172 -711 q-57 -23 -165.5 -44.5t-276.5 -21.5q-143 0 -253 42t-183.5 120t-110.5 188.5t-37 249.5z" /> +<glyph unicode="H" horiz-adv-x="1462" d="M154 0l340 1419h319l-131 -545h504l131 545h319l-342 -1419h-319l145 604h-504l-145 -604h-317z" /> +<glyph unicode="I" horiz-adv-x="638" d="M154 0l340 1419h319l-342 -1419h-317z" /> +<glyph unicode="J" horiz-adv-x="1056" d="M41 96l141 238q49 -35 107.5 -61.5t138.5 -26.5q57 0 99 13t73 43t52.5 77t37.5 115l221 925h320l-238 -989q-25 -104 -65.5 -189t-106 -145.5t-162 -92.5t-233.5 -32q-111 0 -210 34t-175 91z" /> +<glyph unicode="K" horiz-adv-x="1355" d="M154 0l340 1419h319l-125 -512q160 137 301 263t264 249h379q-186 -174 -369.5 -345t-385.5 -333q129 -141 247.5 -323t212.5 -418h-348q-29 70 -68.5 149.5t-88 159.5t-103.5 154t-113 131l-145 -594h-317z" /> +<glyph unicode="L" horiz-adv-x="1155" d="M154 0l340 1419h319l-276 -1149h628l-65 -270h-946z" /> +<glyph unicode="M" horiz-adv-x="1798" d="M113 0q47 168 103 358.5t116.5 380t120 365.5t112.5 315h287q12 -55 31.5 -156.5t41 -223t44 -249.5t41.5 -235q70 106 151.5 229t161.5 242t151.5 222.5t122.5 170.5h283q-14 -141 -37.5 -317t-53.5 -364.5t-62.5 -379t-65.5 -358.5h-311q43 209 91 451.5t89 490.5 q-53 -84 -118.5 -187.5t-131.5 -209t-127 -201.5t-106 -164h-234q-10 61 -24.5 155.5t-32 200t-36 213t-34.5 193.5q-80 -248 -144.5 -490.5t-119.5 -451.5h-309z" /> +<glyph unicode="N" horiz-adv-x="1519" d="M154 0l340 1419h243q47 -72 101.5 -169t112 -209.5t114.5 -234.5t109 -241l202 854h318l-342 -1419h-240q-86 242 -191.5 483.5t-228.5 456.5l-225 -940h-313z" /> +<glyph unicode="O" horiz-adv-x="1550" d="M252 567q0 160 55 317.5t158.5 283.5t253 205t338.5 79q125 0 229.5 -41t180 -117.5t117.5 -187.5t42 -250q0 -160 -54 -318.5t-157.5 -284.5t-253.5 -204t-340 -78q-125 0 -229.5 41t-180 118t-117.5 187.5t-42 249.5zM580 590q0 -154 64.5 -249t209.5 -95q94 0 175 49 t141.5 131t94 187.5t33.5 220.5q0 154 -64.5 249t-209.5 95q-94 0 -175 -49.5t-141.5 -131.5t-94 -188.5t-33.5 -218.5z" /> +<glyph unicode="P" horiz-adv-x="1308" d="M154 0l333 1399q111 20 210.5 28.5t187.5 8.5q129 0 232.5 -28t175 -80t110.5 -128t39 -170q0 -154 -59.5 -260t-164 -172t-246 -94.5t-306.5 -28.5h-80l-115 -475h-317zM651 743h80q86 0 156.5 13.5t121 44t78 79t27.5 117.5q0 92 -66.5 131t-189.5 39q-35 0 -59.5 -2 t-48.5 -4z" /> +<glyph unicode="Q" horiz-adv-x="1548" d="M252 567q0 160 55 317.5t158.5 283.5t253 205t338.5 79q125 0 229.5 -41t180 -117.5t117.5 -187.5t42 -250q0 -141 -43 -283.5t-126 -262.5t-202.5 -206t-273.5 -116v-6q0 -45 29.5 -72t80 -41t116 -20.5t136.5 -10.5l-94 -221q-162 6 -270.5 32.5t-175 70.5t-95 107.5 t-28.5 143.5v15q-197 41 -312.5 190.5t-115.5 390.5zM580 590q0 -154 64.5 -249t209.5 -95q94 0 175 49t141.5 131t94 187.5t33.5 220.5q0 154 -64.5 249t-209.5 95q-94 0 -175 -49.5t-141.5 -131.5t-94 -188.5t-33.5 -218.5z" /> +<glyph unicode="R" horiz-adv-x="1343" d="M154 0l333 1399q111 20 215.5 28.5t190.5 8.5q137 0 239.5 -33t170 -88t100.5 -130t33 -157q0 -68 -15.5 -133.5t-57.5 -124.5t-112.5 -109.5t-181.5 -85.5q57 -106 117.5 -257.5t113.5 -317.5h-342q-47 141 -95 279.5t-107 238.5h-160l-125 -518h-317zM657 770h109 q98 0 165.5 18.5t108.5 49t58.5 70.5t17.5 81q0 35 -10 66.5t-37 56.5t-71.5 39t-114.5 14q-35 0 -72 -2t-61 -4z" /> +<glyph unicode="S" horiz-adv-x="1144" d="M82 102l135 244q25 -16 59.5 -34.5t78.5 -35t93.5 -27.5t102.5 -11q47 0 94 7t84 25.5t60.5 52t23.5 87.5q0 41 -22.5 70.5t-57.5 54t-78 45t-86 45.5q-55 33 -104 69.5t-84 82.5t-55.5 102.5t-20.5 130.5q0 94 36 175t106.5 140t177 93t249.5 34q66 0 127.5 -11 t114.5 -27.5t97 -38t75 -42.5l-133 -235q-51 39 -125 65.5t-160 26.5q-47 0 -90 -8t-75.5 -27.5t-52 -50.5t-19.5 -76q0 -41 15.5 -68.5t40 -48t57 -37t69.5 -34.5q63 -33 122.5 -70t104.5 -85t72 -109.5t27 -145.5q0 -117 -43 -203t-121 -143t-185.5 -85t-238.5 -28 q-86 0 -161 14.5t-135 34t-104 42t-71 40.5z" /> +<glyph unicode="T" horiz-adv-x="1216" d="M297 1151l65 268h1151l-65 -268h-416l-276 -1151h-320l277 1151h-416z" /> +<glyph unicode="U" horiz-adv-x="1398" d="M246 397q0 106 30 228l191 794h319l-200 -839q-20 -74 -21 -150q0 -41 9.5 -73.5t33 -57.5t63.5 -38t99 -13q123 0 186.5 76.5t98.5 218.5l209 876h319l-215 -903q-70 -289 -226.5 -417t-414.5 -128q-133 0 -224 32t-148.5 88t-83 135t-25.5 171z" /> +<glyph unicode="V" horiz-adv-x="1409" d="M348 1419h342q6 -117 15.5 -251t21.5 -270t25.5 -270t27.5 -251q63 106 136 233t148 264.5t147.5 276.5t134.5 268h340q-78 -147 -170.5 -317t-198 -352.5t-223 -372t-246.5 -377.5h-299q-33 174 -62.5 360.5t-56.5 370.5t-47.5 359.5t-34.5 328.5z" /> +<glyph unicode="W" horiz-adv-x="1916" d="M328 756q0 166 6 330.5t16 332.5h322q-10 -180 -19.5 -353t-9.5 -359v-141.5t4 -143.5q57 100 120.5 213t125 225.5t117 218t94.5 189.5h262q4 -84 11 -190.5t16.5 -220.5t19.5 -226.5t21 -208.5q53 104 108 225t110.5 250t110 262t103.5 260h338q-160 -389 -326 -740 t-356 -679h-299q-16 113 -29.5 216t-25 203.5t-20.5 203t-18 213.5q-117 -217 -230.5 -425t-242.5 -411h-299q-16 190 -23 376.5t-7 379.5z" /> +<glyph unicode="X" horiz-adv-x="1370" d="M31 0l645 772l-289 647h352l170 -438q92 111 178.5 224.5t157.5 213.5h350q-59 -84 -125.5 -173t-137 -178t-142.5 -174t-139 -161q43 -96 80.5 -182t72.5 -173t68 -179.5t67 -198.5h-342q-29 88 -52 155.5t-44.5 126t-44 110.5t-49.5 110l-412 -502h-364z" /> +<glyph unicode="Y" horiz-adv-x="1335" d="M348 1419h340q33 -147 72 -288t86 -295q59 76 113.5 146.5t105.5 141t101.5 143t103.5 152.5h352q-86 -121 -166 -229.5t-159.5 -212t-163.5 -205.5t-179 -211l-135 -561h-319l135 561q-86 217 -155.5 424t-131.5 434z" /> +<glyph unicode="Z" horiz-adv-x="1306" d="M92 0l47 190q82 109 192.5 237t230.5 257t241 250t223 217h-627l66 268h1046l-53 -221q-82 -70 -196.5 -177.5t-239.5 -233t-250 -261t-227 -258.5h712l-65 -268h-1100z" /> +<glyph unicode="[" horiz-adv-x="763" d="M61 -379l476 1983h555l-60 -244h-264l-358 -1495h264l-60 -244h-553z" /> +<glyph unicode="\" horiz-adv-x="831" d="M307 1604h293l211 -1983h-293z" /> +<glyph unicode="]" horiz-adv-x="763" d="M-78 -379l60 244h262l358 1495h-264l59 244h555l-477 -1983h-553z" /> +<glyph unicode="^" d="M213 739l575 688h242l240 -716l-266 -113l-160 506l-414 -498z" /> +<glyph unicode="_" horiz-adv-x="1030" d="M-61 -379l57 254h1024l-59 -254h-1022z" /> +<glyph unicode="`" horiz-adv-x="505" d="M315 1475l189 161l276 -338l-131 -118z" /> +<glyph unicode="a" horiz-adv-x="1204" d="M205 418q0 141 50 266t139 218t210 146.5t262 53.5q18 0 64.5 -2t106 -9.5t125 -23.5t124.5 -45l-133 -557q-20 -82 -20 -164q-1 -35 3 -71q12 -118 48 -210l-273 -38q-12 25 -22 47t-21 51q-57 -47 -126.5 -78t-155.5 -31q-102 0 -175 36t-119 96.5t-66.5 141.5 t-20.5 173zM508 440q0 -98 32.5 -155.5t121.5 -57.5q47 0 84.5 18.5t80.5 61.5q4 51 13.5 107.5t19.5 103.5l80 324q-27 4 -48.5 6t-51.5 2q-70 0 -130.5 -35t-105.5 -91t-70.5 -130t-25.5 -154z" /> +<glyph unicode="b" horiz-adv-x="1177" d="M143 51l355 1489l317 49l-127 -528q41 18 82 28.5t88 10.5q98 0 170 -35t119 -94.5t69.5 -139t22.5 -172.5q0 -141 -52 -267t-142.5 -219t-213 -147.5t-266.5 -54.5q-18 0 -64 1t-105.5 9.5t-126 25t-126.5 44.5zM489 231q12 -2 21.5 -4t20 -3t24.5 -1h37q72 0 135.5 35 t109.5 93.5t72.5 132t26.5 153.5q0 98 -33 153.5t-121 55.5q-29 0 -74.5 -10.5t-82.5 -42.5z" /> +<glyph unicode="c" horiz-adv-x="983" d="M205 430q0 139 45 262t129 215t203.5 145.5t267.5 53.5q92 0 164.5 -17.5t132.5 -46.5l-105 -237q-41 16 -85 29.5t-107 13.5q-154 0 -242 -103.5t-88 -281.5q0 -104 45 -169t166 -65q59 0 114.5 12.5t98.5 30.5l23 -243q-57 -23 -126 -40.5t-167 -17.5q-127 0 -215 37 t-145.5 99.5t-83 146.5t-25.5 176z" /> +<glyph unicode="d" horiz-adv-x="1208" d="M205 416q0 139 50 263t138 216t209 145.5t264 53.5q37 0 69 -4.5t64 -12.5l111 463l317 49l-270 -1124q-20 -82 -20 -164q-1 -35 3 -71q12 -118 48 -210l-273 -38q-12 25 -22 47t-21 51q-57 -47 -127.5 -78t-156.5 -31q-102 0 -175 35t-119 95.5t-67.5 141.5t-21.5 173z M508 438q0 -98 33.5 -154.5t122.5 -56.5q47 0 85.5 18.5t81.5 61.5q4 51 13.5 107.5t19.5 103.5l76 316q-12 2 -21.5 4t-18.5 3t-23.5 1h-36.5q-72 0 -133.5 -34t-105.5 -91.5t-68.5 -130t-24.5 -148.5z" /> +<glyph unicode="e" horiz-adv-x="1085" d="M205 422q0 131 46 254t130 218t204 153.5t265 58.5q72 0 133 -20.5t107.5 -59.5t72 -95.5t25.5 -127.5q0 -115 -51.5 -195t-142.5 -130t-216 -72.5t-272 -22.5q14 -86 62 -122t153 -36q66 0 133.5 11.5t126.5 33.5l23 -239q-57 -23 -146.5 -41.5t-193.5 -18.5 q-127 0 -214.5 36t-141.5 97.5t-78.5 143.5t-24.5 174zM514 592q127 4 205 21.5t121 42t57 52.5t14 60q0 96 -110 96q-104 0 -183 -74.5t-104 -197.5z" /> +<glyph unicode="f" horiz-adv-x="897" d="M-74 -348q53 49 98.5 120.5t81 151.5t61.5 163t42 155l213 893q51 217 184 335.5t375 118.5q92 0 160.5 -19.5t103.5 -35.5l-102 -240q-37 18 -85 27.5t-89 9.5q-113 0 -167 -57t-75 -144l-12 -53h360l-61 -250h-359l-125 -522q-70 -293 -151.5 -455.5t-179.5 -236.5z " /> +<glyph unicode="g" horiz-adv-x="1161" d="M68 -303l102 242q63 -29 132 -49.5t169 -20.5q131 0 197.5 58.5t87.5 150.5l8 39q-41 -20 -87 -32.5t-97 -12.5q-96 0 -166 29.5t-114 83t-65.5 126t-21.5 158.5q0 156 57.5 275.5t152.5 199.5t219 121t259 41q98 0 194.5 -20.5t188.5 -63.5l-211 -887 q-31 -133 -81 -230.5t-124.5 -162t-179 -96t-244.5 -31.5q-129 0 -217 23.5t-159 58.5zM516 492q0 -37 6 -69t22.5 -55.5t45 -38t72.5 -14.5q29 0 76.5 10.5t86.5 47.5l113 469q-35 8 -86 8q-78 0 -139.5 -27.5t-105.5 -75t-67.5 -114t-23.5 -141.5z" /> +<glyph unicode="h" horiz-adv-x="1157" d="M143 0l369 1540l317 49l-124 -514q41 8 82.5 14.5t82.5 6.5q88 0 151.5 -26t104.5 -72t61.5 -109.5t20.5 -136.5q0 -86 -20 -170l-139 -582h-306l136 569q8 35 15 74t7 74q0 53 -27.5 91t-105.5 38q-33 0 -62.5 -4t-58.5 -11l-198 -831h-306z" /> +<glyph unicode="i" horiz-adv-x="579" d="M143 0l256 1077h306l-259 -1077h-303zM428 1362q0 43 17.5 81t46 65.5t66.5 44t81 16.5q63 0 114.5 -38t51.5 -116q0 -43 -17.5 -81t-46 -65.5t-66.5 -44t-81 -16.5q-63 0 -114.5 38t-51.5 116z" /> +<glyph unicode="j" horiz-adv-x="593" d="M-184 -340l78 242q29 -10 56 -16.5t62 -6.5q72 0 111 43t55 125l248 1030h305l-250 -1038q-49 -213 -153 -315.5t-297 -102.5q-57 0 -113.5 11.5t-101.5 27.5zM455 1362q0 43 17 81t46 65.5t67 44t81 16.5q63 0 114 -38t51 -116q0 -43 -17 -81t-46 -65.5t-66.5 -44 t-80.5 -16.5q-63 0 -114.5 38t-51.5 116z" /> +<glyph unicode="k" horiz-adv-x="1148" d="M143 0l369 1540l317 49l-217 -901q123 98 231.5 200.5t186.5 188.5h344q-115 -127 -238.5 -248.5t-283.5 -259.5q43 -53 87 -122.5t84 -145.5t73.5 -153.5t56.5 -147.5h-340q-18 53 -46 116.5t-61.5 126t-70.5 122t-74 106.5l-115 -471h-303z" /> +<glyph unicode="l" horiz-adv-x="645" d="M231 453l261 1087l317 49l-285 -1179q-8 -37 -9 -68t11.5 -54.5t42 -37.5t82.5 -19l-61 -251q-145 0 -228 38q-83 36 -119 102q-35 64 -35 146q0 85 23 187z" /> +<glyph unicode="m" horiz-adv-x="1732" d="M143 0l248 1028q35 10 75 23.5t90 24.5t112.5 18.5t144.5 7.5q98 0 162.5 -24.5t118.5 -73.5q76 43 150.5 70.5t174.5 27.5q96 0 165 -25.5t114 -74t65.5 -115t20.5 -146.5q0 -37 -5 -77.5t-16 -81.5l-139 -582h-305l135 569q6 29 13.5 65t7.5 71q0 57 -27 99t-105 42 q-43 0 -81.5 -15.5t-69.5 -31.5q4 -16 4 -30.5v-27.5q0 -37 -5 -77.5t-15 -81.5l-140 -582h-305l135 569q6 29 13.5 65t7.5 71q0 57 -26.5 99t-104.5 42q-33 0 -55.5 -3t-53.5 -9l-198 -834h-306z" /> +<glyph unicode="n" horiz-adv-x="1161" d="M143 0l248 1028q35 10 77 23.5t94 24.5t116.5 18.5t146.5 7.5q242 0 332 -140q54 -84 54 -205q0 -80 -23 -175l-139 -582h-306l136 569q12 53 19 103q3 24 3 45q0 24 -4 44q-8 38 -38 61.5t-91 23.5q-59 0 -121 -12l-198 -834h-306z" /> +<glyph unicode="o" horiz-adv-x="1175" d="M205 416q0 123 40 245.5t117.5 221t190.5 161t258 62.5q106 0 187 -33t133.5 -92t79 -140t26.5 -179q0 -123 -39 -246t-114.5 -221.5t-189 -161t-263.5 -62.5q-109 0 -189 33t-132 92.5t-78.5 140t-26.5 179.5zM508 446q0 -104 32.5 -160.5t118.5 -56.5q68 0 119 39 t86 98.5t52.5 130t17.5 134.5q0 104 -33 160.5t-119 56.5q-68 0 -119 -39t-85.5 -98.5t-52 -130t-17.5 -134.5z" /> +<glyph unicode="p" horiz-adv-x="1183" d="M51 -379l340 1417q82 25 187.5 44.5t228.5 19.5q115 0 197.5 -35t136 -95.5t79 -141.5t25.5 -173q0 -150 -49 -273.5t-136 -213.5t-209 -140t-265 -50q-70 0 -140 12l-92 -371h-303zM502 238q35 -8 86 -9q80 0 145.5 30t111.5 83t71.5 128t25.5 165q0 88 -39 149.5 t-135 61.5q-66 0 -123 -12z" /> +<glyph unicode="q" horiz-adv-x="1173" d="M205 418q0 160 54 286.5t149.5 215t222.5 135.5t274 47q190 0 391 -80l-333 -1401h-306l95 397q-88 -38 -180 -38h-5q-78 0 -144.5 29.5t-114.5 86t-75.5 138.5t-27.5 184zM508 440q0 -117 39 -162t106 -45q39 0 77 11.5t85 40.5l135 557q-20 4 -42.5 6t-45.5 2 q-84 0 -149.5 -33t-111.5 -89t-69.5 -131t-23.5 -157z" /> +<glyph unicode="r" horiz-adv-x="872" d="M143 0l246 1020q88 29 197.5 54.5t247.5 25.5q51 0 113.5 -9.5t109.5 -29.5l-90 -246q-41 10 -81 19.5t-118 9.5q-29 0 -63.5 -5t-57.5 -12l-198 -827h-306z" /> +<glyph unicode="s" horiz-adv-x="989" d="M102 66l105 233q35 -20 109 -51t178 -31t143 29.5t39 64.5q0 23 -7 39.5t-23.5 30.5t-45.5 29.5t-74 35.5q-51 23 -96 48.5t-79 61.5t-53 82t-19 110q0 166 121.5 262t355.5 96q111 0 196.5 -24.5t139.5 -53.5l-105 -227q-43 23 -110.5 43t-133.5 20q-29 0 -56.5 -3 t-51 -13t-37.5 -28.5t-14 -49.5q0 -41 31.5 -61.5t89.5 -49.5q80 -39 133 -71.5t84.5 -69.5t46 -84t14.5 -110q0 -66 -27.5 -129.5t-87 -112.5t-151.5 -80t-221 -31q-80 0 -144.5 10.5t-114 26t-83 31.5t-52.5 27z" /> +<glyph unicode="t" horiz-adv-x="851" d="M207 299q4 94 29 199l200 848l318 49l-78 -318h340l-62 -250h-338l-90 -376q-12 -47 -15 -88q-1 -7 0 -15q1 -32 11 -56q14 -30 46 -46.5t89 -16.5q49 0 95.5 9.5t93.5 25.5l22 -233q-61 -23 -132.5 -39.5t-170.5 -16.5q-141 0 -219 42t-110 115q-29 65 -29 147v20z" /> +<glyph unicode="u" horiz-adv-x="1189" d="M206 303v21q0 84 21 172l140 581h305l-137 -577q-9 -44 -17 -92q-4 -26 -4 -51q0 -19 2 -37q6 -40 31.5 -65.5t81.5 -25.5q47 0 87 17.5t85 60.5q4 51 13 107.5t20 103.5l133 559h305l-146 -612q-20 -82 -20 -164q0 -35 4 -71q12 -118 47 -210l-272 -38q-23 45 -43 100 q-57 -45 -129 -76t-160 -31q-121 0 -195.5 44t-111.5 117t-40 167z" /> +<glyph unicode="v" horiz-adv-x="1118" d="M256 1077h315q2 -80 6.5 -175t10.5 -191.5t14 -187.5t19 -165q45 61 101 151.5t109.5 189t98.5 197.5t69 181h324q-53 -145 -132 -298.5t-169 -297t-183.5 -268.5t-172.5 -213h-254q-53 205 -96.5 478.5t-59.5 598.5z" /> +<glyph unicode="w" horiz-adv-x="1671" d="M266 1077h299q0 -74 1 -160t4 -178t9.5 -188t16.5 -191q51 86 101.5 179.5t96.5 186.5t86 183t70 168h254q0 -147 5 -329.5t26 -387.5q55 92 102 189.5t87 192t72 180.5t56 155h324q-41 -102 -97.5 -230t-130 -269.5t-165.5 -289t-205 -288.5h-238q-25 168 -37 321.5 t-16 309.5q-39 -84 -87 -171t-98 -170t-97.5 -158t-83.5 -132h-238q-16 86 -33.5 205t-34 259t-30 297t-19.5 316z" /> +<glyph unicode="x" horiz-adv-x="1124" d="M41 0l489 549l-264 528h309l156 -336q70 86 132.5 168t119.5 168h305q-86 -123 -188.5 -255t-237.5 -275q82 -154 139.5 -284t102.5 -263h-301q-37 100 -74 184t-72 156l-297 -340h-319z" /> +<glyph unicode="y" horiz-adv-x="1089" d="M-51 -330l92 240q41 -16 73.5 -25.5t80.5 -9.5q72 0 136 46t107 124q-53 205 -97 459t-60 573h313q2 -80 8 -176t14.5 -193.5t18.5 -189.5t22 -166q98 147 173 327.5t141 397.5h323q-57 -156 -115.5 -291t-122 -256.5t-131 -232.5t-143.5 -219q-55 -80 -114.5 -162 t-132 -147.5t-161.5 -106.5t-206 -41q-72 0 -123 13.5t-96 35.5z" /> +<glyph unicode="z" horiz-adv-x="1077" d="M123 0l43 178q59 74 136 160t160 174t166 169t154 146h-438l62 250h835l-49 -203q-47 -41 -123 -111.5t-164 -155.5t-180 -178t-172 -179h500l-62 -250h-868z" /> +<glyph unicode="{" horiz-adv-x="759" d="M164 492l59 241q63 0 108.5 14.5t76 40t48 60.5t27.5 78l74 309q23 92 61.5 161.5t102 116t157 69t222.5 22.5h41l-60 -244h-51q-49 0 -83 -11.5t-56.5 -33t-35.5 -52t-21 -71.5l-64 -272q-12 -53 -28.5 -98.5t-45 -84.5t-72.5 -69.5t-112 -55.5q72 -33 98.5 -79 t26.5 -105q0 -47 -16 -123l-64 -272q-12 -49 -12 -82q0 -47 28.5 -66.5t98.5 -19.5h51l-59 -244h-41q-180 0 -275.5 56.5t-95.5 205.5q0 61 22 162l60 254q20 98 -16.5 145.5t-153.5 47.5z" /> +<glyph unicode="|" horiz-adv-x="622" d="M61 -379l476 1983h290l-477 -1983h-289z" /> +<glyph unicode="}" horiz-adv-x="759" d="M-104 -379l59 244h51q51 0 84 10t54.5 31.5t35 53.5t23.5 73l63 272q12 53 28.5 98.5t45.5 84t73 69.5t111 55q-72 33 -98.5 79t-26.5 106q0 47 17 123l63 272q12 49 13 82q0 47 -29 66.5t-98 19.5h-52l60 244h41q180 0 275 -56.5t95 -206.5q0 -61 -22 -161l-60 -254 q-20 -98 17 -145.5t153 -47.5l-59 -241q-63 0 -108.5 -14.5t-76 -40t-48 -60.5t-27.5 -78l-74 -309q-23 -92 -61.5 -162t-102 -116t-156.5 -68.5t-222 -22.5h-41z" /> +<glyph unicode="~" d="M168 465q23 70 56.5 135.5t81.5 115.5t110.5 79.5t142.5 29.5q68 0 118 -24.5t91 -53t79 -53t83 -24.5q18 0 33.5 4t32 19.5t35 45t42.5 80.5l195 -57q-29 -78 -64 -143.5t-81 -113.5t-106 -76t-140 -28q-68 0 -118 25t-91 53.5t-79 53t-83 24.5q-18 0 -33.5 -4 t-32 -19.5t-35 -45t-43.5 -80.5z" /> +<glyph unicode="¡" horiz-adv-x="604" d="M66 -358l88 366q41 166 87 309.5t101 290.5h233q-16 -147 -36.5 -290.5t-59.5 -309.5l-88 -366h-325zM330 877q0 47 17.5 85.5t46 66.5t65.5 43t76 15q72 0 119.5 -39.5t47.5 -125.5q0 -47 -17 -86t-46 -67t-65.5 -43t-75.5 -15q-72 0 -120 40t-48 126z" /> +<glyph unicode="¢" d="M299 479q0 131 37 238.5t101.5 189.5t150.5 137.5t184 79.5l72 295h291l-70 -286q90 -18 170 -64l-102 -235q-49 29 -100.5 41t-98.5 12q-70 0 -128 -26.5t-101 -77t-67 -125t-24 -169.5q0 -102 52.5 -140t126.5 -38q59 0 124.5 16.5t118.5 37.5l23 -244 q-59 -25 -123 -40t-125 -22l-68 -282h-290l75 315q-104 43 -166.5 135t-62.5 252z" /> +<glyph unicode="£" d="M213 0q74 166 120 303t77 254h-179l60 250h178l51 197q33 123 89.5 207.5t128 137t154.5 75t173 22.5q92 0 171 -20.5t144 -55.5l-123 -225q-104 47 -194 47q-43 0 -83 -10.5t-74 -38t-61.5 -76.5t-45.5 -127l-33 -133h360l-59 -250h-360q-18 -72 -45 -152.5t-54 -148.5 h555l-61 -256h-889z" /> +<glyph unicode="¤" d="M195 385l147 141q-43 80 -43 185q0 104 43 184l-147 141l192 189l152 -148q43 20 88 28.5t98 8.5q51 0 97 -8t91 -29l152 146l190 -187l-147 -141q43 -80 43 -184t-43 -185l147 -141l-192 -188l-152 147q-43 -20 -88 -28.5t-98 -8.5q-51 0 -97 8.5t-91 28.5l-152 -145z M557 711q0 -88 49 -133.5t119 -45.5t119 45.5t49 133.5t-49 133t-119 45t-119 -45t-49 -133z" /> +<glyph unicode="¥" d="M172 227l47 195h297l33 141h-297l47 195h236q-33 84 -65 171t-60.5 173t-52 167t-40.5 150h320q14 -74 30.5 -138t35 -127.5t39.5 -130t46 -140.5q104 135 196.5 259t191.5 277h331q-115 -172 -237.5 -331.5t-261.5 -329.5h206l-47 -195h-299l-32 -141h299l-48 -195h-299 l-55 -227h-319l55 227h-297z" /> +<glyph unicode="¦" horiz-adv-x="618" d="M49 -379l195 813h291l-197 -813h-289zM328 791l196 813h291l-197 -813h-290z" /> +<glyph unicode="§" horiz-adv-x="1054" d="M74 -135l104 217q125 -70 252 -70q117 0 167 39t50 86q0 33 -19.5 62.5t-54.5 46.5l-153 78q-104 51 -148.5 119.5t-44.5 144.5q0 98 66.5 195.5t177.5 162.5q-57 70 -57 166q0 63 30.5 124.5t90 109t149.5 77t209 29.5q92 0 179 -20.5t157 -61.5l-105 -217 q-63 33 -122.5 47t-112.5 14q-86 0 -136.5 -30.5t-50.5 -77.5q0 -23 16.5 -44.5t57.5 -41.5l154 -78q104 -53 148 -121.5t44 -144.5q0 -98 -61.5 -190.5t-159.5 -151.5l-27 -17q61 -84 62 -172q0 -68 -29.5 -134t-91 -118.5t-157 -85t-224.5 -32.5q-98 0 -196.5 22.5 t-163.5 67.5zM498 637q0 -41 29.5 -81t101.5 -75l88 -43q61 41 98 88t37 99q0 45 -35 88t-112 80l-72 32q-59 -39 -97 -88t-38 -100z" /> +<glyph unicode="¨" horiz-adv-x="1097" d="M473 1368q0 39 14.5 72t38 55.5t53 35.5t60.5 13q57 0 98 -38t41 -101q0 -37 -15 -68.5t-40 -55.5t-54.5 -36t-58.5 -12q-59 0 -98 37t-39 98zM928 1368q0 39 14 72t38 55.5t53.5 35.5t60.5 13q57 0 98 -38t41 -101q0 -37 -15.5 -68.5t-40 -55.5t-54 -36t-58.5 -12 q-59 0 -98 37t-39 98z" /> +<glyph unicode="©" horiz-adv-x="1630" d="M246 711q0 174 58 312t156.5 233.5t227.5 145.5t270 50t270.5 -50t227.5 -145.5t156.5 -233.5t58.5 -312q0 -176 -58.5 -313.5t-156.5 -232.5t-227 -145.5t-271 -50.5q-141 0 -270 50.5t-227.5 145.5t-156.5 232.5t-58 313.5zM455 711q0 -123 36.5 -223.5t103.5 -172 t160 -110.5t203 -39q111 0 204 39t160 110.5t103.5 172t36.5 223.5t-36.5 223t-103.5 172t-160 110.5t-204 38.5t-203.5 -38.5t-159.5 -110.5t-103.5 -172t-36.5 -223zM616 715q0 186 101.5 285.5t267.5 99.5q98 0 158.5 -26.5t83.5 -39.5l-66 -180q-29 16 -64.5 27.5 t-92.5 11.5q-68 0 -109 -43t-41 -125q0 -37 6 -70.5t22.5 -59.5t45 -42t76.5 -16q61 0 102 14t74 27l57 -187q-27 -14 -90.5 -38.5t-155.5 -24.5q-184 0 -279.5 100t-95.5 287z" /> +<glyph unicode="ª" horiz-adv-x="966" d="M307 956q0 86 33 174.5t99.5 159t168 115.5t240.5 45q59 0 124.5 -8t137.5 -29l-90 -381q-20 -70 -26.5 -163t38.5 -210l-192 -26l-27 63q-109 -72 -215 -71q-72 0 -126 26.5t-91 72.5t-55.5 106.5t-18.5 125.5zM524 979q0 -61 32 -105.5t97 -44.5q29 0 59.5 10.5 t63.5 34.5q-2 6 -2 29q0 31 6 63.5t15 63.5l55 213q-14 2 -27.5 3t-25.5 1q-55 0 -104.5 -18.5t-87.5 -54t-59.5 -85t-21.5 -110.5z" /> +<glyph unicode="«" horiz-adv-x="1255" d="M205 594l448 479l193 -115l-322 -403l148 -371l-203 -94zM758 594l448 479l193 -115l-322 -403l148 -371l-203 -94z" /> +<glyph unicode="¬" d="M207 584l61 256h963l-178 -736h-279l117 480h-684z" /> +<glyph unicode="­" horiz-adv-x="702" d="M150 473l67 277h594l-68 -277h-593z" /> +<glyph unicode="®" horiz-adv-x="1630" d="M246 711q0 174 58 312t156.5 233.5t227.5 145.5t270 50t270.5 -50t227.5 -145.5t156.5 -233.5t58.5 -312q0 -176 -58.5 -313.5t-156.5 -232.5t-227 -145.5t-271 -50.5q-141 0 -270 50.5t-227.5 145.5t-156.5 232.5t-58 313.5zM455 711q0 -123 36.5 -223.5t103.5 -172 t160 -110.5t203 -39q111 0 204 39t160 110.5t103.5 172t36.5 223.5t-36.5 223t-103.5 172t-160 110.5t-204 38.5t-203.5 -38.5t-159.5 -110.5t-103.5 -172t-36.5 -223zM688 362v701q70 16 130.5 23.5t105.5 7.5q330 0 329 -248q0 -127 -110 -187q23 -35 40 -66.5t34.5 -65 t35 -73.5t39.5 -92h-209q-35 78 -59.5 136.5t-54.5 105.5h-82v-242h-199zM887 764h37q66 0 98.5 17.5t32.5 66.5q0 41 -29 57.5t-84 16.5q-14 0 -29.5 -1t-25.5 -3v-154z" /> +<glyph unicode="¯" horiz-adv-x="770" d="M350 1276l51 209h660l-51 -209h-660z" /> +<glyph unicode="°" horiz-adv-x="782" d="M328 1282q0 74 26.5 132.5t71.5 100t105 63t126 21.5t126.5 -21.5t105.5 -63t71.5 -100t26.5 -132.5t-26.5 -132t-71.5 -100t-105.5 -63.5t-126.5 -21.5t-126 21.5t-105 63.5t-71.5 100t-26.5 132zM545 1282q0 -53 34.5 -85t77.5 -32t78 32t35 85t-35 85t-78 32 t-77.5 -32t-34.5 -85z" /> +<glyph unicode="±" d="M90 0l60 256h962l-61 -256h-961zM252 676l61 256h342l84 348h279l-84 -348h342l-62 -256h-342l-84 -348h-278l84 348h-342z" /> +<glyph unicode="²" horiz-adv-x="743" d="M213 618q0 63 12.5 118t43 104t85 95t140.5 93q59 33 94 56.5t53 43t23.5 37t5.5 37.5q0 27 -20.5 43.5t-55.5 16.5q-39 0 -91 -22.5t-118 -76.5l-76 162q139 127 326 127q51 0 97 -12.5t81 -38t55.5 -66.5t20.5 -96q0 -94 -49 -164.5t-160 -140.5q-29 -18 -57.5 -35.5 t-54 -35t-44 -32t-24.5 -26.5h342l-41 -187h-588z" /> +<glyph unicode="³" horiz-adv-x="743" d="M188 668l82 172q39 -25 98.5 -40.5t118.5 -15.5q66 0 115 22.5t49 76.5q0 35 -30.5 54t-98.5 19h-104l41 158h92q66 0 101.5 31t35.5 65q0 25 -22.5 43.5t-71.5 18.5q-51 0 -104.5 -16.5t-94.5 -36.5l-43 163q51 27 132 48.5t163 21.5q49 0 93 -9t78 -33t53.5 -61.5 t19.5 -93.5q0 -59 -35 -116.5t-100 -85.5q45 -23 71.5 -69t26.5 -101q0 -78 -33 -131.5t-86 -87t-121.5 -49t-138.5 -15.5q-82 0 -157.5 17.5t-129.5 50.5z" /> +<glyph unicode="´" horiz-adv-x="585" d="M362 1307l328 329l158 -178l-363 -278z" /> +<glyph unicode="µ" horiz-adv-x="1294" d="M72 -340l338 1417h305l-137 -577q-8 -35 -15.5 -73t-9.5 -73q0 -53 27.5 -89t111.5 -36q27 0 70 13.5t102 66.5q4 51 13.5 107.5t19.5 101.5l133 559h305l-145 -612q-10 -41 -17.5 -75t-7.5 -60q0 -47 27 -70.5t98 -28.5l-100 -254q-129 2 -194.5 32t-94.5 73 q-68 -49 -142.5 -78t-146.5 -29q-45 0 -88 13.5t-80 42.5q0 -47 -6 -92t-24 -121l-39 -158h-303z" /> +<glyph unicode="¶" horiz-adv-x="1454" d="M317 895q0 131 61.5 232.5t173.5 169t270.5 102.5t355.5 35q94 0 192 -8.5t209 -26.5l-426 -1778h-291l377 1571q-29 4 -70 6t-86 2l-378 -1579h-291l219 907q-147 23 -231.5 115t-84.5 252z" /> +<glyph unicode="·" horiz-adv-x="495" d="M201 581q0 47 17.5 86t46 66.5t65.5 43t76 15.5q72 0 120 -40t48 -126q0 -47 -17.5 -86t-46.5 -66.5t-65.5 -43t-75.5 -15.5q-72 0 -120 40t-48 126z" /> +<glyph unicode="¸" horiz-adv-x="667" d="M-2 -406l74 168q27 -12 60.5 -20t64.5 -8q82 0 82 49q0 23 -14.5 37t-47.5 28l-41 19q12 20 30.5 46t36 51.5t33 46t21.5 30.5h192q-8 -10 -20 -27.5t-25.5 -36t-26 -37t-20.5 -30.5q45 -23 67.5 -59.5t22.5 -77.5q0 -59 -23.5 -102.5t-63.5 -71t-91 -40t-104 -12.5 q-55 0 -109.5 12.5t-97.5 34.5z" /> +<glyph unicode="¹" horiz-adv-x="743" d="M319 1266q98 35 187.5 79t161.5 91h178l-195 -818h-233l131 553q-45 -23 -93 -42t-114 -42z" /> +<glyph unicode="º" horiz-adv-x="899" d="M287 918q0 102 29.5 198t88 171t146.5 120t203 45q160 0 234.5 -78t74.5 -213q0 -102 -29.5 -198.5t-88 -171t-146.5 -119.5t-203 -45q-160 0 -234.5 78t-74.5 213zM500 934q0 -39 10 -62.5t26.5 -37t38 -18.5t43.5 -5q45 0 87.5 25.5t74 70.5t51 105.5t19.5 132.5 q0 37 -10.5 61.5t-26.5 37.5t-37.5 18.5t-44.5 5.5q-45 0 -87 -25.5t-73.5 -71t-51 -106.5t-19.5 -131z" /> +<glyph unicode="»" horiz-adv-x="1255" d="M125 205l321 403l-147 371l203 94l264 -504l-449 -479zM676 205l321 403l-147 371l203 94l264 -504l-449 -479z" /> +<glyph unicode="¼" horiz-adv-x="1798" d="M280 1266q98 35 187.5 79t161.5 91h178l-195 -818h-233l131 553q-45 -23 -93 -42t-114 -42zM352 0l1071 1419h278l-1067 -1419h-282zM1054 185l31 141q113 145 236.5 267t277.5 229h191l-115 -473h94l-39 -164h-94l-45 -183h-193l45 183h-389zM1296 349h186l64 260 q-63 -55 -130 -122t-120 -138z" /> +<glyph unicode="½" horiz-adv-x="1798" d="M301 1266q98 35 187.5 79t161.5 91h178l-195 -818h-233l131 553q-45 -23 -93 -42t-114 -42zM316 0l1071 1419h278l-1067 -1419h-282zM1163 4q0 63 12.5 118t43 104t85 95t140.5 93q59 33 94 56.5t53 43t23.5 37t5.5 37.5q0 27 -20.5 43.5t-55.5 16.5q-39 0 -91 -22.5 t-118 -76.5l-76 162q139 127 326 127q51 0 97 -12.5t81 -38t55.5 -66.5t20.5 -96q0 -94 -49 -164.5t-160 -140.5q-29 -18 -57.5 -35.5t-54 -35t-44 -32t-24.5 -26.5h342l-41 -187h-588z" /> +<glyph unicode="¾" horiz-adv-x="1798" d="M170 668l82 172q39 -25 98.5 -40.5t118.5 -15.5q66 0 115 22.5t49 76.5q0 35 -30.5 54t-98.5 19h-104l41 158h92q66 0 101.5 31t35.5 65q0 25 -22.5 43.5t-71.5 18.5q-51 0 -104.5 -16.5t-94.5 -36.5l-43 163q51 27 132 48.5t163 21.5q49 0 93 -9t78 -33t53.5 -61.5 t19.5 -93.5q0 -59 -35 -116.5t-100 -85.5q45 -23 71.5 -69t26.5 -101q0 -78 -33 -131.5t-86 -87t-121.5 -49t-138.5 -15.5q-82 0 -157.5 17.5t-129.5 50.5zM393 0l1071 1419h278l-1067 -1419h-282zM1095 185l31 141q113 145 236.5 267t277.5 229h191l-115 -473h94l-39 -164 h-94l-45 -183h-193l45 183h-389zM1337 349h186l64 260q-63 -55 -130 -122t-120 -138z" /> +<glyph unicode="¿" horiz-adv-x="880" d="M82 -102q0 88 27.5 153.5t70.5 116.5t97.5 93t107.5 83q78 57 136.5 116.5t66.5 137.5h270q0 -66 -19.5 -118t-53 -98t-79 -86t-96.5 -79q-61 -47 -105 -82t-71.5 -64.5t-40 -55t-12.5 -56.5q0 -53 38 -77.5t95 -24.5q37 0 78 7t80 18.5t73.5 25.5t61.5 31l39 -240 q-80 -45 -183.5 -72.5t-207.5 -27.5q-74 0 -141.5 18t-119 56t-82 94.5t-30.5 130.5zM584 866q0 47 17 86t46 67t66 43t75 15q72 0 120 -40t48 -126q0 -47 -17 -86t-46 -66.5t-65.5 -43t-75.5 -15.5q-72 0 -120 40t-48 126z" /> +<glyph unicode="À" horiz-adv-x="1462" d="M31 0q133 229 248.5 423.5t223 367t210 327t209.5 301.5h284q33 -147 62.5 -326.5t55.5 -366.5t47.5 -374.5t39.5 -351.5h-321q-4 80 -9.5 156.5t-11.5 152.5h-532q-41 -76 -86 -152.5t-86 -156.5h-334zM666 559h383q-10 125 -22 266.5t-32 282.5q-86 -137 -169 -272.5 t-160 -276.5zM761 1803l189 161l276 -338l-131 -118z" /> +<glyph unicode="Á" horiz-adv-x="1462" d="M31 0q133 229 248.5 423.5t223 367t210 327t209.5 301.5h284q33 -147 62.5 -326.5t55.5 -366.5t47.5 -374.5t39.5 -351.5h-321q-4 80 -9.5 156.5t-11.5 152.5h-532q-41 -76 -86 -152.5t-86 -156.5h-334zM666 559h383q-10 125 -22 266.5t-32 282.5q-86 -137 -169 -272.5 t-160 -276.5zM851 1635l328 329l158 -178l-363 -278z" /> +<glyph unicode="Â" horiz-adv-x="1462" d="M31 0q133 229 248.5 423.5t223 367t210 327t209.5 301.5h284q33 -147 62.5 -326.5t55.5 -366.5t47.5 -374.5t39.5 -351.5h-321q-4 80 -9.5 156.5t-11.5 152.5h-532q-41 -76 -86 -152.5t-86 -156.5h-334zM666 559h383q-10 125 -22 266.5t-32 282.5q-86 -137 -169 -272.5 t-160 -276.5zM792 1649l367 297l252 -318l-123 -108l-170 159l-231 -155z" /> +<glyph unicode="Ã" horiz-adv-x="1462" d="M31 0q133 229 248.5 423.5t223 367t210 327t209.5 301.5h284q33 -147 62.5 -326.5t55.5 -366.5t47.5 -374.5t39.5 -351.5h-321q-4 80 -9.5 156.5t-11.5 152.5h-532q-41 -76 -86 -152.5t-86 -156.5h-334zM666 559h383q-10 125 -22 266.5t-32 282.5q-86 -137 -169 -272.5 t-160 -276.5zM746 1649q47 111 112.5 165t159.5 54q39 0 70 -11.5t57.5 -24.5t51 -24.5t49.5 -11.5q29 0 52 16.5t58 67.5l137 -84q-47 -111 -112.5 -165t-159.5 -54q-39 0 -69.5 11.5t-57.5 24.5t-51.5 24.5t-48.5 11.5q-29 0 -52.5 -16.5t-58.5 -67.5z" /> +<glyph unicode="Ä" horiz-adv-x="1462" d="M31 0q133 229 248.5 423.5t223 367t210 327t209.5 301.5h284q33 -147 62.5 -326.5t55.5 -366.5t47.5 -374.5t39.5 -351.5h-321q-4 80 -9.5 156.5t-11.5 152.5h-532q-41 -76 -86 -152.5t-86 -156.5h-334zM666 559h383q-10 125 -22 266.5t-32 282.5q-86 -137 -169 -272.5 t-160 -276.5zM747 1696q0 39 14.5 72t38 55.5t53 35.5t60.5 13q57 0 98 -38t41 -101q0 -37 -15 -68.5t-40 -55.5t-54.5 -36t-58.5 -12q-59 0 -98 37t-39 98zM1202 1696q0 39 14 72t38 55.5t53.5 35.5t60.5 13q57 0 98 -38t41 -101q0 -37 -15.5 -68.5t-40 -55.5t-54 -36 t-58.5 -12q-59 0 -98 37t-39 98z" /> +<glyph unicode="Å" horiz-adv-x="1462" d="M31 0q131 225 245.5 417.5t220 363.5t207 323.5t205.5 298.5q-29 31 -46 73t-17 95q0 57 19.5 101t53 74t76.5 45t90 15q49 0 93.5 -15t78 -45t53 -74t19.5 -101q0 -72 -31.5 -123t-80.5 -80q31 -147 59.5 -320.5t53 -353.5t45 -358t36.5 -336h-321q-4 80 -9.5 156.5 t-11.5 152.5h-532q-41 -76 -86 -152.5t-86 -156.5h-334zM666 559h383q-10 125 -22 266.5t-32 282.5q-86 -137 -169 -272.5t-160 -276.5zM993 1571q0 -47 29 -71.5t63 -24.5q37 0 66 24.5t29 71.5t-29 71.5t-66 24.5q-35 0 -63.5 -24.5t-28.5 -71.5z" /> +<glyph unicode="Æ" horiz-adv-x="2000" d="M0 0q172 221 319.5 409.5t289 357.5t283.5 328.5t300 323.5h1014l-66 -268h-606l-66 -279h535l-64 -262h-534l-82 -342h653l-65 -268h-953l82 336h-458q-63 -78 -131 -168t-123 -168h-328zM770 590h330l127 528q-43 -47 -101.5 -113.5t-121 -139t-124 -145.5t-110.5 -130 z" /> +<glyph unicode="Ç" horiz-adv-x="1306" d="M252 573q0 160 56.5 318t166 281.5t268 201.5t365.5 78q98 0 193.5 -22.5t199.5 -79.5l-115 -248q-86 45 -153.5 61.5t-145.5 16.5q-117 0 -210 -47.5t-159.5 -128t-101 -187t-34.5 -225.5q0 -180 78.5 -262t226.5 -82q98 0 181 20.5t155 53.5l34 -261 q-84 -41 -183 -64.5t-245 -25.5q-12 -16 -22 -32.5t-19 -28.5q45 -23 68 -59.5t23 -77.5q0 -59 -24 -102.5t-63.5 -71t-91 -40t-104.5 -12.5q-55 0 -109.5 12.5t-97.5 34.5l74 168q27 -12 60.5 -20t64.5 -8q82 0 82 49q0 23 -14.5 37t-47.5 28l-41 19l84 125 q-186 47 -292.5 199.5t-106.5 381.5z" /> +<glyph unicode="È" horiz-adv-x="1216" d="M154 0l340 1419h927l-65 -262h-608l-66 -287h537l-64 -258h-537l-81 -348h655l-66 -264h-972zM700 1803l189 161l276 -338l-131 -118z" /> +<glyph unicode="É" horiz-adv-x="1216" d="M154 0l340 1419h927l-65 -262h-608l-66 -287h537l-64 -258h-537l-81 -348h655l-66 -264h-972zM835 1635l328 329l158 -178l-363 -278z" /> +<glyph unicode="Ê" horiz-adv-x="1216" d="M154 0l340 1419h927l-65 -262h-608l-66 -287h537l-64 -258h-537l-81 -348h655l-66 -264h-972zM720 1649l367 297l252 -318l-123 -108l-170 159l-231 -155z" /> +<glyph unicode="Ë" horiz-adv-x="1216" d="M154 0l340 1419h927l-65 -262h-608l-66 -287h537l-64 -258h-537l-81 -348h655l-66 -264h-972zM625 1696q0 39 14.5 72t38 55.5t53 35.5t60.5 13q57 0 98 -38t41 -101q0 -37 -15 -68.5t-40 -55.5t-54.5 -36t-58.5 -12q-59 0 -98 37t-39 98zM1080 1696q0 39 14 72t38 55.5 t53.5 35.5t60.5 13q57 0 98 -38t41 -101q0 -37 -15.5 -68.5t-40 -55.5t-54 -36t-58.5 -12q-59 0 -98 37t-39 98z" /> +<glyph unicode="Ì" horiz-adv-x="638" d="M154 0l340 1419h319l-342 -1419h-317zM348 1803l189 161l276 -338l-131 -118z" /> +<glyph unicode="Í" horiz-adv-x="638" d="M154 0l340 1419h319l-342 -1419h-317zM514 1635l328 329l158 -178l-363 -278z" /> +<glyph unicode="Î" horiz-adv-x="638" d="M154 0l340 1419h319l-342 -1419h-317zM405 1649l367 297l252 -318l-123 -108l-170 159l-231 -155z" /> +<glyph unicode="Ï" horiz-adv-x="638" d="M154 0l340 1419h319l-342 -1419h-317zM342 1696q0 39 14.5 72t38 55.5t53 35.5t60.5 13q57 0 98 -38t41 -101q0 -37 -15 -68.5t-40 -55.5t-54.5 -36t-58.5 -12q-59 0 -98 37t-39 98zM797 1696q0 39 14 72t38 55.5t53.5 35.5t60.5 13q57 0 98 -38t41 -101 q0 -37 -15.5 -68.5t-40 -55.5t-54 -36t-58.5 -12q-59 0 -98 37t-39 98z" /> +<glyph unicode="Ð" horiz-adv-x="1470" d="M133 618l53 236h166l131 541q117 23 224.5 32t193.5 9q152 0 271.5 -41t202.5 -117t126 -180.5t43 -231.5q0 -207 -67.5 -370.5t-193.5 -277.5t-306 -175t-408 -61q-86 0 -198.5 10t-216.5 33l143 593h-164zM526 256q23 -2 46.5 -3t64.5 -1q133 0 240.5 41t182.5 117.5 t116 188.5t41 251q0 72 -18.5 130t-60.5 100t-108.5 64.5t-161.5 22.5q-61 0 -125 -6l-73 -307h260l-56 -236h-262z" /> +<glyph unicode="Ñ" horiz-adv-x="1519" d="M154 0l340 1419h243q47 -72 101.5 -169t112 -209.5t114.5 -234.5t109 -241l202 854h318l-342 -1419h-240q-86 242 -191.5 483.5t-228.5 456.5l-225 -940h-313zM776 1649q47 111 112.5 165t159.5 54q39 0 70 -11.5t57.5 -24.5t51 -24.5t49.5 -11.5q29 0 52 16.5t58 67.5 l137 -84q-47 -111 -112.5 -165t-159.5 -54q-39 0 -69.5 11.5t-57.5 24.5t-51.5 24.5t-48.5 11.5q-29 0 -52.5 -16.5t-58.5 -67.5z" /> +<glyph unicode="Ò" horiz-adv-x="1550" d="M252 567q0 160 55 317.5t158.5 283.5t253 205t338.5 79q125 0 229.5 -41t180 -117.5t117.5 -187.5t42 -250q0 -160 -54 -318.5t-157.5 -284.5t-253.5 -204t-340 -78q-125 0 -229.5 41t-180 118t-117.5 187.5t-42 249.5zM580 590q0 -154 64.5 -249t209.5 -95q94 0 175 49 t141.5 131t94 187.5t33.5 220.5q0 154 -64.5 249t-209.5 95q-94 0 -175 -49.5t-141.5 -131.5t-94 -188.5t-33.5 -218.5zM897 1803l189 161l276 -338l-131 -118z" /> +<glyph unicode="Ó" horiz-adv-x="1550" d="M252 567q0 160 55 317.5t158.5 283.5t253 205t338.5 79q125 0 229.5 -41t180 -117.5t117.5 -187.5t42 -250q0 -160 -54 -318.5t-157.5 -284.5t-253.5 -204t-340 -78q-125 0 -229.5 41t-180 118t-117.5 187.5t-42 249.5zM580 590q0 -154 64.5 -249t209.5 -95q94 0 175 49 t141.5 131t94 187.5t33.5 220.5q0 154 -64.5 249t-209.5 95q-94 0 -175 -49.5t-141.5 -131.5t-94 -188.5t-33.5 -218.5zM849 1635l328 329l158 -178l-363 -278z" /> +<glyph unicode="Ô" horiz-adv-x="1550" d="M252 567q0 160 55 317.5t158.5 283.5t253 205t338.5 79q125 0 229.5 -41t180 -117.5t117.5 -187.5t42 -250q0 -160 -54 -318.5t-157.5 -284.5t-253.5 -204t-340 -78q-125 0 -229.5 41t-180 118t-117.5 187.5t-42 249.5zM580 590q0 -154 64.5 -249t209.5 -95q94 0 175 49 t141.5 131t94 187.5t33.5 220.5q0 154 -64.5 249t-209.5 95q-94 0 -175 -49.5t-141.5 -131.5t-94 -188.5t-33.5 -218.5zM790 1649l367 297l252 -318l-123 -108l-170 159l-231 -155z" /> +<glyph unicode="Õ" horiz-adv-x="1550" d="M252 567q0 160 55 317.5t158.5 283.5t253 205t338.5 79q125 0 229.5 -41t180 -117.5t117.5 -187.5t42 -250q0 -160 -54 -318.5t-157.5 -284.5t-253.5 -204t-340 -78q-125 0 -229.5 41t-180 118t-117.5 187.5t-42 249.5zM580 590q0 -154 64.5 -249t209.5 -95q94 0 175 49 t141.5 131t94 187.5t33.5 220.5q0 154 -64.5 249t-209.5 95q-94 0 -175 -49.5t-141.5 -131.5t-94 -188.5t-33.5 -218.5zM733 1649q47 111 112.5 165t159.5 54q39 0 70 -11.5t57.5 -24.5t51 -24.5t49.5 -11.5q29 0 52 16.5t58 67.5l137 -84q-47 -111 -112.5 -165t-159.5 -54 q-39 0 -69.5 11.5t-57.5 24.5t-51.5 24.5t-48.5 11.5q-29 0 -52.5 -16.5t-58.5 -67.5z" /> +<glyph unicode="Ö" horiz-adv-x="1550" d="M252 567q0 160 55 317.5t158.5 283.5t253 205t338.5 79q125 0 229.5 -41t180 -117.5t117.5 -187.5t42 -250q0 -160 -54 -318.5t-157.5 -284.5t-253.5 -204t-340 -78q-125 0 -229.5 41t-180 118t-117.5 187.5t-42 249.5zM580 590q0 -154 64.5 -249t209.5 -95q94 0 175 49 t141.5 131t94 187.5t33.5 220.5q0 154 -64.5 249t-209.5 95q-94 0 -175 -49.5t-141.5 -131.5t-94 -188.5t-33.5 -218.5zM735 1696q0 39 14.5 72t38 55.5t53 35.5t60.5 13q57 0 98 -38t41 -101q0 -37 -15 -68.5t-40 -55.5t-54.5 -36t-58.5 -12q-59 0 -98 37t-39 98z M1190 1696q0 39 14 72t38 55.5t53.5 35.5t60.5 13q57 0 98 -38t41 -101q0 -37 -15.5 -68.5t-40 -55.5t-54 -36t-58.5 -12q-59 0 -98 37t-39 98z" /> +<glyph unicode="×" d="M182 340l350 283l-208 276l208 168l207 -276l353 284l143 -188l-350 -283l209 -276l-209 -168l-207 276l-352 -284z" /> +<glyph unicode="Ø" horiz-adv-x="1550" d="M207 37l145 166q-100 143 -100 364q0 160 55 317.5t158.5 283.5t253 205t338.5 79q184 0 319 -86l127 145l160 -129l-139 -159q49 -72 75.5 -164t26.5 -203q0 -160 -54 -318.5t-157.5 -284.5t-253.5 -204t-340 -78q-188 0 -323 86l-131 -149zM569 578q0 -33 2 -62t9 -55 l604 686q-60 41 -150 41q-96 0 -180 -53.5t-147.5 -139.5t-100.5 -195.5t-37 -221.5zM688 276q59 -41 154 -40q94 0 179 52t148.5 138t101.5 194.5t38 223.5q0 66 -13 121z" /> +<glyph unicode="Ù" horiz-adv-x="1398" d="M246 397q0 106 30 228l191 794h319l-200 -839q-20 -74 -21 -150q0 -41 9.5 -73.5t33 -57.5t63.5 -38t99 -13q123 0 186.5 76.5t98.5 218.5l209 876h319l-215 -903q-70 -289 -226.5 -417t-414.5 -128q-133 0 -224 32t-148.5 88t-83 135t-25.5 171zM718 1803l189 161 l276 -338l-131 -118z" /> +<glyph unicode="Ú" horiz-adv-x="1398" d="M246 397q0 106 30 228l191 794h319l-200 -839q-20 -74 -21 -150q0 -41 9.5 -73.5t33 -57.5t63.5 -38t99 -13q123 0 186.5 76.5t98.5 218.5l209 876h319l-215 -903q-70 -289 -226.5 -417t-414.5 -128q-133 0 -224 32t-148.5 88t-83 135t-25.5 171zM827 1635l328 329 l158 -178l-363 -278z" /> +<glyph unicode="Û" horiz-adv-x="1398" d="M246 397q0 106 30 228l191 794h319l-200 -839q-20 -74 -21 -150q0 -41 9.5 -73.5t33 -57.5t63.5 -38t99 -13q123 0 186.5 76.5t98.5 218.5l209 876h319l-215 -903q-70 -289 -226.5 -417t-414.5 -128q-133 0 -224 32t-148.5 88t-83 135t-25.5 171zM755 1649l367 297 l252 -318l-123 -108l-170 159l-231 -155z" /> +<glyph unicode="Ü" horiz-adv-x="1398" d="M246 397q0 106 30 228l191 794h319l-200 -839q-20 -74 -21 -150q0 -41 9.5 -73.5t33 -57.5t63.5 -38t99 -13q123 0 186.5 76.5t98.5 218.5l209 876h319l-215 -903q-70 -289 -226.5 -417t-414.5 -128q-133 0 -224 32t-148.5 88t-83 135t-25.5 171zM686 1696q0 39 14.5 72 t38 55.5t53 35.5t60.5 13q57 0 98 -38t41 -101q0 -37 -15 -68.5t-40 -55.5t-54.5 -36t-58.5 -12q-59 0 -98 37t-39 98zM1141 1696q0 39 14 72t38 55.5t53.5 35.5t60.5 13q57 0 98 -38t41 -101q0 -37 -15.5 -68.5t-40 -55.5t-54 -36t-58.5 -12q-59 0 -98 37t-39 98z" /> +<glyph unicode="Ý" horiz-adv-x="1335" d="M348 1419h340q33 -147 72 -288t86 -295q59 76 113.5 146.5t105.5 141t101.5 143t103.5 152.5h352q-86 -121 -166 -229.5t-159.5 -212t-163.5 -205.5t-179 -211l-135 -561h-319l135 561q-86 217 -155.5 424t-131.5 434zM792 1635l328 329l158 -178l-363 -278z" /> +<glyph unicode="Þ" horiz-adv-x="1316" d="M152 0l340 1419h319l-49 -205q14 2 37.5 3.5t48 2.5t46.5 1h34q129 0 221 -33t152.5 -88.5t89 -127t28.5 -149.5q0 -94 -40 -193.5t-129 -181t-231 -134t-345 -52.5h-142l-63 -262h-317zM598 535h100q86 0 158 13t124 44t81 82t29 129q0 84 -72 115.5t-193 31.5 q-35 0 -69.5 -2t-59.5 -4z" /> +<glyph unicode="ß" horiz-adv-x="1304" d="M-74 -348q53 49 98.5 120.5t81 151.5t61.5 163t42 155l219 921q27 117 81 198t126 132t157 73.5t173 22.5q82 0 158.5 -21.5t135 -60.5t93 -95t34.5 -126t-31.5 -139.5t-99.5 -132.5q-31 -29 -60.5 -55.5t-53 -53t-39 -55.5t-15.5 -59q0 -43 39 -75t88 -69l41 -31 q55 -41 84 -104t29 -135q0 -102 -41 -178t-108.5 -125t-154.5 -74t-179 -25q-82 0 -161 18.5t-146 55.5l108 240q59 -35 112.5 -49.5t98.5 -14.5q76 0 121 34t45 85q0 27 -16.5 54.5t-51.5 54.5l-92 67q-80 59 -104.5 114.5t-24.5 115.5q0 61 23.5 110t59.5 90t78 75 t78 67.5t59.5 68.5t23.5 78q0 47 -45 69.5t-105 22.5q-74 0 -137.5 -47t-91.5 -162l-195 -817q-70 -293 -151.5 -455.5t-180.5 -236.5z" /> +<glyph unicode="à" horiz-adv-x="1204" d="M205 418q0 141 50 266t139 218t210 146.5t262 53.5q18 0 64.5 -2t106 -9.5t125 -23.5t124.5 -45l-133 -557q-29 -117 -16.5 -234.5t47.5 -210.5l-273 -38q-12 25 -22 47t-21 51q-57 -47 -126.5 -78t-155.5 -31q-102 0 -175 36t-119 96.5t-66.5 141.5t-20.5 173zM508 440 q0 -98 32.5 -155.5t121.5 -57.5q47 0 84.5 18.5t80.5 61.5q4 51 13.5 107.5t19.5 103.5l80 324q-27 4 -48.5 6t-51.5 2q-70 0 -130.5 -35t-105.5 -91t-70.5 -130t-25.5 -154zM723 1475l189 161l276 -338l-131 -118z" /> +<glyph unicode="á" horiz-adv-x="1204" d="M205 418q0 141 50 266t139 218t210 146.5t262 53.5q18 0 64.5 -2t106 -9.5t125 -23.5t124.5 -45l-133 -557q-29 -117 -16.5 -234.5t47.5 -210.5l-273 -38q-12 25 -22 47t-21 51q-57 -47 -126.5 -78t-155.5 -31q-102 0 -175 36t-119 96.5t-66.5 141.5t-20.5 173zM508 440 q0 -98 32.5 -155.5t121.5 -57.5q47 0 84.5 18.5t80.5 61.5q4 51 13.5 107.5t19.5 103.5l80 324q-27 4 -48.5 6t-51.5 2q-70 0 -130.5 -35t-105.5 -91t-70.5 -130t-25.5 -154zM727 1307l328 329l158 -178l-363 -278z" /> +<glyph unicode="â" horiz-adv-x="1204" d="M205 418q0 141 50 266t139 218t210 146.5t262 53.5q18 0 64.5 -2t106 -9.5t125 -23.5t124.5 -45l-133 -557q-29 -117 -16.5 -234.5t47.5 -210.5l-273 -38q-12 25 -22 47t-21 51q-57 -47 -126.5 -78t-155.5 -31q-102 0 -175 36t-119 96.5t-66.5 141.5t-20.5 173zM508 440 q0 -98 32.5 -155.5t121.5 -57.5q47 0 84.5 18.5t80.5 61.5q4 51 13.5 107.5t19.5 103.5l80 324q-27 4 -48.5 6t-51.5 2q-70 0 -130.5 -35t-105.5 -91t-70.5 -130t-25.5 -154zM596 1309l367 297l252 -318l-123 -108l-170 159l-231 -155z" /> +<glyph unicode="ã" horiz-adv-x="1204" d="M205 418q0 141 50 266t139 218t210 146.5t262 53.5q18 0 64.5 -2t106 -9.5t125 -23.5t124.5 -45l-133 -557q-29 -117 -16.5 -234.5t47.5 -210.5l-273 -38q-12 25 -22 47t-21 51q-57 -47 -126.5 -78t-155.5 -31q-102 0 -175 36t-119 96.5t-66.5 141.5t-20.5 173zM508 440 q0 -98 32.5 -155.5t121.5 -57.5q47 0 84.5 18.5t80.5 61.5q4 51 13.5 107.5t19.5 103.5l80 324q-27 4 -48.5 6t-51.5 2q-70 0 -130.5 -35t-105.5 -91t-70.5 -130t-25.5 -154zM569 1315q47 111 112.5 165t159.5 54q39 0 70 -11.5t57.5 -24.5t51 -24.5t49.5 -11.5 q29 0 52 16.5t58 67.5l137 -84q-47 -111 -112.5 -165t-159.5 -54q-39 0 -69.5 11.5t-57.5 24.5t-51.5 24.5t-48.5 11.5q-29 0 -52.5 -16.5t-58.5 -67.5z" /> +<glyph unicode="ä" horiz-adv-x="1204" d="M205 418q0 141 50 266t139 218t210 146.5t262 53.5q18 0 64.5 -2t106 -9.5t125 -23.5t124.5 -45l-133 -557q-29 -117 -16.5 -234.5t47.5 -210.5l-273 -38q-12 25 -22 47t-21 51q-57 -47 -126.5 -78t-155.5 -31q-102 0 -175 36t-119 96.5t-66.5 141.5t-20.5 173zM508 440 q0 -98 32.5 -155.5t121.5 -57.5q47 0 84.5 18.5t80.5 61.5q4 51 13.5 107.5t19.5 103.5l80 324q-27 4 -48.5 6t-51.5 2q-70 0 -130.5 -35t-105.5 -91t-70.5 -130t-25.5 -154zM528 1368q0 39 14.5 72t38 55.5t53 35.5t60.5 13q57 0 98 -38t41 -101q0 -37 -15 -68.5t-40 -55.5 t-54.5 -36t-58.5 -12q-59 0 -98 37t-39 98zM983 1368q0 39 14 72t38 55.5t53.5 35.5t60.5 13q57 0 98 -38t41 -101q0 -37 -15.5 -68.5t-40 -55.5t-54 -36t-58.5 -12q-59 0 -98 37t-39 98z" /> +<glyph unicode="å" horiz-adv-x="1204" d="M205 418q0 141 50 266t139 218t210 146.5t262 53.5q18 0 64.5 -2t106 -9.5t125 -23.5t124.5 -45l-133 -557q-29 -117 -16.5 -234.5t47.5 -210.5l-273 -38q-12 25 -22 47t-21 51q-57 -47 -126.5 -78t-155.5 -31q-102 0 -175 36t-119 96.5t-66.5 141.5t-20.5 173zM508 440 q0 -98 32.5 -155.5t121.5 -57.5q47 0 84.5 18.5t80.5 61.5q4 51 13.5 107.5t19.5 103.5l80 324q-27 4 -48.5 6t-51.5 2q-70 0 -130.5 -35t-105.5 -91t-70.5 -130t-25.5 -154zM684 1432q0 57 19.5 101t53 73.5t76.5 45t90 15.5q49 0 93.5 -15.5t78 -45t53 -73.5t19.5 -101 t-19.5 -101.5t-53 -74t-77.5 -45t-94 -15.5q-47 0 -90 15.5t-76.5 45t-53 73.5t-19.5 102zM831 1432q0 -47 29 -72t63 -25q37 0 66 25t29 72t-29 71.5t-66 24.5q-35 0 -63.5 -24.5t-28.5 -71.5z" /> +<glyph unicode="æ" horiz-adv-x="1714" d="M184 274q0 115 50.5 195t140.5 130t213 72.5t270 22.5q-14 86 -62 122t-153 36q-66 0 -133.5 -11.5t-126.5 -33.5l-23 240q72 25 158 42t172 17q117 0 217.5 -39t161.5 -139q39 43 88 76.5t102.5 56t109.5 34t110 11.5q68 0 129 -18.5t107 -56.5t74 -95t28 -133 q0 -115 -50.5 -195t-140.5 -130t-213 -72.5t-270 -22.5q14 -86 62 -122t153 -36q66 0 133.5 11.5t126.5 33.5l22 -239q-78 -27 -162.5 -43.5t-170.5 -16.5q-113 0 -211.5 38t-163.5 136q-35 -41 -83 -73.5t-102.5 -55t-111.5 -34t-113 -11.5q-68 0 -128 17.5t-107 54.5 t-75 94.5t-28 136.5zM461 311q-1 -98 110 -98q104 0 179 74.5t100 197.5q-127 -4 -204 -21.5t-118 -42t-54 -54t-13 -56.5zM1151 592q127 4 204 21.5t117.5 42t54 53t13.5 57.5q1 98 -110 98q-104 0 -179 -74.5t-100 -197.5z" /> +<glyph unicode="ç" horiz-adv-x="983" d="M205 430q0 139 45 262t129 215t203.5 145.5t267.5 53.5q92 0 164.5 -17.5t132.5 -46.5l-105 -237q-41 16 -85 29.5t-107 13.5q-154 0 -242 -103.5t-88 -281.5q0 -104 45 -169t166 -65q59 0 114.5 12.5t98.5 30.5l23 -243q-53 -20 -117 -37t-150 -21q-12 -16 -22 -32.5 t-19 -28.5q45 -23 68 -59.5t23 -77.5q0 -59 -24 -102.5t-63.5 -71t-91 -40t-104.5 -12.5q-55 0 -109.5 12.5t-97.5 34.5l74 168q27 -12 60.5 -20t64.5 -8q82 0 82 49q0 23 -14.5 37t-47.5 28l-41 19l82 123q-84 20 -143.5 62t-98 100.5t-56 129t-17.5 148.5z" /> +<glyph unicode="è" horiz-adv-x="1085" d="M205 422q0 131 46 254t130 218t204 153.5t265 58.5q72 0 133 -20.5t107.5 -59.5t72 -95.5t25.5 -127.5q0 -115 -51.5 -195t-142.5 -130t-216 -72.5t-272 -22.5q14 -86 62 -122t153 -36q66 0 133.5 11.5t126.5 33.5l23 -239q-57 -23 -146.5 -41.5t-193.5 -18.5 q-127 0 -214.5 36t-141.5 97.5t-78.5 143.5t-24.5 174zM514 592q127 4 205 21.5t121 42t57 53t14 57.5q1 98 -110 98q-104 0 -183 -74.5t-104 -197.5zM602 1475l189 161l276 -338l-131 -118z" /> +<glyph unicode="é" horiz-adv-x="1085" d="M205 422q0 131 46 254t130 218t204 153.5t265 58.5q72 0 133 -20.5t107.5 -59.5t72 -95.5t25.5 -127.5q0 -115 -51.5 -195t-142.5 -130t-216 -72.5t-272 -22.5q14 -86 62 -122t153 -36q66 0 133.5 11.5t126.5 33.5l23 -239q-57 -23 -146.5 -41.5t-193.5 -18.5 q-127 0 -214.5 36t-141.5 97.5t-78.5 143.5t-24.5 174zM514 592q127 4 205 21.5t121 42t57 53t14 57.5q1 98 -110 98q-104 0 -183 -74.5t-104 -197.5zM622 1307l328 329l158 -178l-363 -278z" /> +<glyph unicode="ê" horiz-adv-x="1085" d="M205 422q0 131 46 254t130 218t204 153.5t265 58.5q72 0 133 -20.5t107.5 -59.5t72 -95.5t25.5 -127.5q0 -115 -51.5 -195t-142.5 -130t-216 -72.5t-272 -22.5q14 -86 62 -122t153 -36q66 0 133.5 11.5t126.5 33.5l23 -239q-57 -23 -146.5 -41.5t-193.5 -18.5 q-127 0 -214.5 36t-141.5 97.5t-78.5 143.5t-24.5 174zM514 592q127 4 205 21.5t121 42t57 53t14 57.5q1 98 -110 98q-104 0 -183 -74.5t-104 -197.5zM561 1309l367 297l252 -318l-123 -108l-170 159l-231 -155z" /> +<glyph unicode="ë" horiz-adv-x="1085" d="M205 422q0 131 46 254t130 218t204 153.5t265 58.5q72 0 133 -20.5t107.5 -59.5t72 -95.5t25.5 -127.5q0 -115 -51.5 -195t-142.5 -130t-216 -72.5t-272 -22.5q14 -86 62 -122t153 -36q66 0 133.5 11.5t126.5 33.5l23 -239q-57 -23 -146.5 -41.5t-193.5 -18.5 q-127 0 -214.5 36t-141.5 97.5t-78.5 143.5t-24.5 174zM514 592q127 4 205 21.5t121 42t57 53t14 57.5q1 98 -110 98q-104 0 -183 -74.5t-104 -197.5zM545 1368q0 39 14.5 72t38 55.5t53 35.5t60.5 13q57 0 98 -38t41 -101q0 -37 -15 -68.5t-40 -55.5t-54.5 -36t-58.5 -12 q-59 0 -98 37t-39 98zM1000 1368q0 39 14 72t38 55.5t53.5 35.5t60.5 13q57 0 98 -38t41 -101q0 -37 -15.5 -68.5t-40 -55.5t-54 -36t-58.5 -12q-59 0 -98 37t-39 98z" /> +<glyph unicode="ì" horiz-adv-x="579" d="M143 0l256 1077h306l-259 -1077h-303zM258 1475l189 161l276 -338l-131 -118z" /> +<glyph unicode="í" horiz-adv-x="579" d="M143 0l256 1077h306l-259 -1077h-303zM401 1307l328 329l158 -178l-363 -278z" /> +<glyph unicode="î" horiz-adv-x="579" d="M143 0l256 1077h306l-259 -1077h-303zM292 1309l367 297l252 -318l-123 -108l-170 159l-231 -155z" /> +<glyph unicode="ï" horiz-adv-x="579" d="M143 0l256 1077h306l-259 -1077h-303zM248 1368q0 39 14.5 72t38 55.5t53 35.5t60.5 13q57 0 98 -38t41 -101q0 -37 -15 -68.5t-40 -55.5t-54.5 -36t-58.5 -12q-59 0 -98 37t-39 98zM703 1368q0 39 14 72t38 55.5t53.5 35.5t60.5 13q57 0 98 -38t41 -101 q0 -37 -15.5 -68.5t-40 -55.5t-54 -36t-58.5 -12q-59 0 -98 37t-39 98z" /> +<glyph unicode="ð" horiz-adv-x="1241" d="M205 412q0 166 51 278.5t132 181t180.5 99t197.5 30.5q66 0 125 -13t108 -36q-6 61 -17 115.5t-34 106.5l-241 -78l-23 170l172 55q-29 33 -64.5 65.5t-82.5 65.5l202 137q117 -78 201 -186l293 96l20 -174l-223 -72q47 -98 67.5 -207.5t20.5 -232.5q0 -174 -41 -327.5 t-124 -267.5t-207.5 -180.5t-292.5 -66.5q-100 0 -178 35t-132.5 94.5t-82 140.5t-27.5 171zM512 416q0 -74 36 -127t114 -53q74 0 129 41.5t93 109.5t59.5 153t27.5 169q-109 51 -197 51q-66 0 -115 -26.5t-81.5 -74t-49 -110t-16.5 -133.5z" /> +<glyph unicode="ñ" horiz-adv-x="1161" d="M143 0l248 1028q35 10 77 23.5t94 24.5t116.5 18.5t146.5 7.5q242 0 332 -139.5t31 -380.5l-139 -582h-306l136 569q12 53 19 103.5t-1 88.5t-38 61.5t-91 23.5q-59 0 -121 -12l-198 -834h-306zM520 1315q47 111 112.5 165t159.5 54q39 0 70 -11.5t57.5 -24.5t51 -24.5 t49.5 -11.5q29 0 52 16.5t58 67.5l137 -84q-47 -111 -112.5 -165t-159.5 -54q-39 0 -69.5 11.5t-57.5 24.5t-51.5 24.5t-48.5 11.5q-29 0 -52.5 -16.5t-58.5 -67.5z" /> +<glyph unicode="ò" horiz-adv-x="1175" d="M205 416q0 123 40 245.5t117.5 221t190.5 161t258 62.5q106 0 187 -33t133.5 -92t79 -140t26.5 -179q0 -123 -39 -246t-114.5 -221.5t-189 -161t-263.5 -62.5q-109 0 -189 33t-132 92.5t-78.5 140t-26.5 179.5zM508 446q0 -104 32.5 -160.5t118.5 -56.5q68 0 119 39 t86 98.5t52.5 130t17.5 134.5q0 104 -33 160.5t-119 56.5q-68 0 -119 -39t-85.5 -98.5t-52 -130t-17.5 -134.5zM559 1475l189 161l276 -338l-131 -118z" /> +<glyph unicode="ó" horiz-adv-x="1175" d="M205 416q0 123 40 245.5t117.5 221t190.5 161t258 62.5q106 0 187 -33t133.5 -92t79 -140t26.5 -179q0 -123 -39 -246t-114.5 -221.5t-189 -161t-263.5 -62.5q-109 0 -189 33t-132 92.5t-78.5 140t-26.5 179.5zM508 446q0 -104 32.5 -160.5t118.5 -56.5q68 0 119 39 t86 98.5t52.5 130t17.5 134.5q0 104 -33 160.5t-119 56.5q-68 0 -119 -39t-85.5 -98.5t-52 -130t-17.5 -134.5zM661 1307l328 329l158 -178l-363 -278z" /> +<glyph unicode="ô" horiz-adv-x="1175" d="M205 416q0 123 40 245.5t117.5 221t190.5 161t258 62.5q106 0 187 -33t133.5 -92t79 -140t26.5 -179q0 -123 -39 -246t-114.5 -221.5t-189 -161t-263.5 -62.5q-109 0 -189 33t-132 92.5t-78.5 140t-26.5 179.5zM508 446q0 -104 32.5 -160.5t118.5 -56.5q68 0 119 39 t86 98.5t52.5 130t17.5 134.5q0 104 -33 160.5t-119 56.5q-68 0 -119 -39t-85.5 -98.5t-52 -130t-17.5 -134.5zM561 1309l367 297l252 -318l-123 -108l-170 159l-231 -155z" /> +<glyph unicode="õ" horiz-adv-x="1175" d="M205 416q0 123 40 245.5t117.5 221t190.5 161t258 62.5q106 0 187 -33t133.5 -92t79 -140t26.5 -179q0 -123 -39 -246t-114.5 -221.5t-189 -161t-263.5 -62.5q-109 0 -189 33t-132 92.5t-78.5 140t-26.5 179.5zM500 1315q47 111 112.5 165t159.5 54q39 0 70 -11.5 t57.5 -24.5t51 -24.5t49.5 -11.5q29 0 52 16.5t58 67.5l137 -84q-47 -111 -112.5 -165t-159.5 -54q-39 0 -69.5 11.5t-57.5 24.5t-51.5 24.5t-48.5 11.5q-29 0 -52.5 -16.5t-58.5 -67.5zM508 446q0 -104 32.5 -160.5t118.5 -56.5q68 0 119 39t86 98.5t52.5 130t17.5 134.5 q0 104 -33 160.5t-119 56.5q-68 0 -119 -39t-85.5 -98.5t-52 -130t-17.5 -134.5z" /> +<glyph unicode="ö" horiz-adv-x="1175" d="M205 416q0 123 40 245.5t117.5 221t190.5 161t258 62.5q106 0 187 -33t133.5 -92t79 -140t26.5 -179q0 -123 -39 -246t-114.5 -221.5t-189 -161t-263.5 -62.5q-109 0 -189 33t-132 92.5t-78.5 140t-26.5 179.5zM493 1368q0 39 14.5 72t38 55.5t53 35.5t60.5 13 q57 0 98 -38t41 -101q0 -37 -15 -68.5t-40 -55.5t-54.5 -36t-58.5 -12q-59 0 -98 37t-39 98zM508 446q0 -104 32.5 -160.5t118.5 -56.5q68 0 119 39t86 98.5t52.5 130t17.5 134.5q0 104 -33 160.5t-119 56.5q-68 0 -119 -39t-85.5 -98.5t-52 -130t-17.5 -134.5zM948 1368 q0 39 14 72t38 55.5t53.5 35.5t60.5 13q57 0 98 -38t41 -101q0 -37 -15.5 -68.5t-40 -55.5t-54 -36t-58.5 -12q-59 0 -98 37t-39 98z" /> +<glyph unicode="÷" d="M184 483l64 256h962l-63 -256h-963zM416 174q0 92 58 144.5t132 52.5q66 0 110 -37t44 -115q0 -92 -58.5 -144t-132.5 -52q-66 0 -109.5 36.5t-43.5 114.5zM614 1001q0 92 58.5 144.5t132.5 52.5q66 0 109.5 -37t43.5 -114q0 -92 -58 -144.5t-132 -52.5q-66 0 -110 37 t-44 114z" /> +<glyph unicode="ø" horiz-adv-x="1175" d="M147 29l117 133q-59 109 -59 254q0 123 40 245.5t117.5 221t190.5 161t258 62.5q70 0 128 -14.5t105 -40.5l95 108l133 -108l-105 -119q35 -53 52.5 -123t17.5 -147q0 -123 -39 -246t-114.5 -221.5t-189 -161t-263.5 -62.5q-78 0 -139.5 17.5t-110.5 46.5l-100 -115z M489 418l381 434q-41 14 -90 14q-80 0 -135 -40t-90 -104.5t-50.5 -144t-15.5 -159.5zM561 238q41 -14 90 -15q80 0 135.5 40t90 104.5t50 144.5t15.5 160z" /> +<glyph unicode="ù" horiz-adv-x="1189" d="M206 303q-3 94 21 193l140 581h305l-137 -577q-10 -45 -17.5 -92.5t-1.5 -87t31.5 -65.5t81.5 -26q47 0 87 17.5t85 60.5q4 51 13 107.5t20 103.5l133 559h305l-146 -612q-29 -117 -16.5 -234.5t47.5 -210.5l-272 -38q-23 45 -43 100q-57 -45 -129 -76t-160 -31 q-121 0 -195.5 44t-111.5 117t-40 167zM520 1475l189 161l276 -338l-131 -118z" /> +<glyph unicode="ú" horiz-adv-x="1189" d="M206 303q-3 94 21 193l140 581h305l-137 -577q-10 -45 -17.5 -92.5t-1.5 -87t31.5 -65.5t81.5 -26q47 0 87 17.5t85 60.5q4 51 13 107.5t20 103.5l133 559h305l-146 -612q-29 -117 -16.5 -234.5t47.5 -210.5l-272 -38q-23 45 -43 100q-57 -45 -129 -76t-160 -31 q-121 0 -195.5 44t-111.5 117t-40 167zM675 1307l328 329l158 -178l-363 -278z" /> +<glyph unicode="û" horiz-adv-x="1189" d="M206 303q-3 94 21 193l140 581h305l-137 -577q-10 -45 -17.5 -92.5t-1.5 -87t31.5 -65.5t81.5 -26q47 0 87 17.5t85 60.5q4 51 13 107.5t20 103.5l133 559h305l-146 -612q-29 -117 -16.5 -234.5t47.5 -210.5l-272 -38q-23 45 -43 100q-57 -45 -129 -76t-160 -31 q-121 0 -195.5 44t-111.5 117t-40 167zM573 1309l367 297l252 -318l-123 -108l-170 159l-231 -155z" /> +<glyph unicode="ü" horiz-adv-x="1189" d="M206 303q-3 94 21 193l140 581h305l-137 -577q-10 -45 -17.5 -92.5t-1.5 -87t31.5 -65.5t81.5 -26q47 0 87 17.5t85 60.5q4 51 13 107.5t20 103.5l133 559h305l-146 -612q-29 -117 -16.5 -234.5t47.5 -210.5l-272 -38q-23 45 -43 100q-57 -45 -129 -76t-160 -31 q-121 0 -195.5 44t-111.5 117t-40 167zM500 1368q0 39 14.5 72t38 55.5t53 35.5t60.5 13q57 0 98 -38t41 -101q0 -37 -15 -68.5t-40 -55.5t-54.5 -36t-58.5 -12q-59 0 -98 37t-39 98zM955 1368q0 39 14 72t38 55.5t53.5 35.5t60.5 13q57 0 98 -38t41 -101q0 -37 -15.5 -68.5 t-40 -55.5t-54 -36t-58.5 -12q-59 0 -98 37t-39 98z" /> +<glyph unicode="ý" horiz-adv-x="1089" d="M-51 -330l92 240q41 -16 73.5 -25.5t80.5 -9.5q72 0 136 46t107 124q-53 205 -97 459t-60 573h313q2 -80 8 -176t14.5 -193.5t18.5 -189.5t22 -166q98 147 173 327.5t141 397.5h323q-57 -156 -115.5 -291t-122 -256.5t-131 -232.5t-143.5 -219q-55 -80 -114.5 -162 t-132 -147.5t-161.5 -106.5t-206 -41q-72 0 -123 13.5t-96 35.5zM622 1307l328 329l158 -178l-363 -278z" /> +<glyph unicode="þ" horiz-adv-x="1183" d="M53 -379l459 1919l317 49l-118 -491q23 2 47 3t49 1q115 0 197.5 -35t136 -95.5t79 -141t25.5 -173.5q0 -150 -48 -274.5t-136 -213.5t-209 -139t-266 -50q-68 0 -142 12l-88 -371h-303zM504 236q23 -4 43 -5.5t41 -1.5q84 0 149.5 30t111.5 83t69.5 128t23.5 165 q0 88 -39 149.5t-135 61.5q-63 0 -121 -12z" /> +<glyph unicode="ÿ" horiz-adv-x="1089" d="M-51 -330l92 240q41 -16 73.5 -25.5t80.5 -9.5q72 0 136 46t107 124q-53 205 -97 459t-60 573h313q2 -80 8 -176t14.5 -193.5t18.5 -189.5t22 -166q98 147 173 327.5t141 397.5h323q-57 -156 -115.5 -291t-122 -256.5t-131 -232.5t-143.5 -219q-55 -80 -114.5 -162 t-132 -147.5t-161.5 -106.5t-206 -41q-72 0 -123 13.5t-96 35.5zM473 1368q0 39 14.5 72t38 55.5t53 35.5t60.5 13q57 0 98 -38t41 -101q0 -37 -15 -68.5t-40 -55.5t-54.5 -36t-58.5 -12q-59 0 -98 37t-39 98zM928 1368q0 39 14 72t38 55.5t53.5 35.5t60.5 13q57 0 98 -38 t41 -101q0 -37 -15.5 -68.5t-40 -55.5t-54 -36t-58.5 -12q-59 0 -98 37t-39 98z" /> +<glyph unicode="Œ" horiz-adv-x="2017" d="M252 561q0 209 70.5 372t197.5 274.5t300 169t380 57.5q53 0 117.5 -3.5t120.5 -11.5h784l-65 -268h-584l-66 -279h512l-63 -262h-512l-82 -342h631l-66 -268h-809q-53 -8 -109.5 -12t-113.5 -4q-121 0 -235.5 25.5t-206 90t-146.5 176t-55 285.5zM575 584 q0 -68 19.5 -129.5t60.5 -107.5t104.5 -72.5t151.5 -26.5q66 0 140 12l215 899q-33 4 -63.5 6t-59.5 2q-145 0 -252 -54t-177.5 -138t-104.5 -188.5t-34 -202.5z" /> +<glyph unicode="œ" horiz-adv-x="1779" d="M205 410q0 123 40 246.5t117.5 224t191.5 163t261 62.5q104 0 192.5 -44t139.5 -132q82 86 180 131t217 45q72 0 133.5 -20.5t107.5 -59.5t71.5 -95.5t25.5 -127.5q0 -115 -51 -195t-142.5 -130t-216 -72.5t-272.5 -22.5q14 -86 62.5 -122t152.5 -36q66 0 133.5 11.5 t126.5 33.5l23 -239q-57 -23 -146.5 -41.5t-193.5 -18.5q-129 0 -217 48.5t-142 119.5q-61 -72 -156 -120t-212 -48q-106 0 -186 33t-133.5 91.5t-80 138t-26.5 176.5zM508 446q0 -104 32.5 -160.5t118.5 -56.5q68 0 119 39t86 98.5t52.5 130t17.5 134.5q0 104 -33 160.5 t-119 56.5q-68 0 -119 -39t-85.5 -98.5t-52 -130t-17.5 -134.5zM1208 592q127 4 205 21.5t121 42t57.5 53t14.5 57.5q0 98 -111 98q-104 0 -183 -74.5t-104 -197.5z" /> +<glyph unicode="Ÿ" horiz-adv-x="1335" d="M348 1419h340q33 -147 72 -288t86 -295q59 76 113.5 146.5t105.5 141t101.5 143t103.5 152.5h352q-86 -121 -166 -229.5t-159.5 -212t-163.5 -205.5t-179 -211l-135 -561h-319l135 561q-86 217 -155.5 424t-131.5 434zM623 1696q0 39 14.5 72t38 55.5t53 35.5t60.5 13 q57 0 98 -38t41 -101q0 -37 -15 -68.5t-40 -55.5t-54.5 -36t-58.5 -12q-59 0 -98 37t-39 98zM1078 1696q0 39 14 72t38 55.5t53.5 35.5t60.5 13q57 0 98 -38t41 -101q0 -37 -15.5 -68.5t-40 -55.5t-54 -36t-58.5 -12q-59 0 -98 37t-39 98z" /> +<glyph unicode="ˆ" horiz-adv-x="815" d="M403 1309l367 297l252 -318l-123 -108l-170 159l-231 -155z" /> +<glyph unicode="˜" horiz-adv-x="763" d="M336 1315q47 111 112.5 165t159.5 54q39 0 70 -11.5t57.5 -24.5t51 -24.5t49.5 -11.5q29 0 52 16.5t58 67.5l137 -84q-47 -111 -112.5 -165t-159.5 -54q-39 0 -69.5 11.5t-57.5 24.5t-51.5 24.5t-48.5 11.5q-29 0 -52.5 -16.5t-58.5 -67.5z" /> +<glyph unicode=" " horiz-adv-x="982" /> +<glyph unicode=" " horiz-adv-x="1964" /> +<glyph unicode=" " horiz-adv-x="982" /> +<glyph unicode=" " horiz-adv-x="1964" /> +<glyph unicode=" " horiz-adv-x="654" /> +<glyph unicode=" " horiz-adv-x="491" /> +<glyph unicode=" " horiz-adv-x="327" /> +<glyph unicode=" " horiz-adv-x="327" /> +<glyph unicode=" " horiz-adv-x="245" /> +<glyph unicode=" " horiz-adv-x="392" /> +<glyph unicode=" " horiz-adv-x="109" /> +<glyph unicode="‐" horiz-adv-x="702" d="M150 473l67 277h594l-68 -277h-593z" /> +<glyph unicode="‑" horiz-adv-x="702" d="M150 473l67 277h594l-68 -277h-593z" /> +<glyph unicode="‒" horiz-adv-x="702" d="M150 473l67 277h594l-68 -277h-593z" /> +<glyph unicode="–" horiz-adv-x="1040" d="M123 485l57 254h1024l-59 -254h-1022z" /> +<glyph unicode="—" horiz-adv-x="2064" d="M123 485l57 254h2048l-59 -254h-2046z" /> +<glyph unicode="‘" horiz-adv-x="485" d="M266 1014q2 29 7.5 59.5t9.5 44.5q33 137 111.5 261t170.5 210l189 -71q-72 -111 -123 -237t-68 -267h-297z" /> +<glyph unicode="’" horiz-adv-x="485" d="M246 1071q72 111 120 237t64 263h297q-2 -29 -7 -59.5t-9 -45.5q-33 -137 -112 -261t-171 -210z" /> +<glyph unicode="‚" horiz-adv-x="485" d="M-6 -184q72 111 120 237t64 263h297q-2 -29 -7 -59.5t-9 -45.5q-33 -137 -112 -261t-171 -210z" /> +<glyph unicode="“" horiz-adv-x="927" d="M266 1014q2 29 7.5 59.5t9.5 44.5q33 137 111.5 261t170.5 210l189 -71q-72 -111 -123 -237t-68 -267h-297zM710 1014q2 29 7.5 59.5t9.5 44.5q33 137 111.5 261t170.5 210l189 -71q-72 -111 -123 -237t-68 -267h-297z" /> +<glyph unicode="”" horiz-adv-x="927" d="M246 1071q72 111 120 237t64 263h297q-2 -29 -7 -59.5t-9 -45.5q-33 -137 -112 -261t-171 -210zM688 1071q72 111 120 237t64 263h297q-2 -29 -7 -59.5t-9 -45.5q-33 -137 -112 -261t-171 -210z" /> +<glyph unicode="„" horiz-adv-x="927" d="M-6 -184q72 111 120 237t64 263h297q-2 -29 -7 -59.5t-9 -45.5q-33 -137 -112 -261t-171 -210zM434 -184q72 111 120 237t64 263h297q-2 -29 -7 -59.5t-9 -45.5q-33 -137 -112 -261t-171 -210z" /> +<glyph unicode="•" horiz-adv-x="794" d="M246 723q0 57 20.5 110.5t59.5 93.5t93 63.5t122 23.5t122 -23.5t93 -63.5t59.5 -93.5t20.5 -110.5q0 -59 -20.5 -111.5t-59.5 -92.5t-93.5 -63.5t-121.5 -23.5q-68 0 -122 23.5t-93 63.5t-59.5 92.5t-20.5 111.5z" /> +<glyph unicode="…" horiz-adv-x="1937" d="M123 139q0 47 17.5 86t46 66.5t65.5 43t76 15.5q72 0 120 -40t48 -126q0 -47 -17.5 -86t-46.5 -66.5t-65.5 -43t-75.5 -15.5q-72 0 -120 40t-48 126zM834 139q0 47 17.5 86t46 66.5t65.5 43t76 15.5q72 0 120 -40t48 -126q0 -47 -17.5 -86t-46.5 -66.5t-65.5 -43 t-75.5 -15.5q-72 0 -120 40t-48 126zM1544 139q0 47 17.5 86t46 66.5t65.5 43t76 15.5q72 0 120 -40t48 -126q0 -47 -17.5 -86t-46.5 -66.5t-65.5 -43t-75.5 -15.5q-72 0 -120 40t-48 126z" /> +<glyph unicode=" " horiz-adv-x="392" /> +<glyph unicode="‹" horiz-adv-x="702" d="M205 594l448 479l193 -115l-322 -403l148 -371l-203 -94z" /> +<glyph unicode="›" horiz-adv-x="704" d="M125 205l321 403l-147 371l203 94l264 -504l-449 -479z" /> +<glyph unicode=" " horiz-adv-x="491" /> +<glyph unicode="€" d="M174 446l47 203h131q4 35 11.5 68t15.5 65h-129l49 203h139q45 104 107.5 189.5t148.5 145.5t200 93t261 33q135 0 277 -47l-121 -238q-102 35 -201 35q-143 0 -227 -56.5t-138 -154.5h482l-88 -203h-463q-14 -66 -25 -133h430l-86 -203h-352q10 -127 73.5 -174 t160.5 -47q61 0 131.5 14.5t142.5 36.5l12 -239q-86 -31 -170 -48.5t-170 -17.5q-96 0 -181 26t-150.5 82t-105.5 147t-44 220h-168z" /> +<glyph unicode="™" horiz-adv-x="1748" d="M246 1208v211h659v-211h-209v-510h-241v510h-209zM985 698q14 254 30.5 427t33.5 294h217q43 -92 81.5 -187t79.5 -188q41 92 83 194.5t75 180.5h219q20 -121 35.5 -294t32.5 -427h-236l-8 383l-121 -307h-161l-121 305q0 -66 -1 -130t-2 -117.5t-2 -90t-1 -43.5h-234z " /> +<glyph unicode="◼" horiz-adv-x="1075" d="M0 0v1075h1075v-1075h-1075z" /> +<hkern u1="K" u2="ï" k="-63" /> +<hkern u1="T" u2="ÿ" k="80" /> +<hkern u1="T" u2="ï" k="-111" /> +<hkern u1="T" u2="ì" k="-47" /> +<hkern u1="V" u2="ï" k="-66" /> +<hkern u1="W" u2="ï" k="-96" /> +<hkern u1="W" u2="î" k="-47" /> +<hkern u1="W" u2="ì" k="-66" /> +<hkern u1="Y" u2="ï" k="-113" /> +<hkern u1="Y" u2="ì" k="-49" /> +<hkern u1="f" u2="ï" k="-129" /> +<hkern u1="f" u2="î" k="-49" /> +<hkern u1="f" u2="ì" k="-145" /> +<hkern u1="i" u2="ï" k="-37" /> +<hkern u1="j" u2="ï" k="-37" /> +<hkern u1="Ý" u2="ï" k="-113" /> +<hkern u1="Ý" u2="ì" k="-49" /> +<hkern u1="ì" u2="ï" k="-37" /> +<hkern u1="í" u2="ï" k="-37" /> +<hkern u1="î" u2="ï" k="-37" /> +<hkern u1="ï" u2="ï" k="-37" /> +<hkern u1="Ÿ" u2="ï" k="-113" /> +<hkern u1="Ÿ" u2="ì" k="-49" /> +<hkern g1="uniFB01" u2="ï" k="-37" /> +<hkern g1="uniFB03" u2="ï" k="-37" /> +<hkern g1="b" g2="hyphen,uni00AD,endash,emdash" k="-70" /> +<hkern g1="b" g2="slash" k="27" /> +<hkern g1="b" g2="question" k="31" /> +<hkern g1="b" g2="backslash" k="74" /> +<hkern g1="b" g2="bracketright" k="66" /> +<hkern g1="b" g2="x" k="27" /> +<hkern g1="b" g2="y,yacute,ydieresis" k="37" /> +<hkern g1="b" g2="braceright" k="31" /> +<hkern g1="b" g2="questiondown" k="43" /> +<hkern g1="b" g2="parenright" k="49" /> +<hkern g1="b" g2="asterisk" k="41" /> +<hkern g1="b" g2="j" k="20" /> +<hkern g1="b" g2="z" k="61" /> +<hkern g1="b" g2="quoteleft,quotedblleft" k="35" /> +<hkern g1="b" g2="quoteright,quotedblright" k="55" /> +<hkern g1="c,ccedilla" g2="comma,period,ellipsis" k="-41" /> +<hkern g1="c,ccedilla" g2="slash" k="-47" /> +<hkern g1="c,ccedilla" g2="question" k="20" /> +<hkern g1="c,ccedilla" g2="backslash" k="23" /> +<hkern g1="c,ccedilla" g2="bracketright" k="57" /> +<hkern g1="c,ccedilla" g2="x" k="-20" /> +<hkern g1="c,ccedilla" g2="braceright" k="23" /> +<hkern g1="c,ccedilla" g2="quotesinglbase,quotedblbase" k="-55" /> +<hkern g1="c,ccedilla" g2="guillemotleft,guilsinglleft" k="51" /> +<hkern g1="c,ccedilla" g2="questiondown" k="-27" /> +<hkern g1="c,ccedilla" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="41" /> +<hkern g1="c,ccedilla" g2="c,ccedilla" k="51" /> +<hkern g1="c,ccedilla" g2="d" k="41" /> +<hkern g1="c,ccedilla" g2="e,egrave,eacute,ecircumflex,edieresis" k="51" /> +<hkern g1="c,ccedilla" g2="g" k="41" /> +<hkern g1="c,ccedilla" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="51" /> +<hkern g1="c,ccedilla" g2="q" k="41" /> +<hkern g1="c,ccedilla" g2="eth" k="51" /> +<hkern g1="d" g2="comma,period,ellipsis" k="-41" /> +<hkern g1="d" g2="slash" k="-66" /> +<hkern g1="d" g2="backslash" k="-35" /> +<hkern g1="d" g2="quotesinglbase,quotedblbase" k="-61" /> +<hkern g1="d" g2="guillemotleft,guilsinglleft" k="16" /> +<hkern g1="d" g2="questiondown" k="-41" /> +<hkern g1="d" g2="z" k="-20" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="hyphen,uni00AD,endash,emdash" k="-57" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="question" k="20" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="backslash" k="59" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="bracketright" k="53" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="y,yacute,ydieresis" k="16" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="braceright" k="29" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="parenright" k="35" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quoteright,quotedblright" k="41" /> +<hkern g1="g" g2="hyphen,uni00AD,endash,emdash" k="-31" /> +<hkern g1="g" g2="comma,period,ellipsis" k="-20" /> +<hkern g1="g" g2="slash" k="-51" /> +<hkern g1="g" g2="question" k="20" /> +<hkern g1="g" g2="backslash" k="63" /> +<hkern g1="g" g2="bracketright" k="53" /> +<hkern g1="g" g2="x" k="-20" /> +<hkern g1="g" g2="y,yacute,ydieresis" k="-20" /> +<hkern g1="g" g2="braceright" k="25" /> +<hkern g1="g" g2="quotesinglbase,quotedblbase" k="-45" /> +<hkern g1="g" g2="guillemotleft,guilsinglleft" k="29" /> +<hkern g1="g" g2="questiondown" k="-27" /> +<hkern g1="g" g2="j" k="-41" /> +<hkern g1="h" g2="hyphen,uni00AD,endash,emdash" k="-57" /> +<hkern g1="h" g2="question" k="25" /> +<hkern g1="h" g2="backslash" k="72" /> +<hkern g1="h" g2="bracketright" k="41" /> +<hkern g1="h" g2="y,yacute,ydieresis" k="23" /> +<hkern g1="h" g2="braceright" k="27" /> +<hkern g1="h" g2="quotesinglbase,quotedblbase" k="-31" /> +<hkern g1="h" g2="parenright" k="41" /> +<hkern g1="h" g2="asterisk" k="39" /> +<hkern g1="h" g2="quoteleft,quotedblleft" k="20" /> +<hkern g1="h" g2="quoteright,quotedblright" k="66" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01,uniFB03" g2="hyphen,uni00AD,endash,emdash" k="-47" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01,uniFB03" g2="backslash" k="-41" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01,uniFB03" g2="braceright" k="-23" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01,uniFB03" g2="quoteleft,quotedblleft" k="-61" /> +<hkern g1="i,igrave,iacute,icircumflex,idieresis,uniFB01,uniFB03" g2="quoteright,quotedblright" k="-61" /> +<hkern g1="j" g2="hyphen,uni00AD,endash,emdash" k="-53" /> +<hkern g1="j" g2="slash" k="-61" /> +<hkern g1="j" g2="backslash" k="-41" /> +<hkern g1="j" g2="bracketright" k="-16" /> +<hkern g1="j" g2="braceright" k="-29" /> +<hkern g1="j" g2="quotesinglbase,quotedblbase" k="-31" /> +<hkern g1="j" g2="j" k="-43" /> +<hkern g1="j" g2="quoteleft,quotedblleft" k="-61" /> +<hkern g1="j" g2="quoteright,quotedblright" k="-61" /> +<hkern g1="k" g2="comma,period,ellipsis" k="-41" /> +<hkern g1="k" g2="slash" k="-63" /> +<hkern g1="k" g2="bracketright" k="55" /> +<hkern g1="k" g2="x" k="-51" /> +<hkern g1="k" g2="y,yacute,ydieresis" k="-20" /> +<hkern g1="k" g2="quotesinglbase,quotedblbase" k="-41" /> +<hkern g1="k" g2="guillemotleft,guilsinglleft" k="66" /> +<hkern g1="k" g2="questiondown" k="-39" /> +<hkern g1="k" g2="asterisk" k="-41" /> +<hkern g1="k" g2="quoteleft,quotedblleft" k="-82" /> +<hkern g1="k" g2="quoteright,quotedblright" k="-76" /> +<hkern g1="k" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="29" /> +<hkern g1="k" g2="c,ccedilla" k="20" /> +<hkern g1="k" g2="d" k="29" /> +<hkern g1="k" g2="e,egrave,eacute,ecircumflex,edieresis" k="20" /> +<hkern g1="k" g2="g" k="29" /> +<hkern g1="k" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="k" g2="q" k="29" /> +<hkern g1="k" g2="eth" k="20" /> +<hkern g1="k" g2="ampersand" k="25" /> +<hkern g1="k" g2="v" k="-31" /> +<hkern g1="k" g2="w" k="-20" /> +<hkern g1="k" g2="braceleft" k="25" /> +<hkern g1="l,uniFB02,uniFB04" g2="comma,period,ellipsis" k="-41" /> +<hkern g1="l,uniFB02,uniFB04" g2="slash" k="-41" /> +<hkern g1="l,uniFB02,uniFB04" g2="question" k="25" /> +<hkern g1="l,uniFB02,uniFB04" g2="bracketright" k="-20" /> +<hkern g1="l,uniFB02,uniFB04" g2="x" k="-29" /> +<hkern g1="l,uniFB02,uniFB04" g2="braceright" k="18" /> +<hkern g1="l,uniFB02,uniFB04" g2="quotesinglbase,quotedblbase" k="-55" /> +<hkern g1="l,uniFB02,uniFB04" g2="guillemotleft,guilsinglleft" k="57" /> +<hkern g1="l,uniFB02,uniFB04" g2="asterisk" k="39" /> +<hkern g1="l,uniFB02,uniFB04" g2="j" k="25" /> +<hkern g1="l,uniFB02,uniFB04" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="27" /> +<hkern g1="l,uniFB02,uniFB04" g2="d" k="27" /> +<hkern g1="l,uniFB02,uniFB04" g2="g" k="27" /> +<hkern g1="l,uniFB02,uniFB04" g2="q" k="27" /> +<hkern g1="l,uniFB02,uniFB04" g2="v" k="23" /> +<hkern g1="l,uniFB02,uniFB04" g2="w" k="27" /> +<hkern g1="l,uniFB02,uniFB04" g2="braceleft" k="23" /> +<hkern g1="l,uniFB02,uniFB04" g2="l" k="20" /> +<hkern g1="l,uniFB02,uniFB04" g2="t" k="18" /> +<hkern g1="m,n,ntilde" g2="hyphen,uni00AD,endash,emdash" k="-57" /> +<hkern g1="m,n,ntilde" g2="question" k="25" /> +<hkern g1="m,n,ntilde" g2="backslash" k="72" /> +<hkern g1="m,n,ntilde" g2="bracketright" k="41" /> +<hkern g1="m,n,ntilde" g2="y,yacute,ydieresis" k="23" /> +<hkern g1="m,n,ntilde" g2="braceright" k="27" /> +<hkern g1="m,n,ntilde" g2="quotesinglbase,quotedblbase" k="-31" /> +<hkern g1="m,n,ntilde" g2="parenright" k="41" /> +<hkern g1="m,n,ntilde" g2="asterisk" k="39" /> +<hkern g1="m,n,ntilde" g2="quoteleft,quotedblleft" k="20" /> +<hkern g1="m,n,ntilde" g2="quoteright,quotedblright" k="66" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="hyphen,uni00AD,endash,emdash" k="-72" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="slash" k="20" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="question" k="41" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="backslash" k="68" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="bracketright" k="63" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="x" k="51" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="y,yacute,ydieresis" k="31" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="braceright" k="29" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="questiondown" k="35" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="parenright" k="47" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="asterisk" k="45" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="j" k="20" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="z" k="41" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quoteleft,quotedblleft" k="29" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quoteright,quotedblright" k="74" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="v" k="20" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="w" k="20" /> +<hkern g1="p" g2="hyphen,uni00AD,endash,emdash" k="-70" /> +<hkern g1="p" g2="slash" k="27" /> +<hkern g1="p" g2="question" k="31" /> +<hkern g1="p" g2="backslash" k="74" /> +<hkern g1="p" g2="bracketright" k="66" /> +<hkern g1="p" g2="x" k="27" /> +<hkern g1="p" g2="y,yacute,ydieresis" k="37" /> +<hkern g1="p" g2="braceright" k="31" /> +<hkern g1="p" g2="questiondown" k="43" /> +<hkern g1="p" g2="parenright" k="49" /> +<hkern g1="p" g2="asterisk" k="41" /> +<hkern g1="p" g2="j" k="20" /> +<hkern g1="p" g2="z" k="61" /> +<hkern g1="p" g2="quoteleft,quotedblleft" k="35" /> +<hkern g1="p" g2="quoteright,quotedblright" k="55" /> +<hkern g1="q" g2="hyphen,uni00AD,endash,emdash" k="-31" /> +<hkern g1="q" g2="comma,period,ellipsis" k="-20" /> +<hkern g1="q" g2="slash" k="-51" /> +<hkern g1="q" g2="question" k="20" /> +<hkern g1="q" g2="backslash" k="63" /> +<hkern g1="q" g2="bracketright" k="53" /> +<hkern g1="q" g2="x" k="-20" /> +<hkern g1="q" g2="y,yacute,ydieresis" k="-20" /> +<hkern g1="q" g2="braceright" k="25" /> +<hkern g1="q" g2="quotesinglbase,quotedblbase" k="-45" /> +<hkern g1="q" g2="guillemotleft,guilsinglleft" k="29" /> +<hkern g1="q" g2="questiondown" k="-27" /> +<hkern g1="r" g2="comma,period,ellipsis" k="92" /> +<hkern g1="r" g2="slash" k="59" /> +<hkern g1="r" g2="question" k="20" /> +<hkern g1="r" g2="bracketright" k="90" /> +<hkern g1="r" g2="x" k="-27" /> +<hkern g1="r" g2="braceright" k="47" /> +<hkern g1="r" g2="quotesinglbase,quotedblbase" k="92" /> +<hkern g1="r" g2="guillemotleft,guilsinglleft" k="37" /> +<hkern g1="r" g2="questiondown" k="102" /> +<hkern g1="r" g2="parenright" k="63" /> +<hkern g1="r" g2="asterisk" k="-25" /> +<hkern g1="r" g2="j" k="43" /> +<hkern g1="r" g2="quoteleft,quotedblleft" k="-41" /> +<hkern g1="r" g2="quoteright,quotedblright" k="-41" /> +<hkern g1="r" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="33" /> +<hkern g1="r" g2="c,ccedilla" k="41" /> +<hkern g1="r" g2="d" k="33" /> +<hkern g1="r" g2="e,egrave,eacute,ecircumflex,edieresis" k="41" /> +<hkern g1="r" g2="g" k="33" /> +<hkern g1="r" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="41" /> +<hkern g1="r" g2="q" k="33" /> +<hkern g1="r" g2="eth" k="41" /> +<hkern g1="r" g2="ampersand" k="45" /> +<hkern g1="r" g2="v" k="-39" /> +<hkern g1="r" g2="w" k="-29" /> +<hkern g1="r" g2="l" k="20" /> +<hkern g1="r" g2="t" k="16" /> +<hkern g1="r" g2="bracketleft" k="27" /> +<hkern g1="r" g2="b" k="25" /> +<hkern g1="r" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="35" /> +<hkern g1="r" g2="h" k="31" /> +<hkern g1="r" g2="i,igrave,iacute,icircumflex,idieresis" k="31" /> +<hkern g1="r" g2="k" k="31" /> +<hkern g1="r" g2="m,n,ntilde" k="33" /> +<hkern g1="r" g2="p" k="33" /> +<hkern g1="r" g2="r" k="33" /> +<hkern g1="r" g2="bar" k="27" /> +<hkern g1="r" g2="germandbls" k="35" /> +<hkern g1="s" g2="comma,period,ellipsis" k="-29" /> +<hkern g1="s" g2="question" k="27" /> +<hkern g1="s" g2="backslash" k="51" /> +<hkern g1="s" g2="bracketright" k="66" /> +<hkern g1="s" g2="braceright" k="29" /> +<hkern g1="s" g2="quotesinglbase,quotedblbase" k="-33" /> +<hkern g1="s" g2="guillemotleft,guilsinglleft" k="49" /> +<hkern g1="s" g2="parenright" k="47" /> +<hkern g1="s" g2="j" k="20" /> +<hkern g1="t" g2="comma,period,ellipsis" k="-47" /> +<hkern g1="t" g2="slash" k="-123" /> +<hkern g1="t" g2="backslash" k="18" /> +<hkern g1="t" g2="bracketright" k="45" /> +<hkern g1="t" g2="x" k="-57" /> +<hkern g1="t" g2="quotesinglbase,quotedblbase" k="-66" /> +<hkern g1="t" g2="guillemotleft,guilsinglleft" k="39" /> +<hkern g1="t" g2="questiondown" k="-45" /> +<hkern g1="t" g2="z" k="-27" /> +<hkern g1="t" g2="quoteleft,quotedblleft" k="-76" /> +<hkern g1="t" g2="quoteright,quotedblright" k="-53" /> +<hkern g1="t" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="41" /> +<hkern g1="t" g2="c,ccedilla" k="31" /> +<hkern g1="t" g2="d" k="41" /> +<hkern g1="t" g2="e,egrave,eacute,ecircumflex,edieresis" k="31" /> +<hkern g1="t" g2="g" k="41" /> +<hkern g1="t" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="31" /> +<hkern g1="t" g2="q" k="41" /> +<hkern g1="t" g2="eth" k="31" /> +<hkern g1="t" g2="v" k="-29" /> +<hkern g1="t" g2="w" k="-20" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="comma,period,ellipsis" k="-20" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="slash" k="-45" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="question" k="41" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="backslash" k="61" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="bracketright" k="63" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="x" k="-31" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="y,yacute,ydieresis" k="18" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="braceright" k="29" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="quotesinglbase,quotedblbase" k="-39" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="guillemotleft,guilsinglleft" k="37" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="questiondown" k="-20" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="asterisk" k="16" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="j" k="20" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="20" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="d" k="20" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="g" k="20" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="q" k="20" /> +<hkern g1="v" g2="hyphen,uni00AD,endash,emdash" k="-61" /> +<hkern g1="v" g2="comma,period,ellipsis" k="57" /> +<hkern g1="v" g2="slash" k="35" /> +<hkern g1="v" g2="question" k="51" /> +<hkern g1="v" g2="bracketright" k="68" /> +<hkern g1="v" g2="braceright" k="25" /> +<hkern g1="v" g2="quotesinglbase,quotedblbase" k="55" /> +<hkern g1="v" g2="questiondown" k="76" /> +<hkern g1="v" g2="parenright" k="39" /> +<hkern g1="v" g2="asterisk" k="-47" /> +<hkern g1="v" g2="j" k="20" /> +<hkern g1="v" g2="quoteleft,quotedblleft" k="-57" /> +<hkern g1="v" g2="quoteright,quotedblright" k="-63" /> +<hkern g1="v" g2="ampersand" k="20" /> +<hkern g1="v" g2="guillemotright,guilsinglright" k="-20" /> +<hkern g1="w" g2="hyphen,uni00AD,endash,emdash" k="-61" /> +<hkern g1="w" g2="comma,period,ellipsis" k="47" /> +<hkern g1="w" g2="slash" k="23" /> +<hkern g1="w" g2="question" k="51" /> +<hkern g1="w" g2="bracketright" k="68" /> +<hkern g1="w" g2="braceright" k="25" /> +<hkern g1="w" g2="quotesinglbase,quotedblbase" k="43" /> +<hkern g1="w" g2="questiondown" k="66" /> +<hkern g1="w" g2="parenright" k="39" /> +<hkern g1="w" g2="asterisk" k="-47" /> +<hkern g1="w" g2="quoteleft,quotedblleft" k="-57" /> +<hkern g1="w" g2="quoteright,quotedblright" k="-61" /> +<hkern g1="w" g2="c,ccedilla" k="-20" /> +<hkern g1="w" g2="e,egrave,eacute,ecircumflex,edieresis" k="-20" /> +<hkern g1="w" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="-20" /> +<hkern g1="w" g2="eth" k="-20" /> +<hkern g1="x" g2="comma,period,ellipsis" k="-29" /> +<hkern g1="x" g2="slash" k="-61" /> +<hkern g1="x" g2="question" k="23" /> +<hkern g1="x" g2="bracketright" k="55" /> +<hkern g1="x" g2="quotesinglbase,quotedblbase" k="-39" /> +<hkern g1="x" g2="guillemotleft,guilsinglleft" k="68" /> +<hkern g1="x" g2="questiondown" k="-39" /> +<hkern g1="x" g2="quoteleft,quotedblleft" k="-25" /> +<hkern g1="x" g2="quoteright,quotedblright" k="-35" /> +<hkern g1="x" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="41" /> +<hkern g1="x" g2="c,ccedilla" k="61" /> +<hkern g1="x" g2="d" k="41" /> +<hkern g1="x" g2="e,egrave,eacute,ecircumflex,edieresis" k="61" /> +<hkern g1="x" g2="g" k="41" /> +<hkern g1="x" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="61" /> +<hkern g1="x" g2="q" k="41" /> +<hkern g1="x" g2="eth" k="61" /> +<hkern g1="x" g2="ampersand" k="29" /> +<hkern g1="x" g2="braceleft" k="20" /> +<hkern g1="x" g2="l" k="25" /> +<hkern g1="x" g2="t" k="16" /> +<hkern g1="x" g2="u,ugrave,uacute,ucircumflex,udieresis" k="16" /> +<hkern g1="y,yacute,ydieresis" g2="hyphen,uni00AD,endash,emdash" k="-61" /> +<hkern g1="y,yacute,ydieresis" g2="comma,period,ellipsis" k="51" /> +<hkern g1="y,yacute,ydieresis" g2="slash" k="37" /> +<hkern g1="y,yacute,ydieresis" g2="bracketright" k="72" /> +<hkern g1="y,yacute,ydieresis" g2="braceright" k="41" /> +<hkern g1="y,yacute,ydieresis" g2="quotesinglbase,quotedblbase" k="47" /> +<hkern g1="y,yacute,ydieresis" g2="questiondown" k="61" /> +<hkern g1="y,yacute,ydieresis" g2="parenright" k="53" /> +<hkern g1="y,yacute,ydieresis" g2="asterisk" k="-31" /> +<hkern g1="y,yacute,ydieresis" g2="quoteleft,quotedblleft" k="-47" /> +<hkern g1="y,yacute,ydieresis" g2="quoteright,quotedblright" k="-47" /> +<hkern g1="y,yacute,ydieresis" g2="c,ccedilla" k="-20" /> +<hkern g1="y,yacute,ydieresis" g2="e,egrave,eacute,ecircumflex,edieresis" k="-20" /> +<hkern g1="y,yacute,ydieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="-20" /> +<hkern g1="y,yacute,ydieresis" g2="eth" k="-20" /> +<hkern g1="y,yacute,ydieresis" g2="ampersand" k="18" /> +<hkern g1="z" g2="hyphen,uni00AD,endash,emdash" k="-20" /> +<hkern g1="z" g2="slash" k="-20" /> +<hkern g1="z" g2="bracketright" k="37" /> +<hkern g1="z" g2="x" k="-51" /> +<hkern g1="z" g2="y,yacute,ydieresis" k="-31" /> +<hkern g1="z" g2="quotesinglbase,quotedblbase" k="-59" /> +<hkern g1="z" g2="guillemotleft,guilsinglleft" k="29" /> +<hkern g1="z" g2="questiondown" k="-41" /> +<hkern g1="z" g2="asterisk" k="-41" /> +<hkern g1="z" g2="quoteleft,quotedblleft" k="-51" /> +<hkern g1="z" g2="quoteright,quotedblright" k="-47" /> +<hkern g1="z" g2="v" k="-49" /> +<hkern g1="z" g2="w" k="-39" /> +<hkern g1="z" g2="parenleft" k="-20" /> +<hkern g1="eth" g2="hyphen,uni00AD,endash,emdash" k="-61" /> +<hkern g1="eth" g2="slash" k="23" /> +<hkern g1="eth" g2="x" k="31" /> +<hkern g1="eth" g2="y,yacute,ydieresis" k="37" /> +<hkern g1="eth" g2="questiondown" k="61" /> +<hkern g1="eth" g2="parenright" k="23" /> +<hkern g1="eth" g2="asterisk" k="31" /> +<hkern g1="eth" g2="j" k="27" /> +<hkern g1="eth" g2="z" k="23" /> +<hkern g1="eth" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="16" /> +<hkern g1="eth" g2="d" k="16" /> +<hkern g1="eth" g2="g" k="16" /> +<hkern g1="eth" g2="q" k="16" /> +<hkern g1="thorn" g2="hyphen,uni00AD,endash,emdash" k="-70" /> +<hkern g1="thorn" g2="slash" k="27" /> +<hkern g1="thorn" g2="question" k="31" /> +<hkern g1="thorn" g2="backslash" k="74" /> +<hkern g1="thorn" g2="bracketright" k="66" /> +<hkern g1="thorn" g2="x" k="27" /> +<hkern g1="thorn" g2="y,yacute,ydieresis" k="37" /> +<hkern g1="thorn" g2="braceright" k="31" /> +<hkern g1="thorn" g2="questiondown" k="43" /> +<hkern g1="thorn" g2="parenright" k="49" /> +<hkern g1="thorn" g2="asterisk" k="41" /> +<hkern g1="thorn" g2="j" k="20" /> +<hkern g1="thorn" g2="z" k="61" /> +<hkern g1="thorn" g2="quoteleft,quotedblleft" k="35" /> +<hkern g1="thorn" g2="quoteright,quotedblright" k="55" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="hyphen,uni00AD,endash,emdash" k="41" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="comma,period,ellipsis" k="-20" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="slash" k="-61" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="question" k="123" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="backslash" k="123" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="bracketright" k="41" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="y,yacute,ydieresis" k="61" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="braceright" k="27" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quotesinglbase,quotedblbase" k="-41" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="guillemotleft,guilsinglleft" k="82" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="questiondown" k="-31" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="asterisk" k="164" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="j" k="20" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quoteleft,quotedblleft" k="205" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quoteright,quotedblright" k="164" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="41" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="c,ccedilla" k="41" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="d" k="41" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="e,egrave,eacute,ecircumflex,edieresis" k="41" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="g" k="41" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="41" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="q" k="41" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="eth" k="41" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="ampersand" k="31" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="v" k="92" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="w" k="102" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="braceleft" k="41" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="l" k="20" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="t" k="20" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="parenleft" k="20" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="at" k="51" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="B" k="16" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="C,Ccedilla" k="92" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="D,Eth" k="16" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="16" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="F" k="16" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="G" k="92" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="H" k="16" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="I,Igrave,Iacute,Icircumflex,Idieresis" k="16" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="J" k="-31" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="K" k="16" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="L" k="16" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="N,Ntilde" k="16" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="92" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="P" k="16" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="Q" k="92" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="R" k="16" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="T" k="143" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="31" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="V" k="143" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="W" k="59" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="Y,Yacute,Ydieresis" k="184" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="AE" k="-41" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="Thorn" k="16" /> +<hkern g1="B" g2="hyphen,uni00AD,endash,emdash" k="-31" /> +<hkern g1="B" g2="backslash" k="27" /> +<hkern g1="B" g2="bracketright" k="35" /> +<hkern g1="B" g2="questiondown" k="41" /> +<hkern g1="B" g2="parenright" k="18" /> +<hkern g1="B" g2="T" k="51" /> +<hkern g1="B" g2="V" k="37" /> +<hkern g1="B" g2="Y,Yacute,Ydieresis" k="74" /> +<hkern g1="B" g2="X" k="18" /> +<hkern g1="C,Ccedilla" g2="hyphen,uni00AD,endash,emdash" k="31" /> +<hkern g1="C,Ccedilla" g2="slash" k="-41" /> +<hkern g1="C,Ccedilla" g2="y,yacute,ydieresis" k="20" /> +<hkern g1="C,Ccedilla" g2="quotesinglbase,quotedblbase" k="-41" /> +<hkern g1="C,Ccedilla" g2="guillemotleft,guilsinglleft" k="61" /> +<hkern g1="C,Ccedilla" g2="parenright" k="20" /> +<hkern g1="C,Ccedilla" g2="quoteleft,quotedblleft" k="-41" /> +<hkern g1="C,Ccedilla" g2="quoteright,quotedblright" k="-41" /> +<hkern g1="C,Ccedilla" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="41" /> +<hkern g1="C,Ccedilla" g2="c,ccedilla" k="41" /> +<hkern g1="C,Ccedilla" g2="d" k="41" /> +<hkern g1="C,Ccedilla" g2="e,egrave,eacute,ecircumflex,edieresis" k="41" /> +<hkern g1="C,Ccedilla" g2="g" k="41" /> +<hkern g1="C,Ccedilla" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="41" /> +<hkern g1="C,Ccedilla" g2="q" k="41" /> +<hkern g1="C,Ccedilla" g2="eth" k="41" /> +<hkern g1="C,Ccedilla" g2="ampersand" k="41" /> +<hkern g1="C,Ccedilla" g2="v" k="82" /> +<hkern g1="C,Ccedilla" g2="w" k="82" /> +<hkern g1="C,Ccedilla" g2="braceleft" k="31" /> +<hkern g1="C,Ccedilla" g2="l" k="20" /> +<hkern g1="C,Ccedilla" g2="t" k="20" /> +<hkern g1="C,Ccedilla" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="C,Ccedilla" g2="at" k="51" /> +<hkern g1="C,Ccedilla" g2="C,Ccedilla" k="41" /> +<hkern g1="C,Ccedilla" g2="G" k="41" /> +<hkern g1="C,Ccedilla" g2="J" k="-20" /> +<hkern g1="C,Ccedilla" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="41" /> +<hkern g1="C,Ccedilla" g2="Q" k="41" /> +<hkern g1="C,Ccedilla" g2="T" k="-20" /> +<hkern g1="C,Ccedilla" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="20" /> +<hkern g1="C,Ccedilla" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-20" /> +<hkern g1="C,Ccedilla" g2="S" k="-41" /> +<hkern g1="D,Eth" g2="hyphen,uni00AD,endash,emdash" k="-41" /> +<hkern g1="D,Eth" g2="slash" k="47" /> +<hkern g1="D,Eth" g2="question" k="51" /> +<hkern g1="D,Eth" g2="backslash" k="37" /> +<hkern g1="D,Eth" g2="bracketright" k="37" /> +<hkern g1="D,Eth" g2="questiondown" k="41" /> +<hkern g1="D,Eth" g2="parenright" k="31" /> +<hkern g1="D,Eth" g2="J" k="39" /> +<hkern g1="D,Eth" g2="T" k="102" /> +<hkern g1="D,Eth" g2="V" k="61" /> +<hkern g1="D,Eth" g2="Y,Yacute,Ydieresis" k="133" /> +<hkern g1="D,Eth" g2="AE" k="55" /> +<hkern g1="D,Eth" g2="X" k="72" /> +<hkern g1="D,Eth" g2="M" k="-20" /> +<hkern g1="D,Eth" g2="Z" k="31" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="slash" k="-41" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="quotesinglbase,quotedblbase" k="-72" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="guillemotleft,guilsinglleft" k="35" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="quoteleft,quotedblleft" k="-82" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="quoteright,quotedblright" k="-82" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="J" k="-20" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="V" k="-20" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="W" k="-10" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="AE" k="-31" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="X" k="-20" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-31" /> +<hkern g1="F" g2="comma,period,ellipsis" k="123" /> +<hkern g1="F" g2="slash" k="41" /> +<hkern g1="F" g2="backslash" k="-31" /> +<hkern g1="F" g2="braceright" k="-41" /> +<hkern g1="F" g2="quotesinglbase,quotedblbase" k="61" /> +<hkern g1="F" g2="guillemotleft,guilsinglleft" k="27" /> +<hkern g1="F" g2="asterisk" k="-29" /> +<hkern g1="F" g2="z" k="41" /> +<hkern g1="F" g2="quoteleft,quotedblleft" k="-82" /> +<hkern g1="F" g2="quoteright,quotedblright" k="-82" /> +<hkern g1="F" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="41" /> +<hkern g1="F" g2="c,ccedilla" k="41" /> +<hkern g1="F" g2="d" k="41" /> +<hkern g1="F" g2="e,egrave,eacute,ecircumflex,edieresis" k="41" /> +<hkern g1="F" g2="g" k="41" /> +<hkern g1="F" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="41" /> +<hkern g1="F" g2="q" k="41" /> +<hkern g1="F" g2="eth" k="41" /> +<hkern g1="F" g2="ampersand" k="82" /> +<hkern g1="F" g2="braceleft" k="20" /> +<hkern g1="F" g2="m,n,ntilde" k="82" /> +<hkern g1="F" g2="p" k="82" /> +<hkern g1="F" g2="r" k="82" /> +<hkern g1="F" g2="guillemotright,guilsinglright" k="20" /> +<hkern g1="F" g2="C,Ccedilla" k="41" /> +<hkern g1="F" g2="G" k="41" /> +<hkern g1="F" g2="J" k="246" /> +<hkern g1="F" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="41" /> +<hkern g1="F" g2="Q" k="41" /> +<hkern g1="F" g2="AE" k="119" /> +<hkern g1="F" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="70" /> +<hkern g1="F" g2="Z" k="18" /> +<hkern g1="F" g2="colon,semicolon" k="41" /> +<hkern g1="F" g2="s" k="41" /> +<hkern g1="G" g2="hyphen,uni00AD,endash,emdash" k="-41" /> +<hkern g1="G" g2="comma,period,ellipsis" k="-20" /> +<hkern g1="G" g2="backslash" k="20" /> +<hkern g1="G" g2="bracketright" k="20" /> +<hkern g1="G" g2="quotesinglbase,quotedblbase" k="-41" /> +<hkern g1="G" g2="parenright" k="20" /> +<hkern g1="G" g2="T" k="25" /> +<hkern g1="G" g2="V" k="25" /> +<hkern g1="G" g2="Y,Yacute,Ydieresis" k="29" /> +<hkern g1="H" g2="guillemotleft,guilsinglleft" k="23" /> +<hkern g1="I,Igrave,Iacute,Icircumflex,Idieresis" g2="guillemotleft,guilsinglleft" k="23" /> +<hkern g1="J" g2="slash" k="35" /> +<hkern g1="J" g2="guillemotleft,guilsinglleft" k="23" /> +<hkern g1="J" g2="questiondown" k="41" /> +<hkern g1="J" g2="quoteleft,quotedblleft" k="-70" /> +<hkern g1="J" g2="quoteright,quotedblright" k="-61" /> +<hkern g1="J" g2="J" k="33" /> +<hkern g1="J" g2="AE" k="47" /> +<hkern g1="J" g2="X" k="16" /> +<hkern g1="J" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="45" /> +<hkern g1="K" g2="hyphen,uni00AD,endash,emdash" k="61" /> +<hkern g1="K" g2="comma,period,ellipsis" k="-41" /> +<hkern g1="K" g2="slash" k="-82" /> +<hkern g1="K" g2="question" k="-41" /> +<hkern g1="K" g2="backslash" k="-51" /> +<hkern g1="K" g2="bracketright" k="-41" /> +<hkern g1="K" g2="x" k="-20" /> +<hkern g1="K" g2="y,yacute,ydieresis" k="82" /> +<hkern g1="K" g2="braceright" k="-51" /> +<hkern g1="K" g2="quotesinglbase,quotedblbase" k="-61" /> +<hkern g1="K" g2="guillemotleft,guilsinglleft" k="143" /> +<hkern g1="K" g2="questiondown" k="-37" /> +<hkern g1="K" g2="parenright" k="-20" /> +<hkern g1="K" g2="asterisk" k="20" /> +<hkern g1="K" g2="quoteleft,quotedblleft" k="-41" /> +<hkern g1="K" g2="quoteright,quotedblright" k="-29" /> +<hkern g1="K" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="82" /> +<hkern g1="K" g2="c,ccedilla" k="82" /> +<hkern g1="K" g2="d" k="82" /> +<hkern g1="K" g2="e,egrave,eacute,ecircumflex,edieresis" k="82" /> +<hkern g1="K" g2="g" k="82" /> +<hkern g1="K" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="82" /> +<hkern g1="K" g2="q" k="82" /> +<hkern g1="K" g2="eth" k="82" /> +<hkern g1="K" g2="ampersand" k="41" /> +<hkern g1="K" g2="v" k="102" /> +<hkern g1="K" g2="w" k="92" /> +<hkern g1="K" g2="braceleft" k="41" /> +<hkern g1="K" g2="t" k="20" /> +<hkern g1="K" g2="m,n,ntilde" k="20" /> +<hkern g1="K" g2="p" k="20" /> +<hkern g1="K" g2="r" k="20" /> +<hkern g1="K" g2="guillemotright,guilsinglright" k="20" /> +<hkern g1="K" g2="u,ugrave,uacute,ucircumflex,udieresis" k="41" /> +<hkern g1="K" g2="parenleft" k="41" /> +<hkern g1="K" g2="at" k="61" /> +<hkern g1="K" g2="C,Ccedilla" k="123" /> +<hkern g1="K" g2="G" k="123" /> +<hkern g1="K" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="123" /> +<hkern g1="K" g2="Q" k="123" /> +<hkern g1="K" g2="T" k="-20" /> +<hkern g1="K" g2="V" k="-41" /> +<hkern g1="K" g2="W" k="-20" /> +<hkern g1="K" g2="Y,Yacute,Ydieresis" k="-41" /> +<hkern g1="K" g2="AE" k="-68" /> +<hkern g1="K" g2="X" k="-41" /> +<hkern g1="K" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-41" /> +<hkern g1="K" g2="Z" k="-20" /> +<hkern g1="L" g2="hyphen,uni00AD,endash,emdash" k="41" /> +<hkern g1="L" g2="comma,period,ellipsis" k="-20" /> +<hkern g1="L" g2="slash" k="-61" /> +<hkern g1="L" g2="question" k="61" /> +<hkern g1="L" g2="backslash" k="143" /> +<hkern g1="L" g2="bracketright" k="72" /> +<hkern g1="L" g2="x" k="-20" /> +<hkern g1="L" g2="y,yacute,ydieresis" k="61" /> +<hkern g1="L" g2="braceright" k="31" /> +<hkern g1="L" g2="quotesinglbase,quotedblbase" k="-88" /> +<hkern g1="L" g2="guillemotleft,guilsinglleft" k="86" /> +<hkern g1="L" g2="asterisk" k="246" /> +<hkern g1="L" g2="quoteleft,quotedblleft" k="205" /> +<hkern g1="L" g2="quoteright,quotedblright" k="205" /> +<hkern g1="L" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="41" /> +<hkern g1="L" g2="c,ccedilla" k="41" /> +<hkern g1="L" g2="d" k="41" /> +<hkern g1="L" g2="e,egrave,eacute,ecircumflex,edieresis" k="41" /> +<hkern g1="L" g2="g" k="41" /> +<hkern g1="L" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="41" /> +<hkern g1="L" g2="q" k="41" /> +<hkern g1="L" g2="eth" k="41" /> +<hkern g1="L" g2="v" k="123" /> +<hkern g1="L" g2="w" k="102" /> +<hkern g1="L" g2="braceleft" k="51" /> +<hkern g1="L" g2="t" k="20" /> +<hkern g1="L" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="L" g2="B" k="16" /> +<hkern g1="L" g2="C,Ccedilla" k="123" /> +<hkern g1="L" g2="D,Eth" k="16" /> +<hkern g1="L" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="16" /> +<hkern g1="L" g2="F" k="16" /> +<hkern g1="L" g2="G" k="123" /> +<hkern g1="L" g2="H" k="16" /> +<hkern g1="L" g2="I,Igrave,Iacute,Icircumflex,Idieresis" k="16" /> +<hkern g1="L" g2="J" k="-41" /> +<hkern g1="L" g2="K" k="16" /> +<hkern g1="L" g2="L" k="16" /> +<hkern g1="L" g2="N,Ntilde" k="16" /> +<hkern g1="L" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="123" /> +<hkern g1="L" g2="P" k="16" /> +<hkern g1="L" g2="Q" k="123" /> +<hkern g1="L" g2="R" k="16" /> +<hkern g1="L" g2="T" k="246" /> +<hkern g1="L" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="41" /> +<hkern g1="L" g2="V" k="246" /> +<hkern g1="L" g2="W" k="123" /> +<hkern g1="L" g2="Y,Yacute,Ydieresis" k="287" /> +<hkern g1="L" g2="AE" k="-41" /> +<hkern g1="L" g2="Thorn" k="16" /> +<hkern g1="L" g2="X" k="-20" /> +<hkern g1="L" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-41" /> +<hkern g1="M" g2="backslash" k="20" /> +<hkern g1="M" g2="bracketright" k="33" /> +<hkern g1="M" g2="quotesinglbase,quotedblbase" k="-41" /> +<hkern g1="M" g2="guillemotleft,guilsinglleft" k="31" /> +<hkern g1="M" g2="parenright" k="27" /> +<hkern g1="M" g2="T" k="41" /> +<hkern g1="M" g2="V" k="41" /> +<hkern g1="M" g2="Y,Yacute,Ydieresis" k="41" /> +<hkern g1="N,Ntilde" g2="guillemotleft,guilsinglleft" k="23" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="hyphen,uni00AD,endash,emdash" k="-41" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="slash" k="47" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="question" k="51" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="backslash" k="37" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="bracketright" k="37" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="questiondown" k="41" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="parenright" k="31" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="J" k="39" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="T" k="102" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="V" k="61" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Y,Yacute,Ydieresis" k="133" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="AE" k="55" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="X" k="72" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="M" k="-20" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Z" k="31" /> +<hkern g1="P" g2="hyphen,uni00AD,endash,emdash" k="-41" /> +<hkern g1="P" g2="comma,period,ellipsis" k="123" /> +<hkern g1="P" g2="slash" k="82" /> +<hkern g1="P" g2="question" k="23" /> +<hkern g1="P" g2="backslash" k="27" /> +<hkern g1="P" g2="bracketright" k="53" /> +<hkern g1="P" g2="braceright" k="27" /> +<hkern g1="P" g2="quotesinglbase,quotedblbase" k="72" /> +<hkern g1="P" g2="guillemotleft,guilsinglleft" k="23" /> +<hkern g1="P" g2="questiondown" k="123" /> +<hkern g1="P" g2="parenright" k="45" /> +<hkern g1="P" g2="j" k="31" /> +<hkern g1="P" g2="quoteleft,quotedblleft" k="-47" /> +<hkern g1="P" g2="quoteright,quotedblright" k="-47" /> +<hkern g1="P" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="20" /> +<hkern g1="P" g2="c,ccedilla" k="20" /> +<hkern g1="P" g2="d" k="20" /> +<hkern g1="P" g2="e,egrave,eacute,ecircumflex,edieresis" k="20" /> +<hkern g1="P" g2="g" k="20" /> +<hkern g1="P" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="P" g2="q" k="20" /> +<hkern g1="P" g2="eth" k="20" /> +<hkern g1="P" g2="ampersand" k="33" /> +<hkern g1="P" g2="v" k="-20" /> +<hkern g1="P" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="27" /> +<hkern g1="P" g2="m,n,ntilde" k="20" /> +<hkern g1="P" g2="p" k="20" /> +<hkern g1="P" g2="r" k="20" /> +<hkern g1="P" g2="germandbls" k="27" /> +<hkern g1="P" g2="J" k="246" /> +<hkern g1="P" g2="V" k="20" /> +<hkern g1="P" g2="Y,Yacute,Ydieresis" k="57" /> +<hkern g1="P" g2="AE" k="123" /> +<hkern g1="P" g2="X" k="102" /> +<hkern g1="P" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="143" /> +<hkern g1="P" g2="Z" k="123" /> +<hkern g1="Q" g2="hyphen,uni00AD,endash,emdash" k="-41" /> +<hkern g1="Q" g2="slash" k="47" /> +<hkern g1="Q" g2="question" k="51" /> +<hkern g1="Q" g2="backslash" k="37" /> +<hkern g1="Q" g2="bracketright" k="37" /> +<hkern g1="Q" g2="questiondown" k="41" /> +<hkern g1="Q" g2="parenright" k="31" /> +<hkern g1="Q" g2="J" k="39" /> +<hkern g1="Q" g2="T" k="102" /> +<hkern g1="Q" g2="V" k="61" /> +<hkern g1="Q" g2="Y,Yacute,Ydieresis" k="133" /> +<hkern g1="Q" g2="AE" k="55" /> +<hkern g1="Q" g2="X" k="72" /> +<hkern g1="Q" g2="M" k="-20" /> +<hkern g1="Q" g2="Z" k="31" /> +<hkern g1="R" g2="slash" k="-49" /> +<hkern g1="R" g2="question" k="51" /> +<hkern g1="R" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-43" /> +<hkern g1="R" g2="C,Ccedilla" k="16" /> +<hkern g1="R" g2="G" k="16" /> +<hkern g1="R" g2="J" k="-23" /> +<hkern g1="R" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="16" /> +<hkern g1="R" g2="Q" k="16" /> +<hkern g1="R" g2="T" k="27" /> +<hkern g1="R" g2="V" k="43" /> +<hkern g1="R" g2="X" k="-49" /> +<hkern g1="R" g2="Y,Yacute,Ydieresis" k="78" /> +<hkern g1="R" g2="backslash" k="33" /> +<hkern g1="R" g2="bracketright" k="39" /> +<hkern g1="R" g2="c,ccedilla" k="82" /> +<hkern g1="R" g2="e,egrave,eacute,ecircumflex,edieresis" k="82" /> +<hkern g1="R" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="82" /> +<hkern g1="R" g2="v" k="-20" /> +<hkern g1="R" g2="x" k="-35" /> +<hkern g1="R" g2="quotesinglbase,quotedblbase" k="-51" /> +<hkern g1="R" g2="guillemotleft,guilsinglleft" k="39" /> +<hkern g1="R" g2="questiondown" k="-25" /> +<hkern g1="R" g2="AE" k="-55" /> +<hkern g1="R" g2="eth" k="82" /> +<hkern g1="S" g2="C,Ccedilla" k="20" /> +<hkern g1="S" g2="G" k="20" /> +<hkern g1="S" g2="J" k="-20" /> +<hkern g1="S" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="20" /> +<hkern g1="S" g2="Q" k="20" /> +<hkern g1="S" g2="V" k="61" /> +<hkern g1="S" g2="Y,Yacute,Ydieresis" k="61" /> +<hkern g1="S" g2="v" k="61" /> +<hkern g1="S" g2="quotesinglbase,quotedblbase" k="-49" /> +<hkern g1="S" g2="guillemotleft,guilsinglleft" k="27" /> +<hkern g1="S" g2="parenright" k="29" /> +<hkern g1="S" g2="asterisk" k="20" /> +<hkern g1="S" g2="hyphen,uni00AD,endash,emdash" k="-57" /> +<hkern g1="S" g2="comma,period,ellipsis" k="-20" /> +<hkern g1="S" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="18" /> +<hkern g1="S" g2="d" k="18" /> +<hkern g1="S" g2="g" k="18" /> +<hkern g1="S" g2="j" k="16" /> +<hkern g1="S" g2="q" k="18" /> +<hkern g1="S" g2="s" k="16" /> +<hkern g1="S" g2="w" k="25" /> +<hkern g1="S" g2="y,yacute,ydieresis" k="39" /> +<hkern g1="S" g2="quoteleft,quotedblleft" k="-29" /> +<hkern g1="S" g2="quoteright,quotedblright" k="-29" /> +<hkern g1="T" g2="slash" k="143" /> +<hkern g1="T" g2="question" k="-59" /> +<hkern g1="T" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="156" /> +<hkern g1="T" g2="C,Ccedilla" k="20" /> +<hkern g1="T" g2="G" k="20" /> +<hkern g1="T" g2="J" k="205" /> +<hkern g1="T" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="20" /> +<hkern g1="T" g2="Q" k="20" /> +<hkern g1="T" g2="T" k="-61" /> +<hkern g1="T" g2="V" k="-72" /> +<hkern g1="T" g2="X" k="-39" /> +<hkern g1="T" g2="Y,Yacute,Ydieresis" k="-59" /> +<hkern g1="T" g2="backslash" k="-61" /> +<hkern g1="T" g2="bracketright" k="-53" /> +<hkern g1="T" g2="c,ccedilla" k="164" /> +<hkern g1="T" g2="e,egrave,eacute,ecircumflex,edieresis" k="164" /> +<hkern g1="T" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="164" /> +<hkern g1="T" g2="v" k="102" /> +<hkern g1="T" g2="x" k="123" /> +<hkern g1="T" g2="quotesinglbase,quotedblbase" k="92" /> +<hkern g1="T" g2="guillemotleft,guilsinglleft" k="82" /> +<hkern g1="T" g2="questiondown" k="82" /> +<hkern g1="T" g2="AE" k="145" /> +<hkern g1="T" g2="eth" k="164" /> +<hkern g1="T" g2="parenright" k="-29" /> +<hkern g1="T" g2="asterisk" k="-82" /> +<hkern g1="T" g2="hyphen,uni00AD,endash,emdash" k="82" /> +<hkern g1="T" g2="comma,period,ellipsis" k="123" /> +<hkern g1="T" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="143" /> +<hkern g1="T" g2="d" k="143" /> +<hkern g1="T" g2="g" k="143" /> +<hkern g1="T" g2="q" k="143" /> +<hkern g1="T" g2="s" k="82" /> +<hkern g1="T" g2="w" k="102" /> +<hkern g1="T" g2="y,yacute,ydieresis" k="123" /> +<hkern g1="T" g2="quoteleft,quotedblleft" k="-123" /> +<hkern g1="T" g2="quoteright,quotedblright" k="-123" /> +<hkern g1="T" g2="ampersand" k="41" /> +<hkern g1="T" g2="parenleft" k="18" /> +<hkern g1="T" g2="colon,semicolon" k="61" /> +<hkern g1="T" g2="at" k="61" /> +<hkern g1="T" g2="M" k="31" /> +<hkern g1="T" g2="S" k="-82" /> +<hkern g1="T" g2="W" k="-51" /> +<hkern g1="T" g2="m,n,ntilde" k="143" /> +<hkern g1="T" g2="p" k="143" /> +<hkern g1="T" g2="r" k="143" /> +<hkern g1="T" g2="u,ugrave,uacute,ucircumflex,udieresis" k="143" /> +<hkern g1="T" g2="z" k="102" /> +<hkern g1="T" g2="braceleft" k="59" /> +<hkern g1="T" g2="braceright" k="-66" /> +<hkern g1="T" g2="guillemotright,guilsinglright" k="82" /> +<hkern g1="T" g2="exclamdown" k="20" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="slash" k="29" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="20" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="J" k="39" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="guillemotleft,guilsinglleft" k="16" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="questiondown" k="49" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="AE" k="53" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="hyphen,uni00AD,endash,emdash" k="-41" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="quoteleft,quotedblleft" k="-68" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="quoteright,quotedblright" k="-68" /> +<hkern g1="V" g2="slash" k="82" /> +<hkern g1="V" g2="question" k="-31" /> +<hkern g1="V" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="102" /> +<hkern g1="V" g2="C,Ccedilla" k="61" /> +<hkern g1="V" g2="G" k="61" /> +<hkern g1="V" g2="J" k="246" /> +<hkern g1="V" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="61" /> +<hkern g1="V" g2="Q" k="61" /> +<hkern g1="V" g2="T" k="-41" /> +<hkern g1="V" g2="backslash" k="-61" /> +<hkern g1="V" g2="bracketright" k="-53" /> +<hkern g1="V" g2="c,ccedilla" k="82" /> +<hkern g1="V" g2="e,egrave,eacute,ecircumflex,edieresis" k="82" /> +<hkern g1="V" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="82" /> +<hkern g1="V" g2="x" k="20" /> +<hkern g1="V" g2="quotesinglbase,quotedblbase" k="102" /> +<hkern g1="V" g2="guillemotleft,guilsinglleft" k="84" /> +<hkern g1="V" g2="questiondown" k="164" /> +<hkern g1="V" g2="AE" k="160" /> +<hkern g1="V" g2="eth" k="82" /> +<hkern g1="V" g2="parenright" k="-29" /> +<hkern g1="V" g2="asterisk" k="-61" /> +<hkern g1="V" g2="comma,period,ellipsis" k="143" /> +<hkern g1="V" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="82" /> +<hkern g1="V" g2="d" k="82" /> +<hkern g1="V" g2="g" k="82" /> +<hkern g1="V" g2="q" k="82" /> +<hkern g1="V" g2="s" k="61" /> +<hkern g1="V" g2="quoteleft,quotedblleft" k="-82" /> +<hkern g1="V" g2="quoteright,quotedblright" k="-90" /> +<hkern g1="V" g2="ampersand" k="61" /> +<hkern g1="V" g2="parenleft" k="25" /> +<hkern g1="V" g2="colon,semicolon" k="41" /> +<hkern g1="V" g2="at" k="41" /> +<hkern g1="V" g2="M" k="39" /> +<hkern g1="V" g2="m,n,ntilde" k="61" /> +<hkern g1="V" g2="p" k="61" /> +<hkern g1="V" g2="r" k="61" /> +<hkern g1="V" g2="u,ugrave,uacute,ucircumflex,udieresis" k="43" /> +<hkern g1="V" g2="z" k="61" /> +<hkern g1="V" g2="braceleft" k="49" /> +<hkern g1="V" g2="braceright" k="-66" /> +<hkern g1="V" g2="guillemotright,guilsinglright" k="25" /> +<hkern g1="V" g2="exclamdown" k="37" /> +<hkern g1="V" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="35" /> +<hkern g1="V" g2="germandbls" k="35" /> +<hkern g1="W" g2="slash" k="45" /> +<hkern g1="W" g2="question" k="-31" /> +<hkern g1="W" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="55" /> +<hkern g1="W" g2="C,Ccedilla" k="-205" /> +<hkern g1="W" g2="G" k="-205" /> +<hkern g1="W" g2="J" k="123" /> +<hkern g1="W" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="-205" /> +<hkern g1="W" g2="Q" k="-205" /> +<hkern g1="W" g2="T" k="-41" /> +<hkern g1="W" g2="backslash" k="-57" /> +<hkern g1="W" g2="bracketright" k="-47" /> +<hkern g1="W" g2="c,ccedilla" k="41" /> +<hkern g1="W" g2="e,egrave,eacute,ecircumflex,edieresis" k="41" /> +<hkern g1="W" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="41" /> +<hkern g1="W" g2="v" k="-31" /> +<hkern g1="W" g2="quotesinglbase,quotedblbase" k="45" /> +<hkern g1="W" g2="guillemotleft,guilsinglleft" k="45" /> +<hkern g1="W" g2="questiondown" k="102" /> +<hkern g1="W" g2="AE" k="104" /> +<hkern g1="W" g2="eth" k="41" /> +<hkern g1="W" g2="asterisk" k="-61" /> +<hkern g1="W" g2="hyphen,uni00AD,endash,emdash" k="-41" /> +<hkern g1="W" g2="comma,period,ellipsis" k="82" /> +<hkern g1="W" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="41" /> +<hkern g1="W" g2="d" k="41" /> +<hkern g1="W" g2="g" k="41" /> +<hkern g1="W" g2="q" k="41" /> +<hkern g1="W" g2="s" k="31" /> +<hkern g1="W" g2="quoteleft,quotedblleft" k="-82" /> +<hkern g1="W" g2="quoteright,quotedblright" k="-82" /> +<hkern g1="W" g2="S" k="-61" /> +<hkern g1="W" g2="m,n,ntilde" k="31" /> +<hkern g1="W" g2="p" k="31" /> +<hkern g1="W" g2="r" k="31" /> +<hkern g1="W" g2="u,ugrave,uacute,ucircumflex,udieresis" k="29" /> +<hkern g1="W" g2="z" k="27" /> +<hkern g1="W" g2="braceright" k="-82" /> +<hkern g1="W" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="33" /> +<hkern g1="W" g2="germandbls" k="33" /> +<hkern g1="X" g2="slash" k="-66" /> +<hkern g1="X" g2="C,Ccedilla" k="72" /> +<hkern g1="X" g2="G" k="72" /> +<hkern g1="X" g2="J" k="-39" /> +<hkern g1="X" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="72" /> +<hkern g1="X" g2="Q" k="72" /> +<hkern g1="X" g2="T" k="20" /> +<hkern g1="X" g2="backslash" k="-35" /> +<hkern g1="X" g2="bracketright" k="-27" /> +<hkern g1="X" g2="c,ccedilla" k="61" /> +<hkern g1="X" g2="e,egrave,eacute,ecircumflex,edieresis" k="61" /> +<hkern g1="X" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="61" /> +<hkern g1="X" g2="v" k="61" /> +<hkern g1="X" g2="x" k="-20" /> +<hkern g1="X" g2="quotesinglbase,quotedblbase" k="-76" /> +<hkern g1="X" g2="guillemotleft,guilsinglleft" k="72" /> +<hkern g1="X" g2="questiondown" k="-61" /> +<hkern g1="X" g2="AE" k="-72" /> +<hkern g1="X" g2="eth" k="61" /> +<hkern g1="X" g2="hyphen,uni00AD,endash,emdash" k="20" /> +<hkern g1="X" g2="comma,period,ellipsis" k="-51" /> +<hkern g1="X" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="51" /> +<hkern g1="X" g2="d" k="51" /> +<hkern g1="X" g2="g" k="51" /> +<hkern g1="X" g2="q" k="51" /> +<hkern g1="X" g2="w" k="41" /> +<hkern g1="X" g2="y,yacute,ydieresis" k="47" /> +<hkern g1="X" g2="quoteleft,quotedblleft" k="-53" /> +<hkern g1="X" g2="quoteright,quotedblright" k="-43" /> +<hkern g1="X" g2="ampersand" k="41" /> +<hkern g1="X" g2="at" k="23" /> +<hkern g1="X" g2="S" k="-41" /> +<hkern g1="X" g2="u,ugrave,uacute,ucircumflex,udieresis" k="33" /> +<hkern g1="X" g2="braceleft" k="31" /> +<hkern g1="X" g2="braceright" k="-39" /> +<hkern g1="X" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="23" /> +<hkern g1="X" g2="Z" k="-35" /> +<hkern g1="X" g2="t" k="31" /> +<hkern g1="Y,Yacute,Ydieresis" g2="slash" k="102" /> +<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="143" /> +<hkern g1="Y,Yacute,Ydieresis" g2="C,Ccedilla" k="51" /> +<hkern g1="Y,Yacute,Ydieresis" g2="G" k="51" /> +<hkern g1="Y,Yacute,Ydieresis" g2="J" k="246" /> +<hkern g1="Y,Yacute,Ydieresis" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="51" /> +<hkern g1="Y,Yacute,Ydieresis" g2="Q" k="51" /> +<hkern g1="Y,Yacute,Ydieresis" g2="T" k="-41" /> +<hkern g1="Y,Yacute,Ydieresis" g2="backslash" k="-68" /> +<hkern g1="Y,Yacute,Ydieresis" g2="bracketright" k="-57" /> +<hkern g1="Y,Yacute,Ydieresis" g2="c,ccedilla" k="164" /> +<hkern g1="Y,Yacute,Ydieresis" g2="e,egrave,eacute,ecircumflex,edieresis" k="164" /> +<hkern g1="Y,Yacute,Ydieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="164" /> +<hkern g1="Y,Yacute,Ydieresis" g2="v" k="41" /> +<hkern g1="Y,Yacute,Ydieresis" g2="x" k="82" /> +<hkern g1="Y,Yacute,Ydieresis" g2="quotesinglbase,quotedblbase" k="113" /> +<hkern g1="Y,Yacute,Ydieresis" g2="guillemotleft,guilsinglleft" k="102" /> +<hkern g1="Y,Yacute,Ydieresis" g2="questiondown" k="164" /> +<hkern g1="Y,Yacute,Ydieresis" g2="AE" k="162" /> +<hkern g1="Y,Yacute,Ydieresis" g2="eth" k="164" /> +<hkern g1="Y,Yacute,Ydieresis" g2="parenright" k="-35" /> +<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,uni00AD,endash,emdash" k="43" /> +<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,ellipsis" k="143" /> +<hkern g1="Y,Yacute,Ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="184" /> +<hkern g1="Y,Yacute,Ydieresis" g2="d" k="184" /> +<hkern g1="Y,Yacute,Ydieresis" g2="g" k="184" /> +<hkern g1="Y,Yacute,Ydieresis" g2="q" k="184" /> +<hkern g1="Y,Yacute,Ydieresis" g2="s" k="123" /> +<hkern g1="Y,Yacute,Ydieresis" g2="y,yacute,ydieresis" k="41" /> +<hkern g1="Y,Yacute,Ydieresis" g2="quoteleft,quotedblleft" k="-61" /> +<hkern g1="Y,Yacute,Ydieresis" g2="quoteright,quotedblright" k="-76" /> +<hkern g1="Y,Yacute,Ydieresis" g2="ampersand" k="123" /> +<hkern g1="Y,Yacute,Ydieresis" g2="parenleft" k="49" /> +<hkern g1="Y,Yacute,Ydieresis" g2="colon,semicolon" k="51" /> +<hkern g1="Y,Yacute,Ydieresis" g2="at" k="61" /> +<hkern g1="Y,Yacute,Ydieresis" g2="M" k="41" /> +<hkern g1="Y,Yacute,Ydieresis" g2="S" k="-20" /> +<hkern g1="Y,Yacute,Ydieresis" g2="m,n,ntilde" k="86" /> +<hkern g1="Y,Yacute,Ydieresis" g2="p" k="86" /> +<hkern g1="Y,Yacute,Ydieresis" g2="r" k="86" /> +<hkern g1="Y,Yacute,Ydieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="102" /> +<hkern g1="Y,Yacute,Ydieresis" g2="z" k="123" /> +<hkern g1="Y,Yacute,Ydieresis" g2="braceleft" k="63" /> +<hkern g1="Y,Yacute,Ydieresis" g2="braceright" k="-70" /> +<hkern g1="Y,Yacute,Ydieresis" g2="guillemotright,guilsinglright" k="51" /> +<hkern g1="Y,Yacute,Ydieresis" g2="exclamdown" k="61" /> +<hkern g1="Z" g2="slash" k="-35" /> +<hkern g1="Z" g2="C,Ccedilla" k="51" /> +<hkern g1="Z" g2="G" k="51" /> +<hkern g1="Z" g2="J" k="-35" /> +<hkern g1="Z" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="51" /> +<hkern g1="Z" g2="Q" k="51" /> +<hkern g1="Z" g2="V" k="-35" /> +<hkern g1="Z" g2="X" k="-37" /> +<hkern g1="Z" g2="backslash" k="-35" /> +<hkern g1="Z" g2="bracketright" k="-27" /> +<hkern g1="Z" g2="c,ccedilla" k="123" /> +<hkern g1="Z" g2="e,egrave,eacute,ecircumflex,edieresis" k="123" /> +<hkern g1="Z" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="123" /> +<hkern g1="Z" g2="quotesinglbase,quotedblbase" k="-86" /> +<hkern g1="Z" g2="guillemotleft,guilsinglleft" k="51" /> +<hkern g1="Z" g2="AE" k="-43" /> +<hkern g1="Z" g2="eth" k="123" /> +<hkern g1="Z" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="102" /> +<hkern g1="Z" g2="d" k="102" /> +<hkern g1="Z" g2="g" k="102" /> +<hkern g1="Z" g2="j" k="25" /> +<hkern g1="Z" g2="q" k="102" /> +<hkern g1="Z" g2="quoteleft,quotedblleft" k="-82" /> +<hkern g1="Z" g2="quoteright,quotedblright" k="-84" /> +<hkern g1="Z" g2="W" k="-25" /> +<hkern g1="Z" g2="u,ugrave,uacute,ucircumflex,udieresis" k="82" /> +<hkern g1="Z" g2="braceright" k="-41" /> +<hkern g1="Thorn" g2="slash" k="59" /> +<hkern g1="Thorn" g2="question" k="31" /> +<hkern g1="Thorn" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="68" /> +<hkern g1="Thorn" g2="J" k="102" /> +<hkern g1="Thorn" g2="T" k="90" /> +<hkern g1="Thorn" g2="V" k="57" /> +<hkern g1="Thorn" g2="X" k="63" /> +<hkern g1="Thorn" g2="Y,Yacute,Ydieresis" k="102" /> +<hkern g1="Thorn" g2="backslash" k="49" /> +<hkern g1="Thorn" g2="bracketright" k="61" /> +<hkern g1="Thorn" g2="questiondown" k="49" /> +<hkern g1="Thorn" g2="AE" k="76" /> +<hkern g1="Thorn" g2="parenright" k="49" /> +<hkern g1="Thorn" g2="hyphen,uni00AD,endash,emdash" k="-61" /> +<hkern g1="Thorn" g2="quoteright,quotedblright" k="18" /> +<hkern g1="Thorn" g2="M" k="18" /> +<hkern g1="Thorn" g2="braceleft" k="-16" /> +<hkern g1="Thorn" g2="braceright" k="33" /> +<hkern g1="Thorn" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="16" /> +<hkern g1="Thorn" g2="Z" k="45" /> +<hkern g1="parenleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="20" /> +<hkern g1="parenleft" g2="C,Ccedilla" k="49" /> +<hkern g1="parenleft" g2="G" k="49" /> +<hkern g1="parenleft" g2="J" k="41" /> +<hkern g1="parenleft" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="49" /> +<hkern g1="parenleft" g2="Q" k="49" /> +<hkern g1="parenleft" g2="T" k="-20" /> +<hkern g1="parenleft" g2="V" k="-41" /> +<hkern g1="parenleft" g2="X" k="-20" /> +<hkern g1="parenleft" g2="Y,Yacute,Ydieresis" k="-41" /> +<hkern g1="parenleft" g2="c,ccedilla" k="82" /> +<hkern g1="parenleft" g2="e,egrave,eacute,ecircumflex,edieresis" k="82" /> +<hkern g1="parenleft" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="82" /> +<hkern g1="parenleft" g2="v" k="18" /> +<hkern g1="parenleft" g2="x" k="29" /> +<hkern g1="parenleft" g2="eth" k="82" /> +<hkern g1="parenleft" g2="parenright" k="-123" /> +<hkern g1="parenleft" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="61" /> +<hkern g1="parenleft" g2="d" k="61" /> +<hkern g1="parenleft" g2="g" k="61" /> +<hkern g1="parenleft" g2="j" k="-102" /> +<hkern g1="parenleft" g2="q" k="61" /> +<hkern g1="parenleft" g2="s" k="70" /> +<hkern g1="parenleft" g2="w" k="29" /> +<hkern g1="parenleft" g2="y,yacute,ydieresis" k="-20" /> +<hkern g1="parenleft" g2="W" k="-41" /> +<hkern g1="parenleft" g2="m,n,ntilde" k="68" /> +<hkern g1="parenleft" g2="p" k="68" /> +<hkern g1="parenleft" g2="r" k="68" /> +<hkern g1="parenleft" g2="u,ugrave,uacute,ucircumflex,udieresis" k="41" /> +<hkern g1="parenleft" g2="z" k="59" /> +<hkern g1="parenleft" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="20" /> +<hkern g1="parenleft" g2="germandbls" k="20" /> +<hkern g1="parenleft" g2="t" k="27" /> +<hkern g1="parenleft" g2="B" k="20" /> +<hkern g1="parenleft" g2="D,Eth" k="20" /> +<hkern g1="parenleft" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="20" /> +<hkern g1="parenleft" g2="F" k="20" /> +<hkern g1="parenleft" g2="H" k="20" /> +<hkern g1="parenleft" g2="I,Igrave,Iacute,Icircumflex,Idieresis" k="20" /> +<hkern g1="parenleft" g2="K" k="20" /> +<hkern g1="parenleft" g2="L" k="20" /> +<hkern g1="parenleft" g2="N,Ntilde" k="20" /> +<hkern g1="parenleft" g2="P" k="20" /> +<hkern g1="parenleft" g2="R" k="20" /> +<hkern g1="parenleft" g2="Thorn" k="20" /> +<hkern g1="parenright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="41" /> +<hkern g1="parenright" g2="J" k="20" /> +<hkern g1="parenright" g2="T" k="43" /> +<hkern g1="parenright" g2="V" k="37" /> +<hkern g1="parenright" g2="X" k="35" /> +<hkern g1="parenright" g2="Y,Yacute,Ydieresis" k="72" /> +<hkern g1="parenright" g2="x" k="23" /> +<hkern g1="parenright" g2="AE" k="29" /> +<hkern g1="parenright" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="16" /> +<hkern g1="parenright" g2="d" k="16" /> +<hkern g1="parenright" g2="g" k="16" /> +<hkern g1="parenright" g2="j" k="16" /> +<hkern g1="parenright" g2="q" k="16" /> +<hkern g1="parenright" g2="y,yacute,ydieresis" k="29" /> +<hkern g1="parenright" g2="z" k="16" /> +<hkern g1="parenright" g2="Z" k="20" /> +<hkern g1="bracketleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="80" /> +<hkern g1="bracketleft" g2="C,Ccedilla" k="45" /> +<hkern g1="bracketleft" g2="G" k="45" /> +<hkern g1="bracketleft" g2="J" k="78" /> +<hkern g1="bracketleft" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="45" /> +<hkern g1="bracketleft" g2="Q" k="45" /> +<hkern g1="bracketleft" g2="T" k="-41" /> +<hkern g1="bracketleft" g2="V" k="-55" /> +<hkern g1="bracketleft" g2="X" k="-35" /> +<hkern g1="bracketleft" g2="Y,Yacute,Ydieresis" k="-55" /> +<hkern g1="bracketleft" g2="bracketright" k="-164" /> +<hkern g1="bracketleft" g2="c,ccedilla" k="61" /> +<hkern g1="bracketleft" g2="e,egrave,eacute,ecircumflex,edieresis" k="61" /> +<hkern g1="bracketleft" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="61" /> +<hkern g1="bracketleft" g2="AE" k="70" /> +<hkern g1="bracketleft" g2="eth" k="61" /> +<hkern g1="bracketleft" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="84" /> +<hkern g1="bracketleft" g2="d" k="84" /> +<hkern g1="bracketleft" g2="g" k="84" /> +<hkern g1="bracketleft" g2="j" k="-164" /> +<hkern g1="bracketleft" g2="q" k="84" /> +<hkern g1="bracketleft" g2="s" k="66" /> +<hkern g1="bracketleft" g2="y,yacute,ydieresis" k="-39" /> +<hkern g1="bracketleft" g2="M" k="29" /> +<hkern g1="bracketleft" g2="W" k="-43" /> +<hkern g1="bracketleft" g2="m,n,ntilde" k="82" /> +<hkern g1="bracketleft" g2="p" k="82" /> +<hkern g1="bracketleft" g2="r" k="82" /> +<hkern g1="bracketleft" g2="u,ugrave,uacute,ucircumflex,udieresis" k="59" /> +<hkern g1="bracketleft" g2="z" k="59" /> +<hkern g1="bracketleft" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="41" /> +<hkern g1="bracketleft" g2="germandbls" k="41" /> +<hkern g1="bracketright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="16" /> +<hkern g1="bracketright" g2="J" k="16" /> +<hkern g1="bracketright" g2="T" k="16" /> +<hkern g1="bracketright" g2="c,ccedilla" k="31" /> +<hkern g1="bracketright" g2="e,egrave,eacute,ecircumflex,edieresis" k="31" /> +<hkern g1="bracketright" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="31" /> +<hkern g1="bracketright" g2="eth" k="31" /> +<hkern g1="bracketright" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="29" /> +<hkern g1="bracketright" g2="d" k="29" /> +<hkern g1="bracketright" g2="g" k="29" /> +<hkern g1="bracketright" g2="j" k="-25" /> +<hkern g1="bracketright" g2="q" k="29" /> +<hkern g1="bracketright" g2="s" k="20" /> +<hkern g1="bracketright" g2="y,yacute,ydieresis" k="20" /> +<hkern g1="bracketright" g2="m,n,ntilde" k="25" /> +<hkern g1="bracketright" g2="p" k="25" /> +<hkern g1="bracketright" g2="r" k="25" /> +<hkern g1="bracketright" g2="u,ugrave,uacute,ucircumflex,udieresis" k="20" /> +<hkern g1="bracketright" g2="z" k="31" /> +<hkern g1="bracketright" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="20" /> +<hkern g1="bracketright" g2="germandbls" k="20" /> +<hkern g1="bracketright" g2="t" k="20" /> +<hkern g1="bracketright" g2="h" k="25" /> +<hkern g1="bracketright" g2="i,igrave,iacute,icircumflex,idieresis" k="25" /> +<hkern g1="bracketright" g2="k" k="25" /> +<hkern g1="bracketright" g2="l" k="20" /> +<hkern g1="braceleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="25" /> +<hkern g1="braceleft" g2="J" k="23" /> +<hkern g1="braceleft" g2="T" k="-68" /> +<hkern g1="braceleft" g2="V" k="-82" /> +<hkern g1="braceleft" g2="X" k="-61" /> +<hkern g1="braceleft" g2="Y,Yacute,Ydieresis" k="-82" /> +<hkern g1="braceleft" g2="c,ccedilla" k="41" /> +<hkern g1="braceleft" g2="e,egrave,eacute,ecircumflex,edieresis" k="41" /> +<hkern g1="braceleft" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="41" /> +<hkern g1="braceleft" g2="v" k="-20" /> +<hkern g1="braceleft" g2="eth" k="41" /> +<hkern g1="braceleft" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="45" /> +<hkern g1="braceleft" g2="d" k="45" /> +<hkern g1="braceleft" g2="g" k="45" /> +<hkern g1="braceleft" g2="j" k="-164" /> +<hkern g1="braceleft" g2="q" k="45" /> +<hkern g1="braceleft" g2="s" k="27" /> +<hkern g1="braceleft" g2="y,yacute,ydieresis" k="-66" /> +<hkern g1="braceleft" g2="S" k="-23" /> +<hkern g1="braceleft" g2="W" k="-72" /> +<hkern g1="braceleft" g2="m,n,ntilde" k="27" /> +<hkern g1="braceleft" g2="p" k="27" /> +<hkern g1="braceleft" g2="r" k="27" /> +<hkern g1="braceleft" g2="u,ugrave,uacute,ucircumflex,udieresis" k="33" /> +<hkern g1="braceleft" g2="z" k="33" /> +<hkern g1="braceleft" g2="braceright" k="-215" /> +<hkern g1="braceleft" g2="Z" k="-27" /> +<hkern g1="braceright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="29" /> +<hkern g1="braceright" g2="T" k="41" /> +<hkern g1="braceright" g2="V" k="39" /> +<hkern g1="braceright" g2="X" k="31" /> +<hkern g1="braceright" g2="Y,Yacute,Ydieresis" k="66" /> +<hkern g1="braceright" g2="x" k="27" /> +<hkern g1="braceright" g2="AE" k="35" /> +<hkern g1="asterisk" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="123" /> +<hkern g1="asterisk" g2="C,Ccedilla" k="27" /> +<hkern g1="asterisk" g2="G" k="27" /> +<hkern g1="asterisk" g2="J" k="211" /> +<hkern g1="asterisk" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="27" /> +<hkern g1="asterisk" g2="Q" k="27" /> +<hkern g1="asterisk" g2="T" k="29" /> +<hkern g1="asterisk" g2="V" k="18" /> +<hkern g1="asterisk" g2="X" k="90" /> +<hkern g1="asterisk" g2="Y,Yacute,Ydieresis" k="61" /> +<hkern g1="asterisk" g2="c,ccedilla" k="41" /> +<hkern g1="asterisk" g2="e,egrave,eacute,ecircumflex,edieresis" k="41" /> +<hkern g1="asterisk" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="41" /> +<hkern g1="asterisk" g2="AE" k="184" /> +<hkern g1="asterisk" g2="eth" k="41" /> +<hkern g1="asterisk" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="41" /> +<hkern g1="asterisk" g2="d" k="41" /> +<hkern g1="asterisk" g2="g" k="41" /> +<hkern g1="asterisk" g2="j" k="47" /> +<hkern g1="asterisk" g2="q" k="41" /> +<hkern g1="asterisk" g2="s" k="29" /> +<hkern g1="asterisk" g2="M" k="39" /> +<hkern g1="asterisk" g2="m,n,ntilde" k="33" /> +<hkern g1="asterisk" g2="p" k="33" /> +<hkern g1="asterisk" g2="r" k="33" /> +<hkern g1="asterisk" g2="u,ugrave,uacute,ucircumflex,udieresis" k="18" /> +<hkern g1="asterisk" g2="z" k="41" /> +<hkern g1="asterisk" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="35" /> +<hkern g1="asterisk" g2="germandbls" k="35" /> +<hkern g1="asterisk" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="16" /> +<hkern g1="asterisk" g2="Z" k="70" /> +<hkern g1="asterisk" g2="t" k="18" /> +<hkern g1="asterisk" g2="h" k="33" /> +<hkern g1="asterisk" g2="i,igrave,iacute,icircumflex,idieresis" k="33" /> +<hkern g1="asterisk" g2="k" k="33" /> +<hkern g1="asterisk" g2="l" k="27" /> +<hkern g1="asterisk" g2="b" k="25" /> +<hkern g1="quoteleft,quotedblleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="143" /> +<hkern g1="quoteleft,quotedblleft" g2="J" k="184" /> +<hkern g1="quoteleft,quotedblleft" g2="T" k="-61" /> +<hkern g1="quoteleft,quotedblleft" g2="V" k="-57" /> +<hkern g1="quoteleft,quotedblleft" g2="Y,Yacute,Ydieresis" k="-39" /> +<hkern g1="quoteleft,quotedblleft" g2="c,ccedilla" k="61" /> +<hkern g1="quoteleft,quotedblleft" g2="e,egrave,eacute,ecircumflex,edieresis" k="61" /> +<hkern g1="quoteleft,quotedblleft" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="61" /> +<hkern g1="quoteleft,quotedblleft" g2="v" k="-41" /> +<hkern g1="quoteleft,quotedblleft" g2="AE" k="246" /> +<hkern g1="quoteleft,quotedblleft" g2="eth" k="61" /> +<hkern g1="quoteleft,quotedblleft" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="61" /> +<hkern g1="quoteleft,quotedblleft" g2="d" k="61" /> +<hkern g1="quoteleft,quotedblleft" g2="g" k="61" /> +<hkern g1="quoteleft,quotedblleft" g2="j" k="25" /> +<hkern g1="quoteleft,quotedblleft" g2="q" k="61" /> +<hkern g1="quoteleft,quotedblleft" g2="s" k="41" /> +<hkern g1="quoteleft,quotedblleft" g2="w" k="-31" /> +<hkern g1="quoteleft,quotedblleft" g2="y,yacute,ydieresis" k="-23" /> +<hkern g1="quoteleft,quotedblleft" g2="S" k="-47" /> +<hkern g1="quoteleft,quotedblleft" g2="W" k="-57" /> +<hkern g1="quoteleft,quotedblleft" g2="Z" k="-23" /> +<hkern g1="quoteright,quotedblright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="164" /> +<hkern g1="quoteright,quotedblright" g2="C,Ccedilla" k="18" /> +<hkern g1="quoteright,quotedblright" g2="G" k="18" /> +<hkern g1="quoteright,quotedblright" g2="J" k="205" /> +<hkern g1="quoteright,quotedblright" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="18" /> +<hkern g1="quoteright,quotedblright" g2="Q" k="18" /> +<hkern g1="quoteright,quotedblright" g2="V" k="-47" /> +<hkern g1="quoteright,quotedblright" g2="Y,Yacute,Ydieresis" k="-29" /> +<hkern g1="quoteright,quotedblright" g2="c,ccedilla" k="82" /> +<hkern g1="quoteright,quotedblright" g2="e,egrave,eacute,ecircumflex,edieresis" k="82" /> +<hkern g1="quoteright,quotedblright" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="82" /> +<hkern g1="quoteright,quotedblright" g2="x" k="20" /> +<hkern g1="quoteright,quotedblright" g2="AE" k="246" /> +<hkern g1="quoteright,quotedblright" g2="eth" k="82" /> +<hkern g1="quoteright,quotedblright" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="92" /> +<hkern g1="quoteright,quotedblright" g2="d" k="92" /> +<hkern g1="quoteright,quotedblright" g2="g" k="92" /> +<hkern g1="quoteright,quotedblright" g2="j" k="39" /> +<hkern g1="quoteright,quotedblright" g2="q" k="92" /> +<hkern g1="quoteright,quotedblright" g2="s" k="51" /> +<hkern g1="quoteright,quotedblright" g2="y,yacute,ydieresis" k="20" /> +<hkern g1="quoteright,quotedblright" g2="M" k="16" /> +<hkern g1="quoteright,quotedblright" g2="S" k="-37" /> +<hkern g1="quoteright,quotedblright" g2="W" k="-51" /> +<hkern g1="quoteright,quotedblright" g2="m,n,ntilde" k="61" /> +<hkern g1="quoteright,quotedblright" g2="p" k="61" /> +<hkern g1="quoteright,quotedblright" g2="r" k="61" /> +<hkern g1="quoteright,quotedblright" g2="u,ugrave,uacute,ucircumflex,udieresis" k="43" /> +<hkern g1="quoteright,quotedblright" g2="z" k="51" /> +<hkern g1="quoteright,quotedblright" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="53" /> +<hkern g1="quoteright,quotedblright" g2="germandbls" k="53" /> +<hkern g1="quoteright,quotedblright" g2="t" k="37" /> +<hkern g1="quoteright,quotedblright" g2="h" k="47" /> +<hkern g1="quoteright,quotedblright" g2="i,igrave,iacute,icircumflex,idieresis" k="25" /> +<hkern g1="quoteright,quotedblright" g2="k" k="47" /> +<hkern g1="quoteright,quotedblright" g2="l" k="39" /> +<hkern g1="quoteright,quotedblright" g2="b" k="41" /> +<hkern g1="quotesinglbase,quotedblbase" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-78" /> +<hkern g1="quotesinglbase,quotedblbase" g2="C,Ccedilla" k="43" /> +<hkern g1="quotesinglbase,quotedblbase" g2="G" k="43" /> +<hkern g1="quotesinglbase,quotedblbase" g2="J" k="-80" /> +<hkern g1="quotesinglbase,quotedblbase" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="43" /> +<hkern g1="quotesinglbase,quotedblbase" g2="Q" k="43" /> +<hkern g1="quotesinglbase,quotedblbase" g2="T" k="184" /> +<hkern g1="quotesinglbase,quotedblbase" g2="V" k="164" /> +<hkern g1="quotesinglbase,quotedblbase" g2="X" k="-61" /> +<hkern g1="quotesinglbase,quotedblbase" g2="Y,Yacute,Ydieresis" k="225" /> +<hkern g1="quotesinglbase,quotedblbase" g2="c,ccedilla" k="61" /> +<hkern g1="quotesinglbase,quotedblbase" g2="e,egrave,eacute,ecircumflex,edieresis" k="61" /> +<hkern g1="quotesinglbase,quotedblbase" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="61" /> +<hkern g1="quotesinglbase,quotedblbase" g2="v" k="61" /> +<hkern g1="quotesinglbase,quotedblbase" g2="x" k="-25" /> +<hkern g1="quotesinglbase,quotedblbase" g2="AE" k="-72" /> +<hkern g1="quotesinglbase,quotedblbase" g2="eth" k="61" /> +<hkern g1="quotesinglbase,quotedblbase" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="61" /> +<hkern g1="quotesinglbase,quotedblbase" g2="d" k="61" /> +<hkern g1="quotesinglbase,quotedblbase" g2="g" k="61" /> +<hkern g1="quotesinglbase,quotedblbase" g2="j" k="-102" /> +<hkern g1="quotesinglbase,quotedblbase" g2="q" k="61" /> +<hkern g1="quotesinglbase,quotedblbase" g2="w" k="59" /> +<hkern g1="quotesinglbase,quotedblbase" g2="M" k="-47" /> +<hkern g1="quotesinglbase,quotedblbase" g2="S" k="-63" /> +<hkern g1="quotesinglbase,quotedblbase" g2="W" k="72" /> +<hkern g1="quotesinglbase,quotedblbase" g2="z" k="-29" /> +<hkern g1="quotesinglbase,quotedblbase" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="41" /> +<hkern g1="quotesinglbase,quotedblbase" g2="Z" k="-68" /> +<hkern g1="quotesinglbase,quotedblbase" g2="B" k="-31" /> +<hkern g1="quotesinglbase,quotedblbase" g2="D,Eth" k="-31" /> +<hkern g1="quotesinglbase,quotedblbase" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="-31" /> +<hkern g1="quotesinglbase,quotedblbase" g2="F" k="-31" /> +<hkern g1="quotesinglbase,quotedblbase" g2="H" k="-31" /> +<hkern g1="quotesinglbase,quotedblbase" g2="I,Igrave,Iacute,Icircumflex,Idieresis" k="-31" /> +<hkern g1="quotesinglbase,quotedblbase" g2="K" k="-31" /> +<hkern g1="quotesinglbase,quotedblbase" g2="L" k="-31" /> +<hkern g1="quotesinglbase,quotedblbase" g2="N,Ntilde" k="-31" /> +<hkern g1="quotesinglbase,quotedblbase" g2="P" k="-31" /> +<hkern g1="quotesinglbase,quotedblbase" g2="R" k="-31" /> +<hkern g1="quotesinglbase,quotedblbase" g2="Thorn" k="-31" /> +<hkern g1="guillemotleft,guilsinglleft" g2="J" k="-31" /> +<hkern g1="guillemotleft,guilsinglleft" g2="T" k="121" /> +<hkern g1="guillemotleft,guilsinglleft" g2="V" k="29" /> +<hkern g1="guillemotleft,guilsinglleft" g2="Y,Yacute,Ydieresis" k="82" /> +<hkern g1="guillemotleft,guilsinglleft" g2="v" k="-25" /> +<hkern g1="guillemotright,guilsinglright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="33" /> +<hkern g1="guillemotright,guilsinglright" g2="T" k="143" /> +<hkern g1="guillemotright,guilsinglright" g2="V" k="80" /> +<hkern g1="guillemotright,guilsinglright" g2="X" k="68" /> +<hkern g1="guillemotright,guilsinglright" g2="Y,Yacute,Ydieresis" k="205" /> +<hkern g1="guillemotright,guilsinglright" g2="v" k="25" /> +<hkern g1="guillemotright,guilsinglright" g2="x" k="63" /> +<hkern g1="guillemotright,guilsinglright" g2="AE" k="61" /> +<hkern g1="guillemotright,guilsinglright" g2="j" k="39" /> +<hkern g1="guillemotright,guilsinglright" g2="s" k="35" /> +<hkern g1="guillemotright,guilsinglright" g2="w" k="31" /> +<hkern g1="guillemotright,guilsinglright" g2="y,yacute,ydieresis" k="43" /> +<hkern g1="guillemotright,guilsinglright" g2="W" k="25" /> +<hkern g1="guillemotright,guilsinglright" g2="m,n,ntilde" k="27" /> +<hkern g1="guillemotright,guilsinglright" g2="p" k="27" /> +<hkern g1="guillemotright,guilsinglright" g2="r" k="27" /> +<hkern g1="guillemotright,guilsinglright" g2="z" k="49" /> +<hkern g1="guillemotright,guilsinglright" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="29" /> +<hkern g1="guillemotright,guilsinglright" g2="germandbls" k="29" /> +<hkern g1="guillemotright,guilsinglright" g2="h" k="27" /> +<hkern g1="guillemotright,guilsinglright" g2="i,igrave,iacute,icircumflex,idieresis" k="25" /> +<hkern g1="guillemotright,guilsinglright" g2="k" k="27" /> +<hkern g1="guillemotright,guilsinglright" g2="b" k="20" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="T" k="123" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="V" k="61" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="X" k="41" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Y,Yacute,Ydieresis" k="205" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="c,ccedilla" k="-20" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="e,egrave,eacute,ecircumflex,edieresis" k="-20" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="-51" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="d" k="-51" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="g" k="-51" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="l" k="-20" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="b" k="-31" /> +<hkern g1="comma,period,ellipsis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="41" /> +<hkern g1="comma,period,ellipsis" g2="v" k="61" /> +<hkern g1="comma,period,ellipsis" g2="x" k="-41" /> +<hkern g1="comma,period,ellipsis" g2="z" k="-41" /> +<hkern g1="comma,period,ellipsis" g2="eth" k="41" /> +<hkern g1="comma,period,ellipsis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-102" /> +<hkern g1="comma,period,ellipsis" g2="C,Ccedilla" k="123" /> +<hkern g1="comma,period,ellipsis" g2="G" k="123" /> +<hkern g1="comma,period,ellipsis" g2="J" k="-92" /> +<hkern g1="comma,period,ellipsis" g2="M" k="-20" /> +<hkern g1="comma,period,ellipsis" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="123" /> +<hkern g1="comma,period,ellipsis" g2="Q" k="123" /> +<hkern g1="comma,period,ellipsis" g2="S" k="-82" /> +<hkern g1="comma,period,ellipsis" g2="T" k="123" /> +<hkern g1="comma,period,ellipsis" g2="V" k="123" /> +<hkern g1="comma,period,ellipsis" g2="W" k="20" /> +<hkern g1="comma,period,ellipsis" g2="X" k="-82" /> +<hkern g1="comma,period,ellipsis" g2="Y,Yacute,Ydieresis" k="205" /> +<hkern g1="comma,period,ellipsis" g2="Z" k="-82" /> +<hkern g1="comma,period,ellipsis" g2="c,ccedilla" k="41" /> +<hkern g1="comma,period,ellipsis" g2="e,egrave,eacute,ecircumflex,edieresis" k="41" /> +<hkern g1="comma,period,ellipsis" g2="j" k="-102" /> +<hkern g1="comma,period,ellipsis" g2="s" k="-41" /> +<hkern g1="comma,period,ellipsis" g2="w" k="41" /> +<hkern g1="comma,period,ellipsis" g2="y,yacute,ydieresis" k="41" /> +<hkern g1="comma,period,ellipsis" g2="AE" k="-82" /> +<hkern g1="colon,semicolon" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-61" /> +<hkern g1="colon,semicolon" g2="J" k="-61" /> +<hkern g1="colon,semicolon" g2="M" k="-31" /> +<hkern g1="colon,semicolon" g2="S" k="-61" /> +<hkern g1="colon,semicolon" g2="T" k="102" /> +<hkern g1="colon,semicolon" g2="V" k="41" /> +<hkern g1="colon,semicolon" g2="X" k="-41" /> +<hkern g1="colon,semicolon" g2="Y,Yacute,Ydieresis" k="102" /> +<hkern g1="colon,semicolon" g2="AE" k="-61" /> +<hkern g1="backslash" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="61" /> +<hkern g1="backslash" g2="q" k="31" /> +<hkern g1="backslash" g2="t" k="41" /> +<hkern g1="backslash" g2="u,ugrave,uacute,ucircumflex,udieresis" k="41" /> +<hkern g1="backslash" g2="v" k="51" /> +<hkern g1="backslash" g2="x" k="-41" /> +<hkern g1="backslash" g2="eth" k="61" /> +<hkern g1="backslash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-41" /> +<hkern g1="backslash" g2="C,Ccedilla" k="57" /> +<hkern g1="backslash" g2="G" k="57" /> +<hkern g1="backslash" g2="J" k="-25" /> +<hkern g1="backslash" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="57" /> +<hkern g1="backslash" g2="Q" k="57" /> +<hkern g1="backslash" g2="T" k="164" /> +<hkern g1="backslash" g2="V" k="96" /> +<hkern g1="backslash" g2="W" k="51" /> +<hkern g1="backslash" g2="X" k="-47" /> +<hkern g1="backslash" g2="Y,Yacute,Ydieresis" k="143" /> +<hkern g1="backslash" g2="c,ccedilla" k="61" /> +<hkern g1="backslash" g2="e,egrave,eacute,ecircumflex,edieresis" k="61" /> +<hkern g1="backslash" g2="j" k="-266" /> +<hkern g1="backslash" g2="w" k="57" /> +<hkern g1="backslash" g2="y,yacute,ydieresis" k="-123" /> +<hkern g1="backslash" g2="AE" k="-51" /> +<hkern g1="backslash" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="43" /> +<hkern g1="backslash" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="31" /> +<hkern g1="backslash" g2="b" k="20" /> +<hkern g1="backslash" g2="d" k="31" /> +<hkern g1="backslash" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="-41" /> +<hkern g1="backslash" g2="g" k="31" /> +<hkern g1="backslash" g2="h" k="16" /> +<hkern g1="backslash" g2="i,igrave,iacute,icircumflex,idieresis" k="16" /> +<hkern g1="backslash" g2="k" k="16" /> +<hkern g1="backslash" g2="l" k="41" /> +<hkern g1="backslash" g2="p" k="-20" /> +<hkern g1="backslash" g2="germandbls" k="-41" /> +<hkern g1="slash" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="164" /> +<hkern g1="slash" g2="q" k="164" /> +<hkern g1="slash" g2="u,ugrave,uacute,ucircumflex,udieresis" k="55" /> +<hkern g1="slash" g2="z" k="55" /> +<hkern g1="slash" g2="eth" k="164" /> +<hkern g1="slash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="143" /> +<hkern g1="slash" g2="C,Ccedilla" k="55" /> +<hkern g1="slash" g2="G" k="55" /> +<hkern g1="slash" g2="J" k="143" /> +<hkern g1="slash" g2="M" k="45" /> +<hkern g1="slash" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="55" /> +<hkern g1="slash" g2="Q" k="55" /> +<hkern g1="slash" g2="T" k="-43" /> +<hkern g1="slash" g2="V" k="-57" /> +<hkern g1="slash" g2="W" k="-47" /> +<hkern g1="slash" g2="X" k="-37" /> +<hkern g1="slash" g2="Y,Yacute,Ydieresis" k="-57" /> +<hkern g1="slash" g2="c,ccedilla" k="164" /> +<hkern g1="slash" g2="e,egrave,eacute,ecircumflex,edieresis" k="164" /> +<hkern g1="slash" g2="s" k="74" /> +<hkern g1="slash" g2="AE" k="164" /> +<hkern g1="slash" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="164" /> +<hkern g1="slash" g2="d" k="164" /> +<hkern g1="slash" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="43" /> +<hkern g1="slash" g2="g" k="164" /> +<hkern g1="slash" g2="p" k="123" /> +<hkern g1="slash" g2="germandbls" k="43" /> +<hkern g1="slash" g2="m,n,ntilde" k="123" /> +<hkern g1="slash" g2="r" k="123" /> +<hkern g1="question" g2="u,ugrave,uacute,ucircumflex,udieresis" k="-102" /> +<hkern g1="question" g2="v" k="-102" /> +<hkern g1="question" g2="x" k="-82" /> +<hkern g1="question" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="61" /> +<hkern g1="question" g2="J" k="82" /> +<hkern g1="question" g2="S" k="-82" /> +<hkern g1="question" g2="T" k="-61" /> +<hkern g1="question" g2="w" k="-102" /> +<hkern g1="question" g2="y,yacute,ydieresis" k="-102" /> +<hkern g1="question" g2="AE" k="102" /> +<hkern g1="ampersand" g2="x" k="-82" /> +<hkern g1="ampersand" g2="z" k="-51" /> +<hkern g1="ampersand" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-102" /> +<hkern g1="ampersand" g2="J" k="-61" /> +<hkern g1="ampersand" g2="M" k="-41" /> +<hkern g1="ampersand" g2="S" k="-41" /> +<hkern g1="ampersand" g2="T" k="102" /> +<hkern g1="ampersand" g2="V" k="82" /> +<hkern g1="ampersand" g2="X" k="-82" /> +<hkern g1="ampersand" g2="Y,Yacute,Ydieresis" k="143" /> +<hkern g1="ampersand" g2="Z" k="-82" /> +<hkern g1="ampersand" g2="s" k="-31" /> +<hkern g1="ampersand" g2="y,yacute,ydieresis" k="20" /> +<hkern g1="ampersand" g2="AE" k="-102" /> +<hkern g1="exclamdown" g2="T" k="119" /> +<hkern g1="exclamdown" g2="V" k="43" /> +<hkern g1="exclamdown" g2="Y,Yacute,Ydieresis" k="82" /> +<hkern g1="questiondown" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="41" /> +<hkern g1="questiondown" g2="C,Ccedilla" k="16" /> +<hkern g1="questiondown" g2="G" k="16" /> +<hkern g1="questiondown" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="16" /> +<hkern g1="questiondown" g2="Q" k="16" /> +<hkern g1="questiondown" g2="S" k="16" /> +<hkern g1="questiondown" g2="T" k="123" /> +<hkern g1="questiondown" g2="V" k="78" /> +<hkern g1="questiondown" g2="W" k="27" /> +<hkern g1="questiondown" g2="Y,Yacute,Ydieresis" k="117" /> +<hkern g1="questiondown" g2="Z" k="47" /> +<hkern g1="questiondown" g2="AE" k="80" /> +<hkern g1="questiondown" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="18" /> +<hkern g1="at" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="31" /> +<hkern g1="at" g2="T" k="82" /> +<hkern g1="at" g2="V" k="82" /> +<hkern g1="at" g2="X" k="41" /> +<hkern g1="at" g2="Y,Yacute,Ydieresis" k="102" /> +<hkern g1="at" g2="AE" k="31" /> +<hkern g1="bar" g2="q" k="23" /> +<hkern g1="bar" g2="z" k="23" /> +<hkern g1="bar" g2="j" k="-33" /> +<hkern g1="bar" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="23" /> +<hkern g1="bar" g2="d" k="23" /> +<hkern g1="bar" g2="g" k="23" /> +<hkern g1="bar" g2="p" k="16" /> +<hkern g1="bar" g2="m,n,ntilde" k="16" /> +<hkern g1="bar" g2="r" k="16" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/ubuntu-bolditalic-webfont.ttf b/web/static/fonts/ubuntu-bolditalic-webfont.ttf Binary files differnew file mode 100755 index 000000000..d648f287e --- /dev/null +++ b/web/static/fonts/ubuntu-bolditalic-webfont.ttf diff --git a/web/static/fonts/ubuntu-bolditalic-webfont.woff b/web/static/fonts/ubuntu-bolditalic-webfont.woff Binary files differnew file mode 100755 index 000000000..a767b35b5 --- /dev/null +++ b/web/static/fonts/ubuntu-bolditalic-webfont.woff diff --git a/web/static/fonts/ubuntu-bolditalic-webfont.woff2 b/web/static/fonts/ubuntu-bolditalic-webfont.woff2 Binary files differnew file mode 100755 index 000000000..3637d0fbb --- /dev/null +++ b/web/static/fonts/ubuntu-bolditalic-webfont.woff2 diff --git a/web/static/fonts/ubuntu-italic-webfont.eot b/web/static/fonts/ubuntu-italic-webfont.eot Binary files differnew file mode 100755 index 000000000..fb07b8c69 --- /dev/null +++ b/web/static/fonts/ubuntu-italic-webfont.eot diff --git a/web/static/fonts/ubuntu-italic-webfont.svg b/web/static/fonts/ubuntu-italic-webfont.svg new file mode 100755 index 000000000..04abb7ddb --- /dev/null +++ b/web/static/fonts/ubuntu-italic-webfont.svg @@ -0,0 +1,1221 @@ +<?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="ubuntuitalic" horiz-adv-x="1155" > +<font-face units-per-em="2048" ascent="1638" descent="-410" /> +<missing-glyph horiz-adv-x="473" /> +<glyph unicode="fi" horiz-adv-x="1271" d="M-35 -362q61 80 96 135t58.5 112.5t41 132t46.5 193.5l227 950q25 102 63 182t96 134.5t138 83t191 28.5q59 0 112 -11t86 -28l-76 -151q-16 8 -49.5 17t-89.5 9q-68 0 -115 -19.5t-79.5 -54t-52 -83.5t-33.5 -111l-23 -92h356l-36 -160h-357l-164 -676 q-25 -104 -43 -186t-43.5 -153.5t-67.5 -138t-114 -138.5zM918 0l256 1065h190l-256 -1065h-190zM1219 1366q0 66 40.5 103.5t92.5 37.5q47 0 79.5 -29.5t32.5 -82.5q0 -61 -43 -99.5t-92 -38.5q-47 0 -78.5 29t-31.5 80z" /> +<glyph unicode="fl" horiz-adv-x="1335" d="M-35 -362q61 80 96 135t58.5 112.5t41 132t46.5 193.5l227 950q25 102 63 182t96 134.5t138 83t191 28.5q59 0 112 -11t86 -28l-76 -151q-16 8 -49.5 17t-89.5 9q-68 0 -115 -19.5t-79.5 -54t-52 -83.5t-33.5 -111l-23 -92h356l-36 -160h-357l-164 -676 q-25 -104 -43 -186t-43.5 -153.5t-67.5 -138t-114 -138.5zM991 279q0 47 8.5 98t22.5 106l258 1073l199 33l-269 -1120q-10 -45 -20 -88t-10 -82q0 -70 33.5 -111t125.5 -51l-43 -155q-84 2 -142 25.5t-94 62.5t-52.5 92t-16.5 117z" /> +<glyph unicode="ffi" horiz-adv-x="2033" d="M-35 -362q61 80 96 135t58.5 112.5t41 132t46.5 193.5l227 950q25 102 63 182t96 134.5t138 83t191 28.5q72 0 136 -14t97 -31l-76 -151q-16 8 -56 20t-118 12q-68 0 -115 -19.5t-79.5 -54t-52 -83.5t-33.5 -111l-23 -92h356l-36 -160h-357l-164 -676q-25 -104 -43 -186 t-43.5 -153.5t-67.5 -138t-114 -138.5zM727 -362q61 80 96 135t58.5 112.5t41 132t46.5 193.5l227 950q25 102 63 182t96 134.5t138 83t191 28.5q59 0 112 -11t86 -28l-76 -151q-16 8 -49.5 17t-89.5 9q-68 0 -115 -19.5t-79.5 -54t-52 -83.5t-33.5 -111l-23 -92h356 l-36 -160h-357l-164 -676q-25 -104 -43 -186t-43.5 -153.5t-67.5 -138t-114 -138.5zM1680 0l256 1065h190l-256 -1065h-190zM1981 1366q0 66 40.5 103.5t92.5 37.5q47 0 79.5 -29.5t32.5 -82.5q0 -61 -43 -99.5t-92 -38.5q-47 0 -78.5 29t-31.5 80z" /> +<glyph unicode="ffl" horiz-adv-x="2097" d="M-35 -362q61 80 96 135t58.5 112.5t41 132t46.5 193.5l227 950q25 102 63 182t96 134.5t138 83t191 28.5q72 0 136 -14t97 -31l-76 -151q-16 8 -56 20t-118 12q-68 0 -115 -19.5t-79.5 -54t-52 -83.5t-33.5 -111l-23 -92h356l-36 -160h-357l-164 -676q-25 -104 -43 -186 t-43.5 -153.5t-67.5 -138t-114 -138.5zM727 -362q61 80 96 135t58.5 112.5t41 132t46.5 193.5l227 950q25 102 63 182t96 134.5t138 83t191 28.5q59 0 112 -11t86 -28l-76 -151q-16 8 -49.5 17t-89.5 9q-68 0 -115 -19.5t-79.5 -54t-52 -83.5t-33.5 -111l-23 -92h356 l-36 -160h-357l-164 -676q-25 -104 -43 -186t-43.5 -153.5t-67.5 -138t-114 -138.5zM1753 279q0 47 8.5 98t22.5 106l258 1073l199 33l-269 -1120q-10 -45 -20 -88t-10 -82q0 -70 33.5 -111t125.5 -51l-43 -155q-84 2 -142 25.5t-94 62.5t-52.5 92t-16.5 117z" /> +<glyph unicode="
" horiz-adv-x="473" /> +<glyph horiz-adv-x="0" /> +<glyph horiz-adv-x="0" /> +<glyph unicode=" " horiz-adv-x="473" /> +<glyph unicode="	" horiz-adv-x="473" /> +<glyph unicode=" " horiz-adv-x="473" /> +<glyph unicode="!" horiz-adv-x="512" d="M150 94q0 74 44 114t101 40t91 -32t34 -93q0 -35 -13.5 -62.5t-34 -47t-47 -30t-53.5 -10.5q-57 0 -89.5 31t-32.5 90zM299 442q16 139 37.5 279.5t62.5 312.5l93 385h200l-92 -387q-12 -49 -33.5 -128t-47 -163t-53.5 -164.5t-50 -134.5h-117z" /> +<glyph unicode=""" horiz-adv-x="839" d="M432 1026q8 111 22.5 218.5t39.5 211.5l24 100h195l-25 -102q-25 -100 -62.5 -212t-82.5 -216h-111zM786 1026q8 111 22.5 218.5t39.5 211.5l24 100h195l-25 -102q-25 -100 -62.5 -212t-82.5 -216h-111z" /> +<glyph unicode="#" horiz-adv-x="1339" d="M186 375l37 151h205l158 367h-275l37 151h301l162 375h172l-160 -375h322l160 375h172l-160 -375h172l-37 -151h-199l-159 -367h270l-37 -151h-297l-160 -375h-172l158 375h-319l-160 -375h-172l157 375h-176zM600 526h322l159 367h-321z" /> +<glyph unicode="$" d="M172 137l88 146q37 -23 112.5 -54.5t194.5 -31.5q59 0 118.5 11t107 37.5t76 70.5t28.5 110q0 45 -17.5 78t-49 59.5t-75.5 48t-96 45.5q-45 20 -89 47t-78.5 65t-56 90t-21.5 126q0 147 99 246.5t296 124.5l55 233h166l-55 -229q88 -8 158.5 -36t107.5 -52l-86 -142 q-35 25 -101.5 47.5t-164.5 22.5q-59 0 -111.5 -11t-92.5 -36t-62.5 -62.5t-22.5 -89.5q0 -84 51 -129t156 -94q55 -25 106.5 -53.5t89 -67.5t60 -91t22.5 -124q0 -90 -30.5 -159.5t-88 -119.5t-136 -81t-173.5 -41l-61 -264h-166l64 266q-53 2 -102.5 12.5t-92.5 24.5 t-76 29.5t-51 27.5z" /> +<glyph unicode="%" horiz-adv-x="1712" d="M324 975q0 86 27.5 171t77.5 152.5t124 109.5t166 42q123 0 191.5 -70.5t68.5 -208.5q0 -86 -27.5 -171t-78 -152.5t-124 -109.5t-165.5 -42q-123 0 -191.5 71t-68.5 208zM356 0l1125 1419h194l-1124 -1419h-195zM475 989q0 -70 23.5 -114t95.5 -44q59 0 103 33t73 81 t43 105.5t14 106.5q0 70 -23.5 114t-94.5 44q-59 0 -103.5 -33t-73 -81t-43 -105.5t-14.5 -106.5zM1053 248q0 86 27.5 171t77.5 152.5t124 109.5t166 42q123 0 191.5 -70.5t68.5 -208.5q0 -86 -27.5 -171t-78 -152.5t-124 -109.5t-165.5 -42q-123 0 -191.5 71t-68.5 208z M1204 262q0 -70 23.5 -114t95.5 -44q59 0 103 33t73 81t43 105.5t14 106.5q0 70 -23.5 114t-94.5 44q-59 0 -103.5 -33t-73 -81t-43 -105.5t-14.5 -106.5z" /> +<glyph unicode="&" horiz-adv-x="1310" d="M160 301q0 92 29.5 166t82 132t124 104.5t155.5 82.5q-35 57 -59.5 121t-24.5 146q0 92 30.5 165.5t87 126t137.5 80t179 27.5q57 0 110.5 -17.5t92.5 -52t62.5 -85t23.5 -117.5q0 -80 -28.5 -144.5t-81 -118t-124 -98.5t-157.5 -84l237 -329q98 125 158 288l166 -20 q-29 -86 -85 -191.5t-142 -206.5q51 -72 95 -141t68 -135h-196q-16 37 -40 75t-52 79q-92 -76 -206 -124t-261 -48q-102 0 -174 23.5t-118 66.5t-67.5 101t-21.5 128zM346 334q0 -86 46 -140.5t161 -54.5q98 0 192.5 36t169.5 106l-282 389q-53 -23 -104.5 -54.5 t-91.5 -72.5t-65.5 -93.5t-25.5 -115.5zM645 1065q0 -55 21.5 -108.5t54.5 -106.5q53 20 106.5 50t95.5 69t67.5 86t25.5 102q0 70 -38 106.5t-104 36.5q-92 0 -160.5 -58t-68.5 -177z" /> +<glyph unicode="'" horiz-adv-x="483" d="M432 1026q8 111 22.5 218.5t39.5 211.5l24 100h195l-25 -102q-25 -100 -62.5 -212t-82.5 -216h-111z" /> +<glyph unicode="(" horiz-adv-x="649" d="M258 254q0 389 156.5 725t464.5 625l127 -91q-129 -129 -233.5 -273t-177.5 -299t-113 -317.5t-40 -330.5q0 -174 25 -313.5t84 -268.5l-145 -82q-70 123 -109 285t-39 340z" /> +<glyph unicode=")" horiz-adv-x="649" d="M-102 -289q129 129 233.5 273.5t177 299t112.5 317.5t40 331q0 174 -24.5 313t-84.5 268l146 82q70 -123 108.5 -284.5t38.5 -339.5q0 -389 -156.5 -725t-463.5 -625z" /> +<glyph unicode="*" horiz-adv-x="962" d="M303 1055l57 172l13 -4q86 -29 156.5 -68t144.5 -80q-16 86 -31.5 164t-15.5 164v16h184v-16q0 -86 -15.5 -164t-31.5 -164q74 41 144.5 80t156.5 68l12 4l58 -172l-17 -6q-82 -31 -164 -40.5t-168 -15.5q68 -57 127.5 -111.5t110.5 -125.5l10 -15l-149 -104l-8 12 q-49 74 -85 146.5t-73 150.5q-37 -78 -73 -150.5t-85 -146.5l-8 -12l-150 104l11 15q51 72 110.5 126t126.5 111q-86 6 -168 15.5t-164 40.5z" /> +<glyph unicode="+" d="M244 528l39 162h372l103 422h174l-103 -422h373l-39 -162h-372l-103 -424h-172l100 424h-372z" /> +<glyph unicode="," horiz-adv-x="503" d="M6 -272q41 55 75 120.5t58.5 133t41 132t22.5 119.5h203q-10 -74 -35 -149.5t-61 -148t-81 -139t-94 -122.5z" /> +<glyph unicode="-" horiz-adv-x="600" d="M178 524l41 178h496l-41 -178h-496z" /> +<glyph unicode="." horiz-adv-x="503" d="M139 94q0 74 44 114t102 40q57 0 91 -32t34 -93q0 -35 -13.5 -62.5t-34 -47t-47 -30t-53.5 -10.5q-57 0 -90 31t-33 90z" /> +<glyph unicode="/" horiz-adv-x="770" d="M-135 -379l1145 1983h190l-1145 -1983h-190z" /> +<glyph unicode="0" d="M238 395q0 100 18 218t54 236t91.5 226.5t130 192.5t168 134t207.5 50q174 0 257 -107.5t83 -318.5q0 -100 -18.5 -218t-54 -235.5t-91 -226t-130 -192.5t-169 -134.5t-206.5 -50.5q-174 0 -257 107.5t-83 318.5zM432 420q0 -154 37 -219.5t131 -65.5q66 0 124 39 t108.5 104.5t91.5 152.5t69.5 183.5t44 195.5t15.5 191q0 154 -37 219.5t-131 65.5q-63 0 -123 -39t-110 -104.5t-91 -152.5t-69.5 -183t-44 -196.5t-15.5 -190.5z" /> +<glyph unicode="1" d="M461 1126q123 45 251 116t244 177h138l-340 -1419h-191l273 1137q-29 -23 -69 -46.5t-86 -46t-95 -42t-94 -33.5z" /> +<glyph unicode="2" d="M162 0q16 109 58 197t100.5 161.5t129 135t146.5 118.5q80 59 154.5 115.5t132 115t92.5 122t35 139.5q0 86 -46 134t-151 48q-57 0 -108.5 -14.5t-92.5 -34.5t-72.5 -44t-50.5 -42l-65 147q29 27 72 53.5t97 49t116.5 37t128.5 14.5q98 0 168.5 -27.5t114.5 -72.5 t64.5 -103t20.5 -119q0 -109 -34.5 -190.5t-94 -150t-137.5 -129t-166 -125.5q-51 -39 -108.5 -84t-108.5 -93.5t-90 -98.5t-55 -99h616l-37 -160h-829z" /> +<glyph unicode="3" d="M141 53l72 162q14 -8 40 -21.5t62.5 -25.5t85 -21.5t109.5 -9.5q82 0 152.5 19.5t123 58.5t81 97.5t28.5 136.5q0 123 -89 176t-237 53h-43l37 156h64q68 0 132 17t116.5 53t84 88t31.5 122q0 86 -52 130t-151 44q-88 0 -158.5 -27.5t-121.5 -60.5l-45 148 q27 18 65.5 36.5t86 34t99.5 24.5t105 9q96 0 165 -24.5t114 -67.5t65.5 -101.5t20.5 -123.5q0 -135 -79 -230.5t-214 -148.5q35 -14 70.5 -40t63.5 -64t45 -88t17 -111q0 -109 -37.5 -198t-111.5 -152.5t-182.5 -98.5t-251.5 -35q-72 0 -132.5 10.5t-107.5 23.5t-78.5 27.5 t-44.5 22.5z" /> +<glyph unicode="4" d="M178 362l31 130q57 96 150.5 219t207 249.5t238.5 246.5t248 212h186l-217 -901h166l-37 -156h-166l-86 -362h-184l86 362h-623zM410 518h430l159 664q-74 -61 -153.5 -138t-157.5 -163t-149.5 -178.5t-128.5 -184.5z" /> +<glyph unicode="5" d="M150 49l73 160q29 -16 99.5 -44t183.5 -28q84 0 156.5 21.5t126 61.5t84 99.5t30.5 133.5q0 94 -51 148t-127 82t-164 36t-162 12q33 94 64 180t58.5 169t52 166t47.5 173h663l-37 -159h-493q-12 -41 -29.5 -94.5t-36 -107.5t-35 -103.5t-26.5 -82.5q233 -31 351 -127 t118 -274q0 -104 -35 -196.5t-108.5 -160t-187.5 -106.5t-269 -39q-66 0 -124.5 10.5t-104.5 23.5t-76.5 26.5t-40.5 19.5z" /> +<glyph unicode="6" d="M254 379q0 215 72.5 405.5t205 333t319.5 225t419 82.5h26l-22 -161h-10q-145 0 -263 -38t-210.5 -100.5t-157 -146.5t-101.5 -176q66 33 142 50t145 17q92 0 158.5 -27.5t109.5 -73.5t62.5 -107.5t19.5 -129.5q0 -102 -31.5 -203.5t-97 -181t-169 -129t-246.5 -49.5 q-180 0 -275.5 110t-95.5 300zM442 395q0 -129 46.5 -199.5t162.5 -70.5q80 0 141.5 34t103.5 89t63.5 123.5t21.5 140.5q0 98 -48 149.5t-159 51.5q-72 0 -144.5 -13.5t-146.5 -48.5q-20 -66 -30.5 -134t-10.5 -122z" /> +<glyph unicode="7" d="M324 0q31 109 81 226.5t113.5 236.5t136 233.5t148.5 218t152.5 190.5t146.5 148h-674l39 166h891l-39 -164q-88 -76 -203 -211t-227.5 -304t-210.5 -359.5t-154 -380.5h-200z" /> +<glyph unicode="8" d="M207 289q0 147 87 262t241 190q-125 98 -125 254q0 92 33.5 174t97 145.5t154.5 100.5t206 37q94 0 163 -26.5t112 -71.5t63.5 -101.5t20.5 -115.5q0 -141 -79 -246.5t-220 -175.5q70 -47 117.5 -116t47.5 -177q0 -90 -33.5 -172t-101 -144.5t-170 -99.5t-237.5 -37 q-102 0 -174 29t-117 74t-65.5 102t-20.5 115zM395 322q0 -41 10.5 -76t35 -62.5t65.5 -43t102 -15.5q68 0 128.5 20.5t105.5 57.5t70.5 88t25.5 112q0 100 -69.5 162t-192.5 105q-55 -25 -106.5 -62t-90.5 -82t-61.5 -97t-22.5 -107zM596 1014q0 -86 51 -141.5t164 -92.5 q51 25 98 57.5t83 74.5t57.5 92.5t21.5 111.5q0 31 -8 63.5t-29.5 58.5t-59.5 42t-95 16q-61 0 -112.5 -21.5t-89.5 -58t-59.5 -89t-21.5 -113.5z" /> +<glyph unicode="9" d="M174 -2l35 162q6 -2 19.5 -2h17.5q143 0 256.5 35.5t201 99t148.5 147.5t102 183q-66 -33 -141 -49.5t-145 -16.5q-92 0 -159 26.5t-110 72.5t-63.5 107.5t-20.5 129.5q0 102 32 202.5t98.5 179.5t167 127t235.5 48q190 0 286.5 -109.5t96.5 -300.5q0 -219 -68.5 -409.5 t-197.5 -331.5t-315.5 -222t-422.5 -81h-21t-32 2zM504 913q0 -98 49 -148t160 -50q72 0 144.5 13t146.5 48q18 61 28 130t10 136q0 113 -49 182.5t-159 69.5q-80 0 -141.5 -33.5t-103.5 -87t-63.5 -122t-21.5 -138.5z" /> +<glyph unicode=":" horiz-adv-x="503" d="M139 94q0 74 44 114t102 40q57 0 91 -32t34 -93q0 -35 -13.5 -62.5t-34 -47t-47 -30t-53.5 -10.5q-57 0 -90 31t-33 90zM334 911q0 74 44 114t102 40q57 0 91 -32t34 -93q0 -35 -13.5 -62.5t-34 -47t-47 -30t-53.5 -10.5q-57 0 -90 31t-33 90z" /> +<glyph unicode=";" horiz-adv-x="503" d="M6 -272q41 55 75 120.5t58.5 133t41 132t22.5 119.5h203q-10 -74 -35 -149.5t-61 -148t-81 -139t-94 -122.5zM334 911q0 74 44 114t102 40q57 0 91 -32t34 -93q0 -35 -13.5 -62.5t-34 -47t-47 -30t-53.5 -10.5q-57 0 -90 31t-33 90z" /> +<glyph unicode="<" d="M244 526l39 164l958 375l12 -168l-782 -299l637 -297l-86 -149z" /> +<glyph unicode="=" d="M193 309l38 162h920l-39 -162h-919zM297 745l39 162h919l-38 -162h-920z" /> +<glyph unicode=">" d="M193 319l782 299l-637 297l86 150l778 -375l-39 -164l-958 -374z" /> +<glyph unicode="?" horiz-adv-x="786" d="M238 94q0 74 44 114t101 40t91 -32t34 -93q0 -35 -13.5 -62.5t-34 -47t-47 -30t-53.5 -10.5q-57 0 -89.5 31t-32.5 90zM326 442q2 25 4 45.5t6 40.5q25 104 96.5 179t163.5 147q41 33 80 65.5t68.5 67.5t47 75t17.5 87q0 23 -6 49.5t-25.5 48t-54.5 35.5t-92 14 q-98 0 -164 -22.5t-102 -40.5l-21 147q49 29 134 50.5t177 21.5q96 0 162 -22.5t107 -61.5t58 -92.5t17 -114.5q0 -68 -24.5 -125t-64.5 -105t-89 -90t-100 -81q-76 -59 -138.5 -124t-84.5 -155q-4 -12 -5 -23.5t-1 -15.5h-166z" /> +<glyph unicode="@" horiz-adv-x="1906" d="M227 344q0 205 69 404.5t202 355.5t325.5 252t442.5 96q334 0 514 -166t180 -489q0 -96 -21.5 -218t-81 -231.5t-165 -184.5t-271.5 -75q-129 0 -182 72q-47 -29 -110.5 -46.5t-135.5 -17.5q-154 0 -246 87t-92 261q0 117 40 226.5t116 192.5t184.5 133.5t247.5 50.5 q106 0 185 -18.5t120 -35.5l-149 -622q-10 -31 -10 -60q0 -25 13 -43t54 -18q86 0 147.5 50t102.5 129t60.5 173t19.5 182q0 113 -28.5 207t-93.5 162t-169 105.5t-256 37.5q-178 0 -331.5 -76.5t-266.5 -204.5t-176.5 -297t-63.5 -353q0 -137 40 -235.5t112 -162t172 -94.5 t221 -31q119 0 200 15.5t103 23.5l-14 -151q-18 -6 -53 -13.5t-79 -14.5t-94.5 -11t-99.5 -4q-147 0 -272 42t-216 125t-142.5 205.5t-51.5 284.5zM840 461q0 -111 46 -161t134 -50q111 0 188 41q0 35 4.5 58.5t10.5 45.5l116 482q-10 4 -44.5 8t-75.5 4q-88 0 -158 -35 t-119 -94.5t-75.5 -137t-26.5 -161.5z" /> +<glyph unicode="A" horiz-adv-x="1302" d="M20 0q229 414 447.5 762t431.5 657h195q31 -154 56.5 -310.5t50 -328.5t47 -364.5t46.5 -415.5h-200q-10 92 -18.5 185.5t-18.5 179.5h-619l-200 -365h-218zM530 524h508q-16 166 -37.5 330t-50.5 338q-72 -104 -178 -269t-242 -399z" /> +<glyph unicode="B" horiz-adv-x="1265" d="M172 23l330 1376q86 20 191.5 27.5t189.5 7.5q104 0 191 -17.5t149.5 -55.5t98.5 -99.5t36 -147.5q0 -125 -75 -220t-206 -142q88 -33 142.5 -100.5t54.5 -166.5q0 -141 -57.5 -237t-156.5 -154.5t-233 -83t-288 -24.5q-41 0 -89.5 2t-97.5 6t-96 11t-84 18zM401 160 q23 -4 68 -7t115 -3q76 0 161.5 11t157.5 45t120 95t48 164q0 100 -71.5 149.5t-231.5 49.5h-248zM559 819h195q68 0 138.5 11.5t128.5 41t96 81t38 130.5q0 104 -78 145.5t-237 41.5q-53 0 -104.5 -4t-69.5 -9z" /> +<glyph unicode="C" horiz-adv-x="1228" d="M254 520q0 184 58.5 352t166 297t259 206t337.5 77q160 0 255 -33t136 -61l-82 -164q-47 31 -127.5 58.5t-191.5 27.5q-141 0 -254 -66.5t-190.5 -172t-118.5 -237.5t-41 -261q0 -399 346 -400q74 0 132 10.5t103 23.5t80 29.5t62 29.5l24 -173q-25 -14 -64.5 -30.5 t-93 -30.5t-118.5 -23.5t-139 -9.5q-133 0 -234.5 39t-169 110.5t-101.5 173t-34 228.5z" /> +<glyph unicode="D" horiz-adv-x="1415" d="M172 23l330 1378q86 20 182 26.5t182 6.5q315 0 471 -148.5t156 -400.5q0 -176 -55.5 -339t-172 -288t-298 -198.5t-432.5 -73.5q-86 0 -186.5 8t-176.5 29zM403 164q16 -4 55.5 -7t127.5 -3q162 0 292 54t220 151.5t139 231.5t49 294q0 180 -104.5 280.5t-331.5 100.5 q-154 0 -184 -9z" /> +<glyph unicode="E" horiz-adv-x="1140" d="M166 0l340 1419h837l-38 -166h-641l-103 -428h569l-38 -161h-568l-121 -498h689l-39 -166h-887z" /> +<glyph unicode="F" horiz-adv-x="1073" d="M166 0l340 1419h829l-39 -166h-632l-105 -434h561l-39 -162h-559l-157 -657h-199z" /> +<glyph unicode="G" horiz-adv-x="1333" d="M254 520q0 184 58.5 352t167 297t261 206t342.5 77q94 0 163 -12.5t118 -28.5t80 -33.5t49 -29.5l-88 -162q-16 10 -45 26.5t-70 32t-94 25.5t-121 10q-145 0 -260 -66.5t-193.5 -172t-119.5 -237.5t-41 -261q0 -203 86 -302.5t272 -99.5q76 0 137.5 10.5t87.5 20.5 l123 520h195l-156 -647q-25 -14 -67.5 -27.5t-100 -23.5t-124 -16.5t-136.5 -6.5q-258 0 -391 148.5t-133 400.5z" /> +<glyph unicode="H" horiz-adv-x="1394" d="M166 0l340 1419h199l-144 -594h658l143 594h199l-340 -1419h-199l158 659h-658l-157 -659h-199z" /> +<glyph unicode="I" horiz-adv-x="538" d="M166 0l340 1419h199l-340 -1419h-199z" /> +<glyph unicode="J" horiz-adv-x="987" d="M49 98l98 150q33 -33 98.5 -70t166.5 -37q74 0 125 18.5t88 58.5t62.5 103.5t47.5 153.5l228 944h198l-229 -962q-25 -98 -55.5 -187.5t-87 -156t-147.5 -105.5t-234 -39q-72 0 -130.5 13.5t-103.5 34t-76.5 42t-48.5 39.5z" /> +<glyph unicode="K" horiz-adv-x="1257" d="M166 0l340 1419h199l-150 -620q90 68 194.5 153.5t205 171.5t187.5 164t144 131h250q-78 -70 -175 -156.5t-202.5 -177t-212 -180.5t-203.5 -166q63 -59 134 -147t139.5 -188.5t131 -205t109.5 -198.5h-221q-53 94 -114.5 192.5t-126 188.5t-132 169t-135.5 134 l-163 -684h-199z" /> +<glyph unicode="L" horiz-adv-x="1038" d="M166 0l340 1419h199l-302 -1253h629l-39 -166h-827z" /> +<glyph unicode="M" horiz-adv-x="1734" d="M131 0q49 184 103.5 371.5t110.5 369t112.5 353.5t109.5 325h195q25 -90 52.5 -213t55 -257t51 -267t40.5 -242q74 111 162.5 244t179 267t175.5 256t152 212h191q-35 -346 -93.5 -703.5t-128.5 -715.5h-198q61 295 112.5 572.5t90.5 541.5q-33 -45 -82 -116.5 t-106.5 -157.5t-119 -179.5t-119 -180.5t-106.5 -161.5t-80 -121.5h-160q-8 49 -21 123.5t-29.5 161.5t-34 180.5t-35 179.5t-31.5 156.5t-25 115.5q-86 -264 -167.5 -544.5t-159.5 -569.5h-197z" /> +<glyph unicode="N" horiz-adv-x="1429" d="M166 0l340 1419h170q66 -111 134.5 -251t131 -287.5t115.5 -288.5t88 -254l254 1081h194l-338 -1419h-174q-37 119 -88 270.5t-111.5 307t-124 302t-124.5 255.5l-273 -1135h-194z" /> +<glyph unicode="O" horiz-adv-x="1513" d="M254 510q0 168 51 337t154.5 303t257 218t358.5 84q113 0 208 -34t164 -101.5t106.5 -168.5t37.5 -237q0 -170 -52 -337.5t-154.5 -302t-256 -218.5t-358.5 -84q-115 0 -209 34t-162.5 101.5t-106.5 169t-38 236.5zM461 535q0 -182 79 -288t251 -106q137 0 247.5 66.5 t187.5 173t117.5 240t40.5 266.5q0 182 -78.5 287.5t-250.5 105.5q-139 0 -249 -66.5t-186.5 -173t-117.5 -239.5t-41 -266z" /> +<glyph unicode="P" horiz-adv-x="1208" d="M166 0l336 1401q86 20 182 26.5t182 6.5q248 0 374 -94.5t126 -274.5q0 -139 -52 -240.5t-148.5 -167t-231.5 -97.5t-301 -32h-141l-127 -528h-199zM530 694h129q86 0 176.5 15.5t162 54.5t117.5 107.5t46 177.5q0 117 -86 167t-233 50q-145 0 -176 -9z" /> +<glyph unicode="Q" horiz-adv-x="1513" d="M254 510q0 168 51 337t154.5 303t257 218t358.5 84q113 0 208 -34t164 -101.5t106.5 -168.5t37.5 -237q0 -158 -44 -313.5t-133 -285.5t-221 -220t-306 -115q-2 -6 -2 -14v-12q0 -41 31.5 -69.5t84 -49t121 -34t142.5 -21.5l-70 -156q-72 8 -160 24.5t-164.5 52.5 t-128 95.5t-51.5 153.5v10t2 16q-197 20 -317.5 155.5t-120.5 381.5zM461 535q0 -182 79 -288t251 -106q137 0 247.5 66.5t187.5 173t117.5 240t40.5 266.5q0 182 -78.5 287.5t-250.5 105.5q-139 0 -249 -66.5t-186.5 -173t-117.5 -239.5t-41 -266z" /> +<glyph unicode="R" horiz-adv-x="1247" d="M166 0l336 1401q86 20 182 26.5t182 6.5q227 0 360.5 -92.5t133.5 -270.5q0 -180 -105.5 -302t-296.5 -175q25 -43 58 -109.5t67.5 -147.5t67.5 -168t57 -169h-202q-29 78 -60 158t-62.5 153.5t-63.5 138t-58 113.5q-27 -2 -53.5 -3t-53.5 -1h-157l-133 -559h-199z M537 721h120q84 0 172.5 12t161 48t118.5 100.5t46 171.5q0 115 -87 164t-226 49q-145 0 -176 -9z" /> +<glyph unicode="S" horiz-adv-x="1058" d="M76 74l92 162q39 -27 123 -61t213 -34q63 0 125.5 13.5t112 44t80 81t30.5 123.5q0 51 -19.5 89t-53.5 68t-80 55.5t-101 54.5q-47 25 -95 53.5t-86 70.5t-61.5 99t-23.5 137q0 92 35.5 170t105.5 134.5t171 87t233 30.5q61 0 116.5 -9t101.5 -23t80.5 -30t51.5 -28 l-92 -156q-35 29 -112 52.5t-181 23.5q-66 0 -122 -13.5t-97 -42t-66 -72.5t-25 -105q0 -53 16.5 -89t45.5 -64t71 -50.5t91 -46.5q61 -31 115.5 -62.5t95.5 -75t64.5 -100.5t23.5 -139q0 -113 -44 -198t-121 -141t-182.5 -85t-228.5 -29q-82 0 -148.5 11.5t-116.5 28 t-85 33.5t-53 32z" /> +<glyph unicode="T" horiz-adv-x="1136" d="M338 1253l39 166h1055l-39 -166h-428l-301 -1253h-199l301 1253h-428z" /> +<glyph unicode="U" horiz-adv-x="1363" d="M270 377q0 45 8.5 100t18.5 103l201 839h198l-204 -852q-10 -39 -16.5 -86t-6.5 -88q0 -53 12.5 -98t42 -79t76.5 -53.5t115 -19.5q174 0 270 97.5t145 310.5l209 868h199l-213 -891q-29 -117 -66.5 -219t-107.5 -177t-181.5 -119t-285.5 -44q-106 0 -184 32t-129.5 86 t-76 129t-24.5 161z" /> +<glyph unicode="V" horiz-adv-x="1275" d="M340 1419h205q33 -365 62.5 -653t70.5 -530q86 123 175 264t178 293.5t174 310.5t163 315h219q-113 -213 -220 -404.5t-212.5 -366.5t-211 -335.5t-216.5 -312.5h-195q-31 154 -57 310.5t-49 328.5t-44.5 363.5t-41.5 416.5z" /> +<glyph unicode="W" horiz-adv-x="1875" d="M362 676q0 178 6.5 359.5t18.5 383.5h197q-14 -215 -22.5 -425t-8.5 -427q0 -158 6 -313q141 217 281.5 469t281.5 524h183q16 -274 45.5 -532t58.5 -461q61 115 128 252t133.5 287.5t133 309.5t127.5 316h211q-164 -406 -326.5 -756t-342.5 -663h-201q-35 217 -68 447.5 t-53 502.5q-139 -254 -273.5 -484t-285.5 -466h-201q-16 166 -22.5 332t-6.5 344z" /> +<glyph unicode="X" horiz-adv-x="1239" d="M27 0l653 758l-289 661h219l215 -522q111 129 217.5 260t198.5 262h227q-123 -168 -270 -341t-291 -333q78 -184 155 -374.5t136 -370.5h-207q-47 143 -103.5 291.5t-125.5 302.5l-502 -594h-233z" /> +<glyph unicode="Y" horiz-adv-x="1171" d="M336 1419h215q39 -166 87 -338t107 -331q135 158 273.5 331.5t245.5 337.5h227q-154 -209 -322 -418.5t-360 -431.5l-135 -569h-199l135 569q-80 215 -148.5 431.5t-125.5 418.5z" /> +<glyph unicode="Z" horiz-adv-x="1148" d="M72 0l30 133q59 80 137 175t166.5 198.5t182.5 208t186 203t178 184.5t158 151h-702l38 166h955l-37 -157q-57 -51 -135 -127t-168 -167t-185.5 -192.5t-189.5 -207t-180 -208t-156 -194.5h766l-39 -166h-1005z" /> +<glyph unicode="[" horiz-adv-x="659" d="M98 -379l477 1983h453l-35 -150h-274l-406 -1683h275l-37 -150h-453z" /> +<glyph unicode="\" horiz-adv-x="770" d="M338 1604h174l217 -1983h-178z" /> +<glyph unicode="]" horiz-adv-x="659" d="M-84 -379l35 150h274l406 1683h-275l37 150h453l-477 -1983h-453z" /> +<glyph unicode="^" d="M266 741l549 684h162l223 -702l-156 -68l-182 574l-456 -572z" /> +<glyph unicode="_" horiz-adv-x="1015" d="M-94 -379l39 162h1024l-39 -162h-1024z" /> +<glyph unicode="`" horiz-adv-x="770" d="M471 1479l139 116l260 -327l-100 -88z" /> +<glyph unicode="a" horiz-adv-x="1114" d="M201 356q0 137 46 268.5t138 234t231.5 165.5t325.5 63q55 0 129 -12t127 -41l-158 -643q-10 -47 -17 -90t-7 -90t8 -95t29 -104l-168 -24q-10 23 -20.5 50.5t-16.5 57.5q-45 -41 -121 -82t-186 -41q-90 0 -154.5 29t-105.5 80t-60.5 120.5t-19.5 153.5zM391 377 q0 -43 8.5 -87t30 -78t57.5 -55.5t93 -21.5q86 0 147 37t107 86q2 35 7 73t13 77l123 507q-10 4 -33.5 6.5t-42.5 2.5q-117 0 -211 -45t-160.5 -120t-102.5 -174.5t-36 -207.5z" /> +<glyph unicode="b" horiz-adv-x="1136" d="M166 41l362 1515l199 33l-135 -567q47 29 108.5 49.5t130.5 20.5q88 0 155 -29t110 -79t64.5 -119.5t21.5 -149.5q0 -141 -45 -273.5t-137.5 -236t-230.5 -166t-325 -62.5q-31 0 -67.5 3.5t-74.5 11.5t-73.5 20.5t-62.5 28.5zM383 154q20 -4 47 -8.5t53 -4.5 q117 0 211 46t160 123t101.5 176.5t35.5 207.5q0 45 -9 88t-32.5 76t-64 52.5t-101.5 19.5t-121.5 -21.5t-113.5 -60.5z" /> +<glyph unicode="c" horiz-adv-x="923" d="M205 381q0 139 42 268t124 227.5t200.5 157t272.5 58.5q68 0 129 -9.5t117 -35.5l-72 -160q-33 18 -77 28.5t-114 10.5q-100 0 -180 -44t-136 -117t-86 -168t-30 -198q0 -53 11.5 -100t40 -83t76.5 -56.5t122 -20.5q37 0 78 7.5t76 17.5t62.5 21.5t39.5 21.5l17 -162 q-39 -25 -121 -48.5t-187 -23.5q-98 0 -174 30t-127 84t-77.5 129t-26.5 165z" /> +<glyph unicode="d" horiz-adv-x="1120" d="M201 356q0 137 46 268.5t137 234t228.5 164.5t319.5 62q23 0 45 -2t47 -6l115 479l198 33l-288 -1198q-10 -47 -18.5 -90t-8.5 -90t8 -95t29 -104l-168 -24q-23 45 -35 108q-45 -41 -121 -82t-186 -41q-90 0 -155.5 28t-108.5 79t-63.5 121.5t-20.5 154.5zM391 377 q0 -47 10.5 -90t33 -77t60.5 -54.5t93 -20.5q86 0 146.5 36t105.5 83q2 33 7 70.5t15 83.5l123 512q-18 4 -40.5 5t-43.5 1q-117 0 -211 -45t-160.5 -121t-102.5 -175.5t-36 -207.5z" /> +<glyph unicode="e" horiz-adv-x="1060" d="M205 354q0 143 43 276.5t123 236t194.5 163t259.5 60.5q84 0 144.5 -21.5t98.5 -58.5t56.5 -85t18.5 -100q0 -96 -35 -162.5t-92.5 -111.5t-134 -69.5t-159.5 -39t-168 -19.5t-161 -9q-2 -16 -2 -26.5v-16.5q0 -47 11.5 -89t42 -74t85 -50.5t142.5 -18.5q39 0 81 7.5 t79.5 18.5t67.5 22.5t42 21.5l16 -162q-41 -23 -132 -48.5t-214 -25.5q-104 0 -180 30t-127 82t-75.5 121.5t-24.5 147.5zM418 559q119 4 217 15.5t170 39t111.5 74.5t39.5 123q0 18 -7 38.5t-24.5 38t-48 29t-75.5 11.5q-72 0 -134.5 -31t-111.5 -81t-84 -116.5t-53 -140.5 z" /> +<glyph unicode="f" horiz-adv-x="753" d="M-35 -362q61 80 96 135t58.5 112.5t41 132t46.5 193.5l227 950q25 102 63 182t96 134.5t138 83t191 28.5q72 0 136 -14t97 -31l-76 -151q-16 8 -56 20t-118 12q-68 0 -115 -19.5t-79.5 -54t-52 -83.5t-33.5 -111l-23 -92h356l-36 -160h-357l-164 -676q-25 -104 -43 -186 t-43.5 -153.5t-67.5 -138t-114 -138.5z" /> +<glyph unicode="g" horiz-adv-x="1126" d="M53 -303l72 160q47 -35 125 -56.5t164 -21.5q84 0 147.5 20.5t109.5 59.5t74.5 92t45.5 121l8 39q-41 -23 -111 -45.5t-143 -22.5q-166 0 -255 83t-89 232q0 137 45 268.5t137 234t229.5 164.5t321.5 62q29 0 64.5 -4t73.5 -11t74 -19.5t62 -28.5l-223 -932 q-27 -111 -65.5 -199t-106.5 -149t-174.5 -95t-265.5 -34q-88 0 -174 23.5t-146 58.5zM391 412q0 -111 48.5 -160t146.5 -49q82 0 150.5 29.5t105.5 56.5l149 622q-20 4 -46.5 8.5t-51.5 4.5q-111 0 -203 -42t-158.5 -113t-103.5 -164t-37 -193z" /> +<glyph unicode="h" horiz-adv-x="1130" d="M156 0l374 1556l199 33l-131 -538q47 16 99.5 26t105.5 10q92 0 158.5 -25.5t107.5 -69.5t60.5 -106.5t19.5 -135.5q0 -90 -29 -205l-131 -545h-190l121 504q14 57 27.5 116.5t13.5 112.5q0 82 -45.5 136.5t-167.5 54.5q-49 0 -101.5 -9.5t-87.5 -25.5l-213 -889h-190z " /> +<glyph unicode="i" horiz-adv-x="509" d="M156 0l256 1065h190l-256 -1065h-190zM457 1366q0 66 41 103.5t92 37.5q47 0 79.5 -29.5t32.5 -82.5q0 -61 -43 -99.5t-92 -38.5q-47 0 -78.5 29t-31.5 80z" /> +<glyph unicode="j" horiz-adv-x="509" d="M-227 -348l43 158q23 -14 57.5 -22.5t75.5 -8.5q92 0 140 71.5t77 188.5l246 1026h190l-246 -1024q-29 -115 -62.5 -196t-83.5 -132t-120 -74.5t-170 -23.5q-35 0 -79 10t-68 27zM459 1366q0 66 41 103.5t92 37.5q47 0 80 -29.5t33 -82.5q0 -61 -43.5 -99.5t-92.5 -38.5 q-47 0 -78.5 29t-31.5 80z" /> +<glyph unicode="k" horiz-adv-x="1058" d="M156 0l374 1556l199 33l-229 -948q68 49 139.5 107.5t136 116t118.5 109.5t89 91h225q-43 -53 -109.5 -118.5t-140 -132t-148.5 -128t-134 -104.5q55 -51 111.5 -122t108.5 -150t95 -159.5t72 -150.5h-207q-72 166 -171 305t-210 227l-129 -532h-190z" /> +<glyph unicode="l" horiz-adv-x="565" d="M221 279q0 47 8.5 98t22.5 106l258 1073l199 33l-269 -1120q-10 -45 -20 -88t-10 -82q0 -70 33.5 -111t125.5 -51l-43 -155q-84 2 -142 25.5t-94 62.5t-52.5 92t-16.5 117z" /> +<glyph unicode="m" horiz-adv-x="1695" d="M156 0l245 1024q92 29 202 46t196 17t145.5 -29.5t93.5 -78.5q20 14 56 32.5t82.5 35t101 28.5t111.5 12q90 0 152.5 -27.5t100 -74.5t54 -109.5t16.5 -132.5q0 -45 -7 -97t-19 -101l-132 -545h-190l121 504q10 47 23.5 105.5t13.5 115.5q0 39 -9.5 76t-31 63.5t-60.5 43 t-96 16.5q-66 0 -127 -26t-102 -52q4 -29 7 -56.5t3 -54.5q0 -47 -7 -95t-18 -95l-131 -545h-190l121 504q10 47 22 106.5t12 118.5q0 39 -8 75t-27.5 62.5t-52 42t-84.5 15.5q-51 0 -99 -6.5t-81 -16.5l-217 -901h-190z" /> +<glyph unicode="n" horiz-adv-x="1128" d="M156 0l245 1024q94 29 204 46t196 17q92 0 158.5 -25.5t107.5 -69.5t60.5 -106.5t19.5 -135.5q0 -47 -8.5 -99.5t-20.5 -105.5l-131 -545h-190l121 504q14 57 27 116.5t13 112.5q0 82 -45 136.5t-168 54.5q-51 0 -100 -6.5t-82 -16.5l-217 -901h-190z" /> +<glyph unicode="o" horiz-adv-x="1136" d="M205 346q0 119 33.5 250t107.5 241.5t190.5 182.5t282.5 72q168 0 263.5 -99.5t95.5 -273.5q0 -119 -34 -250t-107.5 -241.5t-190.5 -182.5t-283 -72q-168 0 -263 99.5t-95 273.5zM395 362q0 -104 45 -165.5t156 -61.5q92 0 165 53.5t123 136.5t76.5 183t26.5 194 q0 104 -45 166t-156 62q-92 0 -164.5 -53.5t-122.5 -136.5t-77 -183t-27 -195z" /> +<glyph unicode="p" horiz-adv-x="1118" d="M66 -379l335 1399q86 35 187.5 53.5t187.5 18.5q100 0 173 -29t120 -79t70.5 -118.5t23.5 -150.5q0 -141 -43 -273.5t-132 -235t-225 -163.5t-323 -61q-23 0 -49 2t-47 6l-88 -369h-190zM383 150q20 -4 44 -5.5t46 -1.5q117 0 209 45t156.5 122t99.5 176.5t35 207.5 q0 45 -10.5 88t-38 76t-74.5 52.5t-121 19.5q-51 0 -94 -9.5t-72 -17.5z" /> +<glyph unicode="q" horiz-adv-x="1128" d="M201 356q0 137 46 268.5t138 234t231.5 165.5t325.5 63q57 0 132 -13t136 -46l-338 -1407h-190l98 412q-47 -25 -106.5 -42.5t-124.5 -17.5q-90 0 -155.5 28t-108.5 79t-63.5 121.5t-20.5 154.5zM391 377q0 -47 9.5 -90t32 -77t62.5 -54.5t101 -20.5q59 0 118.5 19.5 t108.5 56.5l170 702q-57 10 -92 11q-117 0 -211 -45t-160.5 -120t-102.5 -174.5t-36 -207.5z" /> +<glyph unicode="r" horiz-adv-x="761" d="M156 0l245 1024q82 29 176.5 46t188.5 17q25 0 55.5 -2t60 -7t54.5 -10t37 -11l-55 -166q-41 16 -94.5 24.5t-102.5 8.5q-43 0 -85 -6.5t-73 -16.5l-217 -901h-190z" /> +<glyph unicode="s" horiz-adv-x="843" d="M78 51l74 156q14 -8 39.5 -20.5t61.5 -24.5t79 -20.5t90 -8.5q43 0 87 8.5t78 26.5t55.5 50t21.5 79q0 31 -10.5 54.5t-33 44t-56.5 40t-81 43.5q-47 23 -86 45.5t-68.5 53t-46 72.5t-16.5 102q0 154 110.5 247t321.5 93q98 0 173 -19.5t104 -36.5l-72 -155 q-29 16 -92 34.5t-141 18.5q-39 0 -78 -8t-71 -27.5t-51 -51.5t-19 -77q0 -55 43 -91t129 -75q53 -25 95 -50.5t71.5 -57t45 -74.5t15.5 -103q0 -86 -33 -151.5t-91 -108.5t-138 -64.5t-174 -21.5q-70 0 -126.5 9.5t-98.5 21.5t-69.5 25.5t-41.5 21.5z" /> +<glyph unicode="t" horiz-adv-x="796" d="M223 236q0 84 29 215l219 911l199 33l-80 -330h362l-39 -160h-362l-113 -471q-24 -92 -24 -162v-6q0 -68 36.5 -97.5t122.5 -29.5q59 0 117 19.5t88 36.5l15 -162q-31 -18 -105 -40t-168 -22q-154 0 -225.5 67.5t-71.5 197.5z" /> +<glyph unicode="u" horiz-adv-x="1126" d="M225 309q0 53 9.5 105.5t21.5 105.5l131 545h191l-121 -504q-10 -47 -26.5 -110.5t-16.5 -126.5q0 -37 7 -71t26.5 -59.5t52 -41t82.5 -15.5q88 0 154.5 38t111.5 89q2 33 6 68t14 76l158 657h191l-162 -674q-10 -47 -17.5 -91t-7.5 -91t8.5 -94t27.5 -103l-167 -24 q-10 23 -20.5 51.5t-16.5 60.5q-23 -20 -53.5 -42.5t-70.5 -41t-88 -31t-105 -12.5q-90 0 -150.5 27t-98.5 72t-54.5 106.5t-16.5 130.5z" /> +<glyph unicode="v" horiz-adv-x="985" d="M260 1065h193q2 -100 9 -214t17 -227.5t24.5 -219t31.5 -191.5q61 78 127.5 183.5t128 221t112.5 232.5t82 215h193q-45 -135 -115 -280.5t-151 -286t-170 -269.5t-173 -229h-174q-25 104 -47 229t-40.5 261.5t-31 282t-16.5 292.5z" /> +<glyph unicode="w" horiz-adv-x="1611" d="M276 1065h191q2 -96 6 -209t10 -226.5t14.5 -220t20.5 -188.5q63 88 126 194.5t119 217t104 221.5t83 211h172q0 -92 3 -197.5t10.5 -216t17 -220.5t21.5 -210q51 63 114.5 167t125 221.5t114.5 237.5t82 218h194q-45 -141 -114.5 -290.5t-150.5 -290t-168 -265.5 t-167 -219h-170q-23 178 -40 358.5t-21 366.5q-41 -92 -92.5 -190.5t-108.5 -193.5t-114.5 -183t-110.5 -158h-170q-43 211 -69.5 480.5t-31.5 584.5z" /> +<glyph unicode="x" horiz-adv-x="968" d="M25 0l491 549l-264 516h211l184 -383q86 104 159 200.5t126 182.5h207q-88 -129 -193.5 -261t-216.5 -261q66 -129 131.5 -267.5t112.5 -275.5h-199q-31 92 -79 198.5t-95 204.5l-354 -403h-221z" /> +<glyph unicode="y" horiz-adv-x="978" d="M-115 -340l66 156q20 -16 55 -27.5t78 -11.5q119 0 202 57t156 152q-76 248 -124 522t-58 557h195q2 -92 10 -201.5t23.5 -227.5t36.5 -236.5t50 -227.5q78 123 141.5 255t112 253t81 222.5t46.5 162.5h199q-23 -78 -63.5 -193.5t-99 -250t-131.5 -274.5t-159 -269 q-66 -96 -131 -181t-140 -147.5t-165 -98.5t-203 -36q-57 0 -106 14.5t-72 30.5z" /> +<glyph unicode="z" horiz-adv-x="929" d="M68 0l28 123q61 90 155.5 199.5t196 218t199.5 205t172 159.5h-510l37 160h760l-33 -137q-59 -53 -160.5 -150.5t-212 -209t-212 -221t-160.5 -187.5h571l-37 -160h-794z" /> +<glyph unicode="{" horiz-adv-x="667" d="M209 539l37 147q45 0 84 17.5t68.5 45t49 63.5t27.5 73l88 368q23 94 56.5 161t88 109t133.5 61.5t189 19.5h8l-37 -150q-55 0 -98 -7t-74.5 -29.5t-54 -62.5t-37.5 -104l-75 -315q-33 -135 -79 -211t-132 -113q43 -35 60 -83t17 -101q0 -35 -6 -69.5t-14 -69.5l-76 -316 q-6 -29 -10 -51t-4 -41q0 -66 43 -86t135 -24l-39 -150h-8q-147 0 -227 52.5t-80 174.5q0 47 16 123l88 369q8 31 8 59q0 57 -33.5 96.5t-111.5 43.5z" /> +<glyph unicode="|" horiz-adv-x="563" d="M98 -379l477 1983h175l-478 -1983h-174z" /> +<glyph unicode="}" horiz-adv-x="667" d="M-86 -379l37 150q57 0 99 7t74 29.5t53.5 61.5t37.5 104l76 316q33 135 79 210.5t132 112.5q-43 35 -60.5 83t-17.5 102q0 35 6 69.5t14 69.5l76 315q6 29 10.5 51.5t4.5 40.5q0 66 -43 86.5t-136 24.5l39 150h8q147 0 227.5 -52.5t80.5 -175.5q0 -47 -17 -123l-88 -368 q-8 -31 -8 -60q0 -57 34 -96t111 -43l-36 -147q-47 0 -86 -17.5t-68 -45t-48.5 -63.5t-27.5 -73l-88 -369q-23 -94 -56.5 -160.5t-88 -108.5t-133 -61.5t-189.5 -19.5h-8z" /> +<glyph unicode="~" d="M217 492q16 45 44 95t69 93t95 70.5t124 27.5q72 0 118 -27.5t85 -56.5q47 -33 83.5 -60.5t92.5 -27.5q33 0 60.5 16.5t48 40t37 52t28.5 53.5l131 -41q-16 -45 -44 -95t-69 -93t-95 -71t-124 -28q-72 0 -118 28t-85 56q-47 33 -83.5 60.5t-92.5 27.5q-35 0 -61.5 -16 t-48 -40t-37 -52.5t-27.5 -52.5z" /> +<glyph unicode="¡" horiz-adv-x="512" d="M59 -379l93 385q12 49 33.5 128t47 163t53 165t50.5 134h117q-16 -139 -38 -279.5t-63 -312.5l-92 -383h-201zM332 911q0 74 44 114t101 40t91 -32t34 -93q0 -35 -13.5 -62.5t-33.5 -47t-46.5 -29.5t-53.5 -10q-57 0 -90 30.5t-33 89.5z" /> +<glyph unicode="¢" d="M326 461q0 111 32.5 219t98 199.5t162 157t223.5 87.5l69 295h166l-67 -284q49 -4 96 -15.5t90 -34.5l-70 -151q-33 18 -76.5 28.5t-111.5 10.5q-96 0 -175 -44t-134.5 -116t-86 -162t-30.5 -184q0 -49 11.5 -93t39 -77t73.5 -52.5t118 -19.5q37 0 76.5 6.5t74.5 16.5 t61.5 21.5t39.5 21.5l14 -158q-33 -23 -105.5 -44t-164.5 -26l-68 -286h-166l70 297q-260 57 -260 387z" /> +<glyph unicode="£" d="M260 0q57 147 108.5 289.5t86.5 290.5l8 30h-191l37 154h191l41 170q37 154 86 253t115.5 156.5t150.5 80t188 22.5q106 0 166 -19.5t107 -46.5l-86 -153q-47 25 -97.5 39t-113.5 14q-59 0 -108.5 -16.5t-89.5 -56.5t-71.5 -105.5t-56.5 -163.5l-41 -174h387l-37 -154 h-387l-4 -16q-25 -104 -60.5 -215t-76.5 -215h594l-39 -164h-807z" /> +<glyph unicode="¤" d="M248 342l149 150q-57 90 -57 219q0 127 57 217l-149 151l119 119l151 -154q96 59 217 60q119 0 215 -60l154 154l119 -119l-152 -151q59 -90 59 -217t-59 -217l152 -152l-119 -119l-154 152q-96 -57 -215 -58q-123 0 -217 58l-151 -152zM494 711q0 -59 19 -105.5t52 -80 t77 -51t93 -17.5t93 17.5t77 51t52.5 80t19.5 105.5q0 57 -19.5 104t-52.5 81t-77 51.5t-93 17.5t-93 -17.5t-77 -51.5t-52 -81t-19 -104z" /> +<glyph unicode="¥" d="M203 217l35 145h331l49 209h-329l35 146h278q-145 360 -227 702h196q14 -72 35 -151.5t44.5 -161.5t51 -163t58.5 -152q57 68 120.5 146.5t126 160.5t121 163.5t105.5 157.5h215q-123 -178 -268.5 -361.5t-286.5 -340.5h278l-34 -146h-334l-49 -209h333l-34 -145h-334 l-51 -217h-185l52 217h-332z" /> +<glyph unicode="¦" horiz-adv-x="563" d="M98 -379l189 785h174l-189 -785h-174zM387 819l188 785h175l-189 -785h-174z" /> +<glyph unicode="§" horiz-adv-x="995" d="M66 -152l73 150q39 -23 113 -45.5t172 -22.5q135 0 203.5 47.5t68.5 124.5q0 39 -13 66t-36.5 45t-58.5 32.5t-78 30.5q-57 20 -107.5 43t-88.5 57t-60.5 84t-22.5 124q0 111 73 202t177 148q-59 59 -59 166q0 84 32.5 149.5t92 110.5t142.5 68.5t181 23.5 q104 0 179 -21.5t122 -44.5l-71 -147q-35 16 -93.5 37.5t-150.5 21.5q-109 0 -178.5 -39.5t-69.5 -130.5q0 -59 39 -91.5t131 -65.5q57 -23 107.5 -45.5t87.5 -55t58.5 -82t21.5 -124.5q0 -117 -72 -204t-178 -147q29 -27 54.5 -70.5t25.5 -121.5q0 -74 -31 -137.5 t-91.5 -109.5t-148.5 -71.5t-202 -25.5q-111 0 -198 19.5t-146 51.5zM410 606q0 -41 19.5 -69.5t51 -51t74.5 -41t92 -36.5q12 -4 21.5 -8.5t17.5 -8.5q35 16 68.5 41t60.5 57.5t43 70.5t16 81q0 39 -18 68.5t-50 52t-76 41t-93 37.5q-27 10 -35 16q-35 -16 -68.5 -42 t-61.5 -57.5t-45 -69.5t-17 -81z" /> +<glyph unicode="¨" horiz-adv-x="770" d="M403 1366q0 61 41 99t88 38q45 0 77 -29.5t32 -78.5q0 -59 -42 -96t-89 -37q-45 0 -76 28.5t-31 75.5zM793 1366q0 61 40.5 99t88.5 38q45 0 76.5 -29.5t31.5 -78.5q0 -59 -42 -96t-89 -37q-45 0 -75.5 28.5t-30.5 75.5z" /> +<glyph unicode="©" horiz-adv-x="1667" d="M291 711q0 174 57.5 312t153.5 233.5t223 145.5t266 50t266 -50t223.5 -145.5t154 -233.5t57.5 -312q0 -176 -57.5 -313.5t-154 -232.5t-223.5 -145.5t-266 -50.5t-266 50.5t-223 145.5t-153.5 232.5t-57.5 313.5zM440 711q0 -135 41 -247t114 -191.5t174 -123t222 -43.5 t222.5 43.5t174 123t113.5 191.5t41 247t-41 246.5t-113.5 191.5t-174 123t-222.5 43t-222 -43t-174 -123t-114 -191.5t-41 -246.5zM623 711q0 100 31.5 178t85 132t125 83t151.5 29q53 0 97 -8.5t77 -19.5t54.5 -22.5t29.5 -17.5l-47 -123q-25 14 -79 33.5t-126 19.5 q-104 0 -174 -71.5t-70 -212.5q0 -129 63.5 -209t186.5 -80q80 0 132 17.5t81 31.5l39 -123q-23 -12 -93.5 -36.5t-170.5 -24.5q-88 0 -160 28.5t-124 82t-80.5 132t-28.5 181.5z" /> +<glyph unicode="ª" horiz-adv-x="849" d="M324 946q0 94 32.5 184.5t98 161t164 114.5t231.5 44q37 0 91 -9t99 -28l-112 -416q-18 -66 -19 -127q0 -51 10.5 -86.5t26.5 -78.5l-141 -25q-8 10 -17.5 30.5t-13.5 41.5q-29 -29 -79 -52.5t-120 -23.5q-133 0 -192 74.5t-59 195.5zM473 961q0 -31 5 -60t20.5 -51.5 t42 -35.5t67.5 -13q45 0 84 22.5t70 55.5q0 31 7 66.5t13 62.5l82 311q-4 2 -15 4t-28 2q-78 0 -142.5 -29.5t-110.5 -81t-70.5 -117t-24.5 -136.5z" /> +<glyph unicode="«" horiz-adv-x="1021" d="M197 594l415 440l119 -71l-321 -390l155 -385l-127 -59zM623 594l415 440l119 -71l-321 -390l155 -385l-127 -59z" /> +<glyph unicode="¬" d="M270 641l39 162h920l-168 -699h-172l129 537h-748z" /> +<glyph unicode="­" horiz-adv-x="600" d="M178 524l41 178h496l-41 -178h-496z" /> +<glyph unicode="®" horiz-adv-x="1667" d="M291 711q0 174 57.5 312t153.5 233.5t223 145.5t266 50t266 -50t223.5 -145.5t154 -233.5t57.5 -312q0 -176 -57.5 -313.5t-154 -232.5t-223.5 -145.5t-266 -50.5t-266 50.5t-223 145.5t-153.5 232.5t-57.5 313.5zM440 711q0 -135 41 -247t114 -191.5t174 -123t222 -43.5 t222.5 43.5t174 123t113.5 191.5t41 247t-41 246.5t-113.5 191.5t-174 123t-222.5 43t-222 -43t-174 -123t-114 -191.5t-41 -246.5zM705 303v795q55 12 116.5 18t112.5 6q178 0 269 -64.5t91 -199.5q0 -76 -40 -132t-113 -87q20 -25 46.5 -61.5t56.5 -80.5t57.5 -94.5 t50.5 -99.5h-158q-47 92 -105.5 175t-101.5 132h-137v-307h-145zM850 729h78q92 0 153.5 25.5t61.5 105.5q0 76 -58.5 105.5t-140.5 29.5q-23 0 -47.5 -1t-46.5 -3v-262z" /> +<glyph unicode="¯" horiz-adv-x="770" d="M412 1309l34 147h574l-35 -147h-573z" /> +<glyph unicode="°" horiz-adv-x="679" d="M311 1305q0 66 23.5 119t62.5 89.5t91.5 56t109.5 19.5t109.5 -19.5t91.5 -56t62.5 -89.5t23.5 -119t-23.5 -119t-62.5 -90t-91.5 -56.5t-109.5 -19.5t-109.5 19.5t-91.5 56.5t-62.5 90t-23.5 119zM449 1305q0 -72 44 -114t105 -42t105.5 42t44.5 114t-44.5 113.5 t-105.5 41.5t-105 -42t-44 -113z" /> +<glyph unicode="±" d="M113 0l39 162h919l-39 -162h-919zM279 686l38 162h373l103 422h174l-103 -422h373l-39 -162h-373l-96 -401h-172l94 401h-372z" /> +<glyph unicode="²" horiz-adv-x="735" d="M254 645q8 74 32.5 128t61.5 97t84 78t100 68t93.5 59.5t67 51t39.5 52t13 62.5q0 43 -29.5 63.5t-70.5 20.5q-86 0 -136 -29.5t-77 -52.5l-49 100q41 39 112.5 74t166.5 35q117 0 173 -54.5t56 -146.5q0 -59 -27.5 -108t-70.5 -90t-94.5 -75t-98.5 -63 q-43 -29 -94 -61.5t-70 -79.5h387l-30 -129h-539z" /> +<glyph unicode="³" horiz-adv-x="735" d="M231 684l56 115q35 -16 85 -30.5t103 -14.5q43 0 83 6t70.5 23.5t50 46t19.5 71.5q0 57 -53 82t-141 25h-43l28 114h52q29 0 64.5 6.5t66 20.5t52 36.5t21.5 57.5q0 47 -27.5 65.5t-86.5 18.5q-55 0 -107.5 -16.5t-85.5 -32.5l-28 106q18 12 47.5 23.5t65.5 22t73 16.5 t70 6q121 0 171 -49t50 -119q0 -82 -42 -131t-116 -84q49 -20 81 -59t32 -105q0 -135 -102.5 -205.5t-268.5 -70.5q-82 0 -140.5 16.5t-99.5 38.5z" /> +<glyph unicode="´" horiz-adv-x="770" d="M537 1288l323 309l105 -147l-347 -262z" /> +<glyph unicode="µ" horiz-adv-x="1171" d="M66 -379l346 1444h190l-121 -504q-10 -47 -26.5 -110.5t-16.5 -126.5q0 -37 7.5 -71t28 -59.5t53 -41t85.5 -15.5q78 0 142.5 26t119.5 73q0 53 5.5 104t19.5 109l148 616h190l-152 -633q-10 -47 -18 -88t-8 -76q0 -53 25.5 -88t91.5 -45l-43 -153q-86 2 -137.5 29.5 t-82.5 78.5q-74 -57 -164 -83.5t-190 -26.5q-63 0 -118.5 25.5t-84.5 72.5q-8 -53 -21 -117.5t-30 -128.5l-51 -211h-188z" /> +<glyph unicode="¶" horiz-adv-x="1331" d="M313 868q0 154 70 261.5t181.5 175t250.5 98.5t279 31q86 0 182 -7.5t174 -27.5l-426 -1778h-160l396 1645q-52 10 -158 10h-35.5t-32.5 -2l-397 -1653h-160l219 916q-207 14 -295 100t-88 231z" /> +<glyph unicode="·" horiz-adv-x="503" d="M256 586q0 74 44 114t102 40q57 0 91 -32t34 -93q0 -35 -13.5 -62.5t-34 -47t-47 -30t-53.5 -10.5q-57 0 -90 31t-33 90z" /> +<glyph unicode="¸" horiz-adv-x="770" d="M66 -356l47 112q16 -8 42.5 -15t65.5 -7q35 0 57.5 11t22.5 40q0 25 -16.5 37t-55.5 31l-12 6q12 20 30.5 47.5t37 54.5t35 48.5t24.5 31.5h131q-16 -23 -44 -58.5t-44 -60.5q41 -23 61.5 -49.5t20.5 -73.5q0 -92 -63.5 -139t-174.5 -47q-59 0 -99 9t-66 22z" /> +<glyph unicode="¹" horiz-adv-x="735" d="M408 1272q94 29 177 70.5t146 93.5h103l-191 -791h-145l143 594q-53 -29 -113.5 -50.5t-101.5 -33.5z" /> +<glyph unicode="º" horiz-adv-x="913" d="M334 934q0 82 24.5 173t79 168t141.5 127t212 50q123 0 193.5 -68.5t70.5 -193.5q0 -82 -24.5 -173t-79 -168t-141.5 -127t-212 -50q-123 0 -193.5 68.5t-70.5 193.5zM487 946q0 -66 33 -106.5t105 -40.5q66 0 117 35.5t86.5 91t54 123t18.5 129.5q0 66 -32.5 106.5 t-104.5 40.5q-66 0 -117 -36t-87 -91t-54.5 -122.5t-18.5 -129.5z" /> +<glyph unicode="»" horiz-adv-x="1021" d="M143 201l322 389l-156 385l127 59l242 -465l-416 -440zM569 201l322 389l-156 385l127 59l242 -465l-416 -440z" /> +<glyph unicode="¼" horiz-adv-x="1789" d="M401 0l1124 1419h195l-1124 -1419h-195zM408 1272q94 29 177 70.5t146 93.5h103l-191 -791h-145l143 594q-53 -29 -113.5 -50.5t-101.5 -33.5zM1163 195l23 94q33 55 89 121.5t125.5 136t145.5 134t148 114.5h133l-117 -486h102l-28 -114h-103l-45 -191h-139l45 191h-379 zM1329 309h242l78 324q-39 -33 -83 -72t-87 -82t-82 -86t-68 -84z" /> +<glyph unicode="½" horiz-adv-x="1789" d="M358 0l1124 1419h195l-1124 -1419h-195zM408 1272q94 29 177 70.5t146 93.5h103l-191 -791h-145l143 594q-53 -29 -113.5 -50.5t-101.5 -33.5zM1153 4q8 74 32.5 128t61.5 97t84 78t100 68t93.5 59.5t67 51t39.5 52t13 62.5q0 43 -29.5 63.5t-70.5 20.5q-86 0 -136 -29.5 t-77 -52.5l-49 100q41 39 112.5 74t166.5 35q117 0 173 -54.5t56 -146.5q0 -59 -27.5 -108t-70.5 -90t-94.5 -75t-98.5 -63q-43 -29 -94 -61.5t-70 -79.5h387l-30 -129h-539z" /> +<glyph unicode="¾" horiz-adv-x="1789" d="M231 684l56 115q35 -16 85 -30.5t103 -14.5q43 0 83 6t70.5 23.5t50 46t19.5 71.5q0 57 -53 82t-141 25h-43l28 114h52q29 0 64.5 6.5t66 20.5t52 36.5t21.5 57.5q0 47 -27.5 65.5t-86.5 18.5q-55 0 -107.5 -16.5t-85.5 -32.5l-28 106q18 12 47.5 23.5t65.5 22t73 16.5 t70 6q121 0 171 -49t50 -119q0 -82 -42 -131t-116 -84q49 -20 81 -59t32 -105q0 -135 -102.5 -205.5t-268.5 -70.5q-82 0 -140.5 16.5t-99.5 38.5zM424 0l1124 1419h195l-1124 -1419h-195zM1163 195l23 94q33 55 89 121.5t125.5 136t145.5 134t148 114.5h133l-117 -486h102 l-28 -114h-103l-45 -191h-139l45 191h-379zM1329 309h242l78 324q-39 -33 -83 -72t-87 -82t-82 -86t-68 -84z" /> +<glyph unicode="¿" horiz-adv-x="786" d="M80 -106q0 68 19.5 122t54 100t82 88t102.5 85q68 53 129 116.5t84 153.5q4 12 5 22.5t1 14.5h166q-2 -25 -4 -44.5t-6 -39.5q-25 -104 -95.5 -179t-148.5 -134q-37 -29 -72 -58.5t-63.5 -63.5t-46 -73t-17.5 -86q0 -23 6.5 -49.5t26 -48t54 -35.5t92.5 -14 q98 0 163.5 22.5t102.5 40.5l20 -147q-49 -29 -134 -50.5t-177 -21.5q-96 0 -161.5 22.5t-106.5 60.5t-58.5 89t-17.5 107zM539 911q0 74 44 114t101 40t91 -32t34 -93q0 -35 -13.5 -62.5t-34 -47t-46.5 -29.5t-53 -10q-57 0 -90 30.5t-33 89.5z" /> +<glyph unicode="À" horiz-adv-x="1302" d="M20 0q229 414 447.5 762t431.5 657h195q31 -154 56.5 -310.5t50 -328.5t47 -364.5t46.5 -415.5h-200q-10 92 -18.5 185.5t-18.5 179.5h-619l-200 -365h-218zM530 524h508q-16 166 -37.5 330t-50.5 338q-72 -104 -178 -269t-242 -399zM799 1798l139 116l260 -327l-100 -88 z" /> +<glyph unicode="Á" horiz-adv-x="1302" d="M20 0q229 414 447.5 762t431.5 657h195q31 -154 56.5 -310.5t50 -328.5t47 -364.5t46.5 -415.5h-200q-10 92 -18.5 185.5t-18.5 179.5h-619l-200 -365h-218zM530 524h508q-16 166 -37.5 330t-50.5 338q-72 -104 -178 -269t-242 -399zM863 1607l323 309l105 -147 l-347 -262z" /> +<glyph unicode="Â" horiz-adv-x="1302" d="M20 0q229 414 447.5 762t431.5 657h195q31 -154 56.5 -310.5t50 -328.5t47 -364.5t46.5 -415.5h-200q-10 92 -18.5 185.5t-18.5 179.5h-619l-200 -365h-218zM530 524h508q-16 166 -37.5 330t-50.5 338q-72 -104 -178 -269t-242 -399zM758 1609l332 285l217 -303l-90 -84 l-162 178l-229 -168z" /> +<glyph unicode="Ã" horiz-adv-x="1302" d="M20 0q229 414 447.5 762t431.5 657h195q31 -154 56.5 -310.5t50 -328.5t47 -364.5t46.5 -415.5h-200q-10 92 -18.5 185.5t-18.5 179.5h-619l-200 -365h-218zM530 524h508q-16 166 -37.5 330t-50.5 338q-72 -104 -178 -269t-242 -399zM707 1634q41 86 97 132t148 46 q41 0 73 -14.5t61 -30.5q31 -16 55 -26.5t49 -10.5q43 0 71.5 32t51.5 66l96 -59q-41 -86 -97 -132t-149 -46q-41 0 -72.5 14t-60.5 31q-31 16 -55.5 26.5t-48.5 10.5q-43 0 -72 -32t-51 -67z" /> +<glyph unicode="Ä" horiz-adv-x="1302" d="M20 0q229 414 447.5 762t431.5 657h195q31 -154 56.5 -310.5t50 -328.5t47 -364.5t46.5 -415.5h-200q-10 92 -18.5 185.5t-18.5 179.5h-619l-200 -365h-218zM530 524h508q-16 166 -37.5 330t-50.5 338q-72 -104 -178 -269t-242 -399zM745 1685q0 61 41 99t88 38 q45 0 77 -29.5t32 -78.5q0 -59 -42 -96t-89 -37q-45 0 -76 28.5t-31 75.5zM1135 1685q0 61 40.5 99t88.5 38q45 0 76.5 -29.5t31.5 -78.5q0 -59 -42 -96t-89 -37q-45 0 -75.5 28.5t-30.5 75.5z" /> +<glyph unicode="Å" horiz-adv-x="1302" d="M20 0q217 391 424 725t410 631q-29 27 -46 65.5t-17 87.5t17 87t46 66t66.5 42t80.5 14t81 -14t67 -42t46 -65.5t17 -87.5q0 -63 -27.5 -109t-72.5 -73q27 -143 49.5 -289.5t44 -308.5t43 -341t45.5 -388h-200q-10 92 -18.5 185.5t-18.5 179.5h-619l-200 -365h-218z M530 524h508q-16 166 -37.5 330t-50.5 338q-72 -104 -178 -269t-242 -399zM893 1509q0 -53 31.5 -82.5t76.5 -29.5t77 29.5t32 82.5t-31.5 83t-77.5 30q-45 0 -76.5 -29.5t-31.5 -83.5z" /> +<glyph unicode="Æ" horiz-adv-x="1900" d="M6 0q162 221 314.5 416.5t299 370t289 331t283.5 301.5h911l-39 -166h-610l-102 -428h538l-39 -161h-536l-121 -498h657l-39 -166h-854l86 365h-542q-70 -92 -136.5 -182.5t-132.5 -182.5h-227zM627 524h456l177 731q-160 -168 -320 -351t-313 -380z" /> +<glyph unicode="Ç" horiz-adv-x="1228" d="M254 520q0 184 58.5 352t166 297t259 206t337.5 77q160 0 255 -33t136 -61l-82 -164q-47 31 -127.5 58.5t-191.5 27.5q-141 0 -254 -66.5t-190.5 -172t-118.5 -237.5t-41 -261q0 -399 346 -400q74 0 132 10.5t103 23.5t80 29.5t62 29.5l24 -173q-25 -14 -64.5 -30.5 t-93 -30.5t-119 -23.5t-138.5 -9.5h-11q-10 -10 -17 -22.5t-15 -24.5q41 -23 61 -49.5t20 -73.5q0 -92 -63 -139t-174 -47q-59 0 -99 9t-67 22l47 112q16 -8 43 -15t66 -7q35 0 57.5 11t22.5 40q0 25 -16.5 37t-55.5 31l-12 6q14 25 36.5 59.5t45.5 63.5q-205 35 -306.5 175 t-101.5 363z" /> +<glyph unicode="È" horiz-adv-x="1140" d="M166 0l340 1419h837l-38 -166h-641l-103 -428h569l-38 -161h-568l-121 -498h689l-39 -166h-887zM733 1798l139 116l260 -327l-100 -88z" /> +<glyph unicode="É" horiz-adv-x="1140" d="M166 0l340 1419h837l-38 -166h-641l-103 -428h569l-38 -161h-568l-121 -498h689l-39 -166h-887zM797 1607l323 309l105 -147l-347 -262z" /> +<glyph unicode="Ê" horiz-adv-x="1140" d="M166 0l340 1419h837l-38 -166h-641l-103 -428h569l-38 -161h-568l-121 -498h689l-39 -166h-887zM694 1609l332 285l217 -303l-90 -84l-162 178l-229 -168z" /> +<glyph unicode="Ë" horiz-adv-x="1140" d="M166 0l340 1419h837l-38 -166h-641l-103 -428h569l-38 -161h-568l-121 -498h689l-39 -166h-887zM679 1685q0 61 41 99t88 38q45 0 77 -29.5t32 -78.5q0 -59 -42 -96t-89 -37q-45 0 -76 28.5t-31 75.5zM1069 1685q0 61 40.5 99t88.5 38q45 0 76.5 -29.5t31.5 -78.5 q0 -59 -42 -96t-89 -37q-45 0 -75.5 28.5t-30.5 75.5z" /> +<glyph unicode="Ì" horiz-adv-x="538" d="M166 0l340 1419h199l-340 -1419h-199zM418 1798l139 116l260 -327l-100 -88z" /> +<glyph unicode="Í" horiz-adv-x="538" d="M166 0l340 1419h199l-340 -1419h-199zM482 1607l323 309l105 -147l-347 -262z" /> +<glyph unicode="Î" horiz-adv-x="538" d="M166 0l340 1419h199l-340 -1419h-199zM377 1609l332 285l217 -303l-90 -84l-162 178l-229 -168z" /> +<glyph unicode="Ï" horiz-adv-x="538" d="M166 0l340 1419h199l-340 -1419h-199zM364 1685q0 61 41 99t88 38q45 0 77 -29.5t32 -78.5q0 -59 -42 -96t-89 -37q-45 0 -76 28.5t-31 75.5zM754 1685q0 61 40.5 99t88.5 38q45 0 76.5 -29.5t31.5 -78.5q0 -59 -42 -96t-89 -37q-45 0 -75.5 28.5t-30.5 75.5z" /> +<glyph unicode="Ð" horiz-adv-x="1454" d="M199 664l37 153h165l140 584q86 20 182 26.5t182 6.5q315 0 471 -148.5t156 -400.5q0 -176 -55.5 -339t-172 -288t-298 -198.5t-433.5 -73.5q-86 0 -186 8t-176 29l154 641h-166zM442 164q16 -4 55.5 -7t127.5 -3q162 0 292 54t220 151.5t139 231.5t49 294 q0 180 -104.5 280.5t-331.5 100.5q-154 0 -184 -9l-107 -440h266l-37 -153h-266z" /> +<glyph unicode="Ñ" horiz-adv-x="1429" d="M166 0l340 1419h170q66 -111 134.5 -251t131 -287.5t115.5 -288.5t88 -254l254 1081h194l-338 -1419h-174q-37 119 -88 270.5t-111.5 307t-124 302t-124.5 255.5l-273 -1135h-194zM768 1634q41 86 97 132t148 46q41 0 73 -14.5t61 -30.5q31 -16 55 -26.5t49 -10.5 q43 0 71.5 32t51.5 66l96 -59q-41 -86 -97 -132t-149 -46q-41 0 -72.5 14t-60.5 31q-31 16 -55.5 26.5t-48.5 10.5q-43 0 -72 -32t-51 -67z" /> +<glyph unicode="Ò" horiz-adv-x="1513" d="M254 510q0 168 51 337t154.5 303t257 218t358.5 84q113 0 208 -34t164 -101.5t106.5 -168.5t37.5 -237q0 -170 -52 -337.5t-154.5 -302t-256 -218.5t-358.5 -84q-115 0 -209 34t-162.5 101.5t-106.5 169t-38 236.5zM461 535q0 -182 79 -288t251 -106q137 0 247.5 66.5 t187.5 173t117.5 240t40.5 266.5q0 182 -78.5 287.5t-250.5 105.5q-139 0 -249 -66.5t-186.5 -173t-117.5 -239.5t-41 -266zM901 1798l139 116l260 -327l-100 -88z" /> +<glyph unicode="Ó" horiz-adv-x="1513" d="M254 510q0 168 51 337t154.5 303t257 218t358.5 84q113 0 208 -34t164 -101.5t106.5 -168.5t37.5 -237q0 -170 -52 -337.5t-154.5 -302t-256 -218.5t-358.5 -84q-115 0 -209 34t-162.5 101.5t-106.5 169t-38 236.5zM461 535q0 -182 79 -288t251 -106q137 0 247.5 66.5 t187.5 173t117.5 240t40.5 266.5q0 182 -78.5 287.5t-250.5 105.5q-139 0 -249 -66.5t-186.5 -173t-117.5 -239.5t-41 -266zM965 1607l323 309l105 -147l-347 -262z" /> +<glyph unicode="Ô" horiz-adv-x="1513" d="M254 510q0 168 51 337t154.5 303t257 218t358.5 84q113 0 208 -34t164 -101.5t106.5 -168.5t37.5 -237q0 -170 -52 -337.5t-154.5 -302t-256 -218.5t-358.5 -84q-115 0 -209 34t-162.5 101.5t-106.5 169t-38 236.5zM461 535q0 -182 79 -288t251 -106q137 0 247.5 66.5 t187.5 173t117.5 240t40.5 266.5q0 182 -78.5 287.5t-250.5 105.5q-139 0 -249 -66.5t-186.5 -173t-117.5 -239.5t-41 -266zM860 1609l332 285l217 -303l-90 -84l-162 178l-229 -168z" /> +<glyph unicode="Õ" horiz-adv-x="1513" d="M254 510q0 168 51 337t154.5 303t257 218t358.5 84q113 0 208 -34t164 -101.5t106.5 -168.5t37.5 -237q0 -170 -52 -337.5t-154.5 -302t-256 -218.5t-358.5 -84q-115 0 -209 34t-162.5 101.5t-106.5 169t-38 236.5zM461 535q0 -182 79 -288t251 -106q137 0 247.5 66.5 t187.5 173t117.5 240t40.5 266.5q0 182 -78.5 287.5t-250.5 105.5q-139 0 -249 -66.5t-186.5 -173t-117.5 -239.5t-41 -266zM809 1634q41 86 97 132t148 46q41 0 73 -14.5t61 -30.5q31 -16 55 -26.5t49 -10.5q43 0 71.5 32t51.5 66l96 -59q-41 -86 -97 -132t-149 -46 q-41 0 -72.5 14t-60.5 31q-31 16 -55.5 26.5t-48.5 10.5q-43 0 -72 -32t-51 -67z" /> +<glyph unicode="Ö" horiz-adv-x="1513" d="M254 510q0 168 51 337t154.5 303t257 218t358.5 84q113 0 208 -34t164 -101.5t106.5 -168.5t37.5 -237q0 -170 -52 -337.5t-154.5 -302t-256 -218.5t-358.5 -84q-115 0 -209 34t-162.5 101.5t-106.5 169t-38 236.5zM461 535q0 -182 79 -288t251 -106q137 0 247.5 66.5 t187.5 173t117.5 240t40.5 266.5q0 182 -78.5 287.5t-250.5 105.5q-139 0 -249 -66.5t-186.5 -173t-117.5 -239.5t-41 -266zM847 1685q0 61 41 99t88 38q45 0 77 -29.5t32 -78.5q0 -59 -42 -96t-89 -37q-45 0 -76 28.5t-31 75.5zM1237 1685q0 61 40.5 99t88.5 38 q45 0 76.5 -29.5t31.5 -78.5q0 -59 -42 -96t-89 -37q-45 0 -75.5 28.5t-30.5 75.5z" /> +<glyph unicode="×" d="M238 317l372 301l-223 295l129 105l223 -295l369 301l96 -123l-373 -301l224 -295l-129 -104l-224 295l-368 -301z" /> +<glyph unicode="Ø" horiz-adv-x="1513" d="M213 14l133 152q-92 131 -92 344q0 168 51 337t154.5 303t257 218t358.5 84q188 0 320 -94l121 137l114 -88l-133 -152q45 -66 69.5 -149.5t24.5 -194.5q0 -170 -52 -337.5t-154.5 -302t-256 -218.5t-358.5 -84q-193 0 -321 92l-119 -135zM461 535q0 -59 6 -112.5 t22 -94.5l779 886q-78 66 -213 66q-139 0 -249 -66.5t-186.5 -173t-117.5 -239.5t-41 -266zM575 207q39 -35 93.5 -50.5t122.5 -15.5q137 0 247.5 66.5t187.5 173t117.5 240t40.5 266.5q0 59 -6 110.5t-22 96.5z" /> +<glyph unicode="Ù" horiz-adv-x="1363" d="M270 377q0 45 8.5 100t18.5 103l201 839h198l-204 -852q-10 -39 -16.5 -86t-6.5 -88q0 -53 12.5 -98t42 -79t76.5 -53.5t115 -19.5q174 0 270 97.5t145 310.5l209 868h199l-213 -891q-29 -117 -66.5 -219t-107.5 -177t-181.5 -119t-285.5 -44q-106 0 -184 32t-129.5 86 t-76 129t-24.5 161zM817 1798l139 116l260 -327l-100 -88z" /> +<glyph unicode="Ú" horiz-adv-x="1363" d="M270 377q0 45 8.5 100t18.5 103l201 839h198l-204 -852q-10 -39 -16.5 -86t-6.5 -88q0 -53 12.5 -98t42 -79t76.5 -53.5t115 -19.5q174 0 270 97.5t145 310.5l209 868h199l-213 -891q-29 -117 -66.5 -219t-107.5 -177t-181.5 -119t-285.5 -44q-106 0 -184 32t-129.5 86 t-76 129t-24.5 161zM881 1607l323 309l105 -147l-347 -262z" /> +<glyph unicode="Û" horiz-adv-x="1363" d="M270 377q0 45 8.5 100t18.5 103l201 839h198l-204 -852q-10 -39 -16.5 -86t-6.5 -88q0 -53 12.5 -98t42 -79t76.5 -53.5t115 -19.5q174 0 270 97.5t145 310.5l209 868h199l-213 -891q-29 -117 -66.5 -219t-107.5 -177t-181.5 -119t-285.5 -44q-106 0 -184 32t-129.5 86 t-76 129t-24.5 161zM776 1609l332 285l217 -303l-90 -84l-162 178l-229 -168z" /> +<glyph unicode="Ü" horiz-adv-x="1363" d="M270 377q0 45 8.5 100t18.5 103l201 839h198l-204 -852q-10 -39 -16.5 -86t-6.5 -88q0 -53 12.5 -98t42 -79t76.5 -53.5t115 -19.5q174 0 270 97.5t145 310.5l209 868h199l-213 -891q-29 -117 -66.5 -219t-107.5 -177t-181.5 -119t-285.5 -44q-106 0 -184 32t-129.5 86 t-76 129t-24.5 161zM763 1685q0 61 41 99t88 38q45 0 77 -29.5t32 -78.5q0 -59 -42 -96t-89 -37q-45 0 -76 28.5t-31 75.5zM1153 1685q0 61 40.5 99t88.5 38q45 0 76.5 -29.5t31.5 -78.5q0 -59 -42 -96t-89 -37q-45 0 -75.5 28.5t-30.5 75.5z" /> +<glyph unicode="Ý" horiz-adv-x="1171" d="M336 1419h215q39 -166 87 -338t107 -331q135 158 273.5 331.5t245.5 337.5h227q-154 -209 -322 -418.5t-360 -431.5l-135 -569h-199l135 569q-80 215 -148.5 431.5t-125.5 418.5zM781 1607l323 309l105 -147l-347 -262z" /> +<glyph unicode="Þ" horiz-adv-x="1216" d="M164 0l342 1419h199l-56 -233q39 4 81 5t81 1q248 0 372 -92t124 -273q0 -139 -52.5 -240.5t-148.5 -167t-231.5 -97t-301.5 -31.5h-141l-70 -291h-198zM473 457h127q86 0 176 15t162 54t118 107.5t46 177.5q0 117 -86.5 165t-233.5 48q-76 0 -118.5 -3t-57.5 -5z" /> +<glyph unicode="ß" horiz-adv-x="1228" d="M-39 -362q61 80 96 135t58.5 112.5t41 132t46.5 193.5l221 924q57 242 190.5 348t350.5 106q82 0 143 -22.5t102 -60.5t61.5 -88t20.5 -105q0 -59 -13 -103.5t-41 -83.5t-68 -76.5t-93 -86.5q-35 -31 -60.5 -53.5t-42 -43t-24.5 -44t-8 -54.5q0 -43 34 -71.5t93 -69.5 q39 -27 72 -53.5t57.5 -59.5t38.5 -74t14 -96q0 -92 -33.5 -161.5t-92 -116t-140.5 -69t-176 -22.5q-117 0 -195.5 27t-99.5 43l72 154q23 -14 83 -39t154 -25q104 0 171 49t67 148q0 61 -34 103t-120 95q-53 33 -83.5 60.5t-47 54.5t-20.5 53.5t-4 57.5q0 88 56 155.5 t134 132.5q37 31 66.5 57.5t51 54.5t33 60.5t11.5 73.5q0 61 -41 98t-123 37q-256 0 -326 -295l-217 -901q-25 -104 -43 -186t-43.5 -153.5t-67.5 -138t-114 -138.5z" /> +<glyph unicode="à" horiz-adv-x="1114" d="M201 356q0 137 46 268.5t138 234t231.5 165.5t325.5 63q55 0 129 -12t127 -41l-158 -643q-10 -47 -17 -90t-7 -90t8 -95t29 -104l-168 -24q-10 23 -20.5 50.5t-16.5 57.5q-45 -41 -121 -82t-186 -41q-90 0 -154.5 29t-105.5 80t-60.5 120.5t-19.5 153.5zM391 377 q0 -43 8.5 -87t30 -78t57.5 -55.5t93 -21.5q86 0 147 37t107 86q2 35 7 73t13 77l123 507q-10 4 -33.5 6.5t-42.5 2.5q-117 0 -211 -45t-160.5 -120t-102.5 -174.5t-36 -207.5zM645 1479l139 116l260 -327l-100 -88z" /> +<glyph unicode="á" horiz-adv-x="1114" d="M201 356q0 137 46 268.5t138 234t231.5 165.5t325.5 63q55 0 129 -12t127 -41l-158 -643q-10 -47 -17 -90t-7 -90t8 -95t29 -104l-168 -24q-10 23 -20.5 50.5t-16.5 57.5q-45 -41 -121 -82t-186 -41q-90 0 -154.5 29t-105.5 80t-60.5 120.5t-19.5 153.5zM391 377 q0 -43 8.5 -87t30 -78t57.5 -55.5t93 -21.5q86 0 147 37t107 86q2 35 7 73t13 77l123 507q-10 4 -33.5 6.5t-42.5 2.5q-117 0 -211 -45t-160.5 -120t-102.5 -174.5t-36 -207.5zM707 1288l323 309l105 -147l-347 -262z" /> +<glyph unicode="â" horiz-adv-x="1114" d="M201 356q0 137 46 268.5t138 234t231.5 165.5t325.5 63q55 0 129 -12t127 -41l-158 -643q-10 -47 -17 -90t-7 -90t8 -95t29 -104l-168 -24q-10 23 -20.5 50.5t-16.5 57.5q-45 -41 -121 -82t-186 -41q-90 0 -154.5 29t-105.5 80t-60.5 120.5t-19.5 153.5zM391 377 q0 -43 8.5 -87t30 -78t57.5 -55.5t93 -21.5q86 0 147 37t107 86q2 35 7 73t13 77l123 507q-10 4 -33.5 6.5t-42.5 2.5q-117 0 -211 -45t-160.5 -120t-102.5 -174.5t-36 -207.5zM604 1290l332 285l217 -303l-90 -84l-162 178l-229 -168z" /> +<glyph unicode="ã" horiz-adv-x="1114" d="M201 356q0 137 46 268.5t138 234t231.5 165.5t325.5 63q55 0 129 -12t127 -41l-158 -643q-10 -47 -17 -90t-7 -90t8 -95t29 -104l-168 -24q-10 23 -20.5 50.5t-16.5 57.5q-45 -41 -121 -82t-186 -41q-90 0 -154.5 29t-105.5 80t-60.5 120.5t-19.5 153.5zM391 377 q0 -43 8.5 -87t30 -78t57.5 -55.5t93 -21.5q86 0 147 37t107 86q2 35 7 73t13 77l123 507q-10 4 -33.5 6.5t-42.5 2.5q-117 0 -211 -45t-160.5 -120t-102.5 -174.5t-36 -207.5zM553 1315q41 86 97 132t148 46q41 0 73 -14.5t61 -30.5q31 -16 55 -26.5t49 -10.5q43 0 71.5 32 t51.5 66l96 -59q-41 -86 -97 -132t-149 -46q-41 0 -72.5 14t-60.5 31q-31 16 -55.5 26.5t-48.5 10.5q-43 0 -72 -32t-51 -67z" /> +<glyph unicode="ä" horiz-adv-x="1114" d="M201 356q0 137 46 268.5t138 234t231.5 165.5t325.5 63q55 0 129 -12t127 -41l-158 -643q-10 -47 -17 -90t-7 -90t8 -95t29 -104l-168 -24q-10 23 -20.5 50.5t-16.5 57.5q-45 -41 -121 -82t-186 -41q-90 0 -154.5 29t-105.5 80t-60.5 120.5t-19.5 153.5zM391 377 q0 -43 8.5 -87t30 -78t57.5 -55.5t93 -21.5q86 0 147 37t107 86q2 35 7 73t13 77l123 507q-10 4 -33.5 6.5t-42.5 2.5q-117 0 -211 -45t-160.5 -120t-102.5 -174.5t-36 -207.5zM589 1366q0 61 41 99t88 38q45 0 77 -29.5t32 -78.5q0 -59 -42 -96t-89 -37q-45 0 -76 28.5 t-31 75.5zM979 1366q0 61 40.5 99t88.5 38q45 0 76.5 -29.5t31.5 -78.5q0 -59 -42 -96t-89 -37q-45 0 -75.5 28.5t-30.5 75.5z" /> +<glyph unicode="å" horiz-adv-x="1114" d="M201 356q0 137 46 268.5t138 234t231.5 165.5t325.5 63q55 0 129 -12t127 -41l-158 -643q-10 -47 -17 -90t-7 -90t8 -95t29 -104l-168 -24q-10 23 -20.5 50.5t-16.5 57.5q-45 -41 -121 -82t-186 -41q-90 0 -154.5 29t-105.5 80t-60.5 120.5t-19.5 153.5zM391 377 q0 -43 8.5 -87t30 -78t57.5 -55.5t93 -21.5q86 0 147 37t107 86q2 35 7 73t13 77l123 507q-10 4 -33.5 6.5t-42.5 2.5q-117 0 -211 -45t-160.5 -120t-102.5 -174.5t-36 -207.5zM688 1386q0 49 17.5 87t46 66t66.5 42t81 14t81 -14t66.5 -42t46 -66t17.5 -87t-17.5 -86.5 t-46 -65.5t-66.5 -42t-81 -14t-81 14t-66.5 42t-46 65.5t-17.5 86.5zM790 1386q0 -53 32 -82.5t77 -29.5t76.5 29.5t31.5 82.5t-31.5 83t-76.5 30t-77 -29.5t-32 -83.5z" /> +<glyph unicode="æ" horiz-adv-x="1712" d="M201 233q0 143 70.5 224.5t178 120t234.5 50t242 17.5q2 16 3 31.5t1 32.5q0 111 -61.5 161t-196.5 50q-41 0 -82 -8.5t-78 -18.5t-66.5 -22.5t-44.5 -20.5l-16 162q47 25 136 49t188 24q53 0 106 -10t101.5 -32.5t88 -62.5t66.5 -97q39 51 88 89t104.5 63.5t113 37.5 t112.5 12q61 0 117.5 -14t97.5 -46t65.5 -81t24.5 -119q0 -96 -32.5 -162.5t-88 -111.5t-128 -69.5t-153.5 -39t-164 -19.5t-159 -9q-2 -16 -3 -31.5t-1 -30.5q0 -117 61.5 -165t196.5 -48q39 0 81 7.5t80 18.5t67.5 22.5t41.5 21.5l17 -162q-53 -29 -142.5 -51.5 t-187.5 -22.5q-55 0 -109.5 10.5t-101.5 34t-85 61.5t-60 95q-72 -94 -182.5 -147.5t-239.5 -53.5q-59 0 -114.5 15.5t-96.5 47.5t-65.5 81t-24.5 116zM387 260q0 -66 43 -97.5t113 -31.5q135 0 230 95.5t130 273.5q-145 -4 -243.5 -20.5t-159 -47.5t-87 -74t-26.5 -98z M1092 559q143 2 242.5 19.5t159.5 48t87 73.5t27 99q0 66 -43 97.5t-113 31.5q-135 0 -230 -95.5t-130 -273.5z" /> +<glyph unicode="ç" horiz-adv-x="923" d="M205 381q0 139 42 268t124 227.5t200.5 157t272.5 58.5q68 0 129 -9.5t117 -35.5l-72 -160q-33 18 -77 28.5t-114 10.5q-100 0 -180 -44t-136 -117t-86 -168t-30 -198q0 -53 11.5 -100t40 -83t76.5 -56.5t122 -20.5q37 0 78 7.5t76 17.5t62.5 21.5t39.5 21.5l17 -162 q-39 -25 -121 -47.5t-183 -24.5q-10 -14 -18 -26.5t-16 -24.5q41 -23 61.5 -49.5t20.5 -73.5q0 -92 -63.5 -139t-174.5 -47q-59 0 -99 9t-67 22l47 112q16 -8 43 -15t66 -7q35 0 57.5 11t22.5 40q0 25 -16.5 37t-55.5 31l-12 6q14 27 38.5 62.5t45.5 64.5q-141 33 -215 137 t-74 258z" /> +<glyph unicode="è" horiz-adv-x="1060" d="M205 354q0 143 43 276.5t123 236t194.5 163t259.5 60.5q84 0 144.5 -21.5t98.5 -58.5t56.5 -85t18.5 -100q0 -96 -35 -162.5t-92.5 -111.5t-134 -69.5t-159.5 -39t-168 -19.5t-161 -9q-2 -16 -2 -26.5v-16.5q0 -47 11.5 -89t42 -74t85 -50.5t142.5 -18.5q39 0 81 7.5 t79.5 18.5t67.5 22.5t42 21.5l16 -162q-41 -23 -132 -48.5t-214 -25.5q-104 0 -180 30t-127 82t-75.5 121.5t-24.5 147.5zM418 559q119 4 217 15.5t170 39t111.5 74.5t39.5 123q0 18 -7 38.5t-24.5 38t-48 29t-75.5 11.5q-72 0 -134.5 -31t-111.5 -81t-84 -116.5t-53 -140.5 zM627 1479l139 116l260 -327l-100 -88z" /> +<glyph unicode="é" horiz-adv-x="1060" d="M205 354q0 143 43 276.5t123 236t194.5 163t259.5 60.5q84 0 144.5 -21.5t98.5 -58.5t56.5 -85t18.5 -100q0 -96 -35 -162.5t-92.5 -111.5t-134 -69.5t-159.5 -39t-168 -19.5t-161 -9q-2 -16 -2 -26.5v-16.5q0 -47 11.5 -89t42 -74t85 -50.5t142.5 -18.5q39 0 81 7.5 t79.5 18.5t67.5 22.5t42 21.5l16 -162q-41 -23 -132 -48.5t-214 -25.5q-104 0 -180 30t-127 82t-75.5 121.5t-24.5 147.5zM418 559q119 4 217 15.5t170 39t111.5 74.5t39.5 123q0 18 -7 38.5t-24.5 38t-48 29t-75.5 11.5q-72 0 -134.5 -31t-111.5 -81t-84 -116.5t-53 -140.5 zM689 1288l323 309l105 -147l-347 -262z" /> +<glyph unicode="ê" horiz-adv-x="1060" d="M205 354q0 143 43 276.5t123 236t194.5 163t259.5 60.5q84 0 144.5 -21.5t98.5 -58.5t56.5 -85t18.5 -100q0 -96 -35 -162.5t-92.5 -111.5t-134 -69.5t-159.5 -39t-168 -19.5t-161 -9q-2 -16 -2 -26.5v-16.5q0 -47 11.5 -89t42 -74t85 -50.5t142.5 -18.5q39 0 81 7.5 t79.5 18.5t67.5 22.5t42 21.5l16 -162q-41 -23 -132 -48.5t-214 -25.5q-104 0 -180 30t-127 82t-75.5 121.5t-24.5 147.5zM418 559q119 4 217 15.5t170 39t111.5 74.5t39.5 123q0 18 -7 38.5t-24.5 38t-48 29t-75.5 11.5q-72 0 -134.5 -31t-111.5 -81t-84 -116.5t-53 -140.5 zM584 1290l332 285l217 -303l-90 -84l-162 178l-229 -168z" /> +<glyph unicode="ë" horiz-adv-x="1060" d="M205 354q0 143 43 276.5t123 236t194.5 163t259.5 60.5q84 0 144.5 -21.5t98.5 -58.5t56.5 -85t18.5 -100q0 -96 -35 -162.5t-92.5 -111.5t-134 -69.5t-159.5 -39t-168 -19.5t-161 -9q-2 -16 -2 -26.5v-16.5q0 -47 11.5 -89t42 -74t85 -50.5t142.5 -18.5q39 0 81 7.5 t79.5 18.5t67.5 22.5t42 21.5l16 -162q-41 -23 -132 -48.5t-214 -25.5q-104 0 -180 30t-127 82t-75.5 121.5t-24.5 147.5zM418 559q119 4 217 15.5t170 39t111.5 74.5t39.5 123q0 18 -7 38.5t-24.5 38t-48 29t-75.5 11.5q-72 0 -134.5 -31t-111.5 -81t-84 -116.5t-53 -140.5 zM571 1366q0 61 41 99t88 38q45 0 77 -29.5t32 -78.5q0 -59 -42 -96t-89 -37q-45 0 -76 28.5t-31 75.5zM961 1366q0 61 40.5 99t88.5 38q45 0 76.5 -29.5t31.5 -78.5q0 -59 -42 -96t-89 -37q-45 0 -75.5 28.5t-30.5 75.5z" /> +<glyph unicode="ì" horiz-adv-x="509" d="M156 0l256 1065h190l-256 -1065h-190zM330 1479l139 116l260 -327l-100 -88z" /> +<glyph unicode="í" horiz-adv-x="509" d="M156 0l256 1065h190l-256 -1065h-190zM394 1288l323 309l105 -147l-347 -262z" /> +<glyph unicode="î" horiz-adv-x="509" d="M156 0l256 1065h190l-256 -1065h-190zM289 1290l332 285l217 -303l-90 -84l-162 178l-229 -168z" /> +<glyph unicode="ï" horiz-adv-x="509" d="M156 0l256 1065h190l-256 -1065h-190zM274 1366q0 61 41 99t88 38q45 0 77 -29.5t32 -78.5q0 -59 -42 -96t-89 -37q-45 0 -76 28.5t-31 75.5zM664 1366q0 61 40.5 99t88.5 38q45 0 76.5 -29.5t31.5 -78.5q0 -59 -42 -96t-89 -37q-45 0 -75.5 28.5t-30.5 75.5z" /> +<glyph unicode="ð" horiz-adv-x="1165" d="M205 344q0 141 38 262t111.5 209t183 138.5t253.5 50.5q74 0 131 -19.5t94 -42.5q-4 66 -18.5 134.5t-43.5 135.5l-266 -84l-16 129l225 72q-33 53 -68.5 89t-76.5 75l143 96q39 -29 86 -80t92 -125l268 86l17 -129l-225 -71q33 -80 53 -178.5t20 -217.5q0 -61 -8 -152 t-32.5 -190.5t-68.5 -200t-114 -179t-169 -129t-236 -50.5q-80 0 -149 26t-118 73t-77.5 116.5t-28.5 155.5zM395 362q0 -111 54.5 -168t154.5 -57q94 0 166 54.5t122 141.5t79.5 198.5t40.5 226.5q-53 45 -114.5 62.5t-121.5 17.5q-186 0 -283.5 -126t-97.5 -350z" /> +<glyph unicode="ñ" horiz-adv-x="1128" d="M156 0l245 1024q94 29 204 46t196 17q92 0 158.5 -25.5t107.5 -69.5t60.5 -106.5t19.5 -135.5q0 -47 -8.5 -99.5t-20.5 -105.5l-131 -545h-190l121 504q14 57 27 116.5t13 112.5q0 82 -45 136.5t-168 54.5q-51 0 -100 -6.5t-82 -16.5l-217 -901h-190zM551 1315 q41 86 97 132t148 46q41 0 73 -14.5t61 -30.5q31 -16 55 -26.5t49 -10.5q43 0 71.5 32t51.5 66l96 -59q-41 -86 -97 -132t-149 -46q-41 0 -72.5 14t-60.5 31q-31 16 -55.5 26.5t-48.5 10.5q-43 0 -72 -32t-51 -67z" /> +<glyph unicode="ò" horiz-adv-x="1136" d="M205 346q0 119 33.5 250t107.5 241.5t190.5 182.5t282.5 72q168 0 263.5 -99.5t95.5 -273.5q0 -119 -34 -250t-107.5 -241.5t-190.5 -182.5t-283 -72q-168 0 -263 99.5t-95 273.5zM395 362q0 -104 45 -165.5t156 -61.5q92 0 165 53.5t123 136.5t76.5 183t26.5 194 q0 104 -45 166t-156 62q-92 0 -164.5 -53.5t-122.5 -136.5t-77 -183t-27 -195zM637 1479l139 116l260 -327l-100 -88z" /> +<glyph unicode="ó" horiz-adv-x="1136" d="M205 346q0 119 33.5 250t107.5 241.5t190.5 182.5t282.5 72q168 0 263.5 -99.5t95.5 -273.5q0 -119 -34 -250t-107.5 -241.5t-190.5 -182.5t-283 -72q-168 0 -263 99.5t-95 273.5zM395 362q0 -104 45 -165.5t156 -61.5q92 0 165 53.5t123 136.5t76.5 183t26.5 194 q0 104 -45 166t-156 62q-92 0 -164.5 -53.5t-122.5 -136.5t-77 -183t-27 -195zM701 1288l323 309l105 -147l-347 -262z" /> +<glyph unicode="ô" horiz-adv-x="1136" d="M205 346q0 119 33.5 250t107.5 241.5t190.5 182.5t282.5 72q168 0 263.5 -99.5t95.5 -273.5q0 -119 -34 -250t-107.5 -241.5t-190.5 -182.5t-283 -72q-168 0 -263 99.5t-95 273.5zM395 362q0 -104 45 -165.5t156 -61.5q92 0 165 53.5t123 136.5t76.5 183t26.5 194 q0 104 -45 166t-156 62q-92 0 -164.5 -53.5t-122.5 -136.5t-77 -183t-27 -195zM594 1290l332 285l217 -303l-90 -84l-162 178l-229 -168z" /> +<glyph unicode="õ" horiz-adv-x="1136" d="M205 346q0 119 33.5 250t107.5 241.5t190.5 182.5t282.5 72q168 0 263.5 -99.5t95.5 -273.5q0 -119 -34 -250t-107.5 -241.5t-190.5 -182.5t-283 -72q-168 0 -263 99.5t-95 273.5zM395 362q0 -104 45 -165.5t156 -61.5q92 0 165 53.5t123 136.5t76.5 183t26.5 194 q0 104 -45 166t-156 62q-92 0 -164.5 -53.5t-122.5 -136.5t-77 -183t-27 -195zM545 1315q41 86 97 132t148 46q41 0 73 -14.5t61 -30.5q31 -16 55 -26.5t49 -10.5q43 0 71.5 32t51.5 66l96 -59q-41 -86 -97 -132t-149 -46q-41 0 -72.5 14t-60.5 31q-31 16 -55.5 26.5 t-48.5 10.5q-43 0 -72 -32t-51 -67z" /> +<glyph unicode="ö" horiz-adv-x="1136" d="M205 346q0 119 33.5 250t107.5 241.5t190.5 182.5t282.5 72q168 0 263.5 -99.5t95.5 -273.5q0 -119 -34 -250t-107.5 -241.5t-190.5 -182.5t-283 -72q-168 0 -263 99.5t-95 273.5zM395 362q0 -104 45 -165.5t156 -61.5q92 0 165 53.5t123 136.5t76.5 183t26.5 194 q0 104 -45 166t-156 62q-92 0 -164.5 -53.5t-122.5 -136.5t-77 -183t-27 -195zM581 1366q0 61 41 99t88 38q45 0 77 -29.5t32 -78.5q0 -59 -42 -96t-89 -37q-45 0 -76 28.5t-31 75.5zM971 1366q0 61 40.5 99t88.5 38q45 0 76.5 -29.5t31.5 -78.5q0 -59 -42 -96t-89 -37 q-45 0 -75.5 28.5t-30.5 75.5z" /> +<glyph unicode="÷" d="M238 528l38 162h920l-39 -162h-919zM500 184q0 31 11 58.5t31.5 50t48 36t62.5 13.5q45 0 73 -26.5t28 -69.5q0 -31 -11.5 -58.5t-32 -50t-49 -36t-61.5 -13.5q-45 0 -72.5 26.5t-27.5 69.5zM688 971q0 31 11.5 58.5t32 50t48 35.5t62.5 13q45 0 72.5 -26.5t27.5 -69.5 q0 -31 -11 -58.5t-31.5 -50t-49.5 -36t-62 -13.5q-45 0 -72.5 27t-27.5 70z" /> +<glyph unicode="ø" horiz-adv-x="1136" d="M141 2l113 129q-49 86 -49 215q0 119 33.5 250t108.5 241.5t191.5 182.5t282.5 72q133 0 221 -64l95 107l104 -76l-113 -129q23 -43 36.5 -95.5t13.5 -115.5q0 -119 -34 -250t-107.5 -241.5t-190.5 -182.5t-283 -72q-135 0 -223 64l-96 -111zM391 325.5q0 -16.5 4 -32.5 l527 598q-53 41 -136 41q-92 0 -165.5 -54.5t-125 -137.5t-78 -184.5t-26.5 -195.5v-34.5zM461 172q45 -39 135 -39q92 0 166 54.5t125 137.5t77.5 184t26.5 196v32.5t-4 32.5z" /> +<glyph unicode="ù" horiz-adv-x="1126" d="M225 309q0 53 9.5 105.5t21.5 105.5l131 545h191l-121 -504q-10 -47 -26.5 -110.5t-16.5 -126.5q0 -37 7 -71t26.5 -59.5t52 -41t82.5 -15.5q88 0 154.5 38t111.5 89q2 33 6 68t14 76l158 657h191l-162 -674q-10 -47 -17.5 -91t-7.5 -91t8.5 -94t28.5 -103l-168 -24 q-10 23 -20.5 51.5t-16.5 60.5q-23 -20 -53.5 -42.5t-70.5 -41t-88 -31t-105 -12.5q-90 0 -150.5 27t-98.5 72t-54.5 106.5t-16.5 130.5zM621 1479l139 116l260 -327l-100 -88z" /> +<glyph unicode="ú" horiz-adv-x="1126" d="M225 309q0 53 9.5 105.5t21.5 105.5l131 545h191l-121 -504q-10 -47 -26.5 -110.5t-16.5 -126.5q0 -37 7 -71t26.5 -59.5t52 -41t82.5 -15.5q88 0 154.5 38t111.5 89q2 33 6 68t14 76l158 657h191l-162 -674q-10 -47 -17.5 -91t-7.5 -91t8.5 -94t28.5 -103l-168 -24 q-10 23 -20.5 51.5t-16.5 60.5q-23 -20 -53.5 -42.5t-70.5 -41t-88 -31t-105 -12.5q-90 0 -150.5 27t-98.5 72t-54.5 106.5t-16.5 130.5zM684 1288l323 309l105 -147l-347 -262z" /> +<glyph unicode="û" horiz-adv-x="1126" d="M225 309q0 53 9.5 105.5t21.5 105.5l131 545h191l-121 -504q-10 -47 -26.5 -110.5t-16.5 -126.5q0 -37 7 -71t26.5 -59.5t52 -41t82.5 -15.5q88 0 154.5 38t111.5 89q2 33 6 68t14 76l158 657h191l-162 -674q-10 -47 -17.5 -91t-7.5 -91t8.5 -94t28.5 -103l-168 -24 q-10 23 -20.5 51.5t-16.5 60.5q-23 -20 -53.5 -42.5t-70.5 -41t-88 -31t-105 -12.5q-90 0 -150.5 27t-98.5 72t-54.5 106.5t-16.5 130.5zM577 1290l332 285l217 -303l-90 -84l-162 178l-229 -168z" /> +<glyph unicode="ü" horiz-adv-x="1126" d="M225 309q0 53 9.5 105.5t21.5 105.5l131 545h191l-121 -504q-10 -47 -26.5 -110.5t-16.5 -126.5q0 -37 7 -71t26.5 -59.5t52 -41t82.5 -15.5q88 0 154.5 38t111.5 89q2 33 6 68t14 76l158 657h191l-162 -674q-10 -47 -17.5 -91t-7.5 -91t8.5 -94t28.5 -103l-168 -24 q-10 23 -20.5 51.5t-16.5 60.5q-23 -20 -53.5 -42.5t-70.5 -41t-88 -31t-105 -12.5q-90 0 -150.5 27t-98.5 72t-54.5 106.5t-16.5 130.5zM565 1366q0 61 41 99t88 38q45 0 77 -29.5t32 -78.5q0 -59 -42 -96t-89 -37q-45 0 -76 28.5t-31 75.5zM955 1366q0 61 40.5 99t88.5 38 q45 0 76.5 -29.5t31.5 -78.5q0 -59 -42 -96t-89 -37q-45 0 -75.5 28.5t-30.5 75.5z" /> +<glyph unicode="ý" horiz-adv-x="978" d="M-115 -340l66 156q20 -16 55 -27.5t78 -11.5q119 0 202 57t156 152q-76 248 -124 522t-58 557h195q2 -92 10 -201.5t23.5 -227.5t36.5 -236.5t50 -227.5q78 123 141.5 255t112 253t81 222.5t46.5 162.5h199q-23 -78 -63.5 -193.5t-99 -250t-131.5 -274.5t-159 -269 q-66 -96 -131 -181t-140 -147.5t-165 -98.5t-203 -36q-57 0 -106 14.5t-72 30.5zM584 1288l323 309l105 -147l-347 -262z" /> +<glyph unicode="þ" horiz-adv-x="1118" d="M66 -379l464 1935l199 33l-125 -522q100 25 172 25q100 0 173 -29t120 -79t70.5 -118.5t23.5 -150.5q0 -141 -43 -273.5t-132 -235t-225 -163.5t-323 -61q-23 0 -49 2t-47 6l-88 -369h-190zM383 150q20 -4 44 -5.5t46 -1.5q117 0 209 45t156.5 122t99.5 176.5t35 207.5 q0 45 -10.5 88t-38 76t-74.5 52.5t-121 19.5q-51 0 -94 -9.5t-72 -17.5z" /> +<glyph unicode="ÿ" horiz-adv-x="978" d="M-115 -340l66 156q20 -16 55 -27.5t78 -11.5q119 0 202 57t156 152q-76 248 -124 522t-58 557h195q2 -92 10 -201.5t23.5 -227.5t36.5 -236.5t50 -227.5q78 123 141.5 255t112 253t81 222.5t46.5 162.5h199q-23 -78 -63.5 -193.5t-99 -250t-131.5 -274.5t-159 -269 q-66 -96 -131 -181t-140 -147.5t-165 -98.5t-203 -36q-57 0 -106 14.5t-72 30.5zM464 1366q0 61 41 99t88 38q45 0 77 -29.5t32 -78.5q0 -59 -42 -96t-89 -37q-45 0 -76 28.5t-31 75.5zM854 1366q0 61 40.5 99t88.5 38q45 0 76.5 -29.5t31.5 -78.5q0 -59 -42 -96t-89 -37 q-45 0 -75.5 28.5t-30.5 75.5z" /> +<glyph unicode="Œ" horiz-adv-x="1966" d="M254 537q0 176 55.5 338.5t172 286.5t298 198t432.5 74q53 0 103.5 -4.5t91.5 -10.5h762l-39 -166h-610l-103 -428h539l-39 -161h-537l-120 -498h657l-39 -166h-784q-57 -6 -114.5 -10t-98.5 -4q-158 0 -276 38.5t-195.5 110.5t-116.5 173.5t-39 228.5zM461 537 q0 -180 104.5 -281.5t331.5 -101.5q49 0 93 3t73 7l260 1091q-23 4 -59.5 7.5t-102.5 3.5q-162 0 -292 -54.5t-220 -150.5t-139 -230.5t-49 -293.5z" /> +<glyph unicode="œ" horiz-adv-x="1804" d="M205 346q0 119 33.5 250t107.5 241.5t190.5 182.5t282.5 72q129 0 211 -61.5t103 -166.5q72 98 180 162t256 64q84 0 144.5 -21.5t98 -58.5t56 -85t18.5 -100q0 -96 -34.5 -162.5t-92 -111.5t-134.5 -69.5t-160 -39t-168 -19.5t-160 -9q0 -10 -1 -18.5t-1 -18.5 q0 -72 20.5 -117t58 -72.5t92 -38t121.5 -10.5q39 0 79 8.5t76 18.5t63.5 22.5t40.5 20.5l16 -162q-18 -12 -53 -24.5t-80 -23.5t-96.5 -18.5t-106.5 -7.5q-141 0 -238.5 59.5t-128.5 166.5q-66 -92 -174 -159t-262 -67q-168 0 -263 99.5t-95 273.5zM395 362 q0 -104 45 -165.5t156 -61.5q92 0 165 53.5t123 136.5t76.5 183t26.5 194q0 104 -45 166t-156 62q-92 0 -164.5 -53.5t-122.5 -136.5t-77 -183t-27 -195zM1161 559q119 4 217.5 15.5t170 39t111.5 74.5t40 123q0 18 -7 38.5t-24.5 38t-48.5 29t-76 11.5q-72 0 -134 -31 t-111.5 -81t-84.5 -116.5t-53 -140.5z" /> +<glyph unicode="Ÿ" horiz-adv-x="1171" d="M336 1419h215q39 -166 87 -338t107 -331q135 158 273.5 331.5t245.5 337.5h227q-154 -209 -322 -418.5t-360 -431.5l-135 -569h-199l135 569q-80 215 -148.5 431.5t-125.5 418.5zM663 1685q0 61 41 99t88 38q45 0 77 -29.5t32 -78.5q0 -59 -42 -96t-89 -37 q-45 0 -76 28.5t-31 75.5zM1053 1685q0 61 40.5 99t88.5 38q45 0 76.5 -29.5t31.5 -78.5q0 -59 -42 -96t-89 -37q-45 0 -75.5 28.5t-30.5 75.5z" /> +<glyph unicode="ˆ" horiz-adv-x="770" d="M430 1290l332 285l217 -303l-90 -84l-162 178l-229 -168z" /> +<glyph unicode="˜" horiz-adv-x="770" d="M369 1315q41 86 97 132t148 46q41 0 73 -14.5t61 -30.5q31 -16 55 -26.5t49 -10.5q43 0 71.5 32t51.5 66l96 -59q-41 -86 -97 -132t-149 -46q-41 0 -72.5 14t-60.5 31q-31 16 -55.5 26.5t-48.5 10.5q-43 0 -72 -32t-51 -67z" /> +<glyph unicode=" " horiz-adv-x="958" /> +<glyph unicode=" " horiz-adv-x="1916" /> +<glyph unicode=" " horiz-adv-x="958" /> +<glyph unicode=" " horiz-adv-x="1916" /> +<glyph unicode=" " horiz-adv-x="638" /> +<glyph unicode=" " horiz-adv-x="479" /> +<glyph unicode=" " horiz-adv-x="319" /> +<glyph unicode=" " horiz-adv-x="319" /> +<glyph unicode=" " horiz-adv-x="239" /> +<glyph unicode=" " horiz-adv-x="383" /> +<glyph unicode=" " horiz-adv-x="106" /> +<glyph unicode="‐" horiz-adv-x="600" d="M178 524l41 178h496l-41 -178h-496z" /> +<glyph unicode="‑" horiz-adv-x="600" d="M178 524l41 178h496l-41 -178h-496z" /> +<glyph unicode="‒" horiz-adv-x="600" d="M178 524l41 178h496l-41 -178h-496z" /> +<glyph unicode="–" horiz-adv-x="1015" d="M125 532l39 162h1024l-39 -162h-1024z" /> +<glyph unicode="—" horiz-adv-x="2039" d="M125 532l39 162h2048l-39 -162h-2048z" /> +<glyph unicode="‘" horiz-adv-x="481" d="M373 1065q10 66 36.5 134.5t62.5 133t78 121.5t85 102l129 -53q-72 -111 -119 -215t-63 -223h-209z" /> +<glyph unicode="’" horiz-adv-x="481" d="M336 1098q72 111 119 215t63 223h209q-10 -66 -36.5 -134.5t-62.5 -133t-78 -121.5t-85 -103z" /> +<glyph unicode="‚" horiz-adv-x="481" d="M23 -205q72 111 118.5 215.5t63.5 222.5h209q-10 -66 -37 -134t-62.5 -132.5t-77.5 -122t-85 -102.5z" /> +<glyph unicode="“" horiz-adv-x="854" d="M373 1065q10 66 36.5 134.5t62.5 133t78 121.5t85 102l129 -53q-72 -111 -119 -215t-63 -223h-209zM746 1065q10 66 36.5 134.5t62.5 133t78 121.5t85 102l129 -53q-72 -111 -119 -215t-63 -223h-209z" /> +<glyph unicode="”" horiz-adv-x="854" d="M336 1098q72 111 118.5 215.5t63.5 222.5h209q-10 -66 -37 -134t-62.5 -132.5t-77.5 -122t-85 -102.5zM709 1098q72 111 118.5 215.5t63.5 222.5h209q-10 -66 -37 -134t-62.5 -132.5t-77.5 -122t-85 -102.5z" /> +<glyph unicode="„" horiz-adv-x="854" d="M23 -205q72 111 118.5 215.5t63.5 222.5h209q-10 -66 -37 -134t-62.5 -132.5t-77.5 -122t-85 -102.5zM396 -205q72 111 118.5 215.5t63.5 222.5h209q-10 -66 -37 -134t-62.5 -132.5t-77.5 -122t-85 -102.5z" /> +<glyph unicode="•" horiz-adv-x="737" d="M274 723q0 51 18.5 99t52.5 83t82 56.5t110 21.5q61 0 109 -21.5t82 -56.5t52.5 -83t18.5 -99q0 -53 -18.5 -100.5t-52.5 -82t-82 -56t-109 -21.5t-109.5 21.5t-82.5 56t-52.5 82t-18.5 100.5z" /> +<glyph unicode="…" horiz-adv-x="2039" d="M225 94q0 74 44 114t102 40q57 0 91 -32t34 -93q0 -35 -13.5 -62.5t-34 -47t-47 -30t-53.5 -10.5q-57 0 -90 31t-33 90zM907 94q0 74 44 114t102 40q57 0 91 -32t34 -93q0 -35 -13.5 -62.5t-34 -47t-47 -30t-53.5 -10.5q-57 0 -90 31t-33 90zM1589 94q0 74 44 114t102 40 q57 0 91 -32t34 -93q0 -35 -13.5 -62.5t-34 -47t-47 -30t-53.5 -10.5q-57 0 -90 31t-33 90z" /> +<glyph unicode=" " horiz-adv-x="383" /> +<glyph unicode="‹" horiz-adv-x="595" d="M197 594l415 440l119 -71l-321 -390l155 -385l-127 -59z" /> +<glyph unicode="›" horiz-adv-x="595" d="M143 201l322 389l-156 385l127 59l242 -465l-416 -440z" /> +<glyph unicode=" " horiz-adv-x="479" /> +<glyph unicode="€" d="M213 465l35 147h164q6 51 16 102.5t25 104.5h-158l35 148h172q41 100 100.5 187t141 151.5t185 102.5t230.5 38q80 0 136.5 -12.5t109.5 -34.5l-76 -154q-33 16 -75 27.5t-119 11.5q-80 0 -145.5 -24.5t-120 -66.5t-96.5 -100.5t-73 -125.5h486l-62 -148h-479 q-16 -51 -26.5 -103t-16.5 -104h432l-61 -147h-383v-37q0 -86 21.5 -142.5t58.5 -89t87 -46t107 -13.5q92 0 157.5 17.5t115.5 40.5l6 -162q-14 -8 -45 -18.5t-73 -19.5t-89 -15.5t-94 -6.5q-215 0 -328 112t-113 333v47h-188z" /> +<glyph unicode="™" horiz-adv-x="1554" d="M270 1294v125h572v-125h-215v-557h-142v557h-215zM870 737q16 252 28.5 415t29.5 267h135q16 -35 40.5 -85t52.5 -106.5t58.5 -115.5t59.5 -115q27 55 57.5 114.5t59 117t53 106.5t41.5 84h135q16 -104 28.5 -267t28.5 -415h-143q-4 104 -10 226t-15 223 q-23 -39 -50 -90.5t-53 -103.5l-48.5 -97t-34.5 -72h-100q-12 27 -35 72t-49.5 96t-54 102.5t-48.5 92.5q-8 -100 -14 -222t-10 -227h-142z" /> +<glyph unicode="◼" horiz-adv-x="1064" d="M0 0v1065h1065v-1065h-1065z" /> +<hkern u1="K" u2="ï" k="-63" /> +<hkern u1="T" u2="ï" k="-86" /> +<hkern u1="T" u2="î" k="-23" /> +<hkern u1="V" u2="ï" k="-86" /> +<hkern u1="V" u2="ì" k="-23" /> +<hkern u1="W" u2="ï" k="-33" /> +<hkern u1="Y" u2="ï" k="-86" /> +<hkern u1="Y" u2="ì" k="-23" /> +<hkern u1="Ý" u2="ï" k="-86" /> +<hkern u1="Ý" u2="ì" k="-23" /> +<hkern u1="Ÿ" u2="ï" k="-86" /> +<hkern u1="Ÿ" u2="ì" k="-23" /> +<hkern g1="b" g2="backslash" k="41" /> +<hkern g1="b" g2="x" k="6" /> +<hkern g1="b" g2="v" k="16" /> +<hkern g1="b" g2="w" k="8" /> +<hkern g1="b" g2="y,yacute,ydieresis" k="16" /> +<hkern g1="b" g2="z" k="14" /> +<hkern g1="b" g2="quoteright,quotedblright" k="92" /> +<hkern g1="b" g2="quoteleft,quotedblleft" k="92" /> +<hkern g1="b" g2="hyphen,uni00AD,endash,emdash" k="-16" /> +<hkern g1="b" g2="asterisk" k="92" /> +<hkern g1="b" g2="quotedbl,quotesingle" k="92" /> +<hkern g1="c,ccedilla" g2="x" k="-25" /> +<hkern g1="c,ccedilla" g2="v" k="-6" /> +<hkern g1="c,ccedilla" g2="w" k="-16" /> +<hkern g1="c,ccedilla" g2="y,yacute,ydieresis" k="-27" /> +<hkern g1="c,ccedilla" g2="z" k="-27" /> +<hkern g1="c,ccedilla" g2="hyphen,uni00AD,endash,emdash" k="20" /> +<hkern g1="c,ccedilla" g2="parenright" k="-25" /> +<hkern g1="c,ccedilla" g2="comma,period,ellipsis" k="-25" /> +<hkern g1="c,ccedilla" g2="slash" k="-31" /> +<hkern g1="c,ccedilla" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="18" /> +<hkern g1="c,ccedilla" g2="c,ccedilla" k="20" /> +<hkern g1="c,ccedilla" g2="d" k="18" /> +<hkern g1="c,ccedilla" g2="e,egrave,eacute,ecircumflex,edieresis" k="20" /> +<hkern g1="c,ccedilla" g2="g" k="18" /> +<hkern g1="c,ccedilla" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="c,ccedilla" g2="q" k="18" /> +<hkern g1="c,ccedilla" g2="s" k="-23" /> +<hkern g1="c,ccedilla" g2="braceright" k="-16" /> +<hkern g1="c,ccedilla" g2="eth" k="20" /> +<hkern g1="d" g2="backslash" k="-10" /> +<hkern g1="d" g2="x" k="-27" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="backslash" k="20" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quoteright,quotedblright" k="31" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quoteleft,quotedblleft" k="31" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="asterisk" k="41" /> +<hkern g1="e,ae,egrave,eacute,ecircumflex,edieresis,oe" g2="quotedbl,quotesingle" k="31" /> +<hkern g1="g" g2="backslash" k="20" /> +<hkern g1="g" g2="j" k="-45" /> +<hkern g1="h" g2="backslash" k="35" /> +<hkern g1="h" g2="v" k="16" /> +<hkern g1="h" g2="w" k="16" /> +<hkern g1="h" g2="y,yacute,ydieresis" k="16" /> +<hkern g1="h" g2="quoteright,quotedblright" k="82" /> +<hkern g1="h" g2="quoteleft,quotedblleft" k="61" /> +<hkern g1="h" g2="asterisk" k="51" /> +<hkern g1="h" g2="quotedbl,quotesingle" k="82" /> +<hkern g1="j" g2="j" k="-53" /> +<hkern g1="k" g2="backslash" k="20" /> +<hkern g1="k" g2="z" k="-37" /> +<hkern g1="k" g2="hyphen,uni00AD,endash,emdash" k="45" /> +<hkern g1="k" g2="slash" k="-25" /> +<hkern g1="k" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="43" /> +<hkern g1="k" g2="c,ccedilla" k="47" /> +<hkern g1="k" g2="d" k="43" /> +<hkern g1="k" g2="e,egrave,eacute,ecircumflex,edieresis" k="47" /> +<hkern g1="k" g2="g" k="43" /> +<hkern g1="k" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="47" /> +<hkern g1="k" g2="q" k="43" /> +<hkern g1="k" g2="s" k="-27" /> +<hkern g1="k" g2="eth" k="47" /> +<hkern g1="k" g2="l" k="29" /> +<hkern g1="k" g2="t" k="25" /> +<hkern g1="k" g2="u,ugrave,uacute,ucircumflex,udieresis" k="25" /> +<hkern g1="k" g2="guillemotleft,guilsinglleft" k="61" /> +<hkern g1="l,uniFB02,uniFB04" g2="x" k="-45" /> +<hkern g1="l,uniFB02,uniFB04" g2="v" k="25" /> +<hkern g1="l,uniFB02,uniFB04" g2="w" k="20" /> +<hkern g1="l,uniFB02,uniFB04" g2="y,yacute,ydieresis" k="25" /> +<hkern g1="l,uniFB02,uniFB04" g2="z" k="-27" /> +<hkern g1="l,uniFB02,uniFB04" g2="hyphen,uni00AD,endash,emdash" k="10" /> +<hkern g1="l,uniFB02,uniFB04" g2="asterisk" k="10" /> +<hkern g1="l,uniFB02,uniFB04" g2="comma,period,ellipsis" k="-10" /> +<hkern g1="l,uniFB02,uniFB04" g2="slash" k="-25" /> +<hkern g1="l,uniFB02,uniFB04" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="25" /> +<hkern g1="l,uniFB02,uniFB04" g2="c,ccedilla" k="18" /> +<hkern g1="l,uniFB02,uniFB04" g2="d" k="25" /> +<hkern g1="l,uniFB02,uniFB04" g2="e,egrave,eacute,ecircumflex,edieresis" k="18" /> +<hkern g1="l,uniFB02,uniFB04" g2="g" k="25" /> +<hkern g1="l,uniFB02,uniFB04" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="18" /> +<hkern g1="l,uniFB02,uniFB04" g2="q" k="25" /> +<hkern g1="l,uniFB02,uniFB04" g2="eth" k="18" /> +<hkern g1="l,uniFB02,uniFB04" g2="l" k="10" /> +<hkern g1="l,uniFB02,uniFB04" g2="t" k="10" /> +<hkern g1="l,uniFB02,uniFB04" g2="u,ugrave,uacute,ucircumflex,udieresis" k="10" /> +<hkern g1="l,uniFB02,uniFB04" g2="guillemotleft,guilsinglleft" k="10" /> +<hkern g1="m,n,ntilde" g2="backslash" k="35" /> +<hkern g1="m,n,ntilde" g2="v" k="16" /> +<hkern g1="m,n,ntilde" g2="w" k="16" /> +<hkern g1="m,n,ntilde" g2="y,yacute,ydieresis" k="16" /> +<hkern g1="m,n,ntilde" g2="quoteright,quotedblright" k="82" /> +<hkern g1="m,n,ntilde" g2="quoteleft,quotedblleft" k="61" /> +<hkern g1="m,n,ntilde" g2="asterisk" k="51" /> +<hkern g1="m,n,ntilde" g2="quotedbl,quotesingle" k="82" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="backslash" k="41" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="x" k="8" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="v" k="16" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="w" k="8" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="y,yacute,ydieresis" k="16" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="z" k="6" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quoteright,quotedblright" k="92" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quoteleft,quotedblleft" k="92" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="hyphen,uni00AD,endash,emdash" k="-16" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="asterisk" k="98" /> +<hkern g1="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash" g2="quotedbl,quotesingle" k="92" /> +<hkern g1="p" g2="backslash" k="41" /> +<hkern g1="p" g2="x" k="6" /> +<hkern g1="p" g2="v" k="16" /> +<hkern g1="p" g2="w" k="8" /> +<hkern g1="p" g2="y,yacute,ydieresis" k="16" /> +<hkern g1="p" g2="z" k="14" /> +<hkern g1="p" g2="quoteright,quotedblright" k="92" /> +<hkern g1="p" g2="quoteleft,quotedblleft" k="92" /> +<hkern g1="p" g2="hyphen,uni00AD,endash,emdash" k="-16" /> +<hkern g1="p" g2="asterisk" k="92" /> +<hkern g1="p" g2="quotedbl,quotesingle" k="92" /> +<hkern g1="q" g2="j" k="-31" /> +<hkern g1="r" g2="x" k="-10" /> +<hkern g1="r" g2="v" k="-14" /> +<hkern g1="r" g2="w" k="-37" /> +<hkern g1="r" g2="y,yacute,ydieresis" k="-12" /> +<hkern g1="r" g2="quoteright,quotedblright" k="-20" /> +<hkern g1="r" g2="quoteleft,quotedblleft" k="-20" /> +<hkern g1="r" g2="hyphen,uni00AD,endash,emdash" k="20" /> +<hkern g1="r" g2="asterisk" k="-20" /> +<hkern g1="r" g2="quotedbl,quotesingle" k="-20" /> +<hkern g1="r" g2="comma,period,ellipsis" k="92" /> +<hkern g1="r" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="14" /> +<hkern g1="r" g2="c,ccedilla" k="10" /> +<hkern g1="r" g2="d" k="14" /> +<hkern g1="r" g2="e,egrave,eacute,ecircumflex,edieresis" k="10" /> +<hkern g1="r" g2="g" k="14" /> +<hkern g1="r" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="10" /> +<hkern g1="r" g2="q" k="14" /> +<hkern g1="r" g2="eth" k="10" /> +<hkern g1="r" g2="guillemotleft,guilsinglleft" k="8" /> +<hkern g1="s" g2="slash" k="-20" /> +<hkern g1="t" g2="x" k="-55" /> +<hkern g1="t" g2="z" k="-33" /> +<hkern g1="t" g2="hyphen,uni00AD,endash,emdash" k="20" /> +<hkern g1="t" g2="parenright" k="-25" /> +<hkern g1="t" g2="comma,period,ellipsis" k="-25" /> +<hkern g1="t" g2="slash" k="-31" /> +<hkern g1="t" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="10" /> +<hkern g1="t" g2="c,ccedilla" k="10" /> +<hkern g1="t" g2="d" k="10" /> +<hkern g1="t" g2="e,egrave,eacute,ecircumflex,edieresis" k="10" /> +<hkern g1="t" g2="g" k="10" /> +<hkern g1="t" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="10" /> +<hkern g1="t" g2="q" k="10" /> +<hkern g1="t" g2="s" k="-29" /> +<hkern g1="t" g2="braceright" k="-10" /> +<hkern g1="t" g2="eth" k="10" /> +<hkern g1="t" g2="l" k="8" /> +<hkern g1="t" g2="guillemotleft,guilsinglleft" k="31" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="backslash" k="20" /> +<hkern g1="u,ugrave,uacute,ucircumflex,udieresis" g2="x" k="-27" /> +<hkern g1="v" g2="x" k="-39" /> +<hkern g1="v" g2="v" k="-35" /> +<hkern g1="v" g2="w" k="-27" /> +<hkern g1="v" g2="y,yacute,ydieresis" k="-35" /> +<hkern g1="v" g2="comma,period,ellipsis" k="37" /> +<hkern g1="v" g2="slash" k="41" /> +<hkern g1="w" g2="x" k="-39" /> +<hkern g1="w" g2="v" k="-35" /> +<hkern g1="w" g2="w" k="-27" /> +<hkern g1="w" g2="y,yacute,ydieresis" k="-35" /> +<hkern g1="w" g2="comma,period,ellipsis" k="37" /> +<hkern g1="w" g2="slash" k="31" /> +<hkern g1="x" g2="x" k="-59" /> +<hkern g1="x" g2="y,yacute,ydieresis" k="-23" /> +<hkern g1="x" g2="z" k="-37" /> +<hkern g1="x" g2="hyphen,uni00AD,endash,emdash" k="27" /> +<hkern g1="x" g2="comma,period,ellipsis" k="-31" /> +<hkern g1="x" g2="slash" k="-31" /> +<hkern g1="x" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="18" /> +<hkern g1="x" g2="c,ccedilla" k="12" /> +<hkern g1="x" g2="d" k="18" /> +<hkern g1="x" g2="e,egrave,eacute,ecircumflex,edieresis" k="12" /> +<hkern g1="x" g2="g" k="18" /> +<hkern g1="x" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="12" /> +<hkern g1="x" g2="q" k="18" /> +<hkern g1="x" g2="s" k="-29" /> +<hkern g1="x" g2="eth" k="12" /> +<hkern g1="x" g2="guillemotleft,guilsinglleft" k="41" /> +<hkern g1="y,yacute,ydieresis" g2="x" k="-31" /> +<hkern g1="y,yacute,ydieresis" g2="v" k="-27" /> +<hkern g1="y,yacute,ydieresis" g2="w" k="-18" /> +<hkern g1="y,yacute,ydieresis" g2="y,yacute,ydieresis" k="-27" /> +<hkern g1="y,yacute,ydieresis" g2="asterisk" k="-10" /> +<hkern g1="y,yacute,ydieresis" g2="comma,period,ellipsis" k="37" /> +<hkern g1="z" g2="x" k="-31" /> +<hkern g1="z" g2="v" k="-27" /> +<hkern g1="z" g2="w" k="-18" /> +<hkern g1="z" g2="y,yacute,ydieresis" k="-27" /> +<hkern g1="z" g2="hyphen,uni00AD,endash,emdash" k="10" /> +<hkern g1="z" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="10" /> +<hkern g1="z" g2="c,ccedilla" k="10" /> +<hkern g1="z" g2="d" k="10" /> +<hkern g1="z" g2="e,egrave,eacute,ecircumflex,edieresis" k="10" /> +<hkern g1="z" g2="g" k="10" /> +<hkern g1="z" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="10" /> +<hkern g1="z" g2="q" k="10" /> +<hkern g1="z" g2="eth" k="10" /> +<hkern g1="z" g2="guillemotleft,guilsinglleft" k="20" /> +<hkern g1="thorn" g2="backslash" k="41" /> +<hkern g1="thorn" g2="x" k="6" /> +<hkern g1="thorn" g2="v" k="16" /> +<hkern g1="thorn" g2="w" k="8" /> +<hkern g1="thorn" g2="y,yacute,ydieresis" k="16" /> +<hkern g1="thorn" g2="z" k="14" /> +<hkern g1="thorn" g2="quoteright,quotedblright" k="92" /> +<hkern g1="thorn" g2="quoteleft,quotedblleft" k="92" /> +<hkern g1="thorn" g2="hyphen,uni00AD,endash,emdash" k="-16" /> +<hkern g1="thorn" g2="asterisk" k="92" /> +<hkern g1="thorn" g2="quotedbl,quotesingle" k="92" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="backslash" k="102" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="v" k="68" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="w" k="39" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="y,yacute,ydieresis" k="33" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quoteright,quotedblright" k="125" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quoteleft,quotedblleft" k="143" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="hyphen,uni00AD,endash,emdash" k="33" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="asterisk" k="176" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="quotedbl,quotesingle" k="125" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="parenright" k="-20" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="comma,period,ellipsis" k="-31" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="slash" k="-31" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="l" k="23" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="t" k="16" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="u,ugrave,uacute,ucircumflex,udieresis" k="25" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="guillemotleft,guilsinglleft" k="25" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="colon,semicolon" k="-31" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="57" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="T" k="184" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="51" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="V" k="106" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="W" k="61" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="Y,Yacute,Ydieresis" k="160" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="guillemotright,guilsinglright" k="10" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="exclamdown" k="-18" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-59" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="J" k="-41" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="S" k="-29" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="X" k="-53" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="Z" k="-33" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="AE" k="-68" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="C,Ccedilla" k="57" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="G" k="57" /> +<hkern g1="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" g2="Q" k="57" /> +<hkern g1="B" g2="backslash" k="12" /> +<hkern g1="B" g2="asterisk" k="20" /> +<hkern g1="B" g2="T" k="45" /> +<hkern g1="B" g2="V" k="18" /> +<hkern g1="B" g2="Y,Yacute,Ydieresis" k="51" /> +<hkern g1="C,Ccedilla" g2="hyphen,uni00AD,endash,emdash" k="127" /> +<hkern g1="C,Ccedilla" g2="parenright" k="-20" /> +<hkern g1="C,Ccedilla" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="51" /> +<hkern g1="C,Ccedilla" g2="c,ccedilla" k="51" /> +<hkern g1="C,Ccedilla" g2="d" k="51" /> +<hkern g1="C,Ccedilla" g2="e,egrave,eacute,ecircumflex,edieresis" k="51" /> +<hkern g1="C,Ccedilla" g2="g" k="51" /> +<hkern g1="C,Ccedilla" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="51" /> +<hkern g1="C,Ccedilla" g2="q" k="51" /> +<hkern g1="C,Ccedilla" g2="eth" k="51" /> +<hkern g1="C,Ccedilla" g2="guillemotleft,guilsinglleft" k="84" /> +<hkern g1="C,Ccedilla" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="53" /> +<hkern g1="C,Ccedilla" g2="T" k="-23" /> +<hkern g1="C,Ccedilla" g2="V" k="-25" /> +<hkern g1="C,Ccedilla" g2="Y,Yacute,Ydieresis" k="-25" /> +<hkern g1="C,Ccedilla" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-37" /> +<hkern g1="C,Ccedilla" g2="J" k="-27" /> +<hkern g1="C,Ccedilla" g2="X" k="-31" /> +<hkern g1="C,Ccedilla" g2="AE" k="-43" /> +<hkern g1="C,Ccedilla" g2="C,Ccedilla" k="53" /> +<hkern g1="C,Ccedilla" g2="G" k="53" /> +<hkern g1="C,Ccedilla" g2="Q" k="53" /> +<hkern g1="C,Ccedilla" g2="ampersand" k="10" /> +<hkern g1="D,Eth" g2="backslash" k="10" /> +<hkern g1="D,Eth" g2="quoteright,quotedblright" k="45" /> +<hkern g1="D,Eth" g2="quoteleft,quotedblleft" k="59" /> +<hkern g1="D,Eth" g2="hyphen,uni00AD,endash,emdash" k="-25" /> +<hkern g1="D,Eth" g2="asterisk" k="31" /> +<hkern g1="D,Eth" g2="quotedbl,quotesingle" k="45" /> +<hkern g1="D,Eth" g2="comma,period,ellipsis" k="25" /> +<hkern g1="D,Eth" g2="slash" k="57" /> +<hkern g1="D,Eth" g2="T" k="98" /> +<hkern g1="D,Eth" g2="V" k="43" /> +<hkern g1="D,Eth" g2="W" k="27" /> +<hkern g1="D,Eth" g2="Y,Yacute,Ydieresis" k="82" /> +<hkern g1="D,Eth" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="10" /> +<hkern g1="D,Eth" g2="J" k="25" /> +<hkern g1="D,Eth" g2="X" k="61" /> +<hkern g1="D,Eth" g2="Z" k="12" /> +<hkern g1="D,Eth" g2="AE" k="41" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="hyphen,uni00AD,endash,emdash" k="10" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="16" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="c,ccedilla" k="16" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="d" k="16" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="e,egrave,eacute,ecircumflex,edieresis" k="16" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="g" k="16" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="16" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="q" k="16" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="eth" k="16" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-23" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="J" k="-20" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="X" k="-18" /> +<hkern g1="E,AE,Egrave,Eacute,Ecircumflex,Edieresis,OE" g2="AE" k="-31" /> +<hkern g1="F" g2="z" k="20" /> +<hkern g1="F" g2="comma,period,ellipsis" k="102" /> +<hkern g1="F" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="25" /> +<hkern g1="F" g2="c,ccedilla" k="25" /> +<hkern g1="F" g2="d" k="25" /> +<hkern g1="F" g2="e,egrave,eacute,ecircumflex,edieresis" k="25" /> +<hkern g1="F" g2="g" k="25" /> +<hkern g1="F" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="25" /> +<hkern g1="F" g2="q" k="25" /> +<hkern g1="F" g2="s" k="16" /> +<hkern g1="F" g2="eth" k="25" /> +<hkern g1="F" g2="u,ugrave,uacute,ucircumflex,udieresis" k="10" /> +<hkern g1="F" g2="m,n,ntilde" k="10" /> +<hkern g1="F" g2="p" k="10" /> +<hkern g1="F" g2="r" k="10" /> +<hkern g1="F" g2="colon,semicolon" k="31" /> +<hkern g1="F" g2="T" k="-20" /> +<hkern g1="F" g2="V" k="-35" /> +<hkern g1="F" g2="Y,Yacute,Ydieresis" k="-37" /> +<hkern g1="F" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="88" /> +<hkern g1="F" g2="J" k="164" /> +<hkern g1="F" g2="AE" k="133" /> +<hkern g1="F" g2="ampersand" k="51" /> +<hkern g1="J" g2="J" k="39" /> +<hkern g1="K" g2="v" k="57" /> +<hkern g1="K" g2="w" k="51" /> +<hkern g1="K" g2="y,yacute,ydieresis" k="37" /> +<hkern g1="K" g2="hyphen,uni00AD,endash,emdash" k="106" /> +<hkern g1="K" g2="asterisk" k="20" /> +<hkern g1="K" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="66" /> +<hkern g1="K" g2="c,ccedilla" k="66" /> +<hkern g1="K" g2="d" k="66" /> +<hkern g1="K" g2="e,egrave,eacute,ecircumflex,edieresis" k="66" /> +<hkern g1="K" g2="g" k="66" /> +<hkern g1="K" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="66" /> +<hkern g1="K" g2="q" k="66" /> +<hkern g1="K" g2="eth" k="66" /> +<hkern g1="K" g2="t" k="20" /> +<hkern g1="K" g2="u,ugrave,uacute,ucircumflex,udieresis" k="66" /> +<hkern g1="K" g2="guillemotleft,guilsinglleft" k="111" /> +<hkern g1="K" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="96" /> +<hkern g1="K" g2="T" k="-29" /> +<hkern g1="K" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="45" /> +<hkern g1="K" g2="V" k="-43" /> +<hkern g1="K" g2="W" k="-20" /> +<hkern g1="K" g2="Y,Yacute,Ydieresis" k="-45" /> +<hkern g1="K" g2="guillemotright,guilsinglright" k="47" /> +<hkern g1="K" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-66" /> +<hkern g1="K" g2="J" k="-33" /> +<hkern g1="K" g2="S" k="-25" /> +<hkern g1="K" g2="X" k="-59" /> +<hkern g1="K" g2="Z" k="-23" /> +<hkern g1="K" g2="AE" k="-72" /> +<hkern g1="K" g2="C,Ccedilla" k="96" /> +<hkern g1="K" g2="G" k="96" /> +<hkern g1="K" g2="Q" k="96" /> +<hkern g1="K" g2="ampersand" k="45" /> +<hkern g1="K" g2="at" k="31" /> +<hkern g1="L" g2="backslash" k="182" /> +<hkern g1="L" g2="v" k="127" /> +<hkern g1="L" g2="w" k="109" /> +<hkern g1="L" g2="y,yacute,ydieresis" k="78" /> +<hkern g1="L" g2="quoteright,quotedblright" k="223" /> +<hkern g1="L" g2="quoteleft,quotedblleft" k="238" /> +<hkern g1="L" g2="hyphen,uni00AD,endash,emdash" k="164" /> +<hkern g1="L" g2="asterisk" k="242" /> +<hkern g1="L" g2="quotedbl,quotesingle" k="223" /> +<hkern g1="L" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="86" /> +<hkern g1="L" g2="c,ccedilla" k="86" /> +<hkern g1="L" g2="d" k="86" /> +<hkern g1="L" g2="e,egrave,eacute,ecircumflex,edieresis" k="86" /> +<hkern g1="L" g2="g" k="86" /> +<hkern g1="L" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="86" /> +<hkern g1="L" g2="q" k="86" /> +<hkern g1="L" g2="eth" k="86" /> +<hkern g1="L" g2="t" k="51" /> +<hkern g1="L" g2="u,ugrave,uacute,ucircumflex,udieresis" k="59" /> +<hkern g1="L" g2="guillemotleft,guilsinglleft" k="143" /> +<hkern g1="L" g2="question" k="59" /> +<hkern g1="L" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="121" /> +<hkern g1="L" g2="T" k="256" /> +<hkern g1="L" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="104" /> +<hkern g1="L" g2="V" k="219" /> +<hkern g1="L" g2="W" k="137" /> +<hkern g1="L" g2="Y,Yacute,Ydieresis" k="258" /> +<hkern g1="L" g2="guillemotright,guilsinglright" k="23" /> +<hkern g1="L" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-45" /> +<hkern g1="L" g2="J" k="-43" /> +<hkern g1="L" g2="S" k="-25" /> +<hkern g1="L" g2="X" k="-41" /> +<hkern g1="L" g2="Z" k="-20" /> +<hkern g1="L" g2="AE" k="-53" /> +<hkern g1="L" g2="C,Ccedilla" k="121" /> +<hkern g1="L" g2="G" k="121" /> +<hkern g1="L" g2="Q" k="121" /> +<hkern g1="L" g2="ampersand" k="31" /> +<hkern g1="L" g2="at" k="72" /> +<hkern g1="M" g2="t" k="10" /> +<hkern g1="M" g2="T" k="20" /> +<hkern g1="M" g2="V" k="18" /> +<hkern g1="M" g2="Y,Yacute,Ydieresis" k="35" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="backslash" k="10" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="quoteright,quotedblright" k="45" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="quoteleft,quotedblleft" k="59" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="hyphen,uni00AD,endash,emdash" k="-25" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="asterisk" k="31" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="quotedbl,quotesingle" k="45" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="comma,period,ellipsis" k="25" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="slash" k="57" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="T" k="98" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="V" k="43" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="W" k="27" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Y,Yacute,Ydieresis" k="82" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="10" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="J" k="25" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="X" k="61" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="Z" k="12" /> +<hkern g1="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash" g2="AE" k="41" /> +<hkern g1="P" g2="x" k="-33" /> +<hkern g1="P" g2="v" k="-41" /> +<hkern g1="P" g2="w" k="-31" /> +<hkern g1="P" g2="y,yacute,ydieresis" k="-49" /> +<hkern g1="P" g2="comma,period,ellipsis" k="113" /> +<hkern g1="P" g2="slash" k="84" /> +<hkern g1="P" g2="T" k="33" /> +<hkern g1="P" g2="Y,Yacute,Ydieresis" k="10" /> +<hkern g1="P" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="98" /> +<hkern g1="P" g2="J" k="174" /> +<hkern g1="P" g2="X" k="70" /> +<hkern g1="P" g2="AE" k="115" /> +<hkern g1="P" g2="ampersand" k="20" /> +<hkern g1="Q" g2="backslash" k="10" /> +<hkern g1="Q" g2="quoteright,quotedblright" k="45" /> +<hkern g1="Q" g2="quoteleft,quotedblleft" k="59" /> +<hkern g1="Q" g2="hyphen,uni00AD,endash,emdash" k="-25" /> +<hkern g1="Q" g2="asterisk" k="31" /> +<hkern g1="Q" g2="quotedbl,quotesingle" k="45" /> +<hkern g1="Q" g2="comma,period,ellipsis" k="25" /> +<hkern g1="Q" g2="slash" k="57" /> +<hkern g1="Q" g2="T" k="98" /> +<hkern g1="Q" g2="V" k="43" /> +<hkern g1="Q" g2="W" k="27" /> +<hkern g1="Q" g2="Y,Yacute,Ydieresis" k="82" /> +<hkern g1="Q" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="10" /> +<hkern g1="Q" g2="J" k="25" /> +<hkern g1="Q" g2="X" k="61" /> +<hkern g1="Q" g2="Z" k="12" /> +<hkern g1="Q" g2="AE" k="41" /> +<hkern g1="R" g2="backslash" k="12" /> +<hkern g1="R" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="20" /> +<hkern g1="R" g2="c,ccedilla" k="20" /> +<hkern g1="R" g2="d" k="20" /> +<hkern g1="R" g2="e,egrave,eacute,ecircumflex,edieresis" k="20" /> +<hkern g1="R" g2="g" k="20" /> +<hkern g1="R" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="20" /> +<hkern g1="R" g2="q" k="20" /> +<hkern g1="R" g2="eth" k="20" /> +<hkern g1="R" g2="T" k="57" /> +<hkern g1="R" g2="V" k="25" /> +<hkern g1="R" g2="Y,Yacute,Ydieresis" k="45" /> +<hkern g1="R" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-43" /> +<hkern g1="R" g2="J" k="-18" /> +<hkern g1="R" g2="X" k="-39" /> +<hkern g1="R" g2="Z" k="-16" /> +<hkern g1="R" g2="AE" k="-51" /> +<hkern g1="R" g2="ampersand" k="20" /> +<hkern g1="S" g2="v" k="47" /> +<hkern g1="S" g2="w" k="45" /> +<hkern g1="S" g2="y,yacute,ydieresis" k="41" /> +<hkern g1="S" g2="quoteleft,quotedblleft" k="18" /> +<hkern g1="T" g2="backslash" k="-51" /> +<hkern g1="T" g2="x" k="33" /> +<hkern g1="T" g2="v" k="37" /> +<hkern g1="T" g2="w" k="31" /> +<hkern g1="T" g2="y,yacute,ydieresis" k="37" /> +<hkern g1="T" g2="z" k="74" /> +<hkern g1="T" g2="quoteright,quotedblright" k="-20" /> +<hkern g1="T" g2="quoteleft,quotedblleft" k="-20" /> +<hkern g1="T" g2="hyphen,uni00AD,endash,emdash" k="106" /> +<hkern g1="T" g2="quotedbl,quotesingle" k="-20" /> +<hkern g1="T" g2="parenright" k="-20" /> +<hkern g1="T" g2="comma,period,ellipsis" k="113" /> +<hkern g1="T" g2="slash" k="109" /> +<hkern g1="T" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="127" /> +<hkern g1="T" g2="c,ccedilla" k="123" /> +<hkern g1="T" g2="d" k="127" /> +<hkern g1="T" g2="e,egrave,eacute,ecircumflex,edieresis" k="123" /> +<hkern g1="T" g2="g" k="127" /> +<hkern g1="T" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="123" /> +<hkern g1="T" g2="q" k="127" /> +<hkern g1="T" g2="s" k="100" /> +<hkern g1="T" g2="eth" k="123" /> +<hkern g1="T" g2="u,ugrave,uacute,ucircumflex,udieresis" k="98" /> +<hkern g1="T" g2="guillemotleft,guilsinglleft" k="115" /> +<hkern g1="T" g2="m,n,ntilde" k="100" /> +<hkern g1="T" g2="p" k="100" /> +<hkern g1="T" g2="r" k="100" /> +<hkern g1="T" g2="colon,semicolon" k="68" /> +<hkern g1="T" g2="question" k="-33" /> +<hkern g1="T" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="49" /> +<hkern g1="T" g2="T" k="-37" /> +<hkern g1="T" g2="V" k="-51" /> +<hkern g1="T" g2="W" k="-29" /> +<hkern g1="T" g2="Y,Yacute,Ydieresis" k="-53" /> +<hkern g1="T" g2="guillemotright,guilsinglright" k="82" /> +<hkern g1="T" g2="exclamdown" k="68" /> +<hkern g1="T" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="139" /> +<hkern g1="T" g2="J" k="197" /> +<hkern g1="T" g2="X" k="-23" /> +<hkern g1="T" g2="AE" k="145" /> +<hkern g1="T" g2="C,Ccedilla" k="49" /> +<hkern g1="T" g2="G" k="49" /> +<hkern g1="T" g2="Q" k="49" /> +<hkern g1="T" g2="ampersand" k="45" /> +<hkern g1="T" g2="at" k="80" /> +<hkern g1="T" g2="M" k="14" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="J" k="20" /> +<hkern g1="U,Ugrave,Uacute,Ucircumflex,Udieresis" g2="AE" k="10" /> +<hkern g1="V" g2="backslash" k="-37" /> +<hkern g1="V" g2="z" k="25" /> +<hkern g1="V" g2="quoteright,quotedblright" k="-10" /> +<hkern g1="V" g2="quoteleft,quotedblleft" k="-14" /> +<hkern g1="V" g2="hyphen,uni00AD,endash,emdash" k="25" /> +<hkern g1="V" g2="quotedbl,quotesingle" k="-10" /> +<hkern g1="V" g2="comma,period,ellipsis" k="82" /> +<hkern g1="V" g2="slash" k="61" /> +<hkern g1="V" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="76" /> +<hkern g1="V" g2="c,ccedilla" k="57" /> +<hkern g1="V" g2="d" k="76" /> +<hkern g1="V" g2="e,egrave,eacute,ecircumflex,edieresis" k="57" /> +<hkern g1="V" g2="g" k="76" /> +<hkern g1="V" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="57" /> +<hkern g1="V" g2="q" k="76" /> +<hkern g1="V" g2="eth" k="57" /> +<hkern g1="V" g2="u,ugrave,uacute,ucircumflex,udieresis" k="35" /> +<hkern g1="V" g2="guillemotleft,guilsinglleft" k="20" /> +<hkern g1="V" g2="m,n,ntilde" k="39" /> +<hkern g1="V" g2="p" k="39" /> +<hkern g1="V" g2="r" k="39" /> +<hkern g1="V" g2="colon,semicolon" k="10" /> +<hkern g1="V" g2="question" k="-45" /> +<hkern g1="V" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="6" /> +<hkern g1="V" g2="T" k="-45" /> +<hkern g1="V" g2="V" k="-59" /> +<hkern g1="V" g2="W" k="-35" /> +<hkern g1="V" g2="Y,Yacute,Ydieresis" k="-61" /> +<hkern g1="V" g2="guillemotright,guilsinglright" k="20" /> +<hkern g1="V" g2="exclamdown" k="10" /> +<hkern g1="V" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="86" /> +<hkern g1="V" g2="J" k="133" /> +<hkern g1="V" g2="X" k="-31" /> +<hkern g1="V" g2="AE" k="113" /> +<hkern g1="V" g2="C,Ccedilla" k="6" /> +<hkern g1="V" g2="G" k="6" /> +<hkern g1="V" g2="Q" k="6" /> +<hkern g1="V" g2="ampersand" k="10" /> +<hkern g1="W" g2="backslash" k="-16" /> +<hkern g1="W" g2="quoteright,quotedblright" k="-10" /> +<hkern g1="W" g2="quotedbl,quotesingle" k="-10" /> +<hkern g1="W" g2="slash" k="33" /> +<hkern g1="W" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="20" /> +<hkern g1="W" g2="c,ccedilla" k="14" /> +<hkern g1="W" g2="d" k="20" /> +<hkern g1="W" g2="e,egrave,eacute,ecircumflex,edieresis" k="14" /> +<hkern g1="W" g2="g" k="20" /> +<hkern g1="W" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="14" /> +<hkern g1="W" g2="q" k="20" /> +<hkern g1="W" g2="eth" k="14" /> +<hkern g1="W" g2="m,n,ntilde" k="12" /> +<hkern g1="W" g2="p" k="12" /> +<hkern g1="W" g2="r" k="12" /> +<hkern g1="W" g2="T" k="-23" /> +<hkern g1="W" g2="V" k="-37" /> +<hkern g1="W" g2="Y,Yacute,Ydieresis" k="-39" /> +<hkern g1="W" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="35" /> +<hkern g1="W" g2="J" k="66" /> +<hkern g1="W" g2="AE" k="49" /> +<hkern g1="X" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="47" /> +<hkern g1="X" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="47" /> +<hkern g1="X" g2="t" k="25" /> +<hkern g1="X" g2="u,ugrave,uacute,ucircumflex,udieresis" k="49" /> +<hkern g1="X" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="68" /> +<hkern g1="Y,Yacute,Ydieresis" g2="comma,period,ellipsis" k="113" /> +<hkern g1="Y,Yacute,Ydieresis" g2="quoteleft,quotedblleft" k="-8" /> +<hkern g1="Y,Yacute,Ydieresis" g2="guillemotleft,guilsinglleft" k="86" /> +<hkern g1="Y,Yacute,Ydieresis" g2="guillemotright,guilsinglright" k="37" /> +<hkern g1="Y,Yacute,Ydieresis" g2="hyphen,uni00AD,endash,emdash" k="70" /> +<hkern g1="Y,Yacute,Ydieresis" g2="slash" k="74" /> +<hkern g1="Y,Yacute,Ydieresis" g2="ampersand" k="41" /> +<hkern g1="Y,Yacute,Ydieresis" g2="at" k="41" /> +<hkern g1="Y,Yacute,Ydieresis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="133" /> +<hkern g1="Y,Yacute,Ydieresis" g2="J" k="180" /> +<hkern g1="Y,Yacute,Ydieresis" g2="V" k="-63" /> +<hkern g1="Y,Yacute,Ydieresis" g2="X" k="-35" /> +<hkern g1="Y,Yacute,Ydieresis" g2="Y,Yacute,Ydieresis" k="-66" /> +<hkern g1="Y,Yacute,Ydieresis" g2="AE" k="143" /> +<hkern g1="Y,Yacute,Ydieresis" g2="C,Ccedilla" k="43" /> +<hkern g1="Y,Yacute,Ydieresis" g2="G" k="43" /> +<hkern g1="Y,Yacute,Ydieresis" g2="Q" k="43" /> +<hkern g1="Y,Yacute,Ydieresis" g2="c,ccedilla" k="119" /> +<hkern g1="Y,Yacute,Ydieresis" g2="d" k="143" /> +<hkern g1="Y,Yacute,Ydieresis" g2="e,egrave,eacute,ecircumflex,edieresis" k="119" /> +<hkern g1="Y,Yacute,Ydieresis" g2="g" k="143" /> +<hkern g1="Y,Yacute,Ydieresis" g2="q" k="143" /> +<hkern g1="Y,Yacute,Ydieresis" g2="eth" k="119" /> +<hkern g1="Y,Yacute,Ydieresis" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="43" /> +<hkern g1="Y,Yacute,Ydieresis" g2="M" k="20" /> +<hkern g1="Y,Yacute,Ydieresis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="143" /> +<hkern g1="Y,Yacute,Ydieresis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="119" /> +<hkern g1="Y,Yacute,Ydieresis" g2="m,n,ntilde" k="61" /> +<hkern g1="Y,Yacute,Ydieresis" g2="s" k="74" /> +<hkern g1="Y,Yacute,Ydieresis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="53" /> +<hkern g1="Y,Yacute,Ydieresis" g2="x" k="16" /> +<hkern g1="Y,Yacute,Ydieresis" g2="z" k="49" /> +<hkern g1="Y,Yacute,Ydieresis" g2="colon,semicolon" k="37" /> +<hkern g1="Y,Yacute,Ydieresis" g2="quoteright,quotedblright" k="-8" /> +<hkern g1="Y,Yacute,Ydieresis" g2="backslash" k="-43" /> +<hkern g1="Y,Yacute,Ydieresis" g2="question" k="-45" /> +<hkern g1="Y,Yacute,Ydieresis" g2="exclamdown" k="37" /> +<hkern g1="Y,Yacute,Ydieresis" g2="T" k="-49" /> +<hkern g1="Y,Yacute,Ydieresis" g2="W" k="-41" /> +<hkern g1="Y,Yacute,Ydieresis" g2="quotedbl,quotesingle" k="-8" /> +<hkern g1="Y,Yacute,Ydieresis" g2="p" k="61" /> +<hkern g1="Y,Yacute,Ydieresis" g2="r" k="61" /> +<hkern g1="Z" g2="guillemotleft,guilsinglleft" k="45" /> +<hkern g1="Z" g2="guillemotright,guilsinglright" k="18" /> +<hkern g1="Z" g2="hyphen,uni00AD,endash,emdash" k="96" /> +<hkern g1="Z" g2="ampersand" k="31" /> +<hkern g1="Z" g2="at" k="20" /> +<hkern g1="Z" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-31" /> +<hkern g1="Z" g2="J" k="-29" /> +<hkern g1="Z" g2="V" k="-29" /> +<hkern g1="Z" g2="X" k="-27" /> +<hkern g1="Z" g2="Y,Yacute,Ydieresis" k="-31" /> +<hkern g1="Z" g2="AE" k="-39" /> +<hkern g1="Z" g2="C,Ccedilla" k="31" /> +<hkern g1="Z" g2="G" k="31" /> +<hkern g1="Z" g2="Q" k="31" /> +<hkern g1="Z" g2="c,ccedilla" k="51" /> +<hkern g1="Z" g2="d" k="51" /> +<hkern g1="Z" g2="e,egrave,eacute,ecircumflex,edieresis" k="51" /> +<hkern g1="Z" g2="g" k="51" /> +<hkern g1="Z" g2="q" k="51" /> +<hkern g1="Z" g2="eth" k="51" /> +<hkern g1="Z" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="31" /> +<hkern g1="Z" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="51" /> +<hkern g1="Z" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="51" /> +<hkern g1="Z" g2="u,ugrave,uacute,ucircumflex,udieresis" k="25" /> +<hkern g1="Z" g2="backslash" k="-10" /> +<hkern g1="Z" g2="T" k="-16" /> +<hkern g1="Thorn" g2="comma,period,ellipsis" k="51" /> +<hkern g1="Thorn" g2="quoteleft,quotedblleft" k="76" /> +<hkern g1="Thorn" g2="hyphen,uni00AD,endash,emdash" k="-33" /> +<hkern g1="Thorn" g2="asterisk" k="41" /> +<hkern g1="Thorn" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="31" /> +<hkern g1="Thorn" g2="J" k="90" /> +<hkern g1="Thorn" g2="V" k="53" /> +<hkern g1="Thorn" g2="X" k="80" /> +<hkern g1="Thorn" g2="Y,Yacute,Ydieresis" k="96" /> +<hkern g1="Thorn" g2="Z" k="45" /> +<hkern g1="Thorn" g2="quoteright,quotedblright" k="68" /> +<hkern g1="Thorn" g2="backslash" k="47" /> +<hkern g1="Thorn" g2="T" k="133" /> +<hkern g1="Thorn" g2="W" k="10" /> +<hkern g1="Thorn" g2="quotedbl,quotesingle" k="68" /> +<hkern g1="parenleft" g2="y,yacute,ydieresis" k="-41" /> +<hkern g1="parenleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="20" /> +<hkern g1="parenleft" g2="V" k="-31" /> +<hkern g1="parenleft" g2="Y,Yacute,Ydieresis" k="-31" /> +<hkern g1="parenleft" g2="AE" k="43" /> +<hkern g1="parenleft" g2="C,Ccedilla" k="20" /> +<hkern g1="parenleft" g2="G" k="20" /> +<hkern g1="parenleft" g2="Q" k="20" /> +<hkern g1="parenleft" g2="c,ccedilla" k="31" /> +<hkern g1="parenleft" g2="d" k="37" /> +<hkern g1="parenleft" g2="e,egrave,eacute,ecircumflex,edieresis" k="31" /> +<hkern g1="parenleft" g2="g" k="37" /> +<hkern g1="parenleft" g2="q" k="37" /> +<hkern g1="parenleft" g2="eth" k="31" /> +<hkern g1="parenleft" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="20" /> +<hkern g1="parenleft" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="37" /> +<hkern g1="parenleft" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="31" /> +<hkern g1="parenleft" g2="T" k="-20" /> +<hkern g1="parenleft" g2="W" k="-10" /> +<hkern g1="parenleft" g2="j" k="-184" /> +<hkern g1="parenleft" g2="parenright" k="-164" /> +<hkern g1="bracketleft" g2="y,yacute,ydieresis" k="-78" /> +<hkern g1="bracketleft" g2="V" k="-10" /> +<hkern g1="bracketleft" g2="Y,Yacute,Ydieresis" k="-20" /> +<hkern g1="bracketleft" g2="c,ccedilla" k="10" /> +<hkern g1="bracketleft" g2="d" k="10" /> +<hkern g1="bracketleft" g2="e,egrave,eacute,ecircumflex,edieresis" k="10" /> +<hkern g1="bracketleft" g2="g" k="10" /> +<hkern g1="bracketleft" g2="q" k="10" /> +<hkern g1="bracketleft" g2="eth" k="10" /> +<hkern g1="bracketleft" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="10" /> +<hkern g1="bracketleft" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="10" /> +<hkern g1="bracketleft" g2="j" k="-195" /> +<hkern g1="bracketleft" g2="bracketright" k="-164" /> +<hkern g1="braceleft" g2="y,yacute,ydieresis" k="-78" /> +<hkern g1="braceleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="10" /> +<hkern g1="braceleft" g2="AE" k="51" /> +<hkern g1="braceleft" g2="C,Ccedilla" k="8" /> +<hkern g1="braceleft" g2="G" k="8" /> +<hkern g1="braceleft" g2="Q" k="8" /> +<hkern g1="braceleft" g2="c,ccedilla" k="10" /> +<hkern g1="braceleft" g2="d" k="10" /> +<hkern g1="braceleft" g2="e,egrave,eacute,ecircumflex,edieresis" k="10" /> +<hkern g1="braceleft" g2="g" k="10" /> +<hkern g1="braceleft" g2="q" k="10" /> +<hkern g1="braceleft" g2="eth" k="10" /> +<hkern g1="braceleft" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="8" /> +<hkern g1="braceleft" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="10" /> +<hkern g1="braceleft" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="10" /> +<hkern g1="braceleft" g2="j" k="-186" /> +<hkern g1="braceleft" g2="braceright" k="-164" /> +<hkern g1="asterisk" g2="v" k="-61" /> +<hkern g1="asterisk" g2="w" k="-41" /> +<hkern g1="asterisk" g2="y,yacute,ydieresis" k="-61" /> +<hkern g1="asterisk" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="51" /> +<hkern g1="asterisk" g2="J" k="229" /> +<hkern g1="asterisk" g2="X" k="20" /> +<hkern g1="asterisk" g2="Y,Yacute,Ydieresis" k="20" /> +<hkern g1="asterisk" g2="AE" k="123" /> +<hkern g1="asterisk" g2="x" k="-61" /> +<hkern g1="asterisk" g2="T" k="20" /> +<hkern g1="quotedbl,quotesingle" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="104" /> +<hkern g1="quotedbl,quotesingle" g2="V" k="-20" /> +<hkern g1="quotedbl,quotesingle" g2="Y,Yacute,Ydieresis" k="-20" /> +<hkern g1="quotedbl,quotesingle" g2="AE" k="221" /> +<hkern g1="quotedbl,quotesingle" g2="C,Ccedilla" k="14" /> +<hkern g1="quotedbl,quotesingle" g2="G" k="14" /> +<hkern g1="quotedbl,quotesingle" g2="Q" k="14" /> +<hkern g1="quotedbl,quotesingle" g2="c,ccedilla" k="61" /> +<hkern g1="quotedbl,quotesingle" g2="d" k="72" /> +<hkern g1="quotedbl,quotesingle" g2="e,egrave,eacute,ecircumflex,edieresis" k="61" /> +<hkern g1="quotedbl,quotesingle" g2="g" k="72" /> +<hkern g1="quotedbl,quotesingle" g2="q" k="72" /> +<hkern g1="quotedbl,quotesingle" g2="eth" k="61" /> +<hkern g1="quotedbl,quotesingle" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="14" /> +<hkern g1="quotedbl,quotesingle" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="72" /> +<hkern g1="quotedbl,quotesingle" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="61" /> +<hkern g1="quotedbl,quotesingle" g2="T" k="-20" /> +<hkern g1="quoteleft,quotedblleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="104" /> +<hkern g1="quoteleft,quotedblleft" g2="J" k="180" /> +<hkern g1="quoteleft,quotedblleft" g2="V" k="-20" /> +<hkern g1="quoteleft,quotedblleft" g2="Y,Yacute,Ydieresis" k="-20" /> +<hkern g1="quoteleft,quotedblleft" g2="AE" k="221" /> +<hkern g1="quoteleft,quotedblleft" g2="C,Ccedilla" k="14" /> +<hkern g1="quoteleft,quotedblleft" g2="G" k="14" /> +<hkern g1="quoteleft,quotedblleft" g2="Q" k="14" /> +<hkern g1="quoteleft,quotedblleft" g2="c,ccedilla" k="31" /> +<hkern g1="quoteleft,quotedblleft" g2="d" k="51" /> +<hkern g1="quoteleft,quotedblleft" g2="e,egrave,eacute,ecircumflex,edieresis" k="31" /> +<hkern g1="quoteleft,quotedblleft" g2="g" k="51" /> +<hkern g1="quoteleft,quotedblleft" g2="q" k="51" /> +<hkern g1="quoteleft,quotedblleft" g2="eth" k="31" /> +<hkern g1="quoteleft,quotedblleft" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="14" /> +<hkern g1="quoteleft,quotedblleft" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="51" /> +<hkern g1="quoteleft,quotedblleft" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="31" /> +<hkern g1="quoteleft,quotedblleft" g2="T" k="-20" /> +<hkern g1="quoteleft,quotedblleft" g2="W" k="-20" /> +<hkern g1="quoteright,quotedblright" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="104" /> +<hkern g1="quoteright,quotedblright" g2="V" k="-20" /> +<hkern g1="quoteright,quotedblright" g2="Y,Yacute,Ydieresis" k="-20" /> +<hkern g1="quoteright,quotedblright" g2="AE" k="221" /> +<hkern g1="quoteright,quotedblright" g2="C,Ccedilla" k="14" /> +<hkern g1="quoteright,quotedblright" g2="G" k="14" /> +<hkern g1="quoteright,quotedblright" g2="Q" k="14" /> +<hkern g1="quoteright,quotedblright" g2="c,ccedilla" k="61" /> +<hkern g1="quoteright,quotedblright" g2="d" k="72" /> +<hkern g1="quoteright,quotedblright" g2="e,egrave,eacute,ecircumflex,edieresis" k="61" /> +<hkern g1="quoteright,quotedblright" g2="g" k="72" /> +<hkern g1="quoteright,quotedblright" g2="q" k="72" /> +<hkern g1="quoteright,quotedblright" g2="eth" k="61" /> +<hkern g1="quoteright,quotedblright" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="14" /> +<hkern g1="quoteright,quotedblright" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="72" /> +<hkern g1="quoteright,quotedblright" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="61" /> +<hkern g1="quoteright,quotedblright" g2="T" k="-20" /> +<hkern g1="quotesinglbase,quotedblbase" g2="v" k="51" /> +<hkern g1="quotesinglbase,quotedblbase" g2="w" k="41" /> +<hkern g1="quotesinglbase,quotedblbase" g2="V" k="164" /> +<hkern g1="quotesinglbase,quotedblbase" g2="Y,Yacute,Ydieresis" k="184" /> +<hkern g1="quotesinglbase,quotedblbase" g2="AE" k="-10" /> +<hkern g1="quotesinglbase,quotedblbase" g2="C,Ccedilla" k="61" /> +<hkern g1="quotesinglbase,quotedblbase" g2="G" k="61" /> +<hkern g1="quotesinglbase,quotedblbase" g2="Q" k="61" /> +<hkern g1="quotesinglbase,quotedblbase" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="61" /> +<hkern g1="quotesinglbase,quotedblbase" g2="s" k="-20" /> +<hkern g1="quotesinglbase,quotedblbase" g2="T" k="184" /> +<hkern g1="quotesinglbase,quotedblbase" g2="W" k="82" /> +<hkern g1="quotesinglbase,quotedblbase" g2="j" k="-92" /> +<hkern g1="guillemotleft,guilsinglleft" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-10" /> +<hkern g1="guillemotleft,guilsinglleft" g2="V" k="31" /> +<hkern g1="guillemotleft,guilsinglleft" g2="X" k="16" /> +<hkern g1="guillemotleft,guilsinglleft" g2="Y,Yacute,Ydieresis" k="82" /> +<hkern g1="guillemotleft,guilsinglleft" g2="T" k="102" /> +<hkern g1="guillemotright,guilsinglright" g2="J" k="82" /> +<hkern g1="guillemotright,guilsinglright" g2="V" k="49" /> +<hkern g1="guillemotright,guilsinglright" g2="X" k="33" /> +<hkern g1="guillemotright,guilsinglright" g2="Y,Yacute,Ydieresis" k="117" /> +<hkern g1="guillemotright,guilsinglright" g2="AE" k="61" /> +<hkern g1="guillemotright,guilsinglright" g2="x" k="31" /> +<hkern g1="guillemotright,guilsinglright" g2="T" k="125" /> +<hkern g1="guillemotright,guilsinglright" g2="W" k="20" /> +<hkern g1="guillemotright,guilsinglright" g2="S" k="31" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="20" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="J" k="147" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="V" k="53" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="X" k="45" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Y,Yacute,Ydieresis" k="84" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="AE" k="55" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="C,Ccedilla" k="-25" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="G" k="-25" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="Q" k="-25" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="c,ccedilla" k="-16" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="d" k="-16" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="e,egrave,eacute,ecircumflex,edieresis" k="-16" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="g" k="-16" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="q" k="-16" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="eth" k="-16" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="-25" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="-16" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="-16" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="x" k="27" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="T" k="123" /> +<hkern g1="hyphen,uni00AD,endash,emdash" g2="S" k="51" /> +<hkern g1="comma,period,ellipsis" g2="v" k="109" /> +<hkern g1="comma,period,ellipsis" g2="w" k="82" /> +<hkern g1="comma,period,ellipsis" g2="y,yacute,ydieresis" k="45" /> +<hkern g1="comma,period,ellipsis" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-31" /> +<hkern g1="comma,period,ellipsis" g2="V" k="164" /> +<hkern g1="comma,period,ellipsis" g2="Y,Yacute,Ydieresis" k="174" /> +<hkern g1="comma,period,ellipsis" g2="AE" k="-51" /> +<hkern g1="comma,period,ellipsis" g2="C,Ccedilla" k="92" /> +<hkern g1="comma,period,ellipsis" g2="G" k="92" /> +<hkern g1="comma,period,ellipsis" g2="Q" k="92" /> +<hkern g1="comma,period,ellipsis" g2="c,ccedilla" k="61" /> +<hkern g1="comma,period,ellipsis" g2="d" k="57" /> +<hkern g1="comma,period,ellipsis" g2="e,egrave,eacute,ecircumflex,edieresis" k="61" /> +<hkern g1="comma,period,ellipsis" g2="g" k="57" /> +<hkern g1="comma,period,ellipsis" g2="q" k="57" /> +<hkern g1="comma,period,ellipsis" g2="eth" k="61" /> +<hkern g1="comma,period,ellipsis" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="92" /> +<hkern g1="comma,period,ellipsis" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="57" /> +<hkern g1="comma,period,ellipsis" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="61" /> +<hkern g1="comma,period,ellipsis" g2="u,ugrave,uacute,ucircumflex,udieresis" k="31" /> +<hkern g1="comma,period,ellipsis" g2="x" k="-10" /> +<hkern g1="comma,period,ellipsis" g2="T" k="174" /> +<hkern g1="comma,period,ellipsis" g2="W" k="82" /> +<hkern g1="comma,period,ellipsis" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="51" /> +<hkern g1="comma,period,ellipsis" g2="l" k="20" /> +<hkern g1="comma,period,ellipsis" g2="t" k="31" /> +<hkern g1="comma,period,ellipsis" g2="zero" k="31" /> +<hkern g1="colon,semicolon" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-25" /> +<hkern g1="colon,semicolon" g2="V" k="37" /> +<hkern g1="colon,semicolon" g2="Y,Yacute,Ydieresis" k="76" /> +<hkern g1="colon,semicolon" g2="AE" k="-20" /> +<hkern g1="colon,semicolon" g2="T" k="90" /> +<hkern g1="colon,semicolon" g2="W" k="12" /> +<hkern g1="backslash" g2="v" k="31" /> +<hkern g1="backslash" g2="w" k="31" /> +<hkern g1="backslash" g2="y,yacute,ydieresis" k="-127" /> +<hkern g1="backslash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-31" /> +<hkern g1="backslash" g2="V" k="102" /> +<hkern g1="backslash" g2="Y,Yacute,Ydieresis" k="113" /> +<hkern g1="backslash" g2="AE" k="-55" /> +<hkern g1="backslash" g2="C,Ccedilla" k="70" /> +<hkern g1="backslash" g2="G" k="70" /> +<hkern g1="backslash" g2="Q" k="70" /> +<hkern g1="backslash" g2="d" k="-20" /> +<hkern g1="backslash" g2="g" k="-20" /> +<hkern g1="backslash" g2="q" k="-20" /> +<hkern g1="backslash" g2="O,Ograve,Oacute,Ocircumflex,Otilde,Odieresis,Oslash,OE" k="70" /> +<hkern g1="backslash" g2="M" k="16" /> +<hkern g1="backslash" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="-20" /> +<hkern g1="backslash" g2="m,n,ntilde" k="-27" /> +<hkern g1="backslash" g2="x" k="-20" /> +<hkern g1="backslash" g2="T" k="164" /> +<hkern g1="backslash" g2="W" k="61" /> +<hkern g1="backslash" g2="p" k="-27" /> +<hkern g1="backslash" g2="r" k="-27" /> +<hkern g1="backslash" g2="j" k="-256" /> +<hkern g1="backslash" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="66" /> +<hkern g1="backslash" g2="germandbls" k="-27" /> +<hkern g1="backslash" g2="thorn" k="-27" /> +<hkern g1="backslash" g2="f,uniFB01,uniFB02,uniFB03,uniFB04" k="-27" /> +<hkern g1="backslash" g2="H" k="37" /> +<hkern g1="backslash" g2="B" k="37" /> +<hkern g1="backslash" g2="D,Eth" k="37" /> +<hkern g1="backslash" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="37" /> +<hkern g1="backslash" g2="F" k="37" /> +<hkern g1="backslash" g2="I,Igrave,Iacute,Icircumflex,Idieresis" k="37" /> +<hkern g1="backslash" g2="L" k="37" /> +<hkern g1="backslash" g2="N,Ntilde" k="37" /> +<hkern g1="backslash" g2="P" k="37" /> +<hkern g1="backslash" g2="R" k="37" /> +<hkern g1="backslash" g2="Thorn" k="37" /> +<hkern g1="slash" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="66" /> +<hkern g1="slash" g2="J" k="94" /> +<hkern g1="slash" g2="V" k="-92" /> +<hkern g1="slash" g2="X" k="-41" /> +<hkern g1="slash" g2="Y,Yacute,Ydieresis" k="-86" /> +<hkern g1="slash" g2="Z" k="-12" /> +<hkern g1="slash" g2="AE" k="182" /> +<hkern g1="slash" g2="c,ccedilla" k="37" /> +<hkern g1="slash" g2="d" k="41" /> +<hkern g1="slash" g2="e,egrave,eacute,ecircumflex,edieresis" k="37" /> +<hkern g1="slash" g2="g" k="41" /> +<hkern g1="slash" g2="q" k="41" /> +<hkern g1="slash" g2="eth" k="37" /> +<hkern g1="slash" g2="a,agrave,aacute,acircumflex,atilde,adieresis,aring,ae" k="41" /> +<hkern g1="slash" g2="o,ograve,oacute,ocircumflex,otilde,odieresis,oslash,oe" k="37" /> +<hkern g1="slash" g2="T" k="-78" /> +<hkern g1="slash" g2="W" k="-66" /> +<hkern g1="slash" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="-25" /> +<hkern g1="slash" g2="l" k="-31" /> +<hkern g1="slash" g2="thorn" k="-10" /> +<hkern g1="slash" g2="H" k="-25" /> +<hkern g1="slash" g2="B" k="-25" /> +<hkern g1="slash" g2="D,Eth" k="-25" /> +<hkern g1="slash" g2="E,Egrave,Eacute,Ecircumflex,Edieresis" k="-25" /> +<hkern g1="slash" g2="F" k="-25" /> +<hkern g1="slash" g2="I,Igrave,Iacute,Icircumflex,Idieresis" k="-25" /> +<hkern g1="slash" g2="L" k="-25" /> +<hkern g1="slash" g2="N,Ntilde" k="-25" /> +<hkern g1="slash" g2="P" k="-25" /> +<hkern g1="slash" g2="R" k="-25" /> +<hkern g1="slash" g2="Thorn" k="-25" /> +<hkern g1="slash" g2="b" k="-31" /> +<hkern g1="slash" g2="k" k="-10" /> +<hkern g1="slash" g2="h" k="-31" /> +<hkern g1="slash" g2="K" k="-25" /> +<hkern g1="ampersand" g2="A,Agrave,Aacute,Acircumflex,Atilde,Adieresis,Aring" k="-25" /> +<hkern g1="ampersand" g2="V" k="82" /> +<hkern g1="ampersand" g2="Y,Yacute,Ydieresis" k="117" /> +<hkern g1="ampersand" g2="AE" k="-33" /> +<hkern g1="ampersand" g2="T" k="174" /> +<hkern g1="ampersand" g2="W" k="31" /> +<hkern g1="ampersand" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="66" /> +<hkern g1="exclamdown" g2="V" k="37" /> +<hkern g1="exclamdown" g2="Y,Yacute,Ydieresis" k="76" /> +<hkern g1="exclamdown" g2="T" k="90" /> +<hkern g1="exclamdown" g2="W" k="12" /> +<hkern g1="exclamdown" g2="j" k="-92" /> +<hkern g1="questiondown" g2="y,yacute,ydieresis" k="-94" /> +<hkern g1="questiondown" g2="V" k="70" /> +<hkern g1="questiondown" g2="Y,Yacute,Ydieresis" k="139" /> +<hkern g1="questiondown" g2="T" k="164" /> +<hkern g1="questiondown" g2="W" k="27" /> +<hkern g1="questiondown" g2="j" k="-213" /> +<hkern g1="questiondown" g2="U,Ugrave,Uacute,Ucircumflex,Udieresis" k="35" /> +<hkern g1="at" g2="J" k="41" /> +<hkern g1="at" g2="X" k="20" /> +<hkern g1="at" g2="Y,Yacute,Ydieresis" k="72" /> +<hkern g1="at" g2="T" k="102" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/web/static/fonts/ubuntu-italic-webfont.ttf b/web/static/fonts/ubuntu-italic-webfont.ttf Binary files differnew file mode 100755 index 000000000..046fdbe8b --- /dev/null +++ b/web/static/fonts/ubuntu-italic-webfont.ttf diff --git a/web/static/fonts/ubuntu-italic-webfont.woff b/web/static/fonts/ubuntu-italic-webfont.woff Binary files differnew file mode 100755 index 000000000..b5675b3fb --- /dev/null +++ b/web/static/fonts/ubuntu-italic-webfont.woff diff --git a/web/static/fonts/ubuntu-italic-webfont.woff2 b/web/static/fonts/ubuntu-italic-webfont.woff2 Binary files differnew file mode 100755 index 000000000..5ec4118ce --- /dev/null +++ b/web/static/fonts/ubuntu-italic-webfont.woff2 diff --git a/web/static/help/Messaging.md b/web/static/help/Messaging.md new file mode 120000 index 000000000..f74c0b879 --- /dev/null +++ b/web/static/help/Messaging.md @@ -0,0 +1 @@ +../../../doc/help/Messaging.md
\ No newline at end of file diff --git a/web/static/images/emoji/+1.png b/web/static/images/emoji/+1.png Binary files differindex 81786c1d8..26949329f 100755..100644 --- a/web/static/images/emoji/+1.png +++ b/web/static/images/emoji/+1.png diff --git a/web/static/images/emoji/-1.png b/web/static/images/emoji/-1.png Binary files differindex 41c6b825d..9b6d251b5 100755..100644 --- a/web/static/images/emoji/-1.png +++ b/web/static/images/emoji/-1.png diff --git a/web/static/images/emoji/0023-20e3.png b/web/static/images/emoji/0023-20e3.png Binary files differnew file mode 100644 index 000000000..9e4cda640 --- /dev/null +++ b/web/static/images/emoji/0023-20e3.png diff --git a/web/static/images/emoji/0030-20e3.png b/web/static/images/emoji/0030-20e3.png Binary files differnew file mode 100644 index 000000000..56e4e0672 --- /dev/null +++ b/web/static/images/emoji/0030-20e3.png diff --git a/web/static/images/emoji/0031-20e3.png b/web/static/images/emoji/0031-20e3.png Binary files differnew file mode 100644 index 000000000..b10ef8c0c --- /dev/null +++ b/web/static/images/emoji/0031-20e3.png diff --git a/web/static/images/emoji/0032-20e3.png b/web/static/images/emoji/0032-20e3.png Binary files differnew file mode 100644 index 000000000..a062ea93a --- /dev/null +++ b/web/static/images/emoji/0032-20e3.png diff --git a/web/static/images/emoji/0033-20e3.png b/web/static/images/emoji/0033-20e3.png Binary files differnew file mode 100644 index 000000000..96ac84050 --- /dev/null +++ b/web/static/images/emoji/0033-20e3.png diff --git a/web/static/images/emoji/0034-20e3.png b/web/static/images/emoji/0034-20e3.png Binary files differnew file mode 100644 index 000000000..a8b4dc052 --- /dev/null +++ b/web/static/images/emoji/0034-20e3.png diff --git a/web/static/images/emoji/0035-20e3.png b/web/static/images/emoji/0035-20e3.png Binary files differnew file mode 100644 index 000000000..9b527aeb7 --- /dev/null +++ b/web/static/images/emoji/0035-20e3.png diff --git a/web/static/images/emoji/0036-20e3.png b/web/static/images/emoji/0036-20e3.png Binary files differnew file mode 100644 index 000000000..cd0b30fd2 --- /dev/null +++ b/web/static/images/emoji/0036-20e3.png diff --git a/web/static/images/emoji/0037-20e3.png b/web/static/images/emoji/0037-20e3.png Binary files differnew file mode 100644 index 000000000..33151fdba --- /dev/null +++ b/web/static/images/emoji/0037-20e3.png diff --git a/web/static/images/emoji/0038-20e3.png b/web/static/images/emoji/0038-20e3.png Binary files differnew file mode 100644 index 000000000..48c5ca813 --- /dev/null +++ b/web/static/images/emoji/0038-20e3.png diff --git a/web/static/images/emoji/0039-20e3.png b/web/static/images/emoji/0039-20e3.png Binary files differnew file mode 100644 index 000000000..e6b38a109 --- /dev/null +++ b/web/static/images/emoji/0039-20e3.png diff --git a/web/static/images/emoji/00a9.png b/web/static/images/emoji/00a9.png Binary files differnew file mode 100644 index 000000000..9872c5b7e --- /dev/null +++ b/web/static/images/emoji/00a9.png diff --git a/web/static/images/emoji/00ae.png b/web/static/images/emoji/00ae.png Binary files differnew file mode 100644 index 000000000..68d445daf --- /dev/null +++ b/web/static/images/emoji/00ae.png diff --git a/web/static/images/emoji/100.png b/web/static/images/emoji/100.png Binary files differindex ca3bb9bcf..cd308ad66 100755..100644 --- a/web/static/images/emoji/100.png +++ b/web/static/images/emoji/100.png diff --git a/web/static/images/emoji/1234.png b/web/static/images/emoji/1234.png Binary files differindex c47c2e1f9..17ec5f12a 100755..100644 --- a/web/static/images/emoji/1234.png +++ b/web/static/images/emoji/1234.png diff --git a/web/static/images/emoji/1f004.png b/web/static/images/emoji/1f004.png Binary files differnew file mode 100644 index 000000000..16a59d954 --- /dev/null +++ b/web/static/images/emoji/1f004.png diff --git a/web/static/images/emoji/1f0cf.png b/web/static/images/emoji/1f0cf.png Binary files differnew file mode 100644 index 000000000..1cbc43e84 --- /dev/null +++ b/web/static/images/emoji/1f0cf.png diff --git a/web/static/images/emoji/1f170.png b/web/static/images/emoji/1f170.png Binary files differnew file mode 100644 index 000000000..7b1f9663c --- /dev/null +++ b/web/static/images/emoji/1f170.png diff --git a/web/static/images/emoji/1f171.png b/web/static/images/emoji/1f171.png Binary files differnew file mode 100644 index 000000000..cf87ad1fc --- /dev/null +++ b/web/static/images/emoji/1f171.png diff --git a/web/static/images/emoji/1f17e.png b/web/static/images/emoji/1f17e.png Binary files differnew file mode 100644 index 000000000..b39215725 --- /dev/null +++ b/web/static/images/emoji/1f17e.png diff --git a/web/static/images/emoji/1f17f.png b/web/static/images/emoji/1f17f.png Binary files differnew file mode 100644 index 000000000..340033226 --- /dev/null +++ b/web/static/images/emoji/1f17f.png diff --git a/web/static/images/emoji/1f18e.png b/web/static/images/emoji/1f18e.png Binary files differnew file mode 100644 index 000000000..386ec09fe --- /dev/null +++ b/web/static/images/emoji/1f18e.png diff --git a/web/static/images/emoji/1f191.png b/web/static/images/emoji/1f191.png Binary files differnew file mode 100644 index 000000000..ccd6494e6 --- /dev/null +++ b/web/static/images/emoji/1f191.png diff --git a/web/static/images/emoji/1f192.png b/web/static/images/emoji/1f192.png Binary files differnew file mode 100644 index 000000000..07c22b8c5 --- /dev/null +++ b/web/static/images/emoji/1f192.png diff --git a/web/static/images/emoji/1f193.png b/web/static/images/emoji/1f193.png Binary files differnew file mode 100644 index 000000000..0da6a1112 --- /dev/null +++ b/web/static/images/emoji/1f193.png diff --git a/web/static/images/emoji/1f194.png b/web/static/images/emoji/1f194.png Binary files differnew file mode 100644 index 000000000..3ae8bc2b9 --- /dev/null +++ b/web/static/images/emoji/1f194.png diff --git a/web/static/images/emoji/1f195.png b/web/static/images/emoji/1f195.png Binary files differnew file mode 100644 index 000000000..9d9f89101 --- /dev/null +++ b/web/static/images/emoji/1f195.png diff --git a/web/static/images/emoji/1f196.png b/web/static/images/emoji/1f196.png Binary files differnew file mode 100644 index 000000000..cc45e9df2 --- /dev/null +++ b/web/static/images/emoji/1f196.png diff --git a/web/static/images/emoji/1f197.png b/web/static/images/emoji/1f197.png Binary files differnew file mode 100644 index 000000000..ffa868d43 --- /dev/null +++ b/web/static/images/emoji/1f197.png diff --git a/web/static/images/emoji/1f198.png b/web/static/images/emoji/1f198.png Binary files differnew file mode 100644 index 000000000..4af944919 --- /dev/null +++ b/web/static/images/emoji/1f198.png diff --git a/web/static/images/emoji/1f199.png b/web/static/images/emoji/1f199.png Binary files differnew file mode 100644 index 000000000..aa7974ec1 --- /dev/null +++ b/web/static/images/emoji/1f199.png diff --git a/web/static/images/emoji/1f19a.png b/web/static/images/emoji/1f19a.png Binary files differnew file mode 100644 index 000000000..327337277 --- /dev/null +++ b/web/static/images/emoji/1f19a.png diff --git a/web/static/images/emoji/1f1e6-1f1e8.png b/web/static/images/emoji/1f1e6-1f1e8.png Binary files differnew file mode 100644 index 000000000..56115ba78 --- /dev/null +++ b/web/static/images/emoji/1f1e6-1f1e8.png diff --git a/web/static/images/emoji/1f1e6-1f1e9.png b/web/static/images/emoji/1f1e6-1f1e9.png Binary files differnew file mode 100644 index 000000000..d3fabc4b0 --- /dev/null +++ b/web/static/images/emoji/1f1e6-1f1e9.png diff --git a/web/static/images/emoji/1f1e6-1f1ea.png b/web/static/images/emoji/1f1e6-1f1ea.png Binary files differnew file mode 100644 index 000000000..57cade93b --- /dev/null +++ b/web/static/images/emoji/1f1e6-1f1ea.png diff --git a/web/static/images/emoji/1f1e6-1f1eb.png b/web/static/images/emoji/1f1e6-1f1eb.png Binary files differnew file mode 100644 index 000000000..af7e886df --- /dev/null +++ b/web/static/images/emoji/1f1e6-1f1eb.png diff --git a/web/static/images/emoji/1f1e6-1f1ec.png b/web/static/images/emoji/1f1e6-1f1ec.png Binary files differnew file mode 100644 index 000000000..9e2dc805e --- /dev/null +++ b/web/static/images/emoji/1f1e6-1f1ec.png diff --git a/web/static/images/emoji/1f1e6-1f1ee.png b/web/static/images/emoji/1f1e6-1f1ee.png Binary files differnew file mode 100644 index 000000000..2046a5a83 --- /dev/null +++ b/web/static/images/emoji/1f1e6-1f1ee.png diff --git a/web/static/images/emoji/1f1e6-1f1f1.png b/web/static/images/emoji/1f1e6-1f1f1.png Binary files differnew file mode 100644 index 000000000..0c76f4af4 --- /dev/null +++ b/web/static/images/emoji/1f1e6-1f1f1.png diff --git a/web/static/images/emoji/1f1e6-1f1f2.png b/web/static/images/emoji/1f1e6-1f1f2.png Binary files differnew file mode 100644 index 000000000..1e39fe1fe --- /dev/null +++ b/web/static/images/emoji/1f1e6-1f1f2.png diff --git a/web/static/images/emoji/1f1e6-1f1f4.png b/web/static/images/emoji/1f1e6-1f1f4.png Binary files differnew file mode 100644 index 000000000..01a469e9e --- /dev/null +++ b/web/static/images/emoji/1f1e6-1f1f4.png diff --git a/web/static/images/emoji/1f1e6-1f1f7.png b/web/static/images/emoji/1f1e6-1f1f7.png Binary files differnew file mode 100644 index 000000000..603697bad --- /dev/null +++ b/web/static/images/emoji/1f1e6-1f1f7.png diff --git a/web/static/images/emoji/1f1e6-1f1f9.png b/web/static/images/emoji/1f1e6-1f1f9.png Binary files differnew file mode 100644 index 000000000..38988f737 --- /dev/null +++ b/web/static/images/emoji/1f1e6-1f1f9.png diff --git a/web/static/images/emoji/1f1e6-1f1fa.png b/web/static/images/emoji/1f1e6-1f1fa.png Binary files differnew file mode 100644 index 000000000..fdc448c91 --- /dev/null +++ b/web/static/images/emoji/1f1e6-1f1fa.png diff --git a/web/static/images/emoji/1f1e6-1f1fc.png b/web/static/images/emoji/1f1e6-1f1fc.png Binary files differnew file mode 100644 index 000000000..fda4d0b19 --- /dev/null +++ b/web/static/images/emoji/1f1e6-1f1fc.png diff --git a/web/static/images/emoji/1f1e6-1f1ff.png b/web/static/images/emoji/1f1e6-1f1ff.png Binary files differnew file mode 100644 index 000000000..3efb55bfc --- /dev/null +++ b/web/static/images/emoji/1f1e6-1f1ff.png diff --git a/web/static/images/emoji/1f1e7-1f1e6.png b/web/static/images/emoji/1f1e7-1f1e6.png Binary files differnew file mode 100644 index 000000000..47028b1f2 --- /dev/null +++ b/web/static/images/emoji/1f1e7-1f1e6.png diff --git a/web/static/images/emoji/1f1e7-1f1e7.png b/web/static/images/emoji/1f1e7-1f1e7.png Binary files differnew file mode 100644 index 000000000..8bfb6fcb0 --- /dev/null +++ b/web/static/images/emoji/1f1e7-1f1e7.png diff --git a/web/static/images/emoji/1f1e7-1f1e9.png b/web/static/images/emoji/1f1e7-1f1e9.png Binary files differnew file mode 100644 index 000000000..a4b7928c8 --- /dev/null +++ b/web/static/images/emoji/1f1e7-1f1e9.png diff --git a/web/static/images/emoji/1f1e7-1f1ea.png b/web/static/images/emoji/1f1e7-1f1ea.png Binary files differnew file mode 100644 index 000000000..f996f6fc0 --- /dev/null +++ b/web/static/images/emoji/1f1e7-1f1ea.png diff --git a/web/static/images/emoji/1f1e7-1f1eb.png b/web/static/images/emoji/1f1e7-1f1eb.png Binary files differnew file mode 100644 index 000000000..185eb5a92 --- /dev/null +++ b/web/static/images/emoji/1f1e7-1f1eb.png diff --git a/web/static/images/emoji/1f1e7-1f1ec.png b/web/static/images/emoji/1f1e7-1f1ec.png Binary files differnew file mode 100644 index 000000000..849c68a22 --- /dev/null +++ b/web/static/images/emoji/1f1e7-1f1ec.png diff --git a/web/static/images/emoji/1f1e7-1f1ed.png b/web/static/images/emoji/1f1e7-1f1ed.png Binary files differnew file mode 100644 index 000000000..b0cabb344 --- /dev/null +++ b/web/static/images/emoji/1f1e7-1f1ed.png diff --git a/web/static/images/emoji/1f1e7-1f1ee.png b/web/static/images/emoji/1f1e7-1f1ee.png Binary files differnew file mode 100644 index 000000000..b2de6ba9d --- /dev/null +++ b/web/static/images/emoji/1f1e7-1f1ee.png diff --git a/web/static/images/emoji/1f1e7-1f1ef.png b/web/static/images/emoji/1f1e7-1f1ef.png Binary files differnew file mode 100644 index 000000000..6023c7286 --- /dev/null +++ b/web/static/images/emoji/1f1e7-1f1ef.png diff --git a/web/static/images/emoji/1f1e7-1f1f2.png b/web/static/images/emoji/1f1e7-1f1f2.png Binary files differnew file mode 100644 index 000000000..cce7665e5 --- /dev/null +++ b/web/static/images/emoji/1f1e7-1f1f2.png diff --git a/web/static/images/emoji/1f1e7-1f1f3.png b/web/static/images/emoji/1f1e7-1f1f3.png Binary files differnew file mode 100644 index 000000000..37ffaaf4a --- /dev/null +++ b/web/static/images/emoji/1f1e7-1f1f3.png diff --git a/web/static/images/emoji/1f1e7-1f1f4.png b/web/static/images/emoji/1f1e7-1f1f4.png Binary files differnew file mode 100644 index 000000000..9e7b9bd6d --- /dev/null +++ b/web/static/images/emoji/1f1e7-1f1f4.png diff --git a/web/static/images/emoji/1f1e7-1f1f7.png b/web/static/images/emoji/1f1e7-1f1f7.png Binary files differnew file mode 100644 index 000000000..1218801ec --- /dev/null +++ b/web/static/images/emoji/1f1e7-1f1f7.png diff --git a/web/static/images/emoji/1f1e7-1f1f8.png b/web/static/images/emoji/1f1e7-1f1f8.png Binary files differnew file mode 100644 index 000000000..56304afc5 --- /dev/null +++ b/web/static/images/emoji/1f1e7-1f1f8.png diff --git a/web/static/images/emoji/1f1e7-1f1f9.png b/web/static/images/emoji/1f1e7-1f1f9.png Binary files differnew file mode 100644 index 000000000..5419aeeb3 --- /dev/null +++ b/web/static/images/emoji/1f1e7-1f1f9.png diff --git a/web/static/images/emoji/1f1e7-1f1fc.png b/web/static/images/emoji/1f1e7-1f1fc.png Binary files differnew file mode 100644 index 000000000..b82b4e244 --- /dev/null +++ b/web/static/images/emoji/1f1e7-1f1fc.png diff --git a/web/static/images/emoji/1f1e7-1f1fe.png b/web/static/images/emoji/1f1e7-1f1fe.png Binary files differnew file mode 100644 index 000000000..fbf36a528 --- /dev/null +++ b/web/static/images/emoji/1f1e7-1f1fe.png diff --git a/web/static/images/emoji/1f1e7-1f1ff.png b/web/static/images/emoji/1f1e7-1f1ff.png Binary files differnew file mode 100644 index 000000000..4e300a7a9 --- /dev/null +++ b/web/static/images/emoji/1f1e7-1f1ff.png diff --git a/web/static/images/emoji/1f1e8-1f1e6.png b/web/static/images/emoji/1f1e8-1f1e6.png Binary files differnew file mode 100644 index 000000000..2838b5e82 --- /dev/null +++ b/web/static/images/emoji/1f1e8-1f1e6.png diff --git a/web/static/images/emoji/1f1e8-1f1e9.png b/web/static/images/emoji/1f1e8-1f1e9.png Binary files differnew file mode 100644 index 000000000..b7620b487 --- /dev/null +++ b/web/static/images/emoji/1f1e8-1f1e9.png diff --git a/web/static/images/emoji/1f1e8-1f1eb.png b/web/static/images/emoji/1f1e8-1f1eb.png Binary files differnew file mode 100644 index 000000000..32accc631 --- /dev/null +++ b/web/static/images/emoji/1f1e8-1f1eb.png diff --git a/web/static/images/emoji/1f1e8-1f1ec.png b/web/static/images/emoji/1f1e8-1f1ec.png Binary files differnew file mode 100644 index 000000000..51d0cb55b --- /dev/null +++ b/web/static/images/emoji/1f1e8-1f1ec.png diff --git a/web/static/images/emoji/1f1e8-1f1ed.png b/web/static/images/emoji/1f1e8-1f1ed.png Binary files differnew file mode 100644 index 000000000..53f7c0496 --- /dev/null +++ b/web/static/images/emoji/1f1e8-1f1ed.png diff --git a/web/static/images/emoji/1f1e8-1f1ee.png b/web/static/images/emoji/1f1e8-1f1ee.png Binary files differnew file mode 100644 index 000000000..3a1fb1946 --- /dev/null +++ b/web/static/images/emoji/1f1e8-1f1ee.png diff --git a/web/static/images/emoji/1f1e8-1f1f1.png b/web/static/images/emoji/1f1e8-1f1f1.png Binary files differnew file mode 100644 index 000000000..ebbf710d2 --- /dev/null +++ b/web/static/images/emoji/1f1e8-1f1f1.png diff --git a/web/static/images/emoji/1f1e8-1f1f2.png b/web/static/images/emoji/1f1e8-1f1f2.png Binary files differnew file mode 100644 index 000000000..71024ac1c --- /dev/null +++ b/web/static/images/emoji/1f1e8-1f1f2.png diff --git a/web/static/images/emoji/1f1e8-1f1f3.png b/web/static/images/emoji/1f1e8-1f1f3.png Binary files differnew file mode 100644 index 000000000..0151923f3 --- /dev/null +++ b/web/static/images/emoji/1f1e8-1f1f3.png diff --git a/web/static/images/emoji/1f1e8-1f1f4.png b/web/static/images/emoji/1f1e8-1f1f4.png Binary files differnew file mode 100644 index 000000000..b64536ac3 --- /dev/null +++ b/web/static/images/emoji/1f1e8-1f1f4.png diff --git a/web/static/images/emoji/1f1e8-1f1f7.png b/web/static/images/emoji/1f1e8-1f1f7.png Binary files differnew file mode 100644 index 000000000..74612a90e --- /dev/null +++ b/web/static/images/emoji/1f1e8-1f1f7.png diff --git a/web/static/images/emoji/1f1e8-1f1fa.png b/web/static/images/emoji/1f1e8-1f1fa.png Binary files differnew file mode 100644 index 000000000..37a9cc10b --- /dev/null +++ b/web/static/images/emoji/1f1e8-1f1fa.png diff --git a/web/static/images/emoji/1f1e8-1f1fb.png b/web/static/images/emoji/1f1e8-1f1fb.png Binary files differnew file mode 100644 index 000000000..7a6a41e90 --- /dev/null +++ b/web/static/images/emoji/1f1e8-1f1fb.png diff --git a/web/static/images/emoji/1f1e8-1f1fe.png b/web/static/images/emoji/1f1e8-1f1fe.png Binary files differnew file mode 100644 index 000000000..4f593449a --- /dev/null +++ b/web/static/images/emoji/1f1e8-1f1fe.png diff --git a/web/static/images/emoji/1f1e8-1f1ff.png b/web/static/images/emoji/1f1e8-1f1ff.png Binary files differnew file mode 100644 index 000000000..aa9a40c74 --- /dev/null +++ b/web/static/images/emoji/1f1e8-1f1ff.png diff --git a/web/static/images/emoji/1f1e9-1f1ea.png b/web/static/images/emoji/1f1e9-1f1ea.png Binary files differnew file mode 100644 index 000000000..168ab43c3 --- /dev/null +++ b/web/static/images/emoji/1f1e9-1f1ea.png diff --git a/web/static/images/emoji/1f1e9-1f1ef.png b/web/static/images/emoji/1f1e9-1f1ef.png Binary files differnew file mode 100644 index 000000000..ba0833714 --- /dev/null +++ b/web/static/images/emoji/1f1e9-1f1ef.png diff --git a/web/static/images/emoji/1f1e9-1f1f0.png b/web/static/images/emoji/1f1e9-1f1f0.png Binary files differnew file mode 100644 index 000000000..2e6b7a624 --- /dev/null +++ b/web/static/images/emoji/1f1e9-1f1f0.png diff --git a/web/static/images/emoji/1f1e9-1f1f2.png b/web/static/images/emoji/1f1e9-1f1f2.png Binary files differnew file mode 100644 index 000000000..1b90463e5 --- /dev/null +++ b/web/static/images/emoji/1f1e9-1f1f2.png diff --git a/web/static/images/emoji/1f1e9-1f1f4.png b/web/static/images/emoji/1f1e9-1f1f4.png Binary files differnew file mode 100644 index 000000000..d5c1ac5ba --- /dev/null +++ b/web/static/images/emoji/1f1e9-1f1f4.png diff --git a/web/static/images/emoji/1f1e9-1f1ff.png b/web/static/images/emoji/1f1e9-1f1ff.png Binary files differnew file mode 100644 index 000000000..a778a7995 --- /dev/null +++ b/web/static/images/emoji/1f1e9-1f1ff.png diff --git a/web/static/images/emoji/1f1ea-1f1e8.png b/web/static/images/emoji/1f1ea-1f1e8.png Binary files differnew file mode 100644 index 000000000..7f40f138d --- /dev/null +++ b/web/static/images/emoji/1f1ea-1f1e8.png diff --git a/web/static/images/emoji/1f1ea-1f1ea.png b/web/static/images/emoji/1f1ea-1f1ea.png Binary files differnew file mode 100644 index 000000000..1aa45dc2a --- /dev/null +++ b/web/static/images/emoji/1f1ea-1f1ea.png diff --git a/web/static/images/emoji/1f1ea-1f1ec.png b/web/static/images/emoji/1f1ea-1f1ec.png Binary files differnew file mode 100644 index 000000000..5904bfac9 --- /dev/null +++ b/web/static/images/emoji/1f1ea-1f1ec.png diff --git a/web/static/images/emoji/1f1ea-1f1ed.png b/web/static/images/emoji/1f1ea-1f1ed.png Binary files differnew file mode 100644 index 000000000..5c1bf6134 --- /dev/null +++ b/web/static/images/emoji/1f1ea-1f1ed.png diff --git a/web/static/images/emoji/1f1ea-1f1f7.png b/web/static/images/emoji/1f1ea-1f1f7.png Binary files differnew file mode 100644 index 000000000..fa4f25eed --- /dev/null +++ b/web/static/images/emoji/1f1ea-1f1f7.png diff --git a/web/static/images/emoji/1f1ea-1f1f8.png b/web/static/images/emoji/1f1ea-1f1f8.png Binary files differnew file mode 100644 index 000000000..16a772cd1 --- /dev/null +++ b/web/static/images/emoji/1f1ea-1f1f8.png diff --git a/web/static/images/emoji/1f1ea-1f1f9.png b/web/static/images/emoji/1f1ea-1f1f9.png Binary files differnew file mode 100644 index 000000000..4833e8431 --- /dev/null +++ b/web/static/images/emoji/1f1ea-1f1f9.png diff --git a/web/static/images/emoji/1f1eb-1f1ee.png b/web/static/images/emoji/1f1eb-1f1ee.png Binary files differnew file mode 100644 index 000000000..b2a5c3d24 --- /dev/null +++ b/web/static/images/emoji/1f1eb-1f1ee.png diff --git a/web/static/images/emoji/1f1eb-1f1ef.png b/web/static/images/emoji/1f1eb-1f1ef.png Binary files differnew file mode 100644 index 000000000..a7a731e6f --- /dev/null +++ b/web/static/images/emoji/1f1eb-1f1ef.png diff --git a/web/static/images/emoji/1f1eb-1f1f0.png b/web/static/images/emoji/1f1eb-1f1f0.png Binary files differnew file mode 100644 index 000000000..c4562eaa6 --- /dev/null +++ b/web/static/images/emoji/1f1eb-1f1f0.png diff --git a/web/static/images/emoji/1f1eb-1f1f2.png b/web/static/images/emoji/1f1eb-1f1f2.png Binary files differnew file mode 100644 index 000000000..42fe76312 --- /dev/null +++ b/web/static/images/emoji/1f1eb-1f1f2.png diff --git a/web/static/images/emoji/1f1eb-1f1f4.png b/web/static/images/emoji/1f1eb-1f1f4.png Binary files differnew file mode 100644 index 000000000..e9d8e4cf4 --- /dev/null +++ b/web/static/images/emoji/1f1eb-1f1f4.png diff --git a/web/static/images/emoji/1f1eb-1f1f7.png b/web/static/images/emoji/1f1eb-1f1f7.png Binary files differnew file mode 100644 index 000000000..14271f059 --- /dev/null +++ b/web/static/images/emoji/1f1eb-1f1f7.png diff --git a/web/static/images/emoji/1f1ec-1f1e6.png b/web/static/images/emoji/1f1ec-1f1e6.png Binary files differnew file mode 100644 index 000000000..4a3b5ccf9 --- /dev/null +++ b/web/static/images/emoji/1f1ec-1f1e6.png diff --git a/web/static/images/emoji/1f1ec-1f1e7.png b/web/static/images/emoji/1f1ec-1f1e7.png Binary files differnew file mode 100644 index 000000000..61c03f759 --- /dev/null +++ b/web/static/images/emoji/1f1ec-1f1e7.png diff --git a/web/static/images/emoji/1f1ec-1f1e9.png b/web/static/images/emoji/1f1ec-1f1e9.png Binary files differnew file mode 100644 index 000000000..4f9dc82d7 --- /dev/null +++ b/web/static/images/emoji/1f1ec-1f1e9.png diff --git a/web/static/images/emoji/1f1ec-1f1ea.png b/web/static/images/emoji/1f1ec-1f1ea.png Binary files differnew file mode 100644 index 000000000..1fe16f968 --- /dev/null +++ b/web/static/images/emoji/1f1ec-1f1ea.png diff --git a/web/static/images/emoji/1f1ec-1f1ed.png b/web/static/images/emoji/1f1ec-1f1ed.png Binary files differnew file mode 100644 index 000000000..0aadf4db2 --- /dev/null +++ b/web/static/images/emoji/1f1ec-1f1ed.png diff --git a/web/static/images/emoji/1f1ec-1f1ee.png b/web/static/images/emoji/1f1ec-1f1ee.png Binary files differnew file mode 100644 index 000000000..e95abe51f --- /dev/null +++ b/web/static/images/emoji/1f1ec-1f1ee.png diff --git a/web/static/images/emoji/1f1ec-1f1f1.png b/web/static/images/emoji/1f1ec-1f1f1.png Binary files differnew file mode 100644 index 000000000..76708a55f --- /dev/null +++ b/web/static/images/emoji/1f1ec-1f1f1.png diff --git a/web/static/images/emoji/1f1ec-1f1f2.png b/web/static/images/emoji/1f1ec-1f1f2.png Binary files differnew file mode 100644 index 000000000..c5a72895f --- /dev/null +++ b/web/static/images/emoji/1f1ec-1f1f2.png diff --git a/web/static/images/emoji/1f1ec-1f1f3.png b/web/static/images/emoji/1f1ec-1f1f3.png Binary files differnew file mode 100644 index 000000000..fdd5c2d14 --- /dev/null +++ b/web/static/images/emoji/1f1ec-1f1f3.png diff --git a/web/static/images/emoji/1f1ec-1f1f6.png b/web/static/images/emoji/1f1ec-1f1f6.png Binary files differnew file mode 100644 index 000000000..7fc7c86c8 --- /dev/null +++ b/web/static/images/emoji/1f1ec-1f1f6.png diff --git a/web/static/images/emoji/1f1ec-1f1f7.png b/web/static/images/emoji/1f1ec-1f1f7.png Binary files differnew file mode 100644 index 000000000..091f1ab07 --- /dev/null +++ b/web/static/images/emoji/1f1ec-1f1f7.png diff --git a/web/static/images/emoji/1f1ec-1f1f9.png b/web/static/images/emoji/1f1ec-1f1f9.png Binary files differnew file mode 100644 index 000000000..66437d0de --- /dev/null +++ b/web/static/images/emoji/1f1ec-1f1f9.png diff --git a/web/static/images/emoji/1f1ec-1f1fa.png b/web/static/images/emoji/1f1ec-1f1fa.png Binary files differnew file mode 100644 index 000000000..a4d2024b1 --- /dev/null +++ b/web/static/images/emoji/1f1ec-1f1fa.png diff --git a/web/static/images/emoji/1f1ec-1f1fc.png b/web/static/images/emoji/1f1ec-1f1fc.png Binary files differnew file mode 100644 index 000000000..a70abe908 --- /dev/null +++ b/web/static/images/emoji/1f1ec-1f1fc.png diff --git a/web/static/images/emoji/1f1ec-1f1fe.png b/web/static/images/emoji/1f1ec-1f1fe.png Binary files differnew file mode 100644 index 000000000..2cc8ecaab --- /dev/null +++ b/web/static/images/emoji/1f1ec-1f1fe.png diff --git a/web/static/images/emoji/1f1ed-1f1f0.png b/web/static/images/emoji/1f1ed-1f1f0.png Binary files differnew file mode 100644 index 000000000..cff8e25fd --- /dev/null +++ b/web/static/images/emoji/1f1ed-1f1f0.png diff --git a/web/static/images/emoji/1f1ed-1f1f3.png b/web/static/images/emoji/1f1ed-1f1f3.png Binary files differnew file mode 100644 index 000000000..e4eeee2d8 --- /dev/null +++ b/web/static/images/emoji/1f1ed-1f1f3.png diff --git a/web/static/images/emoji/1f1ed-1f1f7.png b/web/static/images/emoji/1f1ed-1f1f7.png Binary files differnew file mode 100644 index 000000000..be0823c21 --- /dev/null +++ b/web/static/images/emoji/1f1ed-1f1f7.png diff --git a/web/static/images/emoji/1f1ed-1f1f9.png b/web/static/images/emoji/1f1ed-1f1f9.png Binary files differnew file mode 100644 index 000000000..76d3d94ad --- /dev/null +++ b/web/static/images/emoji/1f1ed-1f1f9.png diff --git a/web/static/images/emoji/1f1ed-1f1fa.png b/web/static/images/emoji/1f1ed-1f1fa.png Binary files differnew file mode 100644 index 000000000..028f853dd --- /dev/null +++ b/web/static/images/emoji/1f1ed-1f1fa.png diff --git a/web/static/images/emoji/1f1ee-1f1e9.png b/web/static/images/emoji/1f1ee-1f1e9.png Binary files differnew file mode 100644 index 000000000..90042acf5 --- /dev/null +++ b/web/static/images/emoji/1f1ee-1f1e9.png diff --git a/web/static/images/emoji/1f1ee-1f1ea.png b/web/static/images/emoji/1f1ee-1f1ea.png Binary files differnew file mode 100644 index 000000000..63ae4af61 --- /dev/null +++ b/web/static/images/emoji/1f1ee-1f1ea.png diff --git a/web/static/images/emoji/1f1ee-1f1f1.png b/web/static/images/emoji/1f1ee-1f1f1.png Binary files differnew file mode 100644 index 000000000..8361d8ee3 --- /dev/null +++ b/web/static/images/emoji/1f1ee-1f1f1.png diff --git a/web/static/images/emoji/1f1ee-1f1f3.png b/web/static/images/emoji/1f1ee-1f1f3.png Binary files differnew file mode 100644 index 000000000..6d6f944c4 --- /dev/null +++ b/web/static/images/emoji/1f1ee-1f1f3.png diff --git a/web/static/images/emoji/1f1ee-1f1f6.png b/web/static/images/emoji/1f1ee-1f1f6.png Binary files differnew file mode 100644 index 000000000..5fb5d4e3b --- /dev/null +++ b/web/static/images/emoji/1f1ee-1f1f6.png diff --git a/web/static/images/emoji/1f1ee-1f1f7.png b/web/static/images/emoji/1f1ee-1f1f7.png Binary files differnew file mode 100644 index 000000000..23f916063 --- /dev/null +++ b/web/static/images/emoji/1f1ee-1f1f7.png diff --git a/web/static/images/emoji/1f1ee-1f1f8.png b/web/static/images/emoji/1f1ee-1f1f8.png Binary files differnew file mode 100644 index 000000000..7f2b34832 --- /dev/null +++ b/web/static/images/emoji/1f1ee-1f1f8.png diff --git a/web/static/images/emoji/1f1ee-1f1f9.png b/web/static/images/emoji/1f1ee-1f1f9.png Binary files differnew file mode 100644 index 000000000..bce062350 --- /dev/null +++ b/web/static/images/emoji/1f1ee-1f1f9.png diff --git a/web/static/images/emoji/1f1ef-1f1ea.png b/web/static/images/emoji/1f1ef-1f1ea.png Binary files differnew file mode 100644 index 000000000..822b4340d --- /dev/null +++ b/web/static/images/emoji/1f1ef-1f1ea.png diff --git a/web/static/images/emoji/1f1ef-1f1f2.png b/web/static/images/emoji/1f1ef-1f1f2.png Binary files differnew file mode 100644 index 000000000..f179b1404 --- /dev/null +++ b/web/static/images/emoji/1f1ef-1f1f2.png diff --git a/web/static/images/emoji/1f1ef-1f1f4.png b/web/static/images/emoji/1f1ef-1f1f4.png Binary files differnew file mode 100644 index 000000000..15be546e8 --- /dev/null +++ b/web/static/images/emoji/1f1ef-1f1f4.png diff --git a/web/static/images/emoji/1f1ef-1f1f5.png b/web/static/images/emoji/1f1ef-1f1f5.png Binary files differnew file mode 100644 index 000000000..56390ce22 --- /dev/null +++ b/web/static/images/emoji/1f1ef-1f1f5.png diff --git a/web/static/images/emoji/1f1f0-1f1ea.png b/web/static/images/emoji/1f1f0-1f1ea.png Binary files differnew file mode 100644 index 000000000..301bf6eec --- /dev/null +++ b/web/static/images/emoji/1f1f0-1f1ea.png diff --git a/web/static/images/emoji/1f1f0-1f1ec.png b/web/static/images/emoji/1f1f0-1f1ec.png Binary files differnew file mode 100644 index 000000000..6845412e8 --- /dev/null +++ b/web/static/images/emoji/1f1f0-1f1ec.png diff --git a/web/static/images/emoji/1f1f0-1f1ed.png b/web/static/images/emoji/1f1f0-1f1ed.png Binary files differnew file mode 100644 index 000000000..15ccea7a4 --- /dev/null +++ b/web/static/images/emoji/1f1f0-1f1ed.png diff --git a/web/static/images/emoji/1f1f0-1f1ee.png b/web/static/images/emoji/1f1f0-1f1ee.png Binary files differnew file mode 100644 index 000000000..79331c5de --- /dev/null +++ b/web/static/images/emoji/1f1f0-1f1ee.png diff --git a/web/static/images/emoji/1f1f0-1f1f2.png b/web/static/images/emoji/1f1f0-1f1f2.png Binary files differnew file mode 100644 index 000000000..9a16139aa --- /dev/null +++ b/web/static/images/emoji/1f1f0-1f1f2.png diff --git a/web/static/images/emoji/1f1f0-1f1f3.png b/web/static/images/emoji/1f1f0-1f1f3.png Binary files differnew file mode 100644 index 000000000..913f6dfb7 --- /dev/null +++ b/web/static/images/emoji/1f1f0-1f1f3.png diff --git a/web/static/images/emoji/1f1f0-1f1f5.png b/web/static/images/emoji/1f1f0-1f1f5.png Binary files differnew file mode 100644 index 000000000..cb50e9380 --- /dev/null +++ b/web/static/images/emoji/1f1f0-1f1f5.png diff --git a/web/static/images/emoji/1f1f0-1f1f7.png b/web/static/images/emoji/1f1f0-1f1f7.png Binary files differnew file mode 100644 index 000000000..6687991f3 --- /dev/null +++ b/web/static/images/emoji/1f1f0-1f1f7.png diff --git a/web/static/images/emoji/1f1f0-1f1fc.png b/web/static/images/emoji/1f1f0-1f1fc.png Binary files differnew file mode 100644 index 000000000..72ef3415f --- /dev/null +++ b/web/static/images/emoji/1f1f0-1f1fc.png diff --git a/web/static/images/emoji/1f1f0-1f1fe.png b/web/static/images/emoji/1f1f0-1f1fe.png Binary files differnew file mode 100644 index 000000000..d716ddcd5 --- /dev/null +++ b/web/static/images/emoji/1f1f0-1f1fe.png diff --git a/web/static/images/emoji/1f1f0-1f1ff.png b/web/static/images/emoji/1f1f0-1f1ff.png Binary files differnew file mode 100644 index 000000000..49813e5d5 --- /dev/null +++ b/web/static/images/emoji/1f1f0-1f1ff.png diff --git a/web/static/images/emoji/1f1f1-1f1e6.png b/web/static/images/emoji/1f1f1-1f1e6.png Binary files differnew file mode 100644 index 000000000..6f0dd90f3 --- /dev/null +++ b/web/static/images/emoji/1f1f1-1f1e6.png diff --git a/web/static/images/emoji/1f1f1-1f1e7.png b/web/static/images/emoji/1f1f1-1f1e7.png Binary files differnew file mode 100644 index 000000000..8fe041f46 --- /dev/null +++ b/web/static/images/emoji/1f1f1-1f1e7.png diff --git a/web/static/images/emoji/1f1f1-1f1e8.png b/web/static/images/emoji/1f1f1-1f1e8.png Binary files differnew file mode 100644 index 000000000..70a34cb11 --- /dev/null +++ b/web/static/images/emoji/1f1f1-1f1e8.png diff --git a/web/static/images/emoji/1f1f1-1f1ee.png b/web/static/images/emoji/1f1f1-1f1ee.png Binary files differnew file mode 100644 index 000000000..ad667c3c4 --- /dev/null +++ b/web/static/images/emoji/1f1f1-1f1ee.png diff --git a/web/static/images/emoji/1f1f1-1f1f0.png b/web/static/images/emoji/1f1f1-1f1f0.png Binary files differnew file mode 100644 index 000000000..9a205d9cf --- /dev/null +++ b/web/static/images/emoji/1f1f1-1f1f0.png diff --git a/web/static/images/emoji/1f1f1-1f1f7.png b/web/static/images/emoji/1f1f1-1f1f7.png Binary files differnew file mode 100644 index 000000000..2916a1ff4 --- /dev/null +++ b/web/static/images/emoji/1f1f1-1f1f7.png diff --git a/web/static/images/emoji/1f1f1-1f1f8.png b/web/static/images/emoji/1f1f1-1f1f8.png Binary files differnew file mode 100644 index 000000000..a47e7e067 --- /dev/null +++ b/web/static/images/emoji/1f1f1-1f1f8.png diff --git a/web/static/images/emoji/1f1f1-1f1f9.png b/web/static/images/emoji/1f1f1-1f1f9.png Binary files differnew file mode 100644 index 000000000..ea08d9b23 --- /dev/null +++ b/web/static/images/emoji/1f1f1-1f1f9.png diff --git a/web/static/images/emoji/1f1f1-1f1fa.png b/web/static/images/emoji/1f1f1-1f1fa.png Binary files differnew file mode 100644 index 000000000..dbd428878 --- /dev/null +++ b/web/static/images/emoji/1f1f1-1f1fa.png diff --git a/web/static/images/emoji/1f1f1-1f1fb.png b/web/static/images/emoji/1f1f1-1f1fb.png Binary files differnew file mode 100644 index 000000000..a8eef9ff6 --- /dev/null +++ b/web/static/images/emoji/1f1f1-1f1fb.png diff --git a/web/static/images/emoji/1f1f1-1f1fe.png b/web/static/images/emoji/1f1f1-1f1fe.png Binary files differnew file mode 100644 index 000000000..04632748f --- /dev/null +++ b/web/static/images/emoji/1f1f1-1f1fe.png diff --git a/web/static/images/emoji/1f1f2-1f1e6.png b/web/static/images/emoji/1f1f2-1f1e6.png Binary files differnew file mode 100644 index 000000000..1bf4401f6 --- /dev/null +++ b/web/static/images/emoji/1f1f2-1f1e6.png diff --git a/web/static/images/emoji/1f1f2-1f1e8.png b/web/static/images/emoji/1f1f2-1f1e8.png Binary files differnew file mode 100644 index 000000000..039174d3a --- /dev/null +++ b/web/static/images/emoji/1f1f2-1f1e8.png diff --git a/web/static/images/emoji/1f1f2-1f1e9.png b/web/static/images/emoji/1f1f2-1f1e9.png Binary files differnew file mode 100644 index 000000000..78b5ba7e2 --- /dev/null +++ b/web/static/images/emoji/1f1f2-1f1e9.png diff --git a/web/static/images/emoji/1f1f2-1f1ea.png b/web/static/images/emoji/1f1f2-1f1ea.png Binary files differnew file mode 100644 index 000000000..01245d958 --- /dev/null +++ b/web/static/images/emoji/1f1f2-1f1ea.png diff --git a/web/static/images/emoji/1f1f2-1f1ec.png b/web/static/images/emoji/1f1f2-1f1ec.png Binary files differnew file mode 100644 index 000000000..cb55e9fc3 --- /dev/null +++ b/web/static/images/emoji/1f1f2-1f1ec.png diff --git a/web/static/images/emoji/1f1f2-1f1ed.png b/web/static/images/emoji/1f1f2-1f1ed.png Binary files differnew file mode 100644 index 000000000..ff5038b6d --- /dev/null +++ b/web/static/images/emoji/1f1f2-1f1ed.png diff --git a/web/static/images/emoji/1f1f2-1f1f0.png b/web/static/images/emoji/1f1f2-1f1f0.png Binary files differnew file mode 100644 index 000000000..8dadf0110 --- /dev/null +++ b/web/static/images/emoji/1f1f2-1f1f0.png diff --git a/web/static/images/emoji/1f1f2-1f1f1.png b/web/static/images/emoji/1f1f2-1f1f1.png Binary files differnew file mode 100644 index 000000000..53be7c81e --- /dev/null +++ b/web/static/images/emoji/1f1f2-1f1f1.png diff --git a/web/static/images/emoji/1f1f2-1f1f2.png b/web/static/images/emoji/1f1f2-1f1f2.png Binary files differnew file mode 100644 index 000000000..c1cfee7a5 --- /dev/null +++ b/web/static/images/emoji/1f1f2-1f1f2.png diff --git a/web/static/images/emoji/1f1f2-1f1f3.png b/web/static/images/emoji/1f1f2-1f1f3.png Binary files differnew file mode 100644 index 000000000..1beac5568 --- /dev/null +++ b/web/static/images/emoji/1f1f2-1f1f3.png diff --git a/web/static/images/emoji/1f1f2-1f1f4.png b/web/static/images/emoji/1f1f2-1f1f4.png Binary files differnew file mode 100644 index 000000000..6a8fcb9a0 --- /dev/null +++ b/web/static/images/emoji/1f1f2-1f1f4.png diff --git a/web/static/images/emoji/1f1f2-1f1f7.png b/web/static/images/emoji/1f1f2-1f1f7.png Binary files differnew file mode 100644 index 000000000..854690cfb --- /dev/null +++ b/web/static/images/emoji/1f1f2-1f1f7.png diff --git a/web/static/images/emoji/1f1f2-1f1f8.png b/web/static/images/emoji/1f1f2-1f1f8.png Binary files differnew file mode 100644 index 000000000..61b2de721 --- /dev/null +++ b/web/static/images/emoji/1f1f2-1f1f8.png diff --git a/web/static/images/emoji/1f1f2-1f1f9.png b/web/static/images/emoji/1f1f2-1f1f9.png Binary files differnew file mode 100644 index 000000000..2f07f4709 --- /dev/null +++ b/web/static/images/emoji/1f1f2-1f1f9.png diff --git a/web/static/images/emoji/1f1f2-1f1fa.png b/web/static/images/emoji/1f1f2-1f1fa.png Binary files differnew file mode 100644 index 000000000..9d28c0812 --- /dev/null +++ b/web/static/images/emoji/1f1f2-1f1fa.png diff --git a/web/static/images/emoji/1f1f2-1f1fb.png b/web/static/images/emoji/1f1f2-1f1fb.png Binary files differnew file mode 100644 index 000000000..4ea56e841 --- /dev/null +++ b/web/static/images/emoji/1f1f2-1f1fb.png diff --git a/web/static/images/emoji/1f1f2-1f1fc.png b/web/static/images/emoji/1f1f2-1f1fc.png Binary files differnew file mode 100644 index 000000000..361aa65ec --- /dev/null +++ b/web/static/images/emoji/1f1f2-1f1fc.png diff --git a/web/static/images/emoji/1f1f2-1f1fd.png b/web/static/images/emoji/1f1f2-1f1fd.png Binary files differnew file mode 100644 index 000000000..c44c24df1 --- /dev/null +++ b/web/static/images/emoji/1f1f2-1f1fd.png diff --git a/web/static/images/emoji/1f1f2-1f1fe.png b/web/static/images/emoji/1f1f2-1f1fe.png Binary files differnew file mode 100644 index 000000000..166fd5ba7 --- /dev/null +++ b/web/static/images/emoji/1f1f2-1f1fe.png diff --git a/web/static/images/emoji/1f1f2-1f1ff.png b/web/static/images/emoji/1f1f2-1f1ff.png Binary files differnew file mode 100644 index 000000000..209db39ee --- /dev/null +++ b/web/static/images/emoji/1f1f2-1f1ff.png diff --git a/web/static/images/emoji/1f1f3-1f1e6.png b/web/static/images/emoji/1f1f3-1f1e6.png Binary files differnew file mode 100644 index 000000000..84fab946d --- /dev/null +++ b/web/static/images/emoji/1f1f3-1f1e6.png diff --git a/web/static/images/emoji/1f1f3-1f1e8.png b/web/static/images/emoji/1f1f3-1f1e8.png Binary files differnew file mode 100644 index 000000000..6372d93c7 --- /dev/null +++ b/web/static/images/emoji/1f1f3-1f1e8.png diff --git a/web/static/images/emoji/1f1f3-1f1ea.png b/web/static/images/emoji/1f1f3-1f1ea.png Binary files differnew file mode 100644 index 000000000..3fd0d99ab --- /dev/null +++ b/web/static/images/emoji/1f1f3-1f1ea.png diff --git a/web/static/images/emoji/1f1f3-1f1ec.png b/web/static/images/emoji/1f1f3-1f1ec.png Binary files differnew file mode 100644 index 000000000..2c98fcdff --- /dev/null +++ b/web/static/images/emoji/1f1f3-1f1ec.png diff --git a/web/static/images/emoji/1f1f3-1f1ee.png b/web/static/images/emoji/1f1f3-1f1ee.png Binary files differnew file mode 100644 index 000000000..88055d5a0 --- /dev/null +++ b/web/static/images/emoji/1f1f3-1f1ee.png diff --git a/web/static/images/emoji/1f1f3-1f1f1.png b/web/static/images/emoji/1f1f3-1f1f1.png Binary files differnew file mode 100644 index 000000000..d5de058a4 --- /dev/null +++ b/web/static/images/emoji/1f1f3-1f1f1.png diff --git a/web/static/images/emoji/1f1f3-1f1f4.png b/web/static/images/emoji/1f1f3-1f1f4.png Binary files differnew file mode 100644 index 000000000..1199fae93 --- /dev/null +++ b/web/static/images/emoji/1f1f3-1f1f4.png diff --git a/web/static/images/emoji/1f1f3-1f1f5.png b/web/static/images/emoji/1f1f3-1f1f5.png Binary files differnew file mode 100644 index 000000000..3e17c5204 --- /dev/null +++ b/web/static/images/emoji/1f1f3-1f1f5.png diff --git a/web/static/images/emoji/1f1f3-1f1f7.png b/web/static/images/emoji/1f1f3-1f1f7.png Binary files differnew file mode 100644 index 000000000..80c3d8357 --- /dev/null +++ b/web/static/images/emoji/1f1f3-1f1f7.png diff --git a/web/static/images/emoji/1f1f3-1f1fa.png b/web/static/images/emoji/1f1f3-1f1fa.png Binary files differnew file mode 100644 index 000000000..628aee1e3 --- /dev/null +++ b/web/static/images/emoji/1f1f3-1f1fa.png diff --git a/web/static/images/emoji/1f1f3-1f1ff.png b/web/static/images/emoji/1f1f3-1f1ff.png Binary files differnew file mode 100644 index 000000000..d64f6ec22 --- /dev/null +++ b/web/static/images/emoji/1f1f3-1f1ff.png diff --git a/web/static/images/emoji/1f1f4-1f1f2.png b/web/static/images/emoji/1f1f4-1f1f2.png Binary files differnew file mode 100644 index 000000000..68dd406fb --- /dev/null +++ b/web/static/images/emoji/1f1f4-1f1f2.png diff --git a/web/static/images/emoji/1f1f5-1f1e6.png b/web/static/images/emoji/1f1f5-1f1e6.png Binary files differnew file mode 100644 index 000000000..0fa73faf3 --- /dev/null +++ b/web/static/images/emoji/1f1f5-1f1e6.png diff --git a/web/static/images/emoji/1f1f5-1f1ea.png b/web/static/images/emoji/1f1f5-1f1ea.png Binary files differnew file mode 100644 index 000000000..cf7098d8d --- /dev/null +++ b/web/static/images/emoji/1f1f5-1f1ea.png diff --git a/web/static/images/emoji/1f1f5-1f1eb.png b/web/static/images/emoji/1f1f5-1f1eb.png Binary files differnew file mode 100644 index 000000000..5780519fd --- /dev/null +++ b/web/static/images/emoji/1f1f5-1f1eb.png diff --git a/web/static/images/emoji/1f1f5-1f1ec.png b/web/static/images/emoji/1f1f5-1f1ec.png Binary files differnew file mode 100644 index 000000000..0a4ce4c3c --- /dev/null +++ b/web/static/images/emoji/1f1f5-1f1ec.png diff --git a/web/static/images/emoji/1f1f5-1f1ed.png b/web/static/images/emoji/1f1f5-1f1ed.png Binary files differnew file mode 100644 index 000000000..00a9eaa6d --- /dev/null +++ b/web/static/images/emoji/1f1f5-1f1ed.png diff --git a/web/static/images/emoji/1f1f5-1f1f0.png b/web/static/images/emoji/1f1f5-1f1f0.png Binary files differnew file mode 100644 index 000000000..b1ab1a7a8 --- /dev/null +++ b/web/static/images/emoji/1f1f5-1f1f0.png diff --git a/web/static/images/emoji/1f1f5-1f1f1.png b/web/static/images/emoji/1f1f5-1f1f1.png Binary files differnew file mode 100644 index 000000000..e07223bf7 --- /dev/null +++ b/web/static/images/emoji/1f1f5-1f1f1.png diff --git a/web/static/images/emoji/1f1f5-1f1f7.png b/web/static/images/emoji/1f1f5-1f1f7.png Binary files differnew file mode 100644 index 000000000..754bb5429 --- /dev/null +++ b/web/static/images/emoji/1f1f5-1f1f7.png diff --git a/web/static/images/emoji/1f1f5-1f1f8.png b/web/static/images/emoji/1f1f5-1f1f8.png Binary files differnew file mode 100644 index 000000000..e2076eda0 --- /dev/null +++ b/web/static/images/emoji/1f1f5-1f1f8.png diff --git a/web/static/images/emoji/1f1f5-1f1f9.png b/web/static/images/emoji/1f1f5-1f1f9.png Binary files differnew file mode 100644 index 000000000..4f585e18b --- /dev/null +++ b/web/static/images/emoji/1f1f5-1f1f9.png diff --git a/web/static/images/emoji/1f1f5-1f1fc.png b/web/static/images/emoji/1f1f5-1f1fc.png Binary files differnew file mode 100644 index 000000000..e15437591 --- /dev/null +++ b/web/static/images/emoji/1f1f5-1f1fc.png diff --git a/web/static/images/emoji/1f1f5-1f1fe.png b/web/static/images/emoji/1f1f5-1f1fe.png Binary files differnew file mode 100644 index 000000000..335d55f93 --- /dev/null +++ b/web/static/images/emoji/1f1f5-1f1fe.png diff --git a/web/static/images/emoji/1f1f6-1f1e6.png b/web/static/images/emoji/1f1f6-1f1e6.png Binary files differnew file mode 100644 index 000000000..6f99df4ff --- /dev/null +++ b/web/static/images/emoji/1f1f6-1f1e6.png diff --git a/web/static/images/emoji/1f1f7-1f1f4.png b/web/static/images/emoji/1f1f7-1f1f4.png Binary files differnew file mode 100644 index 000000000..1f7db7ab1 --- /dev/null +++ b/web/static/images/emoji/1f1f7-1f1f4.png diff --git a/web/static/images/emoji/1f1f7-1f1f8.png b/web/static/images/emoji/1f1f7-1f1f8.png Binary files differnew file mode 100644 index 000000000..7552aba40 --- /dev/null +++ b/web/static/images/emoji/1f1f7-1f1f8.png diff --git a/web/static/images/emoji/1f1f7-1f1fa.png b/web/static/images/emoji/1f1f7-1f1fa.png Binary files differnew file mode 100644 index 000000000..4a65f219f --- /dev/null +++ b/web/static/images/emoji/1f1f7-1f1fa.png diff --git a/web/static/images/emoji/1f1f7-1f1fc.png b/web/static/images/emoji/1f1f7-1f1fc.png Binary files differnew file mode 100644 index 000000000..ddea66d07 --- /dev/null +++ b/web/static/images/emoji/1f1f7-1f1fc.png diff --git a/web/static/images/emoji/1f1f8-1f1e6.png b/web/static/images/emoji/1f1f8-1f1e6.png Binary files differnew file mode 100644 index 000000000..4f82c1a3e --- /dev/null +++ b/web/static/images/emoji/1f1f8-1f1e6.png diff --git a/web/static/images/emoji/1f1f8-1f1e7.png b/web/static/images/emoji/1f1f8-1f1e7.png Binary files differnew file mode 100644 index 000000000..5bf32a743 --- /dev/null +++ b/web/static/images/emoji/1f1f8-1f1e7.png diff --git a/web/static/images/emoji/1f1f8-1f1e8.png b/web/static/images/emoji/1f1f8-1f1e8.png Binary files differnew file mode 100644 index 000000000..7ec76a1ec --- /dev/null +++ b/web/static/images/emoji/1f1f8-1f1e8.png diff --git a/web/static/images/emoji/1f1f8-1f1e9.png b/web/static/images/emoji/1f1f8-1f1e9.png Binary files differnew file mode 100644 index 000000000..fad14bde5 --- /dev/null +++ b/web/static/images/emoji/1f1f8-1f1e9.png diff --git a/web/static/images/emoji/1f1f8-1f1ea.png b/web/static/images/emoji/1f1f8-1f1ea.png Binary files differnew file mode 100644 index 000000000..067857a9e --- /dev/null +++ b/web/static/images/emoji/1f1f8-1f1ea.png diff --git a/web/static/images/emoji/1f1f8-1f1ec.png b/web/static/images/emoji/1f1f8-1f1ec.png Binary files differnew file mode 100644 index 000000000..8d1127005 --- /dev/null +++ b/web/static/images/emoji/1f1f8-1f1ec.png diff --git a/web/static/images/emoji/1f1f8-1f1ed.png b/web/static/images/emoji/1f1f8-1f1ed.png Binary files differnew file mode 100644 index 000000000..75977bea6 --- /dev/null +++ b/web/static/images/emoji/1f1f8-1f1ed.png diff --git a/web/static/images/emoji/1f1f8-1f1ee.png b/web/static/images/emoji/1f1f8-1f1ee.png Binary files differnew file mode 100644 index 000000000..d7c3a7477 --- /dev/null +++ b/web/static/images/emoji/1f1f8-1f1ee.png diff --git a/web/static/images/emoji/1f1f8-1f1f0.png b/web/static/images/emoji/1f1f8-1f1f0.png Binary files differnew file mode 100644 index 000000000..6f60bfab3 --- /dev/null +++ b/web/static/images/emoji/1f1f8-1f1f0.png diff --git a/web/static/images/emoji/1f1f8-1f1f1.png b/web/static/images/emoji/1f1f8-1f1f1.png Binary files differnew file mode 100644 index 000000000..5f88e8673 --- /dev/null +++ b/web/static/images/emoji/1f1f8-1f1f1.png diff --git a/web/static/images/emoji/1f1f8-1f1f2.png b/web/static/images/emoji/1f1f8-1f1f2.png Binary files differnew file mode 100644 index 000000000..431e28ea6 --- /dev/null +++ b/web/static/images/emoji/1f1f8-1f1f2.png diff --git a/web/static/images/emoji/1f1f8-1f1f3.png b/web/static/images/emoji/1f1f8-1f1f3.png Binary files differnew file mode 100644 index 000000000..dcc3f9770 --- /dev/null +++ b/web/static/images/emoji/1f1f8-1f1f3.png diff --git a/web/static/images/emoji/1f1f8-1f1f4.png b/web/static/images/emoji/1f1f8-1f1f4.png Binary files differnew file mode 100644 index 000000000..2e20974e9 --- /dev/null +++ b/web/static/images/emoji/1f1f8-1f1f4.png diff --git a/web/static/images/emoji/1f1f8-1f1f7.png b/web/static/images/emoji/1f1f8-1f1f7.png Binary files differnew file mode 100644 index 000000000..bde51f536 --- /dev/null +++ b/web/static/images/emoji/1f1f8-1f1f7.png diff --git a/web/static/images/emoji/1f1f8-1f1f9.png b/web/static/images/emoji/1f1f8-1f1f9.png Binary files differnew file mode 100644 index 000000000..e387f43b9 --- /dev/null +++ b/web/static/images/emoji/1f1f8-1f1f9.png diff --git a/web/static/images/emoji/1f1f8-1f1fb.png b/web/static/images/emoji/1f1f8-1f1fb.png Binary files differnew file mode 100644 index 000000000..f4a1153db --- /dev/null +++ b/web/static/images/emoji/1f1f8-1f1fb.png diff --git a/web/static/images/emoji/1f1f8-1f1fe.png b/web/static/images/emoji/1f1f8-1f1fe.png Binary files differnew file mode 100644 index 000000000..f8900079a --- /dev/null +++ b/web/static/images/emoji/1f1f8-1f1fe.png diff --git a/web/static/images/emoji/1f1f8-1f1ff.png b/web/static/images/emoji/1f1f8-1f1ff.png Binary files differnew file mode 100644 index 000000000..f80d7579d --- /dev/null +++ b/web/static/images/emoji/1f1f8-1f1ff.png diff --git a/web/static/images/emoji/1f1f9-1f1e9.png b/web/static/images/emoji/1f1f9-1f1e9.png Binary files differnew file mode 100644 index 000000000..de564e86e --- /dev/null +++ b/web/static/images/emoji/1f1f9-1f1e9.png diff --git a/web/static/images/emoji/1f1f9-1f1ec.png b/web/static/images/emoji/1f1f9-1f1ec.png Binary files differnew file mode 100644 index 000000000..e41a68ea8 --- /dev/null +++ b/web/static/images/emoji/1f1f9-1f1ec.png diff --git a/web/static/images/emoji/1f1f9-1f1ed.png b/web/static/images/emoji/1f1f9-1f1ed.png Binary files differnew file mode 100644 index 000000000..362fb1a29 --- /dev/null +++ b/web/static/images/emoji/1f1f9-1f1ed.png diff --git a/web/static/images/emoji/1f1f9-1f1ef.png b/web/static/images/emoji/1f1f9-1f1ef.png Binary files differnew file mode 100644 index 000000000..5f2072253 --- /dev/null +++ b/web/static/images/emoji/1f1f9-1f1ef.png diff --git a/web/static/images/emoji/1f1f9-1f1f1.png b/web/static/images/emoji/1f1f9-1f1f1.png Binary files differnew file mode 100644 index 000000000..da94c4289 --- /dev/null +++ b/web/static/images/emoji/1f1f9-1f1f1.png diff --git a/web/static/images/emoji/1f1f9-1f1f2.png b/web/static/images/emoji/1f1f9-1f1f2.png Binary files differnew file mode 100644 index 000000000..f0ab3b7d5 --- /dev/null +++ b/web/static/images/emoji/1f1f9-1f1f2.png diff --git a/web/static/images/emoji/1f1f9-1f1f3.png b/web/static/images/emoji/1f1f9-1f1f3.png Binary files differnew file mode 100644 index 000000000..e1f27ed7d --- /dev/null +++ b/web/static/images/emoji/1f1f9-1f1f3.png diff --git a/web/static/images/emoji/1f1f9-1f1f4.png b/web/static/images/emoji/1f1f9-1f1f4.png Binary files differnew file mode 100644 index 000000000..06c2a6f41 --- /dev/null +++ b/web/static/images/emoji/1f1f9-1f1f4.png diff --git a/web/static/images/emoji/1f1f9-1f1f7.png b/web/static/images/emoji/1f1f9-1f1f7.png Binary files differnew file mode 100644 index 000000000..720d4de2f --- /dev/null +++ b/web/static/images/emoji/1f1f9-1f1f7.png diff --git a/web/static/images/emoji/1f1f9-1f1f9.png b/web/static/images/emoji/1f1f9-1f1f9.png Binary files differnew file mode 100644 index 000000000..2d89e31b0 --- /dev/null +++ b/web/static/images/emoji/1f1f9-1f1f9.png diff --git a/web/static/images/emoji/1f1f9-1f1fb.png b/web/static/images/emoji/1f1f9-1f1fb.png Binary files differnew file mode 100644 index 000000000..765087702 --- /dev/null +++ b/web/static/images/emoji/1f1f9-1f1fb.png diff --git a/web/static/images/emoji/1f1f9-1f1fc.png b/web/static/images/emoji/1f1f9-1f1fc.png Binary files differnew file mode 100644 index 000000000..6499e47ee --- /dev/null +++ b/web/static/images/emoji/1f1f9-1f1fc.png diff --git a/web/static/images/emoji/1f1f9-1f1ff.png b/web/static/images/emoji/1f1f9-1f1ff.png Binary files differnew file mode 100644 index 000000000..9e04fcf9d --- /dev/null +++ b/web/static/images/emoji/1f1f9-1f1ff.png diff --git a/web/static/images/emoji/1f1fa-1f1e6.png b/web/static/images/emoji/1f1fa-1f1e6.png Binary files differnew file mode 100644 index 000000000..aa9745259 --- /dev/null +++ b/web/static/images/emoji/1f1fa-1f1e6.png diff --git a/web/static/images/emoji/1f1fa-1f1ec.png b/web/static/images/emoji/1f1fa-1f1ec.png Binary files differnew file mode 100644 index 000000000..f78274fcb --- /dev/null +++ b/web/static/images/emoji/1f1fa-1f1ec.png diff --git a/web/static/images/emoji/1f1fa-1f1f8.png b/web/static/images/emoji/1f1fa-1f1f8.png Binary files differnew file mode 100644 index 000000000..6c98de9be --- /dev/null +++ b/web/static/images/emoji/1f1fa-1f1f8.png diff --git a/web/static/images/emoji/1f1fa-1f1fe.png b/web/static/images/emoji/1f1fa-1f1fe.png Binary files differnew file mode 100644 index 000000000..f8caee786 --- /dev/null +++ b/web/static/images/emoji/1f1fa-1f1fe.png diff --git a/web/static/images/emoji/1f1fa-1f1ff.png b/web/static/images/emoji/1f1fa-1f1ff.png Binary files differnew file mode 100644 index 000000000..34f0c8627 --- /dev/null +++ b/web/static/images/emoji/1f1fa-1f1ff.png diff --git a/web/static/images/emoji/1f1fb-1f1e6.png b/web/static/images/emoji/1f1fb-1f1e6.png Binary files differnew file mode 100644 index 000000000..175fcaa0e --- /dev/null +++ b/web/static/images/emoji/1f1fb-1f1e6.png diff --git a/web/static/images/emoji/1f1fb-1f1e8.png b/web/static/images/emoji/1f1fb-1f1e8.png Binary files differnew file mode 100644 index 000000000..4e4efb366 --- /dev/null +++ b/web/static/images/emoji/1f1fb-1f1e8.png diff --git a/web/static/images/emoji/1f1fb-1f1ea.png b/web/static/images/emoji/1f1fb-1f1ea.png Binary files differnew file mode 100644 index 000000000..6ab199a56 --- /dev/null +++ b/web/static/images/emoji/1f1fb-1f1ea.png diff --git a/web/static/images/emoji/1f1fb-1f1ee.png b/web/static/images/emoji/1f1fb-1f1ee.png Binary files differnew file mode 100644 index 000000000..da1d092bb --- /dev/null +++ b/web/static/images/emoji/1f1fb-1f1ee.png diff --git a/web/static/images/emoji/1f1fb-1f1f3.png b/web/static/images/emoji/1f1fb-1f1f3.png Binary files differnew file mode 100644 index 000000000..ec1ca0b8f --- /dev/null +++ b/web/static/images/emoji/1f1fb-1f1f3.png diff --git a/web/static/images/emoji/1f1fb-1f1fa.png b/web/static/images/emoji/1f1fb-1f1fa.png Binary files differnew file mode 100644 index 000000000..e9345643b --- /dev/null +++ b/web/static/images/emoji/1f1fb-1f1fa.png diff --git a/web/static/images/emoji/1f1fc-1f1eb.png b/web/static/images/emoji/1f1fc-1f1eb.png Binary files differnew file mode 100644 index 000000000..367175512 --- /dev/null +++ b/web/static/images/emoji/1f1fc-1f1eb.png diff --git a/web/static/images/emoji/1f1fc-1f1f8.png b/web/static/images/emoji/1f1fc-1f1f8.png Binary files differnew file mode 100644 index 000000000..c4d6349f7 --- /dev/null +++ b/web/static/images/emoji/1f1fc-1f1f8.png diff --git a/web/static/images/emoji/1f1fd-1f1f0.png b/web/static/images/emoji/1f1fd-1f1f0.png Binary files differnew file mode 100644 index 000000000..f9953b7e2 --- /dev/null +++ b/web/static/images/emoji/1f1fd-1f1f0.png diff --git a/web/static/images/emoji/1f1fe-1f1ea.png b/web/static/images/emoji/1f1fe-1f1ea.png Binary files differnew file mode 100644 index 000000000..e62c22683 --- /dev/null +++ b/web/static/images/emoji/1f1fe-1f1ea.png diff --git a/web/static/images/emoji/1f1ff-1f1e6.png b/web/static/images/emoji/1f1ff-1f1e6.png Binary files differnew file mode 100644 index 000000000..b5f8197ca --- /dev/null +++ b/web/static/images/emoji/1f1ff-1f1e6.png diff --git a/web/static/images/emoji/1f1ff-1f1f2.png b/web/static/images/emoji/1f1ff-1f1f2.png Binary files differnew file mode 100644 index 000000000..aac8aaa96 --- /dev/null +++ b/web/static/images/emoji/1f1ff-1f1f2.png diff --git a/web/static/images/emoji/1f1ff-1f1fc.png b/web/static/images/emoji/1f1ff-1f1fc.png Binary files differnew file mode 100644 index 000000000..bf3d7162d --- /dev/null +++ b/web/static/images/emoji/1f1ff-1f1fc.png diff --git a/web/static/images/emoji/1f201.png b/web/static/images/emoji/1f201.png Binary files differnew file mode 100644 index 000000000..9f056070e --- /dev/null +++ b/web/static/images/emoji/1f201.png diff --git a/web/static/images/emoji/1f202.png b/web/static/images/emoji/1f202.png Binary files differnew file mode 100644 index 000000000..c6dafece9 --- /dev/null +++ b/web/static/images/emoji/1f202.png diff --git a/web/static/images/emoji/1f21a.png b/web/static/images/emoji/1f21a.png Binary files differnew file mode 100644 index 000000000..5f2982163 --- /dev/null +++ b/web/static/images/emoji/1f21a.png diff --git a/web/static/images/emoji/1f22f.png b/web/static/images/emoji/1f22f.png Binary files differnew file mode 100644 index 000000000..307d17ad7 --- /dev/null +++ b/web/static/images/emoji/1f22f.png diff --git a/web/static/images/emoji/1f232.png b/web/static/images/emoji/1f232.png Binary files differnew file mode 100644 index 000000000..cc617fed3 --- /dev/null +++ b/web/static/images/emoji/1f232.png diff --git a/web/static/images/emoji/1f233.png b/web/static/images/emoji/1f233.png Binary files differnew file mode 100644 index 000000000..3d0922dba --- /dev/null +++ b/web/static/images/emoji/1f233.png diff --git a/web/static/images/emoji/1f234.png b/web/static/images/emoji/1f234.png Binary files differnew file mode 100644 index 000000000..02ff557d0 --- /dev/null +++ b/web/static/images/emoji/1f234.png diff --git a/web/static/images/emoji/1f235.png b/web/static/images/emoji/1f235.png Binary files differnew file mode 100644 index 000000000..4d03236ff --- /dev/null +++ b/web/static/images/emoji/1f235.png diff --git a/web/static/images/emoji/1f236.png b/web/static/images/emoji/1f236.png Binary files differnew file mode 100644 index 000000000..b592c12ee --- /dev/null +++ b/web/static/images/emoji/1f236.png diff --git a/web/static/images/emoji/1f237.png b/web/static/images/emoji/1f237.png Binary files differnew file mode 100644 index 000000000..cf85c803b --- /dev/null +++ b/web/static/images/emoji/1f237.png diff --git a/web/static/images/emoji/1f238.png b/web/static/images/emoji/1f238.png Binary files differnew file mode 100644 index 000000000..e2c566183 --- /dev/null +++ b/web/static/images/emoji/1f238.png diff --git a/web/static/images/emoji/1f239.png b/web/static/images/emoji/1f239.png Binary files differnew file mode 100644 index 000000000..90ed437d9 --- /dev/null +++ b/web/static/images/emoji/1f239.png diff --git a/web/static/images/emoji/1f23a.png b/web/static/images/emoji/1f23a.png Binary files differnew file mode 100644 index 000000000..091841a03 --- /dev/null +++ b/web/static/images/emoji/1f23a.png diff --git a/web/static/images/emoji/1f250.png b/web/static/images/emoji/1f250.png Binary files differnew file mode 100644 index 000000000..2be0c3a78 --- /dev/null +++ b/web/static/images/emoji/1f250.png diff --git a/web/static/images/emoji/1f251.png b/web/static/images/emoji/1f251.png Binary files differnew file mode 100644 index 000000000..10cf9e29a --- /dev/null +++ b/web/static/images/emoji/1f251.png diff --git a/web/static/images/emoji/1f300.png b/web/static/images/emoji/1f300.png Binary files differnew file mode 100644 index 000000000..bd243229a --- /dev/null +++ b/web/static/images/emoji/1f300.png diff --git a/web/static/images/emoji/1f301.png b/web/static/images/emoji/1f301.png Binary files differnew file mode 100644 index 000000000..740943ab0 --- /dev/null +++ b/web/static/images/emoji/1f301.png diff --git a/web/static/images/emoji/1f302.png b/web/static/images/emoji/1f302.png Binary files differnew file mode 100644 index 000000000..00afbfb40 --- /dev/null +++ b/web/static/images/emoji/1f302.png diff --git a/web/static/images/emoji/1f303.png b/web/static/images/emoji/1f303.png Binary files differnew file mode 100644 index 000000000..b6b629204 --- /dev/null +++ b/web/static/images/emoji/1f303.png diff --git a/web/static/images/emoji/1f304.png b/web/static/images/emoji/1f304.png Binary files differnew file mode 100644 index 000000000..f8527646e --- /dev/null +++ b/web/static/images/emoji/1f304.png diff --git a/web/static/images/emoji/1f305.png b/web/static/images/emoji/1f305.png Binary files differnew file mode 100644 index 000000000..4bcc4a8ac --- /dev/null +++ b/web/static/images/emoji/1f305.png diff --git a/web/static/images/emoji/1f306.png b/web/static/images/emoji/1f306.png Binary files differnew file mode 100644 index 000000000..f64483fb6 --- /dev/null +++ b/web/static/images/emoji/1f306.png diff --git a/web/static/images/emoji/1f307.png b/web/static/images/emoji/1f307.png Binary files differnew file mode 100644 index 000000000..a65691bb0 --- /dev/null +++ b/web/static/images/emoji/1f307.png diff --git a/web/static/images/emoji/1f308.png b/web/static/images/emoji/1f308.png Binary files differnew file mode 100644 index 000000000..1d92301f9 --- /dev/null +++ b/web/static/images/emoji/1f308.png diff --git a/web/static/images/emoji/1f309.png b/web/static/images/emoji/1f309.png Binary files differnew file mode 100644 index 000000000..44cf8852e --- /dev/null +++ b/web/static/images/emoji/1f309.png diff --git a/web/static/images/emoji/1f30a.png b/web/static/images/emoji/1f30a.png Binary files differnew file mode 100644 index 000000000..172dfffdf --- /dev/null +++ b/web/static/images/emoji/1f30a.png diff --git a/web/static/images/emoji/1f30b.png b/web/static/images/emoji/1f30b.png Binary files differnew file mode 100644 index 000000000..5f2c292f0 --- /dev/null +++ b/web/static/images/emoji/1f30b.png diff --git a/web/static/images/emoji/1f30c.png b/web/static/images/emoji/1f30c.png Binary files differnew file mode 100644 index 000000000..4ee1090f4 --- /dev/null +++ b/web/static/images/emoji/1f30c.png diff --git a/web/static/images/emoji/1f30d.png b/web/static/images/emoji/1f30d.png Binary files differnew file mode 100644 index 000000000..a4bbace54 --- /dev/null +++ b/web/static/images/emoji/1f30d.png diff --git a/web/static/images/emoji/1f30e.png b/web/static/images/emoji/1f30e.png Binary files differnew file mode 100644 index 000000000..13a307f3c --- /dev/null +++ b/web/static/images/emoji/1f30e.png diff --git a/web/static/images/emoji/1f30f.png b/web/static/images/emoji/1f30f.png Binary files differnew file mode 100644 index 000000000..908e483fa --- /dev/null +++ b/web/static/images/emoji/1f30f.png diff --git a/web/static/images/emoji/1f310.png b/web/static/images/emoji/1f310.png Binary files differnew file mode 100644 index 000000000..a7af2cb1c --- /dev/null +++ b/web/static/images/emoji/1f310.png diff --git a/web/static/images/emoji/1f311.png b/web/static/images/emoji/1f311.png Binary files differnew file mode 100644 index 000000000..06e5e67f2 --- /dev/null +++ b/web/static/images/emoji/1f311.png diff --git a/web/static/images/emoji/1f312.png b/web/static/images/emoji/1f312.png Binary files differnew file mode 100644 index 000000000..7d4b5a056 --- /dev/null +++ b/web/static/images/emoji/1f312.png diff --git a/web/static/images/emoji/1f313.png b/web/static/images/emoji/1f313.png Binary files differnew file mode 100644 index 000000000..14734a42c --- /dev/null +++ b/web/static/images/emoji/1f313.png diff --git a/web/static/images/emoji/1f314.png b/web/static/images/emoji/1f314.png Binary files differnew file mode 100644 index 000000000..b53fd4288 --- /dev/null +++ b/web/static/images/emoji/1f314.png diff --git a/web/static/images/emoji/1f315.png b/web/static/images/emoji/1f315.png Binary files differnew file mode 100644 index 000000000..b936c916d --- /dev/null +++ b/web/static/images/emoji/1f315.png diff --git a/web/static/images/emoji/1f316.png b/web/static/images/emoji/1f316.png Binary files differnew file mode 100644 index 000000000..3b9240298 --- /dev/null +++ b/web/static/images/emoji/1f316.png diff --git a/web/static/images/emoji/1f317.png b/web/static/images/emoji/1f317.png Binary files differnew file mode 100644 index 000000000..85e0df65a --- /dev/null +++ b/web/static/images/emoji/1f317.png diff --git a/web/static/images/emoji/1f318.png b/web/static/images/emoji/1f318.png Binary files differnew file mode 100644 index 000000000..f9ab41111 --- /dev/null +++ b/web/static/images/emoji/1f318.png diff --git a/web/static/images/emoji/1f319.png b/web/static/images/emoji/1f319.png Binary files differnew file mode 100644 index 000000000..2a0b9f39b --- /dev/null +++ b/web/static/images/emoji/1f319.png diff --git a/web/static/images/emoji/1f31a.png b/web/static/images/emoji/1f31a.png Binary files differnew file mode 100644 index 000000000..c7b2e8011 --- /dev/null +++ b/web/static/images/emoji/1f31a.png diff --git a/web/static/images/emoji/1f31b.png b/web/static/images/emoji/1f31b.png Binary files differnew file mode 100644 index 000000000..8f10b3cfe --- /dev/null +++ b/web/static/images/emoji/1f31b.png diff --git a/web/static/images/emoji/1f31c.png b/web/static/images/emoji/1f31c.png Binary files differnew file mode 100644 index 000000000..37ecabbc7 --- /dev/null +++ b/web/static/images/emoji/1f31c.png diff --git a/web/static/images/emoji/1f31d.png b/web/static/images/emoji/1f31d.png Binary files differnew file mode 100644 index 000000000..adb3479d9 --- /dev/null +++ b/web/static/images/emoji/1f31d.png diff --git a/web/static/images/emoji/1f31e.png b/web/static/images/emoji/1f31e.png Binary files differnew file mode 100644 index 000000000..7ee45e4dd --- /dev/null +++ b/web/static/images/emoji/1f31e.png diff --git a/web/static/images/emoji/1f31f.png b/web/static/images/emoji/1f31f.png Binary files differnew file mode 100644 index 000000000..6399b9335 --- /dev/null +++ b/web/static/images/emoji/1f31f.png diff --git a/web/static/images/emoji/1f320.png b/web/static/images/emoji/1f320.png Binary files differnew file mode 100644 index 000000000..115748007 --- /dev/null +++ b/web/static/images/emoji/1f320.png diff --git a/web/static/images/emoji/1f321.png b/web/static/images/emoji/1f321.png Binary files differnew file mode 100644 index 000000000..5afccacd5 --- /dev/null +++ b/web/static/images/emoji/1f321.png diff --git a/web/static/images/emoji/1f327.png b/web/static/images/emoji/1f327.png Binary files differnew file mode 100644 index 000000000..507e1df08 --- /dev/null +++ b/web/static/images/emoji/1f327.png diff --git a/web/static/images/emoji/1f328.png b/web/static/images/emoji/1f328.png Binary files differnew file mode 100644 index 000000000..96baf5b54 --- /dev/null +++ b/web/static/images/emoji/1f328.png diff --git a/web/static/images/emoji/1f329.png b/web/static/images/emoji/1f329.png Binary files differnew file mode 100644 index 000000000..05a085e43 --- /dev/null +++ b/web/static/images/emoji/1f329.png diff --git a/web/static/images/emoji/1f32a.png b/web/static/images/emoji/1f32a.png Binary files differnew file mode 100644 index 000000000..a0ce6d55a --- /dev/null +++ b/web/static/images/emoji/1f32a.png diff --git a/web/static/images/emoji/1f32b.png b/web/static/images/emoji/1f32b.png Binary files differnew file mode 100644 index 000000000..babf8a114 --- /dev/null +++ b/web/static/images/emoji/1f32b.png diff --git a/web/static/images/emoji/1f32c.png b/web/static/images/emoji/1f32c.png Binary files differnew file mode 100644 index 000000000..1586cb2cd --- /dev/null +++ b/web/static/images/emoji/1f32c.png diff --git a/web/static/images/emoji/1f330.png b/web/static/images/emoji/1f330.png Binary files differnew file mode 100644 index 000000000..f983cb132 --- /dev/null +++ b/web/static/images/emoji/1f330.png diff --git a/web/static/images/emoji/1f331.png b/web/static/images/emoji/1f331.png Binary files differnew file mode 100644 index 000000000..eae79d274 --- /dev/null +++ b/web/static/images/emoji/1f331.png diff --git a/web/static/images/emoji/1f332.png b/web/static/images/emoji/1f332.png Binary files differnew file mode 100644 index 000000000..dd88a6934 --- /dev/null +++ b/web/static/images/emoji/1f332.png diff --git a/web/static/images/emoji/1f333.png b/web/static/images/emoji/1f333.png Binary files differnew file mode 100644 index 000000000..1a54ec34b --- /dev/null +++ b/web/static/images/emoji/1f333.png diff --git a/web/static/images/emoji/1f334.png b/web/static/images/emoji/1f334.png Binary files differnew file mode 100644 index 000000000..b18cffc94 --- /dev/null +++ b/web/static/images/emoji/1f334.png diff --git a/web/static/images/emoji/1f335.png b/web/static/images/emoji/1f335.png Binary files differnew file mode 100644 index 000000000..0204fd343 --- /dev/null +++ b/web/static/images/emoji/1f335.png diff --git a/web/static/images/emoji/1f336.png b/web/static/images/emoji/1f336.png Binary files differnew file mode 100644 index 000000000..a6db2ca09 --- /dev/null +++ b/web/static/images/emoji/1f336.png diff --git a/web/static/images/emoji/1f337.png b/web/static/images/emoji/1f337.png Binary files differnew file mode 100644 index 000000000..a05a51edf --- /dev/null +++ b/web/static/images/emoji/1f337.png diff --git a/web/static/images/emoji/1f338.png b/web/static/images/emoji/1f338.png Binary files differnew file mode 100644 index 000000000..7cd8a22e7 --- /dev/null +++ b/web/static/images/emoji/1f338.png diff --git a/web/static/images/emoji/1f339.png b/web/static/images/emoji/1f339.png Binary files differnew file mode 100644 index 000000000..2a9d77598 --- /dev/null +++ b/web/static/images/emoji/1f339.png diff --git a/web/static/images/emoji/1f33a.png b/web/static/images/emoji/1f33a.png Binary files differnew file mode 100644 index 000000000..e0fd12c95 --- /dev/null +++ b/web/static/images/emoji/1f33a.png diff --git a/web/static/images/emoji/1f33b.png b/web/static/images/emoji/1f33b.png Binary files differnew file mode 100644 index 000000000..b7cfbf82b --- /dev/null +++ b/web/static/images/emoji/1f33b.png diff --git a/web/static/images/emoji/1f33c.png b/web/static/images/emoji/1f33c.png Binary files differnew file mode 100644 index 000000000..ffc25f252 --- /dev/null +++ b/web/static/images/emoji/1f33c.png diff --git a/web/static/images/emoji/1f33d.png b/web/static/images/emoji/1f33d.png Binary files differnew file mode 100644 index 000000000..e5f2304bd --- /dev/null +++ b/web/static/images/emoji/1f33d.png diff --git a/web/static/images/emoji/1f33e.png b/web/static/images/emoji/1f33e.png Binary files differnew file mode 100644 index 000000000..9d3f454f8 --- /dev/null +++ b/web/static/images/emoji/1f33e.png diff --git a/web/static/images/emoji/1f33f.png b/web/static/images/emoji/1f33f.png Binary files differnew file mode 100644 index 000000000..cb5f8f735 --- /dev/null +++ b/web/static/images/emoji/1f33f.png diff --git a/web/static/images/emoji/1f340.png b/web/static/images/emoji/1f340.png Binary files differnew file mode 100644 index 000000000..fb11bb638 --- /dev/null +++ b/web/static/images/emoji/1f340.png diff --git a/web/static/images/emoji/1f341.png b/web/static/images/emoji/1f341.png Binary files differnew file mode 100644 index 000000000..2756537f1 --- /dev/null +++ b/web/static/images/emoji/1f341.png diff --git a/web/static/images/emoji/1f342.png b/web/static/images/emoji/1f342.png Binary files differnew file mode 100644 index 000000000..430ac0297 --- /dev/null +++ b/web/static/images/emoji/1f342.png diff --git a/web/static/images/emoji/1f343.png b/web/static/images/emoji/1f343.png Binary files differnew file mode 100644 index 000000000..569a66fac --- /dev/null +++ b/web/static/images/emoji/1f343.png diff --git a/web/static/images/emoji/1f344.png b/web/static/images/emoji/1f344.png Binary files differnew file mode 100644 index 000000000..ca7a039cb --- /dev/null +++ b/web/static/images/emoji/1f344.png diff --git a/web/static/images/emoji/1f345.png b/web/static/images/emoji/1f345.png Binary files differnew file mode 100644 index 000000000..4114c35ff --- /dev/null +++ b/web/static/images/emoji/1f345.png diff --git a/web/static/images/emoji/1f346.png b/web/static/images/emoji/1f346.png Binary files differnew file mode 100644 index 000000000..75c902569 --- /dev/null +++ b/web/static/images/emoji/1f346.png diff --git a/web/static/images/emoji/1f347.png b/web/static/images/emoji/1f347.png Binary files differnew file mode 100644 index 000000000..20b097131 --- /dev/null +++ b/web/static/images/emoji/1f347.png diff --git a/web/static/images/emoji/1f348.png b/web/static/images/emoji/1f348.png Binary files differnew file mode 100644 index 000000000..b27f00d25 --- /dev/null +++ b/web/static/images/emoji/1f348.png diff --git a/web/static/images/emoji/1f349.png b/web/static/images/emoji/1f349.png Binary files differnew file mode 100644 index 000000000..5125aea3e --- /dev/null +++ b/web/static/images/emoji/1f349.png diff --git a/web/static/images/emoji/1f34a.png b/web/static/images/emoji/1f34a.png Binary files differnew file mode 100644 index 000000000..7cb15fcf7 --- /dev/null +++ b/web/static/images/emoji/1f34a.png diff --git a/web/static/images/emoji/1f34b.png b/web/static/images/emoji/1f34b.png Binary files differnew file mode 100644 index 000000000..fa5e87b03 --- /dev/null +++ b/web/static/images/emoji/1f34b.png diff --git a/web/static/images/emoji/1f34c.png b/web/static/images/emoji/1f34c.png Binary files differnew file mode 100644 index 000000000..5e68af770 --- /dev/null +++ b/web/static/images/emoji/1f34c.png diff --git a/web/static/images/emoji/1f34d.png b/web/static/images/emoji/1f34d.png Binary files differnew file mode 100644 index 000000000..b9b9f8827 --- /dev/null +++ b/web/static/images/emoji/1f34d.png diff --git a/web/static/images/emoji/1f34e.png b/web/static/images/emoji/1f34e.png Binary files differnew file mode 100644 index 000000000..bcc5c94aa --- /dev/null +++ b/web/static/images/emoji/1f34e.png diff --git a/web/static/images/emoji/1f34f.png b/web/static/images/emoji/1f34f.png Binary files differnew file mode 100644 index 000000000..e37514773 --- /dev/null +++ b/web/static/images/emoji/1f34f.png diff --git a/web/static/images/emoji/1f350.png b/web/static/images/emoji/1f350.png Binary files differnew file mode 100644 index 000000000..20b63b461 --- /dev/null +++ b/web/static/images/emoji/1f350.png diff --git a/web/static/images/emoji/1f351.png b/web/static/images/emoji/1f351.png Binary files differnew file mode 100644 index 000000000..24409997d --- /dev/null +++ b/web/static/images/emoji/1f351.png diff --git a/web/static/images/emoji/1f352.png b/web/static/images/emoji/1f352.png Binary files differnew file mode 100644 index 000000000..982292e95 --- /dev/null +++ b/web/static/images/emoji/1f352.png diff --git a/web/static/images/emoji/1f353.png b/web/static/images/emoji/1f353.png Binary files differnew file mode 100644 index 000000000..b28837732 --- /dev/null +++ b/web/static/images/emoji/1f353.png diff --git a/web/static/images/emoji/1f354.png b/web/static/images/emoji/1f354.png Binary files differnew file mode 100644 index 000000000..b18121930 --- /dev/null +++ b/web/static/images/emoji/1f354.png diff --git a/web/static/images/emoji/1f355.png b/web/static/images/emoji/1f355.png Binary files differnew file mode 100644 index 000000000..ae1ef6266 --- /dev/null +++ b/web/static/images/emoji/1f355.png diff --git a/web/static/images/emoji/1f356.png b/web/static/images/emoji/1f356.png Binary files differnew file mode 100644 index 000000000..e9697fef1 --- /dev/null +++ b/web/static/images/emoji/1f356.png diff --git a/web/static/images/emoji/1f357.png b/web/static/images/emoji/1f357.png Binary files differnew file mode 100644 index 000000000..eafba9a3e --- /dev/null +++ b/web/static/images/emoji/1f357.png diff --git a/web/static/images/emoji/1f358.png b/web/static/images/emoji/1f358.png Binary files differnew file mode 100644 index 000000000..83382b6cb --- /dev/null +++ b/web/static/images/emoji/1f358.png diff --git a/web/static/images/emoji/1f359.png b/web/static/images/emoji/1f359.png Binary files differnew file mode 100644 index 000000000..4a24a91e2 --- /dev/null +++ b/web/static/images/emoji/1f359.png diff --git a/web/static/images/emoji/1f35a.png b/web/static/images/emoji/1f35a.png Binary files differnew file mode 100644 index 000000000..8a9076f8a --- /dev/null +++ b/web/static/images/emoji/1f35a.png diff --git a/web/static/images/emoji/1f35b.png b/web/static/images/emoji/1f35b.png Binary files differnew file mode 100644 index 000000000..0afd63ca1 --- /dev/null +++ b/web/static/images/emoji/1f35b.png diff --git a/web/static/images/emoji/1f35c.png b/web/static/images/emoji/1f35c.png Binary files differnew file mode 100644 index 000000000..787827566 --- /dev/null +++ b/web/static/images/emoji/1f35c.png diff --git a/web/static/images/emoji/1f35d.png b/web/static/images/emoji/1f35d.png Binary files differnew file mode 100644 index 000000000..ff15e877a --- /dev/null +++ b/web/static/images/emoji/1f35d.png diff --git a/web/static/images/emoji/1f35e.png b/web/static/images/emoji/1f35e.png Binary files differnew file mode 100644 index 000000000..3ca73ebc7 --- /dev/null +++ b/web/static/images/emoji/1f35e.png diff --git a/web/static/images/emoji/1f35f.png b/web/static/images/emoji/1f35f.png Binary files differnew file mode 100644 index 000000000..bed7a0153 --- /dev/null +++ b/web/static/images/emoji/1f35f.png diff --git a/web/static/images/emoji/1f360.png b/web/static/images/emoji/1f360.png Binary files differnew file mode 100644 index 000000000..7c60e76cb --- /dev/null +++ b/web/static/images/emoji/1f360.png diff --git a/web/static/images/emoji/1f361.png b/web/static/images/emoji/1f361.png Binary files differnew file mode 100644 index 000000000..d679ebc02 --- /dev/null +++ b/web/static/images/emoji/1f361.png diff --git a/web/static/images/emoji/1f362.png b/web/static/images/emoji/1f362.png Binary files differnew file mode 100644 index 000000000..8ac803517 --- /dev/null +++ b/web/static/images/emoji/1f362.png diff --git a/web/static/images/emoji/1f363.png b/web/static/images/emoji/1f363.png Binary files differnew file mode 100644 index 000000000..8c2f6826e --- /dev/null +++ b/web/static/images/emoji/1f363.png diff --git a/web/static/images/emoji/1f364.png b/web/static/images/emoji/1f364.png Binary files differnew file mode 100644 index 000000000..30c165438 --- /dev/null +++ b/web/static/images/emoji/1f364.png diff --git a/web/static/images/emoji/1f365.png b/web/static/images/emoji/1f365.png Binary files differnew file mode 100644 index 000000000..6ff94bc36 --- /dev/null +++ b/web/static/images/emoji/1f365.png diff --git a/web/static/images/emoji/1f366.png b/web/static/images/emoji/1f366.png Binary files differnew file mode 100644 index 000000000..39c2e6a8f --- /dev/null +++ b/web/static/images/emoji/1f366.png diff --git a/web/static/images/emoji/1f367.png b/web/static/images/emoji/1f367.png Binary files differnew file mode 100644 index 000000000..a14f0f4ec --- /dev/null +++ b/web/static/images/emoji/1f367.png diff --git a/web/static/images/emoji/1f368.png b/web/static/images/emoji/1f368.png Binary files differnew file mode 100644 index 000000000..5dc67b4cc --- /dev/null +++ b/web/static/images/emoji/1f368.png diff --git a/web/static/images/emoji/1f369.png b/web/static/images/emoji/1f369.png Binary files differnew file mode 100644 index 000000000..b415c96bc --- /dev/null +++ b/web/static/images/emoji/1f369.png diff --git a/web/static/images/emoji/1f36a.png b/web/static/images/emoji/1f36a.png Binary files differnew file mode 100644 index 000000000..8eb640e8d --- /dev/null +++ b/web/static/images/emoji/1f36a.png diff --git a/web/static/images/emoji/1f36b.png b/web/static/images/emoji/1f36b.png Binary files differnew file mode 100644 index 000000000..f76d0902e --- /dev/null +++ b/web/static/images/emoji/1f36b.png diff --git a/web/static/images/emoji/1f36c.png b/web/static/images/emoji/1f36c.png Binary files differnew file mode 100644 index 000000000..c067807c1 --- /dev/null +++ b/web/static/images/emoji/1f36c.png diff --git a/web/static/images/emoji/1f36d.png b/web/static/images/emoji/1f36d.png Binary files differnew file mode 100644 index 000000000..2c6a0ed4c --- /dev/null +++ b/web/static/images/emoji/1f36d.png diff --git a/web/static/images/emoji/1f36e.png b/web/static/images/emoji/1f36e.png Binary files differnew file mode 100644 index 000000000..44af92a57 --- /dev/null +++ b/web/static/images/emoji/1f36e.png diff --git a/web/static/images/emoji/1f36f.png b/web/static/images/emoji/1f36f.png Binary files differnew file mode 100644 index 000000000..a563f59c7 --- /dev/null +++ b/web/static/images/emoji/1f36f.png diff --git a/web/static/images/emoji/1f370.png b/web/static/images/emoji/1f370.png Binary files differnew file mode 100644 index 000000000..0be915e5b --- /dev/null +++ b/web/static/images/emoji/1f370.png diff --git a/web/static/images/emoji/1f371.png b/web/static/images/emoji/1f371.png Binary files differnew file mode 100644 index 000000000..58af834fd --- /dev/null +++ b/web/static/images/emoji/1f371.png diff --git a/web/static/images/emoji/1f372.png b/web/static/images/emoji/1f372.png Binary files differnew file mode 100644 index 000000000..6f8305338 --- /dev/null +++ b/web/static/images/emoji/1f372.png diff --git a/web/static/images/emoji/1f373.png b/web/static/images/emoji/1f373.png Binary files differnew file mode 100644 index 000000000..b5c090a17 --- /dev/null +++ b/web/static/images/emoji/1f373.png diff --git a/web/static/images/emoji/1f374.png b/web/static/images/emoji/1f374.png Binary files differnew file mode 100644 index 000000000..ea13776ee --- /dev/null +++ b/web/static/images/emoji/1f374.png diff --git a/web/static/images/emoji/1f375.png b/web/static/images/emoji/1f375.png Binary files differnew file mode 100644 index 000000000..b8d25a962 --- /dev/null +++ b/web/static/images/emoji/1f375.png diff --git a/web/static/images/emoji/1f376.png b/web/static/images/emoji/1f376.png Binary files differnew file mode 100644 index 000000000..40a158bfe --- /dev/null +++ b/web/static/images/emoji/1f376.png diff --git a/web/static/images/emoji/1f377.png b/web/static/images/emoji/1f377.png Binary files differnew file mode 100644 index 000000000..7aea60cc8 --- /dev/null +++ b/web/static/images/emoji/1f377.png diff --git a/web/static/images/emoji/1f378.png b/web/static/images/emoji/1f378.png Binary files differnew file mode 100644 index 000000000..abff15aa8 --- /dev/null +++ b/web/static/images/emoji/1f378.png diff --git a/web/static/images/emoji/1f379.png b/web/static/images/emoji/1f379.png Binary files differnew file mode 100644 index 000000000..34a5a385c --- /dev/null +++ b/web/static/images/emoji/1f379.png diff --git a/web/static/images/emoji/1f37a.png b/web/static/images/emoji/1f37a.png Binary files differnew file mode 100644 index 000000000..de0c3ddd9 --- /dev/null +++ b/web/static/images/emoji/1f37a.png diff --git a/web/static/images/emoji/1f37b.png b/web/static/images/emoji/1f37b.png Binary files differnew file mode 100644 index 000000000..04ba4d9f4 --- /dev/null +++ b/web/static/images/emoji/1f37b.png diff --git a/web/static/images/emoji/1f37c.png b/web/static/images/emoji/1f37c.png Binary files differnew file mode 100644 index 000000000..64e9edee3 --- /dev/null +++ b/web/static/images/emoji/1f37c.png diff --git a/web/static/images/emoji/1f37d.png b/web/static/images/emoji/1f37d.png Binary files differnew file mode 100644 index 000000000..d2ebb8435 --- /dev/null +++ b/web/static/images/emoji/1f37d.png diff --git a/web/static/images/emoji/1f380.png b/web/static/images/emoji/1f380.png Binary files differnew file mode 100644 index 000000000..ea7ae1d76 --- /dev/null +++ b/web/static/images/emoji/1f380.png diff --git a/web/static/images/emoji/1f381.png b/web/static/images/emoji/1f381.png Binary files differnew file mode 100644 index 000000000..bde801b55 --- /dev/null +++ b/web/static/images/emoji/1f381.png diff --git a/web/static/images/emoji/1f382.png b/web/static/images/emoji/1f382.png Binary files differnew file mode 100644 index 000000000..c5253b099 --- /dev/null +++ b/web/static/images/emoji/1f382.png diff --git a/web/static/images/emoji/1f383.png b/web/static/images/emoji/1f383.png Binary files differnew file mode 100644 index 000000000..0ea29490d --- /dev/null +++ b/web/static/images/emoji/1f383.png diff --git a/web/static/images/emoji/1f384.png b/web/static/images/emoji/1f384.png Binary files differnew file mode 100644 index 000000000..7674eb441 --- /dev/null +++ b/web/static/images/emoji/1f384.png diff --git a/web/static/images/emoji/1f385.png b/web/static/images/emoji/1f385.png Binary files differnew file mode 100644 index 000000000..29d63fd91 --- /dev/null +++ b/web/static/images/emoji/1f385.png diff --git a/web/static/images/emoji/1f386.png b/web/static/images/emoji/1f386.png Binary files differnew file mode 100644 index 000000000..8e081a718 --- /dev/null +++ b/web/static/images/emoji/1f386.png diff --git a/web/static/images/emoji/1f387.png b/web/static/images/emoji/1f387.png Binary files differnew file mode 100644 index 000000000..968a7172b --- /dev/null +++ b/web/static/images/emoji/1f387.png diff --git a/web/static/images/emoji/1f388.png b/web/static/images/emoji/1f388.png Binary files differnew file mode 100644 index 000000000..3cea35eba --- /dev/null +++ b/web/static/images/emoji/1f388.png diff --git a/web/static/images/emoji/1f389.png b/web/static/images/emoji/1f389.png Binary files differnew file mode 100644 index 000000000..003a66996 --- /dev/null +++ b/web/static/images/emoji/1f389.png diff --git a/web/static/images/emoji/1f38a.png b/web/static/images/emoji/1f38a.png Binary files differnew file mode 100644 index 000000000..74c61e434 --- /dev/null +++ b/web/static/images/emoji/1f38a.png diff --git a/web/static/images/emoji/1f38b.png b/web/static/images/emoji/1f38b.png Binary files differnew file mode 100644 index 000000000..ec7d8cc22 --- /dev/null +++ b/web/static/images/emoji/1f38b.png diff --git a/web/static/images/emoji/1f38c.png b/web/static/images/emoji/1f38c.png Binary files differnew file mode 100644 index 000000000..5d88b0ad0 --- /dev/null +++ b/web/static/images/emoji/1f38c.png diff --git a/web/static/images/emoji/1f38d.png b/web/static/images/emoji/1f38d.png Binary files differnew file mode 100644 index 000000000..4e27cc4c5 --- /dev/null +++ b/web/static/images/emoji/1f38d.png diff --git a/web/static/images/emoji/1f38e.png b/web/static/images/emoji/1f38e.png Binary files differnew file mode 100644 index 000000000..dcd7b9385 --- /dev/null +++ b/web/static/images/emoji/1f38e.png diff --git a/web/static/images/emoji/1f38f.png b/web/static/images/emoji/1f38f.png Binary files differnew file mode 100644 index 000000000..a6bbd0ea3 --- /dev/null +++ b/web/static/images/emoji/1f38f.png diff --git a/web/static/images/emoji/1f390.png b/web/static/images/emoji/1f390.png Binary files differnew file mode 100644 index 000000000..8aee0e8bd --- /dev/null +++ b/web/static/images/emoji/1f390.png diff --git a/web/static/images/emoji/1f391.png b/web/static/images/emoji/1f391.png Binary files differnew file mode 100644 index 000000000..8ce954451 --- /dev/null +++ b/web/static/images/emoji/1f391.png diff --git a/web/static/images/emoji/1f392.png b/web/static/images/emoji/1f392.png Binary files differnew file mode 100644 index 000000000..f9bb6c1aa --- /dev/null +++ b/web/static/images/emoji/1f392.png diff --git a/web/static/images/emoji/1f393.png b/web/static/images/emoji/1f393.png Binary files differnew file mode 100644 index 000000000..4d5744f60 --- /dev/null +++ b/web/static/images/emoji/1f393.png diff --git a/web/static/images/emoji/1f394.png b/web/static/images/emoji/1f394.png Binary files differnew file mode 100644 index 000000000..62db66cd5 --- /dev/null +++ b/web/static/images/emoji/1f394.png diff --git a/web/static/images/emoji/1f395.png b/web/static/images/emoji/1f395.png Binary files differnew file mode 100644 index 000000000..8b28b3fe7 --- /dev/null +++ b/web/static/images/emoji/1f395.png diff --git a/web/static/images/emoji/1f396.png b/web/static/images/emoji/1f396.png Binary files differnew file mode 100644 index 000000000..6558c71fc --- /dev/null +++ b/web/static/images/emoji/1f396.png diff --git a/web/static/images/emoji/1f397.png b/web/static/images/emoji/1f397.png Binary files differnew file mode 100644 index 000000000..8104604b6 --- /dev/null +++ b/web/static/images/emoji/1f397.png diff --git a/web/static/images/emoji/1f398.png b/web/static/images/emoji/1f398.png Binary files differnew file mode 100644 index 000000000..862d237a8 --- /dev/null +++ b/web/static/images/emoji/1f398.png diff --git a/web/static/images/emoji/1f399.png b/web/static/images/emoji/1f399.png Binary files differnew file mode 100644 index 000000000..7e186826e --- /dev/null +++ b/web/static/images/emoji/1f399.png diff --git a/web/static/images/emoji/1f39a.png b/web/static/images/emoji/1f39a.png Binary files differnew file mode 100644 index 000000000..389784aba --- /dev/null +++ b/web/static/images/emoji/1f39a.png diff --git a/web/static/images/emoji/1f39b.png b/web/static/images/emoji/1f39b.png Binary files differnew file mode 100644 index 000000000..ab4045342 --- /dev/null +++ b/web/static/images/emoji/1f39b.png diff --git a/web/static/images/emoji/1f39c.png b/web/static/images/emoji/1f39c.png Binary files differnew file mode 100644 index 000000000..187291ffc --- /dev/null +++ b/web/static/images/emoji/1f39c.png diff --git a/web/static/images/emoji/1f39d.png b/web/static/images/emoji/1f39d.png Binary files differnew file mode 100644 index 000000000..829ca50ce --- /dev/null +++ b/web/static/images/emoji/1f39d.png diff --git a/web/static/images/emoji/1f39e.png b/web/static/images/emoji/1f39e.png Binary files differnew file mode 100644 index 000000000..d2b9082bc --- /dev/null +++ b/web/static/images/emoji/1f39e.png diff --git a/web/static/images/emoji/1f39f.png b/web/static/images/emoji/1f39f.png Binary files differnew file mode 100644 index 000000000..e12819269 --- /dev/null +++ b/web/static/images/emoji/1f39f.png diff --git a/web/static/images/emoji/1f3a0.png b/web/static/images/emoji/1f3a0.png Binary files differnew file mode 100644 index 000000000..33f159f06 --- /dev/null +++ b/web/static/images/emoji/1f3a0.png diff --git a/web/static/images/emoji/1f3a1.png b/web/static/images/emoji/1f3a1.png Binary files differnew file mode 100644 index 000000000..56bfd87fb --- /dev/null +++ b/web/static/images/emoji/1f3a1.png diff --git a/web/static/images/emoji/1f3a2.png b/web/static/images/emoji/1f3a2.png Binary files differnew file mode 100644 index 000000000..0c506765e --- /dev/null +++ b/web/static/images/emoji/1f3a2.png diff --git a/web/static/images/emoji/1f3a3.png b/web/static/images/emoji/1f3a3.png Binary files differnew file mode 100644 index 000000000..270a011dd --- /dev/null +++ b/web/static/images/emoji/1f3a3.png diff --git a/web/static/images/emoji/1f3a4.png b/web/static/images/emoji/1f3a4.png Binary files differnew file mode 100644 index 000000000..346b8967c --- /dev/null +++ b/web/static/images/emoji/1f3a4.png diff --git a/web/static/images/emoji/1f3a5.png b/web/static/images/emoji/1f3a5.png Binary files differnew file mode 100644 index 000000000..077458b67 --- /dev/null +++ b/web/static/images/emoji/1f3a5.png diff --git a/web/static/images/emoji/1f3a6.png b/web/static/images/emoji/1f3a6.png Binary files differnew file mode 100644 index 000000000..972b57df7 --- /dev/null +++ b/web/static/images/emoji/1f3a6.png diff --git a/web/static/images/emoji/1f3a7.png b/web/static/images/emoji/1f3a7.png Binary files differnew file mode 100644 index 000000000..3335d4060 --- /dev/null +++ b/web/static/images/emoji/1f3a7.png diff --git a/web/static/images/emoji/1f3a8.png b/web/static/images/emoji/1f3a8.png Binary files differnew file mode 100644 index 000000000..05116974d --- /dev/null +++ b/web/static/images/emoji/1f3a8.png diff --git a/web/static/images/emoji/1f3a9.png b/web/static/images/emoji/1f3a9.png Binary files differnew file mode 100644 index 000000000..a945ccb8b --- /dev/null +++ b/web/static/images/emoji/1f3a9.png diff --git a/web/static/images/emoji/1f3aa.png b/web/static/images/emoji/1f3aa.png Binary files differnew file mode 100644 index 000000000..713b4f085 --- /dev/null +++ b/web/static/images/emoji/1f3aa.png diff --git a/web/static/images/emoji/1f3ab.png b/web/static/images/emoji/1f3ab.png Binary files differnew file mode 100644 index 000000000..1e697cab6 --- /dev/null +++ b/web/static/images/emoji/1f3ab.png diff --git a/web/static/images/emoji/1f3ac.png b/web/static/images/emoji/1f3ac.png Binary files differnew file mode 100644 index 000000000..54bbba809 --- /dev/null +++ b/web/static/images/emoji/1f3ac.png diff --git a/web/static/images/emoji/1f3ad.png b/web/static/images/emoji/1f3ad.png Binary files differnew file mode 100644 index 000000000..97a5bb7fe --- /dev/null +++ b/web/static/images/emoji/1f3ad.png diff --git a/web/static/images/emoji/1f3ae.png b/web/static/images/emoji/1f3ae.png Binary files differnew file mode 100644 index 000000000..702832e99 --- /dev/null +++ b/web/static/images/emoji/1f3ae.png diff --git a/web/static/images/emoji/1f3af.png b/web/static/images/emoji/1f3af.png Binary files differnew file mode 100644 index 000000000..527b6a94e --- /dev/null +++ b/web/static/images/emoji/1f3af.png diff --git a/web/static/images/emoji/1f3b0.png b/web/static/images/emoji/1f3b0.png Binary files differnew file mode 100644 index 000000000..81db7b1c0 --- /dev/null +++ b/web/static/images/emoji/1f3b0.png diff --git a/web/static/images/emoji/1f3b1.png b/web/static/images/emoji/1f3b1.png Binary files differnew file mode 100644 index 000000000..7bf80b6d7 --- /dev/null +++ b/web/static/images/emoji/1f3b1.png diff --git a/web/static/images/emoji/1f3b2.png b/web/static/images/emoji/1f3b2.png Binary files differnew file mode 100644 index 000000000..7723d290b --- /dev/null +++ b/web/static/images/emoji/1f3b2.png diff --git a/web/static/images/emoji/1f3b3.png b/web/static/images/emoji/1f3b3.png Binary files differnew file mode 100644 index 000000000..e41edfbdb --- /dev/null +++ b/web/static/images/emoji/1f3b3.png diff --git a/web/static/images/emoji/1f3b4.png b/web/static/images/emoji/1f3b4.png Binary files differnew file mode 100644 index 000000000..b5dff4687 --- /dev/null +++ b/web/static/images/emoji/1f3b4.png diff --git a/web/static/images/emoji/1f3b5.png b/web/static/images/emoji/1f3b5.png Binary files differnew file mode 100644 index 000000000..f9bc86e4e --- /dev/null +++ b/web/static/images/emoji/1f3b5.png diff --git a/web/static/images/emoji/1f3b6.png b/web/static/images/emoji/1f3b6.png Binary files differnew file mode 100644 index 000000000..df2810aa4 --- /dev/null +++ b/web/static/images/emoji/1f3b6.png diff --git a/web/static/images/emoji/1f3b7.png b/web/static/images/emoji/1f3b7.png Binary files differnew file mode 100644 index 000000000..63446652f --- /dev/null +++ b/web/static/images/emoji/1f3b7.png diff --git a/web/static/images/emoji/1f3b8.png b/web/static/images/emoji/1f3b8.png Binary files differnew file mode 100644 index 000000000..ab62a7fbb --- /dev/null +++ b/web/static/images/emoji/1f3b8.png diff --git a/web/static/images/emoji/1f3b9.png b/web/static/images/emoji/1f3b9.png Binary files differnew file mode 100644 index 000000000..c6c029920 --- /dev/null +++ b/web/static/images/emoji/1f3b9.png diff --git a/web/static/images/emoji/1f3ba.png b/web/static/images/emoji/1f3ba.png Binary files differnew file mode 100644 index 000000000..c2270ccbf --- /dev/null +++ b/web/static/images/emoji/1f3ba.png diff --git a/web/static/images/emoji/1f3bb.png b/web/static/images/emoji/1f3bb.png Binary files differnew file mode 100644 index 000000000..0bb8e0a10 --- /dev/null +++ b/web/static/images/emoji/1f3bb.png diff --git a/web/static/images/emoji/1f3bc.png b/web/static/images/emoji/1f3bc.png Binary files differnew file mode 100644 index 000000000..ae50ab288 --- /dev/null +++ b/web/static/images/emoji/1f3bc.png diff --git a/web/static/images/emoji/1f3bd.png b/web/static/images/emoji/1f3bd.png Binary files differnew file mode 100644 index 000000000..e49632dad --- /dev/null +++ b/web/static/images/emoji/1f3bd.png diff --git a/web/static/images/emoji/1f3be.png b/web/static/images/emoji/1f3be.png Binary files differnew file mode 100644 index 000000000..cade3a566 --- /dev/null +++ b/web/static/images/emoji/1f3be.png diff --git a/web/static/images/emoji/1f3bf.png b/web/static/images/emoji/1f3bf.png Binary files differnew file mode 100644 index 000000000..ac8151619 --- /dev/null +++ b/web/static/images/emoji/1f3bf.png diff --git a/web/static/images/emoji/1f3c0.png b/web/static/images/emoji/1f3c0.png Binary files differnew file mode 100644 index 000000000..e9b1c735a --- /dev/null +++ b/web/static/images/emoji/1f3c0.png diff --git a/web/static/images/emoji/1f3c1.png b/web/static/images/emoji/1f3c1.png Binary files differnew file mode 100644 index 000000000..9f1d564f6 --- /dev/null +++ b/web/static/images/emoji/1f3c1.png diff --git a/web/static/images/emoji/1f3c2.png b/web/static/images/emoji/1f3c2.png Binary files differnew file mode 100644 index 000000000..076c48889 --- /dev/null +++ b/web/static/images/emoji/1f3c2.png diff --git a/web/static/images/emoji/1f3c3.png b/web/static/images/emoji/1f3c3.png Binary files differnew file mode 100644 index 000000000..8dcc38400 --- /dev/null +++ b/web/static/images/emoji/1f3c3.png diff --git a/web/static/images/emoji/1f3c4.png b/web/static/images/emoji/1f3c4.png Binary files differnew file mode 100644 index 000000000..74b216a67 --- /dev/null +++ b/web/static/images/emoji/1f3c4.png diff --git a/web/static/images/emoji/1f3c5.png b/web/static/images/emoji/1f3c5.png Binary files differnew file mode 100644 index 000000000..1bf04b7c4 --- /dev/null +++ b/web/static/images/emoji/1f3c5.png diff --git a/web/static/images/emoji/1f3c6.png b/web/static/images/emoji/1f3c6.png Binary files differnew file mode 100644 index 000000000..38429fe19 --- /dev/null +++ b/web/static/images/emoji/1f3c6.png diff --git a/web/static/images/emoji/1f3c7.png b/web/static/images/emoji/1f3c7.png Binary files differnew file mode 100644 index 000000000..a7abb355f --- /dev/null +++ b/web/static/images/emoji/1f3c7.png diff --git a/web/static/images/emoji/1f3c8.png b/web/static/images/emoji/1f3c8.png Binary files differnew file mode 100644 index 000000000..24b5673b0 --- /dev/null +++ b/web/static/images/emoji/1f3c8.png diff --git a/web/static/images/emoji/1f3c9.png b/web/static/images/emoji/1f3c9.png Binary files differnew file mode 100644 index 000000000..3f72e529a --- /dev/null +++ b/web/static/images/emoji/1f3c9.png diff --git a/web/static/images/emoji/1f3ca.png b/web/static/images/emoji/1f3ca.png Binary files differnew file mode 100644 index 000000000..9f3e63702 --- /dev/null +++ b/web/static/images/emoji/1f3ca.png diff --git a/web/static/images/emoji/1f3cb.png b/web/static/images/emoji/1f3cb.png Binary files differnew file mode 100644 index 000000000..db6bb3d51 --- /dev/null +++ b/web/static/images/emoji/1f3cb.png diff --git a/web/static/images/emoji/1f3cc.png b/web/static/images/emoji/1f3cc.png Binary files differnew file mode 100644 index 000000000..9aa2f036f --- /dev/null +++ b/web/static/images/emoji/1f3cc.png diff --git a/web/static/images/emoji/1f3cd.png b/web/static/images/emoji/1f3cd.png Binary files differnew file mode 100644 index 000000000..8dcffc8f9 --- /dev/null +++ b/web/static/images/emoji/1f3cd.png diff --git a/web/static/images/emoji/1f3ce.png b/web/static/images/emoji/1f3ce.png Binary files differnew file mode 100644 index 000000000..0f76828f6 --- /dev/null +++ b/web/static/images/emoji/1f3ce.png diff --git a/web/static/images/emoji/1f3d4.png b/web/static/images/emoji/1f3d4.png Binary files differnew file mode 100644 index 000000000..f9071adec --- /dev/null +++ b/web/static/images/emoji/1f3d4.png diff --git a/web/static/images/emoji/1f3d5.png b/web/static/images/emoji/1f3d5.png Binary files differnew file mode 100644 index 000000000..d45a07fcf --- /dev/null +++ b/web/static/images/emoji/1f3d5.png diff --git a/web/static/images/emoji/1f3d6.png b/web/static/images/emoji/1f3d6.png Binary files differnew file mode 100644 index 000000000..0e244c164 --- /dev/null +++ b/web/static/images/emoji/1f3d6.png diff --git a/web/static/images/emoji/1f3d7.png b/web/static/images/emoji/1f3d7.png Binary files differnew file mode 100644 index 000000000..05a287fee --- /dev/null +++ b/web/static/images/emoji/1f3d7.png diff --git a/web/static/images/emoji/1f3d8.png b/web/static/images/emoji/1f3d8.png Binary files differnew file mode 100644 index 000000000..b3dde7347 --- /dev/null +++ b/web/static/images/emoji/1f3d8.png diff --git a/web/static/images/emoji/1f3d9.png b/web/static/images/emoji/1f3d9.png Binary files differnew file mode 100644 index 000000000..4d331db74 --- /dev/null +++ b/web/static/images/emoji/1f3d9.png diff --git a/web/static/images/emoji/1f3da.png b/web/static/images/emoji/1f3da.png Binary files differnew file mode 100644 index 000000000..316e082d1 --- /dev/null +++ b/web/static/images/emoji/1f3da.png diff --git a/web/static/images/emoji/1f3db.png b/web/static/images/emoji/1f3db.png Binary files differnew file mode 100644 index 000000000..71150c7c5 --- /dev/null +++ b/web/static/images/emoji/1f3db.png diff --git a/web/static/images/emoji/1f3dc.png b/web/static/images/emoji/1f3dc.png Binary files differnew file mode 100644 index 000000000..b627c829b --- /dev/null +++ b/web/static/images/emoji/1f3dc.png diff --git a/web/static/images/emoji/1f3dd.png b/web/static/images/emoji/1f3dd.png Binary files differnew file mode 100644 index 000000000..946ef26a5 --- /dev/null +++ b/web/static/images/emoji/1f3dd.png diff --git a/web/static/images/emoji/1f3de.png b/web/static/images/emoji/1f3de.png Binary files differnew file mode 100644 index 000000000..ff6fc0754 --- /dev/null +++ b/web/static/images/emoji/1f3de.png diff --git a/web/static/images/emoji/1f3df.png b/web/static/images/emoji/1f3df.png Binary files differnew file mode 100644 index 000000000..d1c925d35 --- /dev/null +++ b/web/static/images/emoji/1f3df.png diff --git a/web/static/images/emoji/1f3e0.png b/web/static/images/emoji/1f3e0.png Binary files differnew file mode 100644 index 000000000..90551d823 --- /dev/null +++ b/web/static/images/emoji/1f3e0.png diff --git a/web/static/images/emoji/1f3e1.png b/web/static/images/emoji/1f3e1.png Binary files differnew file mode 100644 index 000000000..b00186c46 --- /dev/null +++ b/web/static/images/emoji/1f3e1.png diff --git a/web/static/images/emoji/1f3e2.png b/web/static/images/emoji/1f3e2.png Binary files differnew file mode 100644 index 000000000..52a6bb4a4 --- /dev/null +++ b/web/static/images/emoji/1f3e2.png diff --git a/web/static/images/emoji/1f3e3.png b/web/static/images/emoji/1f3e3.png Binary files differnew file mode 100644 index 000000000..f819dac89 --- /dev/null +++ b/web/static/images/emoji/1f3e3.png diff --git a/web/static/images/emoji/1f3e4.png b/web/static/images/emoji/1f3e4.png Binary files differnew file mode 100644 index 000000000..b1cc0ddb8 --- /dev/null +++ b/web/static/images/emoji/1f3e4.png diff --git a/web/static/images/emoji/1f3e5.png b/web/static/images/emoji/1f3e5.png Binary files differnew file mode 100644 index 000000000..9a53371c1 --- /dev/null +++ b/web/static/images/emoji/1f3e5.png diff --git a/web/static/images/emoji/1f3e6.png b/web/static/images/emoji/1f3e6.png Binary files differnew file mode 100644 index 000000000..5cde6caa9 --- /dev/null +++ b/web/static/images/emoji/1f3e6.png diff --git a/web/static/images/emoji/1f3e7.png b/web/static/images/emoji/1f3e7.png Binary files differnew file mode 100644 index 000000000..0769e688b --- /dev/null +++ b/web/static/images/emoji/1f3e7.png diff --git a/web/static/images/emoji/1f3e8.png b/web/static/images/emoji/1f3e8.png Binary files differnew file mode 100644 index 000000000..7a22e341f --- /dev/null +++ b/web/static/images/emoji/1f3e8.png diff --git a/web/static/images/emoji/1f3e9.png b/web/static/images/emoji/1f3e9.png Binary files differnew file mode 100644 index 000000000..e3b893388 --- /dev/null +++ b/web/static/images/emoji/1f3e9.png diff --git a/web/static/images/emoji/1f3ea.png b/web/static/images/emoji/1f3ea.png Binary files differnew file mode 100644 index 000000000..fbfc257ee --- /dev/null +++ b/web/static/images/emoji/1f3ea.png diff --git a/web/static/images/emoji/1f3eb.png b/web/static/images/emoji/1f3eb.png Binary files differnew file mode 100644 index 000000000..f8e0814e0 --- /dev/null +++ b/web/static/images/emoji/1f3eb.png diff --git a/web/static/images/emoji/1f3ec.png b/web/static/images/emoji/1f3ec.png Binary files differnew file mode 100644 index 000000000..bc83c16f6 --- /dev/null +++ b/web/static/images/emoji/1f3ec.png diff --git a/web/static/images/emoji/1f3ed.png b/web/static/images/emoji/1f3ed.png Binary files differnew file mode 100644 index 000000000..e2d70133b --- /dev/null +++ b/web/static/images/emoji/1f3ed.png diff --git a/web/static/images/emoji/1f3ee.png b/web/static/images/emoji/1f3ee.png Binary files differnew file mode 100644 index 000000000..02345bc3e --- /dev/null +++ b/web/static/images/emoji/1f3ee.png diff --git a/web/static/images/emoji/1f3ef.png b/web/static/images/emoji/1f3ef.png Binary files differnew file mode 100644 index 000000000..ebdeecf6a --- /dev/null +++ b/web/static/images/emoji/1f3ef.png diff --git a/web/static/images/emoji/1f3f0.png b/web/static/images/emoji/1f3f0.png Binary files differnew file mode 100644 index 000000000..35cdcf722 --- /dev/null +++ b/web/static/images/emoji/1f3f0.png diff --git a/web/static/images/emoji/1f3f1.png b/web/static/images/emoji/1f3f1.png Binary files differnew file mode 100644 index 000000000..dc2f36cd3 --- /dev/null +++ b/web/static/images/emoji/1f3f1.png diff --git a/web/static/images/emoji/1f3f2.png b/web/static/images/emoji/1f3f2.png Binary files differnew file mode 100644 index 000000000..26f5a503e --- /dev/null +++ b/web/static/images/emoji/1f3f2.png diff --git a/web/static/images/emoji/1f3f3.png b/web/static/images/emoji/1f3f3.png Binary files differnew file mode 100644 index 000000000..bf6124fab --- /dev/null +++ b/web/static/images/emoji/1f3f3.png diff --git a/web/static/images/emoji/1f3f4.png b/web/static/images/emoji/1f3f4.png Binary files differnew file mode 100644 index 000000000..d48e98fe0 --- /dev/null +++ b/web/static/images/emoji/1f3f4.png diff --git a/web/static/images/emoji/1f3f5.png b/web/static/images/emoji/1f3f5.png Binary files differnew file mode 100644 index 000000000..8312eb177 --- /dev/null +++ b/web/static/images/emoji/1f3f5.png diff --git a/web/static/images/emoji/1f3f6.png b/web/static/images/emoji/1f3f6.png Binary files differnew file mode 100644 index 000000000..d16b265aa --- /dev/null +++ b/web/static/images/emoji/1f3f6.png diff --git a/web/static/images/emoji/1f3f7.png b/web/static/images/emoji/1f3f7.png Binary files differnew file mode 100644 index 000000000..411124e2c --- /dev/null +++ b/web/static/images/emoji/1f3f7.png diff --git a/web/static/images/emoji/1f400.png b/web/static/images/emoji/1f400.png Binary files differnew file mode 100644 index 000000000..58c2d79d8 --- /dev/null +++ b/web/static/images/emoji/1f400.png diff --git a/web/static/images/emoji/1f401.png b/web/static/images/emoji/1f401.png Binary files differnew file mode 100644 index 000000000..5b1b1137f --- /dev/null +++ b/web/static/images/emoji/1f401.png diff --git a/web/static/images/emoji/1f402.png b/web/static/images/emoji/1f402.png Binary files differnew file mode 100644 index 000000000..e1688630c --- /dev/null +++ b/web/static/images/emoji/1f402.png diff --git a/web/static/images/emoji/1f403.png b/web/static/images/emoji/1f403.png Binary files differnew file mode 100644 index 000000000..2c8fa68e8 --- /dev/null +++ b/web/static/images/emoji/1f403.png diff --git a/web/static/images/emoji/1f404.png b/web/static/images/emoji/1f404.png Binary files differnew file mode 100644 index 000000000..b3767f6c5 --- /dev/null +++ b/web/static/images/emoji/1f404.png diff --git a/web/static/images/emoji/1f405.png b/web/static/images/emoji/1f405.png Binary files differnew file mode 100644 index 000000000..c7910315e --- /dev/null +++ b/web/static/images/emoji/1f405.png diff --git a/web/static/images/emoji/1f406.png b/web/static/images/emoji/1f406.png Binary files differnew file mode 100644 index 000000000..eb16aa9c6 --- /dev/null +++ b/web/static/images/emoji/1f406.png diff --git a/web/static/images/emoji/1f407.png b/web/static/images/emoji/1f407.png Binary files differnew file mode 100644 index 000000000..ab2fae0fc --- /dev/null +++ b/web/static/images/emoji/1f407.png diff --git a/web/static/images/emoji/1f408.png b/web/static/images/emoji/1f408.png Binary files differnew file mode 100644 index 000000000..79f06af48 --- /dev/null +++ b/web/static/images/emoji/1f408.png diff --git a/web/static/images/emoji/1f409.png b/web/static/images/emoji/1f409.png Binary files differnew file mode 100644 index 000000000..b5b635770 --- /dev/null +++ b/web/static/images/emoji/1f409.png diff --git a/web/static/images/emoji/1f40a.png b/web/static/images/emoji/1f40a.png Binary files differnew file mode 100644 index 000000000..3b53cacf8 --- /dev/null +++ b/web/static/images/emoji/1f40a.png diff --git a/web/static/images/emoji/1f40b.png b/web/static/images/emoji/1f40b.png Binary files differnew file mode 100644 index 000000000..181860530 --- /dev/null +++ b/web/static/images/emoji/1f40b.png diff --git a/web/static/images/emoji/1f40c.png b/web/static/images/emoji/1f40c.png Binary files differnew file mode 100644 index 000000000..97f67fb2d --- /dev/null +++ b/web/static/images/emoji/1f40c.png diff --git a/web/static/images/emoji/1f40d.png b/web/static/images/emoji/1f40d.png Binary files differnew file mode 100644 index 000000000..dae731e22 --- /dev/null +++ b/web/static/images/emoji/1f40d.png diff --git a/web/static/images/emoji/1f40e.png b/web/static/images/emoji/1f40e.png Binary files differnew file mode 100644 index 000000000..fadf8f2bf --- /dev/null +++ b/web/static/images/emoji/1f40e.png diff --git a/web/static/images/emoji/1f40f.png b/web/static/images/emoji/1f40f.png Binary files differnew file mode 100644 index 000000000..17af1b9a5 --- /dev/null +++ b/web/static/images/emoji/1f40f.png diff --git a/web/static/images/emoji/1f410.png b/web/static/images/emoji/1f410.png Binary files differnew file mode 100644 index 000000000..41210e5fa --- /dev/null +++ b/web/static/images/emoji/1f410.png diff --git a/web/static/images/emoji/1f411.png b/web/static/images/emoji/1f411.png Binary files differnew file mode 100644 index 000000000..e47d6eda8 --- /dev/null +++ b/web/static/images/emoji/1f411.png diff --git a/web/static/images/emoji/1f412.png b/web/static/images/emoji/1f412.png Binary files differnew file mode 100644 index 000000000..33e542ba6 --- /dev/null +++ b/web/static/images/emoji/1f412.png diff --git a/web/static/images/emoji/1f413.png b/web/static/images/emoji/1f413.png Binary files differnew file mode 100644 index 000000000..798542a0e --- /dev/null +++ b/web/static/images/emoji/1f413.png diff --git a/web/static/images/emoji/1f414.png b/web/static/images/emoji/1f414.png Binary files differnew file mode 100644 index 000000000..182ffb343 --- /dev/null +++ b/web/static/images/emoji/1f414.png diff --git a/web/static/images/emoji/1f415.png b/web/static/images/emoji/1f415.png Binary files differnew file mode 100644 index 000000000..7057ffe66 --- /dev/null +++ b/web/static/images/emoji/1f415.png diff --git a/web/static/images/emoji/1f416.png b/web/static/images/emoji/1f416.png Binary files differnew file mode 100644 index 000000000..de1147954 --- /dev/null +++ b/web/static/images/emoji/1f416.png diff --git a/web/static/images/emoji/1f417.png b/web/static/images/emoji/1f417.png Binary files differnew file mode 100644 index 000000000..2ccb92fd1 --- /dev/null +++ b/web/static/images/emoji/1f417.png diff --git a/web/static/images/emoji/1f418.png b/web/static/images/emoji/1f418.png Binary files differnew file mode 100644 index 000000000..af079ec4d --- /dev/null +++ b/web/static/images/emoji/1f418.png diff --git a/web/static/images/emoji/1f419.png b/web/static/images/emoji/1f419.png Binary files differnew file mode 100644 index 000000000..8add7143e --- /dev/null +++ b/web/static/images/emoji/1f419.png diff --git a/web/static/images/emoji/1f41a.png b/web/static/images/emoji/1f41a.png Binary files differnew file mode 100644 index 000000000..01bc086fa --- /dev/null +++ b/web/static/images/emoji/1f41a.png diff --git a/web/static/images/emoji/1f41b.png b/web/static/images/emoji/1f41b.png Binary files differnew file mode 100644 index 000000000..06b35cf5a --- /dev/null +++ b/web/static/images/emoji/1f41b.png diff --git a/web/static/images/emoji/1f41c.png b/web/static/images/emoji/1f41c.png Binary files differnew file mode 100644 index 000000000..1b6ba80c0 --- /dev/null +++ b/web/static/images/emoji/1f41c.png diff --git a/web/static/images/emoji/1f41d.png b/web/static/images/emoji/1f41d.png Binary files differnew file mode 100644 index 000000000..e67b7703b --- /dev/null +++ b/web/static/images/emoji/1f41d.png diff --git a/web/static/images/emoji/1f41e.png b/web/static/images/emoji/1f41e.png Binary files differnew file mode 100644 index 000000000..c35380926 --- /dev/null +++ b/web/static/images/emoji/1f41e.png diff --git a/web/static/images/emoji/1f41f.png b/web/static/images/emoji/1f41f.png Binary files differnew file mode 100644 index 000000000..cb7b896d6 --- /dev/null +++ b/web/static/images/emoji/1f41f.png diff --git a/web/static/images/emoji/1f420.png b/web/static/images/emoji/1f420.png Binary files differnew file mode 100644 index 000000000..1904f61be --- /dev/null +++ b/web/static/images/emoji/1f420.png diff --git a/web/static/images/emoji/1f421.png b/web/static/images/emoji/1f421.png Binary files differnew file mode 100644 index 000000000..7529feff7 --- /dev/null +++ b/web/static/images/emoji/1f421.png diff --git a/web/static/images/emoji/1f422.png b/web/static/images/emoji/1f422.png Binary files differnew file mode 100644 index 000000000..c3a628c0a --- /dev/null +++ b/web/static/images/emoji/1f422.png diff --git a/web/static/images/emoji/1f423.png b/web/static/images/emoji/1f423.png Binary files differnew file mode 100644 index 000000000..1e688c228 --- /dev/null +++ b/web/static/images/emoji/1f423.png diff --git a/web/static/images/emoji/1f424.png b/web/static/images/emoji/1f424.png Binary files differnew file mode 100644 index 000000000..66785c880 --- /dev/null +++ b/web/static/images/emoji/1f424.png diff --git a/web/static/images/emoji/1f425.png b/web/static/images/emoji/1f425.png Binary files differnew file mode 100644 index 000000000..de82199dc --- /dev/null +++ b/web/static/images/emoji/1f425.png diff --git a/web/static/images/emoji/1f426.png b/web/static/images/emoji/1f426.png Binary files differnew file mode 100644 index 000000000..077178a42 --- /dev/null +++ b/web/static/images/emoji/1f426.png diff --git a/web/static/images/emoji/1f427.png b/web/static/images/emoji/1f427.png Binary files differnew file mode 100644 index 000000000..1789bf222 --- /dev/null +++ b/web/static/images/emoji/1f427.png diff --git a/web/static/images/emoji/1f428.png b/web/static/images/emoji/1f428.png Binary files differnew file mode 100644 index 000000000..928143905 --- /dev/null +++ b/web/static/images/emoji/1f428.png diff --git a/web/static/images/emoji/1f429.png b/web/static/images/emoji/1f429.png Binary files differnew file mode 100644 index 000000000..a69f6388d --- /dev/null +++ b/web/static/images/emoji/1f429.png diff --git a/web/static/images/emoji/1f42a.png b/web/static/images/emoji/1f42a.png Binary files differnew file mode 100644 index 000000000..e881a8b5f --- /dev/null +++ b/web/static/images/emoji/1f42a.png diff --git a/web/static/images/emoji/1f42b.png b/web/static/images/emoji/1f42b.png Binary files differnew file mode 100644 index 000000000..f332bf333 --- /dev/null +++ b/web/static/images/emoji/1f42b.png diff --git a/web/static/images/emoji/1f42c.png b/web/static/images/emoji/1f42c.png Binary files differnew file mode 100644 index 000000000..4dde4cc13 --- /dev/null +++ b/web/static/images/emoji/1f42c.png diff --git a/web/static/images/emoji/1f42d.png b/web/static/images/emoji/1f42d.png Binary files differnew file mode 100644 index 000000000..a8e5eb73f --- /dev/null +++ b/web/static/images/emoji/1f42d.png diff --git a/web/static/images/emoji/1f42e.png b/web/static/images/emoji/1f42e.png Binary files differnew file mode 100644 index 000000000..15196a069 --- /dev/null +++ b/web/static/images/emoji/1f42e.png diff --git a/web/static/images/emoji/1f42f.png b/web/static/images/emoji/1f42f.png Binary files differnew file mode 100644 index 000000000..64a19cd61 --- /dev/null +++ b/web/static/images/emoji/1f42f.png diff --git a/web/static/images/emoji/1f430.png b/web/static/images/emoji/1f430.png Binary files differnew file mode 100644 index 000000000..e6203c052 --- /dev/null +++ b/web/static/images/emoji/1f430.png diff --git a/web/static/images/emoji/1f431.png b/web/static/images/emoji/1f431.png Binary files differnew file mode 100644 index 000000000..126d2ef79 --- /dev/null +++ b/web/static/images/emoji/1f431.png diff --git a/web/static/images/emoji/1f432.png b/web/static/images/emoji/1f432.png Binary files differnew file mode 100644 index 000000000..aba3bd471 --- /dev/null +++ b/web/static/images/emoji/1f432.png diff --git a/web/static/images/emoji/1f433.png b/web/static/images/emoji/1f433.png Binary files differnew file mode 100644 index 000000000..cf1ecee86 --- /dev/null +++ b/web/static/images/emoji/1f433.png diff --git a/web/static/images/emoji/1f434.png b/web/static/images/emoji/1f434.png Binary files differnew file mode 100644 index 000000000..90b955506 --- /dev/null +++ b/web/static/images/emoji/1f434.png diff --git a/web/static/images/emoji/1f435.png b/web/static/images/emoji/1f435.png Binary files differnew file mode 100644 index 000000000..a753bae1c --- /dev/null +++ b/web/static/images/emoji/1f435.png diff --git a/web/static/images/emoji/1f436.png b/web/static/images/emoji/1f436.png Binary files differnew file mode 100644 index 000000000..3c107deb4 --- /dev/null +++ b/web/static/images/emoji/1f436.png diff --git a/web/static/images/emoji/1f437.png b/web/static/images/emoji/1f437.png Binary files differnew file mode 100644 index 000000000..e2ef71cc0 --- /dev/null +++ b/web/static/images/emoji/1f437.png diff --git a/web/static/images/emoji/1f438.png b/web/static/images/emoji/1f438.png Binary files differnew file mode 100644 index 000000000..726d0280b --- /dev/null +++ b/web/static/images/emoji/1f438.png diff --git a/web/static/images/emoji/1f439.png b/web/static/images/emoji/1f439.png Binary files differnew file mode 100644 index 000000000..b19be3738 --- /dev/null +++ b/web/static/images/emoji/1f439.png diff --git a/web/static/images/emoji/1f43a.png b/web/static/images/emoji/1f43a.png Binary files differnew file mode 100644 index 000000000..46f054c62 --- /dev/null +++ b/web/static/images/emoji/1f43a.png diff --git a/web/static/images/emoji/1f43b.png b/web/static/images/emoji/1f43b.png Binary files differnew file mode 100644 index 000000000..32387186f --- /dev/null +++ b/web/static/images/emoji/1f43b.png diff --git a/web/static/images/emoji/1f43c.png b/web/static/images/emoji/1f43c.png Binary files differnew file mode 100644 index 000000000..a1ded2a6c --- /dev/null +++ b/web/static/images/emoji/1f43c.png diff --git a/web/static/images/emoji/1f43d.png b/web/static/images/emoji/1f43d.png Binary files differnew file mode 100644 index 000000000..a704c5a41 --- /dev/null +++ b/web/static/images/emoji/1f43d.png diff --git a/web/static/images/emoji/1f43e.png b/web/static/images/emoji/1f43e.png Binary files differnew file mode 100644 index 000000000..b36eba864 --- /dev/null +++ b/web/static/images/emoji/1f43e.png diff --git a/web/static/images/emoji/1f43f.png b/web/static/images/emoji/1f43f.png Binary files differnew file mode 100644 index 000000000..2881d09be --- /dev/null +++ b/web/static/images/emoji/1f43f.png diff --git a/web/static/images/emoji/1f440.png b/web/static/images/emoji/1f440.png Binary files differnew file mode 100644 index 000000000..d9a6163f4 --- /dev/null +++ b/web/static/images/emoji/1f440.png diff --git a/web/static/images/emoji/1f441.png b/web/static/images/emoji/1f441.png Binary files differnew file mode 100644 index 000000000..66182c9f1 --- /dev/null +++ b/web/static/images/emoji/1f441.png diff --git a/web/static/images/emoji/1f442.png b/web/static/images/emoji/1f442.png Binary files differnew file mode 100644 index 000000000..a29807228 --- /dev/null +++ b/web/static/images/emoji/1f442.png diff --git a/web/static/images/emoji/1f443.png b/web/static/images/emoji/1f443.png Binary files differnew file mode 100644 index 000000000..f3d289014 --- /dev/null +++ b/web/static/images/emoji/1f443.png diff --git a/web/static/images/emoji/1f444.png b/web/static/images/emoji/1f444.png Binary files differnew file mode 100644 index 000000000..9b2e494bd --- /dev/null +++ b/web/static/images/emoji/1f444.png diff --git a/web/static/images/emoji/1f445.png b/web/static/images/emoji/1f445.png Binary files differnew file mode 100644 index 000000000..67ea886c6 --- /dev/null +++ b/web/static/images/emoji/1f445.png diff --git a/web/static/images/emoji/1f446.png b/web/static/images/emoji/1f446.png Binary files differnew file mode 100644 index 000000000..85b802a99 --- /dev/null +++ b/web/static/images/emoji/1f446.png diff --git a/web/static/images/emoji/1f447.png b/web/static/images/emoji/1f447.png Binary files differnew file mode 100644 index 000000000..7eeae2d5d --- /dev/null +++ b/web/static/images/emoji/1f447.png diff --git a/web/static/images/emoji/1f448.png b/web/static/images/emoji/1f448.png Binary files differnew file mode 100644 index 000000000..4a8f90556 --- /dev/null +++ b/web/static/images/emoji/1f448.png diff --git a/web/static/images/emoji/1f449.png b/web/static/images/emoji/1f449.png Binary files differnew file mode 100644 index 000000000..b2e387878 --- /dev/null +++ b/web/static/images/emoji/1f449.png diff --git a/web/static/images/emoji/1f44a.png b/web/static/images/emoji/1f44a.png Binary files differnew file mode 100644 index 000000000..7d10b3eda --- /dev/null +++ b/web/static/images/emoji/1f44a.png diff --git a/web/static/images/emoji/1f44b.png b/web/static/images/emoji/1f44b.png Binary files differnew file mode 100644 index 000000000..8a7086bd0 --- /dev/null +++ b/web/static/images/emoji/1f44b.png diff --git a/web/static/images/emoji/1f44c.png b/web/static/images/emoji/1f44c.png Binary files differnew file mode 100644 index 000000000..bf84e0df4 --- /dev/null +++ b/web/static/images/emoji/1f44c.png diff --git a/web/static/images/emoji/1f44d.png b/web/static/images/emoji/1f44d.png Binary files differnew file mode 100644 index 000000000..26949329f --- /dev/null +++ b/web/static/images/emoji/1f44d.png diff --git a/web/static/images/emoji/1f44e.png b/web/static/images/emoji/1f44e.png Binary files differnew file mode 100644 index 000000000..9b6d251b5 --- /dev/null +++ b/web/static/images/emoji/1f44e.png diff --git a/web/static/images/emoji/1f44f.png b/web/static/images/emoji/1f44f.png Binary files differnew file mode 100644 index 000000000..ccb725e96 --- /dev/null +++ b/web/static/images/emoji/1f44f.png diff --git a/web/static/images/emoji/1f450.png b/web/static/images/emoji/1f450.png Binary files differnew file mode 100644 index 000000000..c8eb0bab5 --- /dev/null +++ b/web/static/images/emoji/1f450.png diff --git a/web/static/images/emoji/1f451.png b/web/static/images/emoji/1f451.png Binary files differnew file mode 100644 index 000000000..54ca7998c --- /dev/null +++ b/web/static/images/emoji/1f451.png diff --git a/web/static/images/emoji/1f452.png b/web/static/images/emoji/1f452.png Binary files differnew file mode 100644 index 000000000..33af561b3 --- /dev/null +++ b/web/static/images/emoji/1f452.png diff --git a/web/static/images/emoji/1f453.png b/web/static/images/emoji/1f453.png Binary files differnew file mode 100644 index 000000000..f1f4612ba --- /dev/null +++ b/web/static/images/emoji/1f453.png diff --git a/web/static/images/emoji/1f454.png b/web/static/images/emoji/1f454.png Binary files differnew file mode 100644 index 000000000..3ed0339bf --- /dev/null +++ b/web/static/images/emoji/1f454.png diff --git a/web/static/images/emoji/1f455.png b/web/static/images/emoji/1f455.png Binary files differnew file mode 100644 index 000000000..556efde26 --- /dev/null +++ b/web/static/images/emoji/1f455.png diff --git a/web/static/images/emoji/1f456.png b/web/static/images/emoji/1f456.png Binary files differnew file mode 100644 index 000000000..f1a83c4d2 --- /dev/null +++ b/web/static/images/emoji/1f456.png diff --git a/web/static/images/emoji/1f457.png b/web/static/images/emoji/1f457.png Binary files differnew file mode 100644 index 000000000..512fe8bfe --- /dev/null +++ b/web/static/images/emoji/1f457.png diff --git a/web/static/images/emoji/1f458.png b/web/static/images/emoji/1f458.png Binary files differnew file mode 100644 index 000000000..1cbdea0b1 --- /dev/null +++ b/web/static/images/emoji/1f458.png diff --git a/web/static/images/emoji/1f459.png b/web/static/images/emoji/1f459.png Binary files differnew file mode 100644 index 000000000..62d142f31 --- /dev/null +++ b/web/static/images/emoji/1f459.png diff --git a/web/static/images/emoji/1f45a.png b/web/static/images/emoji/1f45a.png Binary files differnew file mode 100644 index 000000000..1a5494267 --- /dev/null +++ b/web/static/images/emoji/1f45a.png diff --git a/web/static/images/emoji/1f45b.png b/web/static/images/emoji/1f45b.png Binary files differnew file mode 100644 index 000000000..da09a41a3 --- /dev/null +++ b/web/static/images/emoji/1f45b.png diff --git a/web/static/images/emoji/1f45c.png b/web/static/images/emoji/1f45c.png Binary files differnew file mode 100644 index 000000000..556688787 --- /dev/null +++ b/web/static/images/emoji/1f45c.png diff --git a/web/static/images/emoji/1f45d.png b/web/static/images/emoji/1f45d.png Binary files differnew file mode 100644 index 000000000..d8e54dd7c --- /dev/null +++ b/web/static/images/emoji/1f45d.png diff --git a/web/static/images/emoji/1f45e.png b/web/static/images/emoji/1f45e.png Binary files differnew file mode 100644 index 000000000..8d8a9feeb --- /dev/null +++ b/web/static/images/emoji/1f45e.png diff --git a/web/static/images/emoji/1f45f.png b/web/static/images/emoji/1f45f.png Binary files differnew file mode 100644 index 000000000..e2cd2d3d4 --- /dev/null +++ b/web/static/images/emoji/1f45f.png diff --git a/web/static/images/emoji/1f460.png b/web/static/images/emoji/1f460.png Binary files differnew file mode 100644 index 000000000..36bdb7484 --- /dev/null +++ b/web/static/images/emoji/1f460.png diff --git a/web/static/images/emoji/1f461.png b/web/static/images/emoji/1f461.png Binary files differnew file mode 100644 index 000000000..1db7005bb --- /dev/null +++ b/web/static/images/emoji/1f461.png diff --git a/web/static/images/emoji/1f462.png b/web/static/images/emoji/1f462.png Binary files differnew file mode 100644 index 000000000..856256d5b --- /dev/null +++ b/web/static/images/emoji/1f462.png diff --git a/web/static/images/emoji/1f463.png b/web/static/images/emoji/1f463.png Binary files differnew file mode 100644 index 000000000..95c26fc9d --- /dev/null +++ b/web/static/images/emoji/1f463.png diff --git a/web/static/images/emoji/1f464.png b/web/static/images/emoji/1f464.png Binary files differnew file mode 100644 index 000000000..db3a468fc --- /dev/null +++ b/web/static/images/emoji/1f464.png diff --git a/web/static/images/emoji/1f465.png b/web/static/images/emoji/1f465.png Binary files differnew file mode 100644 index 000000000..f6018ac0e --- /dev/null +++ b/web/static/images/emoji/1f465.png diff --git a/web/static/images/emoji/1f466.png b/web/static/images/emoji/1f466.png Binary files differnew file mode 100644 index 000000000..ddcf29ca6 --- /dev/null +++ b/web/static/images/emoji/1f466.png diff --git a/web/static/images/emoji/1f467.png b/web/static/images/emoji/1f467.png Binary files differnew file mode 100644 index 000000000..9f91cef4c --- /dev/null +++ b/web/static/images/emoji/1f467.png diff --git a/web/static/images/emoji/1f468-1f468-1f466-1f466.png b/web/static/images/emoji/1f468-1f468-1f466-1f466.png Binary files differnew file mode 100644 index 000000000..a9121ff1b --- /dev/null +++ b/web/static/images/emoji/1f468-1f468-1f466-1f466.png diff --git a/web/static/images/emoji/1f468-1f468-1f466.png b/web/static/images/emoji/1f468-1f468-1f466.png Binary files differnew file mode 100644 index 000000000..9856feb47 --- /dev/null +++ b/web/static/images/emoji/1f468-1f468-1f466.png diff --git a/web/static/images/emoji/1f468-1f468-1f467-1f466.png b/web/static/images/emoji/1f468-1f468-1f467-1f466.png Binary files differnew file mode 100644 index 000000000..f836007e2 --- /dev/null +++ b/web/static/images/emoji/1f468-1f468-1f467-1f466.png diff --git a/web/static/images/emoji/1f468-1f468-1f467-1f467.png b/web/static/images/emoji/1f468-1f468-1f467-1f467.png Binary files differnew file mode 100644 index 000000000..a62651445 --- /dev/null +++ b/web/static/images/emoji/1f468-1f468-1f467-1f467.png diff --git a/web/static/images/emoji/1f468-1f468-1f467.png b/web/static/images/emoji/1f468-1f468-1f467.png Binary files differnew file mode 100644 index 000000000..1af8f4e12 --- /dev/null +++ b/web/static/images/emoji/1f468-1f468-1f467.png diff --git a/web/static/images/emoji/1f468-1f469-1f466-1f466.png b/web/static/images/emoji/1f468-1f469-1f466-1f466.png Binary files differnew file mode 100644 index 000000000..1fc8a8d25 --- /dev/null +++ b/web/static/images/emoji/1f468-1f469-1f466-1f466.png diff --git a/web/static/images/emoji/1f468-1f469-1f467-1f466.png b/web/static/images/emoji/1f468-1f469-1f467-1f466.png Binary files differnew file mode 100644 index 000000000..be122e039 --- /dev/null +++ b/web/static/images/emoji/1f468-1f469-1f467-1f466.png diff --git a/web/static/images/emoji/1f468-1f469-1f467-1f467.png b/web/static/images/emoji/1f468-1f469-1f467-1f467.png Binary files differnew file mode 100644 index 000000000..4c9f3f0ef --- /dev/null +++ b/web/static/images/emoji/1f468-1f469-1f467-1f467.png diff --git a/web/static/images/emoji/1f468-1f469-1f467.png b/web/static/images/emoji/1f468-1f469-1f467.png Binary files differnew file mode 100644 index 000000000..8df6f0456 --- /dev/null +++ b/web/static/images/emoji/1f468-1f469-1f467.png diff --git a/web/static/images/emoji/1f468-2764-1f468.png b/web/static/images/emoji/1f468-2764-1f468.png Binary files differnew file mode 100644 index 000000000..8975118f7 --- /dev/null +++ b/web/static/images/emoji/1f468-2764-1f468.png diff --git a/web/static/images/emoji/1f468-2764-1f48b-1f468.png b/web/static/images/emoji/1f468-2764-1f48b-1f468.png Binary files differnew file mode 100644 index 000000000..1afc5e2c1 --- /dev/null +++ b/web/static/images/emoji/1f468-2764-1f48b-1f468.png diff --git a/web/static/images/emoji/1f468.png b/web/static/images/emoji/1f468.png Binary files differnew file mode 100644 index 000000000..8efb7f43b --- /dev/null +++ b/web/static/images/emoji/1f468.png diff --git a/web/static/images/emoji/1f469-1f469-1f466-1f466.png b/web/static/images/emoji/1f469-1f469-1f466-1f466.png Binary files differnew file mode 100644 index 000000000..3b7515300 --- /dev/null +++ b/web/static/images/emoji/1f469-1f469-1f466-1f466.png diff --git a/web/static/images/emoji/1f469-1f469-1f466.png b/web/static/images/emoji/1f469-1f469-1f466.png Binary files differnew file mode 100644 index 000000000..c2b883efb --- /dev/null +++ b/web/static/images/emoji/1f469-1f469-1f466.png diff --git a/web/static/images/emoji/1f469-1f469-1f467-1f466.png b/web/static/images/emoji/1f469-1f469-1f467-1f466.png Binary files differnew file mode 100644 index 000000000..65f48dae5 --- /dev/null +++ b/web/static/images/emoji/1f469-1f469-1f467-1f466.png diff --git a/web/static/images/emoji/1f469-1f469-1f467-1f467.png b/web/static/images/emoji/1f469-1f469-1f467-1f467.png Binary files differnew file mode 100644 index 000000000..1a6e89c65 --- /dev/null +++ b/web/static/images/emoji/1f469-1f469-1f467-1f467.png diff --git a/web/static/images/emoji/1f469-1f469-1f467.png b/web/static/images/emoji/1f469-1f469-1f467.png Binary files differnew file mode 100644 index 000000000..b6e8aad2d --- /dev/null +++ b/web/static/images/emoji/1f469-1f469-1f467.png diff --git a/web/static/images/emoji/1f469-2764-1f469.png b/web/static/images/emoji/1f469-2764-1f469.png Binary files differnew file mode 100644 index 000000000..a58f61b54 --- /dev/null +++ b/web/static/images/emoji/1f469-2764-1f469.png diff --git a/web/static/images/emoji/1f469-2764-1f48b-1f469.png b/web/static/images/emoji/1f469-2764-1f48b-1f469.png Binary files differnew file mode 100644 index 000000000..4c6a10699 --- /dev/null +++ b/web/static/images/emoji/1f469-2764-1f48b-1f469.png diff --git a/web/static/images/emoji/1f469.png b/web/static/images/emoji/1f469.png Binary files differnew file mode 100644 index 000000000..72f7d61e2 --- /dev/null +++ b/web/static/images/emoji/1f469.png diff --git a/web/static/images/emoji/1f46a.png b/web/static/images/emoji/1f46a.png Binary files differnew file mode 100644 index 000000000..e0d81ddb7 --- /dev/null +++ b/web/static/images/emoji/1f46a.png diff --git a/web/static/images/emoji/1f46b.png b/web/static/images/emoji/1f46b.png Binary files differnew file mode 100644 index 000000000..616f8520b --- /dev/null +++ b/web/static/images/emoji/1f46b.png diff --git a/web/static/images/emoji/1f46c.png b/web/static/images/emoji/1f46c.png Binary files differnew file mode 100644 index 000000000..6d223a144 --- /dev/null +++ b/web/static/images/emoji/1f46c.png diff --git a/web/static/images/emoji/1f46d.png b/web/static/images/emoji/1f46d.png Binary files differnew file mode 100644 index 000000000..313e73c7d --- /dev/null +++ b/web/static/images/emoji/1f46d.png diff --git a/web/static/images/emoji/1f46e.png b/web/static/images/emoji/1f46e.png Binary files differnew file mode 100644 index 000000000..818cab806 --- /dev/null +++ b/web/static/images/emoji/1f46e.png diff --git a/web/static/images/emoji/1f46f.png b/web/static/images/emoji/1f46f.png Binary files differnew file mode 100644 index 000000000..8829c0e87 --- /dev/null +++ b/web/static/images/emoji/1f46f.png diff --git a/web/static/images/emoji/1f470.png b/web/static/images/emoji/1f470.png Binary files differnew file mode 100644 index 000000000..a19e3389e --- /dev/null +++ b/web/static/images/emoji/1f470.png diff --git a/web/static/images/emoji/1f471.png b/web/static/images/emoji/1f471.png Binary files differnew file mode 100644 index 000000000..7cd2e8766 --- /dev/null +++ b/web/static/images/emoji/1f471.png diff --git a/web/static/images/emoji/1f472.png b/web/static/images/emoji/1f472.png Binary files differnew file mode 100644 index 000000000..bd01585c4 --- /dev/null +++ b/web/static/images/emoji/1f472.png diff --git a/web/static/images/emoji/1f473.png b/web/static/images/emoji/1f473.png Binary files differnew file mode 100644 index 000000000..e968c78fe --- /dev/null +++ b/web/static/images/emoji/1f473.png diff --git a/web/static/images/emoji/1f474.png b/web/static/images/emoji/1f474.png Binary files differnew file mode 100644 index 000000000..18fbbdde8 --- /dev/null +++ b/web/static/images/emoji/1f474.png diff --git a/web/static/images/emoji/1f475.png b/web/static/images/emoji/1f475.png Binary files differnew file mode 100644 index 000000000..0848ebe92 --- /dev/null +++ b/web/static/images/emoji/1f475.png diff --git a/web/static/images/emoji/1f476.png b/web/static/images/emoji/1f476.png Binary files differnew file mode 100644 index 000000000..7bfa3d4b5 --- /dev/null +++ b/web/static/images/emoji/1f476.png diff --git a/web/static/images/emoji/1f477.png b/web/static/images/emoji/1f477.png Binary files differnew file mode 100644 index 000000000..862e51f40 --- /dev/null +++ b/web/static/images/emoji/1f477.png diff --git a/web/static/images/emoji/1f478.png b/web/static/images/emoji/1f478.png Binary files differnew file mode 100644 index 000000000..a8b0ff903 --- /dev/null +++ b/web/static/images/emoji/1f478.png diff --git a/web/static/images/emoji/1f479.png b/web/static/images/emoji/1f479.png Binary files differnew file mode 100644 index 000000000..fd1cab65f --- /dev/null +++ b/web/static/images/emoji/1f479.png diff --git a/web/static/images/emoji/1f47a.png b/web/static/images/emoji/1f47a.png Binary files differnew file mode 100644 index 000000000..20e1b4eb5 --- /dev/null +++ b/web/static/images/emoji/1f47a.png diff --git a/web/static/images/emoji/1f47b.png b/web/static/images/emoji/1f47b.png Binary files differnew file mode 100644 index 000000000..3138f36fd --- /dev/null +++ b/web/static/images/emoji/1f47b.png diff --git a/web/static/images/emoji/1f47c.png b/web/static/images/emoji/1f47c.png Binary files differnew file mode 100644 index 000000000..46546001f --- /dev/null +++ b/web/static/images/emoji/1f47c.png diff --git a/web/static/images/emoji/1f47d.png b/web/static/images/emoji/1f47d.png Binary files differnew file mode 100644 index 000000000..6d0fc8399 --- /dev/null +++ b/web/static/images/emoji/1f47d.png diff --git a/web/static/images/emoji/1f47e.png b/web/static/images/emoji/1f47e.png Binary files differnew file mode 100644 index 000000000..042bc2ad0 --- /dev/null +++ b/web/static/images/emoji/1f47e.png diff --git a/web/static/images/emoji/1f47f.png b/web/static/images/emoji/1f47f.png Binary files differnew file mode 100644 index 000000000..bb31a6212 --- /dev/null +++ b/web/static/images/emoji/1f47f.png diff --git a/web/static/images/emoji/1f480.png b/web/static/images/emoji/1f480.png Binary files differnew file mode 100644 index 000000000..ee66d7147 --- /dev/null +++ b/web/static/images/emoji/1f480.png diff --git a/web/static/images/emoji/1f481.png b/web/static/images/emoji/1f481.png Binary files differnew file mode 100644 index 000000000..ffe0ab71f --- /dev/null +++ b/web/static/images/emoji/1f481.png diff --git a/web/static/images/emoji/1f482.png b/web/static/images/emoji/1f482.png Binary files differnew file mode 100644 index 000000000..f7f0464cd --- /dev/null +++ b/web/static/images/emoji/1f482.png diff --git a/web/static/images/emoji/1f483.png b/web/static/images/emoji/1f483.png Binary files differnew file mode 100644 index 000000000..8e3c67dd2 --- /dev/null +++ b/web/static/images/emoji/1f483.png diff --git a/web/static/images/emoji/1f484.png b/web/static/images/emoji/1f484.png Binary files differnew file mode 100644 index 000000000..79421767b --- /dev/null +++ b/web/static/images/emoji/1f484.png diff --git a/web/static/images/emoji/1f485.png b/web/static/images/emoji/1f485.png Binary files differnew file mode 100644 index 000000000..279881c26 --- /dev/null +++ b/web/static/images/emoji/1f485.png diff --git a/web/static/images/emoji/1f486.png b/web/static/images/emoji/1f486.png Binary files differnew file mode 100644 index 000000000..4890c3395 --- /dev/null +++ b/web/static/images/emoji/1f486.png diff --git a/web/static/images/emoji/1f487.png b/web/static/images/emoji/1f487.png Binary files differnew file mode 100644 index 000000000..40fbd31c4 --- /dev/null +++ b/web/static/images/emoji/1f487.png diff --git a/web/static/images/emoji/1f488.png b/web/static/images/emoji/1f488.png Binary files differnew file mode 100644 index 000000000..e2267ff8f --- /dev/null +++ b/web/static/images/emoji/1f488.png diff --git a/web/static/images/emoji/1f489.png b/web/static/images/emoji/1f489.png Binary files differnew file mode 100644 index 000000000..1e7f23ebf --- /dev/null +++ b/web/static/images/emoji/1f489.png diff --git a/web/static/images/emoji/1f48a.png b/web/static/images/emoji/1f48a.png Binary files differnew file mode 100644 index 000000000..260e44588 --- /dev/null +++ b/web/static/images/emoji/1f48a.png diff --git a/web/static/images/emoji/1f48b.png b/web/static/images/emoji/1f48b.png Binary files differnew file mode 100644 index 000000000..bc4c8f73a --- /dev/null +++ b/web/static/images/emoji/1f48b.png diff --git a/web/static/images/emoji/1f48c.png b/web/static/images/emoji/1f48c.png Binary files differnew file mode 100644 index 000000000..853204d48 --- /dev/null +++ b/web/static/images/emoji/1f48c.png diff --git a/web/static/images/emoji/1f48d.png b/web/static/images/emoji/1f48d.png Binary files differnew file mode 100644 index 000000000..f033d7941 --- /dev/null +++ b/web/static/images/emoji/1f48d.png diff --git a/web/static/images/emoji/1f48e.png b/web/static/images/emoji/1f48e.png Binary files differnew file mode 100644 index 000000000..a24a082a7 --- /dev/null +++ b/web/static/images/emoji/1f48e.png diff --git a/web/static/images/emoji/1f48f.png b/web/static/images/emoji/1f48f.png Binary files differnew file mode 100644 index 000000000..0280fba18 --- /dev/null +++ b/web/static/images/emoji/1f48f.png diff --git a/web/static/images/emoji/1f490.png b/web/static/images/emoji/1f490.png Binary files differnew file mode 100644 index 000000000..e42118f7f --- /dev/null +++ b/web/static/images/emoji/1f490.png diff --git a/web/static/images/emoji/1f491.png b/web/static/images/emoji/1f491.png Binary files differnew file mode 100644 index 000000000..44d4e18bd --- /dev/null +++ b/web/static/images/emoji/1f491.png diff --git a/web/static/images/emoji/1f492.png b/web/static/images/emoji/1f492.png Binary files differnew file mode 100644 index 000000000..dda4a140f --- /dev/null +++ b/web/static/images/emoji/1f492.png diff --git a/web/static/images/emoji/1f493.png b/web/static/images/emoji/1f493.png Binary files differnew file mode 100644 index 000000000..43a365e95 --- /dev/null +++ b/web/static/images/emoji/1f493.png diff --git a/web/static/images/emoji/1f494.png b/web/static/images/emoji/1f494.png Binary files differnew file mode 100644 index 000000000..b7ee9b4e5 --- /dev/null +++ b/web/static/images/emoji/1f494.png diff --git a/web/static/images/emoji/1f495.png b/web/static/images/emoji/1f495.png Binary files differnew file mode 100644 index 000000000..48f8d88d2 --- /dev/null +++ b/web/static/images/emoji/1f495.png diff --git a/web/static/images/emoji/1f496.png b/web/static/images/emoji/1f496.png Binary files differnew file mode 100644 index 000000000..0bfffc4ca --- /dev/null +++ b/web/static/images/emoji/1f496.png diff --git a/web/static/images/emoji/1f497.png b/web/static/images/emoji/1f497.png Binary files differnew file mode 100644 index 000000000..b3d5da2e3 --- /dev/null +++ b/web/static/images/emoji/1f497.png diff --git a/web/static/images/emoji/1f498.png b/web/static/images/emoji/1f498.png Binary files differnew file mode 100644 index 000000000..49260219c --- /dev/null +++ b/web/static/images/emoji/1f498.png diff --git a/web/static/images/emoji/1f499.png b/web/static/images/emoji/1f499.png Binary files differnew file mode 100644 index 000000000..494ab723e --- /dev/null +++ b/web/static/images/emoji/1f499.png diff --git a/web/static/images/emoji/1f49a.png b/web/static/images/emoji/1f49a.png Binary files differnew file mode 100644 index 000000000..87b1d21c3 --- /dev/null +++ b/web/static/images/emoji/1f49a.png diff --git a/web/static/images/emoji/1f49b.png b/web/static/images/emoji/1f49b.png Binary files differnew file mode 100644 index 000000000..2deb5e6ce --- /dev/null +++ b/web/static/images/emoji/1f49b.png diff --git a/web/static/images/emoji/1f49c.png b/web/static/images/emoji/1f49c.png Binary files differnew file mode 100644 index 000000000..97bb564a1 --- /dev/null +++ b/web/static/images/emoji/1f49c.png diff --git a/web/static/images/emoji/1f49d.png b/web/static/images/emoji/1f49d.png Binary files differnew file mode 100644 index 000000000..eb0292da0 --- /dev/null +++ b/web/static/images/emoji/1f49d.png diff --git a/web/static/images/emoji/1f49e.png b/web/static/images/emoji/1f49e.png Binary files differnew file mode 100644 index 000000000..0602d03c1 --- /dev/null +++ b/web/static/images/emoji/1f49e.png diff --git a/web/static/images/emoji/1f49f.png b/web/static/images/emoji/1f49f.png Binary files differnew file mode 100644 index 000000000..da8a1339b --- /dev/null +++ b/web/static/images/emoji/1f49f.png diff --git a/web/static/images/emoji/1f4a0.png b/web/static/images/emoji/1f4a0.png Binary files differnew file mode 100644 index 000000000..6aec6cb19 --- /dev/null +++ b/web/static/images/emoji/1f4a0.png diff --git a/web/static/images/emoji/1f4a1.png b/web/static/images/emoji/1f4a1.png Binary files differnew file mode 100644 index 000000000..7596c82a7 --- /dev/null +++ b/web/static/images/emoji/1f4a1.png diff --git a/web/static/images/emoji/1f4a2.png b/web/static/images/emoji/1f4a2.png Binary files differnew file mode 100644 index 000000000..f69aa08d4 --- /dev/null +++ b/web/static/images/emoji/1f4a2.png diff --git a/web/static/images/emoji/1f4a3.png b/web/static/images/emoji/1f4a3.png Binary files differnew file mode 100644 index 000000000..774c5c91e --- /dev/null +++ b/web/static/images/emoji/1f4a3.png diff --git a/web/static/images/emoji/1f4a4.png b/web/static/images/emoji/1f4a4.png Binary files differnew file mode 100644 index 000000000..05e245f20 --- /dev/null +++ b/web/static/images/emoji/1f4a4.png diff --git a/web/static/images/emoji/1f4a5.png b/web/static/images/emoji/1f4a5.png Binary files differnew file mode 100644 index 000000000..98a69a628 --- /dev/null +++ b/web/static/images/emoji/1f4a5.png diff --git a/web/static/images/emoji/1f4a6.png b/web/static/images/emoji/1f4a6.png Binary files differnew file mode 100644 index 000000000..81205fb52 --- /dev/null +++ b/web/static/images/emoji/1f4a6.png diff --git a/web/static/images/emoji/1f4a7.png b/web/static/images/emoji/1f4a7.png Binary files differnew file mode 100644 index 000000000..074982362 --- /dev/null +++ b/web/static/images/emoji/1f4a7.png diff --git a/web/static/images/emoji/1f4a8.png b/web/static/images/emoji/1f4a8.png Binary files differnew file mode 100644 index 000000000..d58c22281 --- /dev/null +++ b/web/static/images/emoji/1f4a8.png diff --git a/web/static/images/emoji/1f4a9.png b/web/static/images/emoji/1f4a9.png Binary files differnew file mode 100644 index 000000000..0c237a788 --- /dev/null +++ b/web/static/images/emoji/1f4a9.png diff --git a/web/static/images/emoji/1f4aa.png b/web/static/images/emoji/1f4aa.png Binary files differnew file mode 100644 index 000000000..9300534fa --- /dev/null +++ b/web/static/images/emoji/1f4aa.png diff --git a/web/static/images/emoji/1f4ab.png b/web/static/images/emoji/1f4ab.png Binary files differnew file mode 100644 index 000000000..b6972196c --- /dev/null +++ b/web/static/images/emoji/1f4ab.png diff --git a/web/static/images/emoji/1f4ac.png b/web/static/images/emoji/1f4ac.png Binary files differnew file mode 100644 index 000000000..4f6449572 --- /dev/null +++ b/web/static/images/emoji/1f4ac.png diff --git a/web/static/images/emoji/1f4ad.png b/web/static/images/emoji/1f4ad.png Binary files differnew file mode 100644 index 000000000..0ccbc2e30 --- /dev/null +++ b/web/static/images/emoji/1f4ad.png diff --git a/web/static/images/emoji/1f4ae.png b/web/static/images/emoji/1f4ae.png Binary files differnew file mode 100644 index 000000000..6d1c47e91 --- /dev/null +++ b/web/static/images/emoji/1f4ae.png diff --git a/web/static/images/emoji/1f4af.png b/web/static/images/emoji/1f4af.png Binary files differnew file mode 100644 index 000000000..cd308ad66 --- /dev/null +++ b/web/static/images/emoji/1f4af.png diff --git a/web/static/images/emoji/1f4b0.png b/web/static/images/emoji/1f4b0.png Binary files differnew file mode 100644 index 000000000..a44896ab0 --- /dev/null +++ b/web/static/images/emoji/1f4b0.png diff --git a/web/static/images/emoji/1f4b1.png b/web/static/images/emoji/1f4b1.png Binary files differnew file mode 100644 index 000000000..7cdbde70c --- /dev/null +++ b/web/static/images/emoji/1f4b1.png diff --git a/web/static/images/emoji/1f4b2.png b/web/static/images/emoji/1f4b2.png Binary files differnew file mode 100644 index 000000000..10a5a4d8a --- /dev/null +++ b/web/static/images/emoji/1f4b2.png diff --git a/web/static/images/emoji/1f4b3.png b/web/static/images/emoji/1f4b3.png Binary files differnew file mode 100644 index 000000000..e41515bb7 --- /dev/null +++ b/web/static/images/emoji/1f4b3.png diff --git a/web/static/images/emoji/1f4b4.png b/web/static/images/emoji/1f4b4.png Binary files differnew file mode 100644 index 000000000..c0545520f --- /dev/null +++ b/web/static/images/emoji/1f4b4.png diff --git a/web/static/images/emoji/1f4b5.png b/web/static/images/emoji/1f4b5.png Binary files differnew file mode 100644 index 000000000..73843bf91 --- /dev/null +++ b/web/static/images/emoji/1f4b5.png diff --git a/web/static/images/emoji/1f4b6.png b/web/static/images/emoji/1f4b6.png Binary files differnew file mode 100644 index 000000000..4efcecc3c --- /dev/null +++ b/web/static/images/emoji/1f4b6.png diff --git a/web/static/images/emoji/1f4b7.png b/web/static/images/emoji/1f4b7.png Binary files differnew file mode 100644 index 000000000..555e0823f --- /dev/null +++ b/web/static/images/emoji/1f4b7.png diff --git a/web/static/images/emoji/1f4b8.png b/web/static/images/emoji/1f4b8.png Binary files differnew file mode 100644 index 000000000..46591e443 --- /dev/null +++ b/web/static/images/emoji/1f4b8.png diff --git a/web/static/images/emoji/1f4b9.png b/web/static/images/emoji/1f4b9.png Binary files differnew file mode 100644 index 000000000..6b7fb1cdd --- /dev/null +++ b/web/static/images/emoji/1f4b9.png diff --git a/web/static/images/emoji/1f4ba.png b/web/static/images/emoji/1f4ba.png Binary files differnew file mode 100644 index 000000000..1ec8166b6 --- /dev/null +++ b/web/static/images/emoji/1f4ba.png diff --git a/web/static/images/emoji/1f4bb.png b/web/static/images/emoji/1f4bb.png Binary files differnew file mode 100644 index 000000000..e23340a04 --- /dev/null +++ b/web/static/images/emoji/1f4bb.png diff --git a/web/static/images/emoji/1f4bc.png b/web/static/images/emoji/1f4bc.png Binary files differnew file mode 100644 index 000000000..49293eb0a --- /dev/null +++ b/web/static/images/emoji/1f4bc.png diff --git a/web/static/images/emoji/1f4bd.png b/web/static/images/emoji/1f4bd.png Binary files differnew file mode 100644 index 000000000..49d651f9e --- /dev/null +++ b/web/static/images/emoji/1f4bd.png diff --git a/web/static/images/emoji/1f4be.png b/web/static/images/emoji/1f4be.png Binary files differnew file mode 100644 index 000000000..f4e52bf1b --- /dev/null +++ b/web/static/images/emoji/1f4be.png diff --git a/web/static/images/emoji/1f4bf.png b/web/static/images/emoji/1f4bf.png Binary files differnew file mode 100644 index 000000000..10d5db668 --- /dev/null +++ b/web/static/images/emoji/1f4bf.png diff --git a/web/static/images/emoji/1f4c0.png b/web/static/images/emoji/1f4c0.png Binary files differnew file mode 100644 index 000000000..6f7b85774 --- /dev/null +++ b/web/static/images/emoji/1f4c0.png diff --git a/web/static/images/emoji/1f4c1.png b/web/static/images/emoji/1f4c1.png Binary files differnew file mode 100644 index 000000000..17adcfd26 --- /dev/null +++ b/web/static/images/emoji/1f4c1.png diff --git a/web/static/images/emoji/1f4c2.png b/web/static/images/emoji/1f4c2.png Binary files differnew file mode 100644 index 000000000..2d48340bf --- /dev/null +++ b/web/static/images/emoji/1f4c2.png diff --git a/web/static/images/emoji/1f4c3.png b/web/static/images/emoji/1f4c3.png Binary files differnew file mode 100644 index 000000000..306b7e4d7 --- /dev/null +++ b/web/static/images/emoji/1f4c3.png diff --git a/web/static/images/emoji/1f4c4.png b/web/static/images/emoji/1f4c4.png Binary files differnew file mode 100644 index 000000000..f3023ba74 --- /dev/null +++ b/web/static/images/emoji/1f4c4.png diff --git a/web/static/images/emoji/1f4c5.png b/web/static/images/emoji/1f4c5.png Binary files differnew file mode 100644 index 000000000..61308e816 --- /dev/null +++ b/web/static/images/emoji/1f4c5.png diff --git a/web/static/images/emoji/1f4c6.png b/web/static/images/emoji/1f4c6.png Binary files differnew file mode 100644 index 000000000..7b1845ab2 --- /dev/null +++ b/web/static/images/emoji/1f4c6.png diff --git a/web/static/images/emoji/1f4c7.png b/web/static/images/emoji/1f4c7.png Binary files differnew file mode 100644 index 000000000..84407de9e --- /dev/null +++ b/web/static/images/emoji/1f4c7.png diff --git a/web/static/images/emoji/1f4c8.png b/web/static/images/emoji/1f4c8.png Binary files differnew file mode 100644 index 000000000..74a525be1 --- /dev/null +++ b/web/static/images/emoji/1f4c8.png diff --git a/web/static/images/emoji/1f4c9.png b/web/static/images/emoji/1f4c9.png Binary files differnew file mode 100644 index 000000000..63ab4f0b4 --- /dev/null +++ b/web/static/images/emoji/1f4c9.png diff --git a/web/static/images/emoji/1f4ca.png b/web/static/images/emoji/1f4ca.png Binary files differnew file mode 100644 index 000000000..9b5a73c72 --- /dev/null +++ b/web/static/images/emoji/1f4ca.png diff --git a/web/static/images/emoji/1f4cb.png b/web/static/images/emoji/1f4cb.png Binary files differnew file mode 100644 index 000000000..7f50dfff7 --- /dev/null +++ b/web/static/images/emoji/1f4cb.png diff --git a/web/static/images/emoji/1f4cc.png b/web/static/images/emoji/1f4cc.png Binary files differnew file mode 100644 index 000000000..557ac45f0 --- /dev/null +++ b/web/static/images/emoji/1f4cc.png diff --git a/web/static/images/emoji/1f4cd.png b/web/static/images/emoji/1f4cd.png Binary files differnew file mode 100644 index 000000000..b16e5c41a --- /dev/null +++ b/web/static/images/emoji/1f4cd.png diff --git a/web/static/images/emoji/1f4ce.png b/web/static/images/emoji/1f4ce.png Binary files differnew file mode 100644 index 000000000..e241e1189 --- /dev/null +++ b/web/static/images/emoji/1f4ce.png diff --git a/web/static/images/emoji/1f4cf.png b/web/static/images/emoji/1f4cf.png Binary files differnew file mode 100644 index 000000000..42e7ac39c --- /dev/null +++ b/web/static/images/emoji/1f4cf.png diff --git a/web/static/images/emoji/1f4d0.png b/web/static/images/emoji/1f4d0.png Binary files differnew file mode 100644 index 000000000..b554c0625 --- /dev/null +++ b/web/static/images/emoji/1f4d0.png diff --git a/web/static/images/emoji/1f4d1.png b/web/static/images/emoji/1f4d1.png Binary files differnew file mode 100644 index 000000000..9cec88387 --- /dev/null +++ b/web/static/images/emoji/1f4d1.png diff --git a/web/static/images/emoji/1f4d2.png b/web/static/images/emoji/1f4d2.png Binary files differnew file mode 100644 index 000000000..b9a5484e4 --- /dev/null +++ b/web/static/images/emoji/1f4d2.png diff --git a/web/static/images/emoji/1f4d3.png b/web/static/images/emoji/1f4d3.png Binary files differnew file mode 100644 index 000000000..5ed4f4112 --- /dev/null +++ b/web/static/images/emoji/1f4d3.png diff --git a/web/static/images/emoji/1f4d4.png b/web/static/images/emoji/1f4d4.png Binary files differnew file mode 100644 index 000000000..839ee3e78 --- /dev/null +++ b/web/static/images/emoji/1f4d4.png diff --git a/web/static/images/emoji/1f4d5.png b/web/static/images/emoji/1f4d5.png Binary files differnew file mode 100644 index 000000000..e26390e0a --- /dev/null +++ b/web/static/images/emoji/1f4d5.png diff --git a/web/static/images/emoji/1f4d6.png b/web/static/images/emoji/1f4d6.png Binary files differnew file mode 100644 index 000000000..01c836a7e --- /dev/null +++ b/web/static/images/emoji/1f4d6.png diff --git a/web/static/images/emoji/1f4d7.png b/web/static/images/emoji/1f4d7.png Binary files differnew file mode 100644 index 000000000..8fa81b9ac --- /dev/null +++ b/web/static/images/emoji/1f4d7.png diff --git a/web/static/images/emoji/1f4d8.png b/web/static/images/emoji/1f4d8.png Binary files differnew file mode 100644 index 000000000..673bf2bdb --- /dev/null +++ b/web/static/images/emoji/1f4d8.png diff --git a/web/static/images/emoji/1f4d9.png b/web/static/images/emoji/1f4d9.png Binary files differnew file mode 100644 index 000000000..8ecfd9c10 --- /dev/null +++ b/web/static/images/emoji/1f4d9.png diff --git a/web/static/images/emoji/1f4da.png b/web/static/images/emoji/1f4da.png Binary files differnew file mode 100644 index 000000000..65abc1651 --- /dev/null +++ b/web/static/images/emoji/1f4da.png diff --git a/web/static/images/emoji/1f4db.png b/web/static/images/emoji/1f4db.png Binary files differnew file mode 100644 index 000000000..a1ffb38b3 --- /dev/null +++ b/web/static/images/emoji/1f4db.png diff --git a/web/static/images/emoji/1f4dc.png b/web/static/images/emoji/1f4dc.png Binary files differnew file mode 100644 index 000000000..c8ee30803 --- /dev/null +++ b/web/static/images/emoji/1f4dc.png diff --git a/web/static/images/emoji/1f4dd.png b/web/static/images/emoji/1f4dd.png Binary files differnew file mode 100644 index 000000000..61e5a08e6 --- /dev/null +++ b/web/static/images/emoji/1f4dd.png diff --git a/web/static/images/emoji/1f4de.png b/web/static/images/emoji/1f4de.png Binary files differnew file mode 100644 index 000000000..6a8259cb7 --- /dev/null +++ b/web/static/images/emoji/1f4de.png diff --git a/web/static/images/emoji/1f4df.png b/web/static/images/emoji/1f4df.png Binary files differnew file mode 100644 index 000000000..acfd131a0 --- /dev/null +++ b/web/static/images/emoji/1f4df.png diff --git a/web/static/images/emoji/1f4e0.png b/web/static/images/emoji/1f4e0.png Binary files differnew file mode 100644 index 000000000..10f81dad1 --- /dev/null +++ b/web/static/images/emoji/1f4e0.png diff --git a/web/static/images/emoji/1f4e1.png b/web/static/images/emoji/1f4e1.png Binary files differnew file mode 100644 index 000000000..7411b9235 --- /dev/null +++ b/web/static/images/emoji/1f4e1.png diff --git a/web/static/images/emoji/1f4e2.png b/web/static/images/emoji/1f4e2.png Binary files differnew file mode 100644 index 000000000..aaf588cd7 --- /dev/null +++ b/web/static/images/emoji/1f4e2.png diff --git a/web/static/images/emoji/1f4e3.png b/web/static/images/emoji/1f4e3.png Binary files differnew file mode 100644 index 000000000..51bc09152 --- /dev/null +++ b/web/static/images/emoji/1f4e3.png diff --git a/web/static/images/emoji/1f4e4.png b/web/static/images/emoji/1f4e4.png Binary files differnew file mode 100644 index 000000000..7afec2610 --- /dev/null +++ b/web/static/images/emoji/1f4e4.png diff --git a/web/static/images/emoji/1f4e5.png b/web/static/images/emoji/1f4e5.png Binary files differnew file mode 100644 index 000000000..266947ee9 --- /dev/null +++ b/web/static/images/emoji/1f4e5.png diff --git a/web/static/images/emoji/1f4e6.png b/web/static/images/emoji/1f4e6.png Binary files differnew file mode 100644 index 000000000..424c4fd19 --- /dev/null +++ b/web/static/images/emoji/1f4e6.png diff --git a/web/static/images/emoji/1f4e7.png b/web/static/images/emoji/1f4e7.png Binary files differnew file mode 100644 index 000000000..838ee67ed --- /dev/null +++ b/web/static/images/emoji/1f4e7.png diff --git a/web/static/images/emoji/1f4e8.png b/web/static/images/emoji/1f4e8.png Binary files differnew file mode 100644 index 000000000..b16ed051f --- /dev/null +++ b/web/static/images/emoji/1f4e8.png diff --git a/web/static/images/emoji/1f4e9.png b/web/static/images/emoji/1f4e9.png Binary files differnew file mode 100644 index 000000000..373cd8f0f --- /dev/null +++ b/web/static/images/emoji/1f4e9.png diff --git a/web/static/images/emoji/1f4ea.png b/web/static/images/emoji/1f4ea.png Binary files differnew file mode 100644 index 000000000..7a9f1e301 --- /dev/null +++ b/web/static/images/emoji/1f4ea.png diff --git a/web/static/images/emoji/1f4eb.png b/web/static/images/emoji/1f4eb.png Binary files differnew file mode 100644 index 000000000..5e3aa1019 --- /dev/null +++ b/web/static/images/emoji/1f4eb.png diff --git a/web/static/images/emoji/1f4ec.png b/web/static/images/emoji/1f4ec.png Binary files differnew file mode 100644 index 000000000..f8c7362a8 --- /dev/null +++ b/web/static/images/emoji/1f4ec.png diff --git a/web/static/images/emoji/1f4ed.png b/web/static/images/emoji/1f4ed.png Binary files differnew file mode 100644 index 000000000..a4b4797ee --- /dev/null +++ b/web/static/images/emoji/1f4ed.png diff --git a/web/static/images/emoji/1f4ee.png b/web/static/images/emoji/1f4ee.png Binary files differnew file mode 100644 index 000000000..1633e892c --- /dev/null +++ b/web/static/images/emoji/1f4ee.png diff --git a/web/static/images/emoji/1f4ef.png b/web/static/images/emoji/1f4ef.png Binary files differnew file mode 100644 index 000000000..2313eeb45 --- /dev/null +++ b/web/static/images/emoji/1f4ef.png diff --git a/web/static/images/emoji/1f4f0.png b/web/static/images/emoji/1f4f0.png Binary files differnew file mode 100644 index 000000000..ae5e31494 --- /dev/null +++ b/web/static/images/emoji/1f4f0.png diff --git a/web/static/images/emoji/1f4f1.png b/web/static/images/emoji/1f4f1.png Binary files differnew file mode 100644 index 000000000..eea83475b --- /dev/null +++ b/web/static/images/emoji/1f4f1.png diff --git a/web/static/images/emoji/1f4f2.png b/web/static/images/emoji/1f4f2.png Binary files differnew file mode 100644 index 000000000..e10f74a6a --- /dev/null +++ b/web/static/images/emoji/1f4f2.png diff --git a/web/static/images/emoji/1f4f3.png b/web/static/images/emoji/1f4f3.png Binary files differnew file mode 100644 index 000000000..6da565442 --- /dev/null +++ b/web/static/images/emoji/1f4f3.png diff --git a/web/static/images/emoji/1f4f4.png b/web/static/images/emoji/1f4f4.png Binary files differnew file mode 100644 index 000000000..63d1deeaa --- /dev/null +++ b/web/static/images/emoji/1f4f4.png diff --git a/web/static/images/emoji/1f4f5.png b/web/static/images/emoji/1f4f5.png Binary files differnew file mode 100644 index 000000000..8324e4361 --- /dev/null +++ b/web/static/images/emoji/1f4f5.png diff --git a/web/static/images/emoji/1f4f6.png b/web/static/images/emoji/1f4f6.png Binary files differnew file mode 100644 index 000000000..21956bb51 --- /dev/null +++ b/web/static/images/emoji/1f4f6.png diff --git a/web/static/images/emoji/1f4f7.png b/web/static/images/emoji/1f4f7.png Binary files differnew file mode 100644 index 000000000..0b4463e8b --- /dev/null +++ b/web/static/images/emoji/1f4f7.png diff --git a/web/static/images/emoji/1f4f8.png b/web/static/images/emoji/1f4f8.png Binary files differnew file mode 100644 index 000000000..66f223b17 --- /dev/null +++ b/web/static/images/emoji/1f4f8.png diff --git a/web/static/images/emoji/1f4f9.png b/web/static/images/emoji/1f4f9.png Binary files differnew file mode 100644 index 000000000..1b3514f8a --- /dev/null +++ b/web/static/images/emoji/1f4f9.png diff --git a/web/static/images/emoji/1f4fa.png b/web/static/images/emoji/1f4fa.png Binary files differnew file mode 100644 index 000000000..5318e2dc8 --- /dev/null +++ b/web/static/images/emoji/1f4fa.png diff --git a/web/static/images/emoji/1f4fb.png b/web/static/images/emoji/1f4fb.png Binary files differnew file mode 100644 index 000000000..e75747faa --- /dev/null +++ b/web/static/images/emoji/1f4fb.png diff --git a/web/static/images/emoji/1f4fc.png b/web/static/images/emoji/1f4fc.png Binary files differnew file mode 100644 index 000000000..134e3a2c4 --- /dev/null +++ b/web/static/images/emoji/1f4fc.png diff --git a/web/static/images/emoji/1f4fd.png b/web/static/images/emoji/1f4fd.png Binary files differnew file mode 100644 index 000000000..46800d29d --- /dev/null +++ b/web/static/images/emoji/1f4fd.png diff --git a/web/static/images/emoji/1f4fe.png b/web/static/images/emoji/1f4fe.png Binary files differnew file mode 100644 index 000000000..f301928e3 --- /dev/null +++ b/web/static/images/emoji/1f4fe.png diff --git a/web/static/images/emoji/1f500.png b/web/static/images/emoji/1f500.png Binary files differnew file mode 100644 index 000000000..96e03e168 --- /dev/null +++ b/web/static/images/emoji/1f500.png diff --git a/web/static/images/emoji/1f501.png b/web/static/images/emoji/1f501.png Binary files differnew file mode 100644 index 000000000..8420b4f5d --- /dev/null +++ b/web/static/images/emoji/1f501.png diff --git a/web/static/images/emoji/1f502.png b/web/static/images/emoji/1f502.png Binary files differnew file mode 100644 index 000000000..2dacec71a --- /dev/null +++ b/web/static/images/emoji/1f502.png diff --git a/web/static/images/emoji/1f503.png b/web/static/images/emoji/1f503.png Binary files differnew file mode 100644 index 000000000..fe7d5bafd --- /dev/null +++ b/web/static/images/emoji/1f503.png diff --git a/web/static/images/emoji/1f504.png b/web/static/images/emoji/1f504.png Binary files differnew file mode 100644 index 000000000..7bd4e4d75 --- /dev/null +++ b/web/static/images/emoji/1f504.png diff --git a/web/static/images/emoji/1f505.png b/web/static/images/emoji/1f505.png Binary files differnew file mode 100644 index 000000000..aecba4603 --- /dev/null +++ b/web/static/images/emoji/1f505.png diff --git a/web/static/images/emoji/1f506.png b/web/static/images/emoji/1f506.png Binary files differnew file mode 100644 index 000000000..e5f548443 --- /dev/null +++ b/web/static/images/emoji/1f506.png diff --git a/web/static/images/emoji/1f507.png b/web/static/images/emoji/1f507.png Binary files differnew file mode 100644 index 000000000..04d987046 --- /dev/null +++ b/web/static/images/emoji/1f507.png diff --git a/web/static/images/emoji/1f508.png b/web/static/images/emoji/1f508.png Binary files differnew file mode 100644 index 000000000..38d5ee391 --- /dev/null +++ b/web/static/images/emoji/1f508.png diff --git a/web/static/images/emoji/1f509.png b/web/static/images/emoji/1f509.png Binary files differnew file mode 100644 index 000000000..0d7011bcb --- /dev/null +++ b/web/static/images/emoji/1f509.png diff --git a/web/static/images/emoji/1f50a.png b/web/static/images/emoji/1f50a.png Binary files differnew file mode 100644 index 000000000..e84702e56 --- /dev/null +++ b/web/static/images/emoji/1f50a.png diff --git a/web/static/images/emoji/1f50b.png b/web/static/images/emoji/1f50b.png Binary files differnew file mode 100644 index 000000000..9de506348 --- /dev/null +++ b/web/static/images/emoji/1f50b.png diff --git a/web/static/images/emoji/1f50c.png b/web/static/images/emoji/1f50c.png Binary files differnew file mode 100644 index 000000000..e15d4d5ad --- /dev/null +++ b/web/static/images/emoji/1f50c.png diff --git a/web/static/images/emoji/1f50d.png b/web/static/images/emoji/1f50d.png Binary files differnew file mode 100644 index 000000000..99982fbec --- /dev/null +++ b/web/static/images/emoji/1f50d.png diff --git a/web/static/images/emoji/1f50e.png b/web/static/images/emoji/1f50e.png Binary files differnew file mode 100644 index 000000000..95d12da0e --- /dev/null +++ b/web/static/images/emoji/1f50e.png diff --git a/web/static/images/emoji/1f50f.png b/web/static/images/emoji/1f50f.png Binary files differnew file mode 100644 index 000000000..274d6f888 --- /dev/null +++ b/web/static/images/emoji/1f50f.png diff --git a/web/static/images/emoji/1f510.png b/web/static/images/emoji/1f510.png Binary files differnew file mode 100644 index 000000000..d2bddb1eb --- /dev/null +++ b/web/static/images/emoji/1f510.png diff --git a/web/static/images/emoji/1f511.png b/web/static/images/emoji/1f511.png Binary files differnew file mode 100644 index 000000000..2739df6db --- /dev/null +++ b/web/static/images/emoji/1f511.png diff --git a/web/static/images/emoji/1f512.png b/web/static/images/emoji/1f512.png Binary files differnew file mode 100644 index 000000000..f1dc55a1a --- /dev/null +++ b/web/static/images/emoji/1f512.png diff --git a/web/static/images/emoji/1f513.png b/web/static/images/emoji/1f513.png Binary files differnew file mode 100644 index 000000000..db05d1b73 --- /dev/null +++ b/web/static/images/emoji/1f513.png diff --git a/web/static/images/emoji/1f514.png b/web/static/images/emoji/1f514.png Binary files differnew file mode 100644 index 000000000..d1473557e --- /dev/null +++ b/web/static/images/emoji/1f514.png diff --git a/web/static/images/emoji/1f515.png b/web/static/images/emoji/1f515.png Binary files differnew file mode 100644 index 000000000..30e8858aa --- /dev/null +++ b/web/static/images/emoji/1f515.png diff --git a/web/static/images/emoji/1f516.png b/web/static/images/emoji/1f516.png Binary files differnew file mode 100644 index 000000000..05a3325c8 --- /dev/null +++ b/web/static/images/emoji/1f516.png diff --git a/web/static/images/emoji/1f517.png b/web/static/images/emoji/1f517.png Binary files differnew file mode 100644 index 000000000..0954f494a --- /dev/null +++ b/web/static/images/emoji/1f517.png diff --git a/web/static/images/emoji/1f518.png b/web/static/images/emoji/1f518.png Binary files differnew file mode 100644 index 000000000..bbc36031e --- /dev/null +++ b/web/static/images/emoji/1f518.png diff --git a/web/static/images/emoji/1f519.png b/web/static/images/emoji/1f519.png Binary files differnew file mode 100644 index 000000000..13983d277 --- /dev/null +++ b/web/static/images/emoji/1f519.png diff --git a/web/static/images/emoji/1f51a.png b/web/static/images/emoji/1f51a.png Binary files differnew file mode 100644 index 000000000..03bfb2869 --- /dev/null +++ b/web/static/images/emoji/1f51a.png diff --git a/web/static/images/emoji/1f51b.png b/web/static/images/emoji/1f51b.png Binary files differnew file mode 100644 index 000000000..3c369cb1d --- /dev/null +++ b/web/static/images/emoji/1f51b.png diff --git a/web/static/images/emoji/1f51c.png b/web/static/images/emoji/1f51c.png Binary files differnew file mode 100644 index 000000000..c795ce03f --- /dev/null +++ b/web/static/images/emoji/1f51c.png diff --git a/web/static/images/emoji/1f51d.png b/web/static/images/emoji/1f51d.png Binary files differnew file mode 100644 index 000000000..5c6eb3c52 --- /dev/null +++ b/web/static/images/emoji/1f51d.png diff --git a/web/static/images/emoji/1f51e.png b/web/static/images/emoji/1f51e.png Binary files differnew file mode 100644 index 000000000..603ce57ea --- /dev/null +++ b/web/static/images/emoji/1f51e.png diff --git a/web/static/images/emoji/1f51f.png b/web/static/images/emoji/1f51f.png Binary files differnew file mode 100644 index 000000000..5f817b8d6 --- /dev/null +++ b/web/static/images/emoji/1f51f.png diff --git a/web/static/images/emoji/1f520.png b/web/static/images/emoji/1f520.png Binary files differnew file mode 100644 index 000000000..044554f6f --- /dev/null +++ b/web/static/images/emoji/1f520.png diff --git a/web/static/images/emoji/1f521.png b/web/static/images/emoji/1f521.png Binary files differnew file mode 100644 index 000000000..a79d4311d --- /dev/null +++ b/web/static/images/emoji/1f521.png diff --git a/web/static/images/emoji/1f522.png b/web/static/images/emoji/1f522.png Binary files differnew file mode 100644 index 000000000..17ec5f12a --- /dev/null +++ b/web/static/images/emoji/1f522.png diff --git a/web/static/images/emoji/1f523.png b/web/static/images/emoji/1f523.png Binary files differnew file mode 100644 index 000000000..f1cdcb734 --- /dev/null +++ b/web/static/images/emoji/1f523.png diff --git a/web/static/images/emoji/1f524.png b/web/static/images/emoji/1f524.png Binary files differnew file mode 100644 index 000000000..51dc1bf76 --- /dev/null +++ b/web/static/images/emoji/1f524.png diff --git a/web/static/images/emoji/1f525.png b/web/static/images/emoji/1f525.png Binary files differnew file mode 100644 index 000000000..3149ed675 --- /dev/null +++ b/web/static/images/emoji/1f525.png diff --git a/web/static/images/emoji/1f526.png b/web/static/images/emoji/1f526.png Binary files differnew file mode 100644 index 000000000..3e64a0d0b --- /dev/null +++ b/web/static/images/emoji/1f526.png diff --git a/web/static/images/emoji/1f527.png b/web/static/images/emoji/1f527.png Binary files differnew file mode 100644 index 000000000..64a0d6a76 --- /dev/null +++ b/web/static/images/emoji/1f527.png diff --git a/web/static/images/emoji/1f528.png b/web/static/images/emoji/1f528.png Binary files differnew file mode 100644 index 000000000..6d91d1320 --- /dev/null +++ b/web/static/images/emoji/1f528.png diff --git a/web/static/images/emoji/1f529.png b/web/static/images/emoji/1f529.png Binary files differnew file mode 100644 index 000000000..fee747a01 --- /dev/null +++ b/web/static/images/emoji/1f529.png diff --git a/web/static/images/emoji/1f52a.png b/web/static/images/emoji/1f52a.png Binary files differnew file mode 100644 index 000000000..43249ba94 --- /dev/null +++ b/web/static/images/emoji/1f52a.png diff --git a/web/static/images/emoji/1f52b.png b/web/static/images/emoji/1f52b.png Binary files differnew file mode 100644 index 000000000..f0e6b8fab --- /dev/null +++ b/web/static/images/emoji/1f52b.png diff --git a/web/static/images/emoji/1f52c.png b/web/static/images/emoji/1f52c.png Binary files differnew file mode 100644 index 000000000..944293d1e --- /dev/null +++ b/web/static/images/emoji/1f52c.png diff --git a/web/static/images/emoji/1f52d.png b/web/static/images/emoji/1f52d.png Binary files differnew file mode 100644 index 000000000..8fc07d50f --- /dev/null +++ b/web/static/images/emoji/1f52d.png diff --git a/web/static/images/emoji/1f52e.png b/web/static/images/emoji/1f52e.png Binary files differnew file mode 100644 index 000000000..d9ee3b4f3 --- /dev/null +++ b/web/static/images/emoji/1f52e.png diff --git a/web/static/images/emoji/1f52f.png b/web/static/images/emoji/1f52f.png Binary files differnew file mode 100644 index 000000000..3b590a628 --- /dev/null +++ b/web/static/images/emoji/1f52f.png diff --git a/web/static/images/emoji/1f530.png b/web/static/images/emoji/1f530.png Binary files differnew file mode 100644 index 000000000..5f429bf63 --- /dev/null +++ b/web/static/images/emoji/1f530.png diff --git a/web/static/images/emoji/1f531.png b/web/static/images/emoji/1f531.png Binary files differnew file mode 100644 index 000000000..ae1e0bc88 --- /dev/null +++ b/web/static/images/emoji/1f531.png diff --git a/web/static/images/emoji/1f532.png b/web/static/images/emoji/1f532.png Binary files differnew file mode 100644 index 000000000..06c68f23e --- /dev/null +++ b/web/static/images/emoji/1f532.png diff --git a/web/static/images/emoji/1f533.png b/web/static/images/emoji/1f533.png Binary files differnew file mode 100644 index 000000000..df974d948 --- /dev/null +++ b/web/static/images/emoji/1f533.png diff --git a/web/static/images/emoji/1f534.png b/web/static/images/emoji/1f534.png Binary files differnew file mode 100644 index 000000000..bd50ae446 --- /dev/null +++ b/web/static/images/emoji/1f534.png diff --git a/web/static/images/emoji/1f535.png b/web/static/images/emoji/1f535.png Binary files differnew file mode 100644 index 000000000..ddc4e7e59 --- /dev/null +++ b/web/static/images/emoji/1f535.png diff --git a/web/static/images/emoji/1f536.png b/web/static/images/emoji/1f536.png Binary files differnew file mode 100644 index 000000000..f8c060fd2 --- /dev/null +++ b/web/static/images/emoji/1f536.png diff --git a/web/static/images/emoji/1f537.png b/web/static/images/emoji/1f537.png Binary files differnew file mode 100644 index 000000000..fbe133557 --- /dev/null +++ b/web/static/images/emoji/1f537.png diff --git a/web/static/images/emoji/1f538.png b/web/static/images/emoji/1f538.png Binary files differnew file mode 100644 index 000000000..64a03b216 --- /dev/null +++ b/web/static/images/emoji/1f538.png diff --git a/web/static/images/emoji/1f539.png b/web/static/images/emoji/1f539.png Binary files differnew file mode 100644 index 000000000..9b8ded84a --- /dev/null +++ b/web/static/images/emoji/1f539.png diff --git a/web/static/images/emoji/1f53a.png b/web/static/images/emoji/1f53a.png Binary files differnew file mode 100644 index 000000000..b321f2a49 --- /dev/null +++ b/web/static/images/emoji/1f53a.png diff --git a/web/static/images/emoji/1f53b.png b/web/static/images/emoji/1f53b.png Binary files differnew file mode 100644 index 000000000..4c9586d24 --- /dev/null +++ b/web/static/images/emoji/1f53b.png diff --git a/web/static/images/emoji/1f53c.png b/web/static/images/emoji/1f53c.png Binary files differnew file mode 100644 index 000000000..7752177fd --- /dev/null +++ b/web/static/images/emoji/1f53c.png diff --git a/web/static/images/emoji/1f53d.png b/web/static/images/emoji/1f53d.png Binary files differnew file mode 100644 index 000000000..6694271c4 --- /dev/null +++ b/web/static/images/emoji/1f53d.png diff --git a/web/static/images/emoji/1f546.png b/web/static/images/emoji/1f546.png Binary files differnew file mode 100644 index 000000000..031328aa2 --- /dev/null +++ b/web/static/images/emoji/1f546.png diff --git a/web/static/images/emoji/1f547.png b/web/static/images/emoji/1f547.png Binary files differnew file mode 100644 index 000000000..983217302 --- /dev/null +++ b/web/static/images/emoji/1f547.png diff --git a/web/static/images/emoji/1f548.png b/web/static/images/emoji/1f548.png Binary files differnew file mode 100644 index 000000000..5ceabd8f7 --- /dev/null +++ b/web/static/images/emoji/1f548.png diff --git a/web/static/images/emoji/1f549.png b/web/static/images/emoji/1f549.png Binary files differnew file mode 100644 index 000000000..52cc9f00e --- /dev/null +++ b/web/static/images/emoji/1f549.png diff --git a/web/static/images/emoji/1f54a.png b/web/static/images/emoji/1f54a.png Binary files differnew file mode 100644 index 000000000..e54bfc2b1 --- /dev/null +++ b/web/static/images/emoji/1f54a.png diff --git a/web/static/images/emoji/1f550.png b/web/static/images/emoji/1f550.png Binary files differnew file mode 100644 index 000000000..980085a07 --- /dev/null +++ b/web/static/images/emoji/1f550.png diff --git a/web/static/images/emoji/1f551.png b/web/static/images/emoji/1f551.png Binary files differnew file mode 100644 index 000000000..ba411f8f0 --- /dev/null +++ b/web/static/images/emoji/1f551.png diff --git a/web/static/images/emoji/1f552.png b/web/static/images/emoji/1f552.png Binary files differnew file mode 100644 index 000000000..7978c4251 --- /dev/null +++ b/web/static/images/emoji/1f552.png diff --git a/web/static/images/emoji/1f553.png b/web/static/images/emoji/1f553.png Binary files differnew file mode 100644 index 000000000..4cfceb291 --- /dev/null +++ b/web/static/images/emoji/1f553.png diff --git a/web/static/images/emoji/1f554.png b/web/static/images/emoji/1f554.png Binary files differnew file mode 100644 index 000000000..403b99fb2 --- /dev/null +++ b/web/static/images/emoji/1f554.png diff --git a/web/static/images/emoji/1f555.png b/web/static/images/emoji/1f555.png Binary files differnew file mode 100644 index 000000000..008ac2b9e --- /dev/null +++ b/web/static/images/emoji/1f555.png diff --git a/web/static/images/emoji/1f556.png b/web/static/images/emoji/1f556.png Binary files differnew file mode 100644 index 000000000..067d11165 --- /dev/null +++ b/web/static/images/emoji/1f556.png diff --git a/web/static/images/emoji/1f557.png b/web/static/images/emoji/1f557.png Binary files differnew file mode 100644 index 000000000..c4bdc4080 --- /dev/null +++ b/web/static/images/emoji/1f557.png diff --git a/web/static/images/emoji/1f558.png b/web/static/images/emoji/1f558.png Binary files differnew file mode 100644 index 000000000..467de0ba5 --- /dev/null +++ b/web/static/images/emoji/1f558.png diff --git a/web/static/images/emoji/1f559.png b/web/static/images/emoji/1f559.png Binary files differnew file mode 100644 index 000000000..90f1576d2 --- /dev/null +++ b/web/static/images/emoji/1f559.png diff --git a/web/static/images/emoji/1f55a.png b/web/static/images/emoji/1f55a.png Binary files differnew file mode 100644 index 000000000..918ba245f --- /dev/null +++ b/web/static/images/emoji/1f55a.png diff --git a/web/static/images/emoji/1f55b.png b/web/static/images/emoji/1f55b.png Binary files differnew file mode 100644 index 000000000..d5848e629 --- /dev/null +++ b/web/static/images/emoji/1f55b.png diff --git a/web/static/images/emoji/1f55c.png b/web/static/images/emoji/1f55c.png Binary files differnew file mode 100644 index 000000000..c4675548d --- /dev/null +++ b/web/static/images/emoji/1f55c.png diff --git a/web/static/images/emoji/1f55d.png b/web/static/images/emoji/1f55d.png Binary files differnew file mode 100644 index 000000000..5482453d1 --- /dev/null +++ b/web/static/images/emoji/1f55d.png diff --git a/web/static/images/emoji/1f55e.png b/web/static/images/emoji/1f55e.png Binary files differnew file mode 100644 index 000000000..f66421993 --- /dev/null +++ b/web/static/images/emoji/1f55e.png diff --git a/web/static/images/emoji/1f55f.png b/web/static/images/emoji/1f55f.png Binary files differnew file mode 100644 index 000000000..b93f01e67 --- /dev/null +++ b/web/static/images/emoji/1f55f.png diff --git a/web/static/images/emoji/1f560.png b/web/static/images/emoji/1f560.png Binary files differnew file mode 100644 index 000000000..b2ad07307 --- /dev/null +++ b/web/static/images/emoji/1f560.png diff --git a/web/static/images/emoji/1f561.png b/web/static/images/emoji/1f561.png Binary files differnew file mode 100644 index 000000000..dbabd4eb9 --- /dev/null +++ b/web/static/images/emoji/1f561.png diff --git a/web/static/images/emoji/1f562.png b/web/static/images/emoji/1f562.png Binary files differnew file mode 100644 index 000000000..415894eda --- /dev/null +++ b/web/static/images/emoji/1f562.png diff --git a/web/static/images/emoji/1f563.png b/web/static/images/emoji/1f563.png Binary files differnew file mode 100644 index 000000000..8e899ad48 --- /dev/null +++ b/web/static/images/emoji/1f563.png diff --git a/web/static/images/emoji/1f564.png b/web/static/images/emoji/1f564.png Binary files differnew file mode 100644 index 000000000..d9c91203c --- /dev/null +++ b/web/static/images/emoji/1f564.png diff --git a/web/static/images/emoji/1f565.png b/web/static/images/emoji/1f565.png Binary files differnew file mode 100644 index 000000000..c530b7db4 --- /dev/null +++ b/web/static/images/emoji/1f565.png diff --git a/web/static/images/emoji/1f566.png b/web/static/images/emoji/1f566.png Binary files differnew file mode 100644 index 000000000..e39bbbbb1 --- /dev/null +++ b/web/static/images/emoji/1f566.png diff --git a/web/static/images/emoji/1f567.png b/web/static/images/emoji/1f567.png Binary files differnew file mode 100644 index 000000000..f67ed85f3 --- /dev/null +++ b/web/static/images/emoji/1f567.png diff --git a/web/static/images/emoji/1f568.png b/web/static/images/emoji/1f568.png Binary files differnew file mode 100644 index 000000000..2d90e65b3 --- /dev/null +++ b/web/static/images/emoji/1f568.png diff --git a/web/static/images/emoji/1f569.png b/web/static/images/emoji/1f569.png Binary files differnew file mode 100644 index 000000000..32b23d789 --- /dev/null +++ b/web/static/images/emoji/1f569.png diff --git a/web/static/images/emoji/1f56a.png b/web/static/images/emoji/1f56a.png Binary files differnew file mode 100644 index 000000000..80fda89dd --- /dev/null +++ b/web/static/images/emoji/1f56a.png diff --git a/web/static/images/emoji/1f56b.png b/web/static/images/emoji/1f56b.png Binary files differnew file mode 100644 index 000000000..0101d8785 --- /dev/null +++ b/web/static/images/emoji/1f56b.png diff --git a/web/static/images/emoji/1f56c.png b/web/static/images/emoji/1f56c.png Binary files differnew file mode 100644 index 000000000..9cb585d4a --- /dev/null +++ b/web/static/images/emoji/1f56c.png diff --git a/web/static/images/emoji/1f56d.png b/web/static/images/emoji/1f56d.png Binary files differnew file mode 100644 index 000000000..da703c458 --- /dev/null +++ b/web/static/images/emoji/1f56d.png diff --git a/web/static/images/emoji/1f56e.png b/web/static/images/emoji/1f56e.png Binary files differnew file mode 100644 index 000000000..2f69b084b --- /dev/null +++ b/web/static/images/emoji/1f56e.png diff --git a/web/static/images/emoji/1f56f.png b/web/static/images/emoji/1f56f.png Binary files differnew file mode 100644 index 000000000..d3395073a --- /dev/null +++ b/web/static/images/emoji/1f56f.png diff --git a/web/static/images/emoji/1f570.png b/web/static/images/emoji/1f570.png Binary files differnew file mode 100644 index 000000000..f944ec0c6 --- /dev/null +++ b/web/static/images/emoji/1f570.png diff --git a/web/static/images/emoji/1f571.png b/web/static/images/emoji/1f571.png Binary files differnew file mode 100644 index 000000000..e7df45a04 --- /dev/null +++ b/web/static/images/emoji/1f571.png diff --git a/web/static/images/emoji/1f572.png b/web/static/images/emoji/1f572.png Binary files differnew file mode 100644 index 000000000..f2b6fd31e --- /dev/null +++ b/web/static/images/emoji/1f572.png diff --git a/web/static/images/emoji/1f573.png b/web/static/images/emoji/1f573.png Binary files differnew file mode 100644 index 000000000..ca20daa89 --- /dev/null +++ b/web/static/images/emoji/1f573.png diff --git a/web/static/images/emoji/1f574.png b/web/static/images/emoji/1f574.png Binary files differnew file mode 100644 index 000000000..1c526acbe --- /dev/null +++ b/web/static/images/emoji/1f574.png diff --git a/web/static/images/emoji/1f575.png b/web/static/images/emoji/1f575.png Binary files differnew file mode 100644 index 000000000..9ee45b37b --- /dev/null +++ b/web/static/images/emoji/1f575.png diff --git a/web/static/images/emoji/1f576.png b/web/static/images/emoji/1f576.png Binary files differnew file mode 100644 index 000000000..6ed2172a0 --- /dev/null +++ b/web/static/images/emoji/1f576.png diff --git a/web/static/images/emoji/1f577.png b/web/static/images/emoji/1f577.png Binary files differnew file mode 100644 index 000000000..9e1fe5441 --- /dev/null +++ b/web/static/images/emoji/1f577.png diff --git a/web/static/images/emoji/1f578.png b/web/static/images/emoji/1f578.png Binary files differnew file mode 100644 index 000000000..edad19093 --- /dev/null +++ b/web/static/images/emoji/1f578.png diff --git a/web/static/images/emoji/1f579.png b/web/static/images/emoji/1f579.png Binary files differnew file mode 100644 index 000000000..6808f30fb --- /dev/null +++ b/web/static/images/emoji/1f579.png diff --git a/web/static/images/emoji/1f57b.png b/web/static/images/emoji/1f57b.png Binary files differnew file mode 100644 index 000000000..172c5fcd3 --- /dev/null +++ b/web/static/images/emoji/1f57b.png diff --git a/web/static/images/emoji/1f57e.png b/web/static/images/emoji/1f57e.png Binary files differnew file mode 100644 index 000000000..9f66689a1 --- /dev/null +++ b/web/static/images/emoji/1f57e.png diff --git a/web/static/images/emoji/1f57f.png b/web/static/images/emoji/1f57f.png Binary files differnew file mode 100644 index 000000000..0e3b2c3da --- /dev/null +++ b/web/static/images/emoji/1f57f.png diff --git a/web/static/images/emoji/1f581.png b/web/static/images/emoji/1f581.png Binary files differnew file mode 100644 index 000000000..1b6d000b2 --- /dev/null +++ b/web/static/images/emoji/1f581.png diff --git a/web/static/images/emoji/1f582.png b/web/static/images/emoji/1f582.png Binary files differnew file mode 100644 index 000000000..ebc29b0a1 --- /dev/null +++ b/web/static/images/emoji/1f582.png diff --git a/web/static/images/emoji/1f583.png b/web/static/images/emoji/1f583.png Binary files differnew file mode 100644 index 000000000..77ad89fa7 --- /dev/null +++ b/web/static/images/emoji/1f583.png diff --git a/web/static/images/emoji/1f585.png b/web/static/images/emoji/1f585.png Binary files differnew file mode 100644 index 000000000..777f35a89 --- /dev/null +++ b/web/static/images/emoji/1f585.png diff --git a/web/static/images/emoji/1f586.png b/web/static/images/emoji/1f586.png Binary files differnew file mode 100644 index 000000000..dde00d62f --- /dev/null +++ b/web/static/images/emoji/1f586.png diff --git a/web/static/images/emoji/1f587.png b/web/static/images/emoji/1f587.png Binary files differnew file mode 100644 index 000000000..e449161de --- /dev/null +++ b/web/static/images/emoji/1f587.png diff --git a/web/static/images/emoji/1f588.png b/web/static/images/emoji/1f588.png Binary files differnew file mode 100644 index 000000000..8036d6cbe --- /dev/null +++ b/web/static/images/emoji/1f588.png diff --git a/web/static/images/emoji/1f589.png b/web/static/images/emoji/1f589.png Binary files differnew file mode 100644 index 000000000..d11de2bf0 --- /dev/null +++ b/web/static/images/emoji/1f589.png diff --git a/web/static/images/emoji/1f58a.png b/web/static/images/emoji/1f58a.png Binary files differnew file mode 100644 index 000000000..b363fd8bd --- /dev/null +++ b/web/static/images/emoji/1f58a.png diff --git a/web/static/images/emoji/1f58b.png b/web/static/images/emoji/1f58b.png Binary files differnew file mode 100644 index 000000000..0b4301c18 --- /dev/null +++ b/web/static/images/emoji/1f58b.png diff --git a/web/static/images/emoji/1f58c.png b/web/static/images/emoji/1f58c.png Binary files differnew file mode 100644 index 000000000..49eab81fa --- /dev/null +++ b/web/static/images/emoji/1f58c.png diff --git a/web/static/images/emoji/1f58d.png b/web/static/images/emoji/1f58d.png Binary files differnew file mode 100644 index 000000000..3d8392f9b --- /dev/null +++ b/web/static/images/emoji/1f58d.png diff --git a/web/static/images/emoji/1f58e.png b/web/static/images/emoji/1f58e.png Binary files differnew file mode 100644 index 000000000..629bd17a2 --- /dev/null +++ b/web/static/images/emoji/1f58e.png diff --git a/web/static/images/emoji/1f58f.png b/web/static/images/emoji/1f58f.png Binary files differnew file mode 100644 index 000000000..1e20ede48 --- /dev/null +++ b/web/static/images/emoji/1f58f.png diff --git a/web/static/images/emoji/1f590.png b/web/static/images/emoji/1f590.png Binary files differnew file mode 100644 index 000000000..09046e201 --- /dev/null +++ b/web/static/images/emoji/1f590.png diff --git a/web/static/images/emoji/1f591.png b/web/static/images/emoji/1f591.png Binary files differnew file mode 100644 index 000000000..e7d29d8fe --- /dev/null +++ b/web/static/images/emoji/1f591.png diff --git a/web/static/images/emoji/1f592.png b/web/static/images/emoji/1f592.png Binary files differnew file mode 100644 index 000000000..c39f3300e --- /dev/null +++ b/web/static/images/emoji/1f592.png diff --git a/web/static/images/emoji/1f593.png b/web/static/images/emoji/1f593.png Binary files differnew file mode 100644 index 000000000..ebcdca18a --- /dev/null +++ b/web/static/images/emoji/1f593.png diff --git a/web/static/images/emoji/1f594.png b/web/static/images/emoji/1f594.png Binary files differnew file mode 100644 index 000000000..a5dadf257 --- /dev/null +++ b/web/static/images/emoji/1f594.png diff --git a/web/static/images/emoji/1f595.png b/web/static/images/emoji/1f595.png Binary files differnew file mode 100644 index 000000000..c4e5d4a91 --- /dev/null +++ b/web/static/images/emoji/1f595.png diff --git a/web/static/images/emoji/1f596.png b/web/static/images/emoji/1f596.png Binary files differnew file mode 100644 index 000000000..88e8765e0 --- /dev/null +++ b/web/static/images/emoji/1f596.png diff --git a/web/static/images/emoji/1f597.png b/web/static/images/emoji/1f597.png Binary files differnew file mode 100644 index 000000000..18468bc88 --- /dev/null +++ b/web/static/images/emoji/1f597.png diff --git a/web/static/images/emoji/1f598.png b/web/static/images/emoji/1f598.png Binary files differnew file mode 100644 index 000000000..1abfbc5f6 --- /dev/null +++ b/web/static/images/emoji/1f598.png diff --git a/web/static/images/emoji/1f599.png b/web/static/images/emoji/1f599.png Binary files differnew file mode 100644 index 000000000..5ea3694d6 --- /dev/null +++ b/web/static/images/emoji/1f599.png diff --git a/web/static/images/emoji/1f59e.png b/web/static/images/emoji/1f59e.png Binary files differnew file mode 100644 index 000000000..ef514b6fc --- /dev/null +++ b/web/static/images/emoji/1f59e.png diff --git a/web/static/images/emoji/1f59f.png b/web/static/images/emoji/1f59f.png Binary files differnew file mode 100644 index 000000000..8a1a419ab --- /dev/null +++ b/web/static/images/emoji/1f59f.png diff --git a/web/static/images/emoji/1f5a5.png b/web/static/images/emoji/1f5a5.png Binary files differnew file mode 100644 index 000000000..59fc83484 --- /dev/null +++ b/web/static/images/emoji/1f5a5.png diff --git a/web/static/images/emoji/1f5a6.png b/web/static/images/emoji/1f5a6.png Binary files differnew file mode 100644 index 000000000..ed5be833c --- /dev/null +++ b/web/static/images/emoji/1f5a6.png diff --git a/web/static/images/emoji/1f5a7.png b/web/static/images/emoji/1f5a7.png Binary files differnew file mode 100644 index 000000000..c4bf3dc41 --- /dev/null +++ b/web/static/images/emoji/1f5a7.png diff --git a/web/static/images/emoji/1f5a8.png b/web/static/images/emoji/1f5a8.png Binary files differnew file mode 100644 index 000000000..8d6002d7b --- /dev/null +++ b/web/static/images/emoji/1f5a8.png diff --git a/web/static/images/emoji/1f5a9.png b/web/static/images/emoji/1f5a9.png Binary files differnew file mode 100644 index 000000000..2de66973b --- /dev/null +++ b/web/static/images/emoji/1f5a9.png diff --git a/web/static/images/emoji/1f5aa.png b/web/static/images/emoji/1f5aa.png Binary files differnew file mode 100644 index 000000000..248d29edd --- /dev/null +++ b/web/static/images/emoji/1f5aa.png diff --git a/web/static/images/emoji/1f5ab.png b/web/static/images/emoji/1f5ab.png Binary files differnew file mode 100644 index 000000000..1bc1a86aa --- /dev/null +++ b/web/static/images/emoji/1f5ab.png diff --git a/web/static/images/emoji/1f5ad.png b/web/static/images/emoji/1f5ad.png Binary files differnew file mode 100644 index 000000000..7d58690b1 --- /dev/null +++ b/web/static/images/emoji/1f5ad.png diff --git a/web/static/images/emoji/1f5ae.png b/web/static/images/emoji/1f5ae.png Binary files differnew file mode 100644 index 000000000..a603a417b --- /dev/null +++ b/web/static/images/emoji/1f5ae.png diff --git a/web/static/images/emoji/1f5af.png b/web/static/images/emoji/1f5af.png Binary files differnew file mode 100644 index 000000000..2594e627b --- /dev/null +++ b/web/static/images/emoji/1f5af.png diff --git a/web/static/images/emoji/1f5b2.png b/web/static/images/emoji/1f5b2.png Binary files differnew file mode 100644 index 000000000..3ecf9b87b --- /dev/null +++ b/web/static/images/emoji/1f5b2.png diff --git a/web/static/images/emoji/1f5b3.png b/web/static/images/emoji/1f5b3.png Binary files differnew file mode 100644 index 000000000..548314b95 --- /dev/null +++ b/web/static/images/emoji/1f5b3.png diff --git a/web/static/images/emoji/1f5b4.png b/web/static/images/emoji/1f5b4.png Binary files differnew file mode 100644 index 000000000..c7b052aa3 --- /dev/null +++ b/web/static/images/emoji/1f5b4.png diff --git a/web/static/images/emoji/1f5b8.png b/web/static/images/emoji/1f5b8.png Binary files differnew file mode 100644 index 000000000..471074beb --- /dev/null +++ b/web/static/images/emoji/1f5b8.png diff --git a/web/static/images/emoji/1f5b9.png b/web/static/images/emoji/1f5b9.png Binary files differnew file mode 100644 index 000000000..3da781788 --- /dev/null +++ b/web/static/images/emoji/1f5b9.png diff --git a/web/static/images/emoji/1f5bc.png b/web/static/images/emoji/1f5bc.png Binary files differnew file mode 100644 index 000000000..d2950ba9b --- /dev/null +++ b/web/static/images/emoji/1f5bc.png diff --git a/web/static/images/emoji/1f5bd.png b/web/static/images/emoji/1f5bd.png Binary files differnew file mode 100644 index 000000000..d88582cd4 --- /dev/null +++ b/web/static/images/emoji/1f5bd.png diff --git a/web/static/images/emoji/1f5be.png b/web/static/images/emoji/1f5be.png Binary files differnew file mode 100644 index 000000000..a768f6c67 --- /dev/null +++ b/web/static/images/emoji/1f5be.png diff --git a/web/static/images/emoji/1f5c0.png b/web/static/images/emoji/1f5c0.png Binary files differnew file mode 100644 index 000000000..e0178906c --- /dev/null +++ b/web/static/images/emoji/1f5c0.png diff --git a/web/static/images/emoji/1f5c1.png b/web/static/images/emoji/1f5c1.png Binary files differnew file mode 100644 index 000000000..bbdadc9b4 --- /dev/null +++ b/web/static/images/emoji/1f5c1.png diff --git a/web/static/images/emoji/1f5c2.png b/web/static/images/emoji/1f5c2.png Binary files differnew file mode 100644 index 000000000..b22199edd --- /dev/null +++ b/web/static/images/emoji/1f5c2.png diff --git a/web/static/images/emoji/1f5c3.png b/web/static/images/emoji/1f5c3.png Binary files differnew file mode 100644 index 000000000..c9278f336 --- /dev/null +++ b/web/static/images/emoji/1f5c3.png diff --git a/web/static/images/emoji/1f5c4.png b/web/static/images/emoji/1f5c4.png Binary files differnew file mode 100644 index 000000000..e45c65729 --- /dev/null +++ b/web/static/images/emoji/1f5c4.png diff --git a/web/static/images/emoji/1f5c6.png b/web/static/images/emoji/1f5c6.png Binary files differnew file mode 100644 index 000000000..8b62bb697 --- /dev/null +++ b/web/static/images/emoji/1f5c6.png diff --git a/web/static/images/emoji/1f5c7.png b/web/static/images/emoji/1f5c7.png Binary files differnew file mode 100644 index 000000000..1dc65dea6 --- /dev/null +++ b/web/static/images/emoji/1f5c7.png diff --git a/web/static/images/emoji/1f5c9.png b/web/static/images/emoji/1f5c9.png Binary files differnew file mode 100644 index 000000000..b435ba36c --- /dev/null +++ b/web/static/images/emoji/1f5c9.png diff --git a/web/static/images/emoji/1f5ca.png b/web/static/images/emoji/1f5ca.png Binary files differnew file mode 100644 index 000000000..868d40990 --- /dev/null +++ b/web/static/images/emoji/1f5ca.png diff --git a/web/static/images/emoji/1f5ce.png b/web/static/images/emoji/1f5ce.png Binary files differnew file mode 100644 index 000000000..1ef3ab963 --- /dev/null +++ b/web/static/images/emoji/1f5ce.png diff --git a/web/static/images/emoji/1f5cf.png b/web/static/images/emoji/1f5cf.png Binary files differnew file mode 100644 index 000000000..5c7c06403 --- /dev/null +++ b/web/static/images/emoji/1f5cf.png diff --git a/web/static/images/emoji/1f5d0.png b/web/static/images/emoji/1f5d0.png Binary files differnew file mode 100644 index 000000000..7d59ccd2d --- /dev/null +++ b/web/static/images/emoji/1f5d0.png diff --git a/web/static/images/emoji/1f5d1.png b/web/static/images/emoji/1f5d1.png Binary files differnew file mode 100644 index 000000000..3baef5973 --- /dev/null +++ b/web/static/images/emoji/1f5d1.png diff --git a/web/static/images/emoji/1f5d2.png b/web/static/images/emoji/1f5d2.png Binary files differnew file mode 100644 index 000000000..28bc54348 --- /dev/null +++ b/web/static/images/emoji/1f5d2.png diff --git a/web/static/images/emoji/1f5d3.png b/web/static/images/emoji/1f5d3.png Binary files differnew file mode 100644 index 000000000..ce73aecfa --- /dev/null +++ b/web/static/images/emoji/1f5d3.png diff --git a/web/static/images/emoji/1f5d4.png b/web/static/images/emoji/1f5d4.png Binary files differnew file mode 100644 index 000000000..237192814 --- /dev/null +++ b/web/static/images/emoji/1f5d4.png diff --git a/web/static/images/emoji/1f5d8.png b/web/static/images/emoji/1f5d8.png Binary files differnew file mode 100644 index 000000000..65b6a0ad9 --- /dev/null +++ b/web/static/images/emoji/1f5d8.png diff --git a/web/static/images/emoji/1f5d9.png b/web/static/images/emoji/1f5d9.png Binary files differnew file mode 100644 index 000000000..75c08401d --- /dev/null +++ b/web/static/images/emoji/1f5d9.png diff --git a/web/static/images/emoji/1f5dc.png b/web/static/images/emoji/1f5dc.png Binary files differnew file mode 100644 index 000000000..08c06264e --- /dev/null +++ b/web/static/images/emoji/1f5dc.png diff --git a/web/static/images/emoji/1f5dd.png b/web/static/images/emoji/1f5dd.png Binary files differnew file mode 100644 index 000000000..d153b6888 --- /dev/null +++ b/web/static/images/emoji/1f5dd.png diff --git a/web/static/images/emoji/1f5de.png b/web/static/images/emoji/1f5de.png Binary files differnew file mode 100644 index 000000000..4254eb5f2 --- /dev/null +++ b/web/static/images/emoji/1f5de.png diff --git a/web/static/images/emoji/1f5e0.png b/web/static/images/emoji/1f5e0.png Binary files differnew file mode 100644 index 000000000..d60c9803e --- /dev/null +++ b/web/static/images/emoji/1f5e0.png diff --git a/web/static/images/emoji/1f5e1.png b/web/static/images/emoji/1f5e1.png Binary files differnew file mode 100644 index 000000000..8bfeac95d --- /dev/null +++ b/web/static/images/emoji/1f5e1.png diff --git a/web/static/images/emoji/1f5e2.png b/web/static/images/emoji/1f5e2.png Binary files differnew file mode 100644 index 000000000..50f2cac22 --- /dev/null +++ b/web/static/images/emoji/1f5e2.png diff --git a/web/static/images/emoji/1f5e3.png b/web/static/images/emoji/1f5e3.png Binary files differnew file mode 100644 index 000000000..137a3c4c5 --- /dev/null +++ b/web/static/images/emoji/1f5e3.png diff --git a/web/static/images/emoji/1f5e8.png b/web/static/images/emoji/1f5e8.png Binary files differnew file mode 100644 index 000000000..81313baae --- /dev/null +++ b/web/static/images/emoji/1f5e8.png diff --git a/web/static/images/emoji/1f5e9.png b/web/static/images/emoji/1f5e9.png Binary files differnew file mode 100644 index 000000000..4644940a0 --- /dev/null +++ b/web/static/images/emoji/1f5e9.png diff --git a/web/static/images/emoji/1f5ea.png b/web/static/images/emoji/1f5ea.png Binary files differnew file mode 100644 index 000000000..41b490e79 --- /dev/null +++ b/web/static/images/emoji/1f5ea.png diff --git a/web/static/images/emoji/1f5eb.png b/web/static/images/emoji/1f5eb.png Binary files differnew file mode 100644 index 000000000..5b054548e --- /dev/null +++ b/web/static/images/emoji/1f5eb.png diff --git a/web/static/images/emoji/1f5ec.png b/web/static/images/emoji/1f5ec.png Binary files differnew file mode 100644 index 000000000..6d905ed80 --- /dev/null +++ b/web/static/images/emoji/1f5ec.png diff --git a/web/static/images/emoji/1f5ed.png b/web/static/images/emoji/1f5ed.png Binary files differnew file mode 100644 index 000000000..3ea461a24 --- /dev/null +++ b/web/static/images/emoji/1f5ed.png diff --git a/web/static/images/emoji/1f5ee.png b/web/static/images/emoji/1f5ee.png Binary files differnew file mode 100644 index 000000000..c4a4a073c --- /dev/null +++ b/web/static/images/emoji/1f5ee.png diff --git a/web/static/images/emoji/1f5ef.png b/web/static/images/emoji/1f5ef.png Binary files differnew file mode 100644 index 000000000..8e25fa6b4 --- /dev/null +++ b/web/static/images/emoji/1f5ef.png diff --git a/web/static/images/emoji/1f5f0.png b/web/static/images/emoji/1f5f0.png Binary files differnew file mode 100644 index 000000000..f99be5272 --- /dev/null +++ b/web/static/images/emoji/1f5f0.png diff --git a/web/static/images/emoji/1f5f1.png b/web/static/images/emoji/1f5f1.png Binary files differnew file mode 100644 index 000000000..6bdf533f1 --- /dev/null +++ b/web/static/images/emoji/1f5f1.png diff --git a/web/static/images/emoji/1f5f2.png b/web/static/images/emoji/1f5f2.png Binary files differnew file mode 100644 index 000000000..67dfb3633 --- /dev/null +++ b/web/static/images/emoji/1f5f2.png diff --git a/web/static/images/emoji/1f5f3.png b/web/static/images/emoji/1f5f3.png Binary files differnew file mode 100644 index 000000000..e97e4727e --- /dev/null +++ b/web/static/images/emoji/1f5f3.png diff --git a/web/static/images/emoji/1f5f4.png b/web/static/images/emoji/1f5f4.png Binary files differnew file mode 100644 index 000000000..431df8e24 --- /dev/null +++ b/web/static/images/emoji/1f5f4.png diff --git a/web/static/images/emoji/1f5f5.png b/web/static/images/emoji/1f5f5.png Binary files differnew file mode 100644 index 000000000..260410821 --- /dev/null +++ b/web/static/images/emoji/1f5f5.png diff --git a/web/static/images/emoji/1f5f8.png b/web/static/images/emoji/1f5f8.png Binary files differnew file mode 100644 index 000000000..350aaaa3e --- /dev/null +++ b/web/static/images/emoji/1f5f8.png diff --git a/web/static/images/emoji/1f5f9.png b/web/static/images/emoji/1f5f9.png Binary files differnew file mode 100644 index 000000000..ecbc97fa4 --- /dev/null +++ b/web/static/images/emoji/1f5f9.png diff --git a/web/static/images/emoji/1f5fa.png b/web/static/images/emoji/1f5fa.png Binary files differnew file mode 100644 index 000000000..799747f8f --- /dev/null +++ b/web/static/images/emoji/1f5fa.png diff --git a/web/static/images/emoji/1f5fb.png b/web/static/images/emoji/1f5fb.png Binary files differnew file mode 100644 index 000000000..51d1aeab1 --- /dev/null +++ b/web/static/images/emoji/1f5fb.png diff --git a/web/static/images/emoji/1f5fc.png b/web/static/images/emoji/1f5fc.png Binary files differnew file mode 100644 index 000000000..8833f08a5 --- /dev/null +++ b/web/static/images/emoji/1f5fc.png diff --git a/web/static/images/emoji/1f5fd.png b/web/static/images/emoji/1f5fd.png Binary files differnew file mode 100644 index 000000000..709fd6bff --- /dev/null +++ b/web/static/images/emoji/1f5fd.png diff --git a/web/static/images/emoji/1f5fe.png b/web/static/images/emoji/1f5fe.png Binary files differnew file mode 100644 index 000000000..79bb896f9 --- /dev/null +++ b/web/static/images/emoji/1f5fe.png diff --git a/web/static/images/emoji/1f5ff.png b/web/static/images/emoji/1f5ff.png Binary files differnew file mode 100644 index 000000000..247d34e25 --- /dev/null +++ b/web/static/images/emoji/1f5ff.png diff --git a/web/static/images/emoji/1f600.png b/web/static/images/emoji/1f600.png Binary files differnew file mode 100644 index 000000000..1a5edc7be --- /dev/null +++ b/web/static/images/emoji/1f600.png diff --git a/web/static/images/emoji/1f601.png b/web/static/images/emoji/1f601.png Binary files differnew file mode 100644 index 000000000..bf4d098b9 --- /dev/null +++ b/web/static/images/emoji/1f601.png diff --git a/web/static/images/emoji/1f602.png b/web/static/images/emoji/1f602.png Binary files differnew file mode 100644 index 000000000..bc1abb7a4 --- /dev/null +++ b/web/static/images/emoji/1f602.png diff --git a/web/static/images/emoji/1f603.png b/web/static/images/emoji/1f603.png Binary files differnew file mode 100644 index 000000000..eb281633c --- /dev/null +++ b/web/static/images/emoji/1f603.png diff --git a/web/static/images/emoji/1f604.png b/web/static/images/emoji/1f604.png Binary files differnew file mode 100644 index 000000000..63beffb17 --- /dev/null +++ b/web/static/images/emoji/1f604.png diff --git a/web/static/images/emoji/1f605.png b/web/static/images/emoji/1f605.png Binary files differnew file mode 100644 index 000000000..691ffa771 --- /dev/null +++ b/web/static/images/emoji/1f605.png diff --git a/web/static/images/emoji/1f606.png b/web/static/images/emoji/1f606.png Binary files differnew file mode 100644 index 000000000..d7e70b1a4 --- /dev/null +++ b/web/static/images/emoji/1f606.png diff --git a/web/static/images/emoji/1f607.png b/web/static/images/emoji/1f607.png Binary files differnew file mode 100644 index 000000000..1c449201d --- /dev/null +++ b/web/static/images/emoji/1f607.png diff --git a/web/static/images/emoji/1f608.png b/web/static/images/emoji/1f608.png Binary files differnew file mode 100644 index 000000000..6e36a04e7 --- /dev/null +++ b/web/static/images/emoji/1f608.png diff --git a/web/static/images/emoji/1f609.png b/web/static/images/emoji/1f609.png Binary files differnew file mode 100644 index 000000000..d2ae627f7 --- /dev/null +++ b/web/static/images/emoji/1f609.png diff --git a/web/static/images/emoji/1f60a.png b/web/static/images/emoji/1f60a.png Binary files differnew file mode 100644 index 000000000..1733df545 --- /dev/null +++ b/web/static/images/emoji/1f60a.png diff --git a/web/static/images/emoji/1f60b.png b/web/static/images/emoji/1f60b.png Binary files differnew file mode 100644 index 000000000..7a353a7e8 --- /dev/null +++ b/web/static/images/emoji/1f60b.png diff --git a/web/static/images/emoji/1f60c.png b/web/static/images/emoji/1f60c.png Binary files differnew file mode 100644 index 000000000..3cb7aeced --- /dev/null +++ b/web/static/images/emoji/1f60c.png diff --git a/web/static/images/emoji/1f60d.png b/web/static/images/emoji/1f60d.png Binary files differnew file mode 100644 index 000000000..c48431cb8 --- /dev/null +++ b/web/static/images/emoji/1f60d.png diff --git a/web/static/images/emoji/1f60e.png b/web/static/images/emoji/1f60e.png Binary files differnew file mode 100644 index 000000000..6d97948de --- /dev/null +++ b/web/static/images/emoji/1f60e.png diff --git a/web/static/images/emoji/1f60f.png b/web/static/images/emoji/1f60f.png Binary files differnew file mode 100644 index 000000000..c7b1ac127 --- /dev/null +++ b/web/static/images/emoji/1f60f.png diff --git a/web/static/images/emoji/1f610.png b/web/static/images/emoji/1f610.png Binary files differnew file mode 100644 index 000000000..6cabdf2f4 --- /dev/null +++ b/web/static/images/emoji/1f610.png diff --git a/web/static/images/emoji/1f611.png b/web/static/images/emoji/1f611.png Binary files differnew file mode 100644 index 000000000..404129c98 --- /dev/null +++ b/web/static/images/emoji/1f611.png diff --git a/web/static/images/emoji/1f612.png b/web/static/images/emoji/1f612.png Binary files differnew file mode 100644 index 000000000..9d406ca65 --- /dev/null +++ b/web/static/images/emoji/1f612.png diff --git a/web/static/images/emoji/1f613.png b/web/static/images/emoji/1f613.png Binary files differnew file mode 100644 index 000000000..1c590918c --- /dev/null +++ b/web/static/images/emoji/1f613.png diff --git a/web/static/images/emoji/1f614.png b/web/static/images/emoji/1f614.png Binary files differnew file mode 100644 index 000000000..ac55cb0f6 --- /dev/null +++ b/web/static/images/emoji/1f614.png diff --git a/web/static/images/emoji/1f615.png b/web/static/images/emoji/1f615.png Binary files differnew file mode 100644 index 000000000..6bb66752f --- /dev/null +++ b/web/static/images/emoji/1f615.png diff --git a/web/static/images/emoji/1f616.png b/web/static/images/emoji/1f616.png Binary files differnew file mode 100644 index 000000000..da0e1cad0 --- /dev/null +++ b/web/static/images/emoji/1f616.png diff --git a/web/static/images/emoji/1f617.png b/web/static/images/emoji/1f617.png Binary files differnew file mode 100644 index 000000000..b00212407 --- /dev/null +++ b/web/static/images/emoji/1f617.png diff --git a/web/static/images/emoji/1f618.png b/web/static/images/emoji/1f618.png Binary files differnew file mode 100644 index 000000000..834ee8ec9 --- /dev/null +++ b/web/static/images/emoji/1f618.png diff --git a/web/static/images/emoji/1f619.png b/web/static/images/emoji/1f619.png Binary files differnew file mode 100644 index 000000000..7cbac1bf0 --- /dev/null +++ b/web/static/images/emoji/1f619.png diff --git a/web/static/images/emoji/1f61a.png b/web/static/images/emoji/1f61a.png Binary files differnew file mode 100644 index 000000000..523ef0453 --- /dev/null +++ b/web/static/images/emoji/1f61a.png diff --git a/web/static/images/emoji/1f61b.png b/web/static/images/emoji/1f61b.png Binary files differnew file mode 100644 index 000000000..3fa455255 --- /dev/null +++ b/web/static/images/emoji/1f61b.png diff --git a/web/static/images/emoji/1f61c.png b/web/static/images/emoji/1f61c.png Binary files differnew file mode 100644 index 000000000..a93847556 --- /dev/null +++ b/web/static/images/emoji/1f61c.png diff --git a/web/static/images/emoji/1f61d.png b/web/static/images/emoji/1f61d.png Binary files differnew file mode 100644 index 000000000..b599a5f57 --- /dev/null +++ b/web/static/images/emoji/1f61d.png diff --git a/web/static/images/emoji/1f61e.png b/web/static/images/emoji/1f61e.png Binary files differnew file mode 100644 index 000000000..9643415e6 --- /dev/null +++ b/web/static/images/emoji/1f61e.png diff --git a/web/static/images/emoji/1f61f.png b/web/static/images/emoji/1f61f.png Binary files differnew file mode 100644 index 000000000..c26a5f5a4 --- /dev/null +++ b/web/static/images/emoji/1f61f.png diff --git a/web/static/images/emoji/1f620.png b/web/static/images/emoji/1f620.png Binary files differnew file mode 100644 index 000000000..103961ee4 --- /dev/null +++ b/web/static/images/emoji/1f620.png diff --git a/web/static/images/emoji/1f621.png b/web/static/images/emoji/1f621.png Binary files differnew file mode 100644 index 000000000..c7f2df28c --- /dev/null +++ b/web/static/images/emoji/1f621.png diff --git a/web/static/images/emoji/1f622.png b/web/static/images/emoji/1f622.png Binary files differnew file mode 100644 index 000000000..dd17cbcca --- /dev/null +++ b/web/static/images/emoji/1f622.png diff --git a/web/static/images/emoji/1f623.png b/web/static/images/emoji/1f623.png Binary files differnew file mode 100644 index 000000000..ba1550418 --- /dev/null +++ b/web/static/images/emoji/1f623.png diff --git a/web/static/images/emoji/1f624.png b/web/static/images/emoji/1f624.png Binary files differnew file mode 100644 index 000000000..5d0f2bf16 --- /dev/null +++ b/web/static/images/emoji/1f624.png diff --git a/web/static/images/emoji/1f625.png b/web/static/images/emoji/1f625.png Binary files differnew file mode 100644 index 000000000..bcea87523 --- /dev/null +++ b/web/static/images/emoji/1f625.png diff --git a/web/static/images/emoji/1f626.png b/web/static/images/emoji/1f626.png Binary files differnew file mode 100644 index 000000000..0593fe678 --- /dev/null +++ b/web/static/images/emoji/1f626.png diff --git a/web/static/images/emoji/1f627.png b/web/static/images/emoji/1f627.png Binary files differnew file mode 100644 index 000000000..31b14f781 --- /dev/null +++ b/web/static/images/emoji/1f627.png diff --git a/web/static/images/emoji/1f628.png b/web/static/images/emoji/1f628.png Binary files differnew file mode 100644 index 000000000..4ac78c208 --- /dev/null +++ b/web/static/images/emoji/1f628.png diff --git a/web/static/images/emoji/1f629.png b/web/static/images/emoji/1f629.png Binary files differnew file mode 100644 index 000000000..1c18789e8 --- /dev/null +++ b/web/static/images/emoji/1f629.png diff --git a/web/static/images/emoji/1f62a.png b/web/static/images/emoji/1f62a.png Binary files differnew file mode 100644 index 000000000..5269b493c --- /dev/null +++ b/web/static/images/emoji/1f62a.png diff --git a/web/static/images/emoji/1f62b.png b/web/static/images/emoji/1f62b.png Binary files differnew file mode 100644 index 000000000..adf5fa0fc --- /dev/null +++ b/web/static/images/emoji/1f62b.png diff --git a/web/static/images/emoji/1f62c.png b/web/static/images/emoji/1f62c.png Binary files differnew file mode 100644 index 000000000..ea4458d8f --- /dev/null +++ b/web/static/images/emoji/1f62c.png diff --git a/web/static/images/emoji/1f62d.png b/web/static/images/emoji/1f62d.png Binary files differnew file mode 100644 index 000000000..1339cc6ec --- /dev/null +++ b/web/static/images/emoji/1f62d.png diff --git a/web/static/images/emoji/1f62e.png b/web/static/images/emoji/1f62e.png Binary files differnew file mode 100644 index 000000000..3f9cc3fff --- /dev/null +++ b/web/static/images/emoji/1f62e.png diff --git a/web/static/images/emoji/1f62f.png b/web/static/images/emoji/1f62f.png Binary files differnew file mode 100644 index 000000000..443ed5811 --- /dev/null +++ b/web/static/images/emoji/1f62f.png diff --git a/web/static/images/emoji/1f630.png b/web/static/images/emoji/1f630.png Binary files differnew file mode 100644 index 000000000..f488a3ec3 --- /dev/null +++ b/web/static/images/emoji/1f630.png diff --git a/web/static/images/emoji/1f631.png b/web/static/images/emoji/1f631.png Binary files differnew file mode 100644 index 000000000..ea77d3e6b --- /dev/null +++ b/web/static/images/emoji/1f631.png diff --git a/web/static/images/emoji/1f632.png b/web/static/images/emoji/1f632.png Binary files differnew file mode 100644 index 000000000..7be652cab --- /dev/null +++ b/web/static/images/emoji/1f632.png diff --git a/web/static/images/emoji/1f633.png b/web/static/images/emoji/1f633.png Binary files differnew file mode 100644 index 000000000..44bd60154 --- /dev/null +++ b/web/static/images/emoji/1f633.png diff --git a/web/static/images/emoji/1f634.png b/web/static/images/emoji/1f634.png Binary files differnew file mode 100644 index 000000000..04ed2ea52 --- /dev/null +++ b/web/static/images/emoji/1f634.png diff --git a/web/static/images/emoji/1f635.png b/web/static/images/emoji/1f635.png Binary files differnew file mode 100644 index 000000000..a23dc7e31 --- /dev/null +++ b/web/static/images/emoji/1f635.png diff --git a/web/static/images/emoji/1f636.png b/web/static/images/emoji/1f636.png Binary files differnew file mode 100644 index 000000000..549fff988 --- /dev/null +++ b/web/static/images/emoji/1f636.png diff --git a/web/static/images/emoji/1f637.png b/web/static/images/emoji/1f637.png Binary files differnew file mode 100644 index 000000000..7110927b8 --- /dev/null +++ b/web/static/images/emoji/1f637.png diff --git a/web/static/images/emoji/1f638.png b/web/static/images/emoji/1f638.png Binary files differnew file mode 100644 index 000000000..c54e14b53 --- /dev/null +++ b/web/static/images/emoji/1f638.png diff --git a/web/static/images/emoji/1f639.png b/web/static/images/emoji/1f639.png Binary files differnew file mode 100644 index 000000000..15a2aa0e3 --- /dev/null +++ b/web/static/images/emoji/1f639.png diff --git a/web/static/images/emoji/1f63a.png b/web/static/images/emoji/1f63a.png Binary files differnew file mode 100644 index 000000000..93872133e --- /dev/null +++ b/web/static/images/emoji/1f63a.png diff --git a/web/static/images/emoji/1f63b.png b/web/static/images/emoji/1f63b.png Binary files differnew file mode 100644 index 000000000..7ef231efd --- /dev/null +++ b/web/static/images/emoji/1f63b.png diff --git a/web/static/images/emoji/1f63c.png b/web/static/images/emoji/1f63c.png Binary files differnew file mode 100644 index 000000000..6cb9d069d --- /dev/null +++ b/web/static/images/emoji/1f63c.png diff --git a/web/static/images/emoji/1f63d.png b/web/static/images/emoji/1f63d.png Binary files differnew file mode 100644 index 000000000..e62592137 --- /dev/null +++ b/web/static/images/emoji/1f63d.png diff --git a/web/static/images/emoji/1f63e.png b/web/static/images/emoji/1f63e.png Binary files differnew file mode 100644 index 000000000..a001bcfa7 --- /dev/null +++ b/web/static/images/emoji/1f63e.png diff --git a/web/static/images/emoji/1f63f.png b/web/static/images/emoji/1f63f.png Binary files differnew file mode 100644 index 000000000..c467c2198 --- /dev/null +++ b/web/static/images/emoji/1f63f.png diff --git a/web/static/images/emoji/1f640.png b/web/static/images/emoji/1f640.png Binary files differnew file mode 100644 index 000000000..a4e67e97d --- /dev/null +++ b/web/static/images/emoji/1f640.png diff --git a/web/static/images/emoji/1f641.png b/web/static/images/emoji/1f641.png Binary files differnew file mode 100644 index 000000000..55e16c1cf --- /dev/null +++ b/web/static/images/emoji/1f641.png diff --git a/web/static/images/emoji/1f642.png b/web/static/images/emoji/1f642.png Binary files differnew file mode 100644 index 000000000..1bb673b36 --- /dev/null +++ b/web/static/images/emoji/1f642.png diff --git a/web/static/images/emoji/1f645.png b/web/static/images/emoji/1f645.png Binary files differnew file mode 100644 index 000000000..d7eead9de --- /dev/null +++ b/web/static/images/emoji/1f645.png diff --git a/web/static/images/emoji/1f646.png b/web/static/images/emoji/1f646.png Binary files differnew file mode 100644 index 000000000..fcafef225 --- /dev/null +++ b/web/static/images/emoji/1f646.png diff --git a/web/static/images/emoji/1f647.png b/web/static/images/emoji/1f647.png Binary files differnew file mode 100644 index 000000000..f763bdfe9 --- /dev/null +++ b/web/static/images/emoji/1f647.png diff --git a/web/static/images/emoji/1f648.png b/web/static/images/emoji/1f648.png Binary files differnew file mode 100644 index 000000000..df1fb6607 --- /dev/null +++ b/web/static/images/emoji/1f648.png diff --git a/web/static/images/emoji/1f649.png b/web/static/images/emoji/1f649.png Binary files differnew file mode 100644 index 000000000..e909ebf24 --- /dev/null +++ b/web/static/images/emoji/1f649.png diff --git a/web/static/images/emoji/1f64a.png b/web/static/images/emoji/1f64a.png Binary files differnew file mode 100644 index 000000000..c6f76937f --- /dev/null +++ b/web/static/images/emoji/1f64a.png diff --git a/web/static/images/emoji/1f64b.png b/web/static/images/emoji/1f64b.png Binary files differnew file mode 100644 index 000000000..e9d54836a --- /dev/null +++ b/web/static/images/emoji/1f64b.png diff --git a/web/static/images/emoji/1f64c.png b/web/static/images/emoji/1f64c.png Binary files differnew file mode 100644 index 000000000..8dbc25f83 --- /dev/null +++ b/web/static/images/emoji/1f64c.png diff --git a/web/static/images/emoji/1f64d.png b/web/static/images/emoji/1f64d.png Binary files differnew file mode 100644 index 000000000..81dbb96cd --- /dev/null +++ b/web/static/images/emoji/1f64d.png diff --git a/web/static/images/emoji/1f64e.png b/web/static/images/emoji/1f64e.png Binary files differnew file mode 100644 index 000000000..466177621 --- /dev/null +++ b/web/static/images/emoji/1f64e.png diff --git a/web/static/images/emoji/1f64f.png b/web/static/images/emoji/1f64f.png Binary files differnew file mode 100644 index 000000000..47a5f03b2 --- /dev/null +++ b/web/static/images/emoji/1f64f.png diff --git a/web/static/images/emoji/1f680.png b/web/static/images/emoji/1f680.png Binary files differnew file mode 100644 index 000000000..0ca6d5fed --- /dev/null +++ b/web/static/images/emoji/1f680.png diff --git a/web/static/images/emoji/1f681.png b/web/static/images/emoji/1f681.png Binary files differnew file mode 100644 index 000000000..838acddc7 --- /dev/null +++ b/web/static/images/emoji/1f681.png diff --git a/web/static/images/emoji/1f682.png b/web/static/images/emoji/1f682.png Binary files differnew file mode 100644 index 000000000..f7c52db71 --- /dev/null +++ b/web/static/images/emoji/1f682.png diff --git a/web/static/images/emoji/1f683.png b/web/static/images/emoji/1f683.png Binary files differnew file mode 100644 index 000000000..82d808866 --- /dev/null +++ b/web/static/images/emoji/1f683.png diff --git a/web/static/images/emoji/1f684.png b/web/static/images/emoji/1f684.png Binary files differnew file mode 100644 index 000000000..37daa558f --- /dev/null +++ b/web/static/images/emoji/1f684.png diff --git a/web/static/images/emoji/1f685.png b/web/static/images/emoji/1f685.png Binary files differnew file mode 100644 index 000000000..14ab9c409 --- /dev/null +++ b/web/static/images/emoji/1f685.png diff --git a/web/static/images/emoji/1f686.png b/web/static/images/emoji/1f686.png Binary files differnew file mode 100644 index 000000000..22d843302 --- /dev/null +++ b/web/static/images/emoji/1f686.png diff --git a/web/static/images/emoji/1f687.png b/web/static/images/emoji/1f687.png Binary files differnew file mode 100644 index 000000000..747ab8ad1 --- /dev/null +++ b/web/static/images/emoji/1f687.png diff --git a/web/static/images/emoji/1f688.png b/web/static/images/emoji/1f688.png Binary files differnew file mode 100644 index 000000000..91cff3edb --- /dev/null +++ b/web/static/images/emoji/1f688.png diff --git a/web/static/images/emoji/1f689.png b/web/static/images/emoji/1f689.png Binary files differnew file mode 100644 index 000000000..970d2799d --- /dev/null +++ b/web/static/images/emoji/1f689.png diff --git a/web/static/images/emoji/1f68a.png b/web/static/images/emoji/1f68a.png Binary files differnew file mode 100644 index 000000000..851cf1827 --- /dev/null +++ b/web/static/images/emoji/1f68a.png diff --git a/web/static/images/emoji/1f68b.png b/web/static/images/emoji/1f68b.png Binary files differnew file mode 100644 index 000000000..93d810920 --- /dev/null +++ b/web/static/images/emoji/1f68b.png diff --git a/web/static/images/emoji/1f68c.png b/web/static/images/emoji/1f68c.png Binary files differnew file mode 100644 index 000000000..b4f9c0c1f --- /dev/null +++ b/web/static/images/emoji/1f68c.png diff --git a/web/static/images/emoji/1f68d.png b/web/static/images/emoji/1f68d.png Binary files differnew file mode 100644 index 000000000..bac2d85e3 --- /dev/null +++ b/web/static/images/emoji/1f68d.png diff --git a/web/static/images/emoji/1f68e.png b/web/static/images/emoji/1f68e.png Binary files differnew file mode 100644 index 000000000..5207d82da --- /dev/null +++ b/web/static/images/emoji/1f68e.png diff --git a/web/static/images/emoji/1f68f.png b/web/static/images/emoji/1f68f.png Binary files differnew file mode 100644 index 000000000..3e14a30b6 --- /dev/null +++ b/web/static/images/emoji/1f68f.png diff --git a/web/static/images/emoji/1f690.png b/web/static/images/emoji/1f690.png Binary files differnew file mode 100644 index 000000000..462d0a348 --- /dev/null +++ b/web/static/images/emoji/1f690.png diff --git a/web/static/images/emoji/1f691.png b/web/static/images/emoji/1f691.png Binary files differnew file mode 100644 index 000000000..9df138d9c --- /dev/null +++ b/web/static/images/emoji/1f691.png diff --git a/web/static/images/emoji/1f692.png b/web/static/images/emoji/1f692.png Binary files differnew file mode 100644 index 000000000..0336bfdf5 --- /dev/null +++ b/web/static/images/emoji/1f692.png diff --git a/web/static/images/emoji/1f693.png b/web/static/images/emoji/1f693.png Binary files differnew file mode 100644 index 000000000..4281ed3bb --- /dev/null +++ b/web/static/images/emoji/1f693.png diff --git a/web/static/images/emoji/1f694.png b/web/static/images/emoji/1f694.png Binary files differnew file mode 100644 index 000000000..2ab9c3302 --- /dev/null +++ b/web/static/images/emoji/1f694.png diff --git a/web/static/images/emoji/1f695.png b/web/static/images/emoji/1f695.png Binary files differnew file mode 100644 index 000000000..1b9af967a --- /dev/null +++ b/web/static/images/emoji/1f695.png diff --git a/web/static/images/emoji/1f696.png b/web/static/images/emoji/1f696.png Binary files differnew file mode 100644 index 000000000..108d49693 --- /dev/null +++ b/web/static/images/emoji/1f696.png diff --git a/web/static/images/emoji/1f697.png b/web/static/images/emoji/1f697.png Binary files differnew file mode 100644 index 000000000..e266bd21e --- /dev/null +++ b/web/static/images/emoji/1f697.png diff --git a/web/static/images/emoji/1f698.png b/web/static/images/emoji/1f698.png Binary files differnew file mode 100644 index 000000000..b9b0dafbf --- /dev/null +++ b/web/static/images/emoji/1f698.png diff --git a/web/static/images/emoji/1f699.png b/web/static/images/emoji/1f699.png Binary files differnew file mode 100644 index 000000000..0c2e833ff --- /dev/null +++ b/web/static/images/emoji/1f699.png diff --git a/web/static/images/emoji/1f69a.png b/web/static/images/emoji/1f69a.png Binary files differnew file mode 100644 index 000000000..ef99f12fb --- /dev/null +++ b/web/static/images/emoji/1f69a.png diff --git a/web/static/images/emoji/1f69b.png b/web/static/images/emoji/1f69b.png Binary files differnew file mode 100644 index 000000000..4447dcfb5 --- /dev/null +++ b/web/static/images/emoji/1f69b.png diff --git a/web/static/images/emoji/1f69c.png b/web/static/images/emoji/1f69c.png Binary files differnew file mode 100644 index 000000000..fcd4000c5 --- /dev/null +++ b/web/static/images/emoji/1f69c.png diff --git a/web/static/images/emoji/1f69d.png b/web/static/images/emoji/1f69d.png Binary files differnew file mode 100644 index 000000000..83ba5af45 --- /dev/null +++ b/web/static/images/emoji/1f69d.png diff --git a/web/static/images/emoji/1f69e.png b/web/static/images/emoji/1f69e.png Binary files differnew file mode 100644 index 000000000..c69df1f8f --- /dev/null +++ b/web/static/images/emoji/1f69e.png diff --git a/web/static/images/emoji/1f69f.png b/web/static/images/emoji/1f69f.png Binary files differnew file mode 100644 index 000000000..595e9b160 --- /dev/null +++ b/web/static/images/emoji/1f69f.png diff --git a/web/static/images/emoji/1f6a0.png b/web/static/images/emoji/1f6a0.png Binary files differnew file mode 100644 index 000000000..6dbd7307e --- /dev/null +++ b/web/static/images/emoji/1f6a0.png diff --git a/web/static/images/emoji/1f6a1.png b/web/static/images/emoji/1f6a1.png Binary files differnew file mode 100644 index 000000000..32d56bec7 --- /dev/null +++ b/web/static/images/emoji/1f6a1.png diff --git a/web/static/images/emoji/1f6a2.png b/web/static/images/emoji/1f6a2.png Binary files differnew file mode 100644 index 000000000..08465890d --- /dev/null +++ b/web/static/images/emoji/1f6a2.png diff --git a/web/static/images/emoji/1f6a3.png b/web/static/images/emoji/1f6a3.png Binary files differnew file mode 100644 index 000000000..3a16b632b --- /dev/null +++ b/web/static/images/emoji/1f6a3.png diff --git a/web/static/images/emoji/1f6a4.png b/web/static/images/emoji/1f6a4.png Binary files differnew file mode 100644 index 000000000..a6b11a72e --- /dev/null +++ b/web/static/images/emoji/1f6a4.png diff --git a/web/static/images/emoji/1f6a5.png b/web/static/images/emoji/1f6a5.png Binary files differnew file mode 100644 index 000000000..0a7704a26 --- /dev/null +++ b/web/static/images/emoji/1f6a5.png diff --git a/web/static/images/emoji/1f6a6.png b/web/static/images/emoji/1f6a6.png Binary files differnew file mode 100644 index 000000000..e533edda0 --- /dev/null +++ b/web/static/images/emoji/1f6a6.png diff --git a/web/static/images/emoji/1f6a7.png b/web/static/images/emoji/1f6a7.png Binary files differnew file mode 100644 index 000000000..d29f47b02 --- /dev/null +++ b/web/static/images/emoji/1f6a7.png diff --git a/web/static/images/emoji/1f6a8.png b/web/static/images/emoji/1f6a8.png Binary files differnew file mode 100644 index 000000000..72095645c --- /dev/null +++ b/web/static/images/emoji/1f6a8.png diff --git a/web/static/images/emoji/1f6a9.png b/web/static/images/emoji/1f6a9.png Binary files differnew file mode 100644 index 000000000..89a1429a3 --- /dev/null +++ b/web/static/images/emoji/1f6a9.png diff --git a/web/static/images/emoji/1f6aa.png b/web/static/images/emoji/1f6aa.png Binary files differnew file mode 100644 index 000000000..4c8695fee --- /dev/null +++ b/web/static/images/emoji/1f6aa.png diff --git a/web/static/images/emoji/1f6ab.png b/web/static/images/emoji/1f6ab.png Binary files differnew file mode 100644 index 000000000..6577a1058 --- /dev/null +++ b/web/static/images/emoji/1f6ab.png diff --git a/web/static/images/emoji/1f6ac.png b/web/static/images/emoji/1f6ac.png Binary files differnew file mode 100644 index 000000000..e8b49b893 --- /dev/null +++ b/web/static/images/emoji/1f6ac.png diff --git a/web/static/images/emoji/1f6ad.png b/web/static/images/emoji/1f6ad.png Binary files differnew file mode 100644 index 000000000..939a81ae8 --- /dev/null +++ b/web/static/images/emoji/1f6ad.png diff --git a/web/static/images/emoji/1f6ae.png b/web/static/images/emoji/1f6ae.png Binary files differnew file mode 100644 index 000000000..e1c1deb24 --- /dev/null +++ b/web/static/images/emoji/1f6ae.png diff --git a/web/static/images/emoji/1f6af.png b/web/static/images/emoji/1f6af.png Binary files differnew file mode 100644 index 000000000..c29f7edf6 --- /dev/null +++ b/web/static/images/emoji/1f6af.png diff --git a/web/static/images/emoji/1f6b0.png b/web/static/images/emoji/1f6b0.png Binary files differnew file mode 100644 index 000000000..9fd0e87e9 --- /dev/null +++ b/web/static/images/emoji/1f6b0.png diff --git a/web/static/images/emoji/1f6b1.png b/web/static/images/emoji/1f6b1.png Binary files differnew file mode 100644 index 000000000..34de27d65 --- /dev/null +++ b/web/static/images/emoji/1f6b1.png diff --git a/web/static/images/emoji/1f6b2.png b/web/static/images/emoji/1f6b2.png Binary files differnew file mode 100644 index 000000000..a37d60207 --- /dev/null +++ b/web/static/images/emoji/1f6b2.png diff --git a/web/static/images/emoji/1f6b3.png b/web/static/images/emoji/1f6b3.png Binary files differnew file mode 100644 index 000000000..278f1424e --- /dev/null +++ b/web/static/images/emoji/1f6b3.png diff --git a/web/static/images/emoji/1f6b4.png b/web/static/images/emoji/1f6b4.png Binary files differnew file mode 100644 index 000000000..15b4c9666 --- /dev/null +++ b/web/static/images/emoji/1f6b4.png diff --git a/web/static/images/emoji/1f6b5.png b/web/static/images/emoji/1f6b5.png Binary files differnew file mode 100644 index 000000000..d2aa6f821 --- /dev/null +++ b/web/static/images/emoji/1f6b5.png diff --git a/web/static/images/emoji/1f6b6.png b/web/static/images/emoji/1f6b6.png Binary files differnew file mode 100644 index 000000000..174c4d0e2 --- /dev/null +++ b/web/static/images/emoji/1f6b6.png diff --git a/web/static/images/emoji/1f6b7.png b/web/static/images/emoji/1f6b7.png Binary files differnew file mode 100644 index 000000000..b015b4eaf --- /dev/null +++ b/web/static/images/emoji/1f6b7.png diff --git a/web/static/images/emoji/1f6b8.png b/web/static/images/emoji/1f6b8.png Binary files differnew file mode 100644 index 000000000..56ad0fb15 --- /dev/null +++ b/web/static/images/emoji/1f6b8.png diff --git a/web/static/images/emoji/1f6b9.png b/web/static/images/emoji/1f6b9.png Binary files differnew file mode 100644 index 000000000..db526a641 --- /dev/null +++ b/web/static/images/emoji/1f6b9.png diff --git a/web/static/images/emoji/1f6ba.png b/web/static/images/emoji/1f6ba.png Binary files differnew file mode 100644 index 000000000..57a510e34 --- /dev/null +++ b/web/static/images/emoji/1f6ba.png diff --git a/web/static/images/emoji/1f6bb.png b/web/static/images/emoji/1f6bb.png Binary files differnew file mode 100644 index 000000000..76b3c2833 --- /dev/null +++ b/web/static/images/emoji/1f6bb.png diff --git a/web/static/images/emoji/1f6bc.png b/web/static/images/emoji/1f6bc.png Binary files differnew file mode 100644 index 000000000..c289fc5e5 --- /dev/null +++ b/web/static/images/emoji/1f6bc.png diff --git a/web/static/images/emoji/1f6bd.png b/web/static/images/emoji/1f6bd.png Binary files differnew file mode 100644 index 000000000..6cf5255d5 --- /dev/null +++ b/web/static/images/emoji/1f6bd.png diff --git a/web/static/images/emoji/1f6be.png b/web/static/images/emoji/1f6be.png Binary files differnew file mode 100644 index 000000000..b153f2c2a --- /dev/null +++ b/web/static/images/emoji/1f6be.png diff --git a/web/static/images/emoji/1f6bf.png b/web/static/images/emoji/1f6bf.png Binary files differnew file mode 100644 index 000000000..860c4da66 --- /dev/null +++ b/web/static/images/emoji/1f6bf.png diff --git a/web/static/images/emoji/1f6c0.png b/web/static/images/emoji/1f6c0.png Binary files differnew file mode 100644 index 000000000..faca8ba79 --- /dev/null +++ b/web/static/images/emoji/1f6c0.png diff --git a/web/static/images/emoji/1f6c1.png b/web/static/images/emoji/1f6c1.png Binary files differnew file mode 100644 index 000000000..86b2a2629 --- /dev/null +++ b/web/static/images/emoji/1f6c1.png diff --git a/web/static/images/emoji/1f6c2.png b/web/static/images/emoji/1f6c2.png Binary files differnew file mode 100644 index 000000000..51359c754 --- /dev/null +++ b/web/static/images/emoji/1f6c2.png diff --git a/web/static/images/emoji/1f6c3.png b/web/static/images/emoji/1f6c3.png Binary files differnew file mode 100644 index 000000000..8c6811ce7 --- /dev/null +++ b/web/static/images/emoji/1f6c3.png diff --git a/web/static/images/emoji/1f6c4.png b/web/static/images/emoji/1f6c4.png Binary files differnew file mode 100644 index 000000000..3c6c63aff --- /dev/null +++ b/web/static/images/emoji/1f6c4.png diff --git a/web/static/images/emoji/1f6c5.png b/web/static/images/emoji/1f6c5.png Binary files differnew file mode 100644 index 000000000..b39b9075f --- /dev/null +++ b/web/static/images/emoji/1f6c5.png diff --git a/web/static/images/emoji/1f6c6.png b/web/static/images/emoji/1f6c6.png Binary files differnew file mode 100644 index 000000000..4f3048f3b --- /dev/null +++ b/web/static/images/emoji/1f6c6.png diff --git a/web/static/images/emoji/1f6c7.png b/web/static/images/emoji/1f6c7.png Binary files differnew file mode 100644 index 000000000..ab45c0d19 --- /dev/null +++ b/web/static/images/emoji/1f6c7.png diff --git a/web/static/images/emoji/1f6c8.png b/web/static/images/emoji/1f6c8.png Binary files differnew file mode 100644 index 000000000..1adec5678 --- /dev/null +++ b/web/static/images/emoji/1f6c8.png diff --git a/web/static/images/emoji/1f6c9.png b/web/static/images/emoji/1f6c9.png Binary files differnew file mode 100644 index 000000000..ce9578948 --- /dev/null +++ b/web/static/images/emoji/1f6c9.png diff --git a/web/static/images/emoji/1f6ca.png b/web/static/images/emoji/1f6ca.png Binary files differnew file mode 100644 index 000000000..b8836a8ad --- /dev/null +++ b/web/static/images/emoji/1f6ca.png diff --git a/web/static/images/emoji/1f6cb.png b/web/static/images/emoji/1f6cb.png Binary files differnew file mode 100644 index 000000000..fe7473eef --- /dev/null +++ b/web/static/images/emoji/1f6cb.png diff --git a/web/static/images/emoji/1f6cc.png b/web/static/images/emoji/1f6cc.png Binary files differnew file mode 100644 index 000000000..4d232c9bb --- /dev/null +++ b/web/static/images/emoji/1f6cc.png diff --git a/web/static/images/emoji/1f6cd.png b/web/static/images/emoji/1f6cd.png Binary files differnew file mode 100644 index 000000000..c4aa0049c --- /dev/null +++ b/web/static/images/emoji/1f6cd.png diff --git a/web/static/images/emoji/1f6ce.png b/web/static/images/emoji/1f6ce.png Binary files differnew file mode 100644 index 000000000..5eb060df1 --- /dev/null +++ b/web/static/images/emoji/1f6ce.png diff --git a/web/static/images/emoji/1f6cf.png b/web/static/images/emoji/1f6cf.png Binary files differnew file mode 100644 index 000000000..2b23803bc --- /dev/null +++ b/web/static/images/emoji/1f6cf.png diff --git a/web/static/images/emoji/1f6e0.png b/web/static/images/emoji/1f6e0.png Binary files differnew file mode 100644 index 000000000..eeea685b4 --- /dev/null +++ b/web/static/images/emoji/1f6e0.png diff --git a/web/static/images/emoji/1f6e1.png b/web/static/images/emoji/1f6e1.png Binary files differnew file mode 100644 index 000000000..30a63a8bf --- /dev/null +++ b/web/static/images/emoji/1f6e1.png diff --git a/web/static/images/emoji/1f6e2.png b/web/static/images/emoji/1f6e2.png Binary files differnew file mode 100644 index 000000000..e7e597a98 --- /dev/null +++ b/web/static/images/emoji/1f6e2.png diff --git a/web/static/images/emoji/1f6e3.png b/web/static/images/emoji/1f6e3.png Binary files differnew file mode 100644 index 000000000..c7f7a5d48 --- /dev/null +++ b/web/static/images/emoji/1f6e3.png diff --git a/web/static/images/emoji/1f6e4.png b/web/static/images/emoji/1f6e4.png Binary files differnew file mode 100644 index 000000000..322831040 --- /dev/null +++ b/web/static/images/emoji/1f6e4.png diff --git a/web/static/images/emoji/1f6e5.png b/web/static/images/emoji/1f6e5.png Binary files differnew file mode 100644 index 000000000..1e720f431 --- /dev/null +++ b/web/static/images/emoji/1f6e5.png diff --git a/web/static/images/emoji/1f6e6.png b/web/static/images/emoji/1f6e6.png Binary files differnew file mode 100644 index 000000000..8b91ccced --- /dev/null +++ b/web/static/images/emoji/1f6e6.png diff --git a/web/static/images/emoji/1f6e7.png b/web/static/images/emoji/1f6e7.png Binary files differnew file mode 100644 index 000000000..a5f67a8a4 --- /dev/null +++ b/web/static/images/emoji/1f6e7.png diff --git a/web/static/images/emoji/1f6e8.png b/web/static/images/emoji/1f6e8.png Binary files differnew file mode 100644 index 000000000..85afe1f2a --- /dev/null +++ b/web/static/images/emoji/1f6e8.png diff --git a/web/static/images/emoji/1f6e9.png b/web/static/images/emoji/1f6e9.png Binary files differnew file mode 100644 index 000000000..bd369a205 --- /dev/null +++ b/web/static/images/emoji/1f6e9.png diff --git a/web/static/images/emoji/1f6ea.png b/web/static/images/emoji/1f6ea.png Binary files differnew file mode 100644 index 000000000..93456c816 --- /dev/null +++ b/web/static/images/emoji/1f6ea.png diff --git a/web/static/images/emoji/1f6eb.png b/web/static/images/emoji/1f6eb.png Binary files differnew file mode 100644 index 000000000..9b0f017be --- /dev/null +++ b/web/static/images/emoji/1f6eb.png diff --git a/web/static/images/emoji/1f6ec.png b/web/static/images/emoji/1f6ec.png Binary files differnew file mode 100644 index 000000000..4d754bf59 --- /dev/null +++ b/web/static/images/emoji/1f6ec.png diff --git a/web/static/images/emoji/1f6f0.png b/web/static/images/emoji/1f6f0.png Binary files differnew file mode 100644 index 000000000..52eec7627 --- /dev/null +++ b/web/static/images/emoji/1f6f0.png diff --git a/web/static/images/emoji/1f6f1.png b/web/static/images/emoji/1f6f1.png Binary files differnew file mode 100644 index 000000000..39cb17c82 --- /dev/null +++ b/web/static/images/emoji/1f6f1.png diff --git a/web/static/images/emoji/1f6f2.png b/web/static/images/emoji/1f6f2.png Binary files differnew file mode 100644 index 000000000..97066ea6e --- /dev/null +++ b/web/static/images/emoji/1f6f2.png diff --git a/web/static/images/emoji/1f6f3.png b/web/static/images/emoji/1f6f3.png Binary files differnew file mode 100644 index 000000000..512cb1200 --- /dev/null +++ b/web/static/images/emoji/1f6f3.png diff --git a/web/static/images/emoji/203c.png b/web/static/images/emoji/203c.png Binary files differnew file mode 100644 index 000000000..ab85c1d06 --- /dev/null +++ b/web/static/images/emoji/203c.png diff --git a/web/static/images/emoji/2049.png b/web/static/images/emoji/2049.png Binary files differnew file mode 100644 index 000000000..a8e1ec2a9 --- /dev/null +++ b/web/static/images/emoji/2049.png diff --git a/web/static/images/emoji/2122.png b/web/static/images/emoji/2122.png Binary files differnew file mode 100644 index 000000000..0ddad3d83 --- /dev/null +++ b/web/static/images/emoji/2122.png diff --git a/web/static/images/emoji/2139.png b/web/static/images/emoji/2139.png Binary files differnew file mode 100644 index 000000000..68059c871 --- /dev/null +++ b/web/static/images/emoji/2139.png diff --git a/web/static/images/emoji/2194.png b/web/static/images/emoji/2194.png Binary files differnew file mode 100644 index 000000000..9e5e99c58 --- /dev/null +++ b/web/static/images/emoji/2194.png diff --git a/web/static/images/emoji/2195.png b/web/static/images/emoji/2195.png Binary files differnew file mode 100644 index 000000000..bb668b036 --- /dev/null +++ b/web/static/images/emoji/2195.png diff --git a/web/static/images/emoji/2196.png b/web/static/images/emoji/2196.png Binary files differnew file mode 100644 index 000000000..5a75e42ba --- /dev/null +++ b/web/static/images/emoji/2196.png diff --git a/web/static/images/emoji/2197.png b/web/static/images/emoji/2197.png Binary files differnew file mode 100644 index 000000000..267322593 --- /dev/null +++ b/web/static/images/emoji/2197.png diff --git a/web/static/images/emoji/2198.png b/web/static/images/emoji/2198.png Binary files differnew file mode 100644 index 000000000..4e7757c23 --- /dev/null +++ b/web/static/images/emoji/2198.png diff --git a/web/static/images/emoji/2199.png b/web/static/images/emoji/2199.png Binary files differnew file mode 100644 index 000000000..c5b1a2f7a --- /dev/null +++ b/web/static/images/emoji/2199.png diff --git a/web/static/images/emoji/21a9.png b/web/static/images/emoji/21a9.png Binary files differnew file mode 100644 index 000000000..a9358a56e --- /dev/null +++ b/web/static/images/emoji/21a9.png diff --git a/web/static/images/emoji/21aa.png b/web/static/images/emoji/21aa.png Binary files differnew file mode 100644 index 000000000..0512301c9 --- /dev/null +++ b/web/static/images/emoji/21aa.png diff --git a/web/static/images/emoji/231a.png b/web/static/images/emoji/231a.png Binary files differnew file mode 100644 index 000000000..50f16588a --- /dev/null +++ b/web/static/images/emoji/231a.png diff --git a/web/static/images/emoji/231b.png b/web/static/images/emoji/231b.png Binary files differnew file mode 100644 index 000000000..06799f8c5 --- /dev/null +++ b/web/static/images/emoji/231b.png diff --git a/web/static/images/emoji/23e9.png b/web/static/images/emoji/23e9.png Binary files differnew file mode 100644 index 000000000..dda9bec2a --- /dev/null +++ b/web/static/images/emoji/23e9.png diff --git a/web/static/images/emoji/23ea.png b/web/static/images/emoji/23ea.png Binary files differnew file mode 100644 index 000000000..cd693f938 --- /dev/null +++ b/web/static/images/emoji/23ea.png diff --git a/web/static/images/emoji/23eb.png b/web/static/images/emoji/23eb.png Binary files differnew file mode 100644 index 000000000..0878d9436 --- /dev/null +++ b/web/static/images/emoji/23eb.png diff --git a/web/static/images/emoji/23ec.png b/web/static/images/emoji/23ec.png Binary files differnew file mode 100644 index 000000000..698156f8d --- /dev/null +++ b/web/static/images/emoji/23ec.png diff --git a/web/static/images/emoji/23f0.png b/web/static/images/emoji/23f0.png Binary files differnew file mode 100644 index 000000000..3f466f3a7 --- /dev/null +++ b/web/static/images/emoji/23f0.png diff --git a/web/static/images/emoji/23f3.png b/web/static/images/emoji/23f3.png Binary files differnew file mode 100644 index 000000000..bb0bbd8f7 --- /dev/null +++ b/web/static/images/emoji/23f3.png diff --git a/web/static/images/emoji/24c2.png b/web/static/images/emoji/24c2.png Binary files differnew file mode 100644 index 000000000..7de289795 --- /dev/null +++ b/web/static/images/emoji/24c2.png diff --git a/web/static/images/emoji/25aa.png b/web/static/images/emoji/25aa.png Binary files differnew file mode 100644 index 000000000..5a5559241 --- /dev/null +++ b/web/static/images/emoji/25aa.png diff --git a/web/static/images/emoji/25ab.png b/web/static/images/emoji/25ab.png Binary files differnew file mode 100644 index 000000000..5b115d325 --- /dev/null +++ b/web/static/images/emoji/25ab.png diff --git a/web/static/images/emoji/25b6.png b/web/static/images/emoji/25b6.png Binary files differnew file mode 100644 index 000000000..cbc672c1e --- /dev/null +++ b/web/static/images/emoji/25b6.png diff --git a/web/static/images/emoji/25c0.png b/web/static/images/emoji/25c0.png Binary files differnew file mode 100644 index 000000000..66b208dd9 --- /dev/null +++ b/web/static/images/emoji/25c0.png diff --git a/web/static/images/emoji/25fb.png b/web/static/images/emoji/25fb.png Binary files differnew file mode 100644 index 000000000..f3c39550f --- /dev/null +++ b/web/static/images/emoji/25fb.png diff --git a/web/static/images/emoji/25fc.png b/web/static/images/emoji/25fc.png Binary files differnew file mode 100644 index 000000000..0250c07f4 --- /dev/null +++ b/web/static/images/emoji/25fc.png diff --git a/web/static/images/emoji/25fd.png b/web/static/images/emoji/25fd.png Binary files differnew file mode 100644 index 000000000..7a34786e8 --- /dev/null +++ b/web/static/images/emoji/25fd.png diff --git a/web/static/images/emoji/25fe.png b/web/static/images/emoji/25fe.png Binary files differnew file mode 100644 index 000000000..6dd0df1c9 --- /dev/null +++ b/web/static/images/emoji/25fe.png diff --git a/web/static/images/emoji/2600.png b/web/static/images/emoji/2600.png Binary files differnew file mode 100644 index 000000000..d4f88fb8b --- /dev/null +++ b/web/static/images/emoji/2600.png diff --git a/web/static/images/emoji/2601.png b/web/static/images/emoji/2601.png Binary files differnew file mode 100644 index 000000000..559c52f76 --- /dev/null +++ b/web/static/images/emoji/2601.png diff --git a/web/static/images/emoji/260e.png b/web/static/images/emoji/260e.png Binary files differnew file mode 100644 index 000000000..6a14f1bfe --- /dev/null +++ b/web/static/images/emoji/260e.png diff --git a/web/static/images/emoji/2611.png b/web/static/images/emoji/2611.png Binary files differnew file mode 100644 index 000000000..e9826b1db --- /dev/null +++ b/web/static/images/emoji/2611.png diff --git a/web/static/images/emoji/2614.png b/web/static/images/emoji/2614.png Binary files differnew file mode 100644 index 000000000..83672dd6c --- /dev/null +++ b/web/static/images/emoji/2614.png diff --git a/web/static/images/emoji/2615.png b/web/static/images/emoji/2615.png Binary files differnew file mode 100644 index 000000000..109505f51 --- /dev/null +++ b/web/static/images/emoji/2615.png diff --git a/web/static/images/emoji/261d.png b/web/static/images/emoji/261d.png Binary files differnew file mode 100644 index 000000000..387fe59e2 --- /dev/null +++ b/web/static/images/emoji/261d.png diff --git a/web/static/images/emoji/263a.png b/web/static/images/emoji/263a.png Binary files differnew file mode 100644 index 000000000..ea6e93a65 --- /dev/null +++ b/web/static/images/emoji/263a.png diff --git a/web/static/images/emoji/2648.png b/web/static/images/emoji/2648.png Binary files differnew file mode 100644 index 000000000..8c26a2400 --- /dev/null +++ b/web/static/images/emoji/2648.png diff --git a/web/static/images/emoji/2649.png b/web/static/images/emoji/2649.png Binary files differnew file mode 100644 index 000000000..3d3434ccf --- /dev/null +++ b/web/static/images/emoji/2649.png diff --git a/web/static/images/emoji/264a.png b/web/static/images/emoji/264a.png Binary files differnew file mode 100644 index 000000000..3d34ba7ca --- /dev/null +++ b/web/static/images/emoji/264a.png diff --git a/web/static/images/emoji/264b.png b/web/static/images/emoji/264b.png Binary files differnew file mode 100644 index 000000000..6375eabb5 --- /dev/null +++ b/web/static/images/emoji/264b.png diff --git a/web/static/images/emoji/264c.png b/web/static/images/emoji/264c.png Binary files differnew file mode 100644 index 000000000..2290f822a --- /dev/null +++ b/web/static/images/emoji/264c.png diff --git a/web/static/images/emoji/264d.png b/web/static/images/emoji/264d.png Binary files differnew file mode 100644 index 000000000..238424313 --- /dev/null +++ b/web/static/images/emoji/264d.png diff --git a/web/static/images/emoji/264e.png b/web/static/images/emoji/264e.png Binary files differnew file mode 100644 index 000000000..3f3c33443 --- /dev/null +++ b/web/static/images/emoji/264e.png diff --git a/web/static/images/emoji/264f.png b/web/static/images/emoji/264f.png Binary files differnew file mode 100644 index 000000000..f903e7665 --- /dev/null +++ b/web/static/images/emoji/264f.png diff --git a/web/static/images/emoji/2650.png b/web/static/images/emoji/2650.png Binary files differnew file mode 100644 index 000000000..b5d55c10f --- /dev/null +++ b/web/static/images/emoji/2650.png diff --git a/web/static/images/emoji/2651.png b/web/static/images/emoji/2651.png Binary files differnew file mode 100644 index 000000000..255ac3183 --- /dev/null +++ b/web/static/images/emoji/2651.png diff --git a/web/static/images/emoji/2652.png b/web/static/images/emoji/2652.png Binary files differnew file mode 100644 index 000000000..2e645c9e3 --- /dev/null +++ b/web/static/images/emoji/2652.png diff --git a/web/static/images/emoji/2653.png b/web/static/images/emoji/2653.png Binary files differnew file mode 100644 index 000000000..939b88e60 --- /dev/null +++ b/web/static/images/emoji/2653.png diff --git a/web/static/images/emoji/2660.png b/web/static/images/emoji/2660.png Binary files differnew file mode 100644 index 000000000..1cb4bea46 --- /dev/null +++ b/web/static/images/emoji/2660.png diff --git a/web/static/images/emoji/2663.png b/web/static/images/emoji/2663.png Binary files differnew file mode 100644 index 000000000..307231d98 --- /dev/null +++ b/web/static/images/emoji/2663.png diff --git a/web/static/images/emoji/2665.png b/web/static/images/emoji/2665.png Binary files differnew file mode 100644 index 000000000..994a062cc --- /dev/null +++ b/web/static/images/emoji/2665.png diff --git a/web/static/images/emoji/2666.png b/web/static/images/emoji/2666.png Binary files differnew file mode 100644 index 000000000..3e153dbe8 --- /dev/null +++ b/web/static/images/emoji/2666.png diff --git a/web/static/images/emoji/2668.png b/web/static/images/emoji/2668.png Binary files differnew file mode 100644 index 000000000..dbe158292 --- /dev/null +++ b/web/static/images/emoji/2668.png diff --git a/web/static/images/emoji/267b.png b/web/static/images/emoji/267b.png Binary files differnew file mode 100644 index 000000000..181391e86 --- /dev/null +++ b/web/static/images/emoji/267b.png diff --git a/web/static/images/emoji/267f.png b/web/static/images/emoji/267f.png Binary files differnew file mode 100644 index 000000000..638696ca9 --- /dev/null +++ b/web/static/images/emoji/267f.png diff --git a/web/static/images/emoji/2693.png b/web/static/images/emoji/2693.png Binary files differnew file mode 100644 index 000000000..f2a8200f0 --- /dev/null +++ b/web/static/images/emoji/2693.png diff --git a/web/static/images/emoji/26a0.png b/web/static/images/emoji/26a0.png Binary files differnew file mode 100644 index 000000000..8a5dd577a --- /dev/null +++ b/web/static/images/emoji/26a0.png diff --git a/web/static/images/emoji/26a1.png b/web/static/images/emoji/26a1.png Binary files differnew file mode 100644 index 000000000..96ec4dccb --- /dev/null +++ b/web/static/images/emoji/26a1.png diff --git a/web/static/images/emoji/26aa.png b/web/static/images/emoji/26aa.png Binary files differnew file mode 100644 index 000000000..84e8a43a2 --- /dev/null +++ b/web/static/images/emoji/26aa.png diff --git a/web/static/images/emoji/26ab.png b/web/static/images/emoji/26ab.png Binary files differnew file mode 100644 index 000000000..a9f021517 --- /dev/null +++ b/web/static/images/emoji/26ab.png diff --git a/web/static/images/emoji/26bd.png b/web/static/images/emoji/26bd.png Binary files differnew file mode 100644 index 000000000..a5b188cef --- /dev/null +++ b/web/static/images/emoji/26bd.png diff --git a/web/static/images/emoji/26be.png b/web/static/images/emoji/26be.png Binary files differnew file mode 100644 index 000000000..4ba7a75a6 --- /dev/null +++ b/web/static/images/emoji/26be.png diff --git a/web/static/images/emoji/26c4.png b/web/static/images/emoji/26c4.png Binary files differnew file mode 100644 index 000000000..5cfd23ec0 --- /dev/null +++ b/web/static/images/emoji/26c4.png diff --git a/web/static/images/emoji/26c5.png b/web/static/images/emoji/26c5.png Binary files differnew file mode 100644 index 000000000..a5c8d31b8 --- /dev/null +++ b/web/static/images/emoji/26c5.png diff --git a/web/static/images/emoji/26ce.png b/web/static/images/emoji/26ce.png Binary files differnew file mode 100644 index 000000000..600ad3a3c --- /dev/null +++ b/web/static/images/emoji/26ce.png diff --git a/web/static/images/emoji/26d4.png b/web/static/images/emoji/26d4.png Binary files differnew file mode 100644 index 000000000..aca2edaa7 --- /dev/null +++ b/web/static/images/emoji/26d4.png diff --git a/web/static/images/emoji/26ea.png b/web/static/images/emoji/26ea.png Binary files differnew file mode 100644 index 000000000..e1f25e25a --- /dev/null +++ b/web/static/images/emoji/26ea.png diff --git a/web/static/images/emoji/26f2.png b/web/static/images/emoji/26f2.png Binary files differnew file mode 100644 index 000000000..465d2a127 --- /dev/null +++ b/web/static/images/emoji/26f2.png diff --git a/web/static/images/emoji/26f3.png b/web/static/images/emoji/26f3.png Binary files differnew file mode 100644 index 000000000..c03f80917 --- /dev/null +++ b/web/static/images/emoji/26f3.png diff --git a/web/static/images/emoji/26f5.png b/web/static/images/emoji/26f5.png Binary files differnew file mode 100644 index 000000000..9e862f831 --- /dev/null +++ b/web/static/images/emoji/26f5.png diff --git a/web/static/images/emoji/26fa.png b/web/static/images/emoji/26fa.png Binary files differnew file mode 100644 index 000000000..db3101b4a --- /dev/null +++ b/web/static/images/emoji/26fa.png diff --git a/web/static/images/emoji/26fd.png b/web/static/images/emoji/26fd.png Binary files differnew file mode 100644 index 000000000..db5b15c89 --- /dev/null +++ b/web/static/images/emoji/26fd.png diff --git a/web/static/images/emoji/2702.png b/web/static/images/emoji/2702.png Binary files differnew file mode 100644 index 000000000..0a2d1b07f --- /dev/null +++ b/web/static/images/emoji/2702.png diff --git a/web/static/images/emoji/2705.png b/web/static/images/emoji/2705.png Binary files differnew file mode 100644 index 000000000..241a4f6f9 --- /dev/null +++ b/web/static/images/emoji/2705.png diff --git a/web/static/images/emoji/2708.png b/web/static/images/emoji/2708.png Binary files differnew file mode 100644 index 000000000..bf1786717 --- /dev/null +++ b/web/static/images/emoji/2708.png diff --git a/web/static/images/emoji/2709.png b/web/static/images/emoji/2709.png Binary files differnew file mode 100644 index 000000000..c0bb4ebfd --- /dev/null +++ b/web/static/images/emoji/2709.png diff --git a/web/static/images/emoji/270a.png b/web/static/images/emoji/270a.png Binary files differnew file mode 100644 index 000000000..97e5b0639 --- /dev/null +++ b/web/static/images/emoji/270a.png diff --git a/web/static/images/emoji/270b.png b/web/static/images/emoji/270b.png Binary files differnew file mode 100644 index 000000000..89de966a3 --- /dev/null +++ b/web/static/images/emoji/270b.png diff --git a/web/static/images/emoji/270c.png b/web/static/images/emoji/270c.png Binary files differnew file mode 100644 index 000000000..0b7aa52d1 --- /dev/null +++ b/web/static/images/emoji/270c.png diff --git a/web/static/images/emoji/270f.png b/web/static/images/emoji/270f.png Binary files differnew file mode 100644 index 000000000..693ee8429 --- /dev/null +++ b/web/static/images/emoji/270f.png diff --git a/web/static/images/emoji/2712.png b/web/static/images/emoji/2712.png Binary files differnew file mode 100644 index 000000000..6f1a76cde --- /dev/null +++ b/web/static/images/emoji/2712.png diff --git a/web/static/images/emoji/2714.png b/web/static/images/emoji/2714.png Binary files differnew file mode 100644 index 000000000..239ea09ee --- /dev/null +++ b/web/static/images/emoji/2714.png diff --git a/web/static/images/emoji/2716.png b/web/static/images/emoji/2716.png Binary files differnew file mode 100644 index 000000000..a75fd57e0 --- /dev/null +++ b/web/static/images/emoji/2716.png diff --git a/web/static/images/emoji/2728.png b/web/static/images/emoji/2728.png Binary files differnew file mode 100644 index 000000000..f7faa7270 --- /dev/null +++ b/web/static/images/emoji/2728.png diff --git a/web/static/images/emoji/2733.png b/web/static/images/emoji/2733.png Binary files differnew file mode 100644 index 000000000..aaa681d4f --- /dev/null +++ b/web/static/images/emoji/2733.png diff --git a/web/static/images/emoji/2734.png b/web/static/images/emoji/2734.png Binary files differnew file mode 100644 index 000000000..ea1ba7edb --- /dev/null +++ b/web/static/images/emoji/2734.png diff --git a/web/static/images/emoji/2744.png b/web/static/images/emoji/2744.png Binary files differnew file mode 100644 index 000000000..743b9fd98 --- /dev/null +++ b/web/static/images/emoji/2744.png diff --git a/web/static/images/emoji/2747.png b/web/static/images/emoji/2747.png Binary files differnew file mode 100644 index 000000000..cb37090c7 --- /dev/null +++ b/web/static/images/emoji/2747.png diff --git a/web/static/images/emoji/274c.png b/web/static/images/emoji/274c.png Binary files differnew file mode 100644 index 000000000..18de93090 --- /dev/null +++ b/web/static/images/emoji/274c.png diff --git a/web/static/images/emoji/274e.png b/web/static/images/emoji/274e.png Binary files differnew file mode 100644 index 000000000..90ca18394 --- /dev/null +++ b/web/static/images/emoji/274e.png diff --git a/web/static/images/emoji/2753.png b/web/static/images/emoji/2753.png Binary files differnew file mode 100644 index 000000000..9e84758ee --- /dev/null +++ b/web/static/images/emoji/2753.png diff --git a/web/static/images/emoji/2754.png b/web/static/images/emoji/2754.png Binary files differnew file mode 100644 index 000000000..7808b13e3 --- /dev/null +++ b/web/static/images/emoji/2754.png diff --git a/web/static/images/emoji/2755.png b/web/static/images/emoji/2755.png Binary files differnew file mode 100644 index 000000000..759d6e7f7 --- /dev/null +++ b/web/static/images/emoji/2755.png diff --git a/web/static/images/emoji/2757.png b/web/static/images/emoji/2757.png Binary files differnew file mode 100644 index 000000000..b8fca78bc --- /dev/null +++ b/web/static/images/emoji/2757.png diff --git a/web/static/images/emoji/2764.png b/web/static/images/emoji/2764.png Binary files differnew file mode 100644 index 000000000..af35e2223 --- /dev/null +++ b/web/static/images/emoji/2764.png diff --git a/web/static/images/emoji/2795.png b/web/static/images/emoji/2795.png Binary files differnew file mode 100644 index 000000000..198cde00e --- /dev/null +++ b/web/static/images/emoji/2795.png diff --git a/web/static/images/emoji/2796.png b/web/static/images/emoji/2796.png Binary files differnew file mode 100644 index 000000000..60195e0d4 --- /dev/null +++ b/web/static/images/emoji/2796.png diff --git a/web/static/images/emoji/2797.png b/web/static/images/emoji/2797.png Binary files differnew file mode 100644 index 000000000..b883d27f5 --- /dev/null +++ b/web/static/images/emoji/2797.png diff --git a/web/static/images/emoji/27a1.png b/web/static/images/emoji/27a1.png Binary files differnew file mode 100644 index 000000000..67ab92488 --- /dev/null +++ b/web/static/images/emoji/27a1.png diff --git a/web/static/images/emoji/27b0.png b/web/static/images/emoji/27b0.png Binary files differnew file mode 100644 index 000000000..1c7b496c5 --- /dev/null +++ b/web/static/images/emoji/27b0.png diff --git a/web/static/images/emoji/27bf.png b/web/static/images/emoji/27bf.png Binary files differnew file mode 100644 index 000000000..a9b9248ba --- /dev/null +++ b/web/static/images/emoji/27bf.png diff --git a/web/static/images/emoji/2934.png b/web/static/images/emoji/2934.png Binary files differnew file mode 100644 index 000000000..b6c5b0610 --- /dev/null +++ b/web/static/images/emoji/2934.png diff --git a/web/static/images/emoji/2935.png b/web/static/images/emoji/2935.png Binary files differnew file mode 100644 index 000000000..79234629f --- /dev/null +++ b/web/static/images/emoji/2935.png diff --git a/web/static/images/emoji/2b05.png b/web/static/images/emoji/2b05.png Binary files differnew file mode 100644 index 000000000..58a76a59c --- /dev/null +++ b/web/static/images/emoji/2b05.png diff --git a/web/static/images/emoji/2b06.png b/web/static/images/emoji/2b06.png Binary files differnew file mode 100644 index 000000000..d50437a6a --- /dev/null +++ b/web/static/images/emoji/2b06.png diff --git a/web/static/images/emoji/2b07.png b/web/static/images/emoji/2b07.png Binary files differnew file mode 100644 index 000000000..cf9664792 --- /dev/null +++ b/web/static/images/emoji/2b07.png diff --git a/web/static/images/emoji/2b1b.png b/web/static/images/emoji/2b1b.png Binary files differnew file mode 100644 index 000000000..a8ca8cb81 --- /dev/null +++ b/web/static/images/emoji/2b1b.png diff --git a/web/static/images/emoji/2b1c.png b/web/static/images/emoji/2b1c.png Binary files differnew file mode 100644 index 000000000..2f6071f06 --- /dev/null +++ b/web/static/images/emoji/2b1c.png diff --git a/web/static/images/emoji/2b50.png b/web/static/images/emoji/2b50.png Binary files differnew file mode 100644 index 000000000..00f6758a2 --- /dev/null +++ b/web/static/images/emoji/2b50.png diff --git a/web/static/images/emoji/2b55.png b/web/static/images/emoji/2b55.png Binary files differnew file mode 100644 index 000000000..f141dc452 --- /dev/null +++ b/web/static/images/emoji/2b55.png diff --git a/web/static/images/emoji/3030.png b/web/static/images/emoji/3030.png Binary files differnew file mode 100644 index 000000000..3b346827b --- /dev/null +++ b/web/static/images/emoji/3030.png diff --git a/web/static/images/emoji/303d.png b/web/static/images/emoji/303d.png Binary files differnew file mode 100644 index 000000000..d39063ed9 --- /dev/null +++ b/web/static/images/emoji/303d.png diff --git a/web/static/images/emoji/3297.png b/web/static/images/emoji/3297.png Binary files differnew file mode 100644 index 000000000..b3ffe6fe4 --- /dev/null +++ b/web/static/images/emoji/3297.png diff --git a/web/static/images/emoji/3299.png b/web/static/images/emoji/3299.png Binary files differnew file mode 100644 index 000000000..5ff746bec --- /dev/null +++ b/web/static/images/emoji/3299.png diff --git a/web/static/images/emoji/8ball.png b/web/static/images/emoji/8ball.png Binary files differindex c2c710d45..7bf80b6d7 100755..100644 --- a/web/static/images/emoji/8ball.png +++ b/web/static/images/emoji/8ball.png diff --git a/web/static/images/emoji/a.png b/web/static/images/emoji/a.png Binary files differindex 09ff6d6f1..7b1f9663c 100755..100644 --- a/web/static/images/emoji/a.png +++ b/web/static/images/emoji/a.png diff --git a/web/static/images/emoji/ab.png b/web/static/images/emoji/ab.png Binary files differindex 2a5222047..386ec09fe 100755..100644 --- a/web/static/images/emoji/ab.png +++ b/web/static/images/emoji/ab.png diff --git a/web/static/images/emoji/abc.png b/web/static/images/emoji/abc.png Binary files differindex 505d40a15..51dc1bf76 100755..100644 --- a/web/static/images/emoji/abc.png +++ b/web/static/images/emoji/abc.png diff --git a/web/static/images/emoji/abcd.png b/web/static/images/emoji/abcd.png Binary files differindex 5218470b6..a79d4311d 100755..100644 --- a/web/static/images/emoji/abcd.png +++ b/web/static/images/emoji/abcd.png diff --git a/web/static/images/emoji/accept.png b/web/static/images/emoji/accept.png Binary files differindex 2d2009031..10cf9e29a 100755..100644 --- a/web/static/images/emoji/accept.png +++ b/web/static/images/emoji/accept.png diff --git a/web/static/images/emoji/admission_tickets.png b/web/static/images/emoji/admission_tickets.png Binary files differnew file mode 100644 index 000000000..e12819269 --- /dev/null +++ b/web/static/images/emoji/admission_tickets.png diff --git a/web/static/images/emoji/aerial_tramway.png b/web/static/images/emoji/aerial_tramway.png Binary files differindex 38f6dfe23..32d56bec7 100755..100644 --- a/web/static/images/emoji/aerial_tramway.png +++ b/web/static/images/emoji/aerial_tramway.png diff --git a/web/static/images/emoji/airplane.png b/web/static/images/emoji/airplane.png Binary files differindex 8407cb675..bf1786717 100755..100644 --- a/web/static/images/emoji/airplane.png +++ b/web/static/images/emoji/airplane.png diff --git a/web/static/images/emoji/airplane_arriving.png b/web/static/images/emoji/airplane_arriving.png Binary files differnew file mode 100644 index 000000000..4d754bf59 --- /dev/null +++ b/web/static/images/emoji/airplane_arriving.png diff --git a/web/static/images/emoji/airplane_departure.png b/web/static/images/emoji/airplane_departure.png Binary files differnew file mode 100644 index 000000000..9b0f017be --- /dev/null +++ b/web/static/images/emoji/airplane_departure.png diff --git a/web/static/images/emoji/alarm_clock.png b/web/static/images/emoji/alarm_clock.png Binary files differindex 86ca8c8ed..3f466f3a7 100755..100644 --- a/web/static/images/emoji/alarm_clock.png +++ b/web/static/images/emoji/alarm_clock.png diff --git a/web/static/images/emoji/alien.png b/web/static/images/emoji/alien.png Binary files differindex 416de47be..6d0fc8399 100755..100644 --- a/web/static/images/emoji/alien.png +++ b/web/static/images/emoji/alien.png diff --git a/web/static/images/emoji/ambulance.png b/web/static/images/emoji/ambulance.png Binary files differindex b740f45db..9df138d9c 100755..100644 --- a/web/static/images/emoji/ambulance.png +++ b/web/static/images/emoji/ambulance.png diff --git a/web/static/images/emoji/anchor.png b/web/static/images/emoji/anchor.png Binary files differindex 0c5192e64..f2a8200f0 100755..100644 --- a/web/static/images/emoji/anchor.png +++ b/web/static/images/emoji/anchor.png diff --git a/web/static/images/emoji/angel.png b/web/static/images/emoji/angel.png Binary files differindex da52c310c..46546001f 100755..100644 --- a/web/static/images/emoji/angel.png +++ b/web/static/images/emoji/angel.png diff --git a/web/static/images/emoji/anger.png b/web/static/images/emoji/anger.png Binary files differindex 6fb4dca18..f69aa08d4 100755..100644 --- a/web/static/images/emoji/anger.png +++ b/web/static/images/emoji/anger.png diff --git a/web/static/images/emoji/angry.png b/web/static/images/emoji/angry.png Binary files differindex f95bfa897..103961ee4 100755..100644 --- a/web/static/images/emoji/angry.png +++ b/web/static/images/emoji/angry.png diff --git a/web/static/images/emoji/anguished.png b/web/static/images/emoji/anguished.png Binary files differindex c62594726..31b14f781 100755..100644 --- a/web/static/images/emoji/anguished.png +++ b/web/static/images/emoji/anguished.png diff --git a/web/static/images/emoji/ant.png b/web/static/images/emoji/ant.png Binary files differindex b92d1cc14..1b6ba80c0 100755..100644 --- a/web/static/images/emoji/ant.png +++ b/web/static/images/emoji/ant.png diff --git a/web/static/images/emoji/apple.png b/web/static/images/emoji/apple.png Binary files differindex 08aa17b95..bcc5c94aa 100755..100644 --- a/web/static/images/emoji/apple.png +++ b/web/static/images/emoji/apple.png diff --git a/web/static/images/emoji/aquarius.png b/web/static/images/emoji/aquarius.png Binary files differindex cbff66edc..2e645c9e3 100755..100644 --- a/web/static/images/emoji/aquarius.png +++ b/web/static/images/emoji/aquarius.png diff --git a/web/static/images/emoji/aries.png b/web/static/images/emoji/aries.png Binary files differindex aab5e8809..8c26a2400 100755..100644 --- a/web/static/images/emoji/aries.png +++ b/web/static/images/emoji/aries.png diff --git a/web/static/images/emoji/arrow_backward.png b/web/static/images/emoji/arrow_backward.png Binary files differindex 088621834..66b208dd9 100755..100644 --- a/web/static/images/emoji/arrow_backward.png +++ b/web/static/images/emoji/arrow_backward.png diff --git a/web/static/images/emoji/arrow_double_down.png b/web/static/images/emoji/arrow_double_down.png Binary files differindex 2ecbebcda..698156f8d 100755..100644 --- a/web/static/images/emoji/arrow_double_down.png +++ b/web/static/images/emoji/arrow_double_down.png diff --git a/web/static/images/emoji/arrow_double_up.png b/web/static/images/emoji/arrow_double_up.png Binary files differindex 2bd6659b1..0878d9436 100755..100644 --- a/web/static/images/emoji/arrow_double_up.png +++ b/web/static/images/emoji/arrow_double_up.png diff --git a/web/static/images/emoji/arrow_down.png b/web/static/images/emoji/arrow_down.png Binary files differindex e6702f02b..cf9664792 100755..100644 --- a/web/static/images/emoji/arrow_down.png +++ b/web/static/images/emoji/arrow_down.png diff --git a/web/static/images/emoji/arrow_down_small.png b/web/static/images/emoji/arrow_down_small.png Binary files differindex 22d383a92..6694271c4 100755..100644 --- a/web/static/images/emoji/arrow_down_small.png +++ b/web/static/images/emoji/arrow_down_small.png diff --git a/web/static/images/emoji/arrow_forward.png b/web/static/images/emoji/arrow_forward.png Binary files differindex fbfe711b6..cbc672c1e 100755..100644 --- a/web/static/images/emoji/arrow_forward.png +++ b/web/static/images/emoji/arrow_forward.png diff --git a/web/static/images/emoji/arrow_heading_down.png b/web/static/images/emoji/arrow_heading_down.png Binary files differindex 56dd3b9d3..79234629f 100755..100644 --- a/web/static/images/emoji/arrow_heading_down.png +++ b/web/static/images/emoji/arrow_heading_down.png diff --git a/web/static/images/emoji/arrow_heading_up.png b/web/static/images/emoji/arrow_heading_up.png Binary files differindex c8f670a1e..b6c5b0610 100755..100644 --- a/web/static/images/emoji/arrow_heading_up.png +++ b/web/static/images/emoji/arrow_heading_up.png diff --git a/web/static/images/emoji/arrow_left.png b/web/static/images/emoji/arrow_left.png Binary files differindex d64ac619c..58a76a59c 100755..100644 --- a/web/static/images/emoji/arrow_left.png +++ b/web/static/images/emoji/arrow_left.png diff --git a/web/static/images/emoji/arrow_lower_left.png b/web/static/images/emoji/arrow_lower_left.png Binary files differindex 55fb03c41..c5b1a2f7a 100755..100644 --- a/web/static/images/emoji/arrow_lower_left.png +++ b/web/static/images/emoji/arrow_lower_left.png diff --git a/web/static/images/emoji/arrow_lower_right.png b/web/static/images/emoji/arrow_lower_right.png Binary files differindex da8fb8294..4e7757c23 100755..100644 --- a/web/static/images/emoji/arrow_lower_right.png +++ b/web/static/images/emoji/arrow_lower_right.png diff --git a/web/static/images/emoji/arrow_right.png b/web/static/images/emoji/arrow_right.png Binary files differindex 6d483b514..67ab92488 100755..100644 --- a/web/static/images/emoji/arrow_right.png +++ b/web/static/images/emoji/arrow_right.png diff --git a/web/static/images/emoji/arrow_right_hook.png b/web/static/images/emoji/arrow_right_hook.png Binary files differindex 8b4ea6e17..0512301c9 100755..100644 --- a/web/static/images/emoji/arrow_right_hook.png +++ b/web/static/images/emoji/arrow_right_hook.png diff --git a/web/static/images/emoji/arrow_up.png b/web/static/images/emoji/arrow_up.png Binary files differindex b5b0688d3..d50437a6a 100755..100644 --- a/web/static/images/emoji/arrow_up.png +++ b/web/static/images/emoji/arrow_up.png diff --git a/web/static/images/emoji/arrow_up_down.png b/web/static/images/emoji/arrow_up_down.png Binary files differindex be423de78..bb668b036 100755..100644 --- a/web/static/images/emoji/arrow_up_down.png +++ b/web/static/images/emoji/arrow_up_down.png diff --git a/web/static/images/emoji/arrow_up_small.png b/web/static/images/emoji/arrow_up_small.png Binary files differindex 3f40bfb89..7752177fd 100755..100644 --- a/web/static/images/emoji/arrow_up_small.png +++ b/web/static/images/emoji/arrow_up_small.png diff --git a/web/static/images/emoji/arrow_upper_left.png b/web/static/images/emoji/arrow_upper_left.png Binary files differindex 2950ae2f9..5a75e42ba 100755..100644 --- a/web/static/images/emoji/arrow_upper_left.png +++ b/web/static/images/emoji/arrow_upper_left.png diff --git a/web/static/images/emoji/arrow_upper_right.png b/web/static/images/emoji/arrow_upper_right.png Binary files differindex e23790ba1..267322593 100755..100644 --- a/web/static/images/emoji/arrow_upper_right.png +++ b/web/static/images/emoji/arrow_upper_right.png diff --git a/web/static/images/emoji/arrows_clockwise.png b/web/static/images/emoji/arrows_clockwise.png Binary files differindex 5f84d7e72..fe7d5bafd 100755..100644 --- a/web/static/images/emoji/arrows_clockwise.png +++ b/web/static/images/emoji/arrows_clockwise.png diff --git a/web/static/images/emoji/arrows_counterclockwise.png b/web/static/images/emoji/arrows_counterclockwise.png Binary files differindex 3e06f5b3c..7bd4e4d75 100755..100644 --- a/web/static/images/emoji/arrows_counterclockwise.png +++ b/web/static/images/emoji/arrows_counterclockwise.png diff --git a/web/static/images/emoji/art.png b/web/static/images/emoji/art.png Binary files differindex d45212b03..05116974d 100755..100644 --- a/web/static/images/emoji/art.png +++ b/web/static/images/emoji/art.png diff --git a/web/static/images/emoji/articulated_lorry.png b/web/static/images/emoji/articulated_lorry.png Binary files differindex 81ec1f917..4447dcfb5 100755..100644 --- a/web/static/images/emoji/articulated_lorry.png +++ b/web/static/images/emoji/articulated_lorry.png diff --git a/web/static/images/emoji/astonished.png b/web/static/images/emoji/astonished.png Binary files differindex 858a83484..7be652cab 100755..100644 --- a/web/static/images/emoji/astonished.png +++ b/web/static/images/emoji/astonished.png diff --git a/web/static/images/emoji/athletic_shoe.png b/web/static/images/emoji/athletic_shoe.png Binary files differnew file mode 100644 index 000000000..e2cd2d3d4 --- /dev/null +++ b/web/static/images/emoji/athletic_shoe.png diff --git a/web/static/images/emoji/atm.png b/web/static/images/emoji/atm.png Binary files differindex c2846e792..0769e688b 100755..100644 --- a/web/static/images/emoji/atm.png +++ b/web/static/images/emoji/atm.png diff --git a/web/static/images/emoji/b.png b/web/static/images/emoji/b.png Binary files differindex 8742b3d2e..cf87ad1fc 100755..100644 --- a/web/static/images/emoji/b.png +++ b/web/static/images/emoji/b.png diff --git a/web/static/images/emoji/baby.png b/web/static/images/emoji/baby.png Binary files differindex 3b29da40b..7bfa3d4b5 100755..100644 --- a/web/static/images/emoji/baby.png +++ b/web/static/images/emoji/baby.png diff --git a/web/static/images/emoji/baby_bottle.png b/web/static/images/emoji/baby_bottle.png Binary files differindex 1b2cfe5e3..64e9edee3 100755..100644 --- a/web/static/images/emoji/baby_bottle.png +++ b/web/static/images/emoji/baby_bottle.png diff --git a/web/static/images/emoji/baby_chick.png b/web/static/images/emoji/baby_chick.png Binary files differindex 9be8d2930..66785c880 100755..100644 --- a/web/static/images/emoji/baby_chick.png +++ b/web/static/images/emoji/baby_chick.png diff --git a/web/static/images/emoji/baby_symbol.png b/web/static/images/emoji/baby_symbol.png Binary files differindex 2e58725cf..c289fc5e5 100755..100644 --- a/web/static/images/emoji/baby_symbol.png +++ b/web/static/images/emoji/baby_symbol.png diff --git a/web/static/images/emoji/back.png b/web/static/images/emoji/back.png Binary files differindex 0cde62876..13983d277 100755..100644 --- a/web/static/images/emoji/back.png +++ b/web/static/images/emoji/back.png diff --git a/web/static/images/emoji/baggage_claim.png b/web/static/images/emoji/baggage_claim.png Binary files differindex 59ae044a4..3c6c63aff 100755..100644 --- a/web/static/images/emoji/baggage_claim.png +++ b/web/static/images/emoji/baggage_claim.png diff --git a/web/static/images/emoji/balloon.png b/web/static/images/emoji/balloon.png Binary files differindex 034489702..3cea35eba 100755..100644 --- a/web/static/images/emoji/balloon.png +++ b/web/static/images/emoji/balloon.png diff --git a/web/static/images/emoji/ballot_box_with_ballot.png b/web/static/images/emoji/ballot_box_with_ballot.png Binary files differnew file mode 100644 index 000000000..e97e4727e --- /dev/null +++ b/web/static/images/emoji/ballot_box_with_ballot.png diff --git a/web/static/images/emoji/ballot_box_with_check.png b/web/static/images/emoji/ballot_box_with_check.png Binary files differindex f07a466c7..e9826b1db 100755..100644 --- a/web/static/images/emoji/ballot_box_with_check.png +++ b/web/static/images/emoji/ballot_box_with_check.png diff --git a/web/static/images/emoji/bamboo.png b/web/static/images/emoji/bamboo.png Binary files differindex fc858d0fc..4e27cc4c5 100755..100644 --- a/web/static/images/emoji/bamboo.png +++ b/web/static/images/emoji/bamboo.png diff --git a/web/static/images/emoji/banana.png b/web/static/images/emoji/banana.png Binary files differindex a0563afb9..5e68af770 100755..100644 --- a/web/static/images/emoji/banana.png +++ b/web/static/images/emoji/banana.png diff --git a/web/static/images/emoji/bangbang.png b/web/static/images/emoji/bangbang.png Binary files differindex 7270f0afe..ab85c1d06 100755..100644 --- a/web/static/images/emoji/bangbang.png +++ b/web/static/images/emoji/bangbang.png diff --git a/web/static/images/emoji/bank.png b/web/static/images/emoji/bank.png Binary files differindex 1faa8777e..5cde6caa9 100755..100644 --- a/web/static/images/emoji/bank.png +++ b/web/static/images/emoji/bank.png diff --git a/web/static/images/emoji/bar_chart.png b/web/static/images/emoji/bar_chart.png Binary files differindex 09d7301c4..9b5a73c72 100755..100644 --- a/web/static/images/emoji/bar_chart.png +++ b/web/static/images/emoji/bar_chart.png diff --git a/web/static/images/emoji/barber.png b/web/static/images/emoji/barber.png Binary files differindex a10cb2322..e2267ff8f 100755..100644 --- a/web/static/images/emoji/barber.png +++ b/web/static/images/emoji/barber.png diff --git a/web/static/images/emoji/baseball.png b/web/static/images/emoji/baseball.png Binary files differindex da004e2ea..4ba7a75a6 100755..100644 --- a/web/static/images/emoji/baseball.png +++ b/web/static/images/emoji/baseball.png diff --git a/web/static/images/emoji/basketball.png b/web/static/images/emoji/basketball.png Binary files differindex ef694bec4..e9b1c735a 100755..100644 --- a/web/static/images/emoji/basketball.png +++ b/web/static/images/emoji/basketball.png diff --git a/web/static/images/emoji/bath.png b/web/static/images/emoji/bath.png Binary files differindex 8f75d1d24..faca8ba79 100755..100644 --- a/web/static/images/emoji/bath.png +++ b/web/static/images/emoji/bath.png diff --git a/web/static/images/emoji/bathtub.png b/web/static/images/emoji/bathtub.png Binary files differindex 1c3f844ab..86b2a2629 100755..100644 --- a/web/static/images/emoji/bathtub.png +++ b/web/static/images/emoji/bathtub.png diff --git a/web/static/images/emoji/battery.png b/web/static/images/emoji/battery.png Binary files differindex aa7eedce4..9de506348 100755..100644 --- a/web/static/images/emoji/battery.png +++ b/web/static/images/emoji/battery.png diff --git a/web/static/images/emoji/beach_with_umbrella.png b/web/static/images/emoji/beach_with_umbrella.png Binary files differnew file mode 100644 index 000000000..0e244c164 --- /dev/null +++ b/web/static/images/emoji/beach_with_umbrella.png diff --git a/web/static/images/emoji/bear.png b/web/static/images/emoji/bear.png Binary files differindex f5afe920e..32387186f 100755..100644 --- a/web/static/images/emoji/bear.png +++ b/web/static/images/emoji/bear.png diff --git a/web/static/images/emoji/bed.png b/web/static/images/emoji/bed.png Binary files differnew file mode 100644 index 000000000..2b23803bc --- /dev/null +++ b/web/static/images/emoji/bed.png diff --git a/web/static/images/emoji/bee.png b/web/static/images/emoji/bee.png Binary files differindex f53733953..e67b7703b 100755..100644 --- a/web/static/images/emoji/bee.png +++ b/web/static/images/emoji/bee.png diff --git a/web/static/images/emoji/beer.png b/web/static/images/emoji/beer.png Binary files differindex cd78bed74..de0c3ddd9 100755..100644 --- a/web/static/images/emoji/beer.png +++ b/web/static/images/emoji/beer.png diff --git a/web/static/images/emoji/beers.png b/web/static/images/emoji/beers.png Binary files differindex cc5e4ab5a..04ba4d9f4 100755..100644 --- a/web/static/images/emoji/beers.png +++ b/web/static/images/emoji/beers.png diff --git a/web/static/images/emoji/beetle.png b/web/static/images/emoji/beetle.png Binary files differindex 222577ca7..c35380926 100755..100644 --- a/web/static/images/emoji/beetle.png +++ b/web/static/images/emoji/beetle.png diff --git a/web/static/images/emoji/beginner.png b/web/static/images/emoji/beginner.png Binary files differindex 1f022d175..5f429bf63 100755..100644 --- a/web/static/images/emoji/beginner.png +++ b/web/static/images/emoji/beginner.png diff --git a/web/static/images/emoji/bell.png b/web/static/images/emoji/bell.png Binary files differindex 69acceb28..d1473557e 100755..100644 --- a/web/static/images/emoji/bell.png +++ b/web/static/images/emoji/bell.png diff --git a/web/static/images/emoji/bellhop_bell.png b/web/static/images/emoji/bellhop_bell.png Binary files differnew file mode 100644 index 000000000..5eb060df1 --- /dev/null +++ b/web/static/images/emoji/bellhop_bell.png diff --git a/web/static/images/emoji/bento.png b/web/static/images/emoji/bento.png Binary files differindex d6801124a..58af834fd 100755..100644 --- a/web/static/images/emoji/bento.png +++ b/web/static/images/emoji/bento.png diff --git a/web/static/images/emoji/bicyclist.png b/web/static/images/emoji/bicyclist.png Binary files differindex cbbd7c386..15b4c9666 100755..100644 --- a/web/static/images/emoji/bicyclist.png +++ b/web/static/images/emoji/bicyclist.png diff --git a/web/static/images/emoji/bike.png b/web/static/images/emoji/bike.png Binary files differindex 657386027..a37d60207 100755..100644 --- a/web/static/images/emoji/bike.png +++ b/web/static/images/emoji/bike.png diff --git a/web/static/images/emoji/bikini.png b/web/static/images/emoji/bikini.png Binary files differindex 4ff63b40f..62d142f31 100755..100644 --- a/web/static/images/emoji/bikini.png +++ b/web/static/images/emoji/bikini.png diff --git a/web/static/images/emoji/bird.png b/web/static/images/emoji/bird.png Binary files differindex e6be8c027..077178a42 100755..100644 --- a/web/static/images/emoji/bird.png +++ b/web/static/images/emoji/bird.png diff --git a/web/static/images/emoji/birthday.png b/web/static/images/emoji/birthday.png Binary files differindex 36e8edcbe..c5253b099 100755..100644 --- a/web/static/images/emoji/birthday.png +++ b/web/static/images/emoji/birthday.png diff --git a/web/static/images/emoji/black_circle.png b/web/static/images/emoji/black_circle.png Binary files differindex e46f9df61..a9f021517 100755..100644 --- a/web/static/images/emoji/black_circle.png +++ b/web/static/images/emoji/black_circle.png diff --git a/web/static/images/emoji/black_joker.png b/web/static/images/emoji/black_joker.png Binary files differindex 4c78f3614..1cbc43e84 100755..100644 --- a/web/static/images/emoji/black_joker.png +++ b/web/static/images/emoji/black_joker.png diff --git a/web/static/images/emoji/black_large_square.png b/web/static/images/emoji/black_large_square.png Binary files differnew file mode 100644 index 000000000..a8ca8cb81 --- /dev/null +++ b/web/static/images/emoji/black_large_square.png diff --git a/web/static/images/emoji/black_medium_small_square.png b/web/static/images/emoji/black_medium_small_square.png Binary files differindex 25bfe9c45..6dd0df1c9 100755..100644 --- a/web/static/images/emoji/black_medium_small_square.png +++ b/web/static/images/emoji/black_medium_small_square.png diff --git a/web/static/images/emoji/black_medium_square.png b/web/static/images/emoji/black_medium_square.png Binary files differindex 204cce12c..0250c07f4 100755..100644 --- a/web/static/images/emoji/black_medium_square.png +++ b/web/static/images/emoji/black_medium_square.png diff --git a/web/static/images/emoji/black_nib.png b/web/static/images/emoji/black_nib.png Binary files differindex 29f6994c1..6f1a76cde 100755..100644 --- a/web/static/images/emoji/black_nib.png +++ b/web/static/images/emoji/black_nib.png diff --git a/web/static/images/emoji/black_small_square.png b/web/static/images/emoji/black_small_square.png Binary files differindex a247751ec..5a5559241 100755..100644 --- a/web/static/images/emoji/black_small_square.png +++ b/web/static/images/emoji/black_small_square.png diff --git a/web/static/images/emoji/black_square.png b/web/static/images/emoji/black_square.png Binary files differdeleted file mode 100755 index 71da10de8..000000000 --- a/web/static/images/emoji/black_square.png +++ /dev/null diff --git a/web/static/images/emoji/black_square_button.png b/web/static/images/emoji/black_square_button.png Binary files differindex f2597e956..06c68f23e 100755..100644 --- a/web/static/images/emoji/black_square_button.png +++ b/web/static/images/emoji/black_square_button.png diff --git a/web/static/images/emoji/blossom.png b/web/static/images/emoji/blossom.png Binary files differindex 55a97353b..ffc25f252 100755..100644 --- a/web/static/images/emoji/blossom.png +++ b/web/static/images/emoji/blossom.png diff --git a/web/static/images/emoji/blowfish.png b/web/static/images/emoji/blowfish.png Binary files differindex d3ad46585..7529feff7 100755..100644 --- a/web/static/images/emoji/blowfish.png +++ b/web/static/images/emoji/blowfish.png diff --git a/web/static/images/emoji/blue_book.png b/web/static/images/emoji/blue_book.png Binary files differindex e2b9e8c79..673bf2bdb 100755..100644 --- a/web/static/images/emoji/blue_book.png +++ b/web/static/images/emoji/blue_book.png diff --git a/web/static/images/emoji/blue_car.png b/web/static/images/emoji/blue_car.png Binary files differindex 978291e08..0c2e833ff 100755..100644 --- a/web/static/images/emoji/blue_car.png +++ b/web/static/images/emoji/blue_car.png diff --git a/web/static/images/emoji/blue_heart.png b/web/static/images/emoji/blue_heart.png Binary files differindex baa29b31b..494ab723e 100755..100644 --- a/web/static/images/emoji/blue_heart.png +++ b/web/static/images/emoji/blue_heart.png diff --git a/web/static/images/emoji/blush.png b/web/static/images/emoji/blush.png Binary files differindex 3a95eb61a..1733df545 100755..100644 --- a/web/static/images/emoji/blush.png +++ b/web/static/images/emoji/blush.png diff --git a/web/static/images/emoji/boar.png b/web/static/images/emoji/boar.png Binary files differindex 8196ad4a1..2ccb92fd1 100755..100644 --- a/web/static/images/emoji/boar.png +++ b/web/static/images/emoji/boar.png diff --git a/web/static/images/emoji/boat.png b/web/static/images/emoji/boat.png Binary files differindex ff656dc62..9e862f831 100755..100644 --- a/web/static/images/emoji/boat.png +++ b/web/static/images/emoji/boat.png diff --git a/web/static/images/emoji/bomb.png b/web/static/images/emoji/bomb.png Binary files differindex 3289787dc..774c5c91e 100755..100644 --- a/web/static/images/emoji/bomb.png +++ b/web/static/images/emoji/bomb.png diff --git a/web/static/images/emoji/book.png b/web/static/images/emoji/book.png Binary files differindex 8b698415c..01c836a7e 100755..100644 --- a/web/static/images/emoji/book.png +++ b/web/static/images/emoji/book.png diff --git a/web/static/images/emoji/bookmark.png b/web/static/images/emoji/bookmark.png Binary files differindex 6fc4ed902..05a3325c8 100755..100644 --- a/web/static/images/emoji/bookmark.png +++ b/web/static/images/emoji/bookmark.png diff --git a/web/static/images/emoji/bookmark_tabs.png b/web/static/images/emoji/bookmark_tabs.png Binary files differindex 83782ff0c..9cec88387 100755..100644 --- a/web/static/images/emoji/bookmark_tabs.png +++ b/web/static/images/emoji/bookmark_tabs.png diff --git a/web/static/images/emoji/books.png b/web/static/images/emoji/books.png Binary files differindex dca06a1ad..65abc1651 100755..100644 --- a/web/static/images/emoji/books.png +++ b/web/static/images/emoji/books.png diff --git a/web/static/images/emoji/boom.png b/web/static/images/emoji/boom.png Binary files differindex 9d5bd0401..98a69a628 100755..100644 --- a/web/static/images/emoji/boom.png +++ b/web/static/images/emoji/boom.png diff --git a/web/static/images/emoji/boot.png b/web/static/images/emoji/boot.png Binary files differindex 58d0fdbcd..856256d5b 100755..100644 --- a/web/static/images/emoji/boot.png +++ b/web/static/images/emoji/boot.png diff --git a/web/static/images/emoji/bouquet.png b/web/static/images/emoji/bouquet.png Binary files differindex ce637832e..e42118f7f 100755..100644 --- a/web/static/images/emoji/bouquet.png +++ b/web/static/images/emoji/bouquet.png diff --git a/web/static/images/emoji/bow.png b/web/static/images/emoji/bow.png Binary files differindex 024cb6104..f763bdfe9 100755..100644 --- a/web/static/images/emoji/bow.png +++ b/web/static/images/emoji/bow.png diff --git a/web/static/images/emoji/bowling.png b/web/static/images/emoji/bowling.png Binary files differindex 13d8ece2e..e41edfbdb 100755..100644 --- a/web/static/images/emoji/bowling.png +++ b/web/static/images/emoji/bowling.png diff --git a/web/static/images/emoji/bowtie.png b/web/static/images/emoji/bowtie.png Binary files differindex 28ff0c787..28ff0c787 100755..100644 --- a/web/static/images/emoji/bowtie.png +++ b/web/static/images/emoji/bowtie.png diff --git a/web/static/images/emoji/boy.png b/web/static/images/emoji/boy.png Binary files differindex f79f1f298..ddcf29ca6 100755..100644 --- a/web/static/images/emoji/boy.png +++ b/web/static/images/emoji/boy.png diff --git a/web/static/images/emoji/bread.png b/web/static/images/emoji/bread.png Binary files differindex 7e7c63753..3ca73ebc7 100755..100644 --- a/web/static/images/emoji/bread.png +++ b/web/static/images/emoji/bread.png diff --git a/web/static/images/emoji/bride_with_veil.png b/web/static/images/emoji/bride_with_veil.png Binary files differindex dd0b0cfda..a19e3389e 100755..100644 --- a/web/static/images/emoji/bride_with_veil.png +++ b/web/static/images/emoji/bride_with_veil.png diff --git a/web/static/images/emoji/bridge_at_night.png b/web/static/images/emoji/bridge_at_night.png Binary files differindex 495b06c3d..44cf8852e 100755..100644 --- a/web/static/images/emoji/bridge_at_night.png +++ b/web/static/images/emoji/bridge_at_night.png diff --git a/web/static/images/emoji/briefcase.png b/web/static/images/emoji/briefcase.png Binary files differindex 46e82b001..49293eb0a 100755..100644 --- a/web/static/images/emoji/briefcase.png +++ b/web/static/images/emoji/briefcase.png diff --git a/web/static/images/emoji/broken_heart.png b/web/static/images/emoji/broken_heart.png Binary files differindex a1bc850ec..b7ee9b4e5 100755..100644 --- a/web/static/images/emoji/broken_heart.png +++ b/web/static/images/emoji/broken_heart.png diff --git a/web/static/images/emoji/bug.png b/web/static/images/emoji/bug.png Binary files differindex c2eaf7a70..06b35cf5a 100755..100644 --- a/web/static/images/emoji/bug.png +++ b/web/static/images/emoji/bug.png diff --git a/web/static/images/emoji/building_construction.png b/web/static/images/emoji/building_construction.png Binary files differnew file mode 100644 index 000000000..05a287fee --- /dev/null +++ b/web/static/images/emoji/building_construction.png diff --git a/web/static/images/emoji/bulb.png b/web/static/images/emoji/bulb.png Binary files differindex 23afca1c7..7596c82a7 100755..100644 --- a/web/static/images/emoji/bulb.png +++ b/web/static/images/emoji/bulb.png diff --git a/web/static/images/emoji/bullettrain_front.png b/web/static/images/emoji/bullettrain_front.png Binary files differindex 16651acff..14ab9c409 100755..100644 --- a/web/static/images/emoji/bullettrain_front.png +++ b/web/static/images/emoji/bullettrain_front.png diff --git a/web/static/images/emoji/bullettrain_side.png b/web/static/images/emoji/bullettrain_side.png Binary files differindex 8eca36845..37daa558f 100755..100644 --- a/web/static/images/emoji/bullettrain_side.png +++ b/web/static/images/emoji/bullettrain_side.png diff --git a/web/static/images/emoji/bus.png b/web/static/images/emoji/bus.png Binary files differindex 823aa39e4..b4f9c0c1f 100755..100644 --- a/web/static/images/emoji/bus.png +++ b/web/static/images/emoji/bus.png diff --git a/web/static/images/emoji/busstop.png b/web/static/images/emoji/busstop.png Binary files differindex 94894847b..3e14a30b6 100755..100644 --- a/web/static/images/emoji/busstop.png +++ b/web/static/images/emoji/busstop.png diff --git a/web/static/images/emoji/bust_in_silhouette.png b/web/static/images/emoji/bust_in_silhouette.png Binary files differindex dd7defe28..db3a468fc 100755..100644 --- a/web/static/images/emoji/bust_in_silhouette.png +++ b/web/static/images/emoji/bust_in_silhouette.png diff --git a/web/static/images/emoji/busts_in_silhouette.png b/web/static/images/emoji/busts_in_silhouette.png Binary files differindex 1f3aabcff..f6018ac0e 100755..100644 --- a/web/static/images/emoji/busts_in_silhouette.png +++ b/web/static/images/emoji/busts_in_silhouette.png diff --git a/web/static/images/emoji/cactus.png b/web/static/images/emoji/cactus.png Binary files differindex 5a2c3cc72..0204fd343 100755..100644 --- a/web/static/images/emoji/cactus.png +++ b/web/static/images/emoji/cactus.png diff --git a/web/static/images/emoji/cake.png b/web/static/images/emoji/cake.png Binary files differindex efeb9b4b2..0be915e5b 100755..100644 --- a/web/static/images/emoji/cake.png +++ b/web/static/images/emoji/cake.png diff --git a/web/static/images/emoji/calendar.png b/web/static/images/emoji/calendar.png Binary files differindex 900b868bb..7b1845ab2 100755..100644 --- a/web/static/images/emoji/calendar.png +++ b/web/static/images/emoji/calendar.png diff --git a/web/static/images/emoji/calling.png b/web/static/images/emoji/calling.png Binary files differindex 837897f26..e10f74a6a 100755..100644 --- a/web/static/images/emoji/calling.png +++ b/web/static/images/emoji/calling.png diff --git a/web/static/images/emoji/camel.png b/web/static/images/emoji/camel.png Binary files differindex 496c186ae..f332bf333 100755..100644 --- a/web/static/images/emoji/camel.png +++ b/web/static/images/emoji/camel.png diff --git a/web/static/images/emoji/camera.png b/web/static/images/emoji/camera.png Binary files differindex 397d03b39..0b4463e8b 100755..100644 --- a/web/static/images/emoji/camera.png +++ b/web/static/images/emoji/camera.png diff --git a/web/static/images/emoji/camera_with_flash.png b/web/static/images/emoji/camera_with_flash.png Binary files differnew file mode 100644 index 000000000..66f223b17 --- /dev/null +++ b/web/static/images/emoji/camera_with_flash.png diff --git a/web/static/images/emoji/camping.png b/web/static/images/emoji/camping.png Binary files differnew file mode 100644 index 000000000..d45a07fcf --- /dev/null +++ b/web/static/images/emoji/camping.png diff --git a/web/static/images/emoji/cancer.png b/web/static/images/emoji/cancer.png Binary files differindex ea43a4a2a..6375eabb5 100755..100644 --- a/web/static/images/emoji/cancer.png +++ b/web/static/images/emoji/cancer.png diff --git a/web/static/images/emoji/candle.png b/web/static/images/emoji/candle.png Binary files differnew file mode 100644 index 000000000..d3395073a --- /dev/null +++ b/web/static/images/emoji/candle.png diff --git a/web/static/images/emoji/candy.png b/web/static/images/emoji/candy.png Binary files differindex 33722f236..c067807c1 100755..100644 --- a/web/static/images/emoji/candy.png +++ b/web/static/images/emoji/candy.png diff --git a/web/static/images/emoji/capital_abcd.png b/web/static/images/emoji/capital_abcd.png Binary files differindex ffc0cba4b..044554f6f 100755..100644 --- a/web/static/images/emoji/capital_abcd.png +++ b/web/static/images/emoji/capital_abcd.png diff --git a/web/static/images/emoji/capricorn.png b/web/static/images/emoji/capricorn.png Binary files differindex f2044e789..255ac3183 100755..100644 --- a/web/static/images/emoji/capricorn.png +++ b/web/static/images/emoji/capricorn.png diff --git a/web/static/images/emoji/car.png b/web/static/images/emoji/car.png Binary files differindex d70a2f062..e266bd21e 100755..100644 --- a/web/static/images/emoji/car.png +++ b/web/static/images/emoji/car.png diff --git a/web/static/images/emoji/card_file_box.png b/web/static/images/emoji/card_file_box.png Binary files differnew file mode 100644 index 000000000..c9278f336 --- /dev/null +++ b/web/static/images/emoji/card_file_box.png diff --git a/web/static/images/emoji/card_index.png b/web/static/images/emoji/card_index.png Binary files differindex 374e94e9e..84407de9e 100755..100644 --- a/web/static/images/emoji/card_index.png +++ b/web/static/images/emoji/card_index.png diff --git a/web/static/images/emoji/card_index_dividers.png b/web/static/images/emoji/card_index_dividers.png Binary files differnew file mode 100644 index 000000000..b22199edd --- /dev/null +++ b/web/static/images/emoji/card_index_dividers.png diff --git a/web/static/images/emoji/carousel_horse.png b/web/static/images/emoji/carousel_horse.png Binary files differindex 765d2c0a8..33f159f06 100755..100644 --- a/web/static/images/emoji/carousel_horse.png +++ b/web/static/images/emoji/carousel_horse.png diff --git a/web/static/images/emoji/cat.png b/web/static/images/emoji/cat.png Binary files differindex 09b9ef79a..126d2ef79 100755..100644 --- a/web/static/images/emoji/cat.png +++ b/web/static/images/emoji/cat.png diff --git a/web/static/images/emoji/cat2.png b/web/static/images/emoji/cat2.png Binary files differindex 6dbc4c71e..79f06af48 100755..100644 --- a/web/static/images/emoji/cat2.png +++ b/web/static/images/emoji/cat2.png diff --git a/web/static/images/emoji/cd.png b/web/static/images/emoji/cd.png Binary files differindex baff835c4..10d5db668 100755..100644 --- a/web/static/images/emoji/cd.png +++ b/web/static/images/emoji/cd.png diff --git a/web/static/images/emoji/chart.png b/web/static/images/emoji/chart.png Binary files differindex ac2c4bb09..6b7fb1cdd 100755..100644 --- a/web/static/images/emoji/chart.png +++ b/web/static/images/emoji/chart.png diff --git a/web/static/images/emoji/chart_with_downwards_trend.png b/web/static/images/emoji/chart_with_downwards_trend.png Binary files differindex cb0d2a113..63ab4f0b4 100755..100644 --- a/web/static/images/emoji/chart_with_downwards_trend.png +++ b/web/static/images/emoji/chart_with_downwards_trend.png diff --git a/web/static/images/emoji/chart_with_upwards_trend.png b/web/static/images/emoji/chart_with_upwards_trend.png Binary files differindex 7c66745c9..74a525be1 100755..100644 --- a/web/static/images/emoji/chart_with_upwards_trend.png +++ b/web/static/images/emoji/chart_with_upwards_trend.png diff --git a/web/static/images/emoji/checkered_flag.png b/web/static/images/emoji/checkered_flag.png Binary files differindex ead4a68dd..9f1d564f6 100755..100644 --- a/web/static/images/emoji/checkered_flag.png +++ b/web/static/images/emoji/checkered_flag.png diff --git a/web/static/images/emoji/cherries.png b/web/static/images/emoji/cherries.png Binary files differindex 8d3e044f2..982292e95 100755..100644 --- a/web/static/images/emoji/cherries.png +++ b/web/static/images/emoji/cherries.png diff --git a/web/static/images/emoji/cherry_blossom.png b/web/static/images/emoji/cherry_blossom.png Binary files differindex e03155499..7cd8a22e7 100755..100644 --- a/web/static/images/emoji/cherry_blossom.png +++ b/web/static/images/emoji/cherry_blossom.png diff --git a/web/static/images/emoji/chestnut.png b/web/static/images/emoji/chestnut.png Binary files differindex 066fb6bf6..f983cb132 100755..100644 --- a/web/static/images/emoji/chestnut.png +++ b/web/static/images/emoji/chestnut.png diff --git a/web/static/images/emoji/chicken.png b/web/static/images/emoji/chicken.png Binary files differindex 6d25c0ef4..182ffb343 100755..100644 --- a/web/static/images/emoji/chicken.png +++ b/web/static/images/emoji/chicken.png diff --git a/web/static/images/emoji/children_crossing.png b/web/static/images/emoji/children_crossing.png Binary files differindex b0302ae62..56ad0fb15 100755..100644 --- a/web/static/images/emoji/children_crossing.png +++ b/web/static/images/emoji/children_crossing.png diff --git a/web/static/images/emoji/chipmunk.png b/web/static/images/emoji/chipmunk.png Binary files differnew file mode 100644 index 000000000..2881d09be --- /dev/null +++ b/web/static/images/emoji/chipmunk.png diff --git a/web/static/images/emoji/chocolate_bar.png b/web/static/images/emoji/chocolate_bar.png Binary files differindex c7ec19d07..f76d0902e 100755..100644 --- a/web/static/images/emoji/chocolate_bar.png +++ b/web/static/images/emoji/chocolate_bar.png diff --git a/web/static/images/emoji/christmas_tree.png b/web/static/images/emoji/christmas_tree.png Binary files differindex d813b9593..7674eb441 100755..100644 --- a/web/static/images/emoji/christmas_tree.png +++ b/web/static/images/emoji/christmas_tree.png diff --git a/web/static/images/emoji/church.png b/web/static/images/emoji/church.png Binary files differindex 4c07c6b9e..e1f25e25a 100755..100644 --- a/web/static/images/emoji/church.png +++ b/web/static/images/emoji/church.png diff --git a/web/static/images/emoji/cinema.png b/web/static/images/emoji/cinema.png Binary files differindex a990ccf99..972b57df7 100755..100644 --- a/web/static/images/emoji/cinema.png +++ b/web/static/images/emoji/cinema.png diff --git a/web/static/images/emoji/circus_tent.png b/web/static/images/emoji/circus_tent.png Binary files differindex 4af8719aa..713b4f085 100755..100644 --- a/web/static/images/emoji/circus_tent.png +++ b/web/static/images/emoji/circus_tent.png diff --git a/web/static/images/emoji/city_sunrise.png b/web/static/images/emoji/city_sunrise.png Binary files differindex 91ca2a40b..a65691bb0 100755..100644 --- a/web/static/images/emoji/city_sunrise.png +++ b/web/static/images/emoji/city_sunrise.png diff --git a/web/static/images/emoji/city_sunset.png b/web/static/images/emoji/city_sunset.png Binary files differindex 7cb178a2c..f64483fb6 100755..100644 --- a/web/static/images/emoji/city_sunset.png +++ b/web/static/images/emoji/city_sunset.png diff --git a/web/static/images/emoji/cityscape.png b/web/static/images/emoji/cityscape.png Binary files differnew file mode 100644 index 000000000..4d331db74 --- /dev/null +++ b/web/static/images/emoji/cityscape.png diff --git a/web/static/images/emoji/cl.png b/web/static/images/emoji/cl.png Binary files differindex 15ac67525..ccd6494e6 100755..100644 --- a/web/static/images/emoji/cl.png +++ b/web/static/images/emoji/cl.png diff --git a/web/static/images/emoji/clap.png b/web/static/images/emoji/clap.png Binary files differindex d01c982a7..ccb725e96 100755..100644 --- a/web/static/images/emoji/clap.png +++ b/web/static/images/emoji/clap.png diff --git a/web/static/images/emoji/clapper.png b/web/static/images/emoji/clapper.png Binary files differindex 4e1dc111d..54bbba809 100755..100644 --- a/web/static/images/emoji/clapper.png +++ b/web/static/images/emoji/clapper.png diff --git a/web/static/images/emoji/classical_building.png b/web/static/images/emoji/classical_building.png Binary files differnew file mode 100644 index 000000000..71150c7c5 --- /dev/null +++ b/web/static/images/emoji/classical_building.png diff --git a/web/static/images/emoji/clipboard.png b/web/static/images/emoji/clipboard.png Binary files differindex e2c74e6df..7f50dfff7 100755..100644 --- a/web/static/images/emoji/clipboard.png +++ b/web/static/images/emoji/clipboard.png diff --git a/web/static/images/emoji/clock1.png b/web/static/images/emoji/clock1.png Binary files differindex 9174d4e0b..980085a07 100755..100644 --- a/web/static/images/emoji/clock1.png +++ b/web/static/images/emoji/clock1.png diff --git a/web/static/images/emoji/clock10.png b/web/static/images/emoji/clock10.png Binary files differindex 39f590d69..90f1576d2 100755..100644 --- a/web/static/images/emoji/clock10.png +++ b/web/static/images/emoji/clock10.png diff --git a/web/static/images/emoji/clock1030.png b/web/static/images/emoji/clock1030.png Binary files differindex 0483b3059..c530b7db4 100755..100644 --- a/web/static/images/emoji/clock1030.png +++ b/web/static/images/emoji/clock1030.png diff --git a/web/static/images/emoji/clock11.png b/web/static/images/emoji/clock11.png Binary files differindex ddb53fada..918ba245f 100755..100644 --- a/web/static/images/emoji/clock11.png +++ b/web/static/images/emoji/clock11.png diff --git a/web/static/images/emoji/clock1130.png b/web/static/images/emoji/clock1130.png Binary files differindex 415999ec8..e39bbbbb1 100755..100644 --- a/web/static/images/emoji/clock1130.png +++ b/web/static/images/emoji/clock1130.png diff --git a/web/static/images/emoji/clock12.png b/web/static/images/emoji/clock12.png Binary files differindex 87b132878..d5848e629 100755..100644 --- a/web/static/images/emoji/clock12.png +++ b/web/static/images/emoji/clock12.png diff --git a/web/static/images/emoji/clock1230.png b/web/static/images/emoji/clock1230.png Binary files differindex a6527154d..f67ed85f3 100755..100644 --- a/web/static/images/emoji/clock1230.png +++ b/web/static/images/emoji/clock1230.png diff --git a/web/static/images/emoji/clock130.png b/web/static/images/emoji/clock130.png Binary files differindex 90ea5b914..c4675548d 100755..100644 --- a/web/static/images/emoji/clock130.png +++ b/web/static/images/emoji/clock130.png diff --git a/web/static/images/emoji/clock2.png b/web/static/images/emoji/clock2.png Binary files differindex 65b3b3af0..ba411f8f0 100755..100644 --- a/web/static/images/emoji/clock2.png +++ b/web/static/images/emoji/clock2.png diff --git a/web/static/images/emoji/clock230.png b/web/static/images/emoji/clock230.png Binary files differindex f12c6912a..5482453d1 100755..100644 --- a/web/static/images/emoji/clock230.png +++ b/web/static/images/emoji/clock230.png diff --git a/web/static/images/emoji/clock3.png b/web/static/images/emoji/clock3.png Binary files differindex 3e44d64e2..7978c4251 100755..100644 --- a/web/static/images/emoji/clock3.png +++ b/web/static/images/emoji/clock3.png diff --git a/web/static/images/emoji/clock330.png b/web/static/images/emoji/clock330.png Binary files differindex 1dc9628ea..f66421993 100755..100644 --- a/web/static/images/emoji/clock330.png +++ b/web/static/images/emoji/clock330.png diff --git a/web/static/images/emoji/clock4.png b/web/static/images/emoji/clock4.png Binary files differindex 948ed1a38..4cfceb291 100755..100644 --- a/web/static/images/emoji/clock4.png +++ b/web/static/images/emoji/clock4.png diff --git a/web/static/images/emoji/clock430.png b/web/static/images/emoji/clock430.png Binary files differindex 5d6b16a2d..b93f01e67 100755..100644 --- a/web/static/images/emoji/clock430.png +++ b/web/static/images/emoji/clock430.png diff --git a/web/static/images/emoji/clock5.png b/web/static/images/emoji/clock5.png Binary files differindex b010b4f8a..403b99fb2 100755..100644 --- a/web/static/images/emoji/clock5.png +++ b/web/static/images/emoji/clock5.png diff --git a/web/static/images/emoji/clock530.png b/web/static/images/emoji/clock530.png Binary files differindex e08d4ad2b..b2ad07307 100755..100644 --- a/web/static/images/emoji/clock530.png +++ b/web/static/images/emoji/clock530.png diff --git a/web/static/images/emoji/clock6.png b/web/static/images/emoji/clock6.png Binary files differindex 76bf8cf18..008ac2b9e 100755..100644 --- a/web/static/images/emoji/clock6.png +++ b/web/static/images/emoji/clock6.png diff --git a/web/static/images/emoji/clock630.png b/web/static/images/emoji/clock630.png Binary files differindex 46f0681f1..dbabd4eb9 100755..100644 --- a/web/static/images/emoji/clock630.png +++ b/web/static/images/emoji/clock630.png diff --git a/web/static/images/emoji/clock7.png b/web/static/images/emoji/clock7.png Binary files differindex d48f645d8..067d11165 100755..100644 --- a/web/static/images/emoji/clock7.png +++ b/web/static/images/emoji/clock7.png diff --git a/web/static/images/emoji/clock730.png b/web/static/images/emoji/clock730.png Binary files differindex f2807de2f..415894eda 100755..100644 --- a/web/static/images/emoji/clock730.png +++ b/web/static/images/emoji/clock730.png diff --git a/web/static/images/emoji/clock8.png b/web/static/images/emoji/clock8.png Binary files differindex 74c770d89..c4bdc4080 100755..100644 --- a/web/static/images/emoji/clock8.png +++ b/web/static/images/emoji/clock8.png diff --git a/web/static/images/emoji/clock830.png b/web/static/images/emoji/clock830.png Binary files differindex f58f3dadd..8e899ad48 100755..100644 --- a/web/static/images/emoji/clock830.png +++ b/web/static/images/emoji/clock830.png diff --git a/web/static/images/emoji/clock9.png b/web/static/images/emoji/clock9.png Binary files differindex f009d14ac..467de0ba5 100755..100644 --- a/web/static/images/emoji/clock9.png +++ b/web/static/images/emoji/clock9.png diff --git a/web/static/images/emoji/clock930.png b/web/static/images/emoji/clock930.png Binary files differindex fd3522142..d9c91203c 100755..100644 --- a/web/static/images/emoji/clock930.png +++ b/web/static/images/emoji/clock930.png diff --git a/web/static/images/emoji/closed_book.png b/web/static/images/emoji/closed_book.png Binary files differindex 484029c5e..e26390e0a 100755..100644 --- a/web/static/images/emoji/closed_book.png +++ b/web/static/images/emoji/closed_book.png diff --git a/web/static/images/emoji/closed_lock_with_key.png b/web/static/images/emoji/closed_lock_with_key.png Binary files differindex e6fdf6cb2..d2bddb1eb 100755..100644 --- a/web/static/images/emoji/closed_lock_with_key.png +++ b/web/static/images/emoji/closed_lock_with_key.png diff --git a/web/static/images/emoji/closed_umbrella.png b/web/static/images/emoji/closed_umbrella.png Binary files differindex 0b719f086..00afbfb40 100755..100644 --- a/web/static/images/emoji/closed_umbrella.png +++ b/web/static/images/emoji/closed_umbrella.png diff --git a/web/static/images/emoji/cloud.png b/web/static/images/emoji/cloud.png Binary files differindex b31c08c0b..559c52f76 100755..100644 --- a/web/static/images/emoji/cloud.png +++ b/web/static/images/emoji/cloud.png diff --git a/web/static/images/emoji/clubs.png b/web/static/images/emoji/clubs.png Binary files differindex bfab53656..307231d98 100755..100644 --- a/web/static/images/emoji/clubs.png +++ b/web/static/images/emoji/clubs.png diff --git a/web/static/images/emoji/cn.png b/web/static/images/emoji/cn.png Binary files differindex b30dcc53d..0151923f3 100755..100644 --- a/web/static/images/emoji/cn.png +++ b/web/static/images/emoji/cn.png diff --git a/web/static/images/emoji/cocktail.png b/web/static/images/emoji/cocktail.png Binary files differindex 28b45ea51..abff15aa8 100755..100644 --- a/web/static/images/emoji/cocktail.png +++ b/web/static/images/emoji/cocktail.png diff --git a/web/static/images/emoji/coffee.png b/web/static/images/emoji/coffee.png Binary files differindex 57e1adcb0..109505f51 100755..100644 --- a/web/static/images/emoji/coffee.png +++ b/web/static/images/emoji/coffee.png diff --git a/web/static/images/emoji/cold_sweat.png b/web/static/images/emoji/cold_sweat.png Binary files differindex b9e39bc60..f488a3ec3 100755..100644 --- a/web/static/images/emoji/cold_sweat.png +++ b/web/static/images/emoji/cold_sweat.png diff --git a/web/static/images/emoji/collision.png b/web/static/images/emoji/collision.png Binary files differindex 9d5bd0401..98a69a628 100755..100644 --- a/web/static/images/emoji/collision.png +++ b/web/static/images/emoji/collision.png diff --git a/web/static/images/emoji/compression.png b/web/static/images/emoji/compression.png Binary files differnew file mode 100644 index 000000000..08c06264e --- /dev/null +++ b/web/static/images/emoji/compression.png diff --git a/web/static/images/emoji/computer.png b/web/static/images/emoji/computer.png Binary files differindex d4d268762..e23340a04 100755..100644 --- a/web/static/images/emoji/computer.png +++ b/web/static/images/emoji/computer.png diff --git a/web/static/images/emoji/confetti_ball.png b/web/static/images/emoji/confetti_ball.png Binary files differindex bd293e3d8..74c61e434 100755..100644 --- a/web/static/images/emoji/confetti_ball.png +++ b/web/static/images/emoji/confetti_ball.png diff --git a/web/static/images/emoji/confounded.png b/web/static/images/emoji/confounded.png Binary files differindex 762c3766a..da0e1cad0 100755..100644 --- a/web/static/images/emoji/confounded.png +++ b/web/static/images/emoji/confounded.png diff --git a/web/static/images/emoji/confused.png b/web/static/images/emoji/confused.png Binary files differindex 8dc494db0..6bb66752f 100755..100644 --- a/web/static/images/emoji/confused.png +++ b/web/static/images/emoji/confused.png diff --git a/web/static/images/emoji/congratulations.png b/web/static/images/emoji/congratulations.png Binary files differindex 85814e33c..b3ffe6fe4 100755..100644 --- a/web/static/images/emoji/congratulations.png +++ b/web/static/images/emoji/congratulations.png diff --git a/web/static/images/emoji/construction.png b/web/static/images/emoji/construction.png Binary files differindex 523e9f10b..d29f47b02 100755..100644 --- a/web/static/images/emoji/construction.png +++ b/web/static/images/emoji/construction.png diff --git a/web/static/images/emoji/construction_worker.png b/web/static/images/emoji/construction_worker.png Binary files differindex 4d6486047..862e51f40 100755..100644 --- a/web/static/images/emoji/construction_worker.png +++ b/web/static/images/emoji/construction_worker.png diff --git a/web/static/images/emoji/control_knobs.png b/web/static/images/emoji/control_knobs.png Binary files differnew file mode 100644 index 000000000..ab4045342 --- /dev/null +++ b/web/static/images/emoji/control_knobs.png diff --git a/web/static/images/emoji/convenience_store.png b/web/static/images/emoji/convenience_store.png Binary files differindex 671696c2d..fbfc257ee 100755..100644 --- a/web/static/images/emoji/convenience_store.png +++ b/web/static/images/emoji/convenience_store.png diff --git a/web/static/images/emoji/cookie.png b/web/static/images/emoji/cookie.png Binary files differindex 653edb258..8eb640e8d 100755..100644 --- a/web/static/images/emoji/cookie.png +++ b/web/static/images/emoji/cookie.png diff --git a/web/static/images/emoji/cool.png b/web/static/images/emoji/cool.png Binary files differindex 937dcd792..07c22b8c5 100755..100644 --- a/web/static/images/emoji/cool.png +++ b/web/static/images/emoji/cool.png diff --git a/web/static/images/emoji/cop.png b/web/static/images/emoji/cop.png Binary files differindex 43a5a84f8..818cab806 100755..100644 --- a/web/static/images/emoji/cop.png +++ b/web/static/images/emoji/cop.png diff --git a/web/static/images/emoji/copyright.png b/web/static/images/emoji/copyright.png Binary files differindex 38493c33f..9872c5b7e 100755..100644 --- a/web/static/images/emoji/copyright.png +++ b/web/static/images/emoji/copyright.png diff --git a/web/static/images/emoji/corn.png b/web/static/images/emoji/corn.png Binary files differindex fe5d8b128..e5f2304bd 100755..100644 --- a/web/static/images/emoji/corn.png +++ b/web/static/images/emoji/corn.png diff --git a/web/static/images/emoji/couch_and_lamp.png b/web/static/images/emoji/couch_and_lamp.png Binary files differnew file mode 100644 index 000000000..fe7473eef --- /dev/null +++ b/web/static/images/emoji/couch_and_lamp.png diff --git a/web/static/images/emoji/couple.png b/web/static/images/emoji/couple.png Binary files differindex 9e51f40e1..616f8520b 100755..100644 --- a/web/static/images/emoji/couple.png +++ b/web/static/images/emoji/couple.png diff --git a/web/static/images/emoji/couple_with_heart.png b/web/static/images/emoji/couple_with_heart.png Binary files differindex c503f40a9..44d4e18bd 100755..100644 --- a/web/static/images/emoji/couple_with_heart.png +++ b/web/static/images/emoji/couple_with_heart.png diff --git a/web/static/images/emoji/couplekiss.png b/web/static/images/emoji/couplekiss.png Binary files differindex d02790822..0280fba18 100755..100644 --- a/web/static/images/emoji/couplekiss.png +++ b/web/static/images/emoji/couplekiss.png diff --git a/web/static/images/emoji/cow.png b/web/static/images/emoji/cow.png Binary files differindex 12e1ab6c0..15196a069 100755..100644 --- a/web/static/images/emoji/cow.png +++ b/web/static/images/emoji/cow.png diff --git a/web/static/images/emoji/cow2.png b/web/static/images/emoji/cow2.png Binary files differindex 594c92155..b3767f6c5 100755..100644 --- a/web/static/images/emoji/cow2.png +++ b/web/static/images/emoji/cow2.png diff --git a/web/static/images/emoji/credit_card.png b/web/static/images/emoji/credit_card.png Binary files differindex be1c1dd30..e41515bb7 100755..100644 --- a/web/static/images/emoji/credit_card.png +++ b/web/static/images/emoji/credit_card.png diff --git a/web/static/images/emoji/crescent_moon.png b/web/static/images/emoji/crescent_moon.png Binary files differindex afdb450d1..2a0b9f39b 100755..100644 --- a/web/static/images/emoji/crescent_moon.png +++ b/web/static/images/emoji/crescent_moon.png diff --git a/web/static/images/emoji/crocodile.png b/web/static/images/emoji/crocodile.png Binary files differindex 7435d5ab3..3b53cacf8 100755..100644 --- a/web/static/images/emoji/crocodile.png +++ b/web/static/images/emoji/crocodile.png diff --git a/web/static/images/emoji/crossed_flags.png b/web/static/images/emoji/crossed_flags.png Binary files differindex 2397bcd0f..5d88b0ad0 100755..100644 --- a/web/static/images/emoji/crossed_flags.png +++ b/web/static/images/emoji/crossed_flags.png diff --git a/web/static/images/emoji/crown.png b/web/static/images/emoji/crown.png Binary files differindex 39da1d528..54ca7998c 100755..100644 --- a/web/static/images/emoji/crown.png +++ b/web/static/images/emoji/crown.png diff --git a/web/static/images/emoji/cry.png b/web/static/images/emoji/cry.png Binary files differindex 6d0d9afd2..dd17cbcca 100755..100644 --- a/web/static/images/emoji/cry.png +++ b/web/static/images/emoji/cry.png diff --git a/web/static/images/emoji/crying_cat_face.png b/web/static/images/emoji/crying_cat_face.png Binary files differindex 42d4c27ca..c467c2198 100755..100644 --- a/web/static/images/emoji/crying_cat_face.png +++ b/web/static/images/emoji/crying_cat_face.png diff --git a/web/static/images/emoji/crystal_ball.png b/web/static/images/emoji/crystal_ball.png Binary files differindex 6d2c6c42d..d9ee3b4f3 100755..100644 --- a/web/static/images/emoji/crystal_ball.png +++ b/web/static/images/emoji/crystal_ball.png diff --git a/web/static/images/emoji/cupid.png b/web/static/images/emoji/cupid.png Binary files differindex 498728476..49260219c 100755..100644 --- a/web/static/images/emoji/cupid.png +++ b/web/static/images/emoji/cupid.png diff --git a/web/static/images/emoji/curly_loop.png b/web/static/images/emoji/curly_loop.png Binary files differindex 7dd841d00..1c7b496c5 100755..100644 --- a/web/static/images/emoji/curly_loop.png +++ b/web/static/images/emoji/curly_loop.png diff --git a/web/static/images/emoji/currency_exchange.png b/web/static/images/emoji/currency_exchange.png Binary files differindex 6ebebe70a..7cdbde70c 100755..100644 --- a/web/static/images/emoji/currency_exchange.png +++ b/web/static/images/emoji/currency_exchange.png diff --git a/web/static/images/emoji/curry.png b/web/static/images/emoji/curry.png Binary files differindex 7983c706a..0afd63ca1 100755..100644 --- a/web/static/images/emoji/curry.png +++ b/web/static/images/emoji/curry.png diff --git a/web/static/images/emoji/custard.png b/web/static/images/emoji/custard.png Binary files differindex 9f843b4c1..44af92a57 100755..100644 --- a/web/static/images/emoji/custard.png +++ b/web/static/images/emoji/custard.png diff --git a/web/static/images/emoji/customs.png b/web/static/images/emoji/customs.png Binary files differindex 92691e311..8c6811ce7 100755..100644 --- a/web/static/images/emoji/customs.png +++ b/web/static/images/emoji/customs.png diff --git a/web/static/images/emoji/cyclone.png b/web/static/images/emoji/cyclone.png Binary files differindex 5fd2e4512..bd243229a 100755..100644 --- a/web/static/images/emoji/cyclone.png +++ b/web/static/images/emoji/cyclone.png diff --git a/web/static/images/emoji/dagger_knife.png b/web/static/images/emoji/dagger_knife.png Binary files differnew file mode 100644 index 000000000..8bfeac95d --- /dev/null +++ b/web/static/images/emoji/dagger_knife.png diff --git a/web/static/images/emoji/dancer.png b/web/static/images/emoji/dancer.png Binary files differindex 7a7bf59f1..8e3c67dd2 100755..100644 --- a/web/static/images/emoji/dancer.png +++ b/web/static/images/emoji/dancer.png diff --git a/web/static/images/emoji/dancers.png b/web/static/images/emoji/dancers.png Binary files differindex 2dfb451a7..8829c0e87 100755..100644 --- a/web/static/images/emoji/dancers.png +++ b/web/static/images/emoji/dancers.png diff --git a/web/static/images/emoji/dango.png b/web/static/images/emoji/dango.png Binary files differindex 2d042aebe..d679ebc02 100755..100644 --- a/web/static/images/emoji/dango.png +++ b/web/static/images/emoji/dango.png diff --git a/web/static/images/emoji/dark_sunglasses.png b/web/static/images/emoji/dark_sunglasses.png Binary files differnew file mode 100644 index 000000000..6ed2172a0 --- /dev/null +++ b/web/static/images/emoji/dark_sunglasses.png diff --git a/web/static/images/emoji/dart.png b/web/static/images/emoji/dart.png Binary files differindex 5f16864cb..527b6a94e 100755..100644 --- a/web/static/images/emoji/dart.png +++ b/web/static/images/emoji/dart.png diff --git a/web/static/images/emoji/dash.png b/web/static/images/emoji/dash.png Binary files differindex dc2c0a8f4..d58c22281 100755..100644 --- a/web/static/images/emoji/dash.png +++ b/web/static/images/emoji/dash.png diff --git a/web/static/images/emoji/date.png b/web/static/images/emoji/date.png Binary files differindex 6ad2efa5f..61308e816 100755..100644 --- a/web/static/images/emoji/date.png +++ b/web/static/images/emoji/date.png diff --git a/web/static/images/emoji/de.png b/web/static/images/emoji/de.png Binary files differindex 16a28548c..168ab43c3 100755..100644 --- a/web/static/images/emoji/de.png +++ b/web/static/images/emoji/de.png diff --git a/web/static/images/emoji/deciduous_tree.png b/web/static/images/emoji/deciduous_tree.png Binary files differindex 3fdf8c007..1a54ec34b 100755..100644 --- a/web/static/images/emoji/deciduous_tree.png +++ b/web/static/images/emoji/deciduous_tree.png diff --git a/web/static/images/emoji/department_store.png b/web/static/images/emoji/department_store.png Binary files differindex 68d959c50..bc83c16f6 100755..100644 --- a/web/static/images/emoji/department_store.png +++ b/web/static/images/emoji/department_store.png diff --git a/web/static/images/emoji/derelict_house_building.png b/web/static/images/emoji/derelict_house_building.png Binary files differnew file mode 100644 index 000000000..316e082d1 --- /dev/null +++ b/web/static/images/emoji/derelict_house_building.png diff --git a/web/static/images/emoji/desert.png b/web/static/images/emoji/desert.png Binary files differnew file mode 100644 index 000000000..b627c829b --- /dev/null +++ b/web/static/images/emoji/desert.png diff --git a/web/static/images/emoji/desert_island.png b/web/static/images/emoji/desert_island.png Binary files differnew file mode 100644 index 000000000..946ef26a5 --- /dev/null +++ b/web/static/images/emoji/desert_island.png diff --git a/web/static/images/emoji/desktop_computer.png b/web/static/images/emoji/desktop_computer.png Binary files differnew file mode 100644 index 000000000..59fc83484 --- /dev/null +++ b/web/static/images/emoji/desktop_computer.png diff --git a/web/static/images/emoji/diamond_shape_with_a_dot_inside.png b/web/static/images/emoji/diamond_shape_with_a_dot_inside.png Binary files differindex dfd1098b3..6aec6cb19 100755..100644 --- a/web/static/images/emoji/diamond_shape_with_a_dot_inside.png +++ b/web/static/images/emoji/diamond_shape_with_a_dot_inside.png diff --git a/web/static/images/emoji/diamonds.png b/web/static/images/emoji/diamonds.png Binary files differindex fe0827758..3e153dbe8 100755..100644 --- a/web/static/images/emoji/diamonds.png +++ b/web/static/images/emoji/diamonds.png diff --git a/web/static/images/emoji/disappointed.png b/web/static/images/emoji/disappointed.png Binary files differindex 825520087..9643415e6 100755..100644 --- a/web/static/images/emoji/disappointed.png +++ b/web/static/images/emoji/disappointed.png diff --git a/web/static/images/emoji/disappointed_relieved.png b/web/static/images/emoji/disappointed_relieved.png Binary files differindex fa5f9e7f9..bcea87523 100755..100644 --- a/web/static/images/emoji/disappointed_relieved.png +++ b/web/static/images/emoji/disappointed_relieved.png diff --git a/web/static/images/emoji/dizzy.png b/web/static/images/emoji/dizzy.png Binary files differindex 3702b6131..b6972196c 100755..100644 --- a/web/static/images/emoji/dizzy.png +++ b/web/static/images/emoji/dizzy.png diff --git a/web/static/images/emoji/dizzy_face.png b/web/static/images/emoji/dizzy_face.png Binary files differindex 8001d6ff8..a23dc7e31 100755..100644 --- a/web/static/images/emoji/dizzy_face.png +++ b/web/static/images/emoji/dizzy_face.png diff --git a/web/static/images/emoji/do_not_litter.png b/web/static/images/emoji/do_not_litter.png Binary files differindex 38c7ae7af..c29f7edf6 100755..100644 --- a/web/static/images/emoji/do_not_litter.png +++ b/web/static/images/emoji/do_not_litter.png diff --git a/web/static/images/emoji/dog.png b/web/static/images/emoji/dog.png Binary files differindex 389a02bf2..3c107deb4 100755..100644 --- a/web/static/images/emoji/dog.png +++ b/web/static/images/emoji/dog.png diff --git a/web/static/images/emoji/dog2.png b/web/static/images/emoji/dog2.png Binary files differindex c7f6a24ac..7057ffe66 100755..100644 --- a/web/static/images/emoji/dog2.png +++ b/web/static/images/emoji/dog2.png diff --git a/web/static/images/emoji/dollar.png b/web/static/images/emoji/dollar.png Binary files differindex 63de88495..73843bf91 100755..100644 --- a/web/static/images/emoji/dollar.png +++ b/web/static/images/emoji/dollar.png diff --git a/web/static/images/emoji/dolls.png b/web/static/images/emoji/dolls.png Binary files differindex 47ce33900..dcd7b9385 100755..100644 --- a/web/static/images/emoji/dolls.png +++ b/web/static/images/emoji/dolls.png diff --git a/web/static/images/emoji/dolphin.png b/web/static/images/emoji/dolphin.png Binary files differindex 9326077a9..4dde4cc13 100755..100644 --- a/web/static/images/emoji/dolphin.png +++ b/web/static/images/emoji/dolphin.png diff --git a/web/static/images/emoji/donut.png b/web/static/images/emoji/donut.png Binary files differdeleted file mode 100755 index ccf869129..000000000 --- a/web/static/images/emoji/donut.png +++ /dev/null diff --git a/web/static/images/emoji/door.png b/web/static/images/emoji/door.png Binary files differindex 83c819ae4..4c8695fee 100755..100644 --- a/web/static/images/emoji/door.png +++ b/web/static/images/emoji/door.png diff --git a/web/static/images/emoji/doughnut.png b/web/static/images/emoji/doughnut.png Binary files differindex ccf869129..b415c96bc 100755..100644 --- a/web/static/images/emoji/doughnut.png +++ b/web/static/images/emoji/doughnut.png diff --git a/web/static/images/emoji/dove_of_peace.png b/web/static/images/emoji/dove_of_peace.png Binary files differnew file mode 100644 index 000000000..e54bfc2b1 --- /dev/null +++ b/web/static/images/emoji/dove_of_peace.png diff --git a/web/static/images/emoji/dragon.png b/web/static/images/emoji/dragon.png Binary files differindex 88d4784b8..b5b635770 100755..100644 --- a/web/static/images/emoji/dragon.png +++ b/web/static/images/emoji/dragon.png diff --git a/web/static/images/emoji/dragon_face.png b/web/static/images/emoji/dragon_face.png Binary files differindex e5e556bd1..aba3bd471 100755..100644 --- a/web/static/images/emoji/dragon_face.png +++ b/web/static/images/emoji/dragon_face.png diff --git a/web/static/images/emoji/dress.png b/web/static/images/emoji/dress.png Binary files differindex 6434e2e2f..512fe8bfe 100755..100644 --- a/web/static/images/emoji/dress.png +++ b/web/static/images/emoji/dress.png diff --git a/web/static/images/emoji/dromedary_camel.png b/web/static/images/emoji/dromedary_camel.png Binary files differindex c8c7b9ffa..e881a8b5f 100755..100644 --- a/web/static/images/emoji/dromedary_camel.png +++ b/web/static/images/emoji/dromedary_camel.png diff --git a/web/static/images/emoji/droplet.png b/web/static/images/emoji/droplet.png Binary files differindex cae7f4951..074982362 100755..100644 --- a/web/static/images/emoji/droplet.png +++ b/web/static/images/emoji/droplet.png diff --git a/web/static/images/emoji/dvd.png b/web/static/images/emoji/dvd.png Binary files differindex 363c83d01..6f7b85774 100755..100644 --- a/web/static/images/emoji/dvd.png +++ b/web/static/images/emoji/dvd.png diff --git a/web/static/images/emoji/e-mail.png b/web/static/images/emoji/e-mail.png Binary files differindex 176a8e1e8..838ee67ed 100755..100644 --- a/web/static/images/emoji/e-mail.png +++ b/web/static/images/emoji/e-mail.png diff --git a/web/static/images/emoji/ear.png b/web/static/images/emoji/ear.png Binary files differindex 2bbbf10c9..a29807228 100755..100644 --- a/web/static/images/emoji/ear.png +++ b/web/static/images/emoji/ear.png diff --git a/web/static/images/emoji/ear_of_rice.png b/web/static/images/emoji/ear_of_rice.png Binary files differindex a9bba5c2c..9d3f454f8 100755..100644 --- a/web/static/images/emoji/ear_of_rice.png +++ b/web/static/images/emoji/ear_of_rice.png diff --git a/web/static/images/emoji/earth_africa.png b/web/static/images/emoji/earth_africa.png Binary files differindex 44ce5ecb6..a4bbace54 100755..100644 --- a/web/static/images/emoji/earth_africa.png +++ b/web/static/images/emoji/earth_africa.png diff --git a/web/static/images/emoji/earth_americas.png b/web/static/images/emoji/earth_americas.png Binary files differindex 97d717671..13a307f3c 100755..100644 --- a/web/static/images/emoji/earth_americas.png +++ b/web/static/images/emoji/earth_americas.png diff --git a/web/static/images/emoji/earth_asia.png b/web/static/images/emoji/earth_asia.png Binary files differindex 95ec357ca..908e483fa 100755..100644 --- a/web/static/images/emoji/earth_asia.png +++ b/web/static/images/emoji/earth_asia.png diff --git a/web/static/images/emoji/egg.png b/web/static/images/emoji/egg.png Binary files differindex c3de6ae4e..b5c090a17 100755..100644 --- a/web/static/images/emoji/egg.png +++ b/web/static/images/emoji/egg.png diff --git a/web/static/images/emoji/eggplant.png b/web/static/images/emoji/eggplant.png Binary files differindex 66f25fce4..75c902569 100755..100644 --- a/web/static/images/emoji/eggplant.png +++ b/web/static/images/emoji/eggplant.png diff --git a/web/static/images/emoji/eight.png b/web/static/images/emoji/eight.png Binary files differindex 7bdb42232..48c5ca813 100755..100644 --- a/web/static/images/emoji/eight.png +++ b/web/static/images/emoji/eight.png diff --git a/web/static/images/emoji/eight_pointed_black_star.png b/web/static/images/emoji/eight_pointed_black_star.png Binary files differindex 2420a7768..ea1ba7edb 100755..100644 --- a/web/static/images/emoji/eight_pointed_black_star.png +++ b/web/static/images/emoji/eight_pointed_black_star.png diff --git a/web/static/images/emoji/eight_spoked_asterisk.png b/web/static/images/emoji/eight_spoked_asterisk.png Binary files differindex 946a20333..aaa681d4f 100755..100644 --- a/web/static/images/emoji/eight_spoked_asterisk.png +++ b/web/static/images/emoji/eight_spoked_asterisk.png diff --git a/web/static/images/emoji/electric_plug.png b/web/static/images/emoji/electric_plug.png Binary files differindex 2837bab4f..e15d4d5ad 100755..100644 --- a/web/static/images/emoji/electric_plug.png +++ b/web/static/images/emoji/electric_plug.png diff --git a/web/static/images/emoji/elephant.png b/web/static/images/emoji/elephant.png Binary files differindex 5ca04570e..af079ec4d 100755..100644 --- a/web/static/images/emoji/elephant.png +++ b/web/static/images/emoji/elephant.png diff --git a/web/static/images/emoji/email.png b/web/static/images/emoji/email.png Binary files differindex 0e01fd5f0..c0bb4ebfd 100755..100644 --- a/web/static/images/emoji/email.png +++ b/web/static/images/emoji/email.png diff --git a/web/static/images/emoji/end.png b/web/static/images/emoji/end.png Binary files differindex 61a4399ad..03bfb2869 100755..100644 --- a/web/static/images/emoji/end.png +++ b/web/static/images/emoji/end.png diff --git a/web/static/images/emoji/envelope.png b/web/static/images/emoji/envelope.png Binary files differindex 3631861bb..c0bb4ebfd 100755..100644 --- a/web/static/images/emoji/envelope.png +++ b/web/static/images/emoji/envelope.png diff --git a/web/static/images/emoji/envelope_with_arrow.png b/web/static/images/emoji/envelope_with_arrow.png Binary files differnew file mode 100644 index 000000000..373cd8f0f --- /dev/null +++ b/web/static/images/emoji/envelope_with_arrow.png diff --git a/web/static/images/emoji/es.png b/web/static/images/emoji/es.png Binary files differindex 71b30bff3..16a772cd1 100755..100644 --- a/web/static/images/emoji/es.png +++ b/web/static/images/emoji/es.png diff --git a/web/static/images/emoji/euro.png b/web/static/images/emoji/euro.png Binary files differindex 1c5904b71..4efcecc3c 100755..100644 --- a/web/static/images/emoji/euro.png +++ b/web/static/images/emoji/euro.png diff --git a/web/static/images/emoji/european_castle.png b/web/static/images/emoji/european_castle.png Binary files differindex 8229b8a8a..35cdcf722 100755..100644 --- a/web/static/images/emoji/european_castle.png +++ b/web/static/images/emoji/european_castle.png diff --git a/web/static/images/emoji/european_post_office.png b/web/static/images/emoji/european_post_office.png Binary files differindex 0f65b1453..b1cc0ddb8 100755..100644 --- a/web/static/images/emoji/european_post_office.png +++ b/web/static/images/emoji/european_post_office.png diff --git a/web/static/images/emoji/evergreen_tree.png b/web/static/images/emoji/evergreen_tree.png Binary files differindex ae8ad1037..dd88a6934 100755..100644 --- a/web/static/images/emoji/evergreen_tree.png +++ b/web/static/images/emoji/evergreen_tree.png diff --git a/web/static/images/emoji/exclamation.png b/web/static/images/emoji/exclamation.png Binary files differindex 77bbdeabc..b8fca78bc 100755..100644 --- a/web/static/images/emoji/exclamation.png +++ b/web/static/images/emoji/exclamation.png diff --git a/web/static/images/emoji/expressionless.png b/web/static/images/emoji/expressionless.png Binary files differindex 913ff4e2f..404129c98 100755..100644 --- a/web/static/images/emoji/expressionless.png +++ b/web/static/images/emoji/expressionless.png diff --git a/web/static/images/emoji/eye.png b/web/static/images/emoji/eye.png Binary files differnew file mode 100644 index 000000000..66182c9f1 --- /dev/null +++ b/web/static/images/emoji/eye.png diff --git a/web/static/images/emoji/eyeglasses.png b/web/static/images/emoji/eyeglasses.png Binary files differindex a3cf75a27..f1f4612ba 100755..100644 --- a/web/static/images/emoji/eyeglasses.png +++ b/web/static/images/emoji/eyeglasses.png diff --git a/web/static/images/emoji/eyes.png b/web/static/images/emoji/eyes.png Binary files differindex 1ac24a615..d9a6163f4 100755..100644 --- a/web/static/images/emoji/eyes.png +++ b/web/static/images/emoji/eyes.png diff --git a/web/static/images/emoji/facepunch.png b/web/static/images/emoji/facepunch.png Binary files differindex 277047b7c..7d10b3eda 100755..100644 --- a/web/static/images/emoji/facepunch.png +++ b/web/static/images/emoji/facepunch.png diff --git a/web/static/images/emoji/factory.png b/web/static/images/emoji/factory.png Binary files differindex 640463479..e2d70133b 100755..100644 --- a/web/static/images/emoji/factory.png +++ b/web/static/images/emoji/factory.png diff --git a/web/static/images/emoji/fallen_leaf.png b/web/static/images/emoji/fallen_leaf.png Binary files differindex d49f9c175..430ac0297 100755..100644 --- a/web/static/images/emoji/fallen_leaf.png +++ b/web/static/images/emoji/fallen_leaf.png diff --git a/web/static/images/emoji/family.png b/web/static/images/emoji/family.png Binary files differindex b4b365f3a..e0d81ddb7 100755..100644 --- a/web/static/images/emoji/family.png +++ b/web/static/images/emoji/family.png diff --git a/web/static/images/emoji/fast_forward.png b/web/static/images/emoji/fast_forward.png Binary files differindex 8830e146e..dda9bec2a 100755..100644 --- a/web/static/images/emoji/fast_forward.png +++ b/web/static/images/emoji/fast_forward.png diff --git a/web/static/images/emoji/fax.png b/web/static/images/emoji/fax.png Binary files differindex 62be2c958..10f81dad1 100755..100644 --- a/web/static/images/emoji/fax.png +++ b/web/static/images/emoji/fax.png diff --git a/web/static/images/emoji/fearful.png b/web/static/images/emoji/fearful.png Binary files differindex 513fce47b..4ac78c208 100755..100644 --- a/web/static/images/emoji/fearful.png +++ b/web/static/images/emoji/fearful.png diff --git a/web/static/images/emoji/feelsgood.png b/web/static/images/emoji/feelsgood.png Binary files differindex 361f969bc..361f969bc 100755..100644 --- a/web/static/images/emoji/feelsgood.png +++ b/web/static/images/emoji/feelsgood.png diff --git a/web/static/images/emoji/feet.png b/web/static/images/emoji/feet.png Binary files differindex 1b0147b1d..b36eba864 100755..100644 --- a/web/static/images/emoji/feet.png +++ b/web/static/images/emoji/feet.png diff --git a/web/static/images/emoji/ferris_wheel.png b/web/static/images/emoji/ferris_wheel.png Binary files differindex 54a1dcfa1..56bfd87fb 100755..100644 --- a/web/static/images/emoji/ferris_wheel.png +++ b/web/static/images/emoji/ferris_wheel.png diff --git a/web/static/images/emoji/file_cabinet.png b/web/static/images/emoji/file_cabinet.png Binary files differnew file mode 100644 index 000000000..e45c65729 --- /dev/null +++ b/web/static/images/emoji/file_cabinet.png diff --git a/web/static/images/emoji/file_folder.png b/web/static/images/emoji/file_folder.png Binary files differindex 4d8bebf8a..17adcfd26 100755..100644 --- a/web/static/images/emoji/file_folder.png +++ b/web/static/images/emoji/file_folder.png diff --git a/web/static/images/emoji/film_frames.png b/web/static/images/emoji/film_frames.png Binary files differnew file mode 100644 index 000000000..d2b9082bc --- /dev/null +++ b/web/static/images/emoji/film_frames.png diff --git a/web/static/images/emoji/film_projector.png b/web/static/images/emoji/film_projector.png Binary files differnew file mode 100644 index 000000000..46800d29d --- /dev/null +++ b/web/static/images/emoji/film_projector.png diff --git a/web/static/images/emoji/finnadie.png b/web/static/images/emoji/finnadie.png Binary files differindex bfc5a0d93..bfc5a0d93 100755..100644 --- a/web/static/images/emoji/finnadie.png +++ b/web/static/images/emoji/finnadie.png diff --git a/web/static/images/emoji/fire.png b/web/static/images/emoji/fire.png Binary files differindex f2a3149bb..3149ed675 100755..100644 --- a/web/static/images/emoji/fire.png +++ b/web/static/images/emoji/fire.png diff --git a/web/static/images/emoji/fire_engine.png b/web/static/images/emoji/fire_engine.png Binary files differindex 9e6c59c99..0336bfdf5 100755..100644 --- a/web/static/images/emoji/fire_engine.png +++ b/web/static/images/emoji/fire_engine.png diff --git a/web/static/images/emoji/fireworks.png b/web/static/images/emoji/fireworks.png Binary files differindex b4eccd577..8e081a718 100755..100644 --- a/web/static/images/emoji/fireworks.png +++ b/web/static/images/emoji/fireworks.png diff --git a/web/static/images/emoji/first_quarter_moon.png b/web/static/images/emoji/first_quarter_moon.png Binary files differindex f38c23693..14734a42c 100755..100644 --- a/web/static/images/emoji/first_quarter_moon.png +++ b/web/static/images/emoji/first_quarter_moon.png diff --git a/web/static/images/emoji/first_quarter_moon_with_face.png b/web/static/images/emoji/first_quarter_moon_with_face.png Binary files differindex 85ae2ce72..8f10b3cfe 100755..100644 --- a/web/static/images/emoji/first_quarter_moon_with_face.png +++ b/web/static/images/emoji/first_quarter_moon_with_face.png diff --git a/web/static/images/emoji/fish.png b/web/static/images/emoji/fish.png Binary files differindex 90bdda2c9..cb7b896d6 100755..100644 --- a/web/static/images/emoji/fish.png +++ b/web/static/images/emoji/fish.png diff --git a/web/static/images/emoji/fish_cake.png b/web/static/images/emoji/fish_cake.png Binary files differindex a8f22614d..6ff94bc36 100755..100644 --- a/web/static/images/emoji/fish_cake.png +++ b/web/static/images/emoji/fish_cake.png diff --git a/web/static/images/emoji/fishing_pole_and_fish.png b/web/static/images/emoji/fishing_pole_and_fish.png Binary files differindex d84609c3b..270a011dd 100755..100644 --- a/web/static/images/emoji/fishing_pole_and_fish.png +++ b/web/static/images/emoji/fishing_pole_and_fish.png diff --git a/web/static/images/emoji/fist.png b/web/static/images/emoji/fist.png Binary files differindex ecc8874c2..97e5b0639 100755..100644 --- a/web/static/images/emoji/fist.png +++ b/web/static/images/emoji/fist.png diff --git a/web/static/images/emoji/five.png b/web/static/images/emoji/five.png Binary files differindex 794321aa2..9b527aeb7 100755..100644 --- a/web/static/images/emoji/five.png +++ b/web/static/images/emoji/five.png diff --git a/web/static/images/emoji/flag-ac.png b/web/static/images/emoji/flag-ac.png Binary files differnew file mode 100644 index 000000000..56115ba78 --- /dev/null +++ b/web/static/images/emoji/flag-ac.png diff --git a/web/static/images/emoji/flag-ad.png b/web/static/images/emoji/flag-ad.png Binary files differnew file mode 100644 index 000000000..d3fabc4b0 --- /dev/null +++ b/web/static/images/emoji/flag-ad.png diff --git a/web/static/images/emoji/flag-ae.png b/web/static/images/emoji/flag-ae.png Binary files differnew file mode 100644 index 000000000..57cade93b --- /dev/null +++ b/web/static/images/emoji/flag-ae.png diff --git a/web/static/images/emoji/flag-af.png b/web/static/images/emoji/flag-af.png Binary files differnew file mode 100644 index 000000000..af7e886df --- /dev/null +++ b/web/static/images/emoji/flag-af.png diff --git a/web/static/images/emoji/flag-ag.png b/web/static/images/emoji/flag-ag.png Binary files differnew file mode 100644 index 000000000..9e2dc805e --- /dev/null +++ b/web/static/images/emoji/flag-ag.png diff --git a/web/static/images/emoji/flag-ai.png b/web/static/images/emoji/flag-ai.png Binary files differnew file mode 100644 index 000000000..2046a5a83 --- /dev/null +++ b/web/static/images/emoji/flag-ai.png diff --git a/web/static/images/emoji/flag-al.png b/web/static/images/emoji/flag-al.png Binary files differnew file mode 100644 index 000000000..0c76f4af4 --- /dev/null +++ b/web/static/images/emoji/flag-al.png diff --git a/web/static/images/emoji/flag-am.png b/web/static/images/emoji/flag-am.png Binary files differnew file mode 100644 index 000000000..1e39fe1fe --- /dev/null +++ b/web/static/images/emoji/flag-am.png diff --git a/web/static/images/emoji/flag-ao.png b/web/static/images/emoji/flag-ao.png Binary files differnew file mode 100644 index 000000000..01a469e9e --- /dev/null +++ b/web/static/images/emoji/flag-ao.png diff --git a/web/static/images/emoji/flag-ar.png b/web/static/images/emoji/flag-ar.png Binary files differnew file mode 100644 index 000000000..603697bad --- /dev/null +++ b/web/static/images/emoji/flag-ar.png diff --git a/web/static/images/emoji/flag-at.png b/web/static/images/emoji/flag-at.png Binary files differnew file mode 100644 index 000000000..38988f737 --- /dev/null +++ b/web/static/images/emoji/flag-at.png diff --git a/web/static/images/emoji/flag-au.png b/web/static/images/emoji/flag-au.png Binary files differnew file mode 100644 index 000000000..fdc448c91 --- /dev/null +++ b/web/static/images/emoji/flag-au.png diff --git a/web/static/images/emoji/flag-aw.png b/web/static/images/emoji/flag-aw.png Binary files differnew file mode 100644 index 000000000..fda4d0b19 --- /dev/null +++ b/web/static/images/emoji/flag-aw.png diff --git a/web/static/images/emoji/flag-az.png b/web/static/images/emoji/flag-az.png Binary files differnew file mode 100644 index 000000000..3efb55bfc --- /dev/null +++ b/web/static/images/emoji/flag-az.png diff --git a/web/static/images/emoji/flag-ba.png b/web/static/images/emoji/flag-ba.png Binary files differnew file mode 100644 index 000000000..47028b1f2 --- /dev/null +++ b/web/static/images/emoji/flag-ba.png diff --git a/web/static/images/emoji/flag-bb.png b/web/static/images/emoji/flag-bb.png Binary files differnew file mode 100644 index 000000000..8bfb6fcb0 --- /dev/null +++ b/web/static/images/emoji/flag-bb.png diff --git a/web/static/images/emoji/flag-bd.png b/web/static/images/emoji/flag-bd.png Binary files differnew file mode 100644 index 000000000..a4b7928c8 --- /dev/null +++ b/web/static/images/emoji/flag-bd.png diff --git a/web/static/images/emoji/flag-be.png b/web/static/images/emoji/flag-be.png Binary files differnew file mode 100644 index 000000000..f996f6fc0 --- /dev/null +++ b/web/static/images/emoji/flag-be.png diff --git a/web/static/images/emoji/flag-bf.png b/web/static/images/emoji/flag-bf.png Binary files differnew file mode 100644 index 000000000..185eb5a92 --- /dev/null +++ b/web/static/images/emoji/flag-bf.png diff --git a/web/static/images/emoji/flag-bg.png b/web/static/images/emoji/flag-bg.png Binary files differnew file mode 100644 index 000000000..849c68a22 --- /dev/null +++ b/web/static/images/emoji/flag-bg.png diff --git a/web/static/images/emoji/flag-bh.png b/web/static/images/emoji/flag-bh.png Binary files differnew file mode 100644 index 000000000..b0cabb344 --- /dev/null +++ b/web/static/images/emoji/flag-bh.png diff --git a/web/static/images/emoji/flag-bi.png b/web/static/images/emoji/flag-bi.png Binary files differnew file mode 100644 index 000000000..b2de6ba9d --- /dev/null +++ b/web/static/images/emoji/flag-bi.png diff --git a/web/static/images/emoji/flag-bj.png b/web/static/images/emoji/flag-bj.png Binary files differnew file mode 100644 index 000000000..6023c7286 --- /dev/null +++ b/web/static/images/emoji/flag-bj.png diff --git a/web/static/images/emoji/flag-bm.png b/web/static/images/emoji/flag-bm.png Binary files differnew file mode 100644 index 000000000..cce7665e5 --- /dev/null +++ b/web/static/images/emoji/flag-bm.png diff --git a/web/static/images/emoji/flag-bn.png b/web/static/images/emoji/flag-bn.png Binary files differnew file mode 100644 index 000000000..37ffaaf4a --- /dev/null +++ b/web/static/images/emoji/flag-bn.png diff --git a/web/static/images/emoji/flag-bo.png b/web/static/images/emoji/flag-bo.png Binary files differnew file mode 100644 index 000000000..9e7b9bd6d --- /dev/null +++ b/web/static/images/emoji/flag-bo.png diff --git a/web/static/images/emoji/flag-br.png b/web/static/images/emoji/flag-br.png Binary files differnew file mode 100644 index 000000000..1218801ec --- /dev/null +++ b/web/static/images/emoji/flag-br.png diff --git a/web/static/images/emoji/flag-bs.png b/web/static/images/emoji/flag-bs.png Binary files differnew file mode 100644 index 000000000..56304afc5 --- /dev/null +++ b/web/static/images/emoji/flag-bs.png diff --git a/web/static/images/emoji/flag-bt.png b/web/static/images/emoji/flag-bt.png Binary files differnew file mode 100644 index 000000000..5419aeeb3 --- /dev/null +++ b/web/static/images/emoji/flag-bt.png diff --git a/web/static/images/emoji/flag-bw.png b/web/static/images/emoji/flag-bw.png Binary files differnew file mode 100644 index 000000000..b82b4e244 --- /dev/null +++ b/web/static/images/emoji/flag-bw.png diff --git a/web/static/images/emoji/flag-by.png b/web/static/images/emoji/flag-by.png Binary files differnew file mode 100644 index 000000000..fbf36a528 --- /dev/null +++ b/web/static/images/emoji/flag-by.png diff --git a/web/static/images/emoji/flag-bz.png b/web/static/images/emoji/flag-bz.png Binary files differnew file mode 100644 index 000000000..4e300a7a9 --- /dev/null +++ b/web/static/images/emoji/flag-bz.png diff --git a/web/static/images/emoji/flag-ca.png b/web/static/images/emoji/flag-ca.png Binary files differnew file mode 100644 index 000000000..2838b5e82 --- /dev/null +++ b/web/static/images/emoji/flag-ca.png diff --git a/web/static/images/emoji/flag-cd.png b/web/static/images/emoji/flag-cd.png Binary files differnew file mode 100644 index 000000000..b7620b487 --- /dev/null +++ b/web/static/images/emoji/flag-cd.png diff --git a/web/static/images/emoji/flag-cf.png b/web/static/images/emoji/flag-cf.png Binary files differnew file mode 100644 index 000000000..32accc631 --- /dev/null +++ b/web/static/images/emoji/flag-cf.png diff --git a/web/static/images/emoji/flag-cg.png b/web/static/images/emoji/flag-cg.png Binary files differnew file mode 100644 index 000000000..51d0cb55b --- /dev/null +++ b/web/static/images/emoji/flag-cg.png diff --git a/web/static/images/emoji/flag-ch.png b/web/static/images/emoji/flag-ch.png Binary files differnew file mode 100644 index 000000000..53f7c0496 --- /dev/null +++ b/web/static/images/emoji/flag-ch.png diff --git a/web/static/images/emoji/flag-ci.png b/web/static/images/emoji/flag-ci.png Binary files differnew file mode 100644 index 000000000..3a1fb1946 --- /dev/null +++ b/web/static/images/emoji/flag-ci.png diff --git a/web/static/images/emoji/flag-cl.png b/web/static/images/emoji/flag-cl.png Binary files differnew file mode 100644 index 000000000..ebbf710d2 --- /dev/null +++ b/web/static/images/emoji/flag-cl.png diff --git a/web/static/images/emoji/flag-cm.png b/web/static/images/emoji/flag-cm.png Binary files differnew file mode 100644 index 000000000..71024ac1c --- /dev/null +++ b/web/static/images/emoji/flag-cm.png diff --git a/web/static/images/emoji/flag-cn.png b/web/static/images/emoji/flag-cn.png Binary files differnew file mode 100644 index 000000000..0151923f3 --- /dev/null +++ b/web/static/images/emoji/flag-cn.png diff --git a/web/static/images/emoji/flag-co.png b/web/static/images/emoji/flag-co.png Binary files differnew file mode 100644 index 000000000..b64536ac3 --- /dev/null +++ b/web/static/images/emoji/flag-co.png diff --git a/web/static/images/emoji/flag-cr.png b/web/static/images/emoji/flag-cr.png Binary files differnew file mode 100644 index 000000000..74612a90e --- /dev/null +++ b/web/static/images/emoji/flag-cr.png diff --git a/web/static/images/emoji/flag-cu.png b/web/static/images/emoji/flag-cu.png Binary files differnew file mode 100644 index 000000000..37a9cc10b --- /dev/null +++ b/web/static/images/emoji/flag-cu.png diff --git a/web/static/images/emoji/flag-cv.png b/web/static/images/emoji/flag-cv.png Binary files differnew file mode 100644 index 000000000..7a6a41e90 --- /dev/null +++ b/web/static/images/emoji/flag-cv.png diff --git a/web/static/images/emoji/flag-cy.png b/web/static/images/emoji/flag-cy.png Binary files differnew file mode 100644 index 000000000..4f593449a --- /dev/null +++ b/web/static/images/emoji/flag-cy.png diff --git a/web/static/images/emoji/flag-cz.png b/web/static/images/emoji/flag-cz.png Binary files differnew file mode 100644 index 000000000..aa9a40c74 --- /dev/null +++ b/web/static/images/emoji/flag-cz.png diff --git a/web/static/images/emoji/flag-de.png b/web/static/images/emoji/flag-de.png Binary files differnew file mode 100644 index 000000000..168ab43c3 --- /dev/null +++ b/web/static/images/emoji/flag-de.png diff --git a/web/static/images/emoji/flag-dj.png b/web/static/images/emoji/flag-dj.png Binary files differnew file mode 100644 index 000000000..ba0833714 --- /dev/null +++ b/web/static/images/emoji/flag-dj.png diff --git a/web/static/images/emoji/flag-dk.png b/web/static/images/emoji/flag-dk.png Binary files differnew file mode 100644 index 000000000..2e6b7a624 --- /dev/null +++ b/web/static/images/emoji/flag-dk.png diff --git a/web/static/images/emoji/flag-dm.png b/web/static/images/emoji/flag-dm.png Binary files differnew file mode 100644 index 000000000..1b90463e5 --- /dev/null +++ b/web/static/images/emoji/flag-dm.png diff --git a/web/static/images/emoji/flag-do.png b/web/static/images/emoji/flag-do.png Binary files differnew file mode 100644 index 000000000..d5c1ac5ba --- /dev/null +++ b/web/static/images/emoji/flag-do.png diff --git a/web/static/images/emoji/flag-dz.png b/web/static/images/emoji/flag-dz.png Binary files differnew file mode 100644 index 000000000..a778a7995 --- /dev/null +++ b/web/static/images/emoji/flag-dz.png diff --git a/web/static/images/emoji/flag-ec.png b/web/static/images/emoji/flag-ec.png Binary files differnew file mode 100644 index 000000000..7f40f138d --- /dev/null +++ b/web/static/images/emoji/flag-ec.png diff --git a/web/static/images/emoji/flag-ee.png b/web/static/images/emoji/flag-ee.png Binary files differnew file mode 100644 index 000000000..1aa45dc2a --- /dev/null +++ b/web/static/images/emoji/flag-ee.png diff --git a/web/static/images/emoji/flag-eg.png b/web/static/images/emoji/flag-eg.png Binary files differnew file mode 100644 index 000000000..5904bfac9 --- /dev/null +++ b/web/static/images/emoji/flag-eg.png diff --git a/web/static/images/emoji/flag-eh.png b/web/static/images/emoji/flag-eh.png Binary files differnew file mode 100644 index 000000000..5c1bf6134 --- /dev/null +++ b/web/static/images/emoji/flag-eh.png diff --git a/web/static/images/emoji/flag-er.png b/web/static/images/emoji/flag-er.png Binary files differnew file mode 100644 index 000000000..fa4f25eed --- /dev/null +++ b/web/static/images/emoji/flag-er.png diff --git a/web/static/images/emoji/flag-es.png b/web/static/images/emoji/flag-es.png Binary files differnew file mode 100644 index 000000000..16a772cd1 --- /dev/null +++ b/web/static/images/emoji/flag-es.png diff --git a/web/static/images/emoji/flag-et.png b/web/static/images/emoji/flag-et.png Binary files differnew file mode 100644 index 000000000..4833e8431 --- /dev/null +++ b/web/static/images/emoji/flag-et.png diff --git a/web/static/images/emoji/flag-fi.png b/web/static/images/emoji/flag-fi.png Binary files differnew file mode 100644 index 000000000..b2a5c3d24 --- /dev/null +++ b/web/static/images/emoji/flag-fi.png diff --git a/web/static/images/emoji/flag-fj.png b/web/static/images/emoji/flag-fj.png Binary files differnew file mode 100644 index 000000000..a7a731e6f --- /dev/null +++ b/web/static/images/emoji/flag-fj.png diff --git a/web/static/images/emoji/flag-fk.png b/web/static/images/emoji/flag-fk.png Binary files differnew file mode 100644 index 000000000..c4562eaa6 --- /dev/null +++ b/web/static/images/emoji/flag-fk.png diff --git a/web/static/images/emoji/flag-fm.png b/web/static/images/emoji/flag-fm.png Binary files differnew file mode 100644 index 000000000..42fe76312 --- /dev/null +++ b/web/static/images/emoji/flag-fm.png diff --git a/web/static/images/emoji/flag-fo.png b/web/static/images/emoji/flag-fo.png Binary files differnew file mode 100644 index 000000000..e9d8e4cf4 --- /dev/null +++ b/web/static/images/emoji/flag-fo.png diff --git a/web/static/images/emoji/flag-fr.png b/web/static/images/emoji/flag-fr.png Binary files differnew file mode 100644 index 000000000..14271f059 --- /dev/null +++ b/web/static/images/emoji/flag-fr.png diff --git a/web/static/images/emoji/flag-ga.png b/web/static/images/emoji/flag-ga.png Binary files differnew file mode 100644 index 000000000..4a3b5ccf9 --- /dev/null +++ b/web/static/images/emoji/flag-ga.png diff --git a/web/static/images/emoji/flag-gb.png b/web/static/images/emoji/flag-gb.png Binary files differnew file mode 100644 index 000000000..61c03f759 --- /dev/null +++ b/web/static/images/emoji/flag-gb.png diff --git a/web/static/images/emoji/flag-gd.png b/web/static/images/emoji/flag-gd.png Binary files differnew file mode 100644 index 000000000..4f9dc82d7 --- /dev/null +++ b/web/static/images/emoji/flag-gd.png diff --git a/web/static/images/emoji/flag-ge.png b/web/static/images/emoji/flag-ge.png Binary files differnew file mode 100644 index 000000000..1fe16f968 --- /dev/null +++ b/web/static/images/emoji/flag-ge.png diff --git a/web/static/images/emoji/flag-gh.png b/web/static/images/emoji/flag-gh.png Binary files differnew file mode 100644 index 000000000..0aadf4db2 --- /dev/null +++ b/web/static/images/emoji/flag-gh.png diff --git a/web/static/images/emoji/flag-gi.png b/web/static/images/emoji/flag-gi.png Binary files differnew file mode 100644 index 000000000..e95abe51f --- /dev/null +++ b/web/static/images/emoji/flag-gi.png diff --git a/web/static/images/emoji/flag-gl.png b/web/static/images/emoji/flag-gl.png Binary files differnew file mode 100644 index 000000000..76708a55f --- /dev/null +++ b/web/static/images/emoji/flag-gl.png diff --git a/web/static/images/emoji/flag-gm.png b/web/static/images/emoji/flag-gm.png Binary files differnew file mode 100644 index 000000000..c5a72895f --- /dev/null +++ b/web/static/images/emoji/flag-gm.png diff --git a/web/static/images/emoji/flag-gn.png b/web/static/images/emoji/flag-gn.png Binary files differnew file mode 100644 index 000000000..fdd5c2d14 --- /dev/null +++ b/web/static/images/emoji/flag-gn.png diff --git a/web/static/images/emoji/flag-gq.png b/web/static/images/emoji/flag-gq.png Binary files differnew file mode 100644 index 000000000..7fc7c86c8 --- /dev/null +++ b/web/static/images/emoji/flag-gq.png diff --git a/web/static/images/emoji/flag-gr.png b/web/static/images/emoji/flag-gr.png Binary files differnew file mode 100644 index 000000000..091f1ab07 --- /dev/null +++ b/web/static/images/emoji/flag-gr.png diff --git a/web/static/images/emoji/flag-gt.png b/web/static/images/emoji/flag-gt.png Binary files differnew file mode 100644 index 000000000..66437d0de --- /dev/null +++ b/web/static/images/emoji/flag-gt.png diff --git a/web/static/images/emoji/flag-gu.png b/web/static/images/emoji/flag-gu.png Binary files differnew file mode 100644 index 000000000..a4d2024b1 --- /dev/null +++ b/web/static/images/emoji/flag-gu.png diff --git a/web/static/images/emoji/flag-gw.png b/web/static/images/emoji/flag-gw.png Binary files differnew file mode 100644 index 000000000..a70abe908 --- /dev/null +++ b/web/static/images/emoji/flag-gw.png diff --git a/web/static/images/emoji/flag-gy.png b/web/static/images/emoji/flag-gy.png Binary files differnew file mode 100644 index 000000000..2cc8ecaab --- /dev/null +++ b/web/static/images/emoji/flag-gy.png diff --git a/web/static/images/emoji/flag-hk.png b/web/static/images/emoji/flag-hk.png Binary files differnew file mode 100644 index 000000000..cff8e25fd --- /dev/null +++ b/web/static/images/emoji/flag-hk.png diff --git a/web/static/images/emoji/flag-hn.png b/web/static/images/emoji/flag-hn.png Binary files differnew file mode 100644 index 000000000..e4eeee2d8 --- /dev/null +++ b/web/static/images/emoji/flag-hn.png diff --git a/web/static/images/emoji/flag-hr.png b/web/static/images/emoji/flag-hr.png Binary files differnew file mode 100644 index 000000000..be0823c21 --- /dev/null +++ b/web/static/images/emoji/flag-hr.png diff --git a/web/static/images/emoji/flag-ht.png b/web/static/images/emoji/flag-ht.png Binary files differnew file mode 100644 index 000000000..76d3d94ad --- /dev/null +++ b/web/static/images/emoji/flag-ht.png diff --git a/web/static/images/emoji/flag-hu.png b/web/static/images/emoji/flag-hu.png Binary files differnew file mode 100644 index 000000000..028f853dd --- /dev/null +++ b/web/static/images/emoji/flag-hu.png diff --git a/web/static/images/emoji/flag-id.png b/web/static/images/emoji/flag-id.png Binary files differnew file mode 100644 index 000000000..90042acf5 --- /dev/null +++ b/web/static/images/emoji/flag-id.png diff --git a/web/static/images/emoji/flag-ie.png b/web/static/images/emoji/flag-ie.png Binary files differnew file mode 100644 index 000000000..63ae4af61 --- /dev/null +++ b/web/static/images/emoji/flag-ie.png diff --git a/web/static/images/emoji/flag-il.png b/web/static/images/emoji/flag-il.png Binary files differnew file mode 100644 index 000000000..8361d8ee3 --- /dev/null +++ b/web/static/images/emoji/flag-il.png diff --git a/web/static/images/emoji/flag-in.png b/web/static/images/emoji/flag-in.png Binary files differnew file mode 100644 index 000000000..6d6f944c4 --- /dev/null +++ b/web/static/images/emoji/flag-in.png diff --git a/web/static/images/emoji/flag-iq.png b/web/static/images/emoji/flag-iq.png Binary files differnew file mode 100644 index 000000000..5fb5d4e3b --- /dev/null +++ b/web/static/images/emoji/flag-iq.png diff --git a/web/static/images/emoji/flag-ir.png b/web/static/images/emoji/flag-ir.png Binary files differnew file mode 100644 index 000000000..23f916063 --- /dev/null +++ b/web/static/images/emoji/flag-ir.png diff --git a/web/static/images/emoji/flag-is.png b/web/static/images/emoji/flag-is.png Binary files differnew file mode 100644 index 000000000..7f2b34832 --- /dev/null +++ b/web/static/images/emoji/flag-is.png diff --git a/web/static/images/emoji/flag-it.png b/web/static/images/emoji/flag-it.png Binary files differnew file mode 100644 index 000000000..bce062350 --- /dev/null +++ b/web/static/images/emoji/flag-it.png diff --git a/web/static/images/emoji/flag-je.png b/web/static/images/emoji/flag-je.png Binary files differnew file mode 100644 index 000000000..822b4340d --- /dev/null +++ b/web/static/images/emoji/flag-je.png diff --git a/web/static/images/emoji/flag-jm.png b/web/static/images/emoji/flag-jm.png Binary files differnew file mode 100644 index 000000000..f179b1404 --- /dev/null +++ b/web/static/images/emoji/flag-jm.png diff --git a/web/static/images/emoji/flag-jo.png b/web/static/images/emoji/flag-jo.png Binary files differnew file mode 100644 index 000000000..15be546e8 --- /dev/null +++ b/web/static/images/emoji/flag-jo.png diff --git a/web/static/images/emoji/flag-jp.png b/web/static/images/emoji/flag-jp.png Binary files differnew file mode 100644 index 000000000..56390ce22 --- /dev/null +++ b/web/static/images/emoji/flag-jp.png diff --git a/web/static/images/emoji/flag-ke.png b/web/static/images/emoji/flag-ke.png Binary files differnew file mode 100644 index 000000000..301bf6eec --- /dev/null +++ b/web/static/images/emoji/flag-ke.png diff --git a/web/static/images/emoji/flag-kg.png b/web/static/images/emoji/flag-kg.png Binary files differnew file mode 100644 index 000000000..6845412e8 --- /dev/null +++ b/web/static/images/emoji/flag-kg.png diff --git a/web/static/images/emoji/flag-kh.png b/web/static/images/emoji/flag-kh.png Binary files differnew file mode 100644 index 000000000..15ccea7a4 --- /dev/null +++ b/web/static/images/emoji/flag-kh.png diff --git a/web/static/images/emoji/flag-ki.png b/web/static/images/emoji/flag-ki.png Binary files differnew file mode 100644 index 000000000..79331c5de --- /dev/null +++ b/web/static/images/emoji/flag-ki.png diff --git a/web/static/images/emoji/flag-km.png b/web/static/images/emoji/flag-km.png Binary files differnew file mode 100644 index 000000000..9a16139aa --- /dev/null +++ b/web/static/images/emoji/flag-km.png diff --git a/web/static/images/emoji/flag-kn.png b/web/static/images/emoji/flag-kn.png Binary files differnew file mode 100644 index 000000000..913f6dfb7 --- /dev/null +++ b/web/static/images/emoji/flag-kn.png diff --git a/web/static/images/emoji/flag-kp.png b/web/static/images/emoji/flag-kp.png Binary files differnew file mode 100644 index 000000000..cb50e9380 --- /dev/null +++ b/web/static/images/emoji/flag-kp.png diff --git a/web/static/images/emoji/flag-kr.png b/web/static/images/emoji/flag-kr.png Binary files differnew file mode 100644 index 000000000..6687991f3 --- /dev/null +++ b/web/static/images/emoji/flag-kr.png diff --git a/web/static/images/emoji/flag-kw.png b/web/static/images/emoji/flag-kw.png Binary files differnew file mode 100644 index 000000000..72ef3415f --- /dev/null +++ b/web/static/images/emoji/flag-kw.png diff --git a/web/static/images/emoji/flag-ky.png b/web/static/images/emoji/flag-ky.png Binary files differnew file mode 100644 index 000000000..d716ddcd5 --- /dev/null +++ b/web/static/images/emoji/flag-ky.png diff --git a/web/static/images/emoji/flag-kz.png b/web/static/images/emoji/flag-kz.png Binary files differnew file mode 100644 index 000000000..49813e5d5 --- /dev/null +++ b/web/static/images/emoji/flag-kz.png diff --git a/web/static/images/emoji/flag-la.png b/web/static/images/emoji/flag-la.png Binary files differnew file mode 100644 index 000000000..6f0dd90f3 --- /dev/null +++ b/web/static/images/emoji/flag-la.png diff --git a/web/static/images/emoji/flag-lb.png b/web/static/images/emoji/flag-lb.png Binary files differnew file mode 100644 index 000000000..8fe041f46 --- /dev/null +++ b/web/static/images/emoji/flag-lb.png diff --git a/web/static/images/emoji/flag-lc.png b/web/static/images/emoji/flag-lc.png Binary files differnew file mode 100644 index 000000000..70a34cb11 --- /dev/null +++ b/web/static/images/emoji/flag-lc.png diff --git a/web/static/images/emoji/flag-li.png b/web/static/images/emoji/flag-li.png Binary files differnew file mode 100644 index 000000000..ad667c3c4 --- /dev/null +++ b/web/static/images/emoji/flag-li.png diff --git a/web/static/images/emoji/flag-lk.png b/web/static/images/emoji/flag-lk.png Binary files differnew file mode 100644 index 000000000..9a205d9cf --- /dev/null +++ b/web/static/images/emoji/flag-lk.png diff --git a/web/static/images/emoji/flag-lr.png b/web/static/images/emoji/flag-lr.png Binary files differnew file mode 100644 index 000000000..2916a1ff4 --- /dev/null +++ b/web/static/images/emoji/flag-lr.png diff --git a/web/static/images/emoji/flag-ls.png b/web/static/images/emoji/flag-ls.png Binary files differnew file mode 100644 index 000000000..a47e7e067 --- /dev/null +++ b/web/static/images/emoji/flag-ls.png diff --git a/web/static/images/emoji/flag-lt.png b/web/static/images/emoji/flag-lt.png Binary files differnew file mode 100644 index 000000000..ea08d9b23 --- /dev/null +++ b/web/static/images/emoji/flag-lt.png diff --git a/web/static/images/emoji/flag-lu.png b/web/static/images/emoji/flag-lu.png Binary files differnew file mode 100644 index 000000000..dbd428878 --- /dev/null +++ b/web/static/images/emoji/flag-lu.png diff --git a/web/static/images/emoji/flag-lv.png b/web/static/images/emoji/flag-lv.png Binary files differnew file mode 100644 index 000000000..a8eef9ff6 --- /dev/null +++ b/web/static/images/emoji/flag-lv.png diff --git a/web/static/images/emoji/flag-ly.png b/web/static/images/emoji/flag-ly.png Binary files differnew file mode 100644 index 000000000..04632748f --- /dev/null +++ b/web/static/images/emoji/flag-ly.png diff --git a/web/static/images/emoji/flag-ma.png b/web/static/images/emoji/flag-ma.png Binary files differnew file mode 100644 index 000000000..1bf4401f6 --- /dev/null +++ b/web/static/images/emoji/flag-ma.png diff --git a/web/static/images/emoji/flag-mc.png b/web/static/images/emoji/flag-mc.png Binary files differnew file mode 100644 index 000000000..039174d3a --- /dev/null +++ b/web/static/images/emoji/flag-mc.png diff --git a/web/static/images/emoji/flag-md.png b/web/static/images/emoji/flag-md.png Binary files differnew file mode 100644 index 000000000..78b5ba7e2 --- /dev/null +++ b/web/static/images/emoji/flag-md.png diff --git a/web/static/images/emoji/flag-me.png b/web/static/images/emoji/flag-me.png Binary files differnew file mode 100644 index 000000000..01245d958 --- /dev/null +++ b/web/static/images/emoji/flag-me.png diff --git a/web/static/images/emoji/flag-mg.png b/web/static/images/emoji/flag-mg.png Binary files differnew file mode 100644 index 000000000..cb55e9fc3 --- /dev/null +++ b/web/static/images/emoji/flag-mg.png diff --git a/web/static/images/emoji/flag-mh.png b/web/static/images/emoji/flag-mh.png Binary files differnew file mode 100644 index 000000000..ff5038b6d --- /dev/null +++ b/web/static/images/emoji/flag-mh.png diff --git a/web/static/images/emoji/flag-mk.png b/web/static/images/emoji/flag-mk.png Binary files differnew file mode 100644 index 000000000..8dadf0110 --- /dev/null +++ b/web/static/images/emoji/flag-mk.png diff --git a/web/static/images/emoji/flag-ml.png b/web/static/images/emoji/flag-ml.png Binary files differnew file mode 100644 index 000000000..53be7c81e --- /dev/null +++ b/web/static/images/emoji/flag-ml.png diff --git a/web/static/images/emoji/flag-mm.png b/web/static/images/emoji/flag-mm.png Binary files differnew file mode 100644 index 000000000..c1cfee7a5 --- /dev/null +++ b/web/static/images/emoji/flag-mm.png diff --git a/web/static/images/emoji/flag-mn.png b/web/static/images/emoji/flag-mn.png Binary files differnew file mode 100644 index 000000000..1beac5568 --- /dev/null +++ b/web/static/images/emoji/flag-mn.png diff --git a/web/static/images/emoji/flag-mo.png b/web/static/images/emoji/flag-mo.png Binary files differnew file mode 100644 index 000000000..6a8fcb9a0 --- /dev/null +++ b/web/static/images/emoji/flag-mo.png diff --git a/web/static/images/emoji/flag-mr.png b/web/static/images/emoji/flag-mr.png Binary files differnew file mode 100644 index 000000000..854690cfb --- /dev/null +++ b/web/static/images/emoji/flag-mr.png diff --git a/web/static/images/emoji/flag-ms.png b/web/static/images/emoji/flag-ms.png Binary files differnew file mode 100644 index 000000000..61b2de721 --- /dev/null +++ b/web/static/images/emoji/flag-ms.png diff --git a/web/static/images/emoji/flag-mt.png b/web/static/images/emoji/flag-mt.png Binary files differnew file mode 100644 index 000000000..2f07f4709 --- /dev/null +++ b/web/static/images/emoji/flag-mt.png diff --git a/web/static/images/emoji/flag-mu.png b/web/static/images/emoji/flag-mu.png Binary files differnew file mode 100644 index 000000000..9d28c0812 --- /dev/null +++ b/web/static/images/emoji/flag-mu.png diff --git a/web/static/images/emoji/flag-mv.png b/web/static/images/emoji/flag-mv.png Binary files differnew file mode 100644 index 000000000..4ea56e841 --- /dev/null +++ b/web/static/images/emoji/flag-mv.png diff --git a/web/static/images/emoji/flag-mw.png b/web/static/images/emoji/flag-mw.png Binary files differnew file mode 100644 index 000000000..361aa65ec --- /dev/null +++ b/web/static/images/emoji/flag-mw.png diff --git a/web/static/images/emoji/flag-mx.png b/web/static/images/emoji/flag-mx.png Binary files differnew file mode 100644 index 000000000..c44c24df1 --- /dev/null +++ b/web/static/images/emoji/flag-mx.png diff --git a/web/static/images/emoji/flag-my.png b/web/static/images/emoji/flag-my.png Binary files differnew file mode 100644 index 000000000..166fd5ba7 --- /dev/null +++ b/web/static/images/emoji/flag-my.png diff --git a/web/static/images/emoji/flag-mz.png b/web/static/images/emoji/flag-mz.png Binary files differnew file mode 100644 index 000000000..209db39ee --- /dev/null +++ b/web/static/images/emoji/flag-mz.png diff --git a/web/static/images/emoji/flag-na.png b/web/static/images/emoji/flag-na.png Binary files differnew file mode 100644 index 000000000..84fab946d --- /dev/null +++ b/web/static/images/emoji/flag-na.png diff --git a/web/static/images/emoji/flag-nc.png b/web/static/images/emoji/flag-nc.png Binary files differnew file mode 100644 index 000000000..6372d93c7 --- /dev/null +++ b/web/static/images/emoji/flag-nc.png diff --git a/web/static/images/emoji/flag-ne.png b/web/static/images/emoji/flag-ne.png Binary files differnew file mode 100644 index 000000000..3fd0d99ab --- /dev/null +++ b/web/static/images/emoji/flag-ne.png diff --git a/web/static/images/emoji/flag-ng.png b/web/static/images/emoji/flag-ng.png Binary files differnew file mode 100644 index 000000000..2c98fcdff --- /dev/null +++ b/web/static/images/emoji/flag-ng.png diff --git a/web/static/images/emoji/flag-ni.png b/web/static/images/emoji/flag-ni.png Binary files differnew file mode 100644 index 000000000..88055d5a0 --- /dev/null +++ b/web/static/images/emoji/flag-ni.png diff --git a/web/static/images/emoji/flag-nl.png b/web/static/images/emoji/flag-nl.png Binary files differnew file mode 100644 index 000000000..d5de058a4 --- /dev/null +++ b/web/static/images/emoji/flag-nl.png diff --git a/web/static/images/emoji/flag-no.png b/web/static/images/emoji/flag-no.png Binary files differnew file mode 100644 index 000000000..1199fae93 --- /dev/null +++ b/web/static/images/emoji/flag-no.png diff --git a/web/static/images/emoji/flag-np.png b/web/static/images/emoji/flag-np.png Binary files differnew file mode 100644 index 000000000..3e17c5204 --- /dev/null +++ b/web/static/images/emoji/flag-np.png diff --git a/web/static/images/emoji/flag-nr.png b/web/static/images/emoji/flag-nr.png Binary files differnew file mode 100644 index 000000000..80c3d8357 --- /dev/null +++ b/web/static/images/emoji/flag-nr.png diff --git a/web/static/images/emoji/flag-nu.png b/web/static/images/emoji/flag-nu.png Binary files differnew file mode 100644 index 000000000..628aee1e3 --- /dev/null +++ b/web/static/images/emoji/flag-nu.png diff --git a/web/static/images/emoji/flag-nz.png b/web/static/images/emoji/flag-nz.png Binary files differnew file mode 100644 index 000000000..d64f6ec22 --- /dev/null +++ b/web/static/images/emoji/flag-nz.png diff --git a/web/static/images/emoji/flag-om.png b/web/static/images/emoji/flag-om.png Binary files differnew file mode 100644 index 000000000..68dd406fb --- /dev/null +++ b/web/static/images/emoji/flag-om.png diff --git a/web/static/images/emoji/flag-pa.png b/web/static/images/emoji/flag-pa.png Binary files differnew file mode 100644 index 000000000..0fa73faf3 --- /dev/null +++ b/web/static/images/emoji/flag-pa.png diff --git a/web/static/images/emoji/flag-pe.png b/web/static/images/emoji/flag-pe.png Binary files differnew file mode 100644 index 000000000..cf7098d8d --- /dev/null +++ b/web/static/images/emoji/flag-pe.png diff --git a/web/static/images/emoji/flag-pf.png b/web/static/images/emoji/flag-pf.png Binary files differnew file mode 100644 index 000000000..5780519fd --- /dev/null +++ b/web/static/images/emoji/flag-pf.png diff --git a/web/static/images/emoji/flag-pg.png b/web/static/images/emoji/flag-pg.png Binary files differnew file mode 100644 index 000000000..0a4ce4c3c --- /dev/null +++ b/web/static/images/emoji/flag-pg.png diff --git a/web/static/images/emoji/flag-ph.png b/web/static/images/emoji/flag-ph.png Binary files differnew file mode 100644 index 000000000..00a9eaa6d --- /dev/null +++ b/web/static/images/emoji/flag-ph.png diff --git a/web/static/images/emoji/flag-pk.png b/web/static/images/emoji/flag-pk.png Binary files differnew file mode 100644 index 000000000..b1ab1a7a8 --- /dev/null +++ b/web/static/images/emoji/flag-pk.png diff --git a/web/static/images/emoji/flag-pl.png b/web/static/images/emoji/flag-pl.png Binary files differnew file mode 100644 index 000000000..e07223bf7 --- /dev/null +++ b/web/static/images/emoji/flag-pl.png diff --git a/web/static/images/emoji/flag-pr.png b/web/static/images/emoji/flag-pr.png Binary files differnew file mode 100644 index 000000000..754bb5429 --- /dev/null +++ b/web/static/images/emoji/flag-pr.png diff --git a/web/static/images/emoji/flag-ps.png b/web/static/images/emoji/flag-ps.png Binary files differnew file mode 100644 index 000000000..e2076eda0 --- /dev/null +++ b/web/static/images/emoji/flag-ps.png diff --git a/web/static/images/emoji/flag-pt.png b/web/static/images/emoji/flag-pt.png Binary files differnew file mode 100644 index 000000000..4f585e18b --- /dev/null +++ b/web/static/images/emoji/flag-pt.png diff --git a/web/static/images/emoji/flag-pw.png b/web/static/images/emoji/flag-pw.png Binary files differnew file mode 100644 index 000000000..e15437591 --- /dev/null +++ b/web/static/images/emoji/flag-pw.png diff --git a/web/static/images/emoji/flag-py.png b/web/static/images/emoji/flag-py.png Binary files differnew file mode 100644 index 000000000..335d55f93 --- /dev/null +++ b/web/static/images/emoji/flag-py.png diff --git a/web/static/images/emoji/flag-qa.png b/web/static/images/emoji/flag-qa.png Binary files differnew file mode 100644 index 000000000..6f99df4ff --- /dev/null +++ b/web/static/images/emoji/flag-qa.png diff --git a/web/static/images/emoji/flag-ro.png b/web/static/images/emoji/flag-ro.png Binary files differnew file mode 100644 index 000000000..1f7db7ab1 --- /dev/null +++ b/web/static/images/emoji/flag-ro.png diff --git a/web/static/images/emoji/flag-rs.png b/web/static/images/emoji/flag-rs.png Binary files differnew file mode 100644 index 000000000..7552aba40 --- /dev/null +++ b/web/static/images/emoji/flag-rs.png diff --git a/web/static/images/emoji/flag-ru.png b/web/static/images/emoji/flag-ru.png Binary files differnew file mode 100644 index 000000000..4a65f219f --- /dev/null +++ b/web/static/images/emoji/flag-ru.png diff --git a/web/static/images/emoji/flag-rw.png b/web/static/images/emoji/flag-rw.png Binary files differnew file mode 100644 index 000000000..ddea66d07 --- /dev/null +++ b/web/static/images/emoji/flag-rw.png diff --git a/web/static/images/emoji/flag-sa.png b/web/static/images/emoji/flag-sa.png Binary files differnew file mode 100644 index 000000000..4f82c1a3e --- /dev/null +++ b/web/static/images/emoji/flag-sa.png diff --git a/web/static/images/emoji/flag-sb.png b/web/static/images/emoji/flag-sb.png Binary files differnew file mode 100644 index 000000000..5bf32a743 --- /dev/null +++ b/web/static/images/emoji/flag-sb.png diff --git a/web/static/images/emoji/flag-sc.png b/web/static/images/emoji/flag-sc.png Binary files differnew file mode 100644 index 000000000..7ec76a1ec --- /dev/null +++ b/web/static/images/emoji/flag-sc.png diff --git a/web/static/images/emoji/flag-sd.png b/web/static/images/emoji/flag-sd.png Binary files differnew file mode 100644 index 000000000..fad14bde5 --- /dev/null +++ b/web/static/images/emoji/flag-sd.png diff --git a/web/static/images/emoji/flag-se.png b/web/static/images/emoji/flag-se.png Binary files differnew file mode 100644 index 000000000..067857a9e --- /dev/null +++ b/web/static/images/emoji/flag-se.png diff --git a/web/static/images/emoji/flag-sg.png b/web/static/images/emoji/flag-sg.png Binary files differnew file mode 100644 index 000000000..8d1127005 --- /dev/null +++ b/web/static/images/emoji/flag-sg.png diff --git a/web/static/images/emoji/flag-sh.png b/web/static/images/emoji/flag-sh.png Binary files differnew file mode 100644 index 000000000..75977bea6 --- /dev/null +++ b/web/static/images/emoji/flag-sh.png diff --git a/web/static/images/emoji/flag-si.png b/web/static/images/emoji/flag-si.png Binary files differnew file mode 100644 index 000000000..d7c3a7477 --- /dev/null +++ b/web/static/images/emoji/flag-si.png diff --git a/web/static/images/emoji/flag-sk.png b/web/static/images/emoji/flag-sk.png Binary files differnew file mode 100644 index 000000000..6f60bfab3 --- /dev/null +++ b/web/static/images/emoji/flag-sk.png diff --git a/web/static/images/emoji/flag-sl.png b/web/static/images/emoji/flag-sl.png Binary files differnew file mode 100644 index 000000000..5f88e8673 --- /dev/null +++ b/web/static/images/emoji/flag-sl.png diff --git a/web/static/images/emoji/flag-sm.png b/web/static/images/emoji/flag-sm.png Binary files differnew file mode 100644 index 000000000..431e28ea6 --- /dev/null +++ b/web/static/images/emoji/flag-sm.png diff --git a/web/static/images/emoji/flag-sn.png b/web/static/images/emoji/flag-sn.png Binary files differnew file mode 100644 index 000000000..dcc3f9770 --- /dev/null +++ b/web/static/images/emoji/flag-sn.png diff --git a/web/static/images/emoji/flag-so.png b/web/static/images/emoji/flag-so.png Binary files differnew file mode 100644 index 000000000..2e20974e9 --- /dev/null +++ b/web/static/images/emoji/flag-so.png diff --git a/web/static/images/emoji/flag-sr.png b/web/static/images/emoji/flag-sr.png Binary files differnew file mode 100644 index 000000000..bde51f536 --- /dev/null +++ b/web/static/images/emoji/flag-sr.png diff --git a/web/static/images/emoji/flag-st.png b/web/static/images/emoji/flag-st.png Binary files differnew file mode 100644 index 000000000..e387f43b9 --- /dev/null +++ b/web/static/images/emoji/flag-st.png diff --git a/web/static/images/emoji/flag-sv.png b/web/static/images/emoji/flag-sv.png Binary files differnew file mode 100644 index 000000000..f4a1153db --- /dev/null +++ b/web/static/images/emoji/flag-sv.png diff --git a/web/static/images/emoji/flag-sy.png b/web/static/images/emoji/flag-sy.png Binary files differnew file mode 100644 index 000000000..f8900079a --- /dev/null +++ b/web/static/images/emoji/flag-sy.png diff --git a/web/static/images/emoji/flag-sz.png b/web/static/images/emoji/flag-sz.png Binary files differnew file mode 100644 index 000000000..f80d7579d --- /dev/null +++ b/web/static/images/emoji/flag-sz.png diff --git a/web/static/images/emoji/flag-td.png b/web/static/images/emoji/flag-td.png Binary files differnew file mode 100644 index 000000000..de564e86e --- /dev/null +++ b/web/static/images/emoji/flag-td.png diff --git a/web/static/images/emoji/flag-tg.png b/web/static/images/emoji/flag-tg.png Binary files differnew file mode 100644 index 000000000..e41a68ea8 --- /dev/null +++ b/web/static/images/emoji/flag-tg.png diff --git a/web/static/images/emoji/flag-th.png b/web/static/images/emoji/flag-th.png Binary files differnew file mode 100644 index 000000000..362fb1a29 --- /dev/null +++ b/web/static/images/emoji/flag-th.png diff --git a/web/static/images/emoji/flag-tj.png b/web/static/images/emoji/flag-tj.png Binary files differnew file mode 100644 index 000000000..5f2072253 --- /dev/null +++ b/web/static/images/emoji/flag-tj.png diff --git a/web/static/images/emoji/flag-tl.png b/web/static/images/emoji/flag-tl.png Binary files differnew file mode 100644 index 000000000..da94c4289 --- /dev/null +++ b/web/static/images/emoji/flag-tl.png diff --git a/web/static/images/emoji/flag-tm.png b/web/static/images/emoji/flag-tm.png Binary files differnew file mode 100644 index 000000000..f0ab3b7d5 --- /dev/null +++ b/web/static/images/emoji/flag-tm.png diff --git a/web/static/images/emoji/flag-tn.png b/web/static/images/emoji/flag-tn.png Binary files differnew file mode 100644 index 000000000..e1f27ed7d --- /dev/null +++ b/web/static/images/emoji/flag-tn.png diff --git a/web/static/images/emoji/flag-to.png b/web/static/images/emoji/flag-to.png Binary files differnew file mode 100644 index 000000000..06c2a6f41 --- /dev/null +++ b/web/static/images/emoji/flag-to.png diff --git a/web/static/images/emoji/flag-tr.png b/web/static/images/emoji/flag-tr.png Binary files differnew file mode 100644 index 000000000..720d4de2f --- /dev/null +++ b/web/static/images/emoji/flag-tr.png diff --git a/web/static/images/emoji/flag-tt.png b/web/static/images/emoji/flag-tt.png Binary files differnew file mode 100644 index 000000000..2d89e31b0 --- /dev/null +++ b/web/static/images/emoji/flag-tt.png diff --git a/web/static/images/emoji/flag-tv.png b/web/static/images/emoji/flag-tv.png Binary files differnew file mode 100644 index 000000000..765087702 --- /dev/null +++ b/web/static/images/emoji/flag-tv.png diff --git a/web/static/images/emoji/flag-tw.png b/web/static/images/emoji/flag-tw.png Binary files differnew file mode 100644 index 000000000..6499e47ee --- /dev/null +++ b/web/static/images/emoji/flag-tw.png diff --git a/web/static/images/emoji/flag-tz.png b/web/static/images/emoji/flag-tz.png Binary files differnew file mode 100644 index 000000000..9e04fcf9d --- /dev/null +++ b/web/static/images/emoji/flag-tz.png diff --git a/web/static/images/emoji/flag-ua.png b/web/static/images/emoji/flag-ua.png Binary files differnew file mode 100644 index 000000000..aa9745259 --- /dev/null +++ b/web/static/images/emoji/flag-ua.png diff --git a/web/static/images/emoji/flag-ug.png b/web/static/images/emoji/flag-ug.png Binary files differnew file mode 100644 index 000000000..f78274fcb --- /dev/null +++ b/web/static/images/emoji/flag-ug.png diff --git a/web/static/images/emoji/flag-us.png b/web/static/images/emoji/flag-us.png Binary files differnew file mode 100644 index 000000000..6c98de9be --- /dev/null +++ b/web/static/images/emoji/flag-us.png diff --git a/web/static/images/emoji/flag-uy.png b/web/static/images/emoji/flag-uy.png Binary files differnew file mode 100644 index 000000000..f8caee786 --- /dev/null +++ b/web/static/images/emoji/flag-uy.png diff --git a/web/static/images/emoji/flag-uz.png b/web/static/images/emoji/flag-uz.png Binary files differnew file mode 100644 index 000000000..34f0c8627 --- /dev/null +++ b/web/static/images/emoji/flag-uz.png diff --git a/web/static/images/emoji/flag-va.png b/web/static/images/emoji/flag-va.png Binary files differnew file mode 100644 index 000000000..175fcaa0e --- /dev/null +++ b/web/static/images/emoji/flag-va.png diff --git a/web/static/images/emoji/flag-vc.png b/web/static/images/emoji/flag-vc.png Binary files differnew file mode 100644 index 000000000..4e4efb366 --- /dev/null +++ b/web/static/images/emoji/flag-vc.png diff --git a/web/static/images/emoji/flag-ve.png b/web/static/images/emoji/flag-ve.png Binary files differnew file mode 100644 index 000000000..6ab199a56 --- /dev/null +++ b/web/static/images/emoji/flag-ve.png diff --git a/web/static/images/emoji/flag-vi.png b/web/static/images/emoji/flag-vi.png Binary files differnew file mode 100644 index 000000000..da1d092bb --- /dev/null +++ b/web/static/images/emoji/flag-vi.png diff --git a/web/static/images/emoji/flag-vn.png b/web/static/images/emoji/flag-vn.png Binary files differnew file mode 100644 index 000000000..ec1ca0b8f --- /dev/null +++ b/web/static/images/emoji/flag-vn.png diff --git a/web/static/images/emoji/flag-vu.png b/web/static/images/emoji/flag-vu.png Binary files differnew file mode 100644 index 000000000..e9345643b --- /dev/null +++ b/web/static/images/emoji/flag-vu.png diff --git a/web/static/images/emoji/flag-wf.png b/web/static/images/emoji/flag-wf.png Binary files differnew file mode 100644 index 000000000..367175512 --- /dev/null +++ b/web/static/images/emoji/flag-wf.png diff --git a/web/static/images/emoji/flag-ws.png b/web/static/images/emoji/flag-ws.png Binary files differnew file mode 100644 index 000000000..c4d6349f7 --- /dev/null +++ b/web/static/images/emoji/flag-ws.png diff --git a/web/static/images/emoji/flag-xk.png b/web/static/images/emoji/flag-xk.png Binary files differnew file mode 100644 index 000000000..f9953b7e2 --- /dev/null +++ b/web/static/images/emoji/flag-xk.png diff --git a/web/static/images/emoji/flag-ye.png b/web/static/images/emoji/flag-ye.png Binary files differnew file mode 100644 index 000000000..e62c22683 --- /dev/null +++ b/web/static/images/emoji/flag-ye.png diff --git a/web/static/images/emoji/flag-za.png b/web/static/images/emoji/flag-za.png Binary files differnew file mode 100644 index 000000000..b5f8197ca --- /dev/null +++ b/web/static/images/emoji/flag-za.png diff --git a/web/static/images/emoji/flag-zm.png b/web/static/images/emoji/flag-zm.png Binary files differnew file mode 100644 index 000000000..aac8aaa96 --- /dev/null +++ b/web/static/images/emoji/flag-zm.png diff --git a/web/static/images/emoji/flag-zw.png b/web/static/images/emoji/flag-zw.png Binary files differnew file mode 100644 index 000000000..bf3d7162d --- /dev/null +++ b/web/static/images/emoji/flag-zw.png diff --git a/web/static/images/emoji/flags.png b/web/static/images/emoji/flags.png Binary files differindex 540164e84..a6bbd0ea3 100755..100644 --- a/web/static/images/emoji/flags.png +++ b/web/static/images/emoji/flags.png diff --git a/web/static/images/emoji/flashlight.png b/web/static/images/emoji/flashlight.png Binary files differindex 215940aa8..3e64a0d0b 100755..100644 --- a/web/static/images/emoji/flashlight.png +++ b/web/static/images/emoji/flashlight.png diff --git a/web/static/images/emoji/flipper.png b/web/static/images/emoji/flipper.png Binary files differnew file mode 100644 index 000000000..4dde4cc13 --- /dev/null +++ b/web/static/images/emoji/flipper.png diff --git a/web/static/images/emoji/floppy_disk.png b/web/static/images/emoji/floppy_disk.png Binary files differindex 4ad56315a..f4e52bf1b 100755..100644 --- a/web/static/images/emoji/floppy_disk.png +++ b/web/static/images/emoji/floppy_disk.png diff --git a/web/static/images/emoji/flower_playing_cards.png b/web/static/images/emoji/flower_playing_cards.png Binary files differindex cc46a6a1f..b5dff4687 100755..100644 --- a/web/static/images/emoji/flower_playing_cards.png +++ b/web/static/images/emoji/flower_playing_cards.png diff --git a/web/static/images/emoji/flushed.png b/web/static/images/emoji/flushed.png Binary files differindex 74b78c9c0..44bd60154 100755..100644 --- a/web/static/images/emoji/flushed.png +++ b/web/static/images/emoji/flushed.png diff --git a/web/static/images/emoji/fog.png b/web/static/images/emoji/fog.png Binary files differnew file mode 100644 index 000000000..babf8a114 --- /dev/null +++ b/web/static/images/emoji/fog.png diff --git a/web/static/images/emoji/foggy.png b/web/static/images/emoji/foggy.png Binary files differindex 3c7b8b04b..740943ab0 100755..100644 --- a/web/static/images/emoji/foggy.png +++ b/web/static/images/emoji/foggy.png diff --git a/web/static/images/emoji/football.png b/web/static/images/emoji/football.png Binary files differindex 0e4e168fa..24b5673b0 100755..100644 --- a/web/static/images/emoji/football.png +++ b/web/static/images/emoji/football.png diff --git a/web/static/images/emoji/footprints.png b/web/static/images/emoji/footprints.png Binary files differnew file mode 100644 index 000000000..95c26fc9d --- /dev/null +++ b/web/static/images/emoji/footprints.png diff --git a/web/static/images/emoji/fork_and_knife.png b/web/static/images/emoji/fork_and_knife.png Binary files differindex 8ba4bc653..ea13776ee 100755..100644 --- a/web/static/images/emoji/fork_and_knife.png +++ b/web/static/images/emoji/fork_and_knife.png diff --git a/web/static/images/emoji/fountain.png b/web/static/images/emoji/fountain.png Binary files differindex da126e648..465d2a127 100755..100644 --- a/web/static/images/emoji/fountain.png +++ b/web/static/images/emoji/fountain.png diff --git a/web/static/images/emoji/four.png b/web/static/images/emoji/four.png Binary files differindex 14782ba23..a8b4dc052 100755..100644 --- a/web/static/images/emoji/four.png +++ b/web/static/images/emoji/four.png diff --git a/web/static/images/emoji/four_leaf_clover.png b/web/static/images/emoji/four_leaf_clover.png Binary files differindex f2014bea4..fb11bb638 100755..100644 --- a/web/static/images/emoji/four_leaf_clover.png +++ b/web/static/images/emoji/four_leaf_clover.png diff --git a/web/static/images/emoji/fr.png b/web/static/images/emoji/fr.png Binary files differindex 6311c9115..14271f059 100755..100644 --- a/web/static/images/emoji/fr.png +++ b/web/static/images/emoji/fr.png diff --git a/web/static/images/emoji/frame_with_picture.png b/web/static/images/emoji/frame_with_picture.png Binary files differnew file mode 100644 index 000000000..d2950ba9b --- /dev/null +++ b/web/static/images/emoji/frame_with_picture.png diff --git a/web/static/images/emoji/free.png b/web/static/images/emoji/free.png Binary files differindex c886cf249..0da6a1112 100755..100644 --- a/web/static/images/emoji/free.png +++ b/web/static/images/emoji/free.png diff --git a/web/static/images/emoji/fried_shrimp.png b/web/static/images/emoji/fried_shrimp.png Binary files differindex c8c284bf1..30c165438 100755..100644 --- a/web/static/images/emoji/fried_shrimp.png +++ b/web/static/images/emoji/fried_shrimp.png diff --git a/web/static/images/emoji/fries.png b/web/static/images/emoji/fries.png Binary files differindex cfef66966..bed7a0153 100755..100644 --- a/web/static/images/emoji/fries.png +++ b/web/static/images/emoji/fries.png diff --git a/web/static/images/emoji/frog.png b/web/static/images/emoji/frog.png Binary files differindex cfe11b18f..726d0280b 100755..100644 --- a/web/static/images/emoji/frog.png +++ b/web/static/images/emoji/frog.png diff --git a/web/static/images/emoji/frowning.png b/web/static/images/emoji/frowning.png Binary files differindex 487b77016..0593fe678 100755..100644 --- a/web/static/images/emoji/frowning.png +++ b/web/static/images/emoji/frowning.png diff --git a/web/static/images/emoji/fu.png b/web/static/images/emoji/fu.png Binary files differindex 61a3fee8d..61a3fee8d 100755..100644 --- a/web/static/images/emoji/fu.png +++ b/web/static/images/emoji/fu.png diff --git a/web/static/images/emoji/fuelpump.png b/web/static/images/emoji/fuelpump.png Binary files differindex 54c29aeb1..db5b15c89 100755..100644 --- a/web/static/images/emoji/fuelpump.png +++ b/web/static/images/emoji/fuelpump.png diff --git a/web/static/images/emoji/full_moon.png b/web/static/images/emoji/full_moon.png Binary files differindex 8ff657a25..b936c916d 100755..100644 --- a/web/static/images/emoji/full_moon.png +++ b/web/static/images/emoji/full_moon.png diff --git a/web/static/images/emoji/full_moon_with_face.png b/web/static/images/emoji/full_moon_with_face.png Binary files differindex d42b3f0fb..adb3479d9 100755..100644 --- a/web/static/images/emoji/full_moon_with_face.png +++ b/web/static/images/emoji/full_moon_with_face.png diff --git a/web/static/images/emoji/game_die.png b/web/static/images/emoji/game_die.png Binary files differindex cff2bd8b7..7723d290b 100755..100644 --- a/web/static/images/emoji/game_die.png +++ b/web/static/images/emoji/game_die.png diff --git a/web/static/images/emoji/gb.png b/web/static/images/emoji/gb.png Binary files differindex 2a62c7a08..61c03f759 100755..100644 --- a/web/static/images/emoji/gb.png +++ b/web/static/images/emoji/gb.png diff --git a/web/static/images/emoji/gem.png b/web/static/images/emoji/gem.png Binary files differindex 8a5d8dad5..a24a082a7 100755..100644 --- a/web/static/images/emoji/gem.png +++ b/web/static/images/emoji/gem.png diff --git a/web/static/images/emoji/gemini.png b/web/static/images/emoji/gemini.png Binary files differindex d926f6e88..3d34ba7ca 100755..100644 --- a/web/static/images/emoji/gemini.png +++ b/web/static/images/emoji/gemini.png diff --git a/web/static/images/emoji/ghost.png b/web/static/images/emoji/ghost.png Binary files differindex 671dd0c9e..3138f36fd 100755..100644 --- a/web/static/images/emoji/ghost.png +++ b/web/static/images/emoji/ghost.png diff --git a/web/static/images/emoji/gift.png b/web/static/images/emoji/gift.png Binary files differindex 552cfdc2b..bde801b55 100755..100644 --- a/web/static/images/emoji/gift.png +++ b/web/static/images/emoji/gift.png diff --git a/web/static/images/emoji/gift_heart.png b/web/static/images/emoji/gift_heart.png Binary files differindex f31c26a3f..eb0292da0 100755..100644 --- a/web/static/images/emoji/gift_heart.png +++ b/web/static/images/emoji/gift_heart.png diff --git a/web/static/images/emoji/girl.png b/web/static/images/emoji/girl.png Binary files differindex ea4126941..9f91cef4c 100755..100644 --- a/web/static/images/emoji/girl.png +++ b/web/static/images/emoji/girl.png diff --git a/web/static/images/emoji/globe_with_meridians.png b/web/static/images/emoji/globe_with_meridians.png Binary files differindex b19864667..a7af2cb1c 100755..100644 --- a/web/static/images/emoji/globe_with_meridians.png +++ b/web/static/images/emoji/globe_with_meridians.png diff --git a/web/static/images/emoji/goat.png b/web/static/images/emoji/goat.png Binary files differindex 4be9cf304..41210e5fa 100755..100644 --- a/web/static/images/emoji/goat.png +++ b/web/static/images/emoji/goat.png diff --git a/web/static/images/emoji/goberserk.png b/web/static/images/emoji/goberserk.png Binary files differindex 59a742aaa..59a742aaa 100755..100644 --- a/web/static/images/emoji/goberserk.png +++ b/web/static/images/emoji/goberserk.png diff --git a/web/static/images/emoji/godmode.png b/web/static/images/emoji/godmode.png Binary files differindex 7e75ab208..7e75ab208 100755..100644 --- a/web/static/images/emoji/godmode.png +++ b/web/static/images/emoji/godmode.png diff --git a/web/static/images/emoji/golf.png b/web/static/images/emoji/golf.png Binary files differindex cba2116a7..c03f80917 100755..100644 --- a/web/static/images/emoji/golf.png +++ b/web/static/images/emoji/golf.png diff --git a/web/static/images/emoji/golfer.png b/web/static/images/emoji/golfer.png Binary files differnew file mode 100644 index 000000000..9aa2f036f --- /dev/null +++ b/web/static/images/emoji/golfer.png diff --git a/web/static/images/emoji/grapes.png b/web/static/images/emoji/grapes.png Binary files differindex 0f9f007a1..20b097131 100755..100644 --- a/web/static/images/emoji/grapes.png +++ b/web/static/images/emoji/grapes.png diff --git a/web/static/images/emoji/green_apple.png b/web/static/images/emoji/green_apple.png Binary files differindex 337205cd1..e37514773 100755..100644 --- a/web/static/images/emoji/green_apple.png +++ b/web/static/images/emoji/green_apple.png diff --git a/web/static/images/emoji/green_book.png b/web/static/images/emoji/green_book.png Binary files differindex e86651e5c..8fa81b9ac 100755..100644 --- a/web/static/images/emoji/green_book.png +++ b/web/static/images/emoji/green_book.png diff --git a/web/static/images/emoji/green_heart.png b/web/static/images/emoji/green_heart.png Binary files differindex 7289cb814..87b1d21c3 100755..100644 --- a/web/static/images/emoji/green_heart.png +++ b/web/static/images/emoji/green_heart.png diff --git a/web/static/images/emoji/grey_exclamation.png b/web/static/images/emoji/grey_exclamation.png Binary files differindex cf027dda5..759d6e7f7 100755..100644 --- a/web/static/images/emoji/grey_exclamation.png +++ b/web/static/images/emoji/grey_exclamation.png diff --git a/web/static/images/emoji/grey_question.png b/web/static/images/emoji/grey_question.png Binary files differindex fb97ba752..7808b13e3 100755..100644 --- a/web/static/images/emoji/grey_question.png +++ b/web/static/images/emoji/grey_question.png diff --git a/web/static/images/emoji/grimacing.png b/web/static/images/emoji/grimacing.png Binary files differindex 1219ba7d3..ea4458d8f 100755..100644 --- a/web/static/images/emoji/grimacing.png +++ b/web/static/images/emoji/grimacing.png diff --git a/web/static/images/emoji/grin.png b/web/static/images/emoji/grin.png Binary files differindex 591cfcef8..bf4d098b9 100755..100644 --- a/web/static/images/emoji/grin.png +++ b/web/static/images/emoji/grin.png diff --git a/web/static/images/emoji/grinning.png b/web/static/images/emoji/grinning.png Binary files differindex 7e812b7ed..1a5edc7be 100755..100644 --- a/web/static/images/emoji/grinning.png +++ b/web/static/images/emoji/grinning.png diff --git a/web/static/images/emoji/guardsman.png b/web/static/images/emoji/guardsman.png Binary files differindex b67b335d6..f7f0464cd 100755..100644 --- a/web/static/images/emoji/guardsman.png +++ b/web/static/images/emoji/guardsman.png diff --git a/web/static/images/emoji/guitar.png b/web/static/images/emoji/guitar.png Binary files differindex 2b7fa43c9..ab62a7fbb 100755..100644 --- a/web/static/images/emoji/guitar.png +++ b/web/static/images/emoji/guitar.png diff --git a/web/static/images/emoji/gun.png b/web/static/images/emoji/gun.png Binary files differindex c49dc52c6..f0e6b8fab 100755..100644 --- a/web/static/images/emoji/gun.png +++ b/web/static/images/emoji/gun.png diff --git a/web/static/images/emoji/haircut.png b/web/static/images/emoji/haircut.png Binary files differindex 902d273f6..40fbd31c4 100755..100644 --- a/web/static/images/emoji/haircut.png +++ b/web/static/images/emoji/haircut.png diff --git a/web/static/images/emoji/hamburger.png b/web/static/images/emoji/hamburger.png Binary files differindex 9f1a3fdff..b18121930 100755..100644 --- a/web/static/images/emoji/hamburger.png +++ b/web/static/images/emoji/hamburger.png diff --git a/web/static/images/emoji/hammer.png b/web/static/images/emoji/hammer.png Binary files differindex 482b1c747..6d91d1320 100755..100644 --- a/web/static/images/emoji/hammer.png +++ b/web/static/images/emoji/hammer.png diff --git a/web/static/images/emoji/hammer_and_wrench.png b/web/static/images/emoji/hammer_and_wrench.png Binary files differnew file mode 100644 index 000000000..eeea685b4 --- /dev/null +++ b/web/static/images/emoji/hammer_and_wrench.png diff --git a/web/static/images/emoji/hamster.png b/web/static/images/emoji/hamster.png Binary files differindex addfd2e6b..b19be3738 100755..100644 --- a/web/static/images/emoji/hamster.png +++ b/web/static/images/emoji/hamster.png diff --git a/web/static/images/emoji/hand.png b/web/static/images/emoji/hand.png Binary files differindex 5e45c25a5..89de966a3 100755..100644 --- a/web/static/images/emoji/hand.png +++ b/web/static/images/emoji/hand.png diff --git a/web/static/images/emoji/handbag.png b/web/static/images/emoji/handbag.png Binary files differindex d7adf04dd..556688787 100755..100644 --- a/web/static/images/emoji/handbag.png +++ b/web/static/images/emoji/handbag.png diff --git a/web/static/images/emoji/hankey.png b/web/static/images/emoji/hankey.png Binary files differindex 73a4dc840..0c237a788 100755..100644 --- a/web/static/images/emoji/hankey.png +++ b/web/static/images/emoji/hankey.png diff --git a/web/static/images/emoji/hash.png b/web/static/images/emoji/hash.png Binary files differindex 6765d7d3c..9e4cda640 100755..100644 --- a/web/static/images/emoji/hash.png +++ b/web/static/images/emoji/hash.png diff --git a/web/static/images/emoji/hatched_chick.png b/web/static/images/emoji/hatched_chick.png Binary files differindex 39c25bc7c..de82199dc 100755..100644 --- a/web/static/images/emoji/hatched_chick.png +++ b/web/static/images/emoji/hatched_chick.png diff --git a/web/static/images/emoji/hatching_chick.png b/web/static/images/emoji/hatching_chick.png Binary files differindex 005a55519..1e688c228 100755..100644 --- a/web/static/images/emoji/hatching_chick.png +++ b/web/static/images/emoji/hatching_chick.png diff --git a/web/static/images/emoji/headphones.png b/web/static/images/emoji/headphones.png Binary files differindex ad83000e6..3335d4060 100755..100644 --- a/web/static/images/emoji/headphones.png +++ b/web/static/images/emoji/headphones.png diff --git a/web/static/images/emoji/hear_no_evil.png b/web/static/images/emoji/hear_no_evil.png Binary files differindex f97a1f9a0..e909ebf24 100755..100644 --- a/web/static/images/emoji/hear_no_evil.png +++ b/web/static/images/emoji/hear_no_evil.png diff --git a/web/static/images/emoji/heart.png b/web/static/images/emoji/heart.png Binary files differindex 7d7790ce4..af35e2223 100755..100644 --- a/web/static/images/emoji/heart.png +++ b/web/static/images/emoji/heart.png diff --git a/web/static/images/emoji/heart_decoration.png b/web/static/images/emoji/heart_decoration.png Binary files differindex b8be44db3..da8a1339b 100755..100644 --- a/web/static/images/emoji/heart_decoration.png +++ b/web/static/images/emoji/heart_decoration.png diff --git a/web/static/images/emoji/heart_eyes.png b/web/static/images/emoji/heart_eyes.png Binary files differindex 0e5794270..c48431cb8 100755..100644 --- a/web/static/images/emoji/heart_eyes.png +++ b/web/static/images/emoji/heart_eyes.png diff --git a/web/static/images/emoji/heart_eyes_cat.png b/web/static/images/emoji/heart_eyes_cat.png Binary files differindex eeba240e5..7ef231efd 100755..100644 --- a/web/static/images/emoji/heart_eyes_cat.png +++ b/web/static/images/emoji/heart_eyes_cat.png diff --git a/web/static/images/emoji/heartbeat.png b/web/static/images/emoji/heartbeat.png Binary files differindex b6628f6fa..43a365e95 100755..100644 --- a/web/static/images/emoji/heartbeat.png +++ b/web/static/images/emoji/heartbeat.png diff --git a/web/static/images/emoji/heartpulse.png b/web/static/images/emoji/heartpulse.png Binary files differindex a7491cbea..b3d5da2e3 100755..100644 --- a/web/static/images/emoji/heartpulse.png +++ b/web/static/images/emoji/heartpulse.png diff --git a/web/static/images/emoji/hearts.png b/web/static/images/emoji/hearts.png Binary files differindex e89471538..994a062cc 100755..100644 --- a/web/static/images/emoji/hearts.png +++ b/web/static/images/emoji/hearts.png diff --git a/web/static/images/emoji/heavy_check_mark.png b/web/static/images/emoji/heavy_check_mark.png Binary files differindex d0f010b4a..239ea09ee 100755..100644 --- a/web/static/images/emoji/heavy_check_mark.png +++ b/web/static/images/emoji/heavy_check_mark.png diff --git a/web/static/images/emoji/heavy_division_sign.png b/web/static/images/emoji/heavy_division_sign.png Binary files differindex e193fd252..b883d27f5 100755..100644 --- a/web/static/images/emoji/heavy_division_sign.png +++ b/web/static/images/emoji/heavy_division_sign.png diff --git a/web/static/images/emoji/heavy_dollar_sign.png b/web/static/images/emoji/heavy_dollar_sign.png Binary files differindex 5eddfc52b..10a5a4d8a 100755..100644 --- a/web/static/images/emoji/heavy_dollar_sign.png +++ b/web/static/images/emoji/heavy_dollar_sign.png diff --git a/web/static/images/emoji/heavy_exclamation_mark.png b/web/static/images/emoji/heavy_exclamation_mark.png Binary files differindex 4c560f5e3..b8fca78bc 100755..100644 --- a/web/static/images/emoji/heavy_exclamation_mark.png +++ b/web/static/images/emoji/heavy_exclamation_mark.png diff --git a/web/static/images/emoji/heavy_minus_sign.png b/web/static/images/emoji/heavy_minus_sign.png Binary files differindex 4a33f905a..60195e0d4 100755..100644 --- a/web/static/images/emoji/heavy_minus_sign.png +++ b/web/static/images/emoji/heavy_minus_sign.png diff --git a/web/static/images/emoji/heavy_multiplication_x.png b/web/static/images/emoji/heavy_multiplication_x.png Binary files differindex 13d666078..a75fd57e0 100755..100644 --- a/web/static/images/emoji/heavy_multiplication_x.png +++ b/web/static/images/emoji/heavy_multiplication_x.png diff --git a/web/static/images/emoji/heavy_plus_sign.png b/web/static/images/emoji/heavy_plus_sign.png Binary files differindex ade3c3a85..198cde00e 100755..100644 --- a/web/static/images/emoji/heavy_plus_sign.png +++ b/web/static/images/emoji/heavy_plus_sign.png diff --git a/web/static/images/emoji/helicopter.png b/web/static/images/emoji/helicopter.png Binary files differindex 8e82a0d58..838acddc7 100755..100644 --- a/web/static/images/emoji/helicopter.png +++ b/web/static/images/emoji/helicopter.png diff --git a/web/static/images/emoji/herb.png b/web/static/images/emoji/herb.png Binary files differindex de1ff1b73..cb5f8f735 100755..100644 --- a/web/static/images/emoji/herb.png +++ b/web/static/images/emoji/herb.png diff --git a/web/static/images/emoji/hibiscus.png b/web/static/images/emoji/hibiscus.png Binary files differindex 9365ae216..e0fd12c95 100755..100644 --- a/web/static/images/emoji/hibiscus.png +++ b/web/static/images/emoji/hibiscus.png diff --git a/web/static/images/emoji/high_brightness.png b/web/static/images/emoji/high_brightness.png Binary files differindex ba9de7d40..e5f548443 100755..100644 --- a/web/static/images/emoji/high_brightness.png +++ b/web/static/images/emoji/high_brightness.png diff --git a/web/static/images/emoji/high_heel.png b/web/static/images/emoji/high_heel.png Binary files differindex 525b6a0dd..36bdb7484 100755..100644 --- a/web/static/images/emoji/high_heel.png +++ b/web/static/images/emoji/high_heel.png diff --git a/web/static/images/emoji/hocho.png b/web/static/images/emoji/hocho.png Binary files differindex 3f05193c7..43249ba94 100755..100644 --- a/web/static/images/emoji/hocho.png +++ b/web/static/images/emoji/hocho.png diff --git a/web/static/images/emoji/hole.png b/web/static/images/emoji/hole.png Binary files differnew file mode 100644 index 000000000..ca20daa89 --- /dev/null +++ b/web/static/images/emoji/hole.png diff --git a/web/static/images/emoji/honey_pot.png b/web/static/images/emoji/honey_pot.png Binary files differindex 73278898a..a563f59c7 100755..100644 --- a/web/static/images/emoji/honey_pot.png +++ b/web/static/images/emoji/honey_pot.png diff --git a/web/static/images/emoji/honeybee.png b/web/static/images/emoji/honeybee.png Binary files differindex f53733953..e67b7703b 100755..100644 --- a/web/static/images/emoji/honeybee.png +++ b/web/static/images/emoji/honeybee.png diff --git a/web/static/images/emoji/horse.png b/web/static/images/emoji/horse.png Binary files differindex 78d580ad3..90b955506 100755..100644 --- a/web/static/images/emoji/horse.png +++ b/web/static/images/emoji/horse.png diff --git a/web/static/images/emoji/horse_racing.png b/web/static/images/emoji/horse_racing.png Binary files differindex e3bbaec1d..a7abb355f 100755..100644 --- a/web/static/images/emoji/horse_racing.png +++ b/web/static/images/emoji/horse_racing.png diff --git a/web/static/images/emoji/hospital.png b/web/static/images/emoji/hospital.png Binary files differindex c05c49377..9a53371c1 100755..100644 --- a/web/static/images/emoji/hospital.png +++ b/web/static/images/emoji/hospital.png diff --git a/web/static/images/emoji/hot_pepper.png b/web/static/images/emoji/hot_pepper.png Binary files differnew file mode 100644 index 000000000..a6db2ca09 --- /dev/null +++ b/web/static/images/emoji/hot_pepper.png diff --git a/web/static/images/emoji/hotel.png b/web/static/images/emoji/hotel.png Binary files differindex d29f276a1..7a22e341f 100755..100644 --- a/web/static/images/emoji/hotel.png +++ b/web/static/images/emoji/hotel.png diff --git a/web/static/images/emoji/hotsprings.png b/web/static/images/emoji/hotsprings.png Binary files differindex a0bc9d75f..dbe158292 100755..100644 --- a/web/static/images/emoji/hotsprings.png +++ b/web/static/images/emoji/hotsprings.png diff --git a/web/static/images/emoji/hourglass.png b/web/static/images/emoji/hourglass.png Binary files differindex 405aab41b..06799f8c5 100755..100644 --- a/web/static/images/emoji/hourglass.png +++ b/web/static/images/emoji/hourglass.png diff --git a/web/static/images/emoji/hourglass_flowing_sand.png b/web/static/images/emoji/hourglass_flowing_sand.png Binary files differindex b68eb6957..bb0bbd8f7 100755..100644 --- a/web/static/images/emoji/hourglass_flowing_sand.png +++ b/web/static/images/emoji/hourglass_flowing_sand.png diff --git a/web/static/images/emoji/house.png b/web/static/images/emoji/house.png Binary files differindex 95b9ee094..90551d823 100755..100644 --- a/web/static/images/emoji/house.png +++ b/web/static/images/emoji/house.png diff --git a/web/static/images/emoji/house_buildings.png b/web/static/images/emoji/house_buildings.png Binary files differnew file mode 100644 index 000000000..b3dde7347 --- /dev/null +++ b/web/static/images/emoji/house_buildings.png diff --git a/web/static/images/emoji/house_with_garden.png b/web/static/images/emoji/house_with_garden.png Binary files differindex 3338fb717..b00186c46 100755..100644 --- a/web/static/images/emoji/house_with_garden.png +++ b/web/static/images/emoji/house_with_garden.png diff --git a/web/static/images/emoji/hurtrealbad.png b/web/static/images/emoji/hurtrealbad.png Binary files differindex 146ef1a6a..146ef1a6a 100755..100644 --- a/web/static/images/emoji/hurtrealbad.png +++ b/web/static/images/emoji/hurtrealbad.png diff --git a/web/static/images/emoji/hushed.png b/web/static/images/emoji/hushed.png Binary files differindex bbd2cd4bc..443ed5811 100755..100644 --- a/web/static/images/emoji/hushed.png +++ b/web/static/images/emoji/hushed.png diff --git a/web/static/images/emoji/ice_cream.png b/web/static/images/emoji/ice_cream.png Binary files differindex 190be0165..5dc67b4cc 100755..100644 --- a/web/static/images/emoji/ice_cream.png +++ b/web/static/images/emoji/ice_cream.png diff --git a/web/static/images/emoji/icecream.png b/web/static/images/emoji/icecream.png Binary files differindex 871ce0976..39c2e6a8f 100755..100644 --- a/web/static/images/emoji/icecream.png +++ b/web/static/images/emoji/icecream.png diff --git a/web/static/images/emoji/id.png b/web/static/images/emoji/id.png Binary files differindex 47437a76d..3ae8bc2b9 100755..100644 --- a/web/static/images/emoji/id.png +++ b/web/static/images/emoji/id.png diff --git a/web/static/images/emoji/ideograph_advantage.png b/web/static/images/emoji/ideograph_advantage.png Binary files differindex 3c1334d16..2be0c3a78 100755..100644 --- a/web/static/images/emoji/ideograph_advantage.png +++ b/web/static/images/emoji/ideograph_advantage.png diff --git a/web/static/images/emoji/imp.png b/web/static/images/emoji/imp.png Binary files differindex fa7d9dc10..bb31a6212 100755..100644 --- a/web/static/images/emoji/imp.png +++ b/web/static/images/emoji/imp.png diff --git a/web/static/images/emoji/inbox_tray.png b/web/static/images/emoji/inbox_tray.png Binary files differindex e2df0f897..266947ee9 100755..100644 --- a/web/static/images/emoji/inbox_tray.png +++ b/web/static/images/emoji/inbox_tray.png diff --git a/web/static/images/emoji/incoming_envelope.png b/web/static/images/emoji/incoming_envelope.png Binary files differindex afc827125..b16ed051f 100755..100644 --- a/web/static/images/emoji/incoming_envelope.png +++ b/web/static/images/emoji/incoming_envelope.png diff --git a/web/static/images/emoji/information_desk_person.png b/web/static/images/emoji/information_desk_person.png Binary files differindex 52c0a50a3..ffe0ab71f 100755..100644 --- a/web/static/images/emoji/information_desk_person.png +++ b/web/static/images/emoji/information_desk_person.png diff --git a/web/static/images/emoji/information_source.png b/web/static/images/emoji/information_source.png Binary files differindex 9cb8b09b2..68059c871 100755..100644 --- a/web/static/images/emoji/information_source.png +++ b/web/static/images/emoji/information_source.png diff --git a/web/static/images/emoji/innocent.png b/web/static/images/emoji/innocent.png Binary files differindex 503b614f8..1c449201d 100755..100644 --- a/web/static/images/emoji/innocent.png +++ b/web/static/images/emoji/innocent.png diff --git a/web/static/images/emoji/interrobang.png b/web/static/images/emoji/interrobang.png Binary files differindex 64304b9f5..a8e1ec2a9 100755..100644 --- a/web/static/images/emoji/interrobang.png +++ b/web/static/images/emoji/interrobang.png diff --git a/web/static/images/emoji/iphone.png b/web/static/images/emoji/iphone.png Binary files differindex df007103b..eea83475b 100755..100644 --- a/web/static/images/emoji/iphone.png +++ b/web/static/images/emoji/iphone.png diff --git a/web/static/images/emoji/it.png b/web/static/images/emoji/it.png Binary files differindex 70bc9f324..bce062350 100755..100644 --- a/web/static/images/emoji/it.png +++ b/web/static/images/emoji/it.png diff --git a/web/static/images/emoji/izakaya_lantern.png b/web/static/images/emoji/izakaya_lantern.png Binary files differindex 18730ad55..02345bc3e 100755..100644 --- a/web/static/images/emoji/izakaya_lantern.png +++ b/web/static/images/emoji/izakaya_lantern.png diff --git a/web/static/images/emoji/jack_o_lantern.png b/web/static/images/emoji/jack_o_lantern.png Binary files differindex 1f7667ea4..0ea29490d 100755..100644 --- a/web/static/images/emoji/jack_o_lantern.png +++ b/web/static/images/emoji/jack_o_lantern.png diff --git a/web/static/images/emoji/japan.png b/web/static/images/emoji/japan.png Binary files differindex 459328035..79bb896f9 100755..100644 --- a/web/static/images/emoji/japan.png +++ b/web/static/images/emoji/japan.png diff --git a/web/static/images/emoji/japanese_castle.png b/web/static/images/emoji/japanese_castle.png Binary files differindex f225ab217..ebdeecf6a 100755..100644 --- a/web/static/images/emoji/japanese_castle.png +++ b/web/static/images/emoji/japanese_castle.png diff --git a/web/static/images/emoji/japanese_goblin.png b/web/static/images/emoji/japanese_goblin.png Binary files differindex bd21b1875..20e1b4eb5 100755..100644 --- a/web/static/images/emoji/japanese_goblin.png +++ b/web/static/images/emoji/japanese_goblin.png diff --git a/web/static/images/emoji/japanese_ogre.png b/web/static/images/emoji/japanese_ogre.png Binary files differindex e9f5471c9..fd1cab65f 100755..100644 --- a/web/static/images/emoji/japanese_ogre.png +++ b/web/static/images/emoji/japanese_ogre.png diff --git a/web/static/images/emoji/jeans.png b/web/static/images/emoji/jeans.png Binary files differindex d721cea54..f1a83c4d2 100755..100644 --- a/web/static/images/emoji/jeans.png +++ b/web/static/images/emoji/jeans.png diff --git a/web/static/images/emoji/joy.png b/web/static/images/emoji/joy.png Binary files differindex 47df693d4..bc1abb7a4 100755..100644 --- a/web/static/images/emoji/joy.png +++ b/web/static/images/emoji/joy.png diff --git a/web/static/images/emoji/joy_cat.png b/web/static/images/emoji/joy_cat.png Binary files differindex 6c60cb0ef..15a2aa0e3 100755..100644 --- a/web/static/images/emoji/joy_cat.png +++ b/web/static/images/emoji/joy_cat.png diff --git a/web/static/images/emoji/joystick.png b/web/static/images/emoji/joystick.png Binary files differnew file mode 100644 index 000000000..6808f30fb --- /dev/null +++ b/web/static/images/emoji/joystick.png diff --git a/web/static/images/emoji/jp.png b/web/static/images/emoji/jp.png Binary files differindex b786efbbd..56390ce22 100755..100644 --- a/web/static/images/emoji/jp.png +++ b/web/static/images/emoji/jp.png diff --git a/web/static/images/emoji/key.png b/web/static/images/emoji/key.png Binary files differindex 34673213f..2739df6db 100755..100644 --- a/web/static/images/emoji/key.png +++ b/web/static/images/emoji/key.png diff --git a/web/static/images/emoji/keycap_ten.png b/web/static/images/emoji/keycap_ten.png Binary files differindex 71dac1c1c..5f817b8d6 100755..100644 --- a/web/static/images/emoji/keycap_ten.png +++ b/web/static/images/emoji/keycap_ten.png diff --git a/web/static/images/emoji/kimono.png b/web/static/images/emoji/kimono.png Binary files differindex 34ffe137d..1cbdea0b1 100755..100644 --- a/web/static/images/emoji/kimono.png +++ b/web/static/images/emoji/kimono.png diff --git a/web/static/images/emoji/kiss.png b/web/static/images/emoji/kiss.png Binary files differindex 14fd9918d..bc4c8f73a 100755..100644 --- a/web/static/images/emoji/kiss.png +++ b/web/static/images/emoji/kiss.png diff --git a/web/static/images/emoji/kissing.png b/web/static/images/emoji/kissing.png Binary files differindex f3c8dcd78..b00212407 100755..100644 --- a/web/static/images/emoji/kissing.png +++ b/web/static/images/emoji/kissing.png diff --git a/web/static/images/emoji/kissing_cat.png b/web/static/images/emoji/kissing_cat.png Binary files differindex adc62fbe3..e62592137 100755..100644 --- a/web/static/images/emoji/kissing_cat.png +++ b/web/static/images/emoji/kissing_cat.png diff --git a/web/static/images/emoji/kissing_closed_eyes.png b/web/static/images/emoji/kissing_closed_eyes.png Binary files differindex 449de1970..523ef0453 100755..100644 --- a/web/static/images/emoji/kissing_closed_eyes.png +++ b/web/static/images/emoji/kissing_closed_eyes.png diff --git a/web/static/images/emoji/kissing_face.png b/web/static/images/emoji/kissing_face.png Binary files differdeleted file mode 100755 index 449de1970..000000000 --- a/web/static/images/emoji/kissing_face.png +++ /dev/null diff --git a/web/static/images/emoji/kissing_heart.png b/web/static/images/emoji/kissing_heart.png Binary files differindex af9a80b7f..834ee8ec9 100755..100644 --- a/web/static/images/emoji/kissing_heart.png +++ b/web/static/images/emoji/kissing_heart.png diff --git a/web/static/images/emoji/kissing_smiling_eyes.png b/web/static/images/emoji/kissing_smiling_eyes.png Binary files differindex 57f7b4935..7cbac1bf0 100755..100644 --- a/web/static/images/emoji/kissing_smiling_eyes.png +++ b/web/static/images/emoji/kissing_smiling_eyes.png diff --git a/web/static/images/emoji/knife.png b/web/static/images/emoji/knife.png Binary files differnew file mode 100644 index 000000000..43249ba94 --- /dev/null +++ b/web/static/images/emoji/knife.png diff --git a/web/static/images/emoji/knife_fork_plate.png b/web/static/images/emoji/knife_fork_plate.png Binary files differnew file mode 100644 index 000000000..d2ebb8435 --- /dev/null +++ b/web/static/images/emoji/knife_fork_plate.png diff --git a/web/static/images/emoji/koala.png b/web/static/images/emoji/koala.png Binary files differindex e17bd3cf5..928143905 100755..100644 --- a/web/static/images/emoji/koala.png +++ b/web/static/images/emoji/koala.png diff --git a/web/static/images/emoji/koko.png b/web/static/images/emoji/koko.png Binary files differindex 3bef28c9f..9f056070e 100755..100644 --- a/web/static/images/emoji/koko.png +++ b/web/static/images/emoji/koko.png diff --git a/web/static/images/emoji/kr.png b/web/static/images/emoji/kr.png Binary files differindex b4c0c1b67..6687991f3 100755..100644 --- a/web/static/images/emoji/kr.png +++ b/web/static/images/emoji/kr.png diff --git a/web/static/images/emoji/label.png b/web/static/images/emoji/label.png Binary files differnew file mode 100644 index 000000000..411124e2c --- /dev/null +++ b/web/static/images/emoji/label.png diff --git a/web/static/images/emoji/lantern.png b/web/static/images/emoji/lantern.png Binary files differnew file mode 100644 index 000000000..02345bc3e --- /dev/null +++ b/web/static/images/emoji/lantern.png diff --git a/web/static/images/emoji/large_blue_circle.png b/web/static/images/emoji/large_blue_circle.png Binary files differindex a5b4ad4aa..ddc4e7e59 100755..100644 --- a/web/static/images/emoji/large_blue_circle.png +++ b/web/static/images/emoji/large_blue_circle.png diff --git a/web/static/images/emoji/large_blue_diamond.png b/web/static/images/emoji/large_blue_diamond.png Binary files differindex f4598ec0f..fbe133557 100755..100644 --- a/web/static/images/emoji/large_blue_diamond.png +++ b/web/static/images/emoji/large_blue_diamond.png diff --git a/web/static/images/emoji/large_orange_diamond.png b/web/static/images/emoji/large_orange_diamond.png Binary files differindex 803725aad..f8c060fd2 100755..100644 --- a/web/static/images/emoji/large_orange_diamond.png +++ b/web/static/images/emoji/large_orange_diamond.png diff --git a/web/static/images/emoji/last_quarter_moon.png b/web/static/images/emoji/last_quarter_moon.png Binary files differindex 6ae30d6c2..85e0df65a 100755..100644 --- a/web/static/images/emoji/last_quarter_moon.png +++ b/web/static/images/emoji/last_quarter_moon.png diff --git a/web/static/images/emoji/last_quarter_moon_with_face.png b/web/static/images/emoji/last_quarter_moon_with_face.png Binary files differindex 9ece82dfe..37ecabbc7 100755..100644 --- a/web/static/images/emoji/last_quarter_moon_with_face.png +++ b/web/static/images/emoji/last_quarter_moon_with_face.png diff --git a/web/static/images/emoji/laughing.png b/web/static/images/emoji/laughing.png Binary files differindex 11c91eb22..d7e70b1a4 100755..100644 --- a/web/static/images/emoji/laughing.png +++ b/web/static/images/emoji/laughing.png diff --git a/web/static/images/emoji/leaves.png b/web/static/images/emoji/leaves.png Binary files differindex 5229e06bd..569a66fac 100755..100644 --- a/web/static/images/emoji/leaves.png +++ b/web/static/images/emoji/leaves.png diff --git a/web/static/images/emoji/ledger.png b/web/static/images/emoji/ledger.png Binary files differindex e4f72acea..b9a5484e4 100755..100644 --- a/web/static/images/emoji/ledger.png +++ b/web/static/images/emoji/ledger.png diff --git a/web/static/images/emoji/left_luggage.png b/web/static/images/emoji/left_luggage.png Binary files differindex 1c08b464d..b39b9075f 100755..100644 --- a/web/static/images/emoji/left_luggage.png +++ b/web/static/images/emoji/left_luggage.png diff --git a/web/static/images/emoji/left_right_arrow.png b/web/static/images/emoji/left_right_arrow.png Binary files differindex b9fd11c51..9e5e99c58 100755..100644 --- a/web/static/images/emoji/left_right_arrow.png +++ b/web/static/images/emoji/left_right_arrow.png diff --git a/web/static/images/emoji/left_speech_bubble.png b/web/static/images/emoji/left_speech_bubble.png Binary files differnew file mode 100644 index 000000000..81313baae --- /dev/null +++ b/web/static/images/emoji/left_speech_bubble.png diff --git a/web/static/images/emoji/leftwards_arrow_with_hook.png b/web/static/images/emoji/leftwards_arrow_with_hook.png Binary files differindex bc45dfefd..a9358a56e 100755..100644 --- a/web/static/images/emoji/leftwards_arrow_with_hook.png +++ b/web/static/images/emoji/leftwards_arrow_with_hook.png diff --git a/web/static/images/emoji/lemon.png b/web/static/images/emoji/lemon.png Binary files differindex 9814dc959..fa5e87b03 100755..100644 --- a/web/static/images/emoji/lemon.png +++ b/web/static/images/emoji/lemon.png diff --git a/web/static/images/emoji/leo.png b/web/static/images/emoji/leo.png Binary files differindex e025933b2..2290f822a 100755..100644 --- a/web/static/images/emoji/leo.png +++ b/web/static/images/emoji/leo.png diff --git a/web/static/images/emoji/leopard.png b/web/static/images/emoji/leopard.png Binary files differindex 3e738d2d3..eb16aa9c6 100755..100644 --- a/web/static/images/emoji/leopard.png +++ b/web/static/images/emoji/leopard.png diff --git a/web/static/images/emoji/level_slider.png b/web/static/images/emoji/level_slider.png Binary files differnew file mode 100644 index 000000000..389784aba --- /dev/null +++ b/web/static/images/emoji/level_slider.png diff --git a/web/static/images/emoji/libra.png b/web/static/images/emoji/libra.png Binary files differindex 6f4a927cd..3f3c33443 100755..100644 --- a/web/static/images/emoji/libra.png +++ b/web/static/images/emoji/libra.png diff --git a/web/static/images/emoji/light_rail.png b/web/static/images/emoji/light_rail.png Binary files differindex bcfe801ee..91cff3edb 100755..100644 --- a/web/static/images/emoji/light_rail.png +++ b/web/static/images/emoji/light_rail.png diff --git a/web/static/images/emoji/lightning.png b/web/static/images/emoji/lightning.png Binary files differnew file mode 100644 index 000000000..05a085e43 --- /dev/null +++ b/web/static/images/emoji/lightning.png diff --git a/web/static/images/emoji/lightning_cloud.png b/web/static/images/emoji/lightning_cloud.png Binary files differnew file mode 100644 index 000000000..05a085e43 --- /dev/null +++ b/web/static/images/emoji/lightning_cloud.png diff --git a/web/static/images/emoji/link.png b/web/static/images/emoji/link.png Binary files differindex 0239e48e4..0954f494a 100755..100644 --- a/web/static/images/emoji/link.png +++ b/web/static/images/emoji/link.png diff --git a/web/static/images/emoji/linked_paperclips.png b/web/static/images/emoji/linked_paperclips.png Binary files differnew file mode 100644 index 000000000..e449161de --- /dev/null +++ b/web/static/images/emoji/linked_paperclips.png diff --git a/web/static/images/emoji/lips.png b/web/static/images/emoji/lips.png Binary files differindex 826ed1102..9b2e494bd 100755..100644 --- a/web/static/images/emoji/lips.png +++ b/web/static/images/emoji/lips.png diff --git a/web/static/images/emoji/lipstick.png b/web/static/images/emoji/lipstick.png Binary files differindex 82f990c56..79421767b 100755..100644 --- a/web/static/images/emoji/lipstick.png +++ b/web/static/images/emoji/lipstick.png diff --git a/web/static/images/emoji/lock.png b/web/static/images/emoji/lock.png Binary files differindex 4892b0235..f1dc55a1a 100755..100644 --- a/web/static/images/emoji/lock.png +++ b/web/static/images/emoji/lock.png diff --git a/web/static/images/emoji/lock_with_ink_pen.png b/web/static/images/emoji/lock_with_ink_pen.png Binary files differindex 375e67e82..274d6f888 100755..100644 --- a/web/static/images/emoji/lock_with_ink_pen.png +++ b/web/static/images/emoji/lock_with_ink_pen.png diff --git a/web/static/images/emoji/lollipop.png b/web/static/images/emoji/lollipop.png Binary files differindex ba55e7093..2c6a0ed4c 100755..100644 --- a/web/static/images/emoji/lollipop.png +++ b/web/static/images/emoji/lollipop.png diff --git a/web/static/images/emoji/loop.png b/web/static/images/emoji/loop.png Binary files differindex ef34df3a4..a9b9248ba 100755..100644 --- a/web/static/images/emoji/loop.png +++ b/web/static/images/emoji/loop.png diff --git a/web/static/images/emoji/loud_sound.png b/web/static/images/emoji/loud_sound.png Binary files differnew file mode 100644 index 000000000..e84702e56 --- /dev/null +++ b/web/static/images/emoji/loud_sound.png diff --git a/web/static/images/emoji/loudspeaker.png b/web/static/images/emoji/loudspeaker.png Binary files differindex 752385e52..aaf588cd7 100755..100644 --- a/web/static/images/emoji/loudspeaker.png +++ b/web/static/images/emoji/loudspeaker.png diff --git a/web/static/images/emoji/love_hotel.png b/web/static/images/emoji/love_hotel.png Binary files differindex 44d7db828..e3b893388 100755..100644 --- a/web/static/images/emoji/love_hotel.png +++ b/web/static/images/emoji/love_hotel.png diff --git a/web/static/images/emoji/love_letter.png b/web/static/images/emoji/love_letter.png Binary files differindex e29981f44..853204d48 100755..100644 --- a/web/static/images/emoji/love_letter.png +++ b/web/static/images/emoji/love_letter.png diff --git a/web/static/images/emoji/low_brightness.png b/web/static/images/emoji/low_brightness.png Binary files differindex ea15bde4f..aecba4603 100755..100644 --- a/web/static/images/emoji/low_brightness.png +++ b/web/static/images/emoji/low_brightness.png diff --git a/web/static/images/emoji/lower_left_ballpoint_pen.png b/web/static/images/emoji/lower_left_ballpoint_pen.png Binary files differnew file mode 100644 index 000000000..b363fd8bd --- /dev/null +++ b/web/static/images/emoji/lower_left_ballpoint_pen.png diff --git a/web/static/images/emoji/lower_left_crayon.png b/web/static/images/emoji/lower_left_crayon.png Binary files differnew file mode 100644 index 000000000..3d8392f9b --- /dev/null +++ b/web/static/images/emoji/lower_left_crayon.png diff --git a/web/static/images/emoji/lower_left_fountain_pen.png b/web/static/images/emoji/lower_left_fountain_pen.png Binary files differnew file mode 100644 index 000000000..0b4301c18 --- /dev/null +++ b/web/static/images/emoji/lower_left_fountain_pen.png diff --git a/web/static/images/emoji/lower_left_paintbrush.png b/web/static/images/emoji/lower_left_paintbrush.png Binary files differnew file mode 100644 index 000000000..49eab81fa --- /dev/null +++ b/web/static/images/emoji/lower_left_paintbrush.png diff --git a/web/static/images/emoji/m.png b/web/static/images/emoji/m.png Binary files differindex 7e3a3bffb..7de289795 100755..100644 --- a/web/static/images/emoji/m.png +++ b/web/static/images/emoji/m.png diff --git a/web/static/images/emoji/mag.png b/web/static/images/emoji/mag.png Binary files differindex aa5b1d7c4..99982fbec 100755..100644 --- a/web/static/images/emoji/mag.png +++ b/web/static/images/emoji/mag.png diff --git a/web/static/images/emoji/mag_right.png b/web/static/images/emoji/mag_right.png Binary files differindex 6e6cf11e6..95d12da0e 100755..100644 --- a/web/static/images/emoji/mag_right.png +++ b/web/static/images/emoji/mag_right.png diff --git a/web/static/images/emoji/mahjong.png b/web/static/images/emoji/mahjong.png Binary files differindex f51ce65fd..16a59d954 100755..100644 --- a/web/static/images/emoji/mahjong.png +++ b/web/static/images/emoji/mahjong.png diff --git a/web/static/images/emoji/mailbox.png b/web/static/images/emoji/mailbox.png Binary files differindex 8351e7076..5e3aa1019 100755..100644 --- a/web/static/images/emoji/mailbox.png +++ b/web/static/images/emoji/mailbox.png diff --git a/web/static/images/emoji/mailbox_closed.png b/web/static/images/emoji/mailbox_closed.png Binary files differindex a5982b69b..7a9f1e301 100755..100644 --- a/web/static/images/emoji/mailbox_closed.png +++ b/web/static/images/emoji/mailbox_closed.png diff --git a/web/static/images/emoji/mailbox_with_mail.png b/web/static/images/emoji/mailbox_with_mail.png Binary files differindex dae345943..f8c7362a8 100755..100644 --- a/web/static/images/emoji/mailbox_with_mail.png +++ b/web/static/images/emoji/mailbox_with_mail.png diff --git a/web/static/images/emoji/mailbox_with_no_mail.png b/web/static/images/emoji/mailbox_with_no_mail.png Binary files differindex 59f15c5d7..a4b4797ee 100755..100644 --- a/web/static/images/emoji/mailbox_with_no_mail.png +++ b/web/static/images/emoji/mailbox_with_no_mail.png diff --git a/web/static/images/emoji/man-woman-boy.png b/web/static/images/emoji/man-woman-boy.png Binary files differnew file mode 100644 index 000000000..e0d81ddb7 --- /dev/null +++ b/web/static/images/emoji/man-woman-boy.png diff --git a/web/static/images/emoji/man.png b/web/static/images/emoji/man.png Binary files differindex d9bfa26a6..8efb7f43b 100755..100644 --- a/web/static/images/emoji/man.png +++ b/web/static/images/emoji/man.png diff --git a/web/static/images/emoji/man_and_woman_holding_hands.png b/web/static/images/emoji/man_and_woman_holding_hands.png Binary files differnew file mode 100644 index 000000000..616f8520b --- /dev/null +++ b/web/static/images/emoji/man_and_woman_holding_hands.png diff --git a/web/static/images/emoji/man_in_business_suit_levitating.png b/web/static/images/emoji/man_in_business_suit_levitating.png Binary files differnew file mode 100644 index 000000000..1c526acbe --- /dev/null +++ b/web/static/images/emoji/man_in_business_suit_levitating.png diff --git a/web/static/images/emoji/man_with_gua_pi_mao.png b/web/static/images/emoji/man_with_gua_pi_mao.png Binary files differindex 7aad74b55..bd01585c4 100755..100644 --- a/web/static/images/emoji/man_with_gua_pi_mao.png +++ b/web/static/images/emoji/man_with_gua_pi_mao.png diff --git a/web/static/images/emoji/man_with_turban.png b/web/static/images/emoji/man_with_turban.png Binary files differindex 036604caf..e968c78fe 100755..100644 --- a/web/static/images/emoji/man_with_turban.png +++ b/web/static/images/emoji/man_with_turban.png diff --git a/web/static/images/emoji/mans_shoe.png b/web/static/images/emoji/mans_shoe.png Binary files differindex ecba9ba7d..8d8a9feeb 100755..100644 --- a/web/static/images/emoji/mans_shoe.png +++ b/web/static/images/emoji/mans_shoe.png diff --git a/web/static/images/emoji/mantelpiece_clock.png b/web/static/images/emoji/mantelpiece_clock.png Binary files differnew file mode 100644 index 000000000..f944ec0c6 --- /dev/null +++ b/web/static/images/emoji/mantelpiece_clock.png diff --git a/web/static/images/emoji/maple_leaf.png b/web/static/images/emoji/maple_leaf.png Binary files differindex 4e9b47207..2756537f1 100755..100644 --- a/web/static/images/emoji/maple_leaf.png +++ b/web/static/images/emoji/maple_leaf.png diff --git a/web/static/images/emoji/mask.png b/web/static/images/emoji/mask.png Binary files differindex 05887e99c..7110927b8 100755..100644 --- a/web/static/images/emoji/mask.png +++ b/web/static/images/emoji/mask.png diff --git a/web/static/images/emoji/massage.png b/web/static/images/emoji/massage.png Binary files differindex dd30d1597..4890c3395 100755..100644 --- a/web/static/images/emoji/massage.png +++ b/web/static/images/emoji/massage.png diff --git a/web/static/images/emoji/meat_on_bone.png b/web/static/images/emoji/meat_on_bone.png Binary files differindex 5b79a660c..e9697fef1 100755..100644 --- a/web/static/images/emoji/meat_on_bone.png +++ b/web/static/images/emoji/meat_on_bone.png diff --git a/web/static/images/emoji/medal.png b/web/static/images/emoji/medal.png Binary files differnew file mode 100644 index 000000000..6558c71fc --- /dev/null +++ b/web/static/images/emoji/medal.png diff --git a/web/static/images/emoji/mega.png b/web/static/images/emoji/mega.png Binary files differindex 022df2f8d..51bc09152 100755..100644 --- a/web/static/images/emoji/mega.png +++ b/web/static/images/emoji/mega.png diff --git a/web/static/images/emoji/melon.png b/web/static/images/emoji/melon.png Binary files differindex 11c13cbbd..b27f00d25 100755..100644 --- a/web/static/images/emoji/melon.png +++ b/web/static/images/emoji/melon.png diff --git a/web/static/images/emoji/memo.png b/web/static/images/emoji/memo.png Binary files differindex fc97ddbc9..61e5a08e6 100755..100644 --- a/web/static/images/emoji/memo.png +++ b/web/static/images/emoji/memo.png diff --git a/web/static/images/emoji/mens.png b/web/static/images/emoji/mens.png Binary files differindex abccfc9f2..db526a641 100755..100644 --- a/web/static/images/emoji/mens.png +++ b/web/static/images/emoji/mens.png diff --git a/web/static/images/emoji/metal.png b/web/static/images/emoji/metal.png Binary files differindex 94f1fda22..94f1fda22 100755..100644 --- a/web/static/images/emoji/metal.png +++ b/web/static/images/emoji/metal.png diff --git a/web/static/images/emoji/metro.png b/web/static/images/emoji/metro.png Binary files differindex 4acf5ab3e..747ab8ad1 100755..100644 --- a/web/static/images/emoji/metro.png +++ b/web/static/images/emoji/metro.png diff --git a/web/static/images/emoji/microphone.png b/web/static/images/emoji/microphone.png Binary files differindex 68c74adad..346b8967c 100755..100644 --- a/web/static/images/emoji/microphone.png +++ b/web/static/images/emoji/microphone.png diff --git a/web/static/images/emoji/microscope.png b/web/static/images/emoji/microscope.png Binary files differindex 8b7a5e4e6..944293d1e 100755..100644 --- a/web/static/images/emoji/microscope.png +++ b/web/static/images/emoji/microscope.png diff --git a/web/static/images/emoji/middle_finger.png b/web/static/images/emoji/middle_finger.png Binary files differnew file mode 100644 index 000000000..c4e5d4a91 --- /dev/null +++ b/web/static/images/emoji/middle_finger.png diff --git a/web/static/images/emoji/milky_way.png b/web/static/images/emoji/milky_way.png Binary files differindex 901090a12..4ee1090f4 100755..100644 --- a/web/static/images/emoji/milky_way.png +++ b/web/static/images/emoji/milky_way.png diff --git a/web/static/images/emoji/minibus.png b/web/static/images/emoji/minibus.png Binary files differindex c52cef234..462d0a348 100755..100644 --- a/web/static/images/emoji/minibus.png +++ b/web/static/images/emoji/minibus.png diff --git a/web/static/images/emoji/minidisc.png b/web/static/images/emoji/minidisc.png Binary files differindex e19cc5d01..49d651f9e 100755..100644 --- a/web/static/images/emoji/minidisc.png +++ b/web/static/images/emoji/minidisc.png diff --git a/web/static/images/emoji/mobile_phone_off.png b/web/static/images/emoji/mobile_phone_off.png Binary files differindex fa16c763c..63d1deeaa 100755..100644 --- a/web/static/images/emoji/mobile_phone_off.png +++ b/web/static/images/emoji/mobile_phone_off.png diff --git a/web/static/images/emoji/money_with_wings.png b/web/static/images/emoji/money_with_wings.png Binary files differindex 581a82449..46591e443 100755..100644 --- a/web/static/images/emoji/money_with_wings.png +++ b/web/static/images/emoji/money_with_wings.png diff --git a/web/static/images/emoji/moneybag.png b/web/static/images/emoji/moneybag.png Binary files differindex 5546c04ba..a44896ab0 100755..100644 --- a/web/static/images/emoji/moneybag.png +++ b/web/static/images/emoji/moneybag.png diff --git a/web/static/images/emoji/monkey.png b/web/static/images/emoji/monkey.png Binary files differindex 640703597..33e542ba6 100755..100644 --- a/web/static/images/emoji/monkey.png +++ b/web/static/images/emoji/monkey.png diff --git a/web/static/images/emoji/monkey_face.png b/web/static/images/emoji/monkey_face.png Binary files differindex 6964cf4d5..a753bae1c 100755..100644 --- a/web/static/images/emoji/monkey_face.png +++ b/web/static/images/emoji/monkey_face.png diff --git a/web/static/images/emoji/monorail.png b/web/static/images/emoji/monorail.png Binary files differindex 913d30024..83ba5af45 100755..100644 --- a/web/static/images/emoji/monorail.png +++ b/web/static/images/emoji/monorail.png diff --git a/web/static/images/emoji/moon.png b/web/static/images/emoji/moon.png Binary files differnew file mode 100644 index 000000000..b53fd4288 --- /dev/null +++ b/web/static/images/emoji/moon.png diff --git a/web/static/images/emoji/mortar_board.png b/web/static/images/emoji/mortar_board.png Binary files differindex 84513f6ba..4d5744f60 100755..100644 --- a/web/static/images/emoji/mortar_board.png +++ b/web/static/images/emoji/mortar_board.png diff --git a/web/static/images/emoji/motor_boat.png b/web/static/images/emoji/motor_boat.png Binary files differnew file mode 100644 index 000000000..1e720f431 --- /dev/null +++ b/web/static/images/emoji/motor_boat.png diff --git a/web/static/images/emoji/motorway.png b/web/static/images/emoji/motorway.png Binary files differnew file mode 100644 index 000000000..c7f7a5d48 --- /dev/null +++ b/web/static/images/emoji/motorway.png diff --git a/web/static/images/emoji/mount_fuji.png b/web/static/images/emoji/mount_fuji.png Binary files differindex 4c313e583..51d1aeab1 100755..100644 --- a/web/static/images/emoji/mount_fuji.png +++ b/web/static/images/emoji/mount_fuji.png diff --git a/web/static/images/emoji/mountain_bicyclist.png b/web/static/images/emoji/mountain_bicyclist.png Binary files differindex b69889756..d2aa6f821 100755..100644 --- a/web/static/images/emoji/mountain_bicyclist.png +++ b/web/static/images/emoji/mountain_bicyclist.png diff --git a/web/static/images/emoji/mountain_cableway.png b/web/static/images/emoji/mountain_cableway.png Binary files differindex 5688bb239..6dbd7307e 100755..100644 --- a/web/static/images/emoji/mountain_cableway.png +++ b/web/static/images/emoji/mountain_cableway.png diff --git a/web/static/images/emoji/mountain_railway.png b/web/static/images/emoji/mountain_railway.png Binary files differindex 1f3d1aab5..c69df1f8f 100755..100644 --- a/web/static/images/emoji/mountain_railway.png +++ b/web/static/images/emoji/mountain_railway.png diff --git a/web/static/images/emoji/mouse.png b/web/static/images/emoji/mouse.png Binary files differindex 8ff162e2d..a8e5eb73f 100755..100644 --- a/web/static/images/emoji/mouse.png +++ b/web/static/images/emoji/mouse.png diff --git a/web/static/images/emoji/mouse2.png b/web/static/images/emoji/mouse2.png Binary files differindex 2d777e5e1..5b1b1137f 100755..100644 --- a/web/static/images/emoji/mouse2.png +++ b/web/static/images/emoji/mouse2.png diff --git a/web/static/images/emoji/movie_camera.png b/web/static/images/emoji/movie_camera.png Binary files differindex 9c1438409..077458b67 100755..100644 --- a/web/static/images/emoji/movie_camera.png +++ b/web/static/images/emoji/movie_camera.png diff --git a/web/static/images/emoji/moyai.png b/web/static/images/emoji/moyai.png Binary files differindex 61a1a9c21..247d34e25 100755..100644 --- a/web/static/images/emoji/moyai.png +++ b/web/static/images/emoji/moyai.png diff --git a/web/static/images/emoji/muscle.png b/web/static/images/emoji/muscle.png Binary files differindex 19f92efb6..9300534fa 100755..100644 --- a/web/static/images/emoji/muscle.png +++ b/web/static/images/emoji/muscle.png diff --git a/web/static/images/emoji/mushroom.png b/web/static/images/emoji/mushroom.png Binary files differindex 5eeed8e79..ca7a039cb 100755..100644 --- a/web/static/images/emoji/mushroom.png +++ b/web/static/images/emoji/mushroom.png diff --git a/web/static/images/emoji/musical_keyboard.png b/web/static/images/emoji/musical_keyboard.png Binary files differindex 93647a4a3..c6c029920 100755..100644 --- a/web/static/images/emoji/musical_keyboard.png +++ b/web/static/images/emoji/musical_keyboard.png diff --git a/web/static/images/emoji/musical_note.png b/web/static/images/emoji/musical_note.png Binary files differindex 68b261bcb..f9bc86e4e 100755..100644 --- a/web/static/images/emoji/musical_note.png +++ b/web/static/images/emoji/musical_note.png diff --git a/web/static/images/emoji/musical_score.png b/web/static/images/emoji/musical_score.png Binary files differindex c99e3381f..ae50ab288 100755..100644 --- a/web/static/images/emoji/musical_score.png +++ b/web/static/images/emoji/musical_score.png diff --git a/web/static/images/emoji/mute.png b/web/static/images/emoji/mute.png Binary files differindex 4cf67c367..04d987046 100755..100644 --- a/web/static/images/emoji/mute.png +++ b/web/static/images/emoji/mute.png diff --git a/web/static/images/emoji/nail_care.png b/web/static/images/emoji/nail_care.png Binary files differindex 6a66e63d2..279881c26 100755..100644 --- a/web/static/images/emoji/nail_care.png +++ b/web/static/images/emoji/nail_care.png diff --git a/web/static/images/emoji/name_badge.png b/web/static/images/emoji/name_badge.png Binary files differindex 2b712dcd5..a1ffb38b3 100755..100644 --- a/web/static/images/emoji/name_badge.png +++ b/web/static/images/emoji/name_badge.png diff --git a/web/static/images/emoji/national_park.png b/web/static/images/emoji/national_park.png Binary files differnew file mode 100644 index 000000000..ff6fc0754 --- /dev/null +++ b/web/static/images/emoji/national_park.png diff --git a/web/static/images/emoji/neckbeard.png b/web/static/images/emoji/neckbeard.png Binary files differindex 6e31d1652..6e31d1652 100755..100644 --- a/web/static/images/emoji/neckbeard.png +++ b/web/static/images/emoji/neckbeard.png diff --git a/web/static/images/emoji/necktie.png b/web/static/images/emoji/necktie.png Binary files differindex 80461c66f..3ed0339bf 100755..100644 --- a/web/static/images/emoji/necktie.png +++ b/web/static/images/emoji/necktie.png diff --git a/web/static/images/emoji/negative_squared_cross_mark.png b/web/static/images/emoji/negative_squared_cross_mark.png Binary files differindex b47a0cece..90ca18394 100755..100644 --- a/web/static/images/emoji/negative_squared_cross_mark.png +++ b/web/static/images/emoji/negative_squared_cross_mark.png diff --git a/web/static/images/emoji/neutral_face.png b/web/static/images/emoji/neutral_face.png Binary files differindex 682a1ba06..6cabdf2f4 100755..100644 --- a/web/static/images/emoji/neutral_face.png +++ b/web/static/images/emoji/neutral_face.png diff --git a/web/static/images/emoji/new.png b/web/static/images/emoji/new.png Binary files differindex 28d1570e0..9d9f89101 100755..100644 --- a/web/static/images/emoji/new.png +++ b/web/static/images/emoji/new.png diff --git a/web/static/images/emoji/new_moon.png b/web/static/images/emoji/new_moon.png Binary files differindex 72492cb90..06e5e67f2 100755..100644 --- a/web/static/images/emoji/new_moon.png +++ b/web/static/images/emoji/new_moon.png diff --git a/web/static/images/emoji/new_moon_with_face.png b/web/static/images/emoji/new_moon_with_face.png Binary files differindex 21a696eb9..c7b2e8011 100755..100644 --- a/web/static/images/emoji/new_moon_with_face.png +++ b/web/static/images/emoji/new_moon_with_face.png diff --git a/web/static/images/emoji/newspaper.png b/web/static/images/emoji/newspaper.png Binary files differindex 60c3394dc..ae5e31494 100755..100644 --- a/web/static/images/emoji/newspaper.png +++ b/web/static/images/emoji/newspaper.png diff --git a/web/static/images/emoji/ng.png b/web/static/images/emoji/ng.png Binary files differindex 2ca180ae3..cc45e9df2 100755..100644 --- a/web/static/images/emoji/ng.png +++ b/web/static/images/emoji/ng.png diff --git a/web/static/images/emoji/night_with_stars.png b/web/static/images/emoji/night_with_stars.png Binary files differnew file mode 100644 index 000000000..b6b629204 --- /dev/null +++ b/web/static/images/emoji/night_with_stars.png diff --git a/web/static/images/emoji/nine.png b/web/static/images/emoji/nine.png Binary files differindex 8006cc909..e6b38a109 100755..100644 --- a/web/static/images/emoji/nine.png +++ b/web/static/images/emoji/nine.png diff --git a/web/static/images/emoji/no_bell.png b/web/static/images/emoji/no_bell.png Binary files differindex 613b81cd2..30e8858aa 100755..100644 --- a/web/static/images/emoji/no_bell.png +++ b/web/static/images/emoji/no_bell.png diff --git a/web/static/images/emoji/no_bicycles.png b/web/static/images/emoji/no_bicycles.png Binary files differindex 4b2621664..278f1424e 100755..100644 --- a/web/static/images/emoji/no_bicycles.png +++ b/web/static/images/emoji/no_bicycles.png diff --git a/web/static/images/emoji/no_entry.png b/web/static/images/emoji/no_entry.png Binary files differindex cf2086a8e..aca2edaa7 100755..100644 --- a/web/static/images/emoji/no_entry.png +++ b/web/static/images/emoji/no_entry.png diff --git a/web/static/images/emoji/no_entry_sign.png b/web/static/images/emoji/no_entry_sign.png Binary files differindex b3231f66d..6577a1058 100755..100644 --- a/web/static/images/emoji/no_entry_sign.png +++ b/web/static/images/emoji/no_entry_sign.png diff --git a/web/static/images/emoji/no_good.png b/web/static/images/emoji/no_good.png Binary files differindex d459a35bc..d7eead9de 100755..100644 --- a/web/static/images/emoji/no_good.png +++ b/web/static/images/emoji/no_good.png diff --git a/web/static/images/emoji/no_mobile_phones.png b/web/static/images/emoji/no_mobile_phones.png Binary files differindex 41df57cf8..8324e4361 100755..100644 --- a/web/static/images/emoji/no_mobile_phones.png +++ b/web/static/images/emoji/no_mobile_phones.png diff --git a/web/static/images/emoji/no_mouth.png b/web/static/images/emoji/no_mouth.png Binary files differindex e67802046..549fff988 100755..100644 --- a/web/static/images/emoji/no_mouth.png +++ b/web/static/images/emoji/no_mouth.png diff --git a/web/static/images/emoji/no_pedestrians.png b/web/static/images/emoji/no_pedestrians.png Binary files differindex 53ee0f927..b015b4eaf 100755..100644 --- a/web/static/images/emoji/no_pedestrians.png +++ b/web/static/images/emoji/no_pedestrians.png diff --git a/web/static/images/emoji/no_smoking.png b/web/static/images/emoji/no_smoking.png Binary files differindex 5880ddfd1..939a81ae8 100755..100644 --- a/web/static/images/emoji/no_smoking.png +++ b/web/static/images/emoji/no_smoking.png diff --git a/web/static/images/emoji/non-potable_water.png b/web/static/images/emoji/non-potable_water.png Binary files differindex 1b29d35b9..34de27d65 100755..100644 --- a/web/static/images/emoji/non-potable_water.png +++ b/web/static/images/emoji/non-potable_water.png diff --git a/web/static/images/emoji/nose.png b/web/static/images/emoji/nose.png Binary files differindex ad17c16c2..f3d289014 100755..100644 --- a/web/static/images/emoji/nose.png +++ b/web/static/images/emoji/nose.png diff --git a/web/static/images/emoji/notebook.png b/web/static/images/emoji/notebook.png Binary files differindex 5f0a5f6a2..5ed4f4112 100755..100644 --- a/web/static/images/emoji/notebook.png +++ b/web/static/images/emoji/notebook.png diff --git a/web/static/images/emoji/notebook_with_decorative_cover.png b/web/static/images/emoji/notebook_with_decorative_cover.png Binary files differindex 4f3b14c85..839ee3e78 100755..100644 --- a/web/static/images/emoji/notebook_with_decorative_cover.png +++ b/web/static/images/emoji/notebook_with_decorative_cover.png diff --git a/web/static/images/emoji/notes.png b/web/static/images/emoji/notes.png Binary files differindex 0956d6ab2..df2810aa4 100755..100644 --- a/web/static/images/emoji/notes.png +++ b/web/static/images/emoji/notes.png diff --git a/web/static/images/emoji/nut_and_bolt.png b/web/static/images/emoji/nut_and_bolt.png Binary files differindex bddfa72a7..fee747a01 100755..100644 --- a/web/static/images/emoji/nut_and_bolt.png +++ b/web/static/images/emoji/nut_and_bolt.png diff --git a/web/static/images/emoji/o.png b/web/static/images/emoji/o.png Binary files differindex 1ff846c19..f141dc452 100755..100644 --- a/web/static/images/emoji/o.png +++ b/web/static/images/emoji/o.png diff --git a/web/static/images/emoji/o2.png b/web/static/images/emoji/o2.png Binary files differindex d85f9fb98..b39215725 100755..100644 --- a/web/static/images/emoji/o2.png +++ b/web/static/images/emoji/o2.png diff --git a/web/static/images/emoji/ocean.png b/web/static/images/emoji/ocean.png Binary files differindex f8d520cd4..172dfffdf 100755..100644 --- a/web/static/images/emoji/ocean.png +++ b/web/static/images/emoji/ocean.png diff --git a/web/static/images/emoji/octocat.png b/web/static/images/emoji/octocat.png Binary files differindex d296f25fe..d296f25fe 100755..100644 --- a/web/static/images/emoji/octocat.png +++ b/web/static/images/emoji/octocat.png diff --git a/web/static/images/emoji/octopus.png b/web/static/images/emoji/octopus.png Binary files differindex 52ce64b46..8add7143e 100755..100644 --- a/web/static/images/emoji/octopus.png +++ b/web/static/images/emoji/octopus.png diff --git a/web/static/images/emoji/oden.png b/web/static/images/emoji/oden.png Binary files differindex 73add1c73..8ac803517 100755..100644 --- a/web/static/images/emoji/oden.png +++ b/web/static/images/emoji/oden.png diff --git a/web/static/images/emoji/office.png b/web/static/images/emoji/office.png Binary files differindex 53c3ef8d1..52a6bb4a4 100755..100644 --- a/web/static/images/emoji/office.png +++ b/web/static/images/emoji/office.png diff --git a/web/static/images/emoji/oil_drum.png b/web/static/images/emoji/oil_drum.png Binary files differnew file mode 100644 index 000000000..e7e597a98 --- /dev/null +++ b/web/static/images/emoji/oil_drum.png diff --git a/web/static/images/emoji/ok.png b/web/static/images/emoji/ok.png Binary files differindex 6433d1a90..ffa868d43 100755..100644 --- a/web/static/images/emoji/ok.png +++ b/web/static/images/emoji/ok.png diff --git a/web/static/images/emoji/ok_hand.png b/web/static/images/emoji/ok_hand.png Binary files differindex 80c5aebb6..bf84e0df4 100755..100644 --- a/web/static/images/emoji/ok_hand.png +++ b/web/static/images/emoji/ok_hand.png diff --git a/web/static/images/emoji/ok_woman.png b/web/static/images/emoji/ok_woman.png Binary files differindex e8b98194e..fcafef225 100755..100644 --- a/web/static/images/emoji/ok_woman.png +++ b/web/static/images/emoji/ok_woman.png diff --git a/web/static/images/emoji/old_key.png b/web/static/images/emoji/old_key.png Binary files differnew file mode 100644 index 000000000..d153b6888 --- /dev/null +++ b/web/static/images/emoji/old_key.png diff --git a/web/static/images/emoji/older_man.png b/web/static/images/emoji/older_man.png Binary files differindex 149f0cfb8..18fbbdde8 100755..100644 --- a/web/static/images/emoji/older_man.png +++ b/web/static/images/emoji/older_man.png diff --git a/web/static/images/emoji/older_woman.png b/web/static/images/emoji/older_woman.png Binary files differindex f839565f4..0848ebe92 100755..100644 --- a/web/static/images/emoji/older_woman.png +++ b/web/static/images/emoji/older_woman.png diff --git a/web/static/images/emoji/om_symbol.png b/web/static/images/emoji/om_symbol.png Binary files differnew file mode 100644 index 000000000..52cc9f00e --- /dev/null +++ b/web/static/images/emoji/om_symbol.png diff --git a/web/static/images/emoji/on.png b/web/static/images/emoji/on.png Binary files differindex 4cd69a15d..3c369cb1d 100755..100644 --- a/web/static/images/emoji/on.png +++ b/web/static/images/emoji/on.png diff --git a/web/static/images/emoji/oncoming_automobile.png b/web/static/images/emoji/oncoming_automobile.png Binary files differindex cb46de22c..b9b0dafbf 100755..100644 --- a/web/static/images/emoji/oncoming_automobile.png +++ b/web/static/images/emoji/oncoming_automobile.png diff --git a/web/static/images/emoji/oncoming_bus.png b/web/static/images/emoji/oncoming_bus.png Binary files differindex 3695f7623..bac2d85e3 100755..100644 --- a/web/static/images/emoji/oncoming_bus.png +++ b/web/static/images/emoji/oncoming_bus.png diff --git a/web/static/images/emoji/oncoming_police_car.png b/web/static/images/emoji/oncoming_police_car.png Binary files differindex af20e7eff..2ab9c3302 100755..100644 --- a/web/static/images/emoji/oncoming_police_car.png +++ b/web/static/images/emoji/oncoming_police_car.png diff --git a/web/static/images/emoji/oncoming_taxi.png b/web/static/images/emoji/oncoming_taxi.png Binary files differindex f78cf3103..108d49693 100755..100644 --- a/web/static/images/emoji/oncoming_taxi.png +++ b/web/static/images/emoji/oncoming_taxi.png diff --git a/web/static/images/emoji/one.png b/web/static/images/emoji/one.png Binary files differindex 2d1f9f8c4..b10ef8c0c 100755..100644 --- a/web/static/images/emoji/one.png +++ b/web/static/images/emoji/one.png diff --git a/web/static/images/emoji/open_book.png b/web/static/images/emoji/open_book.png Binary files differnew file mode 100644 index 000000000..01c836a7e --- /dev/null +++ b/web/static/images/emoji/open_book.png diff --git a/web/static/images/emoji/open_file_folder.png b/web/static/images/emoji/open_file_folder.png Binary files differindex 2bbbbf5e7..2d48340bf 100755..100644 --- a/web/static/images/emoji/open_file_folder.png +++ b/web/static/images/emoji/open_file_folder.png diff --git a/web/static/images/emoji/open_hands.png b/web/static/images/emoji/open_hands.png Binary files differindex cef9f428b..c8eb0bab5 100755..100644 --- a/web/static/images/emoji/open_hands.png +++ b/web/static/images/emoji/open_hands.png diff --git a/web/static/images/emoji/open_mouth.png b/web/static/images/emoji/open_mouth.png Binary files differindex daf914274..3f9cc3fff 100755..100644 --- a/web/static/images/emoji/open_mouth.png +++ b/web/static/images/emoji/open_mouth.png diff --git a/web/static/images/emoji/ophiuchus.png b/web/static/images/emoji/ophiuchus.png Binary files differindex 4eef715bc..600ad3a3c 100755..100644 --- a/web/static/images/emoji/ophiuchus.png +++ b/web/static/images/emoji/ophiuchus.png diff --git a/web/static/images/emoji/orange_book.png b/web/static/images/emoji/orange_book.png Binary files differindex 49650d59e..8ecfd9c10 100755..100644 --- a/web/static/images/emoji/orange_book.png +++ b/web/static/images/emoji/orange_book.png diff --git a/web/static/images/emoji/outbox_tray.png b/web/static/images/emoji/outbox_tray.png Binary files differindex 7ad15e649..7afec2610 100755..100644 --- a/web/static/images/emoji/outbox_tray.png +++ b/web/static/images/emoji/outbox_tray.png diff --git a/web/static/images/emoji/ox.png b/web/static/images/emoji/ox.png Binary files differindex 8d9819462..e1688630c 100755..100644 --- a/web/static/images/emoji/ox.png +++ b/web/static/images/emoji/ox.png diff --git a/web/static/images/emoji/package.png b/web/static/images/emoji/package.png Binary files differindex 26602af9d..424c4fd19 100755..100644 --- a/web/static/images/emoji/package.png +++ b/web/static/images/emoji/package.png diff --git a/web/static/images/emoji/page_facing_up.png b/web/static/images/emoji/page_facing_up.png Binary files differindex 804c0d739..f3023ba74 100755..100644 --- a/web/static/images/emoji/page_facing_up.png +++ b/web/static/images/emoji/page_facing_up.png diff --git a/web/static/images/emoji/page_with_curl.png b/web/static/images/emoji/page_with_curl.png Binary files differindex 37cb4de50..306b7e4d7 100755..100644 --- a/web/static/images/emoji/page_with_curl.png +++ b/web/static/images/emoji/page_with_curl.png diff --git a/web/static/images/emoji/pager.png b/web/static/images/emoji/pager.png Binary files differindex e3e1fc44e..acfd131a0 100755..100644 --- a/web/static/images/emoji/pager.png +++ b/web/static/images/emoji/pager.png diff --git a/web/static/images/emoji/palm_tree.png b/web/static/images/emoji/palm_tree.png Binary files differindex d13b7c620..b18cffc94 100755..100644 --- a/web/static/images/emoji/palm_tree.png +++ b/web/static/images/emoji/palm_tree.png diff --git a/web/static/images/emoji/panda_face.png b/web/static/images/emoji/panda_face.png Binary files differindex a794fb17f..a1ded2a6c 100755..100644 --- a/web/static/images/emoji/panda_face.png +++ b/web/static/images/emoji/panda_face.png diff --git a/web/static/images/emoji/paperclip.png b/web/static/images/emoji/paperclip.png Binary files differindex 677669a83..e241e1189 100755..100644 --- a/web/static/images/emoji/paperclip.png +++ b/web/static/images/emoji/paperclip.png diff --git a/web/static/images/emoji/parking.png b/web/static/images/emoji/parking.png Binary files differindex c24af81cc..340033226 100755..100644 --- a/web/static/images/emoji/parking.png +++ b/web/static/images/emoji/parking.png diff --git a/web/static/images/emoji/part_alternation_mark.png b/web/static/images/emoji/part_alternation_mark.png Binary files differindex 1e5855f8d..d39063ed9 100755..100644 --- a/web/static/images/emoji/part_alternation_mark.png +++ b/web/static/images/emoji/part_alternation_mark.png diff --git a/web/static/images/emoji/partly_sunny.png b/web/static/images/emoji/partly_sunny.png Binary files differindex b3f5bcfdd..a5c8d31b8 100755..100644 --- a/web/static/images/emoji/partly_sunny.png +++ b/web/static/images/emoji/partly_sunny.png diff --git a/web/static/images/emoji/passenger_ship.png b/web/static/images/emoji/passenger_ship.png Binary files differnew file mode 100644 index 000000000..512cb1200 --- /dev/null +++ b/web/static/images/emoji/passenger_ship.png diff --git a/web/static/images/emoji/passport_control.png b/web/static/images/emoji/passport_control.png Binary files differindex 675b76d37..51359c754 100755..100644 --- a/web/static/images/emoji/passport_control.png +++ b/web/static/images/emoji/passport_control.png diff --git a/web/static/images/emoji/paw_prints.png b/web/static/images/emoji/paw_prints.png Binary files differindex 89b9fec9e..b36eba864 100755..100644 --- a/web/static/images/emoji/paw_prints.png +++ b/web/static/images/emoji/paw_prints.png diff --git a/web/static/images/emoji/peach.png b/web/static/images/emoji/peach.png Binary files differindex ee2139ecb..24409997d 100755..100644 --- a/web/static/images/emoji/peach.png +++ b/web/static/images/emoji/peach.png diff --git a/web/static/images/emoji/pear.png b/web/static/images/emoji/pear.png Binary files differindex f24aca8c0..20b63b461 100755..100644 --- a/web/static/images/emoji/pear.png +++ b/web/static/images/emoji/pear.png diff --git a/web/static/images/emoji/pencil.png b/web/static/images/emoji/pencil.png Binary files differindex fc97ddbc9..61e5a08e6 100755..100644 --- a/web/static/images/emoji/pencil.png +++ b/web/static/images/emoji/pencil.png diff --git a/web/static/images/emoji/pencil2.png b/web/static/images/emoji/pencil2.png Binary files differindex 64c2d9b79..693ee8429 100755..100644 --- a/web/static/images/emoji/pencil2.png +++ b/web/static/images/emoji/pencil2.png diff --git a/web/static/images/emoji/penguin.png b/web/static/images/emoji/penguin.png Binary files differindex d8edbcb8f..1789bf222 100755..100644 --- a/web/static/images/emoji/penguin.png +++ b/web/static/images/emoji/penguin.png diff --git a/web/static/images/emoji/pensive.png b/web/static/images/emoji/pensive.png Binary files differindex 4159f3c42..ac55cb0f6 100755..100644 --- a/web/static/images/emoji/pensive.png +++ b/web/static/images/emoji/pensive.png diff --git a/web/static/images/emoji/performing_arts.png b/web/static/images/emoji/performing_arts.png Binary files differindex 899fbe5a7..97a5bb7fe 100755..100644 --- a/web/static/images/emoji/performing_arts.png +++ b/web/static/images/emoji/performing_arts.png diff --git a/web/static/images/emoji/persevere.png b/web/static/images/emoji/persevere.png Binary files differindex f99f6da47..ba1550418 100755..100644 --- a/web/static/images/emoji/persevere.png +++ b/web/static/images/emoji/persevere.png diff --git a/web/static/images/emoji/person_frowning.png b/web/static/images/emoji/person_frowning.png Binary files differindex 6f34d5e15..81dbb96cd 100755..100644 --- a/web/static/images/emoji/person_frowning.png +++ b/web/static/images/emoji/person_frowning.png diff --git a/web/static/images/emoji/person_with_blond_hair.png b/web/static/images/emoji/person_with_blond_hair.png Binary files differindex c144301cb..7cd2e8766 100755..100644 --- a/web/static/images/emoji/person_with_blond_hair.png +++ b/web/static/images/emoji/person_with_blond_hair.png diff --git a/web/static/images/emoji/person_with_pouting_face.png b/web/static/images/emoji/person_with_pouting_face.png Binary files differindex c4a95c3b2..466177621 100755..100644 --- a/web/static/images/emoji/person_with_pouting_face.png +++ b/web/static/images/emoji/person_with_pouting_face.png diff --git a/web/static/images/emoji/phone.png b/web/static/images/emoji/phone.png Binary files differindex 87d2559b5..6a14f1bfe 100755..100644 --- a/web/static/images/emoji/phone.png +++ b/web/static/images/emoji/phone.png diff --git a/web/static/images/emoji/pig.png b/web/static/images/emoji/pig.png Binary files differindex f7f273c73..e2ef71cc0 100755..100644 --- a/web/static/images/emoji/pig.png +++ b/web/static/images/emoji/pig.png diff --git a/web/static/images/emoji/pig2.png b/web/static/images/emoji/pig2.png Binary files differindex fec3374d7..de1147954 100755..100644 --- a/web/static/images/emoji/pig2.png +++ b/web/static/images/emoji/pig2.png diff --git a/web/static/images/emoji/pig_nose.png b/web/static/images/emoji/pig_nose.png Binary files differindex 38d612446..a704c5a41 100755..100644 --- a/web/static/images/emoji/pig_nose.png +++ b/web/static/images/emoji/pig_nose.png diff --git a/web/static/images/emoji/pill.png b/web/static/images/emoji/pill.png Binary files differindex cd84a78ff..260e44588 100755..100644 --- a/web/static/images/emoji/pill.png +++ b/web/static/images/emoji/pill.png diff --git a/web/static/images/emoji/pineapple.png b/web/static/images/emoji/pineapple.png Binary files differindex d6f8e2876..b9b9f8827 100755..100644 --- a/web/static/images/emoji/pineapple.png +++ b/web/static/images/emoji/pineapple.png diff --git a/web/static/images/emoji/pisces.png b/web/static/images/emoji/pisces.png Binary files differindex 6db2c3d50..939b88e60 100755..100644 --- a/web/static/images/emoji/pisces.png +++ b/web/static/images/emoji/pisces.png diff --git a/web/static/images/emoji/pizza.png b/web/static/images/emoji/pizza.png Binary files differindex 460367d02..ae1ef6266 100755..100644 --- a/web/static/images/emoji/pizza.png +++ b/web/static/images/emoji/pizza.png diff --git a/web/static/images/emoji/plus1.png b/web/static/images/emoji/plus1.png Binary files differdeleted file mode 100755 index 81786c1d8..000000000 --- a/web/static/images/emoji/plus1.png +++ /dev/null diff --git a/web/static/images/emoji/point_down.png b/web/static/images/emoji/point_down.png Binary files differindex 658c6d918..7eeae2d5d 100755..100644 --- a/web/static/images/emoji/point_down.png +++ b/web/static/images/emoji/point_down.png diff --git a/web/static/images/emoji/point_left.png b/web/static/images/emoji/point_left.png Binary files differindex 38a99b43f..4a8f90556 100755..100644 --- a/web/static/images/emoji/point_left.png +++ b/web/static/images/emoji/point_left.png diff --git a/web/static/images/emoji/point_right.png b/web/static/images/emoji/point_right.png Binary files differindex 6f9f029a4..b2e387878 100755..100644 --- a/web/static/images/emoji/point_right.png +++ b/web/static/images/emoji/point_right.png diff --git a/web/static/images/emoji/point_up.png b/web/static/images/emoji/point_up.png Binary files differindex 01896e214..387fe59e2 100755..100644 --- a/web/static/images/emoji/point_up.png +++ b/web/static/images/emoji/point_up.png diff --git a/web/static/images/emoji/point_up_2.png b/web/static/images/emoji/point_up_2.png Binary files differindex 1cfe73672..85b802a99 100755..100644 --- a/web/static/images/emoji/point_up_2.png +++ b/web/static/images/emoji/point_up_2.png diff --git a/web/static/images/emoji/police_car.png b/web/static/images/emoji/police_car.png Binary files differindex b8f17275e..4281ed3bb 100755..100644 --- a/web/static/images/emoji/police_car.png +++ b/web/static/images/emoji/police_car.png diff --git a/web/static/images/emoji/poodle.png b/web/static/images/emoji/poodle.png Binary files differindex adac80bd9..a69f6388d 100755..100644 --- a/web/static/images/emoji/poodle.png +++ b/web/static/images/emoji/poodle.png diff --git a/web/static/images/emoji/poop.png b/web/static/images/emoji/poop.png Binary files differindex 73a4dc840..0c237a788 100755..100644 --- a/web/static/images/emoji/poop.png +++ b/web/static/images/emoji/poop.png diff --git a/web/static/images/emoji/post_office.png b/web/static/images/emoji/post_office.png Binary files differindex 43b59e30e..f819dac89 100755..100644 --- a/web/static/images/emoji/post_office.png +++ b/web/static/images/emoji/post_office.png diff --git a/web/static/images/emoji/postal_horn.png b/web/static/images/emoji/postal_horn.png Binary files differindex 13a151418..2313eeb45 100755..100644 --- a/web/static/images/emoji/postal_horn.png +++ b/web/static/images/emoji/postal_horn.png diff --git a/web/static/images/emoji/postbox.png b/web/static/images/emoji/postbox.png Binary files differindex ce04b7008..1633e892c 100755..100644 --- a/web/static/images/emoji/postbox.png +++ b/web/static/images/emoji/postbox.png diff --git a/web/static/images/emoji/potable_water.png b/web/static/images/emoji/potable_water.png Binary files differindex e9fd56079..9fd0e87e9 100755..100644 --- a/web/static/images/emoji/potable_water.png +++ b/web/static/images/emoji/potable_water.png diff --git a/web/static/images/emoji/pouch.png b/web/static/images/emoji/pouch.png Binary files differindex dc35ae8e5..d8e54dd7c 100755..100644 --- a/web/static/images/emoji/pouch.png +++ b/web/static/images/emoji/pouch.png diff --git a/web/static/images/emoji/poultry_leg.png b/web/static/images/emoji/poultry_leg.png Binary files differindex 43ad85965..eafba9a3e 100755..100644 --- a/web/static/images/emoji/poultry_leg.png +++ b/web/static/images/emoji/poultry_leg.png diff --git a/web/static/images/emoji/pound.png b/web/static/images/emoji/pound.png Binary files differindex f8be91d7a..555e0823f 100755..100644 --- a/web/static/images/emoji/pound.png +++ b/web/static/images/emoji/pound.png diff --git a/web/static/images/emoji/pouting_cat.png b/web/static/images/emoji/pouting_cat.png Binary files differindex 4325fd48d..a001bcfa7 100755..100644 --- a/web/static/images/emoji/pouting_cat.png +++ b/web/static/images/emoji/pouting_cat.png diff --git a/web/static/images/emoji/pray.png b/web/static/images/emoji/pray.png Binary files differindex f86c992d5..47a5f03b2 100755..100644 --- a/web/static/images/emoji/pray.png +++ b/web/static/images/emoji/pray.png diff --git a/web/static/images/emoji/princess.png b/web/static/images/emoji/princess.png Binary files differindex 1ebb2ce9b..a8b0ff903 100755..100644 --- a/web/static/images/emoji/princess.png +++ b/web/static/images/emoji/princess.png diff --git a/web/static/images/emoji/printer.png b/web/static/images/emoji/printer.png Binary files differnew file mode 100644 index 000000000..8d6002d7b --- /dev/null +++ b/web/static/images/emoji/printer.png diff --git a/web/static/images/emoji/punch.png b/web/static/images/emoji/punch.png Binary files differindex 277047b7c..7d10b3eda 100755..100644 --- a/web/static/images/emoji/punch.png +++ b/web/static/images/emoji/punch.png diff --git a/web/static/images/emoji/purple_heart.png b/web/static/images/emoji/purple_heart.png Binary files differindex d5f875043..97bb564a1 100755..100644 --- a/web/static/images/emoji/purple_heart.png +++ b/web/static/images/emoji/purple_heart.png diff --git a/web/static/images/emoji/purse.png b/web/static/images/emoji/purse.png Binary files differindex 8f06a2b93..da09a41a3 100755..100644 --- a/web/static/images/emoji/purse.png +++ b/web/static/images/emoji/purse.png diff --git a/web/static/images/emoji/pushpin.png b/web/static/images/emoji/pushpin.png Binary files differindex 540c4ecb8..557ac45f0 100755..100644 --- a/web/static/images/emoji/pushpin.png +++ b/web/static/images/emoji/pushpin.png diff --git a/web/static/images/emoji/put_litter_in_its_place.png b/web/static/images/emoji/put_litter_in_its_place.png Binary files differindex c2e350c2d..e1c1deb24 100755..100644 --- a/web/static/images/emoji/put_litter_in_its_place.png +++ b/web/static/images/emoji/put_litter_in_its_place.png diff --git a/web/static/images/emoji/question.png b/web/static/images/emoji/question.png Binary files differindex 38cedf560..9e84758ee 100755..100644 --- a/web/static/images/emoji/question.png +++ b/web/static/images/emoji/question.png diff --git a/web/static/images/emoji/rabbit.png b/web/static/images/emoji/rabbit.png Binary files differindex 5cb3ef6f0..e6203c052 100755..100644 --- a/web/static/images/emoji/rabbit.png +++ b/web/static/images/emoji/rabbit.png diff --git a/web/static/images/emoji/rabbit2.png b/web/static/images/emoji/rabbit2.png Binary files differindex a9fd24dc1..ab2fae0fc 100755..100644 --- a/web/static/images/emoji/rabbit2.png +++ b/web/static/images/emoji/rabbit2.png diff --git a/web/static/images/emoji/racehorse.png b/web/static/images/emoji/racehorse.png Binary files differindex 4d09c64de..fadf8f2bf 100755..100644 --- a/web/static/images/emoji/racehorse.png +++ b/web/static/images/emoji/racehorse.png diff --git a/web/static/images/emoji/racing_car.png b/web/static/images/emoji/racing_car.png Binary files differnew file mode 100644 index 000000000..0f76828f6 --- /dev/null +++ b/web/static/images/emoji/racing_car.png diff --git a/web/static/images/emoji/racing_motorcycle.png b/web/static/images/emoji/racing_motorcycle.png Binary files differnew file mode 100644 index 000000000..8dcffc8f9 --- /dev/null +++ b/web/static/images/emoji/racing_motorcycle.png diff --git a/web/static/images/emoji/radio.png b/web/static/images/emoji/radio.png Binary files differindex ea589efe3..e75747faa 100755..100644 --- a/web/static/images/emoji/radio.png +++ b/web/static/images/emoji/radio.png diff --git a/web/static/images/emoji/radio_button.png b/web/static/images/emoji/radio_button.png Binary files differindex 63755eec2..bbc36031e 100755..100644 --- a/web/static/images/emoji/radio_button.png +++ b/web/static/images/emoji/radio_button.png diff --git a/web/static/images/emoji/rage.png b/web/static/images/emoji/rage.png Binary files differindex c65ddff55..c7f2df28c 100755..100644 --- a/web/static/images/emoji/rage.png +++ b/web/static/images/emoji/rage.png diff --git a/web/static/images/emoji/rage1.png b/web/static/images/emoji/rage1.png Binary files differindex 1506ba403..1506ba403 100755..100644 --- a/web/static/images/emoji/rage1.png +++ b/web/static/images/emoji/rage1.png diff --git a/web/static/images/emoji/rage2.png b/web/static/images/emoji/rage2.png Binary files differindex f792e063b..f792e063b 100755..100644 --- a/web/static/images/emoji/rage2.png +++ b/web/static/images/emoji/rage2.png diff --git a/web/static/images/emoji/rage3.png b/web/static/images/emoji/rage3.png Binary files differindex 58764cbcb..58764cbcb 100755..100644 --- a/web/static/images/emoji/rage3.png +++ b/web/static/images/emoji/rage3.png diff --git a/web/static/images/emoji/rage4.png b/web/static/images/emoji/rage4.png Binary files differindex c726c94a2..c726c94a2 100755..100644 --- a/web/static/images/emoji/rage4.png +++ b/web/static/images/emoji/rage4.png diff --git a/web/static/images/emoji/railway_car.png b/web/static/images/emoji/railway_car.png Binary files differindex 22361158f..82d808866 100755..100644 --- a/web/static/images/emoji/railway_car.png +++ b/web/static/images/emoji/railway_car.png diff --git a/web/static/images/emoji/railway_track.png b/web/static/images/emoji/railway_track.png Binary files differnew file mode 100644 index 000000000..322831040 --- /dev/null +++ b/web/static/images/emoji/railway_track.png diff --git a/web/static/images/emoji/rain_cloud.png b/web/static/images/emoji/rain_cloud.png Binary files differnew file mode 100644 index 000000000..507e1df08 --- /dev/null +++ b/web/static/images/emoji/rain_cloud.png diff --git a/web/static/images/emoji/rainbow.png b/web/static/images/emoji/rainbow.png Binary files differindex 6b1faa037..1d92301f9 100755..100644 --- a/web/static/images/emoji/rainbow.png +++ b/web/static/images/emoji/rainbow.png diff --git a/web/static/images/emoji/raised_hand.png b/web/static/images/emoji/raised_hand.png Binary files differindex 5e45c25a5..89de966a3 100755..100644 --- a/web/static/images/emoji/raised_hand.png +++ b/web/static/images/emoji/raised_hand.png diff --git a/web/static/images/emoji/raised_hand_with_fingers_splayed.png b/web/static/images/emoji/raised_hand_with_fingers_splayed.png Binary files differnew file mode 100644 index 000000000..09046e201 --- /dev/null +++ b/web/static/images/emoji/raised_hand_with_fingers_splayed.png diff --git a/web/static/images/emoji/raised_hands.png b/web/static/images/emoji/raised_hands.png Binary files differindex e03142bdc..8dbc25f83 100755..100644 --- a/web/static/images/emoji/raised_hands.png +++ b/web/static/images/emoji/raised_hands.png diff --git a/web/static/images/emoji/raising_hand.png b/web/static/images/emoji/raising_hand.png Binary files differindex e1741a40e..e9d54836a 100755..100644 --- a/web/static/images/emoji/raising_hand.png +++ b/web/static/images/emoji/raising_hand.png diff --git a/web/static/images/emoji/ram.png b/web/static/images/emoji/ram.png Binary files differindex 5ea7bfbc0..17af1b9a5 100755..100644 --- a/web/static/images/emoji/ram.png +++ b/web/static/images/emoji/ram.png diff --git a/web/static/images/emoji/ramen.png b/web/static/images/emoji/ramen.png Binary files differindex 78dc7d537..787827566 100755..100644 --- a/web/static/images/emoji/ramen.png +++ b/web/static/images/emoji/ramen.png diff --git a/web/static/images/emoji/rat.png b/web/static/images/emoji/rat.png Binary files differindex fa7dd401c..58c2d79d8 100755..100644 --- a/web/static/images/emoji/rat.png +++ b/web/static/images/emoji/rat.png diff --git a/web/static/images/emoji/recycle.png b/web/static/images/emoji/recycle.png Binary files differindex 99104c0e9..181391e86 100755..100644 --- a/web/static/images/emoji/recycle.png +++ b/web/static/images/emoji/recycle.png diff --git a/web/static/images/emoji/red_car.png b/web/static/images/emoji/red_car.png Binary files differindex d70a2f062..e266bd21e 100755..100644 --- a/web/static/images/emoji/red_car.png +++ b/web/static/images/emoji/red_car.png diff --git a/web/static/images/emoji/red_circle.png b/web/static/images/emoji/red_circle.png Binary files differindex b391289b2..bd50ae446 100755..100644 --- a/web/static/images/emoji/red_circle.png +++ b/web/static/images/emoji/red_circle.png diff --git a/web/static/images/emoji/registered.png b/web/static/images/emoji/registered.png Binary files differindex 31c68a80b..68d445daf 100755..100644 --- a/web/static/images/emoji/registered.png +++ b/web/static/images/emoji/registered.png diff --git a/web/static/images/emoji/relaxed.png b/web/static/images/emoji/relaxed.png Binary files differindex bbab82d3b..ea6e93a65 100755..100644 --- a/web/static/images/emoji/relaxed.png +++ b/web/static/images/emoji/relaxed.png diff --git a/web/static/images/emoji/relieved.png b/web/static/images/emoji/relieved.png Binary files differindex fe5629f43..3cb7aeced 100755..100644 --- a/web/static/images/emoji/relieved.png +++ b/web/static/images/emoji/relieved.png diff --git a/web/static/images/emoji/reminder_ribbon.png b/web/static/images/emoji/reminder_ribbon.png Binary files differnew file mode 100644 index 000000000..8104604b6 --- /dev/null +++ b/web/static/images/emoji/reminder_ribbon.png diff --git a/web/static/images/emoji/repeat.png b/web/static/images/emoji/repeat.png Binary files differindex 80113b692..8420b4f5d 100755..100644 --- a/web/static/images/emoji/repeat.png +++ b/web/static/images/emoji/repeat.png diff --git a/web/static/images/emoji/repeat_one.png b/web/static/images/emoji/repeat_one.png Binary files differindex 3c47bcc1f..2dacec71a 100755..100644 --- a/web/static/images/emoji/repeat_one.png +++ b/web/static/images/emoji/repeat_one.png diff --git a/web/static/images/emoji/restroom.png b/web/static/images/emoji/restroom.png Binary files differindex d6c111b29..76b3c2833 100755..100644 --- a/web/static/images/emoji/restroom.png +++ b/web/static/images/emoji/restroom.png diff --git a/web/static/images/emoji/reversed_hand_with_middle_finger_extended.png b/web/static/images/emoji/reversed_hand_with_middle_finger_extended.png Binary files differnew file mode 100644 index 000000000..c4e5d4a91 --- /dev/null +++ b/web/static/images/emoji/reversed_hand_with_middle_finger_extended.png diff --git a/web/static/images/emoji/revolving_hearts.png b/web/static/images/emoji/revolving_hearts.png Binary files differindex ea3317c47..0602d03c1 100755..100644 --- a/web/static/images/emoji/revolving_hearts.png +++ b/web/static/images/emoji/revolving_hearts.png diff --git a/web/static/images/emoji/rewind.png b/web/static/images/emoji/rewind.png Binary files differindex 26289dc3d..cd693f938 100755..100644 --- a/web/static/images/emoji/rewind.png +++ b/web/static/images/emoji/rewind.png diff --git a/web/static/images/emoji/ribbon.png b/web/static/images/emoji/ribbon.png Binary files differindex 63ee5ba5a..ea7ae1d76 100755..100644 --- a/web/static/images/emoji/ribbon.png +++ b/web/static/images/emoji/ribbon.png diff --git a/web/static/images/emoji/rice.png b/web/static/images/emoji/rice.png Binary files differindex 1fd22027b..8a9076f8a 100755..100644 --- a/web/static/images/emoji/rice.png +++ b/web/static/images/emoji/rice.png diff --git a/web/static/images/emoji/rice_ball.png b/web/static/images/emoji/rice_ball.png Binary files differindex ade7c45d3..4a24a91e2 100755..100644 --- a/web/static/images/emoji/rice_ball.png +++ b/web/static/images/emoji/rice_ball.png diff --git a/web/static/images/emoji/rice_cracker.png b/web/static/images/emoji/rice_cracker.png Binary files differindex 954c901e9..83382b6cb 100755..100644 --- a/web/static/images/emoji/rice_cracker.png +++ b/web/static/images/emoji/rice_cracker.png diff --git a/web/static/images/emoji/rice_scene.png b/web/static/images/emoji/rice_scene.png Binary files differindex 14361988d..8ce954451 100755..100644 --- a/web/static/images/emoji/rice_scene.png +++ b/web/static/images/emoji/rice_scene.png diff --git a/web/static/images/emoji/right_anger_bubble.png b/web/static/images/emoji/right_anger_bubble.png Binary files differnew file mode 100644 index 000000000..8e25fa6b4 --- /dev/null +++ b/web/static/images/emoji/right_anger_bubble.png diff --git a/web/static/images/emoji/ring.png b/web/static/images/emoji/ring.png Binary files differindex 8a57fd68b..f033d7941 100755..100644 --- a/web/static/images/emoji/ring.png +++ b/web/static/images/emoji/ring.png diff --git a/web/static/images/emoji/rocket.png b/web/static/images/emoji/rocket.png Binary files differindex 783078d37..0ca6d5fed 100755..100644 --- a/web/static/images/emoji/rocket.png +++ b/web/static/images/emoji/rocket.png diff --git a/web/static/images/emoji/rolled_up_newspaper.png b/web/static/images/emoji/rolled_up_newspaper.png Binary files differnew file mode 100644 index 000000000..4254eb5f2 --- /dev/null +++ b/web/static/images/emoji/rolled_up_newspaper.png diff --git a/web/static/images/emoji/roller_coaster.png b/web/static/images/emoji/roller_coaster.png Binary files differindex 9180b9861..0c506765e 100755..100644 --- a/web/static/images/emoji/roller_coaster.png +++ b/web/static/images/emoji/roller_coaster.png diff --git a/web/static/images/emoji/rooster.png b/web/static/images/emoji/rooster.png Binary files differindex fab23ad36..798542a0e 100755..100644 --- a/web/static/images/emoji/rooster.png +++ b/web/static/images/emoji/rooster.png diff --git a/web/static/images/emoji/rose.png b/web/static/images/emoji/rose.png Binary files differindex 3479fbcbb..2a9d77598 100755..100644 --- a/web/static/images/emoji/rose.png +++ b/web/static/images/emoji/rose.png diff --git a/web/static/images/emoji/rosette.png b/web/static/images/emoji/rosette.png Binary files differnew file mode 100644 index 000000000..8312eb177 --- /dev/null +++ b/web/static/images/emoji/rosette.png diff --git a/web/static/images/emoji/rotating_light.png b/web/static/images/emoji/rotating_light.png Binary files differindex 6cf4a775e..72095645c 100755..100644 --- a/web/static/images/emoji/rotating_light.png +++ b/web/static/images/emoji/rotating_light.png diff --git a/web/static/images/emoji/round_pushpin.png b/web/static/images/emoji/round_pushpin.png Binary files differindex e498e92cf..b16e5c41a 100755..100644 --- a/web/static/images/emoji/round_pushpin.png +++ b/web/static/images/emoji/round_pushpin.png diff --git a/web/static/images/emoji/rowboat.png b/web/static/images/emoji/rowboat.png Binary files differindex e370d0fb1..3a16b632b 100755..100644 --- a/web/static/images/emoji/rowboat.png +++ b/web/static/images/emoji/rowboat.png diff --git a/web/static/images/emoji/ru.png b/web/static/images/emoji/ru.png Binary files differindex 55fcf3549..4a65f219f 100755..100644 --- a/web/static/images/emoji/ru.png +++ b/web/static/images/emoji/ru.png diff --git a/web/static/images/emoji/rugby_football.png b/web/static/images/emoji/rugby_football.png Binary files differindex f8db67d70..3f72e529a 100755..100644 --- a/web/static/images/emoji/rugby_football.png +++ b/web/static/images/emoji/rugby_football.png diff --git a/web/static/images/emoji/runner.png b/web/static/images/emoji/runner.png Binary files differindex cb0042962..8dcc38400 100755..100644 --- a/web/static/images/emoji/runner.png +++ b/web/static/images/emoji/runner.png diff --git a/web/static/images/emoji/running.png b/web/static/images/emoji/running.png Binary files differindex cb0042962..8dcc38400 100755..100644 --- a/web/static/images/emoji/running.png +++ b/web/static/images/emoji/running.png diff --git a/web/static/images/emoji/running_shirt_with_sash.png b/web/static/images/emoji/running_shirt_with_sash.png Binary files differindex 0d68bba09..e49632dad 100755..100644 --- a/web/static/images/emoji/running_shirt_with_sash.png +++ b/web/static/images/emoji/running_shirt_with_sash.png diff --git a/web/static/images/emoji/sa.png b/web/static/images/emoji/sa.png Binary files differindex 387f098b9..c6dafece9 100755..100644 --- a/web/static/images/emoji/sa.png +++ b/web/static/images/emoji/sa.png diff --git a/web/static/images/emoji/sagittarius.png b/web/static/images/emoji/sagittarius.png Binary files differindex 8b5435baa..b5d55c10f 100755..100644 --- a/web/static/images/emoji/sagittarius.png +++ b/web/static/images/emoji/sagittarius.png diff --git a/web/static/images/emoji/sailboat.png b/web/static/images/emoji/sailboat.png Binary files differindex ff656dc62..9e862f831 100755..100644 --- a/web/static/images/emoji/sailboat.png +++ b/web/static/images/emoji/sailboat.png diff --git a/web/static/images/emoji/sake.png b/web/static/images/emoji/sake.png Binary files differindex 1f69907e5..40a158bfe 100755..100644 --- a/web/static/images/emoji/sake.png +++ b/web/static/images/emoji/sake.png diff --git a/web/static/images/emoji/sandal.png b/web/static/images/emoji/sandal.png Binary files differindex 0bb3f663f..1db7005bb 100755..100644 --- a/web/static/images/emoji/sandal.png +++ b/web/static/images/emoji/sandal.png diff --git a/web/static/images/emoji/santa.png b/web/static/images/emoji/santa.png Binary files differindex a2240c07e..29d63fd91 100755..100644 --- a/web/static/images/emoji/santa.png +++ b/web/static/images/emoji/santa.png diff --git a/web/static/images/emoji/satellite.png b/web/static/images/emoji/satellite.png Binary files differindex 3481cc2ef..7411b9235 100755..100644 --- a/web/static/images/emoji/satellite.png +++ b/web/static/images/emoji/satellite.png diff --git a/web/static/images/emoji/satisfied.png b/web/static/images/emoji/satisfied.png Binary files differindex 11c91eb22..d7e70b1a4 100755..100644 --- a/web/static/images/emoji/satisfied.png +++ b/web/static/images/emoji/satisfied.png diff --git a/web/static/images/emoji/saxophone.png b/web/static/images/emoji/saxophone.png Binary files differindex 011559a76..63446652f 100755..100644 --- a/web/static/images/emoji/saxophone.png +++ b/web/static/images/emoji/saxophone.png diff --git a/web/static/images/emoji/school.png b/web/static/images/emoji/school.png Binary files differindex afd922bf1..f8e0814e0 100755..100644 --- a/web/static/images/emoji/school.png +++ b/web/static/images/emoji/school.png diff --git a/web/static/images/emoji/school_satchel.png b/web/static/images/emoji/school_satchel.png Binary files differindex edfb19aec..f9bb6c1aa 100755..100644 --- a/web/static/images/emoji/school_satchel.png +++ b/web/static/images/emoji/school_satchel.png diff --git a/web/static/images/emoji/scissors.png b/web/static/images/emoji/scissors.png Binary files differindex d99b8aea0..0a2d1b07f 100755..100644 --- a/web/static/images/emoji/scissors.png +++ b/web/static/images/emoji/scissors.png diff --git a/web/static/images/emoji/scorpius.png b/web/static/images/emoji/scorpius.png Binary files differindex 67fcea165..f903e7665 100755..100644 --- a/web/static/images/emoji/scorpius.png +++ b/web/static/images/emoji/scorpius.png diff --git a/web/static/images/emoji/scream.png b/web/static/images/emoji/scream.png Binary files differindex 9e93c885d..ea77d3e6b 100755..100644 --- a/web/static/images/emoji/scream.png +++ b/web/static/images/emoji/scream.png diff --git a/web/static/images/emoji/scream_cat.png b/web/static/images/emoji/scream_cat.png Binary files differindex d94cd34ff..a4e67e97d 100755..100644 --- a/web/static/images/emoji/scream_cat.png +++ b/web/static/images/emoji/scream_cat.png diff --git a/web/static/images/emoji/scroll.png b/web/static/images/emoji/scroll.png Binary files differindex c5a10e6b8..c8ee30803 100755..100644 --- a/web/static/images/emoji/scroll.png +++ b/web/static/images/emoji/scroll.png diff --git a/web/static/images/emoji/seat.png b/web/static/images/emoji/seat.png Binary files differindex d1cb864b4..1ec8166b6 100755..100644 --- a/web/static/images/emoji/seat.png +++ b/web/static/images/emoji/seat.png diff --git a/web/static/images/emoji/secret.png b/web/static/images/emoji/secret.png Binary files differindex 82e383a60..5ff746bec 100755..100644 --- a/web/static/images/emoji/secret.png +++ b/web/static/images/emoji/secret.png diff --git a/web/static/images/emoji/see_no_evil.png b/web/static/images/emoji/see_no_evil.png Binary files differindex 0890a6222..df1fb6607 100755..100644 --- a/web/static/images/emoji/see_no_evil.png +++ b/web/static/images/emoji/see_no_evil.png diff --git a/web/static/images/emoji/seedling.png b/web/static/images/emoji/seedling.png Binary files differindex 2ab079310..eae79d274 100755..100644 --- a/web/static/images/emoji/seedling.png +++ b/web/static/images/emoji/seedling.png diff --git a/web/static/images/emoji/seven.png b/web/static/images/emoji/seven.png Binary files differindex 354e89ae7..33151fdba 100755..100644 --- a/web/static/images/emoji/seven.png +++ b/web/static/images/emoji/seven.png diff --git a/web/static/images/emoji/shaved_ice.png b/web/static/images/emoji/shaved_ice.png Binary files differindex 0d0b382c2..a14f0f4ec 100755..100644 --- a/web/static/images/emoji/shaved_ice.png +++ b/web/static/images/emoji/shaved_ice.png diff --git a/web/static/images/emoji/sheep.png b/web/static/images/emoji/sheep.png Binary files differindex c7277d289..e47d6eda8 100755..100644 --- a/web/static/images/emoji/sheep.png +++ b/web/static/images/emoji/sheep.png diff --git a/web/static/images/emoji/shell.png b/web/static/images/emoji/shell.png Binary files differindex 3145b5649..01bc086fa 100755..100644 --- a/web/static/images/emoji/shell.png +++ b/web/static/images/emoji/shell.png diff --git a/web/static/images/emoji/shield.png b/web/static/images/emoji/shield.png Binary files differnew file mode 100644 index 000000000..30a63a8bf --- /dev/null +++ b/web/static/images/emoji/shield.png diff --git a/web/static/images/emoji/ship.png b/web/static/images/emoji/ship.png Binary files differindex 5d2d8b602..08465890d 100755..100644 --- a/web/static/images/emoji/ship.png +++ b/web/static/images/emoji/ship.png diff --git a/web/static/images/emoji/shipit.png b/web/static/images/emoji/shipit.png Binary files differindex a58a47f62..a58a47f62 100755..100644 --- a/web/static/images/emoji/shipit.png +++ b/web/static/images/emoji/shipit.png diff --git a/web/static/images/emoji/shirt.png b/web/static/images/emoji/shirt.png Binary files differindex 297a6d63e..556efde26 100755..100644 --- a/web/static/images/emoji/shirt.png +++ b/web/static/images/emoji/shirt.png diff --git a/web/static/images/emoji/shit.png b/web/static/images/emoji/shit.png Binary files differindex 73a4dc840..0c237a788 100755..100644 --- a/web/static/images/emoji/shit.png +++ b/web/static/images/emoji/shit.png diff --git a/web/static/images/emoji/shoe.png b/web/static/images/emoji/shoe.png Binary files differindex 45b82e61c..8d8a9feeb 100755..100644 --- a/web/static/images/emoji/shoe.png +++ b/web/static/images/emoji/shoe.png diff --git a/web/static/images/emoji/shopping_bags.png b/web/static/images/emoji/shopping_bags.png Binary files differnew file mode 100644 index 000000000..c4aa0049c --- /dev/null +++ b/web/static/images/emoji/shopping_bags.png diff --git a/web/static/images/emoji/shower.png b/web/static/images/emoji/shower.png Binary files differindex 0d72ab86b..860c4da66 100755..100644 --- a/web/static/images/emoji/shower.png +++ b/web/static/images/emoji/shower.png diff --git a/web/static/images/emoji/signal_strength.png b/web/static/images/emoji/signal_strength.png Binary files differindex a4bd23ebf..21956bb51 100755..100644 --- a/web/static/images/emoji/signal_strength.png +++ b/web/static/images/emoji/signal_strength.png diff --git a/web/static/images/emoji/six.png b/web/static/images/emoji/six.png Binary files differindex 568805565..cd0b30fd2 100755..100644 --- a/web/static/images/emoji/six.png +++ b/web/static/images/emoji/six.png diff --git a/web/static/images/emoji/six_pointed_star.png b/web/static/images/emoji/six_pointed_star.png Binary files differindex c11af14c8..3b590a628 100755..100644 --- a/web/static/images/emoji/six_pointed_star.png +++ b/web/static/images/emoji/six_pointed_star.png diff --git a/web/static/images/emoji/ski.png b/web/static/images/emoji/ski.png Binary files differindex 98f5cb0f4..ac8151619 100755..100644 --- a/web/static/images/emoji/ski.png +++ b/web/static/images/emoji/ski.png diff --git a/web/static/images/emoji/skull.png b/web/static/images/emoji/skull.png Binary files differindex bd4ee3829..ee66d7147 100755..100644 --- a/web/static/images/emoji/skull.png +++ b/web/static/images/emoji/skull.png diff --git a/web/static/images/emoji/sleeping.png b/web/static/images/emoji/sleeping.png Binary files differindex 093b85236..04ed2ea52 100755..100644 --- a/web/static/images/emoji/sleeping.png +++ b/web/static/images/emoji/sleeping.png diff --git a/web/static/images/emoji/sleeping_accommodation.png b/web/static/images/emoji/sleeping_accommodation.png Binary files differnew file mode 100644 index 000000000..4d232c9bb --- /dev/null +++ b/web/static/images/emoji/sleeping_accommodation.png diff --git a/web/static/images/emoji/sleepy.png b/web/static/images/emoji/sleepy.png Binary files differindex df4f55efd..5269b493c 100755..100644 --- a/web/static/images/emoji/sleepy.png +++ b/web/static/images/emoji/sleepy.png diff --git a/web/static/images/emoji/sleuth_or_spy.png b/web/static/images/emoji/sleuth_or_spy.png Binary files differnew file mode 100644 index 000000000..9ee45b37b --- /dev/null +++ b/web/static/images/emoji/sleuth_or_spy.png diff --git a/web/static/images/emoji/slightly_frowning_face.png b/web/static/images/emoji/slightly_frowning_face.png Binary files differnew file mode 100644 index 000000000..55e16c1cf --- /dev/null +++ b/web/static/images/emoji/slightly_frowning_face.png diff --git a/web/static/images/emoji/slightly_smiling_face.png b/web/static/images/emoji/slightly_smiling_face.png Binary files differnew file mode 100644 index 000000000..1bb673b36 --- /dev/null +++ b/web/static/images/emoji/slightly_smiling_face.png diff --git a/web/static/images/emoji/slot_machine.png b/web/static/images/emoji/slot_machine.png Binary files differindex 26f114830..81db7b1c0 100755..100644 --- a/web/static/images/emoji/slot_machine.png +++ b/web/static/images/emoji/slot_machine.png diff --git a/web/static/images/emoji/small_airplane.png b/web/static/images/emoji/small_airplane.png Binary files differnew file mode 100644 index 000000000..bd369a205 --- /dev/null +++ b/web/static/images/emoji/small_airplane.png diff --git a/web/static/images/emoji/small_blue_diamond.png b/web/static/images/emoji/small_blue_diamond.png Binary files differindex 8cd49205f..9b8ded84a 100755..100644 --- a/web/static/images/emoji/small_blue_diamond.png +++ b/web/static/images/emoji/small_blue_diamond.png diff --git a/web/static/images/emoji/small_orange_diamond.png b/web/static/images/emoji/small_orange_diamond.png Binary files differindex 04941d37b..64a03b216 100755..100644 --- a/web/static/images/emoji/small_orange_diamond.png +++ b/web/static/images/emoji/small_orange_diamond.png diff --git a/web/static/images/emoji/small_red_triangle.png b/web/static/images/emoji/small_red_triangle.png Binary files differindex 8c4428da8..b321f2a49 100755..100644 --- a/web/static/images/emoji/small_red_triangle.png +++ b/web/static/images/emoji/small_red_triangle.png diff --git a/web/static/images/emoji/small_red_triangle_down.png b/web/static/images/emoji/small_red_triangle_down.png Binary files differindex 94832f060..4c9586d24 100755..100644 --- a/web/static/images/emoji/small_red_triangle_down.png +++ b/web/static/images/emoji/small_red_triangle_down.png diff --git a/web/static/images/emoji/smile.png b/web/static/images/emoji/smile.png Binary files differindex 81a839689..63beffb17 100755..100644 --- a/web/static/images/emoji/smile.png +++ b/web/static/images/emoji/smile.png diff --git a/web/static/images/emoji/smile_cat.png b/web/static/images/emoji/smile_cat.png Binary files differindex ad333ba3b..c54e14b53 100755..100644 --- a/web/static/images/emoji/smile_cat.png +++ b/web/static/images/emoji/smile_cat.png diff --git a/web/static/images/emoji/smiley.png b/web/static/images/emoji/smiley.png Binary files differindex 77b581d68..eb281633c 100755..100644 --- a/web/static/images/emoji/smiley.png +++ b/web/static/images/emoji/smiley.png diff --git a/web/static/images/emoji/smiley_cat.png b/web/static/images/emoji/smiley_cat.png Binary files differindex dbf1b0276..93872133e 100755..100644 --- a/web/static/images/emoji/smiley_cat.png +++ b/web/static/images/emoji/smiley_cat.png diff --git a/web/static/images/emoji/smiling_imp.png b/web/static/images/emoji/smiling_imp.png Binary files differindex d90404930..6e36a04e7 100755..100644 --- a/web/static/images/emoji/smiling_imp.png +++ b/web/static/images/emoji/smiling_imp.png diff --git a/web/static/images/emoji/smirk.png b/web/static/images/emoji/smirk.png Binary files differindex bc6e5082c..c7b1ac127 100755..100644 --- a/web/static/images/emoji/smirk.png +++ b/web/static/images/emoji/smirk.png diff --git a/web/static/images/emoji/smirk_cat.png b/web/static/images/emoji/smirk_cat.png Binary files differindex 351565e24..6cb9d069d 100755..100644 --- a/web/static/images/emoji/smirk_cat.png +++ b/web/static/images/emoji/smirk_cat.png diff --git a/web/static/images/emoji/smoking.png b/web/static/images/emoji/smoking.png Binary files differindex 4aad6cbd7..e8b49b893 100755..100644 --- a/web/static/images/emoji/smoking.png +++ b/web/static/images/emoji/smoking.png diff --git a/web/static/images/emoji/snail.png b/web/static/images/emoji/snail.png Binary files differindex e75e69a84..97f67fb2d 100755..100644 --- a/web/static/images/emoji/snail.png +++ b/web/static/images/emoji/snail.png diff --git a/web/static/images/emoji/snake.png b/web/static/images/emoji/snake.png Binary files differindex ef58933e2..dae731e22 100755..100644 --- a/web/static/images/emoji/snake.png +++ b/web/static/images/emoji/snake.png diff --git a/web/static/images/emoji/snow_capped_mountain.png b/web/static/images/emoji/snow_capped_mountain.png Binary files differnew file mode 100644 index 000000000..f9071adec --- /dev/null +++ b/web/static/images/emoji/snow_capped_mountain.png diff --git a/web/static/images/emoji/snow_cloud.png b/web/static/images/emoji/snow_cloud.png Binary files differnew file mode 100644 index 000000000..96baf5b54 --- /dev/null +++ b/web/static/images/emoji/snow_cloud.png diff --git a/web/static/images/emoji/snowboarder.png b/web/static/images/emoji/snowboarder.png Binary files differindex aeda5c8d8..076c48889 100755..100644 --- a/web/static/images/emoji/snowboarder.png +++ b/web/static/images/emoji/snowboarder.png diff --git a/web/static/images/emoji/snowflake.png b/web/static/images/emoji/snowflake.png Binary files differindex 54b68ff4f..743b9fd98 100755..100644 --- a/web/static/images/emoji/snowflake.png +++ b/web/static/images/emoji/snowflake.png diff --git a/web/static/images/emoji/snowman.png b/web/static/images/emoji/snowman.png Binary files differindex a97902e53..5cfd23ec0 100755..100644 --- a/web/static/images/emoji/snowman.png +++ b/web/static/images/emoji/snowman.png diff --git a/web/static/images/emoji/sob.png b/web/static/images/emoji/sob.png Binary files differindex 1561df92e..1339cc6ec 100755..100644 --- a/web/static/images/emoji/sob.png +++ b/web/static/images/emoji/sob.png diff --git a/web/static/images/emoji/soccer.png b/web/static/images/emoji/soccer.png Binary files differindex 1e118b5b1..a5b188cef 100755..100644 --- a/web/static/images/emoji/soccer.png +++ b/web/static/images/emoji/soccer.png diff --git a/web/static/images/emoji/soon.png b/web/static/images/emoji/soon.png Binary files differindex 2cf46df25..c795ce03f 100755..100644 --- a/web/static/images/emoji/soon.png +++ b/web/static/images/emoji/soon.png diff --git a/web/static/images/emoji/sos.png b/web/static/images/emoji/sos.png Binary files differindex e3e16ef73..4af944919 100755..100644 --- a/web/static/images/emoji/sos.png +++ b/web/static/images/emoji/sos.png diff --git a/web/static/images/emoji/sound.png b/web/static/images/emoji/sound.png Binary files differindex 6aa4dbff4..0d7011bcb 100755..100644 --- a/web/static/images/emoji/sound.png +++ b/web/static/images/emoji/sound.png diff --git a/web/static/images/emoji/space_invader.png b/web/static/images/emoji/space_invader.png Binary files differindex 384049167..042bc2ad0 100755..100644 --- a/web/static/images/emoji/space_invader.png +++ b/web/static/images/emoji/space_invader.png diff --git a/web/static/images/emoji/spades.png b/web/static/images/emoji/spades.png Binary files differindex 133a1aba8..1cb4bea46 100755..100644 --- a/web/static/images/emoji/spades.png +++ b/web/static/images/emoji/spades.png diff --git a/web/static/images/emoji/spaghetti.png b/web/static/images/emoji/spaghetti.png Binary files differindex 08de243f5..ff15e877a 100755..100644 --- a/web/static/images/emoji/spaghetti.png +++ b/web/static/images/emoji/spaghetti.png diff --git a/web/static/images/emoji/sparkle.png b/web/static/images/emoji/sparkle.png Binary files differindex 23a68ceb2..cb37090c7 100755..100644 --- a/web/static/images/emoji/sparkle.png +++ b/web/static/images/emoji/sparkle.png diff --git a/web/static/images/emoji/sparkler.png b/web/static/images/emoji/sparkler.png Binary files differindex 4aabd7e0e..968a7172b 100755..100644 --- a/web/static/images/emoji/sparkler.png +++ b/web/static/images/emoji/sparkler.png diff --git a/web/static/images/emoji/sparkles.png b/web/static/images/emoji/sparkles.png Binary files differindex 51307bcfc..f7faa7270 100755..100644 --- a/web/static/images/emoji/sparkles.png +++ b/web/static/images/emoji/sparkles.png diff --git a/web/static/images/emoji/sparkling_heart.png b/web/static/images/emoji/sparkling_heart.png Binary files differindex 64ac06663..0bfffc4ca 100755..100644 --- a/web/static/images/emoji/sparkling_heart.png +++ b/web/static/images/emoji/sparkling_heart.png diff --git a/web/static/images/emoji/speak_no_evil.png b/web/static/images/emoji/speak_no_evil.png Binary files differindex 87944c4de..c6f76937f 100755..100644 --- a/web/static/images/emoji/speak_no_evil.png +++ b/web/static/images/emoji/speak_no_evil.png diff --git a/web/static/images/emoji/speaker.png b/web/static/images/emoji/speaker.png Binary files differindex 470476e18..38d5ee391 100755..100644 --- a/web/static/images/emoji/speaker.png +++ b/web/static/images/emoji/speaker.png diff --git a/web/static/images/emoji/speaking_head_in_silhouette.png b/web/static/images/emoji/speaking_head_in_silhouette.png Binary files differnew file mode 100644 index 000000000..137a3c4c5 --- /dev/null +++ b/web/static/images/emoji/speaking_head_in_silhouette.png diff --git a/web/static/images/emoji/speech_balloon.png b/web/static/images/emoji/speech_balloon.png Binary files differindex 2896c2788..4f6449572 100755..100644 --- a/web/static/images/emoji/speech_balloon.png +++ b/web/static/images/emoji/speech_balloon.png diff --git a/web/static/images/emoji/speedboat.png b/web/static/images/emoji/speedboat.png Binary files differindex da6689b3b..a6b11a72e 100755..100644 --- a/web/static/images/emoji/speedboat.png +++ b/web/static/images/emoji/speedboat.png diff --git a/web/static/images/emoji/spider.png b/web/static/images/emoji/spider.png Binary files differnew file mode 100644 index 000000000..9e1fe5441 --- /dev/null +++ b/web/static/images/emoji/spider.png diff --git a/web/static/images/emoji/spider_web.png b/web/static/images/emoji/spider_web.png Binary files differnew file mode 100644 index 000000000..edad19093 --- /dev/null +++ b/web/static/images/emoji/spider_web.png diff --git a/web/static/images/emoji/spiral_calendar_pad.png b/web/static/images/emoji/spiral_calendar_pad.png Binary files differnew file mode 100644 index 000000000..ce73aecfa --- /dev/null +++ b/web/static/images/emoji/spiral_calendar_pad.png diff --git a/web/static/images/emoji/spiral_note_pad.png b/web/static/images/emoji/spiral_note_pad.png Binary files differnew file mode 100644 index 000000000..28bc54348 --- /dev/null +++ b/web/static/images/emoji/spiral_note_pad.png diff --git a/web/static/images/emoji/spock-hand.png b/web/static/images/emoji/spock-hand.png Binary files differnew file mode 100644 index 000000000..88e8765e0 --- /dev/null +++ b/web/static/images/emoji/spock-hand.png diff --git a/web/static/images/emoji/sports_medal.png b/web/static/images/emoji/sports_medal.png Binary files differnew file mode 100644 index 000000000..1bf04b7c4 --- /dev/null +++ b/web/static/images/emoji/sports_medal.png diff --git a/web/static/images/emoji/squirrel.png b/web/static/images/emoji/squirrel.png Binary files differindex a58a47f62..a58a47f62 100755..100644 --- a/web/static/images/emoji/squirrel.png +++ b/web/static/images/emoji/squirrel.png diff --git a/web/static/images/emoji/stadium.png b/web/static/images/emoji/stadium.png Binary files differnew file mode 100644 index 000000000..d1c925d35 --- /dev/null +++ b/web/static/images/emoji/stadium.png diff --git a/web/static/images/emoji/star.png b/web/static/images/emoji/star.png Binary files differindex 1bfddc862..00f6758a2 100755..100644 --- a/web/static/images/emoji/star.png +++ b/web/static/images/emoji/star.png diff --git a/web/static/images/emoji/star2.png b/web/static/images/emoji/star2.png Binary files differindex 8b40ff4c8..6399b9335 100755..100644 --- a/web/static/images/emoji/star2.png +++ b/web/static/images/emoji/star2.png diff --git a/web/static/images/emoji/stars.png b/web/static/images/emoji/stars.png Binary files differindex 097a84241..115748007 100755..100644 --- a/web/static/images/emoji/stars.png +++ b/web/static/images/emoji/stars.png diff --git a/web/static/images/emoji/station.png b/web/static/images/emoji/station.png Binary files differindex e77daa8a7..970d2799d 100755..100644 --- a/web/static/images/emoji/station.png +++ b/web/static/images/emoji/station.png diff --git a/web/static/images/emoji/statue_of_liberty.png b/web/static/images/emoji/statue_of_liberty.png Binary files differindex 9ad902806..709fd6bff 100755..100644 --- a/web/static/images/emoji/statue_of_liberty.png +++ b/web/static/images/emoji/statue_of_liberty.png diff --git a/web/static/images/emoji/steam_locomotive.png b/web/static/images/emoji/steam_locomotive.png Binary files differindex 549507766..f7c52db71 100755..100644 --- a/web/static/images/emoji/steam_locomotive.png +++ b/web/static/images/emoji/steam_locomotive.png diff --git a/web/static/images/emoji/stew.png b/web/static/images/emoji/stew.png Binary files differindex e9687f9ec..6f8305338 100755..100644 --- a/web/static/images/emoji/stew.png +++ b/web/static/images/emoji/stew.png diff --git a/web/static/images/emoji/straight_ruler.png b/web/static/images/emoji/straight_ruler.png Binary files differindex d96658ea1..42e7ac39c 100755..100644 --- a/web/static/images/emoji/straight_ruler.png +++ b/web/static/images/emoji/straight_ruler.png diff --git a/web/static/images/emoji/strawberry.png b/web/static/images/emoji/strawberry.png Binary files differindex 13eb827ab..b28837732 100755..100644 --- a/web/static/images/emoji/strawberry.png +++ b/web/static/images/emoji/strawberry.png diff --git a/web/static/images/emoji/stuck_out_tongue.png b/web/static/images/emoji/stuck_out_tongue.png Binary files differindex fa7b58e23..3fa455255 100755..100644 --- a/web/static/images/emoji/stuck_out_tongue.png +++ b/web/static/images/emoji/stuck_out_tongue.png diff --git a/web/static/images/emoji/stuck_out_tongue_closed_eyes.png b/web/static/images/emoji/stuck_out_tongue_closed_eyes.png Binary files differindex 333716ee1..b599a5f57 100755..100644 --- a/web/static/images/emoji/stuck_out_tongue_closed_eyes.png +++ b/web/static/images/emoji/stuck_out_tongue_closed_eyes.png diff --git a/web/static/images/emoji/stuck_out_tongue_winking_eye.png b/web/static/images/emoji/stuck_out_tongue_winking_eye.png Binary files differindex 6ae9d497d..a93847556 100755..100644 --- a/web/static/images/emoji/stuck_out_tongue_winking_eye.png +++ b/web/static/images/emoji/stuck_out_tongue_winking_eye.png diff --git a/web/static/images/emoji/studio_microphone.png b/web/static/images/emoji/studio_microphone.png Binary files differnew file mode 100644 index 000000000..7e186826e --- /dev/null +++ b/web/static/images/emoji/studio_microphone.png diff --git a/web/static/images/emoji/sun_with_face.png b/web/static/images/emoji/sun_with_face.png Binary files differindex ee276636f..7ee45e4dd 100755..100644 --- a/web/static/images/emoji/sun_with_face.png +++ b/web/static/images/emoji/sun_with_face.png diff --git a/web/static/images/emoji/sunflower.png b/web/static/images/emoji/sunflower.png Binary files differindex d9bad194a..b7cfbf82b 100755..100644 --- a/web/static/images/emoji/sunflower.png +++ b/web/static/images/emoji/sunflower.png diff --git a/web/static/images/emoji/sunglasses.png b/web/static/images/emoji/sunglasses.png Binary files differindex f2e524787..6d97948de 100755..100644 --- a/web/static/images/emoji/sunglasses.png +++ b/web/static/images/emoji/sunglasses.png diff --git a/web/static/images/emoji/sunny.png b/web/static/images/emoji/sunny.png Binary files differindex d23c095e0..d4f88fb8b 100755..100644 --- a/web/static/images/emoji/sunny.png +++ b/web/static/images/emoji/sunny.png diff --git a/web/static/images/emoji/sunrise.png b/web/static/images/emoji/sunrise.png Binary files differindex ec58dcc94..4bcc4a8ac 100755..100644 --- a/web/static/images/emoji/sunrise.png +++ b/web/static/images/emoji/sunrise.png diff --git a/web/static/images/emoji/sunrise_over_mountains.png b/web/static/images/emoji/sunrise_over_mountains.png Binary files differindex ebc3db146..f8527646e 100755..100644 --- a/web/static/images/emoji/sunrise_over_mountains.png +++ b/web/static/images/emoji/sunrise_over_mountains.png diff --git a/web/static/images/emoji/surfer.png b/web/static/images/emoji/surfer.png Binary files differindex b067e8cb3..74b216a67 100755..100644 --- a/web/static/images/emoji/surfer.png +++ b/web/static/images/emoji/surfer.png diff --git a/web/static/images/emoji/sushi.png b/web/static/images/emoji/sushi.png Binary files differindex 0d179bd97..8c2f6826e 100755..100644 --- a/web/static/images/emoji/sushi.png +++ b/web/static/images/emoji/sushi.png diff --git a/web/static/images/emoji/suspect.png b/web/static/images/emoji/suspect.png Binary files differindex 58e8921c0..58e8921c0 100755..100644 --- a/web/static/images/emoji/suspect.png +++ b/web/static/images/emoji/suspect.png diff --git a/web/static/images/emoji/suspension_railway.png b/web/static/images/emoji/suspension_railway.png Binary files differindex aaa45f61f..595e9b160 100755..100644 --- a/web/static/images/emoji/suspension_railway.png +++ b/web/static/images/emoji/suspension_railway.png diff --git a/web/static/images/emoji/sweat.png b/web/static/images/emoji/sweat.png Binary files differindex e894b7699..1c590918c 100755..100644 --- a/web/static/images/emoji/sweat.png +++ b/web/static/images/emoji/sweat.png diff --git a/web/static/images/emoji/sweat_drops.png b/web/static/images/emoji/sweat_drops.png Binary files differindex a83b3e960..81205fb52 100755..100644 --- a/web/static/images/emoji/sweat_drops.png +++ b/web/static/images/emoji/sweat_drops.png diff --git a/web/static/images/emoji/sweat_smile.png b/web/static/images/emoji/sweat_smile.png Binary files differindex 3903f717f..691ffa771 100755..100644 --- a/web/static/images/emoji/sweat_smile.png +++ b/web/static/images/emoji/sweat_smile.png diff --git a/web/static/images/emoji/sweet_potato.png b/web/static/images/emoji/sweet_potato.png Binary files differindex cde7880a1..7c60e76cb 100755..100644 --- a/web/static/images/emoji/sweet_potato.png +++ b/web/static/images/emoji/sweet_potato.png diff --git a/web/static/images/emoji/swimmer.png b/web/static/images/emoji/swimmer.png Binary files differindex d3878a065..9f3e63702 100755..100644 --- a/web/static/images/emoji/swimmer.png +++ b/web/static/images/emoji/swimmer.png diff --git a/web/static/images/emoji/symbols.png b/web/static/images/emoji/symbols.png Binary files differindex 16bc1da92..f1cdcb734 100755..100644 --- a/web/static/images/emoji/symbols.png +++ b/web/static/images/emoji/symbols.png diff --git a/web/static/images/emoji/syringe.png b/web/static/images/emoji/syringe.png Binary files differindex 36aa8fed5..1e7f23ebf 100755..100644 --- a/web/static/images/emoji/syringe.png +++ b/web/static/images/emoji/syringe.png diff --git a/web/static/images/emoji/tada.png b/web/static/images/emoji/tada.png Binary files differindex 7411b5266..003a66996 100755..100644 --- a/web/static/images/emoji/tada.png +++ b/web/static/images/emoji/tada.png diff --git a/web/static/images/emoji/tanabata_tree.png b/web/static/images/emoji/tanabata_tree.png Binary files differindex 6dea4b2d4..ec7d8cc22 100755..100644 --- a/web/static/images/emoji/tanabata_tree.png +++ b/web/static/images/emoji/tanabata_tree.png diff --git a/web/static/images/emoji/tangerine.png b/web/static/images/emoji/tangerine.png Binary files differindex fc9d4f82a..7cb15fcf7 100755..100644 --- a/web/static/images/emoji/tangerine.png +++ b/web/static/images/emoji/tangerine.png diff --git a/web/static/images/emoji/taurus.png b/web/static/images/emoji/taurus.png Binary files differindex 6af582f69..3d3434ccf 100755..100644 --- a/web/static/images/emoji/taurus.png +++ b/web/static/images/emoji/taurus.png diff --git a/web/static/images/emoji/taxi.png b/web/static/images/emoji/taxi.png Binary files differindex 60a50d365..1b9af967a 100755..100644 --- a/web/static/images/emoji/taxi.png +++ b/web/static/images/emoji/taxi.png diff --git a/web/static/images/emoji/tea.png b/web/static/images/emoji/tea.png Binary files differindex 3ece0b708..b8d25a962 100755..100644 --- a/web/static/images/emoji/tea.png +++ b/web/static/images/emoji/tea.png diff --git a/web/static/images/emoji/telephone.png b/web/static/images/emoji/telephone.png Binary files differindex 87d2559b5..6a14f1bfe 100755..100644 --- a/web/static/images/emoji/telephone.png +++ b/web/static/images/emoji/telephone.png diff --git a/web/static/images/emoji/telephone_receiver.png b/web/static/images/emoji/telephone_receiver.png Binary files differindex 36e21e012..6a8259cb7 100755..100644 --- a/web/static/images/emoji/telephone_receiver.png +++ b/web/static/images/emoji/telephone_receiver.png diff --git a/web/static/images/emoji/telescope.png b/web/static/images/emoji/telescope.png Binary files differindex 98e57558a..8fc07d50f 100755..100644 --- a/web/static/images/emoji/telescope.png +++ b/web/static/images/emoji/telescope.png diff --git a/web/static/images/emoji/tennis.png b/web/static/images/emoji/tennis.png Binary files differindex 278d904ee..cade3a566 100755..100644 --- a/web/static/images/emoji/tennis.png +++ b/web/static/images/emoji/tennis.png diff --git a/web/static/images/emoji/tent.png b/web/static/images/emoji/tent.png Binary files differindex 5c0d20e48..db3101b4a 100755..100644 --- a/web/static/images/emoji/tent.png +++ b/web/static/images/emoji/tent.png diff --git a/web/static/images/emoji/thermometer.png b/web/static/images/emoji/thermometer.png Binary files differnew file mode 100644 index 000000000..5afccacd5 --- /dev/null +++ b/web/static/images/emoji/thermometer.png diff --git a/web/static/images/emoji/thought_balloon.png b/web/static/images/emoji/thought_balloon.png Binary files differindex febe30d05..0ccbc2e30 100755..100644 --- a/web/static/images/emoji/thought_balloon.png +++ b/web/static/images/emoji/thought_balloon.png diff --git a/web/static/images/emoji/three.png b/web/static/images/emoji/three.png Binary files differindex 55644c990..96ac84050 100755..100644 --- a/web/static/images/emoji/three.png +++ b/web/static/images/emoji/three.png diff --git a/web/static/images/emoji/thumbsdown.png b/web/static/images/emoji/thumbsdown.png Binary files differindex 41c6b825d..9b6d251b5 100755..100644 --- a/web/static/images/emoji/thumbsdown.png +++ b/web/static/images/emoji/thumbsdown.png diff --git a/web/static/images/emoji/thumbsup.png b/web/static/images/emoji/thumbsup.png Binary files differindex 81786c1d8..26949329f 100755..100644 --- a/web/static/images/emoji/thumbsup.png +++ b/web/static/images/emoji/thumbsup.png diff --git a/web/static/images/emoji/ticket.png b/web/static/images/emoji/ticket.png Binary files differindex cdacf1a70..1e697cab6 100755..100644 --- a/web/static/images/emoji/ticket.png +++ b/web/static/images/emoji/ticket.png diff --git a/web/static/images/emoji/tiger.png b/web/static/images/emoji/tiger.png Binary files differindex d6cc84a3b..64a19cd61 100755..100644 --- a/web/static/images/emoji/tiger.png +++ b/web/static/images/emoji/tiger.png diff --git a/web/static/images/emoji/tiger2.png b/web/static/images/emoji/tiger2.png Binary files differindex b0c7d8dc3..c7910315e 100755..100644 --- a/web/static/images/emoji/tiger2.png +++ b/web/static/images/emoji/tiger2.png diff --git a/web/static/images/emoji/tired_face.png b/web/static/images/emoji/tired_face.png Binary files differindex 77b783453..adf5fa0fc 100755..100644 --- a/web/static/images/emoji/tired_face.png +++ b/web/static/images/emoji/tired_face.png diff --git a/web/static/images/emoji/tm.png b/web/static/images/emoji/tm.png Binary files differindex c7dec75a3..0ddad3d83 100755..100644 --- a/web/static/images/emoji/tm.png +++ b/web/static/images/emoji/tm.png diff --git a/web/static/images/emoji/toilet.png b/web/static/images/emoji/toilet.png Binary files differindex e5cc4119a..6cf5255d5 100755..100644 --- a/web/static/images/emoji/toilet.png +++ b/web/static/images/emoji/toilet.png diff --git a/web/static/images/emoji/tokyo_tower.png b/web/static/images/emoji/tokyo_tower.png Binary files differindex e1cbd7a3c..8833f08a5 100755..100644 --- a/web/static/images/emoji/tokyo_tower.png +++ b/web/static/images/emoji/tokyo_tower.png diff --git a/web/static/images/emoji/tomato.png b/web/static/images/emoji/tomato.png Binary files differindex a129700bb..4114c35ff 100755..100644 --- a/web/static/images/emoji/tomato.png +++ b/web/static/images/emoji/tomato.png diff --git a/web/static/images/emoji/tongue.png b/web/static/images/emoji/tongue.png Binary files differindex b0bab1207..67ea886c6 100755..100644 --- a/web/static/images/emoji/tongue.png +++ b/web/static/images/emoji/tongue.png diff --git a/web/static/images/emoji/top.png b/web/static/images/emoji/top.png Binary files differindex 5aa4dd442..5c6eb3c52 100755..100644 --- a/web/static/images/emoji/top.png +++ b/web/static/images/emoji/top.png diff --git a/web/static/images/emoji/tophat.png b/web/static/images/emoji/tophat.png Binary files differindex 7d27134d6..a945ccb8b 100755..100644 --- a/web/static/images/emoji/tophat.png +++ b/web/static/images/emoji/tophat.png diff --git a/web/static/images/emoji/tornado.png b/web/static/images/emoji/tornado.png Binary files differnew file mode 100644 index 000000000..a0ce6d55a --- /dev/null +++ b/web/static/images/emoji/tornado.png diff --git a/web/static/images/emoji/tornado_cloud.png b/web/static/images/emoji/tornado_cloud.png Binary files differnew file mode 100644 index 000000000..a0ce6d55a --- /dev/null +++ b/web/static/images/emoji/tornado_cloud.png diff --git a/web/static/images/emoji/trackball.png b/web/static/images/emoji/trackball.png Binary files differnew file mode 100644 index 000000000..3ecf9b87b --- /dev/null +++ b/web/static/images/emoji/trackball.png diff --git a/web/static/images/emoji/tractor.png b/web/static/images/emoji/tractor.png Binary files differindex 058fd3eda..fcd4000c5 100755..100644 --- a/web/static/images/emoji/tractor.png +++ b/web/static/images/emoji/tractor.png diff --git a/web/static/images/emoji/traffic_light.png b/web/static/images/emoji/traffic_light.png Binary files differindex 1facb276c..0a7704a26 100755..100644 --- a/web/static/images/emoji/traffic_light.png +++ b/web/static/images/emoji/traffic_light.png diff --git a/web/static/images/emoji/train.png b/web/static/images/emoji/train.png Binary files differindex 3202d80ea..93d810920 100755..100644 --- a/web/static/images/emoji/train.png +++ b/web/static/images/emoji/train.png diff --git a/web/static/images/emoji/train2.png b/web/static/images/emoji/train2.png Binary files differindex 9c0d3ab64..22d843302 100755..100644 --- a/web/static/images/emoji/train2.png +++ b/web/static/images/emoji/train2.png diff --git a/web/static/images/emoji/tram.png b/web/static/images/emoji/tram.png Binary files differindex 5eb29fb71..851cf1827 100755..100644 --- a/web/static/images/emoji/tram.png +++ b/web/static/images/emoji/tram.png diff --git a/web/static/images/emoji/triangular_flag_on_post.png b/web/static/images/emoji/triangular_flag_on_post.png Binary files differindex f9a3f32d7..89a1429a3 100755..100644 --- a/web/static/images/emoji/triangular_flag_on_post.png +++ b/web/static/images/emoji/triangular_flag_on_post.png diff --git a/web/static/images/emoji/triangular_ruler.png b/web/static/images/emoji/triangular_ruler.png Binary files differindex 383677cb7..b554c0625 100755..100644 --- a/web/static/images/emoji/triangular_ruler.png +++ b/web/static/images/emoji/triangular_ruler.png diff --git a/web/static/images/emoji/trident.png b/web/static/images/emoji/trident.png Binary files differindex d79a7b4cc..ae1e0bc88 100755..100644 --- a/web/static/images/emoji/trident.png +++ b/web/static/images/emoji/trident.png diff --git a/web/static/images/emoji/triumph.png b/web/static/images/emoji/triumph.png Binary files differindex 92f93bd10..5d0f2bf16 100755..100644 --- a/web/static/images/emoji/triumph.png +++ b/web/static/images/emoji/triumph.png diff --git a/web/static/images/emoji/trolleybus.png b/web/static/images/emoji/trolleybus.png Binary files differindex b9740a53f..5207d82da 100755..100644 --- a/web/static/images/emoji/trolleybus.png +++ b/web/static/images/emoji/trolleybus.png diff --git a/web/static/images/emoji/trollface.png b/web/static/images/emoji/trollface.png Binary files differindex 119d77e73..119d77e73 100755..100644 --- a/web/static/images/emoji/trollface.png +++ b/web/static/images/emoji/trollface.png diff --git a/web/static/images/emoji/trophy.png b/web/static/images/emoji/trophy.png Binary files differindex 95d3b63f5..38429fe19 100755..100644 --- a/web/static/images/emoji/trophy.png +++ b/web/static/images/emoji/trophy.png diff --git a/web/static/images/emoji/tropical_drink.png b/web/static/images/emoji/tropical_drink.png Binary files differindex 55ca9eeda..34a5a385c 100755..100644 --- a/web/static/images/emoji/tropical_drink.png +++ b/web/static/images/emoji/tropical_drink.png diff --git a/web/static/images/emoji/tropical_fish.png b/web/static/images/emoji/tropical_fish.png Binary files differindex a6d734987..1904f61be 100755..100644 --- a/web/static/images/emoji/tropical_fish.png +++ b/web/static/images/emoji/tropical_fish.png diff --git a/web/static/images/emoji/truck.png b/web/static/images/emoji/truck.png Binary files differindex 3f25ba1f9..ef99f12fb 100755..100644 --- a/web/static/images/emoji/truck.png +++ b/web/static/images/emoji/truck.png diff --git a/web/static/images/emoji/trumpet.png b/web/static/images/emoji/trumpet.png Binary files differindex c84cfb13e..c2270ccbf 100755..100644 --- a/web/static/images/emoji/trumpet.png +++ b/web/static/images/emoji/trumpet.png diff --git a/web/static/images/emoji/tshirt.png b/web/static/images/emoji/tshirt.png Binary files differindex 297a6d63e..556efde26 100755..100644 --- a/web/static/images/emoji/tshirt.png +++ b/web/static/images/emoji/tshirt.png diff --git a/web/static/images/emoji/tulip.png b/web/static/images/emoji/tulip.png Binary files differindex b3ee1102a..a05a51edf 100755..100644 --- a/web/static/images/emoji/tulip.png +++ b/web/static/images/emoji/tulip.png diff --git a/web/static/images/emoji/turtle.png b/web/static/images/emoji/turtle.png Binary files differindex 04d1d9684..c3a628c0a 100755..100644 --- a/web/static/images/emoji/turtle.png +++ b/web/static/images/emoji/turtle.png diff --git a/web/static/images/emoji/tv.png b/web/static/images/emoji/tv.png Binary files differindex 803dc3d41..5318e2dc8 100755..100644 --- a/web/static/images/emoji/tv.png +++ b/web/static/images/emoji/tv.png diff --git a/web/static/images/emoji/twisted_rightwards_arrows.png b/web/static/images/emoji/twisted_rightwards_arrows.png Binary files differindex 25cde18b2..96e03e168 100755..100644 --- a/web/static/images/emoji/twisted_rightwards_arrows.png +++ b/web/static/images/emoji/twisted_rightwards_arrows.png diff --git a/web/static/images/emoji/two.png b/web/static/images/emoji/two.png Binary files differindex c191f8a32..a062ea93a 100755..100644 --- a/web/static/images/emoji/two.png +++ b/web/static/images/emoji/two.png diff --git a/web/static/images/emoji/two_hearts.png b/web/static/images/emoji/two_hearts.png Binary files differindex b189e9aea..48f8d88d2 100755..100644 --- a/web/static/images/emoji/two_hearts.png +++ b/web/static/images/emoji/two_hearts.png diff --git a/web/static/images/emoji/two_men_holding_hands.png b/web/static/images/emoji/two_men_holding_hands.png Binary files differindex d1099f21f..6d223a144 100755..100644 --- a/web/static/images/emoji/two_men_holding_hands.png +++ b/web/static/images/emoji/two_men_holding_hands.png diff --git a/web/static/images/emoji/two_women_holding_hands.png b/web/static/images/emoji/two_women_holding_hands.png Binary files differindex 619646c4e..313e73c7d 100755..100644 --- a/web/static/images/emoji/two_women_holding_hands.png +++ b/web/static/images/emoji/two_women_holding_hands.png diff --git a/web/static/images/emoji/u5272.png b/web/static/images/emoji/u5272.png Binary files differindex 2148253fc..90ed437d9 100755..100644 --- a/web/static/images/emoji/u5272.png +++ b/web/static/images/emoji/u5272.png diff --git a/web/static/images/emoji/u5408.png b/web/static/images/emoji/u5408.png Binary files differindex 03ab0d874..02ff557d0 100755..100644 --- a/web/static/images/emoji/u5408.png +++ b/web/static/images/emoji/u5408.png diff --git a/web/static/images/emoji/u55b6.png b/web/static/images/emoji/u55b6.png Binary files differindex ba946d3f3..091841a03 100755..100644 --- a/web/static/images/emoji/u55b6.png +++ b/web/static/images/emoji/u55b6.png diff --git a/web/static/images/emoji/u6307.png b/web/static/images/emoji/u6307.png Binary files differindex 6557f5672..307d17ad7 100755..100644 --- a/web/static/images/emoji/u6307.png +++ b/web/static/images/emoji/u6307.png diff --git a/web/static/images/emoji/u6708.png b/web/static/images/emoji/u6708.png Binary files differindex e4dfe5aa7..cf85c803b 100755..100644 --- a/web/static/images/emoji/u6708.png +++ b/web/static/images/emoji/u6708.png diff --git a/web/static/images/emoji/u6709.png b/web/static/images/emoji/u6709.png Binary files differindex cd8fb3f62..b592c12ee 100755..100644 --- a/web/static/images/emoji/u6709.png +++ b/web/static/images/emoji/u6709.png diff --git a/web/static/images/emoji/u6e80.png b/web/static/images/emoji/u6e80.png Binary files differindex 5df1cb878..4d03236ff 100755..100644 --- a/web/static/images/emoji/u6e80.png +++ b/web/static/images/emoji/u6e80.png diff --git a/web/static/images/emoji/u7121.png b/web/static/images/emoji/u7121.png Binary files differindex 25f694ed3..5f2982163 100755..100644 --- a/web/static/images/emoji/u7121.png +++ b/web/static/images/emoji/u7121.png diff --git a/web/static/images/emoji/u7533.png b/web/static/images/emoji/u7533.png Binary files differindex fc4a9901b..e2c566183 100755..100644 --- a/web/static/images/emoji/u7533.png +++ b/web/static/images/emoji/u7533.png diff --git a/web/static/images/emoji/u7981.png b/web/static/images/emoji/u7981.png Binary files differindex f550a573d..cc617fed3 100755..100644 --- a/web/static/images/emoji/u7981.png +++ b/web/static/images/emoji/u7981.png diff --git a/web/static/images/emoji/u7a7a.png b/web/static/images/emoji/u7a7a.png Binary files differindex c05f5cff7..3d0922dba 100755..100644 --- a/web/static/images/emoji/u7a7a.png +++ b/web/static/images/emoji/u7a7a.png diff --git a/web/static/images/emoji/uk.png b/web/static/images/emoji/uk.png Binary files differindex 2a62c7a08..61c03f759 100755..100644 --- a/web/static/images/emoji/uk.png +++ b/web/static/images/emoji/uk.png diff --git a/web/static/images/emoji/umbrella.png b/web/static/images/emoji/umbrella.png Binary files differindex 1db722fa6..83672dd6c 100755..100644 --- a/web/static/images/emoji/umbrella.png +++ b/web/static/images/emoji/umbrella.png diff --git a/web/static/images/emoji/unamused.png b/web/static/images/emoji/unamused.png Binary files differindex 3722e6f57..9d406ca65 100755..100644 --- a/web/static/images/emoji/unamused.png +++ b/web/static/images/emoji/unamused.png diff --git a/web/static/images/emoji/underage.png b/web/static/images/emoji/underage.png Binary files differindex a789b3c62..603ce57ea 100755..100644 --- a/web/static/images/emoji/underage.png +++ b/web/static/images/emoji/underage.png diff --git a/web/static/images/emoji/unlock.png b/web/static/images/emoji/unlock.png Binary files differindex 22b429cd0..db05d1b73 100755..100644 --- a/web/static/images/emoji/unlock.png +++ b/web/static/images/emoji/unlock.png diff --git a/web/static/images/emoji/up.png b/web/static/images/emoji/up.png Binary files differindex 829219a86..aa7974ec1 100755..100644 --- a/web/static/images/emoji/up.png +++ b/web/static/images/emoji/up.png diff --git a/web/static/images/emoji/us.png b/web/static/images/emoji/us.png Binary files differindex 38137669a..6c98de9be 100755..100644 --- a/web/static/images/emoji/us.png +++ b/web/static/images/emoji/us.png diff --git a/web/static/images/emoji/v.png b/web/static/images/emoji/v.png Binary files differindex f61267c28..0b7aa52d1 100755..100644 --- a/web/static/images/emoji/v.png +++ b/web/static/images/emoji/v.png diff --git a/web/static/images/emoji/vertical_traffic_light.png b/web/static/images/emoji/vertical_traffic_light.png Binary files differindex 7a5ba35f0..e533edda0 100755..100644 --- a/web/static/images/emoji/vertical_traffic_light.png +++ b/web/static/images/emoji/vertical_traffic_light.png diff --git a/web/static/images/emoji/vhs.png b/web/static/images/emoji/vhs.png Binary files differindex 881081c17..134e3a2c4 100755..100644 --- a/web/static/images/emoji/vhs.png +++ b/web/static/images/emoji/vhs.png diff --git a/web/static/images/emoji/vibration_mode.png b/web/static/images/emoji/vibration_mode.png Binary files differindex a716e96c6..6da565442 100755..100644 --- a/web/static/images/emoji/vibration_mode.png +++ b/web/static/images/emoji/vibration_mode.png diff --git a/web/static/images/emoji/video_camera.png b/web/static/images/emoji/video_camera.png Binary files differindex 274cecdd6..1b3514f8a 100755..100644 --- a/web/static/images/emoji/video_camera.png +++ b/web/static/images/emoji/video_camera.png diff --git a/web/static/images/emoji/video_game.png b/web/static/images/emoji/video_game.png Binary files differindex e265a3bd8..702832e99 100755..100644 --- a/web/static/images/emoji/video_game.png +++ b/web/static/images/emoji/video_game.png diff --git a/web/static/images/emoji/violin.png b/web/static/images/emoji/violin.png Binary files differindex 69347b545..0bb8e0a10 100755..100644 --- a/web/static/images/emoji/violin.png +++ b/web/static/images/emoji/violin.png diff --git a/web/static/images/emoji/virgo.png b/web/static/images/emoji/virgo.png Binary files differindex 72e1763f5..238424313 100755..100644 --- a/web/static/images/emoji/virgo.png +++ b/web/static/images/emoji/virgo.png diff --git a/web/static/images/emoji/volcano.png b/web/static/images/emoji/volcano.png Binary files differindex 9b434539b..5f2c292f0 100755..100644 --- a/web/static/images/emoji/volcano.png +++ b/web/static/images/emoji/volcano.png diff --git a/web/static/images/emoji/vs.png b/web/static/images/emoji/vs.png Binary files differindex 863638850..327337277 100755..100644 --- a/web/static/images/emoji/vs.png +++ b/web/static/images/emoji/vs.png diff --git a/web/static/images/emoji/walking.png b/web/static/images/emoji/walking.png Binary files differindex 52bc0381c..174c4d0e2 100755..100644 --- a/web/static/images/emoji/walking.png +++ b/web/static/images/emoji/walking.png diff --git a/web/static/images/emoji/waning_crescent_moon.png b/web/static/images/emoji/waning_crescent_moon.png Binary files differindex 30387780f..f9ab41111 100755..100644 --- a/web/static/images/emoji/waning_crescent_moon.png +++ b/web/static/images/emoji/waning_crescent_moon.png diff --git a/web/static/images/emoji/waning_gibbous_moon.png b/web/static/images/emoji/waning_gibbous_moon.png Binary files differindex 510099070..3b9240298 100755..100644 --- a/web/static/images/emoji/waning_gibbous_moon.png +++ b/web/static/images/emoji/waning_gibbous_moon.png diff --git a/web/static/images/emoji/warning.png b/web/static/images/emoji/warning.png Binary files differindex db6f96f02..8a5dd577a 100755..100644 --- a/web/static/images/emoji/warning.png +++ b/web/static/images/emoji/warning.png diff --git a/web/static/images/emoji/wastebasket.png b/web/static/images/emoji/wastebasket.png Binary files differnew file mode 100644 index 000000000..3baef5973 --- /dev/null +++ b/web/static/images/emoji/wastebasket.png diff --git a/web/static/images/emoji/watch.png b/web/static/images/emoji/watch.png Binary files differindex d503bb87c..50f16588a 100755..100644 --- a/web/static/images/emoji/watch.png +++ b/web/static/images/emoji/watch.png diff --git a/web/static/images/emoji/water_buffalo.png b/web/static/images/emoji/water_buffalo.png Binary files differindex 3bcde3edd..2c8fa68e8 100755..100644 --- a/web/static/images/emoji/water_buffalo.png +++ b/web/static/images/emoji/water_buffalo.png diff --git a/web/static/images/emoji/watermelon.png b/web/static/images/emoji/watermelon.png Binary files differindex fc212be78..5125aea3e 100755..100644 --- a/web/static/images/emoji/watermelon.png +++ b/web/static/images/emoji/watermelon.png diff --git a/web/static/images/emoji/wave.png b/web/static/images/emoji/wave.png Binary files differindex 56e6e822b..8a7086bd0 100755..100644 --- a/web/static/images/emoji/wave.png +++ b/web/static/images/emoji/wave.png diff --git a/web/static/images/emoji/waving_black_flag.png b/web/static/images/emoji/waving_black_flag.png Binary files differnew file mode 100644 index 000000000..d48e98fe0 --- /dev/null +++ b/web/static/images/emoji/waving_black_flag.png diff --git a/web/static/images/emoji/waving_white_flag.png b/web/static/images/emoji/waving_white_flag.png Binary files differnew file mode 100644 index 000000000..bf6124fab --- /dev/null +++ b/web/static/images/emoji/waving_white_flag.png diff --git a/web/static/images/emoji/wavy_dash.png b/web/static/images/emoji/wavy_dash.png Binary files differindex 5a74e5c7a..3b346827b 100755..100644 --- a/web/static/images/emoji/wavy_dash.png +++ b/web/static/images/emoji/wavy_dash.png diff --git a/web/static/images/emoji/waxing_crescent_moon.png b/web/static/images/emoji/waxing_crescent_moon.png Binary files differindex c8f13dd31..7d4b5a056 100755..100644 --- a/web/static/images/emoji/waxing_crescent_moon.png +++ b/web/static/images/emoji/waxing_crescent_moon.png diff --git a/web/static/images/emoji/waxing_gibbous_moon.png b/web/static/images/emoji/waxing_gibbous_moon.png Binary files differindex 54e7ec671..b53fd4288 100755..100644 --- a/web/static/images/emoji/waxing_gibbous_moon.png +++ b/web/static/images/emoji/waxing_gibbous_moon.png diff --git a/web/static/images/emoji/wc.png b/web/static/images/emoji/wc.png Binary files differindex dfe84d2a7..b153f2c2a 100755..100644 --- a/web/static/images/emoji/wc.png +++ b/web/static/images/emoji/wc.png diff --git a/web/static/images/emoji/weary.png b/web/static/images/emoji/weary.png Binary files differindex 0c5475411..1c18789e8 100755..100644 --- a/web/static/images/emoji/weary.png +++ b/web/static/images/emoji/weary.png diff --git a/web/static/images/emoji/wedding.png b/web/static/images/emoji/wedding.png Binary files differindex ead19d52c..dda4a140f 100755..100644 --- a/web/static/images/emoji/wedding.png +++ b/web/static/images/emoji/wedding.png diff --git a/web/static/images/emoji/weight_lifter.png b/web/static/images/emoji/weight_lifter.png Binary files differnew file mode 100644 index 000000000..db6bb3d51 --- /dev/null +++ b/web/static/images/emoji/weight_lifter.png diff --git a/web/static/images/emoji/whale.png b/web/static/images/emoji/whale.png Binary files differindex 5bb113e42..cf1ecee86 100755..100644 --- a/web/static/images/emoji/whale.png +++ b/web/static/images/emoji/whale.png diff --git a/web/static/images/emoji/whale2.png b/web/static/images/emoji/whale2.png Binary files differindex 0ef4ea94f..181860530 100755..100644 --- a/web/static/images/emoji/whale2.png +++ b/web/static/images/emoji/whale2.png diff --git a/web/static/images/emoji/wheelchair.png b/web/static/images/emoji/wheelchair.png Binary files differindex eddcdd797..638696ca9 100755..100644 --- a/web/static/images/emoji/wheelchair.png +++ b/web/static/images/emoji/wheelchair.png diff --git a/web/static/images/emoji/white_check_mark.png b/web/static/images/emoji/white_check_mark.png Binary files differindex 61dc0583c..241a4f6f9 100755..100644 --- a/web/static/images/emoji/white_check_mark.png +++ b/web/static/images/emoji/white_check_mark.png diff --git a/web/static/images/emoji/white_circle.png b/web/static/images/emoji/white_circle.png Binary files differindex 3f648d1bd..84e8a43a2 100755..100644 --- a/web/static/images/emoji/white_circle.png +++ b/web/static/images/emoji/white_circle.png diff --git a/web/static/images/emoji/white_flower.png b/web/static/images/emoji/white_flower.png Binary files differindex c0929d0dd..6d1c47e91 100755..100644 --- a/web/static/images/emoji/white_flower.png +++ b/web/static/images/emoji/white_flower.png diff --git a/web/static/images/emoji/white_large_square.png b/web/static/images/emoji/white_large_square.png Binary files differindex 60cb19a13..2f6071f06 100755..100644 --- a/web/static/images/emoji/white_large_square.png +++ b/web/static/images/emoji/white_large_square.png diff --git a/web/static/images/emoji/white_medium_small_square.png b/web/static/images/emoji/white_medium_small_square.png Binary files differindex a115cdc49..7a34786e8 100755..100644 --- a/web/static/images/emoji/white_medium_small_square.png +++ b/web/static/images/emoji/white_medium_small_square.png diff --git a/web/static/images/emoji/white_medium_square.png b/web/static/images/emoji/white_medium_square.png Binary files differindex 199808bcf..f3c39550f 100755..100644 --- a/web/static/images/emoji/white_medium_square.png +++ b/web/static/images/emoji/white_medium_square.png diff --git a/web/static/images/emoji/white_small_square.png b/web/static/images/emoji/white_small_square.png Binary files differindex 24ba879f4..5b115d325 100755..100644 --- a/web/static/images/emoji/white_small_square.png +++ b/web/static/images/emoji/white_small_square.png diff --git a/web/static/images/emoji/white_square_button.png b/web/static/images/emoji/white_square_button.png Binary files differindex ad54d55c0..df974d948 100755..100644 --- a/web/static/images/emoji/white_square_button.png +++ b/web/static/images/emoji/white_square_button.png diff --git a/web/static/images/emoji/wind_blowing_face.png b/web/static/images/emoji/wind_blowing_face.png Binary files differnew file mode 100644 index 000000000..1586cb2cd --- /dev/null +++ b/web/static/images/emoji/wind_blowing_face.png diff --git a/web/static/images/emoji/wind_chime.png b/web/static/images/emoji/wind_chime.png Binary files differindex efacf5dd4..8aee0e8bd 100755..100644 --- a/web/static/images/emoji/wind_chime.png +++ b/web/static/images/emoji/wind_chime.png diff --git a/web/static/images/emoji/wine_glass.png b/web/static/images/emoji/wine_glass.png Binary files differindex 82b0f0005..7aea60cc8 100755..100644 --- a/web/static/images/emoji/wine_glass.png +++ b/web/static/images/emoji/wine_glass.png diff --git a/web/static/images/emoji/wink.png b/web/static/images/emoji/wink.png Binary files differindex 756766dd3..d2ae627f7 100755..100644 --- a/web/static/images/emoji/wink.png +++ b/web/static/images/emoji/wink.png diff --git a/web/static/images/emoji/wolf.png b/web/static/images/emoji/wolf.png Binary files differindex c60c96895..46f054c62 100755..100644 --- a/web/static/images/emoji/wolf.png +++ b/web/static/images/emoji/wolf.png diff --git a/web/static/images/emoji/woman.png b/web/static/images/emoji/woman.png Binary files differindex 6bf0d2b12..72f7d61e2 100755..100644 --- a/web/static/images/emoji/woman.png +++ b/web/static/images/emoji/woman.png diff --git a/web/static/images/emoji/womans_clothes.png b/web/static/images/emoji/womans_clothes.png Binary files differindex aa297c7b6..1a5494267 100755..100644 --- a/web/static/images/emoji/womans_clothes.png +++ b/web/static/images/emoji/womans_clothes.png diff --git a/web/static/images/emoji/womans_hat.png b/web/static/images/emoji/womans_hat.png Binary files differindex 4cb2e6a69..33af561b3 100755..100644 --- a/web/static/images/emoji/womans_hat.png +++ b/web/static/images/emoji/womans_hat.png diff --git a/web/static/images/emoji/womens.png b/web/static/images/emoji/womens.png Binary files differindex 2fab29660..57a510e34 100755..100644 --- a/web/static/images/emoji/womens.png +++ b/web/static/images/emoji/womens.png diff --git a/web/static/images/emoji/world_map.png b/web/static/images/emoji/world_map.png Binary files differnew file mode 100644 index 000000000..799747f8f --- /dev/null +++ b/web/static/images/emoji/world_map.png diff --git a/web/static/images/emoji/worried.png b/web/static/images/emoji/worried.png Binary files differindex bfa1856c0..c26a5f5a4 100755..100644 --- a/web/static/images/emoji/worried.png +++ b/web/static/images/emoji/worried.png diff --git a/web/static/images/emoji/wrench.png b/web/static/images/emoji/wrench.png Binary files differindex a87072ad1..64a0d6a76 100755..100644 --- a/web/static/images/emoji/wrench.png +++ b/web/static/images/emoji/wrench.png diff --git a/web/static/images/emoji/x.png b/web/static/images/emoji/x.png Binary files differindex dff9efa8b..18de93090 100755..100644 --- a/web/static/images/emoji/x.png +++ b/web/static/images/emoji/x.png diff --git a/web/static/images/emoji/yellow_heart.png b/web/static/images/emoji/yellow_heart.png Binary files differindex fa41ce78a..2deb5e6ce 100755..100644 --- a/web/static/images/emoji/yellow_heart.png +++ b/web/static/images/emoji/yellow_heart.png diff --git a/web/static/images/emoji/yen.png b/web/static/images/emoji/yen.png Binary files differindex 139bc936e..c0545520f 100755..100644 --- a/web/static/images/emoji/yen.png +++ b/web/static/images/emoji/yen.png diff --git a/web/static/images/emoji/yum.png b/web/static/images/emoji/yum.png Binary files differindex fc39637ec..7a353a7e8 100755..100644 --- a/web/static/images/emoji/yum.png +++ b/web/static/images/emoji/yum.png diff --git a/web/static/images/emoji/zap.png b/web/static/images/emoji/zap.png Binary files differindex 260c531b9..96ec4dccb 100755..100644 --- a/web/static/images/emoji/zap.png +++ b/web/static/images/emoji/zap.png diff --git a/web/static/images/emoji/zero.png b/web/static/images/emoji/zero.png Binary files differindex 6e57b3343..56e4e0672 100755..100644 --- a/web/static/images/emoji/zero.png +++ b/web/static/images/emoji/zero.png diff --git a/web/static/images/emoji/zzz.png b/web/static/images/emoji/zzz.png Binary files differindex 30be04655..05e245f20 100755..100644 --- a/web/static/images/emoji/zzz.png +++ b/web/static/images/emoji/zzz.png diff --git a/web/static/images/logo_compact.png b/web/static/images/logo_compact.png Binary files differnew file mode 100644 index 000000000..b861b7c6d --- /dev/null +++ b/web/static/images/logo_compact.png diff --git a/web/static/js/babel-es6-polyfill.js b/web/static/js/babel-es6-polyfill.js deleted file mode 100644 index 29161d1aa..000000000 --- a/web/static/js/babel-es6-polyfill.js +++ /dev/null @@ -1,2591 +0,0 @@ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ -(function (global){ -"use strict"; - -if (global._babelPolyfill) { - throw new Error("only one instance of babel/polyfill is allowed"); -} -global._babelPolyfill = true; - -require("./es6-shim"); - -require("regenerator-babel/runtime"); -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./es6-shim":2,"regenerator-babel/runtime":60}],2:[function(require,module,exports){ -require('core-js/es6'); -module.exports = require('core-js/modules/$').core; -},{"core-js/es6":3,"core-js/modules/$":16}],3:[function(require,module,exports){ -require('../modules/es6.symbol');
-require('../modules/es6.object.assign');
-require('../modules/es6.object.is');
-require('../modules/es6.object.set-prototype-of');
-require('../modules/es6.object.to-string');
-require('../modules/es6.object.statics-accept-primitives');
-require('../modules/es6.function.name');
-require('../modules/es6.number.constructor');
-require('../modules/es6.number.statics');
-require('../modules/es6.math');
-require('../modules/es6.string.from-code-point');
-require('../modules/es6.string.raw');
-require('../modules/es6.string.iterator');
-require('../modules/es6.string.code-point-at');
-require('../modules/es6.string.ends-with');
-require('../modules/es6.string.includes');
-require('../modules/es6.string.repeat');
-require('../modules/es6.string.starts-with');
-require('../modules/es6.array.from');
-require('../modules/es6.array.of');
-require('../modules/es6.array.species');
-require('../modules/es6.array.iterator');
-require('../modules/es6.array.copy-within');
-require('../modules/es6.array.fill');
-require('../modules/es6.array.find');
-require('../modules/es6.array.find-index');
-require('../modules/es6.regexp');
-require('../modules/es6.promise');
-require('../modules/es6.map');
-require('../modules/es6.set');
-require('../modules/es6.weak-map');
-require('../modules/es6.weak-set');
-require('../modules/es6.reflect');
-module.exports = require('../modules/$').core; -},{"../modules/$":16,"../modules/es6.array.copy-within":27,"../modules/es6.array.fill":28,"../modules/es6.array.find":30,"../modules/es6.array.find-index":29,"../modules/es6.array.from":31,"../modules/es6.array.iterator":32,"../modules/es6.array.of":33,"../modules/es6.array.species":34,"../modules/es6.function.name":35,"../modules/es6.map":36,"../modules/es6.math":37,"../modules/es6.number.constructor":38,"../modules/es6.number.statics":39,"../modules/es6.object.assign":40,"../modules/es6.object.is":41,"../modules/es6.object.set-prototype-of":42,"../modules/es6.object.statics-accept-primitives":43,"../modules/es6.object.to-string":44,"../modules/es6.promise":45,"../modules/es6.reflect":46,"../modules/es6.regexp":47,"../modules/es6.set":48,"../modules/es6.string.code-point-at":49,"../modules/es6.string.ends-with":50,"../modules/es6.string.from-code-point":51,"../modules/es6.string.includes":52,"../modules/es6.string.iterator":53,"../modules/es6.string.raw":54,"../modules/es6.string.repeat":55,"../modules/es6.string.starts-with":56,"../modules/es6.symbol":57,"../modules/es6.weak-map":58,"../modules/es6.weak-set":59}],4:[function(require,module,exports){ -'use strict';
-// 0 -> Array#forEach
-// 1 -> Array#map
-// 2 -> Array#filter
-// 3 -> Array#some
-// 4 -> Array#every
-// 5 -> Array#find
-// 6 -> Array#findIndex
-var $ = require('./$')
- , ctx = require('./$.ctx');
-module.exports = function(TYPE){
- var IS_MAP = TYPE == 1
- , IS_FILTER = TYPE == 2
- , IS_SOME = TYPE == 3
- , IS_EVERY = TYPE == 4
- , IS_FIND_INDEX = TYPE == 6
- , NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
- return function(callbackfn/*, that = undefined */){
- var O = Object($.assertDefined(this))
- , self = $.ES5Object(O)
- , f = ctx(callbackfn, arguments[1], 3)
- , length = $.toLength(self.length)
- , index = 0
- , result = IS_MAP ? Array(length) : IS_FILTER ? [] : undefined
- , val, res;
- for(;length > index; index++)if(NO_HOLES || index in self){
- val = self[index];
- res = f(val, index, O);
- if(TYPE){
- if(IS_MAP)result[index] = res; // map
- else if(res)switch(TYPE){
- case 3: return true; // some
- case 5: return val; // find
- case 6: return index; // findIndex
- case 2: result.push(val); // filter
- } else if(IS_EVERY)return false; // every
- }
- }
- return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
- };
-}; -},{"./$":16,"./$.ctx":11}],5:[function(require,module,exports){ -var $ = require('./$');
-function assert(condition, msg1, msg2){
- if(!condition)throw TypeError(msg2 ? msg1 + msg2 : msg1);
-}
-assert.def = $.assertDefined;
-assert.fn = function(it){
- if(!$.isFunction(it))throw TypeError(it + ' is not a function!');
- return it;
-};
-assert.obj = function(it){
- if(!$.isObject(it))throw TypeError(it + ' is not an object!');
- return it;
-};
-assert.inst = function(it, Constructor, name){
- if(!(it instanceof Constructor))throw TypeError(name + ": use the 'new' operator!");
- return it;
-};
-module.exports = assert; -},{"./$":16}],6:[function(require,module,exports){ -var $ = require('./$');
-// 19.1.2.1 Object.assign(target, source, ...)
-module.exports = Object.assign || function(target, source){ // eslint-disable-line no-unused-vars
- var T = Object($.assertDefined(target))
- , l = arguments.length
- , i = 1;
- while(l > i){
- var S = $.ES5Object(arguments[i++])
- , keys = $.getKeys(S)
- , length = keys.length
- , j = 0
- , key;
- while(length > j)T[key = keys[j++]] = S[key];
- }
- return T;
-}; -},{"./$":16}],7:[function(require,module,exports){ -var $ = require('./$')
- , TAG = require('./$.wks')('toStringTag')
- , toString = {}.toString;
-function cof(it){
- return toString.call(it).slice(8, -1);
-}
-cof.classof = function(it){
- var O, T;
- return it == undefined ? it === undefined ? 'Undefined' : 'Null'
- : typeof (T = (O = Object(it))[TAG]) == 'string' ? T : cof(O);
-};
-cof.set = function(it, tag, stat){
- if(it && !$.has(it = stat ? it : it.prototype, TAG))$.hide(it, TAG, tag);
-};
-module.exports = cof; -},{"./$":16,"./$.wks":26}],8:[function(require,module,exports){ -'use strict';
-var $ = require('./$')
- , ctx = require('./$.ctx')
- , safe = require('./$.uid').safe
- , assert = require('./$.assert')
- , $iter = require('./$.iter')
- , has = $.has
- , set = $.set
- , isObject = $.isObject
- , hide = $.hide
- , step = $iter.step
- , isFrozen = Object.isFrozen || $.core.Object.isFrozen
- , ID = safe('id')
- , O1 = safe('O1')
- , LAST = safe('last')
- , FIRST = safe('first')
- , ITER = safe('iter')
- , SIZE = $.DESC ? safe('size') : 'size'
- , id = 0;
-
-function fastKey(it, create){
- // return primitive with prefix
- if(!isObject(it))return (typeof it == 'string' ? 'S' : 'P') + it;
- // can't set id to frozen object
- if(isFrozen(it))return 'F';
- if(!has(it, ID)){
- // not necessary to add id
- if(!create)return 'E';
- // add missing object id
- hide(it, ID, ++id);
- // return object id with prefix
- } return 'O' + it[ID];
-}
-
-function getEntry(that, key){
- // fast case
- var index = fastKey(key), entry;
- if(index != 'F')return that[O1][index];
- // frozen object case
- for(entry = that[FIRST]; entry; entry = entry.n){
- if(entry.k == key)return entry;
- }
-}
-
-module.exports = {
- getConstructor: function(NAME, IS_MAP, ADDER){
- function C(iterable){
- var that = assert.inst(this, C, NAME);
- set(that, O1, $.create(null));
- set(that, SIZE, 0);
- set(that, LAST, undefined);
- set(that, FIRST, undefined);
- if(iterable != undefined)$iter.forOf(iterable, IS_MAP, that[ADDER], that);
- }
- $.mix(C.prototype, {
- // 23.1.3.1 Map.prototype.clear()
- // 23.2.3.2 Set.prototype.clear()
- clear: function(){
- for(var that = this, data = that[O1], entry = that[FIRST]; entry; entry = entry.n){
- entry.r = true;
- if(entry.p)entry.p = entry.p.n = undefined;
- delete data[entry.i];
- }
- that[FIRST] = that[LAST] = undefined;
- that[SIZE] = 0;
- },
- // 23.1.3.3 Map.prototype.delete(key)
- // 23.2.3.4 Set.prototype.delete(value)
- 'delete': function(key){
- var that = this
- , entry = getEntry(that, key);
- if(entry){
- var next = entry.n
- , prev = entry.p;
- delete that[O1][entry.i];
- entry.r = true;
- if(prev)prev.n = next;
- if(next)next.p = prev;
- if(that[FIRST] == entry)that[FIRST] = next;
- if(that[LAST] == entry)that[LAST] = prev;
- that[SIZE]--;
- } return !!entry;
- },
- // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
- // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
- forEach: function(callbackfn /*, that = undefined */){
- var f = ctx(callbackfn, arguments[1], 3)
- , entry;
- while(entry = entry ? entry.n : this[FIRST]){
- f(entry.v, entry.k, this);
- // revert to the last existing entry
- while(entry && entry.r)entry = entry.p;
- }
- },
- // 23.1.3.7 Map.prototype.has(key)
- // 23.2.3.7 Set.prototype.has(value)
- has: function(key){
- return !!getEntry(this, key);
- }
- });
- if($.DESC)$.setDesc(C.prototype, 'size', {
- get: function(){
- return assert.def(this[SIZE]);
- }
- });
- return C;
- },
- def: function(that, key, value){
- var entry = getEntry(that, key)
- , prev, index;
- // change existing entry
- if(entry){
- entry.v = value;
- // create new entry
- } else {
- that[LAST] = entry = {
- i: index = fastKey(key, true), // <- index
- k: key, // <- key
- v: value, // <- value
- p: prev = that[LAST], // <- previous entry
- n: undefined, // <- next entry
- r: false // <- removed
- };
- if(!that[FIRST])that[FIRST] = entry;
- if(prev)prev.n = entry;
- that[SIZE]++;
- // add to index
- if(index != 'F')that[O1][index] = entry;
- } return that;
- },
- getEntry: getEntry,
- getIterConstructor: function(){
- return function(iterated, kind){
- set(this, ITER, {o: iterated, k: kind});
- };
- },
- next: function(){
- var iter = this[ITER]
- , kind = iter.k
- , entry = iter.l;
- // revert to the last existing entry
- while(entry && entry.r)entry = entry.p;
- // get next entry
- if(!iter.o || !(iter.l = entry = entry ? entry.n : iter.o[FIRST])){
- // or finish the iteration
- iter.o = undefined;
- return step(1);
- }
- // return step by kind
- if(kind == 'key' )return step(0, entry.k);
- if(kind == 'value')return step(0, entry.v);
- return step(0, [entry.k, entry.v]);
- }
-}; -},{"./$":16,"./$.assert":5,"./$.ctx":11,"./$.iter":15,"./$.uid":24}],9:[function(require,module,exports){ -'use strict';
-var $ = require('./$')
- , safe = require('./$.uid').safe
- , assert = require('./$.assert')
- , forOf = require('./$.iter').forOf
- , has = $.has
- , isObject = $.isObject
- , hide = $.hide
- , isFrozen = Object.isFrozen || $.core.Object.isFrozen
- , id = 0
- , ID = safe('id')
- , WEAK = safe('weak')
- , LEAK = safe('leak')
- , method = require('./$.array-methods')
- , find = method(5)
- , findIndex = method(6);
-function findFrozen(store, key){
- return find.call(store.array, function(it){
- return it[0] === key;
- });
-}
-// fallback for frozen keys
-function leakStore(that){
- return that[LEAK] || hide(that, LEAK, {
- array: [],
- get: function(key){
- var entry = findFrozen(this, key);
- if(entry)return entry[1];
- },
- has: function(key){
- return !!findFrozen(this, key);
- },
- set: function(key, value){
- var entry = findFrozen(this, key);
- if(entry)entry[1] = value;
- else this.array.push([key, value]);
- },
- 'delete': function(key){
- var index = findIndex.call(this.array, function(it){
- return it[0] === key;
- });
- if(~index)this.array.splice(index, 1);
- return !!~index;
- }
- })[LEAK];
-}
-
-module.exports = {
- getConstructor: function(NAME, IS_MAP, ADDER){
- function C(iterable){
- $.set(assert.inst(this, C, NAME), ID, id++);
- if(iterable != undefined)forOf(iterable, IS_MAP, this[ADDER], this);
- }
- $.mix(C.prototype, {
- // 23.3.3.2 WeakMap.prototype.delete(key)
- // 23.4.3.3 WeakSet.prototype.delete(value)
- 'delete': function(key){
- if(!isObject(key))return false;
- if(isFrozen(key))return leakStore(this)['delete'](key);
- return has(key, WEAK) && has(key[WEAK], this[ID]) && delete key[WEAK][this[ID]];
- },
- // 23.3.3.4 WeakMap.prototype.has(key)
- // 23.4.3.4 WeakSet.prototype.has(value)
- has: function(key){
- if(!isObject(key))return false;
- if(isFrozen(key))return leakStore(this).has(key);
- return has(key, WEAK) && has(key[WEAK], this[ID]);
- }
- });
- return C;
- },
- def: function(that, key, value){
- if(isFrozen(assert.obj(key))){
- leakStore(that).set(key, value);
- } else {
- has(key, WEAK) || hide(key, WEAK, {});
- key[WEAK][that[ID]] = value;
- } return that;
- },
- leakStore: leakStore,
- WEAK: WEAK,
- ID: ID
-}; -},{"./$":16,"./$.array-methods":4,"./$.assert":5,"./$.iter":15,"./$.uid":24}],10:[function(require,module,exports){ -'use strict';
-var $ = require('./$')
- , $def = require('./$.def')
- , $iter = require('./$.iter')
- , assertInstance = require('./$.assert').inst;
-
-module.exports = function(NAME, methods, common, IS_MAP, isWeak){
- var Base = $.g[NAME]
- , C = Base
- , ADDER = IS_MAP ? 'set' : 'add'
- , proto = C && C.prototype
- , O = {};
- function fixMethod(KEY, CHAIN){
- var method = proto[KEY];
- if($.FW)proto[KEY] = function(a, b){
- var result = method.call(this, a === 0 ? 0 : a, b);
- return CHAIN ? this : result;
- };
- }
- if(!$.isFunction(C) || !(isWeak || !$iter.BUGGY && proto.forEach && proto.entries)){
- // create collection constructor
- C = common.getConstructor(NAME, IS_MAP, ADDER);
- $.mix(C.prototype, methods);
- } else {
- var inst = new C
- , chain = inst[ADDER](isWeak ? {} : -0, 1)
- , buggyZero;
- // wrap for init collections from iterable
- if($iter.fail(function(iter){
- new C(iter); // eslint-disable-line no-new
- }) || $iter.DANGER_CLOSING){
- C = function(iterable){
- assertInstance(this, C, NAME);
- var that = new Base;
- if(iterable != undefined)$iter.forOf(iterable, IS_MAP, that[ADDER], that);
- return that;
- };
- C.prototype = proto;
- if($.FW)proto.constructor = C;
- }
- isWeak || inst.forEach(function(val, key){
- buggyZero = 1 / key === -Infinity;
- });
- // fix converting -0 key to +0
- if(buggyZero){
- fixMethod('delete');
- fixMethod('has');
- IS_MAP && fixMethod('get');
- }
- // + fix .add & .set for chaining
- if(buggyZero || chain !== inst)fixMethod(ADDER, true);
- }
-
- require('./$.cof').set(C, NAME);
- require('./$.species')(C);
-
- O[NAME] = C;
- $def($def.G + $def.W + $def.F * (C != Base), O);
-
- // add .keys, .values, .entries, [@@iterator]
- // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
- if(!isWeak)$iter.std(
- C, NAME,
- common.getIterConstructor(), common.next,
- IS_MAP ? 'key+value' : 'value' , !IS_MAP, true
- );
-
- return C;
-}; -},{"./$":16,"./$.assert":5,"./$.cof":7,"./$.def":12,"./$.iter":15,"./$.species":21}],11:[function(require,module,exports){ -// Optional / simple context binding
-var assertFunction = require('./$.assert').fn;
-module.exports = function(fn, that, length){
- assertFunction(fn);
- if(~length && that === undefined)return fn;
- switch(length){
- case 1: return function(a){
- return fn.call(that, a);
- };
- case 2: return function(a, b){
- return fn.call(that, a, b);
- };
- case 3: return function(a, b, c){
- return fn.call(that, a, b, c);
- };
- } return function(/* ...args */){
- return fn.apply(that, arguments);
- };
-}; -},{"./$.assert":5}],12:[function(require,module,exports){ -var $ = require('./$')
- , global = $.g
- , core = $.core
- , isFunction = $.isFunction;
-function ctx(fn, that){
- return function(){
- return fn.apply(that, arguments);
- };
-}
-global.core = core;
-// type bitmap
-$def.F = 1; // forced
-$def.G = 2; // global
-$def.S = 4; // static
-$def.P = 8; // proto
-$def.B = 16; // bind
-$def.W = 32; // wrap
-function $def(type, name, source){
- var key, own, out, exp
- , isGlobal = type & $def.G
- , target = isGlobal ? global : type & $def.S
- ? global[name] : (global[name] || {}).prototype
- , exports = isGlobal ? core : core[name] || (core[name] = {});
- if(isGlobal)source = name;
- for(key in source){
- // contains in native
- own = !(type & $def.F) && target && key in target;
- // export native or passed
- out = (own ? target : source)[key];
- // bind timers to global for call from export context
- if(type & $def.B && own)exp = ctx(out, global);
- else exp = type & $def.P && isFunction(out) ? ctx(Function.call, out) : out;
- // extend global
- if(target && !own){
- if(isGlobal)target[key] = out;
- else delete target[key] && $.hide(target, key, out);
- }
- // export
- if(exports[key] != out)$.hide(exports, key, exp);
- }
-}
-module.exports = $def; -},{"./$":16}],13:[function(require,module,exports){ -module.exports = function($){
- $.FW = true;
- $.path = $.g;
- return $;
-}; -},{}],14:[function(require,module,exports){ -// Fast apply
-// http://jsperf.lnkit.com/fast-apply/5
-module.exports = function(fn, args, that){
- var un = that === undefined;
- switch(args.length){
- case 0: return un ? fn()
- : fn.call(that);
- case 1: return un ? fn(args[0])
- : fn.call(that, args[0]);
- case 2: return un ? fn(args[0], args[1])
- : fn.call(that, args[0], args[1]);
- case 3: return un ? fn(args[0], args[1], args[2])
- : fn.call(that, args[0], args[1], args[2]);
- case 4: return un ? fn(args[0], args[1], args[2], args[3])
- : fn.call(that, args[0], args[1], args[2], args[3]);
- case 5: return un ? fn(args[0], args[1], args[2], args[3], args[4])
- : fn.call(that, args[0], args[1], args[2], args[3], args[4]);
- } return fn.apply(that, args);
-}; -},{}],15:[function(require,module,exports){ -'use strict';
-var $ = require('./$')
- , ctx = require('./$.ctx')
- , cof = require('./$.cof')
- , $def = require('./$.def')
- , assertObject = require('./$.assert').obj
- , SYMBOL_ITERATOR = require('./$.wks')('iterator')
- , FF_ITERATOR = '@@iterator'
- , Iterators = {}
- , IteratorPrototype = {};
-// Safari has byggy iterators w/o `next`
-var BUGGY = 'keys' in [] && !('next' in [].keys());
-// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
-setIterator(IteratorPrototype, $.that);
-function setIterator(O, value){
- $.hide(O, SYMBOL_ITERATOR, value);
- // Add iterator for FF iterator protocol
- if(FF_ITERATOR in [])$.hide(O, FF_ITERATOR, value);
-}
-function defineIterator(Constructor, NAME, value, DEFAULT){
- var proto = Constructor.prototype
- , iter = proto[SYMBOL_ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT] || value;
- // Define iterator
- if($.FW)setIterator(proto, iter);
- if(iter !== value){
- var iterProto = $.getProto(iter.call(new Constructor));
- // Set @@toStringTag to native iterators
- cof.set(iterProto, NAME + ' Iterator', true);
- // FF fix
- if($.FW)$.has(proto, FF_ITERATOR) && setIterator(iterProto, $.that);
- }
- // Plug for library
- Iterators[NAME] = iter;
- // FF & v8 fix
- Iterators[NAME + ' Iterator'] = $.that;
- return iter;
-}
-function getIterator(it){
- var Symbol = $.g.Symbol
- , ext = it[Symbol && Symbol.iterator || FF_ITERATOR]
- , getIter = ext || it[SYMBOL_ITERATOR] || Iterators[cof.classof(it)];
- return assertObject(getIter.call(it));
-}
-function closeIterator(iterator){
- var ret = iterator['return'];
- if(ret !== undefined)assertObject(ret.call(iterator));
-}
-function stepCall(iterator, fn, value, entries){
- try {
- return entries ? fn(assertObject(value)[0], value[1]) : fn(value);
- } catch(e){
- closeIterator(iterator);
- throw e;
- }
-}
-var DANGER_CLOSING = true;
-!function(){
- try {
- var iter = [1].keys();
- iter['return'] = function(){ DANGER_CLOSING = false; };
- Array.from(iter, function(){ throw 2; });
- } catch(e){ /* empty */ }
-}();
-var $iter = module.exports = {
- BUGGY: BUGGY,
- DANGER_CLOSING: DANGER_CLOSING,
- fail: function(exec){
- var fail = true;
- try {
- var arr = [[{}, 1]]
- , iter = arr[SYMBOL_ITERATOR]()
- , next = iter.next;
- iter.next = function(){
- fail = false;
- return next.call(this);
- };
- arr[SYMBOL_ITERATOR] = function(){
- return iter;
- };
- exec(arr);
- } catch(e){ /* empty */ }
- return fail;
- },
- Iterators: Iterators,
- prototype: IteratorPrototype,
- step: function(done, value){
- return {value: value, done: !!done};
- },
- stepCall: stepCall,
- close: closeIterator,
- is: function(it){
- var O = Object(it)
- , Symbol = $.g.Symbol
- , SYM = Symbol && Symbol.iterator || FF_ITERATOR;
- return SYM in O || SYMBOL_ITERATOR in O || $.has(Iterators, cof.classof(O));
- },
- get: getIterator,
- set: setIterator,
- create: function(Constructor, NAME, next, proto){
- Constructor.prototype = $.create(proto || $iter.prototype, {next: $.desc(1, next)});
- cof.set(Constructor, NAME + ' Iterator');
- },
- define: defineIterator,
- std: function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCE){
- function createIter(kind){
- return function(){
- return new Constructor(this, kind);
- };
- }
- $iter.create(Constructor, NAME, next);
- var entries = createIter('key+value')
- , values = createIter('value')
- , proto = Base.prototype
- , methods, key;
- if(DEFAULT == 'value')values = defineIterator(Base, NAME, values, 'values');
- else entries = defineIterator(Base, NAME, entries, 'entries');
- if(DEFAULT){
- methods = {
- entries: entries,
- keys: IS_SET ? values : createIter('key'),
- values: values
- };
- $def($def.P + $def.F * BUGGY, NAME, methods);
- if(FORCE)for(key in methods){
- if(!(key in proto))$.hide(proto, key, methods[key]);
- }
- }
- },
- forOf: function(iterable, entries, fn, that){
- var iterator = getIterator(iterable)
- , f = ctx(fn, that, entries ? 2 : 1)
- , step;
- while(!(step = iterator.next()).done){
- if(stepCall(iterator, f, step.value, entries) === false){
- return closeIterator(iterator);
- }
- }
- }
-}; -},{"./$":16,"./$.assert":5,"./$.cof":7,"./$.ctx":11,"./$.def":12,"./$.wks":26}],16:[function(require,module,exports){ -'use strict';
-var global = typeof self != 'undefined' ? self : Function('return this')()
- , core = {}
- , defineProperty = Object.defineProperty
- , hasOwnProperty = {}.hasOwnProperty
- , ceil = Math.ceil
- , floor = Math.floor
- , max = Math.max
- , min = Math.min;
-// The engine works fine with descriptors? Thank's IE8 for his funny defineProperty.
-var DESC = !!function(){
- try {
- return defineProperty({}, 'a', {get: function(){ return 2; }}).a == 2;
- } catch(e){ /* empty */ }
-}();
-var hide = createDefiner(1);
-// 7.1.4 ToInteger
-function toInteger(it){
- return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
-}
-function desc(bitmap, value){
- return {
- enumerable : !(bitmap & 1),
- configurable: !(bitmap & 2),
- writable : !(bitmap & 4),
- value : value
- };
-}
-function simpleSet(object, key, value){
- object[key] = value;
- return object;
-}
-function createDefiner(bitmap){
- return DESC ? function(object, key, value){
- return $.setDesc(object, key, desc(bitmap, value)); // eslint-disable-line no-use-before-define
- } : simpleSet;
-}
-
-function isObject(it){
- return it !== null && (typeof it == 'object' || typeof it == 'function');
-}
-function isFunction(it){
- return typeof it == 'function';
-}
-function assertDefined(it){
- if(it == undefined)throw TypeError("Can't call method on " + it);
- return it;
-}
-
-var $ = module.exports = require('./$.fw')({
- g: global,
- core: core,
- html: global.document && document.documentElement,
- // http://jsperf.com/core-js-isobject
- isObject: isObject,
- isFunction: isFunction,
- it: function(it){
- return it;
- },
- that: function(){
- return this;
- },
- // 7.1.4 ToInteger
- toInteger: toInteger,
- // 7.1.15 ToLength
- toLength: function(it){
- return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
- },
- toIndex: function(index, length){
- index = toInteger(index);
- return index < 0 ? max(index + length, 0) : min(index, length);
- },
- has: function(it, key){
- return hasOwnProperty.call(it, key);
- },
- create: Object.create,
- getProto: Object.getPrototypeOf,
- DESC: DESC,
- desc: desc,
- getDesc: Object.getOwnPropertyDescriptor,
- setDesc: defineProperty,
- getKeys: Object.keys,
- getNames: Object.getOwnPropertyNames,
- getSymbols: Object.getOwnPropertySymbols,
- // Dummy, fix for not array-like ES3 string in es5 module
- assertDefined: assertDefined,
- ES5Object: Object,
- toObject: function(it){
- return $.ES5Object(assertDefined(it));
- },
- hide: hide,
- def: createDefiner(0),
- set: global.Symbol ? simpleSet : hide,
- mix: function(target, src){
- for(var key in src)hide(target, key, src[key]);
- return target;
- },
- each: [].forEach
-});
-if(typeof __e != 'undefined')__e = core;
-if(typeof __g != 'undefined')__g = global; -},{"./$.fw":13}],17:[function(require,module,exports){ -var $ = require('./$');
-module.exports = function(object, el){
- var O = $.toObject(object)
- , keys = $.getKeys(O)
- , length = keys.length
- , index = 0
- , key;
- while(length > index)if(O[key = keys[index++]] === el)return key;
-}; -},{"./$":16}],18:[function(require,module,exports){ -var $ = require('./$')
- , assertObject = require('./$.assert').obj;
-module.exports = function(it){
- assertObject(it);
- return $.getSymbols ? $.getNames(it).concat($.getSymbols(it)) : $.getNames(it);
-}; -},{"./$":16,"./$.assert":5}],19:[function(require,module,exports){ -'use strict';
-module.exports = function(regExp, replace, isStatic){
- var replacer = replace === Object(replace) ? function(part){
- return replace[part];
- } : replace;
- return function(it){
- return String(isStatic ? it : this).replace(regExp, replacer);
- };
-}; -},{}],20:[function(require,module,exports){ -// Works with __proto__ only. Old v8 can't works with null proto objects.
-/*eslint-disable no-proto */
-var $ = require('./$')
- , assert = require('./$.assert');
-module.exports = Object.setPrototypeOf || ('__proto__' in {} // eslint-disable-line
- ? function(buggy, set){
- try {
- set = require('./$.ctx')(Function.call, $.getDesc(Object.prototype, '__proto__').set, 2);
- set({}, []);
- } catch(e){ buggy = true; }
- return function(O, proto){
- assert.obj(O);
- assert(proto === null || $.isObject(proto), proto, ": can't set as prototype!");
- if(buggy)O.__proto__ = proto;
- else set(O, proto);
- return O;
- };
- }()
- : undefined); -},{"./$":16,"./$.assert":5,"./$.ctx":11}],21:[function(require,module,exports){ -var $ = require('./$');
-module.exports = function(C){
- if($.DESC && $.FW)$.setDesc(C, require('./$.wks')('species'), {
- configurable: true,
- get: $.that
- });
-}; -},{"./$":16,"./$.wks":26}],22:[function(require,module,exports){ -'use strict';
-// true -> String#at
-// false -> String#codePointAt
-var $ = require('./$');
-module.exports = function(TO_STRING){
- return function(pos){
- var s = String($.assertDefined(this))
- , i = $.toInteger(pos)
- , l = s.length
- , a, b;
- if(i < 0 || i >= l)return TO_STRING ? '' : undefined;
- a = s.charCodeAt(i);
- return a < 0xd800 || a > 0xdbff || i + 1 === l
- || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
- ? TO_STRING ? s.charAt(i) : a
- : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
- };
-}; -},{"./$":16}],23:[function(require,module,exports){ -'use strict';
-var $ = require('./$')
- , ctx = require('./$.ctx')
- , cof = require('./$.cof')
- , invoke = require('./$.invoke')
- , global = $.g
- , isFunction = $.isFunction
- , setTask = global.setImmediate
- , clearTask = global.clearImmediate
- , postMessage = global.postMessage
- , addEventListener = global.addEventListener
- , MessageChannel = global.MessageChannel
- , counter = 0
- , queue = {}
- , ONREADYSTATECHANGE = 'onreadystatechange'
- , defer, channel, port;
-function run(){
- var id = +this;
- if($.has(queue, id)){
- var fn = queue[id];
- delete queue[id];
- fn();
- }
-}
-function listner(event){
- run.call(event.data);
-}
-// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
-if(!isFunction(setTask) || !isFunction(clearTask)){
- setTask = function(fn){
- var args = [], i = 1;
- while(arguments.length > i)args.push(arguments[i++]);
- queue[++counter] = function(){
- invoke(isFunction(fn) ? fn : Function(fn), args);
- };
- defer(counter);
- return counter;
- };
- clearTask = function(id){
- delete queue[id];
- };
- // Node.js 0.8-
- if(cof(global.process) == 'process'){
- defer = function(id){
- global.process.nextTick(ctx(run, id, 1));
- };
- // Modern browsers, skip implementation for WebWorkers
- // IE8 has postMessage, but it's sync & typeof its postMessage is object
- } else if(addEventListener && isFunction(postMessage) && !$.g.importScripts){
- defer = function(id){
- postMessage(id, '*');
- };
- addEventListener('message', listner, false);
- // WebWorkers
- } else if(isFunction(MessageChannel)){
- channel = new MessageChannel;
- port = channel.port2;
- channel.port1.onmessage = listner;
- defer = ctx(port.postMessage, port, 1);
- // IE8-
- } else if($.g.document && ONREADYSTATECHANGE in document.createElement('script')){
- defer = function(id){
- $.html.appendChild(document.createElement('script'))[ONREADYSTATECHANGE] = function(){
- $.html.removeChild(this);
- run.call(id);
- };
- };
- // Rest old browsers
- } else {
- defer = function(id){
- setTimeout(ctx(run, id, 1), 0);
- };
- }
-}
-module.exports = {
- set: setTask,
- clear: clearTask
-}; -},{"./$":16,"./$.cof":7,"./$.ctx":11,"./$.invoke":14}],24:[function(require,module,exports){ -var sid = 0;
-function uid(key){
- return 'Symbol(' + key + ')_' + (++sid + Math.random()).toString(36);
-}
-uid.safe = require('./$').g.Symbol || uid;
-module.exports = uid; -},{"./$":16}],25:[function(require,module,exports){ -// 22.1.3.31 Array.prototype[@@unscopables]
-var $ = require('./$')
- , UNSCOPABLES = require('./$.wks')('unscopables');
-if($.FW && !(UNSCOPABLES in []))$.hide(Array.prototype, UNSCOPABLES, {});
-module.exports = function(key){
- if($.FW)[][UNSCOPABLES][key] = true;
-}; -},{"./$":16,"./$.wks":26}],26:[function(require,module,exports){ -var global = require('./$').g
- , store = {};
-module.exports = function(name){
- return store[name] || (store[name] =
- global.Symbol && global.Symbol[name] || require('./$.uid').safe('Symbol.' + name));
-}; -},{"./$":16,"./$.uid":24}],27:[function(require,module,exports){ -'use strict';
-var $ = require('./$')
- , $def = require('./$.def')
- , toIndex = $.toIndex;
-$def($def.P, 'Array', {
- // 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
- copyWithin: function(target/* = 0 */, start /* = 0, end = @length */){
- var O = Object($.assertDefined(this))
- , len = $.toLength(O.length)
- , to = toIndex(target, len)
- , from = toIndex(start, len)
- , end = arguments[2]
- , fin = end === undefined ? len : toIndex(end, len)
- , count = Math.min(fin - from, len - to)
- , inc = 1;
- if(from < to && to < from + count){
- inc = -1;
- from = from + count - 1;
- to = to + count - 1;
- }
- while(count-- > 0){
- if(from in O)O[to] = O[from];
- else delete O[to];
- to += inc;
- from += inc;
- } return O;
- }
-});
-require('./$.unscope')('copyWithin'); -},{"./$":16,"./$.def":12,"./$.unscope":25}],28:[function(require,module,exports){ -'use strict';
-var $ = require('./$')
- , $def = require('./$.def')
- , toIndex = $.toIndex;
-$def($def.P, 'Array', {
- // 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
- fill: function(value /*, start = 0, end = @length */){
- var O = Object($.assertDefined(this))
- , length = $.toLength(O.length)
- , index = toIndex(arguments[1], length)
- , end = arguments[2]
- , endPos = end === undefined ? length : toIndex(end, length);
- while(endPos > index)O[index++] = value;
- return O;
- }
-});
-require('./$.unscope')('fill'); -},{"./$":16,"./$.def":12,"./$.unscope":25}],29:[function(require,module,exports){ -var $def = require('./$.def');
-$def($def.P, 'Array', {
- // 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
- findIndex: require('./$.array-methods')(6)
-});
-require('./$.unscope')('findIndex'); -},{"./$.array-methods":4,"./$.def":12,"./$.unscope":25}],30:[function(require,module,exports){ -var $def = require('./$.def');
-$def($def.P, 'Array', {
- // 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
- find: require('./$.array-methods')(5)
-});
-require('./$.unscope')('find'); -},{"./$.array-methods":4,"./$.def":12,"./$.unscope":25}],31:[function(require,module,exports){ -var $ = require('./$')
- , ctx = require('./$.ctx')
- , $def = require('./$.def')
- , $iter = require('./$.iter')
- , stepCall = $iter.stepCall;
-$def($def.S + $def.F * $iter.DANGER_CLOSING, 'Array', {
- // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
- from: function(arrayLike/*, mapfn = undefined, thisArg = undefined*/){
- var O = Object($.assertDefined(arrayLike))
- , mapfn = arguments[1]
- , mapping = mapfn !== undefined
- , f = mapping ? ctx(mapfn, arguments[2], 2) : undefined
- , index = 0
- , length, result, step, iterator;
- if($iter.is(O)){
- iterator = $iter.get(O);
- // strange IE quirks mode bug -> use typeof instead of isFunction
- result = new (typeof this == 'function' ? this : Array);
- for(; !(step = iterator.next()).done; index++){
- result[index] = mapping ? stepCall(iterator, f, [step.value, index], true) : step.value;
- }
- } else {
- // strange IE quirks mode bug -> use typeof instead of isFunction
- result = new (typeof this == 'function' ? this : Array)(length = $.toLength(O.length));
- for(; length > index; index++){
- result[index] = mapping ? f(O[index], index) : O[index];
- }
- }
- result.length = index;
- return result;
- }
-}); -},{"./$":16,"./$.ctx":11,"./$.def":12,"./$.iter":15}],32:[function(require,module,exports){ -var $ = require('./$')
- , setUnscope = require('./$.unscope')
- , ITER = require('./$.uid').safe('iter')
- , $iter = require('./$.iter')
- , step = $iter.step
- , Iterators = $iter.Iterators;
-
-// 22.1.3.4 Array.prototype.entries()
-// 22.1.3.13 Array.prototype.keys()
-// 22.1.3.29 Array.prototype.values()
-// 22.1.3.30 Array.prototype[@@iterator]()
-$iter.std(Array, 'Array', function(iterated, kind){
- $.set(this, ITER, {o: $.toObject(iterated), i: 0, k: kind});
-// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
-}, function(){
- var iter = this[ITER]
- , O = iter.o
- , kind = iter.k
- , index = iter.i++;
- if(!O || index >= O.length){
- iter.o = undefined;
- return step(1);
- }
- if(kind == 'key' )return step(0, index);
- if(kind == 'value')return step(0, O[index]);
- return step(0, [index, O[index]]);
-}, 'value');
-
-// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
-Iterators.Arguments = Iterators.Array;
-
-setUnscope('keys');
-setUnscope('values');
-setUnscope('entries'); -},{"./$":16,"./$.iter":15,"./$.uid":24,"./$.unscope":25}],33:[function(require,module,exports){ -var $def = require('./$.def');
-$def($def.S, 'Array', {
- // 22.1.2.3 Array.of( ...items)
- of: function(/* ...args */){
- var index = 0
- , length = arguments.length
- // strange IE quirks mode bug -> use typeof instead of isFunction
- , result = new (typeof this == 'function' ? this : Array)(length);
- while(length > index)result[index] = arguments[index++];
- result.length = length;
- return result;
- }
-}); -},{"./$.def":12}],34:[function(require,module,exports){ -require('./$.species')(Array); -},{"./$.species":21}],35:[function(require,module,exports){ -'use strict';
-var $ = require('./$')
- , NAME = 'name'
- , setDesc = $.setDesc
- , FunctionProto = Function.prototype;
-// 19.2.4.2 name
-NAME in FunctionProto || $.FW && $.DESC && setDesc(FunctionProto, NAME, {
- configurable: true,
- get: function(){
- var match = String(this).match(/^\s*function ([^ (]*)/)
- , name = match ? match[1] : '';
- $.has(this, NAME) || setDesc(this, NAME, $.desc(5, name));
- return name;
- },
- set: function(value){
- $.has(this, NAME) || setDesc(this, NAME, $.desc(0, value));
- }
-}); -},{"./$":16}],36:[function(require,module,exports){ -'use strict';
-var strong = require('./$.collection-strong');
-
-// 23.1 Map Objects
-require('./$.collection')('Map', {
- // 23.1.3.6 Map.prototype.get(key)
- get: function(key){
- var entry = strong.getEntry(this, key);
- return entry && entry.v;
- },
- // 23.1.3.9 Map.prototype.set(key, value)
- set: function(key, value){
- return strong.def(this, key === 0 ? 0 : key, value);
- }
-}, strong, true); -},{"./$.collection":10,"./$.collection-strong":8}],37:[function(require,module,exports){ -var Infinity = 1 / 0
- , $def = require('./$.def')
- , E = Math.E
- , pow = Math.pow
- , abs = Math.abs
- , exp = Math.exp
- , log = Math.log
- , sqrt = Math.sqrt
- , ceil = Math.ceil
- , floor = Math.floor
- , sign = Math.sign || function(x){
- return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
- };
-
-// 20.2.2.5 Math.asinh(x)
-function asinh(x){
- return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : log(x + sqrt(x * x + 1));
-}
-// 20.2.2.14 Math.expm1(x)
-function expm1(x){
- return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : exp(x) - 1;
-}
-
-$def($def.S, 'Math', {
- // 20.2.2.3 Math.acosh(x)
- acosh: function(x){
- return (x = +x) < 1 ? NaN : isFinite(x) ? log(x / E + sqrt(x + 1) * sqrt(x - 1) / E) + 1 : x;
- },
- // 20.2.2.5 Math.asinh(x)
- asinh: asinh,
- // 20.2.2.7 Math.atanh(x)
- atanh: function(x){
- return (x = +x) == 0 ? x : log((1 + x) / (1 - x)) / 2;
- },
- // 20.2.2.9 Math.cbrt(x)
- cbrt: function(x){
- return sign(x = +x) * pow(abs(x), 1 / 3);
- },
- // 20.2.2.11 Math.clz32(x)
- clz32: function(x){
- return (x >>>= 0) ? 32 - x.toString(2).length : 32;
- },
- // 20.2.2.12 Math.cosh(x)
- cosh: function(x){
- return (exp(x = +x) + exp(-x)) / 2;
- },
- // 20.2.2.14 Math.expm1(x)
- expm1: expm1,
- // 20.2.2.16 Math.fround(x)
- // TODO: fallback for IE9-
- fround: function(x){
- return new Float32Array([x])[0];
- },
- // 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
- hypot: function(value1, value2){ // eslint-disable-line no-unused-vars
- var sum = 0
- , len1 = arguments.length
- , len2 = len1
- , args = Array(len1)
- , larg = -Infinity
- , arg;
- while(len1--){
- arg = args[len1] = +arguments[len1];
- if(arg == Infinity || arg == -Infinity)return Infinity;
- if(arg > larg)larg = arg;
- }
- larg = arg || 1;
- while(len2--)sum += pow(args[len2] / larg, 2);
- return larg * sqrt(sum);
- },
- // 20.2.2.18 Math.imul(x, y)
- imul: function(x, y){
- var UInt16 = 0xffff
- , xn = +x
- , yn = +y
- , xl = UInt16 & xn
- , yl = UInt16 & yn;
- return 0 | xl * yl + ((UInt16 & xn >>> 16) * yl + xl * (UInt16 & yn >>> 16) << 16 >>> 0);
- },
- // 20.2.2.20 Math.log1p(x)
- log1p: function(x){
- return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : log(1 + x);
- },
- // 20.2.2.21 Math.log10(x)
- log10: function(x){
- return log(x) / Math.LN10;
- },
- // 20.2.2.22 Math.log2(x)
- log2: function(x){
- return log(x) / Math.LN2;
- },
- // 20.2.2.28 Math.sign(x)
- sign: sign,
- // 20.2.2.30 Math.sinh(x)
- sinh: function(x){
- return abs(x = +x) < 1 ? (expm1(x) - expm1(-x)) / 2 : (exp(x - 1) - exp(-x - 1)) * (E / 2);
- },
- // 20.2.2.33 Math.tanh(x)
- tanh: function(x){
- var a = expm1(x = +x)
- , b = expm1(-x);
- return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));
- },
- // 20.2.2.34 Math.trunc(x)
- trunc: function(it){
- return (it > 0 ? floor : ceil)(it);
- }
-}); -},{"./$.def":12}],38:[function(require,module,exports){ -'use strict';
-var $ = require('./$')
- , isObject = $.isObject
- , isFunction = $.isFunction
- , NUMBER = 'Number'
- , Number = $.g[NUMBER]
- , Base = Number
- , proto = Number.prototype;
-function toPrimitive(it){
- var fn, val;
- if(isFunction(fn = it.valueOf) && !isObject(val = fn.call(it)))return val;
- if(isFunction(fn = it.toString) && !isObject(val = fn.call(it)))return val;
- throw TypeError("Can't convert object to number");
-}
-function toNumber(it){
- if(isObject(it))it = toPrimitive(it);
- if(typeof it == 'string' && it.length > 2 && it.charCodeAt(0) == 48){
- var binary = false;
- switch(it.charCodeAt(1)){
- case 66 : case 98 : binary = true;
- case 79 : case 111 : return parseInt(it.slice(2), binary ? 2 : 8);
- }
- } return +it;
-}
-if($.FW && !(Number('0o1') && Number('0b1'))){
- Number = function Number(it){
- return this instanceof Number ? new Base(toNumber(it)) : toNumber(it);
- };
- $.each.call($.DESC ? $.getNames(Base) : (
- // ES3:
- 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +
- // ES6 (in case, if modules with ES6 Number statics required before):
- 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +
- 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'
- ).split(','), function(key){
- if($.has(Base, key) && !$.has(Number, key)){
- $.setDesc(Number, key, $.getDesc(Base, key));
- }
- }
- );
- Number.prototype = proto;
- proto.constructor = Number;
- $.hide($.g, NUMBER, Number);
-} -},{"./$":16}],39:[function(require,module,exports){ -var $ = require('./$')
- , $def = require('./$.def')
- , abs = Math.abs
- , floor = Math.floor
- , MAX_SAFE_INTEGER = 0x1fffffffffffff; // pow(2, 53) - 1 == 9007199254740991;
-function isInteger(it){
- return !$.isObject(it) && isFinite(it) && floor(it) === it;
-}
-$def($def.S, 'Number', {
- // 20.1.2.1 Number.EPSILON
- EPSILON: Math.pow(2, -52),
- // 20.1.2.2 Number.isFinite(number)
- isFinite: function(it){
- return typeof it == 'number' && isFinite(it);
- },
- // 20.1.2.3 Number.isInteger(number)
- isInteger: isInteger,
- // 20.1.2.4 Number.isNaN(number)
- isNaN: function(number){
- return number != number;
- },
- // 20.1.2.5 Number.isSafeInteger(number)
- isSafeInteger: function(number){
- return isInteger(number) && abs(number) <= MAX_SAFE_INTEGER;
- },
- // 20.1.2.6 Number.MAX_SAFE_INTEGER
- MAX_SAFE_INTEGER: MAX_SAFE_INTEGER,
- // 20.1.2.10 Number.MIN_SAFE_INTEGER
- MIN_SAFE_INTEGER: -MAX_SAFE_INTEGER,
- // 20.1.2.12 Number.parseFloat(string)
- parseFloat: parseFloat,
- // 20.1.2.13 Number.parseInt(string, radix)
- parseInt: parseInt
-}); -},{"./$":16,"./$.def":12}],40:[function(require,module,exports){ -// 19.1.3.1 Object.assign(target, source)
-var $def = require('./$.def');
-$def($def.S, 'Object', {assign: require('./$.assign')}); -},{"./$.assign":6,"./$.def":12}],41:[function(require,module,exports){ -// 19.1.3.10 Object.is(value1, value2)
-var $def = require('./$.def');
-$def($def.S, 'Object', {
- is: function(x, y){
- return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
- }
-}); -},{"./$.def":12}],42:[function(require,module,exports){ -// 19.1.3.19 Object.setPrototypeOf(O, proto)
-var $def = require('./$.def');
-$def($def.S, 'Object', {setPrototypeOf: require('./$.set-proto')}); -},{"./$.def":12,"./$.set-proto":20}],43:[function(require,module,exports){ -var $ = require('./$')
- , $def = require('./$.def')
- , isObject = $.isObject
- , toObject = $.toObject;
-function wrapObjectMethod(METHOD, MODE){
- var fn = ($.core.Object || {})[METHOD] || Object[METHOD]
- , f = 0
- , o = {};
- o[METHOD] = MODE == 1 ? function(it){
- return isObject(it) ? fn(it) : it;
- } : MODE == 2 ? function(it){
- return isObject(it) ? fn(it) : true;
- } : MODE == 3 ? function(it){
- return isObject(it) ? fn(it) : false;
- } : MODE == 4 ? function(it, key){
- return fn(toObject(it), key);
- } : MODE == 5 ? function(it){
- return fn(Object($.assertDefined(it)));
- } : function(it){
- return fn(toObject(it));
- };
- try {
- fn('z');
- } catch(e){
- f = 1;
- }
- $def($def.S + $def.F * f, 'Object', o);
-}
-wrapObjectMethod('freeze', 1);
-wrapObjectMethod('seal', 1);
-wrapObjectMethod('preventExtensions', 1);
-wrapObjectMethod('isFrozen', 2);
-wrapObjectMethod('isSealed', 2);
-wrapObjectMethod('isExtensible', 3);
-wrapObjectMethod('getOwnPropertyDescriptor', 4);
-wrapObjectMethod('getPrototypeOf', 5);
-wrapObjectMethod('keys');
-wrapObjectMethod('getOwnPropertyNames'); -},{"./$":16,"./$.def":12}],44:[function(require,module,exports){ -'use strict';
-// 19.1.3.6 Object.prototype.toString()
-var $ = require('./$')
- , cof = require('./$.cof')
- , tmp = {};
-tmp[require('./$.wks')('toStringTag')] = 'z';
-if($.FW && cof(tmp) != 'z')$.hide(Object.prototype, 'toString', function(){
- return '[object ' + cof.classof(this) + ']';
-}); -},{"./$":16,"./$.cof":7,"./$.wks":26}],45:[function(require,module,exports){ -'use strict';
-var $ = require('./$')
- , ctx = require('./$.ctx')
- , cof = require('./$.cof')
- , $def = require('./$.def')
- , assert = require('./$.assert')
- , $iter = require('./$.iter')
- , SPECIES = require('./$.wks')('species')
- , RECORD = require('./$.uid').safe('record')
- , forOf = $iter.forOf
- , PROMISE = 'Promise'
- , global = $.g
- , process = global.process
- , asap = process && process.nextTick || require('./$.task').set
- , Promise = global[PROMISE]
- , Base = Promise
- , isFunction = $.isFunction
- , isObject = $.isObject
- , assertFunction = assert.fn
- , assertObject = assert.obj
- , test;
-function getConstructor(C){
- var S = assertObject(C)[SPECIES];
- return S != undefined ? S : C;
-}
-isFunction(Promise) && isFunction(Promise.resolve)
-&& Promise.resolve(test = new Promise(function(){})) == test
-|| function(){
- function isThenable(it){
- var then;
- if(isObject(it))then = it.then;
- return isFunction(then) ? then : false;
- }
- function handledRejectionOrHasOnRejected(promise){
- var record = promise[RECORD]
- , chain = record.c
- , i = 0
- , react;
- if(record.h)return true;
- while(chain.length > i){
- react = chain[i++];
- if(react.fail || handledRejectionOrHasOnRejected(react.P))return true;
- }
- }
- function notify(record, isReject){
- var chain = record.c;
- if(isReject || chain.length)asap(function(){
- var promise = record.p
- , value = record.v
- , ok = record.s == 1
- , i = 0;
- if(isReject && !handledRejectionOrHasOnRejected(promise)){
- setTimeout(function(){
- if(!handledRejectionOrHasOnRejected(promise)){
- if(cof(process) == 'process'){
- process.emit('unhandledRejection', value, promise);
- } else if(global.console && isFunction(console.error)){
- console.error('Unhandled promise rejection', value);
- }
- }
- }, 1e3);
- } else while(chain.length > i)!function(react){
- var cb = ok ? react.ok : react.fail
- , ret, then;
- try {
- if(cb){
- if(!ok)record.h = true;
- ret = cb === true ? value : cb(value);
- if(ret === react.P){
- react.rej(TypeError(PROMISE + '-chain cycle'));
- } else if(then = isThenable(ret)){
- then.call(ret, react.res, react.rej);
- } else react.res(ret);
- } else react.rej(value);
- } catch(err){
- react.rej(err);
- }
- }(chain[i++]);
- chain.length = 0;
- });
- }
- function reject(value){
- var record = this;
- if(record.d)return;
- record.d = true;
- record = record.r || record; // unwrap
- record.v = value;
- record.s = 2;
- notify(record, true);
- }
- function resolve(value){
- var record = this
- , then, wrapper;
- if(record.d)return;
- record.d = true;
- record = record.r || record; // unwrap
- try {
- if(then = isThenable(value)){
- wrapper = {r: record, d: false}; // wrap
- then.call(value, ctx(resolve, wrapper, 1), ctx(reject, wrapper, 1));
- } else {
- record.v = value;
- record.s = 1;
- notify(record);
- }
- } catch(err){
- reject.call(wrapper || {r: record, d: false}, err); // wrap
- }
- }
- // 25.4.3.1 Promise(executor)
- Promise = function(executor){
- assertFunction(executor);
- var record = {
- p: assert.inst(this, Promise, PROMISE), // <- promise
- c: [], // <- chain
- s: 0, // <- state
- d: false, // <- done
- v: undefined, // <- value
- h: false // <- handled rejection
- };
- $.hide(this, RECORD, record);
- try {
- executor(ctx(resolve, record, 1), ctx(reject, record, 1));
- } catch(err){
- reject.call(record, err);
- }
- };
- $.mix(Promise.prototype, {
- // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
- then: function(onFulfilled, onRejected){
- var S = assertObject(assertObject(this).constructor)[SPECIES];
- var react = {
- ok: isFunction(onFulfilled) ? onFulfilled : true,
- fail: isFunction(onRejected) ? onRejected : false
- };
- var P = react.P = new (S != undefined ? S : Promise)(function(res, rej){
- react.res = assertFunction(res);
- react.rej = assertFunction(rej);
- });
- var record = this[RECORD];
- record.c.push(react);
- record.s && notify(record);
- return P;
- },
- // 25.4.5.1 Promise.prototype.catch(onRejected)
- 'catch': function(onRejected){
- return this.then(undefined, onRejected);
- }
- });
-}();
-$def($def.G + $def.W + $def.F * (Promise != Base), {Promise: Promise});
-$def($def.S, PROMISE, {
- // 25.4.4.5 Promise.reject(r)
- reject: function(r){
- return new (getConstructor(this))(function(res, rej){
- rej(r);
- });
- },
- // 25.4.4.6 Promise.resolve(x)
- resolve: function(x){
- return isObject(x) && RECORD in x && $.getProto(x) === this.prototype
- ? x : new (getConstructor(this))(function(res){
- res(x);
- });
- }
-});
-$def($def.S + $def.F * ($iter.fail(function(iter){
- Promise.all(iter)['catch'](function(){});
-}) || $iter.DANGER_CLOSING), PROMISE, {
- // 25.4.4.1 Promise.all(iterable)
- all: function(iterable){
- var C = getConstructor(this)
- , values = [];
- return new C(function(resolve, reject){
- forOf(iterable, false, values.push, values);
- var remaining = values.length
- , results = Array(remaining);
- if(remaining)$.each.call(values, function(promise, index){
- C.resolve(promise).then(function(value){
- results[index] = value;
- --remaining || resolve(results);
- }, reject);
- });
- else resolve(results);
- });
- },
- // 25.4.4.4 Promise.race(iterable)
- race: function(iterable){
- var C = getConstructor(this);
- return new C(function(resolve, reject){
- forOf(iterable, false, function(promise){
- C.resolve(promise).then(resolve, reject);
- });
- });
- }
-});
-cof.set(Promise, PROMISE);
-require('./$.species')(Promise); -},{"./$":16,"./$.assert":5,"./$.cof":7,"./$.ctx":11,"./$.def":12,"./$.iter":15,"./$.species":21,"./$.task":23,"./$.uid":24,"./$.wks":26}],46:[function(require,module,exports){ -var $ = require('./$')
- , $def = require('./$.def')
- , setProto = require('./$.set-proto')
- , $iter = require('./$.iter')
- , ITER = require('./$.uid').safe('iter')
- , step = $iter.step
- , assert = require('./$.assert')
- , isObject = $.isObject
- , getDesc = $.getDesc
- , setDesc = $.setDesc
- , getProto = $.getProto
- , apply = Function.apply
- , assertObject = assert.obj
- , isExtensible = Object.isExtensible || $.it;
-function Enumerate(iterated){
- var keys = [], key;
- for(key in iterated)keys.push(key);
- $.set(this, ITER, {o: iterated, a: keys, i: 0});
-}
-$iter.create(Enumerate, 'Object', function(){
- var iter = this[ITER]
- , keys = iter.a
- , key;
- do {
- if(iter.i >= keys.length)return step(1);
- } while(!((key = keys[iter.i++]) in iter.o));
- return step(0, key);
-});
-
-function wrap(fn){
- return function(it){
- assertObject(it);
- try {
- fn.apply(undefined, arguments);
- return true;
- } catch(e){
- return false;
- }
- };
-}
-
-function reflectGet(target, propertyKey/*, receiver*/){
- var receiver = arguments.length < 3 ? target : arguments[2]
- , desc = getDesc(assertObject(target), propertyKey), proto;
- if(desc)return $.has(desc, 'value')
- ? desc.value
- : desc.get === undefined
- ? undefined
- : desc.get.call(receiver);
- return isObject(proto = getProto(target))
- ? reflectGet(proto, propertyKey, receiver)
- : undefined;
-}
-function reflectSet(target, propertyKey, V/*, receiver*/){
- var receiver = arguments.length < 4 ? target : arguments[3]
- , ownDesc = getDesc(assertObject(target), propertyKey)
- , existingDescriptor, proto;
- if(!ownDesc){
- if(isObject(proto = getProto(target))){
- return reflectSet(proto, propertyKey, V, receiver);
- }
- ownDesc = $.desc(0);
- }
- if($.has(ownDesc, 'value')){
- if(ownDesc.writable === false || !isObject(receiver))return false;
- existingDescriptor = getDesc(receiver, propertyKey) || $.desc(0);
- existingDescriptor.value = V;
- setDesc(receiver, propertyKey, existingDescriptor);
- return true;
- }
- return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);
-}
-
-var reflect = {
- // 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
- apply: require('./$.ctx')(Function.call, apply, 3),
- // 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
- construct: function(target, argumentsList /*, newTarget*/){
- var proto = assert.fn(arguments.length < 3 ? target : arguments[2]).prototype
- , instance = $.create(isObject(proto) ? proto : Object.prototype)
- , result = apply.call(target, instance, argumentsList);
- return isObject(result) ? result : instance;
- },
- // 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
- defineProperty: wrap(setDesc),
- // 26.1.4 Reflect.deleteProperty(target, propertyKey)
- deleteProperty: function(target, propertyKey){
- var desc = getDesc(assertObject(target), propertyKey);
- return desc && !desc.configurable ? false : delete target[propertyKey];
- },
- // 26.1.5 Reflect.enumerate(target)
- enumerate: function(target){
- return new Enumerate(assertObject(target));
- },
- // 26.1.6 Reflect.get(target, propertyKey [, receiver])
- get: reflectGet,
- // 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
- getOwnPropertyDescriptor: function(target, propertyKey){
- return getDesc(assertObject(target), propertyKey);
- },
- // 26.1.8 Reflect.getPrototypeOf(target)
- getPrototypeOf: function(target){
- return getProto(assertObject(target));
- },
- // 26.1.9 Reflect.has(target, propertyKey)
- has: function(target, propertyKey){
- return propertyKey in target;
- },
- // 26.1.10 Reflect.isExtensible(target)
- isExtensible: function(target){
- return !!isExtensible(assertObject(target));
- },
- // 26.1.11 Reflect.ownKeys(target)
- ownKeys: require('./$.own-keys'),
- // 26.1.12 Reflect.preventExtensions(target)
- preventExtensions: wrap(Object.preventExtensions || $.it),
- // 26.1.13 Reflect.set(target, propertyKey, V [, receiver])
- set: reflectSet
-};
-// 26.1.14 Reflect.setPrototypeOf(target, proto)
-if(setProto)reflect.setPrototypeOf = function(target, proto){
- setProto(assertObject(target), proto);
- return true;
-};
-
-$def($def.G, {Reflect: {}});
-$def($def.S, 'Reflect', reflect); -},{"./$":16,"./$.assert":5,"./$.ctx":11,"./$.def":12,"./$.iter":15,"./$.own-keys":18,"./$.set-proto":20,"./$.uid":24}],47:[function(require,module,exports){ -var $ = require('./$')
- , cof = require('./$.cof')
- , RegExp = $.g.RegExp
- , Base = RegExp
- , proto = RegExp.prototype;
-if($.FW && $.DESC){
- // RegExp allows a regex with flags as the pattern
- if(!function(){try{ return RegExp(/a/g, 'i') == '/a/i'; }catch(e){ /* empty */ }}()){
- RegExp = function RegExp(pattern, flags){
- return new Base(cof(pattern) == 'RegExp' && flags !== undefined
- ? pattern.source : pattern, flags);
- };
- $.each.call($.getNames(Base), function(key){
- key in RegExp || $.setDesc(RegExp, key, {
- configurable: true,
- get: function(){ return Base[key]; },
- set: function(it){ Base[key] = it; }
- });
- });
- proto.constructor = RegExp;
- RegExp.prototype = proto;
- $.hide($.g, 'RegExp', RegExp);
- }
- // 21.2.5.3 get RegExp.prototype.flags()
- if(/./g.flags != 'g')$.setDesc(proto, 'flags', {
- configurable: true,
- get: require('./$.replacer')(/^.*\/(\w*)$/, '$1')
- });
-}
-require('./$.species')(RegExp); -},{"./$":16,"./$.cof":7,"./$.replacer":19,"./$.species":21}],48:[function(require,module,exports){ -'use strict';
-var strong = require('./$.collection-strong');
-
-// 23.2 Set Objects
-require('./$.collection')('Set', {
- // 23.2.3.1 Set.prototype.add(value)
- add: function(value){
- return strong.def(this, value = value === 0 ? 0 : value, value);
- }
-}, strong); -},{"./$.collection":10,"./$.collection-strong":8}],49:[function(require,module,exports){ -var $def = require('./$.def');
-$def($def.P, 'String', {
- // 21.1.3.3 String.prototype.codePointAt(pos)
- codePointAt: require('./$.string-at')(false)
-}); -},{"./$.def":12,"./$.string-at":22}],50:[function(require,module,exports){ -'use strict';
-var $ = require('./$')
- , cof = require('./$.cof')
- , $def = require('./$.def')
- , toLength = $.toLength;
-
-$def($def.P, 'String', {
- // 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
- endsWith: function(searchString /*, endPosition = @length */){
- if(cof(searchString) == 'RegExp')throw TypeError();
- var that = String($.assertDefined(this))
- , endPosition = arguments[1]
- , len = toLength(that.length)
- , end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);
- searchString += '';
- return that.slice(end - searchString.length, end) === searchString;
- }
-}); -},{"./$":16,"./$.cof":7,"./$.def":12}],51:[function(require,module,exports){ -var $def = require('./$.def')
- , toIndex = require('./$').toIndex
- , fromCharCode = String.fromCharCode;
-
-$def($def.S, 'String', {
- // 21.1.2.2 String.fromCodePoint(...codePoints)
- fromCodePoint: function(x){ // eslint-disable-line no-unused-vars
- var res = []
- , len = arguments.length
- , i = 0
- , code;
- while(len > i){
- code = +arguments[i++];
- if(toIndex(code, 0x10ffff) !== code)throw RangeError(code + ' is not a valid code point');
- res.push(code < 0x10000
- ? fromCharCode(code)
- : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)
- );
- } return res.join('');
- }
-}); -},{"./$":16,"./$.def":12}],52:[function(require,module,exports){ -'use strict';
-var $ = require('./$')
- , cof = require('./$.cof')
- , $def = require('./$.def');
-
-$def($def.P, 'String', {
- // 21.1.3.7 String.prototype.includes(searchString, position = 0)
- includes: function(searchString /*, position = 0 */){
- if(cof(searchString) == 'RegExp')throw TypeError();
- return !!~String($.assertDefined(this)).indexOf(searchString, arguments[1]);
- }
-}); -},{"./$":16,"./$.cof":7,"./$.def":12}],53:[function(require,module,exports){ -var set = require('./$').set
- , at = require('./$.string-at')(true)
- , ITER = require('./$.uid').safe('iter')
- , $iter = require('./$.iter')
- , step = $iter.step;
-
-// 21.1.3.27 String.prototype[@@iterator]()
-$iter.std(String, 'String', function(iterated){
- set(this, ITER, {o: String(iterated), i: 0});
-// 21.1.5.2.1 %StringIteratorPrototype%.next()
-}, function(){
- var iter = this[ITER]
- , O = iter.o
- , index = iter.i
- , point;
- if(index >= O.length)return step(1);
- point = at.call(O, index);
- iter.i += point.length;
- return step(0, point);
-}); -},{"./$":16,"./$.iter":15,"./$.string-at":22,"./$.uid":24}],54:[function(require,module,exports){ -var $ = require('./$')
- , $def = require('./$.def');
-
-$def($def.S, 'String', {
- // 21.1.2.4 String.raw(callSite, ...substitutions)
- raw: function(callSite){
- var raw = $.toObject(callSite.raw)
- , len = $.toLength(raw.length)
- , sln = arguments.length
- , res = []
- , i = 0;
- while(len > i){
- res.push(String(raw[i++]));
- if(i < sln)res.push(String(arguments[i]));
- } return res.join('');
- }
-}); -},{"./$":16,"./$.def":12}],55:[function(require,module,exports){ -'use strict';
-var $ = require('./$')
- , $def = require('./$.def');
-
-$def($def.P, 'String', {
- // 21.1.3.13 String.prototype.repeat(count)
- repeat: function(count){
- var str = String($.assertDefined(this))
- , res = ''
- , n = $.toInteger(count);
- if(n < 0 || n == Infinity)throw RangeError("Count can't be negative");
- for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str;
- return res;
- }
-}); -},{"./$":16,"./$.def":12}],56:[function(require,module,exports){ -'use strict';
-var $ = require('./$')
- , cof = require('./$.cof')
- , $def = require('./$.def');
-
-$def($def.P, 'String', {
- // 21.1.3.18 String.prototype.startsWith(searchString [, position ])
- startsWith: function(searchString /*, position = 0 */){
- if(cof(searchString) == 'RegExp')throw TypeError();
- var that = String($.assertDefined(this))
- , index = $.toLength(Math.min(arguments[1], that.length));
- searchString += '';
- return that.slice(index, index + searchString.length) === searchString;
- }
-}); -},{"./$":16,"./$.cof":7,"./$.def":12}],57:[function(require,module,exports){ -'use strict';
-// ECMAScript 6 symbols shim
-var $ = require('./$')
- , setTag = require('./$.cof').set
- , uid = require('./$.uid')
- , $def = require('./$.def')
- , keyOf = require('./$.keyof')
- , has = $.has
- , hide = $.hide
- , getNames = $.getNames
- , toObject = $.toObject
- , Symbol = $.g.Symbol
- , Base = Symbol
- , setter = false
- , TAG = uid.safe('tag')
- , SymbolRegistry = {}
- , AllSymbols = {};
-
-function wrap(tag){
- var sym = AllSymbols[tag] = $.set($.create(Symbol.prototype), TAG, tag);
- $.DESC && setter && $.setDesc(Object.prototype, tag, {
- configurable: true,
- set: function(value){
- hide(this, tag, value);
- }
- });
- return sym;
-}
-
-// 19.4.1.1 Symbol([description])
-if(!$.isFunction(Symbol)){
- Symbol = function(description){
- if(this instanceof Symbol)throw TypeError('Symbol is not a constructor');
- return wrap(uid(description));
- };
- hide(Symbol.prototype, 'toString', function(){
- return this[TAG];
- });
-}
-$def($def.G + $def.W, {Symbol: Symbol});
-
-var symbolStatics = {
- // 19.4.2.1 Symbol.for(key)
- 'for': function(key){
- return has(SymbolRegistry, key += '')
- ? SymbolRegistry[key]
- : SymbolRegistry[key] = Symbol(key);
- },
- // 19.4.2.5 Symbol.keyFor(sym)
- keyFor: function(key){
- return keyOf(SymbolRegistry, key);
- },
- pure: uid.safe,
- set: $.set,
- useSetter: function(){ setter = true; },
- useSimple: function(){ setter = false; }
-};
-// 19.4.2.2 Symbol.hasInstance
-// 19.4.2.3 Symbol.isConcatSpreadable
-// 19.4.2.4 Symbol.iterator
-// 19.4.2.6 Symbol.match
-// 19.4.2.8 Symbol.replace
-// 19.4.2.9 Symbol.search
-// 19.4.2.10 Symbol.species
-// 19.4.2.11 Symbol.split
-// 19.4.2.12 Symbol.toPrimitive
-// 19.4.2.13 Symbol.toStringTag
-// 19.4.2.14 Symbol.unscopables
-$.each.call((
- 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' +
- 'species,split,toPrimitive,toStringTag,unscopables'
- ).split(','), function(it){
- var sym = require('./$.wks')(it);
- symbolStatics[it] = Symbol === Base ? sym : wrap(sym);
- }
-);
-
-setter = true;
-
-$def($def.S, 'Symbol', symbolStatics);
-
-$def($def.S + $def.F * (Symbol != Base), 'Object', {
- // 19.1.2.7 Object.getOwnPropertyNames(O)
- getOwnPropertyNames: function(it){
- var names = getNames(toObject(it)), result = [], key, i = 0;
- while(names.length > i)has(AllSymbols, key = names[i++]) || result.push(key);
- return result;
- },
- // 19.1.2.8 Object.getOwnPropertySymbols(O)
- getOwnPropertySymbols: function(it){
- var names = getNames(toObject(it)), result = [], key, i = 0;
- while(names.length > i)has(AllSymbols, key = names[i++]) && result.push(AllSymbols[key]);
- return result;
- }
-});
-
-setTag(Symbol, 'Symbol');
-// 20.2.1.9 Math[@@toStringTag]
-setTag(Math, 'Math', true);
-// 24.3.3 JSON[@@toStringTag]
-setTag($.g.JSON, 'JSON', true); -},{"./$":16,"./$.cof":7,"./$.def":12,"./$.keyof":17,"./$.uid":24,"./$.wks":26}],58:[function(require,module,exports){ -'use strict';
-var $ = require('./$')
- , weak = require('./$.collection-weak')
- , leakStore = weak.leakStore
- , ID = weak.ID
- , WEAK = weak.WEAK
- , has = $.has
- , isObject = $.isObject
- , isFrozen = Object.isFrozen || $.core.Object.isFrozen
- , tmp = {};
-
-// 23.3 WeakMap Objects
-var WeakMap = require('./$.collection')('WeakMap', {
- // 23.3.3.3 WeakMap.prototype.get(key)
- get: function(key){
- if(isObject(key)){
- if(isFrozen(key))return leakStore(this).get(key);
- if(has(key, WEAK))return key[WEAK][this[ID]];
- }
- },
- // 23.3.3.5 WeakMap.prototype.set(key, value)
- set: function(key, value){
- return weak.def(this, key, value);
- }
-}, weak, true, true);
-
-// IE11 WeakMap frozen keys fix
-if($.FW && new WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7){
- $.each.call(['delete', 'has', 'get', 'set'], function(key){
- var method = WeakMap.prototype[key];
- WeakMap.prototype[key] = function(a, b){
- // store frozen objects on leaky map
- if(isObject(a) && isFrozen(a)){
- var result = leakStore(this)[key](a, b);
- return key == 'set' ? this : result;
- // store all the rest on native weakmap
- } return method.call(this, a, b);
- };
- });
-} -},{"./$":16,"./$.collection":10,"./$.collection-weak":9}],59:[function(require,module,exports){ -'use strict';
-var weak = require('./$.collection-weak');
-
-// 23.4 WeakSet Objects
-require('./$.collection')('WeakSet', {
- // 23.4.3.1 WeakSet.prototype.add(value)
- add: function(value){
- return weak.def(this, value, true);
- }
-}, weak, false, true); -},{"./$.collection":10,"./$.collection-weak":9}],60:[function(require,module,exports){ -(function (global){ -/** - * Copyright (c) 2014, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * https://raw.github.com/facebook/regenerator/master/LICENSE file. An - * additional grant of patent rights can be found in the PATENTS file in - * the same directory. - */ - -!(function(global) { - "use strict"; - - var hasOwn = Object.prototype.hasOwnProperty; - var undefined; // More compressible than void 0. - var iteratorSymbol = - typeof Symbol === "function" && Symbol.iterator || "@@iterator"; - - var inModule = typeof module === "object"; - var runtime = global.regeneratorRuntime; - if (runtime) { - if (inModule) { - // If regeneratorRuntime is defined globally and we're in a module, - // make the exports object identical to regeneratorRuntime. - module.exports = runtime; - } - // Don't bother evaluating the rest of this file if the runtime was - // already defined globally. - return; - } - - // Define the runtime globally (as expected by generated code) as either - // module.exports (if we're in a module) or a new, empty object. - runtime = global.regeneratorRuntime = inModule ? module.exports : {}; - - function wrap(innerFn, outerFn, self, tryLocsList) { - return new Generator(innerFn, outerFn, self || null, tryLocsList || []); - } - runtime.wrap = wrap; - - // Try/catch helper to minimize deoptimizations. Returns a completion - // record like context.tryEntries[i].completion. This interface could - // have been (and was previously) designed to take a closure to be - // invoked without arguments, but in all the cases we care about we - // already have an existing method we want to call, so there's no need - // to create a new function object. We can even get away with assuming - // the method takes exactly one argument, since that happens to be true - // in every case, so we don't have to touch the arguments object. The - // only additional allocation required is the completion record, which - // has a stable shape and so hopefully should be cheap to allocate. - function tryCatch(fn, obj, arg) { - try { - return { type: "normal", arg: fn.call(obj, arg) }; - } catch (err) { - return { type: "throw", arg: err }; - } - } - - var GenStateSuspendedStart = "suspendedStart"; - var GenStateSuspendedYield = "suspendedYield"; - var GenStateExecuting = "executing"; - var GenStateCompleted = "completed"; - - // Returning this object from the innerFn has the same effect as - // breaking out of the dispatch switch statement. - var ContinueSentinel = {}; - - // Dummy constructor functions that we use as the .constructor and - // .constructor.prototype properties for functions that return Generator - // objects. For full spec compliance, you may wish to configure your - // minifier not to mangle the names of these two functions. - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype; - GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; - GeneratorFunctionPrototype.constructor = GeneratorFunction; - GeneratorFunction.displayName = "GeneratorFunction"; - - runtime.isGeneratorFunction = function(genFun) { - var ctor = typeof genFun === "function" && genFun.constructor; - return ctor - ? ctor === GeneratorFunction || - // For the native GeneratorFunction constructor, the best we can - // do is to check its .name property. - (ctor.displayName || ctor.name) === "GeneratorFunction" - : false; - }; - - runtime.mark = function(genFun) { - genFun.__proto__ = GeneratorFunctionPrototype; - genFun.prototype = Object.create(Gp); - return genFun; - }; - - runtime.async = function(innerFn, outerFn, self, tryLocsList) { - return new Promise(function(resolve, reject) { - var generator = wrap(innerFn, outerFn, self, tryLocsList); - var callNext = step.bind(generator.next); - var callThrow = step.bind(generator["throw"]); - - function step(arg) { - var record = tryCatch(this, null, arg); - if (record.type === "throw") { - reject(record.arg); - return; - } - - var info = record.arg; - if (info.done) { - resolve(info.value); - } else { - Promise.resolve(info.value).then(callNext, callThrow); - } - } - - callNext(); - }); - }; - - function Generator(innerFn, outerFn, self, tryLocsList) { - var generator = outerFn ? Object.create(outerFn.prototype) : this; - var context = new Context(tryLocsList); - var state = GenStateSuspendedStart; - - function invoke(method, arg) { - if (state === GenStateExecuting) { - throw new Error("Generator is already running"); - } - - if (state === GenStateCompleted) { - // Be forgiving, per 25.3.3.3.3 of the spec: - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume - return doneResult(); - } - - while (true) { - var delegate = context.delegate; - if (delegate) { - var record = tryCatch( - delegate.iterator[method], - delegate.iterator, - arg - ); - - if (record.type === "throw") { - context.delegate = null; - - // Like returning generator.throw(uncaught), but without the - // overhead of an extra function call. - method = "throw"; - arg = record.arg; - - continue; - } - - // Delegate generator ran and handled its own exceptions so - // regardless of what the method was, we continue as if it is - // "next" with an undefined arg. - method = "next"; - arg = undefined; - - var info = record.arg; - if (info.done) { - context[delegate.resultName] = info.value; - context.next = delegate.nextLoc; - } else { - state = GenStateSuspendedYield; - return info; - } - - context.delegate = null; - } - - if (method === "next") { - if (state === GenStateSuspendedStart && - typeof arg !== "undefined") { - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume - throw new TypeError( - "attempt to send " + JSON.stringify(arg) + " to newborn generator" - ); - } - - if (state === GenStateSuspendedYield) { - context.sent = arg; - } else { - delete context.sent; - } - - } else if (method === "throw") { - if (state === GenStateSuspendedStart) { - state = GenStateCompleted; - throw arg; - } - - if (context.dispatchException(arg)) { - // If the dispatched exception was caught by a catch block, - // then let that catch block handle the exception normally. - method = "next"; - arg = undefined; - } - - } else if (method === "return") { - context.abrupt("return", arg); - } - - state = GenStateExecuting; - - var record = tryCatch(innerFn, self, context); - if (record.type === "normal") { - // If an exception is thrown from innerFn, we leave state === - // GenStateExecuting and loop back for another invocation. - state = context.done - ? GenStateCompleted - : GenStateSuspendedYield; - - var info = { - value: record.arg, - done: context.done - }; - - if (record.arg === ContinueSentinel) { - if (context.delegate && method === "next") { - // Deliberately forget the last sent value so that we don't - // accidentally pass it on to the delegate. - arg = undefined; - } - } else { - return info; - } - - } else if (record.type === "throw") { - state = GenStateCompleted; - - if (method === "next") { - context.dispatchException(record.arg); - } else { - arg = record.arg; - } - } - } - } - - generator.next = invoke.bind(generator, "next"); - generator["throw"] = invoke.bind(generator, "throw"); - generator["return"] = invoke.bind(generator, "return"); - - return generator; - } - - Gp[iteratorSymbol] = function() { - return this; - }; - - Gp.toString = function() { - return "[object Generator]"; - }; - - function pushTryEntry(locs) { - var entry = { tryLoc: locs[0] }; - - if (1 in locs) { - entry.catchLoc = locs[1]; - } - - if (2 in locs) { - entry.finallyLoc = locs[2]; - entry.afterLoc = locs[3]; - } - - this.tryEntries.push(entry); - } - - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal"; - delete record.arg; - entry.completion = record; - } - - function Context(tryLocsList) { - // The root entry object (effectively a try statement without a catch - // or a finally block) gives us a place to store values thrown from - // locations where there is no enclosing try statement. - this.tryEntries = [{ tryLoc: "root" }]; - tryLocsList.forEach(pushTryEntry, this); - this.reset(); - } - - runtime.keys = function(object) { - var keys = []; - for (var key in object) { - keys.push(key); - } - keys.reverse(); - - // Rather than returning an object with a next method, we keep - // things simple and return the next function itself. - return function next() { - while (keys.length) { - var key = keys.pop(); - if (key in object) { - next.value = key; - next.done = false; - return next; - } - } - - // To avoid creating an additional object, we just hang the .value - // and .done properties off the next function object itself. This - // also ensures that the minifier will not anonymize the function. - next.done = true; - return next; - }; - }; - - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) { - return iteratorMethod.call(iterable); - } - - if (typeof iterable.next === "function") { - return iterable; - } - - if (!isNaN(iterable.length)) { - var i = -1, next = function next() { - while (++i < iterable.length) { - if (hasOwn.call(iterable, i)) { - next.value = iterable[i]; - next.done = false; - return next; - } - } - - next.value = undefined; - next.done = true; - - return next; - }; - - return next.next = next; - } - } - - // Return an iterator with no values. - return { next: doneResult }; - } - runtime.values = values; - - function doneResult() { - return { value: undefined, done: true }; - } - - Context.prototype = { - constructor: Context, - - reset: function() { - this.prev = 0; - this.next = 0; - this.sent = undefined; - this.done = false; - this.delegate = null; - - this.tryEntries.forEach(resetTryEntry); - - // Pre-initialize at least 20 temporary variables to enable hidden - // class optimizations for simple generators. - for (var tempIndex = 0, tempName; - hasOwn.call(this, tempName = "t" + tempIndex) || tempIndex < 20; - ++tempIndex) { - this[tempName] = null; - } - }, - - stop: function() { - this.done = true; - - var rootEntry = this.tryEntries[0]; - var rootRecord = rootEntry.completion; - if (rootRecord.type === "throw") { - throw rootRecord.arg; - } - - return this.rval; - }, - - dispatchException: function(exception) { - if (this.done) { - throw exception; - } - - var context = this; - function handle(loc, caught) { - record.type = "throw"; - record.arg = exception; - context.next = loc; - return !!caught; - } - - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - var record = entry.completion; - - if (entry.tryLoc === "root") { - // Exception thrown outside of any try block that could handle - // it, so set the completion value of the entire function to - // throw the exception. - return handle("end"); - } - - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"); - var hasFinally = hasOwn.call(entry, "finallyLoc"); - - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } else if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - - } else if (hasCatch) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } - - } else if (hasFinally) { - if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - - } else { - throw new Error("try statement without catch or finally"); - } - } - } - }, - - abrupt: function(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && - hasOwn.call(entry, "finallyLoc") && - this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - - if (finallyEntry && - (type === "break" || - type === "continue") && - finallyEntry.tryLoc <= arg && - arg < finallyEntry.finallyLoc) { - // Ignore the finally entry if control is not jumping to a - // location outside the try/catch block. - finallyEntry = null; - } - - var record = finallyEntry ? finallyEntry.completion : {}; - record.type = type; - record.arg = arg; - - if (finallyEntry) { - this.next = finallyEntry.finallyLoc; - } else { - this.complete(record); - } - - return ContinueSentinel; - }, - - complete: function(record, afterLoc) { - if (record.type === "throw") { - throw record.arg; - } - - if (record.type === "break" || - record.type === "continue") { - this.next = record.arg; - } else if (record.type === "return") { - this.rval = record.arg; - this.next = "end"; - } else if (record.type === "normal" && afterLoc) { - this.next = afterLoc; - } - - return ContinueSentinel; - }, - - finish: function(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) { - return this.complete(entry.completion, entry.afterLoc); - } - } - }, - - "catch": function(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if (record.type === "throw") { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; - } - } - - // The context.catch method must only be called with a location - // argument that corresponds to a known catch block. - throw new Error("illegal catch attempt"); - }, - - delegateYield: function(iterable, resultName, nextLoc) { - this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }; - - return ContinueSentinel; - } - }; -})( - // Among the various tricks for obtaining a reference to the global - // object, this seems to be the most reliable technique that does not - // use indirect eval (which violates Content Security Policy). - typeof global === "object" ? global : - typeof window === "object" ? window : this -); - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}]},{},[1]); diff --git a/web/static/js/babel-es6-polyfill.min.js b/web/static/js/babel-es6-polyfill.min.js deleted file mode 100644 index 794476133..000000000 --- a/web/static/js/babel-es6-polyfill.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function t(e,n,r){function o(s,c){if(!n[s]){if(!e[s]){var u="function"==typeof require&&require;if(!c&&u)return u(s,!0);if(i)return i(s,!0);var a=new Error("Cannot find module '"+s+"'");throw a.code="MODULE_NOT_FOUND",a}var f=n[s]={exports:{}};e[s][0].call(f.exports,function(t){var n=e[s][1][t];return o(n?n:t)},f,f.exports,t,e,n,r)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s<r.length;s++)o(r[s]);return o}({1:[function(t){(function(e){"use strict";if(e._babelPolyfill)throw new Error("only one instance of babel/polyfill is allowed");e._babelPolyfill=!0,t("./es6-shim"),t("regenerator-babel/runtime")}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./es6-shim":2,"regenerator-babel/runtime":60}],2:[function(t,e){t("core-js/es6"),e.exports=t("core-js/modules/$").core},{"core-js/es6":3,"core-js/modules/$":16}],3:[function(t,e){t("../modules/es6.symbol"),t("../modules/es6.object.assign"),t("../modules/es6.object.is"),t("../modules/es6.object.set-prototype-of"),t("../modules/es6.object.to-string"),t("../modules/es6.object.statics-accept-primitives"),t("../modules/es6.function.name"),t("../modules/es6.number.constructor"),t("../modules/es6.number.statics"),t("../modules/es6.math"),t("../modules/es6.string.from-code-point"),t("../modules/es6.string.raw"),t("../modules/es6.string.iterator"),t("../modules/es6.string.code-point-at"),t("../modules/es6.string.ends-with"),t("../modules/es6.string.includes"),t("../modules/es6.string.repeat"),t("../modules/es6.string.starts-with"),t("../modules/es6.array.from"),t("../modules/es6.array.of"),t("../modules/es6.array.species"),t("../modules/es6.array.iterator"),t("../modules/es6.array.copy-within"),t("../modules/es6.array.fill"),t("../modules/es6.array.find"),t("../modules/es6.array.find-index"),t("../modules/es6.regexp"),t("../modules/es6.promise"),t("../modules/es6.map"),t("../modules/es6.set"),t("../modules/es6.weak-map"),t("../modules/es6.weak-set"),t("../modules/es6.reflect"),e.exports=t("../modules/$").core},{"../modules/$":16,"../modules/es6.array.copy-within":27,"../modules/es6.array.fill":28,"../modules/es6.array.find":30,"../modules/es6.array.find-index":29,"../modules/es6.array.from":31,"../modules/es6.array.iterator":32,"../modules/es6.array.of":33,"../modules/es6.array.species":34,"../modules/es6.function.name":35,"../modules/es6.map":36,"../modules/es6.math":37,"../modules/es6.number.constructor":38,"../modules/es6.number.statics":39,"../modules/es6.object.assign":40,"../modules/es6.object.is":41,"../modules/es6.object.set-prototype-of":42,"../modules/es6.object.statics-accept-primitives":43,"../modules/es6.object.to-string":44,"../modules/es6.promise":45,"../modules/es6.reflect":46,"../modules/es6.regexp":47,"../modules/es6.set":48,"../modules/es6.string.code-point-at":49,"../modules/es6.string.ends-with":50,"../modules/es6.string.from-code-point":51,"../modules/es6.string.includes":52,"../modules/es6.string.iterator":53,"../modules/es6.string.raw":54,"../modules/es6.string.repeat":55,"../modules/es6.string.starts-with":56,"../modules/es6.symbol":57,"../modules/es6.weak-map":58,"../modules/es6.weak-set":59}],4:[function(t,e){"use strict";var n=t("./$"),r=t("./$.ctx");e.exports=function(t){var e=1==t,o=2==t,i=3==t,s=4==t,c=6==t,u=5==t||c;return function(a){for(var f,l,h=Object(n.assertDefined(this)),d=n.ES5Object(h),p=r(a,arguments[1],3),g=n.toLength(d.length),$=0,v=e?Array(g):o?[]:void 0;g>$;$++)if((u||$ in d)&&(f=d[$],l=p(f,$,h),t))if(e)v[$]=l;else if(l)switch(t){case 3:return!0;case 5:return f;case 6:return $;case 2:v.push(f)}else if(s)return!1;return c?-1:i||s?s:v}}},{"./$":16,"./$.ctx":11}],5:[function(t,e){function n(t,e,n){if(!t)throw TypeError(n?e+n:e)}var r=t("./$");n.def=r.assertDefined,n.fn=function(t){if(!r.isFunction(t))throw TypeError(t+" is not a function!");return t},n.obj=function(t){if(!r.isObject(t))throw TypeError(t+" is not an object!");return t},n.inst=function(t,e,n){if(!(t instanceof e))throw TypeError(n+": use the 'new' operator!");return t},e.exports=n},{"./$":16}],6:[function(t,e){var n=t("./$");e.exports=Object.assign||function(t){for(var e=Object(n.assertDefined(t)),r=arguments.length,o=1;r>o;)for(var i,s=n.ES5Object(arguments[o++]),c=n.getKeys(s),u=c.length,a=0;u>a;)e[i=c[a++]]=s[i];return e}},{"./$":16}],7:[function(t,e){function n(t){return i.call(t).slice(8,-1)}var r=t("./$"),o=t("./$.wks")("toStringTag"),i={}.toString;n.classof=function(t){var e,r;return void 0==t?void 0===t?"Undefined":"Null":"string"==typeof(r=(e=Object(t))[o])?r:n(e)},n.set=function(t,e,n){t&&!r.has(t=n?t:t.prototype,o)&&r.hide(t,o,e)},e.exports=n},{"./$":16,"./$.wks":26}],8:[function(t,e){"use strict";function n(t,e){if(!l(t))return("string"==typeof t?"S":"P")+t;if(p(t))return"F";if(!a(t,g)){if(!e)return"E";h(t,g,++w)}return"O"+t[g]}function r(t,e){var r,o=n(e);if("F"!=o)return t[$][o];for(r=t[y];r;r=r.n)if(r.k==e)return r}var o=t("./$"),i=t("./$.ctx"),s=t("./$.uid").safe,c=t("./$.assert"),u=t("./$.iter"),a=o.has,f=o.set,l=o.isObject,h=o.hide,d=u.step,p=Object.isFrozen||o.core.Object.isFrozen,g=s("id"),$=s("O1"),v=s("last"),y=s("first"),m=s("iter"),b=o.DESC?s("size"):"size",w=0;e.exports={getConstructor:function(t,e,n){function s(r){var i=c.inst(this,s,t);f(i,$,o.create(null)),f(i,b,0),f(i,v,void 0),f(i,y,void 0),void 0!=r&&u.forOf(r,e,i[n],i)}return o.mix(s.prototype,{clear:function(){for(var t=this,e=t[$],n=t[y];n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete e[n.i];t[y]=t[v]=void 0,t[b]=0},"delete":function(t){var e=this,n=r(e,t);if(n){var o=n.n,i=n.p;delete e[$][n.i],n.r=!0,i&&(i.n=o),o&&(o.p=i),e[y]==n&&(e[y]=o),e[v]==n&&(e[v]=i),e[b]--}return!!n},forEach:function(t){for(var e,n=i(t,arguments[1],3);e=e?e.n:this[y];)for(n(e.v,e.k,this);e&&e.r;)e=e.p},has:function(t){return!!r(this,t)}}),o.DESC&&o.setDesc(s.prototype,"size",{get:function(){return c.def(this[b])}}),s},def:function(t,e,o){var i,s,c=r(t,e);return c?c.v=o:(t[v]=c={i:s=n(e,!0),k:e,v:o,p:i=t[v],n:void 0,r:!1},t[y]||(t[y]=c),i&&(i.n=c),t[b]++,"F"!=s&&(t[$][s]=c)),t},getEntry:r,getIterConstructor:function(){return function(t,e){f(this,m,{o:t,k:e})}},next:function(){for(var t=this[m],e=t.k,n=t.l;n&&n.r;)n=n.p;return t.o&&(t.l=n=n?n.n:t.o[y])?"key"==e?d(0,n.k):"value"==e?d(0,n.v):d(0,[n.k,n.v]):(t.o=void 0,d(1))}}},{"./$":16,"./$.assert":5,"./$.ctx":11,"./$.iter":15,"./$.uid":24}],9:[function(t,e){"use strict";function n(t,e){return v.call(t.array,function(t){return t[0]===e})}function r(t){return t[g]||f(t,g,{array:[],get:function(t){var e=n(this,t);return e?e[1]:void 0},has:function(t){return!!n(this,t)},set:function(t,e){var r=n(this,t);r?r[1]=e:this.array.push([t,e])},"delete":function(t){var e=y.call(this.array,function(e){return e[0]===t});return~e&&this.array.splice(e,1),!!~e}})[g]}var o=t("./$"),i=t("./$.uid").safe,s=t("./$.assert"),c=t("./$.iter").forOf,u=o.has,a=o.isObject,f=o.hide,l=Object.isFrozen||o.core.Object.isFrozen,h=0,d=i("id"),p=i("weak"),g=i("leak"),$=t("./$.array-methods"),v=$(5),y=$(6);e.exports={getConstructor:function(t,e,n){function i(r){o.set(s.inst(this,i,t),d,h++),void 0!=r&&c(r,e,this[n],this)}return o.mix(i.prototype,{"delete":function(t){return a(t)?l(t)?r(this)["delete"](t):u(t,p)&&u(t[p],this[d])&&delete t[p][this[d]]:!1},has:function(t){return a(t)?l(t)?r(this).has(t):u(t,p)&&u(t[p],this[d]):!1}}),i},def:function(t,e,n){return l(s.obj(e))?r(t).set(e,n):(u(e,p)||f(e,p,{}),e[p][t[d]]=n),t},leakStore:r,WEAK:p,ID:d}},{"./$":16,"./$.array-methods":4,"./$.assert":5,"./$.iter":15,"./$.uid":24}],10:[function(t,e){"use strict";var n=t("./$"),r=t("./$.def"),o=t("./$.iter"),i=t("./$.assert").inst;e.exports=function(e,s,c,u,a){function f(t,e){var r=p[t];n.FW&&(p[t]=function(t,n){var o=r.call(this,0===t?0:t,n);return e?this:o})}var l=n.g[e],h=l,d=u?"set":"add",p=h&&h.prototype,g={};if(n.isFunction(h)&&(a||!o.BUGGY&&p.forEach&&p.entries)){var $,v=new h,y=v[d](a?{}:-0,1);(o.fail(function(t){new h(t)})||o.DANGER_CLOSING)&&(h=function(t){i(this,h,e);var n=new l;return void 0!=t&&o.forOf(t,u,n[d],n),n},h.prototype=p,n.FW&&(p.constructor=h)),a||v.forEach(function(t,e){$=1/e===-1/0}),$&&(f("delete"),f("has"),u&&f("get")),($||y!==v)&&f(d,!0)}else h=c.getConstructor(e,u,d),n.mix(h.prototype,s);return t("./$.cof").set(h,e),t("./$.species")(h),g[e]=h,r(r.G+r.W+r.F*(h!=l),g),a||o.std(h,e,c.getIterConstructor(),c.next,u?"key+value":"value",!u,!0),h}},{"./$":16,"./$.assert":5,"./$.cof":7,"./$.def":12,"./$.iter":15,"./$.species":21}],11:[function(t,e){var n=t("./$.assert").fn;e.exports=function(t,e,r){if(n(t),~r&&void 0===e)return t;switch(r){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},{"./$.assert":5}],12:[function(t,e){function n(t,e){return function(){return t.apply(e,arguments)}}function r(t,e,u){var a,f,l,h,d=t&r.G,p=d?i:t&r.S?i[e]:(i[e]||{}).prototype,g=d?s:s[e]||(s[e]={});d&&(u=e);for(a in u)f=!(t&r.F)&&p&&a in p,l=(f?p:u)[a],h=t&r.B&&f?n(l,i):t&r.P&&c(l)?n(Function.call,l):l,p&&!f&&(d?p[a]=l:delete p[a]&&o.hide(p,a,l)),g[a]!=l&&o.hide(g,a,h)}var o=t("./$"),i=o.g,s=o.core,c=o.isFunction;i.core=s,r.F=1,r.G=2,r.S=4,r.P=8,r.B=16,r.W=32,e.exports=r},{"./$":16}],13:[function(t,e){e.exports=function(t){return t.FW=!0,t.path=t.g,t}},{}],14:[function(t,e){e.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3]);case 5:return r?t(e[0],e[1],e[2],e[3],e[4]):t.call(n,e[0],e[1],e[2],e[3],e[4])}return t.apply(n,e)}},{}],15:[function(t,e){"use strict";function n(t,e){c.hide(t,h,e),d in[]&&c.hide(t,d,e)}function r(t,e,r,o){var i=t.prototype,s=i[h]||i[d]||o&&i[o]||r;if(c.FW&&n(i,s),s!==r){var u=c.getProto(s.call(new t));a.set(u,e+" Iterator",!0),c.FW&&c.has(i,d)&&n(u,c.that)}return p[e]=s,p[e+" Iterator"]=c.that,s}function o(t){var e=c.g.Symbol,n=t[e&&e.iterator||d],r=n||t[h]||p[a.classof(t)];return l(r.call(t))}function i(t){var e=t["return"];void 0!==e&&l(e.call(t))}function s(t,e,n,r){try{return r?e(l(n)[0],n[1]):e(n)}catch(o){throw i(t),o}}var c=t("./$"),u=t("./$.ctx"),a=t("./$.cof"),f=t("./$.def"),l=t("./$.assert").obj,h=t("./$.wks")("iterator"),d="@@iterator",p={},g={},$="keys"in[]&&!("next"in[].keys());n(g,c.that);var v=!0;!function(){try{var t=[1].keys();t["return"]=function(){v=!1},Array.from(t,function(){throw 2})}catch(e){}}();var y=e.exports={BUGGY:$,DANGER_CLOSING:v,fail:function(t){var e=!0;try{var n=[[{},1]],r=n[h](),o=r.next;r.next=function(){return e=!1,o.call(this)},n[h]=function(){return r},t(n)}catch(i){}return e},Iterators:p,prototype:g,step:function(t,e){return{value:e,done:!!t}},stepCall:s,close:i,is:function(t){var e=Object(t),n=c.g.Symbol,r=n&&n.iterator||d;return r in e||h in e||c.has(p,a.classof(e))},get:o,set:n,create:function(t,e,n,r){t.prototype=c.create(r||y.prototype,{next:c.desc(1,n)}),a.set(t,e+" Iterator")},define:r,std:function(t,e,n,o,i,s,u){function a(t){return function(){return new n(this,t)}}y.create(n,e,o);var l,h,d=a("key+value"),p=a("value"),g=t.prototype;if("value"==i?p=r(t,e,p,"values"):d=r(t,e,d,"entries"),i&&(l={entries:d,keys:s?p:a("key"),values:p},f(f.P+f.F*$,e,l),u))for(h in l)h in g||c.hide(g,h,l[h])},forOf:function(t,e,n,r){for(var c,a=o(t),f=u(n,r,e?2:1);!(c=a.next()).done;)if(s(a,f,c.value,e)===!1)return i(a)}}},{"./$":16,"./$.assert":5,"./$.cof":7,"./$.ctx":11,"./$.def":12,"./$.wks":26}],16:[function(t,e){"use strict";function n(t){return isNaN(t=+t)?0:(t>0?p:d)(t)}function r(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}function o(t,e,n){return t[e]=n,t}function i(t){return v?function(e,n,o){return m.setDesc(e,n,r(t,o))}:o}function s(t){return null!==t&&("object"==typeof t||"function"==typeof t)}function c(t){return"function"==typeof t}function u(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}var a="undefined"!=typeof self?self:Function("return this")(),f={},l=Object.defineProperty,h={}.hasOwnProperty,d=Math.ceil,p=Math.floor,g=Math.max,$=Math.min,v=!!function(){try{return 2==l({},"a",{get:function(){return 2}}).a}catch(t){}}(),y=i(1),m=e.exports=t("./$.fw")({g:a,core:f,html:a.document&&document.documentElement,isObject:s,isFunction:c,it:function(t){return t},that:function(){return this},toInteger:n,toLength:function(t){return t>0?$(n(t),9007199254740991):0},toIndex:function(t,e){return t=n(t),0>t?g(t+e,0):$(t,e)},has:function(t,e){return h.call(t,e)},create:Object.create,getProto:Object.getPrototypeOf,DESC:v,desc:r,getDesc:Object.getOwnPropertyDescriptor,setDesc:l,getKeys:Object.keys,getNames:Object.getOwnPropertyNames,getSymbols:Object.getOwnPropertySymbols,assertDefined:u,ES5Object:Object,toObject:function(t){return m.ES5Object(u(t))},hide:y,def:i(0),set:a.Symbol?o:y,mix:function(t,e){for(var n in e)y(t,n,e[n]);return t},each:[].forEach});"undefined"!=typeof __e&&(__e=f),"undefined"!=typeof __g&&(__g=a)},{"./$.fw":13}],17:[function(t,e){var n=t("./$");e.exports=function(t,e){for(var r,o=n.toObject(t),i=n.getKeys(o),s=i.length,c=0;s>c;)if(o[r=i[c++]]===e)return r}},{"./$":16}],18:[function(t,e){var n=t("./$"),r=t("./$.assert").obj;e.exports=function(t){return r(t),n.getSymbols?n.getNames(t).concat(n.getSymbols(t)):n.getNames(t)}},{"./$":16,"./$.assert":5}],19:[function(t,e){"use strict";e.exports=function(t,e,n){var r=e===Object(e)?function(t){return e[t]}:e;return function(e){return String(n?e:this).replace(t,r)}}},{}],20:[function(t,e){var n=t("./$"),r=t("./$.assert");e.exports=Object.setPrototypeOf||("__proto__"in{}?function(e,o){try{o=t("./$.ctx")(Function.call,n.getDesc(Object.prototype,"__proto__").set,2),o({},[])}catch(i){e=!0}return function(t,i){return r.obj(t),r(null===i||n.isObject(i),i,": can't set as prototype!"),e?t.__proto__=i:o(t,i),t}}():void 0)},{"./$":16,"./$.assert":5,"./$.ctx":11}],21:[function(t,e){var n=t("./$");e.exports=function(e){n.DESC&&n.FW&&n.setDesc(e,t("./$.wks")("species"),{configurable:!0,get:n.that})}},{"./$":16,"./$.wks":26}],22:[function(t,e){"use strict";var n=t("./$");e.exports=function(t){return function(e){var r,o,i=String(n.assertDefined(this)),s=n.toInteger(e),c=i.length;return 0>s||s>=c?t?"":void 0:(r=i.charCodeAt(s),55296>r||r>56319||s+1===c||(o=i.charCodeAt(s+1))<56320||o>57343?t?i.charAt(s):r:t?i.slice(s,s+2):(r-55296<<10)+(o-56320)+65536)}}},{"./$":16}],23:[function(t,e){"use strict";function n(){var t=+this;if(c.has(m,t)){var e=m[t];delete m[t],e()}}function r(t){n.call(t.data)}var o,i,s,c=t("./$"),u=t("./$.ctx"),a=t("./$.cof"),f=t("./$.invoke"),l=c.g,h=c.isFunction,d=l.setImmediate,p=l.clearImmediate,g=l.postMessage,$=l.addEventListener,v=l.MessageChannel,y=0,m={},b="onreadystatechange";h(d)&&h(p)||(d=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return m[++y]=function(){f(h(t)?t:Function(t),e)},o(y),y},p=function(t){delete m[t]},"process"==a(l.process)?o=function(t){l.process.nextTick(u(n,t,1))}:$&&h(g)&&!c.g.importScripts?(o=function(t){g(t,"*")},$("message",r,!1)):h(v)?(i=new v,s=i.port2,i.port1.onmessage=r,o=u(s.postMessage,s,1)):o=c.g.document&&b in document.createElement("script")?function(t){c.html.appendChild(document.createElement("script"))[b]=function(){c.html.removeChild(this),n.call(t)}}:function(t){setTimeout(u(n,t,1),0)}),e.exports={set:d,clear:p}},{"./$":16,"./$.cof":7,"./$.ctx":11,"./$.invoke":14}],24:[function(t,e){function n(t){return"Symbol("+t+")_"+(++r+Math.random()).toString(36)}var r=0;n.safe=t("./$").g.Symbol||n,e.exports=n},{"./$":16}],25:[function(t,e){var n=t("./$"),r=t("./$.wks")("unscopables");!n.FW||r in[]||n.hide(Array.prototype,r,{}),e.exports=function(t){n.FW&&([][r][t]=!0)}},{"./$":16,"./$.wks":26}],26:[function(t,e){var n=t("./$").g,r={};e.exports=function(e){return r[e]||(r[e]=n.Symbol&&n.Symbol[e]||t("./$.uid").safe("Symbol."+e))}},{"./$":16,"./$.uid":24}],27:[function(t){"use strict";var e=t("./$"),n=t("./$.def"),r=e.toIndex;n(n.P,"Array",{copyWithin:function(t,n){var o=Object(e.assertDefined(this)),i=e.toLength(o.length),s=r(t,i),c=r(n,i),u=arguments[2],a=void 0===u?i:r(u,i),f=Math.min(a-c,i-s),l=1;for(s>c&&c+f>s&&(l=-1,c=c+f-1,s=s+f-1);f-->0;)c in o?o[s]=o[c]:delete o[s],s+=l,c+=l;return o}}),t("./$.unscope")("copyWithin")},{"./$":16,"./$.def":12,"./$.unscope":25}],28:[function(t){"use strict";var e=t("./$"),n=t("./$.def"),r=e.toIndex;n(n.P,"Array",{fill:function(t){for(var n=Object(e.assertDefined(this)),o=e.toLength(n.length),i=r(arguments[1],o),s=arguments[2],c=void 0===s?o:r(s,o);c>i;)n[i++]=t;return n}}),t("./$.unscope")("fill")},{"./$":16,"./$.def":12,"./$.unscope":25}],29:[function(t){var e=t("./$.def");e(e.P,"Array",{findIndex:t("./$.array-methods")(6)}),t("./$.unscope")("findIndex")},{"./$.array-methods":4,"./$.def":12,"./$.unscope":25}],30:[function(t){var e=t("./$.def");e(e.P,"Array",{find:t("./$.array-methods")(5)}),t("./$.unscope")("find")},{"./$.array-methods":4,"./$.def":12,"./$.unscope":25}],31:[function(t){var e=t("./$"),n=t("./$.ctx"),r=t("./$.def"),o=t("./$.iter"),i=o.stepCall;r(r.S+r.F*o.DANGER_CLOSING,"Array",{from:function(t){var r,s,c,u,a=Object(e.assertDefined(t)),f=arguments[1],l=void 0!==f,h=l?n(f,arguments[2],2):void 0,d=0;if(o.is(a))for(u=o.get(a),s=new("function"==typeof this?this:Array);!(c=u.next()).done;d++)s[d]=l?i(u,h,[c.value,d],!0):c.value;else for(s=new("function"==typeof this?this:Array)(r=e.toLength(a.length));r>d;d++)s[d]=l?h(a[d],d):a[d];return s.length=d,s}})},{"./$":16,"./$.ctx":11,"./$.def":12,"./$.iter":15}],32:[function(t){var e=t("./$"),n=t("./$.unscope"),r=t("./$.uid").safe("iter"),o=t("./$.iter"),i=o.step,s=o.Iterators;o.std(Array,"Array",function(t,n){e.set(this,r,{o:e.toObject(t),i:0,k:n})},function(){var t=this[r],e=t.o,n=t.k,o=t.i++;return!e||o>=e.length?(t.o=void 0,i(1)):"key"==n?i(0,o):"value"==n?i(0,e[o]):i(0,[o,e[o]])},"value"),s.Arguments=s.Array,n("keys"),n("values"),n("entries")},{"./$":16,"./$.iter":15,"./$.uid":24,"./$.unscope":25}],33:[function(t){var e=t("./$.def");e(e.S,"Array",{of:function(){for(var t=0,e=arguments.length,n=new("function"==typeof this?this:Array)(e);e>t;)n[t]=arguments[t++];return n.length=e,n}})},{"./$.def":12}],34:[function(t){t("./$.species")(Array)},{"./$.species":21}],35:[function(t){"use strict";var e=t("./$"),n="name",r=e.setDesc,o=Function.prototype;n in o||e.FW&&e.DESC&&r(o,n,{configurable:!0,get:function(){var t=String(this).match(/^\s*function ([^ (]*)/),o=t?t[1]:"";return e.has(this,n)||r(this,n,e.desc(5,o)),o},set:function(t){e.has(this,n)||r(this,n,e.desc(0,t))}})},{"./$":16}],36:[function(t){"use strict";var e=t("./$.collection-strong");t("./$.collection")("Map",{get:function(t){var n=e.getEntry(this,t);return n&&n.v},set:function(t,n){return e.def(this,0===t?0:t,n)}},e,!0)},{"./$.collection":10,"./$.collection-strong":8}],37:[function(t){function e(t){return isFinite(t=+t)&&0!=t?0>t?-e(-t):a(t+f(t*t+1)):t}function n(t){return 0==(t=+t)?t:t>-1e-6&&1e-6>t?t+t*t/2:u(t)-1}var r=1/0,o=t("./$.def"),i=Math.E,s=Math.pow,c=Math.abs,u=Math.exp,a=Math.log,f=Math.sqrt,l=Math.ceil,h=Math.floor,d=Math.sign||function(t){return 0==(t=+t)||t!=t?t:0>t?-1:1};o(o.S,"Math",{acosh:function(t){return(t=+t)<1?0/0:isFinite(t)?a(t/i+f(t+1)*f(t-1)/i)+1:t},asinh:e,atanh:function(t){return 0==(t=+t)?t:a((1+t)/(1-t))/2},cbrt:function(t){return d(t=+t)*s(c(t),1/3)},clz32:function(t){return(t>>>=0)?32-t.toString(2).length:32},cosh:function(t){return(u(t=+t)+u(-t))/2},expm1:n,fround:function(t){return new Float32Array([t])[0]},hypot:function(){for(var t,e=0,n=arguments.length,o=n,i=Array(n),c=-r;n--;){if(t=i[n]=+arguments[n],t==r||t==-r)return r;t>c&&(c=t)}for(c=t||1;o--;)e+=s(i[o]/c,2);return c*f(e)},imul:function(t,e){var n=65535,r=+t,o=+e,i=n&r,s=n&o;return 0|i*s+((n&r>>>16)*s+i*(n&o>>>16)<<16>>>0)},log1p:function(t){return(t=+t)>-1e-8&&1e-8>t?t-t*t/2:a(1+t)},log10:function(t){return a(t)/Math.LN10},log2:function(t){return a(t)/Math.LN2},sign:d,sinh:function(t){return c(t=+t)<1?(n(t)-n(-t))/2:(u(t-1)-u(-t-1))*(i/2)},tanh:function(t){var e=n(t=+t),o=n(-t);return e==r?1:o==r?-1:(e-o)/(u(t)+u(-t))},trunc:function(t){return(t>0?h:l)(t)}})},{"./$.def":12}],38:[function(t){"use strict";function e(t){var e,n;if(i(e=t.valueOf)&&!o(n=e.call(t)))return n;if(i(e=t.toString)&&!o(n=e.call(t)))return n;throw TypeError("Can't convert object to number")}function n(t){if(o(t)&&(t=e(t)),"string"==typeof t&&t.length>2&&48==t.charCodeAt(0)){var n=!1;switch(t.charCodeAt(1)){case 66:case 98:n=!0;case 79:case 111:return parseInt(t.slice(2),n?2:8)}}return+t}var r=t("./$"),o=r.isObject,i=r.isFunction,s="Number",c=r.g[s],u=c,a=c.prototype;!r.FW||c("0o1")&&c("0b1")||(c=function f(t){return this instanceof f?new u(n(t)):n(t)},r.each.call(r.DESC?r.getNames(u):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),function(t){r.has(u,t)&&!r.has(c,t)&&r.setDesc(c,t,r.getDesc(u,t))}),c.prototype=a,a.constructor=c,r.hide(r.g,s,c))},{"./$":16}],39:[function(t){function e(t){return!n.isObject(t)&&isFinite(t)&&i(t)===t}var n=t("./$"),r=t("./$.def"),o=Math.abs,i=Math.floor,s=9007199254740991;r(r.S,"Number",{EPSILON:Math.pow(2,-52),isFinite:function(t){return"number"==typeof t&&isFinite(t)},isInteger:e,isNaN:function(t){return t!=t},isSafeInteger:function(t){return e(t)&&o(t)<=s},MAX_SAFE_INTEGER:s,MIN_SAFE_INTEGER:-s,parseFloat:parseFloat,parseInt:parseInt})},{"./$":16,"./$.def":12}],40:[function(t){var e=t("./$.def");e(e.S,"Object",{assign:t("./$.assign")})},{"./$.assign":6,"./$.def":12}],41:[function(t){var e=t("./$.def");e(e.S,"Object",{is:function(t,e){return t===e?0!==t||1/t===1/e:t!=t&&e!=e}})},{"./$.def":12}],42:[function(t){var e=t("./$.def");e(e.S,"Object",{setPrototypeOf:t("./$.set-proto")})},{"./$.def":12,"./$.set-proto":20}],43:[function(t){function e(t,e){var s=(n.core.Object||{})[t]||Object[t],c=0,u={};u[t]=1==e?function(t){return o(t)?s(t):t}:2==e?function(t){return o(t)?s(t):!0}:3==e?function(t){return o(t)?s(t):!1}:4==e?function(t,e){return s(i(t),e)}:5==e?function(t){return s(Object(n.assertDefined(t)))}:function(t){return s(i(t))};try{s("z")}catch(a){c=1}r(r.S+r.F*c,"Object",u)}var n=t("./$"),r=t("./$.def"),o=n.isObject,i=n.toObject;e("freeze",1),e("seal",1),e("preventExtensions",1),e("isFrozen",2),e("isSealed",2),e("isExtensible",3),e("getOwnPropertyDescriptor",4),e("getPrototypeOf",5),e("keys"),e("getOwnPropertyNames")},{"./$":16,"./$.def":12}],44:[function(t){"use strict";var e=t("./$"),n=t("./$.cof"),r={};r[t("./$.wks")("toStringTag")]="z",e.FW&&"z"!=n(r)&&e.hide(Object.prototype,"toString",function(){return"[object "+n.classof(this)+"]"})},{"./$":16,"./$.cof":7,"./$.wks":26}],45:[function(t){"use strict";function e(t){var e=w(t)[a];return void 0!=e?e:t}var n,r=t("./$"),o=t("./$.ctx"),i=t("./$.cof"),s=t("./$.def"),c=t("./$.assert"),u=t("./$.iter"),a=t("./$.wks")("species"),f=t("./$.uid").safe("record"),l=u.forOf,h="Promise",d=r.g,p=d.process,g=p&&p.nextTick||t("./$.task").set,$=d[h],v=$,y=r.isFunction,m=r.isObject,b=c.fn,w=c.obj;y($)&&y($.resolve)&&$.resolve(n=new $(function(){}))==n||function(){function t(t){var e;return m(t)&&(e=t.then),y(e)?e:!1}function e(t){var n,r=t[f],o=r.c,i=0;if(r.h)return!0;for(;o.length>i;)if(n=o[i++],n.fail||e(n.P))return!0}function n(n,r){var o=n.c;(r||o.length)&&g(function(){var s=n.p,c=n.v,u=1==n.s,a=0;if(r&&!e(s))setTimeout(function(){e(s)||("process"==i(p)?p.emit("unhandledRejection",c,s):d.console&&y(console.error)&&console.error("Unhandled promise rejection",c))},1e3);else for(;o.length>a;)!function(e){var r,o,i=u?e.ok:e.fail;try{i?(u||(n.h=!0),r=i===!0?c:i(c),r===e.P?e.rej(TypeError(h+"-chain cycle")):(o=t(r))?o.call(r,e.res,e.rej):e.res(r)):e.rej(c)}catch(s){e.rej(s)}}(o[a++]);o.length=0})}function s(t){var e=this;e.d||(e.d=!0,e=e.r||e,e.v=t,e.s=2,n(e,!0))}function u(e){var r,i,c=this;if(!c.d){c.d=!0,c=c.r||c;try{(r=t(e))?(i={r:c,d:!1},r.call(e,o(u,i,1),o(s,i,1))):(c.v=e,c.s=1,n(c))}catch(a){s.call(i||{r:c,d:!1},a)}}}$=function(t){b(t);var e={p:c.inst(this,$,h),c:[],s:0,d:!1,v:void 0,h:!1};r.hide(this,f,e);try{t(o(u,e,1),o(s,e,1))}catch(n){s.call(e,n)}},r.mix($.prototype,{then:function(t,e){var r=w(w(this).constructor)[a],o={ok:y(t)?t:!0,fail:y(e)?e:!1},i=o.P=new(void 0!=r?r:$)(function(t,e){o.res=b(t),o.rej=b(e)}),s=this[f];return s.c.push(o),s.s&&n(s),i},"catch":function(t){return this.then(void 0,t)}})}(),s(s.G+s.W+s.F*($!=v),{Promise:$}),s(s.S,h,{reject:function(t){return new(e(this))(function(e,n){n(t)})},resolve:function(t){return m(t)&&f in t&&r.getProto(t)===this.prototype?t:new(e(this))(function(e){e(t)})}}),s(s.S+s.F*(u.fail(function(t){$.all(t)["catch"](function(){})})||u.DANGER_CLOSING),h,{all:function(t){var n=e(this),o=[];return new n(function(e,i){l(t,!1,o.push,o);var s=o.length,c=Array(s);s?r.each.call(o,function(t,r){n.resolve(t).then(function(t){c[r]=t,--s||e(c)},i)}):e(c)})},race:function(t){var n=e(this);return new n(function(e,r){l(t,!1,function(t){n.resolve(t).then(e,r)})})}}),i.set($,h),t("./$.species")($)},{"./$":16,"./$.assert":5,"./$.cof":7,"./$.ctx":11,"./$.def":12,"./$.iter":15,"./$.species":21,"./$.task":23,"./$.uid":24,"./$.wks":26}],46:[function(t){function e(t){var e,n=[];for(e in t)n.push(e);i.set(this,a,{o:t,a:n,i:0})}function n(t){return function(e){v(e);try{return t.apply(void 0,arguments),!0}catch(n){return!1}}}function r(t,e){var n,o=arguments.length<3?t:arguments[2],s=d(v(t),e);return s?i.has(s,"value")?s.value:void 0===s.get?void 0:s.get.call(o):h(n=g(t))?r(n,e,o):void 0}function o(t,e,n){var r,s,c=arguments.length<4?t:arguments[3],u=d(v(t),e);if(!u){if(h(s=g(t)))return o(s,e,n,c);u=i.desc(0)}return i.has(u,"value")?u.writable!==!1&&h(c)?(r=d(c,e)||i.desc(0),r.value=n,p(c,e,r),!0):!1:void 0===u.set?!1:(u.set.call(c,n),!0)}var i=t("./$"),s=t("./$.def"),c=t("./$.set-proto"),u=t("./$.iter"),a=t("./$.uid").safe("iter"),f=u.step,l=t("./$.assert"),h=i.isObject,d=i.getDesc,p=i.setDesc,g=i.getProto,$=Function.apply,v=l.obj,y=Object.isExtensible||i.it;u.create(e,"Object",function(){var t,e=this[a],n=e.a;do if(e.i>=n.length)return f(1);while(!((t=n[e.i++])in e.o));return f(0,t)});var m={apply:t("./$.ctx")(Function.call,$,3),construct:function(t,e){var n=l.fn(arguments.length<3?t:arguments[2]).prototype,r=i.create(h(n)?n:Object.prototype),o=$.call(t,r,e);return h(o)?o:r},defineProperty:n(p),deleteProperty:function(t,e){var n=d(v(t),e);return n&&!n.configurable?!1:delete t[e]},enumerate:function(t){return new e(v(t))},get:r,getOwnPropertyDescriptor:function(t,e){return d(v(t),e)},getPrototypeOf:function(t){return g(v(t))},has:function(t,e){return e in t},isExtensible:function(t){return!!y(v(t))},ownKeys:t("./$.own-keys"),preventExtensions:n(Object.preventExtensions||i.it),set:o};c&&(m.setPrototypeOf=function(t,e){return c(v(t),e),!0}),s(s.G,{Reflect:{}}),s(s.S,"Reflect",m)},{"./$":16,"./$.assert":5,"./$.ctx":11,"./$.def":12,"./$.iter":15,"./$.own-keys":18,"./$.set-proto":20,"./$.uid":24}],47:[function(t){var e=t("./$"),n=t("./$.cof"),r=e.g.RegExp,o=r,i=r.prototype;e.FW&&e.DESC&&(function(){try{return"/a/i"==r(/a/g,"i")}catch(t){}}()||(r=function(t,e){return new o("RegExp"==n(t)&&void 0!==e?t.source:t,e)},e.each.call(e.getNames(o),function(t){t in r||e.setDesc(r,t,{configurable:!0,get:function(){return o[t]},set:function(e){o[t]=e}})}),i.constructor=r,r.prototype=i,e.hide(e.g,"RegExp",r)),"g"!=/./g.flags&&e.setDesc(i,"flags",{configurable:!0,get:t("./$.replacer")(/^.*\/(\w*)$/,"$1")})),t("./$.species")(r)},{"./$":16,"./$.cof":7,"./$.replacer":19,"./$.species":21}],48:[function(t){"use strict";var e=t("./$.collection-strong");t("./$.collection")("Set",{add:function(t){return e.def(this,t=0===t?0:t,t)}},e)},{"./$.collection":10,"./$.collection-strong":8}],49:[function(t){var e=t("./$.def");e(e.P,"String",{codePointAt:t("./$.string-at")(!1)})},{"./$.def":12,"./$.string-at":22}],50:[function(t){"use strict";var e=t("./$"),n=t("./$.cof"),r=t("./$.def"),o=e.toLength;r(r.P,"String",{endsWith:function(t){if("RegExp"==n(t))throw TypeError();var r=String(e.assertDefined(this)),i=arguments[1],s=o(r.length),c=void 0===i?s:Math.min(o(i),s);return t+="",r.slice(c-t.length,c)===t}})},{"./$":16,"./$.cof":7,"./$.def":12}],51:[function(t){var e=t("./$.def"),n=t("./$").toIndex,r=String.fromCharCode;e(e.S,"String",{fromCodePoint:function(){for(var t,e=[],o=arguments.length,i=0;o>i;){if(t=+arguments[i++],n(t,1114111)!==t)throw RangeError(t+" is not a valid code point");e.push(65536>t?r(t):r(((t-=65536)>>10)+55296,t%1024+56320))}return e.join("")}})},{"./$":16,"./$.def":12}],52:[function(t){"use strict";var e=t("./$"),n=t("./$.cof"),r=t("./$.def");r(r.P,"String",{includes:function(t){if("RegExp"==n(t))throw TypeError();return!!~String(e.assertDefined(this)).indexOf(t,arguments[1])}})},{"./$":16,"./$.cof":7,"./$.def":12}],53:[function(t){var e=t("./$").set,n=t("./$.string-at")(!0),r=t("./$.uid").safe("iter"),o=t("./$.iter"),i=o.step;o.std(String,"String",function(t){e(this,r,{o:String(t),i:0})},function(){var t,e=this[r],o=e.o,s=e.i;return s>=o.length?i(1):(t=n.call(o,s),e.i+=t.length,i(0,t))})},{"./$":16,"./$.iter":15,"./$.string-at":22,"./$.uid":24}],54:[function(t){var e=t("./$"),n=t("./$.def");n(n.S,"String",{raw:function(t){for(var n=e.toObject(t.raw),r=e.toLength(n.length),o=arguments.length,i=[],s=0;r>s;)i.push(String(n[s++])),o>s&&i.push(String(arguments[s]));return i.join("")}})},{"./$":16,"./$.def":12}],55:[function(t){"use strict";var e=t("./$"),n=t("./$.def");n(n.P,"String",{repeat:function(t){var n=String(e.assertDefined(this)),r="",o=e.toInteger(t);if(0>o||1/0==o)throw RangeError("Count can't be negative");for(;o>0;(o>>>=1)&&(n+=n))1&o&&(r+=n);return r}})},{"./$":16,"./$.def":12}],56:[function(t){"use strict";var e=t("./$"),n=t("./$.cof"),r=t("./$.def");r(r.P,"String",{startsWith:function(t){if("RegExp"==n(t))throw TypeError();var r=String(e.assertDefined(this)),o=e.toLength(Math.min(arguments[1],r.length));return t+="",r.slice(o,o+t.length)===t}})},{"./$":16,"./$.cof":7,"./$.def":12}],57:[function(t){"use strict";function e(t){var e=$[t]=n.set(n.create(l.prototype),p,t);return n.DESC&&d&&n.setDesc(Object.prototype,t,{configurable:!0,set:function(e){u(this,t,e)}}),e}var n=t("./$"),r=t("./$.cof").set,o=t("./$.uid"),i=t("./$.def"),s=t("./$.keyof"),c=n.has,u=n.hide,a=n.getNames,f=n.toObject,l=n.g.Symbol,h=l,d=!1,p=o.safe("tag"),g={},$={};n.isFunction(l)||(l=function(t){if(this instanceof l)throw TypeError("Symbol is not a constructor");return e(o(t))},u(l.prototype,"toString",function(){return this[p]})),i(i.G+i.W,{Symbol:l});var v={"for":function(t){return c(g,t+="")?g[t]:g[t]=l(t)},keyFor:function(t){return s(g,t)},pure:o.safe,set:n.set,useSetter:function(){d=!0},useSimple:function(){d=!1}};n.each.call("hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),function(n){var r=t("./$.wks")(n);v[n]=l===h?r:e(r)}),d=!0,i(i.S,"Symbol",v),i(i.S+i.F*(l!=h),"Object",{getOwnPropertyNames:function(t){for(var e,n=a(f(t)),r=[],o=0;n.length>o;)c($,e=n[o++])||r.push(e);return r},getOwnPropertySymbols:function(t){for(var e,n=a(f(t)),r=[],o=0;n.length>o;)c($,e=n[o++])&&r.push($[e]);return r}}),r(l,"Symbol"),r(Math,"Math",!0),r(n.g.JSON,"JSON",!0)},{"./$":16,"./$.cof":7,"./$.def":12,"./$.keyof":17,"./$.uid":24,"./$.wks":26}],58:[function(t){"use strict";var e=t("./$"),n=t("./$.collection-weak"),r=n.leakStore,o=n.ID,i=n.WEAK,s=e.has,c=e.isObject,u=Object.isFrozen||e.core.Object.isFrozen,a={},f=t("./$.collection")("WeakMap",{get:function(t){if(c(t)){if(u(t))return r(this).get(t);if(s(t,i))return t[i][this[o]]}},set:function(t,e){return n.def(this,t,e)}},n,!0,!0);e.FW&&7!=(new f).set((Object.freeze||Object)(a),7).get(a)&&e.each.call(["delete","has","get","set"],function(t){var e=f.prototype[t]; -f.prototype[t]=function(n,o){if(c(n)&&u(n)){var i=r(this)[t](n,o);return"set"==t?this:i}return e.call(this,n,o)}})},{"./$":16,"./$.collection":10,"./$.collection-weak":9}],59:[function(t){"use strict";var e=t("./$.collection-weak");t("./$.collection")("WeakSet",{add:function(t){return e.def(this,t,!0)}},e,!1,!0)},{"./$.collection":10,"./$.collection-weak":9}],60:[function(t,e){(function(t){!function(t){"use strict";function n(t,e,n,r){return new s(t,e,n||null,r||[])}function r(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(r){return{type:"throw",arg:r}}}function o(){}function i(){}function s(t,e,n,o){function i(e,o){if(u===m)throw new Error("Generator is already running");if(u===b)return l();for(;;){var i=c.delegate;if(i){var s=r(i.iterator[e],i.iterator,o);if("throw"===s.type){c.delegate=null,e="throw",o=s.arg;continue}e="next",o=h;var a=s.arg;if(!a.done)return u=y,a;c[i.resultName]=a.value,c.next=i.nextLoc,c.delegate=null}if("next"===e){if(u===v&&"undefined"!=typeof o)throw new TypeError("attempt to send "+JSON.stringify(o)+" to newborn generator");u===y?c.sent=o:delete c.sent}else if("throw"===e){if(u===v)throw u=b,o;c.dispatchException(o)&&(e="next",o=h)}else"return"===e&&c.abrupt("return",o);u=m;var s=r(t,n,c);if("normal"===s.type){u=c.done?b:y;var a={value:s.arg,done:c.done};if(s.arg!==w)return a;c.delegate&&"next"===e&&(o=h)}else"throw"===s.type&&(u=b,"next"===e?c.dispatchException(s.arg):o=s.arg)}}var s=e?Object.create(e.prototype):this,c=new a(o),u=v;return s.next=i.bind(s,"next"),s["throw"]=i.bind(s,"throw"),s["return"]=i.bind(s,"return"),s}function c(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function u(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function a(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(c,this),this.reset()}function f(t){if(t){var e=t[p];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,r=function o(){for(;++n<t.length;)if(d.call(t,n))return o.value=t[n],o.done=!1,o;return o.value=h,o.done=!0,o};return r.next=r}}return{next:l}}function l(){return{value:h,done:!0}}var h,d=Object.prototype.hasOwnProperty,p="function"==typeof Symbol&&Symbol.iterator||"@@iterator",g="object"==typeof e,$=t.regeneratorRuntime;if($)return void(g&&(e.exports=$));$=t.regeneratorRuntime=g?e.exports:{},$.wrap=n;var v="suspendedStart",y="suspendedYield",m="executing",b="completed",w={},x=i.prototype=s.prototype;o.prototype=x.constructor=i,i.constructor=o,o.displayName="GeneratorFunction",$.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return e?e===o||"GeneratorFunction"===(e.displayName||e.name):!1},$.mark=function(t){return t.__proto__=i,t.prototype=Object.create(x),t},$.async=function(t,e,o,i){return new Promise(function(s,c){function u(t){var e=r(this,null,t);if("throw"===e.type)return void c(e.arg);var n=e.arg;n.done?s(n.value):Promise.resolve(n.value).then(f,l)}var a=n(t,e,o,i),f=u.bind(a.next),l=u.bind(a["throw"]);f()})},x[p]=function(){return this},x.toString=function(){return"[object Generator]"},$.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function r(){for(;e.length;){var n=e.pop();if(n in t)return r.value=n,r.done=!1,r}return r.done=!0,r}},$.values=f,a.prototype={constructor:a,reset:function(){this.prev=0,this.next=0,this.sent=h,this.done=!1,this.delegate=null,this.tryEntries.forEach(u);for(var t,e=0;d.call(this,t="t"+e)||20>e;++e)this[t]=null},stop:function(){this.done=!0;var t=this.tryEntries[0],e=t.completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){function e(e,r){return i.type="throw",i.arg=t,n.next=e,!!r}if(this.done)throw t;for(var n=this,r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r],i=o.completion;if("root"===o.tryLoc)return e("end");if(o.tryLoc<=this.prev){var s=d.call(o,"catchLoc"),c=d.call(o,"finallyLoc");if(s&&c){if(this.prev<o.catchLoc)return e(o.catchLoc,!0);if(this.prev<o.finallyLoc)return e(o.finallyLoc)}else if(s){if(this.prev<o.catchLoc)return e(o.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return e(o.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&d.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=t,i.arg=e,o?this.next=o.finallyLoc:this.complete(i),w},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=t.arg,this.next="end"):"normal"===t.type&&e&&(this.next=e),w},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc)}},"catch":function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;u(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:f(t),resultName:e,nextLoc:n},w}}}("object"==typeof t?t:"object"==typeof window?window:this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1]);
\ No newline at end of file diff --git a/web/static/js/babel-polyfill-6.1.18.js b/web/static/js/babel-polyfill-6.1.18.js new file mode 100644 index 000000000..8a871402a --- /dev/null +++ b/web/static/js/babel-polyfill-6.1.18.js @@ -0,0 +1,4412 @@ +(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){ +(function (global){ +"use strict"; + +_dereq_(188); + +_dereq_(189); + +if (global._babelPolyfill) { + throw new Error("only one instance of babel/polyfill is allowed"); +} +global._babelPolyfill = true; +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"188":188,"189":189}],2:[function(_dereq_,module,exports){ +module.exports = function(it){ + if(typeof it != 'function')throw TypeError(it + ' is not a function!'); + return it; +}; +},{}],3:[function(_dereq_,module,exports){ +// 22.1.3.31 Array.prototype[@@unscopables] +var UNSCOPABLES = _dereq_(83)('unscopables') + , ArrayProto = Array.prototype; +if(ArrayProto[UNSCOPABLES] == undefined)_dereq_(31)(ArrayProto, UNSCOPABLES, {}); +module.exports = function(key){ + ArrayProto[UNSCOPABLES][key] = true; +}; +},{"31":31,"83":83}],4:[function(_dereq_,module,exports){ +var isObject = _dereq_(38); +module.exports = function(it){ + if(!isObject(it))throw TypeError(it + ' is not an object!'); + return it; +}; +},{"38":38}],5:[function(_dereq_,module,exports){ +// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length) +'use strict'; +var toObject = _dereq_(80) + , toIndex = _dereq_(76) + , toLength = _dereq_(79); + +module.exports = [].copyWithin || function copyWithin(target/*= 0*/, start/*= 0, end = @length*/){ + var O = toObject(this) + , len = toLength(O.length) + , to = toIndex(target, len) + , from = toIndex(start, len) + , $$ = arguments + , end = $$.length > 2 ? $$[2] : undefined + , count = Math.min((end === undefined ? len : toIndex(end, len)) - from, len - to) + , inc = 1; + if(from < to && to < from + count){ + inc = -1; + from += count - 1; + to += count - 1; + } + while(count-- > 0){ + if(from in O)O[to] = O[from]; + else delete O[to]; + to += inc; + from += inc; + } return O; +}; +},{"76":76,"79":79,"80":80}],6:[function(_dereq_,module,exports){ +// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length) +'use strict'; +var toObject = _dereq_(80) + , toIndex = _dereq_(76) + , toLength = _dereq_(79); +module.exports = [].fill || function fill(value /*, start = 0, end = @length */){ + var O = toObject(this) + , length = toLength(O.length) + , $$ = arguments + , $$len = $$.length + , index = toIndex($$len > 1 ? $$[1] : undefined, length) + , end = $$len > 2 ? $$[2] : undefined + , endPos = end === undefined ? length : toIndex(end, length); + while(endPos > index)O[index++] = value; + return O; +}; +},{"76":76,"79":79,"80":80}],7:[function(_dereq_,module,exports){ +// false -> Array#indexOf +// true -> Array#includes +var toIObject = _dereq_(78) + , toLength = _dereq_(79) + , toIndex = _dereq_(76); +module.exports = function(IS_INCLUDES){ + return function($this, el, fromIndex){ + var O = toIObject($this) + , length = toLength(O.length) + , index = toIndex(fromIndex, length) + , value; + // Array#includes uses SameValueZero equality algorithm + if(IS_INCLUDES && el != el)while(length > index){ + value = O[index++]; + if(value != value)return true; + // Array#toIndex ignores holes, Array#includes - not + } else for(;length > index; index++)if(IS_INCLUDES || index in O){ + if(O[index] === el)return IS_INCLUDES || index; + } return !IS_INCLUDES && -1; + }; +}; +},{"76":76,"78":78,"79":79}],8:[function(_dereq_,module,exports){ +// 0 -> Array#forEach +// 1 -> Array#map +// 2 -> Array#filter +// 3 -> Array#some +// 4 -> Array#every +// 5 -> Array#find +// 6 -> Array#findIndex +var ctx = _dereq_(17) + , IObject = _dereq_(34) + , toObject = _dereq_(80) + , toLength = _dereq_(79) + , asc = _dereq_(9); +module.exports = function(TYPE){ + var IS_MAP = TYPE == 1 + , IS_FILTER = TYPE == 2 + , IS_SOME = TYPE == 3 + , IS_EVERY = TYPE == 4 + , IS_FIND_INDEX = TYPE == 6 + , NO_HOLES = TYPE == 5 || IS_FIND_INDEX; + return function($this, callbackfn, that){ + var O = toObject($this) + , self = IObject(O) + , f = ctx(callbackfn, that, 3) + , length = toLength(self.length) + , index = 0 + , result = IS_MAP ? asc($this, length) : IS_FILTER ? asc($this, 0) : undefined + , val, res; + for(;length > index; index++)if(NO_HOLES || index in self){ + val = self[index]; + res = f(val, index, O); + if(TYPE){ + if(IS_MAP)result[index] = res; // map + else if(res)switch(TYPE){ + case 3: return true; // some + case 5: return val; // find + case 6: return index; // findIndex + case 2: result.push(val); // filter + } else if(IS_EVERY)return false; // every + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; + }; +}; +},{"17":17,"34":34,"79":79,"80":80,"9":9}],9:[function(_dereq_,module,exports){ +// 9.4.2.3 ArraySpeciesCreate(originalArray, length) +var isObject = _dereq_(38) + , isArray = _dereq_(36) + , SPECIES = _dereq_(83)('species'); +module.exports = function(original, length){ + var C; + if(isArray(original)){ + C = original.constructor; + // cross-realm fallback + if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined; + if(isObject(C)){ + C = C[SPECIES]; + if(C === null)C = undefined; + } + } return new (C === undefined ? Array : C)(length); +}; +},{"36":36,"38":38,"83":83}],10:[function(_dereq_,module,exports){ +// getting tag from 19.1.3.6 Object.prototype.toString() +var cof = _dereq_(11) + , TAG = _dereq_(83)('toStringTag') + // ES3 wrong here + , ARG = cof(function(){ return arguments; }()) == 'Arguments'; + +module.exports = function(it){ + var O, T, B; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (T = (O = Object(it))[TAG]) == 'string' ? T + // builtinTag case + : ARG ? cof(O) + // ES3 arguments fallback + : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; +}; +},{"11":11,"83":83}],11:[function(_dereq_,module,exports){ +var toString = {}.toString; + +module.exports = function(it){ + return toString.call(it).slice(8, -1); +}; +},{}],12:[function(_dereq_,module,exports){ +'use strict'; +var $ = _dereq_(46) + , hide = _dereq_(31) + , redefineAll = _dereq_(60) + , ctx = _dereq_(17) + , strictNew = _dereq_(69) + , defined = _dereq_(18) + , forOf = _dereq_(27) + , $iterDefine = _dereq_(42) + , step = _dereq_(44) + , ID = _dereq_(82)('id') + , $has = _dereq_(30) + , isObject = _dereq_(38) + , setSpecies = _dereq_(65) + , DESCRIPTORS = _dereq_(19) + , isExtensible = Object.isExtensible || isObject + , SIZE = DESCRIPTORS ? '_s' : 'size' + , id = 0; + +var fastKey = function(it, create){ + // return primitive with prefix + if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if(!$has(it, ID)){ + // can't set id to frozen object + if(!isExtensible(it))return 'F'; + // not necessary to add id + if(!create)return 'E'; + // add missing object id + hide(it, ID, ++id); + // return object id with prefix + } return 'O' + it[ID]; +}; + +var getEntry = function(that, key){ + // fast case + var index = fastKey(key), entry; + if(index !== 'F')return that._i[index]; + // frozen object case + for(entry = that._f; entry; entry = entry.n){ + if(entry.k == key)return entry; + } +}; + +module.exports = { + getConstructor: function(wrapper, NAME, IS_MAP, ADDER){ + var C = wrapper(function(that, iterable){ + strictNew(that, C, NAME); + that._i = $.create(null); // index + that._f = undefined; // first entry + that._l = undefined; // last entry + that[SIZE] = 0; // size + if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that); + }); + redefineAll(C.prototype, { + // 23.1.3.1 Map.prototype.clear() + // 23.2.3.2 Set.prototype.clear() + clear: function clear(){ + for(var that = this, data = that._i, entry = that._f; entry; entry = entry.n){ + entry.r = true; + if(entry.p)entry.p = entry.p.n = undefined; + delete data[entry.i]; + } + that._f = that._l = undefined; + that[SIZE] = 0; + }, + // 23.1.3.3 Map.prototype.delete(key) + // 23.2.3.4 Set.prototype.delete(value) + 'delete': function(key){ + var that = this + , entry = getEntry(that, key); + if(entry){ + var next = entry.n + , prev = entry.p; + delete that._i[entry.i]; + entry.r = true; + if(prev)prev.n = next; + if(next)next.p = prev; + if(that._f == entry)that._f = next; + if(that._l == entry)that._l = prev; + that[SIZE]--; + } return !!entry; + }, + // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined) + // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined) + forEach: function forEach(callbackfn /*, that = undefined */){ + var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3) + , entry; + while(entry = entry ? entry.n : this._f){ + f(entry.v, entry.k, this); + // revert to the last existing entry + while(entry && entry.r)entry = entry.p; + } + }, + // 23.1.3.7 Map.prototype.has(key) + // 23.2.3.7 Set.prototype.has(value) + has: function has(key){ + return !!getEntry(this, key); + } + }); + if(DESCRIPTORS)$.setDesc(C.prototype, 'size', { + get: function(){ + return defined(this[SIZE]); + } + }); + return C; + }, + def: function(that, key, value){ + var entry = getEntry(that, key) + , prev, index; + // change existing entry + if(entry){ + entry.v = value; + // create new entry + } else { + that._l = entry = { + i: index = fastKey(key, true), // <- index + k: key, // <- key + v: value, // <- value + p: prev = that._l, // <- previous entry + n: undefined, // <- next entry + r: false // <- removed + }; + if(!that._f)that._f = entry; + if(prev)prev.n = entry; + that[SIZE]++; + // add to index + if(index !== 'F')that._i[index] = entry; + } return that; + }, + getEntry: getEntry, + setStrong: function(C, NAME, IS_MAP){ + // add .keys, .values, .entries, [@@iterator] + // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11 + $iterDefine(C, NAME, function(iterated, kind){ + this._t = iterated; // target + this._k = kind; // kind + this._l = undefined; // previous + }, function(){ + var that = this + , kind = that._k + , entry = that._l; + // revert to the last existing entry + while(entry && entry.r)entry = entry.p; + // get next entry + if(!that._t || !(that._l = entry = entry ? entry.n : that._t._f)){ + // or finish the iteration + that._t = undefined; + return step(1); + } + // return step by kind + if(kind == 'keys' )return step(0, entry.k); + if(kind == 'values')return step(0, entry.v); + return step(0, [entry.k, entry.v]); + }, IS_MAP ? 'entries' : 'values' , !IS_MAP, true); + + // add [@@species], 23.1.2.2, 23.2.2.2 + setSpecies(NAME); + } +}; +},{"17":17,"18":18,"19":19,"27":27,"30":30,"31":31,"38":38,"42":42,"44":44,"46":46,"60":60,"65":65,"69":69,"82":82}],13:[function(_dereq_,module,exports){ +// https://github.com/DavidBruant/Map-Set.prototype.toJSON +var forOf = _dereq_(27) + , classof = _dereq_(10); +module.exports = function(NAME){ + return function toJSON(){ + if(classof(this) != NAME)throw TypeError(NAME + "#toJSON isn't generic"); + var arr = []; + forOf(this, false, arr.push, arr); + return arr; + }; +}; +},{"10":10,"27":27}],14:[function(_dereq_,module,exports){ +'use strict'; +var hide = _dereq_(31) + , redefineAll = _dereq_(60) + , anObject = _dereq_(4) + , isObject = _dereq_(38) + , strictNew = _dereq_(69) + , forOf = _dereq_(27) + , createArrayMethod = _dereq_(8) + , $has = _dereq_(30) + , WEAK = _dereq_(82)('weak') + , isExtensible = Object.isExtensible || isObject + , arrayFind = createArrayMethod(5) + , arrayFindIndex = createArrayMethod(6) + , id = 0; + +// fallback for frozen keys +var frozenStore = function(that){ + return that._l || (that._l = new FrozenStore); +}; +var FrozenStore = function(){ + this.a = []; +}; +var findFrozen = function(store, key){ + return arrayFind(store.a, function(it){ + return it[0] === key; + }); +}; +FrozenStore.prototype = { + get: function(key){ + var entry = findFrozen(this, key); + if(entry)return entry[1]; + }, + has: function(key){ + return !!findFrozen(this, key); + }, + set: function(key, value){ + var entry = findFrozen(this, key); + if(entry)entry[1] = value; + else this.a.push([key, value]); + }, + 'delete': function(key){ + var index = arrayFindIndex(this.a, function(it){ + return it[0] === key; + }); + if(~index)this.a.splice(index, 1); + return !!~index; + } +}; + +module.exports = { + getConstructor: function(wrapper, NAME, IS_MAP, ADDER){ + var C = wrapper(function(that, iterable){ + strictNew(that, C, NAME); + that._i = id++; // collection id + that._l = undefined; // leak store for frozen objects + if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that); + }); + redefineAll(C.prototype, { + // 23.3.3.2 WeakMap.prototype.delete(key) + // 23.4.3.3 WeakSet.prototype.delete(value) + 'delete': function(key){ + if(!isObject(key))return false; + if(!isExtensible(key))return frozenStore(this)['delete'](key); + return $has(key, WEAK) && $has(key[WEAK], this._i) && delete key[WEAK][this._i]; + }, + // 23.3.3.4 WeakMap.prototype.has(key) + // 23.4.3.4 WeakSet.prototype.has(value) + has: function has(key){ + if(!isObject(key))return false; + if(!isExtensible(key))return frozenStore(this).has(key); + return $has(key, WEAK) && $has(key[WEAK], this._i); + } + }); + return C; + }, + def: function(that, key, value){ + if(!isExtensible(anObject(key))){ + frozenStore(that).set(key, value); + } else { + $has(key, WEAK) || hide(key, WEAK, {}); + key[WEAK][that._i] = value; + } return that; + }, + frozenStore: frozenStore, + WEAK: WEAK +}; +},{"27":27,"30":30,"31":31,"38":38,"4":4,"60":60,"69":69,"8":8,"82":82}],15:[function(_dereq_,module,exports){ +'use strict'; +var global = _dereq_(29) + , $export = _dereq_(22) + , redefine = _dereq_(61) + , redefineAll = _dereq_(60) + , forOf = _dereq_(27) + , strictNew = _dereq_(69) + , isObject = _dereq_(38) + , fails = _dereq_(24) + , $iterDetect = _dereq_(43) + , setToStringTag = _dereq_(66); + +module.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){ + var Base = global[NAME] + , C = Base + , ADDER = IS_MAP ? 'set' : 'add' + , proto = C && C.prototype + , O = {}; + var fixMethod = function(KEY){ + var fn = proto[KEY]; + redefine(proto, KEY, + KEY == 'delete' ? function(a){ + return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'has' ? function has(a){ + return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'get' ? function get(a){ + return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'add' ? function add(a){ fn.call(this, a === 0 ? 0 : a); return this; } + : function set(a, b){ fn.call(this, a === 0 ? 0 : a, b); return this; } + ); + }; + if(typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function(){ + new C().entries().next(); + }))){ + // create collection constructor + C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); + redefineAll(C.prototype, methods); + } else { + var instance = new C + // early implementations not supports chaining + , HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance + // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false + , THROWS_ON_PRIMITIVES = fails(function(){ instance.has(1); }) + // most early implementations doesn't supports iterables, most modern - not close it correctly + , ACCEPT_ITERABLES = $iterDetect(function(iter){ new C(iter); }) // eslint-disable-line no-new + // for early implementations -0 and +0 not the same + , BUGGY_ZERO; + if(!ACCEPT_ITERABLES){ + C = wrapper(function(target, iterable){ + strictNew(target, C, NAME); + var that = new Base; + if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that); + return that; + }); + C.prototype = proto; + proto.constructor = C; + } + IS_WEAK || instance.forEach(function(val, key){ + BUGGY_ZERO = 1 / key === -Infinity; + }); + if(THROWS_ON_PRIMITIVES || BUGGY_ZERO){ + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + if(BUGGY_ZERO || HASNT_CHAINING)fixMethod(ADDER); + // weak collections should not contains .clear method + if(IS_WEAK && proto.clear)delete proto.clear; + } + + setToStringTag(C, NAME); + + O[NAME] = C; + $export($export.G + $export.W + $export.F * (C != Base), O); + + if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP); + + return C; +}; +},{"22":22,"24":24,"27":27,"29":29,"38":38,"43":43,"60":60,"61":61,"66":66,"69":69}],16:[function(_dereq_,module,exports){ +var core = module.exports = {version: '1.2.6'}; +if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef +},{}],17:[function(_dereq_,module,exports){ +// optional / simple context binding +var aFunction = _dereq_(2); +module.exports = function(fn, that, length){ + aFunction(fn); + if(that === undefined)return fn; + switch(length){ + case 1: return function(a){ + return fn.call(that, a); + }; + case 2: return function(a, b){ + return fn.call(that, a, b); + }; + case 3: return function(a, b, c){ + return fn.call(that, a, b, c); + }; + } + return function(/* ...args */){ + return fn.apply(that, arguments); + }; +}; +},{"2":2}],18:[function(_dereq_,module,exports){ +// 7.2.1 RequireObjectCoercible(argument) +module.exports = function(it){ + if(it == undefined)throw TypeError("Can't call method on " + it); + return it; +}; +},{}],19:[function(_dereq_,module,exports){ +// Thank's IE8 for his funny defineProperty +module.exports = !_dereq_(24)(function(){ + return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; +}); +},{"24":24}],20:[function(_dereq_,module,exports){ +var isObject = _dereq_(38) + , document = _dereq_(29).document + // in old IE typeof document.createElement is 'object' + , is = isObject(document) && isObject(document.createElement); +module.exports = function(it){ + return is ? document.createElement(it) : {}; +}; +},{"29":29,"38":38}],21:[function(_dereq_,module,exports){ +// all enumerable object keys, includes symbols +var $ = _dereq_(46); +module.exports = function(it){ + var keys = $.getKeys(it) + , getSymbols = $.getSymbols; + if(getSymbols){ + var symbols = getSymbols(it) + , isEnum = $.isEnum + , i = 0 + , key; + while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key); + } + return keys; +}; +},{"46":46}],22:[function(_dereq_,module,exports){ +var global = _dereq_(29) + , core = _dereq_(16) + , hide = _dereq_(31) + , redefine = _dereq_(61) + , ctx = _dereq_(17) + , PROTOTYPE = 'prototype'; + +var $export = function(type, name, source){ + var IS_FORCED = type & $export.F + , IS_GLOBAL = type & $export.G + , IS_STATIC = type & $export.S + , IS_PROTO = type & $export.P + , IS_BIND = type & $export.B + , target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE] + , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) + , expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}) + , key, own, out, exp; + if(IS_GLOBAL)source = name; + for(key in source){ + // contains in native + own = !IS_FORCED && target && key in target; + // export native or passed + out = (own ? target : source)[key]; + // bind timers to global for call from export context + exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; + // extend global + if(target && !own)redefine(target, key, out); + // export + if(exports[key] != out)hide(exports, key, exp); + if(IS_PROTO && expProto[key] != out)expProto[key] = out; + } +}; +global.core = core; +// type bitmap +$export.F = 1; // forced +$export.G = 2; // global +$export.S = 4; // static +$export.P = 8; // proto +$export.B = 16; // bind +$export.W = 32; // wrap +module.exports = $export; +},{"16":16,"17":17,"29":29,"31":31,"61":61}],23:[function(_dereq_,module,exports){ +var MATCH = _dereq_(83)('match'); +module.exports = function(KEY){ + var re = /./; + try { + '/./'[KEY](re); + } catch(e){ + try { + re[MATCH] = false; + return !'/./'[KEY](re); + } catch(f){ /* empty */ } + } return true; +}; +},{"83":83}],24:[function(_dereq_,module,exports){ +module.exports = function(exec){ + try { + return !!exec(); + } catch(e){ + return true; + } +}; +},{}],25:[function(_dereq_,module,exports){ +'use strict'; +var hide = _dereq_(31) + , redefine = _dereq_(61) + , fails = _dereq_(24) + , defined = _dereq_(18) + , wks = _dereq_(83); + +module.exports = function(KEY, length, exec){ + var SYMBOL = wks(KEY) + , original = ''[KEY]; + if(fails(function(){ + var O = {}; + O[SYMBOL] = function(){ return 7; }; + return ''[KEY](O) != 7; + })){ + redefine(String.prototype, KEY, exec(defined, SYMBOL, original)); + hide(RegExp.prototype, SYMBOL, length == 2 + // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue) + // 21.2.5.11 RegExp.prototype[@@split](string, limit) + ? function(string, arg){ return original.call(string, this, arg); } + // 21.2.5.6 RegExp.prototype[@@match](string) + // 21.2.5.9 RegExp.prototype[@@search](string) + : function(string){ return original.call(string, this); } + ); + } +}; +},{"18":18,"24":24,"31":31,"61":61,"83":83}],26:[function(_dereq_,module,exports){ +'use strict'; +// 21.2.5.3 get RegExp.prototype.flags +var anObject = _dereq_(4); +module.exports = function(){ + var that = anObject(this) + , result = ''; + if(that.global) result += 'g'; + if(that.ignoreCase) result += 'i'; + if(that.multiline) result += 'm'; + if(that.unicode) result += 'u'; + if(that.sticky) result += 'y'; + return result; +}; +},{"4":4}],27:[function(_dereq_,module,exports){ +var ctx = _dereq_(17) + , call = _dereq_(40) + , isArrayIter = _dereq_(35) + , anObject = _dereq_(4) + , toLength = _dereq_(79) + , getIterFn = _dereq_(84); +module.exports = function(iterable, entries, fn, that){ + var iterFn = getIterFn(iterable) + , f = ctx(fn, that, entries ? 2 : 1) + , index = 0 + , length, step, iterator; + if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!'); + // fast case for arrays with default iterator + if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){ + entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); + } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){ + call(iterator, f, step.value, entries); + } +}; +},{"17":17,"35":35,"4":4,"40":40,"79":79,"84":84}],28:[function(_dereq_,module,exports){ +// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window +var toIObject = _dereq_(78) + , getNames = _dereq_(46).getNames + , toString = {}.toString; + +var windowNames = typeof window == 'object' && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + +var getWindowNames = function(it){ + try { + return getNames(it); + } catch(e){ + return windowNames.slice(); + } +}; + +module.exports.get = function getOwnPropertyNames(it){ + if(windowNames && toString.call(it) == '[object Window]')return getWindowNames(it); + return getNames(toIObject(it)); +}; +},{"46":46,"78":78}],29:[function(_dereq_,module,exports){ +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +var global = module.exports = typeof window != 'undefined' && window.Math == Math + ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); +if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef +},{}],30:[function(_dereq_,module,exports){ +var hasOwnProperty = {}.hasOwnProperty; +module.exports = function(it, key){ + return hasOwnProperty.call(it, key); +}; +},{}],31:[function(_dereq_,module,exports){ +var $ = _dereq_(46) + , createDesc = _dereq_(59); +module.exports = _dereq_(19) ? function(object, key, value){ + return $.setDesc(object, key, createDesc(1, value)); +} : function(object, key, value){ + object[key] = value; + return object; +}; +},{"19":19,"46":46,"59":59}],32:[function(_dereq_,module,exports){ +module.exports = _dereq_(29).document && document.documentElement; +},{"29":29}],33:[function(_dereq_,module,exports){ +// fast apply, http://jsperf.lnkit.com/fast-apply/5 +module.exports = function(fn, args, that){ + var un = that === undefined; + switch(args.length){ + case 0: return un ? fn() + : fn.call(that); + case 1: return un ? fn(args[0]) + : fn.call(that, args[0]); + case 2: return un ? fn(args[0], args[1]) + : fn.call(that, args[0], args[1]); + case 3: return un ? fn(args[0], args[1], args[2]) + : fn.call(that, args[0], args[1], args[2]); + case 4: return un ? fn(args[0], args[1], args[2], args[3]) + : fn.call(that, args[0], args[1], args[2], args[3]); + } return fn.apply(that, args); +}; +},{}],34:[function(_dereq_,module,exports){ +// fallback for non-array-like ES3 and non-enumerable old V8 strings +var cof = _dereq_(11); +module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ + return cof(it) == 'String' ? it.split('') : Object(it); +}; +},{"11":11}],35:[function(_dereq_,module,exports){ +// check on default Array iterator +var Iterators = _dereq_(45) + , ITERATOR = _dereq_(83)('iterator') + , ArrayProto = Array.prototype; + +module.exports = function(it){ + return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); +}; +},{"45":45,"83":83}],36:[function(_dereq_,module,exports){ +// 7.2.2 IsArray(argument) +var cof = _dereq_(11); +module.exports = Array.isArray || function(arg){ + return cof(arg) == 'Array'; +}; +},{"11":11}],37:[function(_dereq_,module,exports){ +// 20.1.2.3 Number.isInteger(number) +var isObject = _dereq_(38) + , floor = Math.floor; +module.exports = function isInteger(it){ + return !isObject(it) && isFinite(it) && floor(it) === it; +}; +},{"38":38}],38:[function(_dereq_,module,exports){ +module.exports = function(it){ + return typeof it === 'object' ? it !== null : typeof it === 'function'; +}; +},{}],39:[function(_dereq_,module,exports){ +// 7.2.8 IsRegExp(argument) +var isObject = _dereq_(38) + , cof = _dereq_(11) + , MATCH = _dereq_(83)('match'); +module.exports = function(it){ + var isRegExp; + return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp'); +}; +},{"11":11,"38":38,"83":83}],40:[function(_dereq_,module,exports){ +// call something on iterator step with safe closing on error +var anObject = _dereq_(4); +module.exports = function(iterator, fn, value, entries){ + try { + return entries ? fn(anObject(value)[0], value[1]) : fn(value); + // 7.4.6 IteratorClose(iterator, completion) + } catch(e){ + var ret = iterator['return']; + if(ret !== undefined)anObject(ret.call(iterator)); + throw e; + } +}; +},{"4":4}],41:[function(_dereq_,module,exports){ +'use strict'; +var $ = _dereq_(46) + , descriptor = _dereq_(59) + , setToStringTag = _dereq_(66) + , IteratorPrototype = {}; + +// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() +_dereq_(31)(IteratorPrototype, _dereq_(83)('iterator'), function(){ return this; }); + +module.exports = function(Constructor, NAME, next){ + Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)}); + setToStringTag(Constructor, NAME + ' Iterator'); +}; +},{"31":31,"46":46,"59":59,"66":66,"83":83}],42:[function(_dereq_,module,exports){ +'use strict'; +var LIBRARY = _dereq_(48) + , $export = _dereq_(22) + , redefine = _dereq_(61) + , hide = _dereq_(31) + , has = _dereq_(30) + , Iterators = _dereq_(45) + , $iterCreate = _dereq_(41) + , setToStringTag = _dereq_(66) + , getProto = _dereq_(46).getProto + , ITERATOR = _dereq_(83)('iterator') + , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next` + , FF_ITERATOR = '@@iterator' + , KEYS = 'keys' + , VALUES = 'values'; + +var returnThis = function(){ return this; }; + +module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){ + $iterCreate(Constructor, NAME, next); + var getMethod = function(kind){ + if(!BUGGY && kind in proto)return proto[kind]; + switch(kind){ + case KEYS: return function keys(){ return new Constructor(this, kind); }; + case VALUES: return function values(){ return new Constructor(this, kind); }; + } return function entries(){ return new Constructor(this, kind); }; + }; + var TAG = NAME + ' Iterator' + , DEF_VALUES = DEFAULT == VALUES + , VALUES_BUG = false + , proto = Base.prototype + , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT] + , $default = $native || getMethod(DEFAULT) + , methods, key; + // Fix native + if($native){ + var IteratorPrototype = getProto($default.call(new Base)); + // Set @@toStringTag to native iterators + setToStringTag(IteratorPrototype, TAG, true); + // FF fix + if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis); + // fix Array#{values, @@iterator}.name in V8 / FF + if(DEF_VALUES && $native.name !== VALUES){ + VALUES_BUG = true; + $default = function values(){ return $native.call(this); }; + } + } + // Define iterator + if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){ + hide(proto, ITERATOR, $default); + } + // Plug for library + Iterators[NAME] = $default; + Iterators[TAG] = returnThis; + if(DEFAULT){ + methods = { + values: DEF_VALUES ? $default : getMethod(VALUES), + keys: IS_SET ? $default : getMethod(KEYS), + entries: !DEF_VALUES ? $default : getMethod('entries') + }; + if(FORCED)for(key in methods){ + if(!(key in proto))redefine(proto, key, methods[key]); + } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); + } + return methods; +}; +},{"22":22,"30":30,"31":31,"41":41,"45":45,"46":46,"48":48,"61":61,"66":66,"83":83}],43:[function(_dereq_,module,exports){ +var ITERATOR = _dereq_(83)('iterator') + , SAFE_CLOSING = false; + +try { + var riter = [7][ITERATOR](); + riter['return'] = function(){ SAFE_CLOSING = true; }; + Array.from(riter, function(){ throw 2; }); +} catch(e){ /* empty */ } + +module.exports = function(exec, skipClosing){ + if(!skipClosing && !SAFE_CLOSING)return false; + var safe = false; + try { + var arr = [7] + , iter = arr[ITERATOR](); + iter.next = function(){ safe = true; }; + arr[ITERATOR] = function(){ return iter; }; + exec(arr); + } catch(e){ /* empty */ } + return safe; +}; +},{"83":83}],44:[function(_dereq_,module,exports){ +module.exports = function(done, value){ + return {value: value, done: !!done}; +}; +},{}],45:[function(_dereq_,module,exports){ +module.exports = {}; +},{}],46:[function(_dereq_,module,exports){ +var $Object = Object; +module.exports = { + create: $Object.create, + getProto: $Object.getPrototypeOf, + isEnum: {}.propertyIsEnumerable, + getDesc: $Object.getOwnPropertyDescriptor, + setDesc: $Object.defineProperty, + setDescs: $Object.defineProperties, + getKeys: $Object.keys, + getNames: $Object.getOwnPropertyNames, + getSymbols: $Object.getOwnPropertySymbols, + each: [].forEach +}; +},{}],47:[function(_dereq_,module,exports){ +var $ = _dereq_(46) + , toIObject = _dereq_(78); +module.exports = function(object, el){ + var O = toIObject(object) + , keys = $.getKeys(O) + , length = keys.length + , index = 0 + , key; + while(length > index)if(O[key = keys[index++]] === el)return key; +}; +},{"46":46,"78":78}],48:[function(_dereq_,module,exports){ +module.exports = false; +},{}],49:[function(_dereq_,module,exports){ +// 20.2.2.14 Math.expm1(x) +module.exports = Math.expm1 || function expm1(x){ + return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1; +}; +},{}],50:[function(_dereq_,module,exports){ +// 20.2.2.20 Math.log1p(x) +module.exports = Math.log1p || function log1p(x){ + return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x); +}; +},{}],51:[function(_dereq_,module,exports){ +// 20.2.2.28 Math.sign(x) +module.exports = Math.sign || function sign(x){ + return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1; +}; +},{}],52:[function(_dereq_,module,exports){ +var global = _dereq_(29) + , macrotask = _dereq_(75).set + , Observer = global.MutationObserver || global.WebKitMutationObserver + , process = global.process + , Promise = global.Promise + , isNode = _dereq_(11)(process) == 'process' + , head, last, notify; + +var flush = function(){ + var parent, domain, fn; + if(isNode && (parent = process.domain)){ + process.domain = null; + parent.exit(); + } + while(head){ + domain = head.domain; + fn = head.fn; + if(domain)domain.enter(); + fn(); // <- currently we use it only for Promise - try / catch not required + if(domain)domain.exit(); + head = head.next; + } last = undefined; + if(parent)parent.enter(); +}; + +// Node.js +if(isNode){ + notify = function(){ + process.nextTick(flush); + }; +// browsers with MutationObserver +} else if(Observer){ + var toggle = 1 + , node = document.createTextNode(''); + new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new + notify = function(){ + node.data = toggle = -toggle; + }; +// environments with maybe non-completely correct, but existent Promise +} else if(Promise && Promise.resolve){ + notify = function(){ + Promise.resolve().then(flush); + }; +// for other environments - macrotask based on: +// - setImmediate +// - MessageChannel +// - window.postMessag +// - onreadystatechange +// - setTimeout +} else { + notify = function(){ + // strange IE + webpack dev server bug - use .call(global) + macrotask.call(global, flush); + }; +} + +module.exports = function asap(fn){ + var task = {fn: fn, next: undefined, domain: isNode && process.domain}; + if(last)last.next = task; + if(!head){ + head = task; + notify(); + } last = task; +}; +},{"11":11,"29":29,"75":75}],53:[function(_dereq_,module,exports){ +// 19.1.2.1 Object.assign(target, source, ...) +var $ = _dereq_(46) + , toObject = _dereq_(80) + , IObject = _dereq_(34); + +// should work with symbols and should have deterministic property order (V8 bug) +module.exports = _dereq_(24)(function(){ + var a = Object.assign + , A = {} + , B = {} + , S = Symbol() + , K = 'abcdefghijklmnopqrst'; + A[S] = 7; + K.split('').forEach(function(k){ B[k] = k; }); + return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K; +}) ? function assign(target, source){ // eslint-disable-line no-unused-vars + var T = toObject(target) + , $$ = arguments + , $$len = $$.length + , index = 1 + , getKeys = $.getKeys + , getSymbols = $.getSymbols + , isEnum = $.isEnum; + while($$len > index){ + var S = IObject($$[index++]) + , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) + , length = keys.length + , j = 0 + , key; + while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; + } + return T; +} : Object.assign; +},{"24":24,"34":34,"46":46,"80":80}],54:[function(_dereq_,module,exports){ +// most Object methods by ES6 should accept primitives +var $export = _dereq_(22) + , core = _dereq_(16) + , fails = _dereq_(24); +module.exports = function(KEY, exec){ + var fn = (core.Object || {})[KEY] || Object[KEY] + , exp = {}; + exp[KEY] = exec(fn); + $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp); +}; +},{"16":16,"22":22,"24":24}],55:[function(_dereq_,module,exports){ +var $ = _dereq_(46) + , toIObject = _dereq_(78) + , isEnum = $.isEnum; +module.exports = function(isEntries){ + return function(it){ + var O = toIObject(it) + , keys = $.getKeys(O) + , length = keys.length + , i = 0 + , result = [] + , key; + while(length > i)if(isEnum.call(O, key = keys[i++])){ + result.push(isEntries ? [key, O[key]] : O[key]); + } return result; + }; +}; +},{"46":46,"78":78}],56:[function(_dereq_,module,exports){ +// all object keys, includes non-enumerable and symbols +var $ = _dereq_(46) + , anObject = _dereq_(4) + , Reflect = _dereq_(29).Reflect; +module.exports = Reflect && Reflect.ownKeys || function ownKeys(it){ + var keys = $.getNames(anObject(it)) + , getSymbols = $.getSymbols; + return getSymbols ? keys.concat(getSymbols(it)) : keys; +}; +},{"29":29,"4":4,"46":46}],57:[function(_dereq_,module,exports){ +'use strict'; +var path = _dereq_(58) + , invoke = _dereq_(33) + , aFunction = _dereq_(2); +module.exports = function(/* ...pargs */){ + var fn = aFunction(this) + , length = arguments.length + , pargs = Array(length) + , i = 0 + , _ = path._ + , holder = false; + while(length > i)if((pargs[i] = arguments[i++]) === _)holder = true; + return function(/* ...args */){ + var that = this + , $$ = arguments + , $$len = $$.length + , j = 0, k = 0, args; + if(!holder && !$$len)return invoke(fn, pargs, that); + args = pargs.slice(); + if(holder)for(;length > j; j++)if(args[j] === _)args[j] = $$[k++]; + while($$len > k)args.push($$[k++]); + return invoke(fn, args, that); + }; +}; +},{"2":2,"33":33,"58":58}],58:[function(_dereq_,module,exports){ +module.exports = _dereq_(29); +},{"29":29}],59:[function(_dereq_,module,exports){ +module.exports = function(bitmap, value){ + return { + enumerable : !(bitmap & 1), + configurable: !(bitmap & 2), + writable : !(bitmap & 4), + value : value + }; +}; +},{}],60:[function(_dereq_,module,exports){ +var redefine = _dereq_(61); +module.exports = function(target, src){ + for(var key in src)redefine(target, key, src[key]); + return target; +}; +},{"61":61}],61:[function(_dereq_,module,exports){ +// add fake Function#toString +// for correct work wrapped methods / constructors with methods like LoDash isNative +var global = _dereq_(29) + , hide = _dereq_(31) + , SRC = _dereq_(82)('src') + , TO_STRING = 'toString' + , $toString = Function[TO_STRING] + , TPL = ('' + $toString).split(TO_STRING); + +_dereq_(16).inspectSource = function(it){ + return $toString.call(it); +}; + +(module.exports = function(O, key, val, safe){ + if(typeof val == 'function'){ + val.hasOwnProperty(SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); + val.hasOwnProperty('name') || hide(val, 'name', key); + } + if(O === global){ + O[key] = val; + } else { + if(!safe)delete O[key]; + hide(O, key, val); + } +})(Function.prototype, TO_STRING, function toString(){ + return typeof this == 'function' && this[SRC] || $toString.call(this); +}); +},{"16":16,"29":29,"31":31,"82":82}],62:[function(_dereq_,module,exports){ +module.exports = function(regExp, replace){ + var replacer = replace === Object(replace) ? function(part){ + return replace[part]; + } : replace; + return function(it){ + return String(it).replace(regExp, replacer); + }; +}; +},{}],63:[function(_dereq_,module,exports){ +// 7.2.9 SameValue(x, y) +module.exports = Object.is || function is(x, y){ + return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y; +}; +},{}],64:[function(_dereq_,module,exports){ +// Works with __proto__ only. Old v8 can't work with null proto objects. +/* eslint-disable no-proto */ +var getDesc = _dereq_(46).getDesc + , isObject = _dereq_(38) + , anObject = _dereq_(4); +var check = function(O, proto){ + anObject(O); + if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!"); +}; +module.exports = { + set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line + function(test, buggy, set){ + try { + set = _dereq_(17)(Function.call, getDesc(Object.prototype, '__proto__').set, 2); + set(test, []); + buggy = !(test instanceof Array); + } catch(e){ buggy = true; } + return function setPrototypeOf(O, proto){ + check(O, proto); + if(buggy)O.__proto__ = proto; + else set(O, proto); + return O; + }; + }({}, false) : undefined), + check: check +}; +},{"17":17,"38":38,"4":4,"46":46}],65:[function(_dereq_,module,exports){ +'use strict'; +var global = _dereq_(29) + , $ = _dereq_(46) + , DESCRIPTORS = _dereq_(19) + , SPECIES = _dereq_(83)('species'); + +module.exports = function(KEY){ + var C = global[KEY]; + if(DESCRIPTORS && C && !C[SPECIES])$.setDesc(C, SPECIES, { + configurable: true, + get: function(){ return this; } + }); +}; +},{"19":19,"29":29,"46":46,"83":83}],66:[function(_dereq_,module,exports){ +var def = _dereq_(46).setDesc + , has = _dereq_(30) + , TAG = _dereq_(83)('toStringTag'); + +module.exports = function(it, tag, stat){ + if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag}); +}; +},{"30":30,"46":46,"83":83}],67:[function(_dereq_,module,exports){ +var global = _dereq_(29) + , SHARED = '__core-js_shared__' + , store = global[SHARED] || (global[SHARED] = {}); +module.exports = function(key){ + return store[key] || (store[key] = {}); +}; +},{"29":29}],68:[function(_dereq_,module,exports){ +// 7.3.20 SpeciesConstructor(O, defaultConstructor) +var anObject = _dereq_(4) + , aFunction = _dereq_(2) + , SPECIES = _dereq_(83)('species'); +module.exports = function(O, D){ + var C = anObject(O).constructor, S; + return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); +}; +},{"2":2,"4":4,"83":83}],69:[function(_dereq_,module,exports){ +module.exports = function(it, Constructor, name){ + if(!(it instanceof Constructor))throw TypeError(name + ": use the 'new' operator!"); + return it; +}; +},{}],70:[function(_dereq_,module,exports){ +var toInteger = _dereq_(77) + , defined = _dereq_(18); +// true -> String#at +// false -> String#codePointAt +module.exports = function(TO_STRING){ + return function(that, pos){ + var s = String(defined(that)) + , i = toInteger(pos) + , l = s.length + , a, b; + if(i < 0 || i >= l)return TO_STRING ? '' : undefined; + a = s.charCodeAt(i); + return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff + ? TO_STRING ? s.charAt(i) : a + : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; + }; +}; +},{"18":18,"77":77}],71:[function(_dereq_,module,exports){ +// helper for String#{startsWith, endsWith, includes} +var isRegExp = _dereq_(39) + , defined = _dereq_(18); + +module.exports = function(that, searchString, NAME){ + if(isRegExp(searchString))throw TypeError('String#' + NAME + " doesn't accept regex!"); + return String(defined(that)); +}; +},{"18":18,"39":39}],72:[function(_dereq_,module,exports){ +// https://github.com/ljharb/proposal-string-pad-left-right +var toLength = _dereq_(79) + , repeat = _dereq_(73) + , defined = _dereq_(18); + +module.exports = function(that, maxLength, fillString, left){ + var S = String(defined(that)) + , stringLength = S.length + , fillStr = fillString === undefined ? ' ' : String(fillString) + , intMaxLength = toLength(maxLength); + if(intMaxLength <= stringLength)return S; + if(fillStr == '')fillStr = ' '; + var fillLen = intMaxLength - stringLength + , stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length)); + if(stringFiller.length > fillLen)stringFiller = stringFiller.slice(0, fillLen); + return left ? stringFiller + S : S + stringFiller; +}; +},{"18":18,"73":73,"79":79}],73:[function(_dereq_,module,exports){ +'use strict'; +var toInteger = _dereq_(77) + , defined = _dereq_(18); + +module.exports = function repeat(count){ + var str = String(defined(this)) + , res = '' + , n = toInteger(count); + if(n < 0 || n == Infinity)throw RangeError("Count can't be negative"); + for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str; + return res; +}; +},{"18":18,"77":77}],74:[function(_dereq_,module,exports){ +var $export = _dereq_(22) + , defined = _dereq_(18) + , fails = _dereq_(24) + , spaces = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' + + '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF' + , space = '[' + spaces + ']' + , non = '\u200b\u0085' + , ltrim = RegExp('^' + space + space + '*') + , rtrim = RegExp(space + space + '*$'); + +var exporter = function(KEY, exec){ + var exp = {}; + exp[KEY] = exec(trim); + $export($export.P + $export.F * fails(function(){ + return !!spaces[KEY]() || non[KEY]() != non; + }), 'String', exp); +}; + +// 1 -> String#trimLeft +// 2 -> String#trimRight +// 3 -> String#trim +var trim = exporter.trim = function(string, TYPE){ + string = String(defined(string)); + if(TYPE & 1)string = string.replace(ltrim, ''); + if(TYPE & 2)string = string.replace(rtrim, ''); + return string; +}; + +module.exports = exporter; +},{"18":18,"22":22,"24":24}],75:[function(_dereq_,module,exports){ +var ctx = _dereq_(17) + , invoke = _dereq_(33) + , html = _dereq_(32) + , cel = _dereq_(20) + , global = _dereq_(29) + , process = global.process + , setTask = global.setImmediate + , clearTask = global.clearImmediate + , MessageChannel = global.MessageChannel + , counter = 0 + , queue = {} + , ONREADYSTATECHANGE = 'onreadystatechange' + , defer, channel, port; +var run = function(){ + var id = +this; + if(queue.hasOwnProperty(id)){ + var fn = queue[id]; + delete queue[id]; + fn(); + } +}; +var listner = function(event){ + run.call(event.data); +}; +// Node.js 0.9+ & IE10+ has setImmediate, otherwise: +if(!setTask || !clearTask){ + setTask = function setImmediate(fn){ + var args = [], i = 1; + while(arguments.length > i)args.push(arguments[i++]); + queue[++counter] = function(){ + invoke(typeof fn == 'function' ? fn : Function(fn), args); + }; + defer(counter); + return counter; + }; + clearTask = function clearImmediate(id){ + delete queue[id]; + }; + // Node.js 0.8- + if(_dereq_(11)(process) == 'process'){ + defer = function(id){ + process.nextTick(ctx(run, id, 1)); + }; + // Browsers with MessageChannel, includes WebWorkers + } else if(MessageChannel){ + channel = new MessageChannel; + port = channel.port2; + channel.port1.onmessage = listner; + defer = ctx(port.postMessage, port, 1); + // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if(global.addEventListener && typeof postMessage == 'function' && !global.importScripts){ + defer = function(id){ + global.postMessage(id + '', '*'); + }; + global.addEventListener('message', listner, false); + // IE8- + } else if(ONREADYSTATECHANGE in cel('script')){ + defer = function(id){ + html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function(){ + html.removeChild(this); + run.call(id); + }; + }; + // Rest old browsers + } else { + defer = function(id){ + setTimeout(ctx(run, id, 1), 0); + }; + } +} +module.exports = { + set: setTask, + clear: clearTask +}; +},{"11":11,"17":17,"20":20,"29":29,"32":32,"33":33}],76:[function(_dereq_,module,exports){ +var toInteger = _dereq_(77) + , max = Math.max + , min = Math.min; +module.exports = function(index, length){ + index = toInteger(index); + return index < 0 ? max(index + length, 0) : min(index, length); +}; +},{"77":77}],77:[function(_dereq_,module,exports){ +// 7.1.4 ToInteger +var ceil = Math.ceil + , floor = Math.floor; +module.exports = function(it){ + return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); +}; +},{}],78:[function(_dereq_,module,exports){ +// to indexed object, toObject with fallback for non-array-like ES3 strings +var IObject = _dereq_(34) + , defined = _dereq_(18); +module.exports = function(it){ + return IObject(defined(it)); +}; +},{"18":18,"34":34}],79:[function(_dereq_,module,exports){ +// 7.1.15 ToLength +var toInteger = _dereq_(77) + , min = Math.min; +module.exports = function(it){ + return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 +}; +},{"77":77}],80:[function(_dereq_,module,exports){ +// 7.1.13 ToObject(argument) +var defined = _dereq_(18); +module.exports = function(it){ + return Object(defined(it)); +}; +},{"18":18}],81:[function(_dereq_,module,exports){ +// 7.1.1 ToPrimitive(input [, PreferredType])
+var isObject = _dereq_(38);
+// instead of the ES6 spec version, we didn't implement @@toPrimitive case
+// and the second argument - flag - preferred type is a string
+module.exports = function(it, S){
+ if(!isObject(it))return it;
+ var fn, val;
+ if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
+ if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
+ if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
+ throw TypeError("Can't convert object to primitive value");
+}; +},{"38":38}],82:[function(_dereq_,module,exports){ +var id = 0 + , px = Math.random(); +module.exports = function(key){ + return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); +}; +},{}],83:[function(_dereq_,module,exports){ +var store = _dereq_(67)('wks') + , uid = _dereq_(82) + , Symbol = _dereq_(29).Symbol; +module.exports = function(name){ + return store[name] || (store[name] = + Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name)); +}; +},{"29":29,"67":67,"82":82}],84:[function(_dereq_,module,exports){ +var classof = _dereq_(10) + , ITERATOR = _dereq_(83)('iterator') + , Iterators = _dereq_(45); +module.exports = _dereq_(16).getIteratorMethod = function(it){ + if(it != undefined)return it[ITERATOR] + || it['@@iterator'] + || Iterators[classof(it)]; +}; +},{"10":10,"16":16,"45":45,"83":83}],85:[function(_dereq_,module,exports){ +'use strict'; +var $ = _dereq_(46) + , $export = _dereq_(22) + , DESCRIPTORS = _dereq_(19) + , createDesc = _dereq_(59) + , html = _dereq_(32) + , cel = _dereq_(20) + , has = _dereq_(30) + , cof = _dereq_(11) + , invoke = _dereq_(33) + , fails = _dereq_(24) + , anObject = _dereq_(4) + , aFunction = _dereq_(2) + , isObject = _dereq_(38) + , toObject = _dereq_(80) + , toIObject = _dereq_(78) + , toInteger = _dereq_(77) + , toIndex = _dereq_(76) + , toLength = _dereq_(79) + , IObject = _dereq_(34) + , IE_PROTO = _dereq_(82)('__proto__') + , createArrayMethod = _dereq_(8) + , arrayIndexOf = _dereq_(7)(false) + , ObjectProto = Object.prototype + , ArrayProto = Array.prototype + , arraySlice = ArrayProto.slice + , arrayJoin = ArrayProto.join + , defineProperty = $.setDesc + , getOwnDescriptor = $.getDesc + , defineProperties = $.setDescs + , factories = {} + , IE8_DOM_DEFINE; + +if(!DESCRIPTORS){ + IE8_DOM_DEFINE = !fails(function(){ + return defineProperty(cel('div'), 'a', {get: function(){ return 7; }}).a != 7; + }); + $.setDesc = function(O, P, Attributes){ + if(IE8_DOM_DEFINE)try { + return defineProperty(O, P, Attributes); + } catch(e){ /* empty */ } + if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); + if('value' in Attributes)anObject(O)[P] = Attributes.value; + return O; + }; + $.getDesc = function(O, P){ + if(IE8_DOM_DEFINE)try { + return getOwnDescriptor(O, P); + } catch(e){ /* empty */ } + if(has(O, P))return createDesc(!ObjectProto.propertyIsEnumerable.call(O, P), O[P]); + }; + $.setDescs = defineProperties = function(O, Properties){ + anObject(O); + var keys = $.getKeys(Properties) + , length = keys.length + , i = 0 + , P; + while(length > i)$.setDesc(O, P = keys[i++], Properties[P]); + return O; + }; +} +$export($export.S + $export.F * !DESCRIPTORS, 'Object', { + // 19.1.2.6 / 15.2.3.3 Object.getOwnPropertyDescriptor(O, P) + getOwnPropertyDescriptor: $.getDesc, + // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) + defineProperty: $.setDesc, + // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties) + defineProperties: defineProperties +}); + + // IE 8- don't enum bug keys +var keys1 = ('constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,' + + 'toLocaleString,toString,valueOf').split(',') + // Additional keys for getOwnPropertyNames + , keys2 = keys1.concat('length', 'prototype') + , keysLen1 = keys1.length; + +// Create object with `null` prototype: use iframe Object with cleared prototype +var createDict = function(){ + // Thrash, waste and sodomy: IE GC bug + var iframe = cel('iframe') + , i = keysLen1 + , gt = '>' + , iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + iframe.src = 'javascript:'; // eslint-disable-line no-script-url + // createDict = iframe.contentWindow.Object; + // html.removeChild(iframe); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write('<script>document.F=Object</script' + gt); + iframeDocument.close(); + createDict = iframeDocument.F; + while(i--)delete createDict.prototype[keys1[i]]; + return createDict(); +}; +var createGetKeys = function(names, length){ + return function(object){ + var O = toIObject(object) + , i = 0 + , result = [] + , key; + for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); + // Don't enum bug & hidden keys + while(length > i)if(has(O, key = names[i++])){ + ~arrayIndexOf(result, key) || result.push(key); + } + return result; + }; +}; +var Empty = function(){}; +$export($export.S, 'Object', { + // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) + getPrototypeOf: $.getProto = $.getProto || function(O){ + O = toObject(O); + if(has(O, IE_PROTO))return O[IE_PROTO]; + if(typeof O.constructor == 'function' && O instanceof O.constructor){ + return O.constructor.prototype; + } return O instanceof Object ? ObjectProto : null; + }, + // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) + getOwnPropertyNames: $.getNames = $.getNames || createGetKeys(keys2, keys2.length, true), + // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) + create: $.create = $.create || function(O, /*?*/Properties){ + var result; + if(O !== null){ + Empty.prototype = anObject(O); + result = new Empty(); + Empty.prototype = null; + // add "__proto__" for Object.getPrototypeOf shim + result[IE_PROTO] = O; + } else result = createDict(); + return Properties === undefined ? result : defineProperties(result, Properties); + }, + // 19.1.2.14 / 15.2.3.14 Object.keys(O) + keys: $.getKeys = $.getKeys || createGetKeys(keys1, keysLen1, false) +}); + +var construct = function(F, len, args){ + if(!(len in factories)){ + for(var n = [], i = 0; i < len; i++)n[i] = 'a[' + i + ']'; + factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')'); + } + return factories[len](F, args); +}; + +// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...) +$export($export.P, 'Function', { + bind: function bind(that /*, args... */){ + var fn = aFunction(this) + , partArgs = arraySlice.call(arguments, 1); + var bound = function(/* args... */){ + var args = partArgs.concat(arraySlice.call(arguments)); + return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that); + }; + if(isObject(fn.prototype))bound.prototype = fn.prototype; + return bound; + } +}); + +// fallback for not array-like ES3 strings and DOM objects +$export($export.P + $export.F * fails(function(){ + if(html)arraySlice.call(html); +}), 'Array', { + slice: function(begin, end){ + var len = toLength(this.length) + , klass = cof(this); + end = end === undefined ? len : end; + if(klass == 'Array')return arraySlice.call(this, begin, end); + var start = toIndex(begin, len) + , upTo = toIndex(end, len) + , size = toLength(upTo - start) + , cloned = Array(size) + , i = 0; + for(; i < size; i++)cloned[i] = klass == 'String' + ? this.charAt(start + i) + : this[start + i]; + return cloned; + } +}); +$export($export.P + $export.F * (IObject != Object), 'Array', { + join: function join(separator){ + return arrayJoin.call(IObject(this), separator === undefined ? ',' : separator); + } +}); + +// 22.1.2.2 / 15.4.3.2 Array.isArray(arg) +$export($export.S, 'Array', {isArray: _dereq_(36)}); + +var createArrayReduce = function(isRight){ + return function(callbackfn, memo){ + aFunction(callbackfn); + var O = IObject(this) + , length = toLength(O.length) + , index = isRight ? length - 1 : 0 + , i = isRight ? -1 : 1; + if(arguments.length < 2)for(;;){ + if(index in O){ + memo = O[index]; + index += i; + break; + } + index += i; + if(isRight ? index < 0 : length <= index){ + throw TypeError('Reduce of empty array with no initial value'); + } + } + for(;isRight ? index >= 0 : length > index; index += i)if(index in O){ + memo = callbackfn(memo, O[index], index, this); + } + return memo; + }; +}; + +var methodize = function($fn){ + return function(arg1/*, arg2 = undefined */){ + return $fn(this, arg1, arguments[1]); + }; +}; + +$export($export.P, 'Array', { + // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg]) + forEach: $.each = $.each || methodize(createArrayMethod(0)), + // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg]) + map: methodize(createArrayMethod(1)), + // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg]) + filter: methodize(createArrayMethod(2)), + // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg]) + some: methodize(createArrayMethod(3)), + // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg]) + every: methodize(createArrayMethod(4)), + // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue]) + reduce: createArrayReduce(false), + // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue]) + reduceRight: createArrayReduce(true), + // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex]) + indexOf: methodize(arrayIndexOf), + // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex]) + lastIndexOf: function(el, fromIndex /* = @[*-1] */){ + var O = toIObject(this) + , length = toLength(O.length) + , index = length - 1; + if(arguments.length > 1)index = Math.min(index, toInteger(fromIndex)); + if(index < 0)index = toLength(length + index); + for(;index >= 0; index--)if(index in O)if(O[index] === el)return index; + return -1; + } +}); + +// 20.3.3.1 / 15.9.4.4 Date.now() +$export($export.S, 'Date', {now: function(){ return +new Date; }}); + +var lz = function(num){ + return num > 9 ? num : '0' + num; +}; + +// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString() +// PhantomJS / old WebKit has a broken implementations +$export($export.P + $export.F * (fails(function(){ + return new Date(-5e13 - 1).toISOString() != '0385-07-25T07:06:39.999Z'; +}) || !fails(function(){ + new Date(NaN).toISOString(); +})), 'Date', { + toISOString: function toISOString(){ + if(!isFinite(this))throw RangeError('Invalid time value'); + var d = this + , y = d.getUTCFullYear() + , m = d.getUTCMilliseconds() + , s = y < 0 ? '-' : y > 9999 ? '+' : ''; + return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) + + '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) + + 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) + + ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z'; + } +}); +},{"11":11,"19":19,"2":2,"20":20,"22":22,"24":24,"30":30,"32":32,"33":33,"34":34,"36":36,"38":38,"4":4,"46":46,"59":59,"7":7,"76":76,"77":77,"78":78,"79":79,"8":8,"80":80,"82":82}],86:[function(_dereq_,module,exports){ +// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length) +var $export = _dereq_(22); + +$export($export.P, 'Array', {copyWithin: _dereq_(5)}); + +_dereq_(3)('copyWithin'); +},{"22":22,"3":3,"5":5}],87:[function(_dereq_,module,exports){ +// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length) +var $export = _dereq_(22); + +$export($export.P, 'Array', {fill: _dereq_(6)}); + +_dereq_(3)('fill'); +},{"22":22,"3":3,"6":6}],88:[function(_dereq_,module,exports){ +'use strict'; +// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined) +var $export = _dereq_(22) + , $find = _dereq_(8)(6) + , KEY = 'findIndex' + , forced = true; +// Shouldn't skip holes +if(KEY in [])Array(1)[KEY](function(){ forced = false; }); +$export($export.P + $export.F * forced, 'Array', { + findIndex: function findIndex(callbackfn/*, that = undefined */){ + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); +_dereq_(3)(KEY); +},{"22":22,"3":3,"8":8}],89:[function(_dereq_,module,exports){ +'use strict'; +// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined) +var $export = _dereq_(22) + , $find = _dereq_(8)(5) + , KEY = 'find' + , forced = true; +// Shouldn't skip holes +if(KEY in [])Array(1)[KEY](function(){ forced = false; }); +$export($export.P + $export.F * forced, 'Array', { + find: function find(callbackfn/*, that = undefined */){ + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); +_dereq_(3)(KEY); +},{"22":22,"3":3,"8":8}],90:[function(_dereq_,module,exports){ +'use strict'; +var ctx = _dereq_(17) + , $export = _dereq_(22) + , toObject = _dereq_(80) + , call = _dereq_(40) + , isArrayIter = _dereq_(35) + , toLength = _dereq_(79) + , getIterFn = _dereq_(84); +$export($export.S + $export.F * !_dereq_(43)(function(iter){ Array.from(iter); }), 'Array', { + // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined) + from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){ + var O = toObject(arrayLike) + , C = typeof this == 'function' ? this : Array + , $$ = arguments + , $$len = $$.length + , mapfn = $$len > 1 ? $$[1] : undefined + , mapping = mapfn !== undefined + , index = 0 + , iterFn = getIterFn(O) + , length, result, step, iterator; + if(mapping)mapfn = ctx(mapfn, $$len > 2 ? $$[2] : undefined, 2); + // if object isn't iterable or it's array with default iterator - use simple case + if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){ + for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){ + result[index] = mapping ? call(iterator, mapfn, [step.value, index], true) : step.value; + } + } else { + length = toLength(O.length); + for(result = new C(length); length > index; index++){ + result[index] = mapping ? mapfn(O[index], index) : O[index]; + } + } + result.length = index; + return result; + } +}); + +},{"17":17,"22":22,"35":35,"40":40,"43":43,"79":79,"80":80,"84":84}],91:[function(_dereq_,module,exports){ +'use strict'; +var addToUnscopables = _dereq_(3) + , step = _dereq_(44) + , Iterators = _dereq_(45) + , toIObject = _dereq_(78); + +// 22.1.3.4 Array.prototype.entries() +// 22.1.3.13 Array.prototype.keys() +// 22.1.3.29 Array.prototype.values() +// 22.1.3.30 Array.prototype[@@iterator]() +module.exports = _dereq_(42)(Array, 'Array', function(iterated, kind){ + this._t = toIObject(iterated); // target + this._i = 0; // next index + this._k = kind; // kind +// 22.1.5.2.1 %ArrayIteratorPrototype%.next() +}, function(){ + var O = this._t + , kind = this._k + , index = this._i++; + if(!O || index >= O.length){ + this._t = undefined; + return step(1); + } + if(kind == 'keys' )return step(0, index); + if(kind == 'values')return step(0, O[index]); + return step(0, [index, O[index]]); +}, 'values'); + +// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) +Iterators.Arguments = Iterators.Array; + +addToUnscopables('keys'); +addToUnscopables('values'); +addToUnscopables('entries'); +},{"3":3,"42":42,"44":44,"45":45,"78":78}],92:[function(_dereq_,module,exports){ +'use strict'; +var $export = _dereq_(22); + +// WebKit Array.of isn't generic +$export($export.S + $export.F * _dereq_(24)(function(){ + function F(){} + return !(Array.of.call(F) instanceof F); +}), 'Array', { + // 22.1.2.3 Array.of( ...items) + of: function of(/* ...args */){ + var index = 0 + , $$ = arguments + , $$len = $$.length + , result = new (typeof this == 'function' ? this : Array)($$len); + while($$len > index)result[index] = $$[index++]; + result.length = $$len; + return result; + } +}); +},{"22":22,"24":24}],93:[function(_dereq_,module,exports){ +_dereq_(65)('Array'); +},{"65":65}],94:[function(_dereq_,module,exports){ +'use strict'; +var $ = _dereq_(46) + , isObject = _dereq_(38) + , HAS_INSTANCE = _dereq_(83)('hasInstance') + , FunctionProto = Function.prototype; +// 19.2.3.6 Function.prototype[@@hasInstance](V) +if(!(HAS_INSTANCE in FunctionProto))$.setDesc(FunctionProto, HAS_INSTANCE, {value: function(O){ + if(typeof this != 'function' || !isObject(O))return false; + if(!isObject(this.prototype))return O instanceof this; + // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this: + while(O = $.getProto(O))if(this.prototype === O)return true; + return false; +}}); +},{"38":38,"46":46,"83":83}],95:[function(_dereq_,module,exports){ +var setDesc = _dereq_(46).setDesc + , createDesc = _dereq_(59) + , has = _dereq_(30) + , FProto = Function.prototype + , nameRE = /^\s*function ([^ (]*)/ + , NAME = 'name'; +// 19.2.4.2 name +NAME in FProto || _dereq_(19) && setDesc(FProto, NAME, { + configurable: true, + get: function(){ + var match = ('' + this).match(nameRE) + , name = match ? match[1] : ''; + has(this, NAME) || setDesc(this, NAME, createDesc(5, name)); + return name; + } +}); +},{"19":19,"30":30,"46":46,"59":59}],96:[function(_dereq_,module,exports){ +'use strict'; +var strong = _dereq_(12); + +// 23.1 Map Objects +_dereq_(15)('Map', function(get){ + return function Map(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); }; +}, { + // 23.1.3.6 Map.prototype.get(key) + get: function get(key){ + var entry = strong.getEntry(this, key); + return entry && entry.v; + }, + // 23.1.3.9 Map.prototype.set(key, value) + set: function set(key, value){ + return strong.def(this, key === 0 ? 0 : key, value); + } +}, strong, true); +},{"12":12,"15":15}],97:[function(_dereq_,module,exports){ +// 20.2.2.3 Math.acosh(x) +var $export = _dereq_(22) + , log1p = _dereq_(50) + , sqrt = Math.sqrt + , $acosh = Math.acosh; + +// V8 bug https://code.google.com/p/v8/issues/detail?id=3509 +$export($export.S + $export.F * !($acosh && Math.floor($acosh(Number.MAX_VALUE)) == 710), 'Math', { + acosh: function acosh(x){ + return (x = +x) < 1 ? NaN : x > 94906265.62425156 + ? Math.log(x) + Math.LN2 + : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1)); + } +}); +},{"22":22,"50":50}],98:[function(_dereq_,module,exports){ +// 20.2.2.5 Math.asinh(x) +var $export = _dereq_(22); + +function asinh(x){ + return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1)); +} + +$export($export.S, 'Math', {asinh: asinh}); +},{"22":22}],99:[function(_dereq_,module,exports){ +// 20.2.2.7 Math.atanh(x) +var $export = _dereq_(22); + +$export($export.S, 'Math', { + atanh: function atanh(x){ + return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2; + } +}); +},{"22":22}],100:[function(_dereq_,module,exports){ +// 20.2.2.9 Math.cbrt(x) +var $export = _dereq_(22) + , sign = _dereq_(51); + +$export($export.S, 'Math', { + cbrt: function cbrt(x){ + return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3); + } +}); +},{"22":22,"51":51}],101:[function(_dereq_,module,exports){ +// 20.2.2.11 Math.clz32(x) +var $export = _dereq_(22); + +$export($export.S, 'Math', { + clz32: function clz32(x){ + return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32; + } +}); +},{"22":22}],102:[function(_dereq_,module,exports){ +// 20.2.2.12 Math.cosh(x) +var $export = _dereq_(22) + , exp = Math.exp; + +$export($export.S, 'Math', { + cosh: function cosh(x){ + return (exp(x = +x) + exp(-x)) / 2; + } +}); +},{"22":22}],103:[function(_dereq_,module,exports){ +// 20.2.2.14 Math.expm1(x) +var $export = _dereq_(22); + +$export($export.S, 'Math', {expm1: _dereq_(49)}); +},{"22":22,"49":49}],104:[function(_dereq_,module,exports){ +// 20.2.2.16 Math.fround(x) +var $export = _dereq_(22) + , sign = _dereq_(51) + , pow = Math.pow + , EPSILON = pow(2, -52) + , EPSILON32 = pow(2, -23) + , MAX32 = pow(2, 127) * (2 - EPSILON32) + , MIN32 = pow(2, -126); + +var roundTiesToEven = function(n){ + return n + 1 / EPSILON - 1 / EPSILON; +}; + + +$export($export.S, 'Math', { + fround: function fround(x){ + var $abs = Math.abs(x) + , $sign = sign(x) + , a, result; + if($abs < MIN32)return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32; + a = (1 + EPSILON32 / EPSILON) * $abs; + result = a - (a - $abs); + if(result > MAX32 || result != result)return $sign * Infinity; + return $sign * result; + } +}); +},{"22":22,"51":51}],105:[function(_dereq_,module,exports){ +// 20.2.2.17 Math.hypot([value1[, value2[, … ]]]) +var $export = _dereq_(22) + , abs = Math.abs; + +$export($export.S, 'Math', { + hypot: function hypot(value1, value2){ // eslint-disable-line no-unused-vars + var sum = 0 + , i = 0 + , $$ = arguments + , $$len = $$.length + , larg = 0 + , arg, div; + while(i < $$len){ + arg = abs($$[i++]); + if(larg < arg){ + div = larg / arg; + sum = sum * div * div + 1; + larg = arg; + } else if(arg > 0){ + div = arg / larg; + sum += div * div; + } else sum += arg; + } + return larg === Infinity ? Infinity : larg * Math.sqrt(sum); + } +}); +},{"22":22}],106:[function(_dereq_,module,exports){ +// 20.2.2.18 Math.imul(x, y) +var $export = _dereq_(22) + , $imul = Math.imul; + +// some WebKit versions fails with big numbers, some has wrong arity +$export($export.S + $export.F * _dereq_(24)(function(){ + return $imul(0xffffffff, 5) != -5 || $imul.length != 2; +}), 'Math', { + imul: function imul(x, y){ + var UINT16 = 0xffff + , xn = +x + , yn = +y + , xl = UINT16 & xn + , yl = UINT16 & yn; + return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0); + } +}); +},{"22":22,"24":24}],107:[function(_dereq_,module,exports){ +// 20.2.2.21 Math.log10(x) +var $export = _dereq_(22); + +$export($export.S, 'Math', { + log10: function log10(x){ + return Math.log(x) / Math.LN10; + } +}); +},{"22":22}],108:[function(_dereq_,module,exports){ +// 20.2.2.20 Math.log1p(x) +var $export = _dereq_(22); + +$export($export.S, 'Math', {log1p: _dereq_(50)}); +},{"22":22,"50":50}],109:[function(_dereq_,module,exports){ +// 20.2.2.22 Math.log2(x) +var $export = _dereq_(22); + +$export($export.S, 'Math', { + log2: function log2(x){ + return Math.log(x) / Math.LN2; + } +}); +},{"22":22}],110:[function(_dereq_,module,exports){ +// 20.2.2.28 Math.sign(x) +var $export = _dereq_(22); + +$export($export.S, 'Math', {sign: _dereq_(51)}); +},{"22":22,"51":51}],111:[function(_dereq_,module,exports){ +// 20.2.2.30 Math.sinh(x) +var $export = _dereq_(22) + , expm1 = _dereq_(49) + , exp = Math.exp; + +// V8 near Chromium 38 has a problem with very small numbers +$export($export.S + $export.F * _dereq_(24)(function(){ + return !Math.sinh(-2e-17) != -2e-17; +}), 'Math', { + sinh: function sinh(x){ + return Math.abs(x = +x) < 1 + ? (expm1(x) - expm1(-x)) / 2 + : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2); + } +}); +},{"22":22,"24":24,"49":49}],112:[function(_dereq_,module,exports){ +// 20.2.2.33 Math.tanh(x) +var $export = _dereq_(22) + , expm1 = _dereq_(49) + , exp = Math.exp; + +$export($export.S, 'Math', { + tanh: function tanh(x){ + var a = expm1(x = +x) + , b = expm1(-x); + return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x)); + } +}); +},{"22":22,"49":49}],113:[function(_dereq_,module,exports){ +// 20.2.2.34 Math.trunc(x) +var $export = _dereq_(22); + +$export($export.S, 'Math', { + trunc: function trunc(it){ + return (it > 0 ? Math.floor : Math.ceil)(it); + } +}); +},{"22":22}],114:[function(_dereq_,module,exports){ +'use strict'; +var $ = _dereq_(46) + , global = _dereq_(29) + , has = _dereq_(30) + , cof = _dereq_(11) + , toPrimitive = _dereq_(81) + , fails = _dereq_(24) + , $trim = _dereq_(74).trim + , NUMBER = 'Number' + , $Number = global[NUMBER] + , Base = $Number + , proto = $Number.prototype + // Opera ~12 has broken Object#toString + , BROKEN_COF = cof($.create(proto)) == NUMBER + , TRIM = 'trim' in String.prototype; + +// 7.1.3 ToNumber(argument) +var toNumber = function(argument){ + var it = toPrimitive(argument, false); + if(typeof it == 'string' && it.length > 2){ + it = TRIM ? it.trim() : $trim(it, 3); + var first = it.charCodeAt(0) + , third, radix, maxCode; + if(first === 43 || first === 45){ + third = it.charCodeAt(2); + if(third === 88 || third === 120)return NaN; // Number('+0x1') should be NaN, old V8 fix + } else if(first === 48){ + switch(it.charCodeAt(1)){ + case 66 : case 98 : radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i + case 79 : case 111 : radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i + default : return +it; + } + for(var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++){ + code = digits.charCodeAt(i); + // parseInt parses a string to a first unavailable symbol + // but ToNumber should return NaN if a string contains unavailable symbols + if(code < 48 || code > maxCode)return NaN; + } return parseInt(digits, radix); + } + } return +it; +}; + +if(!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')){ + $Number = function Number(value){ + var it = arguments.length < 1 ? 0 : value + , that = this; + return that instanceof $Number + // check on 1..constructor(foo) case + && (BROKEN_COF ? fails(function(){ proto.valueOf.call(that); }) : cof(that) != NUMBER) + ? new Base(toNumber(it)) : toNumber(it); + }; + $.each.call(_dereq_(19) ? $.getNames(Base) : ( + // ES3: + 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + + // ES6 (in case, if modules with ES6 Number statics required before): + 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' + + 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger' + ).split(','), function(key){ + if(has(Base, key) && !has($Number, key)){ + $.setDesc($Number, key, $.getDesc(Base, key)); + } + }); + $Number.prototype = proto; + proto.constructor = $Number; + _dereq_(61)(global, NUMBER, $Number); +} +},{"11":11,"19":19,"24":24,"29":29,"30":30,"46":46,"61":61,"74":74,"81":81}],115:[function(_dereq_,module,exports){ +// 20.1.2.1 Number.EPSILON +var $export = _dereq_(22); + +$export($export.S, 'Number', {EPSILON: Math.pow(2, -52)}); +},{"22":22}],116:[function(_dereq_,module,exports){ +// 20.1.2.2 Number.isFinite(number) +var $export = _dereq_(22) + , _isFinite = _dereq_(29).isFinite; + +$export($export.S, 'Number', { + isFinite: function isFinite(it){ + return typeof it == 'number' && _isFinite(it); + } +}); +},{"22":22,"29":29}],117:[function(_dereq_,module,exports){ +// 20.1.2.3 Number.isInteger(number) +var $export = _dereq_(22); + +$export($export.S, 'Number', {isInteger: _dereq_(37)}); +},{"22":22,"37":37}],118:[function(_dereq_,module,exports){ +// 20.1.2.4 Number.isNaN(number) +var $export = _dereq_(22); + +$export($export.S, 'Number', { + isNaN: function isNaN(number){ + return number != number; + } +}); +},{"22":22}],119:[function(_dereq_,module,exports){ +// 20.1.2.5 Number.isSafeInteger(number) +var $export = _dereq_(22) + , isInteger = _dereq_(37) + , abs = Math.abs; + +$export($export.S, 'Number', { + isSafeInteger: function isSafeInteger(number){ + return isInteger(number) && abs(number) <= 0x1fffffffffffff; + } +}); +},{"22":22,"37":37}],120:[function(_dereq_,module,exports){ +// 20.1.2.6 Number.MAX_SAFE_INTEGER +var $export = _dereq_(22); + +$export($export.S, 'Number', {MAX_SAFE_INTEGER: 0x1fffffffffffff}); +},{"22":22}],121:[function(_dereq_,module,exports){ +// 20.1.2.10 Number.MIN_SAFE_INTEGER +var $export = _dereq_(22); + +$export($export.S, 'Number', {MIN_SAFE_INTEGER: -0x1fffffffffffff}); +},{"22":22}],122:[function(_dereq_,module,exports){ +// 20.1.2.12 Number.parseFloat(string) +var $export = _dereq_(22); + +$export($export.S, 'Number', {parseFloat: parseFloat}); +},{"22":22}],123:[function(_dereq_,module,exports){ +// 20.1.2.13 Number.parseInt(string, radix) +var $export = _dereq_(22); + +$export($export.S, 'Number', {parseInt: parseInt}); +},{"22":22}],124:[function(_dereq_,module,exports){ +// 19.1.3.1 Object.assign(target, source) +var $export = _dereq_(22); + +$export($export.S + $export.F, 'Object', {assign: _dereq_(53)}); +},{"22":22,"53":53}],125:[function(_dereq_,module,exports){ +// 19.1.2.5 Object.freeze(O) +var isObject = _dereq_(38); + +_dereq_(54)('freeze', function($freeze){ + return function freeze(it){ + return $freeze && isObject(it) ? $freeze(it) : it; + }; +}); +},{"38":38,"54":54}],126:[function(_dereq_,module,exports){ +// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) +var toIObject = _dereq_(78); + +_dereq_(54)('getOwnPropertyDescriptor', function($getOwnPropertyDescriptor){ + return function getOwnPropertyDescriptor(it, key){ + return $getOwnPropertyDescriptor(toIObject(it), key); + }; +}); +},{"54":54,"78":78}],127:[function(_dereq_,module,exports){ +// 19.1.2.7 Object.getOwnPropertyNames(O) +_dereq_(54)('getOwnPropertyNames', function(){ + return _dereq_(28).get; +}); +},{"28":28,"54":54}],128:[function(_dereq_,module,exports){ +// 19.1.2.9 Object.getPrototypeOf(O) +var toObject = _dereq_(80); + +_dereq_(54)('getPrototypeOf', function($getPrototypeOf){ + return function getPrototypeOf(it){ + return $getPrototypeOf(toObject(it)); + }; +}); +},{"54":54,"80":80}],129:[function(_dereq_,module,exports){ +// 19.1.2.11 Object.isExtensible(O) +var isObject = _dereq_(38); + +_dereq_(54)('isExtensible', function($isExtensible){ + return function isExtensible(it){ + return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false; + }; +}); +},{"38":38,"54":54}],130:[function(_dereq_,module,exports){ +// 19.1.2.12 Object.isFrozen(O) +var isObject = _dereq_(38); + +_dereq_(54)('isFrozen', function($isFrozen){ + return function isFrozen(it){ + return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true; + }; +}); +},{"38":38,"54":54}],131:[function(_dereq_,module,exports){ +// 19.1.2.13 Object.isSealed(O) +var isObject = _dereq_(38); + +_dereq_(54)('isSealed', function($isSealed){ + return function isSealed(it){ + return isObject(it) ? $isSealed ? $isSealed(it) : false : true; + }; +}); +},{"38":38,"54":54}],132:[function(_dereq_,module,exports){ +// 19.1.3.10 Object.is(value1, value2) +var $export = _dereq_(22); +$export($export.S, 'Object', {is: _dereq_(63)}); +},{"22":22,"63":63}],133:[function(_dereq_,module,exports){ +// 19.1.2.14 Object.keys(O) +var toObject = _dereq_(80); + +_dereq_(54)('keys', function($keys){ + return function keys(it){ + return $keys(toObject(it)); + }; +}); +},{"54":54,"80":80}],134:[function(_dereq_,module,exports){ +// 19.1.2.15 Object.preventExtensions(O) +var isObject = _dereq_(38); + +_dereq_(54)('preventExtensions', function($preventExtensions){ + return function preventExtensions(it){ + return $preventExtensions && isObject(it) ? $preventExtensions(it) : it; + }; +}); +},{"38":38,"54":54}],135:[function(_dereq_,module,exports){ +// 19.1.2.17 Object.seal(O) +var isObject = _dereq_(38); + +_dereq_(54)('seal', function($seal){ + return function seal(it){ + return $seal && isObject(it) ? $seal(it) : it; + }; +}); +},{"38":38,"54":54}],136:[function(_dereq_,module,exports){ +// 19.1.3.19 Object.setPrototypeOf(O, proto) +var $export = _dereq_(22); +$export($export.S, 'Object', {setPrototypeOf: _dereq_(64).set}); +},{"22":22,"64":64}],137:[function(_dereq_,module,exports){ +'use strict'; +// 19.1.3.6 Object.prototype.toString() +var classof = _dereq_(10) + , test = {}; +test[_dereq_(83)('toStringTag')] = 'z'; +if(test + '' != '[object z]'){ + _dereq_(61)(Object.prototype, 'toString', function toString(){ + return '[object ' + classof(this) + ']'; + }, true); +} +},{"10":10,"61":61,"83":83}],138:[function(_dereq_,module,exports){ +'use strict'; +var $ = _dereq_(46) + , LIBRARY = _dereq_(48) + , global = _dereq_(29) + , ctx = _dereq_(17) + , classof = _dereq_(10) + , $export = _dereq_(22) + , isObject = _dereq_(38) + , anObject = _dereq_(4) + , aFunction = _dereq_(2) + , strictNew = _dereq_(69) + , forOf = _dereq_(27) + , setProto = _dereq_(64).set + , same = _dereq_(63) + , SPECIES = _dereq_(83)('species') + , speciesConstructor = _dereq_(68) + , asap = _dereq_(52) + , PROMISE = 'Promise' + , process = global.process + , isNode = classof(process) == 'process' + , P = global[PROMISE] + , Wrapper; + +var testResolve = function(sub){ + var test = new P(function(){}); + if(sub)test.constructor = Object; + return P.resolve(test) === test; +}; + +var USE_NATIVE = function(){ + var works = false; + function P2(x){ + var self = new P(x); + setProto(self, P2.prototype); + return self; + } + try { + works = P && P.resolve && testResolve(); + setProto(P2, P); + P2.prototype = $.create(P.prototype, {constructor: {value: P2}}); + // actual Firefox has broken subclass support, test that + if(!(P2.resolve(5).then(function(){}) instanceof P2)){ + works = false; + } + // actual V8 bug, https://code.google.com/p/v8/issues/detail?id=4162 + if(works && _dereq_(19)){ + var thenableThenGotten = false; + P.resolve($.setDesc({}, 'then', { + get: function(){ thenableThenGotten = true; } + })); + works = thenableThenGotten; + } + } catch(e){ works = false; } + return works; +}(); + +// helpers +var sameConstructor = function(a, b){ + // library wrapper special case + if(LIBRARY && a === P && b === Wrapper)return true; + return same(a, b); +}; +var getConstructor = function(C){ + var S = anObject(C)[SPECIES]; + return S != undefined ? S : C; +}; +var isThenable = function(it){ + var then; + return isObject(it) && typeof (then = it.then) == 'function' ? then : false; +}; +var PromiseCapability = function(C){ + var resolve, reject; + this.promise = new C(function($$resolve, $$reject){ + if(resolve !== undefined || reject !== undefined)throw TypeError('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aFunction(resolve), + this.reject = aFunction(reject) +}; +var perform = function(exec){ + try { + exec(); + } catch(e){ + return {error: e}; + } +}; +var notify = function(record, isReject){ + if(record.n)return; + record.n = true; + var chain = record.c; + asap(function(){ + var value = record.v + , ok = record.s == 1 + , i = 0; + var run = function(reaction){ + var handler = ok ? reaction.ok : reaction.fail + , resolve = reaction.resolve + , reject = reaction.reject + , result, then; + try { + if(handler){ + if(!ok)record.h = true; + result = handler === true ? value : handler(value); + if(result === reaction.promise){ + reject(TypeError('Promise-chain cycle')); + } else if(then = isThenable(result)){ + then.call(result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch(e){ + reject(e); + } + }; + while(chain.length > i)run(chain[i++]); // variable length - can't use forEach + chain.length = 0; + record.n = false; + if(isReject)setTimeout(function(){ + var promise = record.p + , handler, console; + if(isUnhandled(promise)){ + if(isNode){ + process.emit('unhandledRejection', value, promise); + } else if(handler = global.onunhandledrejection){ + handler({promise: promise, reason: value}); + } else if((console = global.console) && console.error){ + console.error('Unhandled promise rejection', value); + } + } record.a = undefined; + }, 1); + }); +}; +var isUnhandled = function(promise){ + var record = promise._d + , chain = record.a || record.c + , i = 0 + , reaction; + if(record.h)return false; + while(chain.length > i){ + reaction = chain[i++]; + if(reaction.fail || !isUnhandled(reaction.promise))return false; + } return true; +}; +var $reject = function(value){ + var record = this; + if(record.d)return; + record.d = true; + record = record.r || record; // unwrap + record.v = value; + record.s = 2; + record.a = record.c.slice(); + notify(record, true); +}; +var $resolve = function(value){ + var record = this + , then; + if(record.d)return; + record.d = true; + record = record.r || record; // unwrap + try { + if(record.p === value)throw TypeError("Promise can't be resolved itself"); + if(then = isThenable(value)){ + asap(function(){ + var wrapper = {r: record, d: false}; // wrap + try { + then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); + } catch(e){ + $reject.call(wrapper, e); + } + }); + } else { + record.v = value; + record.s = 1; + notify(record, false); + } + } catch(e){ + $reject.call({r: record, d: false}, e); // wrap + } +}; + +// constructor polyfill +if(!USE_NATIVE){ + // 25.4.3.1 Promise(executor) + P = function Promise(executor){ + aFunction(executor); + var record = this._d = { + p: strictNew(this, P, PROMISE), // <- promise + c: [], // <- awaiting reactions + a: undefined, // <- checked in isUnhandled reactions + s: 0, // <- state + d: false, // <- done + v: undefined, // <- value + h: false, // <- handled rejection + n: false // <- notify + }; + try { + executor(ctx($resolve, record, 1), ctx($reject, record, 1)); + } catch(err){ + $reject.call(record, err); + } + }; + _dereq_(60)(P.prototype, { + // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected) + then: function then(onFulfilled, onRejected){ + var reaction = new PromiseCapability(speciesConstructor(this, P)) + , promise = reaction.promise + , record = this._d; + reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; + reaction.fail = typeof onRejected == 'function' && onRejected; + record.c.push(reaction); + if(record.a)record.a.push(reaction); + if(record.s)notify(record, false); + return promise; + }, + // 25.4.5.1 Promise.prototype.catch(onRejected) + 'catch': function(onRejected){ + return this.then(undefined, onRejected); + } + }); +} + +$export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: P}); +_dereq_(66)(P, PROMISE); +_dereq_(65)(PROMISE); +Wrapper = _dereq_(16)[PROMISE]; + +// statics +$export($export.S + $export.F * !USE_NATIVE, PROMISE, { + // 25.4.4.5 Promise.reject(r) + reject: function reject(r){ + var capability = new PromiseCapability(this) + , $$reject = capability.reject; + $$reject(r); + return capability.promise; + } +}); +$export($export.S + $export.F * (!USE_NATIVE || testResolve(true)), PROMISE, { + // 25.4.4.6 Promise.resolve(x) + resolve: function resolve(x){ + // instanceof instead of internal slot check because we should fix it without replacement native Promise core + if(x instanceof P && sameConstructor(x.constructor, this))return x; + var capability = new PromiseCapability(this) + , $$resolve = capability.resolve; + $$resolve(x); + return capability.promise; + } +}); +$export($export.S + $export.F * !(USE_NATIVE && _dereq_(43)(function(iter){ + P.all(iter)['catch'](function(){}); +})), PROMISE, { + // 25.4.4.1 Promise.all(iterable) + all: function all(iterable){ + var C = getConstructor(this) + , capability = new PromiseCapability(C) + , resolve = capability.resolve + , reject = capability.reject + , values = []; + var abrupt = perform(function(){ + forOf(iterable, false, values.push, values); + var remaining = values.length + , results = Array(remaining); + if(remaining)$.each.call(values, function(promise, index){ + var alreadyCalled = false; + C.resolve(promise).then(function(value){ + if(alreadyCalled)return; + alreadyCalled = true; + results[index] = value; + --remaining || resolve(results); + }, reject); + }); + else resolve(results); + }); + if(abrupt)reject(abrupt.error); + return capability.promise; + }, + // 25.4.4.4 Promise.race(iterable) + race: function race(iterable){ + var C = getConstructor(this) + , capability = new PromiseCapability(C) + , reject = capability.reject; + var abrupt = perform(function(){ + forOf(iterable, false, function(promise){ + C.resolve(promise).then(capability.resolve, reject); + }); + }); + if(abrupt)reject(abrupt.error); + return capability.promise; + } +}); +},{"10":10,"16":16,"17":17,"19":19,"2":2,"22":22,"27":27,"29":29,"38":38,"4":4,"43":43,"46":46,"48":48,"52":52,"60":60,"63":63,"64":64,"65":65,"66":66,"68":68,"69":69,"83":83}],139:[function(_dereq_,module,exports){ +// 26.1.1 Reflect.apply(target, thisArgument, argumentsList) +var $export = _dereq_(22) + , _apply = Function.apply; + +$export($export.S, 'Reflect', { + apply: function apply(target, thisArgument, argumentsList){ + return _apply.call(target, thisArgument, argumentsList); + } +}); +},{"22":22}],140:[function(_dereq_,module,exports){ +// 26.1.2 Reflect.construct(target, argumentsList [, newTarget]) +var $ = _dereq_(46) + , $export = _dereq_(22) + , aFunction = _dereq_(2) + , anObject = _dereq_(4) + , isObject = _dereq_(38) + , bind = Function.bind || _dereq_(16).Function.prototype.bind; + +// MS Edge supports only 2 arguments +// FF Nightly sets third argument as `new.target`, but does not create `this` from it +$export($export.S + $export.F * _dereq_(24)(function(){ + function F(){} + return !(Reflect.construct(function(){}, [], F) instanceof F); +}), 'Reflect', { + construct: function construct(Target, args /*, newTarget*/){ + aFunction(Target); + var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]); + if(Target == newTarget){ + // w/o altered newTarget, optimization for 0-4 arguments + if(args != undefined)switch(anObject(args).length){ + case 0: return new Target; + case 1: return new Target(args[0]); + case 2: return new Target(args[0], args[1]); + case 3: return new Target(args[0], args[1], args[2]); + case 4: return new Target(args[0], args[1], args[2], args[3]); + } + // w/o altered newTarget, lot of arguments case + var $args = [null]; + $args.push.apply($args, args); + return new (bind.apply(Target, $args)); + } + // with altered newTarget, not support built-in constructors + var proto = newTarget.prototype + , instance = $.create(isObject(proto) ? proto : Object.prototype) + , result = Function.apply.call(Target, instance, args); + return isObject(result) ? result : instance; + } +}); +},{"16":16,"2":2,"22":22,"24":24,"38":38,"4":4,"46":46}],141:[function(_dereq_,module,exports){ +// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes) +var $ = _dereq_(46) + , $export = _dereq_(22) + , anObject = _dereq_(4); + +// MS Edge has broken Reflect.defineProperty - throwing instead of returning false +$export($export.S + $export.F * _dereq_(24)(function(){ + Reflect.defineProperty($.setDesc({}, 1, {value: 1}), 1, {value: 2}); +}), 'Reflect', { + defineProperty: function defineProperty(target, propertyKey, attributes){ + anObject(target); + try { + $.setDesc(target, propertyKey, attributes); + return true; + } catch(e){ + return false; + } + } +}); +},{"22":22,"24":24,"4":4,"46":46}],142:[function(_dereq_,module,exports){ +// 26.1.4 Reflect.deleteProperty(target, propertyKey) +var $export = _dereq_(22) + , getDesc = _dereq_(46).getDesc + , anObject = _dereq_(4); + +$export($export.S, 'Reflect', { + deleteProperty: function deleteProperty(target, propertyKey){ + var desc = getDesc(anObject(target), propertyKey); + return desc && !desc.configurable ? false : delete target[propertyKey]; + } +}); +},{"22":22,"4":4,"46":46}],143:[function(_dereq_,module,exports){ +'use strict'; +// 26.1.5 Reflect.enumerate(target) +var $export = _dereq_(22) + , anObject = _dereq_(4); +var Enumerate = function(iterated){ + this._t = anObject(iterated); // target + this._i = 0; // next index + var keys = this._k = [] // keys + , key; + for(key in iterated)keys.push(key); +}; +_dereq_(41)(Enumerate, 'Object', function(){ + var that = this + , keys = that._k + , key; + do { + if(that._i >= keys.length)return {value: undefined, done: true}; + } while(!((key = keys[that._i++]) in that._t)); + return {value: key, done: false}; +}); + +$export($export.S, 'Reflect', { + enumerate: function enumerate(target){ + return new Enumerate(target); + } +}); +},{"22":22,"4":4,"41":41}],144:[function(_dereq_,module,exports){ +// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey) +var $ = _dereq_(46) + , $export = _dereq_(22) + , anObject = _dereq_(4); + +$export($export.S, 'Reflect', { + getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey){ + return $.getDesc(anObject(target), propertyKey); + } +}); +},{"22":22,"4":4,"46":46}],145:[function(_dereq_,module,exports){ +// 26.1.8 Reflect.getPrototypeOf(target) +var $export = _dereq_(22) + , getProto = _dereq_(46).getProto + , anObject = _dereq_(4); + +$export($export.S, 'Reflect', { + getPrototypeOf: function getPrototypeOf(target){ + return getProto(anObject(target)); + } +}); +},{"22":22,"4":4,"46":46}],146:[function(_dereq_,module,exports){ +// 26.1.6 Reflect.get(target, propertyKey [, receiver]) +var $ = _dereq_(46) + , has = _dereq_(30) + , $export = _dereq_(22) + , isObject = _dereq_(38) + , anObject = _dereq_(4); + +function get(target, propertyKey/*, receiver*/){ + var receiver = arguments.length < 3 ? target : arguments[2] + , desc, proto; + if(anObject(target) === receiver)return target[propertyKey]; + if(desc = $.getDesc(target, propertyKey))return has(desc, 'value') + ? desc.value + : desc.get !== undefined + ? desc.get.call(receiver) + : undefined; + if(isObject(proto = $.getProto(target)))return get(proto, propertyKey, receiver); +} + +$export($export.S, 'Reflect', {get: get}); +},{"22":22,"30":30,"38":38,"4":4,"46":46}],147:[function(_dereq_,module,exports){ +// 26.1.9 Reflect.has(target, propertyKey) +var $export = _dereq_(22); + +$export($export.S, 'Reflect', { + has: function has(target, propertyKey){ + return propertyKey in target; + } +}); +},{"22":22}],148:[function(_dereq_,module,exports){ +// 26.1.10 Reflect.isExtensible(target) +var $export = _dereq_(22) + , anObject = _dereq_(4) + , $isExtensible = Object.isExtensible; + +$export($export.S, 'Reflect', { + isExtensible: function isExtensible(target){ + anObject(target); + return $isExtensible ? $isExtensible(target) : true; + } +}); +},{"22":22,"4":4}],149:[function(_dereq_,module,exports){ +// 26.1.11 Reflect.ownKeys(target) +var $export = _dereq_(22); + +$export($export.S, 'Reflect', {ownKeys: _dereq_(56)}); +},{"22":22,"56":56}],150:[function(_dereq_,module,exports){ +// 26.1.12 Reflect.preventExtensions(target) +var $export = _dereq_(22) + , anObject = _dereq_(4) + , $preventExtensions = Object.preventExtensions; + +$export($export.S, 'Reflect', { + preventExtensions: function preventExtensions(target){ + anObject(target); + try { + if($preventExtensions)$preventExtensions(target); + return true; + } catch(e){ + return false; + } + } +}); +},{"22":22,"4":4}],151:[function(_dereq_,module,exports){ +// 26.1.14 Reflect.setPrototypeOf(target, proto) +var $export = _dereq_(22) + , setProto = _dereq_(64); + +if(setProto)$export($export.S, 'Reflect', { + setPrototypeOf: function setPrototypeOf(target, proto){ + setProto.check(target, proto); + try { + setProto.set(target, proto); + return true; + } catch(e){ + return false; + } + } +}); +},{"22":22,"64":64}],152:[function(_dereq_,module,exports){ +// 26.1.13 Reflect.set(target, propertyKey, V [, receiver]) +var $ = _dereq_(46) + , has = _dereq_(30) + , $export = _dereq_(22) + , createDesc = _dereq_(59) + , anObject = _dereq_(4) + , isObject = _dereq_(38); + +function set(target, propertyKey, V/*, receiver*/){ + var receiver = arguments.length < 4 ? target : arguments[3] + , ownDesc = $.getDesc(anObject(target), propertyKey) + , existingDescriptor, proto; + if(!ownDesc){ + if(isObject(proto = $.getProto(target))){ + return set(proto, propertyKey, V, receiver); + } + ownDesc = createDesc(0); + } + if(has(ownDesc, 'value')){ + if(ownDesc.writable === false || !isObject(receiver))return false; + existingDescriptor = $.getDesc(receiver, propertyKey) || createDesc(0); + existingDescriptor.value = V; + $.setDesc(receiver, propertyKey, existingDescriptor); + return true; + } + return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true); +} + +$export($export.S, 'Reflect', {set: set}); +},{"22":22,"30":30,"38":38,"4":4,"46":46,"59":59}],153:[function(_dereq_,module,exports){ +var $ = _dereq_(46) + , global = _dereq_(29) + , isRegExp = _dereq_(39) + , $flags = _dereq_(26) + , $RegExp = global.RegExp + , Base = $RegExp + , proto = $RegExp.prototype + , re1 = /a/g + , re2 = /a/g + // "new" creates a new object, old webkit buggy here + , CORRECT_NEW = new $RegExp(re1) !== re1; + +if(_dereq_(19) && (!CORRECT_NEW || _dereq_(24)(function(){ + re2[_dereq_(83)('match')] = false; + // RegExp constructor can alter flags and IsRegExp works correct with @@match + return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i'; +}))){ + $RegExp = function RegExp(p, f){ + var piRE = isRegExp(p) + , fiU = f === undefined; + return !(this instanceof $RegExp) && piRE && p.constructor === $RegExp && fiU ? p + : CORRECT_NEW + ? new Base(piRE && !fiU ? p.source : p, f) + : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f); + }; + $.each.call($.getNames(Base), function(key){ + key in $RegExp || $.setDesc($RegExp, key, { + configurable: true, + get: function(){ return Base[key]; }, + set: function(it){ Base[key] = it; } + }); + }); + proto.constructor = $RegExp; + $RegExp.prototype = proto; + _dereq_(61)(global, 'RegExp', $RegExp); +} + +_dereq_(65)('RegExp'); +},{"19":19,"24":24,"26":26,"29":29,"39":39,"46":46,"61":61,"65":65,"83":83}],154:[function(_dereq_,module,exports){ +// 21.2.5.3 get RegExp.prototype.flags() +var $ = _dereq_(46); +if(_dereq_(19) && /./g.flags != 'g')$.setDesc(RegExp.prototype, 'flags', { + configurable: true, + get: _dereq_(26) +}); +},{"19":19,"26":26,"46":46}],155:[function(_dereq_,module,exports){ +// @@match logic +_dereq_(25)('match', 1, function(defined, MATCH){ + // 21.1.3.11 String.prototype.match(regexp) + return function match(regexp){ + 'use strict'; + var O = defined(this) + , fn = regexp == undefined ? undefined : regexp[MATCH]; + return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O)); + }; +}); +},{"25":25}],156:[function(_dereq_,module,exports){ +// @@replace logic +_dereq_(25)('replace', 2, function(defined, REPLACE, $replace){ + // 21.1.3.14 String.prototype.replace(searchValue, replaceValue) + return function replace(searchValue, replaceValue){ + 'use strict'; + var O = defined(this) + , fn = searchValue == undefined ? undefined : searchValue[REPLACE]; + return fn !== undefined + ? fn.call(searchValue, O, replaceValue) + : $replace.call(String(O), searchValue, replaceValue); + }; +}); +},{"25":25}],157:[function(_dereq_,module,exports){ +// @@search logic +_dereq_(25)('search', 1, function(defined, SEARCH){ + // 21.1.3.15 String.prototype.search(regexp) + return function search(regexp){ + 'use strict'; + var O = defined(this) + , fn = regexp == undefined ? undefined : regexp[SEARCH]; + return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O)); + }; +}); +},{"25":25}],158:[function(_dereq_,module,exports){ +// @@split logic +_dereq_(25)('split', 2, function(defined, SPLIT, $split){ + // 21.1.3.17 String.prototype.split(separator, limit) + return function split(separator, limit){ + 'use strict'; + var O = defined(this) + , fn = separator == undefined ? undefined : separator[SPLIT]; + return fn !== undefined + ? fn.call(separator, O, limit) + : $split.call(String(O), separator, limit); + }; +}); +},{"25":25}],159:[function(_dereq_,module,exports){ +'use strict'; +var strong = _dereq_(12); + +// 23.2 Set Objects +_dereq_(15)('Set', function(get){ + return function Set(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); }; +}, { + // 23.2.3.1 Set.prototype.add(value) + add: function add(value){ + return strong.def(this, value = value === 0 ? 0 : value, value); + } +}, strong); +},{"12":12,"15":15}],160:[function(_dereq_,module,exports){ +'use strict'; +var $export = _dereq_(22) + , $at = _dereq_(70)(false); +$export($export.P, 'String', { + // 21.1.3.3 String.prototype.codePointAt(pos) + codePointAt: function codePointAt(pos){ + return $at(this, pos); + } +}); +},{"22":22,"70":70}],161:[function(_dereq_,module,exports){ +// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition]) +'use strict'; +var $export = _dereq_(22) + , toLength = _dereq_(79) + , context = _dereq_(71) + , ENDS_WITH = 'endsWith' + , $endsWith = ''[ENDS_WITH]; + +$export($export.P + $export.F * _dereq_(23)(ENDS_WITH), 'String', { + endsWith: function endsWith(searchString /*, endPosition = @length */){ + var that = context(this, searchString, ENDS_WITH) + , $$ = arguments + , endPosition = $$.length > 1 ? $$[1] : undefined + , len = toLength(that.length) + , end = endPosition === undefined ? len : Math.min(toLength(endPosition), len) + , search = String(searchString); + return $endsWith + ? $endsWith.call(that, search, end) + : that.slice(end - search.length, end) === search; + } +}); +},{"22":22,"23":23,"71":71,"79":79}],162:[function(_dereq_,module,exports){ +var $export = _dereq_(22) + , toIndex = _dereq_(76) + , fromCharCode = String.fromCharCode + , $fromCodePoint = String.fromCodePoint; + +// length should be 1, old FF problem +$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', { + // 21.1.2.2 String.fromCodePoint(...codePoints) + fromCodePoint: function fromCodePoint(x){ // eslint-disable-line no-unused-vars + var res = [] + , $$ = arguments + , $$len = $$.length + , i = 0 + , code; + while($$len > i){ + code = +$$[i++]; + if(toIndex(code, 0x10ffff) !== code)throw RangeError(code + ' is not a valid code point'); + res.push(code < 0x10000 + ? fromCharCode(code) + : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00) + ); + } return res.join(''); + } +}); +},{"22":22,"76":76}],163:[function(_dereq_,module,exports){ +// 21.1.3.7 String.prototype.includes(searchString, position = 0) +'use strict'; +var $export = _dereq_(22) + , context = _dereq_(71) + , INCLUDES = 'includes'; + +$export($export.P + $export.F * _dereq_(23)(INCLUDES), 'String', { + includes: function includes(searchString /*, position = 0 */){ + return !!~context(this, searchString, INCLUDES) + .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined); + } +}); +},{"22":22,"23":23,"71":71}],164:[function(_dereq_,module,exports){ +'use strict'; +var $at = _dereq_(70)(true); + +// 21.1.3.27 String.prototype[@@iterator]() +_dereq_(42)(String, 'String', function(iterated){ + this._t = String(iterated); // target + this._i = 0; // next index +// 21.1.5.2.1 %StringIteratorPrototype%.next() +}, function(){ + var O = this._t + , index = this._i + , point; + if(index >= O.length)return {value: undefined, done: true}; + point = $at(O, index); + this._i += point.length; + return {value: point, done: false}; +}); +},{"42":42,"70":70}],165:[function(_dereq_,module,exports){ +var $export = _dereq_(22) + , toIObject = _dereq_(78) + , toLength = _dereq_(79); + +$export($export.S, 'String', { + // 21.1.2.4 String.raw(callSite, ...substitutions) + raw: function raw(callSite){ + var tpl = toIObject(callSite.raw) + , len = toLength(tpl.length) + , $$ = arguments + , $$len = $$.length + , res = [] + , i = 0; + while(len > i){ + res.push(String(tpl[i++])); + if(i < $$len)res.push(String($$[i])); + } return res.join(''); + } +}); +},{"22":22,"78":78,"79":79}],166:[function(_dereq_,module,exports){ +var $export = _dereq_(22); + +$export($export.P, 'String', { + // 21.1.3.13 String.prototype.repeat(count) + repeat: _dereq_(73) +}); +},{"22":22,"73":73}],167:[function(_dereq_,module,exports){ +// 21.1.3.18 String.prototype.startsWith(searchString [, position ]) +'use strict'; +var $export = _dereq_(22) + , toLength = _dereq_(79) + , context = _dereq_(71) + , STARTS_WITH = 'startsWith' + , $startsWith = ''[STARTS_WITH]; + +$export($export.P + $export.F * _dereq_(23)(STARTS_WITH), 'String', { + startsWith: function startsWith(searchString /*, position = 0 */){ + var that = context(this, searchString, STARTS_WITH) + , $$ = arguments + , index = toLength(Math.min($$.length > 1 ? $$[1] : undefined, that.length)) + , search = String(searchString); + return $startsWith + ? $startsWith.call(that, search, index) + : that.slice(index, index + search.length) === search; + } +}); +},{"22":22,"23":23,"71":71,"79":79}],168:[function(_dereq_,module,exports){ +'use strict'; +// 21.1.3.25 String.prototype.trim() +_dereq_(74)('trim', function($trim){ + return function trim(){ + return $trim(this, 3); + }; +}); +},{"74":74}],169:[function(_dereq_,module,exports){ +'use strict'; +// ECMAScript 6 symbols shim +var $ = _dereq_(46) + , global = _dereq_(29) + , has = _dereq_(30) + , DESCRIPTORS = _dereq_(19) + , $export = _dereq_(22) + , redefine = _dereq_(61) + , $fails = _dereq_(24) + , shared = _dereq_(67) + , setToStringTag = _dereq_(66) + , uid = _dereq_(82) + , wks = _dereq_(83) + , keyOf = _dereq_(47) + , $names = _dereq_(28) + , enumKeys = _dereq_(21) + , isArray = _dereq_(36) + , anObject = _dereq_(4) + , toIObject = _dereq_(78) + , createDesc = _dereq_(59) + , getDesc = $.getDesc + , setDesc = $.setDesc + , _create = $.create + , getNames = $names.get + , $Symbol = global.Symbol + , $JSON = global.JSON + , _stringify = $JSON && $JSON.stringify + , setter = false + , HIDDEN = wks('_hidden') + , isEnum = $.isEnum + , SymbolRegistry = shared('symbol-registry') + , AllSymbols = shared('symbols') + , useNative = typeof $Symbol == 'function' + , ObjectProto = Object.prototype; + +// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 +var setSymbolDesc = DESCRIPTORS && $fails(function(){ + return _create(setDesc({}, 'a', { + get: function(){ return setDesc(this, 'a', {value: 7}).a; } + })).a != 7; +}) ? function(it, key, D){ + var protoDesc = getDesc(ObjectProto, key); + if(protoDesc)delete ObjectProto[key]; + setDesc(it, key, D); + if(protoDesc && it !== ObjectProto)setDesc(ObjectProto, key, protoDesc); +} : setDesc; + +var wrap = function(tag){ + var sym = AllSymbols[tag] = _create($Symbol.prototype); + sym._k = tag; + DESCRIPTORS && setter && setSymbolDesc(ObjectProto, tag, { + configurable: true, + set: function(value){ + if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false; + setSymbolDesc(this, tag, createDesc(1, value)); + } + }); + return sym; +}; + +var isSymbol = function(it){ + return typeof it == 'symbol'; +}; + +var $defineProperty = function defineProperty(it, key, D){ + if(D && has(AllSymbols, key)){ + if(!D.enumerable){ + if(!has(it, HIDDEN))setDesc(it, HIDDEN, createDesc(1, {})); + it[HIDDEN][key] = true; + } else { + if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false; + D = _create(D, {enumerable: createDesc(0, false)}); + } return setSymbolDesc(it, key, D); + } return setDesc(it, key, D); +}; +var $defineProperties = function defineProperties(it, P){ + anObject(it); + var keys = enumKeys(P = toIObject(P)) + , i = 0 + , l = keys.length + , key; + while(l > i)$defineProperty(it, key = keys[i++], P[key]); + return it; +}; +var $create = function create(it, P){ + return P === undefined ? _create(it) : $defineProperties(_create(it), P); +}; +var $propertyIsEnumerable = function propertyIsEnumerable(key){ + var E = isEnum.call(this, key); + return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] + ? E : true; +}; +var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){ + var D = getDesc(it = toIObject(it), key); + if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true; + return D; +}; +var $getOwnPropertyNames = function getOwnPropertyNames(it){ + var names = getNames(toIObject(it)) + , result = [] + , i = 0 + , key; + while(names.length > i)if(!has(AllSymbols, key = names[i++]) && key != HIDDEN)result.push(key); + return result; +}; +var $getOwnPropertySymbols = function getOwnPropertySymbols(it){ + var names = getNames(toIObject(it)) + , result = [] + , i = 0 + , key; + while(names.length > i)if(has(AllSymbols, key = names[i++]))result.push(AllSymbols[key]); + return result; +}; +var $stringify = function stringify(it){ + if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined + var args = [it] + , i = 1 + , $$ = arguments + , replacer, $replacer; + while($$.length > i)args.push($$[i++]); + replacer = args[1]; + if(typeof replacer == 'function')$replacer = replacer; + if($replacer || !isArray(replacer))replacer = function(key, value){ + if($replacer)value = $replacer.call(this, key, value); + if(!isSymbol(value))return value; + }; + args[1] = replacer; + return _stringify.apply($JSON, args); +}; +var buggyJSON = $fails(function(){ + var S = $Symbol(); + // MS Edge converts symbol values to JSON as {} + // WebKit converts symbol values to JSON as null + // V8 throws on boxed symbols + return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}'; +}); + +// 19.4.1.1 Symbol([description]) +if(!useNative){ + $Symbol = function Symbol(){ + if(isSymbol(this))throw TypeError('Symbol is not a constructor'); + return wrap(uid(arguments.length > 0 ? arguments[0] : undefined)); + }; + redefine($Symbol.prototype, 'toString', function toString(){ + return this._k; + }); + + isSymbol = function(it){ + return it instanceof $Symbol; + }; + + $.create = $create; + $.isEnum = $propertyIsEnumerable; + $.getDesc = $getOwnPropertyDescriptor; + $.setDesc = $defineProperty; + $.setDescs = $defineProperties; + $.getNames = $names.get = $getOwnPropertyNames; + $.getSymbols = $getOwnPropertySymbols; + + if(DESCRIPTORS && !_dereq_(48)){ + redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); + } +} + +var symbolStatics = { + // 19.4.2.1 Symbol.for(key) + 'for': function(key){ + return has(SymbolRegistry, key += '') + ? SymbolRegistry[key] + : SymbolRegistry[key] = $Symbol(key); + }, + // 19.4.2.5 Symbol.keyFor(sym) + keyFor: function keyFor(key){ + return keyOf(SymbolRegistry, key); + }, + useSetter: function(){ setter = true; }, + useSimple: function(){ setter = false; } +}; +// 19.4.2.2 Symbol.hasInstance +// 19.4.2.3 Symbol.isConcatSpreadable +// 19.4.2.4 Symbol.iterator +// 19.4.2.6 Symbol.match +// 19.4.2.8 Symbol.replace +// 19.4.2.9 Symbol.search +// 19.4.2.10 Symbol.species +// 19.4.2.11 Symbol.split +// 19.4.2.12 Symbol.toPrimitive +// 19.4.2.13 Symbol.toStringTag +// 19.4.2.14 Symbol.unscopables +$.each.call(( + 'hasInstance,isConcatSpreadable,iterator,match,replace,search,' + + 'species,split,toPrimitive,toStringTag,unscopables' +).split(','), function(it){ + var sym = wks(it); + symbolStatics[it] = useNative ? sym : wrap(sym); +}); + +setter = true; + +$export($export.G + $export.W, {Symbol: $Symbol}); + +$export($export.S, 'Symbol', symbolStatics); + +$export($export.S + $export.F * !useNative, 'Object', { + // 19.1.2.2 Object.create(O [, Properties]) + create: $create, + // 19.1.2.4 Object.defineProperty(O, P, Attributes) + defineProperty: $defineProperty, + // 19.1.2.3 Object.defineProperties(O, Properties) + defineProperties: $defineProperties, + // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) + getOwnPropertyDescriptor: $getOwnPropertyDescriptor, + // 19.1.2.7 Object.getOwnPropertyNames(O) + getOwnPropertyNames: $getOwnPropertyNames, + // 19.1.2.8 Object.getOwnPropertySymbols(O) + getOwnPropertySymbols: $getOwnPropertySymbols +}); + +// 24.3.2 JSON.stringify(value [, replacer [, space]]) +$JSON && $export($export.S + $export.F * (!useNative || buggyJSON), 'JSON', {stringify: $stringify}); + +// 19.4.3.5 Symbol.prototype[@@toStringTag] +setToStringTag($Symbol, 'Symbol'); +// 20.2.1.9 Math[@@toStringTag] +setToStringTag(Math, 'Math', true); +// 24.3.3 JSON[@@toStringTag] +setToStringTag(global.JSON, 'JSON', true); +},{"19":19,"21":21,"22":22,"24":24,"28":28,"29":29,"30":30,"36":36,"4":4,"46":46,"47":47,"48":48,"59":59,"61":61,"66":66,"67":67,"78":78,"82":82,"83":83}],170:[function(_dereq_,module,exports){ +'use strict'; +var $ = _dereq_(46) + , redefine = _dereq_(61) + , weak = _dereq_(14) + , isObject = _dereq_(38) + , has = _dereq_(30) + , frozenStore = weak.frozenStore + , WEAK = weak.WEAK + , isExtensible = Object.isExtensible || isObject + , tmp = {}; + +// 23.3 WeakMap Objects +var $WeakMap = _dereq_(15)('WeakMap', function(get){ + return function WeakMap(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); }; +}, { + // 23.3.3.3 WeakMap.prototype.get(key) + get: function get(key){ + if(isObject(key)){ + if(!isExtensible(key))return frozenStore(this).get(key); + if(has(key, WEAK))return key[WEAK][this._i]; + } + }, + // 23.3.3.5 WeakMap.prototype.set(key, value) + set: function set(key, value){ + return weak.def(this, key, value); + } +}, weak, true, true); + +// IE11 WeakMap frozen keys fix +if(new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7){ + $.each.call(['delete', 'has', 'get', 'set'], function(key){ + var proto = $WeakMap.prototype + , method = proto[key]; + redefine(proto, key, function(a, b){ + // store frozen objects on leaky map + if(isObject(a) && !isExtensible(a)){ + var result = frozenStore(this)[key](a, b); + return key == 'set' ? this : result; + // store all the rest on native weakmap + } return method.call(this, a, b); + }); + }); +} +},{"14":14,"15":15,"30":30,"38":38,"46":46,"61":61}],171:[function(_dereq_,module,exports){ +'use strict'; +var weak = _dereq_(14); + +// 23.4 WeakSet Objects +_dereq_(15)('WeakSet', function(get){ + return function WeakSet(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); }; +}, { + // 23.4.3.1 WeakSet.prototype.add(value) + add: function add(value){ + return weak.def(this, value, true); + } +}, weak, false, true); +},{"14":14,"15":15}],172:[function(_dereq_,module,exports){ +'use strict'; +var $export = _dereq_(22) + , $includes = _dereq_(7)(true); + +$export($export.P, 'Array', { + // https://github.com/domenic/Array.prototype.includes + includes: function includes(el /*, fromIndex = 0 */){ + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +_dereq_(3)('includes'); +},{"22":22,"3":3,"7":7}],173:[function(_dereq_,module,exports){ +// https://github.com/DavidBruant/Map-Set.prototype.toJSON +var $export = _dereq_(22); + +$export($export.P, 'Map', {toJSON: _dereq_(13)('Map')}); +},{"13":13,"22":22}],174:[function(_dereq_,module,exports){ +// http://goo.gl/XkBrjD +var $export = _dereq_(22) + , $entries = _dereq_(55)(true); + +$export($export.S, 'Object', { + entries: function entries(it){ + return $entries(it); + } +}); +},{"22":22,"55":55}],175:[function(_dereq_,module,exports){ +// https://gist.github.com/WebReflection/9353781 +var $ = _dereq_(46) + , $export = _dereq_(22) + , ownKeys = _dereq_(56) + , toIObject = _dereq_(78) + , createDesc = _dereq_(59); + +$export($export.S, 'Object', { + getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object){ + var O = toIObject(object) + , setDesc = $.setDesc + , getDesc = $.getDesc + , keys = ownKeys(O) + , result = {} + , i = 0 + , key, D; + while(keys.length > i){ + D = getDesc(O, key = keys[i++]); + if(key in result)setDesc(result, key, createDesc(0, D)); + else result[key] = D; + } return result; + } +}); +},{"22":22,"46":46,"56":56,"59":59,"78":78}],176:[function(_dereq_,module,exports){ +// http://goo.gl/XkBrjD +var $export = _dereq_(22) + , $values = _dereq_(55)(false); + +$export($export.S, 'Object', { + values: function values(it){ + return $values(it); + } +}); +},{"22":22,"55":55}],177:[function(_dereq_,module,exports){ +// https://github.com/benjamingr/RexExp.escape +var $export = _dereq_(22) + , $re = _dereq_(62)(/[\\^$*+?.()|[\]{}]/g, '\\$&'); + +$export($export.S, 'RegExp', {escape: function escape(it){ return $re(it); }}); + +},{"22":22,"62":62}],178:[function(_dereq_,module,exports){ +// https://github.com/DavidBruant/Map-Set.prototype.toJSON +var $export = _dereq_(22); + +$export($export.P, 'Set', {toJSON: _dereq_(13)('Set')}); +},{"13":13,"22":22}],179:[function(_dereq_,module,exports){ +'use strict'; +// https://github.com/mathiasbynens/String.prototype.at +var $export = _dereq_(22) + , $at = _dereq_(70)(true); + +$export($export.P, 'String', { + at: function at(pos){ + return $at(this, pos); + } +}); +},{"22":22,"70":70}],180:[function(_dereq_,module,exports){ +'use strict'; +var $export = _dereq_(22) + , $pad = _dereq_(72); + +$export($export.P, 'String', { + padLeft: function padLeft(maxLength /*, fillString = ' ' */){ + return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true); + } +}); +},{"22":22,"72":72}],181:[function(_dereq_,module,exports){ +'use strict'; +var $export = _dereq_(22) + , $pad = _dereq_(72); + +$export($export.P, 'String', { + padRight: function padRight(maxLength /*, fillString = ' ' */){ + return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false); + } +}); +},{"22":22,"72":72}],182:[function(_dereq_,module,exports){ +'use strict'; +// https://github.com/sebmarkbage/ecmascript-string-left-right-trim +_dereq_(74)('trimLeft', function($trim){ + return function trimLeft(){ + return $trim(this, 1); + }; +}); +},{"74":74}],183:[function(_dereq_,module,exports){ +'use strict'; +// https://github.com/sebmarkbage/ecmascript-string-left-right-trim +_dereq_(74)('trimRight', function($trim){ + return function trimRight(){ + return $trim(this, 2); + }; +}); +},{"74":74}],184:[function(_dereq_,module,exports){ +// JavaScript 1.6 / Strawman array statics shim +var $ = _dereq_(46) + , $export = _dereq_(22) + , $ctx = _dereq_(17) + , $Array = _dereq_(16).Array || Array + , statics = {}; +var setStatics = function(keys, length){ + $.each.call(keys.split(','), function(key){ + if(length == undefined && key in $Array)statics[key] = $Array[key]; + else if(key in [])statics[key] = $ctx(Function.call, [][key], length); + }); +}; +setStatics('pop,reverse,shift,keys,values,entries', 1); +setStatics('indexOf,every,some,forEach,map,filter,find,findIndex,includes', 3); +setStatics('join,slice,concat,push,splice,unshift,sort,lastIndexOf,' + + 'reduce,reduceRight,copyWithin,fill'); +$export($export.S, 'Array', statics); +},{"16":16,"17":17,"22":22,"46":46}],185:[function(_dereq_,module,exports){ +_dereq_(91); +var global = _dereq_(29) + , hide = _dereq_(31) + , Iterators = _dereq_(45) + , ITERATOR = _dereq_(83)('iterator') + , NL = global.NodeList + , HTC = global.HTMLCollection + , NLProto = NL && NL.prototype + , HTCProto = HTC && HTC.prototype + , ArrayValues = Iterators.NodeList = Iterators.HTMLCollection = Iterators.Array; +if(NLProto && !NLProto[ITERATOR])hide(NLProto, ITERATOR, ArrayValues); +if(HTCProto && !HTCProto[ITERATOR])hide(HTCProto, ITERATOR, ArrayValues); +},{"29":29,"31":31,"45":45,"83":83,"91":91}],186:[function(_dereq_,module,exports){ +var $export = _dereq_(22) + , $task = _dereq_(75); +$export($export.G + $export.B, { + setImmediate: $task.set, + clearImmediate: $task.clear +}); +},{"22":22,"75":75}],187:[function(_dereq_,module,exports){ +// ie9- setTimeout & setInterval additional parameters fix +var global = _dereq_(29) + , $export = _dereq_(22) + , invoke = _dereq_(33) + , partial = _dereq_(57) + , navigator = global.navigator + , MSIE = !!navigator && /MSIE .\./.test(navigator.userAgent); // <- dirty ie9- check +var wrap = function(set){ + return MSIE ? function(fn, time /*, ...args */){ + return set(invoke( + partial, + [].slice.call(arguments, 2), + typeof fn == 'function' ? fn : Function(fn) + ), time); + } : set; +}; +$export($export.G + $export.B + $export.F * MSIE, { + setTimeout: wrap(global.setTimeout), + setInterval: wrap(global.setInterval) +}); +},{"22":22,"29":29,"33":33,"57":57}],188:[function(_dereq_,module,exports){ +_dereq_(85); +_dereq_(169); +_dereq_(124); +_dereq_(132); +_dereq_(136); +_dereq_(137); +_dereq_(125); +_dereq_(135); +_dereq_(134); +_dereq_(130); +_dereq_(131); +_dereq_(129); +_dereq_(126); +_dereq_(128); +_dereq_(133); +_dereq_(127); +_dereq_(95); +_dereq_(94); +_dereq_(114); +_dereq_(115); +_dereq_(116); +_dereq_(117); +_dereq_(118); +_dereq_(119); +_dereq_(120); +_dereq_(121); +_dereq_(122); +_dereq_(123); +_dereq_(97); +_dereq_(98); +_dereq_(99); +_dereq_(100); +_dereq_(101); +_dereq_(102); +_dereq_(103); +_dereq_(104); +_dereq_(105); +_dereq_(106); +_dereq_(107); +_dereq_(108); +_dereq_(109); +_dereq_(110); +_dereq_(111); +_dereq_(112); +_dereq_(113); +_dereq_(162); +_dereq_(165); +_dereq_(168); +_dereq_(164); +_dereq_(160); +_dereq_(161); +_dereq_(163); +_dereq_(166); +_dereq_(167); +_dereq_(90); +_dereq_(92); +_dereq_(91); +_dereq_(93); +_dereq_(86); +_dereq_(87); +_dereq_(89); +_dereq_(88); +_dereq_(153); +_dereq_(154); +_dereq_(155); +_dereq_(156); +_dereq_(157); +_dereq_(158); +_dereq_(138); +_dereq_(96); +_dereq_(159); +_dereq_(170); +_dereq_(171); +_dereq_(139); +_dereq_(140); +_dereq_(141); +_dereq_(142); +_dereq_(143); +_dereq_(146); +_dereq_(144); +_dereq_(145); +_dereq_(147); +_dereq_(148); +_dereq_(149); +_dereq_(150); +_dereq_(152); +_dereq_(151); +_dereq_(172); +_dereq_(179); +_dereq_(180); +_dereq_(181); +_dereq_(182); +_dereq_(183); +_dereq_(177); +_dereq_(175); +_dereq_(176); +_dereq_(174); +_dereq_(173); +_dereq_(178); +_dereq_(184); +_dereq_(187); +_dereq_(186); +_dereq_(185); +module.exports = _dereq_(16); +},{"100":100,"101":101,"102":102,"103":103,"104":104,"105":105,"106":106,"107":107,"108":108,"109":109,"110":110,"111":111,"112":112,"113":113,"114":114,"115":115,"116":116,"117":117,"118":118,"119":119,"120":120,"121":121,"122":122,"123":123,"124":124,"125":125,"126":126,"127":127,"128":128,"129":129,"130":130,"131":131,"132":132,"133":133,"134":134,"135":135,"136":136,"137":137,"138":138,"139":139,"140":140,"141":141,"142":142,"143":143,"144":144,"145":145,"146":146,"147":147,"148":148,"149":149,"150":150,"151":151,"152":152,"153":153,"154":154,"155":155,"156":156,"157":157,"158":158,"159":159,"16":16,"160":160,"161":161,"162":162,"163":163,"164":164,"165":165,"166":166,"167":167,"168":168,"169":169,"170":170,"171":171,"172":172,"173":173,"174":174,"175":175,"176":176,"177":177,"178":178,"179":179,"180":180,"181":181,"182":182,"183":183,"184":184,"185":185,"186":186,"187":187,"85":85,"86":86,"87":87,"88":88,"89":89,"90":90,"91":91,"92":92,"93":93,"94":94,"95":95,"96":96,"97":97,"98":98,"99":99}],189:[function(_dereq_,module,exports){ +(function (global){ +/** + * Copyright (c) 2014, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * https://raw.github.com/facebook/regenerator/master/LICENSE file. An + * additional grant of patent rights can be found in the PATENTS file in + * the same directory. + */ + +!(function(global) { + "use strict"; + + var hasOwn = Object.prototype.hasOwnProperty; + var undefined; // More compressible than void 0. + var iteratorSymbol = + typeof Symbol === "function" && Symbol.iterator || "@@iterator"; + + var inModule = typeof module === "object"; + var runtime = global.regeneratorRuntime; + if (runtime) { + if (inModule) { + // If regeneratorRuntime is defined globally and we're in a module, + // make the exports object identical to regeneratorRuntime. + module.exports = runtime; + } + // Don't bother evaluating the rest of this file if the runtime was + // already defined globally. + return; + } + + // Define the runtime globally (as expected by generated code) as either + // module.exports (if we're in a module) or a new, empty object. + runtime = global.regeneratorRuntime = inModule ? module.exports : {}; + + function wrap(innerFn, outerFn, self, tryLocsList) { + // If outerFn provided, then outerFn.prototype instanceof Generator. + var generator = Object.create((outerFn || Generator).prototype); + var context = new Context(tryLocsList || []); + + // The ._invoke method unifies the implementations of the .next, + // .throw, and .return methods. + generator._invoke = makeInvokeMethod(innerFn, self, context); + + return generator; + } + runtime.wrap = wrap; + + // Try/catch helper to minimize deoptimizations. Returns a completion + // record like context.tryEntries[i].completion. This interface could + // have been (and was previously) designed to take a closure to be + // invoked without arguments, but in all the cases we care about we + // already have an existing method we want to call, so there's no need + // to create a new function object. We can even get away with assuming + // the method takes exactly one argument, since that happens to be true + // in every case, so we don't have to touch the arguments object. The + // only additional allocation required is the completion record, which + // has a stable shape and so hopefully should be cheap to allocate. + function tryCatch(fn, obj, arg) { + try { + return { type: "normal", arg: fn.call(obj, arg) }; + } catch (err) { + return { type: "throw", arg: err }; + } + } + + var GenStateSuspendedStart = "suspendedStart"; + var GenStateSuspendedYield = "suspendedYield"; + var GenStateExecuting = "executing"; + var GenStateCompleted = "completed"; + + // Returning this object from the innerFn has the same effect as + // breaking out of the dispatch switch statement. + var ContinueSentinel = {}; + + // Dummy constructor functions that we use as the .constructor and + // .constructor.prototype properties for functions that return Generator + // objects. For full spec compliance, you may wish to configure your + // minifier not to mangle the names of these two functions. + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype; + GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; + GeneratorFunctionPrototype.constructor = GeneratorFunction; + GeneratorFunction.displayName = "GeneratorFunction"; + + // Helper for defining the .next, .throw, and .return methods of the + // Iterator interface in terms of a single ._invoke method. + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function(method) { + prototype[method] = function(arg) { + return this._invoke(method, arg); + }; + }); + } + + runtime.isGeneratorFunction = function(genFun) { + var ctor = typeof genFun === "function" && genFun.constructor; + return ctor + ? ctor === GeneratorFunction || + // For the native GeneratorFunction constructor, the best we can + // do is to check its .name property. + (ctor.displayName || ctor.name) === "GeneratorFunction" + : false; + }; + + runtime.mark = function(genFun) { + if (Object.setPrototypeOf) { + Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); + } else { + genFun.__proto__ = GeneratorFunctionPrototype; + } + genFun.prototype = Object.create(Gp); + return genFun; + }; + + // Within the body of any async function, `await x` is transformed to + // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test + // `value instanceof AwaitArgument` to determine if the yielded value is + // meant to be awaited. Some may consider the name of this method too + // cutesy, but they are curmudgeons. + runtime.awrap = function(arg) { + return new AwaitArgument(arg); + }; + + function AwaitArgument(arg) { + this.arg = arg; + } + + function AsyncIterator(generator) { + // This invoke function is written in a style that assumes some + // calling function (or Promise) will handle exceptions. + function invoke(method, arg) { + var result = generator[method](arg); + var value = result.value; + return value instanceof AwaitArgument + ? Promise.resolve(value.arg).then(invokeNext, invokeThrow) + : Promise.resolve(value).then(function(unwrapped) { + // When a yielded Promise is resolved, its final value becomes + // the .value of the Promise<{value,done}> result for the + // current iteration. If the Promise is rejected, however, the + // result for this iteration will be rejected with the same + // reason. Note that rejections of yielded Promises are not + // thrown back into the generator function, as is the case + // when an awaited Promise is rejected. This difference in + // behavior between yield and await is important, because it + // allows the consumer to decide what to do with the yielded + // rejection (swallow it and continue, manually .throw it back + // into the generator, abandon iteration, whatever). With + // await, by contrast, there is no opportunity to examine the + // rejection reason outside the generator function, so the + // only option is to throw it from the await expression, and + // let the generator function handle the exception. + result.value = unwrapped; + return result; + }); + } + + if (typeof process === "object" && process.domain) { + invoke = process.domain.bind(invoke); + } + + var invokeNext = invoke.bind(generator, "next"); + var invokeThrow = invoke.bind(generator, "throw"); + var invokeReturn = invoke.bind(generator, "return"); + var previousPromise; + + function enqueue(method, arg) { + function callInvokeWithMethodAndArg() { + return invoke(method, arg); + } + + return previousPromise = + // If enqueue has been called before, then we want to wait until + // all previous Promises have been resolved before calling invoke, + // so that results are always delivered in the correct order. If + // enqueue has not been called before, then it is important to + // call invoke immediately, without waiting on a callback to fire, + // so that the async generator function has the opportunity to do + // any necessary setup in a predictable way. This predictability + // is why the Promise constructor synchronously invokes its + // executor callback, and why async functions synchronously + // execute code before the first await. Since we implement simple + // async functions in terms of async generators, it is especially + // important to get this right, even though it requires care. + previousPromise ? previousPromise.then( + callInvokeWithMethodAndArg, + // Avoid propagating failures to Promises returned by later + // invocations of the iterator. + callInvokeWithMethodAndArg + ) : new Promise(function (resolve) { + resolve(callInvokeWithMethodAndArg()); + }); + } + + // Define the unified helper method that is used to implement .next, + // .throw, and .return (see defineIteratorMethods). + this._invoke = enqueue; + } + + defineIteratorMethods(AsyncIterator.prototype); + + // Note that simple async functions are implemented on top of + // AsyncIterator objects; they just return a Promise for the value of + // the final result produced by the iterator. + runtime.async = function(innerFn, outerFn, self, tryLocsList) { + var iter = new AsyncIterator( + wrap(innerFn, outerFn, self, tryLocsList) + ); + + return runtime.isGeneratorFunction(outerFn) + ? iter // If outerFn is a generator, return the full iterator. + : iter.next().then(function(result) { + return result.done ? result.value : iter.next(); + }); + }; + + function makeInvokeMethod(innerFn, self, context) { + var state = GenStateSuspendedStart; + + return function invoke(method, arg) { + if (state === GenStateExecuting) { + throw new Error("Generator is already running"); + } + + if (state === GenStateCompleted) { + if (method === "throw") { + throw arg; + } + + // Be forgiving, per 25.3.3.3.3 of the spec: + // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume + return doneResult(); + } + + while (true) { + var delegate = context.delegate; + if (delegate) { + if (method === "return" || + (method === "throw" && delegate.iterator[method] === undefined)) { + // A return or throw (when the delegate iterator has no throw + // method) always terminates the yield* loop. + context.delegate = null; + + // If the delegate iterator has a return method, give it a + // chance to clean up. + var returnMethod = delegate.iterator["return"]; + if (returnMethod) { + var record = tryCatch(returnMethod, delegate.iterator, arg); + if (record.type === "throw") { + // If the return method threw an exception, let that + // exception prevail over the original return or throw. + method = "throw"; + arg = record.arg; + continue; + } + } + + if (method === "return") { + // Continue with the outer return, now that the delegate + // iterator has been terminated. + continue; + } + } + + var record = tryCatch( + delegate.iterator[method], + delegate.iterator, + arg + ); + + if (record.type === "throw") { + context.delegate = null; + + // Like returning generator.throw(uncaught), but without the + // overhead of an extra function call. + method = "throw"; + arg = record.arg; + continue; + } + + // Delegate generator ran and handled its own exceptions so + // regardless of what the method was, we continue as if it is + // "next" with an undefined arg. + method = "next"; + arg = undefined; + + var info = record.arg; + if (info.done) { + context[delegate.resultName] = info.value; + context.next = delegate.nextLoc; + } else { + state = GenStateSuspendedYield; + return info; + } + + context.delegate = null; + } + + if (method === "next") { + if (state === GenStateSuspendedYield) { + context.sent = arg; + } else { + context.sent = undefined; + } + + } else if (method === "throw") { + if (state === GenStateSuspendedStart) { + state = GenStateCompleted; + throw arg; + } + + if (context.dispatchException(arg)) { + // If the dispatched exception was caught by a catch block, + // then let that catch block handle the exception normally. + method = "next"; + arg = undefined; + } + + } else if (method === "return") { + context.abrupt("return", arg); + } + + state = GenStateExecuting; + + var record = tryCatch(innerFn, self, context); + if (record.type === "normal") { + // If an exception is thrown from innerFn, we leave state === + // GenStateExecuting and loop back for another invocation. + state = context.done + ? GenStateCompleted + : GenStateSuspendedYield; + + var info = { + value: record.arg, + done: context.done + }; + + if (record.arg === ContinueSentinel) { + if (context.delegate && method === "next") { + // Deliberately forget the last sent value so that we don't + // accidentally pass it on to the delegate. + arg = undefined; + } + } else { + return info; + } + + } else if (record.type === "throw") { + state = GenStateCompleted; + // Dispatch the exception by looping back around to the + // context.dispatchException(arg) call above. + method = "throw"; + arg = record.arg; + } + } + }; + } + + // Define Generator.prototype.{next,throw,return} in terms of the + // unified ._invoke helper method. + defineIteratorMethods(Gp); + + Gp[iteratorSymbol] = function() { + return this; + }; + + Gp.toString = function() { + return "[object Generator]"; + }; + + function pushTryEntry(locs) { + var entry = { tryLoc: locs[0] }; + + if (1 in locs) { + entry.catchLoc = locs[1]; + } + + if (2 in locs) { + entry.finallyLoc = locs[2]; + entry.afterLoc = locs[3]; + } + + this.tryEntries.push(entry); + } + + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal"; + delete record.arg; + entry.completion = record; + } + + function Context(tryLocsList) { + // The root entry object (effectively a try statement without a catch + // or a finally block) gives us a place to store values thrown from + // locations where there is no enclosing try statement. + this.tryEntries = [{ tryLoc: "root" }]; + tryLocsList.forEach(pushTryEntry, this); + this.reset(true); + } + + runtime.keys = function(object) { + var keys = []; + for (var key in object) { + keys.push(key); + } + keys.reverse(); + + // Rather than returning an object with a next method, we keep + // things simple and return the next function itself. + return function next() { + while (keys.length) { + var key = keys.pop(); + if (key in object) { + next.value = key; + next.done = false; + return next; + } + } + + // To avoid creating an additional object, we just hang the .value + // and .done properties off the next function object itself. This + // also ensures that the minifier will not anonymize the function. + next.done = true; + return next; + }; + }; + + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) { + return iteratorMethod.call(iterable); + } + + if (typeof iterable.next === "function") { + return iterable; + } + + if (!isNaN(iterable.length)) { + var i = -1, next = function next() { + while (++i < iterable.length) { + if (hasOwn.call(iterable, i)) { + next.value = iterable[i]; + next.done = false; + return next; + } + } + + next.value = undefined; + next.done = true; + + return next; + }; + + return next.next = next; + } + } + + // Return an iterator with no values. + return { next: doneResult }; + } + runtime.values = values; + + function doneResult() { + return { value: undefined, done: true }; + } + + Context.prototype = { + constructor: Context, + + reset: function(skipTempReset) { + this.prev = 0; + this.next = 0; + this.sent = undefined; + this.done = false; + this.delegate = null; + + this.tryEntries.forEach(resetTryEntry); + + if (!skipTempReset) { + for (var name in this) { + // Not sure about the optimal order of these conditions: + if (name.charAt(0) === "t" && + hasOwn.call(this, name) && + !isNaN(+name.slice(1))) { + this[name] = undefined; + } + } + } + }, + + stop: function() { + this.done = true; + + var rootEntry = this.tryEntries[0]; + var rootRecord = rootEntry.completion; + if (rootRecord.type === "throw") { + throw rootRecord.arg; + } + + return this.rval; + }, + + dispatchException: function(exception) { + if (this.done) { + throw exception; + } + + var context = this; + function handle(loc, caught) { + record.type = "throw"; + record.arg = exception; + context.next = loc; + return !!caught; + } + + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + var record = entry.completion; + + if (entry.tryLoc === "root") { + // Exception thrown outside of any try block that could handle + // it, so set the completion value of the entire function to + // throw the exception. + return handle("end"); + } + + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"); + var hasFinally = hasOwn.call(entry, "finallyLoc"); + + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } else if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else if (hasCatch) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } + + } else if (hasFinally) { + if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else { + throw new Error("try statement without catch or finally"); + } + } + } + }, + + abrupt: function(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && + hasOwn.call(entry, "finallyLoc") && + this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + + if (finallyEntry && + (type === "break" || + type === "continue") && + finallyEntry.tryLoc <= arg && + arg <= finallyEntry.finallyLoc) { + // Ignore the finally entry if control is not jumping to a + // location outside the try/catch block. + finallyEntry = null; + } + + var record = finallyEntry ? finallyEntry.completion : {}; + record.type = type; + record.arg = arg; + + if (finallyEntry) { + this.next = finallyEntry.finallyLoc; + } else { + this.complete(record); + } + + return ContinueSentinel; + }, + + complete: function(record, afterLoc) { + if (record.type === "throw") { + throw record.arg; + } + + if (record.type === "break" || + record.type === "continue") { + this.next = record.arg; + } else if (record.type === "return") { + this.rval = record.arg; + this.next = "end"; + } else if (record.type === "normal" && afterLoc) { + this.next = afterLoc; + } + }, + + finish: function(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) { + this.complete(entry.completion, entry.afterLoc); + resetTryEntry(entry); + return ContinueSentinel; + } + } + }, + + "catch": function(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if (record.type === "throw") { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + + // The context.catch method must only be called with a location + // argument that corresponds to a known catch block. + throw new Error("illegal catch attempt"); + }, + + delegateYield: function(iterable, resultName, nextLoc) { + this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }; + + return ContinueSentinel; + } + }; +})( + // Among the various tricks for obtaining a reference to the global + // object, this seems to be the most reliable technique that does not + // use indirect eval (which violates Content Security Policy). + typeof global === "object" ? global : + typeof window === "object" ? window : + typeof self === "object" ? self : this +); + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}]},{},[1]); diff --git a/web/static/js/babel-polyfill-6.1.18.min.js b/web/static/js/babel-polyfill-6.1.18.min.js new file mode 100644 index 000000000..bb9dbd1b0 --- /dev/null +++ b/web/static/js/babel-polyfill-6.1.18.min.js @@ -0,0 +1,2 @@ +!function t(n,r,e){function o(u,c){if(!r[u]){if(!n[u]){var a="function"==typeof require&&require;if(!c&&a)return a(u,!0);if(i)return i(u,!0);var s=new Error("Cannot find module '"+u+"'");throw s.code="MODULE_NOT_FOUND",s}var f=r[u]={exports:{}};n[u][0].call(f.exports,function(t){var r=n[u][1][t];return o(r?r:t)},f,f.exports,t,n,r,e)}return r[u].exports}for(var i="function"==typeof require&&require,u=0;u<e.length;u++)o(e[u]);return o}({1:[function(t,n,r){(function(n){"use strict";if(t(188),t(189),n._babelPolyfill)throw new Error("only one instance of babel/polyfill is allowed");n._babelPolyfill=!0}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{188:188,189:189}],2:[function(t,n,r){n.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},{}],3:[function(t,n,r){var e=t(83)("unscopables"),o=Array.prototype;void 0==o[e]&&t(31)(o,e,{}),n.exports=function(t){o[e][t]=!0}},{31:31,83:83}],4:[function(t,n,r){var e=t(38);n.exports=function(t){if(!e(t))throw TypeError(t+" is not an object!");return t}},{38:38}],5:[function(t,n,r){"use strict";var e=t(80),o=t(76),i=t(79);n.exports=[].copyWithin||function(t,n){var r=e(this),u=i(r.length),c=o(t,u),a=o(n,u),s=arguments,f=s.length>2?s[2]:void 0,l=Math.min((void 0===f?u:o(f,u))-a,u-c),h=1;for(c>a&&a+l>c&&(h=-1,a+=l-1,c+=l-1);l-->0;)a in r?r[c]=r[a]:delete r[c],c+=h,a+=h;return r}},{76:76,79:79,80:80}],6:[function(t,n,r){"use strict";var e=t(80),o=t(76),i=t(79);n.exports=[].fill||function(t){for(var n=e(this),r=i(n.length),u=arguments,c=u.length,a=o(c>1?u[1]:void 0,r),s=c>2?u[2]:void 0,f=void 0===s?r:o(s,r);f>a;)n[a++]=t;return n}},{76:76,79:79,80:80}],7:[function(t,n,r){var e=t(78),o=t(79),i=t(76);n.exports=function(t){return function(n,r,u){var c,a=e(n),s=o(a.length),f=i(u,s);if(t&&r!=r){for(;s>f;)if(c=a[f++],c!=c)return!0}else for(;s>f;f++)if((t||f in a)&&a[f]===r)return t||f;return!t&&-1}}},{76:76,78:78,79:79}],8:[function(t,n,r){var e=t(17),o=t(34),i=t(80),u=t(79),c=t(9);n.exports=function(t){var n=1==t,r=2==t,a=3==t,s=4==t,f=6==t,l=5==t||f;return function(h,p,v){for(var g,y,d=i(h),m=o(d),S=e(p,v,3),b=u(m.length),w=0,x=n?c(h,b):r?c(h,0):void 0;b>w;w++)if((l||w in m)&&(g=m[w],y=S(g,w,d),t))if(n)x[w]=y;else if(y)switch(t){case 3:return!0;case 5:return g;case 6:return w;case 2:x.push(g)}else if(s)return!1;return f?-1:a||s?s:x}}},{17:17,34:34,79:79,80:80,9:9}],9:[function(t,n,r){var e=t(38),o=t(36),i=t(83)("species");n.exports=function(t,n){var r;return o(t)&&(r=t.constructor,"function"!=typeof r||r!==Array&&!o(r.prototype)||(r=void 0),e(r)&&(r=r[i],null===r&&(r=void 0))),new(void 0===r?Array:r)(n)}},{36:36,38:38,83:83}],10:[function(t,n,r){var e=t(11),o=t(83)("toStringTag"),i="Arguments"==e(function(){return arguments}());n.exports=function(t){var n,r,u;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=(n=Object(t))[o])?r:i?e(n):"Object"==(u=e(n))&&"function"==typeof n.callee?"Arguments":u}},{11:11,83:83}],11:[function(t,n,r){var e={}.toString;n.exports=function(t){return e.call(t).slice(8,-1)}},{}],12:[function(t,n,r){"use strict";var e=t(46),o=t(31),i=t(60),u=t(17),c=t(69),a=t(18),s=t(27),f=t(42),l=t(44),h=t(82)("id"),p=t(30),v=t(38),g=t(65),y=t(19),d=Object.isExtensible||v,m=y?"_s":"size",S=0,b=function(t,n){if(!v(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!p(t,h)){if(!d(t))return"F";if(!n)return"E";o(t,h,++S)}return"O"+t[h]},w=function(t,n){var r,e=b(n);if("F"!==e)return t._i[e];for(r=t._f;r;r=r.n)if(r.k==n)return r};n.exports={getConstructor:function(t,n,r,o){var f=t(function(t,i){c(t,f,n),t._i=e.create(null),t._f=void 0,t._l=void 0,t[m]=0,void 0!=i&&s(i,r,t[o],t)});return i(f.prototype,{clear:function(){for(var t=this,n=t._i,r=t._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];t._f=t._l=void 0,t[m]=0},"delete":function(t){var n=this,r=w(n,t);if(r){var e=r.n,o=r.p;delete n._i[r.i],r.r=!0,o&&(o.n=e),e&&(e.p=o),n._f==r&&(n._f=e),n._l==r&&(n._l=o),n[m]--}return!!r},forEach:function(t){for(var n,r=u(t,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(t){return!!w(this,t)}}),y&&e.setDesc(f.prototype,"size",{get:function(){return a(this[m])}}),f},def:function(t,n,r){var e,o,i=w(t,n);return i?i.v=r:(t._l=i={i:o=b(n,!0),k:n,v:r,p:e=t._l,n:void 0,r:!1},t._f||(t._f=i),e&&(e.n=i),t[m]++,"F"!==o&&(t._i[o]=i)),t},getEntry:w,setStrong:function(t,n,r){f(t,n,function(t,n){this._t=t,this._k=n,this._l=void 0},function(){for(var t=this,n=t._k,r=t._l;r&&r.r;)r=r.p;return t._t&&(t._l=r=r?r.n:t._t._f)?"keys"==n?l(0,r.k):"values"==n?l(0,r.v):l(0,[r.k,r.v]):(t._t=void 0,l(1))},r?"entries":"values",!r,!0),g(n)}}},{17:17,18:18,19:19,27:27,30:30,31:31,38:38,42:42,44:44,46:46,60:60,65:65,69:69,82:82}],13:[function(t,n,r){var e=t(27),o=t(10);n.exports=function(t){return function(){if(o(this)!=t)throw TypeError(t+"#toJSON isn't generic");var n=[];return e(this,!1,n.push,n),n}}},{10:10,27:27}],14:[function(t,n,r){"use strict";var e=t(31),o=t(60),i=t(4),u=t(38),c=t(69),a=t(27),s=t(8),f=t(30),l=t(82)("weak"),h=Object.isExtensible||u,p=s(5),v=s(6),g=0,y=function(t){return t._l||(t._l=new d)},d=function(){this.a=[]},m=function(t,n){return p(t.a,function(t){return t[0]===n})};d.prototype={get:function(t){var n=m(this,t);return n?n[1]:void 0},has:function(t){return!!m(this,t)},set:function(t,n){var r=m(this,t);r?r[1]=n:this.a.push([t,n])},"delete":function(t){var n=v(this.a,function(n){return n[0]===t});return~n&&this.a.splice(n,1),!!~n}},n.exports={getConstructor:function(t,n,r,e){var i=t(function(t,o){c(t,i,n),t._i=g++,t._l=void 0,void 0!=o&&a(o,r,t[e],t)});return o(i.prototype,{"delete":function(t){return u(t)?h(t)?f(t,l)&&f(t[l],this._i)&&delete t[l][this._i]:y(this)["delete"](t):!1},has:function(t){return u(t)?h(t)?f(t,l)&&f(t[l],this._i):y(this).has(t):!1}}),i},def:function(t,n,r){return h(i(n))?(f(n,l)||e(n,l,{}),n[l][t._i]=r):y(t).set(n,r),t},frozenStore:y,WEAK:l}},{27:27,30:30,31:31,38:38,4:4,60:60,69:69,8:8,82:82}],15:[function(t,n,r){"use strict";var e=t(29),o=t(22),i=t(61),u=t(60),c=t(27),a=t(69),s=t(38),f=t(24),l=t(43),h=t(66);n.exports=function(t,n,r,p,v,g){var y=e[t],d=y,m=v?"set":"add",S=d&&d.prototype,b={},w=function(t){var n=S[t];i(S,t,"delete"==t?function(t){return g&&!s(t)?!1:n.call(this,0===t?0:t)}:"has"==t?function(t){return g&&!s(t)?!1:n.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!s(t)?void 0:n.call(this,0===t?0:t)}:"add"==t?function(t){return n.call(this,0===t?0:t),this}:function(t,r){return n.call(this,0===t?0:t,r),this})};if("function"==typeof d&&(g||S.forEach&&!f(function(){(new d).entries().next()}))){var x,_=new d,E=_[m](g?{}:-0,1)!=_,O=f(function(){_.has(1)}),M=l(function(t){new d(t)});M||(d=n(function(n,r){a(n,d,t);var e=new y;return void 0!=r&&c(r,v,e[m],e),e}),d.prototype=S,S.constructor=d),g||_.forEach(function(t,n){x=1/n===-(1/0)}),(O||x)&&(w("delete"),w("has"),v&&w("get")),(x||E)&&w(m),g&&S.clear&&delete S.clear}else d=p.getConstructor(n,t,v,m),u(d.prototype,r);return h(d,t),b[t]=d,o(o.G+o.W+o.F*(d!=y),b),g||p.setStrong(d,t,v),d}},{22:22,24:24,27:27,29:29,38:38,43:43,60:60,61:61,66:66,69:69}],16:[function(t,n,r){var e=n.exports={version:"1.2.6"};"number"==typeof __e&&(__e=e)},{}],17:[function(t,n,r){var e=t(2);n.exports=function(t,n,r){if(e(t),void 0===n)return t;switch(r){case 1:return function(r){return t.call(n,r)};case 2:return function(r,e){return t.call(n,r,e)};case 3:return function(r,e,o){return t.call(n,r,e,o)}}return function(){return t.apply(n,arguments)}}},{2:2}],18:[function(t,n,r){n.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},{}],19:[function(t,n,r){n.exports=!t(24)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{24:24}],20:[function(t,n,r){var e=t(38),o=t(29).document,i=e(o)&&e(o.createElement);n.exports=function(t){return i?o.createElement(t):{}}},{29:29,38:38}],21:[function(t,n,r){var e=t(46);n.exports=function(t){var n=e.getKeys(t),r=e.getSymbols;if(r)for(var o,i=r(t),u=e.isEnum,c=0;i.length>c;)u.call(t,o=i[c++])&&n.push(o);return n}},{46:46}],22:[function(t,n,r){var e=t(29),o=t(16),i=t(31),u=t(61),c=t(17),a="prototype",s=function(t,n,r){var f,l,h,p,v=t&s.F,g=t&s.G,y=t&s.S,d=t&s.P,m=t&s.B,S=g?e:y?e[n]||(e[n]={}):(e[n]||{})[a],b=g?o:o[n]||(o[n]={}),w=b[a]||(b[a]={});g&&(r=n);for(f in r)l=!v&&S&&f in S,h=(l?S:r)[f],p=m&&l?c(h,e):d&&"function"==typeof h?c(Function.call,h):h,S&&!l&&u(S,f,h),b[f]!=h&&i(b,f,p),d&&w[f]!=h&&(w[f]=h)};e.core=o,s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,n.exports=s},{16:16,17:17,29:29,31:31,61:61}],23:[function(t,n,r){var e=t(83)("match");n.exports=function(t){var n=/./;try{"/./"[t](n)}catch(r){try{return n[e]=!1,!"/./"[t](n)}catch(o){}}return!0}},{83:83}],24:[function(t,n,r){n.exports=function(t){try{return!!t()}catch(n){return!0}}},{}],25:[function(t,n,r){"use strict";var e=t(31),o=t(61),i=t(24),u=t(18),c=t(83);n.exports=function(t,n,r){var a=c(t),s=""[t];i(function(){var n={};return n[a]=function(){return 7},7!=""[t](n)})&&(o(String.prototype,t,r(u,a,s)),e(RegExp.prototype,a,2==n?function(t,n){return s.call(t,this,n)}:function(t){return s.call(t,this)}))}},{18:18,24:24,31:31,61:61,83:83}],26:[function(t,n,r){"use strict";var e=t(4);n.exports=function(){var t=e(this),n="";return t.global&&(n+="g"),t.ignoreCase&&(n+="i"),t.multiline&&(n+="m"),t.unicode&&(n+="u"),t.sticky&&(n+="y"),n}},{4:4}],27:[function(t,n,r){var e=t(17),o=t(40),i=t(35),u=t(4),c=t(79),a=t(84);n.exports=function(t,n,r,s){var f,l,h,p=a(t),v=e(r,s,n?2:1),g=0;if("function"!=typeof p)throw TypeError(t+" is not iterable!");if(i(p))for(f=c(t.length);f>g;g++)n?v(u(l=t[g])[0],l[1]):v(t[g]);else for(h=p.call(t);!(l=h.next()).done;)o(h,v,l.value,n)}},{17:17,35:35,4:4,40:40,79:79,84:84}],28:[function(t,n,r){var e=t(78),o=t(46).getNames,i={}.toString,u="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],c=function(t){try{return o(t)}catch(n){return u.slice()}};n.exports.get=function(t){return u&&"[object Window]"==i.call(t)?c(t):o(e(t))}},{46:46,78:78}],29:[function(t,n,r){var e=n.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)},{}],30:[function(t,n,r){var e={}.hasOwnProperty;n.exports=function(t,n){return e.call(t,n)}},{}],31:[function(t,n,r){var e=t(46),o=t(59);n.exports=t(19)?function(t,n,r){return e.setDesc(t,n,o(1,r))}:function(t,n,r){return t[n]=r,t}},{19:19,46:46,59:59}],32:[function(t,n,r){n.exports=t(29).document&&document.documentElement},{29:29}],33:[function(t,n,r){n.exports=function(t,n,r){var e=void 0===r;switch(n.length){case 0:return e?t():t.call(r);case 1:return e?t(n[0]):t.call(r,n[0]);case 2:return e?t(n[0],n[1]):t.call(r,n[0],n[1]);case 3:return e?t(n[0],n[1],n[2]):t.call(r,n[0],n[1],n[2]);case 4:return e?t(n[0],n[1],n[2],n[3]):t.call(r,n[0],n[1],n[2],n[3])}return t.apply(r,n)}},{}],34:[function(t,n,r){var e=t(11);n.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==e(t)?t.split(""):Object(t)}},{11:11}],35:[function(t,n,r){var e=t(45),o=t(83)("iterator"),i=Array.prototype;n.exports=function(t){return void 0!==t&&(e.Array===t||i[o]===t)}},{45:45,83:83}],36:[function(t,n,r){var e=t(11);n.exports=Array.isArray||function(t){return"Array"==e(t)}},{11:11}],37:[function(t,n,r){var e=t(38),o=Math.floor;n.exports=function(t){return!e(t)&&isFinite(t)&&o(t)===t}},{38:38}],38:[function(t,n,r){n.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},{}],39:[function(t,n,r){var e=t(38),o=t(11),i=t(83)("match");n.exports=function(t){var n;return e(t)&&(void 0!==(n=t[i])?!!n:"RegExp"==o(t))}},{11:11,38:38,83:83}],40:[function(t,n,r){var e=t(4);n.exports=function(t,n,r,o){try{return o?n(e(r)[0],r[1]):n(r)}catch(i){var u=t["return"];throw void 0!==u&&e(u.call(t)),i}}},{4:4}],41:[function(t,n,r){"use strict";var e=t(46),o=t(59),i=t(66),u={};t(31)(u,t(83)("iterator"),function(){return this}),n.exports=function(t,n,r){t.prototype=e.create(u,{next:o(1,r)}),i(t,n+" Iterator")}},{31:31,46:46,59:59,66:66,83:83}],42:[function(t,n,r){"use strict";var e=t(48),o=t(22),i=t(61),u=t(31),c=t(30),a=t(45),s=t(41),f=t(66),l=t(46).getProto,h=t(83)("iterator"),p=!([].keys&&"next"in[].keys()),v="@@iterator",g="keys",y="values",d=function(){return this};n.exports=function(t,n,r,m,S,b,w){s(r,n,m);var x,_,E=function(t){if(!p&&t in j)return j[t];switch(t){case g:return function(){return new r(this,t)};case y:return function(){return new r(this,t)}}return function(){return new r(this,t)}},O=n+" Iterator",M=S==y,P=!1,j=t.prototype,N=j[h]||j[v]||S&&j[S],F=N||E(S);if(N){var A=l(F.call(new t));f(A,O,!0),!e&&c(j,v)&&u(A,h,d),M&&N.name!==y&&(P=!0,F=function(){return N.call(this)})}if(e&&!w||!p&&!P&&j[h]||u(j,h,F),a[n]=F,a[O]=d,S)if(x={values:M?F:E(y),keys:b?F:E(g),entries:M?E("entries"):F},w)for(_ in x)_ in j||i(j,_,x[_]);else o(o.P+o.F*(p||P),n,x);return x}},{22:22,30:30,31:31,41:41,45:45,46:46,48:48,61:61,66:66,83:83}],43:[function(t,n,r){var e=t(83)("iterator"),o=!1;try{var i=[7][e]();i["return"]=function(){o=!0},Array.from(i,function(){throw 2})}catch(u){}n.exports=function(t,n){if(!n&&!o)return!1;var r=!1;try{var i=[7],u=i[e]();u.next=function(){r=!0},i[e]=function(){return u},t(i)}catch(c){}return r}},{83:83}],44:[function(t,n,r){n.exports=function(t,n){return{value:n,done:!!t}}},{}],45:[function(t,n,r){n.exports={}},{}],46:[function(t,n,r){var e=Object;n.exports={create:e.create,getProto:e.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:e.getOwnPropertyDescriptor,setDesc:e.defineProperty,setDescs:e.defineProperties,getKeys:e.keys,getNames:e.getOwnPropertyNames,getSymbols:e.getOwnPropertySymbols,each:[].forEach}},{}],47:[function(t,n,r){var e=t(46),o=t(78);n.exports=function(t,n){for(var r,i=o(t),u=e.getKeys(i),c=u.length,a=0;c>a;)if(i[r=u[a++]]===n)return r}},{46:46,78:78}],48:[function(t,n,r){n.exports=!1},{}],49:[function(t,n,r){n.exports=Math.expm1||function(t){return 0==(t=+t)?t:t>-1e-6&&1e-6>t?t+t*t/2:Math.exp(t)-1}},{}],50:[function(t,n,r){n.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&1e-8>t?t-t*t/2:Math.log(1+t)}},{}],51:[function(t,n,r){n.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:0>t?-1:1}},{}],52:[function(t,n,r){var e,o,i,u=t(29),c=t(75).set,a=u.MutationObserver||u.WebKitMutationObserver,s=u.process,f=u.Promise,l="process"==t(11)(s),h=function(){var t,n,r;for(l&&(t=s.domain)&&(s.domain=null,t.exit());e;)n=e.domain,r=e.fn,n&&n.enter(),r(),n&&n.exit(),e=e.next;o=void 0,t&&t.enter()};if(l)i=function(){s.nextTick(h)};else if(a){var p=1,v=document.createTextNode("");new a(h).observe(v,{characterData:!0}),i=function(){v.data=p=-p}}else i=f&&f.resolve?function(){f.resolve().then(h)}:function(){c.call(u,h)};n.exports=function(t){var n={fn:t,next:void 0,domain:l&&s.domain};o&&(o.next=n),e||(e=n,i()),o=n}},{11:11,29:29,75:75}],53:[function(t,n,r){var e=t(46),o=t(80),i=t(34);n.exports=t(24)(function(){var t=Object.assign,n={},r={},e=Symbol(),o="abcdefghijklmnopqrst";return n[e]=7,o.split("").forEach(function(t){r[t]=t}),7!=t({},n)[e]||Object.keys(t({},r)).join("")!=o})?function(t,n){for(var r=o(t),u=arguments,c=u.length,a=1,s=e.getKeys,f=e.getSymbols,l=e.isEnum;c>a;)for(var h,p=i(u[a++]),v=f?s(p).concat(f(p)):s(p),g=v.length,y=0;g>y;)l.call(p,h=v[y++])&&(r[h]=p[h]);return r}:Object.assign},{24:24,34:34,46:46,80:80}],54:[function(t,n,r){var e=t(22),o=t(16),i=t(24);n.exports=function(t,n){var r=(o.Object||{})[t]||Object[t],u={};u[t]=n(r),e(e.S+e.F*i(function(){r(1)}),"Object",u)}},{16:16,22:22,24:24}],55:[function(t,n,r){var e=t(46),o=t(78),i=e.isEnum;n.exports=function(t){return function(n){for(var r,u=o(n),c=e.getKeys(u),a=c.length,s=0,f=[];a>s;)i.call(u,r=c[s++])&&f.push(t?[r,u[r]]:u[r]);return f}}},{46:46,78:78}],56:[function(t,n,r){var e=t(46),o=t(4),i=t(29).Reflect;n.exports=i&&i.ownKeys||function(t){var n=e.getNames(o(t)),r=e.getSymbols;return r?n.concat(r(t)):n}},{29:29,4:4,46:46}],57:[function(t,n,r){"use strict";var e=t(58),o=t(33),i=t(2);n.exports=function(){for(var t=i(this),n=arguments.length,r=Array(n),u=0,c=e._,a=!1;n>u;)(r[u]=arguments[u++])===c&&(a=!0);return function(){var e,i=this,u=arguments,s=u.length,f=0,l=0;if(!a&&!s)return o(t,r,i);if(e=r.slice(),a)for(;n>f;f++)e[f]===c&&(e[f]=u[l++]);for(;s>l;)e.push(u[l++]);return o(t,e,i)}}},{2:2,33:33,58:58}],58:[function(t,n,r){n.exports=t(29)},{29:29}],59:[function(t,n,r){n.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},{}],60:[function(t,n,r){var e=t(61);n.exports=function(t,n){for(var r in n)e(t,r,n[r]);return t}},{61:61}],61:[function(t,n,r){var e=t(29),o=t(31),i=t(82)("src"),u="toString",c=Function[u],a=(""+c).split(u);t(16).inspectSource=function(t){return c.call(t)},(n.exports=function(t,n,r,u){"function"==typeof r&&(r.hasOwnProperty(i)||o(r,i,t[n]?""+t[n]:a.join(String(n))),r.hasOwnProperty("name")||o(r,"name",n)),t===e?t[n]=r:(u||delete t[n],o(t,n,r))})(Function.prototype,u,function(){return"function"==typeof this&&this[i]||c.call(this)})},{16:16,29:29,31:31,82:82}],62:[function(t,n,r){n.exports=function(t,n){var r=n===Object(n)?function(t){return n[t]}:n;return function(n){return String(n).replace(t,r)}}},{}],63:[function(t,n,r){n.exports=Object.is||function(t,n){return t===n?0!==t||1/t===1/n:t!=t&&n!=n}},{}],64:[function(t,n,r){var e=t(46).getDesc,o=t(38),i=t(4),u=function(t,n){if(i(t),!o(n)&&null!==n)throw TypeError(n+": can't set as prototype!")};n.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(n,r,o){try{o=t(17)(Function.call,e(Object.prototype,"__proto__").set,2),o(n,[]),r=!(n instanceof Array)}catch(i){r=!0}return function(t,n){return u(t,n),r?t.__proto__=n:o(t,n),t}}({},!1):void 0),check:u}},{17:17,38:38,4:4,46:46}],65:[function(t,n,r){"use strict";var e=t(29),o=t(46),i=t(19),u=t(83)("species");n.exports=function(t){var n=e[t];i&&n&&!n[u]&&o.setDesc(n,u,{configurable:!0,get:function(){return this}})}},{19:19,29:29,46:46,83:83}],66:[function(t,n,r){var e=t(46).setDesc,o=t(30),i=t(83)("toStringTag");n.exports=function(t,n,r){t&&!o(t=r?t:t.prototype,i)&&e(t,i,{configurable:!0,value:n})}},{30:30,46:46,83:83}],67:[function(t,n,r){var e=t(29),o="__core-js_shared__",i=e[o]||(e[o]={});n.exports=function(t){return i[t]||(i[t]={})}},{29:29}],68:[function(t,n,r){var e=t(4),o=t(2),i=t(83)("species");n.exports=function(t,n){var r,u=e(t).constructor;return void 0===u||void 0==(r=e(u)[i])?n:o(r)}},{2:2,4:4,83:83}],69:[function(t,n,r){n.exports=function(t,n,r){if(!(t instanceof n))throw TypeError(r+": use the 'new' operator!");return t}},{}],70:[function(t,n,r){var e=t(77),o=t(18);n.exports=function(t){return function(n,r){var i,u,c=String(o(n)),a=e(r),s=c.length;return 0>a||a>=s?t?"":void 0:(i=c.charCodeAt(a),55296>i||i>56319||a+1===s||(u=c.charCodeAt(a+1))<56320||u>57343?t?c.charAt(a):i:t?c.slice(a,a+2):(i-55296<<10)+(u-56320)+65536)}}},{18:18,77:77}],71:[function(t,n,r){var e=t(39),o=t(18);n.exports=function(t,n,r){if(e(n))throw TypeError("String#"+r+" doesn't accept regex!");return String(o(t))}},{18:18,39:39}],72:[function(t,n,r){var e=t(79),o=t(73),i=t(18);n.exports=function(t,n,r,u){var c=String(i(t)),a=c.length,s=void 0===r?" ":String(r),f=e(n);if(a>=f)return c;""==s&&(s=" ");var l=f-a,h=o.call(s,Math.ceil(l/s.length));return h.length>l&&(h=h.slice(0,l)),u?h+c:c+h}},{18:18,73:73,79:79}],73:[function(t,n,r){"use strict";var e=t(77),o=t(18);n.exports=function(t){var n=String(o(this)),r="",i=e(t);if(0>i||i==1/0)throw RangeError("Count can't be negative");for(;i>0;(i>>>=1)&&(n+=n))1&i&&(r+=n);return r}},{18:18,77:77}],74:[function(t,n,r){var e=t(22),o=t(18),i=t(24),u=" \n\f\r Â áš€á Žâ€€â€â€‚         âŸã€€\u2028\u2029\ufeff",c="["+u+"]",a="​…",s=RegExp("^"+c+c+"*"),f=RegExp(c+c+"*$"),l=function(t,n){var r={};r[t]=n(h),e(e.P+e.F*i(function(){return!!u[t]()||a[t]()!=a}),"String",r)},h=l.trim=function(t,n){return t=String(o(t)),1&n&&(t=t.replace(s,"")),2&n&&(t=t.replace(f,"")),t};n.exports=l},{18:18,22:22,24:24}],75:[function(t,n,r){var e,o,i,u=t(17),c=t(33),a=t(32),s=t(20),f=t(29),l=f.process,h=f.setImmediate,p=f.clearImmediate,v=f.MessageChannel,g=0,y={},d="onreadystatechange",m=function(){var t=+this;if(y.hasOwnProperty(t)){var n=y[t];delete y[t],n()}},S=function(t){m.call(t.data)};h&&p||(h=function(t){for(var n=[],r=1;arguments.length>r;)n.push(arguments[r++]);return y[++g]=function(){c("function"==typeof t?t:Function(t),n)},e(g),g},p=function(t){delete y[t]},"process"==t(11)(l)?e=function(t){l.nextTick(u(m,t,1))}:v?(o=new v,i=o.port2,o.port1.onmessage=S,e=u(i.postMessage,i,1)):f.addEventListener&&"function"==typeof postMessage&&!f.importScripts?(e=function(t){f.postMessage(t+"","*")},f.addEventListener("message",S,!1)):e=d in s("script")?function(t){a.appendChild(s("script"))[d]=function(){a.removeChild(this),m.call(t)}}:function(t){setTimeout(u(m,t,1),0)}),n.exports={set:h,clear:p}},{11:11,17:17,20:20,29:29,32:32,33:33}],76:[function(t,n,r){var e=t(77),o=Math.max,i=Math.min;n.exports=function(t,n){return t=e(t),0>t?o(t+n,0):i(t,n)}},{77:77}],77:[function(t,n,r){var e=Math.ceil,o=Math.floor;n.exports=function(t){return isNaN(t=+t)?0:(t>0?o:e)(t)}},{}],78:[function(t,n,r){var e=t(34),o=t(18);n.exports=function(t){return e(o(t))}},{18:18,34:34}],79:[function(t,n,r){var e=t(77),o=Math.min;n.exports=function(t){return t>0?o(e(t),9007199254740991):0}},{77:77}],80:[function(t,n,r){var e=t(18);n.exports=function(t){return Object(e(t))}},{18:18}],81:[function(t,n,r){var e=t(38);n.exports=function(t,n){if(!e(t))return t;var r,o;if(n&&"function"==typeof(r=t.toString)&&!e(o=r.call(t)))return o;if("function"==typeof(r=t.valueOf)&&!e(o=r.call(t)))return o;if(!n&&"function"==typeof(r=t.toString)&&!e(o=r.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},{38:38}],82:[function(t,n,r){var e=0,o=Math.random();n.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++e+o).toString(36))}},{}],83:[function(t,n,r){var e=t(67)("wks"),o=t(82),i=t(29).Symbol;n.exports=function(t){return e[t]||(e[t]=i&&i[t]||(i||o)("Symbol."+t))}},{29:29,67:67,82:82}],84:[function(t,n,r){var e=t(10),o=t(83)("iterator"),i=t(45);n.exports=t(16).getIteratorMethod=function(t){return void 0!=t?t[o]||t["@@iterator"]||i[e(t)]:void 0}},{10:10,16:16,45:45,83:83}],85:[function(t,n,r){"use strict";var e,o=t(46),i=t(22),u=t(19),c=t(59),a=t(32),s=t(20),f=t(30),l=t(11),h=t(33),p=t(24),v=t(4),g=t(2),y=t(38),d=t(80),m=t(78),S=t(77),b=t(76),w=t(79),x=t(34),_=t(82)("__proto__"),E=t(8),O=t(7)(!1),M=Object.prototype,P=Array.prototype,j=P.slice,N=P.join,F=o.setDesc,A=o.getDesc,D=o.setDescs,I={};u||(e=!p(function(){return 7!=F(s("div"),"a",{get:function(){return 7}}).a}),o.setDesc=function(t,n,r){if(e)try{return F(t,n,r)}catch(o){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(v(t)[n]=r.value),t},o.getDesc=function(t,n){if(e)try{return A(t,n)}catch(r){}return f(t,n)?c(!M.propertyIsEnumerable.call(t,n),t[n]):void 0},o.setDescs=D=function(t,n){v(t);for(var r,e=o.getKeys(n),i=e.length,u=0;i>u;)o.setDesc(t,r=e[u++],n[r]);return t}),i(i.S+i.F*!u,"Object",{getOwnPropertyDescriptor:o.getDesc,defineProperty:o.setDesc,defineProperties:D});var k="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),L=k.concat("length","prototype"),T=k.length,R=function(){var t,n=s("iframe"),r=T,e=">";for(n.style.display="none",a.appendChild(n),n.src="javascript:",t=n.contentWindow.document,t.open(),t.write("<script>document.F=Object</script"+e),t.close(),R=t.F;r--;)delete R.prototype[k[r]];return R()},C=function(t,n){return function(r){var e,o=m(r),i=0,u=[];for(e in o)e!=_&&f(o,e)&&u.push(e);for(;n>i;)f(o,e=t[i++])&&(~O(u,e)||u.push(e));return u}},G=function(){};i(i.S,"Object",{getPrototypeOf:o.getProto=o.getProto||function(t){return t=d(t),f(t,_)?t[_]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?M:null},getOwnPropertyNames:o.getNames=o.getNames||C(L,L.length,!0),create:o.create=o.create||function(t,n){var r;return null!==t?(G.prototype=v(t),r=new G,G.prototype=null,r[_]=t):r=R(),void 0===n?r:D(r,n)},keys:o.getKeys=o.getKeys||C(k,T,!1)});var W=function(t,n,r){if(!(n in I)){for(var e=[],o=0;n>o;o++)e[o]="a["+o+"]";I[n]=Function("F,a","return new F("+e.join(",")+")")}return I[n](t,r)};i(i.P,"Function",{bind:function(t){var n=g(this),r=j.call(arguments,1),e=function(){var o=r.concat(j.call(arguments));return this instanceof e?W(n,o.length,o):h(n,o,t)};return y(n.prototype)&&(e.prototype=n.prototype),e}}),i(i.P+i.F*p(function(){a&&j.call(a)}),"Array",{slice:function(t,n){var r=w(this.length),e=l(this);if(n=void 0===n?r:n,"Array"==e)return j.call(this,t,n);for(var o=b(t,r),i=b(n,r),u=w(i-o),c=Array(u),a=0;u>a;a++)c[a]="String"==e?this.charAt(o+a):this[o+a];return c}}),i(i.P+i.F*(x!=Object),"Array",{join:function(t){return N.call(x(this),void 0===t?",":t)}}),i(i.S,"Array",{isArray:t(36)});var U=function(t){return function(n,r){g(n);var e=x(this),o=w(e.length),i=t?o-1:0,u=t?-1:1;if(arguments.length<2)for(;;){if(i in e){r=e[i],i+=u;break}if(i+=u,t?0>i:i>=o)throw TypeError("Reduce of empty array with no initial value")}for(;t?i>=0:o>i;i+=u)i in e&&(r=n(r,e[i],i,this));return r}},K=function(t){return function(n){return t(this,n,arguments[1])}};i(i.P,"Array",{forEach:o.each=o.each||K(E(0)),map:K(E(1)),filter:K(E(2)),some:K(E(3)),every:K(E(4)),reduce:U(!1),reduceRight:U(!0),indexOf:K(O),lastIndexOf:function(t,n){var r=m(this),e=w(r.length),o=e-1;for(arguments.length>1&&(o=Math.min(o,S(n))),0>o&&(o=w(e+o));o>=0;o--)if(o in r&&r[o]===t)return o;return-1}}),i(i.S,"Date",{now:function(){return+new Date}});var z=function(t){return t>9?t:"0"+t};i(i.P+i.F*(p(function(){return"0385-07-25T07:06:39.999Z"!=new Date(-5e13-1).toISOString()})||!p(function(){new Date(NaN).toISOString()})),"Date",{toISOString:function(){if(!isFinite(this))throw RangeError("Invalid time value");var t=this,n=t.getUTCFullYear(),r=t.getUTCMilliseconds(),e=0>n?"-":n>9999?"+":"";return e+("00000"+Math.abs(n)).slice(e?-6:-4)+"-"+z(t.getUTCMonth()+1)+"-"+z(t.getUTCDate())+"T"+z(t.getUTCHours())+":"+z(t.getUTCMinutes())+":"+z(t.getUTCSeconds())+"."+(r>99?r:"0"+z(r))+"Z"}})},{11:11,19:19,2:2,20:20,22:22,24:24,30:30,32:32,33:33,34:34,36:36,38:38,4:4,46:46,59:59,7:7,76:76,77:77,78:78,79:79,8:8,80:80,82:82}],86:[function(t,n,r){var e=t(22);e(e.P,"Array",{copyWithin:t(5)}),t(3)("copyWithin")},{22:22,3:3,5:5}],87:[function(t,n,r){var e=t(22);e(e.P,"Array",{fill:t(6)}),t(3)("fill")},{22:22,3:3,6:6}],88:[function(t,n,r){"use strict";var e=t(22),o=t(8)(6),i="findIndex",u=!0;i in[]&&Array(1)[i](function(){u=!1}),e(e.P+e.F*u,"Array",{findIndex:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),t(3)(i)},{22:22,3:3,8:8}],89:[function(t,n,r){"use strict";var e=t(22),o=t(8)(5),i="find",u=!0;i in[]&&Array(1)[i](function(){u=!1}),e(e.P+e.F*u,"Array",{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),t(3)(i)},{22:22,3:3,8:8}],90:[function(t,n,r){"use strict";var e=t(17),o=t(22),i=t(80),u=t(40),c=t(35),a=t(79),s=t(84);o(o.S+o.F*!t(43)(function(t){Array.from(t)}),"Array",{from:function(t){var n,r,o,f,l=i(t),h="function"==typeof this?this:Array,p=arguments,v=p.length,g=v>1?p[1]:void 0,y=void 0!==g,d=0,m=s(l);if(y&&(g=e(g,v>2?p[2]:void 0,2)),void 0==m||h==Array&&c(m))for(n=a(l.length),r=new h(n);n>d;d++)r[d]=y?g(l[d],d):l[d];else for(f=m.call(l),r=new h;!(o=f.next()).done;d++)r[d]=y?u(f,g,[o.value,d],!0):o.value;return r.length=d,r}})},{17:17,22:22,35:35,40:40,43:43,79:79,80:80,84:84}],91:[function(t,n,r){"use strict";var e=t(3),o=t(44),i=t(45),u=t(78);n.exports=t(42)(Array,"Array",function(t,n){this._t=u(t),this._i=0,this._k=n},function(){var t=this._t,n=this._k,r=this._i++;return!t||r>=t.length?(this._t=void 0,o(1)):"keys"==n?o(0,r):"values"==n?o(0,t[r]):o(0,[r,t[r]])},"values"),i.Arguments=i.Array,e("keys"),e("values"),e("entries")},{3:3,42:42,44:44,45:45,78:78}],92:[function(t,n,r){"use strict";var e=t(22);e(e.S+e.F*t(24)(function(){function t(){}return!(Array.of.call(t)instanceof t)}),"Array",{of:function(){for(var t=0,n=arguments,r=n.length,e=new("function"==typeof this?this:Array)(r);r>t;)e[t]=n[t++];return e.length=r,e}})},{22:22,24:24}],93:[function(t,n,r){t(65)("Array")},{65:65}],94:[function(t,n,r){"use strict";var e=t(46),o=t(38),i=t(83)("hasInstance"),u=Function.prototype;i in u||e.setDesc(u,i,{value:function(t){if("function"!=typeof this||!o(t))return!1;if(!o(this.prototype))return t instanceof this;for(;t=e.getProto(t);)if(this.prototype===t)return!0;return!1}})},{38:38,46:46,83:83}],95:[function(t,n,r){var e=t(46).setDesc,o=t(59),i=t(30),u=Function.prototype,c=/^\s*function ([^ (]*)/,a="name";a in u||t(19)&&e(u,a,{configurable:!0,get:function(){var t=(""+this).match(c),n=t?t[1]:"";return i(this,a)||e(this,a,o(5,n)),n}})},{19:19,30:30,46:46,59:59}],96:[function(t,n,r){"use strict";var e=t(12);t(15)("Map",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{get:function(t){var n=e.getEntry(this,t);return n&&n.v},set:function(t,n){return e.def(this,0===t?0:t,n)}},e,!0)},{12:12,15:15}],97:[function(t,n,r){var e=t(22),o=t(50),i=Math.sqrt,u=Math.acosh;e(e.S+e.F*!(u&&710==Math.floor(u(Number.MAX_VALUE))),"Math",{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?Math.log(t)+Math.LN2:o(t-1+i(t-1)*i(t+1))}})},{22:22,50:50}],98:[function(t,n,r){function e(t){return isFinite(t=+t)&&0!=t?0>t?-e(-t):Math.log(t+Math.sqrt(t*t+1)):t}var o=t(22);o(o.S,"Math",{asinh:e})},{22:22}],99:[function(t,n,r){var e=t(22);e(e.S,"Math",{atanh:function(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}})},{22:22}],100:[function(t,n,r){var e=t(22),o=t(51);e(e.S,"Math",{cbrt:function(t){return o(t=+t)*Math.pow(Math.abs(t),1/3)}})},{22:22,51:51}],101:[function(t,n,r){var e=t(22);e(e.S,"Math",{clz32:function(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}})},{22:22}],102:[function(t,n,r){var e=t(22),o=Math.exp;e(e.S,"Math",{cosh:function(t){return(o(t=+t)+o(-t))/2}})},{22:22}],103:[function(t,n,r){var e=t(22);e(e.S,"Math",{expm1:t(49)})},{22:22,49:49}],104:[function(t,n,r){var e=t(22),o=t(51),i=Math.pow,u=i(2,-52),c=i(2,-23),a=i(2,127)*(2-c),s=i(2,-126),f=function(t){return t+1/u-1/u};e(e.S,"Math",{fround:function(t){var n,r,e=Math.abs(t),i=o(t);return s>e?i*f(e/s/c)*s*c:(n=(1+c/u)*e,r=n-(n-e),r>a||r!=r?i*(1/0):i*r)}})},{22:22,51:51}],105:[function(t,n,r){var e=t(22),o=Math.abs;e(e.S,"Math",{hypot:function(t,n){for(var r,e,i=0,u=0,c=arguments,a=c.length,s=0;a>u;)r=o(c[u++]),r>s?(e=s/r,i=i*e*e+1,s=r):r>0?(e=r/s,i+=e*e):i+=r;return s===1/0?1/0:s*Math.sqrt(i)}})},{22:22}],106:[function(t,n,r){var e=t(22),o=Math.imul;e(e.S+e.F*t(24)(function(){return-5!=o(4294967295,5)||2!=o.length}),"Math",{imul:function(t,n){var r=65535,e=+t,o=+n,i=r&e,u=r&o;return 0|i*u+((r&e>>>16)*u+i*(r&o>>>16)<<16>>>0)}})},{22:22,24:24}],107:[function(t,n,r){var e=t(22);e(e.S,"Math",{log10:function(t){return Math.log(t)/Math.LN10}})},{22:22}],108:[function(t,n,r){var e=t(22);e(e.S,"Math",{log1p:t(50)})},{22:22,50:50}],109:[function(t,n,r){var e=t(22);e(e.S,"Math",{log2:function(t){return Math.log(t)/Math.LN2}})},{22:22}],110:[function(t,n,r){var e=t(22);e(e.S,"Math",{sign:t(51)})},{22:22,51:51}],111:[function(t,n,r){var e=t(22),o=t(49),i=Math.exp;e(e.S+e.F*t(24)(function(){return-2e-17!=!Math.sinh(-2e-17)}),"Math",{sinh:function(t){return Math.abs(t=+t)<1?(o(t)-o(-t))/2:(i(t-1)-i(-t-1))*(Math.E/2)}})},{22:22,24:24,49:49}],112:[function(t,n,r){var e=t(22),o=t(49),i=Math.exp;e(e.S,"Math",{tanh:function(t){var n=o(t=+t),r=o(-t);return n==1/0?1:r==1/0?-1:(n-r)/(i(t)+i(-t))}})},{22:22,49:49}],113:[function(t,n,r){var e=t(22);e(e.S,"Math",{trunc:function(t){return(t>0?Math.floor:Math.ceil)(t)}})},{22:22}],114:[function(t,n,r){"use strict";var e=t(46),o=t(29),i=t(30),u=t(11),c=t(81),a=t(24),s=t(74).trim,f="Number",l=o[f],h=l,p=l.prototype,v=u(e.create(p))==f,g="trim"in String.prototype,y=function(t){ +var n=c(t,!1);if("string"==typeof n&&n.length>2){n=g?n.trim():s(n,3);var r,e,o,i=n.charCodeAt(0);if(43===i||45===i){if(r=n.charCodeAt(2),88===r||120===r)return NaN}else if(48===i){switch(n.charCodeAt(1)){case 66:case 98:e=2,o=49;break;case 79:case 111:e=8,o=55;break;default:return+n}for(var u,a=n.slice(2),f=0,l=a.length;l>f;f++)if(u=a.charCodeAt(f),48>u||u>o)return NaN;return parseInt(a,e)}}return+n};l(" 0o1")&&l("0b1")&&!l("+0x1")||(l=function(t){var n=arguments.length<1?0:t,r=this;return r instanceof l&&(v?a(function(){p.valueOf.call(r)}):u(r)!=f)?new h(y(n)):y(n)},e.each.call(t(19)?e.getNames(h):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),function(t){i(h,t)&&!i(l,t)&&e.setDesc(l,t,e.getDesc(h,t))}),l.prototype=p,p.constructor=l,t(61)(o,f,l))},{11:11,19:19,24:24,29:29,30:30,46:46,61:61,74:74,81:81}],115:[function(t,n,r){var e=t(22);e(e.S,"Number",{EPSILON:Math.pow(2,-52)})},{22:22}],116:[function(t,n,r){var e=t(22),o=t(29).isFinite;e(e.S,"Number",{isFinite:function(t){return"number"==typeof t&&o(t)}})},{22:22,29:29}],117:[function(t,n,r){var e=t(22);e(e.S,"Number",{isInteger:t(37)})},{22:22,37:37}],118:[function(t,n,r){var e=t(22);e(e.S,"Number",{isNaN:function(t){return t!=t}})},{22:22}],119:[function(t,n,r){var e=t(22),o=t(37),i=Math.abs;e(e.S,"Number",{isSafeInteger:function(t){return o(t)&&i(t)<=9007199254740991}})},{22:22,37:37}],120:[function(t,n,r){var e=t(22);e(e.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},{22:22}],121:[function(t,n,r){var e=t(22);e(e.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},{22:22}],122:[function(t,n,r){var e=t(22);e(e.S,"Number",{parseFloat:parseFloat})},{22:22}],123:[function(t,n,r){var e=t(22);e(e.S,"Number",{parseInt:parseInt})},{22:22}],124:[function(t,n,r){var e=t(22);e(e.S+e.F,"Object",{assign:t(53)})},{22:22,53:53}],125:[function(t,n,r){var e=t(38);t(54)("freeze",function(t){return function(n){return t&&e(n)?t(n):n}})},{38:38,54:54}],126:[function(t,n,r){var e=t(78);t(54)("getOwnPropertyDescriptor",function(t){return function(n,r){return t(e(n),r)}})},{54:54,78:78}],127:[function(t,n,r){t(54)("getOwnPropertyNames",function(){return t(28).get})},{28:28,54:54}],128:[function(t,n,r){var e=t(80);t(54)("getPrototypeOf",function(t){return function(n){return t(e(n))}})},{54:54,80:80}],129:[function(t,n,r){var e=t(38);t(54)("isExtensible",function(t){return function(n){return e(n)?t?t(n):!0:!1}})},{38:38,54:54}],130:[function(t,n,r){var e=t(38);t(54)("isFrozen",function(t){return function(n){return e(n)?t?t(n):!1:!0}})},{38:38,54:54}],131:[function(t,n,r){var e=t(38);t(54)("isSealed",function(t){return function(n){return e(n)?t?t(n):!1:!0}})},{38:38,54:54}],132:[function(t,n,r){var e=t(22);e(e.S,"Object",{is:t(63)})},{22:22,63:63}],133:[function(t,n,r){var e=t(80);t(54)("keys",function(t){return function(n){return t(e(n))}})},{54:54,80:80}],134:[function(t,n,r){var e=t(38);t(54)("preventExtensions",function(t){return function(n){return t&&e(n)?t(n):n}})},{38:38,54:54}],135:[function(t,n,r){var e=t(38);t(54)("seal",function(t){return function(n){return t&&e(n)?t(n):n}})},{38:38,54:54}],136:[function(t,n,r){var e=t(22);e(e.S,"Object",{setPrototypeOf:t(64).set})},{22:22,64:64}],137:[function(t,n,r){"use strict";var e=t(10),o={};o[t(83)("toStringTag")]="z",o+""!="[object z]"&&t(61)(Object.prototype,"toString",function(){return"[object "+e(this)+"]"},!0)},{10:10,61:61,83:83}],138:[function(t,n,r){"use strict";var e,o=t(46),i=t(48),u=t(29),c=t(17),a=t(10),s=t(22),f=t(38),l=t(4),h=t(2),p=t(69),v=t(27),g=t(64).set,y=t(63),d=t(83)("species"),m=t(68),S=t(52),b="Promise",w=u.process,x="process"==a(w),_=u[b],E=function(t){var n=new _(function(){});return t&&(n.constructor=Object),_.resolve(n)===n},O=function(){function n(t){var r=new _(t);return g(r,n.prototype),r}var r=!1;try{if(r=_&&_.resolve&&E(),g(n,_),n.prototype=o.create(_.prototype,{constructor:{value:n}}),n.resolve(5).then(function(){})instanceof n||(r=!1),r&&t(19)){var e=!1;_.resolve(o.setDesc({},"then",{get:function(){e=!0}})),r=e}}catch(i){r=!1}return r}(),M=function(t,n){return i&&t===_&&n===e?!0:y(t,n)},P=function(t){var n=l(t)[d];return void 0!=n?n:t},j=function(t){var n;return f(t)&&"function"==typeof(n=t.then)?n:!1},N=function(t){var n,r;this.promise=new t(function(t,e){if(void 0!==n||void 0!==r)throw TypeError("Bad Promise constructor");n=t,r=e}),this.resolve=h(n),this.reject=h(r)},F=function(t){try{t()}catch(n){return{error:n}}},A=function(t,n){if(!t.n){t.n=!0;var r=t.c;S(function(){for(var e=t.v,o=1==t.s,i=0,c=function(n){var r,i,u=o?n.ok:n.fail,c=n.resolve,a=n.reject;try{u?(o||(t.h=!0),r=u===!0?e:u(e),r===n.promise?a(TypeError("Promise-chain cycle")):(i=j(r))?i.call(r,c,a):c(r)):a(e)}catch(s){a(s)}};r.length>i;)c(r[i++]);r.length=0,t.n=!1,n&&setTimeout(function(){var n,r,o=t.p;D(o)&&(x?w.emit("unhandledRejection",e,o):(n=u.onunhandledrejection)?n({promise:o,reason:e}):(r=u.console)&&r.error&&r.error("Unhandled promise rejection",e)),t.a=void 0},1)})}},D=function(t){var n,r=t._d,e=r.a||r.c,o=0;if(r.h)return!1;for(;e.length>o;)if(n=e[o++],n.fail||!D(n.promise))return!1;return!0},I=function(t){var n=this;n.d||(n.d=!0,n=n.r||n,n.v=t,n.s=2,n.a=n.c.slice(),A(n,!0))},k=function(t){var n,r=this;if(!r.d){r.d=!0,r=r.r||r;try{if(r.p===t)throw TypeError("Promise can't be resolved itself");(n=j(t))?S(function(){var e={r:r,d:!1};try{n.call(t,c(k,e,1),c(I,e,1))}catch(o){I.call(e,o)}}):(r.v=t,r.s=1,A(r,!1))}catch(e){I.call({r:r,d:!1},e)}}};O||(_=function(t){h(t);var n=this._d={p:p(this,_,b),c:[],a:void 0,s:0,d:!1,v:void 0,h:!1,n:!1};try{t(c(k,n,1),c(I,n,1))}catch(r){I.call(n,r)}},t(60)(_.prototype,{then:function(t,n){var r=new N(m(this,_)),e=r.promise,o=this._d;return r.ok="function"==typeof t?t:!0,r.fail="function"==typeof n&&n,o.c.push(r),o.a&&o.a.push(r),o.s&&A(o,!1),e},"catch":function(t){return this.then(void 0,t)}})),s(s.G+s.W+s.F*!O,{Promise:_}),t(66)(_,b),t(65)(b),e=t(16)[b],s(s.S+s.F*!O,b,{reject:function(t){var n=new N(this),r=n.reject;return r(t),n.promise}}),s(s.S+s.F*(!O||E(!0)),b,{resolve:function(t){if(t instanceof _&&M(t.constructor,this))return t;var n=new N(this),r=n.resolve;return r(t),n.promise}}),s(s.S+s.F*!(O&&t(43)(function(t){_.all(t)["catch"](function(){})})),b,{all:function(t){var n=P(this),r=new N(n),e=r.resolve,i=r.reject,u=[],c=F(function(){v(t,!1,u.push,u);var r=u.length,c=Array(r);r?o.each.call(u,function(t,o){var u=!1;n.resolve(t).then(function(t){u||(u=!0,c[o]=t,--r||e(c))},i)}):e(c)});return c&&i(c.error),r.promise},race:function(t){var n=P(this),r=new N(n),e=r.reject,o=F(function(){v(t,!1,function(t){n.resolve(t).then(r.resolve,e)})});return o&&e(o.error),r.promise}})},{10:10,16:16,17:17,19:19,2:2,22:22,27:27,29:29,38:38,4:4,43:43,46:46,48:48,52:52,60:60,63:63,64:64,65:65,66:66,68:68,69:69,83:83}],139:[function(t,n,r){var e=t(22),o=Function.apply;e(e.S,"Reflect",{apply:function(t,n,r){return o.call(t,n,r)}})},{22:22}],140:[function(t,n,r){var e=t(46),o=t(22),i=t(2),u=t(4),c=t(38),a=Function.bind||t(16).Function.prototype.bind;o(o.S+o.F*t(24)(function(){function t(){}return!(Reflect.construct(function(){},[],t)instanceof t)}),"Reflect",{construct:function(t,n){i(t);var r=arguments.length<3?t:i(arguments[2]);if(t==r){if(void 0!=n)switch(u(n).length){case 0:return new t;case 1:return new t(n[0]);case 2:return new t(n[0],n[1]);case 3:return new t(n[0],n[1],n[2]);case 4:return new t(n[0],n[1],n[2],n[3])}var o=[null];return o.push.apply(o,n),new(a.apply(t,o))}var s=r.prototype,f=e.create(c(s)?s:Object.prototype),l=Function.apply.call(t,f,n);return c(l)?l:f}})},{16:16,2:2,22:22,24:24,38:38,4:4,46:46}],141:[function(t,n,r){var e=t(46),o=t(22),i=t(4);o(o.S+o.F*t(24)(function(){Reflect.defineProperty(e.setDesc({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function(t,n,r){i(t);try{return e.setDesc(t,n,r),!0}catch(o){return!1}}})},{22:22,24:24,4:4,46:46}],142:[function(t,n,r){var e=t(22),o=t(46).getDesc,i=t(4);e(e.S,"Reflect",{deleteProperty:function(t,n){var r=o(i(t),n);return r&&!r.configurable?!1:delete t[n]}})},{22:22,4:4,46:46}],143:[function(t,n,r){"use strict";var e=t(22),o=t(4),i=function(t){this._t=o(t),this._i=0;var n,r=this._k=[];for(n in t)r.push(n)};t(41)(i,"Object",function(){var t,n=this,r=n._k;do if(n._i>=r.length)return{value:void 0,done:!0};while(!((t=r[n._i++])in n._t));return{value:t,done:!1}}),e(e.S,"Reflect",{enumerate:function(t){return new i(t)}})},{22:22,4:4,41:41}],144:[function(t,n,r){var e=t(46),o=t(22),i=t(4);o(o.S,"Reflect",{getOwnPropertyDescriptor:function(t,n){return e.getDesc(i(t),n)}})},{22:22,4:4,46:46}],145:[function(t,n,r){var e=t(22),o=t(46).getProto,i=t(4);e(e.S,"Reflect",{getPrototypeOf:function(t){return o(i(t))}})},{22:22,4:4,46:46}],146:[function(t,n,r){function e(t,n){var r,u,s=arguments.length<3?t:arguments[2];return a(t)===s?t[n]:(r=o.getDesc(t,n))?i(r,"value")?r.value:void 0!==r.get?r.get.call(s):void 0:c(u=o.getProto(t))?e(u,n,s):void 0}var o=t(46),i=t(30),u=t(22),c=t(38),a=t(4);u(u.S,"Reflect",{get:e})},{22:22,30:30,38:38,4:4,46:46}],147:[function(t,n,r){var e=t(22);e(e.S,"Reflect",{has:function(t,n){return n in t}})},{22:22}],148:[function(t,n,r){var e=t(22),o=t(4),i=Object.isExtensible;e(e.S,"Reflect",{isExtensible:function(t){return o(t),i?i(t):!0}})},{22:22,4:4}],149:[function(t,n,r){var e=t(22);e(e.S,"Reflect",{ownKeys:t(56)})},{22:22,56:56}],150:[function(t,n,r){var e=t(22),o=t(4),i=Object.preventExtensions;e(e.S,"Reflect",{preventExtensions:function(t){o(t);try{return i&&i(t),!0}catch(n){return!1}}})},{22:22,4:4}],151:[function(t,n,r){var e=t(22),o=t(64);o&&e(e.S,"Reflect",{setPrototypeOf:function(t,n){o.check(t,n);try{return o.set(t,n),!0}catch(r){return!1}}})},{22:22,64:64}],152:[function(t,n,r){function e(t,n,r){var u,f,l=arguments.length<4?t:arguments[3],h=o.getDesc(a(t),n);if(!h){if(s(f=o.getProto(t)))return e(f,n,r,l);h=c(0)}return i(h,"value")?h.writable!==!1&&s(l)?(u=o.getDesc(l,n)||c(0),u.value=r,o.setDesc(l,n,u),!0):!1:void 0===h.set?!1:(h.set.call(l,r),!0)}var o=t(46),i=t(30),u=t(22),c=t(59),a=t(4),s=t(38);u(u.S,"Reflect",{set:e})},{22:22,30:30,38:38,4:4,46:46,59:59}],153:[function(t,n,r){var e=t(46),o=t(29),i=t(39),u=t(26),c=o.RegExp,a=c,s=c.prototype,f=/a/g,l=/a/g,h=new c(f)!==f;!t(19)||h&&!t(24)(function(){return l[t(83)("match")]=!1,c(f)!=f||c(l)==l||"/a/i"!=c(f,"i")})||(c=function(t,n){var r=i(t),e=void 0===n;return this instanceof c||!r||t.constructor!==c||!e?h?new a(r&&!e?t.source:t,n):a((r=t instanceof c)?t.source:t,r&&e?u.call(t):n):t},e.each.call(e.getNames(a),function(t){t in c||e.setDesc(c,t,{configurable:!0,get:function(){return a[t]},set:function(n){a[t]=n}})}),s.constructor=c,c.prototype=s,t(61)(o,"RegExp",c)),t(65)("RegExp")},{19:19,24:24,26:26,29:29,39:39,46:46,61:61,65:65,83:83}],154:[function(t,n,r){var e=t(46);t(19)&&"g"!=/./g.flags&&e.setDesc(RegExp.prototype,"flags",{configurable:!0,get:t(26)})},{19:19,26:26,46:46}],155:[function(t,n,r){t(25)("match",1,function(t,n){return function(r){"use strict";var e=t(this),o=void 0==r?void 0:r[n];return void 0!==o?o.call(r,e):new RegExp(r)[n](String(e))}})},{25:25}],156:[function(t,n,r){t(25)("replace",2,function(t,n,r){return function(e,o){"use strict";var i=t(this),u=void 0==e?void 0:e[n];return void 0!==u?u.call(e,i,o):r.call(String(i),e,o)}})},{25:25}],157:[function(t,n,r){t(25)("search",1,function(t,n){return function(r){"use strict";var e=t(this),o=void 0==r?void 0:r[n];return void 0!==o?o.call(r,e):new RegExp(r)[n](String(e))}})},{25:25}],158:[function(t,n,r){t(25)("split",2,function(t,n,r){return function(e,o){"use strict";var i=t(this),u=void 0==e?void 0:e[n];return void 0!==u?u.call(e,i,o):r.call(String(i),e,o)}})},{25:25}],159:[function(t,n,r){"use strict";var e=t(12);t(15)("Set",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function(t){return e.def(this,t=0===t?0:t,t)}},e)},{12:12,15:15}],160:[function(t,n,r){"use strict";var e=t(22),o=t(70)(!1);e(e.P,"String",{codePointAt:function(t){return o(this,t)}})},{22:22,70:70}],161:[function(t,n,r){"use strict";var e=t(22),o=t(79),i=t(71),u="endsWith",c=""[u];e(e.P+e.F*t(23)(u),"String",{endsWith:function(t){var n=i(this,t,u),r=arguments,e=r.length>1?r[1]:void 0,a=o(n.length),s=void 0===e?a:Math.min(o(e),a),f=String(t);return c?c.call(n,f,s):n.slice(s-f.length,s)===f}})},{22:22,23:23,71:71,79:79}],162:[function(t,n,r){var e=t(22),o=t(76),i=String.fromCharCode,u=String.fromCodePoint;e(e.S+e.F*(!!u&&1!=u.length),"String",{fromCodePoint:function(t){for(var n,r=[],e=arguments,u=e.length,c=0;u>c;){if(n=+e[c++],o(n,1114111)!==n)throw RangeError(n+" is not a valid code point");r.push(65536>n?i(n):i(((n-=65536)>>10)+55296,n%1024+56320))}return r.join("")}})},{22:22,76:76}],163:[function(t,n,r){"use strict";var e=t(22),o=t(71),i="includes";e(e.P+e.F*t(23)(i),"String",{includes:function(t){return!!~o(this,t,i).indexOf(t,arguments.length>1?arguments[1]:void 0)}})},{22:22,23:23,71:71}],164:[function(t,n,r){"use strict";var e=t(70)(!0);t(42)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,n=this._t,r=this._i;return r>=n.length?{value:void 0,done:!0}:(t=e(n,r),this._i+=t.length,{value:t,done:!1})})},{42:42,70:70}],165:[function(t,n,r){var e=t(22),o=t(78),i=t(79);e(e.S,"String",{raw:function(t){for(var n=o(t.raw),r=i(n.length),e=arguments,u=e.length,c=[],a=0;r>a;)c.push(String(n[a++])),u>a&&c.push(String(e[a]));return c.join("")}})},{22:22,78:78,79:79}],166:[function(t,n,r){var e=t(22);e(e.P,"String",{repeat:t(73)})},{22:22,73:73}],167:[function(t,n,r){"use strict";var e=t(22),o=t(79),i=t(71),u="startsWith",c=""[u];e(e.P+e.F*t(23)(u),"String",{startsWith:function(t){var n=i(this,t,u),r=arguments,e=o(Math.min(r.length>1?r[1]:void 0,n.length)),a=String(t);return c?c.call(n,a,e):n.slice(e,e+a.length)===a}})},{22:22,23:23,71:71,79:79}],168:[function(t,n,r){"use strict";t(74)("trim",function(t){return function(){return t(this,3)}})},{74:74}],169:[function(t,n,r){"use strict";var e=t(46),o=t(29),i=t(30),u=t(19),c=t(22),a=t(61),s=t(24),f=t(67),l=t(66),h=t(82),p=t(83),v=t(47),g=t(28),y=t(21),d=t(36),m=t(4),S=t(78),b=t(59),w=e.getDesc,x=e.setDesc,_=e.create,E=g.get,O=o.Symbol,M=o.JSON,P=M&&M.stringify,j=!1,N=p("_hidden"),F=e.isEnum,A=f("symbol-registry"),D=f("symbols"),I="function"==typeof O,k=Object.prototype,L=u&&s(function(){return 7!=_(x({},"a",{get:function(){return x(this,"a",{value:7}).a}})).a})?function(t,n,r){var e=w(k,n);e&&delete k[n],x(t,n,r),e&&t!==k&&x(k,n,e)}:x,T=function(t){var n=D[t]=_(O.prototype);return n._k=t,u&&j&&L(k,t,{configurable:!0,set:function(n){i(this,N)&&i(this[N],t)&&(this[N][t]=!1),L(this,t,b(1,n))}}),n},R=function(t){return"symbol"==typeof t},C=function(t,n,r){return r&&i(D,n)?(r.enumerable?(i(t,N)&&t[N][n]&&(t[N][n]=!1),r=_(r,{enumerable:b(0,!1)})):(i(t,N)||x(t,N,b(1,{})),t[N][n]=!0),L(t,n,r)):x(t,n,r)},G=function(t,n){m(t);for(var r,e=y(n=S(n)),o=0,i=e.length;i>o;)C(t,r=e[o++],n[r]);return t},W=function(t,n){return void 0===n?_(t):G(_(t),n)},U=function(t){var n=F.call(this,t);return n||!i(this,t)||!i(D,t)||i(this,N)&&this[N][t]?n:!0},K=function(t,n){var r=w(t=S(t),n);return!r||!i(D,n)||i(t,N)&&t[N][n]||(r.enumerable=!0),r},z=function(t){for(var n,r=E(S(t)),e=[],o=0;r.length>o;)i(D,n=r[o++])||n==N||e.push(n);return e},q=function(t){for(var n,r=E(S(t)),e=[],o=0;r.length>o;)i(D,n=r[o++])&&e.push(D[n]);return e},J=function(t){if(void 0!==t&&!R(t)){for(var n,r,e=[t],o=1,i=arguments;i.length>o;)e.push(i[o++]);return n=e[1],"function"==typeof n&&(r=n),(r||!d(n))&&(n=function(t,n){return r&&(n=r.call(this,t,n)),R(n)?void 0:n}),e[1]=n,P.apply(M,e)}},B=s(function(){var t=O();return"[null]"!=P([t])||"{}"!=P({a:t})||"{}"!=P(Object(t))});I||(O=function(){if(R(this))throw TypeError("Symbol is not a constructor");return T(h(arguments.length>0?arguments[0]:void 0))},a(O.prototype,"toString",function(){return this._k}),R=function(t){return t instanceof O},e.create=W,e.isEnum=U,e.getDesc=K,e.setDesc=C,e.setDescs=G,e.getNames=g.get=z,e.getSymbols=q,u&&!t(48)&&a(k,"propertyIsEnumerable",U,!0));var V={"for":function(t){return i(A,t+="")?A[t]:A[t]=O(t)},keyFor:function(t){return v(A,t)},useSetter:function(){j=!0},useSimple:function(){j=!1}};e.each.call("hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),function(t){var n=p(t);V[t]=I?n:T(n)}),j=!0,c(c.G+c.W,{Symbol:O}),c(c.S,"Symbol",V),c(c.S+c.F*!I,"Object",{create:W,defineProperty:C,defineProperties:G,getOwnPropertyDescriptor:K,getOwnPropertyNames:z,getOwnPropertySymbols:q}),M&&c(c.S+c.F*(!I||B),"JSON",{stringify:J}),l(O,"Symbol"),l(Math,"Math",!0),l(o.JSON,"JSON",!0)},{19:19,21:21,22:22,24:24,28:28,29:29,30:30,36:36,4:4,46:46,47:47,48:48,59:59,61:61,66:66,67:67,78:78,82:82,83:83}],170:[function(t,n,r){"use strict";var e=t(46),o=t(61),i=t(14),u=t(38),c=t(30),a=i.frozenStore,s=i.WEAK,f=Object.isExtensible||u,l={},h=t(15)("WeakMap",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{get:function(t){if(u(t)){if(!f(t))return a(this).get(t);if(c(t,s))return t[s][this._i]}},set:function(t,n){return i.def(this,t,n)}},i,!0,!0);7!=(new h).set((Object.freeze||Object)(l),7).get(l)&&e.each.call(["delete","has","get","set"],function(t){var n=h.prototype,r=n[t];o(n,t,function(n,e){if(u(n)&&!f(n)){var o=a(this)[t](n,e);return"set"==t?this:o}return r.call(this,n,e)})})},{14:14,15:15,30:30,38:38,46:46,61:61}],171:[function(t,n,r){"use strict";var e=t(14);t(15)("WeakSet",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function(t){return e.def(this,t,!0)}},e,!1,!0)},{14:14,15:15}],172:[function(t,n,r){"use strict";var e=t(22),o=t(7)(!0);e(e.P,"Array",{includes:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),t(3)("includes")},{22:22,3:3,7:7}],173:[function(t,n,r){var e=t(22);e(e.P,"Map",{toJSON:t(13)("Map")})},{13:13,22:22}],174:[function(t,n,r){var e=t(22),o=t(55)(!0);e(e.S,"Object",{entries:function(t){return o(t)}})},{22:22,55:55}],175:[function(t,n,r){var e=t(46),o=t(22),i=t(56),u=t(78),c=t(59);o(o.S,"Object",{getOwnPropertyDescriptors:function(t){for(var n,r,o=u(t),a=e.setDesc,s=e.getDesc,f=i(o),l={},h=0;f.length>h;)r=s(o,n=f[h++]),n in l?a(l,n,c(0,r)):l[n]=r;return l}})},{22:22,46:46,56:56,59:59,78:78}],176:[function(t,n,r){var e=t(22),o=t(55)(!1);e(e.S,"Object",{values:function(t){return o(t)}})},{22:22,55:55}],177:[function(t,n,r){var e=t(22),o=t(62)(/[\\^$*+?.()|[\]{}]/g,"\\$&");e(e.S,"RegExp",{escape:function(t){return o(t)}})},{22:22,62:62}],178:[function(t,n,r){var e=t(22);e(e.P,"Set",{toJSON:t(13)("Set")})},{13:13,22:22}],179:[function(t,n,r){"use strict";var e=t(22),o=t(70)(!0);e(e.P,"String",{at:function(t){return o(this,t)}})},{22:22,70:70}],180:[function(t,n,r){"use strict";var e=t(22),o=t(72);e(e.P,"String",{padLeft:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0,!0)}})},{22:22,72:72}],181:[function(t,n,r){"use strict";var e=t(22),o=t(72);e(e.P,"String",{padRight:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0,!1)}})},{22:22,72:72}],182:[function(t,n,r){"use strict";t(74)("trimLeft",function(t){return function(){return t(this,1)}})},{74:74}],183:[function(t,n,r){"use strict";t(74)("trimRight",function(t){return function(){return t(this,2)}})},{74:74}],184:[function(t,n,r){var e=t(46),o=t(22),i=t(17),u=t(16).Array||Array,c={},a=function(t,n){e.each.call(t.split(","),function(t){void 0==n&&t in u?c[t]=u[t]:t in[]&&(c[t]=i(Function.call,[][t],n))})};a("pop,reverse,shift,keys,values,entries",1),a("indexOf,every,some,forEach,map,filter,find,findIndex,includes",3),a("join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill"),o(o.S,"Array",c)},{16:16,17:17,22:22,46:46}],185:[function(t,n,r){t(91);var e=t(29),o=t(31),i=t(45),u=t(83)("iterator"),c=e.NodeList,a=e.HTMLCollection,s=c&&c.prototype,f=a&&a.prototype,l=i.NodeList=i.HTMLCollection=i.Array;s&&!s[u]&&o(s,u,l),f&&!f[u]&&o(f,u,l)},{29:29,31:31,45:45,83:83,91:91}],186:[function(t,n,r){var e=t(22),o=t(75);e(e.G+e.B,{setImmediate:o.set,clearImmediate:o.clear})},{22:22,75:75}],187:[function(t,n,r){var e=t(29),o=t(22),i=t(33),u=t(57),c=e.navigator,a=!!c&&/MSIE .\./.test(c.userAgent),s=function(t){return a?function(n,r){return t(i(u,[].slice.call(arguments,2),"function"==typeof n?n:Function(n)),r)}:t};o(o.G+o.B+o.F*a,{setTimeout:s(e.setTimeout),setInterval:s(e.setInterval)})},{22:22,29:29,33:33,57:57}],188:[function(t,n,r){t(85),t(169),t(124),t(132),t(136),t(137),t(125),t(135),t(134),t(130),t(131),t(129),t(126),t(128),t(133),t(127),t(95),t(94),t(114),t(115),t(116),t(117),t(118),t(119),t(120),t(121),t(122),t(123),t(97),t(98),t(99),t(100),t(101),t(102),t(103),t(104),t(105),t(106),t(107),t(108),t(109),t(110),t(111),t(112),t(113),t(162),t(165),t(168),t(164),t(160),t(161),t(163),t(166),t(167),t(90),t(92),t(91),t(93),t(86),t(87),t(89),t(88),t(153),t(154),t(155),t(156),t(157),t(158),t(138),t(96),t(159),t(170),t(171),t(139),t(140),t(141),t(142),t(143),t(146),t(144),t(145),t(147),t(148),t(149),t(150),t(152),t(151),t(172),t(179),t(180),t(181),t(182),t(183),t(177),t(175),t(176),t(174),t(173),t(178),t(184),t(187),t(186),t(185),n.exports=t(16)},{100:100,101:101,102:102,103:103,104:104,105:105,106:106,107:107,108:108,109:109,110:110,111:111,112:112,113:113,114:114,115:115,116:116,117:117,118:118,119:119,120:120,121:121,122:122,123:123,124:124,125:125,126:126,127:127,128:128,129:129,130:130,131:131,132:132,133:133,134:134,135:135,136:136,137:137,138:138,139:139,140:140,141:141,142:142,143:143,144:144,145:145,146:146,147:147,148:148,149:149,150:150,151:151,152:152,153:153,154:154,155:155,156:156,157:157,158:158,159:159,16:16,160:160,161:161,162:162,163:163,164:164,165:165,166:166,167:167,168:168,169:169,170:170,171:171,172:172,173:173,174:174,175:175,176:176,177:177,178:178,179:179,180:180,181:181,182:182,183:183,184:184,185:185,186:186,187:187,85:85,86:86,87:87,88:88,89:89,90:90,91:91,92:92,93:93,94:94,95:95,96:96,97:97,98:98,99:99}],189:[function(t,n,r){(function(t){!function(t){"use strict";function r(t,n,r,e){var i=Object.create((n||o).prototype),u=new p(e||[]);return i._invoke=f(t,r,u),i}function e(t,n,r){try{return{type:"normal",arg:t.call(n,r)}}catch(e){return{type:"throw",arg:e}}}function o(){}function i(){}function u(){}function c(t){["next","throw","return"].forEach(function(n){t[n]=function(t){return this._invoke(n,t)}})}function a(t){this.arg=t}function s(t){function n(n,r){var e=t[n](r),u=e.value;return u instanceof a?Promise.resolve(u.arg).then(o,i):Promise.resolve(u).then(function(t){return e.value=t,e})}function r(t,r){function o(){return n(t,r)}return e=e?e.then(o,o):new Promise(function(t){t(o())})}"object"==typeof process&&process.domain&&(n=process.domain.bind(n));var e,o=n.bind(t,"next"),i=n.bind(t,"throw");n.bind(t,"return");this._invoke=r}function f(t,n,r){var o=w;return function(i,u){if(o===_)throw new Error("Generator is already running");if(o===E){if("throw"===i)throw u;return g()}for(;;){var c=r.delegate;if(c){if("return"===i||"throw"===i&&c.iterator[i]===y){r.delegate=null;var a=c.iterator["return"];if(a){var s=e(a,c.iterator,u);if("throw"===s.type){i="throw",u=s.arg;continue}}if("return"===i)continue}var s=e(c.iterator[i],c.iterator,u);if("throw"===s.type){r.delegate=null,i="throw",u=s.arg;continue}i="next",u=y;var f=s.arg;if(!f.done)return o=x,f;r[c.resultName]=f.value,r.next=c.nextLoc,r.delegate=null}if("next"===i)o===x?r.sent=u:r.sent=y;else if("throw"===i){if(o===w)throw o=E,u;r.dispatchException(u)&&(i="next",u=y)}else"return"===i&&r.abrupt("return",u);o=_;var s=e(t,n,r);if("normal"===s.type){o=r.done?E:x;var f={value:s.arg,done:r.done};if(s.arg!==O)return f;r.delegate&&"next"===i&&(u=y)}else"throw"===s.type&&(o=E,i="throw",u=s.arg)}}}function l(t){var n={tryLoc:t[0]};1 in t&&(n.catchLoc=t[1]),2 in t&&(n.finallyLoc=t[2],n.afterLoc=t[3]),this.tryEntries.push(n)}function h(t){var n=t.completion||{};n.type="normal",delete n.arg,t.completion=n}function p(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(l,this),this.reset(!0)}function v(t){if(t){var n=t[m];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,e=function o(){for(;++r<t.length;)if(d.call(t,r))return o.value=t[r],o.done=!1,o;return o.value=y,o.done=!0,o};return e.next=e}}return{next:g}}function g(){return{value:y,done:!0}}var y,d=Object.prototype.hasOwnProperty,m="function"==typeof Symbol&&Symbol.iterator||"@@iterator",S="object"==typeof n,b=t.regeneratorRuntime;if(b)return void(S&&(n.exports=b));b=t.regeneratorRuntime=S?n.exports:{},b.wrap=r;var w="suspendedStart",x="suspendedYield",_="executing",E="completed",O={},M=u.prototype=o.prototype;i.prototype=M.constructor=u,u.constructor=i,i.displayName="GeneratorFunction",b.isGeneratorFunction=function(t){var n="function"==typeof t&&t.constructor;return n?n===i||"GeneratorFunction"===(n.displayName||n.name):!1},b.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,u):t.__proto__=u,t.prototype=Object.create(M),t},b.awrap=function(t){return new a(t)},c(s.prototype),b.async=function(t,n,e,o){var i=new s(r(t,n,e,o));return b.isGeneratorFunction(n)?i:i.next().then(function(t){return t.done?t.value:i.next()})},c(M),M[m]=function(){return this},M.toString=function(){return"[object Generator]"},b.keys=function(t){var n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},b.values=v,p.prototype={constructor:p,reset:function(t){if(this.prev=0,this.next=0,this.sent=y,this.done=!1,this.delegate=null,this.tryEntries.forEach(h),!t)for(var n in this)"t"===n.charAt(0)&&d.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=y)},stop:function(){this.done=!0;var t=this.tryEntries[0],n=t.completion;if("throw"===n.type)throw n.arg;return this.rval},dispatchException:function(t){function n(n,e){return i.type="throw",i.arg=t,r.next=n,!!e}if(this.done)throw t;for(var r=this,e=this.tryEntries.length-1;e>=0;--e){var o=this.tryEntries[e],i=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var u=d.call(o,"catchLoc"),c=d.call(o,"finallyLoc");if(u&&c){if(this.prev<o.catchLoc)return n(o.catchLoc,!0);if(this.prev<o.finallyLoc)return n(o.finallyLoc)}else if(u){if(this.prev<o.catchLoc)return n(o.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return n(o.finallyLoc)}}}},abrupt:function(t,n){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.tryLoc<=this.prev&&d.call(e,"finallyLoc")&&this.prev<e.finallyLoc){var o=e;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=n&&n<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=t,i.arg=n,o?this.next=o.finallyLoc:this.complete(i),O},complete:function(t,n){if("throw"===t.type)throw t.arg;"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=t.arg,this.next="end"):"normal"===t.type&&n&&(this.next=n)},finish:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),h(r),O}},"catch":function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc===t){var e=r.completion;if("throw"===e.type){var o=e.arg;h(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:v(t),resultName:n,nextLoc:r},O}}}("object"==typeof t?t:"object"==typeof window?window:"object"==typeof self?self:this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1]); diff --git a/web/static/js/katex.min.js b/web/static/js/katex.min.js new file mode 100644 index 000000000..863b1e8ab --- /dev/null +++ b/web/static/js/katex.min.js @@ -0,0 +1,6 @@ +(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.katex=e()}})(function(){var e,t,i;return function h(e,t,i){function a(l,s){if(!t[l]){if(!e[l]){var p=typeof require=="function"&&require;if(!s&&p)return p(l,!0);if(r)return r(l,!0);var c=new Error("Cannot find module '"+l+"'");throw c.code="MODULE_NOT_FOUND",c}var n=t[l]={exports:{}};e[l][0].call(n.exports,function(t){var i=e[l][1][t];return a(i?i:t)},n,n.exports,h,e,t,i)}return t[l].exports}var r=typeof require=="function"&&require;for(var l=0;l<i.length;l++)a(i[l]);return a}({1:[function(e,t,i){var h=e("./src/ParseError");var a=e("./src/Settings");var r=e("./src/buildTree");var l=e("./src/parseTree");var s=e("./src/utils");var p=function(e,t,i){s.clearNode(t);var h=new a(i);var p=l(e,h);var c=r(p,e,h).toNode();t.appendChild(c)};if(typeof document!=="undefined"){if(document.compatMode!=="CSS1Compat"){typeof console!=="undefined"&&console.warn("Warning: KaTeX doesn't work in quirks mode. Make sure your "+"website has a suitable doctype.");p=function(){throw new h("KaTeX doesn't work in quirks mode.")}}}var c=function(e,t){var i=new a(t);var h=l(e,i);return r(h,e,i).toMarkup()};var n=function(e,t){var i=new a(t);return l(e,i)};t.exports={render:p,renderToString:c,__parse:n,ParseError:h}},{"./src/ParseError":5,"./src/Settings":7,"./src/buildTree":12,"./src/parseTree":21,"./src/utils":23}],2:[function(e,t,i){"use strict";function h(e){if(!e.__matchAtRelocatable){var t=e.source+"|()";var i="g"+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"");e.__matchAtRelocatable=new RegExp(t,i)}return e.__matchAtRelocatable}function a(e,t,i){if(e.global||e.sticky){throw new Error("matchAt(...): Only non-global regexes are supported")}var a=h(e);a.lastIndex=i;var r=a.exec(t);if(r[r.length-1]==null){r.length=r.length-1;return r}else{return null}}t.exports=a},{}],3:[function(e,t,i){var h=e("match-at");var a=e("./ParseError");function r(e){this._input=e}function l(e,t,i){this.text=e;this.data=t;this.position=i}var s=[/[/|@.""`0-9a-zA-Z]/,/[*+-]/,/[=<>:]/,/[,;]/,/['\^_{}]/,/[(\[]/,/[)\]?!]/,/~/,/&/,/\\\\/];var p=[/[a-zA-Z0-9`!@*()-=+\[\]'";:?\/.,]/,/[{}]/,/~/,/&/,/\\\\/];var c=/\s*/;var n=/ +|\\ +/;var o=/\\(?:[a-zA-Z]+|.)/;r.prototype._innerLex=function(e,t,i){var r=this._input;var s;if(i){s=h(c,r,e)[0];e+=s.length}else{s=h(n,r,e);if(s!==null){return new l(" ",null,e+s[0].length)}}if(e===r.length){return new l("EOF",null,e)}var p;if(p=h(o,r,e)){return new l(p[0],null,e+p[0].length)}else{for(var g=0;g<t.length;g++){var d=t[g];if(p=h(d,r,e)){return new l(p[0],null,e+p[0].length)}}}throw new a("Unexpected character: '"+r[e]+"'",this,e)};var g=/#[a-z0-9]+|[a-z]+/i;r.prototype._innerLexColor=function(e){var t=this._input;var i=h(c,t,e)[0];e+=i.length;var r;if(r=h(g,t,e)){return new l(r[0],null,e+r[0].length)}else{throw new a("Invalid color",this,e)}};var d=/(-?)\s*(\d+(?:\.\d*)?|\.\d+)\s*([a-z]{2})/;r.prototype._innerLexSize=function(e){var t=this._input;var i=h(c,t,e)[0];e+=i.length;var r;if(r=h(d,t,e)){var s=r[3];if(s!=="em"&&s!=="ex"){throw new a("Invalid unit: '"+s+"'",this,e)}return new l(r[0],{number:+(r[1]+r[2]),unit:s},e+r[0].length)}throw new a("Invalid size",this,e)};r.prototype._innerLexWhitespace=function(e){var t=this._input;var i=h(c,t,e)[0];e+=i.length;return new l(i[0],null,e)};r.prototype.lex=function(e,t){if(t==="math"){return this._innerLex(e,s,true)}else if(t==="text"){return this._innerLex(e,p,false)}else if(t==="color"){return this._innerLexColor(e)}else if(t==="size"){return this._innerLexSize(e)}else if(t==="whitespace"){return this._innerLexWhitespace(e)}};t.exports=r},{"./ParseError":5,"match-at":2}],4:[function(e,t,i){function h(e){this.style=e.style;this.color=e.color;this.size=e.size;this.phantom=e.phantom;this.font=e.font;if(e.parentStyle===undefined){this.parentStyle=e.style}else{this.parentStyle=e.parentStyle}if(e.parentSize===undefined){this.parentSize=e.size}else{this.parentSize=e.parentSize}}h.prototype.extend=function(e){var t={style:this.style,size:this.size,color:this.color,parentStyle:this.style,parentSize:this.size,phantom:this.phantom,font:this.font};for(var i in e){if(e.hasOwnProperty(i)){t[i]=e[i]}}return new h(t)};h.prototype.withStyle=function(e){return this.extend({style:e})};h.prototype.withSize=function(e){return this.extend({size:e})};h.prototype.withColor=function(e){return this.extend({color:e})};h.prototype.withPhantom=function(){return this.extend({phantom:true})};h.prototype.withFont=function(e){return this.extend({font:e})};h.prototype.reset=function(){return this.extend({})};var a={"katex-blue":"#6495ed","katex-orange":"#ffa500","katex-pink":"#ff00af","katex-red":"#df0030","katex-green":"#28ae7b","katex-gray":"gray","katex-purple":"#9d38bd","katex-blueA":"#c7e9f1","katex-blueB":"#9cdceb","katex-blueC":"#58c4dd","katex-blueD":"#29abca","katex-blueE":"#1c758a","katex-tealA":"#acead7","katex-tealB":"#76ddc0","katex-tealC":"#5cd0b3","katex-tealD":"#55c1a7","katex-tealE":"#49a88f","katex-greenA":"#c9e2ae","katex-greenB":"#a6cf8c","katex-greenC":"#83c167","katex-greenD":"#77b05d","katex-greenE":"#699c52","katex-goldA":"#f7c797","katex-goldB":"#f9b775","katex-goldC":"#f0ac5f","katex-goldD":"#e1a158","katex-goldE":"#c78d46","katex-redA":"#f7a1a3","katex-redB":"#ff8080","katex-redC":"#fc6255","katex-redD":"#e65a4c","katex-redE":"#cf5044","katex-maroonA":"#ecabc1","katex-maroonB":"#ec92ab","katex-maroonC":"#c55f73","katex-maroonD":"#a24d61","katex-maroonE":"#94424f","katex-purpleA":"#caa3e8","katex-purpleB":"#b189c6","katex-purpleC":"#9a72ac","katex-purpleD":"#715582","katex-purpleE":"#644172","katex-mintA":"#f5f9e8","katex-mintB":"#edf2df","katex-mintC":"#e0e5cc","katex-grayA":"#fdfdfd","katex-grayB":"#f7f7f7","katex-grayC":"#eeeeee","katex-grayD":"#dddddd","katex-grayE":"#cccccc","katex-grayF":"#aaaaaa","katex-grayG":"#999999","katex-grayH":"#555555","katex-grayI":"#333333","katex-kaBlue":"#314453","katex-kaGreen":"#639b24"};h.prototype.getColor=function(){if(this.phantom){return"transparent"}else{return a[this.color]||this.color}};t.exports=h},{}],5:[function(e,t,i){function h(e,t,i){var a="KaTeX parse error: "+e;if(t!==undefined&&i!==undefined){a+=" at position "+i+": ";var r=t._input;r=r.slice(0,i)+"\u0332"+r.slice(i);var l=Math.max(0,i-15);var s=i+15;a+=r.slice(l,s)}var p=new Error(a);p.name="ParseError";p.__proto__=h.prototype;p.position=i;return p}h.prototype.__proto__=Error.prototype;t.exports=h},{}],6:[function(e,t,i){var h=e("./functions");var a=e("./environments");var r=e("./Lexer");var l=e("./symbols");var s=e("./utils");var p=e("./parseData");var c=e("./ParseError");function n(e,t){this.lexer=new r(e);this.settings=t}var o=p.ParseNode;var g=p.ParseResult;function d(e,t){this.result=e;this.isFunction=t}n.prototype.expect=function(e,t){if(e.text!==t){throw new c("Expected '"+t+"', got '"+e.text+"'",this.lexer,e.position)}};n.prototype.parse=function(e){var t=this.parseInput(0,"math");return t.result};n.prototype.parseInput=function(e,t){var i=this.parseExpression(e,t,false);this.expect(i.peek,"EOF");return i};var w=["}","\\end","\\right","&","\\\\","\\cr"];n.prototype.parseExpression=function(e,t,i,h){var a=[];var r=null;while(true){r=this.lexer.lex(e,t);if(w.indexOf(r.text)!==-1){break}if(h&&r.text===h){break}var l=this.parseAtom(e,t);if(!l){if(!this.settings.throwOnError&&r.text[0]==="\\"){var s=this.handleUnsupportedCmd(r.text,t);a.push(s);e=r.position;continue}break}if(i&&l.result.type==="infix"){break}a.push(l.result);e=l.position}var p=new g(this.handleInfixNodes(a,t),e);p.peek=r;return p};n.prototype.handleInfixNodes=function(e,t){var i=-1;var a;var r;for(var l=0;l<e.length;l++){var s=e[l];if(s.type==="infix"){if(i!==-1){throw new c("only one infix operator per group",this.lexer,-1)}i=l;r=s.value.replaceWith;a=h.funcs[r]}}if(i!==-1){var p,n;var g=e.slice(0,i);var d=e.slice(i+1);if(g.length===1&&g[0].type==="ordgroup"){p=g[0]}else{p=new o("ordgroup",g,t)}if(d.length===1&&d[0].type==="ordgroup"){n=d[0]}else{n=new o("ordgroup",d,t)}var w=a.handler(r,p,n);return[new o(w.type,w,t)]}else{return e}};var u=1;n.prototype.handleSupSubscript=function(e,t,i,a){var r=this.parseGroup(e,t);if(!r){var l=this.lexer.lex(e,t);if(!this.settings.throwOnError&&l.text[0]==="\\"){return new g(this.handleUnsupportedCmd(l.text,t),l.position)}else{throw new c("Expected group after '"+i+"'",this.lexer,e)}}else if(r.isFunction){var s=h.funcs[r.result.result].greediness;if(s>u){return this.parseFunction(e,t)}else{throw new c("Got function '"+r.result.result+"' with no arguments "+"as "+a,this.lexer,e)}}else{return r.result}};n.prototype.handleUnsupportedCmd=function(e,t){var i=[];for(var h=0;h<e.length;h++){i.push(new o("textord",e[h],"text"))}var a=new o("text",{body:i,type:"text"},t);var r=new o("color",{color:this.settings.errorColor,value:[a],type:"color"},t);return r};n.prototype.parseAtom=function(e,t){var i=this.parseImplicitGroup(e,t);if(t==="text"){return i}var h;if(!i){h=e;i=undefined}else{h=i.position}var a;var r;var l;while(true){var s=this.lexer.lex(h,t);if(s.text==="\\limits"||s.text==="\\nolimits"){if(!i||i.result.type!=="op"){throw new c("Limit controls must follow a math operator",this.lexer,h)}else{var p=s.text==="\\limits";i.result.value.limits=p;i.result.value.alwaysHandleSupSub=true;h=s.position}}else if(s.text==="^"){if(a){throw new c("Double superscript",this.lexer,h)}l=this.handleSupSubscript(s.position,t,s.text,"superscript");h=l.position;a=l.result}else if(s.text==="_"){if(r){throw new c("Double subscript",this.lexer,h)}l=this.handleSupSubscript(s.position,t,s.text,"subscript");h=l.position;r=l.result}else if(s.text==="'"){var n=new o("textord","\\prime",t);var d=[n];h=s.position;while((s=this.lexer.lex(h,t)).text==="'"){d.push(n);h=s.position}a=new o("ordgroup",d,t)}else{break}}if(a||r){return new g(new o("supsub",{base:i&&i.result,sup:a,sub:r},t),h)}else{return i}};var k=["\\tiny","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"];var m=["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"];n.prototype.parseImplicitGroup=function(e,t){var i=this.parseSymbol(e,t);if(!i||!i.result){return this.parseFunction(e,t)}var h=i.result.result;var r;if(h==="\\left"){var l=this.parseFunction(e,t);r=this.parseExpression(l.position,t,false);this.expect(r.peek,"\\right");var p=this.parseFunction(r.position,t);return new g(new o("leftright",{body:r.result,left:l.result.value.value,right:p.result.value.value},t),p.position)}else if(h==="\\begin"){var n=this.parseFunction(e,t);var d=n.result.value.name;if(!a.hasOwnProperty(d)){throw new c("No such environment: "+d,this.lexer,n.result.value.namepos)}var w=a[d];var u=[null,t,d];var f=this.parseArguments(n.position,t,"\\begin{"+d+"}",w,u);u[0]=f;var v=w.handler.apply(this,u);var y=this.lexer.lex(v.position,t);this.expect(y,"\\end");var x=this.parseFunction(v.position,t);if(x.result.value.name!==d){throw new c("Mismatch: \\begin{"+d+"} matched "+"by \\end{"+x.result.value.name+"}",this.lexer,x.namepos)}v.position=x.position;return v}else if(s.contains(k,h)){r=this.parseExpression(i.result.position,t,false);return new g(new o("sizing",{size:"size"+(s.indexOf(k,h)+1),value:r.result},t),r.position)}else if(s.contains(m,h)){r=this.parseExpression(i.result.position,t,true);return new g(new o("styling",{style:h.slice(1,h.length-5),value:r.result},t),r.position)}else{return this.parseFunction(e,t)}};n.prototype.parseFunction=function(e,t){var i=this.parseGroup(e,t);if(i){if(i.isFunction){var a=i.result.result;var r=h.funcs[a];if(t==="text"&&!r.allowedInText){throw new c("Can't use function '"+a+"' in text mode",this.lexer,i.position)}var l=[a];var s=this.parseArguments(i.result.position,t,a,r,l);var p=h.funcs[a].handler.apply(this,l);return new g(new o(p.type,p,t),s)}else{return i.result}}else{return null}};n.prototype.parseArguments=function(e,t,i,a,r){var l=a.numArgs+a.numOptionalArgs;if(l===0){return e}var s=e;var p=a.greediness;var n=[s];for(var o=0;o<l;o++){var w=a.argTypes&&a.argTypes[o];var u;if(o<a.numOptionalArgs){if(w){u=this.parseSpecialGroup(s,w,t,true)}else{u=this.parseOptionalGroup(s,t)}if(!u){r.push(null);n.push(s);continue}}else{if(w){u=this.parseSpecialGroup(s,w,t)}else{u=this.parseGroup(s,t)}if(!u){var k=this.lexer.lex(s,t);if(!this.settings.throwOnError&&k.text[0]==="\\"){u=new d(new g(this.handleUnsupportedCmd(k.text,t),k.position),false)}else{throw new c("Expected group after '"+i+"'",this.lexer,e)}}}var m;if(u.isFunction){var f=h.funcs[u.result.result].greediness;if(f>p){m=this.parseFunction(s,t)}else{throw new c("Got function '"+u.result.result+"' as "+"argument to '"+i+"'",this.lexer,u.result.position-1)}}else{m=u.result}r.push(m.result);n.push(m.position);s=m.position}r.push(n);return s};n.prototype.parseSpecialGroup=function(e,t,i,h){if(t==="original"){t=i}if(t==="color"||t==="size"){var a=this.lexer.lex(e,i);if(h&&a.text!=="["){return null}this.expect(a,h?"[":"{");var r=this.lexer.lex(a.position,t);var l;if(t==="color"){l=r.text}else{l=r.data}var s=this.lexer.lex(r.position,i);this.expect(s,h?"]":"}");return new d(new g(new o(t,l,i),s.position),false)}else if(t==="text"){var p=this.lexer.lex(e,"whitespace");e=p.position}if(h){return this.parseOptionalGroup(e,t)}else{return this.parseGroup(e,t)}};n.prototype.parseGroup=function(e,t){var i=this.lexer.lex(e,t);if(i.text==="{"){var h=this.parseExpression(i.position,t,false);var a=this.lexer.lex(h.position,t);this.expect(a,"}");return new d(new g(new o("ordgroup",h.result,t),a.position),false)}else{return this.parseSymbol(e,t)}};n.prototype.parseOptionalGroup=function(e,t){var i=this.lexer.lex(e,t);if(i.text==="["){var h=this.parseExpression(i.position,t,false,"]");var a=this.lexer.lex(h.position,t);this.expect(a,"]");return new d(new g(new o("ordgroup",h.result,t),a.position),false)}else{return null}};n.prototype.parseSymbol=function(e,t){var i=this.lexer.lex(e,t);if(h.funcs[i.text]){return new d(new g(i.text,i.position),true)}else if(l[t][i.text]){return new d(new g(new o(l[t][i.text].group,i.text,t),i.position),false)}else{return null}};n.prototype.ParseNode=o;t.exports=n},{"./Lexer":3,"./ParseError":5,"./environments":15,"./functions":18,"./parseData":20,"./symbols":22,"./utils":23}],7:[function(e,t,i){function h(e,t){return e===undefined?t:e}function a(e){e=e||{};this.displayMode=h(e.displayMode,false);this.throwOnError=h(e.throwOnError,true);this.errorColor=h(e.errorColor,"#cc0000")}t.exports=a},{}],8:[function(e,t,i){function h(e,t,i,h){this.id=e;this.size=t;this.cramped=h;this.sizeMultiplier=i}h.prototype.sup=function(){return w[u[this.id]]};h.prototype.sub=function(){return w[k[this.id]]};h.prototype.fracNum=function(){return w[m[this.id]]};h.prototype.fracDen=function(){return w[f[this.id]]};h.prototype.cramp=function(){return w[v[this.id]]};h.prototype.cls=function(){return g[this.size]+(this.cramped?" cramped":" uncramped")};h.prototype.reset=function(){return d[this.size]};var a=0;var r=1;var l=2;var s=3;var p=4;var c=5;var n=6;var o=7;var g=["displaystyle textstyle","textstyle","scriptstyle","scriptscriptstyle"];var d=["reset-textstyle","reset-textstyle","reset-scriptstyle","reset-scriptscriptstyle"];var w=[new h(a,0,1,false),new h(r,0,1,true),new h(l,1,1,false),new h(s,1,1,true),new h(p,2,.7,false),new h(c,2,.7,true),new h(n,3,.5,false),new h(o,3,.5,true)];var u=[p,c,p,c,n,o,n,o];var k=[c,c,c,c,o,o,o,o];var m=[l,s,p,c,n,o,n,o];var f=[s,s,c,c,o,o,o,o];var v=[r,r,s,s,c,c,o,o];t.exports={DISPLAY:w[a],TEXT:w[l],SCRIPT:w[p],SCRIPTSCRIPT:w[n]}},{}],9:[function(e,t,i){var h=e("./domTree");var a=e("./fontMetrics");var r=e("./symbols");var l=e("./utils");var s=["\\Gamma","\\Delta","\\Theta","\\Lambda","\\Xi","\\Pi","\\Sigma","\\Upsilon","\\Phi","\\Psi","\\Omega"];var p=["\u0131","\u0237"];var c=function(e,t,i,l,s){if(r[i][e]&&r[i][e].replace){e=r[i][e].replace}var p=a.getCharacterMetrics(e,t);var c;if(p){c=new h.symbolNode(e,p.height,p.depth,p.italic,p.skew,s)}else{typeof console!=="undefined"&&console.warn("No character metrics for '"+e+"' in style '"+t+"'");c=new h.symbolNode(e,0,0,0,0,s)}if(l){c.style.color=l}return c};var n=function(e,t,i,h){if(e==="\\"||r[t][e].font==="main"){return c(e,"Main-Regular",t,i,h)}else{return c(e,"AMS-Regular",t,i,h.concat(["amsrm"]))}};var o=function(e,t,i,h,a){if(a==="mathord"){return g(e,t,i,h)}else if(a==="textord"){return c(e,"Main-Regular",t,i,h.concat(["mathrm"]))}else{throw new Error("unexpected type: "+a+" in mathDefault")}};var g=function(e,t,i,h){if(/[0-9]/.test(e.charAt(0))||l.contains(p,e)||l.contains(s,e)){return c(e,"Main-Italic",t,i,h.concat(["mainit"]))}else{return c(e,"Math-Italic",t,i,h.concat(["mathit"]))}};var d=function(e,t,i){var h=e.mode;var s=e.value;if(r[h][s]&&r[h][s].replace){s=r[h][s].replace}var n=["mord"];var d=t.getColor();var w=t.font;if(w){if(w==="mathit"||l.contains(p,s)){return g(s,h,d,n)}else{var u=x[w].fontName;if(a.getCharacterMetrics(s,u)){return c(s,u,h,d,n.concat([w]))}else{return o(s,h,d,n,i)}}}else{return o(s,h,d,n,i)}};var w=function(e){var t=0;var i=0;var h=0;if(e.children){for(var a=0;a<e.children.length;a++){if(e.children[a].height>t){t=e.children[a].height}if(e.children[a].depth>i){i=e.children[a].depth}if(e.children[a].maxFontSize>h){h=e.children[a].maxFontSize}}}e.height=t;e.depth=i;e.maxFontSize=h};var u=function(e,t,i){var a=new h.span(e,t);w(a);if(i){a.style.color=i}return a};var k=function(e){var t=new h.documentFragment(e);w(t);return t};var m=function(e,t){var i=u([],[new h.symbolNode("\u200b")]);i.style.fontSize=t/e.style.sizeMultiplier+"em";var a=u(["fontsize-ensurer","reset-"+e.size,"size5"],[i]);return a};var f=function(e,t,i,a){var r;var l;var s;if(t==="individualShift"){var p=e;e=[p[0]];r=-p[0].shift-p[0].elem.depth;l=r;for(s=1;s<p.length;s++){var c=-p[s].shift-l-p[s].elem.depth;var n=c-(p[s-1].elem.height+p[s-1].elem.depth);l=l+c;e.push({type:"kern",size:n});e.push(p[s])}}else if(t==="top"){var o=i;for(s=0;s<e.length;s++){if(e[s].type==="kern"){o-=e[s].size}else{o-=e[s].elem.height+e[s].elem.depth}}r=o}else if(t==="bottom"){r=-i}else if(t==="shift"){r=-e[0].elem.depth-i}else if(t==="firstBaseline"){r=-e[0].elem.depth}else{r=0}var g=0;for(s=0;s<e.length;s++){if(e[s].type==="elem"){g=Math.max(g,e[s].elem.maxFontSize)}}var d=m(a,g);var w=[];l=r;for(s=0;s<e.length;s++){if(e[s].type==="kern"){l+=e[s].size}else{var k=e[s].elem;var f=-k.depth-l;l+=k.height+k.depth;var v=u([],[d,k]);v.height-=f;v.depth+=f;v.style.top=f+"em";w.push(v)}}var y=u(["baseline-fix"],[d,new h.symbolNode("\u200b")]);w.push(y);var x=u(["vlist"],w);x.height=Math.max(l,x.height);x.depth=Math.max(-r,x.depth);return x};var v={size1:.5,size2:.7,size3:.8,size4:.9,size5:1,size6:1.2,size7:1.44,size8:1.73,size9:2.07,size10:2.49};var y={"\\qquad":{size:"2em",className:"qquad"},"\\quad":{size:"1em",className:"quad"},"\\enspace":{size:"0.5em",className:"enspace"},"\\;":{size:"0.277778em",className:"thickspace"},"\\:":{size:"0.22222em",className:"mediumspace"},"\\,":{size:"0.16667em",className:"thinspace"},"\\!":{size:"-0.16667em",className:"negativethinspace"}};var x={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}};t.exports={fontMap:x,makeSymbol:c,mathsym:n,makeSpan:u,makeFragment:k,makeVList:f,makeOrd:d,sizingMultiplier:v,spacingFunctions:y}},{"./domTree":14,"./fontMetrics":16,"./symbols":22,"./utils":23}],10:[function(e,t,i){var h=e("./ParseError");var a=e("./Style");var r=e("./buildCommon");var l=e("./delimiter");var s=e("./domTree");var p=e("./fontMetrics");var c=e("./utils");var n=r.makeSpan;var o=function(e,t,i){var h=[];for(var a=0;a<e.length;a++){var r=e[a];h.push(v(r,t,i));i=r}return h};var g={mathord:"mord",textord:"mord",bin:"mbin",rel:"mrel",text:"mord",open:"mopen",close:"mclose",inner:"minner",genfrac:"mord",array:"mord",spacing:"mord",punct:"mpunct",ordgroup:"mord",op:"mop",katex:"mord",overline:"mord",rule:"mord",leftright:"minner",sqrt:"mord",accent:"mord"};var d=function(e){if(e==null){return g.mathord}else if(e.type==="supsub"){return d(e.value.base)}else if(e.type==="llap"||e.type==="rlap"){return d(e.value)}else if(e.type==="color"){return d(e.value.value)}else if(e.type==="sizing"){return d(e.value.value)}else if(e.type==="styling"){return d(e.value.value)}else if(e.type==="delimsizing"){return g[e.value.delimType]}else{return g[e.type]}};var w=function(e,t){if(!e){return false}else if(e.type==="op"){return e.value.limits&&(t.style.size===a.DISPLAY.size||e.value.alwaysHandleSupSub)}else if(e.type==="accent"){return k(e.value.base)}else{return null}};var u=function(e){if(!e){return false}else if(e.type==="ordgroup"){if(e.value.length===1){return u(e.value[0])}else{return e}}else if(e.type==="color"){if(e.value.value.length===1){return u(e.value.value[0])}else{return e}}else{return e}};var k=function(e){var t=u(e);return t.type==="mathord"||t.type==="textord"||t.type==="bin"||t.type==="rel"||t.type==="inner"||t.type==="open"||t.type==="close"||t.type==="punct"};var m=function(e){return n(["sizing","reset-"+e.size,"size5",e.style.reset(),a.TEXT.cls(),"nulldelimiter"])};var f={mathord:function(e,t,i){return r.makeOrd(e,t,"mathord")},textord:function(e,t,i){return r.makeOrd(e,t,"textord")},bin:function(e,t,i){var h="mbin";var a=i;while(a&&a.type==="color"){var l=a.value.value;a=l[l.length-1]}if(!i||c.contains(["mbin","mopen","mrel","mop","mpunct"],d(a))){e.type="textord";h="mord"}return r.mathsym(e.value,e.mode,t.getColor(),[h])},rel:function(e,t,i){return r.mathsym(e.value,e.mode,t.getColor(),["mrel"])},open:function(e,t,i){return r.mathsym(e.value,e.mode,t.getColor(),["mopen"])},close:function(e,t,i){return r.mathsym(e.value,e.mode,t.getColor(),["mclose"])},inner:function(e,t,i){return r.mathsym(e.value,e.mode,t.getColor(),["minner"])},punct:function(e,t,i){return r.mathsym(e.value,e.mode,t.getColor(),["mpunct"])},ordgroup:function(e,t,i){return n(["mord",t.style.cls()],o(e.value,t.reset()))},text:function(e,t,i){return n(["text","mord",t.style.cls()],o(e.value.body,t.reset()))},color:function(e,t,i){var h=o(e.value.value,t.withColor(e.value.color),i);return new r.makeFragment(h)},supsub:function(e,t,i){if(w(e.value.base,t)){return f[e.value.base.type](e,t,i)}var h=v(e.value.base,t.reset());var l,c,o,g;if(e.value.sup){o=v(e.value.sup,t.withStyle(t.style.sup()));l=n([t.style.reset(),t.style.sup().cls()],[o])}if(e.value.sub){g=v(e.value.sub,t.withStyle(t.style.sub()));c=n([t.style.reset(),t.style.sub().cls()],[g])}var u,m;if(k(e.value.base)){u=0;m=0}else{u=h.height-p.metrics.supDrop;m=h.depth+p.metrics.subDrop}var y;if(t.style===a.DISPLAY){y=p.metrics.sup1}else if(t.style.cramped){y=p.metrics.sup3}else{y=p.metrics.sup2}var x=a.TEXT.sizeMultiplier*t.style.sizeMultiplier;var b=.5/p.metrics.ptPerEm/x+"em";var z;if(!e.value.sup){m=Math.max(m,p.metrics.sub1,g.height-.8*p.metrics.xHeight);z=r.makeVList([{type:"elem",elem:c}],"shift",m,t);z.children[0].style.marginRight=b;if(h instanceof s.symbolNode){z.children[0].style.marginLeft=-h.italic+"em"}}else if(!e.value.sub){u=Math.max(u,y,o.depth+.25*p.metrics.xHeight);z=r.makeVList([{type:"elem",elem:l}],"shift",-u,t);z.children[0].style.marginRight=b}else{u=Math.max(u,y,o.depth+.25*p.metrics.xHeight);m=Math.max(m,p.metrics.sub2);var S=p.metrics.defaultRuleThickness;if(u-o.depth-(g.height-m)<4*S){m=4*S-(u-o.depth)+g.height;var M=.8*p.metrics.xHeight-(u-o.depth);if(M>0){u+=M;m-=M}}z=r.makeVList([{type:"elem",elem:c,shift:m},{type:"elem",elem:l,shift:-u}],"individualShift",null,t);if(h instanceof s.symbolNode){z.children[0].style.marginLeft=-h.italic+"em"}z.children[0].style.marginRight=b;z.children[1].style.marginRight=b}return n([d(e.value.base)],[h,z])},genfrac:function(e,t,i){var h=t.style;if(e.value.size==="display"){h=a.DISPLAY}else if(e.value.size==="text"){h=a.TEXT}var s=h.fracNum();var c=h.fracDen();var o=v(e.value.numer,t.withStyle(s));var g=n([h.reset(),s.cls()],[o]);var d=v(e.value.denom,t.withStyle(c));var w=n([h.reset(),c.cls()],[d]);var u;if(e.value.hasBarLine){u=p.metrics.defaultRuleThickness/t.style.sizeMultiplier}else{u=0}var k;var f;var y;if(h.size===a.DISPLAY.size){k=p.metrics.num1;if(u>0){f=3*u}else{f=7*p.metrics.defaultRuleThickness}y=p.metrics.denom1}else{if(u>0){k=p.metrics.num2;f=u}else{k=p.metrics.num3;f=3*p.metrics.defaultRuleThickness}y=p.metrics.denom2}var x;if(u===0){var b=k-o.depth-(d.height-y);if(b<f){k+=.5*(f-b);y+=.5*(f-b)}x=r.makeVList([{type:"elem",elem:w,shift:y},{type:"elem",elem:g,shift:-k}],"individualShift",null,t)}else{var z=p.metrics.axisHeight;if(k-o.depth-(z+.5*u)<f){k+=f-(k-o.depth-(z+.5*u))}if(z-.5*u-(d.height-y)<f){y+=f-(z-.5*u-(d.height-y))}var S=n([t.style.reset(),a.TEXT.cls(),"frac-line"]);S.height=u;var M=-(z-.5*u);x=r.makeVList([{type:"elem",elem:w,shift:y},{type:"elem",elem:S,shift:M},{type:"elem",elem:g,shift:-k}],"individualShift",null,t)}x.height*=h.sizeMultiplier/t.style.sizeMultiplier;x.depth*=h.sizeMultiplier/t.style.sizeMultiplier;var q;if(h.size===a.DISPLAY.size){q=p.metrics.delim1}else{q=p.metrics.getDelim2(h)}var A,T;if(e.value.leftDelim==null){A=m(t)}else{A=l.customSizedDelim(e.value.leftDelim,q,true,t.withStyle(h),e.mode)}if(e.value.rightDelim==null){T=m(t)}else{T=l.customSizedDelim(e.value.rightDelim,q,true,t.withStyle(h),e.mode)}return n(["mord",t.style.reset(),h.cls()],[A,n(["mfrac"],[x]),T],t.getColor())},array:function(e,t,i){var a,l;var s=e.value.body.length;var o=0;var g=new Array(s);var d=1/p.metrics.ptPerEm;var w=5*d;var u=12*d;var k=c.deflt(e.value.arraystretch,1);var m=k*u;var f=.7*m;var y=.3*m;var x=0;for(a=0;a<e.value.body.length;++a){var b=e.value.body[a];var z=f;var S=y;if(o<b.length){o=b.length}var M=new Array(b.length);for(l=0;l<b.length;++l){var q=v(b[l],t);if(S<q.depth){S=q.depth}if(z<q.height){z=q.height}M[l]=q}var A=0;if(e.value.rowGaps[a]){A=e.value.rowGaps[a].value;switch(A.unit){case"em":A=A.number;break;case"ex":A=A.number*p.metrics.emPerEx;break;default:console.error("Can't handle unit "+A.unit);A=0}if(A>0){A+=y;if(S<A){S=A}A=0}}M.height=z;M.depth=S;x+=z;M.pos=x;x+=S+A;g[a]=M}var T=x/2+p.metrics.axisHeight;var N=e.value.cols||[];var C=[];var R;var E;for(l=0,E=0;l<o||E<N.length;++l,++E){var P=N[E]||{};var D=true;while(P.type==="separator"){if(!D){R=n(["arraycolsep"],[]);R.style.width=p.metrics.doubleRuleSep+"em";C.push(R)}if(P.separator==="|"){var L=n(["vertical-separator"],[]);L.style.height=x+"em";L.style.verticalAlign=-(x-T)+"em";C.push(L)}else{throw new h("Invalid separator type: "+P.separator)}E++;P=N[E]||{};D=false}if(l>=o){continue}var O;if(l>0||e.value.hskipBeforeAndAfter){O=c.deflt(P.pregap,w);if(O!==0){R=n(["arraycolsep"],[]);R.style.width=O+"em";C.push(R)}}var I=[];for(a=0;a<s;++a){var B=g[a];var F=B[l];if(!F){continue}var _=B.pos-T;F.depth=B.depth;F.height=B.height;I.push({type:"elem",elem:F,shift:_})}I=r.makeVList(I,"individualShift",null,t);I=n(["col-align-"+(P.align||"c")],[I]);C.push(I);if(l<o-1||e.value.hskipBeforeAndAfter){O=c.deflt(P.postgap,w);if(O!==0){R=n(["arraycolsep"],[]);R.style.width=O+"em";C.push(R)}}}g=n(["mtable"],C);return n(["mord"],[g],t.getColor())},spacing:function(e,t,i){if(e.value==="\\ "||e.value==="\\space"||e.value===" "||e.value==="~"){return n(["mord","mspace"],[r.mathsym(e.value,e.mode)])}else{return n(["mord","mspace",r.spacingFunctions[e.value].className])}},llap:function(e,t,i){var h=n(["inner"],[v(e.value.body,t.reset())]);var a=n(["fix"],[]);return n(["llap",t.style.cls()],[h,a])},rlap:function(e,t,i){var h=n(["inner"],[v(e.value.body,t.reset())]);var a=n(["fix"],[]);return n(["rlap",t.style.cls()],[h,a])},op:function(e,t,i){var h;var l;var s=false;if(e.type==="supsub"){h=e.value.sup;l=e.value.sub;e=e.value.base;s=true}var o=["\\smallint"];var g=false;if(t.style.size===a.DISPLAY.size&&e.value.symbol&&!c.contains(o,e.value.body)){g=true}var d;var w=0;var u=0;if(e.value.symbol){var k=g?"Size2-Regular":"Size1-Regular";d=r.makeSymbol(e.value.body,k,"math",t.getColor(),["op-symbol",g?"large-op":"small-op","mop"]);w=(d.height-d.depth)/2-p.metrics.axisHeight*t.style.sizeMultiplier;u=d.italic}else{var m=[];for(var f=1;f<e.value.body.length;f++){m.push(r.mathsym(e.value.body[f],e.mode))}d=n(["mop"],m,t.getColor())}if(s){d=n([],[d]);var y,x,b,z;if(h){var S=v(h,t.withStyle(t.style.sup()));y=n([t.style.reset(),t.style.sup().cls()],[S]);x=Math.max(p.metrics.bigOpSpacing1,p.metrics.bigOpSpacing3-S.depth)}if(l){var M=v(l,t.withStyle(t.style.sub()));b=n([t.style.reset(),t.style.sub().cls()],[M]);z=Math.max(p.metrics.bigOpSpacing2,p.metrics.bigOpSpacing4-M.height)}var q,A,T;if(!h){A=d.height-w;q=r.makeVList([{type:"kern",size:p.metrics.bigOpSpacing5},{type:"elem",elem:b},{type:"kern",size:z},{type:"elem",elem:d}],"top",A,t);q.children[0].style.marginLeft=-u+"em"}else if(!l){T=d.depth+w;q=r.makeVList([{type:"elem",elem:d},{type:"kern",size:x},{type:"elem",elem:y},{type:"kern",size:p.metrics.bigOpSpacing5}],"bottom",T,t);q.children[1].style.marginLeft=u+"em"}else if(!h&&!l){return d}else{T=p.metrics.bigOpSpacing5+b.height+b.depth+z+d.depth+w;q=r.makeVList([{type:"kern",size:p.metrics.bigOpSpacing5},{type:"elem",elem:b},{type:"kern",size:z},{type:"elem",elem:d},{type:"kern",size:x},{type:"elem",elem:y},{type:"kern",size:p.metrics.bigOpSpacing5}],"bottom",T,t);q.children[0].style.marginLeft=-u+"em";q.children[2].style.marginLeft=u+"em"}return n(["mop","op-limits"],[q])}else{if(e.value.symbol){d.style.top=w+"em"}return d}},katex:function(e,t,i){var h=n(["k"],[r.mathsym("K",e.mode)]);var a=n(["a"],[r.mathsym("A",e.mode)]);a.height=(a.height+.2)*.75;a.depth=(a.height-.2)*.75;var l=n(["t"],[r.mathsym("T",e.mode)]);var s=n(["e"],[r.mathsym("E",e.mode)]);s.height=s.height-.2155;s.depth=s.depth+.2155;var p=n(["x"],[r.mathsym("X",e.mode)]);return n(["katex-logo","mord"],[h,a,l,s,p],t.getColor())},overline:function(e,t,i){var h=v(e.value.body,t.withStyle(t.style.cramp()));var l=p.metrics.defaultRuleThickness/t.style.sizeMultiplier;var s=n([t.style.reset(),a.TEXT.cls(),"overline-line"]);s.height=l;s.maxFontSize=1;var c=r.makeVList([{type:"elem",elem:h},{type:"kern",size:3*l},{type:"elem",elem:s},{type:"kern",size:l}],"firstBaseline",null,t);return n(["overline","mord"],[c],t.getColor())},sqrt:function(e,t,i){var h=v(e.value.body,t.withStyle(t.style.cramp()));var s=p.metrics.defaultRuleThickness/t.style.sizeMultiplier;var c=n([t.style.reset(),a.TEXT.cls(),"sqrt-line"],[],t.getColor());c.height=s;c.maxFontSize=1;var o=s;if(t.style.id<a.TEXT.id){o=p.metrics.xHeight}var g=s+o/4;var d=(h.height+h.depth)*t.style.sizeMultiplier;var w=d+g+s;var u=n(["sqrt-sign"],[l.customSizedDelim("\\surd",w,false,t,e.mode)],t.getColor());var k=u.height+u.depth-s;if(k>h.height+h.depth+g){g=(g+k-h.height-h.depth)/2}var m=-(h.height+g+s)+u.height;u.style.top=m+"em";u.height-=m;u.depth+=m;var f;if(h.height===0&&h.depth===0){f=n()}else{f=r.makeVList([{type:"elem",elem:h},{type:"kern",size:g},{type:"elem",elem:c},{type:"kern",size:s}],"firstBaseline",null,t)}if(!e.value.index){return n(["sqrt","mord"],[u,f])}else{var y=v(e.value.index,t.withStyle(a.SCRIPTSCRIPT));var x=n([t.style.reset(),a.SCRIPTSCRIPT.cls()],[y]);var b=Math.max(u.height,f.height);var z=Math.max(u.depth,f.depth);var S=.6*(b-z);var M=r.makeVList([{type:"elem",elem:x}],"shift",-S,t);var q=n(["root"],[M]);return n(["sqrt","mord"],[q,u,f])}},sizing:function(e,t,i){var h=o(e.value.value,t.withSize(e.value.size),i);var a=n(["mord"],[n(["sizing","reset-"+t.size,e.value.size,t.style.cls()],h)]);var l=r.sizingMultiplier[e.value.size];a.maxFontSize=l*t.style.sizeMultiplier; +return a},styling:function(e,t,i){var h={display:a.DISPLAY,text:a.TEXT,script:a.SCRIPT,scriptscript:a.SCRIPTSCRIPT};var r=h[e.value.style];var l=o(e.value.value,t.withStyle(r),i);return n([t.style.reset(),r.cls()],l)},font:function(e,t,i){var h=e.value.font;return v(e.value.body,t.withFont(h),i)},delimsizing:function(e,t,i){var h=e.value.value;if(h==="."){return n([g[e.value.delimType]])}return n([g[e.value.delimType]],[l.sizedDelim(h,e.value.size,t,e.mode)])},leftright:function(e,t,i){var h=o(e.value.body,t.reset());var a=0;var r=0;for(var s=0;s<h.length;s++){a=Math.max(h[s].height,a);r=Math.max(h[s].depth,r)}a*=t.style.sizeMultiplier;r*=t.style.sizeMultiplier;var p;if(e.value.left==="."){p=m(t)}else{p=l.leftRightDelim(e.value.left,a,r,t,e.mode)}h.unshift(p);var c;if(e.value.right==="."){c=m(t)}else{c=l.leftRightDelim(e.value.right,a,r,t,e.mode)}h.push(c);return n(["minner",t.style.cls()],h,t.getColor())},rule:function(e,t,i){var h=n(["mord","rule"],[],t.getColor());var a=0;if(e.value.shift){a=e.value.shift.number;if(e.value.shift.unit==="ex"){a*=p.metrics.xHeight}}var r=e.value.width.number;if(e.value.width.unit==="ex"){r*=p.metrics.xHeight}var l=e.value.height.number;if(e.value.height.unit==="ex"){l*=p.metrics.xHeight}a/=t.style.sizeMultiplier;r/=t.style.sizeMultiplier;l/=t.style.sizeMultiplier;h.style.borderRightWidth=r+"em";h.style.borderTopWidth=l+"em";h.style.bottom=a+"em";h.width=r;h.height=l+a;h.depth=-a;return h},accent:function(e,t,i){var h=e.value.base;var a;if(e.type==="supsub"){var l=e;e=l.value.base;h=e.value.base;l.value.base=h;a=v(l,t.reset(),i)}var s=v(h,t.withStyle(t.style.cramp()));var c;if(k(h)){var o=u(h);var g=v(o,t.withStyle(t.style.cramp()));c=g.skew}else{c=0}var d=Math.min(s.height,p.metrics.xHeight);var w=r.makeSymbol(e.value.accent,"Main-Regular","math",t.getColor());w.italic=0;var m=e.value.accent==="\\vec"?"accent-vec":null;var f=n(["accent-body",m],[n([],[w])]);f=r.makeVList([{type:"elem",elem:s},{type:"kern",size:-d},{type:"elem",elem:f}],"firstBaseline",null,t);f.children[1].style.marginLeft=2*c+"em";var y=n(["mord","accent"],[f]);if(a){a.children[0]=y;a.height=Math.max(y.height,a.height);a.classes[0]="mord";return a}else{return y}},phantom:function(e,t,i){var h=o(e.value.value,t.withPhantom(),i);return new r.makeFragment(h)}};var v=function(e,t,i){if(!e){return n()}if(f[e.type]){var a=f[e.type](e,t,i);var l;if(t.style!==t.parentStyle){l=t.style.sizeMultiplier/t.parentStyle.sizeMultiplier;a.height*=l;a.depth*=l}if(t.size!==t.parentSize){l=r.sizingMultiplier[t.size]/r.sizingMultiplier[t.parentSize];a.height*=l;a.depth*=l}return a}else{throw new h("Got group of unknown type: '"+e.type+"'")}};var y=function(e,t){e=JSON.parse(JSON.stringify(e));var i=o(e,t);var h=n(["base",t.style.cls()],i);var a=n(["strut"]);var r=n(["strut","bottom"]);a.style.height=h.height+"em";r.style.height=h.height+h.depth+"em";r.style.verticalAlign=-h.depth+"em";var l=n(["katex-html"],[a,r,h]);l.setAttribute("aria-hidden","true");return l};t.exports=y},{"./ParseError":5,"./Style":8,"./buildCommon":9,"./delimiter":13,"./domTree":14,"./fontMetrics":16,"./utils":23}],11:[function(e,t,i){var h=e("./buildCommon");var a=e("./fontMetrics");var r=e("./mathMLTree");var l=e("./ParseError");var s=e("./symbols");var p=e("./utils");var c=h.makeSpan;var n=h.fontMap;var o=function(e,t){if(s[t][e]&&s[t][e].replace){e=s[t][e].replace}return new r.TextNode(e)};var g=function(e,t){var i=t.font;if(!i){return null}var h=e.mode;if(i==="mathit"){return"italic"}var r=e.value;if(p.contains(["\\imath","\\jmath"],r)){return null}if(s[h][r]&&s[h][r].replace){r=s[h][r].replace}var l=n[i].fontName;if(a.getCharacterMetrics(r,l)){return n[t.font].variant}return null};var d={mathord:function(e,t){var i=new r.MathNode("mi",[o(e.value,e.mode)]);var h=g(e,t);if(h){i.setAttribute("mathvariant",h)}return i},textord:function(e,t){var i=o(e.value,e.mode);var h=g(e,t)||"normal";var a;if(/[0-9]/.test(e.value)){a=new r.MathNode("mn",[i]);if(t.font){a.setAttribute("mathvariant",h)}}else{a=new r.MathNode("mi",[i]);a.setAttribute("mathvariant",h)}return a},bin:function(e){var t=new r.MathNode("mo",[o(e.value,e.mode)]);return t},rel:function(e){var t=new r.MathNode("mo",[o(e.value,e.mode)]);return t},open:function(e){var t=new r.MathNode("mo",[o(e.value,e.mode)]);return t},close:function(e){var t=new r.MathNode("mo",[o(e.value,e.mode)]);return t},inner:function(e){var t=new r.MathNode("mo",[o(e.value,e.mode)]);return t},punct:function(e){var t=new r.MathNode("mo",[o(e.value,e.mode)]);t.setAttribute("separator","true");return t},ordgroup:function(e,t){var i=w(e.value,t);var h=new r.MathNode("mrow",i);return h},text:function(e,t){var i=w(e.value.body,t);var h=new r.MathNode("mtext",i);return h},color:function(e,t){var i=w(e.value.value,t);var h=new r.MathNode("mstyle",i);h.setAttribute("mathcolor",e.value.color);return h},supsub:function(e,t){var i=[u(e.value.base,t)];if(e.value.sub){i.push(u(e.value.sub,t))}if(e.value.sup){i.push(u(e.value.sup,t))}var h;if(!e.value.sub){h="msup"}else if(!e.value.sup){h="msub"}else{h="msubsup"}var a=new r.MathNode(h,i);return a},genfrac:function(e,t){var i=new r.MathNode("mfrac",[u(e.value.numer,t),u(e.value.denom,t)]);if(!e.value.hasBarLine){i.setAttribute("linethickness","0px")}if(e.value.leftDelim!=null||e.value.rightDelim!=null){var h=[];if(e.value.leftDelim!=null){var a=new r.MathNode("mo",[new r.TextNode(e.value.leftDelim)]);a.setAttribute("fence","true");h.push(a)}h.push(i);if(e.value.rightDelim!=null){var l=new r.MathNode("mo",[new r.TextNode(e.value.rightDelim)]);l.setAttribute("fence","true");h.push(l)}var s=new r.MathNode("mrow",h);return s}return i},array:function(e,t){return new r.MathNode("mtable",e.value.body.map(function(e){return new r.MathNode("mtr",e.map(function(e){return new r.MathNode("mtd",[u(e,t)])}))}))},sqrt:function(e,t){var i;if(e.value.index){i=new r.MathNode("mroot",[u(e.value.body,t),u(e.value.index,t)])}else{i=new r.MathNode("msqrt",[u(e.value.body,t)])}return i},leftright:function(e,t){var i=w(e.value.body,t);if(e.value.left!=="."){var h=new r.MathNode("mo",[o(e.value.left,e.mode)]);h.setAttribute("fence","true");i.unshift(h)}if(e.value.right!=="."){var a=new r.MathNode("mo",[o(e.value.right,e.mode)]);a.setAttribute("fence","true");i.push(a)}var l=new r.MathNode("mrow",i);return l},accent:function(e,t){var i=new r.MathNode("mo",[o(e.value.accent,e.mode)]);var h=new r.MathNode("mover",[u(e.value.base,t),i]);h.setAttribute("accent","true");return h},spacing:function(e){var t;if(e.value==="\\ "||e.value==="\\space"||e.value===" "||e.value==="~"){t=new r.MathNode("mtext",[new r.TextNode("\xa0")])}else{t=new r.MathNode("mspace");t.setAttribute("width",h.spacingFunctions[e.value].size)}return t},op:function(e){var t;if(e.value.symbol){t=new r.MathNode("mo",[o(e.value.body,e.mode)])}else{t=new r.MathNode("mi",[new r.TextNode(e.value.body.slice(1))])}return t},katex:function(e){var t=new r.MathNode("mtext",[new r.TextNode("KaTeX")]);return t},font:function(e,t){var i=e.value.font;return u(e.value.body,t.withFont(i))},delimsizing:function(e){var t=[];if(e.value.value!=="."){t.push(o(e.value.value,e.mode))}var i=new r.MathNode("mo",t);if(e.value.delimType==="open"||e.value.delimType==="close"){i.setAttribute("fence","true")}else{i.setAttribute("fence","false")}return i},styling:function(e,t){var i=w(e.value.value,t);var h=new r.MathNode("mstyle",i);var a={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]};var l=a[e.value.style];h.setAttribute("scriptlevel",l[0]);h.setAttribute("displaystyle",l[1]);return h},sizing:function(e,t){var i=w(e.value.value,t);var a=new r.MathNode("mstyle",i);a.setAttribute("mathsize",h.sizingMultiplier[e.value.size]+"em");return a},overline:function(e,t){var i=new r.MathNode("mo",[new r.TextNode("\u203e")]);i.setAttribute("stretchy","true");var h=new r.MathNode("mover",[u(e.value.body,t),i]);h.setAttribute("accent","true");return h},rule:function(e){var t=new r.MathNode("mrow");return t},llap:function(e,t){var i=new r.MathNode("mpadded",[u(e.value.body,t)]);i.setAttribute("lspace","-1width");i.setAttribute("width","0px");return i},rlap:function(e,t){var i=new r.MathNode("mpadded",[u(e.value.body,t)]);i.setAttribute("width","0px");return i},phantom:function(e,t,i){var h=w(e.value.value,t);return new r.MathNode("mphantom",h)}};var w=function(e,t){var i=[];for(var h=0;h<e.length;h++){var a=e[h];i.push(u(a,t))}return i};var u=function(e,t){if(!e){return new r.MathNode("mrow")}if(d[e.type]){return d[e.type](e,t)}else{throw new l("Got group of unknown type: '"+e.type+"'")}};var k=function(e,t,i){var h=w(e,i);var a=new r.MathNode("mrow",h);var l=new r.MathNode("annotation",[new r.TextNode(t)]);l.setAttribute("encoding","application/x-tex");var s=new r.MathNode("semantics",[a,l]);var p=new r.MathNode("math",[s]);return c(["katex-mathml"],[p])};t.exports=k},{"./ParseError":5,"./buildCommon":9,"./fontMetrics":16,"./mathMLTree":19,"./symbols":22,"./utils":23}],12:[function(e,t,i){var h=e("./buildHTML");var a=e("./buildMathML");var r=e("./buildCommon");var l=e("./Options");var s=e("./Settings");var p=e("./Style");var c=r.makeSpan;var n=function(e,t,i){i=i||new s({});var r=p.TEXT;if(i.displayMode){r=p.DISPLAY}var n=new l({style:r,size:"size5"});var o=a(e,t,n);var g=h(e,n);var d=c(["katex"],[o,g]);if(i.displayMode){return c(["katex-display"],[d])}else{return d}};t.exports=n},{"./Options":4,"./Settings":7,"./Style":8,"./buildCommon":9,"./buildHTML":10,"./buildMathML":11}],13:[function(e,t,i){var h=e("./ParseError");var a=e("./Style");var r=e("./buildCommon");var l=e("./fontMetrics");var s=e("./symbols");var p=e("./utils");var c=r.makeSpan;var n=function(e,t){if(s.math[e]&&s.math[e].replace){return l.getCharacterMetrics(s.math[e].replace,t)}else{return l.getCharacterMetrics(e,t)}};var o=function(e,t,i){return r.makeSymbol(e,"Size"+t+"-Regular",i)};var g=function(e,t,i){var h=c(["style-wrap",i.style.reset(),t.cls()],[e]);var a=t.sizeMultiplier/i.style.sizeMultiplier;h.height*=a;h.depth*=a;h.maxFontSize=t.sizeMultiplier;return h};var d=function(e,t,i,h,a){var s=r.makeSymbol(e,"Main-Regular",a);var p=g(s,t,h);if(i){var c=(1-h.style.sizeMultiplier/t.sizeMultiplier)*l.metrics.axisHeight;p.style.top=c+"em";p.height-=c;p.depth+=c}return p};var w=function(e,t,i,h,r){var s=o(e,t,r);var p=g(c(["delimsizing","size"+t],[s],h.getColor()),a.TEXT,h);if(i){var n=(1-h.style.sizeMultiplier)*l.metrics.axisHeight;p.style.top=n+"em";p.height-=n;p.depth+=n}return p};var u=function(e,t,i){var h;if(t==="Size1-Regular"){h="delim-size1"}else if(t==="Size4-Regular"){h="delim-size4"}var a=c(["delimsizinginner",h],[c([],[r.makeSymbol(e,t,i)])]);return{type:"elem",elem:a}};var k=function(e,t,i,h,s){var p,o,d,w;p=d=w=e;o=null;var k="Size1-Regular";if(e==="\\uparrow"){d=w="\u23d0"}else if(e==="\\Uparrow"){d=w="\u2016"}else if(e==="\\downarrow"){p=d="\u23d0"}else if(e==="\\Downarrow"){p=d="\u2016"}else if(e==="\\updownarrow"){p="\\uparrow";d="\u23d0";w="\\downarrow"}else if(e==="\\Updownarrow"){p="\\Uparrow";d="\u2016";w="\\Downarrow"}else if(e==="["||e==="\\lbrack"){p="\u23a1";d="\u23a2";w="\u23a3";k="Size4-Regular"}else if(e==="]"||e==="\\rbrack"){p="\u23a4";d="\u23a5";w="\u23a6";k="Size4-Regular"}else if(e==="\\lfloor"){d=p="\u23a2";w="\u23a3";k="Size4-Regular"}else if(e==="\\lceil"){p="\u23a1";d=w="\u23a2";k="Size4-Regular"}else if(e==="\\rfloor"){d=p="\u23a5";w="\u23a6";k="Size4-Regular"}else if(e==="\\rceil"){p="\u23a4";d=w="\u23a5";k="Size4-Regular"}else if(e==="("){p="\u239b";d="\u239c";w="\u239d";k="Size4-Regular"}else if(e===")"){p="\u239e";d="\u239f";w="\u23a0";k="Size4-Regular"}else if(e==="\\{"||e==="\\lbrace"){p="\u23a7";o="\u23a8";w="\u23a9";d="\u23aa";k="Size4-Regular"}else if(e==="\\}"||e==="\\rbrace"){p="\u23ab";o="\u23ac";w="\u23ad";d="\u23aa";k="Size4-Regular"}else if(e==="\\lgroup"){p="\u23a7";w="\u23a9";d="\u23aa";k="Size4-Regular"}else if(e==="\\rgroup"){p="\u23ab";w="\u23ad";d="\u23aa";k="Size4-Regular"}else if(e==="\\lmoustache"){p="\u23a7";w="\u23ad";d="\u23aa";k="Size4-Regular"}else if(e==="\\rmoustache"){p="\u23ab";w="\u23a9";d="\u23aa";k="Size4-Regular"}else if(e==="\\surd"){p="\ue001";w="\u23b7";d="\ue000";k="Size4-Regular"}var m=n(p,k);var f=m.height+m.depth;var v=n(d,k);var y=v.height+v.depth;var x=n(w,k);var b=x.height+x.depth;var z=0;var S=1;if(o!==null){var M=n(o,k);z=M.height+M.depth;S=2}var q=f+b+z;var A=Math.ceil((t-q)/(S*y));var T=q+A*S*y;var N=l.metrics.axisHeight;if(i){N*=h.style.sizeMultiplier}var C=T/2-N;var R=[];R.push(u(w,k,s));var E;if(o===null){for(E=0;E<A;E++){R.push(u(d,k,s))}}else{for(E=0;E<A;E++){R.push(u(d,k,s))}R.push(u(o,k,s));for(E=0;E<A;E++){R.push(u(d,k,s))}}R.push(u(p,k,s));var P=r.makeVList(R,"bottom",C,h);return g(c(["delimsizing","mult"],[P],h.getColor()),a.TEXT,h)};var m=["(",")","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\\lceil","\\rceil","\\surd"];var f=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\\lmoustache","\\rmoustache"];var v=["<",">","\\langle","\\rangle","/","\\backslash"];var y=[0,1.2,1.8,2.4,3];var x=function(e,t,i,a){if(e==="<"){e="\\langle"}else if(e===">"){e="\\rangle"}if(p.contains(m,e)||p.contains(v,e)){return w(e,t,false,i,a)}else if(p.contains(f,e)){return k(e,y[t],false,i,a)}else{throw new h("Illegal delimiter: '"+e+"'")}};var b=[{type:"small",style:a.SCRIPTSCRIPT},{type:"small",style:a.SCRIPT},{type:"small",style:a.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}];var z=[{type:"small",style:a.SCRIPTSCRIPT},{type:"small",style:a.SCRIPT},{type:"small",style:a.TEXT},{type:"stack"}];var S=[{type:"small",style:a.SCRIPTSCRIPT},{type:"small",style:a.SCRIPT},{type:"small",style:a.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}];var M=function(e){if(e.type==="small"){return"Main-Regular"}else if(e.type==="large"){return"Size"+e.size+"-Regular"}else if(e.type==="stack"){return"Size4-Regular"}};var q=function(e,t,i,h){var a=Math.min(2,3-h.style.size);for(var r=a;r<i.length;r++){if(i[r].type==="stack"){break}var l=n(e,M(i[r]));var s=l.height+l.depth;if(i[r].type==="small"){s*=i[r].style.sizeMultiplier}if(s>t){return i[r]}}return i[i.length-1]};var A=function(e,t,i,h,a){if(e==="<"){e="\\langle"}else if(e===">"){e="\\rangle"}var r;if(p.contains(v,e)){r=b}else if(p.contains(m,e)){r=S}else{r=z}var l=q(e,t,r,h);if(l.type==="small"){return d(e,l.style,i,h,a)}else if(l.type==="large"){return w(e,l.size,i,h,a)}else if(l.type==="stack"){return k(e,t,i,h,a)}};var T=function(e,t,i,h,a){var r=l.metrics.axisHeight*h.style.sizeMultiplier;var s=901;var p=5/l.metrics.ptPerEm;var c=Math.max(t-r,i+r);var n=Math.max(c/500*s,2*c-p);return A(e,n,true,h,a)};t.exports={sizedDelim:x,customSizedDelim:A,leftRightDelim:T}},{"./ParseError":5,"./Style":8,"./buildCommon":9,"./fontMetrics":16,"./symbols":22,"./utils":23}],14:[function(e,t,i){var h=e("./utils");var a=function(e){e=e.slice();for(var t=e.length-1;t>=0;t--){if(!e[t]){e.splice(t,1)}}return e.join(" ")};function r(e,t,i,h,a,r){this.classes=e||[];this.children=t||[];this.height=i||0;this.depth=h||0;this.maxFontSize=a||0;this.style=r||{};this.attributes={}}r.prototype.setAttribute=function(e,t){this.attributes[e]=t};r.prototype.toNode=function(){var e=document.createElement("span");e.className=a(this.classes);for(var t in this.style){if(Object.prototype.hasOwnProperty.call(this.style,t)){e.style[t]=this.style[t]}}for(var i in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,i)){e.setAttribute(i,this.attributes[i])}}for(var h=0;h<this.children.length;h++){e.appendChild(this.children[h].toNode())}return e};r.prototype.toMarkup=function(){var e="<span";if(this.classes.length){e+=' class="';e+=h.escape(a(this.classes));e+='"'}var t="";for(var i in this.style){if(this.style.hasOwnProperty(i)){t+=h.hyphenate(i)+":"+this.style[i]+";"}}if(t){e+=' style="'+h.escape(t)+'"'}for(var r in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,r)){e+=" "+r+'="';e+=h.escape(this.attributes[r]);e+='"'}}e+=">";for(var l=0;l<this.children.length;l++){e+=this.children[l].toMarkup()}e+="</span>";return e};function l(e,t,i,h){this.children=e||[];this.height=t||0;this.depth=i||0;this.maxFontSize=h||0}l.prototype.toNode=function(){var e=document.createDocumentFragment();for(var t=0;t<this.children.length;t++){e.appendChild(this.children[t].toNode())}return e};l.prototype.toMarkup=function(){var e="";for(var t=0;t<this.children.length;t++){e+=this.children[t].toMarkup()}return e};function s(e,t,i,h,a,r,l){this.value=e||"";this.height=t||0;this.depth=i||0;this.italic=h||0;this.skew=a||0;this.classes=r||[];this.style=l||{};this.maxFontSize=0}s.prototype.toNode=function(){var e=document.createTextNode(this.value);var t=null;if(this.italic>0){t=document.createElement("span");t.style.marginRight=this.italic+"em"}if(this.classes.length>0){t=t||document.createElement("span");t.className=a(this.classes)}for(var i in this.style){if(this.style.hasOwnProperty(i)){t=t||document.createElement("span");t.style[i]=this.style[i]}}if(t){t.appendChild(e);return t}else{return e}};s.prototype.toMarkup=function(){var e=false;var t="<span";if(this.classes.length){e=true;t+=' class="';t+=h.escape(a(this.classes));t+='"'}var i="";if(this.italic>0){i+="margin-right:"+this.italic+"em;"}for(var r in this.style){if(this.style.hasOwnProperty(r)){i+=h.hyphenate(r)+":"+this.style[r]+";"}}if(i){e=true;t+=' style="'+h.escape(i)+'"'}var l=h.escape(this.value);if(e){t+=">";t+=l;t+="</span>";return t}else{return l}};t.exports={span:r,documentFragment:l,symbolNode:s}},{"./utils":23}],15:[function(e,t,i){var h=e("./fontMetrics");var a=e("./parseData");var r=e("./ParseError");var l=a.ParseNode;var s=a.ParseResult;function p(e,t,i,h){var a=[],p=[a],c=[];while(true){var n=e.parseExpression(t,i,false,null);a.push(new l("ordgroup",n.result,i));t=n.position;var o=n.peek.text;if(o==="&"){t=n.peek.position}else if(o==="\\end"){break}else if(o==="\\\\"||o==="\\cr"){var g=e.parseFunction(t,i);c.push(g.result.value.size);t=g.position;a=[];p.push(a)}else{throw new r("Expected & or \\\\ or \\end",e.lexer,n.peek.position)}}h.body=p;h.rowGaps=c;return new s(new l(h.type,h,i),t)}var c=[{names:["array"],numArgs:1,handler:function(e,t,i,h,a){var l=this;h=h.value.map?h.value:[h];var s=h.map(function(e){var t=e.value;if("lcr".indexOf(t)!==-1){return{type:"align",align:t}}else if(t==="|"){return{type:"separator",separator:"|"}}throw new r("Unknown column alignment: "+e.value,l.lexer,a[1])});var c={type:"array",cols:s,hskipBeforeAndAfter:true};c=p(l,e,t,c);return c}},{names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix"],handler:function(e,t,i){var h={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[i];var a={type:"array",hskipBeforeAndAfter:false};a=p(this,e,t,a);if(h){a.result=new l("leftright",{body:[a.result],left:h[0],right:h[1]},t)}return a}},{names:["cases"],handler:function(e,t,i){var a={type:"array",arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:h.metrics.quad},{type:"align",align:"l",pregap:0,postgap:0}]};a=p(this,e,t,a);a.result=new l("leftright",{body:[a.result],left:"\\{",right:"."},t);return a}}];t.exports=function(){var e={};for(var t=0;t<c.length;++t){var i=c[t];i.greediness=1;i.allowedInText=!!i.allowedInText;i.numArgs=i.numArgs||0;i.numOptionalArgs=i.numOptionalArgs||0;for(var h=0;h<i.names.length;++h){e[i.names[h]]=i}}return e}()},{"./ParseError":5,"./fontMetrics":16,"./parseData":20}],16:[function(e,t,i){var h=e("./Style");var a=.025;var r=0;var l=0;var s=0;var p=.431;var c=1;var n=0;var o=.677;var g=.394;var d=.444;var w=.686;var u=.345;var k=.413;var m=.363;var f=.289;var v=.15;var y=.247;var x=.386;var b=.05;var z=2.39;var S=1.01;var M=.81;var q=.71;var A=.25;var T=0;var N=0;var C=0;var R=0;var E=.431;var P=1;var D=0;var L=.04;var O=.111;var I=.166;var B=.2;var F=.6;var _=.1;var V=10;var G=2/V;var H={xHeight:p,quad:c,num1:o,num2:g,num3:d,denom1:w,denom2:u,sup1:k,sup2:m,sup3:f,sub1:v,sub2:y,supDrop:x,subDrop:b,axisHeight:A,defaultRuleThickness:L,bigOpSpacing1:O,bigOpSpacing2:I,bigOpSpacing3:B,bigOpSpacing4:F,bigOpSpacing5:_,ptPerEm:V,emPerEx:p/c,doubleRuleSep:G,delim1:z,getDelim2:function(e){if(e.size===h.TEXT.size){return S}else if(e.size===h.SCRIPT.size){return M}else if(e.size===h.SCRIPTSCRIPT.size){return q}throw new Error("Unexpected style size: "+e.size)}};var X=e("./fontMetricsData");var U=function(e,t){return X[t][e.charCodeAt(0)]};t.exports={metrics:H,getCharacterMetrics:U}},{"./Style":8,"./fontMetricsData":17}],17:[function(e,t,i){t.exports={"AMS-Regular":{65:{depth:0,height:.68889,italic:0,skew:0},66:{depth:0,height:.68889,italic:0,skew:0},67:{depth:0,height:.68889,italic:0,skew:0},68:{depth:0,height:.68889,italic:0,skew:0},69:{depth:0,height:.68889,italic:0,skew:0},70:{depth:0,height:.68889,italic:0,skew:0},71:{depth:0,height:.68889,italic:0,skew:0},72:{depth:0,height:.68889,italic:0,skew:0},73:{depth:0,height:.68889,italic:0,skew:0},74:{depth:.16667,height:.68889,italic:0,skew:0},75:{depth:0,height:.68889,italic:0,skew:0},76:{depth:0,height:.68889,italic:0,skew:0},77:{depth:0,height:.68889,italic:0,skew:0},78:{depth:0,height:.68889,italic:0,skew:0},79:{depth:.16667,height:.68889,italic:0,skew:0},80:{depth:0,height:.68889,italic:0,skew:0},81:{depth:.16667,height:.68889,italic:0,skew:0},82:{depth:0,height:.68889,italic:0,skew:0},83:{depth:0,height:.68889,italic:0,skew:0},84:{depth:0,height:.68889,italic:0,skew:0},85:{depth:0,height:.68889,italic:0,skew:0},86:{depth:0,height:.68889,italic:0,skew:0},87:{depth:0,height:.68889,italic:0,skew:0},88:{depth:0,height:.68889,italic:0,skew:0},89:{depth:0,height:.68889,italic:0,skew:0},90:{depth:0,height:.68889,italic:0,skew:0},107:{depth:0,height:.68889,italic:0,skew:0},165:{depth:0,height:.675,italic:.025,skew:0},174:{depth:.15559,height:.69224,italic:0,skew:0},240:{depth:0,height:.68889,italic:0,skew:0},295:{depth:0,height:.68889,italic:0,skew:0},710:{depth:0,height:.825,italic:0,skew:0},732:{depth:0,height:.9,italic:0,skew:0},770:{depth:0,height:.825,italic:0,skew:0},771:{depth:0,height:.9,italic:0,skew:0},989:{depth:.08167,height:.58167,italic:0,skew:0},1008:{depth:0,height:.43056,italic:.04028,skew:0},8245:{depth:0,height:.54986,italic:0,skew:0},8463:{depth:0,height:.68889,italic:0,skew:0},8487:{depth:0,height:.68889,italic:0,skew:0},8498:{depth:0,height:.68889,italic:0,skew:0},8502:{depth:0,height:.68889,italic:0,skew:0},8503:{depth:0,height:.68889,italic:0,skew:0},8504:{depth:0,height:.68889,italic:0,skew:0},8513:{depth:0,height:.68889,italic:0,skew:0},8592:{depth:-.03598,height:.46402,italic:0,skew:0},8594:{depth:-.03598,height:.46402,italic:0,skew:0},8602:{depth:-.13313,height:.36687,italic:0,skew:0},8603:{depth:-.13313,height:.36687,italic:0,skew:0},8606:{depth:.01354,height:.52239,italic:0,skew:0},8608:{depth:.01354,height:.52239,italic:0,skew:0},8610:{depth:.01354,height:.52239,italic:0,skew:0},8611:{depth:.01354,height:.52239,italic:0,skew:0},8619:{depth:0,height:.54986,italic:0,skew:0},8620:{depth:0,height:.54986,italic:0,skew:0},8621:{depth:-.13313,height:.37788,italic:0,skew:0},8622:{depth:-.13313,height:.36687,italic:0,skew:0},8624:{depth:0,height:.69224,italic:0,skew:0},8625:{depth:0,height:.69224,italic:0,skew:0},8630:{depth:0,height:.43056,italic:0,skew:0},8631:{depth:0,height:.43056,italic:0,skew:0},8634:{depth:.08198,height:.58198,italic:0,skew:0},8635:{depth:.08198,height:.58198,italic:0,skew:0},8638:{depth:.19444,height:.69224,italic:0,skew:0},8639:{depth:.19444,height:.69224,italic:0,skew:0},8642:{depth:.19444,height:.69224,italic:0,skew:0},8643:{depth:.19444,height:.69224,italic:0,skew:0},8644:{depth:.1808,height:.675,italic:0,skew:0},8646:{depth:.1808,height:.675,italic:0,skew:0},8647:{depth:.1808,height:.675,italic:0,skew:0},8648:{depth:.19444,height:.69224,italic:0,skew:0},8649:{depth:.1808,height:.675,italic:0,skew:0},8650:{depth:.19444,height:.69224,italic:0,skew:0},8651:{depth:.01354,height:.52239,italic:0,skew:0},8652:{depth:.01354,height:.52239,italic:0,skew:0},8653:{depth:-.13313,height:.36687,italic:0,skew:0},8654:{depth:-.13313,height:.36687,italic:0,skew:0},8655:{depth:-.13313,height:.36687,italic:0,skew:0},8666:{depth:.13667,height:.63667,italic:0,skew:0},8667:{depth:.13667,height:.63667,italic:0,skew:0},8669:{depth:-.13313,height:.37788,italic:0,skew:0},8672:{depth:-.064,height:.437,italic:0,skew:0},8674:{depth:-.064,height:.437,italic:0,skew:0},8705:{depth:0,height:.825,italic:0,skew:0},8708:{depth:0,height:.68889,italic:0,skew:0},8709:{depth:.08167,height:.58167,italic:0,skew:0},8717:{depth:0,height:.43056,italic:0,skew:0},8722:{depth:-.03598,height:.46402,italic:0,skew:0},8724:{depth:.08198,height:.69224,italic:0,skew:0},8726:{depth:.08167,height:.58167,italic:0,skew:0},8733:{depth:0,height:.69224,italic:0,skew:0},8736:{depth:0,height:.69224,italic:0,skew:0},8737:{depth:0,height:.69224,italic:0,skew:0},8738:{depth:.03517,height:.52239,italic:0,skew:0},8739:{depth:.08167,height:.58167,italic:0,skew:0},8740:{depth:.25142,height:.74111,italic:0,skew:0},8741:{depth:.08167,height:.58167,italic:0,skew:0},8742:{depth:.25142,height:.74111,italic:0,skew:0},8756:{depth:0,height:.69224,italic:0,skew:0},8757:{depth:0,height:.69224,italic:0,skew:0},8764:{depth:-.13313,height:.36687,italic:0,skew:0},8765:{depth:-.13313,height:.37788,italic:0,skew:0},8769:{depth:-.13313,height:.36687,italic:0,skew:0},8770:{depth:-.03625,height:.46375,italic:0,skew:0},8774:{depth:.30274,height:.79383,italic:0,skew:0},8776:{depth:-.01688,height:.48312,italic:0,skew:0},8778:{depth:.08167,height:.58167,italic:0,skew:0},8782:{depth:.06062,height:.54986,italic:0,skew:0},8783:{depth:.06062,height:.54986,italic:0,skew:0},8785:{depth:.08198,height:.58198,italic:0,skew:0},8786:{depth:.08198,height:.58198,italic:0,skew:0},8787:{depth:.08198,height:.58198,italic:0,skew:0},8790:{depth:0,height:.69224,italic:0,skew:0},8791:{depth:.22958,height:.72958,italic:0,skew:0},8796:{depth:.08198,height:.91667,italic:0,skew:0},8806:{depth:.25583,height:.75583,italic:0,skew:0},8807:{depth:.25583,height:.75583,italic:0,skew:0},8808:{depth:.25142,height:.75726,italic:0,skew:0},8809:{depth:.25142,height:.75726,italic:0,skew:0},8812:{depth:.25583,height:.75583,italic:0,skew:0},8814:{depth:.20576,height:.70576,italic:0,skew:0},8815:{depth:.20576,height:.70576,italic:0,skew:0},8816:{depth:.30274,height:.79383,italic:0,skew:0},8817:{depth:.30274,height:.79383,italic:0,skew:0},8818:{depth:.22958,height:.72958,italic:0,skew:0},8819:{depth:.22958,height:.72958,italic:0,skew:0},8822:{depth:.1808,height:.675,italic:0,skew:0},8823:{depth:.1808,height:.675,italic:0,skew:0},8828:{depth:.13667,height:.63667,italic:0,skew:0},8829:{depth:.13667,height:.63667,italic:0,skew:0},8830:{depth:.22958,height:.72958,italic:0,skew:0},8831:{depth:.22958,height:.72958,italic:0,skew:0},8832:{depth:.20576,height:.70576,italic:0,skew:0},8833:{depth:.20576,height:.70576,italic:0,skew:0},8840:{depth:.30274,height:.79383,italic:0,skew:0},8841:{depth:.30274,height:.79383,italic:0,skew:0},8842:{depth:.13597,height:.63597,italic:0,skew:0},8843:{depth:.13597,height:.63597,italic:0,skew:0},8847:{depth:.03517,height:.54986,italic:0,skew:0},8848:{depth:.03517,height:.54986,italic:0,skew:0},8858:{depth:.08198,height:.58198,italic:0,skew:0},8859:{depth:.08198,height:.58198,italic:0,skew:0},8861:{depth:.08198,height:.58198,italic:0,skew:0},8862:{depth:0,height:.675,italic:0,skew:0},8863:{depth:0,height:.675,italic:0,skew:0},8864:{depth:0,height:.675,italic:0,skew:0},8865:{depth:0,height:.675,italic:0,skew:0},8872:{depth:0,height:.69224,italic:0,skew:0},8873:{depth:0,height:.69224,italic:0,skew:0},8874:{depth:0,height:.69224,italic:0,skew:0},8876:{depth:0,height:.68889,italic:0,skew:0},8877:{depth:0,height:.68889,italic:0,skew:0},8878:{depth:0,height:.68889,italic:0,skew:0},8879:{depth:0,height:.68889,italic:0,skew:0},8882:{depth:.03517,height:.54986,italic:0,skew:0},8883:{depth:.03517,height:.54986,italic:0,skew:0},8884:{depth:.13667,height:.63667,italic:0,skew:0},8885:{depth:.13667,height:.63667,italic:0,skew:0},8888:{depth:0,height:.54986,italic:0,skew:0},8890:{depth:.19444,height:.43056,italic:0,skew:0},8891:{depth:.19444,height:.69224,italic:0,skew:0},8892:{depth:.19444,height:.69224,italic:0,skew:0},8901:{depth:0,height:.54986,italic:0,skew:0},8903:{depth:.08167,height:.58167,italic:0,skew:0},8905:{depth:.08167,height:.58167,italic:0,skew:0},8906:{depth:.08167,height:.58167,italic:0,skew:0},8907:{depth:0,height:.69224,italic:0,skew:0},8908:{depth:0,height:.69224,italic:0,skew:0},8909:{depth:-.03598,height:.46402,italic:0,skew:0},8910:{depth:0,height:.54986,italic:0,skew:0},8911:{depth:0,height:.54986,italic:0,skew:0},8912:{depth:.03517,height:.54986,italic:0,skew:0},8913:{depth:.03517,height:.54986,italic:0,skew:0},8914:{depth:0,height:.54986,italic:0,skew:0},8915:{depth:0,height:.54986,italic:0,skew:0},8916:{depth:0,height:.69224,italic:0,skew:0},8918:{depth:.0391,height:.5391,italic:0,skew:0},8919:{depth:.0391,height:.5391,italic:0,skew:0},8920:{depth:.03517,height:.54986,italic:0,skew:0},8921:{depth:.03517,height:.54986,italic:0,skew:0},8922:{depth:.38569,height:.88569,italic:0,skew:0},8923:{depth:.38569,height:.88569,italic:0,skew:0},8926:{depth:.13667,height:.63667,italic:0,skew:0},8927:{depth:.13667,height:.63667,italic:0,skew:0},8928:{depth:.30274,height:.79383,italic:0,skew:0},8929:{depth:.30274,height:.79383,italic:0,skew:0},8934:{depth:.23222,height:.74111,italic:0,skew:0},8935:{depth:.23222,height:.74111,italic:0,skew:0},8936:{depth:.23222,height:.74111,italic:0,skew:0},8937:{depth:.23222,height:.74111,italic:0,skew:0},8938:{depth:.20576,height:.70576,italic:0,skew:0},8939:{depth:.20576,height:.70576,italic:0,skew:0},8940:{depth:.30274,height:.79383,italic:0,skew:0},8941:{depth:.30274,height:.79383,italic:0,skew:0},8994:{depth:.19444,height:.69224,italic:0,skew:0},8995:{depth:.19444,height:.69224,italic:0,skew:0},9416:{depth:.15559,height:.69224,italic:0,skew:0},9484:{depth:0,height:.69224,italic:0,skew:0},9488:{depth:0,height:.69224,italic:0,skew:0},9492:{depth:0,height:.37788,italic:0,skew:0},9496:{depth:0,height:.37788,italic:0,skew:0},9585:{depth:.19444,height:.68889,italic:0,skew:0},9586:{depth:.19444,height:.74111,italic:0,skew:0},9632:{depth:0,height:.675,italic:0,skew:0},9633:{depth:0,height:.675,italic:0,skew:0},9650:{depth:0,height:.54986,italic:0,skew:0},9651:{depth:0,height:.54986,italic:0,skew:0},9654:{depth:.03517,height:.54986,italic:0,skew:0},9660:{depth:0,height:.54986,italic:0,skew:0},9661:{depth:0,height:.54986,italic:0,skew:0},9664:{depth:.03517,height:.54986,italic:0,skew:0},9674:{depth:.11111,height:.69224,italic:0,skew:0},9733:{depth:.19444,height:.69224,italic:0,skew:0},10003:{depth:0,height:.69224,italic:0,skew:0},10016:{depth:0,height:.69224,italic:0,skew:0},10731:{depth:.11111,height:.69224,italic:0,skew:0},10846:{depth:.19444,height:.75583,italic:0,skew:0},10877:{depth:.13667,height:.63667,italic:0,skew:0},10878:{depth:.13667,height:.63667,italic:0,skew:0},10885:{depth:.25583,height:.75583,italic:0,skew:0},10886:{depth:.25583,height:.75583,italic:0,skew:0},10887:{depth:.13597,height:.63597,italic:0,skew:0},10888:{depth:.13597,height:.63597,italic:0,skew:0},10889:{depth:.26167,height:.75726,italic:0,skew:0},10890:{depth:.26167,height:.75726,italic:0,skew:0},10891:{depth:.48256,height:.98256,italic:0,skew:0},10892:{depth:.48256,height:.98256,italic:0,skew:0},10901:{depth:.13667,height:.63667,italic:0,skew:0},10902:{depth:.13667,height:.63667,italic:0,skew:0},10933:{depth:.25142,height:.75726,italic:0,skew:0},10934:{depth:.25142,height:.75726,italic:0,skew:0},10935:{depth:.26167,height:.75726,italic:0,skew:0},10936:{depth:.26167,height:.75726,italic:0,skew:0},10937:{depth:.26167, +height:.75726,italic:0,skew:0},10938:{depth:.26167,height:.75726,italic:0,skew:0},10949:{depth:.25583,height:.75583,italic:0,skew:0},10950:{depth:.25583,height:.75583,italic:0,skew:0},10955:{depth:.28481,height:.79383,italic:0,skew:0},10956:{depth:.28481,height:.79383,italic:0,skew:0},57350:{depth:.08167,height:.58167,italic:0,skew:0},57351:{depth:.08167,height:.58167,italic:0,skew:0},57352:{depth:.08167,height:.58167,italic:0,skew:0},57353:{depth:0,height:.43056,italic:.04028,skew:0},57356:{depth:.25142,height:.75726,italic:0,skew:0},57357:{depth:.25142,height:.75726,italic:0,skew:0},57358:{depth:.41951,height:.91951,italic:0,skew:0},57359:{depth:.30274,height:.79383,italic:0,skew:0},57360:{depth:.30274,height:.79383,italic:0,skew:0},57361:{depth:.41951,height:.91951,italic:0,skew:0},57366:{depth:.25142,height:.75726,italic:0,skew:0},57367:{depth:.25142,height:.75726,italic:0,skew:0},57368:{depth:.25142,height:.75726,italic:0,skew:0},57369:{depth:.25142,height:.75726,italic:0,skew:0},57370:{depth:.13597,height:.63597,italic:0,skew:0},57371:{depth:.13597,height:.63597,italic:0,skew:0}},"Caligraphic-Regular":{48:{depth:0,height:.43056,italic:0,skew:0},49:{depth:0,height:.43056,italic:0,skew:0},50:{depth:0,height:.43056,italic:0,skew:0},51:{depth:.19444,height:.43056,italic:0,skew:0},52:{depth:.19444,height:.43056,italic:0,skew:0},53:{depth:.19444,height:.43056,italic:0,skew:0},54:{depth:0,height:.64444,italic:0,skew:0},55:{depth:.19444,height:.43056,italic:0,skew:0},56:{depth:0,height:.64444,italic:0,skew:0},57:{depth:.19444,height:.43056,italic:0,skew:0},65:{depth:0,height:.68333,italic:0,skew:.19445},66:{depth:0,height:.68333,italic:.03041,skew:.13889},67:{depth:0,height:.68333,italic:.05834,skew:.13889},68:{depth:0,height:.68333,italic:.02778,skew:.08334},69:{depth:0,height:.68333,italic:.08944,skew:.11111},70:{depth:0,height:.68333,italic:.09931,skew:.11111},71:{depth:.09722,height:.68333,italic:.0593,skew:.11111},72:{depth:0,height:.68333,italic:.00965,skew:.11111},73:{depth:0,height:.68333,italic:.07382,skew:0},74:{depth:.09722,height:.68333,italic:.18472,skew:.16667},75:{depth:0,height:.68333,italic:.01445,skew:.05556},76:{depth:0,height:.68333,italic:0,skew:.13889},77:{depth:0,height:.68333,italic:0,skew:.13889},78:{depth:0,height:.68333,italic:.14736,skew:.08334},79:{depth:0,height:.68333,italic:.02778,skew:.11111},80:{depth:0,height:.68333,italic:.08222,skew:.08334},81:{depth:.09722,height:.68333,italic:0,skew:.11111},82:{depth:0,height:.68333,italic:0,skew:.08334},83:{depth:0,height:.68333,italic:.075,skew:.13889},84:{depth:0,height:.68333,italic:.25417,skew:0},85:{depth:0,height:.68333,italic:.09931,skew:.08334},86:{depth:0,height:.68333,italic:.08222,skew:0},87:{depth:0,height:.68333,italic:.08222,skew:.08334},88:{depth:0,height:.68333,italic:.14643,skew:.13889},89:{depth:.09722,height:.68333,italic:.08222,skew:.08334},90:{depth:0,height:.68333,italic:.07944,skew:.13889}},"Fraktur-Regular":{33:{depth:0,height:.69141,italic:0,skew:0},34:{depth:0,height:.69141,italic:0,skew:0},38:{depth:0,height:.69141,italic:0,skew:0},39:{depth:0,height:.69141,italic:0,skew:0},40:{depth:.24982,height:.74947,italic:0,skew:0},41:{depth:.24982,height:.74947,italic:0,skew:0},42:{depth:0,height:.62119,italic:0,skew:0},43:{depth:.08319,height:.58283,italic:0,skew:0},44:{depth:0,height:.10803,italic:0,skew:0},45:{depth:.08319,height:.58283,italic:0,skew:0},46:{depth:0,height:.10803,italic:0,skew:0},47:{depth:.24982,height:.74947,italic:0,skew:0},48:{depth:0,height:.47534,italic:0,skew:0},49:{depth:0,height:.47534,italic:0,skew:0},50:{depth:0,height:.47534,italic:0,skew:0},51:{depth:.18906,height:.47534,italic:0,skew:0},52:{depth:.18906,height:.47534,italic:0,skew:0},53:{depth:.18906,height:.47534,italic:0,skew:0},54:{depth:0,height:.69141,italic:0,skew:0},55:{depth:.18906,height:.47534,italic:0,skew:0},56:{depth:0,height:.69141,italic:0,skew:0},57:{depth:.18906,height:.47534,italic:0,skew:0},58:{depth:0,height:.47534,italic:0,skew:0},59:{depth:.12604,height:.47534,italic:0,skew:0},61:{depth:-.13099,height:.36866,italic:0,skew:0},63:{depth:0,height:.69141,italic:0,skew:0},65:{depth:0,height:.69141,italic:0,skew:0},66:{depth:0,height:.69141,italic:0,skew:0},67:{depth:0,height:.69141,italic:0,skew:0},68:{depth:0,height:.69141,italic:0,skew:0},69:{depth:0,height:.69141,italic:0,skew:0},70:{depth:.12604,height:.69141,italic:0,skew:0},71:{depth:0,height:.69141,italic:0,skew:0},72:{depth:.06302,height:.69141,italic:0,skew:0},73:{depth:0,height:.69141,italic:0,skew:0},74:{depth:.12604,height:.69141,italic:0,skew:0},75:{depth:0,height:.69141,italic:0,skew:0},76:{depth:0,height:.69141,italic:0,skew:0},77:{depth:0,height:.69141,italic:0,skew:0},78:{depth:0,height:.69141,italic:0,skew:0},79:{depth:0,height:.69141,italic:0,skew:0},80:{depth:.18906,height:.69141,italic:0,skew:0},81:{depth:.03781,height:.69141,italic:0,skew:0},82:{depth:0,height:.69141,italic:0,skew:0},83:{depth:0,height:.69141,italic:0,skew:0},84:{depth:0,height:.69141,italic:0,skew:0},85:{depth:0,height:.69141,italic:0,skew:0},86:{depth:0,height:.69141,italic:0,skew:0},87:{depth:0,height:.69141,italic:0,skew:0},88:{depth:0,height:.69141,italic:0,skew:0},89:{depth:.18906,height:.69141,italic:0,skew:0},90:{depth:.12604,height:.69141,italic:0,skew:0},91:{depth:.24982,height:.74947,italic:0,skew:0},93:{depth:.24982,height:.74947,italic:0,skew:0},94:{depth:0,height:.69141,italic:0,skew:0},97:{depth:0,height:.47534,italic:0,skew:0},98:{depth:0,height:.69141,italic:0,skew:0},99:{depth:0,height:.47534,italic:0,skew:0},100:{depth:0,height:.62119,italic:0,skew:0},101:{depth:0,height:.47534,italic:0,skew:0},102:{depth:.18906,height:.69141,italic:0,skew:0},103:{depth:.18906,height:.47534,italic:0,skew:0},104:{depth:.18906,height:.69141,italic:0,skew:0},105:{depth:0,height:.69141,italic:0,skew:0},106:{depth:0,height:.69141,italic:0,skew:0},107:{depth:0,height:.69141,italic:0,skew:0},108:{depth:0,height:.69141,italic:0,skew:0},109:{depth:0,height:.47534,italic:0,skew:0},110:{depth:0,height:.47534,italic:0,skew:0},111:{depth:0,height:.47534,italic:0,skew:0},112:{depth:.18906,height:.52396,italic:0,skew:0},113:{depth:.18906,height:.47534,italic:0,skew:0},114:{depth:0,height:.47534,italic:0,skew:0},115:{depth:0,height:.47534,italic:0,skew:0},116:{depth:0,height:.62119,italic:0,skew:0},117:{depth:0,height:.47534,italic:0,skew:0},118:{depth:0,height:.52396,italic:0,skew:0},119:{depth:0,height:.52396,italic:0,skew:0},120:{depth:.18906,height:.47534,italic:0,skew:0},121:{depth:.18906,height:.47534,italic:0,skew:0},122:{depth:.18906,height:.47534,italic:0,skew:0},8216:{depth:0,height:.69141,italic:0,skew:0},8217:{depth:0,height:.69141,italic:0,skew:0},58112:{depth:0,height:.62119,italic:0,skew:0},58113:{depth:0,height:.62119,italic:0,skew:0},58114:{depth:.18906,height:.69141,italic:0,skew:0},58115:{depth:.18906,height:.69141,italic:0,skew:0},58116:{depth:.18906,height:.47534,italic:0,skew:0},58117:{depth:0,height:.69141,italic:0,skew:0},58118:{depth:0,height:.62119,italic:0,skew:0},58119:{depth:0,height:.47534,italic:0,skew:0}},"Main-Bold":{33:{depth:0,height:.69444,italic:0,skew:0},34:{depth:0,height:.69444,italic:0,skew:0},35:{depth:.19444,height:.69444,italic:0,skew:0},36:{depth:.05556,height:.75,italic:0,skew:0},37:{depth:.05556,height:.75,italic:0,skew:0},38:{depth:0,height:.69444,italic:0,skew:0},39:{depth:0,height:.69444,italic:0,skew:0},40:{depth:.25,height:.75,italic:0,skew:0},41:{depth:.25,height:.75,italic:0,skew:0},42:{depth:0,height:.75,italic:0,skew:0},43:{depth:.13333,height:.63333,italic:0,skew:0},44:{depth:.19444,height:.15556,italic:0,skew:0},45:{depth:0,height:.44444,italic:0,skew:0},46:{depth:0,height:.15556,italic:0,skew:0},47:{depth:.25,height:.75,italic:0,skew:0},48:{depth:0,height:.64444,italic:0,skew:0},49:{depth:0,height:.64444,italic:0,skew:0},50:{depth:0,height:.64444,italic:0,skew:0},51:{depth:0,height:.64444,italic:0,skew:0},52:{depth:0,height:.64444,italic:0,skew:0},53:{depth:0,height:.64444,italic:0,skew:0},54:{depth:0,height:.64444,italic:0,skew:0},55:{depth:0,height:.64444,italic:0,skew:0},56:{depth:0,height:.64444,italic:0,skew:0},57:{depth:0,height:.64444,italic:0,skew:0},58:{depth:0,height:.44444,italic:0,skew:0},59:{depth:.19444,height:.44444,italic:0,skew:0},60:{depth:.08556,height:.58556,italic:0,skew:0},61:{depth:-.10889,height:.39111,italic:0,skew:0},62:{depth:.08556,height:.58556,italic:0,skew:0},63:{depth:0,height:.69444,italic:0,skew:0},64:{depth:0,height:.69444,italic:0,skew:0},65:{depth:0,height:.68611,italic:0,skew:0},66:{depth:0,height:.68611,italic:0,skew:0},67:{depth:0,height:.68611,italic:0,skew:0},68:{depth:0,height:.68611,italic:0,skew:0},69:{depth:0,height:.68611,italic:0,skew:0},70:{depth:0,height:.68611,italic:0,skew:0},71:{depth:0,height:.68611,italic:0,skew:0},72:{depth:0,height:.68611,italic:0,skew:0},73:{depth:0,height:.68611,italic:0,skew:0},74:{depth:0,height:.68611,italic:0,skew:0},75:{depth:0,height:.68611,italic:0,skew:0},76:{depth:0,height:.68611,italic:0,skew:0},77:{depth:0,height:.68611,italic:0,skew:0},78:{depth:0,height:.68611,italic:0,skew:0},79:{depth:0,height:.68611,italic:0,skew:0},80:{depth:0,height:.68611,italic:0,skew:0},81:{depth:.19444,height:.68611,italic:0,skew:0},82:{depth:0,height:.68611,italic:0,skew:0},83:{depth:0,height:.68611,italic:0,skew:0},84:{depth:0,height:.68611,italic:0,skew:0},85:{depth:0,height:.68611,italic:0,skew:0},86:{depth:0,height:.68611,italic:.01597,skew:0},87:{depth:0,height:.68611,italic:.01597,skew:0},88:{depth:0,height:.68611,italic:0,skew:0},89:{depth:0,height:.68611,italic:.02875,skew:0},90:{depth:0,height:.68611,italic:0,skew:0},91:{depth:.25,height:.75,italic:0,skew:0},92:{depth:.25,height:.75,italic:0,skew:0},93:{depth:.25,height:.75,italic:0,skew:0},94:{depth:0,height:.69444,italic:0,skew:0},95:{depth:.31,height:.13444,italic:.03194,skew:0},96:{depth:0,height:.69444,italic:0,skew:0},97:{depth:0,height:.44444,italic:0,skew:0},98:{depth:0,height:.69444,italic:0,skew:0},99:{depth:0,height:.44444,italic:0,skew:0},100:{depth:0,height:.69444,italic:0,skew:0},101:{depth:0,height:.44444,italic:0,skew:0},102:{depth:0,height:.69444,italic:.10903,skew:0},103:{depth:.19444,height:.44444,italic:.01597,skew:0},104:{depth:0,height:.69444,italic:0,skew:0},105:{depth:0,height:.69444,italic:0,skew:0},106:{depth:.19444,height:.69444,italic:0,skew:0},107:{depth:0,height:.69444,italic:0,skew:0},108:{depth:0,height:.69444,italic:0,skew:0},109:{depth:0,height:.44444,italic:0,skew:0},110:{depth:0,height:.44444,italic:0,skew:0},111:{depth:0,height:.44444,italic:0,skew:0},112:{depth:.19444,height:.44444,italic:0,skew:0},113:{depth:.19444,height:.44444,italic:0,skew:0},114:{depth:0,height:.44444,italic:0,skew:0},115:{depth:0,height:.44444,italic:0,skew:0},116:{depth:0,height:.63492,italic:0,skew:0},117:{depth:0,height:.44444,italic:0,skew:0},118:{depth:0,height:.44444,italic:.01597,skew:0},119:{depth:0,height:.44444,italic:.01597,skew:0},120:{depth:0,height:.44444,italic:0,skew:0},121:{depth:.19444,height:.44444,italic:.01597,skew:0},122:{depth:0,height:.44444,italic:0,skew:0},123:{depth:.25,height:.75,italic:0,skew:0},124:{depth:.25,height:.75,italic:0,skew:0},125:{depth:.25,height:.75,italic:0,skew:0},126:{depth:.35,height:.34444,italic:0,skew:0},168:{depth:0,height:.69444,italic:0,skew:0},172:{depth:0,height:.44444,italic:0,skew:0},175:{depth:0,height:.59611,italic:0,skew:0},176:{depth:0,height:.69444,italic:0,skew:0},177:{depth:.13333,height:.63333,italic:0,skew:0},180:{depth:0,height:.69444,italic:0,skew:0},215:{depth:.13333,height:.63333,italic:0,skew:0},247:{depth:.13333,height:.63333,italic:0,skew:0},305:{depth:0,height:.44444,italic:0,skew:0},567:{depth:.19444,height:.44444,italic:0,skew:0},710:{depth:0,height:.69444,italic:0,skew:0},711:{depth:0,height:.63194,italic:0,skew:0},713:{depth:0,height:.59611,italic:0,skew:0},714:{depth:0,height:.69444,italic:0,skew:0},715:{depth:0,height:.69444,italic:0,skew:0},728:{depth:0,height:.69444,italic:0,skew:0},729:{depth:0,height:.69444,italic:0,skew:0},730:{depth:0,height:.69444,italic:0,skew:0},732:{depth:0,height:.69444,italic:0,skew:0},768:{depth:0,height:.69444,italic:0,skew:0},769:{depth:0,height:.69444,italic:0,skew:0},770:{depth:0,height:.69444,italic:0,skew:0},771:{depth:0,height:.69444,italic:0,skew:0},772:{depth:0,height:.59611,italic:0,skew:0},774:{depth:0,height:.69444,italic:0,skew:0},775:{depth:0,height:.69444,italic:0,skew:0},776:{depth:0,height:.69444,italic:0,skew:0},778:{depth:0,height:.69444,italic:0,skew:0},779:{depth:0,height:.69444,italic:0,skew:0},780:{depth:0,height:.63194,italic:0,skew:0},824:{depth:.19444,height:.69444,italic:0,skew:0},915:{depth:0,height:.68611,italic:0,skew:0},916:{depth:0,height:.68611,italic:0,skew:0},920:{depth:0,height:.68611,italic:0,skew:0},923:{depth:0,height:.68611,italic:0,skew:0},926:{depth:0,height:.68611,italic:0,skew:0},928:{depth:0,height:.68611,italic:0,skew:0},931:{depth:0,height:.68611,italic:0,skew:0},933:{depth:0,height:.68611,italic:0,skew:0},934:{depth:0,height:.68611,italic:0,skew:0},936:{depth:0,height:.68611,italic:0,skew:0},937:{depth:0,height:.68611,italic:0,skew:0},8211:{depth:0,height:.44444,italic:.03194,skew:0},8212:{depth:0,height:.44444,italic:.03194,skew:0},8216:{depth:0,height:.69444,italic:0,skew:0},8217:{depth:0,height:.69444,italic:0,skew:0},8220:{depth:0,height:.69444,italic:0,skew:0},8221:{depth:0,height:.69444,italic:0,skew:0},8224:{depth:.19444,height:.69444,italic:0,skew:0},8225:{depth:.19444,height:.69444,italic:0,skew:0},8242:{depth:0,height:.55556,italic:0,skew:0},8407:{depth:0,height:.72444,italic:.15486,skew:0},8463:{depth:0,height:.69444,italic:0,skew:0},8465:{depth:0,height:.69444,italic:0,skew:0},8467:{depth:0,height:.69444,italic:0,skew:0},8472:{depth:.19444,height:.44444,italic:0,skew:0},8476:{depth:0,height:.69444,italic:0,skew:0},8501:{depth:0,height:.69444,italic:0,skew:0},8592:{depth:-.10889,height:.39111,italic:0,skew:0},8593:{depth:.19444,height:.69444,italic:0,skew:0},8594:{depth:-.10889,height:.39111,italic:0,skew:0},8595:{depth:.19444,height:.69444,italic:0,skew:0},8596:{depth:-.10889,height:.39111,italic:0,skew:0},8597:{depth:.25,height:.75,italic:0,skew:0},8598:{depth:.19444,height:.69444,italic:0,skew:0},8599:{depth:.19444,height:.69444,italic:0,skew:0},8600:{depth:.19444,height:.69444,italic:0,skew:0},8601:{depth:.19444,height:.69444,italic:0,skew:0},8636:{depth:-.10889,height:.39111,italic:0,skew:0},8637:{depth:-.10889,height:.39111,italic:0,skew:0},8640:{depth:-.10889,height:.39111,italic:0,skew:0},8641:{depth:-.10889,height:.39111,italic:0,skew:0},8656:{depth:-.10889,height:.39111,italic:0,skew:0},8657:{depth:.19444,height:.69444,italic:0,skew:0},8658:{depth:-.10889,height:.39111,italic:0,skew:0},8659:{depth:.19444,height:.69444,italic:0,skew:0},8660:{depth:-.10889,height:.39111,italic:0,skew:0},8661:{depth:.25,height:.75,italic:0,skew:0},8704:{depth:0,height:.69444,italic:0,skew:0},8706:{depth:0,height:.69444,italic:.06389,skew:0},8707:{depth:0,height:.69444,italic:0,skew:0},8709:{depth:.05556,height:.75,italic:0,skew:0},8711:{depth:0,height:.68611,italic:0,skew:0},8712:{depth:.08556,height:.58556,italic:0,skew:0},8715:{depth:.08556,height:.58556,italic:0,skew:0},8722:{depth:.13333,height:.63333,italic:0,skew:0},8723:{depth:.13333,height:.63333,italic:0,skew:0},8725:{depth:.25,height:.75,italic:0,skew:0},8726:{depth:.25,height:.75,italic:0,skew:0},8727:{depth:-.02778,height:.47222,italic:0,skew:0},8728:{depth:-.02639,height:.47361,italic:0,skew:0},8729:{depth:-.02639,height:.47361,italic:0,skew:0},8730:{depth:.18,height:.82,italic:0,skew:0},8733:{depth:0,height:.44444,italic:0,skew:0},8734:{depth:0,height:.44444,italic:0,skew:0},8736:{depth:0,height:.69224,italic:0,skew:0},8739:{depth:.25,height:.75,italic:0,skew:0},8741:{depth:.25,height:.75,italic:0,skew:0},8743:{depth:0,height:.55556,italic:0,skew:0},8744:{depth:0,height:.55556,italic:0,skew:0},8745:{depth:0,height:.55556,italic:0,skew:0},8746:{depth:0,height:.55556,italic:0,skew:0},8747:{depth:.19444,height:.69444,italic:.12778,skew:0},8764:{depth:-.10889,height:.39111,italic:0,skew:0},8768:{depth:.19444,height:.69444,italic:0,skew:0},8771:{depth:.00222,height:.50222,italic:0,skew:0},8776:{depth:.02444,height:.52444,italic:0,skew:0},8781:{depth:.00222,height:.50222,italic:0,skew:0},8801:{depth:.00222,height:.50222,italic:0,skew:0},8804:{depth:.19667,height:.69667,italic:0,skew:0},8805:{depth:.19667,height:.69667,italic:0,skew:0},8810:{depth:.08556,height:.58556,italic:0,skew:0},8811:{depth:.08556,height:.58556,italic:0,skew:0},8826:{depth:.08556,height:.58556,italic:0,skew:0},8827:{depth:.08556,height:.58556,italic:0,skew:0},8834:{depth:.08556,height:.58556,italic:0,skew:0},8835:{depth:.08556,height:.58556,italic:0,skew:0},8838:{depth:.19667,height:.69667,italic:0,skew:0},8839:{depth:.19667,height:.69667,italic:0,skew:0},8846:{depth:0,height:.55556,italic:0,skew:0},8849:{depth:.19667,height:.69667,italic:0,skew:0},8850:{depth:.19667,height:.69667,italic:0,skew:0},8851:{depth:0,height:.55556,italic:0,skew:0},8852:{depth:0,height:.55556,italic:0,skew:0},8853:{depth:.13333,height:.63333,italic:0,skew:0},8854:{depth:.13333,height:.63333,italic:0,skew:0},8855:{depth:.13333,height:.63333,italic:0,skew:0},8856:{depth:.13333,height:.63333,italic:0,skew:0},8857:{depth:.13333,height:.63333,italic:0,skew:0},8866:{depth:0,height:.69444,italic:0,skew:0},8867:{depth:0,height:.69444,italic:0,skew:0},8868:{depth:0,height:.69444,italic:0,skew:0},8869:{depth:0,height:.69444,italic:0,skew:0},8900:{depth:-.02639,height:.47361,italic:0,skew:0},8901:{depth:-.02639,height:.47361,italic:0,skew:0},8902:{depth:-.02778,height:.47222,italic:0,skew:0},8968:{depth:.25,height:.75,italic:0,skew:0},8969:{depth:.25,height:.75,italic:0,skew:0},8970:{depth:.25,height:.75,italic:0,skew:0},8971:{depth:.25,height:.75,italic:0,skew:0},8994:{depth:-.13889,height:.36111,italic:0,skew:0},8995:{depth:-.13889,height:.36111,italic:0,skew:0},9651:{depth:.19444,height:.69444,italic:0,skew:0},9657:{depth:-.02778,height:.47222,italic:0,skew:0},9661:{depth:.19444,height:.69444,italic:0,skew:0},9667:{depth:-.02778,height:.47222,italic:0,skew:0},9711:{depth:.19444,height:.69444,italic:0,skew:0},9824:{depth:.12963,height:.69444,italic:0,skew:0},9825:{depth:.12963,height:.69444,italic:0,skew:0},9826:{depth:.12963,height:.69444,italic:0,skew:0},9827:{depth:.12963,height:.69444,italic:0,skew:0},9837:{depth:0,height:.75,italic:0,skew:0},9838:{depth:.19444,height:.69444,italic:0,skew:0},9839:{depth:.19444,height:.69444,italic:0,skew:0},10216:{depth:.25,height:.75,italic:0,skew:0},10217:{depth:.25,height:.75,italic:0,skew:0},10815:{depth:0,height:.68611,italic:0,skew:0},10927:{depth:.19667,height:.69667,italic:0,skew:0},10928:{depth:.19667,height:.69667,italic:0,skew:0}},"Main-Italic":{33:{depth:0,height:.69444,italic:.12417,skew:0},34:{depth:0,height:.69444,italic:.06961,skew:0},35:{depth:.19444,height:.69444,italic:.06616,skew:0},37:{depth:.05556,height:.75,italic:.13639,skew:0},38:{depth:0,height:.69444,italic:.09694,skew:0},39:{depth:0,height:.69444,italic:.12417,skew:0},40:{depth:.25,height:.75,italic:.16194,skew:0},41:{depth:.25,height:.75,italic:.03694,skew:0},42:{depth:0,height:.75,italic:.14917,skew:0},43:{depth:.05667,height:.56167,italic:.03694,skew:0},44:{depth:.19444,height:.10556,italic:0,skew:0},45:{depth:0,height:.43056,italic:.02826,skew:0},46:{depth:0,height:.10556,italic:0,skew:0},47:{depth:.25,height:.75,italic:.16194,skew:0},48:{depth:0,height:.64444,italic:.13556,skew:0},49:{depth:0,height:.64444,italic:.13556,skew:0},50:{depth:0,height:.64444,italic:.13556,skew:0},51:{depth:0,height:.64444,italic:.13556,skew:0},52:{depth:.19444,height:.64444,italic:.13556,skew:0},53:{depth:0,height:.64444,italic:.13556,skew:0},54:{depth:0,height:.64444,italic:.13556,skew:0},55:{depth:.19444,height:.64444,italic:.13556,skew:0},56:{depth:0,height:.64444,italic:.13556,skew:0},57:{depth:0,height:.64444,italic:.13556,skew:0},58:{depth:0,height:.43056,italic:.0582,skew:0},59:{depth:.19444,height:.43056,italic:.0582,skew:0},61:{depth:-.13313,height:.36687,italic:.06616,skew:0},63:{depth:0,height:.69444,italic:.1225,skew:0},64:{depth:0,height:.69444,italic:.09597,skew:0},65:{depth:0,height:.68333,italic:0,skew:0},66:{depth:0,height:.68333,italic:.10257,skew:0},67:{depth:0,height:.68333,italic:.14528,skew:0},68:{depth:0,height:.68333,italic:.09403,skew:0},69:{depth:0,height:.68333,italic:.12028,skew:0},70:{depth:0,height:.68333,italic:.13305,skew:0},71:{depth:0,height:.68333,italic:.08722,skew:0},72:{depth:0,height:.68333,italic:.16389,skew:0},73:{depth:0,height:.68333,italic:.15806,skew:0},74:{depth:0,height:.68333,italic:.14028,skew:0},75:{depth:0,height:.68333,italic:.14528,skew:0},76:{depth:0,height:.68333,italic:0,skew:0},77:{depth:0,height:.68333,italic:.16389,skew:0},78:{depth:0,height:.68333,italic:.16389,skew:0},79:{depth:0,height:.68333,italic:.09403,skew:0},80:{depth:0,height:.68333,italic:.10257,skew:0},81:{depth:.19444,height:.68333,italic:.09403,skew:0},82:{depth:0,height:.68333,italic:.03868,skew:0},83:{depth:0,height:.68333,italic:.11972,skew:0},84:{depth:0,height:.68333,italic:.13305,skew:0},85:{depth:0,height:.68333,italic:.16389,skew:0},86:{depth:0,height:.68333,italic:.18361,skew:0},87:{depth:0,height:.68333,italic:.18361,skew:0},88:{depth:0,height:.68333,italic:.15806,skew:0},89:{depth:0,height:.68333,italic:.19383,skew:0},90:{depth:0,height:.68333,italic:.14528,skew:0},91:{depth:.25,height:.75,italic:.1875,skew:0},93:{depth:.25,height:.75,italic:.10528,skew:0},94:{depth:0,height:.69444,italic:.06646,skew:0},95:{depth:.31,height:.12056,italic:.09208,skew:0},97:{depth:0,height:.43056,italic:.07671,skew:0},98:{depth:0,height:.69444,italic:.06312,skew:0},99:{depth:0,height:.43056,italic:.05653,skew:0},100:{depth:0,height:.69444,italic:.10333,skew:0},101:{depth:0,height:.43056,italic:.07514,skew:0},102:{depth:.19444,height:.69444,italic:.21194,skew:0},103:{depth:.19444,height:.43056,italic:.08847,skew:0},104:{depth:0,height:.69444,italic:.07671,skew:0},105:{depth:0,height:.65536,italic:.1019,skew:0},106:{depth:.19444,height:.65536,italic:.14467,skew:0},107:{depth:0,height:.69444,italic:.10764,skew:0},108:{depth:0,height:.69444,italic:.10333,skew:0},109:{depth:0,height:.43056,italic:.07671,skew:0},110:{depth:0,height:.43056,italic:.07671,skew:0},111:{depth:0,height:.43056,italic:.06312,skew:0},112:{depth:.19444,height:.43056,italic:.06312,skew:0},113:{depth:.19444,height:.43056,italic:.08847,skew:0},114:{depth:0,height:.43056,italic:.10764,skew:0},115:{depth:0,height:.43056,italic:.08208,skew:0},116:{depth:0,height:.61508,italic:.09486,skew:0},117:{depth:0,height:.43056,italic:.07671,skew:0},118:{depth:0,height:.43056,italic:.10764,skew:0},119:{depth:0,height:.43056,italic:.10764,skew:0},120:{depth:0,height:.43056,italic:.12042,skew:0},121:{depth:.19444,height:.43056,italic:.08847,skew:0},122:{depth:0,height:.43056,italic:.12292,skew:0},126:{depth:.35,height:.31786,italic:.11585,skew:0},163:{depth:0,height:.69444,italic:0,skew:0},305:{depth:0,height:.43056,italic:0,skew:.02778},567:{depth:.19444,height:.43056,italic:0,skew:.08334},768:{depth:0,height:.69444,italic:0,skew:0},769:{depth:0,height:.69444,italic:.09694,skew:0},770:{depth:0,height:.69444,italic:.06646,skew:0},771:{depth:0,height:.66786,italic:.11585,skew:0},772:{depth:0,height:.56167,italic:.10333,skew:0},774:{depth:0,height:.69444,italic:.10806,skew:0},775:{depth:0,height:.66786,italic:.11752,skew:0},776:{depth:0,height:.66786,italic:.10474,skew:0},778:{depth:0,height:.69444,italic:0,skew:0},779:{depth:0,height:.69444,italic:.1225,skew:0},780:{depth:0,height:.62847,italic:.08295,skew:0},915:{depth:0,height:.68333,italic:.13305,skew:0},916:{depth:0,height:.68333,italic:0,skew:0},920:{depth:0,height:.68333,italic:.09403,skew:0},923:{depth:0,height:.68333,italic:0,skew:0},926:{depth:0,height:.68333,italic:.15294,skew:0},928:{depth:0,height:.68333,italic:.16389,skew:0},931:{depth:0,height:.68333,italic:.12028,skew:0},933:{depth:0,height:.68333,italic:.11111,skew:0},934:{depth:0,height:.68333,italic:.05986,skew:0},936:{depth:0,height:.68333,italic:.11111,skew:0},937:{depth:0,height:.68333,italic:.10257,skew:0},8211:{depth:0,height:.43056,italic:.09208,skew:0},8212:{depth:0,height:.43056,italic:.09208,skew:0},8216:{depth:0,height:.69444,italic:.12417,skew:0},8217:{depth:0,height:.69444,italic:.12417,skew:0},8220:{depth:0,height:.69444,italic:.1685,skew:0},8221:{depth:0,height:.69444,italic:.06961,skew:0},8463:{depth:0,height:.68889,italic:0,skew:0}},"Main-Regular":{32:{depth:0,height:0,italic:0,skew:0},33:{depth:0,height:.69444,italic:0,skew:0},34:{depth:0,height:.69444,italic:0,skew:0},35:{depth:.19444,height:.69444,italic:0,skew:0},36:{depth:.05556,height:.75,italic:0,skew:0},37:{depth:.05556,height:.75,italic:0,skew:0},38:{depth:0,height:.69444,italic:0,skew:0},39:{depth:0,height:.69444,italic:0,skew:0},40:{depth:.25,height:.75,italic:0,skew:0},41:{depth:.25,height:.75,italic:0,skew:0},42:{depth:0,height:.75,italic:0,skew:0},43:{depth:.08333,height:.58333,italic:0,skew:0},44:{depth:.19444,height:.10556,italic:0,skew:0},45:{depth:0,height:.43056,italic:0,skew:0},46:{depth:0,height:.10556,italic:0,skew:0},47:{depth:.25,height:.75,italic:0,skew:0},48:{depth:0,height:.64444,italic:0,skew:0},49:{depth:0,height:.64444,italic:0,skew:0},50:{depth:0,height:.64444,italic:0,skew:0},51:{depth:0,height:.64444,italic:0,skew:0},52:{depth:0,height:.64444,italic:0,skew:0},53:{depth:0,height:.64444,italic:0,skew:0},54:{depth:0,height:.64444,italic:0,skew:0},55:{depth:0,height:.64444,italic:0,skew:0},56:{depth:0,height:.64444,italic:0,skew:0},57:{depth:0,height:.64444,italic:0,skew:0},58:{depth:0,height:.43056,italic:0,skew:0},59:{depth:.19444,height:.43056,italic:0,skew:0},60:{depth:.0391,height:.5391,italic:0,skew:0},61:{depth:-.13313,height:.36687,italic:0,skew:0},62:{depth:.0391,height:.5391,italic:0,skew:0},63:{depth:0,height:.69444,italic:0,skew:0},64:{depth:0,height:.69444,italic:0,skew:0},65:{depth:0,height:.68333,italic:0,skew:0},66:{depth:0,height:.68333,italic:0,skew:0},67:{depth:0,height:.68333,italic:0,skew:0},68:{depth:0,height:.68333,italic:0,skew:0},69:{depth:0,height:.68333,italic:0,skew:0},70:{depth:0,height:.68333,italic:0,skew:0},71:{depth:0,height:.68333,italic:0,skew:0},72:{depth:0,height:.68333,italic:0,skew:0},73:{depth:0,height:.68333,italic:0,skew:0},74:{depth:0,height:.68333,italic:0,skew:0},75:{depth:0,height:.68333,italic:0,skew:0},76:{depth:0,height:.68333,italic:0,skew:0},77:{depth:0,height:.68333,italic:0,skew:0},78:{depth:0,height:.68333,italic:0,skew:0},79:{depth:0,height:.68333,italic:0,skew:0},80:{depth:0,height:.68333,italic:0,skew:0},81:{depth:.19444,height:.68333,italic:0,skew:0},82:{depth:0,height:.68333,italic:0,skew:0},83:{depth:0,height:.68333,italic:0,skew:0},84:{depth:0,height:.68333,italic:0,skew:0},85:{depth:0,height:.68333,italic:0,skew:0},86:{depth:0,height:.68333,italic:.01389,skew:0},87:{depth:0,height:.68333,italic:.01389,skew:0},88:{depth:0,height:.68333,italic:0,skew:0},89:{depth:0,height:.68333,italic:.025,skew:0},90:{depth:0,height:.68333,italic:0,skew:0},91:{depth:.25,height:.75,italic:0,skew:0},92:{depth:.25,height:.75,italic:0,skew:0},93:{depth:.25,height:.75,italic:0,skew:0},94:{depth:0,height:.69444,italic:0,skew:0},95:{depth:.31,height:.12056,italic:.02778,skew:0},96:{depth:0,height:.69444,italic:0,skew:0},97:{depth:0,height:.43056,italic:0,skew:0},98:{depth:0,height:.69444,italic:0,skew:0},99:{depth:0,height:.43056,italic:0,skew:0},100:{depth:0,height:.69444,italic:0,skew:0},101:{depth:0,height:.43056,italic:0,skew:0},102:{depth:0,height:.69444,italic:.07778,skew:0},103:{depth:.19444,height:.43056,italic:.01389,skew:0},104:{depth:0,height:.69444,italic:0,skew:0},105:{depth:0,height:.66786,italic:0,skew:0},106:{depth:.19444,height:.66786,italic:0,skew:0},107:{depth:0,height:.69444,italic:0,skew:0},108:{depth:0,height:.69444,italic:0,skew:0},109:{depth:0,height:.43056,italic:0,skew:0},110:{depth:0,height:.43056,italic:0,skew:0},111:{depth:0,height:.43056,italic:0,skew:0},112:{depth:.19444,height:.43056,italic:0,skew:0},113:{depth:.19444,height:.43056,italic:0,skew:0},114:{depth:0,height:.43056,italic:0,skew:0},115:{depth:0,height:.43056,italic:0,skew:0},116:{depth:0,height:.61508,italic:0,skew:0},117:{depth:0,height:.43056,italic:0,skew:0},118:{depth:0,height:.43056,italic:.01389,skew:0},119:{depth:0,height:.43056,italic:.01389,skew:0},120:{depth:0,height:.43056,italic:0,skew:0},121:{depth:.19444,height:.43056,italic:.01389,skew:0},122:{depth:0,height:.43056,italic:0,skew:0},123:{depth:.25,height:.75,italic:0,skew:0},124:{depth:.25,height:.75,italic:0,skew:0},125:{depth:.25,height:.75,italic:0,skew:0},126:{depth:.35,height:.31786,italic:0,skew:0},160:{depth:0,height:0,italic:0,skew:0},168:{depth:0,height:.66786,italic:0,skew:0},172:{depth:0,height:.43056,italic:0,skew:0},175:{depth:0,height:.56778,italic:0,skew:0},176:{depth:0,height:.69444,italic:0,skew:0},177:{depth:.08333,height:.58333,italic:0,skew:0},180:{depth:0,height:.69444,italic:0,skew:0},215:{depth:.08333,height:.58333,italic:0,skew:0},247:{depth:.08333,height:.58333,italic:0,skew:0},305:{depth:0,height:.43056,italic:0,skew:0},567:{depth:.19444,height:.43056,italic:0,skew:0},710:{depth:0,height:.69444,italic:0,skew:0},711:{depth:0,height:.62847,italic:0,skew:0},713:{depth:0,height:.56778,italic:0,skew:0},714:{depth:0,height:.69444,italic:0,skew:0},715:{depth:0,height:.69444,italic:0,skew:0},728:{depth:0,height:.69444,italic:0,skew:0},729:{depth:0,height:.66786,italic:0,skew:0},730:{depth:0,height:.69444,italic:0,skew:0},732:{depth:0,height:.66786,italic:0,skew:0},768:{depth:0,height:.69444,italic:0,skew:0},769:{depth:0,height:.69444,italic:0,skew:0},770:{depth:0,height:.69444,italic:0,skew:0},771:{depth:0,height:.66786,italic:0,skew:0},772:{depth:0,height:.56778,italic:0,skew:0},774:{depth:0,height:.69444,italic:0,skew:0},775:{depth:0,height:.66786,italic:0,skew:0},776:{depth:0,height:.66786,italic:0,skew:0},778:{depth:0,height:.69444,italic:0,skew:0},779:{depth:0,height:.69444,italic:0,skew:0},780:{depth:0,height:.62847,italic:0,skew:0},824:{depth:.19444,height:.69444,italic:0,skew:0},915:{depth:0,height:.68333,italic:0,skew:0},916:{depth:0,height:.68333,italic:0,skew:0},920:{depth:0,height:.68333,italic:0,skew:0},923:{depth:0,height:.68333,italic:0,skew:0},926:{depth:0,height:.68333,italic:0,skew:0},928:{depth:0,height:.68333,italic:0,skew:0},931:{depth:0,height:.68333,italic:0,skew:0},933:{depth:0,height:.68333,italic:0,skew:0},934:{depth:0,height:.68333,italic:0,skew:0},936:{depth:0,height:.68333,italic:0,skew:0},937:{depth:0,height:.68333,italic:0,skew:0},8211:{depth:0,height:.43056,italic:.02778,skew:0},8212:{depth:0,height:.43056,italic:.02778,skew:0},8216:{depth:0,height:.69444,italic:0,skew:0},8217:{depth:0,height:.69444,italic:0,skew:0},8220:{depth:0,height:.69444,italic:0,skew:0},8221:{depth:0,height:.69444,italic:0,skew:0},8224:{depth:.19444,height:.69444,italic:0,skew:0},8225:{depth:.19444,height:.69444,italic:0,skew:0},8230:{depth:0,height:.12,italic:0,skew:0},8242:{depth:0,height:.55556,italic:0,skew:0},8407:{depth:0,height:.71444,italic:.15382,skew:0},8463:{depth:0,height:.68889,italic:0,skew:0},8465:{depth:0,height:.69444,italic:0,skew:0},8467:{depth:0,height:.69444,italic:0,skew:.11111},8472:{depth:.19444,height:.43056,italic:0,skew:.11111},8476:{depth:0,height:.69444,italic:0,skew:0},8501:{depth:0,height:.69444,italic:0,skew:0},8592:{depth:-.13313,height:.36687,italic:0,skew:0},8593:{depth:.19444,height:.69444,italic:0,skew:0},8594:{depth:-.13313,height:.36687,italic:0,skew:0},8595:{depth:.19444,height:.69444,italic:0,skew:0},8596:{depth:-.13313,height:.36687,italic:0,skew:0},8597:{depth:.25,height:.75,italic:0,skew:0},8598:{depth:.19444,height:.69444,italic:0,skew:0},8599:{depth:.19444,height:.69444,italic:0,skew:0},8600:{depth:.19444,height:.69444,italic:0,skew:0},8601:{depth:.19444,height:.69444,italic:0,skew:0},8614:{depth:.011, +height:.511,italic:0,skew:0},8617:{depth:.011,height:.511,italic:0,skew:0},8618:{depth:.011,height:.511,italic:0,skew:0},8636:{depth:-.13313,height:.36687,italic:0,skew:0},8637:{depth:-.13313,height:.36687,italic:0,skew:0},8640:{depth:-.13313,height:.36687,italic:0,skew:0},8641:{depth:-.13313,height:.36687,italic:0,skew:0},8652:{depth:.011,height:.671,italic:0,skew:0},8656:{depth:-.13313,height:.36687,italic:0,skew:0},8657:{depth:.19444,height:.69444,italic:0,skew:0},8658:{depth:-.13313,height:.36687,italic:0,skew:0},8659:{depth:.19444,height:.69444,italic:0,skew:0},8660:{depth:-.13313,height:.36687,italic:0,skew:0},8661:{depth:.25,height:.75,italic:0,skew:0},8704:{depth:0,height:.69444,italic:0,skew:0},8706:{depth:0,height:.69444,italic:.05556,skew:.08334},8707:{depth:0,height:.69444,italic:0,skew:0},8709:{depth:.05556,height:.75,italic:0,skew:0},8711:{depth:0,height:.68333,italic:0,skew:0},8712:{depth:.0391,height:.5391,italic:0,skew:0},8715:{depth:.0391,height:.5391,italic:0,skew:0},8722:{depth:.08333,height:.58333,italic:0,skew:0},8723:{depth:.08333,height:.58333,italic:0,skew:0},8725:{depth:.25,height:.75,italic:0,skew:0},8726:{depth:.25,height:.75,italic:0,skew:0},8727:{depth:-.03472,height:.46528,italic:0,skew:0},8728:{depth:-.05555,height:.44445,italic:0,skew:0},8729:{depth:-.05555,height:.44445,italic:0,skew:0},8730:{depth:.2,height:.8,italic:0,skew:0},8733:{depth:0,height:.43056,italic:0,skew:0},8734:{depth:0,height:.43056,italic:0,skew:0},8736:{depth:0,height:.69224,italic:0,skew:0},8739:{depth:.25,height:.75,italic:0,skew:0},8741:{depth:.25,height:.75,italic:0,skew:0},8743:{depth:0,height:.55556,italic:0,skew:0},8744:{depth:0,height:.55556,italic:0,skew:0},8745:{depth:0,height:.55556,italic:0,skew:0},8746:{depth:0,height:.55556,italic:0,skew:0},8747:{depth:.19444,height:.69444,italic:.11111,skew:0},8764:{depth:-.13313,height:.36687,italic:0,skew:0},8768:{depth:.19444,height:.69444,italic:0,skew:0},8771:{depth:-.03625,height:.46375,italic:0,skew:0},8773:{depth:-.022,height:.589,italic:0,skew:0},8776:{depth:-.01688,height:.48312,italic:0,skew:0},8781:{depth:-.03625,height:.46375,italic:0,skew:0},8784:{depth:-.133,height:.67,italic:0,skew:0},8800:{depth:.215,height:.716,italic:0,skew:0},8801:{depth:-.03625,height:.46375,italic:0,skew:0},8804:{depth:.13597,height:.63597,italic:0,skew:0},8805:{depth:.13597,height:.63597,italic:0,skew:0},8810:{depth:.0391,height:.5391,italic:0,skew:0},8811:{depth:.0391,height:.5391,italic:0,skew:0},8826:{depth:.0391,height:.5391,italic:0,skew:0},8827:{depth:.0391,height:.5391,italic:0,skew:0},8834:{depth:.0391,height:.5391,italic:0,skew:0},8835:{depth:.0391,height:.5391,italic:0,skew:0},8838:{depth:.13597,height:.63597,italic:0,skew:0},8839:{depth:.13597,height:.63597,italic:0,skew:0},8846:{depth:0,height:.55556,italic:0,skew:0},8849:{depth:.13597,height:.63597,italic:0,skew:0},8850:{depth:.13597,height:.63597,italic:0,skew:0},8851:{depth:0,height:.55556,italic:0,skew:0},8852:{depth:0,height:.55556,italic:0,skew:0},8853:{depth:.08333,height:.58333,italic:0,skew:0},8854:{depth:.08333,height:.58333,italic:0,skew:0},8855:{depth:.08333,height:.58333,italic:0,skew:0},8856:{depth:.08333,height:.58333,italic:0,skew:0},8857:{depth:.08333,height:.58333,italic:0,skew:0},8866:{depth:0,height:.69444,italic:0,skew:0},8867:{depth:0,height:.69444,italic:0,skew:0},8868:{depth:0,height:.69444,italic:0,skew:0},8869:{depth:0,height:.69444,italic:0,skew:0},8872:{depth:.249,height:.75,italic:0,skew:0},8900:{depth:-.05555,height:.44445,italic:0,skew:0},8901:{depth:-.05555,height:.44445,italic:0,skew:0},8902:{depth:-.03472,height:.46528,italic:0,skew:0},8904:{depth:.005,height:.505,italic:0,skew:0},8942:{depth:.03,height:.9,italic:0,skew:0},8943:{depth:-.19,height:.31,italic:0,skew:0},8945:{depth:-.1,height:.82,italic:0,skew:0},8968:{depth:.25,height:.75,italic:0,skew:0},8969:{depth:.25,height:.75,italic:0,skew:0},8970:{depth:.25,height:.75,italic:0,skew:0},8971:{depth:.25,height:.75,italic:0,skew:0},8994:{depth:-.14236,height:.35764,italic:0,skew:0},8995:{depth:-.14236,height:.35764,italic:0,skew:0},9136:{depth:.244,height:.744,italic:0,skew:0},9137:{depth:.244,height:.744,italic:0,skew:0},9651:{depth:.19444,height:.69444,italic:0,skew:0},9657:{depth:-.03472,height:.46528,italic:0,skew:0},9661:{depth:.19444,height:.69444,italic:0,skew:0},9667:{depth:-.03472,height:.46528,italic:0,skew:0},9711:{depth:.19444,height:.69444,italic:0,skew:0},9824:{depth:.12963,height:.69444,italic:0,skew:0},9825:{depth:.12963,height:.69444,italic:0,skew:0},9826:{depth:.12963,height:.69444,italic:0,skew:0},9827:{depth:.12963,height:.69444,italic:0,skew:0},9837:{depth:0,height:.75,italic:0,skew:0},9838:{depth:.19444,height:.69444,italic:0,skew:0},9839:{depth:.19444,height:.69444,italic:0,skew:0},10216:{depth:.25,height:.75,italic:0,skew:0},10217:{depth:.25,height:.75,italic:0,skew:0},10222:{depth:.244,height:.744,italic:0,skew:0},10223:{depth:.244,height:.744,italic:0,skew:0},10229:{depth:.011,height:.511,italic:0,skew:0},10230:{depth:.011,height:.511,italic:0,skew:0},10231:{depth:.011,height:.511,italic:0,skew:0},10232:{depth:.024,height:.525,italic:0,skew:0},10233:{depth:.024,height:.525,italic:0,skew:0},10234:{depth:.024,height:.525,italic:0,skew:0},10236:{depth:.011,height:.511,italic:0,skew:0},10815:{depth:0,height:.68333,italic:0,skew:0},10927:{depth:.13597,height:.63597,italic:0,skew:0},10928:{depth:.13597,height:.63597,italic:0,skew:0}},"Math-BoldItalic":{47:{depth:.19444,height:.69444,italic:0,skew:0},65:{depth:0,height:.68611,italic:0,skew:0},66:{depth:0,height:.68611,italic:.04835,skew:0},67:{depth:0,height:.68611,italic:.06979,skew:0},68:{depth:0,height:.68611,italic:.03194,skew:0},69:{depth:0,height:.68611,italic:.05451,skew:0},70:{depth:0,height:.68611,italic:.15972,skew:0},71:{depth:0,height:.68611,italic:0,skew:0},72:{depth:0,height:.68611,italic:.08229,skew:0},73:{depth:0,height:.68611,italic:.07778,skew:0},74:{depth:0,height:.68611,italic:.10069,skew:0},75:{depth:0,height:.68611,italic:.06979,skew:0},76:{depth:0,height:.68611,italic:0,skew:0},77:{depth:0,height:.68611,italic:.11424,skew:0},78:{depth:0,height:.68611,italic:.11424,skew:0},79:{depth:0,height:.68611,italic:.03194,skew:0},80:{depth:0,height:.68611,italic:.15972,skew:0},81:{depth:.19444,height:.68611,italic:0,skew:0},82:{depth:0,height:.68611,italic:.00421,skew:0},83:{depth:0,height:.68611,italic:.05382,skew:0},84:{depth:0,height:.68611,italic:.15972,skew:0},85:{depth:0,height:.68611,italic:.11424,skew:0},86:{depth:0,height:.68611,italic:.25555,skew:0},87:{depth:0,height:.68611,italic:.15972,skew:0},88:{depth:0,height:.68611,italic:.07778,skew:0},89:{depth:0,height:.68611,italic:.25555,skew:0},90:{depth:0,height:.68611,italic:.06979,skew:0},97:{depth:0,height:.44444,italic:0,skew:0},98:{depth:0,height:.69444,italic:0,skew:0},99:{depth:0,height:.44444,italic:0,skew:0},100:{depth:0,height:.69444,italic:0,skew:0},101:{depth:0,height:.44444,italic:0,skew:0},102:{depth:.19444,height:.69444,italic:.11042,skew:0},103:{depth:.19444,height:.44444,italic:.03704,skew:0},104:{depth:0,height:.69444,italic:0,skew:0},105:{depth:0,height:.69326,italic:0,skew:0},106:{depth:.19444,height:.69326,italic:.0622,skew:0},107:{depth:0,height:.69444,italic:.01852,skew:0},108:{depth:0,height:.69444,italic:.0088,skew:0},109:{depth:0,height:.44444,italic:0,skew:0},110:{depth:0,height:.44444,italic:0,skew:0},111:{depth:0,height:.44444,italic:0,skew:0},112:{depth:.19444,height:.44444,italic:0,skew:0},113:{depth:.19444,height:.44444,italic:.03704,skew:0},114:{depth:0,height:.44444,italic:.03194,skew:0},115:{depth:0,height:.44444,italic:0,skew:0},116:{depth:0,height:.63492,italic:0,skew:0},117:{depth:0,height:.44444,italic:0,skew:0},118:{depth:0,height:.44444,italic:.03704,skew:0},119:{depth:0,height:.44444,italic:.02778,skew:0},120:{depth:0,height:.44444,italic:0,skew:0},121:{depth:.19444,height:.44444,italic:.03704,skew:0},122:{depth:0,height:.44444,italic:.04213,skew:0},915:{depth:0,height:.68611,italic:.15972,skew:0},916:{depth:0,height:.68611,italic:0,skew:0},920:{depth:0,height:.68611,italic:.03194,skew:0},923:{depth:0,height:.68611,italic:0,skew:0},926:{depth:0,height:.68611,italic:.07458,skew:0},928:{depth:0,height:.68611,italic:.08229,skew:0},931:{depth:0,height:.68611,italic:.05451,skew:0},933:{depth:0,height:.68611,italic:.15972,skew:0},934:{depth:0,height:.68611,italic:0,skew:0},936:{depth:0,height:.68611,italic:.11653,skew:0},937:{depth:0,height:.68611,italic:.04835,skew:0},945:{depth:0,height:.44444,italic:0,skew:0},946:{depth:.19444,height:.69444,italic:.03403,skew:0},947:{depth:.19444,height:.44444,italic:.06389,skew:0},948:{depth:0,height:.69444,italic:.03819,skew:0},949:{depth:0,height:.44444,italic:0,skew:0},950:{depth:.19444,height:.69444,italic:.06215,skew:0},951:{depth:.19444,height:.44444,italic:.03704,skew:0},952:{depth:0,height:.69444,italic:.03194,skew:0},953:{depth:0,height:.44444,italic:0,skew:0},954:{depth:0,height:.44444,italic:0,skew:0},955:{depth:0,height:.69444,italic:0,skew:0},956:{depth:.19444,height:.44444,italic:0,skew:0},957:{depth:0,height:.44444,italic:.06898,skew:0},958:{depth:.19444,height:.69444,italic:.03021,skew:0},959:{depth:0,height:.44444,italic:0,skew:0},960:{depth:0,height:.44444,italic:.03704,skew:0},961:{depth:.19444,height:.44444,italic:0,skew:0},962:{depth:.09722,height:.44444,italic:.07917,skew:0},963:{depth:0,height:.44444,italic:.03704,skew:0},964:{depth:0,height:.44444,italic:.13472,skew:0},965:{depth:0,height:.44444,italic:.03704,skew:0},966:{depth:.19444,height:.44444,italic:0,skew:0},967:{depth:.19444,height:.44444,italic:0,skew:0},968:{depth:.19444,height:.69444,italic:.03704,skew:0},969:{depth:0,height:.44444,italic:.03704,skew:0},977:{depth:0,height:.69444,italic:0,skew:0},981:{depth:.19444,height:.69444,italic:0,skew:0},982:{depth:0,height:.44444,italic:.03194,skew:0},1009:{depth:.19444,height:.44444,italic:0,skew:0},1013:{depth:0,height:.44444,italic:0,skew:0}},"Math-Italic":{47:{depth:.19444,height:.69444,italic:0,skew:0},65:{depth:0,height:.68333,italic:0,skew:.13889},66:{depth:0,height:.68333,italic:.05017,skew:.08334},67:{depth:0,height:.68333,italic:.07153,skew:.08334},68:{depth:0,height:.68333,italic:.02778,skew:.05556},69:{depth:0,height:.68333,italic:.05764,skew:.08334},70:{depth:0,height:.68333,italic:.13889,skew:.08334},71:{depth:0,height:.68333,italic:0,skew:.08334},72:{depth:0,height:.68333,italic:.08125,skew:.05556},73:{depth:0,height:.68333,italic:.07847,skew:.11111},74:{depth:0,height:.68333,italic:.09618,skew:.16667},75:{depth:0,height:.68333,italic:.07153,skew:.05556},76:{depth:0,height:.68333,italic:0,skew:.02778},77:{depth:0,height:.68333,italic:.10903,skew:.08334},78:{depth:0,height:.68333,italic:.10903,skew:.08334},79:{depth:0,height:.68333,italic:.02778,skew:.08334},80:{depth:0,height:.68333,italic:.13889,skew:.08334},81:{depth:.19444,height:.68333,italic:0,skew:.08334},82:{depth:0,height:.68333,italic:.00773,skew:.08334},83:{depth:0,height:.68333,italic:.05764,skew:.08334},84:{depth:0,height:.68333,italic:.13889,skew:.08334},85:{depth:0,height:.68333,italic:.10903,skew:.02778},86:{depth:0,height:.68333,italic:.22222,skew:0},87:{depth:0,height:.68333,italic:.13889,skew:0},88:{depth:0,height:.68333,italic:.07847,skew:.08334},89:{depth:0,height:.68333,italic:.22222,skew:0},90:{depth:0,height:.68333,italic:.07153,skew:.08334},97:{depth:0,height:.43056,italic:0,skew:0},98:{depth:0,height:.69444,italic:0,skew:0},99:{depth:0,height:.43056,italic:0,skew:.05556},100:{depth:0,height:.69444,italic:0,skew:.16667},101:{depth:0,height:.43056,italic:0,skew:.05556},102:{depth:.19444,height:.69444,italic:.10764,skew:.16667},103:{depth:.19444,height:.43056,italic:.03588,skew:.02778},104:{depth:0,height:.69444,italic:0,skew:0},105:{depth:0,height:.65952,italic:0,skew:0},106:{depth:.19444,height:.65952,italic:.05724,skew:0},107:{depth:0,height:.69444,italic:.03148,skew:0},108:{depth:0,height:.69444,italic:.01968,skew:.08334},109:{depth:0,height:.43056,italic:0,skew:0},110:{depth:0,height:.43056,italic:0,skew:0},111:{depth:0,height:.43056,italic:0,skew:.05556},112:{depth:.19444,height:.43056,italic:0,skew:.08334},113:{depth:.19444,height:.43056,italic:.03588,skew:.08334},114:{depth:0,height:.43056,italic:.02778,skew:.05556},115:{depth:0,height:.43056,italic:0,skew:.05556},116:{depth:0,height:.61508,italic:0,skew:.08334},117:{depth:0,height:.43056,italic:0,skew:.02778},118:{depth:0,height:.43056,italic:.03588,skew:.02778},119:{depth:0,height:.43056,italic:.02691,skew:.08334},120:{depth:0,height:.43056,italic:0,skew:.02778},121:{depth:.19444,height:.43056,italic:.03588,skew:.05556},122:{depth:0,height:.43056,italic:.04398,skew:.05556},915:{depth:0,height:.68333,italic:.13889,skew:.08334},916:{depth:0,height:.68333,italic:0,skew:.16667},920:{depth:0,height:.68333,italic:.02778,skew:.08334},923:{depth:0,height:.68333,italic:0,skew:.16667},926:{depth:0,height:.68333,italic:.07569,skew:.08334},928:{depth:0,height:.68333,italic:.08125,skew:.05556},931:{depth:0,height:.68333,italic:.05764,skew:.08334},933:{depth:0,height:.68333,italic:.13889,skew:.05556},934:{depth:0,height:.68333,italic:0,skew:.08334},936:{depth:0,height:.68333,italic:.11,skew:.05556},937:{depth:0,height:.68333,italic:.05017,skew:.08334},945:{depth:0,height:.43056,italic:.0037,skew:.02778},946:{depth:.19444,height:.69444,italic:.05278,skew:.08334},947:{depth:.19444,height:.43056,italic:.05556,skew:0},948:{depth:0,height:.69444,italic:.03785,skew:.05556},949:{depth:0,height:.43056,italic:0,skew:.08334},950:{depth:.19444,height:.69444,italic:.07378,skew:.08334},951:{depth:.19444,height:.43056,italic:.03588,skew:.05556},952:{depth:0,height:.69444,italic:.02778,skew:.08334},953:{depth:0,height:.43056,italic:0,skew:.05556},954:{depth:0,height:.43056,italic:0,skew:0},955:{depth:0,height:.69444,italic:0,skew:0},956:{depth:.19444,height:.43056,italic:0,skew:.02778},957:{depth:0,height:.43056,italic:.06366,skew:.02778},958:{depth:.19444,height:.69444,italic:.04601,skew:.11111},959:{depth:0,height:.43056,italic:0,skew:.05556},960:{depth:0,height:.43056,italic:.03588,skew:0},961:{depth:.19444,height:.43056,italic:0,skew:.08334},962:{depth:.09722,height:.43056,italic:.07986,skew:.08334},963:{depth:0,height:.43056,italic:.03588,skew:0},964:{depth:0,height:.43056,italic:.1132,skew:.02778},965:{depth:0,height:.43056,italic:.03588,skew:.02778},966:{depth:.19444,height:.43056,italic:0,skew:.08334},967:{depth:.19444,height:.43056,italic:0,skew:.05556},968:{depth:.19444,height:.69444,italic:.03588,skew:.11111},969:{depth:0,height:.43056,italic:.03588,skew:0},977:{depth:0,height:.69444,italic:0,skew:.08334},981:{depth:.19444,height:.69444,italic:0,skew:.08334},982:{depth:0,height:.43056,italic:.02778,skew:0},1009:{depth:.19444,height:.43056,italic:0,skew:.08334},1013:{depth:0,height:.43056,italic:0,skew:.05556}},"Math-Regular":{65:{depth:0,height:.68333,italic:0,skew:.13889},66:{depth:0,height:.68333,italic:.05017,skew:.08334},67:{depth:0,height:.68333,italic:.07153,skew:.08334},68:{depth:0,height:.68333,italic:.02778,skew:.05556},69:{depth:0,height:.68333,italic:.05764,skew:.08334},70:{depth:0,height:.68333,italic:.13889,skew:.08334},71:{depth:0,height:.68333,italic:0,skew:.08334},72:{depth:0,height:.68333,italic:.08125,skew:.05556},73:{depth:0,height:.68333,italic:.07847,skew:.11111},74:{depth:0,height:.68333,italic:.09618,skew:.16667},75:{depth:0,height:.68333,italic:.07153,skew:.05556},76:{depth:0,height:.68333,italic:0,skew:.02778},77:{depth:0,height:.68333,italic:.10903,skew:.08334},78:{depth:0,height:.68333,italic:.10903,skew:.08334},79:{depth:0,height:.68333,italic:.02778,skew:.08334},80:{depth:0,height:.68333,italic:.13889,skew:.08334},81:{depth:.19444,height:.68333,italic:0,skew:.08334},82:{depth:0,height:.68333,italic:.00773,skew:.08334},83:{depth:0,height:.68333,italic:.05764,skew:.08334},84:{depth:0,height:.68333,italic:.13889,skew:.08334},85:{depth:0,height:.68333,italic:.10903,skew:.02778},86:{depth:0,height:.68333,italic:.22222,skew:0},87:{depth:0,height:.68333,italic:.13889,skew:0},88:{depth:0,height:.68333,italic:.07847,skew:.08334},89:{depth:0,height:.68333,italic:.22222,skew:0},90:{depth:0,height:.68333,italic:.07153,skew:.08334},97:{depth:0,height:.43056,italic:0,skew:0},98:{depth:0,height:.69444,italic:0,skew:0},99:{depth:0,height:.43056,italic:0,skew:.05556},100:{depth:0,height:.69444,italic:0,skew:.16667},101:{depth:0,height:.43056,italic:0,skew:.05556},102:{depth:.19444,height:.69444,italic:.10764,skew:.16667},103:{depth:.19444,height:.43056,italic:.03588,skew:.02778},104:{depth:0,height:.69444,italic:0,skew:0},105:{depth:0,height:.65952,italic:0,skew:0},106:{depth:.19444,height:.65952,italic:.05724,skew:0},107:{depth:0,height:.69444,italic:.03148,skew:0},108:{depth:0,height:.69444,italic:.01968,skew:.08334},109:{depth:0,height:.43056,italic:0,skew:0},110:{depth:0,height:.43056,italic:0,skew:0},111:{depth:0,height:.43056,italic:0,skew:.05556},112:{depth:.19444,height:.43056,italic:0,skew:.08334},113:{depth:.19444,height:.43056,italic:.03588,skew:.08334},114:{depth:0,height:.43056,italic:.02778,skew:.05556},115:{depth:0,height:.43056,italic:0,skew:.05556},116:{depth:0,height:.61508,italic:0,skew:.08334},117:{depth:0,height:.43056,italic:0,skew:.02778},118:{depth:0,height:.43056,italic:.03588,skew:.02778},119:{depth:0,height:.43056,italic:.02691,skew:.08334},120:{depth:0,height:.43056,italic:0,skew:.02778},121:{depth:.19444,height:.43056,italic:.03588,skew:.05556},122:{depth:0,height:.43056,italic:.04398,skew:.05556},915:{depth:0,height:.68333,italic:.13889,skew:.08334},916:{depth:0,height:.68333,italic:0,skew:.16667},920:{depth:0,height:.68333,italic:.02778,skew:.08334},923:{depth:0,height:.68333,italic:0,skew:.16667},926:{depth:0,height:.68333,italic:.07569,skew:.08334},928:{depth:0,height:.68333,italic:.08125,skew:.05556},931:{depth:0,height:.68333,italic:.05764,skew:.08334},933:{depth:0,height:.68333,italic:.13889,skew:.05556},934:{depth:0,height:.68333,italic:0,skew:.08334},936:{depth:0,height:.68333,italic:.11,skew:.05556},937:{depth:0,height:.68333,italic:.05017,skew:.08334},945:{depth:0,height:.43056,italic:.0037,skew:.02778},946:{depth:.19444,height:.69444,italic:.05278,skew:.08334},947:{depth:.19444,height:.43056,italic:.05556,skew:0},948:{depth:0,height:.69444,italic:.03785,skew:.05556},949:{depth:0,height:.43056,italic:0,skew:.08334},950:{depth:.19444,height:.69444,italic:.07378,skew:.08334},951:{depth:.19444,height:.43056,italic:.03588,skew:.05556},952:{depth:0,height:.69444,italic:.02778,skew:.08334},953:{depth:0,height:.43056,italic:0,skew:.05556},954:{depth:0,height:.43056,italic:0,skew:0},955:{depth:0,height:.69444,italic:0,skew:0},956:{depth:.19444,height:.43056,italic:0,skew:.02778},957:{depth:0,height:.43056,italic:.06366,skew:.02778},958:{depth:.19444,height:.69444,italic:.04601,skew:.11111},959:{depth:0,height:.43056,italic:0,skew:.05556},960:{depth:0,height:.43056,italic:.03588,skew:0},961:{depth:.19444,height:.43056,italic:0,skew:.08334},962:{depth:.09722,height:.43056,italic:.07986,skew:.08334},963:{depth:0,height:.43056,italic:.03588,skew:0},964:{depth:0,height:.43056,italic:.1132,skew:.02778},965:{depth:0,height:.43056,italic:.03588,skew:.02778},966:{depth:.19444,height:.43056,italic:0,skew:.08334},967:{depth:.19444,height:.43056,italic:0,skew:.05556},968:{depth:.19444,height:.69444,italic:.03588,skew:.11111},969:{depth:0,height:.43056,italic:.03588,skew:0},977:{depth:0,height:.69444,italic:0,skew:.08334},981:{depth:.19444,height:.69444,italic:0,skew:.08334},982:{depth:0,height:.43056,italic:.02778,skew:0},1009:{depth:.19444,height:.43056,italic:0,skew:.08334},1013:{depth:0,height:.43056,italic:0,skew:.05556}},"SansSerif-Regular":{33:{depth:0,height:.69444,italic:0,skew:0},34:{depth:0,height:.69444,italic:0,skew:0},35:{depth:.19444,height:.69444,italic:0,skew:0},36:{depth:.05556,height:.75,italic:0,skew:0},37:{depth:.05556,height:.75,italic:0,skew:0},38:{depth:0,height:.69444,italic:0,skew:0},39:{depth:0,height:.69444,italic:0,skew:0},40:{depth:.25,height:.75,italic:0,skew:0},41:{depth:.25,height:.75,italic:0,skew:0},42:{depth:0,height:.75,italic:0,skew:0},43:{depth:.08333,height:.58333,italic:0,skew:0},44:{depth:.125,height:.08333,italic:0,skew:0},45:{depth:0,height:.44444,italic:0,skew:0},46:{depth:0,height:.08333,italic:0,skew:0},47:{depth:.25,height:.75,italic:0,skew:0},48:{depth:0,height:.65556,italic:0,skew:0},49:{depth:0,height:.65556,italic:0,skew:0},50:{depth:0,height:.65556,italic:0,skew:0},51:{depth:0,height:.65556,italic:0,skew:0},52:{depth:0,height:.65556,italic:0,skew:0},53:{depth:0,height:.65556,italic:0,skew:0},54:{depth:0,height:.65556,italic:0,skew:0},55:{depth:0,height:.65556,italic:0,skew:0},56:{depth:0,height:.65556,italic:0,skew:0},57:{depth:0,height:.65556,italic:0,skew:0},58:{depth:0,height:.44444,italic:0,skew:0},59:{depth:.125,height:.44444,italic:0,skew:0},61:{depth:-.13,height:.37,italic:0,skew:0},63:{depth:0,height:.69444,italic:0,skew:0},64:{depth:0,height:.69444,italic:0,skew:0},65:{depth:0,height:.69444,italic:0,skew:0},66:{depth:0,height:.69444,italic:0,skew:0},67:{depth:0,height:.69444,italic:0,skew:0},68:{depth:0,height:.69444,italic:0,skew:0},69:{depth:0,height:.69444,italic:0,skew:0},70:{depth:0,height:.69444,italic:0,skew:0},71:{depth:0,height:.69444,italic:0,skew:0},72:{depth:0,height:.69444,italic:0,skew:0},73:{depth:0,height:.69444,italic:0,skew:0},74:{depth:0,height:.69444,italic:0,skew:0},75:{depth:0,height:.69444,italic:0,skew:0},76:{depth:0,height:.69444,italic:0,skew:0},77:{depth:0,height:.69444,italic:0,skew:0},78:{depth:0,height:.69444,italic:0,skew:0},79:{depth:0,height:.69444,italic:0,skew:0},80:{depth:0,height:.69444,italic:0,skew:0},81:{depth:.125,height:.69444,italic:0,skew:0},82:{depth:0,height:.69444,italic:0,skew:0},83:{depth:0,height:.69444,italic:0,skew:0},84:{depth:0,height:.69444,italic:0,skew:0},85:{depth:0,height:.69444,italic:0,skew:0},86:{depth:0,height:.69444,italic:.01389,skew:0},87:{depth:0,height:.69444,italic:.01389,skew:0},88:{depth:0,height:.69444,italic:0,skew:0},89:{depth:0,height:.69444,italic:.025,skew:0},90:{depth:0,height:.69444,italic:0,skew:0},91:{depth:.25,height:.75,italic:0,skew:0},93:{depth:.25,height:.75,italic:0,skew:0},94:{depth:0,height:.69444,italic:0,skew:0},95:{depth:.35,height:.09444,italic:.02778,skew:0},97:{depth:0,height:.44444,italic:0,skew:0},98:{depth:0,height:.69444,italic:0,skew:0},99:{depth:0,height:.44444,italic:0,skew:0},100:{depth:0,height:.69444,italic:0,skew:0},101:{depth:0,height:.44444,italic:0,skew:0},102:{depth:0,height:.69444,italic:.06944,skew:0},103:{depth:.19444,height:.44444,italic:.01389,skew:0},104:{depth:0,height:.69444,italic:0,skew:0},105:{depth:0,height:.67937,italic:0,skew:0},106:{depth:.19444,height:.67937,italic:0,skew:0},107:{depth:0,height:.69444,italic:0,skew:0},108:{depth:0,height:.69444,italic:0,skew:0},109:{depth:0,height:.44444,italic:0,skew:0},110:{depth:0,height:.44444,italic:0,skew:0},111:{depth:0,height:.44444,italic:0,skew:0},112:{depth:.19444,height:.44444,italic:0,skew:0},113:{depth:.19444,height:.44444,italic:0,skew:0},114:{depth:0,height:.44444,italic:.01389,skew:0},115:{depth:0,height:.44444,italic:0,skew:0},116:{depth:0,height:.57143,italic:0,skew:0},117:{depth:0,height:.44444,italic:0,skew:0},118:{depth:0,height:.44444,italic:.01389,skew:0},119:{depth:0,height:.44444,italic:.01389,skew:0},120:{depth:0,height:.44444,italic:0,skew:0},121:{depth:.19444,height:.44444,italic:.01389,skew:0},122:{depth:0,height:.44444,italic:0,skew:0},126:{depth:.35,height:.32659,italic:0,skew:0},305:{depth:0,height:.44444,italic:0,skew:0},567:{depth:.19444,height:.44444,italic:0,skew:0},768:{depth:0,height:.69444,italic:0,skew:0},769:{depth:0,height:.69444,italic:0,skew:0},770:{depth:0,height:.69444,italic:0,skew:0},771:{depth:0,height:.67659,italic:0,skew:0},772:{depth:0,height:.60889,italic:0,skew:0},774:{depth:0,height:.69444,italic:0,skew:0},775:{depth:0,height:.67937,italic:0,skew:0},776:{depth:0,height:.67937,italic:0,skew:0},778:{depth:0,height:.69444,italic:0,skew:0},779:{depth:0,height:.69444,italic:0,skew:0},780:{depth:0,height:.63194,italic:0,skew:0},915:{depth:0,height:.69444,italic:0,skew:0},916:{depth:0,height:.69444,italic:0,skew:0},920:{depth:0,height:.69444,italic:0,skew:0},923:{depth:0,height:.69444,italic:0,skew:0},926:{depth:0,height:.69444,italic:0,skew:0},928:{depth:0,height:.69444,italic:0,skew:0},931:{depth:0,height:.69444,italic:0,skew:0},933:{depth:0,height:.69444,italic:0,skew:0},934:{depth:0,height:.69444,italic:0,skew:0},936:{depth:0,height:.69444,italic:0,skew:0},937:{depth:0,height:.69444,italic:0,skew:0},8211:{depth:0,height:.44444,italic:.02778,skew:0},8212:{depth:0,height:.44444,italic:.02778,skew:0},8216:{depth:0,height:.69444,italic:0,skew:0},8217:{depth:0,height:.69444,italic:0,skew:0},8220:{depth:0,height:.69444,italic:0,skew:0},8221:{depth:0,height:.69444,italic:0,skew:0}},"Script-Regular":{65:{depth:0,height:.7,italic:.22925,skew:0},66:{depth:0,height:.7,italic:.04087,skew:0},67:{depth:0,height:.7,italic:.1689,skew:0},68:{depth:0,height:.7,italic:.09371,skew:0},69:{depth:0,height:.7,italic:.18583,skew:0},70:{depth:0,height:.7,italic:.13634,skew:0},71:{depth:0,height:.7,italic:.17322,skew:0},72:{depth:0,height:.7,italic:.29694,skew:0},73:{depth:0,height:.7,italic:.19189,skew:0},74:{depth:.27778,height:.7,italic:.19189,skew:0},75:{depth:0,height:.7,italic:.31259,skew:0},76:{depth:0,height:.7,italic:.19189,skew:0},77:{depth:0,height:.7,italic:.15981,skew:0},78:{depth:0,height:.7,italic:.3525,skew:0},79:{depth:0,height:.7,italic:.08078,skew:0},80:{depth:0,height:.7,italic:.08078,skew:0},81:{depth:0,height:.7,italic:.03305,skew:0},82:{depth:0,height:.7,italic:.06259,skew:0},83:{depth:0,height:.7,italic:.19189,skew:0},84:{depth:0,height:.7,italic:.29087,skew:0},85:{depth:0,height:.7,italic:.25815,skew:0},86:{depth:0,height:.7,italic:.27523,skew:0},87:{depth:0,height:.7,italic:.27523,skew:0},88:{depth:0,height:.7,italic:.26006,skew:0},89:{depth:0,height:.7,italic:.2939,skew:0},90:{depth:0,height:.7,italic:.24037,skew:0}},"Size1-Regular":{40:{depth:.35001,height:.85,italic:0,skew:0},41:{depth:.35001,height:.85,italic:0,skew:0},47:{depth:.35001,height:.85,italic:0,skew:0},91:{depth:.35001,height:.85,italic:0,skew:0},92:{depth:.35001,height:.85,italic:0,skew:0},93:{depth:.35001,height:.85,italic:0,skew:0},123:{depth:.35001,height:.85,italic:0,skew:0},125:{depth:.35001,height:.85,italic:0,skew:0},710:{depth:0,height:.72222,italic:0,skew:0},732:{depth:0,height:.72222,italic:0,skew:0},770:{depth:0,height:.72222,italic:0,skew:0},771:{depth:0,height:.72222,italic:0,skew:0},8214:{depth:-99e-5,height:.601,italic:0,skew:0},8593:{depth:1e-5,height:.6,italic:0,skew:0},8595:{depth:1e-5,height:.6,italic:0,skew:0},8657:{depth:1e-5,height:.6,italic:0,skew:0},8659:{depth:1e-5,height:.6,italic:0,skew:0},8719:{depth:.25001,height:.75,italic:0,skew:0},8720:{depth:.25001,height:.75,italic:0,skew:0},8721:{depth:.25001,height:.75,italic:0,skew:0},8730:{depth:.35001,height:.85,italic:0,skew:0},8739:{depth:-.00599,height:.606,italic:0,skew:0},8741:{depth:-.00599,height:.606,italic:0,skew:0},8747:{depth:.30612,height:.805,italic:.19445,skew:0},8748:{depth:.306,height:.805,italic:.19445,skew:0},8749:{depth:.306,height:.805,italic:.19445,skew:0},8750:{depth:.30612,height:.805,italic:.19445,skew:0},8896:{depth:.25001,height:.75,italic:0,skew:0},8897:{depth:.25001,height:.75,italic:0,skew:0},8898:{depth:.25001,height:.75,italic:0,skew:0},8899:{depth:.25001,height:.75,italic:0,skew:0},8968:{depth:.35001,height:.85,italic:0,skew:0},8969:{depth:.35001,height:.85,italic:0,skew:0},8970:{depth:.35001,height:.85,italic:0,skew:0},8971:{depth:.35001,height:.85,italic:0,skew:0},9168:{depth:-99e-5,height:.601,italic:0,skew:0},10216:{depth:.35001,height:.85,italic:0,skew:0},10217:{depth:.35001,height:.85,italic:0,skew:0},10752:{depth:.25001,height:.75,italic:0,skew:0},10753:{depth:.25001,height:.75,italic:0,skew:0},10754:{depth:.25001,height:.75,italic:0,skew:0},10756:{depth:.25001,height:.75,italic:0,skew:0},10758:{depth:.25001,height:.75,italic:0,skew:0}},"Size2-Regular":{40:{depth:.65002,height:1.15,italic:0,skew:0},41:{depth:.65002,height:1.15,italic:0,skew:0},47:{depth:.65002,height:1.15,italic:0,skew:0},91:{depth:.65002,height:1.15,italic:0,skew:0},92:{depth:.65002,height:1.15,italic:0,skew:0},93:{depth:.65002,height:1.15,italic:0,skew:0},123:{depth:.65002,height:1.15,italic:0,skew:0},125:{depth:.65002,height:1.15,italic:0,skew:0},710:{depth:0,height:.75,italic:0,skew:0},732:{depth:0,height:.75,italic:0,skew:0},770:{depth:0,height:.75,italic:0,skew:0},771:{depth:0,height:.75,italic:0,skew:0},8719:{depth:.55001,height:1.05,italic:0,skew:0},8720:{depth:.55001,height:1.05,italic:0,skew:0},8721:{depth:.55001,height:1.05,italic:0,skew:0},8730:{depth:.65002,height:1.15,italic:0,skew:0},8747:{depth:.86225,height:1.36,italic:.44445,skew:0},8748:{depth:.862,height:1.36,italic:.44445,skew:0},8749:{depth:.862,height:1.36,italic:.44445,skew:0},8750:{depth:.86225,height:1.36,italic:.44445,skew:0},8896:{depth:.55001,height:1.05,italic:0,skew:0},8897:{depth:.55001,height:1.05,italic:0,skew:0},8898:{depth:.55001,height:1.05,italic:0,skew:0},8899:{depth:.55001,height:1.05,italic:0,skew:0},8968:{depth:.65002,height:1.15,italic:0,skew:0},8969:{depth:.65002,height:1.15,italic:0,skew:0},8970:{depth:.65002,height:1.15,italic:0,skew:0},8971:{depth:.65002,height:1.15,italic:0,skew:0},10216:{depth:.65002,height:1.15,italic:0,skew:0},10217:{depth:.65002,height:1.15,italic:0,skew:0},10752:{depth:.55001,height:1.05,italic:0,skew:0},10753:{depth:.55001,height:1.05,italic:0,skew:0},10754:{depth:.55001,height:1.05,italic:0,skew:0},10756:{depth:.55001,height:1.05,italic:0,skew:0},10758:{depth:.55001,height:1.05,italic:0,skew:0}},"Size3-Regular":{40:{depth:.95003,height:1.45,italic:0,skew:0},41:{depth:.95003,height:1.45,italic:0,skew:0},47:{depth:.95003,height:1.45,italic:0,skew:0},91:{depth:.95003,height:1.45,italic:0,skew:0},92:{depth:.95003,height:1.45,italic:0,skew:0},93:{depth:.95003,height:1.45,italic:0,skew:0},123:{depth:.95003,height:1.45,italic:0,skew:0},125:{depth:.95003,height:1.45,italic:0,skew:0},710:{depth:0,height:.75,italic:0,skew:0},732:{depth:0,height:.75,italic:0,skew:0},770:{depth:0,height:.75,italic:0,skew:0},771:{depth:0,height:.75,italic:0,skew:0},8730:{depth:.95003,height:1.45,italic:0,skew:0},8968:{depth:.95003,height:1.45,italic:0,skew:0},8969:{depth:.95003,height:1.45,italic:0,skew:0},8970:{depth:.95003,height:1.45,italic:0,skew:0},8971:{depth:.95003,height:1.45,italic:0,skew:0},10216:{depth:.95003,height:1.45,italic:0,skew:0},10217:{depth:.95003,height:1.45,italic:0,skew:0}},"Size4-Regular":{40:{depth:1.25003,height:1.75,italic:0,skew:0},41:{depth:1.25003,height:1.75,italic:0,skew:0},47:{depth:1.25003,height:1.75,italic:0,skew:0},91:{depth:1.25003,height:1.75,italic:0,skew:0},92:{depth:1.25003,height:1.75,italic:0,skew:0},93:{depth:1.25003,height:1.75,italic:0,skew:0},123:{depth:1.25003,height:1.75,italic:0,skew:0},125:{depth:1.25003,height:1.75,italic:0,skew:0},710:{depth:0,height:.825,italic:0,skew:0},732:{depth:0,height:.825,italic:0,skew:0},770:{depth:0,height:.825,italic:0,skew:0},771:{depth:0,height:.825,italic:0,skew:0},8730:{depth:1.25003,height:1.75,italic:0,skew:0},8968:{depth:1.25003,height:1.75,italic:0,skew:0},8969:{depth:1.25003,height:1.75,italic:0,skew:0},8970:{depth:1.25003,height:1.75,italic:0,skew:0},8971:{depth:1.25003,height:1.75,italic:0,skew:0},9115:{depth:.64502,height:1.155,italic:0,skew:0},9116:{depth:1e-5,height:.6,italic:0,skew:0},9117:{depth:.64502,height:1.155,italic:0,skew:0},9118:{depth:.64502,height:1.155,italic:0,skew:0},9119:{depth:1e-5,height:.6,italic:0,skew:0},9120:{depth:.64502,height:1.155,italic:0,skew:0},9121:{depth:.64502,height:1.155,italic:0,skew:0},9122:{depth:-99e-5,height:.601,italic:0,skew:0},9123:{depth:.64502,height:1.155,italic:0,skew:0},9124:{depth:.64502,height:1.155,italic:0,skew:0},9125:{depth:-99e-5,height:.601,italic:0, +skew:0},9126:{depth:.64502,height:1.155,italic:0,skew:0},9127:{depth:1e-5,height:.9,italic:0,skew:0},9128:{depth:.65002,height:1.15,italic:0,skew:0},9129:{depth:.90001,height:0,italic:0,skew:0},9130:{depth:0,height:.3,italic:0,skew:0},9131:{depth:1e-5,height:.9,italic:0,skew:0},9132:{depth:.65002,height:1.15,italic:0,skew:0},9133:{depth:.90001,height:0,italic:0,skew:0},9143:{depth:.88502,height:.915,italic:0,skew:0},10216:{depth:1.25003,height:1.75,italic:0,skew:0},10217:{depth:1.25003,height:1.75,italic:0,skew:0},57344:{depth:-.00499,height:.605,italic:0,skew:0},57345:{depth:-.00499,height:.605,italic:0,skew:0},57680:{depth:0,height:.12,italic:0,skew:0},57681:{depth:0,height:.12,italic:0,skew:0},57682:{depth:0,height:.12,italic:0,skew:0},57683:{depth:0,height:.12,italic:0,skew:0}},"Typewriter-Regular":{33:{depth:0,height:.61111,italic:0,skew:0},34:{depth:0,height:.61111,italic:0,skew:0},35:{depth:0,height:.61111,italic:0,skew:0},36:{depth:.08333,height:.69444,italic:0,skew:0},37:{depth:.08333,height:.69444,italic:0,skew:0},38:{depth:0,height:.61111,italic:0,skew:0},39:{depth:0,height:.61111,italic:0,skew:0},40:{depth:.08333,height:.69444,italic:0,skew:0},41:{depth:.08333,height:.69444,italic:0,skew:0},42:{depth:0,height:.52083,italic:0,skew:0},43:{depth:-.08056,height:.53055,italic:0,skew:0},44:{depth:.13889,height:.125,italic:0,skew:0},45:{depth:-.08056,height:.53055,italic:0,skew:0},46:{depth:0,height:.125,italic:0,skew:0},47:{depth:.08333,height:.69444,italic:0,skew:0},48:{depth:0,height:.61111,italic:0,skew:0},49:{depth:0,height:.61111,italic:0,skew:0},50:{depth:0,height:.61111,italic:0,skew:0},51:{depth:0,height:.61111,italic:0,skew:0},52:{depth:0,height:.61111,italic:0,skew:0},53:{depth:0,height:.61111,italic:0,skew:0},54:{depth:0,height:.61111,italic:0,skew:0},55:{depth:0,height:.61111,italic:0,skew:0},56:{depth:0,height:.61111,italic:0,skew:0},57:{depth:0,height:.61111,italic:0,skew:0},58:{depth:0,height:.43056,italic:0,skew:0},59:{depth:.13889,height:.43056,italic:0,skew:0},60:{depth:-.05556,height:.55556,italic:0,skew:0},61:{depth:-.19549,height:.41562,italic:0,skew:0},62:{depth:-.05556,height:.55556,italic:0,skew:0},63:{depth:0,height:.61111,italic:0,skew:0},64:{depth:0,height:.61111,italic:0,skew:0},65:{depth:0,height:.61111,italic:0,skew:0},66:{depth:0,height:.61111,italic:0,skew:0},67:{depth:0,height:.61111,italic:0,skew:0},68:{depth:0,height:.61111,italic:0,skew:0},69:{depth:0,height:.61111,italic:0,skew:0},70:{depth:0,height:.61111,italic:0,skew:0},71:{depth:0,height:.61111,italic:0,skew:0},72:{depth:0,height:.61111,italic:0,skew:0},73:{depth:0,height:.61111,italic:0,skew:0},74:{depth:0,height:.61111,italic:0,skew:0},75:{depth:0,height:.61111,italic:0,skew:0},76:{depth:0,height:.61111,italic:0,skew:0},77:{depth:0,height:.61111,italic:0,skew:0},78:{depth:0,height:.61111,italic:0,skew:0},79:{depth:0,height:.61111,italic:0,skew:0},80:{depth:0,height:.61111,italic:0,skew:0},81:{depth:.13889,height:.61111,italic:0,skew:0},82:{depth:0,height:.61111,italic:0,skew:0},83:{depth:0,height:.61111,italic:0,skew:0},84:{depth:0,height:.61111,italic:0,skew:0},85:{depth:0,height:.61111,italic:0,skew:0},86:{depth:0,height:.61111,italic:0,skew:0},87:{depth:0,height:.61111,italic:0,skew:0},88:{depth:0,height:.61111,italic:0,skew:0},89:{depth:0,height:.61111,italic:0,skew:0},90:{depth:0,height:.61111,italic:0,skew:0},91:{depth:.08333,height:.69444,italic:0,skew:0},92:{depth:.08333,height:.69444,italic:0,skew:0},93:{depth:.08333,height:.69444,italic:0,skew:0},94:{depth:0,height:.61111,italic:0,skew:0},95:{depth:.09514,height:0,italic:0,skew:0},96:{depth:0,height:.61111,italic:0,skew:0},97:{depth:0,height:.43056,italic:0,skew:0},98:{depth:0,height:.61111,italic:0,skew:0},99:{depth:0,height:.43056,italic:0,skew:0},100:{depth:0,height:.61111,italic:0,skew:0},101:{depth:0,height:.43056,italic:0,skew:0},102:{depth:0,height:.61111,italic:0,skew:0},103:{depth:.22222,height:.43056,italic:0,skew:0},104:{depth:0,height:.61111,italic:0,skew:0},105:{depth:0,height:.61111,italic:0,skew:0},106:{depth:.22222,height:.61111,italic:0,skew:0},107:{depth:0,height:.61111,italic:0,skew:0},108:{depth:0,height:.61111,italic:0,skew:0},109:{depth:0,height:.43056,italic:0,skew:0},110:{depth:0,height:.43056,italic:0,skew:0},111:{depth:0,height:.43056,italic:0,skew:0},112:{depth:.22222,height:.43056,italic:0,skew:0},113:{depth:.22222,height:.43056,italic:0,skew:0},114:{depth:0,height:.43056,italic:0,skew:0},115:{depth:0,height:.43056,italic:0,skew:0},116:{depth:0,height:.55358,italic:0,skew:0},117:{depth:0,height:.43056,italic:0,skew:0},118:{depth:0,height:.43056,italic:0,skew:0},119:{depth:0,height:.43056,italic:0,skew:0},120:{depth:0,height:.43056,italic:0,skew:0},121:{depth:.22222,height:.43056,italic:0,skew:0},122:{depth:0,height:.43056,italic:0,skew:0},123:{depth:.08333,height:.69444,italic:0,skew:0},124:{depth:.08333,height:.69444,italic:0,skew:0},125:{depth:.08333,height:.69444,italic:0,skew:0},126:{depth:0,height:.61111,italic:0,skew:0},127:{depth:0,height:.61111,italic:0,skew:0},305:{depth:0,height:.43056,italic:0,skew:0},567:{depth:.22222,height:.43056,italic:0,skew:0},768:{depth:0,height:.61111,italic:0,skew:0},769:{depth:0,height:.61111,italic:0,skew:0},770:{depth:0,height:.61111,italic:0,skew:0},771:{depth:0,height:.61111,italic:0,skew:0},772:{depth:0,height:.56555,italic:0,skew:0},774:{depth:0,height:.61111,italic:0,skew:0},776:{depth:0,height:.61111,italic:0,skew:0},778:{depth:0,height:.61111,italic:0,skew:0},780:{depth:0,height:.56597,italic:0,skew:0},915:{depth:0,height:.61111,italic:0,skew:0},916:{depth:0,height:.61111,italic:0,skew:0},920:{depth:0,height:.61111,italic:0,skew:0},923:{depth:0,height:.61111,italic:0,skew:0},926:{depth:0,height:.61111,italic:0,skew:0},928:{depth:0,height:.61111,italic:0,skew:0},931:{depth:0,height:.61111,italic:0,skew:0},933:{depth:0,height:.61111,italic:0,skew:0},934:{depth:0,height:.61111,italic:0,skew:0},936:{depth:0,height:.61111,italic:0,skew:0},937:{depth:0,height:.61111,italic:0,skew:0},2018:{depth:0,height:.61111,italic:0,skew:0},2019:{depth:0,height:.61111,italic:0,skew:0},8242:{depth:0,height:.61111,italic:0,skew:0}}}},{}],18:[function(e,t,i){var h=e("./utils");var a=e("./ParseError");var r={"\\sqrt":{numArgs:1,numOptionalArgs:1,handler:function(e,t,i,h){return{type:"sqrt",body:i,index:t}}},"\\text":{numArgs:1,argTypes:["text"],greediness:2,handler:function(e,t){var i;if(t.type==="ordgroup"){i=t.value}else{i=[t]}return{type:"text",body:i}}},"\\color":{numArgs:2,allowedInText:true,greediness:3,argTypes:["color","original"],handler:function(e,t,i){var h;if(i.type==="ordgroup"){h=i.value}else{h=[i]}return{type:"color",color:t.value,value:h}}},"\\overline":{numArgs:1,handler:function(e,t){return{type:"overline",body:t}}},"\\rule":{numArgs:2,numOptionalArgs:1,argTypes:["size","size","size"],handler:function(e,t,i,h){return{type:"rule",shift:t&&t.value,width:i.value,height:h.value}}},"\\KaTeX":{numArgs:0,handler:function(e){return{type:"katex"}}},"\\phantom":{numArgs:1,handler:function(e,t){var i;if(t.type==="ordgroup"){i=t.value}else{i=[t]}return{type:"phantom",value:i}}}};var l={"\\bigl":{type:"open",size:1},"\\Bigl":{type:"open",size:2},"\\biggl":{type:"open",size:3},"\\Biggl":{type:"open",size:4},"\\bigr":{type:"close",size:1},"\\Bigr":{type:"close",size:2},"\\biggr":{type:"close",size:3},"\\Biggr":{type:"close",size:4},"\\bigm":{type:"rel",size:1},"\\Bigm":{type:"rel",size:2},"\\biggm":{type:"rel",size:3},"\\Biggm":{type:"rel",size:4},"\\big":{type:"textord",size:1},"\\Big":{type:"textord",size:2},"\\bigg":{type:"textord",size:3},"\\Bigg":{type:"textord",size:4}};var s=["(",")","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\\lceil","\\rceil","<",">","\\langle","\\rangle","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\\lmoustache","\\rmoustache","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];var p={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak"};var c=[{funcs:["\\blue","\\orange","\\pink","\\red","\\green","\\gray","\\purple","\\blueA","\\blueB","\\blueC","\\blueD","\\blueE","\\tealA","\\tealB","\\tealC","\\tealD","\\tealE","\\greenA","\\greenB","\\greenC","\\greenD","\\greenE","\\goldA","\\goldB","\\goldC","\\goldD","\\goldE","\\redA","\\redB","\\redC","\\redD","\\redE","\\maroonA","\\maroonB","\\maroonC","\\maroonD","\\maroonE","\\purpleA","\\purpleB","\\purpleC","\\purpleD","\\purpleE","\\mintA","\\mintB","\\mintC","\\grayA","\\grayB","\\grayC","\\grayD","\\grayE","\\grayF","\\grayG","\\grayH","\\grayI","\\kaBlue","\\kaGreen"],data:{numArgs:1,allowedInText:true,greediness:3,handler:function(e,t){var i;if(t.type==="ordgroup"){i=t.value}else{i=[t]}return{type:"color",color:"katex-"+e.slice(1),value:i}}}},{funcs:["\\arcsin","\\arccos","\\arctan","\\arg","\\cos","\\cosh","\\cot","\\coth","\\csc","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\tan","\\tanh"],data:{numArgs:0,handler:function(e){return{type:"op",limits:false,symbol:false,body:e}}}},{funcs:["\\det","\\gcd","\\inf","\\lim","\\liminf","\\limsup","\\max","\\min","\\Pr","\\sup"],data:{numArgs:0,handler:function(e){return{type:"op",limits:true,symbol:false,body:e}}}},{funcs:["\\int","\\iint","\\iiint","\\oint"],data:{numArgs:0,handler:function(e){return{type:"op",limits:false,symbol:true,body:e}}}},{funcs:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint"],data:{numArgs:0,handler:function(e){return{type:"op",limits:true,symbol:true,body:e}}}},{funcs:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom"],data:{numArgs:2,greediness:2,handler:function(e,t,i){var h;var a=null;var r=null;var l="auto";switch(e){case"\\dfrac":case"\\frac":case"\\tfrac":h=true;break;case"\\dbinom":case"\\binom":case"\\tbinom":h=false;a="(";r=")";break;default:throw new Error("Unrecognized genfrac command")}switch(e){case"\\dfrac":case"\\dbinom":l="display";break;case"\\tfrac":case"\\tbinom":l="text";break}return{type:"genfrac",numer:t,denom:i,hasBarLine:h,leftDelim:a,rightDelim:r,size:l}}}},{funcs:["\\llap","\\rlap"],data:{numArgs:1,allowedInText:true,handler:function(e,t){return{type:e.slice(1),body:t}}}},{funcs:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg","\\left","\\right"],data:{numArgs:1,handler:function(e,t,i){if(!h.contains(s,t.value)){throw new a("Invalid delimiter: '"+t.value+"' after '"+e+"'",this.lexer,i[1])}if(e==="\\left"||e==="\\right"){return{type:"leftright",value:t.value}}else{return{type:"delimsizing",size:l[e].size,delimType:l[e].type,value:t.value}}}}},{funcs:["\\tiny","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"],data:{numArgs:0}},{funcs:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],data:{numArgs:0}},{funcs:["\\mathrm","\\mathit","\\mathbf","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],data:{numArgs:1,handler:function(e,t){if(e in p){e=p[e]}return{type:"font",font:e.slice(1),body:t}}}},{funcs:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot"],data:{numArgs:1,handler:function(e,t){return{type:"accent",accent:e,base:t}}}},{funcs:["\\over","\\choose"],data:{numArgs:0,handler:function(e){var t;switch(e){case"\\over":t="\\frac";break;case"\\choose":t="\\binom";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",replaceWith:t}}}},{funcs:["\\\\","\\cr"],data:{numArgs:0,numOptionalArgs:1,argTypes:["size"],handler:function(e,t){return{type:"cr",size:t}}}},{funcs:["\\begin","\\end"],data:{numArgs:1,argTypes:["text"],handler:function(e,t,i){if(t.type!=="ordgroup"){throw new a("Invalid environment name",this.lexer,i[1])}var h="";for(var r=0;r<t.value.length;++r){h+=t.value[r].value}return{type:"environment",name:h,namepos:i[1]}}}}];var n=function(e,t){for(var i=0;i<e.length;i++){r[e[i]]=t}};for(var o=0;o<c.length;o++){n(c[o].funcs,c[o].data)}for(var g in r){if(r.hasOwnProperty(g)){var d=r[g];r[g]={numArgs:d.numArgs,argTypes:d.argTypes,greediness:d.greediness===undefined?1:d.greediness,allowedInText:d.allowedInText?d.allowedInText:false,numOptionalArgs:d.numOptionalArgs===undefined?0:d.numOptionalArgs,handler:d.handler}}}t.exports={funcs:r}},{"./ParseError":5,"./utils":23}],19:[function(e,t,i){var h=e("./utils");function a(e,t){this.type=e;this.attributes={};this.children=t||[]}a.prototype.setAttribute=function(e,t){this.attributes[e]=t};a.prototype.toNode=function(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var t in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,t)){e.setAttribute(t,this.attributes[t])}}for(var i=0;i<this.children.length;i++){e.appendChild(this.children[i].toNode())}return e};a.prototype.toMarkup=function(){var e="<"+this.type;for(var t in this.attributes){if(Object.prototype.hasOwnProperty.call(this.attributes,t)){e+=" "+t+'="';e+=h.escape(this.attributes[t]);e+='"'}}e+=">";for(var i=0;i<this.children.length;i++){e+=this.children[i].toMarkup()}e+="</"+this.type+">";return e};function r(e){this.text=e}r.prototype.toNode=function(){return document.createTextNode(this.text)};r.prototype.toMarkup=function(){return h.escape(this.text)};t.exports={MathNode:a,TextNode:r}},{"./utils":23}],20:[function(e,t,i){function h(e,t,i){this.type=e;this.value=t;this.mode=i}function a(e,t,i){this.result=e;this.position=t}t.exports={ParseNode:h,ParseResult:a}},{}],21:[function(e,t,i){var h=e("./Parser");var a=function(e,t){var i=new h(e,t);return i.parse()};t.exports=a},{"./Parser":6}],22:[function(e,t,i){var h={math:{"\\equiv":{font:"main",group:"rel",replace:"\u2261"},"\\prec":{font:"main",group:"rel",replace:"\u227a"},"\\succ":{font:"main",group:"rel",replace:"\u227b"},"\\sim":{font:"main",group:"rel",replace:"\u223c"},"\\perp":{font:"main",group:"rel",replace:"\u22a5"},"\\preceq":{font:"main",group:"rel",replace:"\u2aaf"},"\\succeq":{font:"main",group:"rel",replace:"\u2ab0"},"\\simeq":{font:"main",group:"rel",replace:"\u2243"},"\\mid":{font:"main",group:"rel",replace:"\u2223"},"\\ll":{font:"main",group:"rel",replace:"\u226a"},"\\gg":{font:"main",group:"rel",replace:"\u226b"},"\\asymp":{font:"main",group:"rel",replace:"\u224d"},"\\parallel":{font:"main",group:"rel",replace:"\u2225"},"\\bowtie":{font:"main",group:"rel",replace:"\u22c8"},"\\smile":{font:"main",group:"rel",replace:"\u2323"},"\\sqsubseteq":{font:"main",group:"rel",replace:"\u2291"},"\\sqsupseteq":{font:"main",group:"rel",replace:"\u2292"},"\\doteq":{font:"main",group:"rel",replace:"\u2250"},"\\frown":{font:"main",group:"rel",replace:"\u2322"},"\\ni":{font:"main",group:"rel",replace:"\u220b"},"\\propto":{font:"main",group:"rel",replace:"\u221d"},"\\vdash":{font:"main",group:"rel",replace:"\u22a2"},"\\dashv":{font:"main",group:"rel",replace:"\u22a3"},"\\owns":{font:"main",group:"rel",replace:"\u220b"},"\\ldotp":{font:"main",group:"punct",replace:"."},"\\cdotp":{font:"main",group:"punct",replace:"\u22c5"},"\\#":{font:"main",group:"textord",replace:"#"},"\\&":{font:"main",group:"textord",replace:"&"},"\\aleph":{font:"main",group:"textord",replace:"\u2135"},"\\forall":{font:"main",group:"textord",replace:"\u2200"},"\\hbar":{font:"main",group:"textord",replace:"\u210f"},"\\exists":{font:"main",group:"textord",replace:"\u2203"},"\\nabla":{font:"main",group:"textord",replace:"\u2207"},"\\flat":{font:"main",group:"textord",replace:"\u266d"},"\\ell":{font:"main",group:"textord",replace:"\u2113"},"\\natural":{font:"main",group:"textord",replace:"\u266e"},"\\clubsuit":{font:"main",group:"textord",replace:"\u2663"},"\\wp":{font:"main",group:"textord",replace:"\u2118"},"\\sharp":{font:"main",group:"textord",replace:"\u266f"},"\\diamondsuit":{font:"main",group:"textord",replace:"\u2662"},"\\Re":{font:"main",group:"textord",replace:"\u211c"},"\\heartsuit":{font:"main",group:"textord",replace:"\u2661"},"\\Im":{font:"main",group:"textord",replace:"\u2111"},"\\spadesuit":{font:"main",group:"textord",replace:"\u2660"},"\\dag":{font:"main",group:"textord",replace:"\u2020"},"\\ddag":{font:"main",group:"textord",replace:"\u2021"},"\\rmoustache":{font:"main",group:"close",replace:"\u23b1"},"\\lmoustache":{font:"main",group:"open",replace:"\u23b0"},"\\rgroup":{font:"main",group:"close",replace:"\u27ef"},"\\lgroup":{font:"main",group:"open",replace:"\u27ee"},"\\mp":{font:"main",group:"bin",replace:"\u2213"},"\\ominus":{font:"main",group:"bin",replace:"\u2296"},"\\uplus":{font:"main",group:"bin",replace:"\u228e"},"\\sqcap":{font:"main",group:"bin",replace:"\u2293"},"\\ast":{font:"main",group:"bin",replace:"\u2217"},"\\sqcup":{font:"main",group:"bin",replace:"\u2294"},"\\bigcirc":{font:"main",group:"bin",replace:"\u25ef"},"\\bullet":{font:"main",group:"bin",replace:"\u2219"},"\\ddagger":{font:"main",group:"bin",replace:"\u2021"},"\\wr":{font:"main",group:"bin",replace:"\u2240"},"\\amalg":{font:"main",group:"bin",replace:"\u2a3f"},"\\longleftarrow":{font:"main",group:"rel",replace:"\u27f5"},"\\Leftarrow":{font:"main",group:"rel",replace:"\u21d0"},"\\Longleftarrow":{font:"main",group:"rel",replace:"\u27f8"},"\\longrightarrow":{font:"main",group:"rel",replace:"\u27f6"},"\\Rightarrow":{font:"main",group:"rel",replace:"\u21d2"},"\\Longrightarrow":{font:"main",group:"rel",replace:"\u27f9"},"\\leftrightarrow":{font:"main",group:"rel",replace:"\u2194"},"\\longleftrightarrow":{font:"main",group:"rel",replace:"\u27f7"},"\\Leftrightarrow":{font:"main",group:"rel",replace:"\u21d4"},"\\Longleftrightarrow":{font:"main",group:"rel",replace:"\u27fa"},"\\mapsto":{font:"main",group:"rel",replace:"\u21a6"},"\\longmapsto":{font:"main",group:"rel",replace:"\u27fc"},"\\nearrow":{font:"main",group:"rel",replace:"\u2197"},"\\hookleftarrow":{font:"main",group:"rel",replace:"\u21a9"},"\\hookrightarrow":{font:"main",group:"rel",replace:"\u21aa"},"\\searrow":{font:"main",group:"rel",replace:"\u2198"},"\\leftharpoonup":{font:"main",group:"rel",replace:"\u21bc"},"\\rightharpoonup":{font:"main",group:"rel",replace:"\u21c0"},"\\swarrow":{font:"main",group:"rel",replace:"\u2199"},"\\leftharpoondown":{font:"main",group:"rel",replace:"\u21bd"},"\\rightharpoondown":{font:"main",group:"rel",replace:"\u21c1"},"\\nwarrow":{font:"main",group:"rel",replace:"\u2196"},"\\rightleftharpoons":{font:"main",group:"rel",replace:"\u21cc"},"\\nless":{font:"ams",group:"rel",replace:"\u226e"},"\\nleqslant":{font:"ams",group:"rel",replace:"\ue010"},"\\nleqq":{font:"ams",group:"rel",replace:"\ue011"},"\\lneq":{font:"ams",group:"rel",replace:"\u2a87"},"\\lneqq":{font:"ams",group:"rel",replace:"\u2268"},"\\lvertneqq":{font:"ams",group:"rel",replace:"\ue00c"},"\\lnsim":{font:"ams",group:"rel",replace:"\u22e6"},"\\lnapprox":{font:"ams",group:"rel",replace:"\u2a89"},"\\nprec":{font:"ams",group:"rel",replace:"\u2280"},"\\npreceq":{font:"ams",group:"rel",replace:"\u22e0"},"\\precnsim":{font:"ams",group:"rel",replace:"\u22e8"},"\\precnapprox":{font:"ams",group:"rel",replace:"\u2ab9"},"\\nsim":{font:"ams",group:"rel",replace:"\u2241"},"\\nshortmid":{font:"ams",group:"rel",replace:"\ue006"},"\\nmid":{font:"ams",group:"rel",replace:"\u2224"},"\\nvdash":{font:"ams",group:"rel",replace:"\u22ac"},"\\nvDash":{font:"ams",group:"rel",replace:"\u22ad"},"\\ntriangleleft":{font:"ams",group:"rel",replace:"\u22ea"},"\\ntrianglelefteq":{font:"ams",group:"rel",replace:"\u22ec"},"\\subsetneq":{font:"ams",group:"rel",replace:"\u228a"},"\\varsubsetneq":{font:"ams",group:"rel",replace:"\ue01a"},"\\subsetneqq":{font:"ams",group:"rel",replace:"\u2acb"},"\\varsubsetneqq":{font:"ams",group:"rel",replace:"\ue017"},"\\ngtr":{font:"ams",group:"rel",replace:"\u226f"},"\\ngeqslant":{font:"ams",group:"rel",replace:"\ue00f"},"\\ngeqq":{font:"ams",group:"rel",replace:"\ue00e"},"\\gneq":{font:"ams",group:"rel",replace:"\u2a88"},"\\gneqq":{font:"ams",group:"rel",replace:"\u2269"},"\\gvertneqq":{font:"ams",group:"rel",replace:"\ue00d"},"\\gnsim":{font:"ams",group:"rel",replace:"\u22e7"},"\\gnapprox":{font:"ams",group:"rel",replace:"\u2a8a"},"\\nsucc":{font:"ams",group:"rel",replace:"\u2281"},"\\nsucceq":{font:"ams",group:"rel",replace:"\u22e1"},"\\succnsim":{font:"ams",group:"rel",replace:"\u22e9"},"\\succnapprox":{font:"ams",group:"rel",replace:"\u2aba"},"\\ncong":{font:"ams",group:"rel",replace:"\u2246"},"\\nshortparallel":{font:"ams",group:"rel",replace:"\ue007"},"\\nparallel":{font:"ams",group:"rel",replace:"\u2226"},"\\nVDash":{font:"ams",group:"rel",replace:"\u22af"},"\\ntriangleright":{font:"ams",group:"rel",replace:"\u22eb"},"\\ntrianglerighteq":{font:"ams",group:"rel",replace:"\u22ed"},"\\nsupseteqq":{font:"ams",group:"rel",replace:"\ue018"},"\\supsetneq":{font:"ams",group:"rel",replace:"\u228b"},"\\varsupsetneq":{font:"ams",group:"rel",replace:"\ue01b"},"\\supsetneqq":{font:"ams",group:"rel",replace:"\u2acc"},"\\varsupsetneqq":{font:"ams",group:"rel",replace:"\ue019"},"\\nVdash":{font:"ams",group:"rel",replace:"\u22ae"},"\\precneqq":{font:"ams",group:"rel",replace:"\u2ab5"},"\\succneqq":{font:"ams",group:"rel",replace:"\u2ab6"},"\\nsubseteqq":{font:"ams",group:"rel",replace:"\ue016"},"\\unlhd":{font:"ams",group:"bin",replace:"\u22b4"},"\\unrhd":{font:"ams",group:"bin",replace:"\u22b5"},"\\nleftarrow":{font:"ams",group:"rel",replace:"\u219a"},"\\nrightarrow":{font:"ams",group:"rel",replace:"\u219b"},"\\nLeftarrow":{font:"ams",group:"rel",replace:"\u21cd"},"\\nRightarrow":{font:"ams",group:"rel",replace:"\u21cf"},"\\nleftrightarrow":{font:"ams",group:"rel",replace:"\u21ae"},"\\nLeftrightarrow":{font:"ams",group:"rel",replace:"\u21ce"},"\\vartriangle":{font:"ams",group:"rel",replace:"\u25b3"},"\\hslash":{font:"ams",group:"textord",replace:"\u210f"},"\\triangledown":{font:"ams",group:"textord",replace:"\u25bd"},"\\lozenge":{font:"ams",group:"textord",replace:"\u25ca"},"\\circledS":{font:"ams",group:"textord",replace:"\u24c8"},"\\circledR":{font:"ams",group:"textord",replace:"\xae"},"\\measuredangle":{font:"ams",group:"textord",replace:"\u2221"},"\\nexists":{font:"ams",group:"textord",replace:"\u2204"},"\\mho":{font:"ams",group:"textord",replace:"\u2127"},"\\Finv":{font:"ams",group:"textord",replace:"\u2132"},"\\Game":{font:"ams",group:"textord",replace:"\u2141"},"\\Bbbk":{font:"ams",group:"textord",replace:"k"},"\\backprime":{font:"ams",group:"textord",replace:"\u2035"},"\\blacktriangle":{font:"ams",group:"textord",replace:"\u25b2"},"\\blacktriangledown":{font:"ams",group:"textord",replace:"\u25bc"},"\\blacksquare":{font:"ams",group:"textord",replace:"\u25a0"},"\\blacklozenge":{font:"ams",group:"textord",replace:"\u29eb"},"\\bigstar":{font:"ams",group:"textord",replace:"\u2605"},"\\sphericalangle":{font:"ams",group:"textord",replace:"\u2222"},"\\complement":{font:"ams",group:"textord",replace:"\u2201"},"\\eth":{font:"ams",group:"textord",replace:"\xf0"},"\\diagup":{font:"ams",group:"textord",replace:"\u2571"},"\\diagdown":{font:"ams",group:"textord",replace:"\u2572"},"\\square":{font:"ams",group:"textord",replace:"\u25a1"},"\\Box":{font:"ams",group:"textord",replace:"\u25a1"},"\\Diamond":{font:"ams",group:"textord",replace:"\u25ca"},"\\yen":{font:"ams",group:"textord",replace:"\xa5"},"\\checkmark":{font:"ams",group:"textord",replace:"\u2713"},"\\beth":{font:"ams",group:"textord",replace:"\u2136"},"\\daleth":{font:"ams",group:"textord",replace:"\u2138"},"\\gimel":{font:"ams",group:"textord",replace:"\u2137"},"\\digamma":{font:"ams",group:"textord",replace:"\u03dd"},"\\varkappa":{font:"ams",group:"textord",replace:"\u03f0"},"\\ulcorner":{font:"ams",group:"open",replace:"\u250c"},"\\urcorner":{font:"ams",group:"close",replace:"\u2510"},"\\llcorner":{font:"ams",group:"open",replace:"\u2514"},"\\lrcorner":{font:"ams",group:"close",replace:"\u2518"},"\\leqq":{font:"ams",group:"rel",replace:"\u2266"},"\\leqslant":{font:"ams",group:"rel",replace:"\u2a7d"},"\\eqslantless":{font:"ams",group:"rel",replace:"\u2a95"},"\\lesssim":{font:"ams",group:"rel",replace:"\u2272"},"\\lessapprox":{font:"ams",group:"rel",replace:"\u2a85"},"\\approxeq":{font:"ams",group:"rel",replace:"\u224a"},"\\lessdot":{font:"ams",group:"bin",replace:"\u22d6"},"\\lll":{font:"ams",group:"rel",replace:"\u22d8"},"\\lessgtr":{font:"ams",group:"rel",replace:"\u2276"},"\\lesseqgtr":{font:"ams",group:"rel",replace:"\u22da"},"\\lesseqqgtr":{font:"ams",group:"rel",replace:"\u2a8b"},"\\doteqdot":{font:"ams",group:"rel",replace:"\u2251"},"\\risingdotseq":{font:"ams",group:"rel",replace:"\u2253"},"\\fallingdotseq":{font:"ams",group:"rel",replace:"\u2252"},"\\backsim":{font:"ams",group:"rel",replace:"\u223d"},"\\backsimeq":{font:"ams",group:"rel",replace:"\u22cd"},"\\subseteqq":{font:"ams",group:"rel",replace:"\u2ac5"},"\\Subset":{font:"ams",group:"rel",replace:"\u22d0"},"\\sqsubset":{font:"ams",group:"rel",replace:"\u228f"},"\\preccurlyeq":{font:"ams",group:"rel",replace:"\u227c"},"\\curlyeqprec":{font:"ams",group:"rel",replace:"\u22de"},"\\precsim":{font:"ams",group:"rel",replace:"\u227e"},"\\precapprox":{font:"ams",group:"rel",replace:"\u2ab7"},"\\vartriangleleft":{font:"ams",group:"rel",replace:"\u22b2"},"\\trianglelefteq":{font:"ams",group:"rel",replace:"\u22b4"},"\\vDash":{font:"ams",group:"rel",replace:"\u22a8"},"\\Vvdash":{font:"ams",group:"rel",replace:"\u22aa"},"\\smallsmile":{font:"ams",group:"rel",replace:"\u2323"},"\\smallfrown":{font:"ams",group:"rel",replace:"\u2322"},"\\bumpeq":{font:"ams",group:"rel",replace:"\u224f"},"\\Bumpeq":{font:"ams",group:"rel",replace:"\u224e"},"\\geqq":{font:"ams",group:"rel",replace:"\u2267"},"\\geqslant":{font:"ams",group:"rel",replace:"\u2a7e"},"\\eqslantgtr":{font:"ams",group:"rel",replace:"\u2a96"},"\\gtrsim":{font:"ams",group:"rel",replace:"\u2273"},"\\gtrapprox":{font:"ams",group:"rel",replace:"\u2a86"},"\\gtrdot":{font:"ams",group:"bin",replace:"\u22d7"},"\\ggg":{font:"ams",group:"rel",replace:"\u22d9"},"\\gtrless":{font:"ams",group:"rel",replace:"\u2277"},"\\gtreqless":{font:"ams",group:"rel",replace:"\u22db"},"\\gtreqqless":{font:"ams",group:"rel",replace:"\u2a8c"},"\\eqcirc":{font:"ams",group:"rel",replace:"\u2256"},"\\circeq":{font:"ams",group:"rel",replace:"\u2257"},"\\triangleq":{font:"ams",group:"rel",replace:"\u225c"},"\\thicksim":{font:"ams",group:"rel",replace:"\u223c"},"\\thickapprox":{font:"ams",group:"rel",replace:"\u2248"},"\\supseteqq":{font:"ams",group:"rel",replace:"\u2ac6"},"\\Supset":{font:"ams",group:"rel",replace:"\u22d1"},"\\sqsupset":{font:"ams",group:"rel",replace:"\u2290"},"\\succcurlyeq":{font:"ams",group:"rel",replace:"\u227d"},"\\curlyeqsucc":{font:"ams",group:"rel",replace:"\u22df"},"\\succsim":{font:"ams",group:"rel",replace:"\u227f"},"\\succapprox":{font:"ams",group:"rel",replace:"\u2ab8"},"\\vartriangleright":{font:"ams",group:"rel",replace:"\u22b3"},"\\trianglerighteq":{font:"ams",group:"rel",replace:"\u22b5"},"\\Vdash":{font:"ams",group:"rel",replace:"\u22a9"},"\\shortmid":{font:"ams",group:"rel",replace:"\u2223"},"\\shortparallel":{font:"ams",group:"rel",replace:"\u2225"},"\\between":{font:"ams",group:"rel",replace:"\u226c"},"\\pitchfork":{font:"ams",group:"rel",replace:"\u22d4"},"\\varpropto":{font:"ams",group:"rel",replace:"\u221d"},"\\blacktriangleleft":{font:"ams",group:"rel",replace:"\u25c0"},"\\therefore":{font:"ams",group:"rel",replace:"\u2234"},"\\backepsilon":{font:"ams",group:"rel",replace:"\u220d"},"\\blacktriangleright":{font:"ams",group:"rel",replace:"\u25b6"},"\\because":{font:"ams",group:"rel",replace:"\u2235"},"\\llless":{font:"ams",group:"rel",replace:"\u22d8"},"\\gggtr":{font:"ams",group:"rel",replace:"\u22d9"},"\\lhd":{font:"ams",group:"bin",replace:"\u22b2"},"\\rhd":{font:"ams",group:"bin",replace:"\u22b3"},"\\eqsim":{font:"ams",group:"rel",replace:"\u2242"},"\\Join":{font:"main",group:"rel",replace:"\u22c8"},"\\Doteq":{font:"ams",group:"rel",replace:"\u2251"},"\\dotplus":{font:"ams",group:"bin",replace:"\u2214"},"\\smallsetminus":{font:"ams",group:"bin",replace:"\u2216"},"\\Cap":{font:"ams",group:"bin",replace:"\u22d2"},"\\Cup":{font:"ams",group:"bin",replace:"\u22d3"},"\\doublebarwedge":{font:"ams",group:"bin",replace:"\u2a5e"},"\\boxminus":{font:"ams",group:"bin",replace:"\u229f"},"\\boxplus":{font:"ams",group:"bin",replace:"\u229e"},"\\divideontimes":{font:"ams",group:"bin",replace:"\u22c7"},"\\ltimes":{font:"ams",group:"bin",replace:"\u22c9"},"\\rtimes":{font:"ams",group:"bin",replace:"\u22ca"},"\\leftthreetimes":{font:"ams",group:"bin",replace:"\u22cb"},"\\rightthreetimes":{font:"ams",group:"bin",replace:"\u22cc"},"\\curlywedge":{font:"ams",group:"bin",replace:"\u22cf"},"\\curlyvee":{font:"ams",group:"bin",replace:"\u22ce"},"\\circleddash":{font:"ams",group:"bin",replace:"\u229d"},"\\circledast":{font:"ams",group:"bin",replace:"\u229b"},"\\centerdot":{font:"ams",group:"bin",replace:"\u22c5"},"\\intercal":{font:"ams",group:"bin",replace:"\u22ba"},"\\doublecap":{font:"ams",group:"bin",replace:"\u22d2"},"\\doublecup":{font:"ams",group:"bin",replace:"\u22d3"},"\\boxtimes":{font:"ams",group:"bin",replace:"\u22a0"},"\\dashrightarrow":{font:"ams",group:"rel",replace:"\u21e2"},"\\dashleftarrow":{font:"ams",group:"rel",replace:"\u21e0"},"\\leftleftarrows":{font:"ams",group:"rel",replace:"\u21c7"},"\\leftrightarrows":{font:"ams",group:"rel",replace:"\u21c6"},"\\Lleftarrow":{font:"ams",group:"rel",replace:"\u21da"},"\\twoheadleftarrow":{font:"ams",group:"rel",replace:"\u219e"},"\\leftarrowtail":{font:"ams",group:"rel",replace:"\u21a2"},"\\looparrowleft":{font:"ams",group:"rel",replace:"\u21ab"},"\\leftrightharpoons":{font:"ams",group:"rel",replace:"\u21cb"},"\\curvearrowleft":{font:"ams",group:"rel",replace:"\u21b6"},"\\circlearrowleft":{font:"ams",group:"rel",replace:"\u21ba"},"\\Lsh":{font:"ams",group:"rel",replace:"\u21b0"},"\\upuparrows":{font:"ams",group:"rel",replace:"\u21c8"},"\\upharpoonleft":{font:"ams",group:"rel",replace:"\u21bf"},"\\downharpoonleft":{font:"ams",group:"rel",replace:"\u21c3"},"\\multimap":{font:"ams",group:"rel",replace:"\u22b8"},"\\leftrightsquigarrow":{font:"ams",group:"rel",replace:"\u21ad"},"\\rightrightarrows":{font:"ams",group:"rel",replace:"\u21c9"},"\\rightleftarrows":{font:"ams",group:"rel",replace:"\u21c4"},"\\twoheadrightarrow":{font:"ams",group:"rel",replace:"\u21a0"},"\\rightarrowtail":{font:"ams",group:"rel",replace:"\u21a3"},"\\looparrowright":{font:"ams",group:"rel",replace:"\u21ac"},"\\curvearrowright":{font:"ams",group:"rel",replace:"\u21b7"},"\\circlearrowright":{font:"ams",group:"rel",replace:"\u21bb"},"\\Rsh":{font:"ams",group:"rel",replace:"\u21b1"},"\\downdownarrows":{font:"ams",group:"rel",replace:"\u21ca"},"\\upharpoonright":{font:"ams",group:"rel",replace:"\u21be"},"\\downharpoonright":{font:"ams",group:"rel",replace:"\u21c2"},"\\rightsquigarrow":{font:"ams",group:"rel",replace:"\u21dd"},"\\leadsto":{font:"ams",group:"rel",replace:"\u21dd"},"\\Rrightarrow":{font:"ams",group:"rel",replace:"\u21db"},"\\restriction":{font:"ams",group:"rel",replace:"\u21be"},"`":{font:"main",group:"textord",replace:"\u2018"},"\\$":{font:"main",group:"textord",replace:"$"},"\\%":{font:"main",group:"textord",replace:"%"},"\\_":{font:"main",group:"textord",replace:"_"},"\\angle":{font:"main",group:"textord",replace:"\u2220"},"\\infty":{font:"main",group:"textord",replace:"\u221e"},"\\prime":{font:"main",group:"textord",replace:"\u2032"},"\\triangle":{font:"main",group:"textord",replace:"\u25b3"},"\\Gamma":{font:"main",group:"textord",replace:"\u0393"},"\\Delta":{font:"main",group:"textord",replace:"\u0394"},"\\Theta":{font:"main",group:"textord",replace:"\u0398"},"\\Lambda":{font:"main",group:"textord",replace:"\u039b"},"\\Xi":{font:"main",group:"textord",replace:"\u039e"},"\\Pi":{font:"main",group:"textord",replace:"\u03a0"},"\\Sigma":{font:"main",group:"textord",replace:"\u03a3"},"\\Upsilon":{font:"main", +group:"textord",replace:"\u03a5"},"\\Phi":{font:"main",group:"textord",replace:"\u03a6"},"\\Psi":{font:"main",group:"textord",replace:"\u03a8"},"\\Omega":{font:"main",group:"textord",replace:"\u03a9"},"\\neg":{font:"main",group:"textord",replace:"\xac"},"\\lnot":{font:"main",group:"textord",replace:"\xac"},"\\top":{font:"main",group:"textord",replace:"\u22a4"},"\\bot":{font:"main",group:"textord",replace:"\u22a5"},"\\emptyset":{font:"main",group:"textord",replace:"\u2205"},"\\varnothing":{font:"ams",group:"textord",replace:"\u2205"},"\\alpha":{font:"main",group:"mathord",replace:"\u03b1"},"\\beta":{font:"main",group:"mathord",replace:"\u03b2"},"\\gamma":{font:"main",group:"mathord",replace:"\u03b3"},"\\delta":{font:"main",group:"mathord",replace:"\u03b4"},"\\epsilon":{font:"main",group:"mathord",replace:"\u03f5"},"\\zeta":{font:"main",group:"mathord",replace:"\u03b6"},"\\eta":{font:"main",group:"mathord",replace:"\u03b7"},"\\theta":{font:"main",group:"mathord",replace:"\u03b8"},"\\iota":{font:"main",group:"mathord",replace:"\u03b9"},"\\kappa":{font:"main",group:"mathord",replace:"\u03ba"},"\\lambda":{font:"main",group:"mathord",replace:"\u03bb"},"\\mu":{font:"main",group:"mathord",replace:"\u03bc"},"\\nu":{font:"main",group:"mathord",replace:"\u03bd"},"\\xi":{font:"main",group:"mathord",replace:"\u03be"},"\\omicron":{font:"main",group:"mathord",replace:"o"},"\\pi":{font:"main",group:"mathord",replace:"\u03c0"},"\\rho":{font:"main",group:"mathord",replace:"\u03c1"},"\\sigma":{font:"main",group:"mathord",replace:"\u03c3"},"\\tau":{font:"main",group:"mathord",replace:"\u03c4"},"\\upsilon":{font:"main",group:"mathord",replace:"\u03c5"},"\\phi":{font:"main",group:"mathord",replace:"\u03d5"},"\\chi":{font:"main",group:"mathord",replace:"\u03c7"},"\\psi":{font:"main",group:"mathord",replace:"\u03c8"},"\\omega":{font:"main",group:"mathord",replace:"\u03c9"},"\\varepsilon":{font:"main",group:"mathord",replace:"\u03b5"},"\\vartheta":{font:"main",group:"mathord",replace:"\u03d1"},"\\varpi":{font:"main",group:"mathord",replace:"\u03d6"},"\\varrho":{font:"main",group:"mathord",replace:"\u03f1"},"\\varsigma":{font:"main",group:"mathord",replace:"\u03c2"},"\\varphi":{font:"main",group:"mathord",replace:"\u03c6"},"*":{font:"main",group:"bin",replace:"\u2217"},"+":{font:"main",group:"bin"},"-":{font:"main",group:"bin",replace:"\u2212"},"\\cdot":{font:"main",group:"bin",replace:"\u22c5"},"\\circ":{font:"main",group:"bin",replace:"\u2218"},"\\div":{font:"main",group:"bin",replace:"\xf7"},"\\pm":{font:"main",group:"bin",replace:"\xb1"},"\\times":{font:"main",group:"bin",replace:"\xd7"},"\\cap":{font:"main",group:"bin",replace:"\u2229"},"\\cup":{font:"main",group:"bin",replace:"\u222a"},"\\setminus":{font:"main",group:"bin",replace:"\u2216"},"\\land":{font:"main",group:"bin",replace:"\u2227"},"\\lor":{font:"main",group:"bin",replace:"\u2228"},"\\wedge":{font:"main",group:"bin",replace:"\u2227"},"\\vee":{font:"main",group:"bin",replace:"\u2228"},"\\surd":{font:"main",group:"textord",replace:"\u221a"},"(":{font:"main",group:"open"},"[":{font:"main",group:"open"},"\\langle":{font:"main",group:"open",replace:"\u27e8"},"\\lvert":{font:"main",group:"open",replace:"\u2223"},"\\lVert":{font:"main",group:"open",replace:"\u2225"},")":{font:"main",group:"close"},"]":{font:"main",group:"close"},"?":{font:"main",group:"close"},"!":{font:"main",group:"close"},"\\rangle":{font:"main",group:"close",replace:"\u27e9"},"\\rvert":{font:"main",group:"close",replace:"\u2223"},"\\rVert":{font:"main",group:"close",replace:"\u2225"},"=":{font:"main",group:"rel"},"<":{font:"main",group:"rel"},">":{font:"main",group:"rel"},":":{font:"main",group:"rel"},"\\approx":{font:"main",group:"rel",replace:"\u2248"},"\\cong":{font:"main",group:"rel",replace:"\u2245"},"\\ge":{font:"main",group:"rel",replace:"\u2265"},"\\geq":{font:"main",group:"rel",replace:"\u2265"},"\\gets":{font:"main",group:"rel",replace:"\u2190"},"\\in":{font:"main",group:"rel",replace:"\u2208"},"\\notin":{font:"main",group:"rel",replace:"\u2209"},"\\subset":{font:"main",group:"rel",replace:"\u2282"},"\\supset":{font:"main",group:"rel",replace:"\u2283"},"\\subseteq":{font:"main",group:"rel",replace:"\u2286"},"\\supseteq":{font:"main",group:"rel",replace:"\u2287"},"\\nsubseteq":{font:"ams",group:"rel",replace:"\u2288"},"\\nsupseteq":{font:"ams",group:"rel",replace:"\u2289"},"\\models":{font:"main",group:"rel",replace:"\u22a8"},"\\leftarrow":{font:"main",group:"rel",replace:"\u2190"},"\\le":{font:"main",group:"rel",replace:"\u2264"},"\\leq":{font:"main",group:"rel",replace:"\u2264"},"\\ne":{font:"main",group:"rel",replace:"\u2260"},"\\neq":{font:"main",group:"rel",replace:"\u2260"},"\\rightarrow":{font:"main",group:"rel",replace:"\u2192"},"\\to":{font:"main",group:"rel",replace:"\u2192"},"\\ngeq":{font:"ams",group:"rel",replace:"\u2271"},"\\nleq":{font:"ams",group:"rel",replace:"\u2270"},"\\!":{font:"main",group:"spacing"},"\\ ":{font:"main",group:"spacing",replace:"\xa0"},"~":{font:"main",group:"spacing",replace:"\xa0"},"\\,":{font:"main",group:"spacing"},"\\:":{font:"main",group:"spacing"},"\\;":{font:"main",group:"spacing"},"\\enspace":{font:"main",group:"spacing"},"\\qquad":{font:"main",group:"spacing"},"\\quad":{font:"main",group:"spacing"},"\\space":{font:"main",group:"spacing",replace:"\xa0"},",":{font:"main",group:"punct"},";":{font:"main",group:"punct"},"\\colon":{font:"main",group:"punct",replace:":"},"\\barwedge":{font:"ams",group:"bin",replace:"\u22bc"},"\\veebar":{font:"ams",group:"bin",replace:"\u22bb"},"\\odot":{font:"main",group:"bin",replace:"\u2299"},"\\oplus":{font:"main",group:"bin",replace:"\u2295"},"\\otimes":{font:"main",group:"bin",replace:"\u2297"},"\\partial":{font:"main",group:"textord",replace:"\u2202"},"\\oslash":{font:"main",group:"bin",replace:"\u2298"},"\\circledcirc":{font:"ams",group:"bin",replace:"\u229a"},"\\boxdot":{font:"ams",group:"bin",replace:"\u22a1"},"\\bigtriangleup":{font:"main",group:"bin",replace:"\u25b3"},"\\bigtriangledown":{font:"main",group:"bin",replace:"\u25bd"},"\\dagger":{font:"main",group:"bin",replace:"\u2020"},"\\diamond":{font:"main",group:"bin",replace:"\u22c4"},"\\star":{font:"main",group:"bin",replace:"\u22c6"},"\\triangleleft":{font:"main",group:"bin",replace:"\u25c3"},"\\triangleright":{font:"main",group:"bin",replace:"\u25b9"},"\\{":{font:"main",group:"open",replace:"{"},"\\}":{font:"main",group:"close",replace:"}"},"\\lbrace":{font:"main",group:"open",replace:"{"},"\\rbrace":{font:"main",group:"close",replace:"}"},"\\lbrack":{font:"main",group:"open",replace:"["},"\\rbrack":{font:"main",group:"close",replace:"]"},"\\lfloor":{font:"main",group:"open",replace:"\u230a"},"\\rfloor":{font:"main",group:"close",replace:"\u230b"},"\\lceil":{font:"main",group:"open",replace:"\u2308"},"\\rceil":{font:"main",group:"close",replace:"\u2309"},"\\backslash":{font:"main",group:"textord",replace:"\\"},"|":{font:"main",group:"textord",replace:"\u2223"},"\\vert":{font:"main",group:"textord",replace:"\u2223"},"\\|":{font:"main",group:"textord",replace:"\u2225"},"\\Vert":{font:"main",group:"textord",replace:"\u2225"},"\\uparrow":{font:"main",group:"rel",replace:"\u2191"},"\\Uparrow":{font:"main",group:"rel",replace:"\u21d1"},"\\downarrow":{font:"main",group:"rel",replace:"\u2193"},"\\Downarrow":{font:"main",group:"rel",replace:"\u21d3"},"\\updownarrow":{font:"main",group:"rel",replace:"\u2195"},"\\Updownarrow":{font:"main",group:"rel",replace:"\u21d5"},"\\coprod":{font:"math",group:"op",replace:"\u2210"},"\\bigvee":{font:"math",group:"op",replace:"\u22c1"},"\\bigwedge":{font:"math",group:"op",replace:"\u22c0"},"\\biguplus":{font:"math",group:"op",replace:"\u2a04"},"\\bigcap":{font:"math",group:"op",replace:"\u22c2"},"\\bigcup":{font:"math",group:"op",replace:"\u22c3"},"\\int":{font:"math",group:"op",replace:"\u222b"},"\\intop":{font:"math",group:"op",replace:"\u222b"},"\\iint":{font:"math",group:"op",replace:"\u222c"},"\\iiint":{font:"math",group:"op",replace:"\u222d"},"\\prod":{font:"math",group:"op",replace:"\u220f"},"\\sum":{font:"math",group:"op",replace:"\u2211"},"\\bigotimes":{font:"math",group:"op",replace:"\u2a02"},"\\bigoplus":{font:"math",group:"op",replace:"\u2a01"},"\\bigodot":{font:"math",group:"op",replace:"\u2a00"},"\\oint":{font:"math",group:"op",replace:"\u222e"},"\\bigsqcup":{font:"math",group:"op",replace:"\u2a06"},"\\smallint":{font:"math",group:"op",replace:"\u222b"},"\\ldots":{font:"main",group:"inner",replace:"\u2026"},"\\cdots":{font:"main",group:"inner",replace:"\u22ef"},"\\ddots":{font:"main",group:"inner",replace:"\u22f1"},"\\vdots":{font:"main",group:"textord",replace:"\u22ee"},"\\acute":{font:"main",group:"accent",replace:"\xb4"},"\\grave":{font:"main",group:"accent",replace:"`"},"\\ddot":{font:"main",group:"accent",replace:"\xa8"},"\\tilde":{font:"main",group:"accent",replace:"~"},"\\bar":{font:"main",group:"accent",replace:"\xaf"},"\\breve":{font:"main",group:"accent",replace:"\u02d8"},"\\check":{font:"main",group:"accent",replace:"\u02c7"},"\\hat":{font:"main",group:"accent",replace:"^"},"\\vec":{font:"main",group:"accent",replace:"\u20d7"},"\\dot":{font:"main",group:"accent",replace:"\u02d9"},"\\imath":{font:"main",group:"mathord",replace:"\u0131"},"\\jmath":{font:"main",group:"mathord",replace:"\u0237"}},text:{"\\ ":{font:"main",group:"spacing",replace:"\xa0"}," ":{font:"main",group:"spacing",replace:"\xa0"},"~":{font:"main",group:"spacing",replace:"\xa0"}}};var a='0123456789/@."';for(var r=0;r<a.length;r++){var l=a.charAt(r);h.math[l]={font:"main",group:"textord"}}var s="0123456789`!@*()-=+[]'\";:?/.,";for(var r=0;r<s.length;r++){var l=s.charAt(r);h.text[l]={font:"main",group:"textord"}}var p="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(var r=0;r<p.length;r++){var l=p.charAt(r);h.math[l]={font:"main",group:"mathord"};h.text[l]={font:"main",group:"textord"}}t.exports=h},{}],23:[function(e,t,i){var h=Array.prototype.indexOf;var a=function(e,t){if(e==null){return-1}if(h&&e.indexOf===h){return e.indexOf(t)}var i=0,a=e.length;for(;i<a;i++){if(e[i]===t){return i}}return-1};var r=function(e,t){return a(e,t)!==-1};var l=function(e,t){return e===undefined?t:e};var s=/([A-Z])/g;var p=function(e){return e.replace(s,"-$1").toLowerCase()};var c={"&":"&",">":">","<":"<",'"':""","'":"'"};var n=/[&><"']/g;function o(e){return c[e]}function g(e){return(""+e).replace(n,o)}var d;if(typeof document!=="undefined"){var w=document.createElement("span");if("textContent"in w){d=function(e,t){e.textContent=t}}else{d=function(e,t){e.innerText=t}}}function u(e){d(e,"")}t.exports={contains:r,deflt:l,escape:g,hyphenate:p,indexOf:a,setTextContent:d,clearNode:u}},{}]},{},[1])(1)}); diff --git a/web/static/js/react-0.14.0.js b/web/static/js/react-0.14.0.js deleted file mode 100644 index 7ca7f8e80..000000000 --- a/web/static/js/react-0.14.0.js +++ /dev/null @@ -1,18759 +0,0 @@ - /** - * React v0.14.0 - */ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.React = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule React - */ - -'use strict'; - -var ReactDOM = _dereq_(35); -var ReactDOMServer = _dereq_(45); -var ReactIsomorphic = _dereq_(63); - -var assign = _dereq_(23); -var deprecated = _dereq_(105); - -// `version` will be added here by ReactIsomorphic. -var React = {}; - -assign(React, ReactIsomorphic); - -assign(React, { - // ReactDOM - findDOMNode: deprecated('findDOMNode', 'ReactDOM', 'react-dom', ReactDOM, ReactDOM.findDOMNode), - render: deprecated('render', 'ReactDOM', 'react-dom', ReactDOM, ReactDOM.render), - unmountComponentAtNode: deprecated('unmountComponentAtNode', 'ReactDOM', 'react-dom', ReactDOM, ReactDOM.unmountComponentAtNode), - - // ReactDOMServer - renderToString: deprecated('renderToString', 'ReactDOMServer', 'react-dom/server', ReactDOMServer, ReactDOMServer.renderToString), - renderToStaticMarkup: deprecated('renderToStaticMarkup', 'ReactDOMServer', 'react-dom/server', ReactDOMServer, ReactDOMServer.renderToStaticMarkup) -}); - -React.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactDOM; - -module.exports = React; -},{"105":105,"23":23,"35":35,"45":45,"63":63}],2:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule AutoFocusUtils - * @typechecks static-only - */ - -'use strict'; - -var ReactMount = _dereq_(65); - -var findDOMNode = _dereq_(107); -var focusNode = _dereq_(137); - -var Mixin = { - componentDidMount: function () { - if (this.props.autoFocus) { - focusNode(findDOMNode(this)); - } - } -}; - -var AutoFocusUtils = { - Mixin: Mixin, - - focusDOMComponent: function () { - focusNode(ReactMount.getNode(this._rootNodeID)); - } -}; - -module.exports = AutoFocusUtils; -},{"107":107,"137":137,"65":65}],3:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015 Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule BeforeInputEventPlugin - * @typechecks static-only - */ - -'use strict'; - -var EventConstants = _dereq_(15); -var EventPropagators = _dereq_(19); -var ExecutionEnvironment = _dereq_(129); -var FallbackCompositionState = _dereq_(20); -var SyntheticCompositionEvent = _dereq_(90); -var SyntheticInputEvent = _dereq_(94); - -var keyOf = _dereq_(147); - -var END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space -var START_KEYCODE = 229; - -var canUseCompositionEvent = ExecutionEnvironment.canUseDOM && 'CompositionEvent' in window; - -var documentMode = null; -if (ExecutionEnvironment.canUseDOM && 'documentMode' in document) { - documentMode = document.documentMode; -} - -// Webkit offers a very useful `textInput` event that can be used to -// directly represent `beforeInput`. The IE `textinput` event is not as -// useful, so we don't use it. -var canUseTextInputEvent = ExecutionEnvironment.canUseDOM && 'TextEvent' in window && !documentMode && !isPresto(); - -// In IE9+, we have access to composition events, but the data supplied -// by the native compositionend event may be incorrect. Japanese ideographic -// spaces, for instance (\u3000) are not recorded correctly. -var useFallbackCompositionData = ExecutionEnvironment.canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11); - -/** - * Opera <= 12 includes TextEvent in window, but does not fire - * text input events. Rely on keypress instead. - */ -function isPresto() { - var opera = window.opera; - return typeof opera === 'object' && typeof opera.version === 'function' && parseInt(opera.version(), 10) <= 12; -} - -var SPACEBAR_CODE = 32; -var SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE); - -var topLevelTypes = EventConstants.topLevelTypes; - -// Events and their corresponding property names. -var eventTypes = { - beforeInput: { - phasedRegistrationNames: { - bubbled: keyOf({ onBeforeInput: null }), - captured: keyOf({ onBeforeInputCapture: null }) - }, - dependencies: [topLevelTypes.topCompositionEnd, topLevelTypes.topKeyPress, topLevelTypes.topTextInput, topLevelTypes.topPaste] - }, - compositionEnd: { - phasedRegistrationNames: { - bubbled: keyOf({ onCompositionEnd: null }), - captured: keyOf({ onCompositionEndCapture: null }) - }, - dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionEnd, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown] - }, - compositionStart: { - phasedRegistrationNames: { - bubbled: keyOf({ onCompositionStart: null }), - captured: keyOf({ onCompositionStartCapture: null }) - }, - dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionStart, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown] - }, - compositionUpdate: { - phasedRegistrationNames: { - bubbled: keyOf({ onCompositionUpdate: null }), - captured: keyOf({ onCompositionUpdateCapture: null }) - }, - dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionUpdate, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown] - } -}; - -// Track whether we've ever handled a keypress on the space key. -var hasSpaceKeypress = false; - -/** - * Return whether a native keypress event is assumed to be a command. - * This is required because Firefox fires `keypress` events for key commands - * (cut, copy, select-all, etc.) even though no character is inserted. - */ -function isKeypressCommand(nativeEvent) { - return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) && - // ctrlKey && altKey is equivalent to AltGr, and is not a command. - !(nativeEvent.ctrlKey && nativeEvent.altKey); -} - -/** - * Translate native top level events into event types. - * - * @param {string} topLevelType - * @return {object} - */ -function getCompositionEventType(topLevelType) { - switch (topLevelType) { - case topLevelTypes.topCompositionStart: - return eventTypes.compositionStart; - case topLevelTypes.topCompositionEnd: - return eventTypes.compositionEnd; - case topLevelTypes.topCompositionUpdate: - return eventTypes.compositionUpdate; - } -} - -/** - * Does our fallback best-guess model think this event signifies that - * composition has begun? - * - * @param {string} topLevelType - * @param {object} nativeEvent - * @return {boolean} - */ -function isFallbackCompositionStart(topLevelType, nativeEvent) { - return topLevelType === topLevelTypes.topKeyDown && nativeEvent.keyCode === START_KEYCODE; -} - -/** - * Does our fallback mode think that this event is the end of composition? - * - * @param {string} topLevelType - * @param {object} nativeEvent - * @return {boolean} - */ -function isFallbackCompositionEnd(topLevelType, nativeEvent) { - switch (topLevelType) { - case topLevelTypes.topKeyUp: - // Command keys insert or clear IME input. - return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1; - case topLevelTypes.topKeyDown: - // Expect IME keyCode on each keydown. If we get any other - // code we must have exited earlier. - return nativeEvent.keyCode !== START_KEYCODE; - case topLevelTypes.topKeyPress: - case topLevelTypes.topMouseDown: - case topLevelTypes.topBlur: - // Events are not possible without cancelling IME. - return true; - default: - return false; - } -} - -/** - * Google Input Tools provides composition data via a CustomEvent, - * with the `data` property populated in the `detail` object. If this - * is available on the event object, use it. If not, this is a plain - * composition event and we have nothing special to extract. - * - * @param {object} nativeEvent - * @return {?string} - */ -function getDataFromCustomEvent(nativeEvent) { - var detail = nativeEvent.detail; - if (typeof detail === 'object' && 'data' in detail) { - return detail.data; - } - return null; -} - -// Track the current IME composition fallback object, if any. -var currentComposition = null; - -/** - * @param {string} topLevelType Record from `EventConstants`. - * @param {DOMEventTarget} topLevelTarget The listening component root node. - * @param {string} topLevelTargetID ID of `topLevelTarget`. - * @param {object} nativeEvent Native browser event. - * @return {?object} A SyntheticCompositionEvent. - */ -function extractCompositionEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) { - var eventType; - var fallbackData; - - if (canUseCompositionEvent) { - eventType = getCompositionEventType(topLevelType); - } else if (!currentComposition) { - if (isFallbackCompositionStart(topLevelType, nativeEvent)) { - eventType = eventTypes.compositionStart; - } - } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) { - eventType = eventTypes.compositionEnd; - } - - if (!eventType) { - return null; - } - - if (useFallbackCompositionData) { - // The current composition is stored statically and must not be - // overwritten while composition continues. - if (!currentComposition && eventType === eventTypes.compositionStart) { - currentComposition = FallbackCompositionState.getPooled(topLevelTarget); - } else if (eventType === eventTypes.compositionEnd) { - if (currentComposition) { - fallbackData = currentComposition.getData(); - } - } - } - - var event = SyntheticCompositionEvent.getPooled(eventType, topLevelTargetID, nativeEvent, nativeEventTarget); - - if (fallbackData) { - // Inject data generated from fallback path into the synthetic event. - // This matches the property of native CompositionEventInterface. - event.data = fallbackData; - } else { - var customData = getDataFromCustomEvent(nativeEvent); - if (customData !== null) { - event.data = customData; - } - } - - EventPropagators.accumulateTwoPhaseDispatches(event); - return event; -} - -/** - * @param {string} topLevelType Record from `EventConstants`. - * @param {object} nativeEvent Native browser event. - * @return {?string} The string corresponding to this `beforeInput` event. - */ -function getNativeBeforeInputChars(topLevelType, nativeEvent) { - switch (topLevelType) { - case topLevelTypes.topCompositionEnd: - return getDataFromCustomEvent(nativeEvent); - case topLevelTypes.topKeyPress: - /** - * If native `textInput` events are available, our goal is to make - * use of them. However, there is a special case: the spacebar key. - * In Webkit, preventing default on a spacebar `textInput` event - * cancels character insertion, but it *also* causes the browser - * to fall back to its default spacebar behavior of scrolling the - * page. - * - * Tracking at: - * https://code.google.com/p/chromium/issues/detail?id=355103 - * - * To avoid this issue, use the keypress event as if no `textInput` - * event is available. - */ - var which = nativeEvent.which; - if (which !== SPACEBAR_CODE) { - return null; - } - - hasSpaceKeypress = true; - return SPACEBAR_CHAR; - - case topLevelTypes.topTextInput: - // Record the characters to be added to the DOM. - var chars = nativeEvent.data; - - // If it's a spacebar character, assume that we have already handled - // it at the keypress level and bail immediately. Android Chrome - // doesn't give us keycodes, so we need to blacklist it. - if (chars === SPACEBAR_CHAR && hasSpaceKeypress) { - return null; - } - - return chars; - - default: - // For other native event types, do nothing. - return null; - } -} - -/** - * For browsers that do not provide the `textInput` event, extract the - * appropriate string to use for SyntheticInputEvent. - * - * @param {string} topLevelType Record from `EventConstants`. - * @param {object} nativeEvent Native browser event. - * @return {?string} The fallback string for this `beforeInput` event. - */ -function getFallbackBeforeInputChars(topLevelType, nativeEvent) { - // If we are currently composing (IME) and using a fallback to do so, - // try to extract the composed characters from the fallback object. - if (currentComposition) { - if (topLevelType === topLevelTypes.topCompositionEnd || isFallbackCompositionEnd(topLevelType, nativeEvent)) { - var chars = currentComposition.getData(); - FallbackCompositionState.release(currentComposition); - currentComposition = null; - return chars; - } - return null; - } - - switch (topLevelType) { - case topLevelTypes.topPaste: - // If a paste event occurs after a keypress, throw out the input - // chars. Paste events should not lead to BeforeInput events. - return null; - case topLevelTypes.topKeyPress: - /** - * As of v27, Firefox may fire keypress events even when no character - * will be inserted. A few possibilities: - * - * - `which` is `0`. Arrow keys, Esc key, etc. - * - * - `which` is the pressed key code, but no char is available. - * Ex: 'AltGr + d` in Polish. There is no modified character for - * this key combination and no character is inserted into the - * document, but FF fires the keypress for char code `100` anyway. - * No `input` event will occur. - * - * - `which` is the pressed key code, but a command combination is - * being used. Ex: `Cmd+C`. No character is inserted, and no - * `input` event will occur. - */ - if (nativeEvent.which && !isKeypressCommand(nativeEvent)) { - return String.fromCharCode(nativeEvent.which); - } - return null; - case topLevelTypes.topCompositionEnd: - return useFallbackCompositionData ? null : nativeEvent.data; - default: - return null; - } -} - -/** - * Extract a SyntheticInputEvent for `beforeInput`, based on either native - * `textInput` or fallback behavior. - * - * @param {string} topLevelType Record from `EventConstants`. - * @param {DOMEventTarget} topLevelTarget The listening component root node. - * @param {string} topLevelTargetID ID of `topLevelTarget`. - * @param {object} nativeEvent Native browser event. - * @return {?object} A SyntheticInputEvent. - */ -function extractBeforeInputEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) { - var chars; - - if (canUseTextInputEvent) { - chars = getNativeBeforeInputChars(topLevelType, nativeEvent); - } else { - chars = getFallbackBeforeInputChars(topLevelType, nativeEvent); - } - - // If no characters are being inserted, no BeforeInput event should - // be fired. - if (!chars) { - return null; - } - - var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, topLevelTargetID, nativeEvent, nativeEventTarget); - - event.data = chars; - EventPropagators.accumulateTwoPhaseDispatches(event); - return event; -} - -/** - * Create an `onBeforeInput` event to match - * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents. - * - * This event plugin is based on the native `textInput` event - * available in Chrome, Safari, Opera, and IE. This event fires after - * `onKeyPress` and `onCompositionEnd`, but before `onInput`. - * - * `beforeInput` is spec'd but not implemented in any browsers, and - * the `input` event does not provide any useful information about what has - * actually been added, contrary to the spec. Thus, `textInput` is the best - * available event to identify the characters that have actually been inserted - * into the target node. - * - * This plugin is also responsible for emitting `composition` events, thus - * allowing us to share composition fallback code for both `beforeInput` and - * `composition` event types. - */ -var BeforeInputEventPlugin = { - - eventTypes: eventTypes, - - /** - * @param {string} topLevelType Record from `EventConstants`. - * @param {DOMEventTarget} topLevelTarget The listening component root node. - * @param {string} topLevelTargetID ID of `topLevelTarget`. - * @param {object} nativeEvent Native browser event. - * @return {*} An accumulation of synthetic events. - * @see {EventPluginHub.extractEvents} - */ - extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) { - return [extractCompositionEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget), extractBeforeInputEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget)]; - } -}; - -module.exports = BeforeInputEventPlugin; -},{"129":129,"147":147,"15":15,"19":19,"20":20,"90":90,"94":94}],4:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule CSSProperty - */ - -'use strict'; - -/** - * CSS properties which accept numbers but are not in units of "px". - */ -var isUnitlessNumber = { - animationIterationCount: true, - boxFlex: true, - boxFlexGroup: true, - boxOrdinalGroup: true, - columnCount: true, - flex: true, - flexGrow: true, - flexPositive: true, - flexShrink: true, - flexNegative: true, - flexOrder: true, - fontWeight: true, - lineClamp: true, - lineHeight: true, - opacity: true, - order: true, - orphans: true, - tabSize: true, - widows: true, - zIndex: true, - zoom: true, - - // SVG-related properties - fillOpacity: true, - stopOpacity: true, - strokeDashoffset: true, - strokeOpacity: true, - strokeWidth: true -}; - -/** - * @param {string} prefix vendor-specific prefix, eg: Webkit - * @param {string} key style name, eg: transitionDuration - * @return {string} style name prefixed with `prefix`, properly camelCased, eg: - * WebkitTransitionDuration - */ -function prefixKey(prefix, key) { - return prefix + key.charAt(0).toUpperCase() + key.substring(1); -} - -/** - * Support style names that may come passed in prefixed by adding permutations - * of vendor prefixes. - */ -var prefixes = ['Webkit', 'ms', 'Moz', 'O']; - -// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an -// infinite loop, because it iterates over the newly added props too. -Object.keys(isUnitlessNumber).forEach(function (prop) { - prefixes.forEach(function (prefix) { - isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop]; - }); -}); - -/** - * Most style properties can be unset by doing .style[prop] = '' but IE8 - * doesn't like doing that with shorthand properties so for the properties that - * IE8 breaks on, which are listed here, we instead unset each of the - * individual properties. See http://bugs.jquery.com/ticket/12385. - * The 4-value 'clock' properties like margin, padding, border-width seem to - * behave without any problems. Curiously, list-style works too without any - * special prodding. - */ -var shorthandPropertyExpansions = { - background: { - backgroundAttachment: true, - backgroundColor: true, - backgroundImage: true, - backgroundPositionX: true, - backgroundPositionY: true, - backgroundRepeat: true - }, - backgroundPosition: { - backgroundPositionX: true, - backgroundPositionY: true - }, - border: { - borderWidth: true, - borderStyle: true, - borderColor: true - }, - borderBottom: { - borderBottomWidth: true, - borderBottomStyle: true, - borderBottomColor: true - }, - borderLeft: { - borderLeftWidth: true, - borderLeftStyle: true, - borderLeftColor: true - }, - borderRight: { - borderRightWidth: true, - borderRightStyle: true, - borderRightColor: true - }, - borderTop: { - borderTopWidth: true, - borderTopStyle: true, - borderTopColor: true - }, - font: { - fontStyle: true, - fontVariant: true, - fontWeight: true, - fontSize: true, - lineHeight: true, - fontFamily: true - }, - outline: { - outlineWidth: true, - outlineStyle: true, - outlineColor: true - } -}; - -var CSSProperty = { - isUnitlessNumber: isUnitlessNumber, - shorthandPropertyExpansions: shorthandPropertyExpansions -}; - -module.exports = CSSProperty; -},{}],5:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule CSSPropertyOperations - * @typechecks static-only - */ - -'use strict'; - -var CSSProperty = _dereq_(4); -var ExecutionEnvironment = _dereq_(129); -var ReactPerf = _dereq_(71); - -var camelizeStyleName = _dereq_(131); -var dangerousStyleValue = _dereq_(104); -var hyphenateStyleName = _dereq_(142); -var memoizeStringOnly = _dereq_(149); -var warning = _dereq_(154); - -var processStyleName = memoizeStringOnly(function (styleName) { - return hyphenateStyleName(styleName); -}); - -var hasShorthandPropertyBug = false; -var styleFloatAccessor = 'cssFloat'; -if (ExecutionEnvironment.canUseDOM) { - var tempStyle = document.createElement('div').style; - try { - // IE8 throws "Invalid argument." if resetting shorthand style properties. - tempStyle.font = ''; - } catch (e) { - hasShorthandPropertyBug = true; - } - // IE8 only supports accessing cssFloat (standard) as styleFloat - if (document.documentElement.style.cssFloat === undefined) { - styleFloatAccessor = 'styleFloat'; - } -} - -if ("development" !== 'production') { - // 'msTransform' is correct, but the other prefixes should be capitalized - var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/; - - // style values shouldn't contain a semicolon - var badStyleValueWithSemicolonPattern = /;\s*$/; - - var warnedStyleNames = {}; - var warnedStyleValues = {}; - - var warnHyphenatedStyleName = function (name) { - if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) { - return; - } - - warnedStyleNames[name] = true; - "development" !== 'production' ? warning(false, 'Unsupported style property %s. Did you mean %s?', name, camelizeStyleName(name)) : undefined; - }; - - var warnBadVendoredStyleName = function (name) { - if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) { - return; - } - - warnedStyleNames[name] = true; - "development" !== 'production' ? warning(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?', name, name.charAt(0).toUpperCase() + name.slice(1)) : undefined; - }; - - var warnStyleValueWithSemicolon = function (name, value) { - if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) { - return; - } - - warnedStyleValues[value] = true; - "development" !== 'production' ? warning(false, 'Style property values shouldn\'t contain a semicolon. ' + 'Try "%s: %s" instead.', name, value.replace(badStyleValueWithSemicolonPattern, '')) : undefined; - }; - - /** - * @param {string} name - * @param {*} value - */ - var warnValidStyle = function (name, value) { - if (name.indexOf('-') > -1) { - warnHyphenatedStyleName(name); - } else if (badVendoredStyleNamePattern.test(name)) { - warnBadVendoredStyleName(name); - } else if (badStyleValueWithSemicolonPattern.test(value)) { - warnStyleValueWithSemicolon(name, value); - } - }; -} - -/** - * Operations for dealing with CSS properties. - */ -var CSSPropertyOperations = { - - /** - * Serializes a mapping of style properties for use as inline styles: - * - * > createMarkupForStyles({width: '200px', height: 0}) - * "width:200px;height:0;" - * - * Undefined values are ignored so that declarative programming is easier. - * The result should be HTML-escaped before insertion into the DOM. - * - * @param {object} styles - * @return {?string} - */ - createMarkupForStyles: function (styles) { - var serialized = ''; - for (var styleName in styles) { - if (!styles.hasOwnProperty(styleName)) { - continue; - } - var styleValue = styles[styleName]; - if ("development" !== 'production') { - warnValidStyle(styleName, styleValue); - } - if (styleValue != null) { - serialized += processStyleName(styleName) + ':'; - serialized += dangerousStyleValue(styleName, styleValue) + ';'; - } - } - return serialized || null; - }, - - /** - * Sets the value for multiple styles on a node. If a value is specified as - * '' (empty string), the corresponding style property will be unset. - * - * @param {DOMElement} node - * @param {object} styles - */ - setValueForStyles: function (node, styles) { - var style = node.style; - for (var styleName in styles) { - if (!styles.hasOwnProperty(styleName)) { - continue; - } - if ("development" !== 'production') { - warnValidStyle(styleName, styles[styleName]); - } - var styleValue = dangerousStyleValue(styleName, styles[styleName]); - if (styleName === 'float') { - styleName = styleFloatAccessor; - } - if (styleValue) { - style[styleName] = styleValue; - } else { - var expansion = hasShorthandPropertyBug && CSSProperty.shorthandPropertyExpansions[styleName]; - if (expansion) { - // Shorthand property that IE8 won't like unsetting, so unset each - // component to placate it - for (var individualStyleName in expansion) { - style[individualStyleName] = ''; - } - } else { - style[styleName] = ''; - } - } - } - } - -}; - -ReactPerf.measureMethods(CSSPropertyOperations, 'CSSPropertyOperations', { - setValueForStyles: 'setValueForStyles' -}); - -module.exports = CSSPropertyOperations; -},{"104":104,"129":129,"131":131,"142":142,"149":149,"154":154,"4":4,"71":71}],6:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule CallbackQueue - */ - -'use strict'; - -var PooledClass = _dereq_(24); - -var assign = _dereq_(23); -var invariant = _dereq_(143); - -/** - * A specialized pseudo-event module to help keep track of components waiting to - * be notified when their DOM representations are available for use. - * - * This implements `PooledClass`, so you should never need to instantiate this. - * Instead, use `CallbackQueue.getPooled()`. - * - * @class ReactMountReady - * @implements PooledClass - * @internal - */ -function CallbackQueue() { - this._callbacks = null; - this._contexts = null; -} - -assign(CallbackQueue.prototype, { - - /** - * Enqueues a callback to be invoked when `notifyAll` is invoked. - * - * @param {function} callback Invoked when `notifyAll` is invoked. - * @param {?object} context Context to call `callback` with. - * @internal - */ - enqueue: function (callback, context) { - this._callbacks = this._callbacks || []; - this._contexts = this._contexts || []; - this._callbacks.push(callback); - this._contexts.push(context); - }, - - /** - * Invokes all enqueued callbacks and clears the queue. This is invoked after - * the DOM representation of a component has been created or updated. - * - * @internal - */ - notifyAll: function () { - var callbacks = this._callbacks; - var contexts = this._contexts; - if (callbacks) { - !(callbacks.length === contexts.length) ? "development" !== 'production' ? invariant(false, 'Mismatched list of contexts in callback queue') : invariant(false) : undefined; - this._callbacks = null; - this._contexts = null; - for (var i = 0; i < callbacks.length; i++) { - callbacks[i].call(contexts[i]); - } - callbacks.length = 0; - contexts.length = 0; - } - }, - - /** - * Resets the internal queue. - * - * @internal - */ - reset: function () { - this._callbacks = null; - this._contexts = null; - }, - - /** - * `PooledClass` looks for this. - */ - destructor: function () { - this.reset(); - } - -}); - -PooledClass.addPoolingTo(CallbackQueue); - -module.exports = CallbackQueue; -},{"143":143,"23":23,"24":24}],7:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ChangeEventPlugin - */ - -'use strict'; - -var EventConstants = _dereq_(15); -var EventPluginHub = _dereq_(16); -var EventPropagators = _dereq_(19); -var ExecutionEnvironment = _dereq_(129); -var ReactUpdates = _dereq_(83); -var SyntheticEvent = _dereq_(92); - -var getEventTarget = _dereq_(113); -var isEventSupported = _dereq_(118); -var isTextInputElement = _dereq_(119); -var keyOf = _dereq_(147); - -var topLevelTypes = EventConstants.topLevelTypes; - -var eventTypes = { - change: { - phasedRegistrationNames: { - bubbled: keyOf({ onChange: null }), - captured: keyOf({ onChangeCapture: null }) - }, - dependencies: [topLevelTypes.topBlur, topLevelTypes.topChange, topLevelTypes.topClick, topLevelTypes.topFocus, topLevelTypes.topInput, topLevelTypes.topKeyDown, topLevelTypes.topKeyUp, topLevelTypes.topSelectionChange] - } -}; - -/** - * For IE shims - */ -var activeElement = null; -var activeElementID = null; -var activeElementValue = null; -var activeElementValueProp = null; - -/** - * SECTION: handle `change` event - */ -function shouldUseChangeEvent(elem) { - var nodeName = elem.nodeName && elem.nodeName.toLowerCase(); - return nodeName === 'select' || nodeName === 'input' && elem.type === 'file'; -} - -var doesChangeEventBubble = false; -if (ExecutionEnvironment.canUseDOM) { - // See `handleChange` comment below - doesChangeEventBubble = isEventSupported('change') && (!('documentMode' in document) || document.documentMode > 8); -} - -function manualDispatchChangeEvent(nativeEvent) { - var event = SyntheticEvent.getPooled(eventTypes.change, activeElementID, nativeEvent, getEventTarget(nativeEvent)); - EventPropagators.accumulateTwoPhaseDispatches(event); - - // If change and propertychange bubbled, we'd just bind to it like all the - // other events and have it go through ReactBrowserEventEmitter. Since it - // doesn't, we manually listen for the events and so we have to enqueue and - // process the abstract event manually. - // - // Batching is necessary here in order to ensure that all event handlers run - // before the next rerender (including event handlers attached to ancestor - // elements instead of directly on the input). Without this, controlled - // components don't work properly in conjunction with event bubbling because - // the component is rerendered and the value reverted before all the event - // handlers can run. See https://github.com/facebook/react/issues/708. - ReactUpdates.batchedUpdates(runEventInBatch, event); -} - -function runEventInBatch(event) { - EventPluginHub.enqueueEvents(event); - EventPluginHub.processEventQueue(false); -} - -function startWatchingForChangeEventIE8(target, targetID) { - activeElement = target; - activeElementID = targetID; - activeElement.attachEvent('onchange', manualDispatchChangeEvent); -} - -function stopWatchingForChangeEventIE8() { - if (!activeElement) { - return; - } - activeElement.detachEvent('onchange', manualDispatchChangeEvent); - activeElement = null; - activeElementID = null; -} - -function getTargetIDForChangeEvent(topLevelType, topLevelTarget, topLevelTargetID) { - if (topLevelType === topLevelTypes.topChange) { - return topLevelTargetID; - } -} -function handleEventsForChangeEventIE8(topLevelType, topLevelTarget, topLevelTargetID) { - if (topLevelType === topLevelTypes.topFocus) { - // stopWatching() should be a noop here but we call it just in case we - // missed a blur event somehow. - stopWatchingForChangeEventIE8(); - startWatchingForChangeEventIE8(topLevelTarget, topLevelTargetID); - } else if (topLevelType === topLevelTypes.topBlur) { - stopWatchingForChangeEventIE8(); - } -} - -/** - * SECTION: handle `input` event - */ -var isInputEventSupported = false; -if (ExecutionEnvironment.canUseDOM) { - // IE9 claims to support the input event but fails to trigger it when - // deleting text, so we ignore its input events - isInputEventSupported = isEventSupported('input') && (!('documentMode' in document) || document.documentMode > 9); -} - -/** - * (For old IE.) Replacement getter/setter for the `value` property that gets - * set on the active element. - */ -var newValueProp = { - get: function () { - return activeElementValueProp.get.call(this); - }, - set: function (val) { - // Cast to a string so we can do equality checks. - activeElementValue = '' + val; - activeElementValueProp.set.call(this, val); - } -}; - -/** - * (For old IE.) Starts tracking propertychange events on the passed-in element - * and override the value property so that we can distinguish user events from - * value changes in JS. - */ -function startWatchingForValueChange(target, targetID) { - activeElement = target; - activeElementID = targetID; - activeElementValue = target.value; - activeElementValueProp = Object.getOwnPropertyDescriptor(target.constructor.prototype, 'value'); - - Object.defineProperty(activeElement, 'value', newValueProp); - activeElement.attachEvent('onpropertychange', handlePropertyChange); -} - -/** - * (For old IE.) Removes the event listeners from the currently-tracked element, - * if any exists. - */ -function stopWatchingForValueChange() { - if (!activeElement) { - return; - } - - // delete restores the original property definition - delete activeElement.value; - activeElement.detachEvent('onpropertychange', handlePropertyChange); - - activeElement = null; - activeElementID = null; - activeElementValue = null; - activeElementValueProp = null; -} - -/** - * (For old IE.) Handles a propertychange event, sending a `change` event if - * the value of the active element has changed. - */ -function handlePropertyChange(nativeEvent) { - if (nativeEvent.propertyName !== 'value') { - return; - } - var value = nativeEvent.srcElement.value; - if (value === activeElementValue) { - return; - } - activeElementValue = value; - - manualDispatchChangeEvent(nativeEvent); -} - -/** - * If a `change` event should be fired, returns the target's ID. - */ -function getTargetIDForInputEvent(topLevelType, topLevelTarget, topLevelTargetID) { - if (topLevelType === topLevelTypes.topInput) { - // In modern browsers (i.e., not IE8 or IE9), the input event is exactly - // what we want so fall through here and trigger an abstract event - return topLevelTargetID; - } -} - -// For IE8 and IE9. -function handleEventsForInputEventIE(topLevelType, topLevelTarget, topLevelTargetID) { - if (topLevelType === topLevelTypes.topFocus) { - // In IE8, we can capture almost all .value changes by adding a - // propertychange handler and looking for events with propertyName - // equal to 'value' - // In IE9, propertychange fires for most input events but is buggy and - // doesn't fire when text is deleted, but conveniently, selectionchange - // appears to fire in all of the remaining cases so we catch those and - // forward the event if the value has changed - // In either case, we don't want to call the event handler if the value - // is changed from JS so we redefine a setter for `.value` that updates - // our activeElementValue variable, allowing us to ignore those changes - // - // stopWatching() should be a noop here but we call it just in case we - // missed a blur event somehow. - stopWatchingForValueChange(); - startWatchingForValueChange(topLevelTarget, topLevelTargetID); - } else if (topLevelType === topLevelTypes.topBlur) { - stopWatchingForValueChange(); - } -} - -// For IE8 and IE9. -function getTargetIDForInputEventIE(topLevelType, topLevelTarget, topLevelTargetID) { - if (topLevelType === topLevelTypes.topSelectionChange || topLevelType === topLevelTypes.topKeyUp || topLevelType === topLevelTypes.topKeyDown) { - // On the selectionchange event, the target is just document which isn't - // helpful for us so just check activeElement instead. - // - // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire - // propertychange on the first input event after setting `value` from a - // script and fires only keydown, keypress, keyup. Catching keyup usually - // gets it and catching keydown lets us fire an event for the first - // keystroke if user does a key repeat (it'll be a little delayed: right - // before the second keystroke). Other input methods (e.g., paste) seem to - // fire selectionchange normally. - if (activeElement && activeElement.value !== activeElementValue) { - activeElementValue = activeElement.value; - return activeElementID; - } - } -} - -/** - * SECTION: handle `click` event - */ -function shouldUseClickEvent(elem) { - // Use the `click` event to detect changes to checkbox and radio inputs. - // This approach works across all browsers, whereas `change` does not fire - // until `blur` in IE8. - return elem.nodeName && elem.nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio'); -} - -function getTargetIDForClickEvent(topLevelType, topLevelTarget, topLevelTargetID) { - if (topLevelType === topLevelTypes.topClick) { - return topLevelTargetID; - } -} - -/** - * This plugin creates an `onChange` event that normalizes change events - * across form elements. This event fires at a time when it's possible to - * change the element's value without seeing a flicker. - * - * Supported elements are: - * - input (see `isTextInputElement`) - * - textarea - * - select - */ -var ChangeEventPlugin = { - - eventTypes: eventTypes, - - /** - * @param {string} topLevelType Record from `EventConstants`. - * @param {DOMEventTarget} topLevelTarget The listening component root node. - * @param {string} topLevelTargetID ID of `topLevelTarget`. - * @param {object} nativeEvent Native browser event. - * @return {*} An accumulation of synthetic events. - * @see {EventPluginHub.extractEvents} - */ - extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) { - - var getTargetIDFunc, handleEventFunc; - if (shouldUseChangeEvent(topLevelTarget)) { - if (doesChangeEventBubble) { - getTargetIDFunc = getTargetIDForChangeEvent; - } else { - handleEventFunc = handleEventsForChangeEventIE8; - } - } else if (isTextInputElement(topLevelTarget)) { - if (isInputEventSupported) { - getTargetIDFunc = getTargetIDForInputEvent; - } else { - getTargetIDFunc = getTargetIDForInputEventIE; - handleEventFunc = handleEventsForInputEventIE; - } - } else if (shouldUseClickEvent(topLevelTarget)) { - getTargetIDFunc = getTargetIDForClickEvent; - } - - if (getTargetIDFunc) { - var targetID = getTargetIDFunc(topLevelType, topLevelTarget, topLevelTargetID); - if (targetID) { - var event = SyntheticEvent.getPooled(eventTypes.change, targetID, nativeEvent, nativeEventTarget); - event.type = 'change'; - EventPropagators.accumulateTwoPhaseDispatches(event); - return event; - } - } - - if (handleEventFunc) { - handleEventFunc(topLevelType, topLevelTarget, topLevelTargetID); - } - } - -}; - -module.exports = ChangeEventPlugin; -},{"113":113,"118":118,"119":119,"129":129,"147":147,"15":15,"16":16,"19":19,"83":83,"92":92}],8:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ClientReactRootIndex - * @typechecks - */ - -'use strict'; - -var nextReactRootIndex = 0; - -var ClientReactRootIndex = { - createReactRootIndex: function () { - return nextReactRootIndex++; - } -}; - -module.exports = ClientReactRootIndex; -},{}],9:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule DOMChildrenOperations - * @typechecks static-only - */ - -'use strict'; - -var Danger = _dereq_(12); -var ReactMultiChildUpdateTypes = _dereq_(67); -var ReactPerf = _dereq_(71); - -var setInnerHTML = _dereq_(123); -var setTextContent = _dereq_(124); -var invariant = _dereq_(143); - -/** - * Inserts `childNode` as a child of `parentNode` at the `index`. - * - * @param {DOMElement} parentNode Parent node in which to insert. - * @param {DOMElement} childNode Child node to insert. - * @param {number} index Index at which to insert the child. - * @internal - */ -function insertChildAt(parentNode, childNode, index) { - // By exploiting arrays returning `undefined` for an undefined index, we can - // rely exclusively on `insertBefore(node, null)` instead of also using - // `appendChild(node)`. However, using `undefined` is not allowed by all - // browsers so we must replace it with `null`. - - // fix render order error in safari - // IE8 will throw error when index out of list size. - var beforeChild = index >= parentNode.childNodes.length ? null : parentNode.childNodes.item(index); - - parentNode.insertBefore(childNode, beforeChild); -} - -/** - * Operations for updating with DOM children. - */ -var DOMChildrenOperations = { - - dangerouslyReplaceNodeWithMarkup: Danger.dangerouslyReplaceNodeWithMarkup, - - updateTextContent: setTextContent, - - /** - * Updates a component's children by processing a series of updates. The - * update configurations are each expected to have a `parentNode` property. - * - * @param {array<object>} updates List of update configurations. - * @param {array<string>} markupList List of markup strings. - * @internal - */ - processUpdates: function (updates, markupList) { - var update; - // Mapping from parent IDs to initial child orderings. - var initialChildren = null; - // List of children that will be moved or removed. - var updatedChildren = null; - - for (var i = 0; i < updates.length; i++) { - update = updates[i]; - if (update.type === ReactMultiChildUpdateTypes.MOVE_EXISTING || update.type === ReactMultiChildUpdateTypes.REMOVE_NODE) { - var updatedIndex = update.fromIndex; - var updatedChild = update.parentNode.childNodes[updatedIndex]; - var parentID = update.parentID; - - !updatedChild ? "development" !== 'production' ? invariant(false, 'processUpdates(): Unable to find child %s of element. This ' + 'probably means the DOM was unexpectedly mutated (e.g., by the ' + 'browser), usually due to forgetting a <tbody> when using tables, ' + 'nesting tags like <form>, <p>, or <a>, or using non-SVG elements ' + 'in an <svg> parent. Try inspecting the child nodes of the element ' + 'with React ID `%s`.', updatedIndex, parentID) : invariant(false) : undefined; - - initialChildren = initialChildren || {}; - initialChildren[parentID] = initialChildren[parentID] || []; - initialChildren[parentID][updatedIndex] = updatedChild; - - updatedChildren = updatedChildren || []; - updatedChildren.push(updatedChild); - } - } - - var renderedMarkup; - // markupList is either a list of markup or just a list of elements - if (markupList.length && typeof markupList[0] === 'string') { - renderedMarkup = Danger.dangerouslyRenderMarkup(markupList); - } else { - renderedMarkup = markupList; - } - - // Remove updated children first so that `toIndex` is consistent. - if (updatedChildren) { - for (var j = 0; j < updatedChildren.length; j++) { - updatedChildren[j].parentNode.removeChild(updatedChildren[j]); - } - } - - for (var k = 0; k < updates.length; k++) { - update = updates[k]; - switch (update.type) { - case ReactMultiChildUpdateTypes.INSERT_MARKUP: - insertChildAt(update.parentNode, renderedMarkup[update.markupIndex], update.toIndex); - break; - case ReactMultiChildUpdateTypes.MOVE_EXISTING: - insertChildAt(update.parentNode, initialChildren[update.parentID][update.fromIndex], update.toIndex); - break; - case ReactMultiChildUpdateTypes.SET_MARKUP: - setInnerHTML(update.parentNode, update.content); - break; - case ReactMultiChildUpdateTypes.TEXT_CONTENT: - setTextContent(update.parentNode, update.content); - break; - case ReactMultiChildUpdateTypes.REMOVE_NODE: - // Already removed by the for-loop above. - break; - } - } - } - -}; - -ReactPerf.measureMethods(DOMChildrenOperations, 'DOMChildrenOperations', { - updateTextContent: 'updateTextContent' -}); - -module.exports = DOMChildrenOperations; -},{"12":12,"123":123,"124":124,"143":143,"67":67,"71":71}],10:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule DOMProperty - * @typechecks static-only - */ - -'use strict'; - -var invariant = _dereq_(143); - -function checkMask(value, bitmask) { - return (value & bitmask) === bitmask; -} - -var DOMPropertyInjection = { - /** - * Mapping from normalized, camelcased property names to a configuration that - * specifies how the associated DOM property should be accessed or rendered. - */ - MUST_USE_ATTRIBUTE: 0x1, - MUST_USE_PROPERTY: 0x2, - HAS_SIDE_EFFECTS: 0x4, - HAS_BOOLEAN_VALUE: 0x8, - HAS_NUMERIC_VALUE: 0x10, - HAS_POSITIVE_NUMERIC_VALUE: 0x20 | 0x10, - HAS_OVERLOADED_BOOLEAN_VALUE: 0x40, - - /** - * Inject some specialized knowledge about the DOM. This takes a config object - * with the following properties: - * - * isCustomAttribute: function that given an attribute name will return true - * if it can be inserted into the DOM verbatim. Useful for data-* or aria-* - * attributes where it's impossible to enumerate all of the possible - * attribute names, - * - * Properties: object mapping DOM property name to one of the - * DOMPropertyInjection constants or null. If your attribute isn't in here, - * it won't get written to the DOM. - * - * DOMAttributeNames: object mapping React attribute name to the DOM - * attribute name. Attribute names not specified use the **lowercase** - * normalized name. - * - * DOMAttributeNamespaces: object mapping React attribute name to the DOM - * attribute namespace URL. (Attribute names not specified use no namespace.) - * - * DOMPropertyNames: similar to DOMAttributeNames but for DOM properties. - * Property names not specified use the normalized name. - * - * DOMMutationMethods: Properties that require special mutation methods. If - * `value` is undefined, the mutation method should unset the property. - * - * @param {object} domPropertyConfig the config as described above. - */ - injectDOMPropertyConfig: function (domPropertyConfig) { - var Injection = DOMPropertyInjection; - var Properties = domPropertyConfig.Properties || {}; - var DOMAttributeNamespaces = domPropertyConfig.DOMAttributeNamespaces || {}; - var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {}; - var DOMPropertyNames = domPropertyConfig.DOMPropertyNames || {}; - var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {}; - - if (domPropertyConfig.isCustomAttribute) { - DOMProperty._isCustomAttributeFunctions.push(domPropertyConfig.isCustomAttribute); - } - - for (var propName in Properties) { - !!DOMProperty.properties.hasOwnProperty(propName) ? "development" !== 'production' ? invariant(false, 'injectDOMPropertyConfig(...): You\'re trying to inject DOM property ' + '\'%s\' which has already been injected. You may be accidentally ' + 'injecting the same DOM property config twice, or you may be ' + 'injecting two configs that have conflicting property names.', propName) : invariant(false) : undefined; - - var lowerCased = propName.toLowerCase(); - var propConfig = Properties[propName]; - - var propertyInfo = { - attributeName: lowerCased, - attributeNamespace: null, - propertyName: propName, - mutationMethod: null, - - mustUseAttribute: checkMask(propConfig, Injection.MUST_USE_ATTRIBUTE), - mustUseProperty: checkMask(propConfig, Injection.MUST_USE_PROPERTY), - hasSideEffects: checkMask(propConfig, Injection.HAS_SIDE_EFFECTS), - hasBooleanValue: checkMask(propConfig, Injection.HAS_BOOLEAN_VALUE), - hasNumericValue: checkMask(propConfig, Injection.HAS_NUMERIC_VALUE), - hasPositiveNumericValue: checkMask(propConfig, Injection.HAS_POSITIVE_NUMERIC_VALUE), - hasOverloadedBooleanValue: checkMask(propConfig, Injection.HAS_OVERLOADED_BOOLEAN_VALUE) - }; - - !(!propertyInfo.mustUseAttribute || !propertyInfo.mustUseProperty) ? "development" !== 'production' ? invariant(false, 'DOMProperty: Cannot require using both attribute and property: %s', propName) : invariant(false) : undefined; - !(propertyInfo.mustUseProperty || !propertyInfo.hasSideEffects) ? "development" !== 'production' ? invariant(false, 'DOMProperty: Properties that have side effects must use property: %s', propName) : invariant(false) : undefined; - !(propertyInfo.hasBooleanValue + propertyInfo.hasNumericValue + propertyInfo.hasOverloadedBooleanValue <= 1) ? "development" !== 'production' ? invariant(false, 'DOMProperty: Value can be one of boolean, overloaded boolean, or ' + 'numeric value, but not a combination: %s', propName) : invariant(false) : undefined; - - if ("development" !== 'production') { - DOMProperty.getPossibleStandardName[lowerCased] = propName; - } - - if (DOMAttributeNames.hasOwnProperty(propName)) { - var attributeName = DOMAttributeNames[propName]; - propertyInfo.attributeName = attributeName; - if ("development" !== 'production') { - DOMProperty.getPossibleStandardName[attributeName] = propName; - } - } - - if (DOMAttributeNamespaces.hasOwnProperty(propName)) { - propertyInfo.attributeNamespace = DOMAttributeNamespaces[propName]; - } - - if (DOMPropertyNames.hasOwnProperty(propName)) { - propertyInfo.propertyName = DOMPropertyNames[propName]; - } - - if (DOMMutationMethods.hasOwnProperty(propName)) { - propertyInfo.mutationMethod = DOMMutationMethods[propName]; - } - - DOMProperty.properties[propName] = propertyInfo; - } - } -}; -var defaultValueCache = {}; - -/** - * DOMProperty exports lookup objects that can be used like functions: - * - * > DOMProperty.isValid['id'] - * true - * > DOMProperty.isValid['foobar'] - * undefined - * - * Although this may be confusing, it performs better in general. - * - * @see http://jsperf.com/key-exists - * @see http://jsperf.com/key-missing - */ -var DOMProperty = { - - ID_ATTRIBUTE_NAME: 'data-reactid', - - /** - * Map from property "standard name" to an object with info about how to set - * the property in the DOM. Each object contains: - * - * attributeName: - * Used when rendering markup or with `*Attribute()`. - * attributeNamespace - * propertyName: - * Used on DOM node instances. (This includes properties that mutate due to - * external factors.) - * mutationMethod: - * If non-null, used instead of the property or `setAttribute()` after - * initial render. - * mustUseAttribute: - * Whether the property must be accessed and mutated using `*Attribute()`. - * (This includes anything that fails `<propName> in <element>`.) - * mustUseProperty: - * Whether the property must be accessed and mutated as an object property. - * hasSideEffects: - * Whether or not setting a value causes side effects such as triggering - * resources to be loaded or text selection changes. If true, we read from - * the DOM before updating to ensure that the value is only set if it has - * changed. - * hasBooleanValue: - * Whether the property should be removed when set to a falsey value. - * hasNumericValue: - * Whether the property must be numeric or parse as a numeric and should be - * removed when set to a falsey value. - * hasPositiveNumericValue: - * Whether the property must be positive numeric or parse as a positive - * numeric and should be removed when set to a falsey value. - * hasOverloadedBooleanValue: - * Whether the property can be used as a flag as well as with a value. - * Removed when strictly equal to false; present without a value when - * strictly equal to true; present with a value otherwise. - */ - properties: {}, - - /** - * Mapping from lowercase property names to the properly cased version, used - * to warn in the case of missing properties. Available only in __DEV__. - * @type {Object} - */ - getPossibleStandardName: "development" !== 'production' ? {} : null, - - /** - * All of the isCustomAttribute() functions that have been injected. - */ - _isCustomAttributeFunctions: [], - - /** - * Checks whether a property name is a custom attribute. - * @method - */ - isCustomAttribute: function (attributeName) { - for (var i = 0; i < DOMProperty._isCustomAttributeFunctions.length; i++) { - var isCustomAttributeFn = DOMProperty._isCustomAttributeFunctions[i]; - if (isCustomAttributeFn(attributeName)) { - return true; - } - } - return false; - }, - - /** - * Returns the default property value for a DOM property (i.e., not an - * attribute). Most default values are '' or false, but not all. Worse yet, - * some (in particular, `type`) vary depending on the type of element. - * - * TODO: Is it better to grab all the possible properties when creating an - * element to avoid having to create the same element twice? - */ - getDefaultValueForProperty: function (nodeName, prop) { - var nodeDefaults = defaultValueCache[nodeName]; - var testElement; - if (!nodeDefaults) { - defaultValueCache[nodeName] = nodeDefaults = {}; - } - if (!(prop in nodeDefaults)) { - testElement = document.createElement(nodeName); - nodeDefaults[prop] = testElement[prop]; - } - return nodeDefaults[prop]; - }, - - injection: DOMPropertyInjection -}; - -module.exports = DOMProperty; -},{"143":143}],11:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule DOMPropertyOperations - * @typechecks static-only - */ - -'use strict'; - -var DOMProperty = _dereq_(10); -var ReactPerf = _dereq_(71); - -var quoteAttributeValueForBrowser = _dereq_(121); -var warning = _dereq_(154); - -// Simplified subset -var VALID_ATTRIBUTE_NAME_REGEX = /^[a-zA-Z_][\w\.\-]*$/; -var illegalAttributeNameCache = {}; -var validatedAttributeNameCache = {}; - -function isAttributeNameSafe(attributeName) { - if (validatedAttributeNameCache.hasOwnProperty(attributeName)) { - return true; - } - if (illegalAttributeNameCache.hasOwnProperty(attributeName)) { - return false; - } - if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) { - validatedAttributeNameCache[attributeName] = true; - return true; - } - illegalAttributeNameCache[attributeName] = true; - "development" !== 'production' ? warning(false, 'Invalid attribute name: `%s`', attributeName) : undefined; - return false; -} - -function shouldIgnoreValue(propertyInfo, value) { - return value == null || propertyInfo.hasBooleanValue && !value || propertyInfo.hasNumericValue && isNaN(value) || propertyInfo.hasPositiveNumericValue && value < 1 || propertyInfo.hasOverloadedBooleanValue && value === false; -} - -if ("development" !== 'production') { - var reactProps = { - children: true, - dangerouslySetInnerHTML: true, - key: true, - ref: true - }; - var warnedProperties = {}; - - var warnUnknownProperty = function (name) { - if (reactProps.hasOwnProperty(name) && reactProps[name] || warnedProperties.hasOwnProperty(name) && warnedProperties[name]) { - return; - } - - warnedProperties[name] = true; - var lowerCasedName = name.toLowerCase(); - - // data-* attributes should be lowercase; suggest the lowercase version - var standardName = DOMProperty.isCustomAttribute(lowerCasedName) ? lowerCasedName : DOMProperty.getPossibleStandardName.hasOwnProperty(lowerCasedName) ? DOMProperty.getPossibleStandardName[lowerCasedName] : null; - - // For now, only warn when we have a suggested correction. This prevents - // logging too much when using transferPropsTo. - "development" !== 'production' ? warning(standardName == null, 'Unknown DOM property %s. Did you mean %s?', name, standardName) : undefined; - }; -} - -/** - * Operations for dealing with DOM properties. - */ -var DOMPropertyOperations = { - - /** - * Creates markup for the ID property. - * - * @param {string} id Unescaped ID. - * @return {string} Markup string. - */ - createMarkupForID: function (id) { - return DOMProperty.ID_ATTRIBUTE_NAME + '=' + quoteAttributeValueForBrowser(id); - }, - - setAttributeForID: function (node, id) { - node.setAttribute(DOMProperty.ID_ATTRIBUTE_NAME, id); - }, - - /** - * Creates markup for a property. - * - * @param {string} name - * @param {*} value - * @return {?string} Markup string, or null if the property was invalid. - */ - createMarkupForProperty: function (name, value) { - var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null; - if (propertyInfo) { - if (shouldIgnoreValue(propertyInfo, value)) { - return ''; - } - var attributeName = propertyInfo.attributeName; - if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) { - return attributeName + '=""'; - } - return attributeName + '=' + quoteAttributeValueForBrowser(value); - } else if (DOMProperty.isCustomAttribute(name)) { - if (value == null) { - return ''; - } - return name + '=' + quoteAttributeValueForBrowser(value); - } else if ("development" !== 'production') { - warnUnknownProperty(name); - } - return null; - }, - - /** - * Creates markup for a custom property. - * - * @param {string} name - * @param {*} value - * @return {string} Markup string, or empty string if the property was invalid. - */ - createMarkupForCustomAttribute: function (name, value) { - if (!isAttributeNameSafe(name) || value == null) { - return ''; - } - return name + '=' + quoteAttributeValueForBrowser(value); - }, - - /** - * Sets the value for a property on a node. - * - * @param {DOMElement} node - * @param {string} name - * @param {*} value - */ - setValueForProperty: function (node, name, value) { - var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null; - if (propertyInfo) { - var mutationMethod = propertyInfo.mutationMethod; - if (mutationMethod) { - mutationMethod(node, value); - } else if (shouldIgnoreValue(propertyInfo, value)) { - this.deleteValueForProperty(node, name); - } else if (propertyInfo.mustUseAttribute) { - var attributeName = propertyInfo.attributeName; - var namespace = propertyInfo.attributeNamespace; - // `setAttribute` with objects becomes only `[object]` in IE8/9, - // ('' + value) makes it output the correct toString()-value. - if (namespace) { - node.setAttributeNS(namespace, attributeName, '' + value); - } else if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) { - node.setAttribute(attributeName, ''); - } else { - node.setAttribute(attributeName, '' + value); - } - } else { - var propName = propertyInfo.propertyName; - // Must explicitly cast values for HAS_SIDE_EFFECTS-properties to the - // property type before comparing; only `value` does and is string. - if (!propertyInfo.hasSideEffects || '' + node[propName] !== '' + value) { - // Contrary to `setAttribute`, object properties are properly - // `toString`ed by IE8/9. - node[propName] = value; - } - } - } else if (DOMProperty.isCustomAttribute(name)) { - DOMPropertyOperations.setValueForAttribute(node, name, value); - } else if ("development" !== 'production') { - warnUnknownProperty(name); - } - }, - - setValueForAttribute: function (node, name, value) { - if (!isAttributeNameSafe(name)) { - return; - } - if (value == null) { - node.removeAttribute(name); - } else { - node.setAttribute(name, '' + value); - } - }, - - /** - * Deletes the value for a property on a node. - * - * @param {DOMElement} node - * @param {string} name - */ - deleteValueForProperty: function (node, name) { - var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null; - if (propertyInfo) { - var mutationMethod = propertyInfo.mutationMethod; - if (mutationMethod) { - mutationMethod(node, undefined); - } else if (propertyInfo.mustUseAttribute) { - node.removeAttribute(propertyInfo.attributeName); - } else { - var propName = propertyInfo.propertyName; - var defaultValue = DOMProperty.getDefaultValueForProperty(node.nodeName, propName); - if (!propertyInfo.hasSideEffects || '' + node[propName] !== defaultValue) { - node[propName] = defaultValue; - } - } - } else if (DOMProperty.isCustomAttribute(name)) { - node.removeAttribute(name); - } else if ("development" !== 'production') { - warnUnknownProperty(name); - } - } - -}; - -ReactPerf.measureMethods(DOMPropertyOperations, 'DOMPropertyOperations', { - setValueForProperty: 'setValueForProperty', - setValueForAttribute: 'setValueForAttribute', - deleteValueForProperty: 'deleteValueForProperty' -}); - -module.exports = DOMPropertyOperations; -},{"10":10,"121":121,"154":154,"71":71}],12:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule Danger - * @typechecks static-only - */ - -'use strict'; - -var ExecutionEnvironment = _dereq_(129); - -var createNodesFromMarkup = _dereq_(134); -var emptyFunction = _dereq_(135); -var getMarkupWrap = _dereq_(139); -var invariant = _dereq_(143); - -var OPEN_TAG_NAME_EXP = /^(<[^ \/>]+)/; -var RESULT_INDEX_ATTR = 'data-danger-index'; - -/** - * Extracts the `nodeName` from a string of markup. - * - * NOTE: Extracting the `nodeName` does not require a regular expression match - * because we make assumptions about React-generated markup (i.e. there are no - * spaces surrounding the opening tag and there is at least one attribute). - * - * @param {string} markup String of markup. - * @return {string} Node name of the supplied markup. - * @see http://jsperf.com/extract-nodename - */ -function getNodeName(markup) { - return markup.substring(1, markup.indexOf(' ')); -} - -var Danger = { - - /** - * Renders markup into an array of nodes. The markup is expected to render - * into a list of root nodes. Also, the length of `resultList` and - * `markupList` should be the same. - * - * @param {array<string>} markupList List of markup strings to render. - * @return {array<DOMElement>} List of rendered nodes. - * @internal - */ - dangerouslyRenderMarkup: function (markupList) { - !ExecutionEnvironment.canUseDOM ? "development" !== 'production' ? invariant(false, 'dangerouslyRenderMarkup(...): Cannot render markup in a worker ' + 'thread. Make sure `window` and `document` are available globally ' + 'before requiring React when unit testing or use ' + 'ReactDOMServer.renderToString for server rendering.') : invariant(false) : undefined; - var nodeName; - var markupByNodeName = {}; - // Group markup by `nodeName` if a wrap is necessary, else by '*'. - for (var i = 0; i < markupList.length; i++) { - !markupList[i] ? "development" !== 'production' ? invariant(false, 'dangerouslyRenderMarkup(...): Missing markup.') : invariant(false) : undefined; - nodeName = getNodeName(markupList[i]); - nodeName = getMarkupWrap(nodeName) ? nodeName : '*'; - markupByNodeName[nodeName] = markupByNodeName[nodeName] || []; - markupByNodeName[nodeName][i] = markupList[i]; - } - var resultList = []; - var resultListAssignmentCount = 0; - for (nodeName in markupByNodeName) { - if (!markupByNodeName.hasOwnProperty(nodeName)) { - continue; - } - var markupListByNodeName = markupByNodeName[nodeName]; - - // This for-in loop skips the holes of the sparse array. The order of - // iteration should follow the order of assignment, which happens to match - // numerical index order, but we don't rely on that. - var resultIndex; - for (resultIndex in markupListByNodeName) { - if (markupListByNodeName.hasOwnProperty(resultIndex)) { - var markup = markupListByNodeName[resultIndex]; - - // Push the requested markup with an additional RESULT_INDEX_ATTR - // attribute. If the markup does not start with a < character, it - // will be discarded below (with an appropriate console.error). - markupListByNodeName[resultIndex] = markup.replace(OPEN_TAG_NAME_EXP, - // This index will be parsed back out below. - '$1 ' + RESULT_INDEX_ATTR + '="' + resultIndex + '" '); - } - } - - // Render each group of markup with similar wrapping `nodeName`. - var renderNodes = createNodesFromMarkup(markupListByNodeName.join(''), emptyFunction // Do nothing special with <script> tags. - ); - - for (var j = 0; j < renderNodes.length; ++j) { - var renderNode = renderNodes[j]; - if (renderNode.hasAttribute && renderNode.hasAttribute(RESULT_INDEX_ATTR)) { - - resultIndex = +renderNode.getAttribute(RESULT_INDEX_ATTR); - renderNode.removeAttribute(RESULT_INDEX_ATTR); - - !!resultList.hasOwnProperty(resultIndex) ? "development" !== 'production' ? invariant(false, 'Danger: Assigning to an already-occupied result index.') : invariant(false) : undefined; - - resultList[resultIndex] = renderNode; - - // This should match resultList.length and markupList.length when - // we're done. - resultListAssignmentCount += 1; - } else if ("development" !== 'production') { - console.error('Danger: Discarding unexpected node:', renderNode); - } - } - } - - // Although resultList was populated out of order, it should now be a dense - // array. - !(resultListAssignmentCount === resultList.length) ? "development" !== 'production' ? invariant(false, 'Danger: Did not assign to every index of resultList.') : invariant(false) : undefined; - - !(resultList.length === markupList.length) ? "development" !== 'production' ? invariant(false, 'Danger: Expected markup to render %s nodes, but rendered %s.', markupList.length, resultList.length) : invariant(false) : undefined; - - return resultList; - }, - - /** - * Replaces a node with a string of markup at its current position within its - * parent. The markup must render into a single root node. - * - * @param {DOMElement} oldChild Child node to replace. - * @param {string} markup Markup to render in place of the child node. - * @internal - */ - dangerouslyReplaceNodeWithMarkup: function (oldChild, markup) { - !ExecutionEnvironment.canUseDOM ? "development" !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot render markup in a ' + 'worker thread. Make sure `window` and `document` are available ' + 'globally before requiring React when unit testing or use ' + 'ReactDOMServer.renderToString() for server rendering.') : invariant(false) : undefined; - !markup ? "development" !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : invariant(false) : undefined; - !(oldChild.tagName.toLowerCase() !== 'html') ? "development" !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot replace markup of the ' + '<html> node. This is because browser quirks make this unreliable ' + 'and/or slow. If you want to render to the root you must use ' + 'server rendering. See ReactDOMServer.renderToString().') : invariant(false) : undefined; - - var newChild; - if (typeof markup === 'string') { - newChild = createNodesFromMarkup(markup, emptyFunction)[0]; - } else { - newChild = markup; - } - oldChild.parentNode.replaceChild(newChild, oldChild); - } - -}; - -module.exports = Danger; -},{"129":129,"134":134,"135":135,"139":139,"143":143}],13:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule DefaultEventPluginOrder - */ - -'use strict'; - -var keyOf = _dereq_(147); - -/** - * Module that is injectable into `EventPluginHub`, that specifies a - * deterministic ordering of `EventPlugin`s. A convenient way to reason about - * plugins, without having to package every one of them. This is better than - * having plugins be ordered in the same order that they are injected because - * that ordering would be influenced by the packaging order. - * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that - * preventing default on events is convenient in `SimpleEventPlugin` handlers. - */ -var DefaultEventPluginOrder = [keyOf({ ResponderEventPlugin: null }), keyOf({ SimpleEventPlugin: null }), keyOf({ TapEventPlugin: null }), keyOf({ EnterLeaveEventPlugin: null }), keyOf({ ChangeEventPlugin: null }), keyOf({ SelectEventPlugin: null }), keyOf({ BeforeInputEventPlugin: null })]; - -module.exports = DefaultEventPluginOrder; -},{"147":147}],14:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule EnterLeaveEventPlugin - * @typechecks static-only - */ - -'use strict'; - -var EventConstants = _dereq_(15); -var EventPropagators = _dereq_(19); -var SyntheticMouseEvent = _dereq_(96); - -var ReactMount = _dereq_(65); -var keyOf = _dereq_(147); - -var topLevelTypes = EventConstants.topLevelTypes; -var getFirstReactDOM = ReactMount.getFirstReactDOM; - -var eventTypes = { - mouseEnter: { - registrationName: keyOf({ onMouseEnter: null }), - dependencies: [topLevelTypes.topMouseOut, topLevelTypes.topMouseOver] - }, - mouseLeave: { - registrationName: keyOf({ onMouseLeave: null }), - dependencies: [topLevelTypes.topMouseOut, topLevelTypes.topMouseOver] - } -}; - -var extractedEvents = [null, null]; - -var EnterLeaveEventPlugin = { - - eventTypes: eventTypes, - - /** - * For almost every interaction we care about, there will be both a top-level - * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that - * we do not extract duplicate events. However, moving the mouse into the - * browser from outside will not fire a `mouseout` event. In this case, we use - * the `mouseover` top-level event. - * - * @param {string} topLevelType Record from `EventConstants`. - * @param {DOMEventTarget} topLevelTarget The listening component root node. - * @param {string} topLevelTargetID ID of `topLevelTarget`. - * @param {object} nativeEvent Native browser event. - * @return {*} An accumulation of synthetic events. - * @see {EventPluginHub.extractEvents} - */ - extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) { - if (topLevelType === topLevelTypes.topMouseOver && (nativeEvent.relatedTarget || nativeEvent.fromElement)) { - return null; - } - if (topLevelType !== topLevelTypes.topMouseOut && topLevelType !== topLevelTypes.topMouseOver) { - // Must not be a mouse in or mouse out - ignoring. - return null; - } - - var win; - if (topLevelTarget.window === topLevelTarget) { - // `topLevelTarget` is probably a window object. - win = topLevelTarget; - } else { - // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8. - var doc = topLevelTarget.ownerDocument; - if (doc) { - win = doc.defaultView || doc.parentWindow; - } else { - win = window; - } - } - - var from; - var to; - var fromID = ''; - var toID = ''; - if (topLevelType === topLevelTypes.topMouseOut) { - from = topLevelTarget; - fromID = topLevelTargetID; - to = getFirstReactDOM(nativeEvent.relatedTarget || nativeEvent.toElement); - if (to) { - toID = ReactMount.getID(to); - } else { - to = win; - } - to = to || win; - } else { - from = win; - to = topLevelTarget; - toID = topLevelTargetID; - } - - if (from === to) { - // Nothing pertains to our managed components. - return null; - } - - var leave = SyntheticMouseEvent.getPooled(eventTypes.mouseLeave, fromID, nativeEvent, nativeEventTarget); - leave.type = 'mouseleave'; - leave.target = from; - leave.relatedTarget = to; - - var enter = SyntheticMouseEvent.getPooled(eventTypes.mouseEnter, toID, nativeEvent, nativeEventTarget); - enter.type = 'mouseenter'; - enter.target = to; - enter.relatedTarget = from; - - EventPropagators.accumulateEnterLeaveDispatches(leave, enter, fromID, toID); - - extractedEvents[0] = leave; - extractedEvents[1] = enter; - - return extractedEvents; - } - -}; - -module.exports = EnterLeaveEventPlugin; -},{"147":147,"15":15,"19":19,"65":65,"96":96}],15:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule EventConstants - */ - -'use strict'; - -var keyMirror = _dereq_(146); - -var PropagationPhases = keyMirror({ bubbled: null, captured: null }); - -/** - * Types of raw signals from the browser caught at the top level. - */ -var topLevelTypes = keyMirror({ - topAbort: null, - topBlur: null, - topCanPlay: null, - topCanPlayThrough: null, - topChange: null, - topClick: null, - topCompositionEnd: null, - topCompositionStart: null, - topCompositionUpdate: null, - topContextMenu: null, - topCopy: null, - topCut: null, - topDoubleClick: null, - topDrag: null, - topDragEnd: null, - topDragEnter: null, - topDragExit: null, - topDragLeave: null, - topDragOver: null, - topDragStart: null, - topDrop: null, - topDurationChange: null, - topEmptied: null, - topEncrypted: null, - topEnded: null, - topError: null, - topFocus: null, - topInput: null, - topKeyDown: null, - topKeyPress: null, - topKeyUp: null, - topLoad: null, - topLoadedData: null, - topLoadedMetadata: null, - topLoadStart: null, - topMouseDown: null, - topMouseMove: null, - topMouseOut: null, - topMouseOver: null, - topMouseUp: null, - topPaste: null, - topPause: null, - topPlay: null, - topPlaying: null, - topProgress: null, - topRateChange: null, - topReset: null, - topScroll: null, - topSeeked: null, - topSeeking: null, - topSelectionChange: null, - topStalled: null, - topSubmit: null, - topSuspend: null, - topTextInput: null, - topTimeUpdate: null, - topTouchCancel: null, - topTouchEnd: null, - topTouchMove: null, - topTouchStart: null, - topVolumeChange: null, - topWaiting: null, - topWheel: null -}); - -var EventConstants = { - topLevelTypes: topLevelTypes, - PropagationPhases: PropagationPhases -}; - -module.exports = EventConstants; -},{"146":146}],16:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule EventPluginHub - */ - -'use strict'; - -var EventPluginRegistry = _dereq_(17); -var EventPluginUtils = _dereq_(18); -var ReactErrorUtils = _dereq_(56); - -var accumulateInto = _dereq_(102); -var forEachAccumulated = _dereq_(109); -var invariant = _dereq_(143); -var warning = _dereq_(154); - -/** - * Internal store for event listeners - */ -var listenerBank = {}; - -/** - * Internal queue of events that have accumulated their dispatches and are - * waiting to have their dispatches executed. - */ -var eventQueue = null; - -/** - * Dispatches an event and releases it back into the pool, unless persistent. - * - * @param {?object} event Synthetic event to be dispatched. - * @param {boolean} simulated If the event is simulated (changes exn behavior) - * @private - */ -var executeDispatchesAndRelease = function (event, simulated) { - if (event) { - EventPluginUtils.executeDispatchesInOrder(event, simulated); - - if (!event.isPersistent()) { - event.constructor.release(event); - } - } -}; -var executeDispatchesAndReleaseSimulated = function (e) { - return executeDispatchesAndRelease(e, true); -}; -var executeDispatchesAndReleaseTopLevel = function (e) { - return executeDispatchesAndRelease(e, false); -}; - -/** - * - `InstanceHandle`: [required] Module that performs logical traversals of DOM - * hierarchy given ids of the logical DOM elements involved. - */ -var InstanceHandle = null; - -function validateInstanceHandle() { - var valid = InstanceHandle && InstanceHandle.traverseTwoPhase && InstanceHandle.traverseEnterLeave; - "development" !== 'production' ? warning(valid, 'InstanceHandle not injected before use!') : undefined; -} - -/** - * This is a unified interface for event plugins to be installed and configured. - * - * Event plugins can implement the following properties: - * - * `extractEvents` {function(string, DOMEventTarget, string, object): *} - * Required. When a top-level event is fired, this method is expected to - * extract synthetic events that will in turn be queued and dispatched. - * - * `eventTypes` {object} - * Optional, plugins that fire events must publish a mapping of registration - * names that are used to register listeners. Values of this mapping must - * be objects that contain `registrationName` or `phasedRegistrationNames`. - * - * `executeDispatch` {function(object, function, string)} - * Optional, allows plugins to override how an event gets dispatched. By - * default, the listener is simply invoked. - * - * Each plugin that is injected into `EventsPluginHub` is immediately operable. - * - * @public - */ -var EventPluginHub = { - - /** - * Methods for injecting dependencies. - */ - injection: { - - /** - * @param {object} InjectedMount - * @public - */ - injectMount: EventPluginUtils.injection.injectMount, - - /** - * @param {object} InjectedInstanceHandle - * @public - */ - injectInstanceHandle: function (InjectedInstanceHandle) { - InstanceHandle = InjectedInstanceHandle; - if ("development" !== 'production') { - validateInstanceHandle(); - } - }, - - getInstanceHandle: function () { - if ("development" !== 'production') { - validateInstanceHandle(); - } - return InstanceHandle; - }, - - /** - * @param {array} InjectedEventPluginOrder - * @public - */ - injectEventPluginOrder: EventPluginRegistry.injectEventPluginOrder, - - /** - * @param {object} injectedNamesToPlugins Map from names to plugin modules. - */ - injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName - - }, - - eventNameDispatchConfigs: EventPluginRegistry.eventNameDispatchConfigs, - - registrationNameModules: EventPluginRegistry.registrationNameModules, - - /** - * Stores `listener` at `listenerBank[registrationName][id]`. Is idempotent. - * - * @param {string} id ID of the DOM element. - * @param {string} registrationName Name of listener (e.g. `onClick`). - * @param {?function} listener The callback to store. - */ - putListener: function (id, registrationName, listener) { - !(typeof listener === 'function') ? "development" !== 'production' ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener) : invariant(false) : undefined; - - var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {}); - bankForRegistrationName[id] = listener; - - var PluginModule = EventPluginRegistry.registrationNameModules[registrationName]; - if (PluginModule && PluginModule.didPutListener) { - PluginModule.didPutListener(id, registrationName, listener); - } - }, - - /** - * @param {string} id ID of the DOM element. - * @param {string} registrationName Name of listener (e.g. `onClick`). - * @return {?function} The stored callback. - */ - getListener: function (id, registrationName) { - var bankForRegistrationName = listenerBank[registrationName]; - return bankForRegistrationName && bankForRegistrationName[id]; - }, - - /** - * Deletes a listener from the registration bank. - * - * @param {string} id ID of the DOM element. - * @param {string} registrationName Name of listener (e.g. `onClick`). - */ - deleteListener: function (id, registrationName) { - var PluginModule = EventPluginRegistry.registrationNameModules[registrationName]; - if (PluginModule && PluginModule.willDeleteListener) { - PluginModule.willDeleteListener(id, registrationName); - } - - var bankForRegistrationName = listenerBank[registrationName]; - // TODO: This should never be null -- when is it? - if (bankForRegistrationName) { - delete bankForRegistrationName[id]; - } - }, - - /** - * Deletes all listeners for the DOM element with the supplied ID. - * - * @param {string} id ID of the DOM element. - */ - deleteAllListeners: function (id) { - for (var registrationName in listenerBank) { - if (!listenerBank[registrationName][id]) { - continue; - } - - var PluginModule = EventPluginRegistry.registrationNameModules[registrationName]; - if (PluginModule && PluginModule.willDeleteListener) { - PluginModule.willDeleteListener(id, registrationName); - } - - delete listenerBank[registrationName][id]; - } - }, - - /** - * Allows registered plugins an opportunity to extract events from top-level - * native browser events. - * - * @param {string} topLevelType Record from `EventConstants`. - * @param {DOMEventTarget} topLevelTarget The listening component root node. - * @param {string} topLevelTargetID ID of `topLevelTarget`. - * @param {object} nativeEvent Native browser event. - * @return {*} An accumulation of synthetic events. - * @internal - */ - extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) { - var events; - var plugins = EventPluginRegistry.plugins; - for (var i = 0; i < plugins.length; i++) { - // Not every plugin in the ordering may be loaded at runtime. - var possiblePlugin = plugins[i]; - if (possiblePlugin) { - var extractedEvents = possiblePlugin.extractEvents(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget); - if (extractedEvents) { - events = accumulateInto(events, extractedEvents); - } - } - } - return events; - }, - - /** - * Enqueues a synthetic event that should be dispatched when - * `processEventQueue` is invoked. - * - * @param {*} events An accumulation of synthetic events. - * @internal - */ - enqueueEvents: function (events) { - if (events) { - eventQueue = accumulateInto(eventQueue, events); - } - }, - - /** - * Dispatches all synthetic events on the event queue. - * - * @internal - */ - processEventQueue: function (simulated) { - // Set `eventQueue` to null before processing it so that we can tell if more - // events get enqueued while processing. - var processingEventQueue = eventQueue; - eventQueue = null; - if (simulated) { - forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseSimulated); - } else { - forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel); - } - !!eventQueue ? "development" !== 'production' ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing ' + 'an event queue. Support for this has not yet been implemented.') : invariant(false) : undefined; - // This would be a good time to rethrow if any of the event handlers threw. - ReactErrorUtils.rethrowCaughtError(); - }, - - /** - * These are needed for tests only. Do not use! - */ - __purge: function () { - listenerBank = {}; - }, - - __getListenerBank: function () { - return listenerBank; - } - -}; - -module.exports = EventPluginHub; -},{"102":102,"109":109,"143":143,"154":154,"17":17,"18":18,"56":56}],17:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule EventPluginRegistry - * @typechecks static-only - */ - -'use strict'; - -var invariant = _dereq_(143); - -/** - * Injectable ordering of event plugins. - */ -var EventPluginOrder = null; - -/** - * Injectable mapping from names to event plugin modules. - */ -var namesToPlugins = {}; - -/** - * Recomputes the plugin list using the injected plugins and plugin ordering. - * - * @private - */ -function recomputePluginOrdering() { - if (!EventPluginOrder) { - // Wait until an `EventPluginOrder` is injected. - return; - } - for (var pluginName in namesToPlugins) { - var PluginModule = namesToPlugins[pluginName]; - var pluginIndex = EventPluginOrder.indexOf(pluginName); - !(pluginIndex > -1) ? "development" !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in ' + 'the plugin ordering, `%s`.', pluginName) : invariant(false) : undefined; - if (EventPluginRegistry.plugins[pluginIndex]) { - continue; - } - !PluginModule.extractEvents ? "development" !== 'production' ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` ' + 'method, but `%s` does not.', pluginName) : invariant(false) : undefined; - EventPluginRegistry.plugins[pluginIndex] = PluginModule; - var publishedEvents = PluginModule.eventTypes; - for (var eventName in publishedEvents) { - !publishEventForPlugin(publishedEvents[eventName], PluginModule, eventName) ? "development" !== 'production' ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : invariant(false) : undefined; - } - } -} - -/** - * Publishes an event so that it can be dispatched by the supplied plugin. - * - * @param {object} dispatchConfig Dispatch configuration for the event. - * @param {object} PluginModule Plugin publishing the event. - * @return {boolean} True if the event was successfully published. - * @private - */ -function publishEventForPlugin(dispatchConfig, PluginModule, eventName) { - !!EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName) ? "development" !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same ' + 'event name, `%s`.', eventName) : invariant(false) : undefined; - EventPluginRegistry.eventNameDispatchConfigs[eventName] = dispatchConfig; - - var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames; - if (phasedRegistrationNames) { - for (var phaseName in phasedRegistrationNames) { - if (phasedRegistrationNames.hasOwnProperty(phaseName)) { - var phasedRegistrationName = phasedRegistrationNames[phaseName]; - publishRegistrationName(phasedRegistrationName, PluginModule, eventName); - } - } - return true; - } else if (dispatchConfig.registrationName) { - publishRegistrationName(dispatchConfig.registrationName, PluginModule, eventName); - return true; - } - return false; -} - -/** - * Publishes a registration name that is used to identify dispatched events and - * can be used with `EventPluginHub.putListener` to register listeners. - * - * @param {string} registrationName Registration name to add. - * @param {object} PluginModule Plugin publishing the event. - * @private - */ -function publishRegistrationName(registrationName, PluginModule, eventName) { - !!EventPluginRegistry.registrationNameModules[registrationName] ? "development" !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same ' + 'registration name, `%s`.', registrationName) : invariant(false) : undefined; - EventPluginRegistry.registrationNameModules[registrationName] = PluginModule; - EventPluginRegistry.registrationNameDependencies[registrationName] = PluginModule.eventTypes[eventName].dependencies; -} - -/** - * Registers plugins so that they can extract and dispatch events. - * - * @see {EventPluginHub} - */ -var EventPluginRegistry = { - - /** - * Ordered list of injected plugins. - */ - plugins: [], - - /** - * Mapping from event name to dispatch config - */ - eventNameDispatchConfigs: {}, - - /** - * Mapping from registration name to plugin module - */ - registrationNameModules: {}, - - /** - * Mapping from registration name to event name - */ - registrationNameDependencies: {}, - - /** - * Injects an ordering of plugins (by plugin name). This allows the ordering - * to be decoupled from injection of the actual plugins so that ordering is - * always deterministic regardless of packaging, on-the-fly injection, etc. - * - * @param {array} InjectedEventPluginOrder - * @internal - * @see {EventPluginHub.injection.injectEventPluginOrder} - */ - injectEventPluginOrder: function (InjectedEventPluginOrder) { - !!EventPluginOrder ? "development" !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than ' + 'once. You are likely trying to load more than one copy of React.') : invariant(false) : undefined; - // Clone the ordering so it cannot be dynamically mutated. - EventPluginOrder = Array.prototype.slice.call(InjectedEventPluginOrder); - recomputePluginOrdering(); - }, - - /** - * Injects plugins to be used by `EventPluginHub`. The plugin names must be - * in the ordering injected by `injectEventPluginOrder`. - * - * Plugins can be injected as part of page initialization or on-the-fly. - * - * @param {object} injectedNamesToPlugins Map from names to plugin modules. - * @internal - * @see {EventPluginHub.injection.injectEventPluginsByName} - */ - injectEventPluginsByName: function (injectedNamesToPlugins) { - var isOrderingDirty = false; - for (var pluginName in injectedNamesToPlugins) { - if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) { - continue; - } - var PluginModule = injectedNamesToPlugins[pluginName]; - if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== PluginModule) { - !!namesToPlugins[pluginName] ? "development" !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins ' + 'using the same name, `%s`.', pluginName) : invariant(false) : undefined; - namesToPlugins[pluginName] = PluginModule; - isOrderingDirty = true; - } - } - if (isOrderingDirty) { - recomputePluginOrdering(); - } - }, - - /** - * Looks up the plugin for the supplied event. - * - * @param {object} event A synthetic event. - * @return {?object} The plugin that created the supplied event. - * @internal - */ - getPluginModuleForEvent: function (event) { - var dispatchConfig = event.dispatchConfig; - if (dispatchConfig.registrationName) { - return EventPluginRegistry.registrationNameModules[dispatchConfig.registrationName] || null; - } - for (var phase in dispatchConfig.phasedRegistrationNames) { - if (!dispatchConfig.phasedRegistrationNames.hasOwnProperty(phase)) { - continue; - } - var PluginModule = EventPluginRegistry.registrationNameModules[dispatchConfig.phasedRegistrationNames[phase]]; - if (PluginModule) { - return PluginModule; - } - } - return null; - }, - - /** - * Exposed for unit testing. - * @private - */ - _resetEventPlugins: function () { - EventPluginOrder = null; - for (var pluginName in namesToPlugins) { - if (namesToPlugins.hasOwnProperty(pluginName)) { - delete namesToPlugins[pluginName]; - } - } - EventPluginRegistry.plugins.length = 0; - - var eventNameDispatchConfigs = EventPluginRegistry.eventNameDispatchConfigs; - for (var eventName in eventNameDispatchConfigs) { - if (eventNameDispatchConfigs.hasOwnProperty(eventName)) { - delete eventNameDispatchConfigs[eventName]; - } - } - - var registrationNameModules = EventPluginRegistry.registrationNameModules; - for (var registrationName in registrationNameModules) { - if (registrationNameModules.hasOwnProperty(registrationName)) { - delete registrationNameModules[registrationName]; - } - } - } - -}; - -module.exports = EventPluginRegistry; -},{"143":143}],18:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule EventPluginUtils - */ - -'use strict'; - -var EventConstants = _dereq_(15); -var ReactErrorUtils = _dereq_(56); - -var invariant = _dereq_(143); -var warning = _dereq_(154); - -/** - * Injected dependencies: - */ - -/** - * - `Mount`: [required] Module that can convert between React dom IDs and - * actual node references. - */ -var injection = { - Mount: null, - injectMount: function (InjectedMount) { - injection.Mount = InjectedMount; - if ("development" !== 'production') { - "development" !== 'production' ? warning(InjectedMount && InjectedMount.getNode && InjectedMount.getID, 'EventPluginUtils.injection.injectMount(...): Injected Mount ' + 'module is missing getNode or getID.') : undefined; - } - } -}; - -var topLevelTypes = EventConstants.topLevelTypes; - -function isEndish(topLevelType) { - return topLevelType === topLevelTypes.topMouseUp || topLevelType === topLevelTypes.topTouchEnd || topLevelType === topLevelTypes.topTouchCancel; -} - -function isMoveish(topLevelType) { - return topLevelType === topLevelTypes.topMouseMove || topLevelType === topLevelTypes.topTouchMove; -} -function isStartish(topLevelType) { - return topLevelType === topLevelTypes.topMouseDown || topLevelType === topLevelTypes.topTouchStart; -} - -var validateEventDispatches; -if ("development" !== 'production') { - validateEventDispatches = function (event) { - var dispatchListeners = event._dispatchListeners; - var dispatchIDs = event._dispatchIDs; - - var listenersIsArr = Array.isArray(dispatchListeners); - var idsIsArr = Array.isArray(dispatchIDs); - var IDsLen = idsIsArr ? dispatchIDs.length : dispatchIDs ? 1 : 0; - var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0; - - "development" !== 'production' ? warning(idsIsArr === listenersIsArr && IDsLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : undefined; - }; -} - -/** - * Dispatch the event to the listener. - * @param {SyntheticEvent} event SyntheticEvent to handle - * @param {boolean} simulated If the event is simulated (changes exn behavior) - * @param {function} listener Application-level callback - * @param {string} domID DOM id to pass to the callback. - */ -function executeDispatch(event, simulated, listener, domID) { - var type = event.type || 'unknown-event'; - event.currentTarget = injection.Mount.getNode(domID); - if (simulated) { - ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event, domID); - } else { - ReactErrorUtils.invokeGuardedCallback(type, listener, event, domID); - } - event.currentTarget = null; -} - -/** - * Standard/simple iteration through an event's collected dispatches. - */ -function executeDispatchesInOrder(event, simulated) { - var dispatchListeners = event._dispatchListeners; - var dispatchIDs = event._dispatchIDs; - if ("development" !== 'production') { - validateEventDispatches(event); - } - if (Array.isArray(dispatchListeners)) { - for (var i = 0; i < dispatchListeners.length; i++) { - if (event.isPropagationStopped()) { - break; - } - // Listeners and IDs are two parallel arrays that are always in sync. - executeDispatch(event, simulated, dispatchListeners[i], dispatchIDs[i]); - } - } else if (dispatchListeners) { - executeDispatch(event, simulated, dispatchListeners, dispatchIDs); - } - event._dispatchListeners = null; - event._dispatchIDs = null; -} - -/** - * Standard/simple iteration through an event's collected dispatches, but stops - * at the first dispatch execution returning true, and returns that id. - * - * @return {?string} id of the first dispatch execution who's listener returns - * true, or null if no listener returned true. - */ -function executeDispatchesInOrderStopAtTrueImpl(event) { - var dispatchListeners = event._dispatchListeners; - var dispatchIDs = event._dispatchIDs; - if ("development" !== 'production') { - validateEventDispatches(event); - } - if (Array.isArray(dispatchListeners)) { - for (var i = 0; i < dispatchListeners.length; i++) { - if (event.isPropagationStopped()) { - break; - } - // Listeners and IDs are two parallel arrays that are always in sync. - if (dispatchListeners[i](event, dispatchIDs[i])) { - return dispatchIDs[i]; - } - } - } else if (dispatchListeners) { - if (dispatchListeners(event, dispatchIDs)) { - return dispatchIDs; - } - } - return null; -} - -/** - * @see executeDispatchesInOrderStopAtTrueImpl - */ -function executeDispatchesInOrderStopAtTrue(event) { - var ret = executeDispatchesInOrderStopAtTrueImpl(event); - event._dispatchIDs = null; - event._dispatchListeners = null; - return ret; -} - -/** - * Execution of a "direct" dispatch - there must be at most one dispatch - * accumulated on the event or it is considered an error. It doesn't really make - * sense for an event with multiple dispatches (bubbled) to keep track of the - * return values at each dispatch execution, but it does tend to make sense when - * dealing with "direct" dispatches. - * - * @return {*} The return value of executing the single dispatch. - */ -function executeDirectDispatch(event) { - if ("development" !== 'production') { - validateEventDispatches(event); - } - var dispatchListener = event._dispatchListeners; - var dispatchID = event._dispatchIDs; - !!Array.isArray(dispatchListener) ? "development" !== 'production' ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : invariant(false) : undefined; - var res = dispatchListener ? dispatchListener(event, dispatchID) : null; - event._dispatchListeners = null; - event._dispatchIDs = null; - return res; -} - -/** - * @param {SyntheticEvent} event - * @return {boolean} True iff number of dispatches accumulated is greater than 0. - */ -function hasDispatches(event) { - return !!event._dispatchListeners; -} - -/** - * General utilities that are useful in creating custom Event Plugins. - */ -var EventPluginUtils = { - isEndish: isEndish, - isMoveish: isMoveish, - isStartish: isStartish, - - executeDirectDispatch: executeDirectDispatch, - executeDispatchesInOrder: executeDispatchesInOrder, - executeDispatchesInOrderStopAtTrue: executeDispatchesInOrderStopAtTrue, - hasDispatches: hasDispatches, - - getNode: function (id) { - return injection.Mount.getNode(id); - }, - getID: function (node) { - return injection.Mount.getID(node); - }, - - injection: injection -}; - -module.exports = EventPluginUtils; -},{"143":143,"15":15,"154":154,"56":56}],19:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule EventPropagators - */ - -'use strict'; - -var EventConstants = _dereq_(15); -var EventPluginHub = _dereq_(16); - -var warning = _dereq_(154); - -var accumulateInto = _dereq_(102); -var forEachAccumulated = _dereq_(109); - -var PropagationPhases = EventConstants.PropagationPhases; -var getListener = EventPluginHub.getListener; - -/** - * Some event types have a notion of different registration names for different - * "phases" of propagation. This finds listeners by a given phase. - */ -function listenerAtPhase(id, event, propagationPhase) { - var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase]; - return getListener(id, registrationName); -} - -/** - * Tags a `SyntheticEvent` with dispatched listeners. Creating this function - * here, allows us to not have to bind or create functions for each event. - * Mutating the event's members allows us to not have to create a wrapping - * "dispatch" object that pairs the event with the listener. - */ -function accumulateDirectionalDispatches(domID, upwards, event) { - if ("development" !== 'production') { - "development" !== 'production' ? warning(domID, 'Dispatching id must not be null') : undefined; - } - var phase = upwards ? PropagationPhases.bubbled : PropagationPhases.captured; - var listener = listenerAtPhase(domID, event, phase); - if (listener) { - event._dispatchListeners = accumulateInto(event._dispatchListeners, listener); - event._dispatchIDs = accumulateInto(event._dispatchIDs, domID); - } -} - -/** - * Collect dispatches (must be entirely collected before dispatching - see unit - * tests). Lazily allocate the array to conserve memory. We must loop through - * each event and perform the traversal for each one. We cannot perform a - * single traversal for the entire collection of events because each event may - * have a different target. - */ -function accumulateTwoPhaseDispatchesSingle(event) { - if (event && event.dispatchConfig.phasedRegistrationNames) { - EventPluginHub.injection.getInstanceHandle().traverseTwoPhase(event.dispatchMarker, accumulateDirectionalDispatches, event); - } -} - -/** - * Same as `accumulateTwoPhaseDispatchesSingle`, but skips over the targetID. - */ -function accumulateTwoPhaseDispatchesSingleSkipTarget(event) { - if (event && event.dispatchConfig.phasedRegistrationNames) { - EventPluginHub.injection.getInstanceHandle().traverseTwoPhaseSkipTarget(event.dispatchMarker, accumulateDirectionalDispatches, event); - } -} - -/** - * Accumulates without regard to direction, does not look for phased - * registration names. Same as `accumulateDirectDispatchesSingle` but without - * requiring that the `dispatchMarker` be the same as the dispatched ID. - */ -function accumulateDispatches(id, ignoredDirection, event) { - if (event && event.dispatchConfig.registrationName) { - var registrationName = event.dispatchConfig.registrationName; - var listener = getListener(id, registrationName); - if (listener) { - event._dispatchListeners = accumulateInto(event._dispatchListeners, listener); - event._dispatchIDs = accumulateInto(event._dispatchIDs, id); - } - } -} - -/** - * Accumulates dispatches on an `SyntheticEvent`, but only for the - * `dispatchMarker`. - * @param {SyntheticEvent} event - */ -function accumulateDirectDispatchesSingle(event) { - if (event && event.dispatchConfig.registrationName) { - accumulateDispatches(event.dispatchMarker, null, event); - } -} - -function accumulateTwoPhaseDispatches(events) { - forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle); -} - -function accumulateTwoPhaseDispatchesSkipTarget(events) { - forEachAccumulated(events, accumulateTwoPhaseDispatchesSingleSkipTarget); -} - -function accumulateEnterLeaveDispatches(leave, enter, fromID, toID) { - EventPluginHub.injection.getInstanceHandle().traverseEnterLeave(fromID, toID, accumulateDispatches, leave, enter); -} - -function accumulateDirectDispatches(events) { - forEachAccumulated(events, accumulateDirectDispatchesSingle); -} - -/** - * A small set of propagation patterns, each of which will accept a small amount - * of information, and generate a set of "dispatch ready event objects" - which - * are sets of events that have already been annotated with a set of dispatched - * listener functions/ids. The API is designed this way to discourage these - * propagation strategies from actually executing the dispatches, since we - * always want to collect the entire set of dispatches before executing event a - * single one. - * - * @constructor EventPropagators - */ -var EventPropagators = { - accumulateTwoPhaseDispatches: accumulateTwoPhaseDispatches, - accumulateTwoPhaseDispatchesSkipTarget: accumulateTwoPhaseDispatchesSkipTarget, - accumulateDirectDispatches: accumulateDirectDispatches, - accumulateEnterLeaveDispatches: accumulateEnterLeaveDispatches -}; - -module.exports = EventPropagators; -},{"102":102,"109":109,"15":15,"154":154,"16":16}],20:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule FallbackCompositionState - * @typechecks static-only - */ - -'use strict'; - -var PooledClass = _dereq_(24); - -var assign = _dereq_(23); -var getTextContentAccessor = _dereq_(116); - -/** - * This helper class stores information about text content of a target node, - * allowing comparison of content before and after a given event. - * - * Identify the node where selection currently begins, then observe - * both its text content and its current position in the DOM. Since the - * browser may natively replace the target node during composition, we can - * use its position to find its replacement. - * - * @param {DOMEventTarget} root - */ -function FallbackCompositionState(root) { - this._root = root; - this._startText = this.getText(); - this._fallbackText = null; -} - -assign(FallbackCompositionState.prototype, { - destructor: function () { - this._root = null; - this._startText = null; - this._fallbackText = null; - }, - - /** - * Get current text of input. - * - * @return {string} - */ - getText: function () { - if ('value' in this._root) { - return this._root.value; - } - return this._root[getTextContentAccessor()]; - }, - - /** - * Determine the differing substring between the initially stored - * text content and the current content. - * - * @return {string} - */ - getData: function () { - if (this._fallbackText) { - return this._fallbackText; - } - - var start; - var startValue = this._startText; - var startLength = startValue.length; - var end; - var endValue = this.getText(); - var endLength = endValue.length; - - for (start = 0; start < startLength; start++) { - if (startValue[start] !== endValue[start]) { - break; - } - } - - var minEnd = startLength - start; - for (end = 1; end <= minEnd; end++) { - if (startValue[startLength - end] !== endValue[endLength - end]) { - break; - } - } - - var sliceTail = end > 1 ? 1 - end : undefined; - this._fallbackText = endValue.slice(start, sliceTail); - return this._fallbackText; - } -}); - -PooledClass.addPoolingTo(FallbackCompositionState); - -module.exports = FallbackCompositionState; -},{"116":116,"23":23,"24":24}],21:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule HTMLDOMPropertyConfig - */ - -'use strict'; - -var DOMProperty = _dereq_(10); -var ExecutionEnvironment = _dereq_(129); - -var MUST_USE_ATTRIBUTE = DOMProperty.injection.MUST_USE_ATTRIBUTE; -var MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY; -var HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE; -var HAS_SIDE_EFFECTS = DOMProperty.injection.HAS_SIDE_EFFECTS; -var HAS_NUMERIC_VALUE = DOMProperty.injection.HAS_NUMERIC_VALUE; -var HAS_POSITIVE_NUMERIC_VALUE = DOMProperty.injection.HAS_POSITIVE_NUMERIC_VALUE; -var HAS_OVERLOADED_BOOLEAN_VALUE = DOMProperty.injection.HAS_OVERLOADED_BOOLEAN_VALUE; - -var hasSVG; -if (ExecutionEnvironment.canUseDOM) { - var implementation = document.implementation; - hasSVG = implementation && implementation.hasFeature && implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#BasicStructure', '1.1'); -} - -var HTMLDOMPropertyConfig = { - isCustomAttribute: RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\d_.\-]*$/), - Properties: { - /** - * Standard Properties - */ - accept: null, - acceptCharset: null, - accessKey: null, - action: null, - allowFullScreen: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE, - allowTransparency: MUST_USE_ATTRIBUTE, - alt: null, - async: HAS_BOOLEAN_VALUE, - autoComplete: null, - // autoFocus is polyfilled/normalized by AutoFocusUtils - // autoFocus: HAS_BOOLEAN_VALUE, - autoPlay: HAS_BOOLEAN_VALUE, - capture: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE, - cellPadding: null, - cellSpacing: null, - charSet: MUST_USE_ATTRIBUTE, - challenge: MUST_USE_ATTRIBUTE, - checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, - classID: MUST_USE_ATTRIBUTE, - // To set className on SVG elements, it's necessary to use .setAttribute; - // this works on HTML elements too in all browsers except IE8. Conveniently, - // IE8 doesn't support SVG and so we can simply use the attribute in - // browsers that support SVG and the property in browsers that don't, - // regardless of whether the element is HTML or SVG. - className: hasSVG ? MUST_USE_ATTRIBUTE : MUST_USE_PROPERTY, - cols: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE, - colSpan: null, - content: null, - contentEditable: null, - contextMenu: MUST_USE_ATTRIBUTE, - controls: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, - coords: null, - crossOrigin: null, - data: null, // For `<object />` acts as `src`. - dateTime: MUST_USE_ATTRIBUTE, - defer: HAS_BOOLEAN_VALUE, - dir: null, - disabled: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE, - download: HAS_OVERLOADED_BOOLEAN_VALUE, - draggable: null, - encType: null, - form: MUST_USE_ATTRIBUTE, - formAction: MUST_USE_ATTRIBUTE, - formEncType: MUST_USE_ATTRIBUTE, - formMethod: MUST_USE_ATTRIBUTE, - formNoValidate: HAS_BOOLEAN_VALUE, - formTarget: MUST_USE_ATTRIBUTE, - frameBorder: MUST_USE_ATTRIBUTE, - headers: null, - height: MUST_USE_ATTRIBUTE, - hidden: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE, - high: null, - href: null, - hrefLang: null, - htmlFor: null, - httpEquiv: null, - icon: null, - id: MUST_USE_PROPERTY, - inputMode: MUST_USE_ATTRIBUTE, - is: MUST_USE_ATTRIBUTE, - keyParams: MUST_USE_ATTRIBUTE, - keyType: MUST_USE_ATTRIBUTE, - label: null, - lang: null, - list: MUST_USE_ATTRIBUTE, - loop: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, - low: null, - manifest: MUST_USE_ATTRIBUTE, - marginHeight: null, - marginWidth: null, - max: null, - maxLength: MUST_USE_ATTRIBUTE, - media: MUST_USE_ATTRIBUTE, - mediaGroup: null, - method: null, - min: null, - minLength: MUST_USE_ATTRIBUTE, - multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, - muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, - name: null, - noValidate: HAS_BOOLEAN_VALUE, - open: HAS_BOOLEAN_VALUE, - optimum: null, - pattern: null, - placeholder: null, - poster: null, - preload: null, - radioGroup: null, - readOnly: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, - rel: null, - required: HAS_BOOLEAN_VALUE, - role: MUST_USE_ATTRIBUTE, - rows: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE, - rowSpan: null, - sandbox: null, - scope: null, - scoped: HAS_BOOLEAN_VALUE, - scrolling: null, - seamless: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE, - selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, - shape: null, - size: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE, - sizes: MUST_USE_ATTRIBUTE, - span: HAS_POSITIVE_NUMERIC_VALUE, - spellCheck: null, - src: null, - srcDoc: MUST_USE_PROPERTY, - srcSet: MUST_USE_ATTRIBUTE, - start: HAS_NUMERIC_VALUE, - step: null, - style: null, - summary: null, - tabIndex: null, - target: null, - title: null, - type: null, - useMap: null, - value: MUST_USE_PROPERTY | HAS_SIDE_EFFECTS, - width: MUST_USE_ATTRIBUTE, - wmode: MUST_USE_ATTRIBUTE, - wrap: null, - - /** - * RDFa Properties - */ - about: MUST_USE_ATTRIBUTE, - datatype: MUST_USE_ATTRIBUTE, - inlist: MUST_USE_ATTRIBUTE, - prefix: MUST_USE_ATTRIBUTE, - // property is also supported for OpenGraph in meta tags. - property: MUST_USE_ATTRIBUTE, - resource: MUST_USE_ATTRIBUTE, - 'typeof': MUST_USE_ATTRIBUTE, - vocab: MUST_USE_ATTRIBUTE, - - /** - * Non-standard Properties - */ - // autoCapitalize and autoCorrect are supported in Mobile Safari for - // keyboard hints. - autoCapitalize: null, - autoCorrect: null, - // autoSave allows WebKit/Blink to persist values of input fields on page reloads - autoSave: null, - // itemProp, itemScope, itemType are for - // Microdata support. See http://schema.org/docs/gs.html - itemProp: MUST_USE_ATTRIBUTE, - itemScope: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE, - itemType: MUST_USE_ATTRIBUTE, - // itemID and itemRef are for Microdata support as well but - // only specified in the the WHATWG spec document. See - // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api - itemID: MUST_USE_ATTRIBUTE, - itemRef: MUST_USE_ATTRIBUTE, - // results show looking glass icon and recent searches on input - // search fields in WebKit/Blink - results: null, - // IE-only attribute that specifies security restrictions on an iframe - // as an alternative to the sandbox attribute on IE<10 - security: MUST_USE_ATTRIBUTE, - // IE-only attribute that controls focus behavior - unselectable: MUST_USE_ATTRIBUTE - }, - DOMAttributeNames: { - acceptCharset: 'accept-charset', - className: 'class', - htmlFor: 'for', - httpEquiv: 'http-equiv' - }, - DOMPropertyNames: { - autoCapitalize: 'autocapitalize', - autoComplete: 'autocomplete', - autoCorrect: 'autocorrect', - autoFocus: 'autofocus', - autoPlay: 'autoplay', - autoSave: 'autosave', - // `encoding` is equivalent to `enctype`, IE8 lacks an `enctype` setter. - // http://www.w3.org/TR/html5/forms.html#dom-fs-encoding - encType: 'encoding', - hrefLang: 'hreflang', - radioGroup: 'radiogroup', - spellCheck: 'spellcheck', - srcDoc: 'srcdoc', - srcSet: 'srcset' - } -}; - -module.exports = HTMLDOMPropertyConfig; -},{"10":10,"129":129}],22:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule LinkedValueUtils - * @typechecks static-only - */ - -'use strict'; - -var ReactPropTypes = _dereq_(74); -var ReactPropTypeLocations = _dereq_(73); - -var invariant = _dereq_(143); -var warning = _dereq_(154); - -var hasReadOnlyValue = { - 'button': true, - 'checkbox': true, - 'image': true, - 'hidden': true, - 'radio': true, - 'reset': true, - 'submit': true -}; - -function _assertSingleLink(inputProps) { - !(inputProps.checkedLink == null || inputProps.valueLink == null) ? "development" !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a valueLink. If you want to use ' + 'checkedLink, you probably don\'t want to use valueLink and vice versa.') : invariant(false) : undefined; -} -function _assertValueLink(inputProps) { - _assertSingleLink(inputProps); - !(inputProps.value == null && inputProps.onChange == null) ? "development" !== 'production' ? invariant(false, 'Cannot provide a valueLink and a value or onChange event. If you want ' + 'to use value or onChange, you probably don\'t want to use valueLink.') : invariant(false) : undefined; -} - -function _assertCheckedLink(inputProps) { - _assertSingleLink(inputProps); - !(inputProps.checked == null && inputProps.onChange == null) ? "development" !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a checked property or onChange event. ' + 'If you want to use checked or onChange, you probably don\'t want to ' + 'use checkedLink') : invariant(false) : undefined; -} - -var propTypes = { - value: function (props, propName, componentName) { - if (!props[propName] || hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled) { - return null; - } - return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.'); - }, - checked: function (props, propName, componentName) { - if (!props[propName] || props.onChange || props.readOnly || props.disabled) { - return null; - } - return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.'); - }, - onChange: ReactPropTypes.func -}; - -var loggedTypeFailures = {}; -function getDeclarationErrorAddendum(owner) { - if (owner) { - var name = owner.getName(); - if (name) { - return ' Check the render method of `' + name + '`.'; - } - } - return ''; -} - -/** - * Provide a linked `value` attribute for controlled forms. You should not use - * this outside of the ReactDOM controlled form components. - */ -var LinkedValueUtils = { - checkPropTypes: function (tagName, props, owner) { - for (var propName in propTypes) { - if (propTypes.hasOwnProperty(propName)) { - var error = propTypes[propName](props, propName, tagName, ReactPropTypeLocations.prop); - } - if (error instanceof Error && !(error.message in loggedTypeFailures)) { - // Only monitor this failure once because there tends to be a lot of the - // same error. - loggedTypeFailures[error.message] = true; - - var addendum = getDeclarationErrorAddendum(owner); - "development" !== 'production' ? warning(false, 'Failed form propType: %s%s', error.message, addendum) : undefined; - } - } - }, - - /** - * @param {object} inputProps Props for form component - * @return {*} current value of the input either from value prop or link. - */ - getValue: function (inputProps) { - if (inputProps.valueLink) { - _assertValueLink(inputProps); - return inputProps.valueLink.value; - } - return inputProps.value; - }, - - /** - * @param {object} inputProps Props for form component - * @return {*} current checked status of the input either from checked prop - * or link. - */ - getChecked: function (inputProps) { - if (inputProps.checkedLink) { - _assertCheckedLink(inputProps); - return inputProps.checkedLink.value; - } - return inputProps.checked; - }, - - /** - * @param {object} inputProps Props for form component - * @param {SyntheticEvent} event change event to handle - */ - executeOnChange: function (inputProps, event) { - if (inputProps.valueLink) { - _assertValueLink(inputProps); - return inputProps.valueLink.requestChange(event.target.value); - } else if (inputProps.checkedLink) { - _assertCheckedLink(inputProps); - return inputProps.checkedLink.requestChange(event.target.checked); - } else if (inputProps.onChange) { - return inputProps.onChange.call(undefined, event); - } - } -}; - -module.exports = LinkedValueUtils; -},{"143":143,"154":154,"73":73,"74":74}],23:[function(_dereq_,module,exports){ -/** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule Object.assign - */ - -// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign - -'use strict'; - -function assign(target, sources) { - if (target == null) { - throw new TypeError('Object.assign target cannot be null or undefined'); - } - - var to = Object(target); - var hasOwnProperty = Object.prototype.hasOwnProperty; - - for (var nextIndex = 1; nextIndex < arguments.length; nextIndex++) { - var nextSource = arguments[nextIndex]; - if (nextSource == null) { - continue; - } - - var from = Object(nextSource); - - // We don't currently support accessors nor proxies. Therefore this - // copy cannot throw. If we ever supported this then we must handle - // exceptions and side-effects. We don't support symbols so they won't - // be transferred. - - for (var key in from) { - if (hasOwnProperty.call(from, key)) { - to[key] = from[key]; - } - } - } - - return to; -} - -module.exports = assign; -},{}],24:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule PooledClass - */ - -'use strict'; - -var invariant = _dereq_(143); - -/** - * Static poolers. Several custom versions for each potential number of - * arguments. A completely generic pooler is easy to implement, but would - * require accessing the `arguments` object. In each of these, `this` refers to - * the Class itself, not an instance. If any others are needed, simply add them - * here, or in their own files. - */ -var oneArgumentPooler = function (copyFieldsFrom) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, copyFieldsFrom); - return instance; - } else { - return new Klass(copyFieldsFrom); - } -}; - -var twoArgumentPooler = function (a1, a2) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, a1, a2); - return instance; - } else { - return new Klass(a1, a2); - } -}; - -var threeArgumentPooler = function (a1, a2, a3) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, a1, a2, a3); - return instance; - } else { - return new Klass(a1, a2, a3); - } -}; - -var fourArgumentPooler = function (a1, a2, a3, a4) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, a1, a2, a3, a4); - return instance; - } else { - return new Klass(a1, a2, a3, a4); - } -}; - -var fiveArgumentPooler = function (a1, a2, a3, a4, a5) { - var Klass = this; - if (Klass.instancePool.length) { - var instance = Klass.instancePool.pop(); - Klass.call(instance, a1, a2, a3, a4, a5); - return instance; - } else { - return new Klass(a1, a2, a3, a4, a5); - } -}; - -var standardReleaser = function (instance) { - var Klass = this; - !(instance instanceof Klass) ? "development" !== 'production' ? invariant(false, 'Trying to release an instance into a pool of a different type.') : invariant(false) : undefined; - instance.destructor(); - if (Klass.instancePool.length < Klass.poolSize) { - Klass.instancePool.push(instance); - } -}; - -var DEFAULT_POOL_SIZE = 10; -var DEFAULT_POOLER = oneArgumentPooler; - -/** - * Augments `CopyConstructor` to be a poolable class, augmenting only the class - * itself (statically) not adding any prototypical fields. Any CopyConstructor - * you give this may have a `poolSize` property, and will look for a - * prototypical `destructor` on instances (optional). - * - * @param {Function} CopyConstructor Constructor that can be used to reset. - * @param {Function} pooler Customizable pooler. - */ -var addPoolingTo = function (CopyConstructor, pooler) { - var NewKlass = CopyConstructor; - NewKlass.instancePool = []; - NewKlass.getPooled = pooler || DEFAULT_POOLER; - if (!NewKlass.poolSize) { - NewKlass.poolSize = DEFAULT_POOL_SIZE; - } - NewKlass.release = standardReleaser; - return NewKlass; -}; - -var PooledClass = { - addPoolingTo: addPoolingTo, - oneArgumentPooler: oneArgumentPooler, - twoArgumentPooler: twoArgumentPooler, - threeArgumentPooler: threeArgumentPooler, - fourArgumentPooler: fourArgumentPooler, - fiveArgumentPooler: fiveArgumentPooler -}; - -module.exports = PooledClass; -},{"143":143}],25:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactBrowserComponentMixin - */ - -'use strict'; - -var ReactInstanceMap = _dereq_(62); - -var findDOMNode = _dereq_(107); -var warning = _dereq_(154); - -var didWarnKey = '_getDOMNodeDidWarn'; - -var ReactBrowserComponentMixin = { - /** - * Returns the DOM node rendered by this component. - * - * @return {DOMElement} The root node of this component. - * @final - * @protected - */ - getDOMNode: function () { - "development" !== 'production' ? warning(this.constructor[didWarnKey], '%s.getDOMNode(...) is deprecated. Please use ' + 'ReactDOM.findDOMNode(instance) instead.', ReactInstanceMap.get(this).getName() || this.tagName || 'Unknown') : undefined; - this.constructor[didWarnKey] = true; - return findDOMNode(this); - } -}; - -module.exports = ReactBrowserComponentMixin; -},{"107":107,"154":154,"62":62}],26:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactBrowserEventEmitter - * @typechecks static-only - */ - -'use strict'; - -var EventConstants = _dereq_(15); -var EventPluginHub = _dereq_(16); -var EventPluginRegistry = _dereq_(17); -var ReactEventEmitterMixin = _dereq_(57); -var ReactPerf = _dereq_(71); -var ViewportMetrics = _dereq_(101); - -var assign = _dereq_(23); -var isEventSupported = _dereq_(118); - -/** - * Summary of `ReactBrowserEventEmitter` event handling: - * - * - Top-level delegation is used to trap most native browser events. This - * may only occur in the main thread and is the responsibility of - * ReactEventListener, which is injected and can therefore support pluggable - * event sources. This is the only work that occurs in the main thread. - * - * - We normalize and de-duplicate events to account for browser quirks. This - * may be done in the worker thread. - * - * - Forward these native events (with the associated top-level type used to - * trap it) to `EventPluginHub`, which in turn will ask plugins if they want - * to extract any synthetic events. - * - * - The `EventPluginHub` will then process each event by annotating them with - * "dispatches", a sequence of listeners and IDs that care about that event. - * - * - The `EventPluginHub` then dispatches the events. - * - * Overview of React and the event system: - * - * +------------+ . - * | DOM | . - * +------------+ . - * | . - * v . - * +------------+ . - * | ReactEvent | . - * | Listener | . - * +------------+ . +-----------+ - * | . +--------+|SimpleEvent| - * | . | |Plugin | - * +-----|------+ . v +-----------+ - * | | | . +--------------+ +------------+ - * | +-----------.--->|EventPluginHub| | Event | - * | | . | | +-----------+ | Propagators| - * | ReactEvent | . | | |TapEvent | |------------| - * | Emitter | . | |<---+|Plugin | |other plugin| - * | | . | | +-----------+ | utilities | - * | +-----------.--->| | +------------+ - * | | | . +--------------+ - * +-----|------+ . ^ +-----------+ - * | . | |Enter/Leave| - * + . +-------+|Plugin | - * +-------------+ . +-----------+ - * | application | . - * |-------------| . - * | | . - * | | . - * +-------------+ . - * . - * React Core . General Purpose Event Plugin System - */ - -var alreadyListeningTo = {}; -var isMonitoringScrollValue = false; -var reactTopListenersCounter = 0; - -// For events like 'submit' which don't consistently bubble (which we trap at a -// lower node than `document`), binding at `document` would cause duplicate -// events so we don't include them here -var topEventMapping = { - topAbort: 'abort', - topBlur: 'blur', - topCanPlay: 'canplay', - topCanPlayThrough: 'canplaythrough', - topChange: 'change', - topClick: 'click', - topCompositionEnd: 'compositionend', - topCompositionStart: 'compositionstart', - topCompositionUpdate: 'compositionupdate', - topContextMenu: 'contextmenu', - topCopy: 'copy', - topCut: 'cut', - topDoubleClick: 'dblclick', - topDrag: 'drag', - topDragEnd: 'dragend', - topDragEnter: 'dragenter', - topDragExit: 'dragexit', - topDragLeave: 'dragleave', - topDragOver: 'dragover', - topDragStart: 'dragstart', - topDrop: 'drop', - topDurationChange: 'durationchange', - topEmptied: 'emptied', - topEncrypted: 'encrypted', - topEnded: 'ended', - topError: 'error', - topFocus: 'focus', - topInput: 'input', - topKeyDown: 'keydown', - topKeyPress: 'keypress', - topKeyUp: 'keyup', - topLoadedData: 'loadeddata', - topLoadedMetadata: 'loadedmetadata', - topLoadStart: 'loadstart', - topMouseDown: 'mousedown', - topMouseMove: 'mousemove', - topMouseOut: 'mouseout', - topMouseOver: 'mouseover', - topMouseUp: 'mouseup', - topPaste: 'paste', - topPause: 'pause', - topPlay: 'play', - topPlaying: 'playing', - topProgress: 'progress', - topRateChange: 'ratechange', - topScroll: 'scroll', - topSeeked: 'seeked', - topSeeking: 'seeking', - topSelectionChange: 'selectionchange', - topStalled: 'stalled', - topSuspend: 'suspend', - topTextInput: 'textInput', - topTimeUpdate: 'timeupdate', - topTouchCancel: 'touchcancel', - topTouchEnd: 'touchend', - topTouchMove: 'touchmove', - topTouchStart: 'touchstart', - topVolumeChange: 'volumechange', - topWaiting: 'waiting', - topWheel: 'wheel' -}; - -/** - * To ensure no conflicts with other potential React instances on the page - */ -var topListenersIDKey = '_reactListenersID' + String(Math.random()).slice(2); - -function getListeningForDocument(mountAt) { - // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty` - // directly. - if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) { - mountAt[topListenersIDKey] = reactTopListenersCounter++; - alreadyListeningTo[mountAt[topListenersIDKey]] = {}; - } - return alreadyListeningTo[mountAt[topListenersIDKey]]; -} - -/** - * `ReactBrowserEventEmitter` is used to attach top-level event listeners. For - * example: - * - * ReactBrowserEventEmitter.putListener('myID', 'onClick', myFunction); - * - * This would allocate a "registration" of `('onClick', myFunction)` on 'myID'. - * - * @internal - */ -var ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, { - - /** - * Injectable event backend - */ - ReactEventListener: null, - - injection: { - /** - * @param {object} ReactEventListener - */ - injectReactEventListener: function (ReactEventListener) { - ReactEventListener.setHandleTopLevel(ReactBrowserEventEmitter.handleTopLevel); - ReactBrowserEventEmitter.ReactEventListener = ReactEventListener; - } - }, - - /** - * Sets whether or not any created callbacks should be enabled. - * - * @param {boolean} enabled True if callbacks should be enabled. - */ - setEnabled: function (enabled) { - if (ReactBrowserEventEmitter.ReactEventListener) { - ReactBrowserEventEmitter.ReactEventListener.setEnabled(enabled); - } - }, - - /** - * @return {boolean} True if callbacks are enabled. - */ - isEnabled: function () { - return !!(ReactBrowserEventEmitter.ReactEventListener && ReactBrowserEventEmitter.ReactEventListener.isEnabled()); - }, - - /** - * We listen for bubbled touch events on the document object. - * - * Firefox v8.01 (and possibly others) exhibited strange behavior when - * mounting `onmousemove` events at some node that was not the document - * element. The symptoms were that if your mouse is not moving over something - * contained within that mount point (for example on the background) the - * top-level listeners for `onmousemove` won't be called. However, if you - * register the `mousemove` on the document object, then it will of course - * catch all `mousemove`s. This along with iOS quirks, justifies restricting - * top-level listeners to the document object only, at least for these - * movement types of events and possibly all events. - * - * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html - * - * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but - * they bubble to document. - * - * @param {string} registrationName Name of listener (e.g. `onClick`). - * @param {object} contentDocumentHandle Document which owns the container - */ - listenTo: function (registrationName, contentDocumentHandle) { - var mountAt = contentDocumentHandle; - var isListening = getListeningForDocument(mountAt); - var dependencies = EventPluginRegistry.registrationNameDependencies[registrationName]; - - var topLevelTypes = EventConstants.topLevelTypes; - for (var i = 0; i < dependencies.length; i++) { - var dependency = dependencies[i]; - if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) { - if (dependency === topLevelTypes.topWheel) { - if (isEventSupported('wheel')) { - ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'wheel', mountAt); - } else if (isEventSupported('mousewheel')) { - ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'mousewheel', mountAt); - } else { - // Firefox needs to capture a different mouse scroll event. - // @see http://www.quirksmode.org/dom/events/tests/scroll.html - ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'DOMMouseScroll', mountAt); - } - } else if (dependency === topLevelTypes.topScroll) { - - if (isEventSupported('scroll', true)) { - ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topScroll, 'scroll', mountAt); - } else { - ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topScroll, 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE); - } - } else if (dependency === topLevelTypes.topFocus || dependency === topLevelTypes.topBlur) { - - if (isEventSupported('focus', true)) { - ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topFocus, 'focus', mountAt); - ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topBlur, 'blur', mountAt); - } else if (isEventSupported('focusin')) { - // IE has `focusin` and `focusout` events which bubble. - // @see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html - ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topFocus, 'focusin', mountAt); - ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topBlur, 'focusout', mountAt); - } - - // to make sure blur and focus event listeners are only attached once - isListening[topLevelTypes.topBlur] = true; - isListening[topLevelTypes.topFocus] = true; - } else if (topEventMapping.hasOwnProperty(dependency)) { - ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(dependency, topEventMapping[dependency], mountAt); - } - - isListening[dependency] = true; - } - } - }, - - trapBubbledEvent: function (topLevelType, handlerBaseName, handle) { - return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelType, handlerBaseName, handle); - }, - - trapCapturedEvent: function (topLevelType, handlerBaseName, handle) { - return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelType, handlerBaseName, handle); - }, - - /** - * Listens to window scroll and resize events. We cache scroll values so that - * application code can access them without triggering reflows. - * - * NOTE: Scroll events do not bubble. - * - * @see http://www.quirksmode.org/dom/events/scroll.html - */ - ensureScrollValueMonitoring: function () { - if (!isMonitoringScrollValue) { - var refresh = ViewportMetrics.refreshScrollValues; - ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh); - isMonitoringScrollValue = true; - } - }, - - eventNameDispatchConfigs: EventPluginHub.eventNameDispatchConfigs, - - registrationNameModules: EventPluginHub.registrationNameModules, - - putListener: EventPluginHub.putListener, - - getListener: EventPluginHub.getListener, - - deleteListener: EventPluginHub.deleteListener, - - deleteAllListeners: EventPluginHub.deleteAllListeners - -}); - -ReactPerf.measureMethods(ReactBrowserEventEmitter, 'ReactBrowserEventEmitter', { - putListener: 'putListener', - deleteListener: 'deleteListener' -}); - -module.exports = ReactBrowserEventEmitter; -},{"101":101,"118":118,"15":15,"16":16,"17":17,"23":23,"57":57,"71":71}],27:[function(_dereq_,module,exports){ -/** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactChildReconciler - * @typechecks static-only - */ - -'use strict'; - -var ReactReconciler = _dereq_(76); - -var instantiateReactComponent = _dereq_(117); -var shouldUpdateReactComponent = _dereq_(125); -var traverseAllChildren = _dereq_(126); -var warning = _dereq_(154); - -function instantiateChild(childInstances, child, name) { - // We found a component instance. - var keyUnique = childInstances[name] === undefined; - if ("development" !== 'production') { - "development" !== 'production' ? warning(keyUnique, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.', name) : undefined; - } - if (child != null && keyUnique) { - childInstances[name] = instantiateReactComponent(child, null); - } -} - -/** - * ReactChildReconciler provides helpers for initializing or updating a set of - * children. Its output is suitable for passing it onto ReactMultiChild which - * does diffed reordering and insertion. - */ -var ReactChildReconciler = { - /** - * Generates a "mount image" for each of the supplied children. In the case - * of `ReactDOMComponent`, a mount image is a string of markup. - * - * @param {?object} nestedChildNodes Nested child maps. - * @return {?object} A set of child instances. - * @internal - */ - instantiateChildren: function (nestedChildNodes, transaction, context) { - if (nestedChildNodes == null) { - return null; - } - var childInstances = {}; - traverseAllChildren(nestedChildNodes, instantiateChild, childInstances); - return childInstances; - }, - - /** - * Updates the rendered children and returns a new set of children. - * - * @param {?object} prevChildren Previously initialized set of children. - * @param {?object} nextChildren Flat child element maps. - * @param {ReactReconcileTransaction} transaction - * @param {object} context - * @return {?object} A new set of child instances. - * @internal - */ - updateChildren: function (prevChildren, nextChildren, transaction, context) { - // We currently don't have a way to track moves here but if we use iterators - // instead of for..in we can zip the iterators and check if an item has - // moved. - // TODO: If nothing has changed, return the prevChildren object so that we - // can quickly bailout if nothing has changed. - if (!nextChildren && !prevChildren) { - return null; - } - var name; - for (name in nextChildren) { - if (!nextChildren.hasOwnProperty(name)) { - continue; - } - var prevChild = prevChildren && prevChildren[name]; - var prevElement = prevChild && prevChild._currentElement; - var nextElement = nextChildren[name]; - if (prevChild != null && shouldUpdateReactComponent(prevElement, nextElement)) { - ReactReconciler.receiveComponent(prevChild, nextElement, transaction, context); - nextChildren[name] = prevChild; - } else { - if (prevChild) { - ReactReconciler.unmountComponent(prevChild, name); - } - // The child must be instantiated before it's mounted. - var nextChildInstance = instantiateReactComponent(nextElement, null); - nextChildren[name] = nextChildInstance; - } - } - // Unmount children that are no longer present. - for (name in prevChildren) { - if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) { - ReactReconciler.unmountComponent(prevChildren[name]); - } - } - return nextChildren; - }, - - /** - * Unmounts all rendered children. This should be used to clean up children - * when this component is unmounted. - * - * @param {?object} renderedChildren Previously initialized set of children. - * @internal - */ - unmountChildren: function (renderedChildren) { - for (var name in renderedChildren) { - if (renderedChildren.hasOwnProperty(name)) { - var renderedChild = renderedChildren[name]; - ReactReconciler.unmountComponent(renderedChild); - } - } - } - -}; - -module.exports = ReactChildReconciler; -},{"117":117,"125":125,"126":126,"154":154,"76":76}],28:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactChildren - */ - -'use strict'; - -var PooledClass = _dereq_(24); -var ReactElement = _dereq_(52); - -var emptyFunction = _dereq_(135); -var traverseAllChildren = _dereq_(126); - -var twoArgumentPooler = PooledClass.twoArgumentPooler; -var fourArgumentPooler = PooledClass.fourArgumentPooler; - -var userProvidedKeyEscapeRegex = /\/(?!\/)/g; -function escapeUserProvidedKey(text) { - return ('' + text).replace(userProvidedKeyEscapeRegex, '//'); -} - -/** - * PooledClass representing the bookkeeping associated with performing a child - * traversal. Allows avoiding binding callbacks. - * - * @constructor ForEachBookKeeping - * @param {!function} forEachFunction Function to perform traversal with. - * @param {?*} forEachContext Context to perform context with. - */ -function ForEachBookKeeping(forEachFunction, forEachContext) { - this.func = forEachFunction; - this.context = forEachContext; - this.count = 0; -} -ForEachBookKeeping.prototype.destructor = function () { - this.func = null; - this.context = null; - this.count = 0; -}; -PooledClass.addPoolingTo(ForEachBookKeeping, twoArgumentPooler); - -function forEachSingleChild(bookKeeping, child, name) { - var func = bookKeeping.func; - var context = bookKeeping.context; - - func.call(context, child, bookKeeping.count++); -} - -/** - * Iterates through children that are typically specified as `props.children`. - * - * The provided forEachFunc(child, index) will be called for each - * leaf child. - * - * @param {?*} children Children tree container. - * @param {function(*, int)} forEachFunc - * @param {*} forEachContext Context for forEachContext. - */ -function forEachChildren(children, forEachFunc, forEachContext) { - if (children == null) { - return children; - } - var traverseContext = ForEachBookKeeping.getPooled(forEachFunc, forEachContext); - traverseAllChildren(children, forEachSingleChild, traverseContext); - ForEachBookKeeping.release(traverseContext); -} - -/** - * PooledClass representing the bookkeeping associated with performing a child - * mapping. Allows avoiding binding callbacks. - * - * @constructor MapBookKeeping - * @param {!*} mapResult Object containing the ordered map of results. - * @param {!function} mapFunction Function to perform mapping with. - * @param {?*} mapContext Context to perform mapping with. - */ -function MapBookKeeping(mapResult, keyPrefix, mapFunction, mapContext) { - this.result = mapResult; - this.keyPrefix = keyPrefix; - this.func = mapFunction; - this.context = mapContext; - this.count = 0; -} -MapBookKeeping.prototype.destructor = function () { - this.result = null; - this.keyPrefix = null; - this.func = null; - this.context = null; - this.count = 0; -}; -PooledClass.addPoolingTo(MapBookKeeping, fourArgumentPooler); - -function mapSingleChildIntoContext(bookKeeping, child, childKey) { - var result = bookKeeping.result; - var keyPrefix = bookKeeping.keyPrefix; - var func = bookKeeping.func; - var context = bookKeeping.context; - - var mappedChild = func.call(context, child, bookKeeping.count++); - if (Array.isArray(mappedChild)) { - mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, emptyFunction.thatReturnsArgument); - } else if (mappedChild != null) { - if (ReactElement.isValidElement(mappedChild)) { - mappedChild = ReactElement.cloneAndReplaceKey(mappedChild, - // Keep both the (mapped) and old keys if they differ, just as - // traverseAllChildren used to do for objects as children - keyPrefix + (mappedChild !== child ? escapeUserProvidedKey(mappedChild.key || '') + '/' : '') + childKey); - } - result.push(mappedChild); - } -} - -function mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) { - var escapedPrefix = ''; - if (prefix != null) { - escapedPrefix = escapeUserProvidedKey(prefix) + '/'; - } - var traverseContext = MapBookKeeping.getPooled(array, escapedPrefix, func, context); - traverseAllChildren(children, mapSingleChildIntoContext, traverseContext); - MapBookKeeping.release(traverseContext); -} - -/** - * Maps children that are typically specified as `props.children`. - * - * The provided mapFunction(child, key, index) will be called for each - * leaf child. - * - * @param {?*} children Children tree container. - * @param {function(*, int)} func The map function. - * @param {*} context Context for mapFunction. - * @return {object} Object containing the ordered map of results. - */ -function mapChildren(children, func, context) { - if (children == null) { - return children; - } - var result = []; - mapIntoWithKeyPrefixInternal(children, result, null, func, context); - return result; -} - -function forEachSingleChildDummy(traverseContext, child, name) { - return null; -} - -/** - * Count the number of children that are typically specified as - * `props.children`. - * - * @param {?*} children Children tree container. - * @return {number} The number of children. - */ -function countChildren(children, context) { - return traverseAllChildren(children, forEachSingleChildDummy, null); -} - -/** - * Flatten a children object (typically specified as `props.children`) and - * return an array with appropriately re-keyed children. - */ -function toArray(children) { - var result = []; - mapIntoWithKeyPrefixInternal(children, result, null, emptyFunction.thatReturnsArgument); - return result; -} - -var ReactChildren = { - forEach: forEachChildren, - map: mapChildren, - mapIntoWithKeyPrefixInternal: mapIntoWithKeyPrefixInternal, - count: countChildren, - toArray: toArray -}; - -module.exports = ReactChildren; -},{"126":126,"135":135,"24":24,"52":52}],29:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactClass - */ - -'use strict'; - -var ReactComponent = _dereq_(30); -var ReactElement = _dereq_(52); -var ReactPropTypeLocations = _dereq_(73); -var ReactPropTypeLocationNames = _dereq_(72); -var ReactNoopUpdateQueue = _dereq_(69); - -var assign = _dereq_(23); -var emptyObject = _dereq_(136); -var invariant = _dereq_(143); -var keyMirror = _dereq_(146); -var keyOf = _dereq_(147); -var warning = _dereq_(154); - -var MIXINS_KEY = keyOf({ mixins: null }); - -/** - * Policies that describe methods in `ReactClassInterface`. - */ -var SpecPolicy = keyMirror({ - /** - * These methods may be defined only once by the class specification or mixin. - */ - DEFINE_ONCE: null, - /** - * These methods may be defined by both the class specification and mixins. - * Subsequent definitions will be chained. These methods must return void. - */ - DEFINE_MANY: null, - /** - * These methods are overriding the base class. - */ - OVERRIDE_BASE: null, - /** - * These methods are similar to DEFINE_MANY, except we assume they return - * objects. We try to merge the keys of the return values of all the mixed in - * functions. If there is a key conflict we throw. - */ - DEFINE_MANY_MERGED: null -}); - -var injectedMixins = []; - -var warnedSetProps = false; -function warnSetProps() { - if (!warnedSetProps) { - warnedSetProps = true; - "development" !== 'production' ? warning(false, 'setProps(...) and replaceProps(...) are deprecated. ' + 'Instead, call render again at the top level.') : undefined; - } -} - -/** - * Composite components are higher-level components that compose other composite - * or native components. - * - * To create a new type of `ReactClass`, pass a specification of - * your new class to `React.createClass`. The only requirement of your class - * specification is that you implement a `render` method. - * - * var MyComponent = React.createClass({ - * render: function() { - * return <div>Hello World</div>; - * } - * }); - * - * The class specification supports a specific protocol of methods that have - * special meaning (e.g. `render`). See `ReactClassInterface` for - * more the comprehensive protocol. Any other properties and methods in the - * class specification will be available on the prototype. - * - * @interface ReactClassInterface - * @internal - */ -var ReactClassInterface = { - - /** - * An array of Mixin objects to include when defining your component. - * - * @type {array} - * @optional - */ - mixins: SpecPolicy.DEFINE_MANY, - - /** - * An object containing properties and methods that should be defined on - * the component's constructor instead of its prototype (static methods). - * - * @type {object} - * @optional - */ - statics: SpecPolicy.DEFINE_MANY, - - /** - * Definition of prop types for this component. - * - * @type {object} - * @optional - */ - propTypes: SpecPolicy.DEFINE_MANY, - - /** - * Definition of context types for this component. - * - * @type {object} - * @optional - */ - contextTypes: SpecPolicy.DEFINE_MANY, - - /** - * Definition of context types this component sets for its children. - * - * @type {object} - * @optional - */ - childContextTypes: SpecPolicy.DEFINE_MANY, - - // ==== Definition methods ==== - - /** - * Invoked when the component is mounted. Values in the mapping will be set on - * `this.props` if that prop is not specified (i.e. using an `in` check). - * - * This method is invoked before `getInitialState` and therefore cannot rely - * on `this.state` or use `this.setState`. - * - * @return {object} - * @optional - */ - getDefaultProps: SpecPolicy.DEFINE_MANY_MERGED, - - /** - * Invoked once before the component is mounted. The return value will be used - * as the initial value of `this.state`. - * - * getInitialState: function() { - * return { - * isOn: false, - * fooBaz: new BazFoo() - * } - * } - * - * @return {object} - * @optional - */ - getInitialState: SpecPolicy.DEFINE_MANY_MERGED, - - /** - * @return {object} - * @optional - */ - getChildContext: SpecPolicy.DEFINE_MANY_MERGED, - - /** - * Uses props from `this.props` and state from `this.state` to render the - * structure of the component. - * - * No guarantees are made about when or how often this method is invoked, so - * it must not have side effects. - * - * render: function() { - * var name = this.props.name; - * return <div>Hello, {name}!</div>; - * } - * - * @return {ReactComponent} - * @nosideeffects - * @required - */ - render: SpecPolicy.DEFINE_ONCE, - - // ==== Delegate methods ==== - - /** - * Invoked when the component is initially created and about to be mounted. - * This may have side effects, but any external subscriptions or data created - * by this method must be cleaned up in `componentWillUnmount`. - * - * @optional - */ - componentWillMount: SpecPolicy.DEFINE_MANY, - - /** - * Invoked when the component has been mounted and has a DOM representation. - * However, there is no guarantee that the DOM node is in the document. - * - * Use this as an opportunity to operate on the DOM when the component has - * been mounted (initialized and rendered) for the first time. - * - * @param {DOMElement} rootNode DOM element representing the component. - * @optional - */ - componentDidMount: SpecPolicy.DEFINE_MANY, - - /** - * Invoked before the component receives new props. - * - * Use this as an opportunity to react to a prop transition by updating the - * state using `this.setState`. Current props are accessed via `this.props`. - * - * componentWillReceiveProps: function(nextProps, nextContext) { - * this.setState({ - * likesIncreasing: nextProps.likeCount > this.props.likeCount - * }); - * } - * - * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop - * transition may cause a state change, but the opposite is not true. If you - * need it, you are probably looking for `componentWillUpdate`. - * - * @param {object} nextProps - * @optional - */ - componentWillReceiveProps: SpecPolicy.DEFINE_MANY, - - /** - * Invoked while deciding if the component should be updated as a result of - * receiving new props, state and/or context. - * - * Use this as an opportunity to `return false` when you're certain that the - * transition to the new props/state/context will not require a component - * update. - * - * shouldComponentUpdate: function(nextProps, nextState, nextContext) { - * return !equal(nextProps, this.props) || - * !equal(nextState, this.state) || - * !equal(nextContext, this.context); - * } - * - * @param {object} nextProps - * @param {?object} nextState - * @param {?object} nextContext - * @return {boolean} True if the component should update. - * @optional - */ - shouldComponentUpdate: SpecPolicy.DEFINE_ONCE, - - /** - * Invoked when the component is about to update due to a transition from - * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState` - * and `nextContext`. - * - * Use this as an opportunity to perform preparation before an update occurs. - * - * NOTE: You **cannot** use `this.setState()` in this method. - * - * @param {object} nextProps - * @param {?object} nextState - * @param {?object} nextContext - * @param {ReactReconcileTransaction} transaction - * @optional - */ - componentWillUpdate: SpecPolicy.DEFINE_MANY, - - /** - * Invoked when the component's DOM representation has been updated. - * - * Use this as an opportunity to operate on the DOM when the component has - * been updated. - * - * @param {object} prevProps - * @param {?object} prevState - * @param {?object} prevContext - * @param {DOMElement} rootNode DOM element representing the component. - * @optional - */ - componentDidUpdate: SpecPolicy.DEFINE_MANY, - - /** - * Invoked when the component is about to be removed from its parent and have - * its DOM representation destroyed. - * - * Use this as an opportunity to deallocate any external resources. - * - * NOTE: There is no `componentDidUnmount` since your component will have been - * destroyed by that point. - * - * @optional - */ - componentWillUnmount: SpecPolicy.DEFINE_MANY, - - // ==== Advanced methods ==== - - /** - * Updates the component's currently mounted DOM representation. - * - * By default, this implements React's rendering and reconciliation algorithm. - * Sophisticated clients may wish to override this. - * - * @param {ReactReconcileTransaction} transaction - * @internal - * @overridable - */ - updateComponent: SpecPolicy.OVERRIDE_BASE - -}; - -/** - * Mapping from class specification keys to special processing functions. - * - * Although these are declared like instance properties in the specification - * when defining classes using `React.createClass`, they are actually static - * and are accessible on the constructor instead of the prototype. Despite - * being static, they must be defined outside of the "statics" key under - * which all other static methods are defined. - */ -var RESERVED_SPEC_KEYS = { - displayName: function (Constructor, displayName) { - Constructor.displayName = displayName; - }, - mixins: function (Constructor, mixins) { - if (mixins) { - for (var i = 0; i < mixins.length; i++) { - mixSpecIntoComponent(Constructor, mixins[i]); - } - } - }, - childContextTypes: function (Constructor, childContextTypes) { - if ("development" !== 'production') { - validateTypeDef(Constructor, childContextTypes, ReactPropTypeLocations.childContext); - } - Constructor.childContextTypes = assign({}, Constructor.childContextTypes, childContextTypes); - }, - contextTypes: function (Constructor, contextTypes) { - if ("development" !== 'production') { - validateTypeDef(Constructor, contextTypes, ReactPropTypeLocations.context); - } - Constructor.contextTypes = assign({}, Constructor.contextTypes, contextTypes); - }, - /** - * Special case getDefaultProps which should move into statics but requires - * automatic merging. - */ - getDefaultProps: function (Constructor, getDefaultProps) { - if (Constructor.getDefaultProps) { - Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, getDefaultProps); - } else { - Constructor.getDefaultProps = getDefaultProps; - } - }, - propTypes: function (Constructor, propTypes) { - if ("development" !== 'production') { - validateTypeDef(Constructor, propTypes, ReactPropTypeLocations.prop); - } - Constructor.propTypes = assign({}, Constructor.propTypes, propTypes); - }, - statics: function (Constructor, statics) { - mixStaticSpecIntoComponent(Constructor, statics); - }, - autobind: function () {} }; - -// noop -function validateTypeDef(Constructor, typeDef, location) { - for (var propName in typeDef) { - if (typeDef.hasOwnProperty(propName)) { - // use a warning instead of an invariant so components - // don't show up in prod but not in __DEV__ - "development" !== 'production' ? warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName) : undefined; - } - } -} - -function validateMethodOverride(proto, name) { - var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null; - - // Disallow overriding of base class methods unless explicitly allowed. - if (ReactClassMixin.hasOwnProperty(name)) { - !(specPolicy === SpecPolicy.OVERRIDE_BASE) ? "development" !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to override ' + '`%s` from your class specification. Ensure that your method names ' + 'do not overlap with React methods.', name) : invariant(false) : undefined; - } - - // Disallow defining methods more than once unless explicitly allowed. - if (proto.hasOwnProperty(name)) { - !(specPolicy === SpecPolicy.DEFINE_MANY || specPolicy === SpecPolicy.DEFINE_MANY_MERGED) ? "development" !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to define ' + '`%s` on your component more than once. This conflict may be due ' + 'to a mixin.', name) : invariant(false) : undefined; - } -} - -/** - * Mixin helper which handles policy validation and reserved - * specification keys when building React classses. - */ -function mixSpecIntoComponent(Constructor, spec) { - if (!spec) { - return; - } - - !(typeof spec !== 'function') ? "development" !== 'production' ? invariant(false, 'ReactClass: You\'re attempting to ' + 'use a component class as a mixin. Instead, just use a regular object.') : invariant(false) : undefined; - !!ReactElement.isValidElement(spec) ? "development" !== 'production' ? invariant(false, 'ReactClass: You\'re attempting to ' + 'use a component as a mixin. Instead, just use a regular object.') : invariant(false) : undefined; - - var proto = Constructor.prototype; - - // By handling mixins before any other properties, we ensure the same - // chaining order is applied to methods with DEFINE_MANY policy, whether - // mixins are listed before or after these methods in the spec. - if (spec.hasOwnProperty(MIXINS_KEY)) { - RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins); - } - - for (var name in spec) { - if (!spec.hasOwnProperty(name)) { - continue; - } - - if (name === MIXINS_KEY) { - // We have already handled mixins in a special case above. - continue; - } - - var property = spec[name]; - validateMethodOverride(proto, name); - - if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) { - RESERVED_SPEC_KEYS[name](Constructor, property); - } else { - // Setup methods on prototype: - // The following member methods should not be automatically bound: - // 1. Expected ReactClass methods (in the "interface"). - // 2. Overridden methods (that were mixed in). - var isReactClassMethod = ReactClassInterface.hasOwnProperty(name); - var isAlreadyDefined = proto.hasOwnProperty(name); - var isFunction = typeof property === 'function'; - var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false; - - if (shouldAutoBind) { - if (!proto.__reactAutoBindMap) { - proto.__reactAutoBindMap = {}; - } - proto.__reactAutoBindMap[name] = property; - proto[name] = property; - } else { - if (isAlreadyDefined) { - var specPolicy = ReactClassInterface[name]; - - // These cases should already be caught by validateMethodOverride. - !(isReactClassMethod && (specPolicy === SpecPolicy.DEFINE_MANY_MERGED || specPolicy === SpecPolicy.DEFINE_MANY)) ? "development" !== 'production' ? invariant(false, 'ReactClass: Unexpected spec policy %s for key %s ' + 'when mixing in component specs.', specPolicy, name) : invariant(false) : undefined; - - // For methods which are defined more than once, call the existing - // methods before calling the new property, merging if appropriate. - if (specPolicy === SpecPolicy.DEFINE_MANY_MERGED) { - proto[name] = createMergedResultFunction(proto[name], property); - } else if (specPolicy === SpecPolicy.DEFINE_MANY) { - proto[name] = createChainedFunction(proto[name], property); - } - } else { - proto[name] = property; - if ("development" !== 'production') { - // Add verbose displayName to the function, which helps when looking - // at profiling tools. - if (typeof property === 'function' && spec.displayName) { - proto[name].displayName = spec.displayName + '_' + name; - } - } - } - } - } - } -} - -function mixStaticSpecIntoComponent(Constructor, statics) { - if (!statics) { - return; - } - for (var name in statics) { - var property = statics[name]; - if (!statics.hasOwnProperty(name)) { - continue; - } - - var isReserved = (name in RESERVED_SPEC_KEYS); - !!isReserved ? "development" !== 'production' ? invariant(false, 'ReactClass: You are attempting to define a reserved ' + 'property, `%s`, that shouldn\'t be on the "statics" key. Define it ' + 'as an instance property instead; it will still be accessible on the ' + 'constructor.', name) : invariant(false) : undefined; - - var isInherited = (name in Constructor); - !!isInherited ? "development" !== 'production' ? invariant(false, 'ReactClass: You are attempting to define ' + '`%s` on your component more than once. This conflict may be ' + 'due to a mixin.', name) : invariant(false) : undefined; - Constructor[name] = property; - } -} - -/** - * Merge two objects, but throw if both contain the same key. - * - * @param {object} one The first object, which is mutated. - * @param {object} two The second object - * @return {object} one after it has been mutated to contain everything in two. - */ -function mergeIntoWithNoDuplicateKeys(one, two) { - !(one && two && typeof one === 'object' && typeof two === 'object') ? "development" !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.') : invariant(false) : undefined; - - for (var key in two) { - if (two.hasOwnProperty(key)) { - !(one[key] === undefined) ? "development" !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): ' + 'Tried to merge two objects with the same key: `%s`. This conflict ' + 'may be due to a mixin; in particular, this may be caused by two ' + 'getInitialState() or getDefaultProps() methods returning objects ' + 'with clashing keys.', key) : invariant(false) : undefined; - one[key] = two[key]; - } - } - return one; -} - -/** - * Creates a function that invokes two functions and merges their return values. - * - * @param {function} one Function to invoke first. - * @param {function} two Function to invoke second. - * @return {function} Function that invokes the two argument functions. - * @private - */ -function createMergedResultFunction(one, two) { - return function mergedResult() { - var a = one.apply(this, arguments); - var b = two.apply(this, arguments); - if (a == null) { - return b; - } else if (b == null) { - return a; - } - var c = {}; - mergeIntoWithNoDuplicateKeys(c, a); - mergeIntoWithNoDuplicateKeys(c, b); - return c; - }; -} - -/** - * Creates a function that invokes two functions and ignores their return vales. - * - * @param {function} one Function to invoke first. - * @param {function} two Function to invoke second. - * @return {function} Function that invokes the two argument functions. - * @private - */ -function createChainedFunction(one, two) { - return function chainedFunction() { - one.apply(this, arguments); - two.apply(this, arguments); - }; -} - -/** - * Binds a method to the component. - * - * @param {object} component Component whose method is going to be bound. - * @param {function} method Method to be bound. - * @return {function} The bound method. - */ -function bindAutoBindMethod(component, method) { - var boundMethod = method.bind(component); - if ("development" !== 'production') { - boundMethod.__reactBoundContext = component; - boundMethod.__reactBoundMethod = method; - boundMethod.__reactBoundArguments = null; - var componentName = component.constructor.displayName; - var _bind = boundMethod.bind; - /* eslint-disable block-scoped-var, no-undef */ - boundMethod.bind = function (newThis) { - for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - // User is trying to bind() an autobound method; we effectively will - // ignore the value of "this" that the user is trying to use, so - // let's warn. - if (newThis !== component && newThis !== null) { - "development" !== 'production' ? warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName) : undefined; - } else if (!args.length) { - "development" !== 'production' ? warning(false, 'bind(): You are binding a component method to the component. ' + 'React does this for you automatically in a high-performance ' + 'way, so you can safely remove this call. See %s', componentName) : undefined; - return boundMethod; - } - var reboundMethod = _bind.apply(boundMethod, arguments); - reboundMethod.__reactBoundContext = component; - reboundMethod.__reactBoundMethod = method; - reboundMethod.__reactBoundArguments = args; - return reboundMethod; - /* eslint-enable */ - }; - } - return boundMethod; -} - -/** - * Binds all auto-bound methods in a component. - * - * @param {object} component Component whose method is going to be bound. - */ -function bindAutoBindMethods(component) { - for (var autoBindKey in component.__reactAutoBindMap) { - if (component.__reactAutoBindMap.hasOwnProperty(autoBindKey)) { - var method = component.__reactAutoBindMap[autoBindKey]; - component[autoBindKey] = bindAutoBindMethod(component, method); - } - } -} - -/** - * Add more to the ReactClass base class. These are all legacy features and - * therefore not already part of the modern ReactComponent. - */ -var ReactClassMixin = { - - /** - * TODO: This will be deprecated because state should always keep a consistent - * type signature and the only use case for this, is to avoid that. - */ - replaceState: function (newState, callback) { - this.updater.enqueueReplaceState(this, newState); - if (callback) { - this.updater.enqueueCallback(this, callback); - } - }, - - /** - * Checks whether or not this composite component is mounted. - * @return {boolean} True if mounted, false otherwise. - * @protected - * @final - */ - isMounted: function () { - return this.updater.isMounted(this); - }, - - /** - * Sets a subset of the props. - * - * @param {object} partialProps Subset of the next props. - * @param {?function} callback Called after props are updated. - * @final - * @public - * @deprecated - */ - setProps: function (partialProps, callback) { - if ("development" !== 'production') { - warnSetProps(); - } - this.updater.enqueueSetProps(this, partialProps); - if (callback) { - this.updater.enqueueCallback(this, callback); - } - }, - - /** - * Replace all the props. - * - * @param {object} newProps Subset of the next props. - * @param {?function} callback Called after props are updated. - * @final - * @public - * @deprecated - */ - replaceProps: function (newProps, callback) { - if ("development" !== 'production') { - warnSetProps(); - } - this.updater.enqueueReplaceProps(this, newProps); - if (callback) { - this.updater.enqueueCallback(this, callback); - } - } -}; - -var ReactClassComponent = function () {}; -assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin); - -/** - * Module for creating composite components. - * - * @class ReactClass - */ -var ReactClass = { - - /** - * Creates a composite component class given a class specification. - * - * @param {object} spec Class specification (which must define `render`). - * @return {function} Component constructor function. - * @public - */ - createClass: function (spec) { - var Constructor = function (props, context, updater) { - // This constructor is overridden by mocks. The argument is used - // by mocks to assert on what gets mounted. - - if ("development" !== 'production') { - "development" !== 'production' ? warning(this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory') : undefined; - } - - // Wire up auto-binding - if (this.__reactAutoBindMap) { - bindAutoBindMethods(this); - } - - this.props = props; - this.context = context; - this.refs = emptyObject; - this.updater = updater || ReactNoopUpdateQueue; - - this.state = null; - - // ReactClasses doesn't have constructors. Instead, they use the - // getInitialState and componentWillMount methods for initialization. - - var initialState = this.getInitialState ? this.getInitialState() : null; - if ("development" !== 'production') { - // We allow auto-mocks to proceed as if they're returning null. - if (typeof initialState === 'undefined' && this.getInitialState._isMockFunction) { - // This is probably bad practice. Consider warning here and - // deprecating this convenience. - initialState = null; - } - } - !(typeof initialState === 'object' && !Array.isArray(initialState)) ? "development" !== 'production' ? invariant(false, '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent') : invariant(false) : undefined; - - this.state = initialState; - }; - Constructor.prototype = new ReactClassComponent(); - Constructor.prototype.constructor = Constructor; - - injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor)); - - mixSpecIntoComponent(Constructor, spec); - - // Initialize the defaultProps property after all mixins have been merged. - if (Constructor.getDefaultProps) { - Constructor.defaultProps = Constructor.getDefaultProps(); - } - - if ("development" !== 'production') { - // This is a tag to indicate that the use of these method names is ok, - // since it's used with createClass. If it's not, then it's likely a - // mistake so we'll warn you to use the static property, property - // initializer or constructor respectively. - if (Constructor.getDefaultProps) { - Constructor.getDefaultProps.isReactClassApproved = {}; - } - if (Constructor.prototype.getInitialState) { - Constructor.prototype.getInitialState.isReactClassApproved = {}; - } - } - - !Constructor.prototype.render ? "development" !== 'production' ? invariant(false, 'createClass(...): Class specification must implement a `render` method.') : invariant(false) : undefined; - - if ("development" !== 'production') { - "development" !== 'production' ? warning(!Constructor.prototype.componentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', spec.displayName || 'A component') : undefined; - "development" !== 'production' ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : undefined; - } - - // Reduce time spent doing lookups by setting these on the prototype. - for (var methodName in ReactClassInterface) { - if (!Constructor.prototype[methodName]) { - Constructor.prototype[methodName] = null; - } - } - - return Constructor; - }, - - injection: { - injectMixin: function (mixin) { - injectedMixins.push(mixin); - } - } - -}; - -module.exports = ReactClass; -},{"136":136,"143":143,"146":146,"147":147,"154":154,"23":23,"30":30,"52":52,"69":69,"72":72,"73":73}],30:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactComponent - */ - -'use strict'; - -var ReactNoopUpdateQueue = _dereq_(69); - -var emptyObject = _dereq_(136); -var invariant = _dereq_(143); -var warning = _dereq_(154); - -/** - * Base class helpers for the updating state of a component. - */ -function ReactComponent(props, context, updater) { - this.props = props; - this.context = context; - this.refs = emptyObject; - // We initialize the default updater but the real one gets injected by the - // renderer. - this.updater = updater || ReactNoopUpdateQueue; -} - -ReactComponent.prototype.isReactComponent = {}; - -/** - * Sets a subset of the state. Always use this to mutate - * state. You should treat `this.state` as immutable. - * - * There is no guarantee that `this.state` will be immediately updated, so - * accessing `this.state` after calling this method may return the old value. - * - * There is no guarantee that calls to `setState` will run synchronously, - * as they may eventually be batched together. You can provide an optional - * callback that will be executed when the call to setState is actually - * completed. - * - * When a function is provided to setState, it will be called at some point in - * the future (not synchronously). It will be called with the up to date - * component arguments (state, props, context). These values can be different - * from this.* because your function may be called after receiveProps but before - * shouldComponentUpdate, and this new state, props, and context will not yet be - * assigned to this. - * - * @param {object|function} partialState Next partial state or function to - * produce next partial state to be merged with current state. - * @param {?function} callback Called after state is updated. - * @final - * @protected - */ -ReactComponent.prototype.setState = function (partialState, callback) { - !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? "development" !== 'production' ? invariant(false, 'setState(...): takes an object of state variables to update or a ' + 'function which returns an object of state variables.') : invariant(false) : undefined; - if ("development" !== 'production') { - "development" !== 'production' ? warning(partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().') : undefined; - } - this.updater.enqueueSetState(this, partialState); - if (callback) { - this.updater.enqueueCallback(this, callback); - } -}; - -/** - * Forces an update. This should only be invoked when it is known with - * certainty that we are **not** in a DOM transaction. - * - * You may want to call this when you know that some deeper aspect of the - * component's state has changed but `setState` was not called. - * - * This will not invoke `shouldComponentUpdate`, but it will invoke - * `componentWillUpdate` and `componentDidUpdate`. - * - * @param {?function} callback Called after update is complete. - * @final - * @protected - */ -ReactComponent.prototype.forceUpdate = function (callback) { - this.updater.enqueueForceUpdate(this); - if (callback) { - this.updater.enqueueCallback(this, callback); - } -}; - -/** - * Deprecated APIs. These APIs used to exist on classic React classes but since - * we would like to deprecate them, we're not going to move them over to this - * modern base class. Instead, we define a getter that warns if it's accessed. - */ -if ("development" !== 'production') { - var deprecatedAPIs = { - getDOMNode: ['getDOMNode', 'Use ReactDOM.findDOMNode(component) instead.'], - isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'], - replaceProps: ['replaceProps', 'Instead, call render again at the top level.'], - replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).'], - setProps: ['setProps', 'Instead, call render again at the top level.'] - }; - var defineDeprecationWarning = function (methodName, info) { - try { - Object.defineProperty(ReactComponent.prototype, methodName, { - get: function () { - "development" !== 'production' ? warning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]) : undefined; - return undefined; - } - }); - } catch (x) { - // IE will fail on defineProperty (es5-shim/sham too) - } - }; - for (var fnName in deprecatedAPIs) { - if (deprecatedAPIs.hasOwnProperty(fnName)) { - defineDeprecationWarning(fnName, deprecatedAPIs[fnName]); - } - } -} - -module.exports = ReactComponent; -},{"136":136,"143":143,"154":154,"69":69}],31:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactComponentBrowserEnvironment - */ - -'use strict'; - -var ReactDOMIDOperations = _dereq_(40); -var ReactMount = _dereq_(65); - -/** - * Abstracts away all functionality of the reconciler that requires knowledge of - * the browser context. TODO: These callers should be refactored to avoid the - * need for this injection. - */ -var ReactComponentBrowserEnvironment = { - - processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates, - - replaceNodeWithMarkupByID: ReactDOMIDOperations.dangerouslyReplaceNodeWithMarkupByID, - - /** - * If a particular environment requires that some resources be cleaned up, - * specify this in the injected Mixin. In the DOM, we would likely want to - * purge any cached node ID lookups. - * - * @private - */ - unmountIDFromEnvironment: function (rootNodeID) { - ReactMount.purgeID(rootNodeID); - } - -}; - -module.exports = ReactComponentBrowserEnvironment; -},{"40":40,"65":65}],32:[function(_dereq_,module,exports){ -/** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactComponentEnvironment - */ - -'use strict'; - -var invariant = _dereq_(143); - -var injected = false; - -var ReactComponentEnvironment = { - - /** - * Optionally injectable environment dependent cleanup hook. (server vs. - * browser etc). Example: A browser system caches DOM nodes based on component - * ID and must remove that cache entry when this instance is unmounted. - */ - unmountIDFromEnvironment: null, - - /** - * Optionally injectable hook for swapping out mount images in the middle of - * the tree. - */ - replaceNodeWithMarkupByID: null, - - /** - * Optionally injectable hook for processing a queue of child updates. Will - * later move into MultiChildComponents. - */ - processChildrenUpdates: null, - - injection: { - injectEnvironment: function (environment) { - !!injected ? "development" !== 'production' ? invariant(false, 'ReactCompositeComponent: injectEnvironment() can only be called once.') : invariant(false) : undefined; - ReactComponentEnvironment.unmountIDFromEnvironment = environment.unmountIDFromEnvironment; - ReactComponentEnvironment.replaceNodeWithMarkupByID = environment.replaceNodeWithMarkupByID; - ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates; - injected = true; - } - } - -}; - -module.exports = ReactComponentEnvironment; -},{"143":143}],33:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactCompositeComponent - */ - -'use strict'; - -var ReactComponentEnvironment = _dereq_(32); -var ReactCurrentOwner = _dereq_(34); -var ReactElement = _dereq_(52); -var ReactInstanceMap = _dereq_(62); -var ReactPerf = _dereq_(71); -var ReactPropTypeLocations = _dereq_(73); -var ReactPropTypeLocationNames = _dereq_(72); -var ReactReconciler = _dereq_(76); -var ReactUpdateQueue = _dereq_(82); - -var assign = _dereq_(23); -var emptyObject = _dereq_(136); -var invariant = _dereq_(143); -var shouldUpdateReactComponent = _dereq_(125); -var warning = _dereq_(154); - -function getDeclarationErrorAddendum(component) { - var owner = component._currentElement._owner || null; - if (owner) { - var name = owner.getName(); - if (name) { - return ' Check the render method of `' + name + '`.'; - } - } - return ''; -} - -function StatelessComponent(Component) {} -StatelessComponent.prototype.render = function () { - var Component = ReactInstanceMap.get(this)._currentElement.type; - return Component(this.props, this.context, this.updater); -}; - -/** - * ------------------ The Life-Cycle of a Composite Component ------------------ - * - * - constructor: Initialization of state. The instance is now retained. - * - componentWillMount - * - render - * - [children's constructors] - * - [children's componentWillMount and render] - * - [children's componentDidMount] - * - componentDidMount - * - * Update Phases: - * - componentWillReceiveProps (only called if parent updated) - * - shouldComponentUpdate - * - componentWillUpdate - * - render - * - [children's constructors or receive props phases] - * - componentDidUpdate - * - * - componentWillUnmount - * - [children's componentWillUnmount] - * - [children destroyed] - * - (destroyed): The instance is now blank, released by React and ready for GC. - * - * ----------------------------------------------------------------------------- - */ - -/** - * An incrementing ID assigned to each component when it is mounted. This is - * used to enforce the order in which `ReactUpdates` updates dirty components. - * - * @private - */ -var nextMountID = 1; - -/** - * @lends {ReactCompositeComponent.prototype} - */ -var ReactCompositeComponentMixin = { - - /** - * Base constructor for all composite component. - * - * @param {ReactElement} element - * @final - * @internal - */ - construct: function (element) { - this._currentElement = element; - this._rootNodeID = null; - this._instance = null; - - // See ReactUpdateQueue - this._pendingElement = null; - this._pendingStateQueue = null; - this._pendingReplaceState = false; - this._pendingForceUpdate = false; - - this._renderedComponent = null; - - this._context = null; - this._mountOrder = 0; - this._topLevelWrapper = null; - - // See ReactUpdates and ReactUpdateQueue. - this._pendingCallbacks = null; - }, - - /** - * Initializes the component, renders markup, and registers event listeners. - * - * @param {string} rootID DOM ID of the root node. - * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction - * @return {?string} Rendered markup to be inserted into the DOM. - * @final - * @internal - */ - mountComponent: function (rootID, transaction, context) { - this._context = context; - this._mountOrder = nextMountID++; - this._rootNodeID = rootID; - - var publicProps = this._processProps(this._currentElement.props); - var publicContext = this._processContext(context); - - var Component = this._currentElement.type; - - // Initialize the public class - var inst; - var renderedElement; - - // This is a way to detect if Component is a stateless arrow function - // component, which is not newable. It might not be 100% reliable but is - // something we can do until we start detecting that Component extends - // React.Component. We already assume that typeof Component === 'function'. - var canInstantiate = ('prototype' in Component); - - if (canInstantiate) { - if ("development" !== 'production') { - ReactCurrentOwner.current = this; - try { - inst = new Component(publicProps, publicContext, ReactUpdateQueue); - } finally { - ReactCurrentOwner.current = null; - } - } else { - inst = new Component(publicProps, publicContext, ReactUpdateQueue); - } - } - - if (!canInstantiate || inst === null || inst === false || ReactElement.isValidElement(inst)) { - renderedElement = inst; - inst = new StatelessComponent(Component); - } - - if ("development" !== 'production') { - // This will throw later in _renderValidatedComponent, but add an early - // warning now to help debugging - if (inst.render == null) { - "development" !== 'production' ? warning(false, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`, returned ' + 'null/false from a stateless component, or tried to render an ' + 'element whose type is a function that isn\'t a React component.', Component.displayName || Component.name || 'Component') : undefined; - } else { - // We support ES6 inheriting from React.Component, the module pattern, - // and stateless components, but not ES6 classes that don't extend - "development" !== 'production' ? warning(Component.prototype && Component.prototype.isReactComponent || !canInstantiate || !(inst instanceof Component), '%s(...): React component classes must extend React.Component.', Component.displayName || Component.name || 'Component') : undefined; - } - } - - // These should be set up in the constructor, but as a convenience for - // simpler class abstractions, we set them up after the fact. - inst.props = publicProps; - inst.context = publicContext; - inst.refs = emptyObject; - inst.updater = ReactUpdateQueue; - - this._instance = inst; - - // Store a reference from the instance back to the internal representation - ReactInstanceMap.set(inst, this); - - if ("development" !== 'production') { - // Since plain JS classes are defined without any special initialization - // logic, we can not catch common errors early. Therefore, we have to - // catch them here, at initialization time, instead. - "development" !== 'production' ? warning(!inst.getInitialState || inst.getInitialState.isReactClassApproved, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', this.getName() || 'a component') : undefined; - "development" !== 'production' ? warning(!inst.getDefaultProps || inst.getDefaultProps.isReactClassApproved, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', this.getName() || 'a component') : undefined; - "development" !== 'production' ? warning(!inst.propTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', this.getName() || 'a component') : undefined; - "development" !== 'production' ? warning(!inst.contextTypes, 'contextTypes was defined as an instance property on %s. Use a ' + 'static property to define contextTypes instead.', this.getName() || 'a component') : undefined; - "development" !== 'production' ? warning(typeof inst.componentShouldUpdate !== 'function', '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', this.getName() || 'A component') : undefined; - "development" !== 'production' ? warning(typeof inst.componentDidUnmount !== 'function', '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', this.getName() || 'A component') : undefined; - "development" !== 'production' ? warning(typeof inst.componentWillRecieveProps !== 'function', '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', this.getName() || 'A component') : undefined; - } - - var initialState = inst.state; - if (initialState === undefined) { - inst.state = initialState = null; - } - !(typeof initialState === 'object' && !Array.isArray(initialState)) ? "development" !== 'production' ? invariant(false, '%s.state: must be set to an object or null', this.getName() || 'ReactCompositeComponent') : invariant(false) : undefined; - - this._pendingStateQueue = null; - this._pendingReplaceState = false; - this._pendingForceUpdate = false; - - if (inst.componentWillMount) { - inst.componentWillMount(); - // When mounting, calls to `setState` by `componentWillMount` will set - // `this._pendingStateQueue` without triggering a re-render. - if (this._pendingStateQueue) { - inst.state = this._processPendingState(inst.props, inst.context); - } - } - - // If not a stateless component, we now render - if (renderedElement === undefined) { - renderedElement = this._renderValidatedComponent(); - } - - this._renderedComponent = this._instantiateReactComponent(renderedElement); - - var markup = ReactReconciler.mountComponent(this._renderedComponent, rootID, transaction, this._processChildContext(context)); - if (inst.componentDidMount) { - transaction.getReactMountReady().enqueue(inst.componentDidMount, inst); - } - - return markup; - }, - - /** - * Releases any resources allocated by `mountComponent`. - * - * @final - * @internal - */ - unmountComponent: function () { - var inst = this._instance; - - if (inst.componentWillUnmount) { - inst.componentWillUnmount(); - } - - ReactReconciler.unmountComponent(this._renderedComponent); - this._renderedComponent = null; - this._instance = null; - - // Reset pending fields - // Even if this component is scheduled for another update in ReactUpdates, - // it would still be ignored because these fields are reset. - this._pendingStateQueue = null; - this._pendingReplaceState = false; - this._pendingForceUpdate = false; - this._pendingCallbacks = null; - this._pendingElement = null; - - // These fields do not really need to be reset since this object is no - // longer accessible. - this._context = null; - this._rootNodeID = null; - this._topLevelWrapper = null; - - // Delete the reference from the instance to this internal representation - // which allow the internals to be properly cleaned up even if the user - // leaks a reference to the public instance. - ReactInstanceMap.remove(inst); - - // Some existing components rely on inst.props even after they've been - // destroyed (in event handlers). - // TODO: inst.props = null; - // TODO: inst.state = null; - // TODO: inst.context = null; - }, - - /** - * Filters the context object to only contain keys specified in - * `contextTypes` - * - * @param {object} context - * @return {?object} - * @private - */ - _maskContext: function (context) { - var maskedContext = null; - var Component = this._currentElement.type; - var contextTypes = Component.contextTypes; - if (!contextTypes) { - return emptyObject; - } - maskedContext = {}; - for (var contextName in contextTypes) { - maskedContext[contextName] = context[contextName]; - } - return maskedContext; - }, - - /** - * Filters the context object to only contain keys specified in - * `contextTypes`, and asserts that they are valid. - * - * @param {object} context - * @return {?object} - * @private - */ - _processContext: function (context) { - var maskedContext = this._maskContext(context); - if ("development" !== 'production') { - var Component = this._currentElement.type; - if (Component.contextTypes) { - this._checkPropTypes(Component.contextTypes, maskedContext, ReactPropTypeLocations.context); - } - } - return maskedContext; - }, - - /** - * @param {object} currentContext - * @return {object} - * @private - */ - _processChildContext: function (currentContext) { - var Component = this._currentElement.type; - var inst = this._instance; - var childContext = inst.getChildContext && inst.getChildContext(); - if (childContext) { - !(typeof Component.childContextTypes === 'object') ? "development" !== 'production' ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', this.getName() || 'ReactCompositeComponent') : invariant(false) : undefined; - if ("development" !== 'production') { - this._checkPropTypes(Component.childContextTypes, childContext, ReactPropTypeLocations.childContext); - } - for (var name in childContext) { - !(name in Component.childContextTypes) ? "development" !== 'production' ? invariant(false, '%s.getChildContext(): key "%s" is not defined in childContextTypes.', this.getName() || 'ReactCompositeComponent', name) : invariant(false) : undefined; - } - return assign({}, currentContext, childContext); - } - return currentContext; - }, - - /** - * Processes props by setting default values for unspecified props and - * asserting that the props are valid. Does not mutate its argument; returns - * a new props object with defaults merged in. - * - * @param {object} newProps - * @return {object} - * @private - */ - _processProps: function (newProps) { - if ("development" !== 'production') { - var Component = this._currentElement.type; - if (Component.propTypes) { - this._checkPropTypes(Component.propTypes, newProps, ReactPropTypeLocations.prop); - } - } - return newProps; - }, - - /** - * Assert that the props are valid - * - * @param {object} propTypes Map of prop name to a ReactPropType - * @param {object} props - * @param {string} location e.g. "prop", "context", "child context" - * @private - */ - _checkPropTypes: function (propTypes, props, location) { - // TODO: Stop validating prop types here and only use the element - // validation. - var componentName = this.getName(); - for (var propName in propTypes) { - if (propTypes.hasOwnProperty(propName)) { - var error; - try { - // This is intentionally an invariant that gets caught. It's the same - // behavior as without this statement except with a better message. - !(typeof propTypes[propName] === 'function') ? "development" !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually ' + 'from React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], propName) : invariant(false) : undefined; - error = propTypes[propName](props, propName, componentName, location); - } catch (ex) { - error = ex; - } - if (error instanceof Error) { - // We may want to extend this logic for similar errors in - // top-level render calls, so I'm abstracting it away into - // a function to minimize refactoring in the future - var addendum = getDeclarationErrorAddendum(this); - - if (location === ReactPropTypeLocations.prop) { - // Preface gives us something to blacklist in warning module - "development" !== 'production' ? warning(false, 'Failed Composite propType: %s%s', error.message, addendum) : undefined; - } else { - "development" !== 'production' ? warning(false, 'Failed Context Types: %s%s', error.message, addendum) : undefined; - } - } - } - } - }, - - receiveComponent: function (nextElement, transaction, nextContext) { - var prevElement = this._currentElement; - var prevContext = this._context; - - this._pendingElement = null; - - this.updateComponent(transaction, prevElement, nextElement, prevContext, nextContext); - }, - - /** - * If any of `_pendingElement`, `_pendingStateQueue`, or `_pendingForceUpdate` - * is set, update the component. - * - * @param {ReactReconcileTransaction} transaction - * @internal - */ - performUpdateIfNecessary: function (transaction) { - if (this._pendingElement != null) { - ReactReconciler.receiveComponent(this, this._pendingElement || this._currentElement, transaction, this._context); - } - - if (this._pendingStateQueue !== null || this._pendingForceUpdate) { - this.updateComponent(transaction, this._currentElement, this._currentElement, this._context, this._context); - } - }, - - /** - * Perform an update to a mounted component. The componentWillReceiveProps and - * shouldComponentUpdate methods are called, then (assuming the update isn't - * skipped) the remaining update lifecycle methods are called and the DOM - * representation is updated. - * - * By default, this implements React's rendering and reconciliation algorithm. - * Sophisticated clients may wish to override this. - * - * @param {ReactReconcileTransaction} transaction - * @param {ReactElement} prevParentElement - * @param {ReactElement} nextParentElement - * @internal - * @overridable - */ - updateComponent: function (transaction, prevParentElement, nextParentElement, prevUnmaskedContext, nextUnmaskedContext) { - var inst = this._instance; - - var nextContext = this._context === nextUnmaskedContext ? inst.context : this._processContext(nextUnmaskedContext); - var nextProps; - - // Distinguish between a props update versus a simple state update - if (prevParentElement === nextParentElement) { - // Skip checking prop types again -- we don't read inst.props to avoid - // warning for DOM component props in this upgrade - nextProps = nextParentElement.props; - } else { - nextProps = this._processProps(nextParentElement.props); - // An update here will schedule an update but immediately set - // _pendingStateQueue which will ensure that any state updates gets - // immediately reconciled instead of waiting for the next batch. - - if (inst.componentWillReceiveProps) { - inst.componentWillReceiveProps(nextProps, nextContext); - } - } - - var nextState = this._processPendingState(nextProps, nextContext); - - var shouldUpdate = this._pendingForceUpdate || !inst.shouldComponentUpdate || inst.shouldComponentUpdate(nextProps, nextState, nextContext); - - if ("development" !== 'production') { - "development" !== 'production' ? warning(typeof shouldUpdate !== 'undefined', '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : undefined; - } - - if (shouldUpdate) { - this._pendingForceUpdate = false; - // Will set `this.props`, `this.state` and `this.context`. - this._performComponentUpdate(nextParentElement, nextProps, nextState, nextContext, transaction, nextUnmaskedContext); - } else { - // If it's determined that a component should not update, we still want - // to set props and state but we shortcut the rest of the update. - this._currentElement = nextParentElement; - this._context = nextUnmaskedContext; - inst.props = nextProps; - inst.state = nextState; - inst.context = nextContext; - } - }, - - _processPendingState: function (props, context) { - var inst = this._instance; - var queue = this._pendingStateQueue; - var replace = this._pendingReplaceState; - this._pendingReplaceState = false; - this._pendingStateQueue = null; - - if (!queue) { - return inst.state; - } - - if (replace && queue.length === 1) { - return queue[0]; - } - - var nextState = assign({}, replace ? queue[0] : inst.state); - for (var i = replace ? 1 : 0; i < queue.length; i++) { - var partial = queue[i]; - assign(nextState, typeof partial === 'function' ? partial.call(inst, nextState, props, context) : partial); - } - - return nextState; - }, - - /** - * Merges new props and state, notifies delegate methods of update and - * performs update. - * - * @param {ReactElement} nextElement Next element - * @param {object} nextProps Next public object to set as properties. - * @param {?object} nextState Next object to set as state. - * @param {?object} nextContext Next public object to set as context. - * @param {ReactReconcileTransaction} transaction - * @param {?object} unmaskedContext - * @private - */ - _performComponentUpdate: function (nextElement, nextProps, nextState, nextContext, transaction, unmaskedContext) { - var inst = this._instance; - - var hasComponentDidUpdate = Boolean(inst.componentDidUpdate); - var prevProps; - var prevState; - var prevContext; - if (hasComponentDidUpdate) { - prevProps = inst.props; - prevState = inst.state; - prevContext = inst.context; - } - - if (inst.componentWillUpdate) { - inst.componentWillUpdate(nextProps, nextState, nextContext); - } - - this._currentElement = nextElement; - this._context = unmaskedContext; - inst.props = nextProps; - inst.state = nextState; - inst.context = nextContext; - - this._updateRenderedComponent(transaction, unmaskedContext); - - if (hasComponentDidUpdate) { - transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst); - } - }, - - /** - * Call the component's `render` method and update the DOM accordingly. - * - * @param {ReactReconcileTransaction} transaction - * @internal - */ - _updateRenderedComponent: function (transaction, context) { - var prevComponentInstance = this._renderedComponent; - var prevRenderedElement = prevComponentInstance._currentElement; - var nextRenderedElement = this._renderValidatedComponent(); - if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) { - ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context)); - } else { - // These two IDs are actually the same! But nothing should rely on that. - var thisID = this._rootNodeID; - var prevComponentID = prevComponentInstance._rootNodeID; - ReactReconciler.unmountComponent(prevComponentInstance); - - this._renderedComponent = this._instantiateReactComponent(nextRenderedElement); - var nextMarkup = ReactReconciler.mountComponent(this._renderedComponent, thisID, transaction, this._processChildContext(context)); - this._replaceNodeWithMarkupByID(prevComponentID, nextMarkup); - } - }, - - /** - * @protected - */ - _replaceNodeWithMarkupByID: function (prevComponentID, nextMarkup) { - ReactComponentEnvironment.replaceNodeWithMarkupByID(prevComponentID, nextMarkup); - }, - - /** - * @protected - */ - _renderValidatedComponentWithoutOwnerOrContext: function () { - var inst = this._instance; - var renderedComponent = inst.render(); - if ("development" !== 'production') { - // We allow auto-mocks to proceed as if they're returning null. - if (typeof renderedComponent === 'undefined' && inst.render._isMockFunction) { - // This is probably bad practice. Consider warning here and - // deprecating this convenience. - renderedComponent = null; - } - } - - return renderedComponent; - }, - - /** - * @private - */ - _renderValidatedComponent: function () { - var renderedComponent; - ReactCurrentOwner.current = this; - try { - renderedComponent = this._renderValidatedComponentWithoutOwnerOrContext(); - } finally { - ReactCurrentOwner.current = null; - } - !( - // TODO: An `isValidNode` function would probably be more appropriate - renderedComponent === null || renderedComponent === false || ReactElement.isValidElement(renderedComponent)) ? "development" !== 'production' ? invariant(false, '%s.render(): A valid ReactComponent must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', this.getName() || 'ReactCompositeComponent') : invariant(false) : undefined; - return renderedComponent; - }, - - /** - * Lazily allocates the refs object and stores `component` as `ref`. - * - * @param {string} ref Reference name. - * @param {component} component Component to store as `ref`. - * @final - * @private - */ - attachRef: function (ref, component) { - var inst = this.getPublicInstance(); - !(inst != null) ? "development" !== 'production' ? invariant(false, 'Stateless function components cannot have refs.') : invariant(false) : undefined; - var publicComponentInstance = component.getPublicInstance(); - if ("development" !== 'production') { - var componentName = component && component.getName ? component.getName() : 'a component'; - "development" !== 'production' ? warning(publicComponentInstance != null, 'Stateless function components cannot be given refs ' + '(See ref "%s" in %s created by %s). ' + 'Attempts to access this ref will fail.', ref, componentName, this.getName()) : undefined; - } - var refs = inst.refs === emptyObject ? inst.refs = {} : inst.refs; - refs[ref] = publicComponentInstance; - }, - - /** - * Detaches a reference name. - * - * @param {string} ref Name to dereference. - * @final - * @private - */ - detachRef: function (ref) { - var refs = this.getPublicInstance().refs; - delete refs[ref]; - }, - - /** - * Get a text description of the component that can be used to identify it - * in error messages. - * @return {string} The name or null. - * @internal - */ - getName: function () { - var type = this._currentElement.type; - var constructor = this._instance && this._instance.constructor; - return type.displayName || constructor && constructor.displayName || type.name || constructor && constructor.name || null; - }, - - /** - * Get the publicly accessible representation of this component - i.e. what - * is exposed by refs and returned by render. Can be null for stateless - * components. - * - * @return {ReactComponent} the public component instance. - * @internal - */ - getPublicInstance: function () { - var inst = this._instance; - if (inst instanceof StatelessComponent) { - return null; - } - return inst; - }, - - // Stub - _instantiateReactComponent: null - -}; - -ReactPerf.measureMethods(ReactCompositeComponentMixin, 'ReactCompositeComponent', { - mountComponent: 'mountComponent', - updateComponent: 'updateComponent', - _renderValidatedComponent: '_renderValidatedComponent' -}); - -var ReactCompositeComponent = { - - Mixin: ReactCompositeComponentMixin - -}; - -module.exports = ReactCompositeComponent; -},{"125":125,"136":136,"143":143,"154":154,"23":23,"32":32,"34":34,"52":52,"62":62,"71":71,"72":72,"73":73,"76":76,"82":82}],34:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactCurrentOwner - */ - -'use strict'; - -/** - * Keeps track of the current owner. - * - * The current owner is the component who should own any components that are - * currently being constructed. - */ -var ReactCurrentOwner = { - - /** - * @internal - * @type {ReactComponent} - */ - current: null - -}; - -module.exports = ReactCurrentOwner; -},{}],35:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactDOM - */ - -/* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/ - -'use strict'; - -var ReactCurrentOwner = _dereq_(34); -var ReactDOMTextComponent = _dereq_(46); -var ReactDefaultInjection = _dereq_(49); -var ReactInstanceHandles = _dereq_(61); -var ReactMount = _dereq_(65); -var ReactPerf = _dereq_(71); -var ReactReconciler = _dereq_(76); -var ReactUpdates = _dereq_(83); -var ReactVersion = _dereq_(84); - -var findDOMNode = _dereq_(107); -var renderSubtreeIntoContainer = _dereq_(122); -var warning = _dereq_(154); - -ReactDefaultInjection.inject(); - -var render = ReactPerf.measure('React', 'render', ReactMount.render); - -var React = { - findDOMNode: findDOMNode, - render: render, - unmountComponentAtNode: ReactMount.unmountComponentAtNode, - version: ReactVersion, - - /* eslint-disable camelcase */ - unstable_batchedUpdates: ReactUpdates.batchedUpdates, - unstable_renderSubtreeIntoContainer: renderSubtreeIntoContainer -}; - -// Inject the runtime into a devtools global hook regardless of browser. -// Allows for debugging when the hook is injected on the page. -/* eslint-enable camelcase */ -if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') { - __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({ - CurrentOwner: ReactCurrentOwner, - InstanceHandles: ReactInstanceHandles, - Mount: ReactMount, - Reconciler: ReactReconciler, - TextComponent: ReactDOMTextComponent - }); -} - -if ("development" !== 'production') { - var ExecutionEnvironment = _dereq_(129); - if (ExecutionEnvironment.canUseDOM && window.top === window.self) { - - // First check if devtools is not installed - if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') { - // If we're in Chrome or Firefox, provide a download link if not installed. - if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) { - console.debug('Download the React DevTools for a better development experience: ' + 'https://fb.me/react-devtools'); - } - } - - // If we're in IE8, check to see if we are in compatibility mode and provide - // information on preventing compatibility mode - var ieCompatibilityMode = document.documentMode && document.documentMode < 8; - - "development" !== 'production' ? warning(!ieCompatibilityMode, 'Internet Explorer is running in compatibility mode; please add the ' + 'following tag to your HTML to prevent this from happening: ' + '<meta http-equiv="X-UA-Compatible" content="IE=edge" />') : undefined; - - var expectedFeatures = [ - // shims - Array.isArray, Array.prototype.every, Array.prototype.forEach, Array.prototype.indexOf, Array.prototype.map, Date.now, Function.prototype.bind, Object.keys, String.prototype.split, String.prototype.trim, - - // shams - Object.create, Object.freeze]; - - for (var i = 0; i < expectedFeatures.length; i++) { - if (!expectedFeatures[i]) { - console.error('One or more ES5 shim/shams expected by React are not available: ' + 'https://fb.me/react-warning-polyfills'); - break; - } - } - } -} - -module.exports = React; -},{"107":107,"122":122,"129":129,"154":154,"34":34,"46":46,"49":49,"61":61,"65":65,"71":71,"76":76,"83":83,"84":84}],36:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactDOMButton - */ - -'use strict'; - -var mouseListenerNames = { - onClick: true, - onDoubleClick: true, - onMouseDown: true, - onMouseMove: true, - onMouseUp: true, - - onClickCapture: true, - onDoubleClickCapture: true, - onMouseDownCapture: true, - onMouseMoveCapture: true, - onMouseUpCapture: true -}; - -/** - * Implements a <button> native component that does not receive mouse events - * when `disabled` is set. - */ -var ReactDOMButton = { - getNativeProps: function (inst, props, context) { - if (!props.disabled) { - return props; - } - - // Copy the props, except the mouse listeners - var nativeProps = {}; - for (var key in props) { - if (props.hasOwnProperty(key) && !mouseListenerNames[key]) { - nativeProps[key] = props[key]; - } - } - - return nativeProps; - } -}; - -module.exports = ReactDOMButton; -},{}],37:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactDOMComponent - * @typechecks static-only - */ - -/* global hasOwnProperty:true */ - -'use strict'; - -var AutoFocusUtils = _dereq_(2); -var CSSPropertyOperations = _dereq_(5); -var DOMProperty = _dereq_(10); -var DOMPropertyOperations = _dereq_(11); -var EventConstants = _dereq_(15); -var ReactBrowserEventEmitter = _dereq_(26); -var ReactComponentBrowserEnvironment = _dereq_(31); -var ReactDOMButton = _dereq_(36); -var ReactDOMInput = _dereq_(41); -var ReactDOMOption = _dereq_(42); -var ReactDOMSelect = _dereq_(43); -var ReactDOMTextarea = _dereq_(47); -var ReactMount = _dereq_(65); -var ReactMultiChild = _dereq_(66); -var ReactPerf = _dereq_(71); -var ReactUpdateQueue = _dereq_(82); - -var assign = _dereq_(23); -var escapeTextContentForBrowser = _dereq_(106); -var invariant = _dereq_(143); -var isEventSupported = _dereq_(118); -var keyOf = _dereq_(147); -var setInnerHTML = _dereq_(123); -var setTextContent = _dereq_(124); -var shallowEqual = _dereq_(152); -var validateDOMNesting = _dereq_(127); -var warning = _dereq_(154); - -var deleteListener = ReactBrowserEventEmitter.deleteListener; -var listenTo = ReactBrowserEventEmitter.listenTo; -var registrationNameModules = ReactBrowserEventEmitter.registrationNameModules; - -// For quickly matching children type, to test if can be treated as content. -var CONTENT_TYPES = { 'string': true, 'number': true }; - -var STYLE = keyOf({ style: null }); - -var ELEMENT_NODE_TYPE = 1; - -var canDefineProperty = false; -try { - Object.defineProperty({}, 'test', { get: function () {} }); - canDefineProperty = true; -} catch (e) {} - -function getDeclarationErrorAddendum(internalInstance) { - if (internalInstance) { - var owner = internalInstance._currentElement._owner || null; - if (owner) { - var name = owner.getName(); - if (name) { - return ' This DOM node was rendered by `' + name + '`.'; - } - } - } - return ''; -} - -var legacyPropsDescriptor; -if ("development" !== 'production') { - legacyPropsDescriptor = { - props: { - enumerable: false, - get: function () { - var component = this._reactInternalComponent; - "development" !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .props of a DOM node; instead, ' + 'recreate the props as `render` did originally or read the DOM ' + 'properties/attributes directly from this node (e.g., ' + 'this.refs.box.className).%s', getDeclarationErrorAddendum(component)) : undefined; - return component._currentElement.props; - } - } - }; -} - -function legacyGetDOMNode() { - if ("development" !== 'production') { - var component = this._reactInternalComponent; - "development" !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .getDOMNode() of a DOM node; ' + 'instead, use the node directly.%s', getDeclarationErrorAddendum(component)) : undefined; - } - return this; -} - -function legacyIsMounted() { - var component = this._reactInternalComponent; - if ("development" !== 'production') { - "development" !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .isMounted() of a DOM node.%s', getDeclarationErrorAddendum(component)) : undefined; - } - return !!component; -} - -function legacySetStateEtc() { - if ("development" !== 'production') { - var component = this._reactInternalComponent; - "development" !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .setState(), .replaceState(), or ' + '.forceUpdate() of a DOM node. This is a no-op.%s', getDeclarationErrorAddendum(component)) : undefined; - } -} - -function legacySetProps(partialProps, callback) { - var component = this._reactInternalComponent; - if ("development" !== 'production') { - "development" !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .setProps() of a DOM node. ' + 'Instead, call ReactDOM.render again at the top level.%s', getDeclarationErrorAddendum(component)) : undefined; - } - if (!component) { - return; - } - ReactUpdateQueue.enqueueSetPropsInternal(component, partialProps); - if (callback) { - ReactUpdateQueue.enqueueCallbackInternal(component, callback); - } -} - -function legacyReplaceProps(partialProps, callback) { - var component = this._reactInternalComponent; - if ("development" !== 'production') { - "development" !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .replaceProps() of a DOM node. ' + 'Instead, call ReactDOM.render again at the top level.%s', getDeclarationErrorAddendum(component)) : undefined; - } - if (!component) { - return; - } - ReactUpdateQueue.enqueueReplacePropsInternal(component, partialProps); - if (callback) { - ReactUpdateQueue.enqueueCallbackInternal(component, callback); - } -} - -function friendlyStringify(obj) { - if (typeof obj === 'object') { - if (Array.isArray(obj)) { - return '[' + obj.map(friendlyStringify).join(', ') + ']'; - } else { - var pairs = []; - for (var key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key)) { - var keyEscaped = /^[a-z$_][\w$_]*$/i.test(key) ? key : JSON.stringify(key); - pairs.push(keyEscaped + ': ' + friendlyStringify(obj[key])); - } - } - return '{' + pairs.join(', ') + '}'; - } - } else if (typeof obj === 'string') { - return JSON.stringify(obj); - } else if (typeof obj === 'function') { - return '[function object]'; - } - // Differs from JSON.stringify in that undefined becauses undefined and that - // inf and nan don't become null - return String(obj); -} - -var styleMutationWarning = {}; - -function checkAndWarnForMutatedStyle(style1, style2, component) { - if (style1 == null || style2 == null) { - return; - } - if (shallowEqual(style1, style2)) { - return; - } - - var componentName = component._tag; - var owner = component._currentElement._owner; - var ownerName; - if (owner) { - ownerName = owner.getName(); - } - - var hash = ownerName + '|' + componentName; - - if (styleMutationWarning.hasOwnProperty(hash)) { - return; - } - - styleMutationWarning[hash] = true; - - "development" !== 'production' ? warning(false, '`%s` was passed a style object that has previously been mutated. ' + 'Mutating `style` is deprecated. Consider cloning it beforehand. Check ' + 'the `render` %s. Previous style: %s. Mutated style: %s.', componentName, owner ? 'of `' + ownerName + '`' : 'using <' + componentName + '>', friendlyStringify(style1), friendlyStringify(style2)) : undefined; -} - -/** - * @param {object} component - * @param {?object} props - */ -function assertValidProps(component, props) { - if (!props) { - return; - } - // Note the use of `==` which checks for null or undefined. - if ("development" !== 'production') { - if (voidElementTags[component._tag]) { - "development" !== 'production' ? warning(props.children == null && props.dangerouslySetInnerHTML == null, '%s is a void element tag and must not have `children` or ' + 'use `props.dangerouslySetInnerHTML`.%s', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : undefined; - } - } - if (props.dangerouslySetInnerHTML != null) { - !(props.children == null) ? "development" !== 'production' ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : invariant(false) : undefined; - !(typeof props.dangerouslySetInnerHTML === 'object' && '__html' in props.dangerouslySetInnerHTML) ? "development" !== 'production' ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. ' + 'Please visit https://fb.me/react-invariant-dangerously-set-inner-html ' + 'for more information.') : invariant(false) : undefined; - } - if ("development" !== 'production') { - "development" !== 'production' ? warning(props.innerHTML == null, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.') : undefined; - "development" !== 'production' ? warning(!props.contentEditable || props.children == null, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.') : undefined; - } - !(props.style == null || typeof props.style === 'object') ? "development" !== 'production' ? invariant(false, 'The `style` prop expects a mapping from style properties to values, ' + 'not a string. For example, style={{marginRight: spacing + \'em\'}} when ' + 'using JSX.%s', getDeclarationErrorAddendum(component)) : invariant(false) : undefined; -} - -function enqueuePutListener(id, registrationName, listener, transaction) { - if ("development" !== 'production') { - // IE8 has no API for event capturing and the `onScroll` event doesn't - // bubble. - "development" !== 'production' ? warning(registrationName !== 'onScroll' || isEventSupported('scroll', true), 'This browser doesn\'t support the `onScroll` event') : undefined; - } - var container = ReactMount.findReactContainerForID(id); - if (container) { - var doc = container.nodeType === ELEMENT_NODE_TYPE ? container.ownerDocument : container; - listenTo(registrationName, doc); - } - transaction.getReactMountReady().enqueue(putListener, { - id: id, - registrationName: registrationName, - listener: listener - }); -} - -function putListener() { - var listenerToPut = this; - ReactBrowserEventEmitter.putListener(listenerToPut.id, listenerToPut.registrationName, listenerToPut.listener); -} - -// There are so many media events, it makes sense to just -// maintain a list rather than create a `trapBubbledEvent` for each -var mediaEvents = { - topAbort: 'abort', - topCanPlay: 'canplay', - topCanPlayThrough: 'canplaythrough', - topDurationChange: 'durationchange', - topEmptied: 'emptied', - topEncrypted: 'encrypted', - topEnded: 'ended', - topError: 'error', - topLoadedData: 'loadeddata', - topLoadedMetadata: 'loadedmetadata', - topLoadStart: 'loadstart', - topPause: 'pause', - topPlay: 'play', - topPlaying: 'playing', - topProgress: 'progress', - topRateChange: 'ratechange', - topSeeked: 'seeked', - topSeeking: 'seeking', - topStalled: 'stalled', - topSuspend: 'suspend', - topTimeUpdate: 'timeupdate', - topVolumeChange: 'volumechange', - topWaiting: 'waiting' -}; - -function trapBubbledEventsLocal() { - var inst = this; - // If a component renders to null or if another component fatals and causes - // the state of the tree to be corrupted, `node` here can be null. - !inst._rootNodeID ? "development" !== 'production' ? invariant(false, 'Must be mounted to trap events') : invariant(false) : undefined; - var node = ReactMount.getNode(inst._rootNodeID); - !node ? "development" !== 'production' ? invariant(false, 'trapBubbledEvent(...): Requires node to be rendered.') : invariant(false) : undefined; - - switch (inst._tag) { - case 'iframe': - inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topLoad, 'load', node)]; - break; - case 'video': - case 'audio': - - inst._wrapperState.listeners = []; - // create listener for each media event - for (var event in mediaEvents) { - if (mediaEvents.hasOwnProperty(event)) { - inst._wrapperState.listeners.push(ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes[event], mediaEvents[event], node)); - } - } - - break; - case 'img': - inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topError, 'error', node), ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topLoad, 'load', node)]; - break; - case 'form': - inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topReset, 'reset', node), ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topSubmit, 'submit', node)]; - break; - } -} - -function mountReadyInputWrapper() { - ReactDOMInput.mountReadyWrapper(this); -} - -function postUpdateSelectWrapper() { - ReactDOMSelect.postUpdateWrapper(this); -} - -// For HTML, certain tags should omit their close tag. We keep a whitelist for -// those special cased tags. - -var omittedCloseTags = { - 'area': true, - 'base': true, - 'br': true, - 'col': true, - 'embed': true, - 'hr': true, - 'img': true, - 'input': true, - 'keygen': true, - 'link': true, - 'meta': true, - 'param': true, - 'source': true, - 'track': true, - 'wbr': true -}; - -// NOTE: menuitem's close tag should be omitted, but that causes problems. -var newlineEatingTags = { - 'listing': true, - 'pre': true, - 'textarea': true -}; - -// For HTML, certain tags cannot have children. This has the same purpose as -// `omittedCloseTags` except that `menuitem` should still have its closing tag. - -var voidElementTags = assign({ - 'menuitem': true -}, omittedCloseTags); - -// We accept any tag to be rendered but since this gets injected into arbitrary -// HTML, we want to make sure that it's a safe tag. -// http://www.w3.org/TR/REC-xml/#NT-Name - -var VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/; // Simplified subset -var validatedTagCache = {}; -var hasOwnProperty = ({}).hasOwnProperty; - -function validateDangerousTag(tag) { - if (!hasOwnProperty.call(validatedTagCache, tag)) { - !VALID_TAG_REGEX.test(tag) ? "development" !== 'production' ? invariant(false, 'Invalid tag: %s', tag) : invariant(false) : undefined; - validatedTagCache[tag] = true; - } -} - -function processChildContextDev(context, inst) { - // Pass down our tag name to child components for validation purposes - context = assign({}, context); - var info = context[validateDOMNesting.ancestorInfoContextKey]; - context[validateDOMNesting.ancestorInfoContextKey] = validateDOMNesting.updatedAncestorInfo(info, inst._tag, inst); - return context; -} - -function isCustomComponent(tagName, props) { - return tagName.indexOf('-') >= 0 || props.is != null; -} - -/** - * Creates a new React class that is idempotent and capable of containing other - * React components. It accepts event listeners and DOM properties that are - * valid according to `DOMProperty`. - * - * - Event listeners: `onClick`, `onMouseDown`, etc. - * - DOM properties: `className`, `name`, `title`, etc. - * - * The `style` property functions differently from the DOM API. It accepts an - * object mapping of style properties to values. - * - * @constructor ReactDOMComponent - * @extends ReactMultiChild - */ -function ReactDOMComponent(tag) { - validateDangerousTag(tag); - this._tag = tag.toLowerCase(); - this._renderedChildren = null; - this._previousStyle = null; - this._previousStyleCopy = null; - this._rootNodeID = null; - this._wrapperState = null; - this._topLevelWrapper = null; - this._nodeWithLegacyProperties = null; - if ("development" !== 'production') { - this._unprocessedContextDev = null; - this._processedContextDev = null; - } -} - -ReactDOMComponent.displayName = 'ReactDOMComponent'; - -ReactDOMComponent.Mixin = { - - construct: function (element) { - this._currentElement = element; - }, - - /** - * Generates root tag markup then recurses. This method has side effects and - * is not idempotent. - * - * @internal - * @param {string} rootID The root DOM ID for this node. - * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction - * @param {object} context - * @return {string} The computed markup. - */ - mountComponent: function (rootID, transaction, context) { - this._rootNodeID = rootID; - - var props = this._currentElement.props; - - switch (this._tag) { - case 'iframe': - case 'img': - case 'form': - case 'video': - case 'audio': - this._wrapperState = { - listeners: null - }; - transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this); - break; - case 'button': - props = ReactDOMButton.getNativeProps(this, props, context); - break; - case 'input': - ReactDOMInput.mountWrapper(this, props, context); - props = ReactDOMInput.getNativeProps(this, props, context); - break; - case 'option': - ReactDOMOption.mountWrapper(this, props, context); - props = ReactDOMOption.getNativeProps(this, props, context); - break; - case 'select': - ReactDOMSelect.mountWrapper(this, props, context); - props = ReactDOMSelect.getNativeProps(this, props, context); - context = ReactDOMSelect.processChildContext(this, props, context); - break; - case 'textarea': - ReactDOMTextarea.mountWrapper(this, props, context); - props = ReactDOMTextarea.getNativeProps(this, props, context); - break; - } - - assertValidProps(this, props); - if ("development" !== 'production') { - if (context[validateDOMNesting.ancestorInfoContextKey]) { - validateDOMNesting(this._tag, this, context[validateDOMNesting.ancestorInfoContextKey]); - } - } - - if ("development" !== 'production') { - this._unprocessedContextDev = context; - this._processedContextDev = processChildContextDev(context, this); - context = this._processedContextDev; - } - - var mountImage; - if (transaction.useCreateElement) { - var ownerDocument = context[ReactMount.ownerDocumentContextKey]; - var el = ownerDocument.createElement(this._currentElement.type); - DOMPropertyOperations.setAttributeForID(el, this._rootNodeID); - // Populate node cache - ReactMount.getID(el); - this._updateDOMProperties({}, props, transaction, el); - this._createInitialChildren(transaction, props, context, el); - mountImage = el; - } else { - var tagOpen = this._createOpenTagMarkupAndPutListeners(transaction, props); - var tagContent = this._createContentMarkup(transaction, props, context); - if (!tagContent && omittedCloseTags[this._tag]) { - mountImage = tagOpen + '/>'; - } else { - mountImage = tagOpen + '>' + tagContent + '</' + this._currentElement.type + '>'; - } - } - - switch (this._tag) { - case 'input': - transaction.getReactMountReady().enqueue(mountReadyInputWrapper, this); - // falls through - case 'button': - case 'select': - case 'textarea': - if (props.autoFocus) { - transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this); - } - break; - } - - return mountImage; - }, - - /** - * Creates markup for the open tag and all attributes. - * - * This method has side effects because events get registered. - * - * Iterating over object properties is faster than iterating over arrays. - * @see http://jsperf.com/obj-vs-arr-iteration - * - * @private - * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction - * @param {object} props - * @return {string} Markup of opening tag. - */ - _createOpenTagMarkupAndPutListeners: function (transaction, props) { - var ret = '<' + this._currentElement.type; - - for (var propKey in props) { - if (!props.hasOwnProperty(propKey)) { - continue; - } - var propValue = props[propKey]; - if (propValue == null) { - continue; - } - if (registrationNameModules.hasOwnProperty(propKey)) { - if (propValue) { - enqueuePutListener(this._rootNodeID, propKey, propValue, transaction); - } - } else { - if (propKey === STYLE) { - if (propValue) { - if ("development" !== 'production') { - // See `_updateDOMProperties`. style block - this._previousStyle = propValue; - } - propValue = this._previousStyleCopy = assign({}, props.style); - } - propValue = CSSPropertyOperations.createMarkupForStyles(propValue); - } - var markup = null; - if (this._tag != null && isCustomComponent(this._tag, props)) { - markup = DOMPropertyOperations.createMarkupForCustomAttribute(propKey, propValue); - } else { - markup = DOMPropertyOperations.createMarkupForProperty(propKey, propValue); - } - if (markup) { - ret += ' ' + markup; - } - } - } - - // For static pages, no need to put React ID and checksum. Saves lots of - // bytes. - if (transaction.renderToStaticMarkup) { - return ret; - } - - var markupForID = DOMPropertyOperations.createMarkupForID(this._rootNodeID); - return ret + ' ' + markupForID; - }, - - /** - * Creates markup for the content between the tags. - * - * @private - * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction - * @param {object} props - * @param {object} context - * @return {string} Content markup. - */ - _createContentMarkup: function (transaction, props, context) { - var ret = ''; - - // Intentional use of != to avoid catching zero/false. - var innerHTML = props.dangerouslySetInnerHTML; - if (innerHTML != null) { - if (innerHTML.__html != null) { - ret = innerHTML.__html; - } - } else { - var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null; - var childrenToUse = contentToUse != null ? null : props.children; - if (contentToUse != null) { - // TODO: Validate that text is allowed as a child of this node - ret = escapeTextContentForBrowser(contentToUse); - } else if (childrenToUse != null) { - var mountImages = this.mountChildren(childrenToUse, transaction, context); - ret = mountImages.join(''); - } - } - if (newlineEatingTags[this._tag] && ret.charAt(0) === '\n') { - // text/html ignores the first character in these tags if it's a newline - // Prefer to break application/xml over text/html (for now) by adding - // a newline specifically to get eaten by the parser. (Alternately for - // textareas, replacing "^\n" with "\r\n" doesn't get eaten, and the first - // \r is normalized out by HTMLTextAreaElement#value.) - // See: <http://www.w3.org/TR/html-polyglot/#newlines-in-textarea-and-pre> - // See: <http://www.w3.org/TR/html5/syntax.html#element-restrictions> - // See: <http://www.w3.org/TR/html5/syntax.html#newlines> - // See: Parsing of "textarea" "listing" and "pre" elements - // from <http://www.w3.org/TR/html5/syntax.html#parsing-main-inbody> - return '\n' + ret; - } else { - return ret; - } - }, - - _createInitialChildren: function (transaction, props, context, el) { - // Intentional use of != to avoid catching zero/false. - var innerHTML = props.dangerouslySetInnerHTML; - if (innerHTML != null) { - if (innerHTML.__html != null) { - setInnerHTML(el, innerHTML.__html); - } - } else { - var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null; - var childrenToUse = contentToUse != null ? null : props.children; - if (contentToUse != null) { - // TODO: Validate that text is allowed as a child of this node - setTextContent(el, contentToUse); - } else if (childrenToUse != null) { - var mountImages = this.mountChildren(childrenToUse, transaction, context); - for (var i = 0; i < mountImages.length; i++) { - el.appendChild(mountImages[i]); - } - } - } - }, - - /** - * Receives a next element and updates the component. - * - * @internal - * @param {ReactElement} nextElement - * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction - * @param {object} context - */ - receiveComponent: function (nextElement, transaction, context) { - var prevElement = this._currentElement; - this._currentElement = nextElement; - this.updateComponent(transaction, prevElement, nextElement, context); - }, - - /** - * Updates a native DOM component after it has already been allocated and - * attached to the DOM. Reconciles the root DOM node, then recurses. - * - * @param {ReactReconcileTransaction} transaction - * @param {ReactElement} prevElement - * @param {ReactElement} nextElement - * @internal - * @overridable - */ - updateComponent: function (transaction, prevElement, nextElement, context) { - var lastProps = prevElement.props; - var nextProps = this._currentElement.props; - - switch (this._tag) { - case 'button': - lastProps = ReactDOMButton.getNativeProps(this, lastProps); - nextProps = ReactDOMButton.getNativeProps(this, nextProps); - break; - case 'input': - ReactDOMInput.updateWrapper(this); - lastProps = ReactDOMInput.getNativeProps(this, lastProps); - nextProps = ReactDOMInput.getNativeProps(this, nextProps); - break; - case 'option': - lastProps = ReactDOMOption.getNativeProps(this, lastProps); - nextProps = ReactDOMOption.getNativeProps(this, nextProps); - break; - case 'select': - lastProps = ReactDOMSelect.getNativeProps(this, lastProps); - nextProps = ReactDOMSelect.getNativeProps(this, nextProps); - break; - case 'textarea': - ReactDOMTextarea.updateWrapper(this); - lastProps = ReactDOMTextarea.getNativeProps(this, lastProps); - nextProps = ReactDOMTextarea.getNativeProps(this, nextProps); - break; - } - - if ("development" !== 'production') { - // If the context is reference-equal to the old one, pass down the same - // processed object so the update bailout in ReactReconciler behaves - // correctly (and identically in dev and prod). See #5005. - if (this._unprocessedContextDev !== context) { - this._unprocessedContextDev = context; - this._processedContextDev = processChildContextDev(context, this); - } - context = this._processedContextDev; - } - - assertValidProps(this, nextProps); - this._updateDOMProperties(lastProps, nextProps, transaction, null); - this._updateDOMChildren(lastProps, nextProps, transaction, context); - - if (!canDefineProperty && this._nodeWithLegacyProperties) { - this._nodeWithLegacyProperties.props = nextProps; - } - - if (this._tag === 'select') { - // <select> value update needs to occur after <option> children - // reconciliation - transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this); - } - }, - - /** - * Reconciles the properties by detecting differences in property values and - * updating the DOM as necessary. This function is probably the single most - * critical path for performance optimization. - * - * TODO: Benchmark whether checking for changed values in memory actually - * improves performance (especially statically positioned elements). - * TODO: Benchmark the effects of putting this at the top since 99% of props - * do not change for a given reconciliation. - * TODO: Benchmark areas that can be improved with caching. - * - * @private - * @param {object} lastProps - * @param {object} nextProps - * @param {ReactReconcileTransaction} transaction - * @param {?DOMElement} node - */ - _updateDOMProperties: function (lastProps, nextProps, transaction, node) { - var propKey; - var styleName; - var styleUpdates; - for (propKey in lastProps) { - if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey)) { - continue; - } - if (propKey === STYLE) { - var lastStyle = this._previousStyleCopy; - for (styleName in lastStyle) { - if (lastStyle.hasOwnProperty(styleName)) { - styleUpdates = styleUpdates || {}; - styleUpdates[styleName] = ''; - } - } - this._previousStyleCopy = null; - } else if (registrationNameModules.hasOwnProperty(propKey)) { - if (lastProps[propKey]) { - // Only call deleteListener if there was a listener previously or - // else willDeleteListener gets called when there wasn't actually a - // listener (e.g., onClick={null}) - deleteListener(this._rootNodeID, propKey); - } - } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) { - if (!node) { - node = ReactMount.getNode(this._rootNodeID); - } - DOMPropertyOperations.deleteValueForProperty(node, propKey); - } - } - for (propKey in nextProps) { - var nextProp = nextProps[propKey]; - var lastProp = propKey === STYLE ? this._previousStyleCopy : lastProps[propKey]; - if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp) { - continue; - } - if (propKey === STYLE) { - if (nextProp) { - if ("development" !== 'production') { - checkAndWarnForMutatedStyle(this._previousStyleCopy, this._previousStyle, this); - this._previousStyle = nextProp; - } - nextProp = this._previousStyleCopy = assign({}, nextProp); - } else { - this._previousStyleCopy = null; - } - if (lastProp) { - // Unset styles on `lastProp` but not on `nextProp`. - for (styleName in lastProp) { - if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) { - styleUpdates = styleUpdates || {}; - styleUpdates[styleName] = ''; - } - } - // Update styles that changed since `lastProp`. - for (styleName in nextProp) { - if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) { - styleUpdates = styleUpdates || {}; - styleUpdates[styleName] = nextProp[styleName]; - } - } - } else { - // Relies on `updateStylesByID` not mutating `styleUpdates`. - styleUpdates = nextProp; - } - } else if (registrationNameModules.hasOwnProperty(propKey)) { - if (nextProp) { - enqueuePutListener(this._rootNodeID, propKey, nextProp, transaction); - } else if (lastProp) { - deleteListener(this._rootNodeID, propKey); - } - } else if (isCustomComponent(this._tag, nextProps)) { - if (!node) { - node = ReactMount.getNode(this._rootNodeID); - } - DOMPropertyOperations.setValueForAttribute(node, propKey, nextProp); - } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) { - if (!node) { - node = ReactMount.getNode(this._rootNodeID); - } - // If we're updating to null or undefined, we should remove the property - // from the DOM node instead of inadvertantly setting to a string. This - // brings us in line with the same behavior we have on initial render. - if (nextProp != null) { - DOMPropertyOperations.setValueForProperty(node, propKey, nextProp); - } else { - DOMPropertyOperations.deleteValueForProperty(node, propKey); - } - } - } - if (styleUpdates) { - if (!node) { - node = ReactMount.getNode(this._rootNodeID); - } - CSSPropertyOperations.setValueForStyles(node, styleUpdates); - } - }, - - /** - * Reconciles the children with the various properties that affect the - * children content. - * - * @param {object} lastProps - * @param {object} nextProps - * @param {ReactReconcileTransaction} transaction - * @param {object} context - */ - _updateDOMChildren: function (lastProps, nextProps, transaction, context) { - var lastContent = CONTENT_TYPES[typeof lastProps.children] ? lastProps.children : null; - var nextContent = CONTENT_TYPES[typeof nextProps.children] ? nextProps.children : null; - - var lastHtml = lastProps.dangerouslySetInnerHTML && lastProps.dangerouslySetInnerHTML.__html; - var nextHtml = nextProps.dangerouslySetInnerHTML && nextProps.dangerouslySetInnerHTML.__html; - - // Note the use of `!=` which checks for null or undefined. - var lastChildren = lastContent != null ? null : lastProps.children; - var nextChildren = nextContent != null ? null : nextProps.children; - - // If we're switching from children to content/html or vice versa, remove - // the old content - var lastHasContentOrHtml = lastContent != null || lastHtml != null; - var nextHasContentOrHtml = nextContent != null || nextHtml != null; - if (lastChildren != null && nextChildren == null) { - this.updateChildren(null, transaction, context); - } else if (lastHasContentOrHtml && !nextHasContentOrHtml) { - this.updateTextContent(''); - } - - if (nextContent != null) { - if (lastContent !== nextContent) { - this.updateTextContent('' + nextContent); - } - } else if (nextHtml != null) { - if (lastHtml !== nextHtml) { - this.updateMarkup('' + nextHtml); - } - } else if (nextChildren != null) { - this.updateChildren(nextChildren, transaction, context); - } - }, - - /** - * Destroys all event registrations for this instance. Does not remove from - * the DOM. That must be done by the parent. - * - * @internal - */ - unmountComponent: function () { - switch (this._tag) { - case 'iframe': - case 'img': - case 'form': - case 'video': - case 'audio': - var listeners = this._wrapperState.listeners; - if (listeners) { - for (var i = 0; i < listeners.length; i++) { - listeners[i].remove(); - } - } - break; - case 'input': - ReactDOMInput.unmountWrapper(this); - break; - case 'html': - case 'head': - case 'body': - /** - * Components like <html> <head> and <body> can't be removed or added - * easily in a cross-browser way, however it's valuable to be able to - * take advantage of React's reconciliation for styling and <title> - * management. So we just document it and throw in dangerous cases. - */ - !false ? "development" !== 'production' ? invariant(false, '<%s> tried to unmount. Because of cross-browser quirks it is ' + 'impossible to unmount some top-level components (eg <html>, ' + '<head>, and <body>) reliably and efficiently. To fix this, have a ' + 'single top-level component that never unmounts render these ' + 'elements.', this._tag) : invariant(false) : undefined; - break; - } - - this.unmountChildren(); - ReactBrowserEventEmitter.deleteAllListeners(this._rootNodeID); - ReactComponentBrowserEnvironment.unmountIDFromEnvironment(this._rootNodeID); - this._rootNodeID = null; - this._wrapperState = null; - if (this._nodeWithLegacyProperties) { - var node = this._nodeWithLegacyProperties; - node._reactInternalComponent = null; - this._nodeWithLegacyProperties = null; - } - }, - - getPublicInstance: function () { - if (!this._nodeWithLegacyProperties) { - var node = ReactMount.getNode(this._rootNodeID); - - node._reactInternalComponent = this; - node.getDOMNode = legacyGetDOMNode; - node.isMounted = legacyIsMounted; - node.setState = legacySetStateEtc; - node.replaceState = legacySetStateEtc; - node.forceUpdate = legacySetStateEtc; - node.setProps = legacySetProps; - node.replaceProps = legacyReplaceProps; - - if ("development" !== 'production') { - if (canDefineProperty) { - Object.defineProperties(node, legacyPropsDescriptor); - } else { - // updateComponent will update this property on subsequent renders - node.props = this._currentElement.props; - } - } else { - // updateComponent will update this property on subsequent renders - node.props = this._currentElement.props; - } - - this._nodeWithLegacyProperties = node; - } - return this._nodeWithLegacyProperties; - } - -}; - -ReactPerf.measureMethods(ReactDOMComponent, 'ReactDOMComponent', { - mountComponent: 'mountComponent', - updateComponent: 'updateComponent' -}); - -assign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin); - -module.exports = ReactDOMComponent; -},{"10":10,"106":106,"11":11,"118":118,"123":123,"124":124,"127":127,"143":143,"147":147,"15":15,"152":152,"154":154,"2":2,"23":23,"26":26,"31":31,"36":36,"41":41,"42":42,"43":43,"47":47,"5":5,"65":65,"66":66,"71":71,"82":82}],38:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactDOMFactories - * @typechecks static-only - */ - -'use strict'; - -var ReactElement = _dereq_(52); -var ReactElementValidator = _dereq_(53); - -var mapObject = _dereq_(148); - -/** - * Create a factory that creates HTML tag elements. - * - * @param {string} tag Tag name (e.g. `div`). - * @private - */ -function createDOMFactory(tag) { - if ("development" !== 'production') { - return ReactElementValidator.createFactory(tag); - } - return ReactElement.createFactory(tag); -} - -/** - * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes. - * This is also accessible via `React.DOM`. - * - * @public - */ -var ReactDOMFactories = mapObject({ - a: 'a', - abbr: 'abbr', - address: 'address', - area: 'area', - article: 'article', - aside: 'aside', - audio: 'audio', - b: 'b', - base: 'base', - bdi: 'bdi', - bdo: 'bdo', - big: 'big', - blockquote: 'blockquote', - body: 'body', - br: 'br', - button: 'button', - canvas: 'canvas', - caption: 'caption', - cite: 'cite', - code: 'code', - col: 'col', - colgroup: 'colgroup', - data: 'data', - datalist: 'datalist', - dd: 'dd', - del: 'del', - details: 'details', - dfn: 'dfn', - dialog: 'dialog', - div: 'div', - dl: 'dl', - dt: 'dt', - em: 'em', - embed: 'embed', - fieldset: 'fieldset', - figcaption: 'figcaption', - figure: 'figure', - footer: 'footer', - form: 'form', - h1: 'h1', - h2: 'h2', - h3: 'h3', - h4: 'h4', - h5: 'h5', - h6: 'h6', - head: 'head', - header: 'header', - hgroup: 'hgroup', - hr: 'hr', - html: 'html', - i: 'i', - iframe: 'iframe', - img: 'img', - input: 'input', - ins: 'ins', - kbd: 'kbd', - keygen: 'keygen', - label: 'label', - legend: 'legend', - li: 'li', - link: 'link', - main: 'main', - map: 'map', - mark: 'mark', - menu: 'menu', - menuitem: 'menuitem', - meta: 'meta', - meter: 'meter', - nav: 'nav', - noscript: 'noscript', - object: 'object', - ol: 'ol', - optgroup: 'optgroup', - option: 'option', - output: 'output', - p: 'p', - param: 'param', - picture: 'picture', - pre: 'pre', - progress: 'progress', - q: 'q', - rp: 'rp', - rt: 'rt', - ruby: 'ruby', - s: 's', - samp: 'samp', - script: 'script', - section: 'section', - select: 'select', - small: 'small', - source: 'source', - span: 'span', - strong: 'strong', - style: 'style', - sub: 'sub', - summary: 'summary', - sup: 'sup', - table: 'table', - tbody: 'tbody', - td: 'td', - textarea: 'textarea', - tfoot: 'tfoot', - th: 'th', - thead: 'thead', - time: 'time', - title: 'title', - tr: 'tr', - track: 'track', - u: 'u', - ul: 'ul', - 'var': 'var', - video: 'video', - wbr: 'wbr', - - // SVG - circle: 'circle', - clipPath: 'clipPath', - defs: 'defs', - ellipse: 'ellipse', - g: 'g', - image: 'image', - line: 'line', - linearGradient: 'linearGradient', - mask: 'mask', - path: 'path', - pattern: 'pattern', - polygon: 'polygon', - polyline: 'polyline', - radialGradient: 'radialGradient', - rect: 'rect', - stop: 'stop', - svg: 'svg', - text: 'text', - tspan: 'tspan' - -}, createDOMFactory); - -module.exports = ReactDOMFactories; -},{"148":148,"52":52,"53":53}],39:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactDOMFeatureFlags - */ - -'use strict'; - -var ReactDOMFeatureFlags = { - useCreateElement: false -}; - -module.exports = ReactDOMFeatureFlags; -},{}],40:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactDOMIDOperations - * @typechecks static-only - */ - -'use strict'; - -var DOMChildrenOperations = _dereq_(9); -var DOMPropertyOperations = _dereq_(11); -var ReactMount = _dereq_(65); -var ReactPerf = _dereq_(71); - -var invariant = _dereq_(143); - -/** - * Errors for properties that should not be updated with `updatePropertyByID()`. - * - * @type {object} - * @private - */ -var INVALID_PROPERTY_ERRORS = { - dangerouslySetInnerHTML: '`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.', - style: '`style` must be set using `updateStylesByID()`.' -}; - -/** - * Operations used to process updates to DOM nodes. - */ -var ReactDOMIDOperations = { - - /** - * Updates a DOM node with new property values. This should only be used to - * update DOM properties in `DOMProperty`. - * - * @param {string} id ID of the node to update. - * @param {string} name A valid property name, see `DOMProperty`. - * @param {*} value New value of the property. - * @internal - */ - updatePropertyByID: function (id, name, value) { - var node = ReactMount.getNode(id); - !!INVALID_PROPERTY_ERRORS.hasOwnProperty(name) ? "development" !== 'production' ? invariant(false, 'updatePropertyByID(...): %s', INVALID_PROPERTY_ERRORS[name]) : invariant(false) : undefined; - - // If we're updating to null or undefined, we should remove the property - // from the DOM node instead of inadvertantly setting to a string. This - // brings us in line with the same behavior we have on initial render. - if (value != null) { - DOMPropertyOperations.setValueForProperty(node, name, value); - } else { - DOMPropertyOperations.deleteValueForProperty(node, name); - } - }, - - /** - * Replaces a DOM node that exists in the document with markup. - * - * @param {string} id ID of child to be replaced. - * @param {string} markup Dangerous markup to inject in place of child. - * @internal - * @see {Danger.dangerouslyReplaceNodeWithMarkup} - */ - dangerouslyReplaceNodeWithMarkupByID: function (id, markup) { - var node = ReactMount.getNode(id); - DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup(node, markup); - }, - - /** - * Updates a component's children by processing a series of updates. - * - * @param {array<object>} updates List of update configurations. - * @param {array<string>} markup List of markup strings. - * @internal - */ - dangerouslyProcessChildrenUpdates: function (updates, markup) { - for (var i = 0; i < updates.length; i++) { - updates[i].parentNode = ReactMount.getNode(updates[i].parentID); - } - DOMChildrenOperations.processUpdates(updates, markup); - } -}; - -ReactPerf.measureMethods(ReactDOMIDOperations, 'ReactDOMIDOperations', { - dangerouslyReplaceNodeWithMarkupByID: 'dangerouslyReplaceNodeWithMarkupByID', - dangerouslyProcessChildrenUpdates: 'dangerouslyProcessChildrenUpdates' -}); - -module.exports = ReactDOMIDOperations; -},{"11":11,"143":143,"65":65,"71":71,"9":9}],41:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactDOMInput - */ - -'use strict'; - -var ReactDOMIDOperations = _dereq_(40); -var LinkedValueUtils = _dereq_(22); -var ReactMount = _dereq_(65); -var ReactUpdates = _dereq_(83); - -var assign = _dereq_(23); -var invariant = _dereq_(143); - -var instancesByReactID = {}; - -function forceUpdateIfMounted() { - if (this._rootNodeID) { - // DOM component is still mounted; update - ReactDOMInput.updateWrapper(this); - } -} - -/** - * Implements an <input> native component that allows setting these optional - * props: `checked`, `value`, `defaultChecked`, and `defaultValue`. - * - * If `checked` or `value` are not supplied (or null/undefined), user actions - * that affect the checked state or value will trigger updates to the element. - * - * If they are supplied (and not null/undefined), the rendered element will not - * trigger updates to the element. Instead, the props must change in order for - * the rendered element to be updated. - * - * The rendered element will be initialized as unchecked (or `defaultChecked`) - * with an empty value (or `defaultValue`). - * - * @see http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html - */ -var ReactDOMInput = { - getNativeProps: function (inst, props, context) { - var value = LinkedValueUtils.getValue(props); - var checked = LinkedValueUtils.getChecked(props); - - var nativeProps = assign({}, props, { - defaultChecked: undefined, - defaultValue: undefined, - value: value != null ? value : inst._wrapperState.initialValue, - checked: checked != null ? checked : inst._wrapperState.initialChecked, - onChange: inst._wrapperState.onChange - }); - - return nativeProps; - }, - - mountWrapper: function (inst, props) { - if ("development" !== 'production') { - LinkedValueUtils.checkPropTypes('input', props, inst._currentElement._owner); - } - - var defaultValue = props.defaultValue; - inst._wrapperState = { - initialChecked: props.defaultChecked || false, - initialValue: defaultValue != null ? defaultValue : null, - onChange: _handleChange.bind(inst) - }; - }, - - mountReadyWrapper: function (inst) { - // Can't be in mountWrapper or else server rendering leaks. - instancesByReactID[inst._rootNodeID] = inst; - }, - - unmountWrapper: function (inst) { - delete instancesByReactID[inst._rootNodeID]; - }, - - updateWrapper: function (inst) { - var props = inst._currentElement.props; - - // TODO: Shouldn't this be getChecked(props)? - var checked = props.checked; - if (checked != null) { - ReactDOMIDOperations.updatePropertyByID(inst._rootNodeID, 'checked', checked || false); - } - - var value = LinkedValueUtils.getValue(props); - if (value != null) { - // Cast `value` to a string to ensure the value is set correctly. While - // browsers typically do this as necessary, jsdom doesn't. - ReactDOMIDOperations.updatePropertyByID(inst._rootNodeID, 'value', '' + value); - } - } -}; - -function _handleChange(event) { - var props = this._currentElement.props; - - var returnValue = LinkedValueUtils.executeOnChange(props, event); - - // Here we use asap to wait until all updates have propagated, which - // is important when using controlled components within layers: - // https://github.com/facebook/react/issues/1698 - ReactUpdates.asap(forceUpdateIfMounted, this); - - var name = props.name; - if (props.type === 'radio' && name != null) { - var rootNode = ReactMount.getNode(this._rootNodeID); - var queryRoot = rootNode; - - while (queryRoot.parentNode) { - queryRoot = queryRoot.parentNode; - } - - // If `rootNode.form` was non-null, then we could try `form.elements`, - // but that sometimes behaves strangely in IE8. We could also try using - // `form.getElementsByName`, but that will only return direct children - // and won't include inputs that use the HTML5 `form=` attribute. Since - // the input might not even be in a form, let's just use the global - // `querySelectorAll` to ensure we don't miss anything. - var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type="radio"]'); - - for (var i = 0; i < group.length; i++) { - var otherNode = group[i]; - if (otherNode === rootNode || otherNode.form !== rootNode.form) { - continue; - } - // This will throw if radio buttons rendered by different copies of React - // and the same name are rendered into the same form (same as #1939). - // That's probably okay; we don't support it just as we don't support - // mixing React with non-React. - var otherID = ReactMount.getID(otherNode); - !otherID ? "development" !== 'production' ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the ' + 'same `name` is not supported.') : invariant(false) : undefined; - var otherInstance = instancesByReactID[otherID]; - !otherInstance ? "development" !== 'production' ? invariant(false, 'ReactDOMInput: Unknown radio button ID %s.', otherID) : invariant(false) : undefined; - // If this is a controlled radio button group, forcing the input that - // was previously checked to update will cause it to be come re-checked - // as appropriate. - ReactUpdates.asap(forceUpdateIfMounted, otherInstance); - } - } - - return returnValue; -} - -module.exports = ReactDOMInput; -},{"143":143,"22":22,"23":23,"40":40,"65":65,"83":83}],42:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactDOMOption - */ - -'use strict'; - -var ReactChildren = _dereq_(28); -var ReactDOMSelect = _dereq_(43); - -var assign = _dereq_(23); -var warning = _dereq_(154); - -var valueContextKey = ReactDOMSelect.valueContextKey; - -/** - * Implements an <option> native component that warns when `selected` is set. - */ -var ReactDOMOption = { - mountWrapper: function (inst, props, context) { - // TODO (yungsters): Remove support for `selected` in <option>. - if ("development" !== 'production') { - "development" !== 'production' ? warning(props.selected == null, 'Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.') : undefined; - } - - // Look up whether this option is 'selected' via context - var selectValue = context[valueContextKey]; - - // If context key is null (e.g., no specified value or after initial mount) - // or missing (e.g., for <datalist>), we don't change props.selected - var selected = null; - if (selectValue != null) { - selected = false; - if (Array.isArray(selectValue)) { - // multiple - for (var i = 0; i < selectValue.length; i++) { - if ('' + selectValue[i] === '' + props.value) { - selected = true; - break; - } - } - } else { - selected = '' + selectValue === '' + props.value; - } - } - - inst._wrapperState = { selected: selected }; - }, - - getNativeProps: function (inst, props, context) { - var nativeProps = assign({ selected: undefined, children: undefined }, props); - - // Read state only from initial mount because <select> updates value - // manually; we need the initial state only for server rendering - if (inst._wrapperState.selected != null) { - nativeProps.selected = inst._wrapperState.selected; - } - - var content = ''; - - // Flatten children and warn if they aren't strings or numbers; - // invalid types are ignored. - ReactChildren.forEach(props.children, function (child) { - if (child == null) { - return; - } - if (typeof child === 'string' || typeof child === 'number') { - content += child; - } else { - "development" !== 'production' ? warning(false, 'Only strings and numbers are supported as <option> children.') : undefined; - } - }); - - nativeProps.children = content; - return nativeProps; - } - -}; - -module.exports = ReactDOMOption; -},{"154":154,"23":23,"28":28,"43":43}],43:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactDOMSelect - */ - -'use strict'; - -var LinkedValueUtils = _dereq_(22); -var ReactMount = _dereq_(65); -var ReactUpdates = _dereq_(83); - -var assign = _dereq_(23); -var warning = _dereq_(154); - -var valueContextKey = '__ReactDOMSelect_value$' + Math.random().toString(36).slice(2); - -function updateOptionsIfPendingUpdateAndMounted() { - if (this._rootNodeID && this._wrapperState.pendingUpdate) { - this._wrapperState.pendingUpdate = false; - - var props = this._currentElement.props; - var value = LinkedValueUtils.getValue(props); - - if (value != null) { - updateOptions(this, props, value); - } - } -} - -function getDeclarationErrorAddendum(owner) { - if (owner) { - var name = owner.getName(); - if (name) { - return ' Check the render method of `' + name + '`.'; - } - } - return ''; -} - -var valuePropNames = ['value', 'defaultValue']; - -/** - * Validation function for `value` and `defaultValue`. - * @private - */ -function checkSelectPropTypes(inst, props) { - var owner = inst._currentElement._owner; - LinkedValueUtils.checkPropTypes('select', props, owner); - - for (var i = 0; i < valuePropNames.length; i++) { - var propName = valuePropNames[i]; - if (props[propName] == null) { - continue; - } - if (props.multiple) { - "development" !== 'production' ? warning(Array.isArray(props[propName]), 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : undefined; - } else { - "development" !== 'production' ? warning(!Array.isArray(props[propName]), 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : undefined; - } - } -} - -/** - * @param {ReactDOMComponent} inst - * @param {boolean} multiple - * @param {*} propValue A stringable (with `multiple`, a list of stringables). - * @private - */ -function updateOptions(inst, multiple, propValue) { - var selectedValue, i; - var options = ReactMount.getNode(inst._rootNodeID).options; - - if (multiple) { - selectedValue = {}; - for (i = 0; i < propValue.length; i++) { - selectedValue['' + propValue[i]] = true; - } - for (i = 0; i < options.length; i++) { - var selected = selectedValue.hasOwnProperty(options[i].value); - if (options[i].selected !== selected) { - options[i].selected = selected; - } - } - } else { - // Do not set `select.value` as exact behavior isn't consistent across all - // browsers for all cases. - selectedValue = '' + propValue; - for (i = 0; i < options.length; i++) { - if (options[i].value === selectedValue) { - options[i].selected = true; - return; - } - } - if (options.length) { - options[0].selected = true; - } - } -} - -/** - * Implements a <select> native component that allows optionally setting the - * props `value` and `defaultValue`. If `multiple` is false, the prop must be a - * stringable. If `multiple` is true, the prop must be an array of stringables. - * - * If `value` is not supplied (or null/undefined), user actions that change the - * selected option will trigger updates to the rendered options. - * - * If it is supplied (and not null/undefined), the rendered options will not - * update in response to user actions. Instead, the `value` prop must change in - * order for the rendered options to update. - * - * If `defaultValue` is provided, any options with the supplied values will be - * selected. - */ -var ReactDOMSelect = { - valueContextKey: valueContextKey, - - getNativeProps: function (inst, props, context) { - return assign({}, props, { - onChange: inst._wrapperState.onChange, - value: undefined - }); - }, - - mountWrapper: function (inst, props) { - if ("development" !== 'production') { - checkSelectPropTypes(inst, props); - } - - var value = LinkedValueUtils.getValue(props); - inst._wrapperState = { - pendingUpdate: false, - initialValue: value != null ? value : props.defaultValue, - onChange: _handleChange.bind(inst), - wasMultiple: Boolean(props.multiple) - }; - }, - - processChildContext: function (inst, props, context) { - // Pass down initial value so initial generated markup has correct - // `selected` attributes - var childContext = assign({}, context); - childContext[valueContextKey] = inst._wrapperState.initialValue; - return childContext; - }, - - postUpdateWrapper: function (inst) { - var props = inst._currentElement.props; - - // After the initial mount, we control selected-ness manually so don't pass - // the context value down - inst._wrapperState.initialValue = undefined; - - var wasMultiple = inst._wrapperState.wasMultiple; - inst._wrapperState.wasMultiple = Boolean(props.multiple); - - var value = LinkedValueUtils.getValue(props); - if (value != null) { - inst._wrapperState.pendingUpdate = false; - updateOptions(inst, Boolean(props.multiple), value); - } else if (wasMultiple !== Boolean(props.multiple)) { - // For simplicity, reapply `defaultValue` if `multiple` is toggled. - if (props.defaultValue != null) { - updateOptions(inst, Boolean(props.multiple), props.defaultValue); - } else { - // Revert the select back to its default unselected state. - updateOptions(inst, Boolean(props.multiple), props.multiple ? [] : ''); - } - } - } -}; - -function _handleChange(event) { - var props = this._currentElement.props; - var returnValue = LinkedValueUtils.executeOnChange(props, event); - - this._wrapperState.pendingUpdate = true; - ReactUpdates.asap(updateOptionsIfPendingUpdateAndMounted, this); - return returnValue; -} - -module.exports = ReactDOMSelect; -},{"154":154,"22":22,"23":23,"65":65,"83":83}],44:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactDOMSelection - */ - -'use strict'; - -var ExecutionEnvironment = _dereq_(129); - -var getNodeForCharacterOffset = _dereq_(115); -var getTextContentAccessor = _dereq_(116); - -/** - * While `isCollapsed` is available on the Selection object and `collapsed` - * is available on the Range object, IE11 sometimes gets them wrong. - * If the anchor/focus nodes and offsets are the same, the range is collapsed. - */ -function isCollapsed(anchorNode, anchorOffset, focusNode, focusOffset) { - return anchorNode === focusNode && anchorOffset === focusOffset; -} - -/** - * Get the appropriate anchor and focus node/offset pairs for IE. - * - * The catch here is that IE's selection API doesn't provide information - * about whether the selection is forward or backward, so we have to - * behave as though it's always forward. - * - * IE text differs from modern selection in that it behaves as though - * block elements end with a new line. This means character offsets will - * differ between the two APIs. - * - * @param {DOMElement} node - * @return {object} - */ -function getIEOffsets(node) { - var selection = document.selection; - var selectedRange = selection.createRange(); - var selectedLength = selectedRange.text.length; - - // Duplicate selection so we can move range without breaking user selection. - var fromStart = selectedRange.duplicate(); - fromStart.moveToElementText(node); - fromStart.setEndPoint('EndToStart', selectedRange); - - var startOffset = fromStart.text.length; - var endOffset = startOffset + selectedLength; - - return { - start: startOffset, - end: endOffset - }; -} - -/** - * @param {DOMElement} node - * @return {?object} - */ -function getModernOffsets(node) { - var selection = window.getSelection && window.getSelection(); - - if (!selection || selection.rangeCount === 0) { - return null; - } - - var anchorNode = selection.anchorNode; - var anchorOffset = selection.anchorOffset; - var focusNode = selection.focusNode; - var focusOffset = selection.focusOffset; - - var currentRange = selection.getRangeAt(0); - - // In Firefox, range.startContainer and range.endContainer can be "anonymous - // divs", e.g. the up/down buttons on an <input type="number">. Anonymous - // divs do not seem to expose properties, triggering a "Permission denied - // error" if any of its properties are accessed. The only seemingly possible - // way to avoid erroring is to access a property that typically works for - // non-anonymous divs and catch any error that may otherwise arise. See - // https://bugzilla.mozilla.org/show_bug.cgi?id=208427 - try { - /* eslint-disable no-unused-expressions */ - currentRange.startContainer.nodeType; - currentRange.endContainer.nodeType; - /* eslint-enable no-unused-expressions */ - } catch (e) { - return null; - } - - // If the node and offset values are the same, the selection is collapsed. - // `Selection.isCollapsed` is available natively, but IE sometimes gets - // this value wrong. - var isSelectionCollapsed = isCollapsed(selection.anchorNode, selection.anchorOffset, selection.focusNode, selection.focusOffset); - - var rangeLength = isSelectionCollapsed ? 0 : currentRange.toString().length; - - var tempRange = currentRange.cloneRange(); - tempRange.selectNodeContents(node); - tempRange.setEnd(currentRange.startContainer, currentRange.startOffset); - - var isTempRangeCollapsed = isCollapsed(tempRange.startContainer, tempRange.startOffset, tempRange.endContainer, tempRange.endOffset); - - var start = isTempRangeCollapsed ? 0 : tempRange.toString().length; - var end = start + rangeLength; - - // Detect whether the selection is backward. - var detectionRange = document.createRange(); - detectionRange.setStart(anchorNode, anchorOffset); - detectionRange.setEnd(focusNode, focusOffset); - var isBackward = detectionRange.collapsed; - - return { - start: isBackward ? end : start, - end: isBackward ? start : end - }; -} - -/** - * @param {DOMElement|DOMTextNode} node - * @param {object} offsets - */ -function setIEOffsets(node, offsets) { - var range = document.selection.createRange().duplicate(); - var start, end; - - if (typeof offsets.end === 'undefined') { - start = offsets.start; - end = start; - } else if (offsets.start > offsets.end) { - start = offsets.end; - end = offsets.start; - } else { - start = offsets.start; - end = offsets.end; - } - - range.moveToElementText(node); - range.moveStart('character', start); - range.setEndPoint('EndToStart', range); - range.moveEnd('character', end - start); - range.select(); -} - -/** - * In modern non-IE browsers, we can support both forward and backward - * selections. - * - * Note: IE10+ supports the Selection object, but it does not support - * the `extend` method, which means that even in modern IE, it's not possible - * to programatically create a backward selection. Thus, for all IE - * versions, we use the old IE API to create our selections. - * - * @param {DOMElement|DOMTextNode} node - * @param {object} offsets - */ -function setModernOffsets(node, offsets) { - if (!window.getSelection) { - return; - } - - var selection = window.getSelection(); - var length = node[getTextContentAccessor()].length; - var start = Math.min(offsets.start, length); - var end = typeof offsets.end === 'undefined' ? start : Math.min(offsets.end, length); - - // IE 11 uses modern selection, but doesn't support the extend method. - // Flip backward selections, so we can set with a single range. - if (!selection.extend && start > end) { - var temp = end; - end = start; - start = temp; - } - - var startMarker = getNodeForCharacterOffset(node, start); - var endMarker = getNodeForCharacterOffset(node, end); - - if (startMarker && endMarker) { - var range = document.createRange(); - range.setStart(startMarker.node, startMarker.offset); - selection.removeAllRanges(); - - if (start > end) { - selection.addRange(range); - selection.extend(endMarker.node, endMarker.offset); - } else { - range.setEnd(endMarker.node, endMarker.offset); - selection.addRange(range); - } - } -} - -var useIEOffsets = ExecutionEnvironment.canUseDOM && 'selection' in document && !('getSelection' in window); - -var ReactDOMSelection = { - /** - * @param {DOMElement} node - */ - getOffsets: useIEOffsets ? getIEOffsets : getModernOffsets, - - /** - * @param {DOMElement|DOMTextNode} node - * @param {object} offsets - */ - setOffsets: useIEOffsets ? setIEOffsets : setModernOffsets -}; - -module.exports = ReactDOMSelection; -},{"115":115,"116":116,"129":129}],45:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactDOMServer - */ - -'use strict'; - -var ReactDefaultInjection = _dereq_(49); -var ReactServerRendering = _dereq_(80); -var ReactVersion = _dereq_(84); - -ReactDefaultInjection.inject(); - -var ReactDOMServer = { - renderToString: ReactServerRendering.renderToString, - renderToStaticMarkup: ReactServerRendering.renderToStaticMarkup, - version: ReactVersion -}; - -module.exports = ReactDOMServer; -},{"49":49,"80":80,"84":84}],46:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactDOMTextComponent - * @typechecks static-only - */ - -'use strict'; - -var DOMChildrenOperations = _dereq_(9); -var DOMPropertyOperations = _dereq_(11); -var ReactComponentBrowserEnvironment = _dereq_(31); -var ReactMount = _dereq_(65); - -var assign = _dereq_(23); -var escapeTextContentForBrowser = _dereq_(106); -var setTextContent = _dereq_(124); -var validateDOMNesting = _dereq_(127); - -/** - * Text nodes violate a couple assumptions that React makes about components: - * - * - When mounting text into the DOM, adjacent text nodes are merged. - * - Text nodes cannot be assigned a React root ID. - * - * This component is used to wrap strings in elements so that they can undergo - * the same reconciliation that is applied to elements. - * - * TODO: Investigate representing React components in the DOM with text nodes. - * - * @class ReactDOMTextComponent - * @extends ReactComponent - * @internal - */ -var ReactDOMTextComponent = function (props) { - // This constructor and its argument is currently used by mocks. -}; - -assign(ReactDOMTextComponent.prototype, { - - /** - * @param {ReactText} text - * @internal - */ - construct: function (text) { - // TODO: This is really a ReactText (ReactNode), not a ReactElement - this._currentElement = text; - this._stringText = '' + text; - - // Properties - this._rootNodeID = null; - this._mountIndex = 0; - }, - - /** - * Creates the markup for this text node. This node is not intended to have - * any features besides containing text content. - * - * @param {string} rootID DOM ID of the root node. - * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction - * @return {string} Markup for this text node. - * @internal - */ - mountComponent: function (rootID, transaction, context) { - if ("development" !== 'production') { - if (context[validateDOMNesting.ancestorInfoContextKey]) { - validateDOMNesting('span', null, context[validateDOMNesting.ancestorInfoContextKey]); - } - } - - this._rootNodeID = rootID; - if (transaction.useCreateElement) { - var ownerDocument = context[ReactMount.ownerDocumentContextKey]; - var el = ownerDocument.createElement('span'); - DOMPropertyOperations.setAttributeForID(el, rootID); - // Populate node cache - ReactMount.getID(el); - setTextContent(el, this._stringText); - return el; - } else { - var escapedText = escapeTextContentForBrowser(this._stringText); - - if (transaction.renderToStaticMarkup) { - // Normally we'd wrap this in a `span` for the reasons stated above, but - // since this is a situation where React won't take over (static pages), - // we can simply return the text as it is. - return escapedText; - } - - return '<span ' + DOMPropertyOperations.createMarkupForID(rootID) + '>' + escapedText + '</span>'; - } - }, - - /** - * Updates this component by updating the text content. - * - * @param {ReactText} nextText The next text content - * @param {ReactReconcileTransaction} transaction - * @internal - */ - receiveComponent: function (nextText, transaction) { - if (nextText !== this._currentElement) { - this._currentElement = nextText; - var nextStringText = '' + nextText; - if (nextStringText !== this._stringText) { - // TODO: Save this as pending props and use performUpdateIfNecessary - // and/or updateComponent to do the actual update for consistency with - // other component types? - this._stringText = nextStringText; - var node = ReactMount.getNode(this._rootNodeID); - DOMChildrenOperations.updateTextContent(node, nextStringText); - } - } - }, - - unmountComponent: function () { - ReactComponentBrowserEnvironment.unmountIDFromEnvironment(this._rootNodeID); - } - -}); - -module.exports = ReactDOMTextComponent; -},{"106":106,"11":11,"124":124,"127":127,"23":23,"31":31,"65":65,"9":9}],47:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactDOMTextarea - */ - -'use strict'; - -var LinkedValueUtils = _dereq_(22); -var ReactDOMIDOperations = _dereq_(40); -var ReactUpdates = _dereq_(83); - -var assign = _dereq_(23); -var invariant = _dereq_(143); -var warning = _dereq_(154); - -function forceUpdateIfMounted() { - if (this._rootNodeID) { - // DOM component is still mounted; update - ReactDOMTextarea.updateWrapper(this); - } -} - -/** - * Implements a <textarea> native component that allows setting `value`, and - * `defaultValue`. This differs from the traditional DOM API because value is - * usually set as PCDATA children. - * - * If `value` is not supplied (or null/undefined), user actions that affect the - * value will trigger updates to the element. - * - * If `value` is supplied (and not null/undefined), the rendered element will - * not trigger updates to the element. Instead, the `value` prop must change in - * order for the rendered element to be updated. - * - * The rendered element will be initialized with an empty value, the prop - * `defaultValue` if specified, or the children content (deprecated). - */ -var ReactDOMTextarea = { - getNativeProps: function (inst, props, context) { - !(props.dangerouslySetInnerHTML == null) ? "development" !== 'production' ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : invariant(false) : undefined; - - // Always set children to the same thing. In IE9, the selection range will - // get reset if `textContent` is mutated. - var nativeProps = assign({}, props, { - defaultValue: undefined, - value: undefined, - children: inst._wrapperState.initialValue, - onChange: inst._wrapperState.onChange - }); - - return nativeProps; - }, - - mountWrapper: function (inst, props) { - if ("development" !== 'production') { - LinkedValueUtils.checkPropTypes('textarea', props, inst._currentElement._owner); - } - - var defaultValue = props.defaultValue; - // TODO (yungsters): Remove support for children content in <textarea>. - var children = props.children; - if (children != null) { - if ("development" !== 'production') { - "development" !== 'production' ? warning(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.') : undefined; - } - !(defaultValue == null) ? "development" !== 'production' ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : invariant(false) : undefined; - if (Array.isArray(children)) { - !(children.length <= 1) ? "development" !== 'production' ? invariant(false, '<textarea> can only have at most one child.') : invariant(false) : undefined; - children = children[0]; - } - - defaultValue = '' + children; - } - if (defaultValue == null) { - defaultValue = ''; - } - var value = LinkedValueUtils.getValue(props); - - inst._wrapperState = { - // We save the initial value so that `ReactDOMComponent` doesn't update - // `textContent` (unnecessary since we update value). - // The initial value can be a boolean or object so that's why it's - // forced to be a string. - initialValue: '' + (value != null ? value : defaultValue), - onChange: _handleChange.bind(inst) - }; - }, - - updateWrapper: function (inst) { - var props = inst._currentElement.props; - var value = LinkedValueUtils.getValue(props); - if (value != null) { - // Cast `value` to a string to ensure the value is set correctly. While - // browsers typically do this as necessary, jsdom doesn't. - ReactDOMIDOperations.updatePropertyByID(inst._rootNodeID, 'value', '' + value); - } - } -}; - -function _handleChange(event) { - var props = this._currentElement.props; - var returnValue = LinkedValueUtils.executeOnChange(props, event); - ReactUpdates.asap(forceUpdateIfMounted, this); - return returnValue; -} - -module.exports = ReactDOMTextarea; -},{"143":143,"154":154,"22":22,"23":23,"40":40,"83":83}],48:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactDefaultBatchingStrategy - */ - -'use strict'; - -var ReactUpdates = _dereq_(83); -var Transaction = _dereq_(100); - -var assign = _dereq_(23); -var emptyFunction = _dereq_(135); - -var RESET_BATCHED_UPDATES = { - initialize: emptyFunction, - close: function () { - ReactDefaultBatchingStrategy.isBatchingUpdates = false; - } -}; - -var FLUSH_BATCHED_UPDATES = { - initialize: emptyFunction, - close: ReactUpdates.flushBatchedUpdates.bind(ReactUpdates) -}; - -var TRANSACTION_WRAPPERS = [FLUSH_BATCHED_UPDATES, RESET_BATCHED_UPDATES]; - -function ReactDefaultBatchingStrategyTransaction() { - this.reinitializeTransaction(); -} - -assign(ReactDefaultBatchingStrategyTransaction.prototype, Transaction.Mixin, { - getTransactionWrappers: function () { - return TRANSACTION_WRAPPERS; - } -}); - -var transaction = new ReactDefaultBatchingStrategyTransaction(); - -var ReactDefaultBatchingStrategy = { - isBatchingUpdates: false, - - /** - * Call the provided function in a context within which calls to `setState` - * and friends are batched such that components aren't updated unnecessarily. - */ - batchedUpdates: function (callback, a, b, c, d, e) { - var alreadyBatchingUpdates = ReactDefaultBatchingStrategy.isBatchingUpdates; - - ReactDefaultBatchingStrategy.isBatchingUpdates = true; - - // The code is written this way to avoid extra allocations - if (alreadyBatchingUpdates) { - callback(a, b, c, d, e); - } else { - transaction.perform(callback, null, a, b, c, d, e); - } - } -}; - -module.exports = ReactDefaultBatchingStrategy; -},{"100":100,"135":135,"23":23,"83":83}],49:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactDefaultInjection - */ - -'use strict'; - -var BeforeInputEventPlugin = _dereq_(3); -var ChangeEventPlugin = _dereq_(7); -var ClientReactRootIndex = _dereq_(8); -var DefaultEventPluginOrder = _dereq_(13); -var EnterLeaveEventPlugin = _dereq_(14); -var ExecutionEnvironment = _dereq_(129); -var HTMLDOMPropertyConfig = _dereq_(21); -var ReactBrowserComponentMixin = _dereq_(25); -var ReactComponentBrowserEnvironment = _dereq_(31); -var ReactDefaultBatchingStrategy = _dereq_(48); -var ReactDOMComponent = _dereq_(37); -var ReactDOMTextComponent = _dereq_(46); -var ReactEventListener = _dereq_(58); -var ReactInjection = _dereq_(59); -var ReactInstanceHandles = _dereq_(61); -var ReactMount = _dereq_(65); -var ReactReconcileTransaction = _dereq_(75); -var SelectEventPlugin = _dereq_(86); -var ServerReactRootIndex = _dereq_(87); -var SimpleEventPlugin = _dereq_(88); -var SVGDOMPropertyConfig = _dereq_(85); - -var alreadyInjected = false; - -function inject() { - if (alreadyInjected) { - // TODO: This is currently true because these injections are shared between - // the client and the server package. They should be built independently - // and not share any injection state. Then this problem will be solved. - return; - } - alreadyInjected = true; - - ReactInjection.EventEmitter.injectReactEventListener(ReactEventListener); - - /** - * Inject modules for resolving DOM hierarchy and plugin ordering. - */ - ReactInjection.EventPluginHub.injectEventPluginOrder(DefaultEventPluginOrder); - ReactInjection.EventPluginHub.injectInstanceHandle(ReactInstanceHandles); - ReactInjection.EventPluginHub.injectMount(ReactMount); - - /** - * Some important event plugins included by default (without having to require - * them). - */ - ReactInjection.EventPluginHub.injectEventPluginsByName({ - SimpleEventPlugin: SimpleEventPlugin, - EnterLeaveEventPlugin: EnterLeaveEventPlugin, - ChangeEventPlugin: ChangeEventPlugin, - SelectEventPlugin: SelectEventPlugin, - BeforeInputEventPlugin: BeforeInputEventPlugin - }); - - ReactInjection.NativeComponent.injectGenericComponentClass(ReactDOMComponent); - - ReactInjection.NativeComponent.injectTextComponentClass(ReactDOMTextComponent); - - ReactInjection.Class.injectMixin(ReactBrowserComponentMixin); - - ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig); - ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig); - - ReactInjection.EmptyComponent.injectEmptyComponent('noscript'); - - ReactInjection.Updates.injectReconcileTransaction(ReactReconcileTransaction); - ReactInjection.Updates.injectBatchingStrategy(ReactDefaultBatchingStrategy); - - ReactInjection.RootIndex.injectCreateReactRootIndex(ExecutionEnvironment.canUseDOM ? ClientReactRootIndex.createReactRootIndex : ServerReactRootIndex.createReactRootIndex); - - ReactInjection.Component.injectEnvironment(ReactComponentBrowserEnvironment); - - if ("development" !== 'production') { - var url = ExecutionEnvironment.canUseDOM && window.location.href || ''; - if (/[?&]react_perf\b/.test(url)) { - var ReactDefaultPerf = _dereq_(50); - ReactDefaultPerf.start(); - } - } -} - -module.exports = { - inject: inject -}; -},{"129":129,"13":13,"14":14,"21":21,"25":25,"3":3,"31":31,"37":37,"46":46,"48":48,"50":50,"58":58,"59":59,"61":61,"65":65,"7":7,"75":75,"8":8,"85":85,"86":86,"87":87,"88":88}],50:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactDefaultPerf - * @typechecks static-only - */ - -'use strict'; - -var DOMProperty = _dereq_(10); -var ReactDefaultPerfAnalysis = _dereq_(51); -var ReactMount = _dereq_(65); -var ReactPerf = _dereq_(71); - -var performanceNow = _dereq_(151); - -function roundFloat(val) { - return Math.floor(val * 100) / 100; -} - -function addValue(obj, key, val) { - obj[key] = (obj[key] || 0) + val; -} - -var ReactDefaultPerf = { - _allMeasurements: [], // last item in the list is the current one - _mountStack: [0], - _injected: false, - - start: function () { - if (!ReactDefaultPerf._injected) { - ReactPerf.injection.injectMeasure(ReactDefaultPerf.measure); - } - - ReactDefaultPerf._allMeasurements.length = 0; - ReactPerf.enableMeasure = true; - }, - - stop: function () { - ReactPerf.enableMeasure = false; - }, - - getLastMeasurements: function () { - return ReactDefaultPerf._allMeasurements; - }, - - printExclusive: function (measurements) { - measurements = measurements || ReactDefaultPerf._allMeasurements; - var summary = ReactDefaultPerfAnalysis.getExclusiveSummary(measurements); - console.table(summary.map(function (item) { - return { - 'Component class name': item.componentName, - 'Total inclusive time (ms)': roundFloat(item.inclusive), - 'Exclusive mount time (ms)': roundFloat(item.exclusive), - 'Exclusive render time (ms)': roundFloat(item.render), - 'Mount time per instance (ms)': roundFloat(item.exclusive / item.count), - 'Render time per instance (ms)': roundFloat(item.render / item.count), - 'Instances': item.count - }; - })); - // TODO: ReactDefaultPerfAnalysis.getTotalTime() does not return the correct - // number. - }, - - printInclusive: function (measurements) { - measurements = measurements || ReactDefaultPerf._allMeasurements; - var summary = ReactDefaultPerfAnalysis.getInclusiveSummary(measurements); - console.table(summary.map(function (item) { - return { - 'Owner > component': item.componentName, - 'Inclusive time (ms)': roundFloat(item.time), - 'Instances': item.count - }; - })); - console.log('Total time:', ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms'); - }, - - getMeasurementsSummaryMap: function (measurements) { - var summary = ReactDefaultPerfAnalysis.getInclusiveSummary(measurements, true); - return summary.map(function (item) { - return { - 'Owner > component': item.componentName, - 'Wasted time (ms)': item.time, - 'Instances': item.count - }; - }); - }, - - printWasted: function (measurements) { - measurements = measurements || ReactDefaultPerf._allMeasurements; - console.table(ReactDefaultPerf.getMeasurementsSummaryMap(measurements)); - console.log('Total time:', ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms'); - }, - - printDOM: function (measurements) { - measurements = measurements || ReactDefaultPerf._allMeasurements; - var summary = ReactDefaultPerfAnalysis.getDOMSummary(measurements); - console.table(summary.map(function (item) { - var result = {}; - result[DOMProperty.ID_ATTRIBUTE_NAME] = item.id; - result.type = item.type; - result.args = JSON.stringify(item.args); - return result; - })); - console.log('Total time:', ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms'); - }, - - _recordWrite: function (id, fnName, totalTime, args) { - // TODO: totalTime isn't that useful since it doesn't count paints/reflows - var writes = ReactDefaultPerf._allMeasurements[ReactDefaultPerf._allMeasurements.length - 1].writes; - writes[id] = writes[id] || []; - writes[id].push({ - type: fnName, - time: totalTime, - args: args - }); - }, - - measure: function (moduleName, fnName, func) { - return function () { - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - var totalTime; - var rv; - var start; - - if (fnName === '_renderNewRootComponent' || fnName === 'flushBatchedUpdates') { - // A "measurement" is a set of metrics recorded for each flush. We want - // to group the metrics for a given flush together so we can look at the - // components that rendered and the DOM operations that actually - // happened to determine the amount of "wasted work" performed. - ReactDefaultPerf._allMeasurements.push({ - exclusive: {}, - inclusive: {}, - render: {}, - counts: {}, - writes: {}, - displayNames: {}, - totalTime: 0, - created: {} - }); - start = performanceNow(); - rv = func.apply(this, args); - ReactDefaultPerf._allMeasurements[ReactDefaultPerf._allMeasurements.length - 1].totalTime = performanceNow() - start; - return rv; - } else if (fnName === '_mountImageIntoNode' || moduleName === 'ReactBrowserEventEmitter' || moduleName === 'ReactDOMIDOperations' || moduleName === 'CSSPropertyOperations' || moduleName === 'DOMChildrenOperations' || moduleName === 'DOMPropertyOperations') { - start = performanceNow(); - rv = func.apply(this, args); - totalTime = performanceNow() - start; - - if (fnName === '_mountImageIntoNode') { - var mountID = ReactMount.getID(args[1]); - ReactDefaultPerf._recordWrite(mountID, fnName, totalTime, args[0]); - } else if (fnName === 'dangerouslyProcessChildrenUpdates') { - // special format - args[0].forEach(function (update) { - var writeArgs = {}; - if (update.fromIndex !== null) { - writeArgs.fromIndex = update.fromIndex; - } - if (update.toIndex !== null) { - writeArgs.toIndex = update.toIndex; - } - if (update.textContent !== null) { - writeArgs.textContent = update.textContent; - } - if (update.markupIndex !== null) { - writeArgs.markup = args[1][update.markupIndex]; - } - ReactDefaultPerf._recordWrite(update.parentID, update.type, totalTime, writeArgs); - }); - } else { - // basic format - var id = args[0]; - if (typeof id === 'object') { - id = ReactMount.getID(args[0]); - } - ReactDefaultPerf._recordWrite(id, fnName, totalTime, Array.prototype.slice.call(args, 1)); - } - return rv; - } else if (moduleName === 'ReactCompositeComponent' && (fnName === 'mountComponent' || fnName === 'updateComponent' || // TODO: receiveComponent()? - fnName === '_renderValidatedComponent')) { - - if (this._currentElement.type === ReactMount.TopLevelWrapper) { - return func.apply(this, args); - } - - var rootNodeID = fnName === 'mountComponent' ? args[0] : this._rootNodeID; - var isRender = fnName === '_renderValidatedComponent'; - var isMount = fnName === 'mountComponent'; - - var mountStack = ReactDefaultPerf._mountStack; - var entry = ReactDefaultPerf._allMeasurements[ReactDefaultPerf._allMeasurements.length - 1]; - - if (isRender) { - addValue(entry.counts, rootNodeID, 1); - } else if (isMount) { - entry.created[rootNodeID] = true; - mountStack.push(0); - } - - start = performanceNow(); - rv = func.apply(this, args); - totalTime = performanceNow() - start; - - if (isRender) { - addValue(entry.render, rootNodeID, totalTime); - } else if (isMount) { - var subMountTime = mountStack.pop(); - mountStack[mountStack.length - 1] += totalTime; - addValue(entry.exclusive, rootNodeID, totalTime - subMountTime); - addValue(entry.inclusive, rootNodeID, totalTime); - } else { - addValue(entry.inclusive, rootNodeID, totalTime); - } - - entry.displayNames[rootNodeID] = { - current: this.getName(), - owner: this._currentElement._owner ? this._currentElement._owner.getName() : '<root>' - }; - - return rv; - } else { - return func.apply(this, args); - } - }; - } -}; - -module.exports = ReactDefaultPerf; -},{"10":10,"151":151,"51":51,"65":65,"71":71}],51:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactDefaultPerfAnalysis - */ - -'use strict'; - -var assign = _dereq_(23); - -// Don't try to save users less than 1.2ms (a number I made up) -var DONT_CARE_THRESHOLD = 1.2; -var DOM_OPERATION_TYPES = { - '_mountImageIntoNode': 'set innerHTML', - INSERT_MARKUP: 'set innerHTML', - MOVE_EXISTING: 'move', - REMOVE_NODE: 'remove', - SET_MARKUP: 'set innerHTML', - TEXT_CONTENT: 'set textContent', - 'setValueForProperty': 'update attribute', - 'setValueForAttribute': 'update attribute', - 'deleteValueForProperty': 'remove attribute', - 'dangerouslyReplaceNodeWithMarkupByID': 'replace' -}; - -function getTotalTime(measurements) { - // TODO: return number of DOM ops? could be misleading. - // TODO: measure dropped frames after reconcile? - // TODO: log total time of each reconcile and the top-level component - // class that triggered it. - var totalTime = 0; - for (var i = 0; i < measurements.length; i++) { - var measurement = measurements[i]; - totalTime += measurement.totalTime; - } - return totalTime; -} - -function getDOMSummary(measurements) { - var items = []; - measurements.forEach(function (measurement) { - Object.keys(measurement.writes).forEach(function (id) { - measurement.writes[id].forEach(function (write) { - items.push({ - id: id, - type: DOM_OPERATION_TYPES[write.type] || write.type, - args: write.args - }); - }); - }); - }); - return items; -} - -function getExclusiveSummary(measurements) { - var candidates = {}; - var displayName; - - for (var i = 0; i < measurements.length; i++) { - var measurement = measurements[i]; - var allIDs = assign({}, measurement.exclusive, measurement.inclusive); - - for (var id in allIDs) { - displayName = measurement.displayNames[id].current; - - candidates[displayName] = candidates[displayName] || { - componentName: displayName, - inclusive: 0, - exclusive: 0, - render: 0, - count: 0 - }; - if (measurement.render[id]) { - candidates[displayName].render += measurement.render[id]; - } - if (measurement.exclusive[id]) { - candidates[displayName].exclusive += measurement.exclusive[id]; - } - if (measurement.inclusive[id]) { - candidates[displayName].inclusive += measurement.inclusive[id]; - } - if (measurement.counts[id]) { - candidates[displayName].count += measurement.counts[id]; - } - } - } - - // Now make a sorted array with the results. - var arr = []; - for (displayName in candidates) { - if (candidates[displayName].exclusive >= DONT_CARE_THRESHOLD) { - arr.push(candidates[displayName]); - } - } - - arr.sort(function (a, b) { - return b.exclusive - a.exclusive; - }); - - return arr; -} - -function getInclusiveSummary(measurements, onlyClean) { - var candidates = {}; - var inclusiveKey; - - for (var i = 0; i < measurements.length; i++) { - var measurement = measurements[i]; - var allIDs = assign({}, measurement.exclusive, measurement.inclusive); - var cleanComponents; - - if (onlyClean) { - cleanComponents = getUnchangedComponents(measurement); - } - - for (var id in allIDs) { - if (onlyClean && !cleanComponents[id]) { - continue; - } - - var displayName = measurement.displayNames[id]; - - // Inclusive time is not useful for many components without knowing where - // they are instantiated. So we aggregate inclusive time with both the - // owner and current displayName as the key. - inclusiveKey = displayName.owner + ' > ' + displayName.current; - - candidates[inclusiveKey] = candidates[inclusiveKey] || { - componentName: inclusiveKey, - time: 0, - count: 0 - }; - - if (measurement.inclusive[id]) { - candidates[inclusiveKey].time += measurement.inclusive[id]; - } - if (measurement.counts[id]) { - candidates[inclusiveKey].count += measurement.counts[id]; - } - } - } - - // Now make a sorted array with the results. - var arr = []; - for (inclusiveKey in candidates) { - if (candidates[inclusiveKey].time >= DONT_CARE_THRESHOLD) { - arr.push(candidates[inclusiveKey]); - } - } - - arr.sort(function (a, b) { - return b.time - a.time; - }); - - return arr; -} - -function getUnchangedComponents(measurement) { - // For a given reconcile, look at which components did not actually - // render anything to the DOM and return a mapping of their ID to - // the amount of time it took to render the entire subtree. - var cleanComponents = {}; - var dirtyLeafIDs = Object.keys(measurement.writes); - var allIDs = assign({}, measurement.exclusive, measurement.inclusive); - - for (var id in allIDs) { - var isDirty = false; - // For each component that rendered, see if a component that triggered - // a DOM op is in its subtree. - for (var i = 0; i < dirtyLeafIDs.length; i++) { - if (dirtyLeafIDs[i].indexOf(id) === 0) { - isDirty = true; - break; - } - } - // check if component newly created - if (measurement.created[id]) { - isDirty = true; - } - if (!isDirty && measurement.counts[id] > 0) { - cleanComponents[id] = true; - } - } - return cleanComponents; -} - -var ReactDefaultPerfAnalysis = { - getExclusiveSummary: getExclusiveSummary, - getInclusiveSummary: getInclusiveSummary, - getDOMSummary: getDOMSummary, - getTotalTime: getTotalTime -}; - -module.exports = ReactDefaultPerfAnalysis; -},{"23":23}],52:[function(_dereq_,module,exports){ -/** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactElement - */ - -'use strict'; - -var ReactCurrentOwner = _dereq_(34); - -var assign = _dereq_(23); - -// The Symbol used to tag the ReactElement type. If there is no native Symbol -// nor polyfill, then a plain number is used for performance. -var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7; - -var RESERVED_PROPS = { - key: true, - ref: true, - __self: true, - __source: true -}; - -var canDefineProperty = false; -if ("development" !== 'production') { - try { - Object.defineProperty({}, 'x', {}); - canDefineProperty = true; - } catch (x) { - // IE will fail on defineProperty - } -} - -/** - * Base constructor for all React elements. This is only used to make this - * work with a dynamic instanceof check. Nothing should live on this prototype. - * - * @param {*} type - * @param {*} key - * @param {string|object} ref - * @param {*} self A *temporary* helper to detect places where `this` is - * different from the `owner` when React.createElement is called, so that we - * can warn. We want to get rid of owner and replace string `ref`s with arrow - * functions, and as long as `this` and owner are the same, there will be no - * change in behavior. - * @param {*} source An annotation object (added by a transpiler or otherwise) - * indicating filename, line number, and/or other information. - * @param {*} owner - * @param {*} props - * @internal - */ -var ReactElement = function (type, key, ref, self, source, owner, props) { - var element = { - // This tag allow us to uniquely identify this as a React Element - $$typeof: REACT_ELEMENT_TYPE, - - // Built-in properties that belong on the element - type: type, - key: key, - ref: ref, - props: props, - - // Record the component responsible for creating this element. - _owner: owner - }; - - if ("development" !== 'production') { - // The validation flag is currently mutative. We put it on - // an external backing store so that we can freeze the whole object. - // This can be replaced with a WeakMap once they are implemented in - // commonly used development environments. - element._store = {}; - - // To make comparing ReactElements easier for testing purposes, we make - // the validation flag non-enumerable (where possible, which should - // include every environment we run tests in), so the test framework - // ignores it. - if (canDefineProperty) { - Object.defineProperty(element._store, 'validated', { - configurable: false, - enumerable: false, - writable: true, - value: false - }); - // self and source are DEV only properties. - Object.defineProperty(element, '_self', { - configurable: false, - enumerable: false, - writable: false, - value: self - }); - // Two elements created in two different places should be considered - // equal for testing purposes and therefore we hide it from enumeration. - Object.defineProperty(element, '_source', { - configurable: false, - enumerable: false, - writable: false, - value: source - }); - } else { - element._store.validated = false; - element._self = self; - element._source = source; - } - Object.freeze(element.props); - Object.freeze(element); - } - - return element; -}; - -ReactElement.createElement = function (type, config, children) { - var propName; - - // Reserved names are extracted - var props = {}; - - var key = null; - var ref = null; - var self = null; - var source = null; - - if (config != null) { - ref = config.ref === undefined ? null : config.ref; - key = config.key === undefined ? null : '' + config.key; - self = config.__self === undefined ? null : config.__self; - source = config.__source === undefined ? null : config.__source; - // Remaining properties are added to a new props object - for (propName in config) { - if (config.hasOwnProperty(propName) && !RESERVED_PROPS.hasOwnProperty(propName)) { - props[propName] = config[propName]; - } - } - } - - // Children can be more than one argument, and those are transferred onto - // the newly allocated props object. - var childrenLength = arguments.length - 2; - if (childrenLength === 1) { - props.children = children; - } else if (childrenLength > 1) { - var childArray = Array(childrenLength); - for (var i = 0; i < childrenLength; i++) { - childArray[i] = arguments[i + 2]; - } - props.children = childArray; - } - - // Resolve default props - if (type && type.defaultProps) { - var defaultProps = type.defaultProps; - for (propName in defaultProps) { - if (typeof props[propName] === 'undefined') { - props[propName] = defaultProps[propName]; - } - } - } - - return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props); -}; - -ReactElement.createFactory = function (type) { - var factory = ReactElement.createElement.bind(null, type); - // Expose the type on the factory and the prototype so that it can be - // easily accessed on elements. E.g. `<Foo />.type === Foo`. - // This should not be named `constructor` since this may not be the function - // that created the element, and it may not even be a constructor. - // Legacy hook TODO: Warn if this is accessed - factory.type = type; - return factory; -}; - -ReactElement.cloneAndReplaceKey = function (oldElement, newKey) { - var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props); - - return newElement; -}; - -ReactElement.cloneAndReplaceProps = function (oldElement, newProps) { - var newElement = ReactElement(oldElement.type, oldElement.key, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, newProps); - - if ("development" !== 'production') { - // If the key on the original is valid, then the clone is valid - newElement._store.validated = oldElement._store.validated; - } - - return newElement; -}; - -ReactElement.cloneElement = function (element, config, children) { - var propName; - - // Original props are copied - var props = assign({}, element.props); - - // Reserved names are extracted - var key = element.key; - var ref = element.ref; - // Self is preserved since the owner is preserved. - var self = element._self; - // Source is preserved since cloneElement is unlikely to be targeted by a - // transpiler, and the original source is probably a better indicator of the - // true owner. - var source = element._source; - - // Owner will be preserved, unless ref is overridden - var owner = element._owner; - - if (config != null) { - if (config.ref !== undefined) { - // Silently steal the ref from the parent. - ref = config.ref; - owner = ReactCurrentOwner.current; - } - if (config.key !== undefined) { - key = '' + config.key; - } - // Remaining properties override existing props - for (propName in config) { - if (config.hasOwnProperty(propName) && !RESERVED_PROPS.hasOwnProperty(propName)) { - props[propName] = config[propName]; - } - } - } - - // Children can be more than one argument, and those are transferred onto - // the newly allocated props object. - var childrenLength = arguments.length - 2; - if (childrenLength === 1) { - props.children = children; - } else if (childrenLength > 1) { - var childArray = Array(childrenLength); - for (var i = 0; i < childrenLength; i++) { - childArray[i] = arguments[i + 2]; - } - props.children = childArray; - } - - return ReactElement(element.type, key, ref, self, source, owner, props); -}; - -/** - * @param {?object} object - * @return {boolean} True if `object` is a valid component. - * @final - */ -ReactElement.isValidElement = function (object) { - return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; -}; - -module.exports = ReactElement; -},{"23":23,"34":34}],53:[function(_dereq_,module,exports){ -/** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactElementValidator - */ - -/** - * ReactElementValidator provides a wrapper around a element factory - * which validates the props passed to the element. This is intended to be - * used only in DEV and could be replaced by a static type checker for languages - * that support it. - */ - -'use strict'; - -var ReactElement = _dereq_(52); -var ReactPropTypeLocations = _dereq_(73); -var ReactPropTypeLocationNames = _dereq_(72); -var ReactCurrentOwner = _dereq_(34); - -var getIteratorFn = _dereq_(114); -var invariant = _dereq_(143); -var warning = _dereq_(154); - -function getDeclarationErrorAddendum() { - if (ReactCurrentOwner.current) { - var name = ReactCurrentOwner.current.getName(); - if (name) { - return ' Check the render method of `' + name + '`.'; - } - } - return ''; -} - -/** - * Warn if there's no key explicitly set on dynamic arrays of children or - * object keys are not valid. This allows us to keep track of children between - * updates. - */ -var ownerHasKeyUseWarning = {}; - -var loggedTypeFailures = {}; - -/** - * Warn if the element doesn't have an explicit key assigned to it. - * This element is in an array. The array could grow and shrink or be - * reordered. All children that haven't already been validated are required to - * have a "key" property assigned to it. - * - * @internal - * @param {ReactElement} element Element that requires a key. - * @param {*} parentType element's parent's type. - */ -function validateExplicitKey(element, parentType) { - if (!element._store || element._store.validated || element.key != null) { - return; - } - element._store.validated = true; - - var addenda = getAddendaForKeyUse('uniqueKey', element, parentType); - if (addenda === null) { - // we already showed the warning - return; - } - "development" !== 'production' ? warning(false, 'Each child in an array or iterator should have a unique "key" prop.' + '%s%s%s', addenda.parentOrOwner || '', addenda.childOwner || '', addenda.url || '') : undefined; -} - -/** - * Shared warning and monitoring code for the key warnings. - * - * @internal - * @param {string} messageType A key used for de-duping warnings. - * @param {ReactElement} element Component that requires a key. - * @param {*} parentType element's parent's type. - * @returns {?object} A set of addenda to use in the warning message, or null - * if the warning has already been shown before (and shouldn't be shown again). - */ -function getAddendaForKeyUse(messageType, element, parentType) { - var addendum = getDeclarationErrorAddendum(); - if (!addendum) { - var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name; - if (parentName) { - addendum = ' Check the top-level render call using <' + parentName + '>.'; - } - } - - var memoizer = ownerHasKeyUseWarning[messageType] || (ownerHasKeyUseWarning[messageType] = {}); - if (memoizer[addendum]) { - return null; - } - memoizer[addendum] = true; - - var addenda = { - parentOrOwner: addendum, - url: ' See https://fb.me/react-warning-keys for more information.', - childOwner: null - }; - - // Usually the current owner is the offender, but if it accepts children as a - // property, it may be the creator of the child that's responsible for - // assigning it a key. - if (element && element._owner && element._owner !== ReactCurrentOwner.current) { - // Give the component that originally created this child. - addenda.childOwner = ' It was passed a child from ' + element._owner.getName() + '.'; - } - - return addenda; -} - -/** - * Ensure that every element either is passed in a static location, in an - * array with an explicit keys property defined, or in an object literal - * with valid key property. - * - * @internal - * @param {ReactNode} node Statically passed child of any type. - * @param {*} parentType node's parent's type. - */ -function validateChildKeys(node, parentType) { - if (typeof node !== 'object') { - return; - } - if (Array.isArray(node)) { - for (var i = 0; i < node.length; i++) { - var child = node[i]; - if (ReactElement.isValidElement(child)) { - validateExplicitKey(child, parentType); - } - } - } else if (ReactElement.isValidElement(node)) { - // This element was passed in a valid location. - if (node._store) { - node._store.validated = true; - } - } else if (node) { - var iteratorFn = getIteratorFn(node); - // Entry iterators provide implicit keys. - if (iteratorFn) { - if (iteratorFn !== node.entries) { - var iterator = iteratorFn.call(node); - var step; - while (!(step = iterator.next()).done) { - if (ReactElement.isValidElement(step.value)) { - validateExplicitKey(step.value, parentType); - } - } - } - } - } -} - -/** - * Assert that the props are valid - * - * @param {string} componentName Name of the component for error messages. - * @param {object} propTypes Map of prop name to a ReactPropType - * @param {object} props - * @param {string} location e.g. "prop", "context", "child context" - * @private - */ -function checkPropTypes(componentName, propTypes, props, location) { - for (var propName in propTypes) { - if (propTypes.hasOwnProperty(propName)) { - var error; - // Prop type validation may throw. In case they do, we don't want to - // fail the render phase where it didn't fail before. So we log it. - // After these have been cleaned up, we'll let them throw. - try { - // This is intentionally an invariant that gets caught. It's the same - // behavior as without this statement except with a better message. - !(typeof propTypes[propName] === 'function') ? "development" !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], propName) : invariant(false) : undefined; - error = propTypes[propName](props, propName, componentName, location); - } catch (ex) { - error = ex; - } - "development" !== 'production' ? warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', ReactPropTypeLocationNames[location], propName, typeof error) : undefined; - if (error instanceof Error && !(error.message in loggedTypeFailures)) { - // Only monitor this failure once because there tends to be a lot of the - // same error. - loggedTypeFailures[error.message] = true; - - var addendum = getDeclarationErrorAddendum(); - "development" !== 'production' ? warning(false, 'Failed propType: %s%s', error.message, addendum) : undefined; - } - } - } -} - -/** - * Given an element, validate that its props follow the propTypes definition, - * provided by the type. - * - * @param {ReactElement} element - */ -function validatePropTypes(element) { - var componentClass = element.type; - if (typeof componentClass !== 'function') { - return; - } - var name = componentClass.displayName || componentClass.name; - if (componentClass.propTypes) { - checkPropTypes(name, componentClass.propTypes, element.props, ReactPropTypeLocations.prop); - } - if (typeof componentClass.getDefaultProps === 'function') { - "development" !== 'production' ? warning(componentClass.getDefaultProps.isReactClassApproved, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : undefined; - } -} - -var ReactElementValidator = { - - createElement: function (type, props, children) { - var validType = typeof type === 'string' || typeof type === 'function'; - // We warn in this case but don't throw. We expect the element creation to - // succeed and there will likely be errors in render. - "development" !== 'production' ? warning(validType, 'React.createElement: type should not be null, undefined, boolean, or ' + 'number. It should be a string (for DOM elements) or a ReactClass ' + '(for composite components).%s', getDeclarationErrorAddendum()) : undefined; - - var element = ReactElement.createElement.apply(this, arguments); - - // The result can be nullish if a mock or a custom function is used. - // TODO: Drop this when these are no longer allowed as the type argument. - if (element == null) { - return element; - } - - // Skip key warning if the type isn't valid since our key validation logic - // doesn't expect a non-string/function type and can throw confusing errors. - // We don't want exception behavior to differ between dev and prod. - // (Rendering will throw with a helpful message and as soon as the type is - // fixed, the key warnings will appear.) - if (validType) { - for (var i = 2; i < arguments.length; i++) { - validateChildKeys(arguments[i], type); - } - } - - validatePropTypes(element); - - return element; - }, - - createFactory: function (type) { - var validatedFactory = ReactElementValidator.createElement.bind(null, type); - // Legacy hook TODO: Warn if this is accessed - validatedFactory.type = type; - - if ("development" !== 'production') { - try { - Object.defineProperty(validatedFactory, 'type', { - enumerable: false, - get: function () { - "development" !== 'production' ? warning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.') : undefined; - Object.defineProperty(this, 'type', { - value: type - }); - return type; - } - }); - } catch (x) { - // IE will fail on defineProperty (es5-shim/sham too) - } - } - - return validatedFactory; - }, - - cloneElement: function (element, props, children) { - var newElement = ReactElement.cloneElement.apply(this, arguments); - for (var i = 2; i < arguments.length; i++) { - validateChildKeys(arguments[i], newElement.type); - } - validatePropTypes(newElement); - return newElement; - } - -}; - -module.exports = ReactElementValidator; -},{"114":114,"143":143,"154":154,"34":34,"52":52,"72":72,"73":73}],54:[function(_dereq_,module,exports){ -/** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactEmptyComponent - */ - -'use strict'; - -var ReactElement = _dereq_(52); -var ReactEmptyComponentRegistry = _dereq_(55); -var ReactReconciler = _dereq_(76); - -var assign = _dereq_(23); - -var placeholderElement; - -var ReactEmptyComponentInjection = { - injectEmptyComponent: function (component) { - placeholderElement = ReactElement.createElement(component); - } -}; - -var ReactEmptyComponent = function (instantiate) { - this._currentElement = null; - this._rootNodeID = null; - this._renderedComponent = instantiate(placeholderElement); -}; -assign(ReactEmptyComponent.prototype, { - construct: function (element) {}, - mountComponent: function (rootID, transaction, context) { - ReactEmptyComponentRegistry.registerNullComponentID(rootID); - this._rootNodeID = rootID; - return ReactReconciler.mountComponent(this._renderedComponent, rootID, transaction, context); - }, - receiveComponent: function () {}, - unmountComponent: function (rootID, transaction, context) { - ReactReconciler.unmountComponent(this._renderedComponent); - ReactEmptyComponentRegistry.deregisterNullComponentID(this._rootNodeID); - this._rootNodeID = null; - this._renderedComponent = null; - } -}); - -ReactEmptyComponent.injection = ReactEmptyComponentInjection; - -module.exports = ReactEmptyComponent; -},{"23":23,"52":52,"55":55,"76":76}],55:[function(_dereq_,module,exports){ -/** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactEmptyComponentRegistry - */ - -'use strict'; - -// This registry keeps track of the React IDs of the components that rendered to -// `null` (in reality a placeholder such as `noscript`) -var nullComponentIDsRegistry = {}; - -/** - * @param {string} id Component's `_rootNodeID`. - * @return {boolean} True if the component is rendered to null. - */ -function isNullComponentID(id) { - return !!nullComponentIDsRegistry[id]; -} - -/** - * Mark the component as having rendered to null. - * @param {string} id Component's `_rootNodeID`. - */ -function registerNullComponentID(id) { - nullComponentIDsRegistry[id] = true; -} - -/** - * Unmark the component as having rendered to null: it renders to something now. - * @param {string} id Component's `_rootNodeID`. - */ -function deregisterNullComponentID(id) { - delete nullComponentIDsRegistry[id]; -} - -var ReactEmptyComponentRegistry = { - isNullComponentID: isNullComponentID, - registerNullComponentID: registerNullComponentID, - deregisterNullComponentID: deregisterNullComponentID -}; - -module.exports = ReactEmptyComponentRegistry; -},{}],56:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactErrorUtils - * @typechecks - */ - -'use strict'; - -var caughtError = null; - -/** - * Call a function while guarding against errors that happens within it. - * - * @param {?String} name of the guard to use for logging or debugging - * @param {Function} func The function to invoke - * @param {*} a First argument - * @param {*} b Second argument - */ -function invokeGuardedCallback(name, func, a, b) { - try { - return func(a, b); - } catch (x) { - if (caughtError === null) { - caughtError = x; - } - return undefined; - } -} - -var ReactErrorUtils = { - invokeGuardedCallback: invokeGuardedCallback, - - /** - * Invoked by ReactTestUtils.Simulate so that any errors thrown by the event - * handler are sure to be rethrown by rethrowCaughtError. - */ - invokeGuardedCallbackWithCatch: invokeGuardedCallback, - - /** - * During execution of guarded functions we will capture the first error which - * we will rethrow to be handled by the top level error handler. - */ - rethrowCaughtError: function () { - if (caughtError) { - var error = caughtError; - caughtError = null; - throw error; - } - } -}; - -if ("development" !== 'production') { - /** - * To help development we can get better devtools integration by simulating a - * real browser event. - */ - if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof Event === 'function') { - var fakeNode = document.createElement('react'); - ReactErrorUtils.invokeGuardedCallback = function (name, func, a, b) { - var boundFunc = func.bind(null, a, b); - fakeNode.addEventListener(name, boundFunc, false); - fakeNode.dispatchEvent(new Event(name)); - fakeNode.removeEventListener(name, boundFunc, false); - }; - } -} - -module.exports = ReactErrorUtils; -},{}],57:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactEventEmitterMixin - */ - -'use strict'; - -var EventPluginHub = _dereq_(16); - -function runEventQueueInBatch(events) { - EventPluginHub.enqueueEvents(events); - EventPluginHub.processEventQueue(false); -} - -var ReactEventEmitterMixin = { - - /** - * Streams a fired top-level event to `EventPluginHub` where plugins have the - * opportunity to create `ReactEvent`s to be dispatched. - * - * @param {string} topLevelType Record from `EventConstants`. - * @param {object} topLevelTarget The listening component root node. - * @param {string} topLevelTargetID ID of `topLevelTarget`. - * @param {object} nativeEvent Native environment event. - */ - handleTopLevel: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) { - var events = EventPluginHub.extractEvents(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget); - runEventQueueInBatch(events); - } -}; - -module.exports = ReactEventEmitterMixin; -},{"16":16}],58:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactEventListener - * @typechecks static-only - */ - -'use strict'; - -var EventListener = _dereq_(128); -var ExecutionEnvironment = _dereq_(129); -var PooledClass = _dereq_(24); -var ReactInstanceHandles = _dereq_(61); -var ReactMount = _dereq_(65); -var ReactUpdates = _dereq_(83); - -var assign = _dereq_(23); -var getEventTarget = _dereq_(113); -var getUnboundedScrollPosition = _dereq_(140); - -var DOCUMENT_FRAGMENT_NODE_TYPE = 11; - -/** - * Finds the parent React component of `node`. - * - * @param {*} node - * @return {?DOMEventTarget} Parent container, or `null` if the specified node - * is not nested. - */ -function findParent(node) { - // TODO: It may be a good idea to cache this to prevent unnecessary DOM - // traversal, but caching is difficult to do correctly without using a - // mutation observer to listen for all DOM changes. - var nodeID = ReactMount.getID(node); - var rootID = ReactInstanceHandles.getReactRootIDFromNodeID(nodeID); - var container = ReactMount.findReactContainerForID(rootID); - var parent = ReactMount.getFirstReactDOM(container); - return parent; -} - -// Used to store ancestor hierarchy in top level callback -function TopLevelCallbackBookKeeping(topLevelType, nativeEvent) { - this.topLevelType = topLevelType; - this.nativeEvent = nativeEvent; - this.ancestors = []; -} -assign(TopLevelCallbackBookKeeping.prototype, { - destructor: function () { - this.topLevelType = null; - this.nativeEvent = null; - this.ancestors.length = 0; - } -}); -PooledClass.addPoolingTo(TopLevelCallbackBookKeeping, PooledClass.twoArgumentPooler); - -function handleTopLevelImpl(bookKeeping) { - // TODO: Re-enable event.path handling - // - // if (bookKeeping.nativeEvent.path && bookKeeping.nativeEvent.path.length > 1) { - // // New browsers have a path attribute on native events - // handleTopLevelWithPath(bookKeeping); - // } else { - // // Legacy browsers don't have a path attribute on native events - // handleTopLevelWithoutPath(bookKeeping); - // } - - void handleTopLevelWithPath; // temporarily unused - handleTopLevelWithoutPath(bookKeeping); -} - -// Legacy browsers don't have a path attribute on native events -function handleTopLevelWithoutPath(bookKeeping) { - var topLevelTarget = ReactMount.getFirstReactDOM(getEventTarget(bookKeeping.nativeEvent)) || window; - - // Loop through the hierarchy, in case there's any nested components. - // It's important that we build the array of ancestors before calling any - // event handlers, because event handlers can modify the DOM, leading to - // inconsistencies with ReactMount's node cache. See #1105. - var ancestor = topLevelTarget; - while (ancestor) { - bookKeeping.ancestors.push(ancestor); - ancestor = findParent(ancestor); - } - - for (var i = 0; i < bookKeeping.ancestors.length; i++) { - topLevelTarget = bookKeeping.ancestors[i]; - var topLevelTargetID = ReactMount.getID(topLevelTarget) || ''; - ReactEventListener._handleTopLevel(bookKeeping.topLevelType, topLevelTarget, topLevelTargetID, bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent)); - } -} - -// New browsers have a path attribute on native events -function handleTopLevelWithPath(bookKeeping) { - var path = bookKeeping.nativeEvent.path; - var currentNativeTarget = path[0]; - var eventsFired = 0; - for (var i = 0; i < path.length; i++) { - var currentPathElement = path[i]; - if (currentPathElement.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE) { - currentNativeTarget = path[i + 1]; - } - // TODO: slow - var reactParent = ReactMount.getFirstReactDOM(currentPathElement); - if (reactParent === currentPathElement) { - var currentPathElementID = ReactMount.getID(currentPathElement); - var newRootID = ReactInstanceHandles.getReactRootIDFromNodeID(currentPathElementID); - bookKeeping.ancestors.push(currentPathElement); - - var topLevelTargetID = ReactMount.getID(currentPathElement) || ''; - eventsFired++; - ReactEventListener._handleTopLevel(bookKeeping.topLevelType, currentPathElement, topLevelTargetID, bookKeeping.nativeEvent, currentNativeTarget); - - // Jump to the root of this React render tree - while (currentPathElementID !== newRootID) { - i++; - currentPathElement = path[i]; - currentPathElementID = ReactMount.getID(currentPathElement); - } - } - } - if (eventsFired === 0) { - ReactEventListener._handleTopLevel(bookKeeping.topLevelType, window, '', bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent)); - } -} - -function scrollValueMonitor(cb) { - var scrollPosition = getUnboundedScrollPosition(window); - cb(scrollPosition); -} - -var ReactEventListener = { - _enabled: true, - _handleTopLevel: null, - - WINDOW_HANDLE: ExecutionEnvironment.canUseDOM ? window : null, - - setHandleTopLevel: function (handleTopLevel) { - ReactEventListener._handleTopLevel = handleTopLevel; - }, - - setEnabled: function (enabled) { - ReactEventListener._enabled = !!enabled; - }, - - isEnabled: function () { - return ReactEventListener._enabled; - }, - - /** - * Traps top-level events by using event bubbling. - * - * @param {string} topLevelType Record from `EventConstants`. - * @param {string} handlerBaseName Event name (e.g. "click"). - * @param {object} handle Element on which to attach listener. - * @return {?object} An object with a remove function which will forcefully - * remove the listener. - * @internal - */ - trapBubbledEvent: function (topLevelType, handlerBaseName, handle) { - var element = handle; - if (!element) { - return null; - } - return EventListener.listen(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType)); - }, - - /** - * Traps a top-level event by using event capturing. - * - * @param {string} topLevelType Record from `EventConstants`. - * @param {string} handlerBaseName Event name (e.g. "click"). - * @param {object} handle Element on which to attach listener. - * @return {?object} An object with a remove function which will forcefully - * remove the listener. - * @internal - */ - trapCapturedEvent: function (topLevelType, handlerBaseName, handle) { - var element = handle; - if (!element) { - return null; - } - return EventListener.capture(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType)); - }, - - monitorScrollValue: function (refresh) { - var callback = scrollValueMonitor.bind(null, refresh); - EventListener.listen(window, 'scroll', callback); - }, - - dispatchEvent: function (topLevelType, nativeEvent) { - if (!ReactEventListener._enabled) { - return; - } - - var bookKeeping = TopLevelCallbackBookKeeping.getPooled(topLevelType, nativeEvent); - try { - // Event queue being processed in the same cycle allows - // `preventDefault`. - ReactUpdates.batchedUpdates(handleTopLevelImpl, bookKeeping); - } finally { - TopLevelCallbackBookKeeping.release(bookKeeping); - } - } -}; - -module.exports = ReactEventListener; -},{"113":113,"128":128,"129":129,"140":140,"23":23,"24":24,"61":61,"65":65,"83":83}],59:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactInjection - */ - -'use strict'; - -var DOMProperty = _dereq_(10); -var EventPluginHub = _dereq_(16); -var ReactComponentEnvironment = _dereq_(32); -var ReactClass = _dereq_(29); -var ReactEmptyComponent = _dereq_(54); -var ReactBrowserEventEmitter = _dereq_(26); -var ReactNativeComponent = _dereq_(68); -var ReactPerf = _dereq_(71); -var ReactRootIndex = _dereq_(78); -var ReactUpdates = _dereq_(83); - -var ReactInjection = { - Component: ReactComponentEnvironment.injection, - Class: ReactClass.injection, - DOMProperty: DOMProperty.injection, - EmptyComponent: ReactEmptyComponent.injection, - EventPluginHub: EventPluginHub.injection, - EventEmitter: ReactBrowserEventEmitter.injection, - NativeComponent: ReactNativeComponent.injection, - Perf: ReactPerf.injection, - RootIndex: ReactRootIndex.injection, - Updates: ReactUpdates.injection -}; - -module.exports = ReactInjection; -},{"10":10,"16":16,"26":26,"29":29,"32":32,"54":54,"68":68,"71":71,"78":78,"83":83}],60:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactInputSelection - */ - -'use strict'; - -var ReactDOMSelection = _dereq_(44); - -var containsNode = _dereq_(132); -var focusNode = _dereq_(137); -var getActiveElement = _dereq_(138); - -function isInDocument(node) { - return containsNode(document.documentElement, node); -} - -/** - * @ReactInputSelection: React input selection module. Based on Selection.js, - * but modified to be suitable for react and has a couple of bug fixes (doesn't - * assume buttons have range selections allowed). - * Input selection module for React. - */ -var ReactInputSelection = { - - hasSelectionCapabilities: function (elem) { - var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase(); - return nodeName && (nodeName === 'input' && elem.type === 'text' || nodeName === 'textarea' || elem.contentEditable === 'true'); - }, - - getSelectionInformation: function () { - var focusedElem = getActiveElement(); - return { - focusedElem: focusedElem, - selectionRange: ReactInputSelection.hasSelectionCapabilities(focusedElem) ? ReactInputSelection.getSelection(focusedElem) : null - }; - }, - - /** - * @restoreSelection: If any selection information was potentially lost, - * restore it. This is useful when performing operations that could remove dom - * nodes and place them back in, resulting in focus being lost. - */ - restoreSelection: function (priorSelectionInformation) { - var curFocusedElem = getActiveElement(); - var priorFocusedElem = priorSelectionInformation.focusedElem; - var priorSelectionRange = priorSelectionInformation.selectionRange; - if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) { - if (ReactInputSelection.hasSelectionCapabilities(priorFocusedElem)) { - ReactInputSelection.setSelection(priorFocusedElem, priorSelectionRange); - } - focusNode(priorFocusedElem); - } - }, - - /** - * @getSelection: Gets the selection bounds of a focused textarea, input or - * contentEditable node. - * -@input: Look up selection bounds of this input - * -@return {start: selectionStart, end: selectionEnd} - */ - getSelection: function (input) { - var selection; - - if ('selectionStart' in input) { - // Modern browser with input or textarea. - selection = { - start: input.selectionStart, - end: input.selectionEnd - }; - } else if (document.selection && (input.nodeName && input.nodeName.toLowerCase() === 'input')) { - // IE8 input. - var range = document.selection.createRange(); - // There can only be one selection per document in IE, so it must - // be in our element. - if (range.parentElement() === input) { - selection = { - start: -range.moveStart('character', -input.value.length), - end: -range.moveEnd('character', -input.value.length) - }; - } - } else { - // Content editable or old IE textarea. - selection = ReactDOMSelection.getOffsets(input); - } - - return selection || { start: 0, end: 0 }; - }, - - /** - * @setSelection: Sets the selection bounds of a textarea or input and focuses - * the input. - * -@input Set selection bounds of this input or textarea - * -@offsets Object of same form that is returned from get* - */ - setSelection: function (input, offsets) { - var start = offsets.start; - var end = offsets.end; - if (typeof end === 'undefined') { - end = start; - } - - if ('selectionStart' in input) { - input.selectionStart = start; - input.selectionEnd = Math.min(end, input.value.length); - } else if (document.selection && (input.nodeName && input.nodeName.toLowerCase() === 'input')) { - var range = input.createTextRange(); - range.collapse(true); - range.moveStart('character', start); - range.moveEnd('character', end - start); - range.select(); - } else { - ReactDOMSelection.setOffsets(input, offsets); - } - } -}; - -module.exports = ReactInputSelection; -},{"132":132,"137":137,"138":138,"44":44}],61:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactInstanceHandles - * @typechecks static-only - */ - -'use strict'; - -var ReactRootIndex = _dereq_(78); - -var invariant = _dereq_(143); - -var SEPARATOR = '.'; -var SEPARATOR_LENGTH = SEPARATOR.length; - -/** - * Maximum depth of traversals before we consider the possibility of a bad ID. - */ -var MAX_TREE_DEPTH = 10000; - -/** - * Creates a DOM ID prefix to use when mounting React components. - * - * @param {number} index A unique integer - * @return {string} React root ID. - * @internal - */ -function getReactRootIDString(index) { - return SEPARATOR + index.toString(36); -} - -/** - * Checks if a character in the supplied ID is a separator or the end. - * - * @param {string} id A React DOM ID. - * @param {number} index Index of the character to check. - * @return {boolean} True if the character is a separator or end of the ID. - * @private - */ -function isBoundary(id, index) { - return id.charAt(index) === SEPARATOR || index === id.length; -} - -/** - * Checks if the supplied string is a valid React DOM ID. - * - * @param {string} id A React DOM ID, maybe. - * @return {boolean} True if the string is a valid React DOM ID. - * @private - */ -function isValidID(id) { - return id === '' || id.charAt(0) === SEPARATOR && id.charAt(id.length - 1) !== SEPARATOR; -} - -/** - * Checks if the first ID is an ancestor of or equal to the second ID. - * - * @param {string} ancestorID - * @param {string} descendantID - * @return {boolean} True if `ancestorID` is an ancestor of `descendantID`. - * @internal - */ -function isAncestorIDOf(ancestorID, descendantID) { - return descendantID.indexOf(ancestorID) === 0 && isBoundary(descendantID, ancestorID.length); -} - -/** - * Gets the parent ID of the supplied React DOM ID, `id`. - * - * @param {string} id ID of a component. - * @return {string} ID of the parent, or an empty string. - * @private - */ -function getParentID(id) { - return id ? id.substr(0, id.lastIndexOf(SEPARATOR)) : ''; -} - -/** - * Gets the next DOM ID on the tree path from the supplied `ancestorID` to the - * supplied `destinationID`. If they are equal, the ID is returned. - * - * @param {string} ancestorID ID of an ancestor node of `destinationID`. - * @param {string} destinationID ID of the destination node. - * @return {string} Next ID on the path from `ancestorID` to `destinationID`. - * @private - */ -function getNextDescendantID(ancestorID, destinationID) { - !(isValidID(ancestorID) && isValidID(destinationID)) ? "development" !== 'production' ? invariant(false, 'getNextDescendantID(%s, %s): Received an invalid React DOM ID.', ancestorID, destinationID) : invariant(false) : undefined; - !isAncestorIDOf(ancestorID, destinationID) ? "development" !== 'production' ? invariant(false, 'getNextDescendantID(...): React has made an invalid assumption about ' + 'the DOM hierarchy. Expected `%s` to be an ancestor of `%s`.', ancestorID, destinationID) : invariant(false) : undefined; - if (ancestorID === destinationID) { - return ancestorID; - } - // Skip over the ancestor and the immediate separator. Traverse until we hit - // another separator or we reach the end of `destinationID`. - var start = ancestorID.length + SEPARATOR_LENGTH; - var i; - for (i = start; i < destinationID.length; i++) { - if (isBoundary(destinationID, i)) { - break; - } - } - return destinationID.substr(0, i); -} - -/** - * Gets the nearest common ancestor ID of two IDs. - * - * Using this ID scheme, the nearest common ancestor ID is the longest common - * prefix of the two IDs that immediately preceded a "marker" in both strings. - * - * @param {string} oneID - * @param {string} twoID - * @return {string} Nearest common ancestor ID, or the empty string if none. - * @private - */ -function getFirstCommonAncestorID(oneID, twoID) { - var minLength = Math.min(oneID.length, twoID.length); - if (minLength === 0) { - return ''; - } - var lastCommonMarkerIndex = 0; - // Use `<=` to traverse until the "EOL" of the shorter string. - for (var i = 0; i <= minLength; i++) { - if (isBoundary(oneID, i) && isBoundary(twoID, i)) { - lastCommonMarkerIndex = i; - } else if (oneID.charAt(i) !== twoID.charAt(i)) { - break; - } - } - var longestCommonID = oneID.substr(0, lastCommonMarkerIndex); - !isValidID(longestCommonID) ? "development" !== 'production' ? invariant(false, 'getFirstCommonAncestorID(%s, %s): Expected a valid React DOM ID: %s', oneID, twoID, longestCommonID) : invariant(false) : undefined; - return longestCommonID; -} - -/** - * Traverses the parent path between two IDs (either up or down). The IDs must - * not be the same, and there must exist a parent path between them. If the - * callback returns `false`, traversal is stopped. - * - * @param {?string} start ID at which to start traversal. - * @param {?string} stop ID at which to end traversal. - * @param {function} cb Callback to invoke each ID with. - * @param {*} arg Argument to invoke the callback with. - * @param {?boolean} skipFirst Whether or not to skip the first node. - * @param {?boolean} skipLast Whether or not to skip the last node. - * @private - */ -function traverseParentPath(start, stop, cb, arg, skipFirst, skipLast) { - start = start || ''; - stop = stop || ''; - !(start !== stop) ? "development" !== 'production' ? invariant(false, 'traverseParentPath(...): Cannot traverse from and to the same ID, `%s`.', start) : invariant(false) : undefined; - var traverseUp = isAncestorIDOf(stop, start); - !(traverseUp || isAncestorIDOf(start, stop)) ? "development" !== 'production' ? invariant(false, 'traverseParentPath(%s, %s, ...): Cannot traverse from two IDs that do ' + 'not have a parent path.', start, stop) : invariant(false) : undefined; - // Traverse from `start` to `stop` one depth at a time. - var depth = 0; - var traverse = traverseUp ? getParentID : getNextDescendantID; - for (var id = start;; /* until break */id = traverse(id, stop)) { - var ret; - if ((!skipFirst || id !== start) && (!skipLast || id !== stop)) { - ret = cb(id, traverseUp, arg); - } - if (ret === false || id === stop) { - // Only break //after// visiting `stop`. - break; - } - !(depth++ < MAX_TREE_DEPTH) ? "development" !== 'production' ? invariant(false, 'traverseParentPath(%s, %s, ...): Detected an infinite loop while ' + 'traversing the React DOM ID tree. This may be due to malformed IDs: %s', start, stop, id) : invariant(false) : undefined; - } -} - -/** - * Manages the IDs assigned to DOM representations of React components. This - * uses a specific scheme in order to traverse the DOM efficiently (e.g. in - * order to simulate events). - * - * @internal - */ -var ReactInstanceHandles = { - - /** - * Constructs a React root ID - * @return {string} A React root ID. - */ - createReactRootID: function () { - return getReactRootIDString(ReactRootIndex.createReactRootIndex()); - }, - - /** - * Constructs a React ID by joining a root ID with a name. - * - * @param {string} rootID Root ID of a parent component. - * @param {string} name A component's name (as flattened children). - * @return {string} A React ID. - * @internal - */ - createReactID: function (rootID, name) { - return rootID + name; - }, - - /** - * Gets the DOM ID of the React component that is the root of the tree that - * contains the React component with the supplied DOM ID. - * - * @param {string} id DOM ID of a React component. - * @return {?string} DOM ID of the React component that is the root. - * @internal - */ - getReactRootIDFromNodeID: function (id) { - if (id && id.charAt(0) === SEPARATOR && id.length > 1) { - var index = id.indexOf(SEPARATOR, 1); - return index > -1 ? id.substr(0, index) : id; - } - return null; - }, - - /** - * Traverses the ID hierarchy and invokes the supplied `cb` on any IDs that - * should would receive a `mouseEnter` or `mouseLeave` event. - * - * NOTE: Does not invoke the callback on the nearest common ancestor because - * nothing "entered" or "left" that element. - * - * @param {string} leaveID ID being left. - * @param {string} enterID ID being entered. - * @param {function} cb Callback to invoke on each entered/left ID. - * @param {*} upArg Argument to invoke the callback with on left IDs. - * @param {*} downArg Argument to invoke the callback with on entered IDs. - * @internal - */ - traverseEnterLeave: function (leaveID, enterID, cb, upArg, downArg) { - var ancestorID = getFirstCommonAncestorID(leaveID, enterID); - if (ancestorID !== leaveID) { - traverseParentPath(leaveID, ancestorID, cb, upArg, false, true); - } - if (ancestorID !== enterID) { - traverseParentPath(ancestorID, enterID, cb, downArg, true, false); - } - }, - - /** - * Simulates the traversal of a two-phase, capture/bubble event dispatch. - * - * NOTE: This traversal happens on IDs without touching the DOM. - * - * @param {string} targetID ID of the target node. - * @param {function} cb Callback to invoke. - * @param {*} arg Argument to invoke the callback with. - * @internal - */ - traverseTwoPhase: function (targetID, cb, arg) { - if (targetID) { - traverseParentPath('', targetID, cb, arg, true, false); - traverseParentPath(targetID, '', cb, arg, false, true); - } - }, - - /** - * Same as `traverseTwoPhase` but skips the `targetID`. - */ - traverseTwoPhaseSkipTarget: function (targetID, cb, arg) { - if (targetID) { - traverseParentPath('', targetID, cb, arg, true, true); - traverseParentPath(targetID, '', cb, arg, true, true); - } - }, - - /** - * Traverse a node ID, calling the supplied `cb` for each ancestor ID. For - * example, passing `.0.$row-0.1` would result in `cb` getting called - * with `.0`, `.0.$row-0`, and `.0.$row-0.1`. - * - * NOTE: This traversal happens on IDs without touching the DOM. - * - * @param {string} targetID ID of the target node. - * @param {function} cb Callback to invoke. - * @param {*} arg Argument to invoke the callback with. - * @internal - */ - traverseAncestors: function (targetID, cb, arg) { - traverseParentPath('', targetID, cb, arg, true, false); - }, - - getFirstCommonAncestorID: getFirstCommonAncestorID, - - /** - * Exposed for unit testing. - * @private - */ - _getNextDescendantID: getNextDescendantID, - - isAncestorIDOf: isAncestorIDOf, - - SEPARATOR: SEPARATOR - -}; - -module.exports = ReactInstanceHandles; -},{"143":143,"78":78}],62:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactInstanceMap - */ - -'use strict'; - -/** - * `ReactInstanceMap` maintains a mapping from a public facing stateful - * instance (key) and the internal representation (value). This allows public - * methods to accept the user facing instance as an argument and map them back - * to internal methods. - */ - -// TODO: Replace this with ES6: var ReactInstanceMap = new Map(); -var ReactInstanceMap = { - - /** - * This API should be called `delete` but we'd have to make sure to always - * transform these to strings for IE support. When this transform is fully - * supported we can rename it. - */ - remove: function (key) { - key._reactInternalInstance = undefined; - }, - - get: function (key) { - return key._reactInternalInstance; - }, - - has: function (key) { - return key._reactInternalInstance !== undefined; - }, - - set: function (key, value) { - key._reactInternalInstance = value; - } - -}; - -module.exports = ReactInstanceMap; -},{}],63:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactIsomorphic - */ - -'use strict'; - -var ReactChildren = _dereq_(28); -var ReactComponent = _dereq_(30); -var ReactClass = _dereq_(29); -var ReactDOMFactories = _dereq_(38); -var ReactElement = _dereq_(52); -var ReactElementValidator = _dereq_(53); -var ReactPropTypes = _dereq_(74); -var ReactVersion = _dereq_(84); - -var assign = _dereq_(23); -var onlyChild = _dereq_(120); - -var createElement = ReactElement.createElement; -var createFactory = ReactElement.createFactory; -var cloneElement = ReactElement.cloneElement; - -if ("development" !== 'production') { - createElement = ReactElementValidator.createElement; - createFactory = ReactElementValidator.createFactory; - cloneElement = ReactElementValidator.cloneElement; -} - -var React = { - - // Modern - - Children: { - map: ReactChildren.map, - forEach: ReactChildren.forEach, - count: ReactChildren.count, - toArray: ReactChildren.toArray, - only: onlyChild - }, - - Component: ReactComponent, - - createElement: createElement, - cloneElement: cloneElement, - isValidElement: ReactElement.isValidElement, - - // Classic - - PropTypes: ReactPropTypes, - createClass: ReactClass.createClass, - createFactory: createFactory, - createMixin: function (mixin) { - // Currently a noop. Will be used to validate and trace mixins. - return mixin; - }, - - // This looks DOM specific but these are actually isomorphic helpers - // since they are just generating DOM strings. - DOM: ReactDOMFactories, - - version: ReactVersion, - - // Hook for JSX spread, don't use this for anything else. - __spread: assign -}; - -module.exports = React; -},{"120":120,"23":23,"28":28,"29":29,"30":30,"38":38,"52":52,"53":53,"74":74,"84":84}],64:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactMarkupChecksum - */ - -'use strict'; - -var adler32 = _dereq_(103); - -var TAG_END = /\/?>/; - -var ReactMarkupChecksum = { - CHECKSUM_ATTR_NAME: 'data-react-checksum', - - /** - * @param {string} markup Markup string - * @return {string} Markup string with checksum attribute attached - */ - addChecksumToMarkup: function (markup) { - var checksum = adler32(markup); - - // Add checksum (handle both parent tags and self-closing tags) - return markup.replace(TAG_END, ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '="' + checksum + '"$&'); - }, - - /** - * @param {string} markup to use - * @param {DOMElement} element root React element - * @returns {boolean} whether or not the markup is the same - */ - canReuseMarkup: function (markup, element) { - var existingChecksum = element.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME); - existingChecksum = existingChecksum && parseInt(existingChecksum, 10); - var markupChecksum = adler32(markup); - return markupChecksum === existingChecksum; - } -}; - -module.exports = ReactMarkupChecksum; -},{"103":103}],65:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactMount - */ - -'use strict'; - -var DOMProperty = _dereq_(10); -var ReactBrowserEventEmitter = _dereq_(26); -var ReactCurrentOwner = _dereq_(34); -var ReactDOMFeatureFlags = _dereq_(39); -var ReactElement = _dereq_(52); -var ReactEmptyComponentRegistry = _dereq_(55); -var ReactInstanceHandles = _dereq_(61); -var ReactInstanceMap = _dereq_(62); -var ReactMarkupChecksum = _dereq_(64); -var ReactPerf = _dereq_(71); -var ReactReconciler = _dereq_(76); -var ReactUpdateQueue = _dereq_(82); -var ReactUpdates = _dereq_(83); - -var assign = _dereq_(23); -var emptyObject = _dereq_(136); -var containsNode = _dereq_(132); -var instantiateReactComponent = _dereq_(117); -var invariant = _dereq_(143); -var setInnerHTML = _dereq_(123); -var shouldUpdateReactComponent = _dereq_(125); -var validateDOMNesting = _dereq_(127); -var warning = _dereq_(154); - -var ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME; -var nodeCache = {}; - -var ELEMENT_NODE_TYPE = 1; -var DOC_NODE_TYPE = 9; -var DOCUMENT_FRAGMENT_NODE_TYPE = 11; - -var ownerDocumentContextKey = '__ReactMount_ownerDocument$' + Math.random().toString(36).slice(2); - -/** Mapping from reactRootID to React component instance. */ -var instancesByReactRootID = {}; - -/** Mapping from reactRootID to `container` nodes. */ -var containersByReactRootID = {}; - -if ("development" !== 'production') { - /** __DEV__-only mapping from reactRootID to root elements. */ - var rootElementsByReactRootID = {}; -} - -// Used to store breadth-first search state in findComponentRoot. -var findComponentRootReusableArray = []; - -/** - * Finds the index of the first character - * that's not common between the two given strings. - * - * @return {number} the index of the character where the strings diverge - */ -function firstDifferenceIndex(string1, string2) { - var minLen = Math.min(string1.length, string2.length); - for (var i = 0; i < minLen; i++) { - if (string1.charAt(i) !== string2.charAt(i)) { - return i; - } - } - return string1.length === string2.length ? -1 : minLen; -} - -/** - * @param {DOMElement|DOMDocument} container DOM element that may contain - * a React component - * @return {?*} DOM element that may have the reactRoot ID, or null. - */ -function getReactRootElementInContainer(container) { - if (!container) { - return null; - } - - if (container.nodeType === DOC_NODE_TYPE) { - return container.documentElement; - } else { - return container.firstChild; - } -} - -/** - * @param {DOMElement} container DOM element that may contain a React component. - * @return {?string} A "reactRoot" ID, if a React component is rendered. - */ -function getReactRootID(container) { - var rootElement = getReactRootElementInContainer(container); - return rootElement && ReactMount.getID(rootElement); -} - -/** - * Accessing node[ATTR_NAME] or calling getAttribute(ATTR_NAME) on a form - * element can return its control whose name or ID equals ATTR_NAME. All - * DOM nodes support `getAttributeNode` but this can also get called on - * other objects so just return '' if we're given something other than a - * DOM node (such as window). - * - * @param {?DOMElement|DOMWindow|DOMDocument|DOMTextNode} node DOM node. - * @return {string} ID of the supplied `domNode`. - */ -function getID(node) { - var id = internalGetID(node); - if (id) { - if (nodeCache.hasOwnProperty(id)) { - var cached = nodeCache[id]; - if (cached !== node) { - !!isValid(cached, id) ? "development" !== 'production' ? invariant(false, 'ReactMount: Two valid but unequal nodes with the same `%s`: %s', ATTR_NAME, id) : invariant(false) : undefined; - - nodeCache[id] = node; - } - } else { - nodeCache[id] = node; - } - } - - return id; -} - -function internalGetID(node) { - // If node is something like a window, document, or text node, none of - // which support attributes or a .getAttribute method, gracefully return - // the empty string, as if the attribute were missing. - return node && node.getAttribute && node.getAttribute(ATTR_NAME) || ''; -} - -/** - * Sets the React-specific ID of the given node. - * - * @param {DOMElement} node The DOM node whose ID will be set. - * @param {string} id The value of the ID attribute. - */ -function setID(node, id) { - var oldID = internalGetID(node); - if (oldID !== id) { - delete nodeCache[oldID]; - } - node.setAttribute(ATTR_NAME, id); - nodeCache[id] = node; -} - -/** - * Finds the node with the supplied React-generated DOM ID. - * - * @param {string} id A React-generated DOM ID. - * @return {DOMElement} DOM node with the suppled `id`. - * @internal - */ -function getNode(id) { - if (!nodeCache.hasOwnProperty(id) || !isValid(nodeCache[id], id)) { - nodeCache[id] = ReactMount.findReactNodeByID(id); - } - return nodeCache[id]; -} - -/** - * Finds the node with the supplied public React instance. - * - * @param {*} instance A public React instance. - * @return {?DOMElement} DOM node with the suppled `id`. - * @internal - */ -function getNodeFromInstance(instance) { - var id = ReactInstanceMap.get(instance)._rootNodeID; - if (ReactEmptyComponentRegistry.isNullComponentID(id)) { - return null; - } - if (!nodeCache.hasOwnProperty(id) || !isValid(nodeCache[id], id)) { - nodeCache[id] = ReactMount.findReactNodeByID(id); - } - return nodeCache[id]; -} - -/** - * A node is "valid" if it is contained by a currently mounted container. - * - * This means that the node does not have to be contained by a document in - * order to be considered valid. - * - * @param {?DOMElement} node The candidate DOM node. - * @param {string} id The expected ID of the node. - * @return {boolean} Whether the node is contained by a mounted container. - */ -function isValid(node, id) { - if (node) { - !(internalGetID(node) === id) ? "development" !== 'production' ? invariant(false, 'ReactMount: Unexpected modification of `%s`', ATTR_NAME) : invariant(false) : undefined; - - var container = ReactMount.findReactContainerForID(id); - if (container && containsNode(container, node)) { - return true; - } - } - - return false; -} - -/** - * Causes the cache to forget about one React-specific ID. - * - * @param {string} id The ID to forget. - */ -function purgeID(id) { - delete nodeCache[id]; -} - -var deepestNodeSoFar = null; -function findDeepestCachedAncestorImpl(ancestorID) { - var ancestor = nodeCache[ancestorID]; - if (ancestor && isValid(ancestor, ancestorID)) { - deepestNodeSoFar = ancestor; - } else { - // This node isn't populated in the cache, so presumably none of its - // descendants are. Break out of the loop. - return false; - } -} - -/** - * Return the deepest cached node whose ID is a prefix of `targetID`. - */ -function findDeepestCachedAncestor(targetID) { - deepestNodeSoFar = null; - ReactInstanceHandles.traverseAncestors(targetID, findDeepestCachedAncestorImpl); - - var foundNode = deepestNodeSoFar; - deepestNodeSoFar = null; - return foundNode; -} - -/** - * Mounts this component and inserts it into the DOM. - * - * @param {ReactComponent} componentInstance The instance to mount. - * @param {string} rootID DOM ID of the root node. - * @param {DOMElement} container DOM element to mount into. - * @param {ReactReconcileTransaction} transaction - * @param {boolean} shouldReuseMarkup If true, do not insert markup - */ -function mountComponentIntoNode(componentInstance, rootID, container, transaction, shouldReuseMarkup, context) { - if (ReactDOMFeatureFlags.useCreateElement) { - context = assign({}, context); - if (container.nodeType === DOC_NODE_TYPE) { - context[ownerDocumentContextKey] = container; - } else { - context[ownerDocumentContextKey] = container.ownerDocument; - } - } - if ("development" !== 'production') { - if (context === emptyObject) { - context = {}; - } - var tag = container.nodeName.toLowerCase(); - context[validateDOMNesting.ancestorInfoContextKey] = validateDOMNesting.updatedAncestorInfo(null, tag, null); - } - var markup = ReactReconciler.mountComponent(componentInstance, rootID, transaction, context); - componentInstance._renderedComponent._topLevelWrapper = componentInstance; - ReactMount._mountImageIntoNode(markup, container, shouldReuseMarkup, transaction); -} - -/** - * Batched mount. - * - * @param {ReactComponent} componentInstance The instance to mount. - * @param {string} rootID DOM ID of the root node. - * @param {DOMElement} container DOM element to mount into. - * @param {boolean} shouldReuseMarkup If true, do not insert markup - */ -function batchedMountComponentIntoNode(componentInstance, rootID, container, shouldReuseMarkup, context) { - var transaction = ReactUpdates.ReactReconcileTransaction.getPooled( - /* forceHTML */shouldReuseMarkup); - transaction.perform(mountComponentIntoNode, null, componentInstance, rootID, container, transaction, shouldReuseMarkup, context); - ReactUpdates.ReactReconcileTransaction.release(transaction); -} - -/** - * Unmounts a component and removes it from the DOM. - * - * @param {ReactComponent} instance React component instance. - * @param {DOMElement} container DOM element to unmount from. - * @final - * @internal - * @see {ReactMount.unmountComponentAtNode} - */ -function unmountComponentFromNode(instance, container) { - ReactReconciler.unmountComponent(instance); - - if (container.nodeType === DOC_NODE_TYPE) { - container = container.documentElement; - } - - // http://jsperf.com/emptying-a-node - while (container.lastChild) { - container.removeChild(container.lastChild); - } -} - -/** - * True if the supplied DOM node has a direct React-rendered child that is - * not a React root element. Useful for warning in `render`, - * `unmountComponentAtNode`, etc. - * - * @param {?DOMElement} node The candidate DOM node. - * @return {boolean} True if the DOM element contains a direct child that was - * rendered by React but is not a root element. - * @internal - */ -function hasNonRootReactChild(node) { - var reactRootID = getReactRootID(node); - return reactRootID ? reactRootID !== ReactInstanceHandles.getReactRootIDFromNodeID(reactRootID) : false; -} - -/** - * Returns the first (deepest) ancestor of a node which is rendered by this copy - * of React. - */ -function findFirstReactDOMImpl(node) { - // This node might be from another React instance, so we make sure not to - // examine the node cache here - for (; node && node.parentNode !== node; node = node.parentNode) { - if (node.nodeType !== 1) { - // Not a DOMElement, therefore not a React component - continue; - } - var nodeID = internalGetID(node); - if (!nodeID) { - continue; - } - var reactRootID = ReactInstanceHandles.getReactRootIDFromNodeID(nodeID); - - // If containersByReactRootID contains the container we find by crawling up - // the tree, we know that this instance of React rendered the node. - // nb. isValid's strategy (with containsNode) does not work because render - // trees may be nested and we don't want a false positive in that case. - var current = node; - var lastID; - do { - lastID = internalGetID(current); - current = current.parentNode; - if (current == null) { - // The passed-in node has been detached from the container it was - // originally rendered into. - return null; - } - } while (lastID !== reactRootID); - - if (current === containersByReactRootID[reactRootID]) { - return node; - } - } - return null; -} - -/** - * Temporary (?) hack so that we can store all top-level pending updates on - * composites instead of having to worry about different types of components - * here. - */ -var TopLevelWrapper = function () {}; -TopLevelWrapper.prototype.isReactComponent = {}; -if ("development" !== 'production') { - TopLevelWrapper.displayName = 'TopLevelWrapper'; -} -TopLevelWrapper.prototype.render = function () { - // this.props is actually a ReactElement - return this.props; -}; - -/** - * Mounting is the process of initializing a React component by creating its - * representative DOM elements and inserting them into a supplied `container`. - * Any prior content inside `container` is destroyed in the process. - * - * ReactMount.render( - * component, - * document.getElementById('container') - * ); - * - * <div id="container"> <-- Supplied `container`. - * <div data-reactid=".3"> <-- Rendered reactRoot of React - * // ... component. - * </div> - * </div> - * - * Inside of `container`, the first element rendered is the "reactRoot". - */ -var ReactMount = { - - TopLevelWrapper: TopLevelWrapper, - - /** Exposed for debugging purposes **/ - _instancesByReactRootID: instancesByReactRootID, - - /** - * This is a hook provided to support rendering React components while - * ensuring that the apparent scroll position of its `container` does not - * change. - * - * @param {DOMElement} container The `container` being rendered into. - * @param {function} renderCallback This must be called once to do the render. - */ - scrollMonitor: function (container, renderCallback) { - renderCallback(); - }, - - /** - * Take a component that's already mounted into the DOM and replace its props - * @param {ReactComponent} prevComponent component instance already in the DOM - * @param {ReactElement} nextElement component instance to render - * @param {DOMElement} container container to render into - * @param {?function} callback function triggered on completion - */ - _updateRootComponent: function (prevComponent, nextElement, container, callback) { - ReactMount.scrollMonitor(container, function () { - ReactUpdateQueue.enqueueElementInternal(prevComponent, nextElement); - if (callback) { - ReactUpdateQueue.enqueueCallbackInternal(prevComponent, callback); - } - }); - - if ("development" !== 'production') { - // Record the root element in case it later gets transplanted. - rootElementsByReactRootID[getReactRootID(container)] = getReactRootElementInContainer(container); - } - - return prevComponent; - }, - - /** - * Register a component into the instance map and starts scroll value - * monitoring - * @param {ReactComponent} nextComponent component instance to render - * @param {DOMElement} container container to render into - * @return {string} reactRoot ID prefix - */ - _registerComponent: function (nextComponent, container) { - !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? "development" !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : invariant(false) : undefined; - - ReactBrowserEventEmitter.ensureScrollValueMonitoring(); - - var reactRootID = ReactMount.registerContainer(container); - instancesByReactRootID[reactRootID] = nextComponent; - return reactRootID; - }, - - /** - * Render a new component into the DOM. - * @param {ReactElement} nextElement element to render - * @param {DOMElement} container container to render into - * @param {boolean} shouldReuseMarkup if we should skip the markup insertion - * @return {ReactComponent} nextComponent - */ - _renderNewRootComponent: function (nextElement, container, shouldReuseMarkup, context) { - // Various parts of our code (such as ReactCompositeComponent's - // _renderValidatedComponent) assume that calls to render aren't nested; - // verify that that's the case. - "development" !== 'production' ? warning(ReactCurrentOwner.current == null, '_renderNewRootComponent(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from ' + 'render is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : undefined; - - var componentInstance = instantiateReactComponent(nextElement, null); - var reactRootID = ReactMount._registerComponent(componentInstance, container); - - // The initial render is synchronous but any updates that happen during - // rendering, in componentWillMount or componentDidMount, will be batched - // according to the current batching strategy. - - ReactUpdates.batchedUpdates(batchedMountComponentIntoNode, componentInstance, reactRootID, container, shouldReuseMarkup, context); - - if ("development" !== 'production') { - // Record the root element in case it later gets transplanted. - rootElementsByReactRootID[reactRootID] = getReactRootElementInContainer(container); - } - - return componentInstance; - }, - - /** - * Renders a React component into the DOM in the supplied `container`. - * - * If the React component was previously rendered into `container`, this will - * perform an update on it and only mutate the DOM as necessary to reflect the - * latest React component. - * - * @param {ReactComponent} parentComponent The conceptual parent of this render tree. - * @param {ReactElement} nextElement Component element to render. - * @param {DOMElement} container DOM element to render into. - * @param {?function} callback function triggered on completion - * @return {ReactComponent} Component instance rendered in `container`. - */ - renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) { - !(parentComponent != null && parentComponent._reactInternalInstance != null) ? "development" !== 'production' ? invariant(false, 'parentComponent must be a valid React Component') : invariant(false) : undefined; - return ReactMount._renderSubtreeIntoContainer(parentComponent, nextElement, container, callback); - }, - - _renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) { - !ReactElement.isValidElement(nextElement) ? "development" !== 'production' ? invariant(false, 'ReactDOM.render(): Invalid component element.%s', typeof nextElement === 'string' ? ' Instead of passing an element string, make sure to instantiate ' + 'it by passing it to React.createElement.' : typeof nextElement === 'function' ? ' Instead of passing a component class, make sure to instantiate ' + 'it by passing it to React.createElement.' : - // Check if it quacks like an element - nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : invariant(false) : undefined; - - "development" !== 'production' ? warning(!container || !container.tagName || container.tagName.toUpperCase() !== 'BODY', 'render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.') : undefined; - - var nextWrappedElement = new ReactElement(TopLevelWrapper, null, null, null, null, null, nextElement); - - var prevComponent = instancesByReactRootID[getReactRootID(container)]; - - if (prevComponent) { - var prevWrappedElement = prevComponent._currentElement; - var prevElement = prevWrappedElement.props; - if (shouldUpdateReactComponent(prevElement, nextElement)) { - return ReactMount._updateRootComponent(prevComponent, nextWrappedElement, container, callback)._renderedComponent.getPublicInstance(); - } else { - ReactMount.unmountComponentAtNode(container); - } - } - - var reactRootElement = getReactRootElementInContainer(container); - var containerHasReactMarkup = reactRootElement && !!internalGetID(reactRootElement); - var containerHasNonRootReactChild = hasNonRootReactChild(container); - - if ("development" !== 'production') { - "development" !== 'production' ? warning(!containerHasNonRootReactChild, 'render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.') : undefined; - - if (!containerHasReactMarkup || reactRootElement.nextSibling) { - var rootElementSibling = reactRootElement; - while (rootElementSibling) { - if (internalGetID(rootElementSibling)) { - "development" !== 'production' ? warning(false, 'render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.') : undefined; - break; - } - rootElementSibling = rootElementSibling.nextSibling; - } - } - } - - var shouldReuseMarkup = containerHasReactMarkup && !prevComponent && !containerHasNonRootReactChild; - var component = ReactMount._renderNewRootComponent(nextWrappedElement, container, shouldReuseMarkup, parentComponent != null ? parentComponent._reactInternalInstance._processChildContext(parentComponent._reactInternalInstance._context) : emptyObject)._renderedComponent.getPublicInstance(); - if (callback) { - callback.call(component); - } - return component; - }, - - /** - * Renders a React component into the DOM in the supplied `container`. - * - * If the React component was previously rendered into `container`, this will - * perform an update on it and only mutate the DOM as necessary to reflect the - * latest React component. - * - * @param {ReactElement} nextElement Component element to render. - * @param {DOMElement} container DOM element to render into. - * @param {?function} callback function triggered on completion - * @return {ReactComponent} Component instance rendered in `container`. - */ - render: function (nextElement, container, callback) { - return ReactMount._renderSubtreeIntoContainer(null, nextElement, container, callback); - }, - - /** - * Registers a container node into which React components will be rendered. - * This also creates the "reactRoot" ID that will be assigned to the element - * rendered within. - * - * @param {DOMElement} container DOM element to register as a container. - * @return {string} The "reactRoot" ID of elements rendered within. - */ - registerContainer: function (container) { - var reactRootID = getReactRootID(container); - if (reactRootID) { - // If one exists, make sure it is a valid "reactRoot" ID. - reactRootID = ReactInstanceHandles.getReactRootIDFromNodeID(reactRootID); - } - if (!reactRootID) { - // No valid "reactRoot" ID found, create one. - reactRootID = ReactInstanceHandles.createReactRootID(); - } - containersByReactRootID[reactRootID] = container; - return reactRootID; - }, - - /** - * Unmounts and destroys the React component rendered in the `container`. - * - * @param {DOMElement} container DOM element containing a React component. - * @return {boolean} True if a component was found in and unmounted from - * `container` - */ - unmountComponentAtNode: function (container) { - // Various parts of our code (such as ReactCompositeComponent's - // _renderValidatedComponent) assume that calls to render aren't nested; - // verify that that's the case. (Strictly speaking, unmounting won't cause a - // render but we still don't expect to be in a render call here.) - "development" !== 'production' ? warning(ReactCurrentOwner.current == null, 'unmountComponentAtNode(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from render ' + 'is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : undefined; - - !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? "development" !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : invariant(false) : undefined; - - var reactRootID = getReactRootID(container); - var component = instancesByReactRootID[reactRootID]; - if (!component) { - // Check if the node being unmounted was rendered by React, but isn't a - // root node. - var containerHasNonRootReactChild = hasNonRootReactChild(container); - - // Check if the container itself is a React root node. - var containerID = internalGetID(container); - var isContainerReactRoot = containerID && containerID === ReactInstanceHandles.getReactRootIDFromNodeID(containerID); - - if ("development" !== 'production') { - "development" !== 'production' ? warning(!containerHasNonRootReactChild, 'unmountComponentAtNode(): The node you\'re attempting to unmount ' + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : undefined; - } - - return false; - } - ReactUpdates.batchedUpdates(unmountComponentFromNode, component, container); - delete instancesByReactRootID[reactRootID]; - delete containersByReactRootID[reactRootID]; - if ("development" !== 'production') { - delete rootElementsByReactRootID[reactRootID]; - } - return true; - }, - - /** - * Finds the container DOM element that contains React component to which the - * supplied DOM `id` belongs. - * - * @param {string} id The ID of an element rendered by a React component. - * @return {?DOMElement} DOM element that contains the `id`. - */ - findReactContainerForID: function (id) { - var reactRootID = ReactInstanceHandles.getReactRootIDFromNodeID(id); - var container = containersByReactRootID[reactRootID]; - - if ("development" !== 'production') { - var rootElement = rootElementsByReactRootID[reactRootID]; - if (rootElement && rootElement.parentNode !== container) { - "development" !== 'production' ? warning( - // Call internalGetID here because getID calls isValid which calls - // findReactContainerForID (this function). - internalGetID(rootElement) === reactRootID, 'ReactMount: Root element ID differed from reactRootID.') : undefined; - var containerChild = container.firstChild; - if (containerChild && reactRootID === internalGetID(containerChild)) { - // If the container has a new child with the same ID as the old - // root element, then rootElementsByReactRootID[reactRootID] is - // just stale and needs to be updated. The case that deserves a - // warning is when the container is empty. - rootElementsByReactRootID[reactRootID] = containerChild; - } else { - "development" !== 'production' ? warning(false, 'ReactMount: Root element has been removed from its original ' + 'container. New container: %s', rootElement.parentNode) : undefined; - } - } - } - - return container; - }, - - /** - * Finds an element rendered by React with the supplied ID. - * - * @param {string} id ID of a DOM node in the React component. - * @return {DOMElement} Root DOM node of the React component. - */ - findReactNodeByID: function (id) { - var reactRoot = ReactMount.findReactContainerForID(id); - return ReactMount.findComponentRoot(reactRoot, id); - }, - - /** - * Traverses up the ancestors of the supplied node to find a node that is a - * DOM representation of a React component rendered by this copy of React. - * - * @param {*} node - * @return {?DOMEventTarget} - * @internal - */ - getFirstReactDOM: function (node) { - return findFirstReactDOMImpl(node); - }, - - /** - * Finds a node with the supplied `targetID` inside of the supplied - * `ancestorNode`. Exploits the ID naming scheme to perform the search - * quickly. - * - * @param {DOMEventTarget} ancestorNode Search from this root. - * @pararm {string} targetID ID of the DOM representation of the component. - * @return {DOMEventTarget} DOM node with the supplied `targetID`. - * @internal - */ - findComponentRoot: function (ancestorNode, targetID) { - var firstChildren = findComponentRootReusableArray; - var childIndex = 0; - - var deepestAncestor = findDeepestCachedAncestor(targetID) || ancestorNode; - - if ("development" !== 'production') { - // This will throw on the next line; give an early warning - "development" !== 'production' ? warning(deepestAncestor != null, 'React can\'t find the root component node for data-reactid value ' + '`%s`. If you\'re seeing this message, it probably means that ' + 'you\'ve loaded two copies of React on the page. At this time, only ' + 'a single copy of React can be loaded at a time.', targetID) : undefined; - } - - firstChildren[0] = deepestAncestor.firstChild; - firstChildren.length = 1; - - while (childIndex < firstChildren.length) { - var child = firstChildren[childIndex++]; - var targetChild; - - while (child) { - var childID = ReactMount.getID(child); - if (childID) { - // Even if we find the node we're looking for, we finish looping - // through its siblings to ensure they're cached so that we don't have - // to revisit this node again. Otherwise, we make n^2 calls to getID - // when visiting the many children of a single node in order. - - if (targetID === childID) { - targetChild = child; - } else if (ReactInstanceHandles.isAncestorIDOf(childID, targetID)) { - // If we find a child whose ID is an ancestor of the given ID, - // then we can be sure that we only want to search the subtree - // rooted at this child, so we can throw out the rest of the - // search state. - firstChildren.length = childIndex = 0; - firstChildren.push(child.firstChild); - } - } else { - // If this child had no ID, then there's a chance that it was - // injected automatically by the browser, as when a `<table>` - // element sprouts an extra `<tbody>` child as a side effect of - // `.innerHTML` parsing. Optimistically continue down this - // branch, but not before examining the other siblings. - firstChildren.push(child.firstChild); - } - - child = child.nextSibling; - } - - if (targetChild) { - // Emptying firstChildren/findComponentRootReusableArray is - // not necessary for correctness, but it helps the GC reclaim - // any nodes that were left at the end of the search. - firstChildren.length = 0; - - return targetChild; - } - } - - firstChildren.length = 0; - - !false ? "development" !== 'production' ? invariant(false, 'findComponentRoot(..., %s): Unable to find element. This probably ' + 'means the DOM was unexpectedly mutated (e.g., by the browser), ' + 'usually due to forgetting a <tbody> when using tables, nesting tags ' + 'like <form>, <p>, or <a>, or using non-SVG elements in an <svg> ' + 'parent. ' + 'Try inspecting the child nodes of the element with React ID `%s`.', targetID, ReactMount.getID(ancestorNode)) : invariant(false) : undefined; - }, - - _mountImageIntoNode: function (markup, container, shouldReuseMarkup, transaction) { - !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? "development" !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : invariant(false) : undefined; - - if (shouldReuseMarkup) { - var rootElement = getReactRootElementInContainer(container); - if (ReactMarkupChecksum.canReuseMarkup(markup, rootElement)) { - return; - } else { - var checksum = rootElement.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME); - rootElement.removeAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME); - - var rootMarkup = rootElement.outerHTML; - rootElement.setAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME, checksum); - - var normalizedMarkup = markup; - if ("development" !== 'production') { - // because rootMarkup is retrieved from the DOM, various normalizations - // will have occurred which will not be present in `markup`. Here, - // insert markup into a <div> or <iframe> depending on the container - // type to perform the same normalizations before comparing. - var normalizer; - if (container.nodeType === ELEMENT_NODE_TYPE) { - normalizer = document.createElement('div'); - normalizer.innerHTML = markup; - normalizedMarkup = normalizer.innerHTML; - } else { - normalizer = document.createElement('iframe'); - document.body.appendChild(normalizer); - normalizer.contentDocument.write(markup); - normalizedMarkup = normalizer.contentDocument.documentElement.outerHTML; - document.body.removeChild(normalizer); - } - } - - var diffIndex = firstDifferenceIndex(normalizedMarkup, rootMarkup); - var difference = ' (client) ' + normalizedMarkup.substring(diffIndex - 20, diffIndex + 20) + '\n (server) ' + rootMarkup.substring(diffIndex - 20, diffIndex + 20); - - !(container.nodeType !== DOC_NODE_TYPE) ? "development" !== 'production' ? invariant(false, 'You\'re trying to render a component to the document using ' + 'server rendering but the checksum was invalid. This usually ' + 'means you rendered a different component type or props on ' + 'the client from the one on the server, or your render() ' + 'methods are impure. React cannot handle this case due to ' + 'cross-browser quirks by rendering at the document root. You ' + 'should look for environment dependent code in your components ' + 'and ensure the props are the same client and server side:\n%s', difference) : invariant(false) : undefined; - - if ("development" !== 'production') { - "development" !== 'production' ? warning(false, 'React attempted to reuse markup in a container but the ' + 'checksum was invalid. This generally means that you are ' + 'using server rendering and the markup generated on the ' + 'server was not what the client was expecting. React injected ' + 'new markup to compensate which works but you have lost many ' + 'of the benefits of server rendering. Instead, figure out ' + 'why the markup being generated is different on the client ' + 'or server:\n%s', difference) : undefined; - } - } - } - - !(container.nodeType !== DOC_NODE_TYPE) ? "development" !== 'production' ? invariant(false, 'You\'re trying to render a component to the document but ' + 'you didn\'t use server rendering. We can\'t do this ' + 'without using server rendering due to cross-browser quirks. ' + 'See ReactDOMServer.renderToString() for server rendering.') : invariant(false) : undefined; - - if (transaction.useCreateElement) { - while (container.lastChild) { - container.removeChild(container.lastChild); - } - container.appendChild(markup); - } else { - setInnerHTML(container, markup); - } - }, - - ownerDocumentContextKey: ownerDocumentContextKey, - - /** - * React ID utilities. - */ - - getReactRootID: getReactRootID, - - getID: getID, - - setID: setID, - - getNode: getNode, - - getNodeFromInstance: getNodeFromInstance, - - isValid: isValid, - - purgeID: purgeID -}; - -ReactPerf.measureMethods(ReactMount, 'ReactMount', { - _renderNewRootComponent: '_renderNewRootComponent', - _mountImageIntoNode: '_mountImageIntoNode' -}); - -module.exports = ReactMount; -},{"10":10,"117":117,"123":123,"125":125,"127":127,"132":132,"136":136,"143":143,"154":154,"23":23,"26":26,"34":34,"39":39,"52":52,"55":55,"61":61,"62":62,"64":64,"71":71,"76":76,"82":82,"83":83}],66:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactMultiChild - * @typechecks static-only - */ - -'use strict'; - -var ReactComponentEnvironment = _dereq_(32); -var ReactMultiChildUpdateTypes = _dereq_(67); - -var ReactCurrentOwner = _dereq_(34); -var ReactReconciler = _dereq_(76); -var ReactChildReconciler = _dereq_(27); - -var flattenChildren = _dereq_(108); - -/** - * Updating children of a component may trigger recursive updates. The depth is - * used to batch recursive updates to render markup more efficiently. - * - * @type {number} - * @private - */ -var updateDepth = 0; - -/** - * Queue of update configuration objects. - * - * Each object has a `type` property that is in `ReactMultiChildUpdateTypes`. - * - * @type {array<object>} - * @private - */ -var updateQueue = []; - -/** - * Queue of markup to be rendered. - * - * @type {array<string>} - * @private - */ -var markupQueue = []; - -/** - * Enqueues markup to be rendered and inserted at a supplied index. - * - * @param {string} parentID ID of the parent component. - * @param {string} markup Markup that renders into an element. - * @param {number} toIndex Destination index. - * @private - */ -function enqueueInsertMarkup(parentID, markup, toIndex) { - // NOTE: Null values reduce hidden classes. - updateQueue.push({ - parentID: parentID, - parentNode: null, - type: ReactMultiChildUpdateTypes.INSERT_MARKUP, - markupIndex: markupQueue.push(markup) - 1, - content: null, - fromIndex: null, - toIndex: toIndex - }); -} - -/** - * Enqueues moving an existing element to another index. - * - * @param {string} parentID ID of the parent component. - * @param {number} fromIndex Source index of the existing element. - * @param {number} toIndex Destination index of the element. - * @private - */ -function enqueueMove(parentID, fromIndex, toIndex) { - // NOTE: Null values reduce hidden classes. - updateQueue.push({ - parentID: parentID, - parentNode: null, - type: ReactMultiChildUpdateTypes.MOVE_EXISTING, - markupIndex: null, - content: null, - fromIndex: fromIndex, - toIndex: toIndex - }); -} - -/** - * Enqueues removing an element at an index. - * - * @param {string} parentID ID of the parent component. - * @param {number} fromIndex Index of the element to remove. - * @private - */ -function enqueueRemove(parentID, fromIndex) { - // NOTE: Null values reduce hidden classes. - updateQueue.push({ - parentID: parentID, - parentNode: null, - type: ReactMultiChildUpdateTypes.REMOVE_NODE, - markupIndex: null, - content: null, - fromIndex: fromIndex, - toIndex: null - }); -} - -/** - * Enqueues setting the markup of a node. - * - * @param {string} parentID ID of the parent component. - * @param {string} markup Markup that renders into an element. - * @private - */ -function enqueueSetMarkup(parentID, markup) { - // NOTE: Null values reduce hidden classes. - updateQueue.push({ - parentID: parentID, - parentNode: null, - type: ReactMultiChildUpdateTypes.SET_MARKUP, - markupIndex: null, - content: markup, - fromIndex: null, - toIndex: null - }); -} - -/** - * Enqueues setting the text content. - * - * @param {string} parentID ID of the parent component. - * @param {string} textContent Text content to set. - * @private - */ -function enqueueTextContent(parentID, textContent) { - // NOTE: Null values reduce hidden classes. - updateQueue.push({ - parentID: parentID, - parentNode: null, - type: ReactMultiChildUpdateTypes.TEXT_CONTENT, - markupIndex: null, - content: textContent, - fromIndex: null, - toIndex: null - }); -} - -/** - * Processes any enqueued updates. - * - * @private - */ -function processQueue() { - if (updateQueue.length) { - ReactComponentEnvironment.processChildrenUpdates(updateQueue, markupQueue); - clearQueue(); - } -} - -/** - * Clears any enqueued updates. - * - * @private - */ -function clearQueue() { - updateQueue.length = 0; - markupQueue.length = 0; -} - -/** - * ReactMultiChild are capable of reconciling multiple children. - * - * @class ReactMultiChild - * @internal - */ -var ReactMultiChild = { - - /** - * Provides common functionality for components that must reconcile multiple - * children. This is used by `ReactDOMComponent` to mount, update, and - * unmount child components. - * - * @lends {ReactMultiChild.prototype} - */ - Mixin: { - - _reconcilerInstantiateChildren: function (nestedChildren, transaction, context) { - if ("development" !== 'production') { - if (this._currentElement) { - try { - ReactCurrentOwner.current = this._currentElement._owner; - return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context); - } finally { - ReactCurrentOwner.current = null; - } - } - } - return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context); - }, - - _reconcilerUpdateChildren: function (prevChildren, nextNestedChildrenElements, transaction, context) { - var nextChildren; - if ("development" !== 'production') { - if (this._currentElement) { - try { - ReactCurrentOwner.current = this._currentElement._owner; - nextChildren = flattenChildren(nextNestedChildrenElements); - } finally { - ReactCurrentOwner.current = null; - } - return ReactChildReconciler.updateChildren(prevChildren, nextChildren, transaction, context); - } - } - nextChildren = flattenChildren(nextNestedChildrenElements); - return ReactChildReconciler.updateChildren(prevChildren, nextChildren, transaction, context); - }, - - /** - * Generates a "mount image" for each of the supplied children. In the case - * of `ReactDOMComponent`, a mount image is a string of markup. - * - * @param {?object} nestedChildren Nested child maps. - * @return {array} An array of mounted representations. - * @internal - */ - mountChildren: function (nestedChildren, transaction, context) { - var children = this._reconcilerInstantiateChildren(nestedChildren, transaction, context); - this._renderedChildren = children; - var mountImages = []; - var index = 0; - for (var name in children) { - if (children.hasOwnProperty(name)) { - var child = children[name]; - // Inlined for performance, see `ReactInstanceHandles.createReactID`. - var rootID = this._rootNodeID + name; - var mountImage = ReactReconciler.mountComponent(child, rootID, transaction, context); - child._mountIndex = index++; - mountImages.push(mountImage); - } - } - return mountImages; - }, - - /** - * Replaces any rendered children with a text content string. - * - * @param {string} nextContent String of content. - * @internal - */ - updateTextContent: function (nextContent) { - updateDepth++; - var errorThrown = true; - try { - var prevChildren = this._renderedChildren; - // Remove any rendered children. - ReactChildReconciler.unmountChildren(prevChildren); - // TODO: The setTextContent operation should be enough - for (var name in prevChildren) { - if (prevChildren.hasOwnProperty(name)) { - this._unmountChild(prevChildren[name]); - } - } - // Set new text content. - this.setTextContent(nextContent); - errorThrown = false; - } finally { - updateDepth--; - if (!updateDepth) { - if (errorThrown) { - clearQueue(); - } else { - processQueue(); - } - } - } - }, - - /** - * Replaces any rendered children with a markup string. - * - * @param {string} nextMarkup String of markup. - * @internal - */ - updateMarkup: function (nextMarkup) { - updateDepth++; - var errorThrown = true; - try { - var prevChildren = this._renderedChildren; - // Remove any rendered children. - ReactChildReconciler.unmountChildren(prevChildren); - for (var name in prevChildren) { - if (prevChildren.hasOwnProperty(name)) { - this._unmountChildByName(prevChildren[name], name); - } - } - this.setMarkup(nextMarkup); - errorThrown = false; - } finally { - updateDepth--; - if (!updateDepth) { - if (errorThrown) { - clearQueue(); - } else { - processQueue(); - } - } - } - }, - - /** - * Updates the rendered children with new children. - * - * @param {?object} nextNestedChildrenElements Nested child element maps. - * @param {ReactReconcileTransaction} transaction - * @internal - */ - updateChildren: function (nextNestedChildrenElements, transaction, context) { - updateDepth++; - var errorThrown = true; - try { - this._updateChildren(nextNestedChildrenElements, transaction, context); - errorThrown = false; - } finally { - updateDepth--; - if (!updateDepth) { - if (errorThrown) { - clearQueue(); - } else { - processQueue(); - } - } - } - }, - - /** - * Improve performance by isolating this hot code path from the try/catch - * block in `updateChildren`. - * - * @param {?object} nextNestedChildrenElements Nested child element maps. - * @param {ReactReconcileTransaction} transaction - * @final - * @protected - */ - _updateChildren: function (nextNestedChildrenElements, transaction, context) { - var prevChildren = this._renderedChildren; - var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, transaction, context); - this._renderedChildren = nextChildren; - if (!nextChildren && !prevChildren) { - return; - } - var name; - // `nextIndex` will increment for each child in `nextChildren`, but - // `lastIndex` will be the last index visited in `prevChildren`. - var lastIndex = 0; - var nextIndex = 0; - for (name in nextChildren) { - if (!nextChildren.hasOwnProperty(name)) { - continue; - } - var prevChild = prevChildren && prevChildren[name]; - var nextChild = nextChildren[name]; - if (prevChild === nextChild) { - this.moveChild(prevChild, nextIndex, lastIndex); - lastIndex = Math.max(prevChild._mountIndex, lastIndex); - prevChild._mountIndex = nextIndex; - } else { - if (prevChild) { - // Update `lastIndex` before `_mountIndex` gets unset by unmounting. - lastIndex = Math.max(prevChild._mountIndex, lastIndex); - this._unmountChild(prevChild); - } - // The child must be instantiated before it's mounted. - this._mountChildByNameAtIndex(nextChild, name, nextIndex, transaction, context); - } - nextIndex++; - } - // Remove children that are no longer present. - for (name in prevChildren) { - if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) { - this._unmountChild(prevChildren[name]); - } - } - }, - - /** - * Unmounts all rendered children. This should be used to clean up children - * when this component is unmounted. - * - * @internal - */ - unmountChildren: function () { - var renderedChildren = this._renderedChildren; - ReactChildReconciler.unmountChildren(renderedChildren); - this._renderedChildren = null; - }, - - /** - * Moves a child component to the supplied index. - * - * @param {ReactComponent} child Component to move. - * @param {number} toIndex Destination index of the element. - * @param {number} lastIndex Last index visited of the siblings of `child`. - * @protected - */ - moveChild: function (child, toIndex, lastIndex) { - // If the index of `child` is less than `lastIndex`, then it needs to - // be moved. Otherwise, we do not need to move it because a child will be - // inserted or moved before `child`. - if (child._mountIndex < lastIndex) { - enqueueMove(this._rootNodeID, child._mountIndex, toIndex); - } - }, - - /** - * Creates a child component. - * - * @param {ReactComponent} child Component to create. - * @param {string} mountImage Markup to insert. - * @protected - */ - createChild: function (child, mountImage) { - enqueueInsertMarkup(this._rootNodeID, mountImage, child._mountIndex); - }, - - /** - * Removes a child component. - * - * @param {ReactComponent} child Child to remove. - * @protected - */ - removeChild: function (child) { - enqueueRemove(this._rootNodeID, child._mountIndex); - }, - - /** - * Sets this text content string. - * - * @param {string} textContent Text content to set. - * @protected - */ - setTextContent: function (textContent) { - enqueueTextContent(this._rootNodeID, textContent); - }, - - /** - * Sets this markup string. - * - * @param {string} markup Markup to set. - * @protected - */ - setMarkup: function (markup) { - enqueueSetMarkup(this._rootNodeID, markup); - }, - - /** - * Mounts a child with the supplied name. - * - * NOTE: This is part of `updateChildren` and is here for readability. - * - * @param {ReactComponent} child Component to mount. - * @param {string} name Name of the child. - * @param {number} index Index at which to insert the child. - * @param {ReactReconcileTransaction} transaction - * @private - */ - _mountChildByNameAtIndex: function (child, name, index, transaction, context) { - // Inlined for performance, see `ReactInstanceHandles.createReactID`. - var rootID = this._rootNodeID + name; - var mountImage = ReactReconciler.mountComponent(child, rootID, transaction, context); - child._mountIndex = index; - this.createChild(child, mountImage); - }, - - /** - * Unmounts a rendered child. - * - * NOTE: This is part of `updateChildren` and is here for readability. - * - * @param {ReactComponent} child Component to unmount. - * @private - */ - _unmountChild: function (child) { - this.removeChild(child); - child._mountIndex = null; - } - - } - -}; - -module.exports = ReactMultiChild; -},{"108":108,"27":27,"32":32,"34":34,"67":67,"76":76}],67:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactMultiChildUpdateTypes - */ - -'use strict'; - -var keyMirror = _dereq_(146); - -/** - * When a component's children are updated, a series of update configuration - * objects are created in order to batch and serialize the required changes. - * - * Enumerates all the possible types of update configurations. - * - * @internal - */ -var ReactMultiChildUpdateTypes = keyMirror({ - INSERT_MARKUP: null, - MOVE_EXISTING: null, - REMOVE_NODE: null, - SET_MARKUP: null, - TEXT_CONTENT: null -}); - -module.exports = ReactMultiChildUpdateTypes; -},{"146":146}],68:[function(_dereq_,module,exports){ -/** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactNativeComponent - */ - -'use strict'; - -var assign = _dereq_(23); -var invariant = _dereq_(143); - -var autoGenerateWrapperClass = null; -var genericComponentClass = null; -// This registry keeps track of wrapper classes around native tags. -var tagToComponentClass = {}; -var textComponentClass = null; - -var ReactNativeComponentInjection = { - // This accepts a class that receives the tag string. This is a catch all - // that can render any kind of tag. - injectGenericComponentClass: function (componentClass) { - genericComponentClass = componentClass; - }, - // This accepts a text component class that takes the text string to be - // rendered as props. - injectTextComponentClass: function (componentClass) { - textComponentClass = componentClass; - }, - // This accepts a keyed object with classes as values. Each key represents a - // tag. That particular tag will use this class instead of the generic one. - injectComponentClasses: function (componentClasses) { - assign(tagToComponentClass, componentClasses); - } -}; - -/** - * Get a composite component wrapper class for a specific tag. - * - * @param {ReactElement} element The tag for which to get the class. - * @return {function} The React class constructor function. - */ -function getComponentClassForElement(element) { - if (typeof element.type === 'function') { - return element.type; - } - var tag = element.type; - var componentClass = tagToComponentClass[tag]; - if (componentClass == null) { - tagToComponentClass[tag] = componentClass = autoGenerateWrapperClass(tag); - } - return componentClass; -} - -/** - * Get a native internal component class for a specific tag. - * - * @param {ReactElement} element The element to create. - * @return {function} The internal class constructor function. - */ -function createInternalComponent(element) { - !genericComponentClass ? "development" !== 'production' ? invariant(false, 'There is no registered component for the tag %s', element.type) : invariant(false) : undefined; - return new genericComponentClass(element.type, element.props); -} - -/** - * @param {ReactText} text - * @return {ReactComponent} - */ -function createInstanceForText(text) { - return new textComponentClass(text); -} - -/** - * @param {ReactComponent} component - * @return {boolean} - */ -function isTextComponent(component) { - return component instanceof textComponentClass; -} - -var ReactNativeComponent = { - getComponentClassForElement: getComponentClassForElement, - createInternalComponent: createInternalComponent, - createInstanceForText: createInstanceForText, - isTextComponent: isTextComponent, - injection: ReactNativeComponentInjection -}; - -module.exports = ReactNativeComponent; -},{"143":143,"23":23}],69:[function(_dereq_,module,exports){ -/** - * Copyright 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactNoopUpdateQueue - */ - -'use strict'; - -var warning = _dereq_(154); - -function warnTDZ(publicInstance, callerName) { - if ("development" !== 'production') { - "development" !== 'production' ? warning(false, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, publicInstance.constructor && publicInstance.constructor.displayName || '') : undefined; - } -} - -/** - * This is the abstract API for an update queue. - */ -var ReactNoopUpdateQueue = { - - /** - * Checks whether or not this composite component is mounted. - * @param {ReactClass} publicInstance The instance we want to test. - * @return {boolean} True if mounted, false otherwise. - * @protected - * @final - */ - isMounted: function (publicInstance) { - return false; - }, - - /** - * Enqueue a callback that will be executed after all the pending updates - * have processed. - * - * @param {ReactClass} publicInstance The instance to use as `this` context. - * @param {?function} callback Called after state is updated. - * @internal - */ - enqueueCallback: function (publicInstance, callback) {}, - - /** - * Forces an update. This should only be invoked when it is known with - * certainty that we are **not** in a DOM transaction. - * - * You may want to call this when you know that some deeper aspect of the - * component's state has changed but `setState` was not called. - * - * This will not invoke `shouldComponentUpdate`, but it will invoke - * `componentWillUpdate` and `componentDidUpdate`. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @internal - */ - enqueueForceUpdate: function (publicInstance) { - warnTDZ(publicInstance, 'forceUpdate'); - }, - - /** - * Replaces all of the state. Always use this or `setState` to mutate state. - * You should treat `this.state` as immutable. - * - * There is no guarantee that `this.state` will be immediately updated, so - * accessing `this.state` after calling this method may return the old value. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {object} completeState Next state. - * @internal - */ - enqueueReplaceState: function (publicInstance, completeState) { - warnTDZ(publicInstance, 'replaceState'); - }, - - /** - * Sets a subset of the state. This only exists because _pendingState is - * internal. This provides a merging strategy that is not available to deep - * properties which is confusing. TODO: Expose pendingState or don't use it - * during the merge. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {object} partialState Next partial state to be merged with state. - * @internal - */ - enqueueSetState: function (publicInstance, partialState) { - warnTDZ(publicInstance, 'setState'); - }, - - /** - * Sets a subset of the props. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {object} partialProps Subset of the next props. - * @internal - */ - enqueueSetProps: function (publicInstance, partialProps) { - warnTDZ(publicInstance, 'setProps'); - }, - - /** - * Replaces all of the props. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {object} props New props. - * @internal - */ - enqueueReplaceProps: function (publicInstance, props) { - warnTDZ(publicInstance, 'replaceProps'); - } - -}; - -module.exports = ReactNoopUpdateQueue; -},{"154":154}],70:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactOwner - */ - -'use strict'; - -var invariant = _dereq_(143); - -/** - * ReactOwners are capable of storing references to owned components. - * - * All components are capable of //being// referenced by owner components, but - * only ReactOwner components are capable of //referencing// owned components. - * The named reference is known as a "ref". - * - * Refs are available when mounted and updated during reconciliation. - * - * var MyComponent = React.createClass({ - * render: function() { - * return ( - * <div onClick={this.handleClick}> - * <CustomComponent ref="custom" /> - * </div> - * ); - * }, - * handleClick: function() { - * this.refs.custom.handleClick(); - * }, - * componentDidMount: function() { - * this.refs.custom.initialize(); - * } - * }); - * - * Refs should rarely be used. When refs are used, they should only be done to - * control data that is not handled by React's data flow. - * - * @class ReactOwner - */ -var ReactOwner = { - - /** - * @param {?object} object - * @return {boolean} True if `object` is a valid owner. - * @final - */ - isValidOwner: function (object) { - return !!(object && typeof object.attachRef === 'function' && typeof object.detachRef === 'function'); - }, - - /** - * Adds a component by ref to an owner component. - * - * @param {ReactComponent} component Component to reference. - * @param {string} ref Name by which to refer to the component. - * @param {ReactOwner} owner Component on which to record the ref. - * @final - * @internal - */ - addComponentAsRefTo: function (component, ref, owner) { - !ReactOwner.isValidOwner(owner) ? "development" !== 'production' ? invariant(false, 'addComponentAsRefTo(...): Only a ReactOwner can have refs. You might ' + 'be adding a ref to a component that was not created inside a component\'s ' + '`render` method, or you have multiple copies of React loaded ' + '(details: https://fb.me/react-refs-must-have-owner).') : invariant(false) : undefined; - owner.attachRef(ref, component); - }, - - /** - * Removes a component by ref from an owner component. - * - * @param {ReactComponent} component Component to dereference. - * @param {string} ref Name of the ref to remove. - * @param {ReactOwner} owner Component on which the ref is recorded. - * @final - * @internal - */ - removeComponentAsRefFrom: function (component, ref, owner) { - !ReactOwner.isValidOwner(owner) ? "development" !== 'production' ? invariant(false, 'removeComponentAsRefFrom(...): Only a ReactOwner can have refs. You might ' + 'be removing a ref to a component that was not created inside a component\'s ' + '`render` method, or you have multiple copies of React loaded ' + '(details: https://fb.me/react-refs-must-have-owner).') : invariant(false) : undefined; - // Check that `component` is still the current ref because we do not want to - // detach the ref if another component stole it. - if (owner.getPublicInstance().refs[ref] === component.getPublicInstance()) { - owner.detachRef(ref); - } - } - -}; - -module.exports = ReactOwner; -},{"143":143}],71:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactPerf - * @typechecks static-only - */ - -'use strict'; - -/** - * ReactPerf is a general AOP system designed to measure performance. This - * module only has the hooks: see ReactDefaultPerf for the analysis tool. - */ -var ReactPerf = { - /** - * Boolean to enable/disable measurement. Set to false by default to prevent - * accidental logging and perf loss. - */ - enableMeasure: false, - - /** - * Holds onto the measure function in use. By default, don't measure - * anything, but we'll override this if we inject a measure function. - */ - storedMeasure: _noMeasure, - - /** - * @param {object} object - * @param {string} objectName - * @param {object<string>} methodNames - */ - measureMethods: function (object, objectName, methodNames) { - if ("development" !== 'production') { - for (var key in methodNames) { - if (!methodNames.hasOwnProperty(key)) { - continue; - } - object[key] = ReactPerf.measure(objectName, methodNames[key], object[key]); - } - } - }, - - /** - * Use this to wrap methods you want to measure. Zero overhead in production. - * - * @param {string} objName - * @param {string} fnName - * @param {function} func - * @return {function} - */ - measure: function (objName, fnName, func) { - if ("development" !== 'production') { - var measuredFunc = null; - var wrapper = function () { - if (ReactPerf.enableMeasure) { - if (!measuredFunc) { - measuredFunc = ReactPerf.storedMeasure(objName, fnName, func); - } - return measuredFunc.apply(this, arguments); - } - return func.apply(this, arguments); - }; - wrapper.displayName = objName + '_' + fnName; - return wrapper; - } - return func; - }, - - injection: { - /** - * @param {function} measure - */ - injectMeasure: function (measure) { - ReactPerf.storedMeasure = measure; - } - } -}; - -/** - * Simply passes through the measured function, without measuring it. - * - * @param {string} objName - * @param {string} fnName - * @param {function} func - * @return {function} - */ -function _noMeasure(objName, fnName, func) { - return func; -} - -module.exports = ReactPerf; -},{}],72:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactPropTypeLocationNames - */ - -'use strict'; - -var ReactPropTypeLocationNames = {}; - -if ("development" !== 'production') { - ReactPropTypeLocationNames = { - prop: 'prop', - context: 'context', - childContext: 'child context' - }; -} - -module.exports = ReactPropTypeLocationNames; -},{}],73:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactPropTypeLocations - */ - -'use strict'; - -var keyMirror = _dereq_(146); - -var ReactPropTypeLocations = keyMirror({ - prop: null, - context: null, - childContext: null -}); - -module.exports = ReactPropTypeLocations; -},{"146":146}],74:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactPropTypes - */ - -'use strict'; - -var ReactElement = _dereq_(52); -var ReactPropTypeLocationNames = _dereq_(72); - -var emptyFunction = _dereq_(135); -var getIteratorFn = _dereq_(114); - -/** - * Collection of methods that allow declaration and validation of props that are - * supplied to React components. Example usage: - * - * var Props = require('ReactPropTypes'); - * var MyArticle = React.createClass({ - * propTypes: { - * // An optional string prop named "description". - * description: Props.string, - * - * // A required enum prop named "category". - * category: Props.oneOf(['News','Photos']).isRequired, - * - * // A prop named "dialog" that requires an instance of Dialog. - * dialog: Props.instanceOf(Dialog).isRequired - * }, - * render: function() { ... } - * }); - * - * A more formal specification of how these methods are used: - * - * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) - * decl := ReactPropTypes.{type}(.isRequired)? - * - * Each and every declaration produces a function with the same signature. This - * allows the creation of custom validation functions. For example: - * - * var MyLink = React.createClass({ - * propTypes: { - * // An optional string or URI prop named "href". - * href: function(props, propName, componentName) { - * var propValue = props[propName]; - * if (propValue != null && typeof propValue !== 'string' && - * !(propValue instanceof URI)) { - * return new Error( - * 'Expected a string or an URI for ' + propName + ' in ' + - * componentName - * ); - * } - * } - * }, - * render: function() {...} - * }); - * - * @internal - */ - -var ANONYMOUS = '<<anonymous>>'; - -var ReactPropTypes = { - array: createPrimitiveTypeChecker('array'), - bool: createPrimitiveTypeChecker('boolean'), - func: createPrimitiveTypeChecker('function'), - number: createPrimitiveTypeChecker('number'), - object: createPrimitiveTypeChecker('object'), - string: createPrimitiveTypeChecker('string'), - - any: createAnyTypeChecker(), - arrayOf: createArrayOfTypeChecker, - element: createElementTypeChecker(), - instanceOf: createInstanceTypeChecker, - node: createNodeChecker(), - objectOf: createObjectOfTypeChecker, - oneOf: createEnumTypeChecker, - oneOfType: createUnionTypeChecker, - shape: createShapeTypeChecker -}; - -function createChainableTypeChecker(validate) { - function checkType(isRequired, props, propName, componentName, location, propFullName) { - componentName = componentName || ANONYMOUS; - propFullName = propFullName || propName; - if (props[propName] == null) { - var locationName = ReactPropTypeLocationNames[location]; - if (isRequired) { - return new Error('Required ' + locationName + ' `' + propFullName + '` was not specified in ' + ('`' + componentName + '`.')); - } - return null; - } else { - return validate(props, propName, componentName, location, propFullName); - } - } - - var chainedCheckType = checkType.bind(null, false); - chainedCheckType.isRequired = checkType.bind(null, true); - - return chainedCheckType; -} - -function createPrimitiveTypeChecker(expectedType) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== expectedType) { - var locationName = ReactPropTypeLocationNames[location]; - // `propValue` being instance of, say, date/regexp, pass the 'object' - // check, but we can offer a more precise error message here rather than - // 'of type `object`'. - var preciseType = getPreciseType(propValue); - - return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); -} - -function createAnyTypeChecker() { - return createChainableTypeChecker(emptyFunction.thatReturns(null)); -} - -function createArrayOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - if (!Array.isArray(propValue)) { - var locationName = ReactPropTypeLocationNames[location]; - var propType = getPropType(propValue); - return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); - } - for (var i = 0; i < propValue.length; i++) { - var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']'); - if (error instanceof Error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); -} - -function createElementTypeChecker() { - function validate(props, propName, componentName, location, propFullName) { - if (!ReactElement.isValidElement(props[propName])) { - var locationName = ReactPropTypeLocationNames[location]; - return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a single ReactElement.')); - } - return null; - } - return createChainableTypeChecker(validate); -} - -function createInstanceTypeChecker(expectedClass) { - function validate(props, propName, componentName, location, propFullName) { - if (!(props[propName] instanceof expectedClass)) { - var locationName = ReactPropTypeLocationNames[location]; - var expectedClassName = expectedClass.name || ANONYMOUS; - var actualClassName = getClassName(props[propName]); - return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); -} - -function createEnumTypeChecker(expectedValues) { - if (!Array.isArray(expectedValues)) { - return createChainableTypeChecker(function () { - return new Error('Invalid argument supplied to oneOf, expected an instance of array.'); - }); - } - - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - for (var i = 0; i < expectedValues.length; i++) { - if (propValue === expectedValues[i]) { - return null; - } - } - - var locationName = ReactPropTypeLocationNames[location]; - var valuesString = JSON.stringify(expectedValues); - return new Error('Invalid ' + locationName + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); - } - return createChainableTypeChecker(validate); -} - -function createObjectOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - var locationName = ReactPropTypeLocationNames[location]; - return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); - } - for (var key in propValue) { - if (propValue.hasOwnProperty(key)) { - var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key); - if (error instanceof Error) { - return error; - } - } - } - return null; - } - return createChainableTypeChecker(validate); -} - -function createUnionTypeChecker(arrayOfTypeCheckers) { - if (!Array.isArray(arrayOfTypeCheckers)) { - return createChainableTypeChecker(function () { - return new Error('Invalid argument supplied to oneOfType, expected an instance of array.'); - }); - } - - function validate(props, propName, componentName, location, propFullName) { - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (checker(props, propName, componentName, location, propFullName) == null) { - return null; - } - } - - var locationName = ReactPropTypeLocationNames[location]; - return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); - } - return createChainableTypeChecker(validate); -} - -function createNodeChecker() { - function validate(props, propName, componentName, location, propFullName) { - if (!isNode(props[propName])) { - var locationName = ReactPropTypeLocationNames[location]; - return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); - } - return null; - } - return createChainableTypeChecker(validate); -} - -function createShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - var locationName = ReactPropTypeLocationNames[location]; - return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - for (var key in shapeTypes) { - var checker = shapeTypes[key]; - if (!checker) { - continue; - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key); - if (error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); -} - -function isNode(propValue) { - switch (typeof propValue) { - case 'number': - case 'string': - case 'undefined': - return true; - case 'boolean': - return !propValue; - case 'object': - if (Array.isArray(propValue)) { - return propValue.every(isNode); - } - if (propValue === null || ReactElement.isValidElement(propValue)) { - return true; - } - - var iteratorFn = getIteratorFn(propValue); - if (iteratorFn) { - var iterator = iteratorFn.call(propValue); - var step; - if (iteratorFn !== propValue.entries) { - while (!(step = iterator.next()).done) { - if (!isNode(step.value)) { - return false; - } - } - } else { - // Iterator will provide entry [k,v] tuples rather than values. - while (!(step = iterator.next()).done) { - var entry = step.value; - if (entry) { - if (!isNode(entry[1])) { - return false; - } - } - } - } - } else { - return false; - } - - return true; - default: - return false; - } -} - -// Equivalent of `typeof` but with special handling for array and regexp. -function getPropType(propValue) { - var propType = typeof propValue; - if (Array.isArray(propValue)) { - return 'array'; - } - if (propValue instanceof RegExp) { - // Old webkits (at least until Android 4.0) return 'function' rather than - // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ - // passes PropTypes.object. - return 'object'; - } - return propType; -} - -// This handles more types than `getPropType`. Only used for error messages. -// See `createPrimitiveTypeChecker`. -function getPreciseType(propValue) { - var propType = getPropType(propValue); - if (propType === 'object') { - if (propValue instanceof Date) { - return 'date'; - } else if (propValue instanceof RegExp) { - return 'regexp'; - } - } - return propType; -} - -// Returns class name of the object, if any. -function getClassName(propValue) { - if (!propValue.constructor || !propValue.constructor.name) { - return '<<anonymous>>'; - } - return propValue.constructor.name; -} - -module.exports = ReactPropTypes; -},{"114":114,"135":135,"52":52,"72":72}],75:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactReconcileTransaction - * @typechecks static-only - */ - -'use strict'; - -var CallbackQueue = _dereq_(6); -var PooledClass = _dereq_(24); -var ReactBrowserEventEmitter = _dereq_(26); -var ReactDOMFeatureFlags = _dereq_(39); -var ReactInputSelection = _dereq_(60); -var Transaction = _dereq_(100); - -var assign = _dereq_(23); - -/** - * Ensures that, when possible, the selection range (currently selected text - * input) is not disturbed by performing the transaction. - */ -var SELECTION_RESTORATION = { - /** - * @return {Selection} Selection information. - */ - initialize: ReactInputSelection.getSelectionInformation, - /** - * @param {Selection} sel Selection information returned from `initialize`. - */ - close: ReactInputSelection.restoreSelection -}; - -/** - * Suppresses events (blur/focus) that could be inadvertently dispatched due to - * high level DOM manipulations (like temporarily removing a text input from the - * DOM). - */ -var EVENT_SUPPRESSION = { - /** - * @return {boolean} The enabled status of `ReactBrowserEventEmitter` before - * the reconciliation. - */ - initialize: function () { - var currentlyEnabled = ReactBrowserEventEmitter.isEnabled(); - ReactBrowserEventEmitter.setEnabled(false); - return currentlyEnabled; - }, - - /** - * @param {boolean} previouslyEnabled Enabled status of - * `ReactBrowserEventEmitter` before the reconciliation occurred. `close` - * restores the previous value. - */ - close: function (previouslyEnabled) { - ReactBrowserEventEmitter.setEnabled(previouslyEnabled); - } -}; - -/** - * Provides a queue for collecting `componentDidMount` and - * `componentDidUpdate` callbacks during the the transaction. - */ -var ON_DOM_READY_QUEUEING = { - /** - * Initializes the internal `onDOMReady` queue. - */ - initialize: function () { - this.reactMountReady.reset(); - }, - - /** - * After DOM is flushed, invoke all registered `onDOMReady` callbacks. - */ - close: function () { - this.reactMountReady.notifyAll(); - } -}; - -/** - * Executed within the scope of the `Transaction` instance. Consider these as - * being member methods, but with an implied ordering while being isolated from - * each other. - */ -var TRANSACTION_WRAPPERS = [SELECTION_RESTORATION, EVENT_SUPPRESSION, ON_DOM_READY_QUEUEING]; - -/** - * Currently: - * - The order that these are listed in the transaction is critical: - * - Suppresses events. - * - Restores selection range. - * - * Future: - * - Restore document/overflow scroll positions that were unintentionally - * modified via DOM insertions above the top viewport boundary. - * - Implement/integrate with customized constraint based layout system and keep - * track of which dimensions must be remeasured. - * - * @class ReactReconcileTransaction - */ -function ReactReconcileTransaction(forceHTML) { - this.reinitializeTransaction(); - // Only server-side rendering really needs this option (see - // `ReactServerRendering`), but server-side uses - // `ReactServerRenderingTransaction` instead. This option is here so that it's - // accessible and defaults to false when `ReactDOMComponent` and - // `ReactTextComponent` checks it in `mountComponent`.` - this.renderToStaticMarkup = false; - this.reactMountReady = CallbackQueue.getPooled(null); - this.useCreateElement = !forceHTML && ReactDOMFeatureFlags.useCreateElement; -} - -var Mixin = { - /** - * @see Transaction - * @abstract - * @final - * @return {array<object>} List of operation wrap procedures. - * TODO: convert to array<TransactionWrapper> - */ - getTransactionWrappers: function () { - return TRANSACTION_WRAPPERS; - }, - - /** - * @return {object} The queue to collect `onDOMReady` callbacks with. - */ - getReactMountReady: function () { - return this.reactMountReady; - }, - - /** - * `PooledClass` looks for this, and will invoke this before allowing this - * instance to be reused. - */ - destructor: function () { - CallbackQueue.release(this.reactMountReady); - this.reactMountReady = null; - } -}; - -assign(ReactReconcileTransaction.prototype, Transaction.Mixin, Mixin); - -PooledClass.addPoolingTo(ReactReconcileTransaction); - -module.exports = ReactReconcileTransaction; -},{"100":100,"23":23,"24":24,"26":26,"39":39,"6":6,"60":60}],76:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactReconciler - */ - -'use strict'; - -var ReactRef = _dereq_(77); - -/** - * Helper to call ReactRef.attachRefs with this composite component, split out - * to avoid allocations in the transaction mount-ready queue. - */ -function attachRefs() { - ReactRef.attachRefs(this, this._currentElement); -} - -var ReactReconciler = { - - /** - * Initializes the component, renders markup, and registers event listeners. - * - * @param {ReactComponent} internalInstance - * @param {string} rootID DOM ID of the root node. - * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction - * @return {?string} Rendered markup to be inserted into the DOM. - * @final - * @internal - */ - mountComponent: function (internalInstance, rootID, transaction, context) { - var markup = internalInstance.mountComponent(rootID, transaction, context); - if (internalInstance._currentElement && internalInstance._currentElement.ref != null) { - transaction.getReactMountReady().enqueue(attachRefs, internalInstance); - } - return markup; - }, - - /** - * Releases any resources allocated by `mountComponent`. - * - * @final - * @internal - */ - unmountComponent: function (internalInstance) { - ReactRef.detachRefs(internalInstance, internalInstance._currentElement); - internalInstance.unmountComponent(); - }, - - /** - * Update a component using a new element. - * - * @param {ReactComponent} internalInstance - * @param {ReactElement} nextElement - * @param {ReactReconcileTransaction} transaction - * @param {object} context - * @internal - */ - receiveComponent: function (internalInstance, nextElement, transaction, context) { - var prevElement = internalInstance._currentElement; - - if (nextElement === prevElement && context === internalInstance._context) { - // Since elements are immutable after the owner is rendered, - // we can do a cheap identity compare here to determine if this is a - // superfluous reconcile. It's possible for state to be mutable but such - // change should trigger an update of the owner which would recreate - // the element. We explicitly check for the existence of an owner since - // it's possible for an element created outside a composite to be - // deeply mutated and reused. - - // TODO: Bailing out early is just a perf optimization right? - // TODO: Removing the return statement should affect correctness? - return; - } - - var refsChanged = ReactRef.shouldUpdateRefs(prevElement, nextElement); - - if (refsChanged) { - ReactRef.detachRefs(internalInstance, prevElement); - } - - internalInstance.receiveComponent(nextElement, transaction, context); - - if (refsChanged && internalInstance._currentElement && internalInstance._currentElement.ref != null) { - transaction.getReactMountReady().enqueue(attachRefs, internalInstance); - } - }, - - /** - * Flush any dirty changes in a component. - * - * @param {ReactComponent} internalInstance - * @param {ReactReconcileTransaction} transaction - * @internal - */ - performUpdateIfNecessary: function (internalInstance, transaction) { - internalInstance.performUpdateIfNecessary(transaction); - } - -}; - -module.exports = ReactReconciler; -},{"77":77}],77:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactRef - */ - -'use strict'; - -var ReactOwner = _dereq_(70); - -var ReactRef = {}; - -function attachRef(ref, component, owner) { - if (typeof ref === 'function') { - ref(component.getPublicInstance()); - } else { - // Legacy ref - ReactOwner.addComponentAsRefTo(component, ref, owner); - } -} - -function detachRef(ref, component, owner) { - if (typeof ref === 'function') { - ref(null); - } else { - // Legacy ref - ReactOwner.removeComponentAsRefFrom(component, ref, owner); - } -} - -ReactRef.attachRefs = function (instance, element) { - if (element === null || element === false) { - return; - } - var ref = element.ref; - if (ref != null) { - attachRef(ref, instance, element._owner); - } -}; - -ReactRef.shouldUpdateRefs = function (prevElement, nextElement) { - // If either the owner or a `ref` has changed, make sure the newest owner - // has stored a reference to `this`, and the previous owner (if different) - // has forgotten the reference to `this`. We use the element instead - // of the public this.props because the post processing cannot determine - // a ref. The ref conceptually lives on the element. - - // TODO: Should this even be possible? The owner cannot change because - // it's forbidden by shouldUpdateReactComponent. The ref can change - // if you swap the keys of but not the refs. Reconsider where this check - // is made. It probably belongs where the key checking and - // instantiateReactComponent is done. - - var prevEmpty = prevElement === null || prevElement === false; - var nextEmpty = nextElement === null || nextElement === false; - - return( - // This has a few false positives w/r/t empty components. - prevEmpty || nextEmpty || nextElement._owner !== prevElement._owner || nextElement.ref !== prevElement.ref - ); -}; - -ReactRef.detachRefs = function (instance, element) { - if (element === null || element === false) { - return; - } - var ref = element.ref; - if (ref != null) { - detachRef(ref, instance, element._owner); - } -}; - -module.exports = ReactRef; -},{"70":70}],78:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactRootIndex - * @typechecks - */ - -'use strict'; - -var ReactRootIndexInjection = { - /** - * @param {function} _createReactRootIndex - */ - injectCreateReactRootIndex: function (_createReactRootIndex) { - ReactRootIndex.createReactRootIndex = _createReactRootIndex; - } -}; - -var ReactRootIndex = { - createReactRootIndex: null, - injection: ReactRootIndexInjection -}; - -module.exports = ReactRootIndex; -},{}],79:[function(_dereq_,module,exports){ -/** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactServerBatchingStrategy - * @typechecks - */ - -'use strict'; - -var ReactServerBatchingStrategy = { - isBatchingUpdates: false, - batchedUpdates: function (callback) { - // Don't do anything here. During the server rendering we don't want to - // schedule any updates. We will simply ignore them. - } -}; - -module.exports = ReactServerBatchingStrategy; -},{}],80:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks static-only - * @providesModule ReactServerRendering - */ -'use strict'; - -var ReactDefaultBatchingStrategy = _dereq_(48); -var ReactElement = _dereq_(52); -var ReactInstanceHandles = _dereq_(61); -var ReactMarkupChecksum = _dereq_(64); -var ReactServerBatchingStrategy = _dereq_(79); -var ReactServerRenderingTransaction = _dereq_(81); -var ReactUpdates = _dereq_(83); - -var emptyObject = _dereq_(136); -var instantiateReactComponent = _dereq_(117); -var invariant = _dereq_(143); - -/** - * @param {ReactElement} element - * @return {string} the HTML markup - */ -function renderToString(element) { - !ReactElement.isValidElement(element) ? "development" !== 'production' ? invariant(false, 'renderToString(): You must pass a valid ReactElement.') : invariant(false) : undefined; - - var transaction; - try { - ReactUpdates.injection.injectBatchingStrategy(ReactServerBatchingStrategy); - - var id = ReactInstanceHandles.createReactRootID(); - transaction = ReactServerRenderingTransaction.getPooled(false); - - return transaction.perform(function () { - var componentInstance = instantiateReactComponent(element, null); - var markup = componentInstance.mountComponent(id, transaction, emptyObject); - return ReactMarkupChecksum.addChecksumToMarkup(markup); - }, null); - } finally { - ReactServerRenderingTransaction.release(transaction); - // Revert to the DOM batching strategy since these two renderers - // currently share these stateful modules. - ReactUpdates.injection.injectBatchingStrategy(ReactDefaultBatchingStrategy); - } -} - -/** - * @param {ReactElement} element - * @return {string} the HTML markup, without the extra React ID and checksum - * (for generating static pages) - */ -function renderToStaticMarkup(element) { - !ReactElement.isValidElement(element) ? "development" !== 'production' ? invariant(false, 'renderToStaticMarkup(): You must pass a valid ReactElement.') : invariant(false) : undefined; - - var transaction; - try { - ReactUpdates.injection.injectBatchingStrategy(ReactServerBatchingStrategy); - - var id = ReactInstanceHandles.createReactRootID(); - transaction = ReactServerRenderingTransaction.getPooled(true); - - return transaction.perform(function () { - var componentInstance = instantiateReactComponent(element, null); - return componentInstance.mountComponent(id, transaction, emptyObject); - }, null); - } finally { - ReactServerRenderingTransaction.release(transaction); - // Revert to the DOM batching strategy since these two renderers - // currently share these stateful modules. - ReactUpdates.injection.injectBatchingStrategy(ReactDefaultBatchingStrategy); - } -} - -module.exports = { - renderToString: renderToString, - renderToStaticMarkup: renderToStaticMarkup -}; -},{"117":117,"136":136,"143":143,"48":48,"52":52,"61":61,"64":64,"79":79,"81":81,"83":83}],81:[function(_dereq_,module,exports){ -/** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactServerRenderingTransaction - * @typechecks - */ - -'use strict'; - -var PooledClass = _dereq_(24); -var CallbackQueue = _dereq_(6); -var Transaction = _dereq_(100); - -var assign = _dereq_(23); -var emptyFunction = _dereq_(135); - -/** - * Provides a `CallbackQueue` queue for collecting `onDOMReady` callbacks - * during the performing of the transaction. - */ -var ON_DOM_READY_QUEUEING = { - /** - * Initializes the internal `onDOMReady` queue. - */ - initialize: function () { - this.reactMountReady.reset(); - }, - - close: emptyFunction -}; - -/** - * Executed within the scope of the `Transaction` instance. Consider these as - * being member methods, but with an implied ordering while being isolated from - * each other. - */ -var TRANSACTION_WRAPPERS = [ON_DOM_READY_QUEUEING]; - -/** - * @class ReactServerRenderingTransaction - * @param {boolean} renderToStaticMarkup - */ -function ReactServerRenderingTransaction(renderToStaticMarkup) { - this.reinitializeTransaction(); - this.renderToStaticMarkup = renderToStaticMarkup; - this.reactMountReady = CallbackQueue.getPooled(null); - this.useCreateElement = false; -} - -var Mixin = { - /** - * @see Transaction - * @abstract - * @final - * @return {array} Empty list of operation wrap procedures. - */ - getTransactionWrappers: function () { - return TRANSACTION_WRAPPERS; - }, - - /** - * @return {object} The queue to collect `onDOMReady` callbacks with. - */ - getReactMountReady: function () { - return this.reactMountReady; - }, - - /** - * `PooledClass` looks for this, and will invoke this before allowing this - * instance to be reused. - */ - destructor: function () { - CallbackQueue.release(this.reactMountReady); - this.reactMountReady = null; - } -}; - -assign(ReactServerRenderingTransaction.prototype, Transaction.Mixin, Mixin); - -PooledClass.addPoolingTo(ReactServerRenderingTransaction); - -module.exports = ReactServerRenderingTransaction; -},{"100":100,"135":135,"23":23,"24":24,"6":6}],82:[function(_dereq_,module,exports){ -/** - * Copyright 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactUpdateQueue - */ - -'use strict'; - -var ReactCurrentOwner = _dereq_(34); -var ReactElement = _dereq_(52); -var ReactInstanceMap = _dereq_(62); -var ReactUpdates = _dereq_(83); - -var assign = _dereq_(23); -var invariant = _dereq_(143); -var warning = _dereq_(154); - -function enqueueUpdate(internalInstance) { - ReactUpdates.enqueueUpdate(internalInstance); -} - -function getInternalInstanceReadyForUpdate(publicInstance, callerName) { - var internalInstance = ReactInstanceMap.get(publicInstance); - if (!internalInstance) { - if ("development" !== 'production') { - // Only warn when we have a callerName. Otherwise we should be silent. - // We're probably calling from enqueueCallback. We don't want to warn - // there because we already warned for the corresponding lifecycle method. - "development" !== 'production' ? warning(!callerName, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, publicInstance.constructor.displayName) : undefined; - } - return null; - } - - if ("development" !== 'production') { - "development" !== 'production' ? warning(ReactCurrentOwner.current == null, '%s(...): Cannot update during an existing state transition ' + '(such as within `render`). Render methods should be a pure function ' + 'of props and state.', callerName) : undefined; - } - - return internalInstance; -} - -/** - * ReactUpdateQueue allows for state updates to be scheduled into a later - * reconciliation step. - */ -var ReactUpdateQueue = { - - /** - * Checks whether or not this composite component is mounted. - * @param {ReactClass} publicInstance The instance we want to test. - * @return {boolean} True if mounted, false otherwise. - * @protected - * @final - */ - isMounted: function (publicInstance) { - if ("development" !== 'production') { - var owner = ReactCurrentOwner.current; - if (owner !== null) { - "development" !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : undefined; - owner._warnedAboutRefsInRender = true; - } - } - var internalInstance = ReactInstanceMap.get(publicInstance); - if (internalInstance) { - // During componentWillMount and render this will still be null but after - // that will always render to something. At least for now. So we can use - // this hack. - return !!internalInstance._renderedComponent; - } else { - return false; - } - }, - - /** - * Enqueue a callback that will be executed after all the pending updates - * have processed. - * - * @param {ReactClass} publicInstance The instance to use as `this` context. - * @param {?function} callback Called after state is updated. - * @internal - */ - enqueueCallback: function (publicInstance, callback) { - !(typeof callback === 'function') ? "development" !== 'production' ? invariant(false, 'enqueueCallback(...): You called `setProps`, `replaceProps`, ' + '`setState`, `replaceState`, or `forceUpdate` with a callback that ' + 'isn\'t callable.') : invariant(false) : undefined; - var internalInstance = getInternalInstanceReadyForUpdate(publicInstance); - - // Previously we would throw an error if we didn't have an internal - // instance. Since we want to make it a no-op instead, we mirror the same - // behavior we have in other enqueue* methods. - // We also need to ignore callbacks in componentWillMount. See - // enqueueUpdates. - if (!internalInstance) { - return null; - } - - if (internalInstance._pendingCallbacks) { - internalInstance._pendingCallbacks.push(callback); - } else { - internalInstance._pendingCallbacks = [callback]; - } - // TODO: The callback here is ignored when setState is called from - // componentWillMount. Either fix it or disallow doing so completely in - // favor of getInitialState. Alternatively, we can disallow - // componentWillMount during server-side rendering. - enqueueUpdate(internalInstance); - }, - - enqueueCallbackInternal: function (internalInstance, callback) { - !(typeof callback === 'function') ? "development" !== 'production' ? invariant(false, 'enqueueCallback(...): You called `setProps`, `replaceProps`, ' + '`setState`, `replaceState`, or `forceUpdate` with a callback that ' + 'isn\'t callable.') : invariant(false) : undefined; - if (internalInstance._pendingCallbacks) { - internalInstance._pendingCallbacks.push(callback); - } else { - internalInstance._pendingCallbacks = [callback]; - } - enqueueUpdate(internalInstance); - }, - - /** - * Forces an update. This should only be invoked when it is known with - * certainty that we are **not** in a DOM transaction. - * - * You may want to call this when you know that some deeper aspect of the - * component's state has changed but `setState` was not called. - * - * This will not invoke `shouldComponentUpdate`, but it will invoke - * `componentWillUpdate` and `componentDidUpdate`. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @internal - */ - enqueueForceUpdate: function (publicInstance) { - var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'forceUpdate'); - - if (!internalInstance) { - return; - } - - internalInstance._pendingForceUpdate = true; - - enqueueUpdate(internalInstance); - }, - - /** - * Replaces all of the state. Always use this or `setState` to mutate state. - * You should treat `this.state` as immutable. - * - * There is no guarantee that `this.state` will be immediately updated, so - * accessing `this.state` after calling this method may return the old value. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {object} completeState Next state. - * @internal - */ - enqueueReplaceState: function (publicInstance, completeState) { - var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceState'); - - if (!internalInstance) { - return; - } - - internalInstance._pendingStateQueue = [completeState]; - internalInstance._pendingReplaceState = true; - - enqueueUpdate(internalInstance); - }, - - /** - * Sets a subset of the state. This only exists because _pendingState is - * internal. This provides a merging strategy that is not available to deep - * properties which is confusing. TODO: Expose pendingState or don't use it - * during the merge. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {object} partialState Next partial state to be merged with state. - * @internal - */ - enqueueSetState: function (publicInstance, partialState) { - var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setState'); - - if (!internalInstance) { - return; - } - - var queue = internalInstance._pendingStateQueue || (internalInstance._pendingStateQueue = []); - queue.push(partialState); - - enqueueUpdate(internalInstance); - }, - - /** - * Sets a subset of the props. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {object} partialProps Subset of the next props. - * @internal - */ - enqueueSetProps: function (publicInstance, partialProps) { - var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setProps'); - if (!internalInstance) { - return; - } - ReactUpdateQueue.enqueueSetPropsInternal(internalInstance, partialProps); - }, - - enqueueSetPropsInternal: function (internalInstance, partialProps) { - var topLevelWrapper = internalInstance._topLevelWrapper; - !topLevelWrapper ? "development" !== 'production' ? invariant(false, 'setProps(...): You called `setProps` on a ' + 'component with a parent. This is an anti-pattern since props will ' + 'get reactively updated when rendered. Instead, change the owner\'s ' + '`render` method to pass the correct value as props to the component ' + 'where it is created.') : invariant(false) : undefined; - - // Merge with the pending element if it exists, otherwise with existing - // element props. - var wrapElement = topLevelWrapper._pendingElement || topLevelWrapper._currentElement; - var element = wrapElement.props; - var props = assign({}, element.props, partialProps); - topLevelWrapper._pendingElement = ReactElement.cloneAndReplaceProps(wrapElement, ReactElement.cloneAndReplaceProps(element, props)); - - enqueueUpdate(topLevelWrapper); - }, - - /** - * Replaces all of the props. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {object} props New props. - * @internal - */ - enqueueReplaceProps: function (publicInstance, props) { - var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceProps'); - if (!internalInstance) { - return; - } - ReactUpdateQueue.enqueueReplacePropsInternal(internalInstance, props); - }, - - enqueueReplacePropsInternal: function (internalInstance, props) { - var topLevelWrapper = internalInstance._topLevelWrapper; - !topLevelWrapper ? "development" !== 'production' ? invariant(false, 'replaceProps(...): You called `replaceProps` on a ' + 'component with a parent. This is an anti-pattern since props will ' + 'get reactively updated when rendered. Instead, change the owner\'s ' + '`render` method to pass the correct value as props to the component ' + 'where it is created.') : invariant(false) : undefined; - - // Merge with the pending element if it exists, otherwise with existing - // element props. - var wrapElement = topLevelWrapper._pendingElement || topLevelWrapper._currentElement; - var element = wrapElement.props; - topLevelWrapper._pendingElement = ReactElement.cloneAndReplaceProps(wrapElement, ReactElement.cloneAndReplaceProps(element, props)); - - enqueueUpdate(topLevelWrapper); - }, - - enqueueElementInternal: function (internalInstance, newElement) { - internalInstance._pendingElement = newElement; - enqueueUpdate(internalInstance); - } - -}; - -module.exports = ReactUpdateQueue; -},{"143":143,"154":154,"23":23,"34":34,"52":52,"62":62,"83":83}],83:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactUpdates - */ - -'use strict'; - -var CallbackQueue = _dereq_(6); -var PooledClass = _dereq_(24); -var ReactPerf = _dereq_(71); -var ReactReconciler = _dereq_(76); -var Transaction = _dereq_(100); - -var assign = _dereq_(23); -var invariant = _dereq_(143); - -var dirtyComponents = []; -var asapCallbackQueue = CallbackQueue.getPooled(); -var asapEnqueued = false; - -var batchingStrategy = null; - -function ensureInjected() { - !(ReactUpdates.ReactReconcileTransaction && batchingStrategy) ? "development" !== 'production' ? invariant(false, 'ReactUpdates: must inject a reconcile transaction class and batching ' + 'strategy') : invariant(false) : undefined; -} - -var NESTED_UPDATES = { - initialize: function () { - this.dirtyComponentsLength = dirtyComponents.length; - }, - close: function () { - if (this.dirtyComponentsLength !== dirtyComponents.length) { - // Additional updates were enqueued by componentDidUpdate handlers or - // similar; before our own UPDATE_QUEUEING wrapper closes, we want to run - // these new updates so that if A's componentDidUpdate calls setState on - // B, B will update before the callback A's updater provided when calling - // setState. - dirtyComponents.splice(0, this.dirtyComponentsLength); - flushBatchedUpdates(); - } else { - dirtyComponents.length = 0; - } - } -}; - -var UPDATE_QUEUEING = { - initialize: function () { - this.callbackQueue.reset(); - }, - close: function () { - this.callbackQueue.notifyAll(); - } -}; - -var TRANSACTION_WRAPPERS = [NESTED_UPDATES, UPDATE_QUEUEING]; - -function ReactUpdatesFlushTransaction() { - this.reinitializeTransaction(); - this.dirtyComponentsLength = null; - this.callbackQueue = CallbackQueue.getPooled(); - this.reconcileTransaction = ReactUpdates.ReactReconcileTransaction.getPooled( /* forceHTML */false); -} - -assign(ReactUpdatesFlushTransaction.prototype, Transaction.Mixin, { - getTransactionWrappers: function () { - return TRANSACTION_WRAPPERS; - }, - - destructor: function () { - this.dirtyComponentsLength = null; - CallbackQueue.release(this.callbackQueue); - this.callbackQueue = null; - ReactUpdates.ReactReconcileTransaction.release(this.reconcileTransaction); - this.reconcileTransaction = null; - }, - - perform: function (method, scope, a) { - // Essentially calls `this.reconcileTransaction.perform(method, scope, a)` - // with this transaction's wrappers around it. - return Transaction.Mixin.perform.call(this, this.reconcileTransaction.perform, this.reconcileTransaction, method, scope, a); - } -}); - -PooledClass.addPoolingTo(ReactUpdatesFlushTransaction); - -function batchedUpdates(callback, a, b, c, d, e) { - ensureInjected(); - batchingStrategy.batchedUpdates(callback, a, b, c, d, e); -} - -/** - * Array comparator for ReactComponents by mount ordering. - * - * @param {ReactComponent} c1 first component you're comparing - * @param {ReactComponent} c2 second component you're comparing - * @return {number} Return value usable by Array.prototype.sort(). - */ -function mountOrderComparator(c1, c2) { - return c1._mountOrder - c2._mountOrder; -} - -function runBatchedUpdates(transaction) { - var len = transaction.dirtyComponentsLength; - !(len === dirtyComponents.length) ? "development" !== 'production' ? invariant(false, 'Expected flush transaction\'s stored dirty-components length (%s) to ' + 'match dirty-components array length (%s).', len, dirtyComponents.length) : invariant(false) : undefined; - - // Since reconciling a component higher in the owner hierarchy usually (not - // always -- see shouldComponentUpdate()) will reconcile children, reconcile - // them before their children by sorting the array. - dirtyComponents.sort(mountOrderComparator); - - for (var i = 0; i < len; i++) { - // If a component is unmounted before pending changes apply, it will still - // be here, but we assume that it has cleared its _pendingCallbacks and - // that performUpdateIfNecessary is a noop. - var component = dirtyComponents[i]; - - // If performUpdateIfNecessary happens to enqueue any new updates, we - // shouldn't execute the callbacks until the next render happens, so - // stash the callbacks first - var callbacks = component._pendingCallbacks; - component._pendingCallbacks = null; - - ReactReconciler.performUpdateIfNecessary(component, transaction.reconcileTransaction); - - if (callbacks) { - for (var j = 0; j < callbacks.length; j++) { - transaction.callbackQueue.enqueue(callbacks[j], component.getPublicInstance()); - } - } - } -} - -var flushBatchedUpdates = function () { - // ReactUpdatesFlushTransaction's wrappers will clear the dirtyComponents - // array and perform any updates enqueued by mount-ready handlers (i.e., - // componentDidUpdate) but we need to check here too in order to catch - // updates enqueued by setState callbacks and asap calls. - while (dirtyComponents.length || asapEnqueued) { - if (dirtyComponents.length) { - var transaction = ReactUpdatesFlushTransaction.getPooled(); - transaction.perform(runBatchedUpdates, null, transaction); - ReactUpdatesFlushTransaction.release(transaction); - } - - if (asapEnqueued) { - asapEnqueued = false; - var queue = asapCallbackQueue; - asapCallbackQueue = CallbackQueue.getPooled(); - queue.notifyAll(); - CallbackQueue.release(queue); - } - } -}; -flushBatchedUpdates = ReactPerf.measure('ReactUpdates', 'flushBatchedUpdates', flushBatchedUpdates); - -/** - * Mark a component as needing a rerender, adding an optional callback to a - * list of functions which will be executed once the rerender occurs. - */ -function enqueueUpdate(component) { - ensureInjected(); - - // Various parts of our code (such as ReactCompositeComponent's - // _renderValidatedComponent) assume that calls to render aren't nested; - // verify that that's the case. (This is called by each top-level update - // function, like setProps, setState, forceUpdate, etc.; creation and - // destruction of top-level components is guarded in ReactMount.) - - if (!batchingStrategy.isBatchingUpdates) { - batchingStrategy.batchedUpdates(enqueueUpdate, component); - return; - } - - dirtyComponents.push(component); -} - -/** - * Enqueue a callback to be run at the end of the current batching cycle. Throws - * if no updates are currently being performed. - */ -function asap(callback, context) { - !batchingStrategy.isBatchingUpdates ? "development" !== 'production' ? invariant(false, 'ReactUpdates.asap: Can\'t enqueue an asap callback in a context where' + 'updates are not being batched.') : invariant(false) : undefined; - asapCallbackQueue.enqueue(callback, context); - asapEnqueued = true; -} - -var ReactUpdatesInjection = { - injectReconcileTransaction: function (ReconcileTransaction) { - !ReconcileTransaction ? "development" !== 'production' ? invariant(false, 'ReactUpdates: must provide a reconcile transaction class') : invariant(false) : undefined; - ReactUpdates.ReactReconcileTransaction = ReconcileTransaction; - }, - - injectBatchingStrategy: function (_batchingStrategy) { - !_batchingStrategy ? "development" !== 'production' ? invariant(false, 'ReactUpdates: must provide a batching strategy') : invariant(false) : undefined; - !(typeof _batchingStrategy.batchedUpdates === 'function') ? "development" !== 'production' ? invariant(false, 'ReactUpdates: must provide a batchedUpdates() function') : invariant(false) : undefined; - !(typeof _batchingStrategy.isBatchingUpdates === 'boolean') ? "development" !== 'production' ? invariant(false, 'ReactUpdates: must provide an isBatchingUpdates boolean attribute') : invariant(false) : undefined; - batchingStrategy = _batchingStrategy; - } -}; - -var ReactUpdates = { - /** - * React references `ReactReconcileTransaction` using this property in order - * to allow dependency injection. - * - * @internal - */ - ReactReconcileTransaction: null, - - batchedUpdates: batchedUpdates, - enqueueUpdate: enqueueUpdate, - flushBatchedUpdates: flushBatchedUpdates, - injection: ReactUpdatesInjection, - asap: asap -}; - -module.exports = ReactUpdates; -},{"100":100,"143":143,"23":23,"24":24,"6":6,"71":71,"76":76}],84:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactVersion - */ - -'use strict'; - -module.exports = '0.14.0'; -},{}],85:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule SVGDOMPropertyConfig - */ - -'use strict'; - -var DOMProperty = _dereq_(10); - -var MUST_USE_ATTRIBUTE = DOMProperty.injection.MUST_USE_ATTRIBUTE; - -var NS = { - xlink: 'http://www.w3.org/1999/xlink', - xml: 'http://www.w3.org/XML/1998/namespace' -}; - -var SVGDOMPropertyConfig = { - Properties: { - clipPath: MUST_USE_ATTRIBUTE, - cx: MUST_USE_ATTRIBUTE, - cy: MUST_USE_ATTRIBUTE, - d: MUST_USE_ATTRIBUTE, - dx: MUST_USE_ATTRIBUTE, - dy: MUST_USE_ATTRIBUTE, - fill: MUST_USE_ATTRIBUTE, - fillOpacity: MUST_USE_ATTRIBUTE, - fontFamily: MUST_USE_ATTRIBUTE, - fontSize: MUST_USE_ATTRIBUTE, - fx: MUST_USE_ATTRIBUTE, - fy: MUST_USE_ATTRIBUTE, - gradientTransform: MUST_USE_ATTRIBUTE, - gradientUnits: MUST_USE_ATTRIBUTE, - markerEnd: MUST_USE_ATTRIBUTE, - markerMid: MUST_USE_ATTRIBUTE, - markerStart: MUST_USE_ATTRIBUTE, - offset: MUST_USE_ATTRIBUTE, - opacity: MUST_USE_ATTRIBUTE, - patternContentUnits: MUST_USE_ATTRIBUTE, - patternUnits: MUST_USE_ATTRIBUTE, - points: MUST_USE_ATTRIBUTE, - preserveAspectRatio: MUST_USE_ATTRIBUTE, - r: MUST_USE_ATTRIBUTE, - rx: MUST_USE_ATTRIBUTE, - ry: MUST_USE_ATTRIBUTE, - spreadMethod: MUST_USE_ATTRIBUTE, - stopColor: MUST_USE_ATTRIBUTE, - stopOpacity: MUST_USE_ATTRIBUTE, - stroke: MUST_USE_ATTRIBUTE, - strokeDasharray: MUST_USE_ATTRIBUTE, - strokeLinecap: MUST_USE_ATTRIBUTE, - strokeOpacity: MUST_USE_ATTRIBUTE, - strokeWidth: MUST_USE_ATTRIBUTE, - textAnchor: MUST_USE_ATTRIBUTE, - transform: MUST_USE_ATTRIBUTE, - version: MUST_USE_ATTRIBUTE, - viewBox: MUST_USE_ATTRIBUTE, - x1: MUST_USE_ATTRIBUTE, - x2: MUST_USE_ATTRIBUTE, - x: MUST_USE_ATTRIBUTE, - xlinkActuate: MUST_USE_ATTRIBUTE, - xlinkArcrole: MUST_USE_ATTRIBUTE, - xlinkHref: MUST_USE_ATTRIBUTE, - xlinkRole: MUST_USE_ATTRIBUTE, - xlinkShow: MUST_USE_ATTRIBUTE, - xlinkTitle: MUST_USE_ATTRIBUTE, - xlinkType: MUST_USE_ATTRIBUTE, - xmlBase: MUST_USE_ATTRIBUTE, - xmlLang: MUST_USE_ATTRIBUTE, - xmlSpace: MUST_USE_ATTRIBUTE, - y1: MUST_USE_ATTRIBUTE, - y2: MUST_USE_ATTRIBUTE, - y: MUST_USE_ATTRIBUTE - }, - DOMAttributeNamespaces: { - xlinkActuate: NS.xlink, - xlinkArcrole: NS.xlink, - xlinkHref: NS.xlink, - xlinkRole: NS.xlink, - xlinkShow: NS.xlink, - xlinkTitle: NS.xlink, - xlinkType: NS.xlink, - xmlBase: NS.xml, - xmlLang: NS.xml, - xmlSpace: NS.xml - }, - DOMAttributeNames: { - clipPath: 'clip-path', - fillOpacity: 'fill-opacity', - fontFamily: 'font-family', - fontSize: 'font-size', - gradientTransform: 'gradientTransform', - gradientUnits: 'gradientUnits', - markerEnd: 'marker-end', - markerMid: 'marker-mid', - markerStart: 'marker-start', - patternContentUnits: 'patternContentUnits', - patternUnits: 'patternUnits', - preserveAspectRatio: 'preserveAspectRatio', - spreadMethod: 'spreadMethod', - stopColor: 'stop-color', - stopOpacity: 'stop-opacity', - strokeDasharray: 'stroke-dasharray', - strokeLinecap: 'stroke-linecap', - strokeOpacity: 'stroke-opacity', - strokeWidth: 'stroke-width', - textAnchor: 'text-anchor', - viewBox: 'viewBox', - xlinkActuate: 'xlink:actuate', - xlinkArcrole: 'xlink:arcrole', - xlinkHref: 'xlink:href', - xlinkRole: 'xlink:role', - xlinkShow: 'xlink:show', - xlinkTitle: 'xlink:title', - xlinkType: 'xlink:type', - xmlBase: 'xml:base', - xmlLang: 'xml:lang', - xmlSpace: 'xml:space' - } -}; - -module.exports = SVGDOMPropertyConfig; -},{"10":10}],86:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule SelectEventPlugin - */ - -'use strict'; - -var EventConstants = _dereq_(15); -var EventPropagators = _dereq_(19); -var ExecutionEnvironment = _dereq_(129); -var ReactInputSelection = _dereq_(60); -var SyntheticEvent = _dereq_(92); - -var getActiveElement = _dereq_(138); -var isTextInputElement = _dereq_(119); -var keyOf = _dereq_(147); -var shallowEqual = _dereq_(152); - -var topLevelTypes = EventConstants.topLevelTypes; - -var skipSelectionChangeEvent = ExecutionEnvironment.canUseDOM && 'documentMode' in document && document.documentMode <= 11; - -var eventTypes = { - select: { - phasedRegistrationNames: { - bubbled: keyOf({ onSelect: null }), - captured: keyOf({ onSelectCapture: null }) - }, - dependencies: [topLevelTypes.topBlur, topLevelTypes.topContextMenu, topLevelTypes.topFocus, topLevelTypes.topKeyDown, topLevelTypes.topMouseDown, topLevelTypes.topMouseUp, topLevelTypes.topSelectionChange] - } -}; - -var activeElement = null; -var activeElementID = null; -var lastSelection = null; -var mouseDown = false; - -// Track whether a listener exists for this plugin. If none exist, we do -// not extract events. -var hasListener = false; -var ON_SELECT_KEY = keyOf({ onSelect: null }); - -/** - * Get an object which is a unique representation of the current selection. - * - * The return value will not be consistent across nodes or browsers, but - * two identical selections on the same node will return identical objects. - * - * @param {DOMElement} node - * @return {object} - */ -function getSelection(node) { - if ('selectionStart' in node && ReactInputSelection.hasSelectionCapabilities(node)) { - return { - start: node.selectionStart, - end: node.selectionEnd - }; - } else if (window.getSelection) { - var selection = window.getSelection(); - return { - anchorNode: selection.anchorNode, - anchorOffset: selection.anchorOffset, - focusNode: selection.focusNode, - focusOffset: selection.focusOffset - }; - } else if (document.selection) { - var range = document.selection.createRange(); - return { - parentElement: range.parentElement(), - text: range.text, - top: range.boundingTop, - left: range.boundingLeft - }; - } -} - -/** - * Poll selection to see whether it's changed. - * - * @param {object} nativeEvent - * @return {?SyntheticEvent} - */ -function constructSelectEvent(nativeEvent, nativeEventTarget) { - // Ensure we have the right element, and that the user is not dragging a - // selection (this matches native `select` event behavior). In HTML5, select - // fires only on input and textarea thus if there's no focused element we - // won't dispatch. - if (mouseDown || activeElement == null || activeElement !== getActiveElement()) { - return null; - } - - // Only fire when selection has actually changed. - var currentSelection = getSelection(activeElement); - if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) { - lastSelection = currentSelection; - - var syntheticEvent = SyntheticEvent.getPooled(eventTypes.select, activeElementID, nativeEvent, nativeEventTarget); - - syntheticEvent.type = 'select'; - syntheticEvent.target = activeElement; - - EventPropagators.accumulateTwoPhaseDispatches(syntheticEvent); - - return syntheticEvent; - } - - return null; -} - -/** - * This plugin creates an `onSelect` event that normalizes select events - * across form elements. - * - * Supported elements are: - * - input (see `isTextInputElement`) - * - textarea - * - contentEditable - * - * This differs from native browser implementations in the following ways: - * - Fires on contentEditable fields as well as inputs. - * - Fires for collapsed selection. - * - Fires after user input. - */ -var SelectEventPlugin = { - - eventTypes: eventTypes, - - /** - * @param {string} topLevelType Record from `EventConstants`. - * @param {DOMEventTarget} topLevelTarget The listening component root node. - * @param {string} topLevelTargetID ID of `topLevelTarget`. - * @param {object} nativeEvent Native browser event. - * @return {*} An accumulation of synthetic events. - * @see {EventPluginHub.extractEvents} - */ - extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) { - if (!hasListener) { - return null; - } - - switch (topLevelType) { - // Track the input node that has focus. - case topLevelTypes.topFocus: - if (isTextInputElement(topLevelTarget) || topLevelTarget.contentEditable === 'true') { - activeElement = topLevelTarget; - activeElementID = topLevelTargetID; - lastSelection = null; - } - break; - case topLevelTypes.topBlur: - activeElement = null; - activeElementID = null; - lastSelection = null; - break; - - // Don't fire the event while the user is dragging. This matches the - // semantics of the native select event. - case topLevelTypes.topMouseDown: - mouseDown = true; - break; - case topLevelTypes.topContextMenu: - case topLevelTypes.topMouseUp: - mouseDown = false; - return constructSelectEvent(nativeEvent, nativeEventTarget); - - // Chrome and IE fire non-standard event when selection is changed (and - // sometimes when it hasn't). IE's event fires out of order with respect - // to key and input events on deletion, so we discard it. - // - // Firefox doesn't support selectionchange, so check selection status - // after each key entry. The selection changes after keydown and before - // keyup, but we check on keydown as well in the case of holding down a - // key, when multiple keydown events are fired but only one keyup is. - // This is also our approach for IE handling, for the reason above. - case topLevelTypes.topSelectionChange: - if (skipSelectionChangeEvent) { - break; - } - // falls through - case topLevelTypes.topKeyDown: - case topLevelTypes.topKeyUp: - return constructSelectEvent(nativeEvent, nativeEventTarget); - } - - return null; - }, - - didPutListener: function (id, registrationName, listener) { - if (registrationName === ON_SELECT_KEY) { - hasListener = true; - } - } -}; - -module.exports = SelectEventPlugin; -},{"119":119,"129":129,"138":138,"147":147,"15":15,"152":152,"19":19,"60":60,"92":92}],87:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ServerReactRootIndex - * @typechecks - */ - -'use strict'; - -/** - * Size of the reactRoot ID space. We generate random numbers for React root - * IDs and if there's a collision the events and DOM update system will - * get confused. In the future we need a way to generate GUIDs but for - * now this will work on a smaller scale. - */ -var GLOBAL_MOUNT_POINT_MAX = Math.pow(2, 53); - -var ServerReactRootIndex = { - createReactRootIndex: function () { - return Math.ceil(Math.random() * GLOBAL_MOUNT_POINT_MAX); - } -}; - -module.exports = ServerReactRootIndex; -},{}],88:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule SimpleEventPlugin - */ - -'use strict'; - -var EventConstants = _dereq_(15); -var EventListener = _dereq_(128); -var EventPropagators = _dereq_(19); -var ReactMount = _dereq_(65); -var SyntheticClipboardEvent = _dereq_(89); -var SyntheticEvent = _dereq_(92); -var SyntheticFocusEvent = _dereq_(93); -var SyntheticKeyboardEvent = _dereq_(95); -var SyntheticMouseEvent = _dereq_(96); -var SyntheticDragEvent = _dereq_(91); -var SyntheticTouchEvent = _dereq_(97); -var SyntheticUIEvent = _dereq_(98); -var SyntheticWheelEvent = _dereq_(99); - -var emptyFunction = _dereq_(135); -var getEventCharCode = _dereq_(110); -var invariant = _dereq_(143); -var keyOf = _dereq_(147); - -var topLevelTypes = EventConstants.topLevelTypes; - -var eventTypes = { - abort: { - phasedRegistrationNames: { - bubbled: keyOf({ onAbort: true }), - captured: keyOf({ onAbortCapture: true }) - } - }, - blur: { - phasedRegistrationNames: { - bubbled: keyOf({ onBlur: true }), - captured: keyOf({ onBlurCapture: true }) - } - }, - canPlay: { - phasedRegistrationNames: { - bubbled: keyOf({ onCanPlay: true }), - captured: keyOf({ onCanPlayCapture: true }) - } - }, - canPlayThrough: { - phasedRegistrationNames: { - bubbled: keyOf({ onCanPlayThrough: true }), - captured: keyOf({ onCanPlayThroughCapture: true }) - } - }, - click: { - phasedRegistrationNames: { - bubbled: keyOf({ onClick: true }), - captured: keyOf({ onClickCapture: true }) - } - }, - contextMenu: { - phasedRegistrationNames: { - bubbled: keyOf({ onContextMenu: true }), - captured: keyOf({ onContextMenuCapture: true }) - } - }, - copy: { - phasedRegistrationNames: { - bubbled: keyOf({ onCopy: true }), - captured: keyOf({ onCopyCapture: true }) - } - }, - cut: { - phasedRegistrationNames: { - bubbled: keyOf({ onCut: true }), - captured: keyOf({ onCutCapture: true }) - } - }, - doubleClick: { - phasedRegistrationNames: { - bubbled: keyOf({ onDoubleClick: true }), - captured: keyOf({ onDoubleClickCapture: true }) - } - }, - drag: { - phasedRegistrationNames: { - bubbled: keyOf({ onDrag: true }), - captured: keyOf({ onDragCapture: true }) - } - }, - dragEnd: { - phasedRegistrationNames: { - bubbled: keyOf({ onDragEnd: true }), - captured: keyOf({ onDragEndCapture: true }) - } - }, - dragEnter: { - phasedRegistrationNames: { - bubbled: keyOf({ onDragEnter: true }), - captured: keyOf({ onDragEnterCapture: true }) - } - }, - dragExit: { - phasedRegistrationNames: { - bubbled: keyOf({ onDragExit: true }), - captured: keyOf({ onDragExitCapture: true }) - } - }, - dragLeave: { - phasedRegistrationNames: { - bubbled: keyOf({ onDragLeave: true }), - captured: keyOf({ onDragLeaveCapture: true }) - } - }, - dragOver: { - phasedRegistrationNames: { - bubbled: keyOf({ onDragOver: true }), - captured: keyOf({ onDragOverCapture: true }) - } - }, - dragStart: { - phasedRegistrationNames: { - bubbled: keyOf({ onDragStart: true }), - captured: keyOf({ onDragStartCapture: true }) - } - }, - drop: { - phasedRegistrationNames: { - bubbled: keyOf({ onDrop: true }), - captured: keyOf({ onDropCapture: true }) - } - }, - durationChange: { - phasedRegistrationNames: { - bubbled: keyOf({ onDurationChange: true }), - captured: keyOf({ onDurationChangeCapture: true }) - } - }, - emptied: { - phasedRegistrationNames: { - bubbled: keyOf({ onEmptied: true }), - captured: keyOf({ onEmptiedCapture: true }) - } - }, - encrypted: { - phasedRegistrationNames: { - bubbled: keyOf({ onEncrypted: true }), - captured: keyOf({ onEncryptedCapture: true }) - } - }, - ended: { - phasedRegistrationNames: { - bubbled: keyOf({ onEnded: true }), - captured: keyOf({ onEndedCapture: true }) - } - }, - error: { - phasedRegistrationNames: { - bubbled: keyOf({ onError: true }), - captured: keyOf({ onErrorCapture: true }) - } - }, - focus: { - phasedRegistrationNames: { - bubbled: keyOf({ onFocus: true }), - captured: keyOf({ onFocusCapture: true }) - } - }, - input: { - phasedRegistrationNames: { - bubbled: keyOf({ onInput: true }), - captured: keyOf({ onInputCapture: true }) - } - }, - keyDown: { - phasedRegistrationNames: { - bubbled: keyOf({ onKeyDown: true }), - captured: keyOf({ onKeyDownCapture: true }) - } - }, - keyPress: { - phasedRegistrationNames: { - bubbled: keyOf({ onKeyPress: true }), - captured: keyOf({ onKeyPressCapture: true }) - } - }, - keyUp: { - phasedRegistrationNames: { - bubbled: keyOf({ onKeyUp: true }), - captured: keyOf({ onKeyUpCapture: true }) - } - }, - load: { - phasedRegistrationNames: { - bubbled: keyOf({ onLoad: true }), - captured: keyOf({ onLoadCapture: true }) - } - }, - loadedData: { - phasedRegistrationNames: { - bubbled: keyOf({ onLoadedData: true }), - captured: keyOf({ onLoadedDataCapture: true }) - } - }, - loadedMetadata: { - phasedRegistrationNames: { - bubbled: keyOf({ onLoadedMetadata: true }), - captured: keyOf({ onLoadedMetadataCapture: true }) - } - }, - loadStart: { - phasedRegistrationNames: { - bubbled: keyOf({ onLoadStart: true }), - captured: keyOf({ onLoadStartCapture: true }) - } - }, - // Note: We do not allow listening to mouseOver events. Instead, use the - // onMouseEnter/onMouseLeave created by `EnterLeaveEventPlugin`. - mouseDown: { - phasedRegistrationNames: { - bubbled: keyOf({ onMouseDown: true }), - captured: keyOf({ onMouseDownCapture: true }) - } - }, - mouseMove: { - phasedRegistrationNames: { - bubbled: keyOf({ onMouseMove: true }), - captured: keyOf({ onMouseMoveCapture: true }) - } - }, - mouseOut: { - phasedRegistrationNames: { - bubbled: keyOf({ onMouseOut: true }), - captured: keyOf({ onMouseOutCapture: true }) - } - }, - mouseOver: { - phasedRegistrationNames: { - bubbled: keyOf({ onMouseOver: true }), - captured: keyOf({ onMouseOverCapture: true }) - } - }, - mouseUp: { - phasedRegistrationNames: { - bubbled: keyOf({ onMouseUp: true }), - captured: keyOf({ onMouseUpCapture: true }) - } - }, - paste: { - phasedRegistrationNames: { - bubbled: keyOf({ onPaste: true }), - captured: keyOf({ onPasteCapture: true }) - } - }, - pause: { - phasedRegistrationNames: { - bubbled: keyOf({ onPause: true }), - captured: keyOf({ onPauseCapture: true }) - } - }, - play: { - phasedRegistrationNames: { - bubbled: keyOf({ onPlay: true }), - captured: keyOf({ onPlayCapture: true }) - } - }, - playing: { - phasedRegistrationNames: { - bubbled: keyOf({ onPlaying: true }), - captured: keyOf({ onPlayingCapture: true }) - } - }, - progress: { - phasedRegistrationNames: { - bubbled: keyOf({ onProgress: true }), - captured: keyOf({ onProgressCapture: true }) - } - }, - rateChange: { - phasedRegistrationNames: { - bubbled: keyOf({ onRateChange: true }), - captured: keyOf({ onRateChangeCapture: true }) - } - }, - reset: { - phasedRegistrationNames: { - bubbled: keyOf({ onReset: true }), - captured: keyOf({ onResetCapture: true }) - } - }, - scroll: { - phasedRegistrationNames: { - bubbled: keyOf({ onScroll: true }), - captured: keyOf({ onScrollCapture: true }) - } - }, - seeked: { - phasedRegistrationNames: { - bubbled: keyOf({ onSeeked: true }), - captured: keyOf({ onSeekedCapture: true }) - } - }, - seeking: { - phasedRegistrationNames: { - bubbled: keyOf({ onSeeking: true }), - captured: keyOf({ onSeekingCapture: true }) - } - }, - stalled: { - phasedRegistrationNames: { - bubbled: keyOf({ onStalled: true }), - captured: keyOf({ onStalledCapture: true }) - } - }, - submit: { - phasedRegistrationNames: { - bubbled: keyOf({ onSubmit: true }), - captured: keyOf({ onSubmitCapture: true }) - } - }, - suspend: { - phasedRegistrationNames: { - bubbled: keyOf({ onSuspend: true }), - captured: keyOf({ onSuspendCapture: true }) - } - }, - timeUpdate: { - phasedRegistrationNames: { - bubbled: keyOf({ onTimeUpdate: true }), - captured: keyOf({ onTimeUpdateCapture: true }) - } - }, - touchCancel: { - phasedRegistrationNames: { - bubbled: keyOf({ onTouchCancel: true }), - captured: keyOf({ onTouchCancelCapture: true }) - } - }, - touchEnd: { - phasedRegistrationNames: { - bubbled: keyOf({ onTouchEnd: true }), - captured: keyOf({ onTouchEndCapture: true }) - } - }, - touchMove: { - phasedRegistrationNames: { - bubbled: keyOf({ onTouchMove: true }), - captured: keyOf({ onTouchMoveCapture: true }) - } - }, - touchStart: { - phasedRegistrationNames: { - bubbled: keyOf({ onTouchStart: true }), - captured: keyOf({ onTouchStartCapture: true }) - } - }, - volumeChange: { - phasedRegistrationNames: { - bubbled: keyOf({ onVolumeChange: true }), - captured: keyOf({ onVolumeChangeCapture: true }) - } - }, - waiting: { - phasedRegistrationNames: { - bubbled: keyOf({ onWaiting: true }), - captured: keyOf({ onWaitingCapture: true }) - } - }, - wheel: { - phasedRegistrationNames: { - bubbled: keyOf({ onWheel: true }), - captured: keyOf({ onWheelCapture: true }) - } - } -}; - -var topLevelEventsToDispatchConfig = { - topAbort: eventTypes.abort, - topBlur: eventTypes.blur, - topCanPlay: eventTypes.canPlay, - topCanPlayThrough: eventTypes.canPlayThrough, - topClick: eventTypes.click, - topContextMenu: eventTypes.contextMenu, - topCopy: eventTypes.copy, - topCut: eventTypes.cut, - topDoubleClick: eventTypes.doubleClick, - topDrag: eventTypes.drag, - topDragEnd: eventTypes.dragEnd, - topDragEnter: eventTypes.dragEnter, - topDragExit: eventTypes.dragExit, - topDragLeave: eventTypes.dragLeave, - topDragOver: eventTypes.dragOver, - topDragStart: eventTypes.dragStart, - topDrop: eventTypes.drop, - topDurationChange: eventTypes.durationChange, - topEmptied: eventTypes.emptied, - topEncrypted: eventTypes.encrypted, - topEnded: eventTypes.ended, - topError: eventTypes.error, - topFocus: eventTypes.focus, - topInput: eventTypes.input, - topKeyDown: eventTypes.keyDown, - topKeyPress: eventTypes.keyPress, - topKeyUp: eventTypes.keyUp, - topLoad: eventTypes.load, - topLoadedData: eventTypes.loadedData, - topLoadedMetadata: eventTypes.loadedMetadata, - topLoadStart: eventTypes.loadStart, - topMouseDown: eventTypes.mouseDown, - topMouseMove: eventTypes.mouseMove, - topMouseOut: eventTypes.mouseOut, - topMouseOver: eventTypes.mouseOver, - topMouseUp: eventTypes.mouseUp, - topPaste: eventTypes.paste, - topPause: eventTypes.pause, - topPlay: eventTypes.play, - topPlaying: eventTypes.playing, - topProgress: eventTypes.progress, - topRateChange: eventTypes.rateChange, - topReset: eventTypes.reset, - topScroll: eventTypes.scroll, - topSeeked: eventTypes.seeked, - topSeeking: eventTypes.seeking, - topStalled: eventTypes.stalled, - topSubmit: eventTypes.submit, - topSuspend: eventTypes.suspend, - topTimeUpdate: eventTypes.timeUpdate, - topTouchCancel: eventTypes.touchCancel, - topTouchEnd: eventTypes.touchEnd, - topTouchMove: eventTypes.touchMove, - topTouchStart: eventTypes.touchStart, - topVolumeChange: eventTypes.volumeChange, - topWaiting: eventTypes.waiting, - topWheel: eventTypes.wheel -}; - -for (var type in topLevelEventsToDispatchConfig) { - topLevelEventsToDispatchConfig[type].dependencies = [type]; -} - -var ON_CLICK_KEY = keyOf({ onClick: null }); -var onClickListeners = {}; - -var SimpleEventPlugin = { - - eventTypes: eventTypes, - - /** - * @param {string} topLevelType Record from `EventConstants`. - * @param {DOMEventTarget} topLevelTarget The listening component root node. - * @param {string} topLevelTargetID ID of `topLevelTarget`. - * @param {object} nativeEvent Native browser event. - * @return {*} An accumulation of synthetic events. - * @see {EventPluginHub.extractEvents} - */ - extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) { - var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType]; - if (!dispatchConfig) { - return null; - } - var EventConstructor; - switch (topLevelType) { - case topLevelTypes.topAbort: - case topLevelTypes.topCanPlay: - case topLevelTypes.topCanPlayThrough: - case topLevelTypes.topDurationChange: - case topLevelTypes.topEmptied: - case topLevelTypes.topEncrypted: - case topLevelTypes.topEnded: - case topLevelTypes.topError: - case topLevelTypes.topInput: - case topLevelTypes.topLoad: - case topLevelTypes.topLoadedData: - case topLevelTypes.topLoadedMetadata: - case topLevelTypes.topLoadStart: - case topLevelTypes.topPause: - case topLevelTypes.topPlay: - case topLevelTypes.topPlaying: - case topLevelTypes.topProgress: - case topLevelTypes.topRateChange: - case topLevelTypes.topReset: - case topLevelTypes.topSeeked: - case topLevelTypes.topSeeking: - case topLevelTypes.topStalled: - case topLevelTypes.topSubmit: - case topLevelTypes.topSuspend: - case topLevelTypes.topTimeUpdate: - case topLevelTypes.topVolumeChange: - case topLevelTypes.topWaiting: - // HTML Events - // @see http://www.w3.org/TR/html5/index.html#events-0 - EventConstructor = SyntheticEvent; - break; - case topLevelTypes.topKeyPress: - // FireFox creates a keypress event for function keys too. This removes - // the unwanted keypress events. Enter is however both printable and - // non-printable. One would expect Tab to be as well (but it isn't). - if (getEventCharCode(nativeEvent) === 0) { - return null; - } - /* falls through */ - case topLevelTypes.topKeyDown: - case topLevelTypes.topKeyUp: - EventConstructor = SyntheticKeyboardEvent; - break; - case topLevelTypes.topBlur: - case topLevelTypes.topFocus: - EventConstructor = SyntheticFocusEvent; - break; - case topLevelTypes.topClick: - // Firefox creates a click event on right mouse clicks. This removes the - // unwanted click events. - if (nativeEvent.button === 2) { - return null; - } - /* falls through */ - case topLevelTypes.topContextMenu: - case topLevelTypes.topDoubleClick: - case topLevelTypes.topMouseDown: - case topLevelTypes.topMouseMove: - case topLevelTypes.topMouseOut: - case topLevelTypes.topMouseOver: - case topLevelTypes.topMouseUp: - EventConstructor = SyntheticMouseEvent; - break; - case topLevelTypes.topDrag: - case topLevelTypes.topDragEnd: - case topLevelTypes.topDragEnter: - case topLevelTypes.topDragExit: - case topLevelTypes.topDragLeave: - case topLevelTypes.topDragOver: - case topLevelTypes.topDragStart: - case topLevelTypes.topDrop: - EventConstructor = SyntheticDragEvent; - break; - case topLevelTypes.topTouchCancel: - case topLevelTypes.topTouchEnd: - case topLevelTypes.topTouchMove: - case topLevelTypes.topTouchStart: - EventConstructor = SyntheticTouchEvent; - break; - case topLevelTypes.topScroll: - EventConstructor = SyntheticUIEvent; - break; - case topLevelTypes.topWheel: - EventConstructor = SyntheticWheelEvent; - break; - case topLevelTypes.topCopy: - case topLevelTypes.topCut: - case topLevelTypes.topPaste: - EventConstructor = SyntheticClipboardEvent; - break; - } - !EventConstructor ? "development" !== 'production' ? invariant(false, 'SimpleEventPlugin: Unhandled event type, `%s`.', topLevelType) : invariant(false) : undefined; - var event = EventConstructor.getPooled(dispatchConfig, topLevelTargetID, nativeEvent, nativeEventTarget); - EventPropagators.accumulateTwoPhaseDispatches(event); - return event; - }, - - didPutListener: function (id, registrationName, listener) { - // Mobile Safari does not fire properly bubble click events on - // non-interactive elements, which means delegated click listeners do not - // fire. The workaround for this bug involves attaching an empty click - // listener on the target node. - if (registrationName === ON_CLICK_KEY) { - var node = ReactMount.getNode(id); - if (!onClickListeners[id]) { - onClickListeners[id] = EventListener.listen(node, 'click', emptyFunction); - } - } - }, - - willDeleteListener: function (id, registrationName) { - if (registrationName === ON_CLICK_KEY) { - onClickListeners[id].remove(); - delete onClickListeners[id]; - } - } - -}; - -module.exports = SimpleEventPlugin; -},{"110":110,"128":128,"135":135,"143":143,"147":147,"15":15,"19":19,"65":65,"89":89,"91":91,"92":92,"93":93,"95":95,"96":96,"97":97,"98":98,"99":99}],89:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule SyntheticClipboardEvent - * @typechecks static-only - */ - -'use strict'; - -var SyntheticEvent = _dereq_(92); - -/** - * @interface Event - * @see http://www.w3.org/TR/clipboard-apis/ - */ -var ClipboardEventInterface = { - clipboardData: function (event) { - return 'clipboardData' in event ? event.clipboardData : window.clipboardData; - } -}; - -/** - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {string} dispatchMarker Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - * @extends {SyntheticUIEvent} - */ -function SyntheticClipboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { - SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); -} - -SyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface); - -module.exports = SyntheticClipboardEvent; -},{"92":92}],90:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule SyntheticCompositionEvent - * @typechecks static-only - */ - -'use strict'; - -var SyntheticEvent = _dereq_(92); - -/** - * @interface Event - * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents - */ -var CompositionEventInterface = { - data: null -}; - -/** - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {string} dispatchMarker Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - * @extends {SyntheticUIEvent} - */ -function SyntheticCompositionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { - SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); -} - -SyntheticEvent.augmentClass(SyntheticCompositionEvent, CompositionEventInterface); - -module.exports = SyntheticCompositionEvent; -},{"92":92}],91:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule SyntheticDragEvent - * @typechecks static-only - */ - -'use strict'; - -var SyntheticMouseEvent = _dereq_(96); - -/** - * @interface DragEvent - * @see http://www.w3.org/TR/DOM-Level-3-Events/ - */ -var DragEventInterface = { - dataTransfer: null -}; - -/** - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {string} dispatchMarker Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - * @extends {SyntheticUIEvent} - */ -function SyntheticDragEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { - SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); -} - -SyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface); - -module.exports = SyntheticDragEvent; -},{"96":96}],92:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule SyntheticEvent - * @typechecks static-only - */ - -'use strict'; - -var PooledClass = _dereq_(24); - -var assign = _dereq_(23); -var emptyFunction = _dereq_(135); -var warning = _dereq_(154); - -/** - * @interface Event - * @see http://www.w3.org/TR/DOM-Level-3-Events/ - */ -var EventInterface = { - type: null, - // currentTarget is set when dispatching; no use in copying it here - currentTarget: emptyFunction.thatReturnsNull, - eventPhase: null, - bubbles: null, - cancelable: null, - timeStamp: function (event) { - return event.timeStamp || Date.now(); - }, - defaultPrevented: null, - isTrusted: null -}; - -/** - * Synthetic events are dispatched by event plugins, typically in response to a - * top-level event delegation handler. - * - * These systems should generally use pooling to reduce the frequency of garbage - * collection. The system should check `isPersistent` to determine whether the - * event should be released into the pool after being dispatched. Users that - * need a persisted event should invoke `persist`. - * - * Synthetic events (and subclasses) implement the DOM Level 3 Events API by - * normalizing browser quirks. Subclasses do not necessarily have to implement a - * DOM interface; custom application-specific events can also subclass this. - * - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {string} dispatchMarker Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - */ -function SyntheticEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { - this.dispatchConfig = dispatchConfig; - this.dispatchMarker = dispatchMarker; - this.nativeEvent = nativeEvent; - this.target = nativeEventTarget; - this.currentTarget = nativeEventTarget; - - var Interface = this.constructor.Interface; - for (var propName in Interface) { - if (!Interface.hasOwnProperty(propName)) { - continue; - } - var normalize = Interface[propName]; - if (normalize) { - this[propName] = normalize(nativeEvent); - } else { - this[propName] = nativeEvent[propName]; - } - } - - var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false; - if (defaultPrevented) { - this.isDefaultPrevented = emptyFunction.thatReturnsTrue; - } else { - this.isDefaultPrevented = emptyFunction.thatReturnsFalse; - } - this.isPropagationStopped = emptyFunction.thatReturnsFalse; -} - -assign(SyntheticEvent.prototype, { - - preventDefault: function () { - this.defaultPrevented = true; - var event = this.nativeEvent; - if ("development" !== 'production') { - "development" !== 'production' ? warning(event, 'This synthetic event is reused for performance reasons. If you\'re ' + 'seeing this, you\'re calling `preventDefault` on a ' + 'released/nullified synthetic event. This is a no-op. See ' + 'https://fb.me/react-event-pooling for more information.') : undefined; - } - if (!event) { - return; - } - - if (event.preventDefault) { - event.preventDefault(); - } else { - event.returnValue = false; - } - this.isDefaultPrevented = emptyFunction.thatReturnsTrue; - }, - - stopPropagation: function () { - var event = this.nativeEvent; - if ("development" !== 'production') { - "development" !== 'production' ? warning(event, 'This synthetic event is reused for performance reasons. If you\'re ' + 'seeing this, you\'re calling `stopPropagation` on a ' + 'released/nullified synthetic event. This is a no-op. See ' + 'https://fb.me/react-event-pooling for more information.') : undefined; - } - if (!event) { - return; - } - - if (event.stopPropagation) { - event.stopPropagation(); - } else { - event.cancelBubble = true; - } - this.isPropagationStopped = emptyFunction.thatReturnsTrue; - }, - - /** - * We release all dispatched `SyntheticEvent`s after each event loop, adding - * them back into the pool. This allows a way to hold onto a reference that - * won't be added back into the pool. - */ - persist: function () { - this.isPersistent = emptyFunction.thatReturnsTrue; - }, - - /** - * Checks if this event should be released back into the pool. - * - * @return {boolean} True if this should not be released, false otherwise. - */ - isPersistent: emptyFunction.thatReturnsFalse, - - /** - * `PooledClass` looks for `destructor` on each instance it releases. - */ - destructor: function () { - var Interface = this.constructor.Interface; - for (var propName in Interface) { - this[propName] = null; - } - this.dispatchConfig = null; - this.dispatchMarker = null; - this.nativeEvent = null; - } - -}); - -SyntheticEvent.Interface = EventInterface; - -/** - * Helper to reduce boilerplate when creating subclasses. - * - * @param {function} Class - * @param {?object} Interface - */ -SyntheticEvent.augmentClass = function (Class, Interface) { - var Super = this; - - var prototype = Object.create(Super.prototype); - assign(prototype, Class.prototype); - Class.prototype = prototype; - Class.prototype.constructor = Class; - - Class.Interface = assign({}, Super.Interface, Interface); - Class.augmentClass = Super.augmentClass; - - PooledClass.addPoolingTo(Class, PooledClass.fourArgumentPooler); -}; - -PooledClass.addPoolingTo(SyntheticEvent, PooledClass.fourArgumentPooler); - -module.exports = SyntheticEvent; -},{"135":135,"154":154,"23":23,"24":24}],93:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule SyntheticFocusEvent - * @typechecks static-only - */ - -'use strict'; - -var SyntheticUIEvent = _dereq_(98); - -/** - * @interface FocusEvent - * @see http://www.w3.org/TR/DOM-Level-3-Events/ - */ -var FocusEventInterface = { - relatedTarget: null -}; - -/** - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {string} dispatchMarker Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - * @extends {SyntheticUIEvent} - */ -function SyntheticFocusEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { - SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); -} - -SyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface); - -module.exports = SyntheticFocusEvent; -},{"98":98}],94:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule SyntheticInputEvent - * @typechecks static-only - */ - -'use strict'; - -var SyntheticEvent = _dereq_(92); - -/** - * @interface Event - * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105 - * /#events-inputevents - */ -var InputEventInterface = { - data: null -}; - -/** - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {string} dispatchMarker Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - * @extends {SyntheticUIEvent} - */ -function SyntheticInputEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { - SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); -} - -SyntheticEvent.augmentClass(SyntheticInputEvent, InputEventInterface); - -module.exports = SyntheticInputEvent; -},{"92":92}],95:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule SyntheticKeyboardEvent - * @typechecks static-only - */ - -'use strict'; - -var SyntheticUIEvent = _dereq_(98); - -var getEventCharCode = _dereq_(110); -var getEventKey = _dereq_(111); -var getEventModifierState = _dereq_(112); - -/** - * @interface KeyboardEvent - * @see http://www.w3.org/TR/DOM-Level-3-Events/ - */ -var KeyboardEventInterface = { - key: getEventKey, - location: null, - ctrlKey: null, - shiftKey: null, - altKey: null, - metaKey: null, - repeat: null, - locale: null, - getModifierState: getEventModifierState, - // Legacy Interface - charCode: function (event) { - // `charCode` is the result of a KeyPress event and represents the value of - // the actual printable character. - - // KeyPress is deprecated, but its replacement is not yet final and not - // implemented in any major browser. Only KeyPress has charCode. - if (event.type === 'keypress') { - return getEventCharCode(event); - } - return 0; - }, - keyCode: function (event) { - // `keyCode` is the result of a KeyDown/Up event and represents the value of - // physical keyboard key. - - // The actual meaning of the value depends on the users' keyboard layout - // which cannot be detected. Assuming that it is a US keyboard layout - // provides a surprisingly accurate mapping for US and European users. - // Due to this, it is left to the user to implement at this time. - if (event.type === 'keydown' || event.type === 'keyup') { - return event.keyCode; - } - return 0; - }, - which: function (event) { - // `which` is an alias for either `keyCode` or `charCode` depending on the - // type of the event. - if (event.type === 'keypress') { - return getEventCharCode(event); - } - if (event.type === 'keydown' || event.type === 'keyup') { - return event.keyCode; - } - return 0; - } -}; - -/** - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {string} dispatchMarker Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - * @extends {SyntheticUIEvent} - */ -function SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { - SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); -} - -SyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface); - -module.exports = SyntheticKeyboardEvent; -},{"110":110,"111":111,"112":112,"98":98}],96:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule SyntheticMouseEvent - * @typechecks static-only - */ - -'use strict'; - -var SyntheticUIEvent = _dereq_(98); -var ViewportMetrics = _dereq_(101); - -var getEventModifierState = _dereq_(112); - -/** - * @interface MouseEvent - * @see http://www.w3.org/TR/DOM-Level-3-Events/ - */ -var MouseEventInterface = { - screenX: null, - screenY: null, - clientX: null, - clientY: null, - ctrlKey: null, - shiftKey: null, - altKey: null, - metaKey: null, - getModifierState: getEventModifierState, - button: function (event) { - // Webkit, Firefox, IE9+ - // which: 1 2 3 - // button: 0 1 2 (standard) - var button = event.button; - if ('which' in event) { - return button; - } - // IE<9 - // which: undefined - // button: 0 0 0 - // button: 1 4 2 (onmouseup) - return button === 2 ? 2 : button === 4 ? 1 : 0; - }, - buttons: null, - relatedTarget: function (event) { - return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement); - }, - // "Proprietary" Interface. - pageX: function (event) { - return 'pageX' in event ? event.pageX : event.clientX + ViewportMetrics.currentScrollLeft; - }, - pageY: function (event) { - return 'pageY' in event ? event.pageY : event.clientY + ViewportMetrics.currentScrollTop; - } -}; - -/** - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {string} dispatchMarker Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - * @extends {SyntheticUIEvent} - */ -function SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { - SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); -} - -SyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface); - -module.exports = SyntheticMouseEvent; -},{"101":101,"112":112,"98":98}],97:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule SyntheticTouchEvent - * @typechecks static-only - */ - -'use strict'; - -var SyntheticUIEvent = _dereq_(98); - -var getEventModifierState = _dereq_(112); - -/** - * @interface TouchEvent - * @see http://www.w3.org/TR/touch-events/ - */ -var TouchEventInterface = { - touches: null, - targetTouches: null, - changedTouches: null, - altKey: null, - metaKey: null, - ctrlKey: null, - shiftKey: null, - getModifierState: getEventModifierState -}; - -/** - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {string} dispatchMarker Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - * @extends {SyntheticUIEvent} - */ -function SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { - SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); -} - -SyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface); - -module.exports = SyntheticTouchEvent; -},{"112":112,"98":98}],98:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule SyntheticUIEvent - * @typechecks static-only - */ - -'use strict'; - -var SyntheticEvent = _dereq_(92); - -var getEventTarget = _dereq_(113); - -/** - * @interface UIEvent - * @see http://www.w3.org/TR/DOM-Level-3-Events/ - */ -var UIEventInterface = { - view: function (event) { - if (event.view) { - return event.view; - } - - var target = getEventTarget(event); - if (target != null && target.window === target) { - // target is a window object - return target; - } - - var doc = target.ownerDocument; - // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8. - if (doc) { - return doc.defaultView || doc.parentWindow; - } else { - return window; - } - }, - detail: function (event) { - return event.detail || 0; - } -}; - -/** - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {string} dispatchMarker Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - * @extends {SyntheticEvent} - */ -function SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { - SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); -} - -SyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface); - -module.exports = SyntheticUIEvent; -},{"113":113,"92":92}],99:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule SyntheticWheelEvent - * @typechecks static-only - */ - -'use strict'; - -var SyntheticMouseEvent = _dereq_(96); - -/** - * @interface WheelEvent - * @see http://www.w3.org/TR/DOM-Level-3-Events/ - */ -var WheelEventInterface = { - deltaX: function (event) { - return 'deltaX' in event ? event.deltaX : - // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive). - 'wheelDeltaX' in event ? -event.wheelDeltaX : 0; - }, - deltaY: function (event) { - return 'deltaY' in event ? event.deltaY : - // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive). - 'wheelDeltaY' in event ? -event.wheelDeltaY : - // Fallback to `wheelDelta` for IE<9 and normalize (down is positive). - 'wheelDelta' in event ? -event.wheelDelta : 0; - }, - deltaZ: null, - - // Browsers without "deltaMode" is reporting in raw wheel delta where one - // notch on the scroll is always +/- 120, roughly equivalent to pixels. - // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or - // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size. - deltaMode: null -}; - -/** - * @param {object} dispatchConfig Configuration used to dispatch this event. - * @param {string} dispatchMarker Marker identifying the event target. - * @param {object} nativeEvent Native browser event. - * @extends {SyntheticMouseEvent} - */ -function SyntheticWheelEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { - SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); -} - -SyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface); - -module.exports = SyntheticWheelEvent; -},{"96":96}],100:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule Transaction - */ - -'use strict'; - -var invariant = _dereq_(143); - -/** - * `Transaction` creates a black box that is able to wrap any method such that - * certain invariants are maintained before and after the method is invoked - * (Even if an exception is thrown while invoking the wrapped method). Whoever - * instantiates a transaction can provide enforcers of the invariants at - * creation time. The `Transaction` class itself will supply one additional - * automatic invariant for you - the invariant that any transaction instance - * should not be run while it is already being run. You would typically create a - * single instance of a `Transaction` for reuse multiple times, that potentially - * is used to wrap several different methods. Wrappers are extremely simple - - * they only require implementing two methods. - * - * <pre> - * wrappers (injected at creation time) - * + + - * | | - * +-----------------|--------|--------------+ - * | v | | - * | +---------------+ | | - * | +--| wrapper1 |---|----+ | - * | | +---------------+ v | | - * | | +-------------+ | | - * | | +----| wrapper2 |--------+ | - * | | | +-------------+ | | | - * | | | | | | - * | v v v v | wrapper - * | +---+ +---+ +---------+ +---+ +---+ | invariants - * perform(anyMethod) | | | | | | | | | | | | maintained - * +----------------->|-|---|-|---|-->|anyMethod|---|---|-|---|-|--------> - * | | | | | | | | | | | | - * | | | | | | | | | | | | - * | | | | | | | | | | | | - * | +---+ +---+ +---------+ +---+ +---+ | - * | initialize close | - * +-----------------------------------------+ - * </pre> - * - * Use cases: - * - Preserving the input selection ranges before/after reconciliation. - * Restoring selection even in the event of an unexpected error. - * - Deactivating events while rearranging the DOM, preventing blurs/focuses, - * while guaranteeing that afterwards, the event system is reactivated. - * - Flushing a queue of collected DOM mutations to the main UI thread after a - * reconciliation takes place in a worker thread. - * - Invoking any collected `componentDidUpdate` callbacks after rendering new - * content. - * - (Future use case): Wrapping particular flushes of the `ReactWorker` queue - * to preserve the `scrollTop` (an automatic scroll aware DOM). - * - (Future use case): Layout calculations before and after DOM updates. - * - * Transactional plugin API: - * - A module that has an `initialize` method that returns any precomputation. - * - and a `close` method that accepts the precomputation. `close` is invoked - * when the wrapped process is completed, or has failed. - * - * @param {Array<TransactionalWrapper>} transactionWrapper Wrapper modules - * that implement `initialize` and `close`. - * @return {Transaction} Single transaction for reuse in thread. - * - * @class Transaction - */ -var Mixin = { - /** - * Sets up this instance so that it is prepared for collecting metrics. Does - * so such that this setup method may be used on an instance that is already - * initialized, in a way that does not consume additional memory upon reuse. - * That can be useful if you decide to make your subclass of this mixin a - * "PooledClass". - */ - reinitializeTransaction: function () { - this.transactionWrappers = this.getTransactionWrappers(); - if (this.wrapperInitData) { - this.wrapperInitData.length = 0; - } else { - this.wrapperInitData = []; - } - this._isInTransaction = false; - }, - - _isInTransaction: false, - - /** - * @abstract - * @return {Array<TransactionWrapper>} Array of transaction wrappers. - */ - getTransactionWrappers: null, - - isInTransaction: function () { - return !!this._isInTransaction; - }, - - /** - * Executes the function within a safety window. Use this for the top level - * methods that result in large amounts of computation/mutations that would - * need to be safety checked. The optional arguments helps prevent the need - * to bind in many cases. - * - * @param {function} method Member of scope to call. - * @param {Object} scope Scope to invoke from. - * @param {Object?=} a Argument to pass to the method. - * @param {Object?=} b Argument to pass to the method. - * @param {Object?=} c Argument to pass to the method. - * @param {Object?=} d Argument to pass to the method. - * @param {Object?=} e Argument to pass to the method. - * @param {Object?=} f Argument to pass to the method. - * - * @return {*} Return value from `method`. - */ - perform: function (method, scope, a, b, c, d, e, f) { - !!this.isInTransaction() ? "development" !== 'production' ? invariant(false, 'Transaction.perform(...): Cannot initialize a transaction when there ' + 'is already an outstanding transaction.') : invariant(false) : undefined; - var errorThrown; - var ret; - try { - this._isInTransaction = true; - // Catching errors makes debugging more difficult, so we start with - // errorThrown set to true before setting it to false after calling - // close -- if it's still set to true in the finally block, it means - // one of these calls threw. - errorThrown = true; - this.initializeAll(0); - ret = method.call(scope, a, b, c, d, e, f); - errorThrown = false; - } finally { - try { - if (errorThrown) { - // If `method` throws, prefer to show that stack trace over any thrown - // by invoking `closeAll`. - try { - this.closeAll(0); - } catch (err) {} - } else { - // Since `method` didn't throw, we don't want to silence the exception - // here. - this.closeAll(0); - } - } finally { - this._isInTransaction = false; - } - } - return ret; - }, - - initializeAll: function (startIndex) { - var transactionWrappers = this.transactionWrappers; - for (var i = startIndex; i < transactionWrappers.length; i++) { - var wrapper = transactionWrappers[i]; - try { - // Catching errors makes debugging more difficult, so we start with the - // OBSERVED_ERROR state before overwriting it with the real return value - // of initialize -- if it's still set to OBSERVED_ERROR in the finally - // block, it means wrapper.initialize threw. - this.wrapperInitData[i] = Transaction.OBSERVED_ERROR; - this.wrapperInitData[i] = wrapper.initialize ? wrapper.initialize.call(this) : null; - } finally { - if (this.wrapperInitData[i] === Transaction.OBSERVED_ERROR) { - // The initializer for wrapper i threw an error; initialize the - // remaining wrappers but silence any exceptions from them to ensure - // that the first error is the one to bubble up. - try { - this.initializeAll(i + 1); - } catch (err) {} - } - } - } - }, - - /** - * Invokes each of `this.transactionWrappers.close[i]` functions, passing into - * them the respective return values of `this.transactionWrappers.init[i]` - * (`close`rs that correspond to initializers that failed will not be - * invoked). - */ - closeAll: function (startIndex) { - !this.isInTransaction() ? "development" !== 'production' ? invariant(false, 'Transaction.closeAll(): Cannot close transaction when none are open.') : invariant(false) : undefined; - var transactionWrappers = this.transactionWrappers; - for (var i = startIndex; i < transactionWrappers.length; i++) { - var wrapper = transactionWrappers[i]; - var initData = this.wrapperInitData[i]; - var errorThrown; - try { - // Catching errors makes debugging more difficult, so we start with - // errorThrown set to true before setting it to false after calling - // close -- if it's still set to true in the finally block, it means - // wrapper.close threw. - errorThrown = true; - if (initData !== Transaction.OBSERVED_ERROR && wrapper.close) { - wrapper.close.call(this, initData); - } - errorThrown = false; - } finally { - if (errorThrown) { - // The closer for wrapper i threw an error; close the remaining - // wrappers but silence any exceptions from them to ensure that the - // first error is the one to bubble up. - try { - this.closeAll(i + 1); - } catch (e) {} - } - } - } - this.wrapperInitData.length = 0; - } -}; - -var Transaction = { - - Mixin: Mixin, - - /** - * Token to look for to determine if an error occurred. - */ - OBSERVED_ERROR: {} - -}; - -module.exports = Transaction; -},{"143":143}],101:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ViewportMetrics - */ - -'use strict'; - -var ViewportMetrics = { - - currentScrollLeft: 0, - - currentScrollTop: 0, - - refreshScrollValues: function (scrollPosition) { - ViewportMetrics.currentScrollLeft = scrollPosition.x; - ViewportMetrics.currentScrollTop = scrollPosition.y; - } - -}; - -module.exports = ViewportMetrics; -},{}],102:[function(_dereq_,module,exports){ -/** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule accumulateInto - */ - -'use strict'; - -var invariant = _dereq_(143); - -/** - * - * Accumulates items that must not be null or undefined into the first one. This - * is used to conserve memory by avoiding array allocations, and thus sacrifices - * API cleanness. Since `current` can be null before being passed in and not - * null after this function, make sure to assign it back to `current`: - * - * `a = accumulateInto(a, b);` - * - * This API should be sparingly used. Try `accumulate` for something cleaner. - * - * @return {*|array<*>} An accumulation of items. - */ - -function accumulateInto(current, next) { - !(next != null) ? "development" !== 'production' ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : invariant(false) : undefined; - if (current == null) { - return next; - } - - // Both are not empty. Warning: Never call x.concat(y) when you are not - // certain that x is an Array (x could be a string with concat method). - var currentIsArray = Array.isArray(current); - var nextIsArray = Array.isArray(next); - - if (currentIsArray && nextIsArray) { - current.push.apply(current, next); - return current; - } - - if (currentIsArray) { - current.push(next); - return current; - } - - if (nextIsArray) { - // A bit too dangerous to mutate `next`. - return [current].concat(next); - } - - return [current, next]; -} - -module.exports = accumulateInto; -},{"143":143}],103:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule adler32 - */ - -'use strict'; - -var MOD = 65521; - -// adler32 is not cryptographically strong, and is only used to sanity check that -// markup generated on the server matches the markup generated on the client. -// This implementation (a modified version of the SheetJS version) has been optimized -// for our use case, at the expense of conforming to the adler32 specification -// for non-ascii inputs. -function adler32(data) { - var a = 1; - var b = 0; - var i = 0; - var l = data.length; - var m = l & ~0x3; - while (i < m) { - for (; i < Math.min(i + 4096, m); i += 4) { - b += (a += data.charCodeAt(i)) + (a += data.charCodeAt(i + 1)) + (a += data.charCodeAt(i + 2)) + (a += data.charCodeAt(i + 3)); - } - a %= MOD; - b %= MOD; - } - for (; i < l; i++) { - b += a += data.charCodeAt(i); - } - a %= MOD; - b %= MOD; - return a | b << 16; -} - -module.exports = adler32; -},{}],104:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule dangerousStyleValue - * @typechecks static-only - */ - -'use strict'; - -var CSSProperty = _dereq_(4); - -var isUnitlessNumber = CSSProperty.isUnitlessNumber; - -/** - * Convert a value into the proper css writable value. The style name `name` - * should be logical (no hyphens), as specified - * in `CSSProperty.isUnitlessNumber`. - * - * @param {string} name CSS property name such as `topMargin`. - * @param {*} value CSS property value such as `10px`. - * @return {string} Normalized style value with dimensions applied. - */ -function dangerousStyleValue(name, value) { - // Note that we've removed escapeTextForBrowser() calls here since the - // whole string will be escaped when the attribute is injected into - // the markup. If you provide unsafe user data here they can inject - // arbitrary CSS which may be problematic (I couldn't repro this): - // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet - // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/ - // This is not an XSS hole but instead a potential CSS injection issue - // which has lead to a greater discussion about how we're going to - // trust URLs moving forward. See #2115901 - - var isEmpty = value == null || typeof value === 'boolean' || value === ''; - if (isEmpty) { - return ''; - } - - var isNonNumeric = isNaN(value); - if (isNonNumeric || value === 0 || isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name]) { - return '' + value; // cast to string - } - - if (typeof value === 'string') { - value = value.trim(); - } - return value + 'px'; -} - -module.exports = dangerousStyleValue; -},{"4":4}],105:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule deprecated - */ - -'use strict'; - -var assign = _dereq_(23); -var warning = _dereq_(154); - -/** - * This will log a single deprecation notice per function and forward the call - * on to the new API. - * - * @param {string} fnName The name of the function - * @param {string} newModule The module that fn will exist in - * @param {string} newPackage The module that fn will exist in - * @param {*} ctx The context this forwarded call should run in - * @param {function} fn The function to forward on to - * @return {function} The function that will warn once and then call fn - */ -function deprecated(fnName, newModule, newPackage, ctx, fn) { - var warned = false; - if ("development" !== 'production') { - var newFn = function () { - "development" !== 'production' ? warning(warned, - // Require examples in this string must be split to prevent React's - // build tools from mistaking them for real requires. - // Otherwise the build tools will attempt to build a '%s' module. - 'React.%s is deprecated. Please use %s.%s from require' + '(\'%s\') ' + 'instead.', fnName, newModule, fnName, newPackage) : undefined; - warned = true; - return fn.apply(ctx, arguments); - }; - // We need to make sure all properties of the original fn are copied over. - // In particular, this is needed to support PropTypes - return assign(newFn, fn); - } - - return fn; -} - -module.exports = deprecated; -},{"154":154,"23":23}],106:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule escapeTextContentForBrowser - */ - -'use strict'; - -var ESCAPE_LOOKUP = { - '&': '&', - '>': '>', - '<': '<', - '"': '"', - '\'': ''' -}; - -var ESCAPE_REGEX = /[&><"']/g; - -function escaper(match) { - return ESCAPE_LOOKUP[match]; -} - -/** - * Escapes text to prevent scripting attacks. - * - * @param {*} text Text value to escape. - * @return {string} An escaped string. - */ -function escapeTextContentForBrowser(text) { - return ('' + text).replace(ESCAPE_REGEX, escaper); -} - -module.exports = escapeTextContentForBrowser; -},{}],107:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule findDOMNode - * @typechecks static-only - */ - -'use strict'; - -var ReactCurrentOwner = _dereq_(34); -var ReactInstanceMap = _dereq_(62); -var ReactMount = _dereq_(65); - -var invariant = _dereq_(143); -var warning = _dereq_(154); - -/** - * Returns the DOM node rendered by this element. - * - * @param {ReactComponent|DOMElement} componentOrElement - * @return {?DOMElement} The root node of this element. - */ -function findDOMNode(componentOrElement) { - if ("development" !== 'production') { - var owner = ReactCurrentOwner.current; - if (owner !== null) { - "development" !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing getDOMNode or findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : undefined; - owner._warnedAboutRefsInRender = true; - } - } - if (componentOrElement == null) { - return null; - } - if (componentOrElement.nodeType === 1) { - return componentOrElement; - } - if (ReactInstanceMap.has(componentOrElement)) { - return ReactMount.getNodeFromInstance(componentOrElement); - } - !(componentOrElement.render == null || typeof componentOrElement.render !== 'function') ? "development" !== 'production' ? invariant(false, 'findDOMNode was called on an unmounted component.') : invariant(false) : undefined; - !false ? "development" !== 'production' ? invariant(false, 'Element appears to be neither ReactComponent nor DOMNode (keys: %s)', Object.keys(componentOrElement)) : invariant(false) : undefined; -} - -module.exports = findDOMNode; -},{"143":143,"154":154,"34":34,"62":62,"65":65}],108:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule flattenChildren - */ - -'use strict'; - -var traverseAllChildren = _dereq_(126); -var warning = _dereq_(154); - -/** - * @param {function} traverseContext Context passed through traversal. - * @param {?ReactComponent} child React child component. - * @param {!string} name String name of key path to child. - */ -function flattenSingleChildIntoContext(traverseContext, child, name) { - // We found a component instance. - var result = traverseContext; - var keyUnique = result[name] === undefined; - if ("development" !== 'production') { - "development" !== 'production' ? warning(keyUnique, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.', name) : undefined; - } - if (keyUnique && child != null) { - result[name] = child; - } -} - -/** - * Flattens children that are typically specified as `props.children`. Any null - * children will not be included in the resulting object. - * @return {!object} flattened children keyed by name. - */ -function flattenChildren(children) { - if (children == null) { - return children; - } - var result = {}; - traverseAllChildren(children, flattenSingleChildIntoContext, result); - return result; -} - -module.exports = flattenChildren; -},{"126":126,"154":154}],109:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule forEachAccumulated - */ - -'use strict'; - -/** - * @param {array} arr an "accumulation" of items which is either an Array or - * a single item. Useful when paired with the `accumulate` module. This is a - * simple utility that allows us to reason about a collection of items, but - * handling the case when there is exactly one item (and we do not need to - * allocate an array). - */ -var forEachAccumulated = function (arr, cb, scope) { - if (Array.isArray(arr)) { - arr.forEach(cb, scope); - } else if (arr) { - cb.call(scope, arr); - } -}; - -module.exports = forEachAccumulated; -},{}],110:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule getEventCharCode - * @typechecks static-only - */ - -'use strict'; - -/** - * `charCode` represents the actual "character code" and is safe to use with - * `String.fromCharCode`. As such, only keys that correspond to printable - * characters produce a valid `charCode`, the only exception to this is Enter. - * The Tab-key is considered non-printable and does not have a `charCode`, - * presumably because it does not produce a tab-character in browsers. - * - * @param {object} nativeEvent Native browser event. - * @return {number} Normalized `charCode` property. - */ -function getEventCharCode(nativeEvent) { - var charCode; - var keyCode = nativeEvent.keyCode; - - if ('charCode' in nativeEvent) { - charCode = nativeEvent.charCode; - - // FF does not set `charCode` for the Enter-key, check against `keyCode`. - if (charCode === 0 && keyCode === 13) { - charCode = 13; - } - } else { - // IE8 does not implement `charCode`, but `keyCode` has the correct value. - charCode = keyCode; - } - - // Some non-printable keys are reported in `charCode`/`keyCode`, discard them. - // Must not discard the (non-)printable Enter-key. - if (charCode >= 32 || charCode === 13) { - return charCode; - } - - return 0; -} - -module.exports = getEventCharCode; -},{}],111:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule getEventKey - * @typechecks static-only - */ - -'use strict'; - -var getEventCharCode = _dereq_(110); - -/** - * Normalization of deprecated HTML5 `key` values - * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names - */ -var normalizeKey = { - 'Esc': 'Escape', - 'Spacebar': ' ', - 'Left': 'ArrowLeft', - 'Up': 'ArrowUp', - 'Right': 'ArrowRight', - 'Down': 'ArrowDown', - 'Del': 'Delete', - 'Win': 'OS', - 'Menu': 'ContextMenu', - 'Apps': 'ContextMenu', - 'Scroll': 'ScrollLock', - 'MozPrintableKey': 'Unidentified' -}; - -/** - * Translation from legacy `keyCode` to HTML5 `key` - * Only special keys supported, all others depend on keyboard layout or browser - * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names - */ -var translateToKey = { - 8: 'Backspace', - 9: 'Tab', - 12: 'Clear', - 13: 'Enter', - 16: 'Shift', - 17: 'Control', - 18: 'Alt', - 19: 'Pause', - 20: 'CapsLock', - 27: 'Escape', - 32: ' ', - 33: 'PageUp', - 34: 'PageDown', - 35: 'End', - 36: 'Home', - 37: 'ArrowLeft', - 38: 'ArrowUp', - 39: 'ArrowRight', - 40: 'ArrowDown', - 45: 'Insert', - 46: 'Delete', - 112: 'F1', 113: 'F2', 114: 'F3', 115: 'F4', 116: 'F5', 117: 'F6', - 118: 'F7', 119: 'F8', 120: 'F9', 121: 'F10', 122: 'F11', 123: 'F12', - 144: 'NumLock', - 145: 'ScrollLock', - 224: 'Meta' -}; - -/** - * @param {object} nativeEvent Native browser event. - * @return {string} Normalized `key` property. - */ -function getEventKey(nativeEvent) { - if (nativeEvent.key) { - // Normalize inconsistent values reported by browsers due to - // implementations of a working draft specification. - - // FireFox implements `key` but returns `MozPrintableKey` for all - // printable characters (normalized to `Unidentified`), ignore it. - var key = normalizeKey[nativeEvent.key] || nativeEvent.key; - if (key !== 'Unidentified') { - return key; - } - } - - // Browser does not implement `key`, polyfill as much of it as we can. - if (nativeEvent.type === 'keypress') { - var charCode = getEventCharCode(nativeEvent); - - // The enter-key is technically both printable and non-printable and can - // thus be captured by `keypress`, no other non-printable key should. - return charCode === 13 ? 'Enter' : String.fromCharCode(charCode); - } - if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') { - // While user keyboard layout determines the actual meaning of each - // `keyCode` value, almost all function keys have a universal value. - return translateToKey[nativeEvent.keyCode] || 'Unidentified'; - } - return ''; -} - -module.exports = getEventKey; -},{"110":110}],112:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule getEventModifierState - * @typechecks static-only - */ - -'use strict'; - -/** - * Translation from modifier key to the associated property in the event. - * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers - */ - -var modifierKeyToProp = { - 'Alt': 'altKey', - 'Control': 'ctrlKey', - 'Meta': 'metaKey', - 'Shift': 'shiftKey' -}; - -// IE8 does not implement getModifierState so we simply map it to the only -// modifier keys exposed by the event itself, does not support Lock-keys. -// Currently, all major browsers except Chrome seems to support Lock-keys. -function modifierStateGetter(keyArg) { - var syntheticEvent = this; - var nativeEvent = syntheticEvent.nativeEvent; - if (nativeEvent.getModifierState) { - return nativeEvent.getModifierState(keyArg); - } - var keyProp = modifierKeyToProp[keyArg]; - return keyProp ? !!nativeEvent[keyProp] : false; -} - -function getEventModifierState(nativeEvent) { - return modifierStateGetter; -} - -module.exports = getEventModifierState; -},{}],113:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule getEventTarget - * @typechecks static-only - */ - -'use strict'; - -/** - * Gets the target node from a native browser event by accounting for - * inconsistencies in browser DOM APIs. - * - * @param {object} nativeEvent Native browser event. - * @return {DOMEventTarget} Target node. - */ -function getEventTarget(nativeEvent) { - var target = nativeEvent.target || nativeEvent.srcElement || window; - // Safari may fire events on text nodes (Node.TEXT_NODE is 3). - // @see http://www.quirksmode.org/js/events_properties.html - return target.nodeType === 3 ? target.parentNode : target; -} - -module.exports = getEventTarget; -},{}],114:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule getIteratorFn - * @typechecks static-only - */ - -'use strict'; - -/* global Symbol */ -var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; -var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. - -/** - * Returns the iterator method function contained on the iterable object. - * - * Be sure to invoke the function with the iterable as context: - * - * var iteratorFn = getIteratorFn(myIterable); - * if (iteratorFn) { - * var iterator = iteratorFn.call(myIterable); - * ... - * } - * - * @param {?object} maybeIterable - * @return {?function} - */ -function getIteratorFn(maybeIterable) { - var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); - if (typeof iteratorFn === 'function') { - return iteratorFn; - } -} - -module.exports = getIteratorFn; -},{}],115:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule getNodeForCharacterOffset - */ - -'use strict'; - -/** - * Given any node return the first leaf node without children. - * - * @param {DOMElement|DOMTextNode} node - * @return {DOMElement|DOMTextNode} - */ -function getLeafNode(node) { - while (node && node.firstChild) { - node = node.firstChild; - } - return node; -} - -/** - * Get the next sibling within a container. This will walk up the - * DOM if a node's siblings have been exhausted. - * - * @param {DOMElement|DOMTextNode} node - * @return {?DOMElement|DOMTextNode} - */ -function getSiblingNode(node) { - while (node) { - if (node.nextSibling) { - return node.nextSibling; - } - node = node.parentNode; - } -} - -/** - * Get object describing the nodes which contain characters at offset. - * - * @param {DOMElement|DOMTextNode} root - * @param {number} offset - * @return {?object} - */ -function getNodeForCharacterOffset(root, offset) { - var node = getLeafNode(root); - var nodeStart = 0; - var nodeEnd = 0; - - while (node) { - if (node.nodeType === 3) { - nodeEnd = nodeStart + node.textContent.length; - - if (nodeStart <= offset && nodeEnd >= offset) { - return { - node: node, - offset: offset - nodeStart - }; - } - - nodeStart = nodeEnd; - } - - node = getLeafNode(getSiblingNode(node)); - } -} - -module.exports = getNodeForCharacterOffset; -},{}],116:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule getTextContentAccessor - */ - -'use strict'; - -var ExecutionEnvironment = _dereq_(129); - -var contentKey = null; - -/** - * Gets the key used to access text content on a DOM node. - * - * @return {?string} Key used to access text content. - * @internal - */ -function getTextContentAccessor() { - if (!contentKey && ExecutionEnvironment.canUseDOM) { - // Prefer textContent to innerText because many browsers support both but - // SVG <text> elements don't support innerText even when <div> does. - contentKey = 'textContent' in document.documentElement ? 'textContent' : 'innerText'; - } - return contentKey; -} - -module.exports = getTextContentAccessor; -},{"129":129}],117:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule instantiateReactComponent - * @typechecks static-only - */ - -'use strict'; - -var ReactCompositeComponent = _dereq_(33); -var ReactEmptyComponent = _dereq_(54); -var ReactNativeComponent = _dereq_(68); - -var assign = _dereq_(23); -var invariant = _dereq_(143); -var warning = _dereq_(154); - -// To avoid a cyclic dependency, we create the final class in this module -var ReactCompositeComponentWrapper = function () {}; -assign(ReactCompositeComponentWrapper.prototype, ReactCompositeComponent.Mixin, { - _instantiateReactComponent: instantiateReactComponent -}); - -function getDeclarationErrorAddendum(owner) { - if (owner) { - var name = owner.getName(); - if (name) { - return ' Check the render method of `' + name + '`.'; - } - } - return ''; -} - -/** - * Check if the type reference is a known internal type. I.e. not a user - * provided composite type. - * - * @param {function} type - * @return {boolean} Returns true if this is a valid internal type. - */ -function isInternalComponentType(type) { - return typeof type === 'function' && typeof type.prototype !== 'undefined' && typeof type.prototype.mountComponent === 'function' && typeof type.prototype.receiveComponent === 'function'; -} - -/** - * Given a ReactNode, create an instance that will actually be mounted. - * - * @param {ReactNode} node - * @return {object} A new instance of the element's constructor. - * @protected - */ -function instantiateReactComponent(node) { - var instance; - - if (node === null || node === false) { - instance = new ReactEmptyComponent(instantiateReactComponent); - } else if (typeof node === 'object') { - var element = node; - !(element && (typeof element.type === 'function' || typeof element.type === 'string')) ? "development" !== 'production' ? invariant(false, 'Element type is invalid: expected a string (for built-in components) ' + 'or a class/function (for composite components) but got: %s.%s', element.type == null ? element.type : typeof element.type, getDeclarationErrorAddendum(element._owner)) : invariant(false) : undefined; - - // Special case string values - if (typeof element.type === 'string') { - instance = ReactNativeComponent.createInternalComponent(element); - } else if (isInternalComponentType(element.type)) { - // This is temporarily available for custom components that are not string - // representations. I.e. ART. Once those are updated to use the string - // representation, we can drop this code path. - instance = new element.type(element); - } else { - instance = new ReactCompositeComponentWrapper(); - } - } else if (typeof node === 'string' || typeof node === 'number') { - instance = ReactNativeComponent.createInstanceForText(node); - } else { - !false ? "development" !== 'production' ? invariant(false, 'Encountered invalid React node of type %s', typeof node) : invariant(false) : undefined; - } - - if ("development" !== 'production') { - "development" !== 'production' ? warning(typeof instance.construct === 'function' && typeof instance.mountComponent === 'function' && typeof instance.receiveComponent === 'function' && typeof instance.unmountComponent === 'function', 'Only React Components can be mounted.') : undefined; - } - - // Sets up the instance. This can probably just move into the constructor now. - instance.construct(node); - - // These two fields are used by the DOM and ART diffing algorithms - // respectively. Instead of using expandos on components, we should be - // storing the state needed by the diffing algorithms elsewhere. - instance._mountIndex = 0; - instance._mountImage = null; - - if ("development" !== 'production') { - instance._isOwnerNecessary = false; - instance._warnedAboutRefsInRender = false; - } - - // Internal instances should fully constructed at this point, so they should - // not get any new fields added to them at this point. - if ("development" !== 'production') { - if (Object.preventExtensions) { - Object.preventExtensions(instance); - } - } - - return instance; -} - -module.exports = instantiateReactComponent; -},{"143":143,"154":154,"23":23,"33":33,"54":54,"68":68}],118:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule isEventSupported - */ - -'use strict'; - -var ExecutionEnvironment = _dereq_(129); - -var useHasFeature; -if (ExecutionEnvironment.canUseDOM) { - useHasFeature = document.implementation && document.implementation.hasFeature && - // always returns true in newer browsers as per the standard. - // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature - document.implementation.hasFeature('', '') !== true; -} - -/** - * Checks if an event is supported in the current execution environment. - * - * NOTE: This will not work correctly for non-generic events such as `change`, - * `reset`, `load`, `error`, and `select`. - * - * Borrows from Modernizr. - * - * @param {string} eventNameSuffix Event name, e.g. "click". - * @param {?boolean} capture Check if the capture phase is supported. - * @return {boolean} True if the event is supported. - * @internal - * @license Modernizr 3.0.0pre (Custom Build) | MIT - */ -function isEventSupported(eventNameSuffix, capture) { - if (!ExecutionEnvironment.canUseDOM || capture && !('addEventListener' in document)) { - return false; - } - - var eventName = 'on' + eventNameSuffix; - var isSupported = (eventName in document); - - if (!isSupported) { - var element = document.createElement('div'); - element.setAttribute(eventName, 'return;'); - isSupported = typeof element[eventName] === 'function'; - } - - if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') { - // This is the only way to test support for the `wheel` event in IE9+. - isSupported = document.implementation.hasFeature('Events.wheel', '3.0'); - } - - return isSupported; -} - -module.exports = isEventSupported; -},{"129":129}],119:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule isTextInputElement - */ - -'use strict'; - -/** - * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary - */ -var supportedInputTypes = { - 'color': true, - 'date': true, - 'datetime': true, - 'datetime-local': true, - 'email': true, - 'month': true, - 'number': true, - 'password': true, - 'range': true, - 'search': true, - 'tel': true, - 'text': true, - 'time': true, - 'url': true, - 'week': true -}; - -function isTextInputElement(elem) { - var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase(); - return nodeName && (nodeName === 'input' && supportedInputTypes[elem.type] || nodeName === 'textarea'); -} - -module.exports = isTextInputElement; -},{}],120:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule onlyChild - */ -'use strict'; - -var ReactElement = _dereq_(52); - -var invariant = _dereq_(143); - -/** - * Returns the first child in a collection of children and verifies that there - * is only one child in the collection. The current implementation of this - * function assumes that a single child gets passed without a wrapper, but the - * purpose of this helper function is to abstract away the particular structure - * of children. - * - * @param {?object} children Child collection structure. - * @return {ReactComponent} The first and only `ReactComponent` contained in the - * structure. - */ -function onlyChild(children) { - !ReactElement.isValidElement(children) ? "development" !== 'production' ? invariant(false, 'onlyChild must be passed a children with exactly one child.') : invariant(false) : undefined; - return children; -} - -module.exports = onlyChild; -},{"143":143,"52":52}],121:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule quoteAttributeValueForBrowser - */ - -'use strict'; - -var escapeTextContentForBrowser = _dereq_(106); - -/** - * Escapes attribute value to prevent scripting attacks. - * - * @param {*} value Value to escape. - * @return {string} An escaped string. - */ -function quoteAttributeValueForBrowser(value) { - return '"' + escapeTextContentForBrowser(value) + '"'; -} - -module.exports = quoteAttributeValueForBrowser; -},{"106":106}],122:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * -* @providesModule renderSubtreeIntoContainer -*/ - -'use strict'; - -var ReactMount = _dereq_(65); - -module.exports = ReactMount.renderSubtreeIntoContainer; -},{"65":65}],123:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule setInnerHTML - */ - -/* globals MSApp */ - -'use strict'; - -var ExecutionEnvironment = _dereq_(129); - -var WHITESPACE_TEST = /^[ \r\n\t\f]/; -var NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/; - -/** - * Set the innerHTML property of a node, ensuring that whitespace is preserved - * even in IE8. - * - * @param {DOMElement} node - * @param {string} html - * @internal - */ -var setInnerHTML = function (node, html) { - node.innerHTML = html; -}; - -// Win8 apps: Allow all html to be inserted -if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) { - setInnerHTML = function (node, html) { - MSApp.execUnsafeLocalFunction(function () { - node.innerHTML = html; - }); - }; -} - -if (ExecutionEnvironment.canUseDOM) { - // IE8: When updating a just created node with innerHTML only leading - // whitespace is removed. When updating an existing node with innerHTML - // whitespace in root TextNodes is also collapsed. - // @see quirksmode.org/bugreports/archives/2004/11/innerhtml_and_t.html - - // Feature detection; only IE8 is known to behave improperly like this. - var testElement = document.createElement('div'); - testElement.innerHTML = ' '; - if (testElement.innerHTML === '') { - setInnerHTML = function (node, html) { - // Magic theory: IE8 supposedly differentiates between added and updated - // nodes when processing innerHTML, innerHTML on updated nodes suffers - // from worse whitespace behavior. Re-adding a node like this triggers - // the initial and more favorable whitespace behavior. - // TODO: What to do on a detached node? - if (node.parentNode) { - node.parentNode.replaceChild(node, node); - } - - // We also implement a workaround for non-visible tags disappearing into - // thin air on IE8, this only happens if there is no visible text - // in-front of the non-visible tags. Piggyback on the whitespace fix - // and simply check if any non-visible tags appear in the source. - if (WHITESPACE_TEST.test(html) || html[0] === '<' && NONVISIBLE_TEST.test(html)) { - // Recover leading whitespace by temporarily prepending any character. - // \uFEFF has the potential advantage of being zero-width/invisible. - // UglifyJS drops U+FEFF chars when parsing, so use String.fromCharCode - // in hopes that this is preserved even if "\uFEFF" is transformed to - // the actual Unicode character (by Babel, for example). - // https://github.com/mishoo/UglifyJS2/blob/v2.4.20/lib/parse.js#L216 - node.innerHTML = String.fromCharCode(0xFEFF) + html; - - // deleteData leaves an empty `TextNode` which offsets the index of all - // children. Definitely want to avoid this. - var textNode = node.firstChild; - if (textNode.data.length === 1) { - node.removeChild(textNode); - } else { - textNode.deleteData(0, 1); - } - } else { - node.innerHTML = html; - } - }; - } -} - -module.exports = setInnerHTML; -},{"129":129}],124:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule setTextContent - */ - -'use strict'; - -var ExecutionEnvironment = _dereq_(129); -var escapeTextContentForBrowser = _dereq_(106); -var setInnerHTML = _dereq_(123); - -/** - * Set the textContent property of a node, ensuring that whitespace is preserved - * even in IE8. innerText is a poor substitute for textContent and, among many - * issues, inserts <br> instead of the literal newline chars. innerHTML behaves - * as it should. - * - * @param {DOMElement} node - * @param {string} text - * @internal - */ -var setTextContent = function (node, text) { - node.textContent = text; -}; - -if (ExecutionEnvironment.canUseDOM) { - if (!('textContent' in document.documentElement)) { - setTextContent = function (node, text) { - setInnerHTML(node, escapeTextContentForBrowser(text)); - }; - } -} - -module.exports = setTextContent; -},{"106":106,"123":123,"129":129}],125:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule shouldUpdateReactComponent - * @typechecks static-only - */ - -'use strict'; - -/** - * Given a `prevElement` and `nextElement`, determines if the existing - * instance should be updated as opposed to being destroyed or replaced by a new - * instance. Both arguments are elements. This ensures that this logic can - * operate on stateless trees without any backing instance. - * - * @param {?object} prevElement - * @param {?object} nextElement - * @return {boolean} True if the existing instance should be updated. - * @protected - */ -function shouldUpdateReactComponent(prevElement, nextElement) { - var prevEmpty = prevElement === null || prevElement === false; - var nextEmpty = nextElement === null || nextElement === false; - if (prevEmpty || nextEmpty) { - return prevEmpty === nextEmpty; - } - - var prevType = typeof prevElement; - var nextType = typeof nextElement; - if (prevType === 'string' || prevType === 'number') { - return nextType === 'string' || nextType === 'number'; - } else { - return nextType === 'object' && prevElement.type === nextElement.type && prevElement.key === nextElement.key; - } - return false; -} - -module.exports = shouldUpdateReactComponent; -},{}],126:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule traverseAllChildren - */ - -'use strict'; - -var ReactCurrentOwner = _dereq_(34); -var ReactElement = _dereq_(52); -var ReactInstanceHandles = _dereq_(61); - -var getIteratorFn = _dereq_(114); -var invariant = _dereq_(143); -var warning = _dereq_(154); - -var SEPARATOR = ReactInstanceHandles.SEPARATOR; -var SUBSEPARATOR = ':'; - -/** - * TODO: Test that a single child and an array with one item have the same key - * pattern. - */ - -var userProvidedKeyEscaperLookup = { - '=': '=0', - '.': '=1', - ':': '=2' -}; - -var userProvidedKeyEscapeRegex = /[=.:]/g; - -var didWarnAboutMaps = false; - -function userProvidedKeyEscaper(match) { - return userProvidedKeyEscaperLookup[match]; -} - -/** - * Generate a key string that identifies a component within a set. - * - * @param {*} component A component that could contain a manual key. - * @param {number} index Index that is used if a manual key is not provided. - * @return {string} - */ -function getComponentKey(component, index) { - if (component && component.key != null) { - // Explicit key - return wrapUserProvidedKey(component.key); - } - // Implicit key determined by the index in the set - return index.toString(36); -} - -/** - * Escape a component key so that it is safe to use in a reactid. - * - * @param {*} text Component key to be escaped. - * @return {string} An escaped string. - */ -function escapeUserProvidedKey(text) { - return ('' + text).replace(userProvidedKeyEscapeRegex, userProvidedKeyEscaper); -} - -/** - * Wrap a `key` value explicitly provided by the user to distinguish it from - * implicitly-generated keys generated by a component's index in its parent. - * - * @param {string} key Value of a user-provided `key` attribute - * @return {string} - */ -function wrapUserProvidedKey(key) { - return '$' + escapeUserProvidedKey(key); -} - -/** - * @param {?*} children Children tree container. - * @param {!string} nameSoFar Name of the key path so far. - * @param {!function} callback Callback to invoke with each child found. - * @param {?*} traverseContext Used to pass information throughout the traversal - * process. - * @return {!number} The number of children in this subtree. - */ -function traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) { - var type = typeof children; - - if (type === 'undefined' || type === 'boolean') { - // All of the above are perceived as null. - children = null; - } - - if (children === null || type === 'string' || type === 'number' || ReactElement.isValidElement(children)) { - callback(traverseContext, children, - // If it's the only child, treat the name as if it was wrapped in an array - // so that it's consistent if the number of children grows. - nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar); - return 1; - } - - var child; - var nextName; - var subtreeCount = 0; // Count of children found in the current subtree. - var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR; - - if (Array.isArray(children)) { - for (var i = 0; i < children.length; i++) { - child = children[i]; - nextName = nextNamePrefix + getComponentKey(child, i); - subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); - } - } else { - var iteratorFn = getIteratorFn(children); - if (iteratorFn) { - var iterator = iteratorFn.call(children); - var step; - if (iteratorFn !== children.entries) { - var ii = 0; - while (!(step = iterator.next()).done) { - child = step.value; - nextName = nextNamePrefix + getComponentKey(child, ii++); - subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); - } - } else { - if ("development" !== 'production') { - "development" !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.') : undefined; - didWarnAboutMaps = true; - } - // Iterator will provide entry [k,v] tuples rather than values. - while (!(step = iterator.next()).done) { - var entry = step.value; - if (entry) { - child = entry[1]; - nextName = nextNamePrefix + wrapUserProvidedKey(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0); - subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); - } - } - } - } else if (type === 'object') { - var addendum = ''; - if ("development" !== 'production') { - addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.'; - if (children._isReactElement) { - addendum = ' It looks like you\'re using an element created by a different ' + 'version of React. Make sure to use only one copy of React.'; - } - if (ReactCurrentOwner.current) { - var name = ReactCurrentOwner.current.getName(); - if (name) { - addendum += ' Check the render method of `' + name + '`.'; - } - } - } - var childrenString = String(children); - !false ? "development" !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : invariant(false) : undefined; - } - } - - return subtreeCount; -} - -/** - * Traverses children that are typically specified as `props.children`, but - * might also be specified through attributes: - * - * - `traverseAllChildren(this.props.children, ...)` - * - `traverseAllChildren(this.props.leftPanelChildren, ...)` - * - * The `traverseContext` is an optional argument that is passed through the - * entire traversal. It can be used to store accumulations or anything else that - * the callback might find relevant. - * - * @param {?*} children Children tree object. - * @param {!function} callback To invoke upon traversing each child. - * @param {?*} traverseContext Context for traversal. - * @return {!number} The number of children in this subtree. - */ -function traverseAllChildren(children, callback, traverseContext) { - if (children == null) { - return 0; - } - - return traverseAllChildrenImpl(children, '', callback, traverseContext); -} - -module.exports = traverseAllChildren; -},{"114":114,"143":143,"154":154,"34":34,"52":52,"61":61}],127:[function(_dereq_,module,exports){ -/** - * Copyright 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule validateDOMNesting - */ - -'use strict'; - -var assign = _dereq_(23); -var emptyFunction = _dereq_(135); -var warning = _dereq_(154); - -var validateDOMNesting = emptyFunction; - -if ("development" !== 'production') { - // This validation code was written based on the HTML5 parsing spec: - // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope - // - // Note: this does not catch all invalid nesting, nor does it try to (as it's - // not clear what practical benefit doing so provides); instead, we warn only - // for cases where the parser will give a parse tree differing from what React - // intended. For example, <b><div></div></b> is invalid but we don't warn - // because it still parses correctly; we do warn for other cases like nested - // <p> tags where the beginning of the second element implicitly closes the - // first, causing a confusing mess. - - // https://html.spec.whatwg.org/multipage/syntax.html#special - var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp']; - - // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope - var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template', - - // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point - // TODO: Distinguish by namespace here -- for <title>, including it here - // errs on the side of fewer warnings - 'foreignObject', 'desc', 'title']; - - // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope - var buttonScopeTags = inScopeTags.concat(['button']); - - // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags - var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt']; - - var emptyAncestorInfo = { - parentTag: null, - - formTag: null, - aTagInScope: null, - buttonTagInScope: null, - nobrTagInScope: null, - pTagInButtonScope: null, - - listItemTagAutoclosing: null, - dlItemTagAutoclosing: null - }; - - var updatedAncestorInfo = function (oldInfo, tag, instance) { - var ancestorInfo = assign({}, oldInfo || emptyAncestorInfo); - var info = { tag: tag, instance: instance }; - - if (inScopeTags.indexOf(tag) !== -1) { - ancestorInfo.aTagInScope = null; - ancestorInfo.buttonTagInScope = null; - ancestorInfo.nobrTagInScope = null; - } - if (buttonScopeTags.indexOf(tag) !== -1) { - ancestorInfo.pTagInButtonScope = null; - } - - // See rules for 'li', 'dd', 'dt' start tags in - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody - if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') { - ancestorInfo.listItemTagAutoclosing = null; - ancestorInfo.dlItemTagAutoclosing = null; - } - - ancestorInfo.parentTag = info; - - if (tag === 'form') { - ancestorInfo.formTag = info; - } - if (tag === 'a') { - ancestorInfo.aTagInScope = info; - } - if (tag === 'button') { - ancestorInfo.buttonTagInScope = info; - } - if (tag === 'nobr') { - ancestorInfo.nobrTagInScope = info; - } - if (tag === 'p') { - ancestorInfo.pTagInButtonScope = info; - } - if (tag === 'li') { - ancestorInfo.listItemTagAutoclosing = info; - } - if (tag === 'dd' || tag === 'dt') { - ancestorInfo.dlItemTagAutoclosing = info; - } - - return ancestorInfo; - }; - - /** - * Returns whether - */ - var isTagValidWithParent = function (tag, parentTag) { - // First, let's check if we're in an unusual parsing mode... - switch (parentTag) { - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect - case 'select': - return tag === 'option' || tag === 'optgroup' || tag === '#text'; - case 'optgroup': - return tag === 'option' || tag === '#text'; - // Strictly speaking, seeing an <option> doesn't mean we're in a <select> - // but - case 'option': - return tag === '#text'; - - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption - // No special behavior since these rules fall back to "in body" mode for - // all except special table nodes which cause bad parsing behavior anyway. - - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr - case 'tr': - return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template'; - - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody - case 'tbody': - case 'thead': - case 'tfoot': - return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template'; - - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup - case 'colgroup': - return tag === 'col' || tag === 'template'; - - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable - case 'table': - return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template'; - - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead - case 'head': - return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template'; - - // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element - case 'html': - return tag === 'head' || tag === 'body'; - } - - // Probably in the "in body" parsing mode, so we outlaw only tag combos - // where the parsing rules cause implicit opens or closes to be added. - // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody - switch (tag) { - case 'h1': - case 'h2': - case 'h3': - case 'h4': - case 'h5': - case 'h6': - return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6'; - - case 'rp': - case 'rt': - return impliedEndTags.indexOf(parentTag) === -1; - - case 'caption': - case 'col': - case 'colgroup': - case 'frame': - case 'head': - case 'tbody': - case 'td': - case 'tfoot': - case 'th': - case 'thead': - case 'tr': - // These tags are only valid with a few parents that have special child - // parsing rules -- if we're down here, then none of those matched and - // so we allow it only if we don't know what the parent is, as all other - // cases are invalid. - return parentTag == null; - } - - return true; - }; - - /** - * Returns whether - */ - var findInvalidAncestorForTag = function (tag, ancestorInfo) { - switch (tag) { - case 'address': - case 'article': - case 'aside': - case 'blockquote': - case 'center': - case 'details': - case 'dialog': - case 'dir': - case 'div': - case 'dl': - case 'fieldset': - case 'figcaption': - case 'figure': - case 'footer': - case 'header': - case 'hgroup': - case 'main': - case 'menu': - case 'nav': - case 'ol': - case 'p': - case 'section': - case 'summary': - case 'ul': - - case 'pre': - case 'listing': - - case 'table': - - case 'hr': - - case 'xmp': - - case 'h1': - case 'h2': - case 'h3': - case 'h4': - case 'h5': - case 'h6': - return ancestorInfo.pTagInButtonScope; - - case 'form': - return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope; - - case 'li': - return ancestorInfo.listItemTagAutoclosing; - - case 'dd': - case 'dt': - return ancestorInfo.dlItemTagAutoclosing; - - case 'button': - return ancestorInfo.buttonTagInScope; - - case 'a': - // Spec says something about storing a list of markers, but it sounds - // equivalent to this check. - return ancestorInfo.aTagInScope; - - case 'nobr': - return ancestorInfo.nobrTagInScope; - } - - return null; - }; - - /** - * Given a ReactCompositeComponent instance, return a list of its recursive - * owners, starting at the root and ending with the instance itself. - */ - var findOwnerStack = function (instance) { - if (!instance) { - return []; - } - - var stack = []; - /*eslint-disable space-after-keywords */ - do { - /*eslint-enable space-after-keywords */ - stack.push(instance); - } while (instance = instance._currentElement._owner); - stack.reverse(); - return stack; - }; - - var didWarn = {}; - - validateDOMNesting = function (childTag, childInstance, ancestorInfo) { - ancestorInfo = ancestorInfo || emptyAncestorInfo; - var parentInfo = ancestorInfo.parentTag; - var parentTag = parentInfo && parentInfo.tag; - - var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo; - var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo); - var problematic = invalidParent || invalidAncestor; - - if (problematic) { - var ancestorTag = problematic.tag; - var ancestorInstance = problematic.instance; - - var childOwner = childInstance && childInstance._currentElement._owner; - var ancestorOwner = ancestorInstance && ancestorInstance._currentElement._owner; - - var childOwners = findOwnerStack(childOwner); - var ancestorOwners = findOwnerStack(ancestorOwner); - - var minStackLen = Math.min(childOwners.length, ancestorOwners.length); - var i; - - var deepestCommon = -1; - for (i = 0; i < minStackLen; i++) { - if (childOwners[i] === ancestorOwners[i]) { - deepestCommon = i; - } else { - break; - } - } - - var UNKNOWN = '(unknown)'; - var childOwnerNames = childOwners.slice(deepestCommon + 1).map(function (inst) { - return inst.getName() || UNKNOWN; - }); - var ancestorOwnerNames = ancestorOwners.slice(deepestCommon + 1).map(function (inst) { - return inst.getName() || UNKNOWN; - }); - var ownerInfo = [].concat( - // If the parent and child instances have a common owner ancestor, start - // with that -- otherwise we just start with the parent's owners. - deepestCommon !== -1 ? childOwners[deepestCommon].getName() || UNKNOWN : [], ancestorOwnerNames, ancestorTag, - // If we're warning about an invalid (non-parent) ancestry, add '...' - invalidAncestor ? ['...'] : [], childOwnerNames, childTag).join(' > '); - - var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag + '|' + ownerInfo; - if (didWarn[warnKey]) { - return; - } - didWarn[warnKey] = true; - - if (invalidParent) { - var info = ''; - if (ancestorTag === 'table' && childTag === 'tr') { - info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.'; - } - "development" !== 'production' ? warning(false, 'validateDOMNesting(...): <%s> cannot appear as a child of <%s>. ' + 'See %s.%s', childTag, ancestorTag, ownerInfo, info) : undefined; - } else { - "development" !== 'production' ? warning(false, 'validateDOMNesting(...): <%s> cannot appear as a descendant of ' + '<%s>. See %s.', childTag, ancestorTag, ownerInfo) : undefined; - } - } - }; - - validateDOMNesting.ancestorInfoContextKey = '__validateDOMNesting_ancestorInfo$' + Math.random().toString(36).slice(2); - - validateDOMNesting.updatedAncestorInfo = updatedAncestorInfo; - - // For testing - validateDOMNesting.isTagValidInContext = function (tag, ancestorInfo) { - ancestorInfo = ancestorInfo || emptyAncestorInfo; - var parentInfo = ancestorInfo.parentTag; - var parentTag = parentInfo && parentInfo.tag; - return isTagValidWithParent(tag, parentTag) && !findInvalidAncestorForTag(tag, ancestorInfo); - }; -} - -module.exports = validateDOMNesting; -},{"135":135,"154":154,"23":23}],128:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * @providesModule EventListener - * @typechecks - */ - -'use strict'; - -var emptyFunction = _dereq_(135); - -/** - * Upstream version of event listener. Does not take into account specific - * nature of platform. - */ -var EventListener = { - /** - * Listen to DOM events during the bubble phase. - * - * @param {DOMEventTarget} target DOM element to register listener on. - * @param {string} eventType Event type, e.g. 'click' or 'mouseover'. - * @param {function} callback Callback function. - * @return {object} Object with a `remove` method. - */ - listen: function (target, eventType, callback) { - if (target.addEventListener) { - target.addEventListener(eventType, callback, false); - return { - remove: function () { - target.removeEventListener(eventType, callback, false); - } - }; - } else if (target.attachEvent) { - target.attachEvent('on' + eventType, callback); - return { - remove: function () { - target.detachEvent('on' + eventType, callback); - } - }; - } - }, - - /** - * Listen to DOM events during the capture phase. - * - * @param {DOMEventTarget} target DOM element to register listener on. - * @param {string} eventType Event type, e.g. 'click' or 'mouseover'. - * @param {function} callback Callback function. - * @return {object} Object with a `remove` method. - */ - capture: function (target, eventType, callback) { - if (target.addEventListener) { - target.addEventListener(eventType, callback, true); - return { - remove: function () { - target.removeEventListener(eventType, callback, true); - } - }; - } else { - if ("development" !== 'production') { - console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.'); - } - return { - remove: emptyFunction - }; - } - }, - - registerDefault: function () {} -}; - -module.exports = EventListener; -},{"135":135}],129:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ExecutionEnvironment - */ - -'use strict'; - -var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); - -/** - * Simple, lightweight module assisting with the detection and context of - * Worker. Helps avoid circular dependencies and allows code to reason about - * whether or not they are in a Worker, even if they never include the main - * `ReactWorker` dependency. - */ -var ExecutionEnvironment = { - - canUseDOM: canUseDOM, - - canUseWorkers: typeof Worker !== 'undefined', - - canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent), - - canUseViewport: canUseDOM && !!window.screen, - - isInWorker: !canUseDOM // For now, this is true - might change in the future. - -}; - -module.exports = ExecutionEnvironment; -},{}],130:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule camelize - * @typechecks - */ - -"use strict"; - -var _hyphenPattern = /-(.)/g; - -/** - * Camelcases a hyphenated string, for example: - * - * > camelize('background-color') - * < "backgroundColor" - * - * @param {string} string - * @return {string} - */ -function camelize(string) { - return string.replace(_hyphenPattern, function (_, character) { - return character.toUpperCase(); - }); -} - -module.exports = camelize; -},{}],131:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule camelizeStyleName - * @typechecks - */ - -'use strict'; - -var camelize = _dereq_(130); - -var msPattern = /^-ms-/; - -/** - * Camelcases a hyphenated CSS property name, for example: - * - * > camelizeStyleName('background-color') - * < "backgroundColor" - * > camelizeStyleName('-moz-transition') - * < "MozTransition" - * > camelizeStyleName('-ms-transition') - * < "msTransition" - * - * As Andi Smith suggests - * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix - * is converted to lowercase `ms`. - * - * @param {string} string - * @return {string} - */ -function camelizeStyleName(string) { - return camelize(string.replace(msPattern, 'ms-')); -} - -module.exports = camelizeStyleName; -},{"130":130}],132:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule containsNode - * @typechecks - */ - -'use strict'; - -var isTextNode = _dereq_(145); - -/*eslint-disable no-bitwise */ - -/** - * Checks if a given DOM node contains or is another DOM node. - * - * @param {?DOMNode} outerNode Outer DOM node. - * @param {?DOMNode} innerNode Inner DOM node. - * @return {boolean} True if `outerNode` contains or is `innerNode`. - */ -function containsNode(_x, _x2) { - var _again = true; - - _function: while (_again) { - var outerNode = _x, - innerNode = _x2; - _again = false; - - if (!outerNode || !innerNode) { - return false; - } else if (outerNode === innerNode) { - return true; - } else if (isTextNode(outerNode)) { - return false; - } else if (isTextNode(innerNode)) { - _x = outerNode; - _x2 = innerNode.parentNode; - _again = true; - continue _function; - } else if (outerNode.contains) { - return outerNode.contains(innerNode); - } else if (outerNode.compareDocumentPosition) { - return !!(outerNode.compareDocumentPosition(innerNode) & 16); - } else { - return false; - } - } -} - -module.exports = containsNode; -},{"145":145}],133:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule createArrayFromMixed - * @typechecks - */ - -'use strict'; - -var toArray = _dereq_(153); - -/** - * Perform a heuristic test to determine if an object is "array-like". - * - * A monk asked Joshu, a Zen master, "Has a dog Buddha nature?" - * Joshu replied: "Mu." - * - * This function determines if its argument has "array nature": it returns - * true if the argument is an actual array, an `arguments' object, or an - * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()). - * - * It will return false for other array-like objects like Filelist. - * - * @param {*} obj - * @return {boolean} - */ -function hasArrayNature(obj) { - return( - // not null/false - !!obj && ( - // arrays are objects, NodeLists are functions in Safari - typeof obj == 'object' || typeof obj == 'function') && - // quacks like an array - 'length' in obj && - // not window - !('setInterval' in obj) && - // no DOM node should be considered an array-like - // a 'select' element has 'length' and 'item' properties on IE8 - typeof obj.nodeType != 'number' && ( - // a real array - Array.isArray(obj) || - // arguments - 'callee' in obj || - // HTMLCollection/NodeList - 'item' in obj) - ); -} - -/** - * Ensure that the argument is an array by wrapping it in an array if it is not. - * Creates a copy of the argument if it is already an array. - * - * This is mostly useful idiomatically: - * - * var createArrayFromMixed = require('createArrayFromMixed'); - * - * function takesOneOrMoreThings(things) { - * things = createArrayFromMixed(things); - * ... - * } - * - * This allows you to treat `things' as an array, but accept scalars in the API. - * - * If you need to convert an array-like object, like `arguments`, into an array - * use toArray instead. - * - * @param {*} obj - * @return {array} - */ -function createArrayFromMixed(obj) { - if (!hasArrayNature(obj)) { - return [obj]; - } else if (Array.isArray(obj)) { - return obj.slice(); - } else { - return toArray(obj); - } -} - -module.exports = createArrayFromMixed; -},{"153":153}],134:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule createNodesFromMarkup - * @typechecks - */ - -/*eslint-disable fb-www/unsafe-html*/ - -'use strict'; - -var ExecutionEnvironment = _dereq_(129); - -var createArrayFromMixed = _dereq_(133); -var getMarkupWrap = _dereq_(139); -var invariant = _dereq_(143); - -/** - * Dummy container used to render all markup. - */ -var dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null; - -/** - * Pattern used by `getNodeName`. - */ -var nodeNamePattern = /^\s*<(\w+)/; - -/** - * Extracts the `nodeName` of the first element in a string of markup. - * - * @param {string} markup String of markup. - * @return {?string} Node name of the supplied markup. - */ -function getNodeName(markup) { - var nodeNameMatch = markup.match(nodeNamePattern); - return nodeNameMatch && nodeNameMatch[1].toLowerCase(); -} - -/** - * Creates an array containing the nodes rendered from the supplied markup. The - * optionally supplied `handleScript` function will be invoked once for each - * <script> element that is rendered. If no `handleScript` function is supplied, - * an exception is thrown if any <script> elements are rendered. - * - * @param {string} markup A string of valid HTML markup. - * @param {?function} handleScript Invoked once for each rendered <script>. - * @return {array<DOMElement|DOMTextNode>} An array of rendered nodes. - */ -function createNodesFromMarkup(markup, handleScript) { - var node = dummyNode; - !!!dummyNode ? "development" !== 'production' ? invariant(false, 'createNodesFromMarkup dummy not initialized') : invariant(false) : undefined; - var nodeName = getNodeName(markup); - - var wrap = nodeName && getMarkupWrap(nodeName); - if (wrap) { - node.innerHTML = wrap[1] + markup + wrap[2]; - - var wrapDepth = wrap[0]; - while (wrapDepth--) { - node = node.lastChild; - } - } else { - node.innerHTML = markup; - } - - var scripts = node.getElementsByTagName('script'); - if (scripts.length) { - !handleScript ? "development" !== 'production' ? invariant(false, 'createNodesFromMarkup(...): Unexpected <script> element rendered.') : invariant(false) : undefined; - createArrayFromMixed(scripts).forEach(handleScript); - } - - var nodes = createArrayFromMixed(node.childNodes); - while (node.lastChild) { - node.removeChild(node.lastChild); - } - return nodes; -} - -module.exports = createNodesFromMarkup; -},{"129":129,"133":133,"139":139,"143":143}],135:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule emptyFunction - */ - -"use strict"; - -function makeEmptyFunction(arg) { - return function () { - return arg; - }; -} - -/** - * This function accepts and discards inputs; it has no side effects. This is - * primarily useful idiomatically for overridable function endpoints which - * always need to be callable, since JS lacks a null-call idiom ala Cocoa. - */ -function emptyFunction() {} - -emptyFunction.thatReturns = makeEmptyFunction; -emptyFunction.thatReturnsFalse = makeEmptyFunction(false); -emptyFunction.thatReturnsTrue = makeEmptyFunction(true); -emptyFunction.thatReturnsNull = makeEmptyFunction(null); -emptyFunction.thatReturnsThis = function () { - return this; -}; -emptyFunction.thatReturnsArgument = function (arg) { - return arg; -}; - -module.exports = emptyFunction; -},{}],136:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule emptyObject - */ - -'use strict'; - -var emptyObject = {}; - -if ("development" !== 'production') { - Object.freeze(emptyObject); -} - -module.exports = emptyObject; -},{}],137:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule focusNode - */ - -'use strict'; - -/** - * @param {DOMElement} node input/textarea to focus - */ -function focusNode(node) { - // IE8 can throw "Can't move focus to the control because it is invisible, - // not enabled, or of a type that does not accept the focus." for all kinds of - // reasons that are too expensive and fragile to test. - try { - node.focus(); - } catch (e) {} -} - -module.exports = focusNode; -},{}],138:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule getActiveElement - * @typechecks - */ - -/** - * Same as document.activeElement but wraps in a try-catch block. In IE it is - * not safe to call document.activeElement if there is nothing focused. - * - * The activeElement will be null only if the document or document body is not yet defined. - */ -'use strict'; - -function getActiveElement() /*?DOMElement*/{ - if (typeof document === 'undefined') { - return null; - } - - try { - return document.activeElement || document.body; - } catch (e) { - return document.body; - } -} - -module.exports = getActiveElement; -},{}],139:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule getMarkupWrap - */ - -/*eslint-disable fb-www/unsafe-html */ - -'use strict'; - -var ExecutionEnvironment = _dereq_(129); - -var invariant = _dereq_(143); - -/** - * Dummy container used to detect which wraps are necessary. - */ -var dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null; - -/** - * Some browsers cannot use `innerHTML` to render certain elements standalone, - * so we wrap them, render the wrapped nodes, then extract the desired node. - * - * In IE8, certain elements cannot render alone, so wrap all elements ('*'). - */ - -var shouldWrap = {}; - -var selectWrap = [1, '<select multiple="true">', '</select>']; -var tableWrap = [1, '<table>', '</table>']; -var trWrap = [3, '<table><tbody><tr>', '</tr></tbody></table>']; - -var svgWrap = [1, '<svg xmlns="http://www.w3.org/2000/svg">', '</svg>']; - -var markupWrap = { - '*': [1, '?<div>', '</div>'], - - 'area': [1, '<map>', '</map>'], - 'col': [2, '<table><tbody></tbody><colgroup>', '</colgroup></table>'], - 'legend': [1, '<fieldset>', '</fieldset>'], - 'param': [1, '<object>', '</object>'], - 'tr': [2, '<table><tbody>', '</tbody></table>'], - - 'optgroup': selectWrap, - 'option': selectWrap, - - 'caption': tableWrap, - 'colgroup': tableWrap, - 'tbody': tableWrap, - 'tfoot': tableWrap, - 'thead': tableWrap, - - 'td': trWrap, - 'th': trWrap -}; - -// Initialize the SVG elements since we know they'll always need to be wrapped -// consistently. If they are created inside a <div> they will be initialized in -// the wrong namespace (and will not display). -var svgElements = ['circle', 'clipPath', 'defs', 'ellipse', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'text', 'tspan']; -svgElements.forEach(function (nodeName) { - markupWrap[nodeName] = svgWrap; - shouldWrap[nodeName] = true; -}); - -/** - * Gets the markup wrap configuration for the supplied `nodeName`. - * - * NOTE: This lazily detects which wraps are necessary for the current browser. - * - * @param {string} nodeName Lowercase `nodeName`. - * @return {?array} Markup wrap configuration, if applicable. - */ -function getMarkupWrap(nodeName) { - !!!dummyNode ? "development" !== 'production' ? invariant(false, 'Markup wrapping node not initialized') : invariant(false) : undefined; - if (!markupWrap.hasOwnProperty(nodeName)) { - nodeName = '*'; - } - if (!shouldWrap.hasOwnProperty(nodeName)) { - if (nodeName === '*') { - dummyNode.innerHTML = '<link />'; - } else { - dummyNode.innerHTML = '<' + nodeName + '></' + nodeName + '>'; - } - shouldWrap[nodeName] = !dummyNode.firstChild; - } - return shouldWrap[nodeName] ? markupWrap[nodeName] : null; -} - -module.exports = getMarkupWrap; -},{"129":129,"143":143}],140:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule getUnboundedScrollPosition - * @typechecks - */ - -'use strict'; - -/** - * Gets the scroll position of the supplied element or window. - * - * The return values are unbounded, unlike `getScrollPosition`. This means they - * may be negative or exceed the element boundaries (which is possible using - * inertial scrolling). - * - * @param {DOMWindow|DOMElement} scrollable - * @return {object} Map with `x` and `y` keys. - */ -function getUnboundedScrollPosition(scrollable) { - if (scrollable === window) { - return { - x: window.pageXOffset || document.documentElement.scrollLeft, - y: window.pageYOffset || document.documentElement.scrollTop - }; - } - return { - x: scrollable.scrollLeft, - y: scrollable.scrollTop - }; -} - -module.exports = getUnboundedScrollPosition; -},{}],141:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule hyphenate - * @typechecks - */ - -'use strict'; - -var _uppercasePattern = /([A-Z])/g; - -/** - * Hyphenates a camelcased string, for example: - * - * > hyphenate('backgroundColor') - * < "background-color" - * - * For CSS style names, use `hyphenateStyleName` instead which works properly - * with all vendor prefixes, including `ms`. - * - * @param {string} string - * @return {string} - */ -function hyphenate(string) { - return string.replace(_uppercasePattern, '-$1').toLowerCase(); -} - -module.exports = hyphenate; -},{}],142:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule hyphenateStyleName - * @typechecks - */ - -'use strict'; - -var hyphenate = _dereq_(141); - -var msPattern = /^ms-/; - -/** - * Hyphenates a camelcased CSS property name, for example: - * - * > hyphenateStyleName('backgroundColor') - * < "background-color" - * > hyphenateStyleName('MozTransition') - * < "-moz-transition" - * > hyphenateStyleName('msTransition') - * < "-ms-transition" - * - * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix - * is converted to `-ms-`. - * - * @param {string} string - * @return {string} - */ -function hyphenateStyleName(string) { - return hyphenate(string).replace(msPattern, '-ms-'); -} - -module.exports = hyphenateStyleName; -},{"141":141}],143:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule invariant - */ - -'use strict'; - -/** - * Use invariant() to assert state which your program assumes to be true. - * - * Provide sprintf-style format (only %s is supported) and arguments - * to provide information about what broke and what you were - * expecting. - * - * The invariant message will be stripped in production, but the invariant - * will remain to ensure logic does not differ in production. - */ - -var invariant = function (condition, format, a, b, c, d, e, f) { - if ("development" !== 'production') { - if (format === undefined) { - throw new Error('invariant requires an error message argument'); - } - } - - if (!condition) { - var error; - if (format === undefined) { - error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); - } else { - var args = [a, b, c, d, e, f]; - var argIndex = 0; - error = new Error('Invariant Violation: ' + format.replace(/%s/g, function () { - return args[argIndex++]; - })); - } - - error.framesToPop = 1; // we don't care about invariant's own frame - throw error; - } -}; - -module.exports = invariant; -},{}],144:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule isNode - * @typechecks - */ - -/** - * @param {*} object The object to check. - * @return {boolean} Whether or not the object is a DOM node. - */ -'use strict'; - -function isNode(object) { - return !!(object && (typeof Node === 'function' ? object instanceof Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string')); -} - -module.exports = isNode; -},{}],145:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule isTextNode - * @typechecks - */ - -'use strict'; - -var isNode = _dereq_(144); - -/** - * @param {*} object The object to check. - * @return {boolean} Whether or not the object is a DOM text node. - */ -function isTextNode(object) { - return isNode(object) && object.nodeType == 3; -} - -module.exports = isTextNode; -},{"144":144}],146:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule keyMirror - * @typechecks static-only - */ - -'use strict'; - -var invariant = _dereq_(143); - -/** - * Constructs an enumeration with keys equal to their value. - * - * For example: - * - * var COLORS = keyMirror({blue: null, red: null}); - * var myColor = COLORS.blue; - * var isColorValid = !!COLORS[myColor]; - * - * The last line could not be performed if the values of the generated enum were - * not equal to their keys. - * - * Input: {key1: val1, key2: val2} - * Output: {key1: key1, key2: key2} - * - * @param {object} obj - * @return {object} - */ -var keyMirror = function (obj) { - var ret = {}; - var key; - !(obj instanceof Object && !Array.isArray(obj)) ? "development" !== 'production' ? invariant(false, 'keyMirror(...): Argument must be an object.') : invariant(false) : undefined; - for (key in obj) { - if (!obj.hasOwnProperty(key)) { - continue; - } - ret[key] = key; - } - return ret; -}; - -module.exports = keyMirror; -},{"143":143}],147:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule keyOf - */ - -/** - * Allows extraction of a minified key. Let's the build system minify keys - * without losing the ability to dynamically use key strings as values - * themselves. Pass in an object with a single key/val pair and it will return - * you the string key of that single record. Suppose you want to grab the - * value for a key 'className' inside of an object. Key/val minification may - * have aliased that key to be 'xa12'. keyOf({className: null}) will return - * 'xa12' in that case. Resolve keys you want to use once at startup time, then - * reuse those resolutions. - */ -"use strict"; - -var keyOf = function (oneKeyObj) { - var key; - for (key in oneKeyObj) { - if (!oneKeyObj.hasOwnProperty(key)) { - continue; - } - return key; - } - return null; -}; - -module.exports = keyOf; -},{}],148:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule mapObject - */ - -'use strict'; - -var hasOwnProperty = Object.prototype.hasOwnProperty; - -/** - * Executes the provided `callback` once for each enumerable own property in the - * object and constructs a new object from the results. The `callback` is - * invoked with three arguments: - * - * - the property value - * - the property name - * - the object being traversed - * - * Properties that are added after the call to `mapObject` will not be visited - * by `callback`. If the values of existing properties are changed, the value - * passed to `callback` will be the value at the time `mapObject` visits them. - * Properties that are deleted before being visited are not visited. - * - * @grep function objectMap() - * @grep function objMap() - * - * @param {?object} object - * @param {function} callback - * @param {*} context - * @return {?object} - */ -function mapObject(object, callback, context) { - if (!object) { - return null; - } - var result = {}; - for (var name in object) { - if (hasOwnProperty.call(object, name)) { - result[name] = callback.call(context, object[name], name, object); - } - } - return result; -} - -module.exports = mapObject; -},{}],149:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule memoizeStringOnly - * @typechecks static-only - */ - -'use strict'; - -/** - * Memoizes the return value of a function that accepts one string argument. - * - * @param {function} callback - * @return {function} - */ -function memoizeStringOnly(callback) { - var cache = {}; - return function (string) { - if (!cache.hasOwnProperty(string)) { - cache[string] = callback.call(this, string); - } - return cache[string]; - }; -} - -module.exports = memoizeStringOnly; -},{}],150:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule performance - * @typechecks - */ - -'use strict'; - -var ExecutionEnvironment = _dereq_(129); - -var performance; - -if (ExecutionEnvironment.canUseDOM) { - performance = window.performance || window.msPerformance || window.webkitPerformance; -} - -module.exports = performance || {}; -},{"129":129}],151:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule performanceNow - * @typechecks - */ - -'use strict'; - -var performance = _dereq_(150); -var curPerformance = performance; - -/** - * Detect if we can use `window.performance.now()` and gracefully fallback to - * `Date.now()` if it doesn't exist. We need to support Firefox < 15 for now - * because of Facebook's testing infrastructure. - */ -if (!curPerformance || !curPerformance.now) { - curPerformance = Date; -} - -var performanceNow = curPerformance.now.bind(curPerformance); - -module.exports = performanceNow; -},{"150":150}],152:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule shallowEqual - * @typechecks - * - */ - -'use strict'; - -var hasOwnProperty = Object.prototype.hasOwnProperty; - -/** - * Performs equality by iterating through keys on an object and returning false - * when any key has values which are not strictly equal between the arguments. - * Returns true when the values of all keys are strictly equal. - */ -function shallowEqual(objA, objB) { - if (objA === objB) { - return true; - } - - if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) { - return false; - } - - var keysA = Object.keys(objA); - var keysB = Object.keys(objB); - - if (keysA.length !== keysB.length) { - return false; - } - - // Test for A's keys different from B. - var bHasOwnProperty = hasOwnProperty.bind(objB); - for (var i = 0; i < keysA.length; i++) { - if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) { - return false; - } - } - - return true; -} - -module.exports = shallowEqual; -},{}],153:[function(_dereq_,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule toArray - * @typechecks - */ - -'use strict'; - -var invariant = _dereq_(143); - -/** - * Convert array-like objects to arrays. - * - * This API assumes the caller knows the contents of the data type. For less - * well defined inputs use createArrayFromMixed. - * - * @param {object|function|filelist} obj - * @return {array} - */ -function toArray(obj) { - var length = obj.length; - - // Some browse builtin objects can report typeof 'function' (e.g. NodeList in - // old versions of Safari). - !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? "development" !== 'production' ? invariant(false, 'toArray: Array-like object expected') : invariant(false) : undefined; - - !(typeof length === 'number') ? "development" !== 'production' ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : undefined; - - !(length === 0 || length - 1 in obj) ? "development" !== 'production' ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : undefined; - - // Old IE doesn't give collections access to hasOwnProperty. Assume inputs - // without method will throw during the slice call and skip straight to the - // fallback. - if (obj.hasOwnProperty) { - try { - return Array.prototype.slice.call(obj); - } catch (e) { - // IE < 9 does not support Array#slice on collections objects - } - } - - // Fall back to copying key by key. This assumes all keys have a value, - // so will not preserve sparsely populated inputs. - var ret = Array(length); - for (var ii = 0; ii < length; ii++) { - ret[ii] = obj[ii]; - } - return ret; -} - -module.exports = toArray; -},{"143":143}],154:[function(_dereq_,module,exports){ -/** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule warning - */ - -'use strict'; - -var emptyFunction = _dereq_(135); - -/** - * Similar to invariant but only logs a warning if the condition is not met. - * This can be used to log issues in development environments in critical - * paths. Removing the logging code for production environments will keep the - * same logic and follow the same code paths. - */ - -var warning = emptyFunction; - -if ("development" !== 'production') { - warning = function (condition, format) { - for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { - args[_key - 2] = arguments[_key]; - } - - if (format === undefined) { - throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); - } - - if (format.indexOf('Failed Composite propType: ') === 0) { - return; // Ignore CompositeComponent proptype check. - } - - if (!condition) { - var argIndex = 0; - var message = 'Warning: ' + format.replace(/%s/g, function () { - return args[argIndex++]; - }); - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - } - }; -} - -module.exports = warning; -},{"135":135}]},{},[1])(1) -});
\ No newline at end of file diff --git a/web/static/js/react-0.14.0.min.js b/web/static/js/react-0.14.0.min.js deleted file mode 100644 index 8e4bbee4a..000000000 --- a/web/static/js/react-0.14.0.min.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * React v0.14.0 - * - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.React=e()}}(function(){return function e(t,n,r){function o(i,u){if(!n[i]){if(!t[i]){var s="function"==typeof require&&require;if(!u&&s)return s(i,!0);if(a)return a(i,!0);var l=new Error("Cannot find module '"+i+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[i]={exports:{}};t[i][0].call(c.exports,function(e){var n=t[i][1][e];return o(n?n:e)},c,c.exports,e,t,n,r)}return n[i].exports}for(var a="function"==typeof require&&require,i=0;i<r.length;i++)o(r[i]);return o}({1:[function(e,t,n){"use strict";var r=e(35),o=e(45),a=e(61),i=e(23),u=e(103),s={};i(s,a),i(s,{findDOMNode:u("findDOMNode","ReactDOM","react-dom",r,r.findDOMNode),render:u("render","ReactDOM","react-dom",r,r.render),unmountComponentAtNode:u("unmountComponentAtNode","ReactDOM","react-dom",r,r.unmountComponentAtNode),renderToString:u("renderToString","ReactDOMServer","react-dom/server",o,o.renderToString),renderToStaticMarkup:u("renderToStaticMarkup","ReactDOMServer","react-dom/server",o,o.renderToStaticMarkup)}),s.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=r,t.exports=s},{103:103,23:23,35:35,45:45,61:61}],2:[function(e,t,n){"use strict";var r=e(63),o=e(105),a=e(135),i={componentDidMount:function(){this.props.autoFocus&&a(o(this))}},u={Mixin:i,focusDOMComponent:function(){a(r.getNode(this._rootNodeID))}};t.exports=u},{105:105,135:135,63:63}],3:[function(e,t,n){"use strict";function r(){var e=window.opera;return"object"==typeof e&&"function"==typeof e.version&&parseInt(e.version(),10)<=12}function o(e){return(e.ctrlKey||e.altKey||e.metaKey)&&!(e.ctrlKey&&e.altKey)}function a(e){switch(e){case w.topCompositionStart:return R.compositionStart;case w.topCompositionEnd:return R.compositionEnd;case w.topCompositionUpdate:return R.compositionUpdate}}function i(e,t){return e===w.topKeyDown&&t.keyCode===_}function u(e,t){switch(e){case w.topKeyUp:return-1!==b.indexOf(t.keyCode);case w.topKeyDown:return t.keyCode!==_;case w.topKeyPress:case w.topMouseDown:case w.topBlur:return!0;default:return!1}}function s(e){var t=e.detail;return"object"==typeof t&&"data"in t?t.data:null}function l(e,t,n,r,o){var l,c;if(E?l=a(e):S?u(e,r)&&(l=R.compositionEnd):i(e,r)&&(l=R.compositionStart),!l)return null;M&&(S||l!==R.compositionStart?l===R.compositionEnd&&S&&(c=S.getData()):S=m.getPooled(t));var p=g.getPooled(l,n,r,o);if(c)p.data=c;else{var d=s(r);null!==d&&(p.data=d)}return h.accumulateTwoPhaseDispatches(p),p}function c(e,t){switch(e){case w.topCompositionEnd:return s(t);case w.topKeyPress:var n=t.which;return n!==N?null:(I=!0,P);case w.topTextInput:var r=t.data;return r===P&&I?null:r;default:return null}}function p(e,t){if(S){if(e===w.topCompositionEnd||u(e,t)){var n=S.getData();return m.release(S),S=null,n}return null}switch(e){case w.topPaste:return null;case w.topKeyPress:return t.which&&!o(t)?String.fromCharCode(t.which):null;case w.topCompositionEnd:return M?null:t.data;default:return null}}function d(e,t,n,r,o){var a;if(a=D?c(e,r):p(e,r),!a)return null;var i=y.getPooled(R.beforeInput,n,r,o);return i.data=a,h.accumulateTwoPhaseDispatches(i),i}var f=e(15),h=e(19),v=e(127),m=e(20),g=e(88),y=e(92),C=e(145),b=[9,13,27,32],_=229,E=v.canUseDOM&&"CompositionEvent"in window,x=null;v.canUseDOM&&"documentMode"in document&&(x=document.documentMode);var D=v.canUseDOM&&"TextEvent"in window&&!x&&!r(),M=v.canUseDOM&&(!E||x&&x>8&&11>=x),N=32,P=String.fromCharCode(N),w=f.topLevelTypes,R={beforeInput:{phasedRegistrationNames:{bubbled:C({onBeforeInput:null}),captured:C({onBeforeInputCapture:null})},dependencies:[w.topCompositionEnd,w.topKeyPress,w.topTextInput,w.topPaste]},compositionEnd:{phasedRegistrationNames:{bubbled:C({onCompositionEnd:null}),captured:C({onCompositionEndCapture:null})},dependencies:[w.topBlur,w.topCompositionEnd,w.topKeyDown,w.topKeyPress,w.topKeyUp,w.topMouseDown]},compositionStart:{phasedRegistrationNames:{bubbled:C({onCompositionStart:null}),captured:C({onCompositionStartCapture:null})},dependencies:[w.topBlur,w.topCompositionStart,w.topKeyDown,w.topKeyPress,w.topKeyUp,w.topMouseDown]},compositionUpdate:{phasedRegistrationNames:{bubbled:C({onCompositionUpdate:null}),captured:C({onCompositionUpdateCapture:null})},dependencies:[w.topBlur,w.topCompositionUpdate,w.topKeyDown,w.topKeyPress,w.topKeyUp,w.topMouseDown]}},I=!1,S=null,T={eventTypes:R,extractEvents:function(e,t,n,r,o){return[l(e,t,n,r,o),d(e,t,n,r,o)]}};t.exports=T},{127:127,145:145,15:15,19:19,20:20,88:88,92:92}],4:[function(e,t,n){"use strict";function r(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}var o={animationIterationCount:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,stopOpacity:!0,strokeDashoffset:!0,strokeOpacity:!0,strokeWidth:!0},a=["Webkit","ms","Moz","O"];Object.keys(o).forEach(function(e){a.forEach(function(t){o[r(t,e)]=o[e]})});var i={background:{backgroundAttachment:!0,backgroundColor:!0,backgroundImage:!0,backgroundPositionX:!0,backgroundPositionY:!0,backgroundRepeat:!0},backgroundPosition:{backgroundPositionX:!0,backgroundPositionY:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0},outline:{outlineWidth:!0,outlineStyle:!0,outlineColor:!0}},u={isUnitlessNumber:o,shorthandPropertyExpansions:i};t.exports=u},{}],5:[function(e,t,n){"use strict";var r=e(4),o=e(127),a=e(69),i=(e(129),e(102)),u=e(140),s=e(147),l=(e(150),s(function(e){return u(e)})),c=!1,p="cssFloat";if(o.canUseDOM){var d=document.createElement("div").style;try{d.font=""}catch(f){c=!0}void 0===document.documentElement.style.cssFloat&&(p="styleFloat")}var h={createMarkupForStyles:function(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];null!=r&&(t+=l(n)+":",t+=i(n,r)+";")}return t||null},setValueForStyles:function(e,t){var n=e.style;for(var o in t)if(t.hasOwnProperty(o)){var a=i(o,t[o]);if("float"===o&&(o=p),a)n[o]=a;else{var u=c&&r.shorthandPropertyExpansions[o];if(u)for(var s in u)n[s]="";else n[o]=""}}}};a.measureMethods(h,"CSSPropertyOperations",{setValueForStyles:"setValueForStyles"}),t.exports=h},{102:102,127:127,129:129,140:140,147:147,150:150,4:4,69:69}],6:[function(e,t,n){"use strict";function r(){this._callbacks=null,this._contexts=null}var o=e(24),a=e(23),i=e(141);a(r.prototype,{enqueue:function(e,t){this._callbacks=this._callbacks||[],this._contexts=this._contexts||[],this._callbacks.push(e),this._contexts.push(t)},notifyAll:function(){var e=this._callbacks,t=this._contexts;if(e){e.length!==t.length?i(!1):void 0,this._callbacks=null,this._contexts=null;for(var n=0;n<e.length;n++)e[n].call(t[n]);e.length=0,t.length=0}},reset:function(){this._callbacks=null,this._contexts=null},destructor:function(){this.reset()}}),o.addPoolingTo(r),t.exports=r},{141:141,23:23,24:24}],7:[function(e,t,n){"use strict";function r(e){var t=e.nodeName&&e.nodeName.toLowerCase();return"select"===t||"input"===t&&"file"===e.type}function o(e){var t=x.getPooled(R.change,S,e,D(e));b.accumulateTwoPhaseDispatches(t),E.batchedUpdates(a,t)}function a(e){C.enqueueEvents(e),C.processEventQueue(!1)}function i(e,t){I=e,S=t,I.attachEvent("onchange",o)}function u(){I&&(I.detachEvent("onchange",o),I=null,S=null)}function s(e,t,n){return e===w.topChange?n:void 0}function l(e,t,n){e===w.topFocus?(u(),i(t,n)):e===w.topBlur&&u()}function c(e,t){I=e,S=t,T=e.value,k=Object.getOwnPropertyDescriptor(e.constructor.prototype,"value"),Object.defineProperty(I,"value",L),I.attachEvent("onpropertychange",d)}function p(){I&&(delete I.value,I.detachEvent("onpropertychange",d),I=null,S=null,T=null,k=null)}function d(e){if("value"===e.propertyName){var t=e.srcElement.value;t!==T&&(T=t,o(e))}}function f(e,t,n){return e===w.topInput?n:void 0}function h(e,t,n){e===w.topFocus?(p(),c(t,n)):e===w.topBlur&&p()}function v(e,t,n){return e!==w.topSelectionChange&&e!==w.topKeyUp&&e!==w.topKeyDown||!I||I.value===T?void 0:(T=I.value,S)}function m(e){return e.nodeName&&"input"===e.nodeName.toLowerCase()&&("checkbox"===e.type||"radio"===e.type)}function g(e,t,n){return e===w.topClick?n:void 0}var y=e(15),C=e(16),b=e(19),_=e(127),E=e(81),x=e(90),D=e(111),M=e(116),N=e(117),P=e(145),w=y.topLevelTypes,R={change:{phasedRegistrationNames:{bubbled:P({onChange:null}),captured:P({onChangeCapture:null})},dependencies:[w.topBlur,w.topChange,w.topClick,w.topFocus,w.topInput,w.topKeyDown,w.topKeyUp,w.topSelectionChange]}},I=null,S=null,T=null,k=null,O=!1;_.canUseDOM&&(O=M("change")&&(!("documentMode"in document)||document.documentMode>8));var A=!1;_.canUseDOM&&(A=M("input")&&(!("documentMode"in document)||document.documentMode>9));var L={get:function(){return k.get.call(this)},set:function(e){T=""+e,k.set.call(this,e)}},U={eventTypes:R,extractEvents:function(e,t,n,o,a){var i,u;if(r(t)?O?i=s:u=l:N(t)?A?i=f:(i=v,u=h):m(t)&&(i=g),i){var c=i(e,t,n);if(c){var p=x.getPooled(R.change,c,o,a);return p.type="change",b.accumulateTwoPhaseDispatches(p),p}}u&&u(e,t,n)}};t.exports=U},{111:111,116:116,117:117,127:127,145:145,15:15,16:16,19:19,81:81,90:90}],8:[function(e,t,n){"use strict";var r=0,o={createReactRootIndex:function(){return r++}};t.exports=o},{}],9:[function(e,t,n){"use strict";function r(e,t,n){var r=n>=e.childNodes.length?null:e.childNodes.item(n);e.insertBefore(t,r)}var o=e(12),a=e(65),i=e(69),u=e(121),s=e(122),l=e(141),c={dangerouslyReplaceNodeWithMarkup:o.dangerouslyReplaceNodeWithMarkup,updateTextContent:s,processUpdates:function(e,t){for(var n,i=null,c=null,p=0;p<e.length;p++)if(n=e[p],n.type===a.MOVE_EXISTING||n.type===a.REMOVE_NODE){var d=n.fromIndex,f=n.parentNode.childNodes[d],h=n.parentID;f?void 0:l(!1),i=i||{},i[h]=i[h]||[],i[h][d]=f,c=c||[],c.push(f)}var v;if(v=t.length&&"string"==typeof t[0]?o.dangerouslyRenderMarkup(t):t,c)for(var m=0;m<c.length;m++)c[m].parentNode.removeChild(c[m]);for(var g=0;g<e.length;g++)switch(n=e[g],n.type){case a.INSERT_MARKUP:r(n.parentNode,v[n.markupIndex],n.toIndex);break;case a.MOVE_EXISTING:r(n.parentNode,i[n.parentID][n.fromIndex],n.toIndex);break;case a.SET_MARKUP:u(n.parentNode,n.content);break;case a.TEXT_CONTENT:s(n.parentNode,n.content);break;case a.REMOVE_NODE:}}};i.measureMethods(c,"DOMChildrenOperations",{updateTextContent:"updateTextContent"}),t.exports=c},{12:12,121:121,122:122,141:141,65:65,69:69}],10:[function(e,t,n){"use strict";function r(e,t){return(e&t)===t}var o=e(141),a={MUST_USE_ATTRIBUTE:1,MUST_USE_PROPERTY:2,HAS_SIDE_EFFECTS:4,HAS_BOOLEAN_VALUE:8,HAS_NUMERIC_VALUE:16,HAS_POSITIVE_NUMERIC_VALUE:48,HAS_OVERLOADED_BOOLEAN_VALUE:64,injectDOMPropertyConfig:function(e){var t=a,n=e.Properties||{},i=e.DOMAttributeNamespaces||{},s=e.DOMAttributeNames||{},l=e.DOMPropertyNames||{},c=e.DOMMutationMethods||{};e.isCustomAttribute&&u._isCustomAttributeFunctions.push(e.isCustomAttribute);for(var p in n){u.properties.hasOwnProperty(p)?o(!1):void 0;var d=p.toLowerCase(),f=n[p],h={attributeName:d,attributeNamespace:null,propertyName:p,mutationMethod:null,mustUseAttribute:r(f,t.MUST_USE_ATTRIBUTE),mustUseProperty:r(f,t.MUST_USE_PROPERTY),hasSideEffects:r(f,t.HAS_SIDE_EFFECTS),hasBooleanValue:r(f,t.HAS_BOOLEAN_VALUE),hasNumericValue:r(f,t.HAS_NUMERIC_VALUE),hasPositiveNumericValue:r(f,t.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:r(f,t.HAS_OVERLOADED_BOOLEAN_VALUE)};if(h.mustUseAttribute&&h.mustUseProperty?o(!1):void 0,!h.mustUseProperty&&h.hasSideEffects?o(!1):void 0,h.hasBooleanValue+h.hasNumericValue+h.hasOverloadedBooleanValue<=1?void 0:o(!1),s.hasOwnProperty(p)){var v=s[p];h.attributeName=v}i.hasOwnProperty(p)&&(h.attributeNamespace=i[p]),l.hasOwnProperty(p)&&(h.propertyName=l[p]),c.hasOwnProperty(p)&&(h.mutationMethod=c[p]),u.properties[p]=h}}},i={},u={ID_ATTRIBUTE_NAME:"data-reactid",properties:{},getPossibleStandardName:null,_isCustomAttributeFunctions:[],isCustomAttribute:function(e){for(var t=0;t<u._isCustomAttributeFunctions.length;t++){var n=u._isCustomAttributeFunctions[t];if(n(e))return!0}return!1},getDefaultValueForProperty:function(e,t){var n,r=i[e];return r||(i[e]=r={}),t in r||(n=document.createElement(e),r[t]=n[t]),r[t]},injection:a};t.exports=u},{141:141}],11:[function(e,t,n){"use strict";function r(e){return c.hasOwnProperty(e)?!0:l.hasOwnProperty(e)?!1:s.test(e)?(c[e]=!0,!0):(l[e]=!0,!1)}function o(e,t){return null==t||e.hasBooleanValue&&!t||e.hasNumericValue&&isNaN(t)||e.hasPositiveNumericValue&&1>t||e.hasOverloadedBooleanValue&&t===!1}var a=e(10),i=e(69),u=e(119),s=(e(150),/^[a-zA-Z_][\w\.\-]*$/),l={},c={},p={createMarkupForID:function(e){return a.ID_ATTRIBUTE_NAME+"="+u(e)},setAttributeForID:function(e,t){e.setAttribute(a.ID_ATTRIBUTE_NAME,t)},createMarkupForProperty:function(e,t){var n=a.properties.hasOwnProperty(e)?a.properties[e]:null;if(n){if(o(n,t))return"";var r=n.attributeName;return n.hasBooleanValue||n.hasOverloadedBooleanValue&&t===!0?r+'=""':r+"="+u(t)}return a.isCustomAttribute(e)?null==t?"":e+"="+u(t):null},createMarkupForCustomAttribute:function(e,t){return r(e)&&null!=t?e+"="+u(t):""},setValueForProperty:function(e,t,n){var r=a.properties.hasOwnProperty(t)?a.properties[t]:null;if(r){var i=r.mutationMethod;if(i)i(e,n);else if(o(r,n))this.deleteValueForProperty(e,t);else if(r.mustUseAttribute){var u=r.attributeName,s=r.attributeNamespace;s?e.setAttributeNS(s,u,""+n):r.hasBooleanValue||r.hasOverloadedBooleanValue&&n===!0?e.setAttribute(u,""):e.setAttribute(u,""+n)}else{var l=r.propertyName;r.hasSideEffects&&""+e[l]==""+n||(e[l]=n)}}else a.isCustomAttribute(t)&&p.setValueForAttribute(e,t,n)},setValueForAttribute:function(e,t,n){r(t)&&(null==n?e.removeAttribute(t):e.setAttribute(t,""+n))},deleteValueForProperty:function(e,t){var n=a.properties.hasOwnProperty(t)?a.properties[t]:null;if(n){var r=n.mutationMethod;if(r)r(e,void 0);else if(n.mustUseAttribute)e.removeAttribute(n.attributeName);else{var o=n.propertyName,i=a.getDefaultValueForProperty(e.nodeName,o);n.hasSideEffects&&""+e[o]===i||(e[o]=i)}}else a.isCustomAttribute(t)&&e.removeAttribute(t)}};i.measureMethods(p,"DOMPropertyOperations",{setValueForProperty:"setValueForProperty",setValueForAttribute:"setValueForAttribute",deleteValueForProperty:"deleteValueForProperty"}),t.exports=p},{10:10,119:119,150:150,69:69}],12:[function(e,t,n){"use strict";function r(e){return e.substring(1,e.indexOf(" "))}var o=e(127),a=e(132),i=e(133),u=e(137),s=e(141),l=/^(<[^ \/>]+)/,c="data-danger-index",p={dangerouslyRenderMarkup:function(e){o.canUseDOM?void 0:s(!1);for(var t,n={},p=0;p<e.length;p++)e[p]?void 0:s(!1),t=r(e[p]),t=u(t)?t:"*",n[t]=n[t]||[],n[t][p]=e[p];var d=[],f=0;for(t in n)if(n.hasOwnProperty(t)){var h,v=n[t];for(h in v)if(v.hasOwnProperty(h)){var m=v[h];v[h]=m.replace(l,"$1 "+c+'="'+h+'" ')}for(var g=a(v.join(""),i),y=0;y<g.length;++y){var C=g[y];C.hasAttribute&&C.hasAttribute(c)&&(h=+C.getAttribute(c),C.removeAttribute(c),d.hasOwnProperty(h)?s(!1):void 0,d[h]=C,f+=1)}}return f!==d.length?s(!1):void 0,d.length!==e.length?s(!1):void 0,d},dangerouslyReplaceNodeWithMarkup:function(e,t){o.canUseDOM?void 0:s(!1),t?void 0:s(!1),"html"===e.tagName.toLowerCase()?s(!1):void 0;var n;n="string"==typeof t?a(t,i)[0]:t,e.parentNode.replaceChild(n,e)}};t.exports=p},{127:127,132:132,133:133,137:137,141:141}],13:[function(e,t,n){"use strict";var r=e(145),o=[r({ResponderEventPlugin:null}),r({SimpleEventPlugin:null}),r({TapEventPlugin:null}),r({EnterLeaveEventPlugin:null}),r({ChangeEventPlugin:null}),r({SelectEventPlugin:null}),r({BeforeInputEventPlugin:null})];t.exports=o},{145:145}],14:[function(e,t,n){"use strict";var r=e(15),o=e(19),a=e(94),i=e(63),u=e(145),s=r.topLevelTypes,l=i.getFirstReactDOM,c={mouseEnter:{registrationName:u({onMouseEnter:null}),dependencies:[s.topMouseOut,s.topMouseOver]},mouseLeave:{registrationName:u({onMouseLeave:null}),dependencies:[s.topMouseOut,s.topMouseOver]}},p=[null,null],d={eventTypes:c,extractEvents:function(e,t,n,r,u){if(e===s.topMouseOver&&(r.relatedTarget||r.fromElement))return null;if(e!==s.topMouseOut&&e!==s.topMouseOver)return null;var d;if(t.window===t)d=t;else{var f=t.ownerDocument;d=f?f.defaultView||f.parentWindow:window}var h,v,m="",g="";if(e===s.topMouseOut?(h=t,m=n,v=l(r.relatedTarget||r.toElement),v?g=i.getID(v):v=d,v=v||d):(h=d,v=t,g=n),h===v)return null;var y=a.getPooled(c.mouseLeave,m,r,u);y.type="mouseleave",y.target=h,y.relatedTarget=v;var C=a.getPooled(c.mouseEnter,g,r,u);return C.type="mouseenter",C.target=v,C.relatedTarget=h,o.accumulateEnterLeaveDispatches(y,C,m,g),p[0]=y,p[1]=C,p}};t.exports=d},{145:145,15:15,19:19,63:63,94:94}],15:[function(e,t,n){"use strict";var r=e(144),o=r({bubbled:null,captured:null}),a=r({topAbort:null,topBlur:null,topCanPlay:null,topCanPlayThrough:null,topChange:null,topClick:null,topCompositionEnd:null,topCompositionStart:null,topCompositionUpdate:null,topContextMenu:null,topCopy:null,topCut:null,topDoubleClick:null,topDrag:null,topDragEnd:null,topDragEnter:null,topDragExit:null,topDragLeave:null,topDragOver:null,topDragStart:null,topDrop:null,topDurationChange:null,topEmptied:null,topEncrypted:null,topEnded:null,topError:null,topFocus:null,topInput:null,topKeyDown:null,topKeyPress:null,topKeyUp:null,topLoad:null,topLoadedData:null,topLoadedMetadata:null,topLoadStart:null,topMouseDown:null,topMouseMove:null,topMouseOut:null,topMouseOver:null,topMouseUp:null,topPaste:null,topPause:null,topPlay:null,topPlaying:null,topProgress:null,topRateChange:null,topReset:null,topScroll:null,topSeeked:null,topSeeking:null,topSelectionChange:null,topStalled:null,topSubmit:null,topSuspend:null,topTextInput:null,topTimeUpdate:null,topTouchCancel:null,topTouchEnd:null,topTouchMove:null,topTouchStart:null,topVolumeChange:null,topWaiting:null,topWheel:null}),i={topLevelTypes:a,PropagationPhases:o};t.exports=i},{144:144}],16:[function(e,t,n){"use strict";var r=e(17),o=e(18),a=e(54),i=e(100),u=e(107),s=e(141),l=(e(150),{}),c=null,p=function(e,t){e&&(o.executeDispatchesInOrder(e,t),e.isPersistent()||e.constructor.release(e))},d=function(e){return p(e,!0)},f=function(e){return p(e,!1)},h=null,v={injection:{injectMount:o.injection.injectMount,injectInstanceHandle:function(e){h=e},getInstanceHandle:function(){return h},injectEventPluginOrder:r.injectEventPluginOrder,injectEventPluginsByName:r.injectEventPluginsByName},eventNameDispatchConfigs:r.eventNameDispatchConfigs,registrationNameModules:r.registrationNameModules,putListener:function(e,t,n){"function"!=typeof n?s(!1):void 0;var o=l[t]||(l[t]={});o[e]=n;var a=r.registrationNameModules[t];a&&a.didPutListener&&a.didPutListener(e,t,n)},getListener:function(e,t){var n=l[t];return n&&n[e]},deleteListener:function(e,t){var n=r.registrationNameModules[t];n&&n.willDeleteListener&&n.willDeleteListener(e,t);var o=l[t];o&&delete o[e]},deleteAllListeners:function(e){for(var t in l)if(l[t][e]){var n=r.registrationNameModules[t];n&&n.willDeleteListener&&n.willDeleteListener(e,t),delete l[t][e]}},extractEvents:function(e,t,n,o,a){for(var u,s=r.plugins,l=0;l<s.length;l++){var c=s[l];if(c){var p=c.extractEvents(e,t,n,o,a);p&&(u=i(u,p))}}return u},enqueueEvents:function(e){e&&(c=i(c,e))},processEventQueue:function(e){var t=c;c=null,e?u(t,d):u(t,f),c?s(!1):void 0,a.rethrowCaughtError()},__purge:function(){l={}},__getListenerBank:function(){return l}};t.exports=v},{100:100,107:107,141:141,150:150,17:17,18:18,54:54}],17:[function(e,t,n){"use strict";function r(){if(u)for(var e in s){var t=s[e],n=u.indexOf(e);if(n>-1?void 0:i(!1),!l.plugins[n]){t.extractEvents?void 0:i(!1),l.plugins[n]=t;var r=t.eventTypes;for(var a in r)o(r[a],t,a)?void 0:i(!1)}}}function o(e,t,n){l.eventNameDispatchConfigs.hasOwnProperty(n)?i(!1):void 0,l.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var o in r)if(r.hasOwnProperty(o)){var u=r[o];a(u,t,n)}return!0}return e.registrationName?(a(e.registrationName,t,n),!0):!1}function a(e,t,n){l.registrationNameModules[e]?i(!1):void 0,l.registrationNameModules[e]=t,l.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var i=e(141),u=null,s={},l={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},injectEventPluginOrder:function(e){u?i(!1):void 0,u=Array.prototype.slice.call(e),r()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];s.hasOwnProperty(n)&&s[n]===o||(s[n]?i(!1):void 0,s[n]=o,t=!0)}t&&r()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return l.registrationNameModules[t.registrationName]||null;for(var n in t.phasedRegistrationNames)if(t.phasedRegistrationNames.hasOwnProperty(n)){var r=l.registrationNameModules[t.phasedRegistrationNames[n]];if(r)return r}return null},_resetEventPlugins:function(){u=null;for(var e in s)s.hasOwnProperty(e)&&delete s[e];l.plugins.length=0;var t=l.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=l.registrationNameModules;for(var o in r)r.hasOwnProperty(o)&&delete r[o]}};t.exports=l},{141:141}],18:[function(e,t,n){"use strict";function r(e){return e===m.topMouseUp||e===m.topTouchEnd||e===m.topTouchCancel}function o(e){return e===m.topMouseMove||e===m.topTouchMove}function a(e){return e===m.topMouseDown||e===m.topTouchStart}function i(e,t,n,r){var o=e.type||"unknown-event";e.currentTarget=v.Mount.getNode(r),t?f.invokeGuardedCallbackWithCatch(o,n,e,r):f.invokeGuardedCallback(o,n,e,r),e.currentTarget=null}function u(e,t){var n=e._dispatchListeners,r=e._dispatchIDs;if(Array.isArray(n))for(var o=0;o<n.length&&!e.isPropagationStopped();o++)i(e,t,n[o],r[o]);else n&&i(e,t,n,r);e._dispatchListeners=null,e._dispatchIDs=null}function s(e){var t=e._dispatchListeners,n=e._dispatchIDs;if(Array.isArray(t)){for(var r=0;r<t.length&&!e.isPropagationStopped();r++)if(t[r](e,n[r]))return n[r]}else if(t&&t(e,n))return n;return null}function l(e){var t=s(e);return e._dispatchIDs=null,e._dispatchListeners=null,t}function c(e){var t=e._dispatchListeners,n=e._dispatchIDs;Array.isArray(t)?h(!1):void 0;var r=t?t(e,n):null;return e._dispatchListeners=null,e._dispatchIDs=null,r}function p(e){return!!e._dispatchListeners}var d=e(15),f=e(54),h=e(141),v=(e(150),{Mount:null,injectMount:function(e){v.Mount=e}}),m=d.topLevelTypes,g={isEndish:r,isMoveish:o,isStartish:a,executeDirectDispatch:c,executeDispatchesInOrder:u,executeDispatchesInOrderStopAtTrue:l,hasDispatches:p,getNode:function(e){return v.Mount.getNode(e)},getID:function(e){return v.Mount.getID(e)},injection:v};t.exports=g},{141:141,15:15,150:150,54:54}],19:[function(e,t,n){"use strict";function r(e,t,n){var r=t.dispatchConfig.phasedRegistrationNames[n];return y(e,r)}function o(e,t,n){var o=t?g.bubbled:g.captured,a=r(e,n,o);a&&(n._dispatchListeners=v(n._dispatchListeners,a),n._dispatchIDs=v(n._dispatchIDs,e))}function a(e){e&&e.dispatchConfig.phasedRegistrationNames&&h.injection.getInstanceHandle().traverseTwoPhase(e.dispatchMarker,o,e)}function i(e){e&&e.dispatchConfig.phasedRegistrationNames&&h.injection.getInstanceHandle().traverseTwoPhaseSkipTarget(e.dispatchMarker,o,e)}function u(e,t,n){if(n&&n.dispatchConfig.registrationName){var r=n.dispatchConfig.registrationName,o=y(e,r);o&&(n._dispatchListeners=v(n._dispatchListeners,o),n._dispatchIDs=v(n._dispatchIDs,e))}}function s(e){e&&e.dispatchConfig.registrationName&&u(e.dispatchMarker,null,e)}function l(e){m(e,a)}function c(e){m(e,i)}function p(e,t,n,r){h.injection.getInstanceHandle().traverseEnterLeave(n,r,u,e,t)}function d(e){m(e,s)}var f=e(15),h=e(16),v=(e(150),e(100)),m=e(107),g=f.PropagationPhases,y=h.getListener,C={accumulateTwoPhaseDispatches:l,accumulateTwoPhaseDispatchesSkipTarget:c,accumulateDirectDispatches:d,accumulateEnterLeaveDispatches:p};t.exports=C},{100:100,107:107,15:15,150:150,16:16}],20:[function(e,t,n){"use strict";function r(e){this._root=e,this._startText=this.getText(),this._fallbackText=null}var o=e(24),a=e(23),i=e(114);a(r.prototype,{destructor:function(){this._root=null,this._startText=null,this._fallbackText=null},getText:function(){return"value"in this._root?this._root.value:this._root[i()]},getData:function(){if(this._fallbackText)return this._fallbackText;var e,t,n=this._startText,r=n.length,o=this.getText(),a=o.length;for(e=0;r>e&&n[e]===o[e];e++);var i=r-e;for(t=1;i>=t&&n[r-t]===o[a-t];t++);var u=t>1?1-t:void 0;return this._fallbackText=o.slice(e,u),this._fallbackText}}),o.addPoolingTo(r),t.exports=r},{114:114,23:23,24:24}],21:[function(e,t,n){"use strict";var r,o=e(10),a=e(127),i=o.injection.MUST_USE_ATTRIBUTE,u=o.injection.MUST_USE_PROPERTY,s=o.injection.HAS_BOOLEAN_VALUE,l=o.injection.HAS_SIDE_EFFECTS,c=o.injection.HAS_NUMERIC_VALUE,p=o.injection.HAS_POSITIVE_NUMERIC_VALUE,d=o.injection.HAS_OVERLOADED_BOOLEAN_VALUE;if(a.canUseDOM){var f=document.implementation;r=f&&f.hasFeature&&f.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")}var h={isCustomAttribute:RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\d_.\-]*$/),Properties:{accept:null,acceptCharset:null,accessKey:null,action:null,allowFullScreen:i|s,allowTransparency:i,alt:null,async:s,autoComplete:null,autoPlay:s,capture:i|s,cellPadding:null,cellSpacing:null,charSet:i,challenge:i,checked:u|s,classID:i,className:r?i:u,cols:i|p,colSpan:null,content:null,contentEditable:null,contextMenu:i,controls:u|s,coords:null,crossOrigin:null,data:null,dateTime:i,defer:s,dir:null,disabled:i|s,download:d,draggable:null,encType:null,form:i,formAction:i,formEncType:i,formMethod:i,formNoValidate:s,formTarget:i,frameBorder:i,headers:null,height:i,hidden:i|s,high:null,href:null,hrefLang:null,htmlFor:null,httpEquiv:null,icon:null,id:u,inputMode:i,is:i,keyParams:i,keyType:i,label:null,lang:null,list:i,loop:u|s,low:null,manifest:i,marginHeight:null,marginWidth:null,max:null,maxLength:i,media:i,mediaGroup:null,method:null,min:null,minLength:i,multiple:u|s,muted:u|s,name:null,noValidate:s,open:s,optimum:null,pattern:null,placeholder:null,poster:null,preload:null,radioGroup:null,readOnly:u|s,rel:null,required:s,role:i,rows:i|p,rowSpan:null,sandbox:null,scope:null,scoped:s,scrolling:null,seamless:i|s,selected:u|s,shape:null,size:i|p,sizes:i,span:p,spellCheck:null,src:null,srcDoc:u,srcSet:i,start:c,step:null,style:null,summary:null,tabIndex:null,target:null,title:null,type:null,useMap:null,value:u|l,width:i,wmode:i,wrap:null,about:i,datatype:i,inlist:i,prefix:i,property:i,resource:i,"typeof":i,vocab:i,autoCapitalize:null,autoCorrect:null,autoSave:null,itemProp:i,itemScope:i|s,itemType:i,itemID:i,itemRef:i,results:null,security:i,unselectable:i},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{autoCapitalize:"autocapitalize",autoComplete:"autocomplete",autoCorrect:"autocorrect",autoFocus:"autofocus",autoPlay:"autoplay",autoSave:"autosave",encType:"encoding",hrefLang:"hreflang",radioGroup:"radiogroup",spellCheck:"spellcheck",srcDoc:"srcdoc",srcSet:"srcset"}};t.exports=h},{10:10,127:127}],22:[function(e,t,n){"use strict";function r(e){null!=e.checkedLink&&null!=e.valueLink?l(!1):void 0}function o(e){r(e),null!=e.value||null!=e.onChange?l(!1):void 0}function a(e){r(e),null!=e.checked||null!=e.onChange?l(!1):void 0}function i(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}var u=e(72),s=e(71),l=e(141),c=(e(150),{button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0}),p={value:function(e,t,n){return!e[t]||c[e.type]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.")},checked:function(e,t,n){return!e[t]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")},onChange:u.func},d={},f={checkPropTypes:function(e,t,n){for(var r in p){if(p.hasOwnProperty(r))var o=p[r](t,r,e,s.prop);o instanceof Error&&!(o.message in d)&&(d[o.message]=!0,i(n))}},getValue:function(e){return e.valueLink?(o(e),e.valueLink.value):e.value},getChecked:function(e){return e.checkedLink?(a(e),e.checkedLink.value):e.checked},executeOnChange:function(e,t){return e.valueLink?(o(e),e.valueLink.requestChange(t.target.value)):e.checkedLink?(a(e),e.checkedLink.requestChange(t.target.checked)):e.onChange?e.onChange.call(void 0,t):void 0}};t.exports=f},{141:141,150:150,71:71,72:72}],23:[function(e,t,n){"use strict";function r(e,t){if(null==e)throw new TypeError("Object.assign target cannot be null or undefined");for(var n=Object(e),r=Object.prototype.hasOwnProperty,o=1;o<arguments.length;o++){var a=arguments[o];if(null!=a){var i=Object(a);for(var u in i)r.call(i,u)&&(n[u]=i[u])}}return n}t.exports=r},{}],24:[function(e,t,n){"use strict";var r=e(141),o=function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)},a=function(e,t){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,e,t),r}return new n(e,t)},i=function(e,t,n){var r=this;if(r.instancePool.length){var o=r.instancePool.pop();return r.call(o,e,t,n),o}return new r(e,t,n)},u=function(e,t,n,r){var o=this;if(o.instancePool.length){var a=o.instancePool.pop();return o.call(a,e,t,n,r),a}return new o(e,t,n,r)},s=function(e,t,n,r,o){var a=this;if(a.instancePool.length){var i=a.instancePool.pop();return a.call(i,e,t,n,r,o),i}return new a(e,t,n,r,o)},l=function(e){var t=this;e instanceof t?void 0:r(!1),e.destructor(),t.instancePool.length<t.poolSize&&t.instancePool.push(e)},c=10,p=o,d=function(e,t){var n=e;return n.instancePool=[],n.getPooled=t||p,n.poolSize||(n.poolSize=c),n.release=l,n},f={addPoolingTo:d,oneArgumentPooler:o,twoArgumentPooler:a,threeArgumentPooler:i,fourArgumentPooler:u,fiveArgumentPooler:s};t.exports=f},{141:141}],25:[function(e,t,n){"use strict";var r=(e(60),e(105)),o=(e(150),"_getDOMNodeDidWarn"),a={getDOMNode:function(){return this.constructor[o]=!0,r(this)}};t.exports=a},{105:105,150:150,60:60}],26:[function(e,t,n){"use strict";function r(e){return Object.prototype.hasOwnProperty.call(e,m)||(e[m]=h++,d[e[m]]={}),d[e[m]]}var o=e(15),a=e(16),i=e(17),u=e(55),s=e(69),l=e(99),c=e(23),p=e(116),d={},f=!1,h=0,v={topAbort:"abort",topBlur:"blur",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topChange:"change",topClick:"click",topCompositionEnd:"compositionend",topCompositionStart:"compositionstart",topCompositionUpdate:"compositionupdate",topContextMenu:"contextmenu",topCopy:"copy",topCut:"cut",topDoubleClick:"dblclick",topDrag:"drag",topDragEnd:"dragend",topDragEnter:"dragenter",topDragExit:"dragexit",topDragLeave:"dragleave",topDragOver:"dragover",topDragStart:"dragstart",topDrop:"drop",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topFocus:"focus",topInput:"input",topKeyDown:"keydown",topKeyPress:"keypress",topKeyUp:"keyup",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topMouseDown:"mousedown",topMouseMove:"mousemove",topMouseOut:"mouseout",topMouseOver:"mouseover",topMouseUp:"mouseup",topPaste:"paste",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topScroll:"scroll",topSeeked:"seeked", -topSeeking:"seeking",topSelectionChange:"selectionchange",topStalled:"stalled",topSuspend:"suspend",topTextInput:"textInput",topTimeUpdate:"timeupdate",topTouchCancel:"touchcancel",topTouchEnd:"touchend",topTouchMove:"touchmove",topTouchStart:"touchstart",topVolumeChange:"volumechange",topWaiting:"waiting",topWheel:"wheel"},m="_reactListenersID"+String(Math.random()).slice(2),g=c({},u,{ReactEventListener:null,injection:{injectReactEventListener:function(e){e.setHandleTopLevel(g.handleTopLevel),g.ReactEventListener=e}},setEnabled:function(e){g.ReactEventListener&&g.ReactEventListener.setEnabled(e)},isEnabled:function(){return!(!g.ReactEventListener||!g.ReactEventListener.isEnabled())},listenTo:function(e,t){for(var n=t,a=r(n),u=i.registrationNameDependencies[e],s=o.topLevelTypes,l=0;l<u.length;l++){var c=u[l];a.hasOwnProperty(c)&&a[c]||(c===s.topWheel?p("wheel")?g.ReactEventListener.trapBubbledEvent(s.topWheel,"wheel",n):p("mousewheel")?g.ReactEventListener.trapBubbledEvent(s.topWheel,"mousewheel",n):g.ReactEventListener.trapBubbledEvent(s.topWheel,"DOMMouseScroll",n):c===s.topScroll?p("scroll",!0)?g.ReactEventListener.trapCapturedEvent(s.topScroll,"scroll",n):g.ReactEventListener.trapBubbledEvent(s.topScroll,"scroll",g.ReactEventListener.WINDOW_HANDLE):c===s.topFocus||c===s.topBlur?(p("focus",!0)?(g.ReactEventListener.trapCapturedEvent(s.topFocus,"focus",n),g.ReactEventListener.trapCapturedEvent(s.topBlur,"blur",n)):p("focusin")&&(g.ReactEventListener.trapBubbledEvent(s.topFocus,"focusin",n),g.ReactEventListener.trapBubbledEvent(s.topBlur,"focusout",n)),a[s.topBlur]=!0,a[s.topFocus]=!0):v.hasOwnProperty(c)&&g.ReactEventListener.trapBubbledEvent(c,v[c],n),a[c]=!0)}},trapBubbledEvent:function(e,t,n){return g.ReactEventListener.trapBubbledEvent(e,t,n)},trapCapturedEvent:function(e,t,n){return g.ReactEventListener.trapCapturedEvent(e,t,n)},ensureScrollValueMonitoring:function(){if(!f){var e=l.refreshScrollValues;g.ReactEventListener.monitorScrollValue(e),f=!0}},eventNameDispatchConfigs:a.eventNameDispatchConfigs,registrationNameModules:a.registrationNameModules,putListener:a.putListener,getListener:a.getListener,deleteListener:a.deleteListener,deleteAllListeners:a.deleteAllListeners});s.measureMethods(g,"ReactBrowserEventEmitter",{putListener:"putListener",deleteListener:"deleteListener"}),t.exports=g},{116:116,15:15,16:16,17:17,23:23,55:55,69:69,99:99}],27:[function(e,t,n){"use strict";function r(e,t,n){var r=void 0===e[n];null!=t&&r&&(e[n]=a(t,null))}var o=e(74),a=e(115),i=e(123),u=e(124),s=(e(150),{instantiateChildren:function(e,t,n){if(null==e)return null;var o={};return u(e,r,o),o},updateChildren:function(e,t,n,r){if(!t&&!e)return null;var u;for(u in t)if(t.hasOwnProperty(u)){var s=e&&e[u],l=s&&s._currentElement,c=t[u];if(null!=s&&i(l,c))o.receiveComponent(s,c,n,r),t[u]=s;else{s&&o.unmountComponent(s,u);var p=a(c,null);t[u]=p}}for(u in e)!e.hasOwnProperty(u)||t&&t.hasOwnProperty(u)||o.unmountComponent(e[u]);return t},unmountChildren:function(e){for(var t in e)if(e.hasOwnProperty(t)){var n=e[t];o.unmountComponent(n)}}});t.exports=s},{115:115,123:123,124:124,150:150,74:74}],28:[function(e,t,n){"use strict";function r(e){return(""+e).replace(b,"//")}function o(e,t){this.func=e,this.context=t,this.count=0}function a(e,t,n){var r=e.func,o=e.context;r.call(o,t,e.count++)}function i(e,t,n){if(null==e)return e;var r=o.getPooled(t,n);g(e,a,r),o.release(r)}function u(e,t,n,r){this.result=e,this.keyPrefix=t,this.func=n,this.context=r,this.count=0}function s(e,t,n){var o=e.result,a=e.keyPrefix,i=e.func,u=e.context,s=i.call(u,t,e.count++);Array.isArray(s)?l(s,o,n,m.thatReturnsArgument):null!=s&&(v.isValidElement(s)&&(s=v.cloneAndReplaceKey(s,a+(s!==t?r(s.key||"")+"/":"")+n)),o.push(s))}function l(e,t,n,o,a){var i="";null!=n&&(i=r(n)+"/");var l=u.getPooled(t,i,o,a);g(e,s,l),u.release(l)}function c(e,t,n){if(null==e)return e;var r=[];return l(e,r,null,t,n),r}function p(e,t,n){return null}function d(e,t){return g(e,p,null)}function f(e){var t=[];return l(e,t,null,m.thatReturnsArgument),t}var h=e(24),v=e(50),m=e(133),g=e(124),y=h.twoArgumentPooler,C=h.fourArgumentPooler,b=/\/(?!\/)/g;o.prototype.destructor=function(){this.func=null,this.context=null,this.count=0},h.addPoolingTo(o,y),u.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},h.addPoolingTo(u,C);var _={forEach:i,map:c,mapIntoWithKeyPrefixInternal:l,count:d,toArray:f};t.exports=_},{124:124,133:133,24:24,50:50}],29:[function(e,t,n){"use strict";function r(e,t){var n=E.hasOwnProperty(t)?E[t]:null;D.hasOwnProperty(t)&&(n!==b.OVERRIDE_BASE?m(!1):void 0),e.hasOwnProperty(t)&&(n!==b.DEFINE_MANY&&n!==b.DEFINE_MANY_MERGED?m(!1):void 0)}function o(e,t){if(t){"function"==typeof t?m(!1):void 0,d.isValidElement(t)?m(!1):void 0;var n=e.prototype;t.hasOwnProperty(C)&&x.mixins(e,t.mixins);for(var o in t)if(t.hasOwnProperty(o)&&o!==C){var a=t[o];if(r(n,o),x.hasOwnProperty(o))x[o](e,a);else{var i=E.hasOwnProperty(o),l=n.hasOwnProperty(o),c="function"==typeof a,p=c&&!i&&!l&&t.autobind!==!1;if(p)n.__reactAutoBindMap||(n.__reactAutoBindMap={}),n.__reactAutoBindMap[o]=a,n[o]=a;else if(l){var f=E[o];!i||f!==b.DEFINE_MANY_MERGED&&f!==b.DEFINE_MANY?m(!1):void 0,f===b.DEFINE_MANY_MERGED?n[o]=u(n[o],a):f===b.DEFINE_MANY&&(n[o]=s(n[o],a))}else n[o]=a}}}}function a(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var o=n in x;o?m(!1):void 0;var a=n in e;a?m(!1):void 0,e[n]=r}}}function i(e,t){e&&t&&"object"==typeof e&&"object"==typeof t?void 0:m(!1);for(var n in t)t.hasOwnProperty(n)&&(void 0!==e[n]?m(!1):void 0,e[n]=t[n]);return e}function u(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var o={};return i(o,n),i(o,r),o}}function s(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function l(e,t){var n=t.bind(e);return n}function c(e){for(var t in e.__reactAutoBindMap)if(e.__reactAutoBindMap.hasOwnProperty(t)){var n=e.__reactAutoBindMap[t];e[t]=l(e,n)}}var p=e(30),d=e(50),f=(e(71),e(70),e(67)),h=e(23),v=e(134),m=e(141),g=e(144),y=e(145),C=(e(150),y({mixins:null})),b=g({DEFINE_ONCE:null,DEFINE_MANY:null,OVERRIDE_BASE:null,DEFINE_MANY_MERGED:null}),_=[],E={mixins:b.DEFINE_MANY,statics:b.DEFINE_MANY,propTypes:b.DEFINE_MANY,contextTypes:b.DEFINE_MANY,childContextTypes:b.DEFINE_MANY,getDefaultProps:b.DEFINE_MANY_MERGED,getInitialState:b.DEFINE_MANY_MERGED,getChildContext:b.DEFINE_MANY_MERGED,render:b.DEFINE_ONCE,componentWillMount:b.DEFINE_MANY,componentDidMount:b.DEFINE_MANY,componentWillReceiveProps:b.DEFINE_MANY,shouldComponentUpdate:b.DEFINE_ONCE,componentWillUpdate:b.DEFINE_MANY,componentDidUpdate:b.DEFINE_MANY,componentWillUnmount:b.DEFINE_MANY,updateComponent:b.OVERRIDE_BASE},x={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)o(e,t[n])},childContextTypes:function(e,t){e.childContextTypes=h({},e.childContextTypes,t)},contextTypes:function(e,t){e.contextTypes=h({},e.contextTypes,t)},getDefaultProps:function(e,t){e.getDefaultProps?e.getDefaultProps=u(e.getDefaultProps,t):e.getDefaultProps=t},propTypes:function(e,t){e.propTypes=h({},e.propTypes,t)},statics:function(e,t){a(e,t)},autobind:function(){}},D={replaceState:function(e,t){this.updater.enqueueReplaceState(this,e),t&&this.updater.enqueueCallback(this,t)},isMounted:function(){return this.updater.isMounted(this)},setProps:function(e,t){this.updater.enqueueSetProps(this,e),t&&this.updater.enqueueCallback(this,t)},replaceProps:function(e,t){this.updater.enqueueReplaceProps(this,e),t&&this.updater.enqueueCallback(this,t)}},M=function(){};h(M.prototype,p.prototype,D);var N={createClass:function(e){var t=function(e,t,n){this.__reactAutoBindMap&&c(this),this.props=e,this.context=t,this.refs=v,this.updater=n||f,this.state=null;var r=this.getInitialState?this.getInitialState():null;"object"!=typeof r||Array.isArray(r)?m(!1):void 0,this.state=r};t.prototype=new M,t.prototype.constructor=t,_.forEach(o.bind(null,t)),o(t,e),t.getDefaultProps&&(t.defaultProps=t.getDefaultProps()),t.prototype.render?void 0:m(!1);for(var n in E)t.prototype[n]||(t.prototype[n]=null);return t},injection:{injectMixin:function(e){_.push(e)}}};t.exports=N},{134:134,141:141,144:144,145:145,150:150,23:23,30:30,50:50,67:67,70:70,71:71}],30:[function(e,t,n){"use strict";function r(e,t,n){this.props=e,this.context=t,this.refs=a,this.updater=n||o}var o=e(67),a=e(134),i=e(141);e(150);r.prototype.isReactComponent={},r.prototype.setState=function(e,t){"object"!=typeof e&&"function"!=typeof e&&null!=e?i(!1):void 0,this.updater.enqueueSetState(this,e),t&&this.updater.enqueueCallback(this,t)},r.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this),e&&this.updater.enqueueCallback(this,e)};t.exports=r},{134:134,141:141,150:150,67:67}],31:[function(e,t,n){"use strict";var r=e(40),o=e(63),a={processChildrenUpdates:r.dangerouslyProcessChildrenUpdates,replaceNodeWithMarkupByID:r.dangerouslyReplaceNodeWithMarkupByID,unmountIDFromEnvironment:function(e){o.purgeID(e)}};t.exports=a},{40:40,63:63}],32:[function(e,t,n){"use strict";var r=e(141),o=!1,a={unmountIDFromEnvironment:null,replaceNodeWithMarkupByID:null,processChildrenUpdates:null,injection:{injectEnvironment:function(e){o?r(!1):void 0,a.unmountIDFromEnvironment=e.unmountIDFromEnvironment,a.replaceNodeWithMarkupByID=e.replaceNodeWithMarkupByID,a.processChildrenUpdates=e.processChildrenUpdates,o=!0}}};t.exports=a},{141:141}],33:[function(e,t,n){"use strict";function r(e){var t=e._currentElement._owner||null;if(t){var n=t.getName();if(n)return" Check the render method of `"+n+"`."}return""}function o(e){}var a=e(32),i=e(34),u=e(50),s=e(60),l=e(69),c=e(71),p=(e(70),e(74)),d=e(80),f=e(23),h=e(134),v=e(141),m=e(123);e(150);o.prototype.render=function(){var e=s.get(this)._currentElement.type;return e(this.props,this.context,this.updater)};var g=1,y={construct:function(e){this._currentElement=e,this._rootNodeID=null,this._instance=null,this._pendingElement=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._renderedComponent=null,this._context=null,this._mountOrder=0,this._topLevelWrapper=null,this._pendingCallbacks=null},mountComponent:function(e,t,n){this._context=n,this._mountOrder=g++,this._rootNodeID=e;var r,a,i=this._processProps(this._currentElement.props),l=this._processContext(n),c=this._currentElement.type,f="prototype"in c;f&&(r=new c(i,l,d)),(!f||null===r||r===!1||u.isValidElement(r))&&(a=r,r=new o(c)),r.props=i,r.context=l,r.refs=h,r.updater=d,this._instance=r,s.set(r,this);var m=r.state;void 0===m&&(r.state=m=null),"object"!=typeof m||Array.isArray(m)?v(!1):void 0,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,r.componentWillMount&&(r.componentWillMount(),this._pendingStateQueue&&(r.state=this._processPendingState(r.props,r.context))),void 0===a&&(a=this._renderValidatedComponent()),this._renderedComponent=this._instantiateReactComponent(a);var y=p.mountComponent(this._renderedComponent,e,t,this._processChildContext(n));return r.componentDidMount&&t.getReactMountReady().enqueue(r.componentDidMount,r),y},unmountComponent:function(){var e=this._instance;e.componentWillUnmount&&e.componentWillUnmount(),p.unmountComponent(this._renderedComponent),this._renderedComponent=null,this._instance=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._pendingCallbacks=null,this._pendingElement=null,this._context=null,this._rootNodeID=null,this._topLevelWrapper=null,s.remove(e)},_maskContext:function(e){var t=null,n=this._currentElement.type,r=n.contextTypes;if(!r)return h;t={};for(var o in r)t[o]=e[o];return t},_processContext:function(e){var t=this._maskContext(e);return t},_processChildContext:function(e){var t=this._currentElement.type,n=this._instance,r=n.getChildContext&&n.getChildContext();if(r){"object"!=typeof t.childContextTypes?v(!1):void 0;for(var o in r)o in t.childContextTypes?void 0:v(!1);return f({},e,r)}return e},_processProps:function(e){return e},_checkPropTypes:function(e,t,n){var o=this.getName();for(var a in e)if(e.hasOwnProperty(a)){var i;try{"function"!=typeof e[a]?v(!1):void 0,i=e[a](t,a,o,n)}catch(u){i=u}i instanceof Error&&(r(this),n===c.prop)}},receiveComponent:function(e,t,n){var r=this._currentElement,o=this._context;this._pendingElement=null,this.updateComponent(t,r,e,o,n)},performUpdateIfNecessary:function(e){null!=this._pendingElement&&p.receiveComponent(this,this._pendingElement||this._currentElement,e,this._context),(null!==this._pendingStateQueue||this._pendingForceUpdate)&&this.updateComponent(e,this._currentElement,this._currentElement,this._context,this._context)},updateComponent:function(e,t,n,r,o){var a,i=this._instance,u=this._context===o?i.context:this._processContext(o);t===n?a=n.props:(a=this._processProps(n.props),i.componentWillReceiveProps&&i.componentWillReceiveProps(a,u));var s=this._processPendingState(a,u),l=this._pendingForceUpdate||!i.shouldComponentUpdate||i.shouldComponentUpdate(a,s,u);l?(this._pendingForceUpdate=!1,this._performComponentUpdate(n,a,s,u,e,o)):(this._currentElement=n,this._context=o,i.props=a,i.state=s,i.context=u)},_processPendingState:function(e,t){var n=this._instance,r=this._pendingStateQueue,o=this._pendingReplaceState;if(this._pendingReplaceState=!1,this._pendingStateQueue=null,!r)return n.state;if(o&&1===r.length)return r[0];for(var a=f({},o?r[0]:n.state),i=o?1:0;i<r.length;i++){var u=r[i];f(a,"function"==typeof u?u.call(n,a,e,t):u)}return a},_performComponentUpdate:function(e,t,n,r,o,a){var i,u,s,l=this._instance,c=Boolean(l.componentDidUpdate);c&&(i=l.props,u=l.state,s=l.context),l.componentWillUpdate&&l.componentWillUpdate(t,n,r),this._currentElement=e,this._context=a,l.props=t,l.state=n,l.context=r,this._updateRenderedComponent(o,a),c&&o.getReactMountReady().enqueue(l.componentDidUpdate.bind(l,i,u,s),l)},_updateRenderedComponent:function(e,t){var n=this._renderedComponent,r=n._currentElement,o=this._renderValidatedComponent();if(m(r,o))p.receiveComponent(n,o,e,this._processChildContext(t));else{var a=this._rootNodeID,i=n._rootNodeID;p.unmountComponent(n),this._renderedComponent=this._instantiateReactComponent(o);var u=p.mountComponent(this._renderedComponent,a,e,this._processChildContext(t));this._replaceNodeWithMarkupByID(i,u)}},_replaceNodeWithMarkupByID:function(e,t){a.replaceNodeWithMarkupByID(e,t)},_renderValidatedComponentWithoutOwnerOrContext:function(){var e=this._instance,t=e.render();return t},_renderValidatedComponent:function(){var e;i.current=this;try{e=this._renderValidatedComponentWithoutOwnerOrContext()}finally{i.current=null}return null===e||e===!1||u.isValidElement(e)?void 0:v(!1),e},attachRef:function(e,t){var n=this.getPublicInstance();null==n?v(!1):void 0;var r=t.getPublicInstance(),o=n.refs===h?n.refs={}:n.refs;o[e]=r},detachRef:function(e){var t=this.getPublicInstance().refs;delete t[e]},getName:function(){var e=this._currentElement.type,t=this._instance&&this._instance.constructor;return e.displayName||t&&t.displayName||e.name||t&&t.name||null},getPublicInstance:function(){var e=this._instance;return e instanceof o?null:e},_instantiateReactComponent:null};l.measureMethods(y,"ReactCompositeComponent",{mountComponent:"mountComponent",updateComponent:"updateComponent",_renderValidatedComponent:"_renderValidatedComponent"});var C={Mixin:y};t.exports=C},{123:123,134:134,141:141,150:150,23:23,32:32,34:34,50:50,60:60,69:69,70:70,71:71,74:74,80:80}],34:[function(e,t,n){"use strict";var r={current:null};t.exports=r},{}],35:[function(e,t,n){"use strict";var r=e(34),o=e(46),a=e(49),i=e(59),u=e(63),s=e(69),l=e(74),c=e(81),p=e(82),d=e(105),f=e(120);e(150);a.inject();var h=s.measure("React","render",u.render),v={findDOMNode:d,render:h,unmountComponentAtNode:u.unmountComponentAtNode,version:p,unstable_batchedUpdates:c.batchedUpdates,unstable_renderSubtreeIntoContainer:f};"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject&&__REACT_DEVTOOLS_GLOBAL_HOOK__.inject({CurrentOwner:r,InstanceHandles:i,Mount:u,Reconciler:l,TextComponent:o});t.exports=v},{105:105,120:120,150:150,34:34,46:46,49:49,59:59,63:63,69:69,74:74,81:81,82:82}],36:[function(e,t,n){"use strict";var r={onClick:!0,onDoubleClick:!0,onMouseDown:!0,onMouseMove:!0,onMouseUp:!0,onClickCapture:!0,onDoubleClickCapture:!0,onMouseDownCapture:!0,onMouseMoveCapture:!0,onMouseUpCapture:!0},o={getNativeProps:function(e,t,n){if(!t.disabled)return t;var o={};for(var a in t)t.hasOwnProperty(a)&&!r[a]&&(o[a]=t[a]);return o}};t.exports=o},{}],37:[function(e,t,n){"use strict";function r(){return this}function o(){var e=this._reactInternalComponent;return!!e}function a(){}function i(e,t){var n=this._reactInternalComponent;n&&(T.enqueueSetPropsInternal(n,e),t&&T.enqueueCallbackInternal(n,t))}function u(e,t){var n=this._reactInternalComponent;n&&(T.enqueueReplacePropsInternal(n,e),t&&T.enqueueCallbackInternal(n,t))}function s(e,t){t&&(null!=t.dangerouslySetInnerHTML&&(null!=t.children?A(!1):void 0,"object"==typeof t.dangerouslySetInnerHTML&&"__html"in t.dangerouslySetInnerHTML?void 0:A(!1)),null!=t.style&&"object"!=typeof t.style?A(!1):void 0)}function l(e,t,n,r){var o=R.findReactContainerForID(e);if(o){var a=o.nodeType===H?o.ownerDocument:o;V(t,a)}r.getReactMountReady().enqueue(c,{id:e,registrationName:t,listener:n})}function c(){var e=this;E.putListener(e.id,e.registrationName,e.listener)}function p(){var e=this;e._rootNodeID?void 0:A(!1);var t=R.getNode(e._rootNodeID);switch(t?void 0:A(!1),e._tag){case"iframe":e._wrapperState.listeners=[E.trapBubbledEvent(_.topLevelTypes.topLoad,"load",t)];break;case"video":case"audio":e._wrapperState.listeners=[];for(var n in z)z.hasOwnProperty(n)&&e._wrapperState.listeners.push(E.trapBubbledEvent(_.topLevelTypes[n],z[n],t));break;case"img":e._wrapperState.listeners=[E.trapBubbledEvent(_.topLevelTypes.topError,"error",t),E.trapBubbledEvent(_.topLevelTypes.topLoad,"load",t)];break;case"form":e._wrapperState.listeners=[E.trapBubbledEvent(_.topLevelTypes.topReset,"reset",t),E.trapBubbledEvent(_.topLevelTypes.topSubmit,"submit",t)]}}function d(){M.mountReadyWrapper(this)}function f(){P.postUpdateWrapper(this)}function h(e){Z.call($,e)||(Q.test(e)?void 0:A(!1),$[e]=!0)}function v(e,t){return e.indexOf("-")>=0||null!=t.is}function m(e){h(e),this._tag=e.toLowerCase(),this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._rootNodeID=null,this._wrapperState=null,this._topLevelWrapper=null,this._nodeWithLegacyProperties=null}var g=e(2),y=e(5),C=e(10),b=e(11),_=e(15),E=e(26),x=e(31),D=e(36),M=e(41),N=e(42),P=e(43),w=e(47),R=e(63),I=e(64),S=e(69),T=e(80),k=e(23),O=e(104),A=e(141),L=(e(116),e(145)),U=e(121),F=e(122),B=(e(148),e(125),e(150),E.deleteListener),V=E.listenTo,j=E.registrationNameModules,W={string:!0,number:!0},K=L({style:null}),H=1,q=!1;try{Object.defineProperty({},"test",{get:function(){}}),q=!0}catch(Y){}var z={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"},G={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},X={listing:!0,pre:!0,textarea:!0},Q=(k({menuitem:!0},G),/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/),$={},Z={}.hasOwnProperty;m.displayName="ReactDOMComponent",m.Mixin={construct:function(e){this._currentElement=e},mountComponent:function(e,t,n){this._rootNodeID=e;var r=this._currentElement.props;switch(this._tag){case"iframe":case"img":case"form":case"video":case"audio":this._wrapperState={listeners:null},t.getReactMountReady().enqueue(p,this);break;case"button":r=D.getNativeProps(this,r,n);break;case"input":M.mountWrapper(this,r,n),r=M.getNativeProps(this,r,n);break;case"option":N.mountWrapper(this,r,n),r=N.getNativeProps(this,r,n);break;case"select":P.mountWrapper(this,r,n),r=P.getNativeProps(this,r,n),n=P.processChildContext(this,r,n);break;case"textarea":w.mountWrapper(this,r,n),r=w.getNativeProps(this,r,n)}s(this,r);var o;if(t.useCreateElement){var a=n[R.ownerDocumentContextKey],i=a.createElement(this._currentElement.type);b.setAttributeForID(i,this._rootNodeID),R.getID(i),this._updateDOMProperties({},r,t,i),this._createInitialChildren(t,r,n,i),o=i}else{var u=this._createOpenTagMarkupAndPutListeners(t,r),l=this._createContentMarkup(t,r,n);o=!l&&G[this._tag]?u+"/>":u+">"+l+"</"+this._currentElement.type+">"}switch(this._tag){case"input":t.getReactMountReady().enqueue(d,this);case"button":case"select":case"textarea":r.autoFocus&&t.getReactMountReady().enqueue(g.focusDOMComponent,this)}return o},_createOpenTagMarkupAndPutListeners:function(e,t){var n="<"+this._currentElement.type;for(var r in t)if(t.hasOwnProperty(r)){var o=t[r];if(null!=o)if(j.hasOwnProperty(r))o&&l(this._rootNodeID,r,o,e);else{r===K&&(o&&(o=this._previousStyleCopy=k({},t.style)),o=y.createMarkupForStyles(o));var a=null;a=null!=this._tag&&v(this._tag,t)?b.createMarkupForCustomAttribute(r,o):b.createMarkupForProperty(r,o),a&&(n+=" "+a)}}if(e.renderToStaticMarkup)return n;var i=b.createMarkupForID(this._rootNodeID);return n+" "+i},_createContentMarkup:function(e,t,n){var r="",o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&(r=o.__html);else{var a=W[typeof t.children]?t.children:null,i=null!=a?null:t.children;if(null!=a)r=O(a);else if(null!=i){var u=this.mountChildren(i,e,n);r=u.join("")}}return X[this._tag]&&"\n"===r.charAt(0)?"\n"+r:r},_createInitialChildren:function(e,t,n,r){var o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&U(r,o.__html);else{var a=W[typeof t.children]?t.children:null,i=null!=a?null:t.children;if(null!=a)F(r,a);else if(null!=i)for(var u=this.mountChildren(i,e,n),s=0;s<u.length;s++)r.appendChild(u[s])}},receiveComponent:function(e,t,n){var r=this._currentElement;this._currentElement=e,this.updateComponent(t,r,e,n)},updateComponent:function(e,t,n,r){var o=t.props,a=this._currentElement.props;switch(this._tag){case"button":o=D.getNativeProps(this,o),a=D.getNativeProps(this,a);break;case"input":M.updateWrapper(this),o=M.getNativeProps(this,o),a=M.getNativeProps(this,a);break;case"option":o=N.getNativeProps(this,o),a=N.getNativeProps(this,a);break;case"select":o=P.getNativeProps(this,o),a=P.getNativeProps(this,a);break;case"textarea":w.updateWrapper(this),o=w.getNativeProps(this,o),a=w.getNativeProps(this,a)}s(this,a),this._updateDOMProperties(o,a,e,null),this._updateDOMChildren(o,a,e,r),!q&&this._nodeWithLegacyProperties&&(this._nodeWithLegacyProperties.props=a),"select"===this._tag&&e.getReactMountReady().enqueue(f,this)},_updateDOMProperties:function(e,t,n,r){var o,a,i;for(o in e)if(!t.hasOwnProperty(o)&&e.hasOwnProperty(o))if(o===K){var u=this._previousStyleCopy;for(a in u)u.hasOwnProperty(a)&&(i=i||{},i[a]="");this._previousStyleCopy=null}else j.hasOwnProperty(o)?e[o]&&B(this._rootNodeID,o):(C.properties[o]||C.isCustomAttribute(o))&&(r||(r=R.getNode(this._rootNodeID)),b.deleteValueForProperty(r,o));for(o in t){var s=t[o],c=o===K?this._previousStyleCopy:e[o];if(t.hasOwnProperty(o)&&s!==c)if(o===K)if(s?s=this._previousStyleCopy=k({},s):this._previousStyleCopy=null,c){for(a in c)!c.hasOwnProperty(a)||s&&s.hasOwnProperty(a)||(i=i||{},i[a]="");for(a in s)s.hasOwnProperty(a)&&c[a]!==s[a]&&(i=i||{},i[a]=s[a])}else i=s;else j.hasOwnProperty(o)?s?l(this._rootNodeID,o,s,n):c&&B(this._rootNodeID,o):v(this._tag,t)?(r||(r=R.getNode(this._rootNodeID)),b.setValueForAttribute(r,o,s)):(C.properties[o]||C.isCustomAttribute(o))&&(r||(r=R.getNode(this._rootNodeID)),null!=s?b.setValueForProperty(r,o,s):b.deleteValueForProperty(r,o))}i&&(r||(r=R.getNode(this._rootNodeID)),y.setValueForStyles(r,i))},_updateDOMChildren:function(e,t,n,r){var o=W[typeof e.children]?e.children:null,a=W[typeof t.children]?t.children:null,i=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,u=t.dangerouslySetInnerHTML&&t.dangerouslySetInnerHTML.__html,s=null!=o?null:e.children,l=null!=a?null:t.children,c=null!=o||null!=i,p=null!=a||null!=u;null!=s&&null==l?this.updateChildren(null,n,r):c&&!p&&this.updateTextContent(""),null!=a?o!==a&&this.updateTextContent(""+a):null!=u?i!==u&&this.updateMarkup(""+u):null!=l&&this.updateChildren(l,n,r)},unmountComponent:function(){switch(this._tag){case"iframe":case"img":case"form":case"video":case"audio":var e=this._wrapperState.listeners;if(e)for(var t=0;t<e.length;t++)e[t].remove();break;case"input":M.unmountWrapper(this);break;case"html":case"head":case"body":A(!1)}if(this.unmountChildren(),E.deleteAllListeners(this._rootNodeID),x.unmountIDFromEnvironment(this._rootNodeID),this._rootNodeID=null,this._wrapperState=null,this._nodeWithLegacyProperties){var n=this._nodeWithLegacyProperties;n._reactInternalComponent=null,this._nodeWithLegacyProperties=null}},getPublicInstance:function(){if(!this._nodeWithLegacyProperties){var e=R.getNode(this._rootNodeID);e._reactInternalComponent=this,e.getDOMNode=r,e.isMounted=o,e.setState=a,e.replaceState=a,e.forceUpdate=a,e.setProps=i,e.replaceProps=u,e.props=this._currentElement.props,this._nodeWithLegacyProperties=e}return this._nodeWithLegacyProperties}},S.measureMethods(m,"ReactDOMComponent",{mountComponent:"mountComponent",updateComponent:"updateComponent"}),k(m.prototype,m.Mixin,I.Mixin),t.exports=m},{10:10,104:104,11:11,116:116,121:121,122:122,125:125,141:141,145:145,148:148,15:15,150:150,2:2,23:23,26:26,31:31,36:36,41:41,42:42,43:43,47:47,5:5,63:63,64:64,69:69,80:80}],38:[function(e,t,n){"use strict";function r(e){return o.createFactory(e)}var o=e(50),a=(e(51),e(146)),i=a({a:"a",abbr:"abbr",address:"address",area:"area",article:"article",aside:"aside",audio:"audio",b:"b",base:"base",bdi:"bdi",bdo:"bdo",big:"big",blockquote:"blockquote",body:"body",br:"br",button:"button",canvas:"canvas",caption:"caption",cite:"cite",code:"code",col:"col",colgroup:"colgroup",data:"data",datalist:"datalist",dd:"dd",del:"del",details:"details",dfn:"dfn",dialog:"dialog",div:"div",dl:"dl",dt:"dt",em:"em",embed:"embed",fieldset:"fieldset",figcaption:"figcaption",figure:"figure",footer:"footer",form:"form",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",head:"head",header:"header",hgroup:"hgroup",hr:"hr",html:"html",i:"i",iframe:"iframe",img:"img",input:"input",ins:"ins",kbd:"kbd",keygen:"keygen",label:"label",legend:"legend",li:"li",link:"link",main:"main",map:"map",mark:"mark",menu:"menu",menuitem:"menuitem",meta:"meta",meter:"meter",nav:"nav",noscript:"noscript",object:"object",ol:"ol",optgroup:"optgroup",option:"option",output:"output",p:"p",param:"param",picture:"picture",pre:"pre",progress:"progress",q:"q",rp:"rp",rt:"rt",ruby:"ruby",s:"s",samp:"samp",script:"script",section:"section",select:"select",small:"small",source:"source",span:"span",strong:"strong",style:"style",sub:"sub",summary:"summary",sup:"sup",table:"table",tbody:"tbody",td:"td",textarea:"textarea",tfoot:"tfoot",th:"th",thead:"thead",time:"time",title:"title",tr:"tr",track:"track",u:"u",ul:"ul","var":"var",video:"video",wbr:"wbr",circle:"circle",clipPath:"clipPath",defs:"defs",ellipse:"ellipse",g:"g",image:"image",line:"line",linearGradient:"linearGradient",mask:"mask",path:"path",pattern:"pattern",polygon:"polygon",polyline:"polyline",radialGradient:"radialGradient",rect:"rect",stop:"stop",svg:"svg",text:"text",tspan:"tspan"},r);t.exports=i},{146:146,50:50,51:51}],39:[function(e,t,n){"use strict";var r={useCreateElement:!1};t.exports=r},{}],40:[function(e,t,n){"use strict";var r=e(9),o=e(11),a=e(63),i=e(69),u=e(141),s={dangerouslySetInnerHTML:"`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.",style:"`style` must be set using `updateStylesByID()`."},l={updatePropertyByID:function(e,t,n){var r=a.getNode(e);s.hasOwnProperty(t)?u(!1):void 0,null!=n?o.setValueForProperty(r,t,n):o.deleteValueForProperty(r,t)},dangerouslyReplaceNodeWithMarkupByID:function(e,t){var n=a.getNode(e);r.dangerouslyReplaceNodeWithMarkup(n,t)},dangerouslyProcessChildrenUpdates:function(e,t){for(var n=0;n<e.length;n++)e[n].parentNode=a.getNode(e[n].parentID);r.processUpdates(e,t)}};i.measureMethods(l,"ReactDOMIDOperations",{dangerouslyReplaceNodeWithMarkupByID:"dangerouslyReplaceNodeWithMarkupByID",dangerouslyProcessChildrenUpdates:"dangerouslyProcessChildrenUpdates"}),t.exports=l},{11:11,141:141,63:63,69:69,9:9}],41:[function(e,t,n){"use strict";function r(){this._rootNodeID&&d.updateWrapper(this)}function o(e){var t=this._currentElement.props,n=i.executeOnChange(t,e);s.asap(r,this);var o=t.name;if("radio"===t.type&&null!=o){for(var a=u.getNode(this._rootNodeID),l=a;l.parentNode;)l=l.parentNode;for(var d=l.querySelectorAll("input[name="+JSON.stringify(""+o)+'][type="radio"]'),f=0;f<d.length;f++){var h=d[f];if(h!==a&&h.form===a.form){var v=u.getID(h);v?void 0:c(!1);var m=p[v];m?void 0:c(!1),s.asap(r,m)}}}return n}var a=e(40),i=e(22),u=e(63),s=e(81),l=e(23),c=e(141),p={},d={getNativeProps:function(e,t,n){var r=i.getValue(t),o=i.getChecked(t),a=l({},t,{defaultChecked:void 0,defaultValue:void 0,value:null!=r?r:e._wrapperState.initialValue,checked:null!=o?o:e._wrapperState.initialChecked,onChange:e._wrapperState.onChange});return a},mountWrapper:function(e,t){var n=t.defaultValue;e._wrapperState={initialChecked:t.defaultChecked||!1,initialValue:null!=n?n:null,onChange:o.bind(e)}},mountReadyWrapper:function(e){p[e._rootNodeID]=e},unmountWrapper:function(e){delete p[e._rootNodeID]},updateWrapper:function(e){var t=e._currentElement.props,n=t.checked;null!=n&&a.updatePropertyByID(e._rootNodeID,"checked",n||!1);var r=i.getValue(t);null!=r&&a.updatePropertyByID(e._rootNodeID,"value",""+r)}};t.exports=d},{141:141,22:22,23:23,40:40,63:63,81:81}],42:[function(e,t,n){"use strict";var r=e(28),o=e(43),a=e(23),i=(e(150),o.valueContextKey),u={mountWrapper:function(e,t,n){var r=n[i],o=null;if(null!=r)if(o=!1,Array.isArray(r)){for(var a=0;a<r.length;a++)if(""+r[a]==""+t.value){o=!0;break}}else o=""+r==""+t.value;e._wrapperState={selected:o}},getNativeProps:function(e,t,n){var o=a({selected:void 0,children:void 0},t);null!=e._wrapperState.selected&&(o.selected=e._wrapperState.selected);var i="";return r.forEach(t.children,function(e){null!=e&&("string"==typeof e||"number"==typeof e)&&(i+=e)}),o.children=i,o}};t.exports=u},{150:150,23:23,28:28,43:43}],43:[function(e,t,n){"use strict";function r(){if(this._rootNodeID&&this._wrapperState.pendingUpdate){this._wrapperState.pendingUpdate=!1;var e=this._currentElement.props,t=i.getValue(e);null!=t&&o(this,e,t)}}function o(e,t,n){var r,o,a=u.getNode(e._rootNodeID).options;if(t){for(r={},o=0;o<n.length;o++)r[""+n[o]]=!0;for(o=0;o<a.length;o++){var i=r.hasOwnProperty(a[o].value);a[o].selected!==i&&(a[o].selected=i)}}else{for(r=""+n,o=0;o<a.length;o++)if(a[o].value===r)return void(a[o].selected=!0);a.length&&(a[0].selected=!0)}}function a(e){var t=this._currentElement.props,n=i.executeOnChange(t,e);return this._wrapperState.pendingUpdate=!0,s.asap(r,this),n}var i=e(22),u=e(63),s=e(81),l=e(23),c=(e(150),"__ReactDOMSelect_value$"+Math.random().toString(36).slice(2)),p={valueContextKey:c,getNativeProps:function(e,t,n){return l({},t,{onChange:e._wrapperState.onChange,value:void 0})},mountWrapper:function(e,t){var n=i.getValue(t);e._wrapperState={pendingUpdate:!1,initialValue:null!=n?n:t.defaultValue,onChange:a.bind(e),wasMultiple:Boolean(t.multiple)}},processChildContext:function(e,t,n){var r=l({},n);return r[c]=e._wrapperState.initialValue,r},postUpdateWrapper:function(e){var t=e._currentElement.props;e._wrapperState.initialValue=void 0;var n=e._wrapperState.wasMultiple; -e._wrapperState.wasMultiple=Boolean(t.multiple);var r=i.getValue(t);null!=r?(e._wrapperState.pendingUpdate=!1,o(e,Boolean(t.multiple),r)):n!==Boolean(t.multiple)&&(null!=t.defaultValue?o(e,Boolean(t.multiple),t.defaultValue):o(e,Boolean(t.multiple),t.multiple?[]:""))}};t.exports=p},{150:150,22:22,23:23,63:63,81:81}],44:[function(e,t,n){"use strict";function r(e,t,n,r){return e===n&&t===r}function o(e){var t=document.selection,n=t.createRange(),r=n.text.length,o=n.duplicate();o.moveToElementText(e),o.setEndPoint("EndToStart",n);var a=o.text.length,i=a+r;return{start:a,end:i}}function a(e){var t=window.getSelection&&window.getSelection();if(!t||0===t.rangeCount)return null;var n=t.anchorNode,o=t.anchorOffset,a=t.focusNode,i=t.focusOffset,u=t.getRangeAt(0);try{u.startContainer.nodeType,u.endContainer.nodeType}catch(s){return null}var l=r(t.anchorNode,t.anchorOffset,t.focusNode,t.focusOffset),c=l?0:u.toString().length,p=u.cloneRange();p.selectNodeContents(e),p.setEnd(u.startContainer,u.startOffset);var d=r(p.startContainer,p.startOffset,p.endContainer,p.endOffset),f=d?0:p.toString().length,h=f+c,v=document.createRange();v.setStart(n,o),v.setEnd(a,i);var m=v.collapsed;return{start:m?h:f,end:m?f:h}}function i(e,t){var n,r,o=document.selection.createRange().duplicate();"undefined"==typeof t.end?(n=t.start,r=n):t.start>t.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}function u(e,t){if(window.getSelection){var n=window.getSelection(),r=e[c()].length,o=Math.min(t.start,r),a="undefined"==typeof t.end?o:Math.min(t.end,r);if(!n.extend&&o>a){var i=a;a=o,o=i}var u=l(e,o),s=l(e,a);if(u&&s){var p=document.createRange();p.setStart(u.node,u.offset),n.removeAllRanges(),o>a?(n.addRange(p),n.extend(s.node,s.offset)):(p.setEnd(s.node,s.offset),n.addRange(p))}}}var s=e(127),l=e(113),c=e(114),p=s.canUseDOM&&"selection"in document&&!("getSelection"in window),d={getOffsets:p?o:a,setOffsets:p?i:u};t.exports=d},{113:113,114:114,127:127}],45:[function(e,t,n){"use strict";var r=e(49),o=e(78),a=e(82);r.inject();var i={renderToString:o.renderToString,renderToStaticMarkup:o.renderToStaticMarkup,version:a};t.exports=i},{49:49,78:78,82:82}],46:[function(e,t,n){"use strict";var r=e(9),o=e(11),a=e(31),i=e(63),u=e(23),s=e(104),l=e(122),c=(e(125),function(e){});u(c.prototype,{construct:function(e){this._currentElement=e,this._stringText=""+e,this._rootNodeID=null,this._mountIndex=0},mountComponent:function(e,t,n){if(this._rootNodeID=e,t.useCreateElement){var r=n[i.ownerDocumentContextKey],a=r.createElement("span");return o.setAttributeForID(a,e),i.getID(a),l(a,this._stringText),a}var u=s(this._stringText);return t.renderToStaticMarkup?u:"<span "+o.createMarkupForID(e)+">"+u+"</span>"},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;if(n!==this._stringText){this._stringText=n;var o=i.getNode(this._rootNodeID);r.updateTextContent(o,n)}}},unmountComponent:function(){a.unmountIDFromEnvironment(this._rootNodeID)}}),t.exports=c},{104:104,11:11,122:122,125:125,23:23,31:31,63:63,9:9}],47:[function(e,t,n){"use strict";function r(){this._rootNodeID&&c.updateWrapper(this)}function o(e){var t=this._currentElement.props,n=a.executeOnChange(t,e);return u.asap(r,this),n}var a=e(22),i=e(40),u=e(81),s=e(23),l=e(141),c=(e(150),{getNativeProps:function(e,t,n){null!=t.dangerouslySetInnerHTML?l(!1):void 0;var r=s({},t,{defaultValue:void 0,value:void 0,children:e._wrapperState.initialValue,onChange:e._wrapperState.onChange});return r},mountWrapper:function(e,t){var n=t.defaultValue,r=t.children;null!=r&&(null!=n?l(!1):void 0,Array.isArray(r)&&(r.length<=1?void 0:l(!1),r=r[0]),n=""+r),null==n&&(n="");var i=a.getValue(t);e._wrapperState={initialValue:""+(null!=i?i:n),onChange:o.bind(e)}},updateWrapper:function(e){var t=e._currentElement.props,n=a.getValue(t);null!=n&&i.updatePropertyByID(e._rootNodeID,"value",""+n)}});t.exports=c},{141:141,150:150,22:22,23:23,40:40,81:81}],48:[function(e,t,n){"use strict";function r(){this.reinitializeTransaction()}var o=e(81),a=e(98),i=e(23),u=e(133),s={initialize:u,close:function(){d.isBatchingUpdates=!1}},l={initialize:u,close:o.flushBatchedUpdates.bind(o)},c=[l,s];i(r.prototype,a.Mixin,{getTransactionWrappers:function(){return c}});var p=new r,d={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o,a){var i=d.isBatchingUpdates;d.isBatchingUpdates=!0,i?e(t,n,r,o,a):p.perform(e,null,t,n,r,o,a)}};t.exports=d},{133:133,23:23,81:81,98:98}],49:[function(e,t,n){"use strict";function r(){M||(M=!0,g.EventEmitter.injectReactEventListener(m),g.EventPluginHub.injectEventPluginOrder(u),g.EventPluginHub.injectInstanceHandle(y),g.EventPluginHub.injectMount(C),g.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:x,EnterLeaveEventPlugin:s,ChangeEventPlugin:a,SelectEventPlugin:_,BeforeInputEventPlugin:o}),g.NativeComponent.injectGenericComponentClass(h),g.NativeComponent.injectTextComponentClass(v),g.Class.injectMixin(p),g.DOMProperty.injectDOMPropertyConfig(c),g.DOMProperty.injectDOMPropertyConfig(D),g.EmptyComponent.injectEmptyComponent("noscript"),g.Updates.injectReconcileTransaction(b),g.Updates.injectBatchingStrategy(f),g.RootIndex.injectCreateReactRootIndex(l.canUseDOM?i.createReactRootIndex:E.createReactRootIndex),g.Component.injectEnvironment(d))}var o=e(3),a=e(7),i=e(8),u=e(13),s=e(14),l=e(127),c=e(21),p=e(25),d=e(31),f=e(48),h=e(37),v=e(46),m=e(56),g=e(57),y=e(59),C=e(63),b=e(73),_=e(84),E=e(85),x=e(86),D=e(83),M=!1;t.exports={inject:r}},{127:127,13:13,14:14,21:21,25:25,3:3,31:31,37:37,46:46,48:48,56:56,57:57,59:59,63:63,7:7,73:73,8:8,83:83,84:84,85:85,86:86}],50:[function(e,t,n){"use strict";var r=e(34),o=e(23),a="function"==typeof Symbol&&Symbol["for"]&&Symbol["for"]("react.element")||60103,i={key:!0,ref:!0,__self:!0,__source:!0},u=function(e,t,n,r,o,i,u){var s={$$typeof:a,type:e,key:t,ref:n,props:u,_owner:i};return s};u.createElement=function(e,t,n){var o,a={},s=null,l=null,c=null,p=null;if(null!=t){l=void 0===t.ref?null:t.ref,s=void 0===t.key?null:""+t.key,c=void 0===t.__self?null:t.__self,p=void 0===t.__source?null:t.__source;for(o in t)t.hasOwnProperty(o)&&!i.hasOwnProperty(o)&&(a[o]=t[o])}var d=arguments.length-2;if(1===d)a.children=n;else if(d>1){for(var f=Array(d),h=0;d>h;h++)f[h]=arguments[h+2];a.children=f}if(e&&e.defaultProps){var v=e.defaultProps;for(o in v)"undefined"==typeof a[o]&&(a[o]=v[o])}return u(e,s,l,c,p,r.current,a)},u.createFactory=function(e){var t=u.createElement.bind(null,e);return t.type=e,t},u.cloneAndReplaceKey=function(e,t){var n=u(e.type,t,e.ref,e._self,e._source,e._owner,e.props);return n},u.cloneAndReplaceProps=function(e,t){var n=u(e.type,e.key,e.ref,e._self,e._source,e._owner,t);return n},u.cloneElement=function(e,t,n){var a,s=o({},e.props),l=e.key,c=e.ref,p=e._self,d=e._source,f=e._owner;if(null!=t){void 0!==t.ref&&(c=t.ref,f=r.current),void 0!==t.key&&(l=""+t.key);for(a in t)t.hasOwnProperty(a)&&!i.hasOwnProperty(a)&&(s[a]=t[a])}var h=arguments.length-2;if(1===h)s.children=n;else if(h>1){for(var v=Array(h),m=0;h>m;m++)v[m]=arguments[m+2];s.children=v}return u(e.type,l,c,p,d,f,s)},u.isValidElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===a},t.exports=u},{23:23,34:34}],51:[function(e,t,n){"use strict";function r(){if(p.current){var e=p.current.getName();if(e)return" Check the render method of `"+e+"`."}return""}function o(e,t){e._store&&!e._store.validated&&null==e.key&&(e._store.validated=!0,a("uniqueKey",e,t))}function a(e,t,n){var o=r();if(!o){var a="string"==typeof n?n:n.displayName||n.name;a&&(o=" Check the top-level render call using <"+a+">.")}var i=h[e]||(h[e]={});if(i[o])return null;i[o]=!0;var u={parentOrOwner:o,url:" See https://fb.me/react-warning-keys for more information.",childOwner:null};return t&&t._owner&&t._owner!==p.current&&(u.childOwner=" It was passed a child from "+t._owner.getName()+"."),u}function i(e,t){if("object"==typeof e)if(Array.isArray(e))for(var n=0;n<e.length;n++){var r=e[n];l.isValidElement(r)&&o(r,t)}else if(l.isValidElement(e))e._store&&(e._store.validated=!0);else if(e){var a=d(e);if(a&&a!==e.entries)for(var i,u=a.call(e);!(i=u.next()).done;)l.isValidElement(i.value)&&o(i.value,t)}}function u(e,t,n,o){for(var a in t)if(t.hasOwnProperty(a)){var i;try{"function"!=typeof t[a]?f(!1):void 0,i=t[a](n,a,e,o)}catch(u){i=u}i instanceof Error&&!(i.message in v)&&(v[i.message]=!0,r())}}function s(e){var t=e.type;if("function"==typeof t){var n=t.displayName||t.name;t.propTypes&&u(n,t.propTypes,e.props,c.prop),"function"==typeof t.getDefaultProps}}var l=e(50),c=e(71),p=(e(70),e(34)),d=e(112),f=e(141),h=(e(150),{}),v={},m={createElement:function(e,t,n){var r="string"==typeof e||"function"==typeof e,o=l.createElement.apply(this,arguments);if(null==o)return o;if(r)for(var a=2;a<arguments.length;a++)i(arguments[a],e);return s(o),o},createFactory:function(e){var t=m.createElement.bind(null,e);return t.type=e,t},cloneElement:function(e,t,n){for(var r=l.cloneElement.apply(this,arguments),o=2;o<arguments.length;o++)i(arguments[o],r.type);return s(r),r}};t.exports=m},{112:112,141:141,150:150,34:34,50:50,70:70,71:71}],52:[function(e,t,n){"use strict";var r,o=e(50),a=e(53),i=e(74),u=e(23),s={injectEmptyComponent:function(e){r=o.createElement(e)}},l=function(e){this._currentElement=null,this._rootNodeID=null,this._renderedComponent=e(r)};u(l.prototype,{construct:function(e){},mountComponent:function(e,t,n){return a.registerNullComponentID(e),this._rootNodeID=e,i.mountComponent(this._renderedComponent,e,t,n)},receiveComponent:function(){},unmountComponent:function(e,t,n){i.unmountComponent(this._renderedComponent),a.deregisterNullComponentID(this._rootNodeID),this._rootNodeID=null,this._renderedComponent=null}}),l.injection=s,t.exports=l},{23:23,50:50,53:53,74:74}],53:[function(e,t,n){"use strict";function r(e){return!!i[e]}function o(e){i[e]=!0}function a(e){delete i[e]}var i={},u={isNullComponentID:r,registerNullComponentID:o,deregisterNullComponentID:a};t.exports=u},{}],54:[function(e,t,n){"use strict";function r(e,t,n,r){try{return t(n,r)}catch(a){return void(null===o&&(o=a))}}var o=null,a={invokeGuardedCallback:r,invokeGuardedCallbackWithCatch:r,rethrowCaughtError:function(){if(o){var e=o;throw o=null,e}}};t.exports=a},{}],55:[function(e,t,n){"use strict";function r(e){o.enqueueEvents(e),o.processEventQueue(!1)}var o=e(16),a={handleTopLevel:function(e,t,n,a,i){var u=o.extractEvents(e,t,n,a,i);r(u)}};t.exports=a},{16:16}],56:[function(e,t,n){"use strict";function r(e){var t=d.getID(e),n=p.getReactRootIDFromNodeID(t),r=d.findReactContainerForID(n),o=d.getFirstReactDOM(r);return o}function o(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function a(e){i(e)}function i(e){for(var t=d.getFirstReactDOM(v(e.nativeEvent))||window,n=t;n;)e.ancestors.push(n),n=r(n);for(var o=0;o<e.ancestors.length;o++){t=e.ancestors[o];var a=d.getID(t)||"";g._handleTopLevel(e.topLevelType,t,a,e.nativeEvent,v(e.nativeEvent))}}function u(e){var t=m(window);e(t)}var s=e(126),l=e(127),c=e(24),p=e(59),d=e(63),f=e(81),h=e(23),v=e(111),m=e(138);h(o.prototype,{destructor:function(){this.topLevelType=null,this.nativeEvent=null,this.ancestors.length=0}}),c.addPoolingTo(o,c.twoArgumentPooler);var g={_enabled:!0,_handleTopLevel:null,WINDOW_HANDLE:l.canUseDOM?window:null,setHandleTopLevel:function(e){g._handleTopLevel=e},setEnabled:function(e){g._enabled=!!e},isEnabled:function(){return g._enabled},trapBubbledEvent:function(e,t,n){var r=n;return r?s.listen(r,t,g.dispatchEvent.bind(null,e)):null},trapCapturedEvent:function(e,t,n){var r=n;return r?s.capture(r,t,g.dispatchEvent.bind(null,e)):null},monitorScrollValue:function(e){var t=u.bind(null,e);s.listen(window,"scroll",t)},dispatchEvent:function(e,t){if(g._enabled){var n=o.getPooled(e,t);try{f.batchedUpdates(a,n)}finally{o.release(n)}}}};t.exports=g},{111:111,126:126,127:127,138:138,23:23,24:24,59:59,63:63,81:81}],57:[function(e,t,n){"use strict";var r=e(10),o=e(16),a=e(32),i=e(29),u=e(52),s=e(26),l=e(66),c=e(69),p=e(76),d=e(81),f={Component:a.injection,Class:i.injection,DOMProperty:r.injection,EmptyComponent:u.injection,EventPluginHub:o.injection,EventEmitter:s.injection,NativeComponent:l.injection,Perf:c.injection,RootIndex:p.injection,Updates:d.injection};t.exports=f},{10:10,16:16,26:26,29:29,32:32,52:52,66:66,69:69,76:76,81:81}],58:[function(e,t,n){"use strict";function r(e){return a(document.documentElement,e)}var o=e(44),a=e(130),i=e(135),u=e(136),s={hasSelectionCapabilities:function(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&"text"===e.type||"textarea"===t||"true"===e.contentEditable)},getSelectionInformation:function(){var e=u();return{focusedElem:e,selectionRange:s.hasSelectionCapabilities(e)?s.getSelection(e):null}},restoreSelection:function(e){var t=u(),n=e.focusedElem,o=e.selectionRange;t!==n&&r(n)&&(s.hasSelectionCapabilities(n)&&s.setSelection(n,o),i(n))},getSelection:function(e){var t;if("selectionStart"in e)t={start:e.selectionStart,end:e.selectionEnd};else if(document.selection&&e.nodeName&&"input"===e.nodeName.toLowerCase()){var n=document.selection.createRange();n.parentElement()===e&&(t={start:-n.moveStart("character",-e.value.length),end:-n.moveEnd("character",-e.value.length)})}else t=o.getOffsets(e);return t||{start:0,end:0}},setSelection:function(e,t){var n=t.start,r=t.end;if("undefined"==typeof r&&(r=n),"selectionStart"in e)e.selectionStart=n,e.selectionEnd=Math.min(r,e.value.length);else if(document.selection&&e.nodeName&&"input"===e.nodeName.toLowerCase()){var a=e.createTextRange();a.collapse(!0),a.moveStart("character",n),a.moveEnd("character",r-n),a.select()}else o.setOffsets(e,t)}};t.exports=s},{130:130,135:135,136:136,44:44}],59:[function(e,t,n){"use strict";function r(e){return f+e.toString(36)}function o(e,t){return e.charAt(t)===f||t===e.length}function a(e){return""===e||e.charAt(0)===f&&e.charAt(e.length-1)!==f}function i(e,t){return 0===t.indexOf(e)&&o(t,e.length)}function u(e){return e?e.substr(0,e.lastIndexOf(f)):""}function s(e,t){if(a(e)&&a(t)?void 0:d(!1),i(e,t)?void 0:d(!1),e===t)return e;var n,r=e.length+h;for(n=r;n<t.length&&!o(t,n);n++);return t.substr(0,n)}function l(e,t){var n=Math.min(e.length,t.length);if(0===n)return"";for(var r=0,i=0;n>=i;i++)if(o(e,i)&&o(t,i))r=i;else if(e.charAt(i)!==t.charAt(i))break;var u=e.substr(0,r);return a(u)?void 0:d(!1),u}function c(e,t,n,r,o,a){e=e||"",t=t||"",e===t?d(!1):void 0;var l=i(t,e);l||i(e,t)?void 0:d(!1);for(var c=0,p=l?u:s,f=e;;f=p(f,t)){var h;if(o&&f===e||a&&f===t||(h=n(f,l,r)),h===!1||f===t)break;c++<v?void 0:d(!1)}}var p=e(76),d=e(141),f=".",h=f.length,v=1e4,m={createReactRootID:function(){return r(p.createReactRootIndex())},createReactID:function(e,t){return e+t},getReactRootIDFromNodeID:function(e){if(e&&e.charAt(0)===f&&e.length>1){var t=e.indexOf(f,1);return t>-1?e.substr(0,t):e}return null},traverseEnterLeave:function(e,t,n,r,o){var a=l(e,t);a!==e&&c(e,a,n,r,!1,!0),a!==t&&c(a,t,n,o,!0,!1)},traverseTwoPhase:function(e,t,n){e&&(c("",e,t,n,!0,!1),c(e,"",t,n,!1,!0))},traverseTwoPhaseSkipTarget:function(e,t,n){e&&(c("",e,t,n,!0,!0),c(e,"",t,n,!0,!0))},traverseAncestors:function(e,t,n){c("",e,t,n,!0,!1)},getFirstCommonAncestorID:l,_getNextDescendantID:s,isAncestorIDOf:i,SEPARATOR:f};t.exports=m},{141:141,76:76}],60:[function(e,t,n){"use strict";var r={remove:function(e){e._reactInternalInstance=void 0},get:function(e){return e._reactInternalInstance},has:function(e){return void 0!==e._reactInternalInstance},set:function(e,t){e._reactInternalInstance=t}};t.exports=r},{}],61:[function(e,t,n){"use strict";var r=e(28),o=e(30),a=e(29),i=e(38),u=e(50),s=(e(51),e(72)),l=e(82),c=e(23),p=e(118),d=u.createElement,f=u.createFactory,h=u.cloneElement,v={Children:{map:r.map,forEach:r.forEach,count:r.count,toArray:r.toArray,only:p},Component:o,createElement:d,cloneElement:h,isValidElement:u.isValidElement,PropTypes:s,createClass:a.createClass,createFactory:f,createMixin:function(e){return e},DOM:i,version:l,__spread:c};t.exports=v},{118:118,23:23,28:28,29:29,30:30,38:38,50:50,51:51,72:72,82:82}],62:[function(e,t,n){"use strict";var r=e(101),o=/\/?>/,a={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return e.replace(o," "+a.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(a.CHECKSUM_ATTR_NAME);n=n&&parseInt(n,10);var o=r(e);return o===n}};t.exports=a},{101:101}],63:[function(e,t,n){"use strict";function r(e,t){for(var n=Math.min(e.length,t.length),r=0;n>r;r++)if(e.charAt(r)!==t.charAt(r))return r;return e.length===t.length?-1:n}function o(e){return e?e.nodeType===W?e.documentElement:e.firstChild:null}function a(e){var t=o(e);return t&&Q.getID(t)}function i(e){var t=u(e);if(t)if(V.hasOwnProperty(t)){var n=V[t];n!==e&&(p(n,t)?L(!1):void 0,V[t]=e)}else V[t]=e;return t}function u(e){return e&&e.getAttribute&&e.getAttribute(B)||""}function s(e,t){var n=u(e);n!==t&&delete V[n],e.setAttribute(B,t),V[t]=e}function l(e){return V.hasOwnProperty(e)&&p(V[e],e)||(V[e]=Q.findReactNodeByID(e)),V[e]}function c(e){var t=N.get(e)._rootNodeID;return D.isNullComponentID(t)?null:(V.hasOwnProperty(t)&&p(V[t],t)||(V[t]=Q.findReactNodeByID(t)),V[t])}function p(e,t){if(e){u(e)!==t?L(!1):void 0;var n=Q.findReactContainerForID(t);if(n&&O(n,e))return!0}return!1}function d(e){delete V[e]}function f(e){var t=V[e];return t&&p(t,e)?void(G=t):!1}function h(e){G=null,M.traverseAncestors(e,f);var t=G;return G=null,t}function v(e,t,n,r,o,a){E.useCreateElement&&(a=T({},a),n.nodeType===W?a[H]=n:a[H]=n.ownerDocument);var i=R.mountComponent(e,t,r,a);e._renderedComponent._topLevelWrapper=e,Q._mountImageIntoNode(i,n,o,r)}function m(e,t,n,r,o){var a=S.ReactReconcileTransaction.getPooled(r);a.perform(v,null,e,t,n,a,r,o),S.ReactReconcileTransaction.release(a)}function g(e,t){for(R.unmountComponent(e),t.nodeType===W&&(t=t.documentElement);t.lastChild;)t.removeChild(t.lastChild)}function y(e){var t=a(e);return t?t!==M.getReactRootIDFromNodeID(t):!1}function C(e){for(;e&&e.parentNode!==e;e=e.parentNode)if(1===e.nodeType){var t=u(e);if(t){var n,r=M.getReactRootIDFromNodeID(t),o=e;do if(n=u(o),o=o.parentNode,null==o)return null;while(n!==r);if(o===Y[r])return e}}return null}var b=e(10),_=e(26),E=(e(34),e(39)),x=e(50),D=e(53),M=e(59),N=e(60),P=e(62),w=e(69),R=e(74),I=e(80),S=e(81),T=e(23),k=e(134),O=e(130),A=e(115),L=e(141),U=e(121),F=e(123),B=(e(125),e(150),b.ID_ATTRIBUTE_NAME),V={},j=1,W=9,K=11,H="__ReactMount_ownerDocument$"+Math.random().toString(36).slice(2),q={},Y={},z=[],G=null,X=function(){};X.prototype.isReactComponent={},X.prototype.render=function(){return this.props};var Q={TopLevelWrapper:X,_instancesByReactRootID:q,scrollMonitor:function(e,t){t()},_updateRootComponent:function(e,t,n,r){return Q.scrollMonitor(n,function(){I.enqueueElementInternal(e,t),r&&I.enqueueCallbackInternal(e,r)}),e},_registerComponent:function(e,t){!t||t.nodeType!==j&&t.nodeType!==W&&t.nodeType!==K?L(!1):void 0,_.ensureScrollValueMonitoring();var n=Q.registerContainer(t);return q[n]=e,n},_renderNewRootComponent:function(e,t,n,r){var o=A(e,null),a=Q._registerComponent(o,t);return S.batchedUpdates(m,o,a,t,n,r),o},renderSubtreeIntoContainer:function(e,t,n,r){return null==e||null==e._reactInternalInstance?L(!1):void 0,Q._renderSubtreeIntoContainer(e,t,n,r)},_renderSubtreeIntoContainer:function(e,t,n,r){x.isValidElement(t)?void 0:L(!1);var i=new x(X,null,null,null,null,null,t),s=q[a(n)];if(s){var l=s._currentElement,c=l.props;if(F(c,t))return Q._updateRootComponent(s,i,n,r)._renderedComponent.getPublicInstance();Q.unmountComponentAtNode(n)}var p=o(n),d=p&&!!u(p),f=y(n),h=d&&!s&&!f,v=Q._renderNewRootComponent(i,n,h,null!=e?e._reactInternalInstance._processChildContext(e._reactInternalInstance._context):k)._renderedComponent.getPublicInstance();return r&&r.call(v),v},render:function(e,t,n){return Q._renderSubtreeIntoContainer(null,e,t,n)},registerContainer:function(e){var t=a(e);return t&&(t=M.getReactRootIDFromNodeID(t)),t||(t=M.createReactRootID()),Y[t]=e,t},unmountComponentAtNode:function(e){!e||e.nodeType!==j&&e.nodeType!==W&&e.nodeType!==K?L(!1):void 0;var t=a(e),n=q[t];if(!n){var r=(y(e),u(e));return r&&r===M.getReactRootIDFromNodeID(r),!1}return S.batchedUpdates(g,n,e),delete q[t],delete Y[t],!0},findReactContainerForID:function(e){var t=M.getReactRootIDFromNodeID(e),n=Y[t];return n},findReactNodeByID:function(e){var t=Q.findReactContainerForID(e);return Q.findComponentRoot(t,e)},getFirstReactDOM:function(e){return C(e)},findComponentRoot:function(e,t){var n=z,r=0,o=h(t)||e;for(n[0]=o.firstChild,n.length=1;r<n.length;){for(var a,i=n[r++];i;){var u=Q.getID(i);u?t===u?a=i:M.isAncestorIDOf(u,t)&&(n.length=r=0,n.push(i.firstChild)):n.push(i.firstChild),i=i.nextSibling}if(a)return n.length=0,a}n.length=0,L(!1)},_mountImageIntoNode:function(e,t,n,a){if(!t||t.nodeType!==j&&t.nodeType!==W&&t.nodeType!==K?L(!1):void 0,n){var i=o(t);if(P.canReuseMarkup(e,i))return;var u=i.getAttribute(P.CHECKSUM_ATTR_NAME);i.removeAttribute(P.CHECKSUM_ATTR_NAME);var s=i.outerHTML;i.setAttribute(P.CHECKSUM_ATTR_NAME,u);var l=e,c=r(l,s);" (client) "+l.substring(c-20,c+20)+"\n (server) "+s.substring(c-20,c+20),t.nodeType===W?L(!1):void 0}if(t.nodeType===W?L(!1):void 0,a.useCreateElement){for(;t.lastChild;)t.removeChild(t.lastChild);t.appendChild(e)}else U(t,e)},ownerDocumentContextKey:H,getReactRootID:a,getID:i,setID:s,getNode:l,getNodeFromInstance:c,isValid:p,purgeID:d};w.measureMethods(Q,"ReactMount",{_renderNewRootComponent:"_renderNewRootComponent",_mountImageIntoNode:"_mountImageIntoNode"}),t.exports=Q},{10:10,115:115,121:121,123:123,125:125,130:130,134:134,141:141,150:150,23:23,26:26,34:34,39:39,50:50,53:53,59:59,60:60,62:62,69:69,74:74,80:80,81:81}],64:[function(e,t,n){"use strict";function r(e,t,n){m.push({parentID:e,parentNode:null,type:p.INSERT_MARKUP,markupIndex:g.push(t)-1,content:null,fromIndex:null,toIndex:n})}function o(e,t,n){m.push({parentID:e,parentNode:null,type:p.MOVE_EXISTING,markupIndex:null,content:null,fromIndex:t,toIndex:n})}function a(e,t){m.push({parentID:e,parentNode:null,type:p.REMOVE_NODE,markupIndex:null,content:null,fromIndex:t,toIndex:null})}function i(e,t){m.push({parentID:e,parentNode:null,type:p.SET_MARKUP,markupIndex:null,content:t,fromIndex:null,toIndex:null})}function u(e,t){m.push({parentID:e,parentNode:null,type:p.TEXT_CONTENT,markupIndex:null,content:t,fromIndex:null,toIndex:null})}function s(){m.length&&(c.processChildrenUpdates(m,g),l())}function l(){m.length=0,g.length=0}var c=e(32),p=e(65),d=(e(34),e(74)),f=e(27),h=e(106),v=0,m=[],g=[],y={Mixin:{_reconcilerInstantiateChildren:function(e,t,n){return f.instantiateChildren(e,t,n)},_reconcilerUpdateChildren:function(e,t,n,r){var o;return o=h(t),f.updateChildren(e,o,n,r)},mountChildren:function(e,t,n){var r=this._reconcilerInstantiateChildren(e,t,n);this._renderedChildren=r;var o=[],a=0;for(var i in r)if(r.hasOwnProperty(i)){var u=r[i],s=this._rootNodeID+i,l=d.mountComponent(u,s,t,n);u._mountIndex=a++,o.push(l)}return o},updateTextContent:function(e){v++;var t=!0;try{var n=this._renderedChildren;f.unmountChildren(n);for(var r in n)n.hasOwnProperty(r)&&this._unmountChild(n[r]);this.setTextContent(e),t=!1}finally{v--,v||(t?l():s())}},updateMarkup:function(e){v++;var t=!0;try{var n=this._renderedChildren;f.unmountChildren(n);for(var r in n)n.hasOwnProperty(r)&&this._unmountChildByName(n[r],r);this.setMarkup(e),t=!1}finally{v--,v||(t?l():s())}},updateChildren:function(e,t,n){v++;var r=!0;try{this._updateChildren(e,t,n),r=!1}finally{v--,v||(r?l():s())}},_updateChildren:function(e,t,n){var r=this._renderedChildren,o=this._reconcilerUpdateChildren(r,e,t,n);if(this._renderedChildren=o,o||r){var a,i=0,u=0;for(a in o)if(o.hasOwnProperty(a)){var s=r&&r[a],l=o[a];s===l?(this.moveChild(s,u,i),i=Math.max(s._mountIndex,i),s._mountIndex=u):(s&&(i=Math.max(s._mountIndex,i),this._unmountChild(s)),this._mountChildByNameAtIndex(l,a,u,t,n)),u++}for(a in r)!r.hasOwnProperty(a)||o&&o.hasOwnProperty(a)||this._unmountChild(r[a])}},unmountChildren:function(){var e=this._renderedChildren;f.unmountChildren(e),this._renderedChildren=null},moveChild:function(e,t,n){e._mountIndex<n&&o(this._rootNodeID,e._mountIndex,t)},createChild:function(e,t){r(this._rootNodeID,t,e._mountIndex)},removeChild:function(e){a(this._rootNodeID,e._mountIndex)},setTextContent:function(e){u(this._rootNodeID,e)},setMarkup:function(e){i(this._rootNodeID,e)},_mountChildByNameAtIndex:function(e,t,n,r,o){var a=this._rootNodeID+t,i=d.mountComponent(e,a,r,o);e._mountIndex=n,this.createChild(e,i)},_unmountChild:function(e){this.removeChild(e),e._mountIndex=null}}};t.exports=y},{106:106,27:27,32:32,34:34,65:65,74:74}],65:[function(e,t,n){"use strict";var r=e(144),o=r({INSERT_MARKUP:null,MOVE_EXISTING:null,REMOVE_NODE:null,SET_MARKUP:null,TEXT_CONTENT:null});t.exports=o},{144:144}],66:[function(e,t,n){"use strict";function r(e){if("function"==typeof e.type)return e.type;var t=e.type,n=p[t];return null==n&&(p[t]=n=l(t)),n}function o(e){return c?void 0:s(!1),new c(e.type,e.props)}function a(e){return new d(e)}function i(e){return e instanceof d}var u=e(23),s=e(141),l=null,c=null,p={},d=null,f={injectGenericComponentClass:function(e){c=e},injectTextComponentClass:function(e){d=e},injectComponentClasses:function(e){u(p,e)}},h={getComponentClassForElement:r,createInternalComponent:o,createInstanceForText:a,isTextComponent:i,injection:f};t.exports=h},{141:141,23:23}],67:[function(e,t,n){"use strict";function r(e,t){}var o=(e(150),{isMounted:function(e){return!1},enqueueCallback:function(e,t){},enqueueForceUpdate:function(e){r(e,"forceUpdate")},enqueueReplaceState:function(e,t){r(e,"replaceState")},enqueueSetState:function(e,t){r(e,"setState")},enqueueSetProps:function(e,t){r(e,"setProps")},enqueueReplaceProps:function(e,t){r(e,"replaceProps")}});t.exports=o},{150:150}],68:[function(e,t,n){"use strict";var r=e(141),o={isValidOwner:function(e){return!(!e||"function"!=typeof e.attachRef||"function"!=typeof e.detachRef)},addComponentAsRefTo:function(e,t,n){o.isValidOwner(n)?void 0:r(!1),n.attachRef(t,e)},removeComponentAsRefFrom:function(e,t,n){o.isValidOwner(n)?void 0:r(!1),n.getPublicInstance().refs[t]===e.getPublicInstance()&&n.detachRef(t)}};t.exports=o},{141:141}],69:[function(e,t,n){"use strict";function r(e,t,n){return n}var o={enableMeasure:!1,storedMeasure:r,measureMethods:function(e,t,n){},measure:function(e,t,n){return n},injection:{injectMeasure:function(e){o.storedMeasure=e}}};t.exports=o},{}],70:[function(e,t,n){"use strict";var r={};t.exports=r},{}],71:[function(e,t,n){"use strict";var r=e(144),o=r({prop:null,context:null,childContext:null});t.exports=o},{144:144}],72:[function(e,t,n){"use strict";function r(e){function t(t,n,r,o,a,i){if(o=o||E,i=i||r,null==n[r]){var u=C[a];return t?new Error("Required "+u+" `"+i+"` was not specified in "+("`"+o+"`.")):null}return e(n,r,o,a,i)}var n=t.bind(null,!1);return n.isRequired=t.bind(null,!0),n}function o(e){function t(t,n,r,o,a){var i=t[n],u=v(i);if(u!==e){var s=C[o],l=m(i);return new Error("Invalid "+s+" `"+a+"` of type "+("`"+l+"` supplied to `"+r+"`, expected ")+("`"+e+"`."))}return null}return r(t)}function a(){return r(b.thatReturns(null))}function i(e){function t(t,n,r,o,a){var i=t[n];if(!Array.isArray(i)){var u=C[o],s=v(i);return new Error("Invalid "+u+" `"+a+"` of type "+("`"+s+"` supplied to `"+r+"`, expected an array."))}for(var l=0;l<i.length;l++){var c=e(i,l,r,o,a+"["+l+"]");if(c instanceof Error)return c}return null}return r(t)}function u(){function e(e,t,n,r,o){if(!y.isValidElement(e[t])){var a=C[r];return new Error("Invalid "+a+" `"+o+"` supplied to "+("`"+n+"`, expected a single ReactElement."))}return null}return r(e)}function s(e){function t(t,n,r,o,a){if(!(t[n]instanceof e)){var i=C[o],u=e.name||E,s=g(t[n]);return new Error("Invalid "+i+" `"+a+"` of type "+("`"+s+"` supplied to `"+r+"`, expected ")+("instance of `"+u+"`."))}return null}return r(t)}function l(e){function t(t,n,r,o,a){for(var i=t[n],u=0;u<e.length;u++)if(i===e[u])return null;var s=C[o],l=JSON.stringify(e);return new Error("Invalid "+s+" `"+a+"` of value `"+i+"` "+("supplied to `"+r+"`, expected one of "+l+"."))}return r(Array.isArray(e)?t:function(){return new Error("Invalid argument supplied to oneOf, expected an instance of array.")})}function c(e){function t(t,n,r,o,a){var i=t[n],u=v(i);if("object"!==u){var s=C[o];return new Error("Invalid "+s+" `"+a+"` of type "+("`"+u+"` supplied to `"+r+"`, expected an object."))}for(var l in i)if(i.hasOwnProperty(l)){var c=e(i,l,r,o,a+"."+l);if(c instanceof Error)return c}return null}return r(t)}function p(e){function t(t,n,r,o,a){for(var i=0;i<e.length;i++){var u=e[i];if(null==u(t,n,r,o,a))return null}var s=C[o];return new Error("Invalid "+s+" `"+a+"` supplied to "+("`"+r+"`."))}return r(Array.isArray(e)?t:function(){return new Error("Invalid argument supplied to oneOfType, expected an instance of array.")})}function d(){function e(e,t,n,r,o){if(!h(e[t])){var a=C[r];return new Error("Invalid "+a+" `"+o+"` supplied to "+("`"+n+"`, expected a ReactNode."))}return null}return r(e)}function f(e){function t(t,n,r,o,a){var i=t[n],u=v(i);if("object"!==u){var s=C[o];return new Error("Invalid "+s+" `"+a+"` of type `"+u+"` "+("supplied to `"+r+"`, expected `object`."))}for(var l in e){var c=e[l];if(c){var p=c(i,l,r,o,a+"."+l);if(p)return p}}return null}return r(t)}function h(e){switch(typeof e){case"number":case"string":case"undefined":return!0;case"boolean":return!e;case"object":if(Array.isArray(e))return e.every(h);if(null===e||y.isValidElement(e))return!0;var t=_(e);if(!t)return!1;var n,r=t.call(e);if(t!==e.entries){for(;!(n=r.next()).done;)if(!h(n.value))return!1}else for(;!(n=r.next()).done;){var o=n.value;if(o&&!h(o[1]))return!1}return!0;default:return!1}}function v(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":t}function m(e){var t=v(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}function g(e){return e.constructor&&e.constructor.name?e.constructor.name:"<<anonymous>>"}var y=e(50),C=e(70),b=e(133),_=e(112),E="<<anonymous>>",x={array:o("array"),bool:o("boolean"),func:o("function"),number:o("number"),object:o("object"),string:o("string"),any:a(),arrayOf:i,element:u(),instanceOf:s,node:d(),objectOf:c,oneOf:l,oneOfType:p,shape:f};t.exports=x},{112:112,133:133,50:50,70:70}],73:[function(e,t,n){"use strict";function r(e){this.reinitializeTransaction(),this.renderToStaticMarkup=!1,this.reactMountReady=o.getPooled(null),this.useCreateElement=!e&&u.useCreateElement}var o=e(6),a=e(24),i=e(26),u=e(39),s=e(58),l=e(98),c=e(23),p={initialize:s.getSelectionInformation,close:s.restoreSelection},d={initialize:function(){var e=i.isEnabled();return i.setEnabled(!1),e},close:function(e){i.setEnabled(e)}},f={initialize:function(){this.reactMountReady.reset()},close:function(){this.reactMountReady.notifyAll()}},h=[p,d,f],v={getTransactionWrappers:function(){return h},getReactMountReady:function(){return this.reactMountReady},destructor:function(){o.release(this.reactMountReady),this.reactMountReady=null}};c(r.prototype,l.Mixin,v),a.addPoolingTo(r),t.exports=r},{23:23,24:24,26:26,39:39,58:58,6:6,98:98}],74:[function(e,t,n){"use strict";function r(){o.attachRefs(this,this._currentElement)}var o=e(75),a={mountComponent:function(e,t,n,o){var a=e.mountComponent(t,n,o);return e._currentElement&&null!=e._currentElement.ref&&n.getReactMountReady().enqueue(r,e),a},unmountComponent:function(e){o.detachRefs(e,e._currentElement),e.unmountComponent()},receiveComponent:function(e,t,n,a){var i=e._currentElement;if(t!==i||a!==e._context){var u=o.shouldUpdateRefs(i,t);u&&o.detachRefs(e,i),e.receiveComponent(t,n,a),u&&e._currentElement&&null!=e._currentElement.ref&&n.getReactMountReady().enqueue(r,e)}},performUpdateIfNecessary:function(e,t){e.performUpdateIfNecessary(t)}};t.exports=a},{75:75}],75:[function(e,t,n){"use strict"; -function r(e,t,n){"function"==typeof e?e(t.getPublicInstance()):a.addComponentAsRefTo(t,e,n)}function o(e,t,n){"function"==typeof e?e(null):a.removeComponentAsRefFrom(t,e,n)}var a=e(68),i={};i.attachRefs=function(e,t){if(null!==t&&t!==!1){var n=t.ref;null!=n&&r(n,e,t._owner)}},i.shouldUpdateRefs=function(e,t){var n=null===e||e===!1,r=null===t||t===!1;return n||r||t._owner!==e._owner||t.ref!==e.ref},i.detachRefs=function(e,t){if(null!==t&&t!==!1){var n=t.ref;null!=n&&o(n,e,t._owner)}},t.exports=i},{68:68}],76:[function(e,t,n){"use strict";var r={injectCreateReactRootIndex:function(e){o.createReactRootIndex=e}},o={createReactRootIndex:null,injection:r};t.exports=o},{}],77:[function(e,t,n){"use strict";var r={isBatchingUpdates:!1,batchedUpdates:function(e){}};t.exports=r},{}],78:[function(e,t,n){"use strict";function r(e){i.isValidElement(e)?void 0:h(!1);var t;try{p.injection.injectBatchingStrategy(l);var n=u.createReactRootID();return t=c.getPooled(!1),t.perform(function(){var r=f(e,null),o=r.mountComponent(n,t,d);return s.addChecksumToMarkup(o)},null)}finally{c.release(t),p.injection.injectBatchingStrategy(a)}}function o(e){i.isValidElement(e)?void 0:h(!1);var t;try{p.injection.injectBatchingStrategy(l);var n=u.createReactRootID();return t=c.getPooled(!0),t.perform(function(){var r=f(e,null);return r.mountComponent(n,t,d)},null)}finally{c.release(t),p.injection.injectBatchingStrategy(a)}}var a=e(48),i=e(50),u=e(59),s=e(62),l=e(77),c=e(79),p=e(81),d=e(134),f=e(115),h=e(141);t.exports={renderToString:r,renderToStaticMarkup:o}},{115:115,134:134,141:141,48:48,50:50,59:59,62:62,77:77,79:79,81:81}],79:[function(e,t,n){"use strict";function r(e){this.reinitializeTransaction(),this.renderToStaticMarkup=e,this.reactMountReady=a.getPooled(null),this.useCreateElement=!1}var o=e(24),a=e(6),i=e(98),u=e(23),s=e(133),l={initialize:function(){this.reactMountReady.reset()},close:s},c=[l],p={getTransactionWrappers:function(){return c},getReactMountReady:function(){return this.reactMountReady},destructor:function(){a.release(this.reactMountReady),this.reactMountReady=null}};u(r.prototype,i.Mixin,p),o.addPoolingTo(r),t.exports=r},{133:133,23:23,24:24,6:6,98:98}],80:[function(e,t,n){"use strict";function r(e){u.enqueueUpdate(e)}function o(e,t){var n=i.get(e);return n?n:null}var a=(e(34),e(50)),i=e(60),u=e(81),s=e(23),l=e(141),c=(e(150),{isMounted:function(e){var t=i.get(e);return t?!!t._renderedComponent:!1},enqueueCallback:function(e,t){"function"!=typeof t?l(!1):void 0;var n=o(e);return n?(n._pendingCallbacks?n._pendingCallbacks.push(t):n._pendingCallbacks=[t],void r(n)):null},enqueueCallbackInternal:function(e,t){"function"!=typeof t?l(!1):void 0,e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t],r(e)},enqueueForceUpdate:function(e){var t=o(e,"forceUpdate");t&&(t._pendingForceUpdate=!0,r(t))},enqueueReplaceState:function(e,t){var n=o(e,"replaceState");n&&(n._pendingStateQueue=[t],n._pendingReplaceState=!0,r(n))},enqueueSetState:function(e,t){var n=o(e,"setState");if(n){var a=n._pendingStateQueue||(n._pendingStateQueue=[]);a.push(t),r(n)}},enqueueSetProps:function(e,t){var n=o(e,"setProps");n&&c.enqueueSetPropsInternal(n,t)},enqueueSetPropsInternal:function(e,t){var n=e._topLevelWrapper;n?void 0:l(!1);var o=n._pendingElement||n._currentElement,i=o.props,u=s({},i.props,t);n._pendingElement=a.cloneAndReplaceProps(o,a.cloneAndReplaceProps(i,u)),r(n)},enqueueReplaceProps:function(e,t){var n=o(e,"replaceProps");n&&c.enqueueReplacePropsInternal(n,t)},enqueueReplacePropsInternal:function(e,t){var n=e._topLevelWrapper;n?void 0:l(!1);var o=n._pendingElement||n._currentElement,i=o.props;n._pendingElement=a.cloneAndReplaceProps(o,a.cloneAndReplaceProps(i,t)),r(n)},enqueueElementInternal:function(e,t){e._pendingElement=t,r(e)}});t.exports=c},{141:141,150:150,23:23,34:34,50:50,60:60,81:81}],81:[function(e,t,n){"use strict";function r(){N.ReactReconcileTransaction&&b?void 0:m(!1)}function o(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=c.getPooled(),this.reconcileTransaction=N.ReactReconcileTransaction.getPooled(!1)}function a(e,t,n,o,a,i){r(),b.batchedUpdates(e,t,n,o,a,i)}function i(e,t){return e._mountOrder-t._mountOrder}function u(e){var t=e.dirtyComponentsLength;t!==g.length?m(!1):void 0,g.sort(i);for(var n=0;t>n;n++){var r=g[n],o=r._pendingCallbacks;if(r._pendingCallbacks=null,f.performUpdateIfNecessary(r,e.reconcileTransaction),o)for(var a=0;a<o.length;a++)e.callbackQueue.enqueue(o[a],r.getPublicInstance())}}function s(e){return r(),b.isBatchingUpdates?void g.push(e):void b.batchedUpdates(s,e)}function l(e,t){b.isBatchingUpdates?void 0:m(!1),y.enqueue(e,t),C=!0}var c=e(6),p=e(24),d=e(69),f=e(74),h=e(98),v=e(23),m=e(141),g=[],y=c.getPooled(),C=!1,b=null,_={initialize:function(){this.dirtyComponentsLength=g.length},close:function(){this.dirtyComponentsLength!==g.length?(g.splice(0,this.dirtyComponentsLength),D()):g.length=0}},E={initialize:function(){this.callbackQueue.reset()},close:function(){this.callbackQueue.notifyAll()}},x=[_,E];v(o.prototype,h.Mixin,{getTransactionWrappers:function(){return x},destructor:function(){this.dirtyComponentsLength=null,c.release(this.callbackQueue),this.callbackQueue=null,N.ReactReconcileTransaction.release(this.reconcileTransaction),this.reconcileTransaction=null},perform:function(e,t,n){return h.Mixin.perform.call(this,this.reconcileTransaction.perform,this.reconcileTransaction,e,t,n)}}),p.addPoolingTo(o);var D=function(){for(;g.length||C;){if(g.length){var e=o.getPooled();e.perform(u,null,e),o.release(e)}if(C){C=!1;var t=y;y=c.getPooled(),t.notifyAll(),c.release(t)}}};D=d.measure("ReactUpdates","flushBatchedUpdates",D);var M={injectReconcileTransaction:function(e){e?void 0:m(!1),N.ReactReconcileTransaction=e},injectBatchingStrategy:function(e){e?void 0:m(!1),"function"!=typeof e.batchedUpdates?m(!1):void 0,"boolean"!=typeof e.isBatchingUpdates?m(!1):void 0,b=e}},N={ReactReconcileTransaction:null,batchedUpdates:a,enqueueUpdate:s,flushBatchedUpdates:D,injection:M,asap:l};t.exports=N},{141:141,23:23,24:24,6:6,69:69,74:74,98:98}],82:[function(e,t,n){"use strict";t.exports="0.14.0"},{}],83:[function(e,t,n){"use strict";var r=e(10),o=r.injection.MUST_USE_ATTRIBUTE,a={xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace"},i={Properties:{clipPath:o,cx:o,cy:o,d:o,dx:o,dy:o,fill:o,fillOpacity:o,fontFamily:o,fontSize:o,fx:o,fy:o,gradientTransform:o,gradientUnits:o,markerEnd:o,markerMid:o,markerStart:o,offset:o,opacity:o,patternContentUnits:o,patternUnits:o,points:o,preserveAspectRatio:o,r:o,rx:o,ry:o,spreadMethod:o,stopColor:o,stopOpacity:o,stroke:o,strokeDasharray:o,strokeLinecap:o,strokeOpacity:o,strokeWidth:o,textAnchor:o,transform:o,version:o,viewBox:o,x1:o,x2:o,x:o,xlinkActuate:o,xlinkArcrole:o,xlinkHref:o,xlinkRole:o,xlinkShow:o,xlinkTitle:o,xlinkType:o,xmlBase:o,xmlLang:o,xmlSpace:o,y1:o,y2:o,y:o},DOMAttributeNamespaces:{xlinkActuate:a.xlink,xlinkArcrole:a.xlink,xlinkHref:a.xlink,xlinkRole:a.xlink,xlinkShow:a.xlink,xlinkTitle:a.xlink,xlinkType:a.xlink,xmlBase:a.xml,xmlLang:a.xml,xmlSpace:a.xml},DOMAttributeNames:{clipPath:"clip-path",fillOpacity:"fill-opacity",fontFamily:"font-family",fontSize:"font-size",gradientTransform:"gradientTransform",gradientUnits:"gradientUnits",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",patternContentUnits:"patternContentUnits",patternUnits:"patternUnits",preserveAspectRatio:"preserveAspectRatio",spreadMethod:"spreadMethod",stopColor:"stop-color",stopOpacity:"stop-opacity",strokeDasharray:"stroke-dasharray",strokeLinecap:"stroke-linecap",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",textAnchor:"text-anchor",viewBox:"viewBox",xlinkActuate:"xlink:actuate",xlinkArcrole:"xlink:arcrole",xlinkHref:"xlink:href",xlinkRole:"xlink:role",xlinkShow:"xlink:show",xlinkTitle:"xlink:title",xlinkType:"xlink:type",xmlBase:"xml:base",xmlLang:"xml:lang",xmlSpace:"xml:space"}};t.exports=i},{10:10}],84:[function(e,t,n){"use strict";function r(e){if("selectionStart"in e&&s.hasSelectionCapabilities(e))return{start:e.selectionStart,end:e.selectionEnd};if(window.getSelection){var t=window.getSelection();return{anchorNode:t.anchorNode,anchorOffset:t.anchorOffset,focusNode:t.focusNode,focusOffset:t.focusOffset}}if(document.selection){var n=document.selection.createRange();return{parentElement:n.parentElement(),text:n.text,top:n.boundingTop,left:n.boundingLeft}}}function o(e,t){if(b||null==g||g!==c())return null;var n=r(g);if(!C||!f(C,n)){C=n;var o=l.getPooled(m.select,y,e,t);return o.type="select",o.target=g,i.accumulateTwoPhaseDispatches(o),o}return null}var a=e(15),i=e(19),u=e(127),s=e(58),l=e(90),c=e(136),p=e(117),d=e(145),f=e(148),h=a.topLevelTypes,v=u.canUseDOM&&"documentMode"in document&&document.documentMode<=11,m={select:{phasedRegistrationNames:{bubbled:d({onSelect:null}),captured:d({onSelectCapture:null})},dependencies:[h.topBlur,h.topContextMenu,h.topFocus,h.topKeyDown,h.topMouseDown,h.topMouseUp,h.topSelectionChange]}},g=null,y=null,C=null,b=!1,_=!1,E=d({onSelect:null}),x={eventTypes:m,extractEvents:function(e,t,n,r,a){if(!_)return null;switch(e){case h.topFocus:(p(t)||"true"===t.contentEditable)&&(g=t,y=n,C=null);break;case h.topBlur:g=null,y=null,C=null;break;case h.topMouseDown:b=!0;break;case h.topContextMenu:case h.topMouseUp:return b=!1,o(r,a);case h.topSelectionChange:if(v)break;case h.topKeyDown:case h.topKeyUp:return o(r,a)}return null},didPutListener:function(e,t,n){t===E&&(_=!0)}};t.exports=x},{117:117,127:127,136:136,145:145,148:148,15:15,19:19,58:58,90:90}],85:[function(e,t,n){"use strict";var r=Math.pow(2,53),o={createReactRootIndex:function(){return Math.ceil(Math.random()*r)}};t.exports=o},{}],86:[function(e,t,n){"use strict";var r=e(15),o=e(126),a=e(19),i=e(63),u=e(87),s=e(90),l=e(91),c=e(93),p=e(94),d=e(89),f=e(95),h=e(96),v=e(97),m=e(133),g=e(108),y=e(141),C=e(145),b=r.topLevelTypes,_={abort:{phasedRegistrationNames:{bubbled:C({onAbort:!0}),captured:C({onAbortCapture:!0})}},blur:{phasedRegistrationNames:{bubbled:C({onBlur:!0}),captured:C({onBlurCapture:!0})}},canPlay:{phasedRegistrationNames:{bubbled:C({onCanPlay:!0}),captured:C({onCanPlayCapture:!0})}},canPlayThrough:{phasedRegistrationNames:{bubbled:C({onCanPlayThrough:!0}),captured:C({onCanPlayThroughCapture:!0})}},click:{phasedRegistrationNames:{bubbled:C({onClick:!0}),captured:C({onClickCapture:!0})}},contextMenu:{phasedRegistrationNames:{bubbled:C({onContextMenu:!0}),captured:C({onContextMenuCapture:!0})}},copy:{phasedRegistrationNames:{bubbled:C({onCopy:!0}),captured:C({onCopyCapture:!0})}},cut:{phasedRegistrationNames:{bubbled:C({onCut:!0}),captured:C({onCutCapture:!0})}},doubleClick:{phasedRegistrationNames:{bubbled:C({onDoubleClick:!0}),captured:C({onDoubleClickCapture:!0})}},drag:{phasedRegistrationNames:{bubbled:C({onDrag:!0}),captured:C({onDragCapture:!0})}},dragEnd:{phasedRegistrationNames:{bubbled:C({onDragEnd:!0}),captured:C({onDragEndCapture:!0})}},dragEnter:{phasedRegistrationNames:{bubbled:C({onDragEnter:!0}),captured:C({onDragEnterCapture:!0})}},dragExit:{phasedRegistrationNames:{bubbled:C({onDragExit:!0}),captured:C({onDragExitCapture:!0})}},dragLeave:{phasedRegistrationNames:{bubbled:C({onDragLeave:!0}),captured:C({onDragLeaveCapture:!0})}},dragOver:{phasedRegistrationNames:{bubbled:C({onDragOver:!0}),captured:C({onDragOverCapture:!0})}},dragStart:{phasedRegistrationNames:{bubbled:C({onDragStart:!0}),captured:C({onDragStartCapture:!0})}},drop:{phasedRegistrationNames:{bubbled:C({onDrop:!0}),captured:C({onDropCapture:!0})}},durationChange:{phasedRegistrationNames:{bubbled:C({onDurationChange:!0}),captured:C({onDurationChangeCapture:!0})}},emptied:{phasedRegistrationNames:{bubbled:C({onEmptied:!0}),captured:C({onEmptiedCapture:!0})}},encrypted:{phasedRegistrationNames:{bubbled:C({onEncrypted:!0}),captured:C({onEncryptedCapture:!0})}},ended:{phasedRegistrationNames:{bubbled:C({onEnded:!0}),captured:C({onEndedCapture:!0})}},error:{phasedRegistrationNames:{bubbled:C({onError:!0}),captured:C({onErrorCapture:!0})}},focus:{phasedRegistrationNames:{bubbled:C({onFocus:!0}),captured:C({onFocusCapture:!0})}},input:{phasedRegistrationNames:{bubbled:C({onInput:!0}),captured:C({onInputCapture:!0})}},keyDown:{phasedRegistrationNames:{bubbled:C({onKeyDown:!0}),captured:C({onKeyDownCapture:!0})}},keyPress:{phasedRegistrationNames:{bubbled:C({onKeyPress:!0}),captured:C({onKeyPressCapture:!0})}},keyUp:{phasedRegistrationNames:{bubbled:C({onKeyUp:!0}),captured:C({onKeyUpCapture:!0})}},load:{phasedRegistrationNames:{bubbled:C({onLoad:!0}),captured:C({onLoadCapture:!0})}},loadedData:{phasedRegistrationNames:{bubbled:C({onLoadedData:!0}),captured:C({onLoadedDataCapture:!0})}},loadedMetadata:{phasedRegistrationNames:{bubbled:C({onLoadedMetadata:!0}),captured:C({onLoadedMetadataCapture:!0})}},loadStart:{phasedRegistrationNames:{bubbled:C({onLoadStart:!0}),captured:C({onLoadStartCapture:!0})}},mouseDown:{phasedRegistrationNames:{bubbled:C({onMouseDown:!0}),captured:C({onMouseDownCapture:!0})}},mouseMove:{phasedRegistrationNames:{bubbled:C({onMouseMove:!0}),captured:C({onMouseMoveCapture:!0})}},mouseOut:{phasedRegistrationNames:{bubbled:C({onMouseOut:!0}),captured:C({onMouseOutCapture:!0})}},mouseOver:{phasedRegistrationNames:{bubbled:C({onMouseOver:!0}),captured:C({onMouseOverCapture:!0})}},mouseUp:{phasedRegistrationNames:{bubbled:C({onMouseUp:!0}),captured:C({onMouseUpCapture:!0})}},paste:{phasedRegistrationNames:{bubbled:C({onPaste:!0}),captured:C({onPasteCapture:!0})}},pause:{phasedRegistrationNames:{bubbled:C({onPause:!0}),captured:C({onPauseCapture:!0})}},play:{phasedRegistrationNames:{bubbled:C({onPlay:!0}),captured:C({onPlayCapture:!0})}},playing:{phasedRegistrationNames:{bubbled:C({onPlaying:!0}),captured:C({onPlayingCapture:!0})}},progress:{phasedRegistrationNames:{bubbled:C({onProgress:!0}),captured:C({onProgressCapture:!0})}},rateChange:{phasedRegistrationNames:{bubbled:C({onRateChange:!0}),captured:C({onRateChangeCapture:!0})}},reset:{phasedRegistrationNames:{bubbled:C({onReset:!0}),captured:C({onResetCapture:!0})}},scroll:{phasedRegistrationNames:{bubbled:C({onScroll:!0}),captured:C({onScrollCapture:!0})}},seeked:{phasedRegistrationNames:{bubbled:C({onSeeked:!0}),captured:C({onSeekedCapture:!0})}},seeking:{phasedRegistrationNames:{bubbled:C({onSeeking:!0}),captured:C({onSeekingCapture:!0})}},stalled:{phasedRegistrationNames:{bubbled:C({onStalled:!0}),captured:C({onStalledCapture:!0})}},submit:{phasedRegistrationNames:{bubbled:C({onSubmit:!0}),captured:C({onSubmitCapture:!0})}},suspend:{phasedRegistrationNames:{bubbled:C({onSuspend:!0}),captured:C({onSuspendCapture:!0})}},timeUpdate:{phasedRegistrationNames:{bubbled:C({onTimeUpdate:!0}),captured:C({onTimeUpdateCapture:!0})}},touchCancel:{phasedRegistrationNames:{bubbled:C({onTouchCancel:!0}),captured:C({onTouchCancelCapture:!0})}},touchEnd:{phasedRegistrationNames:{bubbled:C({onTouchEnd:!0}),captured:C({onTouchEndCapture:!0})}},touchMove:{phasedRegistrationNames:{bubbled:C({onTouchMove:!0}),captured:C({onTouchMoveCapture:!0})}},touchStart:{phasedRegistrationNames:{bubbled:C({onTouchStart:!0}),captured:C({onTouchStartCapture:!0})}},volumeChange:{phasedRegistrationNames:{bubbled:C({onVolumeChange:!0}),captured:C({onVolumeChangeCapture:!0})}},waiting:{phasedRegistrationNames:{bubbled:C({onWaiting:!0}),captured:C({onWaitingCapture:!0})}},wheel:{phasedRegistrationNames:{bubbled:C({onWheel:!0}),captured:C({onWheelCapture:!0})}}},E={topAbort:_.abort,topBlur:_.blur,topCanPlay:_.canPlay,topCanPlayThrough:_.canPlayThrough,topClick:_.click,topContextMenu:_.contextMenu,topCopy:_.copy,topCut:_.cut,topDoubleClick:_.doubleClick,topDrag:_.drag,topDragEnd:_.dragEnd,topDragEnter:_.dragEnter,topDragExit:_.dragExit,topDragLeave:_.dragLeave,topDragOver:_.dragOver,topDragStart:_.dragStart,topDrop:_.drop,topDurationChange:_.durationChange,topEmptied:_.emptied,topEncrypted:_.encrypted,topEnded:_.ended,topError:_.error,topFocus:_.focus,topInput:_.input,topKeyDown:_.keyDown,topKeyPress:_.keyPress,topKeyUp:_.keyUp,topLoad:_.load,topLoadedData:_.loadedData,topLoadedMetadata:_.loadedMetadata,topLoadStart:_.loadStart,topMouseDown:_.mouseDown,topMouseMove:_.mouseMove,topMouseOut:_.mouseOut,topMouseOver:_.mouseOver,topMouseUp:_.mouseUp,topPaste:_.paste,topPause:_.pause,topPlay:_.play,topPlaying:_.playing,topProgress:_.progress,topRateChange:_.rateChange,topReset:_.reset,topScroll:_.scroll,topSeeked:_.seeked,topSeeking:_.seeking,topStalled:_.stalled,topSubmit:_.submit,topSuspend:_.suspend,topTimeUpdate:_.timeUpdate,topTouchCancel:_.touchCancel,topTouchEnd:_.touchEnd,topTouchMove:_.touchMove,topTouchStart:_.touchStart,topVolumeChange:_.volumeChange,topWaiting:_.waiting,topWheel:_.wheel};for(var x in E)E[x].dependencies=[x];var D=C({onClick:null}),M={},N={eventTypes:_,extractEvents:function(e,t,n,r,o){var i=E[e];if(!i)return null;var m;switch(e){case b.topAbort:case b.topCanPlay:case b.topCanPlayThrough:case b.topDurationChange:case b.topEmptied:case b.topEncrypted:case b.topEnded:case b.topError:case b.topInput:case b.topLoad:case b.topLoadedData:case b.topLoadedMetadata:case b.topLoadStart:case b.topPause:case b.topPlay:case b.topPlaying:case b.topProgress:case b.topRateChange:case b.topReset:case b.topSeeked:case b.topSeeking:case b.topStalled:case b.topSubmit:case b.topSuspend:case b.topTimeUpdate:case b.topVolumeChange:case b.topWaiting:m=s;break;case b.topKeyPress:if(0===g(r))return null;case b.topKeyDown:case b.topKeyUp:m=c;break;case b.topBlur:case b.topFocus:m=l;break;case b.topClick:if(2===r.button)return null;case b.topContextMenu:case b.topDoubleClick:case b.topMouseDown:case b.topMouseMove:case b.topMouseOut:case b.topMouseOver:case b.topMouseUp:m=p;break;case b.topDrag:case b.topDragEnd:case b.topDragEnter:case b.topDragExit:case b.topDragLeave:case b.topDragOver:case b.topDragStart:case b.topDrop:m=d;break;case b.topTouchCancel:case b.topTouchEnd:case b.topTouchMove:case b.topTouchStart:m=f;break;case b.topScroll:m=h;break;case b.topWheel:m=v;break;case b.topCopy:case b.topCut:case b.topPaste:m=u}m?void 0:y(!1);var C=m.getPooled(i,n,r,o);return a.accumulateTwoPhaseDispatches(C),C},didPutListener:function(e,t,n){if(t===D){var r=i.getNode(e);M[e]||(M[e]=o.listen(r,"click",m))}},willDeleteListener:function(e,t){t===D&&(M[e].remove(),delete M[e])}};t.exports=N},{108:108,126:126,133:133,141:141,145:145,15:15,19:19,63:63,87:87,89:89,90:90,91:91,93:93,94:94,95:95,96:96,97:97}],87:[function(e,t,n){"use strict";function r(e,t,n,r){o.call(this,e,t,n,r)}var o=e(90),a={clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}};o.augmentClass(r,a),t.exports=r},{90:90}],88:[function(e,t,n){"use strict";function r(e,t,n,r){o.call(this,e,t,n,r)}var o=e(90),a={data:null};o.augmentClass(r,a),t.exports=r},{90:90}],89:[function(e,t,n){"use strict";function r(e,t,n,r){o.call(this,e,t,n,r)}var o=e(94),a={dataTransfer:null};o.augmentClass(r,a),t.exports=r},{94:94}],90:[function(e,t,n){"use strict";function r(e,t,n,r){this.dispatchConfig=e,this.dispatchMarker=t,this.nativeEvent=n,this.target=r,this.currentTarget=r;var o=this.constructor.Interface;for(var a in o)if(o.hasOwnProperty(a)){var u=o[a];u?this[a]=u(n):this[a]=n[a]}var s=null!=n.defaultPrevented?n.defaultPrevented:n.returnValue===!1;s?this.isDefaultPrevented=i.thatReturnsTrue:this.isDefaultPrevented=i.thatReturnsFalse,this.isPropagationStopped=i.thatReturnsFalse}var o=e(24),a=e(23),i=e(133),u=(e(150),{type:null,currentTarget:i.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null});a(r.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():e.returnValue=!1,this.isDefaultPrevented=i.thatReturnsTrue)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,this.isPropagationStopped=i.thatReturnsTrue)},persist:function(){this.isPersistent=i.thatReturnsTrue},isPersistent:i.thatReturnsFalse,destructor:function(){var e=this.constructor.Interface;for(var t in e)this[t]=null;this.dispatchConfig=null,this.dispatchMarker=null,this.nativeEvent=null}}),r.Interface=u,r.augmentClass=function(e,t){var n=this,r=Object.create(n.prototype);a(r,e.prototype),e.prototype=r,e.prototype.constructor=e,e.Interface=a({},n.Interface,t),e.augmentClass=n.augmentClass,o.addPoolingTo(e,o.fourArgumentPooler)},o.addPoolingTo(r,o.fourArgumentPooler),t.exports=r},{133:133,150:150,23:23,24:24}],91:[function(e,t,n){"use strict";function r(e,t,n,r){o.call(this,e,t,n,r)}var o=e(96),a={relatedTarget:null};o.augmentClass(r,a),t.exports=r},{96:96}],92:[function(e,t,n){"use strict";function r(e,t,n,r){o.call(this,e,t,n,r)}var o=e(90),a={data:null};o.augmentClass(r,a),t.exports=r},{90:90}],93:[function(e,t,n){"use strict";function r(e,t,n,r){o.call(this,e,t,n,r)}var o=e(96),a=e(108),i=e(109),u=e(110),s={key:i,location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:u,charCode:function(e){return"keypress"===e.type?a(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?a(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}};o.augmentClass(r,s),t.exports=r},{108:108,109:109,110:110,96:96}],94:[function(e,t,n){"use strict";function r(e,t,n,r){o.call(this,e,t,n,r)}var o=e(96),a=e(99),i=e(110),u={screenX:null,screenY:null,clientX:null,clientY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:i,button:function(e){var t=e.button;return"which"in e?t:2===t?2:4===t?1:0},buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},pageX:function(e){return"pageX"in e?e.pageX:e.clientX+a.currentScrollLeft},pageY:function(e){return"pageY"in e?e.pageY:e.clientY+a.currentScrollTop}};o.augmentClass(r,u),t.exports=r},{110:110,96:96,99:99}],95:[function(e,t,n){"use strict";function r(e,t,n,r){o.call(this,e,t,n,r)}var o=e(96),a=e(110),i={touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:a};o.augmentClass(r,i),t.exports=r},{110:110,96:96}],96:[function(e,t,n){"use strict";function r(e,t,n,r){o.call(this,e,t,n,r)}var o=e(90),a=e(111),i={view:function(e){if(e.view)return e.view;var t=a(e);if(null!=t&&t.window===t)return t;var n=t.ownerDocument;return n?n.defaultView||n.parentWindow:window},detail:function(e){return e.detail||0}};o.augmentClass(r,i),t.exports=r},{111:111,90:90}],97:[function(e,t,n){"use strict";function r(e,t,n,r){o.call(this,e,t,n,r)}var o=e(94),a={deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null};o.augmentClass(r,a),t.exports=r},{94:94}],98:[function(e,t,n){"use strict";var r=e(141),o={reinitializeTransaction:function(){this.transactionWrappers=this.getTransactionWrappers(),this.wrapperInitData?this.wrapperInitData.length=0:this.wrapperInitData=[],this._isInTransaction=!1},_isInTransaction:!1,getTransactionWrappers:null,isInTransaction:function(){return!!this._isInTransaction},perform:function(e,t,n,o,a,i,u,s){this.isInTransaction()?r(!1):void 0;var l,c;try{this._isInTransaction=!0,l=!0,this.initializeAll(0),c=e.call(t,n,o,a,i,u,s),l=!1}finally{try{if(l)try{this.closeAll(0)}catch(p){}else this.closeAll(0)}finally{this._isInTransaction=!1}}return c},initializeAll:function(e){for(var t=this.transactionWrappers,n=e;n<t.length;n++){var r=t[n];try{this.wrapperInitData[n]=a.OBSERVED_ERROR,this.wrapperInitData[n]=r.initialize?r.initialize.call(this):null}finally{if(this.wrapperInitData[n]===a.OBSERVED_ERROR)try{this.initializeAll(n+1)}catch(o){}}}},closeAll:function(e){this.isInTransaction()?void 0:r(!1);for(var t=this.transactionWrappers,n=e;n<t.length;n++){var o,i=t[n],u=this.wrapperInitData[n];try{o=!0,u!==a.OBSERVED_ERROR&&i.close&&i.close.call(this,u),o=!1}finally{if(o)try{this.closeAll(n+1)}catch(s){}}}this.wrapperInitData.length=0}},a={Mixin:o,OBSERVED_ERROR:{}};t.exports=a},{141:141}],99:[function(e,t,n){"use strict";var r={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(e){r.currentScrollLeft=e.x,r.currentScrollTop=e.y}};t.exports=r},{}],100:[function(e,t,n){"use strict";function r(e,t){if(null==t?o(!1):void 0,null==e)return t;var n=Array.isArray(e),r=Array.isArray(t);return n&&r?(e.push.apply(e,t),e):n?(e.push(t),e):r?[e].concat(t):[e,t]}var o=e(141);t.exports=r},{141:141}],101:[function(e,t,n){"use strict";function r(e){for(var t=1,n=0,r=0,a=e.length,i=-4&a;i>r;){for(;r<Math.min(r+4096,i);r+=4)n+=(t+=e.charCodeAt(r))+(t+=e.charCodeAt(r+1))+(t+=e.charCodeAt(r+2))+(t+=e.charCodeAt(r+3));t%=o,n%=o}for(;a>r;r++)n+=t+=e.charCodeAt(r);return t%=o,n%=o,t|n<<16}var o=65521;t.exports=r},{}],102:[function(e,t,n){"use strict";function r(e,t){var n=null==t||"boolean"==typeof t||""===t;if(n)return"";var r=isNaN(t);return r||0===t||a.hasOwnProperty(e)&&a[e]?""+t:("string"==typeof t&&(t=t.trim()),t+"px")}var o=e(4),a=o.isUnitlessNumber;t.exports=r},{4:4}],103:[function(e,t,n){"use strict";function r(e,t,n,r,o){return o}e(23),e(150);t.exports=r},{150:150,23:23}],104:[function(e,t,n){"use strict";function r(e){return a[e]}function o(e){return(""+e).replace(i,r)}var a={"&":"&",">":">","<":"<",'"':""","'":"'"},i=/[&><"']/g;t.exports=o},{}],105:[function(e,t,n){"use strict";function r(e){return null==e?null:1===e.nodeType?e:o.has(e)?a.getNodeFromInstance(e):(null!=e.render&&"function"==typeof e.render?i(!1):void 0,void i(!1))}var o=(e(34),e(60)),a=e(63),i=e(141);e(150);t.exports=r},{141:141,150:150,34:34,60:60,63:63}],106:[function(e,t,n){"use strict";function r(e,t,n){var r=e,o=void 0===r[n];o&&null!=t&&(r[n]=t)}function o(e){if(null==e)return e;var t={};return a(e,r,t),t}var a=e(124);e(150);t.exports=o},{124:124,150:150}],107:[function(e,t,n){"use strict";var r=function(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)};t.exports=r},{}],108:[function(e,t,n){"use strict";function r(e){var t,n=e.keyCode;return"charCode"in e?(t=e.charCode,0===t&&13===n&&(t=13)):t=n,t>=32||13===t?t:0}t.exports=r},{}],109:[function(e,t,n){"use strict";function r(e){if(e.key){var t=a[e.key]||e.key;if("Unidentified"!==t)return t}if("keypress"===e.type){var n=o(e);return 13===n?"Enter":String.fromCharCode(n)}return"keydown"===e.type||"keyup"===e.type?i[e.keyCode]||"Unidentified":""}var o=e(108),a={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},i={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};t.exports=r},{108:108}],110:[function(e,t,n){"use strict";function r(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var r=a[e];return r?!!n[r]:!1}function o(e){return r}var a={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};t.exports=o},{}],111:[function(e,t,n){"use strict";function r(e){var t=e.target||e.srcElement||window;return 3===t.nodeType?t.parentNode:t}t.exports=r},{}],112:[function(e,t,n){"use strict";function r(e){var t=e&&(o&&e[o]||e[a]);return"function"==typeof t?t:void 0}var o="function"==typeof Symbol&&Symbol.iterator,a="@@iterator";t.exports=r},{}],113:[function(e,t,n){"use strict";function r(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function o(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}function a(e,t){for(var n=r(e),a=0,i=0;n;){if(3===n.nodeType){if(i=a+n.textContent.length,t>=a&&i>=t)return{node:n,offset:t-a};a=i}n=r(o(n))}}t.exports=a},{}],114:[function(e,t,n){"use strict";function r(){return!a&&o.canUseDOM&&(a="textContent"in document.documentElement?"textContent":"innerText"),a}var o=e(127),a=null;t.exports=r},{127:127}],115:[function(e,t,n){"use strict";function r(e){return"function"==typeof e&&"undefined"!=typeof e.prototype&&"function"==typeof e.prototype.mountComponent&&"function"==typeof e.prototype.receiveComponent}function o(e){var t;if(null===e||e===!1)t=new i(o);else if("object"==typeof e){var n=e;!n||"function"!=typeof n.type&&"string"!=typeof n.type?l(!1):void 0,t="string"==typeof n.type?u.createInternalComponent(n):r(n.type)?new n.type(n):new c}else"string"==typeof e||"number"==typeof e?t=u.createInstanceForText(e):l(!1);return t.construct(e),t._mountIndex=0,t._mountImage=null,t}var a=e(33),i=e(52),u=e(66),s=e(23),l=e(141),c=(e(150),function(){});s(c.prototype,a.Mixin,{_instantiateReactComponent:o}),t.exports=o},{141:141,150:150,23:23,33:33,52:52,66:66}],116:[function(e,t,n){"use strict";function r(e,t){if(!a.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;if(!r){var i=document.createElement("div");i.setAttribute(n,"return;"),r="function"==typeof i[n]}return!r&&o&&"wheel"===e&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var o,a=e(127);a.canUseDOM&&(o=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),t.exports=r},{127:127}],117:[function(e,t,n){"use strict";function r(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&o[e.type]||"textarea"===t)}var o={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};t.exports=r},{}],118:[function(e,t,n){"use strict";function r(e){return o.isValidElement(e)?void 0:a(!1),e}var o=e(50),a=e(141);t.exports=r},{141:141,50:50}],119:[function(e,t,n){"use strict";function r(e){return'"'+o(e)+'"'}var o=e(104);t.exports=r},{104:104}],120:[function(e,t,n){"use strict";var r=e(63);t.exports=r.renderSubtreeIntoContainer},{63:63}],121:[function(e,t,n){"use strict";var r=e(127),o=/^[ \r\n\t\f]/,a=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,i=function(e,t){e.innerHTML=t};if("undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction&&(i=function(e,t){MSApp.execUnsafeLocalFunction(function(){e.innerHTML=t})}),r.canUseDOM){var u=document.createElement("div");u.innerHTML=" ",""===u.innerHTML&&(i=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),o.test(t)||"<"===t[0]&&a.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t})}t.exports=i},{127:127}],122:[function(e,t,n){"use strict";var r=e(127),o=e(104),a=e(121),i=function(e,t){e.textContent=t};r.canUseDOM&&("textContent"in document.documentElement||(i=function(e,t){a(e,o(t))})),t.exports=i},{104:104,121:121,127:127}],123:[function(e,t,n){"use strict";function r(e,t){var n=null===e||e===!1,r=null===t||t===!1;if(n||r)return n===r;var o=typeof e,a=typeof t;return"string"===o||"number"===o?"string"===a||"number"===a:"object"===a&&e.type===t.type&&e.key===t.key}t.exports=r},{}],124:[function(e,t,n){"use strict";function r(e){return v[e]}function o(e,t){return e&&null!=e.key?i(e.key):t.toString(36)}function a(e){return(""+e).replace(m,r)}function i(e){return"$"+a(e)}function u(e,t,n,r){var a=typeof e;if(("undefined"===a||"boolean"===a)&&(e=null),null===e||"string"===a||"number"===a||l.isValidElement(e))return n(r,e,""===t?f+o(e,0):t),1;var s,c,v=0,m=""===t?f:t+h;if(Array.isArray(e))for(var g=0;g<e.length;g++)s=e[g],c=m+o(s,g),v+=u(s,c,n,r);else{var y=p(e);if(y){var C,b=y.call(e);if(y!==e.entries)for(var _=0;!(C=b.next()).done;)s=C.value,c=m+o(s,_++),v+=u(s,c,n,r);else for(;!(C=b.next()).done;){ -var E=C.value;E&&(s=E[1],c=m+i(E[0])+h+o(s,0),v+=u(s,c,n,r))}}else"object"===a&&(String(e),d(!1))}return v}function s(e,t,n){return null==e?0:u(e,"",t,n)}var l=(e(34),e(50)),c=e(59),p=e(112),d=e(141),f=(e(150),c.SEPARATOR),h=":",v={"=":"=0",".":"=1",":":"=2"},m=/[=.:]/g;t.exports=s},{112:112,141:141,150:150,34:34,50:50,59:59}],125:[function(e,t,n){"use strict";var r=(e(23),e(133)),o=(e(150),r);t.exports=o},{133:133,150:150,23:23}],126:[function(e,t,n){"use strict";var r=e(133),o={listen:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),{remove:function(){e.removeEventListener(t,n,!1)}}):e.attachEvent?(e.attachEvent("on"+t,n),{remove:function(){e.detachEvent("on"+t,n)}}):void 0},capture:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!0),{remove:function(){e.removeEventListener(t,n,!0)}}):{remove:r}},registerDefault:function(){}};t.exports=o},{133:133}],127:[function(e,t,n){"use strict";var r=!("undefined"==typeof window||!window.document||!window.document.createElement),o={canUseDOM:r,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:r&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:r&&!!window.screen,isInWorker:!r};t.exports=o},{}],128:[function(e,t,n){"use strict";function r(e){return e.replace(o,function(e,t){return t.toUpperCase()})}var o=/-(.)/g;t.exports=r},{}],129:[function(e,t,n){"use strict";function r(e){return o(e.replace(a,"ms-"))}var o=e(128),a=/^-ms-/;t.exports=r},{128:128}],130:[function(e,t,n){"use strict";function r(e,t){var n=!0;e:for(;n;){var r=e,a=t;if(n=!1,r&&a){if(r===a)return!0;if(o(r))return!1;if(o(a)){e=r,t=a.parentNode,n=!0;continue e}return r.contains?r.contains(a):r.compareDocumentPosition?!!(16&r.compareDocumentPosition(a)):!1}return!1}}var o=e(143);t.exports=r},{143:143}],131:[function(e,t,n){"use strict";function r(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"length"in e&&!("setInterval"in e)&&"number"!=typeof e.nodeType&&(Array.isArray(e)||"callee"in e||"item"in e)}function o(e){return r(e)?Array.isArray(e)?e.slice():a(e):[e]}var a=e(149);t.exports=o},{149:149}],132:[function(e,t,n){"use strict";function r(e){var t=e.match(c);return t&&t[1].toLowerCase()}function o(e,t){var n=l;l?void 0:s(!1);var o=r(e),a=o&&u(o);if(a){n.innerHTML=a[1]+e+a[2];for(var c=a[0];c--;)n=n.lastChild}else n.innerHTML=e;var p=n.getElementsByTagName("script");p.length&&(t?void 0:s(!1),i(p).forEach(t));for(var d=i(n.childNodes);n.lastChild;)n.removeChild(n.lastChild);return d}var a=e(127),i=e(131),u=e(137),s=e(141),l=a.canUseDOM?document.createElement("div"):null,c=/^\s*<(\w+)/;t.exports=o},{127:127,131:131,137:137,141:141}],133:[function(e,t,n){"use strict";function r(e){return function(){return e}}function o(){}o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(e){return e},t.exports=o},{}],134:[function(e,t,n){"use strict";var r={};t.exports=r},{}],135:[function(e,t,n){"use strict";function r(e){try{e.focus()}catch(t){}}t.exports=r},{}],136:[function(e,t,n){"use strict";function r(){if("undefined"==typeof document)return null;try{return document.activeElement||document.body}catch(e){return document.body}}t.exports=r},{}],137:[function(e,t,n){"use strict";function r(e){return i?void 0:a(!1),d.hasOwnProperty(e)||(e="*"),u.hasOwnProperty(e)||("*"===e?i.innerHTML="<link />":i.innerHTML="<"+e+"></"+e+">",u[e]=!i.firstChild),u[e]?d[e]:null}var o=e(127),a=e(141),i=o.canUseDOM?document.createElement("div"):null,u={},s=[1,'<select multiple="true">',"</select>"],l=[1,"<table>","</table>"],c=[3,"<table><tbody><tr>","</tr></tbody></table>"],p=[1,'<svg xmlns="http://www.w3.org/2000/svg">',"</svg>"],d={"*":[1,"?<div>","</div>"],area:[1,"<map>","</map>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],legend:[1,"<fieldset>","</fieldset>"],param:[1,"<object>","</object>"],tr:[2,"<table><tbody>","</tbody></table>"],optgroup:s,option:s,caption:l,colgroup:l,tbody:l,tfoot:l,thead:l,td:c,th:c},f=["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"];f.forEach(function(e){d[e]=p,u[e]=!0}),t.exports=r},{127:127,141:141}],138:[function(e,t,n){"use strict";function r(e){return e===window?{x:window.pageXOffset||document.documentElement.scrollLeft,y:window.pageYOffset||document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}t.exports=r},{}],139:[function(e,t,n){"use strict";function r(e){return e.replace(o,"-$1").toLowerCase()}var o=/([A-Z])/g;t.exports=r},{}],140:[function(e,t,n){"use strict";function r(e){return o(e).replace(a,"-ms-")}var o=e(139),a=/^ms-/;t.exports=r},{139:139}],141:[function(e,t,n){"use strict";var r=function(e,t,n,r,o,a,i,u){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,a,i,u],c=0;s=new Error("Invariant Violation: "+t.replace(/%s/g,function(){return l[c++]}))}throw s.framesToPop=1,s}};t.exports=r},{}],142:[function(e,t,n){"use strict";function r(e){return!(!e||!("function"==typeof Node?e instanceof Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}t.exports=r},{}],143:[function(e,t,n){"use strict";function r(e){return o(e)&&3==e.nodeType}var o=e(142);t.exports=r},{142:142}],144:[function(e,t,n){"use strict";var r=e(141),o=function(e){var t,n={};e instanceof Object&&!Array.isArray(e)?void 0:r(!1);for(t in e)e.hasOwnProperty(t)&&(n[t]=t);return n};t.exports=o},{141:141}],145:[function(e,t,n){"use strict";var r=function(e){var t;for(t in e)if(e.hasOwnProperty(t))return t;return null};t.exports=r},{}],146:[function(e,t,n){"use strict";function r(e,t,n){if(!e)return null;var r={};for(var a in e)o.call(e,a)&&(r[a]=t.call(n,e[a],a,e));return r}var o=Object.prototype.hasOwnProperty;t.exports=r},{}],147:[function(e,t,n){"use strict";function r(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}t.exports=r},{}],148:[function(e,t,n){"use strict";function r(e,t){if(e===t)return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var a=o.bind(t),i=0;i<n.length;i++)if(!a(n[i])||e[n[i]]!==t[n[i]])return!1;return!0}var o=Object.prototype.hasOwnProperty;t.exports=r},{}],149:[function(e,t,n){"use strict";function r(e){var t=e.length;if(Array.isArray(e)||"object"!=typeof e&&"function"!=typeof e?o(!1):void 0,"number"!=typeof t?o(!1):void 0,0===t||t-1 in e?void 0:o(!1),e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(n){}for(var r=Array(t),a=0;t>a;a++)r[a]=e[a];return r}var o=e(141);t.exports=r},{141:141}],150:[function(e,t,n){"use strict";var r=e(133),o=r;t.exports=o},{133:133}]},{},[1])(1)});
\ No newline at end of file diff --git a/web/static/js/react-0.14.3.js b/web/static/js/react-0.14.3.js new file mode 100644 index 000000000..24108cb52 --- /dev/null +++ b/web/static/js/react-0.14.3.js @@ -0,0 +1,18794 @@ + /** + * React v0.14.3 + */ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.React = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule React + */ + +'use strict'; + +var ReactDOM = _dereq_(35); +var ReactDOMServer = _dereq_(45); +var ReactIsomorphic = _dereq_(63); + +var assign = _dereq_(23); +var deprecated = _dereq_(106); + +// `version` will be added here by ReactIsomorphic. +var React = {}; + +assign(React, ReactIsomorphic); + +assign(React, { + // ReactDOM + findDOMNode: deprecated('findDOMNode', 'ReactDOM', 'react-dom', ReactDOM, ReactDOM.findDOMNode), + render: deprecated('render', 'ReactDOM', 'react-dom', ReactDOM, ReactDOM.render), + unmountComponentAtNode: deprecated('unmountComponentAtNode', 'ReactDOM', 'react-dom', ReactDOM, ReactDOM.unmountComponentAtNode), + + // ReactDOMServer + renderToString: deprecated('renderToString', 'ReactDOMServer', 'react-dom/server', ReactDOMServer, ReactDOMServer.renderToString), + renderToStaticMarkup: deprecated('renderToStaticMarkup', 'ReactDOMServer', 'react-dom/server', ReactDOMServer, ReactDOMServer.renderToStaticMarkup) +}); + +React.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactDOM; +React.__SECRET_DOM_SERVER_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactDOMServer; + +module.exports = React; +},{"106":106,"23":23,"35":35,"45":45,"63":63}],2:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule AutoFocusUtils + * @typechecks static-only + */ + +'use strict'; + +var ReactMount = _dereq_(65); + +var findDOMNode = _dereq_(108); +var focusNode = _dereq_(138); + +var Mixin = { + componentDidMount: function () { + if (this.props.autoFocus) { + focusNode(findDOMNode(this)); + } + } +}; + +var AutoFocusUtils = { + Mixin: Mixin, + + focusDOMComponent: function () { + focusNode(ReactMount.getNode(this._rootNodeID)); + } +}; + +module.exports = AutoFocusUtils; +},{"108":108,"138":138,"65":65}],3:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015 Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule BeforeInputEventPlugin + * @typechecks static-only + */ + +'use strict'; + +var EventConstants = _dereq_(15); +var EventPropagators = _dereq_(19); +var ExecutionEnvironment = _dereq_(130); +var FallbackCompositionState = _dereq_(20); +var SyntheticCompositionEvent = _dereq_(90); +var SyntheticInputEvent = _dereq_(94); + +var keyOf = _dereq_(148); + +var END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space +var START_KEYCODE = 229; + +var canUseCompositionEvent = ExecutionEnvironment.canUseDOM && 'CompositionEvent' in window; + +var documentMode = null; +if (ExecutionEnvironment.canUseDOM && 'documentMode' in document) { + documentMode = document.documentMode; +} + +// Webkit offers a very useful `textInput` event that can be used to +// directly represent `beforeInput`. The IE `textinput` event is not as +// useful, so we don't use it. +var canUseTextInputEvent = ExecutionEnvironment.canUseDOM && 'TextEvent' in window && !documentMode && !isPresto(); + +// In IE9+, we have access to composition events, but the data supplied +// by the native compositionend event may be incorrect. Japanese ideographic +// spaces, for instance (\u3000) are not recorded correctly. +var useFallbackCompositionData = ExecutionEnvironment.canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11); + +/** + * Opera <= 12 includes TextEvent in window, but does not fire + * text input events. Rely on keypress instead. + */ +function isPresto() { + var opera = window.opera; + return typeof opera === 'object' && typeof opera.version === 'function' && parseInt(opera.version(), 10) <= 12; +} + +var SPACEBAR_CODE = 32; +var SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE); + +var topLevelTypes = EventConstants.topLevelTypes; + +// Events and their corresponding property names. +var eventTypes = { + beforeInput: { + phasedRegistrationNames: { + bubbled: keyOf({ onBeforeInput: null }), + captured: keyOf({ onBeforeInputCapture: null }) + }, + dependencies: [topLevelTypes.topCompositionEnd, topLevelTypes.topKeyPress, topLevelTypes.topTextInput, topLevelTypes.topPaste] + }, + compositionEnd: { + phasedRegistrationNames: { + bubbled: keyOf({ onCompositionEnd: null }), + captured: keyOf({ onCompositionEndCapture: null }) + }, + dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionEnd, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown] + }, + compositionStart: { + phasedRegistrationNames: { + bubbled: keyOf({ onCompositionStart: null }), + captured: keyOf({ onCompositionStartCapture: null }) + }, + dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionStart, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown] + }, + compositionUpdate: { + phasedRegistrationNames: { + bubbled: keyOf({ onCompositionUpdate: null }), + captured: keyOf({ onCompositionUpdateCapture: null }) + }, + dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionUpdate, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown] + } +}; + +// Track whether we've ever handled a keypress on the space key. +var hasSpaceKeypress = false; + +/** + * Return whether a native keypress event is assumed to be a command. + * This is required because Firefox fires `keypress` events for key commands + * (cut, copy, select-all, etc.) even though no character is inserted. + */ +function isKeypressCommand(nativeEvent) { + return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) && + // ctrlKey && altKey is equivalent to AltGr, and is not a command. + !(nativeEvent.ctrlKey && nativeEvent.altKey); +} + +/** + * Translate native top level events into event types. + * + * @param {string} topLevelType + * @return {object} + */ +function getCompositionEventType(topLevelType) { + switch (topLevelType) { + case topLevelTypes.topCompositionStart: + return eventTypes.compositionStart; + case topLevelTypes.topCompositionEnd: + return eventTypes.compositionEnd; + case topLevelTypes.topCompositionUpdate: + return eventTypes.compositionUpdate; + } +} + +/** + * Does our fallback best-guess model think this event signifies that + * composition has begun? + * + * @param {string} topLevelType + * @param {object} nativeEvent + * @return {boolean} + */ +function isFallbackCompositionStart(topLevelType, nativeEvent) { + return topLevelType === topLevelTypes.topKeyDown && nativeEvent.keyCode === START_KEYCODE; +} + +/** + * Does our fallback mode think that this event is the end of composition? + * + * @param {string} topLevelType + * @param {object} nativeEvent + * @return {boolean} + */ +function isFallbackCompositionEnd(topLevelType, nativeEvent) { + switch (topLevelType) { + case topLevelTypes.topKeyUp: + // Command keys insert or clear IME input. + return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1; + case topLevelTypes.topKeyDown: + // Expect IME keyCode on each keydown. If we get any other + // code we must have exited earlier. + return nativeEvent.keyCode !== START_KEYCODE; + case topLevelTypes.topKeyPress: + case topLevelTypes.topMouseDown: + case topLevelTypes.topBlur: + // Events are not possible without cancelling IME. + return true; + default: + return false; + } +} + +/** + * Google Input Tools provides composition data via a CustomEvent, + * with the `data` property populated in the `detail` object. If this + * is available on the event object, use it. If not, this is a plain + * composition event and we have nothing special to extract. + * + * @param {object} nativeEvent + * @return {?string} + */ +function getDataFromCustomEvent(nativeEvent) { + var detail = nativeEvent.detail; + if (typeof detail === 'object' && 'data' in detail) { + return detail.data; + } + return null; +} + +// Track the current IME composition fallback object, if any. +var currentComposition = null; + +/** + * @param {string} topLevelType Record from `EventConstants`. + * @param {DOMEventTarget} topLevelTarget The listening component root node. + * @param {string} topLevelTargetID ID of `topLevelTarget`. + * @param {object} nativeEvent Native browser event. + * @return {?object} A SyntheticCompositionEvent. + */ +function extractCompositionEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) { + var eventType; + var fallbackData; + + if (canUseCompositionEvent) { + eventType = getCompositionEventType(topLevelType); + } else if (!currentComposition) { + if (isFallbackCompositionStart(topLevelType, nativeEvent)) { + eventType = eventTypes.compositionStart; + } + } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) { + eventType = eventTypes.compositionEnd; + } + + if (!eventType) { + return null; + } + + if (useFallbackCompositionData) { + // The current composition is stored statically and must not be + // overwritten while composition continues. + if (!currentComposition && eventType === eventTypes.compositionStart) { + currentComposition = FallbackCompositionState.getPooled(topLevelTarget); + } else if (eventType === eventTypes.compositionEnd) { + if (currentComposition) { + fallbackData = currentComposition.getData(); + } + } + } + + var event = SyntheticCompositionEvent.getPooled(eventType, topLevelTargetID, nativeEvent, nativeEventTarget); + + if (fallbackData) { + // Inject data generated from fallback path into the synthetic event. + // This matches the property of native CompositionEventInterface. + event.data = fallbackData; + } else { + var customData = getDataFromCustomEvent(nativeEvent); + if (customData !== null) { + event.data = customData; + } + } + + EventPropagators.accumulateTwoPhaseDispatches(event); + return event; +} + +/** + * @param {string} topLevelType Record from `EventConstants`. + * @param {object} nativeEvent Native browser event. + * @return {?string} The string corresponding to this `beforeInput` event. + */ +function getNativeBeforeInputChars(topLevelType, nativeEvent) { + switch (topLevelType) { + case topLevelTypes.topCompositionEnd: + return getDataFromCustomEvent(nativeEvent); + case topLevelTypes.topKeyPress: + /** + * If native `textInput` events are available, our goal is to make + * use of them. However, there is a special case: the spacebar key. + * In Webkit, preventing default on a spacebar `textInput` event + * cancels character insertion, but it *also* causes the browser + * to fall back to its default spacebar behavior of scrolling the + * page. + * + * Tracking at: + * https://code.google.com/p/chromium/issues/detail?id=355103 + * + * To avoid this issue, use the keypress event as if no `textInput` + * event is available. + */ + var which = nativeEvent.which; + if (which !== SPACEBAR_CODE) { + return null; + } + + hasSpaceKeypress = true; + return SPACEBAR_CHAR; + + case topLevelTypes.topTextInput: + // Record the characters to be added to the DOM. + var chars = nativeEvent.data; + + // If it's a spacebar character, assume that we have already handled + // it at the keypress level and bail immediately. Android Chrome + // doesn't give us keycodes, so we need to blacklist it. + if (chars === SPACEBAR_CHAR && hasSpaceKeypress) { + return null; + } + + return chars; + + default: + // For other native event types, do nothing. + return null; + } +} + +/** + * For browsers that do not provide the `textInput` event, extract the + * appropriate string to use for SyntheticInputEvent. + * + * @param {string} topLevelType Record from `EventConstants`. + * @param {object} nativeEvent Native browser event. + * @return {?string} The fallback string for this `beforeInput` event. + */ +function getFallbackBeforeInputChars(topLevelType, nativeEvent) { + // If we are currently composing (IME) and using a fallback to do so, + // try to extract the composed characters from the fallback object. + if (currentComposition) { + if (topLevelType === topLevelTypes.topCompositionEnd || isFallbackCompositionEnd(topLevelType, nativeEvent)) { + var chars = currentComposition.getData(); + FallbackCompositionState.release(currentComposition); + currentComposition = null; + return chars; + } + return null; + } + + switch (topLevelType) { + case topLevelTypes.topPaste: + // If a paste event occurs after a keypress, throw out the input + // chars. Paste events should not lead to BeforeInput events. + return null; + case topLevelTypes.topKeyPress: + /** + * As of v27, Firefox may fire keypress events even when no character + * will be inserted. A few possibilities: + * + * - `which` is `0`. Arrow keys, Esc key, etc. + * + * - `which` is the pressed key code, but no char is available. + * Ex: 'AltGr + d` in Polish. There is no modified character for + * this key combination and no character is inserted into the + * document, but FF fires the keypress for char code `100` anyway. + * No `input` event will occur. + * + * - `which` is the pressed key code, but a command combination is + * being used. Ex: `Cmd+C`. No character is inserted, and no + * `input` event will occur. + */ + if (nativeEvent.which && !isKeypressCommand(nativeEvent)) { + return String.fromCharCode(nativeEvent.which); + } + return null; + case topLevelTypes.topCompositionEnd: + return useFallbackCompositionData ? null : nativeEvent.data; + default: + return null; + } +} + +/** + * Extract a SyntheticInputEvent for `beforeInput`, based on either native + * `textInput` or fallback behavior. + * + * @param {string} topLevelType Record from `EventConstants`. + * @param {DOMEventTarget} topLevelTarget The listening component root node. + * @param {string} topLevelTargetID ID of `topLevelTarget`. + * @param {object} nativeEvent Native browser event. + * @return {?object} A SyntheticInputEvent. + */ +function extractBeforeInputEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) { + var chars; + + if (canUseTextInputEvent) { + chars = getNativeBeforeInputChars(topLevelType, nativeEvent); + } else { + chars = getFallbackBeforeInputChars(topLevelType, nativeEvent); + } + + // If no characters are being inserted, no BeforeInput event should + // be fired. + if (!chars) { + return null; + } + + var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, topLevelTargetID, nativeEvent, nativeEventTarget); + + event.data = chars; + EventPropagators.accumulateTwoPhaseDispatches(event); + return event; +} + +/** + * Create an `onBeforeInput` event to match + * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents. + * + * This event plugin is based on the native `textInput` event + * available in Chrome, Safari, Opera, and IE. This event fires after + * `onKeyPress` and `onCompositionEnd`, but before `onInput`. + * + * `beforeInput` is spec'd but not implemented in any browsers, and + * the `input` event does not provide any useful information about what has + * actually been added, contrary to the spec. Thus, `textInput` is the best + * available event to identify the characters that have actually been inserted + * into the target node. + * + * This plugin is also responsible for emitting `composition` events, thus + * allowing us to share composition fallback code for both `beforeInput` and + * `composition` event types. + */ +var BeforeInputEventPlugin = { + + eventTypes: eventTypes, + + /** + * @param {string} topLevelType Record from `EventConstants`. + * @param {DOMEventTarget} topLevelTarget The listening component root node. + * @param {string} topLevelTargetID ID of `topLevelTarget`. + * @param {object} nativeEvent Native browser event. + * @return {*} An accumulation of synthetic events. + * @see {EventPluginHub.extractEvents} + */ + extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) { + return [extractCompositionEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget), extractBeforeInputEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget)]; + } +}; + +module.exports = BeforeInputEventPlugin; +},{"130":130,"148":148,"15":15,"19":19,"20":20,"90":90,"94":94}],4:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule CSSProperty + */ + +'use strict'; + +/** + * CSS properties which accept numbers but are not in units of "px". + */ +var isUnitlessNumber = { + animationIterationCount: true, + boxFlex: true, + boxFlexGroup: true, + boxOrdinalGroup: true, + columnCount: true, + flex: true, + flexGrow: true, + flexPositive: true, + flexShrink: true, + flexNegative: true, + flexOrder: true, + fontWeight: true, + lineClamp: true, + lineHeight: true, + opacity: true, + order: true, + orphans: true, + tabSize: true, + widows: true, + zIndex: true, + zoom: true, + + // SVG-related properties + fillOpacity: true, + stopOpacity: true, + strokeDashoffset: true, + strokeOpacity: true, + strokeWidth: true +}; + +/** + * @param {string} prefix vendor-specific prefix, eg: Webkit + * @param {string} key style name, eg: transitionDuration + * @return {string} style name prefixed with `prefix`, properly camelCased, eg: + * WebkitTransitionDuration + */ +function prefixKey(prefix, key) { + return prefix + key.charAt(0).toUpperCase() + key.substring(1); +} + +/** + * Support style names that may come passed in prefixed by adding permutations + * of vendor prefixes. + */ +var prefixes = ['Webkit', 'ms', 'Moz', 'O']; + +// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an +// infinite loop, because it iterates over the newly added props too. +Object.keys(isUnitlessNumber).forEach(function (prop) { + prefixes.forEach(function (prefix) { + isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop]; + }); +}); + +/** + * Most style properties can be unset by doing .style[prop] = '' but IE8 + * doesn't like doing that with shorthand properties so for the properties that + * IE8 breaks on, which are listed here, we instead unset each of the + * individual properties. See http://bugs.jquery.com/ticket/12385. + * The 4-value 'clock' properties like margin, padding, border-width seem to + * behave without any problems. Curiously, list-style works too without any + * special prodding. + */ +var shorthandPropertyExpansions = { + background: { + backgroundAttachment: true, + backgroundColor: true, + backgroundImage: true, + backgroundPositionX: true, + backgroundPositionY: true, + backgroundRepeat: true + }, + backgroundPosition: { + backgroundPositionX: true, + backgroundPositionY: true + }, + border: { + borderWidth: true, + borderStyle: true, + borderColor: true + }, + borderBottom: { + borderBottomWidth: true, + borderBottomStyle: true, + borderBottomColor: true + }, + borderLeft: { + borderLeftWidth: true, + borderLeftStyle: true, + borderLeftColor: true + }, + borderRight: { + borderRightWidth: true, + borderRightStyle: true, + borderRightColor: true + }, + borderTop: { + borderTopWidth: true, + borderTopStyle: true, + borderTopColor: true + }, + font: { + fontStyle: true, + fontVariant: true, + fontWeight: true, + fontSize: true, + lineHeight: true, + fontFamily: true + }, + outline: { + outlineWidth: true, + outlineStyle: true, + outlineColor: true + } +}; + +var CSSProperty = { + isUnitlessNumber: isUnitlessNumber, + shorthandPropertyExpansions: shorthandPropertyExpansions +}; + +module.exports = CSSProperty; +},{}],5:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule CSSPropertyOperations + * @typechecks static-only + */ + +'use strict'; + +var CSSProperty = _dereq_(4); +var ExecutionEnvironment = _dereq_(130); +var ReactPerf = _dereq_(71); + +var camelizeStyleName = _dereq_(132); +var dangerousStyleValue = _dereq_(105); +var hyphenateStyleName = _dereq_(143); +var memoizeStringOnly = _dereq_(150); +var warning = _dereq_(155); + +var processStyleName = memoizeStringOnly(function (styleName) { + return hyphenateStyleName(styleName); +}); + +var hasShorthandPropertyBug = false; +var styleFloatAccessor = 'cssFloat'; +if (ExecutionEnvironment.canUseDOM) { + var tempStyle = document.createElement('div').style; + try { + // IE8 throws "Invalid argument." if resetting shorthand style properties. + tempStyle.font = ''; + } catch (e) { + hasShorthandPropertyBug = true; + } + // IE8 only supports accessing cssFloat (standard) as styleFloat + if (document.documentElement.style.cssFloat === undefined) { + styleFloatAccessor = 'styleFloat'; + } +} + +if ("development" !== 'production') { + // 'msTransform' is correct, but the other prefixes should be capitalized + var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/; + + // style values shouldn't contain a semicolon + var badStyleValueWithSemicolonPattern = /;\s*$/; + + var warnedStyleNames = {}; + var warnedStyleValues = {}; + + var warnHyphenatedStyleName = function (name) { + if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) { + return; + } + + warnedStyleNames[name] = true; + "development" !== 'production' ? warning(false, 'Unsupported style property %s. Did you mean %s?', name, camelizeStyleName(name)) : undefined; + }; + + var warnBadVendoredStyleName = function (name) { + if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) { + return; + } + + warnedStyleNames[name] = true; + "development" !== 'production' ? warning(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?', name, name.charAt(0).toUpperCase() + name.slice(1)) : undefined; + }; + + var warnStyleValueWithSemicolon = function (name, value) { + if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) { + return; + } + + warnedStyleValues[value] = true; + "development" !== 'production' ? warning(false, 'Style property values shouldn\'t contain a semicolon. ' + 'Try "%s: %s" instead.', name, value.replace(badStyleValueWithSemicolonPattern, '')) : undefined; + }; + + /** + * @param {string} name + * @param {*} value + */ + var warnValidStyle = function (name, value) { + if (name.indexOf('-') > -1) { + warnHyphenatedStyleName(name); + } else if (badVendoredStyleNamePattern.test(name)) { + warnBadVendoredStyleName(name); + } else if (badStyleValueWithSemicolonPattern.test(value)) { + warnStyleValueWithSemicolon(name, value); + } + }; +} + +/** + * Operations for dealing with CSS properties. + */ +var CSSPropertyOperations = { + + /** + * Serializes a mapping of style properties for use as inline styles: + * + * > createMarkupForStyles({width: '200px', height: 0}) + * "width:200px;height:0;" + * + * Undefined values are ignored so that declarative programming is easier. + * The result should be HTML-escaped before insertion into the DOM. + * + * @param {object} styles + * @return {?string} + */ + createMarkupForStyles: function (styles) { + var serialized = ''; + for (var styleName in styles) { + if (!styles.hasOwnProperty(styleName)) { + continue; + } + var styleValue = styles[styleName]; + if ("development" !== 'production') { + warnValidStyle(styleName, styleValue); + } + if (styleValue != null) { + serialized += processStyleName(styleName) + ':'; + serialized += dangerousStyleValue(styleName, styleValue) + ';'; + } + } + return serialized || null; + }, + + /** + * Sets the value for multiple styles on a node. If a value is specified as + * '' (empty string), the corresponding style property will be unset. + * + * @param {DOMElement} node + * @param {object} styles + */ + setValueForStyles: function (node, styles) { + var style = node.style; + for (var styleName in styles) { + if (!styles.hasOwnProperty(styleName)) { + continue; + } + if ("development" !== 'production') { + warnValidStyle(styleName, styles[styleName]); + } + var styleValue = dangerousStyleValue(styleName, styles[styleName]); + if (styleName === 'float') { + styleName = styleFloatAccessor; + } + if (styleValue) { + style[styleName] = styleValue; + } else { + var expansion = hasShorthandPropertyBug && CSSProperty.shorthandPropertyExpansions[styleName]; + if (expansion) { + // Shorthand property that IE8 won't like unsetting, so unset each + // component to placate it + for (var individualStyleName in expansion) { + style[individualStyleName] = ''; + } + } else { + style[styleName] = ''; + } + } + } + } + +}; + +ReactPerf.measureMethods(CSSPropertyOperations, 'CSSPropertyOperations', { + setValueForStyles: 'setValueForStyles' +}); + +module.exports = CSSPropertyOperations; +},{"105":105,"130":130,"132":132,"143":143,"150":150,"155":155,"4":4,"71":71}],6:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule CallbackQueue + */ + +'use strict'; + +var PooledClass = _dereq_(24); + +var assign = _dereq_(23); +var invariant = _dereq_(144); + +/** + * A specialized pseudo-event module to help keep track of components waiting to + * be notified when their DOM representations are available for use. + * + * This implements `PooledClass`, so you should never need to instantiate this. + * Instead, use `CallbackQueue.getPooled()`. + * + * @class ReactMountReady + * @implements PooledClass + * @internal + */ +function CallbackQueue() { + this._callbacks = null; + this._contexts = null; +} + +assign(CallbackQueue.prototype, { + + /** + * Enqueues a callback to be invoked when `notifyAll` is invoked. + * + * @param {function} callback Invoked when `notifyAll` is invoked. + * @param {?object} context Context to call `callback` with. + * @internal + */ + enqueue: function (callback, context) { + this._callbacks = this._callbacks || []; + this._contexts = this._contexts || []; + this._callbacks.push(callback); + this._contexts.push(context); + }, + + /** + * Invokes all enqueued callbacks and clears the queue. This is invoked after + * the DOM representation of a component has been created or updated. + * + * @internal + */ + notifyAll: function () { + var callbacks = this._callbacks; + var contexts = this._contexts; + if (callbacks) { + !(callbacks.length === contexts.length) ? "development" !== 'production' ? invariant(false, 'Mismatched list of contexts in callback queue') : invariant(false) : undefined; + this._callbacks = null; + this._contexts = null; + for (var i = 0; i < callbacks.length; i++) { + callbacks[i].call(contexts[i]); + } + callbacks.length = 0; + contexts.length = 0; + } + }, + + /** + * Resets the internal queue. + * + * @internal + */ + reset: function () { + this._callbacks = null; + this._contexts = null; + }, + + /** + * `PooledClass` looks for this. + */ + destructor: function () { + this.reset(); + } + +}); + +PooledClass.addPoolingTo(CallbackQueue); + +module.exports = CallbackQueue; +},{"144":144,"23":23,"24":24}],7:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ChangeEventPlugin + */ + +'use strict'; + +var EventConstants = _dereq_(15); +var EventPluginHub = _dereq_(16); +var EventPropagators = _dereq_(19); +var ExecutionEnvironment = _dereq_(130); +var ReactUpdates = _dereq_(83); +var SyntheticEvent = _dereq_(92); + +var getEventTarget = _dereq_(114); +var isEventSupported = _dereq_(119); +var isTextInputElement = _dereq_(120); +var keyOf = _dereq_(148); + +var topLevelTypes = EventConstants.topLevelTypes; + +var eventTypes = { + change: { + phasedRegistrationNames: { + bubbled: keyOf({ onChange: null }), + captured: keyOf({ onChangeCapture: null }) + }, + dependencies: [topLevelTypes.topBlur, topLevelTypes.topChange, topLevelTypes.topClick, topLevelTypes.topFocus, topLevelTypes.topInput, topLevelTypes.topKeyDown, topLevelTypes.topKeyUp, topLevelTypes.topSelectionChange] + } +}; + +/** + * For IE shims + */ +var activeElement = null; +var activeElementID = null; +var activeElementValue = null; +var activeElementValueProp = null; + +/** + * SECTION: handle `change` event + */ +function shouldUseChangeEvent(elem) { + var nodeName = elem.nodeName && elem.nodeName.toLowerCase(); + return nodeName === 'select' || nodeName === 'input' && elem.type === 'file'; +} + +var doesChangeEventBubble = false; +if (ExecutionEnvironment.canUseDOM) { + // See `handleChange` comment below + doesChangeEventBubble = isEventSupported('change') && (!('documentMode' in document) || document.documentMode > 8); +} + +function manualDispatchChangeEvent(nativeEvent) { + var event = SyntheticEvent.getPooled(eventTypes.change, activeElementID, nativeEvent, getEventTarget(nativeEvent)); + EventPropagators.accumulateTwoPhaseDispatches(event); + + // If change and propertychange bubbled, we'd just bind to it like all the + // other events and have it go through ReactBrowserEventEmitter. Since it + // doesn't, we manually listen for the events and so we have to enqueue and + // process the abstract event manually. + // + // Batching is necessary here in order to ensure that all event handlers run + // before the next rerender (including event handlers attached to ancestor + // elements instead of directly on the input). Without this, controlled + // components don't work properly in conjunction with event bubbling because + // the component is rerendered and the value reverted before all the event + // handlers can run. See https://github.com/facebook/react/issues/708. + ReactUpdates.batchedUpdates(runEventInBatch, event); +} + +function runEventInBatch(event) { + EventPluginHub.enqueueEvents(event); + EventPluginHub.processEventQueue(false); +} + +function startWatchingForChangeEventIE8(target, targetID) { + activeElement = target; + activeElementID = targetID; + activeElement.attachEvent('onchange', manualDispatchChangeEvent); +} + +function stopWatchingForChangeEventIE8() { + if (!activeElement) { + return; + } + activeElement.detachEvent('onchange', manualDispatchChangeEvent); + activeElement = null; + activeElementID = null; +} + +function getTargetIDForChangeEvent(topLevelType, topLevelTarget, topLevelTargetID) { + if (topLevelType === topLevelTypes.topChange) { + return topLevelTargetID; + } +} +function handleEventsForChangeEventIE8(topLevelType, topLevelTarget, topLevelTargetID) { + if (topLevelType === topLevelTypes.topFocus) { + // stopWatching() should be a noop here but we call it just in case we + // missed a blur event somehow. + stopWatchingForChangeEventIE8(); + startWatchingForChangeEventIE8(topLevelTarget, topLevelTargetID); + } else if (topLevelType === topLevelTypes.topBlur) { + stopWatchingForChangeEventIE8(); + } +} + +/** + * SECTION: handle `input` event + */ +var isInputEventSupported = false; +if (ExecutionEnvironment.canUseDOM) { + // IE9 claims to support the input event but fails to trigger it when + // deleting text, so we ignore its input events + isInputEventSupported = isEventSupported('input') && (!('documentMode' in document) || document.documentMode > 9); +} + +/** + * (For old IE.) Replacement getter/setter for the `value` property that gets + * set on the active element. + */ +var newValueProp = { + get: function () { + return activeElementValueProp.get.call(this); + }, + set: function (val) { + // Cast to a string so we can do equality checks. + activeElementValue = '' + val; + activeElementValueProp.set.call(this, val); + } +}; + +/** + * (For old IE.) Starts tracking propertychange events on the passed-in element + * and override the value property so that we can distinguish user events from + * value changes in JS. + */ +function startWatchingForValueChange(target, targetID) { + activeElement = target; + activeElementID = targetID; + activeElementValue = target.value; + activeElementValueProp = Object.getOwnPropertyDescriptor(target.constructor.prototype, 'value'); + + // Not guarded in a canDefineProperty check: IE8 supports defineProperty only + // on DOM elements + Object.defineProperty(activeElement, 'value', newValueProp); + activeElement.attachEvent('onpropertychange', handlePropertyChange); +} + +/** + * (For old IE.) Removes the event listeners from the currently-tracked element, + * if any exists. + */ +function stopWatchingForValueChange() { + if (!activeElement) { + return; + } + + // delete restores the original property definition + delete activeElement.value; + activeElement.detachEvent('onpropertychange', handlePropertyChange); + + activeElement = null; + activeElementID = null; + activeElementValue = null; + activeElementValueProp = null; +} + +/** + * (For old IE.) Handles a propertychange event, sending a `change` event if + * the value of the active element has changed. + */ +function handlePropertyChange(nativeEvent) { + if (nativeEvent.propertyName !== 'value') { + return; + } + var value = nativeEvent.srcElement.value; + if (value === activeElementValue) { + return; + } + activeElementValue = value; + + manualDispatchChangeEvent(nativeEvent); +} + +/** + * If a `change` event should be fired, returns the target's ID. + */ +function getTargetIDForInputEvent(topLevelType, topLevelTarget, topLevelTargetID) { + if (topLevelType === topLevelTypes.topInput) { + // In modern browsers (i.e., not IE8 or IE9), the input event is exactly + // what we want so fall through here and trigger an abstract event + return topLevelTargetID; + } +} + +// For IE8 and IE9. +function handleEventsForInputEventIE(topLevelType, topLevelTarget, topLevelTargetID) { + if (topLevelType === topLevelTypes.topFocus) { + // In IE8, we can capture almost all .value changes by adding a + // propertychange handler and looking for events with propertyName + // equal to 'value' + // In IE9, propertychange fires for most input events but is buggy and + // doesn't fire when text is deleted, but conveniently, selectionchange + // appears to fire in all of the remaining cases so we catch those and + // forward the event if the value has changed + // In either case, we don't want to call the event handler if the value + // is changed from JS so we redefine a setter for `.value` that updates + // our activeElementValue variable, allowing us to ignore those changes + // + // stopWatching() should be a noop here but we call it just in case we + // missed a blur event somehow. + stopWatchingForValueChange(); + startWatchingForValueChange(topLevelTarget, topLevelTargetID); + } else if (topLevelType === topLevelTypes.topBlur) { + stopWatchingForValueChange(); + } +} + +// For IE8 and IE9. +function getTargetIDForInputEventIE(topLevelType, topLevelTarget, topLevelTargetID) { + if (topLevelType === topLevelTypes.topSelectionChange || topLevelType === topLevelTypes.topKeyUp || topLevelType === topLevelTypes.topKeyDown) { + // On the selectionchange event, the target is just document which isn't + // helpful for us so just check activeElement instead. + // + // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire + // propertychange on the first input event after setting `value` from a + // script and fires only keydown, keypress, keyup. Catching keyup usually + // gets it and catching keydown lets us fire an event for the first + // keystroke if user does a key repeat (it'll be a little delayed: right + // before the second keystroke). Other input methods (e.g., paste) seem to + // fire selectionchange normally. + if (activeElement && activeElement.value !== activeElementValue) { + activeElementValue = activeElement.value; + return activeElementID; + } + } +} + +/** + * SECTION: handle `click` event + */ +function shouldUseClickEvent(elem) { + // Use the `click` event to detect changes to checkbox and radio inputs. + // This approach works across all browsers, whereas `change` does not fire + // until `blur` in IE8. + return elem.nodeName && elem.nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio'); +} + +function getTargetIDForClickEvent(topLevelType, topLevelTarget, topLevelTargetID) { + if (topLevelType === topLevelTypes.topClick) { + return topLevelTargetID; + } +} + +/** + * This plugin creates an `onChange` event that normalizes change events + * across form elements. This event fires at a time when it's possible to + * change the element's value without seeing a flicker. + * + * Supported elements are: + * - input (see `isTextInputElement`) + * - textarea + * - select + */ +var ChangeEventPlugin = { + + eventTypes: eventTypes, + + /** + * @param {string} topLevelType Record from `EventConstants`. + * @param {DOMEventTarget} topLevelTarget The listening component root node. + * @param {string} topLevelTargetID ID of `topLevelTarget`. + * @param {object} nativeEvent Native browser event. + * @return {*} An accumulation of synthetic events. + * @see {EventPluginHub.extractEvents} + */ + extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) { + + var getTargetIDFunc, handleEventFunc; + if (shouldUseChangeEvent(topLevelTarget)) { + if (doesChangeEventBubble) { + getTargetIDFunc = getTargetIDForChangeEvent; + } else { + handleEventFunc = handleEventsForChangeEventIE8; + } + } else if (isTextInputElement(topLevelTarget)) { + if (isInputEventSupported) { + getTargetIDFunc = getTargetIDForInputEvent; + } else { + getTargetIDFunc = getTargetIDForInputEventIE; + handleEventFunc = handleEventsForInputEventIE; + } + } else if (shouldUseClickEvent(topLevelTarget)) { + getTargetIDFunc = getTargetIDForClickEvent; + } + + if (getTargetIDFunc) { + var targetID = getTargetIDFunc(topLevelType, topLevelTarget, topLevelTargetID); + if (targetID) { + var event = SyntheticEvent.getPooled(eventTypes.change, targetID, nativeEvent, nativeEventTarget); + event.type = 'change'; + EventPropagators.accumulateTwoPhaseDispatches(event); + return event; + } + } + + if (handleEventFunc) { + handleEventFunc(topLevelType, topLevelTarget, topLevelTargetID); + } + } + +}; + +module.exports = ChangeEventPlugin; +},{"114":114,"119":119,"120":120,"130":130,"148":148,"15":15,"16":16,"19":19,"83":83,"92":92}],8:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ClientReactRootIndex + * @typechecks + */ + +'use strict'; + +var nextReactRootIndex = 0; + +var ClientReactRootIndex = { + createReactRootIndex: function () { + return nextReactRootIndex++; + } +}; + +module.exports = ClientReactRootIndex; +},{}],9:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule DOMChildrenOperations + * @typechecks static-only + */ + +'use strict'; + +var Danger = _dereq_(12); +var ReactMultiChildUpdateTypes = _dereq_(67); +var ReactPerf = _dereq_(71); + +var setInnerHTML = _dereq_(124); +var setTextContent = _dereq_(125); +var invariant = _dereq_(144); + +/** + * Inserts `childNode` as a child of `parentNode` at the `index`. + * + * @param {DOMElement} parentNode Parent node in which to insert. + * @param {DOMElement} childNode Child node to insert. + * @param {number} index Index at which to insert the child. + * @internal + */ +function insertChildAt(parentNode, childNode, index) { + // By exploiting arrays returning `undefined` for an undefined index, we can + // rely exclusively on `insertBefore(node, null)` instead of also using + // `appendChild(node)`. However, using `undefined` is not allowed by all + // browsers so we must replace it with `null`. + + // fix render order error in safari + // IE8 will throw error when index out of list size. + var beforeChild = index >= parentNode.childNodes.length ? null : parentNode.childNodes.item(index); + + parentNode.insertBefore(childNode, beforeChild); +} + +/** + * Operations for updating with DOM children. + */ +var DOMChildrenOperations = { + + dangerouslyReplaceNodeWithMarkup: Danger.dangerouslyReplaceNodeWithMarkup, + + updateTextContent: setTextContent, + + /** + * Updates a component's children by processing a series of updates. The + * update configurations are each expected to have a `parentNode` property. + * + * @param {array<object>} updates List of update configurations. + * @param {array<string>} markupList List of markup strings. + * @internal + */ + processUpdates: function (updates, markupList) { + var update; + // Mapping from parent IDs to initial child orderings. + var initialChildren = null; + // List of children that will be moved or removed. + var updatedChildren = null; + + for (var i = 0; i < updates.length; i++) { + update = updates[i]; + if (update.type === ReactMultiChildUpdateTypes.MOVE_EXISTING || update.type === ReactMultiChildUpdateTypes.REMOVE_NODE) { + var updatedIndex = update.fromIndex; + var updatedChild = update.parentNode.childNodes[updatedIndex]; + var parentID = update.parentID; + + !updatedChild ? "development" !== 'production' ? invariant(false, 'processUpdates(): Unable to find child %s of element. This ' + 'probably means the DOM was unexpectedly mutated (e.g., by the ' + 'browser), usually due to forgetting a <tbody> when using tables, ' + 'nesting tags like <form>, <p>, or <a>, or using non-SVG elements ' + 'in an <svg> parent. Try inspecting the child nodes of the element ' + 'with React ID `%s`.', updatedIndex, parentID) : invariant(false) : undefined; + + initialChildren = initialChildren || {}; + initialChildren[parentID] = initialChildren[parentID] || []; + initialChildren[parentID][updatedIndex] = updatedChild; + + updatedChildren = updatedChildren || []; + updatedChildren.push(updatedChild); + } + } + + var renderedMarkup; + // markupList is either a list of markup or just a list of elements + if (markupList.length && typeof markupList[0] === 'string') { + renderedMarkup = Danger.dangerouslyRenderMarkup(markupList); + } else { + renderedMarkup = markupList; + } + + // Remove updated children first so that `toIndex` is consistent. + if (updatedChildren) { + for (var j = 0; j < updatedChildren.length; j++) { + updatedChildren[j].parentNode.removeChild(updatedChildren[j]); + } + } + + for (var k = 0; k < updates.length; k++) { + update = updates[k]; + switch (update.type) { + case ReactMultiChildUpdateTypes.INSERT_MARKUP: + insertChildAt(update.parentNode, renderedMarkup[update.markupIndex], update.toIndex); + break; + case ReactMultiChildUpdateTypes.MOVE_EXISTING: + insertChildAt(update.parentNode, initialChildren[update.parentID][update.fromIndex], update.toIndex); + break; + case ReactMultiChildUpdateTypes.SET_MARKUP: + setInnerHTML(update.parentNode, update.content); + break; + case ReactMultiChildUpdateTypes.TEXT_CONTENT: + setTextContent(update.parentNode, update.content); + break; + case ReactMultiChildUpdateTypes.REMOVE_NODE: + // Already removed by the for-loop above. + break; + } + } + } + +}; + +ReactPerf.measureMethods(DOMChildrenOperations, 'DOMChildrenOperations', { + updateTextContent: 'updateTextContent' +}); + +module.exports = DOMChildrenOperations; +},{"12":12,"124":124,"125":125,"144":144,"67":67,"71":71}],10:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule DOMProperty + * @typechecks static-only + */ + +'use strict'; + +var invariant = _dereq_(144); + +function checkMask(value, bitmask) { + return (value & bitmask) === bitmask; +} + +var DOMPropertyInjection = { + /** + * Mapping from normalized, camelcased property names to a configuration that + * specifies how the associated DOM property should be accessed or rendered. + */ + MUST_USE_ATTRIBUTE: 0x1, + MUST_USE_PROPERTY: 0x2, + HAS_SIDE_EFFECTS: 0x4, + HAS_BOOLEAN_VALUE: 0x8, + HAS_NUMERIC_VALUE: 0x10, + HAS_POSITIVE_NUMERIC_VALUE: 0x20 | 0x10, + HAS_OVERLOADED_BOOLEAN_VALUE: 0x40, + + /** + * Inject some specialized knowledge about the DOM. This takes a config object + * with the following properties: + * + * isCustomAttribute: function that given an attribute name will return true + * if it can be inserted into the DOM verbatim. Useful for data-* or aria-* + * attributes where it's impossible to enumerate all of the possible + * attribute names, + * + * Properties: object mapping DOM property name to one of the + * DOMPropertyInjection constants or null. If your attribute isn't in here, + * it won't get written to the DOM. + * + * DOMAttributeNames: object mapping React attribute name to the DOM + * attribute name. Attribute names not specified use the **lowercase** + * normalized name. + * + * DOMAttributeNamespaces: object mapping React attribute name to the DOM + * attribute namespace URL. (Attribute names not specified use no namespace.) + * + * DOMPropertyNames: similar to DOMAttributeNames but for DOM properties. + * Property names not specified use the normalized name. + * + * DOMMutationMethods: Properties that require special mutation methods. If + * `value` is undefined, the mutation method should unset the property. + * + * @param {object} domPropertyConfig the config as described above. + */ + injectDOMPropertyConfig: function (domPropertyConfig) { + var Injection = DOMPropertyInjection; + var Properties = domPropertyConfig.Properties || {}; + var DOMAttributeNamespaces = domPropertyConfig.DOMAttributeNamespaces || {}; + var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {}; + var DOMPropertyNames = domPropertyConfig.DOMPropertyNames || {}; + var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {}; + + if (domPropertyConfig.isCustomAttribute) { + DOMProperty._isCustomAttributeFunctions.push(domPropertyConfig.isCustomAttribute); + } + + for (var propName in Properties) { + !!DOMProperty.properties.hasOwnProperty(propName) ? "development" !== 'production' ? invariant(false, 'injectDOMPropertyConfig(...): You\'re trying to inject DOM property ' + '\'%s\' which has already been injected. You may be accidentally ' + 'injecting the same DOM property config twice, or you may be ' + 'injecting two configs that have conflicting property names.', propName) : invariant(false) : undefined; + + var lowerCased = propName.toLowerCase(); + var propConfig = Properties[propName]; + + var propertyInfo = { + attributeName: lowerCased, + attributeNamespace: null, + propertyName: propName, + mutationMethod: null, + + mustUseAttribute: checkMask(propConfig, Injection.MUST_USE_ATTRIBUTE), + mustUseProperty: checkMask(propConfig, Injection.MUST_USE_PROPERTY), + hasSideEffects: checkMask(propConfig, Injection.HAS_SIDE_EFFECTS), + hasBooleanValue: checkMask(propConfig, Injection.HAS_BOOLEAN_VALUE), + hasNumericValue: checkMask(propConfig, Injection.HAS_NUMERIC_VALUE), + hasPositiveNumericValue: checkMask(propConfig, Injection.HAS_POSITIVE_NUMERIC_VALUE), + hasOverloadedBooleanValue: checkMask(propConfig, Injection.HAS_OVERLOADED_BOOLEAN_VALUE) + }; + + !(!propertyInfo.mustUseAttribute || !propertyInfo.mustUseProperty) ? "development" !== 'production' ? invariant(false, 'DOMProperty: Cannot require using both attribute and property: %s', propName) : invariant(false) : undefined; + !(propertyInfo.mustUseProperty || !propertyInfo.hasSideEffects) ? "development" !== 'production' ? invariant(false, 'DOMProperty: Properties that have side effects must use property: %s', propName) : invariant(false) : undefined; + !(propertyInfo.hasBooleanValue + propertyInfo.hasNumericValue + propertyInfo.hasOverloadedBooleanValue <= 1) ? "development" !== 'production' ? invariant(false, 'DOMProperty: Value can be one of boolean, overloaded boolean, or ' + 'numeric value, but not a combination: %s', propName) : invariant(false) : undefined; + + if ("development" !== 'production') { + DOMProperty.getPossibleStandardName[lowerCased] = propName; + } + + if (DOMAttributeNames.hasOwnProperty(propName)) { + var attributeName = DOMAttributeNames[propName]; + propertyInfo.attributeName = attributeName; + if ("development" !== 'production') { + DOMProperty.getPossibleStandardName[attributeName] = propName; + } + } + + if (DOMAttributeNamespaces.hasOwnProperty(propName)) { + propertyInfo.attributeNamespace = DOMAttributeNamespaces[propName]; + } + + if (DOMPropertyNames.hasOwnProperty(propName)) { + propertyInfo.propertyName = DOMPropertyNames[propName]; + } + + if (DOMMutationMethods.hasOwnProperty(propName)) { + propertyInfo.mutationMethod = DOMMutationMethods[propName]; + } + + DOMProperty.properties[propName] = propertyInfo; + } + } +}; +var defaultValueCache = {}; + +/** + * DOMProperty exports lookup objects that can be used like functions: + * + * > DOMProperty.isValid['id'] + * true + * > DOMProperty.isValid['foobar'] + * undefined + * + * Although this may be confusing, it performs better in general. + * + * @see http://jsperf.com/key-exists + * @see http://jsperf.com/key-missing + */ +var DOMProperty = { + + ID_ATTRIBUTE_NAME: 'data-reactid', + + /** + * Map from property "standard name" to an object with info about how to set + * the property in the DOM. Each object contains: + * + * attributeName: + * Used when rendering markup or with `*Attribute()`. + * attributeNamespace + * propertyName: + * Used on DOM node instances. (This includes properties that mutate due to + * external factors.) + * mutationMethod: + * If non-null, used instead of the property or `setAttribute()` after + * initial render. + * mustUseAttribute: + * Whether the property must be accessed and mutated using `*Attribute()`. + * (This includes anything that fails `<propName> in <element>`.) + * mustUseProperty: + * Whether the property must be accessed and mutated as an object property. + * hasSideEffects: + * Whether or not setting a value causes side effects such as triggering + * resources to be loaded or text selection changes. If true, we read from + * the DOM before updating to ensure that the value is only set if it has + * changed. + * hasBooleanValue: + * Whether the property should be removed when set to a falsey value. + * hasNumericValue: + * Whether the property must be numeric or parse as a numeric and should be + * removed when set to a falsey value. + * hasPositiveNumericValue: + * Whether the property must be positive numeric or parse as a positive + * numeric and should be removed when set to a falsey value. + * hasOverloadedBooleanValue: + * Whether the property can be used as a flag as well as with a value. + * Removed when strictly equal to false; present without a value when + * strictly equal to true; present with a value otherwise. + */ + properties: {}, + + /** + * Mapping from lowercase property names to the properly cased version, used + * to warn in the case of missing properties. Available only in __DEV__. + * @type {Object} + */ + getPossibleStandardName: "development" !== 'production' ? {} : null, + + /** + * All of the isCustomAttribute() functions that have been injected. + */ + _isCustomAttributeFunctions: [], + + /** + * Checks whether a property name is a custom attribute. + * @method + */ + isCustomAttribute: function (attributeName) { + for (var i = 0; i < DOMProperty._isCustomAttributeFunctions.length; i++) { + var isCustomAttributeFn = DOMProperty._isCustomAttributeFunctions[i]; + if (isCustomAttributeFn(attributeName)) { + return true; + } + } + return false; + }, + + /** + * Returns the default property value for a DOM property (i.e., not an + * attribute). Most default values are '' or false, but not all. Worse yet, + * some (in particular, `type`) vary depending on the type of element. + * + * TODO: Is it better to grab all the possible properties when creating an + * element to avoid having to create the same element twice? + */ + getDefaultValueForProperty: function (nodeName, prop) { + var nodeDefaults = defaultValueCache[nodeName]; + var testElement; + if (!nodeDefaults) { + defaultValueCache[nodeName] = nodeDefaults = {}; + } + if (!(prop in nodeDefaults)) { + testElement = document.createElement(nodeName); + nodeDefaults[prop] = testElement[prop]; + } + return nodeDefaults[prop]; + }, + + injection: DOMPropertyInjection +}; + +module.exports = DOMProperty; +},{"144":144}],11:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule DOMPropertyOperations + * @typechecks static-only + */ + +'use strict'; + +var DOMProperty = _dereq_(10); +var ReactPerf = _dereq_(71); + +var quoteAttributeValueForBrowser = _dereq_(122); +var warning = _dereq_(155); + +// Simplified subset +var VALID_ATTRIBUTE_NAME_REGEX = /^[a-zA-Z_][\w\.\-]*$/; +var illegalAttributeNameCache = {}; +var validatedAttributeNameCache = {}; + +function isAttributeNameSafe(attributeName) { + if (validatedAttributeNameCache.hasOwnProperty(attributeName)) { + return true; + } + if (illegalAttributeNameCache.hasOwnProperty(attributeName)) { + return false; + } + if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) { + validatedAttributeNameCache[attributeName] = true; + return true; + } + illegalAttributeNameCache[attributeName] = true; + "development" !== 'production' ? warning(false, 'Invalid attribute name: `%s`', attributeName) : undefined; + return false; +} + +function shouldIgnoreValue(propertyInfo, value) { + return value == null || propertyInfo.hasBooleanValue && !value || propertyInfo.hasNumericValue && isNaN(value) || propertyInfo.hasPositiveNumericValue && value < 1 || propertyInfo.hasOverloadedBooleanValue && value === false; +} + +if ("development" !== 'production') { + var reactProps = { + children: true, + dangerouslySetInnerHTML: true, + key: true, + ref: true + }; + var warnedProperties = {}; + + var warnUnknownProperty = function (name) { + if (reactProps.hasOwnProperty(name) && reactProps[name] || warnedProperties.hasOwnProperty(name) && warnedProperties[name]) { + return; + } + + warnedProperties[name] = true; + var lowerCasedName = name.toLowerCase(); + + // data-* attributes should be lowercase; suggest the lowercase version + var standardName = DOMProperty.isCustomAttribute(lowerCasedName) ? lowerCasedName : DOMProperty.getPossibleStandardName.hasOwnProperty(lowerCasedName) ? DOMProperty.getPossibleStandardName[lowerCasedName] : null; + + // For now, only warn when we have a suggested correction. This prevents + // logging too much when using transferPropsTo. + "development" !== 'production' ? warning(standardName == null, 'Unknown DOM property %s. Did you mean %s?', name, standardName) : undefined; + }; +} + +/** + * Operations for dealing with DOM properties. + */ +var DOMPropertyOperations = { + + /** + * Creates markup for the ID property. + * + * @param {string} id Unescaped ID. + * @return {string} Markup string. + */ + createMarkupForID: function (id) { + return DOMProperty.ID_ATTRIBUTE_NAME + '=' + quoteAttributeValueForBrowser(id); + }, + + setAttributeForID: function (node, id) { + node.setAttribute(DOMProperty.ID_ATTRIBUTE_NAME, id); + }, + + /** + * Creates markup for a property. + * + * @param {string} name + * @param {*} value + * @return {?string} Markup string, or null if the property was invalid. + */ + createMarkupForProperty: function (name, value) { + var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null; + if (propertyInfo) { + if (shouldIgnoreValue(propertyInfo, value)) { + return ''; + } + var attributeName = propertyInfo.attributeName; + if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) { + return attributeName + '=""'; + } + return attributeName + '=' + quoteAttributeValueForBrowser(value); + } else if (DOMProperty.isCustomAttribute(name)) { + if (value == null) { + return ''; + } + return name + '=' + quoteAttributeValueForBrowser(value); + } else if ("development" !== 'production') { + warnUnknownProperty(name); + } + return null; + }, + + /** + * Creates markup for a custom property. + * + * @param {string} name + * @param {*} value + * @return {string} Markup string, or empty string if the property was invalid. + */ + createMarkupForCustomAttribute: function (name, value) { + if (!isAttributeNameSafe(name) || value == null) { + return ''; + } + return name + '=' + quoteAttributeValueForBrowser(value); + }, + + /** + * Sets the value for a property on a node. + * + * @param {DOMElement} node + * @param {string} name + * @param {*} value + */ + setValueForProperty: function (node, name, value) { + var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null; + if (propertyInfo) { + var mutationMethod = propertyInfo.mutationMethod; + if (mutationMethod) { + mutationMethod(node, value); + } else if (shouldIgnoreValue(propertyInfo, value)) { + this.deleteValueForProperty(node, name); + } else if (propertyInfo.mustUseAttribute) { + var attributeName = propertyInfo.attributeName; + var namespace = propertyInfo.attributeNamespace; + // `setAttribute` with objects becomes only `[object]` in IE8/9, + // ('' + value) makes it output the correct toString()-value. + if (namespace) { + node.setAttributeNS(namespace, attributeName, '' + value); + } else if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) { + node.setAttribute(attributeName, ''); + } else { + node.setAttribute(attributeName, '' + value); + } + } else { + var propName = propertyInfo.propertyName; + // Must explicitly cast values for HAS_SIDE_EFFECTS-properties to the + // property type before comparing; only `value` does and is string. + if (!propertyInfo.hasSideEffects || '' + node[propName] !== '' + value) { + // Contrary to `setAttribute`, object properties are properly + // `toString`ed by IE8/9. + node[propName] = value; + } + } + } else if (DOMProperty.isCustomAttribute(name)) { + DOMPropertyOperations.setValueForAttribute(node, name, value); + } else if ("development" !== 'production') { + warnUnknownProperty(name); + } + }, + + setValueForAttribute: function (node, name, value) { + if (!isAttributeNameSafe(name)) { + return; + } + if (value == null) { + node.removeAttribute(name); + } else { + node.setAttribute(name, '' + value); + } + }, + + /** + * Deletes the value for a property on a node. + * + * @param {DOMElement} node + * @param {string} name + */ + deleteValueForProperty: function (node, name) { + var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null; + if (propertyInfo) { + var mutationMethod = propertyInfo.mutationMethod; + if (mutationMethod) { + mutationMethod(node, undefined); + } else if (propertyInfo.mustUseAttribute) { + node.removeAttribute(propertyInfo.attributeName); + } else { + var propName = propertyInfo.propertyName; + var defaultValue = DOMProperty.getDefaultValueForProperty(node.nodeName, propName); + if (!propertyInfo.hasSideEffects || '' + node[propName] !== defaultValue) { + node[propName] = defaultValue; + } + } + } else if (DOMProperty.isCustomAttribute(name)) { + node.removeAttribute(name); + } else if ("development" !== 'production') { + warnUnknownProperty(name); + } + } + +}; + +ReactPerf.measureMethods(DOMPropertyOperations, 'DOMPropertyOperations', { + setValueForProperty: 'setValueForProperty', + setValueForAttribute: 'setValueForAttribute', + deleteValueForProperty: 'deleteValueForProperty' +}); + +module.exports = DOMPropertyOperations; +},{"10":10,"122":122,"155":155,"71":71}],12:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule Danger + * @typechecks static-only + */ + +'use strict'; + +var ExecutionEnvironment = _dereq_(130); + +var createNodesFromMarkup = _dereq_(135); +var emptyFunction = _dereq_(136); +var getMarkupWrap = _dereq_(140); +var invariant = _dereq_(144); + +var OPEN_TAG_NAME_EXP = /^(<[^ \/>]+)/; +var RESULT_INDEX_ATTR = 'data-danger-index'; + +/** + * Extracts the `nodeName` from a string of markup. + * + * NOTE: Extracting the `nodeName` does not require a regular expression match + * because we make assumptions about React-generated markup (i.e. there are no + * spaces surrounding the opening tag and there is at least one attribute). + * + * @param {string} markup String of markup. + * @return {string} Node name of the supplied markup. + * @see http://jsperf.com/extract-nodename + */ +function getNodeName(markup) { + return markup.substring(1, markup.indexOf(' ')); +} + +var Danger = { + + /** + * Renders markup into an array of nodes. The markup is expected to render + * into a list of root nodes. Also, the length of `resultList` and + * `markupList` should be the same. + * + * @param {array<string>} markupList List of markup strings to render. + * @return {array<DOMElement>} List of rendered nodes. + * @internal + */ + dangerouslyRenderMarkup: function (markupList) { + !ExecutionEnvironment.canUseDOM ? "development" !== 'production' ? invariant(false, 'dangerouslyRenderMarkup(...): Cannot render markup in a worker ' + 'thread. Make sure `window` and `document` are available globally ' + 'before requiring React when unit testing or use ' + 'ReactDOMServer.renderToString for server rendering.') : invariant(false) : undefined; + var nodeName; + var markupByNodeName = {}; + // Group markup by `nodeName` if a wrap is necessary, else by '*'. + for (var i = 0; i < markupList.length; i++) { + !markupList[i] ? "development" !== 'production' ? invariant(false, 'dangerouslyRenderMarkup(...): Missing markup.') : invariant(false) : undefined; + nodeName = getNodeName(markupList[i]); + nodeName = getMarkupWrap(nodeName) ? nodeName : '*'; + markupByNodeName[nodeName] = markupByNodeName[nodeName] || []; + markupByNodeName[nodeName][i] = markupList[i]; + } + var resultList = []; + var resultListAssignmentCount = 0; + for (nodeName in markupByNodeName) { + if (!markupByNodeName.hasOwnProperty(nodeName)) { + continue; + } + var markupListByNodeName = markupByNodeName[nodeName]; + + // This for-in loop skips the holes of the sparse array. The order of + // iteration should follow the order of assignment, which happens to match + // numerical index order, but we don't rely on that. + var resultIndex; + for (resultIndex in markupListByNodeName) { + if (markupListByNodeName.hasOwnProperty(resultIndex)) { + var markup = markupListByNodeName[resultIndex]; + + // Push the requested markup with an additional RESULT_INDEX_ATTR + // attribute. If the markup does not start with a < character, it + // will be discarded below (with an appropriate console.error). + markupListByNodeName[resultIndex] = markup.replace(OPEN_TAG_NAME_EXP, + // This index will be parsed back out below. + '$1 ' + RESULT_INDEX_ATTR + '="' + resultIndex + '" '); + } + } + + // Render each group of markup with similar wrapping `nodeName`. + var renderNodes = createNodesFromMarkup(markupListByNodeName.join(''), emptyFunction // Do nothing special with <script> tags. + ); + + for (var j = 0; j < renderNodes.length; ++j) { + var renderNode = renderNodes[j]; + if (renderNode.hasAttribute && renderNode.hasAttribute(RESULT_INDEX_ATTR)) { + + resultIndex = +renderNode.getAttribute(RESULT_INDEX_ATTR); + renderNode.removeAttribute(RESULT_INDEX_ATTR); + + !!resultList.hasOwnProperty(resultIndex) ? "development" !== 'production' ? invariant(false, 'Danger: Assigning to an already-occupied result index.') : invariant(false) : undefined; + + resultList[resultIndex] = renderNode; + + // This should match resultList.length and markupList.length when + // we're done. + resultListAssignmentCount += 1; + } else if ("development" !== 'production') { + console.error('Danger: Discarding unexpected node:', renderNode); + } + } + } + + // Although resultList was populated out of order, it should now be a dense + // array. + !(resultListAssignmentCount === resultList.length) ? "development" !== 'production' ? invariant(false, 'Danger: Did not assign to every index of resultList.') : invariant(false) : undefined; + + !(resultList.length === markupList.length) ? "development" !== 'production' ? invariant(false, 'Danger: Expected markup to render %s nodes, but rendered %s.', markupList.length, resultList.length) : invariant(false) : undefined; + + return resultList; + }, + + /** + * Replaces a node with a string of markup at its current position within its + * parent. The markup must render into a single root node. + * + * @param {DOMElement} oldChild Child node to replace. + * @param {string} markup Markup to render in place of the child node. + * @internal + */ + dangerouslyReplaceNodeWithMarkup: function (oldChild, markup) { + !ExecutionEnvironment.canUseDOM ? "development" !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot render markup in a ' + 'worker thread. Make sure `window` and `document` are available ' + 'globally before requiring React when unit testing or use ' + 'ReactDOMServer.renderToString() for server rendering.') : invariant(false) : undefined; + !markup ? "development" !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : invariant(false) : undefined; + !(oldChild.tagName.toLowerCase() !== 'html') ? "development" !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot replace markup of the ' + '<html> node. This is because browser quirks make this unreliable ' + 'and/or slow. If you want to render to the root you must use ' + 'server rendering. See ReactDOMServer.renderToString().') : invariant(false) : undefined; + + var newChild; + if (typeof markup === 'string') { + newChild = createNodesFromMarkup(markup, emptyFunction)[0]; + } else { + newChild = markup; + } + oldChild.parentNode.replaceChild(newChild, oldChild); + } + +}; + +module.exports = Danger; +},{"130":130,"135":135,"136":136,"140":140,"144":144}],13:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule DefaultEventPluginOrder + */ + +'use strict'; + +var keyOf = _dereq_(148); + +/** + * Module that is injectable into `EventPluginHub`, that specifies a + * deterministic ordering of `EventPlugin`s. A convenient way to reason about + * plugins, without having to package every one of them. This is better than + * having plugins be ordered in the same order that they are injected because + * that ordering would be influenced by the packaging order. + * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that + * preventing default on events is convenient in `SimpleEventPlugin` handlers. + */ +var DefaultEventPluginOrder = [keyOf({ ResponderEventPlugin: null }), keyOf({ SimpleEventPlugin: null }), keyOf({ TapEventPlugin: null }), keyOf({ EnterLeaveEventPlugin: null }), keyOf({ ChangeEventPlugin: null }), keyOf({ SelectEventPlugin: null }), keyOf({ BeforeInputEventPlugin: null })]; + +module.exports = DefaultEventPluginOrder; +},{"148":148}],14:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule EnterLeaveEventPlugin + * @typechecks static-only + */ + +'use strict'; + +var EventConstants = _dereq_(15); +var EventPropagators = _dereq_(19); +var SyntheticMouseEvent = _dereq_(96); + +var ReactMount = _dereq_(65); +var keyOf = _dereq_(148); + +var topLevelTypes = EventConstants.topLevelTypes; +var getFirstReactDOM = ReactMount.getFirstReactDOM; + +var eventTypes = { + mouseEnter: { + registrationName: keyOf({ onMouseEnter: null }), + dependencies: [topLevelTypes.topMouseOut, topLevelTypes.topMouseOver] + }, + mouseLeave: { + registrationName: keyOf({ onMouseLeave: null }), + dependencies: [topLevelTypes.topMouseOut, topLevelTypes.topMouseOver] + } +}; + +var extractedEvents = [null, null]; + +var EnterLeaveEventPlugin = { + + eventTypes: eventTypes, + + /** + * For almost every interaction we care about, there will be both a top-level + * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that + * we do not extract duplicate events. However, moving the mouse into the + * browser from outside will not fire a `mouseout` event. In this case, we use + * the `mouseover` top-level event. + * + * @param {string} topLevelType Record from `EventConstants`. + * @param {DOMEventTarget} topLevelTarget The listening component root node. + * @param {string} topLevelTargetID ID of `topLevelTarget`. + * @param {object} nativeEvent Native browser event. + * @return {*} An accumulation of synthetic events. + * @see {EventPluginHub.extractEvents} + */ + extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) { + if (topLevelType === topLevelTypes.topMouseOver && (nativeEvent.relatedTarget || nativeEvent.fromElement)) { + return null; + } + if (topLevelType !== topLevelTypes.topMouseOut && topLevelType !== topLevelTypes.topMouseOver) { + // Must not be a mouse in or mouse out - ignoring. + return null; + } + + var win; + if (topLevelTarget.window === topLevelTarget) { + // `topLevelTarget` is probably a window object. + win = topLevelTarget; + } else { + // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8. + var doc = topLevelTarget.ownerDocument; + if (doc) { + win = doc.defaultView || doc.parentWindow; + } else { + win = window; + } + } + + var from; + var to; + var fromID = ''; + var toID = ''; + if (topLevelType === topLevelTypes.topMouseOut) { + from = topLevelTarget; + fromID = topLevelTargetID; + to = getFirstReactDOM(nativeEvent.relatedTarget || nativeEvent.toElement); + if (to) { + toID = ReactMount.getID(to); + } else { + to = win; + } + to = to || win; + } else { + from = win; + to = topLevelTarget; + toID = topLevelTargetID; + } + + if (from === to) { + // Nothing pertains to our managed components. + return null; + } + + var leave = SyntheticMouseEvent.getPooled(eventTypes.mouseLeave, fromID, nativeEvent, nativeEventTarget); + leave.type = 'mouseleave'; + leave.target = from; + leave.relatedTarget = to; + + var enter = SyntheticMouseEvent.getPooled(eventTypes.mouseEnter, toID, nativeEvent, nativeEventTarget); + enter.type = 'mouseenter'; + enter.target = to; + enter.relatedTarget = from; + + EventPropagators.accumulateEnterLeaveDispatches(leave, enter, fromID, toID); + + extractedEvents[0] = leave; + extractedEvents[1] = enter; + + return extractedEvents; + } + +}; + +module.exports = EnterLeaveEventPlugin; +},{"148":148,"15":15,"19":19,"65":65,"96":96}],15:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule EventConstants + */ + +'use strict'; + +var keyMirror = _dereq_(147); + +var PropagationPhases = keyMirror({ bubbled: null, captured: null }); + +/** + * Types of raw signals from the browser caught at the top level. + */ +var topLevelTypes = keyMirror({ + topAbort: null, + topBlur: null, + topCanPlay: null, + topCanPlayThrough: null, + topChange: null, + topClick: null, + topCompositionEnd: null, + topCompositionStart: null, + topCompositionUpdate: null, + topContextMenu: null, + topCopy: null, + topCut: null, + topDoubleClick: null, + topDrag: null, + topDragEnd: null, + topDragEnter: null, + topDragExit: null, + topDragLeave: null, + topDragOver: null, + topDragStart: null, + topDrop: null, + topDurationChange: null, + topEmptied: null, + topEncrypted: null, + topEnded: null, + topError: null, + topFocus: null, + topInput: null, + topKeyDown: null, + topKeyPress: null, + topKeyUp: null, + topLoad: null, + topLoadedData: null, + topLoadedMetadata: null, + topLoadStart: null, + topMouseDown: null, + topMouseMove: null, + topMouseOut: null, + topMouseOver: null, + topMouseUp: null, + topPaste: null, + topPause: null, + topPlay: null, + topPlaying: null, + topProgress: null, + topRateChange: null, + topReset: null, + topScroll: null, + topSeeked: null, + topSeeking: null, + topSelectionChange: null, + topStalled: null, + topSubmit: null, + topSuspend: null, + topTextInput: null, + topTimeUpdate: null, + topTouchCancel: null, + topTouchEnd: null, + topTouchMove: null, + topTouchStart: null, + topVolumeChange: null, + topWaiting: null, + topWheel: null +}); + +var EventConstants = { + topLevelTypes: topLevelTypes, + PropagationPhases: PropagationPhases +}; + +module.exports = EventConstants; +},{"147":147}],16:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule EventPluginHub + */ + +'use strict'; + +var EventPluginRegistry = _dereq_(17); +var EventPluginUtils = _dereq_(18); +var ReactErrorUtils = _dereq_(56); + +var accumulateInto = _dereq_(102); +var forEachAccumulated = _dereq_(110); +var invariant = _dereq_(144); +var warning = _dereq_(155); + +/** + * Internal store for event listeners + */ +var listenerBank = {}; + +/** + * Internal queue of events that have accumulated their dispatches and are + * waiting to have their dispatches executed. + */ +var eventQueue = null; + +/** + * Dispatches an event and releases it back into the pool, unless persistent. + * + * @param {?object} event Synthetic event to be dispatched. + * @param {boolean} simulated If the event is simulated (changes exn behavior) + * @private + */ +var executeDispatchesAndRelease = function (event, simulated) { + if (event) { + EventPluginUtils.executeDispatchesInOrder(event, simulated); + + if (!event.isPersistent()) { + event.constructor.release(event); + } + } +}; +var executeDispatchesAndReleaseSimulated = function (e) { + return executeDispatchesAndRelease(e, true); +}; +var executeDispatchesAndReleaseTopLevel = function (e) { + return executeDispatchesAndRelease(e, false); +}; + +/** + * - `InstanceHandle`: [required] Module that performs logical traversals of DOM + * hierarchy given ids of the logical DOM elements involved. + */ +var InstanceHandle = null; + +function validateInstanceHandle() { + var valid = InstanceHandle && InstanceHandle.traverseTwoPhase && InstanceHandle.traverseEnterLeave; + "development" !== 'production' ? warning(valid, 'InstanceHandle not injected before use!') : undefined; +} + +/** + * This is a unified interface for event plugins to be installed and configured. + * + * Event plugins can implement the following properties: + * + * `extractEvents` {function(string, DOMEventTarget, string, object): *} + * Required. When a top-level event is fired, this method is expected to + * extract synthetic events that will in turn be queued and dispatched. + * + * `eventTypes` {object} + * Optional, plugins that fire events must publish a mapping of registration + * names that are used to register listeners. Values of this mapping must + * be objects that contain `registrationName` or `phasedRegistrationNames`. + * + * `executeDispatch` {function(object, function, string)} + * Optional, allows plugins to override how an event gets dispatched. By + * default, the listener is simply invoked. + * + * Each plugin that is injected into `EventsPluginHub` is immediately operable. + * + * @public + */ +var EventPluginHub = { + + /** + * Methods for injecting dependencies. + */ + injection: { + + /** + * @param {object} InjectedMount + * @public + */ + injectMount: EventPluginUtils.injection.injectMount, + + /** + * @param {object} InjectedInstanceHandle + * @public + */ + injectInstanceHandle: function (InjectedInstanceHandle) { + InstanceHandle = InjectedInstanceHandle; + if ("development" !== 'production') { + validateInstanceHandle(); + } + }, + + getInstanceHandle: function () { + if ("development" !== 'production') { + validateInstanceHandle(); + } + return InstanceHandle; + }, + + /** + * @param {array} InjectedEventPluginOrder + * @public + */ + injectEventPluginOrder: EventPluginRegistry.injectEventPluginOrder, + + /** + * @param {object} injectedNamesToPlugins Map from names to plugin modules. + */ + injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName + + }, + + eventNameDispatchConfigs: EventPluginRegistry.eventNameDispatchConfigs, + + registrationNameModules: EventPluginRegistry.registrationNameModules, + + /** + * Stores `listener` at `listenerBank[registrationName][id]`. Is idempotent. + * + * @param {string} id ID of the DOM element. + * @param {string} registrationName Name of listener (e.g. `onClick`). + * @param {?function} listener The callback to store. + */ + putListener: function (id, registrationName, listener) { + !(typeof listener === 'function') ? "development" !== 'production' ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener) : invariant(false) : undefined; + + var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {}); + bankForRegistrationName[id] = listener; + + var PluginModule = EventPluginRegistry.registrationNameModules[registrationName]; + if (PluginModule && PluginModule.didPutListener) { + PluginModule.didPutListener(id, registrationName, listener); + } + }, + + /** + * @param {string} id ID of the DOM element. + * @param {string} registrationName Name of listener (e.g. `onClick`). + * @return {?function} The stored callback. + */ + getListener: function (id, registrationName) { + var bankForRegistrationName = listenerBank[registrationName]; + return bankForRegistrationName && bankForRegistrationName[id]; + }, + + /** + * Deletes a listener from the registration bank. + * + * @param {string} id ID of the DOM element. + * @param {string} registrationName Name of listener (e.g. `onClick`). + */ + deleteListener: function (id, registrationName) { + var PluginModule = EventPluginRegistry.registrationNameModules[registrationName]; + if (PluginModule && PluginModule.willDeleteListener) { + PluginModule.willDeleteListener(id, registrationName); + } + + var bankForRegistrationName = listenerBank[registrationName]; + // TODO: This should never be null -- when is it? + if (bankForRegistrationName) { + delete bankForRegistrationName[id]; + } + }, + + /** + * Deletes all listeners for the DOM element with the supplied ID. + * + * @param {string} id ID of the DOM element. + */ + deleteAllListeners: function (id) { + for (var registrationName in listenerBank) { + if (!listenerBank[registrationName][id]) { + continue; + } + + var PluginModule = EventPluginRegistry.registrationNameModules[registrationName]; + if (PluginModule && PluginModule.willDeleteListener) { + PluginModule.willDeleteListener(id, registrationName); + } + + delete listenerBank[registrationName][id]; + } + }, + + /** + * Allows registered plugins an opportunity to extract events from top-level + * native browser events. + * + * @param {string} topLevelType Record from `EventConstants`. + * @param {DOMEventTarget} topLevelTarget The listening component root node. + * @param {string} topLevelTargetID ID of `topLevelTarget`. + * @param {object} nativeEvent Native browser event. + * @return {*} An accumulation of synthetic events. + * @internal + */ + extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) { + var events; + var plugins = EventPluginRegistry.plugins; + for (var i = 0; i < plugins.length; i++) { + // Not every plugin in the ordering may be loaded at runtime. + var possiblePlugin = plugins[i]; + if (possiblePlugin) { + var extractedEvents = possiblePlugin.extractEvents(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget); + if (extractedEvents) { + events = accumulateInto(events, extractedEvents); + } + } + } + return events; + }, + + /** + * Enqueues a synthetic event that should be dispatched when + * `processEventQueue` is invoked. + * + * @param {*} events An accumulation of synthetic events. + * @internal + */ + enqueueEvents: function (events) { + if (events) { + eventQueue = accumulateInto(eventQueue, events); + } + }, + + /** + * Dispatches all synthetic events on the event queue. + * + * @internal + */ + processEventQueue: function (simulated) { + // Set `eventQueue` to null before processing it so that we can tell if more + // events get enqueued while processing. + var processingEventQueue = eventQueue; + eventQueue = null; + if (simulated) { + forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseSimulated); + } else { + forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel); + } + !!eventQueue ? "development" !== 'production' ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing ' + 'an event queue. Support for this has not yet been implemented.') : invariant(false) : undefined; + // This would be a good time to rethrow if any of the event handlers threw. + ReactErrorUtils.rethrowCaughtError(); + }, + + /** + * These are needed for tests only. Do not use! + */ + __purge: function () { + listenerBank = {}; + }, + + __getListenerBank: function () { + return listenerBank; + } + +}; + +module.exports = EventPluginHub; +},{"102":102,"110":110,"144":144,"155":155,"17":17,"18":18,"56":56}],17:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule EventPluginRegistry + * @typechecks static-only + */ + +'use strict'; + +var invariant = _dereq_(144); + +/** + * Injectable ordering of event plugins. + */ +var EventPluginOrder = null; + +/** + * Injectable mapping from names to event plugin modules. + */ +var namesToPlugins = {}; + +/** + * Recomputes the plugin list using the injected plugins and plugin ordering. + * + * @private + */ +function recomputePluginOrdering() { + if (!EventPluginOrder) { + // Wait until an `EventPluginOrder` is injected. + return; + } + for (var pluginName in namesToPlugins) { + var PluginModule = namesToPlugins[pluginName]; + var pluginIndex = EventPluginOrder.indexOf(pluginName); + !(pluginIndex > -1) ? "development" !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in ' + 'the plugin ordering, `%s`.', pluginName) : invariant(false) : undefined; + if (EventPluginRegistry.plugins[pluginIndex]) { + continue; + } + !PluginModule.extractEvents ? "development" !== 'production' ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` ' + 'method, but `%s` does not.', pluginName) : invariant(false) : undefined; + EventPluginRegistry.plugins[pluginIndex] = PluginModule; + var publishedEvents = PluginModule.eventTypes; + for (var eventName in publishedEvents) { + !publishEventForPlugin(publishedEvents[eventName], PluginModule, eventName) ? "development" !== 'production' ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : invariant(false) : undefined; + } + } +} + +/** + * Publishes an event so that it can be dispatched by the supplied plugin. + * + * @param {object} dispatchConfig Dispatch configuration for the event. + * @param {object} PluginModule Plugin publishing the event. + * @return {boolean} True if the event was successfully published. + * @private + */ +function publishEventForPlugin(dispatchConfig, PluginModule, eventName) { + !!EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName) ? "development" !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same ' + 'event name, `%s`.', eventName) : invariant(false) : undefined; + EventPluginRegistry.eventNameDispatchConfigs[eventName] = dispatchConfig; + + var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames; + if (phasedRegistrationNames) { + for (var phaseName in phasedRegistrationNames) { + if (phasedRegistrationNames.hasOwnProperty(phaseName)) { + var phasedRegistrationName = phasedRegistrationNames[phaseName]; + publishRegistrationName(phasedRegistrationName, PluginModule, eventName); + } + } + return true; + } else if (dispatchConfig.registrationName) { + publishRegistrationName(dispatchConfig.registrationName, PluginModule, eventName); + return true; + } + return false; +} + +/** + * Publishes a registration name that is used to identify dispatched events and + * can be used with `EventPluginHub.putListener` to register listeners. + * + * @param {string} registrationName Registration name to add. + * @param {object} PluginModule Plugin publishing the event. + * @private + */ +function publishRegistrationName(registrationName, PluginModule, eventName) { + !!EventPluginRegistry.registrationNameModules[registrationName] ? "development" !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same ' + 'registration name, `%s`.', registrationName) : invariant(false) : undefined; + EventPluginRegistry.registrationNameModules[registrationName] = PluginModule; + EventPluginRegistry.registrationNameDependencies[registrationName] = PluginModule.eventTypes[eventName].dependencies; +} + +/** + * Registers plugins so that they can extract and dispatch events. + * + * @see {EventPluginHub} + */ +var EventPluginRegistry = { + + /** + * Ordered list of injected plugins. + */ + plugins: [], + + /** + * Mapping from event name to dispatch config + */ + eventNameDispatchConfigs: {}, + + /** + * Mapping from registration name to plugin module + */ + registrationNameModules: {}, + + /** + * Mapping from registration name to event name + */ + registrationNameDependencies: {}, + + /** + * Injects an ordering of plugins (by plugin name). This allows the ordering + * to be decoupled from injection of the actual plugins so that ordering is + * always deterministic regardless of packaging, on-the-fly injection, etc. + * + * @param {array} InjectedEventPluginOrder + * @internal + * @see {EventPluginHub.injection.injectEventPluginOrder} + */ + injectEventPluginOrder: function (InjectedEventPluginOrder) { + !!EventPluginOrder ? "development" !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than ' + 'once. You are likely trying to load more than one copy of React.') : invariant(false) : undefined; + // Clone the ordering so it cannot be dynamically mutated. + EventPluginOrder = Array.prototype.slice.call(InjectedEventPluginOrder); + recomputePluginOrdering(); + }, + + /** + * Injects plugins to be used by `EventPluginHub`. The plugin names must be + * in the ordering injected by `injectEventPluginOrder`. + * + * Plugins can be injected as part of page initialization or on-the-fly. + * + * @param {object} injectedNamesToPlugins Map from names to plugin modules. + * @internal + * @see {EventPluginHub.injection.injectEventPluginsByName} + */ + injectEventPluginsByName: function (injectedNamesToPlugins) { + var isOrderingDirty = false; + for (var pluginName in injectedNamesToPlugins) { + if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) { + continue; + } + var PluginModule = injectedNamesToPlugins[pluginName]; + if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== PluginModule) { + !!namesToPlugins[pluginName] ? "development" !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins ' + 'using the same name, `%s`.', pluginName) : invariant(false) : undefined; + namesToPlugins[pluginName] = PluginModule; + isOrderingDirty = true; + } + } + if (isOrderingDirty) { + recomputePluginOrdering(); + } + }, + + /** + * Looks up the plugin for the supplied event. + * + * @param {object} event A synthetic event. + * @return {?object} The plugin that created the supplied event. + * @internal + */ + getPluginModuleForEvent: function (event) { + var dispatchConfig = event.dispatchConfig; + if (dispatchConfig.registrationName) { + return EventPluginRegistry.registrationNameModules[dispatchConfig.registrationName] || null; + } + for (var phase in dispatchConfig.phasedRegistrationNames) { + if (!dispatchConfig.phasedRegistrationNames.hasOwnProperty(phase)) { + continue; + } + var PluginModule = EventPluginRegistry.registrationNameModules[dispatchConfig.phasedRegistrationNames[phase]]; + if (PluginModule) { + return PluginModule; + } + } + return null; + }, + + /** + * Exposed for unit testing. + * @private + */ + _resetEventPlugins: function () { + EventPluginOrder = null; + for (var pluginName in namesToPlugins) { + if (namesToPlugins.hasOwnProperty(pluginName)) { + delete namesToPlugins[pluginName]; + } + } + EventPluginRegistry.plugins.length = 0; + + var eventNameDispatchConfigs = EventPluginRegistry.eventNameDispatchConfigs; + for (var eventName in eventNameDispatchConfigs) { + if (eventNameDispatchConfigs.hasOwnProperty(eventName)) { + delete eventNameDispatchConfigs[eventName]; + } + } + + var registrationNameModules = EventPluginRegistry.registrationNameModules; + for (var registrationName in registrationNameModules) { + if (registrationNameModules.hasOwnProperty(registrationName)) { + delete registrationNameModules[registrationName]; + } + } + } + +}; + +module.exports = EventPluginRegistry; +},{"144":144}],18:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule EventPluginUtils + */ + +'use strict'; + +var EventConstants = _dereq_(15); +var ReactErrorUtils = _dereq_(56); + +var invariant = _dereq_(144); +var warning = _dereq_(155); + +/** + * Injected dependencies: + */ + +/** + * - `Mount`: [required] Module that can convert between React dom IDs and + * actual node references. + */ +var injection = { + Mount: null, + injectMount: function (InjectedMount) { + injection.Mount = InjectedMount; + if ("development" !== 'production') { + "development" !== 'production' ? warning(InjectedMount && InjectedMount.getNode && InjectedMount.getID, 'EventPluginUtils.injection.injectMount(...): Injected Mount ' + 'module is missing getNode or getID.') : undefined; + } + } +}; + +var topLevelTypes = EventConstants.topLevelTypes; + +function isEndish(topLevelType) { + return topLevelType === topLevelTypes.topMouseUp || topLevelType === topLevelTypes.topTouchEnd || topLevelType === topLevelTypes.topTouchCancel; +} + +function isMoveish(topLevelType) { + return topLevelType === topLevelTypes.topMouseMove || topLevelType === topLevelTypes.topTouchMove; +} +function isStartish(topLevelType) { + return topLevelType === topLevelTypes.topMouseDown || topLevelType === topLevelTypes.topTouchStart; +} + +var validateEventDispatches; +if ("development" !== 'production') { + validateEventDispatches = function (event) { + var dispatchListeners = event._dispatchListeners; + var dispatchIDs = event._dispatchIDs; + + var listenersIsArr = Array.isArray(dispatchListeners); + var idsIsArr = Array.isArray(dispatchIDs); + var IDsLen = idsIsArr ? dispatchIDs.length : dispatchIDs ? 1 : 0; + var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0; + + "development" !== 'production' ? warning(idsIsArr === listenersIsArr && IDsLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : undefined; + }; +} + +/** + * Dispatch the event to the listener. + * @param {SyntheticEvent} event SyntheticEvent to handle + * @param {boolean} simulated If the event is simulated (changes exn behavior) + * @param {function} listener Application-level callback + * @param {string} domID DOM id to pass to the callback. + */ +function executeDispatch(event, simulated, listener, domID) { + var type = event.type || 'unknown-event'; + event.currentTarget = injection.Mount.getNode(domID); + if (simulated) { + ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event, domID); + } else { + ReactErrorUtils.invokeGuardedCallback(type, listener, event, domID); + } + event.currentTarget = null; +} + +/** + * Standard/simple iteration through an event's collected dispatches. + */ +function executeDispatchesInOrder(event, simulated) { + var dispatchListeners = event._dispatchListeners; + var dispatchIDs = event._dispatchIDs; + if ("development" !== 'production') { + validateEventDispatches(event); + } + if (Array.isArray(dispatchListeners)) { + for (var i = 0; i < dispatchListeners.length; i++) { + if (event.isPropagationStopped()) { + break; + } + // Listeners and IDs are two parallel arrays that are always in sync. + executeDispatch(event, simulated, dispatchListeners[i], dispatchIDs[i]); + } + } else if (dispatchListeners) { + executeDispatch(event, simulated, dispatchListeners, dispatchIDs); + } + event._dispatchListeners = null; + event._dispatchIDs = null; +} + +/** + * Standard/simple iteration through an event's collected dispatches, but stops + * at the first dispatch execution returning true, and returns that id. + * + * @return {?string} id of the first dispatch execution who's listener returns + * true, or null if no listener returned true. + */ +function executeDispatchesInOrderStopAtTrueImpl(event) { + var dispatchListeners = event._dispatchListeners; + var dispatchIDs = event._dispatchIDs; + if ("development" !== 'production') { + validateEventDispatches(event); + } + if (Array.isArray(dispatchListeners)) { + for (var i = 0; i < dispatchListeners.length; i++) { + if (event.isPropagationStopped()) { + break; + } + // Listeners and IDs are two parallel arrays that are always in sync. + if (dispatchListeners[i](event, dispatchIDs[i])) { + return dispatchIDs[i]; + } + } + } else if (dispatchListeners) { + if (dispatchListeners(event, dispatchIDs)) { + return dispatchIDs; + } + } + return null; +} + +/** + * @see executeDispatchesInOrderStopAtTrueImpl + */ +function executeDispatchesInOrderStopAtTrue(event) { + var ret = executeDispatchesInOrderStopAtTrueImpl(event); + event._dispatchIDs = null; + event._dispatchListeners = null; + return ret; +} + +/** + * Execution of a "direct" dispatch - there must be at most one dispatch + * accumulated on the event or it is considered an error. It doesn't really make + * sense for an event with multiple dispatches (bubbled) to keep track of the + * return values at each dispatch execution, but it does tend to make sense when + * dealing with "direct" dispatches. + * + * @return {*} The return value of executing the single dispatch. + */ +function executeDirectDispatch(event) { + if ("development" !== 'production') { + validateEventDispatches(event); + } + var dispatchListener = event._dispatchListeners; + var dispatchID = event._dispatchIDs; + !!Array.isArray(dispatchListener) ? "development" !== 'production' ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : invariant(false) : undefined; + var res = dispatchListener ? dispatchListener(event, dispatchID) : null; + event._dispatchListeners = null; + event._dispatchIDs = null; + return res; +} + +/** + * @param {SyntheticEvent} event + * @return {boolean} True iff number of dispatches accumulated is greater than 0. + */ +function hasDispatches(event) { + return !!event._dispatchListeners; +} + +/** + * General utilities that are useful in creating custom Event Plugins. + */ +var EventPluginUtils = { + isEndish: isEndish, + isMoveish: isMoveish, + isStartish: isStartish, + + executeDirectDispatch: executeDirectDispatch, + executeDispatchesInOrder: executeDispatchesInOrder, + executeDispatchesInOrderStopAtTrue: executeDispatchesInOrderStopAtTrue, + hasDispatches: hasDispatches, + + getNode: function (id) { + return injection.Mount.getNode(id); + }, + getID: function (node) { + return injection.Mount.getID(node); + }, + + injection: injection +}; + +module.exports = EventPluginUtils; +},{"144":144,"15":15,"155":155,"56":56}],19:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule EventPropagators + */ + +'use strict'; + +var EventConstants = _dereq_(15); +var EventPluginHub = _dereq_(16); + +var warning = _dereq_(155); + +var accumulateInto = _dereq_(102); +var forEachAccumulated = _dereq_(110); + +var PropagationPhases = EventConstants.PropagationPhases; +var getListener = EventPluginHub.getListener; + +/** + * Some event types have a notion of different registration names for different + * "phases" of propagation. This finds listeners by a given phase. + */ +function listenerAtPhase(id, event, propagationPhase) { + var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase]; + return getListener(id, registrationName); +} + +/** + * Tags a `SyntheticEvent` with dispatched listeners. Creating this function + * here, allows us to not have to bind or create functions for each event. + * Mutating the event's members allows us to not have to create a wrapping + * "dispatch" object that pairs the event with the listener. + */ +function accumulateDirectionalDispatches(domID, upwards, event) { + if ("development" !== 'production') { + "development" !== 'production' ? warning(domID, 'Dispatching id must not be null') : undefined; + } + var phase = upwards ? PropagationPhases.bubbled : PropagationPhases.captured; + var listener = listenerAtPhase(domID, event, phase); + if (listener) { + event._dispatchListeners = accumulateInto(event._dispatchListeners, listener); + event._dispatchIDs = accumulateInto(event._dispatchIDs, domID); + } +} + +/** + * Collect dispatches (must be entirely collected before dispatching - see unit + * tests). Lazily allocate the array to conserve memory. We must loop through + * each event and perform the traversal for each one. We cannot perform a + * single traversal for the entire collection of events because each event may + * have a different target. + */ +function accumulateTwoPhaseDispatchesSingle(event) { + if (event && event.dispatchConfig.phasedRegistrationNames) { + EventPluginHub.injection.getInstanceHandle().traverseTwoPhase(event.dispatchMarker, accumulateDirectionalDispatches, event); + } +} + +/** + * Same as `accumulateTwoPhaseDispatchesSingle`, but skips over the targetID. + */ +function accumulateTwoPhaseDispatchesSingleSkipTarget(event) { + if (event && event.dispatchConfig.phasedRegistrationNames) { + EventPluginHub.injection.getInstanceHandle().traverseTwoPhaseSkipTarget(event.dispatchMarker, accumulateDirectionalDispatches, event); + } +} + +/** + * Accumulates without regard to direction, does not look for phased + * registration names. Same as `accumulateDirectDispatchesSingle` but without + * requiring that the `dispatchMarker` be the same as the dispatched ID. + */ +function accumulateDispatches(id, ignoredDirection, event) { + if (event && event.dispatchConfig.registrationName) { + var registrationName = event.dispatchConfig.registrationName; + var listener = getListener(id, registrationName); + if (listener) { + event._dispatchListeners = accumulateInto(event._dispatchListeners, listener); + event._dispatchIDs = accumulateInto(event._dispatchIDs, id); + } + } +} + +/** + * Accumulates dispatches on an `SyntheticEvent`, but only for the + * `dispatchMarker`. + * @param {SyntheticEvent} event + */ +function accumulateDirectDispatchesSingle(event) { + if (event && event.dispatchConfig.registrationName) { + accumulateDispatches(event.dispatchMarker, null, event); + } +} + +function accumulateTwoPhaseDispatches(events) { + forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle); +} + +function accumulateTwoPhaseDispatchesSkipTarget(events) { + forEachAccumulated(events, accumulateTwoPhaseDispatchesSingleSkipTarget); +} + +function accumulateEnterLeaveDispatches(leave, enter, fromID, toID) { + EventPluginHub.injection.getInstanceHandle().traverseEnterLeave(fromID, toID, accumulateDispatches, leave, enter); +} + +function accumulateDirectDispatches(events) { + forEachAccumulated(events, accumulateDirectDispatchesSingle); +} + +/** + * A small set of propagation patterns, each of which will accept a small amount + * of information, and generate a set of "dispatch ready event objects" - which + * are sets of events that have already been annotated with a set of dispatched + * listener functions/ids. The API is designed this way to discourage these + * propagation strategies from actually executing the dispatches, since we + * always want to collect the entire set of dispatches before executing event a + * single one. + * + * @constructor EventPropagators + */ +var EventPropagators = { + accumulateTwoPhaseDispatches: accumulateTwoPhaseDispatches, + accumulateTwoPhaseDispatchesSkipTarget: accumulateTwoPhaseDispatchesSkipTarget, + accumulateDirectDispatches: accumulateDirectDispatches, + accumulateEnterLeaveDispatches: accumulateEnterLeaveDispatches +}; + +module.exports = EventPropagators; +},{"102":102,"110":110,"15":15,"155":155,"16":16}],20:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule FallbackCompositionState + * @typechecks static-only + */ + +'use strict'; + +var PooledClass = _dereq_(24); + +var assign = _dereq_(23); +var getTextContentAccessor = _dereq_(117); + +/** + * This helper class stores information about text content of a target node, + * allowing comparison of content before and after a given event. + * + * Identify the node where selection currently begins, then observe + * both its text content and its current position in the DOM. Since the + * browser may natively replace the target node during composition, we can + * use its position to find its replacement. + * + * @param {DOMEventTarget} root + */ +function FallbackCompositionState(root) { + this._root = root; + this._startText = this.getText(); + this._fallbackText = null; +} + +assign(FallbackCompositionState.prototype, { + destructor: function () { + this._root = null; + this._startText = null; + this._fallbackText = null; + }, + + /** + * Get current text of input. + * + * @return {string} + */ + getText: function () { + if ('value' in this._root) { + return this._root.value; + } + return this._root[getTextContentAccessor()]; + }, + + /** + * Determine the differing substring between the initially stored + * text content and the current content. + * + * @return {string} + */ + getData: function () { + if (this._fallbackText) { + return this._fallbackText; + } + + var start; + var startValue = this._startText; + var startLength = startValue.length; + var end; + var endValue = this.getText(); + var endLength = endValue.length; + + for (start = 0; start < startLength; start++) { + if (startValue[start] !== endValue[start]) { + break; + } + } + + var minEnd = startLength - start; + for (end = 1; end <= minEnd; end++) { + if (startValue[startLength - end] !== endValue[endLength - end]) { + break; + } + } + + var sliceTail = end > 1 ? 1 - end : undefined; + this._fallbackText = endValue.slice(start, sliceTail); + return this._fallbackText; + } +}); + +PooledClass.addPoolingTo(FallbackCompositionState); + +module.exports = FallbackCompositionState; +},{"117":117,"23":23,"24":24}],21:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule HTMLDOMPropertyConfig + */ + +'use strict'; + +var DOMProperty = _dereq_(10); +var ExecutionEnvironment = _dereq_(130); + +var MUST_USE_ATTRIBUTE = DOMProperty.injection.MUST_USE_ATTRIBUTE; +var MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY; +var HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE; +var HAS_SIDE_EFFECTS = DOMProperty.injection.HAS_SIDE_EFFECTS; +var HAS_NUMERIC_VALUE = DOMProperty.injection.HAS_NUMERIC_VALUE; +var HAS_POSITIVE_NUMERIC_VALUE = DOMProperty.injection.HAS_POSITIVE_NUMERIC_VALUE; +var HAS_OVERLOADED_BOOLEAN_VALUE = DOMProperty.injection.HAS_OVERLOADED_BOOLEAN_VALUE; + +var hasSVG; +if (ExecutionEnvironment.canUseDOM) { + var implementation = document.implementation; + hasSVG = implementation && implementation.hasFeature && implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#BasicStructure', '1.1'); +} + +var HTMLDOMPropertyConfig = { + isCustomAttribute: RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\d_.\-]*$/), + Properties: { + /** + * Standard Properties + */ + accept: null, + acceptCharset: null, + accessKey: null, + action: null, + allowFullScreen: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE, + allowTransparency: MUST_USE_ATTRIBUTE, + alt: null, + async: HAS_BOOLEAN_VALUE, + autoComplete: null, + // autoFocus is polyfilled/normalized by AutoFocusUtils + // autoFocus: HAS_BOOLEAN_VALUE, + autoPlay: HAS_BOOLEAN_VALUE, + capture: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE, + cellPadding: null, + cellSpacing: null, + charSet: MUST_USE_ATTRIBUTE, + challenge: MUST_USE_ATTRIBUTE, + checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, + classID: MUST_USE_ATTRIBUTE, + // To set className on SVG elements, it's necessary to use .setAttribute; + // this works on HTML elements too in all browsers except IE8. Conveniently, + // IE8 doesn't support SVG and so we can simply use the attribute in + // browsers that support SVG and the property in browsers that don't, + // regardless of whether the element is HTML or SVG. + className: hasSVG ? MUST_USE_ATTRIBUTE : MUST_USE_PROPERTY, + cols: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE, + colSpan: null, + content: null, + contentEditable: null, + contextMenu: MUST_USE_ATTRIBUTE, + controls: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, + coords: null, + crossOrigin: null, + data: null, // For `<object />` acts as `src`. + dateTime: MUST_USE_ATTRIBUTE, + 'default': HAS_BOOLEAN_VALUE, + defer: HAS_BOOLEAN_VALUE, + dir: null, + disabled: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE, + download: HAS_OVERLOADED_BOOLEAN_VALUE, + draggable: null, + encType: null, + form: MUST_USE_ATTRIBUTE, + formAction: MUST_USE_ATTRIBUTE, + formEncType: MUST_USE_ATTRIBUTE, + formMethod: MUST_USE_ATTRIBUTE, + formNoValidate: HAS_BOOLEAN_VALUE, + formTarget: MUST_USE_ATTRIBUTE, + frameBorder: MUST_USE_ATTRIBUTE, + headers: null, + height: MUST_USE_ATTRIBUTE, + hidden: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE, + high: null, + href: null, + hrefLang: null, + htmlFor: null, + httpEquiv: null, + icon: null, + id: MUST_USE_PROPERTY, + inputMode: MUST_USE_ATTRIBUTE, + integrity: null, + is: MUST_USE_ATTRIBUTE, + keyParams: MUST_USE_ATTRIBUTE, + keyType: MUST_USE_ATTRIBUTE, + kind: null, + label: null, + lang: null, + list: MUST_USE_ATTRIBUTE, + loop: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, + low: null, + manifest: MUST_USE_ATTRIBUTE, + marginHeight: null, + marginWidth: null, + max: null, + maxLength: MUST_USE_ATTRIBUTE, + media: MUST_USE_ATTRIBUTE, + mediaGroup: null, + method: null, + min: null, + minLength: MUST_USE_ATTRIBUTE, + multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, + muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, + name: null, + nonce: MUST_USE_ATTRIBUTE, + noValidate: HAS_BOOLEAN_VALUE, + open: HAS_BOOLEAN_VALUE, + optimum: null, + pattern: null, + placeholder: null, + poster: null, + preload: null, + radioGroup: null, + readOnly: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, + rel: null, + required: HAS_BOOLEAN_VALUE, + reversed: HAS_BOOLEAN_VALUE, + role: MUST_USE_ATTRIBUTE, + rows: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE, + rowSpan: null, + sandbox: null, + scope: null, + scoped: HAS_BOOLEAN_VALUE, + scrolling: null, + seamless: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE, + selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE, + shape: null, + size: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE, + sizes: MUST_USE_ATTRIBUTE, + span: HAS_POSITIVE_NUMERIC_VALUE, + spellCheck: null, + src: null, + srcDoc: MUST_USE_PROPERTY, + srcLang: null, + srcSet: MUST_USE_ATTRIBUTE, + start: HAS_NUMERIC_VALUE, + step: null, + style: null, + summary: null, + tabIndex: null, + target: null, + title: null, + type: null, + useMap: null, + value: MUST_USE_PROPERTY | HAS_SIDE_EFFECTS, + width: MUST_USE_ATTRIBUTE, + wmode: MUST_USE_ATTRIBUTE, + wrap: null, + + /** + * RDFa Properties + */ + about: MUST_USE_ATTRIBUTE, + datatype: MUST_USE_ATTRIBUTE, + inlist: MUST_USE_ATTRIBUTE, + prefix: MUST_USE_ATTRIBUTE, + // property is also supported for OpenGraph in meta tags. + property: MUST_USE_ATTRIBUTE, + resource: MUST_USE_ATTRIBUTE, + 'typeof': MUST_USE_ATTRIBUTE, + vocab: MUST_USE_ATTRIBUTE, + + /** + * Non-standard Properties + */ + // autoCapitalize and autoCorrect are supported in Mobile Safari for + // keyboard hints. + autoCapitalize: null, + autoCorrect: null, + // autoSave allows WebKit/Blink to persist values of input fields on page reloads + autoSave: null, + // color is for Safari mask-icon link + color: null, + // itemProp, itemScope, itemType are for + // Microdata support. See http://schema.org/docs/gs.html + itemProp: MUST_USE_ATTRIBUTE, + itemScope: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE, + itemType: MUST_USE_ATTRIBUTE, + // itemID and itemRef are for Microdata support as well but + // only specified in the the WHATWG spec document. See + // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api + itemID: MUST_USE_ATTRIBUTE, + itemRef: MUST_USE_ATTRIBUTE, + // results show looking glass icon and recent searches on input + // search fields in WebKit/Blink + results: null, + // IE-only attribute that specifies security restrictions on an iframe + // as an alternative to the sandbox attribute on IE<10 + security: MUST_USE_ATTRIBUTE, + // IE-only attribute that controls focus behavior + unselectable: MUST_USE_ATTRIBUTE + }, + DOMAttributeNames: { + acceptCharset: 'accept-charset', + className: 'class', + htmlFor: 'for', + httpEquiv: 'http-equiv' + }, + DOMPropertyNames: { + autoCapitalize: 'autocapitalize', + autoComplete: 'autocomplete', + autoCorrect: 'autocorrect', + autoFocus: 'autofocus', + autoPlay: 'autoplay', + autoSave: 'autosave', + // `encoding` is equivalent to `enctype`, IE8 lacks an `enctype` setter. + // http://www.w3.org/TR/html5/forms.html#dom-fs-encoding + encType: 'encoding', + hrefLang: 'hreflang', + radioGroup: 'radiogroup', + spellCheck: 'spellcheck', + srcDoc: 'srcdoc', + srcSet: 'srcset' + } +}; + +module.exports = HTMLDOMPropertyConfig; +},{"10":10,"130":130}],22:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule LinkedValueUtils + * @typechecks static-only + */ + +'use strict'; + +var ReactPropTypes = _dereq_(74); +var ReactPropTypeLocations = _dereq_(73); + +var invariant = _dereq_(144); +var warning = _dereq_(155); + +var hasReadOnlyValue = { + 'button': true, + 'checkbox': true, + 'image': true, + 'hidden': true, + 'radio': true, + 'reset': true, + 'submit': true +}; + +function _assertSingleLink(inputProps) { + !(inputProps.checkedLink == null || inputProps.valueLink == null) ? "development" !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a valueLink. If you want to use ' + 'checkedLink, you probably don\'t want to use valueLink and vice versa.') : invariant(false) : undefined; +} +function _assertValueLink(inputProps) { + _assertSingleLink(inputProps); + !(inputProps.value == null && inputProps.onChange == null) ? "development" !== 'production' ? invariant(false, 'Cannot provide a valueLink and a value or onChange event. If you want ' + 'to use value or onChange, you probably don\'t want to use valueLink.') : invariant(false) : undefined; +} + +function _assertCheckedLink(inputProps) { + _assertSingleLink(inputProps); + !(inputProps.checked == null && inputProps.onChange == null) ? "development" !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a checked property or onChange event. ' + 'If you want to use checked or onChange, you probably don\'t want to ' + 'use checkedLink') : invariant(false) : undefined; +} + +var propTypes = { + value: function (props, propName, componentName) { + if (!props[propName] || hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled) { + return null; + } + return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.'); + }, + checked: function (props, propName, componentName) { + if (!props[propName] || props.onChange || props.readOnly || props.disabled) { + return null; + } + return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.'); + }, + onChange: ReactPropTypes.func +}; + +var loggedTypeFailures = {}; +function getDeclarationErrorAddendum(owner) { + if (owner) { + var name = owner.getName(); + if (name) { + return ' Check the render method of `' + name + '`.'; + } + } + return ''; +} + +/** + * Provide a linked `value` attribute for controlled forms. You should not use + * this outside of the ReactDOM controlled form components. + */ +var LinkedValueUtils = { + checkPropTypes: function (tagName, props, owner) { + for (var propName in propTypes) { + if (propTypes.hasOwnProperty(propName)) { + var error = propTypes[propName](props, propName, tagName, ReactPropTypeLocations.prop); + } + if (error instanceof Error && !(error.message in loggedTypeFailures)) { + // Only monitor this failure once because there tends to be a lot of the + // same error. + loggedTypeFailures[error.message] = true; + + var addendum = getDeclarationErrorAddendum(owner); + "development" !== 'production' ? warning(false, 'Failed form propType: %s%s', error.message, addendum) : undefined; + } + } + }, + + /** + * @param {object} inputProps Props for form component + * @return {*} current value of the input either from value prop or link. + */ + getValue: function (inputProps) { + if (inputProps.valueLink) { + _assertValueLink(inputProps); + return inputProps.valueLink.value; + } + return inputProps.value; + }, + + /** + * @param {object} inputProps Props for form component + * @return {*} current checked status of the input either from checked prop + * or link. + */ + getChecked: function (inputProps) { + if (inputProps.checkedLink) { + _assertCheckedLink(inputProps); + return inputProps.checkedLink.value; + } + return inputProps.checked; + }, + + /** + * @param {object} inputProps Props for form component + * @param {SyntheticEvent} event change event to handle + */ + executeOnChange: function (inputProps, event) { + if (inputProps.valueLink) { + _assertValueLink(inputProps); + return inputProps.valueLink.requestChange(event.target.value); + } else if (inputProps.checkedLink) { + _assertCheckedLink(inputProps); + return inputProps.checkedLink.requestChange(event.target.checked); + } else if (inputProps.onChange) { + return inputProps.onChange.call(undefined, event); + } + } +}; + +module.exports = LinkedValueUtils; +},{"144":144,"155":155,"73":73,"74":74}],23:[function(_dereq_,module,exports){ +/** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule Object.assign + */ + +// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign + +'use strict'; + +function assign(target, sources) { + if (target == null) { + throw new TypeError('Object.assign target cannot be null or undefined'); + } + + var to = Object(target); + var hasOwnProperty = Object.prototype.hasOwnProperty; + + for (var nextIndex = 1; nextIndex < arguments.length; nextIndex++) { + var nextSource = arguments[nextIndex]; + if (nextSource == null) { + continue; + } + + var from = Object(nextSource); + + // We don't currently support accessors nor proxies. Therefore this + // copy cannot throw. If we ever supported this then we must handle + // exceptions and side-effects. We don't support symbols so they won't + // be transferred. + + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + } + + return to; +} + +module.exports = assign; +},{}],24:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule PooledClass + */ + +'use strict'; + +var invariant = _dereq_(144); + +/** + * Static poolers. Several custom versions for each potential number of + * arguments. A completely generic pooler is easy to implement, but would + * require accessing the `arguments` object. In each of these, `this` refers to + * the Class itself, not an instance. If any others are needed, simply add them + * here, or in their own files. + */ +var oneArgumentPooler = function (copyFieldsFrom) { + var Klass = this; + if (Klass.instancePool.length) { + var instance = Klass.instancePool.pop(); + Klass.call(instance, copyFieldsFrom); + return instance; + } else { + return new Klass(copyFieldsFrom); + } +}; + +var twoArgumentPooler = function (a1, a2) { + var Klass = this; + if (Klass.instancePool.length) { + var instance = Klass.instancePool.pop(); + Klass.call(instance, a1, a2); + return instance; + } else { + return new Klass(a1, a2); + } +}; + +var threeArgumentPooler = function (a1, a2, a3) { + var Klass = this; + if (Klass.instancePool.length) { + var instance = Klass.instancePool.pop(); + Klass.call(instance, a1, a2, a3); + return instance; + } else { + return new Klass(a1, a2, a3); + } +}; + +var fourArgumentPooler = function (a1, a2, a3, a4) { + var Klass = this; + if (Klass.instancePool.length) { + var instance = Klass.instancePool.pop(); + Klass.call(instance, a1, a2, a3, a4); + return instance; + } else { + return new Klass(a1, a2, a3, a4); + } +}; + +var fiveArgumentPooler = function (a1, a2, a3, a4, a5) { + var Klass = this; + if (Klass.instancePool.length) { + var instance = Klass.instancePool.pop(); + Klass.call(instance, a1, a2, a3, a4, a5); + return instance; + } else { + return new Klass(a1, a2, a3, a4, a5); + } +}; + +var standardReleaser = function (instance) { + var Klass = this; + !(instance instanceof Klass) ? "development" !== 'production' ? invariant(false, 'Trying to release an instance into a pool of a different type.') : invariant(false) : undefined; + instance.destructor(); + if (Klass.instancePool.length < Klass.poolSize) { + Klass.instancePool.push(instance); + } +}; + +var DEFAULT_POOL_SIZE = 10; +var DEFAULT_POOLER = oneArgumentPooler; + +/** + * Augments `CopyConstructor` to be a poolable class, augmenting only the class + * itself (statically) not adding any prototypical fields. Any CopyConstructor + * you give this may have a `poolSize` property, and will look for a + * prototypical `destructor` on instances (optional). + * + * @param {Function} CopyConstructor Constructor that can be used to reset. + * @param {Function} pooler Customizable pooler. + */ +var addPoolingTo = function (CopyConstructor, pooler) { + var NewKlass = CopyConstructor; + NewKlass.instancePool = []; + NewKlass.getPooled = pooler || DEFAULT_POOLER; + if (!NewKlass.poolSize) { + NewKlass.poolSize = DEFAULT_POOL_SIZE; + } + NewKlass.release = standardReleaser; + return NewKlass; +}; + +var PooledClass = { + addPoolingTo: addPoolingTo, + oneArgumentPooler: oneArgumentPooler, + twoArgumentPooler: twoArgumentPooler, + threeArgumentPooler: threeArgumentPooler, + fourArgumentPooler: fourArgumentPooler, + fiveArgumentPooler: fiveArgumentPooler +}; + +module.exports = PooledClass; +},{"144":144}],25:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactBrowserComponentMixin + */ + +'use strict'; + +var ReactInstanceMap = _dereq_(62); + +var findDOMNode = _dereq_(108); +var warning = _dereq_(155); + +var didWarnKey = '_getDOMNodeDidWarn'; + +var ReactBrowserComponentMixin = { + /** + * Returns the DOM node rendered by this component. + * + * @return {DOMElement} The root node of this component. + * @final + * @protected + */ + getDOMNode: function () { + "development" !== 'production' ? warning(this.constructor[didWarnKey], '%s.getDOMNode(...) is deprecated. Please use ' + 'ReactDOM.findDOMNode(instance) instead.', ReactInstanceMap.get(this).getName() || this.tagName || 'Unknown') : undefined; + this.constructor[didWarnKey] = true; + return findDOMNode(this); + } +}; + +module.exports = ReactBrowserComponentMixin; +},{"108":108,"155":155,"62":62}],26:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactBrowserEventEmitter + * @typechecks static-only + */ + +'use strict'; + +var EventConstants = _dereq_(15); +var EventPluginHub = _dereq_(16); +var EventPluginRegistry = _dereq_(17); +var ReactEventEmitterMixin = _dereq_(57); +var ReactPerf = _dereq_(71); +var ViewportMetrics = _dereq_(101); + +var assign = _dereq_(23); +var isEventSupported = _dereq_(119); + +/** + * Summary of `ReactBrowserEventEmitter` event handling: + * + * - Top-level delegation is used to trap most native browser events. This + * may only occur in the main thread and is the responsibility of + * ReactEventListener, which is injected and can therefore support pluggable + * event sources. This is the only work that occurs in the main thread. + * + * - We normalize and de-duplicate events to account for browser quirks. This + * may be done in the worker thread. + * + * - Forward these native events (with the associated top-level type used to + * trap it) to `EventPluginHub`, which in turn will ask plugins if they want + * to extract any synthetic events. + * + * - The `EventPluginHub` will then process each event by annotating them with + * "dispatches", a sequence of listeners and IDs that care about that event. + * + * - The `EventPluginHub` then dispatches the events. + * + * Overview of React and the event system: + * + * +------------+ . + * | DOM | . + * +------------+ . + * | . + * v . + * +------------+ . + * | ReactEvent | . + * | Listener | . + * +------------+ . +-----------+ + * | . +--------+|SimpleEvent| + * | . | |Plugin | + * +-----|------+ . v +-----------+ + * | | | . +--------------+ +------------+ + * | +-----------.--->|EventPluginHub| | Event | + * | | . | | +-----------+ | Propagators| + * | ReactEvent | . | | |TapEvent | |------------| + * | Emitter | . | |<---+|Plugin | |other plugin| + * | | . | | +-----------+ | utilities | + * | +-----------.--->| | +------------+ + * | | | . +--------------+ + * +-----|------+ . ^ +-----------+ + * | . | |Enter/Leave| + * + . +-------+|Plugin | + * +-------------+ . +-----------+ + * | application | . + * |-------------| . + * | | . + * | | . + * +-------------+ . + * . + * React Core . General Purpose Event Plugin System + */ + +var alreadyListeningTo = {}; +var isMonitoringScrollValue = false; +var reactTopListenersCounter = 0; + +// For events like 'submit' which don't consistently bubble (which we trap at a +// lower node than `document`), binding at `document` would cause duplicate +// events so we don't include them here +var topEventMapping = { + topAbort: 'abort', + topBlur: 'blur', + topCanPlay: 'canplay', + topCanPlayThrough: 'canplaythrough', + topChange: 'change', + topClick: 'click', + topCompositionEnd: 'compositionend', + topCompositionStart: 'compositionstart', + topCompositionUpdate: 'compositionupdate', + topContextMenu: 'contextmenu', + topCopy: 'copy', + topCut: 'cut', + topDoubleClick: 'dblclick', + topDrag: 'drag', + topDragEnd: 'dragend', + topDragEnter: 'dragenter', + topDragExit: 'dragexit', + topDragLeave: 'dragleave', + topDragOver: 'dragover', + topDragStart: 'dragstart', + topDrop: 'drop', + topDurationChange: 'durationchange', + topEmptied: 'emptied', + topEncrypted: 'encrypted', + topEnded: 'ended', + topError: 'error', + topFocus: 'focus', + topInput: 'input', + topKeyDown: 'keydown', + topKeyPress: 'keypress', + topKeyUp: 'keyup', + topLoadedData: 'loadeddata', + topLoadedMetadata: 'loadedmetadata', + topLoadStart: 'loadstart', + topMouseDown: 'mousedown', + topMouseMove: 'mousemove', + topMouseOut: 'mouseout', + topMouseOver: 'mouseover', + topMouseUp: 'mouseup', + topPaste: 'paste', + topPause: 'pause', + topPlay: 'play', + topPlaying: 'playing', + topProgress: 'progress', + topRateChange: 'ratechange', + topScroll: 'scroll', + topSeeked: 'seeked', + topSeeking: 'seeking', + topSelectionChange: 'selectionchange', + topStalled: 'stalled', + topSuspend: 'suspend', + topTextInput: 'textInput', + topTimeUpdate: 'timeupdate', + topTouchCancel: 'touchcancel', + topTouchEnd: 'touchend', + topTouchMove: 'touchmove', + topTouchStart: 'touchstart', + topVolumeChange: 'volumechange', + topWaiting: 'waiting', + topWheel: 'wheel' +}; + +/** + * To ensure no conflicts with other potential React instances on the page + */ +var topListenersIDKey = '_reactListenersID' + String(Math.random()).slice(2); + +function getListeningForDocument(mountAt) { + // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty` + // directly. + if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) { + mountAt[topListenersIDKey] = reactTopListenersCounter++; + alreadyListeningTo[mountAt[topListenersIDKey]] = {}; + } + return alreadyListeningTo[mountAt[topListenersIDKey]]; +} + +/** + * `ReactBrowserEventEmitter` is used to attach top-level event listeners. For + * example: + * + * ReactBrowserEventEmitter.putListener('myID', 'onClick', myFunction); + * + * This would allocate a "registration" of `('onClick', myFunction)` on 'myID'. + * + * @internal + */ +var ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, { + + /** + * Injectable event backend + */ + ReactEventListener: null, + + injection: { + /** + * @param {object} ReactEventListener + */ + injectReactEventListener: function (ReactEventListener) { + ReactEventListener.setHandleTopLevel(ReactBrowserEventEmitter.handleTopLevel); + ReactBrowserEventEmitter.ReactEventListener = ReactEventListener; + } + }, + + /** + * Sets whether or not any created callbacks should be enabled. + * + * @param {boolean} enabled True if callbacks should be enabled. + */ + setEnabled: function (enabled) { + if (ReactBrowserEventEmitter.ReactEventListener) { + ReactBrowserEventEmitter.ReactEventListener.setEnabled(enabled); + } + }, + + /** + * @return {boolean} True if callbacks are enabled. + */ + isEnabled: function () { + return !!(ReactBrowserEventEmitter.ReactEventListener && ReactBrowserEventEmitter.ReactEventListener.isEnabled()); + }, + + /** + * We listen for bubbled touch events on the document object. + * + * Firefox v8.01 (and possibly others) exhibited strange behavior when + * mounting `onmousemove` events at some node that was not the document + * element. The symptoms were that if your mouse is not moving over something + * contained within that mount point (for example on the background) the + * top-level listeners for `onmousemove` won't be called. However, if you + * register the `mousemove` on the document object, then it will of course + * catch all `mousemove`s. This along with iOS quirks, justifies restricting + * top-level listeners to the document object only, at least for these + * movement types of events and possibly all events. + * + * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html + * + * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but + * they bubble to document. + * + * @param {string} registrationName Name of listener (e.g. `onClick`). + * @param {object} contentDocumentHandle Document which owns the container + */ + listenTo: function (registrationName, contentDocumentHandle) { + var mountAt = contentDocumentHandle; + var isListening = getListeningForDocument(mountAt); + var dependencies = EventPluginRegistry.registrationNameDependencies[registrationName]; + + var topLevelTypes = EventConstants.topLevelTypes; + for (var i = 0; i < dependencies.length; i++) { + var dependency = dependencies[i]; + if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) { + if (dependency === topLevelTypes.topWheel) { + if (isEventSupported('wheel')) { + ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'wheel', mountAt); + } else if (isEventSupported('mousewheel')) { + ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'mousewheel', mountAt); + } else { + // Firefox needs to capture a different mouse scroll event. + // @see http://www.quirksmode.org/dom/events/tests/scroll.html + ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'DOMMouseScroll', mountAt); + } + } else if (dependency === topLevelTypes.topScroll) { + + if (isEventSupported('scroll', true)) { + ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topScroll, 'scroll', mountAt); + } else { + ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topScroll, 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE); + } + } else if (dependency === topLevelTypes.topFocus || dependency === topLevelTypes.topBlur) { + + if (isEventSupported('focus', true)) { + ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topFocus, 'focus', mountAt); + ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topBlur, 'blur', mountAt); + } else if (isEventSupported('focusin')) { + // IE has `focusin` and `focusout` events which bubble. + // @see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html + ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topFocus, 'focusin', mountAt); + ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topBlur, 'focusout', mountAt); + } + + // to make sure blur and focus event listeners are only attached once + isListening[topLevelTypes.topBlur] = true; + isListening[topLevelTypes.topFocus] = true; + } else if (topEventMapping.hasOwnProperty(dependency)) { + ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(dependency, topEventMapping[dependency], mountAt); + } + + isListening[dependency] = true; + } + } + }, + + trapBubbledEvent: function (topLevelType, handlerBaseName, handle) { + return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelType, handlerBaseName, handle); + }, + + trapCapturedEvent: function (topLevelType, handlerBaseName, handle) { + return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelType, handlerBaseName, handle); + }, + + /** + * Listens to window scroll and resize events. We cache scroll values so that + * application code can access them without triggering reflows. + * + * NOTE: Scroll events do not bubble. + * + * @see http://www.quirksmode.org/dom/events/scroll.html + */ + ensureScrollValueMonitoring: function () { + if (!isMonitoringScrollValue) { + var refresh = ViewportMetrics.refreshScrollValues; + ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh); + isMonitoringScrollValue = true; + } + }, + + eventNameDispatchConfigs: EventPluginHub.eventNameDispatchConfigs, + + registrationNameModules: EventPluginHub.registrationNameModules, + + putListener: EventPluginHub.putListener, + + getListener: EventPluginHub.getListener, + + deleteListener: EventPluginHub.deleteListener, + + deleteAllListeners: EventPluginHub.deleteAllListeners + +}); + +ReactPerf.measureMethods(ReactBrowserEventEmitter, 'ReactBrowserEventEmitter', { + putListener: 'putListener', + deleteListener: 'deleteListener' +}); + +module.exports = ReactBrowserEventEmitter; +},{"101":101,"119":119,"15":15,"16":16,"17":17,"23":23,"57":57,"71":71}],27:[function(_dereq_,module,exports){ +/** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactChildReconciler + * @typechecks static-only + */ + +'use strict'; + +var ReactReconciler = _dereq_(76); + +var instantiateReactComponent = _dereq_(118); +var shouldUpdateReactComponent = _dereq_(126); +var traverseAllChildren = _dereq_(127); +var warning = _dereq_(155); + +function instantiateChild(childInstances, child, name) { + // We found a component instance. + var keyUnique = childInstances[name] === undefined; + if ("development" !== 'production') { + "development" !== 'production' ? warning(keyUnique, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.', name) : undefined; + } + if (child != null && keyUnique) { + childInstances[name] = instantiateReactComponent(child, null); + } +} + +/** + * ReactChildReconciler provides helpers for initializing or updating a set of + * children. Its output is suitable for passing it onto ReactMultiChild which + * does diffed reordering and insertion. + */ +var ReactChildReconciler = { + /** + * Generates a "mount image" for each of the supplied children. In the case + * of `ReactDOMComponent`, a mount image is a string of markup. + * + * @param {?object} nestedChildNodes Nested child maps. + * @return {?object} A set of child instances. + * @internal + */ + instantiateChildren: function (nestedChildNodes, transaction, context) { + if (nestedChildNodes == null) { + return null; + } + var childInstances = {}; + traverseAllChildren(nestedChildNodes, instantiateChild, childInstances); + return childInstances; + }, + + /** + * Updates the rendered children and returns a new set of children. + * + * @param {?object} prevChildren Previously initialized set of children. + * @param {?object} nextChildren Flat child element maps. + * @param {ReactReconcileTransaction} transaction + * @param {object} context + * @return {?object} A new set of child instances. + * @internal + */ + updateChildren: function (prevChildren, nextChildren, transaction, context) { + // We currently don't have a way to track moves here but if we use iterators + // instead of for..in we can zip the iterators and check if an item has + // moved. + // TODO: If nothing has changed, return the prevChildren object so that we + // can quickly bailout if nothing has changed. + if (!nextChildren && !prevChildren) { + return null; + } + var name; + for (name in nextChildren) { + if (!nextChildren.hasOwnProperty(name)) { + continue; + } + var prevChild = prevChildren && prevChildren[name]; + var prevElement = prevChild && prevChild._currentElement; + var nextElement = nextChildren[name]; + if (prevChild != null && shouldUpdateReactComponent(prevElement, nextElement)) { + ReactReconciler.receiveComponent(prevChild, nextElement, transaction, context); + nextChildren[name] = prevChild; + } else { + if (prevChild) { + ReactReconciler.unmountComponent(prevChild, name); + } + // The child must be instantiated before it's mounted. + var nextChildInstance = instantiateReactComponent(nextElement, null); + nextChildren[name] = nextChildInstance; + } + } + // Unmount children that are no longer present. + for (name in prevChildren) { + if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) { + ReactReconciler.unmountComponent(prevChildren[name]); + } + } + return nextChildren; + }, + + /** + * Unmounts all rendered children. This should be used to clean up children + * when this component is unmounted. + * + * @param {?object} renderedChildren Previously initialized set of children. + * @internal + */ + unmountChildren: function (renderedChildren) { + for (var name in renderedChildren) { + if (renderedChildren.hasOwnProperty(name)) { + var renderedChild = renderedChildren[name]; + ReactReconciler.unmountComponent(renderedChild); + } + } + } + +}; + +module.exports = ReactChildReconciler; +},{"118":118,"126":126,"127":127,"155":155,"76":76}],28:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactChildren + */ + +'use strict'; + +var PooledClass = _dereq_(24); +var ReactElement = _dereq_(52); + +var emptyFunction = _dereq_(136); +var traverseAllChildren = _dereq_(127); + +var twoArgumentPooler = PooledClass.twoArgumentPooler; +var fourArgumentPooler = PooledClass.fourArgumentPooler; + +var userProvidedKeyEscapeRegex = /\/(?!\/)/g; +function escapeUserProvidedKey(text) { + return ('' + text).replace(userProvidedKeyEscapeRegex, '//'); +} + +/** + * PooledClass representing the bookkeeping associated with performing a child + * traversal. Allows avoiding binding callbacks. + * + * @constructor ForEachBookKeeping + * @param {!function} forEachFunction Function to perform traversal with. + * @param {?*} forEachContext Context to perform context with. + */ +function ForEachBookKeeping(forEachFunction, forEachContext) { + this.func = forEachFunction; + this.context = forEachContext; + this.count = 0; +} +ForEachBookKeeping.prototype.destructor = function () { + this.func = null; + this.context = null; + this.count = 0; +}; +PooledClass.addPoolingTo(ForEachBookKeeping, twoArgumentPooler); + +function forEachSingleChild(bookKeeping, child, name) { + var func = bookKeeping.func; + var context = bookKeeping.context; + + func.call(context, child, bookKeeping.count++); +} + +/** + * Iterates through children that are typically specified as `props.children`. + * + * The provided forEachFunc(child, index) will be called for each + * leaf child. + * + * @param {?*} children Children tree container. + * @param {function(*, int)} forEachFunc + * @param {*} forEachContext Context for forEachContext. + */ +function forEachChildren(children, forEachFunc, forEachContext) { + if (children == null) { + return children; + } + var traverseContext = ForEachBookKeeping.getPooled(forEachFunc, forEachContext); + traverseAllChildren(children, forEachSingleChild, traverseContext); + ForEachBookKeeping.release(traverseContext); +} + +/** + * PooledClass representing the bookkeeping associated with performing a child + * mapping. Allows avoiding binding callbacks. + * + * @constructor MapBookKeeping + * @param {!*} mapResult Object containing the ordered map of results. + * @param {!function} mapFunction Function to perform mapping with. + * @param {?*} mapContext Context to perform mapping with. + */ +function MapBookKeeping(mapResult, keyPrefix, mapFunction, mapContext) { + this.result = mapResult; + this.keyPrefix = keyPrefix; + this.func = mapFunction; + this.context = mapContext; + this.count = 0; +} +MapBookKeeping.prototype.destructor = function () { + this.result = null; + this.keyPrefix = null; + this.func = null; + this.context = null; + this.count = 0; +}; +PooledClass.addPoolingTo(MapBookKeeping, fourArgumentPooler); + +function mapSingleChildIntoContext(bookKeeping, child, childKey) { + var result = bookKeeping.result; + var keyPrefix = bookKeeping.keyPrefix; + var func = bookKeeping.func; + var context = bookKeeping.context; + + var mappedChild = func.call(context, child, bookKeeping.count++); + if (Array.isArray(mappedChild)) { + mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, emptyFunction.thatReturnsArgument); + } else if (mappedChild != null) { + if (ReactElement.isValidElement(mappedChild)) { + mappedChild = ReactElement.cloneAndReplaceKey(mappedChild, + // Keep both the (mapped) and old keys if they differ, just as + // traverseAllChildren used to do for objects as children + keyPrefix + (mappedChild !== child ? escapeUserProvidedKey(mappedChild.key || '') + '/' : '') + childKey); + } + result.push(mappedChild); + } +} + +function mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) { + var escapedPrefix = ''; + if (prefix != null) { + escapedPrefix = escapeUserProvidedKey(prefix) + '/'; + } + var traverseContext = MapBookKeeping.getPooled(array, escapedPrefix, func, context); + traverseAllChildren(children, mapSingleChildIntoContext, traverseContext); + MapBookKeeping.release(traverseContext); +} + +/** + * Maps children that are typically specified as `props.children`. + * + * The provided mapFunction(child, key, index) will be called for each + * leaf child. + * + * @param {?*} children Children tree container. + * @param {function(*, int)} func The map function. + * @param {*} context Context for mapFunction. + * @return {object} Object containing the ordered map of results. + */ +function mapChildren(children, func, context) { + if (children == null) { + return children; + } + var result = []; + mapIntoWithKeyPrefixInternal(children, result, null, func, context); + return result; +} + +function forEachSingleChildDummy(traverseContext, child, name) { + return null; +} + +/** + * Count the number of children that are typically specified as + * `props.children`. + * + * @param {?*} children Children tree container. + * @return {number} The number of children. + */ +function countChildren(children, context) { + return traverseAllChildren(children, forEachSingleChildDummy, null); +} + +/** + * Flatten a children object (typically specified as `props.children`) and + * return an array with appropriately re-keyed children. + */ +function toArray(children) { + var result = []; + mapIntoWithKeyPrefixInternal(children, result, null, emptyFunction.thatReturnsArgument); + return result; +} + +var ReactChildren = { + forEach: forEachChildren, + map: mapChildren, + mapIntoWithKeyPrefixInternal: mapIntoWithKeyPrefixInternal, + count: countChildren, + toArray: toArray +}; + +module.exports = ReactChildren; +},{"127":127,"136":136,"24":24,"52":52}],29:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactClass + */ + +'use strict'; + +var ReactComponent = _dereq_(30); +var ReactElement = _dereq_(52); +var ReactPropTypeLocations = _dereq_(73); +var ReactPropTypeLocationNames = _dereq_(72); +var ReactNoopUpdateQueue = _dereq_(69); + +var assign = _dereq_(23); +var emptyObject = _dereq_(137); +var invariant = _dereq_(144); +var keyMirror = _dereq_(147); +var keyOf = _dereq_(148); +var warning = _dereq_(155); + +var MIXINS_KEY = keyOf({ mixins: null }); + +/** + * Policies that describe methods in `ReactClassInterface`. + */ +var SpecPolicy = keyMirror({ + /** + * These methods may be defined only once by the class specification or mixin. + */ + DEFINE_ONCE: null, + /** + * These methods may be defined by both the class specification and mixins. + * Subsequent definitions will be chained. These methods must return void. + */ + DEFINE_MANY: null, + /** + * These methods are overriding the base class. + */ + OVERRIDE_BASE: null, + /** + * These methods are similar to DEFINE_MANY, except we assume they return + * objects. We try to merge the keys of the return values of all the mixed in + * functions. If there is a key conflict we throw. + */ + DEFINE_MANY_MERGED: null +}); + +var injectedMixins = []; + +var warnedSetProps = false; +function warnSetProps() { + if (!warnedSetProps) { + warnedSetProps = true; + "development" !== 'production' ? warning(false, 'setProps(...) and replaceProps(...) are deprecated. ' + 'Instead, call render again at the top level.') : undefined; + } +} + +/** + * Composite components are higher-level components that compose other composite + * or native components. + * + * To create a new type of `ReactClass`, pass a specification of + * your new class to `React.createClass`. The only requirement of your class + * specification is that you implement a `render` method. + * + * var MyComponent = React.createClass({ + * render: function() { + * return <div>Hello World</div>; + * } + * }); + * + * The class specification supports a specific protocol of methods that have + * special meaning (e.g. `render`). See `ReactClassInterface` for + * more the comprehensive protocol. Any other properties and methods in the + * class specification will be available on the prototype. + * + * @interface ReactClassInterface + * @internal + */ +var ReactClassInterface = { + + /** + * An array of Mixin objects to include when defining your component. + * + * @type {array} + * @optional + */ + mixins: SpecPolicy.DEFINE_MANY, + + /** + * An object containing properties and methods that should be defined on + * the component's constructor instead of its prototype (static methods). + * + * @type {object} + * @optional + */ + statics: SpecPolicy.DEFINE_MANY, + + /** + * Definition of prop types for this component. + * + * @type {object} + * @optional + */ + propTypes: SpecPolicy.DEFINE_MANY, + + /** + * Definition of context types for this component. + * + * @type {object} + * @optional + */ + contextTypes: SpecPolicy.DEFINE_MANY, + + /** + * Definition of context types this component sets for its children. + * + * @type {object} + * @optional + */ + childContextTypes: SpecPolicy.DEFINE_MANY, + + // ==== Definition methods ==== + + /** + * Invoked when the component is mounted. Values in the mapping will be set on + * `this.props` if that prop is not specified (i.e. using an `in` check). + * + * This method is invoked before `getInitialState` and therefore cannot rely + * on `this.state` or use `this.setState`. + * + * @return {object} + * @optional + */ + getDefaultProps: SpecPolicy.DEFINE_MANY_MERGED, + + /** + * Invoked once before the component is mounted. The return value will be used + * as the initial value of `this.state`. + * + * getInitialState: function() { + * return { + * isOn: false, + * fooBaz: new BazFoo() + * } + * } + * + * @return {object} + * @optional + */ + getInitialState: SpecPolicy.DEFINE_MANY_MERGED, + + /** + * @return {object} + * @optional + */ + getChildContext: SpecPolicy.DEFINE_MANY_MERGED, + + /** + * Uses props from `this.props` and state from `this.state` to render the + * structure of the component. + * + * No guarantees are made about when or how often this method is invoked, so + * it must not have side effects. + * + * render: function() { + * var name = this.props.name; + * return <div>Hello, {name}!</div>; + * } + * + * @return {ReactComponent} + * @nosideeffects + * @required + */ + render: SpecPolicy.DEFINE_ONCE, + + // ==== Delegate methods ==== + + /** + * Invoked when the component is initially created and about to be mounted. + * This may have side effects, but any external subscriptions or data created + * by this method must be cleaned up in `componentWillUnmount`. + * + * @optional + */ + componentWillMount: SpecPolicy.DEFINE_MANY, + + /** + * Invoked when the component has been mounted and has a DOM representation. + * However, there is no guarantee that the DOM node is in the document. + * + * Use this as an opportunity to operate on the DOM when the component has + * been mounted (initialized and rendered) for the first time. + * + * @param {DOMElement} rootNode DOM element representing the component. + * @optional + */ + componentDidMount: SpecPolicy.DEFINE_MANY, + + /** + * Invoked before the component receives new props. + * + * Use this as an opportunity to react to a prop transition by updating the + * state using `this.setState`. Current props are accessed via `this.props`. + * + * componentWillReceiveProps: function(nextProps, nextContext) { + * this.setState({ + * likesIncreasing: nextProps.likeCount > this.props.likeCount + * }); + * } + * + * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop + * transition may cause a state change, but the opposite is not true. If you + * need it, you are probably looking for `componentWillUpdate`. + * + * @param {object} nextProps + * @optional + */ + componentWillReceiveProps: SpecPolicy.DEFINE_MANY, + + /** + * Invoked while deciding if the component should be updated as a result of + * receiving new props, state and/or context. + * + * Use this as an opportunity to `return false` when you're certain that the + * transition to the new props/state/context will not require a component + * update. + * + * shouldComponentUpdate: function(nextProps, nextState, nextContext) { + * return !equal(nextProps, this.props) || + * !equal(nextState, this.state) || + * !equal(nextContext, this.context); + * } + * + * @param {object} nextProps + * @param {?object} nextState + * @param {?object} nextContext + * @return {boolean} True if the component should update. + * @optional + */ + shouldComponentUpdate: SpecPolicy.DEFINE_ONCE, + + /** + * Invoked when the component is about to update due to a transition from + * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState` + * and `nextContext`. + * + * Use this as an opportunity to perform preparation before an update occurs. + * + * NOTE: You **cannot** use `this.setState()` in this method. + * + * @param {object} nextProps + * @param {?object} nextState + * @param {?object} nextContext + * @param {ReactReconcileTransaction} transaction + * @optional + */ + componentWillUpdate: SpecPolicy.DEFINE_MANY, + + /** + * Invoked when the component's DOM representation has been updated. + * + * Use this as an opportunity to operate on the DOM when the component has + * been updated. + * + * @param {object} prevProps + * @param {?object} prevState + * @param {?object} prevContext + * @param {DOMElement} rootNode DOM element representing the component. + * @optional + */ + componentDidUpdate: SpecPolicy.DEFINE_MANY, + + /** + * Invoked when the component is about to be removed from its parent and have + * its DOM representation destroyed. + * + * Use this as an opportunity to deallocate any external resources. + * + * NOTE: There is no `componentDidUnmount` since your component will have been + * destroyed by that point. + * + * @optional + */ + componentWillUnmount: SpecPolicy.DEFINE_MANY, + + // ==== Advanced methods ==== + + /** + * Updates the component's currently mounted DOM representation. + * + * By default, this implements React's rendering and reconciliation algorithm. + * Sophisticated clients may wish to override this. + * + * @param {ReactReconcileTransaction} transaction + * @internal + * @overridable + */ + updateComponent: SpecPolicy.OVERRIDE_BASE + +}; + +/** + * Mapping from class specification keys to special processing functions. + * + * Although these are declared like instance properties in the specification + * when defining classes using `React.createClass`, they are actually static + * and are accessible on the constructor instead of the prototype. Despite + * being static, they must be defined outside of the "statics" key under + * which all other static methods are defined. + */ +var RESERVED_SPEC_KEYS = { + displayName: function (Constructor, displayName) { + Constructor.displayName = displayName; + }, + mixins: function (Constructor, mixins) { + if (mixins) { + for (var i = 0; i < mixins.length; i++) { + mixSpecIntoComponent(Constructor, mixins[i]); + } + } + }, + childContextTypes: function (Constructor, childContextTypes) { + if ("development" !== 'production') { + validateTypeDef(Constructor, childContextTypes, ReactPropTypeLocations.childContext); + } + Constructor.childContextTypes = assign({}, Constructor.childContextTypes, childContextTypes); + }, + contextTypes: function (Constructor, contextTypes) { + if ("development" !== 'production') { + validateTypeDef(Constructor, contextTypes, ReactPropTypeLocations.context); + } + Constructor.contextTypes = assign({}, Constructor.contextTypes, contextTypes); + }, + /** + * Special case getDefaultProps which should move into statics but requires + * automatic merging. + */ + getDefaultProps: function (Constructor, getDefaultProps) { + if (Constructor.getDefaultProps) { + Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, getDefaultProps); + } else { + Constructor.getDefaultProps = getDefaultProps; + } + }, + propTypes: function (Constructor, propTypes) { + if ("development" !== 'production') { + validateTypeDef(Constructor, propTypes, ReactPropTypeLocations.prop); + } + Constructor.propTypes = assign({}, Constructor.propTypes, propTypes); + }, + statics: function (Constructor, statics) { + mixStaticSpecIntoComponent(Constructor, statics); + }, + autobind: function () {} }; + +// noop +function validateTypeDef(Constructor, typeDef, location) { + for (var propName in typeDef) { + if (typeDef.hasOwnProperty(propName)) { + // use a warning instead of an invariant so components + // don't show up in prod but not in __DEV__ + "development" !== 'production' ? warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName) : undefined; + } + } +} + +function validateMethodOverride(proto, name) { + var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null; + + // Disallow overriding of base class methods unless explicitly allowed. + if (ReactClassMixin.hasOwnProperty(name)) { + !(specPolicy === SpecPolicy.OVERRIDE_BASE) ? "development" !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to override ' + '`%s` from your class specification. Ensure that your method names ' + 'do not overlap with React methods.', name) : invariant(false) : undefined; + } + + // Disallow defining methods more than once unless explicitly allowed. + if (proto.hasOwnProperty(name)) { + !(specPolicy === SpecPolicy.DEFINE_MANY || specPolicy === SpecPolicy.DEFINE_MANY_MERGED) ? "development" !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to define ' + '`%s` on your component more than once. This conflict may be due ' + 'to a mixin.', name) : invariant(false) : undefined; + } +} + +/** + * Mixin helper which handles policy validation and reserved + * specification keys when building React classses. + */ +function mixSpecIntoComponent(Constructor, spec) { + if (!spec) { + return; + } + + !(typeof spec !== 'function') ? "development" !== 'production' ? invariant(false, 'ReactClass: You\'re attempting to ' + 'use a component class as a mixin. Instead, just use a regular object.') : invariant(false) : undefined; + !!ReactElement.isValidElement(spec) ? "development" !== 'production' ? invariant(false, 'ReactClass: You\'re attempting to ' + 'use a component as a mixin. Instead, just use a regular object.') : invariant(false) : undefined; + + var proto = Constructor.prototype; + + // By handling mixins before any other properties, we ensure the same + // chaining order is applied to methods with DEFINE_MANY policy, whether + // mixins are listed before or after these methods in the spec. + if (spec.hasOwnProperty(MIXINS_KEY)) { + RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins); + } + + for (var name in spec) { + if (!spec.hasOwnProperty(name)) { + continue; + } + + if (name === MIXINS_KEY) { + // We have already handled mixins in a special case above. + continue; + } + + var property = spec[name]; + validateMethodOverride(proto, name); + + if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) { + RESERVED_SPEC_KEYS[name](Constructor, property); + } else { + // Setup methods on prototype: + // The following member methods should not be automatically bound: + // 1. Expected ReactClass methods (in the "interface"). + // 2. Overridden methods (that were mixed in). + var isReactClassMethod = ReactClassInterface.hasOwnProperty(name); + var isAlreadyDefined = proto.hasOwnProperty(name); + var isFunction = typeof property === 'function'; + var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false; + + if (shouldAutoBind) { + if (!proto.__reactAutoBindMap) { + proto.__reactAutoBindMap = {}; + } + proto.__reactAutoBindMap[name] = property; + proto[name] = property; + } else { + if (isAlreadyDefined) { + var specPolicy = ReactClassInterface[name]; + + // These cases should already be caught by validateMethodOverride. + !(isReactClassMethod && (specPolicy === SpecPolicy.DEFINE_MANY_MERGED || specPolicy === SpecPolicy.DEFINE_MANY)) ? "development" !== 'production' ? invariant(false, 'ReactClass: Unexpected spec policy %s for key %s ' + 'when mixing in component specs.', specPolicy, name) : invariant(false) : undefined; + + // For methods which are defined more than once, call the existing + // methods before calling the new property, merging if appropriate. + if (specPolicy === SpecPolicy.DEFINE_MANY_MERGED) { + proto[name] = createMergedResultFunction(proto[name], property); + } else if (specPolicy === SpecPolicy.DEFINE_MANY) { + proto[name] = createChainedFunction(proto[name], property); + } + } else { + proto[name] = property; + if ("development" !== 'production') { + // Add verbose displayName to the function, which helps when looking + // at profiling tools. + if (typeof property === 'function' && spec.displayName) { + proto[name].displayName = spec.displayName + '_' + name; + } + } + } + } + } + } +} + +function mixStaticSpecIntoComponent(Constructor, statics) { + if (!statics) { + return; + } + for (var name in statics) { + var property = statics[name]; + if (!statics.hasOwnProperty(name)) { + continue; + } + + var isReserved = (name in RESERVED_SPEC_KEYS); + !!isReserved ? "development" !== 'production' ? invariant(false, 'ReactClass: You are attempting to define a reserved ' + 'property, `%s`, that shouldn\'t be on the "statics" key. Define it ' + 'as an instance property instead; it will still be accessible on the ' + 'constructor.', name) : invariant(false) : undefined; + + var isInherited = (name in Constructor); + !!isInherited ? "development" !== 'production' ? invariant(false, 'ReactClass: You are attempting to define ' + '`%s` on your component more than once. This conflict may be ' + 'due to a mixin.', name) : invariant(false) : undefined; + Constructor[name] = property; + } +} + +/** + * Merge two objects, but throw if both contain the same key. + * + * @param {object} one The first object, which is mutated. + * @param {object} two The second object + * @return {object} one after it has been mutated to contain everything in two. + */ +function mergeIntoWithNoDuplicateKeys(one, two) { + !(one && two && typeof one === 'object' && typeof two === 'object') ? "development" !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.') : invariant(false) : undefined; + + for (var key in two) { + if (two.hasOwnProperty(key)) { + !(one[key] === undefined) ? "development" !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): ' + 'Tried to merge two objects with the same key: `%s`. This conflict ' + 'may be due to a mixin; in particular, this may be caused by two ' + 'getInitialState() or getDefaultProps() methods returning objects ' + 'with clashing keys.', key) : invariant(false) : undefined; + one[key] = two[key]; + } + } + return one; +} + +/** + * Creates a function that invokes two functions and merges their return values. + * + * @param {function} one Function to invoke first. + * @param {function} two Function to invoke second. + * @return {function} Function that invokes the two argument functions. + * @private + */ +function createMergedResultFunction(one, two) { + return function mergedResult() { + var a = one.apply(this, arguments); + var b = two.apply(this, arguments); + if (a == null) { + return b; + } else if (b == null) { + return a; + } + var c = {}; + mergeIntoWithNoDuplicateKeys(c, a); + mergeIntoWithNoDuplicateKeys(c, b); + return c; + }; +} + +/** + * Creates a function that invokes two functions and ignores their return vales. + * + * @param {function} one Function to invoke first. + * @param {function} two Function to invoke second. + * @return {function} Function that invokes the two argument functions. + * @private + */ +function createChainedFunction(one, two) { + return function chainedFunction() { + one.apply(this, arguments); + two.apply(this, arguments); + }; +} + +/** + * Binds a method to the component. + * + * @param {object} component Component whose method is going to be bound. + * @param {function} method Method to be bound. + * @return {function} The bound method. + */ +function bindAutoBindMethod(component, method) { + var boundMethod = method.bind(component); + if ("development" !== 'production') { + boundMethod.__reactBoundContext = component; + boundMethod.__reactBoundMethod = method; + boundMethod.__reactBoundArguments = null; + var componentName = component.constructor.displayName; + var _bind = boundMethod.bind; + /* eslint-disable block-scoped-var, no-undef */ + boundMethod.bind = function (newThis) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + // User is trying to bind() an autobound method; we effectively will + // ignore the value of "this" that the user is trying to use, so + // let's warn. + if (newThis !== component && newThis !== null) { + "development" !== 'production' ? warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName) : undefined; + } else if (!args.length) { + "development" !== 'production' ? warning(false, 'bind(): You are binding a component method to the component. ' + 'React does this for you automatically in a high-performance ' + 'way, so you can safely remove this call. See %s', componentName) : undefined; + return boundMethod; + } + var reboundMethod = _bind.apply(boundMethod, arguments); + reboundMethod.__reactBoundContext = component; + reboundMethod.__reactBoundMethod = method; + reboundMethod.__reactBoundArguments = args; + return reboundMethod; + /* eslint-enable */ + }; + } + return boundMethod; +} + +/** + * Binds all auto-bound methods in a component. + * + * @param {object} component Component whose method is going to be bound. + */ +function bindAutoBindMethods(component) { + for (var autoBindKey in component.__reactAutoBindMap) { + if (component.__reactAutoBindMap.hasOwnProperty(autoBindKey)) { + var method = component.__reactAutoBindMap[autoBindKey]; + component[autoBindKey] = bindAutoBindMethod(component, method); + } + } +} + +/** + * Add more to the ReactClass base class. These are all legacy features and + * therefore not already part of the modern ReactComponent. + */ +var ReactClassMixin = { + + /** + * TODO: This will be deprecated because state should always keep a consistent + * type signature and the only use case for this, is to avoid that. + */ + replaceState: function (newState, callback) { + this.updater.enqueueReplaceState(this, newState); + if (callback) { + this.updater.enqueueCallback(this, callback); + } + }, + + /** + * Checks whether or not this composite component is mounted. + * @return {boolean} True if mounted, false otherwise. + * @protected + * @final + */ + isMounted: function () { + return this.updater.isMounted(this); + }, + + /** + * Sets a subset of the props. + * + * @param {object} partialProps Subset of the next props. + * @param {?function} callback Called after props are updated. + * @final + * @public + * @deprecated + */ + setProps: function (partialProps, callback) { + if ("development" !== 'production') { + warnSetProps(); + } + this.updater.enqueueSetProps(this, partialProps); + if (callback) { + this.updater.enqueueCallback(this, callback); + } + }, + + /** + * Replace all the props. + * + * @param {object} newProps Subset of the next props. + * @param {?function} callback Called after props are updated. + * @final + * @public + * @deprecated + */ + replaceProps: function (newProps, callback) { + if ("development" !== 'production') { + warnSetProps(); + } + this.updater.enqueueReplaceProps(this, newProps); + if (callback) { + this.updater.enqueueCallback(this, callback); + } + } +}; + +var ReactClassComponent = function () {}; +assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin); + +/** + * Module for creating composite components. + * + * @class ReactClass + */ +var ReactClass = { + + /** + * Creates a composite component class given a class specification. + * + * @param {object} spec Class specification (which must define `render`). + * @return {function} Component constructor function. + * @public + */ + createClass: function (spec) { + var Constructor = function (props, context, updater) { + // This constructor is overridden by mocks. The argument is used + // by mocks to assert on what gets mounted. + + if ("development" !== 'production') { + "development" !== 'production' ? warning(this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory') : undefined; + } + + // Wire up auto-binding + if (this.__reactAutoBindMap) { + bindAutoBindMethods(this); + } + + this.props = props; + this.context = context; + this.refs = emptyObject; + this.updater = updater || ReactNoopUpdateQueue; + + this.state = null; + + // ReactClasses doesn't have constructors. Instead, they use the + // getInitialState and componentWillMount methods for initialization. + + var initialState = this.getInitialState ? this.getInitialState() : null; + if ("development" !== 'production') { + // We allow auto-mocks to proceed as if they're returning null. + if (typeof initialState === 'undefined' && this.getInitialState._isMockFunction) { + // This is probably bad practice. Consider warning here and + // deprecating this convenience. + initialState = null; + } + } + !(typeof initialState === 'object' && !Array.isArray(initialState)) ? "development" !== 'production' ? invariant(false, '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent') : invariant(false) : undefined; + + this.state = initialState; + }; + Constructor.prototype = new ReactClassComponent(); + Constructor.prototype.constructor = Constructor; + + injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor)); + + mixSpecIntoComponent(Constructor, spec); + + // Initialize the defaultProps property after all mixins have been merged. + if (Constructor.getDefaultProps) { + Constructor.defaultProps = Constructor.getDefaultProps(); + } + + if ("development" !== 'production') { + // This is a tag to indicate that the use of these method names is ok, + // since it's used with createClass. If it's not, then it's likely a + // mistake so we'll warn you to use the static property, property + // initializer or constructor respectively. + if (Constructor.getDefaultProps) { + Constructor.getDefaultProps.isReactClassApproved = {}; + } + if (Constructor.prototype.getInitialState) { + Constructor.prototype.getInitialState.isReactClassApproved = {}; + } + } + + !Constructor.prototype.render ? "development" !== 'production' ? invariant(false, 'createClass(...): Class specification must implement a `render` method.') : invariant(false) : undefined; + + if ("development" !== 'production') { + "development" !== 'production' ? warning(!Constructor.prototype.componentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', spec.displayName || 'A component') : undefined; + "development" !== 'production' ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : undefined; + } + + // Reduce time spent doing lookups by setting these on the prototype. + for (var methodName in ReactClassInterface) { + if (!Constructor.prototype[methodName]) { + Constructor.prototype[methodName] = null; + } + } + + return Constructor; + }, + + injection: { + injectMixin: function (mixin) { + injectedMixins.push(mixin); + } + } + +}; + +module.exports = ReactClass; +},{"137":137,"144":144,"147":147,"148":148,"155":155,"23":23,"30":30,"52":52,"69":69,"72":72,"73":73}],30:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactComponent + */ + +'use strict'; + +var ReactNoopUpdateQueue = _dereq_(69); + +var canDefineProperty = _dereq_(104); +var emptyObject = _dereq_(137); +var invariant = _dereq_(144); +var warning = _dereq_(155); + +/** + * Base class helpers for the updating state of a component. + */ +function ReactComponent(props, context, updater) { + this.props = props; + this.context = context; + this.refs = emptyObject; + // We initialize the default updater but the real one gets injected by the + // renderer. + this.updater = updater || ReactNoopUpdateQueue; +} + +ReactComponent.prototype.isReactComponent = {}; + +/** + * Sets a subset of the state. Always use this to mutate + * state. You should treat `this.state` as immutable. + * + * There is no guarantee that `this.state` will be immediately updated, so + * accessing `this.state` after calling this method may return the old value. + * + * There is no guarantee that calls to `setState` will run synchronously, + * as they may eventually be batched together. You can provide an optional + * callback that will be executed when the call to setState is actually + * completed. + * + * When a function is provided to setState, it will be called at some point in + * the future (not synchronously). It will be called with the up to date + * component arguments (state, props, context). These values can be different + * from this.* because your function may be called after receiveProps but before + * shouldComponentUpdate, and this new state, props, and context will not yet be + * assigned to this. + * + * @param {object|function} partialState Next partial state or function to + * produce next partial state to be merged with current state. + * @param {?function} callback Called after state is updated. + * @final + * @protected + */ +ReactComponent.prototype.setState = function (partialState, callback) { + !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? "development" !== 'production' ? invariant(false, 'setState(...): takes an object of state variables to update or a ' + 'function which returns an object of state variables.') : invariant(false) : undefined; + if ("development" !== 'production') { + "development" !== 'production' ? warning(partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().') : undefined; + } + this.updater.enqueueSetState(this, partialState); + if (callback) { + this.updater.enqueueCallback(this, callback); + } +}; + +/** + * Forces an update. This should only be invoked when it is known with + * certainty that we are **not** in a DOM transaction. + * + * You may want to call this when you know that some deeper aspect of the + * component's state has changed but `setState` was not called. + * + * This will not invoke `shouldComponentUpdate`, but it will invoke + * `componentWillUpdate` and `componentDidUpdate`. + * + * @param {?function} callback Called after update is complete. + * @final + * @protected + */ +ReactComponent.prototype.forceUpdate = function (callback) { + this.updater.enqueueForceUpdate(this); + if (callback) { + this.updater.enqueueCallback(this, callback); + } +}; + +/** + * Deprecated APIs. These APIs used to exist on classic React classes but since + * we would like to deprecate them, we're not going to move them over to this + * modern base class. Instead, we define a getter that warns if it's accessed. + */ +if ("development" !== 'production') { + var deprecatedAPIs = { + getDOMNode: ['getDOMNode', 'Use ReactDOM.findDOMNode(component) instead.'], + isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'], + replaceProps: ['replaceProps', 'Instead, call render again at the top level.'], + replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).'], + setProps: ['setProps', 'Instead, call render again at the top level.'] + }; + var defineDeprecationWarning = function (methodName, info) { + if (canDefineProperty) { + Object.defineProperty(ReactComponent.prototype, methodName, { + get: function () { + "development" !== 'production' ? warning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]) : undefined; + return undefined; + } + }); + } + }; + for (var fnName in deprecatedAPIs) { + if (deprecatedAPIs.hasOwnProperty(fnName)) { + defineDeprecationWarning(fnName, deprecatedAPIs[fnName]); + } + } +} + +module.exports = ReactComponent; +},{"104":104,"137":137,"144":144,"155":155,"69":69}],31:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactComponentBrowserEnvironment + */ + +'use strict'; + +var ReactDOMIDOperations = _dereq_(40); +var ReactMount = _dereq_(65); + +/** + * Abstracts away all functionality of the reconciler that requires knowledge of + * the browser context. TODO: These callers should be refactored to avoid the + * need for this injection. + */ +var ReactComponentBrowserEnvironment = { + + processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates, + + replaceNodeWithMarkupByID: ReactDOMIDOperations.dangerouslyReplaceNodeWithMarkupByID, + + /** + * If a particular environment requires that some resources be cleaned up, + * specify this in the injected Mixin. In the DOM, we would likely want to + * purge any cached node ID lookups. + * + * @private + */ + unmountIDFromEnvironment: function (rootNodeID) { + ReactMount.purgeID(rootNodeID); + } + +}; + +module.exports = ReactComponentBrowserEnvironment; +},{"40":40,"65":65}],32:[function(_dereq_,module,exports){ +/** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactComponentEnvironment + */ + +'use strict'; + +var invariant = _dereq_(144); + +var injected = false; + +var ReactComponentEnvironment = { + + /** + * Optionally injectable environment dependent cleanup hook. (server vs. + * browser etc). Example: A browser system caches DOM nodes based on component + * ID and must remove that cache entry when this instance is unmounted. + */ + unmountIDFromEnvironment: null, + + /** + * Optionally injectable hook for swapping out mount images in the middle of + * the tree. + */ + replaceNodeWithMarkupByID: null, + + /** + * Optionally injectable hook for processing a queue of child updates. Will + * later move into MultiChildComponents. + */ + processChildrenUpdates: null, + + injection: { + injectEnvironment: function (environment) { + !!injected ? "development" !== 'production' ? invariant(false, 'ReactCompositeComponent: injectEnvironment() can only be called once.') : invariant(false) : undefined; + ReactComponentEnvironment.unmountIDFromEnvironment = environment.unmountIDFromEnvironment; + ReactComponentEnvironment.replaceNodeWithMarkupByID = environment.replaceNodeWithMarkupByID; + ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates; + injected = true; + } + } + +}; + +module.exports = ReactComponentEnvironment; +},{"144":144}],33:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactCompositeComponent + */ + +'use strict'; + +var ReactComponentEnvironment = _dereq_(32); +var ReactCurrentOwner = _dereq_(34); +var ReactElement = _dereq_(52); +var ReactInstanceMap = _dereq_(62); +var ReactPerf = _dereq_(71); +var ReactPropTypeLocations = _dereq_(73); +var ReactPropTypeLocationNames = _dereq_(72); +var ReactReconciler = _dereq_(76); +var ReactUpdateQueue = _dereq_(82); + +var assign = _dereq_(23); +var emptyObject = _dereq_(137); +var invariant = _dereq_(144); +var shouldUpdateReactComponent = _dereq_(126); +var warning = _dereq_(155); + +function getDeclarationErrorAddendum(component) { + var owner = component._currentElement._owner || null; + if (owner) { + var name = owner.getName(); + if (name) { + return ' Check the render method of `' + name + '`.'; + } + } + return ''; +} + +function StatelessComponent(Component) {} +StatelessComponent.prototype.render = function () { + var Component = ReactInstanceMap.get(this)._currentElement.type; + return Component(this.props, this.context, this.updater); +}; + +/** + * ------------------ The Life-Cycle of a Composite Component ------------------ + * + * - constructor: Initialization of state. The instance is now retained. + * - componentWillMount + * - render + * - [children's constructors] + * - [children's componentWillMount and render] + * - [children's componentDidMount] + * - componentDidMount + * + * Update Phases: + * - componentWillReceiveProps (only called if parent updated) + * - shouldComponentUpdate + * - componentWillUpdate + * - render + * - [children's constructors or receive props phases] + * - componentDidUpdate + * + * - componentWillUnmount + * - [children's componentWillUnmount] + * - [children destroyed] + * - (destroyed): The instance is now blank, released by React and ready for GC. + * + * ----------------------------------------------------------------------------- + */ + +/** + * An incrementing ID assigned to each component when it is mounted. This is + * used to enforce the order in which `ReactUpdates` updates dirty components. + * + * @private + */ +var nextMountID = 1; + +/** + * @lends {ReactCompositeComponent.prototype} + */ +var ReactCompositeComponentMixin = { + + /** + * Base constructor for all composite component. + * + * @param {ReactElement} element + * @final + * @internal + */ + construct: function (element) { + this._currentElement = element; + this._rootNodeID = null; + this._instance = null; + + // See ReactUpdateQueue + this._pendingElement = null; + this._pendingStateQueue = null; + this._pendingReplaceState = false; + this._pendingForceUpdate = false; + + this._renderedComponent = null; + + this._context = null; + this._mountOrder = 0; + this._topLevelWrapper = null; + + // See ReactUpdates and ReactUpdateQueue. + this._pendingCallbacks = null; + }, + + /** + * Initializes the component, renders markup, and registers event listeners. + * + * @param {string} rootID DOM ID of the root node. + * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction + * @return {?string} Rendered markup to be inserted into the DOM. + * @final + * @internal + */ + mountComponent: function (rootID, transaction, context) { + this._context = context; + this._mountOrder = nextMountID++; + this._rootNodeID = rootID; + + var publicProps = this._processProps(this._currentElement.props); + var publicContext = this._processContext(context); + + var Component = this._currentElement.type; + + // Initialize the public class + var inst; + var renderedElement; + + // This is a way to detect if Component is a stateless arrow function + // component, which is not newable. It might not be 100% reliable but is + // something we can do until we start detecting that Component extends + // React.Component. We already assume that typeof Component === 'function'. + var canInstantiate = ('prototype' in Component); + + if (canInstantiate) { + if ("development" !== 'production') { + ReactCurrentOwner.current = this; + try { + inst = new Component(publicProps, publicContext, ReactUpdateQueue); + } finally { + ReactCurrentOwner.current = null; + } + } else { + inst = new Component(publicProps, publicContext, ReactUpdateQueue); + } + } + + if (!canInstantiate || inst === null || inst === false || ReactElement.isValidElement(inst)) { + renderedElement = inst; + inst = new StatelessComponent(Component); + } + + if ("development" !== 'production') { + // This will throw later in _renderValidatedComponent, but add an early + // warning now to help debugging + if (inst.render == null) { + "development" !== 'production' ? warning(false, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`, returned ' + 'null/false from a stateless component, or tried to render an ' + 'element whose type is a function that isn\'t a React component.', Component.displayName || Component.name || 'Component') : undefined; + } else { + // We support ES6 inheriting from React.Component, the module pattern, + // and stateless components, but not ES6 classes that don't extend + "development" !== 'production' ? warning(Component.prototype && Component.prototype.isReactComponent || !canInstantiate || !(inst instanceof Component), '%s(...): React component classes must extend React.Component.', Component.displayName || Component.name || 'Component') : undefined; + } + } + + // These should be set up in the constructor, but as a convenience for + // simpler class abstractions, we set them up after the fact. + inst.props = publicProps; + inst.context = publicContext; + inst.refs = emptyObject; + inst.updater = ReactUpdateQueue; + + this._instance = inst; + + // Store a reference from the instance back to the internal representation + ReactInstanceMap.set(inst, this); + + if ("development" !== 'production') { + // Since plain JS classes are defined without any special initialization + // logic, we can not catch common errors early. Therefore, we have to + // catch them here, at initialization time, instead. + "development" !== 'production' ? warning(!inst.getInitialState || inst.getInitialState.isReactClassApproved, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', this.getName() || 'a component') : undefined; + "development" !== 'production' ? warning(!inst.getDefaultProps || inst.getDefaultProps.isReactClassApproved, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', this.getName() || 'a component') : undefined; + "development" !== 'production' ? warning(!inst.propTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', this.getName() || 'a component') : undefined; + "development" !== 'production' ? warning(!inst.contextTypes, 'contextTypes was defined as an instance property on %s. Use a ' + 'static property to define contextTypes instead.', this.getName() || 'a component') : undefined; + "development" !== 'production' ? warning(typeof inst.componentShouldUpdate !== 'function', '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', this.getName() || 'A component') : undefined; + "development" !== 'production' ? warning(typeof inst.componentDidUnmount !== 'function', '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', this.getName() || 'A component') : undefined; + "development" !== 'production' ? warning(typeof inst.componentWillRecieveProps !== 'function', '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', this.getName() || 'A component') : undefined; + } + + var initialState = inst.state; + if (initialState === undefined) { + inst.state = initialState = null; + } + !(typeof initialState === 'object' && !Array.isArray(initialState)) ? "development" !== 'production' ? invariant(false, '%s.state: must be set to an object or null', this.getName() || 'ReactCompositeComponent') : invariant(false) : undefined; + + this._pendingStateQueue = null; + this._pendingReplaceState = false; + this._pendingForceUpdate = false; + + if (inst.componentWillMount) { + inst.componentWillMount(); + // When mounting, calls to `setState` by `componentWillMount` will set + // `this._pendingStateQueue` without triggering a re-render. + if (this._pendingStateQueue) { + inst.state = this._processPendingState(inst.props, inst.context); + } + } + + // If not a stateless component, we now render + if (renderedElement === undefined) { + renderedElement = this._renderValidatedComponent(); + } + + this._renderedComponent = this._instantiateReactComponent(renderedElement); + + var markup = ReactReconciler.mountComponent(this._renderedComponent, rootID, transaction, this._processChildContext(context)); + if (inst.componentDidMount) { + transaction.getReactMountReady().enqueue(inst.componentDidMount, inst); + } + + return markup; + }, + + /** + * Releases any resources allocated by `mountComponent`. + * + * @final + * @internal + */ + unmountComponent: function () { + var inst = this._instance; + + if (inst.componentWillUnmount) { + inst.componentWillUnmount(); + } + + ReactReconciler.unmountComponent(this._renderedComponent); + this._renderedComponent = null; + this._instance = null; + + // Reset pending fields + // Even if this component is scheduled for another update in ReactUpdates, + // it would still be ignored because these fields are reset. + this._pendingStateQueue = null; + this._pendingReplaceState = false; + this._pendingForceUpdate = false; + this._pendingCallbacks = null; + this._pendingElement = null; + + // These fields do not really need to be reset since this object is no + // longer accessible. + this._context = null; + this._rootNodeID = null; + this._topLevelWrapper = null; + + // Delete the reference from the instance to this internal representation + // which allow the internals to be properly cleaned up even if the user + // leaks a reference to the public instance. + ReactInstanceMap.remove(inst); + + // Some existing components rely on inst.props even after they've been + // destroyed (in event handlers). + // TODO: inst.props = null; + // TODO: inst.state = null; + // TODO: inst.context = null; + }, + + /** + * Filters the context object to only contain keys specified in + * `contextTypes` + * + * @param {object} context + * @return {?object} + * @private + */ + _maskContext: function (context) { + var maskedContext = null; + var Component = this._currentElement.type; + var contextTypes = Component.contextTypes; + if (!contextTypes) { + return emptyObject; + } + maskedContext = {}; + for (var contextName in contextTypes) { + maskedContext[contextName] = context[contextName]; + } + return maskedContext; + }, + + /** + * Filters the context object to only contain keys specified in + * `contextTypes`, and asserts that they are valid. + * + * @param {object} context + * @return {?object} + * @private + */ + _processContext: function (context) { + var maskedContext = this._maskContext(context); + if ("development" !== 'production') { + var Component = this._currentElement.type; + if (Component.contextTypes) { + this._checkPropTypes(Component.contextTypes, maskedContext, ReactPropTypeLocations.context); + } + } + return maskedContext; + }, + + /** + * @param {object} currentContext + * @return {object} + * @private + */ + _processChildContext: function (currentContext) { + var Component = this._currentElement.type; + var inst = this._instance; + var childContext = inst.getChildContext && inst.getChildContext(); + if (childContext) { + !(typeof Component.childContextTypes === 'object') ? "development" !== 'production' ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', this.getName() || 'ReactCompositeComponent') : invariant(false) : undefined; + if ("development" !== 'production') { + this._checkPropTypes(Component.childContextTypes, childContext, ReactPropTypeLocations.childContext); + } + for (var name in childContext) { + !(name in Component.childContextTypes) ? "development" !== 'production' ? invariant(false, '%s.getChildContext(): key "%s" is not defined in childContextTypes.', this.getName() || 'ReactCompositeComponent', name) : invariant(false) : undefined; + } + return assign({}, currentContext, childContext); + } + return currentContext; + }, + + /** + * Processes props by setting default values for unspecified props and + * asserting that the props are valid. Does not mutate its argument; returns + * a new props object with defaults merged in. + * + * @param {object} newProps + * @return {object} + * @private + */ + _processProps: function (newProps) { + if ("development" !== 'production') { + var Component = this._currentElement.type; + if (Component.propTypes) { + this._checkPropTypes(Component.propTypes, newProps, ReactPropTypeLocations.prop); + } + } + return newProps; + }, + + /** + * Assert that the props are valid + * + * @param {object} propTypes Map of prop name to a ReactPropType + * @param {object} props + * @param {string} location e.g. "prop", "context", "child context" + * @private + */ + _checkPropTypes: function (propTypes, props, location) { + // TODO: Stop validating prop types here and only use the element + // validation. + var componentName = this.getName(); + for (var propName in propTypes) { + if (propTypes.hasOwnProperty(propName)) { + var error; + try { + // This is intentionally an invariant that gets caught. It's the same + // behavior as without this statement except with a better message. + !(typeof propTypes[propName] === 'function') ? "development" !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually ' + 'from React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], propName) : invariant(false) : undefined; + error = propTypes[propName](props, propName, componentName, location); + } catch (ex) { + error = ex; + } + if (error instanceof Error) { + // We may want to extend this logic for similar errors in + // top-level render calls, so I'm abstracting it away into + // a function to minimize refactoring in the future + var addendum = getDeclarationErrorAddendum(this); + + if (location === ReactPropTypeLocations.prop) { + // Preface gives us something to blacklist in warning module + "development" !== 'production' ? warning(false, 'Failed Composite propType: %s%s', error.message, addendum) : undefined; + } else { + "development" !== 'production' ? warning(false, 'Failed Context Types: %s%s', error.message, addendum) : undefined; + } + } + } + } + }, + + receiveComponent: function (nextElement, transaction, nextContext) { + var prevElement = this._currentElement; + var prevContext = this._context; + + this._pendingElement = null; + + this.updateComponent(transaction, prevElement, nextElement, prevContext, nextContext); + }, + + /** + * If any of `_pendingElement`, `_pendingStateQueue`, or `_pendingForceUpdate` + * is set, update the component. + * + * @param {ReactReconcileTransaction} transaction + * @internal + */ + performUpdateIfNecessary: function (transaction) { + if (this._pendingElement != null) { + ReactReconciler.receiveComponent(this, this._pendingElement || this._currentElement, transaction, this._context); + } + + if (this._pendingStateQueue !== null || this._pendingForceUpdate) { + this.updateComponent(transaction, this._currentElement, this._currentElement, this._context, this._context); + } + }, + + /** + * Perform an update to a mounted component. The componentWillReceiveProps and + * shouldComponentUpdate methods are called, then (assuming the update isn't + * skipped) the remaining update lifecycle methods are called and the DOM + * representation is updated. + * + * By default, this implements React's rendering and reconciliation algorithm. + * Sophisticated clients may wish to override this. + * + * @param {ReactReconcileTransaction} transaction + * @param {ReactElement} prevParentElement + * @param {ReactElement} nextParentElement + * @internal + * @overridable + */ + updateComponent: function (transaction, prevParentElement, nextParentElement, prevUnmaskedContext, nextUnmaskedContext) { + var inst = this._instance; + + var nextContext = this._context === nextUnmaskedContext ? inst.context : this._processContext(nextUnmaskedContext); + var nextProps; + + // Distinguish between a props update versus a simple state update + if (prevParentElement === nextParentElement) { + // Skip checking prop types again -- we don't read inst.props to avoid + // warning for DOM component props in this upgrade + nextProps = nextParentElement.props; + } else { + nextProps = this._processProps(nextParentElement.props); + // An update here will schedule an update but immediately set + // _pendingStateQueue which will ensure that any state updates gets + // immediately reconciled instead of waiting for the next batch. + + if (inst.componentWillReceiveProps) { + inst.componentWillReceiveProps(nextProps, nextContext); + } + } + + var nextState = this._processPendingState(nextProps, nextContext); + + var shouldUpdate = this._pendingForceUpdate || !inst.shouldComponentUpdate || inst.shouldComponentUpdate(nextProps, nextState, nextContext); + + if ("development" !== 'production') { + "development" !== 'production' ? warning(typeof shouldUpdate !== 'undefined', '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : undefined; + } + + if (shouldUpdate) { + this._pendingForceUpdate = false; + // Will set `this.props`, `this.state` and `this.context`. + this._performComponentUpdate(nextParentElement, nextProps, nextState, nextContext, transaction, nextUnmaskedContext); + } else { + // If it's determined that a component should not update, we still want + // to set props and state but we shortcut the rest of the update. + this._currentElement = nextParentElement; + this._context = nextUnmaskedContext; + inst.props = nextProps; + inst.state = nextState; + inst.context = nextContext; + } + }, + + _processPendingState: function (props, context) { + var inst = this._instance; + var queue = this._pendingStateQueue; + var replace = this._pendingReplaceState; + this._pendingReplaceState = false; + this._pendingStateQueue = null; + + if (!queue) { + return inst.state; + } + + if (replace && queue.length === 1) { + return queue[0]; + } + + var nextState = assign({}, replace ? queue[0] : inst.state); + for (var i = replace ? 1 : 0; i < queue.length; i++) { + var partial = queue[i]; + assign(nextState, typeof partial === 'function' ? partial.call(inst, nextState, props, context) : partial); + } + + return nextState; + }, + + /** + * Merges new props and state, notifies delegate methods of update and + * performs update. + * + * @param {ReactElement} nextElement Next element + * @param {object} nextProps Next public object to set as properties. + * @param {?object} nextState Next object to set as state. + * @param {?object} nextContext Next public object to set as context. + * @param {ReactReconcileTransaction} transaction + * @param {?object} unmaskedContext + * @private + */ + _performComponentUpdate: function (nextElement, nextProps, nextState, nextContext, transaction, unmaskedContext) { + var inst = this._instance; + + var hasComponentDidUpdate = Boolean(inst.componentDidUpdate); + var prevProps; + var prevState; + var prevContext; + if (hasComponentDidUpdate) { + prevProps = inst.props; + prevState = inst.state; + prevContext = inst.context; + } + + if (inst.componentWillUpdate) { + inst.componentWillUpdate(nextProps, nextState, nextContext); + } + + this._currentElement = nextElement; + this._context = unmaskedContext; + inst.props = nextProps; + inst.state = nextState; + inst.context = nextContext; + + this._updateRenderedComponent(transaction, unmaskedContext); + + if (hasComponentDidUpdate) { + transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst); + } + }, + + /** + * Call the component's `render` method and update the DOM accordingly. + * + * @param {ReactReconcileTransaction} transaction + * @internal + */ + _updateRenderedComponent: function (transaction, context) { + var prevComponentInstance = this._renderedComponent; + var prevRenderedElement = prevComponentInstance._currentElement; + var nextRenderedElement = this._renderValidatedComponent(); + if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) { + ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context)); + } else { + // These two IDs are actually the same! But nothing should rely on that. + var thisID = this._rootNodeID; + var prevComponentID = prevComponentInstance._rootNodeID; + ReactReconciler.unmountComponent(prevComponentInstance); + + this._renderedComponent = this._instantiateReactComponent(nextRenderedElement); + var nextMarkup = ReactReconciler.mountComponent(this._renderedComponent, thisID, transaction, this._processChildContext(context)); + this._replaceNodeWithMarkupByID(prevComponentID, nextMarkup); + } + }, + + /** + * @protected + */ + _replaceNodeWithMarkupByID: function (prevComponentID, nextMarkup) { + ReactComponentEnvironment.replaceNodeWithMarkupByID(prevComponentID, nextMarkup); + }, + + /** + * @protected + */ + _renderValidatedComponentWithoutOwnerOrContext: function () { + var inst = this._instance; + var renderedComponent = inst.render(); + if ("development" !== 'production') { + // We allow auto-mocks to proceed as if they're returning null. + if (typeof renderedComponent === 'undefined' && inst.render._isMockFunction) { + // This is probably bad practice. Consider warning here and + // deprecating this convenience. + renderedComponent = null; + } + } + + return renderedComponent; + }, + + /** + * @private + */ + _renderValidatedComponent: function () { + var renderedComponent; + ReactCurrentOwner.current = this; + try { + renderedComponent = this._renderValidatedComponentWithoutOwnerOrContext(); + } finally { + ReactCurrentOwner.current = null; + } + !( + // TODO: An `isValidNode` function would probably be more appropriate + renderedComponent === null || renderedComponent === false || ReactElement.isValidElement(renderedComponent)) ? "development" !== 'production' ? invariant(false, '%s.render(): A valid ReactComponent must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', this.getName() || 'ReactCompositeComponent') : invariant(false) : undefined; + return renderedComponent; + }, + + /** + * Lazily allocates the refs object and stores `component` as `ref`. + * + * @param {string} ref Reference name. + * @param {component} component Component to store as `ref`. + * @final + * @private + */ + attachRef: function (ref, component) { + var inst = this.getPublicInstance(); + !(inst != null) ? "development" !== 'production' ? invariant(false, 'Stateless function components cannot have refs.') : invariant(false) : undefined; + var publicComponentInstance = component.getPublicInstance(); + if ("development" !== 'production') { + var componentName = component && component.getName ? component.getName() : 'a component'; + "development" !== 'production' ? warning(publicComponentInstance != null, 'Stateless function components cannot be given refs ' + '(See ref "%s" in %s created by %s). ' + 'Attempts to access this ref will fail.', ref, componentName, this.getName()) : undefined; + } + var refs = inst.refs === emptyObject ? inst.refs = {} : inst.refs; + refs[ref] = publicComponentInstance; + }, + + /** + * Detaches a reference name. + * + * @param {string} ref Name to dereference. + * @final + * @private + */ + detachRef: function (ref) { + var refs = this.getPublicInstance().refs; + delete refs[ref]; + }, + + /** + * Get a text description of the component that can be used to identify it + * in error messages. + * @return {string} The name or null. + * @internal + */ + getName: function () { + var type = this._currentElement.type; + var constructor = this._instance && this._instance.constructor; + return type.displayName || constructor && constructor.displayName || type.name || constructor && constructor.name || null; + }, + + /** + * Get the publicly accessible representation of this component - i.e. what + * is exposed by refs and returned by render. Can be null for stateless + * components. + * + * @return {ReactComponent} the public component instance. + * @internal + */ + getPublicInstance: function () { + var inst = this._instance; + if (inst instanceof StatelessComponent) { + return null; + } + return inst; + }, + + // Stub + _instantiateReactComponent: null + +}; + +ReactPerf.measureMethods(ReactCompositeComponentMixin, 'ReactCompositeComponent', { + mountComponent: 'mountComponent', + updateComponent: 'updateComponent', + _renderValidatedComponent: '_renderValidatedComponent' +}); + +var ReactCompositeComponent = { + + Mixin: ReactCompositeComponentMixin + +}; + +module.exports = ReactCompositeComponent; +},{"126":126,"137":137,"144":144,"155":155,"23":23,"32":32,"34":34,"52":52,"62":62,"71":71,"72":72,"73":73,"76":76,"82":82}],34:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactCurrentOwner + */ + +'use strict'; + +/** + * Keeps track of the current owner. + * + * The current owner is the component who should own any components that are + * currently being constructed. + */ +var ReactCurrentOwner = { + + /** + * @internal + * @type {ReactComponent} + */ + current: null + +}; + +module.exports = ReactCurrentOwner; +},{}],35:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactDOM + */ + +/* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/ + +'use strict'; + +var ReactCurrentOwner = _dereq_(34); +var ReactDOMTextComponent = _dereq_(46); +var ReactDefaultInjection = _dereq_(49); +var ReactInstanceHandles = _dereq_(61); +var ReactMount = _dereq_(65); +var ReactPerf = _dereq_(71); +var ReactReconciler = _dereq_(76); +var ReactUpdates = _dereq_(83); +var ReactVersion = _dereq_(84); + +var findDOMNode = _dereq_(108); +var renderSubtreeIntoContainer = _dereq_(123); +var warning = _dereq_(155); + +ReactDefaultInjection.inject(); + +var render = ReactPerf.measure('React', 'render', ReactMount.render); + +var React = { + findDOMNode: findDOMNode, + render: render, + unmountComponentAtNode: ReactMount.unmountComponentAtNode, + version: ReactVersion, + + /* eslint-disable camelcase */ + unstable_batchedUpdates: ReactUpdates.batchedUpdates, + unstable_renderSubtreeIntoContainer: renderSubtreeIntoContainer +}; + +// Inject the runtime into a devtools global hook regardless of browser. +// Allows for debugging when the hook is injected on the page. +/* eslint-enable camelcase */ +if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') { + __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({ + CurrentOwner: ReactCurrentOwner, + InstanceHandles: ReactInstanceHandles, + Mount: ReactMount, + Reconciler: ReactReconciler, + TextComponent: ReactDOMTextComponent + }); +} + +if ("development" !== 'production') { + var ExecutionEnvironment = _dereq_(130); + if (ExecutionEnvironment.canUseDOM && window.top === window.self) { + + // First check if devtools is not installed + if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') { + // If we're in Chrome or Firefox, provide a download link if not installed. + if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) { + console.debug('Download the React DevTools for a better development experience: ' + 'https://fb.me/react-devtools'); + } + } + + // If we're in IE8, check to see if we are in compatibility mode and provide + // information on preventing compatibility mode + var ieCompatibilityMode = document.documentMode && document.documentMode < 8; + + "development" !== 'production' ? warning(!ieCompatibilityMode, 'Internet Explorer is running in compatibility mode; please add the ' + 'following tag to your HTML to prevent this from happening: ' + '<meta http-equiv="X-UA-Compatible" content="IE=edge" />') : undefined; + + var expectedFeatures = [ + // shims + Array.isArray, Array.prototype.every, Array.prototype.forEach, Array.prototype.indexOf, Array.prototype.map, Date.now, Function.prototype.bind, Object.keys, String.prototype.split, String.prototype.trim, + + // shams + Object.create, Object.freeze]; + + for (var i = 0; i < expectedFeatures.length; i++) { + if (!expectedFeatures[i]) { + console.error('One or more ES5 shim/shams expected by React are not available: ' + 'https://fb.me/react-warning-polyfills'); + break; + } + } + } +} + +module.exports = React; +},{"108":108,"123":123,"130":130,"155":155,"34":34,"46":46,"49":49,"61":61,"65":65,"71":71,"76":76,"83":83,"84":84}],36:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactDOMButton + */ + +'use strict'; + +var mouseListenerNames = { + onClick: true, + onDoubleClick: true, + onMouseDown: true, + onMouseMove: true, + onMouseUp: true, + + onClickCapture: true, + onDoubleClickCapture: true, + onMouseDownCapture: true, + onMouseMoveCapture: true, + onMouseUpCapture: true +}; + +/** + * Implements a <button> native component that does not receive mouse events + * when `disabled` is set. + */ +var ReactDOMButton = { + getNativeProps: function (inst, props, context) { + if (!props.disabled) { + return props; + } + + // Copy the props, except the mouse listeners + var nativeProps = {}; + for (var key in props) { + if (props.hasOwnProperty(key) && !mouseListenerNames[key]) { + nativeProps[key] = props[key]; + } + } + + return nativeProps; + } +}; + +module.exports = ReactDOMButton; +},{}],37:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactDOMComponent + * @typechecks static-only + */ + +/* global hasOwnProperty:true */ + +'use strict'; + +var AutoFocusUtils = _dereq_(2); +var CSSPropertyOperations = _dereq_(5); +var DOMProperty = _dereq_(10); +var DOMPropertyOperations = _dereq_(11); +var EventConstants = _dereq_(15); +var ReactBrowserEventEmitter = _dereq_(26); +var ReactComponentBrowserEnvironment = _dereq_(31); +var ReactDOMButton = _dereq_(36); +var ReactDOMInput = _dereq_(41); +var ReactDOMOption = _dereq_(42); +var ReactDOMSelect = _dereq_(43); +var ReactDOMTextarea = _dereq_(47); +var ReactMount = _dereq_(65); +var ReactMultiChild = _dereq_(66); +var ReactPerf = _dereq_(71); +var ReactUpdateQueue = _dereq_(82); + +var assign = _dereq_(23); +var canDefineProperty = _dereq_(104); +var escapeTextContentForBrowser = _dereq_(107); +var invariant = _dereq_(144); +var isEventSupported = _dereq_(119); +var keyOf = _dereq_(148); +var setInnerHTML = _dereq_(124); +var setTextContent = _dereq_(125); +var shallowEqual = _dereq_(153); +var validateDOMNesting = _dereq_(128); +var warning = _dereq_(155); + +var deleteListener = ReactBrowserEventEmitter.deleteListener; +var listenTo = ReactBrowserEventEmitter.listenTo; +var registrationNameModules = ReactBrowserEventEmitter.registrationNameModules; + +// For quickly matching children type, to test if can be treated as content. +var CONTENT_TYPES = { 'string': true, 'number': true }; + +var CHILDREN = keyOf({ children: null }); +var STYLE = keyOf({ style: null }); +var HTML = keyOf({ __html: null }); + +var ELEMENT_NODE_TYPE = 1; + +function getDeclarationErrorAddendum(internalInstance) { + if (internalInstance) { + var owner = internalInstance._currentElement._owner || null; + if (owner) { + var name = owner.getName(); + if (name) { + return ' This DOM node was rendered by `' + name + '`.'; + } + } + } + return ''; +} + +var legacyPropsDescriptor; +if ("development" !== 'production') { + legacyPropsDescriptor = { + props: { + enumerable: false, + get: function () { + var component = this._reactInternalComponent; + "development" !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .props of a DOM node; instead, ' + 'recreate the props as `render` did originally or read the DOM ' + 'properties/attributes directly from this node (e.g., ' + 'this.refs.box.className).%s', getDeclarationErrorAddendum(component)) : undefined; + return component._currentElement.props; + } + } + }; +} + +function legacyGetDOMNode() { + if ("development" !== 'production') { + var component = this._reactInternalComponent; + "development" !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .getDOMNode() of a DOM node; ' + 'instead, use the node directly.%s', getDeclarationErrorAddendum(component)) : undefined; + } + return this; +} + +function legacyIsMounted() { + var component = this._reactInternalComponent; + if ("development" !== 'production') { + "development" !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .isMounted() of a DOM node.%s', getDeclarationErrorAddendum(component)) : undefined; + } + return !!component; +} + +function legacySetStateEtc() { + if ("development" !== 'production') { + var component = this._reactInternalComponent; + "development" !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .setState(), .replaceState(), or ' + '.forceUpdate() of a DOM node. This is a no-op.%s', getDeclarationErrorAddendum(component)) : undefined; + } +} + +function legacySetProps(partialProps, callback) { + var component = this._reactInternalComponent; + if ("development" !== 'production') { + "development" !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .setProps() of a DOM node. ' + 'Instead, call ReactDOM.render again at the top level.%s', getDeclarationErrorAddendum(component)) : undefined; + } + if (!component) { + return; + } + ReactUpdateQueue.enqueueSetPropsInternal(component, partialProps); + if (callback) { + ReactUpdateQueue.enqueueCallbackInternal(component, callback); + } +} + +function legacyReplaceProps(partialProps, callback) { + var component = this._reactInternalComponent; + if ("development" !== 'production') { + "development" !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .replaceProps() of a DOM node. ' + 'Instead, call ReactDOM.render again at the top level.%s', getDeclarationErrorAddendum(component)) : undefined; + } + if (!component) { + return; + } + ReactUpdateQueue.enqueueReplacePropsInternal(component, partialProps); + if (callback) { + ReactUpdateQueue.enqueueCallbackInternal(component, callback); + } +} + +function friendlyStringify(obj) { + if (typeof obj === 'object') { + if (Array.isArray(obj)) { + return '[' + obj.map(friendlyStringify).join(', ') + ']'; + } else { + var pairs = []; + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + var keyEscaped = /^[a-z$_][\w$_]*$/i.test(key) ? key : JSON.stringify(key); + pairs.push(keyEscaped + ': ' + friendlyStringify(obj[key])); + } + } + return '{' + pairs.join(', ') + '}'; + } + } else if (typeof obj === 'string') { + return JSON.stringify(obj); + } else if (typeof obj === 'function') { + return '[function object]'; + } + // Differs from JSON.stringify in that undefined becauses undefined and that + // inf and nan don't become null + return String(obj); +} + +var styleMutationWarning = {}; + +function checkAndWarnForMutatedStyle(style1, style2, component) { + if (style1 == null || style2 == null) { + return; + } + if (shallowEqual(style1, style2)) { + return; + } + + var componentName = component._tag; + var owner = component._currentElement._owner; + var ownerName; + if (owner) { + ownerName = owner.getName(); + } + + var hash = ownerName + '|' + componentName; + + if (styleMutationWarning.hasOwnProperty(hash)) { + return; + } + + styleMutationWarning[hash] = true; + + "development" !== 'production' ? warning(false, '`%s` was passed a style object that has previously been mutated. ' + 'Mutating `style` is deprecated. Consider cloning it beforehand. Check ' + 'the `render` %s. Previous style: %s. Mutated style: %s.', componentName, owner ? 'of `' + ownerName + '`' : 'using <' + componentName + '>', friendlyStringify(style1), friendlyStringify(style2)) : undefined; +} + +/** + * @param {object} component + * @param {?object} props + */ +function assertValidProps(component, props) { + if (!props) { + return; + } + // Note the use of `==` which checks for null or undefined. + if ("development" !== 'production') { + if (voidElementTags[component._tag]) { + "development" !== 'production' ? warning(props.children == null && props.dangerouslySetInnerHTML == null, '%s is a void element tag and must not have `children` or ' + 'use `props.dangerouslySetInnerHTML`.%s', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : undefined; + } + } + if (props.dangerouslySetInnerHTML != null) { + !(props.children == null) ? "development" !== 'production' ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : invariant(false) : undefined; + !(typeof props.dangerouslySetInnerHTML === 'object' && HTML in props.dangerouslySetInnerHTML) ? "development" !== 'production' ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. ' + 'Please visit https://fb.me/react-invariant-dangerously-set-inner-html ' + 'for more information.') : invariant(false) : undefined; + } + if ("development" !== 'production') { + "development" !== 'production' ? warning(props.innerHTML == null, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.') : undefined; + "development" !== 'production' ? warning(!props.contentEditable || props.children == null, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.') : undefined; + } + !(props.style == null || typeof props.style === 'object') ? "development" !== 'production' ? invariant(false, 'The `style` prop expects a mapping from style properties to values, ' + 'not a string. For example, style={{marginRight: spacing + \'em\'}} when ' + 'using JSX.%s', getDeclarationErrorAddendum(component)) : invariant(false) : undefined; +} + +function enqueuePutListener(id, registrationName, listener, transaction) { + if ("development" !== 'production') { + // IE8 has no API for event capturing and the `onScroll` event doesn't + // bubble. + "development" !== 'production' ? warning(registrationName !== 'onScroll' || isEventSupported('scroll', true), 'This browser doesn\'t support the `onScroll` event') : undefined; + } + var container = ReactMount.findReactContainerForID(id); + if (container) { + var doc = container.nodeType === ELEMENT_NODE_TYPE ? container.ownerDocument : container; + listenTo(registrationName, doc); + } + transaction.getReactMountReady().enqueue(putListener, { + id: id, + registrationName: registrationName, + listener: listener + }); +} + +function putListener() { + var listenerToPut = this; + ReactBrowserEventEmitter.putListener(listenerToPut.id, listenerToPut.registrationName, listenerToPut.listener); +} + +// There are so many media events, it makes sense to just +// maintain a list rather than create a `trapBubbledEvent` for each +var mediaEvents = { + topAbort: 'abort', + topCanPlay: 'canplay', + topCanPlayThrough: 'canplaythrough', + topDurationChange: 'durationchange', + topEmptied: 'emptied', + topEncrypted: 'encrypted', + topEnded: 'ended', + topError: 'error', + topLoadedData: 'loadeddata', + topLoadedMetadata: 'loadedmetadata', + topLoadStart: 'loadstart', + topPause: 'pause', + topPlay: 'play', + topPlaying: 'playing', + topProgress: 'progress', + topRateChange: 'ratechange', + topSeeked: 'seeked', + topSeeking: 'seeking', + topStalled: 'stalled', + topSuspend: 'suspend', + topTimeUpdate: 'timeupdate', + topVolumeChange: 'volumechange', + topWaiting: 'waiting' +}; + +function trapBubbledEventsLocal() { + var inst = this; + // If a component renders to null or if another component fatals and causes + // the state of the tree to be corrupted, `node` here can be null. + !inst._rootNodeID ? "development" !== 'production' ? invariant(false, 'Must be mounted to trap events') : invariant(false) : undefined; + var node = ReactMount.getNode(inst._rootNodeID); + !node ? "development" !== 'production' ? invariant(false, 'trapBubbledEvent(...): Requires node to be rendered.') : invariant(false) : undefined; + + switch (inst._tag) { + case 'iframe': + inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topLoad, 'load', node)]; + break; + case 'video': + case 'audio': + + inst._wrapperState.listeners = []; + // create listener for each media event + for (var event in mediaEvents) { + if (mediaEvents.hasOwnProperty(event)) { + inst._wrapperState.listeners.push(ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes[event], mediaEvents[event], node)); + } + } + + break; + case 'img': + inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topError, 'error', node), ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topLoad, 'load', node)]; + break; + case 'form': + inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topReset, 'reset', node), ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topSubmit, 'submit', node)]; + break; + } +} + +function mountReadyInputWrapper() { + ReactDOMInput.mountReadyWrapper(this); +} + +function postUpdateSelectWrapper() { + ReactDOMSelect.postUpdateWrapper(this); +} + +// For HTML, certain tags should omit their close tag. We keep a whitelist for +// those special cased tags. + +var omittedCloseTags = { + 'area': true, + 'base': true, + 'br': true, + 'col': true, + 'embed': true, + 'hr': true, + 'img': true, + 'input': true, + 'keygen': true, + 'link': true, + 'meta': true, + 'param': true, + 'source': true, + 'track': true, + 'wbr': true +}; + +// NOTE: menuitem's close tag should be omitted, but that causes problems. +var newlineEatingTags = { + 'listing': true, + 'pre': true, + 'textarea': true +}; + +// For HTML, certain tags cannot have children. This has the same purpose as +// `omittedCloseTags` except that `menuitem` should still have its closing tag. + +var voidElementTags = assign({ + 'menuitem': true +}, omittedCloseTags); + +// We accept any tag to be rendered but since this gets injected into arbitrary +// HTML, we want to make sure that it's a safe tag. +// http://www.w3.org/TR/REC-xml/#NT-Name + +var VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/; // Simplified subset +var validatedTagCache = {}; +var hasOwnProperty = ({}).hasOwnProperty; + +function validateDangerousTag(tag) { + if (!hasOwnProperty.call(validatedTagCache, tag)) { + !VALID_TAG_REGEX.test(tag) ? "development" !== 'production' ? invariant(false, 'Invalid tag: %s', tag) : invariant(false) : undefined; + validatedTagCache[tag] = true; + } +} + +function processChildContextDev(context, inst) { + // Pass down our tag name to child components for validation purposes + context = assign({}, context); + var info = context[validateDOMNesting.ancestorInfoContextKey]; + context[validateDOMNesting.ancestorInfoContextKey] = validateDOMNesting.updatedAncestorInfo(info, inst._tag, inst); + return context; +} + +function isCustomComponent(tagName, props) { + return tagName.indexOf('-') >= 0 || props.is != null; +} + +/** + * Creates a new React class that is idempotent and capable of containing other + * React components. It accepts event listeners and DOM properties that are + * valid according to `DOMProperty`. + * + * - Event listeners: `onClick`, `onMouseDown`, etc. + * - DOM properties: `className`, `name`, `title`, etc. + * + * The `style` property functions differently from the DOM API. It accepts an + * object mapping of style properties to values. + * + * @constructor ReactDOMComponent + * @extends ReactMultiChild + */ +function ReactDOMComponent(tag) { + validateDangerousTag(tag); + this._tag = tag.toLowerCase(); + this._renderedChildren = null; + this._previousStyle = null; + this._previousStyleCopy = null; + this._rootNodeID = null; + this._wrapperState = null; + this._topLevelWrapper = null; + this._nodeWithLegacyProperties = null; + if ("development" !== 'production') { + this._unprocessedContextDev = null; + this._processedContextDev = null; + } +} + +ReactDOMComponent.displayName = 'ReactDOMComponent'; + +ReactDOMComponent.Mixin = { + + construct: function (element) { + this._currentElement = element; + }, + + /** + * Generates root tag markup then recurses. This method has side effects and + * is not idempotent. + * + * @internal + * @param {string} rootID The root DOM ID for this node. + * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction + * @param {object} context + * @return {string} The computed markup. + */ + mountComponent: function (rootID, transaction, context) { + this._rootNodeID = rootID; + + var props = this._currentElement.props; + + switch (this._tag) { + case 'iframe': + case 'img': + case 'form': + case 'video': + case 'audio': + this._wrapperState = { + listeners: null + }; + transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this); + break; + case 'button': + props = ReactDOMButton.getNativeProps(this, props, context); + break; + case 'input': + ReactDOMInput.mountWrapper(this, props, context); + props = ReactDOMInput.getNativeProps(this, props, context); + break; + case 'option': + ReactDOMOption.mountWrapper(this, props, context); + props = ReactDOMOption.getNativeProps(this, props, context); + break; + case 'select': + ReactDOMSelect.mountWrapper(this, props, context); + props = ReactDOMSelect.getNativeProps(this, props, context); + context = ReactDOMSelect.processChildContext(this, props, context); + break; + case 'textarea': + ReactDOMTextarea.mountWrapper(this, props, context); + props = ReactDOMTextarea.getNativeProps(this, props, context); + break; + } + + assertValidProps(this, props); + if ("development" !== 'production') { + if (context[validateDOMNesting.ancestorInfoContextKey]) { + validateDOMNesting(this._tag, this, context[validateDOMNesting.ancestorInfoContextKey]); + } + } + + if ("development" !== 'production') { + this._unprocessedContextDev = context; + this._processedContextDev = processChildContextDev(context, this); + context = this._processedContextDev; + } + + var mountImage; + if (transaction.useCreateElement) { + var ownerDocument = context[ReactMount.ownerDocumentContextKey]; + var el = ownerDocument.createElement(this._currentElement.type); + DOMPropertyOperations.setAttributeForID(el, this._rootNodeID); + // Populate node cache + ReactMount.getID(el); + this._updateDOMProperties({}, props, transaction, el); + this._createInitialChildren(transaction, props, context, el); + mountImage = el; + } else { + var tagOpen = this._createOpenTagMarkupAndPutListeners(transaction, props); + var tagContent = this._createContentMarkup(transaction, props, context); + if (!tagContent && omittedCloseTags[this._tag]) { + mountImage = tagOpen + '/>'; + } else { + mountImage = tagOpen + '>' + tagContent + '</' + this._currentElement.type + '>'; + } + } + + switch (this._tag) { + case 'input': + transaction.getReactMountReady().enqueue(mountReadyInputWrapper, this); + // falls through + case 'button': + case 'select': + case 'textarea': + if (props.autoFocus) { + transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this); + } + break; + } + + return mountImage; + }, + + /** + * Creates markup for the open tag and all attributes. + * + * This method has side effects because events get registered. + * + * Iterating over object properties is faster than iterating over arrays. + * @see http://jsperf.com/obj-vs-arr-iteration + * + * @private + * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction + * @param {object} props + * @return {string} Markup of opening tag. + */ + _createOpenTagMarkupAndPutListeners: function (transaction, props) { + var ret = '<' + this._currentElement.type; + + for (var propKey in props) { + if (!props.hasOwnProperty(propKey)) { + continue; + } + var propValue = props[propKey]; + if (propValue == null) { + continue; + } + if (registrationNameModules.hasOwnProperty(propKey)) { + if (propValue) { + enqueuePutListener(this._rootNodeID, propKey, propValue, transaction); + } + } else { + if (propKey === STYLE) { + if (propValue) { + if ("development" !== 'production') { + // See `_updateDOMProperties`. style block + this._previousStyle = propValue; + } + propValue = this._previousStyleCopy = assign({}, props.style); + } + propValue = CSSPropertyOperations.createMarkupForStyles(propValue); + } + var markup = null; + if (this._tag != null && isCustomComponent(this._tag, props)) { + if (propKey !== CHILDREN) { + markup = DOMPropertyOperations.createMarkupForCustomAttribute(propKey, propValue); + } + } else { + markup = DOMPropertyOperations.createMarkupForProperty(propKey, propValue); + } + if (markup) { + ret += ' ' + markup; + } + } + } + + // For static pages, no need to put React ID and checksum. Saves lots of + // bytes. + if (transaction.renderToStaticMarkup) { + return ret; + } + + var markupForID = DOMPropertyOperations.createMarkupForID(this._rootNodeID); + return ret + ' ' + markupForID; + }, + + /** + * Creates markup for the content between the tags. + * + * @private + * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction + * @param {object} props + * @param {object} context + * @return {string} Content markup. + */ + _createContentMarkup: function (transaction, props, context) { + var ret = ''; + + // Intentional use of != to avoid catching zero/false. + var innerHTML = props.dangerouslySetInnerHTML; + if (innerHTML != null) { + if (innerHTML.__html != null) { + ret = innerHTML.__html; + } + } else { + var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null; + var childrenToUse = contentToUse != null ? null : props.children; + if (contentToUse != null) { + // TODO: Validate that text is allowed as a child of this node + ret = escapeTextContentForBrowser(contentToUse); + } else if (childrenToUse != null) { + var mountImages = this.mountChildren(childrenToUse, transaction, context); + ret = mountImages.join(''); + } + } + if (newlineEatingTags[this._tag] && ret.charAt(0) === '\n') { + // text/html ignores the first character in these tags if it's a newline + // Prefer to break application/xml over text/html (for now) by adding + // a newline specifically to get eaten by the parser. (Alternately for + // textareas, replacing "^\n" with "\r\n" doesn't get eaten, and the first + // \r is normalized out by HTMLTextAreaElement#value.) + // See: <http://www.w3.org/TR/html-polyglot/#newlines-in-textarea-and-pre> + // See: <http://www.w3.org/TR/html5/syntax.html#element-restrictions> + // See: <http://www.w3.org/TR/html5/syntax.html#newlines> + // See: Parsing of "textarea" "listing" and "pre" elements + // from <http://www.w3.org/TR/html5/syntax.html#parsing-main-inbody> + return '\n' + ret; + } else { + return ret; + } + }, + + _createInitialChildren: function (transaction, props, context, el) { + // Intentional use of != to avoid catching zero/false. + var innerHTML = props.dangerouslySetInnerHTML; + if (innerHTML != null) { + if (innerHTML.__html != null) { + setInnerHTML(el, innerHTML.__html); + } + } else { + var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null; + var childrenToUse = contentToUse != null ? null : props.children; + if (contentToUse != null) { + // TODO: Validate that text is allowed as a child of this node + setTextContent(el, contentToUse); + } else if (childrenToUse != null) { + var mountImages = this.mountChildren(childrenToUse, transaction, context); + for (var i = 0; i < mountImages.length; i++) { + el.appendChild(mountImages[i]); + } + } + } + }, + + /** + * Receives a next element and updates the component. + * + * @internal + * @param {ReactElement} nextElement + * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction + * @param {object} context + */ + receiveComponent: function (nextElement, transaction, context) { + var prevElement = this._currentElement; + this._currentElement = nextElement; + this.updateComponent(transaction, prevElement, nextElement, context); + }, + + /** + * Updates a native DOM component after it has already been allocated and + * attached to the DOM. Reconciles the root DOM node, then recurses. + * + * @param {ReactReconcileTransaction} transaction + * @param {ReactElement} prevElement + * @param {ReactElement} nextElement + * @internal + * @overridable + */ + updateComponent: function (transaction, prevElement, nextElement, context) { + var lastProps = prevElement.props; + var nextProps = this._currentElement.props; + + switch (this._tag) { + case 'button': + lastProps = ReactDOMButton.getNativeProps(this, lastProps); + nextProps = ReactDOMButton.getNativeProps(this, nextProps); + break; + case 'input': + ReactDOMInput.updateWrapper(this); + lastProps = ReactDOMInput.getNativeProps(this, lastProps); + nextProps = ReactDOMInput.getNativeProps(this, nextProps); + break; + case 'option': + lastProps = ReactDOMOption.getNativeProps(this, lastProps); + nextProps = ReactDOMOption.getNativeProps(this, nextProps); + break; + case 'select': + lastProps = ReactDOMSelect.getNativeProps(this, lastProps); + nextProps = ReactDOMSelect.getNativeProps(this, nextProps); + break; + case 'textarea': + ReactDOMTextarea.updateWrapper(this); + lastProps = ReactDOMTextarea.getNativeProps(this, lastProps); + nextProps = ReactDOMTextarea.getNativeProps(this, nextProps); + break; + } + + if ("development" !== 'production') { + // If the context is reference-equal to the old one, pass down the same + // processed object so the update bailout in ReactReconciler behaves + // correctly (and identically in dev and prod). See #5005. + if (this._unprocessedContextDev !== context) { + this._unprocessedContextDev = context; + this._processedContextDev = processChildContextDev(context, this); + } + context = this._processedContextDev; + } + + assertValidProps(this, nextProps); + this._updateDOMProperties(lastProps, nextProps, transaction, null); + this._updateDOMChildren(lastProps, nextProps, transaction, context); + + if (!canDefineProperty && this._nodeWithLegacyProperties) { + this._nodeWithLegacyProperties.props = nextProps; + } + + if (this._tag === 'select') { + // <select> value update needs to occur after <option> children + // reconciliation + transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this); + } + }, + + /** + * Reconciles the properties by detecting differences in property values and + * updating the DOM as necessary. This function is probably the single most + * critical path for performance optimization. + * + * TODO: Benchmark whether checking for changed values in memory actually + * improves performance (especially statically positioned elements). + * TODO: Benchmark the effects of putting this at the top since 99% of props + * do not change for a given reconciliation. + * TODO: Benchmark areas that can be improved with caching. + * + * @private + * @param {object} lastProps + * @param {object} nextProps + * @param {ReactReconcileTransaction} transaction + * @param {?DOMElement} node + */ + _updateDOMProperties: function (lastProps, nextProps, transaction, node) { + var propKey; + var styleName; + var styleUpdates; + for (propKey in lastProps) { + if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey)) { + continue; + } + if (propKey === STYLE) { + var lastStyle = this._previousStyleCopy; + for (styleName in lastStyle) { + if (lastStyle.hasOwnProperty(styleName)) { + styleUpdates = styleUpdates || {}; + styleUpdates[styleName] = ''; + } + } + this._previousStyleCopy = null; + } else if (registrationNameModules.hasOwnProperty(propKey)) { + if (lastProps[propKey]) { + // Only call deleteListener if there was a listener previously or + // else willDeleteListener gets called when there wasn't actually a + // listener (e.g., onClick={null}) + deleteListener(this._rootNodeID, propKey); + } + } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) { + if (!node) { + node = ReactMount.getNode(this._rootNodeID); + } + DOMPropertyOperations.deleteValueForProperty(node, propKey); + } + } + for (propKey in nextProps) { + var nextProp = nextProps[propKey]; + var lastProp = propKey === STYLE ? this._previousStyleCopy : lastProps[propKey]; + if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp) { + continue; + } + if (propKey === STYLE) { + if (nextProp) { + if ("development" !== 'production') { + checkAndWarnForMutatedStyle(this._previousStyleCopy, this._previousStyle, this); + this._previousStyle = nextProp; + } + nextProp = this._previousStyleCopy = assign({}, nextProp); + } else { + this._previousStyleCopy = null; + } + if (lastProp) { + // Unset styles on `lastProp` but not on `nextProp`. + for (styleName in lastProp) { + if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) { + styleUpdates = styleUpdates || {}; + styleUpdates[styleName] = ''; + } + } + // Update styles that changed since `lastProp`. + for (styleName in nextProp) { + if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) { + styleUpdates = styleUpdates || {}; + styleUpdates[styleName] = nextProp[styleName]; + } + } + } else { + // Relies on `updateStylesByID` not mutating `styleUpdates`. + styleUpdates = nextProp; + } + } else if (registrationNameModules.hasOwnProperty(propKey)) { + if (nextProp) { + enqueuePutListener(this._rootNodeID, propKey, nextProp, transaction); + } else if (lastProp) { + deleteListener(this._rootNodeID, propKey); + } + } else if (isCustomComponent(this._tag, nextProps)) { + if (!node) { + node = ReactMount.getNode(this._rootNodeID); + } + if (propKey === CHILDREN) { + nextProp = null; + } + DOMPropertyOperations.setValueForAttribute(node, propKey, nextProp); + } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) { + if (!node) { + node = ReactMount.getNode(this._rootNodeID); + } + // If we're updating to null or undefined, we should remove the property + // from the DOM node instead of inadvertantly setting to a string. This + // brings us in line with the same behavior we have on initial render. + if (nextProp != null) { + DOMPropertyOperations.setValueForProperty(node, propKey, nextProp); + } else { + DOMPropertyOperations.deleteValueForProperty(node, propKey); + } + } + } + if (styleUpdates) { + if (!node) { + node = ReactMount.getNode(this._rootNodeID); + } + CSSPropertyOperations.setValueForStyles(node, styleUpdates); + } + }, + + /** + * Reconciles the children with the various properties that affect the + * children content. + * + * @param {object} lastProps + * @param {object} nextProps + * @param {ReactReconcileTransaction} transaction + * @param {object} context + */ + _updateDOMChildren: function (lastProps, nextProps, transaction, context) { + var lastContent = CONTENT_TYPES[typeof lastProps.children] ? lastProps.children : null; + var nextContent = CONTENT_TYPES[typeof nextProps.children] ? nextProps.children : null; + + var lastHtml = lastProps.dangerouslySetInnerHTML && lastProps.dangerouslySetInnerHTML.__html; + var nextHtml = nextProps.dangerouslySetInnerHTML && nextProps.dangerouslySetInnerHTML.__html; + + // Note the use of `!=` which checks for null or undefined. + var lastChildren = lastContent != null ? null : lastProps.children; + var nextChildren = nextContent != null ? null : nextProps.children; + + // If we're switching from children to content/html or vice versa, remove + // the old content + var lastHasContentOrHtml = lastContent != null || lastHtml != null; + var nextHasContentOrHtml = nextContent != null || nextHtml != null; + if (lastChildren != null && nextChildren == null) { + this.updateChildren(null, transaction, context); + } else if (lastHasContentOrHtml && !nextHasContentOrHtml) { + this.updateTextContent(''); + } + + if (nextContent != null) { + if (lastContent !== nextContent) { + this.updateTextContent('' + nextContent); + } + } else if (nextHtml != null) { + if (lastHtml !== nextHtml) { + this.updateMarkup('' + nextHtml); + } + } else if (nextChildren != null) { + this.updateChildren(nextChildren, transaction, context); + } + }, + + /** + * Destroys all event registrations for this instance. Does not remove from + * the DOM. That must be done by the parent. + * + * @internal + */ + unmountComponent: function () { + switch (this._tag) { + case 'iframe': + case 'img': + case 'form': + case 'video': + case 'audio': + var listeners = this._wrapperState.listeners; + if (listeners) { + for (var i = 0; i < listeners.length; i++) { + listeners[i].remove(); + } + } + break; + case 'input': + ReactDOMInput.unmountWrapper(this); + break; + case 'html': + case 'head': + case 'body': + /** + * Components like <html> <head> and <body> can't be removed or added + * easily in a cross-browser way, however it's valuable to be able to + * take advantage of React's reconciliation for styling and <title> + * management. So we just document it and throw in dangerous cases. + */ + !false ? "development" !== 'production' ? invariant(false, '<%s> tried to unmount. Because of cross-browser quirks it is ' + 'impossible to unmount some top-level components (eg <html>, ' + '<head>, and <body>) reliably and efficiently. To fix this, have a ' + 'single top-level component that never unmounts render these ' + 'elements.', this._tag) : invariant(false) : undefined; + break; + } + + this.unmountChildren(); + ReactBrowserEventEmitter.deleteAllListeners(this._rootNodeID); + ReactComponentBrowserEnvironment.unmountIDFromEnvironment(this._rootNodeID); + this._rootNodeID = null; + this._wrapperState = null; + if (this._nodeWithLegacyProperties) { + var node = this._nodeWithLegacyProperties; + node._reactInternalComponent = null; + this._nodeWithLegacyProperties = null; + } + }, + + getPublicInstance: function () { + if (!this._nodeWithLegacyProperties) { + var node = ReactMount.getNode(this._rootNodeID); + + node._reactInternalComponent = this; + node.getDOMNode = legacyGetDOMNode; + node.isMounted = legacyIsMounted; + node.setState = legacySetStateEtc; + node.replaceState = legacySetStateEtc; + node.forceUpdate = legacySetStateEtc; + node.setProps = legacySetProps; + node.replaceProps = legacyReplaceProps; + + if ("development" !== 'production') { + if (canDefineProperty) { + Object.defineProperties(node, legacyPropsDescriptor); + } else { + // updateComponent will update this property on subsequent renders + node.props = this._currentElement.props; + } + } else { + // updateComponent will update this property on subsequent renders + node.props = this._currentElement.props; + } + + this._nodeWithLegacyProperties = node; + } + return this._nodeWithLegacyProperties; + } + +}; + +ReactPerf.measureMethods(ReactDOMComponent, 'ReactDOMComponent', { + mountComponent: 'mountComponent', + updateComponent: 'updateComponent' +}); + +assign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin); + +module.exports = ReactDOMComponent; +},{"10":10,"104":104,"107":107,"11":11,"119":119,"124":124,"125":125,"128":128,"144":144,"148":148,"15":15,"153":153,"155":155,"2":2,"23":23,"26":26,"31":31,"36":36,"41":41,"42":42,"43":43,"47":47,"5":5,"65":65,"66":66,"71":71,"82":82}],38:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactDOMFactories + * @typechecks static-only + */ + +'use strict'; + +var ReactElement = _dereq_(52); +var ReactElementValidator = _dereq_(53); + +var mapObject = _dereq_(149); + +/** + * Create a factory that creates HTML tag elements. + * + * @param {string} tag Tag name (e.g. `div`). + * @private + */ +function createDOMFactory(tag) { + if ("development" !== 'production') { + return ReactElementValidator.createFactory(tag); + } + return ReactElement.createFactory(tag); +} + +/** + * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes. + * This is also accessible via `React.DOM`. + * + * @public + */ +var ReactDOMFactories = mapObject({ + a: 'a', + abbr: 'abbr', + address: 'address', + area: 'area', + article: 'article', + aside: 'aside', + audio: 'audio', + b: 'b', + base: 'base', + bdi: 'bdi', + bdo: 'bdo', + big: 'big', + blockquote: 'blockquote', + body: 'body', + br: 'br', + button: 'button', + canvas: 'canvas', + caption: 'caption', + cite: 'cite', + code: 'code', + col: 'col', + colgroup: 'colgroup', + data: 'data', + datalist: 'datalist', + dd: 'dd', + del: 'del', + details: 'details', + dfn: 'dfn', + dialog: 'dialog', + div: 'div', + dl: 'dl', + dt: 'dt', + em: 'em', + embed: 'embed', + fieldset: 'fieldset', + figcaption: 'figcaption', + figure: 'figure', + footer: 'footer', + form: 'form', + h1: 'h1', + h2: 'h2', + h3: 'h3', + h4: 'h4', + h5: 'h5', + h6: 'h6', + head: 'head', + header: 'header', + hgroup: 'hgroup', + hr: 'hr', + html: 'html', + i: 'i', + iframe: 'iframe', + img: 'img', + input: 'input', + ins: 'ins', + kbd: 'kbd', + keygen: 'keygen', + label: 'label', + legend: 'legend', + li: 'li', + link: 'link', + main: 'main', + map: 'map', + mark: 'mark', + menu: 'menu', + menuitem: 'menuitem', + meta: 'meta', + meter: 'meter', + nav: 'nav', + noscript: 'noscript', + object: 'object', + ol: 'ol', + optgroup: 'optgroup', + option: 'option', + output: 'output', + p: 'p', + param: 'param', + picture: 'picture', + pre: 'pre', + progress: 'progress', + q: 'q', + rp: 'rp', + rt: 'rt', + ruby: 'ruby', + s: 's', + samp: 'samp', + script: 'script', + section: 'section', + select: 'select', + small: 'small', + source: 'source', + span: 'span', + strong: 'strong', + style: 'style', + sub: 'sub', + summary: 'summary', + sup: 'sup', + table: 'table', + tbody: 'tbody', + td: 'td', + textarea: 'textarea', + tfoot: 'tfoot', + th: 'th', + thead: 'thead', + time: 'time', + title: 'title', + tr: 'tr', + track: 'track', + u: 'u', + ul: 'ul', + 'var': 'var', + video: 'video', + wbr: 'wbr', + + // SVG + circle: 'circle', + clipPath: 'clipPath', + defs: 'defs', + ellipse: 'ellipse', + g: 'g', + image: 'image', + line: 'line', + linearGradient: 'linearGradient', + mask: 'mask', + path: 'path', + pattern: 'pattern', + polygon: 'polygon', + polyline: 'polyline', + radialGradient: 'radialGradient', + rect: 'rect', + stop: 'stop', + svg: 'svg', + text: 'text', + tspan: 'tspan' + +}, createDOMFactory); + +module.exports = ReactDOMFactories; +},{"149":149,"52":52,"53":53}],39:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactDOMFeatureFlags + */ + +'use strict'; + +var ReactDOMFeatureFlags = { + useCreateElement: false +}; + +module.exports = ReactDOMFeatureFlags; +},{}],40:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactDOMIDOperations + * @typechecks static-only + */ + +'use strict'; + +var DOMChildrenOperations = _dereq_(9); +var DOMPropertyOperations = _dereq_(11); +var ReactMount = _dereq_(65); +var ReactPerf = _dereq_(71); + +var invariant = _dereq_(144); + +/** + * Errors for properties that should not be updated with `updatePropertyByID()`. + * + * @type {object} + * @private + */ +var INVALID_PROPERTY_ERRORS = { + dangerouslySetInnerHTML: '`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.', + style: '`style` must be set using `updateStylesByID()`.' +}; + +/** + * Operations used to process updates to DOM nodes. + */ +var ReactDOMIDOperations = { + + /** + * Updates a DOM node with new property values. This should only be used to + * update DOM properties in `DOMProperty`. + * + * @param {string} id ID of the node to update. + * @param {string} name A valid property name, see `DOMProperty`. + * @param {*} value New value of the property. + * @internal + */ + updatePropertyByID: function (id, name, value) { + var node = ReactMount.getNode(id); + !!INVALID_PROPERTY_ERRORS.hasOwnProperty(name) ? "development" !== 'production' ? invariant(false, 'updatePropertyByID(...): %s', INVALID_PROPERTY_ERRORS[name]) : invariant(false) : undefined; + + // If we're updating to null or undefined, we should remove the property + // from the DOM node instead of inadvertantly setting to a string. This + // brings us in line with the same behavior we have on initial render. + if (value != null) { + DOMPropertyOperations.setValueForProperty(node, name, value); + } else { + DOMPropertyOperations.deleteValueForProperty(node, name); + } + }, + + /** + * Replaces a DOM node that exists in the document with markup. + * + * @param {string} id ID of child to be replaced. + * @param {string} markup Dangerous markup to inject in place of child. + * @internal + * @see {Danger.dangerouslyReplaceNodeWithMarkup} + */ + dangerouslyReplaceNodeWithMarkupByID: function (id, markup) { + var node = ReactMount.getNode(id); + DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup(node, markup); + }, + + /** + * Updates a component's children by processing a series of updates. + * + * @param {array<object>} updates List of update configurations. + * @param {array<string>} markup List of markup strings. + * @internal + */ + dangerouslyProcessChildrenUpdates: function (updates, markup) { + for (var i = 0; i < updates.length; i++) { + updates[i].parentNode = ReactMount.getNode(updates[i].parentID); + } + DOMChildrenOperations.processUpdates(updates, markup); + } +}; + +ReactPerf.measureMethods(ReactDOMIDOperations, 'ReactDOMIDOperations', { + dangerouslyReplaceNodeWithMarkupByID: 'dangerouslyReplaceNodeWithMarkupByID', + dangerouslyProcessChildrenUpdates: 'dangerouslyProcessChildrenUpdates' +}); + +module.exports = ReactDOMIDOperations; +},{"11":11,"144":144,"65":65,"71":71,"9":9}],41:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactDOMInput + */ + +'use strict'; + +var ReactDOMIDOperations = _dereq_(40); +var LinkedValueUtils = _dereq_(22); +var ReactMount = _dereq_(65); +var ReactUpdates = _dereq_(83); + +var assign = _dereq_(23); +var invariant = _dereq_(144); + +var instancesByReactID = {}; + +function forceUpdateIfMounted() { + if (this._rootNodeID) { + // DOM component is still mounted; update + ReactDOMInput.updateWrapper(this); + } +} + +/** + * Implements an <input> native component that allows setting these optional + * props: `checked`, `value`, `defaultChecked`, and `defaultValue`. + * + * If `checked` or `value` are not supplied (or null/undefined), user actions + * that affect the checked state or value will trigger updates to the element. + * + * If they are supplied (and not null/undefined), the rendered element will not + * trigger updates to the element. Instead, the props must change in order for + * the rendered element to be updated. + * + * The rendered element will be initialized as unchecked (or `defaultChecked`) + * with an empty value (or `defaultValue`). + * + * @see http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html + */ +var ReactDOMInput = { + getNativeProps: function (inst, props, context) { + var value = LinkedValueUtils.getValue(props); + var checked = LinkedValueUtils.getChecked(props); + + var nativeProps = assign({}, props, { + defaultChecked: undefined, + defaultValue: undefined, + value: value != null ? value : inst._wrapperState.initialValue, + checked: checked != null ? checked : inst._wrapperState.initialChecked, + onChange: inst._wrapperState.onChange + }); + + return nativeProps; + }, + + mountWrapper: function (inst, props) { + if ("development" !== 'production') { + LinkedValueUtils.checkPropTypes('input', props, inst._currentElement._owner); + } + + var defaultValue = props.defaultValue; + inst._wrapperState = { + initialChecked: props.defaultChecked || false, + initialValue: defaultValue != null ? defaultValue : null, + onChange: _handleChange.bind(inst) + }; + }, + + mountReadyWrapper: function (inst) { + // Can't be in mountWrapper or else server rendering leaks. + instancesByReactID[inst._rootNodeID] = inst; + }, + + unmountWrapper: function (inst) { + delete instancesByReactID[inst._rootNodeID]; + }, + + updateWrapper: function (inst) { + var props = inst._currentElement.props; + + // TODO: Shouldn't this be getChecked(props)? + var checked = props.checked; + if (checked != null) { + ReactDOMIDOperations.updatePropertyByID(inst._rootNodeID, 'checked', checked || false); + } + + var value = LinkedValueUtils.getValue(props); + if (value != null) { + // Cast `value` to a string to ensure the value is set correctly. While + // browsers typically do this as necessary, jsdom doesn't. + ReactDOMIDOperations.updatePropertyByID(inst._rootNodeID, 'value', '' + value); + } + } +}; + +function _handleChange(event) { + var props = this._currentElement.props; + + var returnValue = LinkedValueUtils.executeOnChange(props, event); + + // Here we use asap to wait until all updates have propagated, which + // is important when using controlled components within layers: + // https://github.com/facebook/react/issues/1698 + ReactUpdates.asap(forceUpdateIfMounted, this); + + var name = props.name; + if (props.type === 'radio' && name != null) { + var rootNode = ReactMount.getNode(this._rootNodeID); + var queryRoot = rootNode; + + while (queryRoot.parentNode) { + queryRoot = queryRoot.parentNode; + } + + // If `rootNode.form` was non-null, then we could try `form.elements`, + // but that sometimes behaves strangely in IE8. We could also try using + // `form.getElementsByName`, but that will only return direct children + // and won't include inputs that use the HTML5 `form=` attribute. Since + // the input might not even be in a form, let's just use the global + // `querySelectorAll` to ensure we don't miss anything. + var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type="radio"]'); + + for (var i = 0; i < group.length; i++) { + var otherNode = group[i]; + if (otherNode === rootNode || otherNode.form !== rootNode.form) { + continue; + } + // This will throw if radio buttons rendered by different copies of React + // and the same name are rendered into the same form (same as #1939). + // That's probably okay; we don't support it just as we don't support + // mixing React with non-React. + var otherID = ReactMount.getID(otherNode); + !otherID ? "development" !== 'production' ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the ' + 'same `name` is not supported.') : invariant(false) : undefined; + var otherInstance = instancesByReactID[otherID]; + !otherInstance ? "development" !== 'production' ? invariant(false, 'ReactDOMInput: Unknown radio button ID %s.', otherID) : invariant(false) : undefined; + // If this is a controlled radio button group, forcing the input that + // was previously checked to update will cause it to be come re-checked + // as appropriate. + ReactUpdates.asap(forceUpdateIfMounted, otherInstance); + } + } + + return returnValue; +} + +module.exports = ReactDOMInput; +},{"144":144,"22":22,"23":23,"40":40,"65":65,"83":83}],42:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactDOMOption + */ + +'use strict'; + +var ReactChildren = _dereq_(28); +var ReactDOMSelect = _dereq_(43); + +var assign = _dereq_(23); +var warning = _dereq_(155); + +var valueContextKey = ReactDOMSelect.valueContextKey; + +/** + * Implements an <option> native component that warns when `selected` is set. + */ +var ReactDOMOption = { + mountWrapper: function (inst, props, context) { + // TODO (yungsters): Remove support for `selected` in <option>. + if ("development" !== 'production') { + "development" !== 'production' ? warning(props.selected == null, 'Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.') : undefined; + } + + // Look up whether this option is 'selected' via context + var selectValue = context[valueContextKey]; + + // If context key is null (e.g., no specified value or after initial mount) + // or missing (e.g., for <datalist>), we don't change props.selected + var selected = null; + if (selectValue != null) { + selected = false; + if (Array.isArray(selectValue)) { + // multiple + for (var i = 0; i < selectValue.length; i++) { + if ('' + selectValue[i] === '' + props.value) { + selected = true; + break; + } + } + } else { + selected = '' + selectValue === '' + props.value; + } + } + + inst._wrapperState = { selected: selected }; + }, + + getNativeProps: function (inst, props, context) { + var nativeProps = assign({ selected: undefined, children: undefined }, props); + + // Read state only from initial mount because <select> updates value + // manually; we need the initial state only for server rendering + if (inst._wrapperState.selected != null) { + nativeProps.selected = inst._wrapperState.selected; + } + + var content = ''; + + // Flatten children and warn if they aren't strings or numbers; + // invalid types are ignored. + ReactChildren.forEach(props.children, function (child) { + if (child == null) { + return; + } + if (typeof child === 'string' || typeof child === 'number') { + content += child; + } else { + "development" !== 'production' ? warning(false, 'Only strings and numbers are supported as <option> children.') : undefined; + } + }); + + nativeProps.children = content; + return nativeProps; + } + +}; + +module.exports = ReactDOMOption; +},{"155":155,"23":23,"28":28,"43":43}],43:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactDOMSelect + */ + +'use strict'; + +var LinkedValueUtils = _dereq_(22); +var ReactMount = _dereq_(65); +var ReactUpdates = _dereq_(83); + +var assign = _dereq_(23); +var warning = _dereq_(155); + +var valueContextKey = '__ReactDOMSelect_value$' + Math.random().toString(36).slice(2); + +function updateOptionsIfPendingUpdateAndMounted() { + if (this._rootNodeID && this._wrapperState.pendingUpdate) { + this._wrapperState.pendingUpdate = false; + + var props = this._currentElement.props; + var value = LinkedValueUtils.getValue(props); + + if (value != null) { + updateOptions(this, props, value); + } + } +} + +function getDeclarationErrorAddendum(owner) { + if (owner) { + var name = owner.getName(); + if (name) { + return ' Check the render method of `' + name + '`.'; + } + } + return ''; +} + +var valuePropNames = ['value', 'defaultValue']; + +/** + * Validation function for `value` and `defaultValue`. + * @private + */ +function checkSelectPropTypes(inst, props) { + var owner = inst._currentElement._owner; + LinkedValueUtils.checkPropTypes('select', props, owner); + + for (var i = 0; i < valuePropNames.length; i++) { + var propName = valuePropNames[i]; + if (props[propName] == null) { + continue; + } + if (props.multiple) { + "development" !== 'production' ? warning(Array.isArray(props[propName]), 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : undefined; + } else { + "development" !== 'production' ? warning(!Array.isArray(props[propName]), 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : undefined; + } + } +} + +/** + * @param {ReactDOMComponent} inst + * @param {boolean} multiple + * @param {*} propValue A stringable (with `multiple`, a list of stringables). + * @private + */ +function updateOptions(inst, multiple, propValue) { + var selectedValue, i; + var options = ReactMount.getNode(inst._rootNodeID).options; + + if (multiple) { + selectedValue = {}; + for (i = 0; i < propValue.length; i++) { + selectedValue['' + propValue[i]] = true; + } + for (i = 0; i < options.length; i++) { + var selected = selectedValue.hasOwnProperty(options[i].value); + if (options[i].selected !== selected) { + options[i].selected = selected; + } + } + } else { + // Do not set `select.value` as exact behavior isn't consistent across all + // browsers for all cases. + selectedValue = '' + propValue; + for (i = 0; i < options.length; i++) { + if (options[i].value === selectedValue) { + options[i].selected = true; + return; + } + } + if (options.length) { + options[0].selected = true; + } + } +} + +/** + * Implements a <select> native component that allows optionally setting the + * props `value` and `defaultValue`. If `multiple` is false, the prop must be a + * stringable. If `multiple` is true, the prop must be an array of stringables. + * + * If `value` is not supplied (or null/undefined), user actions that change the + * selected option will trigger updates to the rendered options. + * + * If it is supplied (and not null/undefined), the rendered options will not + * update in response to user actions. Instead, the `value` prop must change in + * order for the rendered options to update. + * + * If `defaultValue` is provided, any options with the supplied values will be + * selected. + */ +var ReactDOMSelect = { + valueContextKey: valueContextKey, + + getNativeProps: function (inst, props, context) { + return assign({}, props, { + onChange: inst._wrapperState.onChange, + value: undefined + }); + }, + + mountWrapper: function (inst, props) { + if ("development" !== 'production') { + checkSelectPropTypes(inst, props); + } + + var value = LinkedValueUtils.getValue(props); + inst._wrapperState = { + pendingUpdate: false, + initialValue: value != null ? value : props.defaultValue, + onChange: _handleChange.bind(inst), + wasMultiple: Boolean(props.multiple) + }; + }, + + processChildContext: function (inst, props, context) { + // Pass down initial value so initial generated markup has correct + // `selected` attributes + var childContext = assign({}, context); + childContext[valueContextKey] = inst._wrapperState.initialValue; + return childContext; + }, + + postUpdateWrapper: function (inst) { + var props = inst._currentElement.props; + + // After the initial mount, we control selected-ness manually so don't pass + // the context value down + inst._wrapperState.initialValue = undefined; + + var wasMultiple = inst._wrapperState.wasMultiple; + inst._wrapperState.wasMultiple = Boolean(props.multiple); + + var value = LinkedValueUtils.getValue(props); + if (value != null) { + inst._wrapperState.pendingUpdate = false; + updateOptions(inst, Boolean(props.multiple), value); + } else if (wasMultiple !== Boolean(props.multiple)) { + // For simplicity, reapply `defaultValue` if `multiple` is toggled. + if (props.defaultValue != null) { + updateOptions(inst, Boolean(props.multiple), props.defaultValue); + } else { + // Revert the select back to its default unselected state. + updateOptions(inst, Boolean(props.multiple), props.multiple ? [] : ''); + } + } + } +}; + +function _handleChange(event) { + var props = this._currentElement.props; + var returnValue = LinkedValueUtils.executeOnChange(props, event); + + this._wrapperState.pendingUpdate = true; + ReactUpdates.asap(updateOptionsIfPendingUpdateAndMounted, this); + return returnValue; +} + +module.exports = ReactDOMSelect; +},{"155":155,"22":22,"23":23,"65":65,"83":83}],44:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactDOMSelection + */ + +'use strict'; + +var ExecutionEnvironment = _dereq_(130); + +var getNodeForCharacterOffset = _dereq_(116); +var getTextContentAccessor = _dereq_(117); + +/** + * While `isCollapsed` is available on the Selection object and `collapsed` + * is available on the Range object, IE11 sometimes gets them wrong. + * If the anchor/focus nodes and offsets are the same, the range is collapsed. + */ +function isCollapsed(anchorNode, anchorOffset, focusNode, focusOffset) { + return anchorNode === focusNode && anchorOffset === focusOffset; +} + +/** + * Get the appropriate anchor and focus node/offset pairs for IE. + * + * The catch here is that IE's selection API doesn't provide information + * about whether the selection is forward or backward, so we have to + * behave as though it's always forward. + * + * IE text differs from modern selection in that it behaves as though + * block elements end with a new line. This means character offsets will + * differ between the two APIs. + * + * @param {DOMElement} node + * @return {object} + */ +function getIEOffsets(node) { + var selection = document.selection; + var selectedRange = selection.createRange(); + var selectedLength = selectedRange.text.length; + + // Duplicate selection so we can move range without breaking user selection. + var fromStart = selectedRange.duplicate(); + fromStart.moveToElementText(node); + fromStart.setEndPoint('EndToStart', selectedRange); + + var startOffset = fromStart.text.length; + var endOffset = startOffset + selectedLength; + + return { + start: startOffset, + end: endOffset + }; +} + +/** + * @param {DOMElement} node + * @return {?object} + */ +function getModernOffsets(node) { + var selection = window.getSelection && window.getSelection(); + + if (!selection || selection.rangeCount === 0) { + return null; + } + + var anchorNode = selection.anchorNode; + var anchorOffset = selection.anchorOffset; + var focusNode = selection.focusNode; + var focusOffset = selection.focusOffset; + + var currentRange = selection.getRangeAt(0); + + // In Firefox, range.startContainer and range.endContainer can be "anonymous + // divs", e.g. the up/down buttons on an <input type="number">. Anonymous + // divs do not seem to expose properties, triggering a "Permission denied + // error" if any of its properties are accessed. The only seemingly possible + // way to avoid erroring is to access a property that typically works for + // non-anonymous divs and catch any error that may otherwise arise. See + // https://bugzilla.mozilla.org/show_bug.cgi?id=208427 + try { + /* eslint-disable no-unused-expressions */ + currentRange.startContainer.nodeType; + currentRange.endContainer.nodeType; + /* eslint-enable no-unused-expressions */ + } catch (e) { + return null; + } + + // If the node and offset values are the same, the selection is collapsed. + // `Selection.isCollapsed` is available natively, but IE sometimes gets + // this value wrong. + var isSelectionCollapsed = isCollapsed(selection.anchorNode, selection.anchorOffset, selection.focusNode, selection.focusOffset); + + var rangeLength = isSelectionCollapsed ? 0 : currentRange.toString().length; + + var tempRange = currentRange.cloneRange(); + tempRange.selectNodeContents(node); + tempRange.setEnd(currentRange.startContainer, currentRange.startOffset); + + var isTempRangeCollapsed = isCollapsed(tempRange.startContainer, tempRange.startOffset, tempRange.endContainer, tempRange.endOffset); + + var start = isTempRangeCollapsed ? 0 : tempRange.toString().length; + var end = start + rangeLength; + + // Detect whether the selection is backward. + var detectionRange = document.createRange(); + detectionRange.setStart(anchorNode, anchorOffset); + detectionRange.setEnd(focusNode, focusOffset); + var isBackward = detectionRange.collapsed; + + return { + start: isBackward ? end : start, + end: isBackward ? start : end + }; +} + +/** + * @param {DOMElement|DOMTextNode} node + * @param {object} offsets + */ +function setIEOffsets(node, offsets) { + var range = document.selection.createRange().duplicate(); + var start, end; + + if (typeof offsets.end === 'undefined') { + start = offsets.start; + end = start; + } else if (offsets.start > offsets.end) { + start = offsets.end; + end = offsets.start; + } else { + start = offsets.start; + end = offsets.end; + } + + range.moveToElementText(node); + range.moveStart('character', start); + range.setEndPoint('EndToStart', range); + range.moveEnd('character', end - start); + range.select(); +} + +/** + * In modern non-IE browsers, we can support both forward and backward + * selections. + * + * Note: IE10+ supports the Selection object, but it does not support + * the `extend` method, which means that even in modern IE, it's not possible + * to programatically create a backward selection. Thus, for all IE + * versions, we use the old IE API to create our selections. + * + * @param {DOMElement|DOMTextNode} node + * @param {object} offsets + */ +function setModernOffsets(node, offsets) { + if (!window.getSelection) { + return; + } + + var selection = window.getSelection(); + var length = node[getTextContentAccessor()].length; + var start = Math.min(offsets.start, length); + var end = typeof offsets.end === 'undefined' ? start : Math.min(offsets.end, length); + + // IE 11 uses modern selection, but doesn't support the extend method. + // Flip backward selections, so we can set with a single range. + if (!selection.extend && start > end) { + var temp = end; + end = start; + start = temp; + } + + var startMarker = getNodeForCharacterOffset(node, start); + var endMarker = getNodeForCharacterOffset(node, end); + + if (startMarker && endMarker) { + var range = document.createRange(); + range.setStart(startMarker.node, startMarker.offset); + selection.removeAllRanges(); + + if (start > end) { + selection.addRange(range); + selection.extend(endMarker.node, endMarker.offset); + } else { + range.setEnd(endMarker.node, endMarker.offset); + selection.addRange(range); + } + } +} + +var useIEOffsets = ExecutionEnvironment.canUseDOM && 'selection' in document && !('getSelection' in window); + +var ReactDOMSelection = { + /** + * @param {DOMElement} node + */ + getOffsets: useIEOffsets ? getIEOffsets : getModernOffsets, + + /** + * @param {DOMElement|DOMTextNode} node + * @param {object} offsets + */ + setOffsets: useIEOffsets ? setIEOffsets : setModernOffsets +}; + +module.exports = ReactDOMSelection; +},{"116":116,"117":117,"130":130}],45:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactDOMServer + */ + +'use strict'; + +var ReactDefaultInjection = _dereq_(49); +var ReactServerRendering = _dereq_(80); +var ReactVersion = _dereq_(84); + +ReactDefaultInjection.inject(); + +var ReactDOMServer = { + renderToString: ReactServerRendering.renderToString, + renderToStaticMarkup: ReactServerRendering.renderToStaticMarkup, + version: ReactVersion +}; + +module.exports = ReactDOMServer; +},{"49":49,"80":80,"84":84}],46:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactDOMTextComponent + * @typechecks static-only + */ + +'use strict'; + +var DOMChildrenOperations = _dereq_(9); +var DOMPropertyOperations = _dereq_(11); +var ReactComponentBrowserEnvironment = _dereq_(31); +var ReactMount = _dereq_(65); + +var assign = _dereq_(23); +var escapeTextContentForBrowser = _dereq_(107); +var setTextContent = _dereq_(125); +var validateDOMNesting = _dereq_(128); + +/** + * Text nodes violate a couple assumptions that React makes about components: + * + * - When mounting text into the DOM, adjacent text nodes are merged. + * - Text nodes cannot be assigned a React root ID. + * + * This component is used to wrap strings in elements so that they can undergo + * the same reconciliation that is applied to elements. + * + * TODO: Investigate representing React components in the DOM with text nodes. + * + * @class ReactDOMTextComponent + * @extends ReactComponent + * @internal + */ +var ReactDOMTextComponent = function (props) { + // This constructor and its argument is currently used by mocks. +}; + +assign(ReactDOMTextComponent.prototype, { + + /** + * @param {ReactText} text + * @internal + */ + construct: function (text) { + // TODO: This is really a ReactText (ReactNode), not a ReactElement + this._currentElement = text; + this._stringText = '' + text; + + // Properties + this._rootNodeID = null; + this._mountIndex = 0; + }, + + /** + * Creates the markup for this text node. This node is not intended to have + * any features besides containing text content. + * + * @param {string} rootID DOM ID of the root node. + * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction + * @return {string} Markup for this text node. + * @internal + */ + mountComponent: function (rootID, transaction, context) { + if ("development" !== 'production') { + if (context[validateDOMNesting.ancestorInfoContextKey]) { + validateDOMNesting('span', null, context[validateDOMNesting.ancestorInfoContextKey]); + } + } + + this._rootNodeID = rootID; + if (transaction.useCreateElement) { + var ownerDocument = context[ReactMount.ownerDocumentContextKey]; + var el = ownerDocument.createElement('span'); + DOMPropertyOperations.setAttributeForID(el, rootID); + // Populate node cache + ReactMount.getID(el); + setTextContent(el, this._stringText); + return el; + } else { + var escapedText = escapeTextContentForBrowser(this._stringText); + + if (transaction.renderToStaticMarkup) { + // Normally we'd wrap this in a `span` for the reasons stated above, but + // since this is a situation where React won't take over (static pages), + // we can simply return the text as it is. + return escapedText; + } + + return '<span ' + DOMPropertyOperations.createMarkupForID(rootID) + '>' + escapedText + '</span>'; + } + }, + + /** + * Updates this component by updating the text content. + * + * @param {ReactText} nextText The next text content + * @param {ReactReconcileTransaction} transaction + * @internal + */ + receiveComponent: function (nextText, transaction) { + if (nextText !== this._currentElement) { + this._currentElement = nextText; + var nextStringText = '' + nextText; + if (nextStringText !== this._stringText) { + // TODO: Save this as pending props and use performUpdateIfNecessary + // and/or updateComponent to do the actual update for consistency with + // other component types? + this._stringText = nextStringText; + var node = ReactMount.getNode(this._rootNodeID); + DOMChildrenOperations.updateTextContent(node, nextStringText); + } + } + }, + + unmountComponent: function () { + ReactComponentBrowserEnvironment.unmountIDFromEnvironment(this._rootNodeID); + } + +}); + +module.exports = ReactDOMTextComponent; +},{"107":107,"11":11,"125":125,"128":128,"23":23,"31":31,"65":65,"9":9}],47:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactDOMTextarea + */ + +'use strict'; + +var LinkedValueUtils = _dereq_(22); +var ReactDOMIDOperations = _dereq_(40); +var ReactUpdates = _dereq_(83); + +var assign = _dereq_(23); +var invariant = _dereq_(144); +var warning = _dereq_(155); + +function forceUpdateIfMounted() { + if (this._rootNodeID) { + // DOM component is still mounted; update + ReactDOMTextarea.updateWrapper(this); + } +} + +/** + * Implements a <textarea> native component that allows setting `value`, and + * `defaultValue`. This differs from the traditional DOM API because value is + * usually set as PCDATA children. + * + * If `value` is not supplied (or null/undefined), user actions that affect the + * value will trigger updates to the element. + * + * If `value` is supplied (and not null/undefined), the rendered element will + * not trigger updates to the element. Instead, the `value` prop must change in + * order for the rendered element to be updated. + * + * The rendered element will be initialized with an empty value, the prop + * `defaultValue` if specified, or the children content (deprecated). + */ +var ReactDOMTextarea = { + getNativeProps: function (inst, props, context) { + !(props.dangerouslySetInnerHTML == null) ? "development" !== 'production' ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : invariant(false) : undefined; + + // Always set children to the same thing. In IE9, the selection range will + // get reset if `textContent` is mutated. + var nativeProps = assign({}, props, { + defaultValue: undefined, + value: undefined, + children: inst._wrapperState.initialValue, + onChange: inst._wrapperState.onChange + }); + + return nativeProps; + }, + + mountWrapper: function (inst, props) { + if ("development" !== 'production') { + LinkedValueUtils.checkPropTypes('textarea', props, inst._currentElement._owner); + } + + var defaultValue = props.defaultValue; + // TODO (yungsters): Remove support for children content in <textarea>. + var children = props.children; + if (children != null) { + if ("development" !== 'production') { + "development" !== 'production' ? warning(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.') : undefined; + } + !(defaultValue == null) ? "development" !== 'production' ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : invariant(false) : undefined; + if (Array.isArray(children)) { + !(children.length <= 1) ? "development" !== 'production' ? invariant(false, '<textarea> can only have at most one child.') : invariant(false) : undefined; + children = children[0]; + } + + defaultValue = '' + children; + } + if (defaultValue == null) { + defaultValue = ''; + } + var value = LinkedValueUtils.getValue(props); + + inst._wrapperState = { + // We save the initial value so that `ReactDOMComponent` doesn't update + // `textContent` (unnecessary since we update value). + // The initial value can be a boolean or object so that's why it's + // forced to be a string. + initialValue: '' + (value != null ? value : defaultValue), + onChange: _handleChange.bind(inst) + }; + }, + + updateWrapper: function (inst) { + var props = inst._currentElement.props; + var value = LinkedValueUtils.getValue(props); + if (value != null) { + // Cast `value` to a string to ensure the value is set correctly. While + // browsers typically do this as necessary, jsdom doesn't. + ReactDOMIDOperations.updatePropertyByID(inst._rootNodeID, 'value', '' + value); + } + } +}; + +function _handleChange(event) { + var props = this._currentElement.props; + var returnValue = LinkedValueUtils.executeOnChange(props, event); + ReactUpdates.asap(forceUpdateIfMounted, this); + return returnValue; +} + +module.exports = ReactDOMTextarea; +},{"144":144,"155":155,"22":22,"23":23,"40":40,"83":83}],48:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactDefaultBatchingStrategy + */ + +'use strict'; + +var ReactUpdates = _dereq_(83); +var Transaction = _dereq_(100); + +var assign = _dereq_(23); +var emptyFunction = _dereq_(136); + +var RESET_BATCHED_UPDATES = { + initialize: emptyFunction, + close: function () { + ReactDefaultBatchingStrategy.isBatchingUpdates = false; + } +}; + +var FLUSH_BATCHED_UPDATES = { + initialize: emptyFunction, + close: ReactUpdates.flushBatchedUpdates.bind(ReactUpdates) +}; + +var TRANSACTION_WRAPPERS = [FLUSH_BATCHED_UPDATES, RESET_BATCHED_UPDATES]; + +function ReactDefaultBatchingStrategyTransaction() { + this.reinitializeTransaction(); +} + +assign(ReactDefaultBatchingStrategyTransaction.prototype, Transaction.Mixin, { + getTransactionWrappers: function () { + return TRANSACTION_WRAPPERS; + } +}); + +var transaction = new ReactDefaultBatchingStrategyTransaction(); + +var ReactDefaultBatchingStrategy = { + isBatchingUpdates: false, + + /** + * Call the provided function in a context within which calls to `setState` + * and friends are batched such that components aren't updated unnecessarily. + */ + batchedUpdates: function (callback, a, b, c, d, e) { + var alreadyBatchingUpdates = ReactDefaultBatchingStrategy.isBatchingUpdates; + + ReactDefaultBatchingStrategy.isBatchingUpdates = true; + + // The code is written this way to avoid extra allocations + if (alreadyBatchingUpdates) { + callback(a, b, c, d, e); + } else { + transaction.perform(callback, null, a, b, c, d, e); + } + } +}; + +module.exports = ReactDefaultBatchingStrategy; +},{"100":100,"136":136,"23":23,"83":83}],49:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactDefaultInjection + */ + +'use strict'; + +var BeforeInputEventPlugin = _dereq_(3); +var ChangeEventPlugin = _dereq_(7); +var ClientReactRootIndex = _dereq_(8); +var DefaultEventPluginOrder = _dereq_(13); +var EnterLeaveEventPlugin = _dereq_(14); +var ExecutionEnvironment = _dereq_(130); +var HTMLDOMPropertyConfig = _dereq_(21); +var ReactBrowserComponentMixin = _dereq_(25); +var ReactComponentBrowserEnvironment = _dereq_(31); +var ReactDefaultBatchingStrategy = _dereq_(48); +var ReactDOMComponent = _dereq_(37); +var ReactDOMTextComponent = _dereq_(46); +var ReactEventListener = _dereq_(58); +var ReactInjection = _dereq_(59); +var ReactInstanceHandles = _dereq_(61); +var ReactMount = _dereq_(65); +var ReactReconcileTransaction = _dereq_(75); +var SelectEventPlugin = _dereq_(86); +var ServerReactRootIndex = _dereq_(87); +var SimpleEventPlugin = _dereq_(88); +var SVGDOMPropertyConfig = _dereq_(85); + +var alreadyInjected = false; + +function inject() { + if (alreadyInjected) { + // TODO: This is currently true because these injections are shared between + // the client and the server package. They should be built independently + // and not share any injection state. Then this problem will be solved. + return; + } + alreadyInjected = true; + + ReactInjection.EventEmitter.injectReactEventListener(ReactEventListener); + + /** + * Inject modules for resolving DOM hierarchy and plugin ordering. + */ + ReactInjection.EventPluginHub.injectEventPluginOrder(DefaultEventPluginOrder); + ReactInjection.EventPluginHub.injectInstanceHandle(ReactInstanceHandles); + ReactInjection.EventPluginHub.injectMount(ReactMount); + + /** + * Some important event plugins included by default (without having to require + * them). + */ + ReactInjection.EventPluginHub.injectEventPluginsByName({ + SimpleEventPlugin: SimpleEventPlugin, + EnterLeaveEventPlugin: EnterLeaveEventPlugin, + ChangeEventPlugin: ChangeEventPlugin, + SelectEventPlugin: SelectEventPlugin, + BeforeInputEventPlugin: BeforeInputEventPlugin + }); + + ReactInjection.NativeComponent.injectGenericComponentClass(ReactDOMComponent); + + ReactInjection.NativeComponent.injectTextComponentClass(ReactDOMTextComponent); + + ReactInjection.Class.injectMixin(ReactBrowserComponentMixin); + + ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig); + ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig); + + ReactInjection.EmptyComponent.injectEmptyComponent('noscript'); + + ReactInjection.Updates.injectReconcileTransaction(ReactReconcileTransaction); + ReactInjection.Updates.injectBatchingStrategy(ReactDefaultBatchingStrategy); + + ReactInjection.RootIndex.injectCreateReactRootIndex(ExecutionEnvironment.canUseDOM ? ClientReactRootIndex.createReactRootIndex : ServerReactRootIndex.createReactRootIndex); + + ReactInjection.Component.injectEnvironment(ReactComponentBrowserEnvironment); + + if ("development" !== 'production') { + var url = ExecutionEnvironment.canUseDOM && window.location.href || ''; + if (/[?&]react_perf\b/.test(url)) { + var ReactDefaultPerf = _dereq_(50); + ReactDefaultPerf.start(); + } + } +} + +module.exports = { + inject: inject +}; +},{"13":13,"130":130,"14":14,"21":21,"25":25,"3":3,"31":31,"37":37,"46":46,"48":48,"50":50,"58":58,"59":59,"61":61,"65":65,"7":7,"75":75,"8":8,"85":85,"86":86,"87":87,"88":88}],50:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactDefaultPerf + * @typechecks static-only + */ + +'use strict'; + +var DOMProperty = _dereq_(10); +var ReactDefaultPerfAnalysis = _dereq_(51); +var ReactMount = _dereq_(65); +var ReactPerf = _dereq_(71); + +var performanceNow = _dereq_(152); + +function roundFloat(val) { + return Math.floor(val * 100) / 100; +} + +function addValue(obj, key, val) { + obj[key] = (obj[key] || 0) + val; +} + +var ReactDefaultPerf = { + _allMeasurements: [], // last item in the list is the current one + _mountStack: [0], + _injected: false, + + start: function () { + if (!ReactDefaultPerf._injected) { + ReactPerf.injection.injectMeasure(ReactDefaultPerf.measure); + } + + ReactDefaultPerf._allMeasurements.length = 0; + ReactPerf.enableMeasure = true; + }, + + stop: function () { + ReactPerf.enableMeasure = false; + }, + + getLastMeasurements: function () { + return ReactDefaultPerf._allMeasurements; + }, + + printExclusive: function (measurements) { + measurements = measurements || ReactDefaultPerf._allMeasurements; + var summary = ReactDefaultPerfAnalysis.getExclusiveSummary(measurements); + console.table(summary.map(function (item) { + return { + 'Component class name': item.componentName, + 'Total inclusive time (ms)': roundFloat(item.inclusive), + 'Exclusive mount time (ms)': roundFloat(item.exclusive), + 'Exclusive render time (ms)': roundFloat(item.render), + 'Mount time per instance (ms)': roundFloat(item.exclusive / item.count), + 'Render time per instance (ms)': roundFloat(item.render / item.count), + 'Instances': item.count + }; + })); + // TODO: ReactDefaultPerfAnalysis.getTotalTime() does not return the correct + // number. + }, + + printInclusive: function (measurements) { + measurements = measurements || ReactDefaultPerf._allMeasurements; + var summary = ReactDefaultPerfAnalysis.getInclusiveSummary(measurements); + console.table(summary.map(function (item) { + return { + 'Owner > component': item.componentName, + 'Inclusive time (ms)': roundFloat(item.time), + 'Instances': item.count + }; + })); + console.log('Total time:', ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms'); + }, + + getMeasurementsSummaryMap: function (measurements) { + var summary = ReactDefaultPerfAnalysis.getInclusiveSummary(measurements, true); + return summary.map(function (item) { + return { + 'Owner > component': item.componentName, + 'Wasted time (ms)': item.time, + 'Instances': item.count + }; + }); + }, + + printWasted: function (measurements) { + measurements = measurements || ReactDefaultPerf._allMeasurements; + console.table(ReactDefaultPerf.getMeasurementsSummaryMap(measurements)); + console.log('Total time:', ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms'); + }, + + printDOM: function (measurements) { + measurements = measurements || ReactDefaultPerf._allMeasurements; + var summary = ReactDefaultPerfAnalysis.getDOMSummary(measurements); + console.table(summary.map(function (item) { + var result = {}; + result[DOMProperty.ID_ATTRIBUTE_NAME] = item.id; + result.type = item.type; + result.args = JSON.stringify(item.args); + return result; + })); + console.log('Total time:', ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms'); + }, + + _recordWrite: function (id, fnName, totalTime, args) { + // TODO: totalTime isn't that useful since it doesn't count paints/reflows + var writes = ReactDefaultPerf._allMeasurements[ReactDefaultPerf._allMeasurements.length - 1].writes; + writes[id] = writes[id] || []; + writes[id].push({ + type: fnName, + time: totalTime, + args: args + }); + }, + + measure: function (moduleName, fnName, func) { + return function () { + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + var totalTime; + var rv; + var start; + + if (fnName === '_renderNewRootComponent' || fnName === 'flushBatchedUpdates') { + // A "measurement" is a set of metrics recorded for each flush. We want + // to group the metrics for a given flush together so we can look at the + // components that rendered and the DOM operations that actually + // happened to determine the amount of "wasted work" performed. + ReactDefaultPerf._allMeasurements.push({ + exclusive: {}, + inclusive: {}, + render: {}, + counts: {}, + writes: {}, + displayNames: {}, + totalTime: 0, + created: {} + }); + start = performanceNow(); + rv = func.apply(this, args); + ReactDefaultPerf._allMeasurements[ReactDefaultPerf._allMeasurements.length - 1].totalTime = performanceNow() - start; + return rv; + } else if (fnName === '_mountImageIntoNode' || moduleName === 'ReactBrowserEventEmitter' || moduleName === 'ReactDOMIDOperations' || moduleName === 'CSSPropertyOperations' || moduleName === 'DOMChildrenOperations' || moduleName === 'DOMPropertyOperations') { + start = performanceNow(); + rv = func.apply(this, args); + totalTime = performanceNow() - start; + + if (fnName === '_mountImageIntoNode') { + var mountID = ReactMount.getID(args[1]); + ReactDefaultPerf._recordWrite(mountID, fnName, totalTime, args[0]); + } else if (fnName === 'dangerouslyProcessChildrenUpdates') { + // special format + args[0].forEach(function (update) { + var writeArgs = {}; + if (update.fromIndex !== null) { + writeArgs.fromIndex = update.fromIndex; + } + if (update.toIndex !== null) { + writeArgs.toIndex = update.toIndex; + } + if (update.textContent !== null) { + writeArgs.textContent = update.textContent; + } + if (update.markupIndex !== null) { + writeArgs.markup = args[1][update.markupIndex]; + } + ReactDefaultPerf._recordWrite(update.parentID, update.type, totalTime, writeArgs); + }); + } else { + // basic format + var id = args[0]; + if (typeof id === 'object') { + id = ReactMount.getID(args[0]); + } + ReactDefaultPerf._recordWrite(id, fnName, totalTime, Array.prototype.slice.call(args, 1)); + } + return rv; + } else if (moduleName === 'ReactCompositeComponent' && (fnName === 'mountComponent' || fnName === 'updateComponent' || // TODO: receiveComponent()? + fnName === '_renderValidatedComponent')) { + + if (this._currentElement.type === ReactMount.TopLevelWrapper) { + return func.apply(this, args); + } + + var rootNodeID = fnName === 'mountComponent' ? args[0] : this._rootNodeID; + var isRender = fnName === '_renderValidatedComponent'; + var isMount = fnName === 'mountComponent'; + + var mountStack = ReactDefaultPerf._mountStack; + var entry = ReactDefaultPerf._allMeasurements[ReactDefaultPerf._allMeasurements.length - 1]; + + if (isRender) { + addValue(entry.counts, rootNodeID, 1); + } else if (isMount) { + entry.created[rootNodeID] = true; + mountStack.push(0); + } + + start = performanceNow(); + rv = func.apply(this, args); + totalTime = performanceNow() - start; + + if (isRender) { + addValue(entry.render, rootNodeID, totalTime); + } else if (isMount) { + var subMountTime = mountStack.pop(); + mountStack[mountStack.length - 1] += totalTime; + addValue(entry.exclusive, rootNodeID, totalTime - subMountTime); + addValue(entry.inclusive, rootNodeID, totalTime); + } else { + addValue(entry.inclusive, rootNodeID, totalTime); + } + + entry.displayNames[rootNodeID] = { + current: this.getName(), + owner: this._currentElement._owner ? this._currentElement._owner.getName() : '<root>' + }; + + return rv; + } else { + return func.apply(this, args); + } + }; + } +}; + +module.exports = ReactDefaultPerf; +},{"10":10,"152":152,"51":51,"65":65,"71":71}],51:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactDefaultPerfAnalysis + */ + +'use strict'; + +var assign = _dereq_(23); + +// Don't try to save users less than 1.2ms (a number I made up) +var DONT_CARE_THRESHOLD = 1.2; +var DOM_OPERATION_TYPES = { + '_mountImageIntoNode': 'set innerHTML', + INSERT_MARKUP: 'set innerHTML', + MOVE_EXISTING: 'move', + REMOVE_NODE: 'remove', + SET_MARKUP: 'set innerHTML', + TEXT_CONTENT: 'set textContent', + 'setValueForProperty': 'update attribute', + 'setValueForAttribute': 'update attribute', + 'deleteValueForProperty': 'remove attribute', + 'dangerouslyReplaceNodeWithMarkupByID': 'replace' +}; + +function getTotalTime(measurements) { + // TODO: return number of DOM ops? could be misleading. + // TODO: measure dropped frames after reconcile? + // TODO: log total time of each reconcile and the top-level component + // class that triggered it. + var totalTime = 0; + for (var i = 0; i < measurements.length; i++) { + var measurement = measurements[i]; + totalTime += measurement.totalTime; + } + return totalTime; +} + +function getDOMSummary(measurements) { + var items = []; + measurements.forEach(function (measurement) { + Object.keys(measurement.writes).forEach(function (id) { + measurement.writes[id].forEach(function (write) { + items.push({ + id: id, + type: DOM_OPERATION_TYPES[write.type] || write.type, + args: write.args + }); + }); + }); + }); + return items; +} + +function getExclusiveSummary(measurements) { + var candidates = {}; + var displayName; + + for (var i = 0; i < measurements.length; i++) { + var measurement = measurements[i]; + var allIDs = assign({}, measurement.exclusive, measurement.inclusive); + + for (var id in allIDs) { + displayName = measurement.displayNames[id].current; + + candidates[displayName] = candidates[displayName] || { + componentName: displayName, + inclusive: 0, + exclusive: 0, + render: 0, + count: 0 + }; + if (measurement.render[id]) { + candidates[displayName].render += measurement.render[id]; + } + if (measurement.exclusive[id]) { + candidates[displayName].exclusive += measurement.exclusive[id]; + } + if (measurement.inclusive[id]) { + candidates[displayName].inclusive += measurement.inclusive[id]; + } + if (measurement.counts[id]) { + candidates[displayName].count += measurement.counts[id]; + } + } + } + + // Now make a sorted array with the results. + var arr = []; + for (displayName in candidates) { + if (candidates[displayName].exclusive >= DONT_CARE_THRESHOLD) { + arr.push(candidates[displayName]); + } + } + + arr.sort(function (a, b) { + return b.exclusive - a.exclusive; + }); + + return arr; +} + +function getInclusiveSummary(measurements, onlyClean) { + var candidates = {}; + var inclusiveKey; + + for (var i = 0; i < measurements.length; i++) { + var measurement = measurements[i]; + var allIDs = assign({}, measurement.exclusive, measurement.inclusive); + var cleanComponents; + + if (onlyClean) { + cleanComponents = getUnchangedComponents(measurement); + } + + for (var id in allIDs) { + if (onlyClean && !cleanComponents[id]) { + continue; + } + + var displayName = measurement.displayNames[id]; + + // Inclusive time is not useful for many components without knowing where + // they are instantiated. So we aggregate inclusive time with both the + // owner and current displayName as the key. + inclusiveKey = displayName.owner + ' > ' + displayName.current; + + candidates[inclusiveKey] = candidates[inclusiveKey] || { + componentName: inclusiveKey, + time: 0, + count: 0 + }; + + if (measurement.inclusive[id]) { + candidates[inclusiveKey].time += measurement.inclusive[id]; + } + if (measurement.counts[id]) { + candidates[inclusiveKey].count += measurement.counts[id]; + } + } + } + + // Now make a sorted array with the results. + var arr = []; + for (inclusiveKey in candidates) { + if (candidates[inclusiveKey].time >= DONT_CARE_THRESHOLD) { + arr.push(candidates[inclusiveKey]); + } + } + + arr.sort(function (a, b) { + return b.time - a.time; + }); + + return arr; +} + +function getUnchangedComponents(measurement) { + // For a given reconcile, look at which components did not actually + // render anything to the DOM and return a mapping of their ID to + // the amount of time it took to render the entire subtree. + var cleanComponents = {}; + var dirtyLeafIDs = Object.keys(measurement.writes); + var allIDs = assign({}, measurement.exclusive, measurement.inclusive); + + for (var id in allIDs) { + var isDirty = false; + // For each component that rendered, see if a component that triggered + // a DOM op is in its subtree. + for (var i = 0; i < dirtyLeafIDs.length; i++) { + if (dirtyLeafIDs[i].indexOf(id) === 0) { + isDirty = true; + break; + } + } + // check if component newly created + if (measurement.created[id]) { + isDirty = true; + } + if (!isDirty && measurement.counts[id] > 0) { + cleanComponents[id] = true; + } + } + return cleanComponents; +} + +var ReactDefaultPerfAnalysis = { + getExclusiveSummary: getExclusiveSummary, + getInclusiveSummary: getInclusiveSummary, + getDOMSummary: getDOMSummary, + getTotalTime: getTotalTime +}; + +module.exports = ReactDefaultPerfAnalysis; +},{"23":23}],52:[function(_dereq_,module,exports){ +/** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactElement + */ + +'use strict'; + +var ReactCurrentOwner = _dereq_(34); + +var assign = _dereq_(23); +var canDefineProperty = _dereq_(104); + +// The Symbol used to tag the ReactElement type. If there is no native Symbol +// nor polyfill, then a plain number is used for performance. +var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7; + +var RESERVED_PROPS = { + key: true, + ref: true, + __self: true, + __source: true +}; + +/** + * Base constructor for all React elements. This is only used to make this + * work with a dynamic instanceof check. Nothing should live on this prototype. + * + * @param {*} type + * @param {*} key + * @param {string|object} ref + * @param {*} self A *temporary* helper to detect places where `this` is + * different from the `owner` when React.createElement is called, so that we + * can warn. We want to get rid of owner and replace string `ref`s with arrow + * functions, and as long as `this` and owner are the same, there will be no + * change in behavior. + * @param {*} source An annotation object (added by a transpiler or otherwise) + * indicating filename, line number, and/or other information. + * @param {*} owner + * @param {*} props + * @internal + */ +var ReactElement = function (type, key, ref, self, source, owner, props) { + var element = { + // This tag allow us to uniquely identify this as a React Element + $$typeof: REACT_ELEMENT_TYPE, + + // Built-in properties that belong on the element + type: type, + key: key, + ref: ref, + props: props, + + // Record the component responsible for creating this element. + _owner: owner + }; + + if ("development" !== 'production') { + // The validation flag is currently mutative. We put it on + // an external backing store so that we can freeze the whole object. + // This can be replaced with a WeakMap once they are implemented in + // commonly used development environments. + element._store = {}; + + // To make comparing ReactElements easier for testing purposes, we make + // the validation flag non-enumerable (where possible, which should + // include every environment we run tests in), so the test framework + // ignores it. + if (canDefineProperty) { + Object.defineProperty(element._store, 'validated', { + configurable: false, + enumerable: false, + writable: true, + value: false + }); + // self and source are DEV only properties. + Object.defineProperty(element, '_self', { + configurable: false, + enumerable: false, + writable: false, + value: self + }); + // Two elements created in two different places should be considered + // equal for testing purposes and therefore we hide it from enumeration. + Object.defineProperty(element, '_source', { + configurable: false, + enumerable: false, + writable: false, + value: source + }); + } else { + element._store.validated = false; + element._self = self; + element._source = source; + } + Object.freeze(element.props); + Object.freeze(element); + } + + return element; +}; + +ReactElement.createElement = function (type, config, children) { + var propName; + + // Reserved names are extracted + var props = {}; + + var key = null; + var ref = null; + var self = null; + var source = null; + + if (config != null) { + ref = config.ref === undefined ? null : config.ref; + key = config.key === undefined ? null : '' + config.key; + self = config.__self === undefined ? null : config.__self; + source = config.__source === undefined ? null : config.__source; + // Remaining properties are added to a new props object + for (propName in config) { + if (config.hasOwnProperty(propName) && !RESERVED_PROPS.hasOwnProperty(propName)) { + props[propName] = config[propName]; + } + } + } + + // Children can be more than one argument, and those are transferred onto + // the newly allocated props object. + var childrenLength = arguments.length - 2; + if (childrenLength === 1) { + props.children = children; + } else if (childrenLength > 1) { + var childArray = Array(childrenLength); + for (var i = 0; i < childrenLength; i++) { + childArray[i] = arguments[i + 2]; + } + props.children = childArray; + } + + // Resolve default props + if (type && type.defaultProps) { + var defaultProps = type.defaultProps; + for (propName in defaultProps) { + if (typeof props[propName] === 'undefined') { + props[propName] = defaultProps[propName]; + } + } + } + + return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props); +}; + +ReactElement.createFactory = function (type) { + var factory = ReactElement.createElement.bind(null, type); + // Expose the type on the factory and the prototype so that it can be + // easily accessed on elements. E.g. `<Foo />.type === Foo`. + // This should not be named `constructor` since this may not be the function + // that created the element, and it may not even be a constructor. + // Legacy hook TODO: Warn if this is accessed + factory.type = type; + return factory; +}; + +ReactElement.cloneAndReplaceKey = function (oldElement, newKey) { + var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props); + + return newElement; +}; + +ReactElement.cloneAndReplaceProps = function (oldElement, newProps) { + var newElement = ReactElement(oldElement.type, oldElement.key, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, newProps); + + if ("development" !== 'production') { + // If the key on the original is valid, then the clone is valid + newElement._store.validated = oldElement._store.validated; + } + + return newElement; +}; + +ReactElement.cloneElement = function (element, config, children) { + var propName; + + // Original props are copied + var props = assign({}, element.props); + + // Reserved names are extracted + var key = element.key; + var ref = element.ref; + // Self is preserved since the owner is preserved. + var self = element._self; + // Source is preserved since cloneElement is unlikely to be targeted by a + // transpiler, and the original source is probably a better indicator of the + // true owner. + var source = element._source; + + // Owner will be preserved, unless ref is overridden + var owner = element._owner; + + if (config != null) { + if (config.ref !== undefined) { + // Silently steal the ref from the parent. + ref = config.ref; + owner = ReactCurrentOwner.current; + } + if (config.key !== undefined) { + key = '' + config.key; + } + // Remaining properties override existing props + for (propName in config) { + if (config.hasOwnProperty(propName) && !RESERVED_PROPS.hasOwnProperty(propName)) { + props[propName] = config[propName]; + } + } + } + + // Children can be more than one argument, and those are transferred onto + // the newly allocated props object. + var childrenLength = arguments.length - 2; + if (childrenLength === 1) { + props.children = children; + } else if (childrenLength > 1) { + var childArray = Array(childrenLength); + for (var i = 0; i < childrenLength; i++) { + childArray[i] = arguments[i + 2]; + } + props.children = childArray; + } + + return ReactElement(element.type, key, ref, self, source, owner, props); +}; + +/** + * @param {?object} object + * @return {boolean} True if `object` is a valid component. + * @final + */ +ReactElement.isValidElement = function (object) { + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; +}; + +module.exports = ReactElement; +},{"104":104,"23":23,"34":34}],53:[function(_dereq_,module,exports){ +/** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactElementValidator + */ + +/** + * ReactElementValidator provides a wrapper around a element factory + * which validates the props passed to the element. This is intended to be + * used only in DEV and could be replaced by a static type checker for languages + * that support it. + */ + +'use strict'; + +var ReactElement = _dereq_(52); +var ReactPropTypeLocations = _dereq_(73); +var ReactPropTypeLocationNames = _dereq_(72); +var ReactCurrentOwner = _dereq_(34); + +var canDefineProperty = _dereq_(104); +var getIteratorFn = _dereq_(115); +var invariant = _dereq_(144); +var warning = _dereq_(155); + +function getDeclarationErrorAddendum() { + if (ReactCurrentOwner.current) { + var name = ReactCurrentOwner.current.getName(); + if (name) { + return ' Check the render method of `' + name + '`.'; + } + } + return ''; +} + +/** + * Warn if there's no key explicitly set on dynamic arrays of children or + * object keys are not valid. This allows us to keep track of children between + * updates. + */ +var ownerHasKeyUseWarning = {}; + +var loggedTypeFailures = {}; + +/** + * Warn if the element doesn't have an explicit key assigned to it. + * This element is in an array. The array could grow and shrink or be + * reordered. All children that haven't already been validated are required to + * have a "key" property assigned to it. + * + * @internal + * @param {ReactElement} element Element that requires a key. + * @param {*} parentType element's parent's type. + */ +function validateExplicitKey(element, parentType) { + if (!element._store || element._store.validated || element.key != null) { + return; + } + element._store.validated = true; + + var addenda = getAddendaForKeyUse('uniqueKey', element, parentType); + if (addenda === null) { + // we already showed the warning + return; + } + "development" !== 'production' ? warning(false, 'Each child in an array or iterator should have a unique "key" prop.' + '%s%s%s', addenda.parentOrOwner || '', addenda.childOwner || '', addenda.url || '') : undefined; +} + +/** + * Shared warning and monitoring code for the key warnings. + * + * @internal + * @param {string} messageType A key used for de-duping warnings. + * @param {ReactElement} element Component that requires a key. + * @param {*} parentType element's parent's type. + * @returns {?object} A set of addenda to use in the warning message, or null + * if the warning has already been shown before (and shouldn't be shown again). + */ +function getAddendaForKeyUse(messageType, element, parentType) { + var addendum = getDeclarationErrorAddendum(); + if (!addendum) { + var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name; + if (parentName) { + addendum = ' Check the top-level render call using <' + parentName + '>.'; + } + } + + var memoizer = ownerHasKeyUseWarning[messageType] || (ownerHasKeyUseWarning[messageType] = {}); + if (memoizer[addendum]) { + return null; + } + memoizer[addendum] = true; + + var addenda = { + parentOrOwner: addendum, + url: ' See https://fb.me/react-warning-keys for more information.', + childOwner: null + }; + + // Usually the current owner is the offender, but if it accepts children as a + // property, it may be the creator of the child that's responsible for + // assigning it a key. + if (element && element._owner && element._owner !== ReactCurrentOwner.current) { + // Give the component that originally created this child. + addenda.childOwner = ' It was passed a child from ' + element._owner.getName() + '.'; + } + + return addenda; +} + +/** + * Ensure that every element either is passed in a static location, in an + * array with an explicit keys property defined, or in an object literal + * with valid key property. + * + * @internal + * @param {ReactNode} node Statically passed child of any type. + * @param {*} parentType node's parent's type. + */ +function validateChildKeys(node, parentType) { + if (typeof node !== 'object') { + return; + } + if (Array.isArray(node)) { + for (var i = 0; i < node.length; i++) { + var child = node[i]; + if (ReactElement.isValidElement(child)) { + validateExplicitKey(child, parentType); + } + } + } else if (ReactElement.isValidElement(node)) { + // This element was passed in a valid location. + if (node._store) { + node._store.validated = true; + } + } else if (node) { + var iteratorFn = getIteratorFn(node); + // Entry iterators provide implicit keys. + if (iteratorFn) { + if (iteratorFn !== node.entries) { + var iterator = iteratorFn.call(node); + var step; + while (!(step = iterator.next()).done) { + if (ReactElement.isValidElement(step.value)) { + validateExplicitKey(step.value, parentType); + } + } + } + } + } +} + +/** + * Assert that the props are valid + * + * @param {string} componentName Name of the component for error messages. + * @param {object} propTypes Map of prop name to a ReactPropType + * @param {object} props + * @param {string} location e.g. "prop", "context", "child context" + * @private + */ +function checkPropTypes(componentName, propTypes, props, location) { + for (var propName in propTypes) { + if (propTypes.hasOwnProperty(propName)) { + var error; + // Prop type validation may throw. In case they do, we don't want to + // fail the render phase where it didn't fail before. So we log it. + // After these have been cleaned up, we'll let them throw. + try { + // This is intentionally an invariant that gets caught. It's the same + // behavior as without this statement except with a better message. + !(typeof propTypes[propName] === 'function') ? "development" !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], propName) : invariant(false) : undefined; + error = propTypes[propName](props, propName, componentName, location); + } catch (ex) { + error = ex; + } + "development" !== 'production' ? warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', ReactPropTypeLocationNames[location], propName, typeof error) : undefined; + if (error instanceof Error && !(error.message in loggedTypeFailures)) { + // Only monitor this failure once because there tends to be a lot of the + // same error. + loggedTypeFailures[error.message] = true; + + var addendum = getDeclarationErrorAddendum(); + "development" !== 'production' ? warning(false, 'Failed propType: %s%s', error.message, addendum) : undefined; + } + } + } +} + +/** + * Given an element, validate that its props follow the propTypes definition, + * provided by the type. + * + * @param {ReactElement} element + */ +function validatePropTypes(element) { + var componentClass = element.type; + if (typeof componentClass !== 'function') { + return; + } + var name = componentClass.displayName || componentClass.name; + if (componentClass.propTypes) { + checkPropTypes(name, componentClass.propTypes, element.props, ReactPropTypeLocations.prop); + } + if (typeof componentClass.getDefaultProps === 'function') { + "development" !== 'production' ? warning(componentClass.getDefaultProps.isReactClassApproved, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : undefined; + } +} + +var ReactElementValidator = { + + createElement: function (type, props, children) { + var validType = typeof type === 'string' || typeof type === 'function'; + // We warn in this case but don't throw. We expect the element creation to + // succeed and there will likely be errors in render. + "development" !== 'production' ? warning(validType, 'React.createElement: type should not be null, undefined, boolean, or ' + 'number. It should be a string (for DOM elements) or a ReactClass ' + '(for composite components).%s', getDeclarationErrorAddendum()) : undefined; + + var element = ReactElement.createElement.apply(this, arguments); + + // The result can be nullish if a mock or a custom function is used. + // TODO: Drop this when these are no longer allowed as the type argument. + if (element == null) { + return element; + } + + // Skip key warning if the type isn't valid since our key validation logic + // doesn't expect a non-string/function type and can throw confusing errors. + // We don't want exception behavior to differ between dev and prod. + // (Rendering will throw with a helpful message and as soon as the type is + // fixed, the key warnings will appear.) + if (validType) { + for (var i = 2; i < arguments.length; i++) { + validateChildKeys(arguments[i], type); + } + } + + validatePropTypes(element); + + return element; + }, + + createFactory: function (type) { + var validatedFactory = ReactElementValidator.createElement.bind(null, type); + // Legacy hook TODO: Warn if this is accessed + validatedFactory.type = type; + + if ("development" !== 'production') { + if (canDefineProperty) { + Object.defineProperty(validatedFactory, 'type', { + enumerable: false, + get: function () { + "development" !== 'production' ? warning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.') : undefined; + Object.defineProperty(this, 'type', { + value: type + }); + return type; + } + }); + } + } + + return validatedFactory; + }, + + cloneElement: function (element, props, children) { + var newElement = ReactElement.cloneElement.apply(this, arguments); + for (var i = 2; i < arguments.length; i++) { + validateChildKeys(arguments[i], newElement.type); + } + validatePropTypes(newElement); + return newElement; + } + +}; + +module.exports = ReactElementValidator; +},{"104":104,"115":115,"144":144,"155":155,"34":34,"52":52,"72":72,"73":73}],54:[function(_dereq_,module,exports){ +/** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactEmptyComponent + */ + +'use strict'; + +var ReactElement = _dereq_(52); +var ReactEmptyComponentRegistry = _dereq_(55); +var ReactReconciler = _dereq_(76); + +var assign = _dereq_(23); + +var placeholderElement; + +var ReactEmptyComponentInjection = { + injectEmptyComponent: function (component) { + placeholderElement = ReactElement.createElement(component); + } +}; + +var ReactEmptyComponent = function (instantiate) { + this._currentElement = null; + this._rootNodeID = null; + this._renderedComponent = instantiate(placeholderElement); +}; +assign(ReactEmptyComponent.prototype, { + construct: function (element) {}, + mountComponent: function (rootID, transaction, context) { + ReactEmptyComponentRegistry.registerNullComponentID(rootID); + this._rootNodeID = rootID; + return ReactReconciler.mountComponent(this._renderedComponent, rootID, transaction, context); + }, + receiveComponent: function () {}, + unmountComponent: function (rootID, transaction, context) { + ReactReconciler.unmountComponent(this._renderedComponent); + ReactEmptyComponentRegistry.deregisterNullComponentID(this._rootNodeID); + this._rootNodeID = null; + this._renderedComponent = null; + } +}); + +ReactEmptyComponent.injection = ReactEmptyComponentInjection; + +module.exports = ReactEmptyComponent; +},{"23":23,"52":52,"55":55,"76":76}],55:[function(_dereq_,module,exports){ +/** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactEmptyComponentRegistry + */ + +'use strict'; + +// This registry keeps track of the React IDs of the components that rendered to +// `null` (in reality a placeholder such as `noscript`) +var nullComponentIDsRegistry = {}; + +/** + * @param {string} id Component's `_rootNodeID`. + * @return {boolean} True if the component is rendered to null. + */ +function isNullComponentID(id) { + return !!nullComponentIDsRegistry[id]; +} + +/** + * Mark the component as having rendered to null. + * @param {string} id Component's `_rootNodeID`. + */ +function registerNullComponentID(id) { + nullComponentIDsRegistry[id] = true; +} + +/** + * Unmark the component as having rendered to null: it renders to something now. + * @param {string} id Component's `_rootNodeID`. + */ +function deregisterNullComponentID(id) { + delete nullComponentIDsRegistry[id]; +} + +var ReactEmptyComponentRegistry = { + isNullComponentID: isNullComponentID, + registerNullComponentID: registerNullComponentID, + deregisterNullComponentID: deregisterNullComponentID +}; + +module.exports = ReactEmptyComponentRegistry; +},{}],56:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactErrorUtils + * @typechecks + */ + +'use strict'; + +var caughtError = null; + +/** + * Call a function while guarding against errors that happens within it. + * + * @param {?String} name of the guard to use for logging or debugging + * @param {Function} func The function to invoke + * @param {*} a First argument + * @param {*} b Second argument + */ +function invokeGuardedCallback(name, func, a, b) { + try { + return func(a, b); + } catch (x) { + if (caughtError === null) { + caughtError = x; + } + return undefined; + } +} + +var ReactErrorUtils = { + invokeGuardedCallback: invokeGuardedCallback, + + /** + * Invoked by ReactTestUtils.Simulate so that any errors thrown by the event + * handler are sure to be rethrown by rethrowCaughtError. + */ + invokeGuardedCallbackWithCatch: invokeGuardedCallback, + + /** + * During execution of guarded functions we will capture the first error which + * we will rethrow to be handled by the top level error handler. + */ + rethrowCaughtError: function () { + if (caughtError) { + var error = caughtError; + caughtError = null; + throw error; + } + } +}; + +if ("development" !== 'production') { + /** + * To help development we can get better devtools integration by simulating a + * real browser event. + */ + if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') { + var fakeNode = document.createElement('react'); + ReactErrorUtils.invokeGuardedCallback = function (name, func, a, b) { + var boundFunc = func.bind(null, a, b); + var evtType = 'react-' + name; + fakeNode.addEventListener(evtType, boundFunc, false); + var evt = document.createEvent('Event'); + evt.initEvent(evtType, false, false); + fakeNode.dispatchEvent(evt); + fakeNode.removeEventListener(evtType, boundFunc, false); + }; + } +} + +module.exports = ReactErrorUtils; +},{}],57:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactEventEmitterMixin + */ + +'use strict'; + +var EventPluginHub = _dereq_(16); + +function runEventQueueInBatch(events) { + EventPluginHub.enqueueEvents(events); + EventPluginHub.processEventQueue(false); +} + +var ReactEventEmitterMixin = { + + /** + * Streams a fired top-level event to `EventPluginHub` where plugins have the + * opportunity to create `ReactEvent`s to be dispatched. + * + * @param {string} topLevelType Record from `EventConstants`. + * @param {object} topLevelTarget The listening component root node. + * @param {string} topLevelTargetID ID of `topLevelTarget`. + * @param {object} nativeEvent Native environment event. + */ + handleTopLevel: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) { + var events = EventPluginHub.extractEvents(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget); + runEventQueueInBatch(events); + } +}; + +module.exports = ReactEventEmitterMixin; +},{"16":16}],58:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactEventListener + * @typechecks static-only + */ + +'use strict'; + +var EventListener = _dereq_(129); +var ExecutionEnvironment = _dereq_(130); +var PooledClass = _dereq_(24); +var ReactInstanceHandles = _dereq_(61); +var ReactMount = _dereq_(65); +var ReactUpdates = _dereq_(83); + +var assign = _dereq_(23); +var getEventTarget = _dereq_(114); +var getUnboundedScrollPosition = _dereq_(141); + +var DOCUMENT_FRAGMENT_NODE_TYPE = 11; + +/** + * Finds the parent React component of `node`. + * + * @param {*} node + * @return {?DOMEventTarget} Parent container, or `null` if the specified node + * is not nested. + */ +function findParent(node) { + // TODO: It may be a good idea to cache this to prevent unnecessary DOM + // traversal, but caching is difficult to do correctly without using a + // mutation observer to listen for all DOM changes. + var nodeID = ReactMount.getID(node); + var rootID = ReactInstanceHandles.getReactRootIDFromNodeID(nodeID); + var container = ReactMount.findReactContainerForID(rootID); + var parent = ReactMount.getFirstReactDOM(container); + return parent; +} + +// Used to store ancestor hierarchy in top level callback +function TopLevelCallbackBookKeeping(topLevelType, nativeEvent) { + this.topLevelType = topLevelType; + this.nativeEvent = nativeEvent; + this.ancestors = []; +} +assign(TopLevelCallbackBookKeeping.prototype, { + destructor: function () { + this.topLevelType = null; + this.nativeEvent = null; + this.ancestors.length = 0; + } +}); +PooledClass.addPoolingTo(TopLevelCallbackBookKeeping, PooledClass.twoArgumentPooler); + +function handleTopLevelImpl(bookKeeping) { + // TODO: Re-enable event.path handling + // + // if (bookKeeping.nativeEvent.path && bookKeeping.nativeEvent.path.length > 1) { + // // New browsers have a path attribute on native events + // handleTopLevelWithPath(bookKeeping); + // } else { + // // Legacy browsers don't have a path attribute on native events + // handleTopLevelWithoutPath(bookKeeping); + // } + + void handleTopLevelWithPath; // temporarily unused + handleTopLevelWithoutPath(bookKeeping); +} + +// Legacy browsers don't have a path attribute on native events +function handleTopLevelWithoutPath(bookKeeping) { + var topLevelTarget = ReactMount.getFirstReactDOM(getEventTarget(bookKeeping.nativeEvent)) || window; + + // Loop through the hierarchy, in case there's any nested components. + // It's important that we build the array of ancestors before calling any + // event handlers, because event handlers can modify the DOM, leading to + // inconsistencies with ReactMount's node cache. See #1105. + var ancestor = topLevelTarget; + while (ancestor) { + bookKeeping.ancestors.push(ancestor); + ancestor = findParent(ancestor); + } + + for (var i = 0; i < bookKeeping.ancestors.length; i++) { + topLevelTarget = bookKeeping.ancestors[i]; + var topLevelTargetID = ReactMount.getID(topLevelTarget) || ''; + ReactEventListener._handleTopLevel(bookKeeping.topLevelType, topLevelTarget, topLevelTargetID, bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent)); + } +} + +// New browsers have a path attribute on native events +function handleTopLevelWithPath(bookKeeping) { + var path = bookKeeping.nativeEvent.path; + var currentNativeTarget = path[0]; + var eventsFired = 0; + for (var i = 0; i < path.length; i++) { + var currentPathElement = path[i]; + if (currentPathElement.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE) { + currentNativeTarget = path[i + 1]; + } + // TODO: slow + var reactParent = ReactMount.getFirstReactDOM(currentPathElement); + if (reactParent === currentPathElement) { + var currentPathElementID = ReactMount.getID(currentPathElement); + var newRootID = ReactInstanceHandles.getReactRootIDFromNodeID(currentPathElementID); + bookKeeping.ancestors.push(currentPathElement); + + var topLevelTargetID = ReactMount.getID(currentPathElement) || ''; + eventsFired++; + ReactEventListener._handleTopLevel(bookKeeping.topLevelType, currentPathElement, topLevelTargetID, bookKeeping.nativeEvent, currentNativeTarget); + + // Jump to the root of this React render tree + while (currentPathElementID !== newRootID) { + i++; + currentPathElement = path[i]; + currentPathElementID = ReactMount.getID(currentPathElement); + } + } + } + if (eventsFired === 0) { + ReactEventListener._handleTopLevel(bookKeeping.topLevelType, window, '', bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent)); + } +} + +function scrollValueMonitor(cb) { + var scrollPosition = getUnboundedScrollPosition(window); + cb(scrollPosition); +} + +var ReactEventListener = { + _enabled: true, + _handleTopLevel: null, + + WINDOW_HANDLE: ExecutionEnvironment.canUseDOM ? window : null, + + setHandleTopLevel: function (handleTopLevel) { + ReactEventListener._handleTopLevel = handleTopLevel; + }, + + setEnabled: function (enabled) { + ReactEventListener._enabled = !!enabled; + }, + + isEnabled: function () { + return ReactEventListener._enabled; + }, + + /** + * Traps top-level events by using event bubbling. + * + * @param {string} topLevelType Record from `EventConstants`. + * @param {string} handlerBaseName Event name (e.g. "click"). + * @param {object} handle Element on which to attach listener. + * @return {?object} An object with a remove function which will forcefully + * remove the listener. + * @internal + */ + trapBubbledEvent: function (topLevelType, handlerBaseName, handle) { + var element = handle; + if (!element) { + return null; + } + return EventListener.listen(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType)); + }, + + /** + * Traps a top-level event by using event capturing. + * + * @param {string} topLevelType Record from `EventConstants`. + * @param {string} handlerBaseName Event name (e.g. "click"). + * @param {object} handle Element on which to attach listener. + * @return {?object} An object with a remove function which will forcefully + * remove the listener. + * @internal + */ + trapCapturedEvent: function (topLevelType, handlerBaseName, handle) { + var element = handle; + if (!element) { + return null; + } + return EventListener.capture(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType)); + }, + + monitorScrollValue: function (refresh) { + var callback = scrollValueMonitor.bind(null, refresh); + EventListener.listen(window, 'scroll', callback); + }, + + dispatchEvent: function (topLevelType, nativeEvent) { + if (!ReactEventListener._enabled) { + return; + } + + var bookKeeping = TopLevelCallbackBookKeeping.getPooled(topLevelType, nativeEvent); + try { + // Event queue being processed in the same cycle allows + // `preventDefault`. + ReactUpdates.batchedUpdates(handleTopLevelImpl, bookKeeping); + } finally { + TopLevelCallbackBookKeeping.release(bookKeeping); + } + } +}; + +module.exports = ReactEventListener; +},{"114":114,"129":129,"130":130,"141":141,"23":23,"24":24,"61":61,"65":65,"83":83}],59:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactInjection + */ + +'use strict'; + +var DOMProperty = _dereq_(10); +var EventPluginHub = _dereq_(16); +var ReactComponentEnvironment = _dereq_(32); +var ReactClass = _dereq_(29); +var ReactEmptyComponent = _dereq_(54); +var ReactBrowserEventEmitter = _dereq_(26); +var ReactNativeComponent = _dereq_(68); +var ReactPerf = _dereq_(71); +var ReactRootIndex = _dereq_(78); +var ReactUpdates = _dereq_(83); + +var ReactInjection = { + Component: ReactComponentEnvironment.injection, + Class: ReactClass.injection, + DOMProperty: DOMProperty.injection, + EmptyComponent: ReactEmptyComponent.injection, + EventPluginHub: EventPluginHub.injection, + EventEmitter: ReactBrowserEventEmitter.injection, + NativeComponent: ReactNativeComponent.injection, + Perf: ReactPerf.injection, + RootIndex: ReactRootIndex.injection, + Updates: ReactUpdates.injection +}; + +module.exports = ReactInjection; +},{"10":10,"16":16,"26":26,"29":29,"32":32,"54":54,"68":68,"71":71,"78":78,"83":83}],60:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactInputSelection + */ + +'use strict'; + +var ReactDOMSelection = _dereq_(44); + +var containsNode = _dereq_(133); +var focusNode = _dereq_(138); +var getActiveElement = _dereq_(139); + +function isInDocument(node) { + return containsNode(document.documentElement, node); +} + +/** + * @ReactInputSelection: React input selection module. Based on Selection.js, + * but modified to be suitable for react and has a couple of bug fixes (doesn't + * assume buttons have range selections allowed). + * Input selection module for React. + */ +var ReactInputSelection = { + + hasSelectionCapabilities: function (elem) { + var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase(); + return nodeName && (nodeName === 'input' && elem.type === 'text' || nodeName === 'textarea' || elem.contentEditable === 'true'); + }, + + getSelectionInformation: function () { + var focusedElem = getActiveElement(); + return { + focusedElem: focusedElem, + selectionRange: ReactInputSelection.hasSelectionCapabilities(focusedElem) ? ReactInputSelection.getSelection(focusedElem) : null + }; + }, + + /** + * @restoreSelection: If any selection information was potentially lost, + * restore it. This is useful when performing operations that could remove dom + * nodes and place them back in, resulting in focus being lost. + */ + restoreSelection: function (priorSelectionInformation) { + var curFocusedElem = getActiveElement(); + var priorFocusedElem = priorSelectionInformation.focusedElem; + var priorSelectionRange = priorSelectionInformation.selectionRange; + if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) { + if (ReactInputSelection.hasSelectionCapabilities(priorFocusedElem)) { + ReactInputSelection.setSelection(priorFocusedElem, priorSelectionRange); + } + focusNode(priorFocusedElem); + } + }, + + /** + * @getSelection: Gets the selection bounds of a focused textarea, input or + * contentEditable node. + * -@input: Look up selection bounds of this input + * -@return {start: selectionStart, end: selectionEnd} + */ + getSelection: function (input) { + var selection; + + if ('selectionStart' in input) { + // Modern browser with input or textarea. + selection = { + start: input.selectionStart, + end: input.selectionEnd + }; + } else if (document.selection && (input.nodeName && input.nodeName.toLowerCase() === 'input')) { + // IE8 input. + var range = document.selection.createRange(); + // There can only be one selection per document in IE, so it must + // be in our element. + if (range.parentElement() === input) { + selection = { + start: -range.moveStart('character', -input.value.length), + end: -range.moveEnd('character', -input.value.length) + }; + } + } else { + // Content editable or old IE textarea. + selection = ReactDOMSelection.getOffsets(input); + } + + return selection || { start: 0, end: 0 }; + }, + + /** + * @setSelection: Sets the selection bounds of a textarea or input and focuses + * the input. + * -@input Set selection bounds of this input or textarea + * -@offsets Object of same form that is returned from get* + */ + setSelection: function (input, offsets) { + var start = offsets.start; + var end = offsets.end; + if (typeof end === 'undefined') { + end = start; + } + + if ('selectionStart' in input) { + input.selectionStart = start; + input.selectionEnd = Math.min(end, input.value.length); + } else if (document.selection && (input.nodeName && input.nodeName.toLowerCase() === 'input')) { + var range = input.createTextRange(); + range.collapse(true); + range.moveStart('character', start); + range.moveEnd('character', end - start); + range.select(); + } else { + ReactDOMSelection.setOffsets(input, offsets); + } + } +}; + +module.exports = ReactInputSelection; +},{"133":133,"138":138,"139":139,"44":44}],61:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactInstanceHandles + * @typechecks static-only + */ + +'use strict'; + +var ReactRootIndex = _dereq_(78); + +var invariant = _dereq_(144); + +var SEPARATOR = '.'; +var SEPARATOR_LENGTH = SEPARATOR.length; + +/** + * Maximum depth of traversals before we consider the possibility of a bad ID. + */ +var MAX_TREE_DEPTH = 10000; + +/** + * Creates a DOM ID prefix to use when mounting React components. + * + * @param {number} index A unique integer + * @return {string} React root ID. + * @internal + */ +function getReactRootIDString(index) { + return SEPARATOR + index.toString(36); +} + +/** + * Checks if a character in the supplied ID is a separator or the end. + * + * @param {string} id A React DOM ID. + * @param {number} index Index of the character to check. + * @return {boolean} True if the character is a separator or end of the ID. + * @private + */ +function isBoundary(id, index) { + return id.charAt(index) === SEPARATOR || index === id.length; +} + +/** + * Checks if the supplied string is a valid React DOM ID. + * + * @param {string} id A React DOM ID, maybe. + * @return {boolean} True if the string is a valid React DOM ID. + * @private + */ +function isValidID(id) { + return id === '' || id.charAt(0) === SEPARATOR && id.charAt(id.length - 1) !== SEPARATOR; +} + +/** + * Checks if the first ID is an ancestor of or equal to the second ID. + * + * @param {string} ancestorID + * @param {string} descendantID + * @return {boolean} True if `ancestorID` is an ancestor of `descendantID`. + * @internal + */ +function isAncestorIDOf(ancestorID, descendantID) { + return descendantID.indexOf(ancestorID) === 0 && isBoundary(descendantID, ancestorID.length); +} + +/** + * Gets the parent ID of the supplied React DOM ID, `id`. + * + * @param {string} id ID of a component. + * @return {string} ID of the parent, or an empty string. + * @private + */ +function getParentID(id) { + return id ? id.substr(0, id.lastIndexOf(SEPARATOR)) : ''; +} + +/** + * Gets the next DOM ID on the tree path from the supplied `ancestorID` to the + * supplied `destinationID`. If they are equal, the ID is returned. + * + * @param {string} ancestorID ID of an ancestor node of `destinationID`. + * @param {string} destinationID ID of the destination node. + * @return {string} Next ID on the path from `ancestorID` to `destinationID`. + * @private + */ +function getNextDescendantID(ancestorID, destinationID) { + !(isValidID(ancestorID) && isValidID(destinationID)) ? "development" !== 'production' ? invariant(false, 'getNextDescendantID(%s, %s): Received an invalid React DOM ID.', ancestorID, destinationID) : invariant(false) : undefined; + !isAncestorIDOf(ancestorID, destinationID) ? "development" !== 'production' ? invariant(false, 'getNextDescendantID(...): React has made an invalid assumption about ' + 'the DOM hierarchy. Expected `%s` to be an ancestor of `%s`.', ancestorID, destinationID) : invariant(false) : undefined; + if (ancestorID === destinationID) { + return ancestorID; + } + // Skip over the ancestor and the immediate separator. Traverse until we hit + // another separator or we reach the end of `destinationID`. + var start = ancestorID.length + SEPARATOR_LENGTH; + var i; + for (i = start; i < destinationID.length; i++) { + if (isBoundary(destinationID, i)) { + break; + } + } + return destinationID.substr(0, i); +} + +/** + * Gets the nearest common ancestor ID of two IDs. + * + * Using this ID scheme, the nearest common ancestor ID is the longest common + * prefix of the two IDs that immediately preceded a "marker" in both strings. + * + * @param {string} oneID + * @param {string} twoID + * @return {string} Nearest common ancestor ID, or the empty string if none. + * @private + */ +function getFirstCommonAncestorID(oneID, twoID) { + var minLength = Math.min(oneID.length, twoID.length); + if (minLength === 0) { + return ''; + } + var lastCommonMarkerIndex = 0; + // Use `<=` to traverse until the "EOL" of the shorter string. + for (var i = 0; i <= minLength; i++) { + if (isBoundary(oneID, i) && isBoundary(twoID, i)) { + lastCommonMarkerIndex = i; + } else if (oneID.charAt(i) !== twoID.charAt(i)) { + break; + } + } + var longestCommonID = oneID.substr(0, lastCommonMarkerIndex); + !isValidID(longestCommonID) ? "development" !== 'production' ? invariant(false, 'getFirstCommonAncestorID(%s, %s): Expected a valid React DOM ID: %s', oneID, twoID, longestCommonID) : invariant(false) : undefined; + return longestCommonID; +} + +/** + * Traverses the parent path between two IDs (either up or down). The IDs must + * not be the same, and there must exist a parent path between them. If the + * callback returns `false`, traversal is stopped. + * + * @param {?string} start ID at which to start traversal. + * @param {?string} stop ID at which to end traversal. + * @param {function} cb Callback to invoke each ID with. + * @param {*} arg Argument to invoke the callback with. + * @param {?boolean} skipFirst Whether or not to skip the first node. + * @param {?boolean} skipLast Whether or not to skip the last node. + * @private + */ +function traverseParentPath(start, stop, cb, arg, skipFirst, skipLast) { + start = start || ''; + stop = stop || ''; + !(start !== stop) ? "development" !== 'production' ? invariant(false, 'traverseParentPath(...): Cannot traverse from and to the same ID, `%s`.', start) : invariant(false) : undefined; + var traverseUp = isAncestorIDOf(stop, start); + !(traverseUp || isAncestorIDOf(start, stop)) ? "development" !== 'production' ? invariant(false, 'traverseParentPath(%s, %s, ...): Cannot traverse from two IDs that do ' + 'not have a parent path.', start, stop) : invariant(false) : undefined; + // Traverse from `start` to `stop` one depth at a time. + var depth = 0; + var traverse = traverseUp ? getParentID : getNextDescendantID; + for (var id = start;; /* until break */id = traverse(id, stop)) { + var ret; + if ((!skipFirst || id !== start) && (!skipLast || id !== stop)) { + ret = cb(id, traverseUp, arg); + } + if (ret === false || id === stop) { + // Only break //after// visiting `stop`. + break; + } + !(depth++ < MAX_TREE_DEPTH) ? "development" !== 'production' ? invariant(false, 'traverseParentPath(%s, %s, ...): Detected an infinite loop while ' + 'traversing the React DOM ID tree. This may be due to malformed IDs: %s', start, stop, id) : invariant(false) : undefined; + } +} + +/** + * Manages the IDs assigned to DOM representations of React components. This + * uses a specific scheme in order to traverse the DOM efficiently (e.g. in + * order to simulate events). + * + * @internal + */ +var ReactInstanceHandles = { + + /** + * Constructs a React root ID + * @return {string} A React root ID. + */ + createReactRootID: function () { + return getReactRootIDString(ReactRootIndex.createReactRootIndex()); + }, + + /** + * Constructs a React ID by joining a root ID with a name. + * + * @param {string} rootID Root ID of a parent component. + * @param {string} name A component's name (as flattened children). + * @return {string} A React ID. + * @internal + */ + createReactID: function (rootID, name) { + return rootID + name; + }, + + /** + * Gets the DOM ID of the React component that is the root of the tree that + * contains the React component with the supplied DOM ID. + * + * @param {string} id DOM ID of a React component. + * @return {?string} DOM ID of the React component that is the root. + * @internal + */ + getReactRootIDFromNodeID: function (id) { + if (id && id.charAt(0) === SEPARATOR && id.length > 1) { + var index = id.indexOf(SEPARATOR, 1); + return index > -1 ? id.substr(0, index) : id; + } + return null; + }, + + /** + * Traverses the ID hierarchy and invokes the supplied `cb` on any IDs that + * should would receive a `mouseEnter` or `mouseLeave` event. + * + * NOTE: Does not invoke the callback on the nearest common ancestor because + * nothing "entered" or "left" that element. + * + * @param {string} leaveID ID being left. + * @param {string} enterID ID being entered. + * @param {function} cb Callback to invoke on each entered/left ID. + * @param {*} upArg Argument to invoke the callback with on left IDs. + * @param {*} downArg Argument to invoke the callback with on entered IDs. + * @internal + */ + traverseEnterLeave: function (leaveID, enterID, cb, upArg, downArg) { + var ancestorID = getFirstCommonAncestorID(leaveID, enterID); + if (ancestorID !== leaveID) { + traverseParentPath(leaveID, ancestorID, cb, upArg, false, true); + } + if (ancestorID !== enterID) { + traverseParentPath(ancestorID, enterID, cb, downArg, true, false); + } + }, + + /** + * Simulates the traversal of a two-phase, capture/bubble event dispatch. + * + * NOTE: This traversal happens on IDs without touching the DOM. + * + * @param {string} targetID ID of the target node. + * @param {function} cb Callback to invoke. + * @param {*} arg Argument to invoke the callback with. + * @internal + */ + traverseTwoPhase: function (targetID, cb, arg) { + if (targetID) { + traverseParentPath('', targetID, cb, arg, true, false); + traverseParentPath(targetID, '', cb, arg, false, true); + } + }, + + /** + * Same as `traverseTwoPhase` but skips the `targetID`. + */ + traverseTwoPhaseSkipTarget: function (targetID, cb, arg) { + if (targetID) { + traverseParentPath('', targetID, cb, arg, true, true); + traverseParentPath(targetID, '', cb, arg, true, true); + } + }, + + /** + * Traverse a node ID, calling the supplied `cb` for each ancestor ID. For + * example, passing `.0.$row-0.1` would result in `cb` getting called + * with `.0`, `.0.$row-0`, and `.0.$row-0.1`. + * + * NOTE: This traversal happens on IDs without touching the DOM. + * + * @param {string} targetID ID of the target node. + * @param {function} cb Callback to invoke. + * @param {*} arg Argument to invoke the callback with. + * @internal + */ + traverseAncestors: function (targetID, cb, arg) { + traverseParentPath('', targetID, cb, arg, true, false); + }, + + getFirstCommonAncestorID: getFirstCommonAncestorID, + + /** + * Exposed for unit testing. + * @private + */ + _getNextDescendantID: getNextDescendantID, + + isAncestorIDOf: isAncestorIDOf, + + SEPARATOR: SEPARATOR + +}; + +module.exports = ReactInstanceHandles; +},{"144":144,"78":78}],62:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactInstanceMap + */ + +'use strict'; + +/** + * `ReactInstanceMap` maintains a mapping from a public facing stateful + * instance (key) and the internal representation (value). This allows public + * methods to accept the user facing instance as an argument and map them back + * to internal methods. + */ + +// TODO: Replace this with ES6: var ReactInstanceMap = new Map(); +var ReactInstanceMap = { + + /** + * This API should be called `delete` but we'd have to make sure to always + * transform these to strings for IE support. When this transform is fully + * supported we can rename it. + */ + remove: function (key) { + key._reactInternalInstance = undefined; + }, + + get: function (key) { + return key._reactInternalInstance; + }, + + has: function (key) { + return key._reactInternalInstance !== undefined; + }, + + set: function (key, value) { + key._reactInternalInstance = value; + } + +}; + +module.exports = ReactInstanceMap; +},{}],63:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactIsomorphic + */ + +'use strict'; + +var ReactChildren = _dereq_(28); +var ReactComponent = _dereq_(30); +var ReactClass = _dereq_(29); +var ReactDOMFactories = _dereq_(38); +var ReactElement = _dereq_(52); +var ReactElementValidator = _dereq_(53); +var ReactPropTypes = _dereq_(74); +var ReactVersion = _dereq_(84); + +var assign = _dereq_(23); +var onlyChild = _dereq_(121); + +var createElement = ReactElement.createElement; +var createFactory = ReactElement.createFactory; +var cloneElement = ReactElement.cloneElement; + +if ("development" !== 'production') { + createElement = ReactElementValidator.createElement; + createFactory = ReactElementValidator.createFactory; + cloneElement = ReactElementValidator.cloneElement; +} + +var React = { + + // Modern + + Children: { + map: ReactChildren.map, + forEach: ReactChildren.forEach, + count: ReactChildren.count, + toArray: ReactChildren.toArray, + only: onlyChild + }, + + Component: ReactComponent, + + createElement: createElement, + cloneElement: cloneElement, + isValidElement: ReactElement.isValidElement, + + // Classic + + PropTypes: ReactPropTypes, + createClass: ReactClass.createClass, + createFactory: createFactory, + createMixin: function (mixin) { + // Currently a noop. Will be used to validate and trace mixins. + return mixin; + }, + + // This looks DOM specific but these are actually isomorphic helpers + // since they are just generating DOM strings. + DOM: ReactDOMFactories, + + version: ReactVersion, + + // Hook for JSX spread, don't use this for anything else. + __spread: assign +}; + +module.exports = React; +},{"121":121,"23":23,"28":28,"29":29,"30":30,"38":38,"52":52,"53":53,"74":74,"84":84}],64:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactMarkupChecksum + */ + +'use strict'; + +var adler32 = _dereq_(103); + +var TAG_END = /\/?>/; + +var ReactMarkupChecksum = { + CHECKSUM_ATTR_NAME: 'data-react-checksum', + + /** + * @param {string} markup Markup string + * @return {string} Markup string with checksum attribute attached + */ + addChecksumToMarkup: function (markup) { + var checksum = adler32(markup); + + // Add checksum (handle both parent tags and self-closing tags) + return markup.replace(TAG_END, ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '="' + checksum + '"$&'); + }, + + /** + * @param {string} markup to use + * @param {DOMElement} element root React element + * @returns {boolean} whether or not the markup is the same + */ + canReuseMarkup: function (markup, element) { + var existingChecksum = element.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME); + existingChecksum = existingChecksum && parseInt(existingChecksum, 10); + var markupChecksum = adler32(markup); + return markupChecksum === existingChecksum; + } +}; + +module.exports = ReactMarkupChecksum; +},{"103":103}],65:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactMount + */ + +'use strict'; + +var DOMProperty = _dereq_(10); +var ReactBrowserEventEmitter = _dereq_(26); +var ReactCurrentOwner = _dereq_(34); +var ReactDOMFeatureFlags = _dereq_(39); +var ReactElement = _dereq_(52); +var ReactEmptyComponentRegistry = _dereq_(55); +var ReactInstanceHandles = _dereq_(61); +var ReactInstanceMap = _dereq_(62); +var ReactMarkupChecksum = _dereq_(64); +var ReactPerf = _dereq_(71); +var ReactReconciler = _dereq_(76); +var ReactUpdateQueue = _dereq_(82); +var ReactUpdates = _dereq_(83); + +var assign = _dereq_(23); +var emptyObject = _dereq_(137); +var containsNode = _dereq_(133); +var instantiateReactComponent = _dereq_(118); +var invariant = _dereq_(144); +var setInnerHTML = _dereq_(124); +var shouldUpdateReactComponent = _dereq_(126); +var validateDOMNesting = _dereq_(128); +var warning = _dereq_(155); + +var ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME; +var nodeCache = {}; + +var ELEMENT_NODE_TYPE = 1; +var DOC_NODE_TYPE = 9; +var DOCUMENT_FRAGMENT_NODE_TYPE = 11; + +var ownerDocumentContextKey = '__ReactMount_ownerDocument$' + Math.random().toString(36).slice(2); + +/** Mapping from reactRootID to React component instance. */ +var instancesByReactRootID = {}; + +/** Mapping from reactRootID to `container` nodes. */ +var containersByReactRootID = {}; + +if ("development" !== 'production') { + /** __DEV__-only mapping from reactRootID to root elements. */ + var rootElementsByReactRootID = {}; +} + +// Used to store breadth-first search state in findComponentRoot. +var findComponentRootReusableArray = []; + +/** + * Finds the index of the first character + * that's not common between the two given strings. + * + * @return {number} the index of the character where the strings diverge + */ +function firstDifferenceIndex(string1, string2) { + var minLen = Math.min(string1.length, string2.length); + for (var i = 0; i < minLen; i++) { + if (string1.charAt(i) !== string2.charAt(i)) { + return i; + } + } + return string1.length === string2.length ? -1 : minLen; +} + +/** + * @param {DOMElement|DOMDocument} container DOM element that may contain + * a React component + * @return {?*} DOM element that may have the reactRoot ID, or null. + */ +function getReactRootElementInContainer(container) { + if (!container) { + return null; + } + + if (container.nodeType === DOC_NODE_TYPE) { + return container.documentElement; + } else { + return container.firstChild; + } +} + +/** + * @param {DOMElement} container DOM element that may contain a React component. + * @return {?string} A "reactRoot" ID, if a React component is rendered. + */ +function getReactRootID(container) { + var rootElement = getReactRootElementInContainer(container); + return rootElement && ReactMount.getID(rootElement); +} + +/** + * Accessing node[ATTR_NAME] or calling getAttribute(ATTR_NAME) on a form + * element can return its control whose name or ID equals ATTR_NAME. All + * DOM nodes support `getAttributeNode` but this can also get called on + * other objects so just return '' if we're given something other than a + * DOM node (such as window). + * + * @param {?DOMElement|DOMWindow|DOMDocument|DOMTextNode} node DOM node. + * @return {string} ID of the supplied `domNode`. + */ +function getID(node) { + var id = internalGetID(node); + if (id) { + if (nodeCache.hasOwnProperty(id)) { + var cached = nodeCache[id]; + if (cached !== node) { + !!isValid(cached, id) ? "development" !== 'production' ? invariant(false, 'ReactMount: Two valid but unequal nodes with the same `%s`: %s', ATTR_NAME, id) : invariant(false) : undefined; + + nodeCache[id] = node; + } + } else { + nodeCache[id] = node; + } + } + + return id; +} + +function internalGetID(node) { + // If node is something like a window, document, or text node, none of + // which support attributes or a .getAttribute method, gracefully return + // the empty string, as if the attribute were missing. + return node && node.getAttribute && node.getAttribute(ATTR_NAME) || ''; +} + +/** + * Sets the React-specific ID of the given node. + * + * @param {DOMElement} node The DOM node whose ID will be set. + * @param {string} id The value of the ID attribute. + */ +function setID(node, id) { + var oldID = internalGetID(node); + if (oldID !== id) { + delete nodeCache[oldID]; + } + node.setAttribute(ATTR_NAME, id); + nodeCache[id] = node; +} + +/** + * Finds the node with the supplied React-generated DOM ID. + * + * @param {string} id A React-generated DOM ID. + * @return {DOMElement} DOM node with the suppled `id`. + * @internal + */ +function getNode(id) { + if (!nodeCache.hasOwnProperty(id) || !isValid(nodeCache[id], id)) { + nodeCache[id] = ReactMount.findReactNodeByID(id); + } + return nodeCache[id]; +} + +/** + * Finds the node with the supplied public React instance. + * + * @param {*} instance A public React instance. + * @return {?DOMElement} DOM node with the suppled `id`. + * @internal + */ +function getNodeFromInstance(instance) { + var id = ReactInstanceMap.get(instance)._rootNodeID; + if (ReactEmptyComponentRegistry.isNullComponentID(id)) { + return null; + } + if (!nodeCache.hasOwnProperty(id) || !isValid(nodeCache[id], id)) { + nodeCache[id] = ReactMount.findReactNodeByID(id); + } + return nodeCache[id]; +} + +/** + * A node is "valid" if it is contained by a currently mounted container. + * + * This means that the node does not have to be contained by a document in + * order to be considered valid. + * + * @param {?DOMElement} node The candidate DOM node. + * @param {string} id The expected ID of the node. + * @return {boolean} Whether the node is contained by a mounted container. + */ +function isValid(node, id) { + if (node) { + !(internalGetID(node) === id) ? "development" !== 'production' ? invariant(false, 'ReactMount: Unexpected modification of `%s`', ATTR_NAME) : invariant(false) : undefined; + + var container = ReactMount.findReactContainerForID(id); + if (container && containsNode(container, node)) { + return true; + } + } + + return false; +} + +/** + * Causes the cache to forget about one React-specific ID. + * + * @param {string} id The ID to forget. + */ +function purgeID(id) { + delete nodeCache[id]; +} + +var deepestNodeSoFar = null; +function findDeepestCachedAncestorImpl(ancestorID) { + var ancestor = nodeCache[ancestorID]; + if (ancestor && isValid(ancestor, ancestorID)) { + deepestNodeSoFar = ancestor; + } else { + // This node isn't populated in the cache, so presumably none of its + // descendants are. Break out of the loop. + return false; + } +} + +/** + * Return the deepest cached node whose ID is a prefix of `targetID`. + */ +function findDeepestCachedAncestor(targetID) { + deepestNodeSoFar = null; + ReactInstanceHandles.traverseAncestors(targetID, findDeepestCachedAncestorImpl); + + var foundNode = deepestNodeSoFar; + deepestNodeSoFar = null; + return foundNode; +} + +/** + * Mounts this component and inserts it into the DOM. + * + * @param {ReactComponent} componentInstance The instance to mount. + * @param {string} rootID DOM ID of the root node. + * @param {DOMElement} container DOM element to mount into. + * @param {ReactReconcileTransaction} transaction + * @param {boolean} shouldReuseMarkup If true, do not insert markup + */ +function mountComponentIntoNode(componentInstance, rootID, container, transaction, shouldReuseMarkup, context) { + if (ReactDOMFeatureFlags.useCreateElement) { + context = assign({}, context); + if (container.nodeType === DOC_NODE_TYPE) { + context[ownerDocumentContextKey] = container; + } else { + context[ownerDocumentContextKey] = container.ownerDocument; + } + } + if ("development" !== 'production') { + if (context === emptyObject) { + context = {}; + } + var tag = container.nodeName.toLowerCase(); + context[validateDOMNesting.ancestorInfoContextKey] = validateDOMNesting.updatedAncestorInfo(null, tag, null); + } + var markup = ReactReconciler.mountComponent(componentInstance, rootID, transaction, context); + componentInstance._renderedComponent._topLevelWrapper = componentInstance; + ReactMount._mountImageIntoNode(markup, container, shouldReuseMarkup, transaction); +} + +/** + * Batched mount. + * + * @param {ReactComponent} componentInstance The instance to mount. + * @param {string} rootID DOM ID of the root node. + * @param {DOMElement} container DOM element to mount into. + * @param {boolean} shouldReuseMarkup If true, do not insert markup + */ +function batchedMountComponentIntoNode(componentInstance, rootID, container, shouldReuseMarkup, context) { + var transaction = ReactUpdates.ReactReconcileTransaction.getPooled( + /* forceHTML */shouldReuseMarkup); + transaction.perform(mountComponentIntoNode, null, componentInstance, rootID, container, transaction, shouldReuseMarkup, context); + ReactUpdates.ReactReconcileTransaction.release(transaction); +} + +/** + * Unmounts a component and removes it from the DOM. + * + * @param {ReactComponent} instance React component instance. + * @param {DOMElement} container DOM element to unmount from. + * @final + * @internal + * @see {ReactMount.unmountComponentAtNode} + */ +function unmountComponentFromNode(instance, container) { + ReactReconciler.unmountComponent(instance); + + if (container.nodeType === DOC_NODE_TYPE) { + container = container.documentElement; + } + + // http://jsperf.com/emptying-a-node + while (container.lastChild) { + container.removeChild(container.lastChild); + } +} + +/** + * True if the supplied DOM node has a direct React-rendered child that is + * not a React root element. Useful for warning in `render`, + * `unmountComponentAtNode`, etc. + * + * @param {?DOMElement} node The candidate DOM node. + * @return {boolean} True if the DOM element contains a direct child that was + * rendered by React but is not a root element. + * @internal + */ +function hasNonRootReactChild(node) { + var reactRootID = getReactRootID(node); + return reactRootID ? reactRootID !== ReactInstanceHandles.getReactRootIDFromNodeID(reactRootID) : false; +} + +/** + * Returns the first (deepest) ancestor of a node which is rendered by this copy + * of React. + */ +function findFirstReactDOMImpl(node) { + // This node might be from another React instance, so we make sure not to + // examine the node cache here + for (; node && node.parentNode !== node; node = node.parentNode) { + if (node.nodeType !== 1) { + // Not a DOMElement, therefore not a React component + continue; + } + var nodeID = internalGetID(node); + if (!nodeID) { + continue; + } + var reactRootID = ReactInstanceHandles.getReactRootIDFromNodeID(nodeID); + + // If containersByReactRootID contains the container we find by crawling up + // the tree, we know that this instance of React rendered the node. + // nb. isValid's strategy (with containsNode) does not work because render + // trees may be nested and we don't want a false positive in that case. + var current = node; + var lastID; + do { + lastID = internalGetID(current); + current = current.parentNode; + if (current == null) { + // The passed-in node has been detached from the container it was + // originally rendered into. + return null; + } + } while (lastID !== reactRootID); + + if (current === containersByReactRootID[reactRootID]) { + return node; + } + } + return null; +} + +/** + * Temporary (?) hack so that we can store all top-level pending updates on + * composites instead of having to worry about different types of components + * here. + */ +var TopLevelWrapper = function () {}; +TopLevelWrapper.prototype.isReactComponent = {}; +if ("development" !== 'production') { + TopLevelWrapper.displayName = 'TopLevelWrapper'; +} +TopLevelWrapper.prototype.render = function () { + // this.props is actually a ReactElement + return this.props; +}; + +/** + * Mounting is the process of initializing a React component by creating its + * representative DOM elements and inserting them into a supplied `container`. + * Any prior content inside `container` is destroyed in the process. + * + * ReactMount.render( + * component, + * document.getElementById('container') + * ); + * + * <div id="container"> <-- Supplied `container`. + * <div data-reactid=".3"> <-- Rendered reactRoot of React + * // ... component. + * </div> + * </div> + * + * Inside of `container`, the first element rendered is the "reactRoot". + */ +var ReactMount = { + + TopLevelWrapper: TopLevelWrapper, + + /** Exposed for debugging purposes **/ + _instancesByReactRootID: instancesByReactRootID, + + /** + * This is a hook provided to support rendering React components while + * ensuring that the apparent scroll position of its `container` does not + * change. + * + * @param {DOMElement} container The `container` being rendered into. + * @param {function} renderCallback This must be called once to do the render. + */ + scrollMonitor: function (container, renderCallback) { + renderCallback(); + }, + + /** + * Take a component that's already mounted into the DOM and replace its props + * @param {ReactComponent} prevComponent component instance already in the DOM + * @param {ReactElement} nextElement component instance to render + * @param {DOMElement} container container to render into + * @param {?function} callback function triggered on completion + */ + _updateRootComponent: function (prevComponent, nextElement, container, callback) { + ReactMount.scrollMonitor(container, function () { + ReactUpdateQueue.enqueueElementInternal(prevComponent, nextElement); + if (callback) { + ReactUpdateQueue.enqueueCallbackInternal(prevComponent, callback); + } + }); + + if ("development" !== 'production') { + // Record the root element in case it later gets transplanted. + rootElementsByReactRootID[getReactRootID(container)] = getReactRootElementInContainer(container); + } + + return prevComponent; + }, + + /** + * Register a component into the instance map and starts scroll value + * monitoring + * @param {ReactComponent} nextComponent component instance to render + * @param {DOMElement} container container to render into + * @return {string} reactRoot ID prefix + */ + _registerComponent: function (nextComponent, container) { + !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? "development" !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : invariant(false) : undefined; + + ReactBrowserEventEmitter.ensureScrollValueMonitoring(); + + var reactRootID = ReactMount.registerContainer(container); + instancesByReactRootID[reactRootID] = nextComponent; + return reactRootID; + }, + + /** + * Render a new component into the DOM. + * @param {ReactElement} nextElement element to render + * @param {DOMElement} container container to render into + * @param {boolean} shouldReuseMarkup if we should skip the markup insertion + * @return {ReactComponent} nextComponent + */ + _renderNewRootComponent: function (nextElement, container, shouldReuseMarkup, context) { + // Various parts of our code (such as ReactCompositeComponent's + // _renderValidatedComponent) assume that calls to render aren't nested; + // verify that that's the case. + "development" !== 'production' ? warning(ReactCurrentOwner.current == null, '_renderNewRootComponent(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from ' + 'render is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : undefined; + + var componentInstance = instantiateReactComponent(nextElement, null); + var reactRootID = ReactMount._registerComponent(componentInstance, container); + + // The initial render is synchronous but any updates that happen during + // rendering, in componentWillMount or componentDidMount, will be batched + // according to the current batching strategy. + + ReactUpdates.batchedUpdates(batchedMountComponentIntoNode, componentInstance, reactRootID, container, shouldReuseMarkup, context); + + if ("development" !== 'production') { + // Record the root element in case it later gets transplanted. + rootElementsByReactRootID[reactRootID] = getReactRootElementInContainer(container); + } + + return componentInstance; + }, + + /** + * Renders a React component into the DOM in the supplied `container`. + * + * If the React component was previously rendered into `container`, this will + * perform an update on it and only mutate the DOM as necessary to reflect the + * latest React component. + * + * @param {ReactComponent} parentComponent The conceptual parent of this render tree. + * @param {ReactElement} nextElement Component element to render. + * @param {DOMElement} container DOM element to render into. + * @param {?function} callback function triggered on completion + * @return {ReactComponent} Component instance rendered in `container`. + */ + renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) { + !(parentComponent != null && parentComponent._reactInternalInstance != null) ? "development" !== 'production' ? invariant(false, 'parentComponent must be a valid React Component') : invariant(false) : undefined; + return ReactMount._renderSubtreeIntoContainer(parentComponent, nextElement, container, callback); + }, + + _renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) { + !ReactElement.isValidElement(nextElement) ? "development" !== 'production' ? invariant(false, 'ReactDOM.render(): Invalid component element.%s', typeof nextElement === 'string' ? ' Instead of passing an element string, make sure to instantiate ' + 'it by passing it to React.createElement.' : typeof nextElement === 'function' ? ' Instead of passing a component class, make sure to instantiate ' + 'it by passing it to React.createElement.' : + // Check if it quacks like an element + nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : invariant(false) : undefined; + + "development" !== 'production' ? warning(!container || !container.tagName || container.tagName.toUpperCase() !== 'BODY', 'render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.') : undefined; + + var nextWrappedElement = new ReactElement(TopLevelWrapper, null, null, null, null, null, nextElement); + + var prevComponent = instancesByReactRootID[getReactRootID(container)]; + + if (prevComponent) { + var prevWrappedElement = prevComponent._currentElement; + var prevElement = prevWrappedElement.props; + if (shouldUpdateReactComponent(prevElement, nextElement)) { + var publicInst = prevComponent._renderedComponent.getPublicInstance(); + var updatedCallback = callback && function () { + callback.call(publicInst); + }; + ReactMount._updateRootComponent(prevComponent, nextWrappedElement, container, updatedCallback); + return publicInst; + } else { + ReactMount.unmountComponentAtNode(container); + } + } + + var reactRootElement = getReactRootElementInContainer(container); + var containerHasReactMarkup = reactRootElement && !!internalGetID(reactRootElement); + var containerHasNonRootReactChild = hasNonRootReactChild(container); + + if ("development" !== 'production') { + "development" !== 'production' ? warning(!containerHasNonRootReactChild, 'render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.') : undefined; + + if (!containerHasReactMarkup || reactRootElement.nextSibling) { + var rootElementSibling = reactRootElement; + while (rootElementSibling) { + if (internalGetID(rootElementSibling)) { + "development" !== 'production' ? warning(false, 'render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.') : undefined; + break; + } + rootElementSibling = rootElementSibling.nextSibling; + } + } + } + + var shouldReuseMarkup = containerHasReactMarkup && !prevComponent && !containerHasNonRootReactChild; + var component = ReactMount._renderNewRootComponent(nextWrappedElement, container, shouldReuseMarkup, parentComponent != null ? parentComponent._reactInternalInstance._processChildContext(parentComponent._reactInternalInstance._context) : emptyObject)._renderedComponent.getPublicInstance(); + if (callback) { + callback.call(component); + } + return component; + }, + + /** + * Renders a React component into the DOM in the supplied `container`. + * + * If the React component was previously rendered into `container`, this will + * perform an update on it and only mutate the DOM as necessary to reflect the + * latest React component. + * + * @param {ReactElement} nextElement Component element to render. + * @param {DOMElement} container DOM element to render into. + * @param {?function} callback function triggered on completion + * @return {ReactComponent} Component instance rendered in `container`. + */ + render: function (nextElement, container, callback) { + return ReactMount._renderSubtreeIntoContainer(null, nextElement, container, callback); + }, + + /** + * Registers a container node into which React components will be rendered. + * This also creates the "reactRoot" ID that will be assigned to the element + * rendered within. + * + * @param {DOMElement} container DOM element to register as a container. + * @return {string} The "reactRoot" ID of elements rendered within. + */ + registerContainer: function (container) { + var reactRootID = getReactRootID(container); + if (reactRootID) { + // If one exists, make sure it is a valid "reactRoot" ID. + reactRootID = ReactInstanceHandles.getReactRootIDFromNodeID(reactRootID); + } + if (!reactRootID) { + // No valid "reactRoot" ID found, create one. + reactRootID = ReactInstanceHandles.createReactRootID(); + } + containersByReactRootID[reactRootID] = container; + return reactRootID; + }, + + /** + * Unmounts and destroys the React component rendered in the `container`. + * + * @param {DOMElement} container DOM element containing a React component. + * @return {boolean} True if a component was found in and unmounted from + * `container` + */ + unmountComponentAtNode: function (container) { + // Various parts of our code (such as ReactCompositeComponent's + // _renderValidatedComponent) assume that calls to render aren't nested; + // verify that that's the case. (Strictly speaking, unmounting won't cause a + // render but we still don't expect to be in a render call here.) + "development" !== 'production' ? warning(ReactCurrentOwner.current == null, 'unmountComponentAtNode(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from render ' + 'is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : undefined; + + !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? "development" !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : invariant(false) : undefined; + + var reactRootID = getReactRootID(container); + var component = instancesByReactRootID[reactRootID]; + if (!component) { + // Check if the node being unmounted was rendered by React, but isn't a + // root node. + var containerHasNonRootReactChild = hasNonRootReactChild(container); + + // Check if the container itself is a React root node. + var containerID = internalGetID(container); + var isContainerReactRoot = containerID && containerID === ReactInstanceHandles.getReactRootIDFromNodeID(containerID); + + if ("development" !== 'production') { + "development" !== 'production' ? warning(!containerHasNonRootReactChild, 'unmountComponentAtNode(): The node you\'re attempting to unmount ' + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : undefined; + } + + return false; + } + ReactUpdates.batchedUpdates(unmountComponentFromNode, component, container); + delete instancesByReactRootID[reactRootID]; + delete containersByReactRootID[reactRootID]; + if ("development" !== 'production') { + delete rootElementsByReactRootID[reactRootID]; + } + return true; + }, + + /** + * Finds the container DOM element that contains React component to which the + * supplied DOM `id` belongs. + * + * @param {string} id The ID of an element rendered by a React component. + * @return {?DOMElement} DOM element that contains the `id`. + */ + findReactContainerForID: function (id) { + var reactRootID = ReactInstanceHandles.getReactRootIDFromNodeID(id); + var container = containersByReactRootID[reactRootID]; + + if ("development" !== 'production') { + var rootElement = rootElementsByReactRootID[reactRootID]; + if (rootElement && rootElement.parentNode !== container) { + "development" !== 'production' ? warning( + // Call internalGetID here because getID calls isValid which calls + // findReactContainerForID (this function). + internalGetID(rootElement) === reactRootID, 'ReactMount: Root element ID differed from reactRootID.') : undefined; + var containerChild = container.firstChild; + if (containerChild && reactRootID === internalGetID(containerChild)) { + // If the container has a new child with the same ID as the old + // root element, then rootElementsByReactRootID[reactRootID] is + // just stale and needs to be updated. The case that deserves a + // warning is when the container is empty. + rootElementsByReactRootID[reactRootID] = containerChild; + } else { + "development" !== 'production' ? warning(false, 'ReactMount: Root element has been removed from its original ' + 'container. New container: %s', rootElement.parentNode) : undefined; + } + } + } + + return container; + }, + + /** + * Finds an element rendered by React with the supplied ID. + * + * @param {string} id ID of a DOM node in the React component. + * @return {DOMElement} Root DOM node of the React component. + */ + findReactNodeByID: function (id) { + var reactRoot = ReactMount.findReactContainerForID(id); + return ReactMount.findComponentRoot(reactRoot, id); + }, + + /** + * Traverses up the ancestors of the supplied node to find a node that is a + * DOM representation of a React component rendered by this copy of React. + * + * @param {*} node + * @return {?DOMEventTarget} + * @internal + */ + getFirstReactDOM: function (node) { + return findFirstReactDOMImpl(node); + }, + + /** + * Finds a node with the supplied `targetID` inside of the supplied + * `ancestorNode`. Exploits the ID naming scheme to perform the search + * quickly. + * + * @param {DOMEventTarget} ancestorNode Search from this root. + * @pararm {string} targetID ID of the DOM representation of the component. + * @return {DOMEventTarget} DOM node with the supplied `targetID`. + * @internal + */ + findComponentRoot: function (ancestorNode, targetID) { + var firstChildren = findComponentRootReusableArray; + var childIndex = 0; + + var deepestAncestor = findDeepestCachedAncestor(targetID) || ancestorNode; + + if ("development" !== 'production') { + // This will throw on the next line; give an early warning + "development" !== 'production' ? warning(deepestAncestor != null, 'React can\'t find the root component node for data-reactid value ' + '`%s`. If you\'re seeing this message, it probably means that ' + 'you\'ve loaded two copies of React on the page. At this time, only ' + 'a single copy of React can be loaded at a time.', targetID) : undefined; + } + + firstChildren[0] = deepestAncestor.firstChild; + firstChildren.length = 1; + + while (childIndex < firstChildren.length) { + var child = firstChildren[childIndex++]; + var targetChild; + + while (child) { + var childID = ReactMount.getID(child); + if (childID) { + // Even if we find the node we're looking for, we finish looping + // through its siblings to ensure they're cached so that we don't have + // to revisit this node again. Otherwise, we make n^2 calls to getID + // when visiting the many children of a single node in order. + + if (targetID === childID) { + targetChild = child; + } else if (ReactInstanceHandles.isAncestorIDOf(childID, targetID)) { + // If we find a child whose ID is an ancestor of the given ID, + // then we can be sure that we only want to search the subtree + // rooted at this child, so we can throw out the rest of the + // search state. + firstChildren.length = childIndex = 0; + firstChildren.push(child.firstChild); + } + } else { + // If this child had no ID, then there's a chance that it was + // injected automatically by the browser, as when a `<table>` + // element sprouts an extra `<tbody>` child as a side effect of + // `.innerHTML` parsing. Optimistically continue down this + // branch, but not before examining the other siblings. + firstChildren.push(child.firstChild); + } + + child = child.nextSibling; + } + + if (targetChild) { + // Emptying firstChildren/findComponentRootReusableArray is + // not necessary for correctness, but it helps the GC reclaim + // any nodes that were left at the end of the search. + firstChildren.length = 0; + + return targetChild; + } + } + + firstChildren.length = 0; + + !false ? "development" !== 'production' ? invariant(false, 'findComponentRoot(..., %s): Unable to find element. This probably ' + 'means the DOM was unexpectedly mutated (e.g., by the browser), ' + 'usually due to forgetting a <tbody> when using tables, nesting tags ' + 'like <form>, <p>, or <a>, or using non-SVG elements in an <svg> ' + 'parent. ' + 'Try inspecting the child nodes of the element with React ID `%s`.', targetID, ReactMount.getID(ancestorNode)) : invariant(false) : undefined; + }, + + _mountImageIntoNode: function (markup, container, shouldReuseMarkup, transaction) { + !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? "development" !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : invariant(false) : undefined; + + if (shouldReuseMarkup) { + var rootElement = getReactRootElementInContainer(container); + if (ReactMarkupChecksum.canReuseMarkup(markup, rootElement)) { + return; + } else { + var checksum = rootElement.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME); + rootElement.removeAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME); + + var rootMarkup = rootElement.outerHTML; + rootElement.setAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME, checksum); + + var normalizedMarkup = markup; + if ("development" !== 'production') { + // because rootMarkup is retrieved from the DOM, various normalizations + // will have occurred which will not be present in `markup`. Here, + // insert markup into a <div> or <iframe> depending on the container + // type to perform the same normalizations before comparing. + var normalizer; + if (container.nodeType === ELEMENT_NODE_TYPE) { + normalizer = document.createElement('div'); + normalizer.innerHTML = markup; + normalizedMarkup = normalizer.innerHTML; + } else { + normalizer = document.createElement('iframe'); + document.body.appendChild(normalizer); + normalizer.contentDocument.write(markup); + normalizedMarkup = normalizer.contentDocument.documentElement.outerHTML; + document.body.removeChild(normalizer); + } + } + + var diffIndex = firstDifferenceIndex(normalizedMarkup, rootMarkup); + var difference = ' (client) ' + normalizedMarkup.substring(diffIndex - 20, diffIndex + 20) + '\n (server) ' + rootMarkup.substring(diffIndex - 20, diffIndex + 20); + + !(container.nodeType !== DOC_NODE_TYPE) ? "development" !== 'production' ? invariant(false, 'You\'re trying to render a component to the document using ' + 'server rendering but the checksum was invalid. This usually ' + 'means you rendered a different component type or props on ' + 'the client from the one on the server, or your render() ' + 'methods are impure. React cannot handle this case due to ' + 'cross-browser quirks by rendering at the document root. You ' + 'should look for environment dependent code in your components ' + 'and ensure the props are the same client and server side:\n%s', difference) : invariant(false) : undefined; + + if ("development" !== 'production') { + "development" !== 'production' ? warning(false, 'React attempted to reuse markup in a container but the ' + 'checksum was invalid. This generally means that you are ' + 'using server rendering and the markup generated on the ' + 'server was not what the client was expecting. React injected ' + 'new markup to compensate which works but you have lost many ' + 'of the benefits of server rendering. Instead, figure out ' + 'why the markup being generated is different on the client ' + 'or server:\n%s', difference) : undefined; + } + } + } + + !(container.nodeType !== DOC_NODE_TYPE) ? "development" !== 'production' ? invariant(false, 'You\'re trying to render a component to the document but ' + 'you didn\'t use server rendering. We can\'t do this ' + 'without using server rendering due to cross-browser quirks. ' + 'See ReactDOMServer.renderToString() for server rendering.') : invariant(false) : undefined; + + if (transaction.useCreateElement) { + while (container.lastChild) { + container.removeChild(container.lastChild); + } + container.appendChild(markup); + } else { + setInnerHTML(container, markup); + } + }, + + ownerDocumentContextKey: ownerDocumentContextKey, + + /** + * React ID utilities. + */ + + getReactRootID: getReactRootID, + + getID: getID, + + setID: setID, + + getNode: getNode, + + getNodeFromInstance: getNodeFromInstance, + + isValid: isValid, + + purgeID: purgeID +}; + +ReactPerf.measureMethods(ReactMount, 'ReactMount', { + _renderNewRootComponent: '_renderNewRootComponent', + _mountImageIntoNode: '_mountImageIntoNode' +}); + +module.exports = ReactMount; +},{"10":10,"118":118,"124":124,"126":126,"128":128,"133":133,"137":137,"144":144,"155":155,"23":23,"26":26,"34":34,"39":39,"52":52,"55":55,"61":61,"62":62,"64":64,"71":71,"76":76,"82":82,"83":83}],66:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactMultiChild + * @typechecks static-only + */ + +'use strict'; + +var ReactComponentEnvironment = _dereq_(32); +var ReactMultiChildUpdateTypes = _dereq_(67); + +var ReactCurrentOwner = _dereq_(34); +var ReactReconciler = _dereq_(76); +var ReactChildReconciler = _dereq_(27); + +var flattenChildren = _dereq_(109); + +/** + * Updating children of a component may trigger recursive updates. The depth is + * used to batch recursive updates to render markup more efficiently. + * + * @type {number} + * @private + */ +var updateDepth = 0; + +/** + * Queue of update configuration objects. + * + * Each object has a `type` property that is in `ReactMultiChildUpdateTypes`. + * + * @type {array<object>} + * @private + */ +var updateQueue = []; + +/** + * Queue of markup to be rendered. + * + * @type {array<string>} + * @private + */ +var markupQueue = []; + +/** + * Enqueues markup to be rendered and inserted at a supplied index. + * + * @param {string} parentID ID of the parent component. + * @param {string} markup Markup that renders into an element. + * @param {number} toIndex Destination index. + * @private + */ +function enqueueInsertMarkup(parentID, markup, toIndex) { + // NOTE: Null values reduce hidden classes. + updateQueue.push({ + parentID: parentID, + parentNode: null, + type: ReactMultiChildUpdateTypes.INSERT_MARKUP, + markupIndex: markupQueue.push(markup) - 1, + content: null, + fromIndex: null, + toIndex: toIndex + }); +} + +/** + * Enqueues moving an existing element to another index. + * + * @param {string} parentID ID of the parent component. + * @param {number} fromIndex Source index of the existing element. + * @param {number} toIndex Destination index of the element. + * @private + */ +function enqueueMove(parentID, fromIndex, toIndex) { + // NOTE: Null values reduce hidden classes. + updateQueue.push({ + parentID: parentID, + parentNode: null, + type: ReactMultiChildUpdateTypes.MOVE_EXISTING, + markupIndex: null, + content: null, + fromIndex: fromIndex, + toIndex: toIndex + }); +} + +/** + * Enqueues removing an element at an index. + * + * @param {string} parentID ID of the parent component. + * @param {number} fromIndex Index of the element to remove. + * @private + */ +function enqueueRemove(parentID, fromIndex) { + // NOTE: Null values reduce hidden classes. + updateQueue.push({ + parentID: parentID, + parentNode: null, + type: ReactMultiChildUpdateTypes.REMOVE_NODE, + markupIndex: null, + content: null, + fromIndex: fromIndex, + toIndex: null + }); +} + +/** + * Enqueues setting the markup of a node. + * + * @param {string} parentID ID of the parent component. + * @param {string} markup Markup that renders into an element. + * @private + */ +function enqueueSetMarkup(parentID, markup) { + // NOTE: Null values reduce hidden classes. + updateQueue.push({ + parentID: parentID, + parentNode: null, + type: ReactMultiChildUpdateTypes.SET_MARKUP, + markupIndex: null, + content: markup, + fromIndex: null, + toIndex: null + }); +} + +/** + * Enqueues setting the text content. + * + * @param {string} parentID ID of the parent component. + * @param {string} textContent Text content to set. + * @private + */ +function enqueueTextContent(parentID, textContent) { + // NOTE: Null values reduce hidden classes. + updateQueue.push({ + parentID: parentID, + parentNode: null, + type: ReactMultiChildUpdateTypes.TEXT_CONTENT, + markupIndex: null, + content: textContent, + fromIndex: null, + toIndex: null + }); +} + +/** + * Processes any enqueued updates. + * + * @private + */ +function processQueue() { + if (updateQueue.length) { + ReactComponentEnvironment.processChildrenUpdates(updateQueue, markupQueue); + clearQueue(); + } +} + +/** + * Clears any enqueued updates. + * + * @private + */ +function clearQueue() { + updateQueue.length = 0; + markupQueue.length = 0; +} + +/** + * ReactMultiChild are capable of reconciling multiple children. + * + * @class ReactMultiChild + * @internal + */ +var ReactMultiChild = { + + /** + * Provides common functionality for components that must reconcile multiple + * children. This is used by `ReactDOMComponent` to mount, update, and + * unmount child components. + * + * @lends {ReactMultiChild.prototype} + */ + Mixin: { + + _reconcilerInstantiateChildren: function (nestedChildren, transaction, context) { + if ("development" !== 'production') { + if (this._currentElement) { + try { + ReactCurrentOwner.current = this._currentElement._owner; + return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context); + } finally { + ReactCurrentOwner.current = null; + } + } + } + return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context); + }, + + _reconcilerUpdateChildren: function (prevChildren, nextNestedChildrenElements, transaction, context) { + var nextChildren; + if ("development" !== 'production') { + if (this._currentElement) { + try { + ReactCurrentOwner.current = this._currentElement._owner; + nextChildren = flattenChildren(nextNestedChildrenElements); + } finally { + ReactCurrentOwner.current = null; + } + return ReactChildReconciler.updateChildren(prevChildren, nextChildren, transaction, context); + } + } + nextChildren = flattenChildren(nextNestedChildrenElements); + return ReactChildReconciler.updateChildren(prevChildren, nextChildren, transaction, context); + }, + + /** + * Generates a "mount image" for each of the supplied children. In the case + * of `ReactDOMComponent`, a mount image is a string of markup. + * + * @param {?object} nestedChildren Nested child maps. + * @return {array} An array of mounted representations. + * @internal + */ + mountChildren: function (nestedChildren, transaction, context) { + var children = this._reconcilerInstantiateChildren(nestedChildren, transaction, context); + this._renderedChildren = children; + var mountImages = []; + var index = 0; + for (var name in children) { + if (children.hasOwnProperty(name)) { + var child = children[name]; + // Inlined for performance, see `ReactInstanceHandles.createReactID`. + var rootID = this._rootNodeID + name; + var mountImage = ReactReconciler.mountComponent(child, rootID, transaction, context); + child._mountIndex = index++; + mountImages.push(mountImage); + } + } + return mountImages; + }, + + /** + * Replaces any rendered children with a text content string. + * + * @param {string} nextContent String of content. + * @internal + */ + updateTextContent: function (nextContent) { + updateDepth++; + var errorThrown = true; + try { + var prevChildren = this._renderedChildren; + // Remove any rendered children. + ReactChildReconciler.unmountChildren(prevChildren); + // TODO: The setTextContent operation should be enough + for (var name in prevChildren) { + if (prevChildren.hasOwnProperty(name)) { + this._unmountChild(prevChildren[name]); + } + } + // Set new text content. + this.setTextContent(nextContent); + errorThrown = false; + } finally { + updateDepth--; + if (!updateDepth) { + if (errorThrown) { + clearQueue(); + } else { + processQueue(); + } + } + } + }, + + /** + * Replaces any rendered children with a markup string. + * + * @param {string} nextMarkup String of markup. + * @internal + */ + updateMarkup: function (nextMarkup) { + updateDepth++; + var errorThrown = true; + try { + var prevChildren = this._renderedChildren; + // Remove any rendered children. + ReactChildReconciler.unmountChildren(prevChildren); + for (var name in prevChildren) { + if (prevChildren.hasOwnProperty(name)) { + this._unmountChildByName(prevChildren[name], name); + } + } + this.setMarkup(nextMarkup); + errorThrown = false; + } finally { + updateDepth--; + if (!updateDepth) { + if (errorThrown) { + clearQueue(); + } else { + processQueue(); + } + } + } + }, + + /** + * Updates the rendered children with new children. + * + * @param {?object} nextNestedChildrenElements Nested child element maps. + * @param {ReactReconcileTransaction} transaction + * @internal + */ + updateChildren: function (nextNestedChildrenElements, transaction, context) { + updateDepth++; + var errorThrown = true; + try { + this._updateChildren(nextNestedChildrenElements, transaction, context); + errorThrown = false; + } finally { + updateDepth--; + if (!updateDepth) { + if (errorThrown) { + clearQueue(); + } else { + processQueue(); + } + } + } + }, + + /** + * Improve performance by isolating this hot code path from the try/catch + * block in `updateChildren`. + * + * @param {?object} nextNestedChildrenElements Nested child element maps. + * @param {ReactReconcileTransaction} transaction + * @final + * @protected + */ + _updateChildren: function (nextNestedChildrenElements, transaction, context) { + var prevChildren = this._renderedChildren; + var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, transaction, context); + this._renderedChildren = nextChildren; + if (!nextChildren && !prevChildren) { + return; + } + var name; + // `nextIndex` will increment for each child in `nextChildren`, but + // `lastIndex` will be the last index visited in `prevChildren`. + var lastIndex = 0; + var nextIndex = 0; + for (name in nextChildren) { + if (!nextChildren.hasOwnProperty(name)) { + continue; + } + var prevChild = prevChildren && prevChildren[name]; + var nextChild = nextChildren[name]; + if (prevChild === nextChild) { + this.moveChild(prevChild, nextIndex, lastIndex); + lastIndex = Math.max(prevChild._mountIndex, lastIndex); + prevChild._mountIndex = nextIndex; + } else { + if (prevChild) { + // Update `lastIndex` before `_mountIndex` gets unset by unmounting. + lastIndex = Math.max(prevChild._mountIndex, lastIndex); + this._unmountChild(prevChild); + } + // The child must be instantiated before it's mounted. + this._mountChildByNameAtIndex(nextChild, name, nextIndex, transaction, context); + } + nextIndex++; + } + // Remove children that are no longer present. + for (name in prevChildren) { + if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) { + this._unmountChild(prevChildren[name]); + } + } + }, + + /** + * Unmounts all rendered children. This should be used to clean up children + * when this component is unmounted. + * + * @internal + */ + unmountChildren: function () { + var renderedChildren = this._renderedChildren; + ReactChildReconciler.unmountChildren(renderedChildren); + this._renderedChildren = null; + }, + + /** + * Moves a child component to the supplied index. + * + * @param {ReactComponent} child Component to move. + * @param {number} toIndex Destination index of the element. + * @param {number} lastIndex Last index visited of the siblings of `child`. + * @protected + */ + moveChild: function (child, toIndex, lastIndex) { + // If the index of `child` is less than `lastIndex`, then it needs to + // be moved. Otherwise, we do not need to move it because a child will be + // inserted or moved before `child`. + if (child._mountIndex < lastIndex) { + enqueueMove(this._rootNodeID, child._mountIndex, toIndex); + } + }, + + /** + * Creates a child component. + * + * @param {ReactComponent} child Component to create. + * @param {string} mountImage Markup to insert. + * @protected + */ + createChild: function (child, mountImage) { + enqueueInsertMarkup(this._rootNodeID, mountImage, child._mountIndex); + }, + + /** + * Removes a child component. + * + * @param {ReactComponent} child Child to remove. + * @protected + */ + removeChild: function (child) { + enqueueRemove(this._rootNodeID, child._mountIndex); + }, + + /** + * Sets this text content string. + * + * @param {string} textContent Text content to set. + * @protected + */ + setTextContent: function (textContent) { + enqueueTextContent(this._rootNodeID, textContent); + }, + + /** + * Sets this markup string. + * + * @param {string} markup Markup to set. + * @protected + */ + setMarkup: function (markup) { + enqueueSetMarkup(this._rootNodeID, markup); + }, + + /** + * Mounts a child with the supplied name. + * + * NOTE: This is part of `updateChildren` and is here for readability. + * + * @param {ReactComponent} child Component to mount. + * @param {string} name Name of the child. + * @param {number} index Index at which to insert the child. + * @param {ReactReconcileTransaction} transaction + * @private + */ + _mountChildByNameAtIndex: function (child, name, index, transaction, context) { + // Inlined for performance, see `ReactInstanceHandles.createReactID`. + var rootID = this._rootNodeID + name; + var mountImage = ReactReconciler.mountComponent(child, rootID, transaction, context); + child._mountIndex = index; + this.createChild(child, mountImage); + }, + + /** + * Unmounts a rendered child. + * + * NOTE: This is part of `updateChildren` and is here for readability. + * + * @param {ReactComponent} child Component to unmount. + * @private + */ + _unmountChild: function (child) { + this.removeChild(child); + child._mountIndex = null; + } + + } + +}; + +module.exports = ReactMultiChild; +},{"109":109,"27":27,"32":32,"34":34,"67":67,"76":76}],67:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactMultiChildUpdateTypes + */ + +'use strict'; + +var keyMirror = _dereq_(147); + +/** + * When a component's children are updated, a series of update configuration + * objects are created in order to batch and serialize the required changes. + * + * Enumerates all the possible types of update configurations. + * + * @internal + */ +var ReactMultiChildUpdateTypes = keyMirror({ + INSERT_MARKUP: null, + MOVE_EXISTING: null, + REMOVE_NODE: null, + SET_MARKUP: null, + TEXT_CONTENT: null +}); + +module.exports = ReactMultiChildUpdateTypes; +},{"147":147}],68:[function(_dereq_,module,exports){ +/** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactNativeComponent + */ + +'use strict'; + +var assign = _dereq_(23); +var invariant = _dereq_(144); + +var autoGenerateWrapperClass = null; +var genericComponentClass = null; +// This registry keeps track of wrapper classes around native tags. +var tagToComponentClass = {}; +var textComponentClass = null; + +var ReactNativeComponentInjection = { + // This accepts a class that receives the tag string. This is a catch all + // that can render any kind of tag. + injectGenericComponentClass: function (componentClass) { + genericComponentClass = componentClass; + }, + // This accepts a text component class that takes the text string to be + // rendered as props. + injectTextComponentClass: function (componentClass) { + textComponentClass = componentClass; + }, + // This accepts a keyed object with classes as values. Each key represents a + // tag. That particular tag will use this class instead of the generic one. + injectComponentClasses: function (componentClasses) { + assign(tagToComponentClass, componentClasses); + } +}; + +/** + * Get a composite component wrapper class for a specific tag. + * + * @param {ReactElement} element The tag for which to get the class. + * @return {function} The React class constructor function. + */ +function getComponentClassForElement(element) { + if (typeof element.type === 'function') { + return element.type; + } + var tag = element.type; + var componentClass = tagToComponentClass[tag]; + if (componentClass == null) { + tagToComponentClass[tag] = componentClass = autoGenerateWrapperClass(tag); + } + return componentClass; +} + +/** + * Get a native internal component class for a specific tag. + * + * @param {ReactElement} element The element to create. + * @return {function} The internal class constructor function. + */ +function createInternalComponent(element) { + !genericComponentClass ? "development" !== 'production' ? invariant(false, 'There is no registered component for the tag %s', element.type) : invariant(false) : undefined; + return new genericComponentClass(element.type, element.props); +} + +/** + * @param {ReactText} text + * @return {ReactComponent} + */ +function createInstanceForText(text) { + return new textComponentClass(text); +} + +/** + * @param {ReactComponent} component + * @return {boolean} + */ +function isTextComponent(component) { + return component instanceof textComponentClass; +} + +var ReactNativeComponent = { + getComponentClassForElement: getComponentClassForElement, + createInternalComponent: createInternalComponent, + createInstanceForText: createInstanceForText, + isTextComponent: isTextComponent, + injection: ReactNativeComponentInjection +}; + +module.exports = ReactNativeComponent; +},{"144":144,"23":23}],69:[function(_dereq_,module,exports){ +/** + * Copyright 2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactNoopUpdateQueue + */ + +'use strict'; + +var warning = _dereq_(155); + +function warnTDZ(publicInstance, callerName) { + if ("development" !== 'production') { + "development" !== 'production' ? warning(false, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, publicInstance.constructor && publicInstance.constructor.displayName || '') : undefined; + } +} + +/** + * This is the abstract API for an update queue. + */ +var ReactNoopUpdateQueue = { + + /** + * Checks whether or not this composite component is mounted. + * @param {ReactClass} publicInstance The instance we want to test. + * @return {boolean} True if mounted, false otherwise. + * @protected + * @final + */ + isMounted: function (publicInstance) { + return false; + }, + + /** + * Enqueue a callback that will be executed after all the pending updates + * have processed. + * + * @param {ReactClass} publicInstance The instance to use as `this` context. + * @param {?function} callback Called after state is updated. + * @internal + */ + enqueueCallback: function (publicInstance, callback) {}, + + /** + * Forces an update. This should only be invoked when it is known with + * certainty that we are **not** in a DOM transaction. + * + * You may want to call this when you know that some deeper aspect of the + * component's state has changed but `setState` was not called. + * + * This will not invoke `shouldComponentUpdate`, but it will invoke + * `componentWillUpdate` and `componentDidUpdate`. + * + * @param {ReactClass} publicInstance The instance that should rerender. + * @internal + */ + enqueueForceUpdate: function (publicInstance) { + warnTDZ(publicInstance, 'forceUpdate'); + }, + + /** + * Replaces all of the state. Always use this or `setState` to mutate state. + * You should treat `this.state` as immutable. + * + * There is no guarantee that `this.state` will be immediately updated, so + * accessing `this.state` after calling this method may return the old value. + * + * @param {ReactClass} publicInstance The instance that should rerender. + * @param {object} completeState Next state. + * @internal + */ + enqueueReplaceState: function (publicInstance, completeState) { + warnTDZ(publicInstance, 'replaceState'); + }, + + /** + * Sets a subset of the state. This only exists because _pendingState is + * internal. This provides a merging strategy that is not available to deep + * properties which is confusing. TODO: Expose pendingState or don't use it + * during the merge. + * + * @param {ReactClass} publicInstance The instance that should rerender. + * @param {object} partialState Next partial state to be merged with state. + * @internal + */ + enqueueSetState: function (publicInstance, partialState) { + warnTDZ(publicInstance, 'setState'); + }, + + /** + * Sets a subset of the props. + * + * @param {ReactClass} publicInstance The instance that should rerender. + * @param {object} partialProps Subset of the next props. + * @internal + */ + enqueueSetProps: function (publicInstance, partialProps) { + warnTDZ(publicInstance, 'setProps'); + }, + + /** + * Replaces all of the props. + * + * @param {ReactClass} publicInstance The instance that should rerender. + * @param {object} props New props. + * @internal + */ + enqueueReplaceProps: function (publicInstance, props) { + warnTDZ(publicInstance, 'replaceProps'); + } + +}; + +module.exports = ReactNoopUpdateQueue; +},{"155":155}],70:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactOwner + */ + +'use strict'; + +var invariant = _dereq_(144); + +/** + * ReactOwners are capable of storing references to owned components. + * + * All components are capable of //being// referenced by owner components, but + * only ReactOwner components are capable of //referencing// owned components. + * The named reference is known as a "ref". + * + * Refs are available when mounted and updated during reconciliation. + * + * var MyComponent = React.createClass({ + * render: function() { + * return ( + * <div onClick={this.handleClick}> + * <CustomComponent ref="custom" /> + * </div> + * ); + * }, + * handleClick: function() { + * this.refs.custom.handleClick(); + * }, + * componentDidMount: function() { + * this.refs.custom.initialize(); + * } + * }); + * + * Refs should rarely be used. When refs are used, they should only be done to + * control data that is not handled by React's data flow. + * + * @class ReactOwner + */ +var ReactOwner = { + + /** + * @param {?object} object + * @return {boolean} True if `object` is a valid owner. + * @final + */ + isValidOwner: function (object) { + return !!(object && typeof object.attachRef === 'function' && typeof object.detachRef === 'function'); + }, + + /** + * Adds a component by ref to an owner component. + * + * @param {ReactComponent} component Component to reference. + * @param {string} ref Name by which to refer to the component. + * @param {ReactOwner} owner Component on which to record the ref. + * @final + * @internal + */ + addComponentAsRefTo: function (component, ref, owner) { + !ReactOwner.isValidOwner(owner) ? "development" !== 'production' ? invariant(false, 'addComponentAsRefTo(...): Only a ReactOwner can have refs. You might ' + 'be adding a ref to a component that was not created inside a component\'s ' + '`render` method, or you have multiple copies of React loaded ' + '(details: https://fb.me/react-refs-must-have-owner).') : invariant(false) : undefined; + owner.attachRef(ref, component); + }, + + /** + * Removes a component by ref from an owner component. + * + * @param {ReactComponent} component Component to dereference. + * @param {string} ref Name of the ref to remove. + * @param {ReactOwner} owner Component on which the ref is recorded. + * @final + * @internal + */ + removeComponentAsRefFrom: function (component, ref, owner) { + !ReactOwner.isValidOwner(owner) ? "development" !== 'production' ? invariant(false, 'removeComponentAsRefFrom(...): Only a ReactOwner can have refs. You might ' + 'be removing a ref to a component that was not created inside a component\'s ' + '`render` method, or you have multiple copies of React loaded ' + '(details: https://fb.me/react-refs-must-have-owner).') : invariant(false) : undefined; + // Check that `component` is still the current ref because we do not want to + // detach the ref if another component stole it. + if (owner.getPublicInstance().refs[ref] === component.getPublicInstance()) { + owner.detachRef(ref); + } + } + +}; + +module.exports = ReactOwner; +},{"144":144}],71:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactPerf + * @typechecks static-only + */ + +'use strict'; + +/** + * ReactPerf is a general AOP system designed to measure performance. This + * module only has the hooks: see ReactDefaultPerf for the analysis tool. + */ +var ReactPerf = { + /** + * Boolean to enable/disable measurement. Set to false by default to prevent + * accidental logging and perf loss. + */ + enableMeasure: false, + + /** + * Holds onto the measure function in use. By default, don't measure + * anything, but we'll override this if we inject a measure function. + */ + storedMeasure: _noMeasure, + + /** + * @param {object} object + * @param {string} objectName + * @param {object<string>} methodNames + */ + measureMethods: function (object, objectName, methodNames) { + if ("development" !== 'production') { + for (var key in methodNames) { + if (!methodNames.hasOwnProperty(key)) { + continue; + } + object[key] = ReactPerf.measure(objectName, methodNames[key], object[key]); + } + } + }, + + /** + * Use this to wrap methods you want to measure. Zero overhead in production. + * + * @param {string} objName + * @param {string} fnName + * @param {function} func + * @return {function} + */ + measure: function (objName, fnName, func) { + if ("development" !== 'production') { + var measuredFunc = null; + var wrapper = function () { + if (ReactPerf.enableMeasure) { + if (!measuredFunc) { + measuredFunc = ReactPerf.storedMeasure(objName, fnName, func); + } + return measuredFunc.apply(this, arguments); + } + return func.apply(this, arguments); + }; + wrapper.displayName = objName + '_' + fnName; + return wrapper; + } + return func; + }, + + injection: { + /** + * @param {function} measure + */ + injectMeasure: function (measure) { + ReactPerf.storedMeasure = measure; + } + } +}; + +/** + * Simply passes through the measured function, without measuring it. + * + * @param {string} objName + * @param {string} fnName + * @param {function} func + * @return {function} + */ +function _noMeasure(objName, fnName, func) { + return func; +} + +module.exports = ReactPerf; +},{}],72:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactPropTypeLocationNames + */ + +'use strict'; + +var ReactPropTypeLocationNames = {}; + +if ("development" !== 'production') { + ReactPropTypeLocationNames = { + prop: 'prop', + context: 'context', + childContext: 'child context' + }; +} + +module.exports = ReactPropTypeLocationNames; +},{}],73:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactPropTypeLocations + */ + +'use strict'; + +var keyMirror = _dereq_(147); + +var ReactPropTypeLocations = keyMirror({ + prop: null, + context: null, + childContext: null +}); + +module.exports = ReactPropTypeLocations; +},{"147":147}],74:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactPropTypes + */ + +'use strict'; + +var ReactElement = _dereq_(52); +var ReactPropTypeLocationNames = _dereq_(72); + +var emptyFunction = _dereq_(136); +var getIteratorFn = _dereq_(115); + +/** + * Collection of methods that allow declaration and validation of props that are + * supplied to React components. Example usage: + * + * var Props = require('ReactPropTypes'); + * var MyArticle = React.createClass({ + * propTypes: { + * // An optional string prop named "description". + * description: Props.string, + * + * // A required enum prop named "category". + * category: Props.oneOf(['News','Photos']).isRequired, + * + * // A prop named "dialog" that requires an instance of Dialog. + * dialog: Props.instanceOf(Dialog).isRequired + * }, + * render: function() { ... } + * }); + * + * A more formal specification of how these methods are used: + * + * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) + * decl := ReactPropTypes.{type}(.isRequired)? + * + * Each and every declaration produces a function with the same signature. This + * allows the creation of custom validation functions. For example: + * + * var MyLink = React.createClass({ + * propTypes: { + * // An optional string or URI prop named "href". + * href: function(props, propName, componentName) { + * var propValue = props[propName]; + * if (propValue != null && typeof propValue !== 'string' && + * !(propValue instanceof URI)) { + * return new Error( + * 'Expected a string or an URI for ' + propName + ' in ' + + * componentName + * ); + * } + * } + * }, + * render: function() {...} + * }); + * + * @internal + */ + +var ANONYMOUS = '<<anonymous>>'; + +var ReactPropTypes = { + array: createPrimitiveTypeChecker('array'), + bool: createPrimitiveTypeChecker('boolean'), + func: createPrimitiveTypeChecker('function'), + number: createPrimitiveTypeChecker('number'), + object: createPrimitiveTypeChecker('object'), + string: createPrimitiveTypeChecker('string'), + + any: createAnyTypeChecker(), + arrayOf: createArrayOfTypeChecker, + element: createElementTypeChecker(), + instanceOf: createInstanceTypeChecker, + node: createNodeChecker(), + objectOf: createObjectOfTypeChecker, + oneOf: createEnumTypeChecker, + oneOfType: createUnionTypeChecker, + shape: createShapeTypeChecker +}; + +function createChainableTypeChecker(validate) { + function checkType(isRequired, props, propName, componentName, location, propFullName) { + componentName = componentName || ANONYMOUS; + propFullName = propFullName || propName; + if (props[propName] == null) { + var locationName = ReactPropTypeLocationNames[location]; + if (isRequired) { + return new Error('Required ' + locationName + ' `' + propFullName + '` was not specified in ' + ('`' + componentName + '`.')); + } + return null; + } else { + return validate(props, propName, componentName, location, propFullName); + } + } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + + return chainedCheckType; +} + +function createPrimitiveTypeChecker(expectedType) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== expectedType) { + var locationName = ReactPropTypeLocationNames[location]; + // `propValue` being instance of, say, date/regexp, pass the 'object' + // check, but we can offer a more precise error message here rather than + // 'of type `object`'. + var preciseType = getPreciseType(propValue); + + return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); +} + +function createAnyTypeChecker() { + return createChainableTypeChecker(emptyFunction.thatReturns(null)); +} + +function createArrayOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!Array.isArray(propValue)) { + var locationName = ReactPropTypeLocationNames[location]; + var propType = getPropType(propValue); + return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); + } + for (var i = 0; i < propValue.length; i++) { + var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']'); + if (error instanceof Error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); +} + +function createElementTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!ReactElement.isValidElement(props[propName])) { + var locationName = ReactPropTypeLocationNames[location]; + return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a single ReactElement.')); + } + return null; + } + return createChainableTypeChecker(validate); +} + +function createInstanceTypeChecker(expectedClass) { + function validate(props, propName, componentName, location, propFullName) { + if (!(props[propName] instanceof expectedClass)) { + var locationName = ReactPropTypeLocationNames[location]; + var expectedClassName = expectedClass.name || ANONYMOUS; + var actualClassName = getClassName(props[propName]); + return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); +} + +function createEnumTypeChecker(expectedValues) { + if (!Array.isArray(expectedValues)) { + return createChainableTypeChecker(function () { + return new Error('Invalid argument supplied to oneOf, expected an instance of array.'); + }); + } + + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (propValue === expectedValues[i]) { + return null; + } + } + + var locationName = ReactPropTypeLocationNames[location]; + var valuesString = JSON.stringify(expectedValues); + return new Error('Invalid ' + locationName + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); + } + return createChainableTypeChecker(validate); +} + +function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + var locationName = ReactPropTypeLocationNames[location]; + return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); + } + for (var key in propValue) { + if (propValue.hasOwnProperty(key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key); + if (error instanceof Error) { + return error; + } + } + } + return null; + } + return createChainableTypeChecker(validate); +} + +function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + return createChainableTypeChecker(function () { + return new Error('Invalid argument supplied to oneOfType, expected an instance of array.'); + }); + } + + function validate(props, propName, componentName, location, propFullName) { + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (checker(props, propName, componentName, location, propFullName) == null) { + return null; + } + } + + var locationName = ReactPropTypeLocationNames[location]; + return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); + } + return createChainableTypeChecker(validate); +} + +function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + var locationName = ReactPropTypeLocationNames[location]; + return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); + } + return null; + } + return createChainableTypeChecker(validate); +} + +function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + var locationName = ReactPropTypeLocationNames[location]; + return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (!checker) { + continue; + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); +} + +function isNode(propValue) { + switch (typeof propValue) { + case 'number': + case 'string': + case 'undefined': + return true; + case 'boolean': + return !propValue; + case 'object': + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + if (propValue === null || ReactElement.isValidElement(propValue)) { + return true; + } + + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } + + return true; + default: + return false; + } +} + +// Equivalent of `typeof` but with special handling for array and regexp. +function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return 'array'; + } + if (propValue instanceof RegExp) { + // Old webkits (at least until Android 4.0) return 'function' rather than + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ + // passes PropTypes.object. + return 'object'; + } + return propType; +} + +// This handles more types than `getPropType`. Only used for error messages. +// See `createPrimitiveTypeChecker`. +function getPreciseType(propValue) { + var propType = getPropType(propValue); + if (propType === 'object') { + if (propValue instanceof Date) { + return 'date'; + } else if (propValue instanceof RegExp) { + return 'regexp'; + } + } + return propType; +} + +// Returns class name of the object, if any. +function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return '<<anonymous>>'; + } + return propValue.constructor.name; +} + +module.exports = ReactPropTypes; +},{"115":115,"136":136,"52":52,"72":72}],75:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactReconcileTransaction + * @typechecks static-only + */ + +'use strict'; + +var CallbackQueue = _dereq_(6); +var PooledClass = _dereq_(24); +var ReactBrowserEventEmitter = _dereq_(26); +var ReactDOMFeatureFlags = _dereq_(39); +var ReactInputSelection = _dereq_(60); +var Transaction = _dereq_(100); + +var assign = _dereq_(23); + +/** + * Ensures that, when possible, the selection range (currently selected text + * input) is not disturbed by performing the transaction. + */ +var SELECTION_RESTORATION = { + /** + * @return {Selection} Selection information. + */ + initialize: ReactInputSelection.getSelectionInformation, + /** + * @param {Selection} sel Selection information returned from `initialize`. + */ + close: ReactInputSelection.restoreSelection +}; + +/** + * Suppresses events (blur/focus) that could be inadvertently dispatched due to + * high level DOM manipulations (like temporarily removing a text input from the + * DOM). + */ +var EVENT_SUPPRESSION = { + /** + * @return {boolean} The enabled status of `ReactBrowserEventEmitter` before + * the reconciliation. + */ + initialize: function () { + var currentlyEnabled = ReactBrowserEventEmitter.isEnabled(); + ReactBrowserEventEmitter.setEnabled(false); + return currentlyEnabled; + }, + + /** + * @param {boolean} previouslyEnabled Enabled status of + * `ReactBrowserEventEmitter` before the reconciliation occurred. `close` + * restores the previous value. + */ + close: function (previouslyEnabled) { + ReactBrowserEventEmitter.setEnabled(previouslyEnabled); + } +}; + +/** + * Provides a queue for collecting `componentDidMount` and + * `componentDidUpdate` callbacks during the the transaction. + */ +var ON_DOM_READY_QUEUEING = { + /** + * Initializes the internal `onDOMReady` queue. + */ + initialize: function () { + this.reactMountReady.reset(); + }, + + /** + * After DOM is flushed, invoke all registered `onDOMReady` callbacks. + */ + close: function () { + this.reactMountReady.notifyAll(); + } +}; + +/** + * Executed within the scope of the `Transaction` instance. Consider these as + * being member methods, but with an implied ordering while being isolated from + * each other. + */ +var TRANSACTION_WRAPPERS = [SELECTION_RESTORATION, EVENT_SUPPRESSION, ON_DOM_READY_QUEUEING]; + +/** + * Currently: + * - The order that these are listed in the transaction is critical: + * - Suppresses events. + * - Restores selection range. + * + * Future: + * - Restore document/overflow scroll positions that were unintentionally + * modified via DOM insertions above the top viewport boundary. + * - Implement/integrate with customized constraint based layout system and keep + * track of which dimensions must be remeasured. + * + * @class ReactReconcileTransaction + */ +function ReactReconcileTransaction(forceHTML) { + this.reinitializeTransaction(); + // Only server-side rendering really needs this option (see + // `ReactServerRendering`), but server-side uses + // `ReactServerRenderingTransaction` instead. This option is here so that it's + // accessible and defaults to false when `ReactDOMComponent` and + // `ReactTextComponent` checks it in `mountComponent`.` + this.renderToStaticMarkup = false; + this.reactMountReady = CallbackQueue.getPooled(null); + this.useCreateElement = !forceHTML && ReactDOMFeatureFlags.useCreateElement; +} + +var Mixin = { + /** + * @see Transaction + * @abstract + * @final + * @return {array<object>} List of operation wrap procedures. + * TODO: convert to array<TransactionWrapper> + */ + getTransactionWrappers: function () { + return TRANSACTION_WRAPPERS; + }, + + /** + * @return {object} The queue to collect `onDOMReady` callbacks with. + */ + getReactMountReady: function () { + return this.reactMountReady; + }, + + /** + * `PooledClass` looks for this, and will invoke this before allowing this + * instance to be reused. + */ + destructor: function () { + CallbackQueue.release(this.reactMountReady); + this.reactMountReady = null; + } +}; + +assign(ReactReconcileTransaction.prototype, Transaction.Mixin, Mixin); + +PooledClass.addPoolingTo(ReactReconcileTransaction); + +module.exports = ReactReconcileTransaction; +},{"100":100,"23":23,"24":24,"26":26,"39":39,"6":6,"60":60}],76:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactReconciler + */ + +'use strict'; + +var ReactRef = _dereq_(77); + +/** + * Helper to call ReactRef.attachRefs with this composite component, split out + * to avoid allocations in the transaction mount-ready queue. + */ +function attachRefs() { + ReactRef.attachRefs(this, this._currentElement); +} + +var ReactReconciler = { + + /** + * Initializes the component, renders markup, and registers event listeners. + * + * @param {ReactComponent} internalInstance + * @param {string} rootID DOM ID of the root node. + * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction + * @return {?string} Rendered markup to be inserted into the DOM. + * @final + * @internal + */ + mountComponent: function (internalInstance, rootID, transaction, context) { + var markup = internalInstance.mountComponent(rootID, transaction, context); + if (internalInstance._currentElement && internalInstance._currentElement.ref != null) { + transaction.getReactMountReady().enqueue(attachRefs, internalInstance); + } + return markup; + }, + + /** + * Releases any resources allocated by `mountComponent`. + * + * @final + * @internal + */ + unmountComponent: function (internalInstance) { + ReactRef.detachRefs(internalInstance, internalInstance._currentElement); + internalInstance.unmountComponent(); + }, + + /** + * Update a component using a new element. + * + * @param {ReactComponent} internalInstance + * @param {ReactElement} nextElement + * @param {ReactReconcileTransaction} transaction + * @param {object} context + * @internal + */ + receiveComponent: function (internalInstance, nextElement, transaction, context) { + var prevElement = internalInstance._currentElement; + + if (nextElement === prevElement && context === internalInstance._context) { + // Since elements are immutable after the owner is rendered, + // we can do a cheap identity compare here to determine if this is a + // superfluous reconcile. It's possible for state to be mutable but such + // change should trigger an update of the owner which would recreate + // the element. We explicitly check for the existence of an owner since + // it's possible for an element created outside a composite to be + // deeply mutated and reused. + + // TODO: Bailing out early is just a perf optimization right? + // TODO: Removing the return statement should affect correctness? + return; + } + + var refsChanged = ReactRef.shouldUpdateRefs(prevElement, nextElement); + + if (refsChanged) { + ReactRef.detachRefs(internalInstance, prevElement); + } + + internalInstance.receiveComponent(nextElement, transaction, context); + + if (refsChanged && internalInstance._currentElement && internalInstance._currentElement.ref != null) { + transaction.getReactMountReady().enqueue(attachRefs, internalInstance); + } + }, + + /** + * Flush any dirty changes in a component. + * + * @param {ReactComponent} internalInstance + * @param {ReactReconcileTransaction} transaction + * @internal + */ + performUpdateIfNecessary: function (internalInstance, transaction) { + internalInstance.performUpdateIfNecessary(transaction); + } + +}; + +module.exports = ReactReconciler; +},{"77":77}],77:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactRef + */ + +'use strict'; + +var ReactOwner = _dereq_(70); + +var ReactRef = {}; + +function attachRef(ref, component, owner) { + if (typeof ref === 'function') { + ref(component.getPublicInstance()); + } else { + // Legacy ref + ReactOwner.addComponentAsRefTo(component, ref, owner); + } +} + +function detachRef(ref, component, owner) { + if (typeof ref === 'function') { + ref(null); + } else { + // Legacy ref + ReactOwner.removeComponentAsRefFrom(component, ref, owner); + } +} + +ReactRef.attachRefs = function (instance, element) { + if (element === null || element === false) { + return; + } + var ref = element.ref; + if (ref != null) { + attachRef(ref, instance, element._owner); + } +}; + +ReactRef.shouldUpdateRefs = function (prevElement, nextElement) { + // If either the owner or a `ref` has changed, make sure the newest owner + // has stored a reference to `this`, and the previous owner (if different) + // has forgotten the reference to `this`. We use the element instead + // of the public this.props because the post processing cannot determine + // a ref. The ref conceptually lives on the element. + + // TODO: Should this even be possible? The owner cannot change because + // it's forbidden by shouldUpdateReactComponent. The ref can change + // if you swap the keys of but not the refs. Reconsider where this check + // is made. It probably belongs where the key checking and + // instantiateReactComponent is done. + + var prevEmpty = prevElement === null || prevElement === false; + var nextEmpty = nextElement === null || nextElement === false; + + return( + // This has a few false positives w/r/t empty components. + prevEmpty || nextEmpty || nextElement._owner !== prevElement._owner || nextElement.ref !== prevElement.ref + ); +}; + +ReactRef.detachRefs = function (instance, element) { + if (element === null || element === false) { + return; + } + var ref = element.ref; + if (ref != null) { + detachRef(ref, instance, element._owner); + } +}; + +module.exports = ReactRef; +},{"70":70}],78:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactRootIndex + * @typechecks + */ + +'use strict'; + +var ReactRootIndexInjection = { + /** + * @param {function} _createReactRootIndex + */ + injectCreateReactRootIndex: function (_createReactRootIndex) { + ReactRootIndex.createReactRootIndex = _createReactRootIndex; + } +}; + +var ReactRootIndex = { + createReactRootIndex: null, + injection: ReactRootIndexInjection +}; + +module.exports = ReactRootIndex; +},{}],79:[function(_dereq_,module,exports){ +/** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactServerBatchingStrategy + * @typechecks + */ + +'use strict'; + +var ReactServerBatchingStrategy = { + isBatchingUpdates: false, + batchedUpdates: function (callback) { + // Don't do anything here. During the server rendering we don't want to + // schedule any updates. We will simply ignore them. + } +}; + +module.exports = ReactServerBatchingStrategy; +},{}],80:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @typechecks static-only + * @providesModule ReactServerRendering + */ +'use strict'; + +var ReactDefaultBatchingStrategy = _dereq_(48); +var ReactElement = _dereq_(52); +var ReactInstanceHandles = _dereq_(61); +var ReactMarkupChecksum = _dereq_(64); +var ReactServerBatchingStrategy = _dereq_(79); +var ReactServerRenderingTransaction = _dereq_(81); +var ReactUpdates = _dereq_(83); + +var emptyObject = _dereq_(137); +var instantiateReactComponent = _dereq_(118); +var invariant = _dereq_(144); + +/** + * @param {ReactElement} element + * @return {string} the HTML markup + */ +function renderToString(element) { + !ReactElement.isValidElement(element) ? "development" !== 'production' ? invariant(false, 'renderToString(): You must pass a valid ReactElement.') : invariant(false) : undefined; + + var transaction; + try { + ReactUpdates.injection.injectBatchingStrategy(ReactServerBatchingStrategy); + + var id = ReactInstanceHandles.createReactRootID(); + transaction = ReactServerRenderingTransaction.getPooled(false); + + return transaction.perform(function () { + var componentInstance = instantiateReactComponent(element, null); + var markup = componentInstance.mountComponent(id, transaction, emptyObject); + return ReactMarkupChecksum.addChecksumToMarkup(markup); + }, null); + } finally { + ReactServerRenderingTransaction.release(transaction); + // Revert to the DOM batching strategy since these two renderers + // currently share these stateful modules. + ReactUpdates.injection.injectBatchingStrategy(ReactDefaultBatchingStrategy); + } +} + +/** + * @param {ReactElement} element + * @return {string} the HTML markup, without the extra React ID and checksum + * (for generating static pages) + */ +function renderToStaticMarkup(element) { + !ReactElement.isValidElement(element) ? "development" !== 'production' ? invariant(false, 'renderToStaticMarkup(): You must pass a valid ReactElement.') : invariant(false) : undefined; + + var transaction; + try { + ReactUpdates.injection.injectBatchingStrategy(ReactServerBatchingStrategy); + + var id = ReactInstanceHandles.createReactRootID(); + transaction = ReactServerRenderingTransaction.getPooled(true); + + return transaction.perform(function () { + var componentInstance = instantiateReactComponent(element, null); + return componentInstance.mountComponent(id, transaction, emptyObject); + }, null); + } finally { + ReactServerRenderingTransaction.release(transaction); + // Revert to the DOM batching strategy since these two renderers + // currently share these stateful modules. + ReactUpdates.injection.injectBatchingStrategy(ReactDefaultBatchingStrategy); + } +} + +module.exports = { + renderToString: renderToString, + renderToStaticMarkup: renderToStaticMarkup +}; +},{"118":118,"137":137,"144":144,"48":48,"52":52,"61":61,"64":64,"79":79,"81":81,"83":83}],81:[function(_dereq_,module,exports){ +/** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactServerRenderingTransaction + * @typechecks + */ + +'use strict'; + +var PooledClass = _dereq_(24); +var CallbackQueue = _dereq_(6); +var Transaction = _dereq_(100); + +var assign = _dereq_(23); +var emptyFunction = _dereq_(136); + +/** + * Provides a `CallbackQueue` queue for collecting `onDOMReady` callbacks + * during the performing of the transaction. + */ +var ON_DOM_READY_QUEUEING = { + /** + * Initializes the internal `onDOMReady` queue. + */ + initialize: function () { + this.reactMountReady.reset(); + }, + + close: emptyFunction +}; + +/** + * Executed within the scope of the `Transaction` instance. Consider these as + * being member methods, but with an implied ordering while being isolated from + * each other. + */ +var TRANSACTION_WRAPPERS = [ON_DOM_READY_QUEUEING]; + +/** + * @class ReactServerRenderingTransaction + * @param {boolean} renderToStaticMarkup + */ +function ReactServerRenderingTransaction(renderToStaticMarkup) { + this.reinitializeTransaction(); + this.renderToStaticMarkup = renderToStaticMarkup; + this.reactMountReady = CallbackQueue.getPooled(null); + this.useCreateElement = false; +} + +var Mixin = { + /** + * @see Transaction + * @abstract + * @final + * @return {array} Empty list of operation wrap procedures. + */ + getTransactionWrappers: function () { + return TRANSACTION_WRAPPERS; + }, + + /** + * @return {object} The queue to collect `onDOMReady` callbacks with. + */ + getReactMountReady: function () { + return this.reactMountReady; + }, + + /** + * `PooledClass` looks for this, and will invoke this before allowing this + * instance to be reused. + */ + destructor: function () { + CallbackQueue.release(this.reactMountReady); + this.reactMountReady = null; + } +}; + +assign(ReactServerRenderingTransaction.prototype, Transaction.Mixin, Mixin); + +PooledClass.addPoolingTo(ReactServerRenderingTransaction); + +module.exports = ReactServerRenderingTransaction; +},{"100":100,"136":136,"23":23,"24":24,"6":6}],82:[function(_dereq_,module,exports){ +/** + * Copyright 2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactUpdateQueue + */ + +'use strict'; + +var ReactCurrentOwner = _dereq_(34); +var ReactElement = _dereq_(52); +var ReactInstanceMap = _dereq_(62); +var ReactUpdates = _dereq_(83); + +var assign = _dereq_(23); +var invariant = _dereq_(144); +var warning = _dereq_(155); + +function enqueueUpdate(internalInstance) { + ReactUpdates.enqueueUpdate(internalInstance); +} + +function getInternalInstanceReadyForUpdate(publicInstance, callerName) { + var internalInstance = ReactInstanceMap.get(publicInstance); + if (!internalInstance) { + if ("development" !== 'production') { + // Only warn when we have a callerName. Otherwise we should be silent. + // We're probably calling from enqueueCallback. We don't want to warn + // there because we already warned for the corresponding lifecycle method. + "development" !== 'production' ? warning(!callerName, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, publicInstance.constructor.displayName) : undefined; + } + return null; + } + + if ("development" !== 'production') { + "development" !== 'production' ? warning(ReactCurrentOwner.current == null, '%s(...): Cannot update during an existing state transition ' + '(such as within `render`). Render methods should be a pure function ' + 'of props and state.', callerName) : undefined; + } + + return internalInstance; +} + +/** + * ReactUpdateQueue allows for state updates to be scheduled into a later + * reconciliation step. + */ +var ReactUpdateQueue = { + + /** + * Checks whether or not this composite component is mounted. + * @param {ReactClass} publicInstance The instance we want to test. + * @return {boolean} True if mounted, false otherwise. + * @protected + * @final + */ + isMounted: function (publicInstance) { + if ("development" !== 'production') { + var owner = ReactCurrentOwner.current; + if (owner !== null) { + "development" !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : undefined; + owner._warnedAboutRefsInRender = true; + } + } + var internalInstance = ReactInstanceMap.get(publicInstance); + if (internalInstance) { + // During componentWillMount and render this will still be null but after + // that will always render to something. At least for now. So we can use + // this hack. + return !!internalInstance._renderedComponent; + } else { + return false; + } + }, + + /** + * Enqueue a callback that will be executed after all the pending updates + * have processed. + * + * @param {ReactClass} publicInstance The instance to use as `this` context. + * @param {?function} callback Called after state is updated. + * @internal + */ + enqueueCallback: function (publicInstance, callback) { + !(typeof callback === 'function') ? "development" !== 'production' ? invariant(false, 'enqueueCallback(...): You called `setProps`, `replaceProps`, ' + '`setState`, `replaceState`, or `forceUpdate` with a callback that ' + 'isn\'t callable.') : invariant(false) : undefined; + var internalInstance = getInternalInstanceReadyForUpdate(publicInstance); + + // Previously we would throw an error if we didn't have an internal + // instance. Since we want to make it a no-op instead, we mirror the same + // behavior we have in other enqueue* methods. + // We also need to ignore callbacks in componentWillMount. See + // enqueueUpdates. + if (!internalInstance) { + return null; + } + + if (internalInstance._pendingCallbacks) { + internalInstance._pendingCallbacks.push(callback); + } else { + internalInstance._pendingCallbacks = [callback]; + } + // TODO: The callback here is ignored when setState is called from + // componentWillMount. Either fix it or disallow doing so completely in + // favor of getInitialState. Alternatively, we can disallow + // componentWillMount during server-side rendering. + enqueueUpdate(internalInstance); + }, + + enqueueCallbackInternal: function (internalInstance, callback) { + !(typeof callback === 'function') ? "development" !== 'production' ? invariant(false, 'enqueueCallback(...): You called `setProps`, `replaceProps`, ' + '`setState`, `replaceState`, or `forceUpdate` with a callback that ' + 'isn\'t callable.') : invariant(false) : undefined; + if (internalInstance._pendingCallbacks) { + internalInstance._pendingCallbacks.push(callback); + } else { + internalInstance._pendingCallbacks = [callback]; + } + enqueueUpdate(internalInstance); + }, + + /** + * Forces an update. This should only be invoked when it is known with + * certainty that we are **not** in a DOM transaction. + * + * You may want to call this when you know that some deeper aspect of the + * component's state has changed but `setState` was not called. + * + * This will not invoke `shouldComponentUpdate`, but it will invoke + * `componentWillUpdate` and `componentDidUpdate`. + * + * @param {ReactClass} publicInstance The instance that should rerender. + * @internal + */ + enqueueForceUpdate: function (publicInstance) { + var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'forceUpdate'); + + if (!internalInstance) { + return; + } + + internalInstance._pendingForceUpdate = true; + + enqueueUpdate(internalInstance); + }, + + /** + * Replaces all of the state. Always use this or `setState` to mutate state. + * You should treat `this.state` as immutable. + * + * There is no guarantee that `this.state` will be immediately updated, so + * accessing `this.state` after calling this method may return the old value. + * + * @param {ReactClass} publicInstance The instance that should rerender. + * @param {object} completeState Next state. + * @internal + */ + enqueueReplaceState: function (publicInstance, completeState) { + var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceState'); + + if (!internalInstance) { + return; + } + + internalInstance._pendingStateQueue = [completeState]; + internalInstance._pendingReplaceState = true; + + enqueueUpdate(internalInstance); + }, + + /** + * Sets a subset of the state. This only exists because _pendingState is + * internal. This provides a merging strategy that is not available to deep + * properties which is confusing. TODO: Expose pendingState or don't use it + * during the merge. + * + * @param {ReactClass} publicInstance The instance that should rerender. + * @param {object} partialState Next partial state to be merged with state. + * @internal + */ + enqueueSetState: function (publicInstance, partialState) { + var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setState'); + + if (!internalInstance) { + return; + } + + var queue = internalInstance._pendingStateQueue || (internalInstance._pendingStateQueue = []); + queue.push(partialState); + + enqueueUpdate(internalInstance); + }, + + /** + * Sets a subset of the props. + * + * @param {ReactClass} publicInstance The instance that should rerender. + * @param {object} partialProps Subset of the next props. + * @internal + */ + enqueueSetProps: function (publicInstance, partialProps) { + var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setProps'); + if (!internalInstance) { + return; + } + ReactUpdateQueue.enqueueSetPropsInternal(internalInstance, partialProps); + }, + + enqueueSetPropsInternal: function (internalInstance, partialProps) { + var topLevelWrapper = internalInstance._topLevelWrapper; + !topLevelWrapper ? "development" !== 'production' ? invariant(false, 'setProps(...): You called `setProps` on a ' + 'component with a parent. This is an anti-pattern since props will ' + 'get reactively updated when rendered. Instead, change the owner\'s ' + '`render` method to pass the correct value as props to the component ' + 'where it is created.') : invariant(false) : undefined; + + // Merge with the pending element if it exists, otherwise with existing + // element props. + var wrapElement = topLevelWrapper._pendingElement || topLevelWrapper._currentElement; + var element = wrapElement.props; + var props = assign({}, element.props, partialProps); + topLevelWrapper._pendingElement = ReactElement.cloneAndReplaceProps(wrapElement, ReactElement.cloneAndReplaceProps(element, props)); + + enqueueUpdate(topLevelWrapper); + }, + + /** + * Replaces all of the props. + * + * @param {ReactClass} publicInstance The instance that should rerender. + * @param {object} props New props. + * @internal + */ + enqueueReplaceProps: function (publicInstance, props) { + var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceProps'); + if (!internalInstance) { + return; + } + ReactUpdateQueue.enqueueReplacePropsInternal(internalInstance, props); + }, + + enqueueReplacePropsInternal: function (internalInstance, props) { + var topLevelWrapper = internalInstance._topLevelWrapper; + !topLevelWrapper ? "development" !== 'production' ? invariant(false, 'replaceProps(...): You called `replaceProps` on a ' + 'component with a parent. This is an anti-pattern since props will ' + 'get reactively updated when rendered. Instead, change the owner\'s ' + '`render` method to pass the correct value as props to the component ' + 'where it is created.') : invariant(false) : undefined; + + // Merge with the pending element if it exists, otherwise with existing + // element props. + var wrapElement = topLevelWrapper._pendingElement || topLevelWrapper._currentElement; + var element = wrapElement.props; + topLevelWrapper._pendingElement = ReactElement.cloneAndReplaceProps(wrapElement, ReactElement.cloneAndReplaceProps(element, props)); + + enqueueUpdate(topLevelWrapper); + }, + + enqueueElementInternal: function (internalInstance, newElement) { + internalInstance._pendingElement = newElement; + enqueueUpdate(internalInstance); + } + +}; + +module.exports = ReactUpdateQueue; +},{"144":144,"155":155,"23":23,"34":34,"52":52,"62":62,"83":83}],83:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactUpdates + */ + +'use strict'; + +var CallbackQueue = _dereq_(6); +var PooledClass = _dereq_(24); +var ReactPerf = _dereq_(71); +var ReactReconciler = _dereq_(76); +var Transaction = _dereq_(100); + +var assign = _dereq_(23); +var invariant = _dereq_(144); + +var dirtyComponents = []; +var asapCallbackQueue = CallbackQueue.getPooled(); +var asapEnqueued = false; + +var batchingStrategy = null; + +function ensureInjected() { + !(ReactUpdates.ReactReconcileTransaction && batchingStrategy) ? "development" !== 'production' ? invariant(false, 'ReactUpdates: must inject a reconcile transaction class and batching ' + 'strategy') : invariant(false) : undefined; +} + +var NESTED_UPDATES = { + initialize: function () { + this.dirtyComponentsLength = dirtyComponents.length; + }, + close: function () { + if (this.dirtyComponentsLength !== dirtyComponents.length) { + // Additional updates were enqueued by componentDidUpdate handlers or + // similar; before our own UPDATE_QUEUEING wrapper closes, we want to run + // these new updates so that if A's componentDidUpdate calls setState on + // B, B will update before the callback A's updater provided when calling + // setState. + dirtyComponents.splice(0, this.dirtyComponentsLength); + flushBatchedUpdates(); + } else { + dirtyComponents.length = 0; + } + } +}; + +var UPDATE_QUEUEING = { + initialize: function () { + this.callbackQueue.reset(); + }, + close: function () { + this.callbackQueue.notifyAll(); + } +}; + +var TRANSACTION_WRAPPERS = [NESTED_UPDATES, UPDATE_QUEUEING]; + +function ReactUpdatesFlushTransaction() { + this.reinitializeTransaction(); + this.dirtyComponentsLength = null; + this.callbackQueue = CallbackQueue.getPooled(); + this.reconcileTransaction = ReactUpdates.ReactReconcileTransaction.getPooled( /* forceHTML */false); +} + +assign(ReactUpdatesFlushTransaction.prototype, Transaction.Mixin, { + getTransactionWrappers: function () { + return TRANSACTION_WRAPPERS; + }, + + destructor: function () { + this.dirtyComponentsLength = null; + CallbackQueue.release(this.callbackQueue); + this.callbackQueue = null; + ReactUpdates.ReactReconcileTransaction.release(this.reconcileTransaction); + this.reconcileTransaction = null; + }, + + perform: function (method, scope, a) { + // Essentially calls `this.reconcileTransaction.perform(method, scope, a)` + // with this transaction's wrappers around it. + return Transaction.Mixin.perform.call(this, this.reconcileTransaction.perform, this.reconcileTransaction, method, scope, a); + } +}); + +PooledClass.addPoolingTo(ReactUpdatesFlushTransaction); + +function batchedUpdates(callback, a, b, c, d, e) { + ensureInjected(); + batchingStrategy.batchedUpdates(callback, a, b, c, d, e); +} + +/** + * Array comparator for ReactComponents by mount ordering. + * + * @param {ReactComponent} c1 first component you're comparing + * @param {ReactComponent} c2 second component you're comparing + * @return {number} Return value usable by Array.prototype.sort(). + */ +function mountOrderComparator(c1, c2) { + return c1._mountOrder - c2._mountOrder; +} + +function runBatchedUpdates(transaction) { + var len = transaction.dirtyComponentsLength; + !(len === dirtyComponents.length) ? "development" !== 'production' ? invariant(false, 'Expected flush transaction\'s stored dirty-components length (%s) to ' + 'match dirty-components array length (%s).', len, dirtyComponents.length) : invariant(false) : undefined; + + // Since reconciling a component higher in the owner hierarchy usually (not + // always -- see shouldComponentUpdate()) will reconcile children, reconcile + // them before their children by sorting the array. + dirtyComponents.sort(mountOrderComparator); + + for (var i = 0; i < len; i++) { + // If a component is unmounted before pending changes apply, it will still + // be here, but we assume that it has cleared its _pendingCallbacks and + // that performUpdateIfNecessary is a noop. + var component = dirtyComponents[i]; + + // If performUpdateIfNecessary happens to enqueue any new updates, we + // shouldn't execute the callbacks until the next render happens, so + // stash the callbacks first + var callbacks = component._pendingCallbacks; + component._pendingCallbacks = null; + + ReactReconciler.performUpdateIfNecessary(component, transaction.reconcileTransaction); + + if (callbacks) { + for (var j = 0; j < callbacks.length; j++) { + transaction.callbackQueue.enqueue(callbacks[j], component.getPublicInstance()); + } + } + } +} + +var flushBatchedUpdates = function () { + // ReactUpdatesFlushTransaction's wrappers will clear the dirtyComponents + // array and perform any updates enqueued by mount-ready handlers (i.e., + // componentDidUpdate) but we need to check here too in order to catch + // updates enqueued by setState callbacks and asap calls. + while (dirtyComponents.length || asapEnqueued) { + if (dirtyComponents.length) { + var transaction = ReactUpdatesFlushTransaction.getPooled(); + transaction.perform(runBatchedUpdates, null, transaction); + ReactUpdatesFlushTransaction.release(transaction); + } + + if (asapEnqueued) { + asapEnqueued = false; + var queue = asapCallbackQueue; + asapCallbackQueue = CallbackQueue.getPooled(); + queue.notifyAll(); + CallbackQueue.release(queue); + } + } +}; +flushBatchedUpdates = ReactPerf.measure('ReactUpdates', 'flushBatchedUpdates', flushBatchedUpdates); + +/** + * Mark a component as needing a rerender, adding an optional callback to a + * list of functions which will be executed once the rerender occurs. + */ +function enqueueUpdate(component) { + ensureInjected(); + + // Various parts of our code (such as ReactCompositeComponent's + // _renderValidatedComponent) assume that calls to render aren't nested; + // verify that that's the case. (This is called by each top-level update + // function, like setProps, setState, forceUpdate, etc.; creation and + // destruction of top-level components is guarded in ReactMount.) + + if (!batchingStrategy.isBatchingUpdates) { + batchingStrategy.batchedUpdates(enqueueUpdate, component); + return; + } + + dirtyComponents.push(component); +} + +/** + * Enqueue a callback to be run at the end of the current batching cycle. Throws + * if no updates are currently being performed. + */ +function asap(callback, context) { + !batchingStrategy.isBatchingUpdates ? "development" !== 'production' ? invariant(false, 'ReactUpdates.asap: Can\'t enqueue an asap callback in a context where' + 'updates are not being batched.') : invariant(false) : undefined; + asapCallbackQueue.enqueue(callback, context); + asapEnqueued = true; +} + +var ReactUpdatesInjection = { + injectReconcileTransaction: function (ReconcileTransaction) { + !ReconcileTransaction ? "development" !== 'production' ? invariant(false, 'ReactUpdates: must provide a reconcile transaction class') : invariant(false) : undefined; + ReactUpdates.ReactReconcileTransaction = ReconcileTransaction; + }, + + injectBatchingStrategy: function (_batchingStrategy) { + !_batchingStrategy ? "development" !== 'production' ? invariant(false, 'ReactUpdates: must provide a batching strategy') : invariant(false) : undefined; + !(typeof _batchingStrategy.batchedUpdates === 'function') ? "development" !== 'production' ? invariant(false, 'ReactUpdates: must provide a batchedUpdates() function') : invariant(false) : undefined; + !(typeof _batchingStrategy.isBatchingUpdates === 'boolean') ? "development" !== 'production' ? invariant(false, 'ReactUpdates: must provide an isBatchingUpdates boolean attribute') : invariant(false) : undefined; + batchingStrategy = _batchingStrategy; + } +}; + +var ReactUpdates = { + /** + * React references `ReactReconcileTransaction` using this property in order + * to allow dependency injection. + * + * @internal + */ + ReactReconcileTransaction: null, + + batchedUpdates: batchedUpdates, + enqueueUpdate: enqueueUpdate, + flushBatchedUpdates: flushBatchedUpdates, + injection: ReactUpdatesInjection, + asap: asap +}; + +module.exports = ReactUpdates; +},{"100":100,"144":144,"23":23,"24":24,"6":6,"71":71,"76":76}],84:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ReactVersion + */ + +'use strict'; + +module.exports = '0.14.3'; +},{}],85:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule SVGDOMPropertyConfig + */ + +'use strict'; + +var DOMProperty = _dereq_(10); + +var MUST_USE_ATTRIBUTE = DOMProperty.injection.MUST_USE_ATTRIBUTE; + +var NS = { + xlink: 'http://www.w3.org/1999/xlink', + xml: 'http://www.w3.org/XML/1998/namespace' +}; + +var SVGDOMPropertyConfig = { + Properties: { + clipPath: MUST_USE_ATTRIBUTE, + cx: MUST_USE_ATTRIBUTE, + cy: MUST_USE_ATTRIBUTE, + d: MUST_USE_ATTRIBUTE, + dx: MUST_USE_ATTRIBUTE, + dy: MUST_USE_ATTRIBUTE, + fill: MUST_USE_ATTRIBUTE, + fillOpacity: MUST_USE_ATTRIBUTE, + fontFamily: MUST_USE_ATTRIBUTE, + fontSize: MUST_USE_ATTRIBUTE, + fx: MUST_USE_ATTRIBUTE, + fy: MUST_USE_ATTRIBUTE, + gradientTransform: MUST_USE_ATTRIBUTE, + gradientUnits: MUST_USE_ATTRIBUTE, + markerEnd: MUST_USE_ATTRIBUTE, + markerMid: MUST_USE_ATTRIBUTE, + markerStart: MUST_USE_ATTRIBUTE, + offset: MUST_USE_ATTRIBUTE, + opacity: MUST_USE_ATTRIBUTE, + patternContentUnits: MUST_USE_ATTRIBUTE, + patternUnits: MUST_USE_ATTRIBUTE, + points: MUST_USE_ATTRIBUTE, + preserveAspectRatio: MUST_USE_ATTRIBUTE, + r: MUST_USE_ATTRIBUTE, + rx: MUST_USE_ATTRIBUTE, + ry: MUST_USE_ATTRIBUTE, + spreadMethod: MUST_USE_ATTRIBUTE, + stopColor: MUST_USE_ATTRIBUTE, + stopOpacity: MUST_USE_ATTRIBUTE, + stroke: MUST_USE_ATTRIBUTE, + strokeDasharray: MUST_USE_ATTRIBUTE, + strokeLinecap: MUST_USE_ATTRIBUTE, + strokeOpacity: MUST_USE_ATTRIBUTE, + strokeWidth: MUST_USE_ATTRIBUTE, + textAnchor: MUST_USE_ATTRIBUTE, + transform: MUST_USE_ATTRIBUTE, + version: MUST_USE_ATTRIBUTE, + viewBox: MUST_USE_ATTRIBUTE, + x1: MUST_USE_ATTRIBUTE, + x2: MUST_USE_ATTRIBUTE, + x: MUST_USE_ATTRIBUTE, + xlinkActuate: MUST_USE_ATTRIBUTE, + xlinkArcrole: MUST_USE_ATTRIBUTE, + xlinkHref: MUST_USE_ATTRIBUTE, + xlinkRole: MUST_USE_ATTRIBUTE, + xlinkShow: MUST_USE_ATTRIBUTE, + xlinkTitle: MUST_USE_ATTRIBUTE, + xlinkType: MUST_USE_ATTRIBUTE, + xmlBase: MUST_USE_ATTRIBUTE, + xmlLang: MUST_USE_ATTRIBUTE, + xmlSpace: MUST_USE_ATTRIBUTE, + y1: MUST_USE_ATTRIBUTE, + y2: MUST_USE_ATTRIBUTE, + y: MUST_USE_ATTRIBUTE + }, + DOMAttributeNamespaces: { + xlinkActuate: NS.xlink, + xlinkArcrole: NS.xlink, + xlinkHref: NS.xlink, + xlinkRole: NS.xlink, + xlinkShow: NS.xlink, + xlinkTitle: NS.xlink, + xlinkType: NS.xlink, + xmlBase: NS.xml, + xmlLang: NS.xml, + xmlSpace: NS.xml + }, + DOMAttributeNames: { + clipPath: 'clip-path', + fillOpacity: 'fill-opacity', + fontFamily: 'font-family', + fontSize: 'font-size', + gradientTransform: 'gradientTransform', + gradientUnits: 'gradientUnits', + markerEnd: 'marker-end', + markerMid: 'marker-mid', + markerStart: 'marker-start', + patternContentUnits: 'patternContentUnits', + patternUnits: 'patternUnits', + preserveAspectRatio: 'preserveAspectRatio', + spreadMethod: 'spreadMethod', + stopColor: 'stop-color', + stopOpacity: 'stop-opacity', + strokeDasharray: 'stroke-dasharray', + strokeLinecap: 'stroke-linecap', + strokeOpacity: 'stroke-opacity', + strokeWidth: 'stroke-width', + textAnchor: 'text-anchor', + viewBox: 'viewBox', + xlinkActuate: 'xlink:actuate', + xlinkArcrole: 'xlink:arcrole', + xlinkHref: 'xlink:href', + xlinkRole: 'xlink:role', + xlinkShow: 'xlink:show', + xlinkTitle: 'xlink:title', + xlinkType: 'xlink:type', + xmlBase: 'xml:base', + xmlLang: 'xml:lang', + xmlSpace: 'xml:space' + } +}; + +module.exports = SVGDOMPropertyConfig; +},{"10":10}],86:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule SelectEventPlugin + */ + +'use strict'; + +var EventConstants = _dereq_(15); +var EventPropagators = _dereq_(19); +var ExecutionEnvironment = _dereq_(130); +var ReactInputSelection = _dereq_(60); +var SyntheticEvent = _dereq_(92); + +var getActiveElement = _dereq_(139); +var isTextInputElement = _dereq_(120); +var keyOf = _dereq_(148); +var shallowEqual = _dereq_(153); + +var topLevelTypes = EventConstants.topLevelTypes; + +var skipSelectionChangeEvent = ExecutionEnvironment.canUseDOM && 'documentMode' in document && document.documentMode <= 11; + +var eventTypes = { + select: { + phasedRegistrationNames: { + bubbled: keyOf({ onSelect: null }), + captured: keyOf({ onSelectCapture: null }) + }, + dependencies: [topLevelTypes.topBlur, topLevelTypes.topContextMenu, topLevelTypes.topFocus, topLevelTypes.topKeyDown, topLevelTypes.topMouseDown, topLevelTypes.topMouseUp, topLevelTypes.topSelectionChange] + } +}; + +var activeElement = null; +var activeElementID = null; +var lastSelection = null; +var mouseDown = false; + +// Track whether a listener exists for this plugin. If none exist, we do +// not extract events. +var hasListener = false; +var ON_SELECT_KEY = keyOf({ onSelect: null }); + +/** + * Get an object which is a unique representation of the current selection. + * + * The return value will not be consistent across nodes or browsers, but + * two identical selections on the same node will return identical objects. + * + * @param {DOMElement} node + * @return {object} + */ +function getSelection(node) { + if ('selectionStart' in node && ReactInputSelection.hasSelectionCapabilities(node)) { + return { + start: node.selectionStart, + end: node.selectionEnd + }; + } else if (window.getSelection) { + var selection = window.getSelection(); + return { + anchorNode: selection.anchorNode, + anchorOffset: selection.anchorOffset, + focusNode: selection.focusNode, + focusOffset: selection.focusOffset + }; + } else if (document.selection) { + var range = document.selection.createRange(); + return { + parentElement: range.parentElement(), + text: range.text, + top: range.boundingTop, + left: range.boundingLeft + }; + } +} + +/** + * Poll selection to see whether it's changed. + * + * @param {object} nativeEvent + * @return {?SyntheticEvent} + */ +function constructSelectEvent(nativeEvent, nativeEventTarget) { + // Ensure we have the right element, and that the user is not dragging a + // selection (this matches native `select` event behavior). In HTML5, select + // fires only on input and textarea thus if there's no focused element we + // won't dispatch. + if (mouseDown || activeElement == null || activeElement !== getActiveElement()) { + return null; + } + + // Only fire when selection has actually changed. + var currentSelection = getSelection(activeElement); + if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) { + lastSelection = currentSelection; + + var syntheticEvent = SyntheticEvent.getPooled(eventTypes.select, activeElementID, nativeEvent, nativeEventTarget); + + syntheticEvent.type = 'select'; + syntheticEvent.target = activeElement; + + EventPropagators.accumulateTwoPhaseDispatches(syntheticEvent); + + return syntheticEvent; + } + + return null; +} + +/** + * This plugin creates an `onSelect` event that normalizes select events + * across form elements. + * + * Supported elements are: + * - input (see `isTextInputElement`) + * - textarea + * - contentEditable + * + * This differs from native browser implementations in the following ways: + * - Fires on contentEditable fields as well as inputs. + * - Fires for collapsed selection. + * - Fires after user input. + */ +var SelectEventPlugin = { + + eventTypes: eventTypes, + + /** + * @param {string} topLevelType Record from `EventConstants`. + * @param {DOMEventTarget} topLevelTarget The listening component root node. + * @param {string} topLevelTargetID ID of `topLevelTarget`. + * @param {object} nativeEvent Native browser event. + * @return {*} An accumulation of synthetic events. + * @see {EventPluginHub.extractEvents} + */ + extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) { + if (!hasListener) { + return null; + } + + switch (topLevelType) { + // Track the input node that has focus. + case topLevelTypes.topFocus: + if (isTextInputElement(topLevelTarget) || topLevelTarget.contentEditable === 'true') { + activeElement = topLevelTarget; + activeElementID = topLevelTargetID; + lastSelection = null; + } + break; + case topLevelTypes.topBlur: + activeElement = null; + activeElementID = null; + lastSelection = null; + break; + + // Don't fire the event while the user is dragging. This matches the + // semantics of the native select event. + case topLevelTypes.topMouseDown: + mouseDown = true; + break; + case topLevelTypes.topContextMenu: + case topLevelTypes.topMouseUp: + mouseDown = false; + return constructSelectEvent(nativeEvent, nativeEventTarget); + + // Chrome and IE fire non-standard event when selection is changed (and + // sometimes when it hasn't). IE's event fires out of order with respect + // to key and input events on deletion, so we discard it. + // + // Firefox doesn't support selectionchange, so check selection status + // after each key entry. The selection changes after keydown and before + // keyup, but we check on keydown as well in the case of holding down a + // key, when multiple keydown events are fired but only one keyup is. + // This is also our approach for IE handling, for the reason above. + case topLevelTypes.topSelectionChange: + if (skipSelectionChangeEvent) { + break; + } + // falls through + case topLevelTypes.topKeyDown: + case topLevelTypes.topKeyUp: + return constructSelectEvent(nativeEvent, nativeEventTarget); + } + + return null; + }, + + didPutListener: function (id, registrationName, listener) { + if (registrationName === ON_SELECT_KEY) { + hasListener = true; + } + } +}; + +module.exports = SelectEventPlugin; +},{"120":120,"130":130,"139":139,"148":148,"15":15,"153":153,"19":19,"60":60,"92":92}],87:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ServerReactRootIndex + * @typechecks + */ + +'use strict'; + +/** + * Size of the reactRoot ID space. We generate random numbers for React root + * IDs and if there's a collision the events and DOM update system will + * get confused. In the future we need a way to generate GUIDs but for + * now this will work on a smaller scale. + */ +var GLOBAL_MOUNT_POINT_MAX = Math.pow(2, 53); + +var ServerReactRootIndex = { + createReactRootIndex: function () { + return Math.ceil(Math.random() * GLOBAL_MOUNT_POINT_MAX); + } +}; + +module.exports = ServerReactRootIndex; +},{}],88:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule SimpleEventPlugin + */ + +'use strict'; + +var EventConstants = _dereq_(15); +var EventListener = _dereq_(129); +var EventPropagators = _dereq_(19); +var ReactMount = _dereq_(65); +var SyntheticClipboardEvent = _dereq_(89); +var SyntheticEvent = _dereq_(92); +var SyntheticFocusEvent = _dereq_(93); +var SyntheticKeyboardEvent = _dereq_(95); +var SyntheticMouseEvent = _dereq_(96); +var SyntheticDragEvent = _dereq_(91); +var SyntheticTouchEvent = _dereq_(97); +var SyntheticUIEvent = _dereq_(98); +var SyntheticWheelEvent = _dereq_(99); + +var emptyFunction = _dereq_(136); +var getEventCharCode = _dereq_(111); +var invariant = _dereq_(144); +var keyOf = _dereq_(148); + +var topLevelTypes = EventConstants.topLevelTypes; + +var eventTypes = { + abort: { + phasedRegistrationNames: { + bubbled: keyOf({ onAbort: true }), + captured: keyOf({ onAbortCapture: true }) + } + }, + blur: { + phasedRegistrationNames: { + bubbled: keyOf({ onBlur: true }), + captured: keyOf({ onBlurCapture: true }) + } + }, + canPlay: { + phasedRegistrationNames: { + bubbled: keyOf({ onCanPlay: true }), + captured: keyOf({ onCanPlayCapture: true }) + } + }, + canPlayThrough: { + phasedRegistrationNames: { + bubbled: keyOf({ onCanPlayThrough: true }), + captured: keyOf({ onCanPlayThroughCapture: true }) + } + }, + click: { + phasedRegistrationNames: { + bubbled: keyOf({ onClick: true }), + captured: keyOf({ onClickCapture: true }) + } + }, + contextMenu: { + phasedRegistrationNames: { + bubbled: keyOf({ onContextMenu: true }), + captured: keyOf({ onContextMenuCapture: true }) + } + }, + copy: { + phasedRegistrationNames: { + bubbled: keyOf({ onCopy: true }), + captured: keyOf({ onCopyCapture: true }) + } + }, + cut: { + phasedRegistrationNames: { + bubbled: keyOf({ onCut: true }), + captured: keyOf({ onCutCapture: true }) + } + }, + doubleClick: { + phasedRegistrationNames: { + bubbled: keyOf({ onDoubleClick: true }), + captured: keyOf({ onDoubleClickCapture: true }) + } + }, + drag: { + phasedRegistrationNames: { + bubbled: keyOf({ onDrag: true }), + captured: keyOf({ onDragCapture: true }) + } + }, + dragEnd: { + phasedRegistrationNames: { + bubbled: keyOf({ onDragEnd: true }), + captured: keyOf({ onDragEndCapture: true }) + } + }, + dragEnter: { + phasedRegistrationNames: { + bubbled: keyOf({ onDragEnter: true }), + captured: keyOf({ onDragEnterCapture: true }) + } + }, + dragExit: { + phasedRegistrationNames: { + bubbled: keyOf({ onDragExit: true }), + captured: keyOf({ onDragExitCapture: true }) + } + }, + dragLeave: { + phasedRegistrationNames: { + bubbled: keyOf({ onDragLeave: true }), + captured: keyOf({ onDragLeaveCapture: true }) + } + }, + dragOver: { + phasedRegistrationNames: { + bubbled: keyOf({ onDragOver: true }), + captured: keyOf({ onDragOverCapture: true }) + } + }, + dragStart: { + phasedRegistrationNames: { + bubbled: keyOf({ onDragStart: true }), + captured: keyOf({ onDragStartCapture: true }) + } + }, + drop: { + phasedRegistrationNames: { + bubbled: keyOf({ onDrop: true }), + captured: keyOf({ onDropCapture: true }) + } + }, + durationChange: { + phasedRegistrationNames: { + bubbled: keyOf({ onDurationChange: true }), + captured: keyOf({ onDurationChangeCapture: true }) + } + }, + emptied: { + phasedRegistrationNames: { + bubbled: keyOf({ onEmptied: true }), + captured: keyOf({ onEmptiedCapture: true }) + } + }, + encrypted: { + phasedRegistrationNames: { + bubbled: keyOf({ onEncrypted: true }), + captured: keyOf({ onEncryptedCapture: true }) + } + }, + ended: { + phasedRegistrationNames: { + bubbled: keyOf({ onEnded: true }), + captured: keyOf({ onEndedCapture: true }) + } + }, + error: { + phasedRegistrationNames: { + bubbled: keyOf({ onError: true }), + captured: keyOf({ onErrorCapture: true }) + } + }, + focus: { + phasedRegistrationNames: { + bubbled: keyOf({ onFocus: true }), + captured: keyOf({ onFocusCapture: true }) + } + }, + input: { + phasedRegistrationNames: { + bubbled: keyOf({ onInput: true }), + captured: keyOf({ onInputCapture: true }) + } + }, + keyDown: { + phasedRegistrationNames: { + bubbled: keyOf({ onKeyDown: true }), + captured: keyOf({ onKeyDownCapture: true }) + } + }, + keyPress: { + phasedRegistrationNames: { + bubbled: keyOf({ onKeyPress: true }), + captured: keyOf({ onKeyPressCapture: true }) + } + }, + keyUp: { + phasedRegistrationNames: { + bubbled: keyOf({ onKeyUp: true }), + captured: keyOf({ onKeyUpCapture: true }) + } + }, + load: { + phasedRegistrationNames: { + bubbled: keyOf({ onLoad: true }), + captured: keyOf({ onLoadCapture: true }) + } + }, + loadedData: { + phasedRegistrationNames: { + bubbled: keyOf({ onLoadedData: true }), + captured: keyOf({ onLoadedDataCapture: true }) + } + }, + loadedMetadata: { + phasedRegistrationNames: { + bubbled: keyOf({ onLoadedMetadata: true }), + captured: keyOf({ onLoadedMetadataCapture: true }) + } + }, + loadStart: { + phasedRegistrationNames: { + bubbled: keyOf({ onLoadStart: true }), + captured: keyOf({ onLoadStartCapture: true }) + } + }, + // Note: We do not allow listening to mouseOver events. Instead, use the + // onMouseEnter/onMouseLeave created by `EnterLeaveEventPlugin`. + mouseDown: { + phasedRegistrationNames: { + bubbled: keyOf({ onMouseDown: true }), + captured: keyOf({ onMouseDownCapture: true }) + } + }, + mouseMove: { + phasedRegistrationNames: { + bubbled: keyOf({ onMouseMove: true }), + captured: keyOf({ onMouseMoveCapture: true }) + } + }, + mouseOut: { + phasedRegistrationNames: { + bubbled: keyOf({ onMouseOut: true }), + captured: keyOf({ onMouseOutCapture: true }) + } + }, + mouseOver: { + phasedRegistrationNames: { + bubbled: keyOf({ onMouseOver: true }), + captured: keyOf({ onMouseOverCapture: true }) + } + }, + mouseUp: { + phasedRegistrationNames: { + bubbled: keyOf({ onMouseUp: true }), + captured: keyOf({ onMouseUpCapture: true }) + } + }, + paste: { + phasedRegistrationNames: { + bubbled: keyOf({ onPaste: true }), + captured: keyOf({ onPasteCapture: true }) + } + }, + pause: { + phasedRegistrationNames: { + bubbled: keyOf({ onPause: true }), + captured: keyOf({ onPauseCapture: true }) + } + }, + play: { + phasedRegistrationNames: { + bubbled: keyOf({ onPlay: true }), + captured: keyOf({ onPlayCapture: true }) + } + }, + playing: { + phasedRegistrationNames: { + bubbled: keyOf({ onPlaying: true }), + captured: keyOf({ onPlayingCapture: true }) + } + }, + progress: { + phasedRegistrationNames: { + bubbled: keyOf({ onProgress: true }), + captured: keyOf({ onProgressCapture: true }) + } + }, + rateChange: { + phasedRegistrationNames: { + bubbled: keyOf({ onRateChange: true }), + captured: keyOf({ onRateChangeCapture: true }) + } + }, + reset: { + phasedRegistrationNames: { + bubbled: keyOf({ onReset: true }), + captured: keyOf({ onResetCapture: true }) + } + }, + scroll: { + phasedRegistrationNames: { + bubbled: keyOf({ onScroll: true }), + captured: keyOf({ onScrollCapture: true }) + } + }, + seeked: { + phasedRegistrationNames: { + bubbled: keyOf({ onSeeked: true }), + captured: keyOf({ onSeekedCapture: true }) + } + }, + seeking: { + phasedRegistrationNames: { + bubbled: keyOf({ onSeeking: true }), + captured: keyOf({ onSeekingCapture: true }) + } + }, + stalled: { + phasedRegistrationNames: { + bubbled: keyOf({ onStalled: true }), + captured: keyOf({ onStalledCapture: true }) + } + }, + submit: { + phasedRegistrationNames: { + bubbled: keyOf({ onSubmit: true }), + captured: keyOf({ onSubmitCapture: true }) + } + }, + suspend: { + phasedRegistrationNames: { + bubbled: keyOf({ onSuspend: true }), + captured: keyOf({ onSuspendCapture: true }) + } + }, + timeUpdate: { + phasedRegistrationNames: { + bubbled: keyOf({ onTimeUpdate: true }), + captured: keyOf({ onTimeUpdateCapture: true }) + } + }, + touchCancel: { + phasedRegistrationNames: { + bubbled: keyOf({ onTouchCancel: true }), + captured: keyOf({ onTouchCancelCapture: true }) + } + }, + touchEnd: { + phasedRegistrationNames: { + bubbled: keyOf({ onTouchEnd: true }), + captured: keyOf({ onTouchEndCapture: true }) + } + }, + touchMove: { + phasedRegistrationNames: { + bubbled: keyOf({ onTouchMove: true }), + captured: keyOf({ onTouchMoveCapture: true }) + } + }, + touchStart: { + phasedRegistrationNames: { + bubbled: keyOf({ onTouchStart: true }), + captured: keyOf({ onTouchStartCapture: true }) + } + }, + volumeChange: { + phasedRegistrationNames: { + bubbled: keyOf({ onVolumeChange: true }), + captured: keyOf({ onVolumeChangeCapture: true }) + } + }, + waiting: { + phasedRegistrationNames: { + bubbled: keyOf({ onWaiting: true }), + captured: keyOf({ onWaitingCapture: true }) + } + }, + wheel: { + phasedRegistrationNames: { + bubbled: keyOf({ onWheel: true }), + captured: keyOf({ onWheelCapture: true }) + } + } +}; + +var topLevelEventsToDispatchConfig = { + topAbort: eventTypes.abort, + topBlur: eventTypes.blur, + topCanPlay: eventTypes.canPlay, + topCanPlayThrough: eventTypes.canPlayThrough, + topClick: eventTypes.click, + topContextMenu: eventTypes.contextMenu, + topCopy: eventTypes.copy, + topCut: eventTypes.cut, + topDoubleClick: eventTypes.doubleClick, + topDrag: eventTypes.drag, + topDragEnd: eventTypes.dragEnd, + topDragEnter: eventTypes.dragEnter, + topDragExit: eventTypes.dragExit, + topDragLeave: eventTypes.dragLeave, + topDragOver: eventTypes.dragOver, + topDragStart: eventTypes.dragStart, + topDrop: eventTypes.drop, + topDurationChange: eventTypes.durationChange, + topEmptied: eventTypes.emptied, + topEncrypted: eventTypes.encrypted, + topEnded: eventTypes.ended, + topError: eventTypes.error, + topFocus: eventTypes.focus, + topInput: eventTypes.input, + topKeyDown: eventTypes.keyDown, + topKeyPress: eventTypes.keyPress, + topKeyUp: eventTypes.keyUp, + topLoad: eventTypes.load, + topLoadedData: eventTypes.loadedData, + topLoadedMetadata: eventTypes.loadedMetadata, + topLoadStart: eventTypes.loadStart, + topMouseDown: eventTypes.mouseDown, + topMouseMove: eventTypes.mouseMove, + topMouseOut: eventTypes.mouseOut, + topMouseOver: eventTypes.mouseOver, + topMouseUp: eventTypes.mouseUp, + topPaste: eventTypes.paste, + topPause: eventTypes.pause, + topPlay: eventTypes.play, + topPlaying: eventTypes.playing, + topProgress: eventTypes.progress, + topRateChange: eventTypes.rateChange, + topReset: eventTypes.reset, + topScroll: eventTypes.scroll, + topSeeked: eventTypes.seeked, + topSeeking: eventTypes.seeking, + topStalled: eventTypes.stalled, + topSubmit: eventTypes.submit, + topSuspend: eventTypes.suspend, + topTimeUpdate: eventTypes.timeUpdate, + topTouchCancel: eventTypes.touchCancel, + topTouchEnd: eventTypes.touchEnd, + topTouchMove: eventTypes.touchMove, + topTouchStart: eventTypes.touchStart, + topVolumeChange: eventTypes.volumeChange, + topWaiting: eventTypes.waiting, + topWheel: eventTypes.wheel +}; + +for (var type in topLevelEventsToDispatchConfig) { + topLevelEventsToDispatchConfig[type].dependencies = [type]; +} + +var ON_CLICK_KEY = keyOf({ onClick: null }); +var onClickListeners = {}; + +var SimpleEventPlugin = { + + eventTypes: eventTypes, + + /** + * @param {string} topLevelType Record from `EventConstants`. + * @param {DOMEventTarget} topLevelTarget The listening component root node. + * @param {string} topLevelTargetID ID of `topLevelTarget`. + * @param {object} nativeEvent Native browser event. + * @return {*} An accumulation of synthetic events. + * @see {EventPluginHub.extractEvents} + */ + extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) { + var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType]; + if (!dispatchConfig) { + return null; + } + var EventConstructor; + switch (topLevelType) { + case topLevelTypes.topAbort: + case topLevelTypes.topCanPlay: + case topLevelTypes.topCanPlayThrough: + case topLevelTypes.topDurationChange: + case topLevelTypes.topEmptied: + case topLevelTypes.topEncrypted: + case topLevelTypes.topEnded: + case topLevelTypes.topError: + case topLevelTypes.topInput: + case topLevelTypes.topLoad: + case topLevelTypes.topLoadedData: + case topLevelTypes.topLoadedMetadata: + case topLevelTypes.topLoadStart: + case topLevelTypes.topPause: + case topLevelTypes.topPlay: + case topLevelTypes.topPlaying: + case topLevelTypes.topProgress: + case topLevelTypes.topRateChange: + case topLevelTypes.topReset: + case topLevelTypes.topSeeked: + case topLevelTypes.topSeeking: + case topLevelTypes.topStalled: + case topLevelTypes.topSubmit: + case topLevelTypes.topSuspend: + case topLevelTypes.topTimeUpdate: + case topLevelTypes.topVolumeChange: + case topLevelTypes.topWaiting: + // HTML Events + // @see http://www.w3.org/TR/html5/index.html#events-0 + EventConstructor = SyntheticEvent; + break; + case topLevelTypes.topKeyPress: + // FireFox creates a keypress event for function keys too. This removes + // the unwanted keypress events. Enter is however both printable and + // non-printable. One would expect Tab to be as well (but it isn't). + if (getEventCharCode(nativeEvent) === 0) { + return null; + } + /* falls through */ + case topLevelTypes.topKeyDown: + case topLevelTypes.topKeyUp: + EventConstructor = SyntheticKeyboardEvent; + break; + case topLevelTypes.topBlur: + case topLevelTypes.topFocus: + EventConstructor = SyntheticFocusEvent; + break; + case topLevelTypes.topClick: + // Firefox creates a click event on right mouse clicks. This removes the + // unwanted click events. + if (nativeEvent.button === 2) { + return null; + } + /* falls through */ + case topLevelTypes.topContextMenu: + case topLevelTypes.topDoubleClick: + case topLevelTypes.topMouseDown: + case topLevelTypes.topMouseMove: + case topLevelTypes.topMouseOut: + case topLevelTypes.topMouseOver: + case topLevelTypes.topMouseUp: + EventConstructor = SyntheticMouseEvent; + break; + case topLevelTypes.topDrag: + case topLevelTypes.topDragEnd: + case topLevelTypes.topDragEnter: + case topLevelTypes.topDragExit: + case topLevelTypes.topDragLeave: + case topLevelTypes.topDragOver: + case topLevelTypes.topDragStart: + case topLevelTypes.topDrop: + EventConstructor = SyntheticDragEvent; + break; + case topLevelTypes.topTouchCancel: + case topLevelTypes.topTouchEnd: + case topLevelTypes.topTouchMove: + case topLevelTypes.topTouchStart: + EventConstructor = SyntheticTouchEvent; + break; + case topLevelTypes.topScroll: + EventConstructor = SyntheticUIEvent; + break; + case topLevelTypes.topWheel: + EventConstructor = SyntheticWheelEvent; + break; + case topLevelTypes.topCopy: + case topLevelTypes.topCut: + case topLevelTypes.topPaste: + EventConstructor = SyntheticClipboardEvent; + break; + } + !EventConstructor ? "development" !== 'production' ? invariant(false, 'SimpleEventPlugin: Unhandled event type, `%s`.', topLevelType) : invariant(false) : undefined; + var event = EventConstructor.getPooled(dispatchConfig, topLevelTargetID, nativeEvent, nativeEventTarget); + EventPropagators.accumulateTwoPhaseDispatches(event); + return event; + }, + + didPutListener: function (id, registrationName, listener) { + // Mobile Safari does not fire properly bubble click events on + // non-interactive elements, which means delegated click listeners do not + // fire. The workaround for this bug involves attaching an empty click + // listener on the target node. + if (registrationName === ON_CLICK_KEY) { + var node = ReactMount.getNode(id); + if (!onClickListeners[id]) { + onClickListeners[id] = EventListener.listen(node, 'click', emptyFunction); + } + } + }, + + willDeleteListener: function (id, registrationName) { + if (registrationName === ON_CLICK_KEY) { + onClickListeners[id].remove(); + delete onClickListeners[id]; + } + } + +}; + +module.exports = SimpleEventPlugin; +},{"111":111,"129":129,"136":136,"144":144,"148":148,"15":15,"19":19,"65":65,"89":89,"91":91,"92":92,"93":93,"95":95,"96":96,"97":97,"98":98,"99":99}],89:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule SyntheticClipboardEvent + * @typechecks static-only + */ + +'use strict'; + +var SyntheticEvent = _dereq_(92); + +/** + * @interface Event + * @see http://www.w3.org/TR/clipboard-apis/ + */ +var ClipboardEventInterface = { + clipboardData: function (event) { + return 'clipboardData' in event ? event.clipboardData : window.clipboardData; + } +}; + +/** + * @param {object} dispatchConfig Configuration used to dispatch this event. + * @param {string} dispatchMarker Marker identifying the event target. + * @param {object} nativeEvent Native browser event. + * @extends {SyntheticUIEvent} + */ +function SyntheticClipboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { + SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); +} + +SyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface); + +module.exports = SyntheticClipboardEvent; +},{"92":92}],90:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule SyntheticCompositionEvent + * @typechecks static-only + */ + +'use strict'; + +var SyntheticEvent = _dereq_(92); + +/** + * @interface Event + * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents + */ +var CompositionEventInterface = { + data: null +}; + +/** + * @param {object} dispatchConfig Configuration used to dispatch this event. + * @param {string} dispatchMarker Marker identifying the event target. + * @param {object} nativeEvent Native browser event. + * @extends {SyntheticUIEvent} + */ +function SyntheticCompositionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { + SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); +} + +SyntheticEvent.augmentClass(SyntheticCompositionEvent, CompositionEventInterface); + +module.exports = SyntheticCompositionEvent; +},{"92":92}],91:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule SyntheticDragEvent + * @typechecks static-only + */ + +'use strict'; + +var SyntheticMouseEvent = _dereq_(96); + +/** + * @interface DragEvent + * @see http://www.w3.org/TR/DOM-Level-3-Events/ + */ +var DragEventInterface = { + dataTransfer: null +}; + +/** + * @param {object} dispatchConfig Configuration used to dispatch this event. + * @param {string} dispatchMarker Marker identifying the event target. + * @param {object} nativeEvent Native browser event. + * @extends {SyntheticUIEvent} + */ +function SyntheticDragEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { + SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); +} + +SyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface); + +module.exports = SyntheticDragEvent; +},{"96":96}],92:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule SyntheticEvent + * @typechecks static-only + */ + +'use strict'; + +var PooledClass = _dereq_(24); + +var assign = _dereq_(23); +var emptyFunction = _dereq_(136); +var warning = _dereq_(155); + +/** + * @interface Event + * @see http://www.w3.org/TR/DOM-Level-3-Events/ + */ +var EventInterface = { + type: null, + // currentTarget is set when dispatching; no use in copying it here + currentTarget: emptyFunction.thatReturnsNull, + eventPhase: null, + bubbles: null, + cancelable: null, + timeStamp: function (event) { + return event.timeStamp || Date.now(); + }, + defaultPrevented: null, + isTrusted: null +}; + +/** + * Synthetic events are dispatched by event plugins, typically in response to a + * top-level event delegation handler. + * + * These systems should generally use pooling to reduce the frequency of garbage + * collection. The system should check `isPersistent` to determine whether the + * event should be released into the pool after being dispatched. Users that + * need a persisted event should invoke `persist`. + * + * Synthetic events (and subclasses) implement the DOM Level 3 Events API by + * normalizing browser quirks. Subclasses do not necessarily have to implement a + * DOM interface; custom application-specific events can also subclass this. + * + * @param {object} dispatchConfig Configuration used to dispatch this event. + * @param {string} dispatchMarker Marker identifying the event target. + * @param {object} nativeEvent Native browser event. + */ +function SyntheticEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { + this.dispatchConfig = dispatchConfig; + this.dispatchMarker = dispatchMarker; + this.nativeEvent = nativeEvent; + this.target = nativeEventTarget; + this.currentTarget = nativeEventTarget; + + var Interface = this.constructor.Interface; + for (var propName in Interface) { + if (!Interface.hasOwnProperty(propName)) { + continue; + } + var normalize = Interface[propName]; + if (normalize) { + this[propName] = normalize(nativeEvent); + } else { + this[propName] = nativeEvent[propName]; + } + } + + var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false; + if (defaultPrevented) { + this.isDefaultPrevented = emptyFunction.thatReturnsTrue; + } else { + this.isDefaultPrevented = emptyFunction.thatReturnsFalse; + } + this.isPropagationStopped = emptyFunction.thatReturnsFalse; +} + +assign(SyntheticEvent.prototype, { + + preventDefault: function () { + this.defaultPrevented = true; + var event = this.nativeEvent; + if ("development" !== 'production') { + "development" !== 'production' ? warning(event, 'This synthetic event is reused for performance reasons. If you\'re ' + 'seeing this, you\'re calling `preventDefault` on a ' + 'released/nullified synthetic event. This is a no-op. See ' + 'https://fb.me/react-event-pooling for more information.') : undefined; + } + if (!event) { + return; + } + + if (event.preventDefault) { + event.preventDefault(); + } else { + event.returnValue = false; + } + this.isDefaultPrevented = emptyFunction.thatReturnsTrue; + }, + + stopPropagation: function () { + var event = this.nativeEvent; + if ("development" !== 'production') { + "development" !== 'production' ? warning(event, 'This synthetic event is reused for performance reasons. If you\'re ' + 'seeing this, you\'re calling `stopPropagation` on a ' + 'released/nullified synthetic event. This is a no-op. See ' + 'https://fb.me/react-event-pooling for more information.') : undefined; + } + if (!event) { + return; + } + + if (event.stopPropagation) { + event.stopPropagation(); + } else { + event.cancelBubble = true; + } + this.isPropagationStopped = emptyFunction.thatReturnsTrue; + }, + + /** + * We release all dispatched `SyntheticEvent`s after each event loop, adding + * them back into the pool. This allows a way to hold onto a reference that + * won't be added back into the pool. + */ + persist: function () { + this.isPersistent = emptyFunction.thatReturnsTrue; + }, + + /** + * Checks if this event should be released back into the pool. + * + * @return {boolean} True if this should not be released, false otherwise. + */ + isPersistent: emptyFunction.thatReturnsFalse, + + /** + * `PooledClass` looks for `destructor` on each instance it releases. + */ + destructor: function () { + var Interface = this.constructor.Interface; + for (var propName in Interface) { + this[propName] = null; + } + this.dispatchConfig = null; + this.dispatchMarker = null; + this.nativeEvent = null; + } + +}); + +SyntheticEvent.Interface = EventInterface; + +/** + * Helper to reduce boilerplate when creating subclasses. + * + * @param {function} Class + * @param {?object} Interface + */ +SyntheticEvent.augmentClass = function (Class, Interface) { + var Super = this; + + var prototype = Object.create(Super.prototype); + assign(prototype, Class.prototype); + Class.prototype = prototype; + Class.prototype.constructor = Class; + + Class.Interface = assign({}, Super.Interface, Interface); + Class.augmentClass = Super.augmentClass; + + PooledClass.addPoolingTo(Class, PooledClass.fourArgumentPooler); +}; + +PooledClass.addPoolingTo(SyntheticEvent, PooledClass.fourArgumentPooler); + +module.exports = SyntheticEvent; +},{"136":136,"155":155,"23":23,"24":24}],93:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule SyntheticFocusEvent + * @typechecks static-only + */ + +'use strict'; + +var SyntheticUIEvent = _dereq_(98); + +/** + * @interface FocusEvent + * @see http://www.w3.org/TR/DOM-Level-3-Events/ + */ +var FocusEventInterface = { + relatedTarget: null +}; + +/** + * @param {object} dispatchConfig Configuration used to dispatch this event. + * @param {string} dispatchMarker Marker identifying the event target. + * @param {object} nativeEvent Native browser event. + * @extends {SyntheticUIEvent} + */ +function SyntheticFocusEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { + SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); +} + +SyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface); + +module.exports = SyntheticFocusEvent; +},{"98":98}],94:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule SyntheticInputEvent + * @typechecks static-only + */ + +'use strict'; + +var SyntheticEvent = _dereq_(92); + +/** + * @interface Event + * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105 + * /#events-inputevents + */ +var InputEventInterface = { + data: null +}; + +/** + * @param {object} dispatchConfig Configuration used to dispatch this event. + * @param {string} dispatchMarker Marker identifying the event target. + * @param {object} nativeEvent Native browser event. + * @extends {SyntheticUIEvent} + */ +function SyntheticInputEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { + SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); +} + +SyntheticEvent.augmentClass(SyntheticInputEvent, InputEventInterface); + +module.exports = SyntheticInputEvent; +},{"92":92}],95:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule SyntheticKeyboardEvent + * @typechecks static-only + */ + +'use strict'; + +var SyntheticUIEvent = _dereq_(98); + +var getEventCharCode = _dereq_(111); +var getEventKey = _dereq_(112); +var getEventModifierState = _dereq_(113); + +/** + * @interface KeyboardEvent + * @see http://www.w3.org/TR/DOM-Level-3-Events/ + */ +var KeyboardEventInterface = { + key: getEventKey, + location: null, + ctrlKey: null, + shiftKey: null, + altKey: null, + metaKey: null, + repeat: null, + locale: null, + getModifierState: getEventModifierState, + // Legacy Interface + charCode: function (event) { + // `charCode` is the result of a KeyPress event and represents the value of + // the actual printable character. + + // KeyPress is deprecated, but its replacement is not yet final and not + // implemented in any major browser. Only KeyPress has charCode. + if (event.type === 'keypress') { + return getEventCharCode(event); + } + return 0; + }, + keyCode: function (event) { + // `keyCode` is the result of a KeyDown/Up event and represents the value of + // physical keyboard key. + + // The actual meaning of the value depends on the users' keyboard layout + // which cannot be detected. Assuming that it is a US keyboard layout + // provides a surprisingly accurate mapping for US and European users. + // Due to this, it is left to the user to implement at this time. + if (event.type === 'keydown' || event.type === 'keyup') { + return event.keyCode; + } + return 0; + }, + which: function (event) { + // `which` is an alias for either `keyCode` or `charCode` depending on the + // type of the event. + if (event.type === 'keypress') { + return getEventCharCode(event); + } + if (event.type === 'keydown' || event.type === 'keyup') { + return event.keyCode; + } + return 0; + } +}; + +/** + * @param {object} dispatchConfig Configuration used to dispatch this event. + * @param {string} dispatchMarker Marker identifying the event target. + * @param {object} nativeEvent Native browser event. + * @extends {SyntheticUIEvent} + */ +function SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { + SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); +} + +SyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface); + +module.exports = SyntheticKeyboardEvent; +},{"111":111,"112":112,"113":113,"98":98}],96:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule SyntheticMouseEvent + * @typechecks static-only + */ + +'use strict'; + +var SyntheticUIEvent = _dereq_(98); +var ViewportMetrics = _dereq_(101); + +var getEventModifierState = _dereq_(113); + +/** + * @interface MouseEvent + * @see http://www.w3.org/TR/DOM-Level-3-Events/ + */ +var MouseEventInterface = { + screenX: null, + screenY: null, + clientX: null, + clientY: null, + ctrlKey: null, + shiftKey: null, + altKey: null, + metaKey: null, + getModifierState: getEventModifierState, + button: function (event) { + // Webkit, Firefox, IE9+ + // which: 1 2 3 + // button: 0 1 2 (standard) + var button = event.button; + if ('which' in event) { + return button; + } + // IE<9 + // which: undefined + // button: 0 0 0 + // button: 1 4 2 (onmouseup) + return button === 2 ? 2 : button === 4 ? 1 : 0; + }, + buttons: null, + relatedTarget: function (event) { + return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement); + }, + // "Proprietary" Interface. + pageX: function (event) { + return 'pageX' in event ? event.pageX : event.clientX + ViewportMetrics.currentScrollLeft; + }, + pageY: function (event) { + return 'pageY' in event ? event.pageY : event.clientY + ViewportMetrics.currentScrollTop; + } +}; + +/** + * @param {object} dispatchConfig Configuration used to dispatch this event. + * @param {string} dispatchMarker Marker identifying the event target. + * @param {object} nativeEvent Native browser event. + * @extends {SyntheticUIEvent} + */ +function SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { + SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); +} + +SyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface); + +module.exports = SyntheticMouseEvent; +},{"101":101,"113":113,"98":98}],97:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule SyntheticTouchEvent + * @typechecks static-only + */ + +'use strict'; + +var SyntheticUIEvent = _dereq_(98); + +var getEventModifierState = _dereq_(113); + +/** + * @interface TouchEvent + * @see http://www.w3.org/TR/touch-events/ + */ +var TouchEventInterface = { + touches: null, + targetTouches: null, + changedTouches: null, + altKey: null, + metaKey: null, + ctrlKey: null, + shiftKey: null, + getModifierState: getEventModifierState +}; + +/** + * @param {object} dispatchConfig Configuration used to dispatch this event. + * @param {string} dispatchMarker Marker identifying the event target. + * @param {object} nativeEvent Native browser event. + * @extends {SyntheticUIEvent} + */ +function SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { + SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); +} + +SyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface); + +module.exports = SyntheticTouchEvent; +},{"113":113,"98":98}],98:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule SyntheticUIEvent + * @typechecks static-only + */ + +'use strict'; + +var SyntheticEvent = _dereq_(92); + +var getEventTarget = _dereq_(114); + +/** + * @interface UIEvent + * @see http://www.w3.org/TR/DOM-Level-3-Events/ + */ +var UIEventInterface = { + view: function (event) { + if (event.view) { + return event.view; + } + + var target = getEventTarget(event); + if (target != null && target.window === target) { + // target is a window object + return target; + } + + var doc = target.ownerDocument; + // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8. + if (doc) { + return doc.defaultView || doc.parentWindow; + } else { + return window; + } + }, + detail: function (event) { + return event.detail || 0; + } +}; + +/** + * @param {object} dispatchConfig Configuration used to dispatch this event. + * @param {string} dispatchMarker Marker identifying the event target. + * @param {object} nativeEvent Native browser event. + * @extends {SyntheticEvent} + */ +function SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { + SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); +} + +SyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface); + +module.exports = SyntheticUIEvent; +},{"114":114,"92":92}],99:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule SyntheticWheelEvent + * @typechecks static-only + */ + +'use strict'; + +var SyntheticMouseEvent = _dereq_(96); + +/** + * @interface WheelEvent + * @see http://www.w3.org/TR/DOM-Level-3-Events/ + */ +var WheelEventInterface = { + deltaX: function (event) { + return 'deltaX' in event ? event.deltaX : + // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive). + 'wheelDeltaX' in event ? -event.wheelDeltaX : 0; + }, + deltaY: function (event) { + return 'deltaY' in event ? event.deltaY : + // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive). + 'wheelDeltaY' in event ? -event.wheelDeltaY : + // Fallback to `wheelDelta` for IE<9 and normalize (down is positive). + 'wheelDelta' in event ? -event.wheelDelta : 0; + }, + deltaZ: null, + + // Browsers without "deltaMode" is reporting in raw wheel delta where one + // notch on the scroll is always +/- 120, roughly equivalent to pixels. + // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or + // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size. + deltaMode: null +}; + +/** + * @param {object} dispatchConfig Configuration used to dispatch this event. + * @param {string} dispatchMarker Marker identifying the event target. + * @param {object} nativeEvent Native browser event. + * @extends {SyntheticMouseEvent} + */ +function SyntheticWheelEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) { + SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget); +} + +SyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface); + +module.exports = SyntheticWheelEvent; +},{"96":96}],100:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule Transaction + */ + +'use strict'; + +var invariant = _dereq_(144); + +/** + * `Transaction` creates a black box that is able to wrap any method such that + * certain invariants are maintained before and after the method is invoked + * (Even if an exception is thrown while invoking the wrapped method). Whoever + * instantiates a transaction can provide enforcers of the invariants at + * creation time. The `Transaction` class itself will supply one additional + * automatic invariant for you - the invariant that any transaction instance + * should not be run while it is already being run. You would typically create a + * single instance of a `Transaction` for reuse multiple times, that potentially + * is used to wrap several different methods. Wrappers are extremely simple - + * they only require implementing two methods. + * + * <pre> + * wrappers (injected at creation time) + * + + + * | | + * +-----------------|--------|--------------+ + * | v | | + * | +---------------+ | | + * | +--| wrapper1 |---|----+ | + * | | +---------------+ v | | + * | | +-------------+ | | + * | | +----| wrapper2 |--------+ | + * | | | +-------------+ | | | + * | | | | | | + * | v v v v | wrapper + * | +---+ +---+ +---------+ +---+ +---+ | invariants + * perform(anyMethod) | | | | | | | | | | | | maintained + * +----------------->|-|---|-|---|-->|anyMethod|---|---|-|---|-|--------> + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * | +---+ +---+ +---------+ +---+ +---+ | + * | initialize close | + * +-----------------------------------------+ + * </pre> + * + * Use cases: + * - Preserving the input selection ranges before/after reconciliation. + * Restoring selection even in the event of an unexpected error. + * - Deactivating events while rearranging the DOM, preventing blurs/focuses, + * while guaranteeing that afterwards, the event system is reactivated. + * - Flushing a queue of collected DOM mutations to the main UI thread after a + * reconciliation takes place in a worker thread. + * - Invoking any collected `componentDidUpdate` callbacks after rendering new + * content. + * - (Future use case): Wrapping particular flushes of the `ReactWorker` queue + * to preserve the `scrollTop` (an automatic scroll aware DOM). + * - (Future use case): Layout calculations before and after DOM updates. + * + * Transactional plugin API: + * - A module that has an `initialize` method that returns any precomputation. + * - and a `close` method that accepts the precomputation. `close` is invoked + * when the wrapped process is completed, or has failed. + * + * @param {Array<TransactionalWrapper>} transactionWrapper Wrapper modules + * that implement `initialize` and `close`. + * @return {Transaction} Single transaction for reuse in thread. + * + * @class Transaction + */ +var Mixin = { + /** + * Sets up this instance so that it is prepared for collecting metrics. Does + * so such that this setup method may be used on an instance that is already + * initialized, in a way that does not consume additional memory upon reuse. + * That can be useful if you decide to make your subclass of this mixin a + * "PooledClass". + */ + reinitializeTransaction: function () { + this.transactionWrappers = this.getTransactionWrappers(); + if (this.wrapperInitData) { + this.wrapperInitData.length = 0; + } else { + this.wrapperInitData = []; + } + this._isInTransaction = false; + }, + + _isInTransaction: false, + + /** + * @abstract + * @return {Array<TransactionWrapper>} Array of transaction wrappers. + */ + getTransactionWrappers: null, + + isInTransaction: function () { + return !!this._isInTransaction; + }, + + /** + * Executes the function within a safety window. Use this for the top level + * methods that result in large amounts of computation/mutations that would + * need to be safety checked. The optional arguments helps prevent the need + * to bind in many cases. + * + * @param {function} method Member of scope to call. + * @param {Object} scope Scope to invoke from. + * @param {Object?=} a Argument to pass to the method. + * @param {Object?=} b Argument to pass to the method. + * @param {Object?=} c Argument to pass to the method. + * @param {Object?=} d Argument to pass to the method. + * @param {Object?=} e Argument to pass to the method. + * @param {Object?=} f Argument to pass to the method. + * + * @return {*} Return value from `method`. + */ + perform: function (method, scope, a, b, c, d, e, f) { + !!this.isInTransaction() ? "development" !== 'production' ? invariant(false, 'Transaction.perform(...): Cannot initialize a transaction when there ' + 'is already an outstanding transaction.') : invariant(false) : undefined; + var errorThrown; + var ret; + try { + this._isInTransaction = true; + // Catching errors makes debugging more difficult, so we start with + // errorThrown set to true before setting it to false after calling + // close -- if it's still set to true in the finally block, it means + // one of these calls threw. + errorThrown = true; + this.initializeAll(0); + ret = method.call(scope, a, b, c, d, e, f); + errorThrown = false; + } finally { + try { + if (errorThrown) { + // If `method` throws, prefer to show that stack trace over any thrown + // by invoking `closeAll`. + try { + this.closeAll(0); + } catch (err) {} + } else { + // Since `method` didn't throw, we don't want to silence the exception + // here. + this.closeAll(0); + } + } finally { + this._isInTransaction = false; + } + } + return ret; + }, + + initializeAll: function (startIndex) { + var transactionWrappers = this.transactionWrappers; + for (var i = startIndex; i < transactionWrappers.length; i++) { + var wrapper = transactionWrappers[i]; + try { + // Catching errors makes debugging more difficult, so we start with the + // OBSERVED_ERROR state before overwriting it with the real return value + // of initialize -- if it's still set to OBSERVED_ERROR in the finally + // block, it means wrapper.initialize threw. + this.wrapperInitData[i] = Transaction.OBSERVED_ERROR; + this.wrapperInitData[i] = wrapper.initialize ? wrapper.initialize.call(this) : null; + } finally { + if (this.wrapperInitData[i] === Transaction.OBSERVED_ERROR) { + // The initializer for wrapper i threw an error; initialize the + // remaining wrappers but silence any exceptions from them to ensure + // that the first error is the one to bubble up. + try { + this.initializeAll(i + 1); + } catch (err) {} + } + } + } + }, + + /** + * Invokes each of `this.transactionWrappers.close[i]` functions, passing into + * them the respective return values of `this.transactionWrappers.init[i]` + * (`close`rs that correspond to initializers that failed will not be + * invoked). + */ + closeAll: function (startIndex) { + !this.isInTransaction() ? "development" !== 'production' ? invariant(false, 'Transaction.closeAll(): Cannot close transaction when none are open.') : invariant(false) : undefined; + var transactionWrappers = this.transactionWrappers; + for (var i = startIndex; i < transactionWrappers.length; i++) { + var wrapper = transactionWrappers[i]; + var initData = this.wrapperInitData[i]; + var errorThrown; + try { + // Catching errors makes debugging more difficult, so we start with + // errorThrown set to true before setting it to false after calling + // close -- if it's still set to true in the finally block, it means + // wrapper.close threw. + errorThrown = true; + if (initData !== Transaction.OBSERVED_ERROR && wrapper.close) { + wrapper.close.call(this, initData); + } + errorThrown = false; + } finally { + if (errorThrown) { + // The closer for wrapper i threw an error; close the remaining + // wrappers but silence any exceptions from them to ensure that the + // first error is the one to bubble up. + try { + this.closeAll(i + 1); + } catch (e) {} + } + } + } + this.wrapperInitData.length = 0; + } +}; + +var Transaction = { + + Mixin: Mixin, + + /** + * Token to look for to determine if an error occurred. + */ + OBSERVED_ERROR: {} + +}; + +module.exports = Transaction; +},{"144":144}],101:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ViewportMetrics + */ + +'use strict'; + +var ViewportMetrics = { + + currentScrollLeft: 0, + + currentScrollTop: 0, + + refreshScrollValues: function (scrollPosition) { + ViewportMetrics.currentScrollLeft = scrollPosition.x; + ViewportMetrics.currentScrollTop = scrollPosition.y; + } + +}; + +module.exports = ViewportMetrics; +},{}],102:[function(_dereq_,module,exports){ +/** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule accumulateInto + */ + +'use strict'; + +var invariant = _dereq_(144); + +/** + * + * Accumulates items that must not be null or undefined into the first one. This + * is used to conserve memory by avoiding array allocations, and thus sacrifices + * API cleanness. Since `current` can be null before being passed in and not + * null after this function, make sure to assign it back to `current`: + * + * `a = accumulateInto(a, b);` + * + * This API should be sparingly used. Try `accumulate` for something cleaner. + * + * @return {*|array<*>} An accumulation of items. + */ + +function accumulateInto(current, next) { + !(next != null) ? "development" !== 'production' ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : invariant(false) : undefined; + if (current == null) { + return next; + } + + // Both are not empty. Warning: Never call x.concat(y) when you are not + // certain that x is an Array (x could be a string with concat method). + var currentIsArray = Array.isArray(current); + var nextIsArray = Array.isArray(next); + + if (currentIsArray && nextIsArray) { + current.push.apply(current, next); + return current; + } + + if (currentIsArray) { + current.push(next); + return current; + } + + if (nextIsArray) { + // A bit too dangerous to mutate `next`. + return [current].concat(next); + } + + return [current, next]; +} + +module.exports = accumulateInto; +},{"144":144}],103:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule adler32 + */ + +'use strict'; + +var MOD = 65521; + +// adler32 is not cryptographically strong, and is only used to sanity check that +// markup generated on the server matches the markup generated on the client. +// This implementation (a modified version of the SheetJS version) has been optimized +// for our use case, at the expense of conforming to the adler32 specification +// for non-ascii inputs. +function adler32(data) { + var a = 1; + var b = 0; + var i = 0; + var l = data.length; + var m = l & ~0x3; + while (i < m) { + for (; i < Math.min(i + 4096, m); i += 4) { + b += (a += data.charCodeAt(i)) + (a += data.charCodeAt(i + 1)) + (a += data.charCodeAt(i + 2)) + (a += data.charCodeAt(i + 3)); + } + a %= MOD; + b %= MOD; + } + for (; i < l; i++) { + b += a += data.charCodeAt(i); + } + a %= MOD; + b %= MOD; + return a | b << 16; +} + +module.exports = adler32; +},{}],104:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule canDefineProperty + */ + +'use strict'; + +var canDefineProperty = false; +if ("development" !== 'production') { + try { + Object.defineProperty({}, 'x', { get: function () {} }); + canDefineProperty = true; + } catch (x) { + // IE will fail on defineProperty + } +} + +module.exports = canDefineProperty; +},{}],105:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule dangerousStyleValue + * @typechecks static-only + */ + +'use strict'; + +var CSSProperty = _dereq_(4); + +var isUnitlessNumber = CSSProperty.isUnitlessNumber; + +/** + * Convert a value into the proper css writable value. The style name `name` + * should be logical (no hyphens), as specified + * in `CSSProperty.isUnitlessNumber`. + * + * @param {string} name CSS property name such as `topMargin`. + * @param {*} value CSS property value such as `10px`. + * @return {string} Normalized style value with dimensions applied. + */ +function dangerousStyleValue(name, value) { + // Note that we've removed escapeTextForBrowser() calls here since the + // whole string will be escaped when the attribute is injected into + // the markup. If you provide unsafe user data here they can inject + // arbitrary CSS which may be problematic (I couldn't repro this): + // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet + // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/ + // This is not an XSS hole but instead a potential CSS injection issue + // which has lead to a greater discussion about how we're going to + // trust URLs moving forward. See #2115901 + + var isEmpty = value == null || typeof value === 'boolean' || value === ''; + if (isEmpty) { + return ''; + } + + var isNonNumeric = isNaN(value); + if (isNonNumeric || value === 0 || isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name]) { + return '' + value; // cast to string + } + + if (typeof value === 'string') { + value = value.trim(); + } + return value + 'px'; +} + +module.exports = dangerousStyleValue; +},{"4":4}],106:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule deprecated + */ + +'use strict'; + +var assign = _dereq_(23); +var warning = _dereq_(155); + +/** + * This will log a single deprecation notice per function and forward the call + * on to the new API. + * + * @param {string} fnName The name of the function + * @param {string} newModule The module that fn will exist in + * @param {string} newPackage The module that fn will exist in + * @param {*} ctx The context this forwarded call should run in + * @param {function} fn The function to forward on to + * @return {function} The function that will warn once and then call fn + */ +function deprecated(fnName, newModule, newPackage, ctx, fn) { + var warned = false; + if ("development" !== 'production') { + var newFn = function () { + "development" !== 'production' ? warning(warned, + // Require examples in this string must be split to prevent React's + // build tools from mistaking them for real requires. + // Otherwise the build tools will attempt to build a '%s' module. + 'React.%s is deprecated. Please use %s.%s from require' + '(\'%s\') ' + 'instead.', fnName, newModule, fnName, newPackage) : undefined; + warned = true; + return fn.apply(ctx, arguments); + }; + // We need to make sure all properties of the original fn are copied over. + // In particular, this is needed to support PropTypes + return assign(newFn, fn); + } + + return fn; +} + +module.exports = deprecated; +},{"155":155,"23":23}],107:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule escapeTextContentForBrowser + */ + +'use strict'; + +var ESCAPE_LOOKUP = { + '&': '&', + '>': '>', + '<': '<', + '"': '"', + '\'': ''' +}; + +var ESCAPE_REGEX = /[&><"']/g; + +function escaper(match) { + return ESCAPE_LOOKUP[match]; +} + +/** + * Escapes text to prevent scripting attacks. + * + * @param {*} text Text value to escape. + * @return {string} An escaped string. + */ +function escapeTextContentForBrowser(text) { + return ('' + text).replace(ESCAPE_REGEX, escaper); +} + +module.exports = escapeTextContentForBrowser; +},{}],108:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule findDOMNode + * @typechecks static-only + */ + +'use strict'; + +var ReactCurrentOwner = _dereq_(34); +var ReactInstanceMap = _dereq_(62); +var ReactMount = _dereq_(65); + +var invariant = _dereq_(144); +var warning = _dereq_(155); + +/** + * Returns the DOM node rendered by this element. + * + * @param {ReactComponent|DOMElement} componentOrElement + * @return {?DOMElement} The root node of this element. + */ +function findDOMNode(componentOrElement) { + if ("development" !== 'production') { + var owner = ReactCurrentOwner.current; + if (owner !== null) { + "development" !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing getDOMNode or findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : undefined; + owner._warnedAboutRefsInRender = true; + } + } + if (componentOrElement == null) { + return null; + } + if (componentOrElement.nodeType === 1) { + return componentOrElement; + } + if (ReactInstanceMap.has(componentOrElement)) { + return ReactMount.getNodeFromInstance(componentOrElement); + } + !(componentOrElement.render == null || typeof componentOrElement.render !== 'function') ? "development" !== 'production' ? invariant(false, 'findDOMNode was called on an unmounted component.') : invariant(false) : undefined; + !false ? "development" !== 'production' ? invariant(false, 'Element appears to be neither ReactComponent nor DOMNode (keys: %s)', Object.keys(componentOrElement)) : invariant(false) : undefined; +} + +module.exports = findDOMNode; +},{"144":144,"155":155,"34":34,"62":62,"65":65}],109:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule flattenChildren + */ + +'use strict'; + +var traverseAllChildren = _dereq_(127); +var warning = _dereq_(155); + +/** + * @param {function} traverseContext Context passed through traversal. + * @param {?ReactComponent} child React child component. + * @param {!string} name String name of key path to child. + */ +function flattenSingleChildIntoContext(traverseContext, child, name) { + // We found a component instance. + var result = traverseContext; + var keyUnique = result[name] === undefined; + if ("development" !== 'production') { + "development" !== 'production' ? warning(keyUnique, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.', name) : undefined; + } + if (keyUnique && child != null) { + result[name] = child; + } +} + +/** + * Flattens children that are typically specified as `props.children`. Any null + * children will not be included in the resulting object. + * @return {!object} flattened children keyed by name. + */ +function flattenChildren(children) { + if (children == null) { + return children; + } + var result = {}; + traverseAllChildren(children, flattenSingleChildIntoContext, result); + return result; +} + +module.exports = flattenChildren; +},{"127":127,"155":155}],110:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule forEachAccumulated + */ + +'use strict'; + +/** + * @param {array} arr an "accumulation" of items which is either an Array or + * a single item. Useful when paired with the `accumulate` module. This is a + * simple utility that allows us to reason about a collection of items, but + * handling the case when there is exactly one item (and we do not need to + * allocate an array). + */ +var forEachAccumulated = function (arr, cb, scope) { + if (Array.isArray(arr)) { + arr.forEach(cb, scope); + } else if (arr) { + cb.call(scope, arr); + } +}; + +module.exports = forEachAccumulated; +},{}],111:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule getEventCharCode + * @typechecks static-only + */ + +'use strict'; + +/** + * `charCode` represents the actual "character code" and is safe to use with + * `String.fromCharCode`. As such, only keys that correspond to printable + * characters produce a valid `charCode`, the only exception to this is Enter. + * The Tab-key is considered non-printable and does not have a `charCode`, + * presumably because it does not produce a tab-character in browsers. + * + * @param {object} nativeEvent Native browser event. + * @return {number} Normalized `charCode` property. + */ +function getEventCharCode(nativeEvent) { + var charCode; + var keyCode = nativeEvent.keyCode; + + if ('charCode' in nativeEvent) { + charCode = nativeEvent.charCode; + + // FF does not set `charCode` for the Enter-key, check against `keyCode`. + if (charCode === 0 && keyCode === 13) { + charCode = 13; + } + } else { + // IE8 does not implement `charCode`, but `keyCode` has the correct value. + charCode = keyCode; + } + + // Some non-printable keys are reported in `charCode`/`keyCode`, discard them. + // Must not discard the (non-)printable Enter-key. + if (charCode >= 32 || charCode === 13) { + return charCode; + } + + return 0; +} + +module.exports = getEventCharCode; +},{}],112:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule getEventKey + * @typechecks static-only + */ + +'use strict'; + +var getEventCharCode = _dereq_(111); + +/** + * Normalization of deprecated HTML5 `key` values + * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names + */ +var normalizeKey = { + 'Esc': 'Escape', + 'Spacebar': ' ', + 'Left': 'ArrowLeft', + 'Up': 'ArrowUp', + 'Right': 'ArrowRight', + 'Down': 'ArrowDown', + 'Del': 'Delete', + 'Win': 'OS', + 'Menu': 'ContextMenu', + 'Apps': 'ContextMenu', + 'Scroll': 'ScrollLock', + 'MozPrintableKey': 'Unidentified' +}; + +/** + * Translation from legacy `keyCode` to HTML5 `key` + * Only special keys supported, all others depend on keyboard layout or browser + * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names + */ +var translateToKey = { + 8: 'Backspace', + 9: 'Tab', + 12: 'Clear', + 13: 'Enter', + 16: 'Shift', + 17: 'Control', + 18: 'Alt', + 19: 'Pause', + 20: 'CapsLock', + 27: 'Escape', + 32: ' ', + 33: 'PageUp', + 34: 'PageDown', + 35: 'End', + 36: 'Home', + 37: 'ArrowLeft', + 38: 'ArrowUp', + 39: 'ArrowRight', + 40: 'ArrowDown', + 45: 'Insert', + 46: 'Delete', + 112: 'F1', 113: 'F2', 114: 'F3', 115: 'F4', 116: 'F5', 117: 'F6', + 118: 'F7', 119: 'F8', 120: 'F9', 121: 'F10', 122: 'F11', 123: 'F12', + 144: 'NumLock', + 145: 'ScrollLock', + 224: 'Meta' +}; + +/** + * @param {object} nativeEvent Native browser event. + * @return {string} Normalized `key` property. + */ +function getEventKey(nativeEvent) { + if (nativeEvent.key) { + // Normalize inconsistent values reported by browsers due to + // implementations of a working draft specification. + + // FireFox implements `key` but returns `MozPrintableKey` for all + // printable characters (normalized to `Unidentified`), ignore it. + var key = normalizeKey[nativeEvent.key] || nativeEvent.key; + if (key !== 'Unidentified') { + return key; + } + } + + // Browser does not implement `key`, polyfill as much of it as we can. + if (nativeEvent.type === 'keypress') { + var charCode = getEventCharCode(nativeEvent); + + // The enter-key is technically both printable and non-printable and can + // thus be captured by `keypress`, no other non-printable key should. + return charCode === 13 ? 'Enter' : String.fromCharCode(charCode); + } + if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') { + // While user keyboard layout determines the actual meaning of each + // `keyCode` value, almost all function keys have a universal value. + return translateToKey[nativeEvent.keyCode] || 'Unidentified'; + } + return ''; +} + +module.exports = getEventKey; +},{"111":111}],113:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule getEventModifierState + * @typechecks static-only + */ + +'use strict'; + +/** + * Translation from modifier key to the associated property in the event. + * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers + */ + +var modifierKeyToProp = { + 'Alt': 'altKey', + 'Control': 'ctrlKey', + 'Meta': 'metaKey', + 'Shift': 'shiftKey' +}; + +// IE8 does not implement getModifierState so we simply map it to the only +// modifier keys exposed by the event itself, does not support Lock-keys. +// Currently, all major browsers except Chrome seems to support Lock-keys. +function modifierStateGetter(keyArg) { + var syntheticEvent = this; + var nativeEvent = syntheticEvent.nativeEvent; + if (nativeEvent.getModifierState) { + return nativeEvent.getModifierState(keyArg); + } + var keyProp = modifierKeyToProp[keyArg]; + return keyProp ? !!nativeEvent[keyProp] : false; +} + +function getEventModifierState(nativeEvent) { + return modifierStateGetter; +} + +module.exports = getEventModifierState; +},{}],114:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule getEventTarget + * @typechecks static-only + */ + +'use strict'; + +/** + * Gets the target node from a native browser event by accounting for + * inconsistencies in browser DOM APIs. + * + * @param {object} nativeEvent Native browser event. + * @return {DOMEventTarget} Target node. + */ +function getEventTarget(nativeEvent) { + var target = nativeEvent.target || nativeEvent.srcElement || window; + // Safari may fire events on text nodes (Node.TEXT_NODE is 3). + // @see http://www.quirksmode.org/js/events_properties.html + return target.nodeType === 3 ? target.parentNode : target; +} + +module.exports = getEventTarget; +},{}],115:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule getIteratorFn + * @typechecks static-only + */ + +'use strict'; + +/* global Symbol */ +var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; +var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. + +/** + * Returns the iterator method function contained on the iterable object. + * + * Be sure to invoke the function with the iterable as context: + * + * var iteratorFn = getIteratorFn(myIterable); + * if (iteratorFn) { + * var iterator = iteratorFn.call(myIterable); + * ... + * } + * + * @param {?object} maybeIterable + * @return {?function} + */ +function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + if (typeof iteratorFn === 'function') { + return iteratorFn; + } +} + +module.exports = getIteratorFn; +},{}],116:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule getNodeForCharacterOffset + */ + +'use strict'; + +/** + * Given any node return the first leaf node without children. + * + * @param {DOMElement|DOMTextNode} node + * @return {DOMElement|DOMTextNode} + */ +function getLeafNode(node) { + while (node && node.firstChild) { + node = node.firstChild; + } + return node; +} + +/** + * Get the next sibling within a container. This will walk up the + * DOM if a node's siblings have been exhausted. + * + * @param {DOMElement|DOMTextNode} node + * @return {?DOMElement|DOMTextNode} + */ +function getSiblingNode(node) { + while (node) { + if (node.nextSibling) { + return node.nextSibling; + } + node = node.parentNode; + } +} + +/** + * Get object describing the nodes which contain characters at offset. + * + * @param {DOMElement|DOMTextNode} root + * @param {number} offset + * @return {?object} + */ +function getNodeForCharacterOffset(root, offset) { + var node = getLeafNode(root); + var nodeStart = 0; + var nodeEnd = 0; + + while (node) { + if (node.nodeType === 3) { + nodeEnd = nodeStart + node.textContent.length; + + if (nodeStart <= offset && nodeEnd >= offset) { + return { + node: node, + offset: offset - nodeStart + }; + } + + nodeStart = nodeEnd; + } + + node = getLeafNode(getSiblingNode(node)); + } +} + +module.exports = getNodeForCharacterOffset; +},{}],117:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule getTextContentAccessor + */ + +'use strict'; + +var ExecutionEnvironment = _dereq_(130); + +var contentKey = null; + +/** + * Gets the key used to access text content on a DOM node. + * + * @return {?string} Key used to access text content. + * @internal + */ +function getTextContentAccessor() { + if (!contentKey && ExecutionEnvironment.canUseDOM) { + // Prefer textContent to innerText because many browsers support both but + // SVG <text> elements don't support innerText even when <div> does. + contentKey = 'textContent' in document.documentElement ? 'textContent' : 'innerText'; + } + return contentKey; +} + +module.exports = getTextContentAccessor; +},{"130":130}],118:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule instantiateReactComponent + * @typechecks static-only + */ + +'use strict'; + +var ReactCompositeComponent = _dereq_(33); +var ReactEmptyComponent = _dereq_(54); +var ReactNativeComponent = _dereq_(68); + +var assign = _dereq_(23); +var invariant = _dereq_(144); +var warning = _dereq_(155); + +// To avoid a cyclic dependency, we create the final class in this module +var ReactCompositeComponentWrapper = function () {}; +assign(ReactCompositeComponentWrapper.prototype, ReactCompositeComponent.Mixin, { + _instantiateReactComponent: instantiateReactComponent +}); + +function getDeclarationErrorAddendum(owner) { + if (owner) { + var name = owner.getName(); + if (name) { + return ' Check the render method of `' + name + '`.'; + } + } + return ''; +} + +/** + * Check if the type reference is a known internal type. I.e. not a user + * provided composite type. + * + * @param {function} type + * @return {boolean} Returns true if this is a valid internal type. + */ +function isInternalComponentType(type) { + return typeof type === 'function' && typeof type.prototype !== 'undefined' && typeof type.prototype.mountComponent === 'function' && typeof type.prototype.receiveComponent === 'function'; +} + +/** + * Given a ReactNode, create an instance that will actually be mounted. + * + * @param {ReactNode} node + * @return {object} A new instance of the element's constructor. + * @protected + */ +function instantiateReactComponent(node) { + var instance; + + if (node === null || node === false) { + instance = new ReactEmptyComponent(instantiateReactComponent); + } else if (typeof node === 'object') { + var element = node; + !(element && (typeof element.type === 'function' || typeof element.type === 'string')) ? "development" !== 'production' ? invariant(false, 'Element type is invalid: expected a string (for built-in components) ' + 'or a class/function (for composite components) but got: %s.%s', element.type == null ? element.type : typeof element.type, getDeclarationErrorAddendum(element._owner)) : invariant(false) : undefined; + + // Special case string values + if (typeof element.type === 'string') { + instance = ReactNativeComponent.createInternalComponent(element); + } else if (isInternalComponentType(element.type)) { + // This is temporarily available for custom components that are not string + // representations. I.e. ART. Once those are updated to use the string + // representation, we can drop this code path. + instance = new element.type(element); + } else { + instance = new ReactCompositeComponentWrapper(); + } + } else if (typeof node === 'string' || typeof node === 'number') { + instance = ReactNativeComponent.createInstanceForText(node); + } else { + !false ? "development" !== 'production' ? invariant(false, 'Encountered invalid React node of type %s', typeof node) : invariant(false) : undefined; + } + + if ("development" !== 'production') { + "development" !== 'production' ? warning(typeof instance.construct === 'function' && typeof instance.mountComponent === 'function' && typeof instance.receiveComponent === 'function' && typeof instance.unmountComponent === 'function', 'Only React Components can be mounted.') : undefined; + } + + // Sets up the instance. This can probably just move into the constructor now. + instance.construct(node); + + // These two fields are used by the DOM and ART diffing algorithms + // respectively. Instead of using expandos on components, we should be + // storing the state needed by the diffing algorithms elsewhere. + instance._mountIndex = 0; + instance._mountImage = null; + + if ("development" !== 'production') { + instance._isOwnerNecessary = false; + instance._warnedAboutRefsInRender = false; + } + + // Internal instances should fully constructed at this point, so they should + // not get any new fields added to them at this point. + if ("development" !== 'production') { + if (Object.preventExtensions) { + Object.preventExtensions(instance); + } + } + + return instance; +} + +module.exports = instantiateReactComponent; +},{"144":144,"155":155,"23":23,"33":33,"54":54,"68":68}],119:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule isEventSupported + */ + +'use strict'; + +var ExecutionEnvironment = _dereq_(130); + +var useHasFeature; +if (ExecutionEnvironment.canUseDOM) { + useHasFeature = document.implementation && document.implementation.hasFeature && + // always returns true in newer browsers as per the standard. + // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature + document.implementation.hasFeature('', '') !== true; +} + +/** + * Checks if an event is supported in the current execution environment. + * + * NOTE: This will not work correctly for non-generic events such as `change`, + * `reset`, `load`, `error`, and `select`. + * + * Borrows from Modernizr. + * + * @param {string} eventNameSuffix Event name, e.g. "click". + * @param {?boolean} capture Check if the capture phase is supported. + * @return {boolean} True if the event is supported. + * @internal + * @license Modernizr 3.0.0pre (Custom Build) | MIT + */ +function isEventSupported(eventNameSuffix, capture) { + if (!ExecutionEnvironment.canUseDOM || capture && !('addEventListener' in document)) { + return false; + } + + var eventName = 'on' + eventNameSuffix; + var isSupported = (eventName in document); + + if (!isSupported) { + var element = document.createElement('div'); + element.setAttribute(eventName, 'return;'); + isSupported = typeof element[eventName] === 'function'; + } + + if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') { + // This is the only way to test support for the `wheel` event in IE9+. + isSupported = document.implementation.hasFeature('Events.wheel', '3.0'); + } + + return isSupported; +} + +module.exports = isEventSupported; +},{"130":130}],120:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule isTextInputElement + */ + +'use strict'; + +/** + * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary + */ +var supportedInputTypes = { + 'color': true, + 'date': true, + 'datetime': true, + 'datetime-local': true, + 'email': true, + 'month': true, + 'number': true, + 'password': true, + 'range': true, + 'search': true, + 'tel': true, + 'text': true, + 'time': true, + 'url': true, + 'week': true +}; + +function isTextInputElement(elem) { + var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase(); + return nodeName && (nodeName === 'input' && supportedInputTypes[elem.type] || nodeName === 'textarea'); +} + +module.exports = isTextInputElement; +},{}],121:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule onlyChild + */ +'use strict'; + +var ReactElement = _dereq_(52); + +var invariant = _dereq_(144); + +/** + * Returns the first child in a collection of children and verifies that there + * is only one child in the collection. The current implementation of this + * function assumes that a single child gets passed without a wrapper, but the + * purpose of this helper function is to abstract away the particular structure + * of children. + * + * @param {?object} children Child collection structure. + * @return {ReactComponent} The first and only `ReactComponent` contained in the + * structure. + */ +function onlyChild(children) { + !ReactElement.isValidElement(children) ? "development" !== 'production' ? invariant(false, 'onlyChild must be passed a children with exactly one child.') : invariant(false) : undefined; + return children; +} + +module.exports = onlyChild; +},{"144":144,"52":52}],122:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule quoteAttributeValueForBrowser + */ + +'use strict'; + +var escapeTextContentForBrowser = _dereq_(107); + +/** + * Escapes attribute value to prevent scripting attacks. + * + * @param {*} value Value to escape. + * @return {string} An escaped string. + */ +function quoteAttributeValueForBrowser(value) { + return '"' + escapeTextContentForBrowser(value) + '"'; +} + +module.exports = quoteAttributeValueForBrowser; +},{"107":107}],123:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * +* @providesModule renderSubtreeIntoContainer +*/ + +'use strict'; + +var ReactMount = _dereq_(65); + +module.exports = ReactMount.renderSubtreeIntoContainer; +},{"65":65}],124:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule setInnerHTML + */ + +/* globals MSApp */ + +'use strict'; + +var ExecutionEnvironment = _dereq_(130); + +var WHITESPACE_TEST = /^[ \r\n\t\f]/; +var NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/; + +/** + * Set the innerHTML property of a node, ensuring that whitespace is preserved + * even in IE8. + * + * @param {DOMElement} node + * @param {string} html + * @internal + */ +var setInnerHTML = function (node, html) { + node.innerHTML = html; +}; + +// Win8 apps: Allow all html to be inserted +if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) { + setInnerHTML = function (node, html) { + MSApp.execUnsafeLocalFunction(function () { + node.innerHTML = html; + }); + }; +} + +if (ExecutionEnvironment.canUseDOM) { + // IE8: When updating a just created node with innerHTML only leading + // whitespace is removed. When updating an existing node with innerHTML + // whitespace in root TextNodes is also collapsed. + // @see quirksmode.org/bugreports/archives/2004/11/innerhtml_and_t.html + + // Feature detection; only IE8 is known to behave improperly like this. + var testElement = document.createElement('div'); + testElement.innerHTML = ' '; + if (testElement.innerHTML === '') { + setInnerHTML = function (node, html) { + // Magic theory: IE8 supposedly differentiates between added and updated + // nodes when processing innerHTML, innerHTML on updated nodes suffers + // from worse whitespace behavior. Re-adding a node like this triggers + // the initial and more favorable whitespace behavior. + // TODO: What to do on a detached node? + if (node.parentNode) { + node.parentNode.replaceChild(node, node); + } + + // We also implement a workaround for non-visible tags disappearing into + // thin air on IE8, this only happens if there is no visible text + // in-front of the non-visible tags. Piggyback on the whitespace fix + // and simply check if any non-visible tags appear in the source. + if (WHITESPACE_TEST.test(html) || html[0] === '<' && NONVISIBLE_TEST.test(html)) { + // Recover leading whitespace by temporarily prepending any character. + // \uFEFF has the potential advantage of being zero-width/invisible. + // UglifyJS drops U+FEFF chars when parsing, so use String.fromCharCode + // in hopes that this is preserved even if "\uFEFF" is transformed to + // the actual Unicode character (by Babel, for example). + // https://github.com/mishoo/UglifyJS2/blob/v2.4.20/lib/parse.js#L216 + node.innerHTML = String.fromCharCode(0xFEFF) + html; + + // deleteData leaves an empty `TextNode` which offsets the index of all + // children. Definitely want to avoid this. + var textNode = node.firstChild; + if (textNode.data.length === 1) { + node.removeChild(textNode); + } else { + textNode.deleteData(0, 1); + } + } else { + node.innerHTML = html; + } + }; + } +} + +module.exports = setInnerHTML; +},{"130":130}],125:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule setTextContent + */ + +'use strict'; + +var ExecutionEnvironment = _dereq_(130); +var escapeTextContentForBrowser = _dereq_(107); +var setInnerHTML = _dereq_(124); + +/** + * Set the textContent property of a node, ensuring that whitespace is preserved + * even in IE8. innerText is a poor substitute for textContent and, among many + * issues, inserts <br> instead of the literal newline chars. innerHTML behaves + * as it should. + * + * @param {DOMElement} node + * @param {string} text + * @internal + */ +var setTextContent = function (node, text) { + node.textContent = text; +}; + +if (ExecutionEnvironment.canUseDOM) { + if (!('textContent' in document.documentElement)) { + setTextContent = function (node, text) { + setInnerHTML(node, escapeTextContentForBrowser(text)); + }; + } +} + +module.exports = setTextContent; +},{"107":107,"124":124,"130":130}],126:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule shouldUpdateReactComponent + * @typechecks static-only + */ + +'use strict'; + +/** + * Given a `prevElement` and `nextElement`, determines if the existing + * instance should be updated as opposed to being destroyed or replaced by a new + * instance. Both arguments are elements. This ensures that this logic can + * operate on stateless trees without any backing instance. + * + * @param {?object} prevElement + * @param {?object} nextElement + * @return {boolean} True if the existing instance should be updated. + * @protected + */ +function shouldUpdateReactComponent(prevElement, nextElement) { + var prevEmpty = prevElement === null || prevElement === false; + var nextEmpty = nextElement === null || nextElement === false; + if (prevEmpty || nextEmpty) { + return prevEmpty === nextEmpty; + } + + var prevType = typeof prevElement; + var nextType = typeof nextElement; + if (prevType === 'string' || prevType === 'number') { + return nextType === 'string' || nextType === 'number'; + } else { + return nextType === 'object' && prevElement.type === nextElement.type && prevElement.key === nextElement.key; + } + return false; +} + +module.exports = shouldUpdateReactComponent; +},{}],127:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule traverseAllChildren + */ + +'use strict'; + +var ReactCurrentOwner = _dereq_(34); +var ReactElement = _dereq_(52); +var ReactInstanceHandles = _dereq_(61); + +var getIteratorFn = _dereq_(115); +var invariant = _dereq_(144); +var warning = _dereq_(155); + +var SEPARATOR = ReactInstanceHandles.SEPARATOR; +var SUBSEPARATOR = ':'; + +/** + * TODO: Test that a single child and an array with one item have the same key + * pattern. + */ + +var userProvidedKeyEscaperLookup = { + '=': '=0', + '.': '=1', + ':': '=2' +}; + +var userProvidedKeyEscapeRegex = /[=.:]/g; + +var didWarnAboutMaps = false; + +function userProvidedKeyEscaper(match) { + return userProvidedKeyEscaperLookup[match]; +} + +/** + * Generate a key string that identifies a component within a set. + * + * @param {*} component A component that could contain a manual key. + * @param {number} index Index that is used if a manual key is not provided. + * @return {string} + */ +function getComponentKey(component, index) { + if (component && component.key != null) { + // Explicit key + return wrapUserProvidedKey(component.key); + } + // Implicit key determined by the index in the set + return index.toString(36); +} + +/** + * Escape a component key so that it is safe to use in a reactid. + * + * @param {*} text Component key to be escaped. + * @return {string} An escaped string. + */ +function escapeUserProvidedKey(text) { + return ('' + text).replace(userProvidedKeyEscapeRegex, userProvidedKeyEscaper); +} + +/** + * Wrap a `key` value explicitly provided by the user to distinguish it from + * implicitly-generated keys generated by a component's index in its parent. + * + * @param {string} key Value of a user-provided `key` attribute + * @return {string} + */ +function wrapUserProvidedKey(key) { + return '$' + escapeUserProvidedKey(key); +} + +/** + * @param {?*} children Children tree container. + * @param {!string} nameSoFar Name of the key path so far. + * @param {!function} callback Callback to invoke with each child found. + * @param {?*} traverseContext Used to pass information throughout the traversal + * process. + * @return {!number} The number of children in this subtree. + */ +function traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) { + var type = typeof children; + + if (type === 'undefined' || type === 'boolean') { + // All of the above are perceived as null. + children = null; + } + + if (children === null || type === 'string' || type === 'number' || ReactElement.isValidElement(children)) { + callback(traverseContext, children, + // If it's the only child, treat the name as if it was wrapped in an array + // so that it's consistent if the number of children grows. + nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar); + return 1; + } + + var child; + var nextName; + var subtreeCount = 0; // Count of children found in the current subtree. + var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR; + + if (Array.isArray(children)) { + for (var i = 0; i < children.length; i++) { + child = children[i]; + nextName = nextNamePrefix + getComponentKey(child, i); + subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); + } + } else { + var iteratorFn = getIteratorFn(children); + if (iteratorFn) { + var iterator = iteratorFn.call(children); + var step; + if (iteratorFn !== children.entries) { + var ii = 0; + while (!(step = iterator.next()).done) { + child = step.value; + nextName = nextNamePrefix + getComponentKey(child, ii++); + subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); + } + } else { + if ("development" !== 'production') { + "development" !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.') : undefined; + didWarnAboutMaps = true; + } + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + child = entry[1]; + nextName = nextNamePrefix + wrapUserProvidedKey(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0); + subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); + } + } + } + } else if (type === 'object') { + var addendum = ''; + if ("development" !== 'production') { + addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.'; + if (children._isReactElement) { + addendum = ' It looks like you\'re using an element created by a different ' + 'version of React. Make sure to use only one copy of React.'; + } + if (ReactCurrentOwner.current) { + var name = ReactCurrentOwner.current.getName(); + if (name) { + addendum += ' Check the render method of `' + name + '`.'; + } + } + } + var childrenString = String(children); + !false ? "development" !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : invariant(false) : undefined; + } + } + + return subtreeCount; +} + +/** + * Traverses children that are typically specified as `props.children`, but + * might also be specified through attributes: + * + * - `traverseAllChildren(this.props.children, ...)` + * - `traverseAllChildren(this.props.leftPanelChildren, ...)` + * + * The `traverseContext` is an optional argument that is passed through the + * entire traversal. It can be used to store accumulations or anything else that + * the callback might find relevant. + * + * @param {?*} children Children tree object. + * @param {!function} callback To invoke upon traversing each child. + * @param {?*} traverseContext Context for traversal. + * @return {!number} The number of children in this subtree. + */ +function traverseAllChildren(children, callback, traverseContext) { + if (children == null) { + return 0; + } + + return traverseAllChildrenImpl(children, '', callback, traverseContext); +} + +module.exports = traverseAllChildren; +},{"115":115,"144":144,"155":155,"34":34,"52":52,"61":61}],128:[function(_dereq_,module,exports){ +/** + * Copyright 2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule validateDOMNesting + */ + +'use strict'; + +var assign = _dereq_(23); +var emptyFunction = _dereq_(136); +var warning = _dereq_(155); + +var validateDOMNesting = emptyFunction; + +if ("development" !== 'production') { + // This validation code was written based on the HTML5 parsing spec: + // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope + // + // Note: this does not catch all invalid nesting, nor does it try to (as it's + // not clear what practical benefit doing so provides); instead, we warn only + // for cases where the parser will give a parse tree differing from what React + // intended. For example, <b><div></div></b> is invalid but we don't warn + // because it still parses correctly; we do warn for other cases like nested + // <p> tags where the beginning of the second element implicitly closes the + // first, causing a confusing mess. + + // https://html.spec.whatwg.org/multipage/syntax.html#special + var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp']; + + // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope + var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template', + + // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point + // TODO: Distinguish by namespace here -- for <title>, including it here + // errs on the side of fewer warnings + 'foreignObject', 'desc', 'title']; + + // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope + var buttonScopeTags = inScopeTags.concat(['button']); + + // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags + var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt']; + + var emptyAncestorInfo = { + parentTag: null, + + formTag: null, + aTagInScope: null, + buttonTagInScope: null, + nobrTagInScope: null, + pTagInButtonScope: null, + + listItemTagAutoclosing: null, + dlItemTagAutoclosing: null + }; + + var updatedAncestorInfo = function (oldInfo, tag, instance) { + var ancestorInfo = assign({}, oldInfo || emptyAncestorInfo); + var info = { tag: tag, instance: instance }; + + if (inScopeTags.indexOf(tag) !== -1) { + ancestorInfo.aTagInScope = null; + ancestorInfo.buttonTagInScope = null; + ancestorInfo.nobrTagInScope = null; + } + if (buttonScopeTags.indexOf(tag) !== -1) { + ancestorInfo.pTagInButtonScope = null; + } + + // See rules for 'li', 'dd', 'dt' start tags in + // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody + if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') { + ancestorInfo.listItemTagAutoclosing = null; + ancestorInfo.dlItemTagAutoclosing = null; + } + + ancestorInfo.parentTag = info; + + if (tag === 'form') { + ancestorInfo.formTag = info; + } + if (tag === 'a') { + ancestorInfo.aTagInScope = info; + } + if (tag === 'button') { + ancestorInfo.buttonTagInScope = info; + } + if (tag === 'nobr') { + ancestorInfo.nobrTagInScope = info; + } + if (tag === 'p') { + ancestorInfo.pTagInButtonScope = info; + } + if (tag === 'li') { + ancestorInfo.listItemTagAutoclosing = info; + } + if (tag === 'dd' || tag === 'dt') { + ancestorInfo.dlItemTagAutoclosing = info; + } + + return ancestorInfo; + }; + + /** + * Returns whether + */ + var isTagValidWithParent = function (tag, parentTag) { + // First, let's check if we're in an unusual parsing mode... + switch (parentTag) { + // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect + case 'select': + return tag === 'option' || tag === 'optgroup' || tag === '#text'; + case 'optgroup': + return tag === 'option' || tag === '#text'; + // Strictly speaking, seeing an <option> doesn't mean we're in a <select> + // but + case 'option': + return tag === '#text'; + + // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd + // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption + // No special behavior since these rules fall back to "in body" mode for + // all except special table nodes which cause bad parsing behavior anyway. + + // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr + case 'tr': + return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template'; + + // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody + case 'tbody': + case 'thead': + case 'tfoot': + return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template'; + + // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup + case 'colgroup': + return tag === 'col' || tag === 'template'; + + // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable + case 'table': + return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template'; + + // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead + case 'head': + return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template'; + + // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element + case 'html': + return tag === 'head' || tag === 'body'; + } + + // Probably in the "in body" parsing mode, so we outlaw only tag combos + // where the parsing rules cause implicit opens or closes to be added. + // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody + switch (tag) { + case 'h1': + case 'h2': + case 'h3': + case 'h4': + case 'h5': + case 'h6': + return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6'; + + case 'rp': + case 'rt': + return impliedEndTags.indexOf(parentTag) === -1; + + case 'caption': + case 'col': + case 'colgroup': + case 'frame': + case 'head': + case 'tbody': + case 'td': + case 'tfoot': + case 'th': + case 'thead': + case 'tr': + // These tags are only valid with a few parents that have special child + // parsing rules -- if we're down here, then none of those matched and + // so we allow it only if we don't know what the parent is, as all other + // cases are invalid. + return parentTag == null; + } + + return true; + }; + + /** + * Returns whether + */ + var findInvalidAncestorForTag = function (tag, ancestorInfo) { + switch (tag) { + case 'address': + case 'article': + case 'aside': + case 'blockquote': + case 'center': + case 'details': + case 'dialog': + case 'dir': + case 'div': + case 'dl': + case 'fieldset': + case 'figcaption': + case 'figure': + case 'footer': + case 'header': + case 'hgroup': + case 'main': + case 'menu': + case 'nav': + case 'ol': + case 'p': + case 'section': + case 'summary': + case 'ul': + + case 'pre': + case 'listing': + + case 'table': + + case 'hr': + + case 'xmp': + + case 'h1': + case 'h2': + case 'h3': + case 'h4': + case 'h5': + case 'h6': + return ancestorInfo.pTagInButtonScope; + + case 'form': + return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope; + + case 'li': + return ancestorInfo.listItemTagAutoclosing; + + case 'dd': + case 'dt': + return ancestorInfo.dlItemTagAutoclosing; + + case 'button': + return ancestorInfo.buttonTagInScope; + + case 'a': + // Spec says something about storing a list of markers, but it sounds + // equivalent to this check. + return ancestorInfo.aTagInScope; + + case 'nobr': + return ancestorInfo.nobrTagInScope; + } + + return null; + }; + + /** + * Given a ReactCompositeComponent instance, return a list of its recursive + * owners, starting at the root and ending with the instance itself. + */ + var findOwnerStack = function (instance) { + if (!instance) { + return []; + } + + var stack = []; + /*eslint-disable space-after-keywords */ + do { + /*eslint-enable space-after-keywords */ + stack.push(instance); + } while (instance = instance._currentElement._owner); + stack.reverse(); + return stack; + }; + + var didWarn = {}; + + validateDOMNesting = function (childTag, childInstance, ancestorInfo) { + ancestorInfo = ancestorInfo || emptyAncestorInfo; + var parentInfo = ancestorInfo.parentTag; + var parentTag = parentInfo && parentInfo.tag; + + var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo; + var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo); + var problematic = invalidParent || invalidAncestor; + + if (problematic) { + var ancestorTag = problematic.tag; + var ancestorInstance = problematic.instance; + + var childOwner = childInstance && childInstance._currentElement._owner; + var ancestorOwner = ancestorInstance && ancestorInstance._currentElement._owner; + + var childOwners = findOwnerStack(childOwner); + var ancestorOwners = findOwnerStack(ancestorOwner); + + var minStackLen = Math.min(childOwners.length, ancestorOwners.length); + var i; + + var deepestCommon = -1; + for (i = 0; i < minStackLen; i++) { + if (childOwners[i] === ancestorOwners[i]) { + deepestCommon = i; + } else { + break; + } + } + + var UNKNOWN = '(unknown)'; + var childOwnerNames = childOwners.slice(deepestCommon + 1).map(function (inst) { + return inst.getName() || UNKNOWN; + }); + var ancestorOwnerNames = ancestorOwners.slice(deepestCommon + 1).map(function (inst) { + return inst.getName() || UNKNOWN; + }); + var ownerInfo = [].concat( + // If the parent and child instances have a common owner ancestor, start + // with that -- otherwise we just start with the parent's owners. + deepestCommon !== -1 ? childOwners[deepestCommon].getName() || UNKNOWN : [], ancestorOwnerNames, ancestorTag, + // If we're warning about an invalid (non-parent) ancestry, add '...' + invalidAncestor ? ['...'] : [], childOwnerNames, childTag).join(' > '); + + var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag + '|' + ownerInfo; + if (didWarn[warnKey]) { + return; + } + didWarn[warnKey] = true; + + if (invalidParent) { + var info = ''; + if (ancestorTag === 'table' && childTag === 'tr') { + info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.'; + } + "development" !== 'production' ? warning(false, 'validateDOMNesting(...): <%s> cannot appear as a child of <%s>. ' + 'See %s.%s', childTag, ancestorTag, ownerInfo, info) : undefined; + } else { + "development" !== 'production' ? warning(false, 'validateDOMNesting(...): <%s> cannot appear as a descendant of ' + '<%s>. See %s.', childTag, ancestorTag, ownerInfo) : undefined; + } + } + }; + + validateDOMNesting.ancestorInfoContextKey = '__validateDOMNesting_ancestorInfo$' + Math.random().toString(36).slice(2); + + validateDOMNesting.updatedAncestorInfo = updatedAncestorInfo; + + // For testing + validateDOMNesting.isTagValidInContext = function (tag, ancestorInfo) { + ancestorInfo = ancestorInfo || emptyAncestorInfo; + var parentInfo = ancestorInfo.parentTag; + var parentTag = parentInfo && parentInfo.tag; + return isTagValidWithParent(tag, parentTag) && !findInvalidAncestorForTag(tag, ancestorInfo); + }; +} + +module.exports = validateDOMNesting; +},{"136":136,"155":155,"23":23}],129:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * @providesModule EventListener + * @typechecks + */ + +'use strict'; + +var emptyFunction = _dereq_(136); + +/** + * Upstream version of event listener. Does not take into account specific + * nature of platform. + */ +var EventListener = { + /** + * Listen to DOM events during the bubble phase. + * + * @param {DOMEventTarget} target DOM element to register listener on. + * @param {string} eventType Event type, e.g. 'click' or 'mouseover'. + * @param {function} callback Callback function. + * @return {object} Object with a `remove` method. + */ + listen: function (target, eventType, callback) { + if (target.addEventListener) { + target.addEventListener(eventType, callback, false); + return { + remove: function () { + target.removeEventListener(eventType, callback, false); + } + }; + } else if (target.attachEvent) { + target.attachEvent('on' + eventType, callback); + return { + remove: function () { + target.detachEvent('on' + eventType, callback); + } + }; + } + }, + + /** + * Listen to DOM events during the capture phase. + * + * @param {DOMEventTarget} target DOM element to register listener on. + * @param {string} eventType Event type, e.g. 'click' or 'mouseover'. + * @param {function} callback Callback function. + * @return {object} Object with a `remove` method. + */ + capture: function (target, eventType, callback) { + if (target.addEventListener) { + target.addEventListener(eventType, callback, true); + return { + remove: function () { + target.removeEventListener(eventType, callback, true); + } + }; + } else { + if ("development" !== 'production') { + console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.'); + } + return { + remove: emptyFunction + }; + } + }, + + registerDefault: function () {} +}; + +module.exports = EventListener; +},{"136":136}],130:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule ExecutionEnvironment + */ + +'use strict'; + +var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); + +/** + * Simple, lightweight module assisting with the detection and context of + * Worker. Helps avoid circular dependencies and allows code to reason about + * whether or not they are in a Worker, even if they never include the main + * `ReactWorker` dependency. + */ +var ExecutionEnvironment = { + + canUseDOM: canUseDOM, + + canUseWorkers: typeof Worker !== 'undefined', + + canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent), + + canUseViewport: canUseDOM && !!window.screen, + + isInWorker: !canUseDOM // For now, this is true - might change in the future. + +}; + +module.exports = ExecutionEnvironment; +},{}],131:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule camelize + * @typechecks + */ + +"use strict"; + +var _hyphenPattern = /-(.)/g; + +/** + * Camelcases a hyphenated string, for example: + * + * > camelize('background-color') + * < "backgroundColor" + * + * @param {string} string + * @return {string} + */ +function camelize(string) { + return string.replace(_hyphenPattern, function (_, character) { + return character.toUpperCase(); + }); +} + +module.exports = camelize; +},{}],132:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule camelizeStyleName + * @typechecks + */ + +'use strict'; + +var camelize = _dereq_(131); + +var msPattern = /^-ms-/; + +/** + * Camelcases a hyphenated CSS property name, for example: + * + * > camelizeStyleName('background-color') + * < "backgroundColor" + * > camelizeStyleName('-moz-transition') + * < "MozTransition" + * > camelizeStyleName('-ms-transition') + * < "msTransition" + * + * As Andi Smith suggests + * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix + * is converted to lowercase `ms`. + * + * @param {string} string + * @return {string} + */ +function camelizeStyleName(string) { + return camelize(string.replace(msPattern, 'ms-')); +} + +module.exports = camelizeStyleName; +},{"131":131}],133:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule containsNode + * @typechecks + */ + +'use strict'; + +var isTextNode = _dereq_(146); + +/*eslint-disable no-bitwise */ + +/** + * Checks if a given DOM node contains or is another DOM node. + * + * @param {?DOMNode} outerNode Outer DOM node. + * @param {?DOMNode} innerNode Inner DOM node. + * @return {boolean} True if `outerNode` contains or is `innerNode`. + */ +function containsNode(_x, _x2) { + var _again = true; + + _function: while (_again) { + var outerNode = _x, + innerNode = _x2; + _again = false; + + if (!outerNode || !innerNode) { + return false; + } else if (outerNode === innerNode) { + return true; + } else if (isTextNode(outerNode)) { + return false; + } else if (isTextNode(innerNode)) { + _x = outerNode; + _x2 = innerNode.parentNode; + _again = true; + continue _function; + } else if (outerNode.contains) { + return outerNode.contains(innerNode); + } else if (outerNode.compareDocumentPosition) { + return !!(outerNode.compareDocumentPosition(innerNode) & 16); + } else { + return false; + } + } +} + +module.exports = containsNode; +},{"146":146}],134:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule createArrayFromMixed + * @typechecks + */ + +'use strict'; + +var toArray = _dereq_(154); + +/** + * Perform a heuristic test to determine if an object is "array-like". + * + * A monk asked Joshu, a Zen master, "Has a dog Buddha nature?" + * Joshu replied: "Mu." + * + * This function determines if its argument has "array nature": it returns + * true if the argument is an actual array, an `arguments' object, or an + * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()). + * + * It will return false for other array-like objects like Filelist. + * + * @param {*} obj + * @return {boolean} + */ +function hasArrayNature(obj) { + return( + // not null/false + !!obj && ( + // arrays are objects, NodeLists are functions in Safari + typeof obj == 'object' || typeof obj == 'function') && + // quacks like an array + 'length' in obj && + // not window + !('setInterval' in obj) && + // no DOM node should be considered an array-like + // a 'select' element has 'length' and 'item' properties on IE8 + typeof obj.nodeType != 'number' && ( + // a real array + Array.isArray(obj) || + // arguments + 'callee' in obj || + // HTMLCollection/NodeList + 'item' in obj) + ); +} + +/** + * Ensure that the argument is an array by wrapping it in an array if it is not. + * Creates a copy of the argument if it is already an array. + * + * This is mostly useful idiomatically: + * + * var createArrayFromMixed = require('createArrayFromMixed'); + * + * function takesOneOrMoreThings(things) { + * things = createArrayFromMixed(things); + * ... + * } + * + * This allows you to treat `things' as an array, but accept scalars in the API. + * + * If you need to convert an array-like object, like `arguments`, into an array + * use toArray instead. + * + * @param {*} obj + * @return {array} + */ +function createArrayFromMixed(obj) { + if (!hasArrayNature(obj)) { + return [obj]; + } else if (Array.isArray(obj)) { + return obj.slice(); + } else { + return toArray(obj); + } +} + +module.exports = createArrayFromMixed; +},{"154":154}],135:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule createNodesFromMarkup + * @typechecks + */ + +/*eslint-disable fb-www/unsafe-html*/ + +'use strict'; + +var ExecutionEnvironment = _dereq_(130); + +var createArrayFromMixed = _dereq_(134); +var getMarkupWrap = _dereq_(140); +var invariant = _dereq_(144); + +/** + * Dummy container used to render all markup. + */ +var dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null; + +/** + * Pattern used by `getNodeName`. + */ +var nodeNamePattern = /^\s*<(\w+)/; + +/** + * Extracts the `nodeName` of the first element in a string of markup. + * + * @param {string} markup String of markup. + * @return {?string} Node name of the supplied markup. + */ +function getNodeName(markup) { + var nodeNameMatch = markup.match(nodeNamePattern); + return nodeNameMatch && nodeNameMatch[1].toLowerCase(); +} + +/** + * Creates an array containing the nodes rendered from the supplied markup. The + * optionally supplied `handleScript` function will be invoked once for each + * <script> element that is rendered. If no `handleScript` function is supplied, + * an exception is thrown if any <script> elements are rendered. + * + * @param {string} markup A string of valid HTML markup. + * @param {?function} handleScript Invoked once for each rendered <script>. + * @return {array<DOMElement|DOMTextNode>} An array of rendered nodes. + */ +function createNodesFromMarkup(markup, handleScript) { + var node = dummyNode; + !!!dummyNode ? "development" !== 'production' ? invariant(false, 'createNodesFromMarkup dummy not initialized') : invariant(false) : undefined; + var nodeName = getNodeName(markup); + + var wrap = nodeName && getMarkupWrap(nodeName); + if (wrap) { + node.innerHTML = wrap[1] + markup + wrap[2]; + + var wrapDepth = wrap[0]; + while (wrapDepth--) { + node = node.lastChild; + } + } else { + node.innerHTML = markup; + } + + var scripts = node.getElementsByTagName('script'); + if (scripts.length) { + !handleScript ? "development" !== 'production' ? invariant(false, 'createNodesFromMarkup(...): Unexpected <script> element rendered.') : invariant(false) : undefined; + createArrayFromMixed(scripts).forEach(handleScript); + } + + var nodes = createArrayFromMixed(node.childNodes); + while (node.lastChild) { + node.removeChild(node.lastChild); + } + return nodes; +} + +module.exports = createNodesFromMarkup; +},{"130":130,"134":134,"140":140,"144":144}],136:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule emptyFunction + */ + +"use strict"; + +function makeEmptyFunction(arg) { + return function () { + return arg; + }; +} + +/** + * This function accepts and discards inputs; it has no side effects. This is + * primarily useful idiomatically for overridable function endpoints which + * always need to be callable, since JS lacks a null-call idiom ala Cocoa. + */ +function emptyFunction() {} + +emptyFunction.thatReturns = makeEmptyFunction; +emptyFunction.thatReturnsFalse = makeEmptyFunction(false); +emptyFunction.thatReturnsTrue = makeEmptyFunction(true); +emptyFunction.thatReturnsNull = makeEmptyFunction(null); +emptyFunction.thatReturnsThis = function () { + return this; +}; +emptyFunction.thatReturnsArgument = function (arg) { + return arg; +}; + +module.exports = emptyFunction; +},{}],137:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule emptyObject + */ + +'use strict'; + +var emptyObject = {}; + +if ("development" !== 'production') { + Object.freeze(emptyObject); +} + +module.exports = emptyObject; +},{}],138:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule focusNode + */ + +'use strict'; + +/** + * @param {DOMElement} node input/textarea to focus + */ +function focusNode(node) { + // IE8 can throw "Can't move focus to the control because it is invisible, + // not enabled, or of a type that does not accept the focus." for all kinds of + // reasons that are too expensive and fragile to test. + try { + node.focus(); + } catch (e) {} +} + +module.exports = focusNode; +},{}],139:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule getActiveElement + * @typechecks + */ + +/** + * Same as document.activeElement but wraps in a try-catch block. In IE it is + * not safe to call document.activeElement if there is nothing focused. + * + * The activeElement will be null only if the document or document body is not yet defined. + */ +'use strict'; + +function getActiveElement() /*?DOMElement*/{ + if (typeof document === 'undefined') { + return null; + } + + try { + return document.activeElement || document.body; + } catch (e) { + return document.body; + } +} + +module.exports = getActiveElement; +},{}],140:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule getMarkupWrap + */ + +/*eslint-disable fb-www/unsafe-html */ + +'use strict'; + +var ExecutionEnvironment = _dereq_(130); + +var invariant = _dereq_(144); + +/** + * Dummy container used to detect which wraps are necessary. + */ +var dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null; + +/** + * Some browsers cannot use `innerHTML` to render certain elements standalone, + * so we wrap them, render the wrapped nodes, then extract the desired node. + * + * In IE8, certain elements cannot render alone, so wrap all elements ('*'). + */ + +var shouldWrap = {}; + +var selectWrap = [1, '<select multiple="true">', '</select>']; +var tableWrap = [1, '<table>', '</table>']; +var trWrap = [3, '<table><tbody><tr>', '</tr></tbody></table>']; + +var svgWrap = [1, '<svg xmlns="http://www.w3.org/2000/svg">', '</svg>']; + +var markupWrap = { + '*': [1, '?<div>', '</div>'], + + 'area': [1, '<map>', '</map>'], + 'col': [2, '<table><tbody></tbody><colgroup>', '</colgroup></table>'], + 'legend': [1, '<fieldset>', '</fieldset>'], + 'param': [1, '<object>', '</object>'], + 'tr': [2, '<table><tbody>', '</tbody></table>'], + + 'optgroup': selectWrap, + 'option': selectWrap, + + 'caption': tableWrap, + 'colgroup': tableWrap, + 'tbody': tableWrap, + 'tfoot': tableWrap, + 'thead': tableWrap, + + 'td': trWrap, + 'th': trWrap +}; + +// Initialize the SVG elements since we know they'll always need to be wrapped +// consistently. If they are created inside a <div> they will be initialized in +// the wrong namespace (and will not display). +var svgElements = ['circle', 'clipPath', 'defs', 'ellipse', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'text', 'tspan']; +svgElements.forEach(function (nodeName) { + markupWrap[nodeName] = svgWrap; + shouldWrap[nodeName] = true; +}); + +/** + * Gets the markup wrap configuration for the supplied `nodeName`. + * + * NOTE: This lazily detects which wraps are necessary for the current browser. + * + * @param {string} nodeName Lowercase `nodeName`. + * @return {?array} Markup wrap configuration, if applicable. + */ +function getMarkupWrap(nodeName) { + !!!dummyNode ? "development" !== 'production' ? invariant(false, 'Markup wrapping node not initialized') : invariant(false) : undefined; + if (!markupWrap.hasOwnProperty(nodeName)) { + nodeName = '*'; + } + if (!shouldWrap.hasOwnProperty(nodeName)) { + if (nodeName === '*') { + dummyNode.innerHTML = '<link />'; + } else { + dummyNode.innerHTML = '<' + nodeName + '></' + nodeName + '>'; + } + shouldWrap[nodeName] = !dummyNode.firstChild; + } + return shouldWrap[nodeName] ? markupWrap[nodeName] : null; +} + +module.exports = getMarkupWrap; +},{"130":130,"144":144}],141:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule getUnboundedScrollPosition + * @typechecks + */ + +'use strict'; + +/** + * Gets the scroll position of the supplied element or window. + * + * The return values are unbounded, unlike `getScrollPosition`. This means they + * may be negative or exceed the element boundaries (which is possible using + * inertial scrolling). + * + * @param {DOMWindow|DOMElement} scrollable + * @return {object} Map with `x` and `y` keys. + */ +function getUnboundedScrollPosition(scrollable) { + if (scrollable === window) { + return { + x: window.pageXOffset || document.documentElement.scrollLeft, + y: window.pageYOffset || document.documentElement.scrollTop + }; + } + return { + x: scrollable.scrollLeft, + y: scrollable.scrollTop + }; +} + +module.exports = getUnboundedScrollPosition; +},{}],142:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule hyphenate + * @typechecks + */ + +'use strict'; + +var _uppercasePattern = /([A-Z])/g; + +/** + * Hyphenates a camelcased string, for example: + * + * > hyphenate('backgroundColor') + * < "background-color" + * + * For CSS style names, use `hyphenateStyleName` instead which works properly + * with all vendor prefixes, including `ms`. + * + * @param {string} string + * @return {string} + */ +function hyphenate(string) { + return string.replace(_uppercasePattern, '-$1').toLowerCase(); +} + +module.exports = hyphenate; +},{}],143:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule hyphenateStyleName + * @typechecks + */ + +'use strict'; + +var hyphenate = _dereq_(142); + +var msPattern = /^ms-/; + +/** + * Hyphenates a camelcased CSS property name, for example: + * + * > hyphenateStyleName('backgroundColor') + * < "background-color" + * > hyphenateStyleName('MozTransition') + * < "-moz-transition" + * > hyphenateStyleName('msTransition') + * < "-ms-transition" + * + * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix + * is converted to `-ms-`. + * + * @param {string} string + * @return {string} + */ +function hyphenateStyleName(string) { + return hyphenate(string).replace(msPattern, '-ms-'); +} + +module.exports = hyphenateStyleName; +},{"142":142}],144:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule invariant + */ + +'use strict'; + +/** + * Use invariant() to assert state which your program assumes to be true. + * + * Provide sprintf-style format (only %s is supported) and arguments + * to provide information about what broke and what you were + * expecting. + * + * The invariant message will be stripped in production, but the invariant + * will remain to ensure logic does not differ in production. + */ + +var invariant = function (condition, format, a, b, c, d, e, f) { + if ("development" !== 'production') { + if (format === undefined) { + throw new Error('invariant requires an error message argument'); + } + } + + if (!condition) { + var error; + if (format === undefined) { + error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); + } else { + var args = [a, b, c, d, e, f]; + var argIndex = 0; + error = new Error('Invariant Violation: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + })); + } + + error.framesToPop = 1; // we don't care about invariant's own frame + throw error; + } +}; + +module.exports = invariant; +},{}],145:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule isNode + * @typechecks + */ + +/** + * @param {*} object The object to check. + * @return {boolean} Whether or not the object is a DOM node. + */ +'use strict'; + +function isNode(object) { + return !!(object && (typeof Node === 'function' ? object instanceof Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string')); +} + +module.exports = isNode; +},{}],146:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule isTextNode + * @typechecks + */ + +'use strict'; + +var isNode = _dereq_(145); + +/** + * @param {*} object The object to check. + * @return {boolean} Whether or not the object is a DOM text node. + */ +function isTextNode(object) { + return isNode(object) && object.nodeType == 3; +} + +module.exports = isTextNode; +},{"145":145}],147:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule keyMirror + * @typechecks static-only + */ + +'use strict'; + +var invariant = _dereq_(144); + +/** + * Constructs an enumeration with keys equal to their value. + * + * For example: + * + * var COLORS = keyMirror({blue: null, red: null}); + * var myColor = COLORS.blue; + * var isColorValid = !!COLORS[myColor]; + * + * The last line could not be performed if the values of the generated enum were + * not equal to their keys. + * + * Input: {key1: val1, key2: val2} + * Output: {key1: key1, key2: key2} + * + * @param {object} obj + * @return {object} + */ +var keyMirror = function (obj) { + var ret = {}; + var key; + !(obj instanceof Object && !Array.isArray(obj)) ? "development" !== 'production' ? invariant(false, 'keyMirror(...): Argument must be an object.') : invariant(false) : undefined; + for (key in obj) { + if (!obj.hasOwnProperty(key)) { + continue; + } + ret[key] = key; + } + return ret; +}; + +module.exports = keyMirror; +},{"144":144}],148:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule keyOf + */ + +/** + * Allows extraction of a minified key. Let's the build system minify keys + * without losing the ability to dynamically use key strings as values + * themselves. Pass in an object with a single key/val pair and it will return + * you the string key of that single record. Suppose you want to grab the + * value for a key 'className' inside of an object. Key/val minification may + * have aliased that key to be 'xa12'. keyOf({className: null}) will return + * 'xa12' in that case. Resolve keys you want to use once at startup time, then + * reuse those resolutions. + */ +"use strict"; + +var keyOf = function (oneKeyObj) { + var key; + for (key in oneKeyObj) { + if (!oneKeyObj.hasOwnProperty(key)) { + continue; + } + return key; + } + return null; +}; + +module.exports = keyOf; +},{}],149:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule mapObject + */ + +'use strict'; + +var hasOwnProperty = Object.prototype.hasOwnProperty; + +/** + * Executes the provided `callback` once for each enumerable own property in the + * object and constructs a new object from the results. The `callback` is + * invoked with three arguments: + * + * - the property value + * - the property name + * - the object being traversed + * + * Properties that are added after the call to `mapObject` will not be visited + * by `callback`. If the values of existing properties are changed, the value + * passed to `callback` will be the value at the time `mapObject` visits them. + * Properties that are deleted before being visited are not visited. + * + * @grep function objectMap() + * @grep function objMap() + * + * @param {?object} object + * @param {function} callback + * @param {*} context + * @return {?object} + */ +function mapObject(object, callback, context) { + if (!object) { + return null; + } + var result = {}; + for (var name in object) { + if (hasOwnProperty.call(object, name)) { + result[name] = callback.call(context, object[name], name, object); + } + } + return result; +} + +module.exports = mapObject; +},{}],150:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule memoizeStringOnly + * @typechecks static-only + */ + +'use strict'; + +/** + * Memoizes the return value of a function that accepts one string argument. + * + * @param {function} callback + * @return {function} + */ +function memoizeStringOnly(callback) { + var cache = {}; + return function (string) { + if (!cache.hasOwnProperty(string)) { + cache[string] = callback.call(this, string); + } + return cache[string]; + }; +} + +module.exports = memoizeStringOnly; +},{}],151:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule performance + * @typechecks + */ + +'use strict'; + +var ExecutionEnvironment = _dereq_(130); + +var performance; + +if (ExecutionEnvironment.canUseDOM) { + performance = window.performance || window.msPerformance || window.webkitPerformance; +} + +module.exports = performance || {}; +},{"130":130}],152:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule performanceNow + * @typechecks + */ + +'use strict'; + +var performance = _dereq_(151); +var curPerformance = performance; + +/** + * Detect if we can use `window.performance.now()` and gracefully fallback to + * `Date.now()` if it doesn't exist. We need to support Firefox < 15 for now + * because of Facebook's testing infrastructure. + */ +if (!curPerformance || !curPerformance.now) { + curPerformance = Date; +} + +var performanceNow = curPerformance.now.bind(curPerformance); + +module.exports = performanceNow; +},{"151":151}],153:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule shallowEqual + * @typechecks + * + */ + +'use strict'; + +var hasOwnProperty = Object.prototype.hasOwnProperty; + +/** + * Performs equality by iterating through keys on an object and returning false + * when any key has values which are not strictly equal between the arguments. + * Returns true when the values of all keys are strictly equal. + */ +function shallowEqual(objA, objB) { + if (objA === objB) { + return true; + } + + if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) { + return false; + } + + var keysA = Object.keys(objA); + var keysB = Object.keys(objB); + + if (keysA.length !== keysB.length) { + return false; + } + + // Test for A's keys different from B. + var bHasOwnProperty = hasOwnProperty.bind(objB); + for (var i = 0; i < keysA.length; i++) { + if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) { + return false; + } + } + + return true; +} + +module.exports = shallowEqual; +},{}],154:[function(_dereq_,module,exports){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule toArray + * @typechecks + */ + +'use strict'; + +var invariant = _dereq_(144); + +/** + * Convert array-like objects to arrays. + * + * This API assumes the caller knows the contents of the data type. For less + * well defined inputs use createArrayFromMixed. + * + * @param {object|function|filelist} obj + * @return {array} + */ +function toArray(obj) { + var length = obj.length; + + // Some browse builtin objects can report typeof 'function' (e.g. NodeList in + // old versions of Safari). + !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? "development" !== 'production' ? invariant(false, 'toArray: Array-like object expected') : invariant(false) : undefined; + + !(typeof length === 'number') ? "development" !== 'production' ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : undefined; + + !(length === 0 || length - 1 in obj) ? "development" !== 'production' ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : undefined; + + // Old IE doesn't give collections access to hasOwnProperty. Assume inputs + // without method will throw during the slice call and skip straight to the + // fallback. + if (obj.hasOwnProperty) { + try { + return Array.prototype.slice.call(obj); + } catch (e) { + // IE < 9 does not support Array#slice on collections objects + } + } + + // Fall back to copying key by key. This assumes all keys have a value, + // so will not preserve sparsely populated inputs. + var ret = Array(length); + for (var ii = 0; ii < length; ii++) { + ret[ii] = obj[ii]; + } + return ret; +} + +module.exports = toArray; +},{"144":144}],155:[function(_dereq_,module,exports){ +/** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule warning + */ + +'use strict'; + +var emptyFunction = _dereq_(136); + +/** + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ + +var warning = emptyFunction; + +if ("development" !== 'production') { + warning = function (condition, format) { + for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { + args[_key - 2] = arguments[_key]; + } + + if (format === undefined) { + throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); + } + + if (format.indexOf('Failed Composite propType: ') === 0) { + return; // Ignore CompositeComponent proptype check. + } + + if (!condition) { + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + }); + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + } + }; +} + +module.exports = warning; +},{"136":136}]},{},[1])(1) +});
\ No newline at end of file diff --git a/web/static/js/react-0.14.3.min.js b/web/static/js/react-0.14.3.min.js new file mode 100644 index 000000000..75c571223 --- /dev/null +++ b/web/static/js/react-0.14.3.min.js @@ -0,0 +1,16 @@ +/** + * React v0.14.3 + * + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.React=e()}}(function(){return function e(t,n,r){function o(i,u){if(!n[i]){if(!t[i]){var s="function"==typeof require&&require;if(!u&&s)return s(i,!0);if(a)return a(i,!0);var l=new Error("Cannot find module '"+i+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[i]={exports:{}};t[i][0].call(c.exports,function(e){var n=t[i][1][e];return o(n?n:e)},c,c.exports,e,t,n,r)}return n[i].exports}for(var a="function"==typeof require&&require,i=0;i<r.length;i++)o(r[i]);return o}({1:[function(e,t,n){"use strict";var r=e(35),o=e(45),a=e(61),i=e(23),u=e(104),s={};i(s,a),i(s,{findDOMNode:u("findDOMNode","ReactDOM","react-dom",r,r.findDOMNode),render:u("render","ReactDOM","react-dom",r,r.render),unmountComponentAtNode:u("unmountComponentAtNode","ReactDOM","react-dom",r,r.unmountComponentAtNode),renderToString:u("renderToString","ReactDOMServer","react-dom/server",o,o.renderToString),renderToStaticMarkup:u("renderToStaticMarkup","ReactDOMServer","react-dom/server",o,o.renderToStaticMarkup)}),s.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=r,s.__SECRET_DOM_SERVER_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=o,t.exports=s},{104:104,23:23,35:35,45:45,61:61}],2:[function(e,t,n){"use strict";var r=e(63),o=e(106),a=e(136),i={componentDidMount:function(){this.props.autoFocus&&a(o(this))}},u={Mixin:i,focusDOMComponent:function(){a(r.getNode(this._rootNodeID))}};t.exports=u},{106:106,136:136,63:63}],3:[function(e,t,n){"use strict";function r(){var e=window.opera;return"object"==typeof e&&"function"==typeof e.version&&parseInt(e.version(),10)<=12}function o(e){return(e.ctrlKey||e.altKey||e.metaKey)&&!(e.ctrlKey&&e.altKey)}function a(e){switch(e){case w.topCompositionStart:return R.compositionStart;case w.topCompositionEnd:return R.compositionEnd;case w.topCompositionUpdate:return R.compositionUpdate}}function i(e,t){return e===w.topKeyDown&&t.keyCode===_}function u(e,t){switch(e){case w.topKeyUp:return-1!==b.indexOf(t.keyCode);case w.topKeyDown:return t.keyCode!==_;case w.topKeyPress:case w.topMouseDown:case w.topBlur:return!0;default:return!1}}function s(e){var t=e.detail;return"object"==typeof t&&"data"in t?t.data:null}function l(e,t,n,r,o){var l,c;if(E?l=a(e):S?u(e,r)&&(l=R.compositionEnd):i(e,r)&&(l=R.compositionStart),!l)return null;M&&(S||l!==R.compositionStart?l===R.compositionEnd&&S&&(c=S.getData()):S=m.getPooled(t));var p=g.getPooled(l,n,r,o);if(c)p.data=c;else{var d=s(r);null!==d&&(p.data=d)}return h.accumulateTwoPhaseDispatches(p),p}function c(e,t){switch(e){case w.topCompositionEnd:return s(t);case w.topKeyPress:var n=t.which;return n!==N?null:(I=!0,P);case w.topTextInput:var r=t.data;return r===P&&I?null:r;default:return null}}function p(e,t){if(S){if(e===w.topCompositionEnd||u(e,t)){var n=S.getData();return m.release(S),S=null,n}return null}switch(e){case w.topPaste:return null;case w.topKeyPress:return t.which&&!o(t)?String.fromCharCode(t.which):null;case w.topCompositionEnd:return M?null:t.data;default:return null}}function d(e,t,n,r,o){var a;if(a=D?c(e,r):p(e,r),!a)return null;var i=y.getPooled(R.beforeInput,n,r,o);return i.data=a,h.accumulateTwoPhaseDispatches(i),i}var f=e(15),h=e(19),v=e(128),m=e(20),g=e(88),y=e(92),C=e(146),b=[9,13,27,32],_=229,E=v.canUseDOM&&"CompositionEvent"in window,x=null;v.canUseDOM&&"documentMode"in document&&(x=document.documentMode);var D=v.canUseDOM&&"TextEvent"in window&&!x&&!r(),M=v.canUseDOM&&(!E||x&&x>8&&11>=x),N=32,P=String.fromCharCode(N),w=f.topLevelTypes,R={beforeInput:{phasedRegistrationNames:{bubbled:C({onBeforeInput:null}),captured:C({onBeforeInputCapture:null})},dependencies:[w.topCompositionEnd,w.topKeyPress,w.topTextInput,w.topPaste]},compositionEnd:{phasedRegistrationNames:{bubbled:C({onCompositionEnd:null}),captured:C({onCompositionEndCapture:null})},dependencies:[w.topBlur,w.topCompositionEnd,w.topKeyDown,w.topKeyPress,w.topKeyUp,w.topMouseDown]},compositionStart:{phasedRegistrationNames:{bubbled:C({onCompositionStart:null}),captured:C({onCompositionStartCapture:null})},dependencies:[w.topBlur,w.topCompositionStart,w.topKeyDown,w.topKeyPress,w.topKeyUp,w.topMouseDown]},compositionUpdate:{phasedRegistrationNames:{bubbled:C({onCompositionUpdate:null}),captured:C({onCompositionUpdateCapture:null})},dependencies:[w.topBlur,w.topCompositionUpdate,w.topKeyDown,w.topKeyPress,w.topKeyUp,w.topMouseDown]}},I=!1,S=null,T={eventTypes:R,extractEvents:function(e,t,n,r,o){return[l(e,t,n,r,o),d(e,t,n,r,o)]}};t.exports=T},{128:128,146:146,15:15,19:19,20:20,88:88,92:92}],4:[function(e,t,n){"use strict";function r(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}var o={animationIterationCount:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,stopOpacity:!0,strokeDashoffset:!0,strokeOpacity:!0,strokeWidth:!0},a=["Webkit","ms","Moz","O"];Object.keys(o).forEach(function(e){a.forEach(function(t){o[r(t,e)]=o[e]})});var i={background:{backgroundAttachment:!0,backgroundColor:!0,backgroundImage:!0,backgroundPositionX:!0,backgroundPositionY:!0,backgroundRepeat:!0},backgroundPosition:{backgroundPositionX:!0,backgroundPositionY:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0},outline:{outlineWidth:!0,outlineStyle:!0,outlineColor:!0}},u={isUnitlessNumber:o,shorthandPropertyExpansions:i};t.exports=u},{}],5:[function(e,t,n){"use strict";var r=e(4),o=e(128),a=e(69),i=(e(130),e(103)),u=e(141),s=e(148),l=(e(151),s(function(e){return u(e)})),c=!1,p="cssFloat";if(o.canUseDOM){var d=document.createElement("div").style;try{d.font=""}catch(f){c=!0}void 0===document.documentElement.style.cssFloat&&(p="styleFloat")}var h={createMarkupForStyles:function(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];null!=r&&(t+=l(n)+":",t+=i(n,r)+";")}return t||null},setValueForStyles:function(e,t){var n=e.style;for(var o in t)if(t.hasOwnProperty(o)){var a=i(o,t[o]);if("float"===o&&(o=p),a)n[o]=a;else{var u=c&&r.shorthandPropertyExpansions[o];if(u)for(var s in u)n[s]="";else n[o]=""}}}};a.measureMethods(h,"CSSPropertyOperations",{setValueForStyles:"setValueForStyles"}),t.exports=h},{103:103,128:128,130:130,141:141,148:148,151:151,4:4,69:69}],6:[function(e,t,n){"use strict";function r(){this._callbacks=null,this._contexts=null}var o=e(24),a=e(23),i=e(142);a(r.prototype,{enqueue:function(e,t){this._callbacks=this._callbacks||[],this._contexts=this._contexts||[],this._callbacks.push(e),this._contexts.push(t)},notifyAll:function(){var e=this._callbacks,t=this._contexts;if(e){e.length!==t.length?i(!1):void 0,this._callbacks=null,this._contexts=null;for(var n=0;n<e.length;n++)e[n].call(t[n]);e.length=0,t.length=0}},reset:function(){this._callbacks=null,this._contexts=null},destructor:function(){this.reset()}}),o.addPoolingTo(r),t.exports=r},{142:142,23:23,24:24}],7:[function(e,t,n){"use strict";function r(e){var t=e.nodeName&&e.nodeName.toLowerCase();return"select"===t||"input"===t&&"file"===e.type}function o(e){var t=x.getPooled(R.change,S,e,D(e));b.accumulateTwoPhaseDispatches(t),E.batchedUpdates(a,t)}function a(e){C.enqueueEvents(e),C.processEventQueue(!1)}function i(e,t){I=e,S=t,I.attachEvent("onchange",o)}function u(){I&&(I.detachEvent("onchange",o),I=null,S=null)}function s(e,t,n){return e===w.topChange?n:void 0}function l(e,t,n){e===w.topFocus?(u(),i(t,n)):e===w.topBlur&&u()}function c(e,t){I=e,S=t,T=e.value,k=Object.getOwnPropertyDescriptor(e.constructor.prototype,"value"),Object.defineProperty(I,"value",L),I.attachEvent("onpropertychange",d)}function p(){I&&(delete I.value,I.detachEvent("onpropertychange",d),I=null,S=null,T=null,k=null)}function d(e){if("value"===e.propertyName){var t=e.srcElement.value;t!==T&&(T=t,o(e))}}function f(e,t,n){return e===w.topInput?n:void 0}function h(e,t,n){e===w.topFocus?(p(),c(t,n)):e===w.topBlur&&p()}function v(e,t,n){return e!==w.topSelectionChange&&e!==w.topKeyUp&&e!==w.topKeyDown||!I||I.value===T?void 0:(T=I.value,S)}function m(e){return e.nodeName&&"input"===e.nodeName.toLowerCase()&&("checkbox"===e.type||"radio"===e.type)}function g(e,t,n){return e===w.topClick?n:void 0}var y=e(15),C=e(16),b=e(19),_=e(128),E=e(81),x=e(90),D=e(112),M=e(117),N=e(118),P=e(146),w=y.topLevelTypes,R={change:{phasedRegistrationNames:{bubbled:P({onChange:null}),captured:P({onChangeCapture:null})},dependencies:[w.topBlur,w.topChange,w.topClick,w.topFocus,w.topInput,w.topKeyDown,w.topKeyUp,w.topSelectionChange]}},I=null,S=null,T=null,k=null,O=!1;_.canUseDOM&&(O=M("change")&&(!("documentMode"in document)||document.documentMode>8));var A=!1;_.canUseDOM&&(A=M("input")&&(!("documentMode"in document)||document.documentMode>9));var L={get:function(){return k.get.call(this)},set:function(e){T=""+e,k.set.call(this,e)}},U={eventTypes:R,extractEvents:function(e,t,n,o,a){var i,u;if(r(t)?O?i=s:u=l:N(t)?A?i=f:(i=v,u=h):m(t)&&(i=g),i){var c=i(e,t,n);if(c){var p=x.getPooled(R.change,c,o,a);return p.type="change",b.accumulateTwoPhaseDispatches(p),p}}u&&u(e,t,n)}};t.exports=U},{112:112,117:117,118:118,128:128,146:146,15:15,16:16,19:19,81:81,90:90}],8:[function(e,t,n){"use strict";var r=0,o={createReactRootIndex:function(){return r++}};t.exports=o},{}],9:[function(e,t,n){"use strict";function r(e,t,n){var r=n>=e.childNodes.length?null:e.childNodes.item(n);e.insertBefore(t,r)}var o=e(12),a=e(65),i=e(69),u=e(122),s=e(123),l=e(142),c={dangerouslyReplaceNodeWithMarkup:o.dangerouslyReplaceNodeWithMarkup,updateTextContent:s,processUpdates:function(e,t){for(var n,i=null,c=null,p=0;p<e.length;p++)if(n=e[p],n.type===a.MOVE_EXISTING||n.type===a.REMOVE_NODE){var d=n.fromIndex,f=n.parentNode.childNodes[d],h=n.parentID;f?void 0:l(!1),i=i||{},i[h]=i[h]||[],i[h][d]=f,c=c||[],c.push(f)}var v;if(v=t.length&&"string"==typeof t[0]?o.dangerouslyRenderMarkup(t):t,c)for(var m=0;m<c.length;m++)c[m].parentNode.removeChild(c[m]);for(var g=0;g<e.length;g++)switch(n=e[g],n.type){case a.INSERT_MARKUP:r(n.parentNode,v[n.markupIndex],n.toIndex);break;case a.MOVE_EXISTING:r(n.parentNode,i[n.parentID][n.fromIndex],n.toIndex);break;case a.SET_MARKUP:u(n.parentNode,n.content);break;case a.TEXT_CONTENT:s(n.parentNode,n.content);break;case a.REMOVE_NODE:}}};i.measureMethods(c,"DOMChildrenOperations",{updateTextContent:"updateTextContent"}),t.exports=c},{12:12,122:122,123:123,142:142,65:65,69:69}],10:[function(e,t,n){"use strict";function r(e,t){return(e&t)===t}var o=e(142),a={MUST_USE_ATTRIBUTE:1,MUST_USE_PROPERTY:2,HAS_SIDE_EFFECTS:4,HAS_BOOLEAN_VALUE:8,HAS_NUMERIC_VALUE:16,HAS_POSITIVE_NUMERIC_VALUE:48,HAS_OVERLOADED_BOOLEAN_VALUE:64,injectDOMPropertyConfig:function(e){var t=a,n=e.Properties||{},i=e.DOMAttributeNamespaces||{},s=e.DOMAttributeNames||{},l=e.DOMPropertyNames||{},c=e.DOMMutationMethods||{};e.isCustomAttribute&&u._isCustomAttributeFunctions.push(e.isCustomAttribute);for(var p in n){u.properties.hasOwnProperty(p)?o(!1):void 0;var d=p.toLowerCase(),f=n[p],h={attributeName:d,attributeNamespace:null,propertyName:p,mutationMethod:null,mustUseAttribute:r(f,t.MUST_USE_ATTRIBUTE),mustUseProperty:r(f,t.MUST_USE_PROPERTY),hasSideEffects:r(f,t.HAS_SIDE_EFFECTS),hasBooleanValue:r(f,t.HAS_BOOLEAN_VALUE),hasNumericValue:r(f,t.HAS_NUMERIC_VALUE),hasPositiveNumericValue:r(f,t.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:r(f,t.HAS_OVERLOADED_BOOLEAN_VALUE)};if(h.mustUseAttribute&&h.mustUseProperty?o(!1):void 0,!h.mustUseProperty&&h.hasSideEffects?o(!1):void 0,h.hasBooleanValue+h.hasNumericValue+h.hasOverloadedBooleanValue<=1?void 0:o(!1),s.hasOwnProperty(p)){var v=s[p];h.attributeName=v}i.hasOwnProperty(p)&&(h.attributeNamespace=i[p]),l.hasOwnProperty(p)&&(h.propertyName=l[p]),c.hasOwnProperty(p)&&(h.mutationMethod=c[p]),u.properties[p]=h}}},i={},u={ID_ATTRIBUTE_NAME:"data-reactid",properties:{},getPossibleStandardName:null,_isCustomAttributeFunctions:[],isCustomAttribute:function(e){for(var t=0;t<u._isCustomAttributeFunctions.length;t++){var n=u._isCustomAttributeFunctions[t];if(n(e))return!0}return!1},getDefaultValueForProperty:function(e,t){var n,r=i[e];return r||(i[e]=r={}),t in r||(n=document.createElement(e),r[t]=n[t]),r[t]},injection:a};t.exports=u},{142:142}],11:[function(e,t,n){"use strict";function r(e){return c.hasOwnProperty(e)?!0:l.hasOwnProperty(e)?!1:s.test(e)?(c[e]=!0,!0):(l[e]=!0,!1)}function o(e,t){return null==t||e.hasBooleanValue&&!t||e.hasNumericValue&&isNaN(t)||e.hasPositiveNumericValue&&1>t||e.hasOverloadedBooleanValue&&t===!1}var a=e(10),i=e(69),u=e(120),s=(e(151),/^[a-zA-Z_][\w\.\-]*$/),l={},c={},p={createMarkupForID:function(e){return a.ID_ATTRIBUTE_NAME+"="+u(e)},setAttributeForID:function(e,t){e.setAttribute(a.ID_ATTRIBUTE_NAME,t)},createMarkupForProperty:function(e,t){var n=a.properties.hasOwnProperty(e)?a.properties[e]:null;if(n){if(o(n,t))return"";var r=n.attributeName;return n.hasBooleanValue||n.hasOverloadedBooleanValue&&t===!0?r+'=""':r+"="+u(t)}return a.isCustomAttribute(e)?null==t?"":e+"="+u(t):null},createMarkupForCustomAttribute:function(e,t){return r(e)&&null!=t?e+"="+u(t):""},setValueForProperty:function(e,t,n){var r=a.properties.hasOwnProperty(t)?a.properties[t]:null;if(r){var i=r.mutationMethod;if(i)i(e,n);else if(o(r,n))this.deleteValueForProperty(e,t);else if(r.mustUseAttribute){var u=r.attributeName,s=r.attributeNamespace;s?e.setAttributeNS(s,u,""+n):r.hasBooleanValue||r.hasOverloadedBooleanValue&&n===!0?e.setAttribute(u,""):e.setAttribute(u,""+n)}else{var l=r.propertyName;r.hasSideEffects&&""+e[l]==""+n||(e[l]=n)}}else a.isCustomAttribute(t)&&p.setValueForAttribute(e,t,n)},setValueForAttribute:function(e,t,n){r(t)&&(null==n?e.removeAttribute(t):e.setAttribute(t,""+n))},deleteValueForProperty:function(e,t){var n=a.properties.hasOwnProperty(t)?a.properties[t]:null;if(n){var r=n.mutationMethod;if(r)r(e,void 0);else if(n.mustUseAttribute)e.removeAttribute(n.attributeName);else{var o=n.propertyName,i=a.getDefaultValueForProperty(e.nodeName,o);n.hasSideEffects&&""+e[o]===i||(e[o]=i)}}else a.isCustomAttribute(t)&&e.removeAttribute(t)}};i.measureMethods(p,"DOMPropertyOperations",{setValueForProperty:"setValueForProperty",setValueForAttribute:"setValueForAttribute",deleteValueForProperty:"deleteValueForProperty"}),t.exports=p},{10:10,120:120,151:151,69:69}],12:[function(e,t,n){"use strict";function r(e){return e.substring(1,e.indexOf(" "))}var o=e(128),a=e(133),i=e(134),u=e(138),s=e(142),l=/^(<[^ \/>]+)/,c="data-danger-index",p={dangerouslyRenderMarkup:function(e){o.canUseDOM?void 0:s(!1);for(var t,n={},p=0;p<e.length;p++)e[p]?void 0:s(!1),t=r(e[p]),t=u(t)?t:"*",n[t]=n[t]||[],n[t][p]=e[p];var d=[],f=0;for(t in n)if(n.hasOwnProperty(t)){var h,v=n[t];for(h in v)if(v.hasOwnProperty(h)){var m=v[h];v[h]=m.replace(l,"$1 "+c+'="'+h+'" ')}for(var g=a(v.join(""),i),y=0;y<g.length;++y){var C=g[y];C.hasAttribute&&C.hasAttribute(c)&&(h=+C.getAttribute(c),C.removeAttribute(c),d.hasOwnProperty(h)?s(!1):void 0,d[h]=C,f+=1)}}return f!==d.length?s(!1):void 0,d.length!==e.length?s(!1):void 0,d},dangerouslyReplaceNodeWithMarkup:function(e,t){o.canUseDOM?void 0:s(!1),t?void 0:s(!1),"html"===e.tagName.toLowerCase()?s(!1):void 0;var n;n="string"==typeof t?a(t,i)[0]:t,e.parentNode.replaceChild(n,e)}};t.exports=p},{128:128,133:133,134:134,138:138,142:142}],13:[function(e,t,n){"use strict";var r=e(146),o=[r({ResponderEventPlugin:null}),r({SimpleEventPlugin:null}),r({TapEventPlugin:null}),r({EnterLeaveEventPlugin:null}),r({ChangeEventPlugin:null}),r({SelectEventPlugin:null}),r({BeforeInputEventPlugin:null})];t.exports=o},{146:146}],14:[function(e,t,n){"use strict";var r=e(15),o=e(19),a=e(94),i=e(63),u=e(146),s=r.topLevelTypes,l=i.getFirstReactDOM,c={mouseEnter:{registrationName:u({onMouseEnter:null}),dependencies:[s.topMouseOut,s.topMouseOver]},mouseLeave:{registrationName:u({onMouseLeave:null}),dependencies:[s.topMouseOut,s.topMouseOver]}},p=[null,null],d={eventTypes:c,extractEvents:function(e,t,n,r,u){if(e===s.topMouseOver&&(r.relatedTarget||r.fromElement))return null;if(e!==s.topMouseOut&&e!==s.topMouseOver)return null;var d;if(t.window===t)d=t;else{var f=t.ownerDocument;d=f?f.defaultView||f.parentWindow:window}var h,v,m="",g="";if(e===s.topMouseOut?(h=t,m=n,v=l(r.relatedTarget||r.toElement),v?g=i.getID(v):v=d,v=v||d):(h=d,v=t,g=n),h===v)return null;var y=a.getPooled(c.mouseLeave,m,r,u);y.type="mouseleave",y.target=h,y.relatedTarget=v;var C=a.getPooled(c.mouseEnter,g,r,u);return C.type="mouseenter",C.target=v,C.relatedTarget=h,o.accumulateEnterLeaveDispatches(y,C,m,g),p[0]=y,p[1]=C,p}};t.exports=d},{146:146,15:15,19:19,63:63,94:94}],15:[function(e,t,n){"use strict";var r=e(145),o=r({bubbled:null,captured:null}),a=r({topAbort:null,topBlur:null,topCanPlay:null,topCanPlayThrough:null,topChange:null,topClick:null,topCompositionEnd:null,topCompositionStart:null,topCompositionUpdate:null,topContextMenu:null,topCopy:null,topCut:null,topDoubleClick:null,topDrag:null,topDragEnd:null,topDragEnter:null,topDragExit:null,topDragLeave:null,topDragOver:null,topDragStart:null,topDrop:null,topDurationChange:null,topEmptied:null,topEncrypted:null,topEnded:null,topError:null,topFocus:null,topInput:null,topKeyDown:null,topKeyPress:null,topKeyUp:null,topLoad:null,topLoadedData:null,topLoadedMetadata:null,topLoadStart:null,topMouseDown:null,topMouseMove:null,topMouseOut:null,topMouseOver:null,topMouseUp:null,topPaste:null,topPause:null,topPlay:null,topPlaying:null,topProgress:null,topRateChange:null,topReset:null,topScroll:null,topSeeked:null,topSeeking:null,topSelectionChange:null,topStalled:null,topSubmit:null,topSuspend:null,topTextInput:null,topTimeUpdate:null,topTouchCancel:null,topTouchEnd:null,topTouchMove:null,topTouchStart:null,topVolumeChange:null,topWaiting:null,topWheel:null}),i={topLevelTypes:a,PropagationPhases:o};t.exports=i},{145:145}],16:[function(e,t,n){"use strict";var r=e(17),o=e(18),a=e(54),i=e(100),u=e(108),s=e(142),l=(e(151),{}),c=null,p=function(e,t){e&&(o.executeDispatchesInOrder(e,t),e.isPersistent()||e.constructor.release(e))},d=function(e){return p(e,!0)},f=function(e){return p(e,!1)},h=null,v={injection:{injectMount:o.injection.injectMount,injectInstanceHandle:function(e){h=e},getInstanceHandle:function(){return h},injectEventPluginOrder:r.injectEventPluginOrder,injectEventPluginsByName:r.injectEventPluginsByName},eventNameDispatchConfigs:r.eventNameDispatchConfigs,registrationNameModules:r.registrationNameModules,putListener:function(e,t,n){"function"!=typeof n?s(!1):void 0;var o=l[t]||(l[t]={});o[e]=n;var a=r.registrationNameModules[t];a&&a.didPutListener&&a.didPutListener(e,t,n)},getListener:function(e,t){var n=l[t];return n&&n[e]},deleteListener:function(e,t){var n=r.registrationNameModules[t];n&&n.willDeleteListener&&n.willDeleteListener(e,t);var o=l[t];o&&delete o[e]},deleteAllListeners:function(e){for(var t in l)if(l[t][e]){var n=r.registrationNameModules[t];n&&n.willDeleteListener&&n.willDeleteListener(e,t),delete l[t][e]}},extractEvents:function(e,t,n,o,a){for(var u,s=r.plugins,l=0;l<s.length;l++){var c=s[l];if(c){var p=c.extractEvents(e,t,n,o,a);p&&(u=i(u,p))}}return u},enqueueEvents:function(e){e&&(c=i(c,e))},processEventQueue:function(e){var t=c;c=null,e?u(t,d):u(t,f),c?s(!1):void 0,a.rethrowCaughtError()},__purge:function(){l={}},__getListenerBank:function(){return l}};t.exports=v},{100:100,108:108,142:142,151:151,17:17,18:18,54:54}],17:[function(e,t,n){"use strict";function r(){if(u)for(var e in s){var t=s[e],n=u.indexOf(e);if(n>-1?void 0:i(!1),!l.plugins[n]){t.extractEvents?void 0:i(!1),l.plugins[n]=t;var r=t.eventTypes;for(var a in r)o(r[a],t,a)?void 0:i(!1)}}}function o(e,t,n){l.eventNameDispatchConfigs.hasOwnProperty(n)?i(!1):void 0,l.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var o in r)if(r.hasOwnProperty(o)){var u=r[o];a(u,t,n)}return!0}return e.registrationName?(a(e.registrationName,t,n),!0):!1}function a(e,t,n){l.registrationNameModules[e]?i(!1):void 0,l.registrationNameModules[e]=t,l.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var i=e(142),u=null,s={},l={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},injectEventPluginOrder:function(e){u?i(!1):void 0,u=Array.prototype.slice.call(e),r()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];s.hasOwnProperty(n)&&s[n]===o||(s[n]?i(!1):void 0,s[n]=o,t=!0)}t&&r()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return l.registrationNameModules[t.registrationName]||null;for(var n in t.phasedRegistrationNames)if(t.phasedRegistrationNames.hasOwnProperty(n)){var r=l.registrationNameModules[t.phasedRegistrationNames[n]];if(r)return r}return null},_resetEventPlugins:function(){u=null;for(var e in s)s.hasOwnProperty(e)&&delete s[e];l.plugins.length=0;var t=l.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=l.registrationNameModules;for(var o in r)r.hasOwnProperty(o)&&delete r[o]}};t.exports=l},{142:142}],18:[function(e,t,n){"use strict";function r(e){return e===m.topMouseUp||e===m.topTouchEnd||e===m.topTouchCancel}function o(e){return e===m.topMouseMove||e===m.topTouchMove}function a(e){return e===m.topMouseDown||e===m.topTouchStart}function i(e,t,n,r){var o=e.type||"unknown-event";e.currentTarget=v.Mount.getNode(r),t?f.invokeGuardedCallbackWithCatch(o,n,e,r):f.invokeGuardedCallback(o,n,e,r),e.currentTarget=null}function u(e,t){var n=e._dispatchListeners,r=e._dispatchIDs;if(Array.isArray(n))for(var o=0;o<n.length&&!e.isPropagationStopped();o++)i(e,t,n[o],r[o]);else n&&i(e,t,n,r);e._dispatchListeners=null,e._dispatchIDs=null}function s(e){var t=e._dispatchListeners,n=e._dispatchIDs;if(Array.isArray(t)){for(var r=0;r<t.length&&!e.isPropagationStopped();r++)if(t[r](e,n[r]))return n[r]}else if(t&&t(e,n))return n;return null}function l(e){var t=s(e);return e._dispatchIDs=null,e._dispatchListeners=null,t}function c(e){var t=e._dispatchListeners,n=e._dispatchIDs;Array.isArray(t)?h(!1):void 0;var r=t?t(e,n):null;return e._dispatchListeners=null,e._dispatchIDs=null,r}function p(e){return!!e._dispatchListeners}var d=e(15),f=e(54),h=e(142),v=(e(151),{Mount:null,injectMount:function(e){v.Mount=e}}),m=d.topLevelTypes,g={isEndish:r,isMoveish:o,isStartish:a,executeDirectDispatch:c,executeDispatchesInOrder:u,executeDispatchesInOrderStopAtTrue:l,hasDispatches:p,getNode:function(e){return v.Mount.getNode(e)},getID:function(e){return v.Mount.getID(e)},injection:v};t.exports=g},{142:142,15:15,151:151,54:54}],19:[function(e,t,n){"use strict";function r(e,t,n){var r=t.dispatchConfig.phasedRegistrationNames[n];return y(e,r)}function o(e,t,n){var o=t?g.bubbled:g.captured,a=r(e,n,o);a&&(n._dispatchListeners=v(n._dispatchListeners,a),n._dispatchIDs=v(n._dispatchIDs,e))}function a(e){e&&e.dispatchConfig.phasedRegistrationNames&&h.injection.getInstanceHandle().traverseTwoPhase(e.dispatchMarker,o,e)}function i(e){e&&e.dispatchConfig.phasedRegistrationNames&&h.injection.getInstanceHandle().traverseTwoPhaseSkipTarget(e.dispatchMarker,o,e)}function u(e,t,n){if(n&&n.dispatchConfig.registrationName){var r=n.dispatchConfig.registrationName,o=y(e,r);o&&(n._dispatchListeners=v(n._dispatchListeners,o),n._dispatchIDs=v(n._dispatchIDs,e))}}function s(e){e&&e.dispatchConfig.registrationName&&u(e.dispatchMarker,null,e)}function l(e){m(e,a)}function c(e){m(e,i)}function p(e,t,n,r){h.injection.getInstanceHandle().traverseEnterLeave(n,r,u,e,t)}function d(e){m(e,s)}var f=e(15),h=e(16),v=(e(151),e(100)),m=e(108),g=f.PropagationPhases,y=h.getListener,C={accumulateTwoPhaseDispatches:l,accumulateTwoPhaseDispatchesSkipTarget:c,accumulateDirectDispatches:d,accumulateEnterLeaveDispatches:p};t.exports=C},{100:100,108:108,15:15,151:151,16:16}],20:[function(e,t,n){"use strict";function r(e){this._root=e,this._startText=this.getText(),this._fallbackText=null}var o=e(24),a=e(23),i=e(115);a(r.prototype,{destructor:function(){this._root=null,this._startText=null,this._fallbackText=null},getText:function(){return"value"in this._root?this._root.value:this._root[i()]},getData:function(){if(this._fallbackText)return this._fallbackText;var e,t,n=this._startText,r=n.length,o=this.getText(),a=o.length;for(e=0;r>e&&n[e]===o[e];e++);var i=r-e;for(t=1;i>=t&&n[r-t]===o[a-t];t++);var u=t>1?1-t:void 0;return this._fallbackText=o.slice(e,u),this._fallbackText}}),o.addPoolingTo(r),t.exports=r},{115:115,23:23,24:24}],21:[function(e,t,n){"use strict";var r,o=e(10),a=e(128),i=o.injection.MUST_USE_ATTRIBUTE,u=o.injection.MUST_USE_PROPERTY,s=o.injection.HAS_BOOLEAN_VALUE,l=o.injection.HAS_SIDE_EFFECTS,c=o.injection.HAS_NUMERIC_VALUE,p=o.injection.HAS_POSITIVE_NUMERIC_VALUE,d=o.injection.HAS_OVERLOADED_BOOLEAN_VALUE;if(a.canUseDOM){var f=document.implementation;r=f&&f.hasFeature&&f.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")}var h={isCustomAttribute:RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\d_.\-]*$/),Properties:{accept:null,acceptCharset:null,accessKey:null,action:null,allowFullScreen:i|s,allowTransparency:i,alt:null,async:s,autoComplete:null,autoPlay:s,capture:i|s,cellPadding:null,cellSpacing:null,charSet:i,challenge:i,checked:u|s,classID:i,className:r?i:u,cols:i|p,colSpan:null,content:null,contentEditable:null,contextMenu:i,controls:u|s,coords:null,crossOrigin:null,data:null,dateTime:i,"default":s,defer:s,dir:null,disabled:i|s,download:d,draggable:null,encType:null,form:i,formAction:i,formEncType:i,formMethod:i,formNoValidate:s,formTarget:i,frameBorder:i,headers:null,height:i,hidden:i|s,high:null,href:null,hrefLang:null,htmlFor:null,httpEquiv:null,icon:null,id:u,inputMode:i,integrity:null,is:i,keyParams:i,keyType:i,kind:null,label:null,lang:null,list:i,loop:u|s,low:null,manifest:i,marginHeight:null,marginWidth:null,max:null,maxLength:i,media:i,mediaGroup:null,method:null,min:null,minLength:i,multiple:u|s,muted:u|s,name:null,nonce:i,noValidate:s,open:s,optimum:null,pattern:null,placeholder:null,poster:null,preload:null,radioGroup:null,readOnly:u|s,rel:null,required:s,reversed:s,role:i,rows:i|p,rowSpan:null,sandbox:null,scope:null,scoped:s,scrolling:null,seamless:i|s,selected:u|s,shape:null,size:i|p,sizes:i,span:p,spellCheck:null,src:null,srcDoc:u,srcLang:null,srcSet:i,start:c,step:null,style:null,summary:null,tabIndex:null,target:null,title:null,type:null,useMap:null,value:u|l,width:i,wmode:i,wrap:null,about:i,datatype:i,inlist:i,prefix:i,property:i,resource:i,"typeof":i,vocab:i,autoCapitalize:null,autoCorrect:null,autoSave:null,color:null,itemProp:i,itemScope:i|s,itemType:i,itemID:i,itemRef:i,results:null,security:i,unselectable:i},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{autoCapitalize:"autocapitalize",autoComplete:"autocomplete",autoCorrect:"autocorrect",autoFocus:"autofocus",autoPlay:"autoplay",autoSave:"autosave",encType:"encoding",hrefLang:"hreflang",radioGroup:"radiogroup",spellCheck:"spellcheck",srcDoc:"srcdoc",srcSet:"srcset"}};t.exports=h},{10:10,128:128}],22:[function(e,t,n){"use strict";function r(e){null!=e.checkedLink&&null!=e.valueLink?l(!1):void 0}function o(e){r(e),null!=e.value||null!=e.onChange?l(!1):void 0}function a(e){r(e),null!=e.checked||null!=e.onChange?l(!1):void 0}function i(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}var u=e(72),s=e(71),l=e(142),c=(e(151),{button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0}),p={value:function(e,t,n){return!e[t]||c[e.type]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.")},checked:function(e,t,n){return!e[t]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")},onChange:u.func},d={},f={checkPropTypes:function(e,t,n){for(var r in p){if(p.hasOwnProperty(r))var o=p[r](t,r,e,s.prop);o instanceof Error&&!(o.message in d)&&(d[o.message]=!0,i(n))}},getValue:function(e){return e.valueLink?(o(e),e.valueLink.value):e.value},getChecked:function(e){return e.checkedLink?(a(e),e.checkedLink.value):e.checked},executeOnChange:function(e,t){return e.valueLink?(o(e),e.valueLink.requestChange(t.target.value)):e.checkedLink?(a(e),e.checkedLink.requestChange(t.target.checked)):e.onChange?e.onChange.call(void 0,t):void 0}};t.exports=f},{142:142,151:151,71:71,72:72}],23:[function(e,t,n){"use strict";function r(e,t){if(null==e)throw new TypeError("Object.assign target cannot be null or undefined");for(var n=Object(e),r=Object.prototype.hasOwnProperty,o=1;o<arguments.length;o++){var a=arguments[o];if(null!=a){var i=Object(a);for(var u in i)r.call(i,u)&&(n[u]=i[u])}}return n}t.exports=r},{}],24:[function(e,t,n){"use strict";var r=e(142),o=function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)},a=function(e,t){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,e,t),r}return new n(e,t)},i=function(e,t,n){var r=this;if(r.instancePool.length){var o=r.instancePool.pop();return r.call(o,e,t,n),o}return new r(e,t,n)},u=function(e,t,n,r){var o=this;if(o.instancePool.length){var a=o.instancePool.pop();return o.call(a,e,t,n,r),a}return new o(e,t,n,r)},s=function(e,t,n,r,o){var a=this;if(a.instancePool.length){var i=a.instancePool.pop();return a.call(i,e,t,n,r,o),i}return new a(e,t,n,r,o)},l=function(e){var t=this;e instanceof t?void 0:r(!1),e.destructor(),t.instancePool.length<t.poolSize&&t.instancePool.push(e)},c=10,p=o,d=function(e,t){var n=e;return n.instancePool=[],n.getPooled=t||p,n.poolSize||(n.poolSize=c),n.release=l,n},f={addPoolingTo:d,oneArgumentPooler:o,twoArgumentPooler:a,threeArgumentPooler:i,fourArgumentPooler:u,fiveArgumentPooler:s};t.exports=f},{142:142}],25:[function(e,t,n){"use strict";var r=(e(60),e(106)),o=(e(151),"_getDOMNodeDidWarn"),a={getDOMNode:function(){return this.constructor[o]=!0,r(this)}};t.exports=a},{106:106,151:151,60:60}],26:[function(e,t,n){"use strict";function r(e){return Object.prototype.hasOwnProperty.call(e,m)||(e[m]=h++,d[e[m]]={}),d[e[m]]}var o=e(15),a=e(16),i=e(17),u=e(55),s=e(69),l=e(99),c=e(23),p=e(117),d={},f=!1,h=0,v={topAbort:"abort",topBlur:"blur",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topChange:"change",topClick:"click",topCompositionEnd:"compositionend",topCompositionStart:"compositionstart",topCompositionUpdate:"compositionupdate",topContextMenu:"contextmenu",topCopy:"copy",topCut:"cut",topDoubleClick:"dblclick",topDrag:"drag",topDragEnd:"dragend",topDragEnter:"dragenter",topDragExit:"dragexit",topDragLeave:"dragleave",topDragOver:"dragover",topDragStart:"dragstart",topDrop:"drop",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topFocus:"focus",topInput:"input",topKeyDown:"keydown",topKeyPress:"keypress",topKeyUp:"keyup",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topMouseDown:"mousedown",topMouseMove:"mousemove",topMouseOut:"mouseout",topMouseOver:"mouseover",topMouseUp:"mouseup",topPaste:"paste", +topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topScroll:"scroll",topSeeked:"seeked",topSeeking:"seeking",topSelectionChange:"selectionchange",topStalled:"stalled",topSuspend:"suspend",topTextInput:"textInput",topTimeUpdate:"timeupdate",topTouchCancel:"touchcancel",topTouchEnd:"touchend",topTouchMove:"touchmove",topTouchStart:"touchstart",topVolumeChange:"volumechange",topWaiting:"waiting",topWheel:"wheel"},m="_reactListenersID"+String(Math.random()).slice(2),g=c({},u,{ReactEventListener:null,injection:{injectReactEventListener:function(e){e.setHandleTopLevel(g.handleTopLevel),g.ReactEventListener=e}},setEnabled:function(e){g.ReactEventListener&&g.ReactEventListener.setEnabled(e)},isEnabled:function(){return!(!g.ReactEventListener||!g.ReactEventListener.isEnabled())},listenTo:function(e,t){for(var n=t,a=r(n),u=i.registrationNameDependencies[e],s=o.topLevelTypes,l=0;l<u.length;l++){var c=u[l];a.hasOwnProperty(c)&&a[c]||(c===s.topWheel?p("wheel")?g.ReactEventListener.trapBubbledEvent(s.topWheel,"wheel",n):p("mousewheel")?g.ReactEventListener.trapBubbledEvent(s.topWheel,"mousewheel",n):g.ReactEventListener.trapBubbledEvent(s.topWheel,"DOMMouseScroll",n):c===s.topScroll?p("scroll",!0)?g.ReactEventListener.trapCapturedEvent(s.topScroll,"scroll",n):g.ReactEventListener.trapBubbledEvent(s.topScroll,"scroll",g.ReactEventListener.WINDOW_HANDLE):c===s.topFocus||c===s.topBlur?(p("focus",!0)?(g.ReactEventListener.trapCapturedEvent(s.topFocus,"focus",n),g.ReactEventListener.trapCapturedEvent(s.topBlur,"blur",n)):p("focusin")&&(g.ReactEventListener.trapBubbledEvent(s.topFocus,"focusin",n),g.ReactEventListener.trapBubbledEvent(s.topBlur,"focusout",n)),a[s.topBlur]=!0,a[s.topFocus]=!0):v.hasOwnProperty(c)&&g.ReactEventListener.trapBubbledEvent(c,v[c],n),a[c]=!0)}},trapBubbledEvent:function(e,t,n){return g.ReactEventListener.trapBubbledEvent(e,t,n)},trapCapturedEvent:function(e,t,n){return g.ReactEventListener.trapCapturedEvent(e,t,n)},ensureScrollValueMonitoring:function(){if(!f){var e=l.refreshScrollValues;g.ReactEventListener.monitorScrollValue(e),f=!0}},eventNameDispatchConfigs:a.eventNameDispatchConfigs,registrationNameModules:a.registrationNameModules,putListener:a.putListener,getListener:a.getListener,deleteListener:a.deleteListener,deleteAllListeners:a.deleteAllListeners});s.measureMethods(g,"ReactBrowserEventEmitter",{putListener:"putListener",deleteListener:"deleteListener"}),t.exports=g},{117:117,15:15,16:16,17:17,23:23,55:55,69:69,99:99}],27:[function(e,t,n){"use strict";function r(e,t,n){var r=void 0===e[n];null!=t&&r&&(e[n]=a(t,null))}var o=e(74),a=e(116),i=e(124),u=e(125),s=(e(151),{instantiateChildren:function(e,t,n){if(null==e)return null;var o={};return u(e,r,o),o},updateChildren:function(e,t,n,r){if(!t&&!e)return null;var u;for(u in t)if(t.hasOwnProperty(u)){var s=e&&e[u],l=s&&s._currentElement,c=t[u];if(null!=s&&i(l,c))o.receiveComponent(s,c,n,r),t[u]=s;else{s&&o.unmountComponent(s,u);var p=a(c,null);t[u]=p}}for(u in e)!e.hasOwnProperty(u)||t&&t.hasOwnProperty(u)||o.unmountComponent(e[u]);return t},unmountChildren:function(e){for(var t in e)if(e.hasOwnProperty(t)){var n=e[t];o.unmountComponent(n)}}});t.exports=s},{116:116,124:124,125:125,151:151,74:74}],28:[function(e,t,n){"use strict";function r(e){return(""+e).replace(b,"//")}function o(e,t){this.func=e,this.context=t,this.count=0}function a(e,t,n){var r=e.func,o=e.context;r.call(o,t,e.count++)}function i(e,t,n){if(null==e)return e;var r=o.getPooled(t,n);g(e,a,r),o.release(r)}function u(e,t,n,r){this.result=e,this.keyPrefix=t,this.func=n,this.context=r,this.count=0}function s(e,t,n){var o=e.result,a=e.keyPrefix,i=e.func,u=e.context,s=i.call(u,t,e.count++);Array.isArray(s)?l(s,o,n,m.thatReturnsArgument):null!=s&&(v.isValidElement(s)&&(s=v.cloneAndReplaceKey(s,a+(s!==t?r(s.key||"")+"/":"")+n)),o.push(s))}function l(e,t,n,o,a){var i="";null!=n&&(i=r(n)+"/");var l=u.getPooled(t,i,o,a);g(e,s,l),u.release(l)}function c(e,t,n){if(null==e)return e;var r=[];return l(e,r,null,t,n),r}function p(e,t,n){return null}function d(e,t){return g(e,p,null)}function f(e){var t=[];return l(e,t,null,m.thatReturnsArgument),t}var h=e(24),v=e(50),m=e(134),g=e(125),y=h.twoArgumentPooler,C=h.fourArgumentPooler,b=/\/(?!\/)/g;o.prototype.destructor=function(){this.func=null,this.context=null,this.count=0},h.addPoolingTo(o,y),u.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},h.addPoolingTo(u,C);var _={forEach:i,map:c,mapIntoWithKeyPrefixInternal:l,count:d,toArray:f};t.exports=_},{125:125,134:134,24:24,50:50}],29:[function(e,t,n){"use strict";function r(e,t){var n=E.hasOwnProperty(t)?E[t]:null;D.hasOwnProperty(t)&&(n!==b.OVERRIDE_BASE?m(!1):void 0),e.hasOwnProperty(t)&&(n!==b.DEFINE_MANY&&n!==b.DEFINE_MANY_MERGED?m(!1):void 0)}function o(e,t){if(t){"function"==typeof t?m(!1):void 0,d.isValidElement(t)?m(!1):void 0;var n=e.prototype;t.hasOwnProperty(C)&&x.mixins(e,t.mixins);for(var o in t)if(t.hasOwnProperty(o)&&o!==C){var a=t[o];if(r(n,o),x.hasOwnProperty(o))x[o](e,a);else{var i=E.hasOwnProperty(o),l=n.hasOwnProperty(o),c="function"==typeof a,p=c&&!i&&!l&&t.autobind!==!1;if(p)n.__reactAutoBindMap||(n.__reactAutoBindMap={}),n.__reactAutoBindMap[o]=a,n[o]=a;else if(l){var f=E[o];!i||f!==b.DEFINE_MANY_MERGED&&f!==b.DEFINE_MANY?m(!1):void 0,f===b.DEFINE_MANY_MERGED?n[o]=u(n[o],a):f===b.DEFINE_MANY&&(n[o]=s(n[o],a))}else n[o]=a}}}}function a(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var o=n in x;o?m(!1):void 0;var a=n in e;a?m(!1):void 0,e[n]=r}}}function i(e,t){e&&t&&"object"==typeof e&&"object"==typeof t?void 0:m(!1);for(var n in t)t.hasOwnProperty(n)&&(void 0!==e[n]?m(!1):void 0,e[n]=t[n]);return e}function u(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var o={};return i(o,n),i(o,r),o}}function s(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function l(e,t){var n=t.bind(e);return n}function c(e){for(var t in e.__reactAutoBindMap)if(e.__reactAutoBindMap.hasOwnProperty(t)){var n=e.__reactAutoBindMap[t];e[t]=l(e,n)}}var p=e(30),d=e(50),f=(e(71),e(70),e(67)),h=e(23),v=e(135),m=e(142),g=e(145),y=e(146),C=(e(151),y({mixins:null})),b=g({DEFINE_ONCE:null,DEFINE_MANY:null,OVERRIDE_BASE:null,DEFINE_MANY_MERGED:null}),_=[],E={mixins:b.DEFINE_MANY,statics:b.DEFINE_MANY,propTypes:b.DEFINE_MANY,contextTypes:b.DEFINE_MANY,childContextTypes:b.DEFINE_MANY,getDefaultProps:b.DEFINE_MANY_MERGED,getInitialState:b.DEFINE_MANY_MERGED,getChildContext:b.DEFINE_MANY_MERGED,render:b.DEFINE_ONCE,componentWillMount:b.DEFINE_MANY,componentDidMount:b.DEFINE_MANY,componentWillReceiveProps:b.DEFINE_MANY,shouldComponentUpdate:b.DEFINE_ONCE,componentWillUpdate:b.DEFINE_MANY,componentDidUpdate:b.DEFINE_MANY,componentWillUnmount:b.DEFINE_MANY,updateComponent:b.OVERRIDE_BASE},x={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)o(e,t[n])},childContextTypes:function(e,t){e.childContextTypes=h({},e.childContextTypes,t)},contextTypes:function(e,t){e.contextTypes=h({},e.contextTypes,t)},getDefaultProps:function(e,t){e.getDefaultProps?e.getDefaultProps=u(e.getDefaultProps,t):e.getDefaultProps=t},propTypes:function(e,t){e.propTypes=h({},e.propTypes,t)},statics:function(e,t){a(e,t)},autobind:function(){}},D={replaceState:function(e,t){this.updater.enqueueReplaceState(this,e),t&&this.updater.enqueueCallback(this,t)},isMounted:function(){return this.updater.isMounted(this)},setProps:function(e,t){this.updater.enqueueSetProps(this,e),t&&this.updater.enqueueCallback(this,t)},replaceProps:function(e,t){this.updater.enqueueReplaceProps(this,e),t&&this.updater.enqueueCallback(this,t)}},M=function(){};h(M.prototype,p.prototype,D);var N={createClass:function(e){var t=function(e,t,n){this.__reactAutoBindMap&&c(this),this.props=e,this.context=t,this.refs=v,this.updater=n||f,this.state=null;var r=this.getInitialState?this.getInitialState():null;"object"!=typeof r||Array.isArray(r)?m(!1):void 0,this.state=r};t.prototype=new M,t.prototype.constructor=t,_.forEach(o.bind(null,t)),o(t,e),t.getDefaultProps&&(t.defaultProps=t.getDefaultProps()),t.prototype.render?void 0:m(!1);for(var n in E)t.prototype[n]||(t.prototype[n]=null);return t},injection:{injectMixin:function(e){_.push(e)}}};t.exports=N},{135:135,142:142,145:145,146:146,151:151,23:23,30:30,50:50,67:67,70:70,71:71}],30:[function(e,t,n){"use strict";function r(e,t,n){this.props=e,this.context=t,this.refs=a,this.updater=n||o}var o=e(67),a=(e(102),e(135)),i=e(142);e(151);r.prototype.isReactComponent={},r.prototype.setState=function(e,t){"object"!=typeof e&&"function"!=typeof e&&null!=e?i(!1):void 0,this.updater.enqueueSetState(this,e),t&&this.updater.enqueueCallback(this,t)},r.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this),e&&this.updater.enqueueCallback(this,e)};t.exports=r},{102:102,135:135,142:142,151:151,67:67}],31:[function(e,t,n){"use strict";var r=e(40),o=e(63),a={processChildrenUpdates:r.dangerouslyProcessChildrenUpdates,replaceNodeWithMarkupByID:r.dangerouslyReplaceNodeWithMarkupByID,unmountIDFromEnvironment:function(e){o.purgeID(e)}};t.exports=a},{40:40,63:63}],32:[function(e,t,n){"use strict";var r=e(142),o=!1,a={unmountIDFromEnvironment:null,replaceNodeWithMarkupByID:null,processChildrenUpdates:null,injection:{injectEnvironment:function(e){o?r(!1):void 0,a.unmountIDFromEnvironment=e.unmountIDFromEnvironment,a.replaceNodeWithMarkupByID=e.replaceNodeWithMarkupByID,a.processChildrenUpdates=e.processChildrenUpdates,o=!0}}};t.exports=a},{142:142}],33:[function(e,t,n){"use strict";function r(e){var t=e._currentElement._owner||null;if(t){var n=t.getName();if(n)return" Check the render method of `"+n+"`."}return""}function o(e){}var a=e(32),i=e(34),u=e(50),s=e(60),l=e(69),c=e(71),p=(e(70),e(74)),d=e(80),f=e(23),h=e(135),v=e(142),m=e(124);e(151);o.prototype.render=function(){var e=s.get(this)._currentElement.type;return e(this.props,this.context,this.updater)};var g=1,y={construct:function(e){this._currentElement=e,this._rootNodeID=null,this._instance=null,this._pendingElement=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._renderedComponent=null,this._context=null,this._mountOrder=0,this._topLevelWrapper=null,this._pendingCallbacks=null},mountComponent:function(e,t,n){this._context=n,this._mountOrder=g++,this._rootNodeID=e;var r,a,i=this._processProps(this._currentElement.props),l=this._processContext(n),c=this._currentElement.type,f="prototype"in c;f&&(r=new c(i,l,d)),(!f||null===r||r===!1||u.isValidElement(r))&&(a=r,r=new o(c)),r.props=i,r.context=l,r.refs=h,r.updater=d,this._instance=r,s.set(r,this);var m=r.state;void 0===m&&(r.state=m=null),"object"!=typeof m||Array.isArray(m)?v(!1):void 0,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,r.componentWillMount&&(r.componentWillMount(),this._pendingStateQueue&&(r.state=this._processPendingState(r.props,r.context))),void 0===a&&(a=this._renderValidatedComponent()),this._renderedComponent=this._instantiateReactComponent(a);var y=p.mountComponent(this._renderedComponent,e,t,this._processChildContext(n));return r.componentDidMount&&t.getReactMountReady().enqueue(r.componentDidMount,r),y},unmountComponent:function(){var e=this._instance;e.componentWillUnmount&&e.componentWillUnmount(),p.unmountComponent(this._renderedComponent),this._renderedComponent=null,this._instance=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._pendingCallbacks=null,this._pendingElement=null,this._context=null,this._rootNodeID=null,this._topLevelWrapper=null,s.remove(e)},_maskContext:function(e){var t=null,n=this._currentElement.type,r=n.contextTypes;if(!r)return h;t={};for(var o in r)t[o]=e[o];return t},_processContext:function(e){var t=this._maskContext(e);return t},_processChildContext:function(e){var t=this._currentElement.type,n=this._instance,r=n.getChildContext&&n.getChildContext();if(r){"object"!=typeof t.childContextTypes?v(!1):void 0;for(var o in r)o in t.childContextTypes?void 0:v(!1);return f({},e,r)}return e},_processProps:function(e){return e},_checkPropTypes:function(e,t,n){var o=this.getName();for(var a in e)if(e.hasOwnProperty(a)){var i;try{"function"!=typeof e[a]?v(!1):void 0,i=e[a](t,a,o,n)}catch(u){i=u}i instanceof Error&&(r(this),n===c.prop)}},receiveComponent:function(e,t,n){var r=this._currentElement,o=this._context;this._pendingElement=null,this.updateComponent(t,r,e,o,n)},performUpdateIfNecessary:function(e){null!=this._pendingElement&&p.receiveComponent(this,this._pendingElement||this._currentElement,e,this._context),(null!==this._pendingStateQueue||this._pendingForceUpdate)&&this.updateComponent(e,this._currentElement,this._currentElement,this._context,this._context)},updateComponent:function(e,t,n,r,o){var a,i=this._instance,u=this._context===o?i.context:this._processContext(o);t===n?a=n.props:(a=this._processProps(n.props),i.componentWillReceiveProps&&i.componentWillReceiveProps(a,u));var s=this._processPendingState(a,u),l=this._pendingForceUpdate||!i.shouldComponentUpdate||i.shouldComponentUpdate(a,s,u);l?(this._pendingForceUpdate=!1,this._performComponentUpdate(n,a,s,u,e,o)):(this._currentElement=n,this._context=o,i.props=a,i.state=s,i.context=u)},_processPendingState:function(e,t){var n=this._instance,r=this._pendingStateQueue,o=this._pendingReplaceState;if(this._pendingReplaceState=!1,this._pendingStateQueue=null,!r)return n.state;if(o&&1===r.length)return r[0];for(var a=f({},o?r[0]:n.state),i=o?1:0;i<r.length;i++){var u=r[i];f(a,"function"==typeof u?u.call(n,a,e,t):u)}return a},_performComponentUpdate:function(e,t,n,r,o,a){var i,u,s,l=this._instance,c=Boolean(l.componentDidUpdate);c&&(i=l.props,u=l.state,s=l.context),l.componentWillUpdate&&l.componentWillUpdate(t,n,r),this._currentElement=e,this._context=a,l.props=t,l.state=n,l.context=r,this._updateRenderedComponent(o,a),c&&o.getReactMountReady().enqueue(l.componentDidUpdate.bind(l,i,u,s),l)},_updateRenderedComponent:function(e,t){var n=this._renderedComponent,r=n._currentElement,o=this._renderValidatedComponent();if(m(r,o))p.receiveComponent(n,o,e,this._processChildContext(t));else{var a=this._rootNodeID,i=n._rootNodeID;p.unmountComponent(n),this._renderedComponent=this._instantiateReactComponent(o);var u=p.mountComponent(this._renderedComponent,a,e,this._processChildContext(t));this._replaceNodeWithMarkupByID(i,u)}},_replaceNodeWithMarkupByID:function(e,t){a.replaceNodeWithMarkupByID(e,t)},_renderValidatedComponentWithoutOwnerOrContext:function(){var e=this._instance,t=e.render();return t},_renderValidatedComponent:function(){var e;i.current=this;try{e=this._renderValidatedComponentWithoutOwnerOrContext()}finally{i.current=null}return null===e||e===!1||u.isValidElement(e)?void 0:v(!1),e},attachRef:function(e,t){var n=this.getPublicInstance();null==n?v(!1):void 0;var r=t.getPublicInstance(),o=n.refs===h?n.refs={}:n.refs;o[e]=r},detachRef:function(e){var t=this.getPublicInstance().refs;delete t[e]},getName:function(){var e=this._currentElement.type,t=this._instance&&this._instance.constructor;return e.displayName||t&&t.displayName||e.name||t&&t.name||null},getPublicInstance:function(){var e=this._instance;return e instanceof o?null:e},_instantiateReactComponent:null};l.measureMethods(y,"ReactCompositeComponent",{mountComponent:"mountComponent",updateComponent:"updateComponent",_renderValidatedComponent:"_renderValidatedComponent"});var C={Mixin:y};t.exports=C},{124:124,135:135,142:142,151:151,23:23,32:32,34:34,50:50,60:60,69:69,70:70,71:71,74:74,80:80}],34:[function(e,t,n){"use strict";var r={current:null};t.exports=r},{}],35:[function(e,t,n){"use strict";var r=e(34),o=e(46),a=e(49),i=e(59),u=e(63),s=e(69),l=e(74),c=e(81),p=e(82),d=e(106),f=e(121);e(151);a.inject();var h=s.measure("React","render",u.render),v={findDOMNode:d,render:h,unmountComponentAtNode:u.unmountComponentAtNode,version:p,unstable_batchedUpdates:c.batchedUpdates,unstable_renderSubtreeIntoContainer:f};"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject&&__REACT_DEVTOOLS_GLOBAL_HOOK__.inject({CurrentOwner:r,InstanceHandles:i,Mount:u,Reconciler:l,TextComponent:o});t.exports=v},{106:106,121:121,151:151,34:34,46:46,49:49,59:59,63:63,69:69,74:74,81:81,82:82}],36:[function(e,t,n){"use strict";var r={onClick:!0,onDoubleClick:!0,onMouseDown:!0,onMouseMove:!0,onMouseUp:!0,onClickCapture:!0,onDoubleClickCapture:!0,onMouseDownCapture:!0,onMouseMoveCapture:!0,onMouseUpCapture:!0},o={getNativeProps:function(e,t,n){if(!t.disabled)return t;var o={};for(var a in t)t.hasOwnProperty(a)&&!r[a]&&(o[a]=t[a]);return o}};t.exports=o},{}],37:[function(e,t,n){"use strict";function r(){return this}function o(){var e=this._reactInternalComponent;return!!e}function a(){}function i(e,t){var n=this._reactInternalComponent;n&&(T.enqueueSetPropsInternal(n,e),t&&T.enqueueCallbackInternal(n,t))}function u(e,t){var n=this._reactInternalComponent;n&&(T.enqueueReplacePropsInternal(n,e),t&&T.enqueueCallbackInternal(n,t))}function s(e,t){t&&(null!=t.dangerouslySetInnerHTML&&(null!=t.children?L(!1):void 0,"object"==typeof t.dangerouslySetInnerHTML&&Y in t.dangerouslySetInnerHTML?void 0:L(!1)),null!=t.style&&"object"!=typeof t.style?L(!1):void 0)}function l(e,t,n,r){var o=R.findReactContainerForID(e);if(o){var a=o.nodeType===z?o.ownerDocument:o;j(t,a)}r.getReactMountReady().enqueue(c,{id:e,registrationName:t,listener:n})}function c(){var e=this;E.putListener(e.id,e.registrationName,e.listener)}function p(){var e=this;e._rootNodeID?void 0:L(!1);var t=R.getNode(e._rootNodeID);switch(t?void 0:L(!1),e._tag){case"iframe":e._wrapperState.listeners=[E.trapBubbledEvent(_.topLevelTypes.topLoad,"load",t)];break;case"video":case"audio":e._wrapperState.listeners=[];for(var n in G)G.hasOwnProperty(n)&&e._wrapperState.listeners.push(E.trapBubbledEvent(_.topLevelTypes[n],G[n],t));break;case"img":e._wrapperState.listeners=[E.trapBubbledEvent(_.topLevelTypes.topError,"error",t),E.trapBubbledEvent(_.topLevelTypes.topLoad,"load",t)];break;case"form":e._wrapperState.listeners=[E.trapBubbledEvent(_.topLevelTypes.topReset,"reset",t),E.trapBubbledEvent(_.topLevelTypes.topSubmit,"submit",t)]}}function d(){M.mountReadyWrapper(this)}function f(){P.postUpdateWrapper(this)}function h(e){J.call(Z,e)||($.test(e)?void 0:L(!1),Z[e]=!0)}function v(e,t){return e.indexOf("-")>=0||null!=t.is}function m(e){h(e),this._tag=e.toLowerCase(),this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._rootNodeID=null,this._wrapperState=null,this._topLevelWrapper=null,this._nodeWithLegacyProperties=null}var g=e(2),y=e(5),C=e(10),b=e(11),_=e(15),E=e(26),x=e(31),D=e(36),M=e(41),N=e(42),P=e(43),w=e(47),R=e(63),I=e(64),S=e(69),T=e(80),k=e(23),O=e(102),A=e(105),L=e(142),U=(e(117),e(146)),F=e(122),B=e(123),V=(e(149),e(126),e(151),E.deleteListener),j=E.listenTo,W=E.registrationNameModules,K={string:!0,number:!0},H=U({children:null}),q=U({style:null}),Y=U({__html:null}),z=1,G={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"},X={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},Q={listing:!0,pre:!0,textarea:!0},$=(k({menuitem:!0},X),/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/),Z={},J={}.hasOwnProperty;m.displayName="ReactDOMComponent",m.Mixin={construct:function(e){this._currentElement=e},mountComponent:function(e,t,n){this._rootNodeID=e;var r=this._currentElement.props;switch(this._tag){case"iframe":case"img":case"form":case"video":case"audio":this._wrapperState={listeners:null},t.getReactMountReady().enqueue(p,this);break;case"button":r=D.getNativeProps(this,r,n);break;case"input":M.mountWrapper(this,r,n),r=M.getNativeProps(this,r,n);break;case"option":N.mountWrapper(this,r,n),r=N.getNativeProps(this,r,n);break;case"select":P.mountWrapper(this,r,n),r=P.getNativeProps(this,r,n),n=P.processChildContext(this,r,n);break;case"textarea":w.mountWrapper(this,r,n),r=w.getNativeProps(this,r,n)}s(this,r);var o;if(t.useCreateElement){var a=n[R.ownerDocumentContextKey],i=a.createElement(this._currentElement.type);b.setAttributeForID(i,this._rootNodeID),R.getID(i),this._updateDOMProperties({},r,t,i),this._createInitialChildren(t,r,n,i),o=i}else{var u=this._createOpenTagMarkupAndPutListeners(t,r),l=this._createContentMarkup(t,r,n);o=!l&&X[this._tag]?u+"/>":u+">"+l+"</"+this._currentElement.type+">"}switch(this._tag){case"input":t.getReactMountReady().enqueue(d,this);case"button":case"select":case"textarea":r.autoFocus&&t.getReactMountReady().enqueue(g.focusDOMComponent,this)}return o},_createOpenTagMarkupAndPutListeners:function(e,t){var n="<"+this._currentElement.type;for(var r in t)if(t.hasOwnProperty(r)){var o=t[r];if(null!=o)if(W.hasOwnProperty(r))o&&l(this._rootNodeID,r,o,e);else{r===q&&(o&&(o=this._previousStyleCopy=k({},t.style)),o=y.createMarkupForStyles(o));var a=null;null!=this._tag&&v(this._tag,t)?r!==H&&(a=b.createMarkupForCustomAttribute(r,o)):a=b.createMarkupForProperty(r,o),a&&(n+=" "+a)}}if(e.renderToStaticMarkup)return n;var i=b.createMarkupForID(this._rootNodeID);return n+" "+i},_createContentMarkup:function(e,t,n){var r="",o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&(r=o.__html);else{var a=K[typeof t.children]?t.children:null,i=null!=a?null:t.children;if(null!=a)r=A(a);else if(null!=i){var u=this.mountChildren(i,e,n);r=u.join("")}}return Q[this._tag]&&"\n"===r.charAt(0)?"\n"+r:r},_createInitialChildren:function(e,t,n,r){var o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&F(r,o.__html);else{var a=K[typeof t.children]?t.children:null,i=null!=a?null:t.children;if(null!=a)B(r,a);else if(null!=i)for(var u=this.mountChildren(i,e,n),s=0;s<u.length;s++)r.appendChild(u[s])}},receiveComponent:function(e,t,n){var r=this._currentElement;this._currentElement=e,this.updateComponent(t,r,e,n)},updateComponent:function(e,t,n,r){var o=t.props,a=this._currentElement.props;switch(this._tag){case"button":o=D.getNativeProps(this,o),a=D.getNativeProps(this,a);break;case"input":M.updateWrapper(this),o=M.getNativeProps(this,o),a=M.getNativeProps(this,a);break;case"option":o=N.getNativeProps(this,o),a=N.getNativeProps(this,a);break;case"select":o=P.getNativeProps(this,o),a=P.getNativeProps(this,a);break;case"textarea":w.updateWrapper(this),o=w.getNativeProps(this,o),a=w.getNativeProps(this,a)}s(this,a),this._updateDOMProperties(o,a,e,null),this._updateDOMChildren(o,a,e,r),!O&&this._nodeWithLegacyProperties&&(this._nodeWithLegacyProperties.props=a),"select"===this._tag&&e.getReactMountReady().enqueue(f,this)},_updateDOMProperties:function(e,t,n,r){var o,a,i;for(o in e)if(!t.hasOwnProperty(o)&&e.hasOwnProperty(o))if(o===q){var u=this._previousStyleCopy;for(a in u)u.hasOwnProperty(a)&&(i=i||{},i[a]="");this._previousStyleCopy=null}else W.hasOwnProperty(o)?e[o]&&V(this._rootNodeID,o):(C.properties[o]||C.isCustomAttribute(o))&&(r||(r=R.getNode(this._rootNodeID)),b.deleteValueForProperty(r,o));for(o in t){var s=t[o],c=o===q?this._previousStyleCopy:e[o];if(t.hasOwnProperty(o)&&s!==c)if(o===q)if(s?s=this._previousStyleCopy=k({},s):this._previousStyleCopy=null,c){for(a in c)!c.hasOwnProperty(a)||s&&s.hasOwnProperty(a)||(i=i||{},i[a]="");for(a in s)s.hasOwnProperty(a)&&c[a]!==s[a]&&(i=i||{},i[a]=s[a])}else i=s;else W.hasOwnProperty(o)?s?l(this._rootNodeID,o,s,n):c&&V(this._rootNodeID,o):v(this._tag,t)?(r||(r=R.getNode(this._rootNodeID)),o===H&&(s=null),b.setValueForAttribute(r,o,s)):(C.properties[o]||C.isCustomAttribute(o))&&(r||(r=R.getNode(this._rootNodeID)),null!=s?b.setValueForProperty(r,o,s):b.deleteValueForProperty(r,o))}i&&(r||(r=R.getNode(this._rootNodeID)),y.setValueForStyles(r,i))},_updateDOMChildren:function(e,t,n,r){var o=K[typeof e.children]?e.children:null,a=K[typeof t.children]?t.children:null,i=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,u=t.dangerouslySetInnerHTML&&t.dangerouslySetInnerHTML.__html,s=null!=o?null:e.children,l=null!=a?null:t.children,c=null!=o||null!=i,p=null!=a||null!=u;null!=s&&null==l?this.updateChildren(null,n,r):c&&!p&&this.updateTextContent(""),null!=a?o!==a&&this.updateTextContent(""+a):null!=u?i!==u&&this.updateMarkup(""+u):null!=l&&this.updateChildren(l,n,r)},unmountComponent:function(){switch(this._tag){case"iframe":case"img":case"form":case"video":case"audio":var e=this._wrapperState.listeners;if(e)for(var t=0;t<e.length;t++)e[t].remove();break;case"input":M.unmountWrapper(this);break;case"html":case"head":case"body":L(!1)}if(this.unmountChildren(),E.deleteAllListeners(this._rootNodeID),x.unmountIDFromEnvironment(this._rootNodeID),this._rootNodeID=null,this._wrapperState=null,this._nodeWithLegacyProperties){var n=this._nodeWithLegacyProperties;n._reactInternalComponent=null,this._nodeWithLegacyProperties=null}},getPublicInstance:function(){if(!this._nodeWithLegacyProperties){var e=R.getNode(this._rootNodeID);e._reactInternalComponent=this,e.getDOMNode=r,e.isMounted=o,e.setState=a,e.replaceState=a,e.forceUpdate=a,e.setProps=i,e.replaceProps=u,e.props=this._currentElement.props,this._nodeWithLegacyProperties=e}return this._nodeWithLegacyProperties}},S.measureMethods(m,"ReactDOMComponent",{mountComponent:"mountComponent",updateComponent:"updateComponent"}),k(m.prototype,m.Mixin,I.Mixin),t.exports=m},{10:10,102:102,105:105,11:11,117:117,122:122,123:123,126:126,142:142,146:146,149:149,15:15,151:151,2:2,23:23,26:26,31:31,36:36,41:41,42:42,43:43,47:47,5:5,63:63,64:64,69:69,80:80}],38:[function(e,t,n){"use strict";function r(e){return o.createFactory(e)}var o=e(50),a=(e(51),e(147)),i=a({a:"a",abbr:"abbr",address:"address",area:"area",article:"article",aside:"aside",audio:"audio",b:"b",base:"base",bdi:"bdi",bdo:"bdo",big:"big",blockquote:"blockquote",body:"body",br:"br",button:"button",canvas:"canvas",caption:"caption",cite:"cite",code:"code",col:"col",colgroup:"colgroup",data:"data",datalist:"datalist",dd:"dd",del:"del",details:"details",dfn:"dfn",dialog:"dialog",div:"div",dl:"dl",dt:"dt",em:"em",embed:"embed",fieldset:"fieldset",figcaption:"figcaption",figure:"figure",footer:"footer",form:"form",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",head:"head",header:"header",hgroup:"hgroup",hr:"hr",html:"html",i:"i",iframe:"iframe",img:"img",input:"input",ins:"ins",kbd:"kbd",keygen:"keygen",label:"label",legend:"legend",li:"li",link:"link",main:"main",map:"map",mark:"mark",menu:"menu",menuitem:"menuitem",meta:"meta",meter:"meter",nav:"nav",noscript:"noscript",object:"object",ol:"ol",optgroup:"optgroup",option:"option",output:"output",p:"p",param:"param",picture:"picture",pre:"pre",progress:"progress",q:"q",rp:"rp",rt:"rt",ruby:"ruby",s:"s",samp:"samp",script:"script",section:"section",select:"select",small:"small",source:"source",span:"span",strong:"strong",style:"style",sub:"sub",summary:"summary",sup:"sup",table:"table",tbody:"tbody",td:"td",textarea:"textarea",tfoot:"tfoot",th:"th",thead:"thead",time:"time",title:"title",tr:"tr",track:"track",u:"u",ul:"ul","var":"var",video:"video",wbr:"wbr",circle:"circle",clipPath:"clipPath",defs:"defs",ellipse:"ellipse",g:"g",image:"image",line:"line",linearGradient:"linearGradient",mask:"mask",path:"path",pattern:"pattern",polygon:"polygon",polyline:"polyline",radialGradient:"radialGradient",rect:"rect",stop:"stop",svg:"svg",text:"text",tspan:"tspan"},r);t.exports=i},{147:147,50:50,51:51}],39:[function(e,t,n){"use strict";var r={useCreateElement:!1};t.exports=r},{}],40:[function(e,t,n){"use strict";var r=e(9),o=e(11),a=e(63),i=e(69),u=e(142),s={dangerouslySetInnerHTML:"`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.",style:"`style` must be set using `updateStylesByID()`."},l={updatePropertyByID:function(e,t,n){var r=a.getNode(e);s.hasOwnProperty(t)?u(!1):void 0,null!=n?o.setValueForProperty(r,t,n):o.deleteValueForProperty(r,t)},dangerouslyReplaceNodeWithMarkupByID:function(e,t){var n=a.getNode(e);r.dangerouslyReplaceNodeWithMarkup(n,t)},dangerouslyProcessChildrenUpdates:function(e,t){for(var n=0;n<e.length;n++)e[n].parentNode=a.getNode(e[n].parentID);r.processUpdates(e,t)}};i.measureMethods(l,"ReactDOMIDOperations",{dangerouslyReplaceNodeWithMarkupByID:"dangerouslyReplaceNodeWithMarkupByID",dangerouslyProcessChildrenUpdates:"dangerouslyProcessChildrenUpdates"}),t.exports=l},{11:11,142:142,63:63,69:69,9:9}],41:[function(e,t,n){"use strict";function r(){this._rootNodeID&&d.updateWrapper(this)}function o(e){var t=this._currentElement.props,n=i.executeOnChange(t,e);s.asap(r,this);var o=t.name;if("radio"===t.type&&null!=o){for(var a=u.getNode(this._rootNodeID),l=a;l.parentNode;)l=l.parentNode;for(var d=l.querySelectorAll("input[name="+JSON.stringify(""+o)+'][type="radio"]'),f=0;f<d.length;f++){var h=d[f];if(h!==a&&h.form===a.form){var v=u.getID(h);v?void 0:c(!1);var m=p[v];m?void 0:c(!1),s.asap(r,m)}}}return n}var a=e(40),i=e(22),u=e(63),s=e(81),l=e(23),c=e(142),p={},d={getNativeProps:function(e,t,n){var r=i.getValue(t),o=i.getChecked(t),a=l({},t,{defaultChecked:void 0,defaultValue:void 0,value:null!=r?r:e._wrapperState.initialValue,checked:null!=o?o:e._wrapperState.initialChecked,onChange:e._wrapperState.onChange});return a},mountWrapper:function(e,t){var n=t.defaultValue;e._wrapperState={initialChecked:t.defaultChecked||!1,initialValue:null!=n?n:null,onChange:o.bind(e)}},mountReadyWrapper:function(e){p[e._rootNodeID]=e},unmountWrapper:function(e){delete p[e._rootNodeID]},updateWrapper:function(e){var t=e._currentElement.props,n=t.checked;null!=n&&a.updatePropertyByID(e._rootNodeID,"checked",n||!1);var r=i.getValue(t);null!=r&&a.updatePropertyByID(e._rootNodeID,"value",""+r)}};t.exports=d},{142:142,22:22,23:23,40:40,63:63,81:81}],42:[function(e,t,n){"use strict";var r=e(28),o=e(43),a=e(23),i=(e(151),o.valueContextKey),u={mountWrapper:function(e,t,n){var r=n[i],o=null;if(null!=r)if(o=!1,Array.isArray(r)){for(var a=0;a<r.length;a++)if(""+r[a]==""+t.value){o=!0;break}}else o=""+r==""+t.value;e._wrapperState={selected:o}},getNativeProps:function(e,t,n){var o=a({selected:void 0,children:void 0},t);null!=e._wrapperState.selected&&(o.selected=e._wrapperState.selected);var i="";return r.forEach(t.children,function(e){null!=e&&("string"==typeof e||"number"==typeof e)&&(i+=e)}),o.children=i,o}};t.exports=u},{151:151,23:23,28:28,43:43}],43:[function(e,t,n){"use strict";function r(){if(this._rootNodeID&&this._wrapperState.pendingUpdate){this._wrapperState.pendingUpdate=!1;var e=this._currentElement.props,t=i.getValue(e);null!=t&&o(this,e,t)}}function o(e,t,n){var r,o,a=u.getNode(e._rootNodeID).options;if(t){for(r={},o=0;o<n.length;o++)r[""+n[o]]=!0;for(o=0;o<a.length;o++){var i=r.hasOwnProperty(a[o].value);a[o].selected!==i&&(a[o].selected=i)}}else{for(r=""+n,o=0;o<a.length;o++)if(a[o].value===r)return void(a[o].selected=!0);a.length&&(a[0].selected=!0)}}function a(e){var t=this._currentElement.props,n=i.executeOnChange(t,e);return this._wrapperState.pendingUpdate=!0,s.asap(r,this),n}var i=e(22),u=e(63),s=e(81),l=e(23),c=(e(151),"__ReactDOMSelect_value$"+Math.random().toString(36).slice(2)),p={valueContextKey:c,getNativeProps:function(e,t,n){return l({},t,{onChange:e._wrapperState.onChange,value:void 0})},mountWrapper:function(e,t){var n=i.getValue(t);e._wrapperState={pendingUpdate:!1,initialValue:null!=n?n:t.defaultValue,onChange:a.bind(e),wasMultiple:Boolean(t.multiple)}},processChildContext:function(e,t,n){var r=l({},n);return r[c]=e._wrapperState.initialValue, +r},postUpdateWrapper:function(e){var t=e._currentElement.props;e._wrapperState.initialValue=void 0;var n=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=Boolean(t.multiple);var r=i.getValue(t);null!=r?(e._wrapperState.pendingUpdate=!1,o(e,Boolean(t.multiple),r)):n!==Boolean(t.multiple)&&(null!=t.defaultValue?o(e,Boolean(t.multiple),t.defaultValue):o(e,Boolean(t.multiple),t.multiple?[]:""))}};t.exports=p},{151:151,22:22,23:23,63:63,81:81}],44:[function(e,t,n){"use strict";function r(e,t,n,r){return e===n&&t===r}function o(e){var t=document.selection,n=t.createRange(),r=n.text.length,o=n.duplicate();o.moveToElementText(e),o.setEndPoint("EndToStart",n);var a=o.text.length,i=a+r;return{start:a,end:i}}function a(e){var t=window.getSelection&&window.getSelection();if(!t||0===t.rangeCount)return null;var n=t.anchorNode,o=t.anchorOffset,a=t.focusNode,i=t.focusOffset,u=t.getRangeAt(0);try{u.startContainer.nodeType,u.endContainer.nodeType}catch(s){return null}var l=r(t.anchorNode,t.anchorOffset,t.focusNode,t.focusOffset),c=l?0:u.toString().length,p=u.cloneRange();p.selectNodeContents(e),p.setEnd(u.startContainer,u.startOffset);var d=r(p.startContainer,p.startOffset,p.endContainer,p.endOffset),f=d?0:p.toString().length,h=f+c,v=document.createRange();v.setStart(n,o),v.setEnd(a,i);var m=v.collapsed;return{start:m?h:f,end:m?f:h}}function i(e,t){var n,r,o=document.selection.createRange().duplicate();"undefined"==typeof t.end?(n=t.start,r=n):t.start>t.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}function u(e,t){if(window.getSelection){var n=window.getSelection(),r=e[c()].length,o=Math.min(t.start,r),a="undefined"==typeof t.end?o:Math.min(t.end,r);if(!n.extend&&o>a){var i=a;a=o,o=i}var u=l(e,o),s=l(e,a);if(u&&s){var p=document.createRange();p.setStart(u.node,u.offset),n.removeAllRanges(),o>a?(n.addRange(p),n.extend(s.node,s.offset)):(p.setEnd(s.node,s.offset),n.addRange(p))}}}var s=e(128),l=e(114),c=e(115),p=s.canUseDOM&&"selection"in document&&!("getSelection"in window),d={getOffsets:p?o:a,setOffsets:p?i:u};t.exports=d},{114:114,115:115,128:128}],45:[function(e,t,n){"use strict";var r=e(49),o=e(78),a=e(82);r.inject();var i={renderToString:o.renderToString,renderToStaticMarkup:o.renderToStaticMarkup,version:a};t.exports=i},{49:49,78:78,82:82}],46:[function(e,t,n){"use strict";var r=e(9),o=e(11),a=e(31),i=e(63),u=e(23),s=e(105),l=e(123),c=(e(126),function(e){});u(c.prototype,{construct:function(e){this._currentElement=e,this._stringText=""+e,this._rootNodeID=null,this._mountIndex=0},mountComponent:function(e,t,n){if(this._rootNodeID=e,t.useCreateElement){var r=n[i.ownerDocumentContextKey],a=r.createElement("span");return o.setAttributeForID(a,e),i.getID(a),l(a,this._stringText),a}var u=s(this._stringText);return t.renderToStaticMarkup?u:"<span "+o.createMarkupForID(e)+">"+u+"</span>"},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;if(n!==this._stringText){this._stringText=n;var o=i.getNode(this._rootNodeID);r.updateTextContent(o,n)}}},unmountComponent:function(){a.unmountIDFromEnvironment(this._rootNodeID)}}),t.exports=c},{105:105,11:11,123:123,126:126,23:23,31:31,63:63,9:9}],47:[function(e,t,n){"use strict";function r(){this._rootNodeID&&c.updateWrapper(this)}function o(e){var t=this._currentElement.props,n=a.executeOnChange(t,e);return u.asap(r,this),n}var a=e(22),i=e(40),u=e(81),s=e(23),l=e(142),c=(e(151),{getNativeProps:function(e,t,n){null!=t.dangerouslySetInnerHTML?l(!1):void 0;var r=s({},t,{defaultValue:void 0,value:void 0,children:e._wrapperState.initialValue,onChange:e._wrapperState.onChange});return r},mountWrapper:function(e,t){var n=t.defaultValue,r=t.children;null!=r&&(null!=n?l(!1):void 0,Array.isArray(r)&&(r.length<=1?void 0:l(!1),r=r[0]),n=""+r),null==n&&(n="");var i=a.getValue(t);e._wrapperState={initialValue:""+(null!=i?i:n),onChange:o.bind(e)}},updateWrapper:function(e){var t=e._currentElement.props,n=a.getValue(t);null!=n&&i.updatePropertyByID(e._rootNodeID,"value",""+n)}});t.exports=c},{142:142,151:151,22:22,23:23,40:40,81:81}],48:[function(e,t,n){"use strict";function r(){this.reinitializeTransaction()}var o=e(81),a=e(98),i=e(23),u=e(134),s={initialize:u,close:function(){d.isBatchingUpdates=!1}},l={initialize:u,close:o.flushBatchedUpdates.bind(o)},c=[l,s];i(r.prototype,a.Mixin,{getTransactionWrappers:function(){return c}});var p=new r,d={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o,a){var i=d.isBatchingUpdates;d.isBatchingUpdates=!0,i?e(t,n,r,o,a):p.perform(e,null,t,n,r,o,a)}};t.exports=d},{134:134,23:23,81:81,98:98}],49:[function(e,t,n){"use strict";function r(){M||(M=!0,g.EventEmitter.injectReactEventListener(m),g.EventPluginHub.injectEventPluginOrder(u),g.EventPluginHub.injectInstanceHandle(y),g.EventPluginHub.injectMount(C),g.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:x,EnterLeaveEventPlugin:s,ChangeEventPlugin:a,SelectEventPlugin:_,BeforeInputEventPlugin:o}),g.NativeComponent.injectGenericComponentClass(h),g.NativeComponent.injectTextComponentClass(v),g.Class.injectMixin(p),g.DOMProperty.injectDOMPropertyConfig(c),g.DOMProperty.injectDOMPropertyConfig(D),g.EmptyComponent.injectEmptyComponent("noscript"),g.Updates.injectReconcileTransaction(b),g.Updates.injectBatchingStrategy(f),g.RootIndex.injectCreateReactRootIndex(l.canUseDOM?i.createReactRootIndex:E.createReactRootIndex),g.Component.injectEnvironment(d))}var o=e(3),a=e(7),i=e(8),u=e(13),s=e(14),l=e(128),c=e(21),p=e(25),d=e(31),f=e(48),h=e(37),v=e(46),m=e(56),g=e(57),y=e(59),C=e(63),b=e(73),_=e(84),E=e(85),x=e(86),D=e(83),M=!1;t.exports={inject:r}},{128:128,13:13,14:14,21:21,25:25,3:3,31:31,37:37,46:46,48:48,56:56,57:57,59:59,63:63,7:7,73:73,8:8,83:83,84:84,85:85,86:86}],50:[function(e,t,n){"use strict";var r=e(34),o=e(23),a=(e(102),"function"==typeof Symbol&&Symbol["for"]&&Symbol["for"]("react.element")||60103),i={key:!0,ref:!0,__self:!0,__source:!0},u=function(e,t,n,r,o,i,u){var s={$$typeof:a,type:e,key:t,ref:n,props:u,_owner:i};return s};u.createElement=function(e,t,n){var o,a={},s=null,l=null,c=null,p=null;if(null!=t){l=void 0===t.ref?null:t.ref,s=void 0===t.key?null:""+t.key,c=void 0===t.__self?null:t.__self,p=void 0===t.__source?null:t.__source;for(o in t)t.hasOwnProperty(o)&&!i.hasOwnProperty(o)&&(a[o]=t[o])}var d=arguments.length-2;if(1===d)a.children=n;else if(d>1){for(var f=Array(d),h=0;d>h;h++)f[h]=arguments[h+2];a.children=f}if(e&&e.defaultProps){var v=e.defaultProps;for(o in v)"undefined"==typeof a[o]&&(a[o]=v[o])}return u(e,s,l,c,p,r.current,a)},u.createFactory=function(e){var t=u.createElement.bind(null,e);return t.type=e,t},u.cloneAndReplaceKey=function(e,t){var n=u(e.type,t,e.ref,e._self,e._source,e._owner,e.props);return n},u.cloneAndReplaceProps=function(e,t){var n=u(e.type,e.key,e.ref,e._self,e._source,e._owner,t);return n},u.cloneElement=function(e,t,n){var a,s=o({},e.props),l=e.key,c=e.ref,p=e._self,d=e._source,f=e._owner;if(null!=t){void 0!==t.ref&&(c=t.ref,f=r.current),void 0!==t.key&&(l=""+t.key);for(a in t)t.hasOwnProperty(a)&&!i.hasOwnProperty(a)&&(s[a]=t[a])}var h=arguments.length-2;if(1===h)s.children=n;else if(h>1){for(var v=Array(h),m=0;h>m;m++)v[m]=arguments[m+2];s.children=v}return u(e.type,l,c,p,d,f,s)},u.isValidElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===a},t.exports=u},{102:102,23:23,34:34}],51:[function(e,t,n){"use strict";function r(){if(p.current){var e=p.current.getName();if(e)return" Check the render method of `"+e+"`."}return""}function o(e,t){e._store&&!e._store.validated&&null==e.key&&(e._store.validated=!0,a("uniqueKey",e,t))}function a(e,t,n){var o=r();if(!o){var a="string"==typeof n?n:n.displayName||n.name;a&&(o=" Check the top-level render call using <"+a+">.")}var i=h[e]||(h[e]={});if(i[o])return null;i[o]=!0;var u={parentOrOwner:o,url:" See https://fb.me/react-warning-keys for more information.",childOwner:null};return t&&t._owner&&t._owner!==p.current&&(u.childOwner=" It was passed a child from "+t._owner.getName()+"."),u}function i(e,t){if("object"==typeof e)if(Array.isArray(e))for(var n=0;n<e.length;n++){var r=e[n];l.isValidElement(r)&&o(r,t)}else if(l.isValidElement(e))e._store&&(e._store.validated=!0);else if(e){var a=d(e);if(a&&a!==e.entries)for(var i,u=a.call(e);!(i=u.next()).done;)l.isValidElement(i.value)&&o(i.value,t)}}function u(e,t,n,o){for(var a in t)if(t.hasOwnProperty(a)){var i;try{"function"!=typeof t[a]?f(!1):void 0,i=t[a](n,a,e,o)}catch(u){i=u}i instanceof Error&&!(i.message in v)&&(v[i.message]=!0,r())}}function s(e){var t=e.type;if("function"==typeof t){var n=t.displayName||t.name;t.propTypes&&u(n,t.propTypes,e.props,c.prop),"function"==typeof t.getDefaultProps}}var l=e(50),c=e(71),p=(e(70),e(34)),d=(e(102),e(113)),f=e(142),h=(e(151),{}),v={},m={createElement:function(e,t,n){var r="string"==typeof e||"function"==typeof e,o=l.createElement.apply(this,arguments);if(null==o)return o;if(r)for(var a=2;a<arguments.length;a++)i(arguments[a],e);return s(o),o},createFactory:function(e){var t=m.createElement.bind(null,e);return t.type=e,t},cloneElement:function(e,t,n){for(var r=l.cloneElement.apply(this,arguments),o=2;o<arguments.length;o++)i(arguments[o],r.type);return s(r),r}};t.exports=m},{102:102,113:113,142:142,151:151,34:34,50:50,70:70,71:71}],52:[function(e,t,n){"use strict";var r,o=e(50),a=e(53),i=e(74),u=e(23),s={injectEmptyComponent:function(e){r=o.createElement(e)}},l=function(e){this._currentElement=null,this._rootNodeID=null,this._renderedComponent=e(r)};u(l.prototype,{construct:function(e){},mountComponent:function(e,t,n){return a.registerNullComponentID(e),this._rootNodeID=e,i.mountComponent(this._renderedComponent,e,t,n)},receiveComponent:function(){},unmountComponent:function(e,t,n){i.unmountComponent(this._renderedComponent),a.deregisterNullComponentID(this._rootNodeID),this._rootNodeID=null,this._renderedComponent=null}}),l.injection=s,t.exports=l},{23:23,50:50,53:53,74:74}],53:[function(e,t,n){"use strict";function r(e){return!!i[e]}function o(e){i[e]=!0}function a(e){delete i[e]}var i={},u={isNullComponentID:r,registerNullComponentID:o,deregisterNullComponentID:a};t.exports=u},{}],54:[function(e,t,n){"use strict";function r(e,t,n,r){try{return t(n,r)}catch(a){return void(null===o&&(o=a))}}var o=null,a={invokeGuardedCallback:r,invokeGuardedCallbackWithCatch:r,rethrowCaughtError:function(){if(o){var e=o;throw o=null,e}}};t.exports=a},{}],55:[function(e,t,n){"use strict";function r(e){o.enqueueEvents(e),o.processEventQueue(!1)}var o=e(16),a={handleTopLevel:function(e,t,n,a,i){var u=o.extractEvents(e,t,n,a,i);r(u)}};t.exports=a},{16:16}],56:[function(e,t,n){"use strict";function r(e){var t=d.getID(e),n=p.getReactRootIDFromNodeID(t),r=d.findReactContainerForID(n),o=d.getFirstReactDOM(r);return o}function o(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function a(e){i(e)}function i(e){for(var t=d.getFirstReactDOM(v(e.nativeEvent))||window,n=t;n;)e.ancestors.push(n),n=r(n);for(var o=0;o<e.ancestors.length;o++){t=e.ancestors[o];var a=d.getID(t)||"";g._handleTopLevel(e.topLevelType,t,a,e.nativeEvent,v(e.nativeEvent))}}function u(e){var t=m(window);e(t)}var s=e(127),l=e(128),c=e(24),p=e(59),d=e(63),f=e(81),h=e(23),v=e(112),m=e(139);h(o.prototype,{destructor:function(){this.topLevelType=null,this.nativeEvent=null,this.ancestors.length=0}}),c.addPoolingTo(o,c.twoArgumentPooler);var g={_enabled:!0,_handleTopLevel:null,WINDOW_HANDLE:l.canUseDOM?window:null,setHandleTopLevel:function(e){g._handleTopLevel=e},setEnabled:function(e){g._enabled=!!e},isEnabled:function(){return g._enabled},trapBubbledEvent:function(e,t,n){var r=n;return r?s.listen(r,t,g.dispatchEvent.bind(null,e)):null},trapCapturedEvent:function(e,t,n){var r=n;return r?s.capture(r,t,g.dispatchEvent.bind(null,e)):null},monitorScrollValue:function(e){var t=u.bind(null,e);s.listen(window,"scroll",t)},dispatchEvent:function(e,t){if(g._enabled){var n=o.getPooled(e,t);try{f.batchedUpdates(a,n)}finally{o.release(n)}}}};t.exports=g},{112:112,127:127,128:128,139:139,23:23,24:24,59:59,63:63,81:81}],57:[function(e,t,n){"use strict";var r=e(10),o=e(16),a=e(32),i=e(29),u=e(52),s=e(26),l=e(66),c=e(69),p=e(76),d=e(81),f={Component:a.injection,Class:i.injection,DOMProperty:r.injection,EmptyComponent:u.injection,EventPluginHub:o.injection,EventEmitter:s.injection,NativeComponent:l.injection,Perf:c.injection,RootIndex:p.injection,Updates:d.injection};t.exports=f},{10:10,16:16,26:26,29:29,32:32,52:52,66:66,69:69,76:76,81:81}],58:[function(e,t,n){"use strict";function r(e){return a(document.documentElement,e)}var o=e(44),a=e(131),i=e(136),u=e(137),s={hasSelectionCapabilities:function(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&"text"===e.type||"textarea"===t||"true"===e.contentEditable)},getSelectionInformation:function(){var e=u();return{focusedElem:e,selectionRange:s.hasSelectionCapabilities(e)?s.getSelection(e):null}},restoreSelection:function(e){var t=u(),n=e.focusedElem,o=e.selectionRange;t!==n&&r(n)&&(s.hasSelectionCapabilities(n)&&s.setSelection(n,o),i(n))},getSelection:function(e){var t;if("selectionStart"in e)t={start:e.selectionStart,end:e.selectionEnd};else if(document.selection&&e.nodeName&&"input"===e.nodeName.toLowerCase()){var n=document.selection.createRange();n.parentElement()===e&&(t={start:-n.moveStart("character",-e.value.length),end:-n.moveEnd("character",-e.value.length)})}else t=o.getOffsets(e);return t||{start:0,end:0}},setSelection:function(e,t){var n=t.start,r=t.end;if("undefined"==typeof r&&(r=n),"selectionStart"in e)e.selectionStart=n,e.selectionEnd=Math.min(r,e.value.length);else if(document.selection&&e.nodeName&&"input"===e.nodeName.toLowerCase()){var a=e.createTextRange();a.collapse(!0),a.moveStart("character",n),a.moveEnd("character",r-n),a.select()}else o.setOffsets(e,t)}};t.exports=s},{131:131,136:136,137:137,44:44}],59:[function(e,t,n){"use strict";function r(e){return f+e.toString(36)}function o(e,t){return e.charAt(t)===f||t===e.length}function a(e){return""===e||e.charAt(0)===f&&e.charAt(e.length-1)!==f}function i(e,t){return 0===t.indexOf(e)&&o(t,e.length)}function u(e){return e?e.substr(0,e.lastIndexOf(f)):""}function s(e,t){if(a(e)&&a(t)?void 0:d(!1),i(e,t)?void 0:d(!1),e===t)return e;var n,r=e.length+h;for(n=r;n<t.length&&!o(t,n);n++);return t.substr(0,n)}function l(e,t){var n=Math.min(e.length,t.length);if(0===n)return"";for(var r=0,i=0;n>=i;i++)if(o(e,i)&&o(t,i))r=i;else if(e.charAt(i)!==t.charAt(i))break;var u=e.substr(0,r);return a(u)?void 0:d(!1),u}function c(e,t,n,r,o,a){e=e||"",t=t||"",e===t?d(!1):void 0;var l=i(t,e);l||i(e,t)?void 0:d(!1);for(var c=0,p=l?u:s,f=e;;f=p(f,t)){var h;if(o&&f===e||a&&f===t||(h=n(f,l,r)),h===!1||f===t)break;c++<v?void 0:d(!1)}}var p=e(76),d=e(142),f=".",h=f.length,v=1e4,m={createReactRootID:function(){return r(p.createReactRootIndex())},createReactID:function(e,t){return e+t},getReactRootIDFromNodeID:function(e){if(e&&e.charAt(0)===f&&e.length>1){var t=e.indexOf(f,1);return t>-1?e.substr(0,t):e}return null},traverseEnterLeave:function(e,t,n,r,o){var a=l(e,t);a!==e&&c(e,a,n,r,!1,!0),a!==t&&c(a,t,n,o,!0,!1)},traverseTwoPhase:function(e,t,n){e&&(c("",e,t,n,!0,!1),c(e,"",t,n,!1,!0))},traverseTwoPhaseSkipTarget:function(e,t,n){e&&(c("",e,t,n,!0,!0),c(e,"",t,n,!0,!0))},traverseAncestors:function(e,t,n){c("",e,t,n,!0,!1)},getFirstCommonAncestorID:l,_getNextDescendantID:s,isAncestorIDOf:i,SEPARATOR:f};t.exports=m},{142:142,76:76}],60:[function(e,t,n){"use strict";var r={remove:function(e){e._reactInternalInstance=void 0},get:function(e){return e._reactInternalInstance},has:function(e){return void 0!==e._reactInternalInstance},set:function(e,t){e._reactInternalInstance=t}};t.exports=r},{}],61:[function(e,t,n){"use strict";var r=e(28),o=e(30),a=e(29),i=e(38),u=e(50),s=(e(51),e(72)),l=e(82),c=e(23),p=e(119),d=u.createElement,f=u.createFactory,h=u.cloneElement,v={Children:{map:r.map,forEach:r.forEach,count:r.count,toArray:r.toArray,only:p},Component:o,createElement:d,cloneElement:h,isValidElement:u.isValidElement,PropTypes:s,createClass:a.createClass,createFactory:f,createMixin:function(e){return e},DOM:i,version:l,__spread:c};t.exports=v},{119:119,23:23,28:28,29:29,30:30,38:38,50:50,51:51,72:72,82:82}],62:[function(e,t,n){"use strict";var r=e(101),o=/\/?>/,a={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return e.replace(o," "+a.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(a.CHECKSUM_ATTR_NAME);n=n&&parseInt(n,10);var o=r(e);return o===n}};t.exports=a},{101:101}],63:[function(e,t,n){"use strict";function r(e,t){for(var n=Math.min(e.length,t.length),r=0;n>r;r++)if(e.charAt(r)!==t.charAt(r))return r;return e.length===t.length?-1:n}function o(e){return e?e.nodeType===W?e.documentElement:e.firstChild:null}function a(e){var t=o(e);return t&&Q.getID(t)}function i(e){var t=u(e);if(t)if(V.hasOwnProperty(t)){var n=V[t];n!==e&&(p(n,t)?L(!1):void 0,V[t]=e)}else V[t]=e;return t}function u(e){return e&&e.getAttribute&&e.getAttribute(B)||""}function s(e,t){var n=u(e);n!==t&&delete V[n],e.setAttribute(B,t),V[t]=e}function l(e){return V.hasOwnProperty(e)&&p(V[e],e)||(V[e]=Q.findReactNodeByID(e)),V[e]}function c(e){var t=N.get(e)._rootNodeID;return D.isNullComponentID(t)?null:(V.hasOwnProperty(t)&&p(V[t],t)||(V[t]=Q.findReactNodeByID(t)),V[t])}function p(e,t){if(e){u(e)!==t?L(!1):void 0;var n=Q.findReactContainerForID(t);if(n&&O(n,e))return!0}return!1}function d(e){delete V[e]}function f(e){var t=V[e];return t&&p(t,e)?void(G=t):!1}function h(e){G=null,M.traverseAncestors(e,f);var t=G;return G=null,t}function v(e,t,n,r,o,a){E.useCreateElement&&(a=T({},a),n.nodeType===W?a[H]=n:a[H]=n.ownerDocument);var i=R.mountComponent(e,t,r,a);e._renderedComponent._topLevelWrapper=e,Q._mountImageIntoNode(i,n,o,r)}function m(e,t,n,r,o){var a=S.ReactReconcileTransaction.getPooled(r);a.perform(v,null,e,t,n,a,r,o),S.ReactReconcileTransaction.release(a)}function g(e,t){for(R.unmountComponent(e),t.nodeType===W&&(t=t.documentElement);t.lastChild;)t.removeChild(t.lastChild)}function y(e){var t=a(e);return t?t!==M.getReactRootIDFromNodeID(t):!1}function C(e){for(;e&&e.parentNode!==e;e=e.parentNode)if(1===e.nodeType){var t=u(e);if(t){var n,r=M.getReactRootIDFromNodeID(t),o=e;do if(n=u(o),o=o.parentNode,null==o)return null;while(n!==r);if(o===Y[r])return e}}return null}var b=e(10),_=e(26),E=(e(34),e(39)),x=e(50),D=e(53),M=e(59),N=e(60),P=e(62),w=e(69),R=e(74),I=e(80),S=e(81),T=e(23),k=e(135),O=e(131),A=e(116),L=e(142),U=e(122),F=e(124),B=(e(126),e(151),b.ID_ATTRIBUTE_NAME),V={},j=1,W=9,K=11,H="__ReactMount_ownerDocument$"+Math.random().toString(36).slice(2),q={},Y={},z=[],G=null,X=function(){};X.prototype.isReactComponent={},X.prototype.render=function(){return this.props};var Q={TopLevelWrapper:X,_instancesByReactRootID:q,scrollMonitor:function(e,t){t()},_updateRootComponent:function(e,t,n,r){return Q.scrollMonitor(n,function(){I.enqueueElementInternal(e,t),r&&I.enqueueCallbackInternal(e,r)}),e},_registerComponent:function(e,t){!t||t.nodeType!==j&&t.nodeType!==W&&t.nodeType!==K?L(!1):void 0,_.ensureScrollValueMonitoring();var n=Q.registerContainer(t);return q[n]=e,n},_renderNewRootComponent:function(e,t,n,r){var o=A(e,null),a=Q._registerComponent(o,t);return S.batchedUpdates(m,o,a,t,n,r),o},renderSubtreeIntoContainer:function(e,t,n,r){return null==e||null==e._reactInternalInstance?L(!1):void 0,Q._renderSubtreeIntoContainer(e,t,n,r)},_renderSubtreeIntoContainer:function(e,t,n,r){x.isValidElement(t)?void 0:L(!1);var i=new x(X,null,null,null,null,null,t),s=q[a(n)];if(s){var l=s._currentElement,c=l.props;if(F(c,t)){var p=s._renderedComponent.getPublicInstance(),d=r&&function(){r.call(p)};return Q._updateRootComponent(s,i,n,d),p}Q.unmountComponentAtNode(n)}var f=o(n),h=f&&!!u(f),v=y(n),m=h&&!s&&!v,g=Q._renderNewRootComponent(i,n,m,null!=e?e._reactInternalInstance._processChildContext(e._reactInternalInstance._context):k)._renderedComponent.getPublicInstance();return r&&r.call(g),g},render:function(e,t,n){return Q._renderSubtreeIntoContainer(null,e,t,n)},registerContainer:function(e){var t=a(e);return t&&(t=M.getReactRootIDFromNodeID(t)),t||(t=M.createReactRootID()),Y[t]=e,t},unmountComponentAtNode:function(e){!e||e.nodeType!==j&&e.nodeType!==W&&e.nodeType!==K?L(!1):void 0;var t=a(e),n=q[t];if(!n){var r=(y(e),u(e));return r&&r===M.getReactRootIDFromNodeID(r),!1}return S.batchedUpdates(g,n,e),delete q[t],delete Y[t],!0},findReactContainerForID:function(e){var t=M.getReactRootIDFromNodeID(e),n=Y[t];return n},findReactNodeByID:function(e){var t=Q.findReactContainerForID(e);return Q.findComponentRoot(t,e)},getFirstReactDOM:function(e){return C(e)},findComponentRoot:function(e,t){var n=z,r=0,o=h(t)||e;for(n[0]=o.firstChild,n.length=1;r<n.length;){for(var a,i=n[r++];i;){var u=Q.getID(i);u?t===u?a=i:M.isAncestorIDOf(u,t)&&(n.length=r=0,n.push(i.firstChild)):n.push(i.firstChild),i=i.nextSibling}if(a)return n.length=0,a}n.length=0,L(!1)},_mountImageIntoNode:function(e,t,n,a){if(!t||t.nodeType!==j&&t.nodeType!==W&&t.nodeType!==K?L(!1):void 0,n){var i=o(t);if(P.canReuseMarkup(e,i))return;var u=i.getAttribute(P.CHECKSUM_ATTR_NAME);i.removeAttribute(P.CHECKSUM_ATTR_NAME);var s=i.outerHTML;i.setAttribute(P.CHECKSUM_ATTR_NAME,u);var l=e,c=r(l,s);" (client) "+l.substring(c-20,c+20)+"\n (server) "+s.substring(c-20,c+20),t.nodeType===W?L(!1):void 0}if(t.nodeType===W?L(!1):void 0,a.useCreateElement){for(;t.lastChild;)t.removeChild(t.lastChild);t.appendChild(e)}else U(t,e)},ownerDocumentContextKey:H,getReactRootID:a,getID:i,setID:s,getNode:l,getNodeFromInstance:c,isValid:p,purgeID:d};w.measureMethods(Q,"ReactMount",{_renderNewRootComponent:"_renderNewRootComponent",_mountImageIntoNode:"_mountImageIntoNode"}),t.exports=Q},{10:10,116:116,122:122,124:124,126:126,131:131,135:135,142:142,151:151,23:23,26:26,34:34,39:39,50:50,53:53,59:59,60:60,62:62,69:69,74:74,80:80,81:81}],64:[function(e,t,n){"use strict";function r(e,t,n){m.push({parentID:e,parentNode:null,type:p.INSERT_MARKUP,markupIndex:g.push(t)-1,content:null,fromIndex:null,toIndex:n})}function o(e,t,n){m.push({parentID:e,parentNode:null,type:p.MOVE_EXISTING,markupIndex:null,content:null,fromIndex:t,toIndex:n})}function a(e,t){m.push({parentID:e,parentNode:null,type:p.REMOVE_NODE,markupIndex:null,content:null,fromIndex:t,toIndex:null})}function i(e,t){m.push({parentID:e,parentNode:null,type:p.SET_MARKUP,markupIndex:null,content:t,fromIndex:null,toIndex:null})}function u(e,t){m.push({parentID:e,parentNode:null,type:p.TEXT_CONTENT,markupIndex:null,content:t,fromIndex:null,toIndex:null})}function s(){m.length&&(c.processChildrenUpdates(m,g),l())}function l(){m.length=0,g.length=0}var c=e(32),p=e(65),d=(e(34),e(74)),f=e(27),h=e(107),v=0,m=[],g=[],y={Mixin:{_reconcilerInstantiateChildren:function(e,t,n){return f.instantiateChildren(e,t,n)},_reconcilerUpdateChildren:function(e,t,n,r){var o;return o=h(t),f.updateChildren(e,o,n,r)},mountChildren:function(e,t,n){var r=this._reconcilerInstantiateChildren(e,t,n);this._renderedChildren=r;var o=[],a=0;for(var i in r)if(r.hasOwnProperty(i)){var u=r[i],s=this._rootNodeID+i,l=d.mountComponent(u,s,t,n);u._mountIndex=a++,o.push(l)}return o},updateTextContent:function(e){v++;var t=!0;try{var n=this._renderedChildren;f.unmountChildren(n);for(var r in n)n.hasOwnProperty(r)&&this._unmountChild(n[r]);this.setTextContent(e),t=!1}finally{v--,v||(t?l():s())}},updateMarkup:function(e){v++;var t=!0;try{var n=this._renderedChildren;f.unmountChildren(n);for(var r in n)n.hasOwnProperty(r)&&this._unmountChildByName(n[r],r);this.setMarkup(e),t=!1}finally{v--,v||(t?l():s())}},updateChildren:function(e,t,n){v++;var r=!0;try{this._updateChildren(e,t,n),r=!1}finally{v--,v||(r?l():s())}},_updateChildren:function(e,t,n){var r=this._renderedChildren,o=this._reconcilerUpdateChildren(r,e,t,n);if(this._renderedChildren=o,o||r){var a,i=0,u=0;for(a in o)if(o.hasOwnProperty(a)){var s=r&&r[a],l=o[a];s===l?(this.moveChild(s,u,i),i=Math.max(s._mountIndex,i),s._mountIndex=u):(s&&(i=Math.max(s._mountIndex,i),this._unmountChild(s)),this._mountChildByNameAtIndex(l,a,u,t,n)),u++}for(a in r)!r.hasOwnProperty(a)||o&&o.hasOwnProperty(a)||this._unmountChild(r[a])}},unmountChildren:function(){var e=this._renderedChildren;f.unmountChildren(e),this._renderedChildren=null},moveChild:function(e,t,n){e._mountIndex<n&&o(this._rootNodeID,e._mountIndex,t)},createChild:function(e,t){r(this._rootNodeID,t,e._mountIndex)},removeChild:function(e){a(this._rootNodeID,e._mountIndex)},setTextContent:function(e){u(this._rootNodeID,e)},setMarkup:function(e){i(this._rootNodeID,e)},_mountChildByNameAtIndex:function(e,t,n,r,o){var a=this._rootNodeID+t,i=d.mountComponent(e,a,r,o);e._mountIndex=n,this.createChild(e,i)},_unmountChild:function(e){this.removeChild(e),e._mountIndex=null}}};t.exports=y},{107:107,27:27,32:32,34:34,65:65,74:74}],65:[function(e,t,n){"use strict";var r=e(145),o=r({INSERT_MARKUP:null,MOVE_EXISTING:null,REMOVE_NODE:null,SET_MARKUP:null,TEXT_CONTENT:null});t.exports=o},{145:145}],66:[function(e,t,n){"use strict";function r(e){if("function"==typeof e.type)return e.type;var t=e.type,n=p[t];return null==n&&(p[t]=n=l(t)),n}function o(e){return c?void 0:s(!1),new c(e.type,e.props)}function a(e){return new d(e)}function i(e){return e instanceof d}var u=e(23),s=e(142),l=null,c=null,p={},d=null,f={injectGenericComponentClass:function(e){c=e},injectTextComponentClass:function(e){d=e},injectComponentClasses:function(e){u(p,e)}},h={getComponentClassForElement:r,createInternalComponent:o,createInstanceForText:a,isTextComponent:i,injection:f};t.exports=h},{142:142,23:23}],67:[function(e,t,n){"use strict";function r(e,t){}var o=(e(151),{isMounted:function(e){return!1},enqueueCallback:function(e,t){},enqueueForceUpdate:function(e){r(e,"forceUpdate")},enqueueReplaceState:function(e,t){r(e,"replaceState")},enqueueSetState:function(e,t){r(e,"setState")},enqueueSetProps:function(e,t){r(e,"setProps")},enqueueReplaceProps:function(e,t){r(e,"replaceProps")}});t.exports=o},{151:151}],68:[function(e,t,n){"use strict";var r=e(142),o={isValidOwner:function(e){return!(!e||"function"!=typeof e.attachRef||"function"!=typeof e.detachRef)},addComponentAsRefTo:function(e,t,n){o.isValidOwner(n)?void 0:r(!1),n.attachRef(t,e)},removeComponentAsRefFrom:function(e,t,n){o.isValidOwner(n)?void 0:r(!1),n.getPublicInstance().refs[t]===e.getPublicInstance()&&n.detachRef(t)}};t.exports=o},{142:142}],69:[function(e,t,n){"use strict";function r(e,t,n){return n}var o={enableMeasure:!1,storedMeasure:r,measureMethods:function(e,t,n){},measure:function(e,t,n){return n},injection:{injectMeasure:function(e){o.storedMeasure=e}}};t.exports=o},{}],70:[function(e,t,n){"use strict";var r={};t.exports=r},{}],71:[function(e,t,n){"use strict";var r=e(145),o=r({prop:null,context:null,childContext:null});t.exports=o},{145:145}],72:[function(e,t,n){"use strict";function r(e){function t(t,n,r,o,a,i){if(o=o||E,i=i||r,null==n[r]){var u=C[a];return t?new Error("Required "+u+" `"+i+"` was not specified in "+("`"+o+"`.")):null}return e(n,r,o,a,i)}var n=t.bind(null,!1);return n.isRequired=t.bind(null,!0),n}function o(e){function t(t,n,r,o,a){var i=t[n],u=v(i);if(u!==e){var s=C[o],l=m(i);return new Error("Invalid "+s+" `"+a+"` of type "+("`"+l+"` supplied to `"+r+"`, expected ")+("`"+e+"`."))}return null}return r(t)}function a(){return r(b.thatReturns(null))}function i(e){function t(t,n,r,o,a){var i=t[n];if(!Array.isArray(i)){var u=C[o],s=v(i);return new Error("Invalid "+u+" `"+a+"` of type "+("`"+s+"` supplied to `"+r+"`, expected an array."))}for(var l=0;l<i.length;l++){var c=e(i,l,r,o,a+"["+l+"]");if(c instanceof Error)return c}return null}return r(t)}function u(){function e(e,t,n,r,o){if(!y.isValidElement(e[t])){var a=C[r];return new Error("Invalid "+a+" `"+o+"` supplied to "+("`"+n+"`, expected a single ReactElement."))}return null}return r(e)}function s(e){function t(t,n,r,o,a){if(!(t[n]instanceof e)){var i=C[o],u=e.name||E,s=g(t[n]);return new Error("Invalid "+i+" `"+a+"` of type "+("`"+s+"` supplied to `"+r+"`, expected ")+("instance of `"+u+"`."))}return null}return r(t)}function l(e){function t(t,n,r,o,a){for(var i=t[n],u=0;u<e.length;u++)if(i===e[u])return null;var s=C[o],l=JSON.stringify(e);return new Error("Invalid "+s+" `"+a+"` of value `"+i+"` "+("supplied to `"+r+"`, expected one of "+l+"."))}return r(Array.isArray(e)?t:function(){return new Error("Invalid argument supplied to oneOf, expected an instance of array.")})}function c(e){function t(t,n,r,o,a){var i=t[n],u=v(i);if("object"!==u){var s=C[o];return new Error("Invalid "+s+" `"+a+"` of type "+("`"+u+"` supplied to `"+r+"`, expected an object."))}for(var l in i)if(i.hasOwnProperty(l)){var c=e(i,l,r,o,a+"."+l);if(c instanceof Error)return c}return null}return r(t)}function p(e){function t(t,n,r,o,a){for(var i=0;i<e.length;i++){var u=e[i];if(null==u(t,n,r,o,a))return null}var s=C[o];return new Error("Invalid "+s+" `"+a+"` supplied to "+("`"+r+"`."))}return r(Array.isArray(e)?t:function(){return new Error("Invalid argument supplied to oneOfType, expected an instance of array.")})}function d(){function e(e,t,n,r,o){if(!h(e[t])){var a=C[r];return new Error("Invalid "+a+" `"+o+"` supplied to "+("`"+n+"`, expected a ReactNode."))}return null}return r(e)}function f(e){function t(t,n,r,o,a){var i=t[n],u=v(i);if("object"!==u){var s=C[o];return new Error("Invalid "+s+" `"+a+"` of type `"+u+"` "+("supplied to `"+r+"`, expected `object`."))}for(var l in e){var c=e[l];if(c){var p=c(i,l,r,o,a+"."+l);if(p)return p}}return null}return r(t)}function h(e){switch(typeof e){case"number":case"string":case"undefined":return!0;case"boolean":return!e;case"object":if(Array.isArray(e))return e.every(h);if(null===e||y.isValidElement(e))return!0;var t=_(e);if(!t)return!1;var n,r=t.call(e);if(t!==e.entries){for(;!(n=r.next()).done;)if(!h(n.value))return!1}else for(;!(n=r.next()).done;){var o=n.value;if(o&&!h(o[1]))return!1}return!0;default:return!1}}function v(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":t}function m(e){var t=v(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}function g(e){return e.constructor&&e.constructor.name?e.constructor.name:"<<anonymous>>"}var y=e(50),C=e(70),b=e(134),_=e(113),E="<<anonymous>>",x={array:o("array"),bool:o("boolean"),func:o("function"),number:o("number"),object:o("object"),string:o("string"),any:a(),arrayOf:i,element:u(),instanceOf:s,node:d(),objectOf:c,oneOf:l,oneOfType:p,shape:f};t.exports=x},{113:113,134:134,50:50,70:70}],73:[function(e,t,n){"use strict";function r(e){this.reinitializeTransaction(),this.renderToStaticMarkup=!1,this.reactMountReady=o.getPooled(null),this.useCreateElement=!e&&u.useCreateElement}var o=e(6),a=e(24),i=e(26),u=e(39),s=e(58),l=e(98),c=e(23),p={initialize:s.getSelectionInformation,close:s.restoreSelection},d={initialize:function(){var e=i.isEnabled();return i.setEnabled(!1),e},close:function(e){i.setEnabled(e)}},f={initialize:function(){this.reactMountReady.reset()},close:function(){this.reactMountReady.notifyAll()}},h=[p,d,f],v={getTransactionWrappers:function(){return h},getReactMountReady:function(){return this.reactMountReady},destructor:function(){o.release(this.reactMountReady),this.reactMountReady=null}};c(r.prototype,l.Mixin,v),a.addPoolingTo(r),t.exports=r},{23:23,24:24,26:26,39:39,58:58,6:6,98:98}],74:[function(e,t,n){"use strict";function r(){o.attachRefs(this,this._currentElement)}var o=e(75),a={mountComponent:function(e,t,n,o){var a=e.mountComponent(t,n,o);return e._currentElement&&null!=e._currentElement.ref&&n.getReactMountReady().enqueue(r,e),a},unmountComponent:function(e){o.detachRefs(e,e._currentElement),e.unmountComponent()},receiveComponent:function(e,t,n,a){var i=e._currentElement;if(t!==i||a!==e._context){var u=o.shouldUpdateRefs(i,t);u&&o.detachRefs(e,i),e.receiveComponent(t,n,a),u&&e._currentElement&&null!=e._currentElement.ref&&n.getReactMountReady().enqueue(r,e); +}},performUpdateIfNecessary:function(e,t){e.performUpdateIfNecessary(t)}};t.exports=a},{75:75}],75:[function(e,t,n){"use strict";function r(e,t,n){"function"==typeof e?e(t.getPublicInstance()):a.addComponentAsRefTo(t,e,n)}function o(e,t,n){"function"==typeof e?e(null):a.removeComponentAsRefFrom(t,e,n)}var a=e(68),i={};i.attachRefs=function(e,t){if(null!==t&&t!==!1){var n=t.ref;null!=n&&r(n,e,t._owner)}},i.shouldUpdateRefs=function(e,t){var n=null===e||e===!1,r=null===t||t===!1;return n||r||t._owner!==e._owner||t.ref!==e.ref},i.detachRefs=function(e,t){if(null!==t&&t!==!1){var n=t.ref;null!=n&&o(n,e,t._owner)}},t.exports=i},{68:68}],76:[function(e,t,n){"use strict";var r={injectCreateReactRootIndex:function(e){o.createReactRootIndex=e}},o={createReactRootIndex:null,injection:r};t.exports=o},{}],77:[function(e,t,n){"use strict";var r={isBatchingUpdates:!1,batchedUpdates:function(e){}};t.exports=r},{}],78:[function(e,t,n){"use strict";function r(e){i.isValidElement(e)?void 0:h(!1);var t;try{p.injection.injectBatchingStrategy(l);var n=u.createReactRootID();return t=c.getPooled(!1),t.perform(function(){var r=f(e,null),o=r.mountComponent(n,t,d);return s.addChecksumToMarkup(o)},null)}finally{c.release(t),p.injection.injectBatchingStrategy(a)}}function o(e){i.isValidElement(e)?void 0:h(!1);var t;try{p.injection.injectBatchingStrategy(l);var n=u.createReactRootID();return t=c.getPooled(!0),t.perform(function(){var r=f(e,null);return r.mountComponent(n,t,d)},null)}finally{c.release(t),p.injection.injectBatchingStrategy(a)}}var a=e(48),i=e(50),u=e(59),s=e(62),l=e(77),c=e(79),p=e(81),d=e(135),f=e(116),h=e(142);t.exports={renderToString:r,renderToStaticMarkup:o}},{116:116,135:135,142:142,48:48,50:50,59:59,62:62,77:77,79:79,81:81}],79:[function(e,t,n){"use strict";function r(e){this.reinitializeTransaction(),this.renderToStaticMarkup=e,this.reactMountReady=a.getPooled(null),this.useCreateElement=!1}var o=e(24),a=e(6),i=e(98),u=e(23),s=e(134),l={initialize:function(){this.reactMountReady.reset()},close:s},c=[l],p={getTransactionWrappers:function(){return c},getReactMountReady:function(){return this.reactMountReady},destructor:function(){a.release(this.reactMountReady),this.reactMountReady=null}};u(r.prototype,i.Mixin,p),o.addPoolingTo(r),t.exports=r},{134:134,23:23,24:24,6:6,98:98}],80:[function(e,t,n){"use strict";function r(e){u.enqueueUpdate(e)}function o(e,t){var n=i.get(e);return n?n:null}var a=(e(34),e(50)),i=e(60),u=e(81),s=e(23),l=e(142),c=(e(151),{isMounted:function(e){var t=i.get(e);return t?!!t._renderedComponent:!1},enqueueCallback:function(e,t){"function"!=typeof t?l(!1):void 0;var n=o(e);return n?(n._pendingCallbacks?n._pendingCallbacks.push(t):n._pendingCallbacks=[t],void r(n)):null},enqueueCallbackInternal:function(e,t){"function"!=typeof t?l(!1):void 0,e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t],r(e)},enqueueForceUpdate:function(e){var t=o(e,"forceUpdate");t&&(t._pendingForceUpdate=!0,r(t))},enqueueReplaceState:function(e,t){var n=o(e,"replaceState");n&&(n._pendingStateQueue=[t],n._pendingReplaceState=!0,r(n))},enqueueSetState:function(e,t){var n=o(e,"setState");if(n){var a=n._pendingStateQueue||(n._pendingStateQueue=[]);a.push(t),r(n)}},enqueueSetProps:function(e,t){var n=o(e,"setProps");n&&c.enqueueSetPropsInternal(n,t)},enqueueSetPropsInternal:function(e,t){var n=e._topLevelWrapper;n?void 0:l(!1);var o=n._pendingElement||n._currentElement,i=o.props,u=s({},i.props,t);n._pendingElement=a.cloneAndReplaceProps(o,a.cloneAndReplaceProps(i,u)),r(n)},enqueueReplaceProps:function(e,t){var n=o(e,"replaceProps");n&&c.enqueueReplacePropsInternal(n,t)},enqueueReplacePropsInternal:function(e,t){var n=e._topLevelWrapper;n?void 0:l(!1);var o=n._pendingElement||n._currentElement,i=o.props;n._pendingElement=a.cloneAndReplaceProps(o,a.cloneAndReplaceProps(i,t)),r(n)},enqueueElementInternal:function(e,t){e._pendingElement=t,r(e)}});t.exports=c},{142:142,151:151,23:23,34:34,50:50,60:60,81:81}],81:[function(e,t,n){"use strict";function r(){N.ReactReconcileTransaction&&b?void 0:m(!1)}function o(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=c.getPooled(),this.reconcileTransaction=N.ReactReconcileTransaction.getPooled(!1)}function a(e,t,n,o,a,i){r(),b.batchedUpdates(e,t,n,o,a,i)}function i(e,t){return e._mountOrder-t._mountOrder}function u(e){var t=e.dirtyComponentsLength;t!==g.length?m(!1):void 0,g.sort(i);for(var n=0;t>n;n++){var r=g[n],o=r._pendingCallbacks;if(r._pendingCallbacks=null,f.performUpdateIfNecessary(r,e.reconcileTransaction),o)for(var a=0;a<o.length;a++)e.callbackQueue.enqueue(o[a],r.getPublicInstance())}}function s(e){return r(),b.isBatchingUpdates?void g.push(e):void b.batchedUpdates(s,e)}function l(e,t){b.isBatchingUpdates?void 0:m(!1),y.enqueue(e,t),C=!0}var c=e(6),p=e(24),d=e(69),f=e(74),h=e(98),v=e(23),m=e(142),g=[],y=c.getPooled(),C=!1,b=null,_={initialize:function(){this.dirtyComponentsLength=g.length},close:function(){this.dirtyComponentsLength!==g.length?(g.splice(0,this.dirtyComponentsLength),D()):g.length=0}},E={initialize:function(){this.callbackQueue.reset()},close:function(){this.callbackQueue.notifyAll()}},x=[_,E];v(o.prototype,h.Mixin,{getTransactionWrappers:function(){return x},destructor:function(){this.dirtyComponentsLength=null,c.release(this.callbackQueue),this.callbackQueue=null,N.ReactReconcileTransaction.release(this.reconcileTransaction),this.reconcileTransaction=null},perform:function(e,t,n){return h.Mixin.perform.call(this,this.reconcileTransaction.perform,this.reconcileTransaction,e,t,n)}}),p.addPoolingTo(o);var D=function(){for(;g.length||C;){if(g.length){var e=o.getPooled();e.perform(u,null,e),o.release(e)}if(C){C=!1;var t=y;y=c.getPooled(),t.notifyAll(),c.release(t)}}};D=d.measure("ReactUpdates","flushBatchedUpdates",D);var M={injectReconcileTransaction:function(e){e?void 0:m(!1),N.ReactReconcileTransaction=e},injectBatchingStrategy:function(e){e?void 0:m(!1),"function"!=typeof e.batchedUpdates?m(!1):void 0,"boolean"!=typeof e.isBatchingUpdates?m(!1):void 0,b=e}},N={ReactReconcileTransaction:null,batchedUpdates:a,enqueueUpdate:s,flushBatchedUpdates:D,injection:M,asap:l};t.exports=N},{142:142,23:23,24:24,6:6,69:69,74:74,98:98}],82:[function(e,t,n){"use strict";t.exports="0.14.3"},{}],83:[function(e,t,n){"use strict";var r=e(10),o=r.injection.MUST_USE_ATTRIBUTE,a={xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace"},i={Properties:{clipPath:o,cx:o,cy:o,d:o,dx:o,dy:o,fill:o,fillOpacity:o,fontFamily:o,fontSize:o,fx:o,fy:o,gradientTransform:o,gradientUnits:o,markerEnd:o,markerMid:o,markerStart:o,offset:o,opacity:o,patternContentUnits:o,patternUnits:o,points:o,preserveAspectRatio:o,r:o,rx:o,ry:o,spreadMethod:o,stopColor:o,stopOpacity:o,stroke:o,strokeDasharray:o,strokeLinecap:o,strokeOpacity:o,strokeWidth:o,textAnchor:o,transform:o,version:o,viewBox:o,x1:o,x2:o,x:o,xlinkActuate:o,xlinkArcrole:o,xlinkHref:o,xlinkRole:o,xlinkShow:o,xlinkTitle:o,xlinkType:o,xmlBase:o,xmlLang:o,xmlSpace:o,y1:o,y2:o,y:o},DOMAttributeNamespaces:{xlinkActuate:a.xlink,xlinkArcrole:a.xlink,xlinkHref:a.xlink,xlinkRole:a.xlink,xlinkShow:a.xlink,xlinkTitle:a.xlink,xlinkType:a.xlink,xmlBase:a.xml,xmlLang:a.xml,xmlSpace:a.xml},DOMAttributeNames:{clipPath:"clip-path",fillOpacity:"fill-opacity",fontFamily:"font-family",fontSize:"font-size",gradientTransform:"gradientTransform",gradientUnits:"gradientUnits",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",patternContentUnits:"patternContentUnits",patternUnits:"patternUnits",preserveAspectRatio:"preserveAspectRatio",spreadMethod:"spreadMethod",stopColor:"stop-color",stopOpacity:"stop-opacity",strokeDasharray:"stroke-dasharray",strokeLinecap:"stroke-linecap",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",textAnchor:"text-anchor",viewBox:"viewBox",xlinkActuate:"xlink:actuate",xlinkArcrole:"xlink:arcrole",xlinkHref:"xlink:href",xlinkRole:"xlink:role",xlinkShow:"xlink:show",xlinkTitle:"xlink:title",xlinkType:"xlink:type",xmlBase:"xml:base",xmlLang:"xml:lang",xmlSpace:"xml:space"}};t.exports=i},{10:10}],84:[function(e,t,n){"use strict";function r(e){if("selectionStart"in e&&s.hasSelectionCapabilities(e))return{start:e.selectionStart,end:e.selectionEnd};if(window.getSelection){var t=window.getSelection();return{anchorNode:t.anchorNode,anchorOffset:t.anchorOffset,focusNode:t.focusNode,focusOffset:t.focusOffset}}if(document.selection){var n=document.selection.createRange();return{parentElement:n.parentElement(),text:n.text,top:n.boundingTop,left:n.boundingLeft}}}function o(e,t){if(b||null==g||g!==c())return null;var n=r(g);if(!C||!f(C,n)){C=n;var o=l.getPooled(m.select,y,e,t);return o.type="select",o.target=g,i.accumulateTwoPhaseDispatches(o),o}return null}var a=e(15),i=e(19),u=e(128),s=e(58),l=e(90),c=e(137),p=e(118),d=e(146),f=e(149),h=a.topLevelTypes,v=u.canUseDOM&&"documentMode"in document&&document.documentMode<=11,m={select:{phasedRegistrationNames:{bubbled:d({onSelect:null}),captured:d({onSelectCapture:null})},dependencies:[h.topBlur,h.topContextMenu,h.topFocus,h.topKeyDown,h.topMouseDown,h.topMouseUp,h.topSelectionChange]}},g=null,y=null,C=null,b=!1,_=!1,E=d({onSelect:null}),x={eventTypes:m,extractEvents:function(e,t,n,r,a){if(!_)return null;switch(e){case h.topFocus:(p(t)||"true"===t.contentEditable)&&(g=t,y=n,C=null);break;case h.topBlur:g=null,y=null,C=null;break;case h.topMouseDown:b=!0;break;case h.topContextMenu:case h.topMouseUp:return b=!1,o(r,a);case h.topSelectionChange:if(v)break;case h.topKeyDown:case h.topKeyUp:return o(r,a)}return null},didPutListener:function(e,t,n){t===E&&(_=!0)}};t.exports=x},{118:118,128:128,137:137,146:146,149:149,15:15,19:19,58:58,90:90}],85:[function(e,t,n){"use strict";var r=Math.pow(2,53),o={createReactRootIndex:function(){return Math.ceil(Math.random()*r)}};t.exports=o},{}],86:[function(e,t,n){"use strict";var r=e(15),o=e(127),a=e(19),i=e(63),u=e(87),s=e(90),l=e(91),c=e(93),p=e(94),d=e(89),f=e(95),h=e(96),v=e(97),m=e(134),g=e(109),y=e(142),C=e(146),b=r.topLevelTypes,_={abort:{phasedRegistrationNames:{bubbled:C({onAbort:!0}),captured:C({onAbortCapture:!0})}},blur:{phasedRegistrationNames:{bubbled:C({onBlur:!0}),captured:C({onBlurCapture:!0})}},canPlay:{phasedRegistrationNames:{bubbled:C({onCanPlay:!0}),captured:C({onCanPlayCapture:!0})}},canPlayThrough:{phasedRegistrationNames:{bubbled:C({onCanPlayThrough:!0}),captured:C({onCanPlayThroughCapture:!0})}},click:{phasedRegistrationNames:{bubbled:C({onClick:!0}),captured:C({onClickCapture:!0})}},contextMenu:{phasedRegistrationNames:{bubbled:C({onContextMenu:!0}),captured:C({onContextMenuCapture:!0})}},copy:{phasedRegistrationNames:{bubbled:C({onCopy:!0}),captured:C({onCopyCapture:!0})}},cut:{phasedRegistrationNames:{bubbled:C({onCut:!0}),captured:C({onCutCapture:!0})}},doubleClick:{phasedRegistrationNames:{bubbled:C({onDoubleClick:!0}),captured:C({onDoubleClickCapture:!0})}},drag:{phasedRegistrationNames:{bubbled:C({onDrag:!0}),captured:C({onDragCapture:!0})}},dragEnd:{phasedRegistrationNames:{bubbled:C({onDragEnd:!0}),captured:C({onDragEndCapture:!0})}},dragEnter:{phasedRegistrationNames:{bubbled:C({onDragEnter:!0}),captured:C({onDragEnterCapture:!0})}},dragExit:{phasedRegistrationNames:{bubbled:C({onDragExit:!0}),captured:C({onDragExitCapture:!0})}},dragLeave:{phasedRegistrationNames:{bubbled:C({onDragLeave:!0}),captured:C({onDragLeaveCapture:!0})}},dragOver:{phasedRegistrationNames:{bubbled:C({onDragOver:!0}),captured:C({onDragOverCapture:!0})}},dragStart:{phasedRegistrationNames:{bubbled:C({onDragStart:!0}),captured:C({onDragStartCapture:!0})}},drop:{phasedRegistrationNames:{bubbled:C({onDrop:!0}),captured:C({onDropCapture:!0})}},durationChange:{phasedRegistrationNames:{bubbled:C({onDurationChange:!0}),captured:C({onDurationChangeCapture:!0})}},emptied:{phasedRegistrationNames:{bubbled:C({onEmptied:!0}),captured:C({onEmptiedCapture:!0})}},encrypted:{phasedRegistrationNames:{bubbled:C({onEncrypted:!0}),captured:C({onEncryptedCapture:!0})}},ended:{phasedRegistrationNames:{bubbled:C({onEnded:!0}),captured:C({onEndedCapture:!0})}},error:{phasedRegistrationNames:{bubbled:C({onError:!0}),captured:C({onErrorCapture:!0})}},focus:{phasedRegistrationNames:{bubbled:C({onFocus:!0}),captured:C({onFocusCapture:!0})}},input:{phasedRegistrationNames:{bubbled:C({onInput:!0}),captured:C({onInputCapture:!0})}},keyDown:{phasedRegistrationNames:{bubbled:C({onKeyDown:!0}),captured:C({onKeyDownCapture:!0})}},keyPress:{phasedRegistrationNames:{bubbled:C({onKeyPress:!0}),captured:C({onKeyPressCapture:!0})}},keyUp:{phasedRegistrationNames:{bubbled:C({onKeyUp:!0}),captured:C({onKeyUpCapture:!0})}},load:{phasedRegistrationNames:{bubbled:C({onLoad:!0}),captured:C({onLoadCapture:!0})}},loadedData:{phasedRegistrationNames:{bubbled:C({onLoadedData:!0}),captured:C({onLoadedDataCapture:!0})}},loadedMetadata:{phasedRegistrationNames:{bubbled:C({onLoadedMetadata:!0}),captured:C({onLoadedMetadataCapture:!0})}},loadStart:{phasedRegistrationNames:{bubbled:C({onLoadStart:!0}),captured:C({onLoadStartCapture:!0})}},mouseDown:{phasedRegistrationNames:{bubbled:C({onMouseDown:!0}),captured:C({onMouseDownCapture:!0})}},mouseMove:{phasedRegistrationNames:{bubbled:C({onMouseMove:!0}),captured:C({onMouseMoveCapture:!0})}},mouseOut:{phasedRegistrationNames:{bubbled:C({onMouseOut:!0}),captured:C({onMouseOutCapture:!0})}},mouseOver:{phasedRegistrationNames:{bubbled:C({onMouseOver:!0}),captured:C({onMouseOverCapture:!0})}},mouseUp:{phasedRegistrationNames:{bubbled:C({onMouseUp:!0}),captured:C({onMouseUpCapture:!0})}},paste:{phasedRegistrationNames:{bubbled:C({onPaste:!0}),captured:C({onPasteCapture:!0})}},pause:{phasedRegistrationNames:{bubbled:C({onPause:!0}),captured:C({onPauseCapture:!0})}},play:{phasedRegistrationNames:{bubbled:C({onPlay:!0}),captured:C({onPlayCapture:!0})}},playing:{phasedRegistrationNames:{bubbled:C({onPlaying:!0}),captured:C({onPlayingCapture:!0})}},progress:{phasedRegistrationNames:{bubbled:C({onProgress:!0}),captured:C({onProgressCapture:!0})}},rateChange:{phasedRegistrationNames:{bubbled:C({onRateChange:!0}),captured:C({onRateChangeCapture:!0})}},reset:{phasedRegistrationNames:{bubbled:C({onReset:!0}),captured:C({onResetCapture:!0})}},scroll:{phasedRegistrationNames:{bubbled:C({onScroll:!0}),captured:C({onScrollCapture:!0})}},seeked:{phasedRegistrationNames:{bubbled:C({onSeeked:!0}),captured:C({onSeekedCapture:!0})}},seeking:{phasedRegistrationNames:{bubbled:C({onSeeking:!0}),captured:C({onSeekingCapture:!0})}},stalled:{phasedRegistrationNames:{bubbled:C({onStalled:!0}),captured:C({onStalledCapture:!0})}},submit:{phasedRegistrationNames:{bubbled:C({onSubmit:!0}),captured:C({onSubmitCapture:!0})}},suspend:{phasedRegistrationNames:{bubbled:C({onSuspend:!0}),captured:C({onSuspendCapture:!0})}},timeUpdate:{phasedRegistrationNames:{bubbled:C({onTimeUpdate:!0}),captured:C({onTimeUpdateCapture:!0})}},touchCancel:{phasedRegistrationNames:{bubbled:C({onTouchCancel:!0}),captured:C({onTouchCancelCapture:!0})}},touchEnd:{phasedRegistrationNames:{bubbled:C({onTouchEnd:!0}),captured:C({onTouchEndCapture:!0})}},touchMove:{phasedRegistrationNames:{bubbled:C({onTouchMove:!0}),captured:C({onTouchMoveCapture:!0})}},touchStart:{phasedRegistrationNames:{bubbled:C({onTouchStart:!0}),captured:C({onTouchStartCapture:!0})}},volumeChange:{phasedRegistrationNames:{bubbled:C({onVolumeChange:!0}),captured:C({onVolumeChangeCapture:!0})}},waiting:{phasedRegistrationNames:{bubbled:C({onWaiting:!0}),captured:C({onWaitingCapture:!0})}},wheel:{phasedRegistrationNames:{bubbled:C({onWheel:!0}),captured:C({onWheelCapture:!0})}}},E={topAbort:_.abort,topBlur:_.blur,topCanPlay:_.canPlay,topCanPlayThrough:_.canPlayThrough,topClick:_.click,topContextMenu:_.contextMenu,topCopy:_.copy,topCut:_.cut,topDoubleClick:_.doubleClick,topDrag:_.drag,topDragEnd:_.dragEnd,topDragEnter:_.dragEnter,topDragExit:_.dragExit,topDragLeave:_.dragLeave,topDragOver:_.dragOver,topDragStart:_.dragStart,topDrop:_.drop,topDurationChange:_.durationChange,topEmptied:_.emptied,topEncrypted:_.encrypted,topEnded:_.ended,topError:_.error,topFocus:_.focus,topInput:_.input,topKeyDown:_.keyDown,topKeyPress:_.keyPress,topKeyUp:_.keyUp,topLoad:_.load,topLoadedData:_.loadedData,topLoadedMetadata:_.loadedMetadata,topLoadStart:_.loadStart,topMouseDown:_.mouseDown,topMouseMove:_.mouseMove,topMouseOut:_.mouseOut,topMouseOver:_.mouseOver,topMouseUp:_.mouseUp,topPaste:_.paste,topPause:_.pause,topPlay:_.play,topPlaying:_.playing,topProgress:_.progress,topRateChange:_.rateChange,topReset:_.reset,topScroll:_.scroll,topSeeked:_.seeked,topSeeking:_.seeking,topStalled:_.stalled,topSubmit:_.submit,topSuspend:_.suspend,topTimeUpdate:_.timeUpdate,topTouchCancel:_.touchCancel,topTouchEnd:_.touchEnd,topTouchMove:_.touchMove,topTouchStart:_.touchStart,topVolumeChange:_.volumeChange,topWaiting:_.waiting,topWheel:_.wheel};for(var x in E)E[x].dependencies=[x];var D=C({onClick:null}),M={},N={eventTypes:_,extractEvents:function(e,t,n,r,o){var i=E[e];if(!i)return null;var m;switch(e){case b.topAbort:case b.topCanPlay:case b.topCanPlayThrough:case b.topDurationChange:case b.topEmptied:case b.topEncrypted:case b.topEnded:case b.topError:case b.topInput:case b.topLoad:case b.topLoadedData:case b.topLoadedMetadata:case b.topLoadStart:case b.topPause:case b.topPlay:case b.topPlaying:case b.topProgress:case b.topRateChange:case b.topReset:case b.topSeeked:case b.topSeeking:case b.topStalled:case b.topSubmit:case b.topSuspend:case b.topTimeUpdate:case b.topVolumeChange:case b.topWaiting:m=s;break;case b.topKeyPress:if(0===g(r))return null;case b.topKeyDown:case b.topKeyUp:m=c;break;case b.topBlur:case b.topFocus:m=l;break;case b.topClick:if(2===r.button)return null;case b.topContextMenu:case b.topDoubleClick:case b.topMouseDown:case b.topMouseMove:case b.topMouseOut:case b.topMouseOver:case b.topMouseUp:m=p;break;case b.topDrag:case b.topDragEnd:case b.topDragEnter:case b.topDragExit:case b.topDragLeave:case b.topDragOver:case b.topDragStart:case b.topDrop:m=d;break;case b.topTouchCancel:case b.topTouchEnd:case b.topTouchMove:case b.topTouchStart:m=f;break;case b.topScroll:m=h;break;case b.topWheel:m=v;break;case b.topCopy:case b.topCut:case b.topPaste:m=u}m?void 0:y(!1);var C=m.getPooled(i,n,r,o);return a.accumulateTwoPhaseDispatches(C),C},didPutListener:function(e,t,n){if(t===D){var r=i.getNode(e);M[e]||(M[e]=o.listen(r,"click",m))}},willDeleteListener:function(e,t){t===D&&(M[e].remove(),delete M[e])}};t.exports=N},{109:109,127:127,134:134,142:142,146:146,15:15,19:19,63:63,87:87,89:89,90:90,91:91,93:93,94:94,95:95,96:96,97:97}],87:[function(e,t,n){"use strict";function r(e,t,n,r){o.call(this,e,t,n,r)}var o=e(90),a={clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}};o.augmentClass(r,a),t.exports=r},{90:90}],88:[function(e,t,n){"use strict";function r(e,t,n,r){o.call(this,e,t,n,r)}var o=e(90),a={data:null};o.augmentClass(r,a),t.exports=r},{90:90}],89:[function(e,t,n){"use strict";function r(e,t,n,r){o.call(this,e,t,n,r)}var o=e(94),a={dataTransfer:null};o.augmentClass(r,a),t.exports=r},{94:94}],90:[function(e,t,n){"use strict";function r(e,t,n,r){this.dispatchConfig=e,this.dispatchMarker=t,this.nativeEvent=n,this.target=r,this.currentTarget=r;var o=this.constructor.Interface;for(var a in o)if(o.hasOwnProperty(a)){var u=o[a];u?this[a]=u(n):this[a]=n[a]}var s=null!=n.defaultPrevented?n.defaultPrevented:n.returnValue===!1;s?this.isDefaultPrevented=i.thatReturnsTrue:this.isDefaultPrevented=i.thatReturnsFalse,this.isPropagationStopped=i.thatReturnsFalse}var o=e(24),a=e(23),i=e(134),u=(e(151),{type:null,currentTarget:i.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null});a(r.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():e.returnValue=!1,this.isDefaultPrevented=i.thatReturnsTrue)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,this.isPropagationStopped=i.thatReturnsTrue)},persist:function(){this.isPersistent=i.thatReturnsTrue},isPersistent:i.thatReturnsFalse,destructor:function(){var e=this.constructor.Interface;for(var t in e)this[t]=null;this.dispatchConfig=null,this.dispatchMarker=null,this.nativeEvent=null}}),r.Interface=u,r.augmentClass=function(e,t){var n=this,r=Object.create(n.prototype);a(r,e.prototype),e.prototype=r,e.prototype.constructor=e,e.Interface=a({},n.Interface,t),e.augmentClass=n.augmentClass,o.addPoolingTo(e,o.fourArgumentPooler)},o.addPoolingTo(r,o.fourArgumentPooler),t.exports=r},{134:134,151:151,23:23,24:24}],91:[function(e,t,n){"use strict";function r(e,t,n,r){o.call(this,e,t,n,r)}var o=e(96),a={relatedTarget:null};o.augmentClass(r,a),t.exports=r},{96:96}],92:[function(e,t,n){"use strict";function r(e,t,n,r){o.call(this,e,t,n,r)}var o=e(90),a={data:null};o.augmentClass(r,a),t.exports=r},{90:90}],93:[function(e,t,n){"use strict";function r(e,t,n,r){o.call(this,e,t,n,r)}var o=e(96),a=e(109),i=e(110),u=e(111),s={key:i,location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:u,charCode:function(e){return"keypress"===e.type?a(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?a(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}};o.augmentClass(r,s),t.exports=r},{109:109,110:110,111:111,96:96}],94:[function(e,t,n){"use strict";function r(e,t,n,r){o.call(this,e,t,n,r)}var o=e(96),a=e(99),i=e(111),u={screenX:null,screenY:null,clientX:null,clientY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:i,button:function(e){var t=e.button;return"which"in e?t:2===t?2:4===t?1:0},buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},pageX:function(e){return"pageX"in e?e.pageX:e.clientX+a.currentScrollLeft},pageY:function(e){return"pageY"in e?e.pageY:e.clientY+a.currentScrollTop}};o.augmentClass(r,u),t.exports=r},{111:111,96:96,99:99}],95:[function(e,t,n){"use strict";function r(e,t,n,r){o.call(this,e,t,n,r)}var o=e(96),a=e(111),i={touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:a};o.augmentClass(r,i),t.exports=r},{111:111,96:96}],96:[function(e,t,n){"use strict";function r(e,t,n,r){o.call(this,e,t,n,r)}var o=e(90),a=e(112),i={view:function(e){if(e.view)return e.view;var t=a(e);if(null!=t&&t.window===t)return t;var n=t.ownerDocument;return n?n.defaultView||n.parentWindow:window},detail:function(e){return e.detail||0}};o.augmentClass(r,i),t.exports=r},{112:112,90:90}],97:[function(e,t,n){"use strict";function r(e,t,n,r){o.call(this,e,t,n,r)}var o=e(94),a={deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null};o.augmentClass(r,a),t.exports=r},{94:94}],98:[function(e,t,n){"use strict";var r=e(142),o={reinitializeTransaction:function(){this.transactionWrappers=this.getTransactionWrappers(),this.wrapperInitData?this.wrapperInitData.length=0:this.wrapperInitData=[],this._isInTransaction=!1},_isInTransaction:!1,getTransactionWrappers:null,isInTransaction:function(){return!!this._isInTransaction},perform:function(e,t,n,o,a,i,u,s){this.isInTransaction()?r(!1):void 0;var l,c;try{this._isInTransaction=!0,l=!0,this.initializeAll(0),c=e.call(t,n,o,a,i,u,s),l=!1}finally{try{if(l)try{this.closeAll(0)}catch(p){}else this.closeAll(0)}finally{this._isInTransaction=!1}}return c},initializeAll:function(e){for(var t=this.transactionWrappers,n=e;n<t.length;n++){var r=t[n];try{this.wrapperInitData[n]=a.OBSERVED_ERROR,this.wrapperInitData[n]=r.initialize?r.initialize.call(this):null}finally{if(this.wrapperInitData[n]===a.OBSERVED_ERROR)try{this.initializeAll(n+1)}catch(o){}}}},closeAll:function(e){this.isInTransaction()?void 0:r(!1);for(var t=this.transactionWrappers,n=e;n<t.length;n++){var o,i=t[n],u=this.wrapperInitData[n];try{o=!0,u!==a.OBSERVED_ERROR&&i.close&&i.close.call(this,u),o=!1}finally{if(o)try{this.closeAll(n+1)}catch(s){}}}this.wrapperInitData.length=0}},a={Mixin:o,OBSERVED_ERROR:{}};t.exports=a},{142:142}],99:[function(e,t,n){"use strict";var r={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(e){r.currentScrollLeft=e.x,r.currentScrollTop=e.y}};t.exports=r},{}],100:[function(e,t,n){"use strict";function r(e,t){if(null==t?o(!1):void 0,null==e)return t;var n=Array.isArray(e),r=Array.isArray(t);return n&&r?(e.push.apply(e,t),e):n?(e.push(t),e):r?[e].concat(t):[e,t]}var o=e(142);t.exports=r},{142:142}],101:[function(e,t,n){"use strict";function r(e){for(var t=1,n=0,r=0,a=e.length,i=-4&a;i>r;){for(;r<Math.min(r+4096,i);r+=4)n+=(t+=e.charCodeAt(r))+(t+=e.charCodeAt(r+1))+(t+=e.charCodeAt(r+2))+(t+=e.charCodeAt(r+3));t%=o,n%=o}for(;a>r;r++)n+=t+=e.charCodeAt(r);return t%=o,n%=o,t|n<<16}var o=65521;t.exports=r},{}],102:[function(e,t,n){"use strict";var r=!1;t.exports=r},{}],103:[function(e,t,n){"use strict";function r(e,t){var n=null==t||"boolean"==typeof t||""===t;if(n)return"";var r=isNaN(t);return r||0===t||a.hasOwnProperty(e)&&a[e]?""+t:("string"==typeof t&&(t=t.trim()),t+"px")}var o=e(4),a=o.isUnitlessNumber;t.exports=r},{4:4}],104:[function(e,t,n){"use strict";function r(e,t,n,r,o){return o}e(23),e(151);t.exports=r},{151:151,23:23}],105:[function(e,t,n){"use strict";function r(e){return a[e]}function o(e){return(""+e).replace(i,r)}var a={"&":"&",">":">","<":"<",'"':""","'":"'"},i=/[&><"']/g;t.exports=o},{}],106:[function(e,t,n){"use strict";function r(e){return null==e?null:1===e.nodeType?e:o.has(e)?a.getNodeFromInstance(e):(null!=e.render&&"function"==typeof e.render?i(!1):void 0,void i(!1))}var o=(e(34),e(60)),a=e(63),i=e(142);e(151);t.exports=r},{142:142,151:151,34:34,60:60,63:63}],107:[function(e,t,n){"use strict";function r(e,t,n){var r=e,o=void 0===r[n];o&&null!=t&&(r[n]=t)}function o(e){if(null==e)return e;var t={};return a(e,r,t),t}var a=e(125);e(151);t.exports=o},{125:125,151:151}],108:[function(e,t,n){"use strict";var r=function(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)};t.exports=r},{}],109:[function(e,t,n){"use strict";function r(e){var t,n=e.keyCode;return"charCode"in e?(t=e.charCode,0===t&&13===n&&(t=13)):t=n,t>=32||13===t?t:0}t.exports=r},{}],110:[function(e,t,n){"use strict";function r(e){if(e.key){var t=a[e.key]||e.key;if("Unidentified"!==t)return t}if("keypress"===e.type){var n=o(e);return 13===n?"Enter":String.fromCharCode(n)}return"keydown"===e.type||"keyup"===e.type?i[e.keyCode]||"Unidentified":""}var o=e(109),a={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},i={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};t.exports=r},{109:109}],111:[function(e,t,n){"use strict";function r(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var r=a[e];return r?!!n[r]:!1}function o(e){return r}var a={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};t.exports=o},{}],112:[function(e,t,n){"use strict";function r(e){var t=e.target||e.srcElement||window;return 3===t.nodeType?t.parentNode:t}t.exports=r},{}],113:[function(e,t,n){"use strict";function r(e){var t=e&&(o&&e[o]||e[a]);return"function"==typeof t?t:void 0}var o="function"==typeof Symbol&&Symbol.iterator,a="@@iterator";t.exports=r},{}],114:[function(e,t,n){"use strict";function r(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function o(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}function a(e,t){for(var n=r(e),a=0,i=0;n;){if(3===n.nodeType){if(i=a+n.textContent.length,t>=a&&i>=t)return{node:n,offset:t-a};a=i}n=r(o(n))}}t.exports=a},{}],115:[function(e,t,n){"use strict";function r(){return!a&&o.canUseDOM&&(a="textContent"in document.documentElement?"textContent":"innerText"),a}var o=e(128),a=null;t.exports=r},{128:128}],116:[function(e,t,n){"use strict";function r(e){return"function"==typeof e&&"undefined"!=typeof e.prototype&&"function"==typeof e.prototype.mountComponent&&"function"==typeof e.prototype.receiveComponent}function o(e){var t;if(null===e||e===!1)t=new i(o);else if("object"==typeof e){var n=e;!n||"function"!=typeof n.type&&"string"!=typeof n.type?l(!1):void 0,t="string"==typeof n.type?u.createInternalComponent(n):r(n.type)?new n.type(n):new c}else"string"==typeof e||"number"==typeof e?t=u.createInstanceForText(e):l(!1);return t.construct(e),t._mountIndex=0,t._mountImage=null,t}var a=e(33),i=e(52),u=e(66),s=e(23),l=e(142),c=(e(151),function(){});s(c.prototype,a.Mixin,{_instantiateReactComponent:o}),t.exports=o},{142:142,151:151,23:23,33:33,52:52,66:66}],117:[function(e,t,n){"use strict";function r(e,t){if(!a.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;if(!r){var i=document.createElement("div");i.setAttribute(n,"return;"),r="function"==typeof i[n]}return!r&&o&&"wheel"===e&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var o,a=e(128);a.canUseDOM&&(o=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),t.exports=r},{128:128}],118:[function(e,t,n){"use strict";function r(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&o[e.type]||"textarea"===t)}var o={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};t.exports=r},{}],119:[function(e,t,n){"use strict";function r(e){return o.isValidElement(e)?void 0:a(!1),e}var o=e(50),a=e(142);t.exports=r},{142:142,50:50}],120:[function(e,t,n){"use strict";function r(e){return'"'+o(e)+'"'}var o=e(105);t.exports=r},{105:105}],121:[function(e,t,n){"use strict";var r=e(63);t.exports=r.renderSubtreeIntoContainer},{63:63}],122:[function(e,t,n){"use strict";var r=e(128),o=/^[ \r\n\t\f]/,a=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,i=function(e,t){e.innerHTML=t};if("undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction&&(i=function(e,t){MSApp.execUnsafeLocalFunction(function(){e.innerHTML=t})}),r.canUseDOM){var u=document.createElement("div");u.innerHTML=" ",""===u.innerHTML&&(i=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),o.test(t)||"<"===t[0]&&a.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t})}t.exports=i},{128:128}],123:[function(e,t,n){"use strict";var r=e(128),o=e(105),a=e(122),i=function(e,t){e.textContent=t};r.canUseDOM&&("textContent"in document.documentElement||(i=function(e,t){a(e,o(t))})),t.exports=i},{105:105,122:122,128:128}],124:[function(e,t,n){"use strict";function r(e,t){var n=null===e||e===!1,r=null===t||t===!1;if(n||r)return n===r;var o=typeof e,a=typeof t;return"string"===o||"number"===o?"string"===a||"number"===a:"object"===a&&e.type===t.type&&e.key===t.key}t.exports=r},{}],125:[function(e,t,n){"use strict";function r(e){return v[e]}function o(e,t){return e&&null!=e.key?i(e.key):t.toString(36)}function a(e){return(""+e).replace(m,r)}function i(e){return"$"+a(e)}function u(e,t,n,r){var a=typeof e;if(("undefined"===a||"boolean"===a)&&(e=null),null===e||"string"===a||"number"===a||l.isValidElement(e))return n(r,e,""===t?f+o(e,0):t),1;var s,c,v=0,m=""===t?f:t+h;if(Array.isArray(e))for(var g=0;g<e.length;g++)s=e[g], +c=m+o(s,g),v+=u(s,c,n,r);else{var y=p(e);if(y){var C,b=y.call(e);if(y!==e.entries)for(var _=0;!(C=b.next()).done;)s=C.value,c=m+o(s,_++),v+=u(s,c,n,r);else for(;!(C=b.next()).done;){var E=C.value;E&&(s=E[1],c=m+i(E[0])+h+o(s,0),v+=u(s,c,n,r))}}else"object"===a&&(String(e),d(!1))}return v}function s(e,t,n){return null==e?0:u(e,"",t,n)}var l=(e(34),e(50)),c=e(59),p=e(113),d=e(142),f=(e(151),c.SEPARATOR),h=":",v={"=":"=0",".":"=1",":":"=2"},m=/[=.:]/g;t.exports=s},{113:113,142:142,151:151,34:34,50:50,59:59}],126:[function(e,t,n){"use strict";var r=(e(23),e(134)),o=(e(151),r);t.exports=o},{134:134,151:151,23:23}],127:[function(e,t,n){"use strict";var r=e(134),o={listen:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),{remove:function(){e.removeEventListener(t,n,!1)}}):e.attachEvent?(e.attachEvent("on"+t,n),{remove:function(){e.detachEvent("on"+t,n)}}):void 0},capture:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!0),{remove:function(){e.removeEventListener(t,n,!0)}}):{remove:r}},registerDefault:function(){}};t.exports=o},{134:134}],128:[function(e,t,n){"use strict";var r=!("undefined"==typeof window||!window.document||!window.document.createElement),o={canUseDOM:r,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:r&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:r&&!!window.screen,isInWorker:!r};t.exports=o},{}],129:[function(e,t,n){"use strict";function r(e){return e.replace(o,function(e,t){return t.toUpperCase()})}var o=/-(.)/g;t.exports=r},{}],130:[function(e,t,n){"use strict";function r(e){return o(e.replace(a,"ms-"))}var o=e(129),a=/^-ms-/;t.exports=r},{129:129}],131:[function(e,t,n){"use strict";function r(e,t){var n=!0;e:for(;n;){var r=e,a=t;if(n=!1,r&&a){if(r===a)return!0;if(o(r))return!1;if(o(a)){e=r,t=a.parentNode,n=!0;continue e}return r.contains?r.contains(a):r.compareDocumentPosition?!!(16&r.compareDocumentPosition(a)):!1}return!1}}var o=e(144);t.exports=r},{144:144}],132:[function(e,t,n){"use strict";function r(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"length"in e&&!("setInterval"in e)&&"number"!=typeof e.nodeType&&(Array.isArray(e)||"callee"in e||"item"in e)}function o(e){return r(e)?Array.isArray(e)?e.slice():a(e):[e]}var a=e(150);t.exports=o},{150:150}],133:[function(e,t,n){"use strict";function r(e){var t=e.match(c);return t&&t[1].toLowerCase()}function o(e,t){var n=l;l?void 0:s(!1);var o=r(e),a=o&&u(o);if(a){n.innerHTML=a[1]+e+a[2];for(var c=a[0];c--;)n=n.lastChild}else n.innerHTML=e;var p=n.getElementsByTagName("script");p.length&&(t?void 0:s(!1),i(p).forEach(t));for(var d=i(n.childNodes);n.lastChild;)n.removeChild(n.lastChild);return d}var a=e(128),i=e(132),u=e(138),s=e(142),l=a.canUseDOM?document.createElement("div"):null,c=/^\s*<(\w+)/;t.exports=o},{128:128,132:132,138:138,142:142}],134:[function(e,t,n){"use strict";function r(e){return function(){return e}}function o(){}o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(e){return e},t.exports=o},{}],135:[function(e,t,n){"use strict";var r={};t.exports=r},{}],136:[function(e,t,n){"use strict";function r(e){try{e.focus()}catch(t){}}t.exports=r},{}],137:[function(e,t,n){"use strict";function r(){if("undefined"==typeof document)return null;try{return document.activeElement||document.body}catch(e){return document.body}}t.exports=r},{}],138:[function(e,t,n){"use strict";function r(e){return i?void 0:a(!1),d.hasOwnProperty(e)||(e="*"),u.hasOwnProperty(e)||("*"===e?i.innerHTML="<link />":i.innerHTML="<"+e+"></"+e+">",u[e]=!i.firstChild),u[e]?d[e]:null}var o=e(128),a=e(142),i=o.canUseDOM?document.createElement("div"):null,u={},s=[1,'<select multiple="true">',"</select>"],l=[1,"<table>","</table>"],c=[3,"<table><tbody><tr>","</tr></tbody></table>"],p=[1,'<svg xmlns="http://www.w3.org/2000/svg">',"</svg>"],d={"*":[1,"?<div>","</div>"],area:[1,"<map>","</map>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],legend:[1,"<fieldset>","</fieldset>"],param:[1,"<object>","</object>"],tr:[2,"<table><tbody>","</tbody></table>"],optgroup:s,option:s,caption:l,colgroup:l,tbody:l,tfoot:l,thead:l,td:c,th:c},f=["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"];f.forEach(function(e){d[e]=p,u[e]=!0}),t.exports=r},{128:128,142:142}],139:[function(e,t,n){"use strict";function r(e){return e===window?{x:window.pageXOffset||document.documentElement.scrollLeft,y:window.pageYOffset||document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}t.exports=r},{}],140:[function(e,t,n){"use strict";function r(e){return e.replace(o,"-$1").toLowerCase()}var o=/([A-Z])/g;t.exports=r},{}],141:[function(e,t,n){"use strict";function r(e){return o(e).replace(a,"-ms-")}var o=e(140),a=/^ms-/;t.exports=r},{140:140}],142:[function(e,t,n){"use strict";var r=function(e,t,n,r,o,a,i,u){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,a,i,u],c=0;s=new Error("Invariant Violation: "+t.replace(/%s/g,function(){return l[c++]}))}throw s.framesToPop=1,s}};t.exports=r},{}],143:[function(e,t,n){"use strict";function r(e){return!(!e||!("function"==typeof Node?e instanceof Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}t.exports=r},{}],144:[function(e,t,n){"use strict";function r(e){return o(e)&&3==e.nodeType}var o=e(143);t.exports=r},{143:143}],145:[function(e,t,n){"use strict";var r=e(142),o=function(e){var t,n={};e instanceof Object&&!Array.isArray(e)?void 0:r(!1);for(t in e)e.hasOwnProperty(t)&&(n[t]=t);return n};t.exports=o},{142:142}],146:[function(e,t,n){"use strict";var r=function(e){var t;for(t in e)if(e.hasOwnProperty(t))return t;return null};t.exports=r},{}],147:[function(e,t,n){"use strict";function r(e,t,n){if(!e)return null;var r={};for(var a in e)o.call(e,a)&&(r[a]=t.call(n,e[a],a,e));return r}var o=Object.prototype.hasOwnProperty;t.exports=r},{}],148:[function(e,t,n){"use strict";function r(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}t.exports=r},{}],149:[function(e,t,n){"use strict";function r(e,t){if(e===t)return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var a=o.bind(t),i=0;i<n.length;i++)if(!a(n[i])||e[n[i]]!==t[n[i]])return!1;return!0}var o=Object.prototype.hasOwnProperty;t.exports=r},{}],150:[function(e,t,n){"use strict";function r(e){var t=e.length;if(Array.isArray(e)||"object"!=typeof e&&"function"!=typeof e?o(!1):void 0,"number"!=typeof t?o(!1):void 0,0===t||t-1 in e?void 0:o(!1),e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(n){}for(var r=Array(t),a=0;t>a;a++)r[a]=e[a];return r}var o=e(142);t.exports=r},{142:142}],151:[function(e,t,n){"use strict";var r=e(134),o=r;t.exports=o},{134:134}]},{},[1])(1)});
\ No newline at end of file diff --git a/web/static/js/react-bootstrap-0.27.1.js b/web/static/js/react-bootstrap-0.27.1.js deleted file mode 100644 index 30bc165ef..000000000 --- a/web/static/js/react-bootstrap-0.27.1.js +++ /dev/null @@ -1,16187 +0,0 @@ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(require("react"), require("react-dom")); - else if(typeof define === 'function' && define.amd) - define(["react", "react-dom"], factory); - else if(typeof exports === 'object') - exports["ReactBootstrap"] = factory(require("react"), require("react-dom")); - else - root["ReactBootstrap"] = factory(root["React"], root["ReactDOM"]); -})(this, function(__WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_34__) { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - var _interopRequireWildcard = __webpack_require__(2)['default']; - - exports.__esModule = true; - - var _utilsChildrenValueInputValidation = __webpack_require__(3); - - var _utilsChildrenValueInputValidation2 = _interopRequireDefault(_utilsChildrenValueInputValidation); - - var _utilsCreateChainedFunction = __webpack_require__(6); - - var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); - - var _utilsValidComponentChildren = __webpack_require__(7); - - var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); - - var _Accordion2 = __webpack_require__(8); - - var _Accordion3 = _interopRequireDefault(_Accordion2); - - exports.Accordion = _Accordion3['default']; - - var _Affix2 = __webpack_require__(32); - - var _Affix3 = _interopRequireDefault(_Affix2); - - exports.Affix = _Affix3['default']; - - var _AffixMixin2 = __webpack_require__(33); - - var _AffixMixin3 = _interopRequireDefault(_AffixMixin2); - - exports.AffixMixin = _AffixMixin3['default']; - - var _Alert2 = __webpack_require__(44); - - var _Alert3 = _interopRequireDefault(_Alert2); - - exports.Alert = _Alert3['default']; - - var _Badge2 = __webpack_require__(45); - - var _Badge3 = _interopRequireDefault(_Badge2); - - exports.Badge = _Badge3['default']; - - var _BootstrapMixin2 = __webpack_require__(28); - - var _BootstrapMixin3 = _interopRequireDefault(_BootstrapMixin2); - - exports.BootstrapMixin = _BootstrapMixin3['default']; - - var _Breadcrumb2 = __webpack_require__(46); - - var _Breadcrumb3 = _interopRequireDefault(_Breadcrumb2); - - exports.Breadcrumb = _Breadcrumb3['default']; - - var _BreadcrumbItem2 = __webpack_require__(47); - - var _BreadcrumbItem3 = _interopRequireDefault(_BreadcrumbItem2); - - exports.BreadcrumbItem = _BreadcrumbItem3['default']; - - var _Button2 = __webpack_require__(62); - - var _Button3 = _interopRequireDefault(_Button2); - - exports.Button = _Button3['default']; - - var _ButtonGroup2 = __webpack_require__(68); - - var _ButtonGroup3 = _interopRequireDefault(_ButtonGroup2); - - exports.ButtonGroup = _ButtonGroup3['default']; - - var _ButtonInput2 = __webpack_require__(64); - - var _ButtonInput3 = _interopRequireDefault(_ButtonInput2); - - exports.ButtonInput = _ButtonInput3['default']; - - var _ButtonToolbar2 = __webpack_require__(70); - - var _ButtonToolbar3 = _interopRequireDefault(_ButtonToolbar2); - - exports.ButtonToolbar = _ButtonToolbar3['default']; - - var _Carousel2 = __webpack_require__(71); - - var _Carousel3 = _interopRequireDefault(_Carousel2); - - exports.Carousel = _Carousel3['default']; - - var _CarouselItem2 = __webpack_require__(72); - - var _CarouselItem3 = _interopRequireDefault(_CarouselItem2); - - exports.CarouselItem = _CarouselItem3['default']; - - var _Col2 = __webpack_require__(74); - - var _Col3 = _interopRequireDefault(_Col2); - - exports.Col = _Col3['default']; - - var _CollapsibleNav2 = __webpack_require__(79); - - var _CollapsibleNav3 = _interopRequireDefault(_CollapsibleNav2); - - exports.CollapsibleNav = _CollapsibleNav3['default']; - - var _Dropdown2 = __webpack_require__(92); - - var _Dropdown3 = _interopRequireDefault(_Dropdown2); - - exports.Dropdown = _Dropdown3['default']; - - var _DropdownButton2 = __webpack_require__(177); - - var _DropdownButton3 = _interopRequireDefault(_DropdownButton2); - - exports.DropdownButton = _DropdownButton3['default']; - - var _Glyphicon2 = __webpack_require__(67); - - var _Glyphicon3 = _interopRequireDefault(_Glyphicon2); - - exports.Glyphicon = _Glyphicon3['default']; - - var _Grid2 = __webpack_require__(178); - - var _Grid3 = _interopRequireDefault(_Grid2); - - exports.Grid = _Grid3['default']; - - var _Image2 = __webpack_require__(179); - - var _Image3 = _interopRequireDefault(_Image2); - - exports.Image = _Image3['default']; - - var _Input2 = __webpack_require__(180); - - var _Input3 = _interopRequireDefault(_Input2); - - exports.Input = _Input3['default']; - - var _Interpolate2 = __webpack_require__(184); - - var _Interpolate3 = _interopRequireDefault(_Interpolate2); - - exports.Interpolate = _Interpolate3['default']; - - var _Jumbotron2 = __webpack_require__(185); - - var _Jumbotron3 = _interopRequireDefault(_Jumbotron2); - - exports.Jumbotron = _Jumbotron3['default']; - - var _Label2 = __webpack_require__(186); - - var _Label3 = _interopRequireDefault(_Label2); - - exports.Label = _Label3['default']; - - var _ListGroup2 = __webpack_require__(187); - - var _ListGroup3 = _interopRequireDefault(_ListGroup2); - - exports.ListGroup = _ListGroup3['default']; - - var _ListGroupItem2 = __webpack_require__(188); - - var _ListGroupItem3 = _interopRequireDefault(_ListGroupItem2); - - exports.ListGroupItem = _ListGroupItem3['default']; - - var _MenuItem2 = __webpack_require__(189); - - var _MenuItem3 = _interopRequireDefault(_MenuItem2); - - exports.MenuItem = _MenuItem3['default']; - - var _Modal2 = __webpack_require__(190); - - var _Modal3 = _interopRequireDefault(_Modal2); - - exports.Modal = _Modal3['default']; - - var _ModalBody2 = __webpack_require__(201); - - var _ModalBody3 = _interopRequireDefault(_ModalBody2); - - exports.ModalBody = _ModalBody3['default']; - - var _ModalFooter2 = __webpack_require__(204); - - var _ModalFooter3 = _interopRequireDefault(_ModalFooter2); - - exports.ModalFooter = _ModalFooter3['default']; - - var _ModalHeader2 = __webpack_require__(202); - - var _ModalHeader3 = _interopRequireDefault(_ModalHeader2); - - exports.ModalHeader = _ModalHeader3['default']; - - var _ModalTitle2 = __webpack_require__(203); - - var _ModalTitle3 = _interopRequireDefault(_ModalTitle2); - - exports.ModalTitle = _ModalTitle3['default']; - - var _Nav2 = __webpack_require__(205); - - var _Nav3 = _interopRequireDefault(_Nav2); - - exports.Nav = _Nav3['default']; - - var _Navbar2 = __webpack_require__(206); - - var _Navbar3 = _interopRequireDefault(_Navbar2); - - exports.Navbar = _Navbar3['default']; - - var _NavBrand2 = __webpack_require__(207); - - var _NavBrand3 = _interopRequireDefault(_NavBrand2); - - exports.NavBrand = _NavBrand3['default']; - - var _NavDropdown2 = __webpack_require__(208); - - var _NavDropdown3 = _interopRequireDefault(_NavDropdown2); - - exports.NavDropdown = _NavDropdown3['default']; - - var _NavItem2 = __webpack_require__(209); - - var _NavItem3 = _interopRequireDefault(_NavItem2); - - exports.NavItem = _NavItem3['default']; - - var _Overlay2 = __webpack_require__(210); - - var _Overlay3 = _interopRequireDefault(_Overlay2); - - exports.Overlay = _Overlay3['default']; - - var _OverlayTrigger2 = __webpack_require__(219); - - var _OverlayTrigger3 = _interopRequireDefault(_OverlayTrigger2); - - exports.OverlayTrigger = _OverlayTrigger3['default']; - - var _PageHeader2 = __webpack_require__(221); - - var _PageHeader3 = _interopRequireDefault(_PageHeader2); - - exports.PageHeader = _PageHeader3['default']; - - var _PageItem2 = __webpack_require__(222); - - var _PageItem3 = _interopRequireDefault(_PageItem2); - - exports.PageItem = _PageItem3['default']; - - var _Pager2 = __webpack_require__(223); - - var _Pager3 = _interopRequireDefault(_Pager2); - - exports.Pager = _Pager3['default']; - - var _Pagination2 = __webpack_require__(224); - - var _Pagination3 = _interopRequireDefault(_Pagination2); - - exports.Pagination = _Pagination3['default']; - - var _Panel2 = __webpack_require__(227); - - var _Panel3 = _interopRequireDefault(_Panel2); - - exports.Panel = _Panel3['default']; - - var _PanelGroup2 = __webpack_require__(25); - - var _PanelGroup3 = _interopRequireDefault(_PanelGroup2); - - exports.PanelGroup = _PanelGroup3['default']; - - var _Popover2 = __webpack_require__(228); - - var _Popover3 = _interopRequireDefault(_Popover2); - - exports.Popover = _Popover3['default']; - - var _ProgressBar2 = __webpack_require__(229); - - var _ProgressBar3 = _interopRequireDefault(_ProgressBar2); - - exports.ProgressBar = _ProgressBar3['default']; - - var _ResponsiveEmbed2 = __webpack_require__(230); - - var _ResponsiveEmbed3 = _interopRequireDefault(_ResponsiveEmbed2); - - exports.ResponsiveEmbed = _ResponsiveEmbed3['default']; - - var _Row2 = __webpack_require__(231); - - var _Row3 = _interopRequireDefault(_Row2); - - exports.Row = _Row3['default']; - - var _SafeAnchor2 = __webpack_require__(49); - - var _SafeAnchor3 = _interopRequireDefault(_SafeAnchor2); - - exports.SafeAnchor = _SafeAnchor3['default']; - - var _SplitButton3 = __webpack_require__(232); - - var _SplitButton4 = _interopRequireDefault(_SplitButton3); - - exports.SplitButton = _SplitButton4['default']; - - var _SplitButton5 = _interopRequireDefault(_SplitButton3); - - exports.SplitButton = _SplitButton5['default']; - - var _styleMaps2 = __webpack_require__(29); - - var _styleMaps3 = _interopRequireDefault(_styleMaps2); - - exports.styleMaps = _styleMaps3['default']; - - var _SubNav2 = __webpack_require__(234); - - var _SubNav3 = _interopRequireDefault(_SubNav2); - - exports.SubNav = _SubNav3['default']; - - var _Tab2 = __webpack_require__(235); - - var _Tab3 = _interopRequireDefault(_Tab2); - - exports.Tab = _Tab3['default']; - - var _Table2 = __webpack_require__(236); - - var _Table3 = _interopRequireDefault(_Table2); - - exports.Table = _Table3['default']; - - var _Tabs2 = __webpack_require__(237); - - var _Tabs3 = _interopRequireDefault(_Tabs2); - - exports.Tabs = _Tabs3['default']; - - var _Thumbnail2 = __webpack_require__(238); - - var _Thumbnail3 = _interopRequireDefault(_Thumbnail2); - - exports.Thumbnail = _Thumbnail3['default']; - - var _Tooltip2 = __webpack_require__(239); - - var _Tooltip3 = _interopRequireDefault(_Tooltip2); - - exports.Tooltip = _Tooltip3['default']; - - var _Well2 = __webpack_require__(240); - - var _Well3 = _interopRequireDefault(_Well2); - - exports.Well = _Well3['default']; - - var _Collapse2 = __webpack_require__(80); - - var _Collapse3 = _interopRequireDefault(_Collapse2); - - exports.Collapse = _Collapse3['default']; - - var _Fade2 = __webpack_require__(199); - - var _Fade3 = _interopRequireDefault(_Fade2); - - exports.Fade = _Fade3['default']; - - var _FormControls2 = __webpack_require__(181); - - var _FormControls = _interopRequireWildcard(_FormControls2); - - exports.FormControls = _FormControls; - var utils = { - childrenValueInputValidation: _utilsChildrenValueInputValidation2['default'], - createChainedFunction: _utilsCreateChainedFunction2['default'], - ValidComponentChildren: _utilsValidComponentChildren2['default'] - }; - exports.utils = utils; - -/***/ }, -/* 1 */ -/***/ function(module, exports) { - - "use strict"; - - exports["default"] = function (obj) { - return obj && obj.__esModule ? obj : { - "default": obj - }; - }; - - exports.__esModule = true; - -/***/ }, -/* 2 */ -/***/ function(module, exports) { - - "use strict"; - - exports["default"] = function (obj) { - if (obj && obj.__esModule) { - return obj; - } else { - var newObj = {}; - - if (obj != null) { - for (var key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; - } - } - - newObj["default"] = obj; - return newObj; - } - }; - - exports.__esModule = true; - -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - exports['default'] = valueValidation; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _reactPropTypesLibSinglePropFrom = __webpack_require__(5); - - var _reactPropTypesLibSinglePropFrom2 = _interopRequireDefault(_reactPropTypesLibSinglePropFrom); - - function valueValidation(props, propName, componentName) { - var error = _reactPropTypesLibSinglePropFrom2['default']('children', 'value')(props, propName, componentName); - - if (!error) { - error = _react2['default'].PropTypes.node(props, propName, componentName); - } - - return error; - } - - module.exports = exports['default']; - -/***/ }, -/* 4 */ -/***/ function(module, exports) { - - module.exports = __WEBPACK_EXTERNAL_MODULE_4__; - -/***/ }, -/* 5 */ -/***/ function(module, exports) { - - /** - * Checks if only one of the listed properties is in use. An error is given - * if multiple have a value - * - * @param props - * @param propName - * @param componentName - * @returns {Error|undefined} - */ - 'use strict'; - - exports.__esModule = true; - exports['default'] = createSinglePropFromChecker; - - function createSinglePropFromChecker() { - for (var _len = arguments.length, arrOfProps = Array(_len), _key = 0; _key < _len; _key++) { - arrOfProps[_key] = arguments[_key]; - } - - function validate(props, propName, componentName) { - var usedPropCount = arrOfProps.map(function (listedProp) { - return props[listedProp]; - }).reduce(function (acc, curr) { - return acc + (curr !== undefined ? 1 : 0); - }, 0); - - if (usedPropCount > 1) { - var first = arrOfProps[0]; - var others = arrOfProps.slice(1); - - var message = others.join(', ') + ' and ' + first; - return new Error('Invalid prop \'' + propName + '\', only one of the following ' + ('may be provided: ' + message)); - } - } - return validate; - } - - module.exports = exports['default']; - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - /** - * Safe chained function - * - * Will only create a new function if needed, - * otherwise will pass back existing functions or null. - * - * @param {function} functions to chain - * @returns {function|null} - */ - 'use strict'; - - exports.__esModule = true; - function createChainedFunction() { - for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) { - funcs[_key] = arguments[_key]; - } - - return funcs.filter(function (f) { - return f != null; - }).reduce(function (acc, f) { - if (typeof f !== 'function') { - throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.'); - } - - if (acc === null) { - return f; - } - - return function chainedFunction() { - for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } - - acc.apply(this, args); - f.apply(this, args); - }; - }, null); - } - - exports['default'] = createChainedFunction; - module.exports = exports['default']; - -/***/ }, -/* 7 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - /** - * Maps children that are typically specified as `props.children`, - * but only iterates over children that are "valid components". - * - * The mapFunction provided index will be normalised to the components mapped, - * so an invalid component would not increase the index. - * - * @param {?*} children Children tree container. - * @param {function(*, int)} mapFunction. - * @param {*} mapContext Context for mapFunction. - * @return {object} Object containing the ordered map of results. - */ - function mapValidComponents(children, func, context) { - var index = 0; - - return _react2['default'].Children.map(children, function (child) { - if (_react2['default'].isValidElement(child)) { - var lastIndex = index; - index++; - return func.call(context, child, lastIndex); - } - - return child; - }); - } - - /** - * Iterates through children that are typically specified as `props.children`, - * but only iterates over children that are "valid components". - * - * The provided forEachFunc(child, index) will be called for each - * leaf child with the index reflecting the position relative to "valid components". - * - * @param {?*} children Children tree container. - * @param {function(*, int)} forEachFunc. - * @param {*} forEachContext Context for forEachContext. - */ - function forEachValidComponents(children, func, context) { - var index = 0; - - return _react2['default'].Children.forEach(children, function (child) { - if (_react2['default'].isValidElement(child)) { - func.call(context, child, index); - index++; - } - }); - } - - /** - * Count the number of "valid components" in the Children container. - * - * @param {?*} children Children tree container. - * @returns {number} - */ - function numberOfValidComponents(children) { - var count = 0; - - _react2['default'].Children.forEach(children, function (child) { - if (_react2['default'].isValidElement(child)) { - count++; - } - }); - - return count; - } - - /** - * Determine if the Child container has one or more "valid components". - * - * @param {?*} children Children tree container. - * @returns {boolean} - */ - function hasValidComponent(children) { - var hasValid = false; - - _react2['default'].Children.forEach(children, function (child) { - if (!hasValid && _react2['default'].isValidElement(child)) { - hasValid = true; - } - }); - - return hasValid; - } - - function find(children, finder) { - var child = undefined; - - forEachValidComponents(children, function (c, idx) { - if (!child && finder(c, idx, children)) { - child = c; - } - }); - - return child; - } - - /** - * Finds children that are typically specified as `props.children`, - * but only iterates over children that are "valid components". - * - * The provided forEachFunc(child, index) will be called for each - * leaf child with the index reflecting the position relative to "valid components". - * - * @param {?*} children Children tree container. - * @param {function(*, int)} findFunc. - * @param {*} findContext Context for findContext. - * @returns {array} of children that meet the findFunc return statement - */ - function findValidComponents(children, func, context) { - var index = 0; - var returnChildren = []; - - _react2['default'].Children.forEach(children, function (child) { - if (_react2['default'].isValidElement(child)) { - if (func.call(context, child, index)) { - returnChildren.push(child); - } - index++; - } - }); - - return returnChildren; - } - - exports['default'] = { - map: mapValidComponents, - forEach: forEachValidComponents, - numberOf: numberOfValidComponents, - find: find, - findValidComponents: findValidComponents, - hasValidComponent: hasValidComponent - }; - module.exports = exports['default']; - -/***/ }, -/* 8 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _PanelGroup = __webpack_require__(25); - - var _PanelGroup2 = _interopRequireDefault(_PanelGroup); - - var Accordion = _react2['default'].createClass({ - displayName: 'Accordion', - - render: function render() { - return _react2['default'].createElement( - _PanelGroup2['default'], - _extends({}, this.props, { accordion: true }), - this.props.children - ); - } - }); - - exports['default'] = Accordion; - module.exports = exports['default']; - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - var _Object$assign = __webpack_require__(10)["default"]; - - exports["default"] = _Object$assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - - exports.__esModule = true; - -/***/ }, -/* 10 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(11), __esModule: true }; - -/***/ }, -/* 11 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(12); - module.exports = __webpack_require__(15).Object.assign; - -/***/ }, -/* 12 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $def = __webpack_require__(13); - - $def($def.S + $def.F, 'Object', {assign: __webpack_require__(16)}); - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(14) - , core = __webpack_require__(15) - , PROTOTYPE = 'prototype'; - var ctx = function(fn, that){ - return function(){ - return fn.apply(that, arguments); - }; - }; - var $def = function(type, name, source){ - var key, own, out, exp - , isGlobal = type & $def.G - , isProto = type & $def.P - , target = isGlobal ? global : type & $def.S - ? global[name] : (global[name] || {})[PROTOTYPE] - , exports = isGlobal ? core : core[name] || (core[name] = {}); - if(isGlobal)source = name; - for(key in source){ - // contains in native - own = !(type & $def.F) && target && key in target; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - if(isGlobal && typeof target[key] != 'function')exp = source[key]; - // bind timers to global for call from export context - else if(type & $def.B && own)exp = ctx(out, global); - // wrap global constructors for prevent change them in library - else if(type & $def.W && target[key] == out)!function(C){ - exp = function(param){ - return this instanceof C ? new C(param) : C(param); - }; - exp[PROTOTYPE] = C[PROTOTYPE]; - }(out); - else exp = isProto && typeof out == 'function' ? ctx(Function.call, out) : out; - // export - exports[key] = exp; - if(isProto)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out; - } - }; - // type bitmap - $def.F = 1; // forced - $def.G = 2; // global - $def.S = 4; // static - $def.P = 8; // proto - $def.B = 16; // bind - $def.W = 32; // wrap - module.exports = $def; - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var UNDEFINED = 'undefined'; - var global = module.exports = typeof window != UNDEFINED && window.Math == Math - ? window : typeof self != UNDEFINED && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '1.2.1'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 16 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.1 Object.assign(target, source, ...) - var toObject = __webpack_require__(17) - , IObject = __webpack_require__(19) - , enumKeys = __webpack_require__(21) - , has = __webpack_require__(23); - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = __webpack_require__(24)(function(){ - var a = Object.assign - , A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , l = arguments.length - , i = 1; - while(l > i){ - var S = IObject(arguments[i++]) - , keys = enumKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(has(S, key = keys[j++]))T[key] = S[key]; - } - return T; - } : Object.assign; - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(18); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 19 */ -/***/ function(module, exports, __webpack_require__) { - - // indexed object, fallback for non-array-like ES3 strings - var cof = __webpack_require__(20); - module.exports = 0 in Object('z') ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - // all enumerable object keys, includes symbols - var $ = __webpack_require__(22); - module.exports = function(it){ - var keys = $.getKeys(it) - , getSymbols = $.getSymbols; - if(getSymbols){ - var symbols = getSymbols(it) - , isEnum = $.isEnum - , i = 0 - , key; - while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key); - } - return keys; - }; - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - var $Object = Object; - module.exports = { - create: $Object.create, - getProto: $Object.getPrototypeOf, - isEnum: {}.propertyIsEnumerable, - getDesc: $Object.getOwnPropertyDescriptor, - setDesc: $Object.defineProperty, - setDescs: $Object.defineProperties, - getKeys: $Object.keys, - getNames: $Object.getOwnPropertyNames, - getSymbols: $Object.getOwnPropertySymbols, - each: [].forEach - }; - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - /* eslint react/prop-types: [2, {ignore: "bsStyle"}] */ - /* BootstrapMixin contains `bsStyle` type validation */ - - 'use strict'; - - var _objectWithoutProperties = __webpack_require__(26)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _BootstrapMixin = __webpack_require__(28); - - var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin); - - var _utilsValidComponentChildren = __webpack_require__(7); - - var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); - - var PanelGroup = _react2['default'].createClass({ - displayName: 'PanelGroup', - - mixins: [_BootstrapMixin2['default']], - - propTypes: { - accordion: _react2['default'].PropTypes.bool, - activeKey: _react2['default'].PropTypes.any, - className: _react2['default'].PropTypes.string, - children: _react2['default'].PropTypes.node, - defaultActiveKey: _react2['default'].PropTypes.any, - onSelect: _react2['default'].PropTypes.func - }, - - getDefaultProps: function getDefaultProps() { - return { - accordion: false, - bsClass: 'panel-group' - }; - }, - - getInitialState: function getInitialState() { - var defaultActiveKey = this.props.defaultActiveKey; - - return { - activeKey: defaultActiveKey - }; - }, - - render: function render() { - var classes = this.getBsClassSet(); - var _props = this.props; - var className = _props.className; - - var props = _objectWithoutProperties(_props, ['className']); - - if (this.props.accordion) { - props.role = 'tablist'; - } - return _react2['default'].createElement( - 'div', - _extends({}, props, { className: _classnames2['default'](className, classes), onSelect: null }), - _utilsValidComponentChildren2['default'].map(props.children, this.renderPanel) - ); - }, - - renderPanel: function renderPanel(child, index) { - var activeKey = this.props.activeKey != null ? this.props.activeKey : this.state.activeKey; - - var props = { - bsStyle: child.props.bsStyle || this.props.bsStyle, - key: child.key ? child.key : index, - ref: child.ref - }; - - if (this.props.accordion) { - props.headerRole = 'tab'; - props.panelRole = 'tabpanel'; - props.collapsible = true; - props.expanded = child.props.eventKey === activeKey; - props.onSelect = this.handleSelect; - } - - return _react.cloneElement(child, props); - }, - - shouldComponentUpdate: function shouldComponentUpdate() { - // Defer any updates to this component during the `onSelect` handler. - return !this._isChanging; - }, - - handleSelect: function handleSelect(e, key) { - e.preventDefault(); - - if (this.props.onSelect) { - this._isChanging = true; - this.props.onSelect(key); - this._isChanging = false; - } - - if (this.state.activeKey === key) { - key = null; - } - - this.setState({ - activeKey: key - }); - } - }); - - exports['default'] = PanelGroup; - module.exports = exports['default']; - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - "use strict"; - - exports["default"] = function (obj, keys) { - var target = {}; - - for (var i in obj) { - if (keys.indexOf(i) >= 0) continue; - if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; - target[i] = obj[i]; - } - - return target; - }; - - exports.__esModule = true; - -/***/ }, -/* 27 */ -/***/ function(module, exports, __webpack_require__) { - - var __WEBPACK_AMD_DEFINE_RESULT__;/*! - Copyright (c) 2015 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames - */ - /* global define */ - - (function () { - 'use strict'; - - var hasOwn = {}.hasOwnProperty; - - function classNames () { - var classes = ''; - - for (var i = 0; i < arguments.length; i++) { - var arg = arguments[i]; - if (!arg) continue; - - var argType = typeof arg; - - if (argType === 'string' || argType === 'number') { - classes += ' ' + arg; - } else if (Array.isArray(arg)) { - classes += ' ' + classNames.apply(null, arg); - } else if (argType === 'object') { - for (var key in arg) { - if (hasOwn.call(arg, key) && arg[key]) { - classes += ' ' + key; - } - } - } - } - - return classes.substr(1); - } - - if (typeof module !== 'undefined' && module.exports) { - module.exports = classNames; - } else if (true) { - // register as 'classnames', consistent with npm package name - !(__WEBPACK_AMD_DEFINE_RESULT__ = function () { - return classNames; - }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else { - window.classNames = classNames; - } - }()); - - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _styleMaps = __webpack_require__(29); - - var _styleMaps2 = _interopRequireDefault(_styleMaps); - - var _reactPropTypesLibKeyOf = __webpack_require__(30); - - var _reactPropTypesLibKeyOf2 = _interopRequireDefault(_reactPropTypesLibKeyOf); - - var BootstrapMixin = { - propTypes: { - /** - * bootstrap className - * @private - */ - bsClass: _reactPropTypesLibKeyOf2['default'](_styleMaps2['default'].CLASSES), - /** - * Style variants - * @type {("default"|"primary"|"success"|"info"|"warning"|"danger"|"link")} - */ - bsStyle: _react2['default'].PropTypes.oneOf(_styleMaps2['default'].STYLES), - /** - * Size variants - * @type {("xsmall"|"small"|"medium"|"large"|"xs"|"sm"|"md"|"lg")} - */ - bsSize: _reactPropTypesLibKeyOf2['default'](_styleMaps2['default'].SIZES) - }, - - getBsClassSet: function getBsClassSet() { - var classes = {}; - - var bsClass = this.props.bsClass && _styleMaps2['default'].CLASSES[this.props.bsClass]; - if (bsClass) { - classes[bsClass] = true; - - var prefix = bsClass + '-'; - - var bsSize = this.props.bsSize && _styleMaps2['default'].SIZES[this.props.bsSize]; - if (bsSize) { - classes[prefix + bsSize] = true; - } - - if (this.props.bsStyle) { - if (_styleMaps2['default'].STYLES.indexOf(this.props.bsStyle) >= 0) { - classes[prefix + this.props.bsStyle] = true; - } else { - classes[this.props.bsStyle] = true; - } - } - } - - return classes; - }, - - prefixClass: function prefixClass(subClass) { - return _styleMaps2['default'].CLASSES[this.props.bsClass] + '-' + subClass; - } - }; - - exports['default'] = BootstrapMixin; - module.exports = exports['default']; - -/***/ }, -/* 29 */ -/***/ function(module, exports) { - - 'use strict'; - - exports.__esModule = true; - var styleMaps = { - CLASSES: { - 'alert': 'alert', - 'button': 'btn', - 'button-group': 'btn-group', - 'button-toolbar': 'btn-toolbar', - 'column': 'col', - 'input-group': 'input-group', - 'form': 'form', - 'glyphicon': 'glyphicon', - 'label': 'label', - 'thumbnail': 'thumbnail', - 'list-group-item': 'list-group-item', - 'panel': 'panel', - 'panel-group': 'panel-group', - 'pagination': 'pagination', - 'progress-bar': 'progress-bar', - 'nav': 'nav', - 'navbar': 'navbar', - 'modal': 'modal', - 'row': 'row', - 'well': 'well' - }, - STYLES: ['default', 'primary', 'success', 'info', 'warning', 'danger', 'link', 'inline', 'tabs', 'pills'], - addStyle: function addStyle(name) { - styleMaps.STYLES.push(name); - }, - SIZES: { - 'large': 'lg', - 'medium': 'md', - 'small': 'sm', - 'xsmall': 'xs', - 'lg': 'lg', - 'md': 'md', - 'sm': 'sm', - 'xs': 'xs' - }, - GRID_COLUMNS: 12 - }; - - exports['default'] = styleMaps; - module.exports = exports['default']; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - exports.__esModule = true; - exports['default'] = keyOf; - - var _common = __webpack_require__(31); - - /** - * Checks whether a prop matches a key of an associated object - * - * @param props - * @param propName - * @param componentName - * @returns {Error|undefined} - */ - - function keyOf(obj) { - function validate(props, propName, componentName) { - var propValue = props[propName]; - if (!obj.hasOwnProperty(propValue)) { - var valuesString = JSON.stringify(Object.keys(obj)); - return new Error(_common.errMsg(props, propName, componentName, ', expected one of ' + valuesString + '.')); - } - } - return _common.createChainableTypeChecker(validate); - } - - module.exports = exports['default']; - -/***/ }, -/* 31 */ -/***/ function(module, exports) { - - 'use strict'; - - exports.__esModule = true; - exports.errMsg = errMsg; - exports.createChainableTypeChecker = createChainableTypeChecker; - - function errMsg(props, propName, componentName, msgContinuation) { - return 'Invalid prop \'' + propName + '\' of value \'' + props[propName] + '\'' + (' supplied to \'' + componentName + '\'' + msgContinuation); - } - - /** - * Create chain-able isRequired validator - * - * Largely copied directly from: - * https://github.com/facebook/react/blob/0.11-stable/src/core/ReactPropTypes.js#L94 - */ - - function createChainableTypeChecker(validate) { - function checkType(isRequired, props, propName, componentName) { - componentName = componentName || '<<anonymous>>'; - if (props[propName] == null) { - if (isRequired) { - return new Error('Required prop \'' + propName + '\' was not specified in \'' + componentName + '\'.'); - } - } else { - return validate(props, propName, componentName); - } - } - - var chainedCheckType = checkType.bind(null, false); - chainedCheckType.isRequired = checkType.bind(null, true); - - return chainedCheckType; - } - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _AffixMixin = __webpack_require__(33); - - var _AffixMixin2 = _interopRequireDefault(_AffixMixin); - - var Affix = _react2['default'].createClass({ - displayName: 'Affix', - - mixins: [_AffixMixin2['default']], - - render: function render() { - var holderStyle = _extends({ - top: this.state.affixPositionTop - }, this.props.style); - - // eslint-disable-line react/prop-types - return _react2['default'].createElement( - 'div', - _extends({}, this.props, { - className: _classnames2['default'](this.props.className, this.state.affixClass), - style: holderStyle }), - this.props.children - ); - } - }); - - exports['default'] = Affix; - module.exports = exports['default']; - // we don't want to expose the `style` property - -/***/ }, -/* 33 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _reactDom = __webpack_require__(34); - - var _reactDom2 = _interopRequireDefault(_reactDom); - - var _utilsDomUtils = __webpack_require__(35); - - var _utilsDomUtils2 = _interopRequireDefault(_utilsDomUtils); - - var _domHelpersQueryOffset = __webpack_require__(39); - - var _domHelpersQueryOffset2 = _interopRequireDefault(_domHelpersQueryOffset); - - var _utilsEventListener = __webpack_require__(43); - - var _utilsEventListener2 = _interopRequireDefault(_utilsEventListener); - - var AffixMixin = { - propTypes: { - offset: _react2['default'].PropTypes.number, - offsetTop: _react2['default'].PropTypes.number, - offsetBottom: _react2['default'].PropTypes.number - }, - - getInitialState: function getInitialState() { - return { - affixClass: 'affix-top' - }; - }, - - getPinnedOffset: function getPinnedOffset(DOMNode) { - if (this.pinnedOffset) { - return this.pinnedOffset; - } - - DOMNode.className = DOMNode.className.replace(/affix-top|affix-bottom|affix/, ''); - DOMNode.className += DOMNode.className.length ? ' affix' : 'affix'; - - this.pinnedOffset = _domHelpersQueryOffset2['default'](DOMNode).top - window.pageYOffset; - - return this.pinnedOffset; - }, - - checkPosition: function checkPosition() { - var DOMNode = undefined, - scrollHeight = undefined, - scrollTop = undefined, - position = undefined, - offsetTop = undefined, - offsetBottom = undefined, - affix = undefined, - affixType = undefined, - affixPositionTop = undefined; - - // TODO: or not visible - if (!this.isMounted()) { - return; - } - - DOMNode = _reactDom2['default'].findDOMNode(this); - scrollHeight = _utilsDomUtils2['default'].getDocumentHeight(); - scrollTop = window.pageYOffset; - position = _domHelpersQueryOffset2['default'](DOMNode); - - if (this.affixed === 'top') { - position.top += scrollTop; - } - - offsetTop = this.props.offsetTop != null ? this.props.offsetTop : this.props.offset; - offsetBottom = this.props.offsetBottom != null ? this.props.offsetBottom : this.props.offset; - - if (offsetTop == null && offsetBottom == null) { - return; - } - if (offsetTop == null) { - offsetTop = 0; - } - if (offsetBottom == null) { - offsetBottom = 0; - } - - if (this.unpin != null && scrollTop + this.unpin <= position.top) { - affix = false; - } else if (offsetBottom != null && position.top + DOMNode.offsetHeight >= scrollHeight - offsetBottom) { - affix = 'bottom'; - } else if (offsetTop != null && scrollTop <= offsetTop) { - affix = 'top'; - } else { - affix = false; - } - - if (this.affixed === affix) { - return; - } - - if (this.unpin != null) { - DOMNode.style.top = ''; - } - - affixType = 'affix' + (affix ? '-' + affix : ''); - - this.affixed = affix; - this.unpin = affix === 'bottom' ? this.getPinnedOffset(DOMNode) : null; - - if (affix === 'bottom') { - DOMNode.className = DOMNode.className.replace(/affix-top|affix-bottom|affix/, 'affix-bottom'); - affixPositionTop = scrollHeight - offsetBottom - DOMNode.offsetHeight - _domHelpersQueryOffset2['default'](DOMNode).top; - } - - this.setState({ - affixClass: affixType, - affixPositionTop: affixPositionTop - }); - }, - - checkPositionWithEventLoop: function checkPositionWithEventLoop() { - setTimeout(this.checkPosition, 0); - }, - - componentDidMount: function componentDidMount() { - this._onWindowScrollListener = _utilsEventListener2['default'].listen(window, 'scroll', this.checkPosition); - this._onDocumentClickListener = _utilsEventListener2['default'].listen(_utilsDomUtils2['default'].ownerDocument(this), 'click', this.checkPositionWithEventLoop); - }, - - componentWillUnmount: function componentWillUnmount() { - if (this._onWindowScrollListener) { - this._onWindowScrollListener.remove(); - } - - if (this._onDocumentClickListener) { - this._onDocumentClickListener.remove(); - } - }, - - componentDidUpdate: function componentDidUpdate(prevProps, prevState) { - if (prevState.affixClass === this.state.affixClass) { - this.checkPositionWithEventLoop(); - } - } - }; - - exports['default'] = AffixMixin; - module.exports = exports['default']; - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - module.exports = __WEBPACK_EXTERNAL_MODULE_34__; - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _reactDom = __webpack_require__(34); - - var _reactDom2 = _interopRequireDefault(_reactDom); - - var _domHelpersOwnerDocument = __webpack_require__(36); - - var _domHelpersOwnerDocument2 = _interopRequireDefault(_domHelpersOwnerDocument); - - var _domHelpersOwnerWindow = __webpack_require__(37); - - var _domHelpersOwnerWindow2 = _interopRequireDefault(_domHelpersOwnerWindow); - - function ownerDocument(componentOrElement) { - var elem = _reactDom2['default'].findDOMNode(componentOrElement); - return _domHelpersOwnerDocument2['default'](elem && elem.ownerDocument || document); - } - - function ownerWindow(componentOrElement) { - var doc = ownerDocument(componentOrElement); - return _domHelpersOwnerWindow2['default'](doc); - } - - /** - * Get the height of the document - * - * @returns {documentHeight: number} - */ - function getDocumentHeight() { - return Math.max(document.documentElement.offsetHeight, document.height, document.body.scrollHeight, document.body.offsetHeight); - } - - /** - * Get an element's size - * - * @param {HTMLElement} elem - * @returns {{width: number, height: number}} - */ - function getSize(elem) { - var rect = { - width: elem.offsetWidth || 0, - height: elem.offsetHeight || 0 - }; - if (typeof elem.getBoundingClientRect !== 'undefined') { - var _elem$getBoundingClientRect = elem.getBoundingClientRect(); - - var width = _elem$getBoundingClientRect.width; - var height = _elem$getBoundingClientRect.height; - - rect.width = width || rect.width; - rect.height = height || rect.height; - } - return rect; - } - - exports['default'] = { - ownerWindow: ownerWindow, - ownerDocument: ownerDocument, - getDocumentHeight: getDocumentHeight, - getSize: getSize - }; - module.exports = exports['default']; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - "use strict"; - - exports.__esModule = true; - exports["default"] = ownerDocument; - - function ownerDocument(node) { - return node && node.ownerDocument || document; - } - - module.exports = exports["default"]; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var babelHelpers = __webpack_require__(38); - - exports.__esModule = true; - exports['default'] = ownerWindow; - - var _ownerDocument = __webpack_require__(36); - - var _ownerDocument2 = babelHelpers.interopRequireDefault(_ownerDocument); - - function ownerWindow(node) { - var doc = (0, _ownerDocument2['default'])(node); - return doc && doc.defaultView || doc.parentWindow; - } - - module.exports = exports['default']; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (root, factory) { - if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else if (typeof exports === "object") { - factory(exports); - } else { - factory(root.babelHelpers = {}); - } - })(this, function (global) { - var babelHelpers = global; - - babelHelpers.interopRequireDefault = function (obj) { - return obj && obj.__esModule ? obj : { - "default": obj - }; - }; - - babelHelpers._extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - }) - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var contains = __webpack_require__(40), - getWindow = __webpack_require__(42), - ownerDocument = __webpack_require__(36); - - module.exports = function offset(node) { - var doc = ownerDocument(node), - win = getWindow(doc), - docElem = doc && doc.documentElement, - box = { top: 0, left: 0, height: 0, width: 0 }; - - if (!doc) return; - - // Make sure it's not a disconnected DOM node - if (!contains(docElem, node)) return box; - - if (node.getBoundingClientRect !== undefined) box = node.getBoundingClientRect(); - - if (box.width || box.height) { - - box = { - top: box.top + (win.pageYOffset || docElem.scrollTop) - (docElem.clientTop || 0), - left: box.left + (win.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || 0), - width: (box.width == null ? node.offsetWidth : box.width) || 0, - height: (box.height == null ? node.offsetHeight : box.height) || 0 - }; - } - - return box; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var canUseDOM = __webpack_require__(41); - - var contains = (function () { - var root = canUseDOM && document.documentElement; - - return root && root.contains ? function (context, node) { - return context.contains(node); - } : root && root.compareDocumentPosition ? function (context, node) { - return context === node || !!(context.compareDocumentPosition(node) & 16); - } : function (context, node) { - if (node) do { - if (node === context) return true; - } while (node = node.parentNode); - - return false; - }; - })(); - - module.exports = contains; - -/***/ }, -/* 41 */ -/***/ function(module, exports) { - - 'use strict'; - module.exports = !!(typeof window !== 'undefined' && window.document && window.document.createElement); - -/***/ }, -/* 42 */ -/***/ function(module, exports) { - - 'use strict'; - - module.exports = function getWindow(node) { - return node === node.window ? node : node.nodeType === 9 ? node.defaultView || node.parentWindow : false; - }; - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - /** - * Copyright 2013-2014 Facebook, Inc. - * - * This file contains a modified version of: - * https://github.com/facebook/react/blob/v0.12.0/src/vendor/stubs/EventListener.js - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * TODO: remove in favour of solution provided by: - * https://github.com/facebook/react/issues/285 - */ - - /** - * Does not take into account specific nature of platform. - */ - 'use strict'; - - exports.__esModule = true; - var EventListener = { - /** - * Listen to DOM events during the bubble phase. - * - * @param {DOMEventTarget} target DOM element to register listener on. - * @param {string} eventType Event type, e.g. 'click' or 'mouseover'. - * @param {function} callback Callback function. - * @return {object} Object with a `remove` method. - */ - listen: function listen(target, eventType, callback) { - if (target.addEventListener) { - target.addEventListener(eventType, callback, false); - return { - remove: function remove() { - target.removeEventListener(eventType, callback, false); - } - }; - } else if (target.attachEvent) { - target.attachEvent('on' + eventType, callback); - return { - remove: function remove() { - target.detachEvent('on' + eventType, callback); - } - }; - } - } - }; - - exports['default'] = EventListener; - module.exports = exports['default']; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _BootstrapMixin = __webpack_require__(28); - - var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin); - - var Alert = _react2['default'].createClass({ - displayName: 'Alert', - - mixins: [_BootstrapMixin2['default']], - - propTypes: { - onDismiss: _react2['default'].PropTypes.func, - dismissAfter: _react2['default'].PropTypes.number, - closeLabel: _react2['default'].PropTypes.string - }, - - getDefaultProps: function getDefaultProps() { - return { - bsClass: 'alert', - bsStyle: 'info', - closeLabel: 'Close Alert' - }; - }, - - renderDismissButton: function renderDismissButton() { - return _react2['default'].createElement( - 'button', - { - type: 'button', - className: 'close', - onClick: this.props.onDismiss, - 'aria-hidden': 'true' }, - _react2['default'].createElement( - 'span', - null, - '×' - ) - ); - }, - - renderSrOnlyDismissButton: function renderSrOnlyDismissButton() { - return _react2['default'].createElement( - 'button', - { - type: 'button', - className: 'close sr-only', - onClick: this.props.onDismiss }, - this.props.closeLabel - ); - }, - - render: function render() { - var classes = this.getBsClassSet(); - var isDismissable = !!this.props.onDismiss; - - classes['alert-dismissable'] = isDismissable; - - return _react2['default'].createElement( - 'div', - _extends({}, this.props, { role: 'alert', className: _classnames2['default'](this.props.className, classes) }), - isDismissable ? this.renderDismissButton() : null, - this.props.children, - isDismissable ? this.renderSrOnlyDismissButton() : null - ); - }, - - componentDidMount: function componentDidMount() { - if (this.props.dismissAfter && this.props.onDismiss) { - this.dismissTimer = setTimeout(this.props.onDismiss, this.props.dismissAfter); - } - }, - - componentWillUnmount: function componentWillUnmount() { - clearTimeout(this.dismissTimer); - } - }); - - exports['default'] = Alert; - module.exports = exports['default']; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _utilsValidComponentChildren = __webpack_require__(7); - - var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var Badge = _react2['default'].createClass({ - displayName: 'Badge', - - propTypes: { - pullRight: _react2['default'].PropTypes.bool - }, - - getDefaultProps: function getDefaultProps() { - return { - pullRight: false - }; - }, - - hasContent: function hasContent() { - return _utilsValidComponentChildren2['default'].hasValidComponent(this.props.children) || _react2['default'].Children.count(this.props.children) > 1 || typeof this.props.children === 'string' || typeof this.props.children === 'number'; - }, - - render: function render() { - var classes = { - 'pull-right': this.props.pullRight, - 'badge': this.hasContent() - }; - return _react2['default'].createElement( - 'span', - _extends({}, this.props, { - className: _classnames2['default'](this.props.className, classes) }), - this.props.children - ); - } - }); - - exports['default'] = Badge; - module.exports = exports['default']; - -/***/ }, -/* 46 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _objectWithoutProperties = __webpack_require__(26)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _utilsValidComponentChildren = __webpack_require__(7); - - var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); - - var Breadcrumb = _react2['default'].createClass({ - displayName: 'Breadcrumb', - - propTypes: { - /** - * bootstrap className - * @private - */ - bsClass: _react2['default'].PropTypes.string - }, - - getDefaultProps: function getDefaultProps() { - return { - bsClass: 'breadcrumb' - }; - }, - - render: function render() { - var _props = this.props; - var className = _props.className; - - var props = _objectWithoutProperties(_props, ['className']); - - return _react2['default'].createElement( - 'ol', - _extends({}, props, { - role: 'navigation', - 'aria-label': 'breadcrumbs', - className: _classnames2['default'](className, this.props.bsClass) }), - _utilsValidComponentChildren2['default'].map(this.props.children, this.renderBreadcrumbItem) - ); - }, - - renderBreadcrumbItem: function renderBreadcrumbItem(child, index) { - return _react.cloneElement(child, { key: child.key ? child.key : index }); - } - }); - - exports['default'] = Breadcrumb; - module.exports = exports['default']; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _objectWithoutProperties = __webpack_require__(26)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _warning = __webpack_require__(48); - - var _warning2 = _interopRequireDefault(_warning); - - var _SafeAnchor = __webpack_require__(49); - - var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor); - - var BreadcrumbItem = _react2['default'].createClass({ - displayName: 'BreadcrumbItem', - - propTypes: { - /** - * If set to true, renders `span` instead of `a` - */ - active: _react2['default'].PropTypes.bool, - /** - * HTML id for the wrapper `li` element - */ - id: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]), - /** - * HTML id for the inner `a` element - */ - linkId: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]), - /** - * `href` attribute for the inner `a` element - */ - href: _react2['default'].PropTypes.string, - /** - * `title` attribute for the inner `a` element - */ - title: _react2['default'].PropTypes.node, - /** - * `target` attribute for the inner `a` element - */ - target: _react2['default'].PropTypes.string - }, - - getDefaultProps: function getDefaultProps() { - return { - active: false - }; - }, - - render: function render() { - var _props = this.props; - var active = _props.active; - var className = _props.className; - var id = _props.id; - var linkId = _props.linkId; - var children = _props.children; - var href = _props.href; - var title = _props.title; - var target = _props.target; - - var props = _objectWithoutProperties(_props, ['active', 'className', 'id', 'linkId', 'children', 'href', 'title', 'target']); - - _warning2['default'](!(href && active), '[react-bootstrap] `href` and `active` properties cannot be set at the same time'); - - var linkProps = { - href: href, - title: title, - target: target, - id: linkId - }; - - return _react2['default'].createElement( - 'li', - { id: id, className: _classnames2['default'](className, { active: active }) }, - active ? _react2['default'].createElement( - 'span', - props, - children - ) : _react2['default'].createElement( - _SafeAnchor2['default'], - _extends({}, props, linkProps), - children - ) - ); - } - }); - - exports['default'] = BreadcrumbItem; - module.exports = exports['default']; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - /** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - - 'use strict'; - - /** - * Similar to invariant but only logs a warning if the condition is not met. - * This can be used to log issues in development environments in critical - * paths. Removing the logging code for production environments will keep the - * same logic and follow the same code paths. - */ - - var warning = function() {}; - - if (true) { - warning = function(condition, format, args) { - var len = arguments.length; - args = new Array(len > 2 ? len - 2 : 0); - for (var key = 2; key < len; key++) { - args[key - 2] = arguments[key]; - } - if (format === undefined) { - throw new Error( - '`warning(condition, format, ...args)` requires a warning ' + - 'message argument' - ); - } - - if (format.length < 10 || (/^[s\W]*$/).test(format)) { - throw new Error( - 'The warning format should be able to uniquely identify this ' + - 'warning. Please, use a more descriptive format than: ' + format - ); - } - - if (!condition) { - var argIndex = 0; - var message = 'Warning: ' + - format.replace(/%s/g, function() { - return args[argIndex++]; - }); - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch(x) {} - } - }; - } - - module.exports = warning; - - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _utilsCreateChainedFunction = __webpack_require__(6); - - var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); - - /** - * Note: This is intended as a stop-gap for accessibility concerns that the - * Bootstrap CSS does not address as they have styled anchors and not buttons - * in many cases. - */ - - var SafeAnchor = (function (_React$Component) { - _inherits(SafeAnchor, _React$Component); - - function SafeAnchor(props) { - _classCallCheck(this, SafeAnchor); - - _React$Component.call(this, props); - - this.handleClick = this.handleClick.bind(this); - } - - SafeAnchor.prototype.handleClick = function handleClick(event) { - if (this.props.href === undefined) { - event.preventDefault(); - } - }; - - SafeAnchor.prototype.render = function render() { - return _react2['default'].createElement('a', _extends({ role: this.props.href ? undefined : 'button' - }, this.props, { - onClick: _utilsCreateChainedFunction2['default'](this.props.onClick, this.handleClick), - href: this.props.href || '' })); - }; - - return SafeAnchor; - })(_react2['default'].Component); - - exports['default'] = SafeAnchor; - - SafeAnchor.propTypes = { - href: _react2['default'].PropTypes.string, - onClick: _react2['default'].PropTypes.func - }; - module.exports = exports['default']; - -/***/ }, -/* 50 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - var _Object$create = __webpack_require__(51)["default"]; - - var _Object$setPrototypeOf = __webpack_require__(53)["default"]; - - exports["default"] = function (subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); - } - - subClass.prototype = _Object$create(superClass && superClass.prototype, { - constructor: { - value: subClass, - enumerable: false, - writable: true, - configurable: true - } - }); - if (superClass) _Object$setPrototypeOf ? _Object$setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; - }; - - exports.__esModule = true; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(52), __esModule: true }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - var $ = __webpack_require__(22); - module.exports = function create(P, D){ - return $.create(P, D); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(54), __esModule: true }; - -/***/ }, -/* 54 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(55); - module.exports = __webpack_require__(15).Object.setPrototypeOf; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.19 Object.setPrototypeOf(O, proto) - var $def = __webpack_require__(13); - $def($def.S, 'Object', {setPrototypeOf: __webpack_require__(56).set}); - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // Works with __proto__ only. Old v8 can't work with null proto objects. - /* eslint-disable no-proto */ - var getDesc = __webpack_require__(22).getDesc - , isObject = __webpack_require__(57) - , anObject = __webpack_require__(58); - var check = function(O, proto){ - anObject(O); - if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!"); - }; - module.exports = { - set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line no-proto - function(test, buggy, set){ - try { - set = __webpack_require__(59)(Function.call, getDesc(Object.prototype, '__proto__').set, 2); - set(test, []); - buggy = !(test instanceof Array); - } catch(e){ buggy = true; } - return function setPrototypeOf(O, proto){ - check(O, proto); - if(buggy)O.__proto__ = proto; - else set(O, proto); - return O; - }; - }({}, false) : undefined), - check: check - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(57); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(60); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - "use strict"; - - exports["default"] = function (instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - }; - - exports.__esModule = true; - -/***/ }, -/* 62 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _BootstrapMixin = __webpack_require__(28); - - var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin); - - var _reactPropTypesLibElementType = __webpack_require__(63); - - var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); - - var _ButtonInput = __webpack_require__(64); - - var _ButtonInput2 = _interopRequireDefault(_ButtonInput); - - var Button = _react2['default'].createClass({ - displayName: 'Button', - - mixins: [_BootstrapMixin2['default']], - - propTypes: { - active: _react2['default'].PropTypes.bool, - disabled: _react2['default'].PropTypes.bool, - block: _react2['default'].PropTypes.bool, - navItem: _react2['default'].PropTypes.bool, - navDropdown: _react2['default'].PropTypes.bool, - /** - * You can use a custom element for this component - */ - componentClass: _reactPropTypesLibElementType2['default'], - href: _react2['default'].PropTypes.string, - target: _react2['default'].PropTypes.string, - /** - * Defines HTML button type Attribute - * @type {("button"|"reset"|"submit")} - * @defaultValue 'button' - */ - type: _react2['default'].PropTypes.oneOf(_ButtonInput2['default'].types) - }, - - getDefaultProps: function getDefaultProps() { - return { - active: false, - block: false, - bsClass: 'button', - bsStyle: 'default', - disabled: false, - navItem: false, - navDropdown: false - }; - }, - - render: function render() { - var classes = this.props.navDropdown ? {} : this.getBsClassSet(); - var renderFuncName = undefined; - - classes = _extends({ - active: this.props.active, - 'btn-block': this.props.block - }, classes); - - if (this.props.navItem) { - return this.renderNavItem(classes); - } - - renderFuncName = this.props.href || this.props.target || this.props.navDropdown ? 'renderAnchor' : 'renderButton'; - - return this[renderFuncName](classes); - }, - - renderAnchor: function renderAnchor(classes) { - var Component = this.props.componentClass || 'a'; - var href = this.props.href || '#'; - classes.disabled = this.props.disabled; - - return _react2['default'].createElement( - Component, - _extends({}, this.props, { - href: href, - className: _classnames2['default'](this.props.className, classes), - role: 'button' }), - this.props.children - ); - }, - - renderButton: function renderButton(classes) { - var Component = this.props.componentClass || 'button'; - - return _react2['default'].createElement( - Component, - _extends({}, this.props, { - type: this.props.type || 'button', - className: _classnames2['default'](this.props.className, classes) }), - this.props.children - ); - }, - - renderNavItem: function renderNavItem(classes) { - var liClasses = { - active: this.props.active - }; - - return _react2['default'].createElement( - 'li', - { className: _classnames2['default'](liClasses) }, - this.renderAnchor(classes) - ); - } - }); - - exports['default'] = Button; - module.exports = exports['default']; - -/***/ }, -/* 63 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - exports.__esModule = true; - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _common = __webpack_require__(31); - - /** - * Checks whether a prop provides a type of element. - * - * The type of element can be provided in two forms: - * - tag name (string) - * - a return value of React.createClass(...) - * - * @param props - * @param propName - * @param componentName - * @returns {Error|undefined} - */ - - function validate(props, propName, componentName) { - var errBeginning = _common.errMsg(props, propName, componentName, '. Expected an Element `type`'); - - if (typeof props[propName] !== 'function') { - if (_react2['default'].isValidElement(props[propName])) { - return new Error(errBeginning + ', not an actual Element'); - } - - if (typeof props[propName] !== 'string') { - return new Error(errBeginning + ' such as a tag name or return value of React.createClass(...)'); - } - } - } - - exports['default'] = _common.createChainableTypeChecker(validate); - module.exports = exports['default']; - -/***/ }, -/* 64 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _objectWithoutProperties = __webpack_require__(26)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _Button = __webpack_require__(62); - - var _Button2 = _interopRequireDefault(_Button); - - var _FormGroup = __webpack_require__(65); - - var _FormGroup2 = _interopRequireDefault(_FormGroup); - - var _InputBase2 = __webpack_require__(66); - - var _InputBase3 = _interopRequireDefault(_InputBase2); - - var _utilsChildrenValueInputValidation = __webpack_require__(3); - - var _utilsChildrenValueInputValidation2 = _interopRequireDefault(_utilsChildrenValueInputValidation); - - var ButtonInput = (function (_InputBase) { - _inherits(ButtonInput, _InputBase); - - function ButtonInput() { - _classCallCheck(this, ButtonInput); - - _InputBase.apply(this, arguments); - } - - ButtonInput.prototype.renderFormGroup = function renderFormGroup(children) { - var _props = this.props; - var bsStyle = _props.bsStyle; - var value = _props.value; - - var other = _objectWithoutProperties(_props, ['bsStyle', 'value']); - - return _react2['default'].createElement( - _FormGroup2['default'], - other, - children - ); - }; - - ButtonInput.prototype.renderInput = function renderInput() { - var _props2 = this.props; - var children = _props2.children; - var value = _props2.value; - - var other = _objectWithoutProperties(_props2, ['children', 'value']); - - var val = children ? children : value; - return _react2['default'].createElement(_Button2['default'], _extends({}, other, { componentClass: 'input', ref: 'input', key: 'input', value: val })); - }; - - return ButtonInput; - })(_InputBase3['default']); - - ButtonInput.types = ['button', 'reset', 'submit']; - - ButtonInput.defaultProps = { - type: 'button' - }; - - ButtonInput.propTypes = { - type: _react2['default'].PropTypes.oneOf(ButtonInput.types), - bsStyle: function bsStyle() { - // defer to Button propTypes of bsStyle - return null; - }, - children: _utilsChildrenValueInputValidation2['default'], - value: _utilsChildrenValueInputValidation2['default'] - }; - - exports['default'] = ButtonInput; - module.exports = exports['default']; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var FormGroup = (function (_React$Component) { - _inherits(FormGroup, _React$Component); - - function FormGroup() { - _classCallCheck(this, FormGroup); - - _React$Component.apply(this, arguments); - } - - FormGroup.prototype.render = function render() { - var classes = { - 'form-group': !this.props.standalone, - 'form-group-lg': !this.props.standalone && this.props.bsSize === 'large', - 'form-group-sm': !this.props.standalone && this.props.bsSize === 'small', - 'has-feedback': this.props.hasFeedback, - 'has-success': this.props.bsStyle === 'success', - 'has-warning': this.props.bsStyle === 'warning', - 'has-error': this.props.bsStyle === 'error' - }; - - return _react2['default'].createElement( - 'div', - { className: _classnames2['default'](classes, this.props.groupClassName) }, - this.props.children - ); - }; - - return FormGroup; - })(_react2['default'].Component); - - FormGroup.defaultProps = { - hasFeedback: false, - standalone: false - }; - - FormGroup.propTypes = { - standalone: _react2['default'].PropTypes.bool, - hasFeedback: _react2['default'].PropTypes.bool, - bsSize: function bsSize(props) { - if (props.standalone && props.bsSize !== undefined) { - return new Error('bsSize will not be used when `standalone` is set.'); - } - - return _react2['default'].PropTypes.oneOf(['small', 'medium', 'large']).apply(null, arguments); - }, - bsStyle: _react2['default'].PropTypes.oneOf(['success', 'warning', 'error']), - groupClassName: _react2['default'].PropTypes.string - }; - - exports['default'] = FormGroup; - module.exports = exports['default']; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _FormGroup = __webpack_require__(65); - - var _FormGroup2 = _interopRequireDefault(_FormGroup); - - var _Glyphicon = __webpack_require__(67); - - var _Glyphicon2 = _interopRequireDefault(_Glyphicon); - - var InputBase = (function (_React$Component) { - _inherits(InputBase, _React$Component); - - function InputBase() { - _classCallCheck(this, InputBase); - - _React$Component.apply(this, arguments); - } - - InputBase.prototype.getInputDOMNode = function getInputDOMNode() { - return this.refs.input; - }; - - InputBase.prototype.getValue = function getValue() { - if (this.props.type === 'static') { - return this.props.value; - } else if (this.props.type) { - if (this.props.type === 'select' && this.props.multiple) { - return this.getSelectedOptions(); - } - return this.getInputDOMNode().value; - } - throw new Error('Cannot use getValue without specifying input type.'); - }; - - InputBase.prototype.getChecked = function getChecked() { - return this.getInputDOMNode().checked; - }; - - InputBase.prototype.getSelectedOptions = function getSelectedOptions() { - var values = []; - - Array.prototype.forEach.call(this.getInputDOMNode().getElementsByTagName('option'), function (option) { - if (option.selected) { - var value = option.getAttribute('value') || option.innerHtml; - values.push(value); - } - }); - - return values; - }; - - InputBase.prototype.isCheckboxOrRadio = function isCheckboxOrRadio() { - return this.props.type === 'checkbox' || this.props.type === 'radio'; - }; - - InputBase.prototype.isFile = function isFile() { - return this.props.type === 'file'; - }; - - InputBase.prototype.renderInputGroup = function renderInputGroup(children) { - var addonBefore = this.props.addonBefore ? _react2['default'].createElement( - 'span', - { className: 'input-group-addon', key: 'addonBefore' }, - this.props.addonBefore - ) : null; - - var addonAfter = this.props.addonAfter ? _react2['default'].createElement( - 'span', - { className: 'input-group-addon', key: 'addonAfter' }, - this.props.addonAfter - ) : null; - - var buttonBefore = this.props.buttonBefore ? _react2['default'].createElement( - 'span', - { className: 'input-group-btn' }, - this.props.buttonBefore - ) : null; - - var buttonAfter = this.props.buttonAfter ? _react2['default'].createElement( - 'span', - { className: 'input-group-btn' }, - this.props.buttonAfter - ) : null; - - var inputGroupClassName = undefined; - switch (this.props.bsSize) { - case 'small': - inputGroupClassName = 'input-group-sm';break; - case 'large': - inputGroupClassName = 'input-group-lg';break; - default: - } - - return addonBefore || addonAfter || buttonBefore || buttonAfter ? _react2['default'].createElement( - 'div', - { className: _classnames2['default'](inputGroupClassName, 'input-group'), key: 'input-group' }, - addonBefore, - buttonBefore, - children, - addonAfter, - buttonAfter - ) : children; - }; - - InputBase.prototype.renderIcon = function renderIcon() { - if (this.props.hasFeedback) { - if (this.props.feedbackIcon) { - return _react2['default'].cloneElement(this.props.feedbackIcon, { formControlFeedback: true }); - } - - switch (this.props.bsStyle) { - case 'success': - return _react2['default'].createElement(_Glyphicon2['default'], { formControlFeedback: true, glyph: 'ok', key: 'icon' }); - case 'warning': - return _react2['default'].createElement(_Glyphicon2['default'], { formControlFeedback: true, glyph: 'warning-sign', key: 'icon' }); - case 'error': - return _react2['default'].createElement(_Glyphicon2['default'], { formControlFeedback: true, glyph: 'remove', key: 'icon' }); - default: - return _react2['default'].createElement('span', { className: 'form-control-feedback', key: 'icon' }); - } - } else { - return null; - } - }; - - InputBase.prototype.renderHelp = function renderHelp() { - return this.props.help ? _react2['default'].createElement( - 'span', - { className: 'help-block', key: 'help' }, - this.props.help - ) : null; - }; - - InputBase.prototype.renderCheckboxAndRadioWrapper = function renderCheckboxAndRadioWrapper(children) { - var classes = { - 'checkbox': this.props.type === 'checkbox', - 'radio': this.props.type === 'radio' - }; - - return _react2['default'].createElement( - 'div', - { className: _classnames2['default'](classes), key: 'checkboxRadioWrapper' }, - children - ); - }; - - InputBase.prototype.renderWrapper = function renderWrapper(children) { - return this.props.wrapperClassName ? _react2['default'].createElement( - 'div', - { className: this.props.wrapperClassName, key: 'wrapper' }, - children - ) : children; - }; - - InputBase.prototype.renderLabel = function renderLabel(children) { - var classes = { - 'control-label': !this.isCheckboxOrRadio() - }; - classes[this.props.labelClassName] = this.props.labelClassName; - - return this.props.label ? _react2['default'].createElement( - 'label', - { htmlFor: this.props.id, className: _classnames2['default'](classes), key: 'label' }, - children, - this.props.label - ) : children; - }; - - InputBase.prototype.renderInput = function renderInput() { - if (!this.props.type) { - return this.props.children; - } - - switch (this.props.type) { - case 'select': - return _react2['default'].createElement( - 'select', - _extends({}, this.props, { className: _classnames2['default'](this.props.className, 'form-control'), ref: 'input', key: 'input' }), - this.props.children - ); - case 'textarea': - return _react2['default'].createElement('textarea', _extends({}, this.props, { className: _classnames2['default'](this.props.className, 'form-control'), ref: 'input', key: 'input' })); - case 'static': - return _react2['default'].createElement( - 'p', - _extends({}, this.props, { className: _classnames2['default'](this.props.className, 'form-control-static'), ref: 'input', key: 'input' }), - this.props.value - ); - default: - var className = this.isCheckboxOrRadio() || this.isFile() ? '' : 'form-control'; - return _react2['default'].createElement('input', _extends({}, this.props, { className: _classnames2['default'](this.props.className, className), ref: 'input', key: 'input' })); - } - }; - - InputBase.prototype.renderFormGroup = function renderFormGroup(children) { - return _react2['default'].createElement( - _FormGroup2['default'], - this.props, - children - ); - }; - - InputBase.prototype.renderChildren = function renderChildren() { - return !this.isCheckboxOrRadio() ? [this.renderLabel(), this.renderWrapper([this.renderInputGroup(this.renderInput()), this.renderIcon(), this.renderHelp()])] : this.renderWrapper([this.renderCheckboxAndRadioWrapper(this.renderLabel(this.renderInput())), this.renderHelp()]); - }; - - InputBase.prototype.render = function render() { - var children = this.renderChildren(); - return this.renderFormGroup(children); - }; - - return InputBase; - })(_react2['default'].Component); - - InputBase.propTypes = { - type: _react2['default'].PropTypes.string, - label: _react2['default'].PropTypes.node, - help: _react2['default'].PropTypes.node, - addonBefore: _react2['default'].PropTypes.node, - addonAfter: _react2['default'].PropTypes.node, - buttonBefore: _react2['default'].PropTypes.node, - buttonAfter: _react2['default'].PropTypes.node, - bsSize: _react2['default'].PropTypes.oneOf(['small', 'medium', 'large']), - bsStyle: _react2['default'].PropTypes.oneOf(['success', 'warning', 'error']), - hasFeedback: _react2['default'].PropTypes.bool, - feedbackIcon: _react2['default'].PropTypes.node, - id: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]), - groupClassName: _react2['default'].PropTypes.string, - wrapperClassName: _react2['default'].PropTypes.string, - labelClassName: _react2['default'].PropTypes.string, - multiple: _react2['default'].PropTypes.bool, - disabled: _react2['default'].PropTypes.bool, - value: _react2['default'].PropTypes.any - }; - - InputBase.defaultProps = { - disabled: false, - hasFeedback: false, - multiple: false - }; - - exports['default'] = InputBase; - module.exports = exports['default']; - -/***/ }, -/* 67 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var Glyphicon = _react2['default'].createClass({ - displayName: 'Glyphicon', - - propTypes: { - /** - * bootstrap className - * @private - */ - bsClass: _react2['default'].PropTypes.string, - /** - * An icon name. See e.g. http://getbootstrap.com/components/#glyphicons - */ - glyph: _react2['default'].PropTypes.string.isRequired, - /** - * Adds 'form-control-feedback' class - * @private - */ - formControlFeedback: _react2['default'].PropTypes.bool - }, - - getDefaultProps: function getDefaultProps() { - return { - bsClass: 'glyphicon', - formControlFeedback: false - }; - }, - - render: function render() { - var _classNames; - - var className = _classnames2['default'](this.props.className, (_classNames = {}, _classNames[this.props.bsClass] = true, _classNames['glyphicon-' + this.props.glyph] = true, _classNames['form-control-feedback'] = this.props.formControlFeedback, _classNames)); - - return _react2['default'].createElement( - 'span', - _extends({}, this.props, { className: className }), - this.props.children - ); - } - }); - - exports['default'] = Glyphicon; - module.exports = exports['default']; - -/***/ }, -/* 68 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _BootstrapMixin = __webpack_require__(28); - - var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin); - - var _reactPropTypesLibAll = __webpack_require__(69); - - var _reactPropTypesLibAll2 = _interopRequireDefault(_reactPropTypesLibAll); - - var ButtonGroup = _react2['default'].createClass({ - displayName: 'ButtonGroup', - - mixins: [_BootstrapMixin2['default']], - - propTypes: { - vertical: _react2['default'].PropTypes.bool, - justified: _react2['default'].PropTypes.bool, - /** - * Display block buttons, only useful when used with the "vertical" prop. - * @type {bool} - */ - block: _reactPropTypesLibAll2['default'](_react2['default'].PropTypes.bool, function (props) { - if (props.block && !props.vertical) { - return new Error('The block property requires the vertical property to be set to have any effect'); - } - }) - }, - - getDefaultProps: function getDefaultProps() { - return { - block: false, - bsClass: 'button-group', - justified: false, - vertical: false - }; - }, - - render: function render() { - var classes = this.getBsClassSet(); - classes['btn-group'] = !this.props.vertical; - classes['btn-group-vertical'] = this.props.vertical; - classes['btn-group-justified'] = this.props.justified; - classes['btn-block'] = this.props.block; - - return _react2['default'].createElement( - 'div', - _extends({}, this.props, { - className: _classnames2['default'](this.props.className, classes) }), - this.props.children - ); - } - }); - - exports['default'] = ButtonGroup; - module.exports = exports['default']; - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - 'use strict'; - - exports.__esModule = true; - exports['default'] = all; - - function all() { - for (var _len = arguments.length, propTypes = Array(_len), _key = 0; _key < _len; _key++) { - propTypes[_key] = arguments[_key]; - } - - if (propTypes === undefined) { - throw new Error('No validations provided'); - } - - if (propTypes.some(function (propType) { - return typeof propType !== 'function'; - })) { - throw new Error('Invalid arguments, must be functions'); - } - - if (propTypes.length === 0) { - throw new Error('No validations provided'); - } - - return function validate(props, propName, componentName) { - for (var i = 0; i < propTypes.length; i++) { - var result = propTypes[i](props, propName, componentName); - - if (result !== undefined && result !== null) { - return result; - } - } - }; - } - - module.exports = exports['default']; - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _BootstrapMixin = __webpack_require__(28); - - var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin); - - var ButtonToolbar = _react2['default'].createClass({ - displayName: 'ButtonToolbar', - - mixins: [_BootstrapMixin2['default']], - - getDefaultProps: function getDefaultProps() { - return { - bsClass: 'button-toolbar' - }; - }, - - render: function render() { - var classes = this.getBsClassSet(); - - return _react2['default'].createElement( - 'div', - _extends({}, this.props, { - role: 'toolbar', - className: _classnames2['default'](this.props.className, classes) }), - this.props.children - ); - } - }); - - exports['default'] = ButtonToolbar; - module.exports = exports['default']; - -/***/ }, -/* 71 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _BootstrapMixin = __webpack_require__(28); - - var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin); - - var _utilsValidComponentChildren = __webpack_require__(7); - - var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); - - var _Glyphicon = __webpack_require__(67); - - var _Glyphicon2 = _interopRequireDefault(_Glyphicon); - - var Carousel = _react2['default'].createClass({ - displayName: 'Carousel', - - mixins: [_BootstrapMixin2['default']], - - propTypes: { - slide: _react2['default'].PropTypes.bool, - indicators: _react2['default'].PropTypes.bool, - interval: _react2['default'].PropTypes.number, - controls: _react2['default'].PropTypes.bool, - pauseOnHover: _react2['default'].PropTypes.bool, - wrap: _react2['default'].PropTypes.bool, - onSelect: _react2['default'].PropTypes.func, - onSlideEnd: _react2['default'].PropTypes.func, - activeIndex: _react2['default'].PropTypes.number, - defaultActiveIndex: _react2['default'].PropTypes.number, - direction: _react2['default'].PropTypes.oneOf(['prev', 'next']), - prevIcon: _react2['default'].PropTypes.node, - nextIcon: _react2['default'].PropTypes.node - }, - - getDefaultProps: function getDefaultProps() { - return { - slide: true, - interval: 5000, - pauseOnHover: true, - wrap: true, - indicators: true, - controls: true, - prevIcon: _react2['default'].createElement(_Glyphicon2['default'], { glyph: 'chevron-left' }), - nextIcon: _react2['default'].createElement(_Glyphicon2['default'], { glyph: 'chevron-right' }) - }; - }, - - getInitialState: function getInitialState() { - return { - activeIndex: this.props.defaultActiveIndex == null ? 0 : this.props.defaultActiveIndex, - previousActiveIndex: null, - direction: null - }; - }, - - getDirection: function getDirection(prevIndex, index) { - if (prevIndex === index) { - return null; - } - - return prevIndex > index ? 'prev' : 'next'; - }, - - componentWillReceiveProps: function componentWillReceiveProps(nextProps) { - var activeIndex = this.getActiveIndex(); - - if (nextProps.activeIndex != null && nextProps.activeIndex !== activeIndex) { - clearTimeout(this.timeout); - this.setState({ - previousActiveIndex: activeIndex, - direction: nextProps.direction != null ? nextProps.direction : this.getDirection(activeIndex, nextProps.activeIndex) - }); - } - }, - - componentDidMount: function componentDidMount() { - this.waitForNext(); - }, - - componentWillUnmount: function componentWillUnmount() { - clearTimeout(this.timeout); - }, - - next: function next(e) { - if (e) { - e.preventDefault(); - } - - var index = this.getActiveIndex() + 1; - var count = _utilsValidComponentChildren2['default'].numberOf(this.props.children); - - if (index > count - 1) { - if (!this.props.wrap) { - return; - } - index = 0; - } - - this.handleSelect(index, 'next'); - }, - - prev: function prev(e) { - if (e) { - e.preventDefault(); - } - - var index = this.getActiveIndex() - 1; - - if (index < 0) { - if (!this.props.wrap) { - return; - } - index = _utilsValidComponentChildren2['default'].numberOf(this.props.children) - 1; - } - - this.handleSelect(index, 'prev'); - }, - - pause: function pause() { - this.isPaused = true; - clearTimeout(this.timeout); - }, - - play: function play() { - this.isPaused = false; - this.waitForNext(); - }, - - waitForNext: function waitForNext() { - if (!this.isPaused && this.props.slide && this.props.interval && this.props.activeIndex == null) { - this.timeout = setTimeout(this.next, this.props.interval); - } - }, - - handleMouseOver: function handleMouseOver() { - if (this.props.pauseOnHover) { - this.pause(); - } - }, - - handleMouseOut: function handleMouseOut() { - if (this.isPaused) { - this.play(); - } - }, - - render: function render() { - var classes = { - carousel: true, - slide: this.props.slide - }; - - return _react2['default'].createElement( - 'div', - _extends({}, this.props, { - className: _classnames2['default'](this.props.className, classes), - onMouseOver: this.handleMouseOver, - onMouseOut: this.handleMouseOut }), - this.props.indicators ? this.renderIndicators() : null, - _react2['default'].createElement( - 'div', - { className: 'carousel-inner', ref: 'inner' }, - _utilsValidComponentChildren2['default'].map(this.props.children, this.renderItem) - ), - this.props.controls ? this.renderControls() : null - ); - }, - - renderPrev: function renderPrev() { - return _react2['default'].createElement( - 'a', - { className: 'left carousel-control', href: '#prev', key: 0, onClick: this.prev }, - this.props.prevIcon - ); - }, - - renderNext: function renderNext() { - return _react2['default'].createElement( - 'a', - { className: 'right carousel-control', href: '#next', key: 1, onClick: this.next }, - this.props.nextIcon - ); - }, - - renderControls: function renderControls() { - if (!this.props.wrap) { - var activeIndex = this.getActiveIndex(); - var count = _utilsValidComponentChildren2['default'].numberOf(this.props.children); - - return [activeIndex !== 0 ? this.renderPrev() : null, activeIndex !== count - 1 ? this.renderNext() : null]; - } - - return [this.renderPrev(), this.renderNext()]; - }, - - renderIndicator: function renderIndicator(child, index) { - var className = index === this.getActiveIndex() ? 'active' : null; - - return _react2['default'].createElement('li', { - key: index, - className: className, - onClick: this.handleSelect.bind(this, index, null) }); - }, - - renderIndicators: function renderIndicators() { - var _this = this; - - var indicators = []; - _utilsValidComponentChildren2['default'].forEach(this.props.children, function (child, index) { - indicators.push(_this.renderIndicator(child, index), - - // Force whitespace between indicator elements, bootstrap - // requires this for correct spacing of elements. - ' '); - }, this); - - return _react2['default'].createElement( - 'ol', - { className: 'carousel-indicators' }, - indicators - ); - }, - - getActiveIndex: function getActiveIndex() { - return this.props.activeIndex != null ? this.props.activeIndex : this.state.activeIndex; - }, - - handleItemAnimateOutEnd: function handleItemAnimateOutEnd() { - var _this2 = this; - - this.setState({ - previousActiveIndex: null, - direction: null - }, function () { - _this2.waitForNext(); - - if (_this2.props.onSlideEnd) { - _this2.props.onSlideEnd(); - } - }); - }, - - renderItem: function renderItem(child, index) { - var activeIndex = this.getActiveIndex(); - var isActive = index === activeIndex; - var isPreviousActive = this.state.previousActiveIndex != null && this.state.previousActiveIndex === index && this.props.slide; - - return _react.cloneElement(child, { - active: isActive, - ref: child.ref, - key: child.key ? child.key : index, - index: index, - animateOut: isPreviousActive, - animateIn: isActive && this.state.previousActiveIndex != null && this.props.slide, - direction: this.state.direction, - onAnimateOutEnd: isPreviousActive ? this.handleItemAnimateOutEnd : null - }); - }, - - handleSelect: function handleSelect(index, direction) { - clearTimeout(this.timeout); - - if (this.isMounted()) { - var previousActiveIndex = this.getActiveIndex(); - direction = direction || this.getDirection(previousActiveIndex, index); - - if (this.props.onSelect) { - this.props.onSelect(index, direction); - } - - if (this.props.activeIndex == null && index !== previousActiveIndex) { - if (this.state.previousActiveIndex != null) { - // If currently animating don't activate the new index. - // TODO: look into queuing this canceled call and - // animating after the current animation has ended. - return; - } - - this.setState({ - activeIndex: index, - previousActiveIndex: previousActiveIndex, - direction: direction - }); - } - } - } - }); - - exports['default'] = Carousel; - module.exports = exports['default']; - -/***/ }, -/* 72 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _reactDom = __webpack_require__(34); - - var _reactDom2 = _interopRequireDefault(_reactDom); - - var _utilsTransitionEvents = __webpack_require__(73); - - var _utilsTransitionEvents2 = _interopRequireDefault(_utilsTransitionEvents); - - var CarouselItem = _react2['default'].createClass({ - displayName: 'CarouselItem', - - propTypes: { - direction: _react2['default'].PropTypes.oneOf(['prev', 'next']), - onAnimateOutEnd: _react2['default'].PropTypes.func, - active: _react2['default'].PropTypes.bool, - animateIn: _react2['default'].PropTypes.bool, - animateOut: _react2['default'].PropTypes.bool, - caption: _react2['default'].PropTypes.node, - index: _react2['default'].PropTypes.number - }, - - getInitialState: function getInitialState() { - return { - direction: null - }; - }, - - getDefaultProps: function getDefaultProps() { - return { - active: false, - animateIn: false, - animateOut: false - }; - }, - - handleAnimateOutEnd: function handleAnimateOutEnd() { - if (this.props.onAnimateOutEnd && this.isMounted()) { - this.props.onAnimateOutEnd(this.props.index); - } - }, - - componentWillReceiveProps: function componentWillReceiveProps(nextProps) { - if (this.props.active !== nextProps.active) { - this.setState({ - direction: null - }); - } - }, - - componentDidUpdate: function componentDidUpdate(prevProps) { - if (!this.props.active && prevProps.active) { - _utilsTransitionEvents2['default'].addEndEventListener(_reactDom2['default'].findDOMNode(this), this.handleAnimateOutEnd); - } - - if (this.props.active !== prevProps.active) { - setTimeout(this.startAnimation, 20); - } - }, - - startAnimation: function startAnimation() { - if (!this.isMounted()) { - return; - } - - this.setState({ - direction: this.props.direction === 'prev' ? 'right' : 'left' - }); - }, - - render: function render() { - var classes = { - item: true, - active: this.props.active && !this.props.animateIn || this.props.animateOut, - next: this.props.active && this.props.animateIn && this.props.direction === 'next', - prev: this.props.active && this.props.animateIn && this.props.direction === 'prev' - }; - - if (this.state.direction && (this.props.animateIn || this.props.animateOut)) { - classes[this.state.direction] = true; - } - - return _react2['default'].createElement( - 'div', - _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }), - this.props.children, - this.props.caption ? this.renderCaption() : null - ); - }, - - renderCaption: function renderCaption() { - return _react2['default'].createElement( - 'div', - { className: 'carousel-caption' }, - this.props.caption - ); - } - }); - - exports['default'] = CarouselItem; - module.exports = exports['default']; - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - /** - * Copyright 2013-2014, Facebook, Inc. - * All rights reserved. - * - * This file contains a modified version of: - * https://github.com/facebook/react/blob/v0.12.0/src/addons/transitions/ReactTransitionEvents.js - * - * This source code is licensed under the BSD-style license found here: - * https://github.com/facebook/react/blob/v0.12.0/LICENSE - * An additional grant of patent rights can be found here: - * https://github.com/facebook/react/blob/v0.12.0/PATENTS - */ - - 'use strict'; - - exports.__esModule = true; - var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); - - /** - * EVENT_NAME_MAP is used to determine which event fired when a - * transition/animation ends, based on the style property used to - * define that event. - */ - var EVENT_NAME_MAP = { - transitionend: { - 'transition': 'transitionend', - 'WebkitTransition': 'webkitTransitionEnd', - 'MozTransition': 'mozTransitionEnd', - 'OTransition': 'oTransitionEnd', - 'msTransition': 'MSTransitionEnd' - }, - - animationend: { - 'animation': 'animationend', - 'WebkitAnimation': 'webkitAnimationEnd', - 'MozAnimation': 'mozAnimationEnd', - 'OAnimation': 'oAnimationEnd', - 'msAnimation': 'MSAnimationEnd' - } - }; - - var endEvents = []; - - function detectEvents() { - var testEl = document.createElement('div'); - var style = testEl.style; - - // On some platforms, in particular some releases of Android 4.x, - // the un-prefixed "animation" and "transition" properties are defined on the - // style object but the events that fire will still be prefixed, so we need - // to check if the un-prefixed events are useable, and if not remove them - // from the map - if (!('AnimationEvent' in window)) { - delete EVENT_NAME_MAP.animationend.animation; - } - - if (!('TransitionEvent' in window)) { - delete EVENT_NAME_MAP.transitionend.transition; - } - - for (var baseEventName in EVENT_NAME_MAP) { - // eslint-disable-line guard-for-in - var baseEvents = EVENT_NAME_MAP[baseEventName]; - for (var styleName in baseEvents) { - if (styleName in style) { - endEvents.push(baseEvents[styleName]); - break; - } - } - } - } - - if (canUseDOM) { - detectEvents(); - } - - // We use the raw {add|remove}EventListener() call because EventListener - // does not know how to remove event listeners and we really should - // clean up. Also, these events are not triggered in older browsers - // so we should be A-OK here. - - function addEventListener(node, eventName, eventListener) { - node.addEventListener(eventName, eventListener, false); - } - - function removeEventListener(node, eventName, eventListener) { - node.removeEventListener(eventName, eventListener, false); - } - - var ReactTransitionEvents = { - addEndEventListener: function addEndEventListener(node, eventListener) { - if (endEvents.length === 0) { - // If CSS transitions are not supported, trigger an "end animation" - // event immediately. - window.setTimeout(eventListener, 0); - return; - } - endEvents.forEach(function (endEvent) { - addEventListener(node, endEvent, eventListener); - }); - }, - - removeEndEventListener: function removeEndEventListener(node, eventListener) { - if (endEvents.length === 0) { - return; - } - endEvents.forEach(function (endEvent) { - removeEventListener(node, endEvent, eventListener); - }); - } - }; - - exports['default'] = ReactTransitionEvents; - module.exports = exports['default']; - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _Object$keys = __webpack_require__(75)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _styleMaps = __webpack_require__(29); - - var _styleMaps2 = _interopRequireDefault(_styleMaps); - - var _reactPropTypesLibElementType = __webpack_require__(63); - - var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); - - var Col = _react2['default'].createClass({ - displayName: 'Col', - - propTypes: { - /** - * The number of columns you wish to span - * - * for Extra small devices Phones (<768px) - * - * class-prefix `col-xs-` - */ - xs: _react2['default'].PropTypes.number, - /** - * The number of columns you wish to span - * - * for Small devices Tablets (≥768px) - * - * class-prefix `col-sm-` - */ - sm: _react2['default'].PropTypes.number, - /** - * The number of columns you wish to span - * - * for Medium devices Desktops (≥992px) - * - * class-prefix `col-md-` - */ - md: _react2['default'].PropTypes.number, - /** - * The number of columns you wish to span - * - * for Large devices Desktops (≥1200px) - * - * class-prefix `col-lg-` - */ - lg: _react2['default'].PropTypes.number, - /** - * Move columns to the right - * - * for Extra small devices Phones - * - * class-prefix `col-xs-offset-` - */ - xsOffset: _react2['default'].PropTypes.number, - /** - * Move columns to the right - * - * for Small devices Tablets - * - * class-prefix `col-sm-offset-` - */ - smOffset: _react2['default'].PropTypes.number, - /** - * Move columns to the right - * - * for Medium devices Desktops - * - * class-prefix `col-md-offset-` - */ - mdOffset: _react2['default'].PropTypes.number, - /** - * Move columns to the right - * - * for Large devices Desktops - * - * class-prefix `col-lg-offset-` - */ - lgOffset: _react2['default'].PropTypes.number, - /** - * Change the order of grid columns to the right - * - * for Extra small devices Phones - * - * class-prefix `col-xs-push-` - */ - xsPush: _react2['default'].PropTypes.number, - /** - * Change the order of grid columns to the right - * - * for Small devices Tablets - * - * class-prefix `col-sm-push-` - */ - smPush: _react2['default'].PropTypes.number, - /** - * Change the order of grid columns to the right - * - * for Medium devices Desktops - * - * class-prefix `col-md-push-` - */ - mdPush: _react2['default'].PropTypes.number, - /** - * Change the order of grid columns to the right - * - * for Large devices Desktops - * - * class-prefix `col-lg-push-` - */ - lgPush: _react2['default'].PropTypes.number, - /** - * Change the order of grid columns to the left - * - * for Extra small devices Phones - * - * class-prefix `col-xs-pull-` - */ - xsPull: _react2['default'].PropTypes.number, - /** - * Change the order of grid columns to the left - * - * for Small devices Tablets - * - * class-prefix `col-sm-pull-` - */ - smPull: _react2['default'].PropTypes.number, - /** - * Change the order of grid columns to the left - * - * for Medium devices Desktops - * - * class-prefix `col-md-pull-` - */ - mdPull: _react2['default'].PropTypes.number, - /** - * Change the order of grid columns to the left - * - * for Large devices Desktops - * - * class-prefix `col-lg-pull-` - */ - lgPull: _react2['default'].PropTypes.number, - /** - * You can use a custom element for this component - */ - componentClass: _reactPropTypesLibElementType2['default'] - }, - - getDefaultProps: function getDefaultProps() { - return { - componentClass: 'div' - }; - }, - - render: function render() { - var _this = this; - - var ComponentClass = this.props.componentClass; - var classes = {}; - - _Object$keys(_styleMaps2['default'].SIZES).forEach(function (key) { - var size = _styleMaps2['default'].SIZES[key]; - var prop = size; - var classPart = size + '-'; - - if (_this.props[prop]) { - classes['col-' + classPart + _this.props[prop]] = true; - } - - prop = size + 'Offset'; - classPart = size + '-offset-'; - if (_this.props[prop] >= 0) { - classes['col-' + classPart + _this.props[prop]] = true; - } - - prop = size + 'Push'; - classPart = size + '-push-'; - if (_this.props[prop] >= 0) { - classes['col-' + classPart + _this.props[prop]] = true; - } - - prop = size + 'Pull'; - classPart = size + '-pull-'; - if (_this.props[prop] >= 0) { - classes['col-' + classPart + _this.props[prop]] = true; - } - }, this); - - return _react2['default'].createElement( - ComponentClass, - _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }), - this.props.children - ); - } - }); - - exports['default'] = Col; - module.exports = exports['default']; - -/***/ }, -/* 75 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(76), __esModule: true }; - -/***/ }, -/* 76 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(77); - module.exports = __webpack_require__(15).Object.keys; - -/***/ }, -/* 77 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 Object.keys(O) - var toObject = __webpack_require__(17); - - __webpack_require__(78)('keys', function($keys){ - return function keys(it){ - return $keys(toObject(it)); - }; - }); - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - // most Object methods by ES6 should accept primitives - module.exports = function(KEY, exec){ - var $def = __webpack_require__(13) - , fn = (__webpack_require__(15).Object || {})[KEY] || Object[KEY] - , exp = {}; - exp[KEY] = exec(fn); - $def($def.S + $def.F * __webpack_require__(24)(function(){ fn(1); }), 'Object', exp); - }; - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _BootstrapMixin = __webpack_require__(28); - - var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin); - - var _Collapse = __webpack_require__(80); - - var _Collapse2 = _interopRequireDefault(_Collapse); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _utilsValidComponentChildren = __webpack_require__(7); - - var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); - - var _utilsCreateChainedFunction = __webpack_require__(6); - - var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); - - var CollapsibleNav = _react2['default'].createClass({ - displayName: 'CollapsibleNav', - - mixins: [_BootstrapMixin2['default']], - - propTypes: { - onSelect: _react2['default'].PropTypes.func, - activeHref: _react2['default'].PropTypes.string, - activeKey: _react2['default'].PropTypes.any, - collapsible: _react2['default'].PropTypes.bool, - expanded: _react2['default'].PropTypes.bool, - eventKey: _react2['default'].PropTypes.any - }, - - getDefaultProps: function getDefaultProps() { - return { - collapsible: false, - expanded: false - }; - }, - - render: function render() { - /* - * this.props.collapsible is set in NavBar when an eventKey is supplied. - */ - var classes = this.props.collapsible ? 'navbar-collapse' : null; - var renderChildren = this.props.collapsible ? this.renderCollapsibleNavChildren : this.renderChildren; - - var nav = _react2['default'].createElement( - 'div', - { eventKey: this.props.eventKey, className: _classnames2['default'](this.props.className, classes) }, - _utilsValidComponentChildren2['default'].map(this.props.children, renderChildren) - ); - - if (this.props.collapsible) { - return _react2['default'].createElement( - _Collapse2['default'], - { 'in': this.props.expanded }, - nav - ); - } - return nav; - }, - - getChildActiveProp: function getChildActiveProp(child) { - if (child.props.active) { - return true; - } - if (this.props.activeKey != null) { - if (child.props.eventKey === this.props.activeKey) { - return true; - } - } - if (this.props.activeHref != null) { - if (child.props.href === this.props.activeHref) { - return true; - } - } - - return child.props.active; - }, - - renderChildren: function renderChildren(child, index) { - var key = child.key ? child.key : index; - return _react.cloneElement(child, { - activeKey: this.props.activeKey, - activeHref: this.props.activeHref, - ref: 'nocollapse_' + key, - key: key, - navItem: true - }); - }, - - renderCollapsibleNavChildren: function renderCollapsibleNavChildren(child, index) { - var key = child.key ? child.key : index; - return _react.cloneElement(child, { - active: this.getChildActiveProp(child), - activeKey: this.props.activeKey, - activeHref: this.props.activeHref, - onSelect: _utilsCreateChainedFunction2['default'](child.props.onSelect, this.props.onSelect), - ref: 'collapsible_' + key, - key: key, - navItem: true - }); - } - }); - - exports['default'] = CollapsibleNav; - module.exports = exports['default']; - -/***/ }, -/* 80 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _domHelpersStyle = __webpack_require__(81); - - var _domHelpersStyle2 = _interopRequireDefault(_domHelpersStyle); - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _reactOverlaysLibTransition = __webpack_require__(88); - - var _reactOverlaysLibTransition2 = _interopRequireDefault(_reactOverlaysLibTransition); - - var _reactPropTypesLibDeprecated = __webpack_require__(91); - - var _reactPropTypesLibDeprecated2 = _interopRequireDefault(_reactPropTypesLibDeprecated); - - var _utilsCreateChainedFunction = __webpack_require__(6); - - var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); - - var capitalize = function capitalize(str) { - return str[0].toUpperCase() + str.substr(1); - }; - - // reading a dimension prop will cause the browser to recalculate, - // which will let our animations work - var triggerBrowserReflow = function triggerBrowserReflow(node) { - return node.offsetHeight; - }; - - var MARGINS = { - height: ['marginTop', 'marginBottom'], - width: ['marginLeft', 'marginRight'] - }; - - function getDimensionValue(dimension, elem) { - var value = elem['offset' + capitalize(dimension)]; - var margins = MARGINS[dimension]; - - return value + parseInt(_domHelpersStyle2['default'](elem, margins[0]), 10) + parseInt(_domHelpersStyle2['default'](elem, margins[1]), 10); - } - - var Collapse = (function (_React$Component) { - _inherits(Collapse, _React$Component); - - function Collapse(props, context) { - _classCallCheck(this, Collapse); - - _React$Component.call(this, props, context); - - this.onEnterListener = this.handleEnter.bind(this); - this.onEnteringListener = this.handleEntering.bind(this); - this.onEnteredListener = this.handleEntered.bind(this); - this.onExitListener = this.handleExit.bind(this); - this.onExitingListener = this.handleExiting.bind(this); - } - - // Explicitly copied from Transition for doc generation. - // TODO: Remove duplication once #977 is resolved. - - Collapse.prototype.render = function render() { - var enter = _utilsCreateChainedFunction2['default'](this.onEnterListener, this.props.onEnter); - var entering = _utilsCreateChainedFunction2['default'](this.onEnteringListener, this.props.onEntering); - var entered = _utilsCreateChainedFunction2['default'](this.onEnteredListener, this.props.onEntered); - var exit = _utilsCreateChainedFunction2['default'](this.onExitListener, this.props.onExit); - var exiting = _utilsCreateChainedFunction2['default'](this.onExitingListener, this.props.onExiting); - - return _react2['default'].createElement( - _reactOverlaysLibTransition2['default'], - _extends({ - ref: 'transition' - }, this.props, { - 'aria-expanded': this.props.role ? this.props['in'] : null, - className: this._dimension() === 'width' ? 'width' : '', - exitedClassName: 'collapse', - exitingClassName: 'collapsing', - enteredClassName: 'collapse in', - enteringClassName: 'collapsing', - onEnter: enter, - onEntering: entering, - onEntered: entered, - onExit: exit, - onExiting: exiting, - onExited: this.props.onExited - }), - this.props.children - ); - }; - - /* -- Expanding -- */ - - Collapse.prototype.handleEnter = function handleEnter(elem) { - var dimension = this._dimension(); - elem.style[dimension] = '0'; - }; - - Collapse.prototype.handleEntering = function handleEntering(elem) { - var dimension = this._dimension(); - - elem.style[dimension] = this._getScrollDimensionValue(elem, dimension); - }; - - Collapse.prototype.handleEntered = function handleEntered(elem) { - var dimension = this._dimension(); - elem.style[dimension] = null; - }; - - /* -- Collapsing -- */ - - Collapse.prototype.handleExit = function handleExit(elem) { - var dimension = this._dimension(); - - elem.style[dimension] = this.props.getDimensionValue(dimension, elem) + 'px'; - }; - - Collapse.prototype.handleExiting = function handleExiting(elem) { - var dimension = this._dimension(); - - triggerBrowserReflow(elem); - elem.style[dimension] = '0'; - }; - - Collapse.prototype._dimension = function _dimension() { - return typeof this.props.dimension === 'function' ? this.props.dimension() : this.props.dimension; - }; - - // for testing - - Collapse.prototype._getTransitionInstance = function _getTransitionInstance() { - return this.refs.transition; - }; - - Collapse.prototype._getScrollDimensionValue = function _getScrollDimensionValue(elem, dimension) { - return elem['scroll' + capitalize(dimension)] + 'px'; - }; - - return Collapse; - })(_react2['default'].Component); - - Collapse.propTypes = { - /** - * Show the component; triggers the expand or collapse animation - */ - 'in': _react2['default'].PropTypes.bool, - - /** - * Unmount the component (remove it from the DOM) when it is collapsed - */ - unmountOnExit: _react2['default'].PropTypes.bool, - - /** - * Run the expand animation when the component mounts, if it is initially - * shown - */ - transitionAppear: _react2['default'].PropTypes.bool, - - /** - * Duration of the collapse animation in milliseconds, to ensure that - * finishing callbacks are fired even if the original browser transition end - * events are canceled - */ - timeout: _react2['default'].PropTypes.number, - - /** - * duration - * @private - */ - duration: _reactPropTypesLibDeprecated2['default'](_react2['default'].PropTypes.number, 'Use `timeout`.'), - - /** - * Callback fired before the component expands - */ - onEnter: _react2['default'].PropTypes.func, - /** - * Callback fired after the component starts to expand - */ - onEntering: _react2['default'].PropTypes.func, - /** - * Callback fired after the component has expanded - */ - onEntered: _react2['default'].PropTypes.func, - /** - * Callback fired before the component collapses - */ - onExit: _react2['default'].PropTypes.func, - /** - * Callback fired after the component starts to collapse - */ - onExiting: _react2['default'].PropTypes.func, - /** - * Callback fired after the component has collapsed - */ - onExited: _react2['default'].PropTypes.func, - - /** - * The dimension used when collapsing, or a function that returns the - * dimension - * - * _Note: Bootstrap only partially supports 'width'! - * You will need to supply your own CSS animation for the `.width` CSS class._ - */ - dimension: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.oneOf(['height', 'width']), _react2['default'].PropTypes.func]), - - /** - * Function that returns the height or width of the animating DOM node - * - * Allows for providing some custom logic for how much the Collapse component - * should animate in its specified dimension. Called with the current - * dimension prop value and the DOM node. - */ - getDimensionValue: _react2['default'].PropTypes.func, - - /** - * ARIA role of collapsible element - */ - role: _react2['default'].PropTypes.string - }; - - Collapse.defaultProps = { - 'in': false, - timeout: 300, - unmountOnExit: false, - transitionAppear: false, - - dimension: 'height', - getDimensionValue: getDimensionValue - }; - - exports['default'] = Collapse; - module.exports = exports['default']; - -/***/ }, -/* 81 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var camelize = __webpack_require__(82), - hyphenate = __webpack_require__(84), - _getComputedStyle = __webpack_require__(86), - removeStyle = __webpack_require__(87); - - var has = Object.prototype.hasOwnProperty; - - module.exports = function style(node, property, value) { - var css = '', - props = property; - - if (typeof property === 'string') { - - if (value === undefined) return node.style[camelize(property)] || _getComputedStyle(node).getPropertyValue(hyphenate(property));else (props = {})[property] = value; - } - - for (var key in props) if (has.call(props, key)) { - !props[key] && props[key] !== 0 ? removeStyle(node, hyphenate(key)) : css += hyphenate(key) + ':' + props[key] + ';'; - } - - node.style.cssText += ';' + css; - }; - -/***/ }, -/* 82 */ -/***/ function(module, exports, __webpack_require__) { - - /**
- * Copyright 2014-2015, Facebook, Inc.
- * All rights reserved.
- * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/camelizeStyleName.js
- */ - - 'use strict'; - var camelize = __webpack_require__(83); - var msPattern = /^-ms-/; - - module.exports = function camelizeStyleName(string) { - return camelize(string.replace(msPattern, 'ms-')); - }; - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - "use strict"; - - var rHyphen = /-(.)/g; - - module.exports = function camelize(string) { - return string.replace(rHyphen, function (_, chr) { - return chr.toUpperCase(); - }); - }; - -/***/ }, -/* 84 */ -/***/ function(module, exports, __webpack_require__) { - - /**
- * Copyright 2013-2014, Facebook, Inc.
- * All rights reserved.
- * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js
- */ - - "use strict"; - - var hyphenate = __webpack_require__(85); - var msPattern = /^ms-/; - - module.exports = function hyphenateStyleName(string) { - return hyphenate(string).replace(msPattern, "-ms-"); - }; - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - 'use strict'; - - var rUpper = /([A-Z])/g; - - module.exports = function hyphenate(string) { - return string.replace(rUpper, '-$1').toLowerCase(); - }; - -/***/ }, -/* 86 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var babelHelpers = __webpack_require__(38); - - var _utilCamelizeStyle = __webpack_require__(82); - - var _utilCamelizeStyle2 = babelHelpers.interopRequireDefault(_utilCamelizeStyle); - - var rposition = /^(top|right|bottom|left)$/; - var rnumnonpx = /^([+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/i; - - module.exports = function _getComputedStyle(node) { - if (!node) throw new TypeError('No Element passed to `getComputedStyle()`'); - var doc = node.ownerDocument; - - return 'defaultView' in doc ? doc.defaultView.opener ? node.ownerDocument.defaultView.getComputedStyle(node, null) : window.getComputedStyle(node, null) : { //ie 8 "magic" from: https://github.com/jquery/jquery/blob/1.11-stable/src/css/curCSS.js#L72 - getPropertyValue: function getPropertyValue(prop) { - var style = node.style; - - prop = (0, _utilCamelizeStyle2['default'])(prop); - - if (prop == 'float') prop = 'styleFloat'; - - var current = node.currentStyle[prop] || null; - - if (current == null && style && style[prop]) current = style[prop]; - - if (rnumnonpx.test(current) && !rposition.test(prop)) { - // Remember the original values - var left = style.left; - var runStyle = node.runtimeStyle; - var rsLeft = runStyle && runStyle.left; - - // Put in the new values to get a computed value out - if (rsLeft) runStyle.left = node.currentStyle.left; - - style.left = prop === 'fontSize' ? '1em' : current; - current = style.pixelLeft + 'px'; - - // Revert the changed values - style.left = left; - if (rsLeft) runStyle.left = rsLeft; - } - - return current; - } - }; - }; - -/***/ }, -/* 87 */ -/***/ function(module, exports) { - - 'use strict'; - - module.exports = function removeStyle(node, key) { - return 'removeProperty' in node.style ? node.style.removeProperty(key) : node.style.removeAttribute(key); - }; - -/***/ }, -/* 88 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - exports.__esModule = true; - - var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } - - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _reactDom = __webpack_require__(34); - - var _reactDom2 = _interopRequireDefault(_reactDom); - - var _domHelpersTransitionProperties = __webpack_require__(89); - - var _domHelpersTransitionProperties2 = _interopRequireDefault(_domHelpersTransitionProperties); - - var _domHelpersEventsOn = __webpack_require__(90); - - var _domHelpersEventsOn2 = _interopRequireDefault(_domHelpersEventsOn); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var transitionEndEvent = _domHelpersTransitionProperties2['default'].end; - - var UNMOUNTED = 0; - exports.UNMOUNTED = UNMOUNTED; - var EXITED = 1; - exports.EXITED = EXITED; - var ENTERING = 2; - exports.ENTERING = ENTERING; - var ENTERED = 3; - exports.ENTERED = ENTERED; - var EXITING = 4; - - exports.EXITING = EXITING; - /**
- * The Transition component lets you define and run css transitions with a simple declarative api.
- * It works similar to React's own [CSSTransitionGroup](http://facebook.github.io/react/docs/animation.html#high-level-api-reactcsstransitiongroup)
- * but is specifically optimized for transitioning a single child "in" or "out".
- *
- * You don't even need to use class based css transitions if you don't want to (but it is easiest).
- * The extensive set of lifecyle callbacks means you have control over
- * the transitioning now at each step of the way.
- */ - - var Transition = (function (_React$Component) { - function Transition(props, context) { - _classCallCheck(this, Transition); - - _React$Component.call(this, props, context); - - var initialStatus = undefined; - if (props['in']) { - // Start enter transition in componentDidMount. - initialStatus = props.transitionAppear ? EXITED : ENTERED; - } else { - initialStatus = props.unmountOnExit ? UNMOUNTED : EXITED; - } - this.state = { status: initialStatus }; - - this.nextCallback = null; - } - - _inherits(Transition, _React$Component); - - Transition.prototype.componentDidMount = function componentDidMount() { - if (this.props.transitionAppear && this.props['in']) { - this.performEnter(this.props); - } - }; - - Transition.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { - var status = this.state.status; - if (nextProps['in']) { - if (status === EXITING) { - this.performEnter(nextProps); - } else if (this.props.unmountOnExit) { - if (status === UNMOUNTED) { - // Start enter transition in componentDidUpdate. - this.setState({ status: EXITED }); - } - } else if (status === EXITED) { - this.performEnter(nextProps); - } - - // Otherwise we're already entering or entered. - } else { - if (status === ENTERING || status === ENTERED) { - this.performExit(nextProps); - } - - // Otherwise we're already exited or exiting. - } - }; - - Transition.prototype.componentDidUpdate = function componentDidUpdate() { - if (this.props.unmountOnExit && this.state.status === EXITED) { - // EXITED is always a transitional state to either ENTERING or UNMOUNTED - // when using unmountOnExit. - if (this.props['in']) { - this.performEnter(this.props); - } else { - this.setState({ status: UNMOUNTED }); - } - } - }; - - Transition.prototype.componentWillUnmount = function componentWillUnmount() { - this.cancelNextCallback(); - }; - - Transition.prototype.performEnter = function performEnter(props) { - var _this = this; - - this.cancelNextCallback(); - var node = _reactDom2['default'].findDOMNode(this); - - // Not this.props, because we might be about to receive new props. - props.onEnter(node); - - this.safeSetState({ status: ENTERING }, function () { - _this.props.onEntering(node); - - _this.onTransitionEnd(node, function () { - _this.safeSetState({ status: ENTERED }, function () { - _this.props.onEntered(node); - }); - }); - }); - }; - - Transition.prototype.performExit = function performExit(props) { - var _this2 = this; - - this.cancelNextCallback(); - var node = _reactDom2['default'].findDOMNode(this); - - // Not this.props, because we might be about to receive new props. - props.onExit(node); - - this.safeSetState({ status: EXITING }, function () { - _this2.props.onExiting(node); - - _this2.onTransitionEnd(node, function () { - _this2.safeSetState({ status: EXITED }, function () { - _this2.props.onExited(node); - }); - }); - }); - }; - - Transition.prototype.cancelNextCallback = function cancelNextCallback() { - if (this.nextCallback !== null) { - this.nextCallback.cancel(); - this.nextCallback = null; - } - }; - - Transition.prototype.safeSetState = function safeSetState(nextState, callback) { - // This shouldn't be necessary, but there are weird race conditions with - // setState callbacks and unmounting in testing, so always make sure that - // we can cancel any pending setState callbacks after we unmount. - this.setState(nextState, this.setNextCallback(callback)); - }; - - Transition.prototype.setNextCallback = function setNextCallback(callback) { - var _this3 = this; - - var active = true; - - this.nextCallback = function (event) { - if (active) { - active = false; - _this3.nextCallback = null; - - callback(event); - } - }; - - this.nextCallback.cancel = function () { - active = false; - }; - - return this.nextCallback; - }; - - Transition.prototype.onTransitionEnd = function onTransitionEnd(node, handler) { - this.setNextCallback(handler); - - if (node) { - _domHelpersEventsOn2['default'](node, transitionEndEvent, this.nextCallback); - setTimeout(this.nextCallback, this.props.timeout); - } else { - setTimeout(this.nextCallback, 0); - } - }; - - Transition.prototype.render = function render() { - var status = this.state.status; - if (status === UNMOUNTED) { - return null; - } - - var _props = this.props; - var children = _props.children; - var className = _props.className; - - var childProps = _objectWithoutProperties(_props, ['children', 'className']); - - Object.keys(Transition.propTypes).forEach(function (key) { - return delete childProps[key]; - }); - - var transitionClassName = undefined; - if (status === EXITED) { - transitionClassName = this.props.exitedClassName; - } else if (status === ENTERING) { - transitionClassName = this.props.enteringClassName; - } else if (status === ENTERED) { - transitionClassName = this.props.enteredClassName; - } else if (status === EXITING) { - transitionClassName = this.props.exitingClassName; - } - - var child = _react2['default'].Children.only(children); - return _react2['default'].cloneElement(child, _extends({}, childProps, { - className: _classnames2['default'](child.props.className, className, transitionClassName) - })); - }; - - return Transition; - })(_react2['default'].Component); - - Transition.propTypes = { - /**
- * Show the component; triggers the enter or exit animation
- */ - 'in': _react2['default'].PropTypes.bool, - - /**
- * Unmount the component (remove it from the DOM) when it is not shown
- */ - unmountOnExit: _react2['default'].PropTypes.bool, - - /**
- * Run the enter animation when the component mounts, if it is initially
- * shown
- */ - transitionAppear: _react2['default'].PropTypes.bool, - - /**
- * A Timeout for the animation, in milliseconds, to ensure that a node doesn't
- * transition indefinately if the browser transitionEnd events are
- * canceled or interrupted.
- *
- * By default this is set to a high number (5 seconds) as a failsafe. You should consider
- * setting this to the duration of your animation (or a bit above it).
- */ - timeout: _react2['default'].PropTypes.number, - - /**
- * CSS class or classes applied when the component is exited
- */ - exitedClassName: _react2['default'].PropTypes.string, - /**
- * CSS class or classes applied while the component is exiting
- */ - exitingClassName: _react2['default'].PropTypes.string, - /**
- * CSS class or classes applied when the component is entered
- */ - enteredClassName: _react2['default'].PropTypes.string, - /**
- * CSS class or classes applied while the component is entering
- */ - enteringClassName: _react2['default'].PropTypes.string, - - /**
- * Callback fired before the "entering" classes are applied
- */ - onEnter: _react2['default'].PropTypes.func, - /**
- * Callback fired after the "entering" classes are applied
- */ - onEntering: _react2['default'].PropTypes.func, - /**
- * Callback fired after the "enter" classes are applied
- */ - onEntered: _react2['default'].PropTypes.func, - /**
- * Callback fired before the "exiting" classes are applied
- */ - onExit: _react2['default'].PropTypes.func, - /**
- * Callback fired after the "exiting" classes are applied
- */ - onExiting: _react2['default'].PropTypes.func, - /**
- * Callback fired after the "exited" classes are applied
- */ - onExited: _react2['default'].PropTypes.func - }; - - // Name the function so it is clearer in the documentation - function noop() {} - - Transition.displayName = 'Transition'; - - Transition.defaultProps = { - 'in': false, - unmountOnExit: false, - transitionAppear: false, - - timeout: 5000, - - onEnter: noop, - onEntering: noop, - onEntered: noop, - - onExit: noop, - onExiting: noop, - onExited: noop - }; - - exports['default'] = Transition; - -/***/ }, -/* 89 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var canUseDOM = __webpack_require__(41); - - var has = Object.prototype.hasOwnProperty, - transform = 'transform', - transition = {}, - transitionTiming, - transitionDuration, - transitionProperty, - transitionDelay; - - if (canUseDOM) { - transition = getTransitionProperties(); - - transform = transition.prefix + transform; - - transitionProperty = transition.prefix + 'transition-property'; - transitionDuration = transition.prefix + 'transition-duration'; - transitionDelay = transition.prefix + 'transition-delay'; - transitionTiming = transition.prefix + 'transition-timing-function'; - } - - module.exports = { - transform: transform, - end: transition.end, - property: transitionProperty, - timing: transitionTiming, - delay: transitionDelay, - duration: transitionDuration - }; - - function getTransitionProperties() { - var endEvent, - prefix = '', - transitions = { - O: 'otransitionend', - Moz: 'transitionend', - Webkit: 'webkitTransitionEnd', - ms: 'MSTransitionEnd' - }; - - var element = document.createElement('div'); - - for (var vendor in transitions) if (has.call(transitions, vendor)) { - if (element.style[vendor + 'TransitionProperty'] !== undefined) { - prefix = '-' + vendor.toLowerCase() + '-'; - endEvent = transitions[vendor]; - break; - } - } - - if (!endEvent && element.style.transitionProperty !== undefined) endEvent = 'transitionend'; - - return { end: endEvent, prefix: prefix }; - } - -/***/ }, -/* 90 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var canUseDOM = __webpack_require__(41); - var on = function on() {}; - - if (canUseDOM) { - on = (function () { - - if (document.addEventListener) return function (node, eventName, handler, capture) { - return node.addEventListener(eventName, handler, capture || false); - };else if (document.attachEvent) return function (node, eventName, handler) { - return node.attachEvent('on' + eventName, handler); - }; - })(); - } - - module.exports = on; - -/***/ }, -/* 91 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - exports.__esModule = true; - exports['default'] = deprecated; - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - var _warning = __webpack_require__(48); - - var _warning2 = _interopRequireDefault(_warning); - - function deprecated(propType, explanation) { - return function validate(props, propName, componentName) { - if (props[propName] != null) { - _warning2['default'](false, '"' + propName + '" property of "' + componentName + '" has been deprecated.\n' + explanation); - } - - return propType(props, propName, componentName); - }; - } - - module.exports = exports['default']; - -/***/ }, -/* 92 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _domHelpersActiveElement = __webpack_require__(93); - - var _domHelpersActiveElement2 = _interopRequireDefault(_domHelpersActiveElement); - - var _domHelpersQueryContains = __webpack_require__(40); - - var _domHelpersQueryContains2 = _interopRequireDefault(_domHelpersQueryContains); - - var _keycode = __webpack_require__(94); - - var _keycode2 = _interopRequireDefault(_keycode); - - var _lodashCompatCollectionFind = __webpack_require__(95); - - var _lodashCompatCollectionFind2 = _interopRequireDefault(_lodashCompatCollectionFind); - - var _lodashCompatObjectOmit = __webpack_require__(148); - - var _lodashCompatObjectOmit2 = _interopRequireDefault(_lodashCompatObjectOmit); - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _reactDom = __webpack_require__(34); - - var _reactDom2 = _interopRequireDefault(_reactDom); - - var _reactPropTypesLibAll = __webpack_require__(69); - - var _reactPropTypesLibAll2 = _interopRequireDefault(_reactPropTypesLibAll); - - var _reactPropTypesLibElementType = __webpack_require__(63); - - var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); - - var _reactPropTypesLibIsRequiredForA11y = __webpack_require__(163); - - var _reactPropTypesLibIsRequiredForA11y2 = _interopRequireDefault(_reactPropTypesLibIsRequiredForA11y); - - var _uncontrollable = __webpack_require__(164); - - var _uncontrollable2 = _interopRequireDefault(_uncontrollable); - - var _ButtonGroup = __webpack_require__(68); - - var _ButtonGroup2 = _interopRequireDefault(_ButtonGroup); - - var _DropdownMenu = __webpack_require__(168); - - var _DropdownMenu2 = _interopRequireDefault(_DropdownMenu); - - var _DropdownToggle = __webpack_require__(174); - - var _DropdownToggle2 = _interopRequireDefault(_DropdownToggle); - - var _utilsCreateChainedFunction = __webpack_require__(6); - - var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); - - var _utilsCustomPropTypes = __webpack_require__(175); - - var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes); - - var _utilsValidComponentChildren = __webpack_require__(7); - - var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); - - var TOGGLE_REF = 'toggle-btn'; - var TOGGLE_ROLE = _DropdownToggle2['default'].defaultProps.bsRole; - var MENU_ROLE = _DropdownMenu2['default'].defaultProps.bsRole; - - var Dropdown = (function (_React$Component) { - _inherits(Dropdown, _React$Component); - - function Dropdown(props) { - _classCallCheck(this, Dropdown); - - _React$Component.call(this, props); - - this.Toggle = _DropdownToggle2['default']; - - this.toggleOpen = this.toggleOpen.bind(this); - this.handleClick = this.handleClick.bind(this); - this.handleKeyDown = this.handleKeyDown.bind(this); - this.handleClose = this.handleClose.bind(this); - this.extractChildren = this.extractChildren.bind(this); - - this.refineMenu = this.refineMenu.bind(this); - this.refineToggle = this.refineToggle.bind(this); - - this.childExtractors = [{ - key: 'toggle', - matches: function matches(child) { - return child.props.bsRole === TOGGLE_ROLE; - }, - refine: this.refineToggle - }, { - key: 'menu', - exclusive: true, - matches: function matches(child) { - return child.props.bsRole === MENU_ROLE; - }, - refine: this.refineMenu - }]; - - this.state = {}; - - this.lastOpenEventType = null; - } - - Dropdown.prototype.componentDidMount = function componentDidMount() { - this.focusNextOnOpen(); - }; - - Dropdown.prototype.componentWillUpdate = function componentWillUpdate(nextProps) { - if (!nextProps.open && this.props.open) { - this._focusInDropdown = _domHelpersQueryContains2['default'](_reactDom2['default'].findDOMNode(this.refs.menu), _domHelpersActiveElement2['default'](document)); - } - }; - - Dropdown.prototype.componentDidUpdate = function componentDidUpdate(prevProps) { - if (this.props.open && !prevProps.open) { - this.focusNextOnOpen(); - } - - if (!this.props.open && prevProps.open) { - // if focus hasn't already moved from the menu lets return it - // to the toggle - if (this._focusInDropdown) { - this._focusInDropdown = false; - this.focus(); - } - } - }; - - Dropdown.prototype.render = function render() { - var children = this.extractChildren(); - var Component = this.props.componentClass; - - var props = _lodashCompatObjectOmit2['default'](this.props, ['id', 'role']); - - var rootClasses = { - open: this.props.open, - disabled: this.props.disabled, - dropdown: !this.props.dropup, - dropup: this.props.dropup - }; - - return _react2['default'].createElement( - Component, - _extends({}, props, { - tabIndex: '-1', - className: _classnames2['default'](this.props.className, rootClasses) - }), - children - ); - }; - - Dropdown.prototype.toggleOpen = function toggleOpen() { - var eventType = arguments.length <= 0 || arguments[0] === undefined ? null : arguments[0]; - - var open = !this.props.open; - - if (open) { - this.lastOpenEventType = eventType; - } - - if (this.props.onToggle) { - this.props.onToggle(open); - } - }; - - Dropdown.prototype.handleClick = function handleClick() { - if (this.props.disabled) { - return; - } - - this.toggleOpen('click'); - }; - - Dropdown.prototype.handleKeyDown = function handleKeyDown(event) { - if (this.props.disabled) { - return; - } - - switch (event.keyCode) { - case _keycode2['default'].codes.down: - if (!this.props.open) { - this.toggleOpen('keydown'); - } else if (this.refs.menu.focusNext) { - this.refs.menu.focusNext(); - } - event.preventDefault(); - break; - case _keycode2['default'].codes.esc: - case _keycode2['default'].codes.tab: - this.handleClose(event); - break; - default: - } - }; - - Dropdown.prototype.handleClose = function handleClose() { - if (!this.props.open) { - return; - } - - this.toggleOpen(); - }; - - Dropdown.prototype.focusNextOnOpen = function focusNextOnOpen() { - var menu = this.refs.menu; - - if (!menu.focusNext) { - return; - } - - if (this.lastOpenEventType === 'keydown' || this.props.role === 'menuitem') { - menu.focusNext(); - } - }; - - Dropdown.prototype.focus = function focus() { - var toggle = _reactDom2['default'].findDOMNode(this.refs[TOGGLE_REF]); - - if (toggle && toggle.focus) { - toggle.focus(); - } - }; - - Dropdown.prototype.extractChildren = function extractChildren() { - var _this = this; - - var open = !!this.props.open; - var seen = {}; - - return _utilsValidComponentChildren2['default'].map(this.props.children, function (child) { - var extractor = _lodashCompatCollectionFind2['default'](_this.childExtractors, function (x) { - return x.matches(child); - }); - - if (extractor) { - if (seen[extractor.key]) { - return false; - } - - seen[extractor.key] = extractor.exclusive; - child = extractor.refine(child, open); - } - - return child; - }); - }; - - Dropdown.prototype.refineMenu = function refineMenu(menu, open) { - var menuProps = { - ref: 'menu', - open: open, - labelledBy: this.props.id, - pullRight: this.props.pullRight - }; - - menuProps.onClose = _utilsCreateChainedFunction2['default'](menu.props.onClose, this.props.onClose, this.handleClose); - - menuProps.onSelect = _utilsCreateChainedFunction2['default'](menu.props.onSelect, this.props.onSelect, this.handleClose); - - return _react.cloneElement(menu, menuProps, menu.props.children); - }; - - Dropdown.prototype.refineToggle = function refineToggle(toggle, open) { - var toggleProps = { - open: open, - id: this.props.id, - ref: TOGGLE_REF, - role: this.props.role - }; - - toggleProps.onClick = _utilsCreateChainedFunction2['default'](toggle.props.onClick, this.handleClick); - - toggleProps.onKeyDown = _utilsCreateChainedFunction2['default'](toggle.props.onKeyDown, this.handleKeyDown); - - return _react.cloneElement(toggle, toggleProps, toggle.props.children); - }; - - return Dropdown; - })(_react2['default'].Component); - - Dropdown.Toggle = _DropdownToggle2['default']; - - Dropdown.TOGGLE_REF = TOGGLE_REF; - Dropdown.TOGGLE_ROLE = TOGGLE_ROLE; - Dropdown.MENU_ROLE = MENU_ROLE; - - Dropdown.defaultProps = { - componentClass: _ButtonGroup2['default'], - alwaysFocusNextOnOpen: false - }; - - Dropdown.propTypes = { - /** - * The menu will open above the dropdown button, instead of below it. - */ - dropup: _react2['default'].PropTypes.bool, - - /** - * An html id attribute, necessary for assistive technologies, such as screen readers. - * @type {string|number} - * @required - */ - id: _reactPropTypesLibIsRequiredForA11y2['default'](_react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number])), - - componentClass: _reactPropTypesLibElementType2['default'], - - /** - * The children of a Dropdown may be a `<Dropdown.Toggle/>` or a `<Dropdown.Menu/>`. - * @type {node} - */ - children: _reactPropTypesLibAll2['default'](_utilsCustomPropTypes2['default'].requiredRoles(TOGGLE_ROLE, MENU_ROLE), _utilsCustomPropTypes2['default'].exclusiveRoles(MENU_ROLE)), - - /** - * Whether or not component is disabled. - */ - disabled: _react2['default'].PropTypes.bool, - - /** - * Align the menu to the right side of the Dropdown toggle - */ - pullRight: _react2['default'].PropTypes.bool, - - /** - * Whether or not the Dropdown is visible. - * - * @controllable onToggle - */ - open: _react2['default'].PropTypes.bool, - - /** - * A callback fired when the Dropdown closes. - */ - onClose: _react2['default'].PropTypes.func, - - /** - * A callback fired when the Dropdown wishes to change visibility. Called with the requested - * `open` value. - * - * ```js - * function(Boolean isOpen) {} - * ``` - * @controllable open - */ - onToggle: _react2['default'].PropTypes.func, - - /** - * A callback fired when a menu item is selected. - * - * ```js - * function(Object event, Any eventKey) - * ``` - */ - onSelect: _react2['default'].PropTypes.func, - - /** - * If `'menuitem'`, causes the dropdown to behave like a menu item rather than - * a menu button. - */ - role: _react2['default'].PropTypes.string - }; - - Dropdown = _uncontrollable2['default'](Dropdown, { open: 'onToggle' }); - - Dropdown.Toggle = _DropdownToggle2['default']; - Dropdown.Menu = _DropdownMenu2['default']; - - exports['default'] = Dropdown; - module.exports = exports['default']; - -/***/ }, -/* 93 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var babelHelpers = __webpack_require__(38); - - exports.__esModule = true; - - /**
- * document.activeElement
- */ - exports['default'] = activeElement; - - var _ownerDocument = __webpack_require__(36); - - var _ownerDocument2 = babelHelpers.interopRequireDefault(_ownerDocument); - - function activeElement() { - var doc = arguments[0] === undefined ? document : arguments[0]; - - try { - return doc.activeElement; - } catch (e) {} - } - - module.exports = exports['default']; - -/***/ }, -/* 94 */ -/***/ function(module, exports) { - - // Source: http://jsfiddle.net/vWx8V/ - // http://stackoverflow.com/questions/5603195/full-list-of-javascript-keycodes - - - - /** - * Conenience method returns corresponding value for given keyName or keyCode. - * - * @param {Mixed} keyCode {Number} or keyName {String} - * @return {Mixed} - * @api public - */ - - exports = module.exports = function(searchInput) { - // Keyboard Events - if (searchInput && 'object' === typeof searchInput) { - var hasKeyCode = searchInput.which || searchInput.keyCode || searchInput.charCode - if (hasKeyCode) searchInput = hasKeyCode - } - - // Numbers - if ('number' === typeof searchInput) return names[searchInput] - - // Everything else (cast to string) - var search = String(searchInput) - - // check codes - var foundNamedKey = codes[search.toLowerCase()] - if (foundNamedKey) return foundNamedKey - - // check aliases - var foundNamedKey = aliases[search.toLowerCase()] - if (foundNamedKey) return foundNamedKey - - // weird character? - if (search.length === 1) return search.charCodeAt(0) - - return undefined - } - - /** - * Get by name - * - * exports.code['enter'] // => 13 - */ - - var codes = exports.code = exports.codes = { - 'backspace': 8, - 'tab': 9, - 'enter': 13, - 'shift': 16, - 'ctrl': 17, - 'alt': 18, - 'pause/break': 19, - 'caps lock': 20, - 'esc': 27, - 'space': 32, - 'page up': 33, - 'page down': 34, - 'end': 35, - 'home': 36, - 'left': 37, - 'up': 38, - 'right': 39, - 'down': 40, - 'insert': 45, - 'delete': 46, - 'command': 91, - 'right click': 93, - 'numpad *': 106, - 'numpad +': 107, - 'numpad -': 109, - 'numpad .': 110, - 'numpad /': 111, - 'num lock': 144, - 'scroll lock': 145, - 'my computer': 182, - 'my calculator': 183, - ';': 186, - '=': 187, - ',': 188, - '-': 189, - '.': 190, - '/': 191, - '`': 192, - '[': 219, - '\\': 220, - ']': 221, - "'": 222, - } - - // Helper aliases - - var aliases = exports.aliases = { - 'windows': 91, - '⇧': 16, - '⌥': 18, - '⌃': 17, - '⌘': 91, - 'ctl': 17, - 'control': 17, - 'option': 18, - 'pause': 19, - 'break': 19, - 'caps': 20, - 'return': 13, - 'escape': 27, - 'spc': 32, - 'pgup': 33, - 'pgdn': 33, - 'ins': 45, - 'del': 46, - 'cmd': 91 - } - - - /*! - * Programatically add the following - */ - - // lower case chars - for (i = 97; i < 123; i++) codes[String.fromCharCode(i)] = i - 32 - - // numbers - for (var i = 48; i < 58; i++) codes[i - 48] = i - - // function keys - for (i = 1; i < 13; i++) codes['f'+i] = i + 111 - - // numpad keys - for (i = 0; i < 10; i++) codes['numpad '+i] = i + 96 - - /** - * Get by code - * - * exports.name[13] // => 'Enter' - */ - - var names = exports.names = exports.title = {} // title for backward compat - - // Create reverse mapping - for (i in codes) names[codes[i]] = i - - // Add aliases - for (var alias in aliases) { - codes[alias] = aliases[alias] - } - - -/***/ }, -/* 95 */ -/***/ function(module, exports, __webpack_require__) { - - var baseEach = __webpack_require__(96), - createFind = __webpack_require__(121); - - /** - * Iterates over elements of `collection`, returning the first element - * `predicate` returns truthy for. The predicate is bound to `thisArg` and - * invoked with three arguments: (value, index|key, collection). - * - * If a property name is provided for `predicate` the created `_.property` - * style callback returns the property value of the given element. - * - * If a value is also provided for `thisArg` the created `_.matchesProperty` - * style callback returns `true` for elements that have a matching property - * value, else `false`. - * - * If an object is provided for `predicate` the created `_.matches` style - * callback returns `true` for elements that have the properties of the given - * object, else `false`. - * - * @static - * @memberOf _ - * @alias detect - * @category Collection - * @param {Array|Object|string} collection The collection to search. - * @param {Function|Object|string} [predicate=_.identity] The function invoked - * per iteration. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {*} Returns the matched element, else `undefined`. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': true }, - * { 'user': 'fred', 'age': 40, 'active': false }, - * { 'user': 'pebbles', 'age': 1, 'active': true } - * ]; - * - * _.result(_.find(users, function(chr) { - * return chr.age < 40; - * }), 'user'); - * // => 'barney' - * - * // using the `_.matches` callback shorthand - * _.result(_.find(users, { 'age': 1, 'active': true }), 'user'); - * // => 'pebbles' - * - * // using the `_.matchesProperty` callback shorthand - * _.result(_.find(users, 'active', false), 'user'); - * // => 'fred' - * - * // using the `_.property` callback shorthand - * _.result(_.find(users, 'active'), 'user'); - * // => 'barney' - */ - var find = createFind(baseEach); - - module.exports = find; - - -/***/ }, -/* 96 */ -/***/ function(module, exports, __webpack_require__) { - - var baseForOwn = __webpack_require__(97), - createBaseEach = __webpack_require__(120); - - /** - * The base implementation of `_.forEach` without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Array|Object|string} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array|Object|string} Returns `collection`. - */ - var baseEach = createBaseEach(baseForOwn); - - module.exports = baseEach; - - -/***/ }, -/* 97 */ -/***/ function(module, exports, __webpack_require__) { - - var baseFor = __webpack_require__(98), - keys = __webpack_require__(105); - - /** - * The base implementation of `_.forOwn` without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ - function baseForOwn(object, iteratee) { - return baseFor(object, iteratee, keys); - } - - module.exports = baseForOwn; - - -/***/ }, -/* 98 */ -/***/ function(module, exports, __webpack_require__) { - - var createBaseFor = __webpack_require__(99); - - /** - * The base implementation of `baseForIn` and `baseForOwn` which iterates - * over `object` properties returned by `keysFunc` invoking `iteratee` for - * each property. Iteratee functions may exit iteration early by explicitly - * returning `false`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. - */ - var baseFor = createBaseFor(); - - module.exports = baseFor; - - -/***/ }, -/* 99 */ -/***/ function(module, exports, __webpack_require__) { - - var toObject = __webpack_require__(100); - - /** - * Creates a base function for `_.forIn` or `_.forInRight`. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ - function createBaseFor(fromRight) { - return function(object, iteratee, keysFunc) { - var iterable = toObject(object), - props = keysFunc(object), - length = props.length, - index = fromRight ? length : -1; - - while ((fromRight ? index-- : ++index < length)) { - var key = props[index]; - if (iteratee(iterable[key], key, iterable) === false) { - break; - } - } - return object; - }; - } - - module.exports = createBaseFor; - - -/***/ }, -/* 100 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(101), - isString = __webpack_require__(102), - support = __webpack_require__(104); - - /** - * Converts `value` to an object if it's not one. - * - * @private - * @param {*} value The value to process. - * @returns {Object} Returns the object. - */ - function toObject(value) { - if (support.unindexedChars && isString(value)) { - var index = -1, - length = value.length, - result = Object(value); - - while (++index < length) { - result[index] = value.charAt(index); - } - return result; - } - return isObject(value) ? value : Object(value); - } - - module.exports = toObject; - - -/***/ }, -/* 101 */ -/***/ function(module, exports) { - - /** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(1); - * // => false - */ - function isObject(value) { - // Avoid a V8 JIT bug in Chrome 19-20. - // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); - } - - module.exports = isObject; - - -/***/ }, -/* 102 */ -/***/ function(module, exports, __webpack_require__) { - - var isObjectLike = __webpack_require__(103); - - /** `Object#toString` result references. */ - var stringTag = '[object String]'; - - /** Used for native method references. */ - var objectProto = Object.prototype; - - /** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ - var objToString = objectProto.toString; - - /** - * Checks if `value` is classified as a `String` primitive or object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isString('abc'); - * // => true - * - * _.isString(1); - * // => false - */ - function isString(value) { - return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag); - } - - module.exports = isString; - - -/***/ }, -/* 103 */ -/***/ function(module, exports) { - - /** - * Checks if `value` is object-like. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - */ - function isObjectLike(value) { - return !!value && typeof value == 'object'; - } - - module.exports = isObjectLike; - - -/***/ }, -/* 104 */ -/***/ function(module, exports) { - - /** Used for native method references. */ - var arrayProto = Array.prototype, - errorProto = Error.prototype, - objectProto = Object.prototype; - - /** Native method references. */ - var propertyIsEnumerable = objectProto.propertyIsEnumerable, - splice = arrayProto.splice; - - /** - * An object environment feature flags. - * - * @static - * @memberOf _ - * @type Object - */ - var support = {}; - - (function(x) { - var Ctor = function() { this.x = x; }, - object = { '0': x, 'length': x }, - props = []; - - Ctor.prototype = { 'valueOf': x, 'y': x }; - for (var key in new Ctor) { props.push(key); } - - /** - * Detect if `name` or `message` properties of `Error.prototype` are - * enumerable by default (IE < 9, Safari < 5.1). - * - * @memberOf _.support - * @type boolean - */ - support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') || - propertyIsEnumerable.call(errorProto, 'name'); - - /** - * Detect if `prototype` properties are enumerable by default. - * - * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1 - * (if the prototype or a property on the prototype has been set) - * incorrectly set the `[[Enumerable]]` value of a function's `prototype` - * property to `true`. - * - * @memberOf _.support - * @type boolean - */ - support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype'); - - /** - * Detect if properties shadowing those on `Object.prototype` are non-enumerable. - * - * In IE < 9 an object's own properties, shadowing non-enumerable ones, - * are made non-enumerable as well (a.k.a the JScript `[[DontEnum]]` bug). - * - * @memberOf _.support - * @type boolean - */ - support.nonEnumShadows = !/valueOf/.test(props); - - /** - * Detect if own properties are iterated after inherited properties (IE < 9). - * - * @memberOf _.support - * @type boolean - */ - support.ownLast = props[0] != 'x'; - - /** - * Detect if `Array#shift` and `Array#splice` augment array-like objects - * correctly. - * - * Firefox < 10, compatibility modes of IE 8, and IE < 9 have buggy Array - * `shift()` and `splice()` functions that fail to remove the last element, - * `value[0]`, of array-like objects even though the "length" property is - * set to `0`. The `shift()` method is buggy in compatibility modes of IE 8, - * while `splice()` is buggy regardless of mode in IE < 9. - * - * @memberOf _.support - * @type boolean - */ - support.spliceObjects = (splice.call(object, 0, 1), !object[0]); - - /** - * Detect lack of support for accessing string characters by index. - * - * IE < 8 can't access characters by index. IE 8 can only access characters - * by index on string literals, not string objects. - * - * @memberOf _.support - * @type boolean - */ - support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx'; - }(1, 0)); - - module.exports = support; - - -/***/ }, -/* 105 */ -/***/ function(module, exports, __webpack_require__) { - - var getNative = __webpack_require__(106), - isArrayLike = __webpack_require__(110), - isObject = __webpack_require__(101), - shimKeys = __webpack_require__(114), - support = __webpack_require__(104); - - /* Native method references for those with the same name as other `lodash` methods. */ - var nativeKeys = getNative(Object, 'keys'); - - /** - * Creates an array of the own enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. See the - * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys) - * for more details. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keys(new Foo); - * // => ['a', 'b'] (iteration order is not guaranteed) - * - * _.keys('hi'); - * // => ['0', '1'] - */ - var keys = !nativeKeys ? shimKeys : function(object) { - var Ctor = object == null ? undefined : object.constructor; - if ((typeof Ctor == 'function' && Ctor.prototype === object) || - (typeof object == 'function' ? support.enumPrototypes : isArrayLike(object))) { - return shimKeys(object); - } - return isObject(object) ? nativeKeys(object) : []; - }; - - module.exports = keys; - - -/***/ }, -/* 106 */ -/***/ function(module, exports, __webpack_require__) { - - var isNative = __webpack_require__(107); - - /** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ - function getNative(object, key) { - var value = object == null ? undefined : object[key]; - return isNative(value) ? value : undefined; - } - - module.exports = getNative; - - -/***/ }, -/* 107 */ -/***/ function(module, exports, __webpack_require__) { - - var isFunction = __webpack_require__(108), - isHostObject = __webpack_require__(109), - isObjectLike = __webpack_require__(103); - - /** Used to detect host constructors (Safari > 5). */ - var reIsHostCtor = /^\[object .+?Constructor\]$/; - - /** Used for native method references. */ - var objectProto = Object.prototype; - - /** Used to resolve the decompiled source of functions. */ - var fnToString = Function.prototype.toString; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** Used to detect if a method is native. */ - var reIsNative = RegExp('^' + - fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' - ); - - /** - * Checks if `value` is a native function. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, else `false`. - * @example - * - * _.isNative(Array.prototype.push); - * // => true - * - * _.isNative(_); - * // => false - */ - function isNative(value) { - if (value == null) { - return false; - } - if (isFunction(value)) { - return reIsNative.test(fnToString.call(value)); - } - return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value); - } - - module.exports = isNative; - - -/***/ }, -/* 108 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(101); - - /** `Object#toString` result references. */ - var funcTag = '[object Function]'; - - /** Used for native method references. */ - var objectProto = Object.prototype; - - /** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ - var objToString = objectProto.toString; - - /** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ - function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in older versions of Chrome and Safari which return 'function' for regexes - // and Safari 8 which returns 'object' for typed array constructors. - return isObject(value) && objToString.call(value) == funcTag; - } - - module.exports = isFunction; - - -/***/ }, -/* 109 */ -/***/ function(module, exports) { - - /** - * Checks if `value` is a host object in IE < 9. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a host object, else `false`. - */ - var isHostObject = (function() { - try { - Object({ 'toString': 0 } + ''); - } catch(e) { - return function() { return false; }; - } - return function(value) { - // IE < 9 presents many host objects as `Object` objects that can coerce - // to strings despite having improperly defined `toString` methods. - return typeof value.toString != 'function' && typeof (value + '') == 'string'; - }; - }()); - - module.exports = isHostObject; - - -/***/ }, -/* 110 */ -/***/ function(module, exports, __webpack_require__) { - - var getLength = __webpack_require__(111), - isLength = __webpack_require__(113); - - /** - * Checks if `value` is array-like. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - */ - function isArrayLike(value) { - return value != null && isLength(getLength(value)); - } - - module.exports = isArrayLike; - - -/***/ }, -/* 111 */ -/***/ function(module, exports, __webpack_require__) { - - var baseProperty = __webpack_require__(112); - - /** - * Gets the "length" property value of `object`. - * - * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) - * that affects Safari on at least iOS 8.1-8.3 ARM64. - * - * @private - * @param {Object} object The object to query. - * @returns {*} Returns the "length" value. - */ - var getLength = baseProperty('length'); - - module.exports = getLength; - - -/***/ }, -/* 112 */ -/***/ function(module, exports, __webpack_require__) { - - var toObject = __webpack_require__(100); - - /** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new function. - */ - function baseProperty(key) { - return function(object) { - return object == null ? undefined : toObject(object)[key]; - }; - } - - module.exports = baseProperty; - - -/***/ }, -/* 113 */ -/***/ function(module, exports) { - - /** - * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) - * of an array-like value. - */ - var MAX_SAFE_INTEGER = 9007199254740991; - - /** - * Checks if `value` is a valid array-like length. - * - * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - */ - function isLength(value) { - return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; - } - - module.exports = isLength; - - -/***/ }, -/* 114 */ -/***/ function(module, exports, __webpack_require__) { - - var isArguments = __webpack_require__(115), - isArray = __webpack_require__(116), - isIndex = __webpack_require__(117), - isLength = __webpack_require__(113), - isString = __webpack_require__(102), - keysIn = __webpack_require__(118); - - /** Used for native method references. */ - var objectProto = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** - * A fallback implementation of `Object.keys` which creates an array of the - * own enumerable property names of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function shimKeys(object) { - var props = keysIn(object), - propsLength = props.length, - length = propsLength && object.length; - - var allowIndexes = !!length && isLength(length) && - (isArray(object) || isArguments(object) || isString(object)); - - var index = -1, - result = []; - - while (++index < propsLength) { - var key = props[index]; - if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) { - result.push(key); - } - } - return result; - } - - module.exports = shimKeys; - - -/***/ }, -/* 115 */ -/***/ function(module, exports, __webpack_require__) { - - var isArrayLike = __webpack_require__(110), - isObjectLike = __webpack_require__(103); - - /** Used for native method references. */ - var objectProto = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** Native method references. */ - var propertyIsEnumerable = objectProto.propertyIsEnumerable; - - /** - * Checks if `value` is classified as an `arguments` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isArguments(function() { return arguments; }()); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ - function isArguments(value) { - return isObjectLike(value) && isArrayLike(value) && - hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee'); - } - - module.exports = isArguments; - - -/***/ }, -/* 116 */ -/***/ function(module, exports, __webpack_require__) { - - var getNative = __webpack_require__(106), - isLength = __webpack_require__(113), - isObjectLike = __webpack_require__(103); - - /** `Object#toString` result references. */ - var arrayTag = '[object Array]'; - - /** Used for native method references. */ - var objectProto = Object.prototype; - - /** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ - var objToString = objectProto.toString; - - /* Native method references for those with the same name as other `lodash` methods. */ - var nativeIsArray = getNative(Array, 'isArray'); - - /** - * Checks if `value` is classified as an `Array` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isArray([1, 2, 3]); - * // => true - * - * _.isArray(function() { return arguments; }()); - * // => false - */ - var isArray = nativeIsArray || function(value) { - return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag; - }; - - module.exports = isArray; - - -/***/ }, -/* 117 */ -/***/ function(module, exports) { - - /** Used to detect unsigned integer values. */ - var reIsUint = /^\d+$/; - - /** - * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) - * of an array-like value. - */ - var MAX_SAFE_INTEGER = 9007199254740991; - - /** - * Checks if `value` is a valid array-like index. - * - * @private - * @param {*} value The value to check. - * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. - */ - function isIndex(value, length) { - value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1; - length = length == null ? MAX_SAFE_INTEGER : length; - return value > -1 && value % 1 == 0 && value < length; - } - - module.exports = isIndex; - - -/***/ }, -/* 118 */ -/***/ function(module, exports, __webpack_require__) { - - var arrayEach = __webpack_require__(119), - isArguments = __webpack_require__(115), - isArray = __webpack_require__(116), - isFunction = __webpack_require__(108), - isIndex = __webpack_require__(117), - isLength = __webpack_require__(113), - isObject = __webpack_require__(101), - isString = __webpack_require__(102), - support = __webpack_require__(104); - - /** `Object#toString` result references. */ - var arrayTag = '[object Array]', - boolTag = '[object Boolean]', - dateTag = '[object Date]', - errorTag = '[object Error]', - funcTag = '[object Function]', - numberTag = '[object Number]', - objectTag = '[object Object]', - regexpTag = '[object RegExp]', - stringTag = '[object String]'; - - /** Used to fix the JScript `[[DontEnum]]` bug. */ - var shadowProps = [ - 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', - 'toLocaleString', 'toString', 'valueOf' - ]; - - /** Used for native method references. */ - var errorProto = Error.prototype, - objectProto = Object.prototype, - stringProto = String.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ - var objToString = objectProto.toString; - - /** Used to avoid iterating over non-enumerable properties in IE < 9. */ - var nonEnumProps = {}; - nonEnumProps[arrayTag] = nonEnumProps[dateTag] = nonEnumProps[numberTag] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true }; - nonEnumProps[boolTag] = nonEnumProps[stringTag] = { 'constructor': true, 'toString': true, 'valueOf': true }; - nonEnumProps[errorTag] = nonEnumProps[funcTag] = nonEnumProps[regexpTag] = { 'constructor': true, 'toString': true }; - nonEnumProps[objectTag] = { 'constructor': true }; - - arrayEach(shadowProps, function(key) { - for (var tag in nonEnumProps) { - if (hasOwnProperty.call(nonEnumProps, tag)) { - var props = nonEnumProps[tag]; - props[key] = hasOwnProperty.call(props, key); - } - } - }); - - /** - * Creates an array of the own and inherited enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keysIn(new Foo); - * // => ['a', 'b', 'c'] (iteration order is not guaranteed) - */ - function keysIn(object) { - if (object == null) { - return []; - } - if (!isObject(object)) { - object = Object(object); - } - var length = object.length; - - length = (length && isLength(length) && - (isArray(object) || isArguments(object) || isString(object)) && length) || 0; - - var Ctor = object.constructor, - index = -1, - proto = (isFunction(Ctor) && Ctor.prototype) || objectProto, - isProto = proto === object, - result = Array(length), - skipIndexes = length > 0, - skipErrorProps = support.enumErrorProps && (object === errorProto || object instanceof Error), - skipProto = support.enumPrototypes && isFunction(object); - - while (++index < length) { - result[index] = (index + ''); - } - // lodash skips the `constructor` property when it infers it's iterating - // over a `prototype` object because IE < 9 can't set the `[[Enumerable]]` - // attribute of an existing property and the `constructor` property of a - // prototype defaults to non-enumerable. - for (var key in object) { - if (!(skipProto && key == 'prototype') && - !(skipErrorProps && (key == 'message' || key == 'name')) && - !(skipIndexes && isIndex(key, length)) && - !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { - result.push(key); - } - } - if (support.nonEnumShadows && object !== objectProto) { - var tag = object === stringProto ? stringTag : (object === errorProto ? errorTag : objToString.call(object)), - nonEnums = nonEnumProps[tag] || nonEnumProps[objectTag]; - - if (tag == objectTag) { - proto = objectProto; - } - length = shadowProps.length; - while (length--) { - key = shadowProps[length]; - var nonEnum = nonEnums[key]; - if (!(isProto && nonEnum) && - (nonEnum ? hasOwnProperty.call(object, key) : object[key] !== proto[key])) { - result.push(key); - } - } - } - return result; - } - - module.exports = keysIn; - - -/***/ }, -/* 119 */ -/***/ function(module, exports) { - - /** - * A specialized version of `_.forEach` for arrays without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns `array`. - */ - function arrayEach(array, iteratee) { - var index = -1, - length = array.length; - - while (++index < length) { - if (iteratee(array[index], index, array) === false) { - break; - } - } - return array; - } - - module.exports = arrayEach; - - -/***/ }, -/* 120 */ -/***/ function(module, exports, __webpack_require__) { - - var getLength = __webpack_require__(111), - isLength = __webpack_require__(113), - toObject = __webpack_require__(100); - - /** - * Creates a `baseEach` or `baseEachRight` function. - * - * @private - * @param {Function} eachFunc The function to iterate over a collection. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ - function createBaseEach(eachFunc, fromRight) { - return function(collection, iteratee) { - var length = collection ? getLength(collection) : 0; - if (!isLength(length)) { - return eachFunc(collection, iteratee); - } - var index = fromRight ? length : -1, - iterable = toObject(collection); - - while ((fromRight ? index-- : ++index < length)) { - if (iteratee(iterable[index], index, iterable) === false) { - break; - } - } - return collection; - }; - } - - module.exports = createBaseEach; - - -/***/ }, -/* 121 */ -/***/ function(module, exports, __webpack_require__) { - - var baseCallback = __webpack_require__(122), - baseFind = __webpack_require__(146), - baseFindIndex = __webpack_require__(147), - isArray = __webpack_require__(116); - - /** - * Creates a `_.find` or `_.findLast` function. - * - * @private - * @param {Function} eachFunc The function to iterate over a collection. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new find function. - */ - function createFind(eachFunc, fromRight) { - return function(collection, predicate, thisArg) { - predicate = baseCallback(predicate, thisArg, 3); - if (isArray(collection)) { - var index = baseFindIndex(collection, predicate, fromRight); - return index > -1 ? collection[index] : undefined; - } - return baseFind(collection, predicate, eachFunc); - }; - } - - module.exports = createFind; - - -/***/ }, -/* 122 */ -/***/ function(module, exports, __webpack_require__) { - - var baseMatches = __webpack_require__(123), - baseMatchesProperty = __webpack_require__(135), - bindCallback = __webpack_require__(142), - identity = __webpack_require__(143), - property = __webpack_require__(144); - - /** - * The base implementation of `_.callback` which supports specifying the - * number of arguments to provide to `func`. - * - * @private - * @param {*} [func=_.identity] The value to convert to a callback. - * @param {*} [thisArg] The `this` binding of `func`. - * @param {number} [argCount] The number of arguments to provide to `func`. - * @returns {Function} Returns the callback. - */ - function baseCallback(func, thisArg, argCount) { - var type = typeof func; - if (type == 'function') { - return thisArg === undefined - ? func - : bindCallback(func, thisArg, argCount); - } - if (func == null) { - return identity; - } - if (type == 'object') { - return baseMatches(func); - } - return thisArg === undefined - ? property(func) - : baseMatchesProperty(func, thisArg); - } - - module.exports = baseCallback; - - -/***/ }, -/* 123 */ -/***/ function(module, exports, __webpack_require__) { - - var baseIsMatch = __webpack_require__(124), - getMatchData = __webpack_require__(132), - toObject = __webpack_require__(100); - - /** - * The base implementation of `_.matches` which does not clone `source`. - * - * @private - * @param {Object} source The object of property values to match. - * @returns {Function} Returns the new function. - */ - function baseMatches(source) { - var matchData = getMatchData(source); - if (matchData.length == 1 && matchData[0][2]) { - var key = matchData[0][0], - value = matchData[0][1]; - - return function(object) { - if (object == null) { - return false; - } - object = toObject(object); - return object[key] === value && (value !== undefined || (key in object)); - }; - } - return function(object) { - return baseIsMatch(object, matchData); - }; - } - - module.exports = baseMatches; - - -/***/ }, -/* 124 */ -/***/ function(module, exports, __webpack_require__) { - - var baseIsEqual = __webpack_require__(125), - toObject = __webpack_require__(100); - - /** - * The base implementation of `_.isMatch` without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Object} object The object to inspect. - * @param {Array} matchData The propery names, values, and compare flags to match. - * @param {Function} [customizer] The function to customize comparing objects. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - */ - function baseIsMatch(object, matchData, customizer) { - var index = matchData.length, - length = index, - noCustomizer = !customizer; - - if (object == null) { - return !length; - } - object = toObject(object); - while (index--) { - var data = matchData[index]; - if ((noCustomizer && data[2]) - ? data[1] !== object[data[0]] - : !(data[0] in object) - ) { - return false; - } - } - while (++index < length) { - data = matchData[index]; - var key = data[0], - objValue = object[key], - srcValue = data[1]; - - if (noCustomizer && data[2]) { - if (objValue === undefined && !(key in object)) { - return false; - } - } else { - var result = customizer ? customizer(objValue, srcValue, key) : undefined; - if (!(result === undefined ? baseIsEqual(srcValue, objValue, customizer, true) : result)) { - return false; - } - } - } - return true; - } - - module.exports = baseIsMatch; - - -/***/ }, -/* 125 */ -/***/ function(module, exports, __webpack_require__) { - - var baseIsEqualDeep = __webpack_require__(126), - isObject = __webpack_require__(101), - isObjectLike = __webpack_require__(103); - - /** - * The base implementation of `_.isEqual` without support for `this` binding - * `customizer` functions. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @param {Function} [customizer] The function to customize comparing values. - * @param {boolean} [isLoose] Specify performing partial comparisons. - * @param {Array} [stackA] Tracks traversed `value` objects. - * @param {Array} [stackB] Tracks traversed `other` objects. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - */ - function baseIsEqual(value, other, customizer, isLoose, stackA, stackB) { - if (value === other) { - return true; - } - if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) { - return value !== value && other !== other; - } - return baseIsEqualDeep(value, other, baseIsEqual, customizer, isLoose, stackA, stackB); - } - - module.exports = baseIsEqual; - - -/***/ }, -/* 126 */ -/***/ function(module, exports, __webpack_require__) { - - var equalArrays = __webpack_require__(127), - equalByTag = __webpack_require__(129), - equalObjects = __webpack_require__(130), - isArray = __webpack_require__(116), - isHostObject = __webpack_require__(109), - isTypedArray = __webpack_require__(131); - - /** `Object#toString` result references. */ - var argsTag = '[object Arguments]', - arrayTag = '[object Array]', - objectTag = '[object Object]'; - - /** Used for native method references. */ - var objectProto = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ - var objToString = objectProto.toString; - - /** - * A specialized version of `baseIsEqual` for arrays and objects which performs - * deep comparisons and tracks traversed objects enabling objects with circular - * references to be compared. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Function} [customizer] The function to customize comparing objects. - * @param {boolean} [isLoose] Specify performing partial comparisons. - * @param {Array} [stackA=[]] Tracks traversed `value` objects. - * @param {Array} [stackB=[]] Tracks traversed `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function baseIsEqualDeep(object, other, equalFunc, customizer, isLoose, stackA, stackB) { - var objIsArr = isArray(object), - othIsArr = isArray(other), - objTag = arrayTag, - othTag = arrayTag; - - if (!objIsArr) { - objTag = objToString.call(object); - if (objTag == argsTag) { - objTag = objectTag; - } else if (objTag != objectTag) { - objIsArr = isTypedArray(object); - } - } - if (!othIsArr) { - othTag = objToString.call(other); - if (othTag == argsTag) { - othTag = objectTag; - } else if (othTag != objectTag) { - othIsArr = isTypedArray(other); - } - } - var objIsObj = objTag == objectTag && !isHostObject(object), - othIsObj = othTag == objectTag && !isHostObject(other), - isSameTag = objTag == othTag; - - if (isSameTag && !(objIsArr || objIsObj)) { - return equalByTag(object, other, objTag); - } - if (!isLoose) { - var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), - othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); - - if (objIsWrapped || othIsWrapped) { - return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, isLoose, stackA, stackB); - } - } - if (!isSameTag) { - return false; - } - // Assume cyclic values are equal. - // For more information on detecting circular references see https://es5.github.io/#JO. - stackA || (stackA = []); - stackB || (stackB = []); - - var length = stackA.length; - while (length--) { - if (stackA[length] == object) { - return stackB[length] == other; - } - } - // Add `object` and `other` to the stack of traversed objects. - stackA.push(object); - stackB.push(other); - - var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isLoose, stackA, stackB); - - stackA.pop(); - stackB.pop(); - - return result; - } - - module.exports = baseIsEqualDeep; - - -/***/ }, -/* 127 */ -/***/ function(module, exports, __webpack_require__) { - - var arraySome = __webpack_require__(128); - - /** - * A specialized version of `baseIsEqualDeep` for arrays with support for - * partial deep comparisons. - * - * @private - * @param {Array} array The array to compare. - * @param {Array} other The other array to compare. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Function} [customizer] The function to customize comparing arrays. - * @param {boolean} [isLoose] Specify performing partial comparisons. - * @param {Array} [stackA] Tracks traversed `value` objects. - * @param {Array} [stackB] Tracks traversed `other` objects. - * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. - */ - function equalArrays(array, other, equalFunc, customizer, isLoose, stackA, stackB) { - var index = -1, - arrLength = array.length, - othLength = other.length; - - if (arrLength != othLength && !(isLoose && othLength > arrLength)) { - return false; - } - // Ignore non-index properties. - while (++index < arrLength) { - var arrValue = array[index], - othValue = other[index], - result = customizer ? customizer(isLoose ? othValue : arrValue, isLoose ? arrValue : othValue, index) : undefined; - - if (result !== undefined) { - if (result) { - continue; - } - return false; - } - // Recursively compare arrays (susceptible to call stack limits). - if (isLoose) { - if (!arraySome(other, function(othValue) { - return arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB); - })) { - return false; - } - } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB))) { - return false; - } - } - return true; - } - - module.exports = equalArrays; - - -/***/ }, -/* 128 */ -/***/ function(module, exports) { - - /** - * A specialized version of `_.some` for arrays without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - */ - function arraySome(array, predicate) { - var index = -1, - length = array.length; - - while (++index < length) { - if (predicate(array[index], index, array)) { - return true; - } - } - return false; - } - - module.exports = arraySome; - - -/***/ }, -/* 129 */ -/***/ function(module, exports) { - - /** `Object#toString` result references. */ - var boolTag = '[object Boolean]', - dateTag = '[object Date]', - errorTag = '[object Error]', - numberTag = '[object Number]', - regexpTag = '[object RegExp]', - stringTag = '[object String]'; - - /** - * A specialized version of `baseIsEqualDeep` for comparing objects of - * the same `toStringTag`. - * - * **Note:** This function only supports comparing values with tags of - * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {string} tag The `toStringTag` of the objects to compare. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function equalByTag(object, other, tag) { - switch (tag) { - case boolTag: - case dateTag: - // Coerce dates and booleans to numbers, dates to milliseconds and booleans - // to `1` or `0` treating invalid dates coerced to `NaN` as not equal. - return +object == +other; - - case errorTag: - return object.name == other.name && object.message == other.message; - - case numberTag: - // Treat `NaN` vs. `NaN` as equal. - return (object != +object) - ? other != +other - : object == +other; - - case regexpTag: - case stringTag: - // Coerce regexes to strings and treat strings primitives and string - // objects as equal. See https://es5.github.io/#x15.10.6.4 for more details. - return object == (other + ''); - } - return false; - } - - module.exports = equalByTag; - - -/***/ }, -/* 130 */ -/***/ function(module, exports, __webpack_require__) { - - var keys = __webpack_require__(105); - - /** Used for native method references. */ - var objectProto = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** - * A specialized version of `baseIsEqualDeep` for objects with support for - * partial deep comparisons. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Function} [customizer] The function to customize comparing values. - * @param {boolean} [isLoose] Specify performing partial comparisons. - * @param {Array} [stackA] Tracks traversed `value` objects. - * @param {Array} [stackB] Tracks traversed `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function equalObjects(object, other, equalFunc, customizer, isLoose, stackA, stackB) { - var objProps = keys(object), - objLength = objProps.length, - othProps = keys(other), - othLength = othProps.length; - - if (objLength != othLength && !isLoose) { - return false; - } - var index = objLength; - while (index--) { - var key = objProps[index]; - if (!(isLoose ? key in other : hasOwnProperty.call(other, key))) { - return false; - } - } - var skipCtor = isLoose; - while (++index < objLength) { - key = objProps[index]; - var objValue = object[key], - othValue = other[key], - result = customizer ? customizer(isLoose ? othValue : objValue, isLoose? objValue : othValue, key) : undefined; - - // Recursively compare objects (susceptible to call stack limits). - if (!(result === undefined ? equalFunc(objValue, othValue, customizer, isLoose, stackA, stackB) : result)) { - return false; - } - skipCtor || (skipCtor = key == 'constructor'); - } - if (!skipCtor) { - var objCtor = object.constructor, - othCtor = other.constructor; - - // Non `Object` object instances with different constructors are not equal. - if (objCtor != othCtor && - ('constructor' in object && 'constructor' in other) && - !(typeof objCtor == 'function' && objCtor instanceof objCtor && - typeof othCtor == 'function' && othCtor instanceof othCtor)) { - return false; - } - } - return true; - } - - module.exports = equalObjects; - - -/***/ }, -/* 131 */ -/***/ function(module, exports, __webpack_require__) { - - var isLength = __webpack_require__(113), - isObjectLike = __webpack_require__(103); - - /** `Object#toString` result references. */ - var argsTag = '[object Arguments]', - arrayTag = '[object Array]', - boolTag = '[object Boolean]', - dateTag = '[object Date]', - errorTag = '[object Error]', - funcTag = '[object Function]', - mapTag = '[object Map]', - numberTag = '[object Number]', - objectTag = '[object Object]', - regexpTag = '[object RegExp]', - setTag = '[object Set]', - stringTag = '[object String]', - weakMapTag = '[object WeakMap]'; - - var arrayBufferTag = '[object ArrayBuffer]', - float32Tag = '[object Float32Array]', - float64Tag = '[object Float64Array]', - int8Tag = '[object Int8Array]', - int16Tag = '[object Int16Array]', - int32Tag = '[object Int32Array]', - uint8Tag = '[object Uint8Array]', - uint8ClampedTag = '[object Uint8ClampedArray]', - uint16Tag = '[object Uint16Array]', - uint32Tag = '[object Uint32Array]'; - - /** Used to identify `toStringTag` values of typed arrays. */ - var typedArrayTags = {}; - typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = - typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = - typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = - typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = - typedArrayTags[uint32Tag] = true; - typedArrayTags[argsTag] = typedArrayTags[arrayTag] = - typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = - typedArrayTags[dateTag] = typedArrayTags[errorTag] = - typedArrayTags[funcTag] = typedArrayTags[mapTag] = - typedArrayTags[numberTag] = typedArrayTags[objectTag] = - typedArrayTags[regexpTag] = typedArrayTags[setTag] = - typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; - - /** Used for native method references. */ - var objectProto = Object.prototype; - - /** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ - var objToString = objectProto.toString; - - /** - * Checks if `value` is classified as a typed array. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isTypedArray(new Uint8Array); - * // => true - * - * _.isTypedArray([]); - * // => false - */ - function isTypedArray(value) { - return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)]; - } - - module.exports = isTypedArray; - - -/***/ }, -/* 132 */ -/***/ function(module, exports, __webpack_require__) { - - var isStrictComparable = __webpack_require__(133), - pairs = __webpack_require__(134); - - /** - * Gets the propery names, values, and compare flags of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the match data of `object`. - */ - function getMatchData(object) { - var result = pairs(object), - length = result.length; - - while (length--) { - result[length][2] = isStrictComparable(result[length][1]); - } - return result; - } - - module.exports = getMatchData; - - -/***/ }, -/* 133 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(101); - - /** - * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` if suitable for strict - * equality comparisons, else `false`. - */ - function isStrictComparable(value) { - return value === value && !isObject(value); - } - - module.exports = isStrictComparable; - - -/***/ }, -/* 134 */ -/***/ function(module, exports, __webpack_require__) { - - var keys = __webpack_require__(105), - toObject = __webpack_require__(100); - - /** - * Creates a two dimensional array of the key-value pairs for `object`, - * e.g. `[[key1, value1], [key2, value2]]`. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the new array of key-value pairs. - * @example - * - * _.pairs({ 'barney': 36, 'fred': 40 }); - * // => [['barney', 36], ['fred', 40]] (iteration order is not guaranteed) - */ - function pairs(object) { - object = toObject(object); - - var index = -1, - props = keys(object), - length = props.length, - result = Array(length); - - while (++index < length) { - var key = props[index]; - result[index] = [key, object[key]]; - } - return result; - } - - module.exports = pairs; - - -/***/ }, -/* 135 */ -/***/ function(module, exports, __webpack_require__) { - - var baseGet = __webpack_require__(136), - baseIsEqual = __webpack_require__(125), - baseSlice = __webpack_require__(137), - isArray = __webpack_require__(116), - isKey = __webpack_require__(138), - isStrictComparable = __webpack_require__(133), - last = __webpack_require__(139), - toObject = __webpack_require__(100), - toPath = __webpack_require__(140); - - /** - * The base implementation of `_.matchesProperty` which does not clone `srcValue`. - * - * @private - * @param {string} path The path of the property to get. - * @param {*} srcValue The value to compare. - * @returns {Function} Returns the new function. - */ - function baseMatchesProperty(path, srcValue) { - var isArr = isArray(path), - isCommon = isKey(path) && isStrictComparable(srcValue), - pathKey = (path + ''); - - path = toPath(path); - return function(object) { - if (object == null) { - return false; - } - var key = pathKey; - object = toObject(object); - if ((isArr || !isCommon) && !(key in object)) { - object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1)); - if (object == null) { - return false; - } - key = last(path); - object = toObject(object); - } - return object[key] === srcValue - ? (srcValue !== undefined || (key in object)) - : baseIsEqual(srcValue, object[key], undefined, true); - }; - } - - module.exports = baseMatchesProperty; - - -/***/ }, -/* 136 */ -/***/ function(module, exports, __webpack_require__) { - - var toObject = __webpack_require__(100); - - /** - * The base implementation of `get` without support for string paths - * and default values. - * - * @private - * @param {Object} object The object to query. - * @param {Array} path The path of the property to get. - * @param {string} [pathKey] The key representation of path. - * @returns {*} Returns the resolved value. - */ - function baseGet(object, path, pathKey) { - if (object == null) { - return; - } - object = toObject(object); - if (pathKey !== undefined && pathKey in object) { - path = [pathKey]; - } - var index = 0, - length = path.length; - - while (object != null && index < length) { - object = toObject(object)[path[index++]]; - } - return (index && index == length) ? object : undefined; - } - - module.exports = baseGet; - - -/***/ }, -/* 137 */ -/***/ function(module, exports) { - - /** - * The base implementation of `_.slice` without an iteratee call guard. - * - * @private - * @param {Array} array The array to slice. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the slice of `array`. - */ - function baseSlice(array, start, end) { - var index = -1, - length = array.length; - - start = start == null ? 0 : (+start || 0); - if (start < 0) { - start = -start > length ? 0 : (length + start); - } - end = (end === undefined || end > length) ? length : (+end || 0); - if (end < 0) { - end += length; - } - length = start > end ? 0 : ((end - start) >>> 0); - start >>>= 0; - - var result = Array(length); - while (++index < length) { - result[index] = array[index + start]; - } - return result; - } - - module.exports = baseSlice; - - -/***/ }, -/* 138 */ -/***/ function(module, exports, __webpack_require__) { - - var isArray = __webpack_require__(116), - toObject = __webpack_require__(100); - - /** Used to match property names within property paths. */ - var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/, - reIsPlainProp = /^\w*$/; - - /** - * Checks if `value` is a property name and not a property path. - * - * @private - * @param {*} value The value to check. - * @param {Object} [object] The object to query keys on. - * @returns {boolean} Returns `true` if `value` is a property name, else `false`. - */ - function isKey(value, object) { - var type = typeof value; - if ((type == 'string' && reIsPlainProp.test(value)) || type == 'number') { - return true; - } - if (isArray(value)) { - return false; - } - var result = !reIsDeepProp.test(value); - return result || (object != null && value in toObject(object)); - } - - module.exports = isKey; - - -/***/ }, -/* 139 */ -/***/ function(module, exports) { - - /** - * Gets the last element of `array`. - * - * @static - * @memberOf _ - * @category Array - * @param {Array} array The array to query. - * @returns {*} Returns the last element of `array`. - * @example - * - * _.last([1, 2, 3]); - * // => 3 - */ - function last(array) { - var length = array ? array.length : 0; - return length ? array[length - 1] : undefined; - } - - module.exports = last; - - -/***/ }, -/* 140 */ -/***/ function(module, exports, __webpack_require__) { - - var baseToString = __webpack_require__(141), - isArray = __webpack_require__(116); - - /** Used to match property names within property paths. */ - var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g; - - /** Used to match backslashes in property paths. */ - var reEscapeChar = /\\(\\)?/g; - - /** - * Converts `value` to property path array if it's not one. - * - * @private - * @param {*} value The value to process. - * @returns {Array} Returns the property path array. - */ - function toPath(value) { - if (isArray(value)) { - return value; - } - var result = []; - baseToString(value).replace(rePropName, function(match, number, quote, string) { - result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match)); - }); - return result; - } - - module.exports = toPath; - - -/***/ }, -/* 141 */ -/***/ function(module, exports) { - - /** - * Converts `value` to a string if it's not one. An empty string is returned - * for `null` or `undefined` values. - * - * @private - * @param {*} value The value to process. - * @returns {string} Returns the string. - */ - function baseToString(value) { - return value == null ? '' : (value + ''); - } - - module.exports = baseToString; - - -/***/ }, -/* 142 */ -/***/ function(module, exports, __webpack_require__) { - - var identity = __webpack_require__(143); - - /** - * A specialized version of `baseCallback` which only supports `this` binding - * and specifying the number of arguments to provide to `func`. - * - * @private - * @param {Function} func The function to bind. - * @param {*} thisArg The `this` binding of `func`. - * @param {number} [argCount] The number of arguments to provide to `func`. - * @returns {Function} Returns the callback. - */ - function bindCallback(func, thisArg, argCount) { - if (typeof func != 'function') { - return identity; - } - if (thisArg === undefined) { - return func; - } - switch (argCount) { - case 1: return function(value) { - return func.call(thisArg, value); - }; - case 3: return function(value, index, collection) { - return func.call(thisArg, value, index, collection); - }; - case 4: return function(accumulator, value, index, collection) { - return func.call(thisArg, accumulator, value, index, collection); - }; - case 5: return function(value, other, key, object, source) { - return func.call(thisArg, value, other, key, object, source); - }; - } - return function() { - return func.apply(thisArg, arguments); - }; - } - - module.exports = bindCallback; - - -/***/ }, -/* 143 */ -/***/ function(module, exports) { - - /** - * This method returns the first argument provided to it. - * - * @static - * @memberOf _ - * @category Utility - * @param {*} value Any value. - * @returns {*} Returns `value`. - * @example - * - * var object = { 'user': 'fred' }; - * - * _.identity(object) === object; - * // => true - */ - function identity(value) { - return value; - } - - module.exports = identity; - - -/***/ }, -/* 144 */ -/***/ function(module, exports, __webpack_require__) { - - var baseProperty = __webpack_require__(112), - basePropertyDeep = __webpack_require__(145), - isKey = __webpack_require__(138); - - /** - * Creates a function that returns the property value at `path` on a - * given object. - * - * @static - * @memberOf _ - * @category Utility - * @param {Array|string} path The path of the property to get. - * @returns {Function} Returns the new function. - * @example - * - * var objects = [ - * { 'a': { 'b': { 'c': 2 } } }, - * { 'a': { 'b': { 'c': 1 } } } - * ]; - * - * _.map(objects, _.property('a.b.c')); - * // => [2, 1] - * - * _.pluck(_.sortBy(objects, _.property(['a', 'b', 'c'])), 'a.b.c'); - * // => [1, 2] - */ - function property(path) { - return isKey(path) ? baseProperty(path) : basePropertyDeep(path); - } - - module.exports = property; - - -/***/ }, -/* 145 */ -/***/ function(module, exports, __webpack_require__) { - - var baseGet = __webpack_require__(136), - toPath = __webpack_require__(140); - - /** - * A specialized version of `baseProperty` which supports deep paths. - * - * @private - * @param {Array|string} path The path of the property to get. - * @returns {Function} Returns the new function. - */ - function basePropertyDeep(path) { - var pathKey = (path + ''); - path = toPath(path); - return function(object) { - return baseGet(object, path, pathKey); - }; - } - - module.exports = basePropertyDeep; - - -/***/ }, -/* 146 */ -/***/ function(module, exports) { - - /** - * The base implementation of `_.find`, `_.findLast`, `_.findKey`, and `_.findLastKey`, - * without support for callback shorthands and `this` binding, which iterates - * over `collection` using the provided `eachFunc`. - * - * @private - * @param {Array|Object|string} collection The collection to search. - * @param {Function} predicate The function invoked per iteration. - * @param {Function} eachFunc The function to iterate over `collection`. - * @param {boolean} [retKey] Specify returning the key of the found element - * instead of the element itself. - * @returns {*} Returns the found element or its key, else `undefined`. - */ - function baseFind(collection, predicate, eachFunc, retKey) { - var result; - eachFunc(collection, function(value, key, collection) { - if (predicate(value, key, collection)) { - result = retKey ? key : value; - return false; - } - }); - return result; - } - - module.exports = baseFind; - - -/***/ }, -/* 147 */ -/***/ function(module, exports) { - - /** - * The base implementation of `_.findIndex` and `_.findLastIndex` without - * support for callback shorthands and `this` binding. - * - * @private - * @param {Array} array The array to search. - * @param {Function} predicate The function invoked per iteration. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseFindIndex(array, predicate, fromRight) { - var length = array.length, - index = fromRight ? length : -1; - - while ((fromRight ? index-- : ++index < length)) { - if (predicate(array[index], index, array)) { - return index; - } - } - return -1; - } - - module.exports = baseFindIndex; - - -/***/ }, -/* 148 */ -/***/ function(module, exports, __webpack_require__) { - - var arrayMap = __webpack_require__(149), - baseDifference = __webpack_require__(150), - baseFlatten = __webpack_require__(157), - bindCallback = __webpack_require__(142), - keysIn = __webpack_require__(118), - pickByArray = __webpack_require__(159), - pickByCallback = __webpack_require__(160), - restParam = __webpack_require__(162); - - /** - * The opposite of `_.pick`; this method creates an object composed of the - * own and inherited enumerable properties of `object` that are not omitted. - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The source object. - * @param {Function|...(string|string[])} [predicate] The function invoked per - * iteration or property names to omit, specified as individual property - * names or arrays of property names. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'user': 'fred', 'age': 40 }; - * - * _.omit(object, 'age'); - * // => { 'user': 'fred' } - * - * _.omit(object, _.isNumber); - * // => { 'user': 'fred' } - */ - var omit = restParam(function(object, props) { - if (object == null) { - return {}; - } - if (typeof props[0] != 'function') { - var props = arrayMap(baseFlatten(props), String); - return pickByArray(object, baseDifference(keysIn(object), props)); - } - var predicate = bindCallback(props[0], props[1], 3); - return pickByCallback(object, function(value, key, object) { - return !predicate(value, key, object); - }); - }); - - module.exports = omit; - - -/***/ }, -/* 149 */ -/***/ function(module, exports) { - - /** - * A specialized version of `_.map` for arrays without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ - function arrayMap(array, iteratee) { - var index = -1, - length = array.length, - result = Array(length); - - while (++index < length) { - result[index] = iteratee(array[index], index, array); - } - return result; - } - - module.exports = arrayMap; - - -/***/ }, -/* 150 */ -/***/ function(module, exports, __webpack_require__) { - - var baseIndexOf = __webpack_require__(151), - cacheIndexOf = __webpack_require__(153), - createCache = __webpack_require__(154); - - /** Used as the size to enable large array optimizations. */ - var LARGE_ARRAY_SIZE = 200; - - /** - * The base implementation of `_.difference` which accepts a single array - * of values to exclude. - * - * @private - * @param {Array} array The array to inspect. - * @param {Array} values The values to exclude. - * @returns {Array} Returns the new array of filtered values. - */ - function baseDifference(array, values) { - var length = array ? array.length : 0, - result = []; - - if (!length) { - return result; - } - var index = -1, - indexOf = baseIndexOf, - isCommon = true, - cache = (isCommon && values.length >= LARGE_ARRAY_SIZE) ? createCache(values) : null, - valuesLength = values.length; - - if (cache) { - indexOf = cacheIndexOf; - isCommon = false; - values = cache; - } - outer: - while (++index < length) { - var value = array[index]; - - if (isCommon && value === value) { - var valuesIndex = valuesLength; - while (valuesIndex--) { - if (values[valuesIndex] === value) { - continue outer; - } - } - result.push(value); - } - else if (indexOf(values, value, 0) < 0) { - result.push(value); - } - } - return result; - } - - module.exports = baseDifference; - - -/***/ }, -/* 151 */ -/***/ function(module, exports, __webpack_require__) { - - var indexOfNaN = __webpack_require__(152); - - /** - * The base implementation of `_.indexOf` without support for binary searches. - * - * @private - * @param {Array} array The array to search. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseIndexOf(array, value, fromIndex) { - if (value !== value) { - return indexOfNaN(array, fromIndex); - } - var index = fromIndex - 1, - length = array.length; - - while (++index < length) { - if (array[index] === value) { - return index; - } - } - return -1; - } - - module.exports = baseIndexOf; - - -/***/ }, -/* 152 */ -/***/ function(module, exports) { - - /** - * Gets the index at which the first occurrence of `NaN` is found in `array`. - * - * @private - * @param {Array} array The array to search. - * @param {number} fromIndex The index to search from. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched `NaN`, else `-1`. - */ - function indexOfNaN(array, fromIndex, fromRight) { - var length = array.length, - index = fromIndex + (fromRight ? 0 : -1); - - while ((fromRight ? index-- : ++index < length)) { - var other = array[index]; - if (other !== other) { - return index; - } - } - return -1; - } - - module.exports = indexOfNaN; - - -/***/ }, -/* 153 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(101); - - /** - * Checks if `value` is in `cache` mimicking the return signature of - * `_.indexOf` by returning `0` if the value is found, else `-1`. - * - * @private - * @param {Object} cache The cache to search. - * @param {*} value The value to search for. - * @returns {number} Returns `0` if `value` is found, else `-1`. - */ - function cacheIndexOf(cache, value) { - var data = cache.data, - result = (typeof value == 'string' || isObject(value)) ? data.set.has(value) : data.hash[value]; - - return result ? 0 : -1; - } - - module.exports = cacheIndexOf; - - -/***/ }, -/* 154 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(global) {var SetCache = __webpack_require__(155), - getNative = __webpack_require__(106); - - /** Native method references. */ - var Set = getNative(global, 'Set'); - - /* Native method references for those with the same name as other `lodash` methods. */ - var nativeCreate = getNative(Object, 'create'); - - /** - * Creates a `Set` cache object to optimize linear searches of large arrays. - * - * @private - * @param {Array} [values] The values to cache. - * @returns {null|Object} Returns the new cache object if `Set` is supported, else `null`. - */ - function createCache(values) { - return (nativeCreate && Set) ? new SetCache(values) : null; - } - - module.exports = createCache; - - /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) - -/***/ }, -/* 155 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(global) {var cachePush = __webpack_require__(156), - getNative = __webpack_require__(106); - - /** Native method references. */ - var Set = getNative(global, 'Set'); - - /* Native method references for those with the same name as other `lodash` methods. */ - var nativeCreate = getNative(Object, 'create'); - - /** - * - * Creates a cache object to store unique values. - * - * @private - * @param {Array} [values] The values to cache. - */ - function SetCache(values) { - var length = values ? values.length : 0; - - this.data = { 'hash': nativeCreate(null), 'set': new Set }; - while (length--) { - this.push(values[length]); - } - } - - // Add functions to the `Set` cache. - SetCache.prototype.push = cachePush; - - module.exports = SetCache; - - /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) - -/***/ }, -/* 156 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(101); - - /** - * Adds `value` to the cache. - * - * @private - * @name push - * @memberOf SetCache - * @param {*} value The value to cache. - */ - function cachePush(value) { - var data = this.data; - if (typeof value == 'string' || isObject(value)) { - data.set.add(value); - } else { - data.hash[value] = true; - } - } - - module.exports = cachePush; - - -/***/ }, -/* 157 */ -/***/ function(module, exports, __webpack_require__) { - - var arrayPush = __webpack_require__(158), - isArguments = __webpack_require__(115), - isArray = __webpack_require__(116), - isArrayLike = __webpack_require__(110), - isObjectLike = __webpack_require__(103); - - /** - * The base implementation of `_.flatten` with added support for restricting - * flattening and specifying the start index. - * - * @private - * @param {Array} array The array to flatten. - * @param {boolean} [isDeep] Specify a deep flatten. - * @param {boolean} [isStrict] Restrict flattening to arrays-like objects. - * @param {Array} [result=[]] The initial result value. - * @returns {Array} Returns the new flattened array. - */ - function baseFlatten(array, isDeep, isStrict, result) { - result || (result = []); - - var index = -1, - length = array.length; - - while (++index < length) { - var value = array[index]; - if (isObjectLike(value) && isArrayLike(value) && - (isStrict || isArray(value) || isArguments(value))) { - if (isDeep) { - // Recursively flatten arrays (susceptible to call stack limits). - baseFlatten(value, isDeep, isStrict, result); - } else { - arrayPush(result, value); - } - } else if (!isStrict) { - result[result.length] = value; - } - } - return result; - } - - module.exports = baseFlatten; - - -/***/ }, -/* 158 */ -/***/ function(module, exports) { - - /** - * Appends the elements of `values` to `array`. - * - * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to append. - * @returns {Array} Returns `array`. - */ - function arrayPush(array, values) { - var index = -1, - length = values.length, - offset = array.length; - - while (++index < length) { - array[offset + index] = values[index]; - } - return array; - } - - module.exports = arrayPush; - - -/***/ }, -/* 159 */ -/***/ function(module, exports, __webpack_require__) { - - var toObject = __webpack_require__(100); - - /** - * A specialized version of `_.pick` which picks `object` properties specified - * by `props`. - * - * @private - * @param {Object} object The source object. - * @param {string[]} props The property names to pick. - * @returns {Object} Returns the new object. - */ - function pickByArray(object, props) { - object = toObject(object); - - var index = -1, - length = props.length, - result = {}; - - while (++index < length) { - var key = props[index]; - if (key in object) { - result[key] = object[key]; - } - } - return result; - } - - module.exports = pickByArray; - - -/***/ }, -/* 160 */ -/***/ function(module, exports, __webpack_require__) { - - var baseForIn = __webpack_require__(161); - - /** - * A specialized version of `_.pick` which picks `object` properties `predicate` - * returns truthy for. - * - * @private - * @param {Object} object The source object. - * @param {Function} predicate The function invoked per iteration. - * @returns {Object} Returns the new object. - */ - function pickByCallback(object, predicate) { - var result = {}; - baseForIn(object, function(value, key, object) { - if (predicate(value, key, object)) { - result[key] = value; - } - }); - return result; - } - - module.exports = pickByCallback; - - -/***/ }, -/* 161 */ -/***/ function(module, exports, __webpack_require__) { - - var baseFor = __webpack_require__(98), - keysIn = __webpack_require__(118); - - /** - * The base implementation of `_.forIn` without support for callback - * shorthands and `this` binding. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ - function baseForIn(object, iteratee) { - return baseFor(object, iteratee, keysIn); - } - - module.exports = baseForIn; - - -/***/ }, -/* 162 */ -/***/ function(module, exports) { - - /** Used as the `TypeError` message for "Functions" methods. */ - var FUNC_ERROR_TEXT = 'Expected a function'; - - /* Native method references for those with the same name as other `lodash` methods. */ - var nativeMax = Math.max; - - /** - * Creates a function that invokes `func` with the `this` binding of the - * created function and arguments from `start` and beyond provided as an array. - * - * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters). - * - * @static - * @memberOf _ - * @category Function - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @returns {Function} Returns the new function. - * @example - * - * var say = _.restParam(function(what, names) { - * return what + ' ' + _.initial(names).join(', ') + - * (_.size(names) > 1 ? ', & ' : '') + _.last(names); - * }); - * - * say('hello', 'fred', 'barney', 'pebbles'); - * // => 'hello fred, barney, & pebbles' - */ - function restParam(func, start) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0); - return function() { - var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - rest = Array(length); - - while (++index < length) { - rest[index] = args[start + index]; - } - switch (start) { - case 0: return func.call(this, rest); - case 1: return func.call(this, args[0], rest); - case 2: return func.call(this, args[0], args[1], rest); - } - var otherArgs = Array(start + 1); - index = -1; - while (++index < start) { - otherArgs[index] = args[index]; - } - otherArgs[start] = rest; - return func.apply(this, otherArgs); - }; - } - - module.exports = restParam; - - -/***/ }, -/* 163 */ -/***/ function(module, exports) { - - "use strict"; - - exports.__esModule = true; - exports["default"] = isRequiredForA11y; - - function isRequiredForA11y(propType) { - return function validate(props, propName, componentName) { - if (props[propName] == null) { - return new Error("The prop '" + propName + "' is required to make '" + componentName + "' accessible" + " for users using assistive technologies such as screen readers"); - } - - return propType(props, propName, componentName); - }; - } - - module.exports = exports["default"]; - -/***/ }, -/* 164 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - exports.__esModule = true; - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - var _createUncontrollable = __webpack_require__(165); - - var _createUncontrollable2 = _interopRequireDefault(_createUncontrollable); - - var mixin = { - shouldComponentUpdate: function shouldComponentUpdate() { - //let the forceUpdate trigger the update - return !this._notifying; - } - }; - - function set(component, propName, handler, value, args) { - if (handler) { - component._notifying = true; - handler.call.apply(handler, [component, value].concat(args)); - component._notifying = false; - } - - component._values[propName] = value; - component.forceUpdate(); - } - - exports['default'] = _createUncontrollable2['default']([mixin], set); - module.exports = exports['default']; - -/***/ }, -/* 165 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - exports.__esModule = true; - - var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - - exports['default'] = createUncontrollable; - - function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _utils = __webpack_require__(166); - - var utils = _interopRequireWildcard(_utils); - - function createUncontrollable(mixins, set) { - - return uncontrollable; - - function uncontrollable(Component, controlledValues) { - var methods = arguments.length <= 2 || arguments[2] === undefined ? [] : arguments[2]; - - var displayName = Component.displayName || Component.name || 'Component', - basePropTypes = utils.getType(Component).propTypes, - propTypes; - - propTypes = utils.uncontrolledPropTypes(controlledValues, basePropTypes, displayName); - - methods = utils.transform(methods, function (obj, method) { - obj[method] = function () { - var _refs$inner; - - return (_refs$inner = this.refs.inner)[method].apply(_refs$inner, arguments); - }; - }, {}); - - var component = _react2['default'].createClass(_extends({ - - displayName: 'Uncontrolled(' + displayName + ')', - - mixins: mixins, - - propTypes: propTypes - - }, methods, { - - componentWillMount: function componentWillMount() { - var props = this.props, - keys = Object.keys(controlledValues); - - this._values = utils.transform(keys, function (values, key) { - values[key] = props[utils.defaultKey(key)]; - }, {}); - }, - - /**
- * If a prop switches from controlled to Uncontrolled
- * reset its value to the defaultValue
- */ - componentWillReceiveProps: function componentWillReceiveProps(nextProps) { - var _this = this; - - var props = this.props, - keys = Object.keys(controlledValues); - - keys.forEach(function (key) { - if (utils.getValue(nextProps, key) === undefined && utils.getValue(props, key) !== undefined) { - _this._values[key] = nextProps[utils.defaultKey(key)]; - } - }); - }, - - render: function render() { - var _this2 = this; - - var newProps = {}; - var _props = this.props; - var valueLink = _props.valueLink; - var checkedLink = _props.checkedLink; - - var props = _objectWithoutProperties(_props, ['valueLink', 'checkedLink']); - - utils.each(controlledValues, function (handle, propName) { - var linkPropName = utils.getLinkName(propName), - prop = _this2.props[propName]; - - if (linkPropName && !isProp(_this2.props, propName) && isProp(_this2.props, linkPropName)) { - prop = _this2.props[linkPropName].value; - } - - newProps[propName] = prop !== undefined ? prop : _this2._values[propName]; - - newProps[handle] = setAndNotify.bind(_this2, propName); - }); - - newProps = _extends({}, props, newProps, { ref: 'inner' }); - - return _react2['default'].createElement(Component, newProps); - } - - })); - - component.ControlledComponent = Component; - - return component; - - function setAndNotify(propName, value) { - var linkName = utils.getLinkName(propName), - handler = this.props[controlledValues[propName]]; - - if (linkName && isProp(this.props, linkName) && !handler) { - handler = this.props[linkName].requestChange; - } - - for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { - args[_key - 2] = arguments[_key]; - } - - set(this, propName, handler, value, args); - } - - function isProp(props, prop) { - return props[prop] !== undefined; - } - } - } - - module.exports = exports['default']; - -/***/ }, -/* 166 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - exports.__esModule = true; - exports.customPropType = customPropType; - exports.uncontrolledPropTypes = uncontrolledPropTypes; - exports.getType = getType; - exports.getValue = getValue; - exports.getLinkName = getLinkName; - exports.defaultKey = defaultKey; - exports.chain = chain; - exports.transform = transform; - exports.each = each; - exports.has = has; - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _invariant = __webpack_require__(167); - - var _invariant2 = _interopRequireDefault(_invariant); - - function customPropType(handler, propType, name) { - - return function (props, propName) { - - if (props[propName] !== undefined) { - if (!props[handler]) { - return new Error('You have provided a `' + propName + '` prop to ' + '`' + name + '` without an `' + handler + '` handler. This will render a read-only field. ' + 'If the field should be mutable use `' + defaultKey(propName) + '`. Otherwise, set `' + handler + '`'); - } - - return propType && propType(props, propName, name); - } - }; - } - - function uncontrolledPropTypes(controlledValues, basePropTypes, displayName) { - var propTypes = {}; - - if (("development") !== 'production' && basePropTypes) { - transform(controlledValues, function (obj, handler, prop) { - var type = basePropTypes[prop]; - - _invariant2['default'](typeof handler === 'string' && handler.trim().length, 'Uncontrollable - [%s]: the prop `%s` needs a valid handler key name in order to make it uncontrollable', displayName, prop); - - obj[prop] = customPropType(handler, type, displayName); - - if (type !== undefined) obj[defaultKey(prop)] = type; - }, propTypes); - } - - return propTypes; - } - - var version = _react2['default'].version.split('.').map(parseFloat); - - exports.version = version; - - function getType(component) { - if (version[0] === 0 && version[1] >= 13) return component; - - return component.type; - } - - function getValue(props, name) { - var linkPropName = getLinkName(name); - - if (linkPropName && !isProp(props, name) && isProp(props, linkPropName)) return props[linkPropName].value; - - return props[name]; - } - - function isProp(props, prop) { - return props[prop] !== undefined; - } - - function getLinkName(name) { - return name === 'value' ? 'valueLink' : name === 'checked' ? 'checkedLink' : null; - } - - function defaultKey(key) { - return 'default' + key.charAt(0).toUpperCase() + key.substr(1); - } - - function chain(thisArg, a, b) { - return function chainedFunction() { - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - a && a.call.apply(a, [thisArg].concat(args)); - b && b.call.apply(b, [thisArg].concat(args)); - }; - } - - function transform(obj, cb, seed) { - each(obj, cb.bind(null, seed = seed || (Array.isArray(obj) ? [] : {}))); - return seed; - } - - function each(obj, cb, thisArg) { - if (Array.isArray(obj)) return obj.forEach(cb, thisArg); - - for (var key in obj) if (has(obj, key)) cb.call(thisArg, obj[key], key, obj); - } - - function has(o, k) { - return o ? Object.prototype.hasOwnProperty.call(o, k) : false; - } - -/***/ }, -/* 167 */ -/***/ function(module, exports, __webpack_require__) { - - /** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule invariant - */ - - 'use strict'; - - /** - * Use invariant() to assert state which your program assumes to be true. - * - * Provide sprintf-style format (only %s is supported) and arguments - * to provide information about what broke and what you were - * expecting. - * - * The invariant message will be stripped in production, but the invariant - * will remain to ensure logic does not differ in production. - */ - - var invariant = function(condition, format, a, b, c, d, e, f) { - if (true) { - if (format === undefined) { - throw new Error('invariant requires an error message argument'); - } - } - - if (!condition) { - var error; - if (format === undefined) { - error = new Error( - 'Minified exception occurred; use the non-minified dev environment ' + - 'for the full error message and additional helpful warnings.' - ); - } else { - var args = [a, b, c, d, e, f]; - var argIndex = 0; - error = new Error( - 'Invariant Violation: ' + - format.replace(/%s/g, function() { return args[argIndex++]; }) - ); - } - - error.framesToPop = 1; // we don't care about invariant's own frame - throw error; - } - }; - - module.exports = invariant; - - -/***/ }, -/* 168 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _objectWithoutProperties = __webpack_require__(26)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _keycode = __webpack_require__(94); - - var _keycode2 = _interopRequireDefault(_keycode); - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _reactDom = __webpack_require__(34); - - var _reactDom2 = _interopRequireDefault(_reactDom); - - var _reactOverlaysLibRootCloseWrapper = __webpack_require__(169); - - var _reactOverlaysLibRootCloseWrapper2 = _interopRequireDefault(_reactOverlaysLibRootCloseWrapper); - - var _utilsValidComponentChildren = __webpack_require__(7); - - var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); - - var _utilsCreateChainedFunction = __webpack_require__(6); - - var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); - - var DropdownMenu = (function (_React$Component) { - _inherits(DropdownMenu, _React$Component); - - function DropdownMenu(props) { - _classCallCheck(this, DropdownMenu); - - _React$Component.call(this, props); - - this.focusNext = this.focusNext.bind(this); - this.focusPrevious = this.focusPrevious.bind(this); - this.getFocusableMenuItems = this.getFocusableMenuItems.bind(this); - this.getItemsAndActiveIndex = this.getItemsAndActiveIndex.bind(this); - - this.handleKeyDown = this.handleKeyDown.bind(this); - } - - DropdownMenu.prototype.handleKeyDown = function handleKeyDown(event) { - switch (event.keyCode) { - case _keycode2['default'].codes.down: - this.focusNext(); - event.preventDefault(); - break; - case _keycode2['default'].codes.up: - this.focusPrevious(); - event.preventDefault(); - break; - case _keycode2['default'].codes.esc: - case _keycode2['default'].codes.tab: - this.props.onClose(event); - break; - default: - } - }; - - DropdownMenu.prototype.focusNext = function focusNext() { - var _getItemsAndActiveIndex = this.getItemsAndActiveIndex(); - - var items = _getItemsAndActiveIndex.items; - var activeItemIndex = _getItemsAndActiveIndex.activeItemIndex; - - if (items.length === 0) { - return; - } - - if (activeItemIndex === items.length - 1) { - items[0].focus(); - return; - } - - items[activeItemIndex + 1].focus(); - }; - - DropdownMenu.prototype.focusPrevious = function focusPrevious() { - var _getItemsAndActiveIndex2 = this.getItemsAndActiveIndex(); - - var items = _getItemsAndActiveIndex2.items; - var activeItemIndex = _getItemsAndActiveIndex2.activeItemIndex; - - if (activeItemIndex === 0) { - items[items.length - 1].focus(); - return; - } - - items[activeItemIndex - 1].focus(); - }; - - DropdownMenu.prototype.getItemsAndActiveIndex = function getItemsAndActiveIndex() { - var items = this.getFocusableMenuItems(); - var activeElement = document.activeElement; - var activeItemIndex = items.indexOf(activeElement); - - return { items: items, activeItemIndex: activeItemIndex }; - }; - - DropdownMenu.prototype.getFocusableMenuItems = function getFocusableMenuItems() { - var menuNode = _reactDom2['default'].findDOMNode(this); - - if (menuNode === undefined) { - return []; - } - - return [].slice.call(menuNode.querySelectorAll('[tabIndex="-1"]'), 0); - }; - - DropdownMenu.prototype.render = function render() { - var _this = this; - - var _props = this.props; - var children = _props.children; - var onSelect = _props.onSelect; - var pullRight = _props.pullRight; - var className = _props.className; - var labelledBy = _props.labelledBy; - var open = _props.open; - var onClose = _props.onClose; - - var props = _objectWithoutProperties(_props, ['children', 'onSelect', 'pullRight', 'className', 'labelledBy', 'open', 'onClose']); - - var items = _utilsValidComponentChildren2['default'].map(children, function (child) { - var childProps = child.props || {}; - - return _react2['default'].cloneElement(child, { - onKeyDown: _utilsCreateChainedFunction2['default'](childProps.onKeyDown, _this.handleKeyDown), - onSelect: _utilsCreateChainedFunction2['default'](childProps.onSelect, onSelect) - }, childProps.children); - }); - - var classes = { - 'dropdown-menu': true, - 'dropdown-menu-right': pullRight - }; - - var list = _react2['default'].createElement( - 'ul', - _extends({ - className: _classnames2['default'](className, classes), - role: 'menu', - 'aria-labelledby': labelledBy - }, props), - items - ); - - if (open) { - list = _react2['default'].createElement( - _reactOverlaysLibRootCloseWrapper2['default'], - { noWrap: true, onRootClose: onClose }, - list - ); - } - - return list; - }; - - return DropdownMenu; - })(_react2['default'].Component); - - DropdownMenu.defaultProps = { - bsRole: 'menu', - pullRight: false - }; - - DropdownMenu.propTypes = { - open: _react2['default'].PropTypes.bool, - pullRight: _react2['default'].PropTypes.bool, - onClose: _react2['default'].PropTypes.func, - labelledBy: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]), - onSelect: _react2['default'].PropTypes.func - }; - - exports['default'] = DropdownMenu; - module.exports = exports['default']; - -/***/ }, -/* 169 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - exports.__esModule = true; - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _reactDom = __webpack_require__(34); - - var _reactDom2 = _interopRequireDefault(_reactDom); - - var _utilsAddEventListener = __webpack_require__(170); - - var _utilsAddEventListener2 = _interopRequireDefault(_utilsAddEventListener); - - var _utilsCreateChainedFunction = __webpack_require__(172); - - var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); - - var _utilsOwnerDocument = __webpack_require__(173); - - var _utilsOwnerDocument2 = _interopRequireDefault(_utilsOwnerDocument); - - // TODO: Consider using an ES6 symbol here, once we use babel-runtime. - var CLICK_WAS_INSIDE = '__click_was_inside'; - - var counter = 0; - - function getSuppressRootClose() { - var id = CLICK_WAS_INSIDE + '_' + counter++; - return { - id: id, - suppressRootClose: function suppressRootClose(event) { - // Tag the native event to prevent the root close logic on document click. - // This seems safer than using event.nativeEvent.stopImmediatePropagation(), - // which is only supported in IE >= 9. - event.nativeEvent[id] = true; - } - }; - } - - var RootCloseWrapper = (function (_React$Component) { - function RootCloseWrapper(props) { - _classCallCheck(this, RootCloseWrapper); - - _React$Component.call(this, props); - - this.handleDocumentClick = this.handleDocumentClick.bind(this); - this.handleDocumentKeyUp = this.handleDocumentKeyUp.bind(this); - - var _getSuppressRootClose = getSuppressRootClose(); - - var id = _getSuppressRootClose.id; - var suppressRootClose = _getSuppressRootClose.suppressRootClose; - - this._suppressRootId = id; - - this._suppressRootCloseHandler = suppressRootClose; - } - - _inherits(RootCloseWrapper, _React$Component); - - RootCloseWrapper.prototype.bindRootCloseHandlers = function bindRootCloseHandlers() { - var doc = _utilsOwnerDocument2['default'](this); - - this._onDocumentClickListener = _utilsAddEventListener2['default'](doc, 'click', this.handleDocumentClick); - - this._onDocumentKeyupListener = _utilsAddEventListener2['default'](doc, 'keyup', this.handleDocumentKeyUp); - }; - - RootCloseWrapper.prototype.handleDocumentClick = function handleDocumentClick(e) { - // This is now the native event. - if (e[this._suppressRootId]) { - return; - } - - this.props.onRootClose(); - }; - - RootCloseWrapper.prototype.handleDocumentKeyUp = function handleDocumentKeyUp(e) { - if (e.keyCode === 27) { - this.props.onRootClose(); - } - }; - - RootCloseWrapper.prototype.unbindRootCloseHandlers = function unbindRootCloseHandlers() { - if (this._onDocumentClickListener) { - this._onDocumentClickListener.remove(); - } - - if (this._onDocumentKeyupListener) { - this._onDocumentKeyupListener.remove(); - } - }; - - RootCloseWrapper.prototype.componentDidMount = function componentDidMount() { - this.bindRootCloseHandlers(); - }; - - RootCloseWrapper.prototype.render = function render() { - var _props = this.props; - var noWrap = _props.noWrap; - var children = _props.children; - - var child = _react2['default'].Children.only(children); - - if (noWrap) { - return _react2['default'].cloneElement(child, { - onClick: _utilsCreateChainedFunction2['default'](this._suppressRootCloseHandler, child.props.onClick) - }); - } - - // Wrap the child in a new element, so the child won't have to handle - // potentially combining multiple onClick listeners. - return _react2['default'].createElement( - 'div', - { onClick: this._suppressRootCloseHandler }, - child - ); - }; - - RootCloseWrapper.prototype.getWrappedDOMNode = function getWrappedDOMNode() { - // We can't use a ref to identify the wrapped child, since we might be - // stealing the ref from the owner, but we know exactly the DOM structure - // that will be rendered, so we can just do this to get the child's DOM - // node for doing size calculations in OverlayMixin. - var node = _reactDom2['default'].findDOMNode(this); - return this.props.noWrap ? node : node.firstChild; - }; - - RootCloseWrapper.prototype.componentWillUnmount = function componentWillUnmount() { - this.unbindRootCloseHandlers(); - }; - - return RootCloseWrapper; - })(_react2['default'].Component); - - exports['default'] = RootCloseWrapper; - - RootCloseWrapper.displayName = 'RootCloseWrapper'; - - RootCloseWrapper.propTypes = { - onRootClose: _react2['default'].PropTypes.func.isRequired, - - /**
- * Passes the suppress click handler directly to the child component instead
- * of placing it on a wrapping div. Only use when you can be sure the child
- * properly handle the click event.
- */ - noWrap: _react2['default'].PropTypes.bool - }; - module.exports = exports['default']; - -/***/ }, -/* 170 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - exports.__esModule = true; - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - var _domHelpersEventsOn = __webpack_require__(90); - - var _domHelpersEventsOn2 = _interopRequireDefault(_domHelpersEventsOn); - - var _domHelpersEventsOff = __webpack_require__(171); - - var _domHelpersEventsOff2 = _interopRequireDefault(_domHelpersEventsOff); - - exports['default'] = function (node, event, handler) { - _domHelpersEventsOn2['default'](node, event, handler); - return { - remove: function remove() { - _domHelpersEventsOff2['default'](node, event, handler); - } - }; - }; - - module.exports = exports['default']; - -/***/ }, -/* 171 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var canUseDOM = __webpack_require__(41); - var off = function off() {}; - - if (canUseDOM) { - - off = (function () { - - if (document.addEventListener) return function (node, eventName, handler, capture) { - return node.removeEventListener(eventName, handler, capture || false); - };else if (document.attachEvent) return function (node, eventName, handler) { - return node.detachEvent('on' + eventName, handler); - }; - })(); - } - - module.exports = off; - -/***/ }, -/* 172 */ -/***/ function(module, exports) { - - /**
- * Safe chained function
- *
- * Will only create a new function if needed,
- * otherwise will pass back existing functions or null.
- *
- * @param {function} functions to chain
- * @returns {function|null}
- */ - 'use strict'; - - exports.__esModule = true; - function createChainedFunction() { - for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) { - funcs[_key] = arguments[_key]; - } - - return funcs.filter(function (f) { - return f != null; - }).reduce(function (acc, f) { - if (typeof f !== 'function') { - throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.'); - } - - if (acc === null) { - return f; - } - - return function chainedFunction() { - for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } - - acc.apply(this, args); - f.apply(this, args); - }; - }, null); - } - - exports['default'] = createChainedFunction; - module.exports = exports['default']; - -/***/ }, -/* 173 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - exports.__esModule = true; - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - var _reactDom = __webpack_require__(34); - - var _reactDom2 = _interopRequireDefault(_reactDom); - - var _domHelpersOwnerDocument = __webpack_require__(36); - - var _domHelpersOwnerDocument2 = _interopRequireDefault(_domHelpersOwnerDocument); - - exports['default'] = function (componentOrElement) { - return _domHelpersOwnerDocument2['default'](_reactDom2['default'].findDOMNode(componentOrElement)); - }; - - module.exports = exports['default']; - -/***/ }, -/* 174 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _Button = __webpack_require__(62); - - var _Button2 = _interopRequireDefault(_Button); - - var _reactPropTypesLibSinglePropFrom = __webpack_require__(5); - - var _reactPropTypesLibSinglePropFrom2 = _interopRequireDefault(_reactPropTypesLibSinglePropFrom); - - var _SafeAnchor = __webpack_require__(49); - - var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor); - - var CARET = _react2['default'].createElement( - 'span', - null, - ' ', - _react2['default'].createElement('span', { className: 'caret' }) - ); - - var DropdownToggle = (function (_React$Component) { - _inherits(DropdownToggle, _React$Component); - - function DropdownToggle() { - _classCallCheck(this, DropdownToggle); - - _React$Component.apply(this, arguments); - } - - DropdownToggle.prototype.render = function render() { - var caret = this.props.noCaret ? null : CARET; - - var classes = { - 'dropdown-toggle': true - }; - - var Component = this.props.useAnchor ? _SafeAnchor2['default'] : _Button2['default']; - - return _react2['default'].createElement( - Component, - _extends({}, this.props, { - className: _classnames2['default'](classes, this.props.className), - type: 'button', - 'aria-haspopup': true, - 'aria-expanded': this.props.open }), - this.props.title || this.props.children, - caret - ); - }; - - return DropdownToggle; - })(_react2['default'].Component); - - exports['default'] = DropdownToggle; - - var titleAndChildrenValidation = _reactPropTypesLibSinglePropFrom2['default']('title', 'children'); - - DropdownToggle.defaultProps = { - open: false, - useAnchor: false, - bsRole: 'toggle' - }; - - DropdownToggle.propTypes = { - bsRole: _react2['default'].PropTypes.string, - children: titleAndChildrenValidation, - noCaret: _react2['default'].PropTypes.bool, - open: _react2['default'].PropTypes.bool, - title: titleAndChildrenValidation, - useAnchor: _react2['default'].PropTypes.bool - }; - - DropdownToggle.isToggle = true; - DropdownToggle.titleProp = 'title'; - DropdownToggle.onClickProp = 'onClick'; - module.exports = exports['default']; - -/***/ }, -/* 175 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _reactPropTypesLibCommon = __webpack_require__(31); - - var _childrenToArray = __webpack_require__(176); - - var _childrenToArray2 = _interopRequireDefault(_childrenToArray); - - exports['default'] = { - - requiredRoles: function requiredRoles() { - for (var _len = arguments.length, roles = Array(_len), _key = 0; _key < _len; _key++) { - roles[_key] = arguments[_key]; - } - - return _reactPropTypesLibCommon.createChainableTypeChecker(function requiredRolesValidator(props, propName, component) { - var missing = undefined; - var children = _childrenToArray2['default'](props.children); - - var inRole = function inRole(role, child) { - return role === child.props.bsRole; - }; - - roles.every(function (role) { - if (!children.some(function (child) { - return inRole(role, child); - })) { - missing = role; - return false; - } - return true; - }); - - if (missing) { - return new Error('(children) ' + component + ' - Missing a required child with bsRole: ' + missing + '. ' + (component + ' must have at least one child of each of the following bsRoles: ' + roles.join(', '))); - } - }); - }, - - exclusiveRoles: function exclusiveRoles() { - for (var _len2 = arguments.length, roles = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - roles[_key2] = arguments[_key2]; - } - - return _reactPropTypesLibCommon.createChainableTypeChecker(function exclusiveRolesValidator(props, propName, component) { - var children = _childrenToArray2['default'](props.children); - var duplicate = undefined; - - roles.every(function (role) { - var childrenWithRole = children.filter(function (child) { - return child.props.bsRole === role; - }); - - if (childrenWithRole.length > 1) { - duplicate = role; - return false; - } - return true; - }); - - if (duplicate) { - return new Error('(children) ' + component + ' - Duplicate children detected of bsRole: ' + duplicate + '. ' + ('Only one child each allowed with the following bsRoles: ' + roles.join(', '))); - } - }); - } - }; - module.exports = exports['default']; - -/***/ }, -/* 176 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - exports['default'] = childrenAsArray; - - var _ValidComponentChildren = __webpack_require__(7); - - var _ValidComponentChildren2 = _interopRequireDefault(_ValidComponentChildren); - - function childrenAsArray(children) { - var result = []; - - if (children === undefined) { - return result; - } - - _ValidComponentChildren2['default'].forEach(children, function (child) { - result.push(child); - }); - - return result; - } - - module.exports = exports['default']; - -/***/ }, -/* 177 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _objectWithoutProperties = __webpack_require__(26)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _BootstrapMixin = __webpack_require__(28); - - var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin); - - var _Dropdown = __webpack_require__(92); - - var _Dropdown2 = _interopRequireDefault(_Dropdown); - - var _lodashCompatObjectOmit = __webpack_require__(148); - - var _lodashCompatObjectOmit2 = _interopRequireDefault(_lodashCompatObjectOmit); - - var DropdownButton = (function (_React$Component) { - _inherits(DropdownButton, _React$Component); - - function DropdownButton(props) { - _classCallCheck(this, DropdownButton); - - _React$Component.call(this, props); - } - - DropdownButton.prototype.render = function render() { - var _props = this.props; - var title = _props.title; - - var props = _objectWithoutProperties(_props, ['title']); - - var toggleProps = _lodashCompatObjectOmit2['default'](props, _Dropdown2['default'].ControlledComponent.propTypes); - - return _react2['default'].createElement( - _Dropdown2['default'], - props, - _react2['default'].createElement( - _Dropdown2['default'].Toggle, - toggleProps, - title - ), - _react2['default'].createElement( - _Dropdown2['default'].Menu, - null, - this.props.children - ) - ); - }; - - return DropdownButton; - })(_react2['default'].Component); - - DropdownButton.propTypes = _extends({ - /** - * When used with the `title` prop, the noCaret option will not render a caret icon, in the toggle element. - */ - noCaret: _react2['default'].PropTypes.bool, - - title: _react2['default'].PropTypes.node.isRequired - - }, _Dropdown2['default'].propTypes, _BootstrapMixin2['default'].propTypes); - - DropdownButton.defaultProps = { - pullRight: false, - dropup: false, - navItem: false, - noCaret: false - }; - - exports['default'] = DropdownButton; - module.exports = exports['default']; - -/***/ }, -/* 178 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _reactPropTypesLibElementType = __webpack_require__(63); - - var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); - - var Grid = _react2['default'].createClass({ - displayName: 'Grid', - - propTypes: { - /** - * Turn any fixed-width grid layout into a full-width layout by this property. - * - * Adds `container-fluid` class. - */ - fluid: _react2['default'].PropTypes.bool, - /** - * You can use a custom element for this component - */ - componentClass: _reactPropTypesLibElementType2['default'] - }, - - getDefaultProps: function getDefaultProps() { - return { - componentClass: 'div', - fluid: false - }; - }, - - render: function render() { - var ComponentClass = this.props.componentClass; - var className = this.props.fluid ? 'container-fluid' : 'container'; - - return _react2['default'].createElement( - ComponentClass, - _extends({}, this.props, { - className: _classnames2['default'](this.props.className, className) }), - this.props.children - ); - } - }); - - exports['default'] = Grid; - module.exports = exports['default']; - -/***/ }, -/* 179 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var Image = _react2['default'].createClass({ - displayName: 'Image', - - propTypes: { - - /** - * Sets image as responsive image - */ - responsive: _react2['default'].PropTypes.bool, - - /** - * Sets image shape as rounded - */ - rounded: _react2['default'].PropTypes.bool, - - /** - * Sets image shape as circle - */ - circle: _react2['default'].PropTypes.bool, - - /** - * Sets image shape as thumbnail - */ - thumbnail: _react2['default'].PropTypes.bool - }, - - getDefaultProps: function getDefaultProps() { - return { - responsive: false, - rounded: false, - circle: false, - thumbnail: false - }; - }, - - render: function render() { - var classes = { - 'img-responsive': this.props.responsive, - 'img-rounded': this.props.rounded, - 'img-circle': this.props.circle, - 'img-thumbnail': this.props.thumbnail - }; - - return _react2['default'].createElement('img', _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) })); - } - }); - - exports['default'] = Image; - module.exports = exports['default']; - -/***/ }, -/* 180 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - var _interopRequireWildcard = __webpack_require__(2)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _InputBase2 = __webpack_require__(66); - - var _InputBase3 = _interopRequireDefault(_InputBase2); - - var _FormControls = __webpack_require__(181); - - var FormControls = _interopRequireWildcard(_FormControls); - - var _utilsDeprecationWarning = __webpack_require__(183); - - var _utilsDeprecationWarning2 = _interopRequireDefault(_utilsDeprecationWarning); - - var Input = (function (_InputBase) { - _inherits(Input, _InputBase); - - function Input() { - _classCallCheck(this, Input); - - _InputBase.apply(this, arguments); - } - - Input.prototype.render = function render() { - if (this.props.type === 'static') { - _utilsDeprecationWarning2['default']('Input type=static', 'FormControls.Static'); - return _react2['default'].createElement(FormControls.Static, this.props); - } - - return _InputBase.prototype.render.call(this); - }; - - return Input; - })(_InputBase3['default']); - - Input.propTypes = { - type: _react2['default'].PropTypes.string - }; - - exports['default'] = Input; - module.exports = exports['default']; - -/***/ }, -/* 181 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _Static2 = __webpack_require__(182); - - var _Static3 = _interopRequireDefault(_Static2); - - exports.Static = _Static3['default']; - -/***/ }, -/* 182 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _InputBase2 = __webpack_require__(66); - - var _InputBase3 = _interopRequireDefault(_InputBase2); - - var _utilsChildrenValueInputValidation = __webpack_require__(3); - - var _utilsChildrenValueInputValidation2 = _interopRequireDefault(_utilsChildrenValueInputValidation); - - var Static = (function (_InputBase) { - _inherits(Static, _InputBase); - - function Static() { - _classCallCheck(this, Static); - - _InputBase.apply(this, arguments); - } - - Static.prototype.getValue = function getValue() { - var _props = this.props; - var children = _props.children; - var value = _props.value; - - return children ? children : value; - }; - - Static.prototype.renderInput = function renderInput() { - return _react2['default'].createElement( - 'p', - _extends({}, this.props, { className: _classnames2['default'](this.props.className, 'form-control-static'), ref: 'input', key: 'input' }), - this.getValue() - ); - }; - - return Static; - })(_InputBase3['default']); - - Static.propTypes = { - value: _utilsChildrenValueInputValidation2['default'], - children: _utilsChildrenValueInputValidation2['default'] - }; - - exports['default'] = Static; - module.exports = exports['default']; - -/***/ }, -/* 183 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _warning = __webpack_require__(48); - - var _warning2 = _interopRequireDefault(_warning); - - var warned = {}; - - function deprecationWarning(oldname, newname, link) { - var message = undefined; - - if (typeof oldname === 'object') { - message = oldname.message; - } else { - message = oldname + ' is deprecated. Use ' + newname + ' instead.'; - - if (link) { - message += '\nYou can read more about it at ' + link; - } - } - - if (warned[message]) { - return; - } - - _warning2['default'](false, message); - warned[message] = true; - } - - deprecationWarning.wrapper = function (Component) { - for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - return (function (_Component) { - _inherits(DeprecatedComponent, _Component); - - function DeprecatedComponent() { - _classCallCheck(this, DeprecatedComponent); - - _Component.apply(this, arguments); - } - - DeprecatedComponent.prototype.componentWillMount = function componentWillMount() { - deprecationWarning.apply(undefined, args); - - if (_Component.prototype.componentWillMount) { - var _Component$prototype$componentWillMount; - - for (var _len2 = arguments.length, methodArgs = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - methodArgs[_key2] = arguments[_key2]; - } - - (_Component$prototype$componentWillMount = _Component.prototype.componentWillMount).call.apply(_Component$prototype$componentWillMount, [this].concat(methodArgs)); - } - }; - - return DeprecatedComponent; - })(Component); - }; - - exports['default'] = deprecationWarning; - module.exports = exports['default']; - -/***/ }, -/* 184 */ -/***/ function(module, exports, __webpack_require__) { - - // https://www.npmjs.org/package/react-interpolate-component - // TODO: Drop this in favor of es6 string interpolation - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _utilsValidComponentChildren = __webpack_require__(7); - - var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); - - var REGEXP = /\%\((.+?)\)s/; - - var Interpolate = _react2['default'].createClass({ - displayName: 'Interpolate', - - propTypes: { - component: _react2['default'].PropTypes.node, - format: _react2['default'].PropTypes.string, - unsafe: _react2['default'].PropTypes.bool - }, - - getDefaultProps: function getDefaultProps() { - return { - component: 'span', - unsafe: false - }; - }, - - render: function render() { - var format = _utilsValidComponentChildren2['default'].hasValidComponent(this.props.children) || typeof this.props.children === 'string' ? this.props.children : this.props.format; - var parent = this.props.component; - var unsafe = this.props.unsafe === true; - var props = _extends({}, this.props); - - delete props.children; - delete props.format; - delete props.component; - delete props.unsafe; - - if (unsafe) { - var content = format.split(REGEXP).reduce(function (memo, match, index) { - var html = undefined; - - if (index % 2 === 0) { - html = match; - } else { - html = props[match]; - delete props[match]; - } - - if (_react2['default'].isValidElement(html)) { - throw new Error('cannot interpolate a React component into unsafe text'); - } - - memo += html; - - return memo; - }, ''); - - props.dangerouslySetInnerHTML = { __html: content }; - - return _react2['default'].createElement(parent, props); - } - var kids = format.split(REGEXP).reduce(function (memo, match, index) { - var child = undefined; - - if (index % 2 === 0) { - if (match.length === 0) { - return memo; - } - - child = match; - } else { - child = props[match]; - delete props[match]; - } - - memo.push(child); - - return memo; - }, []); - - return _react2['default'].createElement(parent, props, kids); - } - }); - - exports['default'] = Interpolate; - module.exports = exports['default']; - -/***/ }, -/* 185 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _reactPropTypesLibElementType = __webpack_require__(63); - - var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); - - var Jumbotron = _react2['default'].createClass({ - displayName: 'Jumbotron', - - propTypes: { - /** - * You can use a custom element for this component - */ - componentClass: _reactPropTypesLibElementType2['default'] - }, - - getDefaultProps: function getDefaultProps() { - return { componentClass: 'div' }; - }, - - render: function render() { - var ComponentClass = this.props.componentClass; - - return _react2['default'].createElement( - ComponentClass, - _extends({}, this.props, { className: _classnames2['default'](this.props.className, 'jumbotron') }), - this.props.children - ); - } - }); - - exports['default'] = Jumbotron; - module.exports = exports['default']; - -/***/ }, -/* 186 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _BootstrapMixin = __webpack_require__(28); - - var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin); - - var Label = _react2['default'].createClass({ - displayName: 'Label', - - mixins: [_BootstrapMixin2['default']], - - getDefaultProps: function getDefaultProps() { - return { - bsClass: 'label', - bsStyle: 'default' - }; - }, - - render: function render() { - var classes = this.getBsClassSet(); - - return _react2['default'].createElement( - 'span', - _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }), - this.props.children - ); - } - }); - - exports['default'] = Label; - module.exports = exports['default']; - -/***/ }, -/* 187 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _ListGroupItem = __webpack_require__(188); - - var _ListGroupItem2 = _interopRequireDefault(_ListGroupItem); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _utilsValidComponentChildren = __webpack_require__(7); - - var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); - - var ListGroup = (function (_React$Component) { - _inherits(ListGroup, _React$Component); - - function ListGroup() { - _classCallCheck(this, ListGroup); - - _React$Component.apply(this, arguments); - } - - ListGroup.prototype.render = function render() { - var _this = this; - - var items = _utilsValidComponentChildren2['default'].map(this.props.children, function (item, index) { - return _react.cloneElement(item, { key: item.key ? item.key : index }); - }); - - if (this.areCustomChildren(items)) { - var Component = this.props.componentClass; - return _react2['default'].createElement( - Component, - _extends({}, this.props, { - className: _classnames2['default'](this.props.className, 'list-group') }), - items - ); - } - - var shouldRenderDiv = false; - - if (!this.props.children) { - shouldRenderDiv = true; - } else { - _utilsValidComponentChildren2['default'].forEach(this.props.children, function (child) { - if (_this.isAnchorOrButton(child.props)) { - shouldRenderDiv = true; - } - }); - } - - return shouldRenderDiv ? this.renderDiv(items) : this.renderUL(items); - }; - - ListGroup.prototype.isAnchorOrButton = function isAnchorOrButton(props) { - return props.href || props.onClick; - }; - - ListGroup.prototype.areCustomChildren = function areCustomChildren(children) { - var customChildren = false; - - _utilsValidComponentChildren2['default'].forEach(children, function (child) { - if (child.type !== _ListGroupItem2['default']) { - customChildren = true; - } - }, this); - - return customChildren; - }; - - ListGroup.prototype.renderUL = function renderUL(items) { - var listItems = _utilsValidComponentChildren2['default'].map(items, function (item) { - return _react.cloneElement(item, { listItem: true }); - }); - - return _react2['default'].createElement( - 'ul', - _extends({}, this.props, { - className: _classnames2['default'](this.props.className, 'list-group') }), - listItems - ); - }; - - ListGroup.prototype.renderDiv = function renderDiv(items) { - return _react2['default'].createElement( - 'div', - _extends({}, this.props, { - className: _classnames2['default'](this.props.className, 'list-group') }), - items - ); - }; - - return ListGroup; - })(_react2['default'].Component); - - ListGroup.defaultProps = { - componentClass: 'div' - }; - - ListGroup.propTypes = { - className: _react2['default'].PropTypes.string, - /** - * The element for ListGroup if children are - * user-defined custom components. - * @type {("ul"|"div")} - */ - componentClass: _react2['default'].PropTypes.oneOf(['ul', 'div']), - id: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]) - }; - - exports['default'] = ListGroup; - module.exports = exports['default']; - -/***/ }, -/* 188 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _BootstrapMixin = __webpack_require__(28); - - var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var ListGroupItem = _react2['default'].createClass({ - displayName: 'ListGroupItem', - - mixins: [_BootstrapMixin2['default']], - - propTypes: { - bsStyle: _react2['default'].PropTypes.oneOf(['danger', 'info', 'success', 'warning']), - className: _react2['default'].PropTypes.string, - active: _react2['default'].PropTypes.any, - disabled: _react2['default'].PropTypes.any, - header: _react2['default'].PropTypes.node, - listItem: _react2['default'].PropTypes.bool, - onClick: _react2['default'].PropTypes.func, - href: _react2['default'].PropTypes.string - }, - - getDefaultProps: function getDefaultProps() { - return { - bsClass: 'list-group-item', - listItem: false - }; - }, - - render: function render() { - var classes = this.getBsClassSet(); - - classes.active = this.props.active; - classes.disabled = this.props.disabled; - - if (this.props.href) { - return this.renderAnchor(classes); - } else if (this.props.onClick) { - return this.renderButton(classes); - } else if (this.props.listItem) { - return this.renderLi(classes); - } - return this.renderSpan(classes); - }, - - renderLi: function renderLi(classes) { - return _react2['default'].createElement( - 'li', - _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }), - this.props.header ? this.renderStructuredContent() : this.props.children - ); - }, - - renderAnchor: function renderAnchor(classes) { - return _react2['default'].createElement( - 'a', - _extends({}, this.props, { - className: _classnames2['default'](this.props.className, classes) - }), - this.props.header ? this.renderStructuredContent() : this.props.children - ); - }, - - renderButton: function renderButton(classes) { - return _react2['default'].createElement( - 'button', - _extends({ - type: 'button' - }, this.props, { - className: _classnames2['default'](this.props.className, classes) }), - this.props.header ? this.renderStructuredContent() : this.props.children - ); - }, - - renderSpan: function renderSpan(classes) { - return _react2['default'].createElement( - 'span', - _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }), - this.props.header ? this.renderStructuredContent() : this.props.children - ); - }, - - renderStructuredContent: function renderStructuredContent() { - var header = undefined; - if (_react2['default'].isValidElement(this.props.header)) { - header = _react.cloneElement(this.props.header, { - key: 'header', - className: _classnames2['default'](this.props.header.props.className, 'list-group-item-heading') - }); - } else { - header = _react2['default'].createElement( - 'h4', - { key: 'header', className: 'list-group-item-heading' }, - this.props.header - ); - } - - var content = _react2['default'].createElement( - 'p', - { key: 'content', className: 'list-group-item-text' }, - this.props.children - ); - - return [header, content]; - } - }); - - exports['default'] = ListGroupItem; - module.exports = exports['default']; - -/***/ }, -/* 189 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _reactPropTypesLibAll = __webpack_require__(69); - - var _reactPropTypesLibAll2 = _interopRequireDefault(_reactPropTypesLibAll); - - var _SafeAnchor = __webpack_require__(49); - - var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor); - - var MenuItem = (function (_React$Component) { - _inherits(MenuItem, _React$Component); - - function MenuItem(props) { - _classCallCheck(this, MenuItem); - - _React$Component.call(this, props); - - this.handleClick = this.handleClick.bind(this); - } - - MenuItem.prototype.handleClick = function handleClick(event) { - if (!this.props.href || this.props.disabled) { - event.preventDefault(); - } - - if (this.props.disabled) { - return; - } - - if (this.props.onSelect) { - this.props.onSelect(event, this.props.eventKey); - } - }; - - MenuItem.prototype.render = function render() { - if (this.props.divider) { - return _react2['default'].createElement('li', { role: 'separator', className: 'divider' }); - } - - if (this.props.header) { - return _react2['default'].createElement( - 'li', - { role: 'heading', className: 'dropdown-header' }, - this.props.children - ); - } - - var classes = { - disabled: this.props.disabled, - active: this.props.active - }; - - return _react2['default'].createElement( - 'li', - { role: 'presentation', - className: _classnames2['default'](this.props.className, classes), - style: this.props.style - }, - _react2['default'].createElement( - _SafeAnchor2['default'], - { - role: 'menuitem', - tabIndex: '-1', - id: this.props.id, - target: this.props.target, - title: this.props.title, - href: this.props.href || '', - onKeyDown: this.props.onKeyDown, - onClick: this.handleClick }, - this.props.children - ) - ); - }; - - return MenuItem; - })(_react2['default'].Component); - - exports['default'] = MenuItem; - - MenuItem.propTypes = { - active: _react2['default'].PropTypes.bool, - disabled: _react2['default'].PropTypes.bool, - divider: _reactPropTypesLibAll2['default'](_react2['default'].PropTypes.bool, function (props) { - if (props.divider && props.children) { - return new Error('Children will not be rendered for dividers'); - } - }), - eventKey: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.number, _react2['default'].PropTypes.string]), - header: _react2['default'].PropTypes.bool, - href: _react2['default'].PropTypes.string, - target: _react2['default'].PropTypes.string, - title: _react2['default'].PropTypes.string, - onKeyDown: _react2['default'].PropTypes.func, - onSelect: _react2['default'].PropTypes.func, - id: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]) - }; - - MenuItem.defaultProps = { - divider: false, - disabled: false, - header: false - }; - module.exports = exports['default']; - -/***/ }, -/* 190 */ -/***/ function(module, exports, __webpack_require__) { - - /* eslint-disable react/prop-types */ - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _objectWithoutProperties = __webpack_require__(26)['default']; - - var _Object$isFrozen = __webpack_require__(191)['default']; - - var _Object$keys = __webpack_require__(75)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _reactDom = __webpack_require__(34); - - var _reactDom2 = _interopRequireDefault(_reactDom); - - var _utilsDomUtils = __webpack_require__(35); - - var _utilsDomUtils2 = _interopRequireDefault(_utilsDomUtils); - - var _domHelpersUtilScrollbarSize = __webpack_require__(194); - - var _domHelpersUtilScrollbarSize2 = _interopRequireDefault(_domHelpersUtilScrollbarSize); - - var _utilsEventListener = __webpack_require__(43); - - var _utilsEventListener2 = _interopRequireDefault(_utilsEventListener); - - var _utilsCreateChainedFunction = __webpack_require__(6); - - var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); - - var _reactPropTypesLibElementType = __webpack_require__(63); - - var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); - - var _domHelpersUtilInDOM = __webpack_require__(41); - - var _domHelpersUtilInDOM2 = _interopRequireDefault(_domHelpersUtilInDOM); - - var _domHelpersQueryContains = __webpack_require__(40); - - var _domHelpersQueryContains2 = _interopRequireDefault(_domHelpersQueryContains); - - var _domHelpersActiveElement = __webpack_require__(93); - - var _domHelpersActiveElement2 = _interopRequireDefault(_domHelpersActiveElement); - - var _reactOverlaysLibPortal = __webpack_require__(195); - - var _reactOverlaysLibPortal2 = _interopRequireDefault(_reactOverlaysLibPortal); - - var _Fade = __webpack_require__(199); - - var _Fade2 = _interopRequireDefault(_Fade); - - var _ModalDialog = __webpack_require__(200); - - var _ModalDialog2 = _interopRequireDefault(_ModalDialog); - - var _ModalBody = __webpack_require__(201); - - var _ModalBody2 = _interopRequireDefault(_ModalBody); - - var _ModalHeader = __webpack_require__(202); - - var _ModalHeader2 = _interopRequireDefault(_ModalHeader); - - var _ModalTitle = __webpack_require__(203); - - var _ModalTitle2 = _interopRequireDefault(_ModalTitle); - - var _ModalFooter = __webpack_require__(204); - - var _ModalFooter2 = _interopRequireDefault(_ModalFooter); - - /** - * Gets the correct clientHeight of the modal container - * when the body/window/document you need to use the docElement clientHeight - * @param {HTMLElement} container - * @param {ReactElement|HTMLElement} context - * @return {Number} - */ - function containerClientHeight(container, context) { - var doc = _utilsDomUtils2['default'].ownerDocument(context); - - return container === doc.body || container === doc.documentElement ? doc.documentElement.clientHeight : container.clientHeight; - } - - function getContainer(context) { - return context.props.container && _reactDom2['default'].findDOMNode(context.props.container) || _utilsDomUtils2['default'].ownerDocument(context).body; - } - - var currentFocusListener = undefined; - - /** - * Firefox doesn't have a focusin event so using capture is easiest way to get bubbling - * IE8 can't do addEventListener, but does have onfocusin, so we use that in ie8 - * - * We only allow one Listener at a time to avoid stack overflows - * - * @param {ReactElement|HTMLElement} context - * @param {Function} handler - */ - function onFocus(context, handler) { - var doc = _utilsDomUtils2['default'].ownerDocument(context); - var useFocusin = !doc.addEventListener; - var remove = undefined; - - if (currentFocusListener) { - currentFocusListener.remove(); - } - - if (useFocusin) { - document.attachEvent('onfocusin', handler); - remove = function () { - return document.detachEvent('onfocusin', handler); - }; - } else { - document.addEventListener('focus', handler, true); - remove = function () { - return document.removeEventListener('focus', handler, true); - }; - } - - currentFocusListener = { remove: remove }; - - return currentFocusListener; - } - - var Modal = _react2['default'].createClass({ - displayName: 'Modal', - - propTypes: _extends({}, _reactOverlaysLibPortal2['default'].propTypes, _ModalDialog2['default'].propTypes, { - - /** - * Include a backdrop component. Specify 'static' for a backdrop that doesn't trigger an "onHide" when clicked. - */ - backdrop: _react2['default'].PropTypes.oneOf(['static', true, false]), - - /** - * Close the modal when escape key is pressed - */ - keyboard: _react2['default'].PropTypes.bool, - - /** - * Open and close the Modal with a slide and fade animation. - */ - animation: _react2['default'].PropTypes.bool, - - /** - * A Component type that provides the modal content Markup. This is a useful prop when you want to use your own - * styles and markup to create a custom modal component. - */ - dialogComponent: _reactPropTypesLibElementType2['default'], - - /** - * When `true` The modal will automatically shift focus to itself when it opens, and replace it to the last focused element when it closes. - * Generally this should never be set to false as it makes the Modal less accessible to assistive technologies, like screen-readers. - */ - autoFocus: _react2['default'].PropTypes.bool, - - /** - * When `true` The modal will prevent focus from leaving the Modal while open. - * Consider leaving the default value here, as it is necessary to make the Modal work well with assistive technologies, - * such as screen readers. - */ - enforceFocus: _react2['default'].PropTypes.bool, - - /** - * Hide this from automatic props documentation generation. - * @private - */ - bsStyle: _react2['default'].PropTypes.string, - - /** - * When `true` The modal will show itself. - */ - show: _react2['default'].PropTypes.bool - }), - - getDefaultProps: function getDefaultProps() { - return { - bsClass: 'modal', - dialogComponent: _ModalDialog2['default'], - show: false, - animation: true, - backdrop: true, - keyboard: true, - autoFocus: true, - enforceFocus: true - }; - }, - - getInitialState: function getInitialState() { - return { - exited: !this.props.show - }; - }, - - render: function render() { - var _props = this.props; - var children = _props.children; - var animation = _props.animation; - var backdrop = _props.backdrop; - - var props = _objectWithoutProperties(_props, ['children', 'animation', 'backdrop']); - - var onExit = props.onExit; - var onExiting = props.onExiting; - var onEnter = props.onEnter; - var onEntering = props.onEntering; - var onEntered = props.onEntered; - - var show = !!props.show; - var Dialog = props.dialogComponent; - - var mountModal = show || animation && !this.state.exited; - if (!mountModal) { - return null; - } - - var modal = _react2['default'].createElement( - Dialog, - _extends({}, props, { - ref: this._setDialogRef, - className: _classnames2['default'](this.props.className, { 'in': show && !animation }), - onClick: backdrop === true ? this.handleBackdropClick : null }), - this.renderContent() - ); - - if (animation) { - modal = _react2['default'].createElement( - _Fade2['default'], - { - transitionAppear: true, - unmountOnExit: true, - 'in': show, - timeout: Modal.TRANSITION_DURATION, - onExit: onExit, - onExiting: onExiting, - onExited: this.handleHidden, - onEnter: onEnter, - onEntering: onEntering, - onEntered: onEntered }, - modal - ); - } - - if (backdrop) { - modal = this.renderBackdrop(modal); - } - - return _react2['default'].createElement( - _reactOverlaysLibPortal2['default'], - { container: props.container }, - modal - ); - }, - - renderContent: function renderContent() { - var _this = this; - - return _react2['default'].Children.map(this.props.children, function (child) { - // TODO: use context in 0.14 - if (child && child.type && child.type.__isModalHeader) { - return _react.cloneElement(child, { - onHide: _utilsCreateChainedFunction2['default'](_this.props.onHide, child.props.onHide) - }); - } - return child; - }); - }, - - renderBackdrop: function renderBackdrop(modal) { - var _props2 = this.props; - var animation = _props2.animation; - var bsClass = _props2.bsClass; - - var duration = Modal.BACKDROP_TRANSITION_DURATION; - - // Don't handle clicks for "static" backdrops - var onClick = this.props.backdrop === true ? this.handleBackdropClick : null; - - var backdrop = _react2['default'].createElement('div', { - ref: 'backdrop', - className: _classnames2['default'](bsClass + '-backdrop', { 'in': this.props.show && !animation }), - onClick: onClick }); - - return _react2['default'].createElement( - 'div', - { - ref: 'modal' }, - animation ? _react2['default'].createElement( - _Fade2['default'], - { transitionAppear: true, 'in': this.props.show, timeout: duration }, - backdrop - ) : backdrop, - modal - ); - }, - - _setDialogRef: function _setDialogRef(ref) { - // issue #1074 - // due to: https://github.com/facebook/react/blob/v0.13.3/src/core/ReactCompositeComponent.js#L842 - // - // when backdrop is `false` react hasn't had a chance to reassign the refs to a usable object, b/c there are no other - // "classic" refs on the component (or they haven't been processed yet) - // TODO: Remove the need for this in next breaking release - if (_Object$isFrozen(this.refs) && !_Object$keys(this.refs).length) { - this.refs = {}; - } - - this.refs.dialog = ref; - - // maintains backwards compat with older component breakdown - if (!this.props.backdrop) { - this.refs.modal = ref; - } - }, - - componentWillReceiveProps: function componentWillReceiveProps(nextProps) { - if (nextProps.show) { - this.setState({ exited: false }); - } else if (!nextProps.animation) { - // Otherwise let handleHidden take care of marking exited. - this.setState({ exited: true }); - } - }, - - componentWillUpdate: function componentWillUpdate(nextProps) { - if (nextProps.show) { - this.checkForFocus(); - } - }, - - componentDidMount: function componentDidMount() { - if (this.props.show) { - this.onShow(); - } - }, - - componentDidUpdate: function componentDidUpdate(prevProps) { - var animation = this.props.animation; - - if (prevProps.show && !this.props.show && !animation) { - // otherwise handleHidden will call this. - this.onHide(); - } else if (!prevProps.show && this.props.show) { - this.onShow(); - } - }, - - componentWillUnmount: function componentWillUnmount() { - if (this.props.show) { - this.onHide(); - } - }, - - onShow: function onShow() { - var _this2 = this; - - var doc = _utilsDomUtils2['default'].ownerDocument(this); - var win = _utilsDomUtils2['default'].ownerWindow(this); - - this._onDocumentKeyupListener = _utilsEventListener2['default'].listen(doc, 'keyup', this.handleDocumentKeyUp); - - this._onWindowResizeListener = _utilsEventListener2['default'].listen(win, 'resize', this.handleWindowResize); - - if (this.props.enforceFocus) { - this._onFocusinListener = onFocus(this, this.enforceFocus); - } - - var container = getContainer(this); - - container.className += container.className.length ? ' modal-open' : 'modal-open'; - - this._containerIsOverflowing = container.scrollHeight > containerClientHeight(container, this); - - this._originalPadding = container.style.paddingRight; - - if (this._containerIsOverflowing) { - container.style.paddingRight = parseInt(this._originalPadding || 0, 10) + _domHelpersUtilScrollbarSize2['default']() + 'px'; - } - - this.setState(this._getStyles(), function () { - return _this2.focusModalContent(); - }); - }, - - onHide: function onHide() { - this._onDocumentKeyupListener.remove(); - this._onWindowResizeListener.remove(); - - if (this._onFocusinListener) { - this._onFocusinListener.remove(); - } - - var container = getContainer(this); - - container.style.paddingRight = this._originalPadding; - - container.className = container.className.replace(/ ?modal-open/, ''); - - this.restoreLastFocus(); - }, - - handleHidden: function handleHidden() { - this.setState({ exited: true }); - - this.onHide(); - - if (this.props.onExited) { - var _props3; - - (_props3 = this.props).onExited.apply(_props3, arguments); - } - }, - - handleBackdropClick: function handleBackdropClick(e) { - if (e.target !== e.currentTarget) { - return; - } - - this.props.onHide(); - }, - - handleDocumentKeyUp: function handleDocumentKeyUp(e) { - if (this.props.keyboard && e.keyCode === 27) { - this.props.onHide(); - } - }, - - handleWindowResize: function handleWindowResize() { - this.setState(this._getStyles()); - }, - - checkForFocus: function checkForFocus() { - if (_domHelpersUtilInDOM2['default']) { - this.lastFocus = _domHelpersActiveElement2['default'](document); - } - }, - - focusModalContent: function focusModalContent() { - var modalContent = _reactDom2['default'].findDOMNode(this.refs.dialog); - var current = _domHelpersActiveElement2['default'](_utilsDomUtils2['default'].ownerDocument(this)); - var focusInModal = current && _domHelpersQueryContains2['default'](modalContent, current); - - if (modalContent && this.props.autoFocus && !focusInModal) { - this.lastFocus = current; - modalContent.focus(); - } - }, - - restoreLastFocus: function restoreLastFocus() { - if (this.lastFocus && this.lastFocus.focus) { - this.lastFocus.focus(); - this.lastFocus = null; - } - }, - - enforceFocus: function enforceFocus() { - if (!this.isMounted()) { - return; - } - - var active = _domHelpersActiveElement2['default'](_utilsDomUtils2['default'].ownerDocument(this)); - var modal = _reactDom2['default'].findDOMNode(this.refs.dialog); - - if (modal && modal !== active && !_domHelpersQueryContains2['default'](modal, active)) { - modal.focus(); - } - }, - - _getStyles: function _getStyles() { - if (!_domHelpersUtilInDOM2['default']) { - return {}; - } - - var node = _reactDom2['default'].findDOMNode(this.refs.modal); - var scrollHt = node.scrollHeight; - var container = getContainer(this); - var containerIsOverflowing = this._containerIsOverflowing; - var modalIsOverflowing = scrollHt > containerClientHeight(container, this); - - return { - dialogStyles: { - paddingRight: containerIsOverflowing && !modalIsOverflowing ? _domHelpersUtilScrollbarSize2['default']() : void 0, - paddingLeft: !containerIsOverflowing && modalIsOverflowing ? _domHelpersUtilScrollbarSize2['default']() : void 0 - } - }; - } - - }); - - Modal.Body = _ModalBody2['default']; - Modal.Header = _ModalHeader2['default']; - Modal.Title = _ModalTitle2['default']; - Modal.Footer = _ModalFooter2['default']; - - Modal.Dialog = _ModalDialog2['default']; - - Modal.TRANSITION_DURATION = 300; - Modal.BACKDROP_TRANSITION_DURATION = 150; - - exports['default'] = Modal; - module.exports = exports['default']; - -/***/ }, -/* 191 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(192), __esModule: true }; - -/***/ }, -/* 192 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(193); - module.exports = __webpack_require__(15).Object.isFrozen; - -/***/ }, -/* 193 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.12 Object.isFrozen(O) - var isObject = __webpack_require__(57); - - __webpack_require__(78)('isFrozen', function($isFrozen){ - return function isFrozen(it){ - return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true; - }; - }); - -/***/ }, -/* 194 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var canUseDOM = __webpack_require__(41); - - var size; - - module.exports = function (recalc) { - if (!size || recalc) { - if (canUseDOM) { - var scrollDiv = document.createElement('div'); - - scrollDiv.style.position = 'absolute'; - scrollDiv.style.top = '-9999px'; - scrollDiv.style.width = '50px'; - scrollDiv.style.height = '50px'; - scrollDiv.style.overflow = 'scroll'; - - document.body.appendChild(scrollDiv); - size = scrollDiv.offsetWidth - scrollDiv.clientWidth; - document.body.removeChild(scrollDiv); - } - } - - return size; - }; - -/***/ }, -/* 195 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - exports.__esModule = true; - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _reactDom = __webpack_require__(34); - - var _reactDom2 = _interopRequireDefault(_reactDom); - - var _reactPropTypesLibMountable = __webpack_require__(196); - - var _reactPropTypesLibMountable2 = _interopRequireDefault(_reactPropTypesLibMountable); - - var _utilsOwnerDocument = __webpack_require__(173); - - var _utilsOwnerDocument2 = _interopRequireDefault(_utilsOwnerDocument); - - var _utilsGetContainer = __webpack_require__(198); - - var _utilsGetContainer2 = _interopRequireDefault(_utilsGetContainer); - - /**
- * The `<Portal/>` component renders its children into a new "subtree" outside of current component hierarchy.
- * You can think of it as a declarative `appendChild()`, or jQuery's `$.fn.appendTo()`.
- * The children of `<Portal/>` component will be appended to the `container` specified.
- */ - var Portal = _react2['default'].createClass({ - - displayName: 'Portal', - - propTypes: { - /**
- * A Node, Component instance, or function that returns either. The `container` will have the Portal children
- * appended to it.
- */ - container: _react2['default'].PropTypes.oneOfType([_reactPropTypesLibMountable2['default'], _react2['default'].PropTypes.func]) - }, - - componentDidMount: function componentDidMount() { - this._renderOverlay(); - }, - - componentDidUpdate: function componentDidUpdate() { - this._renderOverlay(); - }, - - componentWillUnmount: function componentWillUnmount() { - this._unrenderOverlay(); - this._unmountOverlayTarget(); - }, - - _mountOverlayTarget: function _mountOverlayTarget() { - if (!this._overlayTarget) { - this._overlayTarget = document.createElement('div'); - this.getContainerDOMNode().appendChild(this._overlayTarget); - } - }, - - _unmountOverlayTarget: function _unmountOverlayTarget() { - if (this._overlayTarget) { - this.getContainerDOMNode().removeChild(this._overlayTarget); - this._overlayTarget = null; - } - }, - - _renderOverlay: function _renderOverlay() { - - var overlay = !this.props.children ? null : _react2['default'].Children.only(this.props.children); - - // Save reference for future access. - if (overlay !== null) { - this._mountOverlayTarget(); - this._overlayInstance = _reactDom2['default'].unstable_renderSubtreeIntoContainer(this, overlay, this._overlayTarget); - } else { - // Unrender if the component is null for transitions to null - this._unrenderOverlay(); - this._unmountOverlayTarget(); - } - }, - - _unrenderOverlay: function _unrenderOverlay() { - if (this._overlayTarget) { - _reactDom2['default'].unmountComponentAtNode(this._overlayTarget); - this._overlayInstance = null; - } - }, - - render: function render() { - return null; - }, - - getMountNode: function getMountNode() { - return this._overlayTarget; - }, - - getOverlayDOMNode: function getOverlayDOMNode() { - if (!this.isMounted()) { - throw new Error('getOverlayDOMNode(): A component must be mounted to have a DOM node.'); - } - - if (this._overlayInstance) { - if (this._overlayInstance.getWrappedDOMNode) { - return this._overlayInstance.getWrappedDOMNode(); - } else { - return _reactDom2['default'].findDOMNode(this._overlayInstance); - } - } - - return null; - }, - - getContainerDOMNode: function getContainerDOMNode() { - return _utilsGetContainer2['default'](this.props.container, _utilsOwnerDocument2['default'](this).body); - } - }); - - exports['default'] = Portal; - module.exports = exports['default']; - -/***/ }, -/* 196 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - exports.__esModule = true; - - var _common = __webpack_require__(197); - - /** - * Checks whether a prop provides a DOM element - * - * The element can be provided in two forms: - * - Directly passed - * - Or passed an object that has a `render` method - * - * @param props - * @param propName - * @param componentName - * @returns {Error|undefined} - */ - - function validate(props, propName, componentName) { - if (typeof props[propName] !== 'object' || typeof props[propName].render !== 'function' && props[propName].nodeType !== 1) { - return new Error(_common.errMsg(props, propName, componentName, ', expected a DOM element or an object that has a `render` method')); - } - } - - exports['default'] = _common.createChainableTypeChecker(validate); - module.exports = exports['default']; - -/***/ }, -/* 197 */ -/***/ function(module, exports) { - - 'use strict'; - - exports.__esModule = true; - exports.errMsg = errMsg; - exports.createChainableTypeChecker = createChainableTypeChecker; - - function errMsg(props, propName, componentName, msgContinuation) { - return 'Invalid prop \'' + propName + '\' of value \'' + props[propName] + '\'' + (' supplied to \'' + componentName + '\'' + msgContinuation); - } - - /** - * Create chain-able isRequired validator - * - * Largely copied directly from: - * https://github.com/facebook/react/blob/0.11-stable/src/core/ReactPropTypes.js#L94 - */ - - function createChainableTypeChecker(validate) { - function checkType(isRequired, props, propName, componentName) { - componentName = componentName || '<<anonymous>>'; - if (props[propName] == null) { - if (isRequired) { - return new Error('Required prop \'' + propName + '\' was not specified in \'' + componentName + '\'.'); - } - } else { - return validate(props, propName, componentName); - } - } - - var chainedCheckType = checkType.bind(null, false); - chainedCheckType.isRequired = checkType.bind(null, true); - - return chainedCheckType; - } - -/***/ }, -/* 198 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - exports.__esModule = true; - exports['default'] = getContainer; - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - var _reactDom = __webpack_require__(34); - - var _reactDom2 = _interopRequireDefault(_reactDom); - - function getContainer(container, defaultContainer) { - container = typeof container === 'function' ? container() : container; - return _reactDom2['default'].findDOMNode(container) || defaultContainer; - } - - module.exports = exports['default']; - -/***/ }, -/* 199 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _reactOverlaysLibTransition = __webpack_require__(88); - - var _reactOverlaysLibTransition2 = _interopRequireDefault(_reactOverlaysLibTransition); - - var _reactPropTypesLibDeprecated = __webpack_require__(91); - - var _reactPropTypesLibDeprecated2 = _interopRequireDefault(_reactPropTypesLibDeprecated); - - var Fade = (function (_React$Component) { - _inherits(Fade, _React$Component); - - function Fade() { - _classCallCheck(this, Fade); - - _React$Component.apply(this, arguments); - } - - // Explicitly copied from Transition for doc generation. - // TODO: Remove duplication once #977 is resolved. - - Fade.prototype.render = function render() { - var timeout = this.props.timeout || this.props.duration; - - return _react2['default'].createElement( - _reactOverlaysLibTransition2['default'], - _extends({}, this.props, { - timeout: timeout, - className: 'fade', - enteredClassName: 'in', - enteringClassName: 'in' - }), - this.props.children - ); - }; - - return Fade; - })(_react2['default'].Component); - - Fade.propTypes = { - /** - * Show the component; triggers the fade in or fade out animation - */ - 'in': _react2['default'].PropTypes.bool, - - /** - * Unmount the component (remove it from the DOM) when it is faded out - */ - unmountOnExit: _react2['default'].PropTypes.bool, - - /** - * Run the fade in animation when the component mounts, if it is initially - * shown - */ - transitionAppear: _react2['default'].PropTypes.bool, - - /** - * Duration of the fade animation in milliseconds, to ensure that finishing - * callbacks are fired even if the original browser transition end events are - * canceled - */ - timeout: _react2['default'].PropTypes.number, - - /** - * duration - * @private - */ - duration: _reactPropTypesLibDeprecated2['default'](_react2['default'].PropTypes.number, 'Use `timeout`.'), - - /** - * Callback fired before the component fades in - */ - onEnter: _react2['default'].PropTypes.func, - /** - * Callback fired after the component starts to fade in - */ - onEntering: _react2['default'].PropTypes.func, - /** - * Callback fired after the has component faded in - */ - onEntered: _react2['default'].PropTypes.func, - /** - * Callback fired before the component fades out - */ - onExit: _react2['default'].PropTypes.func, - /** - * Callback fired after the component starts to fade out - */ - onExiting: _react2['default'].PropTypes.func, - /** - * Callback fired after the component has faded out - */ - onExited: _react2['default'].PropTypes.func - }; - - Fade.defaultProps = { - 'in': false, - timeout: 300, - unmountOnExit: false, - transitionAppear: false - }; - - exports['default'] = Fade; - module.exports = exports['default']; - -/***/ }, -/* 200 */ -/***/ function(module, exports, __webpack_require__) { - - /* eslint-disable react/prop-types */ - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _BootstrapMixin = __webpack_require__(28); - - var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin); - - var ModalDialog = _react2['default'].createClass({ - displayName: 'ModalDialog', - - mixins: [_BootstrapMixin2['default']], - - propTypes: { - /** - * A Callback fired when the header closeButton or non-static backdrop is clicked. - * @type {function} - * @required - */ - onHide: _react2['default'].PropTypes.func.isRequired, - - /** - * A css class to apply to the Modal dialog DOM node. - */ - dialogClassName: _react2['default'].PropTypes.string - - }, - - getDefaultProps: function getDefaultProps() { - return { - bsClass: 'modal', - closeButton: true - }; - }, - - render: function render() { - var modalStyle = _extends({ - display: 'block' - }, this.props.style); - var bsClass = this.props.bsClass; - var dialogClasses = this.getBsClassSet(); - - delete dialogClasses.modal; - dialogClasses[bsClass + '-dialog'] = true; - - return _react2['default'].createElement( - 'div', - _extends({}, this.props, { - title: null, - tabIndex: '-1', - role: 'dialog', - style: modalStyle, - className: _classnames2['default'](this.props.className, bsClass) }), - _react2['default'].createElement( - 'div', - { className: _classnames2['default'](this.props.dialogClassName, dialogClasses) }, - _react2['default'].createElement( - 'div', - { className: bsClass + '-content', role: 'document' }, - this.props.children - ) - ) - ); - } - }); - - exports['default'] = ModalDialog; - module.exports = exports['default']; - -/***/ }, -/* 201 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var ModalBody = (function (_React$Component) { - _inherits(ModalBody, _React$Component); - - function ModalBody() { - _classCallCheck(this, ModalBody); - - _React$Component.apply(this, arguments); - } - - ModalBody.prototype.render = function render() { - return _react2['default'].createElement( - 'div', - _extends({}, this.props, { - className: _classnames2['default'](this.props.className, this.props.modalClassName) }), - this.props.children - ); - }; - - return ModalBody; - })(_react2['default'].Component); - - ModalBody.propTypes = { - /** - * A css class applied to the Component - */ - modalClassName: _react2['default'].PropTypes.string - }; - - ModalBody.defaultProps = { - modalClassName: 'modal-body' - }; - - exports['default'] = ModalBody; - module.exports = exports['default']; - -/***/ }, -/* 202 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var ModalHeader = (function (_React$Component) { - _inherits(ModalHeader, _React$Component); - - function ModalHeader() { - _classCallCheck(this, ModalHeader); - - _React$Component.apply(this, arguments); - } - - // used in liue of parent contexts right now to auto wire the close button - - ModalHeader.prototype.render = function render() { - return _react2['default'].createElement( - 'div', - _extends({}, this.props, { - className: _classnames2['default'](this.props.className, this.props.modalClassName) }), - this.props.closeButton && _react2['default'].createElement( - 'button', - { - className: 'close', - onClick: this.props.onHide }, - _react2['default'].createElement( - 'span', - { 'aria-hidden': 'true' }, - '×' - ) - ), - this.props.children - ); - }; - - return ModalHeader; - })(_react2['default'].Component); - - ModalHeader.__isModalHeader = true; - - ModalHeader.propTypes = { - /** - * The 'aria-label' attribute is used to define a string that labels the current element. - * It is used for Assistive Technology when the label text is not visible on screen. - */ - 'aria-label': _react2['default'].PropTypes.string, - - /** - * A css class applied to the Component - */ - modalClassName: _react2['default'].PropTypes.string, - - /** - * Specify whether the Component should contain a close button - */ - closeButton: _react2['default'].PropTypes.bool, - - /** - * A Callback fired when the close button is clicked. If used directly inside a Modal component, the onHide will automatically - * be propagated up to the parent Modal `onHide`. - */ - onHide: _react2['default'].PropTypes.func - }; - - ModalHeader.defaultProps = { - 'aria-label': 'Close', - modalClassName: 'modal-header', - closeButton: false - }; - - exports['default'] = ModalHeader; - module.exports = exports['default']; - -/***/ }, -/* 203 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var ModalTitle = (function (_React$Component) { - _inherits(ModalTitle, _React$Component); - - function ModalTitle() { - _classCallCheck(this, ModalTitle); - - _React$Component.apply(this, arguments); - } - - ModalTitle.prototype.render = function render() { - return _react2['default'].createElement( - 'h4', - _extends({}, this.props, { - className: _classnames2['default'](this.props.className, this.props.modalClassName) }), - this.props.children - ); - }; - - return ModalTitle; - })(_react2['default'].Component); - - ModalTitle.propTypes = { - /** - * A css class applied to the Component - */ - modalClassName: _react2['default'].PropTypes.string - }; - - ModalTitle.defaultProps = { - modalClassName: 'modal-title' - }; - - exports['default'] = ModalTitle; - module.exports = exports['default']; - -/***/ }, -/* 204 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var ModalFooter = (function (_React$Component) { - _inherits(ModalFooter, _React$Component); - - function ModalFooter() { - _classCallCheck(this, ModalFooter); - - _React$Component.apply(this, arguments); - } - - ModalFooter.prototype.render = function render() { - return _react2['default'].createElement( - 'div', - _extends({}, this.props, { - className: _classnames2['default'](this.props.className, this.props.modalClassName) }), - this.props.children - ); - }; - - return ModalFooter; - })(_react2['default'].Component); - - ModalFooter.propTypes = { - /** - * A css class applied to the Component - */ - modalClassName: _react2['default'].PropTypes.string - }; - - ModalFooter.defaultProps = { - modalClassName: 'modal-footer' - }; - - exports['default'] = ModalFooter; - module.exports = exports['default']; - -/***/ }, -/* 205 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _BootstrapMixin = __webpack_require__(28); - - var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin); - - var _Collapse = __webpack_require__(80); - - var _Collapse2 = _interopRequireDefault(_Collapse); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _utilsValidComponentChildren = __webpack_require__(7); - - var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); - - var _utilsCreateChainedFunction = __webpack_require__(6); - - var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); - - var Nav = _react2['default'].createClass({ - displayName: 'Nav', - - mixins: [_BootstrapMixin2['default']], - - propTypes: { - activeHref: _react2['default'].PropTypes.string, - activeKey: _react2['default'].PropTypes.any, - bsStyle: _react2['default'].PropTypes.oneOf(['tabs', 'pills']), - stacked: _react2['default'].PropTypes.bool, - justified: _react2['default'].PropTypes.bool, - onSelect: _react2['default'].PropTypes.func, - collapsible: _react2['default'].PropTypes.bool, - /** - * CSS classes for the wrapper `nav` element - */ - className: _react2['default'].PropTypes.string, - /** - * HTML id for the wrapper `nav` element - */ - id: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]), - /** - * CSS classes for the inner `ul` element - */ - ulClassName: _react2['default'].PropTypes.string, - /** - * HTML id for the inner `ul` element - */ - ulId: _react2['default'].PropTypes.string, - expanded: _react2['default'].PropTypes.bool, - navbar: _react2['default'].PropTypes.bool, - eventKey: _react2['default'].PropTypes.any, - pullRight: _react2['default'].PropTypes.bool, - right: _react2['default'].PropTypes.bool - }, - - getDefaultProps: function getDefaultProps() { - return { - bsClass: 'nav', - collapsible: false, - expanded: true, - justified: false, - navbar: false, - pullRight: false, - right: false, - stacked: false - }; - }, - - render: function render() { - var classes = this.props.collapsible ? 'navbar-collapse' : null; - - if (this.props.navbar && !this.props.collapsible) { - return this.renderUl(); - } - - return _react2['default'].createElement( - _Collapse2['default'], - { 'in': this.props.expanded }, - _react2['default'].createElement( - 'nav', - _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }), - this.renderUl() - ) - ); - }, - - renderUl: function renderUl() { - var classes = this.getBsClassSet(); - - classes['nav-stacked'] = this.props.stacked; - classes['nav-justified'] = this.props.justified; - classes['navbar-nav'] = this.props.navbar; - classes['pull-right'] = this.props.pullRight; - classes['navbar-right'] = this.props.right; - - return _react2['default'].createElement( - 'ul', - _extends({}, this.props, { - role: this.props.bsStyle === 'tabs' ? 'tablist' : null, - className: _classnames2['default'](this.props.ulClassName, classes), - id: this.props.ulId, - ref: 'ul' - }), - _utilsValidComponentChildren2['default'].map(this.props.children, this.renderNavItem) - ); - }, - - getChildActiveProp: function getChildActiveProp(child) { - if (child.props.active) { - return true; - } - if (this.props.activeKey != null) { - if (child.props.eventKey === this.props.activeKey) { - return true; - } - } - if (this.props.activeHref != null) { - if (child.props.href === this.props.activeHref) { - return true; - } - } - - return child.props.active; - }, - - renderNavItem: function renderNavItem(child, index) { - return _react.cloneElement(child, { - role: this.props.bsStyle === 'tabs' ? 'tab' : null, - active: this.getChildActiveProp(child), - activeKey: this.props.activeKey, - activeHref: this.props.activeHref, - onSelect: _utilsCreateChainedFunction2['default'](child.props.onSelect, this.props.onSelect), - key: child.key ? child.key : index, - navItem: true - }); - } - }); - - exports['default'] = Nav; - module.exports = exports['default']; - -/***/ }, -/* 206 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _objectWithoutProperties = __webpack_require__(26)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _reactPropTypesLibDeprecated = __webpack_require__(91); - - var _reactPropTypesLibDeprecated2 = _interopRequireDefault(_reactPropTypesLibDeprecated); - - var _reactPropTypesLibElementType = __webpack_require__(63); - - var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); - - var _BootstrapMixin = __webpack_require__(28); - - var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin); - - var _Grid = __webpack_require__(178); - - var _Grid2 = _interopRequireDefault(_Grid); - - var _NavBrand = __webpack_require__(207); - - var _NavBrand2 = _interopRequireDefault(_NavBrand); - - var _utilsCreateChainedFunction = __webpack_require__(6); - - var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); - - var _utilsValidComponentChildren = __webpack_require__(7); - - var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); - - var Navbar = _react2['default'].createClass({ - displayName: 'Navbar', - - mixins: [_BootstrapMixin2['default']], - - propTypes: { - fixedTop: _react2['default'].PropTypes.bool, - fixedBottom: _react2['default'].PropTypes.bool, - staticTop: _react2['default'].PropTypes.bool, - inverse: _react2['default'].PropTypes.bool, - fluid: _react2['default'].PropTypes.bool, - role: _react2['default'].PropTypes.string, - /** - * You can use a custom element for this component - */ - componentClass: _reactPropTypesLibElementType2['default'], - brand: _reactPropTypesLibDeprecated2['default'](_react2['default'].PropTypes.node, 'Use the `NavBrand` component.'), - toggleButton: _react2['default'].PropTypes.node, - toggleNavKey: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]), - onToggle: _react2['default'].PropTypes.func, - navExpanded: _react2['default'].PropTypes.bool, - defaultNavExpanded: _react2['default'].PropTypes.bool - }, - - getDefaultProps: function getDefaultProps() { - return { - bsClass: 'navbar', - bsStyle: 'default', - role: 'navigation', - componentClass: 'nav', - fixedTop: false, - fixedBottom: false, - staticTop: false, - inverse: false, - fluid: false, - defaultNavExpanded: false - }; - }, - - getInitialState: function getInitialState() { - return { - navExpanded: this.props.defaultNavExpanded - }; - }, - - shouldComponentUpdate: function shouldComponentUpdate() { - // Defer any updates to this component during the `onSelect` handler. - return !this._isChanging; - }, - - handleToggle: function handleToggle() { - if (this.props.onToggle) { - this._isChanging = true; - this.props.onToggle(); - this._isChanging = false; - } - - this.setState({ - navExpanded: !this.state.navExpanded - }); - }, - - isNavExpanded: function isNavExpanded() { - return this.props.navExpanded != null ? this.props.navExpanded : this.state.navExpanded; - }, - - hasNavBrandChild: function hasNavBrandChild() { - return _utilsValidComponentChildren2['default'].findValidComponents(this.props.children, function (child) { - return child.props.bsRole === 'brand'; - }).length > 0; - }, - - render: function render() { - var _props = this.props; - var brand = _props.brand; - var toggleButton = _props.toggleButton; - var toggleNavKey = _props.toggleNavKey; - var fixedTop = _props.fixedTop; - var fixedBottom = _props.fixedBottom; - var staticTop = _props.staticTop; - var inverse = _props.inverse; - var ComponentClass = _props.componentClass; - var fluid = _props.fluid; - var className = _props.className; - var children = _props.children; - - var props = _objectWithoutProperties(_props, ['brand', 'toggleButton', 'toggleNavKey', 'fixedTop', 'fixedBottom', 'staticTop', 'inverse', 'componentClass', 'fluid', 'className', 'children']); - - var classes = this.getBsClassSet(); - classes['navbar-fixed-top'] = fixedTop; - classes['navbar-fixed-bottom'] = fixedBottom; - classes['navbar-static-top'] = staticTop; - classes['navbar-inverse'] = inverse; - - var showHeader = (brand || toggleButton || toggleNavKey != null) && !this.hasNavBrandChild(); - - return _react2['default'].createElement( - ComponentClass, - _extends({}, props, { className: _classnames2['default'](className, classes) }), - _react2['default'].createElement( - _Grid2['default'], - { fluid: fluid }, - showHeader ? this.renderBrandHeader() : null, - _utilsValidComponentChildren2['default'].map(children, this.renderChild) - ) - ); - }, - - renderBrandHeader: function renderBrandHeader() { - var brand = this.props.brand; - - if (brand) { - brand = _react2['default'].createElement( - _NavBrand2['default'], - null, - brand - ); - } - - return this.renderHeader(brand); - }, - - renderHeader: function renderHeader(brand) { - var hasToggle = this.props.toggleButton || this.props.toggleNavKey != null; - - return _react2['default'].createElement( - 'div', - { className: 'navbar-header' }, - brand, - hasToggle ? this.renderToggleButton() : null - ); - }, - - renderChild: function renderChild(child, index) { - var key = child.key != null ? child.key : index; - - if (child.props.bsRole === 'brand') { - return _react2['default'].cloneElement(this.renderHeader(child), { key: key }); - } - - var toggleNavKey = this.props.toggleNavKey; - - var collapsible = toggleNavKey != null && toggleNavKey === child.props.eventKey; - - return _react2['default'].cloneElement(child, { - navbar: true, - collapsible: collapsible, - expanded: collapsible && this.isNavExpanded(), - key: key - }); - }, - - renderToggleButton: function renderToggleButton() { - var toggleButton = this.props.toggleButton; - - if (_react2['default'].isValidElement(toggleButton)) { - return _react2['default'].cloneElement(toggleButton, { - className: _classnames2['default'](toggleButton.props.className, 'navbar-toggle'), - onClick: _utilsCreateChainedFunction2['default'](this.handleToggle, toggleButton.props.onClick) - }); - } - - var children = undefined; - if (toggleButton != null) { - children = toggleButton; - } else { - children = [_react2['default'].createElement( - 'span', - { className: 'sr-only', key: 0 }, - 'Toggle navigation' - ), _react2['default'].createElement('span', { className: 'icon-bar', key: 1 }), _react2['default'].createElement('span', { className: 'icon-bar', key: 2 }), _react2['default'].createElement('span', { className: 'icon-bar', key: 3 })]; - } - - return _react2['default'].createElement( - 'button', - { - type: 'button', - onClick: this.handleToggle, - className: 'navbar-toggle' - }, - children - ); - } - - }); - - exports['default'] = Navbar; - module.exports = exports['default']; - -/***/ }, -/* 207 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _objectWithoutProperties = __webpack_require__(26)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var NavBrand = (function (_React$Component) { - _inherits(NavBrand, _React$Component); - - function NavBrand() { - _classCallCheck(this, NavBrand); - - _React$Component.apply(this, arguments); - } - - NavBrand.prototype.render = function render() { - var _props = this.props; - var className = _props.className; - var children = _props.children; - - var props = _objectWithoutProperties(_props, ['className', 'children']); - - if (_react2['default'].isValidElement(children)) { - return _react2['default'].cloneElement(children, { - className: _classnames2['default'](children.props.className, className, 'navbar-brand') - }); - } - - return _react2['default'].createElement( - 'span', - _extends({}, props, { className: _classnames2['default'](className, 'navbar-brand') }), - children - ); - }; - - return NavBrand; - })(_react2['default'].Component); - - NavBrand.propTypes = { - bsRole: _react2['default'].PropTypes.string - }; - - NavBrand.defaultProps = { - bsRole: 'brand' - }; - - exports['default'] = NavBrand; - module.exports = exports['default']; - -/***/ }, -/* 208 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _objectWithoutProperties = __webpack_require__(26)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _Dropdown = __webpack_require__(92); - - var _Dropdown2 = _interopRequireDefault(_Dropdown); - - var NavDropdown = (function (_React$Component) { - _inherits(NavDropdown, _React$Component); - - function NavDropdown() { - _classCallCheck(this, NavDropdown); - - _React$Component.apply(this, arguments); - } - - NavDropdown.prototype.render = function render() { - var _props = this.props; - var children = _props.children; - var title = _props.title; - var noCaret = _props.noCaret; - - var props = _objectWithoutProperties(_props, ['children', 'title', 'noCaret']); - - return _react2['default'].createElement( - _Dropdown2['default'], - _extends({}, props, { componentClass: 'li' }), - _react2['default'].createElement( - _Dropdown2['default'].Toggle, - { - useAnchor: true, - disabled: props.disabled, - noCaret: noCaret - }, - title - ), - _react2['default'].createElement( - _Dropdown2['default'].Menu, - null, - children - ) - ); - }; - - return NavDropdown; - })(_react2['default'].Component); - - NavDropdown.propTypes = _extends({ - noCaret: _react2['default'].PropTypes.bool, - title: _react2['default'].PropTypes.node.isRequired - }, _Dropdown2['default'].propTypes); - - exports['default'] = NavDropdown; - module.exports = exports['default']; - -/***/ }, -/* 209 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _objectWithoutProperties = __webpack_require__(26)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _BootstrapMixin = __webpack_require__(28); - - var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin); - - var _SafeAnchor = __webpack_require__(49); - - var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor); - - var NavItem = _react2['default'].createClass({ - displayName: 'NavItem', - - mixins: [_BootstrapMixin2['default']], - - propTypes: { - linkId: _react2['default'].PropTypes.string, - onSelect: _react2['default'].PropTypes.func, - active: _react2['default'].PropTypes.bool, - disabled: _react2['default'].PropTypes.bool, - href: _react2['default'].PropTypes.string, - role: _react2['default'].PropTypes.string, - title: _react2['default'].PropTypes.node, - eventKey: _react2['default'].PropTypes.any, - target: _react2['default'].PropTypes.string, - 'aria-controls': _react2['default'].PropTypes.string - }, - - getDefaultProps: function getDefaultProps() { - return { - active: false, - disabled: false - }; - }, - - render: function render() { - var _props = this.props; - var role = _props.role; - var linkId = _props.linkId; - var disabled = _props.disabled; - var active = _props.active; - var href = _props.href; - var title = _props.title; - var target = _props.target; - var children = _props.children; - var tabIndex = _props.tabIndex; - var ariaControls = _props['aria-controls']; - - var props = _objectWithoutProperties(_props, ['role', 'linkId', 'disabled', 'active', 'href', 'title', 'target', 'children', 'tabIndex', 'aria-controls']); - - var classes = { - active: active, - disabled: disabled - }; - var linkProps = { - role: role, - href: href, - title: title, - target: target, - tabIndex: tabIndex, - id: linkId, - onClick: this.handleClick - }; - - if (!role && href === '#') { - linkProps.role = 'button'; - } - - return _react2['default'].createElement( - 'li', - _extends({}, props, { role: 'presentation', className: _classnames2['default'](props.className, classes) }), - _react2['default'].createElement( - _SafeAnchor2['default'], - _extends({}, linkProps, { 'aria-selected': active, 'aria-controls': ariaControls }), - children - ) - ); - }, - - handleClick: function handleClick(e) { - if (this.props.onSelect) { - e.preventDefault(); - - if (!this.props.disabled) { - this.props.onSelect(this.props.eventKey, this.props.href, this.props.target); - } - } - } - }); - - exports['default'] = NavItem; - module.exports = exports['default']; - //eslint-disable-line - -/***/ }, -/* 210 */ -/***/ function(module, exports, __webpack_require__) { - - /* eslint react/prop-types: [2, {ignore: ["container", "containerPadding", "target", "placement", "children"] }] */ - /* These properties are validated in 'Portal' and 'Position' components */ - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _objectWithoutProperties = __webpack_require__(26)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _reactOverlaysLibOverlay = __webpack_require__(211); - - var _reactOverlaysLibOverlay2 = _interopRequireDefault(_reactOverlaysLibOverlay); - - var _reactPropTypesLibElementType = __webpack_require__(63); - - var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); - - var _Fade = __webpack_require__(199); - - var _Fade2 = _interopRequireDefault(_Fade); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var Overlay = (function (_React$Component) { - _inherits(Overlay, _React$Component); - - function Overlay() { - _classCallCheck(this, Overlay); - - _React$Component.apply(this, arguments); - } - - Overlay.prototype.render = function render() { - var _props = this.props; - var child = _props.children; - var transition = _props.animation; - - var props = _objectWithoutProperties(_props, ['children', 'animation']); - - if (transition === true) { - transition = _Fade2['default']; - } - - if (!transition) { - child = _react.cloneElement(child, { - className: _classnames2['default']('in', child.props.className) - }); - } - - return _react2['default'].createElement( - _reactOverlaysLibOverlay2['default'], - _extends({}, props, { - transition: transition - }), - child - ); - }; - - return Overlay; - })(_react2['default'].Component); - - Overlay.propTypes = _extends({}, _reactOverlaysLibOverlay2['default'].propTypes, { - - /** - * Set the visibility of the Overlay - */ - show: _react2['default'].PropTypes.bool, - /** - * Specify whether the overlay should trigger onHide when the user clicks outside the overlay - */ - rootClose: _react2['default'].PropTypes.bool, - /** - * A callback invoked by the overlay when it wishes to be hidden. Required if - * `rootClose` is specified. - */ - onHide: _react2['default'].PropTypes.func, - - /** - * Use animation - */ - animation: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.bool, _reactPropTypesLibElementType2['default']]), - - /** - * Callback fired before the Overlay transitions in - */ - onEnter: _react2['default'].PropTypes.func, - - /** - * Callback fired as the Overlay begins to transition in - */ - onEntering: _react2['default'].PropTypes.func, - - /** - * Callback fired after the Overlay finishes transitioning in - */ - onEntered: _react2['default'].PropTypes.func, - - /** - * Callback fired right before the Overlay transitions out - */ - onExit: _react2['default'].PropTypes.func, - - /** - * Callback fired as the Overlay begins to transition out - */ - onExiting: _react2['default'].PropTypes.func, - - /** - * Callback fired after the Overlay finishes transitioning out - */ - onExited: _react2['default'].PropTypes.func - }); - - Overlay.defaultProps = { - animation: _Fade2['default'], - rootClose: false, - show: false - }; - - exports['default'] = Overlay; - module.exports = exports['default']; - -/***/ }, -/* 211 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - exports.__esModule = true; - - var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } - - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _Portal = __webpack_require__(195); - - var _Portal2 = _interopRequireDefault(_Portal); - - var _Position = __webpack_require__(212); - - var _Position2 = _interopRequireDefault(_Position); - - var _RootCloseWrapper = __webpack_require__(169); - - var _RootCloseWrapper2 = _interopRequireDefault(_RootCloseWrapper); - - var _reactPropTypesLibElementType = __webpack_require__(218); - - var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); - - /**
- * Built on top of `<Position/>` and `<Portal/>`, the overlay component is great for custom tooltip overlays.
- */ - - var Overlay = (function (_React$Component) { - function Overlay(props, context) { - _classCallCheck(this, Overlay); - - _React$Component.call(this, props, context); - - this.state = { exited: !props.show }; - this.onHiddenListener = this.handleHidden.bind(this); - } - - _inherits(Overlay, _React$Component); - - Overlay.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { - if (nextProps.show) { - this.setState({ exited: false }); - } else if (!nextProps.transition) { - // Otherwise let handleHidden take care of marking exited. - this.setState({ exited: true }); - } - }; - - Overlay.prototype.render = function render() { - var _props = this.props; - var container = _props.container; - var containerPadding = _props.containerPadding; - var target = _props.target; - var placement = _props.placement; - var rootClose = _props.rootClose; - var children = _props.children; - var Transition = _props.transition; - - var props = _objectWithoutProperties(_props, ['container', 'containerPadding', 'target', 'placement', 'rootClose', 'children', 'transition']); - - // Don't un-render the overlay while it's transitioning out. - var mountOverlay = props.show || Transition && !this.state.exited; - if (!mountOverlay) { - // Don't bother showing anything if we don't have to. - return null; - } - - var child = children; - - // Position is be inner-most because it adds inline styles into the child, - // which the other wrappers don't forward correctly. - child = _react2['default'].createElement( - _Position2['default'], - { container: container, containerPadding: containerPadding, target: target, placement: placement }, - child - ); - - if (Transition) { - var onExit = props.onExit; - var onExiting = props.onExiting; - var onEnter = props.onEnter; - var onEntering = props.onEntering; - var onEntered = props.onEntered; - - // This animates the child node by injecting props, so it must precede - // anything that adds a wrapping div. - child = _react2['default'].createElement( - Transition, - { - 'in': props.show, - transitionAppear: true, - onExit: onExit, - onExiting: onExiting, - onExited: this.onHiddenListener, - onEnter: onEnter, - onEntering: onEntering, - onEntered: onEntered - }, - child - ); - } - - // This goes after everything else because it adds a wrapping div. - if (rootClose) { - child = _react2['default'].createElement( - _RootCloseWrapper2['default'], - { onRootClose: props.onHide }, - child - ); - } - - return _react2['default'].createElement( - _Portal2['default'], - { container: container }, - child - ); - }; - - Overlay.prototype.handleHidden = function handleHidden() { - this.setState({ exited: true }); - - if (this.props.onExited) { - var _props2; - - (_props2 = this.props).onExited.apply(_props2, arguments); - } - }; - - return Overlay; - })(_react2['default'].Component); - - Overlay.propTypes = _extends({}, _Portal2['default'].propTypes, _Position2['default'].propTypes, { - /**
- * Set the visibility of the Overlay
- */ - show: _react2['default'].PropTypes.bool, - /**
- * Specify whether the overlay should trigger onHide when the user clicks outside the overlay
- */ - rootClose: _react2['default'].PropTypes.bool, - /**
- * A Callback fired by the Overlay when it wishes to be hidden.
- */ - onHide: _react2['default'].PropTypes.func, - - /**
- * A `<Transition/>` component used to animate the overlay changes visibility.
- */ - transition: _reactPropTypesLibElementType2['default'], - - /**
- * Callback fired before the Overlay transitions in
- */ - onEnter: _react2['default'].PropTypes.func, - - /**
- * Callback fired as the Overlay begins to transition in
- */ - onEntering: _react2['default'].PropTypes.func, - - /**
- * Callback fired after the Overlay finishes transitioning in
- */ - onEntered: _react2['default'].PropTypes.func, - - /**
- * Callback fired right before the Overlay transitions out
- */ - onExit: _react2['default'].PropTypes.func, - - /**
- * Callback fired as the Overlay begins to transition out
- */ - onExiting: _react2['default'].PropTypes.func, - - /**
- * Callback fired after the Overlay finishes transitioning out
- */ - onExited: _react2['default'].PropTypes.func - }); - - exports['default'] = Overlay; - module.exports = exports['default']; - -/***/ }, -/* 212 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - exports.__esModule = true; - - var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } - - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _reactDom = __webpack_require__(34); - - var _reactDom2 = _interopRequireDefault(_reactDom); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _utilsOwnerDocument = __webpack_require__(173); - - var _utilsOwnerDocument2 = _interopRequireDefault(_utilsOwnerDocument); - - var _utilsGetContainer = __webpack_require__(198); - - var _utilsGetContainer2 = _interopRequireDefault(_utilsGetContainer); - - var _utilsOverlayPositionUtils = __webpack_require__(213); - - var _reactPropTypesLibMountable = __webpack_require__(196); - - var _reactPropTypesLibMountable2 = _interopRequireDefault(_reactPropTypesLibMountable); - - /**
- * The Position component calulates the corrdinates for its child, to
- * position it relative to a `target` component or node. Useful for creating callouts and tooltips,
- * the Position component injects a `style` props with `left` and `top` values for positioning your component.
- *
- * It also injects "arrow" `left`, and `top` values for styling callout arrows for giving your components
- * a sense of directionality.
- */ - - var Position = (function (_React$Component) { - function Position(props, context) { - _classCallCheck(this, Position); - - _React$Component.call(this, props, context); - - this.state = { - positionLeft: null, - positionTop: null, - arrowOffsetLeft: null, - arrowOffsetTop: null - }; - - this._needsFlush = false; - this._lastTarget = null; - } - - _inherits(Position, _React$Component); - - Position.prototype.componentDidMount = function componentDidMount() { - this.updatePosition(); - }; - - Position.prototype.componentWillReceiveProps = function componentWillReceiveProps() { - this._needsFlush = true; - }; - - Position.prototype.componentDidUpdate = function componentDidUpdate(prevProps) { - if (this._needsFlush) { - this._needsFlush = false; - this.updatePosition(prevProps.placement !== this.props.placement); - } - }; - - Position.prototype.componentWillUnmount = function componentWillUnmount() { - // Probably not necessary, but just in case holding a reference to the - // target causes problems somewhere. - this._lastTarget = null; - }; - - Position.prototype.render = function render() { - var _props = this.props; - var children = _props.children; - var className = _props.className; - - var props = _objectWithoutProperties(_props, ['children', 'className']); - - var _state = this.state; - var positionLeft = _state.positionLeft; - var positionTop = _state.positionTop; - - var arrowPosition = _objectWithoutProperties(_state, ['positionLeft', 'positionTop']); - - var child = _react2['default'].Children.only(children); - return _react.cloneElement(child, _extends({}, props, arrowPosition, { - //do we need to also forward positionLeft and positionTop if they are set to style? - positionLeft: positionLeft, - positionTop: positionTop, - className: _classnames2['default'](className, child.props.className), - style: _extends({}, child.props.style, { - left: positionLeft, - top: positionTop - }) - })); - }; - - Position.prototype.getTargetSafe = function getTargetSafe() { - if (!this.props.target) { - return null; - } - - var target = this.props.target(this.props); - if (!target) { - // This is so we can just use === check below on all falsy targets. - return null; - } - - return target; - }; - - Position.prototype.updatePosition = function updatePosition(placementChanged) { - var target = this.getTargetSafe(); - - if (target === this._lastTarget && !placementChanged) { - return; - } - - this._lastTarget = target; - - if (!target) { - this.setState({ - positionLeft: null, - positionTop: null, - arrowOffsetLeft: null, - arrowOffsetTop: null - }); - - return; - } - - var overlay = _reactDom2['default'].findDOMNode(this); - var container = _utilsGetContainer2['default'](this.props.container, _utilsOwnerDocument2['default'](this).body); - - this.setState(_utilsOverlayPositionUtils.calcOverlayPosition(this.props.placement, overlay, target, container, this.props.containerPadding)); - }; - - return Position; - })(_react2['default'].Component); - - Position.propTypes = { - /**
- * Function mapping props to a DOM node the component is positioned next to
- */ - target: _react2['default'].PropTypes.func, - /**
- * "offsetParent" of the component
- */ - container: _reactPropTypesLibMountable2['default'], - /**
- * Minimum spacing in pixels between container border and component border
- */ - containerPadding: _react2['default'].PropTypes.number, - /**
- * How to position the component relative to the target
- */ - placement: _react2['default'].PropTypes.oneOf(['top', 'right', 'bottom', 'left']) - }; - - Position.displayName = 'Position'; - - Position.defaultProps = { - containerPadding: 0, - placement: 'right' - }; - - exports['default'] = Position; - module.exports = exports['default']; - -/***/ }, -/* 213 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - exports.__esModule = true; - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - var _ownerDocument = __webpack_require__(173); - - var _ownerDocument2 = _interopRequireDefault(_ownerDocument); - - var _domHelpersQueryOffset = __webpack_require__(39); - - var _domHelpersQueryOffset2 = _interopRequireDefault(_domHelpersQueryOffset); - - var _domHelpersQueryPosition = __webpack_require__(214); - - var _domHelpersQueryPosition2 = _interopRequireDefault(_domHelpersQueryPosition); - - var _domHelpersQueryScrollTop = __webpack_require__(216); - - var _domHelpersQueryScrollTop2 = _interopRequireDefault(_domHelpersQueryScrollTop); - - var utils = { - - getContainerDimensions: function getContainerDimensions(containerNode) { - var width = undefined, - height = undefined, - scroll = undefined; - - if (containerNode.tagName === 'BODY') { - width = window.innerWidth; - height = window.innerHeight; - - scroll = _domHelpersQueryScrollTop2['default'](_ownerDocument2['default'](containerNode).documentElement) || _domHelpersQueryScrollTop2['default'](containerNode); - } else { - var _getOffset = _domHelpersQueryOffset2['default'](containerNode); - - width = _getOffset.width; - height = _getOffset.height; - - scroll = _domHelpersQueryScrollTop2['default'](containerNode); - } - - return { width: width, height: height, scroll: scroll }; - }, - - getPosition: function getPosition(target, container) { - var offset = container.tagName === 'BODY' ? _domHelpersQueryOffset2['default'](target) : _domHelpersQueryPosition2['default'](target, container); - - return offset; - }, - - calcOverlayPosition: function calcOverlayPosition(placement, overlayNode, target, container, padding) { - var childOffset = utils.getPosition(target, container); - - var _getOffset2 = _domHelpersQueryOffset2['default'](overlayNode); - - var overlayHeight = _getOffset2.height; - var overlayWidth = _getOffset2.width; - - var positionLeft = undefined, - positionTop = undefined, - arrowOffsetLeft = undefined, - arrowOffsetTop = undefined; - - if (placement === 'left' || placement === 'right') { - positionTop = childOffset.top + (childOffset.height - overlayHeight) / 2; - - if (placement === 'left') { - positionLeft = childOffset.left - overlayWidth; - } else { - positionLeft = childOffset.left + childOffset.width; - } - - var topDelta = getTopDelta(positionTop, overlayHeight, container, padding); - - positionTop += topDelta; - arrowOffsetTop = 50 * (1 - 2 * topDelta / overlayHeight) + '%'; - arrowOffsetLeft = void 0; - } else if (placement === 'top' || placement === 'bottom') { - positionLeft = childOffset.left + (childOffset.width - overlayWidth) / 2; - - if (placement === 'top') { - positionTop = childOffset.top - overlayHeight; - } else { - positionTop = childOffset.top + childOffset.height; - } - - var leftDelta = getLeftDelta(positionLeft, overlayWidth, container, padding); - positionLeft += leftDelta; - arrowOffsetLeft = 50 * (1 - 2 * leftDelta / overlayWidth) + '%'; - arrowOffsetTop = void 0; - } else { - throw new Error('calcOverlayPosition(): No such placement of "' + placement + '" found.'); - } - - return { positionLeft: positionLeft, positionTop: positionTop, arrowOffsetLeft: arrowOffsetLeft, arrowOffsetTop: arrowOffsetTop }; - } - }; - - function getTopDelta(top, overlayHeight, container, padding) { - var containerDimensions = utils.getContainerDimensions(container); - var containerScroll = containerDimensions.scroll; - var containerHeight = containerDimensions.height; - - var topEdgeOffset = top - padding - containerScroll; - var bottomEdgeOffset = top + padding - containerScroll + overlayHeight; - - if (topEdgeOffset < 0) { - return -topEdgeOffset; - } else if (bottomEdgeOffset > containerHeight) { - return containerHeight - bottomEdgeOffset; - } else { - return 0; - } - } - - function getLeftDelta(left, overlayWidth, container, padding) { - var containerDimensions = utils.getContainerDimensions(container); - var containerWidth = containerDimensions.width; - - var leftEdgeOffset = left - padding; - var rightEdgeOffset = left + padding + overlayWidth; - - if (leftEdgeOffset < 0) { - return -leftEdgeOffset; - } else if (rightEdgeOffset > containerWidth) { - return containerWidth - rightEdgeOffset; - } else { - return 0; - } - } - exports['default'] = utils; - module.exports = exports['default']; - -/***/ }, -/* 214 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var babelHelpers = __webpack_require__(38); - - exports.__esModule = true; - exports['default'] = position; - - var _offset = __webpack_require__(39); - - var _offset2 = babelHelpers.interopRequireDefault(_offset); - - var _offsetParent = __webpack_require__(215); - - var _offsetParent2 = babelHelpers.interopRequireDefault(_offsetParent); - - var _scrollTop = __webpack_require__(216); - - var _scrollTop2 = babelHelpers.interopRequireDefault(_scrollTop); - - var _scrollLeft = __webpack_require__(217); - - var _scrollLeft2 = babelHelpers.interopRequireDefault(_scrollLeft); - - var _style = __webpack_require__(81); - - var _style2 = babelHelpers.interopRequireDefault(_style); - - function nodeName(node) { - return node.nodeName && node.nodeName.toLowerCase(); - } - - function position(node, offsetParent) { - var parentOffset = { top: 0, left: 0 }, - offset; - - // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, - // because it is its only offset parent - if ((0, _style2['default'])(node, 'position') === 'fixed') { - offset = node.getBoundingClientRect(); - } else { - offsetParent = offsetParent || (0, _offsetParent2['default'])(node); - offset = (0, _offset2['default'])(node); - - if (nodeName(offsetParent) !== 'html') parentOffset = (0, _offset2['default'])(offsetParent); - - parentOffset.top += parseInt((0, _style2['default'])(offsetParent, 'borderTopWidth'), 10) - (0, _scrollTop2['default'])(offsetParent) || 0; - parentOffset.left += parseInt((0, _style2['default'])(offsetParent, 'borderLeftWidth'), 10) - (0, _scrollLeft2['default'])(offsetParent) || 0; - } - - // Subtract parent offsets and node margins - return babelHelpers._extends({}, offset, { - top: offset.top - parentOffset.top - (parseInt((0, _style2['default'])(node, 'marginTop'), 10) || 0), - left: offset.left - parentOffset.left - (parseInt((0, _style2['default'])(node, 'marginLeft'), 10) || 0) - }); - } - - module.exports = exports['default']; - -/***/ }, -/* 215 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var babelHelpers = __webpack_require__(38); - - exports.__esModule = true; - exports['default'] = offsetParent; - - var _ownerDocument = __webpack_require__(36); - - var _ownerDocument2 = babelHelpers.interopRequireDefault(_ownerDocument); - - var _style = __webpack_require__(81); - - var _style2 = babelHelpers.interopRequireDefault(_style); - - function nodeName(node) { - return node.nodeName && node.nodeName.toLowerCase(); - } - - function offsetParent(node) { - var doc = (0, _ownerDocument2['default'])(node), - offsetParent = node && node.offsetParent; - - while (offsetParent && nodeName(node) !== 'html' && (0, _style2['default'])(offsetParent, 'position') === 'static') { - offsetParent = offsetParent.offsetParent; - } - - return offsetParent || doc.documentElement; - } - - module.exports = exports['default']; - -/***/ }, -/* 216 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var getWindow = __webpack_require__(42); - - module.exports = function scrollTop(node, val) { - var win = getWindow(node); - - if (val === undefined) return win ? 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop : node.scrollTop; - - if (win) win.scrollTo('pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft, val);else node.scrollTop = val; - }; - -/***/ }, -/* 217 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var getWindow = __webpack_require__(42); - - module.exports = function scrollTop(node, val) { - var win = getWindow(node); - - if (val === undefined) return win ? 'pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft : node.scrollLeft; - - if (win) win.scrollTo(val, 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop);else node.scrollLeft = val; - }; - -/***/ }, -/* 218 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - exports.__esModule = true; - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _common = __webpack_require__(197); - - /** - * Checks whether a prop provides a type of element. - * - * The type of element can be provided in two forms: - * - tag name (string) - * - a return value of React.createClass(...) - * - * @param props - * @param propName - * @param componentName - * @returns {Error|undefined} - */ - - function validate(props, propName, componentName) { - var errBeginning = _common.errMsg(props, propName, componentName, '. Expected an Element `type`'); - - if (typeof props[propName] !== 'function') { - if (_react2['default'].isValidElement(props[propName])) { - return new Error(errBeginning + ', not an actual Element'); - } - - if (typeof props[propName] !== 'string') { - return new Error(errBeginning + ' such as a tag name or return value of React.createClass(...)'); - } - } - } - - exports['default'] = _common.createChainableTypeChecker(validate); - module.exports = exports['default']; - -/***/ }, -/* 219 */ -/***/ function(module, exports, __webpack_require__) { - - /* eslint-disable react/prop-types */ - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _Object$keys = __webpack_require__(75)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _domHelpersQueryContains = __webpack_require__(40); - - var _domHelpersQueryContains2 = _interopRequireDefault(_domHelpersQueryContains); - - var _lodashCompatObjectPick = __webpack_require__(220); - - var _lodashCompatObjectPick2 = _interopRequireDefault(_lodashCompatObjectPick); - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _reactDom = __webpack_require__(34); - - var _reactDom2 = _interopRequireDefault(_reactDom); - - var _warning = __webpack_require__(48); - - var _warning2 = _interopRequireDefault(_warning); - - var _Overlay = __webpack_require__(210); - - var _Overlay2 = _interopRequireDefault(_Overlay); - - var _utilsCreateChainedFunction = __webpack_require__(6); - - var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); - - /** - * Check if value one is inside or equal to the of value - * - * @param {string} one - * @param {string|array} of - * @returns {boolean} - */ - function isOneOf(one, of) { - if (Array.isArray(of)) { - return of.indexOf(one) >= 0; - } - return one === of; - } - - var OverlayTrigger = _react2['default'].createClass({ - displayName: 'OverlayTrigger', - - propTypes: _extends({}, _Overlay2['default'].propTypes, { - - /** - * Specify which action or actions trigger Overlay visibility - */ - trigger: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.oneOf(['click', 'hover', 'focus']), _react2['default'].PropTypes.arrayOf(_react2['default'].PropTypes.oneOf(['click', 'hover', 'focus']))]), - - /** - * A millisecond delay amount to show and hide the Overlay once triggered - */ - delay: _react2['default'].PropTypes.number, - /** - * A millisecond delay amount before showing the Overlay once triggered. - */ - delayShow: _react2['default'].PropTypes.number, - /** - * A millisecond delay amount before hiding the Overlay once triggered. - */ - delayHide: _react2['default'].PropTypes.number, - - /** - * The initial visibility state of the Overlay, for more nuanced visibility controll consider - * using the Overlay component directly. - */ - defaultOverlayShown: _react2['default'].PropTypes.bool, - - /** - * An element or text to overlay next to the target. - */ - overlay: _react2['default'].PropTypes.node.isRequired, - - /** - * @private - */ - onBlur: _react2['default'].PropTypes.func, - /** - * @private - */ - onClick: _react2['default'].PropTypes.func, - /** - * @private - */ - onFocus: _react2['default'].PropTypes.func, - /** - * @private - */ - onMouseEnter: _react2['default'].PropTypes.func, - /** - * @private - */ - onMouseLeave: _react2['default'].PropTypes.func, - - // override specific overlay props - /** - * @private - */ - target: function target() {}, - /** - * @private - */ - onHide: function onHide() {}, - /** - * @private - */ - show: function show() {} - }), - - getDefaultProps: function getDefaultProps() { - return { - defaultOverlayShown: false, - trigger: ['hover', 'focus'] - }; - }, - - getInitialState: function getInitialState() { - return { - isOverlayShown: this.props.defaultOverlayShown - }; - }, - - show: function show() { - this.setState({ - isOverlayShown: true - }); - }, - - hide: function hide() { - this.setState({ - isOverlayShown: false - }); - }, - - toggle: function toggle() { - if (this.state.isOverlayShown) { - this.hide(); - } else { - this.show(); - } - }, - - componentWillMount: function componentWillMount() { - this.handleMouseOver = this.handleMouseOverOut.bind(null, this.handleDelayedShow); - this.handleMouseOut = this.handleMouseOverOut.bind(null, this.handleDelayedHide); - }, - - componentDidMount: function componentDidMount() { - this._mountNode = document.createElement('div'); - this.renderOverlay(); - }, - - renderOverlay: function renderOverlay() { - _reactDom2['default'].unstable_renderSubtreeIntoContainer(this, this._overlay, this._mountNode); - }, - - componentWillUnmount: function componentWillUnmount() { - _reactDom2['default'].unmountComponentAtNode(this._mountNode); - this._mountNode = null; - clearTimeout(this._hoverDelay); - }, - - componentDidUpdate: function componentDidUpdate() { - if (this._mountNode) { - this.renderOverlay(); - } - }, - - getOverlayTarget: function getOverlayTarget() { - return _reactDom2['default'].findDOMNode(this); - }, - - getOverlay: function getOverlay() { - var overlayProps = _extends({}, _lodashCompatObjectPick2['default'](this.props, _Object$keys(_Overlay2['default'].propTypes)), { - show: this.state.isOverlayShown, - onHide: this.hide, - target: this.getOverlayTarget, - onExit: this.props.onExit, - onExiting: this.props.onExiting, - onExited: this.props.onExited, - onEnter: this.props.onEnter, - onEntering: this.props.onEntering, - onEntered: this.props.onEntered - }); - - var overlay = _react.cloneElement(this.props.overlay, { - placement: overlayProps.placement, - container: overlayProps.container - }); - - return _react2['default'].createElement( - _Overlay2['default'], - overlayProps, - overlay - ); - }, - - render: function render() { - var trigger = _react2['default'].Children.only(this.props.children); - var triggerProps = trigger.props; - - var props = { - 'aria-describedby': this.props.overlay.props.id - }; - - // create in render otherwise owner is lost... - this._overlay = this.getOverlay(); - - props.onClick = _utilsCreateChainedFunction2['default'](triggerProps.onClick, this.props.onClick); - - if (isOneOf('click', this.props.trigger)) { - props.onClick = _utilsCreateChainedFunction2['default'](this.toggle, props.onClick); - } - - if (isOneOf('hover', this.props.trigger)) { - _warning2['default'](!(this.props.trigger === 'hover'), '[react-bootstrap] Specifying only the `"hover"` trigger limits the visibilty of the overlay to just mouse users. ' + 'Consider also including the `"focus"` trigger so that touch and keyboard only users can see the overlay as well.'); - - props.onMouseOver = _utilsCreateChainedFunction2['default'](this.handleMouseOver, this.props.onMouseOver, triggerProps.onMouseOver); - props.onMouseOut = _utilsCreateChainedFunction2['default'](this.handleMouseOut, this.props.onMouseOut, triggerProps.onMouseOut); - } - - if (isOneOf('focus', this.props.trigger)) { - props.onFocus = _utilsCreateChainedFunction2['default'](this.handleDelayedShow, this.props.onFocus, triggerProps.onFocus); - props.onBlur = _utilsCreateChainedFunction2['default'](this.handleDelayedHide, this.props.onBlur, triggerProps.onBlur); - } - - return _react.cloneElement(trigger, props); - }, - - handleDelayedShow: function handleDelayedShow() { - var _this = this; - - if (this._hoverDelay != null) { - clearTimeout(this._hoverDelay); - this._hoverDelay = null; - return; - } - - var delay = this.props.delayShow != null ? this.props.delayShow : this.props.delay; - - if (!delay) { - this.show(); - return; - } - - this._hoverDelay = setTimeout(function () { - _this._hoverDelay = null; - _this.show(); - }, delay); - }, - - handleDelayedHide: function handleDelayedHide() { - var _this2 = this; - - if (this._hoverDelay != null) { - clearTimeout(this._hoverDelay); - this._hoverDelay = null; - return; - } - - var delay = this.props.delayHide != null ? this.props.delayHide : this.props.delay; - - if (!delay) { - this.hide(); - return; - } - - this._hoverDelay = setTimeout(function () { - _this2._hoverDelay = null; - _this2.hide(); - }, delay); - }, - - // Simple implementation of mouseEnter and mouseLeave. - // React's built version is broken: https://github.com/facebook/react/issues/4251 - // for cases when the trigger is disabled and mouseOut/Over can cause flicker moving - // from one child element to another. - handleMouseOverOut: function handleMouseOverOut(handler, e) { - var target = e.currentTarget; - var related = e.relatedTarget || e.nativeEvent.toElement; - - if (!related || related !== target && !_domHelpersQueryContains2['default'](target, related)) { - handler(e); - } - } - - }); - - exports['default'] = OverlayTrigger; - module.exports = exports['default']; - -/***/ }, -/* 220 */ -/***/ function(module, exports, __webpack_require__) { - - var baseFlatten = __webpack_require__(157), - bindCallback = __webpack_require__(142), - pickByArray = __webpack_require__(159), - pickByCallback = __webpack_require__(160), - restParam = __webpack_require__(162); - - /** - * Creates an object composed of the picked `object` properties. Property - * names may be specified as individual arguments or as arrays of property - * names. If `predicate` is provided it's invoked for each property of `object` - * picking the properties `predicate` returns truthy for. The predicate is - * bound to `thisArg` and invoked with three arguments: (value, key, object). - * - * @static - * @memberOf _ - * @category Object - * @param {Object} object The source object. - * @param {Function|...(string|string[])} [predicate] The function invoked per - * iteration or property names to pick, specified as individual property - * names or arrays of property names. - * @param {*} [thisArg] The `this` binding of `predicate`. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'user': 'fred', 'age': 40 }; - * - * _.pick(object, 'user'); - * // => { 'user': 'fred' } - * - * _.pick(object, _.isString); - * // => { 'user': 'fred' } - */ - var pick = restParam(function(object, props) { - if (object == null) { - return {}; - } - return typeof props[0] == 'function' - ? pickByCallback(object, bindCallback(props[0], props[1], 3)) - : pickByArray(object, baseFlatten(props)); - }); - - module.exports = pick; - - -/***/ }, -/* 221 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var PageHeader = _react2['default'].createClass({ - displayName: 'PageHeader', - - render: function render() { - return _react2['default'].createElement( - 'div', - _extends({}, this.props, { className: _classnames2['default'](this.props.className, 'page-header') }), - _react2['default'].createElement( - 'h1', - null, - this.props.children - ) - ); - } - }); - - exports['default'] = PageHeader; - module.exports = exports['default']; - -/***/ }, -/* 222 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _SafeAnchor = __webpack_require__(49); - - var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor); - - var PageItem = _react2['default'].createClass({ - displayName: 'PageItem', - - propTypes: { - href: _react2['default'].PropTypes.string, - target: _react2['default'].PropTypes.string, - title: _react2['default'].PropTypes.string, - disabled: _react2['default'].PropTypes.bool, - previous: _react2['default'].PropTypes.bool, - next: _react2['default'].PropTypes.bool, - onSelect: _react2['default'].PropTypes.func, - eventKey: _react2['default'].PropTypes.any - }, - - getDefaultProps: function getDefaultProps() { - return { - disabled: false, - previous: false, - next: false - }; - }, - - render: function render() { - var classes = { - 'disabled': this.props.disabled, - 'previous': this.props.previous, - 'next': this.props.next - }; - - return _react2['default'].createElement( - 'li', - _extends({}, this.props, { - className: _classnames2['default'](this.props.className, classes) }), - _react2['default'].createElement( - _SafeAnchor2['default'], - { - href: this.props.href, - title: this.props.title, - target: this.props.target, - onClick: this.handleSelect }, - this.props.children - ) - ); - }, - - handleSelect: function handleSelect(e) { - if (this.props.onSelect || this.props.disabled) { - e.preventDefault(); - - if (!this.props.disabled) { - this.props.onSelect(this.props.eventKey, this.props.href, this.props.target); - } - } - } - }); - - exports['default'] = PageItem; - module.exports = exports['default']; - -/***/ }, -/* 223 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _utilsValidComponentChildren = __webpack_require__(7); - - var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); - - var _utilsCreateChainedFunction = __webpack_require__(6); - - var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); - - var Pager = _react2['default'].createClass({ - displayName: 'Pager', - - propTypes: { - onSelect: _react2['default'].PropTypes.func - }, - - render: function render() { - return _react2['default'].createElement( - 'ul', - _extends({}, this.props, { - className: _classnames2['default'](this.props.className, 'pager') }), - _utilsValidComponentChildren2['default'].map(this.props.children, this.renderPageItem) - ); - }, - - renderPageItem: function renderPageItem(child, index) { - return _react.cloneElement(child, { - onSelect: _utilsCreateChainedFunction2['default'](child.props.onSelect, this.props.onSelect), - key: child.key ? child.key : index - }); - } - }); - - exports['default'] = Pager; - module.exports = exports['default']; - -/***/ }, -/* 224 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _BootstrapMixin = __webpack_require__(28); - - var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin); - - var _PaginationButton = __webpack_require__(225); - - var _PaginationButton2 = _interopRequireDefault(_PaginationButton); - - var _reactPropTypesLibElementType = __webpack_require__(63); - - var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); - - var _SafeAnchor = __webpack_require__(49); - - var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor); - - var Pagination = _react2['default'].createClass({ - displayName: 'Pagination', - - mixins: [_BootstrapMixin2['default']], - - propTypes: { - activePage: _react2['default'].PropTypes.number, - items: _react2['default'].PropTypes.number, - maxButtons: _react2['default'].PropTypes.number, - ellipsis: _react2['default'].PropTypes.bool, - first: _react2['default'].PropTypes.bool, - last: _react2['default'].PropTypes.bool, - prev: _react2['default'].PropTypes.bool, - next: _react2['default'].PropTypes.bool, - onSelect: _react2['default'].PropTypes.func, - /** - * You can use a custom element for the buttons - */ - buttonComponentClass: _reactPropTypesLibElementType2['default'] - }, - - getDefaultProps: function getDefaultProps() { - return { - activePage: 1, - items: 1, - maxButtons: 0, - first: false, - last: false, - prev: false, - next: false, - ellipsis: true, - buttonComponentClass: _SafeAnchor2['default'], - bsClass: 'pagination' - }; - }, - - renderPageButtons: function renderPageButtons() { - var pageButtons = []; - var startPage = undefined, - endPage = undefined, - hasHiddenPagesAfter = undefined; - var _props = this.props; - var maxButtons = _props.maxButtons; - var activePage = _props.activePage; - var items = _props.items; - var onSelect = _props.onSelect; - var ellipsis = _props.ellipsis; - var buttonComponentClass = _props.buttonComponentClass; - - if (maxButtons) { - var hiddenPagesBefore = activePage - parseInt(maxButtons / 2, 10); - startPage = hiddenPagesBefore > 1 ? hiddenPagesBefore : 1; - hasHiddenPagesAfter = startPage + maxButtons <= items; - - if (!hasHiddenPagesAfter) { - endPage = items; - startPage = items - maxButtons + 1; - if (startPage < 1) { - startPage = 1; - } - } else { - endPage = startPage + maxButtons - 1; - } - } else { - startPage = 1; - endPage = items; - } - - for (var pagenumber = startPage; pagenumber <= endPage; pagenumber++) { - pageButtons.push(_react2['default'].createElement( - _PaginationButton2['default'], - { - key: pagenumber, - eventKey: pagenumber, - active: pagenumber === activePage, - onSelect: onSelect, - buttonComponentClass: buttonComponentClass }, - pagenumber - )); - } - - if (maxButtons && hasHiddenPagesAfter && ellipsis) { - pageButtons.push(_react2['default'].createElement( - _PaginationButton2['default'], - { - key: 'ellipsis', - disabled: true, - buttonComponentClass: buttonComponentClass }, - _react2['default'].createElement( - 'span', - { 'aria-label': 'More' }, - '...' - ) - )); - } - - return pageButtons; - }, - - renderPrev: function renderPrev() { - if (!this.props.prev) { - return null; - } - - return _react2['default'].createElement( - _PaginationButton2['default'], - { - key: 'prev', - eventKey: this.props.activePage - 1, - disabled: this.props.activePage === 1, - onSelect: this.props.onSelect, - buttonComponentClass: this.props.buttonComponentClass }, - _react2['default'].createElement( - 'span', - { 'aria-label': 'Previous' }, - '‹' - ) - ); - }, - - renderNext: function renderNext() { - if (!this.props.next) { - return null; - } - - return _react2['default'].createElement( - _PaginationButton2['default'], - { - key: 'next', - eventKey: this.props.activePage + 1, - disabled: this.props.activePage >= this.props.items, - onSelect: this.props.onSelect, - buttonComponentClass: this.props.buttonComponentClass }, - _react2['default'].createElement( - 'span', - { 'aria-label': 'Next' }, - '›' - ) - ); - }, - - renderFirst: function renderFirst() { - if (!this.props.first) { - return null; - } - - return _react2['default'].createElement( - _PaginationButton2['default'], - { - key: 'first', - eventKey: 1, - disabled: this.props.activePage === 1, - onSelect: this.props.onSelect, - buttonComponentClass: this.props.buttonComponentClass }, - _react2['default'].createElement( - 'span', - { 'aria-label': 'First' }, - '«' - ) - ); - }, - - renderLast: function renderLast() { - if (!this.props.last) { - return null; - } - - return _react2['default'].createElement( - _PaginationButton2['default'], - { - key: 'last', - eventKey: this.props.items, - disabled: this.props.activePage >= this.props.items, - onSelect: this.props.onSelect, - buttonComponentClass: this.props.buttonComponentClass }, - _react2['default'].createElement( - 'span', - { 'aria-label': 'Last' }, - '»' - ) - ); - }, - - render: function render() { - return _react2['default'].createElement( - 'ul', - _extends({}, this.props, { - className: _classnames2['default'](this.props.className, this.getBsClassSet()) }), - this.renderFirst(), - this.renderPrev(), - this.renderPageButtons(), - this.renderNext(), - this.renderLast() - ); - } - }); - - exports['default'] = Pagination; - module.exports = exports['default']; - -/***/ }, -/* 225 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _objectWithoutProperties = __webpack_require__(26)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _BootstrapMixin = __webpack_require__(28); - - var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin); - - var _utilsCreateSelectedEvent = __webpack_require__(226); - - var _utilsCreateSelectedEvent2 = _interopRequireDefault(_utilsCreateSelectedEvent); - - var _reactPropTypesLibElementType = __webpack_require__(63); - - var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); - - var PaginationButton = _react2['default'].createClass({ - displayName: 'PaginationButton', - - mixins: [_BootstrapMixin2['default']], - - propTypes: { - className: _react2['default'].PropTypes.string, - eventKey: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]), - onSelect: _react2['default'].PropTypes.func, - disabled: _react2['default'].PropTypes.bool, - active: _react2['default'].PropTypes.bool, - /** - * You can use a custom element for this component - */ - buttonComponentClass: _reactPropTypesLibElementType2['default'] - }, - - getDefaultProps: function getDefaultProps() { - return { - active: false, - disabled: false - }; - }, - - handleClick: function handleClick(event) { - if (this.props.disabled) { - return; - } - - if (this.props.onSelect) { - var selectedEvent = _utilsCreateSelectedEvent2['default'](this.props.eventKey); - this.props.onSelect(event, selectedEvent); - } - }, - - render: function render() { - var classes = _extends({ - active: this.props.active, - disabled: this.props.disabled - }, this.getBsClassSet()); - - var _props = this.props; - var className = _props.className; - - var anchorProps = _objectWithoutProperties(_props, ['className']); - - var ButtonComponentClass = this.props.buttonComponentClass; - - return _react2['default'].createElement( - 'li', - { className: _classnames2['default'](className, classes) }, - _react2['default'].createElement(ButtonComponentClass, _extends({}, anchorProps, { - onClick: this.handleClick })) - ); - } - }); - - exports['default'] = PaginationButton; - module.exports = exports['default']; - -/***/ }, -/* 226 */ -/***/ function(module, exports) { - - "use strict"; - - exports.__esModule = true; - exports["default"] = createSelectedEvent; - - function createSelectedEvent(eventKey) { - var selectionPrevented = false; - - return { - eventKey: eventKey, - - preventSelection: function preventSelection() { - selectionPrevented = true; - }, - - isSelectionPrevented: function isSelectionPrevented() { - return selectionPrevented; - } - }; - } - - module.exports = exports["default"]; - -/***/ }, -/* 227 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _objectWithoutProperties = __webpack_require__(26)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _BootstrapMixin = __webpack_require__(28); - - var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin); - - var _Collapse = __webpack_require__(80); - - var _Collapse2 = _interopRequireDefault(_Collapse); - - var Panel = _react2['default'].createClass({ - displayName: 'Panel', - - mixins: [_BootstrapMixin2['default']], - - propTypes: { - collapsible: _react2['default'].PropTypes.bool, - onSelect: _react2['default'].PropTypes.func, - header: _react2['default'].PropTypes.node, - id: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]), - footer: _react2['default'].PropTypes.node, - defaultExpanded: _react2['default'].PropTypes.bool, - expanded: _react2['default'].PropTypes.bool, - eventKey: _react2['default'].PropTypes.any, - headerRole: _react2['default'].PropTypes.string, - panelRole: _react2['default'].PropTypes.string - }, - - getDefaultProps: function getDefaultProps() { - return { - bsClass: 'panel', - bsStyle: 'default', - defaultExpanded: false - }; - }, - - getInitialState: function getInitialState() { - return { - expanded: this.props.defaultExpanded - }; - }, - - handleSelect: function handleSelect(e) { - e.selected = true; - - if (this.props.onSelect) { - this.props.onSelect(e, this.props.eventKey); - } else { - e.preventDefault(); - } - - if (e.selected) { - this.handleToggle(); - } - }, - - handleToggle: function handleToggle() { - this.setState({ expanded: !this.state.expanded }); - }, - - isExpanded: function isExpanded() { - return this.props.expanded != null ? this.props.expanded : this.state.expanded; - }, - - render: function render() { - var _props = this.props; - var headerRole = _props.headerRole; - var panelRole = _props.panelRole; - - var props = _objectWithoutProperties(_props, ['headerRole', 'panelRole']); - - return _react2['default'].createElement( - 'div', - _extends({}, props, { - className: _classnames2['default'](this.props.className, this.getBsClassSet()), - id: this.props.collapsible ? null : this.props.id, onSelect: null }), - this.renderHeading(headerRole), - this.props.collapsible ? this.renderCollapsibleBody(panelRole) : this.renderBody(), - this.renderFooter() - ); - }, - - renderCollapsibleBody: function renderCollapsibleBody(panelRole) { - var props = { - className: this.prefixClass('collapse'), - id: this.props.id, - ref: 'panel', - 'aria-hidden': !this.isExpanded() - }; - if (panelRole) { - props.role = panelRole; - } - - return _react2['default'].createElement( - _Collapse2['default'], - { 'in': this.isExpanded() }, - _react2['default'].createElement( - 'div', - props, - this.renderBody() - ) - ); - }, - - renderBody: function renderBody() { - var _this = this; - - var allChildren = this.props.children; - var bodyElements = []; - var panelBodyChildren = []; - var bodyClass = this.prefixClass('body'); - - function getProps() { - return { key: bodyElements.length }; - } - - function addPanelChild(child) { - bodyElements.push(_react.cloneElement(child, getProps())); - } - - function addPanelBody(children) { - bodyElements.push(_react2['default'].createElement( - 'div', - _extends({ className: bodyClass }, getProps()), - children - )); - } - - function maybeRenderPanelBody() { - if (panelBodyChildren.length === 0) { - return; - } - - addPanelBody(panelBodyChildren); - panelBodyChildren = []; - } - - // Handle edge cases where we should not iterate through children. - if (!Array.isArray(allChildren) || allChildren.length === 0) { - if (this.shouldRenderFill(allChildren)) { - addPanelChild(allChildren); - } else { - addPanelBody(allChildren); - } - } else { - allChildren.forEach(function (child) { - if (_this.shouldRenderFill(child)) { - maybeRenderPanelBody(); - - // Separately add the filled element. - addPanelChild(child); - } else { - panelBodyChildren.push(child); - } - }); - - maybeRenderPanelBody(); - } - - return bodyElements; - }, - - shouldRenderFill: function shouldRenderFill(child) { - return _react2['default'].isValidElement(child) && child.props.fill != null; - }, - - renderHeading: function renderHeading(headerRole) { - var header = this.props.header; - - if (!header) { - return null; - } - - if (!_react2['default'].isValidElement(header) || Array.isArray(header)) { - header = this.props.collapsible ? this.renderCollapsibleTitle(header, headerRole) : header; - } else { - var className = _classnames2['default'](this.prefixClass('title'), header.props.className); - - if (this.props.collapsible) { - header = _react.cloneElement(header, { - className: className, - children: this.renderAnchor(header.props.children, headerRole) - }); - } else { - header = _react.cloneElement(header, { className: className }); - } - } - - return _react2['default'].createElement( - 'div', - { className: this.prefixClass('heading') }, - header - ); - }, - - renderAnchor: function renderAnchor(header, headerRole) { - return _react2['default'].createElement( - 'a', - { - href: '#' + (this.props.id || ''), - 'aria-controls': this.props.collapsible ? this.props.id : null, - className: this.isExpanded() ? null : 'collapsed', - 'aria-expanded': this.isExpanded(), - 'aria-selected': this.isExpanded(), - onClick: this.handleSelect, - role: headerRole }, - header - ); - }, - - renderCollapsibleTitle: function renderCollapsibleTitle(header, headerRole) { - return _react2['default'].createElement( - 'h4', - { className: this.prefixClass('title'), role: 'presentation' }, - this.renderAnchor(header, headerRole) - ); - }, - - renderFooter: function renderFooter() { - if (!this.props.footer) { - return null; - } - - return _react2['default'].createElement( - 'div', - { className: this.prefixClass('footer') }, - this.props.footer - ); - } - }); - - exports['default'] = Panel; - module.exports = exports['default']; - -/***/ }, -/* 228 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _BootstrapMixin = __webpack_require__(28); - - var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin); - - var _reactPropTypesLibIsRequiredForA11y = __webpack_require__(163); - - var _reactPropTypesLibIsRequiredForA11y2 = _interopRequireDefault(_reactPropTypesLibIsRequiredForA11y); - - var Popover = _react2['default'].createClass({ - displayName: 'Popover', - - mixins: [_BootstrapMixin2['default']], - - propTypes: { - /** - * An html id attribute, necessary for accessibility - * @type {string} - * @required - */ - id: _reactPropTypesLibIsRequiredForA11y2['default'](_react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number])), - - /** - * Sets the direction the Popover is positioned towards. - */ - placement: _react2['default'].PropTypes.oneOf(['top', 'right', 'bottom', 'left']), - - /** - * The "left" position value for the Popover. - */ - positionLeft: _react2['default'].PropTypes.number, - /** - * The "top" position value for the Popover. - */ - positionTop: _react2['default'].PropTypes.number, - /** - * The "left" position value for the Popover arrow. - */ - arrowOffsetLeft: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.number, _react2['default'].PropTypes.string]), - /** - * The "top" position value for the Popover arrow. - */ - arrowOffsetTop: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.number, _react2['default'].PropTypes.string]), - /** - * Title text - */ - title: _react2['default'].PropTypes.node - }, - - getDefaultProps: function getDefaultProps() { - return { - placement: 'right' - }; - }, - - render: function render() { - var _classes; - - var classes = (_classes = { - 'popover': true - }, _classes[this.props.placement] = true, _classes); - - var style = _extends({ - 'left': this.props.positionLeft, - 'top': this.props.positionTop, - 'display': 'block' - }, this.props.style); - - // eslint-disable-line react/prop-types - var arrowStyle = { - 'left': this.props.arrowOffsetLeft, - 'top': this.props.arrowOffsetTop - }; - - return _react2['default'].createElement( - 'div', - _extends({ role: 'tooltip' }, this.props, { className: _classnames2['default'](this.props.className, classes), style: style, title: null }), - _react2['default'].createElement('div', { className: 'arrow', style: arrowStyle }), - this.props.title ? this.renderTitle() : null, - _react2['default'].createElement( - 'div', - { className: 'popover-content' }, - this.props.children - ) - ); - }, - - renderTitle: function renderTitle() { - return _react2['default'].createElement( - 'h3', - { className: 'popover-title' }, - this.props.title - ); - } - }); - - exports['default'] = Popover; - module.exports = exports['default']; - // we don't want to expose the `style` property - -/***/ }, -/* 229 */ -/***/ function(module, exports, __webpack_require__) { - - /* eslint react/prop-types: [2, {ignore: "bsStyle"}] */ - /* BootstrapMixin contains `bsStyle` type validation */ - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _objectWithoutProperties = __webpack_require__(26)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _Interpolate = __webpack_require__(184); - - var _Interpolate2 = _interopRequireDefault(_Interpolate); - - var _BootstrapMixin = __webpack_require__(28); - - var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _utilsValidComponentChildren = __webpack_require__(7); - - var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); - - var ProgressBar = _react2['default'].createClass({ - displayName: 'ProgressBar', - - propTypes: { - min: _react.PropTypes.number, - now: _react.PropTypes.number, - max: _react.PropTypes.number, - label: _react.PropTypes.node, - srOnly: _react.PropTypes.bool, - striped: _react.PropTypes.bool, - active: _react.PropTypes.bool, - children: onlyProgressBar, // eslint-disable-line no-use-before-define - className: _react2['default'].PropTypes.string, - interpolateClass: _react.PropTypes.node, - /** - * @private - */ - isChild: _react.PropTypes.bool - }, - - mixins: [_BootstrapMixin2['default']], - - getDefaultProps: function getDefaultProps() { - return { - bsClass: 'progress-bar', - min: 0, - max: 100, - active: false, - isChild: false, - srOnly: false, - striped: false - }; - }, - - getPercentage: function getPercentage(now, min, max) { - var roundPrecision = 1000; - return Math.round((now - min) / (max - min) * 100 * roundPrecision) / roundPrecision; - }, - - render: function render() { - if (this.props.isChild) { - return this.renderProgressBar(); - } - - var content = undefined; - - if (this.props.children) { - content = _utilsValidComponentChildren2['default'].map(this.props.children, this.renderChildBar); - } else { - content = this.renderProgressBar(); - } - - return _react2['default'].createElement( - 'div', - _extends({}, this.props, { - className: _classnames2['default'](this.props.className, 'progress'), - min: null, - max: null, - label: null, - 'aria-valuetext': null - }), - content - ); - }, - - renderChildBar: function renderChildBar(child, index) { - return _react.cloneElement(child, { - isChild: true, - key: child.key ? child.key : index - }); - }, - - renderProgressBar: function renderProgressBar() { - var _props = this.props; - var className = _props.className; - var label = _props.label; - var now = _props.now; - var min = _props.min; - var max = _props.max; - - var props = _objectWithoutProperties(_props, ['className', 'label', 'now', 'min', 'max']); - - var percentage = this.getPercentage(now, min, max); - - if (typeof label === 'string') { - label = this.renderLabel(percentage); - } - - if (this.props.srOnly) { - label = _react2['default'].createElement( - 'span', - { className: 'sr-only' }, - label - ); - } - - var classes = _classnames2['default'](className, this.getBsClassSet(), { - active: this.props.active, - 'progress-bar-striped': this.props.active || this.props.striped - }); - - return _react2['default'].createElement( - 'div', - _extends({}, props, { - className: classes, - role: 'progressbar', - style: { width: percentage + '%' }, - 'aria-valuenow': this.props.now, - 'aria-valuemin': this.props.min, - 'aria-valuemax': this.props.max }), - label - ); - }, - - renderLabel: function renderLabel(percentage) { - var InterpolateClass = this.props.interpolateClass || _Interpolate2['default']; - - return _react2['default'].createElement( - InterpolateClass, - { - now: this.props.now, - min: this.props.min, - max: this.props.max, - percent: percentage, - bsStyle: this.props.bsStyle }, - this.props.label - ); - } - }); - - /** - * Custom propTypes checker - */ - function onlyProgressBar(props, propName, componentName) { - if (props[propName]) { - var _ret = (function () { - var error = undefined, - childIdentifier = undefined; - - _react2['default'].Children.forEach(props[propName], function (child) { - if (child.type !== ProgressBar) { - childIdentifier = child.type.displayName ? child.type.displayName : child.type; - error = new Error('Children of ' + componentName + ' can contain only ProgressBar components. Found ' + childIdentifier); - } - }); - - return { - v: error - }; - })(); - - if (typeof _ret === 'object') return _ret.v; - } - } - - exports['default'] = ProgressBar; - module.exports = exports['default']; - -/***/ }, -/* 230 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _objectWithoutProperties = __webpack_require__(26)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _warning = __webpack_require__(48); - - var _warning2 = _interopRequireDefault(_warning); - - var ResponsiveEmbed = (function (_React$Component) { - _inherits(ResponsiveEmbed, _React$Component); - - function ResponsiveEmbed() { - _classCallCheck(this, ResponsiveEmbed); - - _React$Component.apply(this, arguments); - } - - ResponsiveEmbed.prototype.render = function render() { - var _props = this.props; - var bsClass = _props.bsClass; - var className = _props.className; - var a16by9 = _props.a16by9; - var a4by3 = _props.a4by3; - - var props = _objectWithoutProperties(_props, ['bsClass', 'className', 'a16by9', 'a4by3']); - - _warning2['default'](!(!a16by9 && !a4by3), '`a16by9` or `a4by3` attribute must be set.'); - _warning2['default'](!(a16by9 && a4by3), 'Either `a16by9` or `a4by3` attribute can be set. Not both.'); - - var aspectRatio = { - 'embed-responsive-16by9': a16by9, - 'embed-responsive-4by3': a4by3 - }; - - return _react2['default'].createElement( - 'div', - { className: _classnames2['default'](bsClass, aspectRatio) }, - _react.cloneElement(this.props.children, _extends({}, props, { - className: _classnames2['default'](className, 'embed-responsive-item') - })) - ); - }; - - return ResponsiveEmbed; - })(_react2['default'].Component); - - ResponsiveEmbed.defaultProps = { - bsClass: 'embed-responsive', - a16by9: false, - a4by3: false - }; - - ResponsiveEmbed.propTypes = { - /** - * bootstrap className - * @private - */ - bsClass: _react.PropTypes.string, - /** - * This component accepts only one child element - */ - children: _react.PropTypes.element.isRequired, - /** - * 16by9 aspect ratio - */ - a16by9: _react.PropTypes.bool, - /** - * 4by3 aspect ratio - */ - a4by3: _react.PropTypes.bool - }; - - exports['default'] = ResponsiveEmbed; - module.exports = exports['default']; - -/***/ }, -/* 231 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _reactPropTypesLibElementType = __webpack_require__(63); - - var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); - - var Row = _react2['default'].createClass({ - displayName: 'Row', - - propTypes: { - /** - * You can use a custom element for this component - */ - componentClass: _reactPropTypesLibElementType2['default'] - }, - - getDefaultProps: function getDefaultProps() { - return { - componentClass: 'div' - }; - }, - - render: function render() { - var ComponentClass = this.props.componentClass; - - return _react2['default'].createElement( - ComponentClass, - _extends({}, this.props, { className: _classnames2['default'](this.props.className, 'row') }), - this.props.children - ); - } - }); - - exports['default'] = Row; - module.exports = exports['default']; - -/***/ }, -/* 232 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _objectWithoutProperties = __webpack_require__(26)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _BootstrapMixin = __webpack_require__(28); - - var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin); - - var _Button = __webpack_require__(62); - - var _Button2 = _interopRequireDefault(_Button); - - var _Dropdown = __webpack_require__(92); - - var _Dropdown2 = _interopRequireDefault(_Dropdown); - - var _SplitToggle = __webpack_require__(233); - - var _SplitToggle2 = _interopRequireDefault(_SplitToggle); - - var SplitButton = (function (_React$Component) { - _inherits(SplitButton, _React$Component); - - function SplitButton() { - _classCallCheck(this, SplitButton); - - _React$Component.apply(this, arguments); - } - - SplitButton.prototype.render = function render() { - var _props = this.props; - var children = _props.children; - var title = _props.title; - var onClick = _props.onClick; - var target = _props.target; - var href = _props.href; - var - // bsStyle is validated by 'Button' component - bsStyle = _props.bsStyle; - - var props = _objectWithoutProperties(_props, ['children', 'title', 'onClick', 'target', 'href', 'bsStyle']); - - var disabled = props.disabled; - - var button = _react2['default'].createElement( - _Button2['default'], - { - onClick: onClick, - bsStyle: bsStyle, - disabled: disabled, - target: target, - href: href - }, - title - ); - - return _react2['default'].createElement( - _Dropdown2['default'], - props, - button, - _react2['default'].createElement(_SplitToggle2['default'], { - 'aria-label': title, - bsStyle: bsStyle, - disabled: disabled - }), - _react2['default'].createElement( - _Dropdown2['default'].Menu, - null, - children - ) - ); - }; - - return SplitButton; - })(_react2['default'].Component); - - SplitButton.propTypes = _extends({}, _Dropdown2['default'].propTypes, _BootstrapMixin2['default'].propTypes, { - - /** - * @private - */ - onClick: function onClick() {}, - target: _react2['default'].PropTypes.string, - href: _react2['default'].PropTypes.string, - /** - * The content of the split button. - */ - title: _react2['default'].PropTypes.node.isRequired - }); - - SplitButton.defaultProps = { - disabled: false, - dropup: false, - pullRight: false - }; - - SplitButton.Toggle = _SplitToggle2['default']; - - exports['default'] = SplitButton; - module.exports = exports['default']; - // eslint-disable-line - -/***/ }, -/* 233 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _DropdownToggle = __webpack_require__(174); - - var _DropdownToggle2 = _interopRequireDefault(_DropdownToggle); - - var SplitToggle = (function (_React$Component) { - _inherits(SplitToggle, _React$Component); - - function SplitToggle() { - _classCallCheck(this, SplitToggle); - - _React$Component.apply(this, arguments); - } - - SplitToggle.prototype.render = function render() { - return _react2['default'].createElement(_DropdownToggle2['default'], _extends({}, this.props, { - useAnchor: false, - noCaret: false - })); - }; - - return SplitToggle; - })(_react2['default'].Component); - - exports['default'] = SplitToggle; - - SplitToggle.defaultProps = _DropdownToggle2['default'].defaultProps; - module.exports = exports['default']; - -/***/ }, -/* 234 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _utilsValidComponentChildren = __webpack_require__(7); - - var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); - - var _utilsCreateChainedFunction = __webpack_require__(6); - - var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); - - var _BootstrapMixin = __webpack_require__(28); - - var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin); - - var _SafeAnchor = __webpack_require__(49); - - var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor); - - var SubNav = _react2['default'].createClass({ - displayName: 'SubNav', - - mixins: [_BootstrapMixin2['default']], - - propTypes: { - onSelect: _react2['default'].PropTypes.func, - active: _react2['default'].PropTypes.bool, - activeHref: _react2['default'].PropTypes.string, - activeKey: _react2['default'].PropTypes.any, - disabled: _react2['default'].PropTypes.bool, - eventKey: _react2['default'].PropTypes.any, - href: _react2['default'].PropTypes.string, - title: _react2['default'].PropTypes.string, - text: _react2['default'].PropTypes.node, - target: _react2['default'].PropTypes.string - }, - - getDefaultProps: function getDefaultProps() { - return { - bsClass: 'nav', - active: false, - disabled: false - }; - }, - - handleClick: function handleClick(e) { - if (this.props.onSelect) { - e.preventDefault(); - - if (!this.props.disabled) { - this.props.onSelect(this.props.eventKey, this.props.href, this.props.target); - } - } - }, - - isActive: function isActive() { - return this.isChildActive(this); - }, - - isChildActive: function isChildActive(child) { - var _this = this; - - if (child.props.active) { - return true; - } - - if (this.props.activeKey != null && this.props.activeKey === child.props.eventKey) { - return true; - } - - if (this.props.activeHref != null && this.props.activeHref === child.props.href) { - return true; - } - - if (child.props.children) { - var isActive = false; - - _utilsValidComponentChildren2['default'].forEach(child.props.children, function (grandchild) { - if (_this.isChildActive(grandchild)) { - isActive = true; - } - }, this); - - return isActive; - } - - return false; - }, - - getChildActiveProp: function getChildActiveProp(child) { - if (child.props.active) { - return true; - } - if (this.props.activeKey != null) { - if (child.props.eventKey === this.props.activeKey) { - return true; - } - } - if (this.props.activeHref != null) { - if (child.props.href === this.props.activeHref) { - return true; - } - } - - return child.props.active; - }, - - render: function render() { - var classes = { - 'active': this.isActive(), - 'disabled': this.props.disabled - }; - - return _react2['default'].createElement( - 'li', - _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }), - _react2['default'].createElement( - _SafeAnchor2['default'], - { - href: this.props.href, - title: this.props.title, - target: this.props.target, - onClick: this.handleClick }, - this.props.text - ), - _react2['default'].createElement( - 'ul', - { className: 'nav' }, - _utilsValidComponentChildren2['default'].map(this.props.children, this.renderNavItem) - ) - ); - }, - - renderNavItem: function renderNavItem(child, index) { - return _react.cloneElement(child, { - active: this.getChildActiveProp(child), - onSelect: _utilsCreateChainedFunction2['default'](child.props.onSelect, this.props.onSelect), - key: child.key ? child.key : index - }); - } - }); - - exports['default'] = SubNav; - module.exports = exports['default']; - -/***/ }, -/* 235 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _reactDom = __webpack_require__(34); - - var _reactDom2 = _interopRequireDefault(_reactDom); - - var _utilsTransitionEvents = __webpack_require__(73); - - var _utilsTransitionEvents2 = _interopRequireDefault(_utilsTransitionEvents); - - var Tab = _react2['default'].createClass({ - displayName: 'Tab', - - propTypes: { - /** - * @private - */ - active: _react2['default'].PropTypes.bool, - animation: _react2['default'].PropTypes.bool, - /** - * It is used by 'Tabs' - parent component - * @private - */ - onAnimateOutEnd: _react2['default'].PropTypes.func, - disabled: _react2['default'].PropTypes.bool, - title: _react2['default'].PropTypes.node, - /** - * tabClassName is used as className for the associated NavItem - */ - tabClassName: _react2['default'].PropTypes.string - }, - - getDefaultProps: function getDefaultProps() { - return { - animation: true - }; - }, - - getInitialState: function getInitialState() { - return { - animateIn: false, - animateOut: false - }; - }, - - componentWillReceiveProps: function componentWillReceiveProps(nextProps) { - if (this.props.animation) { - if (!this.state.animateIn && nextProps.active && !this.props.active) { - this.setState({ - animateIn: true - }); - } else if (!this.state.animateOut && !nextProps.active && this.props.active) { - this.setState({ - animateOut: true - }); - } - } - }, - - componentDidUpdate: function componentDidUpdate() { - if (this.state.animateIn) { - setTimeout(this.startAnimateIn, 0); - } - if (this.state.animateOut) { - _utilsTransitionEvents2['default'].addEndEventListener(_reactDom2['default'].findDOMNode(this), this.stopAnimateOut); - } - }, - - startAnimateIn: function startAnimateIn() { - if (this.isMounted()) { - this.setState({ - animateIn: false - }); - } - }, - - stopAnimateOut: function stopAnimateOut() { - if (this.isMounted()) { - this.setState({ - animateOut: false - }); - - if (this.props.onAnimateOutEnd) { - this.props.onAnimateOutEnd(); - } - } - }, - - render: function render() { - var classes = { - 'tab-pane': true, - 'fade': true, - 'active': this.props.active || this.state.animateOut, - 'in': this.props.active && !this.state.animateIn - }; - - return _react2['default'].createElement( - 'div', - _extends({}, this.props, { - title: undefined, - role: 'tabpanel', - 'aria-hidden': !this.props.active, - className: _classnames2['default'](this.props.className, classes) - }), - this.props.children - ); - } - }); - - exports['default'] = Tab; - module.exports = exports['default']; - -/***/ }, -/* 236 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var Table = _react2['default'].createClass({ - displayName: 'Table', - - propTypes: { - striped: _react2['default'].PropTypes.bool, - bordered: _react2['default'].PropTypes.bool, - condensed: _react2['default'].PropTypes.bool, - hover: _react2['default'].PropTypes.bool, - responsive: _react2['default'].PropTypes.bool - }, - - getDefaultProps: function getDefaultProps() { - return { - bordered: false, - condensed: false, - hover: false, - responsive: false, - striped: false - }; - }, - - render: function render() { - var classes = { - 'table': true, - 'table-striped': this.props.striped, - 'table-bordered': this.props.bordered, - 'table-condensed': this.props.condensed, - 'table-hover': this.props.hover - }; - var table = _react2['default'].createElement( - 'table', - _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }), - this.props.children - ); - - return this.props.responsive ? _react2['default'].createElement( - 'div', - { className: 'table-responsive' }, - table - ) : table; - } - }); - - exports['default'] = Table; - module.exports = exports['default']; - -/***/ }, -/* 237 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _objectWithoutProperties = __webpack_require__(26)['default']; - - var _Object$keys = __webpack_require__(75)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _reactDom = __webpack_require__(34); - - var _reactDom2 = _interopRequireDefault(_reactDom); - - var _Col = __webpack_require__(74); - - var _Col2 = _interopRequireDefault(_Col); - - var _Nav = __webpack_require__(205); - - var _Nav2 = _interopRequireDefault(_Nav); - - var _NavItem = __webpack_require__(209); - - var _NavItem2 = _interopRequireDefault(_NavItem); - - var _styleMaps = __webpack_require__(29); - - var _styleMaps2 = _interopRequireDefault(_styleMaps); - - var _keycode = __webpack_require__(94); - - var _keycode2 = _interopRequireDefault(_keycode); - - var _utilsCreateChainedFunction = __webpack_require__(6); - - var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); - - var _utilsValidComponentChildren = __webpack_require__(7); - - var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); - - var paneId = function paneId(props, child) { - return child.props.id ? child.props.id : props.id && props.id + '___pane___' + child.props.eventKey; - }; - var tabId = function tabId(props, child) { - return child.props.id ? child.props.id + '___tab' : props.id && props.id + '___tab___' + child.props.eventKey; - }; - - var findChild = _utilsValidComponentChildren2['default'].find; - - function getDefaultActiveKeyFromChildren(children) { - var defaultActiveKey = undefined; - - _utilsValidComponentChildren2['default'].forEach(children, function (child) { - if (defaultActiveKey == null) { - defaultActiveKey = child.props.eventKey; - } - }); - - return defaultActiveKey; - } - - function move(children, currentKey, keys, moveNext) { - var lastIdx = keys.length - 1; - var stopAt = keys[moveNext ? Math.max(lastIdx, 0) : 0]; - var nextKey = currentKey; - - function getNext() { - var idx = keys.indexOf(nextKey); - nextKey = moveNext ? keys[Math.min(lastIdx, idx + 1)] : keys[Math.max(0, idx - 1)]; - - return findChild(children, function (_child) { - return _child.props.eventKey === nextKey; - }); - } - - var next = getNext(); - - while (next.props.eventKey !== stopAt && next.props.disabled) { - next = getNext(); - } - - return next.props.disabled ? currentKey : next.props.eventKey; - } - - var Tabs = _react2['default'].createClass({ - displayName: 'Tabs', - - propTypes: { - activeKey: _react2['default'].PropTypes.any, - defaultActiveKey: _react2['default'].PropTypes.any, - /** - * Navigation style for tabs - * - * If not specified, it will be treated as `'tabs'` when vertically - * positioned and `'pills'` when horizontally positioned. - */ - bsStyle: _react2['default'].PropTypes.oneOf(['tabs', 'pills']), - animation: _react2['default'].PropTypes.bool, - id: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]), - onSelect: _react2['default'].PropTypes.func, - position: _react2['default'].PropTypes.oneOf(['top', 'left', 'right']), - /** - * Number of grid columns for the tabs if horizontally positioned - * - * This accepts either a single width or a mapping of size to width. - */ - tabWidth: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.number, _react2['default'].PropTypes.object]), - /** - * Number of grid columns for the panes if horizontally positioned - * - * This accepts either a single width or a mapping of size to width. If not - * specified, it will be treated as `styleMaps.GRID_COLUMNS` minus - * `tabWidth`. - */ - paneWidth: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.number, _react2['default'].PropTypes.object]), - /** - * Render without clearfix if horizontally positioned - */ - standalone: _react2['default'].PropTypes.bool - }, - - getDefaultProps: function getDefaultProps() { - return { - animation: true, - tabWidth: 2, - position: 'top', - standalone: false - }; - }, - - getInitialState: function getInitialState() { - var defaultActiveKey = this.props.defaultActiveKey != null ? this.props.defaultActiveKey : getDefaultActiveKeyFromChildren(this.props.children); - - return { - activeKey: defaultActiveKey, - previousActiveKey: null - }; - }, - - componentWillReceiveProps: function componentWillReceiveProps(nextProps) { - var _this = this; - - if (nextProps.activeKey != null && nextProps.activeKey !== this.props.activeKey) { - (function () { - // check if the 'previousActiveKey' child still exists - var previousActiveKey = _this.props.activeKey; - _react2['default'].Children.forEach(nextProps.children, function (child) { - if (_react2['default'].isValidElement(child)) { - if (child.props.eventKey === previousActiveKey) { - _this.setState({ - previousActiveKey: previousActiveKey - }); - return; - } - } - }); - })(); - } - }, - - componentDidUpdate: function componentDidUpdate() { - var tabs = this._tabs; - var tabIdx = this._eventKeys().indexOf(this.getActiveKey()); - - if (this._needsRefocus) { - this._needsRefocus = false; - if (tabs && tabIdx !== -1) { - var tabNode = _reactDom2['default'].findDOMNode(tabs[tabIdx]); - - if (tabNode) { - tabNode.firstChild.focus(); - } - } - } - }, - - handlePaneAnimateOutEnd: function handlePaneAnimateOutEnd() { - this.setState({ - previousActiveKey: null - }); - }, - - render: function render() { - var _props = this.props; - var id = _props.id; - var className = _props.className; - var style = _props.style; - var position = _props.position; - var bsStyle = _props.bsStyle; - var tabWidth = _props.tabWidth; - var paneWidth = _props.paneWidth; - var standalone = _props.standalone; - var children = _props.children; - - var props = _objectWithoutProperties(_props, ['id', 'className', 'style', 'position', 'bsStyle', 'tabWidth', 'paneWidth', 'standalone', 'children']); - - var isHorizontal = position === 'left' || position === 'right'; - - if (bsStyle == null) { - bsStyle = isHorizontal ? 'pills' : 'tabs'; - } - - var containerProps = { id: id, className: className, style: style }; - - var tabsProps = _extends({}, props, { - bsStyle: bsStyle, - stacked: isHorizontal, - activeKey: this.getActiveKey(), - onSelect: this.handleSelect, - ref: 'tabs', - role: 'tablist' - }); - var childTabs = _utilsValidComponentChildren2['default'].map(children, this.renderTab); - - var panesProps = { - className: 'tab-content', - ref: 'panes' - }; - var childPanes = _utilsValidComponentChildren2['default'].map(children, this.renderPane); - - if (isHorizontal) { - if (!standalone) { - containerProps.className = _classnames2['default'](containerProps.className, 'clearfix'); - } - - var _getColProps = this.getColProps({ tabWidth: tabWidth, paneWidth: paneWidth }); - - var tabsColProps = _getColProps.tabsColProps; - var panesColProps = _getColProps.panesColProps; - - var tabs = _react2['default'].createElement( - _Col2['default'], - _extends({ componentClass: _Nav2['default'] }, tabsProps, tabsColProps), - childTabs - ); - var panes = _react2['default'].createElement( - _Col2['default'], - _extends({}, panesProps, panesColProps), - childPanes - ); - - if (position === 'left') { - return _react2['default'].createElement( - 'div', - containerProps, - tabs, - panes - ); - } - - return _react2['default'].createElement( - 'div', - containerProps, - panes, - tabs - ); - } - - return _react2['default'].createElement( - 'div', - containerProps, - _react2['default'].createElement( - _Nav2['default'], - tabsProps, - childTabs - ), - _react2['default'].createElement( - 'div', - panesProps, - childPanes - ) - ); - }, - - getActiveKey: function getActiveKey() { - return this.props.activeKey !== undefined ? this.props.activeKey : this.state.activeKey; - }, - - renderPane: function renderPane(child, index) { - var previousActiveKey = this.state.previousActiveKey; - - var shouldPaneBeSetActive = child.props.eventKey === this.getActiveKey(); - var thereIsNoActivePane = previousActiveKey == null; - - var paneIsAlreadyActive = previousActiveKey != null && child.props.eventKey === previousActiveKey; - - return _react.cloneElement(child, { - active: shouldPaneBeSetActive && (thereIsNoActivePane || !this.props.animation), - id: paneId(this.props, child), - 'aria-labelledby': tabId(this.props, child), - key: child.key ? child.key : index, - animation: this.props.animation, - onAnimateOutEnd: paneIsAlreadyActive ? this.handlePaneAnimateOutEnd : null - }); - }, - - renderTab: function renderTab(child, index) { - var _this2 = this; - - if (child.props.title == null) { - return null; - } - - var _child$props = child.props; - var eventKey = _child$props.eventKey; - var title = _child$props.title; - var disabled = _child$props.disabled; - var onKeyDown = _child$props.onKeyDown; - var tabClassName = _child$props.tabClassName; - var _child$props$tabIndex = _child$props.tabIndex; - var tabIndex = _child$props$tabIndex === undefined ? 0 : _child$props$tabIndex; - - var isActive = this.getActiveKey() === eventKey; - - return _react2['default'].createElement( - _NavItem2['default'], - { - linkId: tabId(this.props, child), - ref: function (ref) { - return (_this2._tabs || (_this2._tabs = []))[index] = ref; - }, - 'aria-controls': paneId(this.props, child), - onKeyDown: _utilsCreateChainedFunction2['default'](this.handleKeyDown, onKeyDown), - eventKey: eventKey, - tabIndex: isActive ? tabIndex : -1, - disabled: disabled, - className: tabClassName }, - title - ); - }, - - getColProps: function getColProps(_ref) { - var tabWidth = _ref.tabWidth; - var paneWidth = _ref.paneWidth; - - var tabsColProps = undefined; - if (tabWidth instanceof Object) { - tabsColProps = tabWidth; - } else { - tabsColProps = { xs: tabWidth }; - } - - var panesColProps = undefined; - if (paneWidth == null) { - panesColProps = {}; - _Object$keys(tabsColProps).forEach(function (size) { - panesColProps[size] = _styleMaps2['default'].GRID_COLUMNS - tabsColProps[size]; - }); - } else if (paneWidth instanceof Object) { - panesColProps = paneWidth; - } else { - panesColProps = { xs: paneWidth }; - } - - return { tabsColProps: tabsColProps, panesColProps: panesColProps }; - }, - - shouldComponentUpdate: function shouldComponentUpdate() { - // Defer any updates to this component during the `onSelect` handler. - return !this._isChanging; - }, - - handleSelect: function handleSelect(selectedKey) { - if (this.props.onSelect) { - this._isChanging = true; - this.props.onSelect(selectedKey); - this._isChanging = false; - return; - } - - // if there is no external handler, then use embedded one - var previousActiveKey = this.getActiveKey(); - if (selectedKey !== previousActiveKey) { - this.setState({ - activeKey: selectedKey, - previousActiveKey: previousActiveKey - }); - } - }, - - handleKeyDown: function handleKeyDown(event) { - var keys = this._eventKeys(); - var currentKey = this.getActiveKey() || keys[0]; - var next = undefined; - - switch (event.keyCode) { - - case _keycode2['default'].codes.left: - case _keycode2['default'].codes.up: - next = move(this.props.children, currentKey, keys, false); - - if (next && next !== currentKey) { - event.preventDefault(); - this.handleSelect(next); - this._needsRefocus = true; - } - break; - case _keycode2['default'].codes.right: - case _keycode2['default'].codes.down: - next = move(this.props.children, currentKey, keys, true); - - if (next && next !== currentKey) { - event.preventDefault(); - this.handleSelect(next); - this._needsRefocus = true; - } - break; - default: - } - }, - - _eventKeys: function _eventKeys() { - var keys = []; - - _utilsValidComponentChildren2['default'].forEach(this.props.children, function (_ref2) { - var eventKey = _ref2.props.eventKey; - return keys.push(eventKey); - }); - - return keys; - } - }); - - exports['default'] = Tabs; - module.exports = exports['default']; - -/***/ }, -/* 238 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _BootstrapMixin = __webpack_require__(28); - - var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin); - - var _SafeAnchor = __webpack_require__(49); - - var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor); - - var Thumbnail = _react2['default'].createClass({ - displayName: 'Thumbnail', - - mixins: [_BootstrapMixin2['default']], - - propTypes: { - alt: _react2['default'].PropTypes.string, - href: _react2['default'].PropTypes.string, - src: _react2['default'].PropTypes.string - }, - - getDefaultProps: function getDefaultProps() { - return { - bsClass: 'thumbnail' - }; - }, - - render: function render() { - var classes = this.getBsClassSet(); - - if (this.props.href) { - return _react2['default'].createElement( - _SafeAnchor2['default'], - _extends({}, this.props, { href: this.props.href, className: _classnames2['default'](this.props.className, classes) }), - _react2['default'].createElement('img', { src: this.props.src, alt: this.props.alt }) - ); - } - - if (this.props.children) { - return _react2['default'].createElement( - 'div', - _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }), - _react2['default'].createElement('img', { src: this.props.src, alt: this.props.alt }), - _react2['default'].createElement( - 'div', - { className: 'caption' }, - this.props.children - ) - ); - } - - return _react2['default'].createElement( - 'div', - _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }), - _react2['default'].createElement('img', { src: this.props.src, alt: this.props.alt }) - ); - } - }); - - exports['default'] = Thumbnail; - module.exports = exports['default']; - -/***/ }, -/* 239 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _inherits = __webpack_require__(50)['default']; - - var _classCallCheck = __webpack_require__(61)['default']; - - var _extends = __webpack_require__(9)['default']; - - var _objectWithoutProperties = __webpack_require__(26)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _reactPropTypesLibIsRequiredForA11y = __webpack_require__(163); - - var _reactPropTypesLibIsRequiredForA11y2 = _interopRequireDefault(_reactPropTypesLibIsRequiredForA11y); - - var Tooltip = (function (_React$Component) { - _inherits(Tooltip, _React$Component); - - function Tooltip() { - _classCallCheck(this, Tooltip); - - _React$Component.apply(this, arguments); - } - - Tooltip.prototype.render = function render() { - var _props = this.props; - var placement = _props.placement; - var positionLeft = _props.positionLeft; - var positionTop = _props.positionTop; - var arrowOffsetLeft = _props.arrowOffsetLeft; - var arrowOffsetTop = _props.arrowOffsetTop; - var className = _props.className; - var style = _props.style; - var children = _props.children; - - var props = _objectWithoutProperties(_props, ['placement', 'positionLeft', 'positionTop', 'arrowOffsetLeft', 'arrowOffsetTop', 'className', 'style', 'children']); - - return _react2['default'].createElement( - 'div', - _extends({ - role: 'tooltip' - }, props, { - className: _classnames2['default'](className, 'tooltip', placement), - style: _extends({ left: positionLeft, top: positionTop }, style) - }), - _react2['default'].createElement('div', { - className: 'tooltip-arrow', - style: { left: arrowOffsetLeft, top: arrowOffsetTop } - }), - _react2['default'].createElement( - 'div', - { className: 'tooltip-inner' }, - children - ) - ); - }; - - return Tooltip; - })(_react2['default'].Component); - - exports['default'] = Tooltip; - - Tooltip.propTypes = { - /** - * An html id attribute, necessary for accessibility - * @type {string} - * @required - */ - id: _reactPropTypesLibIsRequiredForA11y2['default'](_react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number])), - - /** - * The direction the tooltip is positioned towards - */ - placement: _react2['default'].PropTypes.oneOf(['top', 'right', 'bottom', 'left']), - - /** - * The `left` position value for the tooltip - */ - positionLeft: _react2['default'].PropTypes.number, - /** - * The `top` position value for the tooltip - */ - positionTop: _react2['default'].PropTypes.number, - /** - * The `left` position value for the tooltip arrow - */ - arrowOffsetLeft: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.number, _react2['default'].PropTypes.string]), - /** - * The `top` position value for the tooltip arrow - */ - arrowOffsetTop: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.number, _react2['default'].PropTypes.string]) - }; - - Tooltip.defaultProps = { - placement: 'right' - }; - module.exports = exports['default']; - -/***/ }, -/* 240 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _extends = __webpack_require__(9)['default']; - - var _interopRequireDefault = __webpack_require__(1)['default']; - - exports.__esModule = true; - - var _react = __webpack_require__(4); - - var _react2 = _interopRequireDefault(_react); - - var _classnames = __webpack_require__(27); - - var _classnames2 = _interopRequireDefault(_classnames); - - var _BootstrapMixin = __webpack_require__(28); - - var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin); - - var Well = _react2['default'].createClass({ - displayName: 'Well', - - mixins: [_BootstrapMixin2['default']], - - getDefaultProps: function getDefaultProps() { - return { - bsClass: 'well' - }; - }, - - render: function render() { - var classes = this.getBsClassSet(); - - return _react2['default'].createElement( - 'div', - _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }), - this.props.children - ); - } - }); - - exports['default'] = Well; - module.exports = exports['default']; - -/***/ } -/******/ ]) -}); -;
\ No newline at end of file diff --git a/web/static/js/react-bootstrap-0.27.1.min.js b/web/static/js/react-bootstrap-0.27.1.min.js deleted file mode 100644 index 6e198ee9a..000000000 --- a/web/static/js/react-bootstrap-0.27.1.min.js +++ /dev/null @@ -1,14 +0,0 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],t):"object"==typeof exports?exports.ReactBootstrap=t(require("react"),require("react-dom")):e.ReactBootstrap=t(e.React,e.ReactDOM)}(this,function(e,t){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";var r=n(2)["default"],o=n(76)["default"];t.__esModule=!0;var s=n(35),a=r(s),i=n(11),l=r(i),u=n(9),p=r(u),d=n(108),f=r(d);t.Accordion=f["default"];var c=n(109),h=r(c);t.Affix=h["default"];var m=n(54),v=r(m);t.AffixMixin=v["default"];var y=n(110),g=r(y);t.Alert=g["default"];var b=n(111),T=r(b);t.Badge=T["default"];var P=n(7),x=r(P);t.BootstrapMixin=x["default"];var E=n(112),C=r(E);t.Breadcrumb=C["default"];var _=n(113),N=r(_);t.BreadcrumbItem=N["default"];var O=n(24),w=r(O);t.Button=w["default"];var S=n(55),k=r(S);t.ButtonGroup=k["default"];var M=n(56),D=r(M);t.ButtonInput=D["default"];var I=n(114),A=r(I);t.ButtonToolbar=A["default"];var R=n(115),j=r(R);t.Carousel=j["default"];var K=n(116),L=r(K);t.CarouselItem=L["default"];var B=n(57),F=r(B);t.Col=F["default"];var H=n(117),W=r(H);t.CollapsibleNav=W["default"];var U=n(26),V=r(U);t.Dropdown=V["default"];var q=n(118),z=r(q);t.DropdownButton=z["default"];var G=n(33),Y=r(G);t.Glyphicon=Y["default"];var $=n(61),X=r($);t.Grid=X["default"];var Z=n(121),J=r(Z);t.Image=J["default"];var Q=n(122),ee=r(Q);t.Input=ee["default"];var te=n(62),ne=r(te);t.Interpolate=ne["default"];var re=n(123),oe=r(re);t.Jumbotron=oe["default"];var se=n(124),ae=r(se);t.Label=ae["default"];var ie=n(125),le=r(ie);t.ListGroup=le["default"];var ue=n(63),pe=r(ue);t.ListGroupItem=pe["default"];var de=n(126),fe=r(de);t.MenuItem=fe["default"];var ce=n(127),he=r(ce);t.Modal=he["default"];var me=n(64),ve=r(me);t.ModalBody=ve["default"];var ye=n(65),ge=r(ye);t.ModalFooter=ge["default"];var be=n(66),Te=r(be);t.ModalHeader=Te["default"];var Pe=n(67),xe=r(Pe);t.ModalTitle=xe["default"];var Ee=n(68),Ce=r(Ee);t.Nav=Ce["default"];var _e=n(130),Ne=r(_e);t.Navbar=Ne["default"];var Oe=n(69),we=r(Oe);t.NavBrand=we["default"];var Se=n(129),ke=r(Se);t.NavDropdown=ke["default"];var Me=n(70),De=r(Me);t.NavItem=De["default"];var Ie=n(71),Ae=r(Ie);t.Overlay=Ae["default"];var Re=n(131),je=r(Re);t.OverlayTrigger=je["default"];var Ke=n(132),Le=r(Ke);t.PageHeader=Le["default"];var Be=n(133),Fe=r(Be);t.PageItem=Fe["default"];var He=n(134),We=r(He);t.Pager=We["default"];var Ue=n(135),Ve=r(Ue);t.Pagination=Ve["default"];var qe=n(137),ze=r(qe);t.Panel=ze["default"];var Ge=n(72),Ye=r(Ge);t.PanelGroup=Ye["default"];var $e=n(138),Xe=r($e);t.Popover=Xe["default"];var Ze=n(139),Je=r(Ze);t.ProgressBar=Je["default"];var Qe=n(140),et=r(Qe);t.ResponsiveEmbed=et["default"];var tt=n(141),nt=r(tt);t.Row=nt["default"];var rt=n(14),ot=r(rt);t.SafeAnchor=ot["default"];var st=n(142),at=r(st);t.SplitButton=at["default"];var it=r(st);t.SplitButton=it["default"];var lt=n(27),ut=r(lt);t.styleMaps=ut["default"];var pt=n(144),dt=r(pt);t.SubNav=dt["default"];var ft=n(145),ct=r(ft);t.Tab=ct["default"];var ht=n(146),mt=r(ht);t.Table=mt["default"];var vt=n(147),yt=r(vt);t.Tabs=yt["default"];var gt=n(148),bt=r(gt);t.Thumbnail=bt["default"];var Tt=n(149),Pt=r(Tt);t.Tooltip=Pt["default"];var xt=n(150),Et=r(xt);t.Well=Et["default"];var Ct=n(25),_t=r(Ct);t.Collapse=_t["default"];var Nt=n(32),Ot=r(Nt);t.Fade=Ot["default"];var wt=n(59),St=o(wt);t.FormControls=St;var kt={childrenValueInputValidation:a["default"],createChainedFunction:l["default"],ValidComponentChildren:p["default"]};t.utils=kt},function(t,n){t.exports=e},function(e,t){"use strict";t["default"]=function(e){return e&&e.__esModule?e:{"default":e}},t.__esModule=!0},function(e,t,n){"use strict";var r=n(155)["default"];t["default"]=r||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},t.__esModule=!0},function(e,t,n){var r;/*! - Copyright (c) 2015 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames - */ -!function(){"use strict";function o(){for(var e="",t=0;t<arguments.length;t++){var n=arguments[t];if(n){var r=typeof n;if("string"===r||"number"===r)e+=" "+n;else if(Array.isArray(n))e+=" "+o.apply(null,n);else if("object"===r)for(var a in n)s.call(n,a)&&n[a]&&(e+=" "+a)}}return e.substr(1)}var s={}.hasOwnProperty;"undefined"!=typeof e&&e.exports?e.exports=o:(r=function(){return o}.call(t,n,t,e),!(void 0!==r&&(e.exports=r)))}()},function(e,t){"use strict";t["default"]=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},t.__esModule=!0},function(e,t,n){"use strict";var r=n(156)["default"],o=n(158)["default"];t["default"]=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=r(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(o?o(e,t):e.__proto__=t)},t.__esModule=!0},function(e,t,n){"use strict";var r=n(2)["default"];t.__esModule=!0;var o=n(1),s=r(o),a=n(27),i=r(a),l=n(236),u=r(l),p={propTypes:{bsClass:u["default"](i["default"].CLASSES),bsStyle:s["default"].PropTypes.oneOf(i["default"].STYLES),bsSize:u["default"](i["default"].SIZES)},getBsClassSet:function(){var e={},t=this.props.bsClass&&i["default"].CLASSES[this.props.bsClass];if(t){e[t]=!0;var n=t+"-",r=this.props.bsSize&&i["default"].SIZES[this.props.bsSize];r&&(e[n+r]=!0),this.props.bsStyle&&(i["default"].STYLES.indexOf(this.props.bsStyle)>=0?e[n+this.props.bsStyle]=!0:e[this.props.bsStyle]=!0)}return e},prefixClass:function(e){return i["default"].CLASSES[this.props.bsClass]+"-"+e}};t["default"]=p,e.exports=t["default"]},function(e,t){"use strict";t["default"]=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},t.__esModule=!0},function(e,t,n){"use strict";function r(e,t,n){var r=0;return d["default"].Children.map(e,function(e){if(d["default"].isValidElement(e)){var o=r;return r++,t.call(n,e,o)}return e})}function o(e,t,n){var r=0;return d["default"].Children.forEach(e,function(e){d["default"].isValidElement(e)&&(t.call(n,e,r),r++)})}function s(e){var t=0;return d["default"].Children.forEach(e,function(e){d["default"].isValidElement(e)&&t++}),t}function a(e){var t=!1;return d["default"].Children.forEach(e,function(e){!t&&d["default"].isValidElement(e)&&(t=!0)}),t}function i(e,t){var n=void 0;return o(e,function(r,o){!n&&t(r,o,e)&&(n=r)}),n}function l(e,t,n){var r=0,o=[];return d["default"].Children.forEach(e,function(e){d["default"].isValidElement(e)&&(t.call(n,e,r)&&o.push(e),r++)}),o}var u=n(2)["default"];t.__esModule=!0;var p=n(1),d=u(p);t["default"]={map:r,forEach:o,numberOf:s,find:i,findValidComponents:l,hasValidComponent:a},e.exports=t["default"]},function(e,n){e.exports=t},function(e,t){"use strict";function n(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return t.filter(function(e){return null!=e}).reduce(function(e,t){if("function"!=typeof t)throw new Error("Invalid Argument Type, must only provide functions, undefined, or null.");return null===e?t:function(){for(var n=arguments.length,r=Array(n),o=0;n>o;o++)r[o]=arguments[o];e.apply(this,r),t.apply(this,r)}},null)}t.__esModule=!0,t["default"]=n,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,n){var r=i.errMsg(e,t,n,". Expected an Element `type`");if("function"!=typeof e[t]){if(a["default"].isValidElement(e[t]))return new Error(r+", not an actual Element");if("string"!=typeof e[t])return new Error(r+" such as a tag name or return value of React.createClass(...)")}}t.__esModule=!0;var s=n(1),a=r(s),i=n(51);t["default"]=i.createChainableTypeChecker(o),e.exports=t["default"]},function(e,t,n){function r(e){if(a.unindexedChars&&s(e)){for(var t=-1,n=e.length,r=Object(e);++t<n;)r[t]=e.charAt(t);return r}return o(e)?e:Object(e)}var o=n(16),s=n(46),a=n(49);e.exports=r},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(3)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(1),l=a(i),u=n(11),p=a(u),d=function(e){function t(n){o(this,t),e.call(this,n),this.handleClick=this.handleClick.bind(this)}return r(t,e),t.prototype.handleClick=function(e){void 0===this.props.href&&e.preventDefault()},t.prototype.render=function(){return l["default"].createElement("a",s({role:this.props.href?void 0:"button"},this.props,{onClick:p["default"](this.props.onClick,this.handleClick),href:this.props.href||""}))},t}(l["default"].Component);t["default"]=d,d.propTypes={href:l["default"].PropTypes.string,onClick:l["default"].PropTypes.func},e.exports=t["default"]},function(e,t,n){var r=n(30),o=n(21),s=n(17),a="[object Array]",i=Object.prototype,l=i.toString,u=r(Array,"isArray"),p=u||function(e){return s(e)&&o(e.length)&&l.call(e)==a};e.exports=p},function(e,t){function n(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}e.exports=n},function(e,t){function n(e){return!!e&&"object"==typeof e}e.exports=n},function(e,t){var n=e.exports={version:"1.2.1"};"number"==typeof __e&&(__e=n)},function(e,t){"use strict";function n(e){return e&&e.ownerDocument||document}t.__esModule=!0,t["default"]=n,e.exports=t["default"]},function(e,t){"use strict";e.exports=!("undefined"==typeof window||!window.document||!window.document.createElement)},function(e,t){function n(e){return"number"==typeof e&&e>-1&&e%1==0&&r>=e}var r=9007199254740991;e.exports=n},function(e,t,n){var r,o,s;!function(n,a){o=[t],r=a,s="function"==typeof r?r.apply(t,o):r,!(void 0!==s&&(e.exports=s))}(this,function(e){var t=e;t.interopRequireDefault=function(e){return e&&e.__esModule?e:{"default":e}},t._extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}})},function(e,t,n){"use strict";var r=function(){};e.exports=r},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(7),p=o(u),d=n(12),f=o(d),c=n(56),h=o(c),m=a["default"].createClass({displayName:"Button",mixins:[p["default"]],propTypes:{active:a["default"].PropTypes.bool,disabled:a["default"].PropTypes.bool,block:a["default"].PropTypes.bool,navItem:a["default"].PropTypes.bool,navDropdown:a["default"].PropTypes.bool,componentClass:f["default"],href:a["default"].PropTypes.string,target:a["default"].PropTypes.string,type:a["default"].PropTypes.oneOf(h["default"].types)},getDefaultProps:function(){return{active:!1,block:!1,bsClass:"button",bsStyle:"default",disabled:!1,navItem:!1,navDropdown:!1}},render:function(){var e=this.props.navDropdown?{}:this.getBsClassSet(),t=void 0;return e=r({active:this.props.active,"btn-block":this.props.block},e),this.props.navItem?this.renderNavItem(e):(t=this.props.href||this.props.target||this.props.navDropdown?"renderAnchor":"renderButton",this[t](e))},renderAnchor:function(e){var t=this.props.componentClass||"a",n=this.props.href||"#";return e.disabled=this.props.disabled,a["default"].createElement(t,r({},this.props,{href:n,className:l["default"](this.props.className,e),role:"button"}),this.props.children)},renderButton:function(e){var t=this.props.componentClass||"button";return a["default"].createElement(t,r({},this.props,{type:this.props.type||"button",className:l["default"](this.props.className,e)}),this.props.children)},renderNavItem:function(e){var t={active:this.props.active};return a["default"].createElement("li",{className:l["default"](t)},this.renderAnchor(e))}});t["default"]=m,e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t){var n=t["offset"+g(e)],r=T[e];return n+parseInt(u["default"](t,r[0]),10)+parseInt(u["default"](t,r[1]),10)}var o=n(6)["default"],s=n(5)["default"],a=n(3)["default"],i=n(2)["default"];t.__esModule=!0;var l=n(41),u=i(l),p=n(1),d=i(p),f=n(103),c=i(f),h=n(52),m=i(h),v=n(11),y=i(v),g=function(e){return e[0].toUpperCase()+e.substr(1)},b=function(e){return e.offsetHeight},T={height:["marginTop","marginBottom"],width:["marginLeft","marginRight"]},P=function(e){function t(n,r){s(this,t),e.call(this,n,r),this.onEnterListener=this.handleEnter.bind(this),this.onEnteringListener=this.handleEntering.bind(this),this.onEnteredListener=this.handleEntered.bind(this),this.onExitListener=this.handleExit.bind(this),this.onExitingListener=this.handleExiting.bind(this)}return o(t,e),t.prototype.render=function(){var e=y["default"](this.onEnterListener,this.props.onEnter),t=y["default"](this.onEnteringListener,this.props.onEntering),n=y["default"](this.onEnteredListener,this.props.onEntered),r=y["default"](this.onExitListener,this.props.onExit),o=y["default"](this.onExitingListener,this.props.onExiting);return d["default"].createElement(c["default"],a({ref:"transition"},this.props,{"aria-expanded":this.props.role?this.props["in"]:null,className:"width"===this._dimension()?"width":"",exitedClassName:"collapse",exitingClassName:"collapsing",enteredClassName:"collapse in",enteringClassName:"collapsing",onEnter:e,onEntering:t,onEntered:n,onExit:r,onExiting:o,onExited:this.props.onExited}),this.props.children)},t.prototype.handleEnter=function(e){var t=this._dimension();e.style[t]="0"},t.prototype.handleEntering=function(e){var t=this._dimension();e.style[t]=this._getScrollDimensionValue(e,t)},t.prototype.handleEntered=function(e){var t=this._dimension();e.style[t]=null},t.prototype.handleExit=function(e){var t=this._dimension();e.style[t]=this.props.getDimensionValue(t,e)+"px"},t.prototype.handleExiting=function(e){var t=this._dimension();b(e),e.style[t]="0"},t.prototype._dimension=function(){return"function"==typeof this.props.dimension?this.props.dimension():this.props.dimension},t.prototype._getTransitionInstance=function(){return this.refs.transition},t.prototype._getScrollDimensionValue=function(e,t){return e["scroll"+g(t)]+"px"},t}(d["default"].Component);P.propTypes={"in":d["default"].PropTypes.bool,unmountOnExit:d["default"].PropTypes.bool,transitionAppear:d["default"].PropTypes.bool,timeout:d["default"].PropTypes.number,duration:m["default"](d["default"].PropTypes.number,"Use `timeout`."),onEnter:d["default"].PropTypes.func,onEntering:d["default"].PropTypes.func,onEntered:d["default"].PropTypes.func,onExit:d["default"].PropTypes.func,onExiting:d["default"].PropTypes.func,onExited:d["default"].PropTypes.func,dimension:d["default"].PropTypes.oneOfType([d["default"].PropTypes.oneOf(["height","width"]),d["default"].PropTypes.func]),getDimensionValue:d["default"].PropTypes.func,role:d["default"].PropTypes.string},P.defaultProps={"in":!1,timeout:300,unmountOnExit:!1,transitionAppear:!1,dimension:"height",getDimensionValue:r},t["default"]=P,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(3)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(4),l=a(i),u=n(80),p=a(u),d=n(29),f=a(d),c=n(42),h=a(c),m=n(192),v=a(m),y=n(99),g=a(y),b=n(1),T=a(b),P=n(10),x=a(P),E=n(50),C=a(E),_=n(12),N=a(_),O=n(53),w=a(O),S=n(238),k=a(S),M=n(55),D=a(M),I=n(119),A=a(I),R=n(58),j=a(R),K=n(11),L=a(K),B=n(151),F=a(B),H=n(9),W=a(H),U="toggle-btn",V=j["default"].defaultProps.bsRole,q=A["default"].defaultProps.bsRole,z=function(e){function t(n){o(this,t),e.call(this,n),this.Toggle=j["default"],this.toggleOpen=this.toggleOpen.bind(this),this.handleClick=this.handleClick.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleClose=this.handleClose.bind(this),this.extractChildren=this.extractChildren.bind(this),this.refineMenu=this.refineMenu.bind(this),this.refineToggle=this.refineToggle.bind(this),this.childExtractors=[{key:"toggle",matches:function(e){return e.props.bsRole===V},refine:this.refineToggle},{key:"menu",exclusive:!0,matches:function(e){return e.props.bsRole===q},refine:this.refineMenu}],this.state={},this.lastOpenEventType=null}return r(t,e),t.prototype.componentDidMount=function(){this.focusNextOnOpen()},t.prototype.componentWillUpdate=function(e){!e.open&&this.props.open&&(this._focusInDropdown=f["default"](x["default"].findDOMNode(this.refs.menu),p["default"](document)))},t.prototype.componentDidUpdate=function(e){this.props.open&&!e.open&&this.focusNextOnOpen(),!this.props.open&&e.open&&this._focusInDropdown&&(this._focusInDropdown=!1,this.focus())},t.prototype.render=function(){var e=this.extractChildren(),t=this.props.componentClass,n=g["default"](this.props,["id","role"]),r={open:this.props.open,disabled:this.props.disabled,dropdown:!this.props.dropup,dropup:this.props.dropup};return T["default"].createElement(t,s({},n,{tabIndex:"-1",className:l["default"](this.props.className,r)}),e)},t.prototype.toggleOpen=function(){var e=arguments.length<=0||void 0===arguments[0]?null:arguments[0],t=!this.props.open;t&&(this.lastOpenEventType=e),this.props.onToggle&&this.props.onToggle(t)},t.prototype.handleClick=function(){this.props.disabled||this.toggleOpen("click")},t.prototype.handleKeyDown=function(e){if(!this.props.disabled)switch(e.keyCode){case h["default"].codes.down:this.props.open?this.refs.menu.focusNext&&this.refs.menu.focusNext():this.toggleOpen("keydown"),e.preventDefault();break;case h["default"].codes.esc:case h["default"].codes.tab:this.handleClose(e)}},t.prototype.handleClose=function(){this.props.open&&this.toggleOpen()},t.prototype.focusNextOnOpen=function(){var e=this.refs.menu;e.focusNext&&("keydown"===this.lastOpenEventType||"menuitem"===this.props.role)&&e.focusNext()},t.prototype.focus=function(){var e=x["default"].findDOMNode(this.refs[U]);e&&e.focus&&e.focus()},t.prototype.extractChildren=function(){var e=this,t=!!this.props.open,n={};return W["default"].map(this.props.children,function(r){var o=v["default"](e.childExtractors,function(e){return e.matches(r)});if(o){if(n[o.key])return!1;n[o.key]=o.exclusive,r=o.refine(r,t)}return r})},t.prototype.refineMenu=function(e,t){var n={ref:"menu",open:t,labelledBy:this.props.id,pullRight:this.props.pullRight};return n.onClose=L["default"](e.props.onClose,this.props.onClose,this.handleClose),n.onSelect=L["default"](e.props.onSelect,this.props.onSelect,this.handleClose),b.cloneElement(e,n,e.props.children)},t.prototype.refineToggle=function(e,t){var n={open:t,id:this.props.id,ref:U,role:this.props.role};return n.onClick=L["default"](e.props.onClick,this.handleClick),n.onKeyDown=L["default"](e.props.onKeyDown,this.handleKeyDown),b.cloneElement(e,n,e.props.children)},t}(T["default"].Component);z.Toggle=j["default"],z.TOGGLE_REF=U,z.TOGGLE_ROLE=V,z.MENU_ROLE=q,z.defaultProps={componentClass:D["default"],alwaysFocusNextOnOpen:!1},z.propTypes={dropup:T["default"].PropTypes.bool,id:w["default"](T["default"].PropTypes.oneOfType([T["default"].PropTypes.string,T["default"].PropTypes.number])),componentClass:N["default"],children:C["default"](F["default"].requiredRoles(V,q),F["default"].exclusiveRoles(q)),disabled:T["default"].PropTypes.bool,pullRight:T["default"].PropTypes.bool,open:T["default"].PropTypes.bool,onClose:T["default"].PropTypes.func,onToggle:T["default"].PropTypes.func,onSelect:T["default"].PropTypes.func,role:T["default"].PropTypes.string},z=k["default"](z,{open:"onToggle"}),z.Toggle=j["default"],z.Menu=A["default"],t["default"]=z,e.exports=t["default"]},function(e,t){"use strict";t.__esModule=!0;var n={CLASSES:{alert:"alert",button:"btn","button-group":"btn-group","button-toolbar":"btn-toolbar",column:"col","input-group":"input-group",form:"form",glyphicon:"glyphicon",label:"label",thumbnail:"thumbnail","list-group-item":"list-group-item",panel:"panel","panel-group":"panel-group",pagination:"pagination","progress-bar":"progress-bar",nav:"nav",navbar:"navbar",modal:"modal",row:"row",well:"well"},STYLES:["default","primary","success","info","warning","danger","link","inline","tabs","pills"],addStyle:function(e){n.STYLES.push(e)},SIZES:{large:"lg",medium:"md",small:"sm",xsmall:"xs",lg:"lg",md:"md",sm:"sm",xs:"xs"},GRID_COLUMNS:12};t["default"]=n,e.exports=t["default"]},function(e,t,n){e.exports={"default":n(162),__esModule:!0}},function(e,t,n){"use strict";var r=n(20),o=function(){var e=r&&document.documentElement;return e&&e.contains?function(e,t){return e.contains(t)}:e&&e.compareDocumentPosition?function(e,t){return e===t||!!(16&e.compareDocumentPosition(t))}:function(e,t){if(t)do if(t===e)return!0;while(t=t.parentNode);return!1}}();e.exports=o},function(e,t,n){function r(e,t){var n=null==e?void 0:e[t];return o(n)?n:void 0}var o=n(225);e.exports=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(10),s=r(o),a=n(19),i=r(a);t["default"]=function(e){return i["default"](s["default"].findDOMNode(e))},e.exports=t["default"]},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(3)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(1),l=a(i),u=n(103),p=a(u),d=n(52),f=a(d),c=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){var e=this.props.timeout||this.props.duration;return l["default"].createElement(p["default"],s({},this.props,{timeout:e,className:"fade",enteredClassName:"in",enteringClassName:"in"}),this.props.children)},t}(l["default"].Component);c.propTypes={"in":l["default"].PropTypes.bool,unmountOnExit:l["default"].PropTypes.bool,transitionAppear:l["default"].PropTypes.bool,timeout:l["default"].PropTypes.number,duration:f["default"](l["default"].PropTypes.number,"Use `timeout`."),onEnter:l["default"].PropTypes.func,onEntering:l["default"].PropTypes.func,onEntered:l["default"].PropTypes.func,onExit:l["default"].PropTypes.func,onExiting:l["default"].PropTypes.func,onExited:l["default"].PropTypes.func},c.defaultProps={"in":!1,timeout:300,unmountOnExit:!1,transitionAppear:!1},t["default"]=c,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=a["default"].createClass({displayName:"Glyphicon",propTypes:{bsClass:a["default"].PropTypes.string,glyph:a["default"].PropTypes.string.isRequired,formControlFeedback:a["default"].PropTypes.bool},getDefaultProps:function(){return{bsClass:"glyphicon",formControlFeedback:!1}},render:function(){var e,t=l["default"](this.props.className,(e={},e[this.props.bsClass]=!0,e["glyphicon-"+this.props.glyph]=!0,e["form-control-feedback"]=this.props.formControlFeedback,e));return a["default"].createElement("span",r({},this.props,{className:t}),this.props.children)}});t["default"]=u,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(3)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(4),l=a(i),u=n(1),p=a(u),d=n(60),f=a(d),c=n(33),h=a(c),m=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.getInputDOMNode=function(){return this.refs.input},t.prototype.getValue=function(){if("static"===this.props.type)return this.props.value;if(this.props.type)return"select"===this.props.type&&this.props.multiple?this.getSelectedOptions():this.getInputDOMNode().value;throw new Error("Cannot use getValue without specifying input type.")},t.prototype.getChecked=function(){return this.getInputDOMNode().checked},t.prototype.getSelectedOptions=function(){var e=[];return Array.prototype.forEach.call(this.getInputDOMNode().getElementsByTagName("option"),function(t){if(t.selected){var n=t.getAttribute("value")||t.innerHtml;e.push(n)}}),e},t.prototype.isCheckboxOrRadio=function(){return"checkbox"===this.props.type||"radio"===this.props.type},t.prototype.isFile=function(){return"file"===this.props.type},t.prototype.renderInputGroup=function(e){var t=this.props.addonBefore?p["default"].createElement("span",{className:"input-group-addon",key:"addonBefore"},this.props.addonBefore):null,n=this.props.addonAfter?p["default"].createElement("span",{className:"input-group-addon",key:"addonAfter"},this.props.addonAfter):null,r=this.props.buttonBefore?p["default"].createElement("span",{className:"input-group-btn"},this.props.buttonBefore):null,o=this.props.buttonAfter?p["default"].createElement("span",{className:"input-group-btn"},this.props.buttonAfter):null,s=void 0;switch(this.props.bsSize){case"small":s="input-group-sm";break;case"large":s="input-group-lg"}return t||n||r||o?p["default"].createElement("div",{className:l["default"](s,"input-group"),key:"input-group"},t,r,e,n,o):e},t.prototype.renderIcon=function(){if(!this.props.hasFeedback)return null;if(this.props.feedbackIcon)return p["default"].cloneElement(this.props.feedbackIcon,{formControlFeedback:!0});switch(this.props.bsStyle){case"success":return p["default"].createElement(h["default"],{formControlFeedback:!0,glyph:"ok",key:"icon"});case"warning":return p["default"].createElement(h["default"],{formControlFeedback:!0,glyph:"warning-sign",key:"icon"});case"error":return p["default"].createElement(h["default"],{formControlFeedback:!0,glyph:"remove",key:"icon"});default:return p["default"].createElement("span",{className:"form-control-feedback",key:"icon"})}},t.prototype.renderHelp=function(){return this.props.help?p["default"].createElement("span",{className:"help-block",key:"help"},this.props.help):null},t.prototype.renderCheckboxAndRadioWrapper=function(e){var t={checkbox:"checkbox"===this.props.type,radio:"radio"===this.props.type};return p["default"].createElement("div",{className:l["default"](t),key:"checkboxRadioWrapper"},e)},t.prototype.renderWrapper=function(e){return this.props.wrapperClassName?p["default"].createElement("div",{className:this.props.wrapperClassName,key:"wrapper"},e):e},t.prototype.renderLabel=function(e){var t={"control-label":!this.isCheckboxOrRadio()};return t[this.props.labelClassName]=this.props.labelClassName,this.props.label?p["default"].createElement("label",{htmlFor:this.props.id,className:l["default"](t),key:"label"},e,this.props.label):e},t.prototype.renderInput=function(){if(!this.props.type)return this.props.children;switch(this.props.type){case"select":return p["default"].createElement("select",s({},this.props,{className:l["default"](this.props.className,"form-control"),ref:"input",key:"input"}),this.props.children);case"textarea":return p["default"].createElement("textarea",s({},this.props,{className:l["default"](this.props.className,"form-control"),ref:"input",key:"input"}));case"static":return p["default"].createElement("p",s({},this.props,{className:l["default"](this.props.className,"form-control-static"),ref:"input",key:"input"}),this.props.value);default:var e=this.isCheckboxOrRadio()||this.isFile()?"":"form-control";return p["default"].createElement("input",s({},this.props,{className:l["default"](this.props.className,e),ref:"input",key:"input"}))}},t.prototype.renderFormGroup=function(e){return p["default"].createElement(f["default"],this.props,e)},t.prototype.renderChildren=function(){return this.isCheckboxOrRadio()?this.renderWrapper([this.renderCheckboxAndRadioWrapper(this.renderLabel(this.renderInput())),this.renderHelp()]):[this.renderLabel(),this.renderWrapper([this.renderInputGroup(this.renderInput()),this.renderIcon(),this.renderHelp()])]},t.prototype.render=function(){var e=this.renderChildren();return this.renderFormGroup(e)},t}(p["default"].Component);m.propTypes={type:p["default"].PropTypes.string,label:p["default"].PropTypes.node,help:p["default"].PropTypes.node,addonBefore:p["default"].PropTypes.node,addonAfter:p["default"].PropTypes.node,buttonBefore:p["default"].PropTypes.node,buttonAfter:p["default"].PropTypes.node,bsSize:p["default"].PropTypes.oneOf(["small","medium","large"]),bsStyle:p["default"].PropTypes.oneOf(["success","warning","error"]),hasFeedback:p["default"].PropTypes.bool,feedbackIcon:p["default"].PropTypes.node,id:p["default"].PropTypes.oneOfType([p["default"].PropTypes.string,p["default"].PropTypes.number]),groupClassName:p["default"].PropTypes.string,wrapperClassName:p["default"].PropTypes.string,labelClassName:p["default"].PropTypes.string,multiple:p["default"].PropTypes.bool,disabled:p["default"].PropTypes.bool,value:p["default"].PropTypes.any},m.defaultProps={disabled:!1,hasFeedback:!1,multiple:!1},t["default"]=m,e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t,n){var r=l["default"]("children","value")(e,t,n);return r||(r=a["default"].PropTypes.node(e,t,n)),r}var o=n(2)["default"];t.__esModule=!0,t["default"]=r;var s=n(1),a=o(s),i=n(107),l=o(i);e.exports=t["default"]},function(e,t,n){var r=n(171),o=n(18),s="prototype",a=function(e,t){return function(){return e.apply(t,arguments)}},i=function(e,t,n){var l,u,p,d,f=e&i.G,c=e&i.P,h=f?r:e&i.S?r[t]:(r[t]||{})[s],m=f?o:o[t]||(o[t]={});f&&(n=t);for(l in n)u=!(e&i.F)&&h&&l in h,u&&l in m||(p=u?h[l]:n[l],f&&"function"!=typeof h[l]?d=n[l]:e&i.B&&u?d=a(p,r):e&i.W&&h[l]==p?!function(e){d=function(t){return this instanceof e?new e(t):e(t)},d[s]=e[s]}(p):d=c&&"function"==typeof p?a(Function.call,p):p,m[l]=d,c&&((m[s]||(m[s]={}))[l]=p))};i.F=1,i.G=2,i.S=4,i.P=8,i.B=16,i.W=32,e.exports=i},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t){var n=Object;e.exports={create:n.create,getProto:n.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:n.getOwnPropertyDescriptor,setDesc:n.defineProperty,setDescs:n.defineProperties,getKeys:n.keys,getNames:n.getOwnPropertyNames,getSymbols:n.getOwnPropertySymbols,each:[].forEach}},function(e,t){"use strict";e.exports=function(e){return e===e.window?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}},function(e,t,n){"use strict";var r=n(29),o=n(39),s=n(19);e.exports=function(e){var t=s(e),n=o(t),a=t&&t.documentElement,i={top:0,left:0,height:0,width:0};if(t)return r(a,e)?(void 0!==e.getBoundingClientRect&&(i=e.getBoundingClientRect()),(i.width||i.height)&&(i={top:i.top+(n.pageYOffset||a.scrollTop)-(a.clientTop||0),left:i.left+(n.pageXOffset||a.scrollLeft)-(a.clientLeft||0),width:(null==i.width?e.offsetWidth:i.width)||0,height:(null==i.height?e.offsetHeight:i.height)||0}),i):i}},function(e,t,n){"use strict";var r=n(83),o=n(189),s=n(184),a=n(185),i=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var l="",u=t;if("string"==typeof t){if(void 0===n)return e.style[r(t)]||s(e).getPropertyValue(o(t));(u={})[t]=n}for(var p in u)i.call(u,p)&&(u[p]||0===u[p]?l+=o(p)+":"+u[p]+";":a(e,o(p)));e.style.cssText+=";"+l}},function(e,t){t=e.exports=function(e){if(e&&"object"==typeof e){var t=e.which||e.keyCode||e.charCode;t&&(e=t)}if("number"==typeof e)return s[e];var o=String(e),a=n[o.toLowerCase()];if(a)return a;var a=r[o.toLowerCase()];return a?a:1===o.length?o.charCodeAt(0):void 0};var n=t.code=t.codes={backspace:8,tab:9,enter:13,shift:16,ctrl:17,alt:18,"pause/break":19,"caps lock":20,esc:27,space:32,"page up":33,"page down":34,end:35,home:36,left:37,up:38,right:39,down:40,insert:45,"delete":46,command:91,"right click":93,"numpad *":106,"numpad +":107,"numpad -":109,"numpad .":110,"numpad /":111,"num lock":144,"scroll lock":145,"my computer":182,"my calculator":183,";":186,"=":187,",":188,"-":189,".":190,"/":191,"`":192,"[":219,"\\":220,"]":221,"'":222},r=t.aliases={windows:91,"⇧":16,"⌥":18,"⌃":17,"⌘":91,ctl:17,control:17,option:18,pause:19,"break":19,caps:20,"return":13,escape:27,spc:32,pgup:33,pgdn:33,ins:45,del:46,cmd:91};/*! - * Programatically add the following - */ -for(o=97;123>o;o++)n[String.fromCharCode(o)]=o-32;for(var o=48;58>o;o++)n[o-48]=o;for(o=1;13>o;o++)n["f"+o]=o+111;for(o=0;10>o;o++)n["numpad "+o]=o+96;var s=t.names=t.title={};for(o in n)s[n[o]]=o;for(var a in r)n[a]=r[a]},function(e,t,n){function r(e,t,n){if("function"!=typeof e)return o;if(void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,r,o){return e.call(t,n,r,o)};case 4:return function(n,r,o,s){return e.call(t,n,r,o,s)};case 5:return function(n,r,o,s,a){return e.call(t,n,r,o,s,a)}}return function(){return e.apply(t,arguments)}}var o=n(100);e.exports=r},function(e,t,n){function r(e){return null!=e&&s(o(e))}var o=n(90),s=n(21);e.exports=r},function(e,t,n){function r(e){return s(e)&&o(e)&&i.call(e,"callee")&&!l.call(e,"callee")}var o=n(44),s=n(17),a=Object.prototype,i=a.hasOwnProperty,l=a.propertyIsEnumerable;e.exports=r},function(e,t,n){function r(e){return"string"==typeof e||o(e)&&i.call(e)==s}var o=n(17),s="[object String]",a=Object.prototype,i=a.toString;e.exports=r},function(e,t,n){var r=n(30),o=n(44),s=n(16),a=n(224),i=n(49),l=r(Object,"keys"),u=l?function(e){var t=null==e?void 0:e.constructor;return"function"==typeof t&&t.prototype===e||("function"==typeof e?i.enumPrototypes:o(e))?a(e):s(e)?l(e):[]}:a;e.exports=u},function(e,t,n){function r(e){if(null==e)return[];p(e)||(e=Object(e));var t=e.length;t=t&&u(t)&&(a(e)||s(e)||d(e))&&t||0;for(var n=e.constructor,r=-1,o=i(n)&&n.prototype||C,c=o===e,h=Array(t),m=t>0,y=f.enumErrorProps&&(e===E||e instanceof Error),g=f.enumPrototypes&&i(e);++r<t;)h[r]=r+"";for(var T in e)g&&"prototype"==T||y&&("message"==T||"name"==T)||m&&l(T,t)||"constructor"==T&&(c||!N.call(e,T))||h.push(T);if(f.nonEnumShadows&&e!==C){var S=e===_?P:e===E?v:O.call(e),k=w[S]||w[b];for(S==b&&(o=C),t=x.length;t--;){T=x[t];var M=k[T];c&&M||(M?!N.call(e,T):e[T]===o[T])||h.push(T)}}return h}var o=n(194),s=n(45),a=n(15),i=n(98),l=n(92),u=n(21),p=n(16),d=n(46),f=n(49),c="[object Array]",h="[object Boolean]",m="[object Date]",v="[object Error]",y="[object Function]",g="[object Number]",b="[object Object]",T="[object RegExp]",P="[object String]",x=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],E=Error.prototype,C=Object.prototype,_=String.prototype,N=C.hasOwnProperty,O=C.toString,w={};w[c]=w[m]=w[g]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},w[h]=w[P]={constructor:!0,toString:!0,valueOf:!0},w[v]=w[y]=w[T]={constructor:!0,toString:!0},w[b]={constructor:!0},o(x,function(e){for(var t in w)if(N.call(w,t)){var n=w[t];n[e]=N.call(n,e)}}),e.exports=r},function(e,t){var n=Array.prototype,r=Error.prototype,o=Object.prototype,s=o.propertyIsEnumerable,a=n.splice,i={};!function(e){var t=function(){this.x=e},n={0:e,length:e},o=[];t.prototype={valueOf:e,y:e};for(var l in new t)o.push(l);i.enumErrorProps=s.call(r,"message")||s.call(r,"name"),i.enumPrototypes=s.call(t,"prototype"),i.nonEnumShadows=!/valueOf/.test(o),i.ownLast="x"!=o[0],i.spliceObjects=(a.call(n,0,1),!n[0]),i.unindexedChars="x"[0]+Object("x")[0]!="xx"}(1,0),e.exports=i},function(e,t){"use strict";function n(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];if(void 0===t)throw new Error("No validations provided");if(t.some(function(e){return"function"!=typeof e}))throw new Error("Invalid arguments, must be functions");if(0===t.length)throw new Error("No validations provided");return function(e,n,r){for(var o=0;o<t.length;o++){var s=t[o](e,n,r);if(void 0!==s&&null!==s)return s}}}t.__esModule=!0,t["default"]=n,e.exports=t["default"]},function(e,t){"use strict";function n(e,t,n,r){return"Invalid prop '"+t+"' of value '"+e[t]+"'"+(" supplied to '"+n+"'"+r)}function r(e){function t(t,n,r,o){return o=o||"<<anonymous>>",null!=n[r]?e(n,r,o):t?new Error("Required prop '"+r+"' was not specified in '"+o+"'."):void 0}var n=t.bind(null,!1);return n.isRequired=t.bind(null,!0),n}t.__esModule=!0,t.errMsg=n,t.createChainableTypeChecker=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){return function(n,r,o){return null!=n[r]&&a["default"](!1,'"'+r+'" property of "'+o+'" has been deprecated.\n'+t),e(n,r,o)}}t.__esModule=!0,t["default"]=o;var s=n(23),a=r(s);e.exports=t["default"]},function(e,t){"use strict";function n(e){return function(t,n,r){return null==t[n]?new Error("The prop '"+n+"' is required to make '"+r+"' accessible for users using assistive technologies such as screen readers"):e(t,n,r)}}t.__esModule=!0,t["default"]=n,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(2)["default"];t.__esModule=!0;var o=n(1),s=r(o),a=n(10),i=r(a),l=n(75),u=r(l),p=n(40),d=r(p),f=n(73),c=r(f),h={propTypes:{offset:s["default"].PropTypes.number,offsetTop:s["default"].PropTypes.number,offsetBottom:s["default"].PropTypes.number},getInitialState:function(){return{affixClass:"affix-top"}},getPinnedOffset:function(e){return this.pinnedOffset?this.pinnedOffset:(e.className=e.className.replace(/affix-top|affix-bottom|affix/,""),e.className+=e.className.length?" affix":"affix",this.pinnedOffset=d["default"](e).top-window.pageYOffset,this.pinnedOffset)},checkPosition:function(){var e=void 0,t=void 0,n=void 0,r=void 0,o=void 0,s=void 0,a=void 0,l=void 0,p=void 0;this.isMounted()&&(e=i["default"].findDOMNode(this),t=u["default"].getDocumentHeight(),n=window.pageYOffset,r=d["default"](e),"top"===this.affixed&&(r.top+=n),o=null!=this.props.offsetTop?this.props.offsetTop:this.props.offset,s=null!=this.props.offsetBottom?this.props.offsetBottom:this.props.offset,(null!=o||null!=s)&&(null==o&&(o=0),null==s&&(s=0),a=null!=this.unpin&&n+this.unpin<=r.top?!1:null!=s&&r.top+e.offsetHeight>=t-s?"bottom":null!=o&&o>=n?"top":!1,this.affixed!==a&&(null!=this.unpin&&(e.style.top=""),l="affix"+(a?"-"+a:""),this.affixed=a,this.unpin="bottom"===a?this.getPinnedOffset(e):null,"bottom"===a&&(e.className=e.className.replace(/affix-top|affix-bottom|affix/,"affix-bottom"),p=t-s-e.offsetHeight-d["default"](e).top),this.setState({affixClass:l,affixPositionTop:p}))))},checkPositionWithEventLoop:function(){setTimeout(this.checkPosition,0)},componentDidMount:function(){this._onWindowScrollListener=c["default"].listen(window,"scroll",this.checkPosition),this._onDocumentClickListener=c["default"].listen(u["default"].ownerDocument(this),"click",this.checkPositionWithEventLoop)},componentWillUnmount:function(){this._onWindowScrollListener&&this._onWindowScrollListener.remove(),this._onDocumentClickListener&&this._onDocumentClickListener.remove()},componentDidUpdate:function(e,t){t.affixClass===this.state.affixClass&&this.checkPositionWithEventLoop()}};t["default"]=h,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(7),p=o(u),d=n(50),f=o(d),c=a["default"].createClass({displayName:"ButtonGroup",mixins:[p["default"]],propTypes:{vertical:a["default"].PropTypes.bool,justified:a["default"].PropTypes.bool,block:f["default"](a["default"].PropTypes.bool,function(e){return e.block&&!e.vertical?new Error("The block property requires the vertical property to be set to have any effect"):void 0})},getDefaultProps:function(){return{block:!1,bsClass:"button-group",justified:!1,vertical:!1}},render:function(){var e=this.getBsClassSet();return e["btn-group"]=!this.props.vertical,e["btn-group-vertical"]=this.props.vertical,e["btn-group-justified"]=this.props.justified,e["btn-block"]=this.props.block,a["default"].createElement("div",r({},this.props,{className:l["default"](this.props.className,e)}),this.props.children)}});t["default"]=c,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(8)["default"],a=n(3)["default"],i=n(2)["default"];t.__esModule=!0;var l=n(1),u=i(l),p=n(24),d=i(p),f=n(60),c=i(f),h=n(34),m=i(h),v=n(35),y=i(v),g=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.renderFormGroup=function(e){var t=this.props,n=(t.bsStyle,t.value,s(t,["bsStyle","value"]));return u["default"].createElement(c["default"],n,e)},t.prototype.renderInput=function(){var e=this.props,t=e.children,n=e.value,r=s(e,["children","value"]),o=t?t:n;return u["default"].createElement(d["default"],a({},r,{componentClass:"input",ref:"input",key:"input",value:o}))},t}(m["default"]);g.types=["button","reset","submit"],g.defaultProps={type:"button"},g.propTypes={type:u["default"].PropTypes.oneOf(g.types),bsStyle:function(){return null},children:y["default"],value:y["default"]},t["default"]=g,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(28)["default"],s=n(2)["default"];t.__esModule=!0;var a=n(1),i=s(a),l=n(4),u=s(l),p=n(27),d=s(p),f=n(12),c=s(f),h=i["default"].createClass({displayName:"Col",propTypes:{xs:i["default"].PropTypes.number,sm:i["default"].PropTypes.number,md:i["default"].PropTypes.number,lg:i["default"].PropTypes.number,xsOffset:i["default"].PropTypes.number,smOffset:i["default"].PropTypes.number,mdOffset:i["default"].PropTypes.number,lgOffset:i["default"].PropTypes.number,xsPush:i["default"].PropTypes.number,smPush:i["default"].PropTypes.number,mdPush:i["default"].PropTypes.number,lgPush:i["default"].PropTypes.number,xsPull:i["default"].PropTypes.number,smPull:i["default"].PropTypes.number,mdPull:i["default"].PropTypes.number,lgPull:i["default"].PropTypes.number,componentClass:c["default"]},getDefaultProps:function(){return{componentClass:"div"}},render:function(){var e=this,t=this.props.componentClass,n={};return o(d["default"].SIZES).forEach(function(t){var r=d["default"].SIZES[t],o=r,s=r+"-";e.props[o]&&(n["col-"+s+e.props[o]]=!0),o=r+"Offset",s=r+"-offset-",e.props[o]>=0&&(n["col-"+s+e.props[o]]=!0),o=r+"Push",s=r+"-push-",e.props[o]>=0&&(n["col-"+s+e.props[o]]=!0),o=r+"Pull",s=r+"-pull-",e.props[o]>=0&&(n["col-"+s+e.props[o]]=!0)},this),i["default"].createElement(t,r({},this.props,{className:u["default"](this.props.className,n)}),this.props.children)}});t["default"]=h,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(3)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(1),l=a(i),u=n(4),p=a(u),d=n(24),f=a(d),c=n(107),h=a(c),m=n(14),v=a(m),y=l["default"].createElement("span",null," ",l["default"].createElement("span",{className:"caret"})),g=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){var e=this.props.noCaret?null:y,t={"dropdown-toggle":!0},n=this.props.useAnchor?v["default"]:f["default"];return l["default"].createElement(n,s({},this.props,{className:p["default"](t,this.props.className),type:"button","aria-haspopup":!0,"aria-expanded":this.props.open}),this.props.title||this.props.children,e)},t}(l["default"].Component);t["default"]=g;var b=h["default"]("title","children");g.defaultProps={open:!1,useAnchor:!1,bsRole:"toggle"},g.propTypes={bsRole:l["default"].PropTypes.string,children:b,noCaret:l["default"].PropTypes.bool,open:l["default"].PropTypes.bool,title:b,useAnchor:l["default"].PropTypes.bool},g.isToggle=!0,g.titleProp="title",g.onClickProp="onClick",e.exports=t["default"]},function(e,t,n){"use strict";var r=n(2)["default"];t.__esModule=!0;var o=n(120),s=r(o);t.Static=s["default"]},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(2)["default"];t.__esModule=!0;var a=n(1),i=s(a),l=n(4),u=s(l),p=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){var e={"form-group":!this.props.standalone,"form-group-lg":!this.props.standalone&&"large"===this.props.bsSize,"form-group-sm":!this.props.standalone&&"small"===this.props.bsSize,"has-feedback":this.props.hasFeedback,"has-success":"success"===this.props.bsStyle,"has-warning":"warning"===this.props.bsStyle,"has-error":"error"===this.props.bsStyle};return i["default"].createElement("div",{className:u["default"](e,this.props.groupClassName)},this.props.children)},t}(i["default"].Component);p.defaultProps={hasFeedback:!1,standalone:!1},p.propTypes={standalone:i["default"].PropTypes.bool,hasFeedback:i["default"].PropTypes.bool,bsSize:function(e){return e.standalone&&void 0!==e.bsSize?new Error("bsSize will not be used when `standalone` is set."):i["default"].PropTypes.oneOf(["small","medium","large"]).apply(null,arguments)},bsStyle:i["default"].PropTypes.oneOf(["success","warning","error"]),groupClassName:i["default"].PropTypes.string},t["default"]=p,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(12),p=o(u),d=a["default"].createClass({displayName:"Grid",propTypes:{fluid:a["default"].PropTypes.bool,componentClass:p["default"]},getDefaultProps:function(){return{componentClass:"div",fluid:!1}},render:function(){var e=this.props.componentClass,t=this.props.fluid?"container-fluid":"container";return a["default"].createElement(e,r({},this.props,{className:l["default"](this.props.className,t)}),this.props.children)}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(9),l=o(i),u=/\%\((.+?)\)s/,p=a["default"].createClass({displayName:"Interpolate",propTypes:{component:a["default"].PropTypes.node,format:a["default"].PropTypes.string,unsafe:a["default"].PropTypes.bool},getDefaultProps:function(){return{component:"span",unsafe:!1}},render:function(){var e=l["default"].hasValidComponent(this.props.children)||"string"==typeof this.props.children?this.props.children:this.props.format,t=this.props.component,n=this.props.unsafe===!0,o=r({},this.props);if(delete o.children,delete o.format,delete o.component,delete o.unsafe,n){var s=e.split(u).reduce(function(e,t,n){var r=void 0;if(n%2===0?r=t:(r=o[t],delete o[t]),a["default"].isValidElement(r))throw new Error("cannot interpolate a React component into unsafe text");return e+=r},"");return o.dangerouslySetInnerHTML={__html:s},a["default"].createElement(t,o)}var i=e.split(u).reduce(function(e,t,n){var r=void 0;if(n%2===0){if(0===t.length)return e;r=t}else r=o[t],delete o[t];return e.push(r),e},[]);return a["default"].createElement(t,o,i)}});t["default"]=p,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(7),l=o(i),u=n(4),p=o(u),d=a["default"].createClass({displayName:"ListGroupItem",mixins:[l["default"]],propTypes:{bsStyle:a["default"].PropTypes.oneOf(["danger","info","success","warning"]),className:a["default"].PropTypes.string,active:a["default"].PropTypes.any,disabled:a["default"].PropTypes.any,header:a["default"].PropTypes.node,listItem:a["default"].PropTypes.bool,onClick:a["default"].PropTypes.func,href:a["default"].PropTypes.string},getDefaultProps:function(){return{bsClass:"list-group-item",listItem:!1}},render:function(){var e=this.getBsClassSet();return e.active=this.props.active,e.disabled=this.props.disabled,this.props.href?this.renderAnchor(e):this.props.onClick?this.renderButton(e):this.props.listItem?this.renderLi(e):this.renderSpan(e)},renderLi:function(e){return a["default"].createElement("li",r({},this.props,{className:p["default"](this.props.className,e)}),this.props.header?this.renderStructuredContent():this.props.children)},renderAnchor:function(e){return a["default"].createElement("a",r({},this.props,{className:p["default"](this.props.className,e)}),this.props.header?this.renderStructuredContent():this.props.children)},renderButton:function(e){return a["default"].createElement("button",r({type:"button"},this.props,{className:p["default"](this.props.className,e)}),this.props.header?this.renderStructuredContent():this.props.children)},renderSpan:function(e){return a["default"].createElement("span",r({},this.props,{className:p["default"](this.props.className,e)}),this.props.header?this.renderStructuredContent():this.props.children)},renderStructuredContent:function(){var e=void 0;e=a["default"].isValidElement(this.props.header)?s.cloneElement(this.props.header,{key:"header",className:p["default"](this.props.header.props.className,"list-group-item-heading")}):a["default"].createElement("h4",{key:"header",className:"list-group-item-heading"},this.props.header);var t=a["default"].createElement("p",{key:"content",className:"list-group-item-text"},this.props.children);return[e,t]}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(3)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(1),l=a(i),u=n(4),p=a(u),d=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){return l["default"].createElement("div",s({},this.props,{className:p["default"](this.props.className,this.props.modalClassName)}),this.props.children)},t}(l["default"].Component);d.propTypes={modalClassName:l["default"].PropTypes.string},d.defaultProps={modalClassName:"modal-body"},t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(3)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(1),l=a(i),u=n(4),p=a(u),d=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){return l["default"].createElement("div",s({},this.props,{className:p["default"](this.props.className,this.props.modalClassName)}),this.props.children)},t}(l["default"].Component);d.propTypes={modalClassName:l["default"].PropTypes.string},d.defaultProps={modalClassName:"modal-footer"},t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(3)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(1),l=a(i),u=n(4),p=a(u),d=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){return l["default"].createElement("div",s({},this.props,{className:p["default"](this.props.className,this.props.modalClassName)}),this.props.closeButton&&l["default"].createElement("button",{className:"close",onClick:this.props.onHide},l["default"].createElement("span",{"aria-hidden":"true"},"×")),this.props.children)},t}(l["default"].Component);d.__isModalHeader=!0,d.propTypes={"aria-label":l["default"].PropTypes.string,modalClassName:l["default"].PropTypes.string,closeButton:l["default"].PropTypes.bool,onHide:l["default"].PropTypes.func},d.defaultProps={"aria-label":"Close",modalClassName:"modal-header",closeButton:!1},t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(3)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(1),l=a(i),u=n(4),p=a(u),d=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){return l["default"].createElement("h4",s({},this.props,{className:p["default"](this.props.className,this.props.modalClassName)}),this.props.children)},t}(l["default"].Component);d.propTypes={modalClassName:l["default"].PropTypes.string},d.defaultProps={modalClassName:"modal-title"},t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(7),l=o(i),u=n(25),p=o(u),d=n(4),f=o(d),c=n(9),h=o(c),m=n(11),v=o(m),y=a["default"].createClass({displayName:"Nav",mixins:[l["default"]],propTypes:{activeHref:a["default"].PropTypes.string,activeKey:a["default"].PropTypes.any,bsStyle:a["default"].PropTypes.oneOf(["tabs","pills"]),stacked:a["default"].PropTypes.bool,justified:a["default"].PropTypes.bool,onSelect:a["default"].PropTypes.func,collapsible:a["default"].PropTypes.bool,className:a["default"].PropTypes.string,id:a["default"].PropTypes.oneOfType([a["default"].PropTypes.string,a["default"].PropTypes.number]),ulClassName:a["default"].PropTypes.string,ulId:a["default"].PropTypes.string,expanded:a["default"].PropTypes.bool,navbar:a["default"].PropTypes.bool,eventKey:a["default"].PropTypes.any,pullRight:a["default"].PropTypes.bool,right:a["default"].PropTypes.bool},getDefaultProps:function(){return{bsClass:"nav",collapsible:!1,expanded:!0,justified:!1,navbar:!1,pullRight:!1,right:!1,stacked:!1}},render:function(){var e=this.props.collapsible?"navbar-collapse":null;return this.props.navbar&&!this.props.collapsible?this.renderUl():a["default"].createElement(p["default"],{"in":this.props.expanded},a["default"].createElement("nav",r({},this.props,{className:f["default"](this.props.className,e)}),this.renderUl()))},renderUl:function(){var e=this.getBsClassSet();return e["nav-stacked"]=this.props.stacked,e["nav-justified"]=this.props.justified,e["navbar-nav"]=this.props.navbar,e["pull-right"]=this.props.pullRight,e["navbar-right"]=this.props.right,a["default"].createElement("ul",r({},this.props,{role:"tabs"===this.props.bsStyle?"tablist":null,className:f["default"](this.props.ulClassName,e),id:this.props.ulId,ref:"ul"}),h["default"].map(this.props.children,this.renderNavItem))},getChildActiveProp:function(e){return e.props.active?!0:null!=this.props.activeKey&&e.props.eventKey===this.props.activeKey?!0:null!=this.props.activeHref&&e.props.href===this.props.activeHref?!0:e.props.active},renderNavItem:function(e,t){return s.cloneElement(e,{role:"tabs"===this.props.bsStyle?"tab":null,active:this.getChildActiveProp(e),activeKey:this.props.activeKey,activeHref:this.props.activeHref,onSelect:v["default"](e.props.onSelect,this.props.onSelect),key:e.key?e.key:t,navItem:!0})}});t["default"]=y,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(8)["default"],a=n(3)["default"],i=n(2)["default"];t.__esModule=!0;var l=n(4),u=i(l),p=n(1),d=i(p),f=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){var e=this.props,t=e.className,n=e.children,r=s(e,["className","children"]);return d["default"].isValidElement(n)?d["default"].cloneElement(n,{className:u["default"](n.props.className,t,"navbar-brand")}):d["default"].createElement("span",a({},r,{className:u["default"](t,"navbar-brand")}),n)},t}(d["default"].Component);f.propTypes={bsRole:d["default"].PropTypes.string},f.defaultProps={bsRole:"brand"},t["default"]=f,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(8)["default"],o=n(3)["default"],s=n(2)["default"];t.__esModule=!0;var a=n(1),i=s(a),l=n(4),u=s(l),p=n(7),d=s(p),f=n(14),c=s(f),h=i["default"].createClass({displayName:"NavItem",mixins:[d["default"]],propTypes:{linkId:i["default"].PropTypes.string,onSelect:i["default"].PropTypes.func,active:i["default"].PropTypes.bool,disabled:i["default"].PropTypes.bool,href:i["default"].PropTypes.string,role:i["default"].PropTypes.string,title:i["default"].PropTypes.node,eventKey:i["default"].PropTypes.any,target:i["default"].PropTypes.string,"aria-controls":i["default"].PropTypes.string},getDefaultProps:function(){return{active:!1,disabled:!1}},render:function(){var e=this.props,t=e.role,n=e.linkId,s=e.disabled,a=e.active,l=e.href,p=e.title,d=e.target,f=e.children,h=e.tabIndex,m=e["aria-controls"],v=r(e,["role","linkId","disabled","active","href","title","target","children","tabIndex","aria-controls"]),y={active:a,disabled:s},g={role:t,href:l,title:p,target:d,tabIndex:h,id:n,onClick:this.handleClick};return t||"#"!==l||(g.role="button"),i["default"].createElement("li",o({},v,{role:"presentation",className:u["default"](v.className,y)}),i["default"].createElement(c["default"],o({},g,{"aria-selected":a,"aria-controls":m}),f))},handleClick:function(e){this.props.onSelect&&(e.preventDefault(),this.props.disabled||this.props.onSelect(this.props.eventKey,this.props.href,this.props.target))}});t["default"]=h,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(3)["default"],a=n(8)["default"],i=n(2)["default"];t.__esModule=!0;var l=n(1),u=i(l),p=n(230),d=i(p),f=n(12),c=i(f),h=n(32),m=i(h),v=n(4),y=i(v),g=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){var e=this.props,t=e.children,n=e.animation,r=a(e,["children","animation"]);return n===!0&&(n=m["default"]),n||(t=l.cloneElement(t,{className:y["default"]("in",t.props.className)})),u["default"].createElement(d["default"],s({},r,{transition:n}),t)},t}(u["default"].Component);g.propTypes=s({},d["default"].propTypes,{show:u["default"].PropTypes.bool,rootClose:u["default"].PropTypes.bool,onHide:u["default"].PropTypes.func,animation:u["default"].PropTypes.oneOfType([u["default"].PropTypes.bool,c["default"]]),onEnter:u["default"].PropTypes.func,onEntering:u["default"].PropTypes.func,onEntered:u["default"].PropTypes.func,onExit:u["default"].PropTypes.func,onExiting:u["default"].PropTypes.func,onExited:u["default"].PropTypes.func}),g.defaultProps={animation:m["default"],rootClose:!1,show:!1},t["default"]=g,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(8)["default"],o=n(3)["default"],s=n(2)["default"];t.__esModule=!0;var a=n(1),i=s(a),l=n(4),u=s(l),p=n(7),d=s(p),f=n(9),c=s(f),h=i["default"].createClass({displayName:"PanelGroup",mixins:[d["default"]],propTypes:{accordion:i["default"].PropTypes.bool,activeKey:i["default"].PropTypes.any,className:i["default"].PropTypes.string,children:i["default"].PropTypes.node,defaultActiveKey:i["default"].PropTypes.any,onSelect:i["default"].PropTypes.func},getDefaultProps:function(){return{accordion:!1,bsClass:"panel-group"}},getInitialState:function(){var e=this.props.defaultActiveKey;return{activeKey:e}},render:function(){var e=this.getBsClassSet(),t=this.props,n=t.className,s=r(t,["className"]);return this.props.accordion&&(s.role="tablist"),i["default"].createElement("div",o({},s,{className:u["default"](n,e),onSelect:null}),c["default"].map(s.children,this.renderPanel))},renderPanel:function(e,t){var n=null!=this.props.activeKey?this.props.activeKey:this.state.activeKey,r={bsStyle:e.props.bsStyle||this.props.bsStyle,key:e.key?e.key:t,ref:e.ref};return this.props.accordion&&(r.headerRole="tab",r.panelRole="tabpanel",r.collapsible=!0,r.expanded=e.props.eventKey===n,r.onSelect=this.handleSelect),a.cloneElement(e,r)},shouldComponentUpdate:function(){return!this._isChanging},handleSelect:function(e,t){e.preventDefault(),this.props.onSelect&&(this._isChanging=!0,this.props.onSelect(t),this._isChanging=!1),this.state.activeKey===t&&(t=null),this.setState({activeKey:t})}});t["default"]=h,e.exports=t["default"]},function(e,t){"use strict";t.__esModule=!0;var n={listen:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),{remove:function(){e.removeEventListener(t,n,!1)}}):e.attachEvent?(e.attachEvent("on"+t,n),{remove:function(){e.detachEvent("on"+t,n)}}):void 0}};t["default"]=n,e.exports=t["default"]},function(e,t){"use strict";function n(){var e=document.createElement("div"),t=e.style;"AnimationEvent"in window||delete a.animationend.animation,"TransitionEvent"in window||delete a.transitionend.transition;for(var n in a){var r=a[n];for(var o in r)if(o in t){i.push(r[o]);break}}}function r(e,t,n){e.addEventListener(t,n,!1)}function o(e,t,n){e.removeEventListener(t,n,!1)}t.__esModule=!0;var s=!("undefined"==typeof window||!window.document||!window.document.createElement),a={transitionend:{transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"mozTransitionEnd",OTransition:"oTransitionEnd",msTransition:"MSTransitionEnd"},animationend:{animation:"animationend",WebkitAnimation:"webkitAnimationEnd",MozAnimation:"mozAnimationEnd",OAnimation:"oAnimationEnd",msAnimation:"MSAnimationEnd"}},i=[];s&&n();var l={addEndEventListener:function(e,t){return 0===i.length?void window.setTimeout(t,0):void i.forEach(function(n){r(e,n,t)})},removeEndEventListener:function(e,t){0!==i.length&&i.forEach(function(n){o(e,n,t)})}};t["default"]=l,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){var t=u["default"].findDOMNode(e);return d["default"](t&&t.ownerDocument||document)}function o(e){var t=r(e);return c["default"](t)}function s(){return Math.max(document.documentElement.offsetHeight,document.height,document.body.scrollHeight,document.body.offsetHeight)}function a(e){var t={width:e.offsetWidth||0,height:e.offsetHeight||0};if("undefined"!=typeof e.getBoundingClientRect){var n=e.getBoundingClientRect(),r=n.width,o=n.height;t.width=r||t.width,t.height=o||t.height}return t}var i=n(2)["default"];t.__esModule=!0;var l=n(10),u=i(l),p=n(19),d=i(p),f=n(180),c=i(f);t["default"]={ownerWindow:o,ownerDocument:r,getDocumentHeight:s,getSize:a},e.exports=t["default"]},function(e,t){"use strict";t["default"]=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t},t.__esModule=!0},function(e,t){e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,n){e.exports=function(e,t){var r=n(36),o=(n(18).Object||{})[e]||Object[e],s={};s[e]=t(o),r(r.S+r.F*n(77)(function(){o(1)}),"Object",s)}},function(e,t,n){var r=n(169);e.exports=function(e){return Object(r(e))}},function(e,t,n){"use strict";function r(){var e=void 0===arguments[0]?document:arguments[0];try{return e.activeElement}catch(t){}}var o=n(22);t.__esModule=!0,t["default"]=r;var s=n(19);o.interopRequireDefault(s);e.exports=t["default"]},function(e,t,n){"use strict";var r=n(20),o=function(){};r&&(o=function(){return document.addEventListener?function(e,t,n,r){return e.addEventListener(t,n,r||!1)}:document.attachEvent?function(e,t,n){return e.attachEvent("on"+t,n)}:void 0}()),e.exports=o},function(e,t,n){"use strict";var r=n(39);e.exports=function(e,t){var n=r(e);return void 0===t?n?"pageYOffset"in n?n.pageYOffset:n.document.documentElement.scrollTop:e.scrollTop:void(n?n.scrollTo("pageXOffset"in n?n.pageXOffset:n.document.documentElement.scrollLeft,t):e.scrollTop=t)}},function(e,t,n){"use strict";var r=n(187),o=/^-ms-/;e.exports=function(e){return r(e.replace(o,"ms-"))}},function(e,t){function n(e,t){if("function"!=typeof e)throw new TypeError(r);return t=o(void 0===t?e.length-1:+t||0,0),function(){for(var n=arguments,r=-1,s=o(n.length-t,0),a=Array(s);++r<s;)a[r]=n[t+r];switch(t){case 0:return e.call(this,a);case 1:return e.call(this,n[0],a);case 2:return e.call(this,n[0],n[1],a)}var i=Array(t+1);for(r=-1;++r<t;)i[r]=n[r];return i[t]=a,e.apply(this,i)}}var r="Expected a function",o=Math.max;e.exports=n},function(e,t,n){function r(e,t,n,u){u||(u=[]);for(var p=-1,d=e.length;++p<d;){var f=e[p];l(f)&&i(f)&&(n||a(f)||s(f))?t?r(f,t,n,u):o(u,f):n||(u[u.length]=f)}return u}var o=n(196),s=n(45),a=n(15),i=n(44),l=n(17);e.exports=r},function(e,t,n){var r=n(216),o=r();e.exports=o},function(e,t,n){function r(e,t,n){if(null!=e){e=o(e),void 0!==n&&n in e&&(t=[n]);for(var r=0,s=t.length;null!=e&&s>r;)e=o(e)[t[r++]];return r&&r==s?e:void 0}}var o=n(13);e.exports=r},function(e,t,n){function r(e,t,n,i,l,u){return e===t?!0:null==e||null==t||!s(e)&&!a(t)?e!==e&&t!==t:o(e,t,r,n,i,l,u)}var o=n(206),s=n(16),a=n(17);e.exports=r},function(e,t,n){function r(e){return function(t){return null==t?void 0:o(t)[e]}}var o=n(13);e.exports=r},function(e,t,n){var r=n(89),o=r("length");e.exports=o},function(e,t){var n=function(){try{Object({toString:0}+"")}catch(e){return function(){return!1}}return function(e){return"function"!=typeof e.toString&&"string"==typeof(e+"")}}();e.exports=n},function(e,t){function n(e,t){return e="number"==typeof e||r.test(e)?+e:-1,t=null==t?o:t,e>-1&&e%1==0&&t>e}var r=/^\d+$/,o=9007199254740991;e.exports=n},function(e,t,n){function r(e,t){var n=typeof e;if("string"==n&&i.test(e)||"number"==n)return!0;if(o(e))return!1;var r=!a.test(e);return r||null!=t&&e in s(t)}var o=n(15),s=n(13),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,i=/^\w*$/;e.exports=r},function(e,t,n){function r(e){return e===e&&!o(e)}var o=n(16);e.exports=r},function(e,t,n){function r(e,t){e=o(e);for(var n=-1,r=t.length,s={};++n<r;){var a=t[n];a in e&&(s[a]=e[a])}return s}var o=n(13);e.exports=r},function(e,t,n){function r(e,t){var n={};return o(e,function(e,r,o){ -t(e,r,o)&&(n[r]=e)}),n}var o=n(203);e.exports=r},function(e,t,n){function r(e){if(s(e))return e;var t=[];return o(e).replace(a,function(e,n,r,o){t.push(r?o.replace(i,"$1"):n||e)}),t}var o=n(212),s=n(15),a=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,i=/\\(\\)?/g;e.exports=r},function(e,t,n){function r(e){return o(e)&&i.call(e)==s}var o=n(16),s="[object Function]",a=Object.prototype,i=a.toString;e.exports=r},function(e,t,n){var r=n(195),o=n(199),s=n(85),a=n(43),i=n(48),l=n(95),u=n(96),p=n(84),d=p(function(e,t){if(null==e)return{};if("function"!=typeof t[0]){var t=r(s(t),String);return l(e,o(i(e),t))}var n=a(t[0],t[1],3);return u(e,function(e,t,r){return!n(e,t,r)})});e.exports=d},function(e,t){function n(e){return e}e.exports=n},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(1),s=r(o),a=n(10),i=r(a),l=n(106),u=r(l),p=n(31),d=r(p),f=n(104),c=r(f),h=s["default"].createClass({displayName:"Portal",propTypes:{container:s["default"].PropTypes.oneOfType([u["default"],s["default"].PropTypes.func])},componentDidMount:function(){this._renderOverlay()},componentDidUpdate:function(){this._renderOverlay()},componentWillUnmount:function(){this._unrenderOverlay(),this._unmountOverlayTarget()},_mountOverlayTarget:function(){this._overlayTarget||(this._overlayTarget=document.createElement("div"),this.getContainerDOMNode().appendChild(this._overlayTarget))},_unmountOverlayTarget:function(){this._overlayTarget&&(this.getContainerDOMNode().removeChild(this._overlayTarget),this._overlayTarget=null)},_renderOverlay:function(){var e=this.props.children?s["default"].Children.only(this.props.children):null;null!==e?(this._mountOverlayTarget(),this._overlayInstance=i["default"].unstable_renderSubtreeIntoContainer(this,e,this._overlayTarget)):(this._unrenderOverlay(),this._unmountOverlayTarget())},_unrenderOverlay:function(){this._overlayTarget&&(i["default"].unmountComponentAtNode(this._overlayTarget),this._overlayInstance=null)},render:function(){return null},getMountNode:function(){return this._overlayTarget},getOverlayDOMNode:function(){if(!this.isMounted())throw new Error("getOverlayDOMNode(): A component must be mounted to have a DOM node.");return this._overlayInstance?this._overlayInstance.getWrappedDOMNode?this._overlayInstance.getWrappedDOMNode():i["default"].findDOMNode(this._overlayInstance):null},getContainerDOMNode:function(){return c["default"](this.props.container,d["default"](this).body)}});t["default"]=h,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}function a(){var e=y+"_"+g++;return{id:e,suppressRootClose:function(t){t.nativeEvent[e]=!0}}}t.__esModule=!0;var i=n(1),l=r(i),u=n(10),p=r(u),d=n(232),f=r(d),c=n(233),h=r(c),m=n(31),v=r(m),y="__click_was_inside",g=0,b=function(e){function t(n){o(this,t),e.call(this,n),this.handleDocumentClick=this.handleDocumentClick.bind(this),this.handleDocumentKeyUp=this.handleDocumentKeyUp.bind(this);var r=a(),s=r.id,i=r.suppressRootClose;this._suppressRootId=s,this._suppressRootCloseHandler=i}return s(t,e),t.prototype.bindRootCloseHandlers=function(){var e=v["default"](this);this._onDocumentClickListener=f["default"](e,"click",this.handleDocumentClick),this._onDocumentKeyupListener=f["default"](e,"keyup",this.handleDocumentKeyUp)},t.prototype.handleDocumentClick=function(e){e[this._suppressRootId]||this.props.onRootClose()},t.prototype.handleDocumentKeyUp=function(e){27===e.keyCode&&this.props.onRootClose()},t.prototype.unbindRootCloseHandlers=function(){this._onDocumentClickListener&&this._onDocumentClickListener.remove(),this._onDocumentKeyupListener&&this._onDocumentKeyupListener.remove()},t.prototype.componentDidMount=function(){this.bindRootCloseHandlers()},t.prototype.render=function(){var e=this.props,t=e.noWrap,n=e.children,r=l["default"].Children.only(n);return t?l["default"].cloneElement(r,{onClick:h["default"](this._suppressRootCloseHandler,r.props.onClick)}):l["default"].createElement("div",{onClick:this._suppressRootCloseHandler},r)},t.prototype.getWrappedDOMNode=function(){var e=p["default"].findDOMNode(this);return this.props.noWrap?e:e.firstChild},t.prototype.componentWillUnmount=function(){this.unbindRootCloseHandlers()},t}(l["default"].Component);t["default"]=b,b.displayName="RootCloseWrapper",b.propTypes={onRootClose:l["default"].PropTypes.func.isRequired,noWrap:l["default"].PropTypes.bool},e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}function i(){}t.__esModule=!0;var l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=n(1),p=r(u),d=n(10),f=r(d),c=n(186),h=r(c),m=n(81),v=r(m),y=n(4),g=r(y),b=h["default"].end,T=0;t.UNMOUNTED=T;var P=1;t.EXITED=P;var x=2;t.ENTERING=x;var E=3;t.ENTERED=E;var C=4;t.EXITING=C;var _=function(e){function t(n,r){s(this,t),e.call(this,n,r);var o=void 0;o=n["in"]?n.transitionAppear?P:E:n.unmountOnExit?T:P,this.state={status:o},this.nextCallback=null}return a(t,e),t.prototype.componentDidMount=function(){this.props.transitionAppear&&this.props["in"]&&this.performEnter(this.props)},t.prototype.componentWillReceiveProps=function(e){var t=this.state.status;e["in"]?t===C?this.performEnter(e):this.props.unmountOnExit?t===T&&this.setState({status:P}):t===P&&this.performEnter(e):(t===x||t===E)&&this.performExit(e)},t.prototype.componentDidUpdate=function(){this.props.unmountOnExit&&this.state.status===P&&(this.props["in"]?this.performEnter(this.props):this.setState({status:T}))},t.prototype.componentWillUnmount=function(){this.cancelNextCallback()},t.prototype.performEnter=function(e){var t=this;this.cancelNextCallback();var n=f["default"].findDOMNode(this);e.onEnter(n),this.safeSetState({status:x},function(){t.props.onEntering(n),t.onTransitionEnd(n,function(){t.safeSetState({status:E},function(){t.props.onEntered(n)})})})},t.prototype.performExit=function(e){var t=this;this.cancelNextCallback();var n=f["default"].findDOMNode(this);e.onExit(n),this.safeSetState({status:C},function(){t.props.onExiting(n),t.onTransitionEnd(n,function(){t.safeSetState({status:P},function(){t.props.onExited(n)})})})},t.prototype.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},t.prototype.safeSetState=function(e,t){this.setState(e,this.setNextCallback(t))},t.prototype.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},t.prototype.onTransitionEnd=function(e,t){this.setNextCallback(t),e?(v["default"](e,b,this.nextCallback),setTimeout(this.nextCallback,this.props.timeout)):setTimeout(this.nextCallback,0)},t.prototype.render=function(){var e=this.state.status;if(e===T)return null;var n=this.props,r=n.children,s=n.className,a=o(n,["children","className"]);Object.keys(t.propTypes).forEach(function(e){return delete a[e]});var i=void 0;e===P?i=this.props.exitedClassName:e===x?i=this.props.enteringClassName:e===E?i=this.props.enteredClassName:e===C&&(i=this.props.exitingClassName);var u=p["default"].Children.only(r);return p["default"].cloneElement(u,l({},a,{className:g["default"](u.props.className,s,i)}))},t}(p["default"].Component);_.propTypes={"in":p["default"].PropTypes.bool,unmountOnExit:p["default"].PropTypes.bool,transitionAppear:p["default"].PropTypes.bool,timeout:p["default"].PropTypes.number,exitedClassName:p["default"].PropTypes.string,exitingClassName:p["default"].PropTypes.string,enteredClassName:p["default"].PropTypes.string,enteringClassName:p["default"].PropTypes.string,onEnter:p["default"].PropTypes.func,onEntering:p["default"].PropTypes.func,onEntered:p["default"].PropTypes.func,onExit:p["default"].PropTypes.func,onExiting:p["default"].PropTypes.func,onExited:p["default"].PropTypes.func},_.displayName="Transition",_.defaultProps={"in":!1,unmountOnExit:!1,transitionAppear:!1,timeout:5e3,onEnter:i,onEntering:i,onEntered:i,onExit:i,onExiting:i,onExited:i},t["default"]=_},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){return e="function"==typeof e?e():e,a["default"].findDOMNode(e)||t}t.__esModule=!0,t["default"]=o;var s=n(10),a=r(s);e.exports=t["default"]},function(e,t){"use strict";function n(e,t,n,r){return"Invalid prop '"+t+"' of value '"+e[t]+"'"+(" supplied to '"+n+"'"+r)}function r(e){function t(t,n,r,o){return o=o||"<<anonymous>>",null!=n[r]?e(n,r,o):t?new Error("Required prop '"+r+"' was not specified in '"+o+"'."):void 0}var n=t.bind(null,!1);return n.isRequired=t.bind(null,!0),n}t.__esModule=!0,t.errMsg=n,t.createChainableTypeChecker=r},function(e,t,n){"use strict";function r(e,t,n){return"object"!=typeof e[t]||"function"!=typeof e[t].render&&1!==e[t].nodeType?new Error(o.errMsg(e,t,n,", expected a DOM element or an object that has a `render` method")):void 0}t.__esModule=!0;var o=n(105);t["default"]=o.createChainableTypeChecker(r),e.exports=t["default"]},function(e,t){"use strict";function n(){function e(e,t,r){var o=n.map(function(t){return e[t]}).reduce(function(e,t){return e+(void 0!==t?1:0)},0);if(o>1){var s=n[0],a=n.slice(1),i=a.join(", ")+" and "+s;return new Error("Invalid prop '"+t+"', only one of the following may be provided: "+i)}}for(var t=arguments.length,n=Array(t),r=0;t>r;r++)n[r]=arguments[r];return e}t.__esModule=!0,t["default"]=n,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(72),l=o(i),u=a["default"].createClass({displayName:"Accordion",render:function(){return a["default"].createElement(l["default"],r({},this.props,{accordion:!0}),this.props.children)}});t["default"]=u,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(54),p=o(u),d=a["default"].createClass({displayName:"Affix",mixins:[p["default"]],render:function(){var e=r({top:this.state.affixPositionTop},this.props.style);return a["default"].createElement("div",r({},this.props,{className:l["default"](this.props.className,this.state.affixClass),style:e}),this.props.children)}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(7),p=o(u),d=a["default"].createClass({displayName:"Alert",mixins:[p["default"]],propTypes:{onDismiss:a["default"].PropTypes.func,dismissAfter:a["default"].PropTypes.number,closeLabel:a["default"].PropTypes.string},getDefaultProps:function(){return{bsClass:"alert",bsStyle:"info",closeLabel:"Close Alert"}},renderDismissButton:function(){return a["default"].createElement("button",{type:"button",className:"close",onClick:this.props.onDismiss,"aria-hidden":"true"},a["default"].createElement("span",null,"×"))},renderSrOnlyDismissButton:function(){return a["default"].createElement("button",{type:"button",className:"close sr-only",onClick:this.props.onDismiss},this.props.closeLabel)},render:function(){var e=this.getBsClassSet(),t=!!this.props.onDismiss;return e["alert-dismissable"]=t,a["default"].createElement("div",r({},this.props,{role:"alert",className:l["default"](this.props.className,e)}),t?this.renderDismissButton():null,this.props.children,t?this.renderSrOnlyDismissButton():null)},componentDidMount:function(){this.props.dismissAfter&&this.props.onDismiss&&(this.dismissTimer=setTimeout(this.props.onDismiss,this.props.dismissAfter))},componentWillUnmount:function(){clearTimeout(this.dismissTimer)}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(9),l=o(i),u=n(4),p=o(u),d=a["default"].createClass({displayName:"Badge",propTypes:{pullRight:a["default"].PropTypes.bool},getDefaultProps:function(){return{pullRight:!1}},hasContent:function(){return l["default"].hasValidComponent(this.props.children)||a["default"].Children.count(this.props.children)>1||"string"==typeof this.props.children||"number"==typeof this.props.children},render:function(){var e={"pull-right":this.props.pullRight,badge:this.hasContent()};return a["default"].createElement("span",r({},this.props,{className:p["default"](this.props.className,e)}),this.props.children)}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(8)["default"],o=n(3)["default"],s=n(2)["default"];t.__esModule=!0;var a=n(1),i=s(a),l=n(4),u=s(l),p=n(9),d=s(p),f=i["default"].createClass({displayName:"Breadcrumb",propTypes:{bsClass:i["default"].PropTypes.string},getDefaultProps:function(){return{bsClass:"breadcrumb"}},render:function(){var e=this.props,t=e.className,n=r(e,["className"]);return i["default"].createElement("ol",o({},n,{role:"navigation","aria-label":"breadcrumbs",className:u["default"](t,this.props.bsClass)}),d["default"].map(this.props.children,this.renderBreadcrumbItem))},renderBreadcrumbItem:function(e,t){return a.cloneElement(e,{key:e.key?e.key:t})}});t["default"]=f,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(8)["default"],o=n(3)["default"],s=n(2)["default"];t.__esModule=!0;var a=n(4),i=s(a),l=n(1),u=s(l),p=n(23),d=s(p),f=n(14),c=s(f),h=u["default"].createClass({displayName:"BreadcrumbItem",propTypes:{active:u["default"].PropTypes.bool,id:u["default"].PropTypes.oneOfType([u["default"].PropTypes.string,u["default"].PropTypes.number]),linkId:u["default"].PropTypes.oneOfType([u["default"].PropTypes.string,u["default"].PropTypes.number]),href:u["default"].PropTypes.string,title:u["default"].PropTypes.node,target:u["default"].PropTypes.string},getDefaultProps:function(){return{active:!1}},render:function(){var e=this.props,t=e.active,n=e.className,s=e.id,a=e.linkId,l=e.children,p=e.href,f=e.title,h=e.target,m=r(e,["active","className","id","linkId","children","href","title","target"]);d["default"](!(p&&t),"[react-bootstrap] `href` and `active` properties cannot be set at the same time");var v={href:p,title:f,target:h,id:a};return u["default"].createElement("li",{id:s,className:i["default"](n,{active:t})},t?u["default"].createElement("span",m,l):u["default"].createElement(c["default"],o({},m,v),l))}});t["default"]=h,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(7),p=o(u),d=a["default"].createClass({displayName:"ButtonToolbar",mixins:[p["default"]],getDefaultProps:function(){return{bsClass:"button-toolbar"}},render:function(){var e=this.getBsClassSet();return a["default"].createElement("div",r({},this.props,{role:"toolbar",className:l["default"](this.props.className,e)}),this.props.children)}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(7),p=o(u),d=n(9),f=o(d),c=n(33),h=o(c),m=a["default"].createClass({displayName:"Carousel",mixins:[p["default"]],propTypes:{slide:a["default"].PropTypes.bool,indicators:a["default"].PropTypes.bool,interval:a["default"].PropTypes.number,controls:a["default"].PropTypes.bool,pauseOnHover:a["default"].PropTypes.bool,wrap:a["default"].PropTypes.bool,onSelect:a["default"].PropTypes.func,onSlideEnd:a["default"].PropTypes.func,activeIndex:a["default"].PropTypes.number,defaultActiveIndex:a["default"].PropTypes.number,direction:a["default"].PropTypes.oneOf(["prev","next"]),prevIcon:a["default"].PropTypes.node,nextIcon:a["default"].PropTypes.node},getDefaultProps:function(){return{slide:!0,interval:5e3,pauseOnHover:!0,wrap:!0,indicators:!0,controls:!0,prevIcon:a["default"].createElement(h["default"],{glyph:"chevron-left"}),nextIcon:a["default"].createElement(h["default"],{glyph:"chevron-right"})}},getInitialState:function(){return{activeIndex:null==this.props.defaultActiveIndex?0:this.props.defaultActiveIndex,previousActiveIndex:null,direction:null}},getDirection:function(e,t){return e===t?null:e>t?"prev":"next"},componentWillReceiveProps:function(e){var t=this.getActiveIndex();null!=e.activeIndex&&e.activeIndex!==t&&(clearTimeout(this.timeout),this.setState({previousActiveIndex:t,direction:null!=e.direction?e.direction:this.getDirection(t,e.activeIndex)}))},componentDidMount:function(){this.waitForNext()},componentWillUnmount:function(){clearTimeout(this.timeout)},next:function(e){e&&e.preventDefault();var t=this.getActiveIndex()+1,n=f["default"].numberOf(this.props.children);if(t>n-1){if(!this.props.wrap)return;t=0}this.handleSelect(t,"next")},prev:function(e){e&&e.preventDefault();var t=this.getActiveIndex()-1;if(0>t){if(!this.props.wrap)return;t=f["default"].numberOf(this.props.children)-1}this.handleSelect(t,"prev")},pause:function(){this.isPaused=!0,clearTimeout(this.timeout)},play:function(){this.isPaused=!1,this.waitForNext()},waitForNext:function(){!this.isPaused&&this.props.slide&&this.props.interval&&null==this.props.activeIndex&&(this.timeout=setTimeout(this.next,this.props.interval))},handleMouseOver:function(){this.props.pauseOnHover&&this.pause()},handleMouseOut:function(){this.isPaused&&this.play()},render:function(){var e={carousel:!0,slide:this.props.slide};return a["default"].createElement("div",r({},this.props,{className:l["default"](this.props.className,e),onMouseOver:this.handleMouseOver,onMouseOut:this.handleMouseOut}),this.props.indicators?this.renderIndicators():null,a["default"].createElement("div",{className:"carousel-inner",ref:"inner"},f["default"].map(this.props.children,this.renderItem)),this.props.controls?this.renderControls():null)},renderPrev:function(){return a["default"].createElement("a",{className:"left carousel-control",href:"#prev",key:0,onClick:this.prev},this.props.prevIcon)},renderNext:function(){return a["default"].createElement("a",{className:"right carousel-control",href:"#next",key:1,onClick:this.next},this.props.nextIcon)},renderControls:function(){if(!this.props.wrap){var e=this.getActiveIndex(),t=f["default"].numberOf(this.props.children);return[0!==e?this.renderPrev():null,e!==t-1?this.renderNext():null]}return[this.renderPrev(),this.renderNext()]},renderIndicator:function(e,t){var n=t===this.getActiveIndex()?"active":null;return a["default"].createElement("li",{key:t,className:n,onClick:this.handleSelect.bind(this,t,null)})},renderIndicators:function(){var e=this,t=[];return f["default"].forEach(this.props.children,function(n,r){t.push(e.renderIndicator(n,r)," ")},this),a["default"].createElement("ol",{className:"carousel-indicators"},t)},getActiveIndex:function(){return null!=this.props.activeIndex?this.props.activeIndex:this.state.activeIndex},handleItemAnimateOutEnd:function(){var e=this;this.setState({previousActiveIndex:null,direction:null},function(){e.waitForNext(),e.props.onSlideEnd&&e.props.onSlideEnd()})},renderItem:function(e,t){var n=this.getActiveIndex(),r=t===n,o=null!=this.state.previousActiveIndex&&this.state.previousActiveIndex===t&&this.props.slide;return s.cloneElement(e,{active:r,ref:e.ref,key:e.key?e.key:t,index:t,animateOut:o,animateIn:r&&null!=this.state.previousActiveIndex&&this.props.slide,direction:this.state.direction,onAnimateOutEnd:o?this.handleItemAnimateOutEnd:null})},handleSelect:function(e,t){if(clearTimeout(this.timeout),this.isMounted()){var n=this.getActiveIndex();if(t=t||this.getDirection(n,e),this.props.onSelect&&this.props.onSelect(e,t),null==this.props.activeIndex&&e!==n){if(null!=this.state.previousActiveIndex)return;this.setState({activeIndex:e,previousActiveIndex:n,direction:t})}}}});t["default"]=m,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(4),a=o(s),i=n(1),l=o(i),u=n(10),p=o(u),d=n(74),f=o(d),c=l["default"].createClass({displayName:"CarouselItem",propTypes:{direction:l["default"].PropTypes.oneOf(["prev","next"]),onAnimateOutEnd:l["default"].PropTypes.func,active:l["default"].PropTypes.bool,animateIn:l["default"].PropTypes.bool,animateOut:l["default"].PropTypes.bool,caption:l["default"].PropTypes.node,index:l["default"].PropTypes.number},getInitialState:function(){return{direction:null}},getDefaultProps:function(){return{active:!1,animateIn:!1,animateOut:!1}},handleAnimateOutEnd:function(){this.props.onAnimateOutEnd&&this.isMounted()&&this.props.onAnimateOutEnd(this.props.index)},componentWillReceiveProps:function(e){this.props.active!==e.active&&this.setState({direction:null})},componentDidUpdate:function(e){!this.props.active&&e.active&&f["default"].addEndEventListener(p["default"].findDOMNode(this),this.handleAnimateOutEnd),this.props.active!==e.active&&setTimeout(this.startAnimation,20)},startAnimation:function(){this.isMounted()&&this.setState({direction:"prev"===this.props.direction?"right":"left"})},render:function(){var e={item:!0,active:this.props.active&&!this.props.animateIn||this.props.animateOut,next:this.props.active&&this.props.animateIn&&"next"===this.props.direction,prev:this.props.active&&this.props.animateIn&&"prev"===this.props.direction};return this.state.direction&&(this.props.animateIn||this.props.animateOut)&&(e[this.state.direction]=!0),l["default"].createElement("div",r({},this.props,{className:a["default"](this.props.className,e)}),this.props.children,this.props.caption?this.renderCaption():null)},renderCaption:function(){return l["default"].createElement("div",{className:"carousel-caption"},this.props.caption)}});t["default"]=c,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(2)["default"];t.__esModule=!0;var o=n(1),s=r(o),a=n(7),i=r(a),l=n(25),u=r(l),p=n(4),d=r(p),f=n(9),c=r(f),h=n(11),m=r(h),v=s["default"].createClass({displayName:"CollapsibleNav",mixins:[i["default"]],propTypes:{onSelect:s["default"].PropTypes.func,activeHref:s["default"].PropTypes.string,activeKey:s["default"].PropTypes.any,collapsible:s["default"].PropTypes.bool,expanded:s["default"].PropTypes.bool,eventKey:s["default"].PropTypes.any},getDefaultProps:function(){return{collapsible:!1,expanded:!1}},render:function(){var e=this.props.collapsible?"navbar-collapse":null,t=this.props.collapsible?this.renderCollapsibleNavChildren:this.renderChildren,n=s["default"].createElement("div",{eventKey:this.props.eventKey,className:d["default"](this.props.className,e)},c["default"].map(this.props.children,t));return this.props.collapsible?s["default"].createElement(u["default"],{"in":this.props.expanded},n):n},getChildActiveProp:function(e){return e.props.active?!0:null!=this.props.activeKey&&e.props.eventKey===this.props.activeKey?!0:null!=this.props.activeHref&&e.props.href===this.props.activeHref?!0:e.props.active},renderChildren:function(e,t){var n=e.key?e.key:t;return o.cloneElement(e,{activeKey:this.props.activeKey,activeHref:this.props.activeHref,ref:"nocollapse_"+n,key:n,navItem:!0})},renderCollapsibleNavChildren:function(e,t){var n=e.key?e.key:t;return o.cloneElement(e,{active:this.getChildActiveProp(e),activeKey:this.props.activeKey,activeHref:this.props.activeHref,onSelect:m["default"](e.props.onSelect,this.props.onSelect),ref:"collapsible_"+n,key:n,navItem:!0})}});t["default"]=v,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(3)["default"],a=n(8)["default"],i=n(2)["default"];t.__esModule=!0;var l=n(1),u=i(l),p=n(7),d=i(p),f=n(26),c=i(f),h=n(99),m=i(h),v=function(e){function t(n){o(this,t),e.call(this,n)}return r(t,e),t.prototype.render=function(){var e=this.props,t=e.title,n=a(e,["title"]),r=m["default"](n,c["default"].ControlledComponent.propTypes);return u["default"].createElement(c["default"],n,u["default"].createElement(c["default"].Toggle,r,t),u["default"].createElement(c["default"].Menu,null,this.props.children))},t}(u["default"].Component);v.propTypes=s({noCaret:u["default"].PropTypes.bool,title:u["default"].PropTypes.node.isRequired},c["default"].propTypes,d["default"].propTypes),v.defaultProps={pullRight:!1,dropup:!1,navItem:!1,noCaret:!1},t["default"]=v,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(8)["default"],a=n(3)["default"],i=n(2)["default"];t.__esModule=!0;var l=n(4),u=i(l),p=n(42),d=i(p),f=n(1),c=i(f),h=n(10),m=i(h),v=n(102),y=i(v),g=n(9),b=i(g),T=n(11),P=i(T),x=function(e){function t(n){o(this,t),e.call(this,n),this.focusNext=this.focusNext.bind(this),this.focusPrevious=this.focusPrevious.bind(this),this.getFocusableMenuItems=this.getFocusableMenuItems.bind(this),this.getItemsAndActiveIndex=this.getItemsAndActiveIndex.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}return r(t,e),t.prototype.handleKeyDown=function(e){switch(e.keyCode){case d["default"].codes.down:this.focusNext(),e.preventDefault();break;case d["default"].codes.up:this.focusPrevious(),e.preventDefault();break;case d["default"].codes.esc:case d["default"].codes.tab:this.props.onClose(e)}},t.prototype.focusNext=function(){var e=this.getItemsAndActiveIndex(),t=e.items,n=e.activeItemIndex;return 0!==t.length?n===t.length-1?void t[0].focus():void t[n+1].focus():void 0},t.prototype.focusPrevious=function(){var e=this.getItemsAndActiveIndex(),t=e.items,n=e.activeItemIndex;return 0===n?void t[t.length-1].focus():void t[n-1].focus()},t.prototype.getItemsAndActiveIndex=function(){var e=this.getFocusableMenuItems(),t=document.activeElement,n=e.indexOf(t);return{items:e,activeItemIndex:n}},t.prototype.getFocusableMenuItems=function(){var e=m["default"].findDOMNode(this);return void 0===e?[]:[].slice.call(e.querySelectorAll('[tabIndex="-1"]'),0)},t.prototype.render=function(){var e=this,t=this.props,n=t.children,r=t.onSelect,o=t.pullRight,i=t.className,l=t.labelledBy,p=t.open,d=t.onClose,f=s(t,["children","onSelect","pullRight","className","labelledBy","open","onClose"]),h=b["default"].map(n,function(t){var n=t.props||{};return c["default"].cloneElement(t,{onKeyDown:P["default"](n.onKeyDown,e.handleKeyDown),onSelect:P["default"](n.onSelect,r)},n.children)}),m={"dropdown-menu":!0,"dropdown-menu-right":o},v=c["default"].createElement("ul",a({className:u["default"](i,m),role:"menu","aria-labelledby":l},f),h);return p&&(v=c["default"].createElement(y["default"],{noWrap:!0,onRootClose:d},v)),v},t}(c["default"].Component);x.defaultProps={bsRole:"menu",pullRight:!1},x.propTypes={open:c["default"].PropTypes.bool,pullRight:c["default"].PropTypes.bool,onClose:c["default"].PropTypes.func,labelledBy:c["default"].PropTypes.oneOfType([c["default"].PropTypes.string,c["default"].PropTypes.number]),onSelect:c["default"].PropTypes.func},t["default"]=x,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(3)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(1),l=a(i),u=n(4),p=a(u),d=n(34),f=a(d),c=n(35),h=a(c),m=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.getValue=function(){var e=this.props,t=e.children,n=e.value;return t?t:n},t.prototype.renderInput=function(){return l["default"].createElement("p",s({},this.props,{className:p["default"](this.props.className,"form-control-static"),ref:"input",key:"input"}),this.getValue())},t}(f["default"]);m.propTypes={value:h["default"],children:h["default"]},t["default"]=m,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=a["default"].createClass({displayName:"Image",propTypes:{responsive:a["default"].PropTypes.bool,rounded:a["default"].PropTypes.bool,circle:a["default"].PropTypes.bool,thumbnail:a["default"].PropTypes.bool},getDefaultProps:function(){return{responsive:!1,rounded:!1,circle:!1,thumbnail:!1}},render:function(){var e={"img-responsive":this.props.responsive,"img-rounded":this.props.rounded,"img-circle":this.props.circle,"img-thumbnail":this.props.thumbnail};return a["default"].createElement("img",r({},this.props,{className:l["default"](this.props.className,e)}))}});t["default"]=u,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(2)["default"],a=n(76)["default"];t.__esModule=!0;var i=n(1),l=s(i),u=n(34),p=s(u),d=n(59),f=a(d),c=n(154),h=s(c),m=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){return"static"===this.props.type?(h["default"]("Input type=static","FormControls.Static"),l["default"].createElement(f.Static,this.props)):e.prototype.render.call(this)},t}(p["default"]);m.propTypes={type:l["default"].PropTypes.string},t["default"]=m,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(12),p=o(u),d=a["default"].createClass({displayName:"Jumbotron",propTypes:{componentClass:p["default"]},getDefaultProps:function(){return{componentClass:"div"}},render:function(){var e=this.props.componentClass;return a["default"].createElement(e,r({},this.props,{className:l["default"](this.props.className,"jumbotron")}),this.props.children)}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(7),p=o(u),d=a["default"].createClass({displayName:"Label",mixins:[p["default"]],getDefaultProps:function(){return{bsClass:"label",bsStyle:"default"}},render:function(){var e=this.getBsClassSet();return a["default"].createElement("span",r({},this.props,{className:l["default"](this.props.className,e)}),this.props.children)}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(3)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(1),l=a(i),u=n(63),p=a(u),d=n(4),f=a(d),c=n(9),h=a(c),m=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){var e=this,t=h["default"].map(this.props.children,function(e,t){return i.cloneElement(e,{key:e.key?e.key:t})});if(this.areCustomChildren(t)){var n=this.props.componentClass;return l["default"].createElement(n,s({},this.props,{className:f["default"](this.props.className,"list-group")}),t)}var r=!1;return this.props.children?h["default"].forEach(this.props.children,function(t){e.isAnchorOrButton(t.props)&&(r=!0)}):r=!0,r?this.renderDiv(t):this.renderUL(t)},t.prototype.isAnchorOrButton=function(e){return e.href||e.onClick},t.prototype.areCustomChildren=function(e){var t=!1;return h["default"].forEach(e,function(e){e.type!==p["default"]&&(t=!0)},this),t},t.prototype.renderUL=function(e){var t=h["default"].map(e,function(e){return i.cloneElement(e,{listItem:!0})});return l["default"].createElement("ul",s({},this.props,{className:f["default"](this.props.className,"list-group")}),t)},t.prototype.renderDiv=function(e){return l["default"].createElement("div",s({},this.props,{className:f["default"](this.props.className,"list-group")}),e)},t}(l["default"].Component);m.defaultProps={componentClass:"div"},m.propTypes={className:l["default"].PropTypes.string,componentClass:l["default"].PropTypes.oneOf(["ul","div"]),id:l["default"].PropTypes.oneOfType([l["default"].PropTypes.string,l["default"].PropTypes.number])}, -t["default"]=m,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(2)["default"];t.__esModule=!0;var a=n(1),i=s(a),l=n(4),u=s(l),p=n(50),d=s(p),f=n(14),c=s(f),h=function(e){function t(n){o(this,t),e.call(this,n),this.handleClick=this.handleClick.bind(this)}return r(t,e),t.prototype.handleClick=function(e){(!this.props.href||this.props.disabled)&&e.preventDefault(),this.props.disabled||this.props.onSelect&&this.props.onSelect(e,this.props.eventKey)},t.prototype.render=function(){if(this.props.divider)return i["default"].createElement("li",{role:"separator",className:"divider"});if(this.props.header)return i["default"].createElement("li",{role:"heading",className:"dropdown-header"},this.props.children);var e={disabled:this.props.disabled,active:this.props.active};return i["default"].createElement("li",{role:"presentation",className:u["default"](this.props.className,e),style:this.props.style},i["default"].createElement(c["default"],{role:"menuitem",tabIndex:"-1",id:this.props.id,target:this.props.target,title:this.props.title,href:this.props.href||"",onKeyDown:this.props.onKeyDown,onClick:this.handleClick},this.props.children))},t}(i["default"].Component);t["default"]=h,h.propTypes={active:i["default"].PropTypes.bool,disabled:i["default"].PropTypes.bool,divider:d["default"](i["default"].PropTypes.bool,function(e){return e.divider&&e.children?new Error("Children will not be rendered for dividers"):void 0}),eventKey:i["default"].PropTypes.oneOfType([i["default"].PropTypes.number,i["default"].PropTypes.string]),header:i["default"].PropTypes.bool,href:i["default"].PropTypes.string,target:i["default"].PropTypes.string,title:i["default"].PropTypes.string,onKeyDown:i["default"].PropTypes.func,onSelect:i["default"].PropTypes.func,id:i["default"].PropTypes.oneOfType([i["default"].PropTypes.string,i["default"].PropTypes.number])},h.defaultProps={divider:!1,disabled:!1,header:!1},e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t){var n=g["default"].ownerDocument(t);return e===n.body||e===n.documentElement?n.documentElement.clientHeight:e.clientHeight}function o(e){return e.props.container&&v["default"].findDOMNode(e.props.container)||g["default"].ownerDocument(e).body}function s(e,t){var n=g["default"].ownerDocument(e),r=!n.addEventListener,o=void 0;return G&&G.remove(),r?(document.attachEvent("onfocusin",t),o=function(){return document.detachEvent("onfocusin",t)}):(document.addEventListener("focus",t,!0),o=function(){return document.removeEventListener("focus",t,!0)}),G={remove:o}}var a=n(3)["default"],i=n(8)["default"],l=n(157)["default"],u=n(28)["default"],p=n(2)["default"];t.__esModule=!0;var d=n(4),f=p(d),c=n(1),h=p(c),m=n(10),v=p(m),y=n(75),g=p(y),b=n(190),T=p(b),P=n(73),x=p(P),E=n(11),C=p(E),_=n(12),N=p(_),O=n(20),w=p(O),S=n(29),k=p(S),M=n(80),D=p(M),I=n(101),A=p(I),R=n(32),j=p(R),K=n(128),L=p(K),B=n(64),F=p(B),H=n(66),W=p(H),U=n(67),V=p(U),q=n(65),z=p(q),G=void 0,Y=h["default"].createClass({displayName:"Modal",propTypes:a({},A["default"].propTypes,L["default"].propTypes,{backdrop:h["default"].PropTypes.oneOf(["static",!0,!1]),keyboard:h["default"].PropTypes.bool,animation:h["default"].PropTypes.bool,dialogComponent:N["default"],autoFocus:h["default"].PropTypes.bool,enforceFocus:h["default"].PropTypes.bool,bsStyle:h["default"].PropTypes.string,show:h["default"].PropTypes.bool}),getDefaultProps:function(){return{bsClass:"modal",dialogComponent:L["default"],show:!1,animation:!0,backdrop:!0,keyboard:!0,autoFocus:!0,enforceFocus:!0}},getInitialState:function(){return{exited:!this.props.show}},render:function(){var e=this.props,t=(e.children,e.animation),n=e.backdrop,r=i(e,["children","animation","backdrop"]),o=r.onExit,s=r.onExiting,l=r.onEnter,u=r.onEntering,p=r.onEntered,d=!!r.show,c=r.dialogComponent,m=d||t&&!this.state.exited;if(!m)return null;var v=h["default"].createElement(c,a({},r,{ref:this._setDialogRef,className:f["default"](this.props.className,{"in":d&&!t}),onClick:n===!0?this.handleBackdropClick:null}),this.renderContent());return t&&(v=h["default"].createElement(j["default"],{transitionAppear:!0,unmountOnExit:!0,"in":d,timeout:Y.TRANSITION_DURATION,onExit:o,onExiting:s,onExited:this.handleHidden,onEnter:l,onEntering:u,onEntered:p},v)),n&&(v=this.renderBackdrop(v)),h["default"].createElement(A["default"],{container:r.container},v)},renderContent:function(){var e=this;return h["default"].Children.map(this.props.children,function(t){return t&&t.type&&t.type.__isModalHeader?c.cloneElement(t,{onHide:C["default"](e.props.onHide,t.props.onHide)}):t})},renderBackdrop:function(e){var t=this.props,n=t.animation,r=t.bsClass,o=Y.BACKDROP_TRANSITION_DURATION,s=this.props.backdrop===!0?this.handleBackdropClick:null,a=h["default"].createElement("div",{ref:"backdrop",className:f["default"](r+"-backdrop",{"in":this.props.show&&!n}),onClick:s});return h["default"].createElement("div",{ref:"modal"},n?h["default"].createElement(j["default"],{transitionAppear:!0,"in":this.props.show,timeout:o},a):a,e)},_setDialogRef:function(e){l(this.refs)&&!u(this.refs).length&&(this.refs={}),this.refs.dialog=e,this.props.backdrop||(this.refs.modal=e)},componentWillReceiveProps:function(e){e.show?this.setState({exited:!1}):e.animation||this.setState({exited:!0})},componentWillUpdate:function(e){e.show&&this.checkForFocus()},componentDidMount:function(){this.props.show&&this.onShow()},componentDidUpdate:function(e){var t=this.props.animation;!e.show||this.props.show||t?!e.show&&this.props.show&&this.onShow():this.onHide()},componentWillUnmount:function(){this.props.show&&this.onHide()},onShow:function(){var e=this,t=g["default"].ownerDocument(this),n=g["default"].ownerWindow(this);this._onDocumentKeyupListener=x["default"].listen(t,"keyup",this.handleDocumentKeyUp),this._onWindowResizeListener=x["default"].listen(n,"resize",this.handleWindowResize),this.props.enforceFocus&&(this._onFocusinListener=s(this,this.enforceFocus));var a=o(this);a.className+=a.className.length?" modal-open":"modal-open",this._containerIsOverflowing=a.scrollHeight>r(a,this),this._originalPadding=a.style.paddingRight,this._containerIsOverflowing&&(a.style.paddingRight=parseInt(this._originalPadding||0,10)+T["default"]()+"px"),this.setState(this._getStyles(),function(){return e.focusModalContent()})},onHide:function(){this._onDocumentKeyupListener.remove(),this._onWindowResizeListener.remove(),this._onFocusinListener&&this._onFocusinListener.remove();var e=o(this);e.style.paddingRight=this._originalPadding,e.className=e.className.replace(/ ?modal-open/,""),this.restoreLastFocus()},handleHidden:function(){if(this.setState({exited:!0}),this.onHide(),this.props.onExited){var e;(e=this.props).onExited.apply(e,arguments)}},handleBackdropClick:function(e){e.target===e.currentTarget&&this.props.onHide()},handleDocumentKeyUp:function(e){this.props.keyboard&&27===e.keyCode&&this.props.onHide()},handleWindowResize:function(){this.setState(this._getStyles())},checkForFocus:function(){w["default"]&&(this.lastFocus=D["default"](document))},focusModalContent:function(){var e=v["default"].findDOMNode(this.refs.dialog),t=D["default"](g["default"].ownerDocument(this)),n=t&&k["default"](e,t);e&&this.props.autoFocus&&!n&&(this.lastFocus=t,e.focus())},restoreLastFocus:function(){this.lastFocus&&this.lastFocus.focus&&(this.lastFocus.focus(),this.lastFocus=null)},enforceFocus:function(){if(this.isMounted()){var e=D["default"](g["default"].ownerDocument(this)),t=v["default"].findDOMNode(this.refs.dialog);t&&t!==e&&!k["default"](t,e)&&t.focus()}},_getStyles:function(){if(!w["default"])return{};var e=v["default"].findDOMNode(this.refs.modal),t=e.scrollHeight,n=o(this),s=this._containerIsOverflowing,a=t>r(n,this);return{dialogStyles:{paddingRight:s&&!a?T["default"]():void 0,paddingLeft:!s&&a?T["default"]():void 0}}}});Y.Body=F["default"],Y.Header=W["default"],Y.Title=V["default"],Y.Footer=z["default"],Y.Dialog=L["default"],Y.TRANSITION_DURATION=300,Y.BACKDROP_TRANSITION_DURATION=150,t["default"]=Y,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(7),p=o(u),d=a["default"].createClass({displayName:"ModalDialog",mixins:[p["default"]],propTypes:{onHide:a["default"].PropTypes.func.isRequired,dialogClassName:a["default"].PropTypes.string},getDefaultProps:function(){return{bsClass:"modal",closeButton:!0}},render:function(){var e=r({display:"block"},this.props.style),t=this.props.bsClass,n=this.getBsClassSet();return delete n.modal,n[t+"-dialog"]=!0,a["default"].createElement("div",r({},this.props,{title:null,tabIndex:"-1",role:"dialog",style:e,className:l["default"](this.props.className,t)}),a["default"].createElement("div",{className:l["default"](this.props.dialogClassName,n)},a["default"].createElement("div",{className:t+"-content",role:"document"},this.props.children)))}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(3)["default"],a=n(8)["default"],i=n(2)["default"];t.__esModule=!0;var l=n(1),u=i(l),p=n(26),d=i(p),f=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){var e=this.props,t=e.children,n=e.title,r=e.noCaret,o=a(e,["children","title","noCaret"]);return u["default"].createElement(d["default"],s({},o,{componentClass:"li"}),u["default"].createElement(d["default"].Toggle,{useAnchor:!0,disabled:o.disabled,noCaret:r},n),u["default"].createElement(d["default"].Menu,null,t))},t}(u["default"].Component);f.propTypes=s({noCaret:u["default"].PropTypes.bool,title:u["default"].PropTypes.node.isRequired},d["default"].propTypes),t["default"]=f,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(8)["default"],o=n(3)["default"],s=n(2)["default"];t.__esModule=!0;var a=n(4),i=s(a),l=n(1),u=s(l),p=n(52),d=s(p),f=n(12),c=s(f),h=n(7),m=s(h),v=n(61),y=s(v),g=n(69),b=s(g),T=n(11),P=s(T),x=n(9),E=s(x),C=u["default"].createClass({displayName:"Navbar",mixins:[m["default"]],propTypes:{fixedTop:u["default"].PropTypes.bool,fixedBottom:u["default"].PropTypes.bool,staticTop:u["default"].PropTypes.bool,inverse:u["default"].PropTypes.bool,fluid:u["default"].PropTypes.bool,role:u["default"].PropTypes.string,componentClass:c["default"],brand:d["default"](u["default"].PropTypes.node,"Use the `NavBrand` component."),toggleButton:u["default"].PropTypes.node,toggleNavKey:u["default"].PropTypes.oneOfType([u["default"].PropTypes.string,u["default"].PropTypes.number]),onToggle:u["default"].PropTypes.func,navExpanded:u["default"].PropTypes.bool,defaultNavExpanded:u["default"].PropTypes.bool},getDefaultProps:function(){return{bsClass:"navbar",bsStyle:"default",role:"navigation",componentClass:"nav",fixedTop:!1,fixedBottom:!1,staticTop:!1,inverse:!1,fluid:!1,defaultNavExpanded:!1}},getInitialState:function(){return{navExpanded:this.props.defaultNavExpanded}},shouldComponentUpdate:function(){return!this._isChanging},handleToggle:function(){this.props.onToggle&&(this._isChanging=!0,this.props.onToggle(),this._isChanging=!1),this.setState({navExpanded:!this.state.navExpanded})},isNavExpanded:function(){return null!=this.props.navExpanded?this.props.navExpanded:this.state.navExpanded},hasNavBrandChild:function(){return E["default"].findValidComponents(this.props.children,function(e){return"brand"===e.props.bsRole}).length>0},render:function(){var e=this.props,t=e.brand,n=e.toggleButton,s=e.toggleNavKey,a=e.fixedTop,l=e.fixedBottom,p=e.staticTop,d=e.inverse,f=e.componentClass,c=e.fluid,h=e.className,m=e.children,v=r(e,["brand","toggleButton","toggleNavKey","fixedTop","fixedBottom","staticTop","inverse","componentClass","fluid","className","children"]),g=this.getBsClassSet();g["navbar-fixed-top"]=a,g["navbar-fixed-bottom"]=l,g["navbar-static-top"]=p,g["navbar-inverse"]=d;var b=(t||n||null!=s)&&!this.hasNavBrandChild();return u["default"].createElement(f,o({},v,{className:i["default"](h,g)}),u["default"].createElement(y["default"],{fluid:c},b?this.renderBrandHeader():null,E["default"].map(m,this.renderChild)))},renderBrandHeader:function(){var e=this.props.brand;return e&&(e=u["default"].createElement(b["default"],null,e)),this.renderHeader(e)},renderHeader:function(e){var t=this.props.toggleButton||null!=this.props.toggleNavKey;return u["default"].createElement("div",{className:"navbar-header"},e,t?this.renderToggleButton():null)},renderChild:function(e,t){var n=null!=e.key?e.key:t;if("brand"===e.props.bsRole)return u["default"].cloneElement(this.renderHeader(e),{key:n});var r=this.props.toggleNavKey,o=null!=r&&r===e.props.eventKey;return u["default"].cloneElement(e,{navbar:!0,collapsible:o,expanded:o&&this.isNavExpanded(),key:n})},renderToggleButton:function(){var e=this.props.toggleButton;if(u["default"].isValidElement(e))return u["default"].cloneElement(e,{className:i["default"](e.props.className,"navbar-toggle"),onClick:P["default"](this.handleToggle,e.props.onClick)});var t=void 0;return t=null!=e?e:[u["default"].createElement("span",{className:"sr-only",key:0},"Toggle navigation"),u["default"].createElement("span",{className:"icon-bar",key:1}),u["default"].createElement("span",{className:"icon-bar",key:2}),u["default"].createElement("span",{className:"icon-bar",key:3})],u["default"].createElement("button",{type:"button",onClick:this.handleToggle,className:"navbar-toggle"},t)}});t["default"]=C,e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t){return Array.isArray(t)?t.indexOf(e)>=0:e===t}var o=n(3)["default"],s=n(28)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(29),l=a(i),u=n(228),p=a(u),d=n(1),f=a(d),c=n(10),h=a(c),m=n(23),v=a(m),y=n(71),g=a(y),b=n(11),T=a(b),P=f["default"].createClass({displayName:"OverlayTrigger",propTypes:o({},g["default"].propTypes,{trigger:f["default"].PropTypes.oneOfType([f["default"].PropTypes.oneOf(["click","hover","focus"]),f["default"].PropTypes.arrayOf(f["default"].PropTypes.oneOf(["click","hover","focus"]))]),delay:f["default"].PropTypes.number,delayShow:f["default"].PropTypes.number,delayHide:f["default"].PropTypes.number,defaultOverlayShown:f["default"].PropTypes.bool,overlay:f["default"].PropTypes.node.isRequired,onBlur:f["default"].PropTypes.func,onClick:f["default"].PropTypes.func,onFocus:f["default"].PropTypes.func,onMouseEnter:f["default"].PropTypes.func,onMouseLeave:f["default"].PropTypes.func,target:function(){},onHide:function(){},show:function(){}}),getDefaultProps:function(){return{defaultOverlayShown:!1,trigger:["hover","focus"]}},getInitialState:function(){return{isOverlayShown:this.props.defaultOverlayShown}},show:function(){this.setState({isOverlayShown:!0})},hide:function(){this.setState({isOverlayShown:!1})},toggle:function(){this.state.isOverlayShown?this.hide():this.show()},componentWillMount:function(){this.handleMouseOver=this.handleMouseOverOut.bind(null,this.handleDelayedShow),this.handleMouseOut=this.handleMouseOverOut.bind(null,this.handleDelayedHide)},componentDidMount:function(){this._mountNode=document.createElement("div"),this.renderOverlay()},renderOverlay:function(){h["default"].unstable_renderSubtreeIntoContainer(this,this._overlay,this._mountNode)},componentWillUnmount:function(){h["default"].unmountComponentAtNode(this._mountNode),this._mountNode=null,clearTimeout(this._hoverDelay)},componentDidUpdate:function(){this._mountNode&&this.renderOverlay()},getOverlayTarget:function(){return h["default"].findDOMNode(this)},getOverlay:function(){var e=o({},p["default"](this.props,s(g["default"].propTypes)),{show:this.state.isOverlayShown,onHide:this.hide,target:this.getOverlayTarget,onExit:this.props.onExit,onExiting:this.props.onExiting,onExited:this.props.onExited,onEnter:this.props.onEnter,onEntering:this.props.onEntering,onEntered:this.props.onEntered}),t=d.cloneElement(this.props.overlay,{placement:e.placement,container:e.container});return f["default"].createElement(g["default"],e,t)},render:function(){var e=f["default"].Children.only(this.props.children),t=e.props,n={"aria-describedby":this.props.overlay.props.id};return this._overlay=this.getOverlay(),n.onClick=T["default"](t.onClick,this.props.onClick),r("click",this.props.trigger)&&(n.onClick=T["default"](this.toggle,n.onClick)),r("hover",this.props.trigger)&&(v["default"](!("hover"===this.props.trigger),'[react-bootstrap] Specifying only the `"hover"` trigger limits the visibilty of the overlay to just mouse users. Consider also including the `"focus"` trigger so that touch and keyboard only users can see the overlay as well.'),n.onMouseOver=T["default"](this.handleMouseOver,this.props.onMouseOver,t.onMouseOver),n.onMouseOut=T["default"](this.handleMouseOut,this.props.onMouseOut,t.onMouseOut)),r("focus",this.props.trigger)&&(n.onFocus=T["default"](this.handleDelayedShow,this.props.onFocus,t.onFocus),n.onBlur=T["default"](this.handleDelayedHide,this.props.onBlur,t.onBlur)),d.cloneElement(e,n)},handleDelayedShow:function(){var e=this;if(null!=this._hoverDelay)return clearTimeout(this._hoverDelay),void(this._hoverDelay=null);var t=null!=this.props.delayShow?this.props.delayShow:this.props.delay;return t?void(this._hoverDelay=setTimeout(function(){e._hoverDelay=null,e.show()},t)):void this.show()},handleDelayedHide:function(){var e=this;if(null!=this._hoverDelay)return clearTimeout(this._hoverDelay),void(this._hoverDelay=null);var t=null!=this.props.delayHide?this.props.delayHide:this.props.delay;return t?void(this._hoverDelay=setTimeout(function(){e._hoverDelay=null,e.hide()},t)):void this.hide()},handleMouseOverOut:function(e,t){var n=t.currentTarget,r=t.relatedTarget||t.nativeEvent.toElement;(!r||r!==n&&!l["default"](n,r))&&e(t)}});t["default"]=P,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=a["default"].createClass({displayName:"PageHeader",render:function(){return a["default"].createElement("div",r({},this.props,{className:l["default"](this.props.className,"page-header")}),a["default"].createElement("h1",null,this.props.children))}});t["default"]=u,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(14),p=o(u),d=a["default"].createClass({displayName:"PageItem",propTypes:{href:a["default"].PropTypes.string,target:a["default"].PropTypes.string,title:a["default"].PropTypes.string,disabled:a["default"].PropTypes.bool,previous:a["default"].PropTypes.bool,next:a["default"].PropTypes.bool,onSelect:a["default"].PropTypes.func,eventKey:a["default"].PropTypes.any},getDefaultProps:function(){return{disabled:!1,previous:!1,next:!1}},render:function(){var e={disabled:this.props.disabled,previous:this.props.previous,next:this.props.next};return a["default"].createElement("li",r({},this.props,{className:l["default"](this.props.className,e)}),a["default"].createElement(p["default"],{href:this.props.href,title:this.props.title,target:this.props.target,onClick:this.handleSelect},this.props.children))},handleSelect:function(e){(this.props.onSelect||this.props.disabled)&&(e.preventDefault(),this.props.disabled||this.props.onSelect(this.props.eventKey,this.props.href,this.props.target))}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(9),p=o(u),d=n(11),f=o(d),c=a["default"].createClass({displayName:"Pager",propTypes:{onSelect:a["default"].PropTypes.func},render:function(){return a["default"].createElement("ul",r({},this.props,{className:l["default"](this.props.className,"pager")}),p["default"].map(this.props.children,this.renderPageItem))},renderPageItem:function(e,t){return s.cloneElement(e,{onSelect:f["default"](e.props.onSelect,this.props.onSelect),key:e.key?e.key:t})}});t["default"]=c,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(7),p=o(u),d=n(136),f=o(d),c=n(12),h=o(c),m=n(14),v=o(m),y=a["default"].createClass({displayName:"Pagination",mixins:[p["default"]],propTypes:{activePage:a["default"].PropTypes.number,items:a["default"].PropTypes.number,maxButtons:a["default"].PropTypes.number,ellipsis:a["default"].PropTypes.bool,first:a["default"].PropTypes.bool,last:a["default"].PropTypes.bool,prev:a["default"].PropTypes.bool,next:a["default"].PropTypes.bool,onSelect:a["default"].PropTypes.func,buttonComponentClass:h["default"]},getDefaultProps:function(){return{activePage:1,items:1,maxButtons:0,first:!1,last:!1,prev:!1,next:!1,ellipsis:!0,buttonComponentClass:v["default"],bsClass:"pagination"}},renderPageButtons:function(){var e=[],t=void 0,n=void 0,r=void 0,o=this.props,s=o.maxButtons,i=o.activePage,l=o.items,u=o.onSelect,p=o.ellipsis,d=o.buttonComponentClass;if(s){var c=i-parseInt(s/2,10);t=c>1?c:1,r=l>=t+s,r?n=t+s-1:(n=l,t=l-s+1,1>t&&(t=1))}else t=1,n=l;for(var h=t;n>=h;h++)e.push(a["default"].createElement(f["default"],{key:h,eventKey:h,active:h===i,onSelect:u,buttonComponentClass:d},h));return s&&r&&p&&e.push(a["default"].createElement(f["default"],{key:"ellipsis",disabled:!0,buttonComponentClass:d},a["default"].createElement("span",{"aria-label":"More"},"..."))),e},renderPrev:function(){return this.props.prev?a["default"].createElement(f["default"],{key:"prev",eventKey:this.props.activePage-1,disabled:1===this.props.activePage,onSelect:this.props.onSelect,buttonComponentClass:this.props.buttonComponentClass},a["default"].createElement("span",{"aria-label":"Previous"},"‹")):null},renderNext:function(){return this.props.next?a["default"].createElement(f["default"],{key:"next",eventKey:this.props.activePage+1,disabled:this.props.activePage>=this.props.items,onSelect:this.props.onSelect,buttonComponentClass:this.props.buttonComponentClass},a["default"].createElement("span",{"aria-label":"Next"},"›")):null},renderFirst:function(){return this.props.first?a["default"].createElement(f["default"],{key:"first",eventKey:1,disabled:1===this.props.activePage,onSelect:this.props.onSelect,buttonComponentClass:this.props.buttonComponentClass},a["default"].createElement("span",{"aria-label":"First"},"«")):null},renderLast:function(){return this.props.last?a["default"].createElement(f["default"],{key:"last",eventKey:this.props.items,disabled:this.props.activePage>=this.props.items,onSelect:this.props.onSelect,buttonComponentClass:this.props.buttonComponentClass},a["default"].createElement("span",{"aria-label":"Last"},"»")):null},render:function(){return a["default"].createElement("ul",r({},this.props,{className:l["default"](this.props.className,this.getBsClassSet())}),this.renderFirst(),this.renderPrev(),this.renderPageButtons(),this.renderNext(),this.renderLast())}});t["default"]=y,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(8)["default"],s=n(2)["default"];t.__esModule=!0;var a=n(1),i=s(a),l=n(4),u=s(l),p=n(7),d=s(p),f=n(153),c=s(f),h=n(12),m=s(h),v=i["default"].createClass({displayName:"PaginationButton",mixins:[d["default"]],propTypes:{className:i["default"].PropTypes.string,eventKey:i["default"].PropTypes.oneOfType([i["default"].PropTypes.string,i["default"].PropTypes.number]),onSelect:i["default"].PropTypes.func,disabled:i["default"].PropTypes.bool,active:i["default"].PropTypes.bool,buttonComponentClass:m["default"]},getDefaultProps:function(){return{active:!1,disabled:!1}},handleClick:function(e){if(!this.props.disabled&&this.props.onSelect){var t=c["default"](this.props.eventKey);this.props.onSelect(e,t)}},render:function(){var e=r({active:this.props.active,disabled:this.props.disabled},this.getBsClassSet()),t=this.props,n=t.className,s=o(t,["className"]),a=this.props.buttonComponentClass;return i["default"].createElement("li",{className:u["default"](n,e)},i["default"].createElement(a,r({},s,{onClick:this.handleClick})))}});t["default"]=v,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(8)["default"],o=n(3)["default"],s=n(2)["default"];t.__esModule=!0;var a=n(1),i=s(a),l=n(4),u=s(l),p=n(7),d=s(p),f=n(25),c=s(f),h=i["default"].createClass({displayName:"Panel",mixins:[d["default"]],propTypes:{collapsible:i["default"].PropTypes.bool,onSelect:i["default"].PropTypes.func,header:i["default"].PropTypes.node,id:i["default"].PropTypes.oneOfType([i["default"].PropTypes.string,i["default"].PropTypes.number]),footer:i["default"].PropTypes.node,defaultExpanded:i["default"].PropTypes.bool,expanded:i["default"].PropTypes.bool,eventKey:i["default"].PropTypes.any,headerRole:i["default"].PropTypes.string,panelRole:i["default"].PropTypes.string},getDefaultProps:function(){return{bsClass:"panel",bsStyle:"default",defaultExpanded:!1}},getInitialState:function(){return{expanded:this.props.defaultExpanded}},handleSelect:function(e){e.selected=!0,this.props.onSelect?this.props.onSelect(e,this.props.eventKey):e.preventDefault(),e.selected&&this.handleToggle()},handleToggle:function(){this.setState({expanded:!this.state.expanded})},isExpanded:function(){return null!=this.props.expanded?this.props.expanded:this.state.expanded},render:function(){var e=this.props,t=e.headerRole,n=e.panelRole,s=r(e,["headerRole","panelRole"]);return i["default"].createElement("div",o({},s,{className:u["default"](this.props.className,this.getBsClassSet()),id:this.props.collapsible?null:this.props.id,onSelect:null}),this.renderHeading(t),this.props.collapsible?this.renderCollapsibleBody(n):this.renderBody(),this.renderFooter())},renderCollapsibleBody:function(e){var t={className:this.prefixClass("collapse"),id:this.props.id,ref:"panel","aria-hidden":!this.isExpanded()};return e&&(t.role=e),i["default"].createElement(c["default"],{"in":this.isExpanded()},i["default"].createElement("div",t,this.renderBody()))},renderBody:function(){function e(){return{key:u.length}}function t(t){u.push(a.cloneElement(t,e()))}function n(t){u.push(i["default"].createElement("div",o({className:d},e()),t))}function r(){0!==p.length&&(n(p),p=[])}var s=this,l=this.props.children,u=[],p=[],d=this.prefixClass("body");return Array.isArray(l)&&0!==l.length?(l.forEach(function(e){s.shouldRenderFill(e)?(r(),t(e)):p.push(e)}),r()):this.shouldRenderFill(l)?t(l):n(l),u},shouldRenderFill:function(e){return i["default"].isValidElement(e)&&null!=e.props.fill},renderHeading:function(e){var t=this.props.header;if(!t)return null;if(!i["default"].isValidElement(t)||Array.isArray(t))t=this.props.collapsible?this.renderCollapsibleTitle(t,e):t;else{var n=u["default"](this.prefixClass("title"),t.props.className);t=this.props.collapsible?a.cloneElement(t,{className:n,children:this.renderAnchor(t.props.children,e)}):a.cloneElement(t,{className:n})}return i["default"].createElement("div",{className:this.prefixClass("heading")},t)},renderAnchor:function(e,t){return i["default"].createElement("a",{href:"#"+(this.props.id||""),"aria-controls":this.props.collapsible?this.props.id:null,className:this.isExpanded()?null:"collapsed","aria-expanded":this.isExpanded(),"aria-selected":this.isExpanded(),onClick:this.handleSelect,role:t},e)},renderCollapsibleTitle:function(e,t){return i["default"].createElement("h4",{className:this.prefixClass("title"),role:"presentation"},this.renderAnchor(e,t))},renderFooter:function(){return this.props.footer?i["default"].createElement("div",{className:this.prefixClass("footer")},this.props.footer):null}});t["default"]=h,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(7),p=o(u),d=n(53),f=o(d),c=a["default"].createClass({displayName:"Popover",mixins:[p["default"]],propTypes:{id:f["default"](a["default"].PropTypes.oneOfType([a["default"].PropTypes.string,a["default"].PropTypes.number])),placement:a["default"].PropTypes.oneOf(["top","right","bottom","left"]),positionLeft:a["default"].PropTypes.number,positionTop:a["default"].PropTypes.number,arrowOffsetLeft:a["default"].PropTypes.oneOfType([a["default"].PropTypes.number,a["default"].PropTypes.string]),arrowOffsetTop:a["default"].PropTypes.oneOfType([a["default"].PropTypes.number,a["default"].PropTypes.string]),title:a["default"].PropTypes.node},getDefaultProps:function(){return{placement:"right"}},render:function(){var e,t=(e={popover:!0},e[this.props.placement]=!0,e),n=r({left:this.props.positionLeft,top:this.props.positionTop,display:"block"},this.props.style),o={left:this.props.arrowOffsetLeft,top:this.props.arrowOffsetTop};return a["default"].createElement("div",r({role:"tooltip"},this.props,{className:l["default"](this.props.className,t),style:n,title:null}),a["default"].createElement("div",{className:"arrow",style:o}),this.props.title?this.renderTitle():null,a["default"].createElement("div",{className:"popover-content"},this.props.children))},renderTitle:function(){return a["default"].createElement("h3",{className:"popover-title"},this.props.title)}});t["default"]=c,e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t,n){if(e[t]){var r=function(){var r=void 0,o=void 0;return l["default"].Children.forEach(e[t],function(e){e.type!==y&&(o=e.type.displayName?e.type.displayName:e.type,r=new Error("Children of "+n+" can contain only ProgressBar components. Found "+o))}),{v:r}}();if("object"==typeof r)return r.v}}var o=n(3)["default"],s=n(8)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(1),l=a(i),u=n(62),p=a(u),d=n(7),f=a(d),c=n(4),h=a(c),m=n(9),v=a(m),y=l["default"].createClass({displayName:"ProgressBar",propTypes:{min:i.PropTypes.number,now:i.PropTypes.number,max:i.PropTypes.number,label:i.PropTypes.node,srOnly:i.PropTypes.bool,striped:i.PropTypes.bool,active:i.PropTypes.bool,children:r,className:l["default"].PropTypes.string,interpolateClass:i.PropTypes.node,isChild:i.PropTypes.bool},mixins:[f["default"]],getDefaultProps:function(){return{bsClass:"progress-bar",min:0,max:100,active:!1,isChild:!1,srOnly:!1,striped:!1}},getPercentage:function(e,t,n){var r=1e3;return Math.round((e-t)/(n-t)*100*r)/r},render:function(){if(this.props.isChild)return this.renderProgressBar();var e=void 0;return e=this.props.children?v["default"].map(this.props.children,this.renderChildBar):this.renderProgressBar(),l["default"].createElement("div",o({},this.props,{className:h["default"](this.props.className,"progress"),min:null,max:null,label:null,"aria-valuetext":null}),e)},renderChildBar:function(e,t){return i.cloneElement(e,{isChild:!0,key:e.key?e.key:t})},renderProgressBar:function(){var e=this.props,t=e.className,n=e.label,r=e.now,a=e.min,i=e.max,u=s(e,["className","label","now","min","max"]),p=this.getPercentage(r,a,i);"string"==typeof n&&(n=this.renderLabel(p)),this.props.srOnly&&(n=l["default"].createElement("span",{className:"sr-only"},n));var d=h["default"](t,this.getBsClassSet(),{active:this.props.active,"progress-bar-striped":this.props.active||this.props.striped});return l["default"].createElement("div",o({},u,{className:d,role:"progressbar",style:{width:p+"%"},"aria-valuenow":this.props.now,"aria-valuemin":this.props.min,"aria-valuemax":this.props.max}),n)},renderLabel:function(e){var t=this.props.interpolateClass||p["default"];return l["default"].createElement(t,{now:this.props.now,min:this.props.min,max:this.props.max,percent:e,bsStyle:this.props.bsStyle},this.props.label)}});t["default"]=y,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(3)["default"],a=n(8)["default"],i=n(2)["default"];t.__esModule=!0;var l=n(4),u=i(l),p=n(1),d=i(p),f=n(23),c=i(f),h=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){var e=this.props,t=e.bsClass,n=e.className,r=e.a16by9,o=e.a4by3,i=a(e,["bsClass","className","a16by9","a4by3"]);c["default"](!(!r&&!o),"`a16by9` or `a4by3` attribute must be set."),c["default"](!(r&&o),"Either `a16by9` or `a4by3` attribute can be set. Not both.");var l={"embed-responsive-16by9":r,"embed-responsive-4by3":o};return d["default"].createElement("div",{className:u["default"](t,l) -},p.cloneElement(this.props.children,s({},i,{className:u["default"](n,"embed-responsive-item")})))},t}(d["default"].Component);h.defaultProps={bsClass:"embed-responsive",a16by9:!1,a4by3:!1},h.propTypes={bsClass:p.PropTypes.string,children:p.PropTypes.element.isRequired,a16by9:p.PropTypes.bool,a4by3:p.PropTypes.bool},t["default"]=h,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(12),p=o(u),d=a["default"].createClass({displayName:"Row",propTypes:{componentClass:p["default"]},getDefaultProps:function(){return{componentClass:"div"}},render:function(){var e=this.props.componentClass;return a["default"].createElement(e,r({},this.props,{className:l["default"](this.props.className,"row")}),this.props.children)}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(3)["default"],a=n(8)["default"],i=n(2)["default"];t.__esModule=!0;var l=n(1),u=i(l),p=n(7),d=i(p),f=n(24),c=i(f),h=n(26),m=i(h),v=n(143),y=i(v),g=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){var e=this.props,t=e.children,n=e.title,r=e.onClick,o=e.target,s=e.href,i=e.bsStyle,l=a(e,["children","title","onClick","target","href","bsStyle"]),p=l.disabled,d=u["default"].createElement(c["default"],{onClick:r,bsStyle:i,disabled:p,target:o,href:s},n);return u["default"].createElement(m["default"],l,d,u["default"].createElement(y["default"],{"aria-label":n,bsStyle:i,disabled:p}),u["default"].createElement(m["default"].Menu,null,t))},t}(u["default"].Component);g.propTypes=s({},m["default"].propTypes,d["default"].propTypes,{onClick:function(){},target:u["default"].PropTypes.string,href:u["default"].PropTypes.string,title:u["default"].PropTypes.node.isRequired}),g.defaultProps={disabled:!1,dropup:!1,pullRight:!1},g.Toggle=y["default"],t["default"]=g,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(3)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(1),l=a(i),u=n(58),p=a(u),d=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){return l["default"].createElement(p["default"],s({},this.props,{useAnchor:!1,noCaret:!1}))},t}(l["default"].Component);t["default"]=d,d.defaultProps=p["default"].defaultProps,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(9),p=o(u),d=n(11),f=o(d),c=n(7),h=o(c),m=n(14),v=o(m),y=a["default"].createClass({displayName:"SubNav",mixins:[h["default"]],propTypes:{onSelect:a["default"].PropTypes.func,active:a["default"].PropTypes.bool,activeHref:a["default"].PropTypes.string,activeKey:a["default"].PropTypes.any,disabled:a["default"].PropTypes.bool,eventKey:a["default"].PropTypes.any,href:a["default"].PropTypes.string,title:a["default"].PropTypes.string,text:a["default"].PropTypes.node,target:a["default"].PropTypes.string},getDefaultProps:function(){return{bsClass:"nav",active:!1,disabled:!1}},handleClick:function(e){this.props.onSelect&&(e.preventDefault(),this.props.disabled||this.props.onSelect(this.props.eventKey,this.props.href,this.props.target))},isActive:function(){return this.isChildActive(this)},isChildActive:function(e){var t=this;if(e.props.active)return!0;if(null!=this.props.activeKey&&this.props.activeKey===e.props.eventKey)return!0;if(null!=this.props.activeHref&&this.props.activeHref===e.props.href)return!0;if(e.props.children){var n=!1;return p["default"].forEach(e.props.children,function(e){t.isChildActive(e)&&(n=!0)},this),n}return!1},getChildActiveProp:function(e){return e.props.active?!0:null!=this.props.activeKey&&e.props.eventKey===this.props.activeKey?!0:null!=this.props.activeHref&&e.props.href===this.props.activeHref?!0:e.props.active},render:function(){var e={active:this.isActive(),disabled:this.props.disabled};return a["default"].createElement("li",r({},this.props,{className:l["default"](this.props.className,e)}),a["default"].createElement(v["default"],{href:this.props.href,title:this.props.title,target:this.props.target,onClick:this.handleClick},this.props.text),a["default"].createElement("ul",{className:"nav"},p["default"].map(this.props.children,this.renderNavItem)))},renderNavItem:function(e,t){return s.cloneElement(e,{active:this.getChildActiveProp(e),onSelect:f["default"](e.props.onSelect,this.props.onSelect),key:e.key?e.key:t})}});t["default"]=y,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(4),a=o(s),i=n(1),l=o(i),u=n(10),p=o(u),d=n(74),f=o(d),c=l["default"].createClass({displayName:"Tab",propTypes:{active:l["default"].PropTypes.bool,animation:l["default"].PropTypes.bool,onAnimateOutEnd:l["default"].PropTypes.func,disabled:l["default"].PropTypes.bool,title:l["default"].PropTypes.node,tabClassName:l["default"].PropTypes.string},getDefaultProps:function(){return{animation:!0}},getInitialState:function(){return{animateIn:!1,animateOut:!1}},componentWillReceiveProps:function(e){this.props.animation&&(this.state.animateIn||!e.active||this.props.active?this.state.animateOut||e.active||!this.props.active||this.setState({animateOut:!0}):this.setState({animateIn:!0}))},componentDidUpdate:function(){this.state.animateIn&&setTimeout(this.startAnimateIn,0),this.state.animateOut&&f["default"].addEndEventListener(p["default"].findDOMNode(this),this.stopAnimateOut)},startAnimateIn:function(){this.isMounted()&&this.setState({animateIn:!1})},stopAnimateOut:function(){this.isMounted()&&(this.setState({animateOut:!1}),this.props.onAnimateOutEnd&&this.props.onAnimateOutEnd())},render:function(){var e={"tab-pane":!0,fade:!0,active:this.props.active||this.state.animateOut,"in":this.props.active&&!this.state.animateIn};return l["default"].createElement("div",r({},this.props,{title:void 0,role:"tabpanel","aria-hidden":!this.props.active,className:a["default"](this.props.className,e)}),this.props.children)}});t["default"]=c,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=a["default"].createClass({displayName:"Table",propTypes:{striped:a["default"].PropTypes.bool,bordered:a["default"].PropTypes.bool,condensed:a["default"].PropTypes.bool,hover:a["default"].PropTypes.bool,responsive:a["default"].PropTypes.bool},getDefaultProps:function(){return{bordered:!1,condensed:!1,hover:!1,responsive:!1,striped:!1}},render:function(){var e={table:!0,"table-striped":this.props.striped,"table-bordered":this.props.bordered,"table-condensed":this.props.condensed,"table-hover":this.props.hover},t=a["default"].createElement("table",r({},this.props,{className:l["default"](this.props.className,e)}),this.props.children);return this.props.responsive?a["default"].createElement("div",{className:"table-responsive"},t):t}});t["default"]=u,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){var t=void 0;return w["default"].forEach(e,function(e){null==t&&(t=e.props.eventKey)}),t}function o(e,t,n,r){function o(){var t=n.indexOf(i);return i=r?n[Math.min(s,t+1)]:n[Math.max(0,t-1)],M(e,function(e){return e.props.eventKey===i})}for(var s=n.length-1,a=n[r?Math.max(s,0):0],i=t,l=o();l.props.eventKey!==a&&l.props.disabled;)l=o();return l.props.disabled?t:l.props.eventKey}var s=n(3)["default"],a=n(8)["default"],i=n(28)["default"],l=n(2)["default"];t.__esModule=!0;var u=n(4),p=l(u),d=n(1),f=l(d),c=n(10),h=l(c),m=n(57),v=l(m),y=n(68),g=l(y),b=n(70),T=l(b),P=n(27),x=l(P),E=n(42),C=l(E),_=n(11),N=l(_),O=n(9),w=l(O),S=function(e,t){return t.props.id?t.props.id:e.id&&e.id+"___pane___"+t.props.eventKey},k=function(e,t){return t.props.id?t.props.id+"___tab":e.id&&e.id+"___tab___"+t.props.eventKey},M=w["default"].find,D=f["default"].createClass({displayName:"Tabs",propTypes:{activeKey:f["default"].PropTypes.any,defaultActiveKey:f["default"].PropTypes.any,bsStyle:f["default"].PropTypes.oneOf(["tabs","pills"]),animation:f["default"].PropTypes.bool,id:f["default"].PropTypes.oneOfType([f["default"].PropTypes.string,f["default"].PropTypes.number]),onSelect:f["default"].PropTypes.func,position:f["default"].PropTypes.oneOf(["top","left","right"]),tabWidth:f["default"].PropTypes.oneOfType([f["default"].PropTypes.number,f["default"].PropTypes.object]),paneWidth:f["default"].PropTypes.oneOfType([f["default"].PropTypes.number,f["default"].PropTypes.object]),standalone:f["default"].PropTypes.bool},getDefaultProps:function(){return{animation:!0,tabWidth:2,position:"top",standalone:!1}},getInitialState:function(){var e=null!=this.props.defaultActiveKey?this.props.defaultActiveKey:r(this.props.children);return{activeKey:e,previousActiveKey:null}},componentWillReceiveProps:function(e){var t=this;null!=e.activeKey&&e.activeKey!==this.props.activeKey&&!function(){var n=t.props.activeKey;f["default"].Children.forEach(e.children,function(e){return f["default"].isValidElement(e)&&e.props.eventKey===n?void t.setState({previousActiveKey:n}):void 0})}()},componentDidUpdate:function(){var e=this._tabs,t=this._eventKeys().indexOf(this.getActiveKey());if(this._needsRefocus&&(this._needsRefocus=!1,e&&-1!==t)){var n=h["default"].findDOMNode(e[t]);n&&n.firstChild.focus()}},handlePaneAnimateOutEnd:function(){this.setState({previousActiveKey:null})},render:function(){var e=this.props,t=e.id,n=e.className,r=e.style,o=e.position,i=e.bsStyle,l=e.tabWidth,u=e.paneWidth,d=e.standalone,c=e.children,h=a(e,["id","className","style","position","bsStyle","tabWidth","paneWidth","standalone","children"]),m="left"===o||"right"===o;null==i&&(i=m?"pills":"tabs");var y={id:t,className:n,style:r},b=s({},h,{bsStyle:i,stacked:m,activeKey:this.getActiveKey(),onSelect:this.handleSelect,ref:"tabs",role:"tablist"}),T=w["default"].map(c,this.renderTab),P={className:"tab-content",ref:"panes"},x=w["default"].map(c,this.renderPane);if(m){d||(y.className=p["default"](y.className,"clearfix"));var E=this.getColProps({tabWidth:l,paneWidth:u}),C=E.tabsColProps,_=E.panesColProps,N=f["default"].createElement(v["default"],s({componentClass:g["default"]},b,C),T),O=f["default"].createElement(v["default"],s({},P,_),x);return"left"===o?f["default"].createElement("div",y,N,O):f["default"].createElement("div",y,O,N)}return f["default"].createElement("div",y,f["default"].createElement(g["default"],b,T),f["default"].createElement("div",P,x))},getActiveKey:function(){return void 0!==this.props.activeKey?this.props.activeKey:this.state.activeKey},renderPane:function(e,t){var n=this.state.previousActiveKey,r=e.props.eventKey===this.getActiveKey(),o=null==n,s=null!=n&&e.props.eventKey===n;return d.cloneElement(e,{active:r&&(o||!this.props.animation),id:S(this.props,e),"aria-labelledby":k(this.props,e),key:e.key?e.key:t,animation:this.props.animation,onAnimateOutEnd:s?this.handlePaneAnimateOutEnd:null})},renderTab:function(e,t){var n=this;if(null==e.props.title)return null;var r=e.props,o=r.eventKey,s=r.title,a=r.disabled,i=r.onKeyDown,l=r.tabClassName,u=r.tabIndex,p=void 0===u?0:u,d=this.getActiveKey()===o;return f["default"].createElement(T["default"],{linkId:k(this.props,e),ref:function(e){return(n._tabs||(n._tabs=[]))[t]=e},"aria-controls":S(this.props,e),onKeyDown:N["default"](this.handleKeyDown,i),eventKey:o,tabIndex:d?p:-1,disabled:a,className:l},s)},getColProps:function(e){var t=e.tabWidth,n=e.paneWidth,r=void 0;r=t instanceof Object?t:{xs:t};var o=void 0;return null==n?(o={},i(r).forEach(function(e){o[e]=x["default"].GRID_COLUMNS-r[e]})):o=n instanceof Object?n:{xs:n},{tabsColProps:r,panesColProps:o}},shouldComponentUpdate:function(){return!this._isChanging},handleSelect:function(e){if(this.props.onSelect)return this._isChanging=!0,this.props.onSelect(e),void(this._isChanging=!1);var t=this.getActiveKey();e!==t&&this.setState({activeKey:e,previousActiveKey:t})},handleKeyDown:function(e){var t=this._eventKeys(),n=this.getActiveKey()||t[0],r=void 0;switch(e.keyCode){case C["default"].codes.left:case C["default"].codes.up:r=o(this.props.children,n,t,!1),r&&r!==n&&(e.preventDefault(),this.handleSelect(r),this._needsRefocus=!0);break;case C["default"].codes.right:case C["default"].codes.down:r=o(this.props.children,n,t,!0),r&&r!==n&&(e.preventDefault(),this.handleSelect(r),this._needsRefocus=!0)}},_eventKeys:function(){var e=[];return w["default"].forEach(this.props.children,function(t){var n=t.props.eventKey;return e.push(n)}),e}});t["default"]=D,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(7),p=o(u),d=n(14),f=o(d),c=a["default"].createClass({displayName:"Thumbnail",mixins:[p["default"]],propTypes:{alt:a["default"].PropTypes.string,href:a["default"].PropTypes.string,src:a["default"].PropTypes.string},getDefaultProps:function(){return{bsClass:"thumbnail"}},render:function(){var e=this.getBsClassSet();return this.props.href?a["default"].createElement(f["default"],r({},this.props,{href:this.props.href,className:l["default"](this.props.className,e)}),a["default"].createElement("img",{src:this.props.src,alt:this.props.alt})):this.props.children?a["default"].createElement("div",r({},this.props,{className:l["default"](this.props.className,e)}),a["default"].createElement("img",{src:this.props.src,alt:this.props.alt}),a["default"].createElement("div",{className:"caption"},this.props.children)):a["default"].createElement("div",r({},this.props,{className:l["default"](this.props.className,e)}),a["default"].createElement("img",{src:this.props.src,alt:this.props.alt}))}});t["default"]=c,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(6)["default"],o=n(5)["default"],s=n(3)["default"],a=n(8)["default"],i=n(2)["default"];t.__esModule=!0;var l=n(4),u=i(l),p=n(1),d=i(p),f=n(53),c=i(f),h=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){var e=this.props,t=e.placement,n=e.positionLeft,r=e.positionTop,o=e.arrowOffsetLeft,i=e.arrowOffsetTop,l=e.className,p=e.style,f=e.children,c=a(e,["placement","positionLeft","positionTop","arrowOffsetLeft","arrowOffsetTop","className","style","children"]);return d["default"].createElement("div",s({role:"tooltip"},c,{className:u["default"](l,"tooltip",t),style:s({left:n,top:r},p)}),d["default"].createElement("div",{className:"tooltip-arrow",style:{left:o,top:i}}),d["default"].createElement("div",{className:"tooltip-inner"},f))},t}(d["default"].Component);t["default"]=h,h.propTypes={id:c["default"](d["default"].PropTypes.oneOfType([d["default"].PropTypes.string,d["default"].PropTypes.number])),placement:d["default"].PropTypes.oneOf(["top","right","bottom","left"]),positionLeft:d["default"].PropTypes.number,positionTop:d["default"].PropTypes.number,arrowOffsetLeft:d["default"].PropTypes.oneOfType([d["default"].PropTypes.number,d["default"].PropTypes.string]),arrowOffsetTop:d["default"].PropTypes.oneOfType([d["default"].PropTypes.number,d["default"].PropTypes.string])},h.defaultProps={placement:"right"},e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(7),p=o(u),d=a["default"].createClass({displayName:"Well",mixins:[p["default"]],getDefaultProps:function(){return{bsClass:"well"}},render:function(){var e=this.getBsClassSet();return a["default"].createElement("div",r({},this.props,{className:l["default"](this.props.className,e)}),this.props.children)}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(2)["default"];t.__esModule=!0;var o=n(51),s=n(152),a=r(s);t["default"]={requiredRoles:function(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return o.createChainableTypeChecker(function(e,n,r){var o=void 0,s=a["default"](e.children),i=function(e,t){return e===t.props.bsRole};return t.every(function(e){return s.some(function(t){return i(e,t)})?!0:(o=e,!1)}),o?new Error("(children) "+r+" - Missing a required child with bsRole: "+o+". "+(r+" must have at least one child of each of the following bsRoles: "+t.join(", "))):void 0})},exclusiveRoles:function(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return o.createChainableTypeChecker(function(e,n,r){var o=a["default"](e.children),s=void 0;return t.every(function(e){var t=o.filter(function(t){return t.props.bsRole===e});return t.length>1?(s=e,!1):!0}),s?new Error("(children) "+r+" - Duplicate children detected of bsRole: "+s+". Only one child each allowed with the following bsRoles: "+t.join(", ")):void 0})}},e.exports=t["default"]},function(e,t,n){"use strict";function r(e){var t=[];return void 0===e?t:(a["default"].forEach(e,function(e){t.push(e)}),t)}var o=n(2)["default"];t.__esModule=!0,t["default"]=r;var s=n(9),a=o(s);e.exports=t["default"]},function(e,t){"use strict";function n(e){var t=!1;return{eventKey:e,preventSelection:function(){t=!0},isSelectionPrevented:function(){return t}}}t.__esModule=!0,t["default"]=n,e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t,n){var r=void 0;"object"==typeof e?r=e.message:(r=e+" is deprecated. Use "+t+" instead.",n&&(r+="\nYou can read more about it at "+n)),u[r]||(l["default"](!1,r),u[r]=!0)}var o=n(6)["default"],s=n(5)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(23),l=a(i),u={};r.wrapper=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),a=1;t>a;a++)n[a-1]=arguments[a];return function(e){function t(){s(this,t),e.apply(this,arguments)}return o(t,e),t.prototype.componentWillMount=function(){if(r.apply(void 0,n),e.prototype.componentWillMount){for(var t,o=arguments.length,s=Array(o),a=0;o>a;a++)s[a]=arguments[a];(t=e.prototype.componentWillMount).call.apply(t,[this].concat(s))}},t}(e)},t["default"]=r,e.exports=t["default"]},function(e,t,n){e.exports={"default":n(159),__esModule:!0}},function(e,t,n){e.exports={"default":n(160),__esModule:!0}},function(e,t,n){e.exports={"default":n(161),__esModule:!0}},function(e,t,n){e.exports={"default":n(163),__esModule:!0}},function(e,t,n){n(175),e.exports=n(18).Object.assign},function(e,t,n){var r=n(38);e.exports=function(e,t){return r.create(e,t)}},function(e,t,n){n(176),e.exports=n(18).Object.isFrozen},function(e,t,n){n(177),e.exports=n(18).Object.keys},function(e,t,n){n(178),e.exports=n(18).Object.setPrototypeOf},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){var r=n(37);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){var r=n(79),o=n(173),s=n(170),a=n(172);e.exports=n(77)(function(){var e=Object.assign,t={},n={},r=Symbol(),o="abcdefghijklmnopqrst";return t[r]=7,o.split("").forEach(function(e){n[e]=e}),7!=e({},t)[r]||Object.keys(e({},n)).join("")!=o})?function(e,t){for(var n=r(e),i=arguments.length,l=1;i>l;)for(var u,p=o(arguments[l++]),d=s(p),f=d.length,c=0;f>c;)a(p,u=d[c++])&&(n[u]=p[u]);return n}:Object.assign},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var r=n(164);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){var r=n(38);e.exports=function(e){var t=r.getKeys(e),n=r.getSymbols;if(n)for(var o,s=n(e),a=r.isEnum,i=0;s.length>i;)a.call(e,o=s[i++])&&t.push(o);return t}},function(e,t){var n="undefined",r=e.exports=typeof window!=n&&window.Math==Math?window:typeof self!=n&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(167);e.exports=0 in Object("z")?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t,n){var r=n(38).getDesc,o=n(37),s=n(165),a=function(e,t){if(s(e),!o(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,o){try{o=n(168)(Function.call,r(Object.prototype,"__proto__").set,2),o(e,[]),t=!(e instanceof Array)}catch(s){t=!0}return function(e,n){return a(e,n),t?e.__proto__=n:o(e,n),e}}({},!1):void 0),check:a}},function(e,t,n){var r=n(36);r(r.S+r.F,"Object",{assign:n(166)})},function(e,t,n){var r=n(37);n(78)("isFrozen",function(e){return function(t){return r(t)?e?e(t):!1:!0}})},function(e,t,n){var r=n(79);n(78)("keys",function(e){return function(t){return e(r(t))}})},function(e,t,n){var r=n(36);r(r.S,"Object",{setPrototypeOf:n(174).set})},function(e,t,n){"use strict";var r=n(20),o=function(){};r&&(o=function(){return document.addEventListener?function(e,t,n,r){return e.removeEventListener(t,n,r||!1)}:document.attachEvent?function(e,t,n){return e.detachEvent("on"+t,n)}:void 0}()),e.exports=o},function(e,t,n){"use strict";function r(e){var t=a["default"](e);return t&&t.defaultView||t.parentWindow}var o=n(22);t.__esModule=!0,t["default"]=r;var s=n(19),a=o.interopRequireDefault(s);e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e.nodeName&&e.nodeName.toLowerCase()}function o(e){for(var t=i["default"](e),n=e&&e.offsetParent;n&&"html"!==r(e)&&"static"===u["default"](n,"position");)n=n.offsetParent;return n||t.documentElement}var s=n(22);t.__esModule=!0,t["default"]=o;var a=n(19),i=s.interopRequireDefault(a),l=n(41),u=s.interopRequireDefault(l);e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e.nodeName&&e.nodeName.toLowerCase()}function o(e,t){var n,o={top:0,left:0};return"fixed"===m["default"](e,"position")?n=e.getBoundingClientRect():(t=t||u["default"](e),n=i["default"](e),"html"!==r(t)&&(o=i["default"](t)),o.top+=parseInt(m["default"](t,"borderTopWidth"),10)-d["default"](t)||0,o.left+=parseInt(m["default"](t,"borderLeftWidth"),10)-c["default"](t)||0),s._extends({},n,{top:n.top-o.top-(parseInt(m["default"](e,"marginTop"),10)||0),left:n.left-o.left-(parseInt(m["default"](e,"marginLeft"),10)||0)})}var s=n(22);t.__esModule=!0,t["default"]=o;var a=n(40),i=s.interopRequireDefault(a),l=n(181),u=s.interopRequireDefault(l),p=n(82),d=s.interopRequireDefault(p),f=n(183),c=s.interopRequireDefault(f),h=n(41),m=s.interopRequireDefault(h);e.exports=t["default"]},function(e,t,n){"use strict";var r=n(39);e.exports=function(e,t){var n=r(e);return void 0===t?n?"pageXOffset"in n?n.pageXOffset:n.document.documentElement.scrollLeft:e.scrollLeft:void(n?n.scrollTo(t,"pageYOffset"in n?n.pageYOffset:n.document.documentElement.scrollTop):e.scrollLeft=t)}},function(e,t,n){"use strict";var r=n(22),o=n(83),s=r.interopRequireDefault(o),a=/^(top|right|bottom|left)$/,i=/^([+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/i;e.exports=function(e){if(!e)throw new TypeError("No Element passed to `getComputedStyle()`");var t=e.ownerDocument;return"defaultView"in t?t.defaultView.opener?e.ownerDocument.defaultView.getComputedStyle(e,null):window.getComputedStyle(e,null):{getPropertyValue:function(t){var n=e.style;t=s["default"](t),"float"==t&&(t="styleFloat");var r=e.currentStyle[t]||null;if(null==r&&n&&n[t]&&(r=n[t]),i.test(r)&&!a.test(t)){var o=n.left,l=e.runtimeStyle,u=l&&l.left;u&&(l.left=e.currentStyle.left),n.left="fontSize"===t?"1em":r,r=n.pixelLeft+"px",n.left=o,u&&(l.left=u)}return r}}}},function(e,t){"use strict";e.exports=function(e,t){return"removeProperty"in e.style?e.style.removeProperty(t):e.style.removeAttribute(t)}},function(e,t,n){"use strict";function r(){var e,t="",n={O:"otransitionend",Moz:"transitionend",Webkit:"webkitTransitionEnd",ms:"MSTransitionEnd"},r=document.createElement("div");for(var o in n)if(u.call(n,o)&&void 0!==r.style[o+"TransitionProperty"]){t="-"+o.toLowerCase()+"-",e=n[o];break}return e||void 0===r.style.transitionProperty||(e="transitionend"),{end:e,prefix:t}}var o,s,a,i,l=n(20),u=Object.prototype.hasOwnProperty,p="transform",d={};l&&(d=r(),p=d.prefix+p,a=d.prefix+"transition-property",s=d.prefix+"transition-duration",i=d.prefix+"transition-delay",o=d.prefix+"transition-timing-function"),e.exports={transform:p,end:d.end,property:a,timing:o,delay:i,duration:s}},function(e,t){"use strict";var n=/-(.)/g;e.exports=function(e){return e.replace(n,function(e,t){return t.toUpperCase()})}},function(e,t){"use strict";var n=/([A-Z])/g;e.exports=function(e){return e.replace(n,"-$1").toLowerCase()}},function(e,t,n){"use strict";var r=n(188),o=/^ms-/;e.exports=function(e){return r(e).replace(o,"-ms-")}},function(e,t,n){"use strict";var r,o=n(20);e.exports=function(e){if((!r||e)&&o){var t=document.createElement("div");t.style.position="absolute",t.style.top="-9999px",t.style.width="50px",t.style.height="50px",t.style.overflow="scroll",document.body.appendChild(t),r=t.offsetWidth-t.clientWidth,document.body.removeChild(t)}return r}},function(e,t){function n(e){var t=e?e.length:0;return t?e[t-1]:void 0}e.exports=n},function(e,t,n){var r=n(200),o=n(218),s=o(r);e.exports=s},function(e,t,n){(function(t){function r(e){var t=e?e.length:0;for(this.data={hash:i(null),set:new a};t--;)this.push(e[t])}var o=n(214),s=n(30),a=s(t,"Set"),i=s(Object,"create");r.prototype.push=o,e.exports=r}).call(t,function(){return this}())},function(e,t){function n(e,t){for(var n=-1,r=e.length;++n<r&&t(e[n],n,e)!==!1;);return e}e.exports=n},function(e,t){function n(e,t){for(var n=-1,r=e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}e.exports=n},function(e,t){function n(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}e.exports=n},function(e,t){function n(e,t){for(var n=-1,r=e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}e.exports=n},function(e,t,n){function r(e,t,n){var r=typeof e;return"function"==r?void 0===t?e:a(e,t,n):null==e?i:"object"==r?o(e):void 0===t?l(e):s(e,t)}var o=n(208),s=n(209),a=n(43),i=n(100),l=n(229);e.exports=r},function(e,t,n){function r(e,t){var n=e?e.length:0,r=[];if(!n)return r;var l=-1,u=o,p=!0,d=p&&t.length>=i?a(t):null,f=t.length;d&&(u=s,p=!1,t=d);e:for(;++l<n;){var c=e[l];if(p&&c===c){for(var h=f;h--;)if(t[h]===c)continue e;r.push(c)}else u(t,c,0)<0&&r.push(c)}return r}var o=n(205),s=n(213),a=n(217),i=200;e.exports=r},function(e,t,n){var r=n(204),o=n(215),s=o(r);e.exports=s},function(e,t){function n(e,t,n,r){var o;return n(e,function(e,n,s){return t(e,n,s)?(o=r?n:e,!1):void 0}),o}e.exports=n},function(e,t){function n(e,t,n){for(var r=e.length,o=n?r:-1;n?o--:++o<r;)if(t(e[o],o,e))return o;return-1}e.exports=n},function(e,t,n){function r(e,t){return o(e,t,s)}var o=n(86),s=n(48);e.exports=r},function(e,t,n){function r(e,t){return o(e,t,s)}var o=n(86),s=n(47);e.exports=r},function(e,t,n){function r(e,t,n){if(t!==t)return o(e,n);for(var r=n-1,s=e.length;++r<s;)if(e[r]===t)return r;return-1}var o=n(223);e.exports=r},function(e,t,n){function r(e,t,n,r,c,v,y){var g=i(e),b=i(t),T=d,P=d;g||(T=m.call(e),T==p?T=f:T!=f&&(g=u(e))),b||(P=m.call(t),P==p?P=f:P!=f&&(b=u(t)));var x=T==f&&!l(e),E=P==f&&!l(t),C=T==P;if(C&&!g&&!x)return s(e,t,T);if(!c){var _=x&&h.call(e,"__wrapped__"),N=E&&h.call(t,"__wrapped__");if(_||N)return n(_?e.value():e,N?t.value():t,r,c,v,y)}if(!C)return!1;v||(v=[]),y||(y=[]);for(var O=v.length;O--;)if(v[O]==e)return y[O]==t;v.push(e),y.push(t);var w=(g?o:a)(e,t,n,r,c,v,y);return v.pop(),y.pop(),w}var o=n(219),s=n(220),a=n(221),i=n(15),l=n(91),u=n(226),p="[object Arguments]",d="[object Array]",f="[object Object]",c=Object.prototype,h=c.hasOwnProperty,m=c.toString;e.exports=r},function(e,t,n){function r(e,t,n){var r=t.length,a=r,i=!n;if(null==e)return!a;for(e=s(e);r--;){var l=t[r];if(i&&l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++r<a;){l=t[r];var u=l[0],p=e[u],d=l[1];if(i&&l[2]){if(void 0===p&&!(u in e))return!1}else{var f=n?n(p,d,u):void 0;if(!(void 0===f?o(d,p,n,!0):f))return!1}}return!0}var o=n(88),s=n(13);e.exports=r},function(e,t,n){function r(e){var t=s(e);if(1==t.length&&t[0][2]){var n=t[0][0],r=t[0][1];return function(e){return null==e?!1:(e=a(e),e[n]===r&&(void 0!==r||n in e))}}return function(e){return o(e,t)}}var o=n(207),s=n(222),a=n(13);e.exports=r},function(e,t,n){function r(e,t){var n=i(e),r=l(e)&&u(t),c=e+"";return e=f(e),function(i){if(null==i)return!1;var l=c;if(i=d(i),(n||!r)&&!(l in i)){if(i=1==e.length?i:o(i,a(e,0,-1)),null==i)return!1;l=p(e),i=d(i)}return i[l]===t?void 0!==t||l in i:s(t,i[l],void 0,!0)}}var o=n(87),s=n(88),a=n(211),i=n(15),l=n(93),u=n(94),p=n(191),d=n(13),f=n(97);e.exports=r},function(e,t,n){function r(e){var t=e+"";return e=s(e),function(n){return o(n,e,t)}}var o=n(87),s=n(97);e.exports=r},function(e,t){function n(e,t,n){var r=-1,o=e.length;t=null==t?0:+t||0,0>t&&(t=-t>o?0:o+t),n=void 0===n||n>o?o:+n||0,0>n&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var s=Array(o);++r<o;)s[r]=e[r+t];return s}e.exports=n},function(e,t){function n(e){return null==e?"":e+""}e.exports=n},function(e,t,n){function r(e,t){var n=e.data,r="string"==typeof t||o(t)?n.set.has(t):n.hash[t];return r?0:-1}var o=n(16);e.exports=r},function(e,t,n){function r(e){var t=this.data;"string"==typeof e||o(e)?t.set.add(e):t.hash[e]=!0}var o=n(16);e.exports=r},function(e,t,n){function r(e,t){return function(n,r){var i=n?o(n):0;if(!s(i))return e(n,r);for(var l=t?i:-1,u=a(n);(t?l--:++l<i)&&r(u[l],l,u)!==!1;);return n}}var o=n(90),s=n(21),a=n(13);e.exports=r},function(e,t,n){function r(e){return function(t,n,r){for(var s=o(t),a=r(t),i=a.length,l=e?i:-1;e?l--:++l<i;){var u=a[l];if(n(s[u],u,s)===!1)break}return t}}var o=n(13);e.exports=r},function(e,t,n){(function(t){function r(e){return i&&a?new o(e):null}var o=n(193),s=n(30),a=s(t,"Set"),i=s(Object,"create");e.exports=r}).call(t,function(){return this}())},function(e,t,n){function r(e,t){return function(n,r,l){if(r=o(r,l,3),i(n)){var u=a(n,r,t);return u>-1?n[u]:void 0}return s(n,r,e)}}var o=n(198),s=n(201),a=n(202),i=n(15);e.exports=r},function(e,t,n){function r(e,t,n,r,s,a,i){var l=-1,u=e.length,p=t.length;if(u!=p&&!(s&&p>u))return!1;for(;++l<u;){var d=e[l],f=t[l],c=r?r(s?f:d,s?d:f,l):void 0;if(void 0!==c){if(c)continue;return!1}if(s){if(!o(t,function(e){return d===e||n(d,e,r,s,a,i)}))return!1}else if(d!==f&&!n(d,f,r,s,a,i))return!1}return!0}var o=n(197);e.exports=r},function(e,t){function n(e,t,n){switch(n){case r:case o:return+e==+t;case s:return e.name==t.name&&e.message==t.message;case a:return e!=+e?t!=+t:e==+t;case i:case l:return e==t+""}return!1}var r="[object Boolean]",o="[object Date]",s="[object Error]",a="[object Number]",i="[object RegExp]",l="[object String]";e.exports=n},function(e,t,n){function r(e,t,n,r,s,i,l){var u=o(e),p=u.length,d=o(t),f=d.length;if(p!=f&&!s)return!1;for(var c=p;c--;){var h=u[c];if(!(s?h in t:a.call(t,h)))return!1}for(var m=s;++c<p;){h=u[c];var v=e[h],y=t[h],g=r?r(s?y:v,s?v:y,h):void 0;if(!(void 0===g?n(v,y,r,s,i,l):g))return!1;m||(m="constructor"==h)}if(!m){var b=e.constructor,T=t.constructor;if(b!=T&&"constructor"in e&&"constructor"in t&&!("function"==typeof b&&b instanceof b&&"function"==typeof T&&T instanceof T))return!1}return!0}var o=n(47),s=Object.prototype,a=s.hasOwnProperty;e.exports=r},function(e,t,n){function r(e){for(var t=s(e),n=t.length;n--;)t[n][2]=o(t[n][1]);return t}var o=n(94),s=n(227);e.exports=r},function(e,t){function n(e,t,n){for(var r=e.length,o=t+(n?0:-1);n?o--:++o<r;){var s=e[o];if(s!==s)return o}return-1}e.exports=n},function(e,t,n){function r(e){for(var t=u(e),n=t.length,r=n&&e.length,p=!!r&&i(r)&&(s(e)||o(e)||l(e)),f=-1,c=[];++f<n;){var h=t[f];(p&&a(h,r)||d.call(e,h))&&c.push(h)}return c}var o=n(45),s=n(15),a=n(92),i=n(21),l=n(46),u=n(48),p=Object.prototype,d=p.hasOwnProperty;e.exports=r},function(e,t,n){function r(e){return null==e?!1:o(e)?d.test(u.call(e)):a(e)&&(s(e)?d:i).test(e)}var o=n(98),s=n(91),a=n(17),i=/^\[object .+?Constructor\]$/,l=Object.prototype,u=Function.prototype.toString,p=l.hasOwnProperty,d=RegExp("^"+u.call(p).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"); -e.exports=r},function(e,t,n){function r(e){return s(e)&&o(e.length)&&!!S[M.call(e)]}var o=n(21),s=n(17),a="[object Arguments]",i="[object Array]",l="[object Boolean]",u="[object Date]",p="[object Error]",d="[object Function]",f="[object Map]",c="[object Number]",h="[object Object]",m="[object RegExp]",v="[object Set]",y="[object String]",g="[object WeakMap]",b="[object ArrayBuffer]",T="[object Float32Array]",P="[object Float64Array]",x="[object Int8Array]",E="[object Int16Array]",C="[object Int32Array]",_="[object Uint8Array]",N="[object Uint8ClampedArray]",O="[object Uint16Array]",w="[object Uint32Array]",S={};S[T]=S[P]=S[x]=S[E]=S[C]=S[_]=S[N]=S[O]=S[w]=!0,S[a]=S[i]=S[b]=S[l]=S[u]=S[p]=S[d]=S[f]=S[c]=S[h]=S[m]=S[v]=S[y]=S[g]=!1;var k=Object.prototype,M=k.toString;e.exports=r},function(e,t,n){function r(e){e=s(e);for(var t=-1,n=o(e),r=n.length,a=Array(r);++t<r;){var i=n[t];a[t]=[i,e[i]]}return a}var o=n(47),s=n(13);e.exports=r},function(e,t,n){var r=n(85),o=n(43),s=n(95),a=n(96),i=n(84),l=i(function(e,t){return null==e?{}:"function"==typeof t[0]?a(e,o(t[0],t[1],3)):s(e,r(t))});e.exports=l},function(e,t,n){function r(e){return a(e)?o(e):s(e)}var o=n(89),s=n(210),a=n(93);e.exports=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l=n(1),u=r(l),p=n(101),d=r(p),f=n(231),c=r(f),h=n(102),m=r(h),v=n(235),y=r(v),g=function(e){function t(n,r){s(this,t),e.call(this,n,r),this.state={exited:!n.show},this.onHiddenListener=this.handleHidden.bind(this)}return a(t,e),t.prototype.componentWillReceiveProps=function(e){e.show?this.setState({exited:!1}):e.transition||this.setState({exited:!0})},t.prototype.render=function(){var e=this.props,t=e.container,n=e.containerPadding,r=e.target,s=e.placement,a=e.rootClose,i=e.children,l=e.transition,p=o(e,["container","containerPadding","target","placement","rootClose","children","transition"]),f=p.show||l&&!this.state.exited;if(!f)return null;var h=i;if(h=u["default"].createElement(c["default"],{container:t,containerPadding:n,target:r,placement:s},h),l){var v=p.onExit,y=p.onExiting,g=p.onEnter,b=p.onEntering,T=p.onEntered;h=u["default"].createElement(l,{"in":p.show,transitionAppear:!0,onExit:v,onExiting:y,onExited:this.onHiddenListener,onEnter:g,onEntering:b,onEntered:T},h)}return a&&(h=u["default"].createElement(m["default"],{onRootClose:p.onHide},h)),u["default"].createElement(d["default"],{container:t},h)},t.prototype.handleHidden=function(){if(this.setState({exited:!0}),this.props.onExited){var e;(e=this.props).onExited.apply(e,arguments)}},t}(u["default"].Component);g.propTypes=i({},d["default"].propTypes,c["default"].propTypes,{show:u["default"].PropTypes.bool,rootClose:u["default"].PropTypes.bool,onHide:u["default"].PropTypes.func,transition:y["default"],onEnter:u["default"].PropTypes.func,onEntering:u["default"].PropTypes.func,onEntered:u["default"].PropTypes.func,onExit:u["default"].PropTypes.func,onExiting:u["default"].PropTypes.func,onExited:u["default"].PropTypes.func}),t["default"]=g,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l=n(1),u=r(l),p=n(10),d=r(p),f=n(4),c=r(f),h=n(31),m=r(h),v=n(104),y=r(v),g=n(234),b=n(106),T=r(b),P=function(e){function t(n,r){s(this,t),e.call(this,n,r),this.state={positionLeft:null,positionTop:null,arrowOffsetLeft:null,arrowOffsetTop:null},this._needsFlush=!1,this._lastTarget=null}return a(t,e),t.prototype.componentDidMount=function(){this.updatePosition()},t.prototype.componentWillReceiveProps=function(){this._needsFlush=!0},t.prototype.componentDidUpdate=function(e){this._needsFlush&&(this._needsFlush=!1,this.updatePosition(e.placement!==this.props.placement))},t.prototype.componentWillUnmount=function(){this._lastTarget=null},t.prototype.render=function(){var e=this.props,t=e.children,n=e.className,r=o(e,["children","className"]),s=this.state,a=s.positionLeft,p=s.positionTop,d=o(s,["positionLeft","positionTop"]),f=u["default"].Children.only(t);return l.cloneElement(f,i({},r,d,{positionLeft:a,positionTop:p,className:c["default"](n,f.props.className),style:i({},f.props.style,{left:a,top:p})}))},t.prototype.getTargetSafe=function(){if(!this.props.target)return null;var e=this.props.target(this.props);return e?e:null},t.prototype.updatePosition=function(e){var t=this.getTargetSafe();if(t!==this._lastTarget||e){if(this._lastTarget=t,!t)return void this.setState({positionLeft:null,positionTop:null,arrowOffsetLeft:null,arrowOffsetTop:null});var n=d["default"].findDOMNode(this),r=y["default"](this.props.container,m["default"](this).body);this.setState(g.calcOverlayPosition(this.props.placement,n,t,r,this.props.containerPadding))}},t}(u["default"].Component);P.propTypes={target:u["default"].PropTypes.func,container:T["default"],containerPadding:u["default"].PropTypes.number,placement:u["default"].PropTypes.oneOf(["top","right","bottom","left"])},P.displayName="Position",P.defaultProps={containerPadding:0,placement:"right"},t["default"]=P,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(81),s=r(o),a=n(179),i=r(a);t["default"]=function(e,t,n){return s["default"](e,t,n),{remove:function(){i["default"](e,t,n)}}},e.exports=t["default"]},function(e,t){"use strict";function n(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return t.filter(function(e){return null!=e}).reduce(function(e,t){if("function"!=typeof t)throw new Error("Invalid Argument Type, must only provide functions, undefined, or null.");return null===e?t:function(){for(var n=arguments.length,r=Array(n),o=0;n>o;o++)r[o]=arguments[o];e.apply(this,r),t.apply(this,r)}},null)}t.__esModule=!0,t["default"]=n,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,n,r){var o=h.getContainerDimensions(n),s=o.scroll,a=o.height,i=e-r-s,l=e+r-s+t;return 0>i?-i:l>a?a-l:0}function s(e,t,n,r){var o=h.getContainerDimensions(n),s=o.width,a=e-r,i=e+r+t;return 0>a?-a:i>s?s-i:0}t.__esModule=!0;var a=n(31),i=r(a),l=n(40),u=r(l),p=n(182),d=r(p),f=n(82),c=r(f),h={getContainerDimensions:function(e){var t=void 0,n=void 0,r=void 0;if("BODY"===e.tagName)t=window.innerWidth,n=window.innerHeight,r=c["default"](i["default"](e).documentElement)||c["default"](e);else{var o=u["default"](e);t=o.width,n=o.height,r=c["default"](e)}return{width:t,height:n,scroll:r}},getPosition:function(e,t){var n="BODY"===t.tagName?u["default"](e):d["default"](e,t);return n},calcOverlayPosition:function(e,t,n,r,a){var i=h.getPosition(n,r),l=u["default"](t),p=l.height,d=l.width,f=void 0,c=void 0,m=void 0,v=void 0;if("left"===e||"right"===e){c=i.top+(i.height-p)/2,f="left"===e?i.left-d:i.left+i.width;var y=o(c,p,r,a);c+=y,v=50*(1-2*y/p)+"%",m=void 0}else{if("top"!==e&&"bottom"!==e)throw new Error('calcOverlayPosition(): No such placement of "'+e+'" found.');f=i.left+(i.width-d)/2,c="top"===e?i.top-p:i.top+i.height;var g=s(f,d,r,a);f+=g,m=50*(1-2*g/d)+"%",v=void 0}return{positionLeft:f,positionTop:c,arrowOffsetLeft:m,arrowOffsetTop:v}}};t["default"]=h,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,n){var r=i.errMsg(e,t,n,". Expected an Element `type`");if("function"!=typeof e[t]){if(a["default"].isValidElement(e[t]))return new Error(r+", not an actual Element");if("string"!=typeof e[t])return new Error(r+" such as a tag name or return value of React.createClass(...)")}}t.__esModule=!0;var s=n(1),a=r(s),i=n(105);t["default"]=i.createChainableTypeChecker(o),e.exports=t["default"]},function(e,t,n){"use strict";function r(e){function t(t,n,r){var s=t[n];if(!e.hasOwnProperty(s)){var a=JSON.stringify(Object.keys(e));return new Error(o.errMsg(t,n,r,", expected one of "+a+"."))}}return o.createChainableTypeChecker(t)}t.__esModule=!0,t["default"]=r;var o=n(51);e.exports=t["default"]},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function o(e){return e&&e.__esModule?e:{"default":e}}function s(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){function n(n,r){function o(e,n){var o=d.getLinkName(e),s=this.props[r[e]];o&&a(this.props,o)&&!s&&(s=this.props[o].requestChange);for(var i=arguments.length,l=Array(i>2?i-2:0),u=2;i>u;u++)l[u-2]=arguments[u];t(this,e,s,n,l)}function a(e,t){return void 0!==e[t]}var l,p=arguments.length<=2||void 0===arguments[2]?[]:arguments[2],f=n.displayName||n.name||"Component",c=d.getType(n).propTypes;l=d.uncontrolledPropTypes(r,c,f),p=d.transform(p,function(e,t){e[t]=function(){var e;return(e=this.refs.inner)[t].apply(e,arguments)}},{});var h=u["default"].createClass(i({displayName:"Uncontrolled("+f+")",mixins:e,propTypes:l},p,{componentWillMount:function(){var e=this.props,t=Object.keys(r);this._values=d.transform(t,function(t,n){t[n]=e[d.defaultKey(n)]},{})},componentWillReceiveProps:function(e){var t=this,n=this.props,o=Object.keys(r);o.forEach(function(r){void 0===d.getValue(e,r)&&void 0!==d.getValue(n,r)&&(t._values[r]=e[d.defaultKey(r)])})},render:function(){var e=this,t={},l=this.props,p=(l.valueLink,l.checkedLink,s(l,["valueLink","checkedLink"]));return d.each(r,function(n,r){var s=d.getLinkName(r),i=e.props[r];s&&!a(e.props,r)&&a(e.props,s)&&(i=e.props[s].value),t[r]=void 0!==i?i:e._values[r],t[n]=o.bind(e,r)}),t=i({},p,t,{ref:"inner"}),u["default"].createElement(n,t)}}));return h.ControlledComponent=n,h}return n}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t["default"]=a;var l=n(1),u=o(l),p=n(240),d=r(p);e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,n,r,o){n&&(e._notifying=!0,n.call.apply(n,[e,r].concat(o)),e._notifying=!1),e._values[t]=r,e.forceUpdate()}t.__esModule=!0;var s=n(237),a=r(s),i={shouldComponentUpdate:function(){return!this._notifying}};t["default"]=a["default"]([i],o),e.exports=t["default"]},function(e,t,n){"use strict";var r=function(e,t,n,r,o,s,a,i){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,o,s,a,i],p=0;l=new Error("Invariant Violation: "+t.replace(/%s/g,function(){return u[p++]}))}throw l.framesToPop=1,l}};e.exports=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,n){return function(r,o){return void 0!==r[o]?r[e]?t&&t(r,o,n):new Error("You have provided a `"+o+"` prop to `"+n+"` without an `"+e+"` handler. This will render a read-only field. If the field should be mutable use `"+p(o)+"`. Otherwise, set `"+e+"`"):void 0}}function s(e,t,n){var r={};return r}function a(e){return 0===g[0]&&g[1]>=13?e:e.type}function i(e,t){var n=u(t);return n&&!l(e,t)&&l(e,n)?e[n].value:e[t]}function l(e,t){return void 0!==e[t]}function u(e){return"value"===e?"valueLink":"checked"===e?"checkedLink":null}function p(e){return"default"+e.charAt(0).toUpperCase()+e.substr(1)}function d(e,t,n){return function(){for(var r=arguments.length,o=Array(r),s=0;r>s;s++)o[s]=arguments[s];t&&t.call.apply(t,[e].concat(o)),n&&n.call.apply(n,[e].concat(o))}}function f(e,t,n){return c(e,t.bind(null,n=n||(Array.isArray(e)?[]:{}))),n}function c(e,t,n){if(Array.isArray(e))return e.forEach(t,n);for(var r in e)h(e,r)&&t.call(n,e[r],r,e)}function h(e,t){return e?Object.prototype.hasOwnProperty.call(e,t):!1}t.__esModule=!0,t.customPropType=o,t.uncontrolledPropTypes=s,t.getType=a,t.getValue=i,t.getLinkName=u,t.defaultKey=p,t.chain=d,t.transform=f,t.each=c,t.has=h;var m=n(1),v=r(m),y=n(239),g=(r(y),v["default"].version.split(".").map(parseFloat));t.version=g}])}); -//# sourceMappingURL=react-bootstrap.min.js.map
\ No newline at end of file diff --git a/web/static/js/react-bootstrap-0.28.1.js b/web/static/js/react-bootstrap-0.28.1.js new file mode 100644 index 000000000..bfc5c4285 --- /dev/null +++ b/web/static/js/react-bootstrap-0.28.1.js @@ -0,0 +1,16997 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(require("react"), require("react-dom")); + else if(typeof define === 'function' && define.amd) + define(["react", "react-dom"], factory); + else if(typeof exports === 'object') + exports["ReactBootstrap"] = factory(require("react"), require("react-dom")); + else + root["ReactBootstrap"] = factory(root["React"], root["ReactDOM"]); +})(this, function(__WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_63__) { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + var _interopRequireWildcard = __webpack_require__(2)['default']; + + exports.__esModule = true; + + var _utilsChildrenValueInputValidation = __webpack_require__(3); + + var _utilsChildrenValueInputValidation2 = _interopRequireDefault(_utilsChildrenValueInputValidation); + + var _utilsCreateChainedFunction = __webpack_require__(6); + + var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); + + var _utilsValidComponentChildren = __webpack_require__(7); + + var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _Accordion2 = __webpack_require__(34); + + var _Accordion3 = _interopRequireDefault(_Accordion2); + + exports.Accordion = _Accordion3['default']; + + var _Alert2 = __webpack_require__(38); + + var _Alert3 = _interopRequireDefault(_Alert2); + + exports.Alert = _Alert3['default']; + + var _Badge2 = __webpack_require__(39); + + var _Badge3 = _interopRequireDefault(_Badge2); + + exports.Badge = _Badge3['default']; + + var _Breadcrumb2 = __webpack_require__(40); + + var _Breadcrumb3 = _interopRequireDefault(_Breadcrumb2); + + exports.Breadcrumb = _Breadcrumb3['default']; + + var _BreadcrumbItem2 = __webpack_require__(41); + + var _BreadcrumbItem3 = _interopRequireDefault(_BreadcrumbItem2); + + exports.BreadcrumbItem = _BreadcrumbItem3['default']; + + var _Button2 = __webpack_require__(51); + + var _Button3 = _interopRequireDefault(_Button2); + + exports.Button = _Button3['default']; + + var _ButtonGroup2 = __webpack_require__(54); + + var _ButtonGroup3 = _interopRequireDefault(_ButtonGroup2); + + exports.ButtonGroup = _ButtonGroup3['default']; + + var _ButtonInput2 = __webpack_require__(56); + + var _ButtonInput3 = _interopRequireDefault(_ButtonInput2); + + exports.ButtonInput = _ButtonInput3['default']; + + var _ButtonToolbar2 = __webpack_require__(60); + + var _ButtonToolbar3 = _interopRequireDefault(_ButtonToolbar2); + + exports.ButtonToolbar = _ButtonToolbar3['default']; + + var _Carousel2 = __webpack_require__(61); + + var _Carousel3 = _interopRequireDefault(_Carousel2); + + exports.Carousel = _Carousel3['default']; + + var _CarouselItem2 = __webpack_require__(62); + + var _CarouselItem3 = _interopRequireDefault(_CarouselItem2); + + exports.CarouselItem = _CarouselItem3['default']; + + var _Col2 = __webpack_require__(65); + + var _Col3 = _interopRequireDefault(_Col2); + + exports.Col = _Col3['default']; + + var _CollapsibleNav2 = __webpack_require__(66); + + var _CollapsibleNav3 = _interopRequireDefault(_CollapsibleNav2); + + exports.CollapsibleNav = _CollapsibleNav3['default']; + + var _Dropdown2 = __webpack_require__(82); + + var _Dropdown3 = _interopRequireDefault(_Dropdown2); + + exports.Dropdown = _Dropdown3['default']; + + var _DropdownButton2 = __webpack_require__(168); + + var _DropdownButton3 = _interopRequireDefault(_DropdownButton2); + + exports.DropdownButton = _DropdownButton3['default']; + + var _Glyphicon2 = __webpack_require__(59); + + var _Glyphicon3 = _interopRequireDefault(_Glyphicon2); + + exports.Glyphicon = _Glyphicon3['default']; + + var _Grid2 = __webpack_require__(170); + + var _Grid3 = _interopRequireDefault(_Grid2); + + exports.Grid = _Grid3['default']; + + var _Image2 = __webpack_require__(171); + + var _Image3 = _interopRequireDefault(_Image2); + + exports.Image = _Image3['default']; + + var _Input2 = __webpack_require__(172); + + var _Input3 = _interopRequireDefault(_Input2); + + exports.Input = _Input3['default']; + + var _Interpolate2 = __webpack_require__(175); + + var _Interpolate3 = _interopRequireDefault(_Interpolate2); + + exports.Interpolate = _Interpolate3['default']; + + var _Jumbotron2 = __webpack_require__(176); + + var _Jumbotron3 = _interopRequireDefault(_Jumbotron2); + + exports.Jumbotron = _Jumbotron3['default']; + + var _Label2 = __webpack_require__(177); + + var _Label3 = _interopRequireDefault(_Label2); + + exports.Label = _Label3['default']; + + var _ListGroup2 = __webpack_require__(178); + + var _ListGroup3 = _interopRequireDefault(_ListGroup2); + + exports.ListGroup = _ListGroup3['default']; + + var _ListGroupItem2 = __webpack_require__(179); + + var _ListGroupItem3 = _interopRequireDefault(_ListGroupItem2); + + exports.ListGroupItem = _ListGroupItem3['default']; + + var _MenuItem2 = __webpack_require__(180); + + var _MenuItem3 = _interopRequireDefault(_MenuItem2); + + exports.MenuItem = _MenuItem3['default']; + + var _Modal2 = __webpack_require__(181); + + var _Modal3 = _interopRequireDefault(_Modal2); + + exports.Modal = _Modal3['default']; + + var _ModalBody2 = __webpack_require__(188); + + var _ModalBody3 = _interopRequireDefault(_ModalBody2); + + exports.ModalBody = _ModalBody3['default']; + + var _ModalFooter2 = __webpack_require__(191); + + var _ModalFooter3 = _interopRequireDefault(_ModalFooter2); + + exports.ModalFooter = _ModalFooter3['default']; + + var _ModalHeader2 = __webpack_require__(189); + + var _ModalHeader3 = _interopRequireDefault(_ModalHeader2); + + exports.ModalHeader = _ModalHeader3['default']; + + var _ModalTitle2 = __webpack_require__(190); + + var _ModalTitle3 = _interopRequireDefault(_ModalTitle2); + + exports.ModalTitle = _ModalTitle3['default']; + + var _Nav2 = __webpack_require__(207); + + var _Nav3 = _interopRequireDefault(_Nav2); + + exports.Nav = _Nav3['default']; + + var _Navbar2 = __webpack_require__(208); + + var _Navbar3 = _interopRequireDefault(_Navbar2); + + exports.Navbar = _Navbar3['default']; + + var _NavBrand2 = __webpack_require__(210); + + var _NavBrand3 = _interopRequireDefault(_NavBrand2); + + exports.NavBrand = _NavBrand3['default']; + + var _NavbarBrand2 = __webpack_require__(211); + + var _NavbarBrand3 = _interopRequireDefault(_NavbarBrand2); + + exports.NavbarBrand = _NavbarBrand3['default']; + + var _NavDropdown2 = __webpack_require__(215); + + var _NavDropdown3 = _interopRequireDefault(_NavDropdown2); + + exports.NavDropdown = _NavDropdown3['default']; + + var _NavItem2 = __webpack_require__(216); + + var _NavItem3 = _interopRequireDefault(_NavItem2); + + exports.NavItem = _NavItem3['default']; + + var _Overlay2 = __webpack_require__(217); + + var _Overlay3 = _interopRequireDefault(_Overlay2); + + exports.Overlay = _Overlay3['default']; + + var _OverlayTrigger2 = __webpack_require__(226); + + var _OverlayTrigger3 = _interopRequireDefault(_OverlayTrigger2); + + exports.OverlayTrigger = _OverlayTrigger3['default']; + + var _PageHeader2 = __webpack_require__(227); + + var _PageHeader3 = _interopRequireDefault(_PageHeader2); + + exports.PageHeader = _PageHeader3['default']; + + var _PageItem2 = __webpack_require__(228); + + var _PageItem3 = _interopRequireDefault(_PageItem2); + + exports.PageItem = _PageItem3['default']; + + var _Pager2 = __webpack_require__(229); + + var _Pager3 = _interopRequireDefault(_Pager2); + + exports.Pager = _Pager3['default']; + + var _Pagination2 = __webpack_require__(230); + + var _Pagination3 = _interopRequireDefault(_Pagination2); + + exports.Pagination = _Pagination3['default']; + + var _Panel2 = __webpack_require__(233); + + var _Panel3 = _interopRequireDefault(_Panel2); + + exports.Panel = _Panel3['default']; + + var _PanelGroup2 = __webpack_require__(35); + + var _PanelGroup3 = _interopRequireDefault(_PanelGroup2); + + exports.PanelGroup = _PanelGroup3['default']; + + var _Popover2 = __webpack_require__(234); + + var _Popover3 = _interopRequireDefault(_Popover2); + + exports.Popover = _Popover3['default']; + + var _ProgressBar2 = __webpack_require__(235); + + var _ProgressBar3 = _interopRequireDefault(_ProgressBar2); + + exports.ProgressBar = _ProgressBar3['default']; + + var _ResponsiveEmbed2 = __webpack_require__(236); + + var _ResponsiveEmbed3 = _interopRequireDefault(_ResponsiveEmbed2); + + exports.ResponsiveEmbed = _ResponsiveEmbed3['default']; + + var _Row2 = __webpack_require__(237); + + var _Row3 = _interopRequireDefault(_Row2); + + exports.Row = _Row3['default']; + + var _SafeAnchor2 = __webpack_require__(42); + + var _SafeAnchor3 = _interopRequireDefault(_SafeAnchor2); + + exports.SafeAnchor = _SafeAnchor3['default']; + + var _SplitButton3 = __webpack_require__(238); + + var _SplitButton4 = _interopRequireDefault(_SplitButton3); + + exports.SplitButton = _SplitButton4['default']; + + var _SplitButton5 = _interopRequireDefault(_SplitButton3); + + exports.SplitButton = _SplitButton5['default']; + + var _Tab2 = __webpack_require__(240); + + var _Tab3 = _interopRequireDefault(_Tab2); + + exports.Tab = _Tab3['default']; + + var _Table2 = __webpack_require__(241); + + var _Table3 = _interopRequireDefault(_Table2); + + exports.Table = _Table3['default']; + + var _Tabs2 = __webpack_require__(242); + + var _Tabs3 = _interopRequireDefault(_Tabs2); + + exports.Tabs = _Tabs3['default']; + + var _Thumbnail2 = __webpack_require__(243); + + var _Thumbnail3 = _interopRequireDefault(_Thumbnail2); + + exports.Thumbnail = _Thumbnail3['default']; + + var _Tooltip2 = __webpack_require__(244); + + var _Tooltip3 = _interopRequireDefault(_Tooltip2); + + exports.Tooltip = _Tooltip3['default']; + + var _Well2 = __webpack_require__(245); + + var _Well3 = _interopRequireDefault(_Well2); + + exports.Well = _Well3['default']; + + var _Collapse2 = __webpack_require__(67); + + var _Collapse3 = _interopRequireDefault(_Collapse2); + + exports.Collapse = _Collapse3['default']; + + var _Fade2 = __webpack_require__(186); + + var _Fade3 = _interopRequireDefault(_Fade2); + + exports.Fade = _Fade3['default']; + + var _FormControls2 = __webpack_require__(173); + + var _FormControls = _interopRequireWildcard(_FormControls2); + + exports.FormControls = _FormControls; + var utils = { + bootstrapUtils: _utilsBootstrapUtils2['default'], + childrenValueInputValidation: _utilsChildrenValueInputValidation2['default'], + createChainedFunction: _utilsCreateChainedFunction2['default'], + ValidComponentChildren: _utilsValidComponentChildren2['default'] + }; + exports.utils = utils; + +/***/ }, +/* 1 */ +/***/ function(module, exports) { + + "use strict"; + + exports["default"] = function (obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; + }; + + exports.__esModule = true; + +/***/ }, +/* 2 */ +/***/ function(module, exports) { + + "use strict"; + + exports["default"] = function (obj) { + if (obj && obj.__esModule) { + return obj; + } else { + var newObj = {}; + + if (obj != null) { + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; + } + } + + newObj["default"] = obj; + return newObj; + } + }; + + exports.__esModule = true; + +/***/ }, +/* 3 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + exports['default'] = valueValidation; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _reactPropTypesLibSinglePropFrom = __webpack_require__(5); + + var _reactPropTypesLibSinglePropFrom2 = _interopRequireDefault(_reactPropTypesLibSinglePropFrom); + + function valueValidation(props, propName, componentName) { + var error = _reactPropTypesLibSinglePropFrom2['default']('children', 'value')(props, propName, componentName); + + if (!error) { + error = _react2['default'].PropTypes.node(props, propName, componentName); + } + + return error; + } + + module.exports = exports['default']; + +/***/ }, +/* 4 */ +/***/ function(module, exports) { + + module.exports = __WEBPACK_EXTERNAL_MODULE_4__; + +/***/ }, +/* 5 */ +/***/ function(module, exports) { + + /** + * Checks if only one of the listed properties is in use. An error is given + * if multiple have a value + * + * @param props + * @param propName + * @param componentName + * @returns {Error|undefined} + */ + 'use strict'; + + exports.__esModule = true; + exports['default'] = createSinglePropFromChecker; + + function createSinglePropFromChecker() { + for (var _len = arguments.length, arrOfProps = Array(_len), _key = 0; _key < _len; _key++) { + arrOfProps[_key] = arguments[_key]; + } + + function validate(props, propName, componentName) { + var usedPropCount = arrOfProps.map(function (listedProp) { + return props[listedProp]; + }).reduce(function (acc, curr) { + return acc + (curr !== undefined ? 1 : 0); + }, 0); + + if (usedPropCount > 1) { + var first = arrOfProps[0]; + var others = arrOfProps.slice(1); + + var message = others.join(', ') + ' and ' + first; + return new Error('Invalid prop \'' + propName + '\', only one of the following ' + ('may be provided: ' + message)); + } + } + return validate; + } + + module.exports = exports['default']; + +/***/ }, +/* 6 */ +/***/ function(module, exports) { + + /** + * Safe chained function + * + * Will only create a new function if needed, + * otherwise will pass back existing functions or null. + * + * @param {function} functions to chain + * @returns {function|null} + */ + 'use strict'; + + exports.__esModule = true; + function createChainedFunction() { + for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) { + funcs[_key] = arguments[_key]; + } + + return funcs.filter(function (f) { + return f != null; + }).reduce(function (acc, f) { + if (typeof f !== 'function') { + throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.'); + } + + if (acc === null) { + return f; + } + + return function chainedFunction() { + for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + + acc.apply(this, args); + f.apply(this, args); + }; + }, null); + } + + exports['default'] = createChainedFunction; + module.exports = exports['default']; + +/***/ }, +/* 7 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + /** + * Maps children that are typically specified as `props.children`, + * but only iterates over children that are "valid components". + * + * The mapFunction provided index will be normalised to the components mapped, + * so an invalid component would not increase the index. + * + * @param {?*} children Children tree container. + * @param {function(*, int)} mapFunction. + * @param {*} mapContext Context for mapFunction. + * @return {object} Object containing the ordered map of results. + */ + function mapValidComponents(children, func, context) { + var index = 0; + + return _react2['default'].Children.map(children, function (child) { + if (_react2['default'].isValidElement(child)) { + var lastIndex = index; + index++; + return func.call(context, child, lastIndex); + } + + return child; + }); + } + + /** + * Iterates through children that are typically specified as `props.children`, + * but only iterates over children that are "valid components". + * + * The provided forEachFunc(child, index) will be called for each + * leaf child with the index reflecting the position relative to "valid components". + * + * @param {?*} children Children tree container. + * @param {function(*, int)} forEachFunc. + * @param {*} forEachContext Context for forEachContext. + */ + function forEachValidComponents(children, func, context) { + var index = 0; + + return _react2['default'].Children.forEach(children, function (child) { + if (_react2['default'].isValidElement(child)) { + func.call(context, child, index); + index++; + } + }); + } + + /** + * Count the number of "valid components" in the Children container. + * + * @param {?*} children Children tree container. + * @returns {number} + */ + function numberOfValidComponents(children) { + var count = 0; + + _react2['default'].Children.forEach(children, function (child) { + if (_react2['default'].isValidElement(child)) { + count++; + } + }); + + return count; + } + + /** + * Determine if the Child container has one or more "valid components". + * + * @param {?*} children Children tree container. + * @returns {boolean} + */ + function hasValidComponent(children) { + var hasValid = false; + + _react2['default'].Children.forEach(children, function (child) { + if (!hasValid && _react2['default'].isValidElement(child)) { + hasValid = true; + } + }); + + return hasValid; + } + + function find(children, finder) { + var child = undefined; + + forEachValidComponents(children, function (c, idx) { + if (!child && finder(c, idx, children)) { + child = c; + } + }); + + return child; + } + + /** + * Finds children that are typically specified as `props.children`, + * but only iterates over children that are "valid components". + * + * The provided forEachFunc(child, index) will be called for each + * leaf child with the index reflecting the position relative to "valid components". + * + * @param {?*} children Children tree container. + * @param {function(*, int)} findFunc. + * @param {*} findContext Context for findContext. + * @returns {array} of children that meet the findFunc return statement + */ + function findValidComponents(children, func, context) { + var index = 0; + var returnChildren = []; + + _react2['default'].Children.forEach(children, function (child) { + if (_react2['default'].isValidElement(child)) { + if (func.call(context, child, index)) { + returnChildren.push(child); + } + index++; + } + }); + + return returnChildren; + } + + exports['default'] = { + map: mapValidComponents, + forEach: forEachValidComponents, + numberOf: numberOfValidComponents, + find: find, + findValidComponents: findValidComponents, + hasValidComponent: hasValidComponent + }; + module.exports = exports['default']; + +/***/ }, +/* 8 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _styleMaps = __webpack_require__(25); + + var _styleMaps2 = _interopRequireDefault(_styleMaps); + + var _invariant = __webpack_require__(32); + + var _invariant2 = _interopRequireDefault(_invariant); + + var _warning = __webpack_require__(33); + + var _warning2 = _interopRequireDefault(_warning); + + function curry(fn) { + return function () { + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + var last = args[args.length - 1]; + if (typeof last === 'function') { + return fn.apply(undefined, args); + } + return function (Component) { + return fn.apply(undefined, args.concat([Component])); + }; + }; + } + + function prefix(props, variant) { + if (props === undefined) props = {}; + + !(props.bsClass || '').trim() ? true ? _invariant2['default'](false, 'A `bsClass` prop is required for this component') : _invariant2['default'](false) : undefined; + return props.bsClass + (variant ? '-' + variant : ''); + } + + var bsClass = curry(function (defaultClass, Component) { + var propTypes = Component.propTypes || (Component.propTypes = {}); + var defaultProps = Component.defaultProps || (Component.defaultProps = {}); + + propTypes.bsClass = _react.PropTypes.string; + defaultProps.bsClass = defaultClass; + + return Component; + }); + + exports.bsClass = bsClass; + var bsStyles = curry(function (styles, defaultStyle, Component) { + if (typeof defaultStyle !== 'string') { + Component = defaultStyle; + defaultStyle = undefined; + } + + var existing = Component.STYLES || []; + var propTypes = Component.propTypes || {}; + + styles.forEach(function (style) { + if (existing.indexOf(style) === -1) { + existing.push(style); + } + }); + + var propType = _react.PropTypes.oneOf(existing); + + // expose the values on the propType function for documentation + Component.STYLES = propType._values = existing; + + Component.propTypes = _extends({}, propTypes, { + bsStyle: propType + }); + + if (defaultStyle !== undefined) { + var defaultProps = Component.defaultProps || (Component.defaultProps = {}); + defaultProps.bsStyle = defaultStyle; + } + + return Component; + }); + + exports.bsStyles = bsStyles; + var bsSizes = curry(function (sizes, defaultSize, Component) { + if (typeof defaultSize !== 'string') { + Component = defaultSize; + defaultSize = undefined; + } + + var existing = Component.SIZES || []; + var propTypes = Component.propTypes || {}; + + sizes.forEach(function (size) { + if (existing.indexOf(size) === -1) { + existing.push(size); + } + }); + + var values = existing.reduce(function (result, size) { + if (_styleMaps2['default'].SIZES[size] && _styleMaps2['default'].SIZES[size] !== size) { + result.push(_styleMaps2['default'].SIZES[size]); + } + return result.concat(size); + }, []); + + var propType = _react.PropTypes.oneOf(values); + + propType._values = values; + + // expose the values on the propType function for documentation + Component.SIZES = existing; + + Component.propTypes = _extends({}, propTypes, { + bsSize: propType + }); + + if (defaultSize !== undefined) { + var defaultProps = Component.defaultProps || (Component.defaultProps = {}); + defaultProps.bsSize = defaultSize; + } + + return Component; + }); + + exports.bsSizes = bsSizes; + exports['default'] = { + + prefix: prefix, + + getClassSet: function getClassSet(props) { + var classes = {}; + var bsClassName = prefix(props); + + if (bsClassName) { + var bsSize = undefined; + + classes[bsClassName] = true; + + if (props.bsSize) { + bsSize = _styleMaps2['default'].SIZES[props.bsSize] || bsSize; + } + + if (bsSize) { + classes[prefix(props, bsSize)] = true; + } + + if (props.bsStyle) { + if (props.bsStyle.indexOf(prefix(props)) === 0) { + true ? _warning2['default'](false, // small migration convenience, since the old method required manual prefixing + 'bsStyle will automatically prefix custom values with the bsClass, so there is no ' + 'need to append it manually. (bsStyle: ' + props.bsStyle + ', bsClass: ' + prefix(props) + ')') : undefined; + classes[props.bsStyle] = true; + } else { + classes[prefix(props, props.bsStyle)] = true; + } + } + } + + return classes; + }, + + /** + * Add a style variant to a Component. Mutates the propTypes of the component + * in order to validate the new variant. + */ + addStyle: function addStyle(Component, styleVariant) { + bsStyles(styleVariant, Component); + } + }; + var _curry = curry; + exports._curry = _curry; + +/***/ }, +/* 9 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + + var _Object$assign = __webpack_require__(10)["default"]; + + exports["default"] = _Object$assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + exports.__esModule = true; + +/***/ }, +/* 10 */ +/***/ function(module, exports, __webpack_require__) { + + module.exports = { "default": __webpack_require__(11), __esModule: true }; + +/***/ }, +/* 11 */ +/***/ function(module, exports, __webpack_require__) { + + __webpack_require__(12); + module.exports = __webpack_require__(15).Object.assign; + +/***/ }, +/* 12 */ +/***/ function(module, exports, __webpack_require__) { + + // 19.1.3.1 Object.assign(target, source) + var $export = __webpack_require__(13); + + $export($export.S + $export.F, 'Object', {assign: __webpack_require__(18)}); + +/***/ }, +/* 13 */ +/***/ function(module, exports, __webpack_require__) { + + var global = __webpack_require__(14) + , core = __webpack_require__(15) + , ctx = __webpack_require__(16) + , PROTOTYPE = 'prototype'; + + var $export = function(type, name, source){ + var IS_FORCED = type & $export.F + , IS_GLOBAL = type & $export.G + , IS_STATIC = type & $export.S + , IS_PROTO = type & $export.P + , IS_BIND = type & $export.B + , IS_WRAP = type & $export.W + , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) + , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] + , key, own, out; + if(IS_GLOBAL)source = name; + for(key in source){ + // contains in native + own = !IS_FORCED && target && key in target; + if(own && key in exports)continue; + // export native or passed + out = own ? target[key] : source[key]; + // prevent global pollution for namespaces + exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] + // bind timers to global for call from export context + : IS_BIND && own ? ctx(out, global) + // wrap global constructors for prevent change them in library + : IS_WRAP && target[key] == out ? (function(C){ + var F = function(param){ + return this instanceof C ? new C(param) : C(param); + }; + F[PROTOTYPE] = C[PROTOTYPE]; + return F; + // make static versions for prototype methods + })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; + if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out; + } + }; + // type bitmap + $export.F = 1; // forced + $export.G = 2; // global + $export.S = 4; // static + $export.P = 8; // proto + $export.B = 16; // bind + $export.W = 32; // wrap + module.exports = $export; + +/***/ }, +/* 14 */ +/***/ function(module, exports) { + + // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 + var global = module.exports = typeof window != 'undefined' && window.Math == Math + ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); + if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef + +/***/ }, +/* 15 */ +/***/ function(module, exports) { + + var core = module.exports = {version: '1.2.6'}; + if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef + +/***/ }, +/* 16 */ +/***/ function(module, exports, __webpack_require__) { + + // optional / simple context binding + var aFunction = __webpack_require__(17); + module.exports = function(fn, that, length){ + aFunction(fn); + if(that === undefined)return fn; + switch(length){ + case 1: return function(a){ + return fn.call(that, a); + }; + case 2: return function(a, b){ + return fn.call(that, a, b); + }; + case 3: return function(a, b, c){ + return fn.call(that, a, b, c); + }; + } + return function(/* ...args */){ + return fn.apply(that, arguments); + }; + }; + +/***/ }, +/* 17 */ +/***/ function(module, exports) { + + module.exports = function(it){ + if(typeof it != 'function')throw TypeError(it + ' is not a function!'); + return it; + }; + +/***/ }, +/* 18 */ +/***/ function(module, exports, __webpack_require__) { + + // 19.1.2.1 Object.assign(target, source, ...) + var $ = __webpack_require__(19) + , toObject = __webpack_require__(20) + , IObject = __webpack_require__(22); + + // should work with symbols and should have deterministic property order (V8 bug) + module.exports = __webpack_require__(24)(function(){ + var a = Object.assign + , A = {} + , B = {} + , S = Symbol() + , K = 'abcdefghijklmnopqrst'; + A[S] = 7; + K.split('').forEach(function(k){ B[k] = k; }); + return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K; + }) ? function assign(target, source){ // eslint-disable-line no-unused-vars + var T = toObject(target) + , $$ = arguments + , $$len = $$.length + , index = 1 + , getKeys = $.getKeys + , getSymbols = $.getSymbols + , isEnum = $.isEnum; + while($$len > index){ + var S = IObject($$[index++]) + , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) + , length = keys.length + , j = 0 + , key; + while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; + } + return T; + } : Object.assign; + +/***/ }, +/* 19 */ +/***/ function(module, exports) { + + var $Object = Object; + module.exports = { + create: $Object.create, + getProto: $Object.getPrototypeOf, + isEnum: {}.propertyIsEnumerable, + getDesc: $Object.getOwnPropertyDescriptor, + setDesc: $Object.defineProperty, + setDescs: $Object.defineProperties, + getKeys: $Object.keys, + getNames: $Object.getOwnPropertyNames, + getSymbols: $Object.getOwnPropertySymbols, + each: [].forEach + }; + +/***/ }, +/* 20 */ +/***/ function(module, exports, __webpack_require__) { + + // 7.1.13 ToObject(argument) + var defined = __webpack_require__(21); + module.exports = function(it){ + return Object(defined(it)); + }; + +/***/ }, +/* 21 */ +/***/ function(module, exports) { + + // 7.2.1 RequireObjectCoercible(argument) + module.exports = function(it){ + if(it == undefined)throw TypeError("Can't call method on " + it); + return it; + }; + +/***/ }, +/* 22 */ +/***/ function(module, exports, __webpack_require__) { + + // fallback for non-array-like ES3 and non-enumerable old V8 strings + var cof = __webpack_require__(23); + module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ + return cof(it) == 'String' ? it.split('') : Object(it); + }; + +/***/ }, +/* 23 */ +/***/ function(module, exports) { + + var toString = {}.toString; + + module.exports = function(it){ + return toString.call(it).slice(8, -1); + }; + +/***/ }, +/* 24 */ +/***/ function(module, exports) { + + module.exports = function(exec){ + try { + return !!exec(); + } catch(e){ + return true; + } + }; + +/***/ }, +/* 25 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _Object$assign = __webpack_require__(10)['default']; + + var _Object$create = __webpack_require__(26)['default']; + + var _Object$keys = __webpack_require__(28)['default']; + + exports.__esModule = true; + + var constant = function constant(obj) { + return _Object$assign(_Object$create({ + values: function values() { + var _this = this; + + return _Object$keys(this).map(function (k) { + return _this[k]; + }); + } + }), obj); + }; + + var styleMaps = { + + SIZES: { + 'large': 'lg', + 'medium': 'md', + 'small': 'sm', + 'xsmall': 'xs', + 'lg': 'lg', + 'md': 'md', + 'sm': 'sm', + 'xs': 'xs' + }, + GRID_COLUMNS: 12 + }; + + var Sizes = constant({ + LARGE: 'large', + MEDIUM: 'medium', + SMALL: 'small', + XSMALL: 'xsmall' + }); + + exports.Sizes = Sizes; + var State = constant({ + SUCCESS: 'success', + WARNING: 'warning', + DANGER: 'danger', + INFO: 'info' + }); + + exports.State = State; + var DEFAULT = 'default'; + exports.DEFAULT = DEFAULT; + var PRIMARY = 'primary'; + exports.PRIMARY = PRIMARY; + var LINK = 'link'; + exports.LINK = LINK; + var INVERSE = 'inverse'; + + exports.INVERSE = INVERSE; + exports['default'] = styleMaps; + +/***/ }, +/* 26 */ +/***/ function(module, exports, __webpack_require__) { + + module.exports = { "default": __webpack_require__(27), __esModule: true }; + +/***/ }, +/* 27 */ +/***/ function(module, exports, __webpack_require__) { + + var $ = __webpack_require__(19); + module.exports = function create(P, D){ + return $.create(P, D); + }; + +/***/ }, +/* 28 */ +/***/ function(module, exports, __webpack_require__) { + + module.exports = { "default": __webpack_require__(29), __esModule: true }; + +/***/ }, +/* 29 */ +/***/ function(module, exports, __webpack_require__) { + + __webpack_require__(30); + module.exports = __webpack_require__(15).Object.keys; + +/***/ }, +/* 30 */ +/***/ function(module, exports, __webpack_require__) { + + // 19.1.2.14 Object.keys(O) + var toObject = __webpack_require__(20); + + __webpack_require__(31)('keys', function($keys){ + return function keys(it){ + return $keys(toObject(it)); + }; + }); + +/***/ }, +/* 31 */ +/***/ function(module, exports, __webpack_require__) { + + // most Object methods by ES6 should accept primitives + var $export = __webpack_require__(13) + , core = __webpack_require__(15) + , fails = __webpack_require__(24); + module.exports = function(KEY, exec){ + var fn = (core.Object || {})[KEY] || Object[KEY] + , exp = {}; + exp[KEY] = exec(fn); + $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp); + }; + +/***/ }, +/* 32 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule invariant + */ + + 'use strict'; + + /** + * Use invariant() to assert state which your program assumes to be true. + * + * Provide sprintf-style format (only %s is supported) and arguments + * to provide information about what broke and what you were + * expecting. + * + * The invariant message will be stripped in production, but the invariant + * will remain to ensure logic does not differ in production. + */ + + var invariant = function(condition, format, a, b, c, d, e, f) { + if (true) { + if (format === undefined) { + throw new Error('invariant requires an error message argument'); + } + } + + if (!condition) { + var error; + if (format === undefined) { + error = new Error( + 'Minified exception occurred; use the non-minified dev environment ' + + 'for the full error message and additional helpful warnings.' + ); + } else { + var args = [a, b, c, d, e, f]; + var argIndex = 0; + error = new Error( + 'Invariant Violation: ' + + format.replace(/%s/g, function() { return args[argIndex++]; }) + ); + } + + error.framesToPop = 1; // we don't care about invariant's own frame + throw error; + } + }; + + module.exports = invariant; + + +/***/ }, +/* 33 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + + 'use strict'; + + /** + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ + + var warning = function() {}; + + if (true) { + warning = function(condition, format, args) { + var len = arguments.length; + args = new Array(len > 2 ? len - 2 : 0); + for (var key = 2; key < len; key++) { + args[key - 2] = arguments[key]; + } + if (format === undefined) { + throw new Error( + '`warning(condition, format, ...args)` requires a warning ' + + 'message argument' + ); + } + + if (format.length < 10 || (/^[s\W]*$/).test(format)) { + throw new Error( + 'The warning format should be able to uniquely identify this ' + + 'warning. Please, use a more descriptive format than: ' + format + ); + } + + if (!condition) { + var argIndex = 0; + var message = 'Warning: ' + + format.replace(/%s/g, function() { + return args[argIndex++]; + }); + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch(x) {} + } + }; + } + + module.exports = warning; + + +/***/ }, +/* 34 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _PanelGroup = __webpack_require__(35); + + var _PanelGroup2 = _interopRequireDefault(_PanelGroup); + + var Accordion = _react2['default'].createClass({ + displayName: 'Accordion', + + render: function render() { + return _react2['default'].createElement( + _PanelGroup2['default'], + _extends({}, this.props, { accordion: true }), + this.props.children + ); + } + }); + + exports['default'] = Accordion; + module.exports = exports['default']; + +/***/ }, +/* 35 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _utilsValidComponentChildren = __webpack_require__(7); + + var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); + + var PanelGroup = _react2['default'].createClass({ + displayName: 'PanelGroup', + + propTypes: { + accordion: _react2['default'].PropTypes.bool, + activeKey: _react2['default'].PropTypes.any, + className: _react2['default'].PropTypes.string, + children: _react2['default'].PropTypes.node, + defaultActiveKey: _react2['default'].PropTypes.any, + onSelect: _react2['default'].PropTypes.func + }, + + getDefaultProps: function getDefaultProps() { + return { + accordion: false + }; + }, + + getInitialState: function getInitialState() { + var defaultActiveKey = this.props.defaultActiveKey; + + return { + activeKey: defaultActiveKey + }; + }, + + render: function render() { + var classes = _utilsBootstrapUtils2['default'].getClassSet(this.props); + var _props = this.props; + var className = _props.className; + + var props = _objectWithoutProperties(_props, ['className']); + + if (this.props.accordion) { + props.role = 'tablist'; + } + return _react2['default'].createElement( + 'div', + _extends({}, props, { className: _classnames2['default'](className, classes), onSelect: null }), + _utilsValidComponentChildren2['default'].map(props.children, this.renderPanel) + ); + }, + + renderPanel: function renderPanel(child, index) { + var activeKey = this.props.activeKey != null ? this.props.activeKey : this.state.activeKey; + + var props = { + bsStyle: child.props.bsStyle || this.props.bsStyle, + key: child.key ? child.key : index, + ref: child.ref + }; + + if (this.props.accordion) { + props.headerRole = 'tab'; + props.panelRole = 'tabpanel'; + props.collapsible = true; + props.expanded = child.props.eventKey === activeKey; + props.onSelect = this.handleSelect; + } + + return _react.cloneElement(child, props); + }, + + shouldComponentUpdate: function shouldComponentUpdate() { + // Defer any updates to this component during the `onSelect` handler. + return !this._isChanging; + }, + + handleSelect: function handleSelect(e, key) { + e.preventDefault(); + + if (this.props.onSelect) { + this._isChanging = true; + this.props.onSelect(key); + this._isChanging = false; + } + + if (this.state.activeKey === key) { + key = null; + } + + this.setState({ + activeKey: key + }); + } + }); + + exports['default'] = _utilsBootstrapUtils.bsClass('panel-group', PanelGroup); + module.exports = exports['default']; + +/***/ }, +/* 36 */ +/***/ function(module, exports) { + + "use strict"; + + exports["default"] = function (obj, keys) { + var target = {}; + + for (var i in obj) { + if (keys.indexOf(i) >= 0) continue; + if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; + target[i] = obj[i]; + } + + return target; + }; + + exports.__esModule = true; + +/***/ }, +/* 37 */ +/***/ function(module, exports, __webpack_require__) { + + var __WEBPACK_AMD_DEFINE_RESULT__;/*! + Copyright (c) 2015 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames + */ + /* global define */ + + (function () { + 'use strict'; + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = ''; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes += ' ' + arg; + } else if (Array.isArray(arg)) { + classes += ' ' + classNames.apply(null, arg); + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes += ' ' + key; + } + } + } + } + + return classes.substr(1); + } + + if (typeof module !== 'undefined' && module.exports) { + module.exports = classNames; + } else if (true) { + // register as 'classnames', consistent with npm package name + !(__WEBPACK_AMD_DEFINE_RESULT__ = function () { + return classNames; + }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else { + window.classNames = classNames; + } + }()); + + +/***/ }, +/* 38 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _styleMaps = __webpack_require__(25); + + var Alert = _react2['default'].createClass({ + displayName: 'Alert', + + propTypes: { + onDismiss: _react2['default'].PropTypes.func, + dismissAfter: _react2['default'].PropTypes.number, + closeLabel: _react2['default'].PropTypes.string + }, + + getDefaultProps: function getDefaultProps() { + return { + closeLabel: 'Close Alert' + }; + }, + + renderDismissButton: function renderDismissButton() { + return _react2['default'].createElement( + 'button', + { + type: 'button', + className: 'close', + onClick: this.props.onDismiss, + 'aria-hidden': 'true' }, + _react2['default'].createElement( + 'span', + null, + '×' + ) + ); + }, + + renderSrOnlyDismissButton: function renderSrOnlyDismissButton() { + return _react2['default'].createElement( + 'button', + { + type: 'button', + className: 'close sr-only', + onClick: this.props.onDismiss }, + this.props.closeLabel + ); + }, + + render: function render() { + var classes = _utilsBootstrapUtils2['default'].getClassSet(this.props); + var isDismissable = !!this.props.onDismiss; + + classes[_utilsBootstrapUtils2['default'].prefix(this.props, 'dismissable')] = isDismissable; + + return _react2['default'].createElement( + 'div', + _extends({}, this.props, { role: 'alert', className: _classnames2['default'](this.props.className, classes) }), + isDismissable ? this.renderDismissButton() : null, + this.props.children, + isDismissable ? this.renderSrOnlyDismissButton() : null + ); + }, + + componentDidMount: function componentDidMount() { + if (this.props.dismissAfter && this.props.onDismiss) { + this.dismissTimer = setTimeout(this.props.onDismiss, this.props.dismissAfter); + } + }, + + componentWillUnmount: function componentWillUnmount() { + clearTimeout(this.dismissTimer); + } + }); + + exports['default'] = _utilsBootstrapUtils.bsStyles(_styleMaps.State.values(), _styleMaps.State.INFO, _utilsBootstrapUtils.bsClass('alert', Alert)); + module.exports = exports['default']; + +/***/ }, +/* 39 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _utilsValidComponentChildren = __webpack_require__(7); + + var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var Badge = _react2['default'].createClass({ + displayName: 'Badge', + + propTypes: { + pullRight: _react2['default'].PropTypes.bool + }, + + getDefaultProps: function getDefaultProps() { + return { + pullRight: false, + bsClass: 'badge' + }; + }, + + hasContent: function hasContent() { + return _utilsValidComponentChildren2['default'].hasValidComponent(this.props.children) || _react2['default'].Children.count(this.props.children) > 1 || typeof this.props.children === 'string' || typeof this.props.children === 'number'; + }, + + render: function render() { + var _classes; + + var classes = (_classes = { + 'pull-right': this.props.pullRight + }, _classes[_utilsBootstrapUtils2['default'].prefix(this.props)] = this.hasContent(), _classes); + return _react2['default'].createElement( + 'span', + _extends({}, this.props, { + className: _classnames2['default'](this.props.className, classes) }), + this.props.children + ); + } + }); + + exports['default'] = Badge; + module.exports = exports['default']; + +/***/ }, +/* 40 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsValidComponentChildren = __webpack_require__(7); + + var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); + + var Breadcrumb = _react2['default'].createClass({ + displayName: 'Breadcrumb', + + propTypes: { + /** + * bootstrap className + * @private + */ + bsClass: _react2['default'].PropTypes.string + }, + + getDefaultProps: function getDefaultProps() { + return { + bsClass: 'breadcrumb' + }; + }, + + render: function render() { + var _props = this.props; + var className = _props.className; + + var props = _objectWithoutProperties(_props, ['className']); + + return _react2['default'].createElement( + 'ol', + _extends({}, props, { + role: 'navigation', + 'aria-label': 'breadcrumbs', + className: _classnames2['default'](className, this.props.bsClass) }), + _utilsValidComponentChildren2['default'].map(this.props.children, this.renderBreadcrumbItem) + ); + }, + + renderBreadcrumbItem: function renderBreadcrumbItem(child, index) { + return _react.cloneElement(child, { key: child.key ? child.key : index }); + } + }); + + exports['default'] = Breadcrumb; + module.exports = exports['default']; + +/***/ }, +/* 41 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _warning = __webpack_require__(33); + + var _warning2 = _interopRequireDefault(_warning); + + var _SafeAnchor = __webpack_require__(42); + + var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor); + + var BreadcrumbItem = _react2['default'].createClass({ + displayName: 'BreadcrumbItem', + + propTypes: { + /** + * If set to true, renders `span` instead of `a` + */ + active: _react2['default'].PropTypes.bool, + /** + * HTML id for the wrapper `li` element + */ + id: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]), + /** + * HTML id for the inner `a` element + */ + linkId: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]), + /** + * `href` attribute for the inner `a` element + */ + href: _react2['default'].PropTypes.string, + /** + * `title` attribute for the inner `a` element + */ + title: _react2['default'].PropTypes.node, + /** + * `target` attribute for the inner `a` element + */ + target: _react2['default'].PropTypes.string + }, + + getDefaultProps: function getDefaultProps() { + return { + active: false + }; + }, + + render: function render() { + var _props = this.props; + var active = _props.active; + var className = _props.className; + var id = _props.id; + var linkId = _props.linkId; + var children = _props.children; + var href = _props.href; + var title = _props.title; + var target = _props.target; + + var props = _objectWithoutProperties(_props, ['active', 'className', 'id', 'linkId', 'children', 'href', 'title', 'target']); + + true ? _warning2['default'](!(href && active), '[react-bootstrap] `href` and `active` properties cannot be set at the same time') : undefined; + + var linkProps = { + href: href, + title: title, + target: target, + id: linkId + }; + + return _react2['default'].createElement( + 'li', + { id: id, className: _classnames2['default'](className, { active: active }) }, + active ? _react2['default'].createElement( + 'span', + props, + children + ) : _react2['default'].createElement( + _SafeAnchor2['default'], + _extends({}, props, linkProps), + children + ) + ); + } + }); + + exports['default'] = BreadcrumbItem; + module.exports = exports['default']; + +/***/ }, +/* 42 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _utilsCreateChainedFunction = __webpack_require__(6); + + var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); + + /** + * Note: This is intended as a stop-gap for accessibility concerns that the + * Bootstrap CSS does not address as they have styled anchors and not buttons + * in many cases. + */ + + var SafeAnchor = (function (_React$Component) { + _inherits(SafeAnchor, _React$Component); + + function SafeAnchor(props) { + _classCallCheck(this, SafeAnchor); + + _React$Component.call(this, props); + + this.handleClick = this.handleClick.bind(this); + } + + SafeAnchor.prototype.handleClick = function handleClick(event) { + if (this.props.href === undefined) { + event.preventDefault(); + } + }; + + SafeAnchor.prototype.render = function render() { + return _react2['default'].createElement('a', _extends({ role: this.props.href ? undefined : 'button' + }, this.props, { + onClick: _utilsCreateChainedFunction2['default'](this.props.onClick, this.handleClick), + href: this.props.href || '' })); + }; + + return SafeAnchor; + })(_react2['default'].Component); + + exports['default'] = SafeAnchor; + + SafeAnchor.propTypes = { + href: _react2['default'].PropTypes.string, + onClick: _react2['default'].PropTypes.func + }; + module.exports = exports['default']; + +/***/ }, +/* 43 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + + var _Object$create = __webpack_require__(26)["default"]; + + var _Object$setPrototypeOf = __webpack_require__(44)["default"]; + + exports["default"] = function (subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); + } + + subClass.prototype = _Object$create(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) _Object$setPrototypeOf ? _Object$setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; + }; + + exports.__esModule = true; + +/***/ }, +/* 44 */ +/***/ function(module, exports, __webpack_require__) { + + module.exports = { "default": __webpack_require__(45), __esModule: true }; + +/***/ }, +/* 45 */ +/***/ function(module, exports, __webpack_require__) { + + __webpack_require__(46); + module.exports = __webpack_require__(15).Object.setPrototypeOf; + +/***/ }, +/* 46 */ +/***/ function(module, exports, __webpack_require__) { + + // 19.1.3.19 Object.setPrototypeOf(O, proto) + var $export = __webpack_require__(13); + $export($export.S, 'Object', {setPrototypeOf: __webpack_require__(47).set}); + +/***/ }, +/* 47 */ +/***/ function(module, exports, __webpack_require__) { + + // Works with __proto__ only. Old v8 can't work with null proto objects. + /* eslint-disable no-proto */ + var getDesc = __webpack_require__(19).getDesc + , isObject = __webpack_require__(48) + , anObject = __webpack_require__(49); + var check = function(O, proto){ + anObject(O); + if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!"); + }; + module.exports = { + set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line + function(test, buggy, set){ + try { + set = __webpack_require__(16)(Function.call, getDesc(Object.prototype, '__proto__').set, 2); + set(test, []); + buggy = !(test instanceof Array); + } catch(e){ buggy = true; } + return function setPrototypeOf(O, proto){ + check(O, proto); + if(buggy)O.__proto__ = proto; + else set(O, proto); + return O; + }; + }({}, false) : undefined), + check: check + }; + +/***/ }, +/* 48 */ +/***/ function(module, exports) { + + module.exports = function(it){ + return typeof it === 'object' ? it !== null : typeof it === 'function'; + }; + +/***/ }, +/* 49 */ +/***/ function(module, exports, __webpack_require__) { + + var isObject = __webpack_require__(48); + module.exports = function(it){ + if(!isObject(it))throw TypeError(it + ' is not an object!'); + return it; + }; + +/***/ }, +/* 50 */ +/***/ function(module, exports) { + + "use strict"; + + exports["default"] = function (instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + }; + + exports.__esModule = true; + +/***/ }, +/* 51 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _reactPropTypesLibElementType = __webpack_require__(52); + + var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _styleMaps = __webpack_require__(25); + + var types = ['button', 'reset', 'submit']; + + var ButtonStyles = _styleMaps.State.values().concat(_styleMaps.DEFAULT, _styleMaps.PRIMARY, _styleMaps.LINK); + + var Button = _react2['default'].createClass({ + displayName: 'Button', + + propTypes: { + active: _react2['default'].PropTypes.bool, + disabled: _react2['default'].PropTypes.bool, + block: _react2['default'].PropTypes.bool, + navItem: _react2['default'].PropTypes.bool, + navDropdown: _react2['default'].PropTypes.bool, + /** + * You can use a custom element for this component + */ + componentClass: _reactPropTypesLibElementType2['default'], + href: _react2['default'].PropTypes.string, + target: _react2['default'].PropTypes.string, + /** + * Defines HTML button type Attribute + * @type {("button"|"reset"|"submit")} + * @defaultValue 'button' + */ + type: _react2['default'].PropTypes.oneOf(types) + }, + + getDefaultProps: function getDefaultProps() { + return { + active: false, + block: false, + disabled: false, + navItem: false, + navDropdown: false + }; + }, + + render: function render() { + var _extends2; + + var classes = this.props.navDropdown ? {} : _utilsBootstrapUtils2['default'].getClassSet(this.props); + var renderFuncName = undefined; + + var blockClass = _utilsBootstrapUtils2['default'].prefix(this.props, 'block'); + + classes = _extends((_extends2 = { + active: this.props.active + }, _extends2[blockClass] = this.props.block, _extends2), classes); + + if (this.props.navItem) { + return this.renderNavItem(classes); + } + + renderFuncName = this.props.href || this.props.target || this.props.navDropdown ? 'renderAnchor' : 'renderButton'; + + return this[renderFuncName](classes); + }, + + renderAnchor: function renderAnchor(classes) { + var Component = this.props.componentClass || 'a'; + var href = this.props.href || '#'; + classes.disabled = this.props.disabled; + + return _react2['default'].createElement( + Component, + _extends({}, this.props, { + href: href, + className: _classnames2['default'](this.props.className, classes), + role: 'button' }), + this.props.children + ); + }, + + renderButton: function renderButton(classes) { + var Component = this.props.componentClass || 'button'; + + return _react2['default'].createElement( + Component, + _extends({}, this.props, { + type: this.props.type || 'button', + className: _classnames2['default'](this.props.className, classes) }), + this.props.children + ); + }, + + renderNavItem: function renderNavItem(classes) { + var liClasses = { + active: this.props.active + }; + + return _react2['default'].createElement( + 'li', + { className: _classnames2['default'](liClasses) }, + this.renderAnchor(classes) + ); + } + }); + + Button.types = types; + + exports['default'] = _utilsBootstrapUtils.bsStyles(ButtonStyles, _styleMaps.DEFAULT, _utilsBootstrapUtils.bsSizes([_styleMaps.Sizes.LARGE, _styleMaps.Sizes.SMALL, _styleMaps.Sizes.XSMALL], _utilsBootstrapUtils.bsClass('btn', Button))); + module.exports = exports['default']; + +/***/ }, +/* 52 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _common = __webpack_require__(53); + + /** + * Checks whether a prop provides a type of element. + * + * The type of element can be provided in two forms: + * - tag name (string) + * - a return value of React.createClass(...) + * + * @param props + * @param propName + * @param componentName + * @returns {Error|undefined} + */ + + function validate(props, propName, componentName) { + var errBeginning = _common.errMsg(props, propName, componentName, '. Expected an Element `type`'); + + if (typeof props[propName] !== 'function') { + if (_react2['default'].isValidElement(props[propName])) { + return new Error(errBeginning + ', not an actual Element'); + } + + if (typeof props[propName] !== 'string') { + return new Error(errBeginning + ' such as a tag name or return value of React.createClass(...)'); + } + } + } + + exports['default'] = _common.createChainableTypeChecker(validate); + module.exports = exports['default']; + +/***/ }, +/* 53 */ +/***/ function(module, exports) { + + 'use strict'; + + exports.__esModule = true; + exports.errMsg = errMsg; + exports.createChainableTypeChecker = createChainableTypeChecker; + + function errMsg(props, propName, componentName, msgContinuation) { + return 'Invalid prop \'' + propName + '\' of value \'' + props[propName] + '\'' + (' supplied to \'' + componentName + '\'' + msgContinuation); + } + + /** + * Create chain-able isRequired validator + * + * Largely copied directly from: + * https://github.com/facebook/react/blob/0.11-stable/src/core/ReactPropTypes.js#L94 + */ + + function createChainableTypeChecker(validate) { + function checkType(isRequired, props, propName, componentName) { + componentName = componentName || '<<anonymous>>'; + if (props[propName] == null) { + if (isRequired) { + return new Error('Required prop \'' + propName + '\' was not specified in \'' + componentName + '\'.'); + } + } else { + return validate(props, propName, componentName); + } + } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + + return chainedCheckType; + } + +/***/ }, +/* 54 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _reactPropTypesLibAll = __webpack_require__(55); + + var _reactPropTypesLibAll2 = _interopRequireDefault(_reactPropTypesLibAll); + + var _Button = __webpack_require__(51); + + var _Button2 = _interopRequireDefault(_Button); + + var ButtonGroup = _react2['default'].createClass({ + displayName: 'ButtonGroup', + + propTypes: { + vertical: _react2['default'].PropTypes.bool, + justified: _react2['default'].PropTypes.bool, + /** + * Display block buttons, only useful when used with the "vertical" prop. + * @type {bool} + */ + block: _reactPropTypesLibAll2['default'](_react2['default'].PropTypes.bool, function (props) { + if (props.block && !props.vertical) { + return new Error('The block property requires the vertical property to be set to have any effect'); + } + }) + }, + + getDefaultProps: function getDefaultProps() { + return { + block: false, + justified: false, + vertical: false + }; + }, + + render: function render() { + var classes = _utilsBootstrapUtils2['default'].getClassSet(this.props); + + classes[_utilsBootstrapUtils2['default'].prefix(this.props)] = !this.props.vertical; + classes[_utilsBootstrapUtils2['default'].prefix(this.props, 'vertical')] = this.props.vertical; + classes[_utilsBootstrapUtils2['default'].prefix(this.props, 'justified')] = this.props.justified; + + // this is annoying, since the class is `btn-block` not `btn-group-block` + classes[_utilsBootstrapUtils2['default'].prefix(_Button2['default'].defaultProps, 'block')] = this.props.block; + + return _react2['default'].createElement( + 'div', + _extends({}, this.props, { + className: _classnames2['default'](this.props.className, classes) }), + this.props.children + ); + } + }); + + exports['default'] = _utilsBootstrapUtils.bsClass('btn-group', ButtonGroup); + module.exports = exports['default']; + +/***/ }, +/* 55 */ +/***/ function(module, exports) { + + 'use strict'; + + exports.__esModule = true; + exports['default'] = all; + + function all() { + for (var _len = arguments.length, propTypes = Array(_len), _key = 0; _key < _len; _key++) { + propTypes[_key] = arguments[_key]; + } + + if (propTypes === undefined) { + throw new Error('No validations provided'); + } + + if (propTypes.some(function (propType) { + return typeof propType !== 'function'; + })) { + throw new Error('Invalid arguments, must be functions'); + } + + if (propTypes.length === 0) { + throw new Error('No validations provided'); + } + + return function validate(props, propName, componentName) { + for (var i = 0; i < propTypes.length; i++) { + var result = propTypes[i](props, propName, componentName); + + if (result !== undefined && result !== null) { + return result; + } + } + }; + } + + module.exports = exports['default']; + +/***/ }, +/* 56 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _Button = __webpack_require__(51); + + var _Button2 = _interopRequireDefault(_Button); + + var _FormGroup = __webpack_require__(57); + + var _FormGroup2 = _interopRequireDefault(_FormGroup); + + var _InputBase2 = __webpack_require__(58); + + var _InputBase3 = _interopRequireDefault(_InputBase2); + + var _utilsChildrenValueInputValidation = __webpack_require__(3); + + var _utilsChildrenValueInputValidation2 = _interopRequireDefault(_utilsChildrenValueInputValidation); + + var ButtonInput = (function (_InputBase) { + _inherits(ButtonInput, _InputBase); + + function ButtonInput() { + _classCallCheck(this, ButtonInput); + + _InputBase.apply(this, arguments); + } + + ButtonInput.prototype.renderFormGroup = function renderFormGroup(children) { + var _props = this.props; + var bsStyle = _props.bsStyle; + var value = _props.value; + + var other = _objectWithoutProperties(_props, ['bsStyle', 'value']); + + return _react2['default'].createElement( + _FormGroup2['default'], + other, + children + ); + }; + + ButtonInput.prototype.renderInput = function renderInput() { + var _props2 = this.props; + var children = _props2.children; + var value = _props2.value; + + var other = _objectWithoutProperties(_props2, ['children', 'value']); + + var val = children ? children : value; + return _react2['default'].createElement(_Button2['default'], _extends({}, other, { componentClass: 'input', ref: 'input', key: 'input', value: val })); + }; + + return ButtonInput; + })(_InputBase3['default']); + + ButtonInput.types = _Button2['default'].types; + + ButtonInput.defaultProps = { + type: 'button' + }; + + ButtonInput.propTypes = { + type: _react2['default'].PropTypes.oneOf(ButtonInput.types), + bsStyle: function bsStyle() { + // defer to Button propTypes of bsStyle + return null; + }, + children: _utilsChildrenValueInputValidation2['default'], + value: _utilsChildrenValueInputValidation2['default'] + }; + + exports['default'] = ButtonInput; + module.exports = exports['default']; + +/***/ }, +/* 57 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var FormGroup = (function (_React$Component) { + _inherits(FormGroup, _React$Component); + + function FormGroup() { + _classCallCheck(this, FormGroup); + + _React$Component.apply(this, arguments); + } + + FormGroup.prototype.render = function render() { + var classes = { + 'form-group': !this.props.standalone, + 'form-group-lg': !this.props.standalone && this.props.bsSize === 'large', + 'form-group-sm': !this.props.standalone && this.props.bsSize === 'small', + 'has-feedback': this.props.hasFeedback, + 'has-success': this.props.bsStyle === 'success', + 'has-warning': this.props.bsStyle === 'warning', + 'has-error': this.props.bsStyle === 'error' + }; + + return _react2['default'].createElement( + 'div', + { className: _classnames2['default'](classes, this.props.groupClassName) }, + this.props.children + ); + }; + + return FormGroup; + })(_react2['default'].Component); + + FormGroup.defaultProps = { + hasFeedback: false, + standalone: false + }; + + FormGroup.propTypes = { + standalone: _react2['default'].PropTypes.bool, + hasFeedback: _react2['default'].PropTypes.bool, + bsSize: function bsSize(props) { + if (props.standalone && props.bsSize !== undefined) { + return new Error('bsSize will not be used when `standalone` is set.'); + } + + return _react2['default'].PropTypes.oneOf(['small', 'medium', 'large']).apply(null, arguments); + }, + bsStyle: _react2['default'].PropTypes.oneOf(['success', 'warning', 'error']), + groupClassName: _react2['default'].PropTypes.string + }; + + exports['default'] = FormGroup; + module.exports = exports['default']; + +/***/ }, +/* 58 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _FormGroup = __webpack_require__(57); + + var _FormGroup2 = _interopRequireDefault(_FormGroup); + + var _Glyphicon = __webpack_require__(59); + + var _Glyphicon2 = _interopRequireDefault(_Glyphicon); + + var InputBase = (function (_React$Component) { + _inherits(InputBase, _React$Component); + + function InputBase() { + _classCallCheck(this, InputBase); + + _React$Component.apply(this, arguments); + } + + InputBase.prototype.getInputDOMNode = function getInputDOMNode() { + return this.refs.input; + }; + + InputBase.prototype.getValue = function getValue() { + if (this.props.type === 'static') { + return this.props.value; + } else if (this.props.type) { + if (this.props.type === 'select' && this.props.multiple) { + return this.getSelectedOptions(); + } + return this.getInputDOMNode().value; + } + throw new Error('Cannot use getValue without specifying input type.'); + }; + + InputBase.prototype.getChecked = function getChecked() { + return this.getInputDOMNode().checked; + }; + + InputBase.prototype.getSelectedOptions = function getSelectedOptions() { + var values = []; + + Array.prototype.forEach.call(this.getInputDOMNode().getElementsByTagName('option'), function (option) { + if (option.selected) { + var value = option.getAttribute('value') || option.innerHtml; + values.push(value); + } + }); + + return values; + }; + + InputBase.prototype.isCheckboxOrRadio = function isCheckboxOrRadio() { + return this.props.type === 'checkbox' || this.props.type === 'radio'; + }; + + InputBase.prototype.isFile = function isFile() { + return this.props.type === 'file'; + }; + + InputBase.prototype.renderInputGroup = function renderInputGroup(children) { + var addonBefore = this.props.addonBefore ? _react2['default'].createElement( + 'span', + { className: 'input-group-addon', key: 'addonBefore' }, + this.props.addonBefore + ) : null; + + var addonAfter = this.props.addonAfter ? _react2['default'].createElement( + 'span', + { className: 'input-group-addon', key: 'addonAfter' }, + this.props.addonAfter + ) : null; + + var buttonBefore = this.props.buttonBefore ? _react2['default'].createElement( + 'span', + { className: 'input-group-btn' }, + this.props.buttonBefore + ) : null; + + var buttonAfter = this.props.buttonAfter ? _react2['default'].createElement( + 'span', + { className: 'input-group-btn' }, + this.props.buttonAfter + ) : null; + + var inputGroupClassName = undefined; + switch (this.props.bsSize) { + case 'small': + inputGroupClassName = 'input-group-sm';break; + case 'large': + inputGroupClassName = 'input-group-lg';break; + default: + } + + return addonBefore || addonAfter || buttonBefore || buttonAfter ? _react2['default'].createElement( + 'div', + { className: _classnames2['default'](inputGroupClassName, 'input-group'), key: 'input-group' }, + addonBefore, + buttonBefore, + children, + addonAfter, + buttonAfter + ) : children; + }; + + InputBase.prototype.renderIcon = function renderIcon() { + if (this.props.hasFeedback) { + if (this.props.feedbackIcon) { + return _react2['default'].cloneElement(this.props.feedbackIcon, { formControlFeedback: true }); + } + + switch (this.props.bsStyle) { + case 'success': + return _react2['default'].createElement(_Glyphicon2['default'], { formControlFeedback: true, glyph: 'ok', key: 'icon' }); + case 'warning': + return _react2['default'].createElement(_Glyphicon2['default'], { formControlFeedback: true, glyph: 'warning-sign', key: 'icon' }); + case 'error': + return _react2['default'].createElement(_Glyphicon2['default'], { formControlFeedback: true, glyph: 'remove', key: 'icon' }); + default: + return _react2['default'].createElement('span', { className: 'form-control-feedback', key: 'icon' }); + } + } else { + return null; + } + }; + + InputBase.prototype.renderHelp = function renderHelp() { + return this.props.help ? _react2['default'].createElement( + 'span', + { className: 'help-block', key: 'help' }, + this.props.help + ) : null; + }; + + InputBase.prototype.renderCheckboxAndRadioWrapper = function renderCheckboxAndRadioWrapper(children) { + var classes = { + 'checkbox': this.props.type === 'checkbox', + 'radio': this.props.type === 'radio' + }; + + return _react2['default'].createElement( + 'div', + { className: _classnames2['default'](classes), key: 'checkboxRadioWrapper' }, + children + ); + }; + + InputBase.prototype.renderWrapper = function renderWrapper(children) { + return this.props.wrapperClassName ? _react2['default'].createElement( + 'div', + { className: this.props.wrapperClassName, key: 'wrapper' }, + children + ) : children; + }; + + InputBase.prototype.renderLabel = function renderLabel(children) { + var classes = { + 'control-label': !this.isCheckboxOrRadio() + }; + classes[this.props.labelClassName] = this.props.labelClassName; + + return this.props.label ? _react2['default'].createElement( + 'label', + { htmlFor: this.props.id, className: _classnames2['default'](classes), key: 'label' }, + children, + this.props.label + ) : children; + }; + + InputBase.prototype.renderInput = function renderInput() { + if (!this.props.type) { + return this.props.children; + } + + switch (this.props.type) { + case 'select': + return _react2['default'].createElement( + 'select', + _extends({}, this.props, { className: _classnames2['default'](this.props.className, 'form-control'), ref: 'input', key: 'input' }), + this.props.children + ); + case 'textarea': + return _react2['default'].createElement('textarea', _extends({}, this.props, { className: _classnames2['default'](this.props.className, 'form-control'), ref: 'input', key: 'input' })); + case 'static': + return _react2['default'].createElement( + 'p', + _extends({}, this.props, { className: _classnames2['default'](this.props.className, 'form-control-static'), ref: 'input', key: 'input' }), + this.props.value + ); + default: + var className = this.isCheckboxOrRadio() || this.isFile() ? '' : 'form-control'; + return _react2['default'].createElement('input', _extends({}, this.props, { className: _classnames2['default'](this.props.className, className), ref: 'input', key: 'input' })); + } + }; + + InputBase.prototype.renderFormGroup = function renderFormGroup(children) { + return _react2['default'].createElement( + _FormGroup2['default'], + this.props, + children + ); + }; + + InputBase.prototype.renderChildren = function renderChildren() { + return !this.isCheckboxOrRadio() ? [this.renderLabel(), this.renderWrapper([this.renderInputGroup(this.renderInput()), this.renderIcon(), this.renderHelp()])] : this.renderWrapper([this.renderCheckboxAndRadioWrapper(this.renderLabel(this.renderInput())), this.renderHelp()]); + }; + + InputBase.prototype.render = function render() { + var children = this.renderChildren(); + return this.renderFormGroup(children); + }; + + return InputBase; + })(_react2['default'].Component); + + InputBase.propTypes = { + type: _react2['default'].PropTypes.string, + label: _react2['default'].PropTypes.node, + help: _react2['default'].PropTypes.node, + addonBefore: _react2['default'].PropTypes.node, + addonAfter: _react2['default'].PropTypes.node, + buttonBefore: _react2['default'].PropTypes.node, + buttonAfter: _react2['default'].PropTypes.node, + bsSize: _react2['default'].PropTypes.oneOf(['small', 'medium', 'large']), + bsStyle: _react2['default'].PropTypes.oneOf(['success', 'warning', 'error']), + hasFeedback: _react2['default'].PropTypes.bool, + feedbackIcon: _react2['default'].PropTypes.node, + id: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]), + groupClassName: _react2['default'].PropTypes.string, + wrapperClassName: _react2['default'].PropTypes.string, + labelClassName: _react2['default'].PropTypes.string, + multiple: _react2['default'].PropTypes.bool, + disabled: _react2['default'].PropTypes.bool, + value: _react2['default'].PropTypes.any + }; + + InputBase.defaultProps = { + disabled: false, + hasFeedback: false, + multiple: false + }; + + exports['default'] = InputBase; + module.exports = exports['default']; + +/***/ }, +/* 59 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var Glyphicon = _react2['default'].createClass({ + displayName: 'Glyphicon', + + propTypes: { + /** + * bootstrap className + * @private + */ + bsClass: _react2['default'].PropTypes.string, + /** + * An icon name. See e.g. http://getbootstrap.com/components/#glyphicons + */ + glyph: _react2['default'].PropTypes.string.isRequired, + /** + * Adds 'form-control-feedback' class + * @private + */ + formControlFeedback: _react2['default'].PropTypes.bool + }, + + getDefaultProps: function getDefaultProps() { + return { + bsClass: 'glyphicon', + formControlFeedback: false + }; + }, + + render: function render() { + var _classNames; + + var className = _classnames2['default'](this.props.className, (_classNames = {}, _classNames[this.props.bsClass] = true, _classNames['glyphicon-' + this.props.glyph] = true, _classNames['form-control-feedback'] = this.props.formControlFeedback, _classNames)); + + return _react2['default'].createElement( + 'span', + _extends({}, this.props, { className: className }), + this.props.children + ); + } + }); + + exports['default'] = Glyphicon; + module.exports = exports['default']; + +/***/ }, +/* 60 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _Button = __webpack_require__(51); + + var _Button2 = _interopRequireDefault(_Button); + + var ButtonToolbar = _react2['default'].createClass({ + displayName: 'ButtonToolbar', + + propTypes: { + bsSize: _Button2['default'].propTypes.bsSize + }, + + getDefaultProps: function getDefaultProps() { + return { + bsClass: 'btn-toolbar' + }; + }, + + render: function render() { + var classes = _utilsBootstrapUtils2['default'].getClassSet(this.props); + + return _react2['default'].createElement( + 'div', + _extends({}, this.props, { + role: 'toolbar', + className: _classnames2['default'](this.props.className, classes) }), + this.props.children + ); + } + }); + + exports['default'] = ButtonToolbar; + module.exports = exports['default']; + +/***/ }, +/* 61 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsValidComponentChildren = __webpack_require__(7); + + var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); + + var _Glyphicon = __webpack_require__(59); + + var _Glyphicon2 = _interopRequireDefault(_Glyphicon); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var Carousel = _react2['default'].createClass({ + displayName: 'Carousel', + + propTypes: { + slide: _react2['default'].PropTypes.bool, + indicators: _react2['default'].PropTypes.bool, + interval: _react2['default'].PropTypes.number, + controls: _react2['default'].PropTypes.bool, + pauseOnHover: _react2['default'].PropTypes.bool, + wrap: _react2['default'].PropTypes.bool, + onSelect: _react2['default'].PropTypes.func, + onSlideEnd: _react2['default'].PropTypes.func, + activeIndex: _react2['default'].PropTypes.number, + defaultActiveIndex: _react2['default'].PropTypes.number, + direction: _react2['default'].PropTypes.oneOf(['prev', 'next']), + prevIcon: _react2['default'].PropTypes.node, + nextIcon: _react2['default'].PropTypes.node + }, + + getDefaultProps: function getDefaultProps() { + return { + bsClass: 'carousel', + slide: true, + interval: 5000, + pauseOnHover: true, + wrap: true, + indicators: true, + controls: true, + prevIcon: _react2['default'].createElement(_Glyphicon2['default'], { glyph: 'chevron-left' }), + nextIcon: _react2['default'].createElement(_Glyphicon2['default'], { glyph: 'chevron-right' }) + }; + }, + + getInitialState: function getInitialState() { + return { + activeIndex: this.props.defaultActiveIndex == null ? 0 : this.props.defaultActiveIndex, + previousActiveIndex: null, + direction: null + }; + }, + + getDirection: function getDirection(prevIndex, index) { + if (prevIndex === index) { + return null; + } + + return prevIndex > index ? 'prev' : 'next'; + }, + + componentWillReceiveProps: function componentWillReceiveProps(nextProps) { + var activeIndex = this.getActiveIndex(); + + if (nextProps.activeIndex != null && nextProps.activeIndex !== activeIndex) { + clearTimeout(this.timeout); + this.setState({ + previousActiveIndex: activeIndex, + direction: nextProps.direction != null ? nextProps.direction : this.getDirection(activeIndex, nextProps.activeIndex) + }); + } + }, + + componentDidMount: function componentDidMount() { + this.waitForNext(); + }, + + componentWillUnmount: function componentWillUnmount() { + clearTimeout(this.timeout); + }, + + next: function next(e) { + if (e) { + e.preventDefault(); + } + + var index = this.getActiveIndex() + 1; + var count = _utilsValidComponentChildren2['default'].numberOf(this.props.children); + + if (index > count - 1) { + if (!this.props.wrap) { + return; + } + index = 0; + } + + this.handleSelect(index, 'next'); + }, + + prev: function prev(e) { + if (e) { + e.preventDefault(); + } + + var index = this.getActiveIndex() - 1; + + if (index < 0) { + if (!this.props.wrap) { + return; + } + index = _utilsValidComponentChildren2['default'].numberOf(this.props.children) - 1; + } + + this.handleSelect(index, 'prev'); + }, + + pause: function pause() { + this.isPaused = true; + clearTimeout(this.timeout); + }, + + play: function play() { + this.isPaused = false; + this.waitForNext(); + }, + + waitForNext: function waitForNext() { + if (!this.isPaused && this.props.slide && this.props.interval && this.props.activeIndex == null) { + this.timeout = setTimeout(this.next, this.props.interval); + } + }, + + handleMouseOver: function handleMouseOver() { + if (this.props.pauseOnHover) { + this.pause(); + } + }, + + handleMouseOut: function handleMouseOut() { + if (this.isPaused) { + this.play(); + } + }, + + render: function render() { + var _classes; + + var classes = (_classes = {}, _classes[_utilsBootstrapUtils2['default'].prefix(this.props)] = true, _classes.slide = this.props.slide, _classes); + + return _react2['default'].createElement( + 'div', + _extends({}, this.props, { + className: _classnames2['default'](this.props.className, classes), + onMouseOver: this.handleMouseOver, + onMouseOut: this.handleMouseOut }), + this.props.indicators ? this.renderIndicators() : null, + _react2['default'].createElement( + 'div', + { + ref: 'inner', + className: _utilsBootstrapUtils2['default'].prefix(this.props, 'inner') + }, + _utilsValidComponentChildren2['default'].map(this.props.children, this.renderItem) + ), + this.props.controls ? this.renderControls() : null + ); + }, + + renderPrev: function renderPrev() { + var classes = 'left ' + _utilsBootstrapUtils2['default'].prefix(this.props, 'control'); + + return _react2['default'].createElement( + 'a', + { className: classes, href: '#prev', key: 0, onClick: this.prev }, + this.props.prevIcon + ); + }, + + renderNext: function renderNext() { + var classes = 'right ' + _utilsBootstrapUtils2['default'].prefix(this.props, 'control'); + + return _react2['default'].createElement( + 'a', + { className: classes, href: '#next', key: 1, onClick: this.next }, + this.props.nextIcon + ); + }, + + renderControls: function renderControls() { + if (!this.props.wrap) { + var activeIndex = this.getActiveIndex(); + var count = _utilsValidComponentChildren2['default'].numberOf(this.props.children); + + return [activeIndex !== 0 ? this.renderPrev() : null, activeIndex !== count - 1 ? this.renderNext() : null]; + } + + return [this.renderPrev(), this.renderNext()]; + }, + + renderIndicator: function renderIndicator(child, index) { + var className = index === this.getActiveIndex() ? 'active' : null; + + return _react2['default'].createElement('li', { + key: index, + className: className, + onClick: this.handleSelect.bind(this, index, null) }); + }, + + renderIndicators: function renderIndicators() { + var _this = this; + + var indicators = []; + _utilsValidComponentChildren2['default'].forEach(this.props.children, function (child, index) { + indicators.push(_this.renderIndicator(child, index), + + // Force whitespace between indicator elements, bootstrap + // requires this for correct spacing of elements. + ' '); + }, this); + + return _react2['default'].createElement( + 'ol', + { className: _utilsBootstrapUtils2['default'].prefix(this.props, 'indicators') }, + indicators + ); + }, + + getActiveIndex: function getActiveIndex() { + return this.props.activeIndex != null ? this.props.activeIndex : this.state.activeIndex; + }, + + handleItemAnimateOutEnd: function handleItemAnimateOutEnd() { + var _this2 = this; + + this.setState({ + previousActiveIndex: null, + direction: null + }, function () { + _this2.waitForNext(); + + if (_this2.props.onSlideEnd) { + _this2.props.onSlideEnd(); + } + }); + }, + + renderItem: function renderItem(child, index) { + var activeIndex = this.getActiveIndex(); + var isActive = index === activeIndex; + var isPreviousActive = this.state.previousActiveIndex != null && this.state.previousActiveIndex === index && this.props.slide; + + return _react.cloneElement(child, { + active: isActive, + ref: child.ref, + key: child.key ? child.key : index, + index: index, + animateOut: isPreviousActive, + animateIn: isActive && this.state.previousActiveIndex != null && this.props.slide, + direction: this.state.direction, + onAnimateOutEnd: isPreviousActive ? this.handleItemAnimateOutEnd : null + }); + }, + + handleSelect: function handleSelect(index, direction) { + clearTimeout(this.timeout); + + if (this.isMounted()) { + var previousActiveIndex = this.getActiveIndex(); + direction = direction || this.getDirection(previousActiveIndex, index); + + if (this.props.onSelect) { + this.props.onSelect(index, direction); + } + + if (this.props.activeIndex == null && index !== previousActiveIndex) { + if (this.state.previousActiveIndex != null) { + // If currently animating don't activate the new index. + // TODO: look into queuing this canceled call and + // animating after the current animation has ended. + return; + } + + this.setState({ + activeIndex: index, + previousActiveIndex: previousActiveIndex, + direction: direction + }); + } + } + } + }); + + exports['default'] = Carousel; + module.exports = exports['default']; + +/***/ }, +/* 62 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _reactDom = __webpack_require__(63); + + var _reactDom2 = _interopRequireDefault(_reactDom); + + var _utilsTransitionEvents = __webpack_require__(64); + + var _utilsTransitionEvents2 = _interopRequireDefault(_utilsTransitionEvents); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var CarouselItem = _react2['default'].createClass({ + displayName: 'CarouselItem', + + propTypes: { + direction: _react2['default'].PropTypes.oneOf(['prev', 'next']), + onAnimateOutEnd: _react2['default'].PropTypes.func, + active: _react2['default'].PropTypes.bool, + animateIn: _react2['default'].PropTypes.bool, + animateOut: _react2['default'].PropTypes.bool, + caption: _react2['default'].PropTypes.node, + index: _react2['default'].PropTypes.number + }, + + getInitialState: function getInitialState() { + return { + direction: null + }; + }, + + getDefaultProps: function getDefaultProps() { + return { + bsStyle: 'carousel', + active: false, + animateIn: false, + animateOut: false + }; + }, + + handleAnimateOutEnd: function handleAnimateOutEnd() { + if (this.props.onAnimateOutEnd && this.isMounted()) { + this.props.onAnimateOutEnd(this.props.index); + } + }, + + componentWillReceiveProps: function componentWillReceiveProps(nextProps) { + if (this.props.active !== nextProps.active) { + this.setState({ + direction: null + }); + } + }, + + componentDidUpdate: function componentDidUpdate(prevProps) { + if (!this.props.active && prevProps.active) { + _utilsTransitionEvents2['default'].addEndEventListener(_reactDom2['default'].findDOMNode(this), this.handleAnimateOutEnd); + } + + if (this.props.active !== prevProps.active) { + setTimeout(this.startAnimation, 20); + } + }, + + startAnimation: function startAnimation() { + if (!this.isMounted()) { + return; + } + + this.setState({ + direction: this.props.direction === 'prev' ? 'right' : 'left' + }); + }, + + render: function render() { + var classes = { + item: true, + active: this.props.active && !this.props.animateIn || this.props.animateOut, + next: this.props.active && this.props.animateIn && this.props.direction === 'next', + prev: this.props.active && this.props.animateIn && this.props.direction === 'prev' + }; + + if (this.state.direction && (this.props.animateIn || this.props.animateOut)) { + classes[this.state.direction] = true; + } + + return _react2['default'].createElement( + 'div', + _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }), + this.props.children, + this.props.caption ? this.renderCaption() : null + ); + }, + + renderCaption: function renderCaption() { + var classes = _utilsBootstrapUtils2['default'].prefix(this.props, 'caption'); + + return _react2['default'].createElement( + 'div', + { className: classes }, + this.props.caption + ); + } + }); + + exports['default'] = CarouselItem; + module.exports = exports['default']; + +/***/ }, +/* 63 */ +/***/ function(module, exports) { + + module.exports = __WEBPACK_EXTERNAL_MODULE_63__; + +/***/ }, +/* 64 */ +/***/ function(module, exports) { + + /** + * Copyright 2013-2014, Facebook, Inc. + * All rights reserved. + * + * This file contains a modified version of: + * https://github.com/facebook/react/blob/v0.12.0/src/addons/transitions/ReactTransitionEvents.js + * + * This source code is licensed under the BSD-style license found here: + * https://github.com/facebook/react/blob/v0.12.0/LICENSE + * An additional grant of patent rights can be found here: + * https://github.com/facebook/react/blob/v0.12.0/PATENTS + */ + + 'use strict'; + + exports.__esModule = true; + var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); + + /** + * EVENT_NAME_MAP is used to determine which event fired when a + * transition/animation ends, based on the style property used to + * define that event. + */ + var EVENT_NAME_MAP = { + transitionend: { + 'transition': 'transitionend', + 'WebkitTransition': 'webkitTransitionEnd', + 'MozTransition': 'mozTransitionEnd', + 'OTransition': 'oTransitionEnd', + 'msTransition': 'MSTransitionEnd' + }, + + animationend: { + 'animation': 'animationend', + 'WebkitAnimation': 'webkitAnimationEnd', + 'MozAnimation': 'mozAnimationEnd', + 'OAnimation': 'oAnimationEnd', + 'msAnimation': 'MSAnimationEnd' + } + }; + + var endEvents = []; + + function detectEvents() { + var testEl = document.createElement('div'); + var style = testEl.style; + + // On some platforms, in particular some releases of Android 4.x, + // the un-prefixed "animation" and "transition" properties are defined on the + // style object but the events that fire will still be prefixed, so we need + // to check if the un-prefixed events are useable, and if not remove them + // from the map + if (!('AnimationEvent' in window)) { + delete EVENT_NAME_MAP.animationend.animation; + } + + if (!('TransitionEvent' in window)) { + delete EVENT_NAME_MAP.transitionend.transition; + } + + for (var baseEventName in EVENT_NAME_MAP) { + // eslint-disable-line guard-for-in + var baseEvents = EVENT_NAME_MAP[baseEventName]; + for (var styleName in baseEvents) { + if (styleName in style) { + endEvents.push(baseEvents[styleName]); + break; + } + } + } + } + + if (canUseDOM) { + detectEvents(); + } + + // We use the raw {add|remove}EventListener() call because EventListener + // does not know how to remove event listeners and we really should + // clean up. Also, these events are not triggered in older browsers + // so we should be A-OK here. + + function addEventListener(node, eventName, eventListener) { + node.addEventListener(eventName, eventListener, false); + } + + function removeEventListener(node, eventName, eventListener) { + node.removeEventListener(eventName, eventListener, false); + } + + var ReactTransitionEvents = { + addEndEventListener: function addEndEventListener(node, eventListener) { + if (endEvents.length === 0) { + // If CSS transitions are not supported, trigger an "end animation" + // event immediately. + window.setTimeout(eventListener, 0); + return; + } + endEvents.forEach(function (endEvent) { + addEventListener(node, endEvent, eventListener); + }); + }, + + removeEndEventListener: function removeEndEventListener(node, eventListener) { + if (endEvents.length === 0) { + return; + } + endEvents.forEach(function (endEvent) { + removeEventListener(node, endEvent, eventListener); + }); + } + }; + + exports['default'] = ReactTransitionEvents; + module.exports = exports['default']; + +/***/ }, +/* 65 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _Object$keys = __webpack_require__(28)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _styleMaps = __webpack_require__(25); + + var _styleMaps2 = _interopRequireDefault(_styleMaps); + + var _reactPropTypesLibElementType = __webpack_require__(52); + + var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); + + var Col = _react2['default'].createClass({ + displayName: 'Col', + + propTypes: { + /** + * The number of columns you wish to span + * + * for Extra small devices Phones (<768px) + * + * class-prefix `col-xs-` + */ + xs: _react2['default'].PropTypes.number, + /** + * The number of columns you wish to span + * + * for Small devices Tablets (≥768px) + * + * class-prefix `col-sm-` + */ + sm: _react2['default'].PropTypes.number, + /** + * The number of columns you wish to span + * + * for Medium devices Desktops (≥992px) + * + * class-prefix `col-md-` + */ + md: _react2['default'].PropTypes.number, + /** + * The number of columns you wish to span + * + * for Large devices Desktops (≥1200px) + * + * class-prefix `col-lg-` + */ + lg: _react2['default'].PropTypes.number, + /** + * Move columns to the right + * + * for Extra small devices Phones + * + * class-prefix `col-xs-offset-` + */ + xsOffset: _react2['default'].PropTypes.number, + /** + * Move columns to the right + * + * for Small devices Tablets + * + * class-prefix `col-sm-offset-` + */ + smOffset: _react2['default'].PropTypes.number, + /** + * Move columns to the right + * + * for Medium devices Desktops + * + * class-prefix `col-md-offset-` + */ + mdOffset: _react2['default'].PropTypes.number, + /** + * Move columns to the right + * + * for Large devices Desktops + * + * class-prefix `col-lg-offset-` + */ + lgOffset: _react2['default'].PropTypes.number, + /** + * Change the order of grid columns to the right + * + * for Extra small devices Phones + * + * class-prefix `col-xs-push-` + */ + xsPush: _react2['default'].PropTypes.number, + /** + * Change the order of grid columns to the right + * + * for Small devices Tablets + * + * class-prefix `col-sm-push-` + */ + smPush: _react2['default'].PropTypes.number, + /** + * Change the order of grid columns to the right + * + * for Medium devices Desktops + * + * class-prefix `col-md-push-` + */ + mdPush: _react2['default'].PropTypes.number, + /** + * Change the order of grid columns to the right + * + * for Large devices Desktops + * + * class-prefix `col-lg-push-` + */ + lgPush: _react2['default'].PropTypes.number, + /** + * Change the order of grid columns to the left + * + * for Extra small devices Phones + * + * class-prefix `col-xs-pull-` + */ + xsPull: _react2['default'].PropTypes.number, + /** + * Change the order of grid columns to the left + * + * for Small devices Tablets + * + * class-prefix `col-sm-pull-` + */ + smPull: _react2['default'].PropTypes.number, + /** + * Change the order of grid columns to the left + * + * for Medium devices Desktops + * + * class-prefix `col-md-pull-` + */ + mdPull: _react2['default'].PropTypes.number, + /** + * Change the order of grid columns to the left + * + * for Large devices Desktops + * + * class-prefix `col-lg-pull-` + */ + lgPull: _react2['default'].PropTypes.number, + /** + * You can use a custom element for this component + */ + componentClass: _reactPropTypesLibElementType2['default'] + }, + + getDefaultProps: function getDefaultProps() { + return { + componentClass: 'div' + }; + }, + + render: function render() { + var _this = this; + + var ComponentClass = this.props.componentClass; + var classes = {}; + + _Object$keys(_styleMaps2['default'].SIZES).forEach(function (key) { + var size = _styleMaps2['default'].SIZES[key]; + var prop = size; + var classPart = size + '-'; + + if (_this.props[prop]) { + classes['col-' + classPart + _this.props[prop]] = true; + } + + prop = size + 'Offset'; + classPart = size + '-offset-'; + if (_this.props[prop] >= 0) { + classes['col-' + classPart + _this.props[prop]] = true; + } + + prop = size + 'Push'; + classPart = size + '-push-'; + if (_this.props[prop] >= 0) { + classes['col-' + classPart + _this.props[prop]] = true; + } + + prop = size + 'Pull'; + classPart = size + '-pull-'; + if (_this.props[prop] >= 0) { + classes['col-' + classPart + _this.props[prop]] = true; + } + }, this); + + return _react2['default'].createElement( + ComponentClass, + _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }), + this.props.children + ); + } + }); + + exports['default'] = Col; + module.exports = exports['default']; + +/***/ }, +/* 66 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _Collapse = __webpack_require__(67); + + var _Collapse2 = _interopRequireDefault(_Collapse); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsDeprecationWarning = __webpack_require__(81); + + var _utilsDeprecationWarning2 = _interopRequireDefault(_utilsDeprecationWarning); + + var _utilsValidComponentChildren = __webpack_require__(7); + + var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); + + var _utilsCreateChainedFunction = __webpack_require__(6); + + var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); + + var CollapsibleNav = _react2['default'].createClass({ + displayName: 'CollapsibleNav', + + propTypes: { + onSelect: _react2['default'].PropTypes.func, + activeHref: _react2['default'].PropTypes.string, + activeKey: _react2['default'].PropTypes.any, + collapsible: _react2['default'].PropTypes.bool, + expanded: _react2['default'].PropTypes.bool, + eventKey: _react2['default'].PropTypes.any + }, + + getDefaultProps: function getDefaultProps() { + return { + collapsible: false, + expanded: false + }; + }, + + render: function render() { + /* + * this.props.collapsible is set in NavBar when an eventKey is supplied. + */ + var classes = this.props.collapsible ? 'navbar-collapse' : null; + var renderChildren = this.props.collapsible ? this.renderCollapsibleNavChildren : this.renderChildren; + + var nav = _react2['default'].createElement( + 'div', + { eventKey: this.props.eventKey, className: _classnames2['default'](this.props.className, classes) }, + _utilsValidComponentChildren2['default'].map(this.props.children, renderChildren) + ); + + if (this.props.collapsible) { + return _react2['default'].createElement( + _Collapse2['default'], + { 'in': this.props.expanded }, + nav + ); + } + return nav; + }, + + getChildActiveProp: function getChildActiveProp(child) { + if (child.props.active) { + return true; + } + if (this.props.activeKey != null) { + if (child.props.eventKey === this.props.activeKey) { + return true; + } + } + if (this.props.activeHref != null) { + if (child.props.href === this.props.activeHref) { + return true; + } + } + + return child.props.active; + }, + + renderChildren: function renderChildren(child, index) { + var key = child.key ? child.key : index; + return _react.cloneElement(child, { + activeKey: this.props.activeKey, + activeHref: this.props.activeHref, + ref: 'nocollapse_' + key, + key: key, + navItem: true + }); + }, + + renderCollapsibleNavChildren: function renderCollapsibleNavChildren(child, index) { + var key = child.key ? child.key : index; + return _react.cloneElement(child, { + active: this.getChildActiveProp(child), + activeKey: this.props.activeKey, + activeHref: this.props.activeHref, + onSelect: _utilsCreateChainedFunction2['default'](child.props.onSelect, this.props.onSelect), + ref: 'collapsible_' + key, + key: key, + navItem: true + }); + } + }); + + exports['default'] = _utilsDeprecationWarning2['default'].wrapper(CollapsibleNav, 'CollapsibleNav', 'Navbar.Collapse', 'http://react-bootstrap.github.io/components.html#navbars'); + module.exports = exports['default']; + +/***/ }, +/* 67 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _domHelpersStyle = __webpack_require__(68); + + var _domHelpersStyle2 = _interopRequireDefault(_domHelpersStyle); + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _reactOverlaysLibTransition = __webpack_require__(76); + + var _reactOverlaysLibTransition2 = _interopRequireDefault(_reactOverlaysLibTransition); + + var _reactPropTypesLibDeprecated = __webpack_require__(80); + + var _reactPropTypesLibDeprecated2 = _interopRequireDefault(_reactPropTypesLibDeprecated); + + var _utilsCreateChainedFunction = __webpack_require__(6); + + var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); + + var capitalize = function capitalize(str) { + return str[0].toUpperCase() + str.substr(1); + }; + + // reading a dimension prop will cause the browser to recalculate, + // which will let our animations work + var triggerBrowserReflow = function triggerBrowserReflow(node) { + return node.offsetHeight; + }; + + var MARGINS = { + height: ['marginTop', 'marginBottom'], + width: ['marginLeft', 'marginRight'] + }; + + function getDimensionValue(dimension, elem) { + var value = elem['offset' + capitalize(dimension)]; + var margins = MARGINS[dimension]; + + return value + parseInt(_domHelpersStyle2['default'](elem, margins[0]), 10) + parseInt(_domHelpersStyle2['default'](elem, margins[1]), 10); + } + + var Collapse = (function (_React$Component) { + _inherits(Collapse, _React$Component); + + function Collapse(props, context) { + _classCallCheck(this, Collapse); + + _React$Component.call(this, props, context); + + this.onEnterListener = this.handleEnter.bind(this); + this.onEnteringListener = this.handleEntering.bind(this); + this.onEnteredListener = this.handleEntered.bind(this); + this.onExitListener = this.handleExit.bind(this); + this.onExitingListener = this.handleExiting.bind(this); + } + + // Explicitly copied from Transition for doc generation. + // TODO: Remove duplication once #977 is resolved. + + Collapse.prototype.render = function render() { + var enter = _utilsCreateChainedFunction2['default'](this.onEnterListener, this.props.onEnter); + var entering = _utilsCreateChainedFunction2['default'](this.onEnteringListener, this.props.onEntering); + var entered = _utilsCreateChainedFunction2['default'](this.onEnteredListener, this.props.onEntered); + var exit = _utilsCreateChainedFunction2['default'](this.onExitListener, this.props.onExit); + var exiting = _utilsCreateChainedFunction2['default'](this.onExitingListener, this.props.onExiting); + + return _react2['default'].createElement( + _reactOverlaysLibTransition2['default'], + _extends({ + ref: 'transition' + }, this.props, { + 'aria-expanded': this.props.role ? this.props['in'] : null, + className: _classnames2['default'](this.props.className, { width: this._dimension() === 'width' }), + exitedClassName: 'collapse', + exitingClassName: 'collapsing', + enteredClassName: 'collapse in', + enteringClassName: 'collapsing', + onEnter: enter, + onEntering: entering, + onEntered: entered, + onExit: exit, + onExiting: exiting, + onExited: this.props.onExited + }), + this.props.children + ); + }; + + /* -- Expanding -- */ + + Collapse.prototype.handleEnter = function handleEnter(elem) { + var dimension = this._dimension(); + elem.style[dimension] = '0'; + }; + + Collapse.prototype.handleEntering = function handleEntering(elem) { + var dimension = this._dimension(); + + elem.style[dimension] = this._getScrollDimensionValue(elem, dimension); + }; + + Collapse.prototype.handleEntered = function handleEntered(elem) { + var dimension = this._dimension(); + elem.style[dimension] = null; + }; + + /* -- Collapsing -- */ + + Collapse.prototype.handleExit = function handleExit(elem) { + var dimension = this._dimension(); + + elem.style[dimension] = this.props.getDimensionValue(dimension, elem) + 'px'; + }; + + Collapse.prototype.handleExiting = function handleExiting(elem) { + var dimension = this._dimension(); + + triggerBrowserReflow(elem); + elem.style[dimension] = '0'; + }; + + Collapse.prototype._dimension = function _dimension() { + return typeof this.props.dimension === 'function' ? this.props.dimension() : this.props.dimension; + }; + + // for testing + + Collapse.prototype._getTransitionInstance = function _getTransitionInstance() { + return this.refs.transition; + }; + + Collapse.prototype._getScrollDimensionValue = function _getScrollDimensionValue(elem, dimension) { + return elem['scroll' + capitalize(dimension)] + 'px'; + }; + + return Collapse; + })(_react2['default'].Component); + + Collapse.propTypes = { + /** + * Show the component; triggers the expand or collapse animation + */ + 'in': _react2['default'].PropTypes.bool, + + /** + * Unmount the component (remove it from the DOM) when it is collapsed + */ + unmountOnExit: _react2['default'].PropTypes.bool, + + /** + * Run the expand animation when the component mounts, if it is initially + * shown + */ + transitionAppear: _react2['default'].PropTypes.bool, + + /** + * Duration of the collapse animation in milliseconds, to ensure that + * finishing callbacks are fired even if the original browser transition end + * events are canceled + */ + timeout: _react2['default'].PropTypes.number, + + /** + * duration + * @private + */ + duration: _reactPropTypesLibDeprecated2['default'](_react2['default'].PropTypes.number, 'Use `timeout`.'), + + /** + * Callback fired before the component expands + */ + onEnter: _react2['default'].PropTypes.func, + /** + * Callback fired after the component starts to expand + */ + onEntering: _react2['default'].PropTypes.func, + /** + * Callback fired after the component has expanded + */ + onEntered: _react2['default'].PropTypes.func, + /** + * Callback fired before the component collapses + */ + onExit: _react2['default'].PropTypes.func, + /** + * Callback fired after the component starts to collapse + */ + onExiting: _react2['default'].PropTypes.func, + /** + * Callback fired after the component has collapsed + */ + onExited: _react2['default'].PropTypes.func, + + /** + * The dimension used when collapsing, or a function that returns the + * dimension + * + * _Note: Bootstrap only partially supports 'width'! + * You will need to supply your own CSS animation for the `.width` CSS class._ + */ + dimension: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.oneOf(['height', 'width']), _react2['default'].PropTypes.func]), + + /** + * Function that returns the height or width of the animating DOM node + * + * Allows for providing some custom logic for how much the Collapse component + * should animate in its specified dimension. Called with the current + * dimension prop value and the DOM node. + */ + getDimensionValue: _react2['default'].PropTypes.func, + + /** + * ARIA role of collapsible element + */ + role: _react2['default'].PropTypes.string + }; + + Collapse.defaultProps = { + 'in': false, + timeout: 300, + unmountOnExit: false, + transitionAppear: false, + + dimension: 'height', + getDimensionValue: getDimensionValue + }; + + exports['default'] = Collapse; + module.exports = exports['default']; + +/***/ }, +/* 68 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var camelize = __webpack_require__(69), + hyphenate = __webpack_require__(71), + _getComputedStyle = __webpack_require__(73), + removeStyle = __webpack_require__(75); + + var has = Object.prototype.hasOwnProperty; + + module.exports = function style(node, property, value) { + var css = '', + props = property; + + if (typeof property === 'string') { + + if (value === undefined) return node.style[camelize(property)] || _getComputedStyle(node).getPropertyValue(hyphenate(property));else (props = {})[property] = value; + } + + for (var key in props) if (has.call(props, key)) { + !props[key] && props[key] !== 0 ? removeStyle(node, hyphenate(key)) : css += hyphenate(key) + ':' + props[key] + ';'; + } + + node.style.cssText += ';' + css; + }; + +/***/ }, +/* 69 */ +/***/ function(module, exports, __webpack_require__) { + + /**
+ * Copyright 2014-2015, Facebook, Inc.
+ * All rights reserved.
+ * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/camelizeStyleName.js
+ */ + + 'use strict'; + var camelize = __webpack_require__(70); + var msPattern = /^-ms-/; + + module.exports = function camelizeStyleName(string) { + return camelize(string.replace(msPattern, 'ms-')); + }; + +/***/ }, +/* 70 */ +/***/ function(module, exports) { + + "use strict"; + + var rHyphen = /-(.)/g; + + module.exports = function camelize(string) { + return string.replace(rHyphen, function (_, chr) { + return chr.toUpperCase(); + }); + }; + +/***/ }, +/* 71 */ +/***/ function(module, exports, __webpack_require__) { + + /**
+ * Copyright 2013-2014, Facebook, Inc.
+ * All rights reserved.
+ * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js
+ */ + + "use strict"; + + var hyphenate = __webpack_require__(72); + var msPattern = /^ms-/; + + module.exports = function hyphenateStyleName(string) { + return hyphenate(string).replace(msPattern, "-ms-"); + }; + +/***/ }, +/* 72 */ +/***/ function(module, exports) { + + 'use strict'; + + var rUpper = /([A-Z])/g; + + module.exports = function hyphenate(string) { + return string.replace(rUpper, '-$1').toLowerCase(); + }; + +/***/ }, +/* 73 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var babelHelpers = __webpack_require__(74); + + var _utilCamelizeStyle = __webpack_require__(69); + + var _utilCamelizeStyle2 = babelHelpers.interopRequireDefault(_utilCamelizeStyle); + + var rposition = /^(top|right|bottom|left)$/; + var rnumnonpx = /^([+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/i; + + module.exports = function _getComputedStyle(node) { + if (!node) throw new TypeError('No Element passed to `getComputedStyle()`'); + var doc = node.ownerDocument; + + return 'defaultView' in doc ? doc.defaultView.opener ? node.ownerDocument.defaultView.getComputedStyle(node, null) : window.getComputedStyle(node, null) : { //ie 8 "magic" from: https://github.com/jquery/jquery/blob/1.11-stable/src/css/curCSS.js#L72 + getPropertyValue: function getPropertyValue(prop) { + var style = node.style; + + prop = (0, _utilCamelizeStyle2['default'])(prop); + + if (prop == 'float') prop = 'styleFloat'; + + var current = node.currentStyle[prop] || null; + + if (current == null && style && style[prop]) current = style[prop]; + + if (rnumnonpx.test(current) && !rposition.test(prop)) { + // Remember the original values + var left = style.left; + var runStyle = node.runtimeStyle; + var rsLeft = runStyle && runStyle.left; + + // Put in the new values to get a computed value out + if (rsLeft) runStyle.left = node.currentStyle.left; + + style.left = prop === 'fontSize' ? '1em' : current; + current = style.pixelLeft + 'px'; + + // Revert the changed values + style.left = left; + if (rsLeft) runStyle.left = rsLeft; + } + + return current; + } + }; + }; + +/***/ }, +/* 74 */ +/***/ function(module, exports, __webpack_require__) { + + var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (root, factory) { + if (true) { + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else if (typeof exports === "object") { + factory(exports); + } else { + factory(root.babelHelpers = {}); + } + })(this, function (global) { + var babelHelpers = global; + + babelHelpers.interopRequireDefault = function (obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; + }; + + babelHelpers._extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + }) + +/***/ }, +/* 75 */ +/***/ function(module, exports) { + + 'use strict'; + + module.exports = function removeStyle(node, key) { + return 'removeProperty' in node.style ? node.style.removeProperty(key) : node.style.removeAttribute(key); + }; + +/***/ }, +/* 76 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _reactDom = __webpack_require__(63); + + var _reactDom2 = _interopRequireDefault(_reactDom); + + var _domHelpersTransitionProperties = __webpack_require__(77); + + var _domHelpersTransitionProperties2 = _interopRequireDefault(_domHelpersTransitionProperties); + + var _domHelpersEventsOn = __webpack_require__(79); + + var _domHelpersEventsOn2 = _interopRequireDefault(_domHelpersEventsOn); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var transitionEndEvent = _domHelpersTransitionProperties2['default'].end; + + var UNMOUNTED = 0; + exports.UNMOUNTED = UNMOUNTED; + var EXITED = 1; + exports.EXITED = EXITED; + var ENTERING = 2; + exports.ENTERING = ENTERING; + var ENTERED = 3; + exports.ENTERED = ENTERED; + var EXITING = 4; + + exports.EXITING = EXITING; + /**
+ * The Transition component lets you define and run css transitions with a simple declarative api.
+ * It works similar to React's own [CSSTransitionGroup](http://facebook.github.io/react/docs/animation.html#high-level-api-reactcsstransitiongroup)
+ * but is specifically optimized for transitioning a single child "in" or "out".
+ *
+ * You don't even need to use class based css transitions if you don't want to (but it is easiest).
+ * The extensive set of lifecyle callbacks means you have control over
+ * the transitioning now at each step of the way.
+ */ + + var Transition = (function (_React$Component) { + function Transition(props, context) { + _classCallCheck(this, Transition); + + _React$Component.call(this, props, context); + + var initialStatus = undefined; + if (props['in']) { + // Start enter transition in componentDidMount. + initialStatus = props.transitionAppear ? EXITED : ENTERED; + } else { + initialStatus = props.unmountOnExit ? UNMOUNTED : EXITED; + } + this.state = { status: initialStatus }; + + this.nextCallback = null; + } + + _inherits(Transition, _React$Component); + + Transition.prototype.componentDidMount = function componentDidMount() { + if (this.props.transitionAppear && this.props['in']) { + this.performEnter(this.props); + } + }; + + Transition.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + var status = this.state.status; + if (nextProps['in']) { + if (status === EXITING) { + this.performEnter(nextProps); + } else if (this.props.unmountOnExit) { + if (status === UNMOUNTED) { + // Start enter transition in componentDidUpdate. + this.setState({ status: EXITED }); + } + } else if (status === EXITED) { + this.performEnter(nextProps); + } + + // Otherwise we're already entering or entered. + } else { + if (status === ENTERING || status === ENTERED) { + this.performExit(nextProps); + } + + // Otherwise we're already exited or exiting. + } + }; + + Transition.prototype.componentDidUpdate = function componentDidUpdate() { + if (this.props.unmountOnExit && this.state.status === EXITED) { + // EXITED is always a transitional state to either ENTERING or UNMOUNTED + // when using unmountOnExit. + if (this.props['in']) { + this.performEnter(this.props); + } else { + this.setState({ status: UNMOUNTED }); + } + } + }; + + Transition.prototype.componentWillUnmount = function componentWillUnmount() { + this.cancelNextCallback(); + }; + + Transition.prototype.performEnter = function performEnter(props) { + var _this = this; + + this.cancelNextCallback(); + var node = _reactDom2['default'].findDOMNode(this); + + // Not this.props, because we might be about to receive new props. + props.onEnter(node); + + this.safeSetState({ status: ENTERING }, function () { + _this.props.onEntering(node); + + _this.onTransitionEnd(node, function () { + _this.safeSetState({ status: ENTERED }, function () { + _this.props.onEntered(node); + }); + }); + }); + }; + + Transition.prototype.performExit = function performExit(props) { + var _this2 = this; + + this.cancelNextCallback(); + var node = _reactDom2['default'].findDOMNode(this); + + // Not this.props, because we might be about to receive new props. + props.onExit(node); + + this.safeSetState({ status: EXITING }, function () { + _this2.props.onExiting(node); + + _this2.onTransitionEnd(node, function () { + _this2.safeSetState({ status: EXITED }, function () { + _this2.props.onExited(node); + }); + }); + }); + }; + + Transition.prototype.cancelNextCallback = function cancelNextCallback() { + if (this.nextCallback !== null) { + this.nextCallback.cancel(); + this.nextCallback = null; + } + }; + + Transition.prototype.safeSetState = function safeSetState(nextState, callback) { + // This shouldn't be necessary, but there are weird race conditions with + // setState callbacks and unmounting in testing, so always make sure that + // we can cancel any pending setState callbacks after we unmount. + this.setState(nextState, this.setNextCallback(callback)); + }; + + Transition.prototype.setNextCallback = function setNextCallback(callback) { + var _this3 = this; + + var active = true; + + this.nextCallback = function (event) { + if (active) { + active = false; + _this3.nextCallback = null; + + callback(event); + } + }; + + this.nextCallback.cancel = function () { + active = false; + }; + + return this.nextCallback; + }; + + Transition.prototype.onTransitionEnd = function onTransitionEnd(node, handler) { + this.setNextCallback(handler); + + if (node) { + _domHelpersEventsOn2['default'](node, transitionEndEvent, this.nextCallback); + setTimeout(this.nextCallback, this.props.timeout); + } else { + setTimeout(this.nextCallback, 0); + } + }; + + Transition.prototype.render = function render() { + var status = this.state.status; + if (status === UNMOUNTED) { + return null; + } + + var _props = this.props; + var children = _props.children; + var className = _props.className; + + var childProps = _objectWithoutProperties(_props, ['children', 'className']); + + Object.keys(Transition.propTypes).forEach(function (key) { + return delete childProps[key]; + }); + + var transitionClassName = undefined; + if (status === EXITED) { + transitionClassName = this.props.exitedClassName; + } else if (status === ENTERING) { + transitionClassName = this.props.enteringClassName; + } else if (status === ENTERED) { + transitionClassName = this.props.enteredClassName; + } else if (status === EXITING) { + transitionClassName = this.props.exitingClassName; + } + + var child = _react2['default'].Children.only(children); + return _react2['default'].cloneElement(child, _extends({}, childProps, { + className: _classnames2['default'](child.props.className, className, transitionClassName) + })); + }; + + return Transition; + })(_react2['default'].Component); + + Transition.propTypes = { + /**
+ * Show the component; triggers the enter or exit animation
+ */ + 'in': _react2['default'].PropTypes.bool, + + /**
+ * Unmount the component (remove it from the DOM) when it is not shown
+ */ + unmountOnExit: _react2['default'].PropTypes.bool, + + /**
+ * Run the enter animation when the component mounts, if it is initially
+ * shown
+ */ + transitionAppear: _react2['default'].PropTypes.bool, + + /**
+ * A Timeout for the animation, in milliseconds, to ensure that a node doesn't
+ * transition indefinately if the browser transitionEnd events are
+ * canceled or interrupted.
+ *
+ * By default this is set to a high number (5 seconds) as a failsafe. You should consider
+ * setting this to the duration of your animation (or a bit above it).
+ */ + timeout: _react2['default'].PropTypes.number, + + /**
+ * CSS class or classes applied when the component is exited
+ */ + exitedClassName: _react2['default'].PropTypes.string, + /**
+ * CSS class or classes applied while the component is exiting
+ */ + exitingClassName: _react2['default'].PropTypes.string, + /**
+ * CSS class or classes applied when the component is entered
+ */ + enteredClassName: _react2['default'].PropTypes.string, + /**
+ * CSS class or classes applied while the component is entering
+ */ + enteringClassName: _react2['default'].PropTypes.string, + + /**
+ * Callback fired before the "entering" classes are applied
+ */ + onEnter: _react2['default'].PropTypes.func, + /**
+ * Callback fired after the "entering" classes are applied
+ */ + onEntering: _react2['default'].PropTypes.func, + /**
+ * Callback fired after the "enter" classes are applied
+ */ + onEntered: _react2['default'].PropTypes.func, + /**
+ * Callback fired before the "exiting" classes are applied
+ */ + onExit: _react2['default'].PropTypes.func, + /**
+ * Callback fired after the "exiting" classes are applied
+ */ + onExiting: _react2['default'].PropTypes.func, + /**
+ * Callback fired after the "exited" classes are applied
+ */ + onExited: _react2['default'].PropTypes.func + }; + + // Name the function so it is clearer in the documentation + function noop() {} + + Transition.displayName = 'Transition'; + + Transition.defaultProps = { + 'in': false, + unmountOnExit: false, + transitionAppear: false, + + timeout: 5000, + + onEnter: noop, + onEntering: noop, + onEntered: noop, + + onExit: noop, + onExiting: noop, + onExited: noop + }; + + exports['default'] = Transition; + +/***/ }, +/* 77 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + var canUseDOM = __webpack_require__(78); + + var has = Object.prototype.hasOwnProperty, + transform = 'transform', + transition = {}, + transitionTiming, + transitionDuration, + transitionProperty, + transitionDelay; + + if (canUseDOM) { + transition = getTransitionProperties(); + + transform = transition.prefix + transform; + + transitionProperty = transition.prefix + 'transition-property'; + transitionDuration = transition.prefix + 'transition-duration'; + transitionDelay = transition.prefix + 'transition-delay'; + transitionTiming = transition.prefix + 'transition-timing-function'; + } + + module.exports = { + transform: transform, + end: transition.end, + property: transitionProperty, + timing: transitionTiming, + delay: transitionDelay, + duration: transitionDuration + }; + + function getTransitionProperties() { + var endEvent, + prefix = '', + transitions = { + O: 'otransitionend', + Moz: 'transitionend', + Webkit: 'webkitTransitionEnd', + ms: 'MSTransitionEnd' + }; + + var element = document.createElement('div'); + + for (var vendor in transitions) if (has.call(transitions, vendor)) { + if (element.style[vendor + 'TransitionProperty'] !== undefined) { + prefix = '-' + vendor.toLowerCase() + '-'; + endEvent = transitions[vendor]; + break; + } + } + + if (!endEvent && element.style.transitionProperty !== undefined) endEvent = 'transitionend'; + + return { end: endEvent, prefix: prefix }; + } + +/***/ }, +/* 78 */ +/***/ function(module, exports) { + + 'use strict'; + module.exports = !!(typeof window !== 'undefined' && window.document && window.document.createElement); + +/***/ }, +/* 79 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + var canUseDOM = __webpack_require__(78); + var on = function on() {}; + + if (canUseDOM) { + on = (function () { + + if (document.addEventListener) return function (node, eventName, handler, capture) { + return node.addEventListener(eventName, handler, capture || false); + };else if (document.attachEvent) return function (node, eventName, handler) { + return node.attachEvent('on' + eventName, handler); + }; + })(); + } + + module.exports = on; + +/***/ }, +/* 80 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + exports['default'] = deprecated; + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + var _warning = __webpack_require__(33); + + var _warning2 = _interopRequireDefault(_warning); + + function deprecated(propType, explanation) { + return function validate(props, propName, componentName) { + if (props[propName] != null) { + _warning2['default'](false, '"' + propName + '" property of "' + componentName + '" has been deprecated.\n' + explanation); + } + + return propType(props, propName, componentName); + }; + } + + module.exports = exports['default']; + +/***/ }, +/* 81 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _warning = __webpack_require__(33); + + var _warning2 = _interopRequireDefault(_warning); + + var warned = {}; + + function deprecationWarning(oldname, newname, link) { + var message = undefined; + + if (typeof oldname === 'object') { + message = oldname.message; + } else { + message = oldname + ' is deprecated. Use ' + newname + ' instead.'; + + if (link) { + message += '\nYou can read more about it at ' + link; + } + } + + if (warned[message]) { + return; + } + + true ? _warning2['default'](false, message) : undefined; + warned[message] = true; + } + + deprecationWarning.wrapper = function (Component) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + return (function (_Component) { + _inherits(DeprecatedComponent, _Component); + + function DeprecatedComponent() { + _classCallCheck(this, DeprecatedComponent); + + _Component.apply(this, arguments); + } + + DeprecatedComponent.prototype.componentWillMount = function componentWillMount() { + deprecationWarning.apply(undefined, args); + + if (_Component.prototype.componentWillMount) { + var _Component$prototype$componentWillMount; + + for (var _len2 = arguments.length, methodArgs = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + methodArgs[_key2] = arguments[_key2]; + } + + (_Component$prototype$componentWillMount = _Component.prototype.componentWillMount).call.apply(_Component$prototype$componentWillMount, [this].concat(methodArgs)); + } + }; + + return DeprecatedComponent; + })(Component); + }; + + exports['default'] = deprecationWarning; + module.exports = exports['default']; + +/***/ }, +/* 82 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _domHelpersActiveElement = __webpack_require__(83); + + var _domHelpersActiveElement2 = _interopRequireDefault(_domHelpersActiveElement); + + var _domHelpersQueryContains = __webpack_require__(85); + + var _domHelpersQueryContains2 = _interopRequireDefault(_domHelpersQueryContains); + + var _keycode = __webpack_require__(86); + + var _keycode2 = _interopRequireDefault(_keycode); + + var _lodashCompatCollectionFind = __webpack_require__(87); + + var _lodashCompatCollectionFind2 = _interopRequireDefault(_lodashCompatCollectionFind); + + var _lodashCompatObjectOmit = __webpack_require__(140); + + var _lodashCompatObjectOmit2 = _interopRequireDefault(_lodashCompatObjectOmit); + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _reactDom = __webpack_require__(63); + + var _reactDom2 = _interopRequireDefault(_reactDom); + + var _reactPropTypesLibAll = __webpack_require__(55); + + var _reactPropTypesLibAll2 = _interopRequireDefault(_reactPropTypesLibAll); + + var _reactPropTypesLibElementType = __webpack_require__(52); + + var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); + + var _reactPropTypesLibIsRequiredForA11y = __webpack_require__(155); + + var _reactPropTypesLibIsRequiredForA11y2 = _interopRequireDefault(_reactPropTypesLibIsRequiredForA11y); + + var _uncontrollable = __webpack_require__(156); + + var _uncontrollable2 = _interopRequireDefault(_uncontrollable); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _ButtonGroup = __webpack_require__(54); + + var _ButtonGroup2 = _interopRequireDefault(_ButtonGroup); + + var _DropdownMenu = __webpack_require__(159); + + var _DropdownMenu2 = _interopRequireDefault(_DropdownMenu); + + var _DropdownToggle = __webpack_require__(165); + + var _DropdownToggle2 = _interopRequireDefault(_DropdownToggle); + + var _utilsCreateChainedFunction = __webpack_require__(6); + + var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); + + var _utilsCustomPropTypes = __webpack_require__(166); + + var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes); + + var _utilsValidComponentChildren = __webpack_require__(7); + + var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); + + var TOGGLE_REF = 'toggle-btn'; + var TOGGLE_ROLE = _DropdownToggle2['default'].defaultProps.bsRole; + var MENU_ROLE = _DropdownMenu2['default'].defaultProps.bsRole; + + var Dropdown = (function (_React$Component) { + _inherits(Dropdown, _React$Component); + + function Dropdown(props) { + _classCallCheck(this, Dropdown); + + _React$Component.call(this, props); + + this.Toggle = _DropdownToggle2['default']; + + this.toggleOpen = this.toggleOpen.bind(this); + this.handleClick = this.handleClick.bind(this); + this.handleKeyDown = this.handleKeyDown.bind(this); + this.handleClose = this.handleClose.bind(this); + this.extractChildren = this.extractChildren.bind(this); + + this.refineMenu = this.refineMenu.bind(this); + this.refineToggle = this.refineToggle.bind(this); + + this.childExtractors = [{ + key: 'toggle', + matches: function matches(child) { + return child.props.bsRole === TOGGLE_ROLE; + }, + refine: this.refineToggle + }, { + key: 'menu', + exclusive: true, + matches: function matches(child) { + return child.props.bsRole === MENU_ROLE; + }, + refine: this.refineMenu + }]; + + this.state = {}; + + this.lastOpenEventType = null; + } + + Dropdown.prototype.componentDidMount = function componentDidMount() { + this.focusNextOnOpen(); + }; + + Dropdown.prototype.componentWillUpdate = function componentWillUpdate(nextProps) { + if (!nextProps.open && this.props.open) { + this._focusInDropdown = _domHelpersQueryContains2['default'](_reactDom2['default'].findDOMNode(this.refs.menu), _domHelpersActiveElement2['default'](document)); + } + }; + + Dropdown.prototype.componentDidUpdate = function componentDidUpdate(prevProps) { + if (this.props.open && !prevProps.open) { + this.focusNextOnOpen(); + } + + if (!this.props.open && prevProps.open) { + // if focus hasn't already moved from the menu lets return it + // to the toggle + if (this._focusInDropdown) { + this._focusInDropdown = false; + this.focus(); + } + } + }; + + Dropdown.prototype.render = function render() { + var _rootClasses; + + var children = this.extractChildren(); + var Component = this.props.componentClass; + + var props = _lodashCompatObjectOmit2['default'](this.props, ['id', 'bsClass', 'role']); + var className = _utilsBootstrapUtils2['default'].prefix(this.props); + + var rootClasses = (_rootClasses = { + open: this.props.open, + disabled: this.props.disabled + }, _rootClasses[className] = !this.props.dropup, _rootClasses.dropup = this.props.dropup, _rootClasses); + + return _react2['default'].createElement( + Component, + _extends({}, props, { + tabIndex: '-1', + className: _classnames2['default'](this.props.className, rootClasses) + }), + children + ); + }; + + Dropdown.prototype.toggleOpen = function toggleOpen() { + var eventType = arguments.length <= 0 || arguments[0] === undefined ? null : arguments[0]; + + var open = !this.props.open; + + if (open) { + this.lastOpenEventType = eventType; + } + + if (this.props.onToggle) { + this.props.onToggle(open); + } + }; + + Dropdown.prototype.handleClick = function handleClick() { + if (this.props.disabled) { + return; + } + + this.toggleOpen('click'); + }; + + Dropdown.prototype.handleKeyDown = function handleKeyDown(event) { + if (this.props.disabled) { + return; + } + + switch (event.keyCode) { + case _keycode2['default'].codes.down: + if (!this.props.open) { + this.toggleOpen('keydown'); + } else if (this.refs.menu.focusNext) { + this.refs.menu.focusNext(); + } + event.preventDefault(); + break; + case _keycode2['default'].codes.esc: + case _keycode2['default'].codes.tab: + this.handleClose(event); + break; + default: + } + }; + + Dropdown.prototype.handleClose = function handleClose() { + if (!this.props.open) { + return; + } + + this.toggleOpen(); + }; + + Dropdown.prototype.focusNextOnOpen = function focusNextOnOpen() { + var menu = this.refs.menu; + + if (!menu.focusNext) { + return; + } + + if (this.lastOpenEventType === 'keydown' || this.props.role === 'menuitem') { + menu.focusNext(); + } + }; + + Dropdown.prototype.focus = function focus() { + var toggle = _reactDom2['default'].findDOMNode(this.refs[TOGGLE_REF]); + + if (toggle && toggle.focus) { + toggle.focus(); + } + }; + + Dropdown.prototype.extractChildren = function extractChildren() { + var _this = this; + + var open = !!this.props.open; + var seen = {}; + + return _utilsValidComponentChildren2['default'].map(this.props.children, function (child) { + var extractor = _lodashCompatCollectionFind2['default'](_this.childExtractors, function (x) { + return x.matches(child); + }); + + if (extractor) { + if (seen[extractor.key]) { + return false; + } + + seen[extractor.key] = extractor.exclusive; + child = extractor.refine(child, open); + } + + return child; + }); + }; + + Dropdown.prototype.refineMenu = function refineMenu(menu, open) { + var menuProps = { + ref: 'menu', + open: open, + labelledBy: this.props.id, + pullRight: this.props.pullRight, + bsClass: this.props.bsClass + }; + + menuProps.onClose = _utilsCreateChainedFunction2['default'](menu.props.onClose, this.props.onClose, this.handleClose); + + menuProps.onSelect = _utilsCreateChainedFunction2['default'](menu.props.onSelect, this.props.onSelect, this.handleClose); + + return _react.cloneElement(menu, menuProps, menu.props.children); + }; + + Dropdown.prototype.refineToggle = function refineToggle(toggle, open) { + var toggleProps = { + open: open, + id: this.props.id, + ref: TOGGLE_REF, + role: this.props.role + }; + + toggleProps.onClick = _utilsCreateChainedFunction2['default'](toggle.props.onClick, this.handleClick); + + toggleProps.onKeyDown = _utilsCreateChainedFunction2['default'](toggle.props.onKeyDown, this.handleKeyDown); + + return _react.cloneElement(toggle, toggleProps, toggle.props.children); + }; + + return Dropdown; + })(_react2['default'].Component); + + Dropdown.Toggle = _DropdownToggle2['default']; + + Dropdown.TOGGLE_REF = TOGGLE_REF; + Dropdown.TOGGLE_ROLE = TOGGLE_ROLE; + Dropdown.MENU_ROLE = MENU_ROLE; + + Dropdown.defaultProps = { + componentClass: _ButtonGroup2['default'], + bsClass: 'dropdown' + }; + + Dropdown.propTypes = { + + bsClass: _react2['default'].PropTypes.string, + + /** + * The menu will open above the dropdown button, instead of below it. + */ + dropup: _react2['default'].PropTypes.bool, + + /** + * An html id attribute, necessary for assistive technologies, such as screen readers. + * @type {string|number} + * @required + */ + id: _reactPropTypesLibIsRequiredForA11y2['default'](_react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number])), + + componentClass: _reactPropTypesLibElementType2['default'], + + /** + * The children of a Dropdown may be a `<Dropdown.Toggle/>` or a `<Dropdown.Menu/>`. + * @type {node} + */ + children: _reactPropTypesLibAll2['default'](_utilsCustomPropTypes2['default'].requiredRoles(TOGGLE_ROLE, MENU_ROLE), _utilsCustomPropTypes2['default'].exclusiveRoles(MENU_ROLE)), + + /** + * Whether or not component is disabled. + */ + disabled: _react2['default'].PropTypes.bool, + + /** + * Align the menu to the right side of the Dropdown toggle + */ + pullRight: _react2['default'].PropTypes.bool, + + /** + * Whether or not the Dropdown is visible. + * + * @controllable onToggle + */ + open: _react2['default'].PropTypes.bool, + + /** + * A callback fired when the Dropdown closes. + */ + onClose: _react2['default'].PropTypes.func, + + /** + * A callback fired when the Dropdown wishes to change visibility. Called with the requested + * `open` value. + * + * ```js + * function(Boolean isOpen) {} + * ``` + * @controllable open + */ + onToggle: _react2['default'].PropTypes.func, + + /** + * A callback fired when a menu item is selected. + * + * ```js + * function(Object event, Any eventKey) + * ``` + */ + onSelect: _react2['default'].PropTypes.func, + + /** + * If `'menuitem'`, causes the dropdown to behave like a menu item rather than + * a menu button. + */ + role: _react2['default'].PropTypes.string + }; + + Dropdown = _uncontrollable2['default'](Dropdown, { open: 'onToggle' }); + + Dropdown.Toggle = _DropdownToggle2['default']; + Dropdown.Menu = _DropdownMenu2['default']; + + exports['default'] = Dropdown; + module.exports = exports['default']; + +/***/ }, +/* 83 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var babelHelpers = __webpack_require__(74); + + exports.__esModule = true; + + /**
+ * document.activeElement
+ */ + exports['default'] = activeElement; + + var _ownerDocument = __webpack_require__(84); + + var _ownerDocument2 = babelHelpers.interopRequireDefault(_ownerDocument); + + function activeElement() { + var doc = arguments[0] === undefined ? document : arguments[0]; + + try { + return doc.activeElement; + } catch (e) {} + } + + module.exports = exports['default']; + +/***/ }, +/* 84 */ +/***/ function(module, exports) { + + "use strict"; + + exports.__esModule = true; + exports["default"] = ownerDocument; + + function ownerDocument(node) { + return node && node.ownerDocument || document; + } + + module.exports = exports["default"]; + +/***/ }, +/* 85 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + var canUseDOM = __webpack_require__(78); + + var contains = (function () { + var root = canUseDOM && document.documentElement; + + return root && root.contains ? function (context, node) { + return context.contains(node); + } : root && root.compareDocumentPosition ? function (context, node) { + return context === node || !!(context.compareDocumentPosition(node) & 16); + } : function (context, node) { + if (node) do { + if (node === context) return true; + } while (node = node.parentNode); + + return false; + }; + })(); + + module.exports = contains; + +/***/ }, +/* 86 */ +/***/ function(module, exports) { + + // Source: http://jsfiddle.net/vWx8V/ + // http://stackoverflow.com/questions/5603195/full-list-of-javascript-keycodes + + + + /** + * Conenience method returns corresponding value for given keyName or keyCode. + * + * @param {Mixed} keyCode {Number} or keyName {String} + * @return {Mixed} + * @api public + */ + + exports = module.exports = function(searchInput) { + // Keyboard Events + if (searchInput && 'object' === typeof searchInput) { + var hasKeyCode = searchInput.which || searchInput.keyCode || searchInput.charCode + if (hasKeyCode) searchInput = hasKeyCode + } + + // Numbers + if ('number' === typeof searchInput) return names[searchInput] + + // Everything else (cast to string) + var search = String(searchInput) + + // check codes + var foundNamedKey = codes[search.toLowerCase()] + if (foundNamedKey) return foundNamedKey + + // check aliases + var foundNamedKey = aliases[search.toLowerCase()] + if (foundNamedKey) return foundNamedKey + + // weird character? + if (search.length === 1) return search.charCodeAt(0) + + return undefined + } + + /** + * Get by name + * + * exports.code['enter'] // => 13 + */ + + var codes = exports.code = exports.codes = { + 'backspace': 8, + 'tab': 9, + 'enter': 13, + 'shift': 16, + 'ctrl': 17, + 'alt': 18, + 'pause/break': 19, + 'caps lock': 20, + 'esc': 27, + 'space': 32, + 'page up': 33, + 'page down': 34, + 'end': 35, + 'home': 36, + 'left': 37, + 'up': 38, + 'right': 39, + 'down': 40, + 'insert': 45, + 'delete': 46, + 'command': 91, + 'right click': 93, + 'numpad *': 106, + 'numpad +': 107, + 'numpad -': 109, + 'numpad .': 110, + 'numpad /': 111, + 'num lock': 144, + 'scroll lock': 145, + 'my computer': 182, + 'my calculator': 183, + ';': 186, + '=': 187, + ',': 188, + '-': 189, + '.': 190, + '/': 191, + '`': 192, + '[': 219, + '\\': 220, + ']': 221, + "'": 222, + } + + // Helper aliases + + var aliases = exports.aliases = { + 'windows': 91, + '⇧': 16, + '⌥': 18, + '⌃': 17, + '⌘': 91, + 'ctl': 17, + 'control': 17, + 'option': 18, + 'pause': 19, + 'break': 19, + 'caps': 20, + 'return': 13, + 'escape': 27, + 'spc': 32, + 'pgup': 33, + 'pgdn': 33, + 'ins': 45, + 'del': 46, + 'cmd': 91 + } + + + /*! + * Programatically add the following + */ + + // lower case chars + for (i = 97; i < 123; i++) codes[String.fromCharCode(i)] = i - 32 + + // numbers + for (var i = 48; i < 58; i++) codes[i - 48] = i + + // function keys + for (i = 1; i < 13; i++) codes['f'+i] = i + 111 + + // numpad keys + for (i = 0; i < 10; i++) codes['numpad '+i] = i + 96 + + /** + * Get by code + * + * exports.name[13] // => 'Enter' + */ + + var names = exports.names = exports.title = {} // title for backward compat + + // Create reverse mapping + for (i in codes) names[codes[i]] = i + + // Add aliases + for (var alias in aliases) { + codes[alias] = aliases[alias] + } + + +/***/ }, +/* 87 */ +/***/ function(module, exports, __webpack_require__) { + + var baseEach = __webpack_require__(88), + createFind = __webpack_require__(113); + + /** + * Iterates over elements of `collection`, returning the first element + * `predicate` returns truthy for. The predicate is bound to `thisArg` and + * invoked with three arguments: (value, index|key, collection). + * + * If a property name is provided for `predicate` the created `_.property` + * style callback returns the property value of the given element. + * + * If a value is also provided for `thisArg` the created `_.matchesProperty` + * style callback returns `true` for elements that have a matching property + * value, else `false`. + * + * If an object is provided for `predicate` the created `_.matches` style + * callback returns `true` for elements that have the properties of the given + * object, else `false`. + * + * @static + * @memberOf _ + * @alias detect + * @category Collection + * @param {Array|Object|string} collection The collection to search. + * @param {Function|Object|string} [predicate=_.identity] The function invoked + * per iteration. + * @param {*} [thisArg] The `this` binding of `predicate`. + * @returns {*} Returns the matched element, else `undefined`. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false }, + * { 'user': 'pebbles', 'age': 1, 'active': true } + * ]; + * + * _.result(_.find(users, function(chr) { + * return chr.age < 40; + * }), 'user'); + * // => 'barney' + * + * // using the `_.matches` callback shorthand + * _.result(_.find(users, { 'age': 1, 'active': true }), 'user'); + * // => 'pebbles' + * + * // using the `_.matchesProperty` callback shorthand + * _.result(_.find(users, 'active', false), 'user'); + * // => 'fred' + * + * // using the `_.property` callback shorthand + * _.result(_.find(users, 'active'), 'user'); + * // => 'barney' + */ + var find = createFind(baseEach); + + module.exports = find; + + +/***/ }, +/* 88 */ +/***/ function(module, exports, __webpack_require__) { + + var baseForOwn = __webpack_require__(89), + createBaseEach = __webpack_require__(112); + + /** + * The base implementation of `_.forEach` without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object|string} Returns `collection`. + */ + var baseEach = createBaseEach(baseForOwn); + + module.exports = baseEach; + + +/***/ }, +/* 89 */ +/***/ function(module, exports, __webpack_require__) { + + var baseFor = __webpack_require__(90), + keys = __webpack_require__(97); + + /** + * The base implementation of `_.forOwn` without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ + function baseForOwn(object, iteratee) { + return baseFor(object, iteratee, keys); + } + + module.exports = baseForOwn; + + +/***/ }, +/* 90 */ +/***/ function(module, exports, __webpack_require__) { + + var createBaseFor = __webpack_require__(91); + + /** + * The base implementation of `baseForIn` and `baseForOwn` which iterates + * over `object` properties returned by `keysFunc` invoking `iteratee` for + * each property. Iteratee functions may exit iteration early by explicitly + * returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ + var baseFor = createBaseFor(); + + module.exports = baseFor; + + +/***/ }, +/* 91 */ +/***/ function(module, exports, __webpack_require__) { + + var toObject = __webpack_require__(92); + + /** + * Creates a base function for `_.forIn` or `_.forInRight`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var iterable = toObject(object), + props = keysFunc(object), + length = props.length, + index = fromRight ? length : -1; + + while ((fromRight ? index-- : ++index < length)) { + var key = props[index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; + } + + module.exports = createBaseFor; + + +/***/ }, +/* 92 */ +/***/ function(module, exports, __webpack_require__) { + + var isObject = __webpack_require__(93), + isString = __webpack_require__(94), + support = __webpack_require__(96); + + /** + * Converts `value` to an object if it's not one. + * + * @private + * @param {*} value The value to process. + * @returns {Object} Returns the object. + */ + function toObject(value) { + if (support.unindexedChars && isString(value)) { + var index = -1, + length = value.length, + result = Object(value); + + while (++index < length) { + result[index] = value.charAt(index); + } + return result; + } + return isObject(value) ? value : Object(value); + } + + module.exports = toObject; + + +/***/ }, +/* 93 */ +/***/ function(module, exports) { + + /** + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(1); + * // => false + */ + function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); + } + + module.exports = isObject; + + +/***/ }, +/* 94 */ +/***/ function(module, exports, __webpack_require__) { + + var isObjectLike = __webpack_require__(95); + + /** `Object#toString` result references. */ + var stringTag = '[object String]'; + + /** Used for native method references. */ + var objectProto = Object.prototype; + + /** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ + var objToString = objectProto.toString; + + /** + * Checks if `value` is classified as a `String` primitive or object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isString('abc'); + * // => true + * + * _.isString(1); + * // => false + */ + function isString(value) { + return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag); + } + + module.exports = isString; + + +/***/ }, +/* 95 */ +/***/ function(module, exports) { + + /** + * Checks if `value` is object-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + */ + function isObjectLike(value) { + return !!value && typeof value == 'object'; + } + + module.exports = isObjectLike; + + +/***/ }, +/* 96 */ +/***/ function(module, exports) { + + /** Used for native method references. */ + var arrayProto = Array.prototype, + errorProto = Error.prototype, + objectProto = Object.prototype; + + /** Native method references. */ + var propertyIsEnumerable = objectProto.propertyIsEnumerable, + splice = arrayProto.splice; + + /** + * An object environment feature flags. + * + * @static + * @memberOf _ + * @type Object + */ + var support = {}; + + (function(x) { + var Ctor = function() { this.x = x; }, + object = { '0': x, 'length': x }, + props = []; + + Ctor.prototype = { 'valueOf': x, 'y': x }; + for (var key in new Ctor) { props.push(key); } + + /** + * Detect if `name` or `message` properties of `Error.prototype` are + * enumerable by default (IE < 9, Safari < 5.1). + * + * @memberOf _.support + * @type boolean + */ + support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') || + propertyIsEnumerable.call(errorProto, 'name'); + + /** + * Detect if `prototype` properties are enumerable by default. + * + * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1 + * (if the prototype or a property on the prototype has been set) + * incorrectly set the `[[Enumerable]]` value of a function's `prototype` + * property to `true`. + * + * @memberOf _.support + * @type boolean + */ + support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype'); + + /** + * Detect if properties shadowing those on `Object.prototype` are non-enumerable. + * + * In IE < 9 an object's own properties, shadowing non-enumerable ones, + * are made non-enumerable as well (a.k.a the JScript `[[DontEnum]]` bug). + * + * @memberOf _.support + * @type boolean + */ + support.nonEnumShadows = !/valueOf/.test(props); + + /** + * Detect if own properties are iterated after inherited properties (IE < 9). + * + * @memberOf _.support + * @type boolean + */ + support.ownLast = props[0] != 'x'; + + /** + * Detect if `Array#shift` and `Array#splice` augment array-like objects + * correctly. + * + * Firefox < 10, compatibility modes of IE 8, and IE < 9 have buggy Array + * `shift()` and `splice()` functions that fail to remove the last element, + * `value[0]`, of array-like objects even though the "length" property is + * set to `0`. The `shift()` method is buggy in compatibility modes of IE 8, + * while `splice()` is buggy regardless of mode in IE < 9. + * + * @memberOf _.support + * @type boolean + */ + support.spliceObjects = (splice.call(object, 0, 1), !object[0]); + + /** + * Detect lack of support for accessing string characters by index. + * + * IE < 8 can't access characters by index. IE 8 can only access characters + * by index on string literals, not string objects. + * + * @memberOf _.support + * @type boolean + */ + support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx'; + }(1, 0)); + + module.exports = support; + + +/***/ }, +/* 97 */ +/***/ function(module, exports, __webpack_require__) { + + var getNative = __webpack_require__(98), + isArrayLike = __webpack_require__(102), + isObject = __webpack_require__(93), + shimKeys = __webpack_require__(106), + support = __webpack_require__(96); + + /* Native method references for those with the same name as other `lodash` methods. */ + var nativeKeys = getNative(Object, 'keys'); + + /** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys) + * for more details. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ + var keys = !nativeKeys ? shimKeys : function(object) { + var Ctor = object == null ? undefined : object.constructor; + if ((typeof Ctor == 'function' && Ctor.prototype === object) || + (typeof object == 'function' ? support.enumPrototypes : isArrayLike(object))) { + return shimKeys(object); + } + return isObject(object) ? nativeKeys(object) : []; + }; + + module.exports = keys; + + +/***/ }, +/* 98 */ +/***/ function(module, exports, __webpack_require__) { + + var isNative = __webpack_require__(99); + + /** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ + function getNative(object, key) { + var value = object == null ? undefined : object[key]; + return isNative(value) ? value : undefined; + } + + module.exports = getNative; + + +/***/ }, +/* 99 */ +/***/ function(module, exports, __webpack_require__) { + + var isFunction = __webpack_require__(100), + isHostObject = __webpack_require__(101), + isObjectLike = __webpack_require__(95); + + /** Used to detect host constructors (Safari > 5). */ + var reIsHostCtor = /^\[object .+?Constructor\]$/; + + /** Used for native method references. */ + var objectProto = Object.prototype; + + /** Used to resolve the decompiled source of functions. */ + var fnToString = Function.prototype.toString; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** Used to detect if a method is native. */ + var reIsNative = RegExp('^' + + fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' + ); + + /** + * Checks if `value` is a native function. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, else `false`. + * @example + * + * _.isNative(Array.prototype.push); + * // => true + * + * _.isNative(_); + * // => false + */ + function isNative(value) { + if (value == null) { + return false; + } + if (isFunction(value)) { + return reIsNative.test(fnToString.call(value)); + } + return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value); + } + + module.exports = isNative; + + +/***/ }, +/* 100 */ +/***/ function(module, exports, __webpack_require__) { + + var isObject = __webpack_require__(93); + + /** `Object#toString` result references. */ + var funcTag = '[object Function]'; + + /** Used for native method references. */ + var objectProto = Object.prototype; + + /** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ + var objToString = objectProto.toString; + + /** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ + function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in older versions of Chrome and Safari which return 'function' for regexes + // and Safari 8 which returns 'object' for typed array constructors. + return isObject(value) && objToString.call(value) == funcTag; + } + + module.exports = isFunction; + + +/***/ }, +/* 101 */ +/***/ function(module, exports) { + + /** + * Checks if `value` is a host object in IE < 9. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a host object, else `false`. + */ + var isHostObject = (function() { + try { + Object({ 'toString': 0 } + ''); + } catch(e) { + return function() { return false; }; + } + return function(value) { + // IE < 9 presents many host objects as `Object` objects that can coerce + // to strings despite having improperly defined `toString` methods. + return typeof value.toString != 'function' && typeof (value + '') == 'string'; + }; + }()); + + module.exports = isHostObject; + + +/***/ }, +/* 102 */ +/***/ function(module, exports, __webpack_require__) { + + var getLength = __webpack_require__(103), + isLength = __webpack_require__(105); + + /** + * Checks if `value` is array-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + */ + function isArrayLike(value) { + return value != null && isLength(getLength(value)); + } + + module.exports = isArrayLike; + + +/***/ }, +/* 103 */ +/***/ function(module, exports, __webpack_require__) { + + var baseProperty = __webpack_require__(104); + + /** + * Gets the "length" property value of `object`. + * + * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) + * that affects Safari on at least iOS 8.1-8.3 ARM64. + * + * @private + * @param {Object} object The object to query. + * @returns {*} Returns the "length" value. + */ + var getLength = baseProperty('length'); + + module.exports = getLength; + + +/***/ }, +/* 104 */ +/***/ function(module, exports, __webpack_require__) { + + var toObject = __webpack_require__(92); + + /** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new function. + */ + function baseProperty(key) { + return function(object) { + return object == null ? undefined : toObject(object)[key]; + }; + } + + module.exports = baseProperty; + + +/***/ }, +/* 105 */ +/***/ function(module, exports) { + + /** + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) + * of an array-like value. + */ + var MAX_SAFE_INTEGER = 9007199254740991; + + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ + function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + + module.exports = isLength; + + +/***/ }, +/* 106 */ +/***/ function(module, exports, __webpack_require__) { + + var isArguments = __webpack_require__(107), + isArray = __webpack_require__(108), + isIndex = __webpack_require__(109), + isLength = __webpack_require__(105), + isString = __webpack_require__(94), + keysIn = __webpack_require__(110); + + /** Used for native method references. */ + var objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** + * A fallback implementation of `Object.keys` which creates an array of the + * own enumerable property names of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function shimKeys(object) { + var props = keysIn(object), + propsLength = props.length, + length = propsLength && object.length; + + var allowIndexes = !!length && isLength(length) && + (isArray(object) || isArguments(object) || isString(object)); + + var index = -1, + result = []; + + while (++index < propsLength) { + var key = props[index]; + if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) { + result.push(key); + } + } + return result; + } + + module.exports = shimKeys; + + +/***/ }, +/* 107 */ +/***/ function(module, exports, __webpack_require__) { + + var isArrayLike = __webpack_require__(102), + isObjectLike = __webpack_require__(95); + + /** Used for native method references. */ + var objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** Native method references. */ + var propertyIsEnumerable = objectProto.propertyIsEnumerable; + + /** + * Checks if `value` is classified as an `arguments` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ + function isArguments(value) { + return isObjectLike(value) && isArrayLike(value) && + hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee'); + } + + module.exports = isArguments; + + +/***/ }, +/* 108 */ +/***/ function(module, exports, __webpack_require__) { + + var getNative = __webpack_require__(98), + isLength = __webpack_require__(105), + isObjectLike = __webpack_require__(95); + + /** `Object#toString` result references. */ + var arrayTag = '[object Array]'; + + /** Used for native method references. */ + var objectProto = Object.prototype; + + /** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ + var objToString = objectProto.toString; + + /* Native method references for those with the same name as other `lodash` methods. */ + var nativeIsArray = getNative(Array, 'isArray'); + + /** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(function() { return arguments; }()); + * // => false + */ + var isArray = nativeIsArray || function(value) { + return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag; + }; + + module.exports = isArray; + + +/***/ }, +/* 109 */ +/***/ function(module, exports) { + + /** Used to detect unsigned integer values. */ + var reIsUint = /^\d+$/; + + /** + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) + * of an array-like value. + */ + var MAX_SAFE_INTEGER = 9007199254740991; + + /** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ + function isIndex(value, length) { + value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1; + length = length == null ? MAX_SAFE_INTEGER : length; + return value > -1 && value % 1 == 0 && value < length; + } + + module.exports = isIndex; + + +/***/ }, +/* 110 */ +/***/ function(module, exports, __webpack_require__) { + + var arrayEach = __webpack_require__(111), + isArguments = __webpack_require__(107), + isArray = __webpack_require__(108), + isFunction = __webpack_require__(100), + isIndex = __webpack_require__(109), + isLength = __webpack_require__(105), + isObject = __webpack_require__(93), + isString = __webpack_require__(94), + support = __webpack_require__(96); + + /** `Object#toString` result references. */ + var arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + stringTag = '[object String]'; + + /** Used to fix the JScript `[[DontEnum]]` bug. */ + var shadowProps = [ + 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', + 'toLocaleString', 'toString', 'valueOf' + ]; + + /** Used for native method references. */ + var errorProto = Error.prototype, + objectProto = Object.prototype, + stringProto = String.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ + var objToString = objectProto.toString; + + /** Used to avoid iterating over non-enumerable properties in IE < 9. */ + var nonEnumProps = {}; + nonEnumProps[arrayTag] = nonEnumProps[dateTag] = nonEnumProps[numberTag] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true }; + nonEnumProps[boolTag] = nonEnumProps[stringTag] = { 'constructor': true, 'toString': true, 'valueOf': true }; + nonEnumProps[errorTag] = nonEnumProps[funcTag] = nonEnumProps[regexpTag] = { 'constructor': true, 'toString': true }; + nonEnumProps[objectTag] = { 'constructor': true }; + + arrayEach(shadowProps, function(key) { + for (var tag in nonEnumProps) { + if (hasOwnProperty.call(nonEnumProps, tag)) { + var props = nonEnumProps[tag]; + props[key] = hasOwnProperty.call(props, key); + } + } + }); + + /** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ + function keysIn(object) { + if (object == null) { + return []; + } + if (!isObject(object)) { + object = Object(object); + } + var length = object.length; + + length = (length && isLength(length) && + (isArray(object) || isArguments(object) || isString(object)) && length) || 0; + + var Ctor = object.constructor, + index = -1, + proto = (isFunction(Ctor) && Ctor.prototype) || objectProto, + isProto = proto === object, + result = Array(length), + skipIndexes = length > 0, + skipErrorProps = support.enumErrorProps && (object === errorProto || object instanceof Error), + skipProto = support.enumPrototypes && isFunction(object); + + while (++index < length) { + result[index] = (index + ''); + } + // lodash skips the `constructor` property when it infers it's iterating + // over a `prototype` object because IE < 9 can't set the `[[Enumerable]]` + // attribute of an existing property and the `constructor` property of a + // prototype defaults to non-enumerable. + for (var key in object) { + if (!(skipProto && key == 'prototype') && + !(skipErrorProps && (key == 'message' || key == 'name')) && + !(skipIndexes && isIndex(key, length)) && + !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { + result.push(key); + } + } + if (support.nonEnumShadows && object !== objectProto) { + var tag = object === stringProto ? stringTag : (object === errorProto ? errorTag : objToString.call(object)), + nonEnums = nonEnumProps[tag] || nonEnumProps[objectTag]; + + if (tag == objectTag) { + proto = objectProto; + } + length = shadowProps.length; + while (length--) { + key = shadowProps[length]; + var nonEnum = nonEnums[key]; + if (!(isProto && nonEnum) && + (nonEnum ? hasOwnProperty.call(object, key) : object[key] !== proto[key])) { + result.push(key); + } + } + } + return result; + } + + module.exports = keysIn; + + +/***/ }, +/* 111 */ +/***/ function(module, exports) { + + /** + * A specialized version of `_.forEach` for arrays without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns `array`. + */ + function arrayEach(array, iteratee) { + var index = -1, + length = array.length; + + while (++index < length) { + if (iteratee(array[index], index, array) === false) { + break; + } + } + return array; + } + + module.exports = arrayEach; + + +/***/ }, +/* 112 */ +/***/ function(module, exports, __webpack_require__) { + + var getLength = __webpack_require__(103), + isLength = __webpack_require__(105), + toObject = __webpack_require__(92); + + /** + * Creates a `baseEach` or `baseEachRight` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee) { + var length = collection ? getLength(collection) : 0; + if (!isLength(length)) { + return eachFunc(collection, iteratee); + } + var index = fromRight ? length : -1, + iterable = toObject(collection); + + while ((fromRight ? index-- : ++index < length)) { + if (iteratee(iterable[index], index, iterable) === false) { + break; + } + } + return collection; + }; + } + + module.exports = createBaseEach; + + +/***/ }, +/* 113 */ +/***/ function(module, exports, __webpack_require__) { + + var baseCallback = __webpack_require__(114), + baseFind = __webpack_require__(138), + baseFindIndex = __webpack_require__(139), + isArray = __webpack_require__(108); + + /** + * Creates a `_.find` or `_.findLast` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new find function. + */ + function createFind(eachFunc, fromRight) { + return function(collection, predicate, thisArg) { + predicate = baseCallback(predicate, thisArg, 3); + if (isArray(collection)) { + var index = baseFindIndex(collection, predicate, fromRight); + return index > -1 ? collection[index] : undefined; + } + return baseFind(collection, predicate, eachFunc); + }; + } + + module.exports = createFind; + + +/***/ }, +/* 114 */ +/***/ function(module, exports, __webpack_require__) { + + var baseMatches = __webpack_require__(115), + baseMatchesProperty = __webpack_require__(127), + bindCallback = __webpack_require__(134), + identity = __webpack_require__(135), + property = __webpack_require__(136); + + /** + * The base implementation of `_.callback` which supports specifying the + * number of arguments to provide to `func`. + * + * @private + * @param {*} [func=_.identity] The value to convert to a callback. + * @param {*} [thisArg] The `this` binding of `func`. + * @param {number} [argCount] The number of arguments to provide to `func`. + * @returns {Function} Returns the callback. + */ + function baseCallback(func, thisArg, argCount) { + var type = typeof func; + if (type == 'function') { + return thisArg === undefined + ? func + : bindCallback(func, thisArg, argCount); + } + if (func == null) { + return identity; + } + if (type == 'object') { + return baseMatches(func); + } + return thisArg === undefined + ? property(func) + : baseMatchesProperty(func, thisArg); + } + + module.exports = baseCallback; + + +/***/ }, +/* 115 */ +/***/ function(module, exports, __webpack_require__) { + + var baseIsMatch = __webpack_require__(116), + getMatchData = __webpack_require__(124), + toObject = __webpack_require__(92); + + /** + * The base implementation of `_.matches` which does not clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new function. + */ + function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + var key = matchData[0][0], + value = matchData[0][1]; + + return function(object) { + if (object == null) { + return false; + } + object = toObject(object); + return object[key] === value && (value !== undefined || (key in object)); + }; + } + return function(object) { + return baseIsMatch(object, matchData); + }; + } + + module.exports = baseMatches; + + +/***/ }, +/* 116 */ +/***/ function(module, exports, __webpack_require__) { + + var baseIsEqual = __webpack_require__(117), + toObject = __webpack_require__(92); + + /** + * The base implementation of `_.isMatch` without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Object} object The object to inspect. + * @param {Array} matchData The propery names, values, and compare flags to match. + * @param {Function} [customizer] The function to customize comparing objects. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + */ + function baseIsMatch(object, matchData, customizer) { + var index = matchData.length, + length = index, + noCustomizer = !customizer; + + if (object == null) { + return !length; + } + object = toObject(object); + while (index--) { + var data = matchData[index]; + if ((noCustomizer && data[2]) + ? data[1] !== object[data[0]] + : !(data[0] in object) + ) { + return false; + } + } + while (++index < length) { + data = matchData[index]; + var key = data[0], + objValue = object[key], + srcValue = data[1]; + + if (noCustomizer && data[2]) { + if (objValue === undefined && !(key in object)) { + return false; + } + } else { + var result = customizer ? customizer(objValue, srcValue, key) : undefined; + if (!(result === undefined ? baseIsEqual(srcValue, objValue, customizer, true) : result)) { + return false; + } + } + } + return true; + } + + module.exports = baseIsMatch; + + +/***/ }, +/* 117 */ +/***/ function(module, exports, __webpack_require__) { + + var baseIsEqualDeep = __webpack_require__(118), + isObject = __webpack_require__(93), + isObjectLike = __webpack_require__(95); + + /** + * The base implementation of `_.isEqual` without support for `this` binding + * `customizer` functions. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {Function} [customizer] The function to customize comparing values. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA] Tracks traversed `value` objects. + * @param {Array} [stackB] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ + function baseIsEqual(value, other, customizer, isLoose, stackA, stackB) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, baseIsEqual, customizer, isLoose, stackA, stackB); + } + + module.exports = baseIsEqual; + + +/***/ }, +/* 118 */ +/***/ function(module, exports, __webpack_require__) { + + var equalArrays = __webpack_require__(119), + equalByTag = __webpack_require__(121), + equalObjects = __webpack_require__(122), + isArray = __webpack_require__(108), + isHostObject = __webpack_require__(101), + isTypedArray = __webpack_require__(123); + + /** `Object#toString` result references. */ + var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + objectTag = '[object Object]'; + + /** Used for native method references. */ + var objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ + var objToString = objectProto.toString; + + /** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Function} [customizer] The function to customize comparing objects. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA=[]] Tracks traversed `value` objects. + * @param {Array} [stackB=[]] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function baseIsEqualDeep(object, other, equalFunc, customizer, isLoose, stackA, stackB) { + var objIsArr = isArray(object), + othIsArr = isArray(other), + objTag = arrayTag, + othTag = arrayTag; + + if (!objIsArr) { + objTag = objToString.call(object); + if (objTag == argsTag) { + objTag = objectTag; + } else if (objTag != objectTag) { + objIsArr = isTypedArray(object); + } + } + if (!othIsArr) { + othTag = objToString.call(other); + if (othTag == argsTag) { + othTag = objectTag; + } else if (othTag != objectTag) { + othIsArr = isTypedArray(other); + } + } + var objIsObj = objTag == objectTag && !isHostObject(object), + othIsObj = othTag == objectTag && !isHostObject(other), + isSameTag = objTag == othTag; + + if (isSameTag && !(objIsArr || objIsObj)) { + return equalByTag(object, other, objTag); + } + if (!isLoose) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); + + if (objIsWrapped || othIsWrapped) { + return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, isLoose, stackA, stackB); + } + } + if (!isSameTag) { + return false; + } + // Assume cyclic values are equal. + // For more information on detecting circular references see https://es5.github.io/#JO. + stackA || (stackA = []); + stackB || (stackB = []); + + var length = stackA.length; + while (length--) { + if (stackA[length] == object) { + return stackB[length] == other; + } + } + // Add `object` and `other` to the stack of traversed objects. + stackA.push(object); + stackB.push(other); + + var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isLoose, stackA, stackB); + + stackA.pop(); + stackB.pop(); + + return result; + } + + module.exports = baseIsEqualDeep; + + +/***/ }, +/* 119 */ +/***/ function(module, exports, __webpack_require__) { + + var arraySome = __webpack_require__(120); + + /** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Function} [customizer] The function to customize comparing arrays. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA] Tracks traversed `value` objects. + * @param {Array} [stackB] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ + function equalArrays(array, other, equalFunc, customizer, isLoose, stackA, stackB) { + var index = -1, + arrLength = array.length, + othLength = other.length; + + if (arrLength != othLength && !(isLoose && othLength > arrLength)) { + return false; + } + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index], + result = customizer ? customizer(isLoose ? othValue : arrValue, isLoose ? arrValue : othValue, index) : undefined; + + if (result !== undefined) { + if (result) { + continue; + } + return false; + } + // Recursively compare arrays (susceptible to call stack limits). + if (isLoose) { + if (!arraySome(other, function(othValue) { + return arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB); + })) { + return false; + } + } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB))) { + return false; + } + } + return true; + } + + module.exports = equalArrays; + + +/***/ }, +/* 120 */ +/***/ function(module, exports) { + + /** + * A specialized version of `_.some` for arrays without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ + function arraySome(array, predicate) { + var index = -1, + length = array.length; + + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; + } + + module.exports = arraySome; + + +/***/ }, +/* 121 */ +/***/ function(module, exports) { + + /** `Object#toString` result references. */ + var boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + numberTag = '[object Number]', + regexpTag = '[object RegExp]', + stringTag = '[object String]'; + + /** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalByTag(object, other, tag) { + switch (tag) { + case boolTag: + case dateTag: + // Coerce dates and booleans to numbers, dates to milliseconds and booleans + // to `1` or `0` treating invalid dates coerced to `NaN` as not equal. + return +object == +other; + + case errorTag: + return object.name == other.name && object.message == other.message; + + case numberTag: + // Treat `NaN` vs. `NaN` as equal. + return (object != +object) + ? other != +other + : object == +other; + + case regexpTag: + case stringTag: + // Coerce regexes to strings and treat strings primitives and string + // objects as equal. See https://es5.github.io/#x15.10.6.4 for more details. + return object == (other + ''); + } + return false; + } + + module.exports = equalByTag; + + +/***/ }, +/* 122 */ +/***/ function(module, exports, __webpack_require__) { + + var keys = __webpack_require__(97); + + /** Used for native method references. */ + var objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Function} [customizer] The function to customize comparing values. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA] Tracks traversed `value` objects. + * @param {Array} [stackB] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalObjects(object, other, equalFunc, customizer, isLoose, stackA, stackB) { + var objProps = keys(object), + objLength = objProps.length, + othProps = keys(other), + othLength = othProps.length; + + if (objLength != othLength && !isLoose) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isLoose ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + var skipCtor = isLoose; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key], + result = customizer ? customizer(isLoose ? othValue : objValue, isLoose? objValue : othValue, key) : undefined; + + // Recursively compare objects (susceptible to call stack limits). + if (!(result === undefined ? equalFunc(objValue, othValue, customizer, isLoose, stackA, stackB) : result)) { + return false; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (!skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + return false; + } + } + return true; + } + + module.exports = equalObjects; + + +/***/ }, +/* 123 */ +/***/ function(module, exports, __webpack_require__) { + + var isLength = __webpack_require__(105), + isObjectLike = __webpack_require__(95); + + /** `Object#toString` result references. */ + var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + weakMapTag = '[object WeakMap]'; + + var arrayBufferTag = '[object ArrayBuffer]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + + /** Used to identify `toStringTag` values of typed arrays. */ + var typedArrayTags = {}; + typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = + typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = + typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = + typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = + typedArrayTags[uint32Tag] = true; + typedArrayTags[argsTag] = typedArrayTags[arrayTag] = + typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = + typedArrayTags[dateTag] = typedArrayTags[errorTag] = + typedArrayTags[funcTag] = typedArrayTags[mapTag] = + typedArrayTags[numberTag] = typedArrayTags[objectTag] = + typedArrayTags[regexpTag] = typedArrayTags[setTag] = + typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; + + /** Used for native method references. */ + var objectProto = Object.prototype; + + /** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ + var objToString = objectProto.toString; + + /** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ + function isTypedArray(value) { + return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)]; + } + + module.exports = isTypedArray; + + +/***/ }, +/* 124 */ +/***/ function(module, exports, __webpack_require__) { + + var isStrictComparable = __webpack_require__(125), + pairs = __webpack_require__(126); + + /** + * Gets the propery names, values, and compare flags of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the match data of `object`. + */ + function getMatchData(object) { + var result = pairs(object), + length = result.length; + + while (length--) { + result[length][2] = isStrictComparable(result[length][1]); + } + return result; + } + + module.exports = getMatchData; + + +/***/ }, +/* 125 */ +/***/ function(module, exports, __webpack_require__) { + + var isObject = __webpack_require__(93); + + /** + * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` if suitable for strict + * equality comparisons, else `false`. + */ + function isStrictComparable(value) { + return value === value && !isObject(value); + } + + module.exports = isStrictComparable; + + +/***/ }, +/* 126 */ +/***/ function(module, exports, __webpack_require__) { + + var keys = __webpack_require__(97), + toObject = __webpack_require__(92); + + /** + * Creates a two dimensional array of the key-value pairs for `object`, + * e.g. `[[key1, value1], [key2, value2]]`. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the new array of key-value pairs. + * @example + * + * _.pairs({ 'barney': 36, 'fred': 40 }); + * // => [['barney', 36], ['fred', 40]] (iteration order is not guaranteed) + */ + function pairs(object) { + object = toObject(object); + + var index = -1, + props = keys(object), + length = props.length, + result = Array(length); + + while (++index < length) { + var key = props[index]; + result[index] = [key, object[key]]; + } + return result; + } + + module.exports = pairs; + + +/***/ }, +/* 127 */ +/***/ function(module, exports, __webpack_require__) { + + var baseGet = __webpack_require__(128), + baseIsEqual = __webpack_require__(117), + baseSlice = __webpack_require__(129), + isArray = __webpack_require__(108), + isKey = __webpack_require__(130), + isStrictComparable = __webpack_require__(125), + last = __webpack_require__(131), + toObject = __webpack_require__(92), + toPath = __webpack_require__(132); + + /** + * The base implementation of `_.matchesProperty` which does not clone `srcValue`. + * + * @private + * @param {string} path The path of the property to get. + * @param {*} srcValue The value to compare. + * @returns {Function} Returns the new function. + */ + function baseMatchesProperty(path, srcValue) { + var isArr = isArray(path), + isCommon = isKey(path) && isStrictComparable(srcValue), + pathKey = (path + ''); + + path = toPath(path); + return function(object) { + if (object == null) { + return false; + } + var key = pathKey; + object = toObject(object); + if ((isArr || !isCommon) && !(key in object)) { + object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1)); + if (object == null) { + return false; + } + key = last(path); + object = toObject(object); + } + return object[key] === srcValue + ? (srcValue !== undefined || (key in object)) + : baseIsEqual(srcValue, object[key], undefined, true); + }; + } + + module.exports = baseMatchesProperty; + + +/***/ }, +/* 128 */ +/***/ function(module, exports, __webpack_require__) { + + var toObject = __webpack_require__(92); + + /** + * The base implementation of `get` without support for string paths + * and default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array} path The path of the property to get. + * @param {string} [pathKey] The key representation of path. + * @returns {*} Returns the resolved value. + */ + function baseGet(object, path, pathKey) { + if (object == null) { + return; + } + object = toObject(object); + if (pathKey !== undefined && pathKey in object) { + path = [pathKey]; + } + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = toObject(object)[path[index++]]; + } + return (index && index == length) ? object : undefined; + } + + module.exports = baseGet; + + +/***/ }, +/* 129 */ +/***/ function(module, exports) { + + /** + * The base implementation of `_.slice` without an iteratee call guard. + * + * @private + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */ + function baseSlice(array, start, end) { + var index = -1, + length = array.length; + + start = start == null ? 0 : (+start || 0); + if (start < 0) { + start = -start > length ? 0 : (length + start); + } + end = (end === undefined || end > length) ? length : (+end || 0); + if (end < 0) { + end += length; + } + length = start > end ? 0 : ((end - start) >>> 0); + start >>>= 0; + + var result = Array(length); + while (++index < length) { + result[index] = array[index + start]; + } + return result; + } + + module.exports = baseSlice; + + +/***/ }, +/* 130 */ +/***/ function(module, exports, __webpack_require__) { + + var isArray = __webpack_require__(108), + toObject = __webpack_require__(92); + + /** Used to match property names within property paths. */ + var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/; + + /** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ + function isKey(value, object) { + var type = typeof value; + if ((type == 'string' && reIsPlainProp.test(value)) || type == 'number') { + return true; + } + if (isArray(value)) { + return false; + } + var result = !reIsDeepProp.test(value); + return result || (object != null && value in toObject(object)); + } + + module.exports = isKey; + + +/***/ }, +/* 131 */ +/***/ function(module, exports) { + + /** + * Gets the last element of `array`. + * + * @static + * @memberOf _ + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the last element of `array`. + * @example + * + * _.last([1, 2, 3]); + * // => 3 + */ + function last(array) { + var length = array ? array.length : 0; + return length ? array[length - 1] : undefined; + } + + module.exports = last; + + +/***/ }, +/* 132 */ +/***/ function(module, exports, __webpack_require__) { + + var baseToString = __webpack_require__(133), + isArray = __webpack_require__(108); + + /** Used to match property names within property paths. */ + var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g; + + /** Used to match backslashes in property paths. */ + var reEscapeChar = /\\(\\)?/g; + + /** + * Converts `value` to property path array if it's not one. + * + * @private + * @param {*} value The value to process. + * @returns {Array} Returns the property path array. + */ + function toPath(value) { + if (isArray(value)) { + return value; + } + var result = []; + baseToString(value).replace(rePropName, function(match, number, quote, string) { + result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; + } + + module.exports = toPath; + + +/***/ }, +/* 133 */ +/***/ function(module, exports) { + + /** + * Converts `value` to a string if it's not one. An empty string is returned + * for `null` or `undefined` values. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ + function baseToString(value) { + return value == null ? '' : (value + ''); + } + + module.exports = baseToString; + + +/***/ }, +/* 134 */ +/***/ function(module, exports, __webpack_require__) { + + var identity = __webpack_require__(135); + + /** + * A specialized version of `baseCallback` which only supports `this` binding + * and specifying the number of arguments to provide to `func`. + * + * @private + * @param {Function} func The function to bind. + * @param {*} thisArg The `this` binding of `func`. + * @param {number} [argCount] The number of arguments to provide to `func`. + * @returns {Function} Returns the callback. + */ + function bindCallback(func, thisArg, argCount) { + if (typeof func != 'function') { + return identity; + } + if (thisArg === undefined) { + return func; + } + switch (argCount) { + case 1: return function(value) { + return func.call(thisArg, value); + }; + case 3: return function(value, index, collection) { + return func.call(thisArg, value, index, collection); + }; + case 4: return function(accumulator, value, index, collection) { + return func.call(thisArg, accumulator, value, index, collection); + }; + case 5: return function(value, other, key, object, source) { + return func.call(thisArg, value, other, key, object, source); + }; + } + return function() { + return func.apply(thisArg, arguments); + }; + } + + module.exports = bindCallback; + + +/***/ }, +/* 135 */ +/***/ function(module, exports) { + + /** + * This method returns the first argument provided to it. + * + * @static + * @memberOf _ + * @category Utility + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'user': 'fred' }; + * + * _.identity(object) === object; + * // => true + */ + function identity(value) { + return value; + } + + module.exports = identity; + + +/***/ }, +/* 136 */ +/***/ function(module, exports, __webpack_require__) { + + var baseProperty = __webpack_require__(104), + basePropertyDeep = __webpack_require__(137), + isKey = __webpack_require__(130); + + /** + * Creates a function that returns the property value at `path` on a + * given object. + * + * @static + * @memberOf _ + * @category Utility + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new function. + * @example + * + * var objects = [ + * { 'a': { 'b': { 'c': 2 } } }, + * { 'a': { 'b': { 'c': 1 } } } + * ]; + * + * _.map(objects, _.property('a.b.c')); + * // => [2, 1] + * + * _.pluck(_.sortBy(objects, _.property(['a', 'b', 'c'])), 'a.b.c'); + * // => [1, 2] + */ + function property(path) { + return isKey(path) ? baseProperty(path) : basePropertyDeep(path); + } + + module.exports = property; + + +/***/ }, +/* 137 */ +/***/ function(module, exports, __webpack_require__) { + + var baseGet = __webpack_require__(128), + toPath = __webpack_require__(132); + + /** + * A specialized version of `baseProperty` which supports deep paths. + * + * @private + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new function. + */ + function basePropertyDeep(path) { + var pathKey = (path + ''); + path = toPath(path); + return function(object) { + return baseGet(object, path, pathKey); + }; + } + + module.exports = basePropertyDeep; + + +/***/ }, +/* 138 */ +/***/ function(module, exports) { + + /** + * The base implementation of `_.find`, `_.findLast`, `_.findKey`, and `_.findLastKey`, + * without support for callback shorthands and `this` binding, which iterates + * over `collection` using the provided `eachFunc`. + * + * @private + * @param {Array|Object|string} collection The collection to search. + * @param {Function} predicate The function invoked per iteration. + * @param {Function} eachFunc The function to iterate over `collection`. + * @param {boolean} [retKey] Specify returning the key of the found element + * instead of the element itself. + * @returns {*} Returns the found element or its key, else `undefined`. + */ + function baseFind(collection, predicate, eachFunc, retKey) { + var result; + eachFunc(collection, function(value, key, collection) { + if (predicate(value, key, collection)) { + result = retKey ? key : value; + return false; + } + }); + return result; + } + + module.exports = baseFind; + + +/***/ }, +/* 139 */ +/***/ function(module, exports) { + + /** + * The base implementation of `_.findIndex` and `_.findLastIndex` without + * support for callback shorthands and `this` binding. + * + * @private + * @param {Array} array The array to search. + * @param {Function} predicate The function invoked per iteration. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function baseFindIndex(array, predicate, fromRight) { + var length = array.length, + index = fromRight ? length : -1; + + while ((fromRight ? index-- : ++index < length)) { + if (predicate(array[index], index, array)) { + return index; + } + } + return -1; + } + + module.exports = baseFindIndex; + + +/***/ }, +/* 140 */ +/***/ function(module, exports, __webpack_require__) { + + var arrayMap = __webpack_require__(141), + baseDifference = __webpack_require__(142), + baseFlatten = __webpack_require__(149), + bindCallback = __webpack_require__(134), + keysIn = __webpack_require__(110), + pickByArray = __webpack_require__(151), + pickByCallback = __webpack_require__(152), + restParam = __webpack_require__(154); + + /** + * The opposite of `_.pick`; this method creates an object composed of the + * own and inherited enumerable properties of `object` that are not omitted. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {Function|...(string|string[])} [predicate] The function invoked per + * iteration or property names to omit, specified as individual property + * names or arrays of property names. + * @param {*} [thisArg] The `this` binding of `predicate`. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'user': 'fred', 'age': 40 }; + * + * _.omit(object, 'age'); + * // => { 'user': 'fred' } + * + * _.omit(object, _.isNumber); + * // => { 'user': 'fred' } + */ + var omit = restParam(function(object, props) { + if (object == null) { + return {}; + } + if (typeof props[0] != 'function') { + var props = arrayMap(baseFlatten(props), String); + return pickByArray(object, baseDifference(keysIn(object), props)); + } + var predicate = bindCallback(props[0], props[1], 3); + return pickByCallback(object, function(value, key, object) { + return !predicate(value, key, object); + }); + }); + + module.exports = omit; + + +/***/ }, +/* 141 */ +/***/ function(module, exports) { + + /** + * A specialized version of `_.map` for arrays without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ + function arrayMap(array, iteratee) { + var index = -1, + length = array.length, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; + } + + module.exports = arrayMap; + + +/***/ }, +/* 142 */ +/***/ function(module, exports, __webpack_require__) { + + var baseIndexOf = __webpack_require__(143), + cacheIndexOf = __webpack_require__(145), + createCache = __webpack_require__(146); + + /** Used as the size to enable large array optimizations. */ + var LARGE_ARRAY_SIZE = 200; + + /** + * The base implementation of `_.difference` which accepts a single array + * of values to exclude. + * + * @private + * @param {Array} array The array to inspect. + * @param {Array} values The values to exclude. + * @returns {Array} Returns the new array of filtered values. + */ + function baseDifference(array, values) { + var length = array ? array.length : 0, + result = []; + + if (!length) { + return result; + } + var index = -1, + indexOf = baseIndexOf, + isCommon = true, + cache = (isCommon && values.length >= LARGE_ARRAY_SIZE) ? createCache(values) : null, + valuesLength = values.length; + + if (cache) { + indexOf = cacheIndexOf; + isCommon = false; + values = cache; + } + outer: + while (++index < length) { + var value = array[index]; + + if (isCommon && value === value) { + var valuesIndex = valuesLength; + while (valuesIndex--) { + if (values[valuesIndex] === value) { + continue outer; + } + } + result.push(value); + } + else if (indexOf(values, value, 0) < 0) { + result.push(value); + } + } + return result; + } + + module.exports = baseDifference; + + +/***/ }, +/* 143 */ +/***/ function(module, exports, __webpack_require__) { + + var indexOfNaN = __webpack_require__(144); + + /** + * The base implementation of `_.indexOf` without support for binary searches. + * + * @private + * @param {Array} array The array to search. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function baseIndexOf(array, value, fromIndex) { + if (value !== value) { + return indexOfNaN(array, fromIndex); + } + var index = fromIndex - 1, + length = array.length; + + while (++index < length) { + if (array[index] === value) { + return index; + } + } + return -1; + } + + module.exports = baseIndexOf; + + +/***/ }, +/* 144 */ +/***/ function(module, exports) { + + /** + * Gets the index at which the first occurrence of `NaN` is found in `array`. + * + * @private + * @param {Array} array The array to search. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched `NaN`, else `-1`. + */ + function indexOfNaN(array, fromIndex, fromRight) { + var length = array.length, + index = fromIndex + (fromRight ? 0 : -1); + + while ((fromRight ? index-- : ++index < length)) { + var other = array[index]; + if (other !== other) { + return index; + } + } + return -1; + } + + module.exports = indexOfNaN; + + +/***/ }, +/* 145 */ +/***/ function(module, exports, __webpack_require__) { + + var isObject = __webpack_require__(93); + + /** + * Checks if `value` is in `cache` mimicking the return signature of + * `_.indexOf` by returning `0` if the value is found, else `-1`. + * + * @private + * @param {Object} cache The cache to search. + * @param {*} value The value to search for. + * @returns {number} Returns `0` if `value` is found, else `-1`. + */ + function cacheIndexOf(cache, value) { + var data = cache.data, + result = (typeof value == 'string' || isObject(value)) ? data.set.has(value) : data.hash[value]; + + return result ? 0 : -1; + } + + module.exports = cacheIndexOf; + + +/***/ }, +/* 146 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {var SetCache = __webpack_require__(147), + getNative = __webpack_require__(98); + + /** Native method references. */ + var Set = getNative(global, 'Set'); + + /* Native method references for those with the same name as other `lodash` methods. */ + var nativeCreate = getNative(Object, 'create'); + + /** + * Creates a `Set` cache object to optimize linear searches of large arrays. + * + * @private + * @param {Array} [values] The values to cache. + * @returns {null|Object} Returns the new cache object if `Set` is supported, else `null`. + */ + function createCache(values) { + return (nativeCreate && Set) ? new SetCache(values) : null; + } + + module.exports = createCache; + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }, +/* 147 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {var cachePush = __webpack_require__(148), + getNative = __webpack_require__(98); + + /** Native method references. */ + var Set = getNative(global, 'Set'); + + /* Native method references for those with the same name as other `lodash` methods. */ + var nativeCreate = getNative(Object, 'create'); + + /** + * + * Creates a cache object to store unique values. + * + * @private + * @param {Array} [values] The values to cache. + */ + function SetCache(values) { + var length = values ? values.length : 0; + + this.data = { 'hash': nativeCreate(null), 'set': new Set }; + while (length--) { + this.push(values[length]); + } + } + + // Add functions to the `Set` cache. + SetCache.prototype.push = cachePush; + + module.exports = SetCache; + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }, +/* 148 */ +/***/ function(module, exports, __webpack_require__) { + + var isObject = __webpack_require__(93); + + /** + * Adds `value` to the cache. + * + * @private + * @name push + * @memberOf SetCache + * @param {*} value The value to cache. + */ + function cachePush(value) { + var data = this.data; + if (typeof value == 'string' || isObject(value)) { + data.set.add(value); + } else { + data.hash[value] = true; + } + } + + module.exports = cachePush; + + +/***/ }, +/* 149 */ +/***/ function(module, exports, __webpack_require__) { + + var arrayPush = __webpack_require__(150), + isArguments = __webpack_require__(107), + isArray = __webpack_require__(108), + isArrayLike = __webpack_require__(102), + isObjectLike = __webpack_require__(95); + + /** + * The base implementation of `_.flatten` with added support for restricting + * flattening and specifying the start index. + * + * @private + * @param {Array} array The array to flatten. + * @param {boolean} [isDeep] Specify a deep flatten. + * @param {boolean} [isStrict] Restrict flattening to arrays-like objects. + * @param {Array} [result=[]] The initial result value. + * @returns {Array} Returns the new flattened array. + */ + function baseFlatten(array, isDeep, isStrict, result) { + result || (result = []); + + var index = -1, + length = array.length; + + while (++index < length) { + var value = array[index]; + if (isObjectLike(value) && isArrayLike(value) && + (isStrict || isArray(value) || isArguments(value))) { + if (isDeep) { + // Recursively flatten arrays (susceptible to call stack limits). + baseFlatten(value, isDeep, isStrict, result); + } else { + arrayPush(result, value); + } + } else if (!isStrict) { + result[result.length] = value; + } + } + return result; + } + + module.exports = baseFlatten; + + +/***/ }, +/* 150 */ +/***/ function(module, exports) { + + /** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ + function arrayPush(array, values) { + var index = -1, + length = values.length, + offset = array.length; + + while (++index < length) { + array[offset + index] = values[index]; + } + return array; + } + + module.exports = arrayPush; + + +/***/ }, +/* 151 */ +/***/ function(module, exports, __webpack_require__) { + + var toObject = __webpack_require__(92); + + /** + * A specialized version of `_.pick` which picks `object` properties specified + * by `props`. + * + * @private + * @param {Object} object The source object. + * @param {string[]} props The property names to pick. + * @returns {Object} Returns the new object. + */ + function pickByArray(object, props) { + object = toObject(object); + + var index = -1, + length = props.length, + result = {}; + + while (++index < length) { + var key = props[index]; + if (key in object) { + result[key] = object[key]; + } + } + return result; + } + + module.exports = pickByArray; + + +/***/ }, +/* 152 */ +/***/ function(module, exports, __webpack_require__) { + + var baseForIn = __webpack_require__(153); + + /** + * A specialized version of `_.pick` which picks `object` properties `predicate` + * returns truthy for. + * + * @private + * @param {Object} object The source object. + * @param {Function} predicate The function invoked per iteration. + * @returns {Object} Returns the new object. + */ + function pickByCallback(object, predicate) { + var result = {}; + baseForIn(object, function(value, key, object) { + if (predicate(value, key, object)) { + result[key] = value; + } + }); + return result; + } + + module.exports = pickByCallback; + + +/***/ }, +/* 153 */ +/***/ function(module, exports, __webpack_require__) { + + var baseFor = __webpack_require__(90), + keysIn = __webpack_require__(110); + + /** + * The base implementation of `_.forIn` without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ + function baseForIn(object, iteratee) { + return baseFor(object, iteratee, keysIn); + } + + module.exports = baseForIn; + + +/***/ }, +/* 154 */ +/***/ function(module, exports) { + + /** Used as the `TypeError` message for "Functions" methods. */ + var FUNC_ERROR_TEXT = 'Expected a function'; + + /* Native method references for those with the same name as other `lodash` methods. */ + var nativeMax = Math.max; + + /** + * Creates a function that invokes `func` with the `this` binding of the + * created function and arguments from `start` and beyond provided as an array. + * + * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters). + * + * @static + * @memberOf _ + * @category Function + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + * @example + * + * var say = _.restParam(function(what, names) { + * return what + ' ' + _.initial(names).join(', ') + + * (_.size(names) > 1 ? ', & ' : '') + _.last(names); + * }); + * + * say('hello', 'fred', 'barney', 'pebbles'); + * // => 'hello fred, barney, & pebbles' + */ + function restParam(func, start) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + rest = Array(length); + + while (++index < length) { + rest[index] = args[start + index]; + } + switch (start) { + case 0: return func.call(this, rest); + case 1: return func.call(this, args[0], rest); + case 2: return func.call(this, args[0], args[1], rest); + } + var otherArgs = Array(start + 1); + index = -1; + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = rest; + return func.apply(this, otherArgs); + }; + } + + module.exports = restParam; + + +/***/ }, +/* 155 */ +/***/ function(module, exports) { + + "use strict"; + + exports.__esModule = true; + exports["default"] = isRequiredForA11y; + + function isRequiredForA11y(propType) { + return function validate(props, propName, componentName) { + if (props[propName] == null) { + return new Error("The prop '" + propName + "' is required to make '" + componentName + "' accessible" + " for users using assistive technologies such as screen readers"); + } + + return propType(props, propName, componentName); + }; + } + + module.exports = exports["default"]; + +/***/ }, +/* 156 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + var _createUncontrollable = __webpack_require__(157); + + var _createUncontrollable2 = _interopRequireDefault(_createUncontrollable); + + var mixin = { + shouldComponentUpdate: function shouldComponentUpdate() { + //let the forceUpdate trigger the update + return !this._notifying; + } + }; + + function set(component, propName, handler, value, args) { + if (handler) { + component._notifying = true; + handler.call.apply(handler, [component, value].concat(args)); + component._notifying = false; + } + + component._values[propName] = value; + component.forceUpdate(); + } + + exports['default'] = _createUncontrollable2['default']([mixin], set); + module.exports = exports['default']; + +/***/ }, +/* 157 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + exports['default'] = createUncontrollable; + + function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _utils = __webpack_require__(158); + + var utils = _interopRequireWildcard(_utils); + + function createUncontrollable(mixins, set) { + + return uncontrollable; + + function uncontrollable(Component, controlledValues) { + var methods = arguments.length <= 2 || arguments[2] === undefined ? [] : arguments[2]; + + var displayName = Component.displayName || Component.name || 'Component', + basePropTypes = utils.getType(Component).propTypes, + propTypes; + + propTypes = utils.uncontrolledPropTypes(controlledValues, basePropTypes, displayName); + + methods = utils.transform(methods, function (obj, method) { + obj[method] = function () { + var _refs$inner; + + return (_refs$inner = this.refs.inner)[method].apply(_refs$inner, arguments); + }; + }, {}); + + var component = _react2['default'].createClass(_extends({ + + displayName: 'Uncontrolled(' + displayName + ')', + + mixins: mixins, + + propTypes: propTypes + + }, methods, { + + componentWillMount: function componentWillMount() { + var props = this.props, + keys = Object.keys(controlledValues); + + this._values = utils.transform(keys, function (values, key) { + values[key] = props[utils.defaultKey(key)]; + }, {}); + }, + + /**
+ * If a prop switches from controlled to Uncontrolled
+ * reset its value to the defaultValue
+ */ + componentWillReceiveProps: function componentWillReceiveProps(nextProps) { + var _this = this; + + var props = this.props, + keys = Object.keys(controlledValues); + + keys.forEach(function (key) { + if (utils.getValue(nextProps, key) === undefined && utils.getValue(props, key) !== undefined) { + _this._values[key] = nextProps[utils.defaultKey(key)]; + } + }); + }, + + render: function render() { + var _this2 = this; + + var newProps = {}; + var _props = this.props; + var valueLink = _props.valueLink; + var checkedLink = _props.checkedLink; + + var props = _objectWithoutProperties(_props, ['valueLink', 'checkedLink']); + + utils.each(controlledValues, function (handle, propName) { + var linkPropName = utils.getLinkName(propName), + prop = _this2.props[propName]; + + if (linkPropName && !isProp(_this2.props, propName) && isProp(_this2.props, linkPropName)) { + prop = _this2.props[linkPropName].value; + } + + newProps[propName] = prop !== undefined ? prop : _this2._values[propName]; + + newProps[handle] = setAndNotify.bind(_this2, propName); + }); + + newProps = _extends({}, props, newProps, { ref: 'inner' }); + + return _react2['default'].createElement(Component, newProps); + } + + })); + + component.ControlledComponent = Component; + + return component; + + function setAndNotify(propName, value) { + var linkName = utils.getLinkName(propName), + handler = this.props[controlledValues[propName]]; + + if (linkName && isProp(this.props, linkName) && !handler) { + handler = this.props[linkName].requestChange; + } + + for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { + args[_key - 2] = arguments[_key]; + } + + set(this, propName, handler, value, args); + } + + function isProp(props, prop) { + return props[prop] !== undefined; + } + } + } + + module.exports = exports['default']; + +/***/ }, +/* 158 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + exports.customPropType = customPropType; + exports.uncontrolledPropTypes = uncontrolledPropTypes; + exports.getType = getType; + exports.getValue = getValue; + exports.getLinkName = getLinkName; + exports.defaultKey = defaultKey; + exports.chain = chain; + exports.transform = transform; + exports.each = each; + exports.has = has; + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _invariant = __webpack_require__(32); + + var _invariant2 = _interopRequireDefault(_invariant); + + function customPropType(handler, propType, name) { + + return function (props, propName) { + + if (props[propName] !== undefined) { + if (!props[handler]) { + return new Error('You have provided a `' + propName + '` prop to ' + '`' + name + '` without an `' + handler + '` handler. This will render a read-only field. ' + 'If the field should be mutable use `' + defaultKey(propName) + '`. Otherwise, set `' + handler + '`'); + } + + return propType && propType(props, propName, name); + } + }; + } + + function uncontrolledPropTypes(controlledValues, basePropTypes, displayName) { + var propTypes = {}; + + if (("development") !== 'production' && basePropTypes) { + transform(controlledValues, function (obj, handler, prop) { + var type = basePropTypes[prop]; + + _invariant2['default'](typeof handler === 'string' && handler.trim().length, 'Uncontrollable - [%s]: the prop `%s` needs a valid handler key name in order to make it uncontrollable', displayName, prop); + + obj[prop] = customPropType(handler, type, displayName); + + if (type !== undefined) obj[defaultKey(prop)] = type; + }, propTypes); + } + + return propTypes; + } + + var version = _react2['default'].version.split('.').map(parseFloat); + + exports.version = version; + + function getType(component) { + if (version[0] === 0 && version[1] >= 13) return component; + + return component.type; + } + + function getValue(props, name) { + var linkPropName = getLinkName(name); + + if (linkPropName && !isProp(props, name) && isProp(props, linkPropName)) return props[linkPropName].value; + + return props[name]; + } + + function isProp(props, prop) { + return props[prop] !== undefined; + } + + function getLinkName(name) { + return name === 'value' ? 'valueLink' : name === 'checked' ? 'checkedLink' : null; + } + + function defaultKey(key) { + return 'default' + key.charAt(0).toUpperCase() + key.substr(1); + } + + function chain(thisArg, a, b) { + return function chainedFunction() { + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + a && a.call.apply(a, [thisArg].concat(args)); + b && b.call.apply(b, [thisArg].concat(args)); + }; + } + + function transform(obj, cb, seed) { + each(obj, cb.bind(null, seed = seed || (Array.isArray(obj) ? [] : {}))); + return seed; + } + + function each(obj, cb, thisArg) { + if (Array.isArray(obj)) return obj.forEach(cb, thisArg); + + for (var key in obj) if (has(obj, key)) cb.call(thisArg, obj[key], key, obj); + } + + function has(o, k) { + return o ? Object.prototype.hasOwnProperty.call(o, k) : false; + } + +/***/ }, +/* 159 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _keycode = __webpack_require__(86); + + var _keycode2 = _interopRequireDefault(_keycode); + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _reactDom = __webpack_require__(63); + + var _reactDom2 = _interopRequireDefault(_reactDom); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _reactOverlaysLibRootCloseWrapper = __webpack_require__(160); + + var _reactOverlaysLibRootCloseWrapper2 = _interopRequireDefault(_reactOverlaysLibRootCloseWrapper); + + var _utilsValidComponentChildren = __webpack_require__(7); + + var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); + + var _utilsCreateChainedFunction = __webpack_require__(6); + + var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); + + var DropdownMenu = (function (_React$Component) { + _inherits(DropdownMenu, _React$Component); + + function DropdownMenu(props) { + _classCallCheck(this, DropdownMenu); + + _React$Component.call(this, props); + + this.focusNext = this.focusNext.bind(this); + this.focusPrevious = this.focusPrevious.bind(this); + this.getFocusableMenuItems = this.getFocusableMenuItems.bind(this); + this.getItemsAndActiveIndex = this.getItemsAndActiveIndex.bind(this); + + this.handleKeyDown = this.handleKeyDown.bind(this); + } + + DropdownMenu.prototype.handleKeyDown = function handleKeyDown(event) { + switch (event.keyCode) { + case _keycode2['default'].codes.down: + this.focusNext(); + event.preventDefault(); + break; + case _keycode2['default'].codes.up: + this.focusPrevious(); + event.preventDefault(); + break; + case _keycode2['default'].codes.esc: + case _keycode2['default'].codes.tab: + this.props.onClose(event); + break; + default: + } + }; + + DropdownMenu.prototype.focusNext = function focusNext() { + var _getItemsAndActiveIndex = this.getItemsAndActiveIndex(); + + var items = _getItemsAndActiveIndex.items; + var activeItemIndex = _getItemsAndActiveIndex.activeItemIndex; + + if (items.length === 0) { + return; + } + + if (activeItemIndex === items.length - 1) { + items[0].focus(); + return; + } + + items[activeItemIndex + 1].focus(); + }; + + DropdownMenu.prototype.focusPrevious = function focusPrevious() { + var _getItemsAndActiveIndex2 = this.getItemsAndActiveIndex(); + + var items = _getItemsAndActiveIndex2.items; + var activeItemIndex = _getItemsAndActiveIndex2.activeItemIndex; + + if (activeItemIndex === 0) { + items[items.length - 1].focus(); + return; + } + + items[activeItemIndex - 1].focus(); + }; + + DropdownMenu.prototype.getItemsAndActiveIndex = function getItemsAndActiveIndex() { + var items = this.getFocusableMenuItems(); + var activeElement = document.activeElement; + var activeItemIndex = items.indexOf(activeElement); + + return { items: items, activeItemIndex: activeItemIndex }; + }; + + DropdownMenu.prototype.getFocusableMenuItems = function getFocusableMenuItems() { + var menuNode = _reactDom2['default'].findDOMNode(this); + + if (menuNode === undefined) { + return []; + } + + return [].slice.call(menuNode.querySelectorAll('[tabIndex="-1"]'), 0); + }; + + DropdownMenu.prototype.render = function render() { + var _classes, + _this = this; + + var _props = this.props; + var children = _props.children; + var onSelect = _props.onSelect; + var pullRight = _props.pullRight; + var className = _props.className; + var labelledBy = _props.labelledBy; + var open = _props.open; + var onClose = _props.onClose; + + var props = _objectWithoutProperties(_props, ['children', 'onSelect', 'pullRight', 'className', 'labelledBy', 'open', 'onClose']); + + var items = _utilsValidComponentChildren2['default'].map(children, function (child) { + var childProps = child.props || {}; + + return _react2['default'].cloneElement(child, { + onKeyDown: _utilsCreateChainedFunction2['default'](childProps.onKeyDown, _this.handleKeyDown), + onSelect: _utilsCreateChainedFunction2['default'](childProps.onSelect, onSelect) + }, childProps.children); + }); + + var classes = (_classes = {}, _classes[_utilsBootstrapUtils2['default'].prefix(this.props, 'menu')] = true, _classes[_utilsBootstrapUtils2['default'].prefix(this.props, 'menu-right')] = pullRight, _classes); + + var list = _react2['default'].createElement( + 'ul', + _extends({ + className: _classnames2['default'](className, classes), + role: 'menu', + 'aria-labelledby': labelledBy + }, props), + items + ); + + if (open) { + list = _react2['default'].createElement( + _reactOverlaysLibRootCloseWrapper2['default'], + { noWrap: true, onRootClose: onClose }, + list + ); + } + + return list; + }; + + return DropdownMenu; + })(_react2['default'].Component); + + DropdownMenu.defaultProps = { + bsRole: 'menu', + bsClass: 'dropdown', + pullRight: false + }; + + DropdownMenu.propTypes = { + open: _react2['default'].PropTypes.bool, + pullRight: _react2['default'].PropTypes.bool, + onClose: _react2['default'].PropTypes.func, + labelledBy: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]), + onSelect: _react2['default'].PropTypes.func + }; + + exports['default'] = DropdownMenu; + module.exports = exports['default']; + +/***/ }, +/* 160 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _reactDom = __webpack_require__(63); + + var _reactDom2 = _interopRequireDefault(_reactDom); + + var _utilsAddEventListener = __webpack_require__(161); + + var _utilsAddEventListener2 = _interopRequireDefault(_utilsAddEventListener); + + var _utilsCreateChainedFunction = __webpack_require__(163); + + var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); + + var _utilsOwnerDocument = __webpack_require__(164); + + var _utilsOwnerDocument2 = _interopRequireDefault(_utilsOwnerDocument); + + // TODO: Consider using an ES6 symbol here, once we use babel-runtime. + var CLICK_WAS_INSIDE = '__click_was_inside'; + + var counter = 0; + + function getSuppressRootClose() { + var id = CLICK_WAS_INSIDE + '_' + counter++; + return { + id: id, + suppressRootClose: function suppressRootClose(event) { + // Tag the native event to prevent the root close logic on document click. + // This seems safer than using event.nativeEvent.stopImmediatePropagation(), + // which is only supported in IE >= 9. + event.nativeEvent[id] = true; + } + }; + } + + var RootCloseWrapper = (function (_React$Component) { + function RootCloseWrapper(props) { + _classCallCheck(this, RootCloseWrapper); + + _React$Component.call(this, props); + + this.handleDocumentClick = this.handleDocumentClick.bind(this); + this.handleDocumentKeyUp = this.handleDocumentKeyUp.bind(this); + + var _getSuppressRootClose = getSuppressRootClose(); + + var id = _getSuppressRootClose.id; + var suppressRootClose = _getSuppressRootClose.suppressRootClose; + + this._suppressRootId = id; + + this._suppressRootCloseHandler = suppressRootClose; + } + + _inherits(RootCloseWrapper, _React$Component); + + RootCloseWrapper.prototype.bindRootCloseHandlers = function bindRootCloseHandlers() { + var doc = _utilsOwnerDocument2['default'](this); + + this._onDocumentClickListener = _utilsAddEventListener2['default'](doc, 'click', this.handleDocumentClick); + + this._onDocumentKeyupListener = _utilsAddEventListener2['default'](doc, 'keyup', this.handleDocumentKeyUp); + }; + + RootCloseWrapper.prototype.handleDocumentClick = function handleDocumentClick(e) { + // This is now the native event. + if (e[this._suppressRootId]) { + return; + } + + this.props.onRootClose(); + }; + + RootCloseWrapper.prototype.handleDocumentKeyUp = function handleDocumentKeyUp(e) { + if (e.keyCode === 27) { + this.props.onRootClose(); + } + }; + + RootCloseWrapper.prototype.unbindRootCloseHandlers = function unbindRootCloseHandlers() { + if (this._onDocumentClickListener) { + this._onDocumentClickListener.remove(); + } + + if (this._onDocumentKeyupListener) { + this._onDocumentKeyupListener.remove(); + } + }; + + RootCloseWrapper.prototype.componentDidMount = function componentDidMount() { + this.bindRootCloseHandlers(); + }; + + RootCloseWrapper.prototype.render = function render() { + var _props = this.props; + var noWrap = _props.noWrap; + var children = _props.children; + + var child = _react2['default'].Children.only(children); + + if (noWrap) { + return _react2['default'].cloneElement(child, { + onClick: _utilsCreateChainedFunction2['default'](this._suppressRootCloseHandler, child.props.onClick) + }); + } + + // Wrap the child in a new element, so the child won't have to handle + // potentially combining multiple onClick listeners. + return _react2['default'].createElement( + 'div', + { onClick: this._suppressRootCloseHandler }, + child + ); + }; + + RootCloseWrapper.prototype.getWrappedDOMNode = function getWrappedDOMNode() { + // We can't use a ref to identify the wrapped child, since we might be + // stealing the ref from the owner, but we know exactly the DOM structure + // that will be rendered, so we can just do this to get the child's DOM + // node for doing size calculations in OverlayMixin. + var node = _reactDom2['default'].findDOMNode(this); + return this.props.noWrap ? node : node.firstChild; + }; + + RootCloseWrapper.prototype.componentWillUnmount = function componentWillUnmount() { + this.unbindRootCloseHandlers(); + }; + + return RootCloseWrapper; + })(_react2['default'].Component); + + exports['default'] = RootCloseWrapper; + + RootCloseWrapper.displayName = 'RootCloseWrapper'; + + RootCloseWrapper.propTypes = { + onRootClose: _react2['default'].PropTypes.func.isRequired, + + /**
+ * Passes the suppress click handler directly to the child component instead
+ * of placing it on a wrapping div. Only use when you can be sure the child
+ * properly handle the click event.
+ */ + noWrap: _react2['default'].PropTypes.bool + }; + module.exports = exports['default']; + +/***/ }, +/* 161 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + var _domHelpersEventsOn = __webpack_require__(79); + + var _domHelpersEventsOn2 = _interopRequireDefault(_domHelpersEventsOn); + + var _domHelpersEventsOff = __webpack_require__(162); + + var _domHelpersEventsOff2 = _interopRequireDefault(_domHelpersEventsOff); + + exports['default'] = function (node, event, handler) { + _domHelpersEventsOn2['default'](node, event, handler); + return { + remove: function remove() { + _domHelpersEventsOff2['default'](node, event, handler); + } + }; + }; + + module.exports = exports['default']; + +/***/ }, +/* 162 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + var canUseDOM = __webpack_require__(78); + var off = function off() {}; + + if (canUseDOM) { + + off = (function () { + + if (document.addEventListener) return function (node, eventName, handler, capture) { + return node.removeEventListener(eventName, handler, capture || false); + };else if (document.attachEvent) return function (node, eventName, handler) { + return node.detachEvent('on' + eventName, handler); + }; + })(); + } + + module.exports = off; + +/***/ }, +/* 163 */ +/***/ function(module, exports) { + + /**
+ * Safe chained function
+ *
+ * Will only create a new function if needed,
+ * otherwise will pass back existing functions or null.
+ *
+ * @param {function} functions to chain
+ * @returns {function|null}
+ */ + 'use strict'; + + exports.__esModule = true; + function createChainedFunction() { + for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) { + funcs[_key] = arguments[_key]; + } + + return funcs.filter(function (f) { + return f != null; + }).reduce(function (acc, f) { + if (typeof f !== 'function') { + throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.'); + } + + if (acc === null) { + return f; + } + + return function chainedFunction() { + for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + + acc.apply(this, args); + f.apply(this, args); + }; + }, null); + } + + exports['default'] = createChainedFunction; + module.exports = exports['default']; + +/***/ }, +/* 164 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + var _reactDom = __webpack_require__(63); + + var _reactDom2 = _interopRequireDefault(_reactDom); + + var _domHelpersOwnerDocument = __webpack_require__(84); + + var _domHelpersOwnerDocument2 = _interopRequireDefault(_domHelpersOwnerDocument); + + exports['default'] = function (componentOrElement) { + return _domHelpersOwnerDocument2['default'](_reactDom2['default'].findDOMNode(componentOrElement)); + }; + + module.exports = exports['default']; + +/***/ }, +/* 165 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _Button = __webpack_require__(51); + + var _Button2 = _interopRequireDefault(_Button); + + var _SafeAnchor = __webpack_require__(42); + + var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor); + + var CARET = _react2['default'].createElement( + 'span', + null, + ' ', + _react2['default'].createElement('span', { className: 'caret' }) + ); + + var DropdownToggle = (function (_React$Component) { + _inherits(DropdownToggle, _React$Component); + + function DropdownToggle() { + _classCallCheck(this, DropdownToggle); + + _React$Component.apply(this, arguments); + } + + DropdownToggle.prototype.render = function render() { + var caret = this.props.noCaret ? null : CARET; + + var classes = { + 'dropdown-toggle': true + }; + + var Component = this.props.useAnchor ? _SafeAnchor2['default'] : _Button2['default']; + + return _react2['default'].createElement( + Component, + _extends({}, this.props, { + className: _classnames2['default'](classes, this.props.className), + type: 'button', + 'aria-haspopup': true, + 'aria-expanded': this.props.open }), + this.props.children || this.props.title, + caret + ); + }; + + return DropdownToggle; + })(_react2['default'].Component); + + exports['default'] = DropdownToggle; + + DropdownToggle.defaultProps = { + open: false, + useAnchor: false, + bsRole: 'toggle' + }; + + DropdownToggle.propTypes = { + bsRole: _react2['default'].PropTypes.string, + noCaret: _react2['default'].PropTypes.bool, + open: _react2['default'].PropTypes.bool, + title: _react2['default'].PropTypes.string, + useAnchor: _react2['default'].PropTypes.bool + }; + + DropdownToggle.isToggle = true; + DropdownToggle.titleProp = 'title'; + DropdownToggle.onClickProp = 'onClick'; + module.exports = exports['default']; + +/***/ }, +/* 166 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _reactPropTypesLibCommon = __webpack_require__(53); + + var _childrenToArray = __webpack_require__(167); + + var _childrenToArray2 = _interopRequireDefault(_childrenToArray); + + exports['default'] = { + + requiredRoles: function requiredRoles() { + for (var _len = arguments.length, roles = Array(_len), _key = 0; _key < _len; _key++) { + roles[_key] = arguments[_key]; + } + + return _reactPropTypesLibCommon.createChainableTypeChecker(function requiredRolesValidator(props, propName, component) { + var missing = undefined; + var children = _childrenToArray2['default'](props.children); + + var inRole = function inRole(role, child) { + return role === child.props.bsRole; + }; + + roles.every(function (role) { + if (!children.some(function (child) { + return inRole(role, child); + })) { + missing = role; + return false; + } + return true; + }); + + if (missing) { + return new Error('(children) ' + component + ' - Missing a required child with bsRole: ' + missing + '. ' + (component + ' must have at least one child of each of the following bsRoles: ' + roles.join(', '))); + } + }); + }, + + exclusiveRoles: function exclusiveRoles() { + for (var _len2 = arguments.length, roles = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + roles[_key2] = arguments[_key2]; + } + + return _reactPropTypesLibCommon.createChainableTypeChecker(function exclusiveRolesValidator(props, propName, component) { + var children = _childrenToArray2['default'](props.children); + var duplicate = undefined; + + roles.every(function (role) { + var childrenWithRole = children.filter(function (child) { + return child.props.bsRole === role; + }); + + if (childrenWithRole.length > 1) { + duplicate = role; + return false; + } + return true; + }); + + if (duplicate) { + return new Error('(children) ' + component + ' - Duplicate children detected of bsRole: ' + duplicate + '. ' + ('Only one child each allowed with the following bsRoles: ' + roles.join(', '))); + } + }); + } + }; + module.exports = exports['default']; + +/***/ }, +/* 167 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + exports['default'] = childrenAsArray; + + var _ValidComponentChildren = __webpack_require__(7); + + var _ValidComponentChildren2 = _interopRequireDefault(_ValidComponentChildren); + + function childrenAsArray(children) { + var result = []; + + if (children === undefined) { + return result; + } + + _ValidComponentChildren2['default'].forEach(children, function (child) { + result.push(child); + }); + + return result; + } + + module.exports = exports['default']; + +/***/ }, +/* 168 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _Object$keys = __webpack_require__(28)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _Dropdown = __webpack_require__(82); + + var _Dropdown2 = _interopRequireDefault(_Dropdown); + + var _lodashCompatObjectOmit = __webpack_require__(140); + + var _lodashCompatObjectOmit2 = _interopRequireDefault(_lodashCompatObjectOmit); + + var _lodashCompatObjectPick = __webpack_require__(169); + + var _lodashCompatObjectPick2 = _interopRequireDefault(_lodashCompatObjectPick); + + var _Button = __webpack_require__(51); + + var _Button2 = _interopRequireDefault(_Button); + + var DropdownButton = (function (_React$Component) { + _inherits(DropdownButton, _React$Component); + + function DropdownButton() { + _classCallCheck(this, DropdownButton); + + _React$Component.apply(this, arguments); + } + + DropdownButton.prototype.render = function render() { + var _props = this.props; + var bsStyle = _props.bsStyle; + var bsSize = _props.bsSize; + var disabled = _props.disabled; + var _props2 = this.props; + var title = _props2.title; + var children = _props2.children; + + var props = _objectWithoutProperties(_props2, ['title', 'children']); + + var dropdownProps = _lodashCompatObjectPick2['default'](props, _Object$keys(_Dropdown2['default'].ControlledComponent.propTypes)); + var toggleProps = _lodashCompatObjectOmit2['default'](props, _Object$keys(_Dropdown2['default'].ControlledComponent.propTypes)); + + return _react2['default'].createElement( + _Dropdown2['default'], + _extends({}, dropdownProps, { + bsSize: bsSize, + bsStyle: bsStyle + }), + _react2['default'].createElement( + _Dropdown2['default'].Toggle, + _extends({}, toggleProps, { + disabled: disabled + }), + title + ), + _react2['default'].createElement( + _Dropdown2['default'].Menu, + null, + children + ) + ); + }; + + return DropdownButton; + })(_react2['default'].Component); + + DropdownButton.propTypes = _extends({ + disabled: _react2['default'].PropTypes.bool, + bsStyle: _Button2['default'].propTypes.bsStyle, + bsSize: _Button2['default'].propTypes.bsSize, + + /** + * When used with the `title` prop, the noCaret option will not render a caret icon, in the toggle element. + */ + noCaret: _react2['default'].PropTypes.bool, + title: _react2['default'].PropTypes.node.isRequired + + }, _Dropdown2['default'].propTypes); + + DropdownButton.defaultProps = { + disabled: false, + pullRight: false, + dropup: false, + navItem: false, + noCaret: false + }; + + exports['default'] = DropdownButton; + module.exports = exports['default']; + +/***/ }, +/* 169 */ +/***/ function(module, exports, __webpack_require__) { + + var baseFlatten = __webpack_require__(149), + bindCallback = __webpack_require__(134), + pickByArray = __webpack_require__(151), + pickByCallback = __webpack_require__(152), + restParam = __webpack_require__(154); + + /** + * Creates an object composed of the picked `object` properties. Property + * names may be specified as individual arguments or as arrays of property + * names. If `predicate` is provided it's invoked for each property of `object` + * picking the properties `predicate` returns truthy for. The predicate is + * bound to `thisArg` and invoked with three arguments: (value, key, object). + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {Function|...(string|string[])} [predicate] The function invoked per + * iteration or property names to pick, specified as individual property + * names or arrays of property names. + * @param {*} [thisArg] The `this` binding of `predicate`. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'user': 'fred', 'age': 40 }; + * + * _.pick(object, 'user'); + * // => { 'user': 'fred' } + * + * _.pick(object, _.isString); + * // => { 'user': 'fred' } + */ + var pick = restParam(function(object, props) { + if (object == null) { + return {}; + } + return typeof props[0] == 'function' + ? pickByCallback(object, bindCallback(props[0], props[1], 3)) + : pickByArray(object, baseFlatten(props)); + }); + + module.exports = pick; + + +/***/ }, +/* 170 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _reactPropTypesLibElementType = __webpack_require__(52); + + var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); + + var Grid = _react2['default'].createClass({ + displayName: 'Grid', + + propTypes: { + /** + * Turn any fixed-width grid layout into a full-width layout by this property. + * + * Adds `container-fluid` class. + */ + fluid: _react2['default'].PropTypes.bool, + /** + * You can use a custom element for this component + */ + componentClass: _reactPropTypesLibElementType2['default'] + }, + + getDefaultProps: function getDefaultProps() { + return { + componentClass: 'div', + fluid: false + }; + }, + + render: function render() { + var ComponentClass = this.props.componentClass; + var className = this.props.fluid ? 'container-fluid' : 'container'; + + return _react2['default'].createElement( + ComponentClass, + _extends({}, this.props, { + className: _classnames2['default'](this.props.className, className) }), + this.props.children + ); + } + }); + + exports['default'] = Grid; + module.exports = exports['default']; + +/***/ }, +/* 171 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var Image = _react2['default'].createClass({ + displayName: 'Image', + + propTypes: { + + /** + * Sets image as responsive image + */ + responsive: _react2['default'].PropTypes.bool, + + /** + * Sets image shape as rounded + */ + rounded: _react2['default'].PropTypes.bool, + + /** + * Sets image shape as circle + */ + circle: _react2['default'].PropTypes.bool, + + /** + * Sets image shape as thumbnail + */ + thumbnail: _react2['default'].PropTypes.bool + }, + + getDefaultProps: function getDefaultProps() { + return { + responsive: false, + rounded: false, + circle: false, + thumbnail: false + }; + }, + + render: function render() { + var classes = { + 'img-responsive': this.props.responsive, + 'img-rounded': this.props.rounded, + 'img-circle': this.props.circle, + 'img-thumbnail': this.props.thumbnail + }; + + return _react2['default'].createElement('img', _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) })); + } + }); + + exports['default'] = Image; + module.exports = exports['default']; + +/***/ }, +/* 172 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + var _interopRequireWildcard = __webpack_require__(2)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _InputBase2 = __webpack_require__(58); + + var _InputBase3 = _interopRequireDefault(_InputBase2); + + var _FormControls = __webpack_require__(173); + + var FormControls = _interopRequireWildcard(_FormControls); + + var _utilsDeprecationWarning = __webpack_require__(81); + + var _utilsDeprecationWarning2 = _interopRequireDefault(_utilsDeprecationWarning); + + var Input = (function (_InputBase) { + _inherits(Input, _InputBase); + + function Input() { + _classCallCheck(this, Input); + + _InputBase.apply(this, arguments); + } + + Input.prototype.render = function render() { + if (this.props.type === 'static') { + _utilsDeprecationWarning2['default']('Input type=static', 'FormControls.Static'); + return _react2['default'].createElement(FormControls.Static, this.props); + } + + return _InputBase.prototype.render.call(this); + }; + + return Input; + })(_InputBase3['default']); + + Input.propTypes = { + type: _react2['default'].PropTypes.string + }; + + exports['default'] = Input; + module.exports = exports['default']; + +/***/ }, +/* 173 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _Static2 = __webpack_require__(174); + + var _Static3 = _interopRequireDefault(_Static2); + + exports.Static = _Static3['default']; + +/***/ }, +/* 174 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _InputBase2 = __webpack_require__(58); + + var _InputBase3 = _interopRequireDefault(_InputBase2); + + var _utilsChildrenValueInputValidation = __webpack_require__(3); + + var _utilsChildrenValueInputValidation2 = _interopRequireDefault(_utilsChildrenValueInputValidation); + + var Static = (function (_InputBase) { + _inherits(Static, _InputBase); + + function Static() { + _classCallCheck(this, Static); + + _InputBase.apply(this, arguments); + } + + Static.prototype.getValue = function getValue() { + var _props = this.props; + var children = _props.children; + var value = _props.value; + + return children ? children : value; + }; + + Static.prototype.renderInput = function renderInput() { + return _react2['default'].createElement( + 'p', + _extends({}, this.props, { className: _classnames2['default'](this.props.className, 'form-control-static'), ref: 'input', key: 'input' }), + this.getValue() + ); + }; + + return Static; + })(_InputBase3['default']); + + Static.propTypes = { + value: _utilsChildrenValueInputValidation2['default'], + children: _utilsChildrenValueInputValidation2['default'] + }; + + exports['default'] = Static; + module.exports = exports['default']; + +/***/ }, +/* 175 */ +/***/ function(module, exports, __webpack_require__) { + + // https://www.npmjs.org/package/react-interpolate-component + // TODO: Drop this in favor of es6 string interpolation + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _utilsValidComponentChildren = __webpack_require__(7); + + var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); + + var REGEXP = /\%\((.+?)\)s/; + + var Interpolate = _react2['default'].createClass({ + displayName: 'Interpolate', + + propTypes: { + component: _react2['default'].PropTypes.node, + format: _react2['default'].PropTypes.string, + unsafe: _react2['default'].PropTypes.bool + }, + + getDefaultProps: function getDefaultProps() { + return { + component: 'span', + unsafe: false + }; + }, + + render: function render() { + var format = _utilsValidComponentChildren2['default'].hasValidComponent(this.props.children) || typeof this.props.children === 'string' ? this.props.children : this.props.format; + var parent = this.props.component; + var unsafe = this.props.unsafe === true; + var props = _extends({}, this.props); + + delete props.children; + delete props.format; + delete props.component; + delete props.unsafe; + + if (unsafe) { + var content = format.split(REGEXP).reduce(function (memo, match, index) { + var html = undefined; + + if (index % 2 === 0) { + html = match; + } else { + html = props[match]; + delete props[match]; + } + + if (_react2['default'].isValidElement(html)) { + throw new Error('cannot interpolate a React component into unsafe text'); + } + + memo += html; + + return memo; + }, ''); + + props.dangerouslySetInnerHTML = { __html: content }; + + return _react2['default'].createElement(parent, props); + } + var kids = format.split(REGEXP).reduce(function (memo, match, index) { + var child = undefined; + + if (index % 2 === 0) { + if (match.length === 0) { + return memo; + } + + child = match; + } else { + child = props[match]; + delete props[match]; + } + + memo.push(child); + + return memo; + }, []); + + return _react2['default'].createElement(parent, props, kids); + } + }); + + exports['default'] = Interpolate; + module.exports = exports['default']; + +/***/ }, +/* 176 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _reactPropTypesLibElementType = __webpack_require__(52); + + var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); + + var Jumbotron = _react2['default'].createClass({ + displayName: 'Jumbotron', + + propTypes: { + /** + * You can use a custom element for this component + */ + componentClass: _reactPropTypesLibElementType2['default'] + }, + + getDefaultProps: function getDefaultProps() { + return { componentClass: 'div' }; + }, + + render: function render() { + var ComponentClass = this.props.componentClass; + + return _react2['default'].createElement( + ComponentClass, + _extends({}, this.props, { className: _classnames2['default'](this.props.className, 'jumbotron') }), + this.props.children + ); + } + }); + + exports['default'] = Jumbotron; + module.exports = exports['default']; + +/***/ }, +/* 177 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _styleMaps = __webpack_require__(25); + + var Label = (function (_React$Component) { + _inherits(Label, _React$Component); + + function Label() { + _classCallCheck(this, _Label); + + _React$Component.apply(this, arguments); + } + + Label.prototype.render = function render() { + var classes = _utilsBootstrapUtils2['default'].getClassSet(this.props); + + return _react2['default'].createElement( + 'span', + _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }), + this.props.children + ); + }; + + var _Label = Label; + Label = _utilsBootstrapUtils.bsStyles(_styleMaps.State.values().concat(_styleMaps.DEFAULT, _styleMaps.PRIMARY), _styleMaps.DEFAULT)(Label) || Label; + Label = _utilsBootstrapUtils.bsClass('label')(Label) || Label; + return Label; + })(_react2['default'].Component); + + exports['default'] = Label; + module.exports = exports['default']; + +/***/ }, +/* 178 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _ListGroupItem = __webpack_require__(179); + + var _ListGroupItem2 = _interopRequireDefault(_ListGroupItem); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsValidComponentChildren = __webpack_require__(7); + + var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); + + var ListGroup = (function (_React$Component) { + _inherits(ListGroup, _React$Component); + + function ListGroup() { + _classCallCheck(this, ListGroup); + + _React$Component.apply(this, arguments); + } + + ListGroup.prototype.render = function render() { + var _this = this; + + var items = _utilsValidComponentChildren2['default'].map(this.props.children, function (item, index) { + return _react.cloneElement(item, { key: item.key ? item.key : index }); + }); + + if (this.areCustomChildren(items)) { + var Component = this.props.componentClass; + return _react2['default'].createElement( + Component, + _extends({}, this.props, { + className: _classnames2['default'](this.props.className, 'list-group') }), + items + ); + } + + var shouldRenderDiv = false; + + if (!this.props.children) { + shouldRenderDiv = true; + } else { + _utilsValidComponentChildren2['default'].forEach(this.props.children, function (child) { + if (_this.isAnchorOrButton(child.props)) { + shouldRenderDiv = true; + } + }); + } + + return shouldRenderDiv ? this.renderDiv(items) : this.renderUL(items); + }; + + ListGroup.prototype.isAnchorOrButton = function isAnchorOrButton(props) { + return props.href || props.onClick; + }; + + ListGroup.prototype.areCustomChildren = function areCustomChildren(children) { + var customChildren = false; + + _utilsValidComponentChildren2['default'].forEach(children, function (child) { + if (child.type !== _ListGroupItem2['default']) { + customChildren = true; + } + }, this); + + return customChildren; + }; + + ListGroup.prototype.renderUL = function renderUL(items) { + var listItems = _utilsValidComponentChildren2['default'].map(items, function (item) { + return _react.cloneElement(item, { listItem: true }); + }); + + return _react2['default'].createElement( + 'ul', + _extends({}, this.props, { + className: _classnames2['default'](this.props.className, 'list-group') }), + listItems + ); + }; + + ListGroup.prototype.renderDiv = function renderDiv(items) { + return _react2['default'].createElement( + 'div', + _extends({}, this.props, { + className: _classnames2['default'](this.props.className, 'list-group') }), + items + ); + }; + + return ListGroup; + })(_react2['default'].Component); + + ListGroup.defaultProps = { + componentClass: 'div' + }; + + ListGroup.propTypes = { + className: _react2['default'].PropTypes.string, + /** + * The element for ListGroup if children are + * user-defined custom components. + * @type {("ul"|"div")} + */ + componentClass: _react2['default'].PropTypes.oneOf(['ul', 'div']), + id: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]) + }; + + exports['default'] = ListGroup; + module.exports = exports['default']; + +/***/ }, +/* 179 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _styleMaps = __webpack_require__(25); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var ListGroupItem = (function (_React$Component) { + _inherits(ListGroupItem, _React$Component); + + function ListGroupItem() { + _classCallCheck(this, ListGroupItem); + + _React$Component.apply(this, arguments); + } + + ListGroupItem.prototype.render = function render() { + var classes = _utilsBootstrapUtils2['default'].getClassSet(this.props); + + classes.active = this.props.active; + classes.disabled = this.props.disabled; + + if (this.props.href) { + return this.renderAnchor(classes); + } else if (this.props.onClick) { + return this.renderButton(classes); + } else if (this.props.listItem) { + return this.renderLi(classes); + } + + return this.renderSpan(classes); + }; + + ListGroupItem.prototype.renderLi = function renderLi(classes) { + return _react2['default'].createElement( + 'li', + _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }), + this.props.header ? this.renderStructuredContent() : this.props.children + ); + }; + + ListGroupItem.prototype.renderAnchor = function renderAnchor(classes) { + return _react2['default'].createElement( + 'a', + _extends({}, this.props, { + className: _classnames2['default'](this.props.className, classes) + }), + this.props.header ? this.renderStructuredContent() : this.props.children + ); + }; + + ListGroupItem.prototype.renderButton = function renderButton(classes) { + return _react2['default'].createElement( + 'button', + _extends({ + type: 'button' + }, this.props, { + className: _classnames2['default'](this.props.className, classes) }), + this.props.header ? this.renderStructuredContent() : this.props.children + ); + }; + + ListGroupItem.prototype.renderSpan = function renderSpan(classes) { + return _react2['default'].createElement( + 'span', + _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }), + this.props.header ? this.renderStructuredContent() : this.props.children + ); + }; + + ListGroupItem.prototype.renderStructuredContent = function renderStructuredContent() { + var header = undefined; + var headingClass = _utilsBootstrapUtils2['default'].prefix(this.props, 'heading'); + + if (_react2['default'].isValidElement(this.props.header)) { + header = _react.cloneElement(this.props.header, { + key: 'header', + className: _classnames2['default'](this.props.header.props.className, headingClass) + }); + } else { + header = _react2['default'].createElement( + 'h4', + { key: 'header', className: headingClass }, + this.props.header + ); + } + + var content = _react2['default'].createElement( + 'p', + { key: 'content', className: _utilsBootstrapUtils2['default'].prefix(this.props, 'text') }, + this.props.children + ); + + return [header, content]; + }; + + return ListGroupItem; + })(_react2['default'].Component); + + ListGroupItem.propTypes = { + className: _react2['default'].PropTypes.string, + active: _react2['default'].PropTypes.any, + disabled: _react2['default'].PropTypes.any, + header: _react2['default'].PropTypes.node, + listItem: _react2['default'].PropTypes.bool, + onClick: _react2['default'].PropTypes.func, + eventKey: _react2['default'].PropTypes.any, + href: _react2['default'].PropTypes.string, + target: _react2['default'].PropTypes.string + }; + + ListGroupItem.defaultTypes = { + listItem: false + }; + + exports['default'] = _utilsBootstrapUtils.bsStyles(_styleMaps.State.values(), _utilsBootstrapUtils.bsClass('list-group-item', ListGroupItem)); + module.exports = exports['default']; + +/***/ }, +/* 180 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _reactPropTypesLibAll = __webpack_require__(55); + + var _reactPropTypesLibAll2 = _interopRequireDefault(_reactPropTypesLibAll); + + var _SafeAnchor = __webpack_require__(42); + + var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor); + + var _utilsCreateChainedFunction = __webpack_require__(6); + + var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); + + var MenuItem = (function (_React$Component) { + _inherits(MenuItem, _React$Component); + + function MenuItem(props) { + _classCallCheck(this, MenuItem); + + _React$Component.call(this, props); + + this.handleClick = this.handleClick.bind(this); + } + + MenuItem.prototype.handleClick = function handleClick(event) { + if (!this.props.href || this.props.disabled) { + event.preventDefault(); + } + + if (this.props.disabled) { + return; + } + + if (this.props.onSelect) { + this.props.onSelect(event, this.props.eventKey); + } + }; + + MenuItem.prototype.render = function render() { + var headerClass = _utilsBootstrapUtils2['default'].prefix(this.props, 'header'); + + if (this.props.divider) { + return _react2['default'].createElement('li', { role: 'separator', className: 'divider' }); + } + + if (this.props.header) { + return _react2['default'].createElement( + 'li', + { role: 'heading', className: headerClass }, + this.props.children + ); + } + + var _props = this.props; + var className = _props.className; + var style = _props.style; + var onClick = _props.onClick; + + var props = _objectWithoutProperties(_props, ['className', 'style', 'onClick']); + + var classes = { + disabled: this.props.disabled, + active: this.props.active + }; + + return _react2['default'].createElement( + 'li', + { role: 'presentation', + className: _classnames2['default'](className, classes), + style: style + }, + _react2['default'].createElement(_SafeAnchor2['default'], _extends({}, props, { + role: 'menuitem', + tabIndex: '-1', + onClick: _utilsCreateChainedFunction2['default'](onClick, this.handleClick) + })) + ); + }; + + return MenuItem; + })(_react2['default'].Component); + + MenuItem.propTypes = { + active: _react2['default'].PropTypes.bool, + disabled: _react2['default'].PropTypes.bool, + divider: _reactPropTypesLibAll2['default'](_react2['default'].PropTypes.bool, function (props) { + if (props.divider && props.children) { + return new Error('Children will not be rendered for dividers'); + } + }), + eventKey: _react2['default'].PropTypes.any, + header: _react2['default'].PropTypes.bool, + href: _react2['default'].PropTypes.string, + target: _react2['default'].PropTypes.string, + title: _react2['default'].PropTypes.string, + onClick: _react2['default'].PropTypes.func, + onKeyDown: _react2['default'].PropTypes.func, + onSelect: _react2['default'].PropTypes.func, + id: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]) + }; + + MenuItem.defaultProps = { + divider: false, + disabled: false, + header: false + }; + + exports['default'] = _utilsBootstrapUtils.bsClass('dropdown', MenuItem); + module.exports = exports['default']; + +/***/ }, +/* 181 */ +/***/ function(module, exports, __webpack_require__) { + + + /* eslint-disable react/prop-types */ + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _Object$keys = __webpack_require__(28)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _reactDom = __webpack_require__(63); + + var _reactDom2 = _interopRequireDefault(_reactDom); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _styleMaps = __webpack_require__(25); + + var _domHelpersUtilScrollbarSize = __webpack_require__(182); + + var _domHelpersUtilScrollbarSize2 = _interopRequireDefault(_domHelpersUtilScrollbarSize); + + var _domHelpersUtilInDOM = __webpack_require__(78); + + var _domHelpersUtilInDOM2 = _interopRequireDefault(_domHelpersUtilInDOM); + + var _domHelpersOwnerDocument = __webpack_require__(84); + + var _domHelpersOwnerDocument2 = _interopRequireDefault(_domHelpersOwnerDocument); + + var _domHelpersEvents = __webpack_require__(183); + + var _domHelpersEvents2 = _interopRequireDefault(_domHelpersEvents); + + var _reactPropTypesLibElementType = __webpack_require__(52); + + var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); + + var _Fade = __webpack_require__(186); + + var _Fade2 = _interopRequireDefault(_Fade); + + var _ModalDialog = __webpack_require__(187); + + var _ModalDialog2 = _interopRequireDefault(_ModalDialog); + + var _ModalBody = __webpack_require__(188); + + var _ModalBody2 = _interopRequireDefault(_ModalBody); + + var _ModalHeader = __webpack_require__(189); + + var _ModalHeader2 = _interopRequireDefault(_ModalHeader); + + var _ModalTitle = __webpack_require__(190); + + var _ModalTitle2 = _interopRequireDefault(_ModalTitle); + + var _ModalFooter = __webpack_require__(191); + + var _ModalFooter2 = _interopRequireDefault(_ModalFooter); + + var _reactOverlaysLibModal = __webpack_require__(192); + + var _reactOverlaysLibModal2 = _interopRequireDefault(_reactOverlaysLibModal); + + var _reactOverlaysLibUtilsIsOverflowing = __webpack_require__(203); + + var _reactOverlaysLibUtilsIsOverflowing2 = _interopRequireDefault(_reactOverlaysLibUtilsIsOverflowing); + + var _lodashCompatObjectPick = __webpack_require__(169); + + var _lodashCompatObjectPick2 = _interopRequireDefault(_lodashCompatObjectPick); + + var Modal = _react2['default'].createClass({ + displayName: 'Modal', + + propTypes: _extends({}, _reactOverlaysLibModal2['default'].propTypes, _ModalDialog2['default'].propTypes, { + + /** + * Include a backdrop component. Specify 'static' for a backdrop that doesn't trigger an "onHide" when clicked. + */ + backdrop: _react2['default'].PropTypes.oneOf(['static', true, false]), + + /** + * Close the modal when escape key is pressed + */ + keyboard: _react2['default'].PropTypes.bool, + + /** + * Open and close the Modal with a slide and fade animation. + */ + animation: _react2['default'].PropTypes.bool, + + /** + * A Component type that provides the modal content Markup. This is a useful prop when you want to use your own + * styles and markup to create a custom modal component. + */ + dialogComponent: _reactPropTypesLibElementType2['default'], + + /** + * When `true` The modal will automatically shift focus to itself when it opens, and replace it to the last focused element when it closes. + * Generally this should never be set to false as it makes the Modal less accessible to assistive technologies, like screen-readers. + */ + autoFocus: _react2['default'].PropTypes.bool, + + /** + * When `true` The modal will prevent focus from leaving the Modal while open. + * Consider leaving the default value here, as it is necessary to make the Modal work well with assistive technologies, + * such as screen readers. + */ + enforceFocus: _react2['default'].PropTypes.bool, + + /** + * Hide this from automatic props documentation generation. + * @private + */ + bsStyle: _react2['default'].PropTypes.string, + + /** + * When `true` The modal will show itself. + */ + show: _react2['default'].PropTypes.bool, + + /** + * A callback fired when the header closeButton or non-static backdrop is + * clicked. Required if either are specified. + */ + onHide: _react2['default'].PropTypes.func + }), + + childContextTypes: { + '$bs_onModalHide': _react2['default'].PropTypes.func + }, + + getDefaultProps: function getDefaultProps() { + return _extends({}, _reactOverlaysLibModal2['default'].defaultProps, { + bsClass: 'modal', + animation: true, + dialogComponent: _ModalDialog2['default'] + }); + }, + + getInitialState: function getInitialState() { + return { + modalStyles: {} + }; + }, + + getChildContext: function getChildContext() { + return { + $bs_onModalHide: this.props.onHide + }; + }, + + render: function render() { + var _this = this; + + var _props = this.props; + var className = _props.className; + var children = _props.children; + var dialogClassName = _props.dialogClassName; + var animation = _props.animation; + + var props = _objectWithoutProperties(_props, ['className', 'children', 'dialogClassName', 'animation']); + + var modalStyles = this.state.modalStyles; + + var inClass = { 'in': props.show && !animation }; + var Dialog = props.dialogComponent; + + var parentProps = _lodashCompatObjectPick2['default'](props, _Object$keys(_reactOverlaysLibModal2['default'].propTypes).concat(['onExit', 'onExiting', 'onEnter', 'onEntered']) // the rest are fired in _onHide() and _onShow() + ); + + var modal = _react2['default'].createElement( + Dialog, + _extends({ + key: 'modal', + ref: function (ref) { + return _this._modal = ref; + } + }, props, { + style: modalStyles, + className: _classnames2['default'](className, inClass), + dialogClassName: dialogClassName, + onClick: props.backdrop === true ? this.handleDialogClick : null + }), + this.props.children + ); + + return _react2['default'].createElement( + _reactOverlaysLibModal2['default'], + _extends({}, parentProps, { + show: props.show, + ref: function (ref) { + _this._wrapper = ref && ref.refs.modal; + _this._backdrop = ref && ref.refs.backdrop; + }, + onEntering: this._onShow, + onExited: this._onHide, + backdropClassName: _classnames2['default'](_utilsBootstrapUtils2['default'].prefix(props, 'backdrop'), inClass), + containerClassName: _utilsBootstrapUtils2['default'].prefix(props, 'open'), + transition: animation ? _Fade2['default'] : undefined, + dialogTransitionTimeout: Modal.TRANSITION_DURATION, + backdropTransitionTimeout: Modal.BACKDROP_TRANSITION_DURATION + }), + modal + ); + }, + + _onShow: function _onShow() { + _domHelpersEvents2['default'].on(window, 'resize', this.handleWindowResize); + + this.setState(this._getStyles()); + + if (this.props.onEntering) { + var _props2; + + (_props2 = this.props).onEntering.apply(_props2, arguments); + } + }, + + _onHide: function _onHide() { + _domHelpersEvents2['default'].off(window, 'resize', this.handleWindowResize); + + if (this.props.onExited) { + var _props3; + + (_props3 = this.props).onExited.apply(_props3, arguments); + } + }, + + handleDialogClick: function handleDialogClick(e) { + if (e.target !== e.currentTarget) { + return; + } + + this.props.onHide(); + }, + + handleWindowResize: function handleWindowResize() { + this.setState(this._getStyles()); + }, + + _getStyles: function _getStyles() { + if (!_domHelpersUtilInDOM2['default']) { + return {}; + } + + var node = _reactDom2['default'].findDOMNode(this._modal); + var doc = _domHelpersOwnerDocument2['default'](node); + + var scrollHt = node.scrollHeight; + var bodyIsOverflowing = _reactOverlaysLibUtilsIsOverflowing2['default'](_reactDom2['default'].findDOMNode(this.props.container || doc.body)); + var modalIsOverflowing = scrollHt > doc.documentElement.clientHeight; + + return { + modalStyles: { + paddingRight: bodyIsOverflowing && !modalIsOverflowing ? _domHelpersUtilScrollbarSize2['default']() : void 0, + paddingLeft: !bodyIsOverflowing && modalIsOverflowing ? _domHelpersUtilScrollbarSize2['default']() : void 0 + } + }; + } + }); + + Modal.Body = _ModalBody2['default']; + Modal.Header = _ModalHeader2['default']; + Modal.Title = _ModalTitle2['default']; + Modal.Footer = _ModalFooter2['default']; + + Modal.Dialog = _ModalDialog2['default']; + + Modal.TRANSITION_DURATION = 300; + Modal.BACKDROP_TRANSITION_DURATION = 150; + + exports['default'] = _utilsBootstrapUtils.bsSizes([_styleMaps.Sizes.LARGE, _styleMaps.Sizes.SMALL], _utilsBootstrapUtils.bsClass('modal', Modal)); + module.exports = exports['default']; + +/***/ }, +/* 182 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var canUseDOM = __webpack_require__(78); + + var size; + + module.exports = function (recalc) { + if (!size || recalc) { + if (canUseDOM) { + var scrollDiv = document.createElement('div'); + + scrollDiv.style.position = 'absolute'; + scrollDiv.style.top = '-9999px'; + scrollDiv.style.width = '50px'; + scrollDiv.style.height = '50px'; + scrollDiv.style.overflow = 'scroll'; + + document.body.appendChild(scrollDiv); + size = scrollDiv.offsetWidth - scrollDiv.clientWidth; + document.body.removeChild(scrollDiv); + } + } + + return size; + }; + +/***/ }, +/* 183 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + var on = __webpack_require__(79), + off = __webpack_require__(162), + filter = __webpack_require__(184); + + module.exports = { on: on, off: off, filter: filter }; + +/***/ }, +/* 184 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var contains = __webpack_require__(85), + qsa = __webpack_require__(185); + + module.exports = function (selector, handler) { + return function (e) { + var top = e.currentTarget, + target = e.target, + matches = qsa(top, selector); + + if (matches.some(function (match) { + return contains(match, target); + })) handler.call(this, e); + }; + }; + +/***/ }, +/* 185 */ +/***/ function(module, exports) { + + 'use strict'; + // Zepto.js + // (c) 2010-2015 Thomas Fuchs + // Zepto.js may be freely distributed under the MIT license. + var simpleSelectorRE = /^[\w-]*$/, + toArray = Function.prototype.bind.call(Function.prototype.call, [].slice); + + module.exports = function qsa(element, selector) { + var maybeID = selector[0] === '#', + maybeClass = selector[0] === '.', + nameOnly = maybeID || maybeClass ? selector.slice(1) : selector, + isSimple = simpleSelectorRE.test(nameOnly), + found; + + if (isSimple) { + if (maybeID) { + element = element.getElementById ? element : document; + return (found = element.getElementById(nameOnly)) ? [found] : []; + } + + if (element.getElementsByClassName && maybeClass) return toArray(element.getElementsByClassName(nameOnly)); + + return toArray(element.getElementsByTagName(selector)); + } + + return toArray(element.querySelectorAll(selector)); + }; + +/***/ }, +/* 186 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _reactOverlaysLibTransition = __webpack_require__(76); + + var _reactOverlaysLibTransition2 = _interopRequireDefault(_reactOverlaysLibTransition); + + var _reactPropTypesLibDeprecated = __webpack_require__(80); + + var _reactPropTypesLibDeprecated2 = _interopRequireDefault(_reactPropTypesLibDeprecated); + + var Fade = (function (_React$Component) { + _inherits(Fade, _React$Component); + + function Fade() { + _classCallCheck(this, Fade); + + _React$Component.apply(this, arguments); + } + + // Explicitly copied from Transition for doc generation. + // TODO: Remove duplication once #977 is resolved. + + Fade.prototype.render = function render() { + var timeout = this.props.timeout || this.props.duration; + + return _react2['default'].createElement( + _reactOverlaysLibTransition2['default'], + _extends({}, this.props, { + timeout: timeout, + className: _classnames2['default'](this.props.className, 'fade'), + enteredClassName: 'in', + enteringClassName: 'in' + }), + this.props.children + ); + }; + + return Fade; + })(_react2['default'].Component); + + Fade.propTypes = { + /** + * Show the component; triggers the fade in or fade out animation + */ + 'in': _react2['default'].PropTypes.bool, + + /** + * Unmount the component (remove it from the DOM) when it is faded out + */ + unmountOnExit: _react2['default'].PropTypes.bool, + + /** + * Run the fade in animation when the component mounts, if it is initially + * shown + */ + transitionAppear: _react2['default'].PropTypes.bool, + + /** + * Duration of the fade animation in milliseconds, to ensure that finishing + * callbacks are fired even if the original browser transition end events are + * canceled + */ + timeout: _react2['default'].PropTypes.number, + + /** + * duration + * @private + */ + duration: _reactPropTypesLibDeprecated2['default'](_react2['default'].PropTypes.number, 'Use `timeout`.'), + + /** + * Callback fired before the component fades in + */ + onEnter: _react2['default'].PropTypes.func, + /** + * Callback fired after the component starts to fade in + */ + onEntering: _react2['default'].PropTypes.func, + /** + * Callback fired after the has component faded in + */ + onEntered: _react2['default'].PropTypes.func, + /** + * Callback fired before the component fades out + */ + onExit: _react2['default'].PropTypes.func, + /** + * Callback fired after the component starts to fade out + */ + onExiting: _react2['default'].PropTypes.func, + /** + * Callback fired after the component has faded out + */ + onExited: _react2['default'].PropTypes.func + }; + + Fade.defaultProps = { + 'in': false, + timeout: 300, + unmountOnExit: false, + transitionAppear: false + }; + + exports['default'] = Fade; + module.exports = exports['default']; + +/***/ }, +/* 187 */ +/***/ function(module, exports, __webpack_require__) { + + /* eslint-disable react/prop-types */ + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _styleMaps = __webpack_require__(25); + + var ModalDialog = _react2['default'].createClass({ + displayName: 'ModalDialog', + + propTypes: { + /** + * A css class to apply to the Modal dialog DOM node. + */ + dialogClassName: _react2['default'].PropTypes.string + }, + + render: function render() { + var modalStyle = _extends({ + display: 'block' + }, this.props.style); + var prefix = _utilsBootstrapUtils2['default'].prefix(this.props); + var dialogClasses = _utilsBootstrapUtils2['default'].getClassSet(this.props); + + delete dialogClasses[prefix]; + dialogClasses[_utilsBootstrapUtils2['default'].prefix(this.props, 'dialog')] = true; + + return _react2['default'].createElement( + 'div', + _extends({}, this.props, { + title: null, + tabIndex: '-1', + role: 'dialog', + style: modalStyle, + className: _classnames2['default'](this.props.className, prefix) + }), + _react2['default'].createElement( + 'div', + { className: _classnames2['default'](this.props.dialogClassName, dialogClasses) }, + _react2['default'].createElement( + 'div', + { className: _utilsBootstrapUtils2['default'].prefix(this.props, 'content'), role: 'document' }, + this.props.children + ) + ) + ); + } + }); + + exports['default'] = _utilsBootstrapUtils.bsSizes([_styleMaps.Sizes.LARGE, _styleMaps.Sizes.SMALL], _utilsBootstrapUtils.bsClass('modal', ModalDialog)); + module.exports = exports['default']; + +/***/ }, +/* 188 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var ModalBody = (function (_React$Component) { + _inherits(ModalBody, _React$Component); + + function ModalBody() { + _classCallCheck(this, ModalBody); + + _React$Component.apply(this, arguments); + } + + ModalBody.prototype.render = function render() { + return _react2['default'].createElement( + 'div', + _extends({}, this.props, { + className: _classnames2['default'](this.props.className, _utilsBootstrapUtils2['default'].prefix(this.props, 'body')) }), + this.props.children + ); + }; + + return ModalBody; + })(_react2['default'].Component); + + exports['default'] = _utilsBootstrapUtils.bsClass('modal', ModalBody); + module.exports = exports['default']; + +/***/ }, +/* 189 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _utilsCreateChainedFunction = __webpack_require__(6); + + var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); + + var ModalHeader = (function (_React$Component) { + _inherits(ModalHeader, _React$Component); + + function ModalHeader() { + _classCallCheck(this, ModalHeader); + + _React$Component.apply(this, arguments); + } + + ModalHeader.prototype.render = function render() { + var _props = this.props; + var label = _props['aria-label']; + + var props = _objectWithoutProperties(_props, ['aria-label']); + + var onHide = _utilsCreateChainedFunction2['default'](this.context.$bs_onModalHide, this.props.onHide); + + return _react2['default'].createElement( + 'div', + _extends({}, this.props, { + className: _classnames2['default'](this.props.className, _utilsBootstrapUtils2['default'].prefix(this.props, 'header')) + }), + this.props.closeButton && _react2['default'].createElement( + 'button', + { + type: 'button', + className: 'close', + 'aria-label': label, + onClick: onHide }, + _react2['default'].createElement( + 'span', + { 'aria-hidden': 'true' }, + '×' + ) + ), + this.props.children + ); + }; + + return ModalHeader; + })(_react2['default'].Component); + + ModalHeader.propTypes = { + /** + * The 'aria-label' attribute provides an accessible label for the close button. + * It is used for Assistive Technology when the label text is not readable. + */ + 'aria-label': _react2['default'].PropTypes.string, + + bsClass: _react2['default'].PropTypes.string, + + /** + * Specify whether the Component should contain a close button + */ + closeButton: _react2['default'].PropTypes.bool, + + /** + * A Callback fired when the close button is clicked. If used directly inside a Modal component, the onHide will automatically + * be propagated up to the parent Modal `onHide`. + */ + onHide: _react2['default'].PropTypes.func + }; + + ModalHeader.contextTypes = { + '$bs_onModalHide': _react2['default'].PropTypes.func + }; + + ModalHeader.defaultProps = { + 'aria-label': 'Close', + closeButton: false + }; + + exports['default'] = _utilsBootstrapUtils.bsClass('modal', ModalHeader); + module.exports = exports['default']; + +/***/ }, +/* 190 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var ModalTitle = (function (_React$Component) { + _inherits(ModalTitle, _React$Component); + + function ModalTitle() { + _classCallCheck(this, ModalTitle); + + _React$Component.apply(this, arguments); + } + + ModalTitle.prototype.render = function render() { + return _react2['default'].createElement( + 'h4', + _extends({}, this.props, { + className: _classnames2['default'](this.props.className, _utilsBootstrapUtils2['default'].prefix(this.props, 'title')) }), + this.props.children + ); + }; + + return ModalTitle; + })(_react2['default'].Component); + + exports['default'] = _utilsBootstrapUtils.bsClass('modal', ModalTitle); + module.exports = exports['default']; + +/***/ }, +/* 191 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var ModalFooter = (function (_React$Component) { + _inherits(ModalFooter, _React$Component); + + function ModalFooter() { + _classCallCheck(this, ModalFooter); + + _React$Component.apply(this, arguments); + } + + ModalFooter.prototype.render = function render() { + return _react2['default'].createElement( + 'div', + _extends({}, this.props, { + className: _classnames2['default'](this.props.className, _utilsBootstrapUtils2['default'].prefix(this.props, 'footer')) }), + this.props.children + ); + }; + + return ModalFooter; + })(_react2['default'].Component); + + ModalFooter.propTypes = { + /** + * A css class applied to the Component + */ + bsClass: _react2['default'].PropTypes.string + }; + + ModalFooter.defaultProps = { + bsClass: 'modal' + }; + + exports['default'] = _utilsBootstrapUtils.bsClass('modal', ModalFooter); + module.exports = exports['default']; + +/***/ }, +/* 192 */ +/***/ function(module, exports, __webpack_require__) { + + /*eslint-disable react/prop-types */ + 'use strict'; + + exports.__esModule = true; + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _warning = __webpack_require__(33); + + var _warning2 = _interopRequireDefault(_warning); + + var _reactPropTypesLibMountable = __webpack_require__(193); + + var _reactPropTypesLibMountable2 = _interopRequireDefault(_reactPropTypesLibMountable); + + var _reactPropTypesLibElementType = __webpack_require__(195); + + var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); + + var _Portal = __webpack_require__(196); + + var _Portal2 = _interopRequireDefault(_Portal); + + var _ModalManager = __webpack_require__(198); + + var _ModalManager2 = _interopRequireDefault(_ModalManager); + + var _utilsOwnerDocument = __webpack_require__(164); + + var _utilsOwnerDocument2 = _interopRequireDefault(_utilsOwnerDocument); + + var _utilsAddEventListener = __webpack_require__(161); + + var _utilsAddEventListener2 = _interopRequireDefault(_utilsAddEventListener); + + var _utilsAddFocusListener = __webpack_require__(206); + + var _utilsAddFocusListener2 = _interopRequireDefault(_utilsAddFocusListener); + + var _domHelpersUtilInDOM = __webpack_require__(78); + + var _domHelpersUtilInDOM2 = _interopRequireDefault(_domHelpersUtilInDOM); + + var _domHelpersActiveElement = __webpack_require__(83); + + var _domHelpersActiveElement2 = _interopRequireDefault(_domHelpersActiveElement); + + var _domHelpersQueryContains = __webpack_require__(85); + + var _domHelpersQueryContains2 = _interopRequireDefault(_domHelpersQueryContains); + + var _utilsGetContainer = __webpack_require__(197); + + var _utilsGetContainer2 = _interopRequireDefault(_utilsGetContainer); + + var modalManager = new _ModalManager2['default'](); + + /**
+ * Love them or hate them, `<Modal/>` provides a solid foundation for creating dialogs, lightboxes, or whatever else.
+ * The Modal component renders its `children` node in front of a backdrop component.
+ *
+ * The Modal offers a few helpful features over using just a `<Portal/>` component and some styles:
+ *
+ * - Manages dialog stacking when one-at-a-time just isn't enough.
+ * - Creates a backdrop, for disabling interaction below the modal.
+ * - It properly manages focus; moving to the modal content, and keeping it there until the modal is closed.
+ * - It disables scrolling of the page content while open.
+ * - Adds the appropriate ARIA roles are automatically.
+ * - Easily pluggable animations via a `<Transition/>` component.
+ *
+ */ + var Modal = _react2['default'].createClass({ + displayName: 'Modal', + + propTypes: _extends({}, _Portal2['default'].propTypes, { + + /**
+ * A Node, Component instance, or function that returns either. The Modal is appended to it's container element.
+ *
+ * For the sake of assistive technologies, the container should usually be the document body, so that the rest of the
+ * page content can be placed behind a virtual backdrop as well as a visual one.
+ */ + container: _react2['default'].PropTypes.oneOfType([_reactPropTypesLibMountable2['default'], _react2['default'].PropTypes.func]), + + /**
+ * A callback fired when the Modal is opening.
+ */ + onShow: _react2['default'].PropTypes.func, + + /**
+ * A callback fired when either the backdrop is clicked, or the escape key is pressed.
+ */ + onHide: _react2['default'].PropTypes.func, + + /**
+ * Include a backdrop component.
+ */ + backdrop: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.bool, _react2['default'].PropTypes.oneOf(['static'])]), + + /**
+ * A callback fired when the escape key, if specified in `keyboard`, is pressed.
+ */ + onEscapeKeyUp: _react2['default'].PropTypes.func, + + /**
+ * A callback fired when the backdrop, if specified, is clicked.
+ */ + onBackdropClick: _react2['default'].PropTypes.func, + + /**
+ * A style object for the backdrop component.
+ */ + backdropStyle: _react2['default'].PropTypes.object, + + /**
+ * A css class or classes for the backdrop component.
+ */ + backdropClassName: _react2['default'].PropTypes.string, + + /**
+ * A css class or set of classes applied to the modal container when the modal is open,
+ * and removed when it is closed.
+ */ + containerClassName: _react2['default'].PropTypes.string, + + /**
+ * Close the modal when escape key is pressed
+ */ + keyboard: _react2['default'].PropTypes.bool, + + /**
+ * A `<Transition/>` component to use for the dialog and backdrop components.
+ */ + transition: _reactPropTypesLibElementType2['default'], + + /**
+ * The `timeout` of the dialog transition if specified. This number is used to ensure that transition callbacks are always
+ * fired, even if browser transition events are canceled.
+ *
+ * See the Transition `timeout` prop for more infomation.
+ */ + dialogTransitionTimeout: _react2['default'].PropTypes.number, + + /**
+ * The `timeout` of the backdrop transition if specified. This number is used to ensure that transition callbacks are always
+ * fired, even if browser transition events are canceled.
+ *
+ * See the Transition `timeout` prop for more infomation.
+ */ + backdropTransitionTimeout: _react2['default'].PropTypes.number, + + /**
+ * When `true` The modal will automatically shift focus to itself when it opens, and replace it to the last focused element when it closes.
+ * Generally this should never be set to false as it makes the Modal less accessible to assistive technologies, like screen readers.
+ */ + autoFocus: _react2['default'].PropTypes.bool, + + /**
+ * When `true` The modal will prevent focus from leaving the Modal while open.
+ * Generally this should never be set to false as it makes the Modal less accessible to assistive technologies, like screen readers.
+ */ + enforceFocus: _react2['default'].PropTypes.bool + + }), + + getDefaultProps: function getDefaultProps() { + var noop = function noop() {}; + + return { + show: false, + backdrop: true, + keyboard: true, + autoFocus: true, + enforceFocus: true, + onHide: noop + }; + }, + + getInitialState: function getInitialState() { + return { exited: !this.props.show }; + }, + + render: function render() { + var _this = this; + + var _props = this.props; + var children = _props.children; + var Transition = _props.transition; + var backdrop = _props.backdrop; + var dialogTransitionTimeout = _props.dialogTransitionTimeout; + + var props = _objectWithoutProperties(_props, ['children', 'transition', 'backdrop', 'dialogTransitionTimeout']); + + var onExit = props.onExit; + var onExiting = props.onExiting; + var onEnter = props.onEnter; + var onEntering = props.onEntering; + var onEntered = props.onEntered; + + var show = !!props.show; + var dialog = _react2['default'].Children.only(this.props.children); + + var setMountNode = function setMountNode(ref) { + return _this.mountNode = !ref || ref.getMountNode(); + }; + + var mountModal = show || Transition && !this.state.exited; + + if (!mountModal) { + return null; + } + + var _dialog$props = dialog.props; + var role = _dialog$props.role; + var tabIndex = _dialog$props.tabIndex; + + if (role === undefined || tabIndex === undefined) { + dialog = _react.cloneElement(dialog, { + role: role === undefined ? 'document' : role, + tabIndex: tabIndex == null ? '-1' : tabIndex + }); + } + + if (Transition) { + dialog = _react2['default'].createElement( + Transition, + { + transitionAppear: true, + unmountOnExit: true, + 'in': show, + timeout: dialogTransitionTimeout, + onExit: onExit, + onExiting: onExiting, + onExited: this.handleHidden, + onEnter: onEnter, + onEntering: onEntering, + onEntered: onEntered + }, + dialog + ); + } + + return _react2['default'].createElement( + _Portal2['default'], + { + ref: setMountNode, + container: props.container + }, + _react2['default'].createElement( + 'div', + { + ref: 'modal', + role: props.role || 'dialog', + style: props.style, + className: props.className + }, + backdrop && this.renderBackdrop(), + dialog + ) + ); + }, + + renderBackdrop: function renderBackdrop() { + var _props2 = this.props; + var Transition = _props2.transition; + var backdropTransitionTimeout = _props2.backdropTransitionTimeout; + + var backdrop = _react2['default'].createElement('div', { ref: 'backdrop', + style: this.props.backdropStyle, + className: this.props.backdropClassName, + onClick: this.handleBackdropClick + }); + + if (Transition) { + backdrop = _react2['default'].createElement( + Transition, + { transitionAppear: true, + 'in': this.props.show, + timeout: backdropTransitionTimeout + }, + backdrop + ); + } + + return backdrop; + }, + + componentWillReceiveProps: function componentWillReceiveProps(nextProps) { + if (nextProps.show) { + this.setState({ exited: false }); + } else if (!nextProps.transition) { + // Otherwise let handleHidden take care of marking exited. + this.setState({ exited: true }); + } + }, + + componentWillUpdate: function componentWillUpdate(nextProps) { + if (nextProps.show) { + this.checkForFocus(); + } + }, + + componentDidMount: function componentDidMount() { + if (this.props.show) { + this.onShow(); + } + }, + + componentDidUpdate: function componentDidUpdate(prevProps) { + var transition = this.props.transition; + + if (prevProps.show && !this.props.show && !transition) { + // Otherwise handleHidden will call this. + this.onHide(); + } else if (!prevProps.show && this.props.show) { + this.onShow(); + } + }, + + componentWillUnmount: function componentWillUnmount() { + var _props3 = this.props; + var show = _props3.show; + var transition = _props3.transition; + + if (show || transition && !this.state.exited) { + this.onHide(); + } + }, + + onShow: function onShow() { + var doc = _utilsOwnerDocument2['default'](this); + var container = _utilsGetContainer2['default'](this.props.container, doc.body); + + modalManager.add(this, container, this.props.containerClassName); + + this._onDocumentKeyupListener = _utilsAddEventListener2['default'](doc, 'keyup', this.handleDocumentKeyUp); + + this._onFocusinListener = _utilsAddFocusListener2['default'](this.enforceFocus); + + this.focus(); + }, + + onHide: function onHide() { + modalManager.remove(this); + + this._onDocumentKeyupListener.remove(); + + this._onFocusinListener.remove(); + + this.restoreLastFocus(); + }, + + handleHidden: function handleHidden() { + this.setState({ exited: true }); + this.onHide(); + + if (this.props.onExited) { + var _props4; + + (_props4 = this.props).onExited.apply(_props4, arguments); + } + }, + + handleBackdropClick: function handleBackdropClick(e) { + if (e.target !== e.currentTarget) { + return; + } + + if (this.props.onBackdropClick) { + this.props.onBackdropClick(e); + } + + if (this.props.backdrop === true) { + this.props.onHide(); + } + }, + + handleDocumentKeyUp: function handleDocumentKeyUp(e) { + if (this.props.keyboard && e.keyCode === 27 && this.isTopModal()) { + if (this.props.onEscapeKeyUp) { + this.props.onEscapeKeyUp(e); + } + this.props.onHide(); + } + }, + + checkForFocus: function checkForFocus() { + if (_domHelpersUtilInDOM2['default']) { + this.lastFocus = _domHelpersActiveElement2['default'](); + } + }, + + focus: function focus() { + var autoFocus = this.props.autoFocus; + var modalContent = this.getDialogElement(); + var current = _domHelpersActiveElement2['default'](_utilsOwnerDocument2['default'](this)); + var focusInModal = current && _domHelpersQueryContains2['default'](modalContent, current); + + if (modalContent && autoFocus && !focusInModal) { + this.lastFocus = current; + + if (!modalContent.hasAttribute('tabIndex')) { + modalContent.setAttribute('tabIndex', -1); + _warning2['default'](false, 'The modal content node does not accept focus. ' + 'For the benefit of assistive technologies, the tabIndex of the node is being set to "-1".'); + } + + modalContent.focus(); + } + }, + + restoreLastFocus: function restoreLastFocus() { + // Support: <=IE11 doesn't support `focus()` on svg elements (RB: #917) + if (this.lastFocus && this.lastFocus.focus) { + this.lastFocus.focus(); + this.lastFocus = null; + } + }, + + enforceFocus: function enforceFocus() { + var enforceFocus = this.props.enforceFocus; + + if (!enforceFocus || !this.isMounted() || !this.isTopModal()) { + return; + } + + var active = _domHelpersActiveElement2['default'](_utilsOwnerDocument2['default'](this)); + var modal = this.getDialogElement(); + + if (modal && modal !== active && !_domHelpersQueryContains2['default'](modal, active)) { + modal.focus(); + } + }, + + //instead of a ref, which might conflict with one the parent applied. + getDialogElement: function getDialogElement() { + var node = this.refs.modal; + return node && node.lastChild; + }, + + isTopModal: function isTopModal() { + return modalManager.isTopModal(this); + } + + }); + + Modal.manager = modalManager; + + exports['default'] = Modal; + module.exports = exports['default']; + +/***/ }, +/* 193 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _common = __webpack_require__(194); + + /** + * Checks whether a prop provides a DOM element + * + * The element can be provided in two forms: + * - Directly passed + * - Or passed an object that has a `render` method + * + * @param props + * @param propName + * @param componentName + * @returns {Error|undefined} + */ + + function validate(props, propName, componentName) { + if (typeof props[propName] !== 'object' || typeof props[propName].render !== 'function' && props[propName].nodeType !== 1) { + return new Error(_common.errMsg(props, propName, componentName, ', expected a DOM element or an object that has a `render` method')); + } + } + + exports['default'] = _common.createChainableTypeChecker(validate); + module.exports = exports['default']; + +/***/ }, +/* 194 */ +/***/ function(module, exports) { + + 'use strict'; + + exports.__esModule = true; + exports.errMsg = errMsg; + exports.createChainableTypeChecker = createChainableTypeChecker; + + function errMsg(props, propName, componentName, msgContinuation) { + return 'Invalid prop \'' + propName + '\' of value \'' + props[propName] + '\'' + (' supplied to \'' + componentName + '\'' + msgContinuation); + } + + /** + * Create chain-able isRequired validator + * + * Largely copied directly from: + * https://github.com/facebook/react/blob/0.11-stable/src/core/ReactPropTypes.js#L94 + */ + + function createChainableTypeChecker(validate) { + function checkType(isRequired, props, propName, componentName) { + componentName = componentName || '<<anonymous>>'; + if (props[propName] == null) { + if (isRequired) { + return new Error('Required prop \'' + propName + '\' was not specified in \'' + componentName + '\'.'); + } + } else { + return validate(props, propName, componentName); + } + } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + + return chainedCheckType; + } + +/***/ }, +/* 195 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _common = __webpack_require__(194); + + /** + * Checks whether a prop provides a type of element. + * + * The type of element can be provided in two forms: + * - tag name (string) + * - a return value of React.createClass(...) + * + * @param props + * @param propName + * @param componentName + * @returns {Error|undefined} + */ + + function validate(props, propName, componentName) { + var errBeginning = _common.errMsg(props, propName, componentName, '. Expected an Element `type`'); + + if (typeof props[propName] !== 'function') { + if (_react2['default'].isValidElement(props[propName])) { + return new Error(errBeginning + ', not an actual Element'); + } + + if (typeof props[propName] !== 'string') { + return new Error(errBeginning + ' such as a tag name or return value of React.createClass(...)'); + } + } + } + + exports['default'] = _common.createChainableTypeChecker(validate); + module.exports = exports['default']; + +/***/ }, +/* 196 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _reactDom = __webpack_require__(63); + + var _reactDom2 = _interopRequireDefault(_reactDom); + + var _reactPropTypesLibMountable = __webpack_require__(193); + + var _reactPropTypesLibMountable2 = _interopRequireDefault(_reactPropTypesLibMountable); + + var _utilsOwnerDocument = __webpack_require__(164); + + var _utilsOwnerDocument2 = _interopRequireDefault(_utilsOwnerDocument); + + var _utilsGetContainer = __webpack_require__(197); + + var _utilsGetContainer2 = _interopRequireDefault(_utilsGetContainer); + + /**
+ * The `<Portal/>` component renders its children into a new "subtree" outside of current component hierarchy.
+ * You can think of it as a declarative `appendChild()`, or jQuery's `$.fn.appendTo()`.
+ * The children of `<Portal/>` component will be appended to the `container` specified.
+ */ + var Portal = _react2['default'].createClass({ + + displayName: 'Portal', + + propTypes: { + /**
+ * A Node, Component instance, or function that returns either. The `container` will have the Portal children
+ * appended to it.
+ */ + container: _react2['default'].PropTypes.oneOfType([_reactPropTypesLibMountable2['default'], _react2['default'].PropTypes.func]) + }, + + componentDidMount: function componentDidMount() { + this._renderOverlay(); + }, + + componentDidUpdate: function componentDidUpdate() { + this._renderOverlay(); + }, + + componentWillUnmount: function componentWillUnmount() { + this._unrenderOverlay(); + this._unmountOverlayTarget(); + }, + + _mountOverlayTarget: function _mountOverlayTarget() { + if (!this._overlayTarget) { + this._overlayTarget = document.createElement('div'); + this.getContainerDOMNode().appendChild(this._overlayTarget); + } + }, + + _unmountOverlayTarget: function _unmountOverlayTarget() { + if (this._overlayTarget) { + this.getContainerDOMNode().removeChild(this._overlayTarget); + this._overlayTarget = null; + } + }, + + _renderOverlay: function _renderOverlay() { + + var overlay = !this.props.children ? null : _react2['default'].Children.only(this.props.children); + + // Save reference for future access. + if (overlay !== null) { + this._mountOverlayTarget(); + this._overlayInstance = _reactDom2['default'].unstable_renderSubtreeIntoContainer(this, overlay, this._overlayTarget); + } else { + // Unrender if the component is null for transitions to null + this._unrenderOverlay(); + this._unmountOverlayTarget(); + } + }, + + _unrenderOverlay: function _unrenderOverlay() { + if (this._overlayTarget) { + _reactDom2['default'].unmountComponentAtNode(this._overlayTarget); + this._overlayInstance = null; + } + }, + + render: function render() { + return null; + }, + + getMountNode: function getMountNode() { + return this._overlayTarget; + }, + + getOverlayDOMNode: function getOverlayDOMNode() { + if (!this.isMounted()) { + throw new Error('getOverlayDOMNode(): A component must be mounted to have a DOM node.'); + } + + if (this._overlayInstance) { + if (this._overlayInstance.getWrappedDOMNode) { + return this._overlayInstance.getWrappedDOMNode(); + } else { + return _reactDom2['default'].findDOMNode(this._overlayInstance); + } + } + + return null; + }, + + getContainerDOMNode: function getContainerDOMNode() { + return _utilsGetContainer2['default'](this.props.container, _utilsOwnerDocument2['default'](this).body); + } + }); + + exports['default'] = Portal; + module.exports = exports['default']; + +/***/ }, +/* 197 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + exports['default'] = getContainer; + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + var _reactDom = __webpack_require__(63); + + var _reactDom2 = _interopRequireDefault(_reactDom); + + function getContainer(container, defaultContainer) { + container = typeof container === 'function' ? container() : container; + return _reactDom2['default'].findDOMNode(container) || defaultContainer; + } + + module.exports = exports['default']; + +/***/ }, +/* 198 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + + var _domHelpersStyle = __webpack_require__(68); + + var _domHelpersStyle2 = _interopRequireDefault(_domHelpersStyle); + + var _domHelpersClass = __webpack_require__(199); + + var _domHelpersClass2 = _interopRequireDefault(_domHelpersClass); + + var _domHelpersUtilScrollbarSize = __webpack_require__(182); + + var _domHelpersUtilScrollbarSize2 = _interopRequireDefault(_domHelpersUtilScrollbarSize); + + var _utilsIsOverflowing = __webpack_require__(203); + + var _utilsIsOverflowing2 = _interopRequireDefault(_utilsIsOverflowing); + + var _utilsManageAriaHidden = __webpack_require__(205); + + function findIndexOf(arr, cb) { + var idx = -1; + arr.some(function (d, i) { + if (cb(d, i)) { + idx = i; + return true; + } + }); + return idx; + } + + function findContainer(data, modal) { + return findIndexOf(data, function (d) { + return d.modals.indexOf(modal) !== -1; + }); + } + + /**
+ * Proper state managment for containers and the modals in those containers.
+ *
+ * @internal Used by the Modal to ensure proper styling of containers.
+ */ + + var ModalManager = (function () { + function ModalManager() { + var hideSiblingNodes = arguments[0] === undefined ? true : arguments[0]; + + _classCallCheck(this, ModalManager); + + this.hideSiblingNodes = hideSiblingNodes; + this.modals = []; + this.containers = []; + this.data = []; + } + + ModalManager.prototype.add = function add(modal, container, className) { + var modalIdx = this.modals.indexOf(modal); + var containerIdx = this.containers.indexOf(container); + + if (modalIdx !== -1) { + return modalIdx; + } + + modalIdx = this.modals.length; + this.modals.push(modal); + + if (this.hideSiblingNodes) { + _utilsManageAriaHidden.hideSiblings(container, modal.mountNode); + } + + if (containerIdx !== -1) { + this.data[containerIdx].modals.push(modal); + return modalIdx; + } + + var data = { + modals: [modal], + //right now only the first modal of a container will have its classes applied + classes: className ? className.split(/\s+/) : [], + //we are only interested in the actual `style` here becasue we will override it + style: { + overflow: container.style.overflow, + paddingRight: container.style.paddingRight + } + }; + + var style = { overflow: 'hidden' }; + + data.overflowing = _utilsIsOverflowing2['default'](container); + + if (data.overflowing) { + // use computed style, here to get the real padding + // to add our scrollbar width + style.paddingRight = parseInt(_domHelpersStyle2['default'](container, 'paddingRight') || 0, 10) + _domHelpersUtilScrollbarSize2['default']() + 'px'; + } + + _domHelpersStyle2['default'](container, style); + + data.classes.forEach(_domHelpersClass2['default'].addClass.bind(null, container)); + + this.containers.push(container); + this.data.push(data); + + return modalIdx; + }; + + ModalManager.prototype.remove = function remove(modal) { + var modalIdx = this.modals.indexOf(modal); + + if (modalIdx === -1) { + return; + } + + var containerIdx = findContainer(this.data, modal); + var data = this.data[containerIdx]; + var container = this.containers[containerIdx]; + + data.modals.splice(data.modals.indexOf(modal), 1); + + this.modals.splice(modalIdx, 1); + + //if that was the last modal in a container, clean it up. + if (data.modals.length === 0) { + Object.keys(data.style).forEach(function (key) { + return container.style[key] = data.style[key]; + }); + + data.classes.forEach(_domHelpersClass2['default'].removeClass.bind(null, container)); + + if (this.hideSiblingNodes) { + _utilsManageAriaHidden.showSiblings(container, modal.mountNode); + } + this.containers.splice(containerIdx, 1); + this.data.splice(containerIdx, 1); + } else if (this.hideSiblingNodes) { + //otherwise make sure the next top modal is visible to a SR + _utilsManageAriaHidden.ariaHidden(false, data.modals[data.modals.length - 1].mountNode); + } + }; + + ModalManager.prototype.isTopModal = function isTopModal(modal) { + return !!this.modals.length && this.modals[this.modals.length - 1] === modal; + }; + + return ModalManager; + })(); + + exports['default'] = ModalManager; + module.exports = exports['default']; + +/***/ }, +/* 199 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + module.exports = { + addClass: __webpack_require__(200), + removeClass: __webpack_require__(202), + hasClass: __webpack_require__(201) + }; + +/***/ }, +/* 200 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + var hasClass = __webpack_require__(201); + + module.exports = function addClass(element, className) { + if (element.classList) element.classList.add(className);else if (!hasClass(element)) element.className = element.className + ' ' + className; + }; + +/***/ }, +/* 201 */ +/***/ function(module, exports) { + + 'use strict'; + module.exports = function hasClass(element, className) { + if (element.classList) return !!className && element.classList.contains(className);else return (' ' + element.className + ' ').indexOf(' ' + className + ' ') !== -1; + }; + +/***/ }, +/* 202 */ +/***/ function(module, exports) { + + 'use strict'; + + module.exports = function removeClass(element, className) { + if (element.classList) element.classList.remove(className);else element.className = element.className.replace(new RegExp('(^|\\s)' + className + '(?:\\s|$)', 'g'), '$1').replace(/\s+/g, ' ').replace(/^\s*|\s*$/g, ''); + }; + +/***/ }, +/* 203 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + exports['default'] = isOverflowing; + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + var _domHelpersQueryIsWindow = __webpack_require__(204); + + var _domHelpersQueryIsWindow2 = _interopRequireDefault(_domHelpersQueryIsWindow); + + var _domHelpersOwnerDocument = __webpack_require__(84); + + var _domHelpersOwnerDocument2 = _interopRequireDefault(_domHelpersOwnerDocument); + + function isBody(node) { + return node && node.tagName.toLowerCase() === 'body'; + } + + function bodyIsOverflowing(node) { + var doc = _domHelpersOwnerDocument2['default'](node); + var win = _domHelpersQueryIsWindow2['default'](doc); + var fullWidth = win.innerWidth; + + // Support: ie8, no innerWidth + if (!fullWidth) { + var documentElementRect = doc.documentElement.getBoundingClientRect(); + fullWidth = documentElementRect.right - Math.abs(documentElementRect.left); + } + + return doc.body.clientWidth < fullWidth; + } + + function isOverflowing(container) { + var win = _domHelpersQueryIsWindow2['default'](container); + + return win || isBody(container) ? bodyIsOverflowing(container) : container.scrollHeight > container.clientHeight; + } + + module.exports = exports['default']; + +/***/ }, +/* 204 */ +/***/ function(module, exports) { + + 'use strict'; + + module.exports = function getWindow(node) { + return node === node.window ? node : node.nodeType === 9 ? node.defaultView || node.parentWindow : false; + }; + +/***/ }, +/* 205 */ +/***/ function(module, exports) { + + 'use strict'; + + exports.__esModule = true; + exports.ariaHidden = ariaHidden; + exports.hideSiblings = hideSiblings; + exports.showSiblings = showSiblings; + + var BLACKLIST = ['template', 'script', 'style']; + + var isHidable = function isHidable(_ref) { + var nodeType = _ref.nodeType; + var tagName = _ref.tagName; + return nodeType === 1 && BLACKLIST.indexOf(tagName.toLowerCase()) === -1; + }; + + var siblings = function siblings(container, mount, cb) { + mount = [].concat(mount); + + [].forEach.call(container.children, function (node) { + if (mount.indexOf(node) === -1 && isHidable(node)) { + cb(node); + } + }); + }; + + function ariaHidden(show, node) { + if (!node) { + return; + } + if (show) { + node.setAttribute('aria-hidden', 'true'); + } else { + node.removeAttribute('aria-hidden'); + } + } + + function hideSiblings(container, mountNode) { + siblings(container, mountNode, function (node) { + return ariaHidden(true, node); + }); + } + + function showSiblings(container, mountNode) { + siblings(container, mountNode, function (node) { + return ariaHidden(false, node); + }); + } + +/***/ }, +/* 206 */ +/***/ function(module, exports) { + + /**
+ * Firefox doesn't have a focusin event so using capture is easiest way to get bubbling
+ * IE8 can't do addEventListener, but does have onfocusin, so we use that in ie8
+ *
+ * We only allow one Listener at a time to avoid stack overflows
+ */ + 'use strict'; + + exports.__esModule = true; + exports['default'] = addFocusListener; + + function addFocusListener(handler) { + var useFocusin = !document.addEventListener; + var remove = undefined; + + if (useFocusin) { + document.attachEvent('onfocusin', handler); + remove = function () { + return document.detachEvent('onfocusin', handler); + }; + } else { + document.addEventListener('focus', handler, true); + remove = function () { + return document.removeEventListener('focus', handler, true); + }; + } + + return { remove: remove }; + } + + module.exports = exports['default']; + +/***/ }, +/* 207 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _reactPropTypesLibAll = __webpack_require__(55); + + var _reactPropTypesLibAll2 = _interopRequireDefault(_reactPropTypesLibAll); + + var _reactPropTypesLibDeprecated = __webpack_require__(80); + + var _reactPropTypesLibDeprecated2 = _interopRequireDefault(_reactPropTypesLibDeprecated); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _utilsValidComponentChildren = __webpack_require__(7); + + var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); + + var _utilsCreateChainedFunction = __webpack_require__(6); + + var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); + + var _Collapse = __webpack_require__(67); + + var _Collapse2 = _interopRequireDefault(_Collapse); + + var Nav = (function (_React$Component) { + _inherits(Nav, _React$Component); + + function Nav() { + _classCallCheck(this, Nav); + + _React$Component.apply(this, arguments); + } + + Nav.prototype.render = function render() { + var _props = this.props; + var className = _props.className; + var ulClassName = _props.ulClassName; + var id = _props.id; + var ulId = _props.ulId; + + var isNavbar = this.props.navbar != null ? this.props.navbar : this.context.$bs_navbar; + var classes = _utilsBootstrapUtils2['default'].getClassSet(this.props); + + classes[_utilsBootstrapUtils2['default'].prefix(this.props, 'stacked')] = this.props.stacked; + classes[_utilsBootstrapUtils2['default'].prefix(this.props, 'justified')] = this.props.justified; + + if (isNavbar) { + var bsClass = this.context.$bs_navbar_bsClass || 'navbar'; + var navbarRight = this.props.right != null ? this.props.right : this.props.pullRight; + + classes[_utilsBootstrapUtils2['default'].prefix({ bsClass: bsClass }, 'nav')] = true; + classes[_utilsBootstrapUtils2['default'].prefix({ bsClass: bsClass }, 'right')] = navbarRight; + classes[_utilsBootstrapUtils2['default'].prefix({ bsClass: bsClass }, 'left')] = this.props.pullLeft; + } else { + classes['pull-right'] = this.props.pullRight; + classes['pull-left'] = this.props.pullLeft; + } + + var list = _react2['default'].createElement( + 'ul', + _extends({ ref: 'ul' + }, this.props, { + id: ulId || id, + role: this.props.bsStyle === 'tabs' ? 'tablist' : null, + className: _classnames2['default'](className, ulClassName, classes) + }), + _utilsValidComponentChildren2['default'].map(this.props.children, this.renderNavItem, this) + ); + + // TODO remove in 0.29 + if (this.context.$bs_deprecated_navbar && this.props.collapsible) { + list = _react2['default'].createElement( + _Collapse2['default'], + { + 'in': this.props.expanded, + className: isNavbar ? 'navbar-collapse' : void 0 + }, + _react2['default'].createElement( + 'div', + null, + list + ) + ); + } + + return list; + }; + + Nav.prototype.getChildActiveProp = function getChildActiveProp(child) { + if (child.props.active) { + return true; + } + if (this.props.activeKey != null) { + if (child.props.eventKey === this.props.activeKey) { + return true; + } + } + if (this.props.activeHref != null) { + if (child.props.href === this.props.activeHref) { + return true; + } + } + + return child.props.active; + }; + + Nav.prototype.renderNavItem = function renderNavItem(child, index) { + return _react.cloneElement(child, { + role: this.props.bsStyle === 'tabs' ? 'tab' : null, + active: this.getChildActiveProp(child), + activeKey: this.props.activeKey, + activeHref: this.props.activeHref, + onSelect: _utilsCreateChainedFunction2['default'](child.props.onSelect, this.props.onSelect), + key: child.key ? child.key : index, + navItem: true + }); + }; + + return Nav; + })(_react2['default'].Component); + + Nav.propTypes = { + activeHref: _react2['default'].PropTypes.string, + activeKey: _react2['default'].PropTypes.any, + + stacked: _react2['default'].PropTypes.bool, + justified: _reactPropTypesLibAll2['default'](_react2['default'].PropTypes.bool, function (_ref) { + var justified = _ref.justified; + var navbar = _ref.navbar; + return justified && navbar ? Error('justified navbar `Nav`s are not supported') : null; + }), + onSelect: _react2['default'].PropTypes.func, + + /** + * CSS classes for the wrapper `nav` element + */ + className: _react2['default'].PropTypes.string, + /** + * HTML id for the wrapper `nav` element + */ + id: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]), + /** + * CSS classes for the inner `ul` element + * + * @deprecated + */ + ulClassName: _reactPropTypesLibDeprecated2['default'](_react2['default'].PropTypes.string, 'The wrapping `<nav>` has been removed you can use `className` now'), + /** + * HTML id for the inner `ul` element + * + * @deprecated + */ + + ulId: _reactPropTypesLibDeprecated2['default'](_react2['default'].PropTypes.string, 'The wrapping `<nav>` has been removed you can use `id` now'), + + /** + * Apply styling an alignment for use in a Navbar. This prop will be set + * automatically when the Nav is used inside a Navbar. + */ + navbar: _react2['default'].PropTypes.bool, + eventKey: _react2['default'].PropTypes.any, + pullRight: _react2['default'].PropTypes.bool, + pullLeft: _react2['default'].PropTypes.bool, + + right: _reactPropTypesLibDeprecated2['default'](_react2['default'].PropTypes.bool, 'Use the `pullRight` prop instead'), + + /** + * @private + */ + expanded: _react2['default'].PropTypes.bool, + + /** + * @private + */ + collapsible: _reactPropTypesLibDeprecated2['default'](_react2['default'].PropTypes.bool, 'Use `Navbar.Collapse` instead, to create collapsible Navbars') + }; + + Nav.contextTypes = { + $bs_navbar: _react2['default'].PropTypes.bool, + $bs_navbar_bsClass: _react2['default'].PropTypes.string, + + $bs_deprecated_navbar: _react2['default'].PropTypes.bool + }; + + Nav.defaultProps = { + justified: false, + pullRight: false, + pullLeft: false, + stacked: false + }; + + exports['default'] = _utilsBootstrapUtils.bsClass('nav', _utilsBootstrapUtils.bsStyles(['tabs', 'pills'], Nav)); + module.exports = exports['default']; + +/***/ }, +/* 208 */ +/***/ function(module, exports, __webpack_require__) { + + /* eslint react/no-multi-comp: 0 */ + 'use strict'; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _uncontrollable = __webpack_require__(156); + + var _uncontrollable2 = _interopRequireDefault(_uncontrollable); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _reactPropTypesLibElementType = __webpack_require__(52); + + var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); + + var _reactPropTypesLibDeprecated = __webpack_require__(80); + + var _reactPropTypesLibDeprecated2 = _interopRequireDefault(_reactPropTypesLibDeprecated); + + var _utilsDeprecationWarning = __webpack_require__(81); + + var _utilsDeprecationWarning2 = _interopRequireDefault(_utilsDeprecationWarning); + + var _utilsValidComponentChildren = __webpack_require__(7); + + var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); + + var _Grid = __webpack_require__(170); + + var _Grid2 = _interopRequireDefault(_Grid); + + var _deprecatedNavbar = __webpack_require__(209); + + var _deprecatedNavbar2 = _interopRequireDefault(_deprecatedNavbar); + + var _NavbarBrand = __webpack_require__(211); + + var _NavbarBrand2 = _interopRequireDefault(_NavbarBrand); + + var _NavbarHeader = __webpack_require__(212); + + var _NavbarHeader2 = _interopRequireDefault(_NavbarHeader); + + var _NavbarToggle = __webpack_require__(213); + + var _NavbarToggle2 = _interopRequireDefault(_NavbarToggle); + + var _NavbarCollapse = __webpack_require__(214); + + var _NavbarCollapse2 = _interopRequireDefault(_NavbarCollapse); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _styleMaps = __webpack_require__(25); + + var has = function has(obj, key) { + return obj && ({}).hasOwnProperty.call(obj, key); + }; + + function shouldRenderOldNavbar(component) { + var props = component.props; + return has(props, 'brand') || has(props, 'toggleButton') || has(props, 'toggleNavKey') || has(props, 'navExpanded') || has(props, 'defaultNavExpanded') || + // this should be safe b/c the new version requires wrapping in a Header + _utilsValidComponentChildren2['default'].findValidComponents(props.children, function (child) { + return child.props.bsRole === 'brand'; + }).length > 0; + } + + var Navbar = _react2['default'].createClass({ + displayName: 'Navbar', + + propTypes: { + /** + * Create a fixed navbar along the top of the screen, that scrolls with the page + */ + fixedTop: _react2['default'].PropTypes.bool, + /** + * Create a fixed navbar along the bottom of the screen, that scrolls with the page + */ + fixedBottom: _react2['default'].PropTypes.bool, + /** + * Create a full-width navbar that scrolls away with the page + */ + staticTop: _react2['default'].PropTypes.bool, + /** + * An alternative dark visual style for the Navbar + */ + inverse: _react2['default'].PropTypes.bool, + /** + * Allow the Navbar to fluidly adjust to the page or container width, instead of at the + * predefined screen breakpoints + */ + fluid: _react2['default'].PropTypes.bool, + + /** + * Set a custom element for this component. + */ + componentClass: _reactPropTypesLibElementType2['default'], + /** + * A callback fired when the `<Navbar>` body collapses or expands. + * Fired when a `<Navbar.Toggle>` is clicked and called with the new `navExpanded` boolean value. + * + * @controllable navExpanded + */ + onToggle: _react2['default'].PropTypes.func, + + /** + * Explicitly set the visiblity of the navbar body + * + * @controllable onToggle + */ + expanded: _react2['default'].PropTypes.bool, + + /** + * @deprecated + */ + navExpanded: _reactPropTypesLibDeprecated2['default'](_react2['default'].PropTypes.bool, 'Use `expanded` and `defaultExpanded` instead.') + }, + + childContextTypes: { + $bs_navbar: _react.PropTypes.bool, + $bs_navbar_bsClass: _react.PropTypes.string, + $bs_navbar_onToggle: _react.PropTypes.func, + $bs_navbar_expanded: _react.PropTypes.bool + }, + + getDefaultProps: function getDefaultProps() { + return { + componentClass: 'nav', + fixedTop: false, + fixedBottom: false, + staticTop: false, + inverse: false, + fluid: false + }; + }, + + getChildContext: function getChildContext() { + return { + $bs_navbar: true, + $bs_navbar_bsClass: this.props.bsClass, + $bs_navbar_onToggle: this.handleToggle, + $bs_navbar_expanded: this.props.expanded + }; + }, + + handleToggle: function handleToggle() { + this.props.onToggle(!this.props.expanded); + }, + + isNavExpanded: function isNavExpanded() { + return !!this.props.expanded; + }, + + render: function render() { + if (shouldRenderOldNavbar(this)) { + _utilsDeprecationWarning2['default']({ message: 'Rendering a deprecated version of the Navbar due to the use of deprecated ' + 'props. Please use the new Navbar api, and remove `toggleButton`, ' + '`toggleNavKey`, `brand`, `navExpanded`, `defaultNavExpanded` props or the ' + 'use of the `<NavBrand>` component outside of a `<Navbar.Header>`. \n\n' + 'for more details see: http://react-bootstrap.github.io/components.html#navbars' + }); + + return _react2['default'].createElement(_deprecatedNavbar2['default'], this.props); + } + + var _props = this.props; + var fixedTop = _props.fixedTop; + var fixedBottom = _props.fixedBottom; + var staticTop = _props.staticTop; + var inverse = _props.inverse; + var ComponentClass = _props.componentClass; + var fluid = _props.fluid; + var className = _props.className; + var children = _props.children; + + var props = _objectWithoutProperties(_props, ['fixedTop', 'fixedBottom', 'staticTop', 'inverse', 'componentClass', 'fluid', 'className', 'children']); + + // will result in some false positives but that seems better + // than false negatives. strict `undefined` check allows explicit + // "nulling" of the role if the user really doesn't want one + if (props.role === undefined && ComponentClass !== 'nav') { + props.role = 'navigation'; + } + + var classes = _utilsBootstrapUtils2['default'].getClassSet(this.props); + + classes[_utilsBootstrapUtils2['default'].prefix(this.props, 'fixed-top')] = fixedTop; + classes[_utilsBootstrapUtils2['default'].prefix(this.props, 'fixed-bottom')] = fixedBottom; + classes[_utilsBootstrapUtils2['default'].prefix(this.props, 'static-top')] = staticTop; + + // handle built-in styles manually to provide the convenience `inverse` prop + classes[_utilsBootstrapUtils2['default'].prefix(this.props, _styleMaps.INVERSE)] = inverse; + classes[_utilsBootstrapUtils2['default'].prefix(this.props, _styleMaps.DEFAULT)] = !inverse; + + return _react2['default'].createElement( + ComponentClass, + _extends({}, props, { className: _classnames2['default'](className, classes) }), + _react2['default'].createElement( + _Grid2['default'], + { fluid: fluid }, + children + ) + ); + } + }); + + var NAVBAR_STATES = [_styleMaps.DEFAULT, _styleMaps.INVERSE]; + + Navbar = _utilsBootstrapUtils.bsStyles(NAVBAR_STATES, _styleMaps.DEFAULT, _utilsBootstrapUtils.bsClass('navbar', _uncontrollable2['default'](Navbar, { expanded: 'onToggle' }))); + + function createSimpleWrapper(tag, suffix, displayName) { + var wrapper = function wrapper(_ref, _ref2) { + var Tag = _ref.componentClass; + var className = _ref.className; + + var props = _objectWithoutProperties(_ref, ['componentClass', 'className']); + + var _classNames; + + var _ref2$$bs_navbar_bsClass = _ref2.$bs_navbar_bsClass; + var bsClass = _ref2$$bs_navbar_bsClass === undefined ? 'navbar' : _ref2$$bs_navbar_bsClass; + return _react2['default'].createElement(Tag, _extends({}, props, { + className: _classnames2['default'](className, _utilsBootstrapUtils2['default'].prefix({ bsClass: bsClass }, suffix), (_classNames = {}, _classNames[_utilsBootstrapUtils2['default'].prefix({ bsClass: bsClass }, 'right')] = props.pullRight, _classNames[_utilsBootstrapUtils2['default'].prefix({ bsClass: bsClass }, 'left')] = props.pullLeft, _classNames)) + })); + }; + + wrapper.displayName = displayName; + + wrapper.propTypes = { + componentClass: _reactPropTypesLibElementType2['default'], + pullRight: _react2['default'].PropTypes.bool, + pullLeft: _react2['default'].PropTypes.bool + }; + wrapper.defaultProps = { + componentClass: tag, + pullRight: false, + pullLeft: false + }; + + wrapper.contextTypes = { + $bs_navbar_bsClass: _react.PropTypes.string + }; + + return wrapper; + } + + Navbar.Brand = _NavbarBrand2['default']; + Navbar.Header = _NavbarHeader2['default']; + Navbar.Toggle = _NavbarToggle2['default']; + Navbar.Collapse = _NavbarCollapse2['default']; + + Navbar.Form = createSimpleWrapper('div', 'form', 'NavbarForm'); + Navbar.Text = createSimpleWrapper('p', 'text', 'NavbarText'); + Navbar.Link = createSimpleWrapper('a', 'link', 'NavbarLink'); + + exports['default'] = Navbar; + module.exports = exports['default']; + +/***/ }, +/* 209 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _reactPropTypesLibDeprecated = __webpack_require__(80); + + var _reactPropTypesLibDeprecated2 = _interopRequireDefault(_reactPropTypesLibDeprecated); + + var _reactPropTypesLibElementType = __webpack_require__(52); + + var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); + + var _Grid = __webpack_require__(170); + + var _Grid2 = _interopRequireDefault(_Grid); + + var _NavBrand = __webpack_require__(210); + + var _NavBrand2 = _interopRequireDefault(_NavBrand); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _styleMaps = __webpack_require__(25); + + var _utilsCreateChainedFunction = __webpack_require__(6); + + var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); + + var _utilsValidComponentChildren = __webpack_require__(7); + + var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); + + var Navbar = _react2['default'].createClass({ + displayName: 'Navbar', + + propTypes: { + fixedTop: _react2['default'].PropTypes.bool, + fixedBottom: _react2['default'].PropTypes.bool, + staticTop: _react2['default'].PropTypes.bool, + inverse: _react2['default'].PropTypes.bool, + fluid: _react2['default'].PropTypes.bool, + role: _react2['default'].PropTypes.string, + /** + * You can use a custom element for this component + */ + componentClass: _reactPropTypesLibElementType2['default'], + brand: _reactPropTypesLibDeprecated2['default'](_react2['default'].PropTypes.node, 'Use the `NavBrand` component.'), + toggleButton: _react2['default'].PropTypes.node, + toggleNavKey: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]), + onToggle: _react2['default'].PropTypes.func, + navExpanded: _react2['default'].PropTypes.bool, + defaultNavExpanded: _react2['default'].PropTypes.bool + }, + + // TODO Remove in 0.29 + childContextTypes: { + $bs_deprecated_navbar: _react2['default'].PropTypes.bool + }, + + getChildContext: function getChildContext() { + return { + $bs_deprecated_navbar: true + }; + }, + + getDefaultProps: function getDefaultProps() { + return { + role: 'navigation', + componentClass: 'nav', + fixedTop: false, + fixedBottom: false, + staticTop: false, + inverse: false, + fluid: false, + defaultNavExpanded: false + }; + }, + + getInitialState: function getInitialState() { + return { + navExpanded: this.props.defaultNavExpanded + }; + }, + + shouldComponentUpdate: function shouldComponentUpdate() { + // Defer any updates to this component during the `onSelect` handler. + return !this._isChanging; + }, + + handleToggle: function handleToggle() { + if (this.props.onToggle) { + this._isChanging = true; + this.props.onToggle(); + this._isChanging = false; + } + + this.setState({ + navExpanded: !this.state.navExpanded + }); + }, + + isNavExpanded: function isNavExpanded() { + return this.props.navExpanded != null ? this.props.navExpanded : this.state.navExpanded; + }, + + hasNavBrandChild: function hasNavBrandChild() { + return _utilsValidComponentChildren2['default'].findValidComponents(this.props.children, function (child) { + return child.props.bsRole === 'brand'; + }).length > 0; + }, + + render: function render() { + var _props = this.props; + var brand = _props.brand; + var toggleButton = _props.toggleButton; + var toggleNavKey = _props.toggleNavKey; + var fixedTop = _props.fixedTop; + var fixedBottom = _props.fixedBottom; + var staticTop = _props.staticTop; + var inverse = _props.inverse; + var ComponentClass = _props.componentClass; + var fluid = _props.fluid; + var className = _props.className; + var children = _props.children; + + var props = _objectWithoutProperties(_props, ['brand', 'toggleButton', 'toggleNavKey', 'fixedTop', 'fixedBottom', 'staticTop', 'inverse', 'componentClass', 'fluid', 'className', 'children']); + + // will result in some false positives but that seems better + // than false negatives. strict `undefined` check allows explicit + // "nulling" of the role if the user really doesn't want one + if (props.role === undefined && ComponentClass !== 'nav') { + props.role = 'navigation'; + } + + var classes = _utilsBootstrapUtils2['default'].getClassSet(this.props); + + classes[_utilsBootstrapUtils2['default'].prefix(this.props, 'fixed-top')] = this.props.fixedTop; + classes[_utilsBootstrapUtils2['default'].prefix(this.props, 'fixed-bottom')] = this.props.fixedBottom; + classes[_utilsBootstrapUtils2['default'].prefix(this.props, 'static-top')] = this.props.staticTop; + + // handle built-in styles manually to provide the convenience `inverse` prop + classes[_utilsBootstrapUtils2['default'].prefix(this.props, _styleMaps.INVERSE)] = this.props.inverse; + classes[_utilsBootstrapUtils2['default'].prefix(this.props, _styleMaps.DEFAULT)] = !this.props.inverse; + + var showHeader = (brand || toggleButton || toggleNavKey != null) && !this.hasNavBrandChild(); + + return _react2['default'].createElement( + ComponentClass, + _extends({}, props, { className: _classnames2['default'](className, classes) }), + _react2['default'].createElement( + _Grid2['default'], + { fluid: fluid }, + showHeader ? this.renderBrandHeader() : null, + _utilsValidComponentChildren2['default'].map(children, this.renderChild) + ) + ); + }, + + renderBrandHeader: function renderBrandHeader() { + var brand = this.props.brand; + + if (brand) { + brand = _react2['default'].createElement( + _NavBrand2['default'], + null, + brand + ); + } + + return this.renderHeader(brand); + }, + + renderHeader: function renderHeader(brand) { + var hasToggle = this.props.toggleButton || this.props.toggleNavKey != null; + var headerClass = _utilsBootstrapUtils2['default'].prefix(this.props, 'header'); + + return _react2['default'].createElement( + 'div', + { className: headerClass }, + brand, + hasToggle ? this.renderToggleButton() : null + ); + }, + + renderChild: function renderChild(child, index) { + var key = child.key != null ? child.key : index; + + if (child.props.bsRole === 'brand') { + return _react2['default'].cloneElement(this.renderHeader(child), { key: key }); + } + + var toggleNavKey = this.props.toggleNavKey; + + var collapsible = toggleNavKey != null && toggleNavKey === child.props.eventKey; + + return _react2['default'].cloneElement(child, { + navbar: true, + collapsible: collapsible, + expanded: collapsible && this.isNavExpanded(), + key: key + }); + }, + + renderToggleButton: function renderToggleButton() { + var toggleButton = this.props.toggleButton; + + var toggleClass = _utilsBootstrapUtils2['default'].prefix(this.props, 'toggle'); + + if (_react2['default'].isValidElement(toggleButton)) { + return _react2['default'].cloneElement(toggleButton, { + className: _classnames2['default'](toggleButton.props.className, toggleClass), + onClick: _utilsCreateChainedFunction2['default'](this.handleToggle, toggleButton.props.onClick) + }); + } + + var children = undefined; + if (toggleButton != null) { + children = toggleButton; + } else { + children = [_react2['default'].createElement( + 'span', + { className: 'sr-only', key: 0 }, + 'Toggle navigation' + ), _react2['default'].createElement('span', { className: 'icon-bar', key: 1 }), _react2['default'].createElement('span', { className: 'icon-bar', key: 2 }), _react2['default'].createElement('span', { className: 'icon-bar', key: 3 })]; + } + + return _react2['default'].createElement( + 'button', + { + type: 'button', + onClick: this.handleToggle, + className: toggleClass + }, + children + ); + } + + }); + + var NAVBAR_STATES = [_styleMaps.DEFAULT, _styleMaps.INVERSE]; + + exports['default'] = _utilsBootstrapUtils.bsStyles(NAVBAR_STATES, _styleMaps.DEFAULT, _utilsBootstrapUtils.bsClass('navbar', Navbar)); + module.exports = exports['default']; + +/***/ }, +/* 210 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _NavbarBrand = __webpack_require__(211); + + var _NavbarBrand2 = _interopRequireDefault(_NavbarBrand); + + var _utilsDeprecationWarning = __webpack_require__(81); + + var _utilsDeprecationWarning2 = _interopRequireDefault(_utilsDeprecationWarning); + + exports['default'] = _utilsDeprecationWarning2['default'].wrapper(_NavbarBrand2['default'], { + message: 'The `NavBrand` component has been renamed to: `NavbarBrand`. ' + 'Please use that component instead; this alias will be removed in an upcoming release' + }); + module.exports = exports['default']; + +/***/ }, +/* 211 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var NavbarBrand = (function (_React$Component) { + _inherits(NavbarBrand, _React$Component); + + function NavbarBrand() { + _classCallCheck(this, NavbarBrand); + + _React$Component.apply(this, arguments); + } + + NavbarBrand.prototype.render = function render() { + var _props = this.props; + var className = _props.className; + var children = _props.children; + + var props = _objectWithoutProperties(_props, ['className', 'children']); + + var _context$$bs_navbar_bsClass = this.context.$bs_navbar_bsClass; + var bsClass = _context$$bs_navbar_bsClass === undefined ? 'navbar' : _context$$bs_navbar_bsClass; + + var brandClasses = _utilsBootstrapUtils2['default'].prefix({ bsClass: bsClass }, 'brand'); + + if (_react2['default'].isValidElement(children)) { + return _react2['default'].cloneElement(children, { + className: _classnames2['default'](children.props.className, className, brandClasses) + }); + } + + return _react2['default'].createElement( + 'span', + _extends({}, props, { className: _classnames2['default'](className, brandClasses) }), + children + ); + }; + + return NavbarBrand; + })(_react2['default'].Component); + + NavbarBrand.contextTypes = { + $bs_navbar_bsClass: _react2['default'].PropTypes.string + }; + + exports['default'] = NavbarBrand; + module.exports = exports['default']; + +/***/ }, +/* 212 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var NavbarHeader = _react2['default'].createClass({ + displayName: 'NavbarHeader', + + contextTypes: { + $bs_navbar_bsClass: _react.PropTypes.string + }, + + render: function render() { + var _props = this.props; + var children = _props.children; + + var props = _objectWithoutProperties(_props, ['children']); + + var _context$$bs_navbar_bsClass = this.context.$bs_navbar_bsClass; + var bsClass = _context$$bs_navbar_bsClass === undefined ? 'navbar' : _context$$bs_navbar_bsClass; + + return _react2['default'].createElement( + 'div', + { className: _utilsBootstrapUtils2['default'].prefix({ bsClass: bsClass }, 'header') }, + children + ); + } + }); + + exports['default'] = NavbarHeader; + module.exports = exports['default']; + +/***/ }, +/* 213 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var NavbarToggle = _react2['default'].createClass({ + displayName: 'NavbarToggle', + + propTypes: { + /** + * The toggle content, if left empty it will render the default toggle (seen above). + */ + children: _react.PropTypes.node + }, + + contextTypes: { + $bs_navbar_bsClass: _react.PropTypes.string, + $bs_navbar_onToggle: _react.PropTypes.func + }, + + render: function render() { + var _props = this.props; + var children = _props.children; + + var props = _objectWithoutProperties(_props, ['children']); + + var _context = this.context; + var _context$$bs_navbar_bsClass = _context.$bs_navbar_bsClass; + var bsClass = _context$$bs_navbar_bsClass === undefined ? 'navbar' : _context$$bs_navbar_bsClass; + var onToggle = _context.$bs_navbar_onToggle; + + return _react2['default'].createElement( + 'button', + { type: 'button', + onClick: onToggle, + className: _utilsBootstrapUtils2['default'].prefix({ bsClass: bsClass }, 'toggle') + }, + children || [_react2['default'].createElement( + 'span', + { className: 'sr-only', key: 0 }, + 'Toggle navigation' + ), _react2['default'].createElement('span', { className: 'icon-bar', key: 1 }), _react2['default'].createElement('span', { className: 'icon-bar', key: 2 }), _react2['default'].createElement('span', { className: 'icon-bar', key: 3 })] + ); + } + }); + + exports['default'] = NavbarToggle; + module.exports = exports['default']; + +/***/ }, +/* 214 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _Collapse = __webpack_require__(67); + + var _Collapse2 = _interopRequireDefault(_Collapse); + + var NavbarCollapse = _react2['default'].createClass({ + displayName: 'NavbarCollapse', + + contextTypes: { + $bs_navbar_bsClass: _react.PropTypes.string, + $bs_navbar_expanded: _react.PropTypes.bool + }, + + render: function render() { + var _props = this.props; + var children = _props.children; + + var props = _objectWithoutProperties(_props, ['children']); + + var _context = this.context; + var _context$$bs_navbar_bsClass = _context.$bs_navbar_bsClass; + var bsClass = _context$$bs_navbar_bsClass === undefined ? 'navbar' : _context$$bs_navbar_bsClass; + var expanded = _context.$bs_navbar_expanded; + + return _react2['default'].createElement( + _Collapse2['default'], + _extends({ 'in': expanded }, props), + _react2['default'].createElement( + 'div', + { className: _utilsBootstrapUtils2['default'].prefix({ bsClass: bsClass }, 'collapse') }, + children + ) + ); + } + }); + + exports['default'] = NavbarCollapse; + module.exports = exports['default']; + +/***/ }, +/* 215 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _Dropdown = __webpack_require__(82); + + var _Dropdown2 = _interopRequireDefault(_Dropdown); + + var NavDropdown = (function (_React$Component) { + _inherits(NavDropdown, _React$Component); + + function NavDropdown() { + _classCallCheck(this, NavDropdown); + + _React$Component.apply(this, arguments); + } + + NavDropdown.prototype.render = function render() { + var _props = this.props; + var children = _props.children; + var title = _props.title; + var noCaret = _props.noCaret; + + var props = _objectWithoutProperties(_props, ['children', 'title', 'noCaret']); + + return _react2['default'].createElement( + _Dropdown2['default'], + _extends({}, props, { componentClass: 'li' }), + _react2['default'].createElement( + _Dropdown2['default'].Toggle, + { + useAnchor: true, + disabled: props.disabled, + noCaret: noCaret + }, + title + ), + _react2['default'].createElement( + _Dropdown2['default'].Menu, + null, + children + ) + ); + }; + + return NavDropdown; + })(_react2['default'].Component); + + NavDropdown.propTypes = _extends({ + noCaret: _react2['default'].PropTypes.bool, + title: _react2['default'].PropTypes.node.isRequired + }, _Dropdown2['default'].propTypes); + + exports['default'] = NavDropdown; + module.exports = exports['default']; + +/***/ }, +/* 216 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _SafeAnchor = __webpack_require__(42); + + var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor); + + var _utilsCreateChainedFunction = __webpack_require__(6); + + var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); + + var NavItem = _react2['default'].createClass({ + displayName: 'NavItem', + + propTypes: { + linkId: _react2['default'].PropTypes.string, + onSelect: _react2['default'].PropTypes.func, + active: _react2['default'].PropTypes.bool, + disabled: _react2['default'].PropTypes.bool, + href: _react2['default'].PropTypes.string, + onClick: _react2['default'].PropTypes.func, + role: _react2['default'].PropTypes.string, + title: _react2['default'].PropTypes.node, + eventKey: _react2['default'].PropTypes.any, + target: _react2['default'].PropTypes.string, + 'aria-controls': _react2['default'].PropTypes.string + }, + + getDefaultProps: function getDefaultProps() { + return { + active: false, + disabled: false + }; + }, + + render: function render() { + var _props = this.props; + var role = _props.role; + var linkId = _props.linkId; + var disabled = _props.disabled; + var active = _props.active; + var href = _props.href; + var onClick = _props.onClick; + var title = _props.title; + var target = _props.target; + var children = _props.children; + var tabIndex = _props.tabIndex; + var ariaControls = _props['aria-controls']; + + var props = _objectWithoutProperties(_props, ['role', 'linkId', 'disabled', 'active', 'href', 'onClick', 'title', 'target', 'children', 'tabIndex', 'aria-controls']); + + var classes = { + active: active, + disabled: disabled + }; + var linkProps = { + role: role, + href: href, + onClick: _utilsCreateChainedFunction2['default'](onClick, this.handleClick), + title: title, + target: target, + tabIndex: tabIndex, + id: linkId + }; + + if (!role && href === '#') { + linkProps.role = 'button'; + } else if (role === 'tab') { + linkProps['aria-selected'] = active; + } + + return _react2['default'].createElement( + 'li', + _extends({}, props, { role: 'presentation', className: _classnames2['default'](props.className, classes) }), + _react2['default'].createElement( + _SafeAnchor2['default'], + _extends({}, linkProps, { 'aria-controls': ariaControls }), + children + ) + ); + }, + + handleClick: function handleClick(e) { + if (this.props.onSelect) { + e.preventDefault(); + + if (!this.props.disabled) { + this.props.onSelect(this.props.eventKey, this.props.href, this.props.target); + } + } + } + }); + + exports['default'] = NavItem; + module.exports = exports['default']; + //eslint-disable-line + +/***/ }, +/* 217 */ +/***/ function(module, exports, __webpack_require__) { + + /* eslint react/prop-types: [2, {ignore: ["container", "containerPadding", "target", "placement", "children"] }] */ + /* These properties are validated in 'Portal' and 'Position' components */ + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _reactOverlaysLibOverlay = __webpack_require__(218); + + var _reactOverlaysLibOverlay2 = _interopRequireDefault(_reactOverlaysLibOverlay); + + var _reactPropTypesLibElementType = __webpack_require__(52); + + var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); + + var _Fade = __webpack_require__(186); + + var _Fade2 = _interopRequireDefault(_Fade); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var Overlay = (function (_React$Component) { + _inherits(Overlay, _React$Component); + + function Overlay() { + _classCallCheck(this, Overlay); + + _React$Component.apply(this, arguments); + } + + Overlay.prototype.render = function render() { + var _props = this.props; + var child = _props.children; + var transition = _props.animation; + + var props = _objectWithoutProperties(_props, ['children', 'animation']); + + if (transition === true) { + transition = _Fade2['default']; + } + + if (transition === false) { + transition = null; + } + + if (!transition) { + child = _react.cloneElement(child, { + className: _classnames2['default']('in', child.props.className) + }); + } + + return _react2['default'].createElement( + _reactOverlaysLibOverlay2['default'], + _extends({}, props, { + transition: transition + }), + child + ); + }; + + return Overlay; + })(_react2['default'].Component); + + Overlay.propTypes = _extends({}, _reactOverlaysLibOverlay2['default'].propTypes, { + + /** + * Set the visibility of the Overlay + */ + show: _react2['default'].PropTypes.bool, + /** + * Specify whether the overlay should trigger onHide when the user clicks outside the overlay + */ + rootClose: _react2['default'].PropTypes.bool, + /** + * A callback invoked by the overlay when it wishes to be hidden. Required if + * `rootClose` is specified. + */ + onHide: _react2['default'].PropTypes.func, + + /** + * Use animation + */ + animation: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.bool, _reactPropTypesLibElementType2['default']]), + + /** + * Callback fired before the Overlay transitions in + */ + onEnter: _react2['default'].PropTypes.func, + + /** + * Callback fired as the Overlay begins to transition in + */ + onEntering: _react2['default'].PropTypes.func, + + /** + * Callback fired after the Overlay finishes transitioning in + */ + onEntered: _react2['default'].PropTypes.func, + + /** + * Callback fired right before the Overlay transitions out + */ + onExit: _react2['default'].PropTypes.func, + + /** + * Callback fired as the Overlay begins to transition out + */ + onExiting: _react2['default'].PropTypes.func, + + /** + * Callback fired after the Overlay finishes transitioning out + */ + onExited: _react2['default'].PropTypes.func + }); + + Overlay.defaultProps = { + animation: _Fade2['default'], + rootClose: false, + show: false + }; + + exports['default'] = Overlay; + module.exports = exports['default']; + +/***/ }, +/* 218 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _Portal = __webpack_require__(196); + + var _Portal2 = _interopRequireDefault(_Portal); + + var _Position = __webpack_require__(219); + + var _Position2 = _interopRequireDefault(_Position); + + var _RootCloseWrapper = __webpack_require__(160); + + var _RootCloseWrapper2 = _interopRequireDefault(_RootCloseWrapper); + + var _reactPropTypesLibElementType = __webpack_require__(195); + + var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); + + /**
+ * Built on top of `<Position/>` and `<Portal/>`, the overlay component is great for custom tooltip overlays.
+ */ + + var Overlay = (function (_React$Component) { + function Overlay(props, context) { + _classCallCheck(this, Overlay); + + _React$Component.call(this, props, context); + + this.state = { exited: !props.show }; + this.onHiddenListener = this.handleHidden.bind(this); + } + + _inherits(Overlay, _React$Component); + + Overlay.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + if (nextProps.show) { + this.setState({ exited: false }); + } else if (!nextProps.transition) { + // Otherwise let handleHidden take care of marking exited. + this.setState({ exited: true }); + } + }; + + Overlay.prototype.render = function render() { + var _props = this.props; + var container = _props.container; + var containerPadding = _props.containerPadding; + var target = _props.target; + var placement = _props.placement; + var rootClose = _props.rootClose; + var children = _props.children; + var Transition = _props.transition; + + var props = _objectWithoutProperties(_props, ['container', 'containerPadding', 'target', 'placement', 'rootClose', 'children', 'transition']); + + // Don't un-render the overlay while it's transitioning out. + var mountOverlay = props.show || Transition && !this.state.exited; + if (!mountOverlay) { + // Don't bother showing anything if we don't have to. + return null; + } + + var child = children; + + // Position is be inner-most because it adds inline styles into the child, + // which the other wrappers don't forward correctly. + child = _react2['default'].createElement( + _Position2['default'], + { container: container, containerPadding: containerPadding, target: target, placement: placement }, + child + ); + + if (Transition) { + var onExit = props.onExit; + var onExiting = props.onExiting; + var onEnter = props.onEnter; + var onEntering = props.onEntering; + var onEntered = props.onEntered; + + // This animates the child node by injecting props, so it must precede + // anything that adds a wrapping div. + child = _react2['default'].createElement( + Transition, + { + 'in': props.show, + transitionAppear: true, + onExit: onExit, + onExiting: onExiting, + onExited: this.onHiddenListener, + onEnter: onEnter, + onEntering: onEntering, + onEntered: onEntered + }, + child + ); + } + + // This goes after everything else because it adds a wrapping div. + if (rootClose) { + child = _react2['default'].createElement( + _RootCloseWrapper2['default'], + { onRootClose: props.onHide }, + child + ); + } + + return _react2['default'].createElement( + _Portal2['default'], + { container: container }, + child + ); + }; + + Overlay.prototype.handleHidden = function handleHidden() { + this.setState({ exited: true }); + + if (this.props.onExited) { + var _props2; + + (_props2 = this.props).onExited.apply(_props2, arguments); + } + }; + + return Overlay; + })(_react2['default'].Component); + + Overlay.propTypes = _extends({}, _Portal2['default'].propTypes, _Position2['default'].propTypes, { + /**
+ * Set the visibility of the Overlay
+ */ + show: _react2['default'].PropTypes.bool, + /**
+ * Specify whether the overlay should trigger onHide when the user clicks outside the overlay
+ */ + rootClose: _react2['default'].PropTypes.bool, + /**
+ * A Callback fired by the Overlay when it wishes to be hidden.
+ */ + onHide: _react2['default'].PropTypes.func, + + /**
+ * A `<Transition/>` component used to animate the overlay changes visibility.
+ */ + transition: _reactPropTypesLibElementType2['default'], + + /**
+ * Callback fired before the Overlay transitions in
+ */ + onEnter: _react2['default'].PropTypes.func, + + /**
+ * Callback fired as the Overlay begins to transition in
+ */ + onEntering: _react2['default'].PropTypes.func, + + /**
+ * Callback fired after the Overlay finishes transitioning in
+ */ + onEntered: _react2['default'].PropTypes.func, + + /**
+ * Callback fired right before the Overlay transitions out
+ */ + onExit: _react2['default'].PropTypes.func, + + /**
+ * Callback fired as the Overlay begins to transition out
+ */ + onExiting: _react2['default'].PropTypes.func, + + /**
+ * Callback fired after the Overlay finishes transitioning out
+ */ + onExited: _react2['default'].PropTypes.func + }); + + exports['default'] = Overlay; + module.exports = exports['default']; + +/***/ }, +/* 219 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _reactDom = __webpack_require__(63); + + var _reactDom2 = _interopRequireDefault(_reactDom); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsOwnerDocument = __webpack_require__(164); + + var _utilsOwnerDocument2 = _interopRequireDefault(_utilsOwnerDocument); + + var _utilsGetContainer = __webpack_require__(197); + + var _utilsGetContainer2 = _interopRequireDefault(_utilsGetContainer); + + var _utilsOverlayPositionUtils = __webpack_require__(220); + + var _reactPropTypesLibMountable = __webpack_require__(193); + + var _reactPropTypesLibMountable2 = _interopRequireDefault(_reactPropTypesLibMountable); + + /**
+ * The Position component calulates the corrdinates for its child, to
+ * position it relative to a `target` component or node. Useful for creating callouts and tooltips,
+ * the Position component injects a `style` props with `left` and `top` values for positioning your component.
+ *
+ * It also injects "arrow" `left`, and `top` values for styling callout arrows for giving your components
+ * a sense of directionality.
+ */ + + var Position = (function (_React$Component) { + function Position(props, context) { + _classCallCheck(this, Position); + + _React$Component.call(this, props, context); + + this.state = { + positionLeft: null, + positionTop: null, + arrowOffsetLeft: null, + arrowOffsetTop: null + }; + + this._needsFlush = false; + this._lastTarget = null; + } + + _inherits(Position, _React$Component); + + Position.prototype.componentDidMount = function componentDidMount() { + this.updatePosition(); + }; + + Position.prototype.componentWillReceiveProps = function componentWillReceiveProps() { + this._needsFlush = true; + }; + + Position.prototype.componentDidUpdate = function componentDidUpdate(prevProps) { + if (this._needsFlush) { + this._needsFlush = false; + this.updatePosition(prevProps.placement !== this.props.placement); + } + }; + + Position.prototype.componentWillUnmount = function componentWillUnmount() { + // Probably not necessary, but just in case holding a reference to the + // target causes problems somewhere. + this._lastTarget = null; + }; + + Position.prototype.render = function render() { + var _props = this.props; + var children = _props.children; + var className = _props.className; + + var props = _objectWithoutProperties(_props, ['children', 'className']); + + var _state = this.state; + var positionLeft = _state.positionLeft; + var positionTop = _state.positionTop; + + var arrowPosition = _objectWithoutProperties(_state, ['positionLeft', 'positionTop']); + + var child = _react2['default'].Children.only(children); + return _react.cloneElement(child, _extends({}, props, arrowPosition, { + //do we need to also forward positionLeft and positionTop if they are set to style? + positionLeft: positionLeft, + positionTop: positionTop, + className: _classnames2['default'](className, child.props.className), + style: _extends({}, child.props.style, { + left: positionLeft, + top: positionTop + }) + })); + }; + + Position.prototype.getTargetSafe = function getTargetSafe() { + if (!this.props.target) { + return null; + } + + var target = this.props.target(this.props); + if (!target) { + // This is so we can just use === check below on all falsy targets. + return null; + } + + return target; + }; + + Position.prototype.updatePosition = function updatePosition(placementChanged) { + var target = this.getTargetSafe(); + + if (target === this._lastTarget && !placementChanged) { + return; + } + + this._lastTarget = target; + + if (!target) { + this.setState({ + positionLeft: null, + positionTop: null, + arrowOffsetLeft: null, + arrowOffsetTop: null + }); + + return; + } + + var overlay = _reactDom2['default'].findDOMNode(this); + var container = _utilsGetContainer2['default'](this.props.container, _utilsOwnerDocument2['default'](this).body); + + this.setState(_utilsOverlayPositionUtils.calcOverlayPosition(this.props.placement, overlay, target, container, this.props.containerPadding)); + }; + + return Position; + })(_react2['default'].Component); + + Position.propTypes = { + /**
+ * Function mapping props to a DOM node the component is positioned next to
+ */ + target: _react2['default'].PropTypes.func, + /**
+ * "offsetParent" of the component
+ */ + container: _reactPropTypesLibMountable2['default'], + /**
+ * Minimum spacing in pixels between container border and component border
+ */ + containerPadding: _react2['default'].PropTypes.number, + /**
+ * How to position the component relative to the target
+ */ + placement: _react2['default'].PropTypes.oneOf(['top', 'right', 'bottom', 'left']) + }; + + Position.displayName = 'Position'; + + Position.defaultProps = { + containerPadding: 0, + placement: 'right' + }; + + exports['default'] = Position; + module.exports = exports['default']; + +/***/ }, +/* 220 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + var _ownerDocument = __webpack_require__(164); + + var _ownerDocument2 = _interopRequireDefault(_ownerDocument); + + var _domHelpersQueryOffset = __webpack_require__(221); + + var _domHelpersQueryOffset2 = _interopRequireDefault(_domHelpersQueryOffset); + + var _domHelpersQueryPosition = __webpack_require__(222); + + var _domHelpersQueryPosition2 = _interopRequireDefault(_domHelpersQueryPosition); + + var _domHelpersQueryScrollTop = __webpack_require__(224); + + var _domHelpersQueryScrollTop2 = _interopRequireDefault(_domHelpersQueryScrollTop); + + var utils = { + + getContainerDimensions: function getContainerDimensions(containerNode) { + var width = undefined, + height = undefined, + scroll = undefined; + + if (containerNode.tagName === 'BODY') { + width = window.innerWidth; + height = window.innerHeight; + + scroll = _domHelpersQueryScrollTop2['default'](_ownerDocument2['default'](containerNode).documentElement) || _domHelpersQueryScrollTop2['default'](containerNode); + } else { + var _getOffset = _domHelpersQueryOffset2['default'](containerNode); + + width = _getOffset.width; + height = _getOffset.height; + + scroll = _domHelpersQueryScrollTop2['default'](containerNode); + } + + return { width: width, height: height, scroll: scroll }; + }, + + getPosition: function getPosition(target, container) { + var offset = container.tagName === 'BODY' ? _domHelpersQueryOffset2['default'](target) : _domHelpersQueryPosition2['default'](target, container); + + return offset; + }, + + calcOverlayPosition: function calcOverlayPosition(placement, overlayNode, target, container, padding) { + var childOffset = utils.getPosition(target, container); + + var _getOffset2 = _domHelpersQueryOffset2['default'](overlayNode); + + var overlayHeight = _getOffset2.height; + var overlayWidth = _getOffset2.width; + + var positionLeft = undefined, + positionTop = undefined, + arrowOffsetLeft = undefined, + arrowOffsetTop = undefined; + + if (placement === 'left' || placement === 'right') { + positionTop = childOffset.top + (childOffset.height - overlayHeight) / 2; + + if (placement === 'left') { + positionLeft = childOffset.left - overlayWidth; + } else { + positionLeft = childOffset.left + childOffset.width; + } + + var topDelta = getTopDelta(positionTop, overlayHeight, container, padding); + + positionTop += topDelta; + arrowOffsetTop = 50 * (1 - 2 * topDelta / overlayHeight) + '%'; + arrowOffsetLeft = void 0; + } else if (placement === 'top' || placement === 'bottom') { + positionLeft = childOffset.left + (childOffset.width - overlayWidth) / 2; + + if (placement === 'top') { + positionTop = childOffset.top - overlayHeight; + } else { + positionTop = childOffset.top + childOffset.height; + } + + var leftDelta = getLeftDelta(positionLeft, overlayWidth, container, padding); + positionLeft += leftDelta; + arrowOffsetLeft = 50 * (1 - 2 * leftDelta / overlayWidth) + '%'; + arrowOffsetTop = void 0; + } else { + throw new Error('calcOverlayPosition(): No such placement of "' + placement + '" found.'); + } + + return { positionLeft: positionLeft, positionTop: positionTop, arrowOffsetLeft: arrowOffsetLeft, arrowOffsetTop: arrowOffsetTop }; + } + }; + + function getTopDelta(top, overlayHeight, container, padding) { + var containerDimensions = utils.getContainerDimensions(container); + var containerScroll = containerDimensions.scroll; + var containerHeight = containerDimensions.height; + + var topEdgeOffset = top - padding - containerScroll; + var bottomEdgeOffset = top + padding - containerScroll + overlayHeight; + + if (topEdgeOffset < 0) { + return -topEdgeOffset; + } else if (bottomEdgeOffset > containerHeight) { + return containerHeight - bottomEdgeOffset; + } else { + return 0; + } + } + + function getLeftDelta(left, overlayWidth, container, padding) { + var containerDimensions = utils.getContainerDimensions(container); + var containerWidth = containerDimensions.width; + + var leftEdgeOffset = left - padding; + var rightEdgeOffset = left + padding + overlayWidth; + + if (leftEdgeOffset < 0) { + return -leftEdgeOffset; + } else if (rightEdgeOffset > containerWidth) { + return containerWidth - rightEdgeOffset; + } else { + return 0; + } + } + exports['default'] = utils; + module.exports = exports['default']; + +/***/ }, +/* 221 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + var contains = __webpack_require__(85), + getWindow = __webpack_require__(204), + ownerDocument = __webpack_require__(84); + + module.exports = function offset(node) { + var doc = ownerDocument(node), + win = getWindow(doc), + docElem = doc && doc.documentElement, + box = { top: 0, left: 0, height: 0, width: 0 }; + + if (!doc) return; + + // Make sure it's not a disconnected DOM node + if (!contains(docElem, node)) return box; + + if (node.getBoundingClientRect !== undefined) box = node.getBoundingClientRect(); + + if (box.width || box.height) { + + box = { + top: box.top + (win.pageYOffset || docElem.scrollTop) - (docElem.clientTop || 0), + left: box.left + (win.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || 0), + width: (box.width == null ? node.offsetWidth : box.width) || 0, + height: (box.height == null ? node.offsetHeight : box.height) || 0 + }; + } + + return box; + }; + +/***/ }, +/* 222 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var babelHelpers = __webpack_require__(74); + + exports.__esModule = true; + exports['default'] = position; + + var _offset = __webpack_require__(221); + + var _offset2 = babelHelpers.interopRequireDefault(_offset); + + var _offsetParent = __webpack_require__(223); + + var _offsetParent2 = babelHelpers.interopRequireDefault(_offsetParent); + + var _scrollTop = __webpack_require__(224); + + var _scrollTop2 = babelHelpers.interopRequireDefault(_scrollTop); + + var _scrollLeft = __webpack_require__(225); + + var _scrollLeft2 = babelHelpers.interopRequireDefault(_scrollLeft); + + var _style = __webpack_require__(68); + + var _style2 = babelHelpers.interopRequireDefault(_style); + + function nodeName(node) { + return node.nodeName && node.nodeName.toLowerCase(); + } + + function position(node, offsetParent) { + var parentOffset = { top: 0, left: 0 }, + offset; + + // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, + // because it is its only offset parent + if ((0, _style2['default'])(node, 'position') === 'fixed') { + offset = node.getBoundingClientRect(); + } else { + offsetParent = offsetParent || (0, _offsetParent2['default'])(node); + offset = (0, _offset2['default'])(node); + + if (nodeName(offsetParent) !== 'html') parentOffset = (0, _offset2['default'])(offsetParent); + + parentOffset.top += parseInt((0, _style2['default'])(offsetParent, 'borderTopWidth'), 10) - (0, _scrollTop2['default'])(offsetParent) || 0; + parentOffset.left += parseInt((0, _style2['default'])(offsetParent, 'borderLeftWidth'), 10) - (0, _scrollLeft2['default'])(offsetParent) || 0; + } + + // Subtract parent offsets and node margins + return babelHelpers._extends({}, offset, { + top: offset.top - parentOffset.top - (parseInt((0, _style2['default'])(node, 'marginTop'), 10) || 0), + left: offset.left - parentOffset.left - (parseInt((0, _style2['default'])(node, 'marginLeft'), 10) || 0) + }); + } + + module.exports = exports['default']; + +/***/ }, +/* 223 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var babelHelpers = __webpack_require__(74); + + exports.__esModule = true; + exports['default'] = offsetParent; + + var _ownerDocument = __webpack_require__(84); + + var _ownerDocument2 = babelHelpers.interopRequireDefault(_ownerDocument); + + var _style = __webpack_require__(68); + + var _style2 = babelHelpers.interopRequireDefault(_style); + + function nodeName(node) { + return node.nodeName && node.nodeName.toLowerCase(); + } + + function offsetParent(node) { + var doc = (0, _ownerDocument2['default'])(node), + offsetParent = node && node.offsetParent; + + while (offsetParent && nodeName(node) !== 'html' && (0, _style2['default'])(offsetParent, 'position') === 'static') { + offsetParent = offsetParent.offsetParent; + } + + return offsetParent || doc.documentElement; + } + + module.exports = exports['default']; + +/***/ }, +/* 224 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + var getWindow = __webpack_require__(204); + + module.exports = function scrollTop(node, val) { + var win = getWindow(node); + + if (val === undefined) return win ? 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop : node.scrollTop; + + if (win) win.scrollTo('pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft, val);else node.scrollTop = val; + }; + +/***/ }, +/* 225 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + var getWindow = __webpack_require__(204); + + module.exports = function scrollTop(node, val) { + var win = getWindow(node); + + if (val === undefined) return win ? 'pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft : node.scrollLeft; + + if (win) win.scrollTo(val, 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop);else node.scrollLeft = val; + }; + +/***/ }, +/* 226 */ +/***/ function(module, exports, __webpack_require__) { + + /* eslint-disable react/prop-types */ + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _Object$keys = __webpack_require__(28)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _domHelpersQueryContains = __webpack_require__(85); + + var _domHelpersQueryContains2 = _interopRequireDefault(_domHelpersQueryContains); + + var _lodashCompatObjectPick = __webpack_require__(169); + + var _lodashCompatObjectPick2 = _interopRequireDefault(_lodashCompatObjectPick); + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _reactDom = __webpack_require__(63); + + var _reactDom2 = _interopRequireDefault(_reactDom); + + var _warning = __webpack_require__(33); + + var _warning2 = _interopRequireDefault(_warning); + + var _Overlay = __webpack_require__(217); + + var _Overlay2 = _interopRequireDefault(_Overlay); + + var _utilsCreateChainedFunction = __webpack_require__(6); + + var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); + + /** + * Check if value one is inside or equal to the of value + * + * @param {string} one + * @param {string|array} of + * @returns {boolean} + */ + function isOneOf(one, of) { + if (Array.isArray(of)) { + return of.indexOf(one) >= 0; + } + return one === of; + } + + var OverlayTrigger = _react2['default'].createClass({ + displayName: 'OverlayTrigger', + + propTypes: _extends({}, _Overlay2['default'].propTypes, { + + /** + * Specify which action or actions trigger Overlay visibility + */ + trigger: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.oneOf(['click', 'hover', 'focus']), _react2['default'].PropTypes.arrayOf(_react2['default'].PropTypes.oneOf(['click', 'hover', 'focus']))]), + + /** + * A millisecond delay amount to show and hide the Overlay once triggered + */ + delay: _react2['default'].PropTypes.number, + /** + * A millisecond delay amount before showing the Overlay once triggered. + */ + delayShow: _react2['default'].PropTypes.number, + /** + * A millisecond delay amount before hiding the Overlay once triggered. + */ + delayHide: _react2['default'].PropTypes.number, + + /** + * The initial visibility state of the Overlay, for more nuanced visibility controll consider + * using the Overlay component directly. + */ + defaultOverlayShown: _react2['default'].PropTypes.bool, + + /** + * An element or text to overlay next to the target. + */ + overlay: _react2['default'].PropTypes.node.isRequired, + + /** + * @private + */ + onBlur: _react2['default'].PropTypes.func, + /** + * @private + */ + onClick: _react2['default'].PropTypes.func, + /** + * @private + */ + onFocus: _react2['default'].PropTypes.func, + /** + * @private + */ + onMouseEnter: _react2['default'].PropTypes.func, + /** + * @private + */ + onMouseLeave: _react2['default'].PropTypes.func, + + // override specific overlay props + /** + * @private + */ + target: function target() {}, + /** + * @private + */ + onHide: function onHide() {}, + /** + * @private + */ + show: function show() {} + }), + + getDefaultProps: function getDefaultProps() { + return { + defaultOverlayShown: false, + trigger: ['hover', 'focus'] + }; + }, + + getInitialState: function getInitialState() { + return { + isOverlayShown: this.props.defaultOverlayShown + }; + }, + + show: function show() { + this.setState({ + isOverlayShown: true + }); + }, + + hide: function hide() { + this.setState({ + isOverlayShown: false + }); + }, + + toggle: function toggle() { + if (this.state.isOverlayShown) { + this.hide(); + } else { + this.show(); + } + }, + + componentWillMount: function componentWillMount() { + this.handleMouseOver = this.handleMouseOverOut.bind(null, this.handleDelayedShow); + this.handleMouseOut = this.handleMouseOverOut.bind(null, this.handleDelayedHide); + }, + + componentDidMount: function componentDidMount() { + this._mountNode = document.createElement('div'); + this.renderOverlay(); + }, + + renderOverlay: function renderOverlay() { + _reactDom2['default'].unstable_renderSubtreeIntoContainer(this, this._overlay, this._mountNode); + }, + + componentWillUnmount: function componentWillUnmount() { + _reactDom2['default'].unmountComponentAtNode(this._mountNode); + this._mountNode = null; + clearTimeout(this._hoverShowDelay); + clearTimeout(this._hoverHideDelay); + }, + + componentDidUpdate: function componentDidUpdate() { + if (this._mountNode) { + this.renderOverlay(); + } + }, + + getOverlayTarget: function getOverlayTarget() { + return _reactDom2['default'].findDOMNode(this); + }, + + getOverlay: function getOverlay() { + var overlayProps = _extends({}, _lodashCompatObjectPick2['default'](this.props, _Object$keys(_Overlay2['default'].propTypes)), { + show: this.state.isOverlayShown, + onHide: this.hide, + target: this.getOverlayTarget, + onExit: this.props.onExit, + onExiting: this.props.onExiting, + onExited: this.props.onExited, + onEnter: this.props.onEnter, + onEntering: this.props.onEntering, + onEntered: this.props.onEntered + }); + + var overlay = _react.cloneElement(this.props.overlay, { + placement: overlayProps.placement, + container: overlayProps.container + }); + + return _react2['default'].createElement( + _Overlay2['default'], + overlayProps, + overlay + ); + }, + + render: function render() { + var trigger = _react2['default'].Children.only(this.props.children); + var triggerProps = trigger.props; + + var props = { + 'aria-describedby': this.props.overlay.props.id + }; + + // create in render otherwise owner is lost... + this._overlay = this.getOverlay(); + + props.onClick = _utilsCreateChainedFunction2['default'](triggerProps.onClick, this.props.onClick); + + if (isOneOf('click', this.props.trigger)) { + props.onClick = _utilsCreateChainedFunction2['default'](this.toggle, props.onClick); + } + + if (isOneOf('hover', this.props.trigger)) { + true ? _warning2['default'](!(this.props.trigger === 'hover'), '[react-bootstrap] Specifying only the `"hover"` trigger limits the visibilty of the overlay to just mouse users. ' + 'Consider also including the `"focus"` trigger so that touch and keyboard only users can see the overlay as well.') : undefined; + + props.onMouseOver = _utilsCreateChainedFunction2['default'](this.handleMouseOver, this.props.onMouseOver, triggerProps.onMouseOver); + props.onMouseOut = _utilsCreateChainedFunction2['default'](this.handleMouseOut, this.props.onMouseOut, triggerProps.onMouseOut); + } + + if (isOneOf('focus', this.props.trigger)) { + props.onFocus = _utilsCreateChainedFunction2['default'](this.handleDelayedShow, this.props.onFocus, triggerProps.onFocus); + props.onBlur = _utilsCreateChainedFunction2['default'](this.handleDelayedHide, this.props.onBlur, triggerProps.onBlur); + } + + return _react.cloneElement(trigger, props); + }, + + handleDelayedShow: function handleDelayedShow() { + var _this = this; + + if (this._hoverHideDelay != null) { + clearTimeout(this._hoverHideDelay); + this._hoverHideDelay = null; + return; + } + + if (this.state.isOverlayShown || this._hoverShowDelay != null) { + return; + } + + var delay = this.props.delayShow != null ? this.props.delayShow : this.props.delay; + + if (!delay) { + this.show(); + return; + } + + this._hoverShowDelay = setTimeout(function () { + _this._hoverShowDelay = null; + _this.show(); + }, delay); + }, + + handleDelayedHide: function handleDelayedHide() { + var _this2 = this; + + if (this._hoverShowDelay != null) { + clearTimeout(this._hoverShowDelay); + this._hoverShowDelay = null; + return; + } + + if (!this.state.isOverlayShown || this._hoverHideDelay != null) { + return; + } + + var delay = this.props.delayHide != null ? this.props.delayHide : this.props.delay; + + if (!delay) { + this.hide(); + return; + } + + this._hoverHideDelay = setTimeout(function () { + _this2._hoverHideDelay = null; + _this2.hide(); + }, delay); + }, + + // Simple implementation of mouseEnter and mouseLeave. + // React's built version is broken: https://github.com/facebook/react/issues/4251 + // for cases when the trigger is disabled and mouseOut/Over can cause flicker moving + // from one child element to another. + handleMouseOverOut: function handleMouseOverOut(handler, e) { + var target = e.currentTarget; + var related = e.relatedTarget || e.nativeEvent.toElement; + + if (!related || related !== target && !_domHelpersQueryContains2['default'](target, related)) { + handler(e); + } + } + + }); + + exports['default'] = OverlayTrigger; + module.exports = exports['default']; + +/***/ }, +/* 227 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var PageHeader = _react2['default'].createClass({ + displayName: 'PageHeader', + + render: function render() { + return _react2['default'].createElement( + 'div', + _extends({}, this.props, { className: _classnames2['default'](this.props.className, 'page-header') }), + _react2['default'].createElement( + 'h1', + null, + this.props.children + ) + ); + } + }); + + exports['default'] = PageHeader; + module.exports = exports['default']; + +/***/ }, +/* 228 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _SafeAnchor = __webpack_require__(42); + + var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor); + + var PageItem = _react2['default'].createClass({ + displayName: 'PageItem', + + propTypes: { + href: _react2['default'].PropTypes.string, + target: _react2['default'].PropTypes.string, + title: _react2['default'].PropTypes.string, + disabled: _react2['default'].PropTypes.bool, + previous: _react2['default'].PropTypes.bool, + next: _react2['default'].PropTypes.bool, + onSelect: _react2['default'].PropTypes.func, + eventKey: _react2['default'].PropTypes.any + }, + + getDefaultProps: function getDefaultProps() { + return { + disabled: false, + previous: false, + next: false + }; + }, + + render: function render() { + var classes = { + 'disabled': this.props.disabled, + 'previous': this.props.previous, + 'next': this.props.next + }; + + return _react2['default'].createElement( + 'li', + _extends({}, this.props, { + className: _classnames2['default'](this.props.className, classes) }), + _react2['default'].createElement( + _SafeAnchor2['default'], + { + href: this.props.href, + title: this.props.title, + target: this.props.target, + onClick: this.handleSelect }, + this.props.children + ) + ); + }, + + handleSelect: function handleSelect(e) { + if (this.props.onSelect || this.props.disabled) { + e.preventDefault(); + + if (!this.props.disabled) { + this.props.onSelect(this.props.eventKey, this.props.href, this.props.target); + } + } + } + }); + + exports['default'] = PageItem; + module.exports = exports['default']; + +/***/ }, +/* 229 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsValidComponentChildren = __webpack_require__(7); + + var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); + + var _utilsCreateChainedFunction = __webpack_require__(6); + + var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); + + var Pager = _react2['default'].createClass({ + displayName: 'Pager', + + propTypes: { + onSelect: _react2['default'].PropTypes.func + }, + + render: function render() { + return _react2['default'].createElement( + 'ul', + _extends({}, this.props, { + className: _classnames2['default'](this.props.className, 'pager') }), + _utilsValidComponentChildren2['default'].map(this.props.children, this.renderPageItem) + ); + }, + + renderPageItem: function renderPageItem(child, index) { + return _react.cloneElement(child, { + onSelect: _utilsCreateChainedFunction2['default'](child.props.onSelect, this.props.onSelect), + key: child.key ? child.key : index + }); + } + }); + + exports['default'] = Pager; + module.exports = exports['default']; + +/***/ }, +/* 230 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _PaginationButton = __webpack_require__(231); + + var _PaginationButton2 = _interopRequireDefault(_PaginationButton); + + var _reactPropTypesLibElementType = __webpack_require__(52); + + var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); + + var _SafeAnchor = __webpack_require__(42); + + var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor); + + var Pagination = _react2['default'].createClass({ + displayName: 'Pagination', + + propTypes: { + activePage: _react2['default'].PropTypes.number, + items: _react2['default'].PropTypes.number, + maxButtons: _react2['default'].PropTypes.number, + /** + * When `true`, will display the default node value ('...'). + * Otherwise, will display provided node (when specified). + */ + ellipsis: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.bool, _react2['default'].PropTypes.node]), + /** + * When `true`, will display the default node value ('«'). + * Otherwise, will display provided node (when specified). + */ + first: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.bool, _react2['default'].PropTypes.node]), + /** + * When `true`, will display the default node value ('»'). + * Otherwise, will display provided node (when specified). + */ + last: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.bool, _react2['default'].PropTypes.node]), + /** + * When `true`, will display the default node value ('‹'). + * Otherwise, will display provided node (when specified). + */ + prev: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.bool, _react2['default'].PropTypes.node]), + /** + * When `true`, will display the default node value ('›'). + * Otherwise, will display provided node (when specified). + */ + next: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.bool, _react2['default'].PropTypes.node]), + onSelect: _react2['default'].PropTypes.func, + /** + * You can use a custom element for the buttons + */ + buttonComponentClass: _reactPropTypesLibElementType2['default'] + }, + + getDefaultProps: function getDefaultProps() { + return { + activePage: 1, + items: 1, + maxButtons: 0, + first: false, + last: false, + prev: false, + next: false, + ellipsis: true, + buttonComponentClass: _SafeAnchor2['default'], + bsClass: 'pagination' + }; + }, + + renderPageButtons: function renderPageButtons() { + var pageButtons = []; + var startPage = undefined, + endPage = undefined, + hasHiddenPagesAfter = undefined; + var _props = this.props; + var maxButtons = _props.maxButtons; + var activePage = _props.activePage; + var items = _props.items; + var onSelect = _props.onSelect; + var ellipsis = _props.ellipsis; + var buttonComponentClass = _props.buttonComponentClass; + + if (maxButtons) { + var hiddenPagesBefore = activePage - parseInt(maxButtons / 2, 10); + startPage = hiddenPagesBefore > 1 ? hiddenPagesBefore : 1; + hasHiddenPagesAfter = startPage + maxButtons <= items; + + if (!hasHiddenPagesAfter) { + endPage = items; + startPage = items - maxButtons + 1; + if (startPage < 1) { + startPage = 1; + } + } else { + endPage = startPage + maxButtons - 1; + } + } else { + startPage = 1; + endPage = items; + } + + for (var pagenumber = startPage; pagenumber <= endPage; pagenumber++) { + pageButtons.push(_react2['default'].createElement( + _PaginationButton2['default'], + { + key: pagenumber, + eventKey: pagenumber, + active: pagenumber === activePage, + onSelect: onSelect, + buttonComponentClass: buttonComponentClass }, + pagenumber + )); + } + + if (maxButtons && hasHiddenPagesAfter && ellipsis) { + pageButtons.push(_react2['default'].createElement( + _PaginationButton2['default'], + { + key: 'ellipsis', + disabled: true, + buttonComponentClass: buttonComponentClass }, + _react2['default'].createElement( + 'span', + { 'aria-label': 'More' }, + this.props.ellipsis === true ? '...' : this.props.ellipsis + ) + )); + } + + return pageButtons; + }, + + renderPrev: function renderPrev() { + if (!this.props.prev) { + return null; + } + + return _react2['default'].createElement( + _PaginationButton2['default'], + { + key: 'prev', + eventKey: this.props.activePage - 1, + disabled: this.props.activePage === 1, + onSelect: this.props.onSelect, + buttonComponentClass: this.props.buttonComponentClass }, + _react2['default'].createElement( + 'span', + { 'aria-label': 'Previous' }, + this.props.prev === true ? '‹' : this.props.prev + ) + ); + }, + + renderNext: function renderNext() { + if (!this.props.next) { + return null; + } + + return _react2['default'].createElement( + _PaginationButton2['default'], + { + key: 'next', + eventKey: this.props.activePage + 1, + disabled: this.props.activePage >= this.props.items, + onSelect: this.props.onSelect, + buttonComponentClass: this.props.buttonComponentClass }, + _react2['default'].createElement( + 'span', + { 'aria-label': 'Next' }, + this.props.next === true ? '›' : this.props.next + ) + ); + }, + + renderFirst: function renderFirst() { + if (!this.props.first) { + return null; + } + + return _react2['default'].createElement( + _PaginationButton2['default'], + { + key: 'first', + eventKey: 1, + disabled: this.props.activePage === 1, + onSelect: this.props.onSelect, + buttonComponentClass: this.props.buttonComponentClass }, + _react2['default'].createElement( + 'span', + { 'aria-label': 'First' }, + this.props.first === true ? '«' : this.props.first + ) + ); + }, + + renderLast: function renderLast() { + if (!this.props.last) { + return null; + } + + return _react2['default'].createElement( + _PaginationButton2['default'], + { + key: 'last', + eventKey: this.props.items, + disabled: this.props.activePage >= this.props.items, + onSelect: this.props.onSelect, + buttonComponentClass: this.props.buttonComponentClass }, + _react2['default'].createElement( + 'span', + { 'aria-label': 'Last' }, + this.props.last === true ? '»' : this.props.last + ) + ); + }, + + render: function render() { + return _react2['default'].createElement( + 'ul', + _extends({}, this.props, { + className: _classnames2['default'](this.props.className, _utilsBootstrapUtils2['default'].getClassSet(this.props)) }), + this.renderFirst(), + this.renderPrev(), + this.renderPageButtons(), + this.renderNext(), + this.renderLast() + ); + } + }); + + exports['default'] = _utilsBootstrapUtils.bsClass('pagination', Pagination); + module.exports = exports['default']; + +/***/ }, +/* 231 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsCreateSelectedEvent = __webpack_require__(232); + + var _utilsCreateSelectedEvent2 = _interopRequireDefault(_utilsCreateSelectedEvent); + + var _reactPropTypesLibElementType = __webpack_require__(52); + + var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); + + var PaginationButton = _react2['default'].createClass({ + displayName: 'PaginationButton', + + propTypes: { + className: _react2['default'].PropTypes.string, + eventKey: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]), + onSelect: _react2['default'].PropTypes.func, + disabled: _react2['default'].PropTypes.bool, + active: _react2['default'].PropTypes.bool, + /** + * You can use a custom element for this component + */ + buttonComponentClass: _reactPropTypesLibElementType2['default'] + }, + + getDefaultProps: function getDefaultProps() { + return { + active: false, + disabled: false + }; + }, + + handleClick: function handleClick(event) { + if (this.props.disabled) { + return; + } + + if (this.props.onSelect) { + var selectedEvent = _utilsCreateSelectedEvent2['default'](this.props.eventKey); + this.props.onSelect(event, selectedEvent); + } + }, + + render: function render() { + var classes = { + active: this.props.active, + disabled: this.props.disabled + }; + + var _props = this.props; + var className = _props.className; + + var anchorProps = _objectWithoutProperties(_props, ['className']); + + var ButtonComponentClass = this.props.buttonComponentClass; + + return _react2['default'].createElement( + 'li', + { className: _classnames2['default'](className, classes) }, + _react2['default'].createElement(ButtonComponentClass, _extends({}, anchorProps, { + onClick: this.handleClick })) + ); + } + }); + + exports['default'] = PaginationButton; + module.exports = exports['default']; + +/***/ }, +/* 232 */ +/***/ function(module, exports) { + + "use strict"; + + exports.__esModule = true; + exports["default"] = createSelectedEvent; + + function createSelectedEvent(eventKey) { + var selectionPrevented = false; + + return { + eventKey: eventKey, + + preventSelection: function preventSelection() { + selectionPrevented = true; + }, + + isSelectionPrevented: function isSelectionPrevented() { + return selectionPrevented; + } + }; + } + + module.exports = exports["default"]; + +/***/ }, +/* 233 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _styleMaps = __webpack_require__(25); + + var _Collapse = __webpack_require__(67); + + var _Collapse2 = _interopRequireDefault(_Collapse); + + var Panel = _react2['default'].createClass({ + displayName: 'Panel', + + propTypes: { + collapsible: _react2['default'].PropTypes.bool, + onSelect: _react2['default'].PropTypes.func, + header: _react2['default'].PropTypes.node, + id: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]), + footer: _react2['default'].PropTypes.node, + defaultExpanded: _react2['default'].PropTypes.bool, + expanded: _react2['default'].PropTypes.bool, + eventKey: _react2['default'].PropTypes.any, + headerRole: _react2['default'].PropTypes.string, + panelRole: _react2['default'].PropTypes.string + }, + + getDefaultProps: function getDefaultProps() { + return { + defaultExpanded: false + }; + }, + + getInitialState: function getInitialState() { + return { + expanded: this.props.defaultExpanded + }; + }, + + handleSelect: function handleSelect(e) { + e.selected = true; + + if (this.props.onSelect) { + this.props.onSelect(e, this.props.eventKey); + } else { + e.preventDefault(); + } + + if (e.selected) { + this.handleToggle(); + } + }, + + handleToggle: function handleToggle() { + this.setState({ expanded: !this.state.expanded }); + }, + + isExpanded: function isExpanded() { + return this.props.expanded != null ? this.props.expanded : this.state.expanded; + }, + + render: function render() { + var _props = this.props; + var headerRole = _props.headerRole; + var panelRole = _props.panelRole; + + var props = _objectWithoutProperties(_props, ['headerRole', 'panelRole']); + + return _react2['default'].createElement( + 'div', + _extends({}, props, { + className: _classnames2['default'](this.props.className, _utilsBootstrapUtils2['default'].getClassSet(this.props)), + id: this.props.collapsible ? null : this.props.id, onSelect: null }), + this.renderHeading(headerRole), + this.props.collapsible ? this.renderCollapsibleBody(panelRole) : this.renderBody(), + this.renderFooter() + ); + }, + + renderCollapsibleBody: function renderCollapsibleBody(panelRole) { + var props = { + className: _utilsBootstrapUtils2['default'].prefix(this.props, 'collapse'), + id: this.props.id, + ref: 'panel', + 'aria-hidden': !this.isExpanded() + }; + if (panelRole) { + props.role = panelRole; + } + + return _react2['default'].createElement( + _Collapse2['default'], + { 'in': this.isExpanded() }, + _react2['default'].createElement( + 'div', + props, + this.renderBody() + ) + ); + }, + + renderBody: function renderBody() { + var _this = this; + + var allChildren = this.props.children; + var bodyElements = []; + var panelBodyChildren = []; + var bodyClass = _utilsBootstrapUtils2['default'].prefix(this.props, 'body'); + + function getProps() { + return { key: bodyElements.length }; + } + + function addPanelChild(child) { + bodyElements.push(_react.cloneElement(child, getProps())); + } + + function addPanelBody(children) { + bodyElements.push(_react2['default'].createElement( + 'div', + _extends({ className: bodyClass }, getProps()), + children + )); + } + + function maybeRenderPanelBody() { + if (panelBodyChildren.length === 0) { + return; + } + + addPanelBody(panelBodyChildren); + panelBodyChildren = []; + } + + // Handle edge cases where we should not iterate through children. + if (!Array.isArray(allChildren) || allChildren.length === 0) { + if (this.shouldRenderFill(allChildren)) { + addPanelChild(allChildren); + } else { + addPanelBody(allChildren); + } + } else { + allChildren.forEach(function (child) { + if (_this.shouldRenderFill(child)) { + maybeRenderPanelBody(); + + // Separately add the filled element. + addPanelChild(child); + } else { + panelBodyChildren.push(child); + } + }); + + maybeRenderPanelBody(); + } + + return bodyElements; + }, + + shouldRenderFill: function shouldRenderFill(child) { + return _react2['default'].isValidElement(child) && child.props.fill != null; + }, + + renderHeading: function renderHeading(headerRole) { + var header = this.props.header; + + if (!header) { + return null; + } + + if (!_react2['default'].isValidElement(header) || Array.isArray(header)) { + header = this.props.collapsible ? this.renderCollapsibleTitle(header, headerRole) : header; + } else { + var className = _classnames2['default'](_utilsBootstrapUtils2['default'].prefix(this.props, 'title'), header.props.className); + + if (this.props.collapsible) { + header = _react.cloneElement(header, { + className: className, + children: this.renderAnchor(header.props.children, headerRole) + }); + } else { + header = _react.cloneElement(header, { className: className }); + } + } + + return _react2['default'].createElement( + 'div', + { className: _utilsBootstrapUtils2['default'].prefix(this.props, 'heading') }, + header + ); + }, + + renderAnchor: function renderAnchor(header, headerRole) { + return _react2['default'].createElement( + 'a', + { + href: '#' + (this.props.id || ''), + 'aria-controls': this.props.collapsible ? this.props.id : null, + className: this.isExpanded() ? null : 'collapsed', + 'aria-expanded': this.isExpanded(), + 'aria-selected': this.isExpanded(), + onClick: this.handleSelect, + role: headerRole }, + header + ); + }, + + renderCollapsibleTitle: function renderCollapsibleTitle(header, headerRole) { + return _react2['default'].createElement( + 'h4', + { className: _utilsBootstrapUtils2['default'].prefix(this.props, 'title'), role: 'presentation' }, + this.renderAnchor(header, headerRole) + ); + }, + + renderFooter: function renderFooter() { + if (!this.props.footer) { + return null; + } + + return _react2['default'].createElement( + 'div', + { className: _utilsBootstrapUtils2['default'].prefix(this.props, 'footer') }, + this.props.footer + ); + } + }); + + var PANEL_STATES = _styleMaps.State.values().concat(_styleMaps.DEFAULT, _styleMaps.PRIMARY); + + exports['default'] = _utilsBootstrapUtils.bsStyles(PANEL_STATES, _styleMaps.DEFAULT, _utilsBootstrapUtils.bsClass('panel', Panel)); + module.exports = exports['default']; + +/***/ }, +/* 234 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _reactPropTypesLibIsRequiredForA11y = __webpack_require__(155); + + var _reactPropTypesLibIsRequiredForA11y2 = _interopRequireDefault(_reactPropTypesLibIsRequiredForA11y); + + var Popover = _react2['default'].createClass({ + displayName: 'Popover', + + propTypes: { + + /** + * An html id attribute, necessary for accessibility + * @type {string} + * @required + */ + id: _reactPropTypesLibIsRequiredForA11y2['default'](_react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number])), + + /** + * Sets the direction the Popover is positioned towards. + */ + placement: _react2['default'].PropTypes.oneOf(['top', 'right', 'bottom', 'left']), + + /** + * The "left" position value for the Popover. + */ + positionLeft: _react2['default'].PropTypes.number, + /** + * The "top" position value for the Popover. + */ + positionTop: _react2['default'].PropTypes.number, + /** + * The "left" position value for the Popover arrow. + */ + arrowOffsetLeft: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.number, _react2['default'].PropTypes.string]), + /** + * The "top" position value for the Popover arrow. + */ + arrowOffsetTop: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.number, _react2['default'].PropTypes.string]), + /** + * Title text + */ + title: _react2['default'].PropTypes.node + }, + + getDefaultProps: function getDefaultProps() { + return { + placement: 'right', + bsClass: 'popover' + }; + }, + + render: function render() { + var _classes; + + var classes = (_classes = {}, _classes[_utilsBootstrapUtils2['default'].prefix(this.props)] = true, _classes[this.props.placement] = true, _classes); + + var style = _extends({ + 'left': this.props.positionLeft, + 'top': this.props.positionTop, + 'display': 'block' + }, this.props.style); + + // eslint-disable-line react/prop-types + var arrowStyle = { + 'left': this.props.arrowOffsetLeft, + 'top': this.props.arrowOffsetTop + }; + + return _react2['default'].createElement( + 'div', + _extends({ role: 'tooltip' }, this.props, { className: _classnames2['default'](this.props.className, classes), style: style, title: null }), + _react2['default'].createElement('div', { className: 'arrow', style: arrowStyle }), + this.props.title ? this.renderTitle() : null, + _react2['default'].createElement( + 'div', + { className: _utilsBootstrapUtils2['default'].prefix(this.props, 'content') }, + this.props.children + ) + ); + }, + + renderTitle: function renderTitle() { + return _react2['default'].createElement( + 'h3', + { className: _utilsBootstrapUtils2['default'].prefix(this.props, 'title') }, + this.props.title + ); + } + }); + + exports['default'] = Popover; + module.exports = exports['default']; + // we don't want to expose the `style` property + +/***/ }, +/* 235 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _Interpolate = __webpack_require__(175); + + var _Interpolate2 = _interopRequireDefault(_Interpolate); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _styleMaps = __webpack_require__(25); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsValidComponentChildren = __webpack_require__(7); + + var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); + + /** + * Custom propTypes checker + */ + function onlyProgressBar(props, propName, componentName) { + if (props[propName]) { + var _ret = (function () { + var error = undefined, + childIdentifier = undefined; + + _react2['default'].Children.forEach(props[propName], function (child) { + if (child.type !== ProgressBar) { + //eslint-disable-line + childIdentifier = child.type.displayName ? child.type.displayName : child.type; + error = new Error('Children of ' + componentName + ' can contain only ProgressBar components. Found ' + childIdentifier); + } + }); + + return { + v: error + }; + })(); + + if (typeof _ret === 'object') return _ret.v; + } + } + + var ProgressBar = (function (_React$Component) { + _inherits(ProgressBar, _React$Component); + + function ProgressBar() { + _classCallCheck(this, ProgressBar); + + _React$Component.apply(this, arguments); + } + + ProgressBar.prototype.getPercentage = function getPercentage(now, min, max) { + var roundPrecision = 1000; + return Math.round((now - min) / (max - min) * 100 * roundPrecision) / roundPrecision; + }; + + ProgressBar.prototype.render = function render() { + if (this.props.isChild) { + return this.renderProgressBar(); + } + + var content = undefined; + + if (this.props.children) { + content = _utilsValidComponentChildren2['default'].map(this.props.children, this.renderChildBar); + } else { + content = this.renderProgressBar(); + } + + return _react2['default'].createElement( + 'div', + _extends({}, this.props, { + className: _classnames2['default'](this.props.className, 'progress'), + min: null, + max: null, + label: null, + 'aria-valuetext': null + }), + content + ); + }; + + ProgressBar.prototype.renderChildBar = function renderChildBar(child, index) { + return _react.cloneElement(child, { + isChild: true, + key: child.key ? child.key : index + }); + }; + + ProgressBar.prototype.renderProgressBar = function renderProgressBar() { + var _classNames; + + var _props = this.props; + var className = _props.className; + var label = _props.label; + var now = _props.now; + var min = _props.min; + var max = _props.max; + + var props = _objectWithoutProperties(_props, ['className', 'label', 'now', 'min', 'max']); + + var percentage = this.getPercentage(now, min, max); + + if (typeof label === 'string') { + label = this.renderLabel(percentage); + } + + if (this.props.srOnly) { + label = _react2['default'].createElement( + 'span', + { className: 'sr-only' }, + label + ); + } + + var classes = _classnames2['default'](className, _utilsBootstrapUtils2['default'].getClassSet(this.props), (_classNames = { + active: this.props.active + }, _classNames[_utilsBootstrapUtils2['default'].prefix(this.props, 'striped')] = this.props.active || this.props.striped, _classNames)); + + return _react2['default'].createElement( + 'div', + _extends({}, props, { + className: classes, + role: 'progressbar', + style: { width: percentage + '%' }, + 'aria-valuenow': this.props.now, + 'aria-valuemin': this.props.min, + 'aria-valuemax': this.props.max }), + label + ); + }; + + ProgressBar.prototype.renderLabel = function renderLabel(percentage) { + var InterpolateClass = this.props.interpolateClass || _Interpolate2['default']; + + return _react2['default'].createElement( + InterpolateClass, + { + now: this.props.now, + min: this.props.min, + max: this.props.max, + percent: percentage, + bsStyle: this.props.bsStyle }, + this.props.label + ); + }; + + return ProgressBar; + })(_react2['default'].Component); + + ProgressBar.propTypes = _extends({}, ProgressBar.propTypes, { + min: _react.PropTypes.number, + now: _react.PropTypes.number, + max: _react.PropTypes.number, + label: _react.PropTypes.node, + srOnly: _react.PropTypes.bool, + striped: _react.PropTypes.bool, + active: _react.PropTypes.bool, + children: onlyProgressBar, + className: _react2['default'].PropTypes.string, + interpolateClass: _react.PropTypes.node, + /** + * @private + */ + isChild: _react.PropTypes.bool + }); + + ProgressBar.defaultProps = _extends({}, ProgressBar.defaultProps, { + min: 0, + max: 100, + active: false, + isChild: false, + srOnly: false, + striped: false + }); + + exports['default'] = _utilsBootstrapUtils.bsStyles(_styleMaps.State.values(), _utilsBootstrapUtils.bsClass('progress-bar', ProgressBar)); + module.exports = exports['default']; + +/***/ }, +/* 236 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _warning = __webpack_require__(33); + + var _warning2 = _interopRequireDefault(_warning); + + var ResponsiveEmbed = (function (_React$Component) { + _inherits(ResponsiveEmbed, _React$Component); + + function ResponsiveEmbed() { + _classCallCheck(this, ResponsiveEmbed); + + _React$Component.apply(this, arguments); + } + + ResponsiveEmbed.prototype.render = function render() { + var _props = this.props; + var bsClass = _props.bsClass; + var className = _props.className; + var a16by9 = _props.a16by9; + var a4by3 = _props.a4by3; + var children = _props.children; + + var props = _objectWithoutProperties(_props, ['bsClass', 'className', 'a16by9', 'a4by3', 'children']); + + true ? _warning2['default'](!(!a16by9 && !a4by3), '`a16by9` or `a4by3` attribute must be set.') : undefined; + true ? _warning2['default'](!(a16by9 && a4by3), 'Either `a16by9` or `a4by3` attribute can be set. Not both.') : undefined; + + var aspectRatio = { + 'embed-responsive-16by9': a16by9, + 'embed-responsive-4by3': a4by3 + }; + + return _react2['default'].createElement( + 'div', + { className: _classnames2['default'](bsClass, aspectRatio) }, + _react.cloneElement(children, _extends({}, props, { + className: _classnames2['default'](className, 'embed-responsive-item') + })) + ); + }; + + return ResponsiveEmbed; + })(_react2['default'].Component); + + ResponsiveEmbed.defaultProps = { + bsClass: 'embed-responsive', + a16by9: false, + a4by3: false + }; + + ResponsiveEmbed.propTypes = { + /** + * bootstrap className + * @private + */ + bsClass: _react.PropTypes.string, + /** + * This component accepts only one child element + */ + children: _react.PropTypes.element.isRequired, + /** + * 16by9 aspect ratio + */ + a16by9: _react.PropTypes.bool, + /** + * 4by3 aspect ratio + */ + a4by3: _react.PropTypes.bool + }; + + exports['default'] = ResponsiveEmbed; + module.exports = exports['default']; + +/***/ }, +/* 237 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _reactPropTypesLibElementType = __webpack_require__(52); + + var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType); + + var Row = _react2['default'].createClass({ + displayName: 'Row', + + propTypes: { + /** + * You can use a custom element for this component + */ + componentClass: _reactPropTypesLibElementType2['default'] + }, + + getDefaultProps: function getDefaultProps() { + return { + componentClass: 'div' + }; + }, + + render: function render() { + var ComponentClass = this.props.componentClass; + + return _react2['default'].createElement( + ComponentClass, + _extends({}, this.props, { className: _classnames2['default'](this.props.className, 'row') }), + this.props.children + ); + } + }); + + exports['default'] = Row; + module.exports = exports['default']; + +/***/ }, +/* 238 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _Object$keys = __webpack_require__(28)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _Button = __webpack_require__(51); + + var _Button2 = _interopRequireDefault(_Button); + + var _Dropdown = __webpack_require__(82); + + var _Dropdown2 = _interopRequireDefault(_Dropdown); + + var _SplitToggle = __webpack_require__(239); + + var _SplitToggle2 = _interopRequireDefault(_SplitToggle); + + var _lodashCompatObjectOmit = __webpack_require__(140); + + var _lodashCompatObjectOmit2 = _interopRequireDefault(_lodashCompatObjectOmit); + + var _lodashCompatObjectPick = __webpack_require__(169); + + var _lodashCompatObjectPick2 = _interopRequireDefault(_lodashCompatObjectPick); + + var SplitButton = (function (_React$Component) { + _inherits(SplitButton, _React$Component); + + function SplitButton() { + _classCallCheck(this, SplitButton); + + _React$Component.apply(this, arguments); + } + + SplitButton.prototype.render = function render() { + var _props = this.props; + var children = _props.children; + var title = _props.title; + var onClick = _props.onClick; + var target = _props.target; + var href = _props.href; + var bsSize = _props.bsSize; + var bsStyle = _props.bsStyle; + + var props = _objectWithoutProperties(_props, ['children', 'title', 'onClick', 'target', 'href', 'bsSize', 'bsStyle']); + + var disabled = props.disabled; + + var dropdownProps = _lodashCompatObjectPick2['default'](props, _Object$keys(_Dropdown2['default'].ControlledComponent.propTypes)); + var buttonProps = _lodashCompatObjectOmit2['default'](props, _Object$keys(_Dropdown2['default'].ControlledComponent.propTypes)); + + return _react2['default'].createElement( + _Dropdown2['default'], + dropdownProps, + _react2['default'].createElement( + _Button2['default'], + _extends({}, buttonProps, { + onClick: onClick, + bsStyle: bsStyle, + bsSize: bsSize, + disabled: disabled, + target: target, + href: href + }), + title + ), + _react2['default'].createElement(_SplitToggle2['default'], { + 'aria-label': title, + bsStyle: bsStyle, + bsSize: bsSize, + disabled: disabled + }), + _react2['default'].createElement( + _Dropdown2['default'].Menu, + null, + children + ) + ); + }; + + return SplitButton; + })(_react2['default'].Component); + + SplitButton.propTypes = _extends({}, _Dropdown2['default'].propTypes, { + bsStyle: _Button2['default'].propTypes.bsStyle, + + /** + * @private + */ + onClick: function onClick() {}, + target: _react2['default'].PropTypes.string, + href: _react2['default'].PropTypes.string, + /** + * The content of the split button. + */ + title: _react2['default'].PropTypes.node.isRequired + }); + + SplitButton.defaultProps = { + disabled: false, + dropup: false, + pullRight: false + }; + + SplitButton.Toggle = _SplitToggle2['default']; + + exports['default'] = SplitButton; + module.exports = exports['default']; + +/***/ }, +/* 239 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _DropdownToggle = __webpack_require__(165); + + var _DropdownToggle2 = _interopRequireDefault(_DropdownToggle); + + var SplitToggle = (function (_React$Component) { + _inherits(SplitToggle, _React$Component); + + function SplitToggle() { + _classCallCheck(this, SplitToggle); + + _React$Component.apply(this, arguments); + } + + SplitToggle.prototype.render = function render() { + return _react2['default'].createElement(_DropdownToggle2['default'], _extends({}, this.props, { + useAnchor: false, + noCaret: false + })); + }; + + return SplitToggle; + })(_react2['default'].Component); + + exports['default'] = SplitToggle; + + SplitToggle.defaultProps = _DropdownToggle2['default'].defaultProps; + module.exports = exports['default']; + +/***/ }, +/* 240 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _reactDom = __webpack_require__(63); + + var _reactDom2 = _interopRequireDefault(_reactDom); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _utilsTransitionEvents = __webpack_require__(64); + + var _utilsTransitionEvents2 = _interopRequireDefault(_utilsTransitionEvents); + + var Tab = _react2['default'].createClass({ + displayName: 'Tab', + + propTypes: { + /** + * @private + */ + active: _react2['default'].PropTypes.bool, + animation: _react2['default'].PropTypes.bool, + /** + * It is used by 'Tabs' - parent component + * @private + */ + onAnimateOutEnd: _react2['default'].PropTypes.func, + disabled: _react2['default'].PropTypes.bool, + title: _react2['default'].PropTypes.node, + /** + * tabClassName is used as className for the associated NavItem + */ + tabClassName: _react2['default'].PropTypes.string + }, + + getDefaultProps: function getDefaultProps() { + return { + bsClass: 'tab', + animation: true + }; + }, + + getInitialState: function getInitialState() { + return { + animateIn: false, + animateOut: false + }; + }, + + componentWillReceiveProps: function componentWillReceiveProps(nextProps) { + if (this.props.animation) { + if (!this.state.animateIn && nextProps.active && !this.props.active) { + this.setState({ + animateIn: true + }); + } else if (!this.state.animateOut && !nextProps.active && this.props.active) { + this.setState({ + animateOut: true + }); + } + } + }, + + componentDidUpdate: function componentDidUpdate() { + if (this.state.animateIn) { + setTimeout(this.startAnimateIn, 0); + } + if (this.state.animateOut) { + _utilsTransitionEvents2['default'].addEndEventListener(_reactDom2['default'].findDOMNode(this), this.stopAnimateOut); + } + }, + + startAnimateIn: function startAnimateIn() { + if (this.isMounted()) { + this.setState({ + animateIn: false + }); + } + }, + + stopAnimateOut: function stopAnimateOut() { + if (this.isMounted()) { + this.setState({ + animateOut: false + }); + + if (this.props.onAnimateOutEnd) { + this.props.onAnimateOutEnd(); + } + } + }, + + render: function render() { + var _classes; + + var classes = (_classes = {}, _classes[_utilsBootstrapUtils2['default'].prefix(this.props, 'pane')] = true, _classes['fade'] = true, _classes['active'] = this.props.active || this.state.animateOut, _classes['in'] = this.props.active && !this.state.animateIn, _classes); + + return _react2['default'].createElement( + 'div', + _extends({}, this.props, { + title: undefined, + role: 'tabpanel', + 'aria-hidden': !this.props.active, + className: _classnames2['default'](this.props.className, classes) + }), + this.props.children + ); + } + }); + + exports['default'] = Tab; + module.exports = exports['default']; + +/***/ }, +/* 241 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var Table = _react2['default'].createClass({ + displayName: 'Table', + + propTypes: { + striped: _react2['default'].PropTypes.bool, + bordered: _react2['default'].PropTypes.bool, + condensed: _react2['default'].PropTypes.bool, + hover: _react2['default'].PropTypes.bool, + responsive: _react2['default'].PropTypes.bool + }, + + getDefaultProps: function getDefaultProps() { + return { + bordered: false, + condensed: false, + hover: false, + responsive: false, + striped: false + }; + }, + + render: function render() { + var classes = { + 'table': true, + 'table-striped': this.props.striped, + 'table-bordered': this.props.bordered, + 'table-condensed': this.props.condensed, + 'table-hover': this.props.hover + }; + var table = _react2['default'].createElement( + 'table', + _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }), + this.props.children + ); + + return this.props.responsive ? _react2['default'].createElement( + 'div', + { className: 'table-responsive' }, + table + ) : table; + } + }); + + exports['default'] = Table; + module.exports = exports['default']; + +/***/ }, +/* 242 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _objectWithoutProperties = __webpack_require__(36)['default']; + + var _Object$keys = __webpack_require__(28)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _reactDom = __webpack_require__(63); + + var _reactDom2 = _interopRequireDefault(_reactDom); + + var _Col = __webpack_require__(65); + + var _Col2 = _interopRequireDefault(_Col); + + var _Nav = __webpack_require__(207); + + var _Nav2 = _interopRequireDefault(_Nav); + + var _NavItem = __webpack_require__(216); + + var _NavItem2 = _interopRequireDefault(_NavItem); + + var _styleMaps = __webpack_require__(25); + + var _styleMaps2 = _interopRequireDefault(_styleMaps); + + var _keycode = __webpack_require__(86); + + var _keycode2 = _interopRequireDefault(_keycode); + + var _utilsCreateChainedFunction = __webpack_require__(6); + + var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _utilsValidComponentChildren = __webpack_require__(7); + + var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren); + + var paneId = function paneId(props, child) { + return child.props.id ? child.props.id : props.id && props.id + '___pane___' + child.props.eventKey; + }; + var tabId = function tabId(props, child) { + return child.props.id ? child.props.id + '___tab' : props.id && props.id + '___tab___' + child.props.eventKey; + }; + + var findChild = _utilsValidComponentChildren2['default'].find; + + function getDefaultActiveKeyFromChildren(children) { + var defaultActiveKey = undefined; + + _utilsValidComponentChildren2['default'].forEach(children, function (child) { + if (defaultActiveKey == null) { + defaultActiveKey = child.props.eventKey; + } + }); + + return defaultActiveKey; + } + + function move(children, currentKey, keys, moveNext) { + var lastIdx = keys.length - 1; + var stopAt = keys[moveNext ? Math.max(lastIdx, 0) : 0]; + var nextKey = currentKey; + + function getNext() { + var idx = keys.indexOf(nextKey); + nextKey = moveNext ? keys[Math.min(lastIdx, idx + 1)] : keys[Math.max(0, idx - 1)]; + + return findChild(children, function (_child) { + return _child.props.eventKey === nextKey; + }); + } + + var next = getNext(); + + while (next.props.eventKey !== stopAt && next.props.disabled) { + next = getNext(); + } + + return next.props.disabled ? currentKey : next.props.eventKey; + } + + var Tabs = _react2['default'].createClass({ + displayName: 'Tabs', + + propTypes: { + activeKey: _react2['default'].PropTypes.any, + defaultActiveKey: _react2['default'].PropTypes.any, + /** + * Navigation style for tabs + * + * If not specified, it will be treated as `'tabs'` when vertically + * positioned and `'pills'` when horizontally positioned. + */ + bsStyle: _react2['default'].PropTypes.oneOf(['tabs', 'pills']), + animation: _react2['default'].PropTypes.bool, + id: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]), + onSelect: _react2['default'].PropTypes.func, + position: _react2['default'].PropTypes.oneOf(['top', 'left', 'right']), + /** + * Number of grid columns for the tabs if horizontally positioned + * + * This accepts either a single width or a mapping of size to width. + */ + tabWidth: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.number, _react2['default'].PropTypes.object]), + /** + * Number of grid columns for the panes if horizontally positioned + * + * This accepts either a single width or a mapping of size to width. If not + * specified, it will be treated as `styleMaps.GRID_COLUMNS` minus + * `tabWidth`. + */ + paneWidth: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.number, _react2['default'].PropTypes.object]), + /** + * Render without clearfix if horizontally positioned + */ + standalone: _react2['default'].PropTypes.bool + }, + + getDefaultProps: function getDefaultProps() { + return { + bsClass: 'tab', + animation: true, + tabWidth: 2, + position: 'top', + standalone: false + }; + }, + + getInitialState: function getInitialState() { + var defaultActiveKey = this.props.defaultActiveKey != null ? this.props.defaultActiveKey : getDefaultActiveKeyFromChildren(this.props.children); + + return { + activeKey: defaultActiveKey, + previousActiveKey: null + }; + }, + + componentWillReceiveProps: function componentWillReceiveProps(nextProps) { + var _this = this; + + if (nextProps.activeKey != null && nextProps.activeKey !== this.props.activeKey) { + (function () { + // check if the 'previousActiveKey' child still exists + var previousActiveKey = _this.props.activeKey; + _react2['default'].Children.forEach(nextProps.children, function (child) { + if (_react2['default'].isValidElement(child)) { + if (child.props.eventKey === previousActiveKey) { + _this.setState({ + previousActiveKey: previousActiveKey + }); + return; + } + } + }); + })(); + } + }, + + componentDidUpdate: function componentDidUpdate() { + var tabs = this._tabs; + var tabIdx = this._eventKeys().indexOf(this.getActiveKey()); + + if (this._needsRefocus) { + this._needsRefocus = false; + if (tabs && tabIdx !== -1) { + var tabNode = _reactDom2['default'].findDOMNode(tabs[tabIdx]); + + if (tabNode) { + tabNode.firstChild.focus(); + } + } + } + }, + + handlePaneAnimateOutEnd: function handlePaneAnimateOutEnd() { + this.setState({ + previousActiveKey: null + }); + }, + + render: function render() { + var _props = this.props; + var id = _props.id; + var className = _props.className; + var style = _props.style; + var position = _props.position; + var bsStyle = _props.bsStyle; + var tabWidth = _props.tabWidth; + var paneWidth = _props.paneWidth; + var standalone = _props.standalone; + var children = _props.children; + + var props = _objectWithoutProperties(_props, ['id', 'className', 'style', 'position', 'bsStyle', 'tabWidth', 'paneWidth', 'standalone', 'children']); + + var isHorizontal = position === 'left' || position === 'right'; + + if (bsStyle == null) { + bsStyle = isHorizontal ? 'pills' : 'tabs'; + } + + var containerProps = { id: id, className: className, style: style }; + + var tabsProps = _extends({}, props, { + bsStyle: bsStyle, + bsClass: undefined, + stacked: isHorizontal, + activeKey: this.getActiveKey(), + onSelect: this.handleSelect, + ref: 'tabs', + role: 'tablist' + }); + var childTabs = _utilsValidComponentChildren2['default'].map(children, this.renderTab); + + var panesProps = { + className: _utilsBootstrapUtils2['default'].prefix(this.props, 'content'), + ref: 'panes' + }; + var childPanes = _utilsValidComponentChildren2['default'].map(children, this.renderPane); + + if (isHorizontal) { + if (!standalone) { + containerProps.className = _classnames2['default'](containerProps.className, 'clearfix'); + } + + var _getColProps = this.getColProps({ tabWidth: tabWidth, paneWidth: paneWidth }); + + var tabsColProps = _getColProps.tabsColProps; + var panesColProps = _getColProps.panesColProps; + + var tabs = _react2['default'].createElement( + _Col2['default'], + _extends({ componentClass: _Nav2['default'] }, tabsProps, tabsColProps), + childTabs + ); + var panes = _react2['default'].createElement( + _Col2['default'], + _extends({}, panesProps, panesColProps), + childPanes + ); + + if (position === 'left') { + return _react2['default'].createElement( + 'div', + containerProps, + tabs, + panes + ); + } + + return _react2['default'].createElement( + 'div', + containerProps, + panes, + tabs + ); + } + + return _react2['default'].createElement( + 'div', + containerProps, + _react2['default'].createElement( + _Nav2['default'], + tabsProps, + childTabs + ), + _react2['default'].createElement( + 'div', + panesProps, + childPanes + ) + ); + }, + + getActiveKey: function getActiveKey() { + return this.props.activeKey !== undefined ? this.props.activeKey : this.state.activeKey; + }, + + renderPane: function renderPane(child, index) { + var previousActiveKey = this.state.previousActiveKey; + + var shouldPaneBeSetActive = child.props.eventKey === this.getActiveKey(); + var thereIsNoActivePane = previousActiveKey == null; + + var paneIsAlreadyActive = previousActiveKey != null && child.props.eventKey === previousActiveKey; + + return _react.cloneElement(child, { + active: shouldPaneBeSetActive && (thereIsNoActivePane || !this.props.animation), + id: paneId(this.props, child), + 'aria-labelledby': tabId(this.props, child), + key: child.key ? child.key : index, + animation: this.props.animation, + onAnimateOutEnd: paneIsAlreadyActive ? this.handlePaneAnimateOutEnd : null + }); + }, + + renderTab: function renderTab(child, index) { + var _this2 = this; + + if (child.props.title == null) { + return null; + } + + var _child$props = child.props; + var eventKey = _child$props.eventKey; + var title = _child$props.title; + var disabled = _child$props.disabled; + var onKeyDown = _child$props.onKeyDown; + var tabClassName = _child$props.tabClassName; + var _child$props$tabIndex = _child$props.tabIndex; + var tabIndex = _child$props$tabIndex === undefined ? 0 : _child$props$tabIndex; + + var isActive = this.getActiveKey() === eventKey; + + return _react2['default'].createElement( + _NavItem2['default'], + { + linkId: tabId(this.props, child), + ref: function (ref) { + return (_this2._tabs || (_this2._tabs = []))[index] = ref; + }, + 'aria-controls': paneId(this.props, child), + onKeyDown: _utilsCreateChainedFunction2['default'](this.handleKeyDown, onKeyDown), + eventKey: eventKey, + tabIndex: isActive ? tabIndex : -1, + disabled: disabled, + className: tabClassName }, + title + ); + }, + + getColProps: function getColProps(_ref) { + var tabWidth = _ref.tabWidth; + var paneWidth = _ref.paneWidth; + + var tabsColProps = undefined; + if (tabWidth instanceof Object) { + tabsColProps = tabWidth; + } else { + tabsColProps = { xs: tabWidth }; + } + + var panesColProps = undefined; + if (paneWidth == null) { + panesColProps = {}; + _Object$keys(tabsColProps).forEach(function (size) { + panesColProps[size] = _styleMaps2['default'].GRID_COLUMNS - tabsColProps[size]; + }); + } else if (paneWidth instanceof Object) { + panesColProps = paneWidth; + } else { + panesColProps = { xs: paneWidth }; + } + + return { tabsColProps: tabsColProps, panesColProps: panesColProps }; + }, + + shouldComponentUpdate: function shouldComponentUpdate() { + // Defer any updates to this component during the `onSelect` handler. + return !this._isChanging; + }, + + handleSelect: function handleSelect(selectedKey) { + if (this.props.onSelect) { + this._isChanging = true; + this.props.onSelect(selectedKey); + this._isChanging = false; + return; + } + + // if there is no external handler, then use embedded one + var previousActiveKey = this.getActiveKey(); + if (selectedKey !== previousActiveKey) { + this.setState({ + activeKey: selectedKey, + previousActiveKey: previousActiveKey + }); + } + }, + + handleKeyDown: function handleKeyDown(event) { + var keys = this._eventKeys(); + var currentKey = this.getActiveKey() || keys[0]; + var next = undefined; + + switch (event.keyCode) { + + case _keycode2['default'].codes.left: + case _keycode2['default'].codes.up: + next = move(this.props.children, currentKey, keys, false); + + if (next && next !== currentKey) { + event.preventDefault(); + this.handleSelect(next); + this._needsRefocus = true; + } + break; + case _keycode2['default'].codes.right: + case _keycode2['default'].codes.down: + next = move(this.props.children, currentKey, keys, true); + + if (next && next !== currentKey) { + event.preventDefault(); + this.handleSelect(next); + this._needsRefocus = true; + } + break; + default: + } + }, + + _eventKeys: function _eventKeys() { + var keys = []; + + _utilsValidComponentChildren2['default'].forEach(this.props.children, function (_ref2) { + var eventKey = _ref2.props.eventKey; + return keys.push(eventKey); + }); + + return keys; + } + }); + + exports['default'] = Tabs; + module.exports = exports['default']; + +/***/ }, +/* 243 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _SafeAnchor = __webpack_require__(42); + + var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var Thumbnail = _react2['default'].createClass({ + displayName: 'Thumbnail', + + propTypes: { + alt: _react2['default'].PropTypes.string, + href: _react2['default'].PropTypes.string, + src: _react2['default'].PropTypes.string + }, + + render: function render() { + var classes = _utilsBootstrapUtils2['default'].getClassSet(this.props); + + if (this.props.href) { + return _react2['default'].createElement( + _SafeAnchor2['default'], + _extends({}, this.props, { href: this.props.href, className: _classnames2['default'](this.props.className, classes) }), + _react2['default'].createElement('img', { src: this.props.src, alt: this.props.alt }) + ); + } + + if (this.props.children) { + return _react2['default'].createElement( + 'div', + _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }), + _react2['default'].createElement('img', { src: this.props.src, alt: this.props.alt }), + _react2['default'].createElement( + 'div', + { className: 'caption' }, + this.props.children + ) + ); + } + + return _react2['default'].createElement( + 'div', + _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }), + _react2['default'].createElement('img', { src: this.props.src, alt: this.props.alt }) + ); + } + }); + + exports['default'] = _utilsBootstrapUtils.bsClass('thumbnail', Thumbnail); + module.exports = exports['default']; + +/***/ }, +/* 244 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _reactPropTypesLibIsRequiredForA11y = __webpack_require__(155); + + var _reactPropTypesLibIsRequiredForA11y2 = _interopRequireDefault(_reactPropTypesLibIsRequiredForA11y); + + var Tooltip = _react2['default'].createClass({ + displayName: 'Tooltip', + + propTypes: { + /** + * An html id attribute, necessary for accessibility + * @type {string} + * @required + */ + id: _reactPropTypesLibIsRequiredForA11y2['default'](_react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number])), + + /** + * Sets the direction the Tooltip is positioned towards. + */ + placement: _react2['default'].PropTypes.oneOf(['top', 'right', 'bottom', 'left']), + + /** + * The "left" position value for the Tooltip. + */ + positionLeft: _react2['default'].PropTypes.number, + /** + * The "top" position value for the Tooltip. + */ + positionTop: _react2['default'].PropTypes.number, + /** + * The "left" position value for the Tooltip arrow. + */ + arrowOffsetLeft: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.number, _react2['default'].PropTypes.string]), + /** + * The "top" position value for the Tooltip arrow. + */ + arrowOffsetTop: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.number, _react2['default'].PropTypes.string]), + /** + * Title text + */ + title: _react2['default'].PropTypes.node + }, + + getDefaultProps: function getDefaultProps() { + return { + bsClass: 'tooltip', + placement: 'right' + }; + }, + + render: function render() { + var _classes; + + var classes = (_classes = {}, _classes[_utilsBootstrapUtils2['default'].prefix(this.props)] = true, _classes[this.props.placement] = true, _classes); + + var style = _extends({ + 'left': this.props.positionLeft, + 'top': this.props.positionTop + }, this.props.style); + + var arrowStyle = { + 'left': this.props.arrowOffsetLeft, + 'top': this.props.arrowOffsetTop + }; + + return _react2['default'].createElement( + 'div', + _extends({ role: 'tooltip' }, this.props, { className: _classnames2['default'](this.props.className, classes), style: style }), + _react2['default'].createElement('div', { className: _utilsBootstrapUtils2['default'].prefix(this.props, 'arrow'), style: arrowStyle }), + _react2['default'].createElement( + 'div', + { className: _utilsBootstrapUtils2['default'].prefix(this.props, 'inner') }, + this.props.children + ) + ); + } + }); + + exports['default'] = Tooltip; + module.exports = exports['default']; + +/***/ }, +/* 245 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _inherits = __webpack_require__(43)['default']; + + var _classCallCheck = __webpack_require__(50)['default']; + + var _extends = __webpack_require__(9)['default']; + + var _interopRequireDefault = __webpack_require__(1)['default']; + + exports.__esModule = true; + + var _react = __webpack_require__(4); + + var _react2 = _interopRequireDefault(_react); + + var _classnames = __webpack_require__(37); + + var _classnames2 = _interopRequireDefault(_classnames); + + var _utilsBootstrapUtils = __webpack_require__(8); + + var _utilsBootstrapUtils2 = _interopRequireDefault(_utilsBootstrapUtils); + + var _styleMaps = __webpack_require__(25); + + var Well = (function (_React$Component) { + _inherits(Well, _React$Component); + + function Well() { + _classCallCheck(this, _Well); + + _React$Component.apply(this, arguments); + } + + Well.prototype.render = function render() { + var classes = _utilsBootstrapUtils2['default'].getClassSet(this.props); + + return _react2['default'].createElement( + 'div', + _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }), + this.props.children + ); + }; + + var _Well = Well; + Well = _utilsBootstrapUtils.bsSizes([_styleMaps.Sizes.LARGE, _styleMaps.Sizes.SMALL])(Well) || Well; + Well = _utilsBootstrapUtils.bsClass('well')(Well) || Well; + return Well; + })(_react2['default'].Component); + + exports['default'] = Well; + module.exports = exports['default']; + +/***/ } +/******/ ]) +}); +;
\ No newline at end of file diff --git a/web/static/js/react-bootstrap-0.28.1.min.js b/web/static/js/react-bootstrap-0.28.1.min.js new file mode 100644 index 000000000..946361df2 --- /dev/null +++ b/web/static/js/react-bootstrap-0.28.1.min.js @@ -0,0 +1,14 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],t):"object"==typeof exports?exports.ReactBootstrap=t(require("react"),require("react-dom")):e.ReactBootstrap=t(e.React,e.ReactDOM)}(this,function(e,t){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){"use strict";var n=r(2)["default"],o=r(78)["default"];t.__esModule=!0;var s=r(43),a=n(s),i=r(11),l=n(i),u=r(9),p=n(u),d=r(5),f=n(d),c=r(116),h=n(c);t.Accordion=h["default"];var v=r(117),y=n(v);t.Alert=y["default"];var m=r(118),b=n(m);t.Badge=b["default"];var g=r(119),T=n(g);t.Breadcrumb=T["default"];var x=r(120),P=n(x);t.BreadcrumbItem=P["default"];var E=r(18),C=n(E);t.Button=C["default"];var _=r(59),N=n(_);t.ButtonGroup=N["default"];var S=r(121),O=n(S);t.ButtonInput=O["default"];var w=r(122),k=n(w);t.ButtonToolbar=k["default"];var M=r(123),I=n(M);t.Carousel=I["default"];var D=r(124),A=n(D);t.CarouselItem=A["default"];var R=r(60),L=n(R);t.Col=L["default"];var j=r(125),K=n(j);t.CollapsibleNav=K["default"];var B=r(30),F=n(B);t.Dropdown=F["default"];var H=r(126),U=n(H);t.DropdownButton=U["default"];var W=r(39),z=n(W);t.Glyphicon=z["default"];var $=r(40),V=n($);t.Grid=V["default"];var q=r(129),G=n(q);t.Image=G["default"];var Y=r(130),Z=n(Y);t.Input=Z["default"];var X=r(64),J=n(X);t.Interpolate=J["default"];var Q=r(131),ee=n(Q);t.Jumbotron=ee["default"];var te=r(132),re=n(te);t.Label=re["default"];var ne=r(133),oe=n(ne);t.ListGroup=oe["default"];var se=r(65),ae=n(se);t.ListGroupItem=ae["default"];var ie=r(134),le=n(ie);t.MenuItem=le["default"];var ue=r(135),pe=n(ue);t.Modal=pe["default"];var de=r(66),fe=n(de);t.ModalBody=fe["default"];var ce=r(67),he=n(ce);t.ModalFooter=he["default"];var ve=r(68),ye=n(ve);t.ModalHeader=ye["default"];var me=r(69),be=n(me);t.ModalTitle=be["default"];var ge=r(70),Te=n(ge);t.Nav=Te["default"];var xe=r(138),Pe=n(xe);t.Navbar=Pe["default"];var Ee=r(71),Ce=n(Ee);t.NavBrand=Ce["default"];var _e=r(42),Ne=n(_e);t.NavbarBrand=Ne["default"];var Se=r(137),Oe=n(Se);t.NavDropdown=Oe["default"];var we=r(72),ke=n(we);t.NavItem=ke["default"];var Me=r(73),Ie=n(Me);t.Overlay=Ie["default"];var De=r(142),Ae=n(De);t.OverlayTrigger=Ae["default"];var Re=r(143),Le=n(Re);t.PageHeader=Le["default"];var je=r(144),Ke=n(je);t.PageItem=Ke["default"];var Be=r(145),Fe=n(Be);t.Pager=Fe["default"];var He=r(146),Ue=n(He);t.Pagination=Ue["default"];var We=r(148),ze=n(We);t.Panel=ze["default"];var $e=r(74),Ve=n($e);t.PanelGroup=Ve["default"];var qe=r(149),Ge=n(qe);t.Popover=Ge["default"];var Ye=r(150),Ze=n(Ye);t.ProgressBar=Ze["default"];var Xe=r(151),Je=n(Xe);t.ResponsiveEmbed=Je["default"];var Qe=r(152),et=n(Qe);t.Row=et["default"];var tt=r(15),rt=n(tt);t.SafeAnchor=rt["default"];var nt=r(153),ot=n(nt);t.SplitButton=ot["default"];var st=n(nt);t.SplitButton=st["default"];var at=r(155),it=n(at);t.Tab=it["default"];var lt=r(156),ut=n(lt);t.Table=ut["default"];var pt=r(157),dt=n(pt);t.Tabs=dt["default"];var ft=r(158),ct=n(ft);t.Thumbnail=ct["default"];var ht=r(159),vt=n(ht);t.Tooltip=vt["default"];var yt=r(160),mt=n(yt);t.Well=mt["default"];var bt=r(25),gt=n(bt);t.Collapse=gt["default"];var Tt=r(38),xt=n(Tt);t.Fade=xt["default"];var Pt=r(62),Et=o(Pt);t.FormControls=Et;var Ct={bootstrapUtils:f["default"],childrenValueInputValidation:a["default"],createChainedFunction:l["default"],ValidComponentChildren:p["default"]};t.utils=Ct},function(t,r){t.exports=e},function(e,t){"use strict";t["default"]=function(e){return e&&e.__esModule?e:{"default":e}},t.__esModule=!0},function(e,t,r){"use strict";var n=r(76)["default"];t["default"]=n||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},t.__esModule=!0},function(e,t,r){var n;/*! + Copyright (c) 2015 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames + */ +!function(){"use strict";function o(){for(var e="",t=0;t<arguments.length;t++){var r=arguments[t];if(r){var n=typeof r;if("string"===n||"number"===n)e+=" "+r;else if(Array.isArray(r))e+=" "+o.apply(null,r);else if("object"===n)for(var a in r)s.call(r,a)&&r[a]&&(e+=" "+a)}}return e.substr(1)}var s={}.hasOwnProperty;"undefined"!=typeof e&&e.exports?e.exports=o:(n=function(){return o}.call(t,r,t,e),!(void 0!==n&&(e.exports=n)))}()},function(e,t,r){"use strict";function n(e){return function(){for(var t=arguments.length,r=Array(t),n=0;t>n;n++)r[n]=arguments[n];var o=r[r.length-1];return"function"==typeof o?e.apply(void 0,r):function(t){return e.apply(void 0,r.concat([t]))}}}function o(e,t){return void 0===e&&(e={}),(e.bsClass||"").trim()?void 0:d["default"](!1),e.bsClass+(t?"-"+t:"")}var s=r(3)["default"],a=r(2)["default"];t.__esModule=!0;var i=r(1),l=r(10),u=a(l),p=r(90),d=a(p),f=r(22),c=(a(f),n(function(e,t){var r=t.propTypes||(t.propTypes={}),n=t.defaultProps||(t.defaultProps={});return r.bsClass=i.PropTypes.string,n.bsClass=e,t}));t.bsClass=c;var h=n(function(e,t,r){"string"!=typeof t&&(r=t,t=void 0);var n=r.STYLES||[],o=r.propTypes||{};e.forEach(function(e){-1===n.indexOf(e)&&n.push(e)});var a=i.PropTypes.oneOf(n);if(r.STYLES=a._values=n,r.propTypes=s({},o,{bsStyle:a}),void 0!==t){var l=r.defaultProps||(r.defaultProps={});l.bsStyle=t}return r});t.bsStyles=h;var v=n(function(e,t,r){"string"!=typeof t&&(r=t,t=void 0);var n=r.SIZES||[],o=r.propTypes||{};e.forEach(function(e){-1===n.indexOf(e)&&n.push(e)});var a=n.reduce(function(e,t){return u["default"].SIZES[t]&&u["default"].SIZES[t]!==t&&e.push(u["default"].SIZES[t]),e.concat(t)},[]),l=i.PropTypes.oneOf(a);if(l._values=a,r.SIZES=n,r.propTypes=s({},o,{bsSize:l}),void 0!==t){var p=r.defaultProps||(r.defaultProps={});p.bsSize=t}return r});t.bsSizes=v,t["default"]={prefix:o,getClassSet:function(e){var t={},r=o(e);if(r){var n=void 0;t[r]=!0,e.bsSize&&(n=u["default"].SIZES[e.bsSize]||n),n&&(t[o(e,n)]=!0),e.bsStyle&&(0===e.bsStyle.indexOf(o(e))?t[e.bsStyle]=!0:t[o(e,e.bsStyle)]=!0)}return t},addStyle:function(e,t){h(t,e)}};var y=n;t._curry=y},function(e,t){"use strict";t["default"]=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},t.__esModule=!0},function(e,t,r){"use strict";var n=r(77)["default"],o=r(165)["default"];t["default"]=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=n(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(o?o(e,t):e.__proto__=t)},t.__esModule=!0},function(e,t){"use strict";t["default"]=function(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r},t.__esModule=!0},function(e,t,r){"use strict";function n(e,t,r){var n=0;return d["default"].Children.map(e,function(e){if(d["default"].isValidElement(e)){var o=n;return n++,t.call(r,e,o)}return e})}function o(e,t,r){var n=0;return d["default"].Children.forEach(e,function(e){d["default"].isValidElement(e)&&(t.call(r,e,n),n++)})}function s(e){var t=0;return d["default"].Children.forEach(e,function(e){d["default"].isValidElement(e)&&t++}),t}function a(e){var t=!1;return d["default"].Children.forEach(e,function(e){!t&&d["default"].isValidElement(e)&&(t=!0)}),t}function i(e,t){var r=void 0;return o(e,function(n,o){!r&&t(n,o,e)&&(r=n)}),r}function l(e,t,r){var n=0,o=[];return d["default"].Children.forEach(e,function(e){d["default"].isValidElement(e)&&(t.call(r,e,n)&&o.push(e),n++)}),o}var u=r(2)["default"];t.__esModule=!0;var p=r(1),d=u(p);t["default"]={map:n,forEach:o,numberOf:s,find:i,findValidComponents:l,hasValidComponent:a},e.exports=t["default"]},function(e,t,r){"use strict";var n=r(76)["default"],o=r(77)["default"],s=r(19)["default"];t.__esModule=!0;var a=function(e){return n(o({values:function(){var e=this;return s(this).map(function(t){return e[t]})}}),e)},i={SIZES:{large:"lg",medium:"md",small:"sm",xsmall:"xs",lg:"lg",md:"md",sm:"sm",xs:"xs"},GRID_COLUMNS:12},l=a({LARGE:"large",MEDIUM:"medium",SMALL:"small",XSMALL:"xsmall"});t.Sizes=l;var u=a({SUCCESS:"success",WARNING:"warning",DANGER:"danger",INFO:"info"});t.State=u;var p="default";t.DEFAULT=p;var d="primary";t.PRIMARY=d;var f="link";t.LINK=f;var c="inverse";t.INVERSE=c,t["default"]=i},function(e,t){"use strict";function r(){for(var e=arguments.length,t=Array(e),r=0;e>r;r++)t[r]=arguments[r];return t.filter(function(e){return null!=e}).reduce(function(e,t){if("function"!=typeof t)throw new Error("Invalid Argument Type, must only provide functions, undefined, or null.");return null===e?t:function(){for(var r=arguments.length,n=Array(r),o=0;r>o;o++)n[o]=arguments[o];e.apply(this,n),t.apply(this,n)}},null)}t.__esModule=!0,t["default"]=r,e.exports=t["default"]},function(e,r){e.exports=t},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,r){var n=i.errMsg(e,t,r,". Expected an Element `type`");if("function"!=typeof e[t]){if(a["default"].isValidElement(e[t]))return new Error(n+", not an actual Element");if("string"!=typeof e[t])return new Error(n+" such as a tag name or return value of React.createClass(...)")}}t.__esModule=!0;var s=r(1),a=n(s),i=r(114);t["default"]=i.createChainableTypeChecker(o),e.exports=t["default"]},function(e,t,r){function n(e){if(a.unindexedChars&&s(e)){for(var t=-1,r=e.length,n=Object(e);++t<r;)n[t]=e.charAt(t);return n}return o(e)?e:Object(e)}var o=r(17),s=r(51),a=r(55);e.exports=n},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(3)["default"],a=r(2)["default"];t.__esModule=!0;var i=r(1),l=a(i),u=r(11),p=a(u),d=function(e){function t(r){o(this,t),e.call(this,r),this.handleClick=this.handleClick.bind(this)}return n(t,e),t.prototype.handleClick=function(e){void 0===this.props.href&&e.preventDefault()},t.prototype.render=function(){return l["default"].createElement("a",s({role:this.props.href?void 0:"button"},this.props,{onClick:p["default"](this.props.onClick,this.handleClick),href:this.props.href||""}))},t}(l["default"].Component);t["default"]=d,d.propTypes={href:l["default"].PropTypes.string,onClick:l["default"].PropTypes.func},e.exports=t["default"]},function(e,t,r){var n=r(35),o=r(24),s=r(21),a="[object Array]",i=Object.prototype,l=i.toString,u=n(Array,"isArray"),p=u||function(e){return s(e)&&o(e.length)&&l.call(e)==a};e.exports=p},function(e,t){function r(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}e.exports=r},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(4),l=o(i),u=r(13),p=o(u),d=r(5),f=o(d),c=r(10),h=["button","reset","submit"],v=c.State.values().concat(c.DEFAULT,c.PRIMARY,c.LINK),y=a["default"].createClass({displayName:"Button",propTypes:{active:a["default"].PropTypes.bool,disabled:a["default"].PropTypes.bool,block:a["default"].PropTypes.bool,navItem:a["default"].PropTypes.bool,navDropdown:a["default"].PropTypes.bool,componentClass:p["default"],href:a["default"].PropTypes.string,target:a["default"].PropTypes.string,type:a["default"].PropTypes.oneOf(h)},getDefaultProps:function(){return{active:!1,block:!1,disabled:!1,navItem:!1,navDropdown:!1}},render:function(){var e,t=this.props.navDropdown?{}:f["default"].getClassSet(this.props),r=void 0,o=f["default"].prefix(this.props,"block");return t=n((e={active:this.props.active},e[o]=this.props.block,e),t),this.props.navItem?this.renderNavItem(t):(r=this.props.href||this.props.target||this.props.navDropdown?"renderAnchor":"renderButton",this[r](t))},renderAnchor:function(e){var t=this.props.componentClass||"a",r=this.props.href||"#";return e.disabled=this.props.disabled,a["default"].createElement(t,n({},this.props,{href:r,className:l["default"](this.props.className,e),role:"button"}),this.props.children)},renderButton:function(e){var t=this.props.componentClass||"button";return a["default"].createElement(t,n({},this.props,{type:this.props.type||"button",className:l["default"](this.props.className,e)}),this.props.children)},renderNavItem:function(e){var t={active:this.props.active};return a["default"].createElement("li",{className:l["default"](t)},this.renderAnchor(e))}});y.types=h,t["default"]=d.bsStyles(v,c.DEFAULT,d.bsSizes([c.Sizes.LARGE,c.Sizes.SMALL,c.Sizes.XSMALL],d.bsClass("btn",y))),e.exports=t["default"]},function(e,t,r){e.exports={"default":r(168),__esModule:!0}},function(e,t){"use strict";e.exports=!("undefined"==typeof window||!window.document||!window.document.createElement)},function(e,t){function r(e){return!!e&&"object"==typeof e}e.exports=r},function(e,t,r){"use strict";var n=function(){};e.exports=n},function(e,t){"use strict";function r(e){return e&&e.ownerDocument||document}t.__esModule=!0,t["default"]=r,e.exports=t["default"]},function(e,t){function r(e){return"number"==typeof e&&e>-1&&e%1==0&&n>=e}var n=9007199254740991;e.exports=r},function(e,t,r){"use strict";function n(e,t){var r=t["offset"+T(e)],n=P[e];return r+parseInt(u["default"](t,n[0]),10)+parseInt(u["default"](t,n[1]),10)}var o=r(7)["default"],s=r(6)["default"],a=r(3)["default"],i=r(2)["default"];t.__esModule=!0;var l=r(33),u=i(l),p=r(1),d=i(p),f=r(4),c=i(f),h=r(109),v=i(h),y=r(29),m=i(y),b=r(11),g=i(b),T=function(e){return e[0].toUpperCase()+e.substr(1)},x=function(e){return e.offsetHeight},P={height:["marginTop","marginBottom"],width:["marginLeft","marginRight"]},E=function(e){function t(r,n){s(this,t),e.call(this,r,n),this.onEnterListener=this.handleEnter.bind(this),this.onEnteringListener=this.handleEntering.bind(this),this.onEnteredListener=this.handleEntered.bind(this),this.onExitListener=this.handleExit.bind(this),this.onExitingListener=this.handleExiting.bind(this)}return o(t,e),t.prototype.render=function(){var e=g["default"](this.onEnterListener,this.props.onEnter),t=g["default"](this.onEnteringListener,this.props.onEntering),r=g["default"](this.onEnteredListener,this.props.onEntered),n=g["default"](this.onExitListener,this.props.onExit),o=g["default"](this.onExitingListener,this.props.onExiting);return d["default"].createElement(v["default"],a({ref:"transition"},this.props,{"aria-expanded":this.props.role?this.props["in"]:null,className:c["default"](this.props.className,{width:"width"===this._dimension()}),exitedClassName:"collapse",exitingClassName:"collapsing",enteredClassName:"collapse in",enteringClassName:"collapsing",onEnter:e,onEntering:t,onEntered:r,onExit:n,onExiting:o,onExited:this.props.onExited}),this.props.children)},t.prototype.handleEnter=function(e){var t=this._dimension();e.style[t]="0"},t.prototype.handleEntering=function(e){var t=this._dimension();e.style[t]=this._getScrollDimensionValue(e,t)},t.prototype.handleEntered=function(e){var t=this._dimension();e.style[t]=null},t.prototype.handleExit=function(e){var t=this._dimension();e.style[t]=this.props.getDimensionValue(t,e)+"px"},t.prototype.handleExiting=function(e){var t=this._dimension();x(e),e.style[t]="0"},t.prototype._dimension=function(){return"function"==typeof this.props.dimension?this.props.dimension():this.props.dimension},t.prototype._getTransitionInstance=function(){return this.refs.transition},t.prototype._getScrollDimensionValue=function(e,t){return e["scroll"+T(t)]+"px"},t}(d["default"].Component);E.propTypes={"in":d["default"].PropTypes.bool,unmountOnExit:d["default"].PropTypes.bool,transitionAppear:d["default"].PropTypes.bool,timeout:d["default"].PropTypes.number,duration:m["default"](d["default"].PropTypes.number,"Use `timeout`."),onEnter:d["default"].PropTypes.func,onEntering:d["default"].PropTypes.func,onEntered:d["default"].PropTypes.func,onExit:d["default"].PropTypes.func,onExiting:d["default"].PropTypes.func,onExited:d["default"].PropTypes.func,dimension:d["default"].PropTypes.oneOfType([d["default"].PropTypes.oneOf(["height","width"]),d["default"].PropTypes.func]),getDimensionValue:d["default"].PropTypes.func,role:d["default"].PropTypes.string},E.defaultProps={"in":!1,timeout:300,unmountOnExit:!1,transitionAppear:!1,dimension:"height",getDimensionValue:n},t["default"]=E,e.exports=t["default"]},function(e,t){var r=e.exports={version:"1.2.6"};"number"==typeof __e&&(__e=r)},function(e,t,r){"use strict";var n=r(20),o=function(){var e=n&&document.documentElement;return e&&e.contains?function(e,t){return e.contains(t)}:e&&e.compareDocumentPosition?function(e,t){return e===t||!!(16&e.compareDocumentPosition(t))}:function(e,t){if(t)do if(t===e)return!0;while(t=t.parentNode);return!1}}();e.exports=o},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=r(12),s=n(o),a=r(23),i=n(a);t["default"]=function(e){return i["default"](s["default"].findDOMNode(e))},e.exports=t["default"]},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){return function(r,n,o){return null!=r[n]&&a["default"](!1,'"'+n+'" property of "'+o+'" has been deprecated.\n'+t),e(r,n,o)}}t.__esModule=!0,t["default"]=o;var s=r(22),a=n(s);e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(3)["default"],a=r(2)["default"];t.__esModule=!0;var i=r(4),l=a(i),u=r(83),p=a(u),d=r(27),f=a(d),c=r(47),h=a(c),v=r(198),y=a(v),m=r(54),b=a(m),g=r(1),T=a(g),x=r(12),P=a(x),E=r(37),C=a(E),_=r(13),N=a(_),S=r(58),O=a(S),w=r(115),k=a(w),M=r(5),I=a(M),D=r(59),A=a(D),R=r(127),L=a(R),j=r(61),K=a(j),B=r(11),F=a(B),H=r(162),U=a(H),W=r(9),z=a(W),$="toggle-btn",V=K["default"].defaultProps.bsRole,q=L["default"].defaultProps.bsRole,G=function(e){function t(r){o(this,t),e.call(this,r),this.Toggle=K["default"],this.toggleOpen=this.toggleOpen.bind(this),this.handleClick=this.handleClick.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleClose=this.handleClose.bind(this),this.extractChildren=this.extractChildren.bind(this),this.refineMenu=this.refineMenu.bind(this),this.refineToggle=this.refineToggle.bind(this),this.childExtractors=[{key:"toggle",matches:function(e){return e.props.bsRole===V},refine:this.refineToggle},{key:"menu",exclusive:!0,matches:function(e){return e.props.bsRole===q},refine:this.refineMenu}],this.state={},this.lastOpenEventType=null}return n(t,e),t.prototype.componentDidMount=function(){this.focusNextOnOpen()},t.prototype.componentWillUpdate=function(e){!e.open&&this.props.open&&(this._focusInDropdown=f["default"](P["default"].findDOMNode(this.refs.menu),p["default"](document)))},t.prototype.componentDidUpdate=function(e){this.props.open&&!e.open&&this.focusNextOnOpen(),!this.props.open&&e.open&&this._focusInDropdown&&(this._focusInDropdown=!1,this.focus())},t.prototype.render=function(){var e,t=this.extractChildren(),r=this.props.componentClass,n=b["default"](this.props,["id","bsClass","role"]),o=I["default"].prefix(this.props),a=(e={open:this.props.open,disabled:this.props.disabled},e[o]=!this.props.dropup,e.dropup=this.props.dropup,e);return T["default"].createElement(r,s({},n,{tabIndex:"-1",className:l["default"](this.props.className,a)}),t)},t.prototype.toggleOpen=function(){var e=arguments.length<=0||void 0===arguments[0]?null:arguments[0],t=!this.props.open;t&&(this.lastOpenEventType=e),this.props.onToggle&&this.props.onToggle(t)},t.prototype.handleClick=function(){this.props.disabled||this.toggleOpen("click")},t.prototype.handleKeyDown=function(e){if(!this.props.disabled)switch(e.keyCode){case h["default"].codes.down:this.props.open?this.refs.menu.focusNext&&this.refs.menu.focusNext():this.toggleOpen("keydown"),e.preventDefault();break;case h["default"].codes.esc:case h["default"].codes.tab:this.handleClose(e)}},t.prototype.handleClose=function(){this.props.open&&this.toggleOpen()},t.prototype.focusNextOnOpen=function(){var e=this.refs.menu;e.focusNext&&("keydown"===this.lastOpenEventType||"menuitem"===this.props.role)&&e.focusNext()},t.prototype.focus=function(){var e=P["default"].findDOMNode(this.refs[$]);e&&e.focus&&e.focus()},t.prototype.extractChildren=function(){var e=this,t=!!this.props.open,r={};return z["default"].map(this.props.children,function(n){var o=y["default"](e.childExtractors,function(e){return e.matches(n)});if(o){if(r[o.key])return!1;r[o.key]=o.exclusive,n=o.refine(n,t)}return n})},t.prototype.refineMenu=function(e,t){var r={ref:"menu",open:t,labelledBy:this.props.id,pullRight:this.props.pullRight,bsClass:this.props.bsClass};return r.onClose=F["default"](e.props.onClose,this.props.onClose,this.handleClose),r.onSelect=F["default"](e.props.onSelect,this.props.onSelect,this.handleClose),g.cloneElement(e,r,e.props.children)},t.prototype.refineToggle=function(e,t){var r={open:t,id:this.props.id,ref:$,role:this.props.role};return r.onClick=F["default"](e.props.onClick,this.handleClick),r.onKeyDown=F["default"](e.props.onKeyDown,this.handleKeyDown),g.cloneElement(e,r,e.props.children)},t}(T["default"].Component);G.Toggle=K["default"],G.TOGGLE_REF=$,G.TOGGLE_ROLE=V,G.MENU_ROLE=q,G.defaultProps={componentClass:A["default"],bsClass:"dropdown"},G.propTypes={bsClass:T["default"].PropTypes.string,dropup:T["default"].PropTypes.bool,id:O["default"](T["default"].PropTypes.oneOfType([T["default"].PropTypes.string,T["default"].PropTypes.number])),componentClass:N["default"],children:C["default"](U["default"].requiredRoles(V,q),U["default"].exclusiveRoles(q)),disabled:T["default"].PropTypes.bool,pullRight:T["default"].PropTypes.bool,open:T["default"].PropTypes.bool,onClose:T["default"].PropTypes.func,onToggle:T["default"].PropTypes.func,onSelect:T["default"].PropTypes.func,role:T["default"].PropTypes.string},G=k["default"](G,{open:"onToggle"}),G.Toggle=K["default"],G.Menu=L["default"],t["default"]=G,e.exports=t["default"]},function(e,t,r){"use strict";function n(e,t,r){var n=void 0;"object"==typeof e?n=e.message:(n=e+" is deprecated. Use "+t+" instead.",r&&(n+="\nYou can read more about it at "+r)),l[n]||(l[n]=!0)}var o=r(7)["default"],s=r(6)["default"],a=r(2)["default"];t.__esModule=!0;var i=r(22),l=(a(i),{});n.wrapper=function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),a=1;t>a;a++)r[a-1]=arguments[a];return function(e){function t(){s(this,t),e.apply(this,arguments)}return o(t,e),t.prototype.componentWillMount=function(){if(n.apply(void 0,r),e.prototype.componentWillMount){for(var t,o=arguments.length,s=Array(o),a=0;o>a;a++)s[a]=arguments[a];(t=e.prototype.componentWillMount).call.apply(t,[this].concat(s))}},t}(e)},t["default"]=n,e.exports=t["default"]},function(e,t){"use strict";e.exports=function(e){return e===e.window?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}},function(e,t,r){"use strict";var n=r(88),o=r(196),s=r(191),a=r(192),i=Object.prototype.hasOwnProperty;e.exports=function(e,t,r){var l="",u=t;if("string"==typeof t){if(void 0===r)return e.style[n(t)]||s(e).getPropertyValue(o(t));(u={})[t]=r}for(var p in u)i.call(u,p)&&(u[p]||0===u[p]?l+=o(p)+":"+u[p]+";":a(e,o(p)));e.style.cssText+=";"+l}},function(e,t,r){var n,o,s;!function(r,a){o=[t],n=a,s="function"==typeof n?n.apply(t,o):n,!(void 0!==s&&(e.exports=s))}(this,function(e){var t=e;t.interopRequireDefault=function(e){return e&&e.__esModule?e:{"default":e}},t._extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}})},function(e,t,r){function n(e,t){var r=null==e?void 0:e[t];return o(r)?r:void 0}var o=r(231);e.exports=n},function(e,t,r){var n=r(92),o=r(48),s=r(102),a=r(103),i=r(91),l=i(function(e,t){return null==e?{}:"function"==typeof t[0]?a(e,o(t[0],t[1],3)):s(e,n(t))});e.exports=l},function(e,t){"use strict";function r(){for(var e=arguments.length,t=Array(e),r=0;e>r;r++)t[r]=arguments[r];if(void 0===t)throw new Error("No validations provided");if(t.some(function(e){return"function"!=typeof e}))throw new Error("Invalid arguments, must be functions");if(0===t.length)throw new Error("No validations provided");return function(e,r,n){for(var o=0;o<t.length;o++){var s=t[o](e,r,n);if(void 0!==s&&null!==s)return s}}}t.__esModule=!0,t["default"]=r,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(3)["default"],a=r(2)["default"];t.__esModule=!0;var i=r(1),l=a(i),u=r(4),p=a(u),d=r(109),f=a(d),c=r(29),h=a(c),v=function(e){function t(){o(this,t),e.apply(this,arguments)}return n(t,e),t.prototype.render=function(){var e=this.props.timeout||this.props.duration;return l["default"].createElement(f["default"],s({},this.props,{timeout:e,className:p["default"](this.props.className,"fade"),enteredClassName:"in",enteringClassName:"in"}),this.props.children)},t}(l["default"].Component);v.propTypes={"in":l["default"].PropTypes.bool,unmountOnExit:l["default"].PropTypes.bool,transitionAppear:l["default"].PropTypes.bool,timeout:l["default"].PropTypes.number,duration:h["default"](l["default"].PropTypes.number,"Use `timeout`."),onEnter:l["default"].PropTypes.func,onEntering:l["default"].PropTypes.func,onEntered:l["default"].PropTypes.func,onExit:l["default"].PropTypes.func,onExiting:l["default"].PropTypes.func,onExited:l["default"].PropTypes.func},v.defaultProps={"in":!1,timeout:300,unmountOnExit:!1,transitionAppear:!1},t["default"]=v,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(4),l=o(i),u=a["default"].createClass({displayName:"Glyphicon",propTypes:{bsClass:a["default"].PropTypes.string,glyph:a["default"].PropTypes.string.isRequired,formControlFeedback:a["default"].PropTypes.bool},getDefaultProps:function(){return{bsClass:"glyphicon",formControlFeedback:!1}},render:function(){var e,t=l["default"](this.props.className,(e={},e[this.props.bsClass]=!0,e["glyphicon-"+this.props.glyph]=!0,e["form-control-feedback"]=this.props.formControlFeedback,e));return a["default"].createElement("span",n({},this.props,{className:t}),this.props.children)}});t["default"]=u,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(4),l=o(i),u=r(13),p=o(u),d=a["default"].createClass({displayName:"Grid",propTypes:{fluid:a["default"].PropTypes.bool,componentClass:p["default"]},getDefaultProps:function(){return{componentClass:"div",fluid:!1}},render:function(){var e=this.props.componentClass,t=this.props.fluid?"container-fluid":"container";return a["default"].createElement(e,n({},this.props,{className:l["default"](this.props.className,t)}),this.props.children)}});t["default"]=d,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(3)["default"],a=r(2)["default"];t.__esModule=!0;var i=r(4),l=a(i),u=r(1),p=a(u),d=r(63),f=a(d),c=r(39),h=a(c),v=function(e){function t(){o(this,t),e.apply(this,arguments)}return n(t,e),t.prototype.getInputDOMNode=function(){return this.refs.input},t.prototype.getValue=function(){if("static"===this.props.type)return this.props.value;if(this.props.type)return"select"===this.props.type&&this.props.multiple?this.getSelectedOptions():this.getInputDOMNode().value;throw new Error("Cannot use getValue without specifying input type.")},t.prototype.getChecked=function(){return this.getInputDOMNode().checked},t.prototype.getSelectedOptions=function(){var e=[];return Array.prototype.forEach.call(this.getInputDOMNode().getElementsByTagName("option"),function(t){if(t.selected){var r=t.getAttribute("value")||t.innerHtml;e.push(r)}}),e},t.prototype.isCheckboxOrRadio=function(){return"checkbox"===this.props.type||"radio"===this.props.type},t.prototype.isFile=function(){return"file"===this.props.type},t.prototype.renderInputGroup=function(e){var t=this.props.addonBefore?p["default"].createElement("span",{className:"input-group-addon",key:"addonBefore"},this.props.addonBefore):null,r=this.props.addonAfter?p["default"].createElement("span",{className:"input-group-addon",key:"addonAfter"},this.props.addonAfter):null,n=this.props.buttonBefore?p["default"].createElement("span",{className:"input-group-btn"},this.props.buttonBefore):null,o=this.props.buttonAfter?p["default"].createElement("span",{className:"input-group-btn"},this.props.buttonAfter):null,s=void 0;switch(this.props.bsSize){case"small":s="input-group-sm";break;case"large":s="input-group-lg"}return t||r||n||o?p["default"].createElement("div",{className:l["default"](s,"input-group"),key:"input-group"},t,n,e,r,o):e},t.prototype.renderIcon=function(){if(!this.props.hasFeedback)return null;if(this.props.feedbackIcon)return p["default"].cloneElement(this.props.feedbackIcon,{formControlFeedback:!0});switch(this.props.bsStyle){case"success":return p["default"].createElement(h["default"],{formControlFeedback:!0,glyph:"ok",key:"icon"});case"warning":return p["default"].createElement(h["default"],{formControlFeedback:!0,glyph:"warning-sign",key:"icon"});case"error":return p["default"].createElement(h["default"],{formControlFeedback:!0,glyph:"remove",key:"icon"});default:return p["default"].createElement("span",{className:"form-control-feedback",key:"icon"})}},t.prototype.renderHelp=function(){return this.props.help?p["default"].createElement("span",{className:"help-block",key:"help"},this.props.help):null},t.prototype.renderCheckboxAndRadioWrapper=function(e){var t={checkbox:"checkbox"===this.props.type,radio:"radio"===this.props.type};return p["default"].createElement("div",{className:l["default"](t),key:"checkboxRadioWrapper"},e)},t.prototype.renderWrapper=function(e){return this.props.wrapperClassName?p["default"].createElement("div",{className:this.props.wrapperClassName,key:"wrapper"},e):e},t.prototype.renderLabel=function(e){var t={"control-label":!this.isCheckboxOrRadio()};return t[this.props.labelClassName]=this.props.labelClassName,this.props.label?p["default"].createElement("label",{htmlFor:this.props.id,className:l["default"](t),key:"label"},e,this.props.label):e},t.prototype.renderInput=function(){if(!this.props.type)return this.props.children;switch(this.props.type){case"select":return p["default"].createElement("select",s({},this.props,{className:l["default"](this.props.className,"form-control"),ref:"input",key:"input"}),this.props.children);case"textarea":return p["default"].createElement("textarea",s({},this.props,{className:l["default"](this.props.className,"form-control"),ref:"input",key:"input"}));case"static":return p["default"].createElement("p",s({},this.props,{className:l["default"](this.props.className,"form-control-static"),ref:"input",key:"input"}),this.props.value);default:var e=this.isCheckboxOrRadio()||this.isFile()?"":"form-control";return p["default"].createElement("input",s({},this.props,{className:l["default"](this.props.className,e),ref:"input",key:"input"}))}},t.prototype.renderFormGroup=function(e){return p["default"].createElement(f["default"],this.props,e)},t.prototype.renderChildren=function(){return this.isCheckboxOrRadio()?this.renderWrapper([this.renderCheckboxAndRadioWrapper(this.renderLabel(this.renderInput())),this.renderHelp()]):[this.renderLabel(),this.renderWrapper([this.renderInputGroup(this.renderInput()),this.renderIcon(),this.renderHelp()])]},t.prototype.render=function(){var e=this.renderChildren();return this.renderFormGroup(e)},t}(p["default"].Component);v.propTypes={type:p["default"].PropTypes.string,label:p["default"].PropTypes.node,help:p["default"].PropTypes.node,addonBefore:p["default"].PropTypes.node,addonAfter:p["default"].PropTypes.node,buttonBefore:p["default"].PropTypes.node,buttonAfter:p["default"].PropTypes.node,bsSize:p["default"].PropTypes.oneOf(["small","medium","large"]),bsStyle:p["default"].PropTypes.oneOf(["success","warning","error"]),hasFeedback:p["default"].PropTypes.bool,feedbackIcon:p["default"].PropTypes.node,id:p["default"].PropTypes.oneOfType([p["default"].PropTypes.string,p["default"].PropTypes.number]),groupClassName:p["default"].PropTypes.string,wrapperClassName:p["default"].PropTypes.string,labelClassName:p["default"].PropTypes.string,multiple:p["default"].PropTypes.bool,disabled:p["default"].PropTypes.bool,value:p["default"].PropTypes.any},v.defaultProps={disabled:!1,hasFeedback:!1,multiple:!1},t["default"]=v,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(8)["default"],a=r(3)["default"],i=r(2)["default"];t.__esModule=!0;var l=r(1),u=i(l),p=r(4),d=i(p),f=r(5),c=i(f),h=function(e){function t(){o(this,t),e.apply(this,arguments)}return n(t,e),t.prototype.render=function(){var e=this.props,t=e.className,r=e.children,n=s(e,["className","children"]),o=this.context.$bs_navbar_bsClass,i=void 0===o?"navbar":o,l=c["default"].prefix({bsClass:i},"brand");return u["default"].isValidElement(r)?u["default"].cloneElement(r,{className:d["default"](r.props.className,t,l)}):u["default"].createElement("span",a({},n,{className:d["default"](t,l)}),r)},t}(u["default"].Component);h.contextTypes={$bs_navbar_bsClass:u["default"].PropTypes.string},t["default"]=h,e.exports=t["default"]},function(e,t,r){"use strict";function n(e,t,r){var n=l["default"]("children","value")(e,t,r);return n||(n=a["default"].PropTypes.node(e,t,r)),n}var o=r(2)["default"];t.__esModule=!0,t["default"]=n;var s=r(1),a=o(s),i=r(243),l=o(i);e.exports=t["default"]},function(e,t,r){var n=r(174),o=r(26),s=r(79),a="prototype",i=function(e,t,r){var l,u,p,d=e&i.F,f=e&i.G,c=e&i.S,h=e&i.P,v=e&i.B,y=e&i.W,m=f?o:o[t]||(o[t]={}),b=f?n:c?n[t]:(n[t]||{})[a];f&&(r=t);for(l in r)u=!d&&b&&l in b,u&&l in m||(p=u?b[l]:r[l],m[l]=f&&"function"!=typeof b[l]?r[l]:v&&u?s(p,n):y&&b[l]==p?function(e){var t=function(t){return this instanceof e?new e(t):e(t)};return t[a]=e[a],t}(p):h&&"function"==typeof p?s(Function.call,p):p,h&&((m[a]||(m[a]={}))[l]=p))};i.F=1,i.G=2,i.S=4,i.P=8,i.B=16,i.W=32,e.exports=i},function(e,t){var r=Object;e.exports={create:r.create,getProto:r.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:r.getOwnPropertyDescriptor,setDesc:r.defineProperty,setDescs:r.defineProperties,getKeys:r.keys,getNames:r.getOwnPropertyNames,getSymbols:r.getOwnPropertySymbols,each:[].forEach}},function(e,t,r){"use strict";var n=r(20),o=function(){};n&&(o=function(){return document.addEventListener?function(e,t,r,n){return e.addEventListener(t,r,n||!1)}:document.attachEvent?function(e,t,r){return e.attachEvent("on"+t,r)}:void 0}()),e.exports=o},function(e,t){t=e.exports=function(e){if(e&&"object"==typeof e){var t=e.which||e.keyCode||e.charCode;t&&(e=t)}if("number"==typeof e)return s[e];var o=String(e),a=r[o.toLowerCase()];if(a)return a;var a=n[o.toLowerCase()];return a?a:1===o.length?o.charCodeAt(0):void 0};var r=t.code=t.codes={backspace:8,tab:9,enter:13,shift:16,ctrl:17,alt:18,"pause/break":19,"caps lock":20,esc:27,space:32,"page up":33,"page down":34,end:35,home:36,left:37,up:38,right:39,down:40,insert:45,"delete":46,command:91,"right click":93,"numpad *":106,"numpad +":107,"numpad -":109,"numpad .":110,"numpad /":111,"num lock":144,"scroll lock":145,"my computer":182,"my calculator":183,";":186,"=":187,",":188,"-":189,".":190,"/":191,"`":192,"[":219,"\\":220,"]":221,"'":222},n=t.aliases={windows:91,"⇧":16,"⌥":18,"⌃":17,"⌘":91,ctl:17,control:17,option:18,pause:19,"break":19,caps:20,"return":13,escape:27,spc:32,pgup:33,pgdn:33,ins:45,del:46,cmd:91};/*! + * Programatically add the following + */ +for(o=97;123>o;o++)r[String.fromCharCode(o)]=o-32;for(var o=48;58>o;o++)r[o-48]=o;for(o=1;13>o;o++)r["f"+o]=o+111;for(o=0;10>o;o++)r["numpad "+o]=o+96;var s=t.names=t.title={};for(o in r)s[r[o]]=o;for(var a in n)r[a]=n[a]},function(e,t,r){function n(e,t,r){if("function"!=typeof e)return o;if(void 0===t)return e;switch(r){case 1:return function(r){return e.call(t,r)};case 3:return function(r,n,o){return e.call(t,r,n,o)};case 4:return function(r,n,o,s){return e.call(t,r,n,o,s)};case 5:return function(r,n,o,s,a){return e.call(t,r,n,o,s,a)}}return function(){return e.apply(t,arguments)}}var o=r(106);e.exports=n},function(e,t,r){function n(e){return null!=e&&s(o(e))}var o=r(97),s=r(24);e.exports=n},function(e,t,r){function n(e){return s(e)&&o(e)&&i.call(e,"callee")&&!l.call(e,"callee")}var o=r(49),s=r(21),a=Object.prototype,i=a.hasOwnProperty,l=a.propertyIsEnumerable;e.exports=n},function(e,t,r){function n(e){return"string"==typeof e||o(e)&&i.call(e)==s}var o=r(21),s="[object String]",a=Object.prototype,i=a.toString;e.exports=n},function(e,t,r){var n=r(35),o=r(49),s=r(17),a=r(230),i=r(55),l=n(Object,"keys"),u=l?function(e){var t=null==e?void 0:e.constructor;return"function"==typeof t&&t.prototype===e||("function"==typeof e?i.enumPrototypes:o(e))?a(e):s(e)?l(e):[]}:a;e.exports=u},function(e,t,r){function n(e){if(null==e)return[];p(e)||(e=Object(e));var t=e.length;t=t&&u(t)&&(a(e)||s(e)||d(e))&&t||0;for(var r=e.constructor,n=-1,o=i(r)&&r.prototype||C,c=o===e,h=Array(t),v=t>0,m=f.enumErrorProps&&(e===E||e instanceof Error),b=f.enumPrototypes&&i(e);++n<t;)h[n]=n+"";for(var T in e)b&&"prototype"==T||m&&("message"==T||"name"==T)||v&&l(T,t)||"constructor"==T&&(c||!N.call(e,T))||h.push(T);if(f.nonEnumShadows&&e!==C){var w=e===_?x:e===E?y:S.call(e),k=O[w]||O[g];for(w==g&&(o=C),t=P.length;t--;){T=P[t];var M=k[T];c&&M||(M?!N.call(e,T):e[T]===o[T])||h.push(T)}}return h}var o=r(200),s=r(50),a=r(16),i=r(105),l=r(99),u=r(24),p=r(17),d=r(51),f=r(55),c="[object Array]",h="[object Boolean]",v="[object Date]",y="[object Error]",m="[object Function]",b="[object Number]",g="[object Object]",T="[object RegExp]",x="[object String]",P=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],E=Error.prototype,C=Object.prototype,_=String.prototype,N=C.hasOwnProperty,S=C.toString,O={};O[c]=O[v]=O[b]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},O[h]=O[x]={constructor:!0,toString:!0,valueOf:!0},O[y]=O[m]=O[T]={constructor:!0,toString:!0},O[g]={constructor:!0},o(P,function(e){for(var t in O)if(N.call(O,t)){var r=O[t];r[e]=N.call(r,e)}}),e.exports=n},function(e,t,r){var n=r(201),o=r(205),s=r(92),a=r(48),i=r(53),l=r(102),u=r(103),p=r(91),d=p(function(e,t){if(null==e)return{};if("function"!=typeof t[0]){var t=n(s(t),String);return l(e,o(i(e),t))}var r=a(t[0],t[1],3);return u(e,function(e,t,n){return!r(e,t,n)})});e.exports=d},function(e,t){var r=Array.prototype,n=Error.prototype,o=Object.prototype,s=o.propertyIsEnumerable,a=r.splice,i={};!function(e){var t=function(){this.x=e},r={0:e,length:e},o=[];t.prototype={valueOf:e,y:e};for(var l in new t)o.push(l);i.enumErrorProps=s.call(n,"message")||s.call(n,"name"),i.enumPrototypes=s.call(t,"prototype"),i.nonEnumShadows=!/valueOf/.test(o),i.ownLast="x"!=o[0],i.spliceObjects=(a.call(r,0,1),!r[0]),i.unindexedChars="x"[0]+Object("x")[0]!="xx"}(1,0),e.exports=i},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){return e="function"==typeof e?e():e,a["default"].findDOMNode(e)||t}t.__esModule=!0,t["default"]=o;var s=r(12),a=n(s);e.exports=t["default"]},function(e,t,r){"use strict";function n(e,t,r){return"object"!=typeof e[t]||"function"!=typeof e[t].render&&1!==e[t].nodeType?new Error(o.errMsg(e,t,r,", expected a DOM element or an object that has a `render` method")):void 0}t.__esModule=!0;var o=r(112);t["default"]=o.createChainableTypeChecker(n),e.exports=t["default"]},function(e,t){"use strict";function r(e){return function(t,r,n){return null==t[r]?new Error("The prop '"+r+"' is required to make '"+n+"' accessible for users using assistive technologies such as screen readers"):e(t,r,n)}}t.__esModule=!0,t["default"]=r,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(4),l=o(i),u=r(5),p=o(u),d=r(37),f=o(d),c=r(18),h=o(c),v=a["default"].createClass({displayName:"ButtonGroup",propTypes:{vertical:a["default"].PropTypes.bool,justified:a["default"].PropTypes.bool,block:f["default"](a["default"].PropTypes.bool,function(e){return e.block&&!e.vertical?new Error("The block property requires the vertical property to be set to have any effect"):void 0})},getDefaultProps:function(){return{block:!1,justified:!1,vertical:!1}},render:function(){var e=p["default"].getClassSet(this.props);return e[p["default"].prefix(this.props)]=!this.props.vertical,e[p["default"].prefix(this.props,"vertical")]=this.props.vertical,e[p["default"].prefix(this.props,"justified")]=this.props.justified,e[p["default"].prefix(h["default"].defaultProps,"block")]=this.props.block,a["default"].createElement("div",n({},this.props,{className:l["default"](this.props.className,e)}),this.props.children)}});t["default"]=u.bsClass("btn-group",v),e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(19)["default"],s=r(2)["default"];t.__esModule=!0;var a=r(1),i=s(a),l=r(4),u=s(l),p=r(10),d=s(p),f=r(13),c=s(f),h=i["default"].createClass({displayName:"Col",propTypes:{xs:i["default"].PropTypes.number,sm:i["default"].PropTypes.number,md:i["default"].PropTypes.number,lg:i["default"].PropTypes.number,xsOffset:i["default"].PropTypes.number,smOffset:i["default"].PropTypes.number,mdOffset:i["default"].PropTypes.number,lgOffset:i["default"].PropTypes.number,xsPush:i["default"].PropTypes.number,smPush:i["default"].PropTypes.number,mdPush:i["default"].PropTypes.number,lgPush:i["default"].PropTypes.number,xsPull:i["default"].PropTypes.number,smPull:i["default"].PropTypes.number,mdPull:i["default"].PropTypes.number,lgPull:i["default"].PropTypes.number,componentClass:c["default"]},getDefaultProps:function(){return{componentClass:"div"}},render:function(){var e=this,t=this.props.componentClass,r={};return o(d["default"].SIZES).forEach(function(t){var n=d["default"].SIZES[t],o=n,s=n+"-";e.props[o]&&(r["col-"+s+e.props[o]]=!0),o=n+"Offset",s=n+"-offset-",e.props[o]>=0&&(r["col-"+s+e.props[o]]=!0),o=n+"Push",s=n+"-push-",e.props[o]>=0&&(r["col-"+s+e.props[o]]=!0),o=n+"Pull",s=n+"-pull-",e.props[o]>=0&&(r["col-"+s+e.props[o]]=!0)},this),i["default"].createElement(t,n({},this.props,{className:u["default"](this.props.className,r)}),this.props.children)}});t["default"]=h,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(3)["default"],a=r(2)["default"];t.__esModule=!0;var i=r(1),l=a(i),u=r(4),p=a(u),d=r(18),f=a(d),c=r(15),h=a(c),v=l["default"].createElement("span",null," ",l["default"].createElement("span",{className:"caret"})),y=function(e){function t(){o(this,t),e.apply(this,arguments)}return n(t,e),t.prototype.render=function(){var e=this.props.noCaret?null:v,t={"dropdown-toggle":!0},r=this.props.useAnchor?h["default"]:f["default"];return l["default"].createElement(r,s({},this.props,{className:p["default"](t,this.props.className),type:"button","aria-haspopup":!0,"aria-expanded":this.props.open}),this.props.children||this.props.title,e)},t}(l["default"].Component);t["default"]=y,y.defaultProps={open:!1,useAnchor:!1,bsRole:"toggle"},y.propTypes={bsRole:l["default"].PropTypes.string,noCaret:l["default"].PropTypes.bool,open:l["default"].PropTypes.bool,title:l["default"].PropTypes.string,useAnchor:l["default"].PropTypes.bool},y.isToggle=!0,y.titleProp="title",y.onClickProp="onClick",e.exports=t["default"]},function(e,t,r){"use strict";var n=r(2)["default"];t.__esModule=!0;var o=r(128),s=n(o);t.Static=s["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(2)["default"];t.__esModule=!0;var a=r(1),i=s(a),l=r(4),u=s(l),p=function(e){function t(){o(this,t),e.apply(this,arguments)}return n(t,e),t.prototype.render=function(){var e={"form-group":!this.props.standalone,"form-group-lg":!this.props.standalone&&"large"===this.props.bsSize,"form-group-sm":!this.props.standalone&&"small"===this.props.bsSize,"has-feedback":this.props.hasFeedback,"has-success":"success"===this.props.bsStyle,"has-warning":"warning"===this.props.bsStyle,"has-error":"error"===this.props.bsStyle};return i["default"].createElement("div",{className:u["default"](e,this.props.groupClassName)},this.props.children)},t}(i["default"].Component);p.defaultProps={hasFeedback:!1,standalone:!1},p.propTypes={standalone:i["default"].PropTypes.bool,hasFeedback:i["default"].PropTypes.bool,bsSize:function(e){return e.standalone&&void 0!==e.bsSize?new Error("bsSize will not be used when `standalone` is set."):i["default"].PropTypes.oneOf(["small","medium","large"]).apply(null,arguments)},bsStyle:i["default"].PropTypes.oneOf(["success","warning","error"]),groupClassName:i["default"].PropTypes.string},t["default"]=p,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(9),l=o(i),u=/\%\((.+?)\)s/,p=a["default"].createClass({displayName:"Interpolate",propTypes:{component:a["default"].PropTypes.node,format:a["default"].PropTypes.string,unsafe:a["default"].PropTypes.bool},getDefaultProps:function(){return{component:"span",unsafe:!1}},render:function(){var e=l["default"].hasValidComponent(this.props.children)||"string"==typeof this.props.children?this.props.children:this.props.format,t=this.props.component,r=this.props.unsafe===!0,o=n({},this.props);if(delete o.children,delete o.format,delete o.component,delete o.unsafe,r){var s=e.split(u).reduce(function(e,t,r){var n=void 0;if(r%2===0?n=t:(n=o[t],delete o[t]),a["default"].isValidElement(n))throw new Error("cannot interpolate a React component into unsafe text");return e+=n},"");return o.dangerouslySetInnerHTML={__html:s},a["default"].createElement(t,o)}var i=e.split(u).reduce(function(e,t,r){var n=void 0;if(r%2===0){if(0===t.length)return e;n=t}else n=o[t],delete o[t];return e.push(n),e},[]);return a["default"].createElement(t,o,i)}});t["default"]=p,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(3)["default"],a=r(2)["default"];t.__esModule=!0;var i=r(1),l=a(i),u=r(5),p=a(u),d=r(10),f=r(4),c=a(f),h=function(e){function t(){o(this,t),e.apply(this,arguments)}return n(t,e),t.prototype.render=function(){var e=p["default"].getClassSet(this.props);return e.active=this.props.active,e.disabled=this.props.disabled,this.props.href?this.renderAnchor(e):this.props.onClick?this.renderButton(e):this.props.listItem?this.renderLi(e):this.renderSpan(e)},t.prototype.renderLi=function(e){return l["default"].createElement("li",s({},this.props,{className:c["default"](this.props.className,e)}),this.props.header?this.renderStructuredContent():this.props.children)},t.prototype.renderAnchor=function(e){return l["default"].createElement("a",s({},this.props,{className:c["default"](this.props.className,e)}),this.props.header?this.renderStructuredContent():this.props.children)},t.prototype.renderButton=function(e){return l["default"].createElement("button",s({type:"button"},this.props,{className:c["default"](this.props.className,e)}),this.props.header?this.renderStructuredContent():this.props.children)},t.prototype.renderSpan=function(e){return l["default"].createElement("span",s({},this.props,{className:c["default"](this.props.className,e)}),this.props.header?this.renderStructuredContent():this.props.children)},t.prototype.renderStructuredContent=function(){var e=void 0,t=p["default"].prefix(this.props,"heading");e=l["default"].isValidElement(this.props.header)?i.cloneElement(this.props.header,{key:"header",className:c["default"](this.props.header.props.className,t)}):l["default"].createElement("h4",{key:"header",className:t},this.props.header);var r=l["default"].createElement("p",{key:"content",className:p["default"].prefix(this.props,"text")},this.props.children);return[e,r]},t}(l["default"].Component);h.propTypes={className:l["default"].PropTypes.string,active:l["default"].PropTypes.any,disabled:l["default"].PropTypes.any,header:l["default"].PropTypes.node,listItem:l["default"].PropTypes.bool,onClick:l["default"].PropTypes.func,eventKey:l["default"].PropTypes.any,href:l["default"].PropTypes.string,target:l["default"].PropTypes.string},h.defaultTypes={listItem:!1},t["default"]=u.bsStyles(d.State.values(),u.bsClass("list-group-item",h)),e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(3)["default"],a=r(2)["default"];t.__esModule=!0;var i=r(1),l=a(i),u=r(4),p=a(u),d=r(5),f=a(d),c=function(e){function t(){o(this,t),e.apply(this,arguments)}return n(t,e),t.prototype.render=function(){return l["default"].createElement("div",s({},this.props,{className:p["default"](this.props.className,f["default"].prefix(this.props,"body"))}),this.props.children)},t}(l["default"].Component);t["default"]=d.bsClass("modal",c),e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(3)["default"],a=r(2)["default"];t.__esModule=!0;var i=r(1),l=a(i),u=r(4),p=a(u),d=r(5),f=a(d),c=function(e){function t(){o(this,t),e.apply(this,arguments)}return n(t,e),t.prototype.render=function(){return l["default"].createElement("div",s({},this.props,{className:p["default"](this.props.className,f["default"].prefix(this.props,"footer"))}),this.props.children)},t}(l["default"].Component);c.propTypes={bsClass:l["default"].PropTypes.string},c.defaultProps={bsClass:"modal"},t["default"]=d.bsClass("modal",c),e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(8)["default"],a=r(3)["default"],i=r(2)["default"];t.__esModule=!0;var l=r(1),u=i(l),p=r(4),d=i(p),f=r(5),c=i(f),h=r(11),v=i(h),y=function(e){function t(){o(this,t),e.apply(this,arguments)}return n(t,e),t.prototype.render=function(){var e=this.props,t=e["aria-label"],r=(s(e,["aria-label"]),v["default"](this.context.$bs_onModalHide,this.props.onHide));return u["default"].createElement("div",a({},this.props,{className:d["default"](this.props.className,c["default"].prefix(this.props,"header"))}),this.props.closeButton&&u["default"].createElement("button",{type:"button",className:"close","aria-label":t,onClick:r},u["default"].createElement("span",{"aria-hidden":"true"},"×")),this.props.children)},t}(u["default"].Component);y.propTypes={"aria-label":u["default"].PropTypes.string,bsClass:u["default"].PropTypes.string,closeButton:u["default"].PropTypes.bool,onHide:u["default"].PropTypes.func},y.contextTypes={$bs_onModalHide:u["default"].PropTypes.func},y.defaultProps={"aria-label":"Close",closeButton:!1},t["default"]=f.bsClass("modal",y),e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(3)["default"],a=r(2)["default"];t.__esModule=!0;var i=r(1),l=a(i),u=r(4),p=a(u),d=r(5),f=a(d),c=function(e){function t(){o(this,t),e.apply(this,arguments)}return n(t,e),t.prototype.render=function(){return l["default"].createElement("h4",s({},this.props,{className:p["default"](this.props.className,f["default"].prefix(this.props,"title"))}),this.props.children)},t}(l["default"].Component);t["default"]=d.bsClass("modal",c),e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(3)["default"],a=r(2)["default"];t.__esModule=!0;var i=r(1),l=a(i),u=r(4),p=a(u),d=r(37),f=a(d),c=r(29),h=a(c),v=r(5),y=a(v),m=r(9),b=a(m),g=r(11),T=a(g),x=r(25),P=a(x),E=function(e){function t(){o(this,t),e.apply(this,arguments)}return n(t,e),t.prototype.render=function(){var e=this.props,t=e.className,r=e.ulClassName,n=e.id,o=e.ulId,a=null!=this.props.navbar?this.props.navbar:this.context.$bs_navbar,i=y["default"].getClassSet(this.props);if(i[y["default"].prefix(this.props,"stacked")]=this.props.stacked,i[y["default"].prefix(this.props,"justified")]=this.props.justified,a){var u=this.context.$bs_navbar_bsClass||"navbar",d=null!=this.props.right?this.props.right:this.props.pullRight;i[y["default"].prefix({bsClass:u},"nav")]=!0,i[y["default"].prefix({bsClass:u},"right")]=d,i[y["default"].prefix({bsClass:u},"left")]=this.props.pullLeft}else i["pull-right"]=this.props.pullRight,i["pull-left"]=this.props.pullLeft;var f=l["default"].createElement("ul",s({ref:"ul"},this.props,{id:o||n,role:"tabs"===this.props.bsStyle?"tablist":null,className:p["default"](t,r,i)}),b["default"].map(this.props.children,this.renderNavItem,this));return this.context.$bs_deprecated_navbar&&this.props.collapsible&&(f=l["default"].createElement(P["default"],{"in":this.props.expanded,className:a?"navbar-collapse":void 0},l["default"].createElement("div",null,f))),f},t.prototype.getChildActiveProp=function(e){return e.props.active?!0:null!=this.props.activeKey&&e.props.eventKey===this.props.activeKey?!0:null!=this.props.activeHref&&e.props.href===this.props.activeHref?!0:e.props.active},t.prototype.renderNavItem=function(e,t){return i.cloneElement(e,{role:"tabs"===this.props.bsStyle?"tab":null,active:this.getChildActiveProp(e),activeKey:this.props.activeKey,activeHref:this.props.activeHref,onSelect:T["default"](e.props.onSelect,this.props.onSelect),key:e.key?e.key:t,navItem:!0})},t}(l["default"].Component);E.propTypes={activeHref:l["default"].PropTypes.string,activeKey:l["default"].PropTypes.any,stacked:l["default"].PropTypes.bool,justified:f["default"](l["default"].PropTypes.bool,function(e){var t=e.justified,r=e.navbar;return t&&r?Error("justified navbar `Nav`s are not supported"):null}),onSelect:l["default"].PropTypes.func,className:l["default"].PropTypes.string,id:l["default"].PropTypes.oneOfType([l["default"].PropTypes.string,l["default"].PropTypes.number]),ulClassName:h["default"](l["default"].PropTypes.string,"The wrapping `<nav>` has been removed you can use `className` now"),ulId:h["default"](l["default"].PropTypes.string,"The wrapping `<nav>` has been removed you can use `id` now"),navbar:l["default"].PropTypes.bool,eventKey:l["default"].PropTypes.any,pullRight:l["default"].PropTypes.bool,pullLeft:l["default"].PropTypes.bool,right:h["default"](l["default"].PropTypes.bool,"Use the `pullRight` prop instead"),expanded:l["default"].PropTypes.bool,collapsible:h["default"](l["default"].PropTypes.bool,"Use `Navbar.Collapse` instead, to create collapsible Navbars")},E.contextTypes={$bs_navbar:l["default"].PropTypes.bool,$bs_navbar_bsClass:l["default"].PropTypes.string,$bs_deprecated_navbar:l["default"].PropTypes.bool},E.defaultProps={justified:!1,pullRight:!1,pullLeft:!1,stacked:!1},t["default"]=v.bsClass("nav",v.bsStyles(["tabs","pills"],E)),e.exports=t["default"]},function(e,t,r){"use strict";var n=r(2)["default"];t.__esModule=!0;var o=r(42),s=n(o),a=r(31),i=n(a);t["default"]=i["default"].wrapper(s["default"],{message:"The `NavBrand` component has been renamed to: `NavbarBrand`. Please use that component instead; this alias will be removed in an upcoming release"}),e.exports=t["default"]},function(e,t,r){"use strict";var n=r(8)["default"],o=r(3)["default"],s=r(2)["default"];t.__esModule=!0;var a=r(1),i=s(a),l=r(4),u=s(l),p=r(15),d=s(p),f=r(11),c=s(f),h=i["default"].createClass({displayName:"NavItem",propTypes:{linkId:i["default"].PropTypes.string,onSelect:i["default"].PropTypes.func,active:i["default"].PropTypes.bool,disabled:i["default"].PropTypes.bool,href:i["default"].PropTypes.string,onClick:i["default"].PropTypes.func,role:i["default"].PropTypes.string,title:i["default"].PropTypes.node,eventKey:i["default"].PropTypes.any,target:i["default"].PropTypes.string,"aria-controls":i["default"].PropTypes.string},getDefaultProps:function(){return{active:!1,disabled:!1}},render:function(){var e=this.props,t=e.role,r=e.linkId,s=e.disabled,a=e.active,l=e.href,p=e.onClick,f=e.title,h=e.target,v=e.children,y=e.tabIndex,m=e["aria-controls"],b=n(e,["role","linkId","disabled","active","href","onClick","title","target","children","tabIndex","aria-controls"]),g={active:a,disabled:s},T={role:t,href:l,onClick:c["default"](p,this.handleClick),title:f,target:h,tabIndex:y,id:r};return t||"#"!==l?"tab"===t&&(T["aria-selected"]=a):T.role="button",i["default"].createElement("li",o({},b,{role:"presentation",className:u["default"](b.className,g)}),i["default"].createElement(d["default"],o({},T,{"aria-controls":m}),v))},handleClick:function(e){this.props.onSelect&&(e.preventDefault(),this.props.disabled||this.props.onSelect(this.props.eventKey,this.props.href,this.props.target))}});t["default"]=h,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(3)["default"],a=r(8)["default"],i=r(2)["default"];t.__esModule=!0;var l=r(1),u=i(l),p=r(237),d=i(p),f=r(13),c=i(f),h=r(38),v=i(h),y=r(4),m=i(y),b=function(e){function t(){o(this,t),e.apply(this,arguments)}return n(t,e),t.prototype.render=function(){var e=this.props,t=e.children,r=e.animation,n=a(e,["children","animation"]);return r===!0&&(r=v["default"]),r===!1&&(r=null),r||(t=l.cloneElement(t,{className:m["default"]("in",t.props.className)})),u["default"].createElement(d["default"],s({},n,{transition:r}),t)},t}(u["default"].Component);b.propTypes=s({},d["default"].propTypes,{show:u["default"].PropTypes.bool,rootClose:u["default"].PropTypes.bool,onHide:u["default"].PropTypes.func,animation:u["default"].PropTypes.oneOfType([u["default"].PropTypes.bool,c["default"]]),onEnter:u["default"].PropTypes.func,onEntering:u["default"].PropTypes.func,onEntered:u["default"].PropTypes.func,onExit:u["default"].PropTypes.func,onExiting:u["default"].PropTypes.func,onExited:u["default"].PropTypes.func}),b.defaultProps={animation:v["default"],rootClose:!1,show:!1},t["default"]=b,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(8)["default"],o=r(3)["default"],s=r(2)["default"];t.__esModule=!0;var a=r(1),i=s(a),l=r(4),u=s(l),p=r(5),d=s(p),f=r(9),c=s(f),h=i["default"].createClass({displayName:"PanelGroup",propTypes:{accordion:i["default"].PropTypes.bool,activeKey:i["default"].PropTypes.any,className:i["default"].PropTypes.string,children:i["default"].PropTypes.node,defaultActiveKey:i["default"].PropTypes.any,onSelect:i["default"].PropTypes.func},getDefaultProps:function(){return{accordion:!1}},getInitialState:function(){var e=this.props.defaultActiveKey;return{activeKey:e}},render:function(){var e=d["default"].getClassSet(this.props),t=this.props,r=t.className,s=n(t,["className"]);return this.props.accordion&&(s.role="tablist"),i["default"].createElement("div",o({},s,{className:u["default"](r,e),onSelect:null}),c["default"].map(s.children,this.renderPanel))},renderPanel:function(e,t){var r=null!=this.props.activeKey?this.props.activeKey:this.state.activeKey,n={bsStyle:e.props.bsStyle||this.props.bsStyle,key:e.key?e.key:t,ref:e.ref};return this.props.accordion&&(n.headerRole="tab",n.panelRole="tabpanel",n.collapsible=!0,n.expanded=e.props.eventKey===r,n.onSelect=this.handleSelect),a.cloneElement(e,n)},shouldComponentUpdate:function(){return!this._isChanging},handleSelect:function(e,t){e.preventDefault(),this.props.onSelect&&(this._isChanging=!0,this.props.onSelect(t),this._isChanging=!1),this.state.activeKey===t&&(t=null),this.setState({activeKey:t})}});t["default"]=p.bsClass("panel-group",h),e.exports=t["default"]},function(e,t){"use strict";function r(){var e=document.createElement("div"),t=e.style;"AnimationEvent"in window||delete a.animationend.animation,"TransitionEvent"in window||delete a.transitionend.transition;for(var r in a){var n=a[r];for(var o in n)if(o in t){i.push(n[o]);break}}}function n(e,t,r){e.addEventListener(t,r,!1)}function o(e,t,r){e.removeEventListener(t,r,!1)}t.__esModule=!0;var s=!("undefined"==typeof window||!window.document||!window.document.createElement),a={transitionend:{transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"mozTransitionEnd",OTransition:"oTransitionEnd",msTransition:"MSTransitionEnd"},animationend:{animation:"animationend",WebkitAnimation:"webkitAnimationEnd",MozAnimation:"mozAnimationEnd",OAnimation:"oAnimationEnd",msAnimation:"MSAnimationEnd"}},i=[];s&&r();var l={addEndEventListener:function(e,t){return 0===i.length?void window.setTimeout(t,0):void i.forEach(function(r){n(e,r,t)})},removeEndEventListener:function(e,t){0!==i.length&&i.forEach(function(r){o(e,r,t)})}};t["default"]=l,e.exports=t["default"]},function(e,t,r){e.exports={"default":r(166),__esModule:!0}},function(e,t,r){e.exports={"default":r(167),__esModule:!0}},function(e,t){"use strict";t["default"]=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t},t.__esModule=!0},function(e,t,r){var n=r(170);e.exports=function(e,t,r){if(n(e),void 0===t)return e;switch(r){case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,o){return e.call(t,r,n,o)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,r){var n=r(173);e.exports=function(e){return Object(n(e))}},function(e,t,r){"use strict";function n(){var e=void 0===arguments[0]?document:arguments[0];try{return e.activeElement}catch(t){}}var o=r(34);t.__esModule=!0,t["default"]=n;var s=r(23);o.interopRequireDefault(s);e.exports=t["default"]},function(e,t){"use strict";e.exports=function(e,t){return e.classList?!!t&&e.classList.contains(t):-1!==(" "+e.className+" ").indexOf(" "+t+" ")}},function(e,t,r){"use strict";var n=r(20),o=function(){};n&&(o=function(){return document.addEventListener?function(e,t,r,n){return e.removeEventListener(t,r,n||!1)}:document.attachEvent?function(e,t,r){return e.detachEvent("on"+t,r)}:void 0}()),e.exports=o},function(e,t,r){"use strict";var n=r(27),o=r(32),s=r(23);e.exports=function(e){var t=s(e),r=o(t),a=t&&t.documentElement,i={top:0,left:0,height:0,width:0};if(t)return n(a,e)?(void 0!==e.getBoundingClientRect&&(i=e.getBoundingClientRect()),(i.width||i.height)&&(i={top:i.top+(r.pageYOffset||a.scrollTop)-(a.clientTop||0),left:i.left+(r.pageXOffset||a.scrollLeft)-(a.clientLeft||0),width:(null==i.width?e.offsetWidth:i.width)||0,height:(null==i.height?e.offsetHeight:i.height)||0}),i):i}},function(e,t,r){"use strict";var n=r(32);e.exports=function(e,t){var r=n(e);return void 0===t?r?"pageYOffset"in r?r.pageYOffset:r.document.documentElement.scrollTop:e.scrollTop:void(r?r.scrollTo("pageXOffset"in r?r.pageXOffset:r.document.documentElement.scrollLeft,t):e.scrollTop=t)}},function(e,t,r){"use strict";var n=r(194),o=/^-ms-/;e.exports=function(e){return n(e.replace(o,"ms-"))}},function(e,t,r){"use strict";var n,o=r(20);e.exports=function(e){if((!n||e)&&o){var t=document.createElement("div");t.style.position="absolute",t.style.top="-9999px",t.style.width="50px",t.style.height="50px",t.style.overflow="scroll",document.body.appendChild(t),n=t.offsetWidth-t.clientWidth,document.body.removeChild(t)}return n}},function(e,t,r){"use strict";var n=function(e,t,r,n,o,s,a,i){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[r,n,o,s,a,i],p=0;l=new Error("Invariant Violation: "+t.replace(/%s/g,function(){return u[p++]}))}throw l.framesToPop=1,l}};e.exports=n},function(e,t){function r(e,t){if("function"!=typeof e)throw new TypeError(n);return t=o(void 0===t?e.length-1:+t||0,0),function(){for(var r=arguments,n=-1,s=o(r.length-t,0),a=Array(s);++n<s;)a[n]=r[t+n];switch(t){case 0:return e.call(this,a);case 1:return e.call(this,r[0],a);case 2:return e.call(this,r[0],r[1],a)}var i=Array(t+1);for(n=-1;++n<t;)i[n]=r[n];return i[t]=a,e.apply(this,i)}}var n="Expected a function",o=Math.max;e.exports=r},function(e,t,r){function n(e,t,r,u){u||(u=[]);for(var p=-1,d=e.length;++p<d;){var f=e[p];l(f)&&i(f)&&(r||a(f)||s(f))?t?n(f,t,r,u):o(u,f):r||(u[u.length]=f)}return u}var o=r(202),s=r(50),a=r(16),i=r(49),l=r(21);e.exports=n},function(e,t,r){var n=r(222),o=n();e.exports=o},function(e,t,r){function n(e,t,r){if(null!=e){e=o(e),void 0!==r&&r in e&&(t=[r]);for(var n=0,s=t.length;null!=e&&s>n;)e=o(e)[t[n++]];return n&&n==s?e:void 0}}var o=r(14);e.exports=n},function(e,t,r){function n(e,t,r,i,l,u){return e===t?!0:null==e||null==t||!s(e)&&!a(t)?e!==e&&t!==t:o(e,t,n,r,i,l,u)}var o=r(212),s=r(17),a=r(21);e.exports=n},function(e,t,r){function n(e){return function(t){return null==t?void 0:o(t)[e]}}var o=r(14);e.exports=n},function(e,t,r){var n=r(96),o=n("length");e.exports=o},function(e,t){var r=function(){try{Object({toString:0}+"")}catch(e){return function(){return!1}}return function(e){return"function"!=typeof e.toString&&"string"==typeof(e+"")}}();e.exports=r},function(e,t){function r(e,t){return e="number"==typeof e||n.test(e)?+e:-1,t=null==t?o:t,e>-1&&e%1==0&&t>e}var n=/^\d+$/,o=9007199254740991;e.exports=r},function(e,t,r){function n(e,t){var r=typeof e;if("string"==r&&i.test(e)||"number"==r)return!0;if(o(e))return!1;var n=!a.test(e);return n||null!=t&&e in s(t)}var o=r(16),s=r(14),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,i=/^\w*$/;e.exports=n},function(e,t,r){function n(e){return e===e&&!o(e)}var o=r(17);e.exports=n},function(e,t,r){function n(e,t){e=o(e);for(var r=-1,n=t.length,s={};++r<n;){var a=t[r];a in e&&(s[a]=e[a])}return s}var o=r(14);e.exports=n},function(e,t,r){function n(e,t){var r={};return o(e,function(e,n,o){t(e,n,o)&&(r[n]=e)}),r}var o=r(209);e.exports=n},function(e,t,r){function n(e){if(s(e))return e;var t=[];return o(e).replace(a,function(e,r,n,o){t.push(n?o.replace(i,"$1"):r||e)}),t}var o=r(218),s=r(16),a=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,i=/\\(\\)?/g;e.exports=n},function(e,t,r){function n(e){return o(e)&&i.call(e)==s}var o=r(17),s="[object Function]",a=Object.prototype,i=a.toString;e.exports=n},function(e,t){function r(e){return e}e.exports=r},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=r(1),s=n(o),a=r(12),i=n(a),l=r(57),u=n(l),p=r(28),d=n(p),f=r(56),c=n(f),h=s["default"].createClass({displayName:"Portal",propTypes:{container:s["default"].PropTypes.oneOfType([u["default"],s["default"].PropTypes.func])},componentDidMount:function(){this._renderOverlay()},componentDidUpdate:function(){this._renderOverlay()},componentWillUnmount:function(){this._unrenderOverlay(),this._unmountOverlayTarget()},_mountOverlayTarget:function(){this._overlayTarget||(this._overlayTarget=document.createElement("div"),this.getContainerDOMNode().appendChild(this._overlayTarget))},_unmountOverlayTarget:function(){this._overlayTarget&&(this.getContainerDOMNode().removeChild(this._overlayTarget),this._overlayTarget=null)},_renderOverlay:function(){var e=this.props.children?s["default"].Children.only(this.props.children):null;null!==e?(this._mountOverlayTarget(),this._overlayInstance=i["default"].unstable_renderSubtreeIntoContainer(this,e,this._overlayTarget)):(this._unrenderOverlay(),this._unmountOverlayTarget())},_unrenderOverlay:function(){this._overlayTarget&&(i["default"].unmountComponentAtNode(this._overlayTarget),this._overlayInstance=null)},render:function(){return null},getMountNode:function(){return this._overlayTarget},getOverlayDOMNode:function(){if(!this.isMounted())throw new Error("getOverlayDOMNode(): A component must be mounted to have a DOM node.");return this._overlayInstance?this._overlayInstance.getWrappedDOMNode?this._overlayInstance.getWrappedDOMNode():i["default"].findDOMNode(this._overlayInstance):null},getContainerDOMNode:function(){return c["default"](this.props.container,d["default"](this).body)}});t["default"]=h,e.exports=t["default"]; +},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}function a(){var e=m+"_"+b++;return{id:e,suppressRootClose:function(t){t.nativeEvent[e]=!0}}}t.__esModule=!0;var i=r(1),l=n(i),u=r(12),p=n(u),d=r(110),f=n(d),c=r(240),h=n(c),v=r(28),y=n(v),m="__click_was_inside",b=0,g=function(e){function t(r){o(this,t),e.call(this,r),this.handleDocumentClick=this.handleDocumentClick.bind(this),this.handleDocumentKeyUp=this.handleDocumentKeyUp.bind(this);var n=a(),s=n.id,i=n.suppressRootClose;this._suppressRootId=s,this._suppressRootCloseHandler=i}return s(t,e),t.prototype.bindRootCloseHandlers=function(){var e=y["default"](this);this._onDocumentClickListener=f["default"](e,"click",this.handleDocumentClick),this._onDocumentKeyupListener=f["default"](e,"keyup",this.handleDocumentKeyUp)},t.prototype.handleDocumentClick=function(e){e[this._suppressRootId]||this.props.onRootClose()},t.prototype.handleDocumentKeyUp=function(e){27===e.keyCode&&this.props.onRootClose()},t.prototype.unbindRootCloseHandlers=function(){this._onDocumentClickListener&&this._onDocumentClickListener.remove(),this._onDocumentKeyupListener&&this._onDocumentKeyupListener.remove()},t.prototype.componentDidMount=function(){this.bindRootCloseHandlers()},t.prototype.render=function(){var e=this.props,t=e.noWrap,r=e.children,n=l["default"].Children.only(r);return t?l["default"].cloneElement(n,{onClick:h["default"](this._suppressRootCloseHandler,n.props.onClick)}):l["default"].createElement("div",{onClick:this._suppressRootCloseHandler},n)},t.prototype.getWrappedDOMNode=function(){var e=p["default"].findDOMNode(this);return this.props.noWrap?e:e.firstChild},t.prototype.componentWillUnmount=function(){this.unbindRootCloseHandlers()},t}(l["default"].Component);t["default"]=g,g.displayName="RootCloseWrapper",g.propTypes={onRootClose:l["default"].PropTypes.func.isRequired,noWrap:l["default"].PropTypes.bool},e.exports=t["default"]},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}function i(){}t.__esModule=!0;var l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},u=r(1),p=n(u),d=r(12),f=n(d),c=r(193),h=n(c),v=r(46),y=n(v),m=r(4),b=n(m),g=h["default"].end,T=0;t.UNMOUNTED=T;var x=1;t.EXITED=x;var P=2;t.ENTERING=P;var E=3;t.ENTERED=E;var C=4;t.EXITING=C;var _=function(e){function t(r,n){s(this,t),e.call(this,r,n);var o=void 0;o=r["in"]?r.transitionAppear?x:E:r.unmountOnExit?T:x,this.state={status:o},this.nextCallback=null}return a(t,e),t.prototype.componentDidMount=function(){this.props.transitionAppear&&this.props["in"]&&this.performEnter(this.props)},t.prototype.componentWillReceiveProps=function(e){var t=this.state.status;e["in"]?t===C?this.performEnter(e):this.props.unmountOnExit?t===T&&this.setState({status:x}):t===x&&this.performEnter(e):(t===P||t===E)&&this.performExit(e)},t.prototype.componentDidUpdate=function(){this.props.unmountOnExit&&this.state.status===x&&(this.props["in"]?this.performEnter(this.props):this.setState({status:T}))},t.prototype.componentWillUnmount=function(){this.cancelNextCallback()},t.prototype.performEnter=function(e){var t=this;this.cancelNextCallback();var r=f["default"].findDOMNode(this);e.onEnter(r),this.safeSetState({status:P},function(){t.props.onEntering(r),t.onTransitionEnd(r,function(){t.safeSetState({status:E},function(){t.props.onEntered(r)})})})},t.prototype.performExit=function(e){var t=this;this.cancelNextCallback();var r=f["default"].findDOMNode(this);e.onExit(r),this.safeSetState({status:C},function(){t.props.onExiting(r),t.onTransitionEnd(r,function(){t.safeSetState({status:x},function(){t.props.onExited(r)})})})},t.prototype.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},t.prototype.safeSetState=function(e,t){this.setState(e,this.setNextCallback(t))},t.prototype.setNextCallback=function(e){var t=this,r=!0;return this.nextCallback=function(n){r&&(r=!1,t.nextCallback=null,e(n))},this.nextCallback.cancel=function(){r=!1},this.nextCallback},t.prototype.onTransitionEnd=function(e,t){this.setNextCallback(t),e?(y["default"](e,g,this.nextCallback),setTimeout(this.nextCallback,this.props.timeout)):setTimeout(this.nextCallback,0)},t.prototype.render=function(){var e=this.state.status;if(e===T)return null;var r=this.props,n=r.children,s=r.className,a=o(r,["children","className"]);Object.keys(t.propTypes).forEach(function(e){return delete a[e]});var i=void 0;e===x?i=this.props.exitedClassName:e===P?i=this.props.enteringClassName:e===E?i=this.props.enteredClassName:e===C&&(i=this.props.exitingClassName);var u=p["default"].Children.only(n);return p["default"].cloneElement(u,l({},a,{className:b["default"](u.props.className,s,i)}))},t}(p["default"].Component);_.propTypes={"in":p["default"].PropTypes.bool,unmountOnExit:p["default"].PropTypes.bool,transitionAppear:p["default"].PropTypes.bool,timeout:p["default"].PropTypes.number,exitedClassName:p["default"].PropTypes.string,exitingClassName:p["default"].PropTypes.string,enteredClassName:p["default"].PropTypes.string,enteringClassName:p["default"].PropTypes.string,onEnter:p["default"].PropTypes.func,onEntering:p["default"].PropTypes.func,onEntered:p["default"].PropTypes.func,onExit:p["default"].PropTypes.func,onExiting:p["default"].PropTypes.func,onExited:p["default"].PropTypes.func},_.displayName="Transition",_.defaultProps={"in":!1,unmountOnExit:!1,transitionAppear:!1,timeout:5e3,onEnter:i,onEntering:i,onEntered:i,onExit:i,onExiting:i,onExited:i},t["default"]=_},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=r(46),s=n(o),a=r(85),i=n(a);t["default"]=function(e,t,r){return s["default"](e,t,r),{remove:function(){i["default"](e,t,r)}}},e.exports=t["default"]},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function o(e){return e&&"body"===e.tagName.toLowerCase()}function s(e){var t=p["default"](e),r=l["default"](t),n=r.innerWidth;if(!n){var o=t.documentElement.getBoundingClientRect();n=o.right-Math.abs(o.left)}return t.body.clientWidth<n}function a(e){var t=l["default"](e);return t||o(e)?s(e):e.scrollHeight>e.clientHeight}t.__esModule=!0,t["default"]=a;var i=r(32),l=n(i),u=r(23),p=n(u);e.exports=t["default"]},function(e,t){"use strict";function r(e,t,r,n){return"Invalid prop '"+t+"' of value '"+e[t]+"'"+(" supplied to '"+r+"'"+n)}function n(e){function t(t,r,n,o){return o=o||"<<anonymous>>",null!=r[n]?e(r,n,o):t?new Error("Required prop '"+n+"' was not specified in '"+o+"'."):void 0}var r=t.bind(null,!1);return r.isRequired=t.bind(null,!0),r}t.__esModule=!0,t.errMsg=r,t.createChainableTypeChecker=n},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,r){var n=i.errMsg(e,t,r,". Expected an Element `type`");if("function"!=typeof e[t]){if(a["default"].isValidElement(e[t]))return new Error(n+", not an actual Element");if("string"!=typeof e[t])return new Error(n+" such as a tag name or return value of React.createClass(...)")}}t.__esModule=!0;var s=r(1),a=n(s),i=r(112);t["default"]=i.createChainableTypeChecker(o),e.exports=t["default"]},function(e,t){"use strict";function r(e,t,r,n){return"Invalid prop '"+t+"' of value '"+e[t]+"'"+(" supplied to '"+r+"'"+n)}function n(e){function t(t,r,n,o){return o=o||"<<anonymous>>",null!=r[n]?e(r,n,o):t?new Error("Required prop '"+n+"' was not specified in '"+o+"'."):void 0}var r=t.bind(null,!1);return r.isRequired=t.bind(null,!0),r}t.__esModule=!0,t.errMsg=r,t.createChainableTypeChecker=n},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,r,n,o){r&&(e._notifying=!0,r.call.apply(r,[e,n].concat(o)),e._notifying=!1),e._values[t]=n,e.forceUpdate()}t.__esModule=!0;var s=r(244),a=n(s),i={shouldComponentUpdate:function(){return!this._notifying}};t["default"]=a["default"]([i],o),e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(74),l=o(i),u=a["default"].createClass({displayName:"Accordion",render:function(){return a["default"].createElement(l["default"],n({},this.props,{accordion:!0}),this.props.children)}});t["default"]=u,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(4),l=o(i),u=r(5),p=o(u),d=r(10),f=a["default"].createClass({displayName:"Alert",propTypes:{onDismiss:a["default"].PropTypes.func,dismissAfter:a["default"].PropTypes.number,closeLabel:a["default"].PropTypes.string},getDefaultProps:function(){return{closeLabel:"Close Alert"}},renderDismissButton:function(){return a["default"].createElement("button",{type:"button",className:"close",onClick:this.props.onDismiss,"aria-hidden":"true"},a["default"].createElement("span",null,"×"))},renderSrOnlyDismissButton:function(){return a["default"].createElement("button",{type:"button",className:"close sr-only",onClick:this.props.onDismiss},this.props.closeLabel)},render:function(){var e=p["default"].getClassSet(this.props),t=!!this.props.onDismiss;return e[p["default"].prefix(this.props,"dismissable")]=t,a["default"].createElement("div",n({},this.props,{role:"alert",className:l["default"](this.props.className,e)}),t?this.renderDismissButton():null,this.props.children,t?this.renderSrOnlyDismissButton():null)},componentDidMount:function(){this.props.dismissAfter&&this.props.onDismiss&&(this.dismissTimer=setTimeout(this.props.onDismiss,this.props.dismissAfter))},componentWillUnmount:function(){clearTimeout(this.dismissTimer)}});t["default"]=u.bsStyles(d.State.values(),d.State.INFO,u.bsClass("alert",f)),e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(9),l=o(i),u=r(4),p=o(u),d=r(5),f=o(d),c=a["default"].createClass({displayName:"Badge",propTypes:{pullRight:a["default"].PropTypes.bool},getDefaultProps:function(){return{pullRight:!1,bsClass:"badge"}},hasContent:function(){return l["default"].hasValidComponent(this.props.children)||a["default"].Children.count(this.props.children)>1||"string"==typeof this.props.children||"number"==typeof this.props.children},render:function(){var e,t=(e={"pull-right":this.props.pullRight},e[f["default"].prefix(this.props)]=this.hasContent(),e);return a["default"].createElement("span",n({},this.props,{className:p["default"](this.props.className,t)}),this.props.children)}});t["default"]=c,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(8)["default"],o=r(3)["default"],s=r(2)["default"];t.__esModule=!0;var a=r(1),i=s(a),l=r(4),u=s(l),p=r(9),d=s(p),f=i["default"].createClass({displayName:"Breadcrumb",propTypes:{bsClass:i["default"].PropTypes.string},getDefaultProps:function(){return{bsClass:"breadcrumb"}},render:function(){var e=this.props,t=e.className,r=n(e,["className"]);return i["default"].createElement("ol",o({},r,{role:"navigation","aria-label":"breadcrumbs",className:u["default"](t,this.props.bsClass)}),d["default"].map(this.props.children,this.renderBreadcrumbItem))},renderBreadcrumbItem:function(e,t){return a.cloneElement(e,{key:e.key?e.key:t})}});t["default"]=f,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(8)["default"],o=r(3)["default"],s=r(2)["default"];t.__esModule=!0;var a=r(4),i=s(a),l=r(1),u=s(l),p=r(22),d=(s(p),r(15)),f=s(d),c=u["default"].createClass({displayName:"BreadcrumbItem",propTypes:{active:u["default"].PropTypes.bool,id:u["default"].PropTypes.oneOfType([u["default"].PropTypes.string,u["default"].PropTypes.number]),linkId:u["default"].PropTypes.oneOfType([u["default"].PropTypes.string,u["default"].PropTypes.number]),href:u["default"].PropTypes.string,title:u["default"].PropTypes.node,target:u["default"].PropTypes.string},getDefaultProps:function(){return{active:!1}},render:function(){var e=this.props,t=e.active,r=e.className,s=e.id,a=e.linkId,l=e.children,p=e.href,d=e.title,c=e.target,h=n(e,["active","className","id","linkId","children","href","title","target"]),v={href:p,title:d,target:c,id:a};return u["default"].createElement("li",{id:s,className:i["default"](r,{active:t})},t?u["default"].createElement("span",h,l):u["default"].createElement(f["default"],o({},h,v),l))}});t["default"]=c,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(8)["default"],a=r(3)["default"],i=r(2)["default"];t.__esModule=!0;var l=r(1),u=i(l),p=r(18),d=i(p),f=r(63),c=i(f),h=r(41),v=i(h),y=r(43),m=i(y),b=function(e){function t(){o(this,t),e.apply(this,arguments)}return n(t,e),t.prototype.renderFormGroup=function(e){var t=this.props,r=(t.bsStyle,t.value,s(t,["bsStyle","value"]));return u["default"].createElement(c["default"],r,e)},t.prototype.renderInput=function(){var e=this.props,t=e.children,r=e.value,n=s(e,["children","value"]),o=t?t:r;return u["default"].createElement(d["default"],a({},n,{componentClass:"input",ref:"input",key:"input",value:o}))},t}(v["default"]);b.types=d["default"].types,b.defaultProps={type:"button"},b.propTypes={type:u["default"].PropTypes.oneOf(b.types),bsStyle:function(){return null},children:m["default"],value:m["default"]},t["default"]=b,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(4),l=o(i),u=r(5),p=o(u),d=r(18),f=o(d),c=a["default"].createClass({displayName:"ButtonToolbar",propTypes:{bsSize:f["default"].propTypes.bsSize},getDefaultProps:function(){return{bsClass:"btn-toolbar"}},render:function(){var e=p["default"].getClassSet(this.props);return a["default"].createElement("div",n({},this.props,{role:"toolbar",className:l["default"](this.props.className,e)}),this.props.children)}});t["default"]=c,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(4),l=o(i),u=r(9),p=o(u),d=r(39),f=o(d),c=r(5),h=o(c),v=a["default"].createClass({displayName:"Carousel",propTypes:{slide:a["default"].PropTypes.bool,indicators:a["default"].PropTypes.bool,interval:a["default"].PropTypes.number,controls:a["default"].PropTypes.bool,pauseOnHover:a["default"].PropTypes.bool,wrap:a["default"].PropTypes.bool,onSelect:a["default"].PropTypes.func,onSlideEnd:a["default"].PropTypes.func,activeIndex:a["default"].PropTypes.number,defaultActiveIndex:a["default"].PropTypes.number,direction:a["default"].PropTypes.oneOf(["prev","next"]),prevIcon:a["default"].PropTypes.node,nextIcon:a["default"].PropTypes.node},getDefaultProps:function(){return{bsClass:"carousel",slide:!0,interval:5e3,pauseOnHover:!0,wrap:!0,indicators:!0,controls:!0,prevIcon:a["default"].createElement(f["default"],{glyph:"chevron-left"}),nextIcon:a["default"].createElement(f["default"],{glyph:"chevron-right"})}},getInitialState:function(){return{activeIndex:null==this.props.defaultActiveIndex?0:this.props.defaultActiveIndex,previousActiveIndex:null,direction:null}},getDirection:function(e,t){return e===t?null:e>t?"prev":"next"},componentWillReceiveProps:function(e){var t=this.getActiveIndex();null!=e.activeIndex&&e.activeIndex!==t&&(clearTimeout(this.timeout),this.setState({previousActiveIndex:t,direction:null!=e.direction?e.direction:this.getDirection(t,e.activeIndex)}))},componentDidMount:function(){this.waitForNext()},componentWillUnmount:function(){clearTimeout(this.timeout)},next:function(e){e&&e.preventDefault();var t=this.getActiveIndex()+1,r=p["default"].numberOf(this.props.children);if(t>r-1){if(!this.props.wrap)return;t=0}this.handleSelect(t,"next")},prev:function(e){e&&e.preventDefault();var t=this.getActiveIndex()-1;if(0>t){if(!this.props.wrap)return;t=p["default"].numberOf(this.props.children)-1}this.handleSelect(t,"prev")},pause:function(){this.isPaused=!0,clearTimeout(this.timeout)},play:function(){this.isPaused=!1,this.waitForNext()},waitForNext:function(){!this.isPaused&&this.props.slide&&this.props.interval&&null==this.props.activeIndex&&(this.timeout=setTimeout(this.next,this.props.interval))},handleMouseOver:function(){this.props.pauseOnHover&&this.pause()},handleMouseOut:function(){this.isPaused&&this.play()},render:function(){var e,t=(e={},e[h["default"].prefix(this.props)]=!0,e.slide=this.props.slide,e);return a["default"].createElement("div",n({},this.props,{className:l["default"](this.props.className,t),onMouseOver:this.handleMouseOver,onMouseOut:this.handleMouseOut}),this.props.indicators?this.renderIndicators():null,a["default"].createElement("div",{ref:"inner",className:h["default"].prefix(this.props,"inner")},p["default"].map(this.props.children,this.renderItem)),this.props.controls?this.renderControls():null)},renderPrev:function(){var e="left "+h["default"].prefix(this.props,"control");return a["default"].createElement("a",{className:e,href:"#prev",key:0,onClick:this.prev},this.props.prevIcon)},renderNext:function(){var e="right "+h["default"].prefix(this.props,"control");return a["default"].createElement("a",{className:e,href:"#next",key:1,onClick:this.next},this.props.nextIcon)},renderControls:function(){if(!this.props.wrap){var e=this.getActiveIndex(),t=p["default"].numberOf(this.props.children);return[0!==e?this.renderPrev():null,e!==t-1?this.renderNext():null]}return[this.renderPrev(),this.renderNext()]},renderIndicator:function(e,t){var r=t===this.getActiveIndex()?"active":null;return a["default"].createElement("li",{key:t,className:r,onClick:this.handleSelect.bind(this,t,null)})},renderIndicators:function(){var e=this,t=[];return p["default"].forEach(this.props.children,function(r,n){t.push(e.renderIndicator(r,n)," ")},this),a["default"].createElement("ol",{className:h["default"].prefix(this.props,"indicators")},t)},getActiveIndex:function(){return null!=this.props.activeIndex?this.props.activeIndex:this.state.activeIndex},handleItemAnimateOutEnd:function(){var e=this;this.setState({previousActiveIndex:null,direction:null},function(){e.waitForNext(),e.props.onSlideEnd&&e.props.onSlideEnd()})},renderItem:function(e,t){var r=this.getActiveIndex(),n=t===r,o=null!=this.state.previousActiveIndex&&this.state.previousActiveIndex===t&&this.props.slide;return s.cloneElement(e,{active:n,ref:e.ref,key:e.key?e.key:t,index:t,animateOut:o,animateIn:n&&null!=this.state.previousActiveIndex&&this.props.slide,direction:this.state.direction,onAnimateOutEnd:o?this.handleItemAnimateOutEnd:null})},handleSelect:function(e,t){if(clearTimeout(this.timeout),this.isMounted()){var r=this.getActiveIndex();if(t=t||this.getDirection(r,e),this.props.onSelect&&this.props.onSelect(e,t),null==this.props.activeIndex&&e!==r){if(null!=this.state.previousActiveIndex)return;this.setState({activeIndex:e,previousActiveIndex:r,direction:t})}}}});t["default"]=v,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(4),a=o(s),i=r(1),l=o(i),u=r(12),p=o(u),d=r(75),f=o(d),c=r(5),h=o(c),v=l["default"].createClass({displayName:"CarouselItem",propTypes:{direction:l["default"].PropTypes.oneOf(["prev","next"]),onAnimateOutEnd:l["default"].PropTypes.func,active:l["default"].PropTypes.bool,animateIn:l["default"].PropTypes.bool,animateOut:l["default"].PropTypes.bool,caption:l["default"].PropTypes.node,index:l["default"].PropTypes.number},getInitialState:function(){return{direction:null}},getDefaultProps:function(){return{bsStyle:"carousel",active:!1,animateIn:!1,animateOut:!1}},handleAnimateOutEnd:function(){this.props.onAnimateOutEnd&&this.isMounted()&&this.props.onAnimateOutEnd(this.props.index)},componentWillReceiveProps:function(e){this.props.active!==e.active&&this.setState({direction:null})},componentDidUpdate:function(e){!this.props.active&&e.active&&f["default"].addEndEventListener(p["default"].findDOMNode(this),this.handleAnimateOutEnd),this.props.active!==e.active&&setTimeout(this.startAnimation,20)},startAnimation:function(){this.isMounted()&&this.setState({direction:"prev"===this.props.direction?"right":"left"})},render:function(){var e={item:!0,active:this.props.active&&!this.props.animateIn||this.props.animateOut,next:this.props.active&&this.props.animateIn&&"next"===this.props.direction,prev:this.props.active&&this.props.animateIn&&"prev"===this.props.direction};return this.state.direction&&(this.props.animateIn||this.props.animateOut)&&(e[this.state.direction]=!0),l["default"].createElement("div",n({},this.props,{className:a["default"](this.props.className,e)}),this.props.children,this.props.caption?this.renderCaption():null)},renderCaption:function(){var e=h["default"].prefix(this.props,"caption");return l["default"].createElement("div",{className:e},this.props.caption)}});t["default"]=v,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(2)["default"];t.__esModule=!0;var o=r(1),s=n(o),a=r(25),i=n(a),l=r(4),u=n(l),p=r(31),d=n(p),f=r(9),c=n(f),h=r(11),v=n(h),y=s["default"].createClass({displayName:"CollapsibleNav",propTypes:{onSelect:s["default"].PropTypes.func,activeHref:s["default"].PropTypes.string,activeKey:s["default"].PropTypes.any,collapsible:s["default"].PropTypes.bool,expanded:s["default"].PropTypes.bool,eventKey:s["default"].PropTypes.any},getDefaultProps:function(){return{collapsible:!1,expanded:!1}},render:function(){var e=this.props.collapsible?"navbar-collapse":null,t=this.props.collapsible?this.renderCollapsibleNavChildren:this.renderChildren,r=s["default"].createElement("div",{eventKey:this.props.eventKey,className:u["default"](this.props.className,e)},c["default"].map(this.props.children,t));return this.props.collapsible?s["default"].createElement(i["default"],{"in":this.props.expanded},r):r},getChildActiveProp:function(e){return e.props.active?!0:null!=this.props.activeKey&&e.props.eventKey===this.props.activeKey?!0:null!=this.props.activeHref&&e.props.href===this.props.activeHref?!0:e.props.active},renderChildren:function(e,t){var r=e.key?e.key:t;return o.cloneElement(e,{activeKey:this.props.activeKey,activeHref:this.props.activeHref,ref:"nocollapse_"+r,key:r,navItem:!0})},renderCollapsibleNavChildren:function(e,t){var r=e.key?e.key:t;return o.cloneElement(e,{active:this.getChildActiveProp(e),activeKey:this.props.activeKey,activeHref:this.props.activeHref,onSelect:v["default"](e.props.onSelect,this.props.onSelect),ref:"collapsible_"+r,key:r,navItem:!0})}});t["default"]=d["default"].wrapper(y,"CollapsibleNav","Navbar.Collapse","http://react-bootstrap.github.io/components.html#navbars"),e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(3)["default"],a=r(8)["default"],i=r(19)["default"],l=r(2)["default"];t.__esModule=!0;var u=r(1),p=l(u),d=r(30),f=l(d),c=r(54),h=l(c),v=r(36),y=l(v),m=r(18),b=l(m),g=function(e){function t(){o(this,t),e.apply(this,arguments)}return n(t,e),t.prototype.render=function(){var e=this.props,t=e.bsStyle,r=e.bsSize,n=e.disabled,o=this.props,l=o.title,u=o.children,d=a(o,["title","children"]),c=y["default"](d,i(f["default"].ControlledComponent.propTypes)),v=h["default"](d,i(f["default"].ControlledComponent.propTypes));return p["default"].createElement(f["default"],s({},c,{bsSize:r,bsStyle:t}),p["default"].createElement(f["default"].Toggle,s({},v,{disabled:n}),l),p["default"].createElement(f["default"].Menu,null,u))},t}(p["default"].Component);g.propTypes=s({disabled:p["default"].PropTypes.bool,bsStyle:b["default"].propTypes.bsStyle,bsSize:b["default"].propTypes.bsSize,noCaret:p["default"].PropTypes.bool,title:p["default"].PropTypes.node.isRequired},f["default"].propTypes),g.defaultProps={disabled:!1,pullRight:!1,dropup:!1,navItem:!1,noCaret:!1},t["default"]=g,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(8)["default"],a=r(3)["default"],i=r(2)["default"];t.__esModule=!0;var l=r(47),u=i(l),p=r(1),d=i(p),f=r(12),c=i(f),h=r(4),v=i(h),y=r(5),m=i(y),b=r(108),g=i(b),T=r(9),x=i(T),P=r(11),E=i(P),C=function(e){function t(r){o(this,t),e.call(this,r),this.focusNext=this.focusNext.bind(this),this.focusPrevious=this.focusPrevious.bind(this),this.getFocusableMenuItems=this.getFocusableMenuItems.bind(this),this.getItemsAndActiveIndex=this.getItemsAndActiveIndex.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}return n(t,e),t.prototype.handleKeyDown=function(e){switch(e.keyCode){case u["default"].codes.down:this.focusNext(),e.preventDefault();break;case u["default"].codes.up:this.focusPrevious(),e.preventDefault();break;case u["default"].codes.esc:case u["default"].codes.tab:this.props.onClose(e)}},t.prototype.focusNext=function(){var e=this.getItemsAndActiveIndex(),t=e.items,r=e.activeItemIndex;return 0!==t.length?r===t.length-1?void t[0].focus():void t[r+1].focus():void 0},t.prototype.focusPrevious=function(){var e=this.getItemsAndActiveIndex(),t=e.items,r=e.activeItemIndex;return 0===r?void t[t.length-1].focus():void t[r-1].focus()},t.prototype.getItemsAndActiveIndex=function(){var e=this.getFocusableMenuItems(),t=document.activeElement,r=e.indexOf(t);return{items:e,activeItemIndex:r}},t.prototype.getFocusableMenuItems=function(){var e=c["default"].findDOMNode(this);return void 0===e?[]:[].slice.call(e.querySelectorAll('[tabIndex="-1"]'),0)},t.prototype.render=function(){var e,t=this,r=this.props,n=r.children,o=r.onSelect,i=r.pullRight,l=r.className,u=r.labelledBy,p=r.open,f=r.onClose,c=s(r,["children","onSelect","pullRight","className","labelledBy","open","onClose"]),h=x["default"].map(n,function(e){var r=e.props||{};return d["default"].cloneElement(e,{onKeyDown:E["default"](r.onKeyDown,t.handleKeyDown),onSelect:E["default"](r.onSelect,o)},r.children)}),y=(e={},e[m["default"].prefix(this.props,"menu")]=!0,e[m["default"].prefix(this.props,"menu-right")]=i,e),b=d["default"].createElement("ul",a({className:v["default"](l,y),role:"menu","aria-labelledby":u},c),h);return p&&(b=d["default"].createElement(g["default"],{noWrap:!0,onRootClose:f},b)),b},t}(d["default"].Component);C.defaultProps={bsRole:"menu",bsClass:"dropdown",pullRight:!1},C.propTypes={open:d["default"].PropTypes.bool,pullRight:d["default"].PropTypes.bool,onClose:d["default"].PropTypes.func,labelledBy:d["default"].PropTypes.oneOfType([d["default"].PropTypes.string,d["default"].PropTypes.number]),onSelect:d["default"].PropTypes.func},t["default"]=C,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(3)["default"],a=r(2)["default"];t.__esModule=!0;var i=r(1),l=a(i),u=r(4),p=a(u),d=r(41),f=a(d),c=r(43),h=a(c),v=function(e){function t(){o(this,t),e.apply(this,arguments)}return n(t,e),t.prototype.getValue=function(){var e=this.props,t=e.children,r=e.value;return t?t:r},t.prototype.renderInput=function(){return l["default"].createElement("p",s({},this.props,{className:p["default"](this.props.className,"form-control-static"),ref:"input",key:"input"}),this.getValue())},t}(f["default"]);v.propTypes={value:h["default"],children:h["default"]},t["default"]=v,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(4),l=o(i),u=a["default"].createClass({displayName:"Image",propTypes:{responsive:a["default"].PropTypes.bool,rounded:a["default"].PropTypes.bool,circle:a["default"].PropTypes.bool,thumbnail:a["default"].PropTypes.bool},getDefaultProps:function(){return{responsive:!1,rounded:!1,circle:!1,thumbnail:!1}},render:function(){var e={"img-responsive":this.props.responsive,"img-rounded":this.props.rounded,"img-circle":this.props.circle,"img-thumbnail":this.props.thumbnail};return a["default"].createElement("img",n({},this.props,{className:l["default"](this.props.className,e)}))}});t["default"]=u,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(2)["default"],a=r(78)["default"];t.__esModule=!0;var i=r(1),l=s(i),u=r(41),p=s(u),d=r(62),f=a(d),c=r(31),h=s(c),v=function(e){function t(){o(this,t),e.apply(this,arguments)}return n(t,e),t.prototype.render=function(){return"static"===this.props.type?(h["default"]("Input type=static","FormControls.Static"),l["default"].createElement(f.Static,this.props)):e.prototype.render.call(this)},t}(p["default"]);v.propTypes={type:l["default"].PropTypes.string},t["default"]=v,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(4),l=o(i),u=r(13),p=o(u),d=a["default"].createClass({displayName:"Jumbotron",propTypes:{componentClass:p["default"]},getDefaultProps:function(){return{componentClass:"div"}},render:function(){var e=this.props.componentClass;return a["default"].createElement(e,n({},this.props,{className:l["default"](this.props.className,"jumbotron")}),this.props.children)}});t["default"]=d,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(3)["default"],a=r(2)["default"];t.__esModule=!0;var i=r(1),l=a(i),u=r(4),p=a(u),d=r(5),f=a(d),c=r(10),h=function(e){function t(){o(this,r),e.apply(this,arguments)}n(t,e),t.prototype.render=function(){var e=f["default"].getClassSet(this.props);return l["default"].createElement("span",s({},this.props,{className:p["default"](this.props.className,e)}),this.props.children)};var r=t;return t=d.bsStyles(c.State.values().concat(c.DEFAULT,c.PRIMARY),c.DEFAULT)(t)||t,t=d.bsClass("label")(t)||t}(l["default"].Component);t["default"]=h,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(3)["default"],a=r(2)["default"];t.__esModule=!0;var i=r(1),l=a(i),u=r(65),p=a(u),d=r(4),f=a(d),c=r(9),h=a(c),v=function(e){function t(){o(this,t),e.apply(this,arguments)}return n(t,e),t.prototype.render=function(){var e=this,t=h["default"].map(this.props.children,function(e,t){return i.cloneElement(e,{key:e.key?e.key:t})});if(this.areCustomChildren(t)){var r=this.props.componentClass;return l["default"].createElement(r,s({},this.props,{className:f["default"](this.props.className,"list-group")}),t)}var n=!1;return this.props.children?h["default"].forEach(this.props.children,function(t){e.isAnchorOrButton(t.props)&&(n=!0)}):n=!0,n?this.renderDiv(t):this.renderUL(t)},t.prototype.isAnchorOrButton=function(e){return e.href||e.onClick},t.prototype.areCustomChildren=function(e){var t=!1;return h["default"].forEach(e,function(e){e.type!==p["default"]&&(t=!0)},this),t},t.prototype.renderUL=function(e){var t=h["default"].map(e,function(e){return i.cloneElement(e,{listItem:!0})});return l["default"].createElement("ul",s({},this.props,{className:f["default"](this.props.className,"list-group")}),t)},t.prototype.renderDiv=function(e){return l["default"].createElement("div",s({},this.props,{className:f["default"](this.props.className,"list-group")}),e)},t}(l["default"].Component);v.defaultProps={componentClass:"div"},v.propTypes={className:l["default"].PropTypes.string,componentClass:l["default"].PropTypes.oneOf(["ul","div"]),id:l["default"].PropTypes.oneOfType([l["default"].PropTypes.string,l["default"].PropTypes.number])},t["default"]=v,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(8)["default"],a=r(3)["default"],i=r(2)["default"];t.__esModule=!0;var l=r(4),u=i(l),p=r(1),d=i(p),f=r(5),c=i(f),h=r(37),v=i(h),y=r(15),m=i(y),b=r(11),g=i(b),T=function(e){ +function t(r){o(this,t),e.call(this,r),this.handleClick=this.handleClick.bind(this)}return n(t,e),t.prototype.handleClick=function(e){(!this.props.href||this.props.disabled)&&e.preventDefault(),this.props.disabled||this.props.onSelect&&this.props.onSelect(e,this.props.eventKey)},t.prototype.render=function(){var e=c["default"].prefix(this.props,"header");if(this.props.divider)return d["default"].createElement("li",{role:"separator",className:"divider"});if(this.props.header)return d["default"].createElement("li",{role:"heading",className:e},this.props.children);var t=this.props,r=t.className,n=t.style,o=t.onClick,i=s(t,["className","style","onClick"]),l={disabled:this.props.disabled,active:this.props.active};return d["default"].createElement("li",{role:"presentation",className:u["default"](r,l),style:n},d["default"].createElement(m["default"],a({},i,{role:"menuitem",tabIndex:"-1",onClick:g["default"](o,this.handleClick)})))},t}(d["default"].Component);T.propTypes={active:d["default"].PropTypes.bool,disabled:d["default"].PropTypes.bool,divider:v["default"](d["default"].PropTypes.bool,function(e){return e.divider&&e.children?new Error("Children will not be rendered for dividers"):void 0}),eventKey:d["default"].PropTypes.any,header:d["default"].PropTypes.bool,href:d["default"].PropTypes.string,target:d["default"].PropTypes.string,title:d["default"].PropTypes.string,onClick:d["default"].PropTypes.func,onKeyDown:d["default"].PropTypes.func,onSelect:d["default"].PropTypes.func,id:d["default"].PropTypes.oneOfType([d["default"].PropTypes.string,d["default"].PropTypes.number])},T.defaultProps={divider:!1,disabled:!1,header:!1},t["default"]=f.bsClass("dropdown",T),e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(8)["default"],s=r(19)["default"],a=r(2)["default"];t.__esModule=!0;var i=r(4),l=a(i),u=r(1),p=a(u),d=r(12),f=a(d),c=r(5),h=a(c),v=r(10),y=r(89),m=a(y),b=r(20),g=a(b),T=r(23),x=a(T),P=r(186),E=a(P),C=r(13),_=a(C),N=r(38),S=a(N),O=r(136),w=a(O),k=r(66),M=a(k),I=r(68),D=a(I),A=r(69),R=a(A),L=r(67),j=a(L),K=r(235),B=a(K),F=r(111),H=a(F),U=r(36),W=a(U),z=p["default"].createClass({displayName:"Modal",propTypes:n({},B["default"].propTypes,w["default"].propTypes,{backdrop:p["default"].PropTypes.oneOf(["static",!0,!1]),keyboard:p["default"].PropTypes.bool,animation:p["default"].PropTypes.bool,dialogComponent:_["default"],autoFocus:p["default"].PropTypes.bool,enforceFocus:p["default"].PropTypes.bool,bsStyle:p["default"].PropTypes.string,show:p["default"].PropTypes.bool,onHide:p["default"].PropTypes.func}),childContextTypes:{$bs_onModalHide:p["default"].PropTypes.func},getDefaultProps:function(){return n({},B["default"].defaultProps,{bsClass:"modal",animation:!0,dialogComponent:w["default"]})},getInitialState:function(){return{modalStyles:{}}},getChildContext:function(){return{$bs_onModalHide:this.props.onHide}},render:function(){var e=this,t=this.props,r=t.className,a=(t.children,t.dialogClassName),i=t.animation,u=o(t,["className","children","dialogClassName","animation"]),d=this.state.modalStyles,f={"in":u.show&&!i},c=u.dialogComponent,v=W["default"](u,s(B["default"].propTypes).concat(["onExit","onExiting","onEnter","onEntered"])),y=p["default"].createElement(c,n({key:"modal",ref:function(t){return e._modal=t}},u,{style:d,className:l["default"](r,f),dialogClassName:a,onClick:u.backdrop===!0?this.handleDialogClick:null}),this.props.children);return p["default"].createElement(B["default"],n({},v,{show:u.show,ref:function(t){e._wrapper=t&&t.refs.modal,e._backdrop=t&&t.refs.backdrop},onEntering:this._onShow,onExited:this._onHide,backdropClassName:l["default"](h["default"].prefix(u,"backdrop"),f),containerClassName:h["default"].prefix(u,"open"),transition:i?S["default"]:void 0,dialogTransitionTimeout:z.TRANSITION_DURATION,backdropTransitionTimeout:z.BACKDROP_TRANSITION_DURATION}),y)},_onShow:function(){if(E["default"].on(window,"resize",this.handleWindowResize),this.setState(this._getStyles()),this.props.onEntering){var e;(e=this.props).onEntering.apply(e,arguments)}},_onHide:function(){if(E["default"].off(window,"resize",this.handleWindowResize),this.props.onExited){var e;(e=this.props).onExited.apply(e,arguments)}},handleDialogClick:function(e){e.target===e.currentTarget&&this.props.onHide()},handleWindowResize:function(){this.setState(this._getStyles())},_getStyles:function(){if(!g["default"])return{};var e=f["default"].findDOMNode(this._modal),t=x["default"](e),r=e.scrollHeight,n=H["default"](f["default"].findDOMNode(this.props.container||t.body)),o=r>t.documentElement.clientHeight;return{modalStyles:{paddingRight:n&&!o?m["default"]():void 0,paddingLeft:!n&&o?m["default"]():void 0}}}});z.Body=M["default"],z.Header=D["default"],z.Title=R["default"],z.Footer=j["default"],z.Dialog=w["default"],z.TRANSITION_DURATION=300,z.BACKDROP_TRANSITION_DURATION=150,t["default"]=c.bsSizes([v.Sizes.LARGE,v.Sizes.SMALL],c.bsClass("modal",z)),e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(4),l=o(i),u=r(5),p=o(u),d=r(10),f=a["default"].createClass({displayName:"ModalDialog",propTypes:{dialogClassName:a["default"].PropTypes.string},render:function(){var e=n({display:"block"},this.props.style),t=p["default"].prefix(this.props),r=p["default"].getClassSet(this.props);return delete r[t],r[p["default"].prefix(this.props,"dialog")]=!0,a["default"].createElement("div",n({},this.props,{title:null,tabIndex:"-1",role:"dialog",style:e,className:l["default"](this.props.className,t)}),a["default"].createElement("div",{className:l["default"](this.props.dialogClassName,r)},a["default"].createElement("div",{className:p["default"].prefix(this.props,"content"),role:"document"},this.props.children)))}});t["default"]=u.bsSizes([d.Sizes.LARGE,d.Sizes.SMALL],u.bsClass("modal",f)),e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(3)["default"],a=r(8)["default"],i=r(2)["default"];t.__esModule=!0;var l=r(1),u=i(l),p=r(30),d=i(p),f=function(e){function t(){o(this,t),e.apply(this,arguments)}return n(t,e),t.prototype.render=function(){var e=this.props,t=e.children,r=e.title,n=e.noCaret,o=a(e,["children","title","noCaret"]);return u["default"].createElement(d["default"],s({},o,{componentClass:"li"}),u["default"].createElement(d["default"].Toggle,{useAnchor:!0,disabled:o.disabled,noCaret:n},r),u["default"].createElement(d["default"].Menu,null,t))},t}(u["default"].Component);f.propTypes=s({noCaret:u["default"].PropTypes.bool,title:u["default"].PropTypes.node.isRequired},d["default"].propTypes),t["default"]=f,e.exports=t["default"]},function(e,t,r){"use strict";function n(e){var t=e.props;return j(t,"brand")||j(t,"toggleButton")||j(t,"toggleNavKey")||j(t,"navExpanded")||j(t,"defaultNavExpanded")||x["default"].findValidComponents(t.children,function(e){return"brand"===e.props.bsRole}).length>0}function o(e,t,r){var n=function(e,r){var n,o=e.componentClass,i=e.className,l=s(e,["componentClass","className"]),p=r.$bs_navbar_bsClass,d=void 0===p?"navbar":p;return u["default"].createElement(o,a({},l,{className:c["default"](i,R["default"].prefix({bsClass:d},t),(n={},n[R["default"].prefix({bsClass:d},"right")]=l.pullRight,n[R["default"].prefix({bsClass:d},"left")]=l.pullLeft,n))}))};return n.displayName=r,n.propTypes={componentClass:v["default"],pullRight:u["default"].PropTypes.bool,pullLeft:u["default"].PropTypes.bool},n.defaultProps={componentClass:e,pullRight:!1,pullLeft:!1},n.contextTypes={$bs_navbar_bsClass:l.PropTypes.string},n}var s=r(8)["default"],a=r(3)["default"],i=r(2)["default"];t.__esModule=!0;var l=r(1),u=i(l),p=r(115),d=i(p),f=r(4),c=i(f),h=r(13),v=i(h),y=r(29),m=i(y),b=r(31),g=i(b),T=r(9),x=i(T),P=r(40),E=i(P),C=r(161),_=i(C),N=r(42),S=i(N),O=r(140),w=i(O),k=r(141),M=i(k),I=r(139),D=i(I),A=r(5),R=i(A),L=r(10),j=function(e,t){return e&&{}.hasOwnProperty.call(e,t)},K=u["default"].createClass({displayName:"Navbar",propTypes:{fixedTop:u["default"].PropTypes.bool,fixedBottom:u["default"].PropTypes.bool,staticTop:u["default"].PropTypes.bool,inverse:u["default"].PropTypes.bool,fluid:u["default"].PropTypes.bool,componentClass:v["default"],onToggle:u["default"].PropTypes.func,expanded:u["default"].PropTypes.bool,navExpanded:m["default"](u["default"].PropTypes.bool,"Use `expanded` and `defaultExpanded` instead.")},childContextTypes:{$bs_navbar:l.PropTypes.bool,$bs_navbar_bsClass:l.PropTypes.string,$bs_navbar_onToggle:l.PropTypes.func,$bs_navbar_expanded:l.PropTypes.bool},getDefaultProps:function(){return{componentClass:"nav",fixedTop:!1,fixedBottom:!1,staticTop:!1,inverse:!1,fluid:!1}},getChildContext:function(){return{$bs_navbar:!0,$bs_navbar_bsClass:this.props.bsClass,$bs_navbar_onToggle:this.handleToggle,$bs_navbar_expanded:this.props.expanded}},handleToggle:function(){this.props.onToggle(!this.props.expanded)},isNavExpanded:function(){return!!this.props.expanded},render:function(){if(n(this))return g["default"]({message:"Rendering a deprecated version of the Navbar due to the use of deprecated props. Please use the new Navbar api, and remove `toggleButton`, `toggleNavKey`, `brand`, `navExpanded`, `defaultNavExpanded` props or the use of the `<NavBrand>` component outside of a `<Navbar.Header>`. \n\nfor more details see: http://react-bootstrap.github.io/components.html#navbars"}),u["default"].createElement(_["default"],this.props);var e=this.props,t=e.fixedTop,r=e.fixedBottom,o=e.staticTop,i=e.inverse,l=e.componentClass,p=e.fluid,d=e.className,f=e.children,h=s(e,["fixedTop","fixedBottom","staticTop","inverse","componentClass","fluid","className","children"]);void 0===h.role&&"nav"!==l&&(h.role="navigation");var v=R["default"].getClassSet(this.props);return v[R["default"].prefix(this.props,"fixed-top")]=t,v[R["default"].prefix(this.props,"fixed-bottom")]=r,v[R["default"].prefix(this.props,"static-top")]=o,v[R["default"].prefix(this.props,L.INVERSE)]=i,v[R["default"].prefix(this.props,L.DEFAULT)]=!i,u["default"].createElement(l,a({},h,{className:c["default"](d,v)}),u["default"].createElement(E["default"],{fluid:p},f))}}),B=[L.DEFAULT,L.INVERSE];K=A.bsStyles(B,L.DEFAULT,A.bsClass("navbar",d["default"](K,{expanded:"onToggle"}))),K.Brand=S["default"],K.Header=w["default"],K.Toggle=M["default"],K.Collapse=D["default"],K.Form=o("div","form","NavbarForm"),K.Text=o("p","text","NavbarText"),K.Link=o("a","link","NavbarLink"),t["default"]=K,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(8)["default"],o=r(3)["default"],s=r(2)["default"];t.__esModule=!0;var a=r(1),i=s(a),l=r(5),u=s(l),p=r(25),d=s(p),f=i["default"].createClass({displayName:"NavbarCollapse",contextTypes:{$bs_navbar_bsClass:a.PropTypes.string,$bs_navbar_expanded:a.PropTypes.bool},render:function(){var e=this.props,t=e.children,r=n(e,["children"]),s=this.context,a=s.$bs_navbar_bsClass,l=void 0===a?"navbar":a,p=s.$bs_navbar_expanded;return i["default"].createElement(d["default"],o({"in":p},r),i["default"].createElement("div",{className:u["default"].prefix({bsClass:l},"collapse")},t))}});t["default"]=f,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(8)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(5),l=o(i),u=a["default"].createClass({displayName:"NavbarHeader",contextTypes:{$bs_navbar_bsClass:s.PropTypes.string},render:function(){var e=this.props,t=e.children,r=(n(e,["children"]),this.context.$bs_navbar_bsClass),o=void 0===r?"navbar":r;return a["default"].createElement("div",{className:l["default"].prefix({bsClass:o},"header")},t)}});t["default"]=u,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(8)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(5),l=o(i),u=a["default"].createClass({displayName:"NavbarToggle",propTypes:{children:s.PropTypes.node},contextTypes:{$bs_navbar_bsClass:s.PropTypes.string,$bs_navbar_onToggle:s.PropTypes.func},render:function(){var e=this.props,t=e.children,r=(n(e,["children"]),this.context),o=r.$bs_navbar_bsClass,s=void 0===o?"navbar":o,i=r.$bs_navbar_onToggle;return a["default"].createElement("button",{type:"button",onClick:i,className:l["default"].prefix({bsClass:s},"toggle")},t||[a["default"].createElement("span",{className:"sr-only",key:0},"Toggle navigation"),a["default"].createElement("span",{className:"icon-bar",key:1}),a["default"].createElement("span",{className:"icon-bar",key:2}),a["default"].createElement("span",{className:"icon-bar",key:3})])}});t["default"]=u,e.exports=t["default"]},function(e,t,r){"use strict";function n(e,t){return Array.isArray(t)?t.indexOf(e)>=0:e===t}var o=r(3)["default"],s=r(19)["default"],a=r(2)["default"];t.__esModule=!0;var i=r(27),l=a(i),u=r(36),p=a(u),d=r(1),f=a(d),c=r(12),h=a(c),v=r(22),y=(a(v),r(73)),m=a(y),b=r(11),g=a(b),T=f["default"].createClass({displayName:"OverlayTrigger",propTypes:o({},m["default"].propTypes,{trigger:f["default"].PropTypes.oneOfType([f["default"].PropTypes.oneOf(["click","hover","focus"]),f["default"].PropTypes.arrayOf(f["default"].PropTypes.oneOf(["click","hover","focus"]))]),delay:f["default"].PropTypes.number,delayShow:f["default"].PropTypes.number,delayHide:f["default"].PropTypes.number,defaultOverlayShown:f["default"].PropTypes.bool,overlay:f["default"].PropTypes.node.isRequired,onBlur:f["default"].PropTypes.func,onClick:f["default"].PropTypes.func,onFocus:f["default"].PropTypes.func,onMouseEnter:f["default"].PropTypes.func,onMouseLeave:f["default"].PropTypes.func,target:function(){},onHide:function(){},show:function(){}}),getDefaultProps:function(){return{defaultOverlayShown:!1,trigger:["hover","focus"]}},getInitialState:function(){return{isOverlayShown:this.props.defaultOverlayShown}},show:function(){this.setState({isOverlayShown:!0})},hide:function(){this.setState({isOverlayShown:!1})},toggle:function(){this.state.isOverlayShown?this.hide():this.show()},componentWillMount:function(){this.handleMouseOver=this.handleMouseOverOut.bind(null,this.handleDelayedShow),this.handleMouseOut=this.handleMouseOverOut.bind(null,this.handleDelayedHide)},componentDidMount:function(){this._mountNode=document.createElement("div"),this.renderOverlay()},renderOverlay:function(){h["default"].unstable_renderSubtreeIntoContainer(this,this._overlay,this._mountNode)},componentWillUnmount:function(){h["default"].unmountComponentAtNode(this._mountNode),this._mountNode=null,clearTimeout(this._hoverShowDelay),clearTimeout(this._hoverHideDelay)},componentDidUpdate:function(){this._mountNode&&this.renderOverlay()},getOverlayTarget:function(){return h["default"].findDOMNode(this)},getOverlay:function(){var e=o({},p["default"](this.props,s(m["default"].propTypes)),{show:this.state.isOverlayShown,onHide:this.hide,target:this.getOverlayTarget,onExit:this.props.onExit,onExiting:this.props.onExiting,onExited:this.props.onExited,onEnter:this.props.onEnter,onEntering:this.props.onEntering,onEntered:this.props.onEntered}),t=d.cloneElement(this.props.overlay,{placement:e.placement,container:e.container});return f["default"].createElement(m["default"],e,t)},render:function(){var e=f["default"].Children.only(this.props.children),t=e.props,r={"aria-describedby":this.props.overlay.props.id};return this._overlay=this.getOverlay(),r.onClick=g["default"](t.onClick,this.props.onClick),n("click",this.props.trigger)&&(r.onClick=g["default"](this.toggle,r.onClick)),n("hover",this.props.trigger)&&(r.onMouseOver=g["default"](this.handleMouseOver,this.props.onMouseOver,t.onMouseOver),r.onMouseOut=g["default"](this.handleMouseOut,this.props.onMouseOut,t.onMouseOut)),n("focus",this.props.trigger)&&(r.onFocus=g["default"](this.handleDelayedShow,this.props.onFocus,t.onFocus),r.onBlur=g["default"](this.handleDelayedHide,this.props.onBlur,t.onBlur)),d.cloneElement(e,r)},handleDelayedShow:function(){var e=this;if(null!=this._hoverHideDelay)return clearTimeout(this._hoverHideDelay),void(this._hoverHideDelay=null);if(!this.state.isOverlayShown&&null==this._hoverShowDelay){var t=null!=this.props.delayShow?this.props.delayShow:this.props.delay;return t?void(this._hoverShowDelay=setTimeout(function(){e._hoverShowDelay=null,e.show()},t)):void this.show()}},handleDelayedHide:function(){var e=this;if(null!=this._hoverShowDelay)return clearTimeout(this._hoverShowDelay),void(this._hoverShowDelay=null);if(this.state.isOverlayShown&&null==this._hoverHideDelay){var t=null!=this.props.delayHide?this.props.delayHide:this.props.delay;return t?void(this._hoverHideDelay=setTimeout(function(){e._hoverHideDelay=null,e.hide()},t)):void this.hide()}},handleMouseOverOut:function(e,t){var r=t.currentTarget,n=t.relatedTarget||t.nativeEvent.toElement;(!n||n!==r&&!l["default"](r,n))&&e(t)}});t["default"]=T,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(4),l=o(i),u=a["default"].createClass({displayName:"PageHeader",render:function(){return a["default"].createElement("div",n({},this.props,{className:l["default"](this.props.className,"page-header")}),a["default"].createElement("h1",null,this.props.children))}});t["default"]=u,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(4),l=o(i),u=r(15),p=o(u),d=a["default"].createClass({displayName:"PageItem",propTypes:{href:a["default"].PropTypes.string,target:a["default"].PropTypes.string,title:a["default"].PropTypes.string,disabled:a["default"].PropTypes.bool,previous:a["default"].PropTypes.bool,next:a["default"].PropTypes.bool,onSelect:a["default"].PropTypes.func,eventKey:a["default"].PropTypes.any},getDefaultProps:function(){return{disabled:!1,previous:!1,next:!1}},render:function(){var e={disabled:this.props.disabled,previous:this.props.previous,next:this.props.next};return a["default"].createElement("li",n({},this.props,{className:l["default"](this.props.className,e)}),a["default"].createElement(p["default"],{href:this.props.href,title:this.props.title,target:this.props.target,onClick:this.handleSelect},this.props.children))},handleSelect:function(e){(this.props.onSelect||this.props.disabled)&&(e.preventDefault(),this.props.disabled||this.props.onSelect(this.props.eventKey,this.props.href,this.props.target))}});t["default"]=d,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(4),l=o(i),u=r(9),p=o(u),d=r(11),f=o(d),c=a["default"].createClass({displayName:"Pager",propTypes:{onSelect:a["default"].PropTypes.func},render:function(){return a["default"].createElement("ul",n({},this.props,{className:l["default"](this.props.className,"pager")}),p["default"].map(this.props.children,this.renderPageItem))},renderPageItem:function(e,t){return s.cloneElement(e,{onSelect:f["default"](e.props.onSelect,this.props.onSelect),key:e.key?e.key:t})}});t["default"]=c,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(4),l=o(i),u=r(5),p=o(u),d=r(147),f=o(d),c=r(13),h=o(c),v=r(15),y=o(v),m=a["default"].createClass({displayName:"Pagination",propTypes:{activePage:a["default"].PropTypes.number,items:a["default"].PropTypes.number,maxButtons:a["default"].PropTypes.number,ellipsis:a["default"].PropTypes.oneOfType([a["default"].PropTypes.bool,a["default"].PropTypes.node]),first:a["default"].PropTypes.oneOfType([a["default"].PropTypes.bool,a["default"].PropTypes.node]),last:a["default"].PropTypes.oneOfType([a["default"].PropTypes.bool,a["default"].PropTypes.node]),prev:a["default"].PropTypes.oneOfType([a["default"].PropTypes.bool,a["default"].PropTypes.node]),next:a["default"].PropTypes.oneOfType([a["default"].PropTypes.bool,a["default"].PropTypes.node]),onSelect:a["default"].PropTypes.func,buttonComponentClass:h["default"]},getDefaultProps:function(){return{activePage:1,items:1,maxButtons:0,first:!1,last:!1,prev:!1,next:!1,ellipsis:!0,buttonComponentClass:y["default"],bsClass:"pagination"}},renderPageButtons:function(){var e=[],t=void 0,r=void 0,n=void 0,o=this.props,s=o.maxButtons,i=o.activePage,l=o.items,u=o.onSelect,p=o.ellipsis,d=o.buttonComponentClass;if(s){var c=i-parseInt(s/2,10);t=c>1?c:1,n=l>=t+s,n?r=t+s-1:(r=l,t=l-s+1,1>t&&(t=1))}else t=1,r=l;for(var h=t;r>=h;h++)e.push(a["default"].createElement(f["default"],{key:h,eventKey:h,active:h===i,onSelect:u,buttonComponentClass:d},h));return s&&n&&p&&e.push(a["default"].createElement(f["default"],{key:"ellipsis",disabled:!0,buttonComponentClass:d},a["default"].createElement("span",{"aria-label":"More"},this.props.ellipsis===!0?"...":this.props.ellipsis))),e},renderPrev:function(){return this.props.prev?a["default"].createElement(f["default"],{key:"prev",eventKey:this.props.activePage-1,disabled:1===this.props.activePage,onSelect:this.props.onSelect,buttonComponentClass:this.props.buttonComponentClass},a["default"].createElement("span",{"aria-label":"Previous"},this.props.prev===!0?"‹":this.props.prev)):null},renderNext:function(){return this.props.next?a["default"].createElement(f["default"],{key:"next",eventKey:this.props.activePage+1,disabled:this.props.activePage>=this.props.items,onSelect:this.props.onSelect,buttonComponentClass:this.props.buttonComponentClass},a["default"].createElement("span",{"aria-label":"Next"},this.props.next===!0?"›":this.props.next)):null},renderFirst:function(){return this.props.first?a["default"].createElement(f["default"],{key:"first",eventKey:1,disabled:1===this.props.activePage,onSelect:this.props.onSelect,buttonComponentClass:this.props.buttonComponentClass},a["default"].createElement("span",{"aria-label":"First"},this.props.first===!0?"«":this.props.first)):null},renderLast:function(){return this.props.last?a["default"].createElement(f["default"],{key:"last",eventKey:this.props.items,disabled:this.props.activePage>=this.props.items,onSelect:this.props.onSelect,buttonComponentClass:this.props.buttonComponentClass},a["default"].createElement("span",{"aria-label":"Last"},this.props.last===!0?"»":this.props.last)):null},render:function(){return a["default"].createElement("ul",n({},this.props,{className:l["default"](this.props.className,p["default"].getClassSet(this.props))}),this.renderFirst(),this.renderPrev(),this.renderPageButtons(),this.renderNext(),this.renderLast())}});t["default"]=u.bsClass("pagination",m),e.exports=t["default"]},function(e,t,r){"use strict";var n=r(8)["default"],o=r(3)["default"],s=r(2)["default"];t.__esModule=!0;var a=r(1),i=s(a),l=r(4),u=s(l),p=r(164),d=s(p),f=r(13),c=s(f),h=i["default"].createClass({displayName:"PaginationButton",propTypes:{className:i["default"].PropTypes.string,eventKey:i["default"].PropTypes.oneOfType([i["default"].PropTypes.string,i["default"].PropTypes.number]),onSelect:i["default"].PropTypes.func,disabled:i["default"].PropTypes.bool,active:i["default"].PropTypes.bool,buttonComponentClass:c["default"]},getDefaultProps:function(){return{active:!1,disabled:!1}},handleClick:function(e){if(!this.props.disabled&&this.props.onSelect){var t=d["default"](this.props.eventKey);this.props.onSelect(e,t)}},render:function(){var e={active:this.props.active,disabled:this.props.disabled},t=this.props,r=t.className,s=n(t,["className"]),a=this.props.buttonComponentClass;return i["default"].createElement("li",{className:u["default"](r,e)},i["default"].createElement(a,o({},s,{onClick:this.handleClick})))}});t["default"]=h,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(8)["default"],o=r(3)["default"],s=r(2)["default"];t.__esModule=!0;var a=r(1),i=s(a),l=r(4),u=s(l),p=r(5),d=s(p),f=r(10),c=r(25),h=s(c),v=i["default"].createClass({displayName:"Panel",propTypes:{collapsible:i["default"].PropTypes.bool,onSelect:i["default"].PropTypes.func,header:i["default"].PropTypes.node,id:i["default"].PropTypes.oneOfType([i["default"].PropTypes.string,i["default"].PropTypes.number]),footer:i["default"].PropTypes.node,defaultExpanded:i["default"].PropTypes.bool,expanded:i["default"].PropTypes.bool,eventKey:i["default"].PropTypes.any,headerRole:i["default"].PropTypes.string,panelRole:i["default"].PropTypes.string},getDefaultProps:function(){return{defaultExpanded:!1}},getInitialState:function(){return{expanded:this.props.defaultExpanded}},handleSelect:function(e){e.selected=!0,this.props.onSelect?this.props.onSelect(e,this.props.eventKey):e.preventDefault(),e.selected&&this.handleToggle()},handleToggle:function(){this.setState({expanded:!this.state.expanded})},isExpanded:function(){return null!=this.props.expanded?this.props.expanded:this.state.expanded},render:function(){var e=this.props,t=e.headerRole,r=e.panelRole,s=n(e,["headerRole","panelRole"]);return i["default"].createElement("div",o({},s,{className:u["default"](this.props.className,d["default"].getClassSet(this.props)),id:this.props.collapsible?null:this.props.id,onSelect:null}),this.renderHeading(t),this.props.collapsible?this.renderCollapsibleBody(r):this.renderBody(),this.renderFooter())},renderCollapsibleBody:function(e){var t={className:d["default"].prefix(this.props,"collapse"),id:this.props.id,ref:"panel","aria-hidden":!this.isExpanded()};return e&&(t.role=e),i["default"].createElement(h["default"],{"in":this.isExpanded()},i["default"].createElement("div",t,this.renderBody()))},renderBody:function(){function e(){return{key:u.length}}function t(t){u.push(a.cloneElement(t,e()))}function r(t){u.push(i["default"].createElement("div",o({className:f},e()),t))}function n(){0!==p.length&&(r(p),p=[])}var s=this,l=this.props.children,u=[],p=[],f=d["default"].prefix(this.props,"body");return Array.isArray(l)&&0!==l.length?(l.forEach(function(e){s.shouldRenderFill(e)?(n(),t(e)):p.push(e)}),n()):this.shouldRenderFill(l)?t(l):r(l),u},shouldRenderFill:function(e){return i["default"].isValidElement(e)&&null!=e.props.fill},renderHeading:function(e){var t=this.props.header;if(!t)return null;if(!i["default"].isValidElement(t)||Array.isArray(t))t=this.props.collapsible?this.renderCollapsibleTitle(t,e):t;else{var r=u["default"](d["default"].prefix(this.props,"title"),t.props.className);t=this.props.collapsible?a.cloneElement(t,{className:r,children:this.renderAnchor(t.props.children,e)}):a.cloneElement(t,{className:r})}return i["default"].createElement("div",{className:d["default"].prefix(this.props,"heading")},t)},renderAnchor:function(e,t){return i["default"].createElement("a",{href:"#"+(this.props.id||""),"aria-controls":this.props.collapsible?this.props.id:null,className:this.isExpanded()?null:"collapsed","aria-expanded":this.isExpanded(),"aria-selected":this.isExpanded(),onClick:this.handleSelect,role:t},e)},renderCollapsibleTitle:function(e,t){return i["default"].createElement("h4",{className:d["default"].prefix(this.props,"title"),role:"presentation"},this.renderAnchor(e,t))},renderFooter:function(){return this.props.footer?i["default"].createElement("div",{className:d["default"].prefix(this.props,"footer")},this.props.footer):null}}),y=f.State.values().concat(f.DEFAULT,f.PRIMARY);t["default"]=p.bsStyles(y,f.DEFAULT,p.bsClass("panel",v)),e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(4),l=o(i),u=r(5),p=o(u),d=r(58),f=o(d),c=a["default"].createClass({displayName:"Popover",propTypes:{id:f["default"](a["default"].PropTypes.oneOfType([a["default"].PropTypes.string,a["default"].PropTypes.number])),placement:a["default"].PropTypes.oneOf(["top","right","bottom","left"]),positionLeft:a["default"].PropTypes.number,positionTop:a["default"].PropTypes.number,arrowOffsetLeft:a["default"].PropTypes.oneOfType([a["default"].PropTypes.number,a["default"].PropTypes.string]),arrowOffsetTop:a["default"].PropTypes.oneOfType([a["default"].PropTypes.number,a["default"].PropTypes.string]),title:a["default"].PropTypes.node},getDefaultProps:function(){return{placement:"right",bsClass:"popover"}},render:function(){var e,t=(e={},e[p["default"].prefix(this.props)]=!0,e[this.props.placement]=!0,e),r=n({left:this.props.positionLeft,top:this.props.positionTop,display:"block"},this.props.style),o={left:this.props.arrowOffsetLeft,top:this.props.arrowOffsetTop};return a["default"].createElement("div",n({role:"tooltip"},this.props,{className:l["default"](this.props.className,t),style:r,title:null}),a["default"].createElement("div",{className:"arrow",style:o}),this.props.title?this.renderTitle():null,a["default"].createElement("div",{className:p["default"].prefix(this.props,"content")},this.props.children))},renderTitle:function(){return a["default"].createElement("h3",{className:p["default"].prefix(this.props,"title")},this.props.title)}});t["default"]=c,e.exports=t["default"]},function(e,t,r){"use strict";function n(e,t,r){if(e[t]){var n=function(){var n=void 0,o=void 0;return p["default"].Children.forEach(e[t],function(e){e.type!==T&&(o=e.type.displayName?e.type.displayName:e.type,n=new Error("Children of "+r+" can contain only ProgressBar components. Found "+o))}),{v:n}}();if("object"==typeof n)return n.v}}var o=r(7)["default"],s=r(6)["default"],a=r(3)["default"],i=r(8)["default"],l=r(2)["default"];t.__esModule=!0;var u=r(1),p=l(u),d=r(64),f=l(d),c=r(5),h=l(c),v=r(10),y=r(4),m=l(y),b=r(9),g=l(b),T=function(e){function t(){s(this,t),e.apply(this,arguments)}return o(t,e),t.prototype.getPercentage=function(e,t,r){var n=1e3;return Math.round((e-t)/(r-t)*100*n)/n},t.prototype.render=function(){if(this.props.isChild)return this.renderProgressBar();var e=void 0;return e=this.props.children?g["default"].map(this.props.children,this.renderChildBar):this.renderProgressBar(),p["default"].createElement("div",a({},this.props,{className:m["default"](this.props.className,"progress"),min:null,max:null,label:null,"aria-valuetext":null}),e)},t.prototype.renderChildBar=function(e,t){return u.cloneElement(e,{isChild:!0,key:e.key?e.key:t})},t.prototype.renderProgressBar=function(){var e,t=this.props,r=t.className,n=t.label,o=t.now,s=t.min,l=t.max,u=i(t,["className","label","now","min","max"]),d=this.getPercentage(o,s,l);"string"==typeof n&&(n=this.renderLabel(d)),this.props.srOnly&&(n=p["default"].createElement("span",{className:"sr-only"},n));var f=m["default"](r,h["default"].getClassSet(this.props),(e={active:this.props.active},e[h["default"].prefix(this.props,"striped")]=this.props.active||this.props.striped,e));return p["default"].createElement("div",a({},u,{className:f,role:"progressbar",style:{width:d+"%"},"aria-valuenow":this.props.now,"aria-valuemin":this.props.min,"aria-valuemax":this.props.max}),n)},t.prototype.renderLabel=function(e){var t=this.props.interpolateClass||f["default"];return p["default"].createElement(t,{now:this.props.now,min:this.props.min,max:this.props.max,percent:e,bsStyle:this.props.bsStyle},this.props.label)},t}(p["default"].Component);T.propTypes=a({},T.propTypes,{min:u.PropTypes.number,now:u.PropTypes.number,max:u.PropTypes.number,label:u.PropTypes.node,srOnly:u.PropTypes.bool,striped:u.PropTypes.bool,active:u.PropTypes.bool,children:n,className:p["default"].PropTypes.string,interpolateClass:u.PropTypes.node,isChild:u.PropTypes.bool}),T.defaultProps=a({},T.defaultProps,{min:0,max:100,active:!1,isChild:!1,srOnly:!1,striped:!1}),t["default"]=c.bsStyles(v.State.values(),c.bsClass("progress-bar",T)),e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(3)["default"],a=r(8)["default"],i=r(2)["default"];t.__esModule=!0;var l=r(4),u=i(l),p=r(1),d=i(p),f=r(22),c=(i(f),function(e){function t(){o(this,t),e.apply(this,arguments)}return n(t,e),t.prototype.render=function(){var e=this.props,t=e.bsClass,r=e.className,n=e.a16by9,o=e.a4by3,i=e.children,l=a(e,["bsClass","className","a16by9","a4by3","children"]),f={"embed-responsive-16by9":n,"embed-responsive-4by3":o};return d["default"].createElement("div",{className:u["default"](t,f)},p.cloneElement(i,s({},l,{className:u["default"](r,"embed-responsive-item")})))},t}(d["default"].Component));c.defaultProps={bsClass:"embed-responsive",a16by9:!1,a4by3:!1},c.propTypes={bsClass:p.PropTypes.string,children:p.PropTypes.element.isRequired, +a16by9:p.PropTypes.bool,a4by3:p.PropTypes.bool},t["default"]=c,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(4),l=o(i),u=r(13),p=o(u),d=a["default"].createClass({displayName:"Row",propTypes:{componentClass:p["default"]},getDefaultProps:function(){return{componentClass:"div"}},render:function(){var e=this.props.componentClass;return a["default"].createElement(e,n({},this.props,{className:l["default"](this.props.className,"row")}),this.props.children)}});t["default"]=d,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(3)["default"],a=r(8)["default"],i=r(19)["default"],l=r(2)["default"];t.__esModule=!0;var u=r(1),p=l(u),d=r(18),f=l(d),c=r(30),h=l(c),v=r(154),y=l(v),m=r(54),b=l(m),g=r(36),T=l(g),x=function(e){function t(){o(this,t),e.apply(this,arguments)}return n(t,e),t.prototype.render=function(){var e=this.props,t=e.children,r=e.title,n=e.onClick,o=e.target,l=e.href,u=e.bsSize,d=e.bsStyle,c=a(e,["children","title","onClick","target","href","bsSize","bsStyle"]),v=c.disabled,m=T["default"](c,i(h["default"].ControlledComponent.propTypes)),g=b["default"](c,i(h["default"].ControlledComponent.propTypes));return p["default"].createElement(h["default"],m,p["default"].createElement(f["default"],s({},g,{onClick:n,bsStyle:d,bsSize:u,disabled:v,target:o,href:l}),r),p["default"].createElement(y["default"],{"aria-label":r,bsStyle:d,bsSize:u,disabled:v}),p["default"].createElement(h["default"].Menu,null,t))},t}(p["default"].Component);x.propTypes=s({},h["default"].propTypes,{bsStyle:f["default"].propTypes.bsStyle,onClick:function(){},target:p["default"].PropTypes.string,href:p["default"].PropTypes.string,title:p["default"].PropTypes.node.isRequired}),x.defaultProps={disabled:!1,dropup:!1,pullRight:!1},x.Toggle=y["default"],t["default"]=x,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(3)["default"],a=r(2)["default"];t.__esModule=!0;var i=r(1),l=a(i),u=r(61),p=a(u),d=function(e){function t(){o(this,t),e.apply(this,arguments)}return n(t,e),t.prototype.render=function(){return l["default"].createElement(p["default"],s({},this.props,{useAnchor:!1,noCaret:!1}))},t}(l["default"].Component);t["default"]=d,d.defaultProps=p["default"].defaultProps,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(12),l=o(i),u=r(4),p=o(u),d=r(5),f=o(d),c=r(75),h=o(c),v=a["default"].createClass({displayName:"Tab",propTypes:{active:a["default"].PropTypes.bool,animation:a["default"].PropTypes.bool,onAnimateOutEnd:a["default"].PropTypes.func,disabled:a["default"].PropTypes.bool,title:a["default"].PropTypes.node,tabClassName:a["default"].PropTypes.string},getDefaultProps:function(){return{bsClass:"tab",animation:!0}},getInitialState:function(){return{animateIn:!1,animateOut:!1}},componentWillReceiveProps:function(e){this.props.animation&&(this.state.animateIn||!e.active||this.props.active?this.state.animateOut||e.active||!this.props.active||this.setState({animateOut:!0}):this.setState({animateIn:!0}))},componentDidUpdate:function(){this.state.animateIn&&setTimeout(this.startAnimateIn,0),this.state.animateOut&&h["default"].addEndEventListener(l["default"].findDOMNode(this),this.stopAnimateOut)},startAnimateIn:function(){this.isMounted()&&this.setState({animateIn:!1})},stopAnimateOut:function(){this.isMounted()&&(this.setState({animateOut:!1}),this.props.onAnimateOutEnd&&this.props.onAnimateOutEnd())},render:function(){var e,t=(e={},e[f["default"].prefix(this.props,"pane")]=!0,e.fade=!0,e.active=this.props.active||this.state.animateOut,e["in"]=this.props.active&&!this.state.animateIn,e);return a["default"].createElement("div",n({},this.props,{title:void 0,role:"tabpanel","aria-hidden":!this.props.active,className:p["default"](this.props.className,t)}),this.props.children)}});t["default"]=v,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(4),l=o(i),u=a["default"].createClass({displayName:"Table",propTypes:{striped:a["default"].PropTypes.bool,bordered:a["default"].PropTypes.bool,condensed:a["default"].PropTypes.bool,hover:a["default"].PropTypes.bool,responsive:a["default"].PropTypes.bool},getDefaultProps:function(){return{bordered:!1,condensed:!1,hover:!1,responsive:!1,striped:!1}},render:function(){var e={table:!0,"table-striped":this.props.striped,"table-bordered":this.props.bordered,"table-condensed":this.props.condensed,"table-hover":this.props.hover},t=a["default"].createElement("table",n({},this.props,{className:l["default"](this.props.className,e)}),this.props.children);return this.props.responsive?a["default"].createElement("div",{className:"table-responsive"},t):t}});t["default"]=u,e.exports=t["default"]},function(e,t,r){"use strict";function n(e){var t=void 0;return k["default"].forEach(e,function(e){null==t&&(t=e.props.eventKey)}),t}function o(e,t,r,n){function o(){var t=r.indexOf(i);return i=n?r[Math.min(s,t+1)]:r[Math.max(0,t-1)],D(e,function(e){return e.props.eventKey===i})}for(var s=r.length-1,a=r[n?Math.max(s,0):0],i=t,l=o();l.props.eventKey!==a&&l.props.disabled;)l=o();return l.props.disabled?t:l.props.eventKey}var s=r(3)["default"],a=r(8)["default"],i=r(19)["default"],l=r(2)["default"];t.__esModule=!0;var u=r(4),p=l(u),d=r(1),f=l(d),c=r(12),h=l(c),v=r(60),y=l(v),m=r(70),b=l(m),g=r(72),T=l(g),x=r(10),P=l(x),E=r(47),C=l(E),_=r(11),N=l(_),S=r(5),O=l(S),w=r(9),k=l(w),M=function(e,t){return t.props.id?t.props.id:e.id&&e.id+"___pane___"+t.props.eventKey},I=function(e,t){return t.props.id?t.props.id+"___tab":e.id&&e.id+"___tab___"+t.props.eventKey},D=k["default"].find,A=f["default"].createClass({displayName:"Tabs",propTypes:{activeKey:f["default"].PropTypes.any,defaultActiveKey:f["default"].PropTypes.any,bsStyle:f["default"].PropTypes.oneOf(["tabs","pills"]),animation:f["default"].PropTypes.bool,id:f["default"].PropTypes.oneOfType([f["default"].PropTypes.string,f["default"].PropTypes.number]),onSelect:f["default"].PropTypes.func,position:f["default"].PropTypes.oneOf(["top","left","right"]),tabWidth:f["default"].PropTypes.oneOfType([f["default"].PropTypes.number,f["default"].PropTypes.object]),paneWidth:f["default"].PropTypes.oneOfType([f["default"].PropTypes.number,f["default"].PropTypes.object]),standalone:f["default"].PropTypes.bool},getDefaultProps:function(){return{bsClass:"tab",animation:!0,tabWidth:2,position:"top",standalone:!1}},getInitialState:function(){var e=null!=this.props.defaultActiveKey?this.props.defaultActiveKey:n(this.props.children);return{activeKey:e,previousActiveKey:null}},componentWillReceiveProps:function(e){var t=this;null!=e.activeKey&&e.activeKey!==this.props.activeKey&&!function(){var r=t.props.activeKey;f["default"].Children.forEach(e.children,function(e){return f["default"].isValidElement(e)&&e.props.eventKey===r?void t.setState({previousActiveKey:r}):void 0})}()},componentDidUpdate:function(){var e=this._tabs,t=this._eventKeys().indexOf(this.getActiveKey());if(this._needsRefocus&&(this._needsRefocus=!1,e&&-1!==t)){var r=h["default"].findDOMNode(e[t]);r&&r.firstChild.focus()}},handlePaneAnimateOutEnd:function(){this.setState({previousActiveKey:null})},render:function(){var e=this.props,t=e.id,r=e.className,n=e.style,o=e.position,i=e.bsStyle,l=e.tabWidth,u=e.paneWidth,d=e.standalone,c=e.children,h=a(e,["id","className","style","position","bsStyle","tabWidth","paneWidth","standalone","children"]),v="left"===o||"right"===o;null==i&&(i=v?"pills":"tabs");var m={id:t,className:r,style:n},g=s({},h,{bsStyle:i,bsClass:void 0,stacked:v,activeKey:this.getActiveKey(),onSelect:this.handleSelect,ref:"tabs",role:"tablist"}),T=k["default"].map(c,this.renderTab),x={className:O["default"].prefix(this.props,"content"),ref:"panes"},P=k["default"].map(c,this.renderPane);if(v){d||(m.className=p["default"](m.className,"clearfix"));var E=this.getColProps({tabWidth:l,paneWidth:u}),C=E.tabsColProps,_=E.panesColProps,N=f["default"].createElement(y["default"],s({componentClass:b["default"]},g,C),T),S=f["default"].createElement(y["default"],s({},x,_),P);return"left"===o?f["default"].createElement("div",m,N,S):f["default"].createElement("div",m,S,N)}return f["default"].createElement("div",m,f["default"].createElement(b["default"],g,T),f["default"].createElement("div",x,P))},getActiveKey:function(){return void 0!==this.props.activeKey?this.props.activeKey:this.state.activeKey},renderPane:function(e,t){var r=this.state.previousActiveKey,n=e.props.eventKey===this.getActiveKey(),o=null==r,s=null!=r&&e.props.eventKey===r;return d.cloneElement(e,{active:n&&(o||!this.props.animation),id:M(this.props,e),"aria-labelledby":I(this.props,e),key:e.key?e.key:t,animation:this.props.animation,onAnimateOutEnd:s?this.handlePaneAnimateOutEnd:null})},renderTab:function(e,t){var r=this;if(null==e.props.title)return null;var n=e.props,o=n.eventKey,s=n.title,a=n.disabled,i=n.onKeyDown,l=n.tabClassName,u=n.tabIndex,p=void 0===u?0:u,d=this.getActiveKey()===o;return f["default"].createElement(T["default"],{linkId:I(this.props,e),ref:function(e){return(r._tabs||(r._tabs=[]))[t]=e},"aria-controls":M(this.props,e),onKeyDown:N["default"](this.handleKeyDown,i),eventKey:o,tabIndex:d?p:-1,disabled:a,className:l},s)},getColProps:function(e){var t=e.tabWidth,r=e.paneWidth,n=void 0;n=t instanceof Object?t:{xs:t};var o=void 0;return null==r?(o={},i(n).forEach(function(e){o[e]=P["default"].GRID_COLUMNS-n[e]})):o=r instanceof Object?r:{xs:r},{tabsColProps:n,panesColProps:o}},shouldComponentUpdate:function(){return!this._isChanging},handleSelect:function(e){if(this.props.onSelect)return this._isChanging=!0,this.props.onSelect(e),void(this._isChanging=!1);var t=this.getActiveKey();e!==t&&this.setState({activeKey:e,previousActiveKey:t})},handleKeyDown:function(e){var t=this._eventKeys(),r=this.getActiveKey()||t[0],n=void 0;switch(e.keyCode){case C["default"].codes.left:case C["default"].codes.up:n=o(this.props.children,r,t,!1),n&&n!==r&&(e.preventDefault(),this.handleSelect(n),this._needsRefocus=!0);break;case C["default"].codes.right:case C["default"].codes.down:n=o(this.props.children,r,t,!0),n&&n!==r&&(e.preventDefault(),this.handleSelect(n),this._needsRefocus=!0)}},_eventKeys:function(){var e=[];return k["default"].forEach(this.props.children,function(t){var r=t.props.eventKey;return e.push(r)}),e}});t["default"]=A,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(4),l=o(i),u=r(15),p=o(u),d=r(5),f=o(d),c=a["default"].createClass({displayName:"Thumbnail",propTypes:{alt:a["default"].PropTypes.string,href:a["default"].PropTypes.string,src:a["default"].PropTypes.string},render:function(){var e=f["default"].getClassSet(this.props);return this.props.href?a["default"].createElement(p["default"],n({},this.props,{href:this.props.href,className:l["default"](this.props.className,e)}),a["default"].createElement("img",{src:this.props.src,alt:this.props.alt})):this.props.children?a["default"].createElement("div",n({},this.props,{className:l["default"](this.props.className,e)}),a["default"].createElement("img",{src:this.props.src,alt:this.props.alt}),a["default"].createElement("div",{className:"caption"},this.props.children)):a["default"].createElement("div",n({},this.props,{className:l["default"](this.props.className,e)}),a["default"].createElement("img",{src:this.props.src,alt:this.props.alt}))}});t["default"]=d.bsClass("thumbnail",c),e.exports=t["default"]},function(e,t,r){"use strict";var n=r(3)["default"],o=r(2)["default"];t.__esModule=!0;var s=r(1),a=o(s),i=r(4),l=o(i),u=r(5),p=o(u),d=r(58),f=o(d),c=a["default"].createClass({displayName:"Tooltip",propTypes:{id:f["default"](a["default"].PropTypes.oneOfType([a["default"].PropTypes.string,a["default"].PropTypes.number])),placement:a["default"].PropTypes.oneOf(["top","right","bottom","left"]),positionLeft:a["default"].PropTypes.number,positionTop:a["default"].PropTypes.number,arrowOffsetLeft:a["default"].PropTypes.oneOfType([a["default"].PropTypes.number,a["default"].PropTypes.string]),arrowOffsetTop:a["default"].PropTypes.oneOfType([a["default"].PropTypes.number,a["default"].PropTypes.string]),title:a["default"].PropTypes.node},getDefaultProps:function(){return{bsClass:"tooltip",placement:"right"}},render:function(){var e,t=(e={},e[p["default"].prefix(this.props)]=!0,e[this.props.placement]=!0,e),r=n({left:this.props.positionLeft,top:this.props.positionTop},this.props.style),o={left:this.props.arrowOffsetLeft,top:this.props.arrowOffsetTop};return a["default"].createElement("div",n({role:"tooltip"},this.props,{className:l["default"](this.props.className,t),style:r}),a["default"].createElement("div",{className:p["default"].prefix(this.props,"arrow"),style:o}),a["default"].createElement("div",{className:p["default"].prefix(this.props,"inner")},this.props.children))}});t["default"]=c,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(7)["default"],o=r(6)["default"],s=r(3)["default"],a=r(2)["default"];t.__esModule=!0;var i=r(1),l=a(i),u=r(4),p=a(u),d=r(5),f=a(d),c=r(10),h=function(e){function t(){o(this,r),e.apply(this,arguments)}n(t,e),t.prototype.render=function(){var e=f["default"].getClassSet(this.props);return l["default"].createElement("div",s({},this.props,{className:p["default"](this.props.className,e)}),this.props.children)};var r=t;return t=d.bsSizes([c.Sizes.LARGE,c.Sizes.SMALL])(t)||t,t=d.bsClass("well")(t)||t}(l["default"].Component);t["default"]=h,e.exports=t["default"]},function(e,t,r){"use strict";var n=r(8)["default"],o=r(3)["default"],s=r(2)["default"];t.__esModule=!0;var a=r(1),i=s(a),l=r(4),u=s(l),p=r(29),d=s(p),f=r(13),c=s(f),h=r(40),v=s(h),y=r(71),m=s(y),b=r(5),g=s(b),T=r(10),x=r(11),P=s(x),E=r(9),C=s(E),_=i["default"].createClass({displayName:"Navbar",propTypes:{fixedTop:i["default"].PropTypes.bool,fixedBottom:i["default"].PropTypes.bool,staticTop:i["default"].PropTypes.bool,inverse:i["default"].PropTypes.bool,fluid:i["default"].PropTypes.bool,role:i["default"].PropTypes.string,componentClass:c["default"],brand:d["default"](i["default"].PropTypes.node,"Use the `NavBrand` component."),toggleButton:i["default"].PropTypes.node,toggleNavKey:i["default"].PropTypes.oneOfType([i["default"].PropTypes.string,i["default"].PropTypes.number]),onToggle:i["default"].PropTypes.func,navExpanded:i["default"].PropTypes.bool,defaultNavExpanded:i["default"].PropTypes.bool},childContextTypes:{$bs_deprecated_navbar:i["default"].PropTypes.bool},getChildContext:function(){return{$bs_deprecated_navbar:!0}},getDefaultProps:function(){return{role:"navigation",componentClass:"nav",fixedTop:!1,fixedBottom:!1,staticTop:!1,inverse:!1,fluid:!1,defaultNavExpanded:!1}},getInitialState:function(){return{navExpanded:this.props.defaultNavExpanded}},shouldComponentUpdate:function(){return!this._isChanging},handleToggle:function(){this.props.onToggle&&(this._isChanging=!0,this.props.onToggle(),this._isChanging=!1),this.setState({navExpanded:!this.state.navExpanded})},isNavExpanded:function(){return null!=this.props.navExpanded?this.props.navExpanded:this.state.navExpanded},hasNavBrandChild:function(){return C["default"].findValidComponents(this.props.children,function(e){return"brand"===e.props.bsRole}).length>0},render:function(){var e=this.props,t=e.brand,r=e.toggleButton,s=e.toggleNavKey,a=(e.fixedTop,e.fixedBottom,e.staticTop,e.inverse,e.componentClass),l=e.fluid,p=e.className,d=e.children,f=n(e,["brand","toggleButton","toggleNavKey","fixedTop","fixedBottom","staticTop","inverse","componentClass","fluid","className","children"]);void 0===f.role&&"nav"!==a&&(f.role="navigation");var c=g["default"].getClassSet(this.props);c[g["default"].prefix(this.props,"fixed-top")]=this.props.fixedTop,c[g["default"].prefix(this.props,"fixed-bottom")]=this.props.fixedBottom,c[g["default"].prefix(this.props,"static-top")]=this.props.staticTop,c[g["default"].prefix(this.props,T.INVERSE)]=this.props.inverse,c[g["default"].prefix(this.props,T.DEFAULT)]=!this.props.inverse;var h=(t||r||null!=s)&&!this.hasNavBrandChild();return i["default"].createElement(a,o({},f,{className:u["default"](p,c)}),i["default"].createElement(v["default"],{fluid:l},h?this.renderBrandHeader():null,C["default"].map(d,this.renderChild)))},renderBrandHeader:function(){var e=this.props.brand;return e&&(e=i["default"].createElement(m["default"],null,e)),this.renderHeader(e)},renderHeader:function(e){var t=this.props.toggleButton||null!=this.props.toggleNavKey,r=g["default"].prefix(this.props,"header");return i["default"].createElement("div",{className:r},e,t?this.renderToggleButton():null)},renderChild:function(e,t){var r=null!=e.key?e.key:t;if("brand"===e.props.bsRole)return i["default"].cloneElement(this.renderHeader(e),{key:r});var n=this.props.toggleNavKey,o=null!=n&&n===e.props.eventKey;return i["default"].cloneElement(e,{navbar:!0,collapsible:o,expanded:o&&this.isNavExpanded(),key:r})},renderToggleButton:function(){var e=this.props.toggleButton,t=g["default"].prefix(this.props,"toggle");if(i["default"].isValidElement(e))return i["default"].cloneElement(e,{className:u["default"](e.props.className,t),onClick:P["default"](this.handleToggle,e.props.onClick)});var r=void 0;return r=null!=e?e:[i["default"].createElement("span",{className:"sr-only",key:0},"Toggle navigation"),i["default"].createElement("span",{className:"icon-bar",key:1}),i["default"].createElement("span",{className:"icon-bar",key:2}),i["default"].createElement("span",{className:"icon-bar",key:3})],i["default"].createElement("button",{type:"button",onClick:this.handleToggle,className:t},r)}}),N=[T.DEFAULT,T.INVERSE];t["default"]=b.bsStyles(N,T.DEFAULT,b.bsClass("navbar",_)),e.exports=t["default"]},function(e,t,r){"use strict";var n=r(2)["default"];t.__esModule=!0;var o=r(114),s=r(163),a=n(s);t["default"]={requiredRoles:function(){for(var e=arguments.length,t=Array(e),r=0;e>r;r++)t[r]=arguments[r];return o.createChainableTypeChecker(function(e,r,n){var o=void 0,s=a["default"](e.children),i=function(e,t){return e===t.props.bsRole};return t.every(function(e){return s.some(function(t){return i(e,t)})?!0:(o=e,!1)}),o?new Error("(children) "+n+" - Missing a required child with bsRole: "+o+". "+(n+" must have at least one child of each of the following bsRoles: "+t.join(", "))):void 0})},exclusiveRoles:function(){for(var e=arguments.length,t=Array(e),r=0;e>r;r++)t[r]=arguments[r];return o.createChainableTypeChecker(function(e,r,n){var o=a["default"](e.children),s=void 0;return t.every(function(e){var t=o.filter(function(t){return t.props.bsRole===e});return t.length>1?(s=e,!1):!0}),s?new Error("(children) "+n+" - Duplicate children detected of bsRole: "+s+". Only one child each allowed with the following bsRoles: "+t.join(", ")):void 0})}},e.exports=t["default"]},function(e,t,r){"use strict";function n(e){var t=[];return void 0===e?t:(a["default"].forEach(e,function(e){t.push(e)}),t)}var o=r(2)["default"];t.__esModule=!0,t["default"]=n;var s=r(9),a=o(s);e.exports=t["default"]},function(e,t){"use strict";function r(e){var t=!1;return{eventKey:e,preventSelection:function(){t=!0},isSelectionPrevented:function(){return t}}}t.__esModule=!0,t["default"]=r,e.exports=t["default"]},function(e,t,r){e.exports={"default":r(169),__esModule:!0}},function(e,t,r){r(179),e.exports=r(26).Object.assign},function(e,t,r){var n=r(45);e.exports=function(e,t){return n.create(e,t)}},function(e,t,r){r(180),e.exports=r(26).Object.keys},function(e,t,r){r(181),e.exports=r(26).Object.setPrototypeOf},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,r){var n=r(81);e.exports=function(e){if(!n(e))throw TypeError(e+" is not an object!");return e}},function(e,t){var r={}.toString;e.exports=function(e){return r.call(e).slice(8,-1)}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t){var r=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},function(e,t,r){var n=r(172);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==n(e)?e.split(""):Object(e)}},function(e,t,r){var n=r(45),o=r(82),s=r(175);e.exports=r(80)(function(){var e=Object.assign,t={},r={},n=Symbol(),o="abcdefghijklmnopqrst";return t[n]=7,o.split("").forEach(function(e){r[e]=e}),7!=e({},t)[n]||Object.keys(e({},r)).join("")!=o})?function(e,t){for(var r=o(e),a=arguments,i=a.length,l=1,u=n.getKeys,p=n.getSymbols,d=n.isEnum;i>l;)for(var f,c=s(a[l++]),h=p?u(c).concat(p(c)):u(c),v=h.length,y=0;v>y;)d.call(c,f=h[y++])&&(r[f]=c[f]);return r}:Object.assign},function(e,t,r){var n=r(44),o=r(26),s=r(80);e.exports=function(e,t){var r=(o.Object||{})[e]||Object[e],a={};a[e]=t(r),n(n.S+n.F*s(function(){r(1)}),"Object",a)}},function(e,t,r){var n=r(45).getDesc,o=r(81),s=r(171),a=function(e,t){if(s(e),!o(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,o){try{o=r(79)(Function.call,n(Object.prototype,"__proto__").set,2),o(e,[]),t=!(e instanceof Array)}catch(s){t=!0}return function(e,r){return a(e,r),t?e.__proto__=r:o(e,r),e}}({},!1):void 0),check:a}},function(e,t,r){var n=r(44);n(n.S+n.F,"Object",{assign:r(176)})},function(e,t,r){var n=r(82);r(177)("keys",function(e){return function(t){return e(n(t))}})},function(e,t,r){var n=r(44);n(n.S,"Object",{setPrototypeOf:r(178).set})},function(e,t,r){"use strict";var n=r(84);e.exports=function(e,t){e.classList?e.classList.add(t):n(e)||(e.className=e.className+" "+t)}},function(e,t,r){"use strict";e.exports={addClass:r(182),removeClass:r(184),hasClass:r(84)}},function(e,t){"use strict";e.exports=function(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}},function(e,t,r){"use strict";var n=r(27),o=r(189);e.exports=function(e,t){return function(r){var s=r.currentTarget,a=r.target,i=o(s,e);i.some(function(e){return n(e,a)})&&t.call(this,r)}}},function(e,t,r){"use strict";var n=r(46),o=r(85),s=r(185);e.exports={on:n,off:o,filter:s}},function(e,t,r){"use strict";function n(e){return e.nodeName&&e.nodeName.toLowerCase()}function o(e){for(var t=(0,i["default"])(e),r=e&&e.offsetParent;r&&"html"!==n(e)&&"static"===(0,u["default"])(r,"position");)r=r.offsetParent;return r||t.documentElement}var s=r(34);t.__esModule=!0,t["default"]=o;var a=r(23),i=s.interopRequireDefault(a),l=r(33),u=s.interopRequireDefault(l);e.exports=t["default"]},function(e,t,r){"use strict";function n(e){return e.nodeName&&e.nodeName.toLowerCase()}function o(e,t){var r,o={top:0,left:0};return"fixed"===(0,v["default"])(e,"position")?r=e.getBoundingClientRect():(t=t||(0,u["default"])(e),r=(0,i["default"])(e),"html"!==n(t)&&(o=(0,i["default"])(t)),o.top+=parseInt((0,v["default"])(t,"borderTopWidth"),10)-(0,d["default"])(t)||0,o.left+=parseInt((0,v["default"])(t,"borderLeftWidth"),10)-(0,c["default"])(t)||0),s._extends({},r,{top:r.top-o.top-(parseInt((0,v["default"])(e,"marginTop"),10)||0),left:r.left-o.left-(parseInt((0,v["default"])(e,"marginLeft"),10)||0)})}var s=r(34);t.__esModule=!0,t["default"]=o;var a=r(86),i=s.interopRequireDefault(a),l=r(187),u=s.interopRequireDefault(l),p=r(87),d=s.interopRequireDefault(p),f=r(190),c=s.interopRequireDefault(f),h=r(33),v=s.interopRequireDefault(h);e.exports=t["default"]},function(e,t){"use strict";var r=/^[\w-]*$/,n=Function.prototype.bind.call(Function.prototype.call,[].slice);e.exports=function(e,t){var o,s="#"===t[0],a="."===t[0],i=s||a?t.slice(1):t,l=r.test(i);return l?s?(e=e.getElementById?e:document,(o=e.getElementById(i))?[o]:[]):n(e.getElementsByClassName&&a?e.getElementsByClassName(i):e.getElementsByTagName(t)):n(e.querySelectorAll(t))}},function(e,t,r){"use strict";var n=r(32);e.exports=function(e,t){var r=n(e);return void 0===t?r?"pageXOffset"in r?r.pageXOffset:r.document.documentElement.scrollLeft:e.scrollLeft:void(r?r.scrollTo(t,"pageYOffset"in r?r.pageYOffset:r.document.documentElement.scrollTop):e.scrollLeft=t)}},function(e,t,r){"use strict";var n=r(34),o=r(88),s=n.interopRequireDefault(o),a=/^(top|right|bottom|left)$/,i=/^([+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/i;e.exports=function(e){if(!e)throw new TypeError("No Element passed to `getComputedStyle()`");var t=e.ownerDocument;return"defaultView"in t?t.defaultView.opener?e.ownerDocument.defaultView.getComputedStyle(e,null):window.getComputedStyle(e,null):{getPropertyValue:function(t){var r=e.style;t=(0,s["default"])(t),"float"==t&&(t="styleFloat");var n=e.currentStyle[t]||null;if(null==n&&r&&r[t]&&(n=r[t]),i.test(n)&&!a.test(t)){var o=r.left,l=e.runtimeStyle,u=l&&l.left;u&&(l.left=e.currentStyle.left),r.left="fontSize"===t?"1em":n,n=r.pixelLeft+"px",r.left=o,u&&(l.left=u)}return n}}}},function(e,t){"use strict";e.exports=function(e,t){return"removeProperty"in e.style?e.style.removeProperty(t):e.style.removeAttribute(t)}},function(e,t,r){"use strict";function n(){var e,t="",r={O:"otransitionend",Moz:"transitionend",Webkit:"webkitTransitionEnd",ms:"MSTransitionEnd"},n=document.createElement("div");for(var o in r)if(u.call(r,o)&&void 0!==n.style[o+"TransitionProperty"]){t="-"+o.toLowerCase()+"-",e=r[o];break}return e||void 0===n.style.transitionProperty||(e="transitionend"),{end:e,prefix:t}}var o,s,a,i,l=r(20),u=Object.prototype.hasOwnProperty,p="transform",d={};l&&(d=n(),p=d.prefix+p,a=d.prefix+"transition-property",s=d.prefix+"transition-duration",i=d.prefix+"transition-delay",o=d.prefix+"transition-timing-function"),e.exports={transform:p,end:d.end,property:a,timing:o,delay:i,duration:s}},function(e,t){"use strict";var r=/-(.)/g;e.exports=function(e){return e.replace(r,function(e,t){return t.toUpperCase()})}},function(e,t){"use strict";var r=/([A-Z])/g;e.exports=function(e){return e.replace(r,"-$1").toLowerCase()}},function(e,t,r){"use strict";var n=r(195),o=/^ms-/;e.exports=function(e){return n(e).replace(o,"-ms-")}},function(e,t){function r(e){var t=e?e.length:0;return t?e[t-1]:void 0}e.exports=r},function(e,t,r){var n=r(206),o=r(224),s=o(n);e.exports=s},function(e,t,r){(function(t){function n(e){var t=e?e.length:0;for(this.data={hash:i(null),set:new a};t--;)this.push(e[t])}var o=r(220),s=r(35),a=s(t,"Set"),i=s(Object,"create");n.prototype.push=o,e.exports=n}).call(t,function(){return this}())},function(e,t){function r(e,t){for(var r=-1,n=e.length;++r<n&&t(e[r],r,e)!==!1;);return e}e.exports=r},function(e,t){function r(e,t){for(var r=-1,n=e.length,o=Array(n);++r<n;)o[r]=t(e[r],r,e);return o}e.exports=r},function(e,t){function r(e,t){for(var r=-1,n=t.length,o=e.length;++r<n;)e[o+r]=t[r];return e}e.exports=r},function(e,t){function r(e,t){for(var r=-1,n=e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}e.exports=r},function(e,t,r){function n(e,t,r){var n=typeof e;return"function"==n?void 0===t?e:a(e,t,r):null==e?i:"object"==n?o(e):void 0===t?l(e):s(e,t)}var o=r(214),s=r(215),a=r(48),i=r(106),l=r(234);e.exports=n},function(e,t,r){function n(e,t){var r=e?e.length:0,n=[];if(!r)return n;var l=-1,u=o,p=!0,d=p&&t.length>=i?a(t):null,f=t.length;d&&(u=s,p=!1,t=d);e:for(;++l<r;){var c=e[l];if(p&&c===c){for(var h=f;h--;)if(t[h]===c)continue e;n.push(c)}else u(t,c,0)<0&&n.push(c)}return n}var o=r(211),s=r(219),a=r(223),i=200;e.exports=n},function(e,t,r){var n=r(210),o=r(221),s=o(n);e.exports=s},function(e,t){function r(e,t,r,n){var o;return r(e,function(e,r,s){return t(e,r,s)?(o=n?r:e,!1):void 0}),o}e.exports=r},function(e,t){function r(e,t,r){for(var n=e.length,o=r?n:-1;r?o--:++o<n;)if(t(e[o],o,e))return o;return-1}e.exports=r},function(e,t,r){function n(e,t){return o(e,t,s)}var o=r(93),s=r(53);e.exports=n},function(e,t,r){function n(e,t){return o(e,t,s)}var o=r(93),s=r(52);e.exports=n},function(e,t,r){function n(e,t,r){if(t!==t)return o(e,r);for(var n=r-1,s=e.length;++n<s;)if(e[n]===t)return n;return-1}var o=r(229);e.exports=n},function(e,t,r){function n(e,t,r,n,c,y,m){var b=i(e),g=i(t),T=d,x=d;b||(T=v.call(e),T==p?T=f:T!=f&&(b=u(e))),g||(x=v.call(t),x==p?x=f:x!=f&&(g=u(t)));var P=T==f&&!l(e),E=x==f&&!l(t),C=T==x;if(C&&!b&&!P)return s(e,t,T);if(!c){var _=P&&h.call(e,"__wrapped__"),N=E&&h.call(t,"__wrapped__");if(_||N)return r(_?e.value():e,N?t.value():t,n,c,y,m)}if(!C)return!1;y||(y=[]),m||(m=[]);for(var S=y.length;S--;)if(y[S]==e)return m[S]==t;y.push(e),m.push(t);var O=(b?o:a)(e,t,r,n,c,y,m);return y.pop(),m.pop(),O}var o=r(225),s=r(226),a=r(227),i=r(16),l=r(98),u=r(232),p="[object Arguments]",d="[object Array]",f="[object Object]",c=Object.prototype,h=c.hasOwnProperty,v=c.toString;e.exports=n},function(e,t,r){function n(e,t,r){var n=t.length,a=n,i=!r;if(null==e)return!a;for(e=s(e);n--;){var l=t[n];if(i&&l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++n<a;){l=t[n];var u=l[0],p=e[u],d=l[1];if(i&&l[2]){if(void 0===p&&!(u in e))return!1}else{var f=r?r(p,d,u):void 0;if(!(void 0===f?o(d,p,r,!0):f))return!1}}return!0}var o=r(95),s=r(14);e.exports=n},function(e,t,r){function n(e){var t=s(e);if(1==t.length&&t[0][2]){var r=t[0][0],n=t[0][1];return function(e){return null==e?!1:(e=a(e),e[r]===n&&(void 0!==n||r in e))}}return function(e){return o(e,t)}}var o=r(213),s=r(228),a=r(14);e.exports=n},function(e,t,r){function n(e,t){var r=i(e),n=l(e)&&u(t),c=e+"";return e=f(e),function(i){if(null==i)return!1;var l=c;if(i=d(i),(r||!n)&&!(l in i)){if(i=1==e.length?i:o(i,a(e,0,-1)),null==i)return!1;l=p(e),i=d(i)}return i[l]===t?void 0!==t||l in i:s(t,i[l],void 0,!0)}}var o=r(94),s=r(95),a=r(217),i=r(16),l=r(100),u=r(101),p=r(197),d=r(14),f=r(104);e.exports=n},function(e,t,r){function n(e){var t=e+"";return e=s(e),function(r){return o(r,e,t)}}var o=r(94),s=r(104);e.exports=n},function(e,t){function r(e,t,r){var n=-1,o=e.length;t=null==t?0:+t||0,0>t&&(t=-t>o?0:o+t),r=void 0===r||r>o?o:+r||0,0>r&&(r+=o),o=t>r?0:r-t>>>0,t>>>=0;for(var s=Array(o);++n<o;)s[n]=e[n+t];return s}e.exports=r},function(e,t){function r(e){return null==e?"":e+""}e.exports=r},function(e,t,r){function n(e,t){var r=e.data,n="string"==typeof t||o(t)?r.set.has(t):r.hash[t];return n?0:-1}var o=r(17);e.exports=n},function(e,t,r){function n(e){var t=this.data;"string"==typeof e||o(e)?t.set.add(e):t.hash[e]=!0}var o=r(17);e.exports=n},function(e,t,r){function n(e,t){return function(r,n){var i=r?o(r):0;if(!s(i))return e(r,n);for(var l=t?i:-1,u=a(r);(t?l--:++l<i)&&n(u[l],l,u)!==!1;);return r}}var o=r(97),s=r(24),a=r(14);e.exports=n},function(e,t,r){function n(e){return function(t,r,n){for(var s=o(t),a=n(t),i=a.length,l=e?i:-1;e?l--:++l<i;){var u=a[l];if(r(s[u],u,s)===!1)break}return t}}var o=r(14);e.exports=n},function(e,t,r){(function(t){function n(e){return i&&a?new o(e):null}var o=r(199),s=r(35),a=s(t,"Set"),i=s(Object,"create");e.exports=n}).call(t,function(){return this}())},function(e,t,r){function n(e,t){return function(r,n,l){if(n=o(n,l,3),i(r)){var u=a(r,n,t);return u>-1?r[u]:void 0}return s(r,n,e)}}var o=r(204),s=r(207),a=r(208),i=r(16);e.exports=n},function(e,t,r){function n(e,t,r,n,s,a,i){var l=-1,u=e.length,p=t.length;if(u!=p&&!(s&&p>u))return!1;for(;++l<u;){var d=e[l],f=t[l],c=n?n(s?f:d,s?d:f,l):void 0;if(void 0!==c){if(c)continue;return!1}if(s){if(!o(t,function(e){return d===e||r(d,e,n,s,a,i)}))return!1}else if(d!==f&&!r(d,f,n,s,a,i))return!1}return!0}var o=r(203);e.exports=n},function(e,t){function r(e,t,r){switch(r){case n:case o:return+e==+t;case s:return e.name==t.name&&e.message==t.message;case a:return e!=+e?t!=+t:e==+t;case i:case l:return e==t+""}return!1}var n="[object Boolean]",o="[object Date]",s="[object Error]",a="[object Number]",i="[object RegExp]",l="[object String]";e.exports=r},function(e,t,r){function n(e,t,r,n,s,i,l){var u=o(e),p=u.length,d=o(t),f=d.length;if(p!=f&&!s)return!1;for(var c=p;c--;){var h=u[c];if(!(s?h in t:a.call(t,h)))return!1}for(var v=s;++c<p;){ +h=u[c];var y=e[h],m=t[h],b=n?n(s?m:y,s?y:m,h):void 0;if(!(void 0===b?r(y,m,n,s,i,l):b))return!1;v||(v="constructor"==h)}if(!v){var g=e.constructor,T=t.constructor;if(g!=T&&"constructor"in e&&"constructor"in t&&!("function"==typeof g&&g instanceof g&&"function"==typeof T&&T instanceof T))return!1}return!0}var o=r(52),s=Object.prototype,a=s.hasOwnProperty;e.exports=n},function(e,t,r){function n(e){for(var t=s(e),r=t.length;r--;)t[r][2]=o(t[r][1]);return t}var o=r(101),s=r(233);e.exports=n},function(e,t){function r(e,t,r){for(var n=e.length,o=t+(r?0:-1);r?o--:++o<n;){var s=e[o];if(s!==s)return o}return-1}e.exports=r},function(e,t,r){function n(e){for(var t=u(e),r=t.length,n=r&&e.length,p=!!n&&i(n)&&(s(e)||o(e)||l(e)),f=-1,c=[];++f<r;){var h=t[f];(p&&a(h,n)||d.call(e,h))&&c.push(h)}return c}var o=r(50),s=r(16),a=r(99),i=r(24),l=r(51),u=r(53),p=Object.prototype,d=p.hasOwnProperty;e.exports=n},function(e,t,r){function n(e){return null==e?!1:o(e)?d.test(u.call(e)):a(e)&&(s(e)?d:i).test(e)}var o=r(105),s=r(98),a=r(21),i=/^\[object .+?Constructor\]$/,l=Object.prototype,u=Function.prototype.toString,p=l.hasOwnProperty,d=RegExp("^"+u.call(p).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=n},function(e,t,r){function n(e){return s(e)&&o(e.length)&&!!w[M.call(e)]}var o=r(24),s=r(21),a="[object Arguments]",i="[object Array]",l="[object Boolean]",u="[object Date]",p="[object Error]",d="[object Function]",f="[object Map]",c="[object Number]",h="[object Object]",v="[object RegExp]",y="[object Set]",m="[object String]",b="[object WeakMap]",g="[object ArrayBuffer]",T="[object Float32Array]",x="[object Float64Array]",P="[object Int8Array]",E="[object Int16Array]",C="[object Int32Array]",_="[object Uint8Array]",N="[object Uint8ClampedArray]",S="[object Uint16Array]",O="[object Uint32Array]",w={};w[T]=w[x]=w[P]=w[E]=w[C]=w[_]=w[N]=w[S]=w[O]=!0,w[a]=w[i]=w[g]=w[l]=w[u]=w[p]=w[d]=w[f]=w[c]=w[h]=w[v]=w[y]=w[m]=w[b]=!1;var k=Object.prototype,M=k.toString;e.exports=n},function(e,t,r){function n(e){e=s(e);for(var t=-1,r=o(e),n=r.length,a=Array(n);++t<n;){var i=r[t];a[t]=[i,e[i]]}return a}var o=r(52),s=r(14);e.exports=n},function(e,t,r){function n(e){return a(e)?o(e):s(e)}var o=r(96),s=r(216),a=r(100);e.exports=n},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}t.__esModule=!0;var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},a=r(1),i=n(a),l=r(22),u=n(l),p=r(57),d=n(p),f=r(113),c=n(f),h=r(107),v=n(h),y=r(236),m=n(y),b=r(28),g=n(b),T=r(110),x=n(T),P=r(239),E=n(P),C=r(20),_=n(C),N=r(83),S=n(N),O=r(27),w=n(O),k=r(56),M=n(k),I=new m["default"],D=i["default"].createClass({displayName:"Modal",propTypes:s({},v["default"].propTypes,{container:i["default"].PropTypes.oneOfType([d["default"],i["default"].PropTypes.func]),onShow:i["default"].PropTypes.func,onHide:i["default"].PropTypes.func,backdrop:i["default"].PropTypes.oneOfType([i["default"].PropTypes.bool,i["default"].PropTypes.oneOf(["static"])]),onEscapeKeyUp:i["default"].PropTypes.func,onBackdropClick:i["default"].PropTypes.func,backdropStyle:i["default"].PropTypes.object,backdropClassName:i["default"].PropTypes.string,containerClassName:i["default"].PropTypes.string,keyboard:i["default"].PropTypes.bool,transition:c["default"],dialogTransitionTimeout:i["default"].PropTypes.number,backdropTransitionTimeout:i["default"].PropTypes.number,autoFocus:i["default"].PropTypes.bool,enforceFocus:i["default"].PropTypes.bool}),getDefaultProps:function(){var e=function(){};return{show:!1,backdrop:!0,keyboard:!0,autoFocus:!0,enforceFocus:!0,onHide:e}},getInitialState:function(){return{exited:!this.props.show}},render:function(){var e=this,t=this.props,r=(t.children,t.transition),n=t.backdrop,s=t.dialogTransitionTimeout,l=o(t,["children","transition","backdrop","dialogTransitionTimeout"]),u=l.onExit,p=l.onExiting,d=l.onEnter,f=l.onEntering,c=l.onEntered,h=!!l.show,y=i["default"].Children.only(this.props.children),m=function(t){return e.mountNode=!t||t.getMountNode()},b=h||r&&!this.state.exited;if(!b)return null;var g=y.props,T=g.role,x=g.tabIndex;return(void 0===T||void 0===x)&&(y=a.cloneElement(y,{role:void 0===T?"document":T,tabIndex:null==x?"-1":x})),r&&(y=i["default"].createElement(r,{transitionAppear:!0,unmountOnExit:!0,"in":h,timeout:s,onExit:u,onExiting:p,onExited:this.handleHidden,onEnter:d,onEntering:f,onEntered:c},y)),i["default"].createElement(v["default"],{ref:m,container:l.container},i["default"].createElement("div",{ref:"modal",role:l.role||"dialog",style:l.style,className:l.className},n&&this.renderBackdrop(),y))},renderBackdrop:function(){var e=this.props,t=e.transition,r=e.backdropTransitionTimeout,n=i["default"].createElement("div",{ref:"backdrop",style:this.props.backdropStyle,className:this.props.backdropClassName,onClick:this.handleBackdropClick});return t&&(n=i["default"].createElement(t,{transitionAppear:!0,"in":this.props.show,timeout:r},n)),n},componentWillReceiveProps:function(e){e.show?this.setState({exited:!1}):e.transition||this.setState({exited:!0})},componentWillUpdate:function(e){e.show&&this.checkForFocus()},componentDidMount:function(){this.props.show&&this.onShow()},componentDidUpdate:function(e){var t=this.props.transition;!e.show||this.props.show||t?!e.show&&this.props.show&&this.onShow():this.onHide()},componentWillUnmount:function(){var e=this.props,t=e.show,r=e.transition;(t||r&&!this.state.exited)&&this.onHide()},onShow:function(){var e=g["default"](this),t=M["default"](this.props.container,e.body);I.add(this,t,this.props.containerClassName),this._onDocumentKeyupListener=x["default"](e,"keyup",this.handleDocumentKeyUp),this._onFocusinListener=E["default"](this.enforceFocus),this.focus()},onHide:function(){I.remove(this),this._onDocumentKeyupListener.remove(),this._onFocusinListener.remove(),this.restoreLastFocus()},handleHidden:function(){if(this.setState({exited:!0}),this.onHide(),this.props.onExited){var e;(e=this.props).onExited.apply(e,arguments)}},handleBackdropClick:function(e){e.target===e.currentTarget&&(this.props.onBackdropClick&&this.props.onBackdropClick(e),this.props.backdrop===!0&&this.props.onHide())},handleDocumentKeyUp:function(e){this.props.keyboard&&27===e.keyCode&&this.isTopModal()&&(this.props.onEscapeKeyUp&&this.props.onEscapeKeyUp(e),this.props.onHide())},checkForFocus:function(){_["default"]&&(this.lastFocus=S["default"]())},focus:function(){var e=this.props.autoFocus,t=this.getDialogElement(),r=S["default"](g["default"](this)),n=r&&w["default"](t,r);t&&e&&!n&&(this.lastFocus=r,t.hasAttribute("tabIndex")||(t.setAttribute("tabIndex",-1),u["default"](!1,'The modal content node does not accept focus. For the benefit of assistive technologies, the tabIndex of the node is being set to "-1".')),t.focus())},restoreLastFocus:function(){this.lastFocus&&this.lastFocus.focus&&(this.lastFocus.focus(),this.lastFocus=null)},enforceFocus:function A(){var A=this.props.enforceFocus;if(A&&this.isMounted()&&this.isTopModal()){var e=S["default"](g["default"](this)),t=this.getDialogElement();t&&t!==e&&!w["default"](t,e)&&t.focus()}},getDialogElement:function(){var e=this.refs.modal;return e&&e.lastChild},isTopModal:function(){return I.isTopModal(this)}});D.manager=I,t["default"]=D,e.exports=t["default"]},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){var r=-1;return e.some(function(e,n){return t(e,n)?(r=n,!0):void 0}),r}function a(e,t){return s(e,function(e){return-1!==e.modals.indexOf(t)})}t.__esModule=!0;var i=r(33),l=n(i),u=r(183),p=n(u),d=r(89),f=n(d),c=r(111),h=n(c),v=r(241),y=function(){function e(){var t=void 0===arguments[0]?!0:arguments[0];o(this,e),this.hideSiblingNodes=t,this.modals=[],this.containers=[],this.data=[]}return e.prototype.add=function(e,t,r){var n=this.modals.indexOf(e),o=this.containers.indexOf(t);if(-1!==n)return n;if(n=this.modals.length,this.modals.push(e),this.hideSiblingNodes&&v.hideSiblings(t,e.mountNode),-1!==o)return this.data[o].modals.push(e),n;var s={modals:[e],classes:r?r.split(/\s+/):[],style:{overflow:t.style.overflow,paddingRight:t.style.paddingRight}},a={overflow:"hidden"};return s.overflowing=h["default"](t),s.overflowing&&(a.paddingRight=parseInt(l["default"](t,"paddingRight")||0,10)+f["default"]()+"px"),l["default"](t,a),s.classes.forEach(p["default"].addClass.bind(null,t)),this.containers.push(t),this.data.push(s),n},e.prototype.remove=function(e){var t=this.modals.indexOf(e);if(-1!==t){var r=a(this.data,e),n=this.data[r],o=this.containers[r];n.modals.splice(n.modals.indexOf(e),1),this.modals.splice(t,1),0===n.modals.length?(Object.keys(n.style).forEach(function(e){return o.style[e]=n.style[e]}),n.classes.forEach(p["default"].removeClass.bind(null,o)),this.hideSiblingNodes&&v.showSiblings(o,e.mountNode),this.containers.splice(r,1),this.data.splice(r,1)):this.hideSiblingNodes&&v.ariaHidden(!1,n.modals[n.modals.length-1].mountNode)}},e.prototype.isTopModal=function(e){return!!this.modals.length&&this.modals[this.modals.length-1]===e},e}();t["default"]=y,e.exports=t["default"]},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},l=r(1),u=n(l),p=r(107),d=n(p),f=r(238),c=n(f),h=r(108),v=n(h),y=r(113),m=n(y),b=function(e){function t(r,n){s(this,t),e.call(this,r,n),this.state={exited:!r.show},this.onHiddenListener=this.handleHidden.bind(this)}return a(t,e),t.prototype.componentWillReceiveProps=function(e){e.show?this.setState({exited:!1}):e.transition||this.setState({exited:!0})},t.prototype.render=function(){var e=this.props,t=e.container,r=e.containerPadding,n=e.target,s=e.placement,a=e.rootClose,i=e.children,l=e.transition,p=o(e,["container","containerPadding","target","placement","rootClose","children","transition"]),f=p.show||l&&!this.state.exited;if(!f)return null;var h=i;if(h=u["default"].createElement(c["default"],{container:t,containerPadding:r,target:n,placement:s},h),l){var y=p.onExit,m=p.onExiting,b=p.onEnter,g=p.onEntering,T=p.onEntered;h=u["default"].createElement(l,{"in":p.show,transitionAppear:!0,onExit:y,onExiting:m,onExited:this.onHiddenListener,onEnter:b,onEntering:g,onEntered:T},h)}return a&&(h=u["default"].createElement(v["default"],{onRootClose:p.onHide},h)),u["default"].createElement(d["default"],{container:t},h)},t.prototype.handleHidden=function(){if(this.setState({exited:!0}),this.props.onExited){var e;(e=this.props).onExited.apply(e,arguments)}},t}(u["default"].Component);b.propTypes=i({},d["default"].propTypes,c["default"].propTypes,{show:u["default"].PropTypes.bool,rootClose:u["default"].PropTypes.bool,onHide:u["default"].PropTypes.func,transition:m["default"],onEnter:u["default"].PropTypes.func,onEntering:u["default"].PropTypes.func,onEntered:u["default"].PropTypes.func,onExit:u["default"].PropTypes.func,onExiting:u["default"].PropTypes.func,onExited:u["default"].PropTypes.func}),t["default"]=b,e.exports=t["default"]},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},l=r(1),u=n(l),p=r(12),d=n(p),f=r(4),c=n(f),h=r(28),v=n(h),y=r(56),m=n(y),b=r(242),g=r(57),T=n(g),x=function(e){function t(r,n){s(this,t),e.call(this,r,n),this.state={positionLeft:null,positionTop:null,arrowOffsetLeft:null,arrowOffsetTop:null},this._needsFlush=!1,this._lastTarget=null}return a(t,e),t.prototype.componentDidMount=function(){this.updatePosition()},t.prototype.componentWillReceiveProps=function(){this._needsFlush=!0},t.prototype.componentDidUpdate=function(e){this._needsFlush&&(this._needsFlush=!1,this.updatePosition(e.placement!==this.props.placement))},t.prototype.componentWillUnmount=function(){this._lastTarget=null},t.prototype.render=function(){var e=this.props,t=e.children,r=e.className,n=o(e,["children","className"]),s=this.state,a=s.positionLeft,p=s.positionTop,d=o(s,["positionLeft","positionTop"]),f=u["default"].Children.only(t);return l.cloneElement(f,i({},n,d,{positionLeft:a,positionTop:p,className:c["default"](r,f.props.className),style:i({},f.props.style,{left:a,top:p})}))},t.prototype.getTargetSafe=function(){if(!this.props.target)return null;var e=this.props.target(this.props);return e?e:null},t.prototype.updatePosition=function(e){var t=this.getTargetSafe();if(t!==this._lastTarget||e){if(this._lastTarget=t,!t)return void this.setState({positionLeft:null,positionTop:null,arrowOffsetLeft:null,arrowOffsetTop:null});var r=d["default"].findDOMNode(this),n=m["default"](this.props.container,v["default"](this).body);this.setState(b.calcOverlayPosition(this.props.placement,r,t,n,this.props.containerPadding))}},t}(u["default"].Component);x.propTypes={target:u["default"].PropTypes.func,container:T["default"],containerPadding:u["default"].PropTypes.number,placement:u["default"].PropTypes.oneOf(["top","right","bottom","left"])},x.displayName="Position",x.defaultProps={containerPadding:0,placement:"right"},t["default"]=x,e.exports=t["default"]},function(e,t){"use strict";function r(e){var t=!document.addEventListener,r=void 0;return t?(document.attachEvent("onfocusin",e),r=function(){return document.detachEvent("onfocusin",e)}):(document.addEventListener("focus",e,!0),r=function(){return document.removeEventListener("focus",e,!0)}),{remove:r}}t.__esModule=!0,t["default"]=r,e.exports=t["default"]},function(e,t){"use strict";function r(){for(var e=arguments.length,t=Array(e),r=0;e>r;r++)t[r]=arguments[r];return t.filter(function(e){return null!=e}).reduce(function(e,t){if("function"!=typeof t)throw new Error("Invalid Argument Type, must only provide functions, undefined, or null.");return null===e?t:function(){for(var r=arguments.length,n=Array(r),o=0;r>o;o++)n[o]=arguments[o];e.apply(this,n),t.apply(this,n)}},null)}t.__esModule=!0,t["default"]=r,e.exports=t["default"]},function(e,t){"use strict";function r(e,t){t&&(e?t.setAttribute("aria-hidden","true"):t.removeAttribute("aria-hidden"))}function n(e,t){i(e,t,function(e){return r(!0,e)})}function o(e,t){i(e,t,function(e){return r(!1,e)})}t.__esModule=!0,t.ariaHidden=r,t.hideSiblings=n,t.showSiblings=o;var s=["template","script","style"],a=function(e){var t=e.nodeType,r=e.tagName;return 1===t&&-1===s.indexOf(r.toLowerCase())},i=function(e,t,r){t=[].concat(t),[].forEach.call(e.children,function(e){-1===t.indexOf(e)&&a(e)&&r(e)})}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,r,n){var o=h.getContainerDimensions(r),s=o.scroll,a=o.height,i=e-n-s,l=e+n-s+t;return 0>i?-i:l>a?a-l:0}function s(e,t,r,n){var o=h.getContainerDimensions(r),s=o.width,a=e-n,i=e+n+t;return 0>a?-a:i>s?s-i:0}t.__esModule=!0;var a=r(28),i=n(a),l=r(86),u=n(l),p=r(188),d=n(p),f=r(87),c=n(f),h={getContainerDimensions:function(e){var t=void 0,r=void 0,n=void 0;if("BODY"===e.tagName)t=window.innerWidth,r=window.innerHeight,n=c["default"](i["default"](e).documentElement)||c["default"](e);else{var o=u["default"](e);t=o.width,r=o.height,n=c["default"](e)}return{width:t,height:r,scroll:n}},getPosition:function(e,t){var r="BODY"===t.tagName?u["default"](e):d["default"](e,t);return r},calcOverlayPosition:function(e,t,r,n,a){var i=h.getPosition(r,n),l=u["default"](t),p=l.height,d=l.width,f=void 0,c=void 0,v=void 0,y=void 0;if("left"===e||"right"===e){c=i.top+(i.height-p)/2,f="left"===e?i.left-d:i.left+i.width;var m=o(c,p,n,a);c+=m,y=50*(1-2*m/p)+"%",v=void 0}else{if("top"!==e&&"bottom"!==e)throw new Error('calcOverlayPosition(): No such placement of "'+e+'" found.');f=i.left+(i.width-d)/2,c="top"===e?i.top-p:i.top+i.height;var b=s(f,d,n,a);f+=b,v=50*(1-2*b/d)+"%",y=void 0}return{positionLeft:f,positionTop:c,arrowOffsetLeft:v,arrowOffsetTop:y}}};t["default"]=h,e.exports=t["default"]},function(e,t){"use strict";function r(){function e(e,t,n){var o=r.map(function(t){return e[t]}).reduce(function(e,t){return e+(void 0!==t?1:0)},0);if(o>1){var s=r[0],a=r.slice(1),i=a.join(", ")+" and "+s;return new Error("Invalid prop '"+t+"', only one of the following may be provided: "+i)}}for(var t=arguments.length,r=Array(t),n=0;t>n;n++)r[n]=arguments[n];return e}t.__esModule=!0,t["default"]=r,e.exports=t["default"]},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t}function o(e){return e&&e.__esModule?e:{"default":e}}function s(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}function a(e,t){function r(r,n){function o(e,r){var o=d.getLinkName(e),s=this.props[n[e]];o&&a(this.props,o)&&!s&&(s=this.props[o].requestChange);for(var i=arguments.length,l=Array(i>2?i-2:0),u=2;i>u;u++)l[u-2]=arguments[u];t(this,e,s,r,l)}function a(e,t){return void 0!==e[t]}var l,p=arguments.length<=2||void 0===arguments[2]?[]:arguments[2],f=r.displayName||r.name||"Component",c=d.getType(r).propTypes;l=d.uncontrolledPropTypes(n,c,f),p=d.transform(p,function(e,t){e[t]=function(){var e;return(e=this.refs.inner)[t].apply(e,arguments)}},{});var h=u["default"].createClass(i({displayName:"Uncontrolled("+f+")",mixins:e,propTypes:l},p,{componentWillMount:function(){var e=this.props,t=Object.keys(n);this._values=d.transform(t,function(t,r){t[r]=e[d.defaultKey(r)]},{})},componentWillReceiveProps:function(e){var t=this,r=this.props,o=Object.keys(n);o.forEach(function(n){void 0===d.getValue(e,n)&&void 0!==d.getValue(r,n)&&(t._values[n]=e[d.defaultKey(n)])})},render:function(){var e=this,t={},l=this.props,p=(l.valueLink,l.checkedLink,s(l,["valueLink","checkedLink"]));return d.each(n,function(r,n){var s=d.getLinkName(n),i=e.props[n];s&&!a(e.props,n)&&a(e.props,s)&&(i=e.props[s].value),t[n]=void 0!==i?i:e._values[n],t[r]=o.bind(e,n)}),t=i({},p,t,{ref:"inner"}),u["default"].createElement(r,t)}}));return h.ControlledComponent=r,h}return r}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e};t["default"]=a;var l=r(1),u=o(l),p=r(245),d=n(p);e.exports=t["default"]},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,r){return function(n,o){return void 0!==n[o]?n[e]?t&&t(n,o,r):new Error("You have provided a `"+o+"` prop to `"+r+"` without an `"+e+"` handler. This will render a read-only field. If the field should be mutable use `"+p(o)+"`. Otherwise, set `"+e+"`"):void 0}}function s(e,t,r){var n={};return n}function a(e){return 0===b[0]&&b[1]>=13?e:e.type}function i(e,t){var r=u(t);return r&&!l(e,t)&&l(e,r)?e[r].value:e[t]}function l(e,t){return void 0!==e[t]}function u(e){return"value"===e?"valueLink":"checked"===e?"checkedLink":null}function p(e){return"default"+e.charAt(0).toUpperCase()+e.substr(1)}function d(e,t,r){return function(){for(var n=arguments.length,o=Array(n),s=0;n>s;s++)o[s]=arguments[s];t&&t.call.apply(t,[e].concat(o)),r&&r.call.apply(r,[e].concat(o))}}function f(e,t,r){return c(e,t.bind(null,r=r||(Array.isArray(e)?[]:{}))),r}function c(e,t,r){if(Array.isArray(e))return e.forEach(t,r);for(var n in e)h(e,n)&&t.call(r,e[n],n,e)}function h(e,t){return e?Object.prototype.hasOwnProperty.call(e,t):!1}t.__esModule=!0,t.customPropType=o,t.uncontrolledPropTypes=s,t.getType=a,t.getValue=i,t.getLinkName=u,t.defaultKey=p,t.chain=d,t.transform=f,t.each=c,t.has=h;var v=r(1),y=n(v),m=r(90),b=(n(m),y["default"].version.split(".").map(parseFloat));t.version=b}])}); +//# sourceMappingURL=react-bootstrap.min.js.map
\ No newline at end of file diff --git a/web/static/js/react-dom-0.14.0.js b/web/static/js/react-dom-0.14.0.js deleted file mode 100644 index 8b3e85d6b..000000000 --- a/web/static/js/react-dom-0.14.0.js +++ /dev/null @@ -1,42 +0,0 @@ -/** - * ReactDOM v0.14.0 - * - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ -// Based off https://github.com/ForbesLindesay/umd/blob/master/template.js -;(function(f) { - // CommonJS - if (typeof exports === "object" && typeof module !== "undefined") { - module.exports = f(require('react')); - - // RequireJS - } else if (typeof define === "function" && define.amd) { - define(['react'], f); - - // <script> - } else { - var g - if (typeof window !== "undefined") { - g = window; - } else if (typeof global !== "undefined") { - g = global; - } else if (typeof self !== "undefined") { - g = self; - } else { - // works providing we're not in "use strict"; - // needed for Java 8 Nashorn - // see https://github.com/facebook/react/issues/3037 - g = this; - } - g.ReactDOM = f(g.React); - } - -})(function(React) { - return React.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; -}); diff --git a/web/static/js/react-dom-0.14.0.min.js b/web/static/js/react-dom-0.14.0.min.js deleted file mode 100644 index 43c53e25d..000000000 --- a/web/static/js/react-dom-0.14.0.min.js +++ /dev/null @@ -1,12 +0,0 @@ -/** - * ReactDOM v0.14.0 - * - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - */ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e(require("react"));else if("function"==typeof define&&define.amd)define(["react"],e);else{var f;f="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,f.ReactDOM=e(f.React)}}(function(e){return e.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED});
\ No newline at end of file diff --git a/web/static/js/react-dom-0.14.3.js b/web/static/js/react-dom-0.14.3.js new file mode 100644 index 000000000..02299f15a --- /dev/null +++ b/web/static/js/react-dom-0.14.3.js @@ -0,0 +1,42 @@ +/** + * ReactDOM v0.14.3 + * + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ +// Based off https://github.com/ForbesLindesay/umd/blob/master/template.js +;(function(f) { + // CommonJS + if (typeof exports === "object" && typeof module !== "undefined") { + module.exports = f(require('react')); + + // RequireJS + } else if (typeof define === "function" && define.amd) { + define(['react'], f); + + // <script> + } else { + var g + if (typeof window !== "undefined") { + g = window; + } else if (typeof global !== "undefined") { + g = global; + } else if (typeof self !== "undefined") { + g = self; + } else { + // works providing we're not in "use strict"; + // needed for Java 8 Nashorn + // see https://github.com/facebook/react/issues/3037 + g = this; + } + g.ReactDOM = f(g.React); + } + +})(function(React) { + return React.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; +}); diff --git a/web/static/js/react-dom-0.14.3.min.js b/web/static/js/react-dom-0.14.3.min.js new file mode 100644 index 000000000..5eabf87b6 --- /dev/null +++ b/web/static/js/react-dom-0.14.3.min.js @@ -0,0 +1,12 @@ +/** + * ReactDOM v0.14.3 + * + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e(require("react"));else if("function"==typeof define&&define.amd)define(["react"],e);else{var f;f="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,f.ReactDOM=e(f.React)}}(function(e){return e.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED});
\ No newline at end of file diff --git a/web/templates/channel.html b/web/templates/channel.html index c15cea178..8abbe36df 100644 --- a/web/templates/channel.html +++ b/web/templates/channel.html @@ -10,38 +10,29 @@ <div id="post_mention_tab"></div> <div id="reply_mention_tab"></div> <div id="edit_mention_tab"></div> - <div id="get_link_modal"></div> - <div id="user_settings_modal"></div> + <div id="get_team_invite_link_modal"></div> <div id="import_theme_modal"></div> <div id="team_settings_modal"></div> <div id="invite_member_modal"></div> - <div id="edit_channel_modal"></div> - <div id="delete_channel_modal"></div> <div id="rename_channel_modal"></div> - <div id="rename_team_modal"></div> <div id="edit_post_modal"></div> <div id="delete_post_modal"></div> <div id="more_channels_modal"></div> - <div id="new_channel_modal"></div> <div id="post_deleted_modal"></div> <div id="channel_notifications_modal"></div> <div id="team_members_modal"></div> - <div id="direct_channel_modal"></div> - <div id="channel_info_modal"></div> - <div id="access_history_modal"></div> - <div id="activity_log_modal"></div> <div id="removed_from_channel_modal"></div> <div id="register_app_modal"></div> <script> - window.setup_channel_page({{ .Props }}); +window.setup_channel_page({{ .Props }}, {{ .Team }}, {{ .Channel }}, {{ .User }}); $('body').tooltip( {selector: '[data-toggle=tooltip]'} ); + var modals = $('.modal-body').not('.edit-modal-body'); if($(window).height() > 1200){ - $('.modal-body').css('max-height', 1000); + modals.css('max-height', 1000); + } else { + modals.css('max-height', $(window).height() - 200); } - else { - $('.modal-body').css('max-height', $(window).height() - 200); - } - $('.modal-body').perfectScrollbar(); + modals.perfectScrollbar(); </script> </body> </html> diff --git a/web/templates/docs.html b/web/templates/docs.html new file mode 100644 index 000000000..21659e810 --- /dev/null +++ b/web/templates/docs.html @@ -0,0 +1,24 @@ +{{define "docs"}} +<!DOCTYPE html> +<html> +{{template "head" . }} +<body class="white"> +<div class="container-fluid"> + <div class="inner__wrap"> + <div class="row content"> + <div class="col-sm-12"> + <div id="docs"></div> + </div> + <div class="footer-push"></div> + </div> + <div class="row footer"> + {{template "footer" . }} + </div> + </div> +</div> +<script> + window.setup_documentation_page({{ .Props }}); +</script> +</body> +</html> +{{end}} diff --git a/web/templates/footer.html b/web/templates/footer.html index dc1a7c9d0..60dd5a40e 100644 --- a/web/templates/footer.html +++ b/web/templates/footer.html @@ -12,9 +12,28 @@ </div> </div> <script> - document.getElementById("help_link").setAttribute("href", '/static/help/help.html'); - document.getElementById("terms_link").setAttribute("href", '/static/help/terms.html'); - document.getElementById("privacy_link").setAttribute("href", '/static/help/privacy.html'); - document.getElementById("about_link").setAttribute("href", '/static/help/about.html'); + if (window.mm_config.HelpLink) { + document.getElementById("help_link").setAttribute("href", window.mm_config.HelpLink); + } else { + $("#help_link").remove(); + } + + if (window.mm_config.TermsOfServiceLink) { + document.getElementById("terms_link").setAttribute("href", window.mm_config.TermsOfServiceLink); + } else { + $("#terms_link").remove(); + } + + if (window.mm_config.PrivacyPolicyLink) { + document.getElementById("privacy_link").setAttribute("href", window.mm_config.PrivacyPolicyLink); + } else { + $("#privacy_link").remove(); + } + + if (window.mm_config.AboutLink) { + document.getElementById("about_link").setAttribute("href", window.mm_config.AboutLink); + } else { + $("#about_link").remove(); + } </script> {{end}} diff --git a/web/templates/head.html b/web/templates/head.html index 2bbf921ee..be4ed2b25 100644 --- a/web/templates/head.html +++ b/web/templates/head.html @@ -24,20 +24,22 @@ <link rel="stylesheet" href="/static/css/bootstrap-colorpicker.min.css"> <link rel="stylesheet" href="/static/css/styles.css"> <link rel="stylesheet" href="/static/css/google-fonts.css"> + <link rel="stylesheet" href="/static/css/katex.min.css"> <link rel="stylesheet" class="code_theme" href=""> <link id="favicon" rel="icon" href="/static/images/favicon.ico" type="image/x-icon"> <link rel="shortcut icon" href="/static/images/favicon.ico" type="image/x-icon"> - <script src="/static/js/react-0.14.0.js"></script> - <script src="/static/js/react-dom-0.14.0.js"></script> + <script src="/static/js/react-0.14.3.js"></script> + <script src="/static/js/react-dom-0.14.3.js"></script> <script src="/static/js/jquery-2.1.4.js"></script> <script src="/static/js/bootstrap-3.3.5.js"></script> <script src="/static/js/bootstrap-colorpicker.min.js"></script> - <script src="/static/js/react-bootstrap-0.27.1.js"></script> + <script src="/static/js/react-bootstrap-0.28.1.js"></script> <script src="/static/js/perfect-scrollbar-0.6.7.jquery.min.js"></script> <script src="/static/js/jquery-dragster/jquery.dragster.js"></script> - <script src="/static/js/babel-es6-polyfill.min.js"></script> + <script src="/static/js/babel-polyfill-6.1.18.min.js"></script> + <script src="/static/js/katex.min.js"></script> <style id="antiClickjack">body{display:none !important;}</style> @@ -45,6 +47,7 @@ window.mm_config = {{ .ClientCfg }}; window.mm_team = {{ .Team }}; window.mm_user = {{ .User }}; + window.mm_channel = {{ .Channel }}; if ({{.SessionTokenIndex}} >= 0) { window.mm_session_token_index = {{.SessionTokenIndex}}; @@ -55,7 +58,13 @@ $(function () { $(window).bind('storage', function (e) { - if (e.originalEvent.key === '__logout__') { + // when one tab on a browser logs out, it sets __logout__ in localStorage to trigger other tabs to log out + if (e.originalEvent.key === '__logout__' && e.originalEvent.storageArea === localStorage && e.originalEvent.newValue) { + // make sure it isn't this tab that is sending the logout signal (only necessary for IE11) + if (window.BrowserStore.isSignallingLogout(e.originalEvent.newValue)) { + return; + } + console.log('detected logout from a different tab'); window.location.href = '/' + window.mm_team.name; } diff --git a/web/web.go b/web/web.go index 02ceb69ba..63544229b 100644 --- a/web/web.go +++ b/web/web.go @@ -80,6 +80,8 @@ func InitWeb() { mainrouter.Handle("/hooks/{id:[A-Za-z0-9]+}", api.ApiAppHandler(incomingWebhook)).Methods("POST") + mainrouter.Handle("/docs/{doc:[A-Za-z0-9]+}", api.AppHandlerIndependent(docs)).Methods("GET") + // ---------------------------------------------------------------------------------------------- // *ANYTHING* team specific should go below this line // ---------------------------------------------------------------------------------------------- @@ -89,6 +91,7 @@ func InitWeb() { mainrouter.Handle("/{team:[A-Za-z0-9-]+(__)?[A-Za-z0-9-]+}/login", api.AppHandler(login)).Methods("GET") mainrouter.Handle("/{team:[A-Za-z0-9-]+(__)?[A-Za-z0-9-]+}/logout", api.AppHandler(logout)).Methods("GET") mainrouter.Handle("/{team:[A-Za-z0-9-]+(__)?[A-Za-z0-9-]+}/reset_password", api.AppHandler(resetPassword)).Methods("GET") + mainrouter.Handle("/{team}/pl/{postid}", api.AppHandler(postPermalink)).Methods("GET") // Bug in gorilla.mux prevents us from using regex here. mainrouter.Handle("/{team}/login/{service}", api.AppHandler(loginWithOAuth)).Methods("GET") // Bug in gorilla.mux prevents us from using regex here. mainrouter.Handle("/{team}/channels/{channelname}", api.AppHandler(getChannel)).Methods("GET") // Bug in gorilla.mux prevents us from using regex here. mainrouter.Handle("/{team}/signup/{service}", api.AppHandler(signupWithOAuth)).Methods("GET") // Bug in gorilla.mux prevents us from using regex here. @@ -340,15 +343,142 @@ func logout(c *api.Context, w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, c.GetTeamURL(), http.StatusTemporaryRedirect) } +func postPermalink(c *api.Context, w http.ResponseWriter, r *http.Request) { + params := mux.Vars(r) + teamName := params["team"] + postId := params["postid"] + + if len(postId) != 26 { + c.Err = model.NewAppError("postPermalink", "Invalid Post ID", "id="+postId) + return + } + + team := checkSessionSwitch(c, w, r, teamName) + if team == nil { + // Error already set by getTeam + return + } + + var post *model.Post + if result := <-api.Srv.Store.Post().Get(postId); result.Err != nil { + c.Err = result.Err + return + } else { + postlist := result.Data.(*model.PostList) + post = postlist.Posts[postlist.Order[0]] + } + + var channel *model.Channel + if result := <-api.Srv.Store.Channel().CheckPermissionsTo(c.Session.TeamId, post.ChannelId, c.Session.UserId); result.Err != nil { + c.Err = result.Err + return + } else { + if result.Data.(int64) == 0 { + if channel = autoJoinChannelId(c, w, r, post.ChannelId); channel == nil { + http.Redirect(w, r, c.GetTeamURL()+"/channels/town-square", http.StatusFound) + return + } + } else { + if result := <-api.Srv.Store.Channel().Get(post.ChannelId); result.Err != nil { + c.Err = result.Err + return + } else { + channel = result.Data.(*model.Channel) + } + } + } + + doLoadChannel(c, w, r, team, channel, post.Id) +} + func getChannel(c *api.Context, w http.ResponseWriter, r *http.Request) { params := mux.Vars(r) name := params["channelname"] teamName := params["team"] + team := checkSessionSwitch(c, w, r, teamName) + if team == nil { + // Error already set by getTeam + return + } + + var channel *model.Channel + if result := <-api.Srv.Store.Channel().CheckPermissionsToByName(c.Session.TeamId, name, c.Session.UserId); result.Err != nil { + c.Err = result.Err + return + } else { + channelId := result.Data.(string) + if len(channelId) == 0 { + if channel = autoJoinChannelName(c, w, r, name); channel == nil { + http.Redirect(w, r, c.GetTeamURL()+"/channels/town-square", http.StatusFound) + return + } + } else { + if result := <-api.Srv.Store.Channel().Get(channelId); result.Err != nil { + c.Err = result.Err + return + } else { + channel = result.Data.(*model.Channel) + } + } + } + + doLoadChannel(c, w, r, team, channel, "") +} + +func autoJoinChannelName(c *api.Context, w http.ResponseWriter, r *http.Request, channelName string) *model.Channel { + if strings.Index(channelName, "__") > 0 { + // It's a direct message channel that doesn't exist yet so let's create it + ids := strings.Split(channelName, "__") + otherUserId := "" + if ids[0] == c.Session.UserId { + otherUserId = ids[1] + } else { + otherUserId = ids[0] + } + + if sc, err := api.CreateDirectChannel(c, otherUserId); err != nil { + api.Handle404(w, r) + return nil + } else { + return sc + } + } else { + // We will attempt to auto-join open channels + return joinOpenChannel(c, w, r, api.Srv.Store.Channel().GetByName(c.Session.TeamId, channelName)) + } + + return nil +} + +func autoJoinChannelId(c *api.Context, w http.ResponseWriter, r *http.Request, channelId string) *model.Channel { + return joinOpenChannel(c, w, r, api.Srv.Store.Channel().Get(channelId)) +} + +func joinOpenChannel(c *api.Context, w http.ResponseWriter, r *http.Request, channel store.StoreChannel) *model.Channel { + if cr := <-channel; cr.Err != nil { + http.Redirect(w, r, c.GetTeamURL()+"/channels/town-square", http.StatusFound) + return nil + } else { + channel := cr.Data.(*model.Channel) + if channel.Type == model.CHANNEL_OPEN { + api.JoinChannel(c, channel.Id, "") + if c.Err != nil { + return nil + } + } else { + http.Redirect(w, r, c.GetTeamURL()+"/channels/town-square", http.StatusFound) + return nil + } + return channel + } +} + +func checkSessionSwitch(c *api.Context, w http.ResponseWriter, r *http.Request, teamName string) *model.Team { var team *model.Team if result := <-api.Srv.Store.Team().GetByName(teamName); result.Err != nil { c.Err = result.Err - return + return nil } else { team = result.Data.(*model.Team) } @@ -366,15 +496,11 @@ func getChannel(c *api.Context, w http.ResponseWriter, r *http.Request) { } } - userChan := api.Srv.Store.User().Get(c.Session.UserId) + return team +} - var channelId string - if result := <-api.Srv.Store.Channel().CheckPermissionsToByName(c.Session.TeamId, name, c.Session.UserId); result.Err != nil { - c.Err = result.Err - return - } else { - channelId = result.Data.(string) - } +func doLoadChannel(c *api.Context, w http.ResponseWriter, r *http.Request, team *model.Team, channel *model.Channel, postid string) { + userChan := api.Srv.Store.User().Get(c.Session.UserId) var user *model.User if ur := <-userChan; ur.Err != nil { @@ -386,54 +512,15 @@ func getChannel(c *api.Context, w http.ResponseWriter, r *http.Request) { user = ur.Data.(*model.User) } - if len(channelId) == 0 { - if strings.Index(name, "__") > 0 { - // It's a direct message channel that doesn't exist yet so let's create it - ids := strings.Split(name, "__") - otherUserId := "" - if ids[0] == c.Session.UserId { - otherUserId = ids[1] - } else { - otherUserId = ids[0] - } - - if sc, err := api.CreateDirectChannel(c, otherUserId); err != nil { - api.Handle404(w, r) - return - } else { - channelId = sc.Id - } - } else { - // We will attempt to auto-join open channels - if cr := <-api.Srv.Store.Channel().GetByName(c.Session.TeamId, name); cr.Err != nil { - http.Redirect(w, r, c.GetTeamURL()+"/channels/town-square", http.StatusFound) - } else { - channel := cr.Data.(*model.Channel) - if channel.Type == model.CHANNEL_OPEN { - api.JoinChannel(c, channel.Id, "") - if c.Err != nil { - return - } - - channelId = channel.Id - } else { - http.Redirect(w, r, c.GetTeamURL()+"/channels/town-square", http.StatusFound) - } - } - } - } - page := NewHtmlTemplatePage("channel", "") - page.Props["Title"] = name + " - " + team.DisplayName + " " + page.ClientCfg["SiteName"] + page.Props["Title"] = channel.DisplayName + " - " + team.DisplayName + " " + page.ClientCfg["SiteName"] page.Props["TeamDisplayName"] = team.DisplayName - page.Props["TeamName"] = team.Name - page.Props["TeamType"] = team.Type - page.Props["TeamId"] = team.Id - page.Props["ChannelName"] = name - page.Props["ChannelId"] = channelId - page.Props["UserId"] = c.Session.UserId + page.Props["ChannelName"] = channel.Name + page.Props["ChannelId"] = channel.Id + page.Props["PostId"] = postid page.Team = team page.User = user + page.Channel = channel page.Render(c, w) } @@ -477,7 +564,7 @@ func verifyEmail(c *api.Context, w http.ResponseWriter, r *http.Request) { return } else { c.LogAudit("Email Verified") - http.Redirect(w, r, api.GetProtocol(r)+"://"+r.Host+"/"+name+"/login?verified=true&email="+email, http.StatusTemporaryRedirect) + http.Redirect(w, r, api.GetProtocol(r)+"://"+r.Host+"/"+name+"/login?verified=true&email="+url.QueryEscape(email), http.StatusTemporaryRedirect) return } } @@ -494,6 +581,15 @@ func findTeam(c *api.Context, w http.ResponseWriter, r *http.Request) { page.Render(c, w) } +func docs(c *api.Context, w http.ResponseWriter, r *http.Request) { + params := mux.Vars(r) + doc := params["doc"] + + page := NewHtmlTemplatePage("docs", "Documentation") + page.Props["Site"] = doc + page.Render(c, w) +} + func resetPassword(c *api.Context, w http.ResponseWriter, r *http.Request) { isResetLink := true hash := r.URL.Query().Get("h") diff --git a/web/web_test.go b/web/web_test.go index 4e15037ad..8d40810b5 100644 --- a/web/web_test.go +++ b/web/web_test.go @@ -60,7 +60,7 @@ func TestGetAccessToken(t *testing.T) { team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} rteam, _ := ApiClient.CreateTeam(&team) - user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey@test.com", Password: "pwd"} + user := model.User{TeamId: rteam.Data.(*model.Team).Id, Email: strings.ToLower(model.NewId()) + "corey+test@test.com", Password: "pwd"} ruser := ApiClient.Must(ApiClient.CreateUser(&user, "")).Data.(*model.User) store.Must(api.Srv.Store.User().VerifyEmail(ruser.Id)) @@ -189,7 +189,7 @@ func TestIncomingWebhook(t *testing.T) { team := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team = ApiClient.Must(ApiClient.CreateTeam(team)).Data.(*model.Team) - user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey@test.com", Nickname: "Corey Hulen", Password: "pwd"} + user := &model.User{TeamId: team.Id, Email: model.NewId() + "corey+test@test.com", Nickname: "Corey Hulen", Password: "pwd"} user = ApiClient.Must(ApiClient.CreateUser(user, "")).Data.(*model.User) store.Must(api.Srv.Store.User().VerifyEmail(user.Id)) |